ĐẠI HỌC QUỐC GIA HÀ NỘI
KHOA CÔNG NGHỆ
ĐẶNG XUÂN THÊM
SỰ PHÁT TRIỂN CÁC HỆ THỐNG PHÂN TÁN DỰA TRÊN KIẾN
TRÚC PHẦN MỀM BA TẦNG
LUẬN VĂN THẠC SỸ
Người hướng dẫn: TS. Nguyễn Tuệ
Hà nội - 2004
Mục lục
Mở ầu 3
Chương 1. Giới thiệu về kiến trúc phần mềm ba tầng 5
1.1. Lịch sử phát triển của kiến trúc phần mềm ba tầng 5
1.1.1. Kiến trúc Mainframe 5
1.1.2. Kiến trúc chia sẻ tệp 5
1.1.3. Kiến trúc khách chủ 5
1.1.4. Kiến trúc hai tầng 6
1.1.5. Kiến trúc ba tầng 7
1.2. So sánh kiến trúc ba tầng với kiến trúc hai tầng truyền thống 10
1.3. Phần mềm kết nối giữa các tầng - Middleware 12
1.3.1. Middleware hướng thủ tục 12
1.3.2. Middleware hướng cơ sở dữ liệu 14
1.3.3. Middleware hướiệp 15
1.3.4. Middleware hướối tượng 16
1.3.5. Middleware dựa trên các thành phần 17
Chương 2. Kiến trúc phần mềầng của J2ee 19
2.1. Các công nghệ nền tảng của J2EE 21
2.1.1. Công nghệ về các thành phần 21
2.1.2. Các dịch vụ nền tảng 21
2.1.3. Truyền thông 22
2.2. Tầng khách - Client Tier 22
2.2.1. Thiết kế các trình khách sử dụng trình duyệt 26
2.2.2. Thiết kế trình khách Java 28
2.3. Tầng Web 31
2.3.1. Java Servlet 32
2.3.2. Java Server Page (JSP) 32
2.4. Tầng EJB 33
2.4.1. Bean phiên 34
2.4.2. Bean thực thể 35
2.4.3. Bean hướệp 38
2.4.4. Giao diện truy cập enterprise bean 39
2.5. Tầng dữ liệu 42
2.5.1. JDBC 42
2.5.2. Bộ kết nối (Connector) 43
Chương 3. Phân tích và thiết kế ứng dụng bán hàng qua mạng dựa trên kiếầng j2ee 44
ặt vấề 44
3.2. Lựa chọn các tầng ứng dụng 48
3.3. Kiến trúc của ứng dụng 50
ủa website ứng dụng 52
53
56
ậhàng 57
61
ều khiển(Control) 64
ềệồng bộ 66
Kết luận 67
Tài liệu tham khảo 69
Mở ầu
Trong nhiềến trúc phần mềm hai tầng khách/chủ ược sử dụng rất phổ biến. Kiến trúc
này phân chia một ứng dụng phần mềm làm hai tầng: tầng khách và tầng chủ. Tầng khách thường
ượặể bàn, với chứương tác với người sử dụng và xử lý hầu hết
các yêu cầu nghiệp vụ. Còn tầng chủ thường là một hệ quản trị dữ liệu quan hệ, lưu trữ dữ liệu của
ứng dụng. Kiến trúc phần mềm hai tầng truyền thống chỉ thích hợp với những ứng dụng vừa và nhỏ
trong một phạịa lý hẹể khắc phục những nhượểm của kiến trúc hai tầng, kiến trúc phần
mềm ba tầời. Việc xử lý các yêu cầu nghiệp vụ ược tách khỏi tầng khách và tạo thành một
tầng mới, gọi là tầng lôgíc nghiệp vụời từ nhữưếần
ến trúc phần mềm này mớược giới phát triển phần mềm chú ý nhiềượ giá là một
trong những xu hướng chính trong phát triển phần mềm của thế kỷ XXI.
Luậển các hệ thống phân tán dựa trên kiến trúc phần mềm ba tầng" với mụ
nghiên cứu về kiến trúc phần mềm ba tầng, hy vọng sẽ có cái nhìn sâu sắc hơn về kiến trúc phần mềm
ư góp một phần nhỏ trong quá trình nghiên cứu phát triển kiến trúc phần mềm ba tầng ở
Việt Nam.
Luậược chia thành 3 chương:
- Chương 1: Giới thiệu lịch sử phát triển của các hệ tính toán phân tán, kiến trúc phần mềm ba
tầng nói chung. Ngoài ra, trong chươữa mô hình kiến trúc phần mềm ba
tầng với mô hình kiến trúc phần mềm hai tầng truyền thống.
- Chương 2: Luậứu một kiến trúc phần mềm ba tầng cụ thể, kiến trúc J2EE. Trong
chương, luậẽ nghiên cứu về các công nghệ trong kiếầư chi tiết từng
tầng trong kiến trúc này.
- Chương 3: Mụủa chương này là phân tích thiết kế kiến trúc của ứng dụng thương mại
ện tử ểạằm minh họa cho kiếầượề cập trong
các chương trước. Với mụết kế tập trung vào kiến trúc mức cao của ứng dụng như cách
chia ứng dụng thành các tầng, các chứược thể hiện trong các tầng ứng dụng tương ứng, thiết
kế các lớp (class) tương ứng với những chứầng ứng dụ
Chương 1. Giới thiệu về kiến trúc phần mềm ba tầng
Chương này sẽ giới thiệu các kiến trúc phần mềm: mainframe, khách/chủ, hai tầng, ba tầng và sự phân
tích, so sánh giữa kiến trúc phần mềm ba tầng và kiến trúc phần mềm hai tầng truyền thốồng
thời các phương thức giao tiếp giữa các tầng trong kiến trúc phần mềm ba tầượề cập
ến.
1.1. Lịch sử phát triển của kiến trúc phần mềm ba tầng
1.1.1. Kiến trúc Mainframe
Với kiến trúc phần mềm mainframe, mọi việc xử ềược tập trung ở máy chủ trung tâm. Người
dùng sử dụng một thiết bị ầu cuốể gửi các lệnh lên máy chủ trung tâm. Việc tương tác của người
dùng với máy chủ trung tâm có thể ược thực hiện thông qua các máy tính cá nhân PC hoặc các máy
trạm UNIX. Hạn chế của kiến trúc phần mềm mainframe là khả ỗ trợ ồ họư khả
truy cập các cơ sở dữ liệu phần tán không dễ dàng. Trong nhữầ
ược sử dụng như những máy chủ trong các hệ thống phân tán.
1.1.2. Kiến trúc chia sẻ tệp
Trong thờầược nối với nhau dựa trên kiến trúc chia sẻ tệp (file-
sharing), các tệp dữ liệược tải từ thư mục dùng chung về ể bàn. Các chương trình ứng
dụược chạy trên môi trườể bàn. Hạn chế của kiến trúc này là dễ ột trong
môi trường chia sẻ tệp, không tận dụng hếượực của máy chủ.
1.1.3. Kiến trúc khách chủ
ể khắc phục nhượểm của kiến trúc chia sẻ tệp, kiến trúc khách/chủ ược phát
triển. Theo cách tiếp cận này, máy chủ tệược thay thế bởi một cơ sở dữ liệu (database
server). Sử dụng cơ sở dữ liệu quan hệ, những truy vấn của người sử dụng có thể ược trả lời một
cách trực tiếp. Kiến trúc khách/chủ ảể sự tắc nghẽn mạng, chỉ dữ liệu truy vấn cần thiết
mớược truyền qua mạng thay vì phải truyền cả tệp dữ liệu như trong kiến trúc chia sẻ tệồng
thời kiếố người sử dụng cùng cập nhật cơ sở dữ liệu dùng chung.
Trong kiến trúc phần mềm khách/chủ, các lời gọi thủ tục từ xa (Remote Procedure Calls RPC) và các
câu lệnh truy vấược sử dụng chủ yếể giao tiếp giữa máy khách và máy chủ.
1.1.4. Kiến trúc hai tầng
Kiến trúc hai tầng khách/chủ ược phát triển từ nhữừ kiến trúc phần mềm chia sẻ
tệp. Kiến trúc hai tầng bao gồm ba thành phần nằm trên hai tầng: tầng khách (nơi phát sinh yêu cầu
dịch vụ) và tầng chủ (nơi cung cấp các dịch vụ). Ba thành phầ
- Giao diện người dùng (như các ô nhập liệu, các biểu mẫủa tầng này là cung cấp
giao diện cho người dùng, làm cho hệ thống dễ dùng, và thân thiện với nguời sử dụng hơn.
- Quản lý các tiến trình, như việc phát triển tiến trình, kiểm soát các tiế