EJB 3.x và JavaEE

55 1.5K 18
EJB 3.x và JavaEE

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

EJB 3.x và JavaEE

Trang 1

EJB 3.x và JavaEE

thangld@uit.edu.vnKhoa Mạng máy tính và Truyền thôngĐại học Công nghệ Thông tin

Enterprise JavaBean

Trang 3

JavaEE Application

Trang 4

Kiến trúc ứng dụng đa lớp

Trang 5

Enterprise JavaBean 5

JavaEE application workflow

Trang 6

Enterprise JavaBean

Trang 7

Enterprise JavaBean 7

 Server-side component cài đặt business logic cho ứng dụng

 Thực thi trong EJB container môi trường thực thi ở Application Server

 EJB container hỗ trợ transaction và security cho các EJB

 Version: 3.x

Trang 8

EJB Container trong JavaEE

Trang 9

Enterprise JavaBean 9

Ưu điểm

 Lập trình viên chỉ quan tâm đến việc cài đặt

business logic cho ứng dụng; vấn đề transaction và security được EJB container hỗ trợ

 Client module chỉ quan tâm đến việc trình bày dữ liệu; EJB đảm nhiệm thực thi business logic

 EJB: portable component

Trang 10

Mục đích sử dụng

 Ứng dụng có tính ổn định cao

Số lượng người dùng

Phân tán component

EJB transparent đối với người dùng

 Đảm bảo tính toàn vẹn dữ liệu với transaction

 Ứng dụng có nhiều loại client khác nhau: web application, desktop application

Trang 11

Enterprise JavaBean 11

Phân loại EJB

 Sesion: Thực thi một tác vụ theo yêu cầu của client

 Message-Driven: Hoạt động như là một bộ lắng nghe các JMS API, xử lý các thông điệp theo cơ chế bất đồng bộ

 Entity: Đại diện cho một thực thể tồn tại trong hệ thống lưu trữ (CSDL) khái niệm cũ trong J2EE platform

Trang 12

EJB trong JavaEE

 Trong EJB 3, session bean và message-driven bean là các Java class thông thường với các annotation

 Entity EJB 2.x vẫn được hỗ trợ

 Entity Bean có thể được phát triển theo hướng khác

Trang 13

Session Bean

Trang 14

Session Bean

 Đại diện cho một client ở phía application server

 Cung cấp các phương thức business logic phục

Trang 15

Enterprise JavaBean 15

Session Bean

 Stateless

Không duy trì trạng thái giao dịch với client: phục vụ client gọi thực thi các phương thức xử lý đơn lẻ

Hỗ trợ tốt đối với các ứng dụng với số lượng người dùng lớn

 Stateful

Các thuộc tính của lớp (EJB) biểu diễn trạng thái của một phiên làm việc duy nhất giữa client và bean

Duy trì trạng thái giao dịch với client thông qua các thuộc tính của bean trong suốt quá trình làm việc giữa client và bean

Khi client kết thúc phiên làm việc với bean, thông tin về trạng thái giao dịch sẽ bị hủy

Trang 16

Mục đích sử dụng

 Một client truy xuất đến một đối tượng bean

 Trạng thái giao dịch không được lưu trữ lại vì chỉ tồn tại trong một khoảng thời gian ngắn.

 Khi cần cài đặt một web service

Trang 17

Enterprise JavaBean 17

Stateful Bean: Mục đích sử dụng

 Stateful

Trạng thái của bean biểu diễn quá trình tương tác giữa bean và một client cụ thể

Cần duy trì trạng thái của giao dịch trong quá trình client gọi thực thi các phương thức của bean

Bean đóng vai trò giao tiếp trung gian giữa client và các component khác của ứng dụng Bean điều phối luồng xử lý truy xuất đến nhiều bean khác.

Trang 18

Stateless Bean: Mục đích sử dụng

 Stateless

Bean không cần lưu trữ bất kỳ thông tin nào liên quan đến giao dịch với client

Trong một lời gọi phương thức, bean thực thi một business logic chung cho tất cả mọi client

Bean có thể truy vấn dữ liệu (read-only mode) cho client sử dụng

Trang 19

Entity với JPA

Trang 20

Entity (Bean) 3.x

 Một Entity đại diện cho một table trong CSDL

quan hệ, chẳng hạn như customer, order,

 Mỗi entity instance biểu diễn một dòng dữ liệu trong table đó

 Thông tin trạng thái lưu trữ trong một entity được biểu diễn bằng tập các thuộc tính

persistent.

Trang 21

Enterprise JavaBean 21

Cài đặt

Class phải được chú dẫn bằng javax.persistence.Entity

Class phải chứa một phương thức khởi tạo mặc định

public hoặc protected

Class không final và không phương thức hoặc thuộc tính nào final

Nếu một entity instance được sử dụng để truyền tham trị (detached object), entity class phải thi công interface

Các thuộc tính phải có phạm vi truy xuất private,

protected hoặc default, và chỉ được truy xuất trực tiếp

bởi các phương thức của bean

Nếu một thuộc tính transient hoặc được chú dẫn @Transient (javax.persistence.Transient) sẽ không

được ánh xạ với dữ liệu trong CSDL

Trang 27

Enterprise JavaBean 27

Persistence Unit

 Định nghĩa tập tất cả các entity class được quản lý bởi một EntityManager trong ứng dụng

 Được định nghĩa trong tập tin cấu hình

persistence.xml nằm trong thư mục META-INF

Trang 28

Mục đích sử dụng

 Bean biểu diễn một đối tượng business, không phải là một thủ tục

 Thông tin trạng thái của bean cần được lưu trữ, ánh xạ với dữ liệu trong CSDL

Trang 29

Message-Driven Bean

Trang 30

Message-Driven Bean

 Cho phép ứng dụng JavaEE xử lý các thông điệp theo cơ chế bất đồng bộ

 Hoạt động như một bộ lắng nghe các thông điệp JMS từ bất kỳ JavaEE component nào (ứng

dụng client, Enterprise JavaBean hoặc các web component), hoặc một ứng dụng JMS khác hoặc cũng có thể là một hệ thống non-JaveEE.

 Xử lý các thông điệp JMS cũng như các loại

Trang 31

Enterprise JavaBean 31

Message-Driven Bean

Trang 32

Đặc điểm

 Client không định vị và truy xuất trực tiếp các message-driven bean thông qua interface

 Message-Driven Bean chỉ được cài đặt gồm duy nhất một class

 Message-Driven Bean có một vài điểm tương đồng với session bean

Thực thể Message-Driven Bean không lưu trữ dữ liệu hoặc trạng thái giao dịch với client

Tất cả các đối tượng của một message-driven bean

Trang 34

Mục đích sử dụng

 Cần cơ chế xử lý thông điệp bất đồng bộ

Trang 35

Enterprise JavaBean 35

Cài đặt

Class phải public; không abstract hoặc final

 Phải cài đặt phương thức khởi tạo mặc định

Không được cài đặt phương thức finalize

Trang 36

Phương thức onMessage

 Phương thức này được gọi thực thi bởi EJB container khi có một thông điệp được gửi đến bean để phục vụ Trong JMS, phương thức

onMessage là phương thức của interface MessageListener

 Phương thức này phải:

Là phương thức public

Không final hoặc static

Chỉ nhận vào một tham số (thông điệp gửi đến) kiểu

Trang 38

Business Interface

Trang 39

Enterprise JavaBean 39

Business Interface

 Java interface thông thường

 Client truy xuất các sesion bean thông qua các phương thức được định nghĩa trong business interface của bean

 Bean class phải thi công interface này

 Client có thể giao tiếp với bean thông qua cơ chế: remote, local hoặc webservice

Trang 40

Business Interface

 Local / Remote interface

Mặc định là Local: annotation @Local

Remote: sử dụng annotation @Remote hoặc mô tả trong file cấu hình

 Các annotation được sử dụng trong interface hoặc trong bean class

@Local

Trang 41

Enterprise JavaBean 41

Remote Client

 Client và bean thực thi trên hai JVM khác nhau

 Có thể là một web component, application, hoặc một enterprise bean khác

 Vị trí của bean là hoàn toàn trong suốt đối với

Trang 43

Enterprise JavaBean 43

Ví dụ

#Hello.java@Remote

public interface HelloRemote {

public String hello(String name);}

#HelloBean.java@Stateless

public class HelloBean implements HelloRemote {public String hello(String name) {

String result = “Hello, “ + name;System.out.println(result);

return result;}

}

Trang 44

Local Client

 Client và Bean thực thi trên cùng một JVM

 Có thể là một web component hoặc một enterprise bean khác

 Vị trí của bean không hoàn toàn trong suốt đối với client

 Thường sử dụng trong trường hợp:

Bean gọi Bean hoặc Web component gọi Bean trong cùng một logic unit (container / enterprise application)

Trang 46

Ví dụ

#HelloLocal.java@Local

public interface HelloLocal {

public String hello(String name);}

#HelloBean.java@Stateless

public class HelloBean implements HelloLocal {public String hello(String name) {

Trang 47

Enterprise JavaBean 47

Method Parameter

 Remote call: truyền đối tượng bằng tham trị

 Local call: truyền đối tượng bằng tham chiếu

Trang 48

EJB JAR

Trang 49

Enterprise JavaBean 49

EJB JAR file

 Enterprise bean class

 Business interface

 Helper class

Trang 50

Chu kỳ sống của EJB

Trang 51

Enterprise JavaBean 51

Chu kỳ sống: Staless Sesion EJB

Trang 52

Chu kỳ sống: Stateful Session EJB

Trang 53

Enterprise JavaBean 53

Chu kỳ sống: Message-Driven EJB

Trang 55

Q&A

Ngày đăng: 13/09/2012, 11:16

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan