TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
TIỂU LUẬN
Hệ thống quản trị tác nghiệp của Trung tâm
Thông tấn Quốc gia
MÔN HỌC: Nguyên lý và Mô thức phát triển Hệ phân tán
MÃ HỌC PHẦN: IT6040
Giảng viên: GS. Nguyễn Thúc Hải
Học viên: Lương Quốc Trung
Mã học viên: CB120156
Hà Nội 1/2013
MỤC LỤC
Lời nói đầu
!"#$%&'(") '(*
*+, '/01"'*2%32451*2
%31!1'5 ,6*7'*2
8$/.%$9:;&
*("9)*':,-$:<
$'*2=>?5%@,A..$>B?:
*>B?CDD,A.E.$(F>+:*
1'GHIJDK G1 :,
L?')$;%!<+%
+#(I"5:.,AM7
$::$ 91!"B .(
'5N<JOP,
1DJ:$"(Q-RN69"'O6'S
D $$1)$,
T
1 Tổng quan về hệ phân tán
1.1 Hệ phân tán là gì?
.'BU :, N . 'BU
: $ 5 ) 2 I M B '*2 %3
!5$'*2$'GQ:,VQ
: H.12 '5.$
W$1*Q=Q$>+,
Một số tính chất quan trọng của một hệ phân tán:
N=<6 H6+=>?%
%$51><,L5*'%
:'.$%51'*23%3'65:.
.%"X'YZD !1<1,N<
"8='.G.5:E)I+
G*[.E.+*2''.$I" )%H
Những ứng dụng của hệ phân tán:
<+)2 '?''3+.
*7 > '5 : $ $ 1
'*( $6/I ! $I5+=>?*(
$%U),9:'OF$\'Y=G
, .'*2K>? *(1
'?' ]-C^$_2 5*($=
`
>?+a
1.2 Các đặc trưng cơ bản của hệ phân tán
a. Kết nối người sử dụng với tài nguyên
WM$$5'G(I"1:.
$(F +'G%$."*F'3+%36Q
. b :, M$ . $ ?>+
Q=$$QQ=,M$'*2
:I45>+'*2!"#+![JK#'(IF
Q$![JK#'W6
b. Tính trong suốt (transparency)
L5:'*28$ 13..%"XD><7
$+*2'..'1*7K>?1$*7
)[=>?,.c> 1d
e N 1)dD><I>R>+$=
)
$,
e N 1BdD><B$,
e N 1>6dD><%"X>6f>4($
(
%g$,
e N 1'BBdD><%"X$.>4
(
$'3(%"%''*2K>?,
e N 1I" dD><I" '*2:,
e N 1*(,
e N 1_,
e N 1),
c. Tính mở (openess)
L5:'*28$.F3..%"XIY
>B?$%$"*FJ<'3>B?'O.,
d. Tính co dãn (scalability)
h
L5:'*28$. >O3..'*2
+'Y!1,,N >O`%
,
e iR>$IY$$*7K>?,
e 91'Y!G'B#,
e 91'Y!!"B,
e. Tính chịu lỗi (Fault tolerance)
^K # '*2 + _ J" ! [ $ , j
B_'%kD $%@?_,
f. Tính an toàn an ninh (security)
1.3 Các nguyên lý của hệ phân tán
N Q$lJDJHY!.@#
:,jF3' :[I": _#/.<
<' Q: , .Y 5m # ( I"'1
:I Md
,NfCommmunicationg,
T,N3[fProcessesg,
`,AB>fNamingg,
h,AMI5.fSynchronizationg,
n,-<!$:I"fConsistency & Replicationg,
o,B_fFault toleranceg,
m,p $qfSecurityg,
r':'$ :(I54#:,
1.3.1 Truyền thông
N+3[<!8 5:,
N.$T=d
e NF=,
n
e NF=>DsDdI Mh['*2K>?5
Od
t8 ?4 JfuVgN 8'1*24J fuLCgN
*'fLvg$N*>/frvg,
1.3.1.1 Truyền thông ở mức mạng
L[vrC'*23%3 H1F
?? =>?:,
Q [vrCd
,NQ)#
o
T,NQ%3>+fi%g
`,NQf-Ds %g
h,NQ)fN g
n,NQfrD g
o,NQ[>RfVDD g
m,NQ=>?fp g
L_Q[vrC" !35Q 3,P$ F
_Q. =.,
L_1F. ! @ 'B > 5 > $ + U
' K $ ) q ! @ $ '*2 8 $ =
fprotocolg,A..'*2Q
". =1<+,.T =%
d =*%31fConnection-Oriented protocolg"3)
%31*%,)>+%J "".%31,P$
=%31fConnectionless- Oriented protocolgd%Q%31
'*2%'Ob$,
1.3.1.2 Truyền thông ở mức midleware
a. Gọi thủ tục từ xa fRemote Procedure Callgd
uV H8?;%,w3[
p8?j[3[8p'.lIB
>4$ '.l?'*28j,V*($
'*28$ t8?4JfuVg,A:$%U)'*2K>?5O
< :,
uVJ"I*.@*d
,N?D8DI5I[*7,
T,DIJ:>5'$8'$?I5,
`,9'$DK''3'$4J,
h,9'$4JK' DDI,
m
n,rDDIF.1$8DD,
o,rDD$"%3!"'3I,
m,rDDI'...$ '$8'$?I5,
c,9'$DDK' '$D,
x,9'$D ''3DI,
y,rIF.%3!"$" D,
b. Triệu gọi đối tượng từ xa fRemote Object invocationgd
wz ) * '1 *2 '*2 > < Y I3
=>?:f>ID>g$%:
f {>ID>g,L5 '!8'1*2'.
$.\<'+[I . I $ $ .
l & < > fD|Dg, 9* 3 )$
H '1 *2 >R >$ '*2 3 $ & K,
uV $ uvC6 \ >< : X
*7) 1,
c. Truyền thông hướng thông điệp fMessage Oriented Communicationg
(3'. d
,N7*',
c
T,N*'>$:,
d. Truyền thông hướng dòng fStream Oriented Communicationg
E.51>$31'=7'./
13*>+: G["},i '.Q".
(3*>/,
1.3.2 Tiến trình
N3[fprocessg$*([' ![U$
5*([''*2IF5 I5JK#"
'$, A13 [ [ <' !"# $) B 3
[+<'!8Q"!3,-3[.'M7
W5V]$$Q=%,
1.3.2.1 Luồng (threads) và mô hình đa luồng (multi-threading)
~M fthreadg *( 5 3 [ E . ' %
I (I"+M3[,L5M$5'(BJK#(I"
1,L_MJK#Q' >D.S+5 0
)$5%,MWV]
1*W+3[d%M'JK#[
M%l"7 '3*2,L5ME. )
M ,P$3[.S+M,
L55!8M$6 H%.78
1$%Q"%. $I53[$.M',
wz)'Mfmulti-threadingg H% %
5*([51I5JK#,w'._M
'*2 5V]% %>+>'*2*+
I5 >,V*( $ *7'*2 >
*7]-C^,
x
1.3.2.2 Di trú mã (code migration)
i 3 [ 4 $ % $ 5 ? =
$1%H*.l"G<,N $I5<
1.'*2 : 3 3 [ '*2 > 4 .
='5JK !'3.='5JK(,i6OE.
6 X <I; ) >? ( 3 $ % Q
! : '3 < ' )[ ,j'.$>W
O>6,J:>=>?:1$7=>?
$Q%$!3'BQ$ '*2,N
3O.>+%.<['5
:,
•*3[I M`$Qd
,Code segment d=)*([,
T,Resource segmentd= 3'3$I $
$3[Q,
`,Execution segment d=$3
[,.[(I" >6Of>63[gd
e L[>'53fweak mobilitygd& >DDD%k
D 1'%I'Q,L5'G'[O>63$5
*(['*2I@'QF%F .,~23
>63'.$'(".& Q'.O$
'*2,
y
e L[>'5fstrong mobilitygd"`$Q,
AG
'$[$$3['.'*2>4
'.>'3%$M'*23)'OIB
>4*'.,u€$[O>6>'51(
[O>63l%.(,
1.3.2.3 Tác tử mềm (software agents)
pD.T'G(I"'.$dB$*(,- $/.
'GZD 4K'.$d
,N>'5d*(=l.K>'5fmobile agentg,
L5 K> '5$ 5 K. %"X'Y+
%,K>'5'/0".>'5,K>
'5*7Q"_2[O>'5f Ig
%<3,
T,Nd*(=l.Kfintelligent
agentg,- $/. K%*d
e NK >finterface agentg6_2 *7K>?
5 G=>?,
e NKfinformation agentg$K!)3
K
>,=XK$$!"4
$%,•"M@J3$8a
Thuộc tính
Chung cho t
ất
cả các tác tử ?
Mô
tả
p
.
. '5.
uDD
.
A='66''Y*7,
V D . wF $'5'5'3
*7,
D
. . 'Y*7K
>?$K%,
w
w "71flifeg*('1>$
L ID
w
.>64($'3(%
p>D
w
.%"X8
Một vài thuộc tính quan trọng của tác tử giữa các loại tác tử khác nhau.
1.3.3 Định danh
'. / ! 8 < " 1 ,
6'*2>'W$''B>><
'3'3(aP'G (F H3[
.)'3!6,
N 51: '>*7'*2:
,.I<' '> :,
,AGD QE *7,
T,'*2K>?''BB>'5,
`,t"!3Y=,
1.3.3.1 Các khái niệm cơ bản
e Nfnamegd$5_I G%'*2>'
3
'3 :,
e A. 5Q")faccessg$
'.,i '.6Q5')faccess pointg,N
D '*28$'B&faddressg,L5..
D ,pD .'Y+7'%,
P>?d%IK>?5 $>4$'3
%[@@'B&CVlIB'Y,
e AB>fidentifiergd$5 .+'Gd
,L5'B>3<'3,
T,L_'*23<IF'B>,
`,L5'B>3,
-7 > 'B > 6 >R >$ ( % ' ) '3 5
,6E%K>?'B&$'B>'*2[>>D
.'Y,
e wfnamespacegd$Y= :
,
j>RI;'MB.*{'MBfDg,
e V:"
T
fname resolutiongd>'MBD D[%3
G
'B>,
1.3.3.2 Định vị thực thể di động
L5*(YI3'_2>'5 .
'. $ home-based I; '* 'B ' fhome
locationg(l+ 3 'B ' , N
3 [ 'B ' *7'*28($'*2 ,L5
>?%z) D{ID>$ Mobile IP fCV>'5gL_ >'5
K>?'B&CV1'B,N<" 3'3'B&CV'.'Ql
'*2'3mobile host’s home agent f(!"# >'5g,-(!"#
$'*2'G5~p-*(='B&= 'B
&CV >'5, j< =%$ > '55
% .' Q5'B& 7 '> '5
3,AB&3fcare of addressg$'*2'X%#home agent,
w DD )'*25 . K 5 >'5. l
[%3'B' >'5'.,-3 >'5'.'F
?I5 $ [ . l'*2 3 5 >R >$,
-*2.l 5'*7($ >'5';I;
.fwrapg>+ 5.CV$K'3'B&3$.
'!"#,6'.[(K.''*2I 'B'
>'5,6#;'B&CV'*2K>?5
!"%.'B> >'5,
- $*3)/*%+'"!3<
'>'5,
1.3.3.3 Xoá bỏ những thực thể không còn được tham chiếu
A $ " I +< ' ! '3 J. +
%/'*23:<1''5
J.5%.%/Q+,-+'.'*28
`
$1 :fdistributed garbage collectorsg,N Q
$6l[1!+'B>fnamingg$
3freferencing entitiesg$'5 +
%/'*23+,
h
1.3.4 Đồng bộ hóa
N :7_$%[
)Q".5%8$7)#'1<7
+ $Q,j'.%3[
Q5'(B>+ 57[l%%0*(
I<%"%,-+'$<'Q'*2"
!3 'MI5 ,
1.3.4.1 Đồng bộ hoá đồng hồ vật lý
eL_'$'G'MM)#'.$'3J
B,
N)6%"'MM !'*7,-
%86$I5'3'B7ftimerg,j5'B7
*7$<J,w'*2+F5'
3> '5Q1Y'B5$
'.,~%3$I5'3fcounterg$
+fholding registerg,
LG>Q 1I5> '5 %Y'B .%
'"I" %'J
Q1,N3%51.[<"l
Q1%6>Q:<'MI5$B'8
l%,r% B 7'*28$
'MM,P$%3!" %$$*([.'/07
%3|D'1*23['l%/
J,
N 51177'MM$<!8,
A1+1$'/0.'MM) $,P>
'MM)*3l"T<'d
,~$3$ ''MI56'MM3,
T,~$3$ ''MI56,
n
e P'MI5+'MM)#Q">$ 7\
.
B $Qq712 $Q]Nfuniversal
coordinated timeg,
-3.wwv receiver ['MI5
.l'*2
D ]N,-*23%.
wwv receiver ["K>?")'MI5.'MM)#,
.`")YI3'.$d
,t"),
T,t")jD%DD,
`,t")I[,
N<") '.[1(I",L_JD
*.5I5'37. 5@9Q 5:,t8
B'MM$$,w7]N$[B'MM
l$fg,N 53*F6.fg• <"
$,9.%*F$fg,•,
j5 'B 7 % @ J 9 Q 5 :, ND
3I5'B79•oyQToyyytick 57,N3
+ 1 *( '1 ' '*2 '3 7 ' '
% " y
{n
. U$ 5 $ '. . < B 4 Tnxxc'3
ToyyTtick 57,L5J(M5;1‚ "
Od
{‚ƒ >,> ƒ„‚
$I5'B7$J,9;1‚'*2J'BIF$"
J<$'*28$Maximum Drift Rate,
1.3.4.2 Đồng bộ hoá đồng hồ logic
a. Tem thời gian Lamport (1978)
A'MI5'MM ~ 'BU51!8'*2
8$happens-before fJ" {*%g, r% J"*%I
fw#d…Ig'*28$'63d
o
,I$%J" 3[$J"*I,
T,I%553[*K5''$I$
%)''.,
9DqID| D$5!%H D [33…I$I…[l
.…,-3%J$J" 3[%f)
%3 !'1*2= Ig [ J… $ % '6 $ "
…JE3,-+%$'*28$'M7,
-3.%J[%#fJg$D7J0O
'%d-3J"*I 3[[fg†fIg,
e -3$II>R*(=K)'[fg
†fIg,
e L8%:I$I[fg‡
fIg
,
b. Nhãn thời gian vector (Vector Timestamps)
L5O7D PNfg'*2 5%.5,
-3%*%I[.PNfg†PNfIg,PD O7
'*2J:>I;'_3[V
>[5D P
5d
,P
ˆ‰$1%'OJ" '3I:7FVi,
T,-3P
ˆŠ‰•%[V
;%%'OJ"FV,
N5'Q'*2>[IFXP
ˆ‰'M7_
% J" F V
, N5 = '*2 > [ I; piggy-
backing D ''*2K
1.3.4.3 Các giải thuật bầu chọn (election algorithm)
-) :'/03['./*'1
fcoordinatorg*7%FJ*finitiatorg G%[
/'GI, N Q $ l JD JH ) ' IQ 8
m
' 1 ,N)+'1'*2>*Y!
3['GI,
-3<"3['1%.'G':
I[%.$ '853['GI,P[36
l"K;_3[.5 1><>?*'B&
.f''("E ;_3[ g,
) IQ8 l 1 @ J 'B 3 [ 1 3 [
fprocess numberg$ <$&'B.$'1,)
%[l% J'B$,
a. Giải thuật áp đảo (bully algorithm – Garcia Molina, 1982)
w53[I<%[6#;'1%/'=
Q+[ .I@'Q55IQK,L53[Vl Y=
5IQD I*d
, V K 5 ' IQ K f‹~‹NCv-g < " 3 [
13[ (,
T,-3%."MVl@K$F$'1,
`,-3.'.13[ ("7.$
V'OJ ,
b. Giải thuật vòng (ring algorithm)
t"K;3['O'*2@D ))$ '_3
[I3'*23[%33$,w53[I %[
<'1 .J:>5 'IQK M1
. $K' 3[%33.,-33[%33'O
downIKlI0 ! $ " '3 3 [ %3 3 / '3
%53[ ' '*2 J 'B, N _ I* 3 [ K
l 1 3 [ fprocess numberg . $ >
''.F$= IQ'1,
c
1.3.4.4 Loại trừ nhau (mutual exclusion)
e t"))fDŒD> g,
e t"):f>ID> g,
e t")K>? %Df %D
g,II.4.6. Giao tác phân tán (distributed
transaction) a. Các tính chất của giao tác - ACID
,•pŽfK{p gd'13I $[
%:'*2+,
T,•Žf<!{ Dgd %J:I<I3
1,
`,•CŽf%{ D>gd 'M7%:F
,
h, •iŽf:I{>IDgd% 'O%3['Y$%H
>$:I,
b. Phân loại giao tác (Classifications of Transactions)
e t }f| g
~$ '("<0Oh<pCi,93
}$6% H%3!"'*2
%3fcommitedgI0fabortedg, %='5
1 }$3,
e t MfDD> g
w@?3 }K>? M,
L5 M.<6451 .%
$ I M %,L_ E.
5 .,
e t :f>ID> g,
A'%*(.T3)dA%*(•I!Ž
fD D g $ ' % *( • !Ž
x
f D g,
1.3.5 Nhất quán và nhân bản
N :K>?I" './%!8,
.+#> '>I" d
,NX),-351|D'*2 *..3?
$ % G 1 I; '3 $ I"
%,. I" 6 I" 1 '*2 >+ IB *
0,
T,NXX4'.Xb$K>?$,N
E"" K>?I" ,P<''*2'GF':
$$3$ ''"I" <!,
.T.[<!d
e [ < ! < >+ $ : f> D
D
>Dg
e [ < ! < D $ : fD D
D
>Dg,
1.3.5.1 Các mô hình nhất quán lấy dữ liệu làm trung tâm
a. Các mô hình nhất quán
mạnh
X = $ I" : '( W '8, >+ >
.[<!,j Md
e L [ < ! G f Dgd % 0 ' % d
j< %[
'8$ '(B>+J['3l"5B
*(= Q<J,
e L[<!QfD!D Dgd$[<
!
3 ( [ < ! G, '*2 '* IF
~ fxmxgD +"I5'*2W 1'
Ty
JK#L[<!3,
e L [ < ! 3 fDŒI Dgd [
<
!$3 ( [ <! G* (
[<!Q
e L[<!:!"f DgdFQ*6
E'O.'3:!"%')'3D D7,-3
%jIB'5$"*FIF%p*'.:!"
'/0;8*7"<p*%<j,
e L[<!•C•v,
b. Các mô hình nhất quán yếu
e L [ < ! 3 fsD% Dgd [ $ . +
'G
'd
,N)'3I3'MI5 f Œ IDg'*2
%325% >+f> Dg<!5Q,
T,w. 5I3'MI5'*2H '3
%<" *'.'O $$F8(,
`, w . '8 '( B >+ '*2 H
'3%<" *'.'3I3'MI5'O'*2
,
e L[<!'fDDD Dgd.5% >+
'*28$<!<•3.:D !@d
, N*%5 '8 G'(B>+W
'*2<"Q'O*'.IF3["
'*2 $<$,
T,N*%5".f'{DDDg'*2H<
" '8$*'.'OIF3["'*2
$<,
T
`,r)'3I3'MI5 $<!•C•v
e L[<!'$ fD Dg
1.3.5.2 Các mô hình nhất quán lấy client làm trung tâm
e L[<1fDD Dg,
e L[<!'8'f D>g,
e L[<!'f sDg,
e L[<!'8 fD> sDg,
e L[<!D '8fsD D>g,
1.3.5.3 Các giao thức phân tán
a. Sắp đặt các bản sao (replica placement)
P<'3%3'G % >+:$!3'BJD
%$ F':$> @'GI" % >+,.` I"
*d
e I" *7fDDDg,
e I" %F fDD{D>Dg
e I" %%F fD{D>Dg
b. Lan truyền cập nhật (update propagation)
P<''*2" !3F ':$ $3$ ') )
4I" '3I" %,
1.3.6 Chịu lỗi
L5'GI: 6:I1
'($% _ Qfpartial failureg, L5_ Q.
J" %5 $ Q 1 IB 1 $ _ $ .
"*F'3 '5$Q%,L5?!
8 3%3:$ J:>1$..
'5 M ? _ Q$ % $" *F [
8'3 $I5X,
TT
1.3.6.1 Các khái niệm cơ bản
r':$'/0 :d
e Nb$favailabilitygd1b$K>?I<%Z6
$ , 5 $'"I" 1 '55
JF87''*2Q$b$ '5D
Q*7K>?,
e N)freliabilitygd1?$%IB_,
-*2
b$)'*2'BU!'35
% "7[5'7,L51.'5) .
$?$%IB' % "7%>$
e N $fsafetygd1._7[‘%."
J",P>?*3[ '5 1'%X
*2K'* *7CE?Q5'5 $ ,-3
1'%*370 % "%@)!")
%%,
e NI" ['*2fmaintainabilitygd%"X$61IB_
.%@?_,
-351.'*2"h['*28$51.'5
)fdependabilityg,
w : _ : . ` _ d ~_ <
7ftransient faultsg$+_&J"Q<'$%G
+,~_Gfintermittent faultsg$+_J"<'$'.G,
~_:>$/8$_*7fpermanent faultsg,
j _/.[_d_?'Yfcrash
failureg%DDIBD _I0.fomission failureg%DD%'
='*2QK G)_7ftiming failureg%7.
"7*!7!'B_'=frespond failuregDD
." 7*%'6 $1$ _Z farbitrary failureg
T`
%DD"7Z$ 7',
1.3.6.2 Che dấu những hư hỏng bằng sự dư thừa.
-351"B_1<$1@\'J<
_4+3[%,wz) D><_'.$
K>?>*4,
.` >*4d
e i*4dI4'*2$ ' HM?+
I
'OIB%IB_,P>?O9.'*2$ >+
'M?%.R'*7,
e i*47d5$'O'*2$'.3Q.
'*2Q+,
e i*4)#d$%z)<YI3 B_, '*2
>
)8f'5).6[.T@TTYag
%z)$%fj Dmhm.'3h'5(*&>`'
Ig f8$& [1_g,
E'*2>'B_ 'Ka
1.3.6.3 Khôi phục tiến trinh (process resilience)
A%?3[Y=$.3[1,
.3[.'5.%6.$
GI'$,N<'Q"!3F':l$!"
#.3['.*3$ ,-3'=*(>.l
." <'$:$.$$.:
<,N*(=3'=*(>$. l.d
!"#)$!"#:,
- $/"'3.I I" 3[,A.$<
'D><_$(3>I" ,
1.3.6.4 Truyền thông theo mô hình client.server tin cậy
N *72B_ :&)$
Th
3[IB_,N6EQ!:'3_
,N 3%J:>1)<'
13$"% _I0.$_?'Y,_Z.
J">*> H'%3!"$ 1
'$.'*2*+ 57%>$$'.
'*2'*%*7K'OK'5',
*()d
e N''fV g
e -+UuV _7fuVrDDVDDD
|
•Dg
1.3.6.5 Truyền thông theo mô hình nhóm tin cậy
L_3[3)%31'{'3[%$.
1,95Y=*)$%!"%.
. >",N31*23[0[
*3''*2'5)J1%'{')$
%'("%=,
Cam kết phân tán (distributed commit)
t")%3TfTVgT$dIQKfvoting phaseg$
!3 'B fdecision phaseg, N ' %@? *7 2 '
1IB?'Y*7'O'J<")%3`q`V,
1.3.6.6 Phục hồi lỗi (recovery)
L5%._J"[M?_$'3=Q3,
e V? M _ fbackward recoverygd '* 1 4 _
$F'6*'.,
e V?M_3fforward recoverygd5%1'O'$
_
Tn