1' JavaJ2EERMI overviewKoteswara Kommineni, Uday Rivella - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

1' JavaJ2EERMI overviewKoteswara Kommineni, Uday Rivella

Description:

EJB Component Life Cycle, code walkthrough - Tracey Wilburn. 3. Development Methodology ... Insulate the EJBs from direct access from client applications ... – PowerPoint PPT presentation

Number of Views:96
Avg rating:3.0/5.0

less

Transcript and Presenter's Notes

Title: 1' JavaJ2EERMI overviewKoteswara Kommineni, Uday Rivella


1
Team Presentations Outline
  • 1. Java/J2EE/RMI overview-Koteswara Kommineni,
    Uday Rivella
  • 2. EJB Overview
  • EJB Concepts -Sarah Lee
  • EJB Component Life Cycle, code walkthrough -
    Tracey Wilburn
  • 3. Development Methodology-Manjeera Madduri, Xing
    Ruan
  • 4. CMMI-related Challenges with EJB Component
    Development - Kavita Kolli
  • 5. Summary/Comparison - Shekhar Vemuri

2
Topic 2 Enterprise Java Bean Technology Technical
Concepts Sarah B. Lee April 16, 2003
3
Java Review
  • Java 2 Platform, Enterprise Edition (J2EE)
  • component-based, platform independent
    architecture
  • Java Naming Directory Interface (JNDI)
  • provides unified interface to directory naming
    services
  • Remote Method Invocation (RMI)
  • provides a means of communicating between Java
    apps on separate machines

4
Enterprise Java Beans Model
  • Provides a framework for component based
    distributed computing
  • specifies how distributed components should work
    within the Java environment
  • Makes thin-client, multi-tiered apps easier to
    write
  • separates low-level details from business logic

5
What is an Enterprise Java Bean?
  • Body of code written to implement modules of
    business logic
  • Standard extension to Java
  • available in javax.ejb package
  • latest version http//www.javasoft.com/products/e
    jb
  • must be explicitly installed to write code
    against EJB interfaces

6
EJB Component Model
EJB Server
Client
EJB Container
client request
EJB
The container manages the enterprise beans at
runtime
7
EJB Application Server
EJB Server
Client
EJB Container
client request
  • Required when using EJB
  • Contains EJB containers which
    manage EJB objects
  • Primary goals
  • Improve performance
  • Simplify development
  • Most important feature efficient resource
    management

EJB
  • iPlanet/Netscape (AOL/Netscape/Sun)
  • NetDynamics (Sun)
  • Weblogic (BEA)
  • WebSphere (IBM)

8
EJB Containers
EJB Server
Client
  • Set of classes that manage an enterprise beans
  • Persistence
  • bean state maintained in permanent data
    store
  • Start, enrollment, commitment, and rollback of
    transactions
  • Security
  • Insulate the EJBs from direct access from client
    applications
  • whenever a bean is requested, created, or
    deleted, the container manages the whole process

EJB Container
client request
Persistence Mgmt Transaction Mgmt Security Mgmt
EJB
Containers live and operate inside EJB Servers
9
EJB Interfaces
Each enterprise bean exposes 2 interfaces via the
container to the client
  • Home Interface
  • Defines the methods that allow clients to create,
    find, and remove EJB objects
  • Creates instances of the remote interface for an
    enterprise bean
  • Remote Interface
  • Used by client to invoke operations on the bean
  • Describes what the bean does

10
Types of EJBs
  • Session bean
  • a transient object
  • lifespan is limited to that of the client
  • works with one client
  • business logic
  • Entity bean
  • a persistent object
  • lifespan is as long as the database
  • multiple clients simultaneously
  • represents data in a database

11
Session Beans
  • Created by client
  • exist only for duration of single client/server
    session
  • Performs operations on behalf of client
  • ex performing calculations
  • Normally not recoverable after system crash

12
Session Beans
  • Two types
  • Stateful
  • keeps information across http requests
  • Stateless
  • information is not kept

13
Entity Beans
  • Persistent
  • state is maintained in permanent data store
  • exists as long as the corresponding data exists
    in the database
  • Can be recovered after system crash
  • Each bean identified by primary key
  • unique identifier that enables client to locate
    particular entity bean
  • ex customer entity bean might be identified by
    customer number

14
Entity Beans
  • Two Types of Persistence
  • bean-managed
  • container-managed

15
Entity Beans Bean-Managed Persistence
  • Entity bean code contains the calls that access
    the database
  • Programmer is responsible for coding the insert
    statement and any other necessary SQL

16
Entity Beans Container-Managed Persistence
  • Container automatically generates necessary
    database access calls
  • ex when client creates entity bean, container
    generates SQL Insert
  • Programmer code contains no SQL calls
  • Entity bean is independent of any particular
    database

17
EJB Server
Entity Home
Entity Bean
Database
JNDI
Entity Remote
Container
RMI
Browser
Client App
Session Home
JNDI
Session Bean
RMI
Session Remote
Container
  • Client application
  • Interacts with EJBs through home and remote
    interfaces
  • EJB Server
  • Handles low-level details including database I/O
  • Container
  • Provides interface between EJB and low-level
    platform specific functionality
  • Home Interface
  • Describes how client creates, finds, removes EJB
    from container
  • Located by client using JNDI
  • Remote Interface
  • Describes beans methods (what it does)
  • Client calls methods defined in remote interface
    to invoke business logic
  • Invoked using RMI

18
Typical Enterprise JavaBeans Network Security
Topology
Applets
Web server
EJB Server
Internet
Browsers
Web server
EJB Server
Enterprise information
Applications
DMZ
Firewall 2
Firewall 1
19
Benefits of Using EJB
  • Productivity
  • Industry Support
  • Architectural Independence
  • Server-Side Write Once, Run Anywhere?

20
Topic 2 Enterprise Java Bean Technology Code
Walkthrough Tracey Wilburn April 16, 2003
21
Coded Example of EJB Object
  • Hello World
  • stateless session bean
  • EJB Environment
  • interaction between code

22
Client Code
  • Purpose
  • Locate an object
  • Create a new instance of an object
  • Obtain business method operation

23
Locate an Object
  • JNDI (Java Naming and Directory Interface)
  • Four steps to locate an object
  • Initialize JNDI properties
  • Initialize Naming Context
  • Lookup the Object
  • Narrow the Object

24
Deployment Identifier
  • tells the container the name to use for
    registering the beans home interface in the JNDI
  • must be unique

25
Client Code
  • import javax.rmi.
  • import javax.naming.
  • import java.util.
  • public class HelloWorld
  • public static void main( String args)
  • try
  • Properties p new Properties()
  • //The JNDI properties you set depend
  • //on which server you are using.
  • //These properties are for the Remote Server.
  • p.put("java.naming.factory.initial",
    "org.openejb.client.RemoteInitialContextFactory")
  • p.put("java.naming.provider.url",
    "127.0.0.14201")
  • p.put("java.naming.security.principal",
    "myuser")
  • p.put("java.naming.security.credentials",
    "mypass")

26
Client Code (Cont.)
  • //Use the HelloHome to create a HelloObject
  • HelloHome ejbObject ejbHome.create()
  • //The part we've all been waiting for...
  • String message ejbObject.sayHello()
  • //A drum roll please.
  • System.out.println( message )
  • catch (Exception e)
  • e.printStackTrace()

27
Developing an EJB Object
  • Home Interface
  • Remote Interface
  • Enterprise Bean Implementation

28
EJB Specifications
  • Home Interface
  • throws CreateException
  • throws RemoteException
  • create( )

29
Home Interface Code
  • import java.rmi.
  • import javax.ejb.
  • import java.util.
  • public interface HelloHome extends EJBHome
  • public HelloObject create() throws
    RemoteException, CreateException

30
EJB Specification
  • Remote Interface
  • throws RemoteException
  • Methods defined must match methods in EJB class
  • Signature of methods must be identical to methods
    in EJB class

31
Remote Interface Code
  • import java.rmi.
  • import javax.ejb.
  • import java.util.
  • public interface HelloObject extends EJBObject
  • public String sayHello() throws
    RemoteException

32
EJB Specifications
  • Enterprise Bean Implementation
  • void ejbPassivate()
  • void ejbActivate()
  • void ejbCreate()
  • void ejbRemove()
  • void setSessionContext()

33
EJB Specification
  • Enterprise Bean Implementation
  • Implement Business Method
  • EJB class must be defined as public

34
Enterprise Bean Implementation Code
  • import java.rmi.RemoteException
  • import javax.ejb.
  • public class HelloBean implements SessionBean
  • private SessionContext sessionContext
  • public void ejbCreate()
  • public void ejbRemove()
  • public void ejbActivate()
  • public void ejbPassivate()
  • public void setSessionContext(SessionContext
    sessionContext)
  • this.sessionContext sessionContext
  • public String sayHello() throws
    java.rmi.RemoteException
  • return "Hello World!!!!!"

35
EJB Example Code
EJB Server
EJB Container
Home Interface
Lookup
Client
Remote Interface
EJB
36
EJB Example Code
EJB Server
Reference of Home Interface
EJB Container
Home Interface
Client
Remote Interface
EJB
37
EJB Example Code
EJB Server
EJB Container
Home Interface
Client
create( )
ejbCreate()
Remote Interface
EJB
38
EJB Example Code
EJB Server
EJB Container
Home Interface
Client
Remote Interface
Reference of Remote Interface
EJB
39
EJB Example Code
EJB Server
EJB Container
Home Interface
Client
Locate business method
Remote Interface
EJB
Business method invoked
40
EJB Example Code
EJB Server
EJB Container
Home Interface
Client
Remote Interface
EJB
Returns business method
Write a Comment
User Comments (0)
About PowerShow.com