Enterprise JavaBeans

Post on 18-Jan-2016

43 views 0 download

Tags:

description

Enterprise JavaBeans. Introduction and architecture. The beginning - Applets. One reason the Java initially gained popularity was its support for downloadable Java programs known as applets Java applets were first introduced in 1995 - PowerPoint PPT Presentation

Transcript of Enterprise JavaBeans

Enterprise JavaBeans

Introduction and architecture

The beginning - Applets• One reason the Java initially gained

popularity was its support for

downloadable Java programs known

as applets

• Java applets were first introduced in 1995

• Applet executes only on the "client" platform environment of a system

Java on the server• Recognizing the potential for Java as a server

language in Web environments, Sun Microsystems wrote the Java Servlet specification

• Java servlet specification was finalized in 1997

• Servlets are Java programs designed to run on Web server machines

Servlets• Java servlets are best suited as a middle tier

component connecting front-end Web requests with back-end data resources

• However, servlets alone do not provide a sufficient model for true enterprise computing

Three-tier architecture• Emerged in the 1990s to overcome the limitations

of the two-tier architecture

• The middle tier

supports application

server software, a

functional extension

of the Web server

Presentationtier

Business logic tier

Data tier

Advantages of multi-tier model• Scalability• Better re-use• Improved data integrity• Improved security• Reduced distribution• Improved availability• Hidden database structure

Java Platform Enterprise Edition• Java EE technology aims to extend the reach of the

Java platform to large-scale server environments

• Industry standard for developing portable, robust, scalable, distributed and secure multi-tier server-side Java applications

• The Enterprise JavaBeans specification is one of the several Java APIs in the Java EE

Enterprise JavaBeans• EJB is a server-side component that

encapsulates the business logic of an application

• Standard way to implement the 'business' code typically found in enterprise applications

Motivation• Solutions to common problems are often

repeatedly re-implemented by programmers

• EJB were intended to handle such common concerns as:• persistence • transactional integrity• security

in a standard way, leaving programmers free to concentrate on the particular problem

EJB goals• To be the standard component architecture for

building distributed object-oriented business applications

• To make it easy to write applications: developers will not have to understand

• low-level transaction and state management details• multi-threading • resource pooling• and other complex low-level APIs

EJB goals• To follow the "Write Once, Run Anywhere"

philosophy of the Java programming language• EJB can be developed once and then deployed on

multiple platforms without recompilation or source code modification

• To address the development, deployment, and run-time aspects of an enterprise application's life cycle

EJB goals• To define the contracts that enable tools from

multiple vendors to develop and deploy components that can interoperate at run time

• To provide interoperability between EJBs and non-Java programming language applications

• To be compatible with• existing server platforms• other Java programming language APIs• CORBA (Common Object Request Broker

Architecture)

Benefits of using EJBs• EJBs make it simpler to write applications

• EJB container is charged with the task of making system services available to EJB components

• Component portability • A simple, elegant component container model• Java server components can be developed once and

deployed in any EJB-compliant server

• Architecture independence• Independent of any specific platform, proprietary

protocol, or middleware infrastructure

Benefits of using EJBs• Built-in support for typical enterprise-level system

services:• distributed objects• transactions• database• security• global naming

• Developer productivity • Standardization and automation of complex infrastructure

services • Developers can create complex applications by focusing on

business logic rather than environmental issues

EJB history• The EJB specification was originally developed in

1997 by IBM and later adopted by Sun Microsystems

• EJB 1.1 ( J2EE 1.2 ), 1999• Session beans (stateless & stateful), Entity Beans• Remote interface

• EJB 2.0 ( J2EE 1.3 ), 2001• Message-Driven Beans• Entity 2.x and EJB QL• Local and Remote interfaces

Adoption and criticism• Enterprise JavaBeans were quickly adopted by

large companies

• Problems were quick to appear and the reputation of EJBs began to suffer

• APIs of the standard were too complex and counter-intuitive

• required interfaces• checked exceptions• deployment descriptors

Adoption and criticism• Businesses found that using EJBs to encapsulate

business logic brought a performance penalty• Original specification only allowed for remote

method invocation

• Long development cycle

• Tools made it easy to create and use EJBs by automating most of the repetitive tasks...

• But tools did not make it easier to learn how to use the technology!

EJB history• EJB 2.1 ( J2EE 1.4 ) 2003

• EJB Timer Service• EJB Web Service Endpoints• Minor EJB QL enhancements

• Reinventing EJBs• The functionality delivered by simpler frameworks

like Spring and Hibernate was more useful to enterprise applications

• EJB 3.0 specification was a radical departure from its predecessors

EJB history• EJB 3.0 ( JavaEE 5.0 ) 2006

• Many improvements to its predecessor!• Metadata annotations configuration by exception• A higher degree of control over bean persistence• Much more simplified programming model for

developing EJBs

EJB 2 vs. EJB 3

Overview – EJB in JavaEE

http://java.sun.com/javaee/5/docs/tutorial/doc/bnabo.html

Types of EJBs• There are actually three kinds of EJBs:

• session beans • entity beans• message-driven beans

• Session beans• Implement the business logic of an application• Can be Stateless or Stateful

• Entity beans• Are persisted in some data store

Session and Entity beans• In a typical scenario, the UI calls the methods of the

session beans. Session beans can call other session beans and entity beans.

EJB 2: classes and interfaces• To implement an EJB, one needs to define:

• Remote interface• Defines the business methods a bean presents to the

outside world

• Home interface• Defines the bean's life cycle methods: create,

remove, find

• Bean class• Actually implements the bean's business methods

Example: EJB 2 implementation

public interface TestSessionBean extends javax.ejb.EJBObject{

public String sayHello()

throws java.rmi.RemoteException;

}

public interface TestSessionBeanHome extends

javax.ejb.EJBHome{

public TestSessionBean create()

throws javax.ejb.CreateException, java.rmi.RemoteException;

}

Example: EJB 2 implementationpublic class MyTestSessionBean implements SessionBean{

public void ejbCreate() throws CreateException { } public void setSessionContext(SessionContext

aContext) throws EJBException { }

public void ejbActivate() throws EJBException { } public void ejbPassivate() throws EJBException { } public void ejbRemove() throws EJBException { }

public String sayHello(){ String msg="Hello! I am Session Bean"; System.out.println(msg); return msg; }}

Example: EJB 3 implementation@Remote

public interface TestSessionBean {

public String sayHello();

}

@Stateless

public class MyTestSessionBean implements TestSessionBean {

public String sayHello(){

String msg="Hello! I am Session Bean";

System.out.println(msg);

return msg;

}

}

EJB server and container• The EJB server provides an environment that

supports the execution of applications developed using EJBs

• An EJB server manages and coordinates the allocation of resources to the applications

• The EJB server must provide one or more EJB containers

• An EJB container manages the enterprise beans contained within it

EJB container• For each enterprise bean, the container is

responsible for • registering the object• providing a remote interface for the object• creating and destroying object instances • checking security for the object • managing the active state for the object• coordinating distributed transactions• (optionally) manage all persistent data within the

object

Packaging Java EE applications• A Java EE application is delivered in an

Enterprise Archive (EAR) file

• An EAR file contains Java EE modules and deployment descriptors

EJB module• An EJB module is used to assemble one or more

EJBs into a single deployable unit

• An EJB module is stored in a standard Java archive (JAR) file

• Directory structure:

Creating directory structure with Maven• Execute a command:

mvn archetype:create

-DgroupId=lv.webkursi.ejb

-DartifactId

=java-eim-demo-ejb-jboss

-DarchetypeArtifactId

=maven-archetype-j2ee-simple

• Develop EJBs in /ejbs/ folder

References• Enterprise JavaBeans Technology

http://java.sun.com/products/ejb/

• The history and goals of EJB architecture http://www.ibm.com/developerworks/java/library/j-what-are-ejbs/part1/

• EJB 3.0 in a nutshell http://www.javaworld.com/javaworld/jw-08-2004/jw-0809-ejb.html

References• Spring Vs. EJB 3.0

http://www.onjava.com/pub/a/onjava/2005/06/29/spring-ejb3.html

• Getting Started with EJB 3.0http://www.devx.com/Java/Article/30045/0/page/1