3. About Me
JBoss AS, Engineering Manager dandreadis.blogspot.com
•2001, JBoss User
•2003, JBoss Committer
•2004, JBoss Full-time Core Developer
•2006, JBoss AS Lead (v3.2.8+, v4.0.4+, v4.2.x, 5.0.x)
•2009 - present, Manager of JBoss AS Core Team
And before JBoss?
•7y experience in distributed systems (telcos, NMS/OSS)
•BSc/MSc Computer Science (Athens/Dublin)
4. Agenda
• A Brief History of JBoss AS
• the Path to Java EE6
• JBoss Application Server 7
• Architecture
• Modularity
• Management
• Enterprise Application Platform 6 (EAP)
5. JBoss AS Timeline
JavaEE 6 Web Profile, JDK6/JDK7
Modular Service Container Architecture
JavaEE 6 Web Profile, JDK6
JBoss AS 7.0, 7.0.1, 7.0.2
JBoss AS 6.0, 6.1
JavaEE 5 certification, JDK5 & 6
MicroContainer Architecture
JBoss AS 5.1
J2EE 1.4 certification JBoss AS 5: 5.0.0.GA, 5.0.1.GA
JDK 1.4
JBoss Versions
JBoss AS 4.2.0 – 4.2.3
JBoss AS 4.0.0 – 4.0.5 JEE 5.0 compatible,
not certified (95% pass)
JDK5.0
JBoss AS 3.2.0 – 3.2.8
Time
2003 2004 2005 2006 2007 2008 2009 2010 2011
J2EE 1.3, JDK 1.3
JMX MicroKernel Architecture
7. The path to Java EE6
• JBoss AS 6.0
• Deliver faster on Java EE6
• Baking time for EE subsystems
• Measure interest on EE profiles
• Stepping stone for AS7
• New Stuff
• HornetQ (Messaging)
• Infinispan (Caching)
• Apache CXF (Web Services)
• Embedded Jopr Console
• mod_cluster
8. The path to Java EE6 (cont.)
• JBoss AS 6.0/6.1
• Java EE6 Web Profile++ (or EE6 Full--)
• Based on the 5.x Microcontainer
• More lightweight than AS5
• Gotchas
• JBoss AS6 will *not* be productized!
• Currently in community maintenance mode
10. A hard look in the mirror
• Typical Pain Points
• Excess baggage (legacy subsystems and abstractions)
• Boot time & memory footprint
• Embeadability/testability
• Administration options
• Modularity
• It’s “free and it doesn’t suck”
not enough anymore
11. Getting our Mojo back!
• Major Goals
• Make it Smaller, Faster
• Improve Manageability
• Simplify Configuration
• Clean things up!
• Remove abstraction layers
• Remove legacy stuff
• Modularize
12.
13.
14. Introducing
JBoss AS 7
*A blazingly fast modular lightweight elegantly administrable
compliant application server with easy testing facilities – Carlo De Wolf, 2011
15. JBoss AS 7 releases
• AS 7.0 – released Jul/2011,
• EE6 – Web Profile (+JCA, +JAX-RS) certified
• AS 7.0.1 – released Aug/2011
• MDB support, JSR-88, JPA w. older Hibernate 3
• AS 7.0.2 – released Sep/2011
• JSF 2.1, @Asynchronous, PicketLink SSO, etc.
• AS 7.1 – released Feb/2012
• Full EE6, clustering, improved security, etc.
• AS 7.1.1 – released Mar/2012
• maintenance release
16. AS7 Key Features
• Fast and Lightweight
• Modular, OSGi enabled
• Unified, user focused configuration
• Multiple management interfaces
• Support for multi-node management
17. AS7 Architecture
JBoss
MSC DMR Controller Threads
Modules
Server Controller Service
Deployers VFS Jandex Reflect Cache Repository
Core Infrastructure
FS Secanner
Transaction
Datasource
Messaging
Connector
Remoting
Security
JAX-RS
Naming
OSGi
EJB3
Weld
SAR
Web
JMX
JPA
WS
EE
Subsystems
18. JBoss Kernel Taxonomy
• JBoss AS 2.x, 3.x, 4.x
• JBoss JMX MicroKernel
• JBoss AS 5.x, 6.x
• JBoss MC - MicroContainer
• JBoss AS7.x
• JBoss MSC - Modular Service Container
19. Key attributes of MSC
Small, lightweight, and efficient
Highly concurrent & scalable state machine
Services are primarily interface based
Only two states, Up & Down
Multiple startup modes
•Active, Passive, On-Demand, Lazy, Never
Service Builder
Service Registry
Service Controller
Service Deps Value Listeners Injectors
Concurrent Service Container
24. How is it done?
• Concurrent startup/deployments
• Faster resource lookup/classloading
• Annotation indexing
• Caching of reflection metadata
• Lazy loading of (some) services
• StAX based descriptor parsing
• Starting from scratch
25. Modularity*
*The Class Path is Dead – Mark Reinhold, 2009
26. Hierarchical Class Loading
• Issues
• All jars always loaded, whether used or no
• Version conflicts, especially with servers libs
• Increased lookup/load time
• Hard to debug (big ball of mud)
• JBoss AS 5 introduced
module-like capabilities
• jboss-classloading.xml
27. Modular Class Loading
• A graph of Class Loaders, not a tree
• Modules delegate to one another as peers
• A module imports modules it directly uses
• Transitive dependencies are hidden, by default
• Different module versions may co-exist
28. JBoss Modules
Small, lightweight, and efficient
•Highly concurrent class loading
•Fast with O(1) dependency resolution
“Pure” modular class loading
•Modules only see what they import
•Including JDK classes
External module definitions
•Don’t have to break open the JAR
33. JBoss OSGi
• AS7 is fully compliant with OSGi v4.2 Core
• Implemented on top of JBoss MSC/Modules
• OSGi bundles become JBoss Modules
• Deploy your OSGi bundles, as usual
34. JBoss OSGi
• Out-of-the-box
• OSGi Core 4.2, Config Admin, JNDI, JTA, JMX*
• Extras with installer
• Web Apps, HTTP Service, Blueprint, Web Console
*This may change
36. Two Operational Modes
Standalone
•Traditional JBoss single JVM server
•Management facilities IN-VM
•No lifecycle management (only shutdown)
Domain
•Multi-JVM, multi-server model
•Management coordinated by Domain Controller Process
•Multiple server instances (JVMs) per Host
•Full lifecycle managed by Process Controller
41. Management APIs
• Command Line Interface (CLI)
• Remote Java API
• HTTP/JSON API
• GWT-based console
• JMX mapping
42. Dynamic Model Representation (DMR)
• Central Detyped Management API
•All management operations operate with/on DMR
•Strictly backwards compatible
• Represents simple and complex types
•int, long, big int, double, big dec, boolean, string, bytes, list,
object, property, expression
• Auto-converts like dynamic languages
• Self describing
• Convertible to/from JSON
• Also has a defined binary protocol (optionally b64)
47. Roadmap
AS 7.0.2 – last version of 7.0 series
AS 7.1.1 – last version of 7.1 series
JBoss AS 7.1 is the base for JBoss
Enterprise Application Platform 6 (EAP)
AS 7.2.x – feature enhancements
• Patching
• Graceful shutdown
• Audit logging
• …
48. JBoss EAP*
*Professional Support from Professionals!
49. The Community JBoss Application Server (AS)
vs. the Enterprise Application Platform (EAP)
• Community Project (JBoss AS)
- JBoss As We Know It
- Sponsored by JBoss/Red Hat
- Allow innovation at a faster pace
• Enterprise Application Platform (EAP)
- Forks the community project at stable points
- Integrates with JBoss Developer Studio / JBoss Operations Network
- Rigorously tested (performance, scalability, SpecJ, etc.)
- Certified on multiple OS, JVM, DBs combinations
- Cumulative Patch cycles
- Supported for 5 + 2 years.