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 - Pdf 19

ĐẠ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

2.3.1. Java Servlet
2.3.2. Java Server Page (JSP)
2.4. Tầ ng EJB
2.4.1. Bean phiên
2.4.2. Bean thực t h ể
2.4.3. Bean hướng thông điệ p
2.4.4. Giao diệ n truy cậ p enterprise bean
2.5. Tầ ng dữ liệ u
2.5.1. JDBC
2.5.2. Bộ k ế t nố i (Connector)
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ế n trúc đa tầ ng j2ee
3.1. Đặ t vấ n đề
3.2. Lựa ch ọ n các tầ ng ứng dụ ng
3.3. Kiế n trúc củ a ứng dụ ng
3.4. Các môđun củ a website ứng dụ ng
3.4.1. Môđun Xem hàng (Catalog)
3.4.2. Môđun Mua hàng (ShoppingCart)
3.4.3. Môđun Đăng nhậ p (Signon) và Đăng k{ khách hàng
3.4.4. Môđun khách hàng
3.4.5. Môđun Điề u khiể n(Control)
3.4.6. Môđun truyề n thông điệ p không đồ ng bộ
6 6 Kế t luậ n
Tài liệ u tham khả o
MỞ ĐẦU

Trong nhiều năm qua, kiế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
được cài đặt trên các máy tính để bàn, với chức năng là tươ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

cụ thể, kiến trúc J2EE. Trong chương, luận văn sẽ nghiên cứu về
các công nghệ trong kiến trúc đa tầng J2EE cũng như chi tiết từng
tầng trong kiến trúc này.
Chương 3: Mục đích củ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 điện tử điển hình “Bán hàng qua mạng”
nhằm minh họa cho kiến trúc đa tầng đã được đề cập trong các
chương trước. Với mục đích đó, thiế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 năng đượ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ức năng trong các tầng
ứng dụng đó.
Luận văn tốt nghiệp cao học
3

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. Đồ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ầng cũng được đề cập đến.

dàng hơn.
Tính bảo mật: Tính bảo mật trong ứng dụng hai tầng kém hơn do bảo
mật được thực hiện ở mức dữ liệu. Còn việc bảo mật trên hệ thống ba
tầng được thực hiện ở mức dịch vụ, phương thức và đối tượng.
Tính bao gói dữ liệu: Tính bao gói dữ liệu của ứng dụng hai tầng rất
thấp, toàn bộ dữ liệu của các bảng được phô ra. Ngược lại, ứng dụng
ba tầng cho phép bao gói dữ liệu tốt hơn nhiều. Chương trình ở máy
khách chỉ giao tiếp với các dịch vụ, hoặc các đối tượng ở tầng nghiệp
vụ, không cần biết rõ cấu trúc dữ liệu thực như thế nào.
Mạng truyền thông: ứng dụng hai tầng đòi hỏi chất lượng mạng tốt,
băng thông rộng vì dữ liệu phải được tải về máy khách trước khi xử
lý. Trong khi đó, ứng dụng ba tầng cho phép việc sử dụng hạ tầng
mạng đa dạng hơn, có thể là mạng cục bộ LAN, mạng diện rộng,
mạng Internet và thậm chí cả mạng không dây. Bởi vì truyền thông
trong ứng dụng ba tầng chỉ đơn thuần là các lời gọi dịch vụ trên máy
chủ, sau khi máy chủ xử lý xong, kết quả (thường là nhỏ) mới trả về
cho máy khách.
Khả năng mở rộng hệ thống: Đối với ứng dụng hai tầng, khả năng
mở rộng hệ thống kém vì bị giới hạn bởi việc quản lý các liên kết với
Luận văn tốt nghiệp cao học
5

máy khách. Ngược lại, trong hệ thống ba tầng có thể dễ dàng mở
rộng hệ thống để đáp ứng một lượng lớn các máy khách nhờ khả năng


Sau đây là một số loại middleware thường được dùng trong các ứng
dụng ba tầng:
- Middleware hướng thủ tục (Procedure-Oriented Middleware): cho
phép một trình khách chuyển các tham số của một lời gọi thủ tục
thành một thông điệp và được gửi tới máy chủ, tại máy chủ thông
điệp lại được chuyển thành các tham số.
- Middleware hướng cơ sở dữ liệu cung cấp khả năng tương tác với
các cơ sở dữ liệu, các kho dữ liệu và các tệp dữ liệu. Trong các
ứng dụng ba tầng, middleware hướng cơ sở dữ liệu thường được
dùng để kết nối tầng nghiệp vụ với tầng dữ liệu.
- Middleware hướng thông điệp MOM (Message-Oriented
Middleware): là phần mềm lưu trú trong cả hai phần khách và chủ
trong kiến trúc khách/chủ và sử dụng cơ chế truyền thông điệp.
- Middleware hướng đối tượng (Object-Oriented Middleware): hỗ
trợ việc yêu cầu các đối tượng phân tán. Truyền thông giữa các
đối tượng có thể là đồng bộ, hoặc không đồng bộ.
- Middleware dựa trên các thành phần (component-based): Mỗi
thành phần là một chương trình thực hiện một chức năng nhất
định và được thiết kế để dễ dàng thực hiện với các thành phần
khác và với các ứng dụng. Middleware dựa trên các thành phần
(Component-Base Middleware) là một cấu hình các thành phần.
Các thành phần này được lựa chọn cả lúc dịch cũng như lúc chạy.
Luận văn tốt nghiệp cao học
7 - Các thành phần trên tầng nghiệp vụ chạy trên máy chủ J2EE.
Phần mềm của tầng hệ thống thông tin doanh nghiệp (Enterprise
Information System tier, EIS-tier) chạy trên các máy chủ EIS.
2.1. Các công nghệ nền tảng của J2EE
Các công nghệ nền tảng của J2EE hỗ trợ rất tốt việc phát triển các ứng
dụng đa tầng. Những công nghệ này được chia làm ba loại: các thành
phần (component), dịch vụ (service) và truyền thông.
2.2. Tầng khách - Client Tier
Các máy khách J2EE có thể chạy trên nhiều nền tảng phần cứng khác
nhau như máy tính xách tay, máy tính để bàn, máy tính cầm tay
(palm) và điện thoại di động. Chúng có thể được kết nối ngay trong
mạng cục bộ hoặc qua Internet. Trong quá trình thiết kế một kiểu giao
diện nào đó mà ta đã chọn, người thiết kế cần chú ý đến các vấn đề về
mạng, bảo mật, nền tảng phần cứng.
Xét về khía cạnh mạng truyền thông: Các kết nối từ các trình khách
J2EE tới các tầng ứng dụng trên máy chủ J2EE rất đa dạng. Sự đa
dạng thể hiện ở kiểu kết nối (qua mạng LAN, quay số hoặc mạng
không dây) và thời gian kết nối. Kiểu kết nối và thời gian kết nối với
máy chủ J2EE ảnh hưởng lớn tới thiết kế các trình khách J2EE, nên
khi thiết kế chúng ta cần chú ý đến thực tế của mạng truyền thông.
Xét về khía cạnh bảo mật: Các kiểu mạng truyền thông khác nhau có
các yêu cầu về bảo mật thông tin khác nhau, nó là sự ràng buộc khi
máy khách kết nối với ứng dụng máy chủ.
Luận văn tốt nghiệp cao học
9

duyệt Web và nhiều thiết bị di động hỗ trợ các trình duyệt dạng nhỏ.
Luận văn tốt nghiệp cao học
10

Tuy nhiên khi thiết kế các trình khách sử dụng trình duyệt cần phải
chú ý các vấn đề sau:
Hiển thị giao diện người sử dụng: Các trình khách sử dụng trình
duyệt tải các tài liệu từ máy chủ. Nội dung các tài liệu này thường
được sinh ra một cách động thông qua JSP (Java Sever Page) hoặc
Java Servlet. Nội dung các trang tài liệu phụ thuộc hoàn toàn vào máy
chủ nên mỗi khi cần thay đổi giao diện, trình khách lại phải tạo kết nối
với máy chủ, việc này có thể gây ra những tiềm ẩn về mạng.
Kiểm tra việc nhập liệu: Trong môi trường đa lớp, việc bắt các lỗi
nhập liệu càng sớm càng tốt, làm được điều này người sử dụng không
phải truyền dữ liệu lên máy chủ nhiều lần, vừa tiết kiệm đường truyền,
vừa giảm thiểu sự khó chịu từ phía người dùng.
Truyền thông với máy chủ: Các trình khách sử dụng trình duyệt kết
nối với ứng dụng máy chủ J2EE thông qua Web, nên chúng sử dụng
giao thức HTTP để truyền nhận dữ liệu.
Quản lý trạng thái giao tiếp: Giao thức HTTP là một giao thức dạng
hỏi-đáp (request-response), nên mỗi yêu cầu đều đóng vai trò độc lập.
Vì vậy, một ứng dụng dạng Web cần xác định được một trình khách
nhất định cũng như các trạng thái mà ứng dụng đã trao đổi với trình
khách đó.

- Quản lý sự tương tác giữa các trình khách Web với tầng ứng dụng
nghiệp vụ
- Sinh các trang Web mang tính động (có nội dụng thay đổi theo
yêu cầu) theo nhiều định dạng khác nhau như: HTML, ảnh, âm
thanh, và video
- Dịch các hành động PUT và GET của giao thức HTTP thành các
lệnh mà tầng nghiệp vụ có thể hiểu được
Luận văn tốt nghiệp cao học
12

- Điều khiển luồng các màn hình. Màn hình (trang) nào được hiện
lên tiếp theo thường là do tầng Web quyết định.
- Bảo trì các trạng thái của một phiên làm việc người dùng
- Có thể thực hiện việc xử lý lôgic nghiệp vụ. Những ứng dụng nhỏ
với những giao dịch đơn giản, có thể xây dựng việc xử lý lôgic
nghiệp vụ trên tầng Web.
Một ứng dụng Web là một tập hợp các thành phần của tầng Web, nội
dung và thông tin cấu hình. Môi trường hỗ trợ để chạy một ứng dụng
Web được gọi là một trình chứa (container) Web. Trình chứa có trách
nhiệm quản lý các vòng đời của mỗi thành phần, gửi các yêu cầu dịch
vụ tới các thành phần ứng dụng và cung cấp các thông tin về trạng thái
của phiên làm việc cũng như thông tin về yêu cầu (request) hiện thời.
Một ứng dụng trong tầng Web gồm các thành phần web (web
component). Trong đặc tả J2EE có hai công nghệ tạo thành các thành

Trong một ứng dụng đa tầng J2EE, tầng EJB (Enterprise Java Bean) là
ứng dụng trên máy chủ xử lý các lôgíc nghiệp vụ, và cung cấp các
dịch vụ mức hệ thống như quản lý giao dịch, quản lý truy nhập đồng
thời, và bảo mật. Công nghệ EJB cung cấp một mô hình thành phần
phân tán (distributed component), cho phép người phát triển tập trung
vào xử lý các yêu cầu nghiệp vụ. Việc xử lý các vấn đề về hệ thống
phức tạp khác được giao phó cho nền tảng J2EE. Sự phân tách này
làm cho các ứng dụng lớn được phát triển nhanh hơn và có tính bảo
mật cao. Trong mô hình lập trình J2EE, các thành phần EJB là một
thành phần cơ bản để liên kết giữa các thành phần của tầng Web với
tầng dữ liệu.
Các enterprise bean là các thành phần của J2EE thực thi công nghệ
EJB. Mỗi enterprise bean được viết bằng ngôn ngữ Java, và là một
Luận văn tốt nghiệp cao học
14

thành phần chạy trên máy chủ, bao gói lôgíc nghiệp vụ của một ứng
dụng. Các lôgíc nghiệp vụ được lập trình để hoàn chỉnh mục đích của
ứng dụng. Các enterprise bean chạy trên trình chứa (container) EJB.
Trình chứa EJB cung cấp các dịch vụ ở mức hệ thống như quản lý các
giao dịch tới các enterprise bean và vấn đề bảo mật. Nhờ có trình chứa
xử lý các vấn đề ở mức thấp hơn của hệ thống, các nhà phát triển ứng
dụng chỉ quan tâm tới việc xử lý các yêu cầu nghiệp vụ. Nhờ đó, EJB
làm đơn giản hóa việc phát triển các ứng dụng lớn, phân tán. Các

Bean hướng thông điệp là bean cho phép các ứng dụng J2EE nhận
thông điệp JMS một cách không đồng bộ.
2.4.4. Giao diện truy cập enterprise bean
Giao diện (interface) để trình khách có thể truy cập các enterprise
bean, chỉ áp dụng cho bean thực thể và bean phiên. Giao diện của
enterprise bean được thiết kế tốt sẽ làm đơn giản hơn việc phát triển
và bảo trì các ứng dụng J2EE. Các giao diện không những che đi các
xử lý phức tạp bên trong các enterprise bean mà còn giúp cho các
bean có thể thay đổi các xử lý bên trong nó mà không ảnh hưởng tới
các trình khách.
2.5. Tầng dữ liệu
Tầng dữ liệu là tầng thấp nhất trong một ứng dụng đa tầng, bao gồm
một vài kiểu lưu trữ khác nhau. Cơ sở dữ liệu phổ biến nhất trong tầng
dữ liệu của ứng dụng J2EE là cơ sở dữ liệu quan hệ. Kết nối giữa tầng
lôgic nghiệp vụ với tầng dữ liệu bằng một trong hai cách sau: sử dụng
JDBC hoặc sử dụng các bộ kết nối (connectors).
Luận văn tốt nghiệp cao học
16

PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG BÁN
HÀNG QUA MẠNG DỰA TRÊN KIẾN TRÚC ĐA
TẦNG J2EE

Mục đích của chương này là phân tích thiết kế kiến trúc của ứng dụng

hiện một cách thủ công, chẳng hạn như khâu vận chuyển hàng.
Khách hàng lựa chọn các mục từ danh sách các mặt hàng và đặt chúng
trong một cái “giỏ” mua hàng (shopping cart). Khi quyết định mua,
khách phải trả cho các mặt hàng có trong giỏ. Trước khi một đơn hàng
được hoàn thành, toàn bộ nội dung của đơn hàng được liệt kê ra cho
khách hàng xem như: các mục đã chọn, số lượng và giá thành của mỗi
mục đó, và tổng số tiền. Khách hàng có thể duyệt lại hoặc sửa lại đơn
hàng. Để hoàn thành việc mua hàng, khách hàng phải cung cấp địa chỉ
nhận hàng và số thẻ tín dụng.
3.2. Lựa chọn các tầng ứng dụng
Một bước thiết kế quan trọng là quyết định các tầng mà ứng dụng sẽ
dùng. Nền tảng J2EE được thiết kế cho các ứng dụng đa tầng và nó
cung cấp khả năng phân tán các chức năng hệ thống trên các tầng một
cách khá mềm dẻo.
Việc quyết định thành phần của tầng Web có truy cập trực tiếp đến
tầng dữ liệu hoặc thông qua tầng EJB, cũng rất quan trọng. Quyết định
này phụ thuộc vào chức năng của ứng dụng, độ phức tạp và yêu cầu về
khả năng đáp ứng số lượng các yêu cầu tăng một cách đột biến. Tầng
EJB có ưu điểm là xử lý việc bảo mật một cách tự động, xử lý phân
tán,… Sử dụng các thành phần của EJB, người phát triển có thể giảm
bớt việc viết mã chương trình ở mức hệ thống, mà chỉ chú tâm vào
việc xử lý các yêu cầu nghiệp vụ của ứng dụng.
Luận văn tốt nghiệp cao học
18 Hệ thống ứng dụng bán hàng qua mạng được phát triển trên nền tảng
J2EE và được chia thành ba ứng dụng con: Website ứng dụng, trung
tâm xử lý đơn hàng, ứng dụng của các nhà phân phối sản phẩm. Trong
đó Website ứng dụng là thành phần cốt lõi của cả ứng dụng, nên luận
văn chỉ tập trung vào kiến trúc của Website ứng dụng. Dựa trên nền
tảng J2EE, Webite ứng dụng được phân tầng như sau:
3.4. Các môđun của website ứng dụng
 Môđun Xem hàng (Catalog): Môđun này dùng để hiển thị các loại
hàng hóa cho khách hàng chọn.
 Môđun Mua hàng (ShoppingCart): đánh dấu các mục hàng mà
một người dùng đã chọn để mua.
 Môđun Đăng nhập (Signon) và Đăng ký khách hàng: Cho phép
người dùng đăng nhập vào hệ thống hoặc đăng ký một khách hàng
mới.
 Môđun Khách hàng: đánh dấu các thông tin về các khách hàng,
liên kết những khách hàng này với thông tin người sử dụng để
đăng nhập hệ thống.
TÇng Web
Servlet
JSP
TÇng EJB
EJB
TÇng d÷ liÖuTÇng kh¸ch
Tr×nh
duyÖt
DBKẾT LUẬN

Kiến trúc phần mềm hai tầng khách/chủ tuy được sử dụng rộng rãi
trong nhiều năm qua nhưng vẫn có những hạn chế và không thích hợp
với các ứng dụng cỡ lớn. Kiến trúc phần mềm này chỉ thích hợp cho
các ứng dụng nhỏ, chạy trên mạng cục bộ của công ty. Ngày nay hoạt
động của các công ty không gói gọn trong một phạm vi địa lý hẹp, mà
được phân tán trên nhiều vị trí địa lý khác nhau. Hơn nữa, việc quản lý
các hệ ứng dụng phần mềm không chỉ giới hạn trong nội bộ công ty,
mà các ứng dụng phần mềm đó còn phải có khả năng kết hợp với các
hệ thông thông tin của đối tác cũng như bạn hàng.
Kiến trúc phần mềm ba tầng hoặc đa tầng đang từng bước tỏ ra là kiến
trúc thích hợp với các ứng dụng phần mềm trong điều kiện hiện nay.
Việc sinh ra một tầng mới, tầng nghiệp vụ, làm cho các ứng dụng trở
nên mềm dẻo hơn, dễ bảo trì hơn. Khi yêu cầu nghiệp vụ thay đổi, ta
chỉ cần thay đổi chương trình trên tầng nghiệp vụ, thường được chạy
trên một vài máy chủ thay vì phải thay đổi cả các trình khách như đối
kiến trúc phần mềm hai tầng truyền thống. Hơn nữa, việc tập trung lõi
của hệ thống trên tầng nghiệp vụ làm cho các thao tác khác như bảo
mật, quản trị cũng được thực hiện một cách tập trung và thống nhất
hơn.
Trong những năm gần đây có hai đặc tả kiến trúc phần mềm đa tầng
đáng quan tâm là .NET của Microsoft và J2EE của Sun Microsystem.
Trong đó, đặc tả J2EE được giới phát triển phần mềm trên toàn thế
Luận văn tốt nghiệp cao học
22

đa tầng, chẳng hạn công nghệ CORBA, .NET.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status