Title: EJB Fundamentals
1EJB Fundamentals
2Contents
- Introduction
- Technology Overview
- EJB Architecture
- EJB Specification
- Sample Application
3Suns Definition
- EJB architecture is a component architecture for
the development and deployment of component based
distributed business applications. - Applications written using EJB architecture are
scalable, transactional, and multi-user secure. - These applications may be write once, and then
deployed on any server platform that supports the
EJB specification.
4Short Definition
- EJB is a server-side component architecture that
simplifies the process of building
enterprise-class distributed component
applications in Java. - EJB provides standard for component architecture.
5Enterprise Bean
- Server side software components that can be
deployed in distributed multi tier environment. - They encapsulate business logic of an
application. - Consists of one or more java objects.
6Types of Beans
- Session Bean
- Entity Bean
- Message driven Bean
7Session Bean
- Session beans model business processes.
- They are like verbs because they are actions.
- E.g. billing engine, catalog engine etc
8Entity Bean
- Entity Bean Models business data.
- They are like nouns because they are data
objects - E.g. product, an order, an employee etc
- Session beans typically calls entity beans to
perform business goals.
9Message Driven Bean
- Message driven beans are similar to session
beans. - They are actions.
- They are called only when they receive some
message. - E.g. stock trade message.
10EJB Architecture
Business Partner System
HTML Client
Presentation Tier
HTTP
SOAP,UDDI WSDL,ebXML
Firewall
Messaging Client
C/C Client
Java Applet Java Appl
Servlet
JSP
Web Server
CORBA-IIOP
RMI-IIOP
RMI-IIOP
RMI-IIOP
Messaging
Application Server
EJB Message Driven Bean
EJB Session Bean
EJB Session Bean
Business Tier
EJB Session Bean
EJB Entity Bean
EJB Session Bean
11EJB Foundation Distributed Objects
Client
Distributed Object
Remote Interface
Remote Interface
Skeleton
Stub
Network
12What do we need to worry about now?
- We take a monolithic application and break it
into distributed system with multiple clients
connecting to multiple servers and databases over
network.
13Services
- Remote Method Invocation
- Load Balancing
- Transparent Fail Over
- Back end integration.
- Clustering
- Dynamic Re deployment
- Object life cycle
- Caching
- Security
- Resource Pooling
- System Management
- Message Oriented Middleware
- And many more..
Middleware
14Explicit Middleware
Transaction API
Transaction Services
Security API
Client
Distributed Object
Security Services
Remote Interface
Database API
Remote Interface
Database drivers
Skeleton
Stub
Network
15Example Bank account obj
- Transfer(Acct acc1, Acct acc2,long amt)
- //1.Call middleware API to perform security
check. - //2.Call middleware API to start a trans
- //3.Call middleware API to load rows from db.
- //4.perform trans.
- //5.Call middleware API to store rows in db
- //6.Call middleware API to end the trans.
16Explicit Middleware
- Difficult to Write.
- Difficult to Maintain.
- Difficult to Support.
17Implicit Middleware
Distributed Object
Client
Transaction API
Transaction Services
Remote Interface
Security API
Request Interceptor
Security Services
Remote Interface
Remote Interface
Database API
Database drivers
Skeleton
Stub
Network
18Example Bank account obj
- Transfer(Acct acc1,Acct acc2,long amt)
- //1. Perform trans.(subtract bal from one account
and add to other).
19Implicit Middleware
- Easy to Write.
- Easy to Maintain.
- Easy to Support.
20EJB Container
- House enterprise bean and makes them available to
the client to invoke them remotely. - It intercepts the client request and delegates
them to corresponding bean class. - It automatically performs implicit middleware
that the distributed object needs. - EJB object is the physical part of the container.
21EJB Component Ingredients
- Enterprise Bean Class
- Interfaces
- Remote and Home interface for remote access.
- Local and Local Home interface for local access.
- Deployment Descriptor.
- Vendor Specific files.
22Enterprise Bean Class
- It conforms to a well defined interface.
- It contains business implementation details of
our component. - Each bean type has more specific interface that
extends javax.ejb.EnterpriseBean interface. - Bean class implements the interface corresponding
to the bean type.
23EJB Object
- Client request interceptor.
- It duplicates all the business logic methods that
the corresponding bean class exposes. - Proprietary and specific to each EJB container.
24Remote Interface
- Interface to request interceptor.
- Informs EJB Object auto generator which methods
to clone. - All remote interfaces must derive from
javax.ejb.EJBObject. - EJB remote interfaces must confirm to RMI rules.
25Home Object
- EJB object factory.
- Creates,finds and destroys EJB objects.
- Proprietary and specific to each EJB container.
- Home objects implements Home Interface.
26Home Interface
- EJB Object factory interface.
- They define methods for creating,destroying and
finding EJB Objects. - All home interfaces must extend
javax.ejb.EJBHome. - EJB remote interfaces must confirm to RMI rules.
27Local Access
- Local objects make enterprise bean calls fast and
efficient. - Local objects implements Local Interface.
- Local home objects creates beans fast.
- Local home object implemnts Local Home interface.
28Deployment Descriptor
- Declare how the container should perform
middleware services for the EJB component. - In EJB 2.0 deployment descriptor is a XML file.
- Key to implicit middleware.
29Vendor Specific Files
- All vendors have proprietary value added
features. - Include files specific to that vendor.
30Package
Remote Interface
Local Interface
EJB jar file
Jar file creator
Enterprise Bean
Home Interface
Deployment Descriptor
Vendor Specific
31Sample ApplicationMy First Bean!
32Session Bean FirstBean
package example public class FirstBean
implements javax.ejb.SessionBean private
SessionContext ctx public void
ejbCreate() System.out.println(ejbCreate())
public void ejbRemove() System.out.pri
ntln(ejbRemove()) public void
ejbActivate() System.out.println(ejbActivate
())
33 public void ejbPassivate() System.out.printl
n(ejbPassivate()) public void
setSessionContext(javax.ejb.SessionContext
ctx) this.ctxctx public String
first() System.out.println(first()) retu
rn My First Bean
34Remote Interface First.java
package example public interface First extends
javax.ejb.EJBObject public String first()
throws java.rmi.RemoteException
35Home Interface FirstHome
package example public interface FirstHome
extends javax.ejb.EJBHome First create()
throws java.rmi.RemoteException, javax.ejb.Create
Exception
36Deployment Descriptor
ltejb-jargt ltenterprise-beangt ltsessiongt
ltejb-namegtFirstlt/ejb-namegt lthomegtexample.First
Homelt/homegt ltremotegtexample.Firstlt/remotegt
ltejb-classgtexample.FirstBeanltejb-classgt
ltsession-typegtStatelesslt/session-typegt
lttransaction-typegtContainerlt/transaction-typegt lt
/sessiongt lt/enterprise-beangt lt/ejb-jargt
37Client Application
package example import javax.naming. Import
java.util. public class FirstClient public
static void main(String arg) throws
Exception Properties propsSystem.getPropert
ies() Context ctxnew InitialContext(props)
Object objctx.llokup(FirstHome) FisrtHome
home(FirstHome) javax.rmi.RemotePortableObject.
narrow (obj,FirstHome.class)
38 First firsthome.create() System.out.println(
first.first()) first.remove()
39EJB Object Model
ltltinterfacegtgt java.rmi.Remote
ltltinterfacegtgt java.io.Serializable
Comes with Java2 platform
ltltinterfacegtgt javax.ejb.EnterpriseBean
ltltinterfacegtgt javax.ejb.EJBObject
ltltinterfacegtgt Javax.ejb.EJBHome
ltltinterfacegtgt javax.ejb.SessionBean
Comes with EJB Distribution
ltltinterfacegtgt Remote Interface
ltltinterfacegtgt Home Interface
Bean Implement Class
Written by developer
EJB Object
Home Object
Generated by Componet Vendor Tool
40EJB Container
3 Create a new EJB Object
Home Interface
Client
Home Object
5 Return EJB Object Reference
4 Create a new EJB Object
6 Invoke Business Method
2 Return Home object Reference
1 Retrieve Home object Reference
EJB Object
Enterprise Bean
Remote Interface
7 Delegate Request to Bean
JNDI
Naming Service
41Advantages of EJB
- Helps to write scalable,reliable and secure
applications. - Provides distributed component framework and
hence supports rapid application development. - Supports application portablility and reusability
across any vendors enterprise middleware
services. - It is agreed upon by industry.
42References
- Mastering Enterprise Java Beans
- J2EE 1.4 Tutorials
- Professional Java Server Programming, J2EE Edition