EJB Fundamentals - PowerPoint PPT Presentation

1 / 42
About This Presentation
Title:

EJB Fundamentals

Description:

EJB Fundamentals Swapnil Shrivastava Contents Introduction Technology Overview EJB Architecture EJB Specification Sample Application Sun s Definition EJB ... – PowerPoint PPT presentation

Number of Views:318
Avg rating:3.0/5.0
Slides: 43
Provided by: swa131
Category:
Tags: ejb | fundamentals

less

Transcript and Presenter's Notes

Title: EJB Fundamentals


1
EJB Fundamentals
  • Swapnil Shrivastava

2
Contents
  • Introduction
  • Technology Overview
  • EJB Architecture
  • EJB Specification
  • Sample Application

3
Suns 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.

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.

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.

6
Types of Beans
  • Session Bean
  • Entity Bean
  • Message driven Bean

7
Session Bean
  • Session beans model business processes.
  • They are like verbs because they are actions.
  • E.g. billing engine, catalog engine etc

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.

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.

10
EJB 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
11
EJB Foundation Distributed Objects
Client
Distributed Object
Remote Interface
Remote Interface
Skeleton
Stub
Network
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.

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
14
Explicit Middleware
Transaction API
Transaction Services
Security API
Client
Distributed Object
Security Services
Remote Interface
Database API
Remote Interface
Database drivers
Skeleton
Stub
Network
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.

16
Explicit Middleware
  • Difficult to Write.
  • Difficult to Maintain.
  • Difficult to Support.

17
Implicit 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
18
Example Bank account obj
  • Transfer(Acct acc1,Acct acc2,long amt)
  • //1. Perform trans.(subtract bal from one account
    and add to other).

19
Implicit Middleware
  • Easy to Write.
  • Easy to Maintain.
  • Easy to Support.

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.

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.

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.

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.

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.

25
Home Object
  • EJB object factory.
  • Creates,finds and destroys EJB objects.
  • Proprietary and specific to each EJB container.
  • Home objects implements Home Interface.

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.

27
Local 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.

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.

29
Vendor Specific Files
  • All vendors have proprietary value added
    features.
  • Include files specific to that vendor.

30
Package
Remote Interface
Local Interface
EJB jar file
Jar file creator
Enterprise Bean
Home Interface
Deployment Descriptor
Vendor Specific
31
Sample ApplicationMy First Bean!
32
Session 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
34
Remote Interface First.java
package example public interface First extends
javax.ejb.EJBObject public String first()
throws java.rmi.RemoteException
35
Home Interface FirstHome
package example public interface FirstHome
extends javax.ejb.EJBHome First create()
throws java.rmi.RemoteException, javax.ejb.Create
Exception
36
Deployment 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
37
Client 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()
39
EJB 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
40
EJB 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
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 vendors enterprise middleware
    services.
  • It is agreed upon by industry.

42
References
  • Mastering Enterprise Java Beans
  • J2EE 1.4 Tutorials
  • Professional Java Server Programming, J2EE Edition
Write a Comment
User Comments (0)
About PowerShow.com