Tải bản đầy đủ (.docx) (51 trang)

Tiểu luận môn Nguyên lý và Mô thức phát triển Hệ phân tán Hệ thống quản trị tác nghiệp của Trung tâm Thông tấn Quốc gia

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

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

 !"#$%&'(") '(*
*+, '/01"'*2%32451*2
%31!1'5 ,6*7'*2
8$/.%$9:;&
*("9)*':,-$:<
$'*2=>?5%@,A..$>B?:
*>B?CDD,A.E.$(F>+:*
1'GHIJDK G1 :, 
L?')$;%!<+%
+#(I"5:.,AM7
$::$ 91!"B .(
'5N<JOP,
1DJ:$"(Q-RN69"'O6'S
D $$1)$,
T
1 Tổng quan về hệ phân tán


1.1 Hệ phân tán là gì?
.'BU   :, N  . 'BU
:  $ 5 ) 2 I  M     B '*2  %3 
 !5$'*2$'GQ:,VQ
: H.12 '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 H6+=>?%
%$51><,L5*'%
:'.$%51'*23%3'65:.
.%"X'YZD !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:'OF$\'Y=G
 , .'*2K>? *(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
WM$$5'G(I"1:.
$(F +'G%$."*F'3+%36Q
. b  :, M$ . $ ?>+
Q=$$QQ=,M$'*2
:I45>+'*2!"#+![JK#'(IF
Q$![JK#'W6

b. Tính trong suốt (transparency)
L5:'*28$ 13..%"XD><7
$+*2'..'1*7K>?1$*7
)[=>?,.c> 1d
e N 1)dD><I>R>+$=
)
$,
e N 1BdD><B$,
e N 1>6dD><%"X>6f>4($
(
%g$,
e N 1'BBdD><%"X$.>4
(
$'3(%"%''*2K>?,
e N 1I" dD><I" '*2:,
e N 1*(,
e N 1_,
e N 1),
c. Tính mở (openess)
L5:'*28$.F3..%"XIY
>B?$%$"*FJ<'3>B?'O.,
d. Tính co dãn (scalability)
h
L5:'*28$. >O3..'*2
+'Y!1,,N >O`%
,
e iR>$IY$$*7K>?,
e 91'Y!G'B#,
e 91'Y!!"B,
e. Tính chịu lỗi (Fault tolerance)

^K # '*2 + _ J"    ! [ $ , j  
B_'%kD $%@?_,
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$lJDJHY!.@#
:,jF3' :[I":  _#/.<
<' Q: , .Y 5m # ( I"'1  
:I Md
,NfCommmunicationg,
T,N3[fProcessesg,
`,AB>fNamingg,
h,AMI5.fSynchronizationg,
n,-<!$:I"fConsistency & Replicationg,
o,B_fFault toleranceg,
m,p $qfSecurityg,
r':'$ :(I54#:,
1.3.1 Truyền thông
N+3[<!8 5:,
N.$T=d
e NF=,
n
e NF=>DsDdI Mh['*2K>?5
Od
t8 ?4 JfuVgN 8'1*24J fuLCgN
*'fLvg$N*>/frvg,
1.3.1.1 Truyền thông ở mức mạng
L[vrC'*23%3 H1F
?? =>?:,
Q [vrCd
,NQ)#

o
T,NQ%3>+fi%g
`,NQf-Ds %g
h,NQ)fN g
n,NQfrD g
o,NQ[>RfVDD g
m,NQ=>?fp g
L_Q[vrC" !35Q 3,P$ F
_Q. =.,
L_1F.  ! @  'B > 5 > $ + U
 ' K $ ) q  ! @ $ '*2 8 $    =
fprotocolg,A..'*2Q
". =1<+,.T  =%
d =*%31fConnection-Oriented protocolg"3)
%31*%,)>+%J "".%31,P$
 =%31fConnectionless- Oriented protocolgd%Q%31
'*2%'Ob$,
1.3.1.2 Truyền thông ở mức midleware
a. Gọi thủ tục từ xa fRemote Procedure Callgd
uV H8?;%,w3[
p8?j[3[8p'.lIB
>4$ '.l?'*28j,V*($
'*28$ t8?4JfuVg,A:$%U)'*2K>?5O
< :,
uVJ"I*.@*d
,N?D8DI5I[*7,
T,DIJ:>5'$8'$?I5,
`,9'$DK''3'$4J,
h,9'$4JK' DDI,
m

n,rDDIF.1$8DD,
o,rDD$"%3!"'3I,
m,rDDI'...$ '$8'$?I5,
c,9'$DDK' '$D,
x,9'$D ''3DI,
y,rIF.%3!"$" D,
b. Triệu gọi đối tượng từ xa fRemote Object invocationgd
wz ) * '1 *2 '*2 > < Y I3    
 =>?:f>ID>g$%:
f {>ID>g,L5 '!8'1*2'.
$.\<'+[I . I  $ $ .
l &  <    > fD|Dg, 9* 3 )$
  H  '1 *2 >R >$ '*2  3 $ & K,
uV $ uvC6 \ ><     :  X
*7) 1,
c. Truyền thông hướng thông điệp fMessage Oriented Communicationg
(3'. d
,N7*',
c
T,N*'>$:,
d. Truyền thông hướng dòng fStream Oriented Communicationg
E.51>$31'=7'./
13*>+: G["},i '.Q".
(3*>/,
1.3.2 Tiến trình
N3[fprocessg$*([' ![U$
5*([''*2IF5 I5JK#" 
'$, A13 [ [ <' !"# $) B   3
[+<'!8Q"!3,-3[.'M7
W5V]$$Q=%,

1.3.2.1 Luồng (threads) và mô hình đa luồng (multi-threading)
~M fthreadg *(  5 3 [   E . ' %
I (I"+M3[,L5M$5'(BJK#(I"
 1,L_MJK#Q'  >D.S+5 0
)$5%,MWV]
1*W+3[d%M'JK#[
M%l"7 '3*2,L5ME. )
M ,P$3[.S+M,
L55!8M$6 H%.78
1$%Q"%. $I53[$.M',
wz)'Mfmulti-threadingg H%  %
5*([51I5JK#,w'._M
'*2 5V]% %>+>'*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  .
='5JK !'3.='5JK(,i6OE.
6 X  <I;  ) >? ( 3     $ % Q
! : '3 < ' )[  ,j'.$>W 
O>6,J:>=>?:1$7=>?
$Q%$!3'BQ$ '*2,N
3O.>+%.<['5
:,
•*3[I M`$Qd
,Code segment d=)*([,
T,Resource segmentd= 3'3$I $

$3[Q,
`,Execution segment d=$3
[,.[(I" >6Of>63[gd
e L[>'53fweak mobilitygd& >DDD%k
D 1'%I'Q,L5'G'[O>63$5
*(['*2I@'QF%F .,~23
>63'.$'(".& Q'.O$
'*2,
y
e L[>'5fstrong mobilitygd"`$Q,
AG
'$[$$3['.'*2>4
'.>'3%$M'*23)'OIB
>4*'.,u€$[O>6>'51( 
[O>63l%.(,
1.3.2.3 Tác tử mềm (software agents)
pD.T'G(I"'.$dB$*(,- $/.
'GZD 4K'.$d
,N>'5d*(=l.K>'5fmobile agentg,
L5  K> '5$ 5 K. %"X'Y+ 
%,K>'5'/0".>'5,K>
'5*7Q"_2[O>'5f  Ig
%<3,
T,Nd*(=l.Kfintelligent
agentg,- $/. K%*d
e NK >finterface agentg6_2 *7K>?  
5 G=>?,
e NKfinformation agentg$K!)3
K
 >,=XK$$!"4

$%,•"M@J3$8a
Thuộc tính
Chung cho t
ất
cả các tác tử ?

tả
p   
.
. '5.
uDD
.
A='66''Y*7,
V D . wF  $'5'5'3
*7,
 

D
. . 'Y*7K
>?$K%,
  
w
w "71flifeg*('1>$
L ID
w
.>64($'3(%
p>D
w
.%"X8
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 H3[
.)'3!6,
N 51: '>*7'*2:
,.I<' '> :,
,AGD QE *7,
T,'*2K>?''BB>'5,
`,t"!3Y=,
1.3.3.1 Các khái niệm cơ bản
e Nfnamegd$5_I G%'*2>'
3
'3 :,
e A. 5Q")faccessg$ 

'.,i '.6Q5')faccess pointg,N
D '*28$'B&faddressg,L5..
D ,pD .'Y+7'%,
P>?d%IK>?5 $>4$'3
%[@@'B&CVlIB'Y,
e AB>fidentifiergd$5 .+'Gd
,L5'B>3<'3,
T,L_'*23<IF'B>,
`,L5'B>3,
-7 > 'B > 6  >R >$ ( % ' ) '3 5 
,6E%K>?'B&$'B>'*2[>>D
.'Y,
e wfnamespacegd$Y= :

,
j>RI;'MB.*{'MBfDg,
e V:"
T
fname resolutiongd>'MBD D[%3
 G
'B>,
1.3.3.2 Định vị thực thể di động
L5*(YI3'_2>'5 .
  '. $ home-based I;  '*   'B '  fhome
locationg(l+  3  'B '     , N  
3 [ 'B ' *7'*28($'*2 ,L5
>?%z) D{ID>$ Mobile IP fCV>'5gL_ >'5
K>?'B&CV1'B,N<" 3'3'B&CV'.'Ql
'*2'3mobile host’s home agent f(!"# >'5g,-(!"#
$'*2'G5~p-*(='B&= 'B
&CV   >'5, j< =%$   > '55 
% .' Q5'B& 7 '>   '5 
3,AB&3fcare of addressg$'*2'X%#home agent,
w  DD )'*25 . 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.''*2I 'B'
 >'5,6#;'B&CV'*2K>?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. +  
%/'*23:<1''5
J.5%.%/Q+,-+'.'*28
`
$1 :fdistributed garbage collectorsg,N Q
$6l[1!+'B>fnamingg$
3freferencing entitiesg$'5 +
%/'*23+,
h
1.3.4 Đồng bộ hóa
N :7_$%[
)Q".5%8$7)#'1<7
+ $Q,j'.%3[
Q5'(B>+ 57[l%%0*(
I<%"%,-+'$<'Q'*2"
!3 'MI5 ,
1.3.4.1 Đồng bộ hoá đồng hồ vật lý
eL_'$'G'MM)#'.$'3J
B,
N)6%"'MM !'*7,-
%86$I5'3'B7ftimerg,j5'B7 
*7$<J,w'*2+F5'
3> '5Q1Y'B5$  
'.,~%3$I5'3fcounterg$
+fholding registerg,
LG>Q 1I5> '5 %Y'B .%
'"I"  %'J
Q1,N3%51.[<"l
Q1%6>Q:<'MI5$B'8
l%,r%  B 7'*28$  

'MM,P$%3!" %$$*([.'/07
%3|D'1*23['l%/
J,
N 51177'MM$<!8,
A1+1$'/0.'MM) $,P>
'MM)*3l"T<'d
,~$3$ ''MI56'MM3,
T,~$3$ ''MI56,
n
e P'MI5+'MM)#Q">$ 7\
.
B $Qq712 $Q]Nfuniversal
coordinated timeg,
-3.wwv receiver ['MI5
.l'*2
D ]N,-*23%.
wwv receiver ["K>?")'MI5.'MM)#,
.`")YI3'.$d
,t"),
T,t")jD%DD,
`,t")I[,
N<") '.[1(I",L_JD
*.5I5'37. 5@9Q 5:,t8
B'MM$$,w7]N$[B'MM
l$fg,N 53*F6.fg• <"
$,9.%*F$fg,•,
j5 'B 7  % @  J 9 Q   5 :, ND  
3I5'B79•oyQToyyytick  57,N3
+ 1 *( '1 ' '*2    '3 7   ' '
% " y

{n
 . U$ 5 $ '. . <  B 4 Tnxxc'3
ToyyTtick  57,L5J(M5;1‚ "
Od
{‚ƒ >,> ƒ„‚
$I5'B7$J,9;1‚'*2J'BIF$"
J<$'*28$Maximum Drift Rate,
1.3.4.2 Đồng bộ hoá đồng hồ logic
a. Tem thời gian Lamport (1978)
A'MI5'MM ~ 'BU51!8'*2
8$happens-before fJ" {*%g, r% J"*%I
fw#d…Ig'*28$'63d
o
,I$%J" 3[$J"*I,
T,I%553[*K5''$I$
%)''.,
9DqID| D$5!%H D [33…I$I…[l
.…,-3%J$J" 3[%f)
%3 !'1*2= Ig [ J… $ % '6 $ "
…JE3,-+%$'*28$'M7,
-3.%J[%#fJg$D7J0O
'%d-3J"*I 3[[fg†fIg,
e -3$II>R*(=K)'[fg
†fIg,
e L8%:I$I[fg‡
fIg
,
b. Nhãn thời gian vector (Vector Timestamps)
L5O7D PNfg'*2 5%.5,
-3%*%I[.PNfg†PNfIg,PD O7

'*2J:>I;'_3[V

>[5D P


5d
,P

ˆ‰$1%'OJ" '3I:7FVi,
T,-3P

ˆŠ‰•%[V

;%%'OJ"FV,
N5'Q'*2>[IFXP

ˆ‰'M7_
%  J"  F V

, N5  =  '*2 > [ I;  piggy-
backing D ''*2K
1.3.4.3 Các giải thuật bầu chọn (election algorithm)
-) :'/03['./*'1
fcoordinatorg*7%FJ*finitiatorg G%[
/'GI, N  Q $  l JD JH  )   ' IQ 8
m
' 1 ,N)+'1'*2>*Y!
3['GI,
-3<"3['1%.'G':
I[%.$ '853['GI,P[36

l"K;_3[.5 1><>?*'B&
.f''("E ;_3[  g, 
 )   IQ8 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)
w53[I<%[6#;'1%/'=
Q+[ .I@'Q55IQK,L53[Vl Y=
5IQD I*d
, V K 5  ' IQ K f‹~‹NCv-g   < "  3 [
13[ (,
T,-3%."MVl@K$F$'1,
`,-3.'.13[ ("7.$
V'OJ ,
b. Giải thuật vòng (ring algorithm)
t"K;3['O'*2@D ))$ '_3
[I3'*23[%33$,w53[I %[
<'1 .J:>5 'IQK M1 
 . $K' 3[%33.,-33[%33'O
downIKlI0 ! $ " '3 3 [ %3 3  /   '3
%53[ ' '*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"))fDŒD> g,
e t"):f>ID> g,
e t")K>? %Df %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ŽfK{p gd'13I $[ 
%:'*2+,
T,•Žf<!{ Dgd %J:I<I3
1,
`,•CŽf%{ D>gd 'M7%:F 
,
h, •iŽf:I{>IDgd% 'O%3['Y$%H
>$:I,
b. Phân loại giao tác (Classifications of Transactions)
e t }f| g
~$ '("<0Oh<pCi,93
 }$6% H%3!"'*2
%3fcommitedgI0fabortedg, %='5
1 }$3,
e t MfDD> g
w@?3 }K>? M,
L5 M.<6451  .%
$  I M %,L_  E.
5  .,
e t :f>ID> g,
A'%*(.T3)dA%*(•I!Ž
fD  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),-351|D'*2 *..3?
$  % G  1 I;  '3 $    I"
  %,.  I"   6 I"   1 '*2  >+  IB *

0,
T,NXX4'.Xb$K>?$,N
E"" K>?I" ,P<''*2'GF':
$$3$ ''"I" <!,
.T.[<!d
e   [ < ! < >+  $  : f> D
 D
 >Dg
e   [ < ! < D $  : fD D
 D
 >Dg,
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 Md
e L [ < ! G f  Dgd % 0 ' % d
j< %[
 '8$ '(B>+J['3l"5B
*(= Q<J,
e L[<!QfD!D Dgd$[<
! 
3 (       [ < ! G,  '*2 '*  IF
~ fxmxgD +"I5'*2W 1'
Ty
JK#L[<!3,
e L [ < ! 3  fDŒI  Dgd  [
<
!$3 ( [ <! G*  ( 
[<!Q

e L[<!:!"f DgdFQ*6

E'O.'3:!"%')'3D D7,-3
%jIB'5$"*FIF%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%  Dgd  [ $ . +
'G
'd
,N)'3I3'MI5 f Œ IDg'*2
%325% >+f> Dg<!5Q,
T,w. 5I3'MI5'*2H '3
%<" *'.'O $$F8(,
`, w .    '8   '( B >+ '*2 H
 '3%<" *'.'3I3'MI5'O'*2
,
e L[<!'fDDD Dgd.5% >+

'*28$<!<•3.:D !@d
, N*%5 '8 G'(B>+W
'*2<"Q'O*'.IF3["
'*2 $<$,
T,N*%5".f'{DDDg'*2H<
" '8$*'.'OIF3["'*2
 $<,
T
`,r)'3I3'MI5 $<!•C•v
e L[<!'$ fD Dg
1.3.5.2 Các mô hình nhất quán lấy client làm trung tâm

e L[<1fDD Dg,
e L[<!'8'f   D>g,
e L[<!'f   sDg,
e L[<!'8 fD> sDg,
e L[<!D '8fsD 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'BJD
%$ F':$> @'GI" % >+,.` I"
*d
e I" *7fDDDg,
e I" %F fDD{D>Dg
e I" %%F fD{D>Dg
b. Lan truyền cập nhật (update propagation)
P<''*2" !3F ':$ $3$  ') )
4I" '3I" %,
1.3.6 Chịu lỗi
L5'GI: 6:I1
'($%  _ Qfpartial 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 $I5X,
TT
1.3.6.1 Các khái niệm cơ bản
r':$'/0 :d
e Nb$favailabilitygd1b$K>?I<%Z6
$ ,  5 $'"I"   1  '55
JF87''*2Q$b$ '5D 

Q*7K>?,
e N)freliabilitygd1?$%IB_,
-*2
b$)'*2'BU!'35
% "7[5'7,L51.'5) .
$?$%IB'   % "7%>$
e N $fsafetygd1._7[‘%."
 
J",P>?*3[ '5 1'%X
*2K'* *7CE?Q5'5 $ ,-3
1'%*370 % "%@)!")
%%,
e NI" ['*2fmaintainabilitygd%"X$61IB_

.%@?_,
-351.'*2"h['*28$51.'5
)fdependabilityg,
w :    _   :   . `   _ d ~_ <
7ftransient faultsg$+_&J"Q<'$%G
+,~_Gfintermittent faultsg$+_J"<'$'.G,
~_:>$/8$_*7fpermanent faultsg,
j _/.[_d_?'Yfcrash
failureg%DDIBD _I0.fomission failureg%DD%'
='*2QK G)_7ftiming failureg%7.
"7*!7!'B_'=frespond failuregDD
." 7*%'6 $1$ _Z farbitrary failureg
T`
%DD"7Z$ 7',
1.3.6.2 Che dấu những hư hỏng bằng sự dư thừa.
-351"B_1<$1@\'J<

_4+3[%,wz) D><_'.$
K>?>*4,
.` >*4d
e i*4dI4'*2$ ' HM?+
I
'OIB%IB_,P>?O9.'*2$ >+
'M?%.R'*7,
e i*47d5$'O'*2$'.3Q.
'*2Q+,
e i*4)#d$%z)<YI3 B_, '*2
>
 )8f'5).6[.T@TTYag 
%z)$%fj Dmhm.'3h'5(*&>`'
Ig  f8$& [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.$
 GI'$,N<'Q"!3F':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 *72B_ :&)$
Th
3[IB_,N6EQ!:'3_
,N 3%J:>1)<'

13$"% _I0.$_?'Y,_Z.
J">*> H'%3!"$ 1
'$.'*2*+ 57%>$$'.
'*2'*%*7K'OK'5',
*()d
e N''fV     g
e -+UuV _7fuVrDDVDDD
|
•Dg
1.3.6.5 Truyền thông theo mô hình nhóm tin cậy
L_3[3)%31'{'3[%$.
1,95Y=*)$%!"%.
. >",N31*23[0[
*3''*2'5)J1%'{')$
%'("%=,
Cam kết phân tán (distributed commit)
t")%3TfTVgT$dIQKfvoting phaseg$
 !3 'B fdecision phaseg, N  ' %@? *7 2 '
1IB?'Y*7'O'J<")%3`q`V,
1.3.6.6 Phục hồi lỗi (recovery)
L5%._J"[M?_$'3=Q3,
e V? M _  fbackward recoverygd '*  1 4   _
$F'6*'.,
e V?M_3fforward recoverygd5%1'O'$ 
_
Tn

×