+ All Categories
Home > Documents > Enterprise JavaBeans

Enterprise JavaBeans

Date post: 18-Jan-2016
Category:
Upload: esma
View: 41 times
Download: 0 times
Share this document with a friend
Description:
Enterprise JavaBeans. Chapter 14. Objectives. Explore an enterprise application’s needs for secure distributed access, scalability with high performance, robustness, data persistence with transactional integrity, and management of distributed and often disparate resources - PowerPoint PPT Presentation
Popular Tags:
43
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14
Transcript
Page 1: Enterprise JavaBeans

Java Programming: Advanced Topics

1

Enterprise JavaBeans

Chapter 14

Page 2: Enterprise JavaBeans

Java Programming: Advanced Topics

2

Objectives• Explore an enterprise application’s needs for secure

distributed access, scalability with high performance, robustness, data persistence with transactional integrity, and management of distributed and often disparate resources

• Discover how the EJB framework provides the quality of services enterprise applications require

• Learn how stateful and stateless session EJBs provide components that perform business logic

Page 3: Enterprise JavaBeans

Java Programming: Advanced Topics

3

Objectives (Cont.)

• Learn how to program an EJB client

• Discuss exception handling in EJBs and EJB clients

• Learn how entity beans represent persistent data in Java objects

Page 4: Enterprise JavaBeans

Java Programming: Advanced Topics

4

Objectives (Cont.)

• Discuss mapping fields of entity beans to elements in databases using CMP and BMP

• Learn how to use container-managed relationships and EJB query language with container-managed persistence

• Learn what Java Message Service is and learn how message-driven beans consume asynchronous messages

Page 5: Enterprise JavaBeans

Java Programming: Advanced Topics

5

Objectives (Cont.)

• Discuss transactional properties of EJBs

• Discuss elements of application security that relate to EJBs

• Consider some best practices for designing applications that use EJBs

Page 6: Enterprise JavaBeans

Java Programming: Advanced Topics

6

Enterprise Programming • EJB specification: a description of this

environment and the framework for building distributed objects that implement a standard interface

• Distributed systems: software systems that reside on several physical hosts – the components must interoperate over a network

that may be a local area network (LAN) or the Internet

Page 7: Enterprise JavaBeans

Java Programming: Advanced Topics

7

Enterprise Programming (Cont.)• Scalability: the ability of a system to continue to

give high performance as the number of users increases

• Persistence: any data that outlives any software component

• Resource management is required whenever the system makes high demands on databases and other resources

Page 8: Enterprise JavaBeans

Java Programming: Advanced Topics

8

Enterprise Programming (Cont.)• Connection pooling: keeping a set of

connections open so that different software components can be given an open connection for short-term exclusive use

• Security: usually of critical importance in enterprise applications

• Transactional integrity: often the quality that most concerns developers of enterprise applications

Page 9: Enterprise JavaBeans

Java Programming: Advanced Topics

9

What are EJBs • Enterprise JavaBeans (EJBs): server-side

software components that conform to the J2EE architecture for development and deployment of distributed systems

• J2EE-compliant application servers must provide a run-time environment for the EJBs: an EJB container

Page 10: Enterprise JavaBeans

Java Programming: Advanced Topics

10

What are EJBs (Cont.)

• EJBs come in three basic kinds:– Session beans:

• can perform any kind of processing

– Entity beans:• represent persistent data

– Message-driven beans (MDB):• have a specialized purpose and are used with

messaging software

Page 11: Enterprise JavaBeans

Java Programming: Advanced Topics

11

What are EJBs (Cont.)

• The major components of an EJB:– Bean class– Home interface– Local or Remote interface

Page 12: Enterprise JavaBeans

Java Programming: Advanced Topics

12

MVC Architecture

Page 13: Enterprise JavaBeans

Java Programming: Advanced Topics

13

EJB Containers and Services

• The role of the EJB container is to provide the following:– The distribution infrastructure and a naming service to

help client code locate and access EJBs.– The ability to place EJBs in a scalable architecture– Support for concurrent access– Resource management, including connection pooling– Security services in addition to the secure

environment that can be configured for applications loaded into the application server

– Transaction managers that interact with JDBC drivers and resource adapters

Page 14: Enterprise JavaBeans

Java Programming: Advanced Topics

14

J2EE Enterprise Application Packaging and Deployment

• EJBs are always packaged in J2EE enterprise applications

• Files that compose EJBs are packaged in jar files

• An EJB jar must contain a deployment descriptor file

Page 15: Enterprise JavaBeans

Java Programming: Advanced Topics

15

J2EE Packaging into Archive Files

Page 16: Enterprise JavaBeans

Java Programming: Advanced Topics

16

Session EJBs

• Session EJBs can do general purpose processing

• They are associated with the client that calls them

• There are two types of session EJBs:– stateful – stateless

Page 17: Enterprise JavaBeans

Java Programming: Advanced Topics

17

Stateless Session EJBs

• Stateless session beans can be shared among clients

• Methods defined in the javax.ejb.SessionBean interface are call-back methods that control the lifecycle of the bean, that called by the container

Page 18: Enterprise JavaBeans

Java Programming: Advanced Topics

18

Stateless Session EJBs (Cont.)• Steps to create a stateless session EJB:

– 1. Define a class that extends the SessionBean interface

– 2. Create a home interface – 3. Add business methods to the session bean class

and write implementations of those methods– 4. Add a remote interface and include all the

business methods that can be called by remote clients

– 5. Write the deployment descriptor

Page 19: Enterprise JavaBeans

Java Programming: Advanced Topics

19

Stateful Session EJBs

• Stateful session EJBs retain conversational state between method calls and are used by only one client

• Conversational state: information that must be retained as long as the client is actively interacting with the application

• Transactional state: data that must be permanently recorded when the client activity ends

Page 20: Enterprise JavaBeans

Java Programming: Advanced Topics

20

EJB Clients

• The EJB 2.0 specification adds interfaces to all entity and session beans specifically for use by co-located clients

• There are four interfaces that you can define for a session or entity bean

Page 21: Enterprise JavaBeans

Java Programming: Advanced Topics

21

The Client Interfaces

Page 22: Enterprise JavaBeans

Java Programming: Advanced Topics

22

The Client Interfaces (Cont.)

Page 23: Enterprise JavaBeans

Java Programming: Advanced Topics

23

The Client Interfaces (Cont.)

Page 24: Enterprise JavaBeans

Java Programming: Advanced Topics

24

The Client Interfaces (Cont.)

Page 25: Enterprise JavaBeans

Java Programming: Advanced Topics

25

Writing EJB Clients

• The client starts by accessing the JNDI namespace, by instantiating an object of type javax.naming.InitialContext

• When the client has the EJB home, it uses a create method to get a handle to the remote interface

Page 26: Enterprise JavaBeans

Java Programming: Advanced Topics

26

Handling Exceptions in EJB Clients

• Define and use application-level exception classes to encapsulate anticipated problem conditions

• Application-level exceptions: exceptions that business logic can anticipate and possibly recover from.

Page 27: Enterprise JavaBeans

Java Programming: Advanced Topics

27

Entity EJBs• Entity beans represent persistent data• Use entity beans as the interface between Java

components and relational or object-oriented databases

• The container uses the primary key to locate the data when a client requests an entity bean and creates only one bean to represent that data in a Java object

Page 28: Enterprise JavaBeans

Java Programming: Advanced Topics

28

EJB to Database Schema Mapping

• There are three approaches to database schema mapping:– Top-down mapping:

• possible when a new database is required and Java developers are allowed to create databases

– Bottom-up mapping: • occurs when you have a database and can design your EJBs

to match the tables and columns defined in the database schema

– Meet-in-the-middle mapping: • most common solution in practice

Page 29: Enterprise JavaBeans

Java Programming: Advanced Topics

29

EJB to Database Schema Mapping (Cont.)

• The EJB specification allows two approaches:– Container Managed Persistence (CMP):

• involves declaring the mapping between the deployment descriptor and delegating all code generation to the container

– Bean Managed Persistence (BMP):• is a do-it-yourself solution

Page 30: Enterprise JavaBeans

Java Programming: Advanced Topics

30

Sample CMP Entity Bean

Page 31: Enterprise JavaBeans

Java Programming: Advanced Topics

31

EJB Query Language

• Enterprise JavaBean Query Language (EJB QL) was introduced in the EJB 2.0 specification to support the abstract persistence model

• EJB QL: language for expressing the equivalent of SQL SELECT statements for CMP beans

Page 32: Enterprise JavaBeans

Java Programming: Advanced Topics

32

Comparing EJB QL and SQL Statements

Page 33: Enterprise JavaBeans

Java Programming: Advanced Topics

33

Using EJB QL

Page 34: Enterprise JavaBeans

Java Programming: Advanced Topics

34

Message-Driven Beans

• An message-driven bean (MDB) initiates processing in response to an external event

• To create an MDB, build the bean class• The MDB class must implement

javax.ejb.MessageDrivenBean and javax.jms.MessageListener

Page 35: Enterprise JavaBeans

Java Programming: Advanced Topics

35

A Deployment Descriptor with MDB

Page 36: Enterprise JavaBeans

Java Programming: Advanced Topics

36

A Possible Scenario that Uses MDBs

Page 37: Enterprise JavaBeans

Java Programming: Advanced Topics

37

EJB Transactional Characteristics • The EJB specification gives you options for

defining transactions:– Container managed transactions (CMT)– Bean managed transactions (BMT)– Client demarked transaction

Page 38: Enterprise JavaBeans

Java Programming: Advanced Topics

38

EJB Transactional Levels

Page 39: Enterprise JavaBeans

Java Programming: Advanced Topics

39

EJB Transactional Levels (Cont.)

Page 40: Enterprise JavaBeans

Java Programming: Advanced Topics

40

EJB Transactional Levels (Cont.)

Page 41: Enterprise JavaBeans

Java Programming: Advanced Topics

41

EJB Security

• The concept of passing security roles down the call stack as EJB methods call other EJB methods is called delegation

• Role-based security can be applied to entire EJBs or to individual methods

• EJB developers are not responsible for user authentication or authorization (mapping the user to a role)

Page 42: Enterprise JavaBeans

Java Programming: Advanced Topics

42

Summary• EJBs are distributable server-side components

that run in EJB containers provided by J2EE-compliant application servers

• EJBs come in three basic kinds: session beans, entity beans, and message-driven beans (MDB)

• EJB clients locate bean instances by looking up the name in a JNDI server

• Stateless session beans can be shared among clients, while stateful session EJBs are used by only one client

Page 43: Enterprise JavaBeans

Java Programming: Advanced Topics

43

Summary (Cont.)

• Entity beans represent persistent data and can be designed for container-managed persistence (CMP) or bean-managed persistence (BMP)

• EJB QL is a SQL-like language for writing database queries in terms of CMP bean classes and fields

• The concept of passing security roles down the call stack as EJB methods call other EJB methods is called delegation


Recommended