1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu EJB Introduction & Session Bean ppt

33 207 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề EJB introduction & session bean
Tác giả Đào Anh Tuấn
Trường học Hồ Chí Minh University of Science
Thể loại bài giảng
Thành phố Hồ Chí Minh
Định dạng
Số trang 33
Dung lượng 1,36 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• Các client có thể là một desktop application, jsp/servlet hoặc có thể là một ứng dụng .NET truy xuất theo cơ chế web service • Các hàm của session bean có thể được truy xuất từ xa, khô

Trang 1

EJB Introduction & Session Bean

Đào Anh Tu n – ấ

datuan@fit.hcmuns.edu.vn

Trang 2

EJB Introdution – Định nghĩa

• Enterprise JavaBeans (EJB) is a platform for

building portable, reusable, and scalable

business applications using the Java

programming language

• From a developer’s point of view, an EJB is a

piece of Java code that executes in a

specialized runtime environment called the EJB

container, which provides a number of

component services

Trang 3

• Reusable: For example, you can implement the credit

card–charging module as an EJB component that may be accessed by multiple applications

• Main strength: Multithreading

Trang 4

Các dịch vụ EJB hỗ trợ

Trang 5

Vai trò EJB trong mô hình layers

Trang 6

Vị trí của EJB

Trang 7

• Trong đó Session và Message-Driven Beans

đảm nhiệm vai trò ở tầng Business, Entity

Beans đảm nhiệm vai trò ở tầng Persistence

Trang 8

J2EE Container

• EJB chỉ có thể thực thi trong các EJB Container

• J2EE container cung cấp cho người dùng nhiều dịch vụ cao cấp khác nhau

• Trong phạm vi môn học: Sử dụng server JBoss

Trang 9

Bussiness Logic with Session Bean

• Một ứng dụng thường bao gồm rất nhiều nghiệp vụ: Kiểm tra tài khoản, rút tiền, xuất hóa đơn …

• Session Bean đóng vai trò cài đặt các chức năng nghiệp

vụ cho ứng dụng.

• Nói một cách đơn giản: Session bean bao gồm một tập các hàm cho phép client truy xuất để hoàn thành một

công việc nào đó.

• Các client có thể là một desktop application, jsp/servlet hoặc có thể là một ứng dụng NET truy xuất theo cơ chế web service

• Các hàm của session bean có thể được truy xuất từ xa, không nhất thiết phải nằm trên máy cục bộ -> ứng dụng phân tán (distributed)

Trang 10

Một số điểm mạnh khi dùng session bean:

• concurrency and thread safety: có thể xử lý

nhiều client cùng lúc mà không cài đặt các cơ chế đặc biệt (do container quản lý)

• remote invocation: có thể được triệu gọi từ xa

• transaction and security management

Trang 11

Cấu trúc một session bean:

• Gồm 2 phần: Bean interfaces và bean

implementation class

• Client không được phép truy xuất trực tiếp đến

implementation class mà phải truy xuất thông qua interface

• Interface sẽ triệu gọi hàm tương ứng của

implemtation class và trả kết quả cho client

Trang 13

Phân loại Session Bean

Trang 14

Ví dụ minh họa

• Xây dựng một stateless session bean hỗ trợ

việc cộng hai số lớp (vài trăm chữ số - lớp

BigInteger trong Java)

• Hàm cung cấp cho user triệu gọi từ xa có dạngBigInteger add (BigInteger a, BigInteger b)

Trang 15

Xây dựng Interface

• Có 3 loại interface:

▫ Local: Client và Bean nằm trên cùng một JVM

▫ Remote: Client có thể nằm ở xa Bean (khác máy tính)

▫ Web Service: Triệu gọi theo cơ chế web service

• Khai báo các hàm “cam kết” sẽ hỗ trợ cho user

Trang 16

public interface AdderRemote {

BigInteger add(BigInteger a, BigInteger b);

}

Trang 17

public interface AdderLocal {

BigInteger add(BigInteger a, BigInteger b);

}

Trang 18

Stateless Bean class:

Trang 19

Life Cycle

• Stateless: Do không lưu trữ thông tin của client, một stateless session bean có thể phục vụ bất kỳ client nào

• Container tạo sẵn một số instance và đặt trong

POOL

• Số lượng beans có thể ít hơn số client

Trang 20

Lifecycle - Stateless

• Stateless beans chỉ có 3 trạng

thái:

• Bean chưa được tạo ra

• Container tạo ra các beans và

đặt vào pool (idle beans)

• Khi có 1 client triệu gọi, lấy

bean ra khỏi pool, thực thi lệnh (busy)

• Nếu client không có nhu cầu sử

dụng -> trở về pool (idle)

Trang 22

Các hàm callback

• Có 2 trường hợp đặc biệt:

• Hàm cần gọi sau khi bean vừa được khởi tạo:

Dùng ký hiệu @PostConstruct trước khai báo hàm

• Hàm cần gọi trước khi bean được hủy: Dùng ký

hiệu @PreDestroy trước khai báo hàm

• Khi không có nhu cầu sử dụng, các beans được

đặt trong POOL Số lượng beans trong POOL

sẽ được Container duy trì ở mức hợp lý

Trang 23

Ví dụ

Trang 24

Life Cycle – Stateful Session Beans

• Mỗi khi có 1 client triệu gọi, sẽ phải phát sinh một session bean ứng với client đó.

Trang 25

Các chứng năng phát sinh

• Passivation: Khi số lượng beans quá nhiều,

container có nhu cầu cất các beans ứng với các client đã lâu không liên lạc lại với container vào đĩa cứng

• Activation: Khi các client này liên lạc lại với

container, phải phục hồi bean từ đĩa cứng trở lại

bộ nhớ

• Remove: Khi client ngắt hoàn toàn liên lạc với

container, hủy session bean ứng với client đó vì không thể sử dụng lại

Trang 28

• @Remove (không phải hàm call back): khi gọi

hàm được đánh dấu remove, client báo cho

container biết mình không có nhu cầu sử dụng nữa và bean sẽ bị hủy

Trang 29

Các luật:

• a session bean must have at least one business interface

• The session bean class must be concrete You cannot define a session bean class as either final or abstract since the container needs to

manipulate it.

• You must have a no-argument constructor in the bean class

• Business method names must not start with “ejb.”

• You must define all business methods as public, but not final or static

• If you are exposing a method in a remote business interface of the EJB, then make sure that the arguments and the return type of the method implement the java.io.Serializable interface

Trang 30

Xây dựng client

• Gọi session bean từ servlet:

Các bước:

• Sử dụng JNDI để lookup Session bean Interface

• Gọi hàm của bean Interface

• Container sẽ tự động gọi hàm tương ứng của

bean class Client không bao giờ tiếp xúc trực tiếp với bean class

Trang 31

Ví dụ:

• Quá trình lookup: Mặc định chuỗi lookup là

BeanName/remote hoặc BeanName/local

Context ctx = new InitialContext(properties);

AdderLocal test=(AdderLocal)ctx.lookup("AdderBean/ local ");

Trang 32

Lưu ý:

• Import các gói cần thiết

• Import package chứa các interface của ejb

import java.util.*;

import javax.naming.*;

import ejb.*;

Trang 33

Gọi hàm từ interface

Context ctx = new InitialContext(properties);

AdderLocal test=(AdderLocal)ctx.lookup("AdderBean/local");

BigInteger a=new BigInteger("12345");

BigInteger b=new BigInteger("56576");

BigInteger c= test.add(a,b);

out.println("c="+c);

Ngày đăng: 16/12/2013, 13:15

HÌNH ẢNH LIÊN QUAN

Vai trò EJB trong mô hình layers - Tài liệu EJB Introduction & Session Bean ppt
ai trò EJB trong mô hình layers (Trang 5)
• Hình ảnh một session - Tài liệu EJB Introduction & Session Bean ppt
nh ảnh một session (Trang 12)

TỪ KHÓA LIÊN QUAN