1 l enterprise computing -- 3-tier and multi-tier applications l enterprise javabeans n ejb features...

32
1 Enterprise Computing -- 3-tier and multi-tier applications Enterprise JavaBeans EJB Features Types of EJBs Example – A Currency Converter Packaging the Session EJB Deploying the Bean Running the Client Introduction to Enterprise JavaBeans CG0165: Advanced Applications Development in Java Michael Brockway, Sajjad Shami School of Computing, Engineering & Information Sciences Northumbria University

Upload: laurence-ramsey

Post on 11-Jan-2016

220 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

1

Enterprise Computing -- 3-tier and multi-tier applications Enterprise JavaBeans

EJB FeaturesTypes of EJBs

Example – A Currency ConverterPackaging the Session EJBDeploying the BeanRunning the Client

Introduction to Enterprise JavaBeans

CG0165: Advanced Applications Development in Java

Michael Brockway, Sajjad Shami

School of Computing, Engineering & Information Sciences

Northumbria University

Page 2: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

2

Introduction to EJBs

References: Tutorial and reference material from the sun web site - Enterprise

Edition pages http://java.sun.com/javaee/5/docs/tutorial/doc/ http://java.sun.com/javaee/5/docs/tutorial/doc/JavaEETutorial.pdf

http://docs.sun.com/app/docs/doc/819-3656/6n5s3qjg2?a=view

The relevant material in the Tutorial is in chapter 1: Overview, chapter 20: Enterprise Beans, and chapter 21: Getting Started with Enterprise Beans

Page 3: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

3

Enterprise Computing

Same as distributed computing: computation done by groups of programs communicating over a

network Not necessarily a major corporation, university, government agency

… Small businesses also engage in plenty of distributed computing The architecture of Enterprise applications can be thought

of as consisting of three logical tiers Presentation (Client side, User)

displays data to client Application

provides business logic to Presentation tier holds business components & objects

Data Systems central data storage/ retrieval

Page 4: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

4

Three Tiers

Presentation Tier

Application Tier Data Systems Tier/ EIS

Business components

Application 2

Application 1

/Client Backend / backofficeDatabase/ legacy sys

Application 3

Server

Page 5: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

5

Multi-tier applications

This architecture generalises: In general an enterprise application involves client-to-server

communication.

Stock controlserver

Inventory DBserver

Goods purchasing system 1

Goods purchasing system n

......

Goods purchasing system 2

Client(s)

= application tier = data systems tier

Page 6: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

6

Multi-tier applications

For a rationale, imagine a client who manages an inventory for a chain of shops Has web-based (thin client) interfaces to a number of server-

based applications the chain's own inventory the goods purchasing system for supplier no 1 the goods purchasing system for supplier no 2 .... the goods purchasing system for supplier no n

There is a set of logical rules: one for each inventory item, which causes a certain quantity of the item to be ordered-in (from the appropriate supplier) when stocks fall below a pre-determined threshold.

It would clearly be silly for all this logic to occur in the client Better:

The goods ordering logic is implemented on a server which talks to all the other servers

Page 7: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

7

Multi-tier applications

A further development is the Thin Client The clients run web browsers or other very light-weight

software The presentation tier resides in a web server

Web server

Application server

Application server

.

.

.

Application server

communication with clients

Business logic

servlets, JSPs

Client(s): HTTP requests, XHTML

responses

Page 8: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

8

Enterprise JavaBeans (EJBs)

(Other) Technologies for implementing business & presentation logic in multi-tier applications: Java Servlets JSPs

Enterprise JavaBeans are a technology for the application server side and provide a component model for building business logic in enterprise Java

applications

References: Deitel, Deitel & Santry Advanced Java 2 HTP, chap 14 Tutorial and reference material on the SUN web site - Enterprise Edition

pages

They provide a component model Component developers write component "building blocks" that implement

business logic Application developers hook up these pre-built components into finished

applications, which may themselves be components.

Not to be Confused with JavaBeans!!!

Page 9: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

9

Multi-Tier Apps in Java EE

Page 10: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

10

Multi-Tier Apps in Java EE

Page 11: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

11

Java EE Components

Java EE applications are made up of components A Java EE component is a self-contained functional

software unit that is assembled into a Java EE application with its related classes and files and that communicates with other

components. The Java EE specification defines the following Java EE

components: Application clients and applets are components that run on the

client. Java Servlet, JavaServer Faces, and JavaServer Pages™

(JSP™) technology components are web components that run on the server.

Enterprise JavaBeans™ (EJB™) components (enterprise beans) are business components that run on the server.

Page 12: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

12

Java EE Clients

Web Client two parts: (1) dynamic web pages containing various types of markup

language (HTML, XML, etc), which are generated by web components running in the web tier, and

(2) a web browser, which renders the pages received from the server.

A web client is sometimes called a thin client.

Applets A web page received from the web tier can include an embedded

applet. An applet is a small client application written in the Java

programming language that executes in the Java virtual machine installed in the web browser

Page 13: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

13

Java EE Clients …contd.

Application Client

runs on a client machine typically has a graphical user interface (GUI)

a command-line interface is also possible.

directly access enterprise beans running in the business tier

can also open an HTTP connection to establish communication with a servlet running in the web tier

application clients written in languages other than Java can

interact with Java EE 5 servers enabling the Java EE 5 platform to interoperate with legacy systems,

clients, and non-Java languages.

Page 14: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

14

EJB Features

EJBs improve distributed transactions By ensuring data integrity across databases and application servers

EJBs utilise Java EE’s distributed transaction features and update data across several databases

To develop an enterprise bean, the following files are required:

• Enterprise bean class: Implements the methods defined in the business interface.

•Business Interfaces: The business interface defines the method implemented by the enterprise bean class.

• Helper classes: Other classes needed by the enterprise bean class, such as exception and utility classes.

Page 15: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

15

Packaging of an Enterprise Bean

The three files are packaged into an EJB JAR file, the module that stores the enterprise bean. An EJB JAR file is portable and can be used for different applications.

To assemble a Java EE application, package one or moremodules—such as EJB JAR files—into an EAR file, the archive file that holds the application.

When deploying the EAR file that contains the bean’s EJB JAR file, also deploy the enterprise bean to the Application Server.

Note: An EJB JAR that is not contained in an EAR file can also be deployed

Page 16: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

16

Advantages of Enterprise Beans

enterprise beans simplify the development of large, distributed applications:

1) as the EJB container provides system-level services to enterprise beans, the bean developer can concentrate on solving business problems

2) the client developer can focus on the presentation of the client does not have to code the routines that implement business rules or

access databases. result: clients are thinner

3) the application assembler can build new applications from existing beans can run on any compliant Java EE server

Page 17: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

17

When to Use Enterprise Beans

the application must be scalable. to accommodate a growing number of users, may need to

distribute an application’s components across multiple machines.

transactions must ensure data integrity Enterprise beans support transactions, the mechanisms that

manage the concurrent access of shared objects

the application will have a variety of clients with only a few lines of code, remote clients can easily locate

enterprise beans. these clients can be thin, various, and numerous.

Page 18: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

18

EAR File Structure

Page 19: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

19

The EJB Implementation and the EJB Container

The EJB Implementation implements the business logic methods declared in the EJB remote

interface

The EJB Container within the application server manages client interactions invocations from a client first go to the EJB container which then

delegates to the EJB Implementation manages life cycles of its EJBs can create new EJB instances and remove existing ones

Page 20: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

20

Types of EJBs

Session EJBs distributed objects which do jobs within the business logic /

application server can manipulate data in a database

...but are not persistent

lost if EJB container crashes two types:

Stateful Stateless

Message-driven EJBs – will not be discussed in detail

Page 21: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

21

Sun Java System Application Server Platform Ed. 9

is a fully compliant implementation of the Java EE 5 platform.

In addition to supporting all the APIs the Application Server includes a number of Java EE tool and instructions

for starting and stopping the Application Server, starting the Admin Console, and starting and stopping the Java DB database server.

Admin Console asadmin asant appclient …..

Page 22: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

22

A First EJB Example – A Currency Converter

See listings given out with the lecture notes a stateless Session Enterprise Java Bean with remote interface. a very primitive application: has just two business methods

a method to convert dollars to yen a method to convert yen to euro. you will get an opportunity to upgrade this application as a practical

exercise.

Converter.java the remote interface for the Enterprise Bean declares the business methods described above.

Page 23: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

23

Converter.java

package converter.ejb;

import java.math.BigDecimal;import javax.ejb.Remote;

@Remotepublic interface Converter {

public BigDecimal dollarToYen(BigDecimal dollars);public BigDecimal yenToEuro(BigDecimal yen);

}

Page 24: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

24

Example – Currency Converter

ConverterBean.java the EJB implementation a stateless session EJB for performing currency conversions in effect, this class implements the business methods declared in Converter remote interface

Page 25: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

25

ConverterBean.java

package converter.ejb;import java.math.BigDecimal;import javax.ejb.Stateless;@Statelesspublic class ConverterBean implements converter.ejb.Converter {

private BigDecimal euroRate = new BigDecimal("0.0070");private BigDecimal yenRate = new BigDecimal("112.58")

public BigDecimal dollarToYen(BigDecimal dollars) {BigDecimal result = dollars.multiply(yenRate);return result.setScale(2, BigDecimal.ROUND_UP);

}

public BigDecimal yenToEuro(BigDecimal yen) {BigDecimal result = yen.multiply(euroRate);return result.setScale(2, BigDecimal.ROUND_UP);

}}

Page 26: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

26

Compiling and Packaging

compile the remote business interface (Converter.java) and the enterprise bean class (ConverterBean.java), and package the compiled classes into an enterprise bean JAR.

1. In a terminal window, go to this directory: <INSTALL>/javaeetutorial5/examples/ejb/converter/

2. Type the following command: ant

Page 27: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

27

The Application Client

is a program written in the Java programming language at runtime, the client program executes in a different virtual machine

than the Application Server

The application client in this example requires two JAR files.

The first JAR file is for the Java EE component of the client. This JAR file contains the client’s deployment descriptor and class files

The second JAR file contains all the classes that are required by the client program at runtime. These classes enable the client to access the enterprise beans that are running in the Application Server.

Page 28: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

28

ConverterClient.java

package converter.client;

import converter.ejb.Converter;import java.math.BigDecimal;import javax.ejb.EJB;

public class ConverterClient { @EJBprivate static Converter converter;

/** Creates a new instance of Client */public ConverterClient(String[] args) {}

/** * @param args the command line arguments*/public static void main(String[] args) {

ConverterClient client = new ConverterClient(args);

client.doConversion();}

Page 29: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

29

ConverterClient.java … contd.

public void doConversion() {try {

BigDecimal param = new BigDecimal("100.00");BigDecimal yenAmount =

converter.dollarToYen(param);

System.out.println("$" + param + " is " + yenAmount + " Yen.");

BigDecimal euroAmount = converter.yenToEuro(yenAmount);

System.out.println(yenAmount + " Yen is " + euroAmount + " Euro.");

System.exit(0);} catch (Exception ex) {System.err.println("Caught an unexpected

exception!");ex.printStackTrace();

}}

}

Page 30: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

30

Running the Application Client

ant ant deploy ant run

In the terminal window, the client displays these lines:

...$100.00 is 11531.00 Yen.11531.00 Yen is 81.88 Euro....

That's it! you have deployed the primitive EJB application in the application server, and used a client program to connect to it.

Page 31: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

31

Extension

The Converter application is an example provided as part of Sun's Java EE tutorial:

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

You can make the Converter much more versatile and useful than this – refer to the practical work sheet.

Page 32: 1 l Enterprise Computing -- 3-tier and multi-tier applications l Enterprise JavaBeans n EJB Features n Types of EJBs l Example – A Currency Converter n

32

The Web Client Interface