1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Một số khía cạnh lý thuyết và thực tiễn trong xử lý phân tán

110 29 0

Đ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 110
Dung lượng 24,05 MB

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

Nội dung

Tran É,' 6BẢNG CÁC THUẬT NGỮ VIẾT TẮT Interface G iao diện lập trình ứng dụng BO A Basic Object Adapter Thành phần thích nghi đối tượng cơ bản CO M Component Object Model M ô hình đối t

Trang 1

TRƯỜNG ĐẠI HỌC QUỐC GIA HÀ NỘI

LUẬN VĂN TI ÍẠC SỸ KHOA HỌC

Người hướng dán kỉioiì học: PGS.TSKH Nguyền Xuân Huy

H à N ộ i, n ă m 2 0 0 1

Trang 2

Trang /

M Ự C L Ụ C

MỞ Đ Ầ U 4

BẢNG C Á C TH U Ậ T N G Ữ V IÊ T T Ắ T 6

CHUƠNG 1 T Ổ N G Q U A N V Ề H Ệ T H ố N G PH Â N T Á N 8

1.1 Khái niệm về hộ thống phân tá n 8

1.2 M ô hình xử lý phân tán m ở 9

1.3 C ác đặc trưng của hệ phân tá n 10

1.3.1 Chia sẻ tài nguyên 10

1.3.2 Tính m ở (O p en ess) 11

1.3.3 Tính tương tranh (C on cu rren cy ) 12

1.3.4 Tính chịu lỗi (Fault to leran ce) 15

1.3.5 Tính trong suốt (T ran sp aren cy) 17

1.3.6 K hả năng thay đổi quy m ô (S a c la b ility ) 18

1.4 C ác m ục tiêu khi thiết kế m ột hộ thống phân tá n 18

1.5 C ác m ô hình hệ thống phân tá n 2 0 1.5.1 Phân loại mức xử lý phân tán 2 0 1.5.1.1 M ô hình truyền tập tin 20

1 5 1 2 M ô hình Client/Server 20

1 5.1.3 M ô hình ngang h àn g 2 4 1.5.2 Một số m ô hình thiết k ế hệ thống phân tá n 2 4 1.5.2.1 C ác đối tượng phân tá n 24

1.5.2.1 Phần mểm trung g ian 2 6 1 5 2 2 Phương pháp gọi thủ tục từ x a 27

1.5.2.3 Kiến true D COM , CO R B A 28

1.6 uũ nhược điểm của hệ thống phân tán 28

1.6.1 Ưii đ iểm 28

1.6.2 Nhược điểm 28

CHƯƠNG 2 M Ộ T SỐ MÔI TRƯỜNG ÚNG D ỤNG X Â Y DỤNG H Ệ THỐNG PH ÂN T Á N 29

2.1 Giới th iệ u 29

2.2 M ô hinli đối tượng thành phần phân tán (D C O M ) 29

2.2.1 Giới th iệu 29

2 2 2 M ô hình đối tượng thành phần (C O M ) 30

2.2 3 M ô hình đối tượng thành phần phân tán (D C O M ) 31

2 2 3 1 K h ái niệm về D C O M ! 31

2 2 3 2 C ác đặc trưng cơ bản của D C O M 32

2 2 4 Kiến trúc DCOM .33

2 2 4 1 Định vị cá c đối tượng 34

2 2 4 2 Đ óng gói các đối tượng và c á c tham s ô 35

2 2 4 3 Quản lý liên k ế t 37

Luận văn tết niịhiỘỊ) cao học

Dể tài: Một sở khiu cạnh / v thuyết và thực tiễn trong xử Ị ỷ phân tán

Trang 3

TraiĩíỊ 2

2 2 4 4 Quản lý tương tranh và các mô hình phân luồng 38

2 2 4 5 Bảo m ật 4 0 2.2 5 Một số nhận xét về D CO M 41

2.2.5.1 Các điểm thuận lợi 41

2 2 5 2 Các điểm không thuận lợi 41

2.3 Kiến trúc môi giới yêu cầu đối tượng chung (C O R B A ) 42

2.3.1 C ác thành phần cơ bản của C O R B A 42

2.3.1.1 Kiến truc C O R B A 44

2 3 1 2 C O RBA client và C O RBA server 62

2 3 1 3 Stub và Skeleton 63

2 3 1 4 CO RBA Services và C O RBA Facilities 63

2 3 1 5 Giao diện lời gọi động (D II) 63

2 3 1 6 Giao diện skeleton động (D S I) 64

2.3.2 Các dịch vụ CO RBA 64

2.3.2.1 Dịch vụ đặt tên 65

23 2.2 Dịch vụ sự k iện 68

2 3 2 3 Dịch vụ duy trì bền vữ n g 70

2 3 2 4 Dịch vụ về chu kỳ sống của đối tượng 71

2 3 2 5 Dịch vụ điều khiển tương tran h 73

2 3 2 6 Dịch vụ thể hiện đối tư ợn g 7 4 23.2.1 Dịch vụ quan hệ của đối tượng 74

2 3 2 8 Dịch vụ quản lý giao d ịch 75

2 3 2 9 D ịch vụ truy v ấ n 75

2 3 2 1 0 Dịch vụ cấp p h ép 75

2.3.2.11 Dịch vụ về quyền sở h ữ u 75

2 3 2 1 2 Dịch vụ thời g ia n 76

2 3 2 1 3 Dịch vụ bảo m ật 76

2 3 2 1 4 Dịch vụ giới thiệu đối tượng 76

2 3 2 1 5 DỈch vụ tạp hợp 76

2 3 3 C ác đặc điểm của C O R B A 77

2 3.3.1 Các điểm thuận lợ i 77

2 3 3 2 Các điểm không thuận lợi 78

2.3 4 So sánh giữa DCOM và C O R B A 78

2 3 4 1 G iốn g n h a u 78

2 3 4 2 Khác nhau 79

2 3 4 3 Nguyên tắc ánh xạ CO RBA sang C O M 79

2.3.5 Kiến trúc C O RBA và các yêu cầu phần mềm trung g ian 79

2.3.5.1 Định nghĩa giao d iệ n 79

23.5.2 X á c định địa chỉ đối tượng phục v ụ 80

2 3 5 3 Gọi đối tượng phục v ụ 80

2 3 6 C ác ứng dụng C O R B A 80

2.3.6.1 Chương trình Server 80

Luận văn tốt Hi>hiệp cao học

Đè tài: Một so khiu cạ/ilì /Ý thuyết và thực tien iron % AiílÝ phản tán

Trang 4

Tranq 3

2 3 6 2 Chương trình Client 81

2 4 Kết luận 81

CH UƠ N G 3 CÔ N G c ụ PH Á T T R IẺ N C O R B A t r o n g c á c h ệ T H ố N G X Ử L Ý PH ÂN TÁ N .83

3.1 Giới thiệu một số công cụ phát triển C O R B A 83

3.1.1 V isiBroker 83

3 1 2 O rb ix 84

3 1 3 O rbit 8 5 3 1 4 E O R B 85

3 1 5 Oracle Application Server (O A S) 85

3 1 6 O racle JServer 85

3 2 Đánh giá một số công cụ phát triển C O R B A 87

3 2 1 Các tiêu chuẩn đánh giá công cụ phát triển C O R B A 88

3.2.1.1 Đánh giá về môi trường O R B 88

3 2 1 2 Đánh giá về các dịch vụ đối tư ợn g 91

3 2 1 3 Các tiêu chí đánh giá k h ác 91

3 2 2 Kết quả đánh giá một số công cụ phát triển 92

3.2.2.1 Đánh giá về môi trường O R B 92

3 2 3 Kết luận 97

3.3 Tiêu chuẩn lựa chọn công cụ C O R B A 97

CH ƯƠN G 4 H Ệ TH Ố N G T H Ử N G H IỆ M ÚNG D Ụ N G K IÊ N T R Ú C C O R B A * 99

4.1 Lựa chọn và mô tả bài toán 9 9 4 1 1 Đặt vấn đ ề 99

4 1 2 M ô tả bài toán 100

4 2 M ột số phương án thiết k ế 101

4 2 1 Dùng cơ ch ế trao đổi thông qua cơ sở dữ liệu 101

4 2 2 Sử dụng kiến trúc C o rb a 102

4.2 2 1 M ô hình hệ thống 102

4 2.2.1 Thực hiện hệ thống thử n g h iệm 104

4.3 Nhận xét chung về kết quả áp dụng thực tiễn 106

K ẾT L U Ậ N 108

T À I L IỆ U TH A M K H Ả O ] 10

Luận V'án tốt nghiệp cao học

Dè tài Một số khiu cạnh lý thuyết và thực tiễn tron ÍỊ xử lý phản tán

Trang 5

Tran É,' 6

BẢNG CÁC THUẬT NGỮ VIẾT TẮT

Interface

G iao diện lập trình ứng dụng

BO A Basic Object Adapter Thành phần thích nghi đối tượng

cơ bản

CO M Component Object Model M ô hình đối tượng thành phần

C O R B A Com m on O bject Request

Broker Architecture

Kiến trúc môi trường yêu cầu đối

tượng chungDCOM Distributed Component Object

M odel

M ô hình đối tượng thành phần phân tán

Environm ent

M ô i trường tính toán phân tán

DII Dynamic Invovation Interface G iao diện gọi động

DSI Dynamic Skeleton Interface G iao diện gọi Skeleton động

ID L In terface D efin itio n L an gu ag e Ngôn ngữ định nghĩa giao diện

ĩ PC InterProcess Communication Truyền thông liên tiến trình

A rchitecture

Kiến trúc quản lý đối tượng

O M G O bject M anagem ent Group Tên gọi của tổ chức đưa ra các

tiêu chuẩn về quản lý đối tượng

O R B O b ject Request Broker M ôi trường yêu cầu đối tượngPOA Portable O bject Adapter Thành phần thích nghi đối tượng

R P C R em ote Procedure Call Gọi thủ tục từ xa

S1I Static In terface Invocation Phương pháp gọi giao diện tĩnh

SN M P Sim ple Network M anagem ent

Protocol

G iao thức quản lý m ạng đơn giản

!1

Luận văn tốt tỉíịhiệp cao học

Đề tài: M ột sô' khí ít cạnh lý ìỉmyếr và thực tiền trong xử lý phún tủn

Trang 6

Trang 7

RM I Java Remote Method Gọi thao tác từ xa ứng dụng trong

Luận văn tôt nghiệp cao học

Đ ề tủi: Một sổ khiu cạnh lý thuyết và thực tiên trotìịị xử lý phún tán

Trang 7

Trang 4

MỞ ĐẦU

Trong những năm gần đây, cùng với sự phát triển của nền kinh tế xã hội, nhu cầu thông tin trên diện rộng ngày càng được áp dụng rộng rãi Để đáp ứng được ycu cầu đó, nhiều tổ chức và quốc gia trên thế giới đã đầu tư nghiên cứu các hệ thống xử lý phân tán, và đã đạt được những thành tựu đáng kể.

Tại Việt Nam, các hệ thống xử lý phân tán đã và đang được áp dụng trong rất nhiều lĩnh vực như: tài chính, ngân hàng, hàng không, đường sắt, bưu chính viễn thông, v.v M ặc dù Việt nam còn là m ột nước nghèo, và công nghệ thông tin là lĩnh vực còn non trẻ, nhưng các hệ thống xử lý phân tán được áp dụng đã phát huy được những hiệu quả nhất định Đầu tiên có thể kể đến các

hệ thống độc lộp, được viết trên các ngôn ngữ, công cụ không hỗ trợ mạng, làm việc bán tự động qua truy cập modem cho đến cá c hệ thống có quy mô lớn, sử dụng các cơ sở dữ liệu phân tán, đường truyền tốc độ cao, và điều khiển xử lý phân tán nhờ các tác tử thông minh.

Tuy đã đạt được một số bước tiến đáng khích lệ, nhưng qua thực tế có thể thấy rằng việc áp dụng cá c công nghệ để thực hiện xử lý phân tán tại Việt Nam vẫn còn nhiều khía cạnh đáng nói Đơn cử như cùng trong lĩnh vực bưu chính viễn thông, các đơn vị trên cá c địa bàn khác nhau vẫn thường phải tương tác với nhau để có thể cung cấp các địch vụ phục vụ khách hàng, nhưng các đơn vị này lại độc lộp với nhau về mặt hành chính, nôn các hệ thống phục vụ tại đơn

vị nào thường do đơn vị đó tự đảm nhiệm C ác chỉ đạo, hoặc đầu tư nhằm đổng bộ hoá hộ thống từ các cấp quản lý phía trên thường khó thực hiện do vướng m ắc thủ tục và kinh phí Vì vậy, nội dung của luận văn đề tài này đề cập đến một số khía cạnh lý thuyết và thực tiễn trong xử lý phân tán với mục đích tìm hiểu các vấn đề còn vướng m ắc, các công nghệ có nhiều ưu điểm để khuyến nghị áp dụng Đề tài cũng tiến hành thử nghiệm một hệ thống xử lý phân tán áp dụng các khuyến nghị đã nêu như một hệ thống có thể áp dụng để xây dựng hệ thống thực tế.

Nội dung trong luận văn được trình bày trong 4 chương với bố cục như sau:

- Chương l Tổn ạ quan: Giới thiệu một số khái niệm mang tính tổng quan về hệ thống phân tán như; khái niệm về hệ thống phân tán, mô hình phân tán mở, các đặc trưng của hệ thống phân tán, một số mục tiêu

khi thiết k ế hệ thống phân tán, m ột s ố m ô hình c á c hệ thống phân tán

đặc trưng về ưu nhược điểm cơ bản của hệ thống phân tán.

- Chương 2 M ộ t s ố m ô i t r ư ờ n ẹ ứ n g d ụ n g x â y d ự n g h ệ t h ố n g p h â n t á n :

G iới thiệu m ột sô rnô hình phân tán chín h đang dược quan tâm và cá c

Luận ván tốt nghiệp cao học

D ề tải: Một sỏ khiu cạnh IÝ thuxết và thực tien troniỊ \ử lý plìàn tán

Trang 8

Trang 5

môi trường xây dựng hệ thống phân tán ứng dụng các mô hình đó: môi trường kiến trúc DCOM và CO RBA Các kiến trúc này đểu dựa trên nguyên tắc của mô hình đối tượng Sau các trình bày về từng kiến trúc là

cá c đánh giá về ưu nhược điểm, các so sánh và đánh giá chung về DCOM và CO RBA

tán: Giới thiệu một số công cụ để phát triển hệ thống phân tán dựa trên kiến trúc Corba, so sánh, đánh giá và khuyến nghị sử dụng đối với các công cụ này.

thử nghiệm một hệ thống phân tán nhỏ dựa trên kiến trúc C O RBA và

m ột số nhận xét thực tế khi xầy dựng hệ thống phân tán sử dụng kiến trúc này.

Để thực hiện được luận văn này, em xin được gửi lời cảm ơn sâu sắc tới các

thầy cô g iá o K hoa công nghệ - Trường Đ ại học q u ốc gia H à nội, và đặc b iệt là

PGS.TSKH Nguyễn Xuân Huy đã giúp đỡ em rất tận tình Đồng thời, cũng xin được gửi lời cảm ơn tới các đồng nghiệp đã giúp đỡ rất nhiều trong quá trình thực hiện.

Luận văn tốt nạhiệp cao học

Đè tài: Một so khiu cạnh /ỷ thuyết và thực tien trong x ứ lỹ phàn tán

Trang 9

Trang H

CHƯƠNG 1 TỔNG QUAN VỂ HỆ THỐNG PHÂN TÁN

tính tổng quan về hệ thống phân tán như: khái niệm về hệ thống phân tán, mô hình phân tán mỏ, các đặc trưng của hệ thống phân tán, một s ố mục tiêu khi thiết k ế hệ thống phân tấn, đồng thời, nội dung của chương cũng đ ề cập đến một s ố mô hình các hệ thống phân tán đặc trưng Cuối chương s ẽ là một sô' ưu nhược điểm cơ bản của hệ thống phân tán.

1.1 Khái niệm về hệ thống phân tán

K hái niệm về hệ thống phân tán có thể hiểu theo nhiều mức độ khác nhau, đơn

giản nhất là việc trao đổi thông tin giữa các chương trình sử dụng cơ ch ế

đường ống, cho đến mức độ cao hơn là sự trao đổi thông tin giữa các chương trình trên m ạng Nhìn chung việc xây dựng các ứng dụng phân tán phức tạp hơn nhiểu so với các ứng đụng tập trung Trong nhiều trường hợp, việc bắt buộc phải xây dựng các ứng dụng phân tán thường vì những lý do sau:

- Y êu cầu tính toán phân tán : ứng dụng chạy trên nhiều máy tính khác

nhau nhằm tận dụng khả năng tính toán song song hoặc nhằm m ục đích

sử dụng khả năng tính toán của các máy tính chuyên dụng.

- Yêu cầu xử lý phân tán : úng dụng chạy trên nhiều máy tính khác nhau mới có để đáp ứng được yêu cầu bài toán bài toán Trong trường hợp

này, đối tượng được phục vụ, được giải quyết trong bài toán thường ở xa

đối tượng phục vụ, đối tượng giải quyết.

- Y êu cầu tính chính x á c và an toàn dữ liệu: Yêu cầu này liên quan tới

các hệ thống cần phải đảm bảo tính chính xác cao và an toàn dữ liệu lớn C ác hệ thống này thường được thiết k ế để có thể đáp ứng được yêu cầu tính toán ngay cả khi có sự cố xảy ra, điều này được thực hiện bằng cách tăng số lần tính toán cho cùng một nhiệm vụ, tăng số ứng đụng chạy dự phòng nhằm mục đích kịp thời phát hiện và xử lý lỗi

- C h ia sẻ tài nguyên: Các ứng dụng chạy trên mạng thực hiện trao đổi

thông tin với nhau Các ứng dụng này có thể chia sẻ tài nguyên của

mình cho các ứng dụng khác, hoặc sử dụng tài nguyên được chia sẻ với

một quyền hạn được định nghĩa M ột số ứng dụng phải chạy trên nhiều máy tính vì dữ liệu được đặt phân tán trôn mạng liên quan đến quyền

Luận văn tốt nghiệp cao học

Để tài: Một sỏ' khiu cạnh / v thuyết và thực tiễn trong xứ ì ỷ phân tán

Trang 10

Hiện nay có hai loại hẹ phân tán là:

- Hê điều hành phân tán

- Các hệ ihống thông tin phân tán: C ơ sở dữ liệu phân tán, các hệ tính toán phân tán, các ứng dụng phân tán, .

Trong các hệ thống phân tán, môi trường mạng đóng vai trò quan trọng trong việc phân phát thông tin đến các thành phần và tập hợp kết quả tính toán của các thành phần đó C ác máy tính kết nối với nhau trên mạng đảm nhiệm chức năng truyền thông cho các ứng dụng Do chúng không chia sẻ bộ nhớ cho nhau nên không thể sử dụng các biến toàn cục để trao đổi thông tin, thông tin trao đổi giữa các máy tính chỉ được thực hiện thông qua cơ chế trao đổi tin báo Mạng là tài nguyên chung của hệ thống do đó khi xây dựng hệ thống phân tán cần phải xem xét đến các vấn đề như: băng thông, các điểm có thể xảy ra sự cố, bảo mật và an toàn dữ liệu, đồng bộ tiến trình.

- Khônẹ tương thích giao diện liên kết: C ác nhóm phát triển hệ thống phân tán hoàn toàn có thể tự qui định giao diện liên kết giữa các hệ

thống với nhau, do đó có thể sẽ çâp khó khăn khi liên kết với hệ thống

phân tán do nhóm khác phát triển

- Khó tích hợp: C ác phần mềm thường được phát triển trên các hệ điểu hành khác nhau, các ngôn ngữ khác nhau, do nhiểu đơn vị độc lập phát triển, sử dụng cơ sở dữ liệu khác nhau Do vậy, để tích hợp được các

phần m ềm này thường đòi hỏi nhiều thời gian, nhận lực, và đôi khi, khả

năng tích hợp là không thề.

Luận văn tốt Hiịhiệp cao học

Dề tài: Mộ! sò klìia cạnh /ý thuyết và thực tiên tronq xử lý plián tán

Trang 11

- Tính rủi ro sản phẩm c a o : X â y dựng và triển khai c á c hệ thống phân

tán thường chịu nhiều rủi ro do không tuân thủ các chuẩn được khuyến nghị trước, hoặc bản thân các khuyên nghị không đổng nhất Vì vậy, giá thành phát triển cũng bị kéo theo Thời gian phát triển và khả năng bảo hành bảo trì thường lớn hơn các hệ thống độc lập

C ác tổ chức trên thế giới đang ngày càng chuẩn hoá dần cá c tiêu chuẩn để thiết kế và phát triển các hệ thống phân tán Với mục đích đó, hiện nay mô hình tham chiếu xử lý phân tán m ở đã được đưa ra với cá c điều kiện mà một

hệ xử lý phân tán cần tuân thủ:

- Đ ộc lập với thiết bị phần cứng: cung cấp giao diện vói các thiết bị phần cứng của các nhà cung cấp khác nhau trong việc sử dụng tài nguyên như bộ nhớ, ổ đĩa và bộ vi xử lý.

- Đ ộc ỉập với hệ điều hành: Đảm bảo khả năng làm việc trên các hệ điều hành khác nhau như U N IX , W indows NT, W indows 9 x , Linux, o s /2

- Đ ộc lập về ngôn ngữ cài đặt: Cung cấp khả năng giao tiếp với các ngôn ngữ phát triển ứng dụng phân tán như c + + , Java, Pascal, Cobol

Thực tế việc xây dựng khung cho các hệ thống phân tán vẫn dựa trên mô hình

7 lớp OSI, trong đó 3 lớp thấp (vật lý, liên kết dữ liệu, m ạng) giải quyết các vấn đề như phát hiện và sửa lỗi, định tuyến , những vấn đề này thường do hệ điều hành đảm nhiệm Ba lớp trên (lớp giao vận, phiên làm việc, trình diễn) đã được sử dụng trong các sản phẩm nền của hệ thống phân tán nhằm mục đích

xử lý cá c thủ tục kết nối giữa các thành phần phân tán và thể hiện cấu trúc dữ liệu phức tạp của các ứng dụng, các sản phẩm như vậy gọi là phần mềm trung gian X u thế hiện nay phần mềm trung gian được phát triển dựa trên khung kiến trúc m ở và tuân thủ các qui định của mô hình tham chiếu xử lý phân tán

m ở.

1.3 Các đặc trưng của hệ phân tán

ĩ 3.1 Chia sẻ tài nguyên

Trong một hộ phân tán luôn có sự chia sẻ tài nguyên C ác tài nguyên trong hệ phân tán gồm có: Phần cứng (các ổ đĩa, máy in, .), phần m ềm, và dữ liệu Trong một hệ máy tính, những người sử dụng tham gia trong hệ thống đều có thể chia sẻ tài nguyên của mình cho những người sử dụng khác Ngược lại, họ cũng có thể sử dụng các tài nguyên được người khác cho phép Tuy nhiên, các tài nguyên được chia sẻ này sẽ thường không tự động đạt được hiệu quả cao

nhất, dẫn đến sự lãng phí, và không đảm bảo được tính bảo an đối với việc sở

hữu tài nguyên.

Luận vãn tốt nghiệp cao học

Đ ề tời: Một s ố khiu cạnh lý thuyết vù thực tiền trong xứ lý phân tán

Trang 12

Trong một hệ thống phân tán, các tài nguyên dược đóng gói vật lý trong một (hoặc nhiều) máy tính và các máy khác chỉ có thể truy cập nhờ giao tiếp đã được phân định Đổ đạt được hiệu quả cao, việc chia sẻ tài nguyên phải được quán lý bởi hệ thống chương trình Chương trình này đưa ra một giao diện qua

đó tài nguyên được truy cập, sử dụng, cập nhật tính xác thực và tính tương thích.

Hiộn nay có hai mô hình quản lý tài nguyên:

a Mô hình khách chủ:

Gần đây, mô hình này thường được sử dụng nhiều trong các hệ phân tán M ô hình này gồm một tập các xử lý của server Mỗi xử lý này hoạt động như một chương trình quản lý tài nguyên C ác xử lý này định ra

cá c kiểu tài nguyên và cho phép các client lựa chọn để xử lý Trong mô hình client — server, tất cả các tài nguyên chia sẻ đều được giữ và quản

lý bởi các xử lý của server Khi client cần sử ciụng một tài nguyên chung nào đó, client sẽ gửi yêu cầu của mình tới server Server sẽ nhận yêu cầu và xét xem yêu cầu đó có phải được gửi đi từ client mình cần phục vụ không Sau đó, server sẽ phân tích nội dung của yêu cầu Nếu mức độ yêu cầu phù hợp với tài nguyên chia sẻ, server sẽ thực hiện việc chia sẻ tài nguyên của mình cho client Ngược lại, yêu cầu sẽ bị từ chối phục vụ

b Mô hình đối tượng

Trong mô hình này, mỗi tài nguyên chia sẻ được coi như một đối tượng

C ác đối tượng này được xác định duy nhất và có thể được di chuyển đến bất cứ nơi nào trên mạng chứ không nhất thiết phải lưu trữ trên một server, nhưng vẫn không làm thay đổi tính xác định của nó Khi có một

ứng dụng nào đó cần truy cập vào m ột tài nguyên, nó sẽ gửi thông báo chứa yêu cầu tới đối tượng tương ứng Thông báo này được chuyển qua một thủ tục thích hợp hoặc một xử lý thích hợp để kiểm tra và hoàn

thành cô n g việc của yêu cầu Sau đó thủ tục này sẽ gửi m ột thông báo

trả lời cho đối tượng yêu cầu nếu điểu này được đòi hỏi Trong mô hình này đối tượng vừa là người sử dụng tài nguyên, đồng thời cũng là người quản lý tài nguyên.

Luận văn tốt nghiệp cao học

Dề tủi: Một số khiu cạnh lý thuyết vù thực tiên trong xử /ý phàn tán

Trang 13

Trang 12

- Tính d ễ tươntác (interoperability): M ột hệ thống được gọi là dễ tương tác với hệ thống khác nếu hộ thống đó có thể:

• làm việc chung trong một môi trường với các hệ thống khác

• hệ thống đó có thể xử lý được các đối tượng do hệ thống khác phát sinh và ngược lại

- Tính d ễ chuyển mcinq (portability): M ột hệ thống được gọi là dễ chuyển mang nếu nó có thể làm việc trong nhiều môi trường khác nhau và trên nhiều chủng loại thiết bị khác nhau (không kén chọn môi trường, thiết bị).

Khi xây dựng cá c hệ thống theo chuẩn công nghiệp, và nhất là cá c hệ thống phân tán, tính m ở luôn được đề cập như m ột yếu tố không thể thiếu khi thiết

k ế hệ thống Một hệ thống có m ở rộng được hay không thường do hệ thống phần m ềm hỗ trợ, quản lý và điều khiển (phần mềm đây bao gồm cả software và firmware) Do vậy, trong hệ phân tán, người ta đưa ra m ột giao diện chuẩn và coi như giao diện phần m ềm chìa khoá để các nhà phát triển phẩm m ềm tuân thủ khi thiết kế Tính m ở còn được thực hiện thông qua việc cung cấp cơ chế truyến thông chuẩn giữa các tiến trình C ơ ch ế này đảm bảo

cá c ứng dụng khác nhau có thể tuân thủ để giao tiếp viới nhau mà không phụ thuộc nền, hay phụ thuộc môi trường phát triển ứng dụng.

1.3.3 Tính tương tranh (Concurrency)

Hiện tượng tương tranh xảy ra khi có đồng thời nhiều tiến trình xử lý cùng tác động lên một đối tượng Trong các hệ thống máy tính, đối tượng ở đây có thể

là cá c tài nguyên được chia sẻ, các chương trình ứng dụng, và thậm chí là các

xử lý khác trong hệ thống.

Trong hệ thống phân tán, hiện tượng tương tranh xảy ra bao gồm cả tương tranh thông thường và các tương tranh đặc trưng của nhu cầu phân tán Ở đây,

ta không xét tới các tương, tranh trong nội bộ tài nguyên của một đối tượng (ví

dụ như các xung đột giữa các bộ vi xử lý trong một server khi server này có nhiều bộ xử lý trung tâm hoạt động song song), Iĩià xét các tương tranh ở góc

độ xử lý phân tán.

Hiện tượng tương tranh trong hệ thống phân tán thường được phân loại và đề phòng, ch ế ngự hay khắc phục Có rất nhiều kiểu phân loại khác nhau Thông thường, có thể phân thành hai loại cơ bản như sau:

khác nhau như: tận dụng khả năng của các máy cấu hình mạnh, tận

Luận văn tốt nghiệp cao học

Đ ề tài: M ột sỏ'khiu cạnh lý thuyết và thực ỉiè/ỉ trong xử ìỷ phàn tán

Trang 14

Trang ỉ 3

dụng kha năng tính toán song song trên nhiều máy, hoặc phân tải tính toán, một trình ứng dụng có thổ được thực đồng thời tại nhiều m áy tính, hoặc trong bản thân một máy tính, nhưng do các đối tượng khác nhau thực hiện Do vậy có thể xảy ra các tương tranh được dự báo trước, những tương tranh này có thể kiểm soát được một cách chặt chẽ Hiện tượng tương tranh ở đây được mở rộng hơn ở khía cạnh các xử lý là độc lập, không giống nhau, không xung đột nhau, và có thể không đồng thời, nhưng khi có yêu cầu về chọn lựa kết quả xử lý, việc nhận định kết quả của xử lý nào là chính xác sẽ rất khó khăn Khi đó ta hiểu các xử lý trong hệ thống đã xảy ra tương tranh trong việc trả lại kết quả v ề hiện tưựng này, có thể ví dụ rằng hai tiến trình cùng thực hiện phân tích số liệu với dữ liệu đầu vào có thể là cá c tập m ò khác nhau Tiến trình thứ

ba chịu trách nhiệm thu nhận m ột kết quả đế làm đầu vào cho mình

V iệc lựa chọn kết quả nào trong trường hợp cả hai kết quả đều chấp nhận được là một hiện tượng tranh.

- Tươnq t r a n h thụ độnẹ: Tương tranh thụ động là hiện tượng tương tranh

mà người ta có thể dự báo, đề phòng, ch ế ngụ, và có thể khắc phục, nhưng lại không biết chính xác thời điểm sẽ xảy ra Dạng tương tranh này không thể khắc phục tất cả Trong nhiều trường hợp người ra phải

cố gắng tạo ra các thoả hiệp giữa cá c xử lý gây tương tranh nhằm đảm bảo hoạt động của hệ thống, v ề hiện tượng này có thể ví dụ rằng hai tiến trình cùng yêu cầu một đối tượng với quyền ưu tiên tương đương, trong khi tại thời điểm đó, đối tượng này chỉ thực hiện được tối đa một yêu cầu.

Để thực hiện việc xử lý tương tranh thường phải xét nhiều khía cạnh như: nguyên nhân xảy ra tương tranh, khả năng phục vụ của đối tượng mà ở đó các

xử lý xảy ra tương tranh, khả năng bị lặp lại chính tương tranh này, và khả năng thoa hiệp giữa các xử lý Thực tế, nhiều yếu tố trong các khía cạnh được

đề cập không thể xác định, hoặc không thể dự báo chính xác bằng một thuật toán cụ thể Từ đó, người ta thường tìin cách đề phòng và khắc phục tương

tranh Đ ê tránh tương tranh, người ta thường phải giám sát và điều phối c á c xử

lý trong hệ thống Trong hộ thống phàn tán, có thể để phòng và khắc phục tương tranh theo một số phương pháp:

- Giảm thiểu khả năn° (ươntranh: Như đã nói ở trên, hiện tượng tương tranh xảy ra khi có nhiều xử lý cùng đồng thời tác động lên một đối tượng, nghĩa là các tác động này xảy ra trong cùng một khoảng thời gian At nào cỉó Khoáng thời gian này càng lớn, kha năng xảy ra tương

tranh càn g lớn D o vậy, việc giảm thiểu thời gian có thổ gây tương tranh

chính là một phương pháp phòng ngừa tương tranh.

Luận vein tốt niịhiệp cao học

Đê rủi Một sỏ khiu cạnh lý thuyết vù thực ticn iron ạ xử /ỷ phàn tán

Trang 15

Trang 14

Trong các hệ thống phân tán, thực tế khoảng thời gian có thể gây xung đột giữa các tiến trình xử lý là tương đối lớn Có thể lấy ví dụ rằng một

tiến trình thực hiện n bước xử lý liên tiếp Bước thứ i+ j nào đó bắt buộc

phải k ế thừa kết quả của bước thứ /' T hời gian dành ch o m ột xử lý có

thể nhỏ đến mức không thể giảm được, nhưng n bước xử lý lại là một

khoảng thời gian đáng kể đối với c á c xử lý trong hệ thống m áy tính

Trong hệ thống phân tán thường có đổng thời nhiều tiến trình cùng thực hiện để phục vụ nhiều đối tượng yêu cáu khác nhau Do vậy, khi bước thứ i+ j lấy kết quả đã xử lý của bước thứ / (m à kết quả này được lưu thành tài nguyên được chia sẻ) thì kết quả này đã bị một đối tượng khác

ra yêu cầu thay đổi Khi đó, xung đột xảy ra sẽ làm sai lệch kết quả tính toán.

Để hạn ch ế các tương tranh kiểu này, điều đầu tiên phải thực hiện là kết quả của bước thứ / ở trên phải không được thay đổi mà vẫn không làm ảnh hưởng đến sự hoạt động của các tiến trình xử lý khác Điều này có thể được giải quyết khi toàn bộ n bước trên được xử lý độc lập trước khi

toàn bộ tiến trình xử lý hoàn toàn kết thúc. Hiểu theo một nghĩa khác, khi một đối tượng đưa ra yêu cầu xử lý, tiến trình thực hiện việc xử lý này có thể coi là trong suốt với đối tượng đưa ra yêu cầu, và trong suốt với các tiến trình khác Toàn bộ quá trình này phải được cấp, và được server quản lý Quá trình đó được gọi là một giao dịch (transaction) Thời gian để một giao dịch hoàn thành công việc của mình có thể lớn, hoặc rất lớn, nhưng gần như được xử lý như trên một hệ thống độc lập,

nghĩa là hệ thống sẽ cấp ra m ột server ảo, m ột vùng tài nguyên ảo là

bản sao của tài nguyên thật để giao dịch này thực hiện trên đó Khi đối

tượng sử dụng đưa ra yêu cầu kết thúc xử lý, toàn bộ bản sao này mới

được cập nhật thực sự vào hộ thống để chia sẻ cho đối tượng khác trên

m ạng T rong khoảng thời gian cập nhạt này, c ó thể xảy ra xung đột với

cá c tiến trình khác, nhưng thông thường, khoảng thời gian này tương đối nhỏ Do vậy, khả năng gây ra tương tranh được giảm đáng kể.

- K hoá tài nguyên chia sẻ: Tại các tài nguyên chung được chia sẻ sẽ có các khoá, được hiểu như các khoá đọc ghi Mồi tiến trình xử lý khi gặp tài nguycn này đều phải kiểm tra khoá Nếu tài nguyên chưa khoá, tài nguyên sẽ được tiến trình sử dụng và khoá được khoá lại Khi nào sử dụng xong, tài nguyên sẽ được giải phóng (m ở khoá) Nếu tài nguyên

đã bị khoá nghĩa là đã có tiến trình xử lý khác đang sử dụng Tiến trình

sẽ phải đợi đế tài nguyên được giải phóng mới có thể sử dụng được Phương pháp khoá tài nguyên thường dược sử dụng nhiều trong trường hợp xử lý đơn luồng (các tiến trình lần lượt được xử lý).

Luận vân tốt nghiệp cao học

Đ ề tài: Một sỏ khía cạnh lý thuyết vù thực tiên trong xử/Ý phùn rán

Trang 16

- K hắc phục dơ tươnạ tranh: Như đã nói ở trên, khoảng thời gian mà các giao dịch đưa ra yêu cẩu hoàn thành để xác nhận cập nhật, khả năng tương tranh dễ xảy ra nhất C ác xử lý gây ra tương tranh này nếu mâu thuẫn nhau sẽ thực sự là một bài toán khó, và có thể nói là không có thuật giải tối ưu Hiện nay, việc đầu tư nghiên cứu để giải quyết vấn đề này vẫn được tiếp tục nhằm tìm ra giải pháp tối ưu Tuy vậy, có nhiều tiến trình xử lý gây ra tương tranh nhưng lại không mâu thuẫn Các xử

lý này nếu có mức ưu tiên như nhau, (và có thể còn có các ràng buộc ở nhau) sẽ dẫn đến hệ thống bị treo ảo vì các xử lý này không trả được tài nguyên đã chiếm cho hệ thống X é t về phương diện kết quả tính toán, nếu một xử lý này nhường cho xử lý kia thực hiện trước thì vấn đề sẽ được giải quyết Tuy nhiên, cá c giao dịch này lại có cùng mức ưu tiên nên máy tính không tự giải quyết được.

Khắc phục vấn đề này, người ta thường tạo ra các tài nguyên ảo và chọn một tiến trình xử lý nào đó đi theo tài nguyên ảo đó C ác tiến trình còn lại tương tranh với tiến trình nói trên sẽ thực hiện trên tài nguyên thật Tài nguyên ảo ở đây có thể làm cho xử ỉý nhầm tưởng là thật và thực hiện trên đó Nhưng thực chất của vấn đề là xử lý đó bị chạy vòng rồi sẽ quay lại với tài nguyên thật Tuy nhiên, khi quay lại, thời gian xung đột

đã qua vì cá c tiến trình khác đã kết thúc Như vậy vấn đề đã được giải quyết.

1.3.4 Tính chịu lỗi (Fault tolerance)

Khi một hệ thống m áy tính có lỗi, và bất kể nguyên nhân lỗi là do phần cứng hay phần mềm, thì cá c chương trình hoặc là đưa ra kết quả sai, hoặc sẽ bị dừng ngoài ý muốn trước khi chúng kịp hoàn tất việc tính toán Lỗi ở đây hiểu theo nghĩa là các sự cố vể phần cứng hoặc phần m ềm gây ra trong quá trình xử

lý như: hỏng thiết bị phần cứng củ a hệ thống, mất kết nối đường truyền trong quá trình xử lý, sai lệch hoặc m ất cơ sở dữ liệu tại m ột điểm phân tán do một nguyên nhân nào đó Đây là c á c sự c ố phát sinh (và khó tránh khỏi) trong vòng đời của hệ thống C ác sự cố ở đây không xét đến các lỗi cú pháp trong lập trình, hay các lỗi phần cứng khi thiết kế hoặc sản xuất sản phẩm.

Một ứng dụng độc lập khi gặp lỗi, nếu có sai sót thì chỉ ứng dụng đó chịu ảnh hưởng Còn khi m ột hệ thống phân tán gặp lỗi, cả hệ thống sẽ bị ảnh hưởng

Do vậy tính chịu lỗi của hệ thống phân tán luôn là vấn đề được quan tâm khi thiết kế, xây dựng và triển khai hệ thống.

T ính chịu lỗi của hệ thống phân tán thường được đề cập ỏ' hai khía cạnh:

Luận văn tốt nghiệp cao học

D ề tài: Một số khiu cạnh lý thuyết và thực tiến trong x ử/ v phán tân

Trang 17

Đ ể tăng tính chịu lỗi cho một hệ thống máy tính có thể sử dụng các giải pháp sau:

thiết bị phần cứng ngoài các thiết bị yêu cầu cần có Khi gặp lỗi, hệ thống sẽ tự động chuyển cá c xử lý tại module đang hoạt động trên các trạm có lỗi sang các module dự phòng trên các trạm dự phòng Khi đó,

hộ thống vẫn đảm bảo hoạt động bình thường

phải đảm bảo có thể phát hiện lỗi, sửa chữa lỗi hoặc ít nhất tự phục hồi

về trạng thái ban đầu trước khi tính toán Khả năng phục hồi phải đảm bảo về tốc độ để hệ thống có thể vận hành bình thưòng

Trong hệ phân tán, giải pháp thứ nhất thường không được áp dụng, hoặc ít được áp dụng vì nó sẽ làm hệ thống có giá thành quá cao, và gây lãng phí khi không có lỏi xảy ra D o vậy, người ta thường áp dụng việc thiết k ế các hệ phần mềm có khả năng chịu lỗi, và tự sửa lỗi

Đ ể thực hiện giải pháp này, người ta phải thiết k ế các thủ tục để xác định lỗi

và cá c thủ tục để xử lý lỗi V iệc xác định lỗi thường phụ thuộc vào các đặc trưng riêng của từng hệ thống V ới các hệ thống khác nhau, các lỗi gặp phải cũng khác nhau, và do đó định danh các lỗi này cũng khác nhau C ác lỗi được định danh sẽ có thủ tục tương ứng để xử lý C ác thủ tục này cũng tuỳ từng hệ thống mà có cách xử ỉý riêng

Trong trường hợp không xác định được lỗi, hoặc lỗi không thể sửa được, người ta phải phục hồi lại giá trị ban đầu Có nhiều phương pháp để thực hiện công việc này Thông thường nhất là dùng các giao dịch như đã nói ở phẩn trên M ỗi người sử dụng khi đăng nhập hộ thống sẽ dược định danh và cấp cho một giao địch Tất cả các dữ liệu đầu vào, đầu ra, và luồng dữ liệu hoạt dộng trong toàn bộ quá trình xử lý của 11 cười sử dụng này đểu chỉ được thực hiện và quán lý trong giao dịch đó Khi giao dịch kết thúc, các kếì quả xử [ý mới được cập nhật vào hộ thống Còn nếu hệ thống gặp lỏi mà thủ tục xử lý lỗi ra lệnh

Lu ậ n văn tôi nghiệp cao học

D (’ tà i : M ộ t sở khiu vạnh lý thuyết và thực tien rro iìiỉ xử lý phán tán

Trang 18

T ranq 17

phục hổi dữ liệu, toàn bộ giao dịch (bao gồm cả tên giao dịch, dữ liệu của giao dịch) sẽ bị huỷ Như vậy, dữ liệu chính của hệ thống vẫn được bao toàn nếu giao dịch gặp lõi, bị dừng giữa chừng, nghĩa là không thành công

Hệ phân tán cũng cung cấp mức độ sẵn sàng cao khi đối mặt với các lỗi phần cứng Hiện nay, người ta thường dùng các sản phẩm phấn cứng theo tiêu chuẩn công nghiệp để sử dụng cho các thiết bị chính của hệ thống C ác thiết bị này có thể thêm , bớt, hoặc thay thế các module mà vẫn đảm bảo sự hoạt động Các thiết bị này cũng thường được đặt trong môi trường tiêu chuẩn về nhiệt

độ, độ ẩm , ánh sáng, v.v (như các tổng đài viễn thông, các máy chủ, .) Do vậy, tính sẵn sàng của hệ thống luôn đảm bảo

1.3.5 Tính trong suốt (Transparency)

Tính trong suốt là sự che dấu của hệ thống với người sử dụng (bao gồm cả người lập trình ứng dụng phân tán và người sử dụng ứng dụng phân tán) V ì thế hệ thống được nhận biết như một thể thống nhất chứ không phải là tập hợp của nhiều thành phần độc lập Tính trong suốt tạo cho níĩirời sử dụng khả năng

dề thao tác hơn trên hệ thống Hiểu theo nghĩa thông thường, tính trong suốt

có thể coi như một giao diện chuyển đổi (m ediation interface) mà ở đó người

sử dụng sẽ thao tác với hệ thống bằng bộ lệnh được chuẩn hoá C ác lệnh này qua giao diện chuyển đổi nói trên sẽ thao tác đến các đối tượng phù hợp trong

hệ thống Tính trong suốt là nhân tố chính trong việc thiết k ế phần mềm hệ thống phân tán

Tính trong suốt của một hệ thống phân tán thường được xem xét ở các khía cạnh sau:

- Trong suốt truy cập : cho phép các đối tượng cục bộ, hay từ xa đều được truy cộp bằng các hoạt động giống nhau

- T rong suốt định vị: các đối tượng sử dụng dịch vụ không cần biết vị trí cài đặt củ a các đối tượng cung cấp dịch vụ

- 'ĩ'romỉ suốt tươnỉ> tranh: cho phép nhiều xử lý được thực hiện đồng thời

sử dụng thông tin chia sẻ mà không xảy ra xung đột

để tăng độ tin cậy và hiệu năng của hệ thống mà không cho người sử dụng thấy được sự nhân bản đó

- Tronsuốt lỏi: cung cấp khả năng chịu lỗi đê người sử dụng có thổ hoàn thành dược còng việc ngay cả khi hệ thống gặp lỗi về phần cứng hoặc phần mềm

Luận văn for nghiệp cao học

Đe tài: Một số khiu cạnh lý thuyết và thực tiên trong xử lý phân tan

Trang 19

T ra nạ 18

- TroníỊ suốt di chuyển: cho phép di chuyên các đối tượng trong hệ thống

mà không ảnh hưởng đến hoạt động của người sử dụng Kha năng di chuyển thường được thể hiện khi các đối tượng thành phần trong hệ thống chuyển dịch vị trí khi chuyển sang cơ ch ế dự phòng đổ khắc phục lỗi tại máy tính chính, hoặc nhằm m ục đích cân bằng tải

năng

đổi quy m ô mà không ảnh hưởng đến cấu trúc của hê thống cũng như hoạt động của hệ thống

1.3.6 Khả nàng thay đổi quy mô (Saclabilỉty)

K hả năng thay đổi quy mô là khả năng cho phép hệ thống có thể thay đổi quy

mô mà không ảnh hưởng đến cấu trúc cũng như hoạt động của hệ thống Đây

là một đặc điểm quan trọng của hệ thống phân tán Nó cho phép các mạng

m áy tính có kết nối được với nhau để có thể sử dụng chung tài nguyên (V D như mạng Internet)

K hả năng thay đổi quy mô thường nhằm m ục đích mở rộng và nâng cấp hệ thống, cả về phần cứng, kết nối mạng cũng như m ở rộng hoặc nâng cấp các ứng dụng phần m ềm Ngoài ra, việc thay đổi quy mô còn nhằm mục đích bảo

an cho hệ thống

1.4 Các mục tiêu khi thiết kê một hệ thông phân tán

M ột hệ phân tán khi thiết k ế cần có các đặc trưng cơ bản sau:

- Chia sẻ tài nguyên

- Tính mở

- Tính tương tranh

- Tính chịu lỗi

- Tính trong suốt

- Tính thay đổi quy mô

V à nhằm đạt được năm m ục tiêu cơ bản:

Luận văn tót lUịhiệp cao học

Đ ề tài: M ộ t sỏ khiu cạnh lý thuyết và thực tiễn troni> x ử IÝ phùn !(Ì)I

Trang 20

- An toàn thông tin

Với các yêu cầu trên, cá c vấn đ ề cần quan tâm khi thiết k ế m ột hệ phân tán

là:

Đ ịnh d an h : Hệ phân tán dựa trên CO' sở chia sẻ tài nguyên và sự trong suốt khi phân tán Tên được đưa ra cho các tài nguyên hay các đối tượng phải có ý nghĩa toàn cục và không phụ thuộc vào vị trí của tài nguyên hay các đối tượng Chúng phải được hỗ trợ bởi hệ thống hiện tên Hệ thống này có thể dịch các tên nhằm m ục đích để các chương trình có thể truy cập vào các tài nguyên có tên M ột vấn đề trong thiết k ế được đưa ra là thiết k ế được các lược

đồ tên C ác lược đổ này sẽ m ở rộng tới một mức độ thích hợp, là tên nào sẽ được dịch ra có hiệu quả khi gặp kết quả thích hợp cho việc thực hiện

T ru y ề n th ô n g : Tăng hiệu năng và độ tin cậy của công nghệ truyền thông sử dụng trong hệ phân tán nhằm mục đích đạt được sự tối ưu của hệ thống Chúng ta đã biết công nghệ truyền thông tốc độc cao đã dược áp dụng trong cả mạng cục bộ và mạng diện rộng, tuy nhiên với mạng tốc độ cao các lóp phần

m ềm có liên quan sẽ rất phức tạp Vấn đề thiết k ế cần quan tâm là tối ưu đượcviệc truyền thông trong hệ phân tán trong khi vẫn giữ lại m ô hình lập trình

mức cao cho việc sử dụng của nó

C ấu trú c p hần m ềm : Tính m ở là kết quả đạt được của thiết kế và xây dựng

cá c thành phần phần mềm với cá c giao diện đã được định nghĩa Dữ liệu trừu tượng là công nghệ thiết k ế quan trọng trong hệ phân tán C ác dịch vụ có thể coi là các bộ quản lý đối tượng của kiểu dữ liệu cần lấy Vấn đề thiết k ế cần đặt ra ở đây là cấu trúc của hệ thống Nó sẽ giúp cho các dịch vụ mới có thể cùng làm việc mà không bị trùng với các dịch vụ đã có sẵn của hệ thống

P h â n tai côn g việc: Đ em lại hiệu năng cao là một yêu cầu của hầu hết các sản phẩm và nó cũng là mối quan tâm lớn nhất của cá c nhà thiết k ế hệ thống

và nhà lập trình Vấn đề thiết kế cần đặt ra với hệ phân tán là làm thế nào để triển khai việc xử lý và truyền thông tới các tài nguyôn của hệ thống một cách hiệu qua nhất trên một khối công việc thay đổi

Lu ận vãn tối nghiệp cao học

tìé tài M ộ t sô khiu cạnh lý thuyết vù thực liền troiìỊỊ xử lý phún rún

Trang 21

Duv trì tính nh ất q u á n : Tính nhất quán có ảnh hưởng rất lớn đến việc hoàn thành một hệ phân tán hay các ứng dụng Duy trì tính nhất quán tại mức giáhợp lý cổ lẻ vấn là vấn đề khó khăn nhất khi thiết k ế một hệ phân tán Có các

loại nhất quán như:

- nhất quán truy cập

- nhất quán lặp

- nhất quán lỗi

- nhất quán vé thời gian

- nhất quán về giao diện người d ù n g ,

1.5 Các mô hình hệ thống phán tán

1.5.1 Phân loại mức xử lý phân tán

Tuỳ theo yêu cầu sử dụng và khả năng phát triển, có thể xây dựng hệ thống phân tán theo các mức độ sau:

- M ô hình truyền tập tin

- M ô hình khách chủ thuần tuý (C lient/Server)

- M ô hình ngang hàng (Pear - To - Pear)

1.5.1.1 Mô hình truyền tập tin

M ô hình truyền tập tin là m ô hình cổ điển nhất, về cơ bản các chương trìnhtrên các m áy tính cùng sử dụng inột giao thức để trao đổi thông tin với nhaudưới dạng truyền tập tin

ỉ 5.1.2 Mô hình Client/Server

M ô hình Client/Server đang được áp dụng phổ biến vì cá c chương trình sử dụng có ch ế trao đổi tin báo để liên lạc với nhau, như vậy mềm dẻo hơn mô hình truyền tập tin Thực chất mô hình này xuất phát từ phương pháp gọi thủtục từ xa R PC , hiện nay mô hình Client/Server đã phát triển theo hướng sửdụng các đối tượng phân tán

Trong lĩnh vực công nghệ thông tin, mô hình C lient/Server được hiểu là hình thức trao đổi thông tin giữa các tiến trình cung cấp dịch vụ (Server) và tiến trình sử dụng dịch vụ (C lient) Trong mô hình này, Client ycu cầu các dịch vụ

dã được cài đặt trên Server, Server xử lý ycu cầu và trả vé kết quả cho Client

T ra nạ 20

Luận văn tô) nghiệp cao học

D ề tài: M ộ t sò khía cạnh /ý thuvết vù thực tiễn tron ịỉ xử lý phân tán

Trang 22

- Client và Server là các module chức năng với các giao diện xác định

C ác chức năng thực hiện của Client hoặc Server có thể gồm nhiều chức năng con, việc cài đặt các ứng dụng Client hoặc Server không nhất thiết phải trên máy chủ mà có thể cài đặt tại bất cứ máy nào trên mạng

- Quan hệ Client/Server được thiết lập giữa hai m odule khi Client đưa raycu cầu dịch vụ và được Server đáp lại Khái niệm C lient và Server chỉ ]à tương đối, một module có thể đóng vai trò Server đối với module này nhưng lại đóng vai trò Client đối với m odule khác

- Trao đổi thông tin giữa các m odule được thực hiện thông qua có ch ế truyền tin báo Tất cả các yêu cầu của C lient được tập hợp thành tin báo

để chuyển đến Server và ngược lại các kết quả trả về cũng được đặt trong các tin báo để chuyển đến O ien t

- Trao đổi tin báo giữa Client và Server thường được thực hiện theo cơ

ch ế hỏi đáp

- Client và Server được cài đặt trên các máy tính khác nhau và được nối với nhau trên mạng, v ề mặt lý thuyết, trên cùng một máy có thể cài đặt đồng thời module Client và m odule Server, tuy nhiên trong thực tế thường các module này được cài đặt trôn các máy khác nhau

V ới cá c đặc điểm trên, m ô hình C lient/Server có thể cài đặt theo hai mức:

- Mức dịch vụ nền: tạo cơ sở để phát triển, hỗ trợ và quản lý các ứng dụng Client/Server

theo mô hình Clienl/Server

M ỏ hình Client/Server cung cấp các phương tiện tích hợp các ứng dụng riêng với cá c nhu cầu xử lý nghiệp vụ chung để đảm bảo thống nhất việc xử lý thông tin trong toàn bộ hệ thống M ô hình này có các ưu điểm sau:

- C h ia sẻ dữ liệu: trong mô hình Client/Server, dữ liệu có thể chia sẻ để tất cá những người sử dụng có thể iruy nhập được với quyền truy nhập nào đó Dữ liệu chia sẻ thường được lưu trữ trên server C ơ ch ế truy

Luận văn tốt nghiệp cao hục

í) c tài: M ộ t s ố khiu cạnh lý /huvếỉ và thực tiễn trong x ử lý phàn rán

Trang 23

- Chia sẻ tài nguyên giữa các hệ thống khác nhau: Có thể tạo các ứng

dụng độc lập vói hệ điều hành và thiết bị phần cứng, do đó các ứng dụng C lient đều có thể sử dụng các tài nguyên chung trên mạng: dữ liệu, dịch vụ

- Khả năng trao đổi và tương thích dữ liệu: Hầu hết các công cụ sử

dụng để phát triển các sản phẩm theo mô hình C lient/Server đều dựa trên tiêu chuẩn của ngôn ngữ SQ L , do đó đảm bảo được tính tương thích và khả năng trao đổi dữ liệu giữa các tiến trình Client và Server

- K h ô n g phụ th u ộc th iết bị lưu trữ dữ liệu: Trên Server dữ liệu có thể được lưu trữ trong các thiết bị khác nhau như đĩa từ hoặc băng từ, người

sử dụng vẫn dùng tập các lệnh chung để truy xuất dữ liệu m à không phụ thuộc vào phương tiện lưu trữ

- Độc lập với vị tr í xử lý dữ liệu: V iệc truy xuất dữ liệu không phụ thuộc vào thiết bị phần cứng, hệ điều hành và vị trí lưu trữ dữ liệu

- Q u ản lý tậ p tru n g : V iệc quản lý tập trung được thực hiện bằng cách sử dụng cá c công cụ giám sát và hỗ trợ từ trung tâm

Tiến trình Client G iao thức

trao đổi lớp trên

< — ►

Tiến trình ServerPhần mềm trung

gian Client (M iddlew are)

Phần mểm trung gian Server (M iddlew are)

thiết bị phần cứng thiết bị phần cứng

Trao đổi thông tin lớp vật lý

Hỉnh 1.1 Các thành phần cơ bản trong mó hình Client/Server

Luận văn tốt ttiịhiệp cao học

D e tài: M ộ t sô kh ía cạnh lý thuyết vù thực tiền troiHỊ ,\li' IV phân tán

Trang 24

Hình 1.1 thể hiện cá c thành phần cơ bản trong mô hình Client/Servcr, baogồm :

- C ác tiến trình C lient, Server

- Phần mềm trung gian (M iddlew are)

• Giao tiếp với người sử dụng

• Thực hiện các chức năng ứng dụng cần thiết như hiển thị thông tin, tính toán các bảng tính

• G iao tiếp vói các phần mềm trung gian qua giao diện lập trình ứng dụng (A PI) để gửi cá c yêu cầu đến Server và nhận kết quả tính toán từ Server

- T iến trình Server thực hiện các chức năng lớp ứng dụng ở phía Server,

nó có các đặc điểm sau:

• Cung cấp các dịch vụ cho Client

• Che dấu các thông tin riêng

• Cung cấp các dịch vụ xử lý lỏi

• Có thể thực hiện chức năng giám sát và điều phối (tránh xảy

ra lương tranh, thường chức năng này do Server M iddlew are thực hiện)

Phẩn mềm trung gian (M id d lew are) cung cấp nhiều tính năng khác nhau như thiết lập phicn làm việc giữa các tiến trình, bảo mật dữ liệu, nén/giải nén dữ liệu, xử lý lỗi M id d lew are là môi trường trung gian kết nối tiến trình Client với tiến trình Server, nó giao tiếp với các tiến trình Client, Server qua giao diện API Client M iddlew are thực hiện các chức năng sau:

- Cung cấp giao diện API để giao tiếp với tiến trình Client

- Thiết lập liên kết với tiến trình Server bằng cách gửi các lệnh thông qua íĩiao diện mạng và Server M iddlew are

- Gửi yêu cầu đến Server M iddlew are và nhận kết quả trả về

- Đồng hộ hoạt động giữa Client và Server

Luận văn rết HỊịhiệp cao học

t ìé tài M ộ ! sò k ìĩía cạnh lý thuyết và thực tiền trong xử lý phàn tán

Trang 25

Trang 24

- X ử lý điều khiển truy nhập

- Server M id d lew are giám sát các yêu cầu từ phía Client và gọi các tiến trình Server tương ứng, nó thực hiện các chức nãng sau:

• Nhận các yêu cầu từ phía Client và chuyển các yêu cầu đó cho tiến trình Server

• K iểm tra bảo mật hệ thống

• X ử lý tương tranh khi đồng thời nhận được nhiều yêu cẩu từ phía Client

• Nhận kết quả xử lý của tiến trình Server và chuyển đến Client

• G iám sát và xử lý lỗi

ì' 5.1.3 Mô hình ngang hàng

M ô hình ngang hàng tương tự như mô hình Client/Server, nhưng các tiến trình tương tác có thể là C lient, Server hoặc đồng thời là Client và Server

1.5.2 Một sô mô hình thiết kê hệ thống phân tán

ỉ 5.2.1 C ấc đ ối tượng phân tán

X u th ế xây đựng phần mềm hiện nay hầu hết đều dựa trên quan điểm hướng đối tượng Tuy nhiên trong môi trường mạng các đối tượng được cài đặt trên

cá c m áy khác nhau, do đó việc thiết k ế và cài đặt các ứng dụng phải dựa trên các đối tượng bị phân tán Nói cách khác việc xây dựng các ứng dụng mạng dựa trên hai quan điểm : Hướng đối tượng và hệ thống phân tán

L u ậ n văn tốt nghiệp cao học

Đ ề tài: M ộ t sô khít) cạnh /ý thuyết và thực tiểu trong xử ỉỷ phân tán

Trang 26

- Đối tượng: là dữ liệu được đóng gói trong chương trình, nó có đầy đủ các tính chất của một đối tượng theo quan điểm lập trình hướng đối tượng như: tính thừa kế, tính đa hình C ác đối tượng có thể đóng vai trò Client, Server hoặc cả hai.

- M ôi trư ờng yêu cầu đ ố i tượng (O R B ): là m ôi trường cho phép các đối tượng tìm thấy nhau theo phương pháp động và giao tiếp với nhau qua mạng, đây là xương sống của các hệ thống hướng đối tượng phân tán

- C ác dịch vụ đối tư ợng: là các dịch vụ cho phép người sử dụng thao tác

và xử lý các đối tượng

Phần m ềm trung gian đóng vai trò cung cấp các công cụ hỗ trợ việc xác định

cá c đối tượng từ xa và tạo môi trường thuận tiện để đối tượng giao tiếp với nhau

Luận vãn tốt nghiệp cao học

Đ ề tài: M ộ t sô khiu cạnh /Ý’ thuyết vù thực tiến trong xử lý phún tán

Trang 27

áp dụng riêng cho ngôn ngữ lập trình Java, nó sử dụng nhiều đặc tính của phương pháp gọi thủ tục từ xa R P C và kiến trúc C O R B A Tuy nhiên khi kiến trúc C O R B A được đưa vào lõi của ngôn ngữ Java thì kiến trúc này sẽ dần thay thế R M I M ô hình D C O M chỉ được ứng dụng trong các hệ thống cài đặt hệ điều hành của M icrosoft và có hiều hạn ch ế trong việc thiết k ế hệ thống.

2 Xu thê chuẩn hoá phần mềm trung gian

V iệc thiết lập các tiêu chuẩn cho phần m ềm trung gian nhằm m ục đích cung cấp khả năng tương thích và tính mềm dẻo của các ứng dụng Cỉient/Server, trong đó tập trung vào việc:

- Chuẩn hoá giao diện lập trình A PI

- Chuẩn hoá giao thức trao đổi thông tin

- Theo hai tiêu ch í trên, phẩn mềm trung gian được chia thành bốn loại sau:

• Phần mềm trung gian m ở hoàn toàn: sử dụng giao diện APIchung và giao thức trao đổi chung giữa Client và Server, nóichung các sản phẩm loại này phải đảm bảo khả năng giao tiếpgiữa Client và Server mà không phụ thuộc giao thức trao đổi thông tin gữa các cổng mạng Sản phẩm loại này bao gồm

D C E R PC (gọi thủ tục từ xa trong môi trường tính toán phân tán), C O R B A , O penD oc

• Phần mềm trung gian với giao diện API mở: Cho phép Client giao tiếp với Server sir dụng sản phẩm của các hãng khác nhau với điều kiện giao thức sử dụng trao đổi thông tin giống nhau,

ví dụ sán phẩm ODBC’ của M icrosoft

Luận vân tốt nghiệp cao học

D ê tài : M ộ t sỏ kill'll cạnh lý thuyết và thực tiên trotiii xử lý phàn tân

Trang 28

T ran g 27

• Phần mềm trung gian với giao thức trao đổi thông tin mở: sử dụng giao thức trao đổi thông tin chung, tuy nhiên có chuyển đổi giao diện API khi Client và Server sử dụng phần mềm trung gian của các nhà cung cấp khác nhau (ví dụ kiến trúc cơ

sở dữ liệu quan hệ phân tán D R D A của I M B )

• Phẩn mềm trung gian riêng: các ứng dụng Client, Server chỉ giao tiếp với nhau khi sử dụng phẩn mềm trung gian của cùng hãng (ví dụ A ctiv eX /O L E )

1.5.22 Phương pháp gọi thủ tục từ xa

C ác khuyến nghị về phương pháp gọi thủ tục từ xa (R PC ) được đưa ra nám

1975 và sản phẩm đầu tiên đã được đưa ra thị trường năm 1984 R P C cho phép cài đặt các hệ thống phân tán theo m ô hình Client/Server: Các ứng dụng Client kết nối với m áy Server và sử dụng các dịch vụ do m áy Server cung cấp Các bước gọi thủ tục trên máy Server được thực hiện tương tự như gọi thủ tục trên máy cục bộ, C lient chuyển các tham số đầu vào khi gọi thủ tục và dịch vụ trên Server sẽ kiểm tra trinh hợp lệ của các tham số đó, thực hiện tính toán và trả

về các giá trị theo yêu cầu của ứng dụng Client

Đ ể sử dụng tính năng gọi thủ tục từ xa, một chương trình trên máy Server phải cung cấp cá c dịch vụ m ô tả trong ngôn ngữ RPC M ỗi máy Server được gán tên và số chương trình, tất cả các dịch vụ được khai báo trong danh sách với đầy đủ các tham số thể hiện dịch vụ V ới nguyên tắc này, ngôn ngữ R P C cho phép thực hiện c á c kiểu dữ liệu đơn giản cũng như các dữ liệu phức tạp như: struct, enum Q ui trình thực hiện bao gồm các bước sau:

- Client sử dụng tính năng gọi thủ tục cụ c bộ trong client stub

- Client stub gửi chuyển các tham số đến Server bằng cách gửi yêu cầuRPC

- Yêu cầu của Client được Server phân tích dựa trên tập tin server stub

- Thực hiện thủ tục đã được phân tích trôn Server

- Trả về c á c giá trị cho Client

R PC thể hiện quan điểm tách biệt giữa giao diện và phần cài đặt thực hiện Xuất phát từ việc khai báo giao diện, phần mềm trung gian tạo các mã lệnh hỗ trợ cho việc xử lý phân tán bằng cách thè hiện các ứng dụng dưới dạng ngữ nghĩa truyền thông trên máy cục bộ, tuy nhicn nó phải đảm bảo nhiều nhiệm

vụ phức tạp như: Iruyền dữ liệu, đồng bộ tiến trình

Luận văn tết Hiịhiệp cao học

Đ ề tài: M ộ t sò khiu cạnh /v thuyết vù thực tiễn trong xử lý phân rán

Trang 29

T rang 28

1.5.2.3 Kiến trúc D C OM, CORBA

C ác kiến trúc D CO M và C O R B A được nghiên cứu và phát triển vào những nấm của thập niên 90 Đ ây là các kiến trúc tiêu biểu trong hệ thống phân tán

và có nhiều ưu điểm C ác kiến trúc này đều dựa trên nguyên tắc của mô hình các đối tượng phân tán Trong chương 2 luận văn sẽ đề cập chi tiết về các kiến trúc này

1.6 ưu nhược điểm của hệ thống phân tán

1.6.1 Ưu điểm

- Tính sẵn sà?ig c a o.'Hệ thống là phân tán nhằm mục đích đáp ứng nhu cầu xử lý phân tán V ì vậy, có thể tăng tính sẵn sàng của hệ thống nhờ tăng độ dự phòng phần cứng, phần m ềm trong hệ thống, hoặc dựa trên việc lưu trữ dữ liệu phân tán tại nhiều điểm để dự phòng lỗi

- Tănẹ hiệu năng xử lý: Hệ thống phân tán có thể giải quyết được nhu cầu

về tính toán song song, phân tải hệ thống, đồng thòi, các yêu cẩu truy cập dữ liệu thường xuyôn cũng nhanh hơn do dữ liệu được lưu trữ gần

- C hia s ẻ tài nguyên: Hộ thống phân tán có thể thay đổi quy mô Do đó

có thể kết nối với các mạng bên ngoài để chia sẻ tài nguyên, và sử dụng tài nguyên được chia sẻ

đều nhất quán về giao diộn, về chuẩn kết nối dữ liệu, về giao thức truyền thông D o vậy sẽ giúp người sử dụng hệ thống dễ dàng nắm bắt các module trong hệ thống

1.6.2 Nhược điểm

- K hó thiết k ế và xây dựnq: Hệ thống phân tán thường rất phức tạp Đ ể một hệ thống phân tán có thể hoạt động được, người ta phải tính toán đến nhiều góc độ lý thuyết và thực tiễn như: G iao thức truyền thông, thuật toán tối ưu truy xuất dữ liệu, bảo mật và an toàn dữ liệu tại các điểm phân tán và trên được truyền, Do vậy, hệ phân tán khó thiết k ế

và xây dựng

- Khó b ả o hành b ả o trì: Hệ thống phân tán có các đối tượng thành phần

tro n g h ệ th ố n g đ ặ t tại n h iề u đ iể m k h á c n h a u n ê n k h i b ả o h à n h b ả o trì

thường khó khăn hơn các hệ thống độc lập hoặc các hộ thống tập trung

Lu ậ n VÓIÌ tôt nghiệp cao học

Đ i’ ten M ộ t sở khiu cạnh IÝ thuyết và tlìựí tiễn trong x ứ !ỹ phún tán

Trang 30

2.1 G iới thiệu

Đ ể thực hiện việc thiết k ế cá c ứ ns dụng phân tán, người ta thường dùng nhiều

m ô hình kiến trúc, với cá c tiêu chuẩn khác nhau T rong chương 1, ỉuận văn đã

đề cập đến một số m ức xử lý phân tán như: Truyền tập tin, K hách/Chủ (C lient/Server) và m ô hình N ganẹ hàng (Pear to Pear) Phương pháp xây dựng các ứng dụng kiểu truyền tập tin đã gần như không còn được ứng dụng trong thời điểm hiện nay Phương pháp ứng dụng m ô hình C lient/Server thực ra là thực hiện các lời gọi thủ tục từ xa M ô hình ngang hàng với việc chia sẻ tài nguyôn như các đối tượng làm việc được nghiên cứu và ứng dụng nhiều

Trong chương này sẽ đề cập đến cá c kiến trúc dựa trôn nguyên tắc của mô hình đối tượng Đ ó là hai kiến trúc nổi bật:

- M ô hình đối tượng thành phần phân tán D C O M (D istributed Com ponent O b ject M odel)

- Kiến trúc môi trường yêu cầu đối tượng chung C O R B A (Com m on

O bject Request Broker A rchitecture)

2.2 Mỏ hình đôi tượng thành phần phân tán (DCOM)

2.2.1 G iới thiệu

M icrosoft đưa ra phương pháp đóng gói và liên kết dữ liệu (O L E - O b ject Link

Ëm bcdcd) vào năm 1990 nhằm m ục đích tích hợp các kiểu dữ liệu khác nhau,

nó cho phép một ứng dụng có thể chứa các đối tượng thuộc ứng dụng khác

O L E cho phcp truy nhập đối tượng theo hai cách : Liên kết với đối tượng và

Luận văn tôt Hi>liiép cao học

D ề tủi: M ộ t sô kill'd cạn li lý thuxết vù thực ticn fro m ! x ử lý phán tán

Trang 31

sao chép dữ liệu của đối tượng C ác thành phần kiến trúc cơ bản của O L E baogồm :

- Mô hình đối tượng thành phần (C O M ): xác định giao diện gữa cá c đối tượng thành phần

- Hệ th ôn g lưu trữ có cấu trú c: Cung cấp các thông tin phục vụ cho việc tổ chức nội dung các văn bản phức tạp

- Mô hình truyền dữ liệu thống nhất: Cho phép người sử dụng chuyển dữ

liệu thống nhất thông qua việc gọi các hàm API

- Thành phần cung cấp giao diện: cho phép các ứng dụng thể hiện các giao diện C O M để ứng dụng khác sử dụng các đối tượng O L E

Tiếp theo phương pháp sử dụng O L E , năm 1996 hãne; M icrosoft đưa ra phương pháp sử dụng A ctiv eX dựa trên việc kết hợp các địch vụ trôn máy tính với trình duyệt W E B , đây là môi trường cho các thành phần và các đối tượng phân tán Tuy nhiên để cá c đối tượng có thể liên lạc với nhau trong môi trường

m ạng, A ctiv eX sử dụng m ô hình đối tượng thành phần phân tán D CO M đóng vai trò tương tự O R B trong kiến trúc C O R B A C ác đặc điểm cơ bản của mô hình D COM bao gồm :

- Cung cấp cá c dịch vụ cho A ctiveX và O L E

- Hỗ trợ các giao diện API để gọi các đối tượng động và tĩnh

- C ác đối tượng tương tác với nhau bằng cách sử dụng cơ ch ế gọi thủ tục

từ xa R P C trong môi trường tính toán phân tán

2.2.2 Mỏ hình đối tượng thành phần (COM)

M ô hình đối tượng thành phần C O M (Com ponent O bject M odel) là một thànhphần kiến trúc cơ bản của O L E để xác định giao diện gữa các đối tượng thành phần CO M có cá c đặc điểm :

- CO M là một kiến trúc m ở cho việc phát triển các ứng dụng client/server dựa trên công nghệ hướng đối tượng C ác chương trình client có thể truy cập đến một đối tượng thông qua các ghép nối được thực hiện trên đối tượng dó

- C O M là một kiến trúc phẩn mềm thành phần cho phép các hệ thống và các ứng dụng có thể xây dựng từ các thành phần của các nhà sán xuất phần mềm khác nhau

Trung 30

L iụ in vãn tốt nỊịlìiệp cao học

D í' tài: M ộ t sỏ kh ía cụn/ì /Ý thuyết vù thực tiễn front* xử lý phàn tán

Trang 32

Tirang J /

- COM là tiêu chuẩn đánh giá tính liên tác giữa cá c thành phần

sán dùng trcn nhiều trạm, và CO M có khả năng mở rộng

2.2.3 Mô hình đôi tượng thành phần phản tán (DCOM)

2 2 3 ỉ K hái niệm vềD C O M

M ô hình đối tượng thành phần phân tán D CO M (D istributed Com ponent

O b ject M odel) là m ô hình mở rộng của C O M nhằm hỗ trợ truyền thông giữa

cá c đối tượng trên nhiều máy khác nhau qua mạng LA N , W A N , hay mạng Internet qua các khía cạnh:

- D CO M là m ột giao thức đối tượng để các thành phần C O M có thể giao tiếp với cá c thành phần khác qua môi trường mạng máy tính D C O M có tính độc lập ngôn ngữ, nên mọi ngôn ngữ xây đựng các thành phần

C O M đểu có thể tạo ra các ứng dụng D CO M

- D CO M (hay C O M phân tán) xây dựng một mô hình khái niệm chuẩn

để tạo dựng, quản lý và truy cập các thành phẩn đối tượng (ob ject-b ased

tượng khác Thành phần D CO M có thể tồn tại như một thành phần của

hệ điều hành hay một ứng dụng, hoặc như một thực thể độc lập {stand­ alon e).

- Các thành phần D CO M có thể được dùng để biểu diễn dữ liệu và các dịch vụ của những chương trình được xây dựng bởi các nhà sản xuất khác, hoặc để tạo ra các ứng dụng nhằm tận dụng các dịch vụ đó

- C ác nhà phát triển có thể m ở rộng hoặc tùy biến các dịch vụ D CO M cơ

sở để phù hợp nhu cầu các ứng dụng của họ trong khi vẫn đảm bảo tiếp tục công việc với các đối tượng D COM khác

- COM là nền tảng của M ô hình liên kết và nhúng đối tượng - O L E

('O bject Linking an d Em bbedinq). CO M được coi là tiêu chuẩn đánh giá

dể các thành phần phần mềm sử dụng các thành phẩn khác nhằm tích hợp các đặc trưng giữa các ứng dụng khác nhau

- DCOM dược hiểu là O L E mạng {network OLE), ]à sự m ở rộng của

CO M Công nghệ mới D CO M cho phép các thành phần phần m ềm giao tiếp với các thành phần phần mềm khác qua mạng máy tính

Luận văn tốt ni>hiệp cao học

D ê tài : M ộ t sô khiu cạnh lý thuyết vù thực tiễn trong \ử / V phàn rán

Trang 33

T rang 32

2 2 3 2 C ác đ ặc trưníỊ c ơ bản của DC OM

DCOM là một m ô hình nhằm hỗ trợ việc xây dựng các ứng dụng phân tán trên

cơ sở mô hình đối tượng, với việc dùng các phần mềm trung gian (m iddlew are) Với tiêu chí đó, D CO M được thiết kế có các đặc trưng cơ bản như sau:

không phụ thuộc vị trí cài đặt trên mạng

dựa trên D CO M không phụ thộc vào ngôn ngữ phát triển ứng dụng

phần của D CO M đều có thể quản lý và điều khiển

- K hả năng thay đ ổi quy m ô (S calability); C ác hệ thống dựa trên

D C O M đều có thể thay đổi quy m ô của hộ thống mà không ảnh hưởng đến hoạt động của hộ thống V iệc thay đổi quy mô thường là

để mở rộng hoặc nâng cấp hệ thống

- H iệu năng (P erform ance): D CO M đảm bảo các ứng dụng phát triển đều đạt hiệu năng cao trong xử lý

m ở rộng và tuỳ biến để làm cơ sở cho các nhà phát triển xây dựng khi thiết kế các hệ phân tán

phân luồng, đồng thời hỗ trợ khả năng dịch chuyển bị trí các đối tượng với mục đích cân bằng tải

- Tính chịu lỗi (Fault toleran ce): C ác ứng dụng phân tán dựa trên

D CO M đều có cơ ch ế đề phòng, phát hiện, xử lý lỗi, hoặc phục hồi

dữ luệu vẻ trạng thái ban đẩu khi gặp lỗi

Luận văn tốt nghiệp cao học

D i’ tủi: M ộ t số k h íư cạnh lý thuyết và thực tiên tron ạ xử lý phàn tán

Trang 34

D C O M là mô hình phát triển của CO M CO M xác định phương thức kết nối của cá c thành phần với các chương trình client Sự tương tác này có thể là trực tiếp, không cần thành phần hệ trung gian.

Trong các hệ điều hành hiện nay, các tiến trình {p rocess) được bảo vệ tách khỏi nhau M ột tiến trình client cần giao tiếp với một thành phần thuộc tiến trình khác, thì không thể gọi trực tiếp thành phần đó, m à phải dùng một số dạng truyền thông giữa tiến trình (inter-process com m unication) được cung cấp bởi hệ điều hành C O M cung cấp dạng truyền thông này theo một mô hình hoàn toàn trong suốt: nó đón chặn các lời gọi từ clien t và hướng các lời gọi này đến các thành phần thuộc tiến trình khác

Khi client và thành phần đặt tại các máy khác nhau, D C O M chỉ thay truyền thông giữa tiến trình cục bộ bởi một giao thức mạng

Luận vân tốt nghiệp cao học

D é tài: M ộ t sô khiu cạnh /v thuyết và thực tiễn troní> x ử lý phản rán

Trang 35

T rang 34

2 2 4.1 Định vị các đối tượn

M ột trong những bộ phận trọng tâm của C O M là cơ ch ế thiết lập liên kết với

cá c thành phần và tạo ra các bản sao của các thành phần đó Những cơ ch ế này thường được gọi là những cơ ch ế kích hoạt

D CO M có thể tạo ra các đối tượng cụ c bộ và các đối tượng từ xa

Trong C O M , cá c lớp đối tượng được đặt tên theo các định danh tổng thể duy nhất (G U ID ) K hi các G Ư ID được dùng để tham chiếu đến các lớp đối tượng nhất định, thì chúng được gọi là cá c C lass ID Các Class ID này thực chất là các số nguyên lớn (128 bits) để tránh xung đột và phân quyền không gian tên cho các lớp đối tượng Đ ể tạo m ột đối tượng CO M mới, chúng ta sẽ gọi một trong số các hàm trong thư viện C O M

C lass factory là m ột đối tượng tồn tại để tạo ra các đối tượng (nên được gọi là

“factory”) của một lớp nào đó

J2) Manufacture Object

Hình 2.2 Class Factory

Đ ối với D C O M , cơ ch ế tạo đối tượng trong các thư viện C O M được nâng cao

để cho phép tạo đối tượng trên các máy khác nhau Đ ể tạo m ột đối tượng từ

xa, các hàm thư viện CO M cần biết tên mạng của server đó M ột khi đã biết tên server và định danh C L SID , một thành phần quản lý điều khiển dịch vụ —

S C M (S ervice Control M anager) của thư viện CO M trên máy client kết nối với SCM trên máy server và nó yêu cầu tạo đối tượng này

Luận van tốt nghiệp cao học

D ê tài: M ộ t sô k ììía cạnh /ý thuyết vù thực tiền noriíỊ xử lý phân tán

Trang 36

T rang 35

DCOM cung cấp 2 cơ ch ế cơ bản cho phép các client có ihể chỉ định tên server từ xa m ỗi khi:

- M ột đối tượng được tạo ra như m ột cấu hình cố định trong đăng ký

hệ thống, hoặc trong Lưu trữ lớp D C O M (D C O M Class Store)

- M ột đối tượng được tạo ra là tham số truyền qua các hàm

C o C re a te ln s ta n c e E x , C o G e tln sta n c e F ro m F ile ,

C o G e tln sta n c e F ro m S to ra g e , hoặc C o G e tC la ssO b je ct

D CO M có thể khỏi tạo các thành phần in-process từ xa thông qua tiến trình đại diện trên m áy tính xa đó Ngoài việc kích thích hoạt động từ xa, tiến

í rình đại diện còn cung cấp một số thuận lợi sau:

- Các lỗi trên server từ xa được tách khỏi tiến trình đại diện

- M ỗi tiến trình đại diện có thể phục vụ nhiều client đồng thời

- Các clien t tự bảo vệ khỏi những chương trình server trong khi truy cập cá c dịch vụ của các server đó

- Chạy m ột server in-process trong tiến trình đại diện

2 2 4 2 Đóng ẹói c á c đ ối tượng và các tham s ố

Khi một chương trình client muốn gọi đến m ột đối tượng khác không gian địa chỉ, các tham số cho lời gọi phải được truyền từ tiến trình client sang tiến trình của đối tượng C lient đặt các tham số trong ngăn xếp (coi ngăn xếp là cơ ch ế truyển tham số) Trong trường hợp gọi đối tượng trực tiếp, thì đối tượng lấy

cá c tham số từ ngăn xếp và cũng cất giá trị trả vể vào ngăn xếp đó

Đ ối với các lời gọi từ xa (cụ thể là khi trình gọi và đối tượng không dùng chung một ngăn xếp), một số mã chương trình (thường là các thư viện C O M ) phải đọc toàn bộ tham số từ ngăn xếp và ghi vào vùng đệm bộ nhớ để có thể truyền các tham số đó qua mạng Quá trình đọc tham số từ ngăn xếp vào vùng đệm gọi là đưa d ẫn {m arshal). V iệc đưa dẫn tham số không đơn giản, như trường hợp các tham số là các con trỏ, trỏ đến các mảng hoặc các cấu trúc Các cấu trúc này lại chứa các con trỏ, hoặc chứa các cấu trúc khác, có thổ dẫn đến tham chiếu quay vòng Đổ dẫn hướng các tham số phức tạp, m ã đưa dẫn phải đi theo toàn bộ phân cấp con trỏ của mọi tham số và khôi phục tất cả clữ liệu để có thể phuc hồi trong không gian tiến trình của đối tượng

Lập bản sao dưa dẫn là quá trình đọc các dữ liệu tham số và tái tạo lại m ột ngăn xếp sao cho giống như ngăn xếp gốc đã dược thiết lập bởi trình gọi Quá

Luận văn tốt nghiệp cao học

D ê rủi M ộ t s ố khiu cạnh iỹ thuyết vù thực tiễn trong x ứ ỉỷ phân tán

Trang 37

Trang 36

trình này gọi là nhận về (u n m arshal) Một khi ngăn xếp được tái tạo, đối tượng sẽ dược gọi Khi lời gọi kết thúc, các giá trị trả về và cá c tham số ra dược dẫn ra từ ngăn xếp của đối tượng, gửi về chương trình client, và được đặt vào ngăn xếp của tiến trình client

Công việc của proxy là đưa dẫn các đối số vào và n hận lại các giá trị trả về

và tham số ra được truyền về theo trình tự cá c lời gọi đến ghép nối của đối tượng proxy

Công việc của stub là n hận về các đối số hàm và truyền chúng cùng với đối tượng gốc, sau đó đưa dẫn các giá trị trả về và các tham số ra m à đối tượng đó trả về

Stub đại diện cho client trong không gian địa chỉ của đối tượng

C O M cung cấp các cơ ch ế phức tạp để đưa dẫn và nhận về các tham số hàm ,

c ơ ch ế này là nền tảng cơ sở xây dựng lên thủ tục lòi gọi từ xa (R P C - Rem ote

P rocedu re C all), một thành phần của chuẩn M ôi trường xử lý phân tán - D C E

( D istributed Computing Enviroment). Til ủ tục lời gọi xây dựng một biểu diễn

dữ liệu chuẩn cho mọi kiểu dữ liệu liên quan

Đ ể C O M có thể đưa dẫn và nhận về các tham số m ột cách đúng đắn, nó cần biết chính xác dấu hiệu của phương thức, bao gồm các kiểu dữ liệu, kiểu thành viên cấu trúc, kích thước của cá c mảng trong danh sách tham số Những m ô tả này được cung cấp qua ngôn ngữ định nghĩa ghép nối - ID L (.Interface

D efinition Language). C ác file ID L được biên dịch bởi một trình biên dịch đặc biệt (thường là M icrosoft ID L (M ID L )) Trình biên dịch ID L sinh ra các file m ã nguồn c chứa m ã thực hiện việc đưa dẫn và nhận về cho ghép nối được

m ô tả trong file ID L đó M ã phía client được gọi là proxy, và mã phía server được gọi là stub. Các proxy và các stub được tạo bởi M ID L và các đối tượng

C O M đều được nạp bởi các thư viện COM khi cần thiết

Khi một phương thức chứa tham số ra là một con trỏ ghép nối, C O M sẽ đưa dẫn con trỏ này bên phía đối tượng (tạo một stub) và nhận con trỏ đó bên phía client (tạo một proxy) Chương trình client sau đó có thể gọi proxy, proxy gọi stub, và stub gọi phương thức ghép nối

Khi một phương thức chứa tham số vào là một con trỏ ghép nối CO M sẽ dưa dẫn con trỏ ghép nối này bên phía client (lạo một stub) và nhận về con trỏ bên phía đối tượng (tạo một proxy) Sau dó, đối tượng có thể gọi proxy, proxy gọi stub (bên phía client), stub gọi phương thức ghép nối bên phía client

Khi chương trình client gọi các hàm activation của A PI, như

C o C re a te ín sta n c e CO M thường tạo một đối tượng và lấy một con trỏ ghép

Luận văn tốt nạhiệp cao học

t ìé tài: M ộ t sô khiu cạnh lý thuyết vù thực liền troniị xử lý phân tán

Trang 38

T ran g 3 7

nối biểu diễn cho đối tượng này Sau đó, nó đưa dẫn con trỏ ghép nối bên phía dôi tượng (như một tham số ra của m ột phương thức) và nhận về con trỏ bên phía client

Quá trình đưa dẫn m ột con trỏ ghép nối cũng có thể được m ở rộng C O M thông báo cho đối tượng rằng nó sắp sửa tạo proxy và stub cho m ột ghép nối cho trước Đ ối tượng có thể sử dụng quy tắc đưa dẫn chuẩn của C O M , hoặc cung cấp các đối tượng proxy và stub tuỳ biến

Khi đưa dẫn một con trỏ ghép nối, tập dữ liệu phải được đặt vào vùng đệm

N D R Khi C O M nhận về tập dữ liệu, nó cần m ột đối tượng C O M để thực hiện ghép nối được đưa dẫn Tập dữ liệu này được gọi là tham chiếu đối tượng -

O B JR E F (object referen ce).

2 2 4 3 Quán ì ý liền kết

C ơ ch ế chủ yếu để điều khiển thời gian tồn tại của một đối tượng là đếm tham chiếu (referen ce counting) sử dụng các phương thức Add R e f và R elease của

Lu ận văn tốt HỊịhiệp cao học

Đ ề lù i: M ộ t so khiu cạnh /v ílìiiv ê ỉ và thực tiễn rroniỊ x ứ IÝ p lu ìn ton

Trang 39

T rang 3 H

ghép nối IU nknow n D CO M tối ưu hoá các lời gọi A d d R e f và R elease cho

c á c đối tượng từ xa

Quá trình tối ưu hóa sử cỉụng các đối tượng O X ID (ob ject exporter identifier),

cá c đối tượng này thực thi ghép nối IR em U n k n o w n Đ ếm tham chiếu từ xa được điều khiển theo từng ghép nối (per ỈP ỈD interface poin ter identifier)

dùng các phương thức R e m A d d R e f và R e m R ele a se của IR em U n k n o w n Sử dụng một lời gọi đơn, R e m A d d R e f và R em R elease có thể tăng, giảm tuỳ ý biến đếm tham chiếu của nhiều IPID khác nhau

2 2 4 4 Quàn lý tươnq tranh và cá c m ô hình phân luồng

M ột tiến trình {p rocess) gồm một tập các không gian nhớ chứa mã chạy, dữ liệu và tài nguyên hệ thống

M ột luồng (thread) là một dòng thực thi qua một process Bộ xử lý chỉ thực hiện các thread chứ không phải các process Do đó, các ứng dụng 32-bit có tối thiểu một process và một thread

C ác process giao tiếp với process khác thông qua cá c thông điệp, dùng R P C

để truyền thông tin giữa các process, nên không có sự phân biệt các process là trên cùng một máy hay khác máy

M ỗi process có một thread chính {prim ary thread) và có thể có nhiều thread

K hi một thread được thực thi, nó tiếp tục cho đến khi nó kết thúc hoặc bị ngắt bởi một thread khác có quyền ưu tiên cao hơn (bởi người sử dụng, hoặc lịch trình thread của phần nhân hệ điều hành) C ác thread trong một process dùng chung các biến tổng thể và tài nguyên của process

C ác lời gọi hàm thông thường được đồng b ộ (synchronous), nghĩa là trình gọi phải đợi hàm đó kết thúc (trả về) trước khi xử lý tiếp

L u ậ n văn tót m ịhiệp cao học

D ề tài: M ộ i sò'khía cạn/ì lý thuyết vù thực tiền troiiỊị x ử /ý phàn tun

Trang 40

thức của đối tượng chỉ được gọi trực tiếp bởi một thread trong phòng đó M ọi thread khác muốn gọi đối tượng phải thông qua proxy.

C ó 2 loại phòng:

- Phòng đơn luồng {single-threaded apartm ent - S T A ): chỉ có m ột luồng thực thi cho mỗi phòng Do đó, mọi đối tượng C O M trong phòng đơn luồng chỉ có thể nhận các lời gọi phương thức từ một luồng trong phòng đó

- Phòng đa luồng {m ulti-threaded apartm ent - MTA): có thể có nhiều thread thực thi trong một phòng Nên các đối tượng C O M trong phòng

đa luồng có thể nhận các lời gọi phương thức trực tiếp từ bất cứ luồng nào trong phòng

M ột tiến trình có thể không có, hoặc có nhiều phòng đơn luồng; và có thể không có, hoặc có một phòng đa luồng

D o đó, một tiến trình có thể bao gồm :

- Chỉ có m ột phòng đơn luồng (single-threaded process)

- Nhiều phòng đơn luồng và không có phòng đa luồng (apartment model process)

- M ột phòng đa luồns; và không có phòng đơn luồng (free-threaded process)

- Một phòng đa luồng và có ít nhất một phòng đơn luồng {m ixed m odel process).

Luận vãn tôt nghiệp cao học

Đ ề tài M ộ t sò khíư cạnh /ý rhtiyct và thực tiễn troiiiỊ xử /v phàn tán

Ngày đăng: 30/09/2020, 19:56

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