Post on 18-Jan-2018
description
transcript
Enterprise JavaBeans: Fundamentals
EJB Fundamentals (c)CDAC(Formerly NCST) 2
Contents Introduction Technology Overview EJB Architecture EJB Specification Sample Application
EJB Fundamentals (c)CDAC(Formerly NCST) 3
Sun’s 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.
EJB Fundamentals (c)CDAC(Formerly NCST) 4
Short 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.
EJB Fundamentals (c)CDAC(Formerly NCST) 5
Enterprise 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.
EJB Fundamentals (c)CDAC(Formerly NCST) 6
Types of Beans Session Bean Entity Bean Message driven Bean
EJB Fundamentals (c)CDAC(Formerly NCST) 7
Session Bean Session beans model business
processes. They are like ‘verbs’ because they
are actions. E.g. billing engine, catalog engine
etc:
EJB Fundamentals (c)CDAC(Formerly NCST) 8
Entity 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.
EJB Fundamentals (c)CDAC(Formerly NCST) 9
Message 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.
EJB Fundamentals (c)CDAC(Formerly NCST) 10
EJB Architecture
EJB MessageDriven Bean
EJB SessionBean
EJB EntityBean
EJB SessionBean
EJB SessionBean
EJB SessionBean
Servlet JSPMessaging
ClientC/C++Client
Java AppletJava Appl
BusinessPartner System
HTML Client
Messaging CORBA-IIOP RMI-IIOP RMI-IIOP RMI-IIOP
HTTPFirewall SOAP,UDDIWSDL,ebXML
WebServer
Application Server
PresentationTier
BusinessTier
EJB Fundamentals (c)CDAC(Formerly NCST) 11
EJB Foundation: Distributed Objects
Client
Skeleton
DistributedObject
Stub
Network
Remote InterfaceRemote Interface
EJB Fundamentals (c)CDAC(Formerly NCST) 12
What 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.
EJB Fundamentals (c)CDAC(Formerly NCST) 13
Services 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
EJB Fundamentals (c)CDAC(Formerly NCST) 14
Explicit Middleware
Client
Skeleton
DistributedObject
Stub
Network
Remote InterfaceRemote Interface
TransactionServices
SecurityServices
Databasedrivers
Database API
Security API
Transaction API
EJB Fundamentals (c)CDAC(Formerly NCST) 15
Example – 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.
EJB Fundamentals (c)CDAC(Formerly NCST) 16
Explicit Middleware Difficult to Write. Difficult to Maintain. Difficult to Support.
EJB Fundamentals (c)CDAC(Formerly NCST) 17
Implicit MiddlewareClient
Skeleton
RequestInterceptor
Stub
Network
Remote Interface Remote Interface
TransactionServices
SecurityServices
Databasedrivers
Database API
Security API
Transaction API
DistributedObject
Remote Interface
EJB Fundamentals (c)CDAC(Formerly NCST) 18
Example – Bank account obj Transfer(Acct acc1,Acct acc2,long
amt)//1. Perform trans.(subtract bal from
one account and add to other).
EJB Fundamentals (c)CDAC(Formerly NCST) 19
Implicit Middleware Easy to Write. Easy to Maintain. Easy to Support.
EJB Fundamentals (c)CDAC(Formerly NCST) 20
EJB 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.
EJB Fundamentals (c)CDAC(Formerly NCST) 21
EJB 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.
EJB Fundamentals (c)CDAC(Formerly NCST) 22
Enterprise 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.
EJB Fundamentals (c)CDAC(Formerly NCST) 23
EJB Object Client request interceptor. It duplicates all the business logic
methods that the corresponding bean class exposes.
Proprietary and specific to each EJB container.
EJB Fundamentals (c)CDAC(Formerly NCST) 24
Remote 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.
EJB Fundamentals (c)CDAC(Formerly NCST) 25
Home Object EJB object factory. Creates,finds and destroys EJB
objects. Proprietary and specific to each
EJB container. Home objects implements Home
Interface.
EJB Fundamentals (c)CDAC(Formerly NCST) 26
Home 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.
EJB Fundamentals (c)CDAC(Formerly NCST) 27
Local AccessLocal objects make enterprise bean calls
fast and efficient.Local objects implements Local Interface.Local home objects creates beans fast.Local home object implements Local Home
interface.
EJB Fundamentals (c)CDAC(Formerly NCST) 28
Deployment 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.
EJB Fundamentals (c)CDAC(Formerly NCST) 29
Vendor Specific Files All vendors have proprietary value
added features. Include files specific to that
vendor.
EJB Fundamentals (c)CDAC(Formerly NCST) 30
Package
RemoteInterface
LocalInterface
EnterpriseBean
HomeInterface
DeploymentDescriptor
VendorSpecific
Jar file creator EJB jar file
EJB Fundamentals (c)CDAC(Formerly NCST) 31
Sample ApplicationMy First Bean!
EJB Fundamentals (c)CDAC(Formerly NCST) 32
Session Bean : FirstBeanpackage example;public class FirstBean implements javax.ejb.SessionBean{
private SessionContext ctx;
public void ejbCreate() {System.out.println(“ejbCreate()”);
} public void ejbRemove() {
System.out.println(“ejbRemove()”);}public void ejbActivate() {
System.out.println(“ejbActivate()”);}
EJB Fundamentals (c)CDAC(Formerly NCST) 33
public void ejbPassivate(){
System.out.println(“ejbPassivate()”);}public void setSessionContext(javax.ejb.SessionContext ctx){
this.ctx=ctx;}public String first(){
System.out.println(“first()”);return “My First Bean”;
}}
EJB Fundamentals (c)CDAC(Formerly NCST) 34
Remote Interface : First.java
package example;
public interface First extends javax.ejb.EJBObject{
public String first() throws java.rmi.RemoteException;}
EJB Fundamentals (c)CDAC(Formerly NCST) 35
Home Interface : FirstHome
package example;
public interface FirstHome extends javax.ejb.EJBHome{
First create() throws java.rmi.RemoteException,javax.ejb.CreateException;
}
EJB Fundamentals (c)CDAC(Formerly NCST) 36
Deployment Descriptor<ejb-jar>
<enterprise-bean><session> <ejb-name>First</ejb-name> <home>example.FirstHome</home> <remote>example.First</remote> <ejb-class>example.FirstBean<ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type></session>
</enterprise-bean></ejb-jar>
EJB Fundamentals (c)CDAC(Formerly NCST) 37
Client Applicationpackage example;
import javax.naming.*;Import java.util.*;
public class FirstClient{public static void main(String[] arg) throws Exception{
Properties props=System.getProperties();Context ctx=new InitialContext(props);Object obj=ctx.llokup(“FirstHome”);FisrtHome home=(FirstHome)javax.rmi.RemotePortableObject.narrow(obj,FirstHome.class);
EJB Fundamentals (c)CDAC(Formerly NCST) 38
First first=home.create();System.out.println(first.first());first.remove();
}}
EJB Fundamentals (c)CDAC(Formerly NCST) 39
EJB Object Model<<interface>>
java.rmi.Remote<<interface>>
java.io.Serializable
<<interface>>javax.ejb.EnterpriseBean
<<interface>>javax.ejb.SessionBean
Bean ImplementClass
<<interface>>javax.ejb.EJBObject
<<interface>>Javax.ejb.EJBHome
<<interface>>Remote Interface
<<interface>>Home Interface
EJB Object Home Object
Comes with Java2 platform
Comes with EJB Distribution
Written by developer
Generated by Componet Vendor Tool
EJB Fundamentals (c)CDAC(Formerly NCST) 40
HomeObject
EJBObject
EnterpriseBean
Client
NamingService
1 : Retrieve Home objectReference
2 : Return Home objectReference
JNDI
3: Create a newEJB Object
4: Create a newEJB Object
5: Return EJB Object Reference
6: Invoke BusinessMethod
7: Delegate Request to Bean
RemoteInterface
HomeInterface
EJB Container
EJB Fundamentals (c)CDAC(Formerly NCST) 41
Advantages 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 vendor’s enterprise middleware services.
It is agreed upon by industry.
EJB Fundamentals (c)CDAC(Formerly NCST) 42
References Mastering Enterprise Java Beans J2EE 1.4 Tutorials Professional Java Server
Programming, J2EE Edition