Inside EJBs
Session and message-driven beans require a EJB container to run and entities require a persistence provider. A Java EE Container is an application server solution that supports EJB 3, a web container and other Java EE APIs and services. There are a number of Java EE containers that you can use
- JBoss Application Server
- BEA WebLogic Server
- IBM WebSphere
- Oracle Application Server
- Sun GlassFish
There are a number of EJB 3 component services
Service | Applies To | What's offered |
Integration | Session beans, MDBs | Helps glue components together, in EJB 3 you use dependency injection (DI) as well as lookup |
Pooling | Stateless session beans and MDBs | The EJB platform creates a pool of component instances that are shared by clients. All instances are returned to the pool when the client has finished with them. |
Thread-Safety | Session beans, MDBs | EJB makes all components thread-safe and highly performant in ways that are completely invisible, however complex the application. |
State Management | Stateful session beans | The EJB container manages state transparently. |
Messaging | MDBs | You can write messaging aware components with out to much detail of the JMS service |
Transactions | Session beans, MDBs | EJB supports declarative transaction management using simple configuration instead of code, the container can handle the commit and rollback of transactions. |
Security | Session beans | Integration of JAAS API, means that it is easy to implement security with simple configuration instead of code. |
Interceptors | Session beans, MDBs | EJB 3 introduces AOP in a very lightweight, accessible manner using interceptors. This allows you to separate out crossing cutting concerns such as logging, auditing and so on in a configurable way. |
Remote Access | Session beans | EJB 3 can make components remotely accessible without writing code. It allows clients to access components as if they were local using DI |
Web Services | Stateless session beans | EJB 3 can transparently turn business components into robust web services with minimal code change. |
Persistence | Entities | Automated persistence as an alternative to verbose and error-prone JDBC/SQL code. |
Caching and Performance | Entities | JPA provides a number of services geared toward data caching, performance optimization and application tuning, especially in large environments. |