Gestion de groupe et détection de partition en environnement mobile

58 195 0
Gestion de groupe et détection de partition en environnement mobile

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ềìỉ ỉỉ é ệ ề ểễ ểề ễểệ éề ểệẹ ỉ ế ềìỉ ỉỉ ặ ỉ ểề é ì è é ểẹẹề ỉ ểềì ầấ ậè ặ è ấ ặ ầấ ậ èẫ ìỉ ểề ệểễ ỉ ỉ ỉ ểề ễ ệỉ ỉ ểề ề ề ệểềề ẹ ềỉ ẹể é ặ ấ ìễểềì ìỉ ỉ ệ éì é ặ è ề ìỉ ề ề ì ầặ ặ ì ề é ểệ ỉể ệ ậ ầẻ ấá ế ễ ấ ễ ệỉ ẹ ềỉ éềìỉ ỉỉ ặ ỉ ểề é ì è é ểẹẹề ỉ ểềì ề ểệẹ ỉ ế èằặè ặấậ ấ ậ ầẻ ấ ệíá ẵ ể ỉ ắẳẳ ấ ẹ ệ ẹ ềỉì ể ệ ì ỉểỉ ểệ ệ ẹ ệ ệ é ẩệể ìì ệ ìểề ế ễ ệ ệ éềìỉ ỉỉ ặ ỉ ểề é í ề ì ểề ề ễểệ ể ệ ễệểễểì ì ỉ ỉ ẹ ể ệ ề ệ ễ ề ềỉ ì ềế ẹể ì é ệ ẹ ệ ẹ ềỉìá ìểề ìểỉ ề ễ ệẹ ề ềỉ ỉ é é é ìì ệ ẫ é ỉệể é ĩễệ ìì ểề ẹ ễệể ểề ì ễéì ì ề ệ ì ệ ẹ ệ ẹ ềỉì ểềỉ éềìỉ ỉỉ é ểềề ế é ỉ ệ ề ểễ ểề ề é ệ ìể ệ ề ề ỉểỉ é ềìỉ ềỉ ỉ ế é ề ểé ẹ ệ ểềề ìì ề ỉểì é ì ễệể ìì ệì ỉ é ì ễ ệìểềề éì ẹ ì ỉ ì ĩ ỉ ì ệ ì ỉ ĩ ỉệ ì ìỉ ệì ì ểệì ỉệ ì é ềì é ế ễ éặè ễểệ ề ẹạ ểệ é ệ ẹ ệ é ệ ì ẹ ềỉ ẹ ì ẹ ệ ỉ ệ ệ ễểệ éề ểệẹ ỉ ế ễểệ ẹ ể ệ ểềề ỉệ é ễ ệỉ é ệ ẹ ềỉ ìỉ ìểề ểềỉ ỉ é ệ ĩá ì ì ểềì éì ệỉ é ẹ ềỉ ỉ ễểệ é ệ ìểỉ ề ỉểỉ éểề ề ệ ề ẹ ệ ềì ì è é ểẹẹề ỉ ểềì ặèà ỉ ềì ệ ẹ ệ ệ ỉểỉ ễ ệỉ é ệ ẹ ềỉ ỉ ề ểệ ệề ệ ễểệ ẹ ể ệ éé ì é ễệểẹểỉ ểề ễểệ é ệ ẹ ỉ ì ềì éé ểềề ề ễểệ é ìểỉ ề ề ẹ ì ễ ệ ềỉìá ẹểề ệ ệ ỉ ẹ ì ẹ ì ễểệ é ệ ìểỉ ề ỉ é ệ ề ểệ ẹ ềỉ ấ ìẹ ểéỉ ểề ìểì é ềểẹ ì ệ ì ĩ ì ềì é ỉ ề ểệẹ ỉ ế ẹể é ệ ỉểỉ ề ệ ìỉ ềỉ ểềề ỉ ể ệ ễ ế ề ĩ ểềì ĩ é ể ệ ểỉ ề ềể ễ ệ ĩ ỉ é ì ỉ ệì é ễ ỉ ẹ ểềề ễểể ệ ì ĩ ễễé ỉ ểềì ệ ễ ệỉ ì ỉ ỉệ ề ễ ề ềỉ é éể é ì ỉ ểề ềì ề ề ệểềề ẹ ềỉ ẹể é é ì ỉ ệẹ ề ĩ ẹể é ì ìểềỉ ì ỉì ệ ế ệỉ ễé ì ì ẹ ề ìẹ ì ìễ ế ì ìỉ ểề ểềề ĩ ểềì ỉ ìỉ ề ì ệ ễệ ề ễ é ì ìíìỉ ẹ ì ểẹẹề ỉ ểề ểềạ ỉểé ệ ề ỉ ì ề ì ế ễ ẹ ềỉì ìỉ ểề ệểễ ệ ế ẹễểệỉ ềỉ ễểệ ểềìỉệ ệ ì ỉệ ĩ ềệ ì ễ ệ ế ỉệ ễéì ề ế ỉệ ẹ ễ ệỉ ỉ ểềì ì ệ ìỉ ểề ì ễễé ỉ ểềì ệ ễ ệỉ ì ềì é é ỉỉ ệ ỉệ ểềỉ ẹểềỉệ ểẹẹ ềỉ ỉ ĩ ìỉ ềỉ ễ ềỉ ỉệ ệểễ ề ì ỉ ỉ ệì ì ềỉ ìệ ì í ềỉ ềì ế éé ẹ ìệ ì ềỉ ệ éì éé ề ểềề ỉ ỉ ểềề ĩ ểềìá ỉ ỉ ệìá ềểì ễệểễểìểềì ề ềể ềể éé ì ễệểễệ ỉ ì ềỉ ệ ìì ềỉ ì ì ệ é ì ễệể ììì ì ẹ ỉỉ ềỉ ểệ ềểề ì é ẹ ềỉ ìệ é ềì ẹ é ệểễ ẹ ì ìì ìệ é ì ềì ẹ é ì ề ễệểỉểỉíễ ềỉ ệ éì ì ễệể ììì ìỉ ểềìỉệ ỉ ễểệ ỉ ìỉ ệ ềểỉệ ểỉìạ é ì ẹể é ỉ ỉểé ệ ề ệểễ ĩ ì ễệể ììì ểệệ ỉì ểềề ỉ ì éé ềỉìá ểềề ỉ ì ể ễ ệỉ ỉ ểềề ì ễễệể ỉ ìá é ểệ ỉ ẹ ế ệ ễ ệỉ ìỉ ểề ệểễ ỉ ìỉệ ỉ è ệ ề ì ề ệ é ìì ề ỉểệ ề ẹ ể ểẹễỉ ề éé ề ểệẹ ỉ ểề ì ệ ì ệ ệểềẹ ềỉá ỉ ỉ ệ é ìì ể ỉ ễỉ é ỉ ểệ ỉ ỉểệì ễệểễểì ỉ ì ểềề ỉ ểề ẹ ề ìì ỉể ỉ ểệ ề ẹể é ẹ ềỉ ề ề ềạ éỉ ỉểé ệ ề ệểễ ểẹẹề ỉ ểề ìíìỉ ẹìá ìỉệ ỉ ỉ ỉỉ ềễ ệ ễễé ỉ ểềì ĩ ìỉ ẹ é ệ ề ì ểềề ỉ ểề ề ễ ệỉ ỉ ểề ì ẹ ềỉ ểề ỉ ì ỉ ỉ ỉểệìá ề ệểễ ẹ ẹ ệì ễ ì ệ ỉ ề ềỉ ệ ìỉ ề ễệểễ ệỉ ì ẽ ỉ ỉ ì ì ệ ễệể ìì ì ệ ểỉ ỉ éệ ểềề ỉ ỉíá ề ề ệ ì ểềề ỉ è ì ệ ỉ ệ ìỉ ệ ế ệ ì ề ẹ ềỉ é ì ệ ể ì ể ề ì ệì ệ ế ềỉéí ẹễểệỉ ềỉ ệ ì ỉể é ấ ềỉ ệ ì ệ ểệ ì ễễé ề ì ệ ễ íì é éể ỉ ểề ểệ ẹể ẹ ềỉ ẹ ề ìẹì ể ệểễ ẹ ẹ ệì ễ ì ể ỉ ề ì ẹể é ểẹễỉ ề ẹể é ỉ ệẹ ề éì ểé ìễ ề ề ễểệỉ é ì ỉể ề éệ ệ ẹ ềỉ ềểỉ ểềéí ì ểềề ỉ ểỉ ỉ ề ễ ệỉ ỉ ểề ì ỉ ể ểệệ ỉ ểềề ỉ ễệể ìì ì ễệể ìì ì ỉ éìể ễệểỉểỉíễ ì éểễễ ỉể é ểệ ỉ ẹá ệểễ ẹ ẹ ệì ễá ẹ éạ ỉ ìỉ ểệ ễễệể íểệ ì ẹể é ỉíá éỉ ỉểé ệ ề ìỉệ ỉ ệ è é ìẹ ỉ ệ ì ấ ìẹ ìỉệ ỉ ẵ ềỉệể ỉ ểề ẵ ẵẵ ẩệể é ẹ ỉ ế ẵắ ểỉ ỉ ểề ỉ ể ỉ ì ìỉ ẵ ề ệểềề ẹ ềỉ ỉệ é ẵ ểềỉệ ỉ ểề ẵ ẩé ề ể ẹ ềỉ ắ ẵ ỉ ỉ ệì ề ề ệểềề ẹ ềỉ ẹể é ắẵ ể é ề ệ é ắắ ỉ ỉ ệ ắ ỉ ỉ ệ ắ ỉ ỉ ệ ểềề ĩ ểềì ắ ỉ ỉ ệ ễ ệỉ ỉ ểềì ẵẳ ắ ì ìì ểề ẵẵ ắ ểề éì ểề ẵắ ậíìỉ ẹ éé ề ì ềểề ểềề ỉ ỉ ểẹẹề ỉ ểề é ệểễ ẵ ẵ ểề ễỉ ẵ ắ é ìì ỉ ểề ẵ ẩệểễệ ỉ ì ẵ ẵ ỉ ì ĩ ẹễé ềỉ ỉ ểềì ĩ ìỉ ềỉ ì ẵ ệểễ ẵ ắ ệểễ ẵ ểĩ é ẹễé ềỉ ỉ ểề ẵ ểề éì ểề ẵ ậễ ỉ ểề ề ềể ì ệ ẵ ể é ìỉ ểề ệểễ ìíìỉ ẹ ệ ễ ệỉ ẵ ẵ ắ ìỉểệ ế ì éể ĩ ắẳ ậ ẹ ắẳ éé ề ậ ẹ ểềề ĩ ểề ắẵ ậ ẹ ễ ệỉ ỉ ểềề ẹ ềỉ ắắ ẩệểễệ ỉ ì ì ệ ìỉ ểề ệểễ ểề éì ểề ệ ỉ ỉệ é ểệ ỉ ẹ ì ỉ ễệểỉểỉíễ ắ ắ ắ ẵ ệ ỉ ỉệ ắ ắ é ểệ ỉ ẹ ì ắ ắẵ ẩệ ì ềỉ ỉ ểề ề ệ é ắ ắắ ẩệ ì ềỉ ỉ ểề ỉ éé ắ ẹễé ềỉ ỉ ểề ỉ ỉ ề ẹ ềỉ éểễễ ẹ ềỉ ểề éì ểềì ỉ ễ ệìễ ỉ ì ẳ ắ éể ệ ễ ẩệ ì è é ì ệ ì ẵẵ ẩ ệỉ ỉ ểềề ẹ ềỉ ẵắ ậỉệ ỉ ì ắẵ íìỉ ệ ì ì é ềì é ệ ì ễỉ ỉ ểề ìỉ ểềề ệ ểềề ỉ ỉ ắắ ậ ỉ ỉ ểềì ễ ệỉ ỉ ểềề ẹ ềỉ ẵẳ ắ ỉ ỉ ểề ễ ệỉ ỉ ểềì ễểệ é ẵắ ẵ ệ ỉ ỉệ ắ ề ìíìỉ ẹ ìỉ ểề ệểễ ểẹẹề ỉ ểề ẵ ệ ỉ ỉệ ệểễ ẵ ệ ỉ ỉệ ệểễ ẵ ẵ ệ ỉ ỉệ ắ é ểệ ỉ ẹ ìỉ ểề ệ ẹẹ ì é ìì ì ìíìỉ ẹ ễệểễểì ệểễ é ể ệểễ ắ ắ PDG ẳ ìỉ ì ỉ é ĩ ẵẵ ẫ ỉệ ểệẹ ì ắẵ ỉ ỉ ệì ắắ ề ể ệ ề ẵ ỉểé ệ ề ĩ ỉ ì ẵ éé ề ì ì ỉ ỉ ệì ểẹễ ệ ìểề ềỉệ ìíìỉ ẹ ễ ệỉ ỉ ểềì ểẹẹề ỉ ểề ệểễ ỉ ỉệ ì ễệểỉể ểé ì ẵẵ ẵ ìỉ ì é ểệ ỉ ẹ ì ẵ é ểệ ỉ ẹ ễệ ề ễ é ề ễệể ììì p ắ AgreementP hase ỉ SynchronizationP hase EstimateExchangeP hase ẩệể ệ ì ỉ ểề ỉ ểềì ìễễé ẹ ềỉ ệ ì ễ ỉệ ẵ ềỉệể ỉ ểề ẵẵ ẩệể é ẹ ỉ ế ễễ ệ ỉ ểề ì ềỉì ỉ ì ểệ ề ỉ ệì ễểệỉ é ìá ì ệ ì ĩ éể ĩ ì ềì é ẽ ặà ểềìỉệ ỉ ểề ễ ệ ì ìì ìỉ ềỉì ễ ệìểềề éì ềẹ ệ ế ì ẩ ẹ ềì é ì ềề ì ẳì ễểì ềỉ ì ìíìỉ ẹ ì ệ ễ ệỉ ì é ì é ềỉì ẹể é ì ắ ễễ é ề ểệẹ ỉ ế ẹể é ệ ìể ệ é ì ễệể é ẹ ì ĩ ìỉ ềỉì ế ìì ỉ ễ ìạ ềể ĩ ễệể é ẹ ì ề ề ệ ề ềểạ ì ệ ệ ì ềểề ì é ẹ ềỉ ễểệ ềì é ì ìíìỉ ẹ ì ệ ễ ệỉ ì ễ ĩ é ỉểé ệ ề ẹ ì ìì ễểệ ỉệ ỉ ệ é ì ễệể é ẹ ì ìễ ế ì ề ề ệểềề ẹ ềỉ ẹể é ễ ĩ é ĩ ỉ ìà ìỉ ểề ểềề ĩ ểềìà ỉểé ệ ề ìíìỉ ẹ ì ĩ ỉ ì ìỉ ề ì ỉ ìễểì ềỉ ệ ệ ẹễểệỉ ềỉ ễểệ é ì ìíìỉ ẹ ì ệ ễ ệỉ ì ĩ ễệểễệ ỉ ì ẹễểệỉ ềỉ ì é ì ệ ỉ ế é ì ểẹễểệỉ ẹ ềỉì ẹ ì ề ễễ ệ ìì ềỉ ẹ ì ỉ é ỉ ễệ ẹ ệ ềì é ìíìỉ ẹ é ì ểềì ểẹễểệỉ ẹ ềỉì ể ềỉ ề é ẹ ềỉ ễễ ệ ỉệ éểệì é ì ìíìỉ ẹ ì ệ éìá é ễệ ểệ ỉ ệ ểẹ ề ìểềì ễệ ì ềỉ ì ì ềỉệ ì ĩ ễệểễệ ỉ ì ỉ é ì ểề ĩ ễệểễệ ỉ ì ềểì ểềề ềỉ é ì ế ỉệ ỉíễ ểệẹ ì ììệ ììệ ế é ĩ ỉ ểề ìíìỉ ẹ ễ ề ì ềì é ễễé ỉ ểề ì ỉểé ệ ề ĩ ỉ ì ềì é ỉ é ẵẵ ì ệ ềểề ì ệ è ệ ểề ề ẵẵ ẹ ìế ềỉ ềểề ẹ ìế ềỉ ẫ ỉệ ểệẹ ì ỉểé ệ ề ìỉ ề ìễ ềì é ễểệ é ỉểé ệ ề ểề ỉệ ệ ểề ềỉ ềểề éì ệ ề ĩ ĩ ỉ ì ỉ ì ềì é ìễ ễ ĩ ì ệ ệì ễệ ẹ ệ ì ì ì ểề ẵ ế ìíìỉ ẹ ệ ễ ệỉ ệ ìà ể ểỉ ềì é ỉ ẹễì ắ é ểệ ỉ ẹ ì ẵ ắ ẵẳ ẵẵ ẵắ ẵ ẵ ẵ ẵ ẵ ẵ ẵ ắẳ ắẵ ắắ ắ ắ ắ ắ ắ ắ ắ ẳ ẵ ắ ẳ ẵ ắ é ểệ ỉ ẹ ắ AgreementP hase ỉ SynchronizationP hase ễệể ệ AgreementP hase() ệ ễ ỉ ề ỉ é ìỉ ẹ ỉ ề ệ ẹ ềỉ ễ ì estimate (reachable, f ailure, disconnect, partition) version[p] version[p] + SynchronisationP hase() EstimateExchangeP hase() ềỉ é stable ễệể ệ SynchronisationP hase() synchronized {p} ì ỉ ể ìíề ệểề ị ễệể ììì ì ề ìíề ệểề ị ỉ ểề ệ ế ìỉ ểệ éé r estimate.comp \ {p} ể msend( SYNCHRONIZE, version[r], version[p], symset[r] , {r}) ỉ ểệ ìíề ệểề ị ỉ ểề ỉ ểỉ ệì é (estimate.comp ỉ ềỉ é event ì event ể synchronized) ể ệểẹ PDG msuspect(fp , dp , pp ) : P fp dp pp ểệ éé r ( \ P ) \ reachable ể symset[r] reachable msend( SYMMETRY, version, reachable , ( \ P ) \ reachable) reachable \ P f ailure fp disconnect dp partition pp estimate.comp estimate.comp reachable estimate.f ail estimate.f ail f ailure estimate.disc estimate.disc disconnect estimate.part estimate.part partition ểệệ ỉ ìíẹẹ ỉệí ễệể é ẹ mrecv( SYMMETRY, V, P , q) : (version[p] = V [p]) ề (q estimate.comp) estimate.comp estimate.comp \ P mrecv( SYNCHRONIZE, Vp , V q, P , q) : ể ể ìểé ỉ ẹ ìì ì ề ì ề ỉ ìíề ệểề ị ỉ ểề ệ ế ìỉ ệểẹ q ệ ìễểềì version[p] = Vp ỉ ề synchronized synchronized {q} version[q] < Vq ỉ ề version[q] Vq agreed[q] Vq msend( SYNCHRONIZE, version[q], version[p], symset[q] , {q}) ìỉ ẹ ỉ ểề ệểẹ q mrecv( ESTIMATE, V, E , q) version[q] = V [q] ẳ ẵ ắ ẳ ẵ ắ ề ểệệ ỉ ìíẹẹ ỉệí ễệể é ẹ q / estimate.comp ỉ ề msend( SYMMETRY, version, estimate.comp , {q}) ễ ỉ ỉ ểề ìỉ ẹ ỉ ểề éì (version[p] = V [p]) ề (p E.comp) ỉ estimate.comp estimate.comp E.comp estimate.f ail estimate.f ail E.f ail estimate.disc estimate.disc E.disc estimate.part estimate.part E.part r estimate.f ail : r estimate.disc ỉ estimate.f ail estimate.f ail \ {r} r estimate.f ail : r estimate.part ỉ estimate.f ail estimate.f ail \ {r} synchronized E.comp agreed V ề ề ề ắ é ểệ ỉ ẹ ì é ểệ ỉ ẹ ễệ ì ềỉ é ễ ì EstimateExchangeP hase ì ềì é ế éé é ì ễệể ììì ìạ ềỉ ề ệ é ệ ìỉ ẹ ỉ ểề ỉ ể ỉ ề ệ ề ểệ ìệ ỉỉ ẹ ìì ì ESTIMATE ỉ PROPOSE é ề ì ể ì ềỉệ é ì ễệể ììì ìì é ì ắà ểệ ễ ệé ệ é é ểệ ỉ ẹ ễệể ììì é agreed ẫ ề é ềì ẹ é ệề ệ ẹ ìì é é ễệể ììì ìì é ì é ềìỉ éé é ềể éé éé ề ìá ìỉ ẹ ỉ ểề ỉ ììệ ệ é ểề ệ ề é ểệ ìệ é ềì ẹ é é ẹ ẹ ệì ểề ề VIEW ĩ ỉệ ì é ìỉ ẹ ỉ ểề ẫ ề ề ễệể ììì ệ ể ỉ ỉ ệ ỉệ ềìẹ ỉ é ẹ ìì ỉệ ĩ ỉệ ì ễệể ììì éé ềỉ ể ểềề ỉ ềỉ ì ỉệể ì ềì ẹ é ì ì ỉ ểề ễ ệ ệ ễễểệỉ ểềề ĩ ểềì ỉ é ễéì ễ ỉ ỉ ềì é ễệể ệ CheckAgreement(C) ìỉ ề ìì ệ ệ é ểểệ ề ỉ ệ ễ ỉ ìì ỉệ ẹể ễ ệ ề ểểệ ề ỉ ệ ìỉ ì ỉ ì ỉ é ểểệ ề ỉ ệ ềể ề ẹ ìì ể ệ ỉệ ềìẹ ì ỉểì é ì ẹ ìì ề é ẹẹ ỉỉ ểề ỉ ểề ìỉ ệ éé ềì é ìỉ ẹ ỉ ểề ễ ĩ ễ ệ é ế ễểìì ề ĩà é ỉ ế ỉểì é ì ễệể ììì ìễểì ềỉ ế ìỉ ìỉ ẹ ỉ ểề ề ềểí ềỉ é ì éểệ ề é ìỉ é ễễ ệ ỉ ểề ễ ệỉ ỉ ểềì ễệể ệ SendEstimate ìỉ ẹể ì ềì ẹ é ì éé ề ìá ểềề ĩ ểềì ỉ ì ễệể ììì ềỉì ìì é ì ễểệ ễ ệỉ ỉ ểềì ề ễéì ắ é ểệ ỉ ẹ ì ẵ ắ é ểệ ỉ ẹ ễệể EstimateExchangeP hase ệ EstimateExchangeP hase() installed f alse InitializeEstimateP hase() ề ỉ é ì ỉ ểề ệ ễ ỉ ỉ ềỉ é event ì event ể msuspect(fp , dp , pp ) : P fp dp pp ểệ éé r ( \ P ) \ reachable ể symset[r] reachable msend( SYMMETRY, version, reachable , ( \ P ) \ reachable) msend( ESTIMATE, agreed, estimate , ( \ P ) \ reachable) reachable \ P estimate.comp P = ỉ ề SendEstimate(estimate.comp P, fp , dp , pp ) ẵẳ ẵẵ ẵắ ẵ ẵ ẵ ẵ ẵ ẵ ẵ ắẳ ắẵ ắắ ắ ắ ắ ắ ắ ắ ắ ẳ ẵ ắ ệểẹ PDG ểệệ ỉ ìíẹẹ ỉệí ễệể é ẹ ỉ ề á ìíề ệểề ị ỉ ểề ệ ế ìỉ ệểẹ q mrecv( SYMMETRY, V, P , q) : (agreed[p] = V [p] ểệ agreed[q] V [q]) ề (q estimate.comp) SendEstimate estimate.comp P estimate.comp P mrecv( SYNCHRONIZE, Vp , Vq , P , q) : version[q] Vq (agreed[q] < Vq ) ề (q estimate.reachable) ỉ ề SendEstimate estimate.comp P estimate.comp P á ìỉ ẹ ỉ ểề ệểẹ q mrecv( ESTIMATE, V, E , q) : (q estimate.comp) ỉ ề (p / E.comp) ề (agreed[p] = V [p] ểệ agreed[q] V [q]) ỉ ề SendEstimate(estimate.comp P.comp P.f ail P.disc P.part) éì (p E.reachable) ề (r estimate.comp E.comp : agreed[r] = V [r]) ỉ ề SendEstimate(estimate.comp \ P.comp P.f ail P.disc P.part) ẳ ẵ ắ á á á ểểệ ề ỉểệì ểệ mrecv( PROPOSE, S , q) : ctbl[q] S ệ ẹ ềỉ ểề ỉ ểề (q estimate.comp) ề CheckAgreement(ctbl) InstallV iew(U niqueID(), ctbl) installed true mrecv( VIEW, w, C , q) : (C[p].cview.id = cview.id) InstallV iew(w, C) ỉ ề ệ ệ ế ìỉ ỉể ềìỉ éé ề ề (q estimate.comp) ỉ ề ì ỉ ỉ ệẹ ề ỉ ểề ỉ ểề installed true ềỉ é installed ềì é é ểệ ỉ ẹ ệỉ ẹ ìỉ ểề ềểì ỉệểểềì ỉệể ì ễệể ệ ì ỉ ề ểề ỉ ểề ỉ é ì ì ềì é é ểạ ệểễ InitializeEstimateP hase() ìỉ ỉ é ì ễểệ ềểí ệ ề ìỉ ẹ ỉ ểề ề ỉ é ỉ é ễệể ệ EstimateExchangeP hase CheckAgreementP hase(C) ìỉ ỉ é ì ỉểì é ì ẹ ẹ ệ ì ềỉ é ẹ ẹ ễểệ ỉ ìỉ ệ é ểề ỉ ểề ểệ é ìỉ ẹ ỉ ểề ỉ ìể ỉ ềì é ẹ ẹ ễ ì ỉ ế é é ểệ ỉ ẹ ắ é ểệ ỉ ẹ ì ìỉạ ệ éì ểềỉ é ẹ ẹ é ệ InstallV iew(w, C) ìỉ ỉ é ì agreedà ễểệ ềìỉ éé ệ ề ềể éé SendEstimate(P, Pf , Pd , Pp ) ìỉ ỉ é ì ìỉ ẹ ỉ ểề ìỉ ềểí ễệểễểì ễểệ ẹ ỉỉệ ĩ ỉệ ì ễệể ììì ểệ é ìỉ ẹ ỉ ểề ềì ỉ ỉỉ ềì é ìỉ ẹ ỉ ểề é ệ ẹễé ệ é ểệ ề é ễ ệ é ệ é ì ấẵ ấ ễểệ ẹ ỉỉệ ẹ ềỉ ểệ é ì ềì ẹ é ì ĩ ễệ ẹ ệ ì ệ é ì ấẵ ấắ ểềỉ ỉ ĩ ệ ỉ ì ềì é ềì é ìỉ ẹ ỉ ểề ỉ ììệ ệ é ểề ệ ề ì ềì é ì ệ ễỉ ểề ễ ệỉ ỉ ểềì ì ỉ ểềì ắ ìỉ ểề ỉ ắ ậ é ì ẹ ìì ỉ ỉ ệì ểềề ĩ ểề ỉ ệ ễ ệ é ì ỉệ ì ễệể ììì é ệểễ éé ềỉì ỉ ễệể ììì éé ềỉì ỉ ễệể ììì p ể ỉ ề ễệể ììì q ềì ìểề ềì ẹ é é ểì ềì ìểề ềì ẹ é ì ễệể ììì ểềề ỉ ì éểệì p ềé q ì ễệể ììì é ì éé ề ì ấ ậ ề ễệể ììì p ể ỉ ề ễệể ììì q é ểì ềì ìểề ềì ẹ é ì ễệể ììì ì ễệể ììì ễ ệỉ ỉ ểềề ì éểệì p ềé q ềì ìểề ềì ẹ é é éé ề ì ấ ềểềì é ì ỉ ỉ ểề ễệ ì ềỉ ềì ẹ é ì ì ì éé ềỉ ì ệ é ì ì ềỉ ì ìểềỉ ễệểễểì ì ễểệ ỉệ ỉ ệ ễệể é ẹ ấ ậ ề ễệể ììì ềỉệ é ì é é ểệ ỉ ẹ ắ ì ềỉ ìệ é ễệ ề ễ ệ ểềề ĩ ểề ề ềỉ ề ễệể ììì ìểềỉ ễ ệ ìá é ì ệ ì ểềì ỉệ ểềì ì é ẹ ềỉ ệề ệ ễệể ệ ềểì ỉ é ìểềì é ì ệề ệ ì ệ é ì ấ ấ ìểềỉ ểềìỉệ ỉ ì ề ì ểềề ĩ ểềì ỉ ểẹẹ ỉ ểểệ ề ỉ ệ ì ỉệể ì ễệ ẹ ệ ì ễệể ệ ì ỉ é ì é ẹ ẹ ễệ ề ễ ế éểệ ề é ặểì ì ệểễ ệ ềỉì ễệể ìììá é ì ììễ ỉ ẹ ìì ềì é ì ỉ ểề ắ ỹ ì ỉ ỉ ệì ễ ệỉ ỉ ểềì PDG ề ễệể é ẹ é ề ể ệ ề ểềề ềỉ ễ ì ề ìểệỉ é ì ẹ ẹ msuspect ểềỉ ềỉ ễ ệ ĩ ẹễé é ì ềì ẹ é ì ì ềỉì ễểệ p fp = , dp = {r} , pp = {s} ễểệ q fq = {s} , dq = , pq = ề ễễé ế ềỉ é ì ệ é ì ấẵ ấắá ềểì ể ỉ ềểềì éểệì ễểệ p fp = {s} , dp = {r} , pp = {s} ễểệ q fq = {s} , dq = {r} , pq = {s} ề ễễé ế ềỉ é ì ệ é ì ấ ấ ềểì ể ỉ ềểềì éểệì ễểệ p fp = , dp = {r} , pp = {s} ì ẹễé ềỉ ỉ ểề ễểệ q fq = , dq = {r} , pq = {s} ặểì ểíểềì ế ệ ềỉì ềì ẹ é ì ệ ì ệ é ìá ềểì ể ỉ ềểềì ề ểềì ềìì ềỉệ é ì ẹ ẹ ệ ì ễệể ììì ề ììệ ềỉ é ểề ệ ề ễểệ ì ỉ ì ệ é ễệểễệ ỉ ẵ ắ é ểệ ỉ ẹ ễệể ìệ é ềỉ ệ ỉ ì ềì ẹ é ì é ìỉ ề ìì ệ ì ì ẩệể ệ ì ỉ ểề ỉ ểềì ìễễé ẹ ềỉ ệ ì ệ InitializeEstimateP hase() SendEstimate(, , , ) ễệể ệ SendEstimate(P, Pf , Pd , Pp ) estimate.comp estimate.comp \ P estimate.f ail estimate.f ail Pf estimate.disc estimate.disc Pd estimate.part estimate.part Pp r estimate.f ail : r estimate.disc ỉ ề estimate.f ail estimate.f ail \ {r} r estimate.f ail : r estimate.f ail ỉ ề estimate.f ail estimate.f ail \ {r} msend( ESTIMATE, agreed, estimate , reachable \ {p}) msend( PROPOSE, (cview, agreed, estimate) , M in(estimate.comp)) ẵẳ ẵẵ ẵắ ẵ ẵ ỉ ểểệ ề ỉểệ ẵ ẵ ẵ ì ề ễệểễểì é ỉể ề ỉ ểề CheckAgreement(C) ệ ỉệề (q C[p].estimate : C[p].estimate = C[q].estimate) ề (q, r C[p].estimate : C[p].agreed[r] = C[q].agreed[r]) ẵ ẵ ắẳ ắẵ ắắ ắ ắ ắ ắ ắ ễệể ệ InstallV iew(w, C) msend( VIEW, w, C , C[p].estimate.comp \ {p}) q, r C[p].estimate.comp : q C[r].cview.comp C[q].cview.id = C[r].cview.id) view ((w, view.id), {r|r C[p].estimate C[r].cview.id = cview.id}) éì ỉ ề view ((w, ), C[p].estimate) ề ệ ỉ vchg(view) cview (w, C[p].estimate) stable (view.comp = reachable) ề (q, r C[p].estimate : C[p].agreed[r] = agreed[r]) ẹễé ềỉ ỉ ểề ẹễé ềỉ ỉ ểề ìỉ ệ é ì ìỉ ì ềì ềỉ ệẹ ềỉ ệ ễỉ ệ é ì ẹ ìì èắ ể ề ệểễ ệì ểề ắẳ ẵ ềỉệ ậ ỉ ẻ ậ P DG ỉ ỉệ ềìẹ ỉỉệ é ì ềể ĩ ẹ ìì ệ é ẹễé ềỉ ỉ ểề ễéì ệì ễ ế ỉ ệ ì msuspect ệ ệ ề ì ẹé ỉ ểề ĩ ễ ế ỉ ìểệ ệ é ì ệ ìểềỉ é ì ì ềỉ ì èẵ ềì ệ ệ ề ể é í ì ềỉ ìệ é ể ì é é ểệ ỉ ẹ ềì é ể ìểệ ìỉ ểề ì msuspect ẻ ệểễ ẻ ệểễ ẹ ì ềểì ềểì ềỉ ệ ììểềì ì ì ềỉì ệểễệ é ìẹìì ềì é ế é ìểềỉ ẹễé ẹ ềỉ ì é ỉ ỉ ệ éé ề ì ỉ é ể ỉ ỉ ề ẹ ềỉ éểễễ ẹ ềỉ ẳ ậ ệểễệ é ì ặểì ẹểề ệểễệ é ìễ ểỉểềì ề ễ ế ỉ ềì é ế é ìỉ ẹễé ẹ ềỉ ệ ẹẹ ỉ ỉ ề ẹ ềỉ ẩểệ é ểẹễệ ề ệ ẹ ề é ễệ ẹ ệ ỉ ểềì ệ ìì ế ểệệ ìễểề ì é ìì ì ì ẹể é ể é ể ỉ ỉ ỉ ểềì ỹ é ìì èẵà ỉ ềểì ìểẹẹ ì ề ỉệ ề ểềìỉệ ệ é ệ ỉ ỉệ ẻ ềỉ ệẹ ệ PDG PDG éểễễ ẹ ềỉ éểễễ ẹ ềỉ ễệểỉểỉíễ é ềểì ỉ ễ ì ệ é ì ệ é ể ềểỉệ ì ệ ệ é ể ìỉ ĩ ìỉ ềỉ ệểễ ễểệ ềế ẹể ìá ềểì ểềì ỉ ệạ ểẹễé ỉ ệ é ìỉ ểề ĩ ẹ èắà ệểễ ềì ềểì ề ỉ é ì ềỉ éé ỉ ỉ ề ẹ ềỉ ệểễ ềì ỉ ệ ỉ ỉệ ỉ ệ é ì é ì ẹé ỉ ểề ì éểễễ ẹ ềỉ ì ễ ễì ệ ẩ ễéìá ềểì ệ é ìểềì ềì é ì ỉ ểề ễệ ề ể é ể ỉ ỉ ệì ệì ì ềỉì ìểềỉ ệ ì ì ẹể ẵ PDG ềỉ ệ ễỉ é ì ẹ ìì ểềề ĩ ểềì ỉ ì ệ ỉ ểềì ễ ệỉ ỉ ểềì ệểễệ é ìễ ềì é ễ ế ỉ ẩ ì msuspect ềì é ì ệì ĩ ìỉ ềỉì ì éểề é ì ỉ ì ề ì ềỉ ẩểệ ỉ ìỉ ệ é ểề ỉ ểềề ẹ ềỉ ễệểỉểỉíễ ềểì ỉ é ìểềì ề ễễé ỉ ểề ềì é ễ ế ỉ ệểễỉ ìỉ ééể é ỉ é ề ệ é ì ểẹẹ ề ì ì ềỉ ì ệ ìỉệí ééểì ệ ệ ễệ ẹ ệ ểẹẹ ề ĩ ẹ ìỉ é ề ễểệ ỉ ệ ệ ề ì ệ ễéì ệì ể ì ễểệ ể ệ ễéì ệì ễệể ììì ỉ é ì ỉ ểềá ễệể ììì ệ ì ỉ éé ềểẹ ỉ é ì ềì ệểễ ềì é ìíìỉ ẹ ễệ ì é ề ìíìỉ ẹ ì ỉệ ì ễệể ììì ẹ ỉỉ ềỉ ểệ ìì é ệ é ễễ ệ ỉ ểề ềể ễệể ììì ậ ề ễệể ììì ìỉ ĩ ễ ệ ỉệạ ể ểềề ỉ ể ễ ệỉ ỉ ểềề ề ỉ é ì ềỉ é ì ẹé ỉ ểềàá é ì ỉệ ì ễệể ììì ệểềỉ ểề é ề ẹ ềỉ ểệệ ìễểề ềỉ ềì é ệ éé ềỉ ễ ễ ỉệ ểề éì ểềì ỉ ễ ệìễ ỉ ì ễễ ệ ỉ ểề ềể ễ ệ é ễ ỉ ễểể ệ ì ẹ ễễ é ề ểệẹ ỉ ế ẹể é ễé ệ ỉểỉ ề ệ ìỉ ềỉ ểềề ỉ ề ễ ề ềỉ é éể é ì ỉ ểề ế ệ ềỉ ệ ìể ệ é ì ễệể é ẹ ì ĩ ìỉ ềỉì ệ ỉ ệ ìỉ ế ì ì ẹễểìì ể ệ ễ ế é ìì ỉ ể ệ ĩ ỉ é ì ỉ ệì ĩ ễễé ỉ ểềì ệ ễ ệỉ ì ỉ ỉệ ìì ểễ ỉệ ĩ ệ ệ ềì é ì ìíìỉ ẹ ì ệ ễ ệỉ ì ềể éé ì é ề ệểềề ẹ ềỉ ẹể é éỉ ì ểềì ềììá ìỉ ểề ệểễ ìểềỉ ẹểềỉệ ì ềì é ẹể é ì ìíìỉ ẹ ì ệ ễ ệỉ ì ìíề ệểề ì ẹể é ễ ệỉ éé ẹ ềỉ ìíề ệểề ìỉ ễệểễểì ễểệ ệ ìể ệ ì ễệể é ẹ ìá ễ ĩ ề ỉ é ì ềỉ é é ẩểệ ỉệ ỉ ệ é ễệể é ẹ ìỉ ểề ỉ ỉ ệì ỉ ỉ ệ éé ề ì ềểề ểềề ĩ ểềì ề ề ệểềề ẹ ềỉ ẹể é é ì ỉệ ì ểềề ỉ ỉ ìỉệ ỉ ểẹẹ é ểềề ĩ ểềì ỉ ỉ ỉ ệ ễ ệỉ ỉ ểềì éì ìểềỉ ỉểì ề ề ệểềề ẹ ềỉ ẹể é ặểì ểềì ỉ é ể ệ ễ ế ìệ é ì ì ỉ é ì é ẹ ỉ ỉ ểềì ìỉ ểề ệểễ í ềỉ ềì ềểỉệ ệ ệ é ì ỉệ ĩ ĩ ìỉ ềỉì ềì ỉ ề ì ề ềể ì ệ ệ ìì ỉệ é ìỉ ểề ẹểềỉệ é ìỉ ểề ì é ệ ỉ é ì ìíìỉ ẹ ì ỉ ệ ẹ ềỉ ềểỉệ ể ĩ ệ ệểễ ì ỉ ệ é ì ệ ề ễệểỉểỉíễ ỉ ỉ ệì ệểễ ễểệ ì ỉ ì ệ éỉ ỉ ỉ ệì ĩ ìỉ ềỉì ỉ é ì ệ ì ểẹẹề ỉ ểề ề ỉ ìệ ì ềỉ ìệ ìíìỉ ẹ ềểì ểềì ễệểễểì ề ìễ ỉ ểề ềì ệ ệ ề ì ẹé ỉ ểề ì ẹễé é é ểệ ỉ ẹ ểề ềể éé ì ễệểễệ ỉ ì ễ ĩ ểệ ễ ệỉ ỉ ểềà ặểì ểềì ìì ể ì ề ẹễé ềỉ ỉ ểề ĩ ìỉ ềỉ ệểễ ễểệ ệ ỉ é ì ệ ềì éé ề ì ềì ỉệ éá ềểì ểềì ệ é ì ề ỉ ỉ ệì ễểệ ề ì ệ ỉ ỉ ệì ìểềỉ ễệểễểì ì ềểỉệ ễễệể ềì é ệ ỉ ỉệ ìíìỉ ẹ ềể éé ì ễệểễệ ỉ ì ỉ ễ ỉ ỉệ ểềì ắ ì ệ ặểì ểềì ỉ ễỉ ềểỉệ ì ệ ệ ểẹẹ ề ễệ ẹ ệ ĩễ ệ ề ễểệ é ì ỉệ ì ệ ệ ì ề ì ễ ệìễ ỉ ìá ềểì ì ỉ ìỉì ễ ệ ểệẹ ề ẹễé ềỉ ỉ ểề ẩểệ ì ệ ệ é ễ ìì ề ỉ ệì ểềì ểẹễé ỉ ệ é ìỉ ểề ỉ é ệ ềểẹ ệ é ẹ ềỉ é ễểìì éỉ ỉ ĩ ỉ ệ ệ é ì ệ ề ệểễ ìệ é ì ỉ ệẹ ề ĩ ẹể é ì ễ ĩ ắ ì ẹ ìì ì ỉ ỉ ệì ỉ ì ềểí ì ề ề ệểềề ẹ ềỉ ẹể é ệ é ì ệ ììểệ ì é éà ìểềỉ ỉệ ì é ẹ ỉ ì ề ểỉệ é ệ ìỉ é ệ ễ ĩ é ì ệ ểệ ẹ ềỉì ì ỉ ểề ắ éểễễ ẹ ềỉ ễệểỉểỉíễ ỉệ ễ ệỉá ềểì ỉ ểềì ỉ ẹ é ểệ ệ é ì é ểệ ỉ ẹ ì ệ ệ é ệ ểẹễé ĩ ỉ ệ ẹ ềỉ ẹễểệỉ ềỉ ề ệ ì é ềìá ỉỉ é ìỉ ểề ệểễ ễểệ ẹ é ểệ ỉ ểề ìỉ ễ ệỉ é ì ỉ ệẹ ề ĩ ễ ĩ ề ểệ ế éế ì é ẹ ỉ ỉ ểềì ì ễệể ììì ể é ẹể é ỉ ỉỉ ệ ì ỉ ì ề ìà éể ệ ễ ẵ é ệ ẽ ềá ề ậ èể ì ề ỉ ỉ éệ ỉ ỉểệ ểệ ế ì ềỉ é ểẹẹề ỉ ểề ề ểềì ềìì ề ễ ệỉ ỉ ểề é ề ỉểệ ì è ểệ ỉ é ệé ậ ề ắắẳẵà ẳá ề ẵ ắ é ệ ẽ ể ệỉ ểẹễỉ ệ ềá ề ậ èể ầề ế ì ềỉ ệ é é ểẹẹề ỉ ểề ậ ểệề é ểẹễỉ ề ắ ắẳ ẳ ắẳ ắẳẳẳ ể ề ẹ ệệểềạ ểìỉá ẩ ề ỉá ề ậ èể ầề ỉ ệểễ ẹ ẹ ệì ễ ì ệ ì è ề é ấ ễểệỉ èấ ạẵ ậ ề ểệề éé ề ệì ỉíá ỉ ặ ểệ ậ àá ẵ ễễ ễễ ể éá ấ ìíìỉ ẹì ểẹ ễ ểệẹ é ìễ ỉ ểề ễ ệỉẹ ềỉ ể ểẹễỉ ệ ỉỉễ ằằ ễễ éễỉ ểé ề ểềỉệ ìểệ é ểệ ỉ ẹì ìễ ỉ ểề ề ệểễ ểẹẹề ỉ ểề ề ễ ệỉ ỉ ểề é èệ ềì ỉ ểềì ểề ậể ỉ ệ ề ề ệề ắ ẳ ễệ ắẳẳẵ ỉỉ ẩ ệỉ ỉ ểềì ề ệ é ìì ệểễ ểẹẹề ỉ ểề ìíìỉ ẹ ìỉ ệì ỉ ì ìá ề ệì ỉ ẩ ệ ìạậ ậ ễỉ ắẳẳ ỉỉ ề ểề ề ệểềề ẹ ềỉ ẹể é ề ỉ ỉ ểềì ỉ ì é ắẹ ắẳẳ ệ ềể é ệ ề í ắẳẳ ẩ è ệẹ ề é ề ậ ệ ẩ é ẵẳ è ễé ểề ệ ề ìỉ ểề ệểễ ì ề ềạ ệ ề ểễ ểề ể é ỉ ế ỉ ềỉ ệề ỉ ểề é ểề ệ ề ẩệể ề ấé ề ệ ẻ ị é ểìá ậ èể ề ẹ ẹ ệì ễ ề ẩệể ẵ ỉ ễ ệỉ ỉ ểề ễểệ é é ặ ỉểệ ề ì ậ ệ ì ễễé ỉ ểềì ềề ề ậ ẵ ệệểềạ ểìỉ ầề ỉ ậíẹễểì ẹ ểề ẩệ ề ễé ì ể ẹễểìì é ỉí ể ệểễ ìỉệ ỉ ề ểẹễỉ ề á ậ í ắẳẳ ề ệ ểệề é ể ỉ ề ậ èể ềệ é é éệ ỉ ỉểệì ểệ ệ é é ìỉệ ỉ ììể ỉ ểề ểệ ểẹễỉ ề ề ệíá ắà ắắ ắ ệ ẵ ìíìỉ ẹì ầ ấ ẩ ẵẵ ẵắ ể é ệá ệá ề ấ ẻ ỉ ề ệ ễệ ềì ìỉ í ểẹễỉ ề ậệ íìá ắ éễểệỉ éé ỉ ậệ é é ểệ ỉ ẹ ế ệểễ ểẹẹề ỉ ểề ìễ ỉ ểềì ểẹạ ắẳẳẵ ìỉệ ỉểé ệ ềỉ ĩ ễ ềề ìá ắẳẳẵ è ì ấá ề ệì ỉ ẩ ệ ì ẻ ẵ ấ ééá ậ ễ ệá ề ẩ ệ ề èể ềạ ì ỉ ỉểệì ề ẩệể ể ỉ ắệ ậíìỉ ẹìá ẽ ì ề ỉểềá ẵ ẵ ềỉ ệề ỉ ểề é ậíẹễểì ẹ ểề ấ é ậ ầ ỉ ắẳẳ ễệ ẵ ệỉề ệ ẵ ệểễ ệểễ ểẹ ễ ẵ ề éỉạỉểé ệ ềỉ ìỉệ ỉ é éá ề ìỉệ ỉ ìỉệ ỉ ểềì ềìì ỉ ểẹễỉ ề ắá ề ìíề ệểềểì ỉỉễ ằằ ệểễìểệ ểệ ề ỉ éẹ ệẹ é ềỉạì ệ ệ ểẹễỉ ề ệá ậììẹ ềá ệịééểá ề ề ẹể é ề ệểềẹ ềỉì ểé ểì ệểễ ẹ ẹ ệì ễ ì ệ èệ ềì ỉ ểềì ểề ểẹễỉ ệ ậíìỉ ẹìá ắẳà ẵ ẵ ắ ắẳẳắ ểệ ềì ắẳ ậ ề éệ ỉỉễ ằằ ệểễìểệ ểẹễỉ ề ậệ íìá ẵắà ẵẵ ẵ ề ẵ ẵ é ỉí ể ểẹễỉ ề ậệ íìá ẵẵà ẵ ắ ệ ẵ ẵ ệểễ ệểễ ểẹ ễ é ììể ỉ ểề ểệ ểẹễỉ ề ề ệíá ắắà ề ẹ ềỉ éì ể ề ệểềẹ ềỉì é ểẹễỉ ệ ậể ỉí ì ệá ặ íề ề ậ ẩ ỉ ệìểề ẹễểìì éỉí ễệể ìì ểệề é ể ỉ ểề ỉểẹ ệể ìỉ ì ề ềệ é ậ ễ ệá ề ẩ ẽể ểì ìỉ ễ ỉể ệ ì ểẹẹề ỉ ểề ìíìỉ ẹì ề ẩệể ể ềỉ ệề ỉ ểề é é ệ ề ề ệ ỉ ểề ể ệểễ ểề ệ ề ắẳẳ ậễệ ề ệ ẻ ệé ề ắẳẳ ắẵ ểềỉệ ìểệ ậíìỉ ẹ ậễễểệỉ ểệ ẩệể ệ ẹẹ ề ầ ề ẩ ệỉ ỉ ểề é ậíìỉ ẹì ẩ ểéể ề ỉ éíá ắắ ấ ẩệ ì ẩệể ẵ ỉ ậ ẵ ắ ấ íề é ậ ỉ ì ìá ễỉ ể ỉạầệ ềỉ ễề é ễễé ỉ ểềì ểẹễỉ ệ ậ ề ề ệì ỉí ể ểéể ề ắẳẳẳ ề ấ é ểề ệ ỉ ỉệ ểệ ệểễ ểẹẹề ỉ ểề ề ẹể é ìíìỉ ẹì ề ậíẹễểì ẹ ểề ấ é é ìỉệ ỉ ậíìỉ ẹìá ễ ì ắ ắ ắá ẽ ì ề ỉểềá ểẹễỉ ệ ậể ỉí ì ểệỉ ềỉệể ỉ ểề ỉể éệ ỉ ỉểệì ểệ ìíề ệểềểì è ặ ìá ẵà ẳá ệ ắẳẳ ìỉệ ỉ ìíìỉ ẹì ầ ấ ẩ ắ ậ ỉí ề ệ í ề ề ề ẹ ềỉ é éé ề ì ề ẹể é ểẹễỉ ề ề ẩầ ềìể ỉ ỉ ềỉ ềề é ễ ì ẵ ặ ểệ ặ ậ ẵ ìíẹễểì ẹ ểề ẩệ ề ễé ì ể ắ ậ ỉí ề ệ í ề ề ẩ ệ ì ểẹễỉ ề ìỉệ ỉ ẩệểạ ểẹễỉ ề ẩệ ìì ẻ ìểề ề éé ề ì ẩ ệìểề é ểẹạ ẹề ỉ ểềìá ẵẳ ẵ ắẳẳẵ ắ è ẹ é ề ỉ ì ểề ề é ẵệ ề ắẳẳ ểề ệ ề ỉ ỉ ểềì éé ề ìá ểềề ỉ ỉ ệ ề ểễ ểề ể é ỉ ế ỉ ễ ềỉ ệề ỉ ểề é ểề ệ ề ẩệể ề ì ậ ệ ì ỉ ểềề ĩ ểềì ề ì ẳ ặ ệ ề ềề ĩ ẩệ ì ềì ỉỉ ì ỉ ểềá ềểì ễệ ì ềỉểềì é ễệ ề ì ỉ ểề ắ ặểì ễệểễệ ỉ ì ẵ é é ểệ ỉ ẹ ìỉ ểề ệểễ ểềề ểềì ẹểềỉệ ệ ế é é ểệ ỉ ẹ ì ỉ ệẹ ề ỉể ểệì ỉ ế é ì ỉ ì ỉ é ì ễệ ì ềỉ ì ềì é ìễ ỉ ểề ềể ì ệ ệểễ ì ỉ ểề ẩ ìế ỉ é ểệ ỉ ẹ ì ì ìệ é ìỉ ểề ệểễ é ì ễệ ì ìểềỉ ểề ễệ ì ềỉ ì ề ỉ é ì ềỉ é ẹ ẹ ểệ ề ì ỉ ểề ẹẹ ẵ ềểẹ ệ ẩệ ì ẹ ìì ẹ ìì ì PROPOSE ềểí ễ ệ ề ễệể ììì ìỉ ểệề ì PROPOSE ìểềỉ ềểí ì ềểì ỉ é ìểềì é ẹ ẹ ểề ỉ ểề ễễ é ềểẹ ệ ẹ ìì ềì é ễệể ệ SendEstimate ẩ ệ ế ỉỉ ễệể ệ ế éểệ ề éá ẹểềỉệ ế é ì PROPOSE ềểí ễ ệ ề ễệể ììì ìỉ ểệề ẹẹ ắ ậ ề ễệể ììì ểệệ ỉ p ềỉệ ềì é ễệể ệ EstimateExchangeP hase ề vá éểệì p ềìỉ éé éỉ ẹ ẹ ềỉ ề ềể éé ẩệ ễệ ì v é ểệ ỉ ẹ ì ểẹễểệỉ ểẹẹ é ệì ểề ểệ ề é ểề é ễệ ìỉ ềỉ ế ẹẹ ậ ề ễệể ììì ểệệ ỉ p ềỉệ vá éểệì p ềỉệ éỉ ẹ ẹ ềỉ ẩệ ềì é ễệể ệ SynchronizationP hase ề ềì é ễệể ệ EstimateExchangeP hase é ểệ ỉ ẹ ì ểẹễểệỉ ểẹẹ é ệì ểề ểệ ề é ểề é ễệ v ìỉ ềỉ ế ểệểéé ệ ẵ ậ ề ễệể ììì ểệệ ỉ p ềỉệ é ễệể ệ AgreementP hase ề vá éểệì é ềìỉ éé éỉ ẹ ẹ ềỉ ề ềể éé ễệ ì v ẩệ ì é ẹẹ ì ắ ỉ è ểệ ẹ ẵ ẩệ ì ểề ẩệ ềì ềểỉệ view.comp ì ìà é ểệ ỉ ẹ ì ỉ ì ỉ é ễệểễệ ỉ é ểệ ỉ ẹ é ểề ễỉ ềì ểệệ ìễểề ìỉ é ệ ìểề ễểệ é ế éé é ễệ ặểì ễ ệỉ ỉ ểềì ềỉ ế é ề ìể ỉ ỉ ỉ ệ ì éé ề ìá ềỉ ế é é ểệ ỉ ẹ ểềề ĩ ểềì ể ì ế ễệể ììì ỉ é ì ìỉ ểề ệểễ ểềề ỉ ì dp ỉ ì ễ ệỉ ỉ ểềề ì ì ễệể ììì ểệệ ỉì ểềề ỉ ì ìỉ é é reachable = \ (fp dp pp )à ểệì ẵẵ ìỉ ì é é ểệ ỉ ẹ éé ềỉì fp ì ì ễệể ììì ệểễ ẵắá ìỉạ ệ é ĩ ìỉ ề ềìỉ ềỉ ểềề ỉ ể ễ ệỉ ỉ ểềề ễ ệỉ ỉ ểề ểẹẹ é ềỉệ ìểềỉ é ì ỉệể ì ềì ẹ é ì pp ềì ẹ é ềì é ì ì éé ềỉá ề é é ìểì ễệểễệ ỉ ểềì ểề ễệể ệ é ìểì ễệểễệ ỉ ễệ ì é ế é ề ễệể ììì ề ễễệ ỉ é ìểệỉ ẵ ễ ệỉ ệ ìỉ ểề ì ỉệể ì ềì ẹ é ì ệểễ ì ềì ẹ é ì ế ễệể ììì ì ểé ềỉ ấẵ ấắà ỉ ì ểề ệ ềỉ ấ ấ ề ề ềỉ é ệ ễệểễệ ìỉ ẹ ỉ ểề ỹ é ỉ ệẹ ề ìểề ỉ é ểệ ỉ ẹ ỉểì é ì ễệể ììì ẹ ẹ ệ ì ệểễ ì ẹ ỉỉ ềỉ ểệ ìệ ì ềì ẹ é ì ỉỉ ễệểễệ ỉ ễ ệỉ ỉ ểề ểệỉ ề é ỉ ỉ ệ è ểệ ẹ ắ ểẹễé ỉ ẩệ ềì ềểỉệ view.comp é ểệ ỉ ẹ é ểề ễỉ ễệ ì é ế é ỉểỉ ễệể ììì ểệệ ỉ é ìểệỉ ì ễ ệỉ ỉ ểềì ỉ ỉ ệ ềì ểệệ ìễểề é ìểì ễệểễệ ỉ pp ềì ẹ é ì ễệể ììì ì ễệể ììì reachable = \ (fp dp pp )à ểệì ắ ề é ễ ệỉ ỉ ểề ểệỉ ềỉ ế é é ểệ ỉ ẹ éé ềỉì fp ì é é ểệ ỉ ẹ ì éé ề ìá ế ễệể ììì ỉ é ì ìỉ ểề ệểễ ểềề ỉ ì dp ỉ ì ễ ệỉ ỉ ểềề ì ễ ệỉ ệ ìỉ ểề ì ỉệể ì ềì ẹ é ì ệểễ ì ềì ẹ é ì ế ễệể ììì ì ểé ềỉ ấẵ ấắà ỉ ì ểề ệ ềỉ ấ ấ ề ề ểệ ìệ ì ềì ẹ é ì ệểễ ắẵ ìỉ ềì é ì ỉệ ì ễ ệỉ ỉ ểềì ì ễệể ììì ểệệ ỉì ểềề ỉ ì ìỉ é é ìỉ ẹ ỉ ểề ỹ é ỉ ệẹ ề ìểề ễệ ì ểề ắắá ìỉạ ệ é ĩ ìỉ ề ềìỉ ềỉ ềì ề ễ ệỉ ỉ ểề ìỉ ề éì ễ ệỉ ỉ ểề ểẹẹ é ềỉệ ìểềỉ é ì ỉệể ì ềì ẹ é ì é ễệểễệ ỉ ì ìà é ểệ ỉ ẹ ì ỉ ì ỉ é ễệểễệ ỉ ểềì ểề ễệể ệ é ìểì ễệểễệ ỉ ểềề ĩ ểềì ể ệ ễ ệỉ ỉ ểề ìỉ é ệ ìểề ễểệ é ế éé é ễệ ặểì ì ìỉ ểề ììệ ềỉ é ệ ễệểễệ ỉ é ểệ ỉ ẹ ỉểì é ì ễệể ììì ẹ ẹ ệ ì ệểễ ì ẹ ỉỉ ềỉ ỉỉ ễệểễệ ỉ ỉ ỉ ệ ễ ệỉ ỉ ểề ìỉ ểề ììệ ệ é ễệểễệ ỉ ểẹễé ỉ è ểệ ẹ ể ệ ề ẩệ ì ìà é ểệ ỉ ẹ ì ỉ ì ỉ é ễệểễệ ỉ é ểệ ỉ ẹ ì ểẹễểệỉ ểẹẹ é ệì ểề ểệ ề é ểề é ễệ ìỉ ềỉ ế ìỉ ềỉ ế è ểệ ẹ ẩệ ầệ ệ ì ìà é ểệ ỉ ẹ ì ỉ ì ỉ é ễệểễệ ỉ é ểệ ỉ ẹ ì ểẹễểệỉ ểẹẹ é ệì ểề ểệ ề é ểề é ễệ è ểệ ẹ ẩệ ềỉ ệ ỉ ềì ềểỉệ view.comp ặểì ì ìà é ểệ ỉ ẹ ì ỉ ì ỉ é ễệểễệ ỉ é ểệ ỉ ẹ é ểề ễỉ ìỉ é ệ ìểề ễểệ é ế éé é ễệ ểềì ểề ễệể ệ é ìểì ễệểễệ ỉ ệểễ ì éé ề ìá é ểệ ỉ ẹ é ì ìỉ ẹ ỉ ểềì ì ềì ẹ é ễệể ììì ì ểềề ĩ ểềì ỉ ềì ểệệ ìễểề ề é é ìểì ễệểễệ ỉ ẵ ìỉ ắá ìỉạ ệ é ềỉ ệì ỉ ểề ì ễ ệỉ ỉ ểềì ìỉ é ềì ẹ é ế ễệể ììì ìểềỉ ỉ é ì ì ểẹẹ ề ễệể ììì ểệệ ỉì ìì é ì ìỉ é é éé ềỉìá ì ễ ệỉ ệ ì ỉệể ì ềì ẹ é ì ỉ ệ ìểéểềì é ễệể é ẹ ệểễ ềỉ ế ì ì ềì ềểỉệ ỉì ễểệ é ì ềể éé ì ì ỉệể ì ềì ẹ é ì ểềề ỉ ì ỉ ì ễ ệỉ ỉ ểềề ì reachable = \ (fp dp pp )à ề ểỉệ ề ễễé ế ềỉ é ì ệ é ì ễểệ ễ ìì ệ ề ễệể ììì ề ềì ẹ é é ểề ệ ề ễệể ììì é ề ể ệ ề ềỉệ éé ềỉìá ì é ỉệ ềểì ììệểềì ểềề ỉ ì ỉ ì ễ ệỉ ỉ ểềề ì ệ ềỉì ễệể ììì [...]... ệ ỉệ ểềìéỉ ì ề ììệ ềỉ é ì ễệểễệ ỉ ì ểẹẹ é é é ẵ ìỉ ểề ì ểề ềì é ệ ệ ỉ ẹ ềỉ ạ ììì ề ỉệ éá ềểì ề ềểì ềỉ ệ ììểềì ệểễ ẩéì ỉ éì ìệ é ĩ ẹ ì ệ ễ ềỉ ềì ẵẵ Systốme de communication de groupe Service de diffusion de messages Service de gestion de groupe ắ ẵ ệ ỉ ỉệ ề ìíìỉ ẹ ểẹẹề ỉ ểề ệểễ é ìì ỉ ểề ềì é é ỉỉ ệ ỉệ á é ì ậì ìểềỉ ìể ềỉ é ìì ì ề ễệ ẹ ệ ễ ĩ ậậá ẩ ể ề ĩà ỉ èểỉ ẹà ì ẹể é ì ệ é ì ễ ệỉ ỉ ểềì ậì... ỉệ ĩ ĩ ìỉ ềỉì ìệ é ì ỉệể ì ỉệ ì ắ ểề éì ểề ẵắ Gestion de groupe Dộtecteur de partitions Dộtecteur de connectivitộ ỉ ỉ ệì ắ ắ ểềề ỉ ỉ á Dộtecteur de dộconnexions ỉ ỉ ểề ễ ệỉ ỉ ểềì ễểệ é ểềề ĩ ểềì ỉ ìỉ ểề ệểễ ễ ệỉ ỉ ểềì ìểềỉ ề ểệ ễệ ẹ ềỉ ỉ ểệ ế ì ểề éì ểề ềì ễ ỉệ á ềểì ểềì ễệ ì ềỉ é ì ễệ ề ễ ì ề ẹ ềỉ ẹể é ặểì ểềì ìì ễệể ìììà ỉ ềỉệể ỉ é ì Dộtecteur de dộfaillances ỉ ỉ ệì ì ệ é ỉỉ ệ ỉệ ìỉ ểề ì ỉ... ỉ ỉểệ ề ì ỉệ ềì ệỉì ỉ ỉì ệ ễ ỉ ì ắ E highDown highUp F D C A F B lowDown (2) dộconnectộ ắ ỉ ỉ ệ lowUp Niveau de disponibilitộ de la ressource (1) ắẵ D B lowUp Niveau de disponibilitộ de la ressource highUp C A lowDown E highDown partiellement connectộ íìỉ ệ ì ì connectộ ìỉ ểềề ệ sens de variation ểềề ỉ ỉ ểềề ĩ ểềì ì ề ểệẹ ỉ ểềì ểềề ĩ ểềì ỉ ỉ CD ệ ìỉ ềỉ ỉểỉ ể ì éể é ì ệ ểềề ĩ ểềì ểệề ì ễ ệ é... composants Channel EnsChannel JChannel IbusChannel iBus Toolkit TOTAL Ensemble GMS FIFO UDP ắ ắ ệ ỉ ỉệ ệểễ ệểễ ệểễ ẵ ìỉ ề ệ ìéỉ ỉ ệ ệ ìệ ấ é ìá ề ìíìỉ ẹ ểềìỉệ ỉ ễệ ậ ễ ệỉ ỉ ểề é ìỉệ ỉệ ẹể é ệ éề ệì ỉ ẹẹ ềỉ ễ ệ é ẹ ẹ í ềỉ ề ìễ ỉ ểề ểệẹ éé ểềỉ é ệ ỉ ỉệ ểéể ề á ề ỉ é ệểễ ì ìì ị é ệ ề ể ì ìỉ ẹểềỉệ ệểễ é ìỉ ềì é Application vchg join leave VML mrecv msuspect msend MSL FD recv send Network ì ệ ỉ... HB(F ), p correct(FP ), q \ partition( p), K N, t T : H(p, t)[q] K HBạễệ ì ểề ễểệ ỉểỉ ễệể ììì pá é ì ểẹễỉ ệì ệể ìì ềỉ ỉỉ ẹ ềỉì ệ ỉểì é ì ễệể ììì ểề ẹểềểỉểề ểệẹ éé ẹ ềỉ F, H HB(F ), p , q , t T : H(p, t)[q] H(p, t + 1)[q] ễểệ ỉểỉ ễệể ììì ểệệ ỉ pá é ì ểẹễỉ ệì ềì é ễ ệỉ ỉ ểề ỉỉ ẹ ềỉì ệ ỉểì é ì ễệể ììì p ìểềỉ ềểề ểệề ì ểệẹ éé ẹ ềỉ F = (FP , FL ), H HB(F ), q partition( p), K N, t T : H(p,... ìỉểệ ế ề é ề ể ề ễệể ììì ìể ỉ ề partition( p) ậ p é ềì ẹ é ì T ệì é ềì ẹ é 2 á ể ìểềì ế p ể ỉ q ễ ệỉ ỉ ểềề éé ề ềểẹẹ ễ ệỉ ỉ ểềì ễệể ììì p ềểéểềỉ ệ ệ ểẹễé ỉ F ì ỉ ỉ ệì ễ ệỉ ỉ ểềì é ĩ ìỉ ề ềìỉ ềỉ ễệ ì é ế é ỉểỉ ễệể ììì ểệệ ỉ éé ềỉá ềì ểềề ỉ ể ễ ệỉ ỉ ểềề ễ ệ ỉểì é ì ễệể ììì ề ỉệ ễ ệỉ ỉ ểề ểệẹ éé ẹ ềỉ F = (FP , FL ), HF D FD(F ), HDD , HP D , p, q correct(FP ), q / partition( p), t T , t t : q ... ìạ é ề ệểềề ẹ ềỉ ẹể é ễ ỉ ỉệ ệ é ì ệ àá ễ ệ é ìíìỉ ẹ é ễễệể ểéé ểệ ỉ ểề à ẵ ệề ệ ễ ệéì ỉệ ềìễ ệ ề ĩ ễễé ỉ ểềì à ễễệể ềì é ế éé é ễễé ỉ ểề ẵắ ểỉ ỉ ểề ỉ ể ỉ ì ìỉ Collaboration Laissez faire Transparence aux applications é ễỉ ỉ ểề ề ì ẵắ ậỉệ ỉ ì é ễỉ ỉ ểề ì ềỉ ìệ é ề ểệẹ ỉ ểề ểệề ễ ệ é ềỉ ệ é ểề ềỉ ẹ ĩ ĩ ề ệểềề ẹ ềỉì ẹể é ì éé ễ ệẹ ỉ ĩ ễễé ỉ ểềì ễệ ì ệ ề ẹ ẹ ỉ ẹễì é ễ ỉ ìỉ é ềỉ ệ é ế ề ễễệể ỉ ểề... ểềì DD ỉ ề ì ạ ễệ ì ắ ìỉểệ ế ì éể ĩ ểẹẹ ềì á é ĩ ỉ ểề ề ễệể ệ ẹẹ ệ ễ ệỉ ệ ìéỉ ĩ ỉ ề ề ẹ ềỉ ễể ềỉ ỉệ é ề ẹ ềỉ ềé ềểỉ àá ể ì ế ỉểễ ểệéể S ểềỉ ềỉ ẹể ềì ề ế ế ễệể ììì ễ ệỉ ệ ề ềì ẹ é S á ĩ ề ẹ ềỉì send() ỉ recv() ỉ é ềểỉ ỉ ểề é ềìỉ éé ỉ ểề ề ềể éé vchg() ìỉểệ ế éể é ề p ĩ ỉ ề ề ẹ ềỉ e p ề ĩ ỉ ĩ ỉ ểề ìỉ ề ểề ỉ ểề é ềìỉ ềỉ tá ềểì ềểỉểềì (p, t) = e ậ ềểềá (p, t) = á ìỉạ ạ ệ ề ề ẹ ềỉ ậ ẹ é ềìỉ... éé ề ề é ề ìì é ểềì ế ề ề ệ ắắ à ể ề ễệể ììì ểềề ĩ ểề ề ễệể ììì ệ ắắ à d r r p d p q Dộfaillance dun processus ểẹẹ é ì ĩ ắắ ậ ỉ ỉ ểềì ỉ ỉ ệì ễệ ìỉệ ỉ ì ềỉìá é ểẹễé ỉ ỉ q (c) (b) Dộfaillance dun lien r p q (a) ễệểễệ ỉ ì s s s Dộconnexion dun processus ễ ệỉ ỉ ểềề ẹ ềỉ ỉ ỉ ệ ễệ ì ểề ễ ệỉ ỉ ểềì ìỉ ễệ ì ềỉ ểẹễé ỉ ĩ ễ ệỉ ỉ ểề ỉ ễệ ì ểề ễ ệỉ ỉ ểề ểẹễé ỉ ễ ệỉ ỉ ểề ểệỉ ề ễ ệỉ ỉ ểề ìỉ é ĩ ìỉ ề ềìỉ ềỉ... ềỉ ế p ề ìể ỉ ểềề ỉ ễ ệ ề ễệể ììì ểềề ỉ ểệẹ éé ẹ ềỉ D, HD DD(D), t T , p, q D(t) : p / HD (q, t) ậ ẹ ễ ệỉ ỉ ểềề ẹ ềỉ ễ ệỉ ỉ ểề ễệể ììì p ệ é ỉ ẹ ềỉ ìỉ éé ềỉ ể HP D ề ỉ D ìỉ ểềề ỉ á é ềì ẹ é partition( p) ìỉ ỉ ỉ ệ ễ ệỉ ỉ ểềì ìỉ ề ểề ỉ ểề HP D (p, t) ìỉ é é ệ q HP D (p, t) éểệì ềểì é ì ỉ ìể ỉ ề ỉ ỉ ệ ểệệ ỉì ểềề ỉ ì ì ỉệể ì ềì ẹ é ì ặểì ệ ễễ éểềì ỉ ỉ ỉ ệ é ềìỉ ềỉ t ì ễệể ììì ểềề ĩ ểề ểéểềỉ

Ngày đăng: 27/10/2016, 23:14

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan