0% found this document useful (0 votes)
162 views61 pages

Java Ejb Presentation

The document provides an overview of Enterprise Java Beans (EJBs), including what EJBs are, the different types of EJBs (session beans, entity beans, message-driven beans), and how clients can access EJBs either remotely or locally. It discusses the key concepts of EJBs such as their use in multi-tier architectures, transaction management, security, and persistence.

Uploaded by

priya419
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
162 views61 pages

Java Ejb Presentation

The document provides an overview of Enterprise Java Beans (EJBs), including what EJBs are, the different types of EJBs (session beans, entity beans, message-driven beans), and how clients can access EJBs either remotely or locally. It discusses the key concepts of EJBs such as their use in multi-tier architectures, transaction management, security, and persistence.

Uploaded by

priya419
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 61

Softsmith

Open Learning - EJB


21-Nov-2008

1
Enterprise Java Beans
• Introduction
– Application Server
– Java 2 Enterprise Edition
• What is an Enterprise Bean ?
– EJB Properties
– EJB Overview
– Deployment Phase
– Type of beans

• Client access with interfaces


– Remote access
– Local Access

2
Enterprise Java Beans
• Contents of an Enterprise Bean
• EJB Example
• EJB vs MTS
• A few EJB implementations
• What’s new in EJB 2.0
• Bibliography

3
Introduction

• Enterprise Java Beans ( EJB ) is


– a middleware component model for Java and CORBA
– a specification for creating server-side, scalable,
transactional, multi-user and secure enterprise-level
applications
– one of several Java APIs in the Java
• Presented by Sun in the 1999, they are easier
than other technologies as RMI or Corba

4
Introduction

• This is the three level structure for Application


Server

5
Applicaton Server

• Presentation
– HTML Application
– Java Application
• Business Logic
• Data Access

6
Presentation

• HTML • Java
– Generated server-side – Required Java virtual
HTML Machine
– Runs on any Web – More client side power
browser – Runned on a page
– Less client-side power – Security (Applet)
– Launched from a
browser or a
standalone application

7
Business Logic

• Implements the logic of the application defining


all the function that may be used from a client
– Change Business Rules Easily
– Re-use components
– Make complex applications manageable
– Secure Data hiding

8
Data Access

• Utility to access external datas such as


Database or other Web component
• Access other SOA

9
J2EE Application Server

• Java 2 Enterprise Edition standardizes


interfaces for Application Server components

10
What is an Enterprise Bean ?
• Is a server side component written in Java
Language
• Industry standard distribuited component model
• Incorporates the business logic of an application
( the code that implements the purpose of the
application)
• Replicates the table model as objects

11
EJB Properties
• Bean writers need not write
– Remote access Protocols
– Transactional Behaviour
– Threads
– Security
– State Management
– Object life cycle
– Resource pooling
– Persistence
– Native queries execution

12
EJB Overview

13
Deployment Phase

14
Deployment Phase

15
When to use Enterprise bean
• The application must be scalable.It will run on
different machine and their location will remain
transparent to the client
• Transaction requirement
• The application will have lot of different type of
clients
• Multilevel security layer

16
Type of beans
• Session Bean
• Entity Bean
• Message Driven Bean

17
Session Bean
• Represents a single client inside the server
• The client calls the session bean to invoke
methods of an application on the server
• Perform works for its client, hiding the complexity
of interaction with other objects in the server
• Is not shared
• Is not persistent
• When the client stops the session,the bean can
be assigned to another client from the server
• Unique to each client
18
Session Bean

• Stateful session bean

• Stateless session bean

19
Stateful Session Bean

• Contains the state of a single client session:


– Information on the client
– On method called
– Return values
This state is called conversational state and is
not retained when the session ends, also if
the client not removes the bean
- Remembers previous request, and response
of session

20
Stateless Session Bean

• Not maintain a conversational state for a


particular client
• Contains values only for the duration of the
single invocation
• Except during method invocation, all instances
of stateless session bean are equivalent
• Pooled

21
Entity Bean
• Represents a business object in a persistent storage
mechanism such as a relational database
• Usually is a table in the database and each instance of
that entity bean is a row in that table
Properties:
• Persistent
• Allow shared access
• Have primary key
• Have relationship with other entity beans.
• Auto commit.

22
Entity Bean persistent

• Bean managed persistence

• Container managed persistence

23
Bean managed
persistence
• Who write the bean’s code must access the
database and save his own data
• you will have more control over how the entity
bean accesses a database

24
Container managed persistence

• The container save the data


• There is no code in the bean for access the
database
• The container handles all database access
required for the bean
• Links between beans are created using a
structure called abstract schema
• the EJB container transparently and implicitly
manages the persistent state
25
Entity bean’s shared access
• Entity beans can be used by different clients
• It’s important that they work whithin transactions
• The EJB container provides transaction management
• The transaction’s attribute are specified in the bean’s
deployment description
• Concurrency management

26
Entity bean’s primary key

• Each entity bean has a unique object identifier


like a key in a database table
• Each instance represents as Row in table

27
Entity bean’s relationship

• Container managed persistent


– The container performs all the operation to create
relationship
• Bean managed persistent
– The code to perform relations must be written in the
bean

28
Message Driven bean

• Allows applications to process messages


asynchronously
• The messages may be sent by :
– An application client
– Another enterprise bean
– A Web component
– A JMS Client

29
Message Driven bean
• Retain no data or conversational state for a specific
client
• All instances are equivalent, allowing the EJB
container to assign a message to any message-
driven bean instance. The container can pool these
instances.
• The instance variables of the message-driven
bean e can contain some state across the
handling of client messages--for example, a
JMS API connection, an open database
connection, or an object reference to an ejb.

30
Message Driven bean

• A client can’t access directly to a message


driven bean
• When a message arrive, the container gives it to
a message driven bean
• The bean process the message
• The onMessage method may call helper methods,
or it may invoke a session or entity bean to
process the information in the message or to
store it in a database

31
Client access with interfaces

• A client may access a session or an entity bean


only through the methods defined in the bean's
interfaces
• They define the client's view of a bean
• Public business methods declared in Bean
interface’s can be visible to client, to invoke
• Types of access:
– Remote access
– Local access

32
Remote access

• A remote client of an enterprise bean has the


following traits:
– It may run on a different machine and a different Java
virtual machine than the enterprise bean it accesses
(It is not required to run on a different JVM )
– It can be a Web component
– It can be another enterprise bean
– It can be RMI object

33
Remote access

• To create an enterprise bean with remote


access, you must :
– Code a remote interface
• Business methods
– Code a home interface
• Finder methods
• Home methods
• Utility methods (to get home)

34
Remote access example

35
Local access

• A local client has these characteristics


– It must run in the same JVM as the enterprise
bean it accesses
– It may be a Web component or another
enterprise bean
– To the local client, the location of the
enterprise bean it accesses is not transparent
– It is often an entity bean that has a container-
managed relationship with another entity bean

36
Local access

• To create an enterprise bean with local access,


you must :
– Code the local interface
• Bean's business methods
– Code the local home interface
• Life cycle
• Finder methods
• Utility methods

37
Local interfaces

• If an entity bean is the target of a container


managed relationship it MUST have local
interfaces
• An EJB can use local client view only if it is
really guaranteed that other enterprise beans or
clients will only address the bean within a single
JVM

38
Contents of an Enterprise Bean

• Deployment descriptor
– Persistence type
– Transaction attribute
• Enterprise bean class
• Interfaces
• Helper classes
– Exception
– Utility classes

39
EJB Example

• The OnLine Bank


We will take a not completed system to give an idea to
how choose if a component is an entity, session or
message driven bean.

40
EJB Example
 

Virtual Bank

Security Accounts

Services

 
Client

41
EJB Example

The example has three component:


– Services: what the client can do in the system such as
see the foreign currency , listed shares or make
operations on his hown account.
– Accounts: a database containing the accounts of all
the clients of the bank with information about
credit,debit,access etc..
– Security: is a subsystem that receives all the alarm
caused from wrong access and performs action about
the situation
( calls police and stops operation of that client
keeping information about him )
42
EJB Example

• In this example is easy to create an EJB structure.


– Client will have a web page at client side to insert values and
connect the system.This will be done using JSP ( Java Servlet
Pages )
– Services will be a Statefull Session Bean and it will be different
for each client connecting the system mantaining data about the
client connected.
– Accounts will be formed by an Entity Bean for each account in
the system with a code-account as primary key.
– Security will be a Message driven bean and will be called only
from container if some operation are abnormal for result or the
autentification for the same client fails too much times.

43
A few EJB implementations

• WebLogic
• Bluestone
• Novera
• Persistence
• Oracle AS
• Oracle8i

44
What’s new in EJB 2.0
• Released On April 26, 2001
• Integration with JavaTM Message Service (JMS) --
Asynchronous Capabilities Streamline Systems
– Send asynchronous messages via the JMS API
• Container-Managed Persistence (CMP) -- Simplifying
and Expediting Application Development
– Used to isolate the application developer from the physical
database schema
– Introduces for the first time a portable query language, based on
the abstract schema
– No need to worry about data access code

45
What’s new in EJB 2.0
• Local Interfaces -- Streamlining Calls Between Local
Beans
– The local interface may be defined for a bean during
development, to allow streamlined calls to the bean if a caller is
in the same container
– Uses when Client and bean reside in same JVM
• Inter-Server Interoperability -- Enabling Heterogeneous
Environments
– Takes the benefit of cross-server application portability
– Able to deploy the EJB technology-based application across a
heterogeneous environment mixing application servers from
different vendors

46
The EJB architecture

• Consists of:
– An EJB server
– EJB containers that run within the server
– Home objects
– Remote EJBObjects
– Enterprise Beans
– EJB clients
– Auxiliary systems like
• Java Naming and Directory Interface (JNDI)
• Java Transaction Service (JTS)
• Security services
• Threading
• Pooling

47
The EJB architecture

48
Stateful session bean’s
life cycle
• The client invoke the create method
• The EJB container :
– Instantiates the bean
– Invokes the setSessionContext
– Invokes ejbCreate
• The bean is ready
• Business methods ready to be called

49
Stateful session bean’s
life cycle
• While in the ready state
– EJB container may passivate the bean moving it from
memory to secondary storage
– A client may invoke a business method
– EJB container may activate a bean,moving it back to
the ready stage, and then calls the bean's ejbActivate
method
– A client may invoke the remove method and the
container calls the bean's ejbRemove method
– Client cannot invoke passivate

50
Stateful session bean’s
life cycle

51
Stateless session bean’s
life cycle
• The client invoke the create method
• The EJB container :
– Instantiates the bean
– Invokes the setSessionContext
– Invokes ejbCreate
• The bean is ready

52
Stateless session bean’s
life cycle
• While in the ready state
– A client may invoke a business method
– A client may invoke the remove method and the
container calls the bean's ejbRemove method
– It’s never passivate
– It’s can be pooled

53
Stateless session bean’s
life cycle

54
Entity bean’s life cycle

• The EJB container :


– Creates the instance
– Calls the setEntityContext
• The entity bean moves to a pool of available
instances

55
Entity bean’s life cycle
• While in the pool :
– Instance is not associated with any particular object
identity
– All instances in the pool are identical
– EJB container may assign an identity to an instance
when moving it to the ready stage invoking the
ejbActivate method
– A client may invoke the create method
• EJB container calls ejbCreate and ejbPostCreate
– EJB container may remove the instance invoking
unsetEntityContext
– Same bean instance (row) shared by all client
56
Entity bean’s life cycle

• While in the ready state :


– A client may invoke entity bean's business methods
– A client may invoke the remove method
• EJB container calls the ejbRemove method
– EJB container may invoke the ejbPassivate method

57
Entity bean’s life cycle

58
Message driven bean’s
life cycle
• EJB container creates a pool of message-driven
bean instances
• For each instance, the EJB container instantiates
the bean :
– It calls the setMessageDrivenContext
– It calls the instance's ejbCreate
• Like a stateless session bean,it’s never passivated,
It has only two states:
– Nonexistent
– Ready to receive messages.
– is only a bean class – no interfaces

59
Message driven bean’s
life cycle
• While in the ready state :
– EJB container may call onMessage
– EJB container may call the ejbRemove

60
Message driven bean’s
life cycle

61

You might also like