ejb 3.0 and j2ee
DESCRIPTION
Ashi's presentation on EJB 3.0TRANSCRIPT
![Page 1: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/1.jpg)
UnderstandingUnderstanding EJBEJB
By:
Asha Pathik
Aniruddha Ray
![Page 2: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/2.jpg)
Agenda
• Overview and Basic Concepts – What is EJB?
– When to use EJB
– Containers
– Evolution of EJB
• EJB Components – Types of Enterprise Beans
– Session Beans
– Entity Beans
– Message-driven Beans
• Creating an EJB
• Summary
Saastha Infotech
2
![Page 3: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/3.jpg)
Overview and Basic concepts What is EJB?
Saastha Infotech
3
![Page 4: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/4.jpg)
What is EJB ( Enterprise Java Beans )?
• EJB is the J2EE standard for developing and
deploying server-side distributed components in
java
• It defines a contract between components and
application servers that enables any component to
run on any compliant server
– it is the ubiquitous industry standard
– portability is possible
– rapid application development
– physically, EJB is two things
• a specification
• a set of Java interfaces
Saastha Infotech
4
![Page 5: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/5.jpg)
Overview and Basic concepts When to use EJB
Saastha Infotech
5
![Page 6: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/6.jpg)
When to use EJB
• For large scale applications where resources and
data are distributed.
• When the application is running on different servers
at many locations.
• Where scalability is critical.
• Where transactions are required to ensure data
integrity
• When a variety of clients need to handled
Saastha Infotech
6
![Page 7: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/7.jpg)
Overview and Basic concepts Evolution of Enterprise JavaBeans
Saastha Infotech
7
![Page 8: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/8.jpg)
Evolution of Enterprise Java Beans – Part 1
• EJB release 1.0 focused on the following aspects:
– defined the distinct “EJB roles” that are assumed by the component
architecture
– defined the client view of enterprise beans
– defined the developer’s view of enterprise beans
– defined the responsibilities of EJB Container provider and Server
Provider
– defined the format of ejb.jar file, EJB’s unit of deployment
• EJB release 1.1 augmented these with following:
– provided better support for application assembly and deployment
– specified in greater detail the responsibilities of the individual EJB
roles
Saastha Infotech
8
![Page 9: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/9.jpg)
Evolution of Enterprise Java Beans – Part 2
• EJB release 2.0 focused on the following aspects:
– defined message-driven bean and the integration with the JMS
– provided local client view and support for efficient, lightweight
access to EJB from local clients
– defined new architecture for container persistence
– support for management of relationships among entity beans
– declarative query syntax for finder and select methods for entity
beans with container-managed persistence
– support for additional methods in home interface
– support for run-as security identity
– provided for network interoperability among servers
Saastha Infotech
9
![Page 10: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/10.jpg)
Evolution of Enterprise Java Beans – Part 3
• EJB release 2.1 focused on the following aspects:
– enabling enterprise beans to implement and utilize web services
– providing a container-managed timer services
– enhancing EJB QL with additional ORDER BY and aggregate
operators
– enhancing the message-driven bean component type to other
messaging types
• The EJB release 3.0 is focused on a simplification of the
Enterprise JavaBeans architecture from the developer’s
point of view.
Saastha Infotech
10
![Page 11: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/11.jpg)
Overview and Basic concepts Containers
Saastha Infotech
11
![Page 12: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/12.jpg)
Containers
• Are the interface between a component and low-level platform-specific functionality that supports the component – components are simple set of programs that are capable of
performing a particular business logic
• Provide configurable settings : like data accessibility
• Manages non-configurable settings like enterprise bean and servlet life cycles, database connection resource pooling, data persistence etc.
• Before a J2EE component can be executed, it must be assembled into J2EE application and deployed into its container
Saastha Infotech
12
![Page 13: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/13.jpg)
EJB Components Saastha Infotech
13
![Page 14: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/14.jpg)
EJB Components
Session Beans
Saastha Infotech
14
![Page 15: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/15.jpg)
Session Bean : Concepts
• A Session Bean is non-persistent object that implements some business logic. – private to one client connection
– represents an interactive session
– not recoverable after system crash or shutdown!
– when client terminates, bean terminates i.e. no longer active
• A Stateful Session Bean has Conversational State – activation/ passivation of a Bean is possible
– E.g. items reviewed in a session at some sites.
• A Stateless Session Bean has no Conversational State – no activation or passivation
– pooling of stateless Session Beans by the container
– very efficient
– E.g. computing value using a formula.
Saastha Infotech
15
![Page 16: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/16.jpg)
Stateful Session Bean : Part(1)
Conversational Bean
• Consists of attributes and referenced objects :
– all non-transient attributes of the Bean
– referenced data in the database
– open connections to network
– references to other Beans
– etc.
• Exists during one client session
• A Conversation State is not persistent and is not
automatically rolled back when a transaction fails!
Saastha Infotech
16
![Page 17: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/17.jpg)
Stateful Session Bean : Part(2)
• Passivation:
– container serializes Bean instance and saves it to disk
– preparation for Passivation is done with the method ejbPassivate:
• close all existing connections
• resolve all external references
• Activation:
– de-serialize Bean instance from disk
– afterwards, ejbActivate method is invoked to:
• re-establish external references
• re-establish connections
• If non-serializable objects are part of the state, these
methods must be implemented in the Bean class
Saastha Infotech
17
![Page 18: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/18.jpg)
Stateful Session Bean : Life Cycle
Saastha Infotech
18
![Page 19: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/19.jpg)
Stateless Session Bean
• All instances are equivalent
• Private to one client only during one call
• Pooled while not in use
Saastha Infotech
19
![Page 20: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/20.jpg)
EJB Components
Entity Beans
Saastha Infotech
20
![Page 21: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/21.jpg)
Entity Bean : Concept
• An Entity Bean represents an object-oriented view of some entities stored in a persistent, crash-resistant storage (usually a relational database) – persistent and transient (modifier transient) attributes are allowed,
but only persistent attributes will be saved in database.
– each entity bean typically has an underlying table in a RDBMS( business data), and each instance of the bean corresponds to a row in that table.
– transactional and recoverable on a server crash.
• Shared among multiple clients ( no per-client state)
• Primary Key : a unique attribute of bean or a serializable class (Primary Key Class) with one or more attributes
• Two Beans with same Home Interface and same Primary Key are regarded as identical ( Bean Identity)
Saastha Infotech
21
![Page 22: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/22.jpg)
Persistence Management
• Bean-Managed Persistence (BMP) : any java-accessible data storage is possible – implements persistence mechanisms in ejbLoad resp. ejbStore
– implements ejbActivate, ejbPassivate and ejbRemove
– ejbCreate must return a ‘real’ primary key ( e.g. return pk;)
• Container-Managed Persistence (CMP) : Container controls access to (usually) a relational database – empty implementation of ejbLoad, ejbStore, ejbActivate,
ejbPassivate and ejbRemove
– ejbCreate returns ‘null’ as primary key ( return null)
– Object-Relational Mapping between Bean attributes and database entries ( Vendor –specific)
– more details later
Saastha Infotech
22
![Page 23: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/23.jpg)
Primary Key
• A Primary Key of an Entity Bean consists of one or more
persistent Bean attributes
– values of primary key attributes must be unique for a Bean instance
– primary key attributes must be serializable
• The primary key class …
– is a serializable class with one or several attributes which ( together)
acts as primary key of an Entity Bean
• one can use e.g. Long or String for single primary key attributes or
specific classes
• all primary key attributes must be persistent Bean attributes
– must be declared in the Bean’s Deployment Descriptor
Saastha Infotech
23
![Page 24: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/24.jpg)
Activation and Passivation
• The EJB Container can passivate unused Entity
Beans
– ejbPassivate is invoked
– used resources ( e.g. database connections, references to other
Beans etc. ) are freed
– bean instance is pooled
• The Bean is activated when used again
– an instance of this Bean is taken from the pool
– ejbActivate is invoked
– needed resources are occupied ( e.g. database connections are
re-established)
Saastha Infotech
24
![Page 25: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/25.jpg)
Entity Bean : Life Cycle
Saastha Infotech
25
![Page 26: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/26.jpg)
EJB Components
Message-driven Beans
Saastha Infotech
26
![Page 27: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/27.jpg)
Message-Driven Bean – Concepts (1)
• Like a Stateless Session Bean, a Message-driven Bean
only provides a piece of business logic without state
management ( similar life cycle)
• A Message-driven bean must implement the interfaces
javax.ejb.MessageDrivenBean and
javax.ejb.MessageListener
– MessageListener declares a method
public void onMessage(Message msg)
which will be invoked when message arrives
• A Message-driven Bean has no client-visible interfaces
Saastha Infotech
27
![Page 28: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/28.jpg)
Message-Driven Bean – Concepts (2)
• A Message-driven bean is assigned to a JMS
destination by means of the Deployment Descriptor
element
– message-driven destination
• The bean is invoked by the container, when a JMS
message to this destination arrives
Saastha Infotech
28
![Page 29: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/29.jpg)
Message-Driven Bean – Concepts (3)
• A message driven bean is an enterprise bean that
allows J2EE applications to process messages
asynchronously
• It acts a JMS listener, which is similar to an event
listener except that it receives messages instead of
events
• The messages can be sent to any J2EE component
or a non-J2EE system using JMS
• It retains no data or conversational state
Saastha Infotech
29
![Page 30: EJB 3.0 and J2EE](https://reader033.vdocuments.site/reader033/viewer/2022051210/54b8adfc4a795977378b4599/html5/thumbnails/30.jpg)
Contents of an EJB
• Interfaces: The remote and home interface for remote access. Local and local home accesses for local access.
• Enterprise bean class: Implements the methods defined in the above interfaces.
• Deployment descriptor: An XML file that specifies information about the bean such as its type, transaction attributes, etc.
• Helper classes: non-bean classes needed by the enterprise bean class such as utility and exception classes.
Saastha Infotech
30