280 likes | 421 Views
OpenEJB - An Open Source Enterprise JavaBeans Container System. OpenEJB. An Open Source Enterprise JavaBeans Container System http://openejb.sf.net. OpenEJB. OpenEJB - An Open Source Enterprise JavaBeans Container System. What is OpenEJB ?.
E N D
OpenEJB - An Open Source Enterprise JavaBeans Container System OpenEJB An Open Source Enterprise JavaBeans Container System http://openejb.sf.net OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System What is OpenEJB? A modular, configurable, customizable, open source EJB container system. OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System What is OpenEJB? • OpenEJB is: • Container system • Modular • Configurable • Customizable • Open Source An EJB 1.1 container System OpenEJB is a pre-built, self-contained, portable EJB container system that can be plugged into any application server environment. OpenEJB provides a clear separation of responsibilities between the EJB container and the EJB server. Through the Container Provider Interface (CPI), an application server vendor can use the OpenEJB container system to obtain an instant and customizable EJB 1.1 platform. OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System What is OpenEJB? • OpenEJB is: • Container system • Modular • Configurable • Customizable • Open Source Modular – not monolithic The OpenEJB container system defines lightweight and flexible interfaces that allow vendors to integrate OpenEJB into their application server products easily. OpenEJB provides application server vendors without EJB support a fast track to EJB compliance. OpenEJB also opens up the integration of transaction, security, and persistence services so that vendors and customers alike can choose the services that are the most appropriate for their EJB platforms. Service providers can quickly adapt their products to OpenEJB SPI, allowing them to compete with other vendors on the quality of their service. OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System What is OpenEJB? • OpenEJB is: • Container system • Modular • Configurable • Customizable • Open Source Highly Configurable OpenEJB can be configured so that containers are partitioned across bean types. Multiple containers can be created and each can be configured differently. For example, you might create two Stateful SessionBean containers. You could configure one to timeout beans in five minutes and configure the other to have no timeout at all. You can also change the transaction, security, and resource managers for OpenEJB itself. This allows you to use the same EJB container system throughout an enterprise, yet doesn’t needlessly bind you to only one transaction and security service. One OpenEJB platform could use the Tyrex, and LDAP for transactions and security, while another might use Encina transactions and an ODBMS for security. OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System What is OpenEJB? • OpenEJB is: • Container system • Modular • Configurable • Customizable • Open Source Customizable OpenEJB provides a core package that is a powerful default implementation of a container system. While this core is well engineered for performance and efficiency, it is fairly simple to swap out nearly any aspect of the core system in favor of custom implementations. For example, the passivation strategy in the stateful container, which currently writes to a file, can be swapped out in favor of one that writes to a RDMBS or some other secondary storage. OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System What is OpenEJB? • OpenEJB is: • Container system • Modular • Configurable • Customizable • Open Source OpenEJB is Open Source OpenEJB is an open source software project, hosted at SourceForge, and available under a BSD-style license that is identical to the Apache license. The project was founded in December 1999 by Richard Monson-Haefel and David Blevins, and announced at the 2000 O’Reilly Java Conference. OpenEJB has been strongly adopted by the open source and business communities. Apple Computer recently announced its use of OpenEJB to provide WebObjects 5.1 with full EJB 1.1 support. OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System The Architecture OpenEJB
Application Server OpenEJB CPI OpenEJB Stateful Bean Containers Stateless Bean Containers Entity Bean Containers OpenEJB SPI JTA Transaction Manager Security Manager Resource Managers OpenEJB
Application Server OpenEJB CPI OpenEJB Stateful Bean Containers Stateless Bean Containers Entity Bean Containers OpenEJB SPI JTA Transaction Manager Security Manager Resource Managers OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System The Architecture Application Server Application Server OpenEJB CPI • Definition • Any component wishing to serve or deliver Enterprise JavaBeans. • Also Known As • Server Adapter • Responsibilities • Remote client access to OpenEJB • Implement the bean’s remote and home interfaces. • Distribute its implementation of the remote and home interfaces. • Provide clients with a JNDI name space for looking up beans. • Delegate method invocations to the container. OpenEJB Container OpenEJBSPI Transaction Manager Security Manager Resource Manager OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System The Architecture Application Server Application Server OpenEJB CPI • Known Uses: • The IntraVM Server • Allows for interaction among beans in the same virtual machine. • Interacts directly with the container • Enforces the remote copying semantics required by the EJB specification. • Immutable objects created by the IntraVM are not serialized. These include the EJBMetaData, Handle, and HomeHandle. • Uses a pluggable API for generation of the EJBHome and EJBObjects. • Provides non-bean clients with a global JNDI namespace so that beans may be looked up by applications or linked by other JNDI namespaces OpenEJB Container OpenEJBSPI Transaction Manager Security Manager Resource Manager OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System The Architecture Application Server Application Server OpenEJB CPI • Known Uses • The Reference Implementation (RI) Server • A simple implementation of an application • Intended to be used as a reference to those wishing to integrate OpenEJB into their own application server. • Is not production quality or for production use. • Allows beans to be looked up via JNDI and accessed remotely. OpenEJB Container OpenEJBSPI Transaction Manager Security Manager Resource Manager OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System The Architecture Application Server Application Server OpenEJB CPI • Known Uses • The OpenEJB/CORBA adapter • Allows to plug any CORBA ORB implementation that provides Java mapping 2.3, RMI over IIOP, POA. • Allows beans in OpenEJB to be accessed as EJBObjects by Java clients or as CORBA objects to any CORBA application. • Future Uses • Integration with any other client/server technology or platforms. OpenEJB Container OpenEJBSPI Transaction Manager Security Manager Resource Manager OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System The Architecture OpenEJB Application Server OpenEJB CPI • Description • A static API that requires: • 1 Application Server implementation • 1 Transaction Manager • 1 Security Manager • N Resource Manager(s) • Also Known As • Container System • OpenEJB 1.1 Specification • More formal and detailed set of contracts and involved interfaces is specified in the OpenEJB 1.1 specification. A draft of this specification is available on the website. OpenEJB Container OpenEJBSPI Transaction Manager Security Manager Resource Manager OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System The Architecture Container Application Server OpenEJB CPI • Definition • An Enterprise JavaBeans container that adopts the OpenEJB architecture and implements the org.openejb.Container interface. • Responsibilities • Enforce the EJB 1.1 container-bean contract. • Use the Transaction Manager assigned to the container system to assist in handling transactions. • Use the Security Manager assigned to the container system to assist in enforcing security and privileges. OpenEJB Container OpenEJBSPI Transaction Manager Security Manager Resource Manager OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System The Architecture Container Application Server OpenEJB CPI • Known Uses • Stateful SessionBean Container, commonly called a Stateful Container. • Stateless SessionBean Container, commonly called a Stateless Container. • Entity Container for EntityBeans with Bean-Managed Persistence, commonly called a BMP Container. BMP standing for Bean-Managed Persistence. • Entity Container for EntityBeans with Container-Managed Persistence, commonly called a CMP Container. CMP standing for Container-Managed Persistence. • Future Uses • EJB 2.0 JMS/Message-Driven Bean Container. • EJB 2.0 CMP EntityBean Container. OpenEJB Container OpenEJBSPI Transaction Manager Security Manager Resource Manager OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System The Architecture Container Application Server OpenEJB CPI • Pluggable Containers • OpenEJB allows anyone to create new containers and add them to the container system. This ability allows vendors and advanced users to create custom containers that meet their specific needs. The ability to create custom containers is particularly useful in regards to CMP containers as it would allow containers to be openly developed that persist to industry standard forms of data storage such as Oracle, MS SQL Server or Ingres. • This also opens the door to the creation of new container and bean types that aren’t defined by the EJB specifications. OpenEJB Container OpenEJBSPI Transaction Manager Security Manager Resource Manager OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System The Architecture Container Provider Interface Application Server OpenEJBCPI • Definition • A set of interfaces and contracts that define the behavior between the OpenEJB container system and an Application server • Also Known As • The CPI • OpenEJB 1.1 Specification • More formal and detailed set of contracts and involved interfaces is specified in the OpenEJB 1.1 specification. A draft of this specification is available on the website. OpenEJB Container OpenEJBSPI Transaction Manager Security Manager Resource Manager OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System The Architecture Primary Services Application Server OpenEJB CPI • Definition • Logical sets of functionality used by a container continuously at runtime. • Transaction Manager • Provides the container with transactional integrity. • Security Manager • Provides role-based authorization control. • Resource Manager • Provides enterprise beans with connections to transactional resources like JDBC or JMS. OpenEJB Container OpenEJBSPI Transaction Manager Security Manager Resource Manager OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System The Architecture Service Provider Interface Application Server OpenEJB CPI • Definition • A set of interfaces and contracts that define the responsibilities the primary services have to the container system. • Also Known As • The SPI OpenEJB Container OpenEJB SPI Transaction Manager Security Manager Resource Manager OpenEJB
Application Server OpenEJB CPI OpenEJB Stateful Bean Containers Stateless Bean Containers Entity Bean Containers OpenEJB SPI JTA Transaction Manager Security Manager Resource Managers OpenEJB
Remote Client Example App Server provided OpenEJB Primary Services EJB Object client server container bean security manager transaction manager businessMethod() Protocol X invoke() isCallerAuthorized() getTransaction() businessMethod() getTransaction() OpenEJB
Local Client Example OpenEJB Primary Services EJB Object bean handler container bean security manager transaction manager businessMethod() invoke() copy() invoke() isCallerAuthorized() getTransaction() businessMethod() getTransaction() OpenEJB copy()
OpenEJB - An Open Source Enterprise JavaBeans Container System Other Pluggable Parts OpenEJB includes other pluggable parts. These pluggable parts allow you to greatly customize the behavior of the container system itself by swapping out one implementation for another. For example, OpenEJB has two different algorithms that passivate and activate Stateful SessionBeans. With this approach, you can configure OpenEJB to match the needs of your target environment or application. If none of the implementations match your needs, you can implement your own. These pluggable parts include: • Container • Assembler • ProxyFactory • PassivationStrategy OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System Test Suite • Runs over 4700 tests • Covers over 80% of the OpenEJB code base. • Uses to the JUnit testing framework • Unit tests • Tests OpenEJB specific APIs • EJB 1.1 compliance tests • Tests all interfaces in the javax.ejb.* package. • Can be ran against ANY Enterprise JavaBeans platform • Can be used by Application Servers to test if OpenEJB had been properly integrated into their platform. OpenEJB
OpenEJB - An Open Source Enterprise JavaBeans Container System Development Roadmap • Easier Configuration with Hot Deploy • JMS/Message Driven Container – EJB 2.0 • CMP Entity Container – EJB 2.0 • Logging Service OpenEJB • User Guide • Performance Tests
OpenEJB - An Open Source Enterprise JavaBeans Container System OpenEJB An Open Source Enterprise JavaBeans Container System openejb.sf.net David Blevins OpenEJB Co-Founder, Project Lead david.blevins@visi.com OpenEJB