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

Truyền bá thông tin phân tán giữa các tác tử di động

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 (1.61 MB, 118 trang )

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





LÊ TRỌNG HÙNG





TRUYỀN BÁ THÔNG TIN PHÂN TÁN
GIỮA CÁC TÁC TỬ DI ĐỘNG







LUẬN VĂN THẠC SĨ










Hà Nội, 2008
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ




LÊ TRỌNG HÙNG




TRUYỀN BÁ THÔNG TIN PHÂN TÁN
GIỮA CÁC TÁC TỬ DI ĐỘNG



Ngành: Công nghệ Thông tin
Chuyên ngành: Truyền dữ liệu và Mạng máy tính
Mã số: 60 48 15



LUẬN VĂN THẠC SĨ



HƯỚNG DẪN KHOA HỌC
TS. NGUYỄN ĐẠI THỌ





Hà Nội, 2008

1
MỤC LỤC

LỜI CAM ĐOAN Error! Bookmark not defined.
LỜI CẢM ƠN Error! Bookmark not defined.
MỤC LỤC 1
BẢNG THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT 3
DANH MỤC HÌNH VẼ, GIẢI THUẬT 5
MỞ ĐẦU 7
CHƯƠNG 1. HỆ PHÂN TÁN 10
1.1. Khái niệm hệ phân tán 10
1.2. Vai trò hệ phân tán 10
1.3. Đặc trưng hệ phân tán 11
1.4. Mô hình truyền thông báo 11
1.5. Công nghệ tác tử di động 14
1.5.1. Sự tiến hóa 14
1.5.2. Các đặc tính của tác tử di động 15
1.5.3. Ứng dụng của tác tử di động 15
CHƯƠNG 2. BẦU THỦ LĨNH TRÊN MẠNG ĐẦY ĐỦ 17
2.1. Giới thiệu bài toán 17
2.2. Mô hình tính toán phân tán 17
2.3. Giải thuật bầu thủ lĩnh Villadangos 18
CHƯƠNG 3. XÂY DỰNG CÂY KHUNG TỐI THIỂU 27
3.1. Bài toán cây khung tối thiểu 27

3.2. Giải thuật GHS83 27
3.3. Giải thuật SB95 36
CHƯƠNG 4. TRUYỀN BÁ THÔNG TIN PHÂN TÁN 47
GIỮA CÁC TÁC TỬ DI ĐỘNG 47
4.1. Bài toán MAGP – Mobile Agent Gossip Problem 47
4.2. Một số khái niệm 47
4.3. Mối quan hệ giữa MAGP và NLEP 48
4.3.1. Hệ thống truyền thông báo 49
4.3.2. Mô phỏng một giải thuật truyền thông báo 50
4.4. Giải thuật hẹn gặp (Rendezvous Algorithm) 53
4.5. Các giải thuật cho MAGP 54
4.5.1. Mạng bất kỳ 54
4.5.2. Mạng đầy đủ không cảm hướng 68
4.5.3. Mạng đầy đủ cảm hướng 69

2
CHƯƠNG 5. GIẢI THUẬT ĐỀ XUẤT CHO MAGP TRÊN MẠNG ĐẦY ĐỦ 74
5.1. Phát biểu bài toán 74
5.2. Ý tưởng, cấu trúc dữ liệu 74
5.3. Giải thuật 76
CHƯƠNG 6. GIẢI THUẬT ĐỀ XUẤT CHO MAGP TRÊN MẠNG BẤT KỲ 94
6.1. Phát biểu bài toán 94
6.2. Ý tưởng, cấu trúc dữ liệu 94
6.3. Giải thuật 97
KẾT LUẬN 112
TÀI LIỆU THAM KHẢO 115





























3
BẢNG THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT

Mobile Agent
Tác tử di động, là một chương trình tự trị có khả năng di
chuyển trên mạng và thực hiện nhiệm vụ tại mỗi nút.

MAGP (Mobile Agent
Gossip Problem)
Bài toán truyền bá thông tin phân tán giữa các tác tử di
động, ban đầu mỗi tác tử có một thông tin riêng, mục
đích của MAGP là mỗi tác tử biết thông tin của tất cả các
tác tử còn lại.
NLEP (Node Leader
Election Problem)
Bài toán bầu thủ lĩnh giữa các nút trong mô hình truyền
thông báo.
Rendezvous Algorithm
Giải thuật hẹn gặp, một cách tiếp cận để giải quyết bài
toán MAGP.
GHS83
Giải thuật xây dựng cây khung tối thiểu phân tán của
R.G. Gallager, P.A. Humblet, P.M. Spira [19].
SB95
Giải thuật xây dựng cây khung tối thiểu phân tán của
Gurdip Singh, Arthur J. Bernstein [8].
MST (Minimum-
Weight Spanning Tree)
Cây khung có trọng số tối thiểu.
RPC (Remote
Procedure Call)
Một giao thức cho phép gọi thủ tục từ xa.
REV (Remote
Evaluation)
Một giao thức cho phép gửi hàm đến nút mạng, thực thi
hàm này trên nút đó, rồi trả về kết quả.
INF (Inform)

Báo tin
REQ (Request)
Yêu cầu
REP (Reply)
Trả lời
Node
Một địa điểm lưu trữ và xử lý dữ liệu trên mạng.
MOE (Minimum –
weight Outgoing Edge)
Cạnh ngoài có trọng số tối thiểu trong số các cạnh ngoài
của một mảnh thuộc cây khung MST.
Whiteboard
Bảng trắng của một nút, là nơi tác tử có thể ghi, đọc và
xóa thông tin.
Delivering move
Bước chuyển giao: bước di chuyển với một thông báo
của một tác tử.

4
Backtracking move
Bước chuyển quay lui của một tác tử.
Rendezvous Algorithm
Giải thuật hẹn gặp, các tác tử hẹn gặp nhau ở một điểm
nút nào đó trên mạng để trao đổi thông tin.
DFS (Depth First
Search)
Duyệt mạng theo chiều sâu.
MOL (Minimum
Outgoing Link)
Liên kết ngoài tối thiểu của một cây khung.

Gossip, Gossiping
Giải pháp truyền bá phân tán phỏng theo quá trình phổ
biến tin đồn hay lây nhiễm bệnh tật trong xã hội.


























5

DANH MỤC HÌNH VẼ, GIẢI THUẬT

Hình 1.5.1-1.
Sự tiến hóa của mô hình Mobile agents
16
Giải thuật 2.3-1.
Giải thuật bầu chọn thủ lĩnh Villadangos
20
Hình 2.3-1.a.
Trạng thái ban đầu của mạng
23
Hình 2.3-1.b.
Nút 2, 4 khởi tạo giải thuật
24
Hình 2.3-1.c.
Nút 1, 3 chuyển thông báo
24
Hình 2.3-1.d.
Nút 4 gửi yêu cầu tới nút 2
25
Hình 2.3-1.e.
Nút 2 trả lời nút 4
25
Hình 2.3-1.f.
Nút 4 trở thành thủ lĩnh
25
Hình 3.2-1.
Minh họa chứng minh tính chất 1
30
Hình 3.2-2.

Minh họa chứng minh tính chất 2
31
Giải thuật 3.2-1.
Giải thuật GHS83
32
Hình 3.2-1.a.
Mạng ban đầu
36
Hình 3.2-1.b.
Khởi động giải thuật
36
Hình 3.2-1.c.
Đánh thức nút kề cận
36
Hình 3.2-1.d.
Đợt sát nhập đầu tiên
36
Hình 3.2-1.e.
Kết thúc đợt sát nhập đầu
37
Hình 3.2-1.f.
Kết thúc giải thuật
37
Giải thuật 3.3-1.
Giải thuật SB95
39
Hình 3.3-1.a.
Mạng ban đầu
43
Hình 3.3-1.b.

Nút 1 đánh thức các nút khác
43
Hình 3.3-1.c.
Đợt trộn mảnh đầu tiên
44
Hình 3.3-1.d.
Mảnh F
3
, F
7
hấp thu mảnh khác
44
Hình 3.3-1.e.
Mảnh F
3
, F
7
tìm MOE
44
Hình 3.3-1.f.
F
7
chính là cây khung MST
44
Giải thuật 4.3-1.
Giải thuật mô phỏng giải thuật A
53
Giải thuật 4.5.1-1.
Giải thuật cho MAGP với mạng tùy ý
57

Giải thuật 4.5.1-2.
Giải thuật chi tiết cho MAGP với mạng bất kỳ
60

6
Hình 4.5.1-1.a.
Trạng thái mạng ban đầu
64
Hình 4.5.1-1.b.
Đợt khởi tạo
64
Hình 4.5.1-1.c.
Tác tử tìm liên kết có trọng số tối thiểu
65
Hình 4.5.1-1.d.
Kết thúc lần lặp đầu tiên
65
Hình 4.5.1-1.e.
Thực hiện sát nhập cây khung T
2
và T
3

66
Hình 4.5.1-1.f.
Kết thúc đợt bầu chọn tác tử thủ lĩnh
66
Giải thuật 4.5.2-1.
Giải thuật cho MAGP với mạng đầy đủ không cảm hướng
70

Hình 4.5.3-1.a.
Mạng đầy đủ cảm hướng
72
Hình 4.5.3-1.b.
Một tác tử di chuyển ở bước 1
72
Hình 4.5.3-1.c.
Vòng rút gọn ở bước 2
72
Giải thuật 4.5.3-1.
Giải thuật cho MAGP với mạng đầy đủ cảm hướng
73
Giải thuật 5.3-1.
Giải thuật đề xuất cho MAGP với mạng đầy đủ
79
Hình 5.3-1.a.
Trạng thái ban đầu của mạng
86
Hình 5.3-1.b.
Vòng ảo rút gọn
87
Hình 5.3-1.c.
Khởi tạo đợt bầu chọn
87
Hình 5.3-1.d.
Các tác tử thực hiện thủ tục INF
88
Hình 5.3-1.e.
Tác tử 1 thực hiện thủ tục INF tại nút 5
88

Hình 5.3-1.f.
Tác tử 1 thực hiện thủ tục REP tại nút 7
89
Hình 5.3-1.g.
Tác tử 1 thực hiện thủ tục REQ tại nút 1
89
Hình 5.3-1.h.
Tác tử 4 được bầu chọn làm thủ lĩnh
90
Giải thuật 6.3-1.
Giải thuật đề xuất cho MAGP với mạng bất kỳ
100
Hình 6.3-1.a.
Trạng thái mạng ban đầu
105
Hình 6.3-1.b.
Đợt khởi tạo
106
Hình 6.3-1.c.
Tác tử p
2
tìm thấy liên kết ngoài tối thiểu
106
Hình 6.3-1.d.
Cây khung T
3
hấp thu T
2
, p
3

tìm thấy MOL
3
= (2, 5)
107
Hình 6.3-1.e.
Cây khung T
3
hấp thu T
1
, p
3
tìm kiếm MOL
3

107
Hình 6.3-1.f.
Tác tử p
3
được bầu chọn làm tác tử thủ lĩnh
108
Bảng 1.
Bảng so sánh giải thuật đề xuất với giải thuật gốc
116


7
MỞ ĐẦU

Với sự phát triển mạnh mẽ của Internet và đặc biệt là các công nghệ truyền
thông, cùng với sự bùng nổ nhanh chóng các dịch vụ và nguồn thông tin trên mạng đã

làm gia tăng số người sử dụng lên con số khổng lồ. Trao đổi và quảng bá thông tin là
một nhu cầu thiết yếu của các thành phần tham gia vào mạng, ngoài ra nó còn đóng vai
trò hạ tầng cho nhiều dịch vụ quan trọng khác như: cải tiến hiệu năng của mạng, chuẩn
đoán lỗi và duy trì sự ổn định của hệ thống mạng, quản lý cấu hình, lập lịch hội họp,
tính toán thông tin gộp, nhân bản nội dung, Vì vậy, việc nghiên cứu các giải pháp
truyền bá thông tin phân tán hiệu quả cao luôn là một chủ đề hấp dẫn đối với các học
giả khắp nơi trên thế giới.
Giải thuật gossiping là một giải pháp truyền bá thông tin phân tán, phỏng theo
quá trình phổ biến tin đồn hay lây nhiễm bệnh tật trong xã hội. Trong bài toán gossip,
mỗi bộ xử lý ban đầu có phần thông tin riêng được gọi là tin đồn, mục đích là mỗi bộ
xử lý nhận được các tin đồn của tất cả các bộ xử lý khác. Phương pháp này đã được
nhiều tác giả tập trung nghiên cứu và đã có những thành quả nhất định [5,12,21,22].
Tác tử di động (Mobile Agent) là một chương trình tự trị có khả năng di chuyển
từ nơi này đến nơi khác trên mạng và thực hiện nhiệm vụ nào đó thay cho người dùng.
Phương pháp tác tử di động giúp làm giảm tải mạng, tạo ra những ứng dụng phân tán
có tính thích nghi và độ linh hoạt cao, có thể giải quyết hiệu quả hơn các bài toán được
giải quyết bằng phương pháp khác trong các hệ phân tán [2].
Truyền bá thông tin phân tán giữa các tác tử di động (Mobile Agent Gossip
Problem – MAGP) là một hướng nghiên cứu mới, thu hút nhiều sự quan tâm của giới
nghiên cứu. Ở đây mỗi tác tử có một thông tin riêng, có không quá một tác tử khởi tạo
trên cùng một nút, mục đích của MAGP là làm cho mỗi tác tử thu thập thông tin của
tất cả các tác tử còn lại.
Rendezvous (hẹn gặp) là một trong những cách tiếp cận để giải quyết bài toán
truyền bá thông tin phân tán giữa các tác tử, tất cả các tác tử được yêu cầu hẹn gặp trên
một nút tại cùng một thời điểm, bằng cách trao đổi thông tin của tất cả các tác tử tại
điểm hẹn gặp, chúng ta giải được bài toán MAGP. Như vậy, mỗi tác tử phải biết rõ
hình trạng của toàn mạng, thời điểm và vị trí hẹn gặp, để đạt được điều này, ngoài việc
xử lý phức tạp, giải thuật còn chịu nhiều phí tổn về độ phức tạp di chuyển
[7,14,16,20].
Tomoko Suzuki và đồng sự đề xuất cách giải quyết bài toán MAGP hiệu quả

hơn: một tác tử sẽ được bầu làm thủ lĩnh trong số các tác tử trong mạng, tác tử thủ lĩnh
sẽ duyệt toàn mạng để thu thập và truyền bá thông tin cho các tác tử khác [23,24]. Từ
khẳng định hai bài toán MAGP và NLEP (Node Leader Election Problem - NLEP) có

8
thể quy về nhau, và dựa trên ý tưởng của các giải thuật bầu thủ lĩnh trong mô hình
truyền thông báo, Tomoko Suzuki và đồng sự đã đưa ra một loạt các giải thuật cho bài
toán MAGP với các hình trạng mạng khác nhau như: mạng cây không biết gốc, mạng
đầy đủ không cảm hướng, mạng đầy đủ cảm hướng, mạng tùy ý, mạng vòng không
đồng bộ, mạng vòng đồng bộ, với độ phức tạp tốt hơn hẳn giải thuật hẹn gặp. Tuy
nhiên, giải thuật cho mạng bất kỳ mới chỉ đưa ra ở mức ý tưởng, giải thuật cho mạng
đầy đủ phải dùng thêm giả thiết cảm hướng để đạt được độ phức tạp di chuyển tuyến
tính, những đánh giá về các giải thuật này mới ở mức sơ lược về độ phức tạp di
chuyển. Trên cơ sở ý tưởng của giải thuật gốc, tác giả luận văn đã trình bày một giải
thuật chi tiết cho bài toán MAGP trên mạng bất kỳ, và đưa ra một số phương pháp tối
ưu bước di chuyển của tác tử, nâng cao tốc độ thực hiện của giải thuật, có chứng minh
tính đúng đắn, đánh giá đầy đủ về độ phức tạp di chuyển và thời gian của giải thuật.
Tác giả luận văn đề xuất một giải thuật cho bài toán MAGP trên mạng bất kỳ, có
đợt bầu chọn tác tử thủ lĩnh là một cải biến từ giải thuật xây dựng cây khung SB95[8].
Giải thuật không cần dùng đến số hiệu mức. Trong giải thuật gốc, mỗi cây khung sẽ
được gắn một số hiệu mức, các cây khung được trộn với nhau dựa vào số hiệu mức,
tức cây khung T với số hiệu mức L chỉ có thể trộn với cây khung T

với số hiệu mức
L

, qua liên kết ngoài có trọng số tối thiểu của T chỉ khi L  L

, vì vậy giải thuật gốc có
độ phức tạp thời gian O(N log k + |E|) không tối ưu. Với giải thuật đề xuất, khi tác tử

chủ đã xác định được liên kết ngoài có trọng số tối thiểu trên cây khung của nó, tác tử
tiến hành sát nhập ngay cây khung của nó với cây khung khác qua liên kết này, điều
này làm tăng tốc độ hội tụ của giải thuật. Giải thuật đề xuất có độ phức tạp thời gian
O(N + |E|) tối ưu hơn hẳn độ phức tạp thời gian của giải thuật gốc. Độ phức tạp di
chuyển của giải thuật đề xuất trong trường hợp xấu nhất là O(N k + |E|), độ phức tạp
này không tối ưu. Tuy nhiên, khi mỗi cây khung là sự kết hợp của ít nhất k/log k cây
khung ban đầu, thì độ phức tạp của giải thuật chỉ còn là O(N log k + |E|).
Tác giả luận văn đề xuất một giải thuật giải quyết bài toán MAGP trên mạng đầy
đủ tối ưu hơn giải thuật gốc, bằng cách vận dụng ý tưởng giải thuật bầu thủ lĩnh trên
mạng đầy đủ hiệu quả hơn trong mô hình truyền thông báo.
Luận văn được tổ chức thành 6 chương, nội dung cụ thể từng chương như sau:
Chương 1: Giới thiệu tổng quan về hệ phân tán, vai trò, đặc trưng, mô hình
truyền thông báo và công nghệ tác tử di động [1,2,11,17,25].
Chương 2: Trình bày một giải thuật bầu thủ lĩnh hiệu quả trên mạng đầy đủ của
tác giả J. Villadangos và đồng sự [13]. Chỉ với giả thiết tồn tại một vòng ảo kết nối
logic tất cả các nút trong mạng, mỗi nút trên vòng ảo biết nút kế tiếp nó trên vòng, mà
không cần phải biết tất cả các nút cũng như tổng số nút trong mạng, giải thuật vẫn đạt
được độ phức tạp tuyến tính cả về thông báo và thời gian.

9
Chương 3: Trình bày hai giải thuật xây dựng cây khung tối thiểu: giải thuật
GHS83 của Gallager và đồng sự [19], giải thuật SB95 của Singh và Bernstein [8]. Cả
hai giải thuật này đều xây dựng cây khung tối thiểu phân tán từ rừng cây khung, mỗi
cây khung trộn với cây khung khác qua cạnh ngoài có trọng số tối thiểu của nó, cho
đến khi chỉ còn một cây khung duy nhất bao trùm toàn bộ mạng, đây chính là cây
MST cần tìm. Trong GHS83, mỗi mảnh được gắn một số hiệu mức, các mảnh được
trộn trên cơ sở số hiệu mức, chính điều này làm chậm tốc độ hội tụ của GHS83, giải
thuật có độ phức tạp thời gian O(N log N) không tối ưu. Giải thuật SB95 không sử
dụng số hiệu mức, ngay khi mảnh tìm được cạnh ngoài có trọng số tối thiểu của nó,
mảnh sẽ thực hiện sát nhập với mảnh khác qua cạnh này, giải thuật có độ phức tạp thời

gian là O(N) tối ưu hơn hẳn GHS83.
Chương 4: Trình bày mô hình hệ tác tử di động, mối quan hệ giữa hai bài toán
MAGP và NLEP, giải thuật hẹn gặp, các giải thuật cho MAGP được đề xuất bởi
Tomoko Suzuki và đồng sự trên mạng bất kỳ, mạng đầy đủ không cảm hướng, mạng
đầy đủ cảm hướng [23,24]. Trong phần này, tác giả luận văn đóng góp một giải thuật
chi tiết cho bài toán MAGP trên mạng bất kỳ, dựa trên giải thuật ở mức ý tưởng về
mạng bất kỳ của Tomoko Suzuki và đồng sự.
Chương 5: Trình bày giải thuật đề xuất cho bài toán MAGP trên mạng đầy đủ,
vận dụng ý tưởng của giải thuật bầu thủ lĩnh trên mạng đầy đủ của J. Villadangos và
đồng sự. Giải thuật không cần dùng giả thiết cảm hướng, mỗi nút trong mạng không
cần biết tất cả các nút trong mạng cũng như là tổng số nút trong mạng, mà chỉ cần biết
nút kế tiếp nó trên vòng ảo nối tất cả các nút trong mạng, nhưng vẫn đạt được độ phức
tạp bước di chuyển tốt hơn giải thuật gốc.
Chương 6: Trình bày giải thuật đề xuất cho bài toán MAGP trên mạng bất kỳ.
Giải thuật có đợt bầu chọn tác tử lĩnh là một cải biến từ giải thuật xây dựng cây khung
SB95. Giải thuật có độ phức tạp thời gian tối ưu hơn hẳn so với giải thuật gốc.
Cuối cùng là kết luận, tóm lược những đóng góp của luận văn, đồng thời đưa ra
một số hướng phát triển tiếp theo.









10
CHƯƠNG 1. HỆ PHÂN TÁN


1.1. Khái niệm hệ phân tán
Hệ phân tán là tập các thiết bị tính toán riêng rẽ có thể giao tiếp với nhau. Đây
là một định nghĩa hết sức tổng quát bao trùm một phạm vi rộng các hệ thống máy tính
hiện đại ngày nay, từ chíp VLSI đến các bộ đa xử lý, các mạng cục bộ và Internet.
Mục đích của xử lý song song là phân bổ một nhiệm vụ lớn cho tất cả các bộ xử
lý thực hiện. Trong khi với hệ phân tán, mỗi bộ xử lý nói chung có chương trình làm
việc riêng bán độc lập, nhưng vì các lý do khác nhau như chia sẻ tài nguyên, tính sẵn
sàng, khả năng kháng lỗi, nên các bộ xử lý cần phối hợp hành động với nhau.
Hiện nay, hệ phân tán có ở khắp nơi, trong các doanh nghiệp, học viện, chính
phủ, quốc phòng, Điển hình, hệ phân tán cung cấp những phương tiện để chia sẻ các
tài nguyên như các máy in màu, máy quét, và chia sẻ dữ liệu. Tính toán ngang hàng
cũng là một mô hình hệ phân tán, chúng ngày càng càng trở nên phổ biến trong việc
cung cấp các tài nguyên và dịch vụ tính toán. Các hệ thống phân tán tham vọng hơn cố
gắng cải tiến hiệu năng bằng cách kết hợp giải quyết các bài toán con một cách song
song, và tăng tính sẵn sàng trong trường hợp một số thành phần của hệ thống bị lỗi.

1.2. Vai trò hệ phân tán
Với nhiều ứng dụng nổi bật trong thực tiễn, hệ phân tán đang ngày càng trở nên
phổ biến, bởi nó nắm giữ những vai trò quan trọng sau:
Trao đổi thông tin: Các hệ phân tán cung cấp khả năng chia sẻ thông tin rộng rãi.
Các chi nhánh khác nhau của một ngân hàng tại các vị trí địa lý rất xa nhau có thể trao
đổi, chia sẽ thông tin cho nhau. Hệ phân tán cũng cung cấp khả năng chia sẻ thông tin
giữa các thiết bị hỗn tạp, một máy tính có thể giao tiếp các thiết bị viễn thông khác
như điện thoại cố định, di động, các PDA, …
Chia sẻ tài nguyên: Các hệ phân tán cung cấp khả năng chia sẻ tài nguyên cả
phần cứng lẫn phần mềm, giúp giảm chi phí hệ thống. Các máy tính kết nối mạng có
thể dùng chung máy in, máy quét ảnh, có thể chia sẻ các tệp dữ liệu, các tệp chương
trình.
Nâng cao độ tin cậy, tính sẵn sàng thông qua sao lặp: Bằng việc sao lặp, nhân
bản, các hệ phân tán cho độ tin cậy và tính sẵn sàng cao. Nếu toàn bộ dữ liệu của một

chi nhánh ngân hàng lưu trong máy tính bị mất do sự cố nào đó, người ta có thể khôi
phục lại bằng cách sao phần dữ liệu nhân bản đã được lưu tại một nơi khác trên hệ
thống máy tính.

11
Nâng cao hiệu suất thông qua song song hóa: Thông qua song song hóa, các
thành phần trong hệ phân tán có thể chia sẻ công việc, thực hiện đồng thời công việc
chung, làm tăng hiệu suất hoạt động hệ thống.
Đơn giản thiết kế thông qua chuyên dụng hóa: Hệ phân tán làm đơn giản việc
thiết kế các hệ thống phức tạp. Người ta có thể phân một hệ thống phức tạp thành các
bộ phận con chuyên dụng thực hiện một số tác vụ chuyên biệt nào đó và hợp tác với
nhau để giải quyết nhiệm vụ lớn.

1.3. Đặc trưng hệ phân tán
Một hệ phân tán có thể được mô tả như là một tập các bộ xử lý tự trị liên lạc với
nhau qua một mạng truyền thông và có các đặc trưng sau:
Không có đồng hồ chung: Không thể đồng bộ hóa đồng hồ của các bộ xử lý
khác nhau vì không biết chắc độ trễ truyền thông. Chúng ta có thể dùng khái niệm
nhân quả thay cho đồng hộ vật lý để đạt được tính đồng bộ của hệ thống.
Không có bộ nhớ toàn cục: Các bộ xử lý không thể biết được trạng thái toàn cục
của hệ thống. Bởi vậy để biết được trạng thái hệ thống, người thiết kế hệ phân tán cần
phải xây dựng giải thuật đánh giá các tính chất toàn cục.
Không có cơ chế phát hiện sự cố chính xác: Trong hệ phân tán, chúng ta không
thể phân biệt được bộ xử lý chậm hay bị sự cố. Khi một bộ xử lý gặp sự cố, các bộ xử
lý còn lại vẫn phải tiếp tục làm việc để đạt được kết quả mong muốn. Do đó, cần xây
dựng cơ chế phát hiện lỗi và kháng lỗi.
Khoảng cách địa lý: Các bộ xử lý trong một hệ thống phân tán có thể nằm cách
xa nhau về mặt địa lý. Cấu hình mạng các trạm làm việc hoặc cụm các trạm làm việc
trên mạng LAN đang được quan tâm nhiều hơn khi xây dựng các hệ phân tán cỡ nhỏ.
Cấu hình mạng các trạm làm việc đang trở nên phổ biến bởi tận dụng được hạ tầng sẵn

có, tiết kiệm chi phí. Động cơ tìm kiếm Google dựa trên kiến trúc mạng các trạm làm
việc.
Sự tự trị và tính hỗn tạp: Các bộ xử lý có tốc độ khác nhau và chúng có thể chạy
một hệ điều hành khác nhau, nhưng hợp tác với nhau để giải quyết một vấn đề chung.

1.4. Mô hình truyền thông báo
Trong một hệ thống truyền thông báo, các bộ xử lý giao tiếp với nhau bằng cách
gửi thông báo qua các kênh truyền thông, mỗi kênh truyền là một kết nối hai chiều
giữa hai bộ xử lý. Tô pô của hệ thống được biểu diễn bởi một đồ thị vô hướng, trong
đó mỗi nút là một bộ xử lý, mỗi cạnh là một kênh truyền thông giữa các bộ xử lý
tương ứng. Giải thuật cho hệ thống truyền thông báo bao gồm một chương trình cục bộ

12
cho mỗi bộ xử lý, các chương trình này cung cấp khả năng cho bộ xử lý thực hiện tính
toán cục bộ, gửi và nhận các thông báo từ mỗi hàng xóm của nó.
Có thể hình thức hóa như sau: Một hệ thống hay giải thuật bao gồm n bộ xử lý
p
0
, p
1
,…, p
n-1
; i là chỉ mục của bộ xử lý p
i
. Mỗi bộ xử lý p
i
được coi như một máy
trạng thái với tập trạng thái Q
i
. Bộ xử lý được xác định bởi một nút cụ thể trong đồ thị.

Các cạnh liên thuộc với p
i
trong đồ thị được gắn nhãn bởi các số nguyên từ 1 đến r,
trong đó r là bậc của p
i
. Mỗi trạng thái của bộ xử lý p
i
chứa 2r thành phần đặc biệt,
outbuf
i
(

) và inbuf
i
(

), với mọi

thỏa mãn 1 ≤

≤ r. Thành phần đặc biệt này là tập
các thông báo: outbuf
i
(

) chứa các thông báo mà p
i
đã gửi tới hàng xóm của nó qua
kênh


, nhưng chưa đến nơi, và inbuf
i
(

) chứa các thông báo nhận được trên kênh

,
nhưng chưa xử lý. Tập trạng thái Q
i
chứa tập con các trạng thái đáng chú ý ban đầu,
trạng thái ban đầu của các inbuf
i
(

) phải là rỗng.
Trạng thái của bộ xử lý, ngoại trừ các thành phần outbuf
i
(

), bao gồm các trạng
thái tới được của p
i
. Hàm chuyển của bộ xử lý p
i
đưa các đầu vào cho trạng thái tới
được của p
i
, tạo ở đầu ra một giá trị cho trạng thái tới được của p
i
trong đó mỗi

inbuf
i
(

) rỗng, hàm chuyển cũng tạo ở đầu ra nhiều nhất một thông báo cho mỗi kênh

: thông báo này sẽ được gửi tới hàng xóm trên kênh

. Vì vậy, thông báo gửi trước
đó bởi p
i
đang đợi được chuyển không ảnh hưởng đến bước hiện thời của p
i
; mỗi bước
xử lý tất cả các thông báo đang đợi được chuyển tới p
i
, dẫn đến thay đổi trạng thái và
có nhiều nhất một thông báo được gửi tới mỗi hàng xóm.
Cấu hình: Cấu hình là một vec tơ C = (q
0
,…, q
n-1
) trong đó q
i
là trạng thái của p
i
.
Các trạng thái của các biến outbuf trong một cấu hình mô tả các thông báo chuyển qua
các kênh truyền thông. Cấu hình ban đầu là một vec tơ (q
0

,…, q
n-1
) sao cho mỗi q
i

trạng thái ban đầu của p
i
.
Sự kiện: Với các hệ thống truyền thông báo, chúng ta xem xét hai loại sự kiện,
một loại là sự kiện tính, ký hiệu comp(i), biểu diễn một bước tính của bộ xử lý p
i
, trong
đó hàm chuyển của p
i
được áp dụng cho trạng thái tới được hiện thời. loại còn lại là sự
kiện giao, ký hiệu del(i,j,m), biểu diễn sự giao thông báo m từ bộ xử lý p
i
đến bộ xử lý
p
j
.
Thực hiện: Là một chuỗi cấu hình xen kẽ sự kiện mô tả hoạt động của hệ thống,
chuỗi này phải thỏa mãn các điều kiện khác nhau. Có hai loại điều kiện là điều kiện an
toàn và điều kiện sống động. Điều kiện an toàn là điều kiện phải đúng với mọi tiền tố
hữu hạn của chuỗi mô tả, có nghĩa rằng không có gì xấu xảy ra. Điều kiện sống động
là điều kiện phải đúng với một số lần nhất định (có thể vô hạn lần), có nghĩa rằng cuối
cùng điều tốt sẽ đến. Bất kỳ chuỗi mô tả nào thỏa mãn mọi điều kiện an toàn đặt ra
được gọi là một thực hiện. Một thực hiện cũng thỏa mãn tất cả các điều kiện sống
động đặt ra được gọi là thực hiện thỏa đáng.


13
Hệ thống không đồng bộ: Một hệ thống được gọi là không đồng bộ nếu nó không
có cận trên đối với thời gian. Đoạn thực hiện  trong hệ thống truyền thông báo không
đồng bộ là một chuỗi cấu hình xen kẽ sự kiện có dạng: C
0
,

1
, C
1
,

2
, C
2
,

3
,…, trong
đó mỗi C
k
là một cấu hình và mỗi

k
là một sự kiện. Nếu  hữu hạn thì nó phải kết thúc
trong một cấu hình, và những điều kiện sau phải được thỏa mãn:
- Nếu

k
= del(i, j, m), thì m phải là một phần tử của outbuf

i
(

) trong C
k-1
,
với

là nhãn kênh truyền (p
i
, p
j
) của bộ xử lý p
i
. Sự thay đổi từ cấu hình
C
k-1
sang C
k
là m được loại bỏ khỏi outbuf
i
(

) trong C
k-1
và được bổ sung
vào inbuf
i
(h) trong C
k

. Nói cách khác, một thông báo đã được giao nếu và
chỉ nếu nó được chuyển từ outbuf của bên gửi sang inbuf của bên nhận.
- Nếu

k
= comp(i), thì sự thay đổi từ cấu hình C
k-1
sang C
k
là p
i
thay đổi
trạng thái theo hàm chuyển của nó thực hiện trên trạng thái tới được của
p
i
trong C
k-1
, và tập các thông báo xác định bởi hàm chuyển của p
i
được
bổ sung vào các outbuf
i
trong C
k
. Nói cách khác, p
i
thay đổi trạng thái và
gửi các thông báo ra ngoài theo hàm chuyển của nó dựa trên trạng thái
hiện thời, bao gồm tất cả các thông báo đang chờ được giao. Hàm chuyển
của bộ xử lý đảm bảo rằng các inbuf rỗng.

Thực hiện là một đoạn thực hiện C
0
,

1
, C
1
,

2
, C
2
,

3
,…, trong đó C
0
là cấu hình
ban đầu.
Trong mô hình không đồng bộ, một thực hiện là thực hiện thỏa đáng nếu mỗi bộ
xử lý có số vô hạn lần các sự kiện tính và mỗi thông báo được gửi cuối cùng sẽ được
giao.
Hệ thống đồng bộ: Trong mô hình đồng bộ các bộ xử lý thực hiện theo các vòng
nhịp: thực hiện được phân chia thành các vòng, trong mỗi vòng, mọi bộ xử lý có thể
gửi một thông báo tới hàng xóm của nó, các thông báo đã được giao, và mọi bộ xử lý
tính toán dựa trên các thông báo vừa nhận. Mô hình này, mặc dù nói chung không khả
thi trong những hệ thống phân tán thực hành, nhưng lại rất tiện lợi cho việc thiết kế
giải thuật vì không phải tính đến nhiều điều không chắc chắn. Thực hiện trong mô hình
đồng bộ là chuỗi cấu hình và sự kiện xen kẽ có thể được phân chia thành các vòng
riêng biệt. Mỗi vòng bao gồm sự kiện giao mọi thông báo trong các outbuf, cho đến

khi tất cả các outbuf rỗng, sau đó mỗi bộ xử lý thực hiện một bước tính.
Trong mô hình đồng bộ, một thực hiện gọi là thực hiện thỏa đáng nếu nó là dãy
vô hạn, hàm ý rằng mọi bộ xử lý thực hiện vô hạn bước tính, và mọi thông báo trong
các outbuf nhất định sẽ được giao.
Kết thúc: Chúng ta giả thiết rằng mỗi tập trạng thái của bộ xử lý bao gồm một
tập con các trạng thái kết thúc và mỗi hàm chuyển của bộ xử lý ánh xạ các trạng thái
kết thúc chỉ đến các trạng thái kết thúc. Chúng ta nói rằng hệ thống đã kết thúc khi tất

14
cả các bộ xử lý ở trạng thái kết thúc và không còn thông báo nào đang chuyển. Chú ý
rằng thực hiện thỏa đáng vẫn vô hạn, nhưng khi bộ xử lý đã vào trạng thái kết thúc, nó
sẽ ở lại trạng thái đó, thực hiện các bước “giả”.
Độ phức tạp được xác định bằng hai độ đo: độ phức tạp thông báo và độ phức
tạp thời gian.
Độ phức tạp thông báo là số tối đa các thông báo gửi đi trong thực hiện thỏa
đáng.
Độ phức tạp thời gian là thời gian tối đa đến khi kết thúc trong thực hiện thỏa
đáng. Với mô hình đồng bộ, độ phức tạp thời gian là số vòng tối đa. Với mô hình
không đồng bộ, bộ đo dựa trên giả thiết thời gian xử lý sự kiện là không đơn vị và thời
gian truyền thông báo (từ sự kiện gửi đến sự kiện xử lý thông báo) tối đa là một đơn
vị.

1.5. Công nghệ tác tử di động
1.5.1. Sự tiến hóa
Theo truyền thống, một ứng dụng phân tán có cấu trúc xây dựng trên mô hình
client - server sẽ thực hiện việc giao tiếp thông qua cơ chế truyền thông điệp hoặc các
lời gọi hàm từ xa (Remote Procedure Call – RPC). Trong mô hình REV (Remote
Evaluation), thay vì yêu cầu thực hiện các hàm từ xa thì client chỉ việc gởi mã nguồn
các hàm của nó đến server và yêu cầu server thực hiện rồi trả về kết quả.


















Client
Server
Kết quả (dữ liệu)
Tham số (dữ liệu)
RPC
Client
Server
Kết quả (dữ liệu)
Hàm (mã nguồn)
REV
Server - 1
Server - 2
4. agent di trú
2. agent di trú

Mobile agents
Client
Server - 3
3. agent di trú
1. agent gửi đi
Agent
Code, data, context
Hình 1.5.1-1. Sự tiến hóa của mô hình Mobile agents

15
Tác tử di động (Mobile Agent) là một trong những hướng nghiên cứu thu hút
nhiều sự quan tâm nhất từ những năm 1990 đến nay, với những đặc điểm rất thích hợp
cho việc phát triển các ứng dụng phân tán. Tác tử di động là một phần mềm tự trị có
khả năng di chuyển trên mạng để thực hiện một công việc xác định. Khi di chuyển, các
tác tử di động đóng gói mã nguồn, dữ liệu và cả trạng thái thi hành, nhờ vậy tác tử di
động có thể dừng việc thi hành đang thực hiện tại máy này, di chuyển sang máy khác
và khôi phục lại sự thi hành tại máy đích. Hình 1.5.1-1 minh họa sự tiến hóa của mô
hình tác tử di động.

1.5.2. Các đặc tính của tác tử di động
Tác tử di động có một số đặc tính quan trọng sau đây:
 Tính tự trị (autonomous): Một tác tử có thể hoạt động không cần có sự
can thiệp trực tiếp của người sử dụng.
 Tính di động (mobility): Một tác tử có thể di chuyển từ nơi này đến nơi
khác với các tình huống khác nhau.
 Tính cộng tác (collaboration): Một tác tử có thể giao tác với tác tử khác
hay với con người, để trao đổi tri thức, thông tin với nhau.
 Tính thích ứng (reactiveness): Là khả năng của tác tử di động có thể thực
thi trên những môi trường lạ.
 Tính liên tục về mặt thời gian: Một tác tử có thể vừa di chuyển vừa xử lý

công việc trên mạng hoặc có thể tiếp tục công việc tại vị trí mới.
 Tính bền vững (durability): Một tác tử có thể được lưu lại tại bộ nhớ thứ
cấp và có thể được gọi hoạt động trở lại sau.

1.5.3. Ứng dụng của tác tử di động
Với các đặc tính như trên, mô hình tác tử di động có thể được sử dụng hiệu quả
trong nhiều trường hợp khác nhau:
 Tương tác dữ liệu thay cho người sử dụng: Các ứng dụng thường xuyên
yêu cầu phản ứng ngay với các luồng dữ liệu thời gian thực, không cần
phân biệt người sử dụng là ai và có mặt hay không.
 Xử lý và tính toán song song: Các tính toán phức tạp được chia nhỏ thành
nhiều đơn vị để phân tán trên các máy khác nhau, mỗi đơn vị giao cho
một tác tử di động điều phối.
 Làm việc trên mạng có độ tin cậy kém, bị ngắt kết nối: Trong trường hợp
này có thể phục hồi mạng bằng cách di chuyển tác tử di động tới nguồn
dữ liệu mới để thực hiện thay vì chỉ tập trung vào việc kết nối lại.

16
 Thu thập thông tin phân tán: Tác tử di động thu thập thông tin ở các điểm
nút khác nhau trong mạng.
 Tìm kiếm và lọc thông tin: Tác tử di động có thể di chuyển tới các site, tìm
kiếm và lọc ra những thông tin thật sự cần thiết.
 Giám sát theo thời gian: Nhiều trường hợp thông tin tìm kiếm chưa có sẵn
mà phải đợi đến thời điểm nó xuất hiện. Tác tử di động được tung đến
điểm cần thiết, giám sát và chờ đợi để thu thập các thông tin theo yêu cầu.
 Phân phát thông tin: Tác tử di động di chuyển trên mạng và phân phát các
thông tin theo yêu cầu.
 Thương lượng, đàm phán: Các tác tử di động có thể tương tác với nhau để
thương lượng, đàm phán những vấn đề cụ thể. Ví dụ, thương lượng để tổ
chức một cuộc họp.

 Quản trị hệ thống mạng: Với các hệ thống mạng lớn, việc chẩn đoán lỗi,
duy trì sự ổn định của hệ thống là các công việc rất khó khăn. Tác tử di
động giúp cho các công việc chẩn đoán lỗi và duy trì từ xa sự ổn định của
hệ thống được dễ dàng hơn.
 Thương mại điện tử: Tác tử di động có thể thực hiện các hoạt động
thương mại điện tử.
Với các đặc tính và khả năng ứng dụng nêu trên, tác tử di động thực sự là một
công cụ mạnh trong hệ phân tán. Trong chương 4, chúng ta sẽ trình bày mô hình phân
tán có sự tham gia của các tác tử. Trên nền tảng đó, giải quyết bài toán truyền bá thông
tin phân tán giữa các tác tử di động.

















17
CHƯƠNG 2. BẦU THỦ LĨNH TRÊN MẠNG ĐẦY ĐỦ


2.1. Giới thiệu bài toán
Bầu thủ lĩnh là một vấn đề cơ bản trong tính toán phân tán và đã được nghiên
cứu trong các mô hình tính toán và các hình thái mạng với giả định khác nhau. Giải
thuật bầu thủ lĩnh cho mạng n nút với định danh phân biệt, phải đưa mạng đến cấu
hình kết thúc, mà ở đó có chính xác một nút được bầu là thủ lĩnh, và tất cả các nút
khác trong mạng biết định danh của thủ lĩnh.
Mọi mạng có hình trạng là một đồ thị liên thông đều có thể đưa về mạng phủ mà
ở đó các nút được kết nối đầy đủ với nhau. Vì vậy, bầu thủ lĩnh trên mạng đầy đủ đã
được nhiều tác giả nghiên cứu và thu được các kết quả khác nhau, [10] đề xuất một
giải thuật cho mạng đầy đủ không cảm hướng với độ phức tạp thông báo O(n log n) và
O(n /log n) thời gian, [4] đề xuất giải thuật cho mạng đầy đủ cảm hướng với độ phức
tạp thông báo và thời gian đều là O(n), [9] đề xuất một giải thuật mạnh hơn cho mạng
đầy đủ cảm hướng với độ phức tạp thông báo O(n) và O(log n) thời gian.
Tuy nhiên các giải thuật ở trên đều yêu cầu mỗi nút biết tất cả các nút còn lại
trong mạng, việc hiện thực hóa giả thiết này mất nhiều chi phí trong thực tế. Tác giả J.
Villadangos và đồng sự [13] đã đề xuất giải thuật cho mạng đầy đủ không cần giả thiết
về hướng, không đòi hỏi mỗi nút biết trước tất cả các nút trong hệ thống, chỉ giả định
có một vòng ảo kết nối logic các nút trong hệ thống, mà vẫn đạt được độ phức tạp
tuyến tính về thời gian và thông báo là O(n).
Chương này sẽ mô tả chi tiết giải thuật của tác giả J. Villadangos và đồng sự.
Xuất phát từ ý tưởng thiết kế giải thuật này, chúng ta sẽ thiết kế một giải thuật cho bài
toán MAGP (Mobile Agent Gossip Problem) với giả thiết ban đầu về mạng yếu hơn
giả thiết của các giải thuật cho mạng đầy đủ của tác giả Tomoko Suzuki và đồng sự
[23,24], nhưng vẫn đạt được độ phức tạp di chuyển tối ưu hơn.

2.2. Mô hình tính toán phân tán
Mạng là một đồ thị đầy đủ với các nút biểu diễn các bộ xử lý và các cạnh biểu
diễn các kênh truyền thông hai chiều giữa các bộ xử lý. Thời gian truyền thông báo
được giả thiết là hữu hạn nhưng không thể đoán trước. Chúng ta giả thiết các kênh
truyền không bị mất mát thông báo cũng như ngắt thông báo. Tuy nhiên các thông báo

có thể được sắp xếp lại. Chúng ta giả định có một vòng ảo kết nối logic các nút trong
hệ thống theo một hướng nhất định. Các nút không biết toàn bộ định danh của các nút
khác trong hệ thống, mỗi nút chỉ cần biết một nút kế tiếp trên vòng ảo.
Trong bài toán bầu thủ lĩnh, ban đầu tất cả các nút ở trạng thái bị động. Một tập
con bất kỳ các nút, thức dậy tự phát và bắt đầu giải thuật, và trở thành các nút ứng

18
viên. Các nút có thể bắt đầu giải thuật ở thời điểm khác nhau. Thủ lĩnh được xác định
từ tập các nút ứng viên tại thời điểm giải thuật được khởi tạo.

2.3. Giải thuật bầu thủ lĩnh Villadangos
Ý tưởng: Ban đầu, tập tất cả các nút ở trạng thái passive, các nút có thể tự phát
bắt đầu giải thuật, các nút này là ứng viên có thể trở thành thủ lĩnh. Để thu gọn dần
vòng bao gồm các nút ứng viên, chúng ta thiết lập cơ chế hợp tác giữa các ứng viên.
Mỗi ứng viên gửi định danh của nó cho ứng viên kế tiếp trên vòng ảo, nút ở trạng thái
passsive khi nhận được thông báo này, sẽ tự thiết lập trạng thái là dummy, và chuyển
thông báo này đến nút kế tiếp trên vòng ảo. Ứng viên u có định danh lớn hơn ứng viên
liền trước v, yêu cầu ứng viên v thông tin về ứng viên liền trước v, nút v sẽ thay đổi
trạng thái của nó thành dummy, sau khi đã trả lời u về ứng viên liền trước nút v. Vậy,
khi một ứng viên nhận được trả lời, nó biết định danh của ứng viên mới trước nó trên
vòng ứng viên. Cuối cùng, ứng viên có định danh lớn nhất biết tất cả các nút trong hệ
thống (ngoại trừ nó) ở trạng thái dummy, ứng viên này chính là thủ lĩnh.
Trong giải thuật 2.3-1, biến status
i
là trạng thái của nút i, cand_succ
i
là ứng viên
kế tiếp nút i, cand_pred
i
là ứng viên liền trước nút i. Giải thuật được mô tả chi tiết

dưới đây.


Procedure initiate
i
begin
if status
i
= passive then

status
i
 candidate;
cand_succ
i
 NULL;
cand_pred
i
 NULL;
send INF(i) to neigh
i
;
end if
end

Procedure rcvINF
i
(j, m)
begin
init = j;

if status
i
= passive then
status
i
 dummy;
send INF(init) to neigh
i
;
end if

19
if status
i
= candidate then
cand_pred
i
 init;
if i > init then
if cand_succ
i
= NULL then
status
i
 waiting;
send REQ(i) to init;
else
send REP(cand_pred
i
) to cand_succ

i
;
status
i
 dummy;
end if
end if

if i < init then
if cand_succ
i
<> NULL then
send REP(cand_pred
i
) to cand_succ
i
;
status
i
 dummy;
end if
end if
if init = i then
status
i
 leader;
end if
end if
end


Procedure rcvREQ
i
(j, m)
begin
if status
i
= candidate then
IF cand_pred
i
= NULL then
cand_succ
i
 j;
else
send REP(cand_pred
i
) to j;
status
i
 dummy;
end if
end if

if status
i
= waiting then
cand_succ
i
 j;


20
end if
end

Procedure rcvREP
i
(j, m)
begin
k = j;
if status
i
= waiting then
if i = k then
status
i
 leader;
else
cand_pred
i
 k;
if cand_succ
i
= NULL then
if k < i then
status
i
 waiting;
send REQ(i) to k;
end if
else

status
i


dummy;
send REP(k) to cand_succ
i
;
end if
end if
end if
end




Giải thuật 2.3-1 được khởi động tự phát bởi bất cứ nút thụ động passive nào,
chẳng hạn đó là nút i thực hiện thủ tục initiate
i
, thiết lập status
i
= candidate, gửi thông
báo INF(i) tới nút kế tiếp nó trên vòng ảo.
Khi thông báo INF(init) tới nút i, nó được xử lý bởi thủ tục rcvINF
i
(j, m). Nếu
nút i là passive, nó trở thành dummy và chuyển thông báo tới nút kế tiếp nó trên vòng
ảo. Nếu nút là candidate, thiết lập cand_pred
i
= init. Xảy ra các trường hợp:

+ Nếu i > init, có hai khả năng xảy ra:
- Nếu cand_succ
i
= NULL thì i thiết lập status
i
= waiting và gửi thông báo
REQ(i) cho nút init và đợi nút init gửi thông tin về định danh của ứng viên trước nút
init trên vòng ảo.
Giải thuật 2.3-1. Giải thuật bầu chọn thủ lĩnh Villadangos


21
- Ngược lại, cand_succ
i
 NULL, nghĩa là nút i đã nhận được một thông báo
REQ(k) từ nút k khác, biến cand_succ
i
là ứng viên kế tiếp nút i trên vòng ảo. Vì định
danh nút k lớn hơn nút i, nút i trở thành dummy và gửi cho k một thông báo REP(init).
+ Nếu i < init và cand_succ
i
 NULL, khi đó nút i đã nhận được một thông báo
REQ(k) từ nút k khác, biến cand_succ
i
là ứng viên kế tiếp nút i trên vòng ảo. Vì định
danh nút k lớn hơn nút i, nút i trở thành dummy và gửi cho k một thông báo REP(init).
+ Nếu i = init, nút i nhận thông báo INF(i), có nghĩa rằng không có ứng viên nào
khác trong vòng ảo, nút i trở thành thủ lĩnh.
Khi một ứng viên i nhận một thông báo REQ(j) từ j, i biết rằng j là nút ứng viên
kế tiếp nó trong vòng ảo. Nó cũng biết rằng tất cả các nút từ i tới j ở trạng thái dummy.

Nếu nó biết ứng viên liền trước nó trong vòng ảo (cand_pred
i
 NULL), thì i gửi thông
báo REP(cand_pred
i
) tới j và trở thành dummy. Ngược lại, gán cand_succ
i
= j, để liên
lạc j với ứng viên liền trước i. Nếu nút i có status
i
= waiting, gán cand_succ
i
= j để liên
lạc j với ứng viên liền trước nút i.
Như vậy, một nút i thu thập thông tin ứng viên liền trước nó bằng hai cách khác
nhau. Nếu j là ứng viên liền trước i trong vòng ảo, i sẽ nhận một thông báo INF từ j.
Nếu có các ứng viên khác giữa j và i, một trong số chúng sẽ gửi thông báo REP mang
định danh của nút j tới i. Do đó, ý nghĩa của việc nhận một thông báo REP khá tương
tự với việc nhận thông báo INF, chỉ khác là một nút nhận thông báo REP phải là một
nút ở trạng thái waiting, tức nút đợi thông tin ứng viên liền trước nó.











Ví dụ thực hiện
Hình 2.3-1 minh họa thực hiện của giải thuật cho một mạng đơn giản. Ban đầu,
chúng ta có một tập có bốn nút như thể hiện trong hình 2.3-1.a, các nút được tổ chức
logic theo một vòng nhưng tất cả các nút đã được kết nối đầy đủ.
Nút 2 và 4 khởi tạo giải thuật bằng cách gửi thông báo INF tới các nút kế tiếp
chúng trên vòng logic (hình 2.3-1.b).

2
1
4
3
Hình 2.3-1.a. Trạng thái ban đầu của mạng

22












Khi nút 1 và nút 3 xử lý thông báo INF, chúng vẫn chưa khởi tạo giải thuật
(status = passive). Bởi vậy, chúng trở thành dummy và truyền thông báo INF đến các
nút kế tiếp chúng (hình 2.3-1.c).












Trong hình 2.3-1.d, các nút ứng viên nhận thông báo khởi tạo từ các nút khác. Vì
nút 2 có định danh thấp hơn nút 4, cand_pred
2
= 4. Nút 4 có định danh lớn hơn yêu
cầu nút 2 về ứng viên liền trước nó bằng cách gửi thông báo REQ(4) tới nút 2.
Khi một nút nhận một thông báo REQ, nó sẽ trả lời ngay khi nó biết nút ứng viên
liền trước nó. Trong trường hợp này, nút 2 gửi một thông báo REP(4) để trả lời nút 4
(hình 2.3-1.e) và nó trở thành nút dummy. Trong trường hợp này, hình 2.3-1.f, nút 4
kiểm chứng rằng nó thỏa mãn điều kiện thủ lĩnh và tự nó tuyên bố là một thủ lĩnh.




Hình 2.3-1.b. Nút 2, 4 khởi tạo giải thuật
INF(4)
INF(2)
2
1
4
3

Hình 2.3-1.c. Nút 1, 3 chuyển thông báo
INF(4)
INF(2)
2
1
4
3

23






































Hình 2.3-1.d. Nút 4 gửi yêu cầu tới nút 2
cand_pred
2
= 4
cand_pred
4
= 2

REQ(4)
2
1
4
3
Hình 2.3-1.e. Nút 2 trả lời nút 4

REP(4)
2
1
4
3
Hình 2.3-1.f. Nút 4 trở thành thủ lĩnh
2
1
4
3

×