Chapter 10 EJB

28
Chapter 10 EJB Concepts of EJB • Three Components in Creating an EJB • Starting/Stopping J2EE Server and Deployment Tool • Installation and Configuration of J2EE • Concept of Deployment • Steps in Developing an EJB Applications • A simple Example • Entity Beans and Session Beans • Example of an Entity Bean Application • Example of an Session Bean Application

description

Chapter 10 EJB. Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of J2EE Concept of Deployment Steps in Developing an EJB Applications A simple Example Entity Beans and Session Beans - PowerPoint PPT Presentation

Transcript of Chapter 10 EJB

Page 1: Chapter 10 EJB

Chapter 10 EJB• Concepts of EJB

• Three Components in Creating an EJB• Starting/Stopping J2EE Server and Deployment Tool• Installation and Configuration of J2EE• Concept of Deployment • Steps in Developing an EJB Applications• A simple Example• Entity Beans and Session Beans• Example of an Entity Bean Application• Example of an Session Bean Application• In-class Exercises

Page 2: Chapter 10 EJB

Concepts of EJB• What is an EJB?

– Part of J2EE (Java 2 Enterprise Edition)

– Three-tier or multi-tier client/server applications

– Distributed applications

• Why EJB?

– Components-based architecture makes application development easier and faster

– Platform independent

– Developers concentrate on business logic rather than presentation

– GUI deployment tools make packaging and deploying an EJB application easier and faster

– Integrated Java technology

– Hidden-details in Client/server communications and JDBC connectivity

Page 3: Chapter 10 EJB

Concepts of EJB (continue)• Multi-tiered Applications

Page 4: Chapter 10 EJB

Concepts of EJB (continue)• J2EE server communications with other tiers

Page 5: Chapter 10 EJB

Concepts of EJB (continue)

• Closer look of Web tier

Page 6: Chapter 10 EJB

Concepts of EJB (continue)

• Closer look of Business and EIS (Enterprise Info Sys) tier

Page 7: Chapter 10 EJB

Concepts of EJB (continue)

• J2EE Server and Containers

Page 8: Chapter 10 EJB

Three Components in Creating an EJB• Coding the remote interface

– define the business methods that a client may call, i.e, retrieve a message or compute data

– name convention of the code: ProgRemote.java

• Coding the home interface

– define the methods that allow a client to create, find, or remove an EJB

– name convention of the code: ProHome.java

• Coding the bean

– implement the methods of the remote interface. The methods will be called by the container-generated code after the deployment

– name convention of the code: ProEJB.java or ProBean.java

• Note: to use the EJB, one must create a client code

Page 10: Chapter 10 EJB

Starting/Stopping J2EE Server and Deployment Tool

• To start the server, click on j2ee.bat in the J2EE_HOME\bin directory, or type the following command in command console:

start %J2EE_HOME%\bin\j2ee -verbose• To start the deployment tool, click on deploytool.bat in

the J2EE_HOME\bin directory, or type the following command in command console:

start %J2EE_HOME%\bin\deploytool• To stop the server, use the following command

%J2EE_HOME%\bin\j2ee -stop

Page 11: Chapter 10 EJB

Application Deployment Tool in J2EE

• deploytool provides GUI for assembling, verifying, packaging, configuring, and deploying J2EE applications

• It manages your development and production environments

• It creates a JAR file, ProEJB.jar, for the EJB, and an application file, Pro.ear, for development in the EJB container

• It will also create additional files needed for communications with the clients, and a deployment descriptor

Page 12: Chapter 10 EJB

Steps in Developing an EJB Applications• Step 1: Create the EJB

– code the remote interface (ProRemote.java)– code the home interface (ProHome.java)– code the bean (ProgEJB.java)– compile all three components using the following

command:

javac -classpath .;%J2EE_HOME%\lib\j2ee.jar Pro*.java• Step 2: Start J2EE Server (see previous slide)• Step 3: Deploy the EJB Using deploytool (see previous

slide)• Step 4: Create and compile a client code• Step 5: Execute the client code

Page 13: Chapter 10 EJB

A simple Example• (p. 389) HelloRemote.java - define the business method

as remote interface to retrieve hello message

• (p. 390) HelloHome.java - define the method that allow a client to create, find, or remove an EJB

• (p. 391) HelloEJB.java - implement the methods of the remote interface as SessionBean, more specifically, return the hello message

• To compile:

javac -classpath .;%J2EE_HOME%\lib\j2ee.jar Hello*.java• To deploy the Hello application, follow the steps on p. 8

of newupdatech10.doc

Page 14: Chapter 10 EJB

A simple Example (continue)• (p. 393) HelloClient.java - a client application using the

EJB to display the message• To execute the client application:

- compile the HelloClient.javajavac -classpath .;%J2EE_HOME%\lib\j2ee.jar HelloClient.java

- execute the application:java -classpath .;%J2EE_HOME%\lib\j2ee.jar;HelloClient.jar

HelloClient

Page 15: Chapter 10 EJB

Entity Beans and Session Beans• Entity beans model business objects such as customers,

orders, and prodcuts• Entity beans have a persistent representation, usually in a

database; J2EE server uses Cloudscape database• Session beans perform operations on the business objects

such as place an order, or reserve a flight• A session bean presents a client in the J2EE server

• The client invokes the session bean’s methods to access an application deployed in the server

• Session beans are not persistent.• Session beans can be stateless or stateful

– a stateful bean saves information so it can interact with the client

– a stateless bean requires no continuing interaction with the client

Page 16: Chapter 10 EJB

Entity Beans• Entity beans model business objects such as

customers, orders, and products• Entity beans have a persistent representation,

usually in a database; J2EE server uses Cloudscape database

• Entity beans can be Container-Managed Persistence (CMP) or Bean-Managed Persistence (BMP)

• In CMP, the persistence of a bean’s state to the underlying database is automatically managed by the container

• In MBP, the programmers create code in the bean to manage the persistence

Page 17: Chapter 10 EJB

Entity Beans (continue)• As in developing a session bean, we need to write the Home

interface, the Remote interface, and the implementation of the entity bean

• As in developing a session bean, we need also to write the client code as a particular application to use the entity bean

• In the Remote interface we extend EJBObject and declare the get() and set() methods as the business methods (see CustomerRemote.java)

• In the Home interface, we extend EJBHome and declare the required Create() method, the required findByPrimaryKey(), and other finder methods (see CustomerHome.java)

Page 18: Chapter 10 EJB

Entity Beans (continue)

• In the implementation we implement EntityBean, the methods declared in the interfaces, and other methods (see CustomerEJB.java in p. 397)

• After we deploy the entity bean, the find() methods become as SQL queries generated by the container automatically. We may modify them if it’s necessary

• In the developing the client applications, multiple clients can access an entity bean, the persistence and synchronization are automatically managed

Page 19: Chapter 10 EJB

Entity Beans (continue)• In a client code, it looks up the bean, may create

database table, call the finder methods, or get() and set() methods to do the transactions and manipulations of the data stored in the database (see CustomerClient.java)

• Steps in deployment of the entity bean (see p. 18 in newupdatech10.doc)

• Steps in deployment of the client (see p. 20 in newupdatech10.doc)

• Steps in the execution (see p. 21 in newupdatech10.doc)

Page 20: Chapter 10 EJB

Example of an Entity Bean Application

• (p. 395) CustimerRemot.java - remote interface to define the business methods for customer EJB

• (p. 396) CustomerHome.java - define the method that allow a client to create and find a customer

• (p. 397) CustomerEJB.java - entity bean representing a customer (See p. 16 in newupdatech10.doc)

• (p. 402) CustomerClient.java - client code to create customers and test out the find method (See p. 21 in newupdatech10.doc)

• Deployment steps (see p. 18-21 in newupdatech10.doc)• Note: Steps may be vary depending upon the different

versions of J2EE

Page 21: Chapter 10 EJB

Example of an Session Bean Application

• A session bean may be stateful in which it holds the client state across the method calls

• A session bean may be deployed to the entity bean, so the data in the entity bean can be used

• Agent bean example has these features above• (p. 404) AgentRemote.java - define the business method

for agent EJB• (p. 404) AgentHome.java - define the methode to create

an agent bean• (p. 405) AgentEJB.java - a stateful entity bean to place

an order

Page 22: Chapter 10 EJB

Example of an Session Bean Application (continue)

• (p. 408/p. 29) SalesClient.java - client code to use agent bean to retrieve the required customer names

• Deployment steps (see p. 28-29 in newupdatch10.doc)

Page 23: Chapter 10 EJB

Using EJB in Servlet and JSP Clients• For a Web application, we can include the web components

from J2EE application, so the clients can access EJB from the web and dynamically update the web

• The client can be a servlet client, or JSP client. • As a servlet client, we can write the HTML file to invoke

the J2EE application in which it will invoke the packaged servlet

• As a JSP client, we can write a JSP code that focuses on the presentation of the form shown in the client’s web, then we can write a Java program to focus on the looking up the bean and the business methods

• In either way, we package the servlet or JSP in J2EE, then we deploy the application using deployment tools

Page 24: Chapter 10 EJB

Using EJB in Servlet and JSP Clients(continue)

• Examples to develop a servlet client to access the Agent Bean:– Develop a HTML that calls the J2EE application “SalesAlias”

that invokes a sales servlet, and passes Customer ID and Salesperson ID to the servlet using the POST method (see updatch10.doc – SalesServlet.html)

– Develop a servlet program that connects with the Agent bean, updates the client’s web, displays a form, creates object of Agent bean with the table having Item number, Quantity, and Price entered by the client, and displays the records in the table to the client’s web (see updatech10.doc – SalesServlet.java)

– Compile the servlet program using the command:javac -classpath .;c:\j2sdkee1.3.1\lib\j2ee.jar SalesServlet.java

– Start J2EE server, Cloudscape server, and deploytool

Page 25: Chapter 10 EJB

Using EJB in Servlet and JSP Clients(continue)

– Package the servlet (see newupdatech10.doc – package the servlet)

– Deploy the application (see newupdatech10.doc – the next page)

– Execute the applicationhttp://localhost:8000/SalesContextRoot/SalesServlet.html

(The HTML will invoke the EJB application “SalesAlias” after user click on the Submit Query button)

Page 26: Chapter 10 EJB

Using EJB in Servlet and JSP Clients(continue)

• Examples to develop a JSP client to access the Customer Bean (CustomerEJB):– Develop a Java program that looks up the Customer

bean and perform the business logics (set() and get() methods, see newupdatech10.doc – CustomerBean.java)

– Compile the Java code using the command:javac –classpath .;%j2ee_home%\bin\

j2ee.jar;CustomerClient.jar CustomerBean.java

Page 27: Chapter 10 EJB

Using EJB in Servlet and JSP Clients(continue)

– Develop a JSP program that will present a form in the client’s web, call the methods defined in the Java code, and interact between client and the server using the EJB (see newupdatech10.doc – Customer.jsp)

– Start J2EE server, Cloudscape server, and deploytool – Package the JSP (see newupdatech10.doc – Package the JSP

and JavaBean)

– Deploy the application (see newupdatech10.doc – Deploy the Application)

– Execute Open a Web browser, and type:

http://localhost:8000/CustomerContextRoot/Customer.jsp

Page 28: Chapter 10 EJB

In-class Exercises

- Test examples HelloXXX, CustomerXXX, AgentXXX, and SalesXXX.

- Try-It-Yourself 3, 5, 9 and 11