OpenEJB PowerPoint PPT Presentation

presentation player overlay
1 / 28
About This Presentation
Transcript and Presenter's Notes

Title: OpenEJB


1
OpenEJB - An Open Source Enterprise JavaBeans
Container System
OpenEJB
An Open Source Enterprise JavaBeans Container
System http//openejb.sf.net

OpenEJB
2
OpenEJB - An Open Source Enterprise JavaBeans
Container System
What is OpenEJB?
A modular, configurable, customizable, open
source EJB container system.
OpenEJB
3
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
4
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
5
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 doesnt 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
6
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
7
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 OReilly 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
8
OpenEJB - An Open Source Enterprise JavaBeans
Container System
The Architecture
OpenEJB
9
Application Server
OpenEJB CPI
OpenEJB
Stateful Bean Containers
Stateless Bean Containers
Entity Bean Containers
OpenEJB SPI
JTA Transaction Manager
Security Manager
Resource Managers
OpenEJB
10
Application Server
OpenEJB CPI
OpenEJB
Stateful Bean Containers
Stateless Bean Containers
Entity Bean Containers
OpenEJB SPI
JTA Transaction Manager
Security Manager
Resource Managers
OpenEJB
11
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 beans 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
OpenEJB SPI
Transaction Manager
Security Manager
Resource Manager
OpenEJB
12
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
OpenEJB SPI
Transaction Manager
Security Manager
Resource Manager
OpenEJB
13
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
OpenEJB SPI
Transaction Manager
Security Manager
Resource Manager
OpenEJB
14
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
OpenEJB SPI
Transaction Manager
Security Manager
Resource Manager
OpenEJB
15
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
OpenEJB SPI
Transaction Manager
Security Manager
Resource Manager
OpenEJB
16
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
OpenEJB SPI
Transaction Manager
Security Manager
Resource Manager
OpenEJB
17
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
OpenEJB SPI
Transaction Manager
Security Manager
Resource Manager
OpenEJB
18
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 arent defined by
    the EJB specifications.

OpenEJB
Container
OpenEJB SPI
Transaction Manager
Security Manager
Resource Manager
OpenEJB
19
OpenEJB - An Open Source Enterprise JavaBeans
Container System
The Architecture Container Provider Interface
Application Server
OpenEJB CPI
  • 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
OpenEJB SPI
Transaction Manager
Security Manager
Resource Manager
OpenEJB
20
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
OpenEJB SPI
Transaction Manager
Security Manager
Resource Manager
OpenEJB
21
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
22
Application Server
OpenEJB CPI
OpenEJB
Stateful Bean Containers
Stateless Bean Containers
Entity Bean Containers
OpenEJB SPI
JTA Transaction Manager
Security Manager
Resource Managers
OpenEJB
23
Remote Client Example
App Server provided
Primary Services
OpenEJB
EJB Object
client
server
container
bean
security manager
transaction manager
businessMethod()
Protocol X
invoke()
isCallerAuthorized()
getTransaction()
businessMethod()
getTransaction()
OpenEJB
24
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()
25
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
26
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
27
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

28
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_at_visi.com

OpenEJB
Write a Comment
User Comments (0)
About PowerShow.com