Title: Seminar: Enterprise JavaBeans
1Seminar Enterprise JavaBeans
2- Agenda
- Java 2 Platform
- Java 2 Platform,Enterprise Edition(J2EE)
- Enterprise JavaBeans
- Enterprise JavaBeans Architecture
-
3Java 2 Platform
4Java History
- 1995 Sun World95
- 1996 JDK1.0 Final Release
- 1997 JDK1.1 Final Release
- 1999 JDK1.2 Final Release
- 2000 JDK1.3 Final Release
5Today/Tomorrow
Web Content E-mail Entertainment Travel Personal
Finance E-commerce Voice Over IP Long Distance
Phone
6Todays Enterprise
7Short History of Java Enterprise Technology
8Java 2 Platform
- Java 2 Platform,Standard Edition(J2SE)
- Java 2 Platform,Enterprise Edition(J2EE)
- Java 2 Platform,Micro Edition(J2ME)
9Java 2 Platform
10Java History
11Java Enterprise Architecture
Workstation
PC
Video Server
Web Server
BeeperCell PhoneATM Game
PDA
Corporate LAN
Solstice Firewall
Public Internet
CorporateIntranet
Workgroup Server
Firewall
Kiosk
Server
Mainframe
Java Desktop
Java Device
12- Agenda
- Java 2 Platform
- Java 2 Platform,Enterprise Edition(J2EE)
- Enterprise JavaBeans
- Enterprise JavaBeans Architecture
-
13Java 2 Platform Enterprise Edition(J2EE)
14Application Servers
- Provides infrastructure to support management of
business logic and access to services - Provide proprietary APIs,which leads to vendor
lock - Diminishes ability to reuse business logic on
another vendors application servers
15Enterprise Goals
- Reuse
- Interoperability
- Portability
- Time-to-Market
16Why another Java 2 Platform?
Enterprise Services Require
17What is J2EE ?
- J2EE is An Integrated Application Environment (
consist of below ) - API specifications (EJB,JSP,JDBC etc)Defines
J2EE requirements - Reference implementation of APIsOperational J2EE
platform - Compatibility tests with brandingValidates J2EE
platform compatibility - Application Programming ModelDescribes how to
build J2EE application
18What is J2EE ?
- The enterprise developer can concentrate on
application components,not the underlying
services - Separation of business logic and services provide
for better reuse of business logic
Business logic
Services
Services
19J2EE Architecture
20J2EE API Summary
- J2SE 1.3
- JDBC 2.0
- RMI/IIOP 1.0
- EJB 1.1.x
- Servlet 2.2
- JSP 1.1
- JNDI 1.2
- JTA 1.0
- JMS 1.0
- JavaMail 1.1
- JAF 1.0
21J2EE Standard Services
Services Java
Technology
- Web
- Database
- Naming and Directory
- Management
- Email
- Protocol
- Transaction
Servlet/JSP(HTML/XML) JDBCTM JNDI JMX JavaMail
TM JavaIDL/RMI OTS/JTS/JTA
22J2EE Platform
23J2EE is important
- Integrated Application Environment
- Open platform
- Integrates with existing environments
- Provides foundation for future development
24- Agenda
- Java 2 Platform
- Java 2 Platform,Enterprise Edition(J2EE)
- Enterprise JavaBeans
- Enterprise JavaBeans Architecture
-
25 26EJB Architecture
27EJB Design Goals
- Simplify development/deployment of distributed
applications - Achieve broad industry acceptance
- The right expert focuses on the right job
- Platform independent and protocol neutral
- Enable development of portable components - Truly
enable reuse
28Defining Enterprise JavaBeans
- A server-side component architecture
- Model to enable efficient development and
deployment of Java applications - Transactional,Portable
- Distributed,Multi-tier
- Scalable
- Secure
29Defining Enterprise JavaBeans
- EJB is not JavaBeans
- a Server Component specification for Java
- Separates business and system programming
- Portability of business objects
- Extensibility through vendor features
30JavaBeans Versus Enterprise JavaBeans
- Java Beans
- Can be either visible or non-visible
- Intended to be local to a single process on the
client side - Uses the BeanInfo classes, Property Editors
Customizers to describe itself - Can also be deployed as an ActiveX control
- Enterprise JavaBeans
- Are decidedly Non-Visible, remote objects
- Remotely executable components deployed on the
server - Uses the Deployment Descriptor to describe itself
- Can not deployed as an ActiveX control since OCXs
run on the desktop
31JavaBeans Versus Enterprise JavaBeans
Server
Enterprise information Services
Client
Java Beans
Container
Java Beans
Database
EJB1
Java Beans
Existing application
EJB2
Client
EJB3
Java Beans
Server manages resources such as threads,
connection pooling, caching, and state
management
Java Beans
32- What Is Special About EJBs?
- Learn once
- Write Once, Run Anywhere TM
- Portable and interoperable
- Flexible and extensible
- Scalable
- Easier to write distributed applications
- Transaction management
- CORBA compatible
33- Agenda
- Java 2 Platform
- Java 2 Platform,Enterprise Edition(J2EE)
- Enterprise JavaBeans
- Enterprise JavaBeans Architecture
-
34Enterprise JavaBeans Architecture
35Key Components in EJB
- EJB Server
- EJB container
- Home Object
- EJBObject
- Enterprise Bean
36EJB Architecture Overview
EJB Home Interface
EJB Home Class
EJB Object Interface
EJB Object Class
EJB Class
EJB Container
Deployment Descriptor
Manifest
EJB Server
37EJB Architecture Overview
38Application Life Cycle
39EJB Server
- Provides System Services
- Transaction support
- Database access
- System resource
- Namespace
- Implementations
- Middleware servers
- Application servers
- Database servers
40EJB Server
- Supplies containers for EJBs
- API between server and container is
- currently vendor specific
- Server could provide several container
- types to provide various extended
- services to different beans
41EJB Container
- Currently provided by EJB Server
- EJB access to server resource through
- standard API
- May Contain one or multiple classes
- Tools for EJB creation and deployment
42EJB Container
- Some standard services
- Persistence
- EJB instance creation location
- Namespace
- Transaction control
- Swapping
- Security
- Custom services
- Application-specific
- Bridge to existing systems
43Home Interface
- Factory interface for the bean
- Interface provided by EJB developer
- Class generated by vendor tool
- One factory class per bean class
- Factory instance is installed into the
- servers naming service
44Home Interface
- import java.io.Serializable
- import java.rmi.RemoteException
- import javax.ejb.CreateException
- import javax.ejb.EJBHome
- public interface ConverterHome extends EJBHome
- Converter create() throws RemoteException,
-
CreateException -
45Remote Interface
- Interface is provided by bean developer
- Implementation is provided by
- container tools, which include
- Stubs and Skeletons
- The EJB Object
46Remote Interface
import javax.ejb.EJBObject import
java.rmi.RemoteException public interface
Converter extends EJBObject public double
dollarToYen(double dollars)
throws RemoteException public
double yenToEuro(double yen)
throws RemoteException
47EJB Object
- The EJB Object is a wrapper object that
- Acts as a proxy to the EJB instance
- Interface provided by Bean Developer
- Implementation class generated by tool
- Each business method has a corresponding
- method in the EJB Object
- Wrapper method implements container-
- provided services
-
48EJB Architecture Overview
Home Object
Home Interface
Client
EJB Object
Bean
Remote Interface
EJB
Skeleton
Stub
Remote Interface
EJB
49EJB Source
import java.rmi.RemoteException import
javax.ejb. public class ConverterEJB implements
SessionBean public double dollarToYen(double
dollars) return dollars 121.6000
public double yenToEuro(double yen)
return yen 0.0077 public
ConverterEJB() public void ejbCreate()
public void ejbRemove() public void
ejbActivate() public void ejbPassivate()
public void setSessionContext(SessionContext
sc)
50Types of EJBs
Session Beans Client state
Server
Enterprise information Services
Container
Client
EJB1
Proxy
Database
EJB2
Proxy
Existing application
Client
EJB3
Proxy
Entity Beans State of data
51Session Beans Versus Entity Beans
Session Beans Private client resource Bean
carries client state Bean is not
persistent Lifetime is controlled by
client Transactional participant Single-threaded M
andatory since 1.0
- Entity Beans
- Access by multiple clients concurrently
- Bean represents state of data in data store
- Bean is persistent
- Lifetime corresponds to its persistent
- store
- Transactional by nature
- Single-threaded
- Mandatory since 1.1
52Client Source
import javax.naming. import javax.rmi.PortableRe
moteObject import Converter import
ConverterHome public class ConverterClient
public static void main(String args) try
Context initial new InitialContext() Object
objref initial.lookup("MyConverter") Convert
erHome home (ConverterHome)PortableRemoteObje
ct.narrow(objref,ConverterHome.class) Converter
currencyConverter home.create() double
amount currencyConverter.dollarToYen(100.00)
System.out.println(String.valueOf(amount)) amou
nt currencyConverter.yenToEuro(100.00) System
.out.println(String.valueOf(amount)) catch
(Exception ex)
53Enterprise EJB Scenario
J D B C
DB
JSP/Servlet
Java Beans
HTTP request
J M S
JSPs
EJBs
Back Office
HTTP response
Enterprise Application Server