ĐẠI HỌ C Q U Ó C GIA H À N Ộ I
KHOA CÔNG NGHỆ
Phạm T h ị H uyề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 TR Ê N C Ô N G N G H Ệ JA V A
Chuyên ngành
: C Ô N G N G H Ệ T H Ô N G T IN
M ã số
: 1 .0 1 .1 0
L U Ậ 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 Q u a n ..................................................................................................................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 c a o ......................................................................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 ụ n g ...........................................................................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 J2 E E ...................................................................... 12
1.3.1
Mô hình ứng dụng đa mức............................................................................... 13
1.3.2
Mô hình ứng dụng J a v a ....................................................................................14
1.3.3
Mô hình ứng dụng W eb....................................................................................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 JavaB ean.................................................................18
2.1
Phần Logic nghiệp vụ - Business L ogic.......................................................... 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 ịc h ............................................................................... 21
2.2.4
Phục vụ một lượng lớn người sử d ụ n g ..........................................................22
2.2.5
Cung cấp khả năng truy nhập dữ liệutừ x a .....................................................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 c h ỗ ..................................................................................................24
2.3.2
Giao diện từ xa..................................................................................................... 24
2.3.3
Lớp E JB .................................................................................................................25
2.4
Session B ean.........................................................................................................25
2.4.1
Session Bean Trạng T hái................................................................................... 26
2.4.2
Session Bean Phi Trạng Thái............................................................................ 26
2.4.3
Phát triển các Session B ean.............................................................................. 27
2.4.4
Thực hiện gọi các Session B ean....................................................................... 31
2.5
Entity B e a n ........................................................................................................... 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 B e a n .......................................................................................38
2.5.3
Các file tạo thành Entity B ean.......................................................................... 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 B e a n ....................................................................43
2.5.6
Ngừ cảnh của Entity B ean.................................................................................46
2.5.7
Vòng đời của một Entity B e a n ......................................................................... 48
Chương 3: Bộ chứa Web: Servlet và J S P ............................................................................. 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ó J S P .................................................................................... 63
3.2.2
Mô hình hoạt động của J S P ...............................................................................64
3.3
So sánh giữa Servlet và J S 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 J S P ............................................................................ 73
Chương 4: ứ n g 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 M V C ...... ............................................................................................ 75
4.1.2
Các vấn đề đặt ra đổi với mô hình MVC trong J2E E ...................................78
4.1.3
Khuôn mẫu phát triển của J 2 E E .......................................................................79
4.1.4
Khuôn mẫu Session Bao N goà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: ứ n g 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 ụ n g n ă n g s u ắ t ca o
Đẻ 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íc h 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 -
Hình 1-1: Mô hình ứng dụng của J2EE
1.3.1 M ô h ìn h ứ n g d ụ n g đa m ứ c
Bộ chửa Web
JSP &
Servlet
HTML
HTTP
XML
JSP
Servlet
XML
JavaMall
EJB
JMS
JTA
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 ìn h ứ n g d ụ n g J a v a
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 W eb
HTML
HTTP
XML
Servlet
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 ìn h d o a n h n g h iệ p v ớ i d o a n h n g h iệ p
Hình 1-5: Mô h ì n h d o a n h n g h i ệ p v ớ i d o a n h n g h i ệ 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.
- 17-
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 te r p r is e
JavaB ean
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.
- Xem thêm -