Tải bản đầy đủ (.pdf) (110 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (49.36 MB, 110 trang )

TRƯỜNG ĐẠI HỌC QUỐC GIA HÀ NỘI
KH O A C Ô N G N GH Ệ
0 0 0
ĐẶN G HÀ VINH
MỘT SỐ KHÍA CẠNH LÝ THUYẾT VÀ THỰC TIEN
TRONG XỬ I Ý PHÂN TÁN
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
MÁ SỐ: ỉ 0110
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 /
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 UA 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 oncurrency) 12
1.3.4 Tính chịu lỗi (Fault tolerance) 15
1.3.5 Tính trong suốt (Transparency) 17
1.3.6 K hả năng thay đổi quy m ô (S a cla 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 20


1.5.1 Phân loại mức xử lý phân tán 20
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àng 24
1.5.2 Một số mô hình thiết kế hệ thống phân tá n

24
1.5.2.1 C ác đối tượng phân tán
24
1.5.2.1 Phần mểm trung gian 26
1.5.2.2 Phương pháp gọi thủ tục từ xa 27
1.5.2.3 Kiến true DCOM , COR 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 thiệ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 thiệ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
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 40
2.2.5 Một số nhận xét về DCOM
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 (CO R BA )

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 RB A 44
2.3.1.2 CORBA client và CO RBA server 62
2.3.1.3 Stub và Skeleton 63
2 .3 .1.4 CO RBA Services và CO 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 SI) 64
2.3.2 Các dịch vụ CORBA

.

.
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ững 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 tranh
73
2.3.2.6 Dịch vụ thể hiện đối tượng 74
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.10 Dịch vụ cấp phép 75

2.3.2.11 Dịch vụ về quyền sở hữu 75
2.3.2.12 Dịch vụ thời g ia n 76
2.3.2.13 Dịch vụ bảo m ật 76
2.3.2.14 Dịch vụ giới thiệu đối tượng 76
2.3.2.15 DỈch vụ tạp hợp 76
2.3.3. Các đặc điểm của CO RBA 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 RB A 78
2.3.4.1 G iống n h a u 78
2 .3.4.2 .Khác nhau 79
2.3.4.3 Nguyên tắc ánh xạ CORBA sang C O M 79
2.3.5 Kiến trúc CORBA và các yêu cầu phần mềm trung gian

79
2.3.5.1 Định nghĩa giao diệ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 CO RBA 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
Tranq 3
2.3.6.2 Chương trình Client 81
2 .4 Kết luận

.
81
CHUƠNG 3. CÔN G c ụ PHÁT TR IẺN C O RB A t r o n g c á c h ệ TH ố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 VisiBroker
.
83
3 .1 .2 O rbix

.



84
3.1.3 Orbit
.

.

85
3.1.4 EO R B

85
3.1.5 Oracle Application Server (O AS) 85
3.1.6 Oracle 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ượng

91
3.2.1.3 Các tiêu chí đánh giá khá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ụ CO RBA 97
CH ƯƠNG 4. H Ệ TH Ố N G TH Ử N G H IỆM ÚNG D Ụ N G K IÊN TR Ú C
C O R B A
* 99
4.1 Lựa chọn và mô tả bài toán 99

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 orb 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ử nghiệm 104
4.3 Nhận xét chung về kết quả áp dụng thực tiễn 106
KẾT LU Ậ N 108
TÀ I LIỆ U TH AM 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
Tran É,' 6
BẢNG CÁC THUẬT NGỮ VIẾT TẮT
Viết tát Tiếng Anh
Tiếng Việt
API Application Programming
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 BA Common O bject Request
Broker Architecture
Kiến trúc môi trường yêu cầu đối
tượng chung
DCOM

Distributed Component Object
M odel
M ô hình đối tượng thành phần
phân tán
D CE Distributed Computing
Environment
M ôi trường tính toán phân tán
DII Dynamic Invovation Interface
Giao diện gọi động
DSI Dynamic Skeleton Interface
Giao diện gọi Skeleton động
IDL Interface D efinition Language
Ngôn ngữ định nghĩa giao diện
ĩ PC
InterProcess Communication
Truyền thông liên tiến trình
O L E Object Link Embeded
Liên kết đối tượng được nhúng
OM A
Object Management
Architecture
Kiến trúc quản lý đối tượng
OM G
O bject M anagement 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 bject Request Broker
Môi trường yêu cầu đối tượng
POA Portable O bject Adapter
Thành phần thích nghi đối tượng

linh động
RM -O D P Reference Model — open
Distributed Processing
Mô hình tham chiếu xử lý phân
tán mở
R PC
Rem ote Procedure Call Gọi thủ tục từ xa
S1I
Static Interface Invocation Phương pháp gọi giao diện tĩnh
SNM P Simple Network Management
Protocol
Giao 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 7
RMI
Java Remote Method
Gọi thao tác từ xa ứng dụng trong
Invocation
Java
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 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ính đ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 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.
- Chương 3: Công cụ phát triển CORBA trong các hệ thống xử lý phân
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.
- Chương 4; Hệ thống thử nghiệm ứng dựng kiến trúc C orba; Thực hiện
thử nghiệm một hệ thống phân tán nhỏ dựa trên kiến trúc CORBA 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ô giáo K hoa công nghệ - Trường Đại học qu ốc gia H à nội, và đặc biệ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 H
CHƯƠNG 1. TỔNG QUAN VỂ HỆ THỐNG PHÂN TÁN
Tóm lược: Nội dung chính của chương s ẽ 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, đồ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
Khá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.
- Chia 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
Tran ÍỊ 9

quản lý và quyền sở hữu dữ liệu: cho phép truy nhập và sử dụng theo
quyền được cho phép.
Hệ phân tán bao gồm một tập các máy tính tự trị, được kết nối với nhau nhờ
một mạng máy tính, và được cài đặt phần mềm hệ phân tán.
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.
1.2 Mô hình xử lý phân tán mở
Việc phát triển các ứng dụng trong hệ thống phân tán thường gặp một số khó
khăn sau:
- Khác hiệt chủnq loại: Trên mạng có nhiều loại máy tính và thiết bị
mạng của nhiều nhà sản xuất khác nhau và các máy tính được cài đặt
các hệ điểu hành khác nhau.
- 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
- Tính rủi ro sản phẩm ca 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, Windows NT, Windows 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. Xu 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
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ông 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.
1.3.2 Tính mở (Openess)
Tính mở của một hệ thống máy tính là đặc điểm để xác định xem liệu hệ
thống có thể mớ rộng bằng nhiều cách được không.
Trong công nghệ phần mềm, một hộ thống được xem là có tính mở nếu hệ
thống đó đáp ứng được 2 tính chất sau:
Trang 11
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 12
- Tính d ễ tươn ẹ tá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:
- Tương tranh chủ độn %: Trong hệ thống phân tán, VI nhiều mục đích
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 ỉ 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.
Việ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° (ươnẹ tranh: 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àng lớn. Do 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 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. Trong 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ể.
- Khoá 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
- Khắ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
T n iììi’ I(y
- Khả năng phát hiện lỗi. Bao gồm việc phát hiện ra lỗi, xác định hoặc
chẩn doán lỗi.
- K hả nàng tự sửa lỗi: Các lỗi được phát hiện, và được định danh sẽ được
sửa chữa. Các lồi được chẩn đoán (có thể không chính xác) sẽ được tìm
kiếm các giải pháp có thể để giúp người sử dụng lựa chọn phương pháp
phục hồi. Các lỗi không thể chẩn đoán sẽ được cảnh báo để người sử
dụng có biện pháp xử lý, đồng thời phục hồi về trạng thái ban đầu như
trước khi tiến hành xử lý.
Để 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:
- Tâng đ ộ dư thừa tài nguyên phần cứnq: Hệ thống sẽ dự phòng nhiều
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.
- Tăng khả năng phục hồi cho hệ thốn ạ phần mềm: Hệ thống phần mềm
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. Do 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 rroiìiỉ xử lý phán tán
Tranq 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 (mediation 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.
- Trong 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.
- Trong suất lặp: cho phép nhiều bản sao của các đôi tượng được sử dụng
để 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 đó.
- Tron ẹ suố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
Tra 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.
- Trong suốt hiệu năng: cho phép cấu hình lại hộ thống để tăng hiệu
năng.

- Trong suốt quy mô: cho phép các thành phần trong hệ thống có thể thay
đổ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)
Khả 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).
Khả 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 19
- Tính hiệu năng
- Đ ộ tin cậy
- Khả năng thay đổi quy mô
- Tính nhất quán
- 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 danh : 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ông: 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 được
việ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 phầ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ông 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

Duv trì tính nhất qu á 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ý (Client/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ình
trên các máy tính cùng sử dụng inột giao thức để trao đổi thông tin với nhau
dướ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 RPC, 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 Client/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.

Tra 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
Tran I* 2 1
Cơ ch ế truyền tin sử dụng truyền tin báo giữa các tiến trình (IPC), nó cho phép
cài đặt các liến trình Client và Server trên các máy tính khác nhau.
M ô hình Client/Server đóng vai trò quan trọng trong các hệ thống phân tán, nó
có các đặc trưng sau:
- 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 module khi Client đưa ra
ycu cầu dịch vụ và được Server đáp lại. Khái niệm Client 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 module khác.
- Trao đổi thông tin giữa các module đượ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 Client đượ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à module 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 Client/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.
- Mức ứng dụng: là các phần mềm cung cấp các chức năng nghiệp vụ

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 hia 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
Tran fi 22
nhập thường sứ dụng ngôn ngữ SQ L để thống nhất các thao tác truy
xuất dữ liệu đã hỗ trợ cho người sử dụng dễ dàng truy nhập dữ liệu.
- C á c dịch vụ tích hợp: Người sử dụng được quyền truy nhập đểu có thể
nhận được thông tin cần thiết từ các máy trạm và có thể xử lý các thông
tin này theo nhu cầu sử dụng. Theo quyền truy nhập, Client sử dụng
chung các dịch vụ do Server cung cấp.
- 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 Client/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 ông phụ thuộc thiế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 Server
Phần mềm trung
gian Client
(M iddleware)
Phần mểm trung
gian Server
(M iddleware)
Dich vu Dich vu
Dich vu
Dịch vụ
cục bộ mạng mạng
cục bộ
Hê điều hành và
Hê diều hành và
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
De tài: M ột sô khía cạnh lý thuyết vù thực tiền troiHỊ
,\
li' IV phân tán
Hình 1.1 thể hiện các thành phần cơ bản trong mô hình Client/Servcr, bao
gồm :

- Các tiến trình Client, Server
- Phần mềm trung gian (M iddleware)
- Các dịch vụ mạng
- Các dịch vụ cục bộ (ví dụ: quản lý cỉữ liệu và quản lý tiến trình)
- Hệ điều hành và thiết bị phần cứng
- Tiến trình Client thực hiện các chức năng lớp ứng dụng ở phía Client,
nó có các đặc điểm sau:
• 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
• Giao 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
- Tiế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 iddlew 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 iddlew 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 iddleware 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 24
- Xử lý điều khiển truy nhập
- Server M id dlew 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
• Giá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à Client, 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
Xu 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.
Luậ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

×