SlideShare a Scribd company logo
1 of 62
EJB Architecture and Design
CS486
Global Knowledge Networks
Instructor : Dr. V. Juggy
Presentation by:
Aravind Vinnakota
What is EJB?
An EJB is just a collection of Java classes
and XML file, bundled into a single unit.
The Java classes must follow certain rules
and provide certain callback methods.
EJB is just a specification. It is not a
product.
EJBs are reusable components.
What is EJB?
EJB is a widely-adopted server-side
component architecture for J2EE.
EJB components are designed to
encapsulate business logic, and to protect
the application developer from having to
worry about system level issues.
Contents
Services provided by EJB container
Circumstances of EJB component usage
How an EJB component looks like?
View of an EJB component by client
programmer and EJB developer
Mechanisms by which EJB container provides
its services
Rules an EJB developer must follow and how to
use EJBs in a web architecture?
Key features of EJB technology
EJB components are server-side components
written entirely in the Java programming
language
EJB components contain business logic only -
no System-level programming
System-level services (i.e. "plumbing") such as
transactions, security, Life-cycle, threading,
persistence, etc. are automatically managed for
the EJB component by the EJB server
Key features of EJB technology
EJB architecture is inherently transactional,
distributed, portable, multi-tier, scalable and
secure
EJB components are fully portable across any
EJB server and any OS, work with any client.
Components are declaratively customized
There are four major parts to every bean: the
home interface, the remote interface, the
implementation class and the XML deployment
descriptor
EJB vs JavaBeans
The JavaBeans architecture is meant to
provide a format for general-purpose
components whereas the EJB
architecture provides a format for
encapsulation and management of
business logic.
JavaBeans has tier of execution at Client
and EJB has at Server (specifically
business logic tier)
EJB vs JavaBeans
In JavaBeans the runtime execution
environment provides services like Java
libraries, Java application etc. The EJB
runtime environment provides services of
Persistence, declarative transactions and
security, connection pooling and lifecycle
services.
Varieties of Beans
Session Beans
Stateful session bean
Stateless session bean
Entity Beans
With container-managed persistence
With bean-managed persistence
Message-Driven Beans
Why use EJBs in your design?
EJB specification provides enterprise-
level services, that is, it provides software
services that are fundamental to an
organization’s purpose.
EJB’s API was designed to keep the
application programmer from having to
provide systems-level services, so that
they are free to concentrate on business
logic.
Why use EJBs in your design?
A requirement of any of the services
provided by an EJB container like
transactions, scalability, persistence,
security, future growth possibilities is an
appropriate reason to use EJB in the
design of the application.
EJB Architecture
J2EE Application Server
EJB Container
Application Logic DataClient
RDBMS
Corba
Mail
RMI
JDBC
Java
Mail
JMS
JTA
Session Bean
Entity Bean
Client
Application
Roles in EJB Development
EJB provider - a person who develops
EJB Components
EJB Deployer - a person responsible for
deploying EJB’s in EJB server
Application Server/ EJB Container Vendor
- one who provides application server on
which the application is deployed
Roles in EJB Development
Application assembler - one who combine
the EJB components with other software
to make a complete application
System administrator - one who manages
the application after it has been deployed
into a target environment.
Roles in EJB Development
EJB
Provider
Application
Assembler
App Server/
EJB Container
Provider
Deployer
System
Administrator
EJB Container and its Services
A container is an execution environment
for a component. The component lives in
the container and the container provides
the services for the component.
Similarly, a container lives in an
application server, which provides an
execution environment for it and other
containers.
Services provided by an EJB container
Persistence
Ex: simple connection pooling, automatic
persistence, etc. EJBs created with
application development tools will
encapsulate data access in components.
Services provided by an EJB container
Declarative transactions
Data caching
Declarative Security
Error Handling
Component Framework for Business
Logic
Scalability and Fall-Over
Portability
How the Container Provides Services
There are three basic ideas:
First, there are clearly defined responsibilities between
the various parts of an application using EJB component
namely the client, the EJB container and the EJB
component. The definition of these responsibilities is
formally known as a contract.
Second, the services that the container provides are
defined in such a way that they are orthogonal to the
component. In other words, security, persistence,
transactions are separate from the Java files that
implement the business logic of the component.
How the Container Provides Services
Third, the container interposes on each
and every call to an EJB component so
that it can provide its services. In other
words, the container puts itself between
the client and the component on every
single business method call.
Contracts
EJB Container/Application
Server
Enterprise JavaBean
Client
Rules for the bean programmer
The developer of the EJB component must implement
the business methods in the implementation class
The bean provider must implement the ejbCreate(),
ejbPostCreate(),ejbRemove() methods and the
ejbFind<METHOD>() methods if the bean is an entity
with bean managed persistence
The bean provider must define the enterprise bean’s
home and remote interfaces
For session beans, the bean provider must implement
the container callbacks defined in the
javax.ejb.SessionBean interface
Rules for the bean programmer
For entity beans, the provider must
implement the container callbacks defined
in the javax.ejb.EntityBean interface
The bean provider must not use
programming practices that would
interfere with the container’s runtime
management of the enterprise bean
instances
Interposition : method call to an EJB
Container from a remote client
First, the client makes a call on the RMI
stub
This RMI stub interposes on the method
call in order to marshal parameters and
send the information across the network
A skeleton on the server side unmarshals
the parameters and delivers them to the
EJB Container
Interposition diagram
Interposition class
Client
Container
generated
class
EJB
RMI
Stub
RMI
Stub
Network
Interposition : from EJB
Container to EJBs
The container will examine the security credentials of the
caller of the method
It will start or join with any required transactions
It will make any necessary calls to persistence functions
It will trigger various callbacks to allow the EJB
Component to acquire resources
Only after all this is done will the actual business method
be called
Once it is called, the container will do some more work
with transactions, persistence, callbacks and returns
data or exception to the remote client
Working with EJBs
The Enterprise JavaBeans specification is
written for three audiences:
The Client developer
The EJB developer
The EJB container developer
EJB Clients
EJB Clients are applications that access EJB
components in EJB containers. There are two
possible types. The first category is application
clients which are stand-alone applications
accessing the EJB components using the RMI-
IIOP protocol. The second category of
application clients are components in the web
container. They are java servlets and JSPs
which also access the EJB components via the
RMI-IIOP protocol.
The Client Developer’s View
The client has a smaller set of concerns then a
bean developer with regard to using EJBs.
Basically, he need to know :
how to find or create a bean,
how to use its methods and
how to release its resources
The client need not worry about the
implementation of the EJB, callbacks that the
EJB container will make on the EJB or nature of
the services provided to the EJB.
EJB’s interface
Home Interface : It is primarily for the life cycle
operations of the bean: creating, finding, and
removing EJBs. The home interface is not
associated with a particular bean, just with a
type of bean.
Remote Interface : It is for business methods.
Logically, it represents a particular bean on the
server. The remote interface also provides some
infrastructure methods associated with a bean
instance, rather than a bean type.
Sample client application
pseudo code
A client programmer will acquire an EJB’s home
interface through JNDI, and they use this home
interface to :
Create or find
instance of bean
Execute methods Reference
(Handle)
Remove bean
Client.java
Package orderMgmt;
import java.util.properties;
import java.naming.Context; // for name-to-object findings
import java.naming.InitialContext;// context for naming operations
public class Client {
try {
Properties prop = new Properties();
// server dependent properties for InitialContext
prop.put(Context.INITIAL_CONTEXT_FACTORY,
“org.jnp.interfaces.NamingContextFactory”);
prop.put(Context.PROVIDER_URL, “localhost:1099”);
Context ctx = new InitialContext(prop);
Object objref = ctx.lookup(“OrderManagement”);
Client contd..
// casting home interface reference to the OrderManagementHome
OrderManagementHome home = (OrderManagementHome)
javax.rmi.PortableRemoteObject.narrow(objref,
OrderManagementHome.class);
// home interface to create an instance of the OrderManagement
OrderManagement orderManagement = home.create();
// calling placeOrder()
orderManagement.placeOrder("Dan OConnor",
"Wrox books on programming", 1000);
orderManagement.remove();
System.out.println("Order successfully placed.");
} catch (Exception e) { e.printStackTrace(); }
} }
The Bean Programmer’s view
Main responsibility is write business logic and
structure the code in a particular structure. The
structure has 4 files, the home interface, remote
interface, business logic class file and the XML
file. The XML file called the deployment
descriptor, contains the structural information
about the bean, declares the bean’s external
dependencies and specifies certain information
about how services such as transaction and
security work.
Interface EJBObject
package javax.ejb;
public interface javax.ejb.EJBObject extends java.rmi.Remote {
EJBHome getEJBHome() throws java.rmi.RemoteException;
Handle getHandle() throws java.rmi.RemoteException;
Object getPrimaryKey() throws java.rmi.RemoteException;
boolean isIdentical(EJBObject obj) throws
java.rmi.RemoteException;
void remove() throws java.rmi.RemoteException;
}
OrderManagement code..
package orderMgmt;
import javax.ejb.*;
public interface OrderManagement extends javax.ejb.EJBObject
{
public void placeOrder(String custName, String prodName, int
quantity) throws java.rmi.RemoteException;
public void cancelOrder(String custName, String prodName)
throws java.rmi.RemoteException;
public boolean isShipped(String custName, String prodName)
throws java.rmi.RemoteException;
}
OrderManagementBean code..
package orderMgmt;
import javax.ejb.*;
public class OrderManagementEJB implements
javax.ejb.SessionBean
{
public void placeOrder(String custName, String prodName, int
quantity)
{ // ... Business logic ...}
public void cancelOrder(String custName, String prodName)
{ // ... Business logic ...}
public boolean isShipped(String custName, String prodName)
{ // ... Business logic … return true; }
OrderManagementBean code..
public void ejbCreate()
{ // Can be empty }
public void ejbRemove()
{ // Can be empty }
public void ejbActivate()
{ // Can be empty}
public void ejbPassivate()
{ // Can be empty}
public void setSessionContext( SessionContext ctx )
{ // Can be empty}
}
Interface EJBHome
Package javax.ejb;
public interface EJBHome extends java.rmi.Remote {
EJBMetaData getEJBMetaData () throws
java.rmi.RemoteException;
HomeHandle getHomeHandle() throws java.rmi.RemoteException;
void remove(Handle handle) throws java.rmi.RemoteException,
java.ejb.RemoveException;
void remove(Object primary key) throws
java.rmi.RemoteException, java.ejb.RemoveException;
}
OrderManagementHome code..
package orderMgmt;
import javax.ejb.*;
public interface OrderManagementHome extends
javax.ejb.EJBHome
{
public OrderManagement create()
throws java.rmi.RemoteException, javax.ejb.CreateException;
}
The xml file : ejb-jar.xml
<?xml version=“1.0”?>
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>OrderManagement</ejb-name>
<home>orderMgmt.OrderManagementHome</home>
<remote>orderMgmt.OrderManagement</remote>
<ejb-class>orderMgmt.OrderManagementBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
The xml file : ejb-jar.xml
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>OrderManagement</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Structure of JAR file
META -INF
ejb-jar.xml
orderMgmt
OrderManagement.class
OrderManagementHome.class
OrderManagementBean.class
What you can’t do in an EJB component?
You cannot use Reflection API to access
information inaccessible to you.
You cannot create a class loader or replace a
security manager.
You cannot set the socket factory used by
ServerSocket or Socket
You cannot use the object substitution features
of the serialization protocol
What you can’t do in an EJB
component?
use Threads or the Threading API
use the AWT
Act as a Network Server
use Read/Write static fields
use java.io package
Load a native library
use “this” as an Argument or Return value
use Loopback Calls
EJB Components on the Web
Three classes of objects in MVC architecture:
Model : This is the data and business-logic
component. It can serve multiple views.
View : This is the presentation component or the
user-interface component. There can be
different presentations of a single model.
Controller : This is the component that responds
to user input. Translates user-interface events
into changes to the model and defines the way
the user-interface reacts to those events.
Implementation of MVC in a web site
Controller
Model
Browser
Client
view1.jsp
view2.jsp
view3.jsp
Main.jsp
Views
1
2
3
4
5
Design of the EJB Tier
UML use cases: UML is the Unified
Modeling Language, the standard
language for expressing the model of the
software system that we intend to build.
Use cases are subset of UML that
expresses the functionality of the software
to be delivered. Use cases describe what
to do, but not how to do it.
Analysis Objects
Interface Objects : The interface object is
responsible for controlling access to the
EJB tier from any client. An interface
object should always be represented by a
session bean in the implementation.
Ex : controller servlet for the web
application’s model-view-controller
architecture.
Control Objects
Control objects provide services to the
application. They model functionality that
is not naturally associated with a
particular entity or interface. Control
objects should be represented by session
beans in the implementation.
Entity Objects
Entity objects model those business
objects that should maintain their state
after the use case completes. This means
they represent data in the database.
Entity beans are often represented by
entity beans in the implementation model.
An Example of EJB Design
Consider the case of a company that develops
products, takes orders for those products, and
then manufactures and ships them.
Actors in the company : An engineer, a web
customer, a phone operator who takes orders
from a catalog, floor manager who manages the
manufacturing process, a crew member that
actually builds the product ordered and a
manager who tracks overdue orders.
Use Cases
Create a Product
Place an Order
Cancel an Order
Select an Order for Manufacture
Build a Product
Ship an Order
List Overdue Orders
Use case diagram from analysis
Engineer
Customer
Operator
Manager
Crew
M’ment
Create Product
Place Order
Cancel Order
Select Order
Build Product
Ship an Order
Overdue Orders
Stereotype icons in UML
Interface Object :
Entity Object :
Control Object :
Translation of analysis model into implementation
Actor User Interface Type Interface Object Impl’ation
Engineer Visual Basic Session Bean (RMI/IIOP)
Customer Web Application JavaBean proxy / S Bean
Operator Swing GUI Session Bean
Manager Web Application JavaBean proxy / S Bean
Crew Palm Pilot XHTML Servelet to Session Bean
Management Web Application JavaBean proxy / S Bean
View of use case actors and their
respective interface objects
Engineer
Customer
Operator
Manager
Crew
Manage-
-ment
VB App
Web App
Swing app
Web App
Web App
Palm App
View of interaction of interface
and control objects
Ship
order
Build
Product
Select
Cancel
Place
Create
List
Overdue
VB
App
Web
App
Web
App
Web
App
Swing
App
Palm
App
View of interaction between control
objects and entity objects
RoutingProduct
Order
Shipment
Account
Supplier
Shipping
Company
Customer
Create
Product
Place
Order
Cancel
Order
Select for
Manufacture
Build
Product
Ship
Order
List
Overdue
Summary
EJBs are intended for transactional systems
EJBs are portable, reusable server-side
components that execute in a container
Assist developer productivity, extend application
capability, and improve system stability
Are accessible from many different types of
clients
There are three types of beans : stateful
session, stateless session, and entity
Summary
There are four major parts to every bean: the
home interface, the remote interface, the
implementation class, and the XML deployment
descriptor
The enterprise bean developer must follow
certain rules to get the benefits of EJB
technology
The roles of EJBs can be understood by
analyzing a model of your enterprise in terms of
interface, control and entity objects
Aravind vinnakota ejb_architecture

More Related Content

What's hot (20)

Ejb notes
Ejb notesEjb notes
Ejb notes
 
Enterprise JavaBeans(EJB)
Enterprise JavaBeans(EJB)Enterprise JavaBeans(EJB)
Enterprise JavaBeans(EJB)
 
Ejb3 Presentation
Ejb3 PresentationEjb3 Presentation
Ejb3 Presentation
 
Java EE EJB Applications
Java EE EJB ApplicationsJava EE EJB Applications
Java EE EJB Applications
 
EJB .
EJB .EJB .
EJB .
 
Enterprise Java Beans( E)
Enterprise  Java  Beans( E)Enterprise  Java  Beans( E)
Enterprise Java Beans( E)
 
Ejb - september 2006
Ejb  - september 2006Ejb  - september 2006
Ejb - september 2006
 
EJB 3.0 - Yet Another Introduction
EJB 3.0 - Yet Another IntroductionEJB 3.0 - Yet Another Introduction
EJB 3.0 - Yet Another Introduction
 
enterprise java bean
enterprise java beanenterprise java bean
enterprise java bean
 
Ejb 2.0
Ejb 2.0Ejb 2.0
Ejb 2.0
 
Lecture 8 Enterprise Java Beans (EJB)
Lecture 8  Enterprise Java Beans (EJB)Lecture 8  Enterprise Java Beans (EJB)
Lecture 8 Enterprise Java Beans (EJB)
 
Ch4 ejb
Ch4 ejbCh4 ejb
Ch4 ejb
 
EJB 3.0 and J2EE
EJB 3.0 and J2EEEJB 3.0 and J2EE
EJB 3.0 and J2EE
 
EJB 3.1 by Bert Ertman
EJB 3.1 by Bert ErtmanEJB 3.1 by Bert Ertman
EJB 3.1 by Bert Ertman
 
Ejb3.1 for the starter
Ejb3.1 for the starterEjb3.1 for the starter
Ejb3.1 for the starter
 
EJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkEJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLink
 
Session 3 Tp3
Session 3 Tp3Session 3 Tp3
Session 3 Tp3
 
Session 1 Tp1
Session 1 Tp1Session 1 Tp1
Session 1 Tp1
 
JEE Course - EJB
JEE Course - EJBJEE Course - EJB
JEE Course - EJB
 
EJB Clients
EJB ClientsEJB Clients
EJB Clients
 

Similar to Aravind vinnakota ejb_architecture

Similar to Aravind vinnakota ejb_architecture (20)

ADVANCED JAVA MODULE I & II.ppt
ADVANCED JAVA MODULE I & II.pptADVANCED JAVA MODULE I & II.ppt
ADVANCED JAVA MODULE I & II.ppt
 
Introcution to EJB
Introcution to EJBIntrocution to EJB
Introcution to EJB
 
Ejb intro
Ejb introEjb intro
Ejb intro
 
Ejb
EjbEjb
Ejb
 
Ejb course in-mumbai
Ejb course in-mumbaiEjb course in-mumbai
Ejb course in-mumbai
 
Unite5-EJB-2019.ppt
Unite5-EJB-2019.pptUnite5-EJB-2019.ppt
Unite5-EJB-2019.ppt
 
Ejb training institute in navi-mumbai
Ejb training institute in navi-mumbaiEjb training institute in navi-mumbai
Ejb training institute in navi-mumbai
 
Ejb intro
Ejb introEjb intro
Ejb intro
 
EJB Interview Questions
EJB Interview QuestionsEJB Interview Questions
EJB Interview Questions
 
Ejb (1)
Ejb (1)Ejb (1)
Ejb (1)
 
EJ NOV-18 (Sol) (E-next.in).pdf
EJ NOV-18 (Sol) (E-next.in).pdfEJ NOV-18 (Sol) (E-next.in).pdf
EJ NOV-18 (Sol) (E-next.in).pdf
 
EJB.docx
EJB.docxEJB.docx
EJB.docx
 
J2EEFeb11.ppt
J2EEFeb11.pptJ2EEFeb11.ppt
J2EEFeb11.ppt
 
JEE Programming - 02 The Containers
JEE Programming - 02 The ContainersJEE Programming - 02 The Containers
JEE Programming - 02 The Containers
 
Virtual classroom
Virtual classroomVirtual classroom
Virtual classroom
 
Ejbandjsp 200119145750
Ejbandjsp 200119145750Ejbandjsp 200119145750
Ejbandjsp 200119145750
 
Real world java_ee_patterns
Real world java_ee_patternsReal world java_ee_patterns
Real world java_ee_patterns
 
Skillwise EJB3.0 training
Skillwise EJB3.0 trainingSkillwise EJB3.0 training
Skillwise EJB3.0 training
 
Ejb and jsp
Ejb and jspEjb and jsp
Ejb and jsp
 
TY.BSc.IT Java QB U5&6
TY.BSc.IT Java QB U5&6TY.BSc.IT Java QB U5&6
TY.BSc.IT Java QB U5&6
 

Recently uploaded

Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Roomdivyansh0kumar0
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Roomdivyansh0kumar0
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Roomishabajaj13
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Personfurqan222004
 

Recently uploaded (20)

Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Person
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 

Aravind vinnakota ejb_architecture

  • 1. EJB Architecture and Design CS486 Global Knowledge Networks Instructor : Dr. V. Juggy Presentation by: Aravind Vinnakota
  • 2. What is EJB? An EJB is just a collection of Java classes and XML file, bundled into a single unit. The Java classes must follow certain rules and provide certain callback methods. EJB is just a specification. It is not a product. EJBs are reusable components.
  • 3. What is EJB? EJB is a widely-adopted server-side component architecture for J2EE. EJB components are designed to encapsulate business logic, and to protect the application developer from having to worry about system level issues.
  • 4. Contents Services provided by EJB container Circumstances of EJB component usage How an EJB component looks like? View of an EJB component by client programmer and EJB developer Mechanisms by which EJB container provides its services Rules an EJB developer must follow and how to use EJBs in a web architecture?
  • 5. Key features of EJB technology EJB components are server-side components written entirely in the Java programming language EJB components contain business logic only - no System-level programming System-level services (i.e. "plumbing") such as transactions, security, Life-cycle, threading, persistence, etc. are automatically managed for the EJB component by the EJB server
  • 6. Key features of EJB technology EJB architecture is inherently transactional, distributed, portable, multi-tier, scalable and secure EJB components are fully portable across any EJB server and any OS, work with any client. Components are declaratively customized There are four major parts to every bean: the home interface, the remote interface, the implementation class and the XML deployment descriptor
  • 7. EJB vs JavaBeans The JavaBeans architecture is meant to provide a format for general-purpose components whereas the EJB architecture provides a format for encapsulation and management of business logic. JavaBeans has tier of execution at Client and EJB has at Server (specifically business logic tier)
  • 8. EJB vs JavaBeans In JavaBeans the runtime execution environment provides services like Java libraries, Java application etc. The EJB runtime environment provides services of Persistence, declarative transactions and security, connection pooling and lifecycle services.
  • 9. Varieties of Beans Session Beans Stateful session bean Stateless session bean Entity Beans With container-managed persistence With bean-managed persistence Message-Driven Beans
  • 10. Why use EJBs in your design? EJB specification provides enterprise- level services, that is, it provides software services that are fundamental to an organization’s purpose. EJB’s API was designed to keep the application programmer from having to provide systems-level services, so that they are free to concentrate on business logic.
  • 11. Why use EJBs in your design? A requirement of any of the services provided by an EJB container like transactions, scalability, persistence, security, future growth possibilities is an appropriate reason to use EJB in the design of the application.
  • 12. EJB Architecture J2EE Application Server EJB Container Application Logic DataClient RDBMS Corba Mail RMI JDBC Java Mail JMS JTA Session Bean Entity Bean Client Application
  • 13. Roles in EJB Development EJB provider - a person who develops EJB Components EJB Deployer - a person responsible for deploying EJB’s in EJB server Application Server/ EJB Container Vendor - one who provides application server on which the application is deployed
  • 14. Roles in EJB Development Application assembler - one who combine the EJB components with other software to make a complete application System administrator - one who manages the application after it has been deployed into a target environment.
  • 15. Roles in EJB Development EJB Provider Application Assembler App Server/ EJB Container Provider Deployer System Administrator
  • 16. EJB Container and its Services A container is an execution environment for a component. The component lives in the container and the container provides the services for the component. Similarly, a container lives in an application server, which provides an execution environment for it and other containers.
  • 17. Services provided by an EJB container Persistence Ex: simple connection pooling, automatic persistence, etc. EJBs created with application development tools will encapsulate data access in components.
  • 18. Services provided by an EJB container Declarative transactions Data caching Declarative Security Error Handling Component Framework for Business Logic Scalability and Fall-Over Portability
  • 19. How the Container Provides Services There are three basic ideas: First, there are clearly defined responsibilities between the various parts of an application using EJB component namely the client, the EJB container and the EJB component. The definition of these responsibilities is formally known as a contract. Second, the services that the container provides are defined in such a way that they are orthogonal to the component. In other words, security, persistence, transactions are separate from the Java files that implement the business logic of the component.
  • 20. How the Container Provides Services Third, the container interposes on each and every call to an EJB component so that it can provide its services. In other words, the container puts itself between the client and the component on every single business method call.
  • 22. Rules for the bean programmer The developer of the EJB component must implement the business methods in the implementation class The bean provider must implement the ejbCreate(), ejbPostCreate(),ejbRemove() methods and the ejbFind<METHOD>() methods if the bean is an entity with bean managed persistence The bean provider must define the enterprise bean’s home and remote interfaces For session beans, the bean provider must implement the container callbacks defined in the javax.ejb.SessionBean interface
  • 23. Rules for the bean programmer For entity beans, the provider must implement the container callbacks defined in the javax.ejb.EntityBean interface The bean provider must not use programming practices that would interfere with the container’s runtime management of the enterprise bean instances
  • 24. Interposition : method call to an EJB Container from a remote client First, the client makes a call on the RMI stub This RMI stub interposes on the method call in order to marshal parameters and send the information across the network A skeleton on the server side unmarshals the parameters and delivers them to the EJB Container
  • 26. Interposition : from EJB Container to EJBs The container will examine the security credentials of the caller of the method It will start or join with any required transactions It will make any necessary calls to persistence functions It will trigger various callbacks to allow the EJB Component to acquire resources Only after all this is done will the actual business method be called Once it is called, the container will do some more work with transactions, persistence, callbacks and returns data or exception to the remote client
  • 27. Working with EJBs The Enterprise JavaBeans specification is written for three audiences: The Client developer The EJB developer The EJB container developer
  • 28. EJB Clients EJB Clients are applications that access EJB components in EJB containers. There are two possible types. The first category is application clients which are stand-alone applications accessing the EJB components using the RMI- IIOP protocol. The second category of application clients are components in the web container. They are java servlets and JSPs which also access the EJB components via the RMI-IIOP protocol.
  • 29. The Client Developer’s View The client has a smaller set of concerns then a bean developer with regard to using EJBs. Basically, he need to know : how to find or create a bean, how to use its methods and how to release its resources The client need not worry about the implementation of the EJB, callbacks that the EJB container will make on the EJB or nature of the services provided to the EJB.
  • 30. EJB’s interface Home Interface : It is primarily for the life cycle operations of the bean: creating, finding, and removing EJBs. The home interface is not associated with a particular bean, just with a type of bean. Remote Interface : It is for business methods. Logically, it represents a particular bean on the server. The remote interface also provides some infrastructure methods associated with a bean instance, rather than a bean type.
  • 31. Sample client application pseudo code A client programmer will acquire an EJB’s home interface through JNDI, and they use this home interface to : Create or find instance of bean Execute methods Reference (Handle) Remove bean
  • 32. Client.java Package orderMgmt; import java.util.properties; import java.naming.Context; // for name-to-object findings import java.naming.InitialContext;// context for naming operations public class Client { try { Properties prop = new Properties(); // server dependent properties for InitialContext prop.put(Context.INITIAL_CONTEXT_FACTORY, “org.jnp.interfaces.NamingContextFactory”); prop.put(Context.PROVIDER_URL, “localhost:1099”); Context ctx = new InitialContext(prop); Object objref = ctx.lookup(“OrderManagement”);
  • 33. Client contd.. // casting home interface reference to the OrderManagementHome OrderManagementHome home = (OrderManagementHome) javax.rmi.PortableRemoteObject.narrow(objref, OrderManagementHome.class); // home interface to create an instance of the OrderManagement OrderManagement orderManagement = home.create(); // calling placeOrder() orderManagement.placeOrder("Dan OConnor", "Wrox books on programming", 1000); orderManagement.remove(); System.out.println("Order successfully placed."); } catch (Exception e) { e.printStackTrace(); } } }
  • 34. The Bean Programmer’s view Main responsibility is write business logic and structure the code in a particular structure. The structure has 4 files, the home interface, remote interface, business logic class file and the XML file. The XML file called the deployment descriptor, contains the structural information about the bean, declares the bean’s external dependencies and specifies certain information about how services such as transaction and security work.
  • 35. Interface EJBObject package javax.ejb; public interface javax.ejb.EJBObject extends java.rmi.Remote { EJBHome getEJBHome() throws java.rmi.RemoteException; Handle getHandle() throws java.rmi.RemoteException; Object getPrimaryKey() throws java.rmi.RemoteException; boolean isIdentical(EJBObject obj) throws java.rmi.RemoteException; void remove() throws java.rmi.RemoteException; }
  • 36. OrderManagement code.. package orderMgmt; import javax.ejb.*; public interface OrderManagement extends javax.ejb.EJBObject { public void placeOrder(String custName, String prodName, int quantity) throws java.rmi.RemoteException; public void cancelOrder(String custName, String prodName) throws java.rmi.RemoteException; public boolean isShipped(String custName, String prodName) throws java.rmi.RemoteException; }
  • 37. OrderManagementBean code.. package orderMgmt; import javax.ejb.*; public class OrderManagementEJB implements javax.ejb.SessionBean { public void placeOrder(String custName, String prodName, int quantity) { // ... Business logic ...} public void cancelOrder(String custName, String prodName) { // ... Business logic ...} public boolean isShipped(String custName, String prodName) { // ... Business logic … return true; }
  • 38. OrderManagementBean code.. public void ejbCreate() { // Can be empty } public void ejbRemove() { // Can be empty } public void ejbActivate() { // Can be empty} public void ejbPassivate() { // Can be empty} public void setSessionContext( SessionContext ctx ) { // Can be empty} }
  • 39. Interface EJBHome Package javax.ejb; public interface EJBHome extends java.rmi.Remote { EJBMetaData getEJBMetaData () throws java.rmi.RemoteException; HomeHandle getHomeHandle() throws java.rmi.RemoteException; void remove(Handle handle) throws java.rmi.RemoteException, java.ejb.RemoveException; void remove(Object primary key) throws java.rmi.RemoteException, java.ejb.RemoveException; }
  • 40. OrderManagementHome code.. package orderMgmt; import javax.ejb.*; public interface OrderManagementHome extends javax.ejb.EJBHome { public OrderManagement create() throws java.rmi.RemoteException, javax.ejb.CreateException; }
  • 41. The xml file : ejb-jar.xml <?xml version=“1.0”?> <ejb-jar> <enterprise-beans> <session> <ejb-name>OrderManagement</ejb-name> <home>orderMgmt.OrderManagementHome</home> <remote>orderMgmt.OrderManagement</remote> <ejb-class>orderMgmt.OrderManagementBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans>
  • 42. The xml file : ejb-jar.xml <assembly-descriptor> <container-transaction> <method> <ejb-name>OrderManagement</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar>
  • 43. Structure of JAR file META -INF ejb-jar.xml orderMgmt OrderManagement.class OrderManagementHome.class OrderManagementBean.class
  • 44. What you can’t do in an EJB component? You cannot use Reflection API to access information inaccessible to you. You cannot create a class loader or replace a security manager. You cannot set the socket factory used by ServerSocket or Socket You cannot use the object substitution features of the serialization protocol
  • 45. What you can’t do in an EJB component? use Threads or the Threading API use the AWT Act as a Network Server use Read/Write static fields use java.io package Load a native library use “this” as an Argument or Return value use Loopback Calls
  • 46. EJB Components on the Web Three classes of objects in MVC architecture: Model : This is the data and business-logic component. It can serve multiple views. View : This is the presentation component or the user-interface component. There can be different presentations of a single model. Controller : This is the component that responds to user input. Translates user-interface events into changes to the model and defines the way the user-interface reacts to those events.
  • 47. Implementation of MVC in a web site Controller Model Browser Client view1.jsp view2.jsp view3.jsp Main.jsp Views 1 2 3 4 5
  • 48. Design of the EJB Tier UML use cases: UML is the Unified Modeling Language, the standard language for expressing the model of the software system that we intend to build. Use cases are subset of UML that expresses the functionality of the software to be delivered. Use cases describe what to do, but not how to do it.
  • 49. Analysis Objects Interface Objects : The interface object is responsible for controlling access to the EJB tier from any client. An interface object should always be represented by a session bean in the implementation. Ex : controller servlet for the web application’s model-view-controller architecture.
  • 50. Control Objects Control objects provide services to the application. They model functionality that is not naturally associated with a particular entity or interface. Control objects should be represented by session beans in the implementation.
  • 51. Entity Objects Entity objects model those business objects that should maintain their state after the use case completes. This means they represent data in the database. Entity beans are often represented by entity beans in the implementation model.
  • 52. An Example of EJB Design Consider the case of a company that develops products, takes orders for those products, and then manufactures and ships them. Actors in the company : An engineer, a web customer, a phone operator who takes orders from a catalog, floor manager who manages the manufacturing process, a crew member that actually builds the product ordered and a manager who tracks overdue orders.
  • 53. Use Cases Create a Product Place an Order Cancel an Order Select an Order for Manufacture Build a Product Ship an Order List Overdue Orders
  • 54. Use case diagram from analysis Engineer Customer Operator Manager Crew M’ment Create Product Place Order Cancel Order Select Order Build Product Ship an Order Overdue Orders
  • 55. Stereotype icons in UML Interface Object : Entity Object : Control Object :
  • 56. Translation of analysis model into implementation Actor User Interface Type Interface Object Impl’ation Engineer Visual Basic Session Bean (RMI/IIOP) Customer Web Application JavaBean proxy / S Bean Operator Swing GUI Session Bean Manager Web Application JavaBean proxy / S Bean Crew Palm Pilot XHTML Servelet to Session Bean Management Web Application JavaBean proxy / S Bean
  • 57. View of use case actors and their respective interface objects Engineer Customer Operator Manager Crew Manage- -ment VB App Web App Swing app Web App Web App Palm App
  • 58. View of interaction of interface and control objects Ship order Build Product Select Cancel Place Create List Overdue VB App Web App Web App Web App Swing App Palm App
  • 59. View of interaction between control objects and entity objects RoutingProduct Order Shipment Account Supplier Shipping Company Customer Create Product Place Order Cancel Order Select for Manufacture Build Product Ship Order List Overdue
  • 60. Summary EJBs are intended for transactional systems EJBs are portable, reusable server-side components that execute in a container Assist developer productivity, extend application capability, and improve system stability Are accessible from many different types of clients There are three types of beans : stateful session, stateless session, and entity
  • 61. Summary There are four major parts to every bean: the home interface, the remote interface, the implementation class, and the XML deployment descriptor The enterprise bean developer must follow certain rules to get the benefits of EJB technology The roles of EJBs can be understood by analyzing a model of your enterprise in terms of interface, control and entity objects