Tải bản đầy đủ (.doc) (78 trang)

THIẾT KẾ THÀNH PHẦN EJB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.22 MB, 78 trang )

ĐỒ ÁN TỐT NGHIỆP MỤC LỤC
MỤC LỤC
MỤC LỤC..........................................................................................................................1
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT.....................................................5
DANH MỤC HÌNH VẼ.....................................................................................................7
MỞ ĐẦU..........................................................................................................................10
CHƯƠNG 1 MÔ HÌNH LẬP TRÌNH ĐA TẦNG VỚI J2EE.........................................13
1.1MÔ HÌNH KHÁCH CHỦ...........................................................................................13
1.2MÔ HÌNH ĐA TẦNG.................................................................................................14
J2EE Server..............................................................................................................15
1.3 J2EE VÀ EJB.............................................................................................................16
1.3.1 J2EE.....................................................................................................................16
1.3.1.1 Khái niệm J2EE...........................................................................................16
1.3.1.2 Kiến trúc trình chứa J2EE ..........................................................................16
1.3.1.3 Các API của J2EE.......................................................................................17
1.3.2 EJB......................................................................................................................19
1.3.2.1 Khái niệm....................................................................................................19
1.3.2.2 Mô hình EJB................................................................................................19
1.3.2.3 Vì sao dùng EJB..........................................................................................20
1.3.2.4Các loại EJB..................................................................................................21
CHƯƠNG 2 TRIỂN KHAI ĐỐI TƯỢNG BEAN EJB...................................................23
2.1THIẾT KẾ THÀNH PHẦN EJB.................................................................................23
2.1.1 Phát triển Remote Interface.................................................................................23
2.1.3 Phát triển lớp thực thi Bean (Bean Implement Class).........................................24
2.1.4 Phát triển lớp Client triệu gọi Bean.....................................................................25
2.1.5 Viết file XML mô tả triển khai (Deployment Descriptor)...................................27
2.2 BIÊN DỊCH ĐỐI TƯỢNG EJB.................................................................................28
2.3 KHỞI TẠO MÔI TRƯỜNG J2EE.............................................................................28
2.4 ĐÓNG GÓI THÀNH PHẦN BEAN VỚI TRÌNH ĐÓNG GÓI................................29
2.5 XÂY DỰNG THÀNH PHẦN WEB (WEB COMPONENT)....................................30
BÙI THÁI THÀNH LONG HVCNBCVT


1
ĐỒ ÁN TỐT NGHIỆP MỤC LỤC
2.5.1 Viết một trang JSP triệu gọi thành phần Bean.....................................................30
2.5.2 Tạo thành phần Web............................................................................................31
2.5.3 Kiểm chứng và đóng gói ứng dụng J2EE............................................................32
2.5.4 Chạy ứng dụng J2EE...........................................................................................32
2.6 PHÁT TRIỂN BEAN THAO TÁC (SESSION BEAN)............................................32
2.6.1 Giao tiếp Session Bean........................................................................................32
2.6.2 Phát triển Bean thao tác phi trạng thái (Stateless Session Bean).........................33
2.6.2.1 Xây dựng Bean thao tác phi trạng thái........................................................33
2.6.2.2 Chu trình hoạt động (Lyfe Cycle) của Bean thao tác phi trạng thái............34
2.6.2.3 Sơ đồ trạng thái (State Diagram).................................................................34
2.6.2.4 Sơ đồ trình tự cho Bean thao tác phi trạng thái...........................................35
2.6.3 Phát triển Bean thao tác lưu vết trạng thái (Stateful Session Bean)....................35
2.6.3.1 Xây dựng Bean thao tác lưu vết trạng thái..................................................35
2.6.3.2 Chu trình hoạt động của Bean thao tác lưu vết trạng thái...........................41
2.6.3.3 Sơ đồ trạng thái của Bean thao tác lưu vết trạng thái..................................42
2.6.3.4 Sơ đồ trình tự của Bean thao tác lưu vết trạng thái.....................................43
2.7 GIỚI THIỆU TỔNG QUAN VỀ ENTITY BEAN....................................................43
2.8ENTERPRISE JAVA BEAN VÀ SỰ HỖ TRỢ CỦA CÁC TRÌNH CHỦ KHÁC....45
CHƯƠNG 3 TỔNG KẾT.................................................................................................46
CHƯƠNG 4 ĐẶT VẤN ĐỀ............................................................................................47
CHƯƠNG 5 ĐẶC TẢ YÊU CẦU HỆ THỐNG..............................................................48
5.1NGƯỜI SỬ DỤNG HỆ THỐNG................................................................................48
5.1.1 Đối với khách hàng chưa đăng ký.......................................................................48
5.1.2 Đối với thành viên...............................................................................................48
5.1.3 Đối với người quản trị hệ thống .........................................................................49
5.2CÁC CHỨC NĂNG CỦA HỆ THỐNG.....................................................................49
5.2.1Các chức năng dành cho thành viên và khách hàng chưa đăng ký.......................49
5.2.1.1Tìm kiếm sách...............................................................................................49

5.2.1.2Tìm kiếm sách nâng cao................................................................................49
5.2.1.3Đăng ký.........................................................................................................50
5.2.1.4Đăng nhập.....................................................................................................50
5.2.1.5Đánh giá sách................................................................................................50
5.2.1.6Đặt hàng qua mạng........................................................................................51
5.2.2Các chức năng quản lý.........................................................................................51
5.2.2.1Quản trị sách..................................................................................................51
5.2.2.2Quản trị thành viên........................................................................................51
BÙI THÁI THÀNH LONG HVCNBCVT
2
ĐỒ ÁN TỐT NGHIỆP MỤC LỤC
5.2.2.3Quản trị đơn hàng..........................................................................................51
CHƯƠNG 6 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG.................................................53
6.1MÔ HÌNH USE CASE................................................................................................53
6.2BIỂU ĐỒ TRÌNH TỰ.................................................................................................56
6.2.1Biểu đồ trình tự cho Use Case đăng nhập............................................................56
6.2.2Biểu đồ trình tự cho Use Case đặt hàng...............................................................56
6.2.3Biểu đồ trình tự cho Use Case Tìm kiếm.............................................................57
6.2.4Biểu đồ trình tự cho Use Case Đánh giá sách......................................................57
6.2.5Biểu đồ trình tự cho Use Case Thêm sách mới....................................................58
6.2.6Biểu đồ trình tự cho Use Case Xem đơn hàng.....................................................58
6.2.7Biểu đồ trình tự cho Use Case Xóa đơn hàng......................................................59
6.2.8Biểu đồ trình tự cho Use Case Xem thành viên....................................................59
6.2.9Biểu đồ trình tự cho Use Case Xóa thành viên.....................................................60
6.3THIẾT KẾ BIỂU ĐỒ LỚP – ĐỐI TƯỢNG CHI TIẾT.............................................60
6.4THIẾT KẾ CƠ SỞ DỮ LIỆU.....................................................................................61
6.4.1Thiết kế các bảng..................................................................................................61
6.4.1.1Bảng chứa các để mục cho trang chủ: editorial_categories...........................61
6.4.1.2Bảng chứa các chi tiết đề mục cho trang chủ: editorials...............................61
6.4.1.3Bảng danh mục các thể loại sách: categories................................................61

6.4.1.4Bảng danh mục chi tiết nội dung các tựa sách: items....................................61
6.4.1.5Bảng danh mục chứa thông tin thành viên: members....................................62
6.4.1.6Bảng chứa đơn đặt hàng: orders....................................................................62
6.4.1.7Bảng chứa chi tiết đơn hàng: orderDetails....................................................62
6.4.1.8Bảng chứa thông tin đánh giá sách của khách hàng: rating...........................62
6.4.1.9Bảng chứa các thể loại credit card.................................................................63
6.4.1.10Bảng chứa các thông tin về giỏ hàng: shoppingCart...................................63
6.4.2Mô hình quan hệ của hệ thống.............................................................................63
6.5MÔ HÌNH HOẠT ĐỘNG CỦA WEBSITE...............................................................64
CHƯƠNG 7 THỰC HIỆN BÀI TOÁN...........................................................................65
7.1CÁC TRANG DÀNH CHO KHÁCH HÀNG.............................................................65
7.1.1Trang chủ..............................................................................................................65
7.1.2Trang đăng nhập...................................................................................................66
7.1.3Trang đăng ký thành viên.....................................................................................67
7.1.4Trang xem chi tiết sách.........................................................................................68
7.1.5Trang giỏ hàng......................................................................................................69
7.1.6Trang thanh toán...................................................................................................70
BÙI THÁI THÀNH LONG HVCNBCVT
3
ĐỒ ÁN TỐT NGHIỆP MỤC LỤC
7.1.7Trang tạo hóa đơn.................................................................................................71
7.2CÁC TRANG DÀNH CHO NHÀ QUẢN TRỊ...........................................................72
7.2.1Trang quản trị sách...............................................................................................72
7.2.2Trang quản trị đơn hàng.......................................................................................73
7.2.3Trang quản trị thành viên......................................................................................74
ĐÁNH GIÁ......................................................................................................................75
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN........................................................................77
TÀI LIỆU THAM KHẢO................................................................................................78
BÙI THÁI THÀNH LONG HVCNBCVT
4

ĐỒ ÁN TỐT NGHIỆP DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
A
API Application Program Interface
C
CGI Common Gateway Interface
CSDL Cơ Sở Dữ Liệu
D
DHTML Dynamic Hypertext Markup Language
E
EJB Enterprise Java Bean
H
HTTP Hypertext Transfer Protocol
HTML Hypertext Markup Language
I
IDE Integrated Drive Electronics
J
JAF JavaBeans Activation Framework
JDBC Java Database Connectivity
J2EE Java 2 Enterprise Edition
JNDI Java Naming and Directory Interface
JSP Java Server Pages
JTA Java Transaction API
M
MOM Message Oriented Middleware
ĐỒ ÁN TỐT NGHIỆP DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
R
RMI Remote Method Invocation
S
SQL Structured Query Language

X
XML Extensible Markup Language
ĐỒ ÁN TỐT NGHIỆP DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
DANH MỤC HÌNH VẼ
Hình 1.1 Mô hình khách chủ............................................................................................13
Hình 1.2 Mô hình đa tầng Multi-tier................................................................................15
Hình 1.3 J2EE và các trình chứa......................................................................................16
Hình 1.4 Mô hình Enterprise Java Bean (EJB).................................................................19
Hình 2.1 Khởi tạo môi trường J2EE.................................................................................29
Hình 2.2 Giao tiếp giữa trình khách và đối tượng EJB....................................................33
Hình 2.3 Chu trình hoạt đông của Stateless Bean............................................................34
Hình 2.4 Sơ đồ trạng thái của Stateless Bean...................................................................34
Hình 2.5 Sơ đồ trình tự của Stateless Bean......................................................................35
Hình 2.6 Chu trình hoạt động của Stateful Bean..............................................................41
Hình 2.7 Sơ đồ trạng thái của Stateful Bean....................................................................42
Hình 2.8 Sơ đồ trình tự của Stateful Bean........................................................................43
Hình 6.1 Mô hình Use Case tổng quát của hệ thống........................................................53
Hình 6.2 Phân rã Use Case Tim kiem...............................................................................54
Hình 6.3 Phân rã Use Case Quan tri sách.........................................................................54
Hình 6.4 Phân rã Use Case Quan tri don hang................................................................55
Hình 6.5 Phân rã Use Case Quan tri thanh vien...............................................................55
Hình 6.6 Biều đồ trình tự cho Use Case Dang nhap.........................................................56
Hình 6.7 Biểu đồ trình tự cho Use Case Dat hang............................................................56
Hình 6.8 Biểu đồ trình tự cho Use Case Tim kiếm..........................................................57
Hình 6.9 Biểu đồ trình tự cho Use Case Danh gia sach...................................................57
Hinh 6.10 Biểu đồ trình tự cho Use Case Them sach moi................................................58
Hình 6.11 Biểu đồ trình tự cho Use Case Xem don hang.................................................58
Hình 6.12 Biểu đồ trình tự cho Use Case Xoa don hang..................................................59
ĐỒ ÁN TỐT NGHIỆP DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Hình 6.13 Biểu đồ trình tự cho Use Case Xem thanh vien...............................................59

Hình 6.14 Biểu đồ trình tự cho Use Case Xoa thanh vien................................................60
Hình 6.15 Biểu đồ lớp - đối tượng chi tiết.......................................................................60
Hình 6.16 Bảng chúa các đề mục cho trang chủ..............................................................61
Hình 6.17 Bảng chúa các chi tiết đề mục cho trang chủ..................................................61
Hình 6.18 Bảng danh mục các thể loại sách.....................................................................61
Hình 6.19 Bảng danh mục chi tiết nội dung các tựa sách.................................................61
Hình 6.20 Bảng danh mục chứa thông tin thành viên......................................................62
Hình 6.21 Bảng chứa đơn đặt hàng..................................................................................62
Hình 6.22 Bảng chứa chi tiết đơn hàng............................................................................62
Hình 6.23 Bảng chứa thông tin đánh giá của khách hàng................................................63
Hình 6.24 Bảng chứa các thể loại credit card...................................................................63
Hình 6.25 Bảng chứa các thông tin về giỏ hàng...............................................................63
Hình 6.26 Mô hình quan hệ của hệ thống.........................................................................63
Hình 6.27 Mô hình hoạt động của Web site.....................................................................64
Hình 7.1 Trang chủ...........................................................................................................65
Hình 7.2 Trang đăng nhập................................................................................................66
Hình 7.3 Trang đăng ký thành viên..................................................................................67
Hình 7.4 Trang xem chi tiết sách......................................................................................68
Hình 7.5 Trang giỏ hàng...................................................................................................69
Hình 7.6 Trang thanh toán................................................................................................70
Hình 7.7 Trang tạo hóa đơn..............................................................................................71
Hình 7.8 Trang quản trị sách............................................................................................72
Hình 7.9 Trang quản trị đơn hàng....................................................................................73
Hình 7.10 Trang quản trị thành viên.................................................................................74
ĐỒ ÁN TỐT NGHIỆP DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
ĐỒ ÁN TỐT NGHIỆP MỞ ĐẦU
MỞ ĐẦU
Sự phát triển như vũ bão của hệ thống mạng nhất là mạng Internet đã khiến cho
máy tính trở nên gần gũi và phục vụ đắc lực cho con người hơn. Tuy nhiên bên cạnh đó,
một thách thức đặt ra cho các nhà phát triển ứng dụng là lập trình mạng ngày càng trở

nên phức tạp. Mô hình lập trình đơn lẻ truyền thống đã được thay đổi rất nhiều. Chương
trình ứng dụng đòi hỏi sự tương tác từ nhiều phía người dùng, chia sẻ tài nguyên, kết nối
từ xa, liên kết giao tác, phân tán dữ liệu…Với những yêu cầu trên mô hình khách/chủ đã
ra đời. Mô hình khách chủ đã tỏ ra rất hiệu quả trong thời gian dài. Tuy nhiên cả máy
khách và máy chủ đều bị quá tải bởi độ phức tạp và yêu cầu của người dùng.
Tất cả các yêu cầu trên đã làm phát sinh mô hình phát triển ứng dụng đa tầng
(multi – tier). Các ứng dụng xử lý không còn được cài đặt trên máy khách mà được cài
đặt trên một máy chủ. Mục tiêu là làm cho máy khách trở nên gọn nhẹ, dễ cấu hình, dễ
thay đổi phía máy chủ, nếu chúng ta cần thay đổi mã nguồn của ứng dụng, chúng ta chỉ
cần thay đổi trên máy chủ, tất cả các trình khách khi kết nối vào máy chủ chạy ứng dụng
sẽ luôn được phục vụ với phiên bản chương trình mới nhất.
Web là một ví dụ điển hình nhất của mô hình ứng dụng đa tầng. Trình chủ Web
nằm trên một máy chủ , trình khách chỉ cần dùng trình duyệt (web browser) kết nối vào
máy chủ và có thể truy cập được mọi thông tin cũng như dịch vụ. Trình chủ sử dụng
Java Servlet, trang JSP hay các ứng dụng CGI (Common Gateway Interface) để kết nối
với cơ sở dữ liệu, đối tượng phân tán RMI (Remote Method Invocation-nằm trên một
máy chủ khác) xử lý tính toán và trả về kết quả cho trình khách thông qua các trang Web
tĩnh. Mô hình đa tầng đã phân rã chức năng một cách cụ thể, cho phép ứng dụng chạy
trên nhiều máy chủ khác nhau. Dễ dàng cho người phát triển, nhà cung cấp cũng như
người sử dụng trên mạng diện rộng nhất là mạng Internet. Đó là lý do tại sao các nhà
phát triển đều mong muốn hướng đến việc thiết kế ứng dụng Web.
Trong ứng dụng đa tầng, giao tiếp người dùng được đặt trên máy cục bộ, trong
khi đó logic của ứng dụng được chạy trong tầng giữa trên một server. Tầng cuối cùng
vẫn đóng vai trò lưu trữ dữ liệu. Khi logic của một ứng dụng cần cập nhật, thay đổi làm
cho phần mềm của tầng giữa trên server, rất đơn giản cho việc quản lý cập nhật. EJB
chứa những logic nghiệp vụ của ứng dụng, nên có thể nói EJB chính là phần lõi của hầu
hết các ứng dụng phân tán cho enterprise.
ĐỒ ÁN TỐT NGHIỆP MỞ ĐẦU
Kiến trúc Enterprise Java Bean mà Sun đưa ra từ phiên bản Java 1.2 là mô hình
lập trình đối tượng rất hiệu quả cho các ứng dụng mạng Java.

Được sự cho phép của cô Phan Thị Hà, thông qua đồ án tốt nghiệp :
Nghiên cứu công nghệ J2EE
Khảo sát Session Bean và thiết kế mô hình Web
em xin được nêu lên một số khái niệm cũng như kỹ thuật lập trình mới về kiến trúc phân
tầng đang được đưa vào sử dụng rất rộng rãi trong nền công nghiệp phần mềm hiện nay.
Các vấn đề chính mà đồ án tốt nghiệp này đề cập đến là :
- Mô hình khách/chủ và mô hình đa tầng trong Enterprise Java Bean.
- Tìm hiểu mô hình hoạt động của Bean bên trong trình chứa (container).
- Xây dựng và triệu gọi thành phần Bean mà cụ thể là Session Bean.
- Sử dụng trình đóng gói deploytool.
- Xây dựng mô hình web ứng dụng công nghệ EJB
Nội dung của đồ án được xây dựng thành 2 phần:
Phần 1: Khảo sát công nghệ
Chương 1 Mô hình lập trình đa tầng với J2EE
Chương 2 Triển khai đối tượng Bean EJB
Chương 3 Tổng kết
Phần 2: Xây dựng hệ thống bán sách trực tuyến ứng dụng công nghệ EJB
Chương 4 Đặt vấn đề
Chương 5 Đặc tả yêu cầu hệ thống
Chương 6 Phân tích và thiết kế hệ thống
Chương 7 Thực hiện bài toán
Cuối cùng là đánh giá, kết luận những kết quả đạt được, những hạn chế và đề xuất
các định hướng tiếp theo cho đồ án.
ĐỒ ÁN TỐT NGHIỆP MỞ ĐẦU
Tuy đã cố gắng rất nhiều, nhưng sự hiểu biết của em còn hạn chế nên không thể
tránh khỏi những sai xót, em rất mong nhận được sự góp ý, chỉ bảo của quý thầy cô và
các bạn.
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 1: MÔ HÌNH LẬP TRÌNH ĐA TẦNG VỚI J2EE
PHẦN I KHẢO SÁT CÔNG NGHỆ
CHƯƠNG 1 MÔ HÌNH LẬP TRÌNH ĐA TẦNG VỚI J2EE

1.1 MÔ HÌNH KHÁCH CHỦ
Sự phát triển của hệ thống mạng nhất là mạng Internet, đã làm vấn đề lập trình
mạng ngày càng trở nên phức tạp. Mô hình lập trình đơn lẻ đã được cải thiện rất nhiều,
ngày nay chúng ta không đơn thuần ngồi viết những ứng dụng chạy trên một máy duy
nhất. Chương trình ứng dụng đòi hỏi sự tương tác từ phía người dùng, chia xẻ tài
nguyên, triệu gọi từ xa, liên kết giao tác, phân tán dữ liệu. Với những yêu cầu trên, mô
hình khách/chủ (hình 1.1)đã ra đời và tồn tại cho đến ngày nay.
Hình 1.1 Mô hình khách chủ
Theo mô hình khách/chủ, tất cả các xử lý phức tạp đều được chuyển giao cho
máy chủ xử lý, máy khách chỉ đóng vai trò gửi yêu cầu và thể hiện dữ liệu. Mô hình
khách/chủ tỏ ra rất có hiệu quả, tuy nhiên cả máy khách và máy chủ ngày càng trở nên
quá tải bởi độ phức tạp và yêu cầu của người dùng. Các trình ứng dụng của máy khách
trở nên cồng kềnh với vô số trình điều khiển phải cài đặt để kết nối với cơ sở dữ liệu của
máy chủ (như ODBC, Oracle Client Driver, MS SQL Driver, MS Access Driver…). Hơn
nữa bất kỳ dịch vụ nào của trình chủ đều yêu cầu trình khách phải cài đặt một đơn thể
kết nối tương ứng. Do đó mô hình khách/chủ gồm hai tầng dường như không đáp ứng
được những yêu cầu hiện nay.
Máy khách (Client)
Trình ứng
dụng
Máy chủ (Server)
Gửi yêu cầu
Đáp ứng yêu cầu
Cơ sở dữ liệu
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 1: MÔ HÌNH LẬP TRÌNH ĐA TẦNG VỚI J2EE
1.2 MÔ HÌNH ĐA TẦNG
Giả sử chúng ta quản lý và phân phối ứng dụng trên 100 máy tính nằm ở nhiều
nơi khác nhau. chúng ta cài đặt trình điều khiển kết nối cơ sở dữ liệu SQL Server lên
từng máy. Sau một thời gian dài sử dụng, ta muốn chuyển hệ cơ sở dữ liệu SQL Server
sang hệ cơ sở dữ liệu Oracle, thì ta phải yêu cầu 100 máy khách cập nhật lại trình điều

khiển truy xuất cơ sở dữ liệu Oracle thay cho SQL Server, đó là chưa kể đến cấu hình và
kết nối với từng hệ cơ sở dữ liệu là vấn đề không phải đơn giản đối với người dùng.
Hoặc khi chúng ta muốn thay đổi mã nguồn của ứng dụng khách, chúng ta phải gửi bản
cập nhật hàng chục Mb đến 100 máy khách yêu cầu cập nhật lại chương trình. Tất cả
những yêu cầu trên đã làm phát sinh mô hình phát triển ứng dụng đa tầng (multi-tier).
Các ứng dụng xử lý không còn được cài đặt trên máy khách mà được cài đặt trên một
máy chủ. Mục tiêu là làm cho máy khách trở nên gọn nhẹ, dễ cấu hình, dễ thay đổi phía
máy chủ, nếu chúng ta cần thay đổi mã nguồn của ứng dụng, chúng ta chỉ cần thay đổi
trên máy chủ, tất cả các trình khách khi kết nối vào máy chủ chạy ứng dụng sẽ luôn
được phục vụ với phiên bản chương trình mới nhất.
Web là một ví dụ điển hình nhất của mô hình ứng dụng đa tầng. Trình chủ Web
nằm trên một máy chủ , trình khách chỉ cần dùng trình duyệt (web browser) kết nối vào
máy chủ và có thể truy cập được mọi thông tin cũng như dịch vụ. Trình chủ sử dụng
Java Servlet, trang JSP hay các ứng dụng CGI (Common Gateway Interface) để kết nối
với cơ sở dữ liệu, đối tượng phân tán RMI (Remote Method Invocation-nằm trên một
máy chủ khác) xử lý tính toán và trả về kết quả cho trình khách thông qua các trang Web
tĩnh. Mô hình đa tầng đã phân rã chức năng một cách cụ thể, cho phép ứng dụng chạy
trên nhiều máy chủ khác nhau. Dễ dàng cho người phát triển, nhà cung cấp cũng như
người sử dụng trên mạng diện rộng nhất là mạng Internet. Đó là lý do tại sao các nhà
phát triển đều mong muốn hướng đến việc thiết kế ứng dụng Web.
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 1: MÔ HÌNH LẬP TRÌNH ĐA TẦNG VỚI J2EE
Hình 1.2 Mô hình đa tầng Multi-tier
Mô hình ứng dụng đa tầng này dựa trên nền tảng J2EE. Một ứng dụng J2EE có
thể bao gồm 3 hoặc 4 tầng nhưng những ứng dụng J2EE thường được xem là 3 tầng vì
nó được phân tán trên 3 vị trí : Máy khách (Client Machine), máy chủ J2EE (J2EE
Server Machine), và máy chủ cơ sở dữ liệu (Database Server Machine)
J2EE Server
Trình chủ Web
(Web Server)
Dịch vụ Web

Servlet,JSP,
CGI, ASP…
Object
Object
Trình chứa
(container)
JNDI, JDBC, JTS, JMS…
JNDI, JDBC, JTS, JMS…
Môi trường EJB
Mạng
Máy khách (Client)
Trình ứng
dụng
Database Server
Cơ sở dữ liệu
Mạng
Mạng
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 1: MÔ HÌNH LẬP TRÌNH ĐA TẦNG VỚI J2EE
1.3 J2EE VÀ EJB
1.3.1 J2EE
1.3.1.1 Khái niệm J2EE
Là một trong 3 platform của Java .J2ME ,J2SE.J2EE. Nó đặt các Enterprise API
của Java lại với nhau và gói chúng lại thành một platform phát triển hoàn chỉnh cho việc
triển khai các lớp enterprise trong Java phía máy chủ. Nhiệm vụ của J2EE là cung cấp
một platform độc lập, linh động, đa người dùng, bảo mật.cho việc triển khai phía máy
chủ trong ngôn ngữ lập trình Java. J2EE là một đặc tả , không phải là một sản phẩm .Nó
chỉ ra các quy tắc ràng buộc mọi người phải nhất trí khi viết phần mềm enterprise.
1.3.1.2 Kiến trúc trình chứa J2EE
Hình 1.3 J2EE và các trình chứa
Trình chứa là nơi cung cấp môi trường hoạt động và là nơi giao tiếp giữa các thành

phần. Trước khi một thành phần Web, Enterprise Bean hay thành phần ứng dụng khách
có thể được thực thi nó phải được tập hợp lại trong một Module và được triển khai đến
trình chứa của nó. Tiến trình tập hợp bao gồm các thiết lập đặc tính của trình chứa cho
mỗi thành phần trong ứng dụng J2EE và cho chính ứng dụng J2EE. Những tùy biến thiết
lập trình chứa hổ trợ cơ bản được cung cấp bởi Server J2EE, bao gồm những dịch vụ
như : bảo mật, quản lý giao tác, tra cứu thao tác định danh và thư mục Java (Java
Naming and Directory Interface), và khả năng kết nối từ xa. Quá trình triển khai và cài
đặt những thành phần ứng dụng J2EE trong trình chứa J2EE được mô tả trong hình trên
(hình 1.3). Trong đó :
- J2EE Server : là phần chạy thực của một sản phẩm J2EE. Server J2EE
cung cấp trình chứa EJB và Web.
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 1: MÔ HÌNH LẬP TRÌNH ĐA TẦNG VỚI J2EE
- Trình chứa EJB : quản lý việc thực thi của Enterprise Bean cho những
ứng dụng J2EE. Enterprise Bean và trình chứa của nó chạy trên Server
J2EE.
- Trình chứa Web : Quản lý việc thực thi và những thành phần Servlet cho
những ứng dụng J2EE. Những thành phần Web và các ứng dụng của nó
chạy trên Server J2EE.
- Trình chứa ứng dụng J2EE : quản lý việc thực thi những thành phần
ứng dụng của Client. Những ứng dụng Client và trình chứa của nó chạy trên
máy Client.
- Trình chứa Applet : quản lý việc thực thi của các Applet. Bao gồm một
trình duyệt Web và Java Plug-in chạy trên cùng máy Client.
1.3.1.3 Các API của J2EE
Sau đây là một số các API thông dụng của J2EE:
• Kỹ thuật Enterprise Java Bean: Một thành phần Enterprise Java Bean hay
Enterprise Bean, là thân mã lệnh có các field và các phương thức để thực thi
các Module của các logic nghiệp vụ. Chúng ta có thể nghĩ Enterprise Bean
như một khối xây dựng mà có thể sử dụng riêng lẻ hoặc với các Enterprise
Bean khác để thực thi logic nghiệp vụ trên server J2EE. Có hai loại EJB chính

đó là : Bean thao tác và Bean thực thể. Ngoài ra còn có Message-Driven Bean
là một điểm mới trong chuẩn EJB 2.0.
• Kỹ thuật Java Servlet: tương tác với Web client thông qua cơ chế request-
response. Cơ chế này hoạt động dựa trên giao thức HTTP
• Kỹ thuật Java Server Page: dùng để xây dựng các ứng dụng có chứa nội
dung Web động như HTML, DHTML, XML.
• Java Message Service: là một chuẩn message cho phép các thành phần ứng
dụng J2EE tạo, gởi, nhận và đọc các message. Nó là một API để giao tiếp với
Message Oriented Middleware (MOM) cho phép truyền nhận message theo cơ
chế point-to-point và publish/subcriber.
• Java Transaction API (JTA): là một tập API cho phép quản lý các giao tác.
Ứng dụng có thể sử dụng JTA để Start, Commit hoặc hủy bỏ giao tác.
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 1: MÔ HÌNH LẬP TRÌNH ĐA TẦNG VỚI J2EE
• Java Mail API: các ứng dụng J2EE sử dụng Java Mail API để gởi email
thông báo. Java Mail API có 2 phần : một giao tiếp mức ứng dụng được sử
dụng bởi các thành phần ứng dụng để gởi thư, và một giao tiếp trình cung cấp
dịch vụ. Nền J2EE bao gồm Java mail với một trình cung cấp dịch vụ cho
phép các thành phần ứng dụng gởi thư Internet.
• JavaBeans Activation Framework (JAF): tập các API được sử dụng bởi
các package khác như Java mail…, chúng ta có thể dùng JAF để xác định kiểu
dữ liệu, đóng gói truy cập đến dữ liệu, mở rộng những tác vụ dựa trên những
dữ liệu đó và khỏi tạo một Bean tương ứng để thực hiện các tác vụ đó.
• Java Database Connectivity (JDBC) API: JDBC cho phép ta gọi các câu
lệnh SQL từ các phương thức của ngôn ngữ lập trình java. Chúng ta cũng có
thể sử dụng JDBC API từ một Servlet hay một trang JSP để truy xuất CSDL
một cách trực tiếp mà không cần thông qua enterprise bean. JDBC API có 2
phần : một giao tiếp mức ứng dụng được sử dụng bởi các thành phần ứng
dụng để truy xuất một CSDL, và một giao tiếp trình cung cấp dịch vụ để đính
kèm một trình điều khiển JDBC cho nền J2EE.
• Java Naming and Directory Interface (JNDI): một interface duy nhất dùng

để truy cập những kiểu dịch vụ khác nhau về định danh và thư mục
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 1: MÔ HÌNH LẬP TRÌNH ĐA TẦNG VỚI J2EE
1.3.2 EJB
1.3.2.1 Khái niệm
Đó là một thành phần phần mềm server-side được triển khai trong môi trường đa
phân tán.
1.3.2.2 Mô hình EJB
Hình 1.4 Mô hình Enterprise Java Bean (EJB)
Hình 1.4 mô tả mô hình Enterprise Java Bean trong đó:
• EJB Server: cung cấp dịch vụ hệ thống và quản lý những trình chứa mà
Bean chạy. Nó phải làm tồn tại một khả năng truy xuất dịch vụ định danh
JNDI và dịch vụ giao tác. Borland Enterprise Server AppServer Edition 6.0 là
một ví dụ về Server EJB.
• Trình chứa EJB: một trình chứa là một hệ thống chạy thực cho một hoặc
nhiều Enterprise Bean. Nó cung cấp sự truyền thông giữa Bean và EJB server.
Nó cung cấp giao tác, bảo mật và quản lý sự phân phối mạng. Một trình chứa
thì gồm có mã và một công cụ sinh mã cho Enterprise Bean. Thông thường,
trình chứa cũng cung cấp những công cụ để triển khai Enterprise Bean, có
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 1: MÔ HÌNH LẬP TRÌNH ĐA TẦNG VỚI J2EE
nghĩa là trình chứa có thể giám sát và quản lý ứng dụng. Server EJB và trình
chứa EJB kết hợp với nhau cung cấp môi trường cho Bean chạy. Trình chứa
cung cấp sự quản lý các dịch vụ đến một hoặc nhiều Bean. Server cung cấp
những dịch vụ cho Bean, nhưng trình chứa có sự tương tác giữa Bean đến các
dịch vụ này.
Mỗi EJB bắt buộc phải có các interface và các class sau:
• Remote interface: remote interface kế thừa javax.ejb.EJBObject. Remote
interface chứa các phương thức nghiệp vụ được gọi từ Client. Nó đóng vai trò
như một proxy của EJB.
• Home interface: home interface kế thừa javax.ejb.EJBHome. Nó đóng vai
trò như một mô hình để khởi tạo EJB.

• Bean class: chứa phần cài đặt của các phương thức khai báo trong remote
interface. Bean class kế thừa javax.ejb.SessionBean hoặc javax.ejb.EntityBean
hoặc javax.ejb.MessageDrivenBean.
1.3.2.3 Vì sao dùng EJB
Mô hình Client đã tồn tại rất lâu và rất phổ biến. ứng dụng Client được cài trên máy
cục bộ và truy xuất dữ liệu ở một kho dữ liệu như là hệ thống quản lý cơ sở dữ liệu quan
hệ. Mô hình này làm việc tốt cho những mô hình chỉ có vài người dùng. Khi có nhiều
người dùng hơn cần truy xuất dữ liệu, những ứng dụng này sẽ không đáp ứng được yêu
cầu đó. Bởi vì Client chứa các logic, nó phải được cài đặt trên mỗi máy. Làm cho việc
quản lý trở nên rất khó khăn. Dần dần lợi ích của việc chia các ứng dụng thành nhiều
hơn hai tầng của mô hình Client/Server càng trở nên rõ ràng.
Trong ứng dụng đa tầng, giao tiếp người dùng được đặt trên máy cục bộ, trong khi
đó logic của ứng dụng được chạy trong tầng giữa trên một server. Tầng cuối cùng vẫn
đóng vai trò lưu trữ dữ liệu. Khi logic của một ứng dụng cần cập nhật, thay đổi làm cho
phần mềm của tầng giữa trên server, rất đơn giản cho việc quản lý cập nhật. EJB chứa
những logic nghiệp vụ của ứng dụng, nên có thể nói EJB chính là phần lõi của hầu hết
các ứng dụng phân tán cho enterprise. EJB có những đặc điểm sau:
• Chứa nghiệp vụ để thao tác với dữ liệu.
• Được tạo ra và được quản lý bởi một trình chứa.
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 1: MÔ HÌNH LẬP TRÌNH ĐA TẦNG VỚI J2EE
• Xử lý các truy cập của Client.
• Chứa thuộc tính của giao tác và bảo mật riêng biệt với các Bean.
• Cung cấp dịch vụ quản lý giao tác, quản lý trạng thái, quay vòng tài
nguyên và bảo mật.
1.3.2.4 Các loại EJB
Có 2 loại chính đó là Session Bean (Bean thao tác) và Entity Bean (Bean thực thể).
Ngoài ra còn có Message – driven bean.
1. Session bean: Nếu đối tượng Bean chỉ thực hiện các hành vi xử lý, tính toán đơn
thuần thì chúng được phân lọai thành Bean thao tác (Session Bean). Bean thao tác
chỉ có nhiệm vụ phục vụ trình khách, nơi triệu gọi đối tượng. Trong một phiên

kết nối, những thao tác nhất thời không đòi hỏi việc thể hiện dữ liệu thường bao
gồm : tính toán, phân tích, thống kê… Bean thao tác được chia làm hai lọai đó là :
Bean thao tác phi trạng thái (Stateless Bean) và Bean thao tác lưu vết trạng thái
(Stateful Bean)
• Stateless bean: là các thành phần bean không lưu lại trạng thái của giao
dịch trước đó để sử dụng cho lần giao dịch sau. Bean thao tác phi trạng
thái là đối tượng Bean đơn giản, dễ dùng, dễ thiết kế và quản lý nhất trong
tất cả các đối tượng EJB.
• Stateful bean: Bean thao tác lưu vết trạng thái là các thành phần Bean cần
lưu lại vị trí của giao dịch trước đó để sử dụng cho các lần giao dịch sau.
Các Bean này thường phục vụ cho các thao tác đòi hỏi phải qua nhiều
bước triệu gọi trước khi trả về kết quả cuối cùng
2. Entity bean: Đối tượng thường mô tả một thực thể nào đó trong cuộc sống thực.
Bean thực thể cung cấp một đối tượng xem xét dữ liệu trong cơ sở dữ liệu. Thông
thường Bean đại diện cho một hàng trong tập hợp các bản của cơ sở dữ liệu quan
hệ. Một Bean thực thể thường phục vụ nhiều hơn một Client. Không giống như
Bean thao tác, Bean thực thể thì sống lâu hơn. Chúng duy trì một trạng thái tồn tại
miễn là dữ liệu còn trong cơ sở dữ liệu, hay nói đúng hơn miễn là còn Client
riêng biệt cần đến nó. Việc quản lý dữ liệu của Bean thực thể được chia ra làm
hai lọai:
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 1: MÔ HÌNH LẬP TRÌNH ĐA TẦNG VỚI J2EE
• Bean thực thể quản lý (Bean - Managed): là các thành phần Bean có khả
năng thực thi các câu truy vấn cơ sở dữ liệu ( do lập trình viên xây dựng )
để lấy về dữ liệu mà nó thể hiện. Ví dụ trong phương thức khởi dựng Bean
thực thể có thể dùng các câu lệnh SQL như SELECT, INSERT (thông qua
JDBC) để tự tìm hoặc thêm mới dữ liệu mà nó thể hiện vào các bản trong
cơ sở dữ liệu.
• Bean thực thể quản lý bởi trình chứa (Container Managed): thành phần
Bean có thể không cần phải sử dụng lệnh SQL để tự tìm kiếm hay tạo mới
dữ liệu mà nó thể hiện. Thay vào đó đối tượng Bean sẽ tự khai báo trong

trường (fields) hay cột (column) dữ liệu tương ứng với các bản (table)
trong hệ quản trị cơ sở dữ liệu. Trình chứa sẽ tự động thực hiện công việc
truy vấn dữ liệu giúp thành phần Bean. Đối tượng Bean thể hiện dữ liệu
theo kiểu này được gọi là Bean thực thể được quản lý bởi trình chứa.
3. Message – Driven Bean: là một chuẩn mới trong EJB 2.0 (EJB 1.1 chỉ định
nghĩa 2 lọai đó là Session Bean và Entity Bean). Mục đích của Message-Driven
Bean là phục vụ cho nhu cầu về các dịch vụ không đồng bộ của các thành phần.
Bởi vì Session Bean và Entity Bean chỉ phục vụ cho các dịch vụ đồng bộ.
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 2: TRIỂN KHAI ĐỐI TƯỢNG BEAN EJB
CHƯƠNG 2 TRIỂN KHAI ĐỐI TƯỢNG BEAN EJB
2.1 THIẾT KẾ THÀNH PHẦN EJB
Chúng ta bắt đầu bằng việc thiết kế thành phần EJB đơn giản nhất. Thành phần
Bean phi trạng thái (stateless Bean) mang tên HelloWorld. Bean Hello thực hiện chức
năng xuất ra một chuổi “Hello World”. Đối tượng Bean Hello thuộc loại Bean thao tác,
bản thân Bean không thể hiện dữ liệu, nó chỉ cung cấp phương thức hello() để xuất ra
chuổi “Hello World”. Tất cả các Bean thao tác đều yêu cầu chúng ta cài đặt giao tiếp
javax.ejb.SessionBean.
2.1.1 Phát triển Remote Interface
Remote interface là lớp giao tiếp để client giao tiếp với Bean và các phương thức
được xây dựng bên trong Bean thông qua trình chứa. Sau đây là đặc tả của lớp giao tiếp
Hello :
package helloworld;
public interface Hello extends javax.ejb.EJBObject
{
public String hello() throws java.rmi.RemoteException;
}
Theo đặc tả và qui định của kiến trúc Enterprise Java Bean lớp giao tiếp trung gian mà
trình chứa sử dụng triệu gọi phương thức của thành phần Bean phải kế thừa từ lớp
javax.ejb.EJBObject.
2.1.2 Phát triển Home Interface

Tuy nhiên, chúng ta vẫn chưa thể triệu gọi được đối tượng Bean trong trình chứa.
Muốn tham chiếu được thành phần Bean từ máy khách, EJB đòi hỏi chúng ta phải tạo
lớp “mồi”. Lớp này được gọi là lớp chủ (Home). Từ trình khách, chúng ta gọi lớp chủ để
tạo ra và lấy về tham chiếu của giao tiếp Hello. Chúng ta không cần cài đặt lớp chủ ,
chúng ta chỉ cần đặc tả lớp chủ home là một giao tiếp interface kế thừa lớp
javax.ejb.EJBHome. Trong lớp chủ này chúng ta khai báo duy nhất phương thức create()
có kiểu trả về là lớp giao tiếp Hello như sau:
package helloworld;
import java.rmi.RemoteException;
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 2: TRIỂN KHAI ĐỐI TƯỢNG BEAN EJB
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface HelloHome extends EJBHome
{
Hello create() throws RemoteException, CreateException;
}
2.1.3 Phát triển lớp thực thi Bean (Bean Implement Class)
Thành phần Bean Hello đặc tả phương thức hello() và kế thừa lớp
javax.ejb.SessionBean. Nó có mã nguồn được cài đặt như sau :
package helloworld;
import javax.ejb.SessionContext;
public class HelloBean implements javax.ejb.SessionBean
{
// Đặc tả phương thức hello()
public String hello()
{
System.out.println("hello()");
return "Hello, World!";
}
public void ejbCreate()

{
System.out.println("ejbCreate()");
}
public void ejbRemove()
{
System.out.println("ejbRemove()");
}
public void ejbActivate()
{
System.out.println("ejbActivate()");
}
public void ejbPassivate()
ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 2: TRIỂN KHAI ĐỐI TƯỢNG BEAN EJB
{
System.out.println("ejbPassivate()");
}
public void setSessionContext(SessionContext ctx)
{
System.out.println("setSessionContext()");
}
}
Như chúng ta thấy, đối tượng HelloBean của ta cung cấp phương thức hello() để
xuất ra chuổi “Hello, World !”. Đây chính là phương thức thể hiện rõ mục đích phục vụ
của thành phần Bean. Chúng còn được gọi là các phương thức thể hiện logic nghiệp vụ
(business logic) mà Bean cần thực hiện.
2.1.4 Phát triển lớp Client triệu gọi Bean
Chúng ta sẽ xây dựng lớp HelloClient để triệu gọi đối tượng HelloBean mà ta đã
xây dựng ở trên. Đặc tả cho lớp HelloClient như sau :
package helloworld;
import javax.naming.Context;

import javax.naming.InitialContext;
import java.util.Properties;
public class HelloClient {
public static void main(String[] args) throws Exception {
Properties props = System.getProperties();
Context ctx = new InitialContext(props);
Object obj = ctx.lookup("HelloBean");
HelloHome home = (HelloHome)
javax.rmi.PortableRemoteObject.narrow(obj,
HelloHome.class);
// Tạo đối tượng hello thuộc Remote Interface
// từ đối tượng Home Interface
Hello hello = home.create();
// Xuất ra chuỗi “Hello, World !”
System.out.println(hello.hello());

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×