2. June 21, 2017 www.snipe.co.in 2
Enterprise Java Beans
3. June 21, 2017 www.snipe.co.in 3
What Is EJB??
Key Features
Why EJB??
EJB V/S JavaBeans
EJB Architecture
EJB Container Services
Contracts
Modules
MVC Architecture
Analysis of Objects
Example of EJB Design,Usecases, UseCase Diagram
Summary
Agenda
4. June 21, 2017 www.snipe.co.in 4
What??
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.
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.
5. June 21, 2017 www.snipe.co.in 5
Key Features
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
6. June 21, 2017 www.snipe.co.in 6
Why EJB??
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.
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.
7. June 21, 2017 www.snipe.co.in 7
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)
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.
EJB Vs JavaBeans
8. June 21, 2017 www.snipe.co.in 8
J2EE Application Server
Application Logic DataClient
RDBMS
Corba
Mail
RMI
JDBC
Java
Mail
JMS
JTA
Session Bean
EJB Container
Entity Bean
Client
Application
EJB
Architecture
9. June 21, 2017 www.snipe.co.in 9
Roles in EJB Development
System
Administrator
Application
Assembler
Deployer
App Server/EJB
Container
Provider
EJB
Provider
10. June 21, 2017 www.snipe.co.in 10
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.
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.
11. June 21, 2017 www.snipe.co.in 11
EJB Container 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.
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.
12. June 21, 2017 www.snipe.co.in 12
Contracts
EJB Container/Application Server
Enterprise Java Beans
C
Client
13. • The developer of the EJB component must implement the
business methods in the implementation class
• The bean provider must implement the
ejbCreate(),
ejbPostCreate(),ejbRemove() 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.
Rules for the Bean Programmer
14. June 21, 2017 www.snipe.co.in 14
• For session beans, the bean provider must implement the
container callbacks defined in the javax.ejb.SessionBean
interface
• 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
Rules for the Bean Programmer
15. June 21, 2017 www.snipe.co.in 15
Modules
Interposition Diagram
Client
Remote
Stub
Remote
Stub
Container
Generated
Class
EJB
Netw
ork
16. June 21, 2017 www.snipe.co.in 16
Working With EJBs:
The Enterprise JavaBeans specification is written for
three audiences:
The Client developer
The EJB developer
The EJB container developer
17. June 21, 2017 www.snipe.co.in 17
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.
EJB Clients
18. June 21, 2017 www.snipe.co.in 18
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.
Client Developer’s View
19. June 21, 2017 www.snipe.co.in 19
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.
EJB’s Interfaces
20. June 21, 2017 www.snipe.co.in 20
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.java
Continued..
21. June 21, 2017 www.snipe.co.in 21
// 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(); }
}
}
22. June 21, 2017 www.snipe.co.in 22
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.
Bean Programmer’s View
24. June 21, 2017 www.snipe.co.in 24
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;
}
Order Management Code:
25. June 21, 2017 www.snipe.co.in 25
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:
Continued…
26. June 21, 2017 www.snipe.co.in 26
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}
}
31. June 21, 2017 www.snipe.co.in 31
META -INF
ejb-jar.xml
orderMgmt
OrderManagement.class
OrderManagementHome.class
OrderManagementBean.class
Structure of JAR file:
32. June 21, 2017 www.snipe.co.in 32
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.
MVC Architecture
33. June 21, 2017 www.snipe.co.in 33
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
34. June 21, 2017 www.snipe.co.in 34
Analysis 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 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.
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.
35. June 21, 2017 www.snipe.co.in 35
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,
A floor manager who manages the manufacturing process,
A crew member that actually builds the product ordered and a
manager who tracks overdue orders.
An Example of EJB Design:
36. June 21, 2017 www.snipe.co.in 36
Create a Product
Place an Order
Cancel an Order
Select an Order for Manufacture
Build a Product
Ship an Order
List Overdue Orders
Use Cases
37. June 21, 2017 www.snipe.co.in 37
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
38. June 21, 2017 www.snipe.co.in 38
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.
Continued..
Summary
39. June 21, 2017 www.snipe.co.in 39
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.