P. 1
Hệ PHÂN TÁN

Hệ PHÂN TÁN

|Views: 802|Likes:
Được xuất bản bởipqtung

More info:

Published by: pqtung on Apr 19, 2011
Bản quyền:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

05/30/2013

pdf

text

original

Sections

H PHÂN TÁN Ch ng 1 : T ng quan v h phân tán. 1.1 nh ngh a.

Có nhi u nh ngh a v h phân tán nh ngh a 1: H phân tán là t p h p các máy tính t tr c k t n i v i nhau b i m t m ng máy tính và c cài t ph n m m h phân tán. nh ngh a 2: H phân tán là m t h th ng có ch c n ng và d li u phân tán trên các tr m (máy tính) c k t n i v i nhau b i m t m ng máy tính. nh ngh a 3: H phân tán là m t t p các máy tính c l p giao ti p v i ng i dùng nh m t h th ng th ng nh t, toàn v n. Nh v y, có th nói : H phân tán = m ng máy tính + ph n m m h phân tán. Phân lo i h phân tán: Tr c ây, h phân tán c chia thành ba lo i : h i u hành h phân tán, c s d li u h phân tán và các h th ng tính toán h phân tán. Ngày nay, h phân tán c phân chia nh sau: - H phân tán mang tính h th ng: h i u hành phân tán. - H phân tán mang tính ng d ng: các h th ng truy n tin phân tán. 1.2 M c tiêu c a h phân tán. a. K t n i ng i s d ng và tài nguyên Gi i quy t bài toán chia s tài nguyên trong h th ng (resource sharing). b. Tính trong su t n gi u s r i r c và nh ng nh c i m n u có c a h phân tán i v i ng i s d ng (end-user ) và nh ng nhà l p trình ng d ng (application programmer). Theo tiêu chu n ISO cho h phân tán ISO / IS / 10746 tên là "Open distributed processing reference model" 1995 ã c th hóa tám d ng trong su t: Trong su t truy c p (Access transparency): che gi u s khác bi t v cách bi u di n và cách truy c p tài nguyên. Trong su t v v trí (Location transparency): che gi u v trí c a tài nguyên. Hai d ng trong su t v a trình bày c g i chung là trong su t m ng (network transparency). Trong su t di trú (Migration transparency): che gi u kh n ng chuy n v trí c a tài nguyên. Trong su t v vi c nh v l i (Relocation transparency): che gi u vi c di chuy n c a tài nguyên khi ang c s d ng. Trong su t nhân b n (Replication transparency): che gi u tình tr ng tình tr ng s d ng b n sao c a tài nguyên. Che gi u s che s tài nguyên t ng tranh (Concurency transparency). Trong su t s c (Failure transparency): che gi u l i h th ng n u có. Trong su t kh n ng di chuy n tài nguyên (Persistence transparency): che gi u vi c di chuy n tài nguyên t b nh ngoài vào b nh trong và ng c l i. c. Tính m (Openness). H phân tán c g i là m n u nó cung c p các d ch v theo các quy t c chu n mô t cú pháp và ng ngh a c a d ch v ó. Thông th ngôn ng ng trong h phân tán các d ch v th ng c t qua các giao di n b ng c t giao di n (Interface Definition Language- IDL). Vì th ch quan tâm

n cú pháp. Nó cho phép các d ch v khác nhau cùng chung s ng. N u các giao di n c a h phân tán c ct y và úng n. Xét hai khái ni m c a h phân tán là khái ni m liên tác (Interroperability) và khái ni m chuy n mang (portability). Liên tác: các cài t c a các h th ng ho c thành ph n h th ng t các nhà s n xu t khác nhau có th làm vi c v i nhau thông qua liên tác. Chuy n mang: nh chuy n mang mà m t ng d ng c phát tri n cho h phân tán A có th th c hi n không c n thay i gì trên m t h phân tán B khác, v i i u ki n c cài cùng giao di n nh A d. Tính co giãn (Scalability) M t h phân tán c g i là có tính co giãn n u nó thích nghi v i s thay c a h th ng. Th hi n trên các khía c nh sau: - D b sung ng i s d ng và tài nguyên h th ng a lý d n n s thay i v v trí a lý c a i quy mô

- Khi h th ng thay i quy mô v m t ng i s d ng và các tài nguyên. - H th ng có thay

i quy mô v qu n tr .

N u h phân tán có tính co giãn th ng nh h ng n hi u n ng c a h th ng (hi u n ng c a h th ng là hi u qu n ng l c ho t ng c a i t ng). Có ba gi i pháp ph d ng - n gi u - Phân tán: phân nh thành ph n h th ng và phân b chúng trên ph m vi c a h th ng (qu n lý phân c p). Ví d DNS xác nh theo cách phân c p mi n l n thành các mi n con. V i ph ng pháp này s gi i quy t c v n khi thêm ng i dùng hay tài nguyên vào h th ng. - Nhân b n: nhân b n m t thành ph n nào ó c a h th ng. Ví d tài nguyên d li u t t i các v trí khác nhau trong h th ng. 1.3 Các khái ni m ph n c ng. a. Phân lo i máy tính. Có hai lo i máy tính: - Các lo i máy tính có chia s b nh (Shared memory): các lo i máy a x lý (multiproccessor). gi i quy t v n co giãn c a h phân tán:

- Các máy tính không chia s b nh (Private memory): các h th ng multicomputors Trong m i lo i l i chia ti p theo m ng k t n i bus - based ch có m t switch - base có nhi u ng k t n i t máy này sang máy khác ng k t n i và

Hình 1: Hai cách t ch c vi x lý và b nh trong h máy tính phân tán. b. H thu n nh t / h không thu n nh t. H th ng thu n nh t: m ng máy tính cùng s d ng m t công ngh , các b x lý là nh nhau, truy c p n cùng m t b nh gi ng nhau. Th ng dùng trong h th ng có tính toán song song. H không thu n nh t: nh ng máy tính khác nhau k t n i v i nhau. 1.4 Các khái ni m ph n m m. a. DOS (distributed OS). Là h i u hành cho các h multiproccessor và các h homogenous multicomputer.

M c tiêu là n gi u và cung c p các d ch v qu n tr tài nguyên. c i m là các d ch v có th Hình 2. C u trúc chung c a DOS b. NOS (Network OS). Là h i u hành cho các h th ng heterogenous multicomputer (LAN, WAN). c th c hi n b i các l i tri u g i t xa.

M c tiêu c a NOS là cung c p các d ch v t xa.

Hình 3 . C u trúc chung c a NOS c. Middleware. Là t ng ph n m gi a t ng d ch v c a NOS và t ng ng d ng phân tán.

Hình 4. C u trúc chung c a m t h middleware

1.5 Mô hình client - server a. T ng quan v mô hình Client - server. Mô hình client - server trong m t h phân tán c phân chia thành hai nhóm chính là nhóm các server và nhóm các client. Nhóm các server ch a các d ch v c bi t. Nhóm các client là nhóm g i yêu c u n server c s d ng các d ch v ó trên server. Mô hình t ng tác t ng quát gi a client và server:

Hình 5 Mô hình t

ng tác chung gi a m t client và m t server

b Phân t ng các ng d ng. Vi c phân nh r ch ròi ch c n ng c a client và server n gi c ng r t khác bi t và không thu n nh t. Do ó ng i ta a ra ý t ng là chia thành ba m c ch c n ng: User - interface level: bao g m các ch ng trình cung c p giao di n cho phép ng d ng t ng tác v i ch ng trình ng d ng. Processing level: làm nhi m v x lý các tác v c a ng Data level: g m các ch lý. i dùng trên c s d li u ng trình ng d ng x is

ng trình duy trì các d li u mà các ch

Ch

ng 2: Truy n thông.

(Communication) 2.1 Các giao th c phân t ng (Layered protocols). M t trong nh ng mô hình phân t ng thông d ng nh t hi n nay là mô hình OSI 7 t ng. M i t ng có các giao th c riêng cho nó. - T ng ng d ng. - T ng trình di n. - T ng phiên.

- T ng v n chuy n. - T ng m ng. - T ng liên k t d li u. - T ng v t lý. M t c i ti n trong h phân tán là g p t ng trình di n và t ng phiên thành m t t ng m i là t ng middle ware. Do ó ta c ng ph i xây d ng các giao th c t ng ng cho t ng middleware này. Có 4 mô hình d ch v middleware mà ta s xét l n l - G i th t c t xa RPC (Remote Procedure Call). - Tri u g i it ng t xa (Remote Object Invocation) ng thông i p (Message - oriented Middleware) ng dòng (Stream - oriented Middleware) t sau ây:

- Middleware h - Middleware h

2.2 G i th t c t xa (Remote procedure call - RPC). 2.2.1 T ng quan v RPC. Khi m t ti n trình trên máy A mu n th c hi n m t th t c nào ó n m trên m t máy B khác thì nó s th c hi n m t l i g i th t c t xa t i máy B. Th t c ó s c th c hi n máy B d a trên các tham s c truy n n t máy A và k t qu s c truy n tr l i cho máy A t ng ng. Trong mô hình client - server thì l i g i th t c t xa - Ti n trình mu n th c hi n th t c c th c hi n qua các b c sau:

máy client s g i client stub. nh i u hành c a client ó. i u hành c a máy server.

- Client stub s t o m t b n tin và có l i g i -H -H

i u hành c a máy client s g i b n tin ó t i h i u hành c a server s g i b n tin t i server stub.

- Server stub l y các thông tin c a gói tin và g i server t - Server th c hi n công vi c - Server stub óng gói k t qu

ng ng.

c yêu c u và tr k t qu v cho server stub. ó vào b n tin r i g i h i u hành c a server ó.

- H i u hành c a máy server này s g i b n tin k t qu client. -H

óh

i u hành c a máy

i u hành c a máy client s g i b n tin cho client stub.

- Client stub s m gói tin k t qu và tr v cho client. Trong ó, client stub và server stub máy client và server là thành ph n nh m gi m nh công vi c cho client và server, làm cho h th ng ho t ng m t cách trong su t h n.

Hình 6. RPC gi a m t client và server 2.2.2 Xét chi ti t các thao tác RPC. óng gói các tham s : vi c óng gói các tham s chu n b truy n i do client stub th c hi n. Client stub s s p x p các tham s và a vào hàng i và quá trình này c g i là parameter marshaling. Các tham s c truy n i giúp cho server hi u c công vi c mình c n th c hi n t ng ng là gì xác nh l i g i n th t c thích h p. Truy n tham s : Vi c truy n tham s t client t i . Có hai cách truy n: truy n tham bi n và truy n tham tr . - Truy n tham tr : các tham s c truy n i là các giá tr c th . Các th t c cg i n s coi các tham bi n c truy n ki u tham tr nh là các bi n c kh i t o c c b , có th thay i giá tr nh ng l i không nh h ng t i giá tr g c trong l n g i sau. V n t ra khi truy n tham tr là yêu c u gi a các máy ph i có s ng nh t v vi c bi u di n d li u và các ki u d li u. - Truy n tham bi n: các tham s c truy n i là con tr hay bi n ch a a ch c a n i ch a giá tr th c c a chúng. Các th t c c g i s c n c vào a ch này tham chi u n giá tr khi tính toán. Khi giá tr này b thay i trong khi th c hi n th t c thì s c thông báo cho client và các l n g i sau s dùng giá tr m i ó. 2.3 Các mô hình RPC m r ng. 2.3.1 RPC d b (Asynchronous RPC). T t ng th c hi n là: client g i t i server l i g i th t c và ch b n tin ch p nh n t server. Phía server s g i b n tin ch p nh n v cho client thông báo ã nh n c yêu c u và b t u th c hi n yêu c u RPC ó. Lúc này client s t p t c th c hi n công vi c c a mình mà không ch k t qu t server nh RPC truy n th ng.

Hình 7. RPC d b . 2.3.2 RPC ng b tr (Deferred synchronuos RPC):

Th c hi n hai l i g i, m t t client và m t t server. Client g i t i server l i g i th t c và ch b n tin ch p nh n t server. Phía server s g i b n tin ch p nh n v cho client thông báo ã nh n c yêu c u và b t u th c hi n yêu c u RPC ó. Lúc này client s t p t c th c hi n công vi c c a mình. Khi th c hi n th t c xong, server s th c hi n l i g i t i client báo nh n l y k t qu . Client th c hi n ng t, nh n k t qu và g i l i cho server b n tin thông báo ã nh n k t qu thành công.

Hình 8. RPC 2.3.3 RPC

ng b tr . n tuy n (one- way RPC).

Sau khi th c hi n l i g i th t c t xa t i server, client không ch i thông báo nh n yêu c u thành công t server mà ti p t c th c hi n ngay các công vi c khác c a mình. ó là RPC n tuy n. 2.4 Tri u g i 2.4.1 M t it it it ng t xa (Remote object invocation).

ng phân tán (Distributed object ). ng phân tán g m các thành ph n sau: c óng gói.

- State: là các d li u ã

- Method: là các thao tác có th th c hi n trên d li u. - Interface: là n i giao ti p v i các ph ng th c c a ph ng th c s n sàng thông qua interface. it ng. Nói cách khác , các it ng cùng t

M t i t ng có th th c thi nhi u interface và c ng có th có nhi u th c thi m t interface gi ng nhau.

S c l p gi a các interface và các i t ng th c thi interface cho phép ta có th m t interface vào m t máy nào ó trong khi chính b n thân i t ng có th c trú máy khác.

Hình 9.

it

ng phân tán. c th c hi n tri u g i it ng t xa.

2.4.2 Các b

Hình 10. Tri u g i

it

ng t xa. ng th c t xa, client s g i yêu c u a vào hàng theo th t ) các ph i u hành c a máy client. nh n proxy - m t th hi n ng th c c yêu c u

Khi c n tri u g i các ph c a interface.

Proxy s marshal (s p x p và vào m t b n tin r i g i cho h H H

i u hành c a client s g i b n tin yêu c u ó

i u hành c a server.

i u hành server nh n b n tin và chuy n cho skeleton (gi ng server stub c a RPC). c g i n interface c a it ng có

Skeleton s unmarshal b n tin nh n ph ng th c t ng ng. it ng th c thi ph

ng th c r i tr k t qu v cho skeleton. c r i g i tr v cho h i u hành c a client.

Skeleton marshal k t qu nh n H

i u hành c a client nh n b n tin k t qu r i chuy n t i cho proxy.

Proxy unmarshal b n tin ó r i chuy n k t qu v cho client. Chú ý là c client va server M t s các it ng ng it ng. u s d ng interface gi ng nhau.

Compile - time object: là các i t ng trong các ngôn ng l p trình h Nó c nh ngh a nh là m t m u c a class. Runime object

Persistent Object - i t ng kiên trì: là i t ng v n t n t i ngay c khi nó không t n t i trong không gian a ch c a ti n trình nào trên server. Transient object - i t ng t c th i: là khi dùng xong nó s c gi i phóng. Tri u g i ph it ng ch t n t i khi server g i n nó, sau

ng th c t xa (RMI - remote method invocation) it ng t xa, client có th tri u g i t xa ph ng th c c a ng

Sau khi ã tri u g i m t i t ng ó.

Có hai ph ng pháp tri u g i ph ng th c t xa là: tri u g i ph và tri u g i ph ng th c t xa t nh.

ng th c t xa

Tri u g i ph ng th c t xa ng: khi c n g i n m t ph ng th c m i xác nh interface ang dùng trong l i tri u g i t xa ó. Vì th khi interface thay i, các ch ng trình ng d ng không c n ph i biên d ch l i. Tri u g i ph ng th c t xa t nh: các interface c xác nh tr c. Các ch ng trình ng d ng không thích ng c khi interface hi n hành thay i. N u interface hi n t i có s thay i thì các ch ng trình ng d ng ph i c biên d ch l i m i có th hi u 2.5 Truy n thông h ng thông i p (Message - oriented communication).

2.5.1 Các lo i truy n thông c b n Truy n thông kiên trì (Persistent communication): Th i n t là m t ví d minh h a rõ nét cho khái ni m truy n thông kiên trì.Khi m t tr m mu n g i b n tin i trên m ng, nó s g i b n tin ó n interface c a máy mình. Qua b nh m, b n tin ó c truy n i trong m ng c c b n mail server c b . Mail server này t m th i l u tr b n tin ó vào b nh m c a mình, xác nh a ch tr m ích, r i g i t i server c c b c a tr m ích t ng ng (có th i qua nhi u mail server trung gian khác). T i mail server cu i cùng, b n tin lúc này s c l u l i tr c khi phát cho tr m ích t ng ng. Truy n thông nh t th i (Transient communication): b n tin g i i ch cl ul i trong phiên trao i ó. Khi phiên trao i ã hoàn thành ho c khi k t n i b h y b thì các b n tin ó c ng b h y b trên các server. Do ó, vì m t lý do nào ó mà m t server trung gian không th chuy n ti p b n tin i c thì b n tin này s b h y b . Truy n thông ng b (Synchronous communication): khi tr m g i g i i m t b n tin thì nó s tr ng thái khóa (blocked) cho n khi nh n c thông báo b n tin ó ã n ích thành công. Truy n thông d b (Asynchronous communication): khi tr m g i g i i b n tin, nó s ti p t c th c hi n công vi c c a mình. i u này c ng có ngh a là b n tin ó cl u l i trên b nh m c a tr m g i ho c c a server c c b . 2.5.2 M t s lo i truy n thông h h p. Truy n thông d b , kiên trì: b n tin c l u tr lâu dài ho c là b nh mc a tr m g i ho c là trên server truy n thông u tiên mà b n tin ó t i. Ví d h th ng th i nt . Truy n thông ng b , kiên trì: b n tin tr ng thái blocked cho n khi b n tin c l u tr lâu dài c l u tr b nh tr m nh n, tr m g i s m tr m nh n.

Truy n thông d b , nh t th i: sau khi l u tr b n tin c n g i ra b nh m c a máy mình, tr m g i s ti p t c th c hi n công vi c c a mình. Cùng lúc, b n tin s c

truy n t i tr m nh n. Khi b n tin n c tr m nh n mà tr m nh n ó l i không làm vi c, khi ó quá trình truy n thông b h y b . Truy n thông ng b , nh t th i: b n tin không c l u tr lâu dài. Khi g i i m t b n tin, tr m g i s ch b n tin báo ã nh n thành công c a tr m nh n g i v m i th c hi n ti p công vi c c a mình.

Hình 11. M t s d ng truy n thông. 2.6 Truy n thông h ng dòng (stream- oriented communication).

2.6.1 M t s khái ni m c b n. Medium (s nhi u là media) : ch các ph ng ti n dùng thi t b l u tr , ng truy n, các ph ng ti n hi n th ... truy n thông tin nh các thông d ch

Continuous media: quan h th i gian gi a các m c là y u t c b n úng ng ngh a th c s c a d li u. Discrete media: quan h th i gian không còn là y u t c b n li u.

thông d ch úng d

Data stream: là m t chu i các n v d li u. V i data stream thì th i gian là y u t quy t nh. ki m soát th i gian ng i ta a ra ba ph ng th c truy n sau: Truy n d b (asynchronous transmission mode): các m c d li u truy n tu n t và không có ràng bu c th i gian i v i vi c truy n. Truy n ng b (synchronous transmission mode): quy m i n v d li u trong data stream. nh tr c tr t i a cho

Truy n ng th i (isochronous transmission mode): quy nh tr l n nh t và nh nh t cho m i n v d li u trong data stream. Cách truy n này óng m t vai trò quan tr ng trong vi c trình di n audio và video. Dòng n (simple stream) là dòng ch g m m t chu i n v d li u. n v d li u khác nhau. M i

Dòng ph c (complex stream): bao g m nhi u chu i chu i này c g i là m t dòng con (sub stream). 2.6.2 QoS - ch t l Ch t l ng d ch v . n các v n sau:

ng d ch v QoS liên quan

B ng thông yêu c u, t c

truy n, tr ...

Loss sensitivity: k t h p cùng v i loss interval cho phép ta xác mát thông tin có th ch p nh n c. Burst loss sensitivity: cho phép xác m t. nh bao nhiêu

nh

ct c

mt

n v d li u liên ti p có th b ng truy n cho phép

Minimum delay noticed: xác nh gi i h n th i gian tr trên bên nh n không nh n bi t c là có tr . Maximum delay variation: xác Quality of guarantee: ch s l 2.6.3 ng b các dòng. ng b : nh

tr (jitter) rung l n nh t cho phép.

ng các d ch v yêu c u c n ph i có.

Có hai lo i

ng b n gi n: th c hi n ng b gi a dòng tr và dòng liên t c. Ví d trong vi c trình di n slide có kèm âm thanh. Dòng hình nh slide là dòng tr còn dòng âm thanh là dòng liên t c, ph i ng b hai dòng này thu c k t qu trình di n nh ý mu n. ng b ph c tap: là vi c ng b gi a các dòng d li u liên t c. Ví d trong vi c xem phim tr c tuy n, c dòng âm thanh và dòng hình nh u là các dòng liên t c c n ph i c ng b . Các k thu t ng b : có hai k thu t ng b

K thu t n gi n: d a trên vi c ng b các thao tác c ghi trên các dòng d li u sao cho phù h p v i các yêu c u th i gian cho tr c và các ràng bu c v ng b .

Hình 12.

ng b

n gi n. ng b trên môi tr ng m ng d a trên c vi c ng b gi a bên

K thu t ph c t p: nh n và bên g i. Hình 13.

ng b ph c t p

Ch

ng 3 : Ti n trình

(Processes)

3.1 Lu ng (Thread). Ti n trình (Process) là ch quan tr ng. ng trình ang c th c hi n, nó coi tính trong su t là ng trình ang th c hi n, nó coi hi u n ng là nh

Lu ng (Thread): là m t hay m t ph n ch quan tr ng.

L i g i h th ng (System call): là t p l nh m r ng do h i u hành cung c p xác giao di n gi a h i u hành và các ch ng trình ng i s d ng. Blocking System call: là l i g i h th ng mà sau khi c g i b i ti n trình ng d ng thì ti n trình này b d ng l i cho n khi th c hi n xong l i g i h th ng. is

Non - Blocking System call: sau khi g i, i u khi n c tr l i cho ti n trình g i và ti n trình này ti p t c th c hi n song song v i l i g i h th ng. a lu ng (Multi thread): áp d ng cho mô hình client/server c g i là multithread server và multithread client. V i mô hình này giúp n gi n hóa khi l p trình cho server ng th i c ng t ng kh n ng x lý song song, làm t ng hi u n ng c a h th ng. Có ba ph ng pháp ti p c n xây d ng m t server:

n lu ng (single - threaded server) : non - parallelism, blocking system call. a lu ng (multi - threaded server) : parallelism, blocking system call. Máy tr ng thái h u h n (Finite State Machine): parallelism, non - blocking system call. 3.2 Di trú mã. Lý do c n ph i di trú mã: t ng hi u n ng và linh ho t c a h th ng do vi c di chuy n c a các ti n trình ang th c hi n là r t khó kh n. M t ti n trình bao g m : Ph n mã (Code Segment): ch a t p các l nh c a ti n trình ang th c hi n. Ph n tài nguyên (Resource Segment): ch a các tham chi u bên ngoài mà ti n trình ang c n n t t c các tài nguyên

Ph n th c thi (Execution segment): ch a các tr ng thái th c thi hi n hành c a ti n trình. Các mô hình di trú mã:

Hình14 Các mô hình di trú mã. Weak mobility: ch truy n ph n mã và m t s các d li u kh i ng c a ti n trình. c tính c a mô hình này là m t ch ng trình c truy n i luôn cb t ut tr ng thái kh i ng, ch yêu c u máy ích có th th c thi yêu c u (code) ó Strong mobility: truy n c ph n mã và ph n th c thi. c i m c a mô hình này là m t ti n trình ang ch y có th c d ng l i r i chuy n n m t máy khác và ti p t c th c hi n ti p ti n trình ó khó th c thi h n. Sender initiated migration (di trú máy mà ph n code c a ti n trình thành khi upload ch ng trình. Receiver initiated migration (di trú máy tính. Di trú g i. c kh i t o t phía g i) : Di trú c kh i ng t c l u tr ho c ang th c hi n. Di trú này hoàn c kh i t o t phía nh n) : Di trú mã ban n gi n h n di trú ut

c kh i t o t phía nh n th c thi

c kh i t o t phía

3.3 Tác t m m. 3.3.1 nh ngh a và phân lo i: i, c ng tác v i

nh ngh a: Tác t là m t ti n trình t tr có kh n ng ph n ng, trao các tác t khác trong môi tr ng c a nó. Phân lo i theo khái ni m di trú hóa:

Tác t di ng (mobie agent): là m t tác t n gi n có kh n ng di chuy n gi a các máy khác nhau. Trong di trú mã, các tác t di ng th ng yêu c u h tr cho mô hình di ng m nh m c dù là không c n thi t. Yêu c u này n t th c t là các tác t là t tr và có nh h ng l n nhau và v i môi tr ng c a chúng. S di chuy n m t tác t n máy khác khó có th c th c hi n n u không xét n tr ng thái th c thi c a nó. Tính di ng là c tính chung c a các tác t . Tác t thông minh (Intelligent agent): là tác t dùng qu n lý thông tin t nhi u ngu n khác nhau. Vi c qu n lý thông tin bao g m vi c s p x p, l c, thu th p... Vì các tác t này thao tác trên thông tin t nh ng ngu n v t lý khác nhau nên chúng óng vai trò r t quan tr ng. 3.3.2 Công ngh tác t .

Hình 15. Mô hình agent flatform c a FIPA ACL (Agent Communication Language): Truy n thông gi a các ti n trình tuân th theo giao th c truy n thông m c ng d ng ACL. ACL message bao g m ph n header và n i dung. Ph n header ch a tr ng xác nh m c ích c a thông i p, cùng v i tr ng xác nh ng i g i và ng i nh n. C ng nh các giao th c truy n thông, ph n n i dung c tách riêng. ACL không qui nh khuôn d ng hay ngôn ng th hi n n i dung thông i p. ACC: M t thành ph n quan tr ng trong n n tác t là kênh truy n thông tác t - ACC. Trong h u h t các mô hình cho h th ng a tác t , các tác t truy n thông b ng cách trao i thông i p. Mô hình FIPA c ng cho m t ACC qu n lý vi c truy n thông gi a các agent flatform khác nhau. C th , ACC là nguyên nhân cho vi c truy n thông i m t i i m v i các n n khác m t cách xác th c.

Ch

ng 4:

nh danh.

(Naming) 4.1 Các th c th 4.1.1 Tên, nh danh (Naming Entities). a ch . tham chi u n m t th c th trong h

nh danh và

Tên (name): là xâu các bit ho c kí t dùng phân tán.

a ch (address): khi truy c p n th c th ta s d ng i m truy c p (access point). Các i m truy c p này c ng ph i c t tên và tên ó chính là a ch c a nó. Nh v y a ch c a th c th chính là tên c a i m truy c p th c th t ng ng. nh danh (Identifiers): ây c ng là m t ki u tên th a mãn ba tính ch t sau: - M i th c th ch c bi t. Vi c nh danh m t tên ph i

c tham chi u b i duy nh t m t

nh danh ID

- M i ID tham chi u t i m t th c th . - ID ó không c gán cho m t th c th khác.

Không gian tên (Name space): dùng bi u di n t t c các tên. N u xét v m t hình h c thì ây là m t th có h ng, g m các nút và các cung, g i là th tên (naming graph). th có c u trúc: M i nút lá miêu t m t m t th c th . M i nút directory g n v i nhi u nút khác; l u tr trong b ng directory, b ng này là t p các c p (label,indetifier).

Tên thân thi n (Human-friendly name): là các tên thu c v i con ng i.

c

t m t cách d hi u, thân

4.1.2

phân gi i tên.

Không gian tên a ra k thu t l u tr và tìm ki m các tên trên nó m t cách d dàng. M t trong nh ng ph ng pháp hay dùng là s d ng ng d n tên (path name). Quá trình tìm ki m tên trong không gian tên c g i là phân gi i tên (name resolution). Quá trình phân gi i tên tr v nh danh m t nút. Closure machanism: là k thu t cho ta bi t quá trình tìm ki m tên nào và b t u âu. cb t u nh th

Linking: k thu t này s d ng bí danh (alias) - tên gi ng v i tên c a th c th . V i k thu t này cho phép nhi u ng d n cùng tham chi u n cùng m t nút trên th tên. M t cách ti p c n khác là dùng m t nút lá không ph i l u tr a ch hay tr ng thái c a th c th mà l u tr ng d n tuy t i t i th c th ó. Mounting: là k thu t c th c hi n khi tìm ki m trên hai không gian tên. M t nút th m c c g i là m t mount point ( i m g n k t) l u gi id (ho c các thông tin c n thi t cho vi c xác nh và truy nh p) m t nút th m c bên phía không gian tên c n g n k t c g i là mounting point.

Hình 16. Mouting m t không gian tên t xa nh m t giao th c truy c p Thông th ng, n u 2 không gian tên NS1, NS2 - g n k t m t th c th bên ngoài trong h phân tán, chúng ta c n t i thi u nh ng thông tin sau: - Tên c a giao th c truy nh p ( - Tên c a server (xá nh c xác nh th c hi n giao th c truy n thông)

a ch server) nh id c a nút trong không gian tên bên ngoài)

- Tên c a mounting point (xác

4.1.3 Th c hi n m t không gian tên. Phân ph i không gian tên Trong h phân tán, vi c qu n lý tên c th c hi n b ng cách phân thành các m c:

M c Global: Ch a nh ng nút th m c m c cao ( g c và con c a nó). Trong l p này các nút th m c ít thay i.Kh n ng s n sàng l p Global c yêu c u cao h n so v i các l p còn l i. N u name server c a l p này b l i thì vi c phân gi i tên không th th c hi n.

M c Administrational: Ch a nh ng nút th m c m c trung gian, nó có th c nhóm thành các nhóm, và m i nhóm có th c chia cho nh ng khu v c qu n tr khác nhau. Các nút trong nhóm này c ng ít khi thay i. Kh n ng s n sàng c a name server trong l p administrational là r t quan tr ng i v i các client do name server qu n lí. Vì n u server này l i thì có r t nhi u các tài nguyên không th truy c p M c Managerial: Ch a nh ng nút th m c m c th p. Các nút trong m c này thay i khá th ng xuyên. Ví d nh các host trong m t m ng LAN. Yêu c u i tính s n sàng c a name server c a l p managerial ít kh t khe h n so v i 2 l p trên. Song v hi u n ng thì yêu c u i v i l p này cao h n do ph i th ng xuyên c p nh t các thay i.

Hình17 . Phân ph i không gian tên Th c hi n phân gi i tên Cách 1: phân gi i tên t ng tác (interactive name sesolution),vi c phân gi i tên th c hi n b ng cách truy n và nh n qua l i gi a client và các name server các m c khác nhau. Theo cách này thì các server không trao i tr c ti p v i nhau, m i server ch phân gi i nhãn t ng ng v i l p xác nh a ch c a server ti p theo, k t qu tr l i cho client là a ch c a name server ti p theo, và vi c liên k t v i server ti p theo là do client m nhi m.

Hình 18. Phân gi i tên t

ng tác

Cách 2: phân gi i tên quy (recursive name resolution), theo cách này thì m i name server s g i k t qu n name server ti p theo mà nó tìm th y. Và c nh v y cho n khi hoàn thành phân gi i toàn b ng d n.

4.2

nh v các th c th di

ng.

4.2.1 Tên và vi c

nh v các th c th .

M i th c th u có tên và a ch t ng ng, vi c ánh x t tên n a ch c a th c th c th c hi n theo hai ph ng pháp: theo mô hình m t l p và theo mô hình hai l p. Theo mô hình m t l p: ch có m t m c ánh x gi a tên và th c th . M i l n th c th thay i v trí, ánh x c n ph i c thay i theo Theo mô hình hai l p: phân bi t tên và a ch nh Entity ID. G m hai quá trình: quá trình tìm Entity ID t ng ng t tên c a th c th c th c hi n b ng d ch v tên (naming service) và quá trình xác nh v trí c a th c th t ID c th c hi n b i d ch v nh v (Location service).

Hình 20 (a) .Mô hình m t l p (b). Mô hình hai l p. 4.2.2 Các gi i pháp nh v th c th .

Broadcasting và multicasting: g i ID c n tìm t i t t c các máy. Máy nào có th c th ó thì g i l i m t thông báo ch a a ch c a access point. V i ph ng pháp này, yêu c u t t c các ti n trình u l ng nghe yêu c u g i n. Dùng con tr (forwarding pointer): v i m t th c th di ng r i kh i v trí A c a nó n v trí B thì nó s l i m t tham chi u t i v trí m i c a nó. Nh ó, khi nh v c th c th , client có th xác nh ngay c a ch hi n t i c a th c th này nh v t a ch ó. Home-based approaches: c p phát cho m i th c th m t v trí g c (home) V i ph ng pháp này s t o ra m t home location th c th (th ng là n i th c th c t o ra ). a ch c a home Home ng kí c ng kí t i naming service. l u gi a ch hi n t i c a các

a ch ngoài c a các th c th n home tr c tiên, và sau ó ti p t c v i các v trí bên ngoài.

Client luôn

Hình . Hierarchical approaches: xây d ng m t cây tìm ki m phân c p và th c hi n phân mi n các m c khác nhau. M i domain hình dung nh m t nút th m c riêng bi t dir(d). Nút g c bi t t t c các th c th . M i th c th trong m t domain D t ng ng v i m t location record trong nút th m c dir(D), nó là a ch hi n t i c a th c th ho c m t con tr .

Hình 22 .Hierarchical approaches a ch c a m t th c th c l u trong m t nút lá, ho c m t nút trung gian. Nút trung gian ch a m t con tr n m t nút con n u và ch n u cây con n m t i nút con l u tr m t a ch c a th c th . M t th c th có th có nhi u a ch (ví d trong tr ng h p t o b n sao).

Hình 23 . C u trúc nút Nguyên lý c b n: B t u tìm ki m các nút lá c c b . N u nút ó bi t th c th , ti p theo s i xu ng phía d i theo con tr , ng c l i i lên trên. Tìm ki m lên m c cao nh t là root

Hình 24 .Nguyên lý tìm ki m 4.3 Xóa b các th c th không còn 4.3.1 c tham chi u (Unreferenced Entities).

m các tham chi u (Reference Counting). nm t it ng O, m t b m tham chi u

M i l n client t o(xóa) m t tham chi u s t ng thêm (gi m i).

4.3.2 Lên danh sách các tham chi u (Reference Listing). Skeleton duy trì m t danh sách t t c các proxy tr n nó.

ây a ra khái ni m Idempotent operation là m t thao tác nó có th l p i l p l i nhi u l n mà không nh h ng n k t qu ( ví d 1*1=1). Thông i p thêm/xóa m t proxy c a danh sách c ng g n gi ng nh t ng/gi m b m tham chi u. Các th c th chuy n tham chi u cho các th c th khác nh ng không th l y root. T p h p lo i b d a trên c s truy nguyên: ki m tra nh ng ph c t root và remove ct

ng th c có th l y

Ch

ng 5 :

ng b hóa

(Synchronization) 5.1 ng b hóa ng h (Clock Synchronization). ng h nên vi c ng b các ng h này là

Trong h phân tán,m i máy tính là m t r t c n thi t và r t khó kh n. 5.1.1 ng h v t lý (Physical Clock).

Chúng ta có nhi u cách xác nh th i gian.Ph bi n nh t là các h m th i gian theo thiên v n và ây là m t tr i.Có 23h m t ngày và 3600 giây.M t giây m t tr i c tính là 1/8600 c a m t ngày m t tr i.M t trong nh ng mô hình tính th i gian áp d ng ph ng pháp trên là Internatinal Atomic Time vi t t t là TAI. Tuy nhiên, TAI l i có m t v n là c 86400TAIs s có 3ms ch m h n so v i ng h m t tr i. th ng nh t th i gian v t l ng i ta ã a ra khái ni m th i gian ph i h p toàn c u UCT (Universal Coordinate Time). Vi n chu n qu c gia M ã l p ra tr m phát radio sóng ng n W W V g i UTC khi c n ho c nh kì.

5.1.2 Các gi i thu t

ng b hóa v t lý (Clock synchronization algorithm).

N u t t c các máy tính u có WWV Receiver thì vi c ng b chúng là d dàng vì t tc u cùng ng b v i gi chu n qu c t UTC.Tuy nhiên khi không có WWV thì vi c ng b c th c hi n b ng các gi i thu t ng b sau.

a. Gi i thu t Cristian Gi s trong h phân tán có m t máy có WWV (g i là Time server ) và chúng ta s ti n hành ng b các máy khác v i máy này.Trong kho ng th i gian /2p m i máy s g i m t thông i p n máy ch h i th i gian hi n t i. Máy ch nhanh s ph n h i b ng m t thông i p mang giá tr th i gian C(utc).Bên g i nh n c ph n h i nó s thi t l p l i clock thành C(uct).

Hình 25 . Xác

nh th i gian trong time server :

ánh giá: gi i thu t này có 2 v n

- M t là n u clock bên g i ch y nhanh thì lúc này C(uct) s nh h n th i gian hiên t i C c a bên g i..Có th gi i quy t b ng cách thay i nh p ng t l i nhanh h n ho c ch m h n cho n lúc kh p nhau. - Hai là s chênh l ch t lúc C(uct) c g i cho n lúc nh n quy t b ng cách ghi nh n kho n th i gian gi a lúc g i và nh n b. Gi i thu t Berkeley. T t ng c a gi i thu t: c có th gây l i.Gi i

Server s ch ng cho các máy khác bi t th i gian chu n c a mình CUTC sau ó s yêu c u thông tin v th i gian c a các client. Client s tr l i kho ng th i gian chênh l ch gi a nó và server. Server s tính kho ng th i gian mà các client so v i th i gian chu n c a server lúc ó và g i cho các máy khách cách i u ch nh th i gian cho phù h p.

Hình 26 .

ng b theo gi i thu t Berkeley

c. Gi i thu t trung bình Gi i thu t này th c hi n chia th i gian thành nh ng kho ng ng b c nh. Kho ng th i gian I s b t u t th i i m (To + i.R) và ch y n khi To+(i+1)R v i To là th i i m xác nh tr c và R là m t bi n h th ng . Vào th i i m b t gian c a mình . uc am il n ng b t t c các máy c a m ng s broadcast th i

Sau khi broadcast nó s b t u thu th p th i gian mà các máy khác g i n trong kho ng th i gian S. Sau ó b i giá tr l n nh t và nh nh t r i tính trung bình c a các giá tr th i gian còn l i. 5.2 ng h logic (Logical Clock)

Trong nhi u tr ng h p, gi a các ti n trình không nh t thi t ph i phù h p theo th i gian th c t mà ch c n kh p v i nhau v th i gian. Do ó ng i ta a ra khái ni m ng h logic. 5.2.1 Nhãn th i gian Lamport (Lamport timestamps). Lamport ã a. Xét a ra mô hình ng h logic u tiên cùng v i khái ni m nhãn th i gian. c" ( )

nh ngh a m i quan h "x y ra tr

Khi có A B : A x y ra tr c B thì t t c các ti n trình trong h phân tán th a thu n s ki n A x y ra tr c r i n s ki n B. A và B là hai s ki n c a cùng m t ti n trình. N u A x y ra tr c B thì A B là úng.

N u A là s ki n b n tin c g i b i m t ti n trình nào ó, còn B là s ki n b n tin ó c nh n b i m t ti n trình khác thì quan h A B là úng. Quan h x y ra tr c có tính b c c u: A B,B C thì A C.

b. Tem th i gian (Time Stamps) o th i gian t ng ng v i 4 s ki n x thì ta gán m t giá tr C(x) cho s ki n ó và th a mãn các i u ki n sau: N uA B trong cùng m t ti n trình thì C(A) < C(B). ng ng vi c g i và nh n m t thông i p thì ta có C(A)< C(B)

N u A và B bi u di n t

V i m i s ki n phân bi t (không có liên quan) thì C(A)<>C(B) 5.2.2 Vector th i gian (Vector Timestamps) Gi i thu t vector timestamp a ra m t vetor timestamp VT(a) gán cho s ki n a có thu c tính là n u Vtt(a) < VT(b) thì s ki n là nguyên nhân c a b. Trong vector th i gian m i ti n trình Pi l u gi m t Vi v i giá tr N (các ti n trình khác nhau thì N khác nhau) - Vi[i] là s các s ki n ã x y ra t i Pi

- N u Vi[j] = k ngh a là Pi bi t ã có k s ki n ã x y ra t i Pj Yêu c u: m i khi có s ki n m i x y ra ti n trình Pi thì ph i t ng Vi[i] và ph i b o vector này c g i cùng thông i p su t trong quá trình. m

Nh ó bên nh n s bi t c ã có bao nhiêu s ki n x y ra t i Pi .Quan tr ng h n phía nh n s báo cho bi t là ã có bao nhi u s ki n các ti n trình khác ã x y ra tr c khi Pi g i thông i p m.Nói cách khác timestamp VT c a n nói cho bên nh n bi t bao nhiêu s ki n ã x y ra trong các ti n trình khác tr c m. Lu t c p nh t vector - Thi t l p Vi[j] =0 v i m i j,i - S ki n x y ra Pi là nguyên nhân t ng Vi[i]

- Pi g n m t timestamp t=V[i] vào m i thông i p g i i - Khi Pi nhân c m t thông i p có t nó s thi t l p

Vi[j]=Max(Vi[j] ,t[j]) và t ng Vi[i] 5.3 Tr ng thái t ng th (Global sate). Vi c xác nh tr ng thái t ng th c a h th ng r t có ích. M t trong nh ng ph ng pháp c a ra là Ch p Nhanh Phân Tán (Distributed Snapshort) cùng khái ni m lát c t (cut).

Hình 28 .(a) Lát c t nh t quá. (b) Lát c t không nh t quán M t lát c t nh t quán c bi u di n là ng ch m g ch trong hình a. Lát c t mô t s ki n cu i cùng mà s ki n này c ghi l i cho m i ti n trình. B ng cách này nó có th ki m tra l i r ng t t c các thông i p nh n u t ng ng v i các thông i p g i c ghi l i trên ng c t. Ng c l i là lát c t không nh t quán nh hình v b: Th i i m ti n trình P¬3 nh n thông i p m2 c ghi vào lát c t nh ng vi c ghi l i này không t ng ng v i s ki n g i. 5.4 Các gi i thu t b u ch n (Election Algorithm). Khi ti n trình i u ph i g p l i thì s ph i có quá trình b u ch n ch n ra m t ti n trình khác làm i u ph i thay cho nó. Có hai gi i thu t b u ch n hay c s d ng là: 5.4.1 Gi i thu t áp V i gi thi t: o (Bully Algorithm)

M i m t ti n trình u có m t ID duy nh t.T t c các ti n trình khác c s ID và a ch c a m i ti n trình trong h th ng.

u có th bi t

Ch n m t ti n trình có ID cao nh t làm khóa.Ti n trình s kh i ng vi c b u ch n n u nh nó khôi ph c l i sau quá trình x y ra l i ho c ti n trình i u ph i b tr c tr c. Các b c c a gi i thu t: n t t c các ti n trình có ID cao h n

1.P g i thông i p ELEC

2.N u không có ti n trình nào ph n h i thì P s tr thành ti n trình i u ph i 3.N u có m t ti n trình có ID cao h n ph n h i thì nó s m nhi m vai trò i u ph i.

Hình 29 .Ví d theo gi i thu t áp

o

5.4.2 Gi i thu t vòng (Ring Algorithm) V i gi thi t : Các ti n trình có m t ID duy nh t và c s p x p trên 1 vòng tròn Logic. M i m t ti n trình có th nh n bi t c ti n trình bên c nh mình. Các b c thu t toán:

M t ti n trình b t u g i thông i p ELEC t i các nút còn t n t i g n nh t, quá trình g i theo 1 h ng nh t nh. Th m dò liên ti p trên vòng cho n khi tìm c 1 nút còn t n t i. M i m t ti n trình s g n ID c a mình vào thông i p g i. Cu i cùng s ch n ra 1 ti n trình có ID cao nh t trong s các ti n trình còn ho t và g i thông i p i u ph i cho ti n trình ó. 5.5 Lo i tr nhau (Mutual Exclusion). T ch c các "vùng t i h n" (critial section region). Có nhi u gi i thu t c xây d ng cài t i h n. Có ba gi i thu t ph bi n là: t c ch lo i tr nhau thông qua các vùng ng

5.5.1 Gi i thu t t p trung (Centralized Algorithm)

Gi thi t: m i ti n trình có m t s ID duy nh t. Ti n trình ph i là ti n trình có s hi u ID cao nh t.

c b u ch n làm i u

N i dung thu t toán: Khi m t ti n trình nào ó c n vào vùng gi i h n nó s g i m t thông i p xin c p quy n .N u không có m t ti n trình nào ang trong vùng gi i h n thì ti n trình i u ph i s g i ph n h i cho phép. Còn n u có m t ti n trình khác ang trong vùn t i h n r i thì ti n trình i u ph i s g i thông i p t ch i và a ti n trình này vào hàng i cho n khi không có ti n trình nào trong vùng t i h n n a. Khi ti n trình m t ti n trình r i kh i vùng gi i h n nó s g i m t thông i p n ti n trình i u ph i thông báo tr l i quy n truy c p.Lúc này ti n trình i u ph i s g i quy n truy c p cho ti n trình u tiên trong hàng i truy c p. ánh giá : Thu t toán này có m b o s t n t i duy nh t m t ti n trình trong vùng t i h n và ch c n 3 thông i p thi t l p là: Request -Grant - Release .Nh c i m duy nh t là n u ti n trình i u ph i b h ng thì h th ng s s p .Vì n u m t ti n trình ang trong tr ng thái Block nó s không th bi t c ti n trình i u ph i có b DEAD hay không .Trong m t h th ng l n n u ch có m t ti n trình i u ph i s xu t hi n hi n t ng th t c chai Hình 30 .ví d theo gi i thu t t p trung 5.5.2 Gi i thu t phân tán (Distributed Algorithm) Khi m t ti n trình mu n vào vùng gi i h n, tr c h t nó s t o ra m t nhãn th i gian và g i cùng v i m t thông i p n t t c các ti n trình khác. Các ti n trình khác sau khi nh n c thông i p này s x y ra ba tình hu ng: N u bên nh n không trong vùng gi i h n và c ng không mu n vào vùng gi i h n thì nó s g i thông i p OK cho bên g i N u bên nh n ang c u này. trong vùng gi i h n thay vì tr l i nó s cho vào hàng i yêu

N u bên nh n c ng mu n vào hàng th ng.

i thì nó s so sánh timestamp ai th p h n s

Sau khi g i i thông i p yêu c u vào vùng gi i h n ti n trình s i cho n khi có tr l i càng s m càng t t .Khi ã vào vùng gi i h n r i thì nó s g i thông i p OK n t t c các ti n trình khác và xóa các ti n trình trong hàng i i. Hình 31 . Ví d theo gi i thu t phân tán 5.5.3 Gi i thu t vòng v i th bài (TokenRing Algorithm).

Gi thi t t t c các ti n trình c s p x p trên m t vòng tròn logic, các ti n trình c ánh s và u bi t n các ti n trình c nh nó.

u

B t u quá trình truy n, ti n trình 0 s c trao m t th bài. Th bài này có th l u hành xung quanh vòng tròn logic. Nó c chuy n t ti n trình k n ti n trình (k+1) b ng cách truy n thông i p i m - i m. Khi m t ti n trình giành c th bài t ti n trình bên c nh nó s ki m tra xem có th vào vùng t i h n hay không. N u không có ti n trình khác trong vùng t i h n nó s vào vùng t i h n. Sau khi hoàn thành ph n vi c c a mình nó s nh th bài ra, th bài có th di chuy n t do trong vòng tròn. N u 1 ti n trình mu n vào vùng t i h n thì nó s gi l y th bài, n u không nó s cho th bài truy n qua. V n l n nh t trong thu t toán truy n th bài là th bài có th b m t, khi ó chúng ta ph i sinh l i th bài b i vì vi c dò tìm l i th bài là r t khó. Hình 32. Ví d theo gi i thu t vòng v i th bài 5.6 Các giao tác phân tán (Distributed Transactions). B n tính ch t c a giao tác i v i th gi i bên ngoài: ACID c.

Tính nguyên t (Atomic): m i giao tác di n ra không th phân chia

Tính nh t quán (Consistent): giao tác không xâm ph m các b t bi n c a h th ng. Tính cô l p (Isolated): các giao tác ng th i không gây tr ng i cho nhau. i i v i nó không ph i

Tính lâu b n (Durable): khi giao tác ã cam k t thì các thay là t m th i mà là kéo dài. 5.6.1 Phân lo i các giao tác Giao tác c chia thành các lo i sau:

Limition of Flat Transaction. Nested Transaction Distributed Transaction. 5.6.2 i u khi n t ng tranh:

Là quá trình cho phép nhi u giao tác th c hi n ng th i mà không s y ra s tranh ch p gi a các giao tác. Có hai lo i t ng tranh: T T ng tranh bi quan. ng tranh l c quan.

Ch

ng 6 : Nh t quán và nhân b n

(Consisstency & replication) 6.1 tv n . s d ng b n sao:

Có hai lý do

Dùng b n sao t ng tin c y và tính s n sàng c a h th ng: khi d li u b l i hay vì m t nguyên nhân nào ó mà không th dùng c, ta có th dùng ngay b n sao d li u ó h th ng không ph i d ng l i và tránh c tình tr ng s d ng các d li u không chính xác. Dùng b n sao t ng hi u n ng c a h th ng: có th t ng quy mô h th ng c v s l ng l n ph m vi a lý. Tuy nhiên vi c s d ng nhân b n c ng ph i tr giá, ó là tính nh t quán d li u c a h th ng b suy gi m. Do s d ng b n sao nên có th x y ra tr ng h p có s thay i trên m t d li u mà không c p nh t trên các b n sao c a nó. i u này s gây ra các sai sót trong h th ng. Do ó ph i t n nhi u công s c xây d ng các mô hình m b o tính nh t quán c a d li u. 6.2 Các mô hình nh t quán l y d li u làm trung tâm. 6.2.1 Mô hình nh t quán ch t (Strict consistency). Là mô hình th a mãn i u ki n sau: Thao tác c b t k trên m c d li u x m t giá tr t ng ng v i k t qu c a thao tác ghi g n nh t trên x ó. u tr v

S d ng khái ni m th i gian tuy t i. Th i gian tuy t i này là t ng th cho c h th ng xác nh úng khái ni m "g n nh t". i u này là khó kh thi v i h phân tán. Các kí hi u: - Wi(x)a: thao tác ghi - Ri(x)b: thao tác b. c c th c hi n b i ti n trình P(i) lên m c d li u x v i giá tr a. c th c hi n b i ti n trình P(i) lên m c d li u x cho k t qu u là null.

Gi thi t x có giá tr ban

Hình 33 (a). Mô hình nh t quán ch t. (b) Không ph i là mô hình nh t quán ch t

Do vi c lan truy n c c b c a P1 ch a t i P2 nên P2 ban u. Mô hình này là không kh thi nên

c d li u x v n là giá tr null

a ra mô hình gi m nh h n.

6.2.2 Mô hình nh t quán tu n t và mô hình nh t quán tuy n tính. a. Mô hình nh t quán tu n t . Là mô hình l ng l o h n, y u h n mô hình nh t quán ch t. Nó th a mãn các yêu c u sau: K t qu c a s th c hi n b t k là nh nhau n u thao tác c và ghi do các ti n trình th c hi n trên m c d li u m t cách tu n t và các thao tác c a m i ti n trình xu t hi n trong chu i thao tác này ch ra b i ch ng trình c a nó. Khi các ti n trình ch y ng th i trên các máy khác nhau thì cho phép s an xen c a các thao tác nh ng t t c các ti n trình u ph i nh n bi t c s an xen c a các thao tác ó là nh nhau.

Hình 34 (a). Mô hình nh t quán tu n t . (b) Không là mô hình nh t quán tu n t . b. Mô hình nh t quán tuy n tính. Là mô hình y u h n mô hình nh t quán ch t nh ng m nh h n mô hình nh t quán tu n t . Mô hình này th a mãn i u ki n sau: "K t qu c a b t kì s th c hi n nào là nh nhau n u các thao tác ( c và ghi) c a t t c các ti n trình lên d li u c th c hi n môt cách tu n t và các thao tác c a m i ti n trình xu t hi n trong chu i thao tác này ph i theo th t ã c ch ra trong ch ng trình c a nó. Thêm vào ó, n u tsop1(x) < tsop2(y) thì thao tác op1(x) ph i c th c hi n tr c op2(y) trong chu i thao tác" 6.2.3 Mô hình nh t quán nhân qu . ây là mô hình l ng l o h n mô hình nh t quán tu n t . Mô hình này phân bi t các s ki n có quan h nhân qu và các s ki n không có quan h nhân qu . N u s ki n b c gây ra ho c b tác ng b i m t s ki n a x y ra s m h n thì tính nhân qu òi h i m i th c th khác ph i "nhìn" th y a tr c r i m i th y b sau. Mô hình nh t quán nhân qu th a mãn các i u ki n sau: các thao tác ghi có quan h nhân qu ti m n ng ph i c nh n bi t b i t t c các ti n trình khác trong cùng m t th t . Các thao tác ghi ng th i có th nh n bi t c theo th t khác nhau trên các máy khác nhau.

Hình 35 Mô hình nh t quán nhân qu . 6.2.4 Mô hình nh t quán FIFO . Nh t quán FIFO còn c g i là nh t quán PRAM. ây là mô hình y u nh t vì mô hình này b qua gi i h n v tr t t c a b t kì thao tác ng th i nào. Nh t quán FIFO th a mãn : "Các thao tác ghi b i m t ti n trình n ph i c t t c các ti n trình khác nhìn th y theo cùng m t tr t t mà chúng ra. Nh ng thao tác ghi b i nhi u ti n trình khác nhau có th c th y theo nh ng tr t t khác nhau b i các ti n trình khác nhau".

Hình 36 Mô hình nh t quán FIFO. 6.2.5 Mô hình nh t quán y u (Weak consistency). Mô hình nh t quán y u không t p trung vào các thao tác trên d li u nh các mô hình trên mà chúng quan tâm n tr t t các nhóm l nh b ng vi c s d ng các bi n c ng b . Mô hình nh t quán y u có ba ‡ Vi c truy c p quán tu n t . n m t bi n c tính sau: ng b hóa c k t h p v i kho d li u là m t nh t n khi t t

‡ Không có thao tác nào lên các bi n ng b hóa c phép th c hi n cho c các thao tác ghi tr c ó c hoàn thành m i n i. ‡ Không có thao tác c hay ghi d li u lên các m c d li u nào cho n khi t t c các thao tác tr c ó lên các bi n ng b hóa

c phép th c hi n c th c hi n.

Hình 37 (a) Mô hình nh t quán y u. (b) Không là mô hình nh t quán y u 6.2.6 Mô hình nh t quán i ra (Release consistency). S d ng thêm hai l nh: l nh acquired báo mu n vào vùng t i h n (critial region) và l nh release báo gi i phóng vùng t i h n. Hai l nh này c ng có hai cách th c thi khác nhau nh : b ng m t bi n ho c b ng m t l nh c bi t. Hai thao tác này ch th c hi n v i các d li u dùng chung ch không áp d ng cho t t c các d li u. Mô hình nh t quán i ra th a mãn các i u ki n sau: - Tr c khi th c hi n m t thao tác c hay ghi lên d li u chia s thì t t c các thao tác acquire do ti n trình này th c hi n tr c ó ph i hoàn t t. - Tr c khi m t thao tác release c phép th c hi n thì t t c các thao tác do ti n trình này th c hi n tr c ó ph i c hoàn t t. c và ghi

- Truy c p vào các bi n tu n t ).

ng b hóa là nh t quán FIFO (Không yêu c u nh t quán

Hình 38 Trình t s ki n theo mô hình nh t quán i ra 6.2.7 Mô hình nh t quán i vào (Entry consistency). C ng gi ng mô hình nh t quán i ra, mô hình nh t quán i vào c ng s d ng hai l nh acquired và release khi mu n s d ng vào vùng t i h n. Nh ng các l nh này thao tác trên t ng m c d li u c a vùng d li u chia s . Ti n trình nào mu n s d ng m c d li u thì ph i i cho t t c các ti n trình khác gi i phóng m c d li u ó.

Hình 39 .Trình t s ki n theo mô hình nh t quán i vào. ghi lên m t m c d li u, client ph i có c bi n ng b hoá c a m c ó trong ch dành riêng. i u ó có ngh a là không client nào khác có th s d ng bi n ó. Khi client c p nh t xong m c d li u, thì nó gi i phóng bi n ó . Khi client mu n c m t m c d li u nào ó, nó ph i có c bi n ng b hóa k t h p ch không dành riêng. Nhi u client có th gi m t bi n ng b hóa ch không dành riêng. Khi th c hi n m t thao tác acquire, client l y v phiên b n m i nh t c a m c d li u t ti n trình cu i cùng th c hi n thao tác acquire trên bi n ó. Nh t quán i vào ph i th a mãn các i u ki n sau: - M t thao tác acquire truy c p vào m t bi n ng b hóa không c phép th c hi n trong m t ti n trình cho n khi t t c các c p nh t lên m c d li u trong ti n trình ó c th c hi n. - Tr c khi m t truy c p trong ch dành riêng c a m t ti n trình t i m t bi n b hóa c phép th c hi n thì không ti n trình nào khác còn c gi các bi n b hóa, trong ch không dành riêng thì không c n yêu c u nh v y. ng ng

- Sau khi m t truy c p trong ch dành riêng lên m t bi n ng b hóa c th c hi n thì b t kì s truy c p c a ti n trình nào khác trong ch không dành riêng lên bi n ó c ng không c th c hi n cho n khi ch nhân c a bi n ng b th c hi n xong vi c truy c p c a mình. 6.3 Các mô hình nh t quán l y client làm trung tâm. 6.3.1 Nh t quán cu i cùng (eventual consistency).

Khi m t d li u có nhi u b n sao thì yêu c u a ra là sau các thao tác c p nh t thì t t c các b n sao cu i cùng là ph i b ng nhau. Yêu c u này s c th c hi n t t n u m i client luôn ch u khó c p nh t cho các b n sao. N u các client là di ng thì vi c th c hi n yêu c u trên g p khó kh n h n. Ph i luôn m b o r ng ngay c khi client thay i v v trí v t lý thì vi c s d ng các b n sao c ng ph i chính xác. T c là các b n sao luôn luôn là nh t quán. 6.3.2 Nh t quán Mô hình nh t quán c u (monotonic - write consistency). c u ph i m b o i u ki n sau:

M t ti n trình th c hi n thao tác c trên m t m c d li u thì ph i m b o b t kì thao tác c nào c ng u cho cùng m t k t qu hay k t qu g n ây nh t. Mô hình nh t quán c u m b o r ng m t client s luôn nhìn th y nh ng d li u m i h n và không bao gi ph i nhìn th y nh ng d li u c h n nh ng gì mà mình ã c tr c ó. i u ó có ngh a là khi m t client th c hi n m t thao tác c trên m t b n sao r i ti p theo l i c trên m t b n sao khác thì b n sao th hai kia ít nh t c ng ph i c ghi gi ng v i b n sao u tiên.

Hình 41 (a) Kho d li u theo mô hình nh t quán mô hình nh t quán c u V b n ch t thì mô hình này là phiên b n h FIFO ( i m khác bi t ch nó ch áp d ng 6.3.3 Nh t quán ghi Mô hình nh t quán

c

u (b) Kho d li u không theo

ng ng i dùng c a mô hình nh t quán i v i m t client).

u (monotonic - read consistency). c u ph i m b o i u ki n sau: c hoàn thành tr cb tk

Thao tác ghi trên m c d li u x c a m t ti n trình ph i m t thao tác ghi nào khác trên x b i cùng m t ti n trình. Nói cách khác thì các thao tác ghi lên m t m c d li u s tr t t .

c s p x p m t cách có

Hình 42 (a) Kho d li u theo mô hình nh t quán ghi mô hình nh t quán ghi u.

u (b) Kho d li u không theo

6.3.4 Nh t quán

c k t qu ghi (Read - your - write consistency)

Trong mô hình nh t quán này, ng nh ng k t qu ghi m i nh t.

i dùng

c

m b o r ng s luôn

c nhìn th y c nhìn

"Tác ng c a m t thao tác ghi c a m t ti n trình lên m c d li u x s luôn th y b i m t thao tác c l n l t trên x c a cùng ti n trình ó".

Hình 43 (a) Kho d li u theo mô hình nh t quán theo mô hình c k t qu ghi 6.3.5 Nh t quán ghi theo sau

c k t qu ghi (b) Kho d li u không

c (write - follow - read consistency).

Mô hình nh t quán này ng c v i nh t quán c k t qu ghi, nó m b o r ng m t ng i dùng s luôn th c hi n thao tác ghi lên m t phiên b n d li u mà ít nh t c ng ph i m i b ng phiên b n cu i cùng c a nó. "Tác ng b i m t thao tác ghi c a m t ti n trình lên m c d li u x s luôn th y b i m t thao tác c liên ti p lên x c a cùng ti n trình ó". c nhìn

Hình 44 (a) Kho d li u theo mô hình nh t quán ghi theo sau không theo mô hình ghi theo sau c. 6.4 Các giao th c phân ph i (distribution protocols). 6.4.1 X p t các b n sao (replica placement).

c (b) Kho d li u

Có 3 ki u b n sao: Các b n sao th ng tr c: trong ti n trình hay trên máy luôn có m t b n sao. S l ng các b n sao th ng xuyên này r t ít, th ng c t p h p l i thành nhóm các máy tr m (COWs) ho c trong các h th ng ph n chi u (mirrored), th ng là các Web server hay là các server có ch a c s d li u d phòng. B n sao kh i u t server: Các b n sao này c s d ng làm t ng hi u n ng. Các b n sao này c x p t ng d a vào yêu c u c a server khác. M t ví d i n hình là chúng c các công ty web hosting s d ng nh v v trí a lý c a các b n sao g n nh t khi h c n. Các b n sao kh i u t client: Các b n sao này c t o ra t yêu c u c a client, ch ng h n nh vi c cache d li u c a m t trình duy t. Chúng c x p t ng d a vào yêu c u c a client.

Hình 45 T ch c logic c a các lo i b n sao. 6.4.2 Lan truy n các c p nh t Có 3 kh n ng lan truy n các c p nh t Ch thông báo là có c p nh t: Th ng dùng trong vi c cache d li u.Thông báo v vi c m t hi u l c c a m t giao th c.Ph ng pháp này t t khi t l các thao tác c so v i thao tác ghi nh . Truy n d li u c p nh t t b n sao này t i m t b n sao khác.Th c hi n t t khi có nhi u thao tác c. Ghi l i các thay i và t p h p các c p nh t l i truy n i (ch truy n i các thay i ch không truy n c d li u ã b thay i, vì th ti t ki m b ng thông).

c

Lan truy n các thao tác c p nh t t i các b n sao khác (nhân b n ch ng). T n ít b ng thông nh ng òi h i n ng l c x lý cao vì trong nhi u tr ng h p thì các thao tác là r t ph c t p. Các giao th c kéo và y c

y c p nh t: là giao th c do server kh i t o, trong giao th c này các c p nh t lan truy n m i khi có m t server khác yêu c u. Kéo c p nh t: là giao th c do client kh i t o khi client mu n 6.4.3 Các giao th c b nh d ch (epidemic protocol). ây là m t giao th c có th dùng Ýt th c hi n mô hình nh t quán sau cùng. c c p nh t.

ng c b n c a thu t toán b nh d ch là: t gi a các thao tác ghi - ghi. c th c hi n ch trên m t hay m t vài b n sao (càng

- Gi s r ng không x y ra xung - Các thao tác c p nh t ban ít càng t t). u

- M t b n sao ch g i các c p nh t c a nó t i m t s h u h n các hàng xóm. - Vi c lan truy n các c p nh t x y ra ch m ch p và không ph i ngay l p t c. - Cu i cùng thì m i c p nh t c ng n c t ng b n sao.

D a trên thu t toán b nh d ch mà có các mô hình lan truy n c p nh t. i u áng l u tâm trong mô hình này là các c p nh t c lan truy n t i các b n sao v i càng ít thông i p càng t t và càng nhi u b n sao b "nhi m" các lan truy n càng nhanh thì càng t t. n cu i cùng n u b n sao nào mà không lan truy n c c p nh t c a mình thì nó s b lo i b . Tuy nhiên vi c lo i b có th s không d dàng.

M t trong nh ng mô hình lan truy n c p nh t c g i là: anti entropy. Trong mô hình này, m i b n sao c nh kì l i ch n ng u nhiên m t b n sao khác và trao i nh ng tr ng thái khác nhau c a mình, sau m t th i gian thì c 2 phía s có nh ng tr ng thái gi ng h t nhau. M t mô hình khác là gossiping. Trong mô hình này m t b n sao ã c c p nh t s "k " cho m t s b n sao khác v nh ng c p nh t c a mình vì th s làm cho nh ng b n sao ó b nhi m nh ng c p nh t c a mình. 6.5 Các giao th c nh t quán. 6.5.1 Giao th c Primary-based a. Các giao th c ghi t xa V i giao th c này, t t c các thao tác ghi c th c hi n ch trên m t server t xa. Giao th c này th ng c k t h p v i các h th ng ch khách truy n th ng. M t d ng giao th c ghi t xa là giao th c Primary-Backup. Nh c i m c a giao th c này là v n hi u n ng. T t c các thao tác ghi trong giao th c u chi m khá nhi u th i gian, c bi t là khi có giao thêm giao th c ghi theo kh i c s d ng. u i m c a giao th c này là - S d ng giao th c ghi không theo kh i x lý các c p nh t.

- T t c các thao tác ghi có th c g i n các b n sao d phòng theo cùng m t th t , i u này t o i u ki n thu n l i khi th c thi mô hình nh t quán tu n t . b. Các giao th c ghi c c b Trong giao th c này m t b n sao c a m c d li u c duy trì. Khi có yêu c u thao tác ghi, m c d li u c nhân b n t server xa chuy n n server c c b . Vi c này c g i là ti p c n theo ki u di trú hoàn toàn. M tv n c t ra cho các ti n trình s d ng giao th c này c ho c ghi lên các m c d li u là: th i gian th t s nh v c m t m c d li u có th còn l n h n c th i gian ti n trình s d ng nó. M t d ng c a giao th c ghi c c b là là giao th c Primary-backup. Trong giao th c này b n chính c di trú n ti n trình ang mu n th c hi n vi c c p nh t, r i sau ó b n d phòng s c c p nh t. 6.5. 2. Các giao th c Replicated-write.

Trong các giao th c này, thao tác ghi có th Ví d :

c ti n hành t i b t kì b n sao nào.

M t ti n trình c bi t s mang các thao tác c p nh t t i t ng b n sao. M t tem th i gian Lamport có th c s d ng l y các thao tác v , tuy nhiên ph ng pháp này không c linh ho t cho các h phân tán. M t ph ng pháp khác là s d ng m t b s p x p dãy, là m t ti n trình gán các s ID duy nh t cho m i c p nh t, sau ó truy n các c p nh t t i t t c các b n sao. Giao th c nhân b n ch ng

Trong giao th c này, các thao tác ghi c truy n n t t c các b n sao, trong khi các thao tác c c th c hi n c c b . Giao th c ghi có th c truy n s d ng giao ti p point-to-point hay multicast. u i m c a giao th c này là t t c các b n sao u nh n c các thao tác cùng lúc và theo cùng m t tr t t , và nó c ng không c n ánh d u m t b n chính hay ph i g i t t c các thao tác t i m t server. Tuy nhiên giao th c này l i òi h i ph i truy n theo ki u multicast ng ho c ph i có m t b s p x p dãy t p trung mà c 2 ph ng pháp này u khó có th ti p c n m t cách linh ho t. Trong giao th c này có m t v n c n quan tâm là "tri u g i b n sao". tránh cho m t b n sao b g i quán nhi u l n, m t b i u ph i c g n m i bên (client và server), i u này m b o cho vi c ch có m t l i g i và m t l i áp c g i i. Giao th c Quorumbased V i giao th c này, các thao tác ghi c th c hi n trên m t t p nh nh t các b n sao. Khi th c hi n m t thao tác c, ng i dùng c ng ph i liên h v i m t t p các b n sao tìm ra phiên b n m i nh t c a d li u. Trong giao th c này t t c các m c d li u c k t h p v i m t s phiên b n (version number). M i l n m t m c b s a i thì s phiên b n c a nó c ng c t ng lên. Giao th c này nh ngh a ra s i bi u c và s i bi u ghi, hai i bi u này s xác nh s b n sao ph i c liên h tr c khi th c hi n thao tác c và ghi. S i bi u c ph i l n h n ½ t ng s b n sao, vì th t ng c a s i bi u c và ghi ph i l n h n t ng s b n sao. B ng cách này, m t ng i mu n th c hi n m t thao tác c thì ph i m b o vi c liên h v i ít nh t m t b n sao có ch a phiên b n m i nh t c a m c d li u. Vi c l a ch n s l ng i bi u d a vào t l gi a thao tác c và ghi cùng v i cost (bandwidth...) khi th c hi n ph ng pháp giao ti p gi a các nhóm. Cache-coherence protocols Cache là m t d ng c bi t c a nhân b n, nó c i u khi n b i client thay vì i u khi n b i server. Có nhi u gi i pháp cho vi c cache d li u. c

V i chi n l c phát hi n s c k t, là chi n l c xác nh khi nào thì s không nh t quán th t s b phát hi n và t ó lo i b nh ng d li u gây ra s không nh t quán, thì có 2 gi i pháp khác nhau. - V i gi i pháp t nh, t i th i i m biên d ch ch ng trình thì nh ng ch th ph s thêm vào phát hi n nh ng d li u không nh t quán. - V i gi i pháp ng thì t i th i i m ch y ch ng trình thì có nh ng o n mã tra tính không nh t quán c a d li u cache v i d li u c a server. c ki m

V i chi n l c ép bu c s c k t, là chi n l c xác nh xem d li u cache c gi nh t quán v i d li u l u trên server nh th nào, thì có 2 cách bu c gi li u ph i c k t v i nhau. ó là: cho server g i i m t thông i p v s không h p l m i khi d li u b thay i.

- C p nh t các k thu t lan truy n. Các thao tác ghi d li u vào cache c ti n hành nh sau:

- V i cache ch c ra (Read-only Cache) thì các c p nh t c th c hi n b i server (b ng giao th c y) ho c b i client (b ng giao th c kéo m i khi client nh n th y d li u cache ã c ). - V i cache ghi th ng (Write-Through Cache) thì client s thay cache, sau ó s g i các c p nh t n cho server. i n i dung c a

- V i cache ghi l i (Write-Back Cache) thì client trì hoãn s lan truy n các c p nh t, cho phép nhi u c p nh t c t o ra c c b sau ó g i nh ng c p nh t m i nh t cho server (vi c này có kh n ng nh h ng m nh n hi u n ng).

Ch

ng 7: Ch u l i

(Fault Tolerance) 7.1 Ch u l i và m t s khái ni m liên quan 7.1.1 M t s khái ni m c b n. a. Các khái ni m. Tính ch u l i liên quan nhi u t i khái ni m h có th tin c y c (dependable system). Thu t ng "có th tin c y c" bao g m các thu c tính sau:

Tính s n sàng (availability): h th ng có tính s n sàng là h th ng luôn s n sàng ho t ng t t m i th i i m. Tính tin c y (Reliability): m t h th ng có tính tin c y là h th ng có kh n ng ho t ng trong m t th i gian dài mà không b gián o n, không x y ra l i. Tính an toàn (Safety): h th ng có tính an toàn là h th ng mà khi x y ra l i c ng không d n t i th m h a. Các h th ng c n ph i có an toàn cao là các h th ng i u khi n. Kh n ng b o trì (Maintainability):h th ng có kh n ng b o trì là h th ng có kh n ng ph c h i l i c sau khi có l i. N u s ph c h i này di n ra t ng thì có th nói h th ng này c ng có tính s n sàng cao. Tính ch u l i còn có liên quan t i khái ni m i u khi n l i (Fault control). i u khi n l i bao g m ng n ng a l i, lo i b l i và d báo l i v i m c tiêu xây d ng thành công kh n ng ch u l i cho h th ng. b. Phân lo i l i. L i c phân chia thành các lo i sau:

L i nh t th i (Transient faults): Là lo i l i xu t hi n m t l n r i bi n m t. Cách kh c ph c: th c hi n l i ho t ng có l i này L i l p (Intermittent faults): Là lo i l i mà chúng xu t hi n, r i bi n m t, sau ó l i xu t hi n l i và c ti p t c nh th . L i này th ng gây ra các h u qu tr m tr ng vì chúng r t khó xác nh c. Cách kh c ph c: s d ng b s a l i cho h th ng (fault doctor) kh c ph c l i.

L i lâu dài (Permanent faults):Là lo i l i v n t n t i ngay c khi thành ph n gây l i ó ã c s a ch a. 7.1.2 Các mô hình l i. L is p (crash failure): khi server g p l i này thì nó s b treo, tr c ó server v n ho t ng t t cho n khi ng ng ho t ng. Khi server g p l i này, nó s không th làm gì c n a. M t ví d hay g p l i này là h i u hành c a các máy cá nhân. Khi h i u hành ng ng ho t ng thì ch còn cách duy nh t là kh i ng l i. L i b sót (omission failure): là l i mà m t server không th t i nó. Ng i ta chia nó thành hai lo i: áp ng c yêu c u g i

L i khi nh n thông i p g i t i: g p l i này, server không nh n c yêu c u ngay c t client g n nó nh t và m c dù k t n i gi a server v i client ã c thi t l p. L i khi nh n thông i p ch làm cho server không nh n bi t c các thông i p g i t i nó mà không h nh h ng n tr ng thái c a server.

L i khi g i thông i p: server v n nh n c các yêu c u, v n hoàn thành yêu c u ó nh ng vì m t lý do nào ó l i không th g i k t qu t i máy ã yêu c u. M t trong nh ng lý do th ng g p là do b nh m g i y. Trong tr ng h p g p l i này, server c n chu n b tình hu ng clien s g i l i yêu c u ã g i ó . L i th i gian (timing failure): là l i x y ra khi server ph n ng l i quá ch m, sau c th i gian cho phép. Trong m t h th ng luôn có các ràng bu c v m t th i gian. N u bên g i g i n bên nh n nhanh quá, b nh m c a bên nh n không ch a thì s gây ra l i. T ng t , server ph n ng l i ch m quá, v t quá kho ng timeout quy nh s n c ng s gây ra l i, nh h ng n hi u n ng chung c a h th ng. L i áp ng (Response failure): là l i khi server tr l i không úng. ây là m t ki u l i r t ngiêm tr ng và c phân chia thành hai lo i: L i v m t giá tr : là l i khi server tr l i l i yêu c u c a client v i giá tr không chính xác. Ví d khi s d ng các máy tìm ki m, k t qu tr v không h liên quan gì t i yêu c u c a ng i s d ng. L i v chuy n tr ng thái: là l i khi server ho t ng tr ch h ng kh i lu ng i u khi n. Có ngh a là server tr l i các yêu c u c g i t i m t cách không theo nh mong i. L i b t kì (Arbitrary failure): m t server có th t o ra m t l i b t kì nào. ây là lo i l i nguy hi m nh t. Có th có hai kh n ng x y ra: Th nh t: m t server t o ra m t k t qu sai mà không th phát hi n ra b t kì th i gian c.

Th hai: server b l i có liên k t v i các server khác t o ra m t k t qu sai. Ta có th xét m t vào l i b t kì hay g p sau : l i fail-stop, l i fail-silent và l i fail-safe. V i fail-stop, server b treo, ng ng ho t ng và có thông báo t i các ti n trình khác. V i fail-silent, server t ng t ho t ng ch m l i vì th làm cho các ti n trình không th k t thúc c, nh h ng n hi u n ng c a h th ng. L i fail-safe là l i mà khi server t o ra k t qu ng u nhiên nh ng các ti n trình nh n d ng các k t qu này là không có giá tr . 7.2 Các ph ng pháp che gi u l i.

7.2.1 Che gi u l i b ng d th a. Có ba lo i d th a: d th a thông tin, d th a th i gian và d th a v t lý. D th a thông tin : b sung thêm các bit d th a phát hi n l i và ph c h i l i. Ví d trong vi c truy n d li u th ng thêm vào các bit ki m tra ch n l , mã Haming, CRC... phát hi n l i và khôi ph c l i.

D th a th i gian: khi m t ho t ng ã c th c hi n, n u d th a th i gian nó có th c th c hi n l i. K thu t d th a th i gian phù h p khi l i là ng n và không liên t c. Ví d : khi m t giao tác b h y gi a ch ng, nó có th c th c hi n l i mà không gây nguy h i gì. D th a v t lý: b sung thêm tài nguyên 7.2.2 Khôi ph c ti n trình. a. Các v n khi thi t k .

Nguyên t c: t ch c các ti n trình gi ng nhau vào cùng m t nhóm. Ho t ng: khi nhóm nh n c thông báo thì thông báo này s c g i t i t t c các thành viên trong nhóm. N u có ti n trình nào trong nhóm b l i thì s có ti n trình khác thay th . c i m: các nhóm này có th là S l ng các nhóm là không c ng. Tính ng th hi n các m t sau:

nh: có th t o thêm hay h y b m t nhóm. nh: m t ti n trình có th

S l ng các ti n trình trong cùng m t nhóm là không c gia nh p hay r i kh i nhóm.

M t ti n trình có th là thành viên c a nhi u nhóm trong cùng th i i m. Do tính ng ó mà c n ph i a ra các c ch qu n lý nhóm: qu n lý m i quan h gi a các nhóm và qu n lý thành viên trong m t nhóm. Phân lo i nhóm: d a trên c u trúc bên trong thì nhóm Nhóm ngang hàng: - T t c các ti n trình trong nhóm là ngang hàng nhau. - Khi th c hi n m t công vi c nào ó s ph i có m t quá trình b u c (vote) nh xem ti n trình nào phù h p th c hi n công vi c ó. - u i m: khi m t ti n trình b l i thì ch làm cho kích th không nh h ng n ho t ng c a c nhóm. - Nh xác c phân thành hai lo i:

c c a nhóm gi m i ch

c i m: do ph i có quá trình b u c nên t n th i gian (delay &overhead).

Hình 46. Nhóm ngang hàng. Nhóm phân c p:

- Trong m i nhóm s có m t ti n trình gi vai trò qu n lý g i là coordinator, còn các ti n trình khác óng vai trò th c hi n (worker). Các ti n trình th c hi n ch u s i u khi n c a coordinator. - Khi có yêu c u g i n nhóm, yêu c u này s c g i t i coordinator. Coordinator s quy t nh xem ti n trình nào trong nhóm m nhi m công vi c ó m t cách phù h p nh t và chuy n yêu c u nh n c n ti n trình ó. u i m: không b tr nh ki n trúc ngang hàng. c i m: khi coordinator g p s c thì toàn b ho t ng c a nhóm s b d ng

- Nh l i.

Hình 47. Nhóm ngang hàng Các ph Ph ng pháp qu n lý thành viên trong nhóm:

ng pháp 1: dùng m t server g i là group server

Server này ch a t t c các thông tin v các nhóm và các thành viên c a t ng nhóm. u i m: hi u qu , d s d ng Nh c i m: n u server b l i thì không th qu n lý c toàn b h th ng và các nhóm có th ph i xây d ng l i t u các công vi c mình ã th c hi n. Ph ng pháp 2: ph ng pháp phân tán.

Khi ti n trình mu n gia nh p hay r i kh i nhóm thì nó ph i g i b n tin thông báo t i t t c các ti n trình khác. Ph ng pháp 3: yêu c u vi c gia nh p/ r i kh i nhóm ph i nh n. ng b v i b n tin g i hay

Khi m t ti n trình gia nh p nhóm nó s nh n t t c các b n tin t nhóm ó. Khi m t ti n trình r i kh i nhóm thì nó s không c nh n b t kì b n tin nào t nhóm ó n a và không m t thành viên nào c a nhóm c nh n c các b n tin t nó b. Che gi u l i và nhân b n. Có hai ph ng pháp nhân b n : b ng giao th c primary-based và b ng giao th c replicated-write

B ng giao th c primary-based: Các ti n trình trong nhóm t ch c theo mô hình phân c p. N u coordinator c a nhóm chính d ng ho t ng thì coordinator c a các nhóm sao l u s th c hi n các gi i thu t l a ch n nhóm chính m i (m c dù nó có th m nhi m công vi c ó). B ng giao th c replicated-write : Các ti n trình trong nhóm t ch c theo mô hình nhóm ngang hàng.V n là c n nhân b n v i s l ng là bao nhiêu 7.2.3 Che gi u l i trong truy n thông client/server tin c y. Vi c che gi u l i trong h phân tán t p trung vào tr ng h p có ti n trình b l i. Nh ng ta c ng ph i xét n tr ng h p các giao ti p b l i. Thông th ng, m t kênh giao ti p có th g p các l i: l i s p , l i b sót, l i th i gian và l i tùy ý. Vi c xây d ng m t kênh truy n thông t p trung vào che gi u l i s p và l i tùy ý. a. Truy n thông i m - i m . Trong h phân tán, truy n thông i m - i m tin c y c thi t l p b ng cách s d ng các giao th c truy n tin c y nh TCP. TCP che gi u c l i b sót b ng cách dùng c ch thông báo ACK/NACK và vi c th c hi n truy n l i. TCP không che gi u cl i s p . Khi x y ra l i s p thì k t n i TCP s b h y. Ch có m t cách che gi u l is p là h th ng ph i có kh n ng t ng t o m t k t n i m i. b. RPC khi x y ra l i và cách kh c ph c V i h th ng RPC, n m l p l i có th x y ra là: - Client không th nh v c server: Nguyên nhân gây l i là do server và client dùng các phiên b n khác nhau ho c do chính server b l i. Kh c ph c b ng cách s d ng các ngo i l (exception) b t l i nh ngôn ng java và i u khi n tín hi u (signal handle) nh ngôn ng C. H n ch c a ph ng pháp này là không ph i ngôn ng nào c ng h tr ngo i l hay i u khi n tín hi u. N u t vi t m t ngo i l hay i u khi n tín hi u thì s phá h y tính trong su t. - B m t b n tin yêu c u t client g i n server: ây là lo i l i d x lý nh t: h i u hành hay client stub kích ho t m t b m th i gian (timer) khi g i i m t yêu c u. Khi timer ã tr v giá tr 0 mà không nh n c b n tin ph n h i t server thì nó s g i l i yêu c u ó. N u bên client nh n th y có quá nhi u yêu c u ph i g i l i thì nó s xác nh n r ng server không ho t ng và s quay l i thành ki u l i "không nh v c server" - Server b l i ngay sau khi nh n hai lo i: c yêu c u t client: Lúc này l i phân chia thành ng pháp kh c

Lo i 1: Sau khi th c hi n xong yêu c u nh n c thì server b l i. Ph ph c: sau ó server s g i thông báo h ng cho client

Lo i 2: V a nh n c yêu c u t client server ã b l i ngay. Ph ng pháp kh c ph c: client ch c n truy n l i yêu c u cho. V n t ra lúc này là client không th nói cho server bi t yêu c u nào là yêu c u c g i l i.

Khi g p l i ki u này,

phía máy server s th c hi n theo 3 k thu t sau:

K thu t 1: i n khi nào server ho t ng tr l i, nó s c th c hi n yêu c u ã nh n c tr c khi l i ó. Nh th RPC th c hi n ít nh t m t l n. K thu t 2: server sau khi c khôi ph c nó s không th c hi n yêu c u nh n c tr c khi b l i mà s g i l i thông báo h ng cho client bi t client g i l i yêu c u. V i k thu t này thì RPC th c hi n nhi u l n nh t. K thu t 3: không th c hi n gì bi t gì c . Ki u này, RPC có th l n nào. Còn m b o c . Khi server b l i, client không h hay c th c hi n nhi u l n c ng có th không th c hi n c sau:

client thì có th th c hi n theo 4 chi n l

M t là: Client không th c hi n g i l i các yêu c u. Vì th không bi t bao gi yêu c u ó m i th c hi n c ho c có th không bao gi c th c hi n. Hai là: Client liên t c g i l i yêu c u: có th d n t i tr hi n nhi u l n. ng h p m t yêu c u c th c

Ba là: Client ch g i l i yêu c u nào ó khi không nh n c b n tin ACK ph n h i t server thông báo ã nh n thành công. Tr ng h p này, server dùng b m th i gian. Sau m t kho ng th i gian xác nh tr c mà không nh n c ACK thì client s g i l i yêu c u ó. B n là: Client g i l i yêu c u n u nh n c thông báo h ng t server.

- M t b n tin ph n h i t server g i tr v client: Ph ng pháp kh c ph c: thi t k các yêu c u có c tính không thay i giá tr (idempotent). Client ánh s th t cho các yêu c u, server s nh n ra c âu là yêu c u ã c g i l i nh các s t t này. Do ó server s không th c hi n l p l i các yêu c u. Tuy nhiên server v n ph i g i tr v b n tin thông báo yêu c u nào b th t l c. Ho c ta có th s d ng m t bit ph n header c a yêu c u phân bi t yêu c u nào là yêu c u ã c g i l i. - Client b l i ngay sau khi g i yêu c u t i server: Client g i yêu c u t i server r i b l i tr c khi nh n c tr l i t server g i v . Công vi c mà server th c hi n nh ng không có ích nào i nh n c g i là m t "orphan". Nh th s gây lãng phí chu kì CPU.

Có 4 gi i pháp

c

a ra trong tr

ng h p này là:

M t là: tr c khi g i i yêu c u nào ó, client stub s t o ra m t b n ghi xác nh công vi c c n th c hi n này và l u l i. Nh th , khi c ph c h i sau khi l i, client s l y l i b n ghi ó và và vi c th c hi n các orphan ang di n ra s d ng l i. Ph ng pháp này có nhi u nh c i m: Chi phí trang b a l u l i m i b n ghi cho m i RPC. Orphan có th t mình th c hi n RPC t o ra m t grandorphan nên r t khó xác nh. Hai là: chia th i gian ho t ng liên t c c a client thành các s liên t c g i là các th i kì. M i khi các clietn khôi ph c tr l i thì s ch th i kì này l i t ng lên m t n v . Lúc này clietn s g i thông báo n t t c các máy khác thông báo s th i kì m i c a mình. Khi nh n d c thông báo này thì các orphan s d ng l i Ba là: khi nh n c b n tin thông báo th i kì m i, m i máy s ki m tra xem mình có ang th c hi n m t tính toán t xa nào ó không. N u có, máy ó s c xác nh xem client nào ã g i yêu c u này. N u không xác nh c thì quá trình tính toán này s b h yb . B n là: quy nh m i RPC ch có m t kho ng th i gian xác nh T th c hi n, sau khi g p l i, clietn s ph o i thêm m t kho ng th i gian T tr c khi kh i ng l i nh n các orphan. V n t ra là ph i l a ch n giá tr T nh th nào cho h p lý. 7.2.4 Che gi u l i trong truy n thông nhóm tin c y (dùng multicasting) a. Multicasting tin c y c b n (Basic Reliable-multicasting). Sau khi các ti n trình ã c phân nhóm thì m t ti n trình khác mu n th c hi n multicast t c là s g i b n tin t i t t c các ti n trình trong nhóm ó. Multicast tin c y là ph i có c ch m b o b n tin ó n c t t c các thành viên trong nhóm. Khi x y ra l i thì s áp d ng ph ng pháp sau che gi u l i: Ph ng pháp: ánh s các b n tin c n g g i và v n l u ó cho n khi nh n nh n xác nh là b m t m t b n tin nào c u g i l i. Và thông th ng, bên g i s gian xác nh nào ó mà nó không nh n i. Các b n tin c l u t i m t buffer c a bên c b n tin ACK báo v t bên nh n. N u bên ó thì nó s g i v m t b n tin NACK yêu t ng g i l i b n tin sau trong kho ng th i c b n tin ACK báo v .

Hình 48. (a). Truy n b n tin (b). B n tin ph n h i b. Multicast tin c y m r ng. t ng hi u qu công v c khi làm vi c v i m t s l ng l n các ti n trình thì a ra mô hình multicast tin c y m r ng. V i mô hình này s không g i tr v b n tin ACK báo nh n thành công mà ch g i tr v cho ti n trình nh n b n tin NACK thông báo

khi có l i truy n.Vi c này Multicasting).

c th c hi n b ng giao th c SRM (Scalable Reliable

có th th c hi n multicast tin c y cho m t nhóm l n các ti n trình thì th c hi n t ch c các nhóm theo c u trúc d ng cây. C u trúc c a cây : - G c là nhóm ch a ti n trình g i. - Các nút là các nhóm có ch a ti n trình nh n.

Hình 49. Multicast tin c y d ng cây Vi c th c hi n multicast c th c hi n cho các nhóm nh ó. Vi c chia thành các nhóm nh h n này cho phép s d ng các k ch b n multicast tin c y cho t ng nhóm nh ó. Trong m i nhóm nh s c m t ti n trình làm coordinator. Coodinator có kh n ng i u khi n vi c truy n l i khi nh n c thông báo truy n l i. Coodinator c a m i nhóm s có b m (history buffer) riêng. - N u Coordinator c a m i nhóm không nh n truy n l i t i coordinator c a nút cha nó. c b n tin m thì nó s g i yêu c u

- Trong k ch b n truy n tin c y s d ng b n tin ACK thì khi coordinator nh n thành công m t b n tin m nó s g i b n tin ACK t i coordinator c a nút cha nó. - N u coordinator c a m t nhóm nh n c b n tin ACK báo nh n thành công b n tin m c a t t c các ti n trình trong nhóm g i v thì nó s xóa b n tin m kh i b mc a nó. ánh giá: v i ph ng pháp phân cáp này thì x y ra v n v c u trúc cây. R t nhi u tr ng h p yêu c u cây ph i có c u trúc ng nên ph i có m t c ch tìm ng cho cây này c. Multicast nguyên t (Atomic multicast ). T t ng chính: khi m t ti n trình mu n g i b n tin cho m t t p các ti n trình khác theo ki u multicast, nó s không g i b n tin t i t t c các ti n trình c a nhóm ch a các ti n trình nh n mà ch g i n m t nhóm nh các ti n trình c n nh n b n tin ó. V n không t ra: ph i m b o g i c b n tin t i t t c các ti n trình trong nhóm ho c c g i t i b t kì ti n trình nào n u m t ti n trình trong nhóm b l i s p .

M t s thu t ng :

Group view (khung nhìn nhóm): ý t ng chính c a atomic multicast là m t ti n trình th c hi n multicast b n tin m thì ch th c hi n liên k t t i m t danh sách các ti n trình c n nh n b n tin m ó ch không ph i toàn b nhóm. Danh sách các ti n trình này t ng ng v i m t khung nhìn nhóm (group view)- m t t p nh các ti n trình c a m t nhóm l n. View change (thay i khung nhìn): khi ang th c hi n multicast t i m t group view G mà có m t ti n trình xin gia nh p nhóm hay xin ra kh i nhóm thì s thay i vc này s c g i t i t t c các thành viên còn l i trong nhóm. Do ó, các ti n trình còn l i trong G s nh n c hai b n tin: m: b n tin c n nh n vc: b n tin thông báo có thay N u t t c các ti n trình trong G m c th c hi n. i trong G. u ch a nh n c vc thì thao tác multicast b n tin c vc thì ph o m b o r ng không

N u m t trong s các ti n trình trong G ã nh n m t ti n trình nào khác trong G c nh n m n a ng b o (Virtual sychronous).

T t ng chính: m b o b n tin ch c multicast t i t t c các ti n trình không có l i. N u ti n trình g i b s p trong quá trình multicast thì quá trình này b h y ngay dù b n tin ó ã c g i t i m t vài ti n trình khác trong nhóm r i.

Hình 50 Nguyên lý

ng b

o

1: P1 tham gia vào nhóm ã có s n ba thành viên: P2,P3, P4. 2: P2 th c hi n multicast b n tin t i t t c các ti n trình còn l i. 3: P1 th c hi n multicast b n tin t i t t c các ti n trình còn l i. 4: P3 multicast t i ti n trình P2 , P4 thành công nh ng P1 ch a nh n c thì P3 b s p . Lúc này ng b o s h y t t c các b n tin ã c g i tr c ó cho P2, P4, thi t l p tr ng thái tr c khi s p c a P3 là ch a g i b n tin dó. 5: nhóm lúc này ch còn P1, P2, P4 và P4 th c hi n multicast b n tin, 6: P3 c khôi ph c và xin gia nh p l i nhóm.

7: P3 gia nh p nhóm thành công. 7.3 Cam k t phân tán.

Mô hình thi t l p cam k t ph i là mô hình phân c p và coordinator lãnh trách nhi m thi t l p cam k t phân tán. cam k t m t pha n gi n, coordinator thông báo v i t t c các thành viên còn l i ho c là th c hi n ho c là không th c hi n m t thao tác nào ó. N u thành viên nào ó không th c hi n c c ng không th báo l i cho coordinator bi t. Do ó ng i ta a mô hình m i ó là cam k t hai pha và cam k t ba pha 7.3.1 Cam k t hai pha. Xét m t giao d ch phân tán v i các thành viên là m t t p các ti n trình ch y khác v i gi thi t không có l i x y ra. Cam k t hai pha g m hai: Pha b u c (voting phase )và pha quy t phase). V i pha b u c : bao g m hai b c th c hi n: m t máy

nh (Decision

- Coordinator g i m t b n tin thông báo yêu c u b u c VOTE_REQUEST t i t t c các thành viên trong nhóm. - Sau khi nh n c b n tin VOTE_REQUEST c a coordinator, n u có th th c hi n c thì thành viên ó s g i l i cho coordinator thông báo ch p nh n b u c VOTE_COMMIT, n u không, s g i l i cho coordinator thông báo t ch i VOTE_ABORT. Pha quy t nh: g m hai b c th c hi n:

- Coordinator t p h p t t c các b u c c a các thành viên. N u t t c u ngý ch p nh n giao d ch thì coordinator s g i m t b n tin GLOBAL_COMMIT t i t t c các thành viên. Tuy nhiên, ch c n m t thành viên g i thông báo t ch i thì coordinatorquy t nh h y giao d ch trên và s g i m t b n tin GLOBAL_ABORT cho t t c các thành viên trong nhóm. - Các thành viên sau khi ã g i thông báo ch p nh n t i coordinator s i ph n h i t coordinator. N u nó nh n v thông báo GLOBAL_COMMIT thì giao d ch s c ch p thu n, còn n u nh n c GLOBAL_ABORT thì giao d ch s b h y. Cam k t hai pha a ra m t s các tr ng thái h u h n nh hình 7.17 a, b (394).

Các tr ng thái c a m t coordinator là: INIT, WAIT, ABORT, COMMIT. Còn các tr ng thái c a m t thành viên b t kì là : INIT, READY, ABORT, COMMIT.

Hình 51 (a) Máy tr ng thái h u h n cho coordinator trong cam k t 2 pha (b). Máy tr ng thái h u h n cho thành viên

Nh c i m c a cam k t hai pha: Nh c i m chính c a cam k t hai pha là t n nhi u th i gian ch i. C coordinator và các thành viên còn l i u ph i ch m t b n tin nào ó c g i n cho mình. Nh c i m th hai là n u coordinator b l i thì ho t h ng. 7.3.2 Cam k t 3 pha kh c ph c nh c i m c a cam k t hai pha trong tr ng h p coordinator b l i, ng i ta a ra mô hình cam k t ba pha. Các tr ng thái khá gi ng hai pha nh ng thêm m t tr ng thái PRECOMMIT. ng c a c h th ng s b nh

Hình 52 (a) Máy tr ng thái h u h n cho coordinator trong cam k t 2 pha (b). Máy tr ng thái h u h n cho thành viên 7.4 Ph c h i. Ph c h i là các ph ng pháp a tr ng thái b l i sang tr ng thái lành (fault free). Có hai cách ti p c n cho ph c h i l i: ph c h i lùi (back forward) và ph c h i ti n (forward recovery). Ph c h i lùi: khi th c hi n ph c h i lùi s th c hi n ph c h i tr ng thái lành c a h th ng tr c khi có l i và cho h th ng ch y l i t i m ó. có th th c hi n c i u này ph i s d ng các i m checkpoint. T i các i m này s sao l u tr ng thái hi n hành c a h th ng khi khôi ph c s cho ch y i m checkpoint g n nh t. Vi c th c hi n theo ph ng pháp này là r t t n kém. Ph c h i ti n: chuy n h th ng t tr ng thái l i sang tr ng thái m i v i các thông tin ti p t c th c hi n

Ch

ng 8: An toàn - An ninh.

(Security) 8.1 tv n .

8.1.1 Các m i e d a, chính sách và c ch an toàn , an ninh. a. Các m i e d a. H th ng máy tính luôn b e d a b i các nguy c m t an toàn. M t trong nh ng công vi c b o v h th ng là làm sao giúp h th ng tránh kh i các nguy c ó. Có 4 lo i các m i e d a an toàn:

Interception (ch n b t): ch thành ph n không c phép c ng có th truy c p d ch v hay các d li u, "nghe tr m" thông tin ang c truy n i.

n các

Interruption ( t o n): là m i e d a mà làm cho d ch v hay d li u b m t mát, b h ng, không th dùng c n a... Modification (thay i): là hi n t ng thay i d li u hay can thi p vào các d ch v làm cho chúng không còn gi c các c tính ban u. Fabrication (gi m o): là hi n t ng thêm vào d li u ban u các d li u hay ho t ng c bi t mà không th nh n bi t c n c p d li u c a h th ng. b. Các c ch an toàn, an ninh. Có 4 c ch an toàn, an ninh c a ra: i d li u theo m t quy t c nào ó c. i dùng, nh n d ng client

M t mã (Cryptography): là vi c th c hi n chuy n thành d ng m i mà k t n công không nh n bi t Xác th c (Authentication): là các thao tác hay server...

nh n d ng ng

y quy n (Authorization).: chính là vi c phân nh quy n h n cho m i thành ph n ã ng nh p thành công vào h th ng. Quy n h n này là các quy n s d ng d ch v , truy c p d li u... Ki m toán (Auditing): là các ph li u nào và b ng cách nào. 8.1.2 Các v n khi thi t k . ng pháp xác inh c client ã truy c p nd

a. i u khi n (focus of control). Có ba cách ti p c n: Ch ng các thao tác b t h p l : vi c này th c hi n b ng cách b o m toàn v n chính các d li u ó mà không quan tâm n vi c phân tích s h p l c a thao tác.

Hình 53 Ch ng các thao tác b t h p l Ch ng các tri u g i thao tác không c y quy n.: không b o m toàn v n d li u mà t p trung vào các thao tác. Thao tác nào là b t h p l s b h y b ngay.

Hình 54. Ch ng các tri u g i thao tác không

c y quy n

Ch ng ng i s d ng không c y quy n: cách ti p c n này l i t p trung vào qu n lý ng i dùng. Xác nh ng i dùng và các vai trò c a h trong h th ng c không quan tâm n m b o d li u hay qu n lý các thao tác c a ng i dùng.

Hình 55. Ch ng ng

i s d ng không

c y quy n

b. Phân t ng các c ch an toàn (Layer of security mechanism) M t v n quan tr ng trong vi c thi t k m t h th ng an toàn là quy t nh xem c ch an toàn an ninh c t t ng nào. Vi c xác nh v trí t ó ph thu c r t nhi u vào yêu c u c a client v các d ch v an toàn, an ninh c a t ng t ng. Trong m t h phân tán, c ch an toàn, an ninh c t t ng middleware.

c. Phân tán các c ch an toàn (Distribution of security mechanism) Xét khái ni m TCB (Trusted Computing Base): là t p h p t t c các c ch an toàn, an ninh trong h phân tán, các c ch này ph i tuân theo m t ràng bu c an toàn nào ó. 8.1.3 M t mã (Cryptography) M t c ch an toàn, an ninh c b n trong h phân tán ó là mã m t. T t ng c b n là: bên g i mã hóa b n tin c n truy n, truy n b n tin ã mã hóa i, bên nh n s gi i mã b n tin nh n c thành b n tin ban u. G i: B n tin ban u là P.

Khóa mã hóa là Ek. B n tin c mã hóa theo khóa Ek là C: C=Ek(P).

Khóa gi i mã là Dk. B n tin c gi i mã theo khóa gi i mã: P=Dk(C).

Có hai lo i h th ng m t mã: m t mã i x ng (symmetric cryptosystem) và m t mã b t i x ng (asymmetric cryptosystem). a. M t mã V i m t mã i x ng: dùng khóa bí m t.. i x ng: khóa mã hóa và khóa gi i mã là gi ng nhau. Ta có:

P=Dk(Ek( P ) ) . C bên nh n và bên g i m t.

u ph i có khóa trên, khóa ph i

c gi bí

Nguyên lý chung c a gi i thu t DES (Data Encryption Standard):

Hình 56 nguyên lý chung c a DES Th c hi n trên các kh i d li u 64 bit. M i kh i này c mã hóa qua 16 vòng l p, m i vòng có m t khóa mã hóa 48 bit riêng. 16 khóa này c sinh ra t 56 bit khóa chính. u vào c a vòng l p mã hóa th i là d li u ã c mã hóa c a vòng l p th (i-1). 64 bit d li u qua m i vòng l p c chia thành hai ph n b ng nhau: Li-1 và Ri-1, cùng b ng 32 bit . Ph n d li u bên ph i Ri-1 c l y làm ph n bên trái c a d li u cho vòng sau: Ri-1= Li. Hàm f v i u vào là Ri-1 và khóa Ki sinh ra kh i 32 bit c XOR v i Li-1 sinh ra Ri.

Hình 57 .M t vòng mã hóa Ph ng pháp sinh khó a c a gi i thu t DES:

Hình 58. Sinh khóa theo gi i thu t DES M i khóa 48 bit cho m i vòng l p c sinh ra t khóa chính 56 bit nh sau: hoán v khóa chính, chia ôi thành hai ph n 28 bit. T i m i vòng, m i m t n a ó s quay trái m t ho c hai bit, sau ó l y ra 24 bit k t h p v i 24 bit c a n a còn l i t o ra khóa. b. M t mã b t M t mã b t i x ng: dùng khóa công khai. i x ng: khóa mã hóa và khóa gi i mã là khác nhau. Ta có: c gi bí m t còn m t khóa s

P=DkD(EkD ( P )). Trong h th ng này, m t khóa s c công khai. Xét gi i thu t RAS ( Adleman) : c

t theo tên c a các nhà phát minh ra nó:Rivest, Shamir, c:

Cách sinh khóa c a gi thu t RAS: th c hi n theo 4 b - Ch n 2 s chính l n: p,q

- Tính n = p.q và z = (p-1).(q-1) - Ch n m t s d liên quan nz

- Tính toán e sao cho e.d =1 mod z. Nh th d có th dùng gi i mã còn e dùng hai s này, tùy thu t toán. Nguyên lý chung c a gi i thu t RAS: Coi b n tin c truy n i là m t dãy các s nh phân. Chia b n tin m ó thành các kh i có kích th c c nh mi sao cho 0<= mi <=m. bên g i, v i m i kh i mi s tính m t giá tr ci = mei (mod n) r i g i i.Bên nh n s gi i mã b ng cách tính: mi = cdi (mod n) . Nh v y, mã hóa c n bi t e và n còn gi i mã thì c n bi t d và n. mã hóa. Ta có th công khai m t trong

8.2 Kênh an toàn (Secure channels). 8.2.1 Xác th c (Authentification). a. Xác th c d a trên khóa bí m t. Nguyên lý chung: bên g i mu n giao ti p v i bên nh n s g i m t yêu c u A t i bên nh n. Bên nh n tr l i b ng m t yêu c u RB . Bên g i s mã hóa yêu c u RB b ng khóa bí m t KA,B và g i v cho bên nh n. Bên nh n xác th c c bên g i nh nh n bi t c yêu c u RB mình ã g i trong gói tin v a nh n. Lúc này bên g i mu n xác th c bên nh n s ti p t c g i yêu c u RA t i bên nh n. Bên nh n s l i mã hóa RA b ng khóa bí m t KA,B ó và g i v cho bên nh n. Và nh th bên nh n ã xác nh c bên g i, sau ó quá trình trao i s c th c hi n.

Hình 59 Xác th c d a trên khóa bí m t M t mô hình c i ti n h n là thu g n s l nh n và bên g i. ng b n tin ch còn l i 3 b n tin gi a bên

Hình 60. Xác th c d a trên khóa bí m t nh ng dùng 3 b n tin Nh ng hi n nay, giao th c hay hình v sau: c dùng là "reflection attack" nh c mô t trong

Hình 61. Reflection Attack b. Xác th c d a trên trung tâm phân ph i khóa. N u h th ng g m N host, m i host ph i chia s m t khóa m t v i N-1 host khác thì h th ng c n qu n lý N.(N-1)/2 khóa, và m i host ph i qu n lý N-1 khóa. Nh v y n u N l n s r t khó kh n trong vi c qu n lý. Do ó, kh c ph c hi n t ng trên ta s d ng trung tâm phân ph i khóa KDC (Key Distribution Center). T t ng chính: bên g i s g i b n tin t i trung tâm phân ph i khóa thông báo mình mu n giao ti p v i bên nh n. KDC s g i cho c bên g i và bên nh n m t b n tin có ch a khóa bí m t KA,B . B n tin g i cho bên nh n s c mã hóa b ng KA,KDC . B n tin g i cho bên g i s c mã hóa b ng KB,KDC .

Hình 62 Nguyên lý c a KDC Cách ti p c n th hai là KDC s g i c hai b n tin ch a khóa bí m t KA,KDC (KA,B ) và KB,KDC (KA,B ) cho bên g i và bên g i có nhi m v g i cho bên nh n khóa ã c KDC mã hóa KB,KDC (KA,B ) ó.

Hình 63 Dùng ticket c. Xác th c d a trên khóa công khai.

Hình 64. Xác th c d a trên khóa công khai. Bên g i mã hóa yêu c u b ng khóa công khai K+B c a bên nh n. Bên nh n này là n i duy nh t có th gi i mã b n tin ó b ng K-B. Bên nh n s mã hóa yêu c u c a bên g i cùng v i yêu c u c a chính mình và khóa KA,B v a t o ra b ng khóa công khai K+A c a bên g i nh m xác th c bên g i. Cu i cùng, bên g i s g i l i cho bên nh n yêu c u RB c a bên nh n ã g i i xác th c. 8.2.2 Tính toàn v n và tính m t c a thông i p. a. Ch kí s . Ch kí s m b o tính toàn v n c a thông i p.

Có nhi u cách thi t l p ch kí s cho thông i p: Cách 1: dùng h m t mã khóa công khai là RSA.

Hình 65 Ch kí s cho m t b n tin dùng khóa công khai Bên g i s mã hóa b n tin b ng khóa riêng K-A c a mình, sau ó s mã hóa ti p n i dung b n tin và phiên b n ch kí b ng khóa công khai K+B c a bên nh n. B n tin c mã hóa này s c truy n i cùng b n tin m. Bên nh n sau khi nh n cb n tin s gi i mã gói tin, l y phiên b n ch kí c a m và so sánh v i m xác th c r ng b n tin này c g i t bên g i ó và c ng ki m tra xem có thay i trên ng truy n hay không. Cách 2: dùng hàm b m. Hàm b m H dùng tính toán m t b n tin có dài c nh là m t chu i bit h t m t b n tin có dài tùy ý m. N u giá tr m thay b ng giá tr m' thì H(m') c ng có giá tr khác giá tr h = H(m), do ó ta có th d dàng xác nh c nh ng thay i trên b n tin m trên ng truy n.

Hình 66. Ch kí s cho m t b n tin dùng message digest Bên g i s tính toán các b n tin có dài c nh t b n tin m và mã hóa b ng khóa riêng c a mình. B n tin c mã hóa này s c truy n i cùng b n tin m. Khi nh n, bên nh n gi i mã b n tin và th c hi n so sánh v i b n tin m ã c truy n i xác nh c r ng b n tin này g i t bên g i ó và ã c kí b ng ch kí s . b. Khóa phiên Trong m t kênh trao i an toàn, sau pha xác th c s ti n hành truy n thông. M i kênh truy n thông ó c xác nh b i m t khóa phiên t ng ng. Khi phiên truy n k t thúc thì khóa phiên t ng ng c ng b h y b . 8.2.3 Truy n thông nhóm an toàn a. Truy n thông nhóm bí m t Mô hình n gi n là t t c các thành viên trong nhóm s cùng có m t khóa bí m t mã hóa và gi i mã các b n tin. i u ki n tiên quy t cho mô hình này là ph i m b o r ng t t c các thành viên trong nhóm ph a gi bia m t khóa ó. Mô hình th hai là dùng m t khóa bí m t cho t ng c p thành viên trong nhóm. Khi m t trong hai thành viên k t thúc phiên truy n thì thành viên còn l i v n s dùng khóa ó giao ti p v i thành viên khác trong nhóm. V i mô hình này ph i duy trì t i N (N-1)/2 khóa.

Mô hình th ba là dùng khóa công khai. M i m t thành viên trong nhóm s ph i duy trì m t c p khóa công khai và khóa riêng, trong ó khóa công khai c dùng b i t t c thành viên trong nhóm. b. Server nhân b n an toàn Vi c nhân b n các server th ng dùng trong vi c ch u l i cho h phân tán nh ng ôi khi c ng c dùng m b o tính tin c y cho h th ng. 8.3 Ki m soát truy nh p (Access Control). 8.3.1 Các khía c nh t ng quát trong ki m soát truy c p. a. Ma tr n ki m soát truy c p (Access Control Matrix). Trong ma tr n i u khi n truy c p, m t hàng bi u di n cho m t ch th (subject), m t c t bi u di n cho m t i t ng (object). G i ma tr n ki m soát truy nh p là M. M[s,o]: a ra danh sách các phép toán mà ch th s có th yêu c u trên i t ng o. Khi m t ch th s g i m t ph ng th c m c a i t ng o thì monitor s ki m tra trong danh sách M[s,o], n u m không có trong danh sách này thì l i tri u g i b h y b . Thông th ng h th ng ph i làm vi c v i r t nhi u user nên có hàng nghìn ch th c n qu n lý. Do ó xây d ng m t ma tr n th c nh trên là không h p lý. Gi i pháp ra là s d ng danh sách ki m soát truy c p. b. Danh sách ki m soát truy c p (Access Control List). M i m t i t ng s duy trì m t danh sách các truy c p h p l c a các ch th mu n truy c p nó g i là ACL nh ó tránh c s t n t i c a các entry r ng nh ma tr n ki m soát truy nh p.

Hình 67 s d ng ACL c. Mi n b o v (Protection Domains). V i vi c s d ng ACL, tuy ã kh c ph c c nh c i m c a ma tr n ki m soát truy nh p nh ng v n có kích th c l n nên ã a ra cách s d ng mi n b o v . Mi n b o v là m t t p các c p ( i t ng, truy c p h p l ), m i c p này s cho ta m t i t ng và các thao tác h p l trên nó. M i m t yêu c u u thu c m t mi n b o v nào ó. Khi m t yêu c u g i n, monitor s tìm trong mi n b o v t ng ng yêu c u này. t hi u qu cao h n, ng i t ng. 8.3.2 T ng l a (Firewall). i ta dùng k t h p mi n b o v v i vi c phân nhóm các

Firewall dùng

ng n ch n các lu ng không

c phép. Firewall có hai lo i chính là:

Packet - filtering gateway: lo i này ho t ng nh m t router cho phép ho c không cho phép gói tin chuy n qua m ng d a trên a ch ngu n và a ch ích ph n header c a gói tin. Lo i này th ng dùng ng n ch n các gói tin t ngoài i vào trong m ng. Appllication - level gateway: lo i firewall này không ch ki m tra header c a gói tin g i n hay g i i mà còn ki m tra n i dung c a gói tin ó. M t ví d c bi t cho lo i này là proxygateway. 8.4 Qu n tr an toàn - an ninh (Security management ). 8.4.1 Qu n tr khóa. a. Thi t l p khóa. Vi c t o ra khóa bí m t gi a bên truy n và bên nh n c th c hi n nh sau:

Bên A và bên B u t o ra hai s l n là n và g - hai s này có th c công khai. Bên A s t o ra m t s l n khác là x, bên B t o ra s l n y và gi bí m t chúng. Bên A s g i cho bên B: n, g và (gx mod n). Bên B s th c hi n tính (gx mod n)y= gxy mod n. do ó s xác nh c khóa bí m t x c a bên A. ng th i, bên B c ng g i cho bên A (gy mod n). Bên A th c hi n tính toán (gy mod n)x= gxy mod n nh ó c ng xác nh c khóa bí m t y c a bên B.

Hình 68 Nguyên lý c a Diffie - Hellman key exchange b. Phân phát khóa. Trong h mã m t . i x ng, khóa bí m t t o ra ph i c truy n i trên kênh m t riêng

Hình 69 Phân phát khóa theo kênh riêng. Trong h m t mã dùng khóa công khai, khóa công khai ph i m b o cùng m t c p v i m t khóa bí m t. Khóa công khai c truy n i nh m t b n rõ trên ng truy n và ph i có h tr xác th c. Khóa bí m t c truy n i trên m t kênh riêng và c ng ph i c xác th c.

Thông th ng, khóa công khai th ng cthay b ng m t ch ng ch khóa công khai (public - key certificate). Ch ng ch này bao g m m t khóa công khai và m t xâu nh danh xác nh c khóa m t liên k t v i nó. b. Th i gian t n t i c a ch ng ch . Khi c n h y b m t ch ng ch ta có th th c hi n theo nhi u ph ng pháp:

Cách 1: s d ng danh sách các ch ng ch b h y b CRL (certification revocation list). Khi cllient ki m tra m t ch ng ch thì nó c ng ki m tra trong danh sách CRL ki m tra xem ch ng ch này ã b h y hay không. Nh th m i client ph i c c p nh t danh sách này th ng xuyên. Cách 2: m i ch ng ch t ng h t hi u l c sau m t th i gian xác nh nào ó. Nh ng n u mu n h y ch ng ch tr c th i gian ó thì v n ph i dùng n danh sách CRL nh trên. Cách 3: gi m th i gian t n t i có hi u l c c a m t ch ng ch xu ng g n b ng 0. Khi ó client ph i th ng xuyên ki m tra ch ng ch xác inh th i gian có hi u l c c a khóa công khai. 8.4.2 Qu n tr nhóm an toàn. Xét nhóm G, khóa m t CKG¬ c chia s v i t t c các thành viên c a nhóm mã hóa thông i p c a nhóm. Nhóm còn có thêm 1 c p khóa công khai/riêng (KG+, KG-) giao ti p v i các thành viên c a nhóm khác. Ti n trình P mu n tham gia vào nhóm G s g i yêu c u tham gia JR. RP (Reply pad) và khóa bí m t KP,G c mã hóa s d ng khóa công khai KG+ c a nhóm. JR c gán b i P và nó c g i i cùng v i ch ng ch ch a khóa công khai c a P. Khi m t thành viên nhó m Q nh n m t yêu c u t P, nó s xác th c P, xác nh tem th i gian T m b o r ng P v n còn giá tr t i th i i m g i. Sau ó l y ra khóa công khai c a P ki m tra tính h p l c a JR. N uP c ch p nh n vào nhóm, Q tr l i thông i p GA nh n d ng P và ch a N (nonce). RP c s d ng mã hóa khóa giao ti p c a nhóm CKG. P s d ng khóa KG- mã hóa cùng v i CKG. Sau ó thông i p GA c gán cho Q s d ng khóa KP,G. 8.4.3 Qu n tr y quy n (Authorization management )

S d ng capability xác nh quy n truy c p tài nguyên c a ti n trình chi m gi nó. M t capability là m t t nh danh 128 bit, c u trúc bên trong c mô t nh sau:

48 bit này

u tiên c kh i t o khi c g i là server port. c s d ng

it xác

ng nh it

c t o ra b i server c a ng t i server ã

it

ng. 48 bít

24 bit ti p theo 8 bit ti p theo xác Tr

nh s n.

nh quy n truy c p c a holder c a capability c dùng t o ra m t capability th t (không th gi m o

ng check (48bit cu i) c).

Khi m t i t ng c kh i t o, server c a i t ng ó ch n l y m t tr ng check ng u nhiên và l u tr nó trong c capability và trong c table riêng c a server S y quy n(delegation)

S y thác quy n truy nh p là m t k thu t quan tr ng th c thi s b o v trong h th ng máy tính và c bi t h n là trong h phân tán. Ý t ng c b n r t n gi n: b ng vi c chuy n quy n truy nh p t ti n trình này sang ti n trình khác, nó s tr nên d dàng h n phân tán công vi c gi a các ti n trình mà không làm nh h ng t i vi c b o v tài nguyên. Có vài cách th c thi s y quy n, m t cách là s d ng proxy.

You're Reading a Free Preview

Tải về
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->