1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

26 576 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 0,97 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ạm vi địa lý hẹp.. Luận văn "Phát triển các hệ thống phân tán dựa trên kiến trúc phần mề

Trang 2

Mở đầu

Chương 1 Giới thiệu về kiến trúc phần mềm ba tầng

1.1 Lịch sử phát triển của kiến trúc phần mềm ba tầng

1.3.2 Middleware hướng cơ sở dữ liệu

1.3.3 Middleware hướng thông điệp

1.3.4 Middleware hướng đối tượng

1.3.5 Middleware dựa trên các thành phần n

Chương 2 Kiến trúc phần mềm đa tầng của J2ee

2.1 Các công nghệ nền tảng của J2EE

Trang 3

2.3.2 Java Server Page (JSP)

2.4 Tầng EJB

2.4.1 Bean phiên

2.4.2 Bean thực thể

2.4.3 Bean hướng thông điệp

2.4.4 Giao diện truy cập enterprise bean

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ộ

66 Kết luận

Tài liệu tham khảo

Trang 4

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 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ạm vi địa lý hẹp Để khắc phục những nhược điểm của kiến trúc hai tầng, kiến trúc phần mềm ba tầng ra đờ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ụ Tuy ra đời từ những năm 1990, nhưng mãi đến vài năm gần đây kiến trúc phần mềm này mới được giới phát triển phần mềm chú ý nhiều, được đánh 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 văn "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" với mục đích 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 này cũng như 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ận văn đượ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

Trang 5

chương còn đánh giá phân tích giữ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ận văn nghiên cứ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ậ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 đó

Trang 6

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

1.1 Lịch sử phát triển của kiến trúc phần mềm ba tầng

Trước khi có kiến trúc phần mềm ba tầng các ứng dụng phần mềm đã qua các kiến trúc mainframe, kiến trúc chia sẻ tệp, kiến trúc phần mềm hai tầng Kiến trúc phần mềm ba tầng được phát triển từ kiến trúc phần mềm hai tầng bằng cách tách phần xử lý nghiệp vụ ra một tầng mới, tầng nghiệp vụ

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

Kiến trúc phần mềm ba tầng có những điểm khác biệt như sau so với kiến trúc phần mềm hai tầng:

Quy mô hệ thống: Các kiến trúc hai tầng chỉ thích hợp với những ứng

dụng vừa và nhỏ khi mà số lượng người dùng không vượt qúa con số

100, và thường được sử dụng trong một mạng cục bộ Ngược lại, kiến trúc ba tầng có thể đáp ứng một lượng người dùng lớn hơn, và hỗ trợ nhiều kiểu kết nối hơn, phạm vi hoạt đông rộng hơn

Trang 7

Quản trị hệ thống: Việc quản trị hệ thống trong các ứng dụng hai

tầng phải thực hiện phân tán trên cả máy khách và máy chủ, vì lôgíc nghiệp vụ nằm trên máy khách là chủ yếu Với kiến trúc ba tầng, lôgíc nghiệp vụ tập trung ở tầng nghiệp vụ được cài đặt trên một máy hoặc vài máy chủ, làm cho việc quản trị được tập trung hơn nên cũng dễ 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

Trang 8

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 chia tải bằng cách tăng số lượng máy chủ ở tầng nghiệp vụ

Cơ sở dữ liệu hỗn tạp: Các ứng dụng hai tầng rất khó khăn trong việc

hỗ trợ nhiều kiểu cơ sở dữ liệu khác nhau Trong khi đó hệ thống ba tầng cho phép thao tác với nhiều cơ sở dữ liệu khác nhau trong cùng một giao dịch Thậm chí tầng nghiệp vụ còn có khả năng làm việc với nhiều nguồn dữ liệu khác nhau như hệ thống các tệp dữ liệu cũng như việc truy cập các hệ thống máy chủ mainframe

Các hình thức truyền thông: Các ứng dụng hai tầng sử dụng phương

thức truyền thông đồng bộ, chủ yếu là gọi thủ tục từ xa RPC Đối với các ứng dụng ba tầng thì các hình thức truyền thông rất phong phú như: Gọi thủ tục từ xa RPC, gọi phương thức từ xa RMI, cơ chế truyền thông điệp,…

Chi phí phát triển: Các ứng dụng hai tầng được phát triển rất nhanh

vì có thể sử dụng rất nhiều ngôn ngữ lập trình trực quan Còn việc phát triển ứng dụng ba tầng đòi hỏi nhiều công sức hơn vì tầng nhiệp

vụ thường được xây dựng bằng những ngôn ngữ lập trình không trực quan như ngôn ngữ lập trình C

1.3 Phần mềm kết nối giữa các tầng - Middleware

Middleware là phần mềm kết nối, bao gồm một tập hợp các dịch vụ cho phép nhiều tiến trình chạy trên một hoặc nhiều máy tính có thể tương tác với nhau thông qua mạng máy tính Middleware là công nghệ quan trọng trong việc phát triển ứng dụng theo kiến trúc ba tầng

Trang 9

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

Trang 10

KIẾN TRÚC PHẦN MỀM ĐA TẦNG CỦA J2EE

Ngày nay, nhiều nhà phát triển phần mềm muốn phát triển các ứng dụng phân tán, đảm bảo về mặt tốc độ, có tính bảo mật và độ tin cậy cao dựa trên công nghệ phía máy chủ (server-side) Cùng với sự phát triển nhanh của thương mại điện tử, công nghệ thông tin, với cùng một lượng tài nguyên như trước đây, các ứng dụng cho doanh nghiệp được thiết kế và xây dựng với chi phí thấp hơn, tốc độ nhanh hơn Để đáp ứng yêu cầu đó của các nhà phát triển phần mềm, hãng phần mềm Sun Microsystem đã đưa ra đặc tả J2EE (Java 2 Plaform, Enterprise Edition) J2EE cung cấp một cách tiếp cận dựa trên các thành phần (component-based) để thiết kế, xây dựng và triển khai một ứng dụng cho doanh nghiệp J2EE cung cấp một mô hình ứng dụng phân tán đa tầng, khả năng sử dụng lại các thành phần, một mô hình bảo mật thống nhất, kiểm soát các giao dịch một cách mềm giẻo, và hỗ trợ các dịch vụ Web

Trong kiến trúc phần mềm đa tầng của J2EE, một ứng dụng lôgíc được chia thành các thành phần tùy theo chức năng, và các thành phần ứng dụng khác nhau Điều này làm cho ứng dụng J2EE được cài đặt trên nhiều máy tính khác nhau tùy thuộc vào các thành phần trong mỗi tầng của môi trường đa tầng Các thành phần trong các ứng dụng đa tầng J2EE bao gồm:

- Các thành phần trên tầng khách (client-tier), chạy trên máy tính khách

- Các thành phần trên tầng Web (Web-tier) chạy trên máy chủ J2EE

Trang 11

- 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ủ

Trang 12

Xét về khía cạnh nền tảng (platform) của máy khách: Nền tảng

của các máy khách có ảnh hưởng lớn đến thiết kế ứng dụng

Nền tảng J2EE khuyến khích việc dùng kiến trúc thin-client (một phần rất nhỏ của ứng dụng nằm trên máy khách), nhưng điều đó không có nghĩa là trình khách J2EE là một trương trình “câm” Một trình khách J2EE có những nhiệm vụ sau:

- Hiển thị giao diện người sử dụng

- Kiểm tra việc nhập liệu

- Giao tiếp với máy chủ

- Quản lý các trạng thái giao tiếp

Trong kiến trúc J2EE có thể tồn tại hai loại trình khách: trình khách dạng trình duyệt và trình khách dạng chương trình Java

2.2.1 Thiết kế các trình khách sử dụng trình duyệt

Các trình duyệt là các trình khách nhỏ gọn nhất Chúng hiển thị dữ liệu và dựa trên các chức năng được đặt trên máy chủ Xét trên khía cạnh triển khai, thì các trình khách sử dụng trình duyệt (browser clients) là rất hấp dẫn Thứ nhất, chúng giảm thiểu sự cập nhật Mỗi khi có yêu cầu thay đổi về nghiệp vụ, ta chỉ cần thay đổi chương trình trên máy chủ mà không phải thay đổi chương trình trên các máy khách Việc này đặc biệt có ý nghĩa khi số lượng máy khách lớn và phân tán trên nhiều vị trí địa lý khác nhau Thứ hai là các trình duyệt

có mặt ở khắp nơi, hầu như tất cả các máy tính cá nhân đều có trình duyệt Web và nhiều thiết bị di động hỗ trợ các trình duyệt dạng nhỏ

Trang 13

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 đó

2.2.2 Thiết kế trình khách Java

Các trình khách Java được chia làm ba loại sau: Trình khách ứng dụng, applet, và MIDlets Khi thiết kế các trình khách Java cần xét các vấn đề sau:

Trang 14

Hiển thị giao diện người sử dụng: Xây dựng giao diện cho trình

khách Java thường vất vả hơn việc xây dựng giao diện cho trình khách

sử dụng trình duyệt Tuy nhiên, nó lại có khả năng cung cấp giao diện thân thiện hơn và tiết kiệm đường truyền hơn trình khách sử dụng trình duyệt

Kiểm tra việc nhập liệu: Đối với các trình khách sử dụng trình duyệt,

người phát triển phải cân nhắc giữa việc tiết kiệm đường truyền và kiểm tra nhập liệu được tốt Ngược lại, các trình khách Java có thể thực hiện tốt cả hai tiêu chí đó vì nó không phải tải phần kiểm tra tính lôgic của dữ liệu từ máy chủ

Giao tiếp với máy chủ: Các trình khách Java có thể kết nối với máy

chủ thông qua: HTTP, RMI-IIOP, hoặc JDBC

2.3 Tầng Web

Tầng Web có nhiệm vụ tiếp nhận các yêu cầu từ các trình khách sử dụng trình duyệt, tương tác với tầng xử lý nghiệp vụ, rồi trả nội dung các trang web về cho trình khách dưới dạng HTML hoặc XML Trong ứng dụng J2EE, tầng Web có những nhiệm vụ sau:

- 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

Ngày đăng: 29/07/2014, 01:36

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w