JBoss Architecture Overview
JBoss Application Server is assembled from a set of independent, yet cooperating components and services that are neatly packaged and fully hot-deployable. It is architected to be seamlessly embeddable in applications, and the nature of its embedding is completely customizable to the requirements of the application itself. Only the critical and necessary application server components, therefore, need to be brought along as part of the application’s baseline footprint. Developers can also easily create and add their services to the system, thus ensuring that customs services exhibit the same consistent behavior as the JBoss standard set of services."
JBoss Microcontainer Layer
JBoss Microcontainer is an inversion of control (IoC) framework. IoC frameworks let you create, configure and wire up simple Java objects (POJOs). Classes don’t need special coding to be usable. The objects created usually represent the modules of your application.
- Replaces JMX-based Microkernel, though still supports all JMX Microkernel features
- IoC framework similar to Spring IoC
- POJO based kernel (no need for Standard/XMBean or MBeanProxy)
- Simplified and improved lifecycle management
- Additional control over dependencies
- Transparent AOP integration
- Virtual File System (VFS)
- Virtual Deployment Framework
- OSGi class-loading
- Service-oriented architecture - service is either defined as a POJO or a JMX Managed Bean (use the JMX kernel, still available in JBoss 5.x but is created by JBoss Microcontainer).
- Services are hot-pluggable
- Makes it possible to tune the system for just the required services to lower the overall footprint (easier to secure and tune)
- Easy to define new services and package them as SARs (service archives) or JARs (Java ARchives)
- Examples: Servlet/JSP container, EJB container, transaction management, messaging, connection pooling, security, etc.
Desired to gain proficiency on JBOSS?
Explore the blog post on JBOSS training to become a pro in JBOSS.
Increase the modularity of an application by allowing the separation of cross-cutting concerns (e.g. logging is often required in many parts of your application).
- Based on aspect-oriented programming model (AOP)
- Defines cross-cutting simple-to-use services
- Makes it possible to add object persistence, caching, replication, remoteness, security, etc. late in the development cycle by annotating existing plain-old-java-objects (a.k.a POJOs)
- This is where Java EE applications reside
- This layer deals with the business logic while leaving the container services up to JBoss AS
- Portable - Independent of JBoss AS
JBoss Application Server Services
- JBoss Microcontainer - POJOs services container
- JBoss Microkernel - JMX MBean server (One of the primary POJOs created by JBoss Microcontainer)
- Aspect-oriented Framework
- Web Application Services - based on Tomcat (Servlet, JSP, JSF)
- Enterprise Services: EJB, ORB, JNDI, JTA
- Web Services - based on SOAP, WSDL, UDDI, and XML
- Messaging Services: JMS, JDBC, JCA
- Persistence Services - Hibernate O/R mapping and transparent persistence
- HA Services: clustering, fail-over, load-balancing, distributed deployments
- Security Services - based on JAAS
- Console Services - monitoring, configuration, deployment, management, lifecycle
For an in-depth understanding on JBoss click on: