ejb 3.0 and j2ee

30
Understanding Understanding EJB EJB By: Asha Pathik Aniruddha Ray

Upload: aniruddha-ray

Post on 16-Jan-2015

1.902 views

Category:

Technology


3 download

DESCRIPTION

Ashi's presentation on EJB 3.0

TRANSCRIPT

Page 1: EJB 3.0 and J2EE

UnderstandingUnderstanding EJBEJB

By:

Asha Pathik

Aniruddha Ray

Page 2: EJB 3.0 and J2EE

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

Overview and Basic concepts What is EJB?

Saastha Infotech

3

Page 4: EJB 3.0 and J2EE

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

Overview and Basic concepts When to use EJB

Saastha Infotech

5

Page 6: EJB 3.0 and J2EE

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

Overview and Basic concepts Evolution of Enterprise JavaBeans

Saastha Infotech

7

Page 8: EJB 3.0 and J2EE

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

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

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

Overview and Basic concepts Containers

Saastha Infotech

11

Page 12: EJB 3.0 and J2EE

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

EJB Components Saastha Infotech

13

Page 14: EJB 3.0 and J2EE

EJB Components

Session Beans

Saastha Infotech

14

Page 15: EJB 3.0 and J2EE

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

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

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

Stateful Session Bean : Life Cycle

Saastha Infotech

18

Page 19: EJB 3.0 and J2EE

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

EJB Components

Entity Beans

Saastha Infotech

20

Page 21: EJB 3.0 and J2EE

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

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

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

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

Entity Bean : Life Cycle

Saastha Infotech

25

Page 26: EJB 3.0 and J2EE

EJB Components

Message-driven Beans

Saastha Infotech

26

Page 27: EJB 3.0 and J2EE

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

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

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

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