OpenEJB_presentaion

grrrgrapeInternet και Εφαρμογές Web

31 Οκτ 2013 (πριν από 3 χρόνια και 9 μήνες)

64 εμφανίσεις

OpenEJB




OpenEJB
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

An Open Source Enterprise JavaBeans Container System










http://openejb.sf.net

What is
OpenEJB
?

A modular, configurable, customizable, open source EJB container system.



OpenEJB
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

What is
OpenEJB
?

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

OpenEJB is:




Container system



Modular



Configurable



Customizable



Open Source

What is
OpenEJB
?

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

OpenEJB is:




Container system



Modular



Configurable



Customizable



Open Source

What is
OpenEJB
?

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

OpenEJB is:




Container system



Modular



Configurable



Customizable



Open Source

What is
OpenEJB
?

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

OpenEJB is:




Container system



Modular



Configurable



Customizable



Open Source

What is
OpenEJB
?

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

OpenEJB is:




Container system



Modular



Configurable



Customizable



Open Source

The Architecture

OpenEJB
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

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

The Architecture


Application Server

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

Application Server

OpenEJB CPI

OpenEJB

Container

OpenEJB

SPI

Transaction

Manager

Security

Manager

Resource

Manager

The Architecture


Application Server

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

Application Server

OpenEJB CPI

OpenEJB

Container

OpenEJB

SPI

Transaction

Manager

Security

Manager

Resource

Manager

The Architecture


Application Server

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

Application Server

OpenEJB CPI

OpenEJB

Container

OpenEJB

SPI

Transaction

Manager

Security

Manager

Resource

Manager

The Architecture


Application Server

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

Application Server

OpenEJB CPI

OpenEJB

Container

OpenEJB

SPI

Transaction

Manager

Security

Manager

Resource

Manager

The Architecture


OpenEJB

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

Application Server

OpenEJB CPI

OpenEJB

Container

OpenEJB

SPI

Transaction

Manager

Security

Manager

Resource

Manager

The Architecture


Container

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

Application Server

OpenEJB CPI

OpenEJB

Container

OpenEJB

SPI

Transaction

Manager

Security

Manager

Resource

Manager

The Architecture


Container

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

Application Server

OpenEJB CPI

OpenEJB

Container

OpenEJB

SPI

Transaction

Manager

Security

Manager

Resource

Manager

The Architecture


Container

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

Application Server

OpenEJB CPI

OpenEJB

Container

OpenEJB

SPI

Transaction

Manager

Security

Manager

Resource

Manager

The Architecture


Container Provider Interface

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

Application Server

OpenEJB

CPI

OpenEJB

Container

OpenEJB

SPI

Transaction

Manager

Security

Manager

Resource

Manager

The Architecture


Primary Services

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

Application Server

OpenEJB CPI

OpenEJB

Container

OpenEJB

SPI

Transaction

Manager

Security

Manager

Resource

Manager

The Architecture


Service Provider Interface

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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

Application Server

OpenEJB CPI

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

client

EJB

Object

server

container

bean

security

manager

transaction

manager

App Server provided

Primary Services

businessMethod()

Protocol X

invoke()

isCallerAuthorized()

getTransaction()

businessMethod()

getTransaction()

OpenEJB

Remote Client Example

OpenEJB

bean

EJB

Object

handler

container

bean

security

manager

transaction

manager

OpenEJB

Primary Services

businessMethod()

invoke()

invoke()

isCallerAuthorized()

getTransaction()

businessMethod()

getTransaction()

copy()

copy()

Local Client Example

Other Pluggable Parts



Container

OpenEJB
-

An Open Source Enterprise JavaBeans Container System

OpenEJB



Assembler



ProxyFactory



PassivationStrategy


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:



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
-

An Open Source Enterprise JavaBeans Container System

OpenEJB

Development Roadmap



Easier Configuration with Hot Deploy

OpenEJB
-

An Open Source Enterprise JavaBeans Container System

OpenEJB



JMS/Message Driven Container


EJB 2.0



CMP Entity Container


EJB 2.0



Logging Service



User Guide



Performance Tests

OpenEJB




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