Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction...

42
Enterprise JavaBeans: Fundamentals

description

EJB Fundamentals(c)CDAC(Formerly NCST)3 Sun’s 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.

Transcript of Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction...

Page 1: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

Enterprise JavaBeans: Fundamentals

Page 2: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 2

Contents Introduction Technology Overview EJB Architecture EJB Specification Sample Application

Page 3: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 3

Sun’s 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.

Page 4: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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.

Page 5: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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.

Page 6: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 6

Types of Beans Session Bean Entity Bean Message driven Bean

Page 7: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 7

Session Bean Session beans model business

processes. They are like ‘verbs’ because they

are actions. E.g. billing engine, catalog engine

etc:

Page 8: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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.

Page 9: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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.

Page 10: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 10

EJB Architecture

EJB MessageDriven Bean

EJB SessionBean

EJB EntityBean

EJB SessionBean

EJB SessionBean

EJB SessionBean

Servlet JSPMessaging

ClientC/C++Client

Java AppletJava Appl

BusinessPartner System

HTML Client

Messaging CORBA-IIOP RMI-IIOP RMI-IIOP RMI-IIOP

HTTPFirewall SOAP,UDDIWSDL,ebXML

WebServer

Application Server

PresentationTier

BusinessTier

Page 11: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 11

EJB Foundation: Distributed Objects

Client

Skeleton

DistributedObject

Stub

Network

Remote InterfaceRemote Interface

Page 12: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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.

Page 13: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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

Page 14: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 14

Explicit Middleware

Client

Skeleton

DistributedObject

Stub

Network

Remote InterfaceRemote Interface

TransactionServices

SecurityServices

Databasedrivers

Database API

Security API

Transaction API

Page 15: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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.

Page 16: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 16

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

Page 17: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 17

Implicit MiddlewareClient

Skeleton

RequestInterceptor

Stub

Network

Remote Interface Remote Interface

TransactionServices

SecurityServices

Databasedrivers

Database API

Security API

Transaction API

DistributedObject

Remote Interface

Page 18: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 18

Example – Bank account obj Transfer(Acct acc1,Acct acc2,long

amt)//1. Perform trans.(subtract bal from

one account and add to other).

Page 19: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 19

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

Page 20: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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.

Page 21: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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.

Page 22: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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.

Page 23: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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.

Page 24: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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.

Page 25: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 25

Home Object EJB object factory. Creates,finds and destroys EJB

objects. Proprietary and specific to each

EJB container. Home objects implements Home

Interface.

Page 26: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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.

Page 27: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 27

Local AccessLocal objects make enterprise bean calls

fast and efficient.Local objects implements Local Interface.Local home objects creates beans fast.Local home object implements Local Home

interface.

Page 28: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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.

Page 29: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 29

Vendor Specific Files All vendors have proprietary value

added features. Include files specific to that

vendor.

Page 30: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 30

Package

RemoteInterface

LocalInterface

EnterpriseBean

HomeInterface

DeploymentDescriptor

VendorSpecific

Jar file creator EJB jar file

Page 31: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 31

Sample ApplicationMy First Bean!

Page 32: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 32

Session Bean : FirstBeanpackage example;public class FirstBean implements javax.ejb.SessionBean{

private SessionContext ctx;

public void ejbCreate() {System.out.println(“ejbCreate()”);

} public void ejbRemove() {

System.out.println(“ejbRemove()”);}public void ejbActivate() {

System.out.println(“ejbActivate()”);}

Page 33: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 33

public void ejbPassivate(){

System.out.println(“ejbPassivate()”);}public void setSessionContext(javax.ejb.SessionContext ctx){

this.ctx=ctx;}public String first(){

System.out.println(“first()”);return “My First Bean”;

}}

Page 34: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 34

Remote Interface : First.java

package example;

public interface First extends javax.ejb.EJBObject{

public String first() throws java.rmi.RemoteException;}

Page 35: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 35

Home Interface : FirstHome

package example;

public interface FirstHome extends javax.ejb.EJBHome{

First create() throws java.rmi.RemoteException,javax.ejb.CreateException;

}

Page 36: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 36

Deployment Descriptor<ejb-jar>

<enterprise-bean><session> <ejb-name>First</ejb-name> <home>example.FirstHome</home> <remote>example.First</remote> <ejb-class>example.FirstBean<ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type></session>

</enterprise-bean></ejb-jar>

Page 37: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 37

Client Applicationpackage example;

import javax.naming.*;Import java.util.*;

public class FirstClient{public static void main(String[] arg) throws Exception{

Properties props=System.getProperties();Context ctx=new InitialContext(props);Object obj=ctx.llokup(“FirstHome”);FisrtHome home=(FirstHome)javax.rmi.RemotePortableObject.narrow(obj,FirstHome.class);

Page 38: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 38

First first=home.create();System.out.println(first.first());first.remove();

}}

Page 39: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 39

EJB Object Model<<interface>>

java.rmi.Remote<<interface>>

java.io.Serializable

<<interface>>javax.ejb.EnterpriseBean

<<interface>>javax.ejb.SessionBean

Bean ImplementClass

<<interface>>javax.ejb.EJBObject

<<interface>>Javax.ejb.EJBHome

<<interface>>Remote Interface

<<interface>>Home Interface

EJB Object Home Object

Comes with Java2 platform

Comes with EJB Distribution

Written by developer

Generated by Componet Vendor Tool

Page 40: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 40

HomeObject

EJBObject

EnterpriseBean

Client

NamingService

1 : Retrieve Home objectReference

2 : Return Home objectReference

JNDI

3: Create a newEJB Object

4: Create a newEJB Object

5: Return EJB Object Reference

6: Invoke BusinessMethod

7: Delegate Request to Bean

RemoteInterface

HomeInterface

EJB Container

Page 41: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 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 vendor’s enterprise middleware services.

It is agreed upon by industry.

Page 42: Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.

EJB Fundamentals (c)CDAC(Formerly NCST) 42

References Mastering Enterprise Java Beans J2EE 1.4 Tutorials Professional Java Server

Programming, J2EE Edition