Top Banner
06/27/22 1
100

6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

Dec 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 1

Page 2: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 2

Enterprise Java Beans• Introduction

– Application Server– Java 2 Enterprise Edition

• What is an Enterprise Bean ?– EJB Properties– EJB Overview

– Deployment Phase

– Type of beans

• Client access with interfaces– Remote access– Local Access

Page 3: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 3

Enterprise Java Beans

• Contents of an Enterprise Bean• EJB Example• EJB vs MTS• A few EJB implementations • What’s new in EJB 2.0

• Bibliography

Page 4: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 4

Introduction

• Enterprise Java Beans ( EJB ) is – a middleware component model for Java and

CORBA

– a specification for creating server-side, scalable, transactional, multi-user and secure enterprise-level applications

• Presented by Sun in the 1999, they are easier than other technologies as RMI or Corba

Page 5: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 5

Introduction

• This is the three level structure for Application Server

Page 6: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 6

Applicaton Server

• Presentation– HTML Application – Java Application

• Business Logic

• Data Access

Page 7: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 7

Presentation

• HTML– Generated server-

side HTML– Runs on any Web

browser– Less client-side

power

• Java– Required Java virtual

Machine

– More client side power

– Runned on a page

– Launched from a browser or a standalone application

Page 8: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 8

Business Logic

• Implements the logic of the application defining all the function that may be used from a client– Change Business Rules Easily– Re-use components– Make complex applications manageable

Page 9: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 9

Data Access

• Utility to access external datas such as Database or other Web component

Page 10: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 10

J2EE Application Server

• Java 2 Enterprise Edition standardizes interfaces for Application Server components

Page 11: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 11

What is an Enterprise Bean ?

• Is a server side component written in Java Language

• Industry standard distribuited component model

• Incorporates the business logic of an application ( the code that implements the purpose of the application)

Page 12: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 12

EJB Properties

• Bean writers need not write– Remote access Protocols– Transactional Behaviour– Threads– Security– State Management– Object life cycle– Resource pooling– Persistence

Page 13: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 13

EJB Overview

Page 14: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 14

Deployment Phase

Page 15: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 15

Deployment Phase

Page 16: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 16

When to use Enterprise bean

• The application must be scalable.It will run on different machine and their location will remain transparent to the client

• Transaction requirement• The application will have lot of different type

of clients

Page 17: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 17

Type of beans

• Session Bean• Entity Bean• Message Driven Bean

Page 18: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 18

Session Bean

• Represents a single client inside the server• The client calls the session bean to invoke methods

of an application on the server • Perform works for its client, hiding the complexity of

interaction with other objects in the server• Is not shared• Is not persistent• When the client stops the session,the bean can be

assigned to another client from the server

Page 19: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 19

Session Bean

• Stateful session bean

• Stateless session bean

Page 20: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 20

Stateful Session Bean

• Contains the state of a single client session: – Information on the client – On method called – Return values

This state is called conversational state and is not retained when the session ends, also if the client not removes the bean

Page 21: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 21

Stateless Session Bean

• Not maintain a conversational state for a particular client

• Contains values only for the duration of the single invocation

• Except during method invocation, all instances of stateless session bean are equivalent

Page 22: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 22

Entity Bean

• Represents a business object in a persistent storage mechanism such as a relational database

• Usually is a table in the database and each instance of that entity bean is a row in that table

Properties:• Persistent• Allow shared access• Have primary key • H

ave relationship with other entity beans.

Page 23: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 23

Entity Bean persistent

• Bean managed persistence

• Container managed persistence

Page 24: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 24

Bean managed persistence

• Who write the bean’s code must access the database and save his own data

Page 25: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 25

Container managed persistence

• The container save the data• There is no code in the bean for access the

database• The container handles all database access

required for the bean• Links between beans are created using a

structure called abstract schema

Page 26: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 26

Entity bean’s shared access

• Entity beans can be used by different clients• It’s important that they work whithin transactions• The EJB container provides transaction

management • The transaction’s attribute are specified in the

bean’s deployment description

Page 27: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 27

Entity bean’s primary key

• Each entity bean has a unique object identifier like a key in a database table

Page 28: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 28

Entity bean’s relationship

• Container managed persistent – The container performs all the operation to create

relationship

• Bean managed persistent– The code to perform relations must be written in

the bean

Page 29: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 29

Message Driven bean

• Allows applications to process messages asynchronously

• The messages may be sent by :– An application client– Another enterprise bean– A Web component

Page 30: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 30

Message Driven bean

• Retain no data or conversational state for a specific client

• All instances are equivalent, allowing the EJB container to assign a message to any message-driven bean instance. The container can pool these instances to allow streams of messages to be processed concurrently

• Can process messages from multiple clients

Page 31: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 31

Message Driven bean

• A client can’t access directly to a message driven bean

• When a message arrive, the container gives it to a message driven bean

• The bean process the message

Page 32: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 32

Client access with interfaces

• A client may access a session or an entity bean only through the methods defined in the bean's interfaces

• They define the client's view of a bean • Types of access:

– Remote access– Local access

Page 33: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 33

Remote access

• A remote client of an enterprise bean has the following traits:– It may run on a different machine and a different

Java virtual machine than the enterprise bean it accesses (It is not required to run on a different JVM )

– It can be a Web component– It can be another enterprise bean

Page 34: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 34

Remote access

• To create an enterprise bean with remote access, you must :– Code a remote interface

• Business methods

– Code a home interface• Finder methods • Home methods

Page 35: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 35

Remote access example

Page 36: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 36

Local access

• A local client has these characteristics– It must run in the same JVM as the enterprise bean

it accesses– It may be a Web component or another enterprise

bean– To the local client, the location of the enterprise

bean it accesses is not transparent– It is often an entity bean that has a container-

managed relationship with another entity bean

Page 37: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 37

Local access

• To create an enterprise bean with local access, you must :– Code the local interface

• Bean's business methods

– Code the local home interface• Life cycle• Finder methods

Page 38: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 38

Local interfaces

• If an entity bean is the target of a container managed relationship it MUST have local interfaces

Page 39: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 39

Contents of an Enterprise Bean

• Deployment descriptor– Persistence type

– Transaction attribute

• Enterprise bean class• Interfaces• Helper classes

– Exception

– Utility classes

Page 40: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 40

EJB Example

• The OnLine Bank

We will take a not completed system to give an idea to how choose if a component is an entity, session or message driven bean.

Page 41: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 41

EJB ExampleVirtual Bank

 

Client

Security Accounts

Services

 

Page 42: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 42

EJB Example

The example has three component:– Services: what the client can do in the system such as see

the foreign currency , listed shares or make operations on his hown account.

– Accounts: a database containing the accounts of all the clients of the bank with information about credit,debit,access etc..

– Security: is a subsystem that receives all the alarm caused from wrong access and performs action about the situation

( calls police and stops operation of that client keeping information about him )

Page 43: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 43

EJB Example

• In this example is easy to create an EJB structure.– Client will have a web page at client side to insert values and

connect the system.This will be done using JSP ( Java Servlet Pages )

– Services will be a Statefull Session Bean and it will be different for each client connecting the system mantaining data about the client connected.

– Accounts will be formed by an Entity Bean for each account in the system with a code-account as primary key.

– Security will be a Message driven bean and will be called only from container if some operation are abnormal for result or the autentification for the same client fails too much times.

Page 44: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 44

EJB vs MTS

• Microsoft Transaction Server is based on the Component Object Model (COM) which is the middleware component model for Windows NT

• MTS can be defined as a component-based programming model

Page 45: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 45

EJB vs MTSAnalogies

• Implement business logic for Application Server components

• Have a Server and a container ( for MTS called MTS Executive )

• Similar architecture in both models• A client invokes wrapped method

Page 46: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 46

EJB vs MTSDifference

• EJB– Component instance

are pooled– Don’t support

heterogeneous transactions

– Portability accross multiple platforms using Java platform

• MTS– Component is not

created until the call from a client reaches the container

– Support heterogeneous transactions

– Portability only on Windows NT

Page 47: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 47

EJB vs MTSDifference

• EJB– Invoked by clients

using RMI– Has both

persistent and non-persistent components

• MTS– Invoked by clients

using DCOM or through local COM calls

– Components are not persistent, even though they may contain information

Page 48: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 48

A few EJB implementations

• WebLogic • Bluestone • Novera• Persistence • Oracle AS • Oracle8i

Page 49: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 49

What’s new in EJB 2.0

• Released On April 26, 2001• Integration with JavaTM Message Service (JMS) --

Asynchronous Capabilities Streamline Systems– Send asynchronous messages via the JMS API

• Container-Managed Persistence (CMP) -- Simplifying and Expediting Application Development– Used to isolate the application developer from the physical

database schema– Introduces for the first time a portable query language,

based on the abstract schema

Page 50: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 50

What’s new in EJB 2.0

• Local Interfaces -- Streamlining Calls Between Local Beans– The local interface may be defined for a bean during

development, to allow streamlined calls to the bean if a caller is in the same container

• Inter-Server Interoperability -- Enabling Heterogeneous Environments– Takes the benefit of cross-server application portability

– Able to deploy the EJB technology-based application across a heterogeneous environment mixing application servers from different vendors

Page 51: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 51

Bibliography

• The J2EE Tutorial– http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts.h

tml

• Meeting about Application servers– http://www.phxjug.org/meetings/silverstream/sld001.htm

• Developing Enterprise components– http://spectral.mscs.mu.edu/EJB20001113/index.html

• A detailed Comparison of EJB & MTS models– http://members.tripod.com/gsraj/misc/ejbmts/ejbmtscomp.ht

ml

Page 52: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 52

Bibliography

• What's new in the Enterprise JavaBeansTM 2.0 Specification?– http://java.sun.com/products/ejb/2.0.html

• Introduction to Enterprise JavaBeans– http://cosmos.inesc.pt/~a01/javacourses/ejb/

• Programming WebLogic Enterprise JavaBeans– http://e-docs.bea.com/wls/docs61/ejb/index.html

Page 53: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 53

The MTS architecture

• Is made up of:– The MTS Executive (mtxex.dll) – The Factory Wrappers and Context Wrappers for

each component – The MTS Server Component – MTS clients – Auxiliary systems like

• COM runtime services, • Service Control Manager (SCM)• The Microsoft Distributed Transaction Coordinator (MS-

DTC) • The Microsoft Message Queue (MSMQ) • The COM-Transaction Integrator (COM-TI)

Page 54: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 54

The MTS architecture

Page 55: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 55

The EJB architecture

• Consists of:– An EJB server – EJB containers that run within the server – Home objects– Remote EJBObjects – Enterprise Beans– EJB clients – Auxiliary systems like

• Java Naming and Directory Interface (JNDI)• Java Transaction Service (JTS) • Security services

Page 56: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 56

The EJB architecture

Page 57: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 57

Stateful session bean’s life cycle

• The client invoke the create method• The EJB container :

– Instantiates the bean – Invokes the setSessionContext – Invokes ejbCreate

• The bean is ready

Page 58: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 58

Stateful session bean’s life cycle

• While in the ready state– EJB container may passivate the bean moving it

from memory to secondary storage – A client may invoke a business method – EJB container may activate a bean,moving it back

to the ready stage, and then calls the bean's ejbActivate method

– A client may invoke the remove method and the container calls the bean's ejbRemove method

Page 59: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 59

Stateful session bean’s life cycle

Page 60: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 60

Stateless session bean’s life cycle

• The client invoke the create method• The EJB container :

– Instantiates the bean – Invokes the setSessionContext – Invokes ejbCreate

• The bean is ready

Page 61: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 61

Stateless session bean’s life cycle

• While in the ready state– A client may invoke a business method– A client may invoke the remove method and the

container calls the bean's ejbRemove method– It’s never passivate

Page 62: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 62

Stateless session bean’s life cycle

Page 63: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 63

Entity bean’s life cycle

• The EJB container :– Creates the instance– Calls the setEntityContext

• The entity bean moves to a pool of available instances

Page 64: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 64

Entity bean’s life cycle

• While in the pool :– Instance is not associated with any particular object identity – All instances in the pool are identical – EJB container may assign an identity to an instance when

moving it to the ready stage invoking the ejbActivate method

– A client may invoke the create method• EJB container calls ejbCreate and ejbPostCreate

– EJB container may remove the instance invoking unsetEntityContext

Page 65: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 65

Entity bean’s life cycle

• While in the ready state : – A client may invoke entity bean's business

methods– A client may invoke the remove method

• EJB container calls the ejbRemove method

– EJB container may invoke the ejbPassivate method

Page 66: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 66

Entity bean’s life cycle

Page 67: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 67

Message driven bean’s life cycle

• EJB container creates a pool of message-driven bean instances

• For each instance, the EJB container instantiates the bean :– It calls the setMessageDrivenContext – It calls the instance's ejbCreate

• Like a stateless session bean,it’s never passivated, It has only two states: – Nonexistent – Ready to receive messages.

Page 68: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 68

Message driven bean’s life cycle

• While in the ready state : – EJB container may call onMessage – EJB container may call the ejbRemove

Page 69: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 69

Message driven bean’s life cycle

Page 70: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 70

Abstract schema

• Part of an entity bean's deployment descriptor

• Defines the bean's persistent fields and relationships.The term abstract distinguishes this schema from the physical schema of the underlying data store

• You specify the name of an abstract schema in the deployment descriptor

Page 71: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 71

Example of Abstract schema

Page 72: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 72

Abstract schema

• Persistent fields– Are stored in the underlying data store– Constitute the state of the bean. At runtime, the

EJB container automatically synchronizes this state with the database

– During deployment, the container • Maps the entity bean to a database table• Maps the persistent fields to the table's columns

Page 73: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 73

Abstract schema

• Relationship fields– It’s like a foreign key in a database table.It

identifies a related bean – Like a persistent field, a relationship field is virtual

and is defined in the enterprise bean class with access methods

– Unlike a persistent field, a relationship field does not represent the bean's state

Page 74: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 74

Abstract schema

• Multiplicity in Container-Managed Relationships– One-to-one: Each entity bean instance is related

to a single instance of another entity bean – One-to-many: An entity bean instance may be

related to multiple instances of the other entity bean

– Many-to-one: Multiple instances of an entity bean may be related to a single instance of the other entity bean

– Many-to-many: The entity bean instances may be related to multiple instances of each other

Page 75: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 75

Abstract schema

• Direction in Container-Managed Relationships – Bidirectional relationship: each entity bean has a

relationship field that refers to the other bean. Through the relationship field, an entity bean's code can access its related object

– Unidirectional relationship: only one entity bean has a relationship field that refers to the other

Page 76: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 76

EJB 3.0

This section based on

Mastering EJB 3.0 4th Ed

Page 77: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 77

EJB 3.0

• Key issues for distributed systems– Remote Method Invocation– Load Balancing– Transparent failover– Back-end integration to legacy systems– Transactions– Clustering (state replication across servers)– Dynamic redeployment (upgrade while running)

Page 78: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 78

EJB 3.0

• More key issues– Clean shutdown– Logging & auditing– Systems management– Threading– Message-oriented middleware– Component lifecycle– Resource pooling

Page 79: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 79

EJB 3.0

• Yet more issues– Security– Caching– Etc., etc.

Page 80: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 80

EJB 3.0

• All of these can be thought of as middleware services

• Developer of distributed app shouldn’t have to worry about them– Should concentrate on business logic– Much too expensive to build from scratch– Distributed app should be portable across

middleware service providers

Page 81: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 81

EJB 3.0

• EJB spec defines standard interfaces between distributed components & their containers

Page 82: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 82

EJB 3.0

• Advantages– Industry standard

• Vendors design containers to EJB specs

– Portability possible across containers– RAD capable because services provided

by container

Page 83: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 83

EJB 3.0

• What’s an EJB?– Server-side component encapsulating application functionality

• Business logic• DB access• Integrate with other legacy systems• Serve multiple clients

– Browser

– Desktop apps

– Other EJBs

– Web app components (e.g., Servlets)

– Web Service clients

Page 84: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 84

EJB 3.0

• How do they work?– EJB can be located anywhere, usually on another

machine– Use RMI-IIOP for remote invocation of methods

(P. 15)– Location transparency

• Client thinks remot EJB is local

– Run inside EJB container• Application servers

Page 85: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 85

EJB 3.0

• Who makes containers?– Most of the usual enterprise suspects

• BEA, IBM, Red Hat (JBOSS), Sun, Oracle

• Closely related to web services– P. 29

Page 86: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 86

EJB 3.0

• EJB 2.1 was NASTY!!– HelloWorld EJB 2.1 (pp. 40-49) – Many disappointed enterprise developers

• Vastly simplified in EJB 3.0– HelloWorld EJB 3.0 (pp. 83-85)– Many ‘once burned twice shy’ developers

• Sun’s dilemma:– ‘If we simplify it, will they resume coding EJBs?’

Page 87: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 87

EJB 3.0

• EJB best practices

• For appropriate use only – Remoting is required– Distributed transactions required– Component security required– Persistence required– Legacy system integration– Scalability required

Page 88: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 88

EJB 3.0

• If your application components don’t need to be distributed across servers, avoid using distributed components like EJBs

Page 89: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 89

EJB 3.0

This section based on:

J2EE Development Without EJB

Page 90: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 90

EJB 3.0

• Written by a ‘once burned twice shy’ EJB developer

• Observations apply to EJB 2.1 (and earlier) experiences – EJB 3.0 spec in early stages when book written

Page 91: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 91

EJB 3.0

• Basic thesis is EJBs….– Rarely necessary for web-based applications– Commonly overused– Symptom of over-engineering – Can obtain most of needed EJB services via other

programming techniques using lightweight containers (e.g., Spring)

• Java EE & Java SE• Aspect-oriented programming• Dynamic proxies

Page 92: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 92

EJB 3.0

• He’s not alone• Many other enterprise architects and

developers have critized EJBs since early 2000s

• Martin Fowler’s Law of Distributed Objects

‘Don’t do it!!’

Page 93: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 93

EJB 3.0

• Some criticisms– Too complex

• Specifications getting more complex• EJB 3.0 tries to address this

– Unit testing hard to do • Have to isolate app from container• If something broken, is it container related or app

related?

Page 94: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 94

EJB 3.0

– Other technologies (AOP) get the job done more easily

– Entity beans are a flop• EJB 3.0 doesn’t upgrade entity beans• Left to wither on the Java EE vine• Persistence API tries to address this

Page 95: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 95

EJB 3.0

• Metadata (a la .NET) are better than descriptor files– Annotations designed to address this

• Only truly unique service provided by EJB is remote access to a component

• Java EE provides other services already– JNDI, JTA, JCA, resource pooling, etc.

Page 96: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 96

EJB 3.0

• EJBs remain best choice for apps that genuinely need object distribution or use IIOP protocol

• EJBs also pretty good for apps based around asynchronous messaging– Message-drive beans pretty simple

Page 97: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 97

EJB 3.0

• Financial services middleware likely good place for EJB-driven apps

• Argues that EJBs are declining technology & will be legacy within 3 years

• Doesn’t think EJB 3.0 will make much of a difference

Page 98: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 98

EJB 3.0

• Advocates use of lightweight containers like Spring….

• Oh btw, author is co-founder of Spring framework!

• Bias is always an issue!

Page 99: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 99

EJB 3.0

• What’s an enterprise developer to do?

• Distributed systems a holy grail of system architecture & deployment since early 90s– CORBA initiative began in 91– Web Services are current frontier

• IT profession still learning when & how to do distributed systems

Page 100: 6/19/20151. 2 Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava 2 Enterprise Edition What is an.

04/18/23 100

EJB 3.0

References

Master Enterprise JavaBeans 3.0, 4th Ed, Sriganesh et. Al., 2006

J2EE Development Without EJB, Johnson, 2004