Bài giảng tóm tắt môn -Hệ phân tán

246
Bi ging tm tt H phân tn CHƯƠNG I GIỚI THIỆU VỀ ĐẶC TÍNH CỦA HỆ THỐNG PHÂN TÁN MỤC TIÊU Giúp sinh viên rắm rõ các vấn đề : - Lý do ra đời hệ thống phân tán - Các thách thức các hệ thống mạng hiện nay - Các định nghĩa về hệ phân tán 1.1.MỞ ĐẦU Tính toán phân tán mang đến cho người truy cập trong suốt là sức mạnh nhiều máy tính và dữ liệu như người sử dụng cần để thực hiện bất kỳ công việc nhất định, và đồng thời, đạt hiệu suất cao và độ tin cậy mục tiêu. ng dụng trong các hệ thống máy tính phân tán đã phát triển nhanh chóng trong thập kỷ qua. Các chủ đề của máy tính được phân tán là đa dạng và nhiều nhà nghiên cứu đang điều tra các vấn đề khác nhau liên quan đến cấu trúc phần cứng phân tán và việc thiết kế các phần mềm phân tán để các tiềm năng xử lý song song và khả năng chịu lỗi có thể khai thác. Trong chương này, chúng ta hãy xem xét một số khái niệm cơ bản và các vấn đề liên quan đến hệ thống phân tán. 1.1.1.Lý do ra đời hệ thống phân tán Ngày nay, các yêu cầu càng trở khắt khe đối với các hệ thống máy tính trong tương lai : về tốc độ xử lý, sự tin cậy 1

description

Biên soan : ThS. NGUYỄN MINH NHẬT ĐH DUY TAN, Đà Nẵng

Transcript of Bài giảng tóm tắt môn -Hệ phân tán

Page 1: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

CHƯƠNG I

GIỚI THIỆU VỀ ĐẶC TÍNH CỦA HỆ THỐNG PHÂN TÁN

MỤC TIÊU

Giúp sinh viên rắm rõ các vấn đề :

- Lý do ra đời hệ thống phân tán

- Các thách thức các hệ thống mạng hiện nay

- Các định nghĩa về hệ phân tán

1.1.MỞ ĐẦU

Tính toán phân tán mang đến cho người truy cập trong suốt là sức mạnh nhiều máy

tính và dữ liệu như người sử dụng cần để thực hiện bất kỳ công việc nhất định, và đồng

thời, đạt hiệu suất cao và độ tin cậy mục tiêu. Ưng dụng trong các hệ thống máy tính

phân tán đã phát triển nhanh chóng trong thập kỷ qua. Các chủ đề của máy tính được

phân tán là đa dạng và nhiều nhà nghiên cứu đang điều tra các vấn đề khác nhau liên

quan đến cấu trúc phần cứng phân tán và việc thiết kế các phần mềm phân tán để các tiềm

năng xử lý song song và khả năng chịu lỗi có thể khai thác. Trong chương này, chúng ta

hãy xem xét một số khái niệm cơ bản và các vấn đề liên quan đến hệ thống phân tán.

1.1.1.Lý do ra đời hệ thống phân tán

Ngày nay, các yêu cầu càng trở khắt khe đối với các hệ thống máy tính trong tương lai

: về tốc độ xử lý, sự tin cậy của hệ thống ngay cả khi có sự cố xảy ra, khả năng lưu trữ,

tính mở rộng khi cần thiết và hiệu quả chi phí mà nó mang lại, do đó cần phải thay thế

cấu trúc truyền thống theo tổ chức máy tính của Von Neumann.

Theo LeLann có hai tác nhân chính ảnh hưởng đến hệ thống phân tán: công nghệ thay

đổi và nhu cầu của người sử dụng.

Chẳng hạn đối với phát triển về công nghệ :

Về mạng máy tính :

6/1976 : Robert Metcalfe trình bày khái niệm về Ethernet tại Hội nghị quốc gia máy

tính.Ý tưởng về thời gian chia sẻ (time-sharing) lần đầu tiên được đề cập, là bước đầu

tiên hướng đến hệ thống phân tán.

1

Page 2: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

1980 : Ethernet được phát minh bởi Robert Metcalfe và David Boggs tại Xerox PARC

vào năm 1973, Ethernet đầu tiên chạy ở 2,94 Mbps. Sau đó, Metcalfe đã tham, ông đã tạo

điều kiện cho một liên doanh giữa kỹ thuật số giữa Intel và Xerox hợp tác hơn phát triển

trên Ethernet. Phiên bản 1 được hoàn thành vào năm 1980, và các sản phẩm này được sử

dụng một năm sau đó.

1983, IEEE đã phê chuẩn Ethernet với chuẩn 802.3.Ethernet được giới thiệu như một

mô hình chuẩn và sau đó là thập kỹ của máy tính cá nhân ra đời. Ngày nay, hầu như tất cả

các máy tính PC và máy tính Mac với port 10/100 Ethernet. Tốc độ mạng LAN không

ngừng tăng nhanh.

1985 : thick Ethernet: tốc độ 10 Mbps.

1991 : 10BaseT – sử dụng cáp xoắn đôi (twisted pair), tốc độ 10 Mbps.

1995 : 100 Mbps Ethernet ra đời.

1998 : Gigabit Ethernet được giới thiệu (1 Gbps Ethernet)

1999 : Chuẩn 802.11b (wireless Ethernet) sử dụng cho LAN không dây ra đời.

2001 : 10 Gbps được giới thiệu.

2005 : 100 Gbps sử dụng cho kết nối bằng cáp quang (optical link)

Sau đó, chỉ một vài công ty lớn hoặc trường đại học được kết nối Internet, sử dụng

gateways giao tiếp giữa các mạng khác nhau, hình thức kết nối là dial –up.

1985 : Có khoảng 1.961 hosts trên Internet.

2006 : Có khoảng 439.286.364 hosts trên Internet. Hiện nay, hầu hết các hoạt động

của con người được diễn ra trên Internet.

Bảng 1.1. Kết quả chi phí trên băng thông sử dụng

Kết nối với băng thông lớn (High-speed WAN connectivity: 1– >50 Mbps). Nhiều

kiến trúc mạng ra đời (Switched LANs,wireless v.v…). Máy tình ngày càng trở nên nhỏ

hơn, rẻ hơn, hiệu quả hơn, tính toán nhanh hơn Vi xử lý trở thành công nghệ dẫn đầu.

2

Năm 1 Dolar/ 1Mb Loại

1977 32.000 16Kbs

1987 250 640 Kbs – 2MB

1997 2 64 MB – 256 MB

2007 0,06 512 MB - > 2Gbs

Page 3: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Về giao thức (Protocols)

Nhờ tốc độ nhanh hơn của CPU làm chúng nó có thể thực hiện nhiều giao thức một

thời gian như :

- Thực hiện mã hóa công khai dựa vào phương pháp ECC(Elliptic curve

cryptography), thực hiện các kỹ thuật kiểm tra lỗi để bảo đảm dữ liệu cho truyền dữ liệu

hoặc lưu trữ (Ví dụ trong ngôn ngữ XML).

- Thực hiện các kỹ thuật nén ảnh, âm thanh.v.v…

- Mạng nhanh hơn nên có thể các giao thức có kích thước lớn hơn như : SOAP/XML,

H.323 được thực hiện đồng thời.

Về lưu trữ (Storage)

Tăng 60.000.000 lần hơn 50 năm qua, cụ thể :

1977 : Với đĩa mềm 310KB giá $1480

1987 : Đĩa cứng 40 MB giá $679

2008 : Đĩa cứng 750 GB giá $99, trung bình khoảng $0.13 / 1GB.

Chẳng hạn, vào năm 1987, Website nổi tiếng về giới thiệu âm nhạc của Billboard :

4,207 bài nhạc, kích thước mỗi bài : 4.4 MB; dung lượng 18 GBs. Thực hiện download

một bài hát với modem V90-44Kbps mất 15 phút, tốn 76,560 đôla để download toàn bộ

bộ sư tập đó. Ngày nay, để download 1 bài hát với kích thước 12,9 Mbps mất không quá

3,5 giây; tốn khoảng: $5.00.

Ở trong các hệ thống máy tính ngày nay, một ước mơ mới là có thể tính toán phân

toán ( distributed computing). Nhờ tính toán phân tán, tận dụng sức mạnh do nhiều máy

tính mang lại để thực hiện bất cứ công việc nào con người cần ở cùng một thời gian, đạt

hiệu suất cao và độ tin cậy cao. Sự quan tâm đến hệ thống máy tính phân tán được phát

triển nhanh chóng trong hơn một thập kỉ qua. Các đối tượng nghiên cứu về hệ phân tán

rất đa dạng, liên quan đến lĩnh vực khác nhau như: cấu trúc phần cứng phân tán, thiết kế

các phần mềm phân tán mà nó có thể xử lý song song.

Hệ thống máy tính phân tán (hay hệ thống phân tán) sẽ mất rất nhiều hình thức và bao

gồm một loạt các hệ thống kiến trúc. Để một có thể sử dụng một hệ thống phân tán đòi

hỏi một tập hợp của nhiều bộ xử lý làm việc chặt chẽ với nhau để giải quyết một vấn đề.

3

Page 4: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Các chủ đề được giới thiệu trong giáo trình này nhằm cung cấp các khái niệm cơ bản

nhất liên quan đến cấu trúc phần cứng phân tán, thiết kế các phần mềm phân tán.

Tại sao chúng ta cần đến mạng?

Có hiệu quả cao : Sử dụng mạng có thể đem lại những hiệu quả có giá trị cao ( tìm

kiếm thông tin, kinh doanh, buôn bán v.v..)

Các ứng dụng phân tán có thể thực hiện : ATMs, các ứng dụng đồ họa cấp cao, giám

sát từ xa (remote monitoring)

Có khả năng giao tiếp tương tác và giải trí : Có thể vừa làm việc và tiêu khiển trên

nhiều dịch vụ khác nhau như : email, gaming, telephony, instant messaging v.v…

Remote content : Duyệt Web, download nhạc, phim ảnh, Tivi IP, file servers.

Triển khai các ứng dụng di động : Điện thoại, nhắn tin, nghe nhạc, xem phim, chơi

game, thanh toán, định vị dịch vụ phục vụ cuộc sống v.v…

Làm tăng sự tin cậy của hệ thống: Thực hiện phép xử lý với kích thước lớn, đảm bảo

sự hoạt động của hệ thống ổn định khi có sự cố xãy ra ( tính chịu lỗi)

Thích ứng đối với hệ thống đòi hỏi phát triển nhanh.

Các thách thức

Khi xây dựng các phần mềm phân tán, các khó khăn gặp phải :

- Làm thế nào điều hành hệ điều hành phân tán.

- Sử dụng ngôn ngữ lập trình nào?

- Làm thế nào đảm bảo tính hiệu quả (Efficiency)?

- Làm thế nào đảm bảo tính tin cậy (Reliability) ?

- Đối với mạng : Dễ bị mất kết nối, thất thoát dữ liệu, tiềm tảng những nguy hiểm

khác nhau.

- Về bảo mật : Có thể bị tấn công mọi lúc mọi nơi.

1.2.CÁC TỔ CHỨC CƠ BẢN MÁY TÍNH

1.2.1.Mô hình Von Neumann

(Neumann János 1903 –1957) là một nhà toán học người Mỹ gốc Hungary và là một

nhà bác học thông thạo nhiều lĩnh vực đã đóng góp vào vật lý lượng tử, giải tích hàm, lý

thuyết tập hợp, kinh tế, khoa học máy tính, giải tích số, động lực học chất lưu, thống kê

và nhiều lĩnh vực toán học khác.

4

Page 5: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Theo Von Neumann thì : “Tất cả các máy tính đều có chung một cơ sở kiến trúc giống

nhau bất kể nó là một máy tính mainframe hàng triệu đô la hay là một máy tính bỏ túi

Palm Pilot. Chúng đều có bộ nhớ, hệ thống vào/ra, đơn vị tính toán/logic, và đơn vị điều

khiển”.

Bộ nhớ

Bộ nhớ máy tính là hệ thống con dùng lưu trữ tạm thời các chỉ thị của chương

trình và dữ liệu sẽ được thực hiện bởi máy tính. Nó thuờng được gọi là RAM. Bộ nhớ

được chia thành các ô, mỗi ô có địa chỉ riêng để dữ liệu có thể nạp.

Hệ thống vào/ra (I/O)

Đây là hệ thống con cho phép máy tính tương tác với các thiết bị khác và liên lạc với

thế giới bên ngoài. Nó cũng chịu trách nhiệm lưu trữ chương trình bằng cách điều khiển

đĩa cứng.

Đơn vị tính toán/logic (ALU)

Đây là hệ thống con thực hiện tất cả các phép toán số và phép so sánh. Trong thiết kế

Von Neumann, đơn vị này và đơn vị điều khiển là 2 thành phần khác nhau, tuy nhiên

trong các hệ máy tính hiện đại ngày nay chúng được tích hợp thành một trong processor.

ALU có 3 phần bao gồm: thanh ghi, mạch ALU, và kết nối giữa chúng. Thanh ghi cơ bản

là một ô lưu trữ giống như RAM dùng để giữ kết quả của các tính toán. Tuy nhiên nó

nhanh hơn RAM nhiều. Mạch ALU là nơi thực hiện các tính toán. Nó được thiết kế từ

các cổng AND, OR, và NOT như bất cứ vi chip nào.

Đơn vị điều khiển

5

Hình 1.1.John Von Neumann

Page 6: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Đơn vị điều khiển chịu trách nhiệm:

(1) tìm trong bộ nhớ chỉ thị chương trình kế tiếp sẽ chạy,

(2) giải mã chỉ thị đó thành cái máy tính có thể hiểu,

(3) đưa mệnh lệnh thích hợp tới ALU, bộ nhớ, và hệ thống vào/ra.

Hình 1.2. Mô hình Von Neumann

Các bước này được làm liên tục cho đến dòng cuối cùng của chương trình.

Ở cấp độ máy tính, các chỉ thị của chương trình được diễn đạt dưới dạng ngôn ngữ máy.

Đây là các mã nhị phân được tổ chức thành mã phép toán (op code) và các trường địa chỉ

(address fields). Các mã phép toán là các mã nhị phân cho máy tính biết phép toán nào sẽ

được thực hiện. Trường địa chỉ là vị trí trong bộ nhớ mà trên đó mã phép toán sẽ tác

dụng. Các chỉ thị chương trình trong ngôn ngữ máy được biểu diễn dưới dạng mã phép

toán trước rồi kế tiếp là mã các địa chỉ nhớ.

Chúng ta hãy xem một ví dụ: giả sử chúng ta muốn cộng 2 số có địa chỉ trong bộ nhớ

là 99 và 100. Lại giả sử rằng mã phép toán cộng là 9 trong hệ thập phân. Như thế định

dạng mệnh lệnh trên sẽ là 9-99-100. Tất nhiên máy tính không thể thấy dạng thập phân

trên, mà thay vì thế chúng cần được chuyển

sang dạng nhị nhân:

0000100100000000011000110000000001100100

tất cả các con số được đặt sát nhau không có dấu cách. Đến đây có lẽ bạn đã có khái niệm

về việc máy tính suy nghĩ như thế nào.

6

Memory

ControlUnit

ArithmeticLogicUnit

Accumulator

Input Output

Page 7: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

1.2.2. Cấu trúc bộ nhớ chia sẻ vật lý

Đặc điểm :

- Có một bộ nhớ chia sẻ không gian địa chỉ của tất cả các CPU hệ thống kép chặt

(tightly coupled system)

- Giao tiếp giữa các CPU diễn ra thông qua việc chia sẻ bằng cách sử dụng hoạt động

nhớ đọc và ghi.

Hình 1.3. Cấu trúc bộ nhớ chia sẻ

1.2.3. Cấu trúc bộ nhớ chia sẻ phân tán vật lý

Hình 1.4. Cấu trúc bộ nhớ chia sẻ phân tán vật lý

Đặc điểm :

- Không có bộ nhớ dùng chung và mỗi CPU đều có những bộ nhớ cục bộ kèm theo

- Cặp các CPU và bộ nhớ cục bộ được gọi là xử lý cơ sở (PE)

7

Shared Memory

Page 8: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Giao tiếp giữa các bộ xử lý được thực hiện bằng cách gởi các thông điệp trên mạng

thông qua một interconnection gửi lệnh tại xử lý việc gửi và nhận được một lệnh ở nhận

được xử lý.

1.3.ĐỊNH NGHĨA VỀ HỆ THỐNG PHÂN TÁN

Hiện nay có 3 định nghĩa khác nhau về hệ phân tán

Định nghĩa 1 : Là một hệ có chức năng và dữ liệu phân tán trên các máy trạm được

kết nối với nhau qua mạng máy tính.

Định nghĩa 2 : Là một tập các máy tính tự trị được kết nối với nhau bởi mạng máy

tính và được cài đặt phần mềm phân tán.

Định nghĩa 3 : Là một tập các máy tính dộc lập giao tiếp với nhau như một hệ thống

thống nhất và toàn vẹn.

Theo Seitz, tùy theo sự khác biệt của ứng dụng mà ta có các định nghĩa cho phù hợp :

Song song (Parallel): Thao tác trên dữ liệu được thiết lập từ luồng điều khiển đơn. Tại

máy tính song song,máy tính đa dữ liệu (multiple-data – SIMD)sử dụng nhiều thành phần

xử lý dữ liệu để thực hiện cùng một hoạt động hoặc tương tự về nhiều bản ghi dữ liệu tại

một lần.

Đồng bộ(Concurrent ): Một số hành động có thể được thực hiện theo bất cứ thứ tự

nào.

Phân tán (Distributed): Các chi phí hoặc hiệu suất của một tính toán được chi phối

bởi các giao tiếp dữ liệu và điều khiển.

Theo Seitz, hệ thống phân tán có thể kiểm soát bằng cách sử dụng 3 kích thước của

phần cứng, điều khiển, và dữ liệu :

Hệ thống phân tán = Phân tán phần cứng + Phân tán kiểm soát + Phân tán dữ liệu.

Trong đó :

+H1 : Một CPU đơn với một đơn vị kiểm soát.

+H2: Một CPU đơn với nhiều ALUs (arithmetic and logic units). Chỉ có một đơn vị

kiểm soát.

+H3: Đơn vị chức năng riêng biệt, như là một trong những CPU với dấu chấm động

(floating-point coprocessor)

8

Page 9: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

+H4: Nhiều bộ xử lý với nhiều CPU nhưng chỉ có duy nhất một hệ thống I / O và bộ

nhớ toàn cục.

+H5: Nhiều bộ xử lý với nhiều CPU, nhiều hệ thống I / O và các bộ nhớ cục bộ.

+C1: Điểm kiểm soát cố định duy nhất. Lưu ý rằng các hệ thống vật lý có thể không

có nhiều CPU.

+C2: Điểm kiểm soát di động duy nhất. Trong nhiều trường hợp nhiều CPU, các điều

khiển có thể thay đổi theo thời gian giữa các CPU.

+C3: Cấu trúc cố định master / slave. Trong hệ thống chỉ có một CPU và một

coprocessor, CPU master cố định, coprocessor slave cố định.

+C4: Cấu trúc master/slave động. Vai trò của master / slave được định nghĩa bởi phần

mềm.

+C5: Nhiều điểm đồng nhất, nơi mà các bản sao của cùng một bộ điều khiển được sử

dụng.

+C6: Nhiều điểm kiểm soát hỗn tạp, nơi mà các bộ điều khiển khác nhau được sử

dụng.

Cơ sở dữ liệu có hai thành phần và có thể được phân tán:

- Các tập tin và thư mục được lưu trữ trên các file.

- Kênh phân phối có thể được thực hiện bằng một trong hai cách, hoặc một sự kết hợp

của cả hai: tạo bản sao và phân vùng (replication and partition).

Hình 1.5. Mô hình một hệ phân tán tổng quát

- Một cơ sở dữ liệu được tái tạo (replicated): có một số bản sao của cơ sở dữ liệu giao

cho các địa điểm khác nhau. Một cơ sở dữ liệu partitioned: nếu nó được phân chia thành

9

Page 10: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

các cơ sở dữ liệu phụ và sau đó mỗi phụ cơ sở dữ liệu được phân công vào các site khác

nhau. Các điểm trong kích thước này bao gồm:

+D1 :Tập trung các cơ sở dữ liệu với một bản sao của cả hai tập tin và thư mục.

+D2 :Phân phối các tệp tin với một thư mục tập trung và không có thư mục cục bộ.

+D3 :Cơ sở dữ liệu tái tạo vớivới một bản sao của tập tin và thư mục ở mỗi site.

+D4 : Cơ sở dữ liệu phân vùng với cơ sở dữ liệu master mà giữ được một bản sao

hoàn thiện của tất cả các tập tin.

+D5 : Cơ sở dữ liệu phân vùng với một cơ sở dữ liệu master mà chỉ giữ một thư mục

hoàn thiện.

+D6. Cơ sở dữ liệu phân vùng mà không có tập tin master hoặc thư mục.

Theo Schroeder, nếu một hệ thống có các điểm sau đây thì nó có thể là một hệ thống

phân tán :

+Nhiều yếu tố xử lý (Multiple processing elements - PES)

+Các kết nối phần cứng (Interconnection hardware)

+PES không độc lập.

+Có trạng thái chia sẻ.

+Không có đồng hồ trên toàn cầu : Các chương trình phối hợp hành động qua trao đổi

thông điệp.

+Thất bại độc lập : Khi một số hệ thống không thành công, những người khác có thể

không biết.

Đặc điểm của hệ thống tập trung ( Centralized System )

+Một trong những thành phần không có phần tự

+Hợp phần chia sẻ của tất cả các người sử dụng thời gian

+Tất cả các nguồn tài nguyên có thể truy cập

+Có phần mềm chạy trong một quá trình

+Có điểm kiểm soát đơn

10

Page 11: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

1.4. XÂY DỰNG VÀ PHÂN LOẠI CÁC HỆ THỐNG PHÂN TÁN

1.4.1. Phần cứng

Flynn ’s Taxonomy (1972) là một phân loại các kiến trúc máy tính đề xuất bởi

Michael J. Flynn năm 1966. Theo Ông có 2 đặc điểm cần thiết để phân loại hệ thống máy

tính nhiều CPU : Số lương các dòng chỉ dẫn và số dòng dữ liệu.

Bảng 1.2. Cấu trúc máy tính theo mô hình Flynn’s Taxonomy

Single

Instruction

Multiple

Instruction

Single Data SISD MISD

Multiple Data SIMD MIMD

SISD (Single Instruction, Single Data) là một thuật ngữ ám chỉ đến một kiến trúc máy

tính, trong đó một bộ xử lý đơn, uniprocessor một, thực thi một dòng chỉ dẫn duy nhất, để

hoạt động trên dữ liệu lưu trong một bộ nhớ duy nhất. Điều này tương ứng với kiến trúc

von Neumann.

SISD là một trong bốn phân loại chính như định nghĩa trong phân loại của Flynn.

Trong hệ thống phân loại dựa trên số lượng đồng thời hướng dẫn và các luồng dữ liệu

hiện nay trong kiến trúc máy tính. Theo Michael J. Flynn, SISD có thểcó đặc điểm xử lý

đồng thời.

Hình 1.6. Cấu trúc SISD

11

Page 12: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

SIMD (Single Instruction, Multiple Data; colloquially, "vector instructions") : Trong

máy tính SIMD là một kỹ thuật làm việc để đạt được mức độ xử lý dữ liệu song song

.

Hình 1.7. Cấu trúc SIMD

MISD (Multiple Instruction, Single Data) : Trong máy tính MISD là một kiểu kiến

trúc tính toán song song, nơi các đơn vị chức năng thực hiện nhiều hoạt động khác nhau

trên cùng dữ liệu. Kiến trúc đường ống (Pipeline) thuộc loại này. Kiến trúc này không

được sử dụng rộng rãi như MIMD và SIMD thường thích hợp hơn cho dữ liệu phổ biến

kỹ thuật song song. MISD đôi khi áp dụng để phân loại các hệ thống dự phòng.

MIMD (Multiple Instruction stream, Multiple Data stream) : Là một kỹ thuật làm

việc để đạt được xử lý song song. Bằng cách sử dụng cơ chế MIMD có một số chức năng

của bộ vi xử lý mà không đồng bộ và độc lập. Bất cứ lúc nào, bộ vi xử lý khác nhau có

thể được thực hiện hướng dẫn khác nhau trên mảnh khác nhau của dữ liệu.

Hình 1.8. Cấu trúc MIMD

Kiến trúc MIMD có thể được sử dụng trong một số lĩnh vực ứng dụng như máy tính

hỗ trợ thiết kế, máy tính hỗ trợ sản xuất, mô phỏng, làm mẫu và là thiết bị chuyển mạch

12

Page 13: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

giao tiếp. Cơ chế MIMD có thể được bộ nhớ chia sẻ hoặc bộ nhớ phân tán. Phân loại này

được dựa trên cách bộ vi xử lý truy cập bộ nhớ MIMD. Cơ chế bộ nhớ chia sẻ có thể có

bus mở rộng hoặc kiểu phân cấp. Cơ chế bộ phân tán có thể có phân hypercube hoặc lược

đồ kết nối hỗn hợp (mesh interconnection schemes).

SMP(Symmetric Multi-Processing) : Trong máy tính SMP liên quan đến một kiến

trúc máy tính đa xử lý gồm hai hoặc nhiều bộ vi xử lý giống hệt nhau có thể kết nối với

một bộ nhớ đơn chính được chia sẻ. Hầu hết các hệ thống đa xử lý phổ biến hiện nay sử

dụng một kiến trúc SMP. Trong trường hợp xử lý đa lõi, kiến trúc SMP áp dụng cho các

lõi, xử lý như là bộ vi xử lý riêng biệt.

Hệ thống SMP cho phép bất kỳ bộ vi xử lý có làm việc trên bất kỳ nhiệm vụ nào mà

các dữ liệu không phải cho nhiệm vụ được đặt trong bộ nhớ. Với sự hỗ trợ hệ điều hành

thích hợp, các hệ thống SMP có thể dễ dàng di chuyển nhiệm vụ giữa các bộ vi xử lý để

cân bằng khối lượng công việc một cách hiệu quả.

Tất cả các CPU kết nối với bus chia sẻ. Hệ thống trông giống như từ bộ vi xử lý.

Hình 1.9.a Trường hợp xử lý quá tải trên bus

Để đối phó với tình trạng quá tải trên bus, người ta thực hiện:

+Thêm bộ nhớ địa phương : CPU nào xử lý I / O thì sẽ bổ sung bộ nhớ cache

+Truy cập bộ nhớ chính trên bộ nhớ cache lỗi

Hình 1.9.b. Bổ sung thêm bộ nhớ cache trên CPU xử lý I/O

Làm việc với cache

13

Bus

Memory Device I/O

CPU A

Cache

CPU B

Cache

CPU A CPU B Memory Device I/O

Bus

12345:7 Device I/O

CPU A

12345:3

CPU B

12345:7

Page 14: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

CPU A đọc vị trí 12345 từ ộ nhớ

Hình 1.9.c. CPU A đọc vị trí trên bộ nhớ vào cache chịu lỗi

CPU A sử vị trí 12345

Hình 1.9.d. CPU A sửa vị trí 12345

CPU B đọc vị trí 12.345 từ bộ nhớ, thực hiện .

- Nhận giá trị cũ.

- Bộ nhớ không kết hợp.

Hình 1.9.e Xử lý của CPU B

Write-through cache

Để thực hiện sửa lại giá trị trên, thực hiện bằng cách viết tất cả giá trị bus đi qua đến

bộ nhớ chính CPU A bằng cách sửa lại vị trí 12345 – write-through

Bộ nhớ cache bây giờ sẽ như sau :

14

12345:7DeviceI /ODeviceI /O

CPU ACPU A12345: 7

CPU BCPU BCPU B12345: 312345: 3

12345:312345:3

Bus

Bus

12345:7 Device I/O

CPU A

12345:7

CPU B

Cache

BusBus

12345:7 Device I/O

CPU A

12345:3

CPU B

Cache

Page 15: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 1.9.f. CPU A thực hiện Write-through để sửa lại vị trí 12345

- CPU B đọc vị trí 12.345 từ bộ nhớ

- Nạp vào bộ nhớ cache

Hình 1.9.g. CPU B đọc vị trí 12.345 từ bộ nhớ

- CPU A đổi vị trí 12.345

- Thực hiện Write- through

- Cache trên CPU B không được cập nhật

- Bộ nhớ không kết hợp !

Hình 1.9.h. Kết hợp xử lý giữa CPU A và B

Snoopy cache

- Thêm logic cho mỗi bộ điều khiển bộ nhớ cache

- Giám sát hoạt động bus

- Hầu như tất cả các kiến trúc cơ sở bus sử dụng một bộ nhớ cache snoopy

15

12345: 3Device

I /ODevice

I /O

CPU ACPU A12345: 3

CPU BCPU B12345: 3

write [12345] 0

12345: 3

Bus

12345: 012345: 012345: 012345: 0

12345: 012345: 0

12345:312345:3DeviceI /ODeviceI /O

CPU A12345: 3

CPU ACPU A12345: 312345: 3

CPU BCPU B12345: 312345: 3

Bus

12345:3DeviceI /ODeviceI /O

CPU ACPU A12345: 3

CPU B12345: 3

CPU BCPU B12345: 312345: 3

12345:012345:012345: 012345: 0

Bus

Page 16: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 1.9.i. Trường hợp bổ sung Snoopy cache

Switched multiprocessors

- Với n CPUs và n modul bộ nhớ :

+ Cần log2n trạng thái chuyển đổi, mỗi trạng thái có n/2 lần chuyển đổi.

Tổng cộng : (nlog2n)/2 chuyển đổi.

+ Nhanh hơn n2 , nhưng giá thành còn đắt.

Hình 1.10. Kiến trúc Switched multiprocessors

Kiến trúc bus cơ sở không mở rộng một số lượng lớn các CPU (8 +). Ở kiến trúc này

bộ nhớ chia thành các nhóm và kết nối khối của bộ nhớ đến các bộ vi xử lý với một bộ

chuyển mạch thanh ngang. (Hình 1.10). N2 điểm chuyển đổi được cấu thành.

Crossbar alternative: Mạng omega

Giảm điểm chuyển mạch bằng cách thêm nhiều giai đoạn chuyển đổi

Hình 1.11. Kiến trúc mạng Omega

16

Page 17: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

NUMA (Non-Uniform Memory Access or Non-Uniform Memory Architecture) là

một thiết kế bộ nhớ máy tính được sử dụng trong multiprocessors, nơi mà thời gian truy

cập bộ nhớ phụ thuộc vào vị trí bộ nhớ tương đối với một bộ xử lý. Với Numa, một bộ xử

lý có thể truy cập bộ nhớ địa phương của nó nhanh hơn bộ nhớ không cục bộ; nghĩa là,

bộ nhớ địa phương đến một bộ xử lý khác hay bộ nhớ chia sẻ giữa các bộ vi xử lý.

Hình 1.12. Kiến trúc NUMA

Kiến trúc Numa tổ chức theo kiến trúc đa xử lý đối xứng (SMP). Sau đó, nó được thương

mại hóa bởi Burroughs, Hewlett-Packard, Silicon Graphics, Computer Systems v.v…

trong những năm 1990. Kỹ thuật được phát triển và sử dụng trong một loạt các kiểu hệ

điều hành Unix, Linux (Linux 2.5 kernel ) và một phần nào trong Windows NT.

Bus-based multicomputers

- Không có bộ nhớ chia sẻ

- Cơ chế giao tiếp cần hoạt động trên bus

+Giao thông thấp hơn nhiều so với bộ nhớ truy cập

+Không cần bus hệ thống vật ly

- Có thể sử dụng LAN để thay thế

Hình 1.12. Sự kết hợp của các máy trạm trên LAN

17

InterconnectInterconnectInterconnect

CPUmemory

LANconnector

CPUCPUmemorymemory

LANconnectorLANconnector

CPUmemory

LANconnector

CPUCPUmemorymemory

LANconnectorLANconnector

CPUmemory

LANconnector

CPUCPUmemorymemory

LANconnectorLANconnector

CPUmemory

LANconnector

CPUCPUmemorymemory

LANconnectorLANconnector

Page 18: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Switched multicomputers

Kết nối của các máy trạm trên mạng LAN

Hình 1.13. Mô hình kết nối các máy tính trên LAN

1.4.2.Phần mềm

Hệ thống đơn

Sự kết hợp của các máy tính độc lập xuất hiện như một hệ thống đơn với người dùng.

Đặc điểm của hệ thống này được thể hiện:

- Độc lập ( Independent): Có khả năng tự trị (autonomous)

- Hệ thống đơn (Single system): Người dùng không nhận thức được phân tán

Phần mềm hệ thống phân tán

Theo Lamport :

“You know you have a distributed system when the crash of a computer you’ve never

heard of stops you from getting any work done.”

– Leslie Lamport

Coupling

Chặt chẽ so với phần mềm cùng lỏng lẽo (loosely coupled software)

Chặt chẽ so với phần cứng cùng lỏng lẽo (loosely coupled hardware)

Ý tưởng thiết kế

Ở cấp độ cao : Ẩn đi sự phân tán từ ngời dùng

Ở cấp độ thấp : Ẩn đi sự phân tán từ phần mềm

Minh bạch

– Các Đưa ra ấn tượng rằng các bể xử lý là hành động như là một uniprocessor

(WWW là một ví dụ)

18

CPUmemory

LANconnector

CPUCPUmemorymemory

LANconnectorLANconnector

CPUmemory

LANconnector

CPUCPUmemorymemory

LANconnectorLANconnector

CPUmemory

LANconnector

CPUCPUmemorymemory

LANconnectorLANconnector

CPUmemory

LANconnector

CPUCPUmemorymemory

LANconnectorLANconnector

n-port switchn-port switch

Page 19: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Địa điểm minh bạch (Location transparency) : không cần phải biết nơi có tài

nguyên.

- Di cư minh bạch (Migration transparency) : Nguồn lực có thể được di chuyển mà

không có tên của họ đang được thay đổi.

- Sao chép minh bạch (Replication transparency) : Hệ thống miễn phí để làm cho

nhiều bản sao của tập tin mà không có người dùng bị ảnh hưởng (ví dụ, bộ nhớ đệm).

- Tương tranh minh bạch (Concurrency transparency ) : Nhiều người dùng có thể chia

sẻ nguồn tài nguyên tự động.

- Song song minh bạch (Parallelism transparency) : Hoạt động có thể xảy ra song

song mà không có người sử dụng biết.

Tính linh hoạt

Hinh 1.14. Mô hình ứng dụng mạng tổng quát

- Hạt nhân nên làm càng ít càng tốt. Người sử dụng các máy chủ cung cấp số lượng lớn

các dịch vụ của hệ điều hành.

- Trong trường hợp này, hạt nhân được gọi là microkernel

- Microkernel chịu trách nhiệm

+Một số quản lý bộ nhớ

+Một số cấp độ thấp quá trình quản lý và lập kế hoạch

+Thấp cấp đầu vào và đầu ra

+Tất cả các dịch vụ khác thu được bằng cách gửi tin nhắn đến máy chủ thích hợp

Ưu điểm

- Dễ điều biến khi cần thiết

- Mỗi Client có cơ hội bình đẳng để truy cập vào máy chủ, bất kể vị trí

Độ tin cậy

- Duy trì tình trạng sẵn có

19

Page 20: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Bảo vệ chống truy cập trái phép và mất dữ liệu

- Dữ liệu thống nhất nếu duy trì nhiều bản sao của dữ liệu

- Có khả năng chịu lỗi (Fault tolerance )

Biểu diễn

- Một hệ thống phân không nên chạy một appliction chậm hơn nếu có được chạy trên một

máy tính độc lập

- Làm thế nào là hiệu quả đo? ví dụ như, thời gian đáp ứng, thoughput, hệ thống sử dụng,

năng lực mạng lưới tiêu thụ, vv

- Tuy nhiên, hiệu năng bị ảnh hưởng bởi truyền thông ...

Khả năng mở rộng

- Hệ thống phân tán hiện tại được thiết kế để làm việc với một vài trăm CPU. Liệu họ vẫn

làm việc với hàng ngàn hoặc hàng trăm ngàn?

+ Không được tập trung thành phần

+Không nên tập trung bàn

+ Không được tập trung giải thuật

+Không được giả định tất cả các máy được đồng bộ

1.5.CÁC VÍ DỤ VỀ HỆ THỐNG PHÂN TÁN

1.5.1.Mạng cục bộ

Hinh 1.15. Mô hình mạng cục bộ

20

Page 21: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

1.5.2.Hệ thống quản trị CSDL (Database Management System )

Hinh 1.16. Mô hình CDSL

1.5.3. Cơ chế mạng điện thoại tự động(Automatic Teller Machine Network)

Hinh 1.17. Mô hình mạng điện thọai

21

Page 22: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

1.5.4.Internet

Hinh 1.18. Mô hình mạng Internet

1.5.5.Web Servers and Web Browsers

Hinh 1.19. Mô hình các ứng dụng Web

1.5.6.Điện thoại di động và máy tính Ubiquitous

Hình 1.20. Mô hình mạng điện thoại di động

22

Page 23: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

1.5.7.Searching Systems

Hình 1.21. Mô hình các Hệ thống tìm kiếm

1.6. CÁC MÔ HÌNH DỊCH VỤ

1.6.1. Mô hình tập trung

- Không có kết nối mạng

- Sử dụng hệ thống thời gian chia sẻ truyền thống (Traditional time-sharing system)

- Trực tiếp kết nối các thiết bị đầu cuối người sử dụng hệ thống

- Gồm một hoặc nhiều CPU

- Không dễ dàng mở rộng

- Hạn chế yếu tố : số CPU trong hệ thống, xảy ra xung đột cho cùng một tài nguyên.

1.6.2. Mô hình Client Server

- Môi trường bao gồm các khách hàng và các máy chủ

- Dịch vụ : Là công việc mà máy có thể thực hiện

- Server: Là máy mà thực hiện các nhiệm vụ

- Client : Là máy đưa ra yêu cầu dịch vụ

23

Page 24: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 1.22. Mô hình Client –Server

1.6.3. Mô hình Peer to Peer

- Mỗi máy trong mạng có (chủ yếu) khả năng tương đương

- Không có máy được dành riêng để phục vụ người khác

- Bộ sưu tập các máy tính gồm :

+ Truy cập của người khác tập

+ Gửi / nhận thư điện tử (không cần có máy chủ)

+ Gnutella kiểu nội dung chia sẻ

+ Tính toán theo SETI @ home

1.6.4. Tính toán lưới(Grid computing)

- Cung cấp cho người dùng quyền truy cập liên tục đến

+Dung lượng lưu trữ lớn

+Xử lý nhanh

+Băng thông mạng lớn

- Không đồng nhất về mặt địa lý và hệ thống phân tán

17.CẤU TRUC CLIENT - SERVER ĐA TẦNG (MULTI-TIER CLIENT-SERVER)

Kiến trúc đa tầng phát triển ở cuối thập niên 1980 và đầu thập niên 1990.

Trong công nghệ phần mềm, kiến trúc đa tầng (thường được gọi là kiến trúc n-tier)

là một kiến trúc client-server trong đó trình bày các quy trình, việc xử lý ứng dụng, và

quản lý dữ liệu có logic riêng.

Tại sao sử dụng kiến trúc đa tầng? Kiến trúc đa tầng Client / Server cung cấp cho các

nhà phát triển một phương pháp luận để xây dựng ứng dụng Client / Server dựa trên một

mô hình mở rộng, tái sử dụng, thành phần trên,. Kiến trúc này cung cấp cho các tiêu

chuẩn hóa giao diện rõ ràng giữa các cấp thành phần hợp lý-gọi là 'tầng'.

24

Page 25: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

1.7.1.Cấu trúc 2 tầng (Two-tier)

Kiến trúc Two - tier Client / Server cung cấp một lý thuyết cơ bản của công việc.

+Tier đầu tiên : Các khách hàng ( lớp giao tiếp, hiển thị các dữ liệu cho người dùng)

+Tier thứ hai : cung cấp dữ liệu cho các dịch vụ cho khách hàng.

Mô hình này này hoạt động tốt cho đến ngây nay.

Hình 1.23. Kiến trúc Two-tier Client/Server

1.7.2.Cấu trúc 3 tầng (Three-tier)

Tách biệt rõ ràng 3 tầng khác nhau

+Tầng 1 : cung cấp giao diện người sử dụng tiêu chuẩn

+Tầng 2 : Cung cấp dịch vụ được tạo sẵn cho ứng dụng. đóng vai trò như 1 lớp trung gian cho

phép Client có thể tương tác Database

+Tầng 3 : Cơ sở dữ liệu của ứng dụng

Ưu điểm : Cách tiếp cận này cho phép nhà triển đầu tư tận dụng các hệ thống hiện tại khi

tạo ứng dụng mới có thể sử dụng các nguồn lực hiện có.

25

Page 26: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 1.24. Three-tier Client/Server architecture

1.7.3.Kiến trúc đa tầng (Multi-tier architectures )

Một đa tầng, ba tầng, hoặc N-tier thực hiện sử dụng ba tầng kiến trúc hợp lý chồng

trên một mô hình phân tán vật lý. Máy chủ ứng dụng có thể truy cập máy chủ ứng dụng

khác để cung cấp dịch vụ cho các ứng dụng của khách hàng cũng như các dịch vụ cung

cấp cho các máy chủ ứng dụng khác.

Hinh 1.25. Cấu trúc Multi-tier Client/Server

26

Page 27: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Ví dụ, trong biểu đồ dưới đây các ứng dụng khách sẽ đến Application Server # 1 để

cung cấp dữ liệu từ một ứng dụng dựa trên máy tính lớn. Application Server # 1 không có

quyền truy cập trực tiếp đến các ứng dụng máy tính lớn nhưng, nó biết, thông qua việc

phát triển các dịch vụ ứng dụng, mà Application Server # 2 cung cấp dịch vụ truy cập dữ

liệu từ các ứng dụng máy tính lớn mà đáp ứng các yêu cầu của khách hàng. Application

Server # 1 sau đó dịch vụ invokes thích hợp trên Application Server # 2, sau đó được

chuyển cho các khách hàng.

Máy chủ ứng dụng có thể mất nhiều hình thức. Một máy chủ ứng dụng có thể là bất

cứ điều gì từ các dịch vụ ứng dụng tùy chỉnh, xử lý Màn hình giao dịch, cơ sở dữ liệu

Middleware, hàng đợi thông điệp, dựa trên giải pháp CORBA / COM.

Ưng dụng các nhà cung cấp máy chủ chẳng hạn như Open Environment Corporation

(Entera), BEA Systems (Tuxedo), IBM (CICS, MQSeries), IBM / Transarc (Encina),

Iona Technologies (ORBix), NCR (TopEnd) kết hợp với các đối tác của họ cung cấp các

giải pháp kết nối cho Client / Server Suite.

1.8.CÁC ỨNG DỤNG VÀ TIÊU CHUẨN PHÂN TÁN

- Ưng dụng song song và hiệu năng cao(Parallel and high-performance applications)

+Sử dụng nhiều bộ xử lý

+Tính toán với khối lượng lớn

+Bộ nhớ không đủ để bao gồm số lượng lớn cácbộ xử lý

- Ưng dụng chịu lỗi (Fault-Tolerant Applications)

+Một thất bại hay hỏng hóc nào sẽ không ảnh hưởng đến hoạt động chính xác của các

nguồn tài nguyên khác.

- Các ứng dụng phân tán tài nguyên(Inherently Distributed Applications)

+Thời gian phản hồi và giao dịch nhanh (xử lý giao dịch buôn bán trên Internet

v.v…).

+DCE (Distributed Computing Environment ) là một OSF (nền tảng hệ thống mở-

Open System Foundation ) là một ngành công nghiệp tiêu chuẩn được dùng trong kỹ

thuật tính toán phân tán.

+DCE chạy trên tất cả các máy tính nền tảng và được thiết kế để hỗ trợ các ứng dụng

phân tán (phần cứng và phần mềm phân tán)

27

Page 28: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

+ DCE bao gồm một loạt các công nghệ tiên tiến, tích hợp của OSF. Các công nghệ

này bao gồm sau đây:

Đóng gói các luồng (Threads package)

Dịch vụ thời gian phân tán (Distributed time service)

Tên dịch vụ (Name service)

Dịch vụ bảo mật (Security service)

Dịch vụ phân tán (Distributed service)

BÀI TẬP CHƯƠNG I

1. Giải thích sự khác nhau giữa các hệ thống phân tán, multiprocessors, và các hệ thống

mạng.

2. Cho một vài ví dụ thực tế về việc sử dụng hệ thống phân tán.

3. Đặc điểm cấu trúc bộ nhớ chia sẻ vật lý

a. Có một bộ nhớ chia sẻ không gian địa chỉ của tất cả các CPU, Giao tiếp giữa các

CPU diễn ra thông qua việc chia sẻ bằng cách sử dụng hoạt động nhớ đọc và ghi.

b. Sử dụng một bộ nhớ dùng chung kết nối các máy tính với nhau.

c. a và b đúng

d. a và b sai

4. Phát biểu nào sau đây là đúng nhất về hệ phân tán

a. Hệ phân tán là một hệ có chức năng và dữ liệu phân tán trên các máy trạm được

kết nối với nhau qua mạng máy tính.

b. Hệ phân tán là một tập các máy tính tự trị được kết nối với nhau bởi mạng máy

tính và được cài đặt phần mềm phân tán.

c. Hệ phân tán là một tập các máy tính độc lập giao tiếp với nhau như một hệ

thống thống nhất và toàn vẹn.

d. Hệ phân tán là một hệ thống bao gồm : phần cứng phân tán, kiểm soát phân tán,

và dữ liệu phân tán.

5.Việc phân loại hệ phân tán theo Flynn dựa vào :

a. Số lượng CPU và số lượng các thành phần kiểm soát

28

Page 29: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

b. Số lượng CPU và số hệ điều hành sử dụng

c. Số lương các dòng chỉ dẫn và số dòng dữ liệu

d. Tất cả đều đúng

6. Có bao nhiêu mô hình kết nối giữa các máy tính trên mạng ?

a. 2 b.3 c.4 d.5

7. Trình bày kiến trúc n tầng, cho ví dụ minh họa.

8. Trình bày phần mềm ứng dụng chịu lỗi là cho ví dụ minh họa.Các ứng dụng Web có

thể xem là ứng dụng chịu lỗi hay không? Vì sao?

9. Công nghệ nền tảng hệ thống mở - OSF (Open System Foundation ) là gì ?

10.Nêu các kỹ thuật công nghệ tích hợp tiên tiến được áp dụng cho các dịch vụ phân tán

hiện đại ngày nay.

---o0o---

29

Page 30: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

CHƯƠNG II

GIAO TIẾP VÀ MẠNG MÁY TÍNH

MỤC TIÊU

Giúp sinh viên rắm rõ các vấn đề :

- Các mô hình kết nối mạng

- Mô hình tham chiếu OSI

- Kết nối các node trên mạng

- Truyền thông mạng

- Lập trình giao tiếp

2.1. CÁC HỆ THỐNG PHÂN TÁN

Các máy tính làm việc độc lập không có bộ nhớ dùng chung

- Theo mô hình Seitz

- Chúng nối với nhau thành network

2.1.1.Các mô hình kết nối

2.1.1.1.Chuyển mạch kênh(Circuit-switched)

Là loại hình truyền thông trong đó có một kênh chuyên dụng (ated channel) hoặc

mạch (circuit) được thành lập trong thời gian truyền. Các mạch chuyển mạch phổ biến

nhất là hệ thống mạng điện thoại, trong đó đoạn dây liên kết với nhau để tạo ra một dòng

không gián đoạn cho mỗi cuộc gọi điện thoại.

Hệ thống chuyển mạch kênh là lý tưởng cho truyền thông yêu cầu dữ liệu được truyền

đi trong thời gian thực. Trong khi chuyển mạch gói có hiệu quả hơn nếu một số lượng

của sự chậm trễ là chấp nhận được.

Mạng chuyển mạch kênh đôi khi được gọi là mạng kết nối theo định

hướng(connection-oriented networks). Lưu ý, tuy nhiên, rằng mặc dù chuyển mạch gói

về bản chất là kết nối, một mạng chuyển mạch gói có thể được thực hiện theo định hướng

kết nối bằng cách sử dụng một giao thức cấp cao hơn-TCP,. Ví dụ, làm cho IP của mạng

kết nối theo định hướng.

30

Page 31: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

2.1.1.2. Chuyển mạch gói(Packet-switched)

Đề cập đến các giao thức trong đó thông điệp được chia thành các gói tin trước khi

chúng được gửi đi. Mỗi gói dữ liệu sau đó được truyền qua đường riêng, và thậm chí có

thể làm theo các tuyến đường khác nhau đến đích của nó. Sau khi tất cả các gói tạo thành

một tin nhắn đến nơi, họ được biên dịch lại vào thông báo ban đầu.

Mạng Wide Area Network (WAN) bao gồm TCP / IP, X.25 và Frame Relay, được

dựa trên công nghệ chuyển mạch gói. Ngược lại, dịch vụ điện thoại bình thường được

dựa trên công nghệ chuyển mạch kênh, trong đó có một dây chuyền chuyên dụng được

phân bổ truyền giữa hai bên. Chuyển mạch kênh là lý tưởng khi dữ liệu phải được truyền

đi một cách nhanh chóng và phải đến theo thứ tự mà nó được gửi. Đây là trường hợp với

dữ liệu thời gian thực nhất, như âm thanh sống và video. Chuyển mạch gói là hiệu quả

hơn và mạnh mẽ cho dữ liệu nếu chấp nhận sự chậm trễ trong truyền dẫn, chẳng hạn như

e-mail và các ứng dụng Web.

Với công nghệ mới ATM nhằm nỗ lực để kết hợp tốt nhất của cả hai đảm bảo việc

phân phối của các mạng chuyển mạch và tính mạnh mẽ và hiệu quả của mạng chuyển

mạch gói.

Điều gì sẽ xảy ra khi thực hiện chuyển mạch gói ?

- Đối với hiệu quả truyền thông

+ Cùng một ngôn ngữ, cùng một quy ước

- Đối với máy tính:

+ Việc mã hóa điện từ của dữ liệu

+ Ở đâu là bắt đầu của gói?

+ Mà bit có chiều dài như thế nào?

+ Có lỗi (checksum) xảy ra không? ở lúc nào ? và tính toán như thế nào?

+ Định dạng của một địa chỉ là gì?

+ Sắp xếp Byte như thế nào?

2.1.2.Giao thức (Protocols)

Giao thức được hiểu là một tập các quy tắc được sử dụng bởi các máy tính để giao

tiếp với nhau thông qua mạng. Giao thức là một quy ước hoặc tiêu chuẩn mà các điều

khiển hoặc cho phép kết nối, giao tiếp, và chuyển giao dữ liệu giữa thiết bị đầu cuối tính

31

Page 32: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

toán. Giao thức có thể được thực hiện bởi phần cứng, phần mềm, hoặc sự kết hợp của hai

và tồn tại với nhiều cấp độ khác nhau. Ở cấp thấp nhất, một giao thức xác định hành vi

của một kết nối phần cứng. Những quy tắc, hoặc các giao thức, mà làm việc cùng nhau để

đảm bảo giao tiếp thành công được nhóm thành những gì được biết đến như một bộ giao

thức ( Ví dụ bộ giao thức TCP/IP).

Việc sử dụng rộng rãi và mở rộng các giao thức truyền thông là cả một điều kiện tiên

quyết cho Internet trong, và một đóng góp lớn vào sức mạnh và sự thành công của nó.

Các cặp Giao thức Internet (hoặc IP) và Transmission Control Protocol (hay TCP) là

quan trọng nhất trong số này, và các thuật ngữ TCP / IP dùng để chỉ một bộ sưu tập (một

"bộ giao thức") của giao thức của nó được sử dụng nhiều nhất. Hầu hết các giao thức

truyền thông của Internet được mô tả trong tài liệu RFC của Internet Engineering Task

Force (hoặc IETF).

Các giao thức thường gặp : IP, UDP, TCP, DHCP, HTTP, FTP, Telnet, SSH, POP3,

SMTP, IMAP, SOAP,PPP v.v…

Lớp (Layering)

Để dễ dàng phát triển phần mềm và tối đa hoá tính linh hoạt :

- Giao thức mạng, nói chung là có tổ chức trong lớp

- Thay thế một lớp mà không cần thay thế xung quanh lớp

- Phần mềm mức độ cao là không cần phải biết làm thế nào để định dạng một gói tin

Ethernet, hay thậm chí biết rằng Ethernet đang được sử dụng

Mô hình phổ biến nhất cho việc sử dụng giao thức lớp là mô hình tham chiếu OSI,

được tạo bởi ISO gồm 7 lớp giao thức.

2.1.3.Mô hình tham chiếu OSI

Mô hình OSI phân chia chức năng của một giao thức ra thành một chuỗi các tầng

cấp. Mỗi một tầng cấp có một đặc tính là nó chỉ sử dụng chức năng của tầng dưới no,

đồng thời chỉ cho phép tầng trên sử dụng các chức năng của mình. Một hệ thống cài đặt

các giao thức bao gồm một chuỗi các tầng nói trên được gọi là "chồng giao thức"

(protocol stack). Chồng giao thức có thể được cài đặt trên phần cứng, hoặc phần mềm,

hoặc là tổ hợp của cả hai. Thông thường thì chỉ có những tầng thấp hơn là được cài đặt

trong phần cứng, còn những tầng khác được cài đặt trong phần mềm.

32

Page 33: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Mô hình OSI này chỉ được ngành công nghiệp mạng và công nghệ thông tin tôn trọng

một cách tương đối. Tính năng chính của nó là quy định về giao diện giữa các tầng cấp,

tức qui định đặc tả về phương pháp các tầng liên lạc với nhau. Điều này có nghĩa là cho

dù các tầng cấp được soạn thảo và thiết kế bởi các nhà sản xuất, hoặc công ty, khác nhau

nhưng khi được lắp ráp lại, chúng sẽ làm việc một cách dung hòa (với giả thiết là các đặc

tả được thấu đáo một cách đúng đắn). Trong cộng đồng TCP/IP, các đặc tả này thường

được biết đến với cái tên RFC (Requests for Comments, dịch sát là "Đề nghị duyệt thảo

và bình luận"). Trong cộng đồng OSI, chúng là các tiêu chuẩn ISO (ISO standards).

Hình 2.1. Mô hình tham chiếu OSI

Tầng 1 : Tầng vật lý (Physical Layer)

Tầng vật lý định nghĩa tất cả các đặc tả về điện và vật lý cho các thiết bị. Trong đó

bao gồm bố trí của các chân cắm (pin), các hiệu điện thế, và các đặc tả về cáp nối (cable).

Các thiết bị tầng vật lý bao gồm Hub, bộ lặp (repeater), thiết bị tiếp hợp mạng (network

adapter) và thiết bị tiếp hợp kênh máy chủ (Host Bus Adapter)- (HBA dùng trong mạng

lưu trữ (Storage Area Network)). Chức năng và dịch vụ căn bản được thực hiện bởi tầng

vật lý bao gồm:

33

Page 34: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Thiết lập hoặc ngắt mạch kết nối điện (electrical connection) với một phương tiện

truyền thông (transmission medium).

- Tham gia vào quy trình mà trong đó các tài nguyên truyền thông được chia sẻ hiệu

quả giữa nhiều người dùng. Chẳng hạn giải quyết tranh chấp tài nguyên (contention) và

điều khiển lưu lượng.

- Điều biến (modulation), hoặc biến đổi giữa biểu diễn dữ liệu số (digital data) của

các thiết bị người dùng và các tín hiệu tương ứng được truyền qua kênh truyền thông

(communication channel).

Cáp (bus) SCSI song song hoạt động ở tầng cấp này (RS-232, 10BaseT v.v...). Nhiều

tiêu chuẩn khác nhau của Ethernet dành cho tầng vật lý cũng nằm trong tầng này;

Ethernet nhập tầng vật lý với tầng liên kết dữ liệu vào làm một. Điều tương tự cũng xảy

ra đối với các mạng cục bộ như Token ring, FDDI và IEEE 802.11.

Tầng 2: Tầng liên kết dữ liệu (Data Link Layer)

Tầng liên kết dữ liệu cung cấp các phương tiện có tính chức năng và quy trình để

truyền dữ liệu giữa các thực thể mạng, phát hiện và có thể sửa chữa các lỗi trong tầng vật

lý nếu có. Cách đánh địa chỉ mang tính vật lý, nghĩa là địa chỉ (địa chỉ MAC) được mã

hóa cứng vào trong các thẻ mạng (network card) khi chúng được sản xuất. Hệ thống xác

định địa chỉ này không có đẳng cấp (flat scheme). Chú ý: Ví dụ điển hình nhất là

Ethernet, MAC, PPP. Những ví dụ khác về các giao thức liên kết dữ liệu (data link

protocol) là các giao thức HDLC; ADCCP dành cho các mạng điểm-tới-điểm hoặc mạng

chuyển mạch gói (packet-switched networks) và giao thức Aloha cho các mạng cục bộ.

Trong các mạng cục bộ theo tiêu chuẩn IEEE 802, và một số mạng theo tiêu chuẩn khác,

chẳng hạn FDDI, tầng liên kết dữ liệu có thể được chia ra thành 2 tầng con: tầng MAC

(Media Access Control - Điều khiển Truy nhập Đường truyền) và tầng LLC (Logical

Link Control - Điều khiển Liên kết Lôgic) theo tiêu chuẩn IEEE 802.2.

Tầng liên kết dữ liệu chính là nơi các cầu nối (bridge) và các thiết bị chuyển mạch

(switches) hoạt động. Kết nối chỉ được cung cấp giữa các nút mạng được nối với nhau

trong nội bộ mạng.

34

Page 35: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Tầng 3: Tầng mạng (Network Layer)

Tầng mạng cung cấp các chức năng và qui trình cho việc truyền các chuỗi dữ liệu có

độ dài đa dạng, từ một nguồn tới một đích, thông qua một hoặc nhiều mạng, trong khi

vẫn duy trì chất lượng dịch vụ (quality of service) mà tầng giao vận yêu cầu. Tầng mạng

thực hiện chức năng định tuyến, .Các thiết bị định tuyến (router) hoạt động tại tầng này

— gửi dữ liệu ra khắp mạng mở rộng, làm cho liên mạng trở nên khả thi (còn có thiết bị

chuyển mạch (switch) tầng 3, còn gọi là chuyển mạch IP). Đây là một hệ thống định vị

địa chỉ lôgic (logical addressing scheme) – các giá trị được chọn bởi kỹ sư mạng. Hệ

thống này có cấu trúc phả hệ. Ví dụ điển hình của giao thức tầng 3 là giao thức IP, X.25.

Tầng 4: Tầng giao vận (Transport Layer)

Tầng giao vận cung cấp dịch vụ chuyên dụng chuyển dữ liệu giữa các người dùng tại

đầu cuối, nhờ đó các tầng trên không phải quan tâm đến việc cung cấp dịch vụ truyền dữ

liệu đáng tin cậy và hiệu quả. Tầng giao vận kiểm soát độ tin cậy của một kết nối được

cho trước. Một số giao thức có định hướng trạng thái và kết nối (state and connection

orientated). Có nghĩa là tầng giao vận có thể theo dõi các gói tin và truyền lại các gói bị

thất bại. Một ví dụ điển hình của giao thức tầng 4 là TCP. Tầng này là nơi các thông điệp

được chuyển sang thành các gói tin TCP hoặc UDP. Ở tầng 4 địa chỉ được đánh là

address ports, thông qua address ports để phân biệt được ứng dụng trao đổi.

Tầng 5: Tầng phiên (Session layer)

Tầng phiên kiểm soát các (phiên) hội thoại giữa các máy tính. Tầng này thiết lập,

quản lý và kết thúc các kết nối giữa trình ứng dụng địa phương và trình ứng dụng ở xa.

Tầng này còn hỗ trợ hoạt động song công (duplex) hoặc bán song công (half-duplex) hoặc

đơn công (Single) và thiết lập các qui trình đánh dấu điểm hoàn thành (checkpointing) -

giúp việc phục hồi truyền thông nhanh hơn khi có lỗi xảy ra, vì điểm đã hoàn thành đã

được đánh dấu - trì hoãn (adjournment), kết thúc (termination) và khởi động lại (restart).

Ví dụ HTTP 1.1, SSL, NetBIOS

Tầng 6: Tầng trình diễn (Presentation layer)

Tầng trình diễn biến đổi dữ liệu để cung cấp một giao diện tiêu chuẩn cho tầng ứng

dụng. Nó thực hiện các tác vụ như mã hóa dữ liệu sang dạng MIME, nén dữ liệu, và các

thao tác tương tự đối với biểu diễn dữ liệu để trình diễn dữ liệu theo như cách mà chuyên

35

Page 36: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

viên phát triển giao thức hoặc dịch vụ cho là thích hợp. Chẳng hạn: chuyển đổi tệp văn

bản từ mã EBCDIC sang mã ASCII, hoặc tuần tự hóa các đối tượng (object serialization)

hoặc các cấu trúc dữ liệu (data structure) khác sang dạng XML và ngược lại.

Tầng 7: Tầng ứng dụng (Application layer)

Tầng ứng dụng là tầng gần với người sử dụng nhất. Nó cung cấp phương tiện cho

người dùng truy nhập các thông tin và dữ liệu trên mạng thông qua chương trình ứng

dụng. Tầng này là giao diện chính để người dùng tương tác với chương trình ứng dụng,

và qua đó với mạng. Một số ví dụ về các ứng dụng trong tầng này bao gồm Telnet, Giao

thức truyền tập tin FTP và Giao thức truyền thư điện tử(SMTP, POP, IMAP), tryền file

(FTP), dịch vụ thư mục (LDAP), remote...

2.2.MỘT SỐ PHÂN LOẠI MẠNG PHỔ BIẾN

2.2.1.Mạng cục bộ (Local Area Network -LAN)

Là một mạng máy tính :

- Bao gồm một khu vực nhỏ, thể chất, giống như một ngôi nhà, văn phòng, hoặc một

nhóm nhỏ của các tòa nhà, như là một trường học, hoặc một sân bay

- Đôi khi được chia sẻ, truyền tải trung bình

- Có tốc độ dữ liệu cao thường : 1 Mbps - 1 Gbps

- Độ trễ (latency) thấp

- Thiết bị được bình đẳng

+Bất kỳ thiết bị có thể bắt đầu chuyển dữ liệu với bất kỳ thiết bị khác.

- Hầu hết các thành phần trên mạng LAN là máy trạm. Thiết bị đầu cuối trên các

LAN được gọi là cac node (nodes)

- Ethernet với các cáp xoắn đôi, và Wi-Fi là 2 công nghệ phổ biến nhất đang sử dụng

trên LAN.

2.2.2,Mạng diện rộng (Wide Area Network - WAN)

Là mạng có khả năng liên kết các tài nguyên máy tính trong một vùng địa lý rộng (có

bán kính trên 100km) như thị xã, thành phố, tỉnh/bang, quốc gia. Có thể coi mạng WAN

gồm nhiều mạng LAN kÕt nèi víi nhau. Ví dụ về mạng WAN: ISDN (Integrated Services

Data Network), frame relay, SMDS (Switched Multimegabit Data Service) và ATM

(Asynchronous Transfer Mode)

36

Page 37: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 2.2. Mạng WAN ( kết hợp của nhiều mạng LAN qua các router)

2.3. KẾT NỐI CÁC NODES ĐẾN MẠNG LAN

Việc kết nối các node đến mạng LAN được thực hiện qua các thiết bị kết nối, Các thiết

bị kết nối gồm :

2.3.1.Card mạng (Network Interface Cards -NICs)

Đó là một card được cắm trực tiếp vào máy tính. Trên đó có các mạch điện giúp cho

việc tiếp nhận (receiver) hoặc/và phát (transmitter) tín hiệu lên mạng. Người ta thường

dùng từ tranceiver để chỉ thiết bị (mạch) có cả hai chức năng thu và phát. Transceiver cú

nhiều loại vì phải thích hợp đối với cả môi trường truyền và do đó cả đầu nối. Ví dụ với

cáp gầy, card mạng cần có đường giao tiếp theo kiểu BNC, với cáp UTP cần có đầu nối

theo kiểu giắc điện thoại K5, cáp dày dùng đường nối kiểu AUI , với cáp quang phải có

những transceiver cho phép chuyển tín hiệu điện thành các xung ánh sáng và ngược lại.

Trong máy tính thường để sẵn các khe cắm để bổ sung các thiết bị ngoại vi hay cắm

các thiết bị ghép nối.

2.3.2.Các thiết bị truyền dẫn

Cáp đôi dây xoắn (Twisted pair cable) : Là cáp gồm hai dây đồng xoắn để tránh gây

nhiễu cho các đôi dây khác, có thể kéo dài tới vài km mà không cần khuyếch đại. Giải tần

trên cáp dây xoắn đạt khoảng 300–4000Hz, tốc độ truyền đạt vài kbps đến vài Mbps. Cáp

xoắn có hai loại:

37

Page 38: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Loại có bọc kim loại để tăng cường chống nhiễu gọi là cap STP ( Shield Twisted

Pair). Loại này trong vỏ bọc kim có thể có nhiều đôi dây. Về lý thuyết thì tốc độ truyền

có thể đạt 500 Mb/s nhưng thực tế thấp hơn rất nhiều (chỉ đạt 155 Mbps với cáp dài 100

m)

- Loại không bọc kim gọi là UTP (UnShield Twisted Pair), chất lượng kém hơn STP

nhưng rất rẻ. Cap UTP được chia làm 5 hạng tuỳ theo tốc độ truyền. Cáp loại 3 dùng cho

điện thoại. Cáp loại 5 có thể truyền với tốc độ 100Mb/s rất hay dùng trong các mạng cục

bộ vì vừa rẻ vừa tiện sử dụng.

Cáp đồng trục (Coaxial cable) : Là cáp mà hai dây của nó có lõi lồng nhau, lõi ngoài

là lưới kim loại. khả năng chống nhiễu rát tốt nên có thể sử dụng với chiều dài từ vài trăm

met đến vài km. Có hai loại được dùng nhiều là loại có trở kháng 50 ohm và loại có trở

kháng 75 ohm. Cáp đồng trục băng tần cơ sở thường dùng cho các mạng cục bộ, gọi là

Thin Ethernet (Tương tự như Cáp Tivi). Một loại cáp khác có tên là “Thick Ethernet” mà

ta gọi là cáp béo (Ví dụ 10Base5, ThickNet).

Cáp quang ( Fiber cable) : Dùng để truyền các xung ánh sáng trong lòng một sợi

thuỷ tinh phản xạ toàn phần. Môi trường cáp quang rất lý tưởng vì : Xung ánh sáng có thể

đi hàng trăm km mà không giảm cường độ sáng. giải thông rất cao (1014 – 1016);

không bị nhiễu điện từ; an toàn và bí mật, nhưng giá thành còn cao.

Cáp quang cũng có hai loại :

- Loại đa mode (multimode fiber): khi góc tới thành dây dẫn lớn đến một mức nào đó

thì có hiện tượng phản xạ toàn phần. Nhiều tia sáng có thể cùng truyền miễn là góc tới

của chúng đủ lớn. Các cap đa mode có đường kính khoảng 50

- Loại đơn mode (singlemode fiber): khi đường kính dây dẫn bằng bước sóng thì cáp

quang giống như một ống dẫn sóng, không có hiện tượng phản xạ nhưng chỉ cho một tia

đi. Loại nàycó cường kính khoản 8 và phải dùng diode laser. Cáp quang đa mode có thể

cho phép truyền xa tới hàng trăm km mà không cần phải khuyếch đại.

2.3.3.Các thiết bị liên kết mạng

Repeater là loại thiết bị phần cứng đơn giản nhất trong các thiết bị liên kết mạng, nó

được hoạt động trong tầng vật lý của mô hình hệ thống mở OSI. Repeater dùng để nối 2

mạng giống nhau hoặc các phần một mạng cùng có một nghi thức và một cấu hình. Khi

38

Page 39: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Repeater nhận được một tín hiệu từ một phía của mạng thì nó sẽ phát tiếp vào phía kia

của mạng.

Bridge là một thiết bị có xử lý dùng để nối hai mạng giống nhau hoặc khác nhau, nó

có thể được dùng với các mạng có các giao thức khác nhau. Cầu nối hoạt động trên tầng

liên kết dữ liệu nên không như bộ tiếp sức phải phát lại tất cả những gì nó nhận được thì

cầu nối đọc được các gói tin của tầng liên kết dữ liệu trong mô hình OSI và xử lý chúng

trước khi quyết định có chuyển đi hay không.

Khi nhận được các gói tin Bridge chọn lọc và chỉ chuyển những gói tin mà nó thấy

cần thiết. Điều này làm cho Bridge trở nên có ích khi nối một vài mạng với nhau và cho

phép nó hoạt động một cách mềm dẻo. Để thực hiện được điều này trong Bridge ở mỗi

đầu kết nối có một bảng các địa chỉ các trạm được kết nối vào phía đó, khi hoạt động cầu

nối xem xét mỗi gói tin nó nhận được bằng cách đọc địa chỉ của nơi gửi và nhận và dựa

trên bảng địa chỉ phía nhận được gói tin nó quyết định gửi gói tin hay không và bổ xung

bảng địa chỉ.

Hubs thường được dùng để nối mạng, thông qua những đầu cắm của nó người ta liên

kết với các máy tính dưới dạng hình sao. Người ta phân biệt các Hub thành 3 loại như

sau sau :

- Hub bị động (Passive Hub) : Hub bị động không chứa các linh kiện điện tử và cũng

không xử lý các tín hiệu dữ liệu, nó có chức năng duy nhất là tổ hợp các tín hiệu từ một

số đoạn cáp mạng. Khoảng cách giữa một máy tính và Hub không thể lớn hơn một nửa

khoảng cách tối đa cho phép giữa 2 máy tính trên mạng (ví dụ khoảng cách tối đa cho

phép giữa 2 máy tính của mạng là 200m thì khoảng cách tối đa giữa một máy tính và hub

là 100m). Các mạng ARCnet thường dùng Hub bị động.

- Hub chủ động (Active Hub) : Hub chủ động có các linh kiện điện tử có thể

khuyếch đại và xử lý các tín hiệu điện tử truyền giữa các thiết bị của mạng.Qúa trình xử

lý tín hiệu được gọi là tái sinh tín hiệu, nó làm cho tín hiệu trở nên tốt hơn, ít nhạy cảm

với lỗi do vậy khoảng cách giữa các thiết bị có thể tăng lên. Tuy nhiên những ưu điểm đó

cũng kéo theo giá thành của Hub chủ động cao hơn nhiều so với Hub bị động. Các mạng

Token ring có xu hướng dùng Hub chủ động.

39

Page 40: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Router là một thiết bị hoạt động trên tầng mạng, nó có thể tìm được đường đi tốt nhất

cho các gói tin qua nhiều kết nối để đi từ trạm gửi thuộc mạng đầu đến trạm nhận thuộc

mạng cuối. Router có thể được sử dụng trong việc nối nhiều mạng với nhau và cho phép

các gói tin có thể đi theo nhiều đường khác nhau để tới đích.

Khác với Bridge hoạt động trên tầng liên kết dữ liệu nên Bridge phải xử lý mọi gói tin

trên đường truyền thì Router có địa chỉ riêng biệt và nó chỉ tiếp nhận và xử lý các gói tin

gửi đến nó mà thôi. Khi một trạm muốn gửi gói tin qua Router thì nó phải gửi gói tin với

địa chỉ trực tiếp của Router (Trong gói tin đó phải chứa các thông tin khác về đích đến)

và khi gói tin đến Router thì Router mới xử lý và gửi tiếp. Khi xử lý một gói tin Router

phải tìm được đường đi của gói tin qua mạng. Để làm được điều đó Router phải tìm được

đường đi tốt nhất trong mạng dựa trên các thông tin nó có về mạng, thông thường trên

mỗi Router có một bảng chỉ đường (Router table). Dựa trên dữ liệu về Router gần đó và

các mạng trong liên mạng, Router tính được bảng chỉ đường (Router table) tối ưu dựa

trên một thuật toán xác định trước.

Người ta phân chia Router thành hai loại là Router có phụ thuộc giao thức (The

protocol dependent routers) và Router không phụ thuộc vào giao thức (The protocol

independent router) dựa vào phương thức xử lý các gói tin khi qua Router.

2.4.MÔ HÌNH MẠNG (NETWORKING TOPOLOGY)

2.4.1. Dạng thẳng (Bus)

Hình 2.3. Mô hinh dạng Bus

Trong mạng trục tất cả các trạm phân chia một đường truyền chung (bus). Đường

truyền chính được giới hạn hai đầu bằng hai đầu nối đặc biệt gọi là terminator. Mỗi trạm

40

Page 41: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

được nối với trục chính qua một đầu nối chữ T (T-connector) hoặc một thiết bị thu phát

(transceiver).

Khi một trạm truyền dữ liệu tín hiệu được quảng bá trên cả hai chiều của bus, tức là

mọi trạm còn lại đều có thể thu được tín hiệu đó trực tiếp. Đối với các bus một chiều thì

tín hiệu chỉ đi về một phía, lúc đó các terminator phải được thiết kế sao cho các tín hiệu

đó phải được dội lại trên bus để cho các trạm trên mạng đều có thể thu nhận được tín hiệu

đó. Như vậy với topo mạng trục dữ liệu được truyền theo các liên kết điểm-đa điểm

(point-to-multipoint) hay quảng bá (broadcast).

Sau đây là vài thông số kỹ thuật của topology bus.

Theo chuẩn IEEE 802.3 (cho mạng cục bộ) với cách đặt tên qui ước theo thông số:

tốc độ truyền tính hiệu (1,10 hoặc 100 Mb/s);

BASE (nếu là Baseband) hoặc BROAD (nếu là Broadband).

10BASE5: Dùng cáp đồng trục đường kính lớn (10mm) với trở kháng 50 Ohm,

tốc độ 10 Mb/s, phạm vi tín hiệu 500m/segment, có tối đa 100 trạm, khoảng cách giữa 2

tranceiver tối thiểu 2,5m (Phương án này còn gọi là Thick Ethernet hay Thicknet)

10BASE2: tương tự như Thicknet nhưng dùng cáp đồng trục nhỏ (RG 58A), có

thể chạy với khoảng cách 185m, số trạm tối đa trong 1 segment là 30, khoảng cách giữa

hai máy tối thiểu là 0,5m. Dạng kết nối này có ưu điểm là ít tốn dây cáp, tốc độ truyền dữ

liệu cao tuy nhiên nếu lưu lượng truyền tăng cao thì dễ gây ách tắc và nếu có trục trặc

trên hành lang chính thì khó phát hiện ra.

Hiện nay các mạng sử dụng hình dạng đường thẳng là mạng Ethernet và G-net.

2.4.2. Dạng cây (Tree)

Mô hình cây là mô hình phân cấp. Nó bao gồm một nút gốc hoặc một hub nối đến

các nút mức hai hoặc hub mức hai. Các thiết bị ở mức hai này lại được nối đến các thiết

bị ở mức ba, mức ba được nối đến các thiết bị ở mức bốn,… Mạng dạng cây đơn giản

được cho trong hình 2.4

41

Page 42: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 2.4. Mô hinh dạng Tree2.4.3. Dạng sao (Start)

Đặc điểm chính của mạng hình sao là có một hub xử lý trung tâm - hub này là trung

tâm truyền tin cho tất cả các nút. Cấu hình mạng hình sao đơn giản được minh họa trong

hình 5. Để các nút có thể truyền thông cho nhau, tất cả dữ liệu phải được truyÒn qua

hub. Do đó khi hub ngừng hoạt động toàn bộ mạng còng ngõng ho¹t ®éng.

Hình 2.5. Mô hinh dạng Start

42

Hub

Page 43: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

2.4.4. Dạng vòng (Ring)

Hình 2.6. Mô hinh dạng Ring

Hình 2.6. Mô hinh dạng Ring

Trong cấu hình ring, tất cả các nút được nối đến cùng một vòng - môi trường truyền

thông dùng chung. Trong topo dạng ring truyền thống, thông điệp được truyền lần lượt

qua các nút theo vòng. Hướng truyền có thể thuận hay ngîc chiều kim đồng hồ phụ thuộc

vào công nghệ sử dụng. Chú ý rằng, mặc dù dữ liệu được chuyển từ nút nọ đến nút kia,

ring vẫn không phải là một topo thuộc mô hình điểm - điểm vì các nút dùng chung một

kênh truyền.

Vì vậy, về mặt logic, trong topo dạng ring tất cả các nút dùng chung một kênh truyền,

nhưng về mặt vật lý, việc truyền thông thuộc mô hình điểm - điểm. Trường hợp này cũng

giống như topo dạng bus và tất cả các hệ thống điểm - nhiều điểm khác, mạng dạng ring

cần một số phương pháp để quản lý việc truy cập vòng đồng thời.

2.4.5. Dạng hỗn hợp (Mesh)

Là sự phối hợp các kiểu kết nối khác nhau ví du hình cây là cấu trúc phân tầng của

kiểu hình sao hay các HUB có thể được nối với nhau theo kiểu bus còn từ các HUB nối

với các máy theo hình sao.

43

Page 44: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 2.7. Mô hinh dạng Mesh

2.5.TRUYỀN THÔNG MẠNG (TRANSMISSION NETWORKS)

2.5.1. Dải tần

Dải tần cơ sở (Base band)

Trong các mạng cục bộ, đây là một phương pháp truyền thông, trong đó tín hiệu

thông tin được đưa trực tiếp vào cáp ở dạng số không điều biến. Các tín hiệu máy tính có

thể được truyền qua cáp bằng hai cách: tín hiệu tương tự (tỷ biến) và tín hiệu số. Mạng

truyền thông tương tự được gọi là mạng băng thông ( broad band network).

Các mạng truyền thông số được gọi là mạng băng tần cơ sở. Vì các tín hiệu của máy

tính là tín hiệu số, cho nên số lượng mạch cần thiết cho một mạng băng cơ sở để truyền

dẫn tín hiệu này ra vào máy tính là rất ít. Hơn nữa, nhiều mạng băng cơ sở có thể sử dụng

dây cáp hai sợi xoắn (dây điện thoại bình (thường), cho nên lắp đặt chúng giá rẻ hơn với

mạng băng rộng đòi hỏi phải có cáp đồng trục. Tuy nhiên, hệ băng cơ sở bị hạn chế về cự

ly truyền dẫn và chỉ cho phép thực hiện một kênh truyền thông trong một lúc. Hầu hết các

mạng máy tính cục bộ đều là mạng băng cơ sở.

Tất cả các nút chia sẻ quyền truy cập vào mạng truyền thông trên cơ sở bình đẳng

nhau. Dữ liệu sử dụng băng thông của toàn bộ phương tiện truyền thông

44

Hub

Hub

HUB

Bé chuyÓn ®æi c¸p

Page 45: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 2.8. Bảng thống kê dãi tần của Hoa Kỳ

Dải tầng rộng/Băng thông rộng (Broadband)

Trong các mạng cục bộ, đây là một phương pháp truyền thông tín hiệu tương tự (tỷ

biến) được đặt trưng bởi dải tần rộng. Tín hiệu này thường được tách chia ra hoặc truyền

dồn ( multiplex) để cung cấp cho các đường truyền thông đa kênh. Vì các tín hiệu của

máy tính là loại tín hiệu số, nên chúng phải được chuyển đổi bằng một quá trình gọi là

biến điệu ( modulation) trước khi chúng được truyền qua mạng tín hiệu tương tự. Một

modem sẽ thực hiện nhiệm vụ đó.

Hệ thống dải rộng dùng phương pháp truyền tương tự. Vì máy tính là thiết bị số, nên

yêu cầu phải có các thiết bị giống như modem ở cả hai đầu cáp truyền để chuyển đối tín

hiệu từ số thành tương tự hoặc ngược lại.

Truyền thông dải rộng có thể mở rộng cự ly khá xa và hoạt động ở tốc độ rất cao.

Mạng dải rộng cũng giống như mạng truyền hình cáp, có thể truyền hai hoặc nhiều kênh

cùng một lúc (các kênh khác nhau về tần số). Do đó mạng truyền thông dải rộng có thể

thực hiện truyền cả dữ liệu lẫn tiếng

45

Page 46: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Tần số đài phát thanh (RF broadcasts)

Các phương thức truyền thông cho các công nghệ không dây của tất cả các loại, bao

gồm cả điện thoại không dây, radar, phát thanh, GPS, đài phát thanh và truyền hình v.v…

đều sử dụng công nghệ RF. Sóng RF là sóng điện từ đó tuyên truyền với tốc độ của ánh

sáng 300.000km/s

Ở Hoa Kỳ, mỗi thiết bị có sử dụng sóng RF phải phù hợp với FCC (Federal

Communications Commission) quy định. Ví dụ với màn hình bé tý của điện thoại di

động phải hoạt động bằng cách sử dụng tần số thiết kế của 49 MHz. Điện thoại không

dây và các thiết bị khác có tần số riêng của nó .

Hình 2.9.Sự phân bổ dãi tần cho tín hiệu audio và videoBảng 2.1. Các dãi tần quy định cho các dịch vụ truyền thông ở Hoa Kỳ

Dãi tần cở sở trong giới hạn Broadband

DOCSIS(Data Over Cable Service Interface Specification)

Được phát triển bởi CableLabs và sau đó được các công ty ARRIS, BigBand

Networks, Broadcom, Cisco, Conexant, Correlant, ,Intel, Motorola, Netgear, Terayon, và

Texas Instruments. Nó được làm bởi nhiều nhà khai thác truyền hình cáp để cung cấp

46

+1.25 MHz

video

+5.75 MHzaudio

6 M

Hz

+1.25 MHz

video

+5.75 MHzaudio

6 M

Hz

Hàng không / Hàng hải 9 KHz - 535 KHz

AM radio 535 KHz - 1.700 KHz

Shortwave radio 5,9 MHz - 26,9 MHz

Citizen's Band (CB) MHz 26,96 - 27,41 MHz

Đài truyền hình 2-6 54 MHz - 88 MHz

FM radio 88 MHz - 108 MHz

TV trạm 7-13 174 MHz - 220 MHz

Điện thoại di động CDMA 824 MHz - 849 MHz

Điện thoại di động GSM 869 MHz - 894 MHz

Air Traffic Control 960 MHz - 1.215 MHz

GPS 1.227 MHz - 1.575 MHz

Page 47: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

truy cập Internet. Các đặc điểm kỹ thuật DOCSIS đầu tiên là phiên 1.0, phát hành vào

tháng 03/1997. với phiên bản 1.1 (bổ sung chất lượng dịch vụ (QoS) khả năng) vào

4/1999. Do nhu cầu tăng cho các dịch vụ đối xứng như điện thoại IP, DOCSIS đã sửa đổi

để nâng cao tốc độ truyền dẫn thượng nguồn,

DOCSIS được tổ chức thông tin tiêu chuẩn IUT thông qua và xem như là tiêu chuẩn

quốc tế vào năm 1998. Gần đây nhất, đặc điểm kỹ thuật đã được sửa đổi để tăng đáng kể

tốc độ truyền đi và giới thiệu hỗ trợ cho các IPv6, đó là phiên bản này, DOCSIS 3.0 phát

hành vào 8/2006.

Các tính năng của DOCSIS

- DOCSIS cung cấp nhiều loại lớn trong các tùy chọn sẵn có tại các lớp lớp 1 và 2

của mô hình OSI và lớp MAC (Media Access Control)

+ Dòng xuống (Downstream) : phạm vi 50-750 Mhz, băng thông 6 Mhz, lên đến

38 Mbps; nhận được tất cả các loại modem

+ Dòng lên (Upstream) : phạm vi : 5-42 MHz; 30,72 Mbps (10 Mbps trong 1,0

DOCSIS, 1,1); dữ liệu chuyển giao trong timeslots (TDM)

- DOCSIS 3,0 tính năng quản lý trên IPv6 và liên kết kênh, cho phép nhiều kênh dòng

lên và dòng xuống bằng được sử dụng với nhau đồng thời bởi một thuê bao duy nhất.

DOCSIS Modem

Hình 2.10. Mô hình DOCSIS Modem

Giới hạn tải lên / tải về được thiết lập do tập tin cấu hình cho modem thông qua TFTP

khi kết nối tới nhà cung cấp dịch vụ này.

47

cabletuner demodulator

modulator

network interface

MAC

CPU

ethernet interface(to PC)

Page 48: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Dãi tần cơ sở cho Ethernet

Ethernet định nghĩa một loạt các chuẩn nối dây và phát tín hiệu cho tầng vật lý, hai

phương tiện để truy nhập mạng tại phần MAC (điều khiển truy nhập môi trường truyền

dẫn) của tầng liên kết dữ liệu, và một định dạng chung cho việc đánh địa chỉ. Ethernet đã

được chuẩn hóa thành IEEE 802.3

Ngày nay, với các chuẩn khác nhau, tốc độ có thể lên đến 100 Gbps.

Phương pháp truy cập sử dụng phổ biến trong mạng LAN, WAN là đa truy nhập sử

dụng sóng mang có pháp hiện xung đột CSMA/CD (Carrier Sense Multiple Access with

Collision Detection).

Giao thức CSMA cảm nhận sóng mang được sử dụng rất phổ biến trong các mạng cục

bộ. Giao thức này sử dụng phương pháp thời gian chia ngăn theo đó thời gian được chia

thành các khoảng thời gian đều đặn và các trạm chỉ phát lên đường truyền tại thời điểm

đầu ngăn. Mỗi trạm có thiết bị nghe tín hiệu trên đường truyền (tức là cảm nhận sóng

mang). Trước khi truyền cần phải biết đường truyền có rỗi không. Nếu rỗi thi mới được

truyền. Phương pháp này gọi là LBT (Listening before talking). Khi phát hiện xung đột,

các trạm sẽ phải phát lại.

Để có thể phát hiện xung đột, CSMA/CD đã bổ xung thêm các quy tắc sau đây :

Khi một trạm truyền dữ liệu, nó vẫn tiếp tục "nghe" đường truyền . Nếu phát hiện

xung đột thì nó ngừng ngay việc truyền, nhờ đó mà tiết kiệm được thời gian và giải

thông, nhưng nó vẫn tiếp tục gửi tín hiệu thêm một thời gian nữa để đảm bảo rằng tất cả

các trạm trên mạng đều "nghe" được sự kiện này.(như vậy phải tiếp tục nghe đường

truyền trong khi truyền để phát hiện đụng độ (Listening While Talking)). Sau đó trạm sẽ

chờ trong một khoảng thời gian ngẫu nhiên nào đó rồi thử truyền lại theo quy tắc CSMA.

2.5.2. Sự kết nối đến Internet

- DOCSIS modem via cable TV service

- DSL router

+Ethernet converted to ATM data stream

+Up to 20 Mbps up to ~ 2 km.

+POTS limited to 300-3400 Hz

+DSL operates > 3500 Hz

48

Page 49: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Modem

+Data modulated over voice spectrum (300-3400 Hz)

+Serial interface to endpoint

+V.92: 48 kbps downstream, near 56 kbps up

+Use PPP or SLIP to bridge IP protocol

- Dedicated T1 or T3 line

+T1 line: 1.544 Mbps (24 PCM TDMA speech lines @ 64 kbps)

+T3 line: 44.736 Mbps (672 channels)

+CSU/DSU at router presents serial interface

- Channel Service Unit / Data Service Unit

Hình 2.11. Mô hình DOCSIS Modem

• Fiber to the Home, Fiber to the Curb

– Ethernet interface

– E.g., Verizon’s FiOS 30 Mbps to the home

• Long Reach Ethernet (LRE)

– Ethernet performance up to 5,000 feet

• Wireless:

– WiMax

– EDGE (70-135 Kbps)

– GPRS (<32 Kbps)

2.5.3.Clients và Servers

Clients và Servers là mối quan hệ giữa 2 chương trình máy tính, mà trong đó một

chương trình, Client thực hiện gởi một yêu cầu từ một ứng dụng hoặc từ một chương

LANRS-232C, RS-

449, V.xxserial line

T1 line Phonenetwork

PhonenetworkCSU/DSUrouter

49

Page 50: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

trình của dịch vụ, Server lưu trữ các yêu từ của Client. Để cung cấp một dịch vụ, Server chủ phải

có một địa chỉ vận chuyển cho một dịch

vụ cụ thể nào đó.

Trong mạng, mô hình Client-Server cung cấp một cách thuận tiện để kết nối các chương trình được phân phối

một cách hiệu quả trên địa điểm khác nhau.

Đối với Internet, trình duyệt web của bạn là một chương trình Client, có yêu cầu dịch vụ (gửi các trang web

hoặc tập tin) từ một máy chủ web (mà về mặt kỹ thuật được gọi là một Hypertext Transport Protocol hay HTTP

server) trong một máy tính khác một nơi nào đó trên Internet. Tương tự như vậy, máy tính của bạn với giao thức

TCP / IP cài đặt cho phép bạn thực hiện yêu cầu của Client cho các tập tin từ File Transfer Protocol (FTP) các

Server trong máy tính

khác trên Internet.

Việc giao dịch trong mạng giữa các máy tính thì mô hình Client-Server rất phổ biến

hiện nay.

2.6. ĐỊA CHỈ MÁY VÀ ĐỊA CHỈ TRUYỀN THÔNG

Một thông điệp gởi qua máy tính theo 2 loại :

- giao thức hướng kết nối (Connection-oriented protocols)

- giao thức hướng không kết nối(Connectionless protocols)

Giao thức hướng kết nối

1.Thiết lập kết nối

2. Đàm phán giao thức

3 .Trao đổi dữ liệu

4. Chấm dứt kết nối

Đặc điểm

- Cung cấp các một mạch ảo chuyên dụng

- Thông điệp đảm bảo đến trong trật tự

- Cần có cơ chế kết nối giữa 2 máy Client và Server. Client chỉ có thể gởi thông

điệp được sau khi Server thiết lập và bắt đầu.

Giao thức hướng không kết nối :

1. Gởi/ nhận dữ liệu (Dữ liệu là các gói tin)

2. Không chấm dứt kết nối

50

Page 51: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Đặc điểm

- Không chấm dứt. Không có thiết lập cuộc gọi tương tự gởi thư. Dữ liệu gởi

/nhận bỏ vào hộp thư.

- Không có cơ chế kết giữa máy Server và Client

- Rẻ hơn nhưng ít tin cậy hơn so với dịch vụ mạch ảo

Ethernet

• Lớp 1 & 2 của mô hình OSI

– Lớp Physical (1)

• Cables: 10Base-T, 100Base-T, 1000Base-T, etc.

– Lớp Data Link (2)

• Ethernet bắc cầu

• Phân tích khung dữ liệu (Data frame)

• Truyền khung dữ liệu

• Phát hiện lỗi

Hình 2.12. Cấu trúc gói tin

Giao thức Internet (IP - Internet Protocol)

Được đưa ra 1969 là công trình nghiên cứu áp dụng cho 4 máy tính kết nối mạng,

được tài trợ bởi Bộ Quốc phòng Mỹ trong dự án có tên ARPA.

Mục đích

“Xây dựng một mạng chịu lỗi hiêu qua mà co thể kết nối cac may không đồng nhất

và liên kết riêng cac mạng được kết nối với nhau.”

51

6 bytes 6 bytes 2 bytes 46-1500 bytes 4 bytes

18 bytes + data

Page 52: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Địa chỉ IP(IP - Internet Protocol)

Là một địa chỉ đơn giản nhất mà những thiết bị điện tử hiện nay đang sử dụng để

nhận diện và liên lạc với nhau trên mạng bằng cách sử dụng  giao thức Internet

- Mỗi máy trên một mạng IP được gán một số 32-bit duy nhất cho mỗi giao diện mạng:

+ Địa chỉ IP, không phải máy địa chỉ

- Một máy tính kết nối đến một vài mạng vật lý sẽ có một số địa chỉ IP cho mỗi mạng

IP Address space

Một máy tính kết nối đến một vài mạng vật lý sẽ có 32 bit địa chỉ IP Khoảng hơn 4

tỉ địa chỉ IP.

- Routers sẽ cần một bảng 4 tỉ thực thể

- Thiết kế bảng định tuyến để mộtthực thể có thể phù hợp với nhiều địa chỉ

IP Addressing: networks & hosts

cs.rutgers.edu remus.rutgers.edu

128.6.4.2 128.6.13.3

80 06 04 02 80 06 0D 03

• first 16 bits identify Rutgers

• external routers need only one entry

– route 128.6.*.* to Rutgers

• Địa chỉ IP

– network #: Xác định địa chỉ mạng

– host #: Xác định địa chỉ của host (Server ) tren mạng

Class Leading bits Bits for net# Bits for hostA 0 7(128) 24(16M )B 10 14(16K) 16(64K)C 110 21(2M) 8(256)

Để cho phép mạng i thêm trong một tổ chức : sử dụng các bit cao của số máy chủ cho

một nội mạng – subnet .

52

Netwokr # Host #

Page 53: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Ví dụ : IBM: 9.0.0.0 – 9.255.255.255

Hình 2.13. Địa chỉ IP của IBM

Chuyển đôi địa chỉ mạng (Network Address Translation - NAT)

Hình 2.14 (a).Sơ đồ chuyển đổi địa chi IP

Getting to the machine

IP là một mạng logic trên mạng vật lý

53

Page 54: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hệ điều hành hỗ trợ cho IP qua trình điều khiển IP

Hình 2.14 (b).Sơ đồ chuyển đổi địa chi IP

2.7.LẬP TRÌNH GIAO TIẾP

2.7.1.Sockets là gì ?

Mỗi máy tính muốn giao tiếp với nhau cần phải có một địa chỉ duy nhất (điạ chỉ IP).

Nhờ có IP mà chúng ta .gởi dữ liệu giữa các máy tính. Tuy nhiên khi một máy tính chạy

nhiều chuơng trình, thì các chương trình đó được phân biệt với nhau bởii khái niệm port.

- Ví dụ :

+ Máy chủ A có Web Server và DNS Serverr. địa chỉ IP là 203.162.0.181.

+ Giả sử có một máy tính B truy nhập đến dịch vụ Web của Máy A thì trong gói

tin IP gửi đi, IP đích sẽ là 203.162.0.31 và port 80

+ Cùng lúc đó có máy C truy nhâp đến dịch vụ DNS trên máy A thì trong gói tin

IP gửi đi, IP đích sẽ là 203.162.0.181 và port đích là 53.

- Kết hợp giữa IP và port thì chúng ta mới xác định đựợc một dịch vụ cụ thể để truy

nhập đến máy chủ

- TCP & UDP là các giao thức tầng : Chứa các số hiệu cổng ( Port) để xác điểm cuối

của ứng dụng.

Để biết thêm danh sách các cổng , có thể xem ::

http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

Như vậy, có thể xem : Sockets = (IP + Port).

54

Page 55: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Socket là một phương pháp để thiết lập kết nối truyền thông giữa một chương trình

yêu cầu dịch vụ ( client) và một chương trình cung cấp dịch vụ (server) trên mạng LAN,

WAN hay Internet  và đôi lúc là giữa những quá trình ngay bên trong máy tính. 

Mỗi socket có thể được xem như một điểm cuối trong một kết nối.  Một socket trên

máy yêu cầu dịch vụ có địa chỉ mạng được cấp sẵn để “gọi” một socket trên máy cung

cấp dịch vụ. 

Một khi socket đã được thiết lập phù hợp, hai máy tính có thể trao đổi dịch vụ và dữ

liệu.

2.7.2.Mô hình tông quát của IPC

Mục đích :

+ Giao tiếp giữa các quá trình không nên phụ thuộc vào việc chúng đang họ đang

trên cùng một máy

+ Hiệu quả

+ Khả năng tương thích(compatibility)

+ Hỗ trợ các giao thức khác nhau

+ Trong ứng dụng cho phép lựa chọn các kiểu giao tiếp khác nhau: Chuyển mạch

ảo, datagram, thông điệp v.v…

+ Không liên quan đến tiến trình nên có thể xác định vị trí điểm đầu điểm cuối:

Sockets phải được đặc tên (named)

Ý nghĩa đầy đủ tên trong giao tiếp domain

Các ngôn ngữ lập trình hiện nay đều có thư viện lập trình mạng rất mạnh (C#, C++,

Java..) và thường có thư viện Socket để hỗ trợ cho lập trình mạng.

2.7.2.Lập trình với socket

Bước 1 :Tạo socket

int s = socket(domain, type, protocol)

Trong đó :

Domain : AF_INF

Type : Socket dạng gói hoặc luồng ( SOCK_DRAM hoặc SOCK_STREAM)

Protocol : Kiểu giao thức sử dung (UDP, TCP)

Bước 2 : Đặt tên cho socket (assign address, port)

55

Page 56: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

int error = bind(s, addr, addrlen)

Bước 3a (server) : Thiết lập socket để có thể chấp nhận kết nối

int error = listen(s, backlog)

Bước 3b (server) : Chờ cho một kết nối từ khách hàng

int snew = accept(s, clntaddr, &clntalen)

Bước 3 ( Client) : Kết nối đến Server

int error = connect(s, svraddr, svraddrlen)

Bước 4 : Trao đổi dữ liệu(Exchange )

Kết nối định hướng (Connection-oriented)

+ read/write

+ recv/send (extra flags)

Kết nối không định hướng(Connectionless)

+sendto, sendmsg

+recvfrom, recvmsg

Bước 5 : Đóng kết nối

shutdown(s, how)

Trong đó:

0: Có thể gởi nhưng không nhận

1: không thể gửi nhiều dữ liệu hơn

2: không thể gửi hoặc nhận (=0+1)

Sockets trong Java

Trong java lập trình mạng được hỗ trợ bởi gói java.net package

Có 2 lớp chính ::

– Socket: Dành cho thiết lập Socket phía Client

– ServerSocket: Dành cho thiết lập Socket phía Server

Bước 1a (Phía Server) Tạo socket và đặt tên cho nó

ServerSocket svc = new ServerSocket(port)

Bước 1b (Phía server) Chờ đợi kết nối từ Client

Server req = svc.accept()

56

Page 57: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Tạo socket mới (req) cho phiên hoạt động của Client

Bước 1 (Phía Client) Tạo socket và đặt tên cho nó

Socket s = new Socket(address, port);

obtained from:

getLocalHost, getByName,

or getAllByName

Socket s = new Socket(“cs.rutgers.edu”, 2211);

Bước 2 Trao đổi dữ liệu

Ghi hoặc đọc dữ liệu qua phương thức InputStream/OutputStream từ đối tượng

Socket

BufferedReader in = new BufferedReader(new InputStreamReader(

s.getInputStream()));

PrintStream out = new PrintStream(s.getOutputStream());

Bước 3 Đóng các kết nối : Đóng streams, đóng Socket

in.close();

out.close();

s.close();

2.7.3.Bản chất Socket

Khối điều khiển giao thức (Protocol Control Block)

Client chỉ gửi dữ liệu đến máy tính qua các port. Làm thế nào để các máy chủ theo dõi

phiên đồng thời cùng lúc trên các port?

Hệ điều hành duy trì một cấu trúc gọi là gọi là : Khối điều khiển giao thức (Protocol

Control Block - PCB )

Trên Server : Với câu lệnh : Server: svr=socket(), khi System Call tạo Socket thì

sẽ tạo các mục trong bảng PCB.

57

Page 58: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Local Add Local Port Foreign addr Foreign Port Listen ?

Local

Add

Local

Port

Foreign

addr

Foreign Port Listen ?

Hình 2.15a. (Quá trình cấp phát thuộc tính ở PCB)

Với câu lệnh: bind(svr)

- Yêu cầu client ràng buộc đến địa chỉ 0.0.0.0 (INADDR_ANY), port 7801

- Xác định port và address cục bộ ràng buộc đến Socket của Server add=0.0.0.0,

port : 1234)

Local Add Local Port Foreign addr Foreign

Port

Listen ?

Local

Add

Local

Port

Foreign

addr

Foreign

Port

Listen ?

0.0.0.0 1234 0 0

Hình 2.15 (b)

Với câu lệnh: listen(svr, 10)

Thiết lập socket để lắng nghe từ Socket của Client

Local Add Local Port Foreign addr Foreign Port Listen ?

Local

Add

Local

Port

Foreign

addr

Foreign Port Listen ?

0.0.0.0 1234 YES

Hình 2.15 (c)

58

Server

Client

svr

Server

Client

svr

Client

Server

svr

Page 59: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Với câu lệnh: snew=accept(svr)

Block – Chờ kết nối từ Client. Rõ ràng lúc này PCB không thay đổi về cấu trúc.

Local Add Local Port Foreign addr Foreign Port Listen ?

Local

Add

Local

Port

Foreign

addr

Foreign Port Listen ?

0.0.0.0 1234 YES

Hình 2.15 (d)

Trên Client , Với câu lệnh: s = socket()

Tạo khối PCB ở Client .

Local Add Local Port Foreign addr Foreign Port Listen ?

Local

Add

Local

Port

Foreign

addr

Foreign Port Listen ?

0.0.0.0 1234 YES

Hình 2.15 (e)

Với câu lệnh: s = bind(s)

Client sẽ xác định port và địa chỉ cục bộ đến socket, bind(addr=0.0.0.0,

port=7801)

Local Add Local Port Foreign addr Foreign Port Listen ?

0.0.0.0 7801

Local

Add

Local

Port

Foreign

addr

Foreign Port Listen ?

0.0.0.0 1234 YES

Hình 2.15 (f)

59

Client

Server

svr

Client

Server

svr

Server

svr

ss

Client

Page 60: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Với câu lệnh: connect(s)

Gửi yêu cầu kết nối đến máy chủ [135.250.68.3:7801] to [192.11.35.15:1234]

Local Add Local Port Foreign addr Foreign Port Listen ?

0.0.0.0 7801

Local

Add

Local

Port

Foreign

addr

Foreign Port Listen ?

0.0.0.0 1234 *

Hình 2.15 (g)

Server đáp ứng với ghi nhận (acknowledgement) [192.11.35.15:1234] đến

[135.250.68.3 :7801]

Local Add Local Port Foreign addr Foreign Port Listen ?

0.0.0.0 7801 192.11.35.15 1234

Local

Add

Local

Port

Foreign

addr

Foreign Port Listen ?

0.0.0.0 1234 *

Hình 2.15 (h)

Giao tiếp : Client và Server thực hiện trao đổi dữ liệu

- Mỗi tin nhắn từ Client được gắn thẻ như là dữ liệu hoặc kiểm soát (ví dụ như kết

nối)

- Nếu dữ liệu - tìm kiếm thông qua bảng mà FA và FP kết hợp tin nhắn đến và

listen = false

- Nếu kiểm soát - tìm kiếm thông qua bảng mà ở đây listen = true

60

s

Server

svr

Client

Client

s

Server

svr

Page 61: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

BÀI TẬP CHƯƠNG II

1. Phát biểu sau đây phát biểu nào là không đúng về Socket

a. Socket là một phương pháp để thiết lập kết nối truyền thông giữa một chương trình yêu

cầu dịch vụ ( client) và một chương trình cung cấp dịch vụ (server) trên mạng LAN,

WAN hay Internet

b. Socket là vùng nhớ trung gian giữa hai máy khi kết nối với nhau.

c. Mỗi socket có thể được xem như một điểm cuối trong một kết nối.

d. Một khi socket đã được thiết lập phù hợp, hai máy tính có thể trao đổi dịch vụ và dữ

liệu.

2. Trình tự nào là đúng cho lập trình Socket ở Server

a. Tạo socket, đặt tên socket, thực hiện lắng nghe, truy cập đối tượng , trao đổi dữ liệu,

đóng kết nối

b. Tạo socket, đặt tên socket, thực hiện lắng nghe, trao đổi dữ liệu,truy cập đối tượng,

đóng kết nối.

c. Tạo socket, đặt tên socket, trao đổi dữ liệu,thực hiện lắng nghe, truy cập đối tượng,

đóng kết nối

d. Tất cả đều sai

3. Trình tự nào là đúng cho lập trình Socket ở Client

a. Tạo socket, đặt tên socket,kết nối Server, trao đổi dữ liệu, đóng kết nối

b. Tạo socket, kết nối Server, đặt tên socket, trao đổi dữ liệu, đóng kết nối

c. Tạo socket, đặt tên socket, trao đổi dữ liệu, kết nối Server,đóng kết nối

d. Tất cả đều sai

4. Có bao nhiêu cách trao đôi dữ liệu trong giao tiếp bằng socket

a. 1 b.2 c.3 d.4

5. Socket trong java được khai báo ở

a. java.until b. java.io c. java.net d. java.netwok

---o0o---

61

Page 62: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

CHƯƠNG III

TÊN VÀ ĐỊNH DANH TRONG HỆ PHÂN TÁN

MỤC TIÊU

Giúp sinh viên rắm rõ các vấn đề :

- Các khái niệm liên quan đến tên, định danh đối tượng

- Thành lập dãy truy cập

- Cách phân giải tên trong hệ phân tán

- Định danh trong các hệ điều hành

3.1 TÊN (NAME)

3.1.1 Định nghĩa

Một đối tượng trong hệ phân tán có thể là users, files, database objects, variables,

communication links ...

Một tên (name) trong một hệ thống phân tán là một chuỗi các bit ký tự được sử dụng

để chỉ đến một đối tượng. Tên có thể có nhiều dạng khác nhau, chẳng hạn như tên thông

thường, địa chỉ (address) hoặc định danh (identifier). Định danh là tên duy nhất cho một

đối tượng.

3.1.2 Các yếu tố của tên

Tên bao gồm năm yếu tố : chức năng của tên, cấu trúc của tên, ý nghĩa của tên,

thông tin mà tên chứa đựng, thời gian tồn tại của ý nghĩa của tên.

Chức năng của tên: Sử dụng để phân biệt một đối tượng từ những đối tượng khác

Cấu trúc của tên: Tên có cấu trúc thực thế bao gồm nhiều trường (field). Các tên có

thể có cấu trúc giống nhau hoặc khác nhau.

Ý nghĩa của tên: Nếu một cái tên có ý nghĩa như nhau trong mọi ứng dụng thì nó có

thể gửi và nhận giữa các ứng dụng khác nhau mà không cần quan tâm đến vị trí hiện

tại của nó ở trong hệ thống. Các ứng dụng phải đảm bảo rằng một cái tên mang ý

nghĩa này trong một ứng dụng thì tất cả các ứng dụng không thể nhận được ý nghĩa

khác với cái tên giống như vậy.

62

Page 63: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Thông tin của tên: Tên chứa đựng thông tin về đối tượng như như nghĩa, loại hoặc vị

trí. Việc đặt tên phải tối ưu để từ tên của đổi tượng có thể lấy thông tin về đối tượng

ngay lập tức mà không cần phải khó khăn để phân tích tên.

Thời gian tồn tại của ý nghĩa của tên: Nghĩa của tên có thể vẫn giữ nguyên khi ứng

dụng thực thi hoặc nó có thể thay đổi dù ứng dụng không cho phép. Cần phải ngăn

chặn việc thay đổi nghĩa của tên mà các trạm không nhận ra và cho phép kiểm tra xem

ý nghĩa của tên có thay đổi hay không. Nếu tên thay đổi mà không được trạm đồng ý,

cần có những kỹ thuật định danh cho phép trạm xác định được rằng tên chỉ đến đúng

đối tượng chúng cần.

3.1.3 Các loại tên

3.1.3.1 Tên đơn giản

Là các loại tên không có cấu trúc, thường chứa đựng thông tin về vị trí (location) của

một đối tượng hoặc quản lý (authority) của một đối tượng

Ví dụ : #9B3FB1C8

3.1.3.2 Tên có cấu trúc thứ bậc

Giữa các tên có sự móc nối quan hệ với nhau và có thứ bậc.

Ví dụ :

Hình 3.1. Tên co cấu trúc thứ bậcTrong cấu trúc trên có thể xác định tên như: \Node 1\Files\John\Image

63

Page 64: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

3.2 ĐỊNH DANH (IDENTIFY)

3.2.1 Giới thiệu

Để chỉ đến một đối tượng, người ta thường sử dụng định danh. Định danh là một dạng

của tên nhưng định danh là chuỗi các bit ký tự đặc trưng duy nhất cho đối tượng. Khi

thực hiện chương trình, các định danh cần phải gắn chặt với các đối tượng thực để trỏ

chính xác vị trí của chúng. Trong từng thời điểm, cặp <định danh, đối tượng trỏ> tạo

thành ngữ cảnh (context) thực hiện. Mối quan hệ giữa đối tượng cần trỏ đến và định

danh của nó gọi là liên kết.

Những người sử dụng hay các ứng dụng trong hệ phân tán có thể truy cập đến cùng

một đối tượng, đồng thời có thể trao đổi các định danh với nhau. Định danh trước hết cần

có các yếu tố: có thể xác định vị trí, có thể chuyển đổi giữa các ứng dụng và có thể sử

dụng lại.

3.2.2 Tại sao phải định danh

Việc định danh đối tượng giúp chúng ta nhận biết được một dịch vụ (service) hoặc

một tài nguyên mà chúng ta muốn sử dụng và không bị nhầm lẫn.

Việc định danh đối tượng cho phép các ứng dụng hoặc các tiến trình có thể chia sẻ các

tài nguyên với nhau.

Việc định danh đối tượng giúp an toàn cho hệ thống: Với một hệ thống có rất nhiều

định danh, việc nhận biết một định danh đòi hỏi định danh đó phải hợp quy cách. Nếu

toàn bộ hệ thống có sự thống nhất về định danh thì sẽ đảm bảo cho việc cập nhật đến

một đối tượng.

3.3 LIÊN KẾT VÀ THÀNH LẬP DÃY TRUY CẬP

3.3.1 Liên kết

3.3.1.1 Định nghĩa

Vấn đề liên kết được hiểu như mối liên hệ đối tượng cần trỏ đến và định danh của nó.

Liên kết hướng đến thành lập một chuỗi các truy cập đến đối tượng và nó phải thực

hiện muộn hơn thời điểm thực hiện một lệnh truy cập đối tượng

Tuy nhiên, khi thực hiện chương trình, có nhiều lý do cần tiến hành các phép toán liên

kết với đối tượng theo kiểu động, chẳng hạn như:

64

Page 65: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

1. Độc lập về thời gian tồn tại: một đối tượng có thể được tạo ra và huỷ bỏ độc lập với

việc thực hiện chương trình

2. Sử dụng lại các định danh: cùng một định danh có thể được sử dụng để chỉ các đối

tượng khác nhau trong quá trình thực hiện

3. Đối tượng nằm ngoài vùng điạ chỉ hoá của bộ xử lý: đối tượng nằm tại vị trí mà bộ

xử lý thực hiện các lệnh của chương trình không thể truy cập đến được. Chương trình

thông dịch của việc truy cập như vậy sử dụng định danh đối tượng là rất cần thiết.

Do vậy, các đối tượng được trỏ tới trong một chương trình có thể chia thành hai loại:

1. Chương trình dịch và chương trình liên kết có thể thực hiện công việc liên kết

2. Các đối tượng hình thành tự động khi thực hiện chương trình.

3.3.1.2 Liên kết động

a.Vấn đề trong liên kết động

Trong liên kết động nảy sinh hai vấn đề:

Vấn đề 1 : Xuất phát từ định danh cần phải tìm đối tượng

Vấn đề 2 : Hình thành dãy truy cập đến đối tượng

b.Giải quyết vấn đề

Vấn đề 1:

Để giải quyết vấn đề 1 thì phải sử dụng tập hợp các danh mục. Các danh mục được

đặt trong các bảng có nhiệm vụ tạo mối liên hệ giữa các định danh và các mô tả nơi chứa

đối tượng.

Các quy tắc phiên dịch một định danh thay đổi theo chức năng của trạm, của NSD,

của vị trí mà nó xuất hiện. Thông dụng nhất là các quy tắc được xác định trên cơ sở “môi

trường” hiện hành.

Có nhiều trường hợp xảy ra :

1. Cùng một định danh có thể chỉ các đối tượng khác nhau trong môi trường khác

nhau ( Hình 3.2)

2. Cùng một định danh có thể chỉ cùng một đối tượng trong các môi trường khác nhau

( Hình 3.3)

3. Cùng một đối tượng tuỳ theo môi trường có thể được trỏ bởi các định danh khác

nhau ( Hình 3.4)

65

Page 66: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 3.2. M t đ nh danh ch đ nh nhi u đ i t ng trong các môi tr ng khác nhauộ ị ỉ ị ề ố ượ ườ

Hình 3.3. M t đ nh danh ch đ nh cùng m t đ i t ng trong nhi u môi tr ngộ ị ỉ ị ộ ố ượ ề ườ

Hình 3.4.M t đ i t ng tuỳ theo môi tr ng có th tr b i các đ nh danh khácộ ố ượ ườ ể ỏ ở ị

Vấn đề 2 : Liên quan đến cấu tạo và phiên dịch dãy truy cập sẽ trình bày ở phần 3.3

3.4 CON TRỎ

66

Định danh

Đối tượng 1

Đối tượng 1

Đối tượng 1

Môi trường 1

Môi trường 2

Môi trường 3

Định danh 1 Đối tượng 1

Đối tượng 1

Đối tượng 1

Môi trường 1

Môi trường 2

Môi trường 3

Định danh 2

Định danh 3

Định danh

Đối tượng 1

Đối tượng 3

Đối tượng 2

Môi trường 1

Môi trường 2

Môi trường 3

Page 67: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

3.4.1 Các đặc tính của con trỏ

Sự vận động hay miền tác dụng của con trỏ: một con trỏ gọi là toàn cục khi có cùng

định danh không phụ thuộc vào môi trường sử dụng nó. Một con trỏ có thể sử dụng

trong tất cả các trạm của mạng, nhưng nó chỉ có nghĩa trong một môi trường cho

trước, ví dụ ở trạm này nó mang ý nghĩa này nhưng ở trạm khác nó lại mang ý nghĩa

khác.

Sự phụ thuộc rõ rệt của con trỏ vào sự định vị đối tượng: sự định danh có thể tường

minh và trong trường hợp đó, thông thường, con trỏ chứa một phần đặc trưng cho

trạm và một phần khác riêng cho bản thân nó. Ngược lại, sự định danh mà không

tham chiếu đến nơi định vị đối tượng cho phép di chuyển một đối tượng từ trạm này

đến trạm khác mà người sử dụng (NSD) không hay biết.

Số lượng đối tượng gắn với con trỏ: một con trỏ có thể biểu hiện một đối tượng đặc

biệt (định danh riêng biệt) hay ngược lại một nhóm các đối tượng. Trong trường hợp

này, cơ chế truy cập cho phép chọn một trong các đối tượng đó mà NSD không hay

biết nhằm đánh dấu các trường hợp xấu.

3.4.2 Thực hiện danh mục tông quát

3.4.2.1 Danh mục tổng quát được đưa vào cho một trạm duy nhất

Trong trường hợp này, danh mục tổng quát chỉ có một bản duy nhất và được đặt trên

một trạm.

Ưu điểm: Chỉ có một bảng danh mục duy nhất, do đó rất thuận lợi và nhanh chóng

trong cập nhật thông tin.

Hạn chế:

- Trạm chứa danh mục bị sự cố thì hệ thống không thể hoạt động được

- Dễ bị ùn tắc khi các yêu cầu truy cập đi qua cùng một trạm trong cùng một thời

điểm

3.4.2.2 Danh mục tổng quát được nhân trên từng trạm

Trong trường hợp này, tất cả các trạm đều có bản sao của danh mục tổng quát, thông

tin của các bản sao này giống nhau và giống với bản chính.

Ưu điểm:

- Khi một trạm bị sự cố thì không gây ảnh hưởng lớn đến hệ thống

67

Page 68: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Không gây ùn tắc vì các yêu cầu phân bố trên nhiều trạm

Hạn chế: khó đảm bảo gắn bó dữ liệu trong tất cả các bản sao

3.4.2.3 Danh mục tổng quát phân tán trên các trạm

Trong trường hợp này, mỗi trạm có danh mục riêng của mình, gốc của đồ thị là tập tin

cục bộ.

Vấn đề cần giải quyết:

- Cần phải có sự liên thông giữa các trạm để nhận biết trạng thái chính xác các đối

tượng mà nó quản lý

- Để truy cập vào một đối tượng, trạm cần phải biết chính xác cấu trúc danh mục

cục bộ nơi mô tả đối tượng đó

- Việc tham chiếu vào các đối tượng, thông thường, được thực hiên bởi bộ định

danh của trạm, từ đó, ta có thể giải phóng bởi các cơ chế tăng tốc như bộ lọc của

NSD trong hệ thống Rsexec, nhưng đôi khi cũng xuất hiện vấn đề mới là sự hoạt

động nhịp nhàng (homonymic) của các bộ định danh tổng quát.

Ưu điểm :

- Việc truy cập vào các tập tin cục bộ sẽ được tiến hành rất nhanh

- Việc quản lý các danh mục có tính chất cục bộ và độc lập trên từng trạm

- Việc điều khiển truy cập tương tranh vào một tập tin nào đó có thể được tiến hành

triển khai một cách khá dễ dàng.

3.5 THÀNH LẬP DÃY TRUY CẬP

3.5.1 Vấn đề trỏ thông tin trong hệ phân tán

Khi người sử dụng (NSD) muốn liên lạc với nhau, họ phải sử dụng hệ thống tên quy

ước hay còn gọi là địa chỉ mạng. Các địa chỉ này tuân theo nguyên tắc xây dựng nhất

định và không trùng nhau.

Khi số lượng NSD tăng lên thì người ta đề ra giải pháp mới là mỗi NSD kết hợp với

một trạm đặc biệt lưu trữ thông tin liên quan đến NSD đó. Những trạm đặc biệt này có

thể coi là các máy chủ và mỗi một máy chủ có thể quản lý một tập hợp các NSD có cùng

chung đặc tính nào đó. Các máy chủ được kết nối lại với nhau và luôn ở trong tình trạng

nhận và phát thông tin.

68

Page 69: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Trên máy chủ gắn liền với NSD người ta thành lập hệ thống tra cứu thông tin của

mạng (các danh mục tổng quát) và hệ thống này luôn được làm tươi để đám bảo thông tin

chứa trong đó đúng trạng thái thực của hệ. Khi NSD gửi một thông điệp cho NSD khác ở

xa thì máy chủ nguồn (nơi thông điệp xuất phát) phải tra cứu vào đây để xác định hướng

của luồng thông tin đến máy chủ đích, máy của thông điệp đến.

Hệ thống thông tin tra cứu được phân tán trên các máy chủ để đề phòng trường hợp

một máy chủ bị sự cố dẫn đến không thể tra cứu thông tin cho các NSD gắn liền với nó.

Các hệ thống thông tin phân tán dùng cho việc tra cứu trên các máy chủ phải giống nhau

hoàn toàn.

3.5.2 Liên thông tiến trình

Để thực hiện truy cập từ xa phải thực hiện liên thông các tiến trình đã đưa ra trên các

trạm khác nhau.

Trong trường hợp có sự định danh tổng quát các tiến trình, hai tiến trình ở xa có thể

hiểu lai lịch tương ứng của các cửa sổ của chúng với mục đích cho phép nhập cuộc vào

liên kết trao đổi.

Sự liên lạc giữa các tiến trình dựa trên cơ sở các thông báo. Một thông báo bất kỳ luôn

chứa các thông tin cần thiết cho việc định danh các tiến trình phát và thu.

3.5.3 Cửa sô (window)

Thông thường, việc trao đổi giữa hai tiến trình ở xa diễn ra thông qua các đối tượng

trung gian gọi là windows. Một cửa sổ được định vị trên một trạm. Mỗi cửa sổ được định

danh bởi một con trỏ (bộ định danh) bao gồm bộ định danh tổng quát của chính trạm đó

và một con trỏ cục bộ.

Việc sử dụng cửa sổ để trao đổi giữa các tiến trình cho thấy có các ưu điểm:

Chính các bộ định danh tổng quát cho tập hợp của hệ là các bộ định danh của các cửa

sổ. Mỗi một trạm có thể lưu trữ các quy định riêng về định danh và sử dụng các ngôn

ngữ thuật toán khác nhau để soạn thảo tiến trình

Các tiến trình có thể gán động cho các cửa sổ. Do vậy, một phép gửi các thông báo có

thể liên quan đến các trạm khác nhau. Lúc này chỉ cần thay đổi các tiến trình gắn với

cửa sổ nhận là đủ.

69

Page 70: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 3.5. Chia sẻ cửa sổ

3.5.4 Phối hợp tiến trình – windows

3.5.4.1 Truy cập trực tiếp

Khi NSD gắn với cửa sổ a muốn xác lập liên kết với tiến trình trực Vi của một trạm

xa, nó liên hệ tại cửa sổ b gắn với nó bằng cách liên lạc với bộ định danh a của riêng nó.

Nếu Vi chấp nhận, nó ghi điều đó vào tiến trình NSD và kênh (a,b) được thành lập.

Nếu cửa sổ trực có thể được chia sẻ, thì nhiều tiến trình NSD có thể hội thoại cùng

một lúc với nó để cùng một phục vụ.

Hình 3.6. Truy cập trực tiếp NSD-Server

3.5.4.2 Truy cập theo kiếu nối tiếp

Trường hợp này, kênh (a,b) được thành lập giữa NSD và chương trình trực. Chương

trình trực có nhiệm vụ liên thông trực tiếp giữa tiến trình yêu cầu và tiến trình Server.

Theo hình vẽ ta thấy gắn với tiến trình NSD là bộ định danh c của cửa sổ phối hợp với

server thông qua kênh (a,b). Một kênh mới (a,c) được khởi sự từ tiến trình NSD

3.5.4.3 Truy cập gián tiếp

70

Page 71: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Tiến trình yêu cầu không thể định danh được tiến trình Server. Tiến trình yêu cầu phải

thông qua trung gian để tiến hành công việc liên thông.

Kiểu định danh này được đặt ra khi mà cửa sổ b của tiến trình trực không được chia

sẻ. Vấn đề đặt ra là thời gian trao đổi thông qua kênh (a,b) càng ngắn càng tốt để không

ảnh hưởng đến các NSD khác.

Hình 3.7. Truy cập nối tiếp

3.6.CÁCH PHÂN GIẢI TÊN TRONG HỆ PHÂN TÁN

3.6.1 Name service

3.6.1.1Các thành phần trong kiến trúc Name service

Name agent

- Cung cấp giao diện (interface) giữa Name service và Client

- Được chỉ huy bởi Name server để tạo hay tìm kiếm tên

Name server

Hình 3.8. Cac thành phần của Name service

71

a

bKªnh (a,b)

TiÕn tr×nh NSD

TiÕn tr×nh trùc Vi

c

TiÕn tr×nh trùc Si

Kªnh (a,c)

Page 72: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Quản lý thông tin và thực hiện các chức năng ánh xạ giữa tên và đối tượng

- Có thể liên kết với các Name server khác

- Cung cấp giao diện (interface) cho Name agent

3.6.1.2 Các hoạt động của Name Service Các hoạt động thay đổi danh mục:

- ADD: thêm- DELETE: xoá- MODIFY: thay đổi các thông tin.

Yêu cầu:

- READ: phân tích tên thành 1 đối tượng- SEARCH: tìm một tên hoặc một đối tượng dựa trên một số thuộc tính- LIST: liệt kê tất cả các tên

Quản lý:

- Phân quyền cho việc cập nhật- Xác nhận (authentication)- Mở rộng Name space

3.6.2. Name server

Hình 3.9. Kiến trúc Name server

3.6.2.1 Kiến trúc Name server

Name Resolution: ánh xạ giữa tên và đối tượng

Caching: lưu trữ các thông tin giúp cho việc truy xuất hiệu quả hơn

72

Page 73: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Replicated data management: quản lý bản sao

Communication: truyền thông giữa các agent và name server, hoặc giữa các name

server với nhau

Database: quản lý các thông tin cục bộ

3.6.3 Phân giải cấu trúc tên: Kỹ thuật phân giải phụ thuộc vào loại tên

3.6.3.1 Location-Dependent Name

Location-Dependent Name là tên phụ thuộc vào vị trí của đối tượng mà nó định

danh.

Cấu trúc:

- Mỗi Node chỉ có một Name server, Name server chỉ quản lý tên của các đối

tượng cục bộ

- Cấu trúc tên: NodeID.ObjectID

Phân giải tên: Khi phân giải tên có dạng NodeID.ObjectID :

- Name agent gửi một yêu cầu đến NodeID

- Name server của NodeID sẽ ánh xạ ObjectID đến đối tượng cục bộ

Tính chất:

- Các Node có tính tự trị cao

- Tên có thể được nhanh chóng và đơn giản

- Tuy nhiên, các đối tượng không thể di chuyển (migrate)

Hình 3.10 Location-Dependent Name

73

Page 74: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

3.6.3.2 Authority-Dependent Name

Authority-Dependent Name là tên phụ thuộc vị trí Name server chịu trách nhiệm

phân giải tên.

Cấu trúc:- Mỗi Node có một Name server, name server quản lý tên của tất cả các đối

tượng được tạo cục bộ

- Các đối tượng có thể di chuyển, Name server phải nhận biết được vị trí của các

đối tượng di chuyển

- Cấu trúc tên: NodeID.ObjectID

Phân giải tên: Khi phân giải tên có dạng NodeID.ObjectID:

- Name agent gửi một yêu cầu đến NodeID

- Name server của NodeID sẽ ánh xạ ObjectID đến đối tượng cục bộ

Tính chất:

- Tên có thể tạo và tìm kiếm một cách đơn giản

- Các đối tượng có thể di chuyển

- Tuy nhiên, phải có sự quản lý việc di chuyển của các đối tượng dựa vào các

overhead và tên chỉ phụ thuộc vào Name server quản lý nó

Hình 3.11. Authority-Dependent Names

74

Page 75: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

3.6.3.3 Location-independent Name

Location-independent Name là tên không phụ thuộc vào vị trí.

Cấu trúc:

- Các tên được tổ chức thành các Name space, và các Name space có cấu trúc

bậc

- Việc phân chia cấp bậc phụ thuộc vào cấu trúc tổ chức (organizational

structure), giao thức hệ thống (system topology), sự phân tán về địa lý

(geographical distribution) …

Quan hệ giữa tên với một đối tượng:

Định danh một tên duy nhất trong một ngữ cảnh (context) của đối tượng cha của nó

(parent object)

Ví dụ: uka/ira/schmitt , (parent = de)

Hình 3.12. Location-independent Name Sự phân chia của Name space:

Name space bị cắt thành các miền (zone) và mỗi miền có ít nhất là một Name server.

Bản sao (replication) có thể được thực hiện (achieved) bằng nhiều Name server trên mỗi

miền

75

Page 76: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 3.13. Name Space trong Location-independent Name Phân giải tên:

- Agent gọi đến Name Server N

- Nếu N nhận biết được tên đó thì sẽ thực hiện phân giải cục bộ

- Nếu N không nhận biết được tên thì sự phân giải sẽ bắt đầu với một root server

và việc phân giải sẽ tiếp tục với các server cấp thấp hơn cho đến khi việc phân giải

hoàn thành.

Tính chất:

- Các đối tượng có thể di chuyển, điều khiển một đối tượng có thể thay đối

- Có thể có nhiều bản sao

- Tuy nhiên việc phân giải tên có thể rất tốn kém cho việc truyền thông (có thể cải

tiến bằng cách sử dụng caching lưu trữ) và việc phát sinh tên có thể đòi hỏi sự

thông báo.

76

Page 77: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

3.6.4 Phân giải tên kiểu lặp và phân giải tên kiểu đệ quy

3.6.4.1 Phân giải theo kiểu lặp (Iterative Name Resolution)

Hình 3.14. Phân giai tên kiểu lặp

3.6.4.2 Phân giải tên kiểu đệ quy (Recursive Name Resolution)

Client gửi tên đến cho Name server, nếu Name server nhận biết được thì kết quả sẽ

được lưu vào caching, Name server sẽ tiếp tục gọi đệ quy cho đến khi phân giải xong tên.

Khi đã phân giải xong tên thì đọc kết quả từ caching và trả về cho bộ phân giải tên của

Client.

Hình 3.15. Phân giai tên kiểu đê quy Caching trong phân giải tên kiểu đệ quy:

Server cho node

Phân giải Tìm kiếm Chuyển node con

Nhận và lưu trữ

Trả về yêu cầu

Cs <ftp> #<ftp> - - #<ftp>

Vu <cs,ftp> #<cs> <ftp> #<ftp> #<cs>#<cs,ftp>

nl <vu,cs,ftp> #<vu> <cs,ftp> #<cs> #<vu>

77

Page 78: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

#<cs,ftp> #<vu,cs>#<vu,cs,ftp>

root <nl,vu,cs,ftp> #<nl> <nl,cs,ftp> #<vu>#<vu,cs>#<vu,cs,ftp>

#<nl>#<nl,vu>#<nl,vu,cs>#<nl,vu,cs,ftp>

Phân giải tên đệ quy mang đến các thuận lợi:

- Caching hiệu quả hơn

- Giảm giá thành truyền thông

3.7.ĐỊNH DANH TRONG HỆ THỐNG UNIX, TRONG MẠNG INTERNET VÀ

TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN

3.7.1 Định danh trong hệ thống Unix

Trong môi trường mạng ARPANET, hệ thống quản lý tập tin của hệ điều hành Unix

có thể định danh các tập tin thuộc các trạm từ xa.

Mỗi tập tin được định danh trên trạm riêng của nó bởi một bộ định danh phân cấp như

f1/x2. Để nhận dạng các tập tin từ xa thì thêm vào thành phần bao gồm:

Bộ định danh trạm nơi chưa tập tin

Bộ định danh cục bộ của trạm truy cập

Ví dụ: Trên trạm A ta có hote-b/f1/x2 trong đó hote-b chỉ trạm B trên trạm A.

3.7.2 Định danh trong mạng Internet

Trong các hệ thống phân tán thì mỗi máy có một điạ chỉ mạng duy nhất, gọi là địa chỉ

IP. Địa chỉ này được sử dụng đại diện cho máy chủ trong quá trình trao đổi thông tin với

các máy khác cũng như khi máy chủ muốn truy cập tài nguyên dùng chung.

Tuy nhiên, việc sử dụng địa chỉ bằng các con số như vậy rất khó nhớ và dễ nhầm lẫn,

vì vậy người ta xây dựng một hệ thống đặt tên cho các phần tử của mạng Internet, cho

phép người sử dụng chỉ nhớ đến tên chứ không cần nhớ các địa chỉ IP.

Tuy nhiên có các yêu cầu đặt ra là :

Tên được đặt phải là duy nhất, tức là không có 2 máy tính trên mạng có cùng một tên.

Có cách thức để chuyển đối giữa tên và điạ chỉ

78

Page 79: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Đối với một liên mạng tầm cỡ toàn cầu như Internet đòi hỏi phải có một hệ thống đặt

tên trực tuyến và phân tán thích hợp, hệ thống này gọi là DNS (domain system name)

Ví dụ: 128.141.201.45 có tên là www.dtu.edu.vn

Các định danh được tập hợp trong một table và bản sao của nó được đặt tại các trạm

để có thể truy cập nhanh.

3.7.3 Giao thức TCP/IP và cách đánh địa chỉ IP trên Internet

3.7.3.1 Giao thức TCP/IP

TCP/IP (Transmission Control Protocol/Internet Protocol) thực chất là một họ giao

thức cùng làm việc với nhau để cung cấp phương tiện truyền thông trên mạng.

TCP/IP sử dụng sơ đồ địa chỉ hoá toàn cầu, tức là mỗi máy tính trên mạng TCP/IP có

một địa chỉ xác định duy nhất. Mỗi packet dữ liệu được gởi trên mạng TCP/IP có một

header gồm địa chỉ của máy đích cũng như địa chỉ của máy nguồn.

Các tầng của mô hình TCP/IP bao gồm: tầng Application, tầng Transport, tầng

Internet, tầng Physical. Trong đó chức năng của tầng Internet là điều khiển các packet đi

từ máy này đến máy khác theo những đường đi thích hợp. Tầng Internet sau khi nhận

packet từ tầng transport sẽ đóng gói packet lại, thêm Header xử lý việc đưa datagram ra

mạng, theo những đường đi thích hợp để đến máy nhận bằng giải thuật tìm đường. Tầng

Internet cũng kiểm soát các datagram đến, kiểm tra xem có phải datagram được gởi đến

máy đó hay không, nếu đúng, tầng Internet sẽ loại bỏ Header của datagram và đưa lên

cho tầng Transport xử lý, nếu không, máy sẽ không nhận hoặc sẽ gởi datagram đi tiếp

theo đường đi thích hợp để đến đích.

3.7.3.2 Cách đánh địa chỉ trên Internet

Mỗi thiết bị kết nối vào Internet đều có một định danh 32 bit duy nhất, đó chính là địa

chỉ IP của nó.

Địa chỉ IP chia thành 4 vùng (mỗi vùng 1 byte) cách nhau bằng dấu chấm. Mục đích

địa chỉ IP là để định danh duy nhất cho một host bất kỳ trên mạng.

Người ta chia địa chỉ IP ra thành 5 lớp và ký hiệu A, B, C, D, E. Các bit đầu tiên của

byte đầu tiên được dùng để định danh lớp địa chỉ (0- lớp A, 10 - lớp B, 110 - lớp C, 1110

- lớp D, 11110 - lớp E)

79

Page 80: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Octete đầu tiênGiá trị nhị phân

Octete đầu tiên giá trị

thập phân

Số lượng các mạng

Số lượng host trên mạng

Sử dụng

A 00000001-01111111 1-126 126 16 triệu Dùng cho các mạng có số trạm lớn

B 10000000-10111111 128-191 16,382 65534 Dùng cho các mạng có số trạm trung bình

C 11000000-11011111 192-223 2 triệu 254 Dùng cho mạng có ít trạm

D 11100000-11101111 224-239 Quảng bá

Quảng bá

Gửi IP datagram tới một nhóm các host trên một mạng

E 11110000-11110111 240-247 Đang thử nghiệm

Đang thử nghiệm

Dự phòng

Ví dụ :

3.7.4 DNS (Domain name system)

DNS (Domain Name System) là một hệ cơ sở dữ liệu phân tán dùng để ánh xạ giữa

các tên miền và các địa chỉ IP. DNS đưa ra một phương pháp đặc biệt để duy trì và liên

kết các ánh xạ này trong một thể thống nhất. Trong phạm vi lớn hơn, các máy tính kết nối

với internet sử dụng DNS để tạo địa chỉ liên kết dạng URL (Universal Resource

Locators). Theo phương pháp này, mỗi máy tính sẽ không cần sử dụng địa chỉ IP cho kết

nối.

Các tên DNS tạo ra theo định dạng sau .., ví dụ infosec.vasc.com.vn. Trong khi danh

sách các kiểu tên DNS được thiết kết lại bởi ICANN (Công ty quản lý dịch vụ tên miền),

một số các kiểu thông thường bao gồm: .edu (dạng các website giáo dục) , .mil (các

website cho quân đội), .org (thuộc dạng các tổ chức phi thương mại) .com (các tổ chức

kinh tế),... Và cũng có các kiểu tên miền chỉ định theo tên nước,

80

10000000

00000011

00000010

00000011

00001010

00001010

00001010

00001010

=10.10.10.10 (Lớp A)

=128.3.2.3 (Lớp B)

11000000

00000000

00000001

11111111

=192.0.1.255

Page 81: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

ví dụ .ie (Ireland), .jp (Japan),.de(Germany)

Khi một máy tính (một DNS client) muốn tìm kiểm một URL, nó đưa yêu cầu

(GetHostByName) tới DNS server của nó. DNS client sử dụng một DNS resolver để định

vị DNS server. Nếu DNS server không xác định được tên miền cần tìm, hay DNS server

không có chút thông tin gì về URL đó trong vùng nhớ đệm của nó, nó sẽ không thể trả lời

yêu cầu của client ngay lập tức. Thay vào đó, DNS server sẽ hoặc sử dụng một DNS

forwarder hoặc tạo lại một yêu cầu theo quy tắc đệ quy.

Hình 3.17. Thông tin trong DNS3.7.4.1 Dịch vụ tên miền quy ước cho toàn hệ thống

Domain name Ý nghĩa

COM sử dụng cho thương mại

EDU sử dụng cho giáo dục

GOV sử dụng cho chính phủ

ORG sử dụng cho các tổ chức

NET sử dụng cho mạng máy tính

MIL sử dụng cho lĩnh vực quân sự

INT sử dụng cho quốc tế

3.7.4.2 DNS Name Space

Name space được chia thành các domain và chúng tổ chức thành dạng cây (tree). Mỗi

domain nhận một tên duy nhất.

81

Page 82: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 3.18. Một DNS Name Server

3.7.4.3 Định danh trong cơ sở dữ liệu phân tán

Mỗi mục tin trong cơ sở dữ liệu cần có tên duy nhất. Người ta dễ dàng đảm bảo thuộc

tính này trong hệ thống tập trung. Trong cơ sở dữ liệu phân tán, các trạm cần đảm bảo

không dùng một tên cho hai mục tin khác nhau.

Một giải pháp cho vấn đề này là yêu cầu tất cả các tên được đăng ký trong máy chủ

trung tâm. Cách này có vài nhược điểm:

- Máy chủ sẽ quá tải nếu tất cả các tên đều đăng ký trên đó.

- Nếu máy chủ hỏng, không thể tiếp tục công việc trên bất kỳ trạm nào.

- Điều khiển tên tại một trạm có máy chủ thực chất là tập trung. Điều này sẽ làm

giảm tính tự trị của từng trạm.

Giải pháp khác nhằm tăng tính tự trị của trạm là yêu cầu mỗi trạm đặt tên với vài ký

hiệu đầu theo qui định, thí dụ tên trạm. Khi đó không có hai trạm nào dùng trùng tên cả.

Do vậy chẳng còn cần phải dùng tập trung để quản lý tên.

Giải pháp trên giải quyết được tính tự trị nhưng lại vi phạm tính thông suốt, vì tên

trạm được gần với các tên.

Thí dụ: Quan hệ gửi tiền được tham chiếu như chi nhanh Hà nội, gửi tiền, chứ không

đơn giản là gửi tiền.

Mỗi bản sao và mỗi phần nhỏ của dữ liệu cần có tên duy nhất. Có thể dùng phần mở

rộng .RI để chỉ các bản sao thứ i và dùng .fI để chỉ phần con thứ i.

Thí dụ: Trạm4.gửi tiền.f3.R2 chỉ ban sao thứ hai của phần con thứ ba của quan hê

gửi tiền, tạo ra tại trạm4.

82

Page 83: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

BÀI TẬP CHƯƠNG III

1. Naming là gì?

a. Tên tham chiếu của các đối tượng

b. Tên của các hoạt động ràng buộc của đối tượng.

c. Tên của các đối tượng hoạt động trên mạng

d. Tất cả đều đúng

2. Các đối tượng nào sau đây là naming

a. Tên file, tên thiết bị

b. Các biến của chương trình

c. Tên các dịch vụ mạng

d. Tất cả đều đúng

3. Tìm hiểu một số dịch vụ đặt tên nôi tiếng

83

Page 84: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

CHƯƠNG IV

ĐỐI TƯỢNG PHÂN TÁN VÀ THỦ TỤC TRIỆU GỌI TỪ XA

MỤC TIÊU

Giúp sinh viên rắm rõ các vấn đề :

- Đối tượng phân tán

- Sự giao tiếp giữa các đối tượng phân tán

- Giao tiếp đối tượng trong hệ thống phân tán

4.1.ĐỐI TƯỢNG PHÂN TÁN

4.1.1.Giới thiệu

Ứng dụng phân tán : là tập các đối tượng phân tán được nằm tên các trang Web và

giao tiếp thông qua sự triệu gọi (invocations) từ xa.

Mô hình đối tượng phân tán: Là ứng dụng phân tán được phát triển dựa trên kiến

trúc với sự hỗ trợ bởi một số các cơ sở hạ tầng mạng và các công cụ.

Đối tượng phân tán : Trong mô hình phân tán, các đối tượng, đối tượng từ xa là các

đơn vị phân tán hay là một node trên mô hình phân tán.

4.1.2.Lợi ích của mô hình phân tán đối tượng

- Phát triển các ứng dụng có tính trừu tượng, tính mềm dẽo cao

- Cho phép đóng gói các việc thực hiện đối tượng, được đặt trên bất kỳ trang web nào,

thực hiện :truy cập vào địa phương, quản lý sự kiện, bảo mật v.v…

- Các ứng dụng có thể được tái sử dụng của chúng qua đóng gói đối tượng bằng các

mẫuWRAPPER

Có thể cải tiến dễ dàng các quy mô qua sức mạnh tiến trình phân ra bên ngoài hệ

thống mạng Server

4.1.3. Các mô hình đối tượng phân tán

Các mô hình đối tượng phân tán được đề xuất :

Mô hình đối tượng phân mảnh (fragmented objects )

- Các đối tượng có thể được phân chia trong một vài phần, nằm trên nodes khác nhau,

và t ương tác để cung cấp các chức năng của đối tượng.

84

Page 85: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Ví dụ : Các đối tượng ràng buộc trên mạng toàn cầu ( Internet)

Mô hình đối tượng tái tạo (replicated objects )

- Có nhiều bản sao, hoặc tái tạo hoặc các đối tượng cùng đồng thời tồn tại.

+Tăng tính khả dụng và cải thiện hiệu suất của hệ thống.

Tuy nhiên, sự tái tạo của một đối tượng phải được giữ ổn định, thêm chi phí.

Mô hình đối tượng di trú ( hoặc di động - migratory /mobile )

Trong đó có một đối tượng có thể chuyển từ một node đến một số khác. Đối tượng di

động được sử dụng để cải thiện hiệu suất thông qua các cân bằng tải, và để tự động điều

chỉnh cácứng dụng để thay đổi môi trường.

Những mô hình trên có thể được kết hợp, ví dụ đối tượng phân mảnh cũng có thể

được tái tạo v.v…

4.1.4. Lợi ích của mô hình phân tán đối tượng

Lợi ích của các mô hình phân tán ngày càng tỏ ra hiệu quả do các ứng dụng của nó

đem lại, cụ thể :

- Phát triển các ứng dụng có tính trừu tượng, tính mềm dẽo cao.

- Cho phép đóng gói các việc thực hiện đối tượng, được đặt trên bất kỳ trang Web nào,

thực hiện : truy cập vào địa phương, quản lý sự kiện, bảo mật v.v…

- Các ứng dụng có thể được tái sử dụng qua đóng gói đối tượng bằng các theo mẫu

- Có thể cải tiến dễ dàng các quy mô qua sức mạnh tiến trình phân ra bên ngoài hệ

thống mạng Server.

4.1.5.Mô hình đối tượng phân tán

Một ứng dụng phân tán sử dụng các đối tượng từ xa để thực hiện một tập các tiến

trình xác định trên các mode của một mạng.

Các phương thức đối tượng thực hiện thông qua tiến trình hoặc các thread và có thể

gồm các lời gọi đến các phương thức đối tượng khác.

85

Page 86: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Xét mô hình phân tán đối tượng phân tán (Hình 4.1)

Hình 4.1 .Mô hình gọi đối tượng trong hệ thống

Gồm 3 bước

- Việc gọi đối tượng trong cùng một quá trình (ví dụ: A và B): đây là một local

invocation.

- Việc gọi thực hiện theo các quy trình khác nhau trên cùng một trang Web (D và E):

đây là một out-of-process invocation . - Việc gọi và đối tượng trên các nodes khác nhau

(ví dụ C và D): đây là một invocation từ xa.

- Ưng dụng chí có các Local Invocations được thực thi không phải là hệ thống đối

tượng phân tán.

Các định dạng không cục bộ của invocation dựa vào một đối tượng môi giới yêu cầu

(ORB), hoặc một Middleware hỗ trợ để các đối tượng được phân tán giao tiếp với nhau.

(Ví dụ CORBA)

Thuật ngữ này đã được giới thiệu cho các kiến trúc CORBA, nhưng nó được áp dụng

cho đối tượng cũng như các hệ thống khác.

Một ORB có các chức năng sau :

- Xác định và tìm đối tượng.

- Kết buộc các Server để phục vụ các đối tượng.

- Thực hiện các phương thức triệu gọi trên đối tượng.

- Quản lý các đối tượng “chu kỳ cuộc sống” (tạo, kích hoạt, xóa bỏ các đối tượng)

86

Page 87: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Remote Object Call: a First Outline

Một ứng dụng sử dụng các đối tượng từ xa được tổ chức theo mô hình Client- Server:

- Client gửi một yêu cầu cho đến Server để thực hiện các phương thức của những

đối tượng..

- Server cung cấp các dịch vụ của mình nhờ một tập hợp các cuộc gọi thủ tục từ xa

(RPC - Remote Procedure Call ) thông qua các phương pháp triệu gọi ( invocation

method) trên một đối tượng từ xa : Stub-Skeleton (Hình 4.2). Ngược với RPC, các

Stub và Skeleton được tổ chức ngay trên các đối tượng

Hình 4. 2. Thực hiện các cuộc goi không cục bộ(Performing non-local calls)

4.2.RPC

4.2.1. Midleware

Middleware trong hệ thống phân tán là một loại phần mềm hệ thống phân tán kết

nối các loại ứng dụng khác nhau và cung cấp phân tán minh bạch cho các ứng dụng của

nó kết nối.

Nó được sử dụng để nối thành phần không đồng nhất xuất hiện trong các hệ thống

Dựa trên các tiêu chuẩn quan trọng hoặc các sản phẩm trên thị trường, middleware

có thể được chia thành nhiều loại: Socket, RPC, RMI, DCE, DCOM, CORBA v.v...

87

Page 88: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Midleware và mô hình OSI

Hình 4. 3. Quan hệ giữa Midleware và mô hình OSI

4.2.2.Các vấn đề đối với Socket

Socket là một phương pháp để thiết lập kết nối truyền thông giữa một chương trình

yêu cầu dịch vụ ( client) và một chương trình cung cấp dịch vụ (server) trên mạng LAN,

WAN hay Internet  và đôi lúc là giữa những quá trình ngay bên trong máy tính.  Mỗi

socket có thể được xem như một điểm cuối trong một kết nối.  Một socket trên máy yêu

cầu dịch vụ có địa chỉ mạng được cấp sẵn để “gọi” một socket trên máy cung cấp dịch

vụ.  Một khi socket đã được thiết lập phù hợp, hai máy tính có thể trao đổi dịch vụ và dữ

liệu.

Socket thường được sử dụng là như là giao tiếp trên tầng 3 của mô hình OSI

88

Page 89: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 4.4.Socket ở mô hình OSI và bộ giao thức TCP/IP

Các hoạt động trên Socket thường là

- Kết nối

- Đọc/ghi dữ liệu

- Đóng kết nối

Hoạt động dựa trên giao thức TCP / IP, chúng thường được sử dụng như giao tiếp

(interface) cho các giao thức của nó, ví dụ, TCP, UDP, IP, và ICMP

Tùy thuộc vào các giao thức mà họ đang interfacing, Socket phân thành ba loại:

- datagram

- stream

- raw sockets

Nhưng các hoạt động này là bắt buộc đối với cơ chế lập trình qua Sockets. Điều này

sẽ không thuận lợi khi cần kết nối nhiều máy tính với nhau để trao đổi dữ liệu. Hiện nay,

cơ chế procedure call thường được sử dụng. Cơ chế này về cơ bản thì trong hệ phân tán

được thực hiện như trong hệ tập trung.

89

Page 90: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

4.2.3. RPC

Khái niệm  Remote Procedure Call (RPC) lần đầu tiên được Birrell & Nelson nêu

ra vào năm 1984. Đây là cơ chế cho phép gọi thủ tục trên máy khác (Mechanism to call

procedures on other machines) : Remote Procedure Call.

Mục đích của cơ chế này xem phần mềm hệ thống phân tán như là một tập hợp của

các thành phần phần mềm chạy trên các máy tính khác nhau, nhưng kết nối bởi một mạng

lưới chung. Như vậy, cơ chế này là làm xuất hiện các lời gọi trong ngôn ngữ lập trình

một cách thường xuyên.

Mỗi thành phần phần mềm là một máy chủ cung cấp dịch vụ của mình thông qua một

tập hợp các cuộc gọi thủ tục, tương tự như các cuộc gọi thủ tục trong một phần mềm

thông thường.

Không giống như một cuộc gọi thủ tục truyền thống, diễn ra trong cùng một không

gian địa chỉ, một cuộc gọi thủ tục trong RPC kéo dài hai không gian địa chỉ khác nhau (ví

dụ như khách hàng và máy chủ) và được trung gian bởi một mạng lưới chung.

Vậy, làm thế nào để thủ tục các cuộc gọi thường xuyên làm việc trong ngôn ngữ lập

trình?

Quy tắc lới gọi thủ tục(Regular procedure calls)

Để hoạt động thì cơ chế này cần có:

- Tham số truyền (Parameter passing)

- Biến địa phương (Local variables)

- Dữ liệu quả về (Return data)

Chẳng hạn, khi chúng ta viết:

x = f(a, “test”, 5);

Trình biên dịch phân tích và tạo ra mã để:

a. Đẩy giá trị 5 vào stack

b. Đẩy địa chỉ của chuỗi "test" vào stack

c. Đẩy giá trị hiện tại của một vào stack

d. Phát sinh ra một cuộc gọi đến hàm f

Biên soạn f, trình biên dịch tạo ra các mã:

a. Đẩy đăng ký sẽ được clobbered trên stack để lưu các giá trị

90

Page 91: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

b. Điều chỉnh các stack để nhường chỗ cho các biến địa phương và tạm thời

c. Trước khi trở lại, điều chỉnh stack, đặt các dữ liệu trở lại trong đăng ký một, và

ban hành một lệnh trả về

Implementing RPC

- Không hỗ trợ kiến trúc cho các cuộc gọi thủ tục từ xa

- Mô phỏng nó với các công cụ mà chúng ta có (cuộc gọi thủ tục địa phương). Việc

mô phỏng làm cho RPC một language-level construct thay vì operating system

construct

Mục đích :

- Tạo ra các hàm stub để làm nó xuất hiện đến các user mà được gọi từ cục bộ

- Các hàm Stud chứa giao tiếp của chức năng

Các chức năng của Stub

1. Client calls stub (params on stack)

2. Stub marshals params to net message

3. Network message sent to server

4. Receive message: send to stub

5. Unmarshal parameters, call server func

6. Return from server function

7. Marshal return value and send message

8. Transfer message over network

9. Receive message: direct to stub

10. Unmarshal return, return to client code

Lợi ích RPC

- Hỗ trợ thủ gọi giao tiếp

- Viết các ứng dụng được đơn giản hóa

+ RPC ẩn tất cả các mã mạng vào chức năng stub

Lập trình ứng dụng sẽ không phải lo lắng về chi tiết như là :

+ Socket, cổng, thứ tự bytes

+ RPC hoạt động ở lớp thể hiện trong mô hình OSI

91

Page 92: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Ngữ nghĩa cho RPC

- Hầu hết các hệ thống RPC sẽ cung cấp một trong hai:

- Cung cấp ít nhất mỗi ngữ nghĩa

+ hoặc tối đa một lần ngữ nghĩa

- Sự hiểu biết đối với các ứng dụng:

+ Chức năng idempotent: có thể được chạy bất kỳ số lần mà không gây hại

+ Chức năng non-idempotent: Có thể ảnh hưởng đến ứng dụng

Một vấn đề khác :

- Hiệu năng của RPC

+RPC là khá chậm

- Bảo mật

+Ẩn thông điệp khi ra ngoài mạng

+Xác thực ở Client

+ Xác thực ở Server

Ngôn ngữ lập trình cho RPC

- Hầu hết các ngôn ngữ lập trình (C, C + +, Java, ...) không có khái niệm về các

cuộc gọi thủ tục từ xa

- Ngôn ngữ trình biên dịch sẽ không tạo ra Stubs client và server

Giải pháp:

Procedure Call

Cuộc gọi thủ tục của một máy chủ có thể được thực hiện cho khách hàng theo hai cách.

Cách 1:

Mở rộng một ngôn ngữ lập trình hiện có với tất cả các ký hiệu cần thiết để mô tả các thủ

tục.

- Ưu điểm: tính năng ngôn ngữ lập trình cụ thể có thể được sử dụng.

- Nhược điểm: Các mã được quá gắn chặt với một ngôn ngữ lập trình cụ thể, làm cho mã

không cầm tay. Một ví dụ về RPC thực hiện của phương pháp này là Cedar RPC.

92

Page 93: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Cách 2:

Sử dụng một ngôn ngữ lập trình chuyên dụng được gọi là ngôn ngữ định nghĩa giao diện

(IDL). Một mô tả của các cuộc gọi thủ tục được viết bằng ngôn ngữ này, mà sẽ được sử

dụng để phát triển sơ khai và bộ xương.

Còn sơ khai là một thủ tục phía máy khách để thống chế các thông số của các cuộc gọi

thủ tục và các thông số unmarshal trả lời của họ.

- Xương là một thủ tục phía máy chủ mà unmarshalls thông số của các cuộc gọi thủ tục

và Marshalls thông số trả lời của họ.

- Lợi thế của việc có IDL là nó là độc lập của bất kỳ ngôn ngữ lập trình cụ thể. Hạn chế

duy nhất là tính năng ngôn ngữ không có chương trình cụ thể có thể được sử dụng. Một

ví dụ của loại hình này thực hiện RPC là ONC phổ biến (Open Network Computing)

RPC, được phát triển bởi Sun Microsystems.

- Sử dụng một trình biên dịch riêng biệt để phát sinh ra stubs (pre-compiler)

Ngôn ngữ định nghĩa giao tiếp (Interface Definition Language – IDL)

- Cho phép lập trình để xác định thủ tục giao diện điều khiển từ xa

(names, parameters, return values)

- Trình biên dịch hỗ trợ có thể sử dụng để tạo các Stubs của client và server :

+Mã Marshaling

+Mã Unmarshaling

+Network transport routines

+Phù hợp với giao diện được định nghĩa

- Tương tự như các hàm nguyên mẫu(function prototypes)

93

Page 94: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Quá trình biên dịch RPC

Hình 4.3. Quá trình biên dịch RPC

Viết chương trình

Mã Client được sửa đổi

- Khởi tạo RPC liên quan đến các tùy chọn sau đây :

+Transport type

+Locate server/service

+Handle failure of remote procedure call

Các hàm Server

+Generally need little or no modification

RPC API

Những loại dịch vụ nào cần một hệ thống RPC?

- Hoạt động đặt tên dịch vụ (Name service)

+Export/lookup binding thông tin (như ports, machines)

+Hỗ trợ port động

- Hoạt động ràng buộc (Binding)

94

IDL

RPC compil

err

compiler

RPC compil

err

compiler

client code (main)

client stud

Data conv,

header

Data conv,

Server skeleton

Server function

compiler

compiler

compiler

compiler

compiler

compiler

compiler

compiler

Client

Server

Code do người lập trinh

Code do RPC phát sinh

Page 95: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

+Thiết lập thông tin liên lạc khách hàng / máy chủ bằng cách sử dụng giao thức

thích hợp (thành lập thiết bị đầu cuối)

- Hoạt động đầu cuối (Endpoint)

+Lắng nghe các yêu cầu, xuất thiết bị đầu cuối cho tên máy chủ

- Hoạt động bảo mật

+Xác thực (Authenticate) client/server

- Quốc tế hóa(Internationalization)

- Trao đổi (Marshaling/data conversion)

- Quản lý bộ nhớ

+Đối phó với dữ liệu “reference”, bộ đệm tạm thời (temporary buffers)

- Program ID

+Cho phép các ứng dụng để truy cập vào ID của giao diện RPC

4.3. TỔNG QUAN VÊ HỆ THỐNG RPC

4.3.1.Sun RPC

- Được SUN thiết kế dành cho các hệ điều hànhUnix, Linux, BSD, OS X

+ Sản phẩm được biết đến rộng rãi trên thị trường ONC RPC (Open Network

Computing)

- Giao diện được định nghĩa trong ngôn ngữ định nghĩa giao tiếp (Interface Definition

Language -IDL)

+ IDL được biên dịch bởi rpcgen

RPC IDL

name.x

program GETNAME {

version GET_VERS {

long GET_ID(string<50>) = 1;

string GET_ADDR(long) = 2;

} = 1; /* version */

} = 0x31223456;

95

Page 96: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

rpcgen

rpcgen name.x

produces:

name.h header

name_svc.c server stub (skeleton)

name_clnt.c client stub

[ name_xdr.c ] XDR conversion routines

Hàm đặt tên (Function names) bắt nguồn từ IDL function names và version

numbers

- Client nhận pointer to result

Cho phép nó xác định lỗi RPC (trả về giá trị null)

Hoạt động nào sẽ xảy ra trên hệ thống này ?

• Trên server

Server stub tạo ra một socket và binds bất kỳ biến cổng cục bộ đến nó.

Gọi hàm trong thư viện RPC:

+ svc_register để đăng ký chương trình program#, port #

+ Liên hệ portmapper (rpcbind ở SVR4) thực hiện :

– Name server

– Keeps track of

{program#,version#,protocol}port# bindings

Sau đó Server lắng nghe và chờ đợi một kết chấp thuận

• Client

Client gọi clnt_create với:

+Name of server

+Program #

+Version #

+Protocol#

clnt_create liên hệ đến cổng ánh xạ (port mapper) trên Server để nhận port mà nó

định nghĩa.

early binding – thực hiện 1 lần, duy trì trong mỗi cuộc gọi.

96

Page 97: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

4.3.2.DCE RPC

- DCE: Tập các thành phần được thiết kế bởi The Open Group (sáp nhập OSF và X /

Open) để cung cấp hỗ trợ cho các ứng dụng phân tán

- Phân phối tán vụ hệ thống tập tin, dịch vụ, thời gian, dịch vụ thư mục, ...

- Là sự cải tiến từ Sun RPC

- Hoạt động tương tự như Sun’s RPC

- Giao diện viết bằng một ngôn ngữ được gọi là Interface Definition Notation (IDN)

+ Định nghĩa giống như chức năng nguyên mẫu

- Thư viện Run-time

+ Chạy 1 lần cho TCP/IP và 1 lần cho UDP/IP

- Hỗ trợ xác thực RPC với các dịch vụ bảo mật DCE

- Tích hợp với dịch vụ thư mục DCE để xác định các máy chủ

Unique Ids

- Sun RPC yêu cầu một người lập trình để lựa chọn số 32-bit

- DCE: Thiết lập yêu cầu duy nhất ID với uuidgen

+Tạo ra mẫu thử nghiệm IDN tập tin với 128-bit Universal Unique ID (UUID)

+10-byte dấu thời gian multiplexed với số phiên bản

6-byte node định danh (địa chỉ ethernet trên hệ thống ethernet)

IDN compiler

- Biên dịch tương tự rpcgen:

- Tạo ra tiêu đề (header), client và Server stubs

Service lookup

- Sun RPC đòi hỏi Client phải biết tên của máy chủ

- DCE cho phép một số máy được tổ chức thành một thực thể hành chính (administrative

entity) cell (collection of machines, files, users)

Cell directory server

Mỗi máy giao tiếp với nó với dịch vụ thông tin di động (cell services information)

97

Page 98: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

DCE service lookup

Hình 4. 3. Giao tiếp Client với Server qua cell dir server

- Yêu cầu dịch vụ tra cứu từ máy chủ thư mục tế bào (cell directory server)

- Trả về máy chủ tên máy

Hình 4. 4.Kết quả trả về trên máy chủ

Kết nối với thiết bị đầu cuối dịch vụ mapper và nhận được cổng ràng buộc từ máy chủ

này tên cục bộ

98

Page 99: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 4. 5. Thực hiện thủ tục gọi đối tượng từ xa trên Server

Kết nối với dịch vụ và yêu cầu thực hiện thủ tục từ xa

Marshaling

- Tiêu chuẩn định dạng cho dữ liệu

+NDR: Network Data Representation

- Mục tiêu:

+Tên người gửi có thể sử dụng định dạng gốc (native format)

+Người nhận có thể chuyển đổi

Sun và DCE RPC

+Nếu máy chủ không hoạt động

+Dịch vụ không thể được truy cập

+Quản trị viên chịu trách nhiệm để khởi động nó

+Nếu một dịch vụ mới được thêm

+Không có cơ chế cho một khách hàng để khai thác này dịch vụ này

+Ngôn ngữ hướng đối tượng theo định hướng đa hình mong đợi (Object oriented

languages expect polymorphism)

Dịch vụ có thể hành xử một cách khác nhau dựa trên các kiểu dữ liệu được truyền

cho nó.

99

Page 100: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

4.3.3.Thế hệ tiếp theo của RPCs

Hỗ trợ cho các ngôn ngữ lập trình hướng đối tượng

4.3.3.1.Microsoft DCOM

- Dựa trên kỹ thuật OLE/COM DCOM: Windows NT 4.0, 1996

0 Mở rộng Thành phần Mô hình Đối tượng (Component Object Model - COM) để cho

phép các đối tượng để giao tiếp giữa máy

Activation on server

- Service Control Manager Dịch vụ Control Manager (SCM, một phần của thư viện

COM) - Kết nối đến máy chủ SCM. Yêu cầu tạo ra các đối tượng trên máy chủ

- Surrogate process chạy trên các thành phần

+Load các thành phần và chạy chúng

- Có thể xử lý đồng thời nhiều Client.

Lợi ích của DCOM

- Truyền dữ liệu và chức năng invocation

- Object RPC (ORPC)

- Mở rộng của giao thức DCE RPC

- Tiêu chuẩn DCE RPC gói bổ sung thêm (packets plus):

+ Giao diện con trỏ định danh (Interface pointer identifier - IPID)

• Xác định giao diện và đối tượng mà cuộc gọi sẽ được xử lý

• Referrals: có thể truyền qua sự tham chiếu đối tượng từ xa

+Cung cấp phiên bản và thông tin mở rộng

Marshaling

- Cơ chế Marshaling : NDR (Network Data Representation) của DCE RPC

+ Một kiểu dữ liệu mới: đại diện cho một giao diện marshaled

MIDL

- MIDL files là biên dịch với biên dịch IDL compile

- DCE IDL + đối tượng định nghĩa (object definitions)

- Phát sinh code C++ cho đóng, mở gói

+Phía Client được gọi là proxy

+Phía Server được gọi là stub

100

Page 101: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Ca 2 đối tượng COM co thể được load qua thư viên COM nếu cần.

Sự cải tiến Microsoft DCOM

- Phù hợp với Microsoft COM

- Chung loại máy chủ động nạp các đối tượng

+Yêu cầu xếp dỡ các đối tượng (giao dịch với client đã chết)

+Đếm tham chiếu và pinging

- Hỗ trợ cho các đối tượng tham chiếu đến đới từ xa

- Nhưng DCOM là một giải pháp duy nhất của Microsoft

- Không hoạt động tốt trên Firewall

4.3.3.2.CORBA(Common Object Request Architecture)

- Phát triển từ năm 1989

- Định bởi OMG (Object Management Group)

- Mục đích :

Cho phép cac phần riêng biêt của phần mềm được viết bằng cac ngôn ngữ khac

nhau và chạy trên cac may tính khac nhau để làm viêc với nhau như một ứng dụng duy

nhất, hoặc thiết lập cac dịch vụ.

- CORBA là một công nghệ hỗ trợ truy cập các đối tượng từ xa được phát triển trong

nhiều ngôn ngữ trên một loạt các nền tảng.

- Cốt lõi của kiến trúc CORBA là ORB

+ cho phép các ứng dụng của Client tìm các đối tượng và gọi các phương thức trên

cục bộ của chúng hoặc xuyên trên mạng.

+ Nó xử lý qua các yêu cầu, phản ứng và các trường hợp ngoại lệ giữa một đối

tượng Client và đối tượng Server

+ Khi các ứng dụng của Client sử dụng một đối tượng, nó không cần phải biết vị

trí của đối tượng, ngôn ngữ lập trình hoặc loại nền tảng

101

Page 102: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 4.6. CORBA logical view

Hình 4.7. Kiến trúc CORBA

IDL (Interface Definition Language)

- Xem như ngôn ngữ lập trình trung gian dùng chuẩn hóa các ngôn ngữ : C, C + +, Java,

Ada, COBOL, Smalltalk, Objective C, LISP, Python.

- Kiểu dữ liệu :

+ Kiểu cơ bản : long, short, string, float, …

102

Page 103: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

+ Kiểu cấu trúc : struct, union, enum, sequence

+ Kiểu đối tượng tham chiếu

+ Các kiểu khác : Kiểu giá trị động

- Biên dịch đến ngôn ngữ đích

- Phát sinh stub functions

- Ví dụ IDL

Module StudentObject {

struct StudentInfo {

string name;

int id;

float gpa;

};

exception Unknown {};

interface Student {

StudentInfo getinfo(in string name)

raises(Unknown);

void putinfo(in StudentInfo data);

};

};

Chức năng ORB

- Tra cứu các đối tượng trên máy từ xa

- Marshal các tham số

- Đối phó với các vấn đề an ninh

- Xuất bản dữ liệu trên các đối tượng cho ORB khác để sử dụng

- Gọi phương thức trên các đối tượng từ xa

- Tự động khởi tạo các đối tượng không chạy

- Giao tiếp với các ORB khác v.v...

• Các đối tượng hoạt đông trên ORB

- Client :

103

Page 104: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

+ Thực hiện yêu cầu bằng một tham chiếu đối tượng cho các đối tượng và hoạt

động mong muốn

+ khởi tạo yêu cầu của Client

+ gọi stub cụ thể đến một đối tượng hoặc tạo yêu cầu động (DII interface )

- Server(đối tượng implementation)

+ Cung cấp các ngữ nghĩa của các đối tượng

+ Xác định dữ liệu với thể hiện, mãcho các phương thức

Khả năng cộng tác (Interoperability)

- Đối với Client : Phù hợp với các thiết bị cầm tay Xây dựng các hàm API

- Đối với Server : Cần xây dựng lại để chuyển từ sản phẩm CORBA của một nhà cung

cấp khác

- 1996 : CORBA 2,0 thêm khả năng tương tác như một mục tiêu trong các đặc điểm kỹ

thuật

+ Định nghĩa giao thức mạng được gọi là IIOP

Inter-ORB Protocol

+ IIOP làm việc qua bất kỳ triển khai TCP / IP

(đọc thêm http://panuganty.tripod.com/articles/iiop.htm )

• IIOP (Internet Inter-ORB Protocol)

- IIOP là một giao thức cấp cao mà dùng để hỗ trợ các dịch vụ liên kết với các mức khác

nhau trên tầng giao giao vận, bao gồm: chuyển đỗi dữ liệu, quản lý bộ nhớ đệm, quản lý

dead clock, quản lý truyền thông.

- IIOP là một giao thức dựa trên đối tượng nhằm tăng cường các loại ứng dụng, dịch vụ

hoặc cơ sở dữ liệu được xây dựng và giao tiếp trên Web

- IIOP cung cấp một hệ thống toàn diện thông qua đối tượng có thể yêu cầu các dịch vụ

khác trên mạng công ty, internet hoặc mạng nội bộ.

- IIOP được thực hiện để trở thành tiêu chuẩn giao thức truyền thông trên Internet, thay

thế, hoặc cùng tồn tại với HTTP / CGI.

- IIOP cung cấp một số lợi thế như trung lập kiến trúc tốt hơn, minh bạch thông tin liên

lạc, khả năng mở rộng và sử dụng lại mã.

104

Page 105: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

4.3.3.3.Java RMI

RMI là một công nghệ của các hệ thống phân tán nó cho phép một máy ảo Java

(JVM) gọi những phương thức của đối tượng nằm trên máy ảo Java khác ở trong cùng

một mạng.

RMI là gì ?

RMI là một công nghệ Java cho phép một JVM giao tiếp với một JVM khác và thi

hành các phương thức của đối tượng nằm trên JVM đó

Hình 4.8. Lời triệu gọi từ xa được thi hành trên máy ảo Java ở xa

So sánh giữa RMI và RPC

Java là một ngôn ngữ nền tảng, dễ hiểu, nó cho phép những ứng dụng Java giao

tiếp với những ứng dụng Java khác chạy trên bất kỳ môi trường phần cứng nào hỗ trợ

một JVM. Sự khác nhau chủ yếu giữa RPC và RMI là RPC hỗ trợ nhiều ngôn ngữ, trong

khi RMI chỉ hỗ trợ những ứng dụng viết trên Java.

RMI làm việc như thế nào?

Các hệ thống sử dụng RMI cho việc truyền thông tiêu biểu được phân thành 2 loại:

Clients và Servers. Server cung cấp dịch vụ RMI, và Client gọi các phương thức do

Server cung cấp. RMI Server phải đăng ký một dịch vụ tìm kiếm, cho phép các Client tìm

thấy thông tin Server cung cấp, hoặc chúng có thể tham chiếu tới dịch vụ khác. Một ứng

dụng chạy nền cho RMI có tên là rmiregistry. Ưng dụng này chạy và xử lý độc lập với

105

Java Virtual Machine

Java Virtual Machine

Object

Main (String args[])

RemoteObject

Method1(…)

Method2(…)

Method Request

Method Response

Page 106: Bài giảng tóm tắt môn -Hệ phân tán

rmiregistry

RMI Server RMI Server RMI Server

Bai giang tom tăt Hê phân tan

các chương trình RMI, nó cho phép các đối tượng trên Server đăng ký tên của mình. Mỗi

lần một đối tượng được đăng ký xong, nó sẽ đợi sau đó thực hiện lời gọi từ phía Client.

Hình 4.9. Nhiều dịch vụ đăng ký với một bộ đăng ký

Các đối tượng trên Client sẽ gửi những thông điệp tới những phương thức ở xa. Trước

khi một phương thức ở xa được thực thi Client phải có tham chiếu của nó trên Server.

Điều đó được thực hiện bởi dịch vụ tìm kiếm trong bộ đăng ký RMI. Đối tượng trên

Client yêu cầu một tên dịch vụ, và sẽ nhận được một URL. Nên nhớ những URL không

phải cho HTTP, hầu hết các giao thức có thể đại diện sử dụng cú pháp của URL. Định

dạng được sử dụng bởi RMI để đại diện cho một đối tượng tham chiếu từ xa như sau:

rmi://hostname:port/servicename

Hình 4.10. Đối tượng stub gọi đối tượng skeleton.

Trong đó hostname tên của của Server hoặc địa chỉ IP của Server, port số hiệu

cổng cung cấp dịch vụ, servicename là một chuỗi mô tả dịch vụ. Những thông tin chi tiết

của hoạt động mạng thì luôn trong suốt với người phát triển ứng dụng khi làm việc với

các đối tượng ở xa, việc đó trở nên đơn giản như khi làm việc với đối tượng tại máy cục

bộ. Điều này được thực hiện nhờ một phép chia thông minh của hệ thống RMI thành hai

thành phần, một là stub và một là skeleton.

106

request

RMI client application

stub objectsomemethod(…)

RMI server

skeleton objectsomemethod(…)

response

Page 107: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Tại RMI Server, đối tượng skeleton có nhiệm vụ lắng nghe những yêu cầu và

chuyển các yêu cầu đó tới dịch vụ RMI. Sau khi người phát triển tạo ra một giao diện

RMI, người đó còn phải định nghĩa cụ thể giao diện đó. Đối tượng được định nghĩa này

sẽ được gọi là đối tượng skeleton.

Kiến trúc của chương trình RMI

Kiến trúc của một chương trình theo cơ chế RMI được mô tả như hình sau:

Hình 4.11. Kiến trúc chương trình kiểu RMITrong đó:

+ Server là chương trình cung cấp các đối tượng có thể được gọi từ xa.

+ Client là chương trình có tham chiếu đến các phương thức của các đối tượng ở

xa trên Server.

+ Stub chứa các tham chiếu đến các phương thức ở xa trên Server.

+ Skeleton đón nhận các tham chiếu từ Stub để kích hoạt phương thức tương ứng

trên Server.

+ Remote Reference Layer là hệ thống truyền thông của RMI.

+ Transport là tầng giao vận được dựa trên giao thức TCP/IP giữa các máy trong

mạng.

Bằng cách sử dụng kiến trúc phân tầng như trên mà mỗi tầng có thể phân cấp hoặc

thay thế mà không ảnh hưởng tới các tầng còn lại của hệ thống.

107

Page 108: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Các cơ chế liên quan trong một ứng dụng RMI

Trong một ứng dụng phân tán cần có các cơ chế sau:

+ Cơ chế định vị đối tượng ở xa (Locate remote objects)

+ Cơ chế giao tiếp với các đối tượng ở xa (Communicate with remote objects)

+ Tải các lớp danh bytecodes cho các lớp mà nó được chuyển tải qua lại giữa máy

ảo (Load class bytecodes for objects that are passed around)

Hình 4.12. Vai trò của dịch vụ ánh xạ tênTrong đó:

+ Server đăng ký tên cho đối tượng có thể được gọi từ xa của mình với dịch vụ ánh xạ tên (Registry Server).

+ Client tìm đối tượng ở xa thông qua tên đã đăng ký trên Registry Server (looks up) và tiếp đó gọi các phương thức ở xa.

+ Hình 3.5 cũng cho thấy cách thức mà hệ thống RMI sử dụng một WebServer sẵn có để truyền tải mã bytecodes của các lớp qua lại giữa Client và Server.

Cơ chế thực thi của một ứng dụng RMI

Tiến trình thực thi của một ứng dụng RMI diễn ra như sau:

Bước 1: Server tạo các đối tượng cho phép gọi từ xa cùng với Stub và Skeleton của

chúng.

Bước 2: Server sử dụng lớp Naming để đăng ký tên cho một đối tượng từ xa (1).

Bước 3: Naming đăng ký Stub của đối tượng từ xa với Registry Server (2).

Bước 4: Registry Server sẵn sàng cung cấp tham chiếu đến đối tượng từ xa khi có yêu

cầu (3).

108

Page 109: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

+ Client yêu cầu Naming định vị đối tượng ở xa thông qua tên đã được đăng ký

(phương thức lookup) với dịch vụ tên (4).

+ Naming tải Stub của đối tượng ở xa từ dịch vụ tên mà đối tượng đã đăng ký về

Client (5).

+ Cài đặt đối tượng Stub và trả về tham chiếu đối tượng ở xa cho Client (6).

+ Client thực thi một lời gọi phương thức ở xa thông qua đối tượng Stub (7).

Hình 4.13. Tiến trình thực thi của ứng dụng RMI

Các lớp, gói thường được sử dụng trong RMI

Trong kỹ thuật triệu gọi từ xa, một hệ thống RMI sử dụng rất nhiều gói và lớp của

Java nhưng các lớp quan trọng nhất vẫn là:

+ java.rmi

+ java.rmi.activation

+ java.rmi.dgc

+ java.rmi.registry

+ java.rmi.server

Trong các gói trên thì quan trọng nhất là gói java.rmi với gói này lớp Naming đóng vai

trò cực kỳ quan trọng, tất cả các phương thức của lớp này đều là phương thức tĩnh. Lớp

109

Page 110: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

này dùng để đăng ký hoặc khôi phục các tham chiếu đối tượng với bộ đăng ký

rmiregistry. Gói này gồm các phương thức:

+ static void bind(String url, Remote Object).

+ static String[] list(String url.

+ static Remote lookup(String url).

+ static void rebind(String url, Remote Object).

Thế hệ thứ 3 phát sinh RPC

- XML RPC

- SOAP

- .Web Service

- Microsoft .NET Remoting

- .Google Web APIs Developer Kit – SOAP

- .AJAX (Asynchronous JavaScript And XML)

BÀI TẬP CHƯƠNG IV

1. Các đối tượng nào sau đây là naminga. Tên file, tên thiết bịb. Các biến của chương trìnhc. Tên các dịch vụ mạngd. Tất cả đều đúng2. Các đối tượng trong mô hình phân tán được gọi làa. đơn vị phân tánb. node trên mô hình phân tánc. tài nguyên phân tánd. Tất cả đều đúng3. Mạng Internet được gọi là mô hình đối tượng …………….a. tái tạo b. phân mãnh c. di trú d. Tất cả đều sai4. ORB trong hệ thống phân tán được gọi là ……..a. đối tượng môi giới yêu cầu b. đối tượng tái tạo c. đối tượng tự trị d. đối tượng di trú5. ORB có các chức năng nào sau đây: a. Quản lý các đối tượng (tạo, kích hoạt, xóa bỏ các đối tượng) b. Xác định và tìm đối tượng, Kết buộc Client, c. Thực hiện các phương thức triệu gọi trên đối tượng. d. Tất cả đúng6. Cơ chế RPC (Remote Procedure Call) được do Birrell & Nelson đưa ra vào năm

110

Page 111: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

a. 1980 b. 1984 c. 1988 d.19907. RPC là gì ?a. cơ chể để triệu gọi trên các máy tínhb. cơ chể kết nối 2 máy tính trên mạngc. cơ chể liên lạc giữa các máy tính d. cơ chể trao đổi dữ liệu giữa các máy tính8. Phát biểu nào là đúng a. Hầu hết các ngôn ngữ lập trình (C, C + +, Java,..) có khái niệm về gọi thủ tục từ xa. b. Ngôn ngữ trình biên dịch sẽ tạo ra Stubs client và serverc. Phải sử dụng một trình biên dịch riêng biệt để phát sinh ra stubs d. Để thực hiện gọi thủ tục từ xa cần có cơ chế phần cứng. 9. IDL là viết tắt của cụm từa. International Definition Languageb. Interface Definition Language c. Interface Define Languaged. Tất cả đều sai10. Những loại dịch vụ nào cần một hệ thống RPC?a. Hoạt động đặt tên dịch vụ, hoạt động ràng buộc, Hoạt động đầu cuối b. Hoạt động bảo mật, trao đôỉ dữ liệuc. Hoạt động quản lý bộ nhớ, viết chương trình truy cập vào RPCd. Tất cả đều đúng11. Hệ thống nào sau đây là RPCa. Sun RPC, DCE RPC, CORBAb. Microsoft DCOM, Microsoft.NET Remotingc. Java RMI, XML RPC, SOAP d. Tất cả đều đúng

111

Page 112: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

CHƯƠNG VĐỒNG BỘ HÓA ĐỒNG HỒ

MỤC TIÊU

Giúp sinh viên rắm rõ các vấn đề liên quan đến :

- Đồng hồ vật lý : Các loại đồng hồ vật lý, sai lệch với đồng hồ, thuật toán

Cristian, Berkeley

- Đồng hồ logic : Đồng hồ logic và concurrency, thuật toán Lamport, timestamps,

vector đồng hồ, quan hệ nhân qủa …

5.1.TẠI SAO PHẢI ĐỒNG BỘ HÓA

Mô hình đa luồng thực hiện nhiều công việc đồng thời. Nhưng bên cạnh sự hữu

dụng đó, việc tồn tại cùng lúc nhiều luồng trong môi trường có thể dẫn đến sự tranh chấp,

ngăn cản họat động lẫn nhau giữa các luồng

+ Bế tắc ( Dead Lock)

+ Cho kết quả sai lệch

Hầu các ứng dụng như : thanh toán, điểu khiển tự động ( lắp ráp, phản ứng hạt

nhân…), truy xuất database v.v…đồng bộ hóa có vai trò quan trọng trong xử lý.

Đồng bộ hóa là gì ?

Là quá trình sắp xếp thứ tự thời gian các sự kiện qua việc sinh ra các tiến trình đồng

thời

Nhằm mục đích

+Đồng bộ giữa việc gửi và nhận các thông điệp

+Điều phối các hoạt động chung cho toàn hệ thống

+Sắp xếp thứ tự truy cập đồng thời cho các đối tượng được chia sẻ tài nguyên

Đối với hệ thống PC

Sử dụng phương phap bù tuyến tính bằng cách bổ sung thêm hàm bù tuyến tính

(Linear compensating function ) vào system call của hệ điều hành

Đối với hệ thống cục bộ:

Sử dụng thuật toan Berkeley để đồng bộ hóa tất cả đồng hồ trên hệ thống cục bộ

về gia trị trung bình (Gusella & Zatti, 1989) hoặc NTP.

112

Page 113: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Đối với hệ thống phân tán

- Mỗi trạm có một đồng hồ cục bộ của riêng mình Không có đồng hồ chung Không

thể áp dụng các thuật toán đồng bộ hóa ở hệ thống cục bộ

- Các sự kiện xãy ra trên các trạm trong hệ thống có thể đồng bộ hoặc không ?

Làm thế nào nào để sắp xếp thứ tự của các sự kiện trên hệ thống???

Các dạng đồng hồ

- Đồng hồ vật lý (Physical Clock)

+ Là đồng hồ vật chất, có thể nhận biết bằng các giác quan

+ Giữ thời gian trong ngày và thống nhất trên toàn hệ thống

- Đồng hồ logic (Logical Clock)

+ Theo dõi thứ tự của các sự kiện

+ Xác định các sự kiên có quan hệ nhân quả

5.2. ĐÔNG HỒ VẬT LÝ

5.2.1. Đồng bộ hóa đồng hồ là gì?

Là một dạng đồng hồ vật chất, dung để :

• Sắp xếp thứ tự thời gian của các sự kiện sản xuất bằng tiến trình đồng thời

• Đồng bộ giữa việc gửi và nhận các thông điệp

• Điều phối các hoạt động chung (Coordination of joint activity)

• Thứ tự truy cập đồng thời cho các đối tượng được chia sẻ tài nguyên

• Giữ thời gian trong ngày và thống nhất trên toàn hệ thống 5.2.2.Đồng hồ vật lý

a. Đồng hồ thạch anh (Quartz clocks)

• 1880: Được phát hiện bởi Anh em nhà Pierre Curie

- Nén một tinh thể thạch anh & nó tạo ra một điện trường

- Áp dụng một điện trường mà vật dẫn điện là thạch anh được uốn cong

• 1929: Đồng hồ pha lê (Quartz crystal clock)

– Resonator shaped like tuning fork

– Sử dụng tia Laser tạo rung ở tần số32,768 Hz

– Độ chính xác 6 phần triệu million seconds ở nhiệt 31° C

– Đồng hồ có thể sai lệch < ½ sec/1 ngày

113

Page 114: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

– Độ ổn định, chính xác cao : ổn định đến 2 sec/1 tháng

– Tiếng vang tốt có thể có độ chính xác xấp xĩ 1 second trong 10 năm. Tần số

thay đổi với tuổi thọ, nhiệt độ, và vận tốc

a.Đồng hồ Quartz b.Đồng hồ Crytal Quartz

Hình 5.1.(a,b) Đồng hồ Quartz

b.Đồng hồ nguyên tử(Atomic clocks)

• NIST (National Institute of Standards and Technology ) đưa ra từ năm 1960

• Giây (second) được định nghĩa là 9.192.631.770 thời kỳ bức xạ tương ứng với sự

chuyển tiếp giữa hai mức hyperfine của cesium-133

• Độ chính xác: tốt hơn 1 giây trong sáu triệu năm

a.Caesium atomic clock, 1955 b. Hệ thống đồng hồ nguyên tử tại Đài quan

sát hải quân Mỹ

Hình 5.2 (a,b) Đồng hồ nguyên tử

c. UTC

114

Page 115: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

• UT0

– Có nghĩa là thời gian năng lượng mặt trời trên kinh tuyến Greenwich

– Thu được từ quan sát thiên văn

• UT1

– UT0 sửa chữa cho các chuyển động cực

• UT2

– UT1 sửa chữa cho các biến thể theo mùa trong tự quay của Trái Đất

• UTC

– thời gian dân sự dùng để đo trên một thời gian quy mô nguyên tử

Thời gian quốc tế Phối hợp (Coordinated Universal Time)

– Giữ trong vòng 0,9 giây của UT1

– Đồng hồ nguyên tử không giữ đúng nghĩa về mặt thời gian

– thời gian là một biện pháp tự quay của Trái Đất

d.Đồng hồ vật lý trong máy tính

Real-time Clock: đồng hồ CMOS (truy cập) mạch điều khiển bởi một dao động thạch

anh

– Sử dụng Pin dự phòng để tiếp tục đo thời gian khi tắt điện

Chương trình Hệ điều hành nói chung một mạch hẹn giờ để tạo ra một ngắt định kỳ

e.g., 60, 100, 250, 1000 interrupts per second

(Linux 2.6+ adjustable up to 1000 Hz)

- Programmable Interval Timer (PIT) – Intel 8253, 8254

- Gián đoạn dịch vụ thủ tục bổ sung thêm 1 đến một truy cập vào bộ nhớ

Các vấn đề xảy ra với đồng hồ máy tính

- Hai hệ thống ban đầu điều chỉnh để thoả thuận về thời gian nhưng sau thời gian

Hai đồng hồ sai lệch

- Sự khác nhau giữa hai đồng hồ tại một thời điểm trong thời gian gọi là hiện tượng

: Clock Drift

Xét ví dụ sau :

115

Page 116: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

8:0:00 8:0:00Ngày 18 tháng 12 năm 2008

Hình 5.3.a- 1 phút sau :

8:01:24 8:01:48

Hình 5.3.bHình 5.3.(a,b). Hiện tượng Drift xảy ra ở hồ máy tính

Vào ngày 23 tháng 10 năm 2008 :

Ở đồng hồ bên trái Ở đồng hồ bên phải

Đối phó với Drift- Điều chỉnh để đồng hồ dần dần trở về giờ chuẩn - Nếu nhanh: Làm cho đồng hồ chạy chậm hơn cho đến khi nó đồng bộ - Nếu chậm:

Làm cho đồng hồ chạy nhanh hơn cho đến khi nó đồng bộ

- Có 2 các thực hiện

116

Skew = +84 seconds+84 seconds/35 daysDrift = +2.4 sec/day

Skew = +108 seconds+108 seconds/35 daysDrift = +3.1 sec/day

Page 117: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

+ Cách thủ công (điều chỉnh bằng tay) : Không thực tế và hiệu quả.

+ Tự động : Thay đổi thời gian của hệ thông theo thuật toán bù tuyến tính.

Đồng hồ hoàn hảo (Perfect clock)

Hình 5.4. Đồ thị của đồng hồ hoàn hảo

Là loại đồng hồ máy tính mà tại mọi thời điểm thời gian luôn luôn không đổi đối với

đồng hồ quốc tế (nghĩa là : dC/dt =1))

Drift với đồng hồ chậm

Hình 5.5. Drift của đồng hồ chậm

Drift với đồng hồ nhanh

117

Page 118: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 5.6. Drift của đồng hồ nhanh

Đối phó với driftDealing with drift

Giả sử chúng ta đặt máy tính đến thời gian thực, không tốt ý tưởng để đặt đồng hồ trở

lại. Điều chỉnh thời gian thay đổi độ dốc của hệ thống bằng xây dựng hàm bù tuyến tính :

(Linear compensating function)

Bô sung với đồng hồ nhanh

Hình 5.7. Sử dụng hàm bù tuyến tính đối với đồng hồ nhanh

Tái đồng bộ hóa (Resynchronizing)

Sau khi đạt được thời gian đồng bộ hóa

- Tái đồng bộ định kỳ Resynchronize periodically

118

Page 119: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Ưng dụng kế tiếp của một chức năng bù tuyến tính thứ hai có thể mang lại cho

chúng ta gần gũi hơn với độ dốc thật sự.

Theo dõi điều chỉnh và áp dụng liên tục. Ví dụ trong hệ điều hành UNIX, người ta bổ

sung thêm hàm adjtime ở system call, cứ sau 1ms sẽ phát ra thông điệp yêu cầu điều

chỉnh lại đồng hồ máy tính.

Thiết lập thời gian chính xác

• Đính kèm nhận GPS đến từng máy tính

± 1 msec of UTC

• Đính kèm WWV radio nhận Có được thời gian phát sóng từ Boulder hoặc DC

± 3 msec của UTC (phụ thuộc vào khoảng cách)

• Đính kèm GOES nhận

± 0.1 msec của UTC

Không thực hiện giải pháp cho mỗi máy

- Chi phí, kích thước, thuận tiện, môi trường khác nhau.

Đồng bộ hoa từ may khac

- Một với một đồng hồ chính xác hơn

Máy / dịch vụ cung cấp thông tin thời gian:

Thời gian máy chủ(Time server)

RPC

Kỹ thuật đồng bộ đơn giản nhất

- Vấn đề RPC để có chứa thời gian

- Thiết lập thời gian

Xét mô hình trao đổi thông điệp đơn giản của hệ thống mạng giữa 2 máy tính Client và Server như hình vẽ (hinh 5.7)

119

Page 120: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 5.8. Mô hình trao đổi thông điệp giữa 2 máy tính trong mạng

5.3.THUẬT TOÁN CỦA CRISTIAN

Bù đắp cho sự chậm trễ (Compensate for delays)

- Chú ý về thời gian :

+ Thời điểm Client gởi thông điệp cho Server: T0

+ Thời điểm Client nhận thông điệp từ Server về cho Client : T1

- Giả định sự chậm trễ mạng là đối xứng ( Kiến trúc mạng là như nhau trong suốt

quá trình )

Hình 5.9 (a,b). Mô hình biểu quan hệ trao đổi thông điệp giữa Client và Server

Clients đặt thời gian để :

Hình 5.9.a

120

request

ClientClient ServerServer3:42:19

Thời gian sẽ trên hệ thống là gì ?

replyClient

Server

T0 Time (ms)T1

TServer

replyClient

Server

T0 Time (ms)T1

TServer

Page 121: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Tnew = Tserver + (T1-T0 )/2

Độ sai lệnh biên (Error bounds )

Nếu thời gian đi qua của thông điệp tối thiểu (Tmin) được biết :

Đặt giới hạn về độ chính xác của kết quả :

Hình 5.10. Độ sai lệch biên xuất hiện trên mô hình trao đổi thông điệp

Biên độ (range ) = T1-T0-2Tmin

Tính chính xác của kết quả =

Ví dụ

• Gởi yêu cầu lúc 5:08:15.100 (T0)

• Nhận được phản hồi tại 5:08:15.900 (T1)

– Phản hồi có lúc 5:09:25.300 (Tserver)

• Thời gian đã qua là Elapsed time is T1 -T0

5:08:15.900 - 5:08:15.100 = 800 msec

• Dự đoán tốt nhất: dấu thời gian được tạo

400 msec ago

• Thiết lập thời gian để Tserver+ thời gian trôi qua (elapsed time)

5:09:25.300 + 400 = 5:09.25.700

Nếu trường hợp thời gian thông điệp sớm nhất=200 msec

121

T1-T0 : Thời gian ước tính theo mỗi hướng 2

T0 = 5:08:15.100T1 = 5:08:15.900

Ts = 5:09:25:300Tmin = 200msec

replyClient

Server

T0 Time (ms)T1

TServer

Tmin Tmin

Thời gian sớm nhất thông điệp đến

Thời gian sớm nhất thông điệp rời

Page 122: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Error = ± (900-100)/2 – 200 = ±800/2-200 = ±200

5.4.THUẬT TOÁN BERKELEY

– Do Gusella & Zatti đề xuất 1989

– Giả sử máy không có thời gian chính xác nguồn

– Đạt trung bình từ các máy tính tham gia

– Đồng bộ tất cả các đồng hồ đến trung bình

– Máy chạy thời gian kim cương (time dæmon)

– Quá trình thực hiện giao thức

– Một là máy được chọn như là máy chủ (master)

- Những máy khác là slaves

– Master phiếu thăm dò ý mỗi máy theo định kỳ

– Yêu cầu mỗi máy cho thời gian

– Có thể sử dụng thuật toán Cristian để bù cho độ trễ mạng

– Khi kết quả là tồn tại, tính trung bình

– Bao gồm cả thời gian của master

Hy vọng: trung bình hủy bỏ ra xu hướng ca nhân của đồng hồ chạy nhanh hay chậm

– Gởi bù đắp mà các đồng hồ cần điều chỉnh đến mỗi slave

– Tránh các vấn đề với sự chậm trễ mạng, nếu chúng ta gửi một con tem thời gian

(time stamp)

– Thuật toán đã quy định cho bỏ qua bài đọc từ đồng hồ mà skew là quá lớn

+Tính toán lỗi chịu trung bình (fault-tolerant average)

+Nếu master lỗi

122

Server

Client

To T1 Time

Tconver

ReplayRequest

Page 123: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

+ Bất kỳ slave có thể take over

Ví dụ về Berkeley Algorithm

Hình 5.11.a

1.Yêu cầu timestamps từ tất cả Slaves

Hình 5.11.b

2. Tính toán lỗi chịu trung bình (fault-tolerant average)(3:25+2:50+3:0)/3 = 3:05

Hình 5.11.cHình 5.11(a,b,c). Ví dụ về thuật toán Beckerley

3. Gởi bù đắp (offset) đến mỗi client

5.4.NETWORK TIME PROTOCOL (NTP)

123

3:003:00

3:253:25 2:502:50 9:109:10

3:25

2:50

9:10

3:003:00

3:253:25 2:502:50 9:109:10

3:252:50

9:10

3:003:00

3:253:25 2:502:50 9:109:10

-0:20 -6:05+0:15

+0:15

Page 124: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

1991, 1992 - Internet tiêu chuẩn, phiên bản 3: RFC 1305, ra đời đáp ứng các yêu cầu

trên.

Mục tiêu NTP

- Kích hoạt khách hàng qua Internet để có chính xác đồng bộ theo UTC bất chấp sự chậm

trễ thông điệp

+Sử dụng kỹ thuật thống kê để lọc dữ liệu và đo chất lượng của các kết quả

- Cung cấp dịch vụ đáng tin cậy

+ Tồn tại lỗ dài kết nối

+ Dự phòng đường đi (Redundant paths)

+ Dự phòng máy chủ (Redundant servers)

- Kích hoạt khách hàng thường xuyên để đồng bộ hóa tần số

+Bù đắp tác động của đồng hồ drift

- Cung cấp bảo vệ chống nhiễu

+Xác nhận nguồn gốc của dữ liệu

NTP servers.

Hình 5.12. Mô hình NTP Server

Cách bố trí ở tầng

- Tầng thứ 1st :các máy được kết nối trực tiếp với thời gian chính xác nguồn

- Tầng thứ 2nd : các máy đồng bộ từ máy 1 tầng lớp

Đồng bộ hóa với SUBNET

124

1

2

3

4

Page 125: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Mô hình đồng bộ hóa với NTP được sử dụng :

+cho mạng LAN tốc độ cao

+Độ chính xác thấp nhưng hiệu quả

5.5. ĐÔNG HỒ LOGIC

Đồng hồ hợp lý là một cơ chế để nắm bắt mối quan hệ thời gian và quan hệ nhân

quả trong một hệ thống phân phối.

Các thuật toán đồng hồ hợp lý cần lưu ý là:

- Lamport timestamps, đơn điệu tăng quầy phần mềm.

- Vector đồng hồ, cho phép sắp xếp một phần của các sự kiện trong một hệ thống

phân phối.

- Vector clocks bản sao thứ tự, theo thông tin cập nhật, trong một hệ thống nhân

rộng lạc quan.

- Ma trận đồng hồ, một phần mở rộng của đồng hồ vector cũng có chứa thông tin về quan

điểm của những tiến trình khác của hệ thống.

- Trong hệ thống phân tán :

+Mỗi trạm có một đồng hồ cục bộ của riêng mình Không có đồng hồ chung

Không thể áp dụng các thuật toán đồng bộ hóa ở hệ thống cục bộ

+Các sự kiện xãy ra trên các trạm trong hệ thống có thể đồng bộ hoặc không .

Làm thế nào để sắp xếp thứ tự của các sự kiện trên hệ thống?

5.5.1.Mô hình giả định

- Xét mô hình gồm các hệ thống Pi (i=1,2….)

a,b,c,d,..: Các sự kiện xuất hiện trên Pi

Giả sử :

+Mỗi hệ thống duy trì đồng hồ riêng của chính mình

Không có nguồn thời gian trung tâm

+Không có chỉ thị của các sự kiện

Không có khái niệm “happened-when” Các hệ thống đôi khi giao tiếp hoặc

không

Làm thế nào để sắp xếp thứ tự của a,b,c,d ?

Happened-before

125

Page 126: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Lamport gọi “happened-before” như sau:

Nếu sự kiên a đã xãy ra trước sự kiên b khi và chỉ khi

a : thông điêp được gửi đi, b: thông điêp nhận.

Ký hiệu : a b

-Tính bắc cầu (Transitive):

nếu a b và b c thì a c

Nếu a và b xảy ra trên các tiến trình khác nhau mà không trao đổi thông điệp, và sau

đó không phải a b hoặc không b a là đúng. Những sự kiện này được gọi là đồng qui

(concurrency

Ví dụ về việc đếm sự kiện

• Cho hệ thống gồm 3 trạm làm việc : P0, P1, P2

• Các sự kiện :a, b, c …xãy ra trên các hệ thống như hình ( )

• Số lượt sự kiện truy cập cục bộ (địa phương) trên mỗi hệ thống

• Các hệ thống đôi khi giao tiếp với nhau hoặc không

5.5.2.Thuật toán Lamport

Hình 5.13

Các sự kiện đồng quy : (a,j), (a,g), (g,j), (h,f), (i,k) ...

Thuật toán Lamport

126

Lamport, February 7, 1941

Page 127: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 5.14- Mỗi thông điệp mang một dấu thời gian (timestamp ) của đồng hồ gởi

- Khi một thông điệp được gởi đến :

+ nếu đồng hồ nhận < timestamp của thông điệp thiết lập lại đồng hồ hệ thống

bằng cách tăng timestamp của đồng hồ hệ thống (timestamp + 1)

+ Ngược lại giữ nguyên

- Đồng hồ phải được điều chỉnh giữa 2 sự kiện bất kỳ trong cùng tiến trình

Thuật toán cho phép chúng ta sắp xếp thứ tự thời gian trong số các sự kiện liên quan -

Thứ tự từng phần (Partial ordering )

Hình 5.15

ab, bc, …: trình tự các sự kiện tại địa phương

I(a,g,j),II(h,f),III(i,k) : Các thành phần đồng qui

Unique timestamps (total ordering)

Chúng ta có thể áp đặt mỗi dấu thời gian trở nên duy nhất.

Xác định dấu thời gian logic toàn cục (Ti, i)

+Ti đại diên cho dấu thời gian Lamport địa phương

+ i đại diên cho số lượng tiến trình 

127

Page 128: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 5.14

So sánh timestamps:

(Ti, i) < (Tj, j)

Nếu và chỉ nếu :

Ti < Tj (i, j khác hệ thống )

hoặc Ti = Tj và i < j (i,j cùng 1 hệ thống )

Phát hiện mối quan hệ nhân quả (Detecting causal relations)

Nếu L(e) < L(e’) (L(e) : đồng hồ Lamport của sự kiện e)

- Nếu L(e) < L(e’) ( L : dấu thời gian Lamport )

Không thể kết luận rằng ee’

Không thể kết luận là sự kiện có quan hệ nhân quả

Giải pháp: sử dụng một đồng hồ vector

Đồng hồ vector

Hệ thống đồng hồ vector được Fidge, Mattern và Schmuck đề xuất.

Quy tắc:

1.Vector khởi V tạo có giá trị 0 tại mỗi tiến trình/trạm

Vi [j] = 0 với i, j =1, …, n

2.Tăng tiến trình của phần tử của vector ở vector địa phương trước khi có sự kiện

timestamping 

Vi [i] = Vi [i] +1 i [i] i [i]

3.Thông điệp được gửi từ tiến trình Pi với Vi thì được gắn liền với nó.

4. Khi Pj nhận được thông điệp từ hệ thống khác thì tiến hành so sánh vectơ thành

phần bởi thành phần tương ứng và thiết lập véc tơ địa phương theo:

Vj [i] = max(Vi [i], Vj [i]) for i=1, …, n

So sánh các vector thời gian

Định nghĩa

128

Page 129: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

V = V’ nếu V [i ] = V’[i ] for i = 1 … N

V V’ nếu V [i ] V’[i ] for i = 1 … N

Cho 2 sự kiện bất kỳ e, e’

Nếu e e’ thì V(e) < V(e’) Cũng giống như thuật toán của Lamport

Nếu V(e) < V(e’) thì e e’

Hai sự kiện đồng qui nếu (H1||H2 ) không V(e) V(e’) hoặc không V(e’) V(e)

Xét ví dụ sau :

129

Page 130: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

130

Page 131: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

131

Page 132: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

132

Page 133: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Việc xác lập trật tự nhân quả của hai sự kiện e1 và e2 bất kỳ được thực hiện dựa trên

những quy luật sau đây:

Quy tắc 1: Nếu hai sự kiện e1, e2 xảy ra trên cũng một trạm Si (i là số thứ tự của trạm

trong hệ), khi đó e1e2 khi và chỉ khi Hi(e1)<Hi(e2).

Quy tắc 2: Nếu e1 là sự kiện gửi đi một thông điệp m trên một trạm, và e2 là sự kiện

nhận đươc chính thông điệp đó thì e1e2.

Quy tắc 3: Nếu hai sự kiện e1, e2 xảy ra trên hai trạm Si, Sj bất kỳ trong hệ (i, j là số thứ

tự của trạm) thì ta có e1e2 tương đương Hi(e1)<Hj(e2).

Quy tắc 4 :Nếu hai sự kiện e1, e2 ta có e1||e2 tương đương H(e1)||H(e2).

Nếu a->b thì sự kiện a có thể ảnh hưởng đến sự kiện b

Đồng bộ hóa ứng dụng trên các hệ thống phân tán

1. Cài đặt các file trên mỗi hệ thống lưu trữ đồng hồ vector Hi (i =1..n), Hi được gọi là

đồng hồ cục bộ của trạm Si(i là số thứ tự của trạm trong hệ, i =1..n, n số trạm trong hệ)

2.Cập nhật đồng hồ logic ( cập nhật và tái tạo bản sao )

3.So sánh 2 vector Hi và Hj

4.Xác lập quan hệ nhân quả của 2 sự kiện

133

Page 134: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 5.

Vector đồng hồ là một cơ chế được ứng dụng các hệ phân tán tạo bước đột phá

trong đặt nền tảng để giải quyết các bài toán có độ phức tạp cao trong môi trường tài

nguyên hạn chế hoặc phải chia sẻ

- 1999: Torres-Rojas và Ahamad, đưa ra Plausible Clock một cơ chế mà mất

không gian ít hơn Vector đồng hồ

- 2008 : Almeida giới thiệu Đồng hồ Tree Interval.

(http://gsd.di.uminho.pt/members/cbm/ps/itc2008.pdf)

BÀI TẬP CHƯƠNG V1. UTC là gì ?a. Union Time Clockb. Universal Time Clock c. Universal Time Coordinatord. Unit Time Clock2. Đồng hồ ly tưởng có a. dC/dt(UTC) <1 b. dC/dt(UTC) =1 c. dC/dt(UTC) >1 d. Tất cả đều sai

134

Page 135: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

CHƯƠNG V

GIẢI THUẬT LOẠI TRỪ TƯƠNG HỖ & BẦU CỬ

MỤC TIÊU

Giúp sinh viên rắm rõ các vấn đề :

- Loại trừ lẫn nhau phân tán : Giải thuật tập trung, Token Ring, Ricart &

Agrawala, Loại trừ tương hỗ của Lamport.

- Bầu cử : Giải thuật Bully, Ring, các vấn đề xảy ra với bầu cử.

6.1.GIỚI THIỆU

6.1.1.Đồng bộ hóa tiến trình (Process Synchronization)

Là kỹ thuật cho phép các tiến trình phối hợp thực hiện 1 cách đồng bộ, hoặc

+ Chờ nhau thực hiện

+ Chia sẻ tài nguyên có thể yêu cầu truy cập độc quyền trên vùng găng (Critical

Section - CS)

Trong hệ thống một processor, các vùng găng được bảo vệ bằng cách sử dụng

semaphores( theo dõi, giám sát v.v…)

6.1.2.Các hệ thống tập trung

Để xử lý nhiều tiến trình thường sử dụng nhiều vùng găng. Khi một quá trình có

thể đọc hoặc cập nhật chứa cấu trúc dữ liệu, đầu tiên đi vào một vùng găng để loại trừ lẫn

nhau và đảm bảo rằng không có quá trình khác sẽ sử dụng cấu trúc dữ liệu được chia sẻ

cùng một lúc

- Loại trừ lẫn nhau thông qua :

  +Kiểm tra và thiết lập trong phần cứng

+Semaphores

+Messages

+Condition variables

- Thuật toán loại trừ tương hỗ phải đối phó với sự chậm trễ thông điệp và thiếu hoặc

không đoán trước thông tin về trạng thái của hệ thống.

Ba cách tiếp cận cơ bản để loại trừ lẫn nhau phân phối:

135

Page 136: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

1. Phương pháp tiếp cận dựa trên Token

2. Phương pháp tiếp cận dựa trên Token

3. Phương pháp tiếp cận dựa trên Quorum

Phương pháp tiếp cận dựa trên Token

- Một thẻ duy nhất được chia sẻ giữa các site.

- Một site được phép vào CS của nó nếu nó sở hữu token.

- Loại trừ lẫn nhau được đảm bảo bởi tokent là duy nhất.

- Các thuật toán tiêu biểu : Token Ring, Ricart-Agrawala Second

Phương pháp tiếp cận không dựa trên Token

- Sử dụng hai hoặc nhiều vòng liên tiếp các thông điệp được trao đổi giữa các site để xác

định site đó sẽ nhập vào CS tiếp theo.

- Các thuật toán tiêu biểu: Central Coordinator, Ricart- Agrawala.

Phương pháp tiếp cận dựa trên Quorum

- Mỗi site yêu cầu sự cho phép để thực hiện CS từ một tập hợp con của các site (được gọi

là một số đại biểu cần thiết).

- Bất kỳ hai nhóm túc số có chứa một trang web phổ biến.

- Site phổ biến là trách nhiệm để đảm bảo rằng chỉ có một yêu cầu được thực hiện ở bất

cứ lúc nào.

6.2.THUẬT TOÁN LOẠI TRỪ TƯƠNG HỖ

6.2.1.Nguyên tắc chung

- Bắt chước hệ thống xử lý đơn

- Một tiến trình được bầu chọn làm điều phối viên (coordinator - C)

1. yêu cầu tài nguyên

2. Chờ phản ứng

3. Chấp nhận cấp phát

4. Truy cập tài nguyên

5. Giải phóng tài nguyên

Thuật toán Central Coordinator

- Một tiến trình được bầu chọn làm điều phối viên (coordinator)

- Điều phối viên trung tâm cấp quyền để nhập vào CS.

136

Page 137: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

+Để nhập CS, tiến trình gửi một tin nhắn yêu cầu với điều phối viên và sau đó chờ

đợi trả lời (trong thời gian chờ đợi quá trình có thể tiếp tục với các công việc khác).

+Trả lời từ điều phối viên cho quyền vào CS.

+Sau khi hoàn thành công việc trong CS, tiến trình thông báo cho điều phối viên.

3.1.a

- Nếu một quá trình tuyên bố tài nguyên:

+Điều phối không trả lời cho đến khi phát hành

+Duy trì hàng đợi

+Dịch vụ yêu cầu trong FIFO để sắp xếp thứ tự xử lý

3.1.b.

Hình 3.1.a,b. Sơ đồ hoạt động giải thuật Central Coordinator

- Lợi ích

+Mọi tiến trình đều sắp xếp theo thứ tự

+Dễ thực hiện, hiểu, minh bạch

- Khó khăn

137

Page 138: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

+Quá trình không thể phân biệt bị chặn từ một điều phối viên chết

+Tập trung quá nhiểu tiến trình ở máy chủ thắt cổ chai ( bottleneck)

6.2.2.Thuật toán Token Ring

- Đơn giản nhất để giải quyết loại trừ lẫn nhau :

+Sắp xếp n tiến trình P1, P2, .... Pn trong một vòng logic

- Nếu một quá trình tuyên bố tài nguyên:

+Điều phối không trả lời cho đến khi phát hành

+Vòng tròn logic được tạo ra bằng cách cho mỗi tiến trình địa chỉ của một tiến

trình khác là láng giềng của mình theo hướng chiều kim đồng hồ.

+Vòng tròn logic không liên quan đến các mối liên kết vật lý giữa các máy tính

+Các tiến trình giao tiếp với node láng giềng trong cùng 1 nhóm

Hình 3.2. Sơ đồ hoạt động giải thuật Token Ring

Thuật toán

- Token được khởi tạo cho 1 tiến trinh nào đó.

- Token được truyền từ 1 tiến trình đến tiến trình láng giềng của nó quanh vòng tròn

- Khi 1 tiến trình yêu cầu đăng nhập vào CS, nó sẽ đợi cho đến khi nó nhận 1 token từ

tiến trình láng giềng bên trái của nó và sau đó nó giữ lại nó, sau khi lấy token nó nhập

vào .

- CS, sau khi nó rời khỏi CS, nó trả lại token cho tiến trình hàng xóm của mình theo

ngược chiều kim đồng hồ.

138

Page 139: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Khi quá trình nhận được token nhưng không yêu cầu nhập vào CS, ngay lập tức nó

chuyển token dọc vòng tròn.

- Ưu điểm

+Đảm bảo loại trừ tương hỗ

+Xác định được thứ tự của các tiến trình

+Hiện tượng “đói - Starvation” tài nguyên nguyên xãy ra

- Các vấn đề xãy ra

+Nếu bị mất thẻ (quá trình chết) hệ thống có khả năng rơi vào tình trạng bế tắc

+Không đảm bảo trật tự theo FIFO

+Xãy ra : tiến trình khác thực hiện không mong muốn

6.2.3.Thuật toán Ricart & Agrawala

- Trong môi trường phân tán, thuật toán này sử dụng multicast và đồng hồ logic (không

sử dụng điều phối viên trung tâm).

- Giả định các kênh truyền thông thực hiện theo quy tắc FIFO.

- Sử dụng hai loại thông điệp: REQUEST và REPLY;

- Tiến trình yêu cầu đăng nhập vào CS phải :

+Soạn thông điệp có chứa:

Identifier (machine ID, process ID)

Tên tài nguyên

Nhãn/dấu thời gian Lamport (dấu thời gian hoàn toàn phần Lamport)

- Gởi thông báo yêu cầu đến tất cả các tiến trình khác cạnh tranh với cùng một tài

nguyên.

- Nó được cho phép nhập vào CS khi tất cả các tiến trình đã trả lời tin nhắn này cho phép

- Truy cập vào găng, sử dụng tài nguyên

- Khi các tiến trình nhận yêu cầu:

+Nếu tiến trình nhận không quan tâm: gởi OK đến tiến trình gởi

+Nếu tiến trình đang ở trong CS : Không trả lời và add yêu cầu vào hàng đợi

+Nếu tiến trình vừa nhận/ gởi thông điệp :

So sánh nhãn thời gian Sớm nhất sẽ chiến thắng

Nếu tiến trình nhận thua cuộc : gởi OK

139

Page 140: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Nếu tiến trình nhận thắng cuộc, không trả lời và add vào hàng đợi

- Khi tiến trình thực hiện xong trên CS

+Gởi OK đến tất cả các tiến trình trên hàng đợi

Hình 3.3. Sơ đồ hoạt động giải thuật Ricart & Agrawala

- Vấn đề xãy ra:

+Thuật toán là tốn kém về lưu lượng truy cập tin nhắn, nó đòi hỏi 2(n-1) tin nhắn

cho vào một CS: (n-1) yêu cầu và (n-1) trả lời.

+Sự thất bại của bất kỳ tiến trình tham gia ngăn chặn hoạt động tiến trình khác nếu

không có biện pháp phục hồi đặc biệt được thực hiện.

6.2.4.Thuật toán Lamport

- Mỗi tiến trình duy trì yêu cầu hàng đợi

+Có yêu cầu loại trừ lẫn nhau

- Yêu cầu critical section:

+Tiến trình Pi gởi request(i, Ti) đến tất các các node

+Yêu cầu vị trí trên hàng đợi riêng của nó

+Khi 1 tiến trình Pj nhận một yêu cầu, nó trả về một nhãn thời gian ack

Đăng nhập vào CS:

- Pi nhận được một tin nhắn (ack hoặc release) từ mỗi tiến trình khác với một dấu thời

gian lớn hơn Ti

- Yêu cầu của Pi có dấu thời gian sớm nhất trong hàng đợi của nó

- Sự khác biệt với Ricart-Agrawala:

+ Mọi tiến trình đều đáp ứng trở lại.

140

Page 141: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

+ Tiến trình quyết định dựa trên xem yêu cầu của nó là sớm nhất trong hàng đợi

của nó.

Releasing critical section:

- Hủy bỏ yêu cầu từ hàng đợi của chính nó

- Gởi 1 nhãn thời gian thông điệp release

- Khi một tiến trình nhận được một thông điệp release

+ Loại bỏ yêu cầu cho tiến trình đó từ hàng đợi của nó Điều này có thể gây ra

cho nó có dấu thời gian sớm nhất trong hàng đợi cho phép nó để truy cập vào CS.

6.2.5. Thuật toán Ricart-Agrawala Second

- Đây là thuật toán cải tiến của Ricart-Agrawala đầu tiên, nhưng sử dụng token, nhằm:

+Giảm lưu lượng thông điệp trao đổi.

+Khắc phục trường hợp khi có tiến trình chết làm ngăn chặn hoạt động của tiến

trình khác.

6.3..THUẬT TOÁN BẦU CỬ

- Nhiều thuật toán được sử dụng trong các hệ thống phân tán yêu cầu một điều phối viên.

Ví dụ, các thuật toán loại trừ tương hỗ trong thuật toán Central Coordinator.

- Thuật toán bầu cử được thiết kế lựa nhằm chọn một điều phối viên.

- Tất cả tiến trình phục vụ có thể xem như điều phối viên.

- Bất kỳ tiến trình có thể “gọi một cuộc bầu cử “ (bắt đầu thuật toán để lựa chọn một điều

phối viên mới)

+Không có tác hại (không mở rộng thêm lưu lượng) trong nhiều cuộc bầu cử đồng

thời

- Bầu cử có thể cần thiết khi hệ thống được khởi tạo, hoặc nếu điều phối viên bị treo hoặc

chết.

Các giả định

- Mọi tiến trình/Site có 1 ID duy nhất (địa chỉ mạng, số hiệu tiến trình)

- Tất cả các tiến trình trong hệ thống phải biết các giá trị trong tập hợp các ID

- Tiến trình với số ID cao nhất sẽ là điều phối viên mới.

- Các tiến trình không nhận thức được trạng thái đang chạy /lỗi của tiến trình khác

- Các nhóm tiến trình (như với bộ IS toolkit hoặc MPI) đáp ứng các yêu cầu này.

141

Page 142: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

• Các yêu cầu

- Khi thuật toán bầu cử chấm dứt một tiến trình đơn đã được lựa chọn và mỗi tiến trình

đều biết.

- mỗi tiến trình Pi này có tham số ei để giữ số tiến trình của điều phối viên

+ ∀ i, ei = không xác định hoặc ei = P, trong đó P là tiến trình không bị rơi với id

cao nhất.

    + Tất cả các tiến trình thiết lập ei = P, hoặc quá trình khác đã bị lỗi hoặc chết

Thuật toán Bully

- Tiến trình P gởi thông điệp election đến tất cả tiến trình với ID cao hơn nếu phát hiện

điều phối viên bị lỗi hoặc chết

- Tiến trình có số hiệu cao "kẻ bắt nạt -bully“, loại tiến trình có số hiệu thấp khỏi cuộc

bầu cử, cho đến khi chỉ có một tiến trình vẫn còn duy trì .

- Khi một tiến trình khởi động lại, nó kích hoạt một cuộc bầu cử. Nếu nó có số hiệu cao

nhất, nó sẽ giành chiến thắng.

Hình 3.4. a.

Tiến trình P sẽ gửi một tin nhắn bầu cử cho tất cả các tiến trình số hiệu cao hơn

trong hệ thống. Nếu tiến trình không phản hồi, P sẽ trở thành điều phối viên. Nếu một

tiến trình số hiệu cao hơn (Q) phản ứng, nó sẽ gửi P tin nhắn : chấm dứt vai trò của P của

trong thuật toán.

142

Page 143: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 3.4.b

Hình 3.4. a.b. Sơ đồ hoạt động giải thuật Bully

Phân tích

- Trường hợp tốt nhất : Tiến trình với định danh cao thứ hai thông báo sự thất bại của

điều phối viên. Nó ngay lập tức có thể chọn chính nó và sau đó gửi n-2 thông điệp điều

phối viên.

- Trường hợp xấu nhất: Tiến trình nhận biết có định danh thấp nhất bắt đầu cuộc bầu cử,

nó sẽ gửi : n-1 tin nhắn bầu cử đến các tiến trình mà bản thân chúng bắt đầu đến mỗi

người trong một cuộc bầu cử : O (n2) tin nhắn.

Thuật toán Ring

- Thuật toán này giả định rằng các tiến trình được sắp xếp trong một vòng logic và mỗi

tiến trình được biết thứ tự của các tiến trình trên vòng

- Quá trình này có thể “dừng lại " hệ thống bị lỗi: thay vì gửi đến tiến trình j, gửi cho k + 1.

- Hệ thống bị lỗi là không có phản hồi trong một khoảng thời gian cố định.

• P nghĩ rằng điều phối viên đã bị chết, xây dựng một thông điệp bầu cử, trong đó

có số ID riêng của mình.

• Gởi đến tiến trình sống đầu tiên

• Mỗi quá trình thêm số hiệu riêng của nó và chuyển tiếp theo.

• Có thể hai cuộc bầu cử cùng một lúc.

143

Page 144: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình 3.5. a.

- Khi tin nhắn trả về P (kiểm tra trên danh sách), nó thấy quá trình ID riêng của mình

trong danh sách và biết rằng vòng tròn là hoàn tất.

- P lưu thông điệp Coordinator với số hiệu mới cao nhất

- Ở đây 2 và 5 bầu 6.

[5,6,0,1,2,3,4]

[2,3,4,5,6,0,1]

Hình 3.5. b.

Hình 3.5. a.b. Sơ đồ hoạt động giải thuật Ring

Trong môi trường phân tán không có biến chia sẻ (Semaphores) và kernel địa phương sử

dụng để thực hiện loại trừ tương hỗ.

• Có hai phương pháp : Dựa vào token và không dựa vào token

144

Page 145: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Thuật toán Central Coordinator dựa trên biến điều phối viên sẵn có của một quá trình mà

xử lý tất cả các yêu cầu và cung cấp độc quyền truy cập tài nguyên.

- Thuật toán Ricart-Agrawala được dựa trên thỏa thuận phân tán hoàn toàn loại trừ lẫn

nhau. Một yêu cầu multicast cho tất cả các quá trình cạnh tranh với một nguồn tài nguyên

và truy cập được cung cấp khi tất cả các tiến trình đã trả lời yêu cầu. Thuật toán là tốn

kém về lưu lượng truy cập tin nhắn, và thất bại bất kỳ tiến trình nào cũng ngăn chặn sự

hoạt động của tiến trình.

- Thuật toán Ricart-Agrawala Second là dựa trên token.

Yêu cầu được gửi cho tất cả các quá trình cạnh tranh với một tài nguyên nhưng trả lời chỉ

dự kiến từ trình trình nắm giữ token. Sự phức tạp về lưu lượng tin nhắn được giảm so với

các thuật toán đầu tiên. Sự thất bại của một quá trình (ngoại trừ một tiên trình giữ token)

không ngăn cản sự hoạt động của tiến trình

- Thuật toán Token Ring rất đơn giản giải quyết loại trừ lẫn nhau. Được yêu cầu rằng các

quy trình được sắp xếp một trên vòng tròn ảo. Các token là vĩnh viễn thông qua từ một

tiến trình khác và tiến trình hiện đang nắm giữ token có độc quyền đối với các nguồn tài

nguyên. Thuật toán này hiệu quả trong các tình huống nặng nề về tải.

- Đối với các ứng dụng phân tán bầu cử là cần thiết để chọn một điều phối viên được thỏa

thuận trong số tất cả các tiến trình.

- Thuật toán Bully đòi hỏi các tiến trình để biết chính xác của tất cả các tiến trình khác,

tiến trình với định danh cao nhất, trong số những tiến trính đó là được chọn. Tiến trình

được phép thất bại trong quá trình bầu cử.

- Thuật toán Ring-based đòi hỏi tiến trình này được bố trí trong một vòng logic với định

danh cao nhất được chọn. Về tính trung bình, các thuật toán dựa trên Ring là hiệu quả

hơn sau đó các thuật toán Bully.

145

Page 146: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

CHƯƠNG VII

PHÁT TRIỂN ỨNG DỤNG PHÂN TÁN

MỤC TIÊU

Giúp sinh viên rắm rõ các vấn đề :

- Ngôn ngữ lập trình phân tán

- Các mô hình thiết kế phân tán

- Thiết kế các ứng dụng phân tán

- Các định hướng và hệ thống phân tán tương lai

7.1.MỞ ĐẦU

Hệ phân tán được thiết kế vào những năm 70, lúc đầu chỉ với một vài hệ thống thử

nghiệm đơn giản. Kể từ đó tiến bộ lớn đã được thực hiện trong lĩnh vực này.

Ví dụ : Theo công trình nghiên cứu của Hollman.D ở “ Internet and Web use in the

US” – 1997, trong ước tính 28.8 triệu người ở Mỹ, 16 tuổi trở lên truy cập vào Internet,

sử dụng 16,4 triệu Internet, 15,1 triệu sử dụng Web, trong đó có khoảng 11.5 triệu đã sử

dụng web để mua hàng các mặt hàng.

Ngày nay, Internet đạt đến hàng triệu người trong gần một trăm quốc gia trên tất cả

các châu lục trên thế giới tham gia. Các ứng dụng thực tế đã chạy trên cả hai hệ thống tập

trung và mạng Internet. Việc chuyển sang nền tảng khác nhau đòi hỏi cung cấp bởi một

hệ thống phân tán là không thể tránh khỏi. Hệ phân tán đã được đưa ra cho mục đích này.

Chúng bao gồm minh bạch vị trí các nguồn lực, khả năng mở rộng và tùy biến của các

nền tảng hệ thống, khả năng chịu lỗi và chia sẻ các nguồn lực và phù hợp với việc phát

triển cho các ứng dụng phân tán.

Các yêu cầu đối với các ứng dụng phân tán

Nhờ vậy, nhiều dự án lớn của các nước trên thế giới đã và đang được triển khai 1

cách mạnh mẽ. Các bài toán có độ phức tạp cao mà tưởng chừng không thể giải quyết

được (Chẳng hạn : tìm kiếm, thống kê, giải mã v.v... ) nhưng giờ đây trở thành hiện thực.

Yêu cầu để xây dựng 1 ứng dụng phân tán đòi hỏi nhiều yếu tố khác nhau, và khá

phức tạp. Tuy nhiên, với các về cơ bản để thiết kế và triển khai một ứng dụng phân tán

cần thực hiện lựa chọn :

146

Page 147: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Mô hình phát triển

- Ngôn ngữ lập trình

- Cơ sở dữ liệu

- Kỹ thuật phát triển

- Quản lý bộ nhớ

- Bảo mật v.v...

7.2.NGÔN NGỮ LẬP TRÌNH PHÂN TÁN

Hiện tại các ngôn ngữ lập trình cổ điển chẳng hạn như Fortran, Pascal, và C, là không

thích hợp cho các hệ thống phân tán. Những loại ngôn ngữ này không chỉ các vấn đề như

concurrency, truyền thông, đồng bộ hóa, và tin cậy.

Hiện có ba vấn đề cơ bản mà phân biệt được chương trình phân tán từ chương trình

tuần tự (sequential program)

a. Sử dụng chế biến nhiều yếu tố (PES) Lập trinh song song (PARALLELISM.)

Parallelism có thể được bày tỏ trong một vài cách khác nhau. Một yếu tố quan trọng là

đơn vị parallelism. Các đơn vị parallelism có thể là:

1. Một quy trình.

2. Một đối tượng (trong lập trình hướng đối tượng).

3. Một tuyên bố đó.

4. Một nguyên nhân (trong logic lập trình).

Statement type Control type Sequential control Parallel control

Sequential/parallelstatement

begin S1 , S2

endparbegin S1, S2

parendfork/join

AlternativeStatement

goto, caseif C thenS1 else S2

guarded commands:

G ' C

Repetitivefor ... do doall, for all

147

Page 148: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

statement

Subprogram proceduresubroutine

proceduresubroutine

b.Hợp tác giữa các PES

Thể hiện bằng ngôn ngữ lập trình

Các đầu vào là một quá trình lặp đi lặp lại lệnh:

đầu vào:: = * [c gửi vào squash]

Các kết quả là một quá trình lặp đi lặp lại lệnh:

sản lượng:: = * [c nhận được từ squash]

148

Page 149: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Khi nhận được một lệnh được sử dụng như là một bảo vệ trong một lệnh lặp đi lặp

lại, việc thực hiện của một tương ứng bảo vệ được trì hoãn cho đến khi gửi lệnh tương

ứng được thi hành. Một lệnh nhận được với một lệnh trong một trong các bảo vệ của nó

chỉ chấm dứt khi chấm dứt gửi tương ứng.

Ví dụ : Chúng tôi có thể có các giải pháp sau đây recursive để tính f (n) = f (n - 1) × N2,

cho n> 1 và f (1) = 1.

olution .

Các giải pháp để n(f) là thực hiện song song của n +1 tất cả các quy trình :

Trong các giải pháp nêu trên n + 1 quá trình được sử dụng để giải quyết vấn đề

(xem hình 2,5). Giải pháp này chỉ được sử dụng để minh hoạ việc sử dụng các

interprocess giao tiếp và là một nghĩa là không có hiệu quả nhất. p (0) là NGƯỜI

SỬ DỤNG chương trình sẽ gửi n vào p (1) và nhận được kết quả e (n) từ p (1).

Mỗi p: (i) tính toán f (n - i + n và số lượng hoạt động p: (i) phụ thuộc vào n. i

1) cho 1.

Một có thể sử dụng chỉ có một quy trình để giải quyết cùng một vấn đề. Các

định nghĩa của e (n) có thể dễ dàng chuyển đổi thành một thủ tục recursive để tính

f (n):

149

Page 150: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Trong các giải pháp nêu trên là kết quả của f (n) được đặt trong biến ans.

Recursion là hữu ích trong deriving một giải pháp đơn giản. Tại cùng một thời gian, ít

nhất trong lý thuyết, bất kỳ recursive chương trình có thể được ghi iteratively (và ngược

lại), và trên thực tế nó có thể làm cho tinh thần để làm như thế. Có lẽ vấn đề về không

gian và thời gian hiệu quả việc sử dụng các lực lượng iteration:

c.Tiềm năng sống cho một phần vào thất bại (tính chịu lỗi)

7.2.THỦ TỤC GỌI TỪ XA

Các thông tin liên lạc cơ bản paradigm cho hệ thống phân phối là đầu vào và đầu

ra: gửi và nhận các lệnh như là thảo luận trong phần cuối cùng. Tuy nhiên, một số lập

trình thích những phong cách lập trình tập trung trong một hệ thống mà không có thông

tin liên lạc rõ ràng primitives. Gọi thủ tục từ xa (rpc) [12] là giới thiệu với chức năng như

gửi và nhận lệnh, nhưng nhìn rất nhiều địa phương như một thủ tục kêu gọi của Gốc.

Bình thường của việc triển khai thực hiện rpc là những điều sau đây: Khi một

chương trình nào cần thiết để đọc một số dữ liệu từ một tập tin, nếu như vậy đọc là một

thủ tục từ xa, một khách hàng stub được đưa vào thư viện. Cuộc gọi sau đây để đọc,

khách hàng stub gói các tham số vào một thông báo và kêu gọi một máy chủ từ xa stub

tại trang web, chặn tự trả lời cho đến khi đi lại. Khi tin nhắn đến ở máy chủ, máy chủ stub

giải nén thông báo và kêu gọi các thủ tục như là máy chủ mặc dù nó được gọi là trực tiếp

của khách hàng. Các máy phục vụ thực hiện các yêu cầu làm việc và sau đó kết quả trả về

cho người gọi (server stub). Khi máy chủ stub được kiểm soát cuộc gọi trở lại sau khi đã

hoàn thành, nó gói và các kết quả trả về nó cho khách hàng. Khi nhận được thông báo lại

150

Page 151: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

cho khách hàng, hạt nhân bản sao tin nhắn cho trâu bò và đang chờ xử lý là khách hàng

đã hết cấm ". Các khách hàng stub kết quả giải nén và sao chép nó để gọi của nó. Khi

người gọi được kiểm soát tất cả các hiểu biết nó là yêu cầu các dữ liệu có sẵn. Nó không

biết làm việc được thực hiện.

Có rất nhiều để mở rộng cơ bản rpc. Tuy nhiên, nhiều nỗ lực để gia hạn rpc để bao

gồm các tính năng song song [5] dẫn đến phức tạp NGHĨA mất lợi thế của chính rpc. Các

đề xuất của Asynchronous rpc Liskov và Shrira [36] đã được triển khai thực hiện thành

công trong các hệ thống thông tin liên lạc Mercury tại MIT. Các giới thiệu của nhẹ rpc

Bershad [10] nhằm mục đích cải thiện hiệu suất bằng cách sử dụng các khái niệm về

chuỗi. Một sợi cũng được gọi như là một quá trình nhẹ và nhiều chủ đề có thể chia sẻ

cùng một địa chỉ không gian. Trong một hệ thống như vậy (nặng) quá trình bao gồm một

địa chỉ không gian và một hoặc nhiều chủ đề của kiểm soát. Mỗi sợi có chương trình

riêng của mình cập, đăng ký các tiểu bang, và stack. Mỗi sợi có thể độc lập, thực hiện các

thủ tục các cuộc gọi từ xa. Các mở rộng của rpc đồng để hỗ trợ truy cập vào nhiều máy

chủ và để phục vụ nhiều yêu cầu đồng thời có thể được tìm thấy trong [42].

Một cơ chế gần xa đánh giá là rpc (REV) [44], cho phép một số thủ tục (mã và dữ

liệu) sẽ được encapsulated tại một trong những thủ tục để được chuyển tiếp đến một trang

web từ xa như một thủ tục gọi trong rpc. Tương ứng từ xa trang web đánh giá các thủ tục

encapsulated. Việc truyền dữ liệu trong encapsulated thủ tục có thể được sử dụng nhiều

lần của các thủ tục trong các thủ tục và trung encapsulated các kết quả sản xuất (nếu có)

không cần phải thông qua lại cho khách hàng, Tuy nhiên, nếu ai có thể không phải khai

thác các lợi ích trên, các thông tin liên lạc phí có thể tăng do sự thường xuyên truyền tải

các thủ tục (bao gồm cả mã và dữ liệu). Hơn nữa, di chuyển có thể là một vấn đề, đặc biệt

là trong một heterogeneous hệ thống, bởi vì nó không phải là một nhiệm vụ dễ dàng di

chuyển để thực thi mã từ một máy tính khác với các hướng dẫn khác nhau và đặt ra

những dữ liệu đại diện.

Gần đây, một bối cảnh hướng cuộc gọi (CDC) [48] mô hình đã được đề nghị đó

kéo dài sự nổi tiếng, rpc và kết hợp của cả hai merits rpc và REV. Giống như rpc, CDC

cho phép một bộ các thủ tục để được BỎ trên một bộ xử lý từ xa và được gọi là của cùng

một ngôn ngữ xây dựng (gọi một thủ tục) làm thủ tục địa phương. Tuy nhiên, việc triển

151

Page 152: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

khai thực hiện cơ chế khác nhau là việc làm trong CDC. Ngoài ra CDC hỗ trợ các cơ chế

cho các cá nhân gửi dữ liệu từ xa đến một trang web và nhận dữ liệu từ một trang web từ

xa. Các lập trình viên không cần

phải được nhận thức của các dữ liệu phong trào.

CDC hỗ trợ cho hai loại đối tượng dữ liệu: địa phương và từ xa. Một địa phương

đối tượng là một biến cho các địa chỉ hiện tại không gian của các bậc thầy. Một đối tượng

từ xa là một biến cho một địa chỉ của slave không gian. Để thực hiện một địa phương

hoặc từ xa đánh giá của một biểu với các biến từ xa, CDC một vấn đề thích hợp kết hợp

gửi dữ liệu từ xa đến một trang web, đánh giá từ xa,

và nhận dữ liệu từ xa, các trang web.

Cụ thể, tổng hợp cho một biểu x = E (x, ...), trong đó có ít nhất một đối tượng từ

xa. Nếu nó được đánh giá ở địa phương, các trang web địa phương cần phải nhận được

dữ liệu đầu vào (nếu có) từ xa, trang web, địa phương thực hiện việc đánh giá, và sau đó

gửi cho (kết quả) dữ liệu từ xa đến một trang web, nếu biến x là một đối tượng từ xa. Nếu

nó được đánh giá từ xa, trang web của địa phương cần phải nhập dữ liệu đầu tiên gửi đến

các trang web tương ứng từ xa. Ở xa xa, một trang web thực hiện đánh giá và địa phương,

trang web nhận được kết

quả từ các trang web từ xa, nếu x là một địa phương đối tượng. Một tình hình tương tự áp

dụng cho một địa phương hoặc từ xa đánh giá của một thủ tục void f (... ..) với các đối

tượng từ xa. Một đánh giá của địa phương xảy ra khi có các đối tượng từ xa xa, các trang

web khác nhau.

Trong trường hợp này, các địa phương nhận được trang web (từ xa) dữ liệu từ xa,

các trang web và địa phương thực hiện một đánh giá. Một đánh giá từ xa sẽ xảy ra khi tất

cả các đối tượng từ xa đến từ cùng một trang web từ xa. Trong trường hợp này các địa

phương gửi cho trang web (địa phương) để dữ liệu ở xa xa, một trang web và thực hiện

đánh giá là có.

Để hỗ trợ các hoạt động trên các chức năng sau đây có thể được yêu cầu từ một

khách hàng (một vị trí trang web) cho một máy chủ (một trang web từ xa) được giới

thiệu:

• rcreate () : tạo ra một từ xa đối tượng của một số kích cỡ tại một trang web từ xa, các

152

Page 153: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

tên đối tượng có một tên duy nhất (handler) và trả về các handler để người gọi.

• rremove () : loại bỏ xa đối tượng mà một handler được cung cấp như là một đầu vào.

• rread () : bản sao một đối tượng từ xa đến một địa phương trâu bò với cả handler cho

đối tượng và địa chỉ của trâu bò được cung cấp như là đầu vào.

• rwrite () : bản sao nội dung của các địa phương trâu bò vào một đối tượng từ xa với cả

handler cho đối tượng và địa chỉ của trâu bò được cung cấp như là đầu vào.

• rfork () : là một nonblocking gọi mà các cuộc gọi từ xa stub để tạo một thread mới và

vượt qua những địa chỉ của các đối tượng từ xa như các tham số.

Ở trên các chức năng được sử dụng để thực hiện việc đánh giá khác nhau của biểu

và thủ tục. Ví dụ, rcreate () và rwrite () có thể được sử dụng để tạo và khởi tạo từ xa các

đối tượng, tương ứng. Một cuộc gọi đến một thủ tục từ xa có thể được thực hiện bởi rfork

(). rread () có thể được sử dụng cho một khách hàng để có được giá trị của một đối tượng

từ xa, và một khách hàng có thể phát hành bộ nhớ cho một đối tượng từ xa bằng cách sử

dụng rremove.

Trong DCDL không có trường hợp nào ở trên là cơ chế bao gồm. Chúng tôi cố

gắng giữ cho đơn giản hơn về gửi và nhận được lệnh như vậy người đọc có thể tập trung

vào các thuật toán được mô tả trong DCDL.

7.3. TÍNH VỮNG MẠNG (Robustness)

Hệ thống phân phối có tiềm năng lợi thế hơn các hệ thống tập trung cao độ tin cậy

và tính sẵn có. Tuy nhiên, trách nhiệm để đạt được độ tin cậy vẫn còn dựa vào hệ điều

hành, ngôn ngữ runtime hệ thống, và các lập trình viên. Hai phương pháp tiếp cận có thể

được sử dụng để đạt được độ tin cậy trong hệ thống phân phối:

+ Lập trình lỗi khoan dung.

+ Giao thông lỗi khoan dung.

Lập trình lỗi khoan dung có thể đạt được bằng cách chuyển tiếp

phục hồi hoặc phục hồi lại. Chuyển tiếp phục hồi sẽ cố gắng để xác định lỗi và sửa lại hệ

thống nhà nước có chứa các lỗi này dựa trên kiến thức . Ngoại lệ trong xử lý ngôn ngữ

cao cấp, chẳng hạn như Ada, PL / 1, và CLU, cung cấp một cấu trúc hệ thống hỗ trợ

chuyển tiếp phục hồi. Quay trở lại báo lỗi corrects phục hồi hệ thống nhà nước của hệ

thống, để khôi phục lại một tiểu bang mà đã xảy ra trước khi biểu hiện của các lỗi. Các

153

Page 154: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

chương trình phục hồi khối [28] cung cấp một hệ thống cấu trúc như vậy. Một lỗi lập

trình-khoan dung kỹ thuật thường được sử dụng là lỗi masking. N-phiên bản chương trình

[6] sử dụng độc lập, phát triển một số phiên bản của một thuật toán. Đáp đang bình chọn

cuối cùng của hệ thống sẽ được áp dụng cho các kết quả của các phiên bản n và một kết

quả chính xác được tạo ra.

Cho đến nay không có thương mại có sẵn hỗ trợ các ngôn ngữ mà một chương

trình phục hồi lại mặc dù một số nhà nghiên cứu đã đề xuất một số ngôn ngữ skeletons

[30], [32], cũng như một số các cơ chế hỗ trợ như là phục hồi bộ nhớ cache [3] và phục

hồi metaprogram [2].

Khoan dung đề lỗi giao tiếp với các lỗi xảy ra trong quá trình giao tiếp. Khoan

dung lỗi thông tin liên lạc phụ thuộc vào cả hai chương trình được sử dụng các thông tin

liên lạc (hoặc thông qua tin nhắn-rpc) và tính chất của những lỗi lầm (có thể không ngừng

[41] hay Byzantine loại lỗi [33]).

Nói chung, có bốn loại lỗi lầm giao tiếp:

1. Một thông báo được truyền từ một node không tiếp cận với các điểm du lịch quốc tế.

2. Những tin nhắn không nhận được trong cùng một thứ tự như chúng đã được gửi.

3. Một thông báo sẽ hỏng trong quá trình truyền của nó.

4. Một bài viết được replicated của nó trong quá trình truyền.

Trường hợp 2, 3, và 4 có thể được xử lý bởi dãy số điện thoại, mã hóa dữ liệu, và

kiểm tra-sums. Tuy nhiên, nó không phải là dễ dàng để xác định nguyên nhân gây ra một

lỗi. Ví dụ, nếu một cuộc gọi chấm dứt abnormally (thời gian ra hết hạn), có bốn cùng khả

năng độc quyền.

1. Người nhận không nhận được cuộc gọi tin nhắn.

2. Trả lời tin nhắn đã không đến được với người gửi.

3. Crashed trong khi người nhận cuộc gọi, hoặc đã thực hiện và vẫn crashed hoặc không

phải là resuming việc thực hiện sau khi sụp đổ hồi phục.

4. Người nhận là vẫn thực hiện cuộc gọi, trong đó trường hợp thực hiện có thể can thiệp

với các hoạt động của các khách hàng.

Các lỗi giao tiếp đơn giản nhất là khoan dung tin nhắn thông qua bằng cách sử

dụng không thành công của mô hình cửa, nơi một PE, hoặc làm việc đúng hoặc ngưng

154

Page 155: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

hoàn toàn. Fault tolerance là đạt được những lỗi của hệ thống phát hiện theo sau

reconfiguration [4]. Sau đây là một lỗi phát hiện thủ tục được mô tả trong DCDL [47].

Thông qua các cấp độ cao ở trên DCDL thuật toán một faulty PE có thể được phát

hiện của người gửi node bằng cách kiểm tra các giá trị của tình trạng biến.

Dựa trên các thông tin liên lạc rpc có tác dụng phụ như vậy điều quan trọng là phải

xác định một cách chính xác những NGHĨA của một cuộc gọi. NGHĨA có độ tin cậy

khác nhau được đề xuất trong bối cảnh của các rpc:-chính xác một lần, lastone, tại--ít

nhất một lần, tác phẩm mới-của-nhiều, và tại hầu hết các--một lần

Trong đối tượng dựa trên hệ thống [35] 1 sự thất bại là một phần đạt được bằng cách sử

dụng các khái niệm về atomic hành động [37]. Việc atomicity atomic tài sản của các hành

động đảm bảo rằng một tính toán có thể được chấm dứt bình thường, sản xuất các kết quả

dự, hoặc được aborted, sản xuất không có kết quả. Một điều trị chi tiết của chủ đề này có

thể được tìm thấy trong Chương 11.

Bảng 2,2 [7] tóm tắt các tính năng : xử lý song song( parallelism), thông tin liên

lạc, và một phần primitives v.v... được sử dụng trong nhiều ngôn ngữ khác nhau.

Primitives Example LanguagesPARALLELISMExpressing parallelism ProcessesObjects

Ada, Concurrent C, Linda, NIL Emerald, Concurrent Smalltalk Occam

155

Page 156: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

StatementsExpressionsClausesMappingStaticDynamicMigration

Par Alfl, FX-87 Concurrent PROLOG, PARLOGOccam, StarModConcurrent PROLOG, ParAlflEmerald

COMMUNICATION Message passing Point-to-point messages RendezvousRemote procedure call One-to-many messages Data sharing Distributed data structures Shared logical variables Nondeterminism Select Statement Guarded Horn clauses

CSP, Occam, NILAda, Concurrent CDP, Concurrent CLU, LYNXBSP, StarModLinda, OrcaConcurrent PROLOG, PARLOGCSP, Occam, Ada, Concurrent C, SRConcurrent PROLOG, PARLOG

PARTIAL FAILURESFailure detection Atomic transactionsNIL

Ada, SR Argus, Aeolus, Avalon

7.4.. CÁC MÔ HÌNH THIẾT KẾ PHÂN TÁN

7.4.1.Mô hình Client- Server

Là mô hình được áp dụng rất rộng rãi trong các ứng dụng hiện có.

Client/Server là mô hình tổng quát nhất, trên thực tế thì một server có thể được nối

tới nhiều server khác nhằm làm việc hiệu quả và nhanh hơn.

- Khi nhận được 1 yêu cầu từ client, server này có thể gửi tiếp yêu cầu vừa nhận

được cho server khác (ví dụ như database server)

Thông thường chương trình server và client được thi hành trên hai máy khác nhau.

Cho dù lúc nào server cũng ở trạng thái sẵn sàng chờ nhận yêu cầu từ client nhưng trên

thực tế một tiến trình liên tác qua lại (interaction) giữa client và server lại bắt đầu ở phía

client, khi mà client gửi tín hiệu yêu cầu tới server. Các chương trình server thường đều

thi hành ở mức ứng dụng (tầng ứng dụng của mạng)

156

Page 157: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Hình

7.4.2. Mô hình phân cụm/đám(clustering)

Đối với ứng dụng phân tán đòi hỏi tính sẵn sàng, tin cậy và mở rộng cao thì mô

hình Clustering được lựa chọn.

Ở mô hình này cho phép sử dụng nhiều máy chủ kết hợp với nhau tạo thành một

cụm (cluster) có khả năng dung lỗi (fault-tolerant) nhằm nâng cao độ sẵn sàng của hệ

thống mạng. Nhiều máy chủ được kết nối với nhau theo dạng song song hay phân tán và

được sử dụng như một tài nguyên thống nhất. Nếu một máy chủ ngừng hoạt động do bị

sự cố hoặc để nâng cấp, bảo trì, thì toàn bộ công việc mà máy chủ này đảm nhận sẽ được

tự động chuyển sang cho một máy chủ khác (trong cùng một cluster) mà không làm cho

hoạt động của hệ thống bị ngắt hay gián đoạn. Quá trình này gọi là “fail-over”; Quá trình

tự động phục hồi chiếm quyền cung cấp tài nguyên của một máy chủ trong hệ thống

(cluster) sau khi hoạt động trở lại được gọi là “fail-back”.

Thiết kế và triển khai cluster cần thoả mãn các yêu cầu:

- Tính sẵn sàng cao (availability). Các tài nguyên mạng phải luôn sẵn sàng trong khả

năng cao nhất để cung cấp và phục vụ các người dùng cuối và giảm thiểu sự ngưng hoạt

động hệ thống ngoài ý muốn.

- Độ tin cậy cao (reliability). Độ tin cậy cao của cluster được hiểu là khả năng giảm

thiểu tần số xảy ra các sự cố, và nâng cao khả năng chịu đựng lỗi của hệ thống.

157

Page 158: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Khả năng mở rộng được (scalability). Hệ thống phải có khả năng dễ dàng cho việc

nâng cấp, mở rộng trong tương lai.

Hai giải pháp ứng dụng công nghệ Clustering cho hệ thống xử lý tính toán lớn như hệ

thống xử lý tính toán song song (Parallel Computing) và Clustering cho hệ thống chịu lỗi

(fault-tolerant). Cluster được tổ chức thành các nhóm gọi là các farm hay pack:

- Cluster Farm: nhóm các máy chủ chạy các dịch vụ giống nhau, nhưng không dùng

chung cơ sở dữ liệu.

- Cluster Pack: nhóm các máy chủ hoạt động cùng với nhau và chia sẻ với nhau các

phần của cơ sở dữ liệu.

Mô hình triển khai ứng dụng Clustering

7.4.3. Mô hình tính toán lưới (Grid computing)

Đối với các ứng dụng đòi hỏi phải xử lý với số lượng dữ liệu lớn, yêu cầu tìm

kiếm, sắp xếp, trích lọc, chia sẻ tài nguyên v.v.. dễ dàng, uyển chuyển trên môi trường

phân tán (chẳng hạn Internet chứa hàng tỷ trang Web) cần triển khai trên môi trường

Grid.

Việc phát triển 1 ứng dụng Grid một cách tổng quát không khác gì với việc phát

triển 1 dịch vụ Web. Sự khác biệt lớn nhất ở đây là ứng dụng Grid triển dựa trên môi

trường Grid, trong khi ứng dụng Web chỉ đơn thuần là chạy trên Web.

Các ứng dụng nổi tiếng như Google, Bing, Youtube v.v... sử dụng mô hình này.

7.4.4. Mô hình ảo hóa điện toán đám mây (Cloud computing)

158

Page 159: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Điện toán đám mây (cloud computing) được hiểu như là một mô hình điện

toán có khả năng co giãn (scalable) linh động và các tài nguyên thường được ảo

hóa được cung cấp như một dịch vụ trên mạng Internet

Như vây, các nguồn điện toán khổng lồ như phần mềm, dịch vụ ... sẽ nằm tại

các máy chủ ảo (đám mây) trên Internet thay vì trong máy tính gia đình và văn

phòng (trên mặt đất) để mọi người kết nối và sử dụng mỗi khi họ cần.

Xu hướng này sẽ giúp nhiều cho các công ty, doanh nghiệp vừa và nhỏ mà

không có cơ sở hạ tầng mạng, máy chủ để lưu trữ, quản lý dữ liệu tốt.

Mô hinh minh họa về Cloud Computing

Thuật ngữ “cloud computing” ra đời từ giữa năm 2007, cho đến nay đã

không ngừng phát triển mạnh mẽ và được hiện thực bởi nhiều công ty lớn trên thế

giới như IBM, Sun, Amazon, Google, Microsoft, Yahoo, SalesForce, …

7.5. CƠ SỞ DỮ LIỆU

- Việc lựa chọn CSDL cũng như thiết kế CSDL có 1 ý nghiã quan trọng trong : vận hành,

mở rộng cũng như duy trì, phát triển ứng dụng và xử lý (xử lý đồng thời, tái tạo v.v...) sau

này.

- Hiện có 2 mô hình CSDL được triển khai trong các ứng dụng phân tán

+ CSDL tập trung

+ CSDL phân tán

159

Page 160: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Tùy thuộc vào quy mô của ứng dụng, tính tin cậy, sẵn sàng, hiệu quả v.v... mà chúng

ta có thể lựa chọn 1 trong 2 mô hình trên.

7.6.CÔNG NGHỆ HỖ TRỢ

Nhóm 1

- Hỗ trợ lập trình thủ tục :RPC, DCE RPC,DCOM

Nhóm 2

- Hỗ trợ lập trình hướng đối tượng : CORBA, RMI

Nhóm 3

- Hỗ trợ các ứng dụng Web : XML, SOAP, Web Service, AJAX, REST

7.7. THIẾT KẾ ỨNG DỤNG PHÂN TÁN VỚI JAVA RMI

7.7.1.Giới thiệu

- Lập trình phân tán đối tượng là một trong những vấn đề nóng bỏng của công nghệ

phần mềm hiện nay.

- Làm thế nào để gọi hàm hay đối tượng ở một máy nào đó và gọi chúng từ một

máy khác ?

- Như đã trình bày ở trên, để phát triển các ứng dụng phân tán có thể sử dụng

nhiều kỹ thuật khác nhau : RPC, DCE RPC, DCOM, XML, SOAP, Web Service

v.v...

Để dễ triển khai cũng như nắm bắt quá trình thực hiện Java RMI.

7.7.2.Kỹ thuật phân tán đối tượng

Thông thường các chương trình được viết dưới dạng thủ tục hay hàm gọi. Mã lệnh

của hàm hay thủ tục được nạp thẳng vào bộ nhớ và thực thi ngay trên máy cục bộ.

Đối với các hàm (hay đối tượng) thư viện như System.out.println(), người lập trình

không cần quan tâm đến cách thức mà hàm này được cài đặt. Điều mà hầu hết các lập

trình viên quan tâm là đối số truyền vào cho hàm và kết quả trả về.

Một câu hỏi được đặt ra là có cách nào nạp nội dung của hàm hay đối tượng ở một

máy nào đó và gọi chúng từ một máy khác ? Và đây chính là nội dung của lập trình phân

tán mã lệnh.

7.7.3.Kỹ thuật RMI

160

Page 161: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Gồm các gói

- java.rmi

- java.rmi.registry

- java.rmi.server

- java.rmi.activation

- java.rmi.dgc

RMI : Remote Method Invocation--Triệu gọi phương thức từ xa.

RMI là một cơ chế cho phép một đối tượng đang chạy trên một máy Java

này có thể triệu gọi một phương thức của một đối tượng đang chạy trên một

máy Java khác.

Kỹ thuật RMI được hãng Sun hiện thực bằng cách tích hợp các thư viện hỗ

trợ xử lý phân tán vào trong Java vì thế người ta thường gọi Java RMI.

Về thực chất RMI là cơ chế gọi hàm từ xa.

7.5.4. RMI- Các khái niệm cơ bản

1. Remote Interface

Đây là lớp giao diện chứa các phương thức mà đối tượng có thể thực

hiện.

Lớp giao diện Remote được kế thừa từ lớp java.rmi.Remote.

Khai báo lớp:

import java.rmi.*;

Public interface<tên lớp giao diện> extends Remote{

Method1;

Method2;

….

}

2.Remote Method

Đây là các phương thức cho phép triệu gọi từ xa,được khai báo trong

các lớp giao diện (interface) và lớp hiện thực (implement).

Phương thức Remote phải được khai báo để bắt ngoại lệ: throws

java.rmi.RemoteException;

161

Page 162: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

3.Remote object

Chứa các phương thức cho phép hiệu quả các xử lý từ xa thông qua đối

tượng này.

Các đối tượng này được hiện thực từ lớp hiện thực (implement) trong

chương trình Java RMI.

4.Lớp Stub,Skeleton:

Mô hình hệ thống:

Trong mô hình trên, đối tương khách (client object) gi các phương thức của –stub.

Sau đó, -stub sử dụng remote layer để giao tiếp với –skel. Remote layer dùng transport

layer để thiết lập kết nối giữa local server và remote server.

Chức năng lớp Stub:

Dùng để tạo 1 cầu nối đến máy ảo JVM (Java Vitual Machine)

chứa đối tượng Remote Object.

Đóng gói các tham số do máy khách yêu cầu.

Chờ nhận kết quả xử lý.

Bóc dữ liệu trong gói nhận được.

Lớp Stub duy trì một tham chiếu đến remote object.

Chức năng lớp Skel:

Bóc dữ liệu nhận được để lấy các thông tin phục vụ cho việc

gọi hàm từ xa.

Thực hiện lời gọi hàm trên hệ thống cục bộ.

Đóng gói dữ liệu và gởi về cho Client.

162

Client Server

-Stub -Skel

RemoteLayer RemoteLayer

TransportLayer TransportLayer

Page 163: Bài giảng tóm tắt môn -Hệ phân tán

Computer1CalculatorClient

Computer2CalculatorServer

1Rmiregistry

6

5

2

3

CalculatorImpl_Stub

4

Calculator

CalculatorImpl_Skel

Bai giang tom tăt Hê phân tan

Cơ chế RMI gọi phương thức của đối tượng từ xa

1/ Đối tượng cài đặt các phương thức và gọi hàm Naming.bind( ) để đăng ký với bộ

quản lý rmiregistry trên máy chủ.

2/ Đối tượng trên máy khách muốn gọi phương thức của đối tượng trên máy chủ,

trước hết cần gọi hàm Naming.lookup() để truy tìm tham chiếu đến đối tượng ở xa theo

tên.

3/ Bộ đăng ký rmiregistry sẽ trả về tham chiếu đến đối tượng ở xa thông qua lớp

giao tiếp interface mà đối tượng ở xa cung cấp.

4/ Dựa vào lớp giao tiếp, đối tượng ở máy khách sẽ gọi các phương thức của đối

tượng trên máy chủ.

5/ Khi một phương thức được gọi, lời gọi sẽ được chuyển tiếp đến lớp trung gian

_Stub. Lớp _Stub xử lý chuyển tham số của phương thức gọi đến lớp _Skel trên máy

chủ.

6/ Lớp trung gian _Skel trên máy chủ sẽ trực tiếp yêu cầu đối tượng thực thi

phươngthức và chuyển trả kết quả về cho máy khách.

5.Bộ đăng ký rmiregistry

163

Page 164: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Dùng để tiếp nhận đăng ký tên của đối tượng.Trước khi máy khách muốn sử dụng

được các phương thức và gọi được các đối tượng ở xa nó phải liên lạc với rmiregistry để

lấy về tham chiếu đến đối tượng trên máy chủ. Dịch vụ đăng ký và truy tìm tên đối tưọng

được Java quản lý bằng các hàm giao tiếp API JNDI (Java Naming Directory Interface).

Các hàm JNDI ở máy khách (Naming.lookup( )) sẽ liên lạc với rmiregistry để nhận về

tham chiếu của đối tượng trong khi các hàm JNDI ở máy chủ (Naming.bind()) có nhiệm

vụ đăng ký tên của đối tượng với rmiregistry.

- Đăng ký đối tượng Remote Object tại Server:

1/ Tạo đối tượng Obj.

2/ Thông báo đối tượng cho JVM sửdụng: UnicastRemoteObject(Obj);

3/ Đăng ký đối tượng với NameServer:

Naming.bind(“rmi://<IP>/tênRemoteObject”,Obj);

- Truy xuất đối tượng Remote Object từ Client:

1/ Khai báo đối tượng Obj, kiểu là lớp interface.

2/ Truy tìm tham chiếu của đối tượng trên rmiregistry

Obj= (lớp interface)Naming.lookup (“rmi://<IP address>/<tên

remoteobject>”);

3/Triệu gọi phương thức từ xa của đối tượng:

Obj.RemoteMethod1;

Obj.RemoteMethod2;

Tạo lớp Stub,Skel:

-Tạo lớp implement của lớp interface.

-Biên dịch: rmic<tên lớp implement>

-Kết quả được 2 lớp:_Stub.class và _Skel.class

Mặc định rmiregistry hoạt động tại cổng 1099.

7.5.5.Các bước xây dựng chương trình RMI

1. Tạo 1 lớp giao diên.Ví dụ: HelloInterface.java

2. Tạo lớp hiên thực mô ta cac phương thức của lớp giao diên.

Ví dụ:HelloImplement.java

164

Page 165: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

3. Xây dựng chương trình Server:

- tạo đối tượng RemoteObject từ lớp Implement.

đăng ký đối tượng với máy JVM :

UnicastRemoteObject.exportObject(RemoteObject);

- đăng ký đối tượng với rmiregistry:Naming.bind(“rmi://<IP address>/tên

RemoteObject”,RemoteObject);

4. Xây dựng chương trình Client:

tạo một đối tượng Obj tham chiếu đến đối tượng từ xa thông qua:

Naming.lookup(“rmi../tênRemoteObject”);

5. Biên dịch tạolớp Stub,Skel:

rmic <tên lớp implement>

6. Biên dịch chương trính Client,Server,..

7. Chạy chương trình:

- chạy rmiregistry

- chạy server

- chạy client

Tô chức các lớp tại Client/Server

7.5.6.Các kỹ thuật hỗ trợ RMI

7.5.6.1.Kỹ thuật Activation

165

Client_Stub.classinterface.class_client.class

Server_Skel.class

_server.class

Page 166: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Khi trên máy chủ có quá nhiều đối tượng có khả năng phục vụ cho máy khách, để

sử dụng được các đối tượng này trước tiên phải xin cấp phát bộ nhớ cho tất cả các đối

tượng,sau đó mỗi đối tượng đều đặt trong trạng thái sẵn sàng chờ máy khách. Điều này

gây nên hao tốn tài nguyên của máy chủ bởi vì không phải tất cả các đối tượng đều được

máy khách yêu cầu sử dụng vào cùng một thời điểm. Vì vậy, Java cung cấp cơ chế tự

động kích hoạt (Activation) đối tượng trên máy chủ (không cần phải cấp phát bộ nhớ và

đặt đối tượng trong trạng thái sẵn sàng). Java cung cấp chương trình rmid.exe đóng

nhiệm vụ tiếp nhận sự hiện diện của đối tượng và tự động khởi tạo đối tượng khi máy

khách yêu cầu.

7.5.6.2. Kỹ thuật tuần tự hoá đối tượng (Serializable)

Java cung cấp khả năng ghi toàn bộ đối tượng xuống một tập tin. Sau đó ta có thể

đem tập tin chứa đối tượng đi khắp nơi, nếu cần thì khôi phục đối tượng về trạng thái ban

đầu, đưa đối tượng vào bộ nhớ sử dụng đúng y như tình trạng trước khi nó được lưu

xuống đĩa. Các đối tượng có khả năng này được gọi là tuần tự hoá(serializable). Lý do có

thuật ngữ trên xuất phát từ việc lưu đối tượng trên đĩa, dữ liệu lưu trên tập tin là loại dữ

liệu tuần tự. Đối tượng trong bộ nhớ có thể tham chiếu quan hệ chằng chịt với nhau

nhưng khi được lưu xuống tập tin thì bắt buộc trải phẳng đối tượng ra theo thứ tự.

Trong Java thì các đối tượng muốn có khả năng ghi và lưu trữ được thành tập tin

thì phải cài đặt giao tiếp (interface) java.io.Serializable.Lớp giao tiếp này chỉ là một lớp

rỗng thực hiện chức năng đánh dấu khả năng tuần tự hoá của đối tượng. Khi đối tượng

đã có khả năng tuần tự hoá và yêu cầu Java ghi thành tập tin, Java sẽ túm lấy tất cả các

đối tượng con chứa bên trong đối tượng cần lưu xuống đĩa.Quá trình khôi phục đối

tượng luôn đảm bảo rằng trạng thái và nội dung của đối tượng trước khi lưu được khôi

phục nguyên vẹn.Đối tưọng có thể trở về hoạt động bình thường sau khi khôi phục.

7.5.6.3. Kỹ thuật Callback

Cơ chế gọi ngược từ xa của trình chủ đến trình khách thông qua tham chiếu còn

được gọi là cơ chế callback, có nghĩa là nếu trình chủ được trình khách truy xuất từ xa

thì trình khách ngược lại cũng có thể được triệu gọi từ xa bởi trình chủ. Hay nói cách

khác trình chủ có thể tham chiếu và xử lý được trực tiếp đối tượng đang nằm trên máy

khách. Như vậy đối tượng trên trình khách yêu cầu phải cài đặt lớp giao tiếp

166

Page 167: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Remote,tiếp đến là sinh ra các lớp _Stub và _Skel,sau cùng là đăng ký với rmiregistry

để trình chủ tham chiếu đến.

7.5.6.4. Kỹ thu t t i l p đ ngậ ả ớ ộ

Java cung cấp cho ta cách thức tự động nạp lớp _Stub.class từ xa thông qua tuỳ

chọn CODEBASE khi đăng ký đối tượng trên máy chủ. Muốn như vậy máy chủ của ta

phải hỗ trợ thêm dịch vụ webserver hay nói cách khác ta phải có chương trình webserver

chạy chung trên máy vật lý nơi rmiregistry đang chạy. Bằng cách này nhà cung cấp đối

tượng chỉ cần chuyển giao cho các nhà phát triển ứng dụng phía máy khách lớp giao

tiếplà đủ. Lớp _Stub.class sẽ được tự động nạp về máy khách khi trình khách yêu cầu

rmiregistry tham chiếu đến đối tượng.

Cơ chế nạp tự động lớp trung gian _Stub.class xuống máy khách được thực thi

từng bước như sau:

1- Trình chủ (CalculatorServer) đăng ký đối tượng với rmiregistry, yêu cầu bộ

quản lý rmiregistry truy tìm lớp Stub.clas s(CalculatorImpl_Stub.class) ở địa chỉ URL:

http://<IP>/<tên thư mục chứa các tập tin .class>/ vídụ:http://172.16.11.12/myclass/

C:\RMI>java –Djava.rmi.server.codebase=” http://172.16.11.12/myclass/”

CalculatorServer

2- rmiregistry nhận được yêu cầu đăng ký đối tượng nó sẽ truy tìm lớp

CalculatorImpl_Stub.class trong biến CLASSPATH. Nếu không tìm thấy, rmiregistry sẽ

dựa vào chuỗi URL do trình CalculatorServer cung cấp yêu cầu WebServer trả về lớp

trung gian Stub này.Rmiregistry ghi nhớ lại địa chỉ URL nơi lớp trung gian

CalculatorImpl_Stub.class đang được lưu trữ.

3- Chương trình ở máy khách yêu cầu rmiregistry trả về tham chiếu của đối

tượng. Nếu phía máy khách chưa tồn tại lớp CalculatorImpl_Stub.class bộ quản lý

rmirgistry sẽ cho trình khách biết địa chỉ URL để chép về lớp trung gian này.

4- Chương trình ở máy khách yêu cầu Webserver cung cấp lớp trung gian, hay nói

chính xác hơn, trình khách yêu cầu download tậptin: http://172.16.11.12/

myclass/CalcalatorImpl_Stub.class

5- Trình khách sử dụng lớp trung gian CalculatorImpl_Stub.class và lớp giao tiếp

Calculator.class để gọi các phương thức của đối tưọng trên máy chủ.

167

Page 168: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

7.5.6.5. Kỹ thuật xuyên hầm (tunneling)

Một ứng dụng ở trình khách muốn triệu gọi được phưong thức của đối tượng

(Object) trên máy chủ thì trước hết phải liên hệ với bộ đăng ký rmiregistry để lấy về tham

chiếu của đối tượng. Dịch vụ rmiregistry mở socket mặc định ở cổng 1099 (hoặc một

cổng nào đó do bạn chỉ định) lắng nghe kết nối từ trình khách. Nhưng những cổng như

vậy không được tường lửa chấp nhận cho qua (tường lửa là phần mềm chặn ngay ngõ ra

vào của đường truyền dữ liệu kết nối với bên ngoài (Internet). Chức năng của tường lửa

là kiểm soát cách thức truyền dữ liệu và kết nối giữa mạng intranet với internet. Như vậy,

liên lạc giữa trình khách và rmiregistry trên máy chủ sẽ không thực hiện được. Tuy nhiên,

ta có thể sử dụng cơ chế trung gian thông qua cổng 80 của dịch vụ Web server. Cơ chế

truy xuất và gọi đối tượng thông qua cổng 80 của Web server còn gọi là cơ chế xuyên

hầm (tunneling).

Trình tự của cơ chế này được thể hiện như sau:

Đầu tiên, đối tượng Object của ta đăng ký với rmiregistry trên máy chủ lắng nghe

ở cổng 1099. Sau đó, trình khách gởi yêu cầu theo giao thức http đến máy chủ web server

yêu cầu truy xuất đến đối tượng Object. Tiếp theo, web server yêu cầu một đối tượng

trung gian trên máy chủ, gọi là servlet, xử lý lời gọi. Servlet liên lạc với rmiregistry lấy

về tham chiếu của đối tượng Object. Servlet triệu gọi Object và trả kết quả về cho web

server. Sau cùng là webserver trả kết quả về cho trình khách.

RMI là kỹ thuật lập trình phân tán triệu gọi đối tượng từ xa. Để xây dựng đối

tượng ở xa ta phải thiết lập một giao tiếp (interface) của đối tượng. Cài đặt giao tiếp của

đối tượng sau đó tạo ra các lớp trung gian Stub và Skel. Giao tiếp ở trình khách với đối

tượng chủ thông qua lớp Stub. Giao tiếp của đối tượng chủ với trình khách thông qua lớp

_Skel. Trước khi hoạt động đối tượng chủ phải dăng ký tên với trinh rmiregistry để trình

khách có thể truy tìm tham chiếu của đối tượng từ xa.

Các kỹ thuật hỗ trợ RMI: Tự động kích hoạt đối tượng từ xa (Activition); Tuần tự

hoá đối tượng (Seriliazable); kỹ thuật callback,kỹ thuật tải lớp động (dynamic code

loading); kỹ thuật xuyên hầm (tunneling).

Ưu điểm :

168

Page 169: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Đơn giản, dễ sử dụng

- Trong suốt: lời gọi phương thức từ xa giống lời gọi phương thức cục bộ

- Độ tin cậy cao

- An toàn vàbảo mật (do JVM cung cấp)

Nhược điểm:

- Chỉ dùng cho java

7.6. VẤN ĐỀ RMI QUA FIREWALL

- RMI cung cấp công cụ để đóng gói dữ liệu thông qua kết nối HTTP

- Sử dụng một HTTP proxy

- Các thông tin gửi đi được đóng gói trong HTTP POST request

- Đặt http.proxyHost = IP Firewall

- Cả server và client đều dưới firewall

- Thông tin trao đổi qua “đường hầm” HTTP

- Phía server cần có công cụ bóc tách

- Thường là /cgi-bin/java-rmi?forward=<port>

- Có thể là serverlet

169

Page 170: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

- Thông tin một chiều

- Giảm hiệu năng (do đóng gói bằng HTTP)

- Cgi script để thực hiện các chương trình:lỗ hổng bảo mật

- Hỗ trợ duy nhất một kết nối client-server cho một ứng dụng

- Tắt hỗ trợ khi phát hiện firewall

- java.rmi.server.disableHttp=true

7.7. QUẢN LÝ BỘ NHỚ

- Khi có yêu cầu, object được tải vào bộ nhớ

- Khi không còn client kết nối, object cần được giải phóng khỏi bộ nhớ

- Cơ chế thu hồi bộ nhớ của RMI được thực hiện tự động

- Giao diện java.rmi.server.Unreferenced và phương thức unreferenced cho phép

tùy biến quá trình thu hồi bộ nhớ

7.8.CÁC ĐỊNH HƯỚNG VÀ HỆ THỐNG PHÂN TÁN TƯƠNG LAI

Hệ thống phân tán thiết kế bắt đầu vào những năm 1970 với một vài hệ thống thử

nghiệm đơn giản. Kể từ đó tiến bộ lớn đã được thực hiện trong lĩnh vực này. Ví dụ, một

nghiên cứu trong [21] ước tính 28,8 triệu người ở Mỹ 16 năm tuổi trở lên có truy cập vào

Internet, sử dụng 16,4 triệu Internet, 11,5 triệu sử dụng Web, và 15,1 triệu đã sử dụng

web để mua hàng các mặt hàng. Ngày nay, Internet đạt đến hàng triệu người trong gần

một trăm quốc gia trên tất cả các châu lục trên thế giới. Ưng dụng thực tế đã chạy trên cả

hai hệ thống tập trung và mạng lưới. Việc chuyển sang nền tảng khác như cung cấp bởi

một hệ thống phân tán là không thể tránh khỏi và cần phải được hợp pháp hóa. Những lợi

thế của hệ thống phân phối đã được đưa ra cho mục đích này [23]. Chúng bao gồm minh

bạch vị trí các nguồn lực, khả năng mở rộng và tùy biến của các nền tảng hệ thống, khả

năng chịu lỗi và chia sẻ các nguồn lực và phù hợp cho các ứng dụng phân tán.

170

Page 171: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Gần đây đã đây, mối quan hệ đối tác ảo phân tán đã được thành lập tại Mỹ Ví dụ,

quan hệ đối tác của NSF cho cơ sở hạ tầng nâng cao tính toán (PACI) [49] có một kế

hoạch chi tiết cho việc tạo ra một Grid Công nghệ quốc gia để cung cấp truy cập máy tính

để tính toán khoa học khác nhau và môi trường giải quyết các vấn đề kỹ thuật. Chương

trình PACI hiện đang hỗ trợ hai trung tâm tại Đại học Illinois tại Urbana-Champaign và

Đại học California ở San Diego.

và nghiên cứu và xây dựng hệ thống vẫn còn phải đối mặt với một số vấn đề thiết kế mở.

Vấn đề đầu tiên là để dự đoán hành vi của một hệ thống phân tán. Yêu cầu này là

đặc biệt quan trọng đối với các ràng buộc thời gian thực. Hãy xem xét các vấn đề của dự

đoán một hành vi hệ thống phân tán trong khi nó được thực hiện. Một hệ thống như vậy

sẽ được thực hiện một số lượng lớn của các thành phần, hoạt động không đồng bộ với

nhau. Hơn nữa, vài hệ thống phân phối hoạt động trong trạng thái ổn định: tải dao động

phổ biến nhiệm vụ mới đến và nhiệm vụ hoạt động chấm dứt. Những khía cạnh làm cho

nó gần như không thể lập báo cáo chi tiết chính xác.

Vấn đề thứ hai là mở rộng quy mô và quản lý một hệ thống phân phối. Một hệ

thống được cho là phải được mở rộng nếu nó có thể xử lý việc bổ sung thêm người dùng

và tài nguyên mà không bị một tổn thất đáng kể về hiệu suất hoặc tăng độ phức tạp hành

chính. Mở rộng quy mô ảnh hưởng đến các vấn đề thiết kế sau đây [36]: đặt tên, xác thực,

ủy quyền, kế toán, giao tiếp, sử dụng các nguồn tài nguyên từ xa, và khả năng của người

sử dụng dễ dàng tương tác với hệ thống. Mỗi thành phần của quy mô giới thiệu các vấn

đề riêng của mình. Mặc dù đã được cung cấp một số gợi ý [29] để thiết kế các hệ thống

có khả năng mở rộng, cái nhìn sâu sắc hơn là cần thiết.

Vấn đề thứ ba là bảo mật và xác thực trong một hệ thống phân tán. Khi kích thước

của một hệ thống phân phối phát triển, chẳng hạn như Internet, an ninh ngày càng trở nên

quan trọng và ngày càng khó khăn để thực hiện. Hệ thống lớn hơn dễ bị tổn thương hơn

là để tấn công. Xác thực là hệ thống xác minh danh tính của người dùng. Thông thường

kỹ thuật này dựa trên mật khẩu, dựa trên máy chủ, hoặc encryptionbased.

Nhiều hệ thống để lại ủy quyền cho các máy chủ riêng lẻ. Vài hệ thống cung cấp chiếm

phân tán theo cách.

171

Page 172: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

Vấn đề thứ tư là các công cụ và môi trường hỗ trợ cho một hệ thống phân phối.

Điều này bao gồm các công cụ để xác định, phân tích, chuyển đổi, gỡ lỗi, tạo ra, và xác

minh phần mềm phân phối. Tiến bộ trong lý thuyết, các công cụ thiết thực, phương pháp,

và ngôn ngữ là rất cần thiết để xây dựng một hiệu quả và thân thiện với người sử dụng hệ

phân tán

Cuối cùng, một hội nhập của các kỹ thuật khác nhau để thiết kế một hệ thống phân

phối với khả năng chịu lỗi cải thiện đáng kể, chia sẻ tài nguyên, và hiệu suất là cần thiết.

Một hệ thống như vậy cung cấp một truy cập liền mạch từ người sử dụng tại các vị trí địa

lý khác nhau và có chức năng như một máy tính mạch lạc ảo, cho phép người sử dụng

truy cập các tài nguyên mạng lưới rộng.

BÀI TẬP CHƯƠNG VII

7.1. Client gởi chuỗi Fibonaci đến Server, yêu cầu Server xác định phần tử thứ k trong

dãy. Sau khi tìm được Server gởi kết quả về Client và hiển thị kết quả trên màn hình.

7.2. Xây dựng hệ thống quản lý các tài khoản đăng nhập. Dựa trên giao diện tại máy

khách, người dùng có thể đăng nhập, đăng ký, đổi mật khẩu, xoá tài khoản tạo máy chủ.

Thông tin tài khoản được lưu trữ trong cơ sở dữ liệu tại máy chủ cùng với các thủ tục cho

phép cập nhật cơ sở dữ liệu. Người quản trị tại máy chủ có thể hiện danh sách và quản lý

các tài khoản.

7.3. Xây dựng 3 server kết nối với nhau theo phương thức multicast.

Yêu cầu của bài toán :

1.Khi Serveri nhận thông điệp từ Client, nó sẽ chuyển thông điệp đến tất cả các Server

còn lại trong hệ, sau khi nhận phản hồi từ các Server này, dữ liệu sẽ được chuyển đến tất

cả các Server cho đến khi kết thúc thông tin.

Xây dựng chương trình Client cho phép chuyển tài nguyên và nhận phản hồi khi hoàn

tất tài nguyên.

2. Trong màn hình Server/Client hiển thị thông tin tài nguyên.

172

Page 173: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

7.4. Có 3 công ty du lịch liên kết với nhau trong việc tổ chức Tour du lịch. Dữ liệu chung

là các tour mà 3 công ty này tổ chức. Xây dựng một hệ chương trình đăng ký tour du lịch

thông qua mạng kết nối giữa 3 công ty với các chức năng sau:

- Cho phép khách hàng (Client) có thể đăng ký tour tại một máy tính bất kỳ được kết

nối vào mạng của 3 công ty.

- Các server nhận biết được hoạt động của đăng ký/hủy tour của khách hàng. Thực

hiện cập nhật dữ liệu của trên DB của nó và DB của các server khác.

- Các server có thể monitoring trạng thái các server khác

- Server cho phép cập nhật tour mới, hủy tour trong danh mục tour.

7.5. Client tạo một dãy Fibonacci F(n) với F(1) = a, F(2) = b, sau đó gởi F(1), F(2) và

k(k>2) là số phần tử trong dãy cho Server. Tiếp đó, Client gởi một số nguyên p, yêu cầu

Server cho biết p có tồn tại trong dãy không, nếu tồn tại thì nó ở số hạng thứ mấy trong

dãy.

Yêu cầu :

Viết chương trình hiển thị kết quả trên màn hình Client theo kỹ thuật RMI trong các

trường hợp sau :

1. Các giá trị a,b, k và p được nhập từ bàn phím trên cùng dòng, mỗi giá trị cách nhau

bởi dấu “;”

2. Quá trình được thực hiện nhiều lần cho đến khi dòng gởi có dạng “ stop” thì quá trình

trên chấm dứt.

3. a,b,c,d, được nhập từ file input.txt (tạo sẵn trên máy ) có dạng như sau :

File Input.txt

---o0o---

173

a b k p1 1 5 34 1 1 10 256

............. 1 1 25

346

Page 174: Bài giảng tóm tắt môn -Hệ phân tán

Bai giang tom tăt Hê phân tan

TÀI LIỆU THAM KHẢO

[1]. Colin J. Fidge (February 1988). "Timestamps in Message-Passing Systems That

Preserve the Partial Ordering " . In K. Raymond (Ed.). Proc. of the 11th Australian

Computer Science Conference (ACSC'88). pp. 56–66. Retrieved 2009-02-13.

[2].Mattern, F. (October 1988), "Virtual Time and Global States of Distributed Systems",

in Cosnard, M., Proc. Workshop on Parallel and Distributed Algorithms, Chateau de

Bonas, France: Elsevier, pp. 215–226

[3].lmeida, Paulo; Baquero, Carlos; Fonte, Victor (2008), "Interval Tree Clocks: A

Logical Clock for Dynamic Systems", in Baker, Theodore P.; Bui, Alain; Tixeuil,

Sébastien, Principles of Distributed Systems, Lecture Notes in Computer Science, 5401,

Springer-Verlag, Lecture Notes in Computer Science, pp. 259–274

[4]. Torres-Rojas, Francisco; Ahamad, Mustaque (1999), "Plausible clocks: constant size

logical clocks for distributed systems", Distributed Computing (Springer Verlag) 12 (4):

179–195

[5]. S. Mullender ed., "Distributed Systems", 2nd ed., Addison-Wesley, 1993

[6]. Jie Wu, "Distributed Systems Design", Addison-Wesley, 2008

[7]. G. Coulouris, J. Dollimore, T. Kinberg, "Distributed systems : Conceptand  Design“,

Australia. IASTED, ACTA Press

---o0o---

174