Tải bản đầy đủ (.pdf) (97 trang)

Phát triển ứng dụng phần mềm trên máy chủ dựa trên công nghệ Java

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 (34.28 MB, 97 trang )

ĐẠI HỌC QUÓC GIA HÀ NỘI
KHOA CÔNG NGHỆ
Phạm Thị Huyền T ra n g
P H Á T T R IẺ N Ứ N G D Ụ N G P H Ầ N M È M T R Ê N M Á Y C H Ủ
DỤ A T R Ê N C Ô N G N G H Ệ J A V A
Chuyên ngành : CÔNG NG HỆ THÔNG T IN
M ã số : 1.01.10
LUẬN VĂN T H Ạ C sĩ
NGƯỜI HƯỚNG DẢN KHOA HỌC:
PGS. TS. ĐOÀN VẢN BAN
h'Mii rì ;V.MT^ÓNGY,
Hà Nội - Năm 2003
MỤC LỤC
■ ■
Chương 1: Tổng Quan 6
1.1 Các thách thức đối với việc phát triển ứng dụng mức xí nghiệp

6
1.1.1 Phát triền ứng dụng năng suất cao 6
1.1.2 Khả năng tích hợp với các hệ thống đã có 7
1.1.3 Đáp ứne yêu cầu của ứng dụng 8
1.1.4 Đảm bảo bảo mật 8
1.2 J2EE - Nen tảng cho các ứne dụng mức xí nghiệp 9
1.3 Các mỏ hình ứng dụng với J2EE
12
1.3.1 Mô hình ứng dụng đa mức 13
1.3.2 Mô hình ứng dụng Java 14
1.3.3 Mô hình ứng dụng Web 15
1.3.4 Mô hình doanh nghiệp với doanh nghiệp 15
1.3.5 Ưu điểm của mô hình đa m ức 16
Chương 2: Bộ chứa EJB - Enterprise JavaBean 18


2.1 Phần Logic nghiệp vụ - Business Logic 18
2.2 Các yêu cầu đối với đối tượng nghiệp vụ 20
2.2.1 Duy trì trạng thái 20
2.2.2 Hoạt độns trên các dữ liệu chung 21
2.2.3 Tham gia vào các giao dịch 21
2.2.4 Phục vụ một lượng lớn người sử dụng 22
2.2.5 Cung cấp khả năng truy nhập dữ liệu từ xa 22
2.2.6 Kiểm soát truy nhập 22
2.2.7 Khả năng sử dụng lại 22
2.3 Tổng quan về EJB 23
2.3.1 Giao diện tại chỗ 24
2.3.2 Giao diện từ xa 24
2.3.3 Lớp EJB 25
2.4 Session Bean 25
2.4.1 Session Bean Trạng Thái 26
2.4.2 Session Bean Phi Trạng Thái 26
2.4.3 Phát triển các Session Bean 27
2.4.4 Thực hiện gọi các Session Bean 31
2.5 Entity Bean 36
2.5.1 Các khái niệm cơ bản về lưu trừ bền vừng 36
2.5.2 Khái niệm Entity Bean 38
2.5.3 Các file tạo thành Entity Bean 40
2.5.4 Các tính chất của Entity Bean 41
2.5.5 Phát triển và sử dụng Entity Bean 43
2.5.6 Ngừ cảnh của Entity Bean 46
2.5.7 Vòng đời của một Entity Bean 48
Chương 3: Bộ chứa Web: Servlet và JSP 52
- 2 -
3.1 Servlets


.
52
3.1.1 Tong quan ve Servlet 52
3.1.2 Phát triển và sử dụng một Servlet 58
3.2 JSP
.

.

.

.
63
3.2.1 Sự cần thiết phải có JSP 63
3.2.2 Mô hình hoạt động của JSP 64
3.3 So sánh giữa Servlet và JS P 71
3.4 Sử dụng Servlet và JSP trong các ứng dụng 72
3.4.1 Các trường họp sử dụng Servlet 72
3.4.2 Các trường hợp sử dụng JSP 73
Chương 4: ứng dụng công nghệ J2EE trong phát triển các ứng dụng mức xí nghiệp 75
4.1 Kiến trúc của ứng dụng mức xí nghiệp với J2EE 75
4.1.1 Kiến trúc MVC

.




75
4.1.2 Các vấn đề đặt ra đổi với mô hình MVC trong J2EE 78

4.1.3 Khuôn mẫu phát triển của J2EE 79
4.1.4 Khuôn mẫu Session Bao Ngoài
81
4.2 Ví dụ ứng dụng ngân hàng điện tử 85
4.2.1 Mô tả ứng dụng 85
4.2.2 Mô hình hệ thống của ứng dụng 90
CÂC THUÀT NGÜ’ VIÉT TAT

API Application Programming Interface
B2B Business to Business
B2C Business to Consumer
CORBA Common Object Request Broker Architecture
CSDL
Co sà dù lieu
EJB
Enterprise Java Bean
HTML
HyperText Markup Language
HTTP
HyperText Transfer Protocol
J2EE
Java 2 Enterprise Edition
JDBC Java Database Connectivity
JMS
Java Messaging Service
JNDI
Java Naming and Directory Interface
JSP
Java Server Page
JTA

Java Transaction API
OQL
Object Query Language
SQL
Structured Query Language
XML
Extensible Markup Language
MỞ ĐẦU
Sự phát triển của Internet nói riêng và của cône nghệ thông tin nói chune đane
diễn ra rất mạnh mẽ tại Việt nam trong thời gian gần đây cũna như trong tương lai.
Sự phát triển này đòi hỏi các công ty, các tổ chức cần xây dựnR các ứng dụng của
mình trên Internet. Khác với các ứng dụng khác, các ứng dụng trên Internet thườne,
được phát triển trên các máy chủ và người sử dụng chỉ cần một trình duyệt Web là
có thể truy nhập vào được ứng dụng này. Có rất nhiều công nahệ khác nhau giúp
phát triển các ứng dụng trên Internet. Luận văn này xem xét một trong các công
nghệ đang được phát triển rất mạnh mẽ trong thời gian gần đây, đó là công nghệ
J2EE.
Nội dung của luận văn xem xét các công nghệ của J2EE và các kiến trúc ứng
dụng mà dựa vào đó, các tổ chức, công ty có thế phát triển các ứng dụng của mình.
về kết cấu của luận văn, ngoài lời nói đầu, kết luận và tài liệu tham khảo, luận
văn được trình bày trong 4 chương:
• Chương 1: Công nghệ J2EE và các mô hình ứng dụng
Giới thiệu sơ lược về công nghệ J2EE và chỉ ra các công nghệ J2EE giúp giải
quyết các vấn đề đặt ra đối với các ứng dụng mức xí nghiệp như thế nào.
• Chương 2: Bộ chứa EJB: Enterprise Bean
Xem xét các thành phần EJB của kiến trúc J2EE, đề cập đến các loại EJB
khác nhau và chỉ ra cách sử dụng hợp lý các loại thành phần này.
• Chương 3: Bộ chứa Web: Servlet và JSP
Trình bày các thành phần trong bộ chứa Web, đó là JSP và Servlet: đề cập
đến cách thức phát triển các thành phần này, sự khác biệt giữa chúng và làm

thế nào để sử dụng các thành phần này một cách hợp lý.
• Chương 4: ứng dụng công nghệ J2EE trong việc phát triển các ứng dụng
mức xí nghiệp
Xem xét kiến trúc MVC là một kiến trúc thường được sử dụng trong các ứng
dụng sử dụng công nghệ J2EE; Xem xét các khuôn mẫu hỗ trợ việc phát
triển ứng dụng trorm J2EE và việc sử dụng các khuôn mẫu này trong một
ứng dụng mẫu.
Luận văn đã được hoàn thành với sự giúp đỡ tận tình của thầy giáo hướng dẫn
PGS. TS. Đoàn Văn Ban, các thầy cô giáo Khoa công nghệ Trường Đại học quốc
gia Hà nội cùng các bạn đồng nghiệp.
Trong nội đung hạn chế của luận văn chắc chắn luận văn khó tránh khỏi những
thiếu sót nhất định. Em rất mong nhận được sự góp ý của các thầy cô giáo, các nhà
chuyên môn và các đồng nghiệp để tiếp tục hoàn thiện bản luận văn.
Em xin tràn trọng cám ơn.
-6-
C h ư ơ n g 1: T ổ n g Q u a n
1.1 Các thách thức đối với việc phát triển ứng dụng mức xí nghiệp
Công nghệ thông tin ngày nay không chỉ dừng lại ở việc giúp các tổ chức, các
doanh nghiệp hoạt động hiệu quả hơn, mà còn trực tiếp mang lại các lợi thế trong
việc cạnh tranh. Các tổ chức và các doanh nghiệp phải tìm mọi cách đê ứng dụng
các công nghệ mới một cách hiệu quả nhất và nhanh nhất. Chính vì vậy, việc phát
triển ứng dụng mức xí nghiệp phải đáp ứng được các yêu cầu đề cập dưới đây.
1.1.1 P h á t triển ứ n g dụng năng suắt cao
Đẻ giảm bớt thời gian phát triển ứng dụng, việc tăng năng suất phát triển ứng
dụng là một yếu tố không thể thiếu được. Việc cung cấp cho những người phát triên
ứna, dụne các phương tiện chuẩn để sử dụng các dịch vụ cần thiết cho mồi ứng dụng
cùng với các cách thức chuẩn cho việc hỗ trợ các thiết bị khác nhau của người sử
dụng sẽ góp phần tích cực trong việc tăng năng suất phát triển ứng dụng.
Trước đây, việc không có một mô hình phát triển ứng dụng chung đă tạo ra
nhữna; rào cản trong việc trao đổi hiệu quả các yêu cầu của ứng dụng giữa những

người phát triển ứng dụng. Kết quả là kiến trúc của ứng dụng trở nên quá phức tạp.
Hơn thể nữa, các yêu cầu về kỹ năng, trình độ để tích họp các công nghệ truyền
thống với nhau là không rõ ràng. Việc phân chia công việc của những nhóm người
tham gia phát triển ứng dụng khác nhau không được tổ chức một cách khoa học. Ví
dụ với công nghệ CGI việc phát triển đòi hỏi người lập trình vừa phải thực hiện cả
việc tạo nội dung thông tin cũng như hình thức thể hiện thông tin của các trang Web
động.
Một yếu tố khác cũng làm tăng tính phức tạp trong quá trình phát triển ứng dụng
là việc lựa chọn loại thiết bị sẽ được hồ trợ của người sử dụng. Rất nhiều ứng dụng
cung cấp các thône tin động hay tĩnh cho các trình duyệt Web, một số ứng dụng
khác đồng thời hồ trợ nhiều loại thiết bị khác nhau như các máy tính để bàn, điện
thoại di động, Các thiết bị được lựa chọn này có thể được xác định ngay từ ban
đâu, nhưng cũng có thể được xác định sau khi ứng dụng được triển khai. Khi đó, đòi
hỏi ứng dụng phải được sửa đổi để có thể hồ trợ thiết bị mới này. Vì vậy, các mô
hình phát triển ứng dụng phải đảm bảo hỗ trợ được nhiều loại thiết bị khác nhau,
đông thời hạn chế tối đa các ảnh hưởng đến kiến trúc chung của ứng dụng cũng như
các phân xử lý chính của ứng dụng đối với những sự thay đổi đó.
Tóm lại, để rút ngắn thời gian phát triển ứng dụng cũng như sự thay đổi của ứng
dụng trong tương lai, việc tăng năng suất lao động của người phát triển ứng dụng
đòi hỏi phải có một mô hình phát triển ứng dụng thống nhất cùng các phương tiện
chuân cũng như các công cụ chuân cho việc pháp triển ứng dụng. Hơn nữa phải có
một cách thức phân chia công việc một các khoa học về vai trò, trình độ, kỹ năng
của nhừne người phát triển ứng dụng để đảm bảo phát huy tối đa khả năng của họ
và tránh sự trùng lặp có thể xảv ra. [4]
1.1.2 K hả n ă n g tích hợp v ớ i các hệ thốn g đã có
Trong các hệ thống thông tin hiện nay, một khối lượng lớn dữ liệu đã được thu
thập trong nhiều năm trước đây bởi các hệ thống hiện có của các tổ chức và các
doanh nghiệp. Đồng thời, rất nhiều chi phí, công sức đã đầu tư vào các ứng dụng
trong các hệ thống này. Một thách thức đặt ra cho những người phát triển là làm sao
có thể tái sử dụng các dữ liệu, ứng dụng cũng như các tài nguyên của các hệ thống

này.
Để đạt được mục tiêu này, người phát triển ứng dụng cần phải được cun? cấp
các công cụ, các phương thức chuẩn cho phép sử dụng các dịch vụ mà các hệ thống
hiện có này cung cấp, ví dụ như các công cụ truy nhập các dịch vụ của các cơ sở dữ
liệu, các hệ thống thư điện tử, các hệ thống xử lý giao dịch, Những người phát
triển ứng dụng còn đòi hỏi các hệ thống này phải cung cấp các dịch vụ một cách
thống nhất để mô hinh phát trien ứng dụng mới không cần phải mở rộng việc tích
hợp với các hệ thống khác nhau trong toàn bộ tổ chức, doanh nghiệp. [4]
1.1.3 Đáp ứ n g yêu cầu của ứ n g dụ n g
Đôi với các ứne dụng mức xí nghiệp, việc đáp ứng yêu cầu tính sẵn sàng và khả
năng mở rộng luôn phải được xem xét, chú ý. Các hệ thống đòi hỏi phải được thiết
kế lại. viết lại hay triển khai lại để đáp ứng các yêu cầu mới về tính sẵn sàng và khả
năng mở rộng sẽ làm giảm tính linh hoạt, gây ảnh hưởng lớn tới việc ứng dụng công
nghệ thông tin trong các tổ chức, các doanh nghiệp. Vì vậy, việc phát triển hệ thống
để đáp ứng các yêu cầu này càng dễ dàng và được tự động hoá càng nhiều thì càng
đem lại hiệu quả cao hơn cho việc ứng dụng công nghệ thông tin.
Đe có thể mở rộng được một cách dễ dàng và hiệu quả, các hệ thống phải được
thiết kế để có thể tương tác với nhiều người sử dụng đồng thời. Các hệ thống này
đòi hỏi phải có cơ chế quản lý hiệu quả các tài nguyên và các dịch vụ của hệ thống
như các kết nối tới cơ sở dữ liệu, các giao dịch, Các ứng dụng này cũng phải có
khả năng chạy trên bất kỳ máy chủ nào, đáp ứng được các đòi hỏi về khả năng xử lý
của ứng dụng. Đe đảm bảo tính sẵn sàng ở mức cao nhất, các hệ thống này phải có
khả năng sử dụng các tính năng như tự động cân bằng tải, tự động chuyển sang máy
chủ khác khi có sự cố mà không cần bất cứ can thiệp nào của người phát triển ứng
dụng. [4]
1.1.4 Đảm bảo bảo m ật
Hơn bao giờ hết, việc bảo mật các hệ thống thông tin được các nhà quản lý công
nghệ thông tin quan tâm đến như hiện nay. Việc bảo vệ các hệ thống thông tin có
tính chất sống còn đối với mỗi tổ chức, mỗi doanh nghiệp. Các tổ chức, các doanh
nghiệp thu được càng nhiều lợi ích do công nghệ thông tin mang lại bao nhiêu thì

họ càng có thể bị nhiều thiệt hại khi các hệ thống này bị phá huỷ bấy nhiêu. Trong
các hệ thống thông tin truyền thống trước đây, người quản trị hệ thống có khả năng
kiếm soát hệ thống khá cao do họ có khả năng kiểm soát cả máy chủ cũng như các
thiết bị của người sử dụng. Nhưng hiện nay, với sự phát triển của Internet, các tài
nguyên của hệ thống được sử dụng trong môi trường ít được bảo vệ hơn, người
quản trị không có khả năng quản lý toàn bộ hệ thống nữa mà họ chỉ có khả năng
quản lý một phần của hệ thống mà thôi. Chính vi vậy, việc đảm bảo bảo mật trong
khi vẫn phải đảm bảo khả năng truy nhập của người sử dụng là một thách thức lớn
đối với các hệ thống thông tin hiện nay. [4]
1.2 J2EE - Nền tảng cho các ứng dụng mức xí nghiệp
Công nghệ J2EE, do hãng Sun xây dựng, nhằm tạo ra một mô hình phát triển
các ứng dụng phân mềm trên các máy chủ dựa trên công nghệ Java. Công nghệ
J2EE là một chuẩn thống nhất cho việc phát triển và triển khai các ứnơ dụng mức xí
nghiệp. Chỉ trong hai năm đầu, công nghệ J2EE đã thu được rất nhiều thành công
trên thị trường. Thành công này có được nhờ việc chuẩn J2EE được phát triển một
cách công khai. Mọi cá nhân, tổ chức đều có thể tham gia vào việc xây dựng chuẩn
này. Với việc có rất nhiều nhà sản xuất lớn trên thế giới cùng tham gia vào việc phát
triển này, đã giúp cho J2EE có thể đáp ứng được nhiều nhất các đòi hỏi khác nhau
đặt ra với các ứng dụng mức xí nghiệp. Công nghệ J2EE giúp giải quyết một cách
hiệu quả các thách thức đặt ra đối với các ứng dụng mức xí nghiệp.
Công nghệ J2EE cung cấp một mô hình phát triển đơn giản hơn dựa trên các
thành phần. Việc phát triển ứng dụng dựa trên các thành phần đảm bảo việc tăng
năng suất phát triển ứng dụng bằng nhiều cách khác nhau như:
• Rút ngắn thới gian phát triển các thành phần: Các thành phần trong J2EE
có thể được phát triển bởi các công cụ đồ hoạ, thậm chí có thể được tự động
tạo ra bởi các công cụ. Vì vậy, thời gian phát triển các thành phần được rút
ngắn đáng kể. Hơn nữa, người phát triển có thể sử dụng ngay các thành phần
có sằn trên thị trường trong việc phát triển ứng dụng. Vì vậy, không tốn thời
gian viết lại các thành phần này
• Tạo dựng các chức năng khi triển khai: Sự tương tác giữa các thành phần

trong J2EE có thể được xác định muộn hơn vào thời điểm triển khai. Vì vậy,
có thể tạo dựng các chức năng khác nhau của ứng dụng tại thời điếm triển
khai thay vì phải xác định ngay khi phát triển ứng dụng.
- 10-
• Phân chia công việc: Việc phát triển dựa trên thành phần cho phép phân
chia việc phát triển ứng dụng thành các phần việc khác nhau cho từne neười
phát triển, đảm bảo cho người phát triển có thể phát huy được tối đa khả
năng của mình. J2EE định nghĩa các nhóm người khác nhau tham gia vào
việc phát triển ứng dụns như người cung cấp các thành phần, người kết gắn
các thành phân và người triên khai cùng với các vai trò của họ.
Đe tích hợp với các hệ thống khác một cách dễ dàng, chuẩn J2EE cùng với
chuẩn J2SE (Java 2 Standard Edition) định nghĩa một số chuẩn API cho việc trao
đổi dừ liệu với các hệ thống thông tin hiện có. Việc truy nhập tới các hệ thống hiện
có này được thực hiện thông qua:
• JDBC (Java Database Connectivity) được sử dụng trong việc truy nhập dừ
liệu của các cơ sở dữ liệu quan hệ cũng như các cơ sở dừ liệu khác.
• JTA (Java Transaction API) cho phép quản lý và điều phối các giao dịch
giữa các hệ thống khác nhau.
• JNDI (Java Naming and Directory Interface) cung cap các API chuân cho
việc truy nhập các dịch vụ định danh và thư mục.
• JMS (Java Messaging Service) cung cấp các API chuẩn cho việc gửi và nhận
các thông điệp của các hệ thống xử lý thông điệp.
• JavaMail cung cấp các API cho việc nhận và gửi thư điện tử.
• Java IDL cung cấp các cơ chế cho việc gọi các dịch vụ CORBA.
• Các API cho XML cung cấp khả năng tích hợp với các hệ thống hiện có và
cho phép triển khai các dịch vụ Web.
Công nghệ J2EE không những tạo ra các chuẩn buộc các sản phẩm trên thị
trường phải tuân theo, mà J2EE còn có các công cụ giúp kiêm tra việc tuân theo các
chuẩn này. Chính vì vậy, tính thống nhất của các sản phẩm dựa trên J2EE là rất cao.
Tính thống nhất này đảm bảo cho việc:

-11 -
• Tự do lựa chọn phần mềm cho máy chủ: Các phần mềm máy chủ hỗ trợ
J2EE được cung cấp từ nhiều nhà sản xuất khác nhau cho rât nhiều loại máy
chù khác nhau, nhiều loại hệ điều hành khác nhau. Các phần mềm này có thế
có các thuộc tính khác nhau về độ sẵn sàng, khả năne mở rộng, chi phí triển
khai và cài đặt, Nhưng dù có khác nhau như thế nào đi nữa, nếu các sản
phẩm này cùng tuân theo J2EE thi đều đảm bảo rằng một ứng dụng J2EE có
thể chạy trên phần mềm này thì cũng có thể chạy trên phần mềm khác mà
không cần sửa đổi hay dịch lại.
• Tự do lựa chọn các công cụ: Chuẩn J2EE cũng định nghĩa cả các chuẩn cho
các công cụ thiết kế và triển khai. Tương tự như đối với các phần mềm cho
máy chủ, chuẩn J2EE cũng đảm bảo tính tương thích giữa các công cụ này.
Vì vậy, những người phát triển ứng dụng có thể lựa chọn các công cụ phù
hợp nhất với nhiệm vụ của mình.
• Thị trường cho các thành phần: Phát triển ứng dụng dựa trên các thành
phần tạo đã ra khả năng xây dựng một số thành phần chuẩn có thể được sử
dụng trong nhiều ứng dụng khác nhau. Các thành phần này được cung câp
trên thị trường tạo thành một thị trường cho các thành phần. Người phát triển
ứng dụng có thể lựa chọn các thành phần này cho việc phát triển ứng dụng
của mình giúp giảm ngắn thời gian phát triển ứne dụng.
Tóm lại, với việc đưa ra các chuẩn cho các phần mềm máy chủ, các công cụ
phát triển và triển khai, các thành phần của ứng dụng cùng với các công cụ giúp
kiểm tra việc tuân theo các chuẩn này đã đảm bảo cho việc tự do lựa chọn của các
tô chức và các doanh nghiệp.
Bên cạnh đó, chuẩn J2EE cũng định nghĩa một mô hình bảo mật thống nhất cho
các ứng dụng J2EE. Người phát triển các thành phần có thể định nghĩa mức độ bảo
mật cần thiết cho các thành phần tới từng phương thức của các thành phần này. Hơn
thế nữa, J2EE cũng cung cấp các API cho phép kiểm soát bảo mật của các thành
phần. Cơ chế này cho phép xây dựng hệ thống bảo mật theo vai trò của người sử
- 12 -

dụng tại thời điểm triển khai ứng dụng. Như vậy, J2EE cung cấp mô hình bảo mật
linh hoạt hơn và khả năng kiểm soát cao hơn so với các công nahệ khác.
Tóm lại, J2EE giúp giải quyết các vấn đề đặt ra đổi với các ứng dụng mức xí
nghiệp hiện nay nhờ có khả năng:
• Cung cấp mô hình phát triển và triển khai ứng dụng dựa trên các thành phần.
• Tự do lựa chọn các thành phần, công cụ và phần mềm máy chủ do tích tương
thích cao của thành tố này.
• Các công cụ và các API cho phép tích hợp với các hệ thống khác.
• Mô hình bảo mật linh hoạt và thống nhất.
Chính vì vậy, chỉ trong một thời gian phát triển rất ngắn, J2EE đã được lựa chọn
để trở thành một nền tảng cho việc phát triển các ứng dụng mức xí nghiệp. [4]
1.3 Các mô hình ứng dụng với J2EE
J2EE cho phép người phát triển ứng dụng có thể lựa chọn nhiều mô hình ứng
dụng khác nhau. Khả năng này cho phép người phát triển ứng dụng có thể lựa chọn
được mô hình phù hợp nhất cho ứng dụng của mình.
Mô hình phát triển ứng dụng tổng quan của J2EE được thể hiện trong hình vẽ
dưới đây. Các phần tiếp sẽ xem xét một số mô hình thường được sử dụng phổ biến
với công nghệ J2EE.
- 13 -
Bộ chửa Web
JSP &
Servlet
Hình 1-1: Mô hình ứng dụng của J2EE
1.3.1 Mô hình ứ n g d ụ n g đa m ứ c
JSP EJB
HTML Servlet JMS
HTTP XML JTA
XML JavaMall JDBC
Hình 1-2: Mô hình ứng dụng đa mức
Trong mô hình ứng dụng đa mức, các bộ chứa Web có nhiệm vụ thực hiện việc

quản lý hiển thị của các ứng dụng. Chức năng hiển thị này sử dụng chủ yếu là các
trang JSP cho khuôn mẫu hiến thị và các Servlet thực hiện việc điều khiển và xử lý
các yêu cầu của người sử dụng. Việc phối họp giữa JSP và Servlet sẽ tạo ra các
trang Web động để chuyển cho người sử dụng. Bộ chứa EJB quản lý phần xử lý của
ứng dụng. Tại bộ chứa này, các thành phần EJB được thực hiện. Các thành phần
- 14-
EJB sẽ thực hiện việc khai thác các dừ liệu từ các cơ sở dữ liệu để thực hiện các yêu
cầu của các thành phần trong bộ chứa Web. Như vậy, trone mô hình này, phần hiền
thị và dừ liệu của ứng dụng được tách rời nhau. Đặc tính này đảm bảo việc mở rộng
khả năng xử lý của ứng dụng được thực hiện rất dễ dàng. [4]
1.3.2 Mô hình ứ n g d ụng Java
Hình 1-3: Mô hình ứng dụng Java
Trong mô hình ứng dụng Java, các ứng dụng có thể là một trong 3 dạng sau:
• Các ứnu dụng Java thực hiện việc xử lý các thông tin động dược tạo ra bởi
các thành phần trong bộ chứa Web. Phần xử lý của ứng dụng được thực hiện
bởi EJB và EJB trao đổi dữ liệu với cơ sở dữ liệu. Trong một sổ trường họp,
phần xử lý của ứng dụng có thể được thực hiện bởi bộ chứa Web và bộ chứa
này truy nhập trực tiếp vào cơ sở dữ liệu.
• EJB client: Trong trường hợp này, các ứng dụng Java tương tác trực tiếp với
bộ chứa EJB và các thành phần EJB. Tương tác này được thực hiện với giao
thức RMI-IIOP. Các thành phần EJB sẽ truy nhập tới các dữ liệu trong cơ sở
dừ liệu thông qua giao thức JDBC.
• Các ứne dụng Java truy nhập trực tiếp vào cơ sở dữ liệu thông qua JDBC.
Trong trường họp này toàn bộ phần biểu diễn và xử lv của ứng dụng đều
được thực hiện tại máy trạm. Mô hình này chính là mô hình khách chủ
truyền thống. Việc sử dụng mô hình này cũng đi kèm với các khó khăn
- 15 -
thường gặp phải đổi với mô hình khách chủ là việc phân phối các ứng dụng
tới người sử dụng, bảo trì và khả năng mở rộng của hệ thống. [4]
1.3.3 M ô hìn h ứ n g d ụ n g Web

HTML Servlet
HTTP XML
XML JavaMall
Hình 1-4: Mô hình ứng dụng Web
Trong một sổ trường hợp việc sử dụng các thành phần EJB là quá phức tạp đối
với ứng dụng cần xây dựng. Vì vậy, có thể không sử dụng bộ chứa EJB. Các ứng
dụng này sẽ bao gồm 3 lớp là các trình duyệt Web, bộ chứa Web và cơ sở dữ liệu.
Trong trường hợp này, bộ chứa Web sẽ thực hiện cả việc biếu diễn và xử lý của ứng
dụng. Như vậy, tạo bộ ứng dụng được phát triển trên bộ chứa Web. Bộ chứa Web sẽ
thực hiện kết nổi trực tiếp với cơ sở dừ liệu thông qua JDBC. Mô hình này thường
dược sử dụng với các ứng dụng nhỏ, tương đối đơn giản.
1.3.4 M ô hình d oanh nghiệ p v ớ i doan h n g hiệ p
Hình 1-5: Mô hình doanh nghiệp với doanh nghiệp
- 16-
Mô hình doanh nghiệp với doanh nghiệp tập trung vào việc trao đổi ngang hàng
giữa các bộ chứa Web và các bộ chứa EJB. Đây là mô hình được sử dụng cho việc
trao đổi dừ liệu giữa các doanh nghiệp với nhau. Việc trao đổi này được thực hiện
thông qua kết nối giữa hai bộ chứa Web. Đây là mô hình rất thích hợp cho các hoạt
độne thương mại eiữa các doanh nghiệp với nhau trên Internet.
Việc sử dụng kết nối giữa hai bộ chứa EJB thường đòi hỏi các kết nối chặt chẽ
hơn. Vì vậy, mô hình này thường được sử dụng cho trao đổi dữ liệu giữa các bộ
phận trons một doanh nghiệp. Với việc hồ trợ JMS và các thành phần xử lý thông
điệp. J2EE cho phép các kết nối này có tính linh động cao hơn, giúp cho việc trao
đổi dữ liệu trong nội bộ mỗi tổ chức dễ thực hiện và cũng dễ thay đổi hơn khi cần
thiết. [4]
1.3.5 ư u điểm của m ô hìn h đa m ức
Mô hinh đa mức với đầy đủ cả hai bộ chứa Web và EJB đem có nhiều ưu điểm
như:
• Dễ dàng thay đổi hình thức thể hiện và giao diện của ứng dụng.
• Việc phân chia giữa phần biểu diễn và phần xử lý của ứng dụng giúp tăng

tính mô đun hóa của ứng dụng hơn. Việc phân chia này sẽ giúp việc bảo trì
các ứng dụng trở nên đơn giản hơn.
• Cho phép phân chia công việc phát triển ứng dụng giữa những người phát
triển ứng dụng khác nhau.
• Cho phép phát triển ứng dụng với các thành phần có sẵn trên thị trường mà
vẫn không ảnh hưởng tới giao diện của ứng dụng.
• Cho phép triển khai các thành phần khác nhau trên nhiều máy chủ khác
nhau, giúp dễ dàng mở rộng khả năng xử lý của toàn bộ hệ thống.
• Cho phép hỗ trợ đồng thời nhiều loại thiết bị. Hơn thế nữa việc hỗ trợ thêm
các thiết bị mới có thể được thực hiện hết sức dễ dàng.
- 1 7 -
Trong mô hình đa mức này, có tất cả 4 mức khác nhau là các trình duyệt, bộ
chứa Web, bộ chứa EJB và cơ sở dừ liệu. Tuy vậy, nhiều khi mô hình này vẫn được
gọi là mô hình 3 mức do bộ chửa Web và bộ chứa EJB cùng được thực hiện trên
J2EE. Việc xây dựng các ứng dụns với mô hình này được thực hiện thông qua việc
phát triển các thành phần trong bộ chứa Web và các thành phần cho bộ chứa EJB.
Do nội dung có hạn của luận văn, phần sau chỉ đề cập chủ yếu đến là mô hình đa
mức trên công nghệ J2EE. [4]
- 18 -
C h ư ơ n g 2: B ộ c h ứ a E J B - E n t e r p r i s e
J a v a B e a n
Trong các ứng dụng J2EE theo mô hình đa mức, mức EJB thực hiện logic của
ứna dụng và các dịch vụ hệ thống như dịch vụ quản lý giao dịch, điều khiển các
truy nhập đồng thời và bảo mật. Với mô hình này, các thành phần EJB sẽ thực hiện
việc kết nối giữa các thành phần hiển thị được thực hiện trone, bộ chứa Web và dữ
liệu của ứng dụng. Công nghệ EJB giúp xây dựng các ứn£ dụng dựa trên các thành
phần phân tán. Yeu tố này cho phép người phát triển chỉ cần tập trung vào giải
quyết các vấn đề đặt ra với ứng dụng. Công việc xử lý các dịch vụ hệ thống hết sức
phức tạp sẽ được thực hiện bởi các phần mem J2EE.
Chương này trước hết trình bày các vấn đề đặt ra đối với người phát triển ứng

dụng khi phải triển khai phần logic của ứng dụng. Sau đó, sẽ trình bày các thành
phần EJB giúp giải quyết các vấn đề này như thế nào.
2.1 Phần Logic nghiệp vụ - Business Logic
Phần Logic nghiệp vụ của ứng dụng theo nghĩa rộng là một tập hợp các nguyên
tắc để quản lý một chức năng nghiệp vụ nào đó của ứng dụng. Cách tiếp cận hướng
đối tượng cho phép người phát triển ứng dụng phân chia các chức năng nghiệp vụ
thành các đổi tượng nghiệp vụ. Cũng giốna như các đổi tượng khác, các đối tượng
nghiệp vụ có cả các thuộc tính và các phương thức. Ví dụ, đối tượng nghiệp vụ
Nhân viên có các thuộc tính là Tên, Địa chỉ, Đối tượng này cũng có các phương
thức cho phép thực hiện việc gan với một phòng ban hay tăng lương theo một tỷ lệ
nào đó. Để thực hiện các chức năng của ứng dụng, cần phải xây dựng được các
phương thức của các đối tượng nghiệp vụ cũng như việc tương tác giữa các đôi
tượng để tạo ra các chức năng cần thiết của ứng dụng. Các quy luật kinh doanh giúp
xác định được cấu trúc và các phương thức của các đối tượng nghiệp vụ cùng với
các tiền điều kiện và hậu điều kiện cần phải đạt được khi các đối tượng nghiệp vụ
- 19 -
thực hiện các phương thức của nó. Tất cà các quy luật này được hiểu là Logic
nghiệp vụ.
Ví dụ sau sẽ xem xét các đối tượng: Đối tượng Danh mục cho biết các hàng hóa
được cung cấp, đối tượns, Giỏ hàng lưu tạm thời các hàng hóa được khách hàng lựa
chọn, đối tượng Khách hàng lưu các thông tin về khách hàng và đối tượng Đơn
hàng dùng để theo dòi các đơn hàng đã được đặt. Khi đó đối tượng Khảcli hàng
phải thỏa mãn các ràng buộc sau:
1. Mồi khách hàng tương ứng với một đối tượnẹ Khách hàng duy nhất.
2. Mồi đối tượng Khách hàng phải có thông tin liên lạc của khách hàng như tên,
địa chỉ, thư điện tử.
3. Khách hàng phải có khả năng tạo đối tượng Khách hàng mới.
4. Khách hàng có khả năng cập nhập các thông tin liên lạc của họ.
5. Khách hàng có khả năng truy nhập các thông tin của dối tượng Khách hàng của
họ.

6. Mỗi khách hàng chỉ có thể truy nhập và cập nhập các thông tin của đổi tượng
Khách hàng của họ mà thôi.
7. Các thông tin của đổi tượng Khách hàng phải được lưu trữ trên các thiết bị lưu
trữ.
8. Nhiều khách hàng có thể đồng thời cùng truy nhập tới các thông tin của các đôi
tượng Khách hàng tương ứng.
9. Tại một thời điểm không có quá một khách hàng có thể cập nhập các thông tin
của một đối tượng Khách hàng.
Hai ràng buộc đầu xác định cấu trúc của đối tượng Khách hàng. Theo đó, đôi
tượng Khách hàng phải có trường ID và một số trường khác để chứa các thông tin
về địa chỉ, số điện thoại và các thông tin liên lạc khác.
-20-
Các ràng buộc 3, 4, 5 xác định phương thức hoạt động của các đối tượng Khách
hàng. Ví dụ, các đổi tượng này phải có các phương thức để tạo đối tượng Khách
hàng mới, cập nhập thông tin và lấy thông tin của các đối tượng này.
Các ràng buộc còn lại xác định các điều kiện phải luôn luôn được đảm bảo khi
các đối tượng thực hiện các phương thức của mình. Trong ví dụ trên, khi một khách
hàng muốn lẩy hay cập nhập các thông tin của một đối tượng Khách hàng thì người
khách hàng này phải được quyền thực hiện việc đó cũng như các cơ chế truy nhập
đồng thời của nhiều khách hàng khác nhau. Tương tự như vậy, các đối tượng khác
trong hệ thống cũng phải tuân thủ luật khác nhau của hệ thống.
Tuy mỗi đối tượng nghiệp vụ có cấu trúc và các phương thức hoạt động riêng
biệt phụ thuộc vào vấn đề cần giải quyết, nhưng có rất nhiều dịch vụ mà các dối
tượng này cung cấp lại tuân theo các khuôn mẫu nhất định khá phổ biến trong thực
tế. Phần tiếp theo sẽ xem xét các dịch vụ chung này hay các yêu cầu chung đối với
các đối tượng nghiệp vụ. [4]
2.2 Các yêu cầu đối với đối tượng nghiệp vụ
2.2.1 Duy trì trạng thái
Các đổi tượng nghiệp vụ thường cần phải duy trì trạng thái của nó được thể hiện
bởi giá của các thuộc tính của nó giữa các lần thực hiện các phương thức của các

đối tượng nghiệp vụ. Các trạng thái này có thể là tạm thời tức chỉ tồn tại trong khi
thực hiện của ứng dụng cũng như ở trạng thái bền vững tức được lưu trữ trên các
thiết bị lưu trữ.
Ví dụ như đối tượng Giỏ hàng. Trạng thái của đổi tượng Giỏ hàng cho biết các
hàng hóa được mua và sổ lượng của mỗi loại hàng hóa này. Tại thời điểm ban đầu,
Giỏ hàng là rỗng và trạng thái của Giỏ hàng thay đổi với việc lựa chọn các hàng
hóa và số lượng của loại hàng hóa đó được khách hàng đưa vào Giỏ hàng. Tương tự
như vậy, nếu khách hàng xóa đi một loại hàng hóa nào đó thì Giỏ hàng phải phản
ánh được sự thay đổi này. Khi khách hàng thoát ra khỏi ứns, dụng này thì Giỏ hàng
-21 -
phải được khởi tạo lại về trạng thái ban đầu. Như vậy, đối với đối tượng này, trạng
thái của nó được khởi tạo thay đổi và mất đi theo sự tương tác với người sử dụng.
Trong trường họp này, các đối tượng này duy trì trạng thái tạm thời.
Ví dụ khác là đối tượng Tài khoản. Khi người sử dụng tạo ra một tài khoản,
trạng thái của Tài khoản này phải được lưu trừ bền vững để khi người sử dụng thoát
khỏi ứng dụng và sau đó quay trở lại ứng dụng thì trạng thái của đổi tượng này vẫn
phải được thể hiện lại cho người sử dụng. Như vậy, để có thể thực hiện được, trạng
thái của các đối tượng này phải được lưu trữ bền vừng trên các thiết bị lưu trừ, ví dụ
như trên các cơ sở dữ liệu.
Tóm lại, nhiều đối tượng nghiệp vụ cần phải có khả năng duy trì trạns thái của
nó. Trạng thái của đối tượng nghiệp vụ có thể là trạnạ thái tạm thời hay trạng thái
lưu trữ bền vững. [4]
2.2.2 H o ạ t độn g trên các d ữ liệ u c h u n g
Trong nhiều trường hợp, các đối tượng khác nhau cùng phải hoạt động trên cùng
một dữ liệu chung. Ví dụ, nhiều người sử dụng đồng thời truy nhập đến cùng dữ
liệu của cùng một tài khoản. Trong các trường họp này, các đổi tượng nghiệp vụ
cần có một cơ chế kiểm soát các truy nhập đồng thời ở các mức độ truy nhập khác
nhau. [4]
2.2.3 Tham g ia vào các gia o dịch
Các giao dịch là một tập các hoạt động phải được thực hiện như một đơn thể.

Nếu bất cứ một hoạt động nào trong một giao dịch bị hủy bỏ thì toàn bộ các hoạt
động trong giao dịch đó phải được hủy bỏ và quay lại trạng thái ban đầu (roll back).
Nếu mọi hoạt động trong giao dịch được thực hiện thì coi là giao dịch đó được thực
hiện (commit).
Trong một số giao dịch, các hoạt động được thực hiện trên dữ liệu được đặt tại
nhiều địa điểm khác nhau. Các giao dịch này được gọi là các giao dịch phân tán.
-22-
Đối với các giao dịch phân tán, cần phải có một giao thức riêng đê đảm bảo tính
toàn vẹn dừ liệu.
Như vậy các đối tượng nghiệp vụ phải có khả năng tham gia vào các giao dịch.
[4]
2.2.4 P h ục vụ m ột lư ợ ng lớ n n g ư ờ i s ử d ụ ng
Các đối tượng nghiệp vụ cũng phải có khả năng phục vụ nhiều người sử dụng tại
cùng một thời điểm. Điều này đòi hỏi phải có một cơ chế quản lý các biến thể của
các đối tượng nghiệp vụ sao cho người sử dụng có cảm giác như các đối tượng
nghiệp vụ này chỉ phục vụ cho các yêu cầu của họ mà thôi. Neu không có cơ chế
này, hệ thống sẽ rất dễ bị rơi vào tình trạng không có đủ tài nguyên để phục vụ khi
sô lượng người sử dụng tãng lên. [4]
2.2.5 C ung cấ p khả năn g tru y nhập d ữ liệ u từ xa
Người sử dụng có thế truy nhập tới các dịch vụ cung cấp bởi các đối tượng
nghiệp vụ từ xa. Như vậy, các đối tượng nghiệp vụ phải có khả năng cung cấp các
dịch vụ này qua mạng. Điều này cũng có nghTa là các đổi tượng nghiệp vụ là một
phần của hệ thống tính toán phân tán. [4]
2.2.6 K iểm s o á t tru y nhập
Các dịch vụ cung cấp bởi các đối tượng nghiệp vụ thường chỉ được cung cấp
cho những người sử dụng có thẩm quyền. Vì vậy, các đối tượng nghiệp vụ cần có
một cơ chế dịnh danh và xác định quyền truy nhập của người sử dụng. [4]
2.2.7 Khả n ăng s ử d ụ n g lại
Một trong các yêu cầu chung ỉà các đối tượng nghiệp vụ phải có khả năng sử
dụng lại trong các thành phần khác của ứng dụng hay trong các ứng dụng khác. Để

các đối tượng này có thể sử dụng lại trong các thành phần khác của ứng dụng cũng
như trong các ứng dụng khác thì các đối tượng này phải được phát triển tuân theo
những chuẩn nhất định và phải được thực hiện trong các môi trường hỗ trợ các
-2 3 -
chuẩn này. Nếu các chuẩn này được nhiều nhà cung cấp tuân theo thì các đối tượng
tuân theo các chuẩn này sẽ có nhiều hơn. Khi đó, thời gian phát triển ứng dụng có
thể giảm bớt nhờ việc sử dụng các đối tượng được cung cấp sẵn trên thị trường. [4]
2.3 Tổng quan về EJB
Như phần trên đã đề cập đối với các yêu cầu chung đối với các đối tượng nghiệp
vụ, các vêu cầu đó có thể kể đến như khả năng hỗ trợ các giao dịch, bảo mật, truy
nhập từ xa, duy trì trạng thái. Các dịch vụ này khá phức tạp và nằm ngoài phạm vi
của vấn đề cần giải quyết. Để đơn giản hóa việc phát triển ứng dụng, các ứng dụng
mức xí nghiệp cần một chuẩn cho việc phát triển ứng dụng trên máy chủ.
Đặc tả EJB trong J2EE cung cấp một chuẩn cho việc phát triển các ứng dụng
trên máy chủ. Chuẩn này giúp đơn giản hóa quá trình phát triển nhờ việc phát triển
các ứng dụng dựa trên các thành phần phân tán. Trong mô hình này, các chuyên gia
hệ thống cune cấp các dịch vụ nền tảng của hệ thống thông qua việc phát triển và
cung cấp các bộ chứa EJB. Khi đó, các chuyên gia ứng dụng cung cấp các thành
phần chuyên giải quyết các vấn đề nghiệp vụ mà không cần phải quan tâm đến các
dịch vụ hệ thốne.
EJB là các thành phần phần mềm trên máy chủ. Các thành phần này có thể được
triển khai trên môi trường phân tán đa mức. Trong mô hình này, người sử dụng sẽ
xây dựng các thành phần EJB để giải quyết các vẩn đề nghiệp vụ.
Các thành phần EJB được chia thành hai loại là Session Bean và Entity Bean.
Phần sau đề cập chi tiết về các loại thành phần EJB này.
Trong đặc tả EJB, các thành phần EJB được cấu thành bởi hai bộ giao diện là
giao diện tại chồ (home interface) và giao diện từ xa (remote interface), và lóp EJB.
Mọi truy nhập tới đối tượng EJB được thực hiện thông qua một trong hai giao diện
của thành phần EJB. [4]
-24-

2.3.1 G iao diệ n tại chỗ
Giao diện tại chỗ cung cấp các phương thức để tạo lập và xóa bỏ các EJB. Giao
diện này phải thừa kế từ javax.EJB.EJBHome. Giao diện tại chỗ của thành phần
EJB cho phép các thực hiện:
• Tạo biến thể EJB mới.
• Xóa bỏ một biến thể EJB.
• Lấy các thông tin mô tả của thành phần EJB thông qua giao diện
javax.EJB.EJBMetaData. Các thông tin này cho phép các công cụ kết ghép
ứng dụng có thể lấy được các thông tin mô tả này để thực hiện việc triển khai
các EJB
• Lấy handle của giao diện tại chỗ cho phép thực hiện chuyển các đối tượng
EJB cần lưu trữ bền vừng ra các thiết bị lưu trữ và thực hiện việc tạo dựng
các đôi tượng EJB dựa trên các dữ liệu được lưu trữ.
• Tìm kiếm đối tượng EJB thông qua khóa của nó.[4]
2.3.2 G iao d iện từ xa
Giao diện từ xa tạo cung cấp các phương thức công cộng cho phép truy nhập tới
các lớp EJB. Giao diện từ xa thừa kể từ javax.EJB.EJBObject. Giao diện từ xa cho
phép EJB client có thể thực hiện:
• Lấy giao diện tại chồ.
• Xóa bỏ biển thể của EJB.
• Lấy handle của biến thể EJB.
• Lấy khóa chính của EJB nếu có.[4]

×