!" # !$$% ! "# % &' '&( * # & % % + , - + & &+ !&,&" ) ) % &, / + # # *+ # ) # )* ! # $ ( % )& # / $ " ! * + % (-% , $ ! $# % & & ' $ & # " #( %) & &$ & & " & & & & ,$ $ $ 2$ ,$ 3$ $$$ (-% $$$ $ $ # # $$ % ( / $ & ' & & $ 2$ $ & $$ & & & 3 + , # $ & $ & ,$ 2$ $ % )& $ $ * $ $ 2$$$ $$,$ $$2 $ & 3& $ $ $ ( %) 0 $ $ ,$ ,$ $ $ 4#4 4#1 4#2 (/ + 67% #### 4#2#4 4#2#1 -9 4#2#2 4#2#3% )< 4#2#= 1#4 >? 1#4#4 1#4#1 ') 1#1#4 1#1#1 A# 1#1#2 !1 @### 1#1 1#2 1#3 2#4 2#1 2#2># 2#3'# @+ @+ 2#3#4 2#3#1 @### 2#= 3#4 3#1 3#2 @ ># > 3#2#4 3#2#1 = 3#2#2 3" 3#2#3 3#2#= 3#2#B 3#2#C 3#2#D 3#2#5 3#2#48 3#3 3#3#4 3#3#1 3#= # ! " $ =#4 @# # =#1 % & B 4#4 4#1 4#2 4#3 4#= #### ( :; % ) > > > > @ =#4 > 3#4 3#1 3#2 3#3 3#= 3#B 3#C + +: / + ####### ; # F C # ! 1#4 @) 3#4 3#1 3#2 3#3 3#= 3#B 3#C 3#D 3#5 @P roperty @P redicate @Data # # # @SuperP eerInterf ace # @N odeInterf ace @N ode # # # @N odeSkipElement DataSkipElement @SuperP eer @P eer # # # D " " ! @ #> # F @> #& + % G + # " / * ) + ( ) + * #- ) G * ++ * * * + * * L )# > * :; + ! *" 9 + % ) # ! " + * 8BK* #@ #$% &' % @> J "* !0 * * # * #' # 0* ) *### "# + F ! * % + * # * Z @ ( ) N odeSkipElement ) DataSkipElement #@ H 22 * F # @ / # 3#C M @ N odeSkipElement DataSkipElement )& ( @ #' #@ SuperP eer + SuperP eerInterf ace# +* + 3#D M @ SuperP eer 23 ( P eer ' G / "# F ) #@ G # * ) 3#5 M @ % ! P eer A ' > A ' > > > A * ( # % #@ # SystemP arameters % % % +* ) + 2= 1 1 3#B M > 2B 44 $)+ % # ' 03#C # M' # M' 3 ) F + ) 3#3#4# MA * ) ? ' + F # M' I F # M' F ! * * " M' % % ! ) + " ' )0 #A ) * # * 3#C M / + 2C 2#1* * * / * # ( % ' #& & 48 ) F * 14* 11* 12 13 F ! ] "# M 14* 11 H > N ) F *G # F *F G ! 14 "* *! 11"# M 12* 13 H > N ) ) F ) * F Q ! 12 "# > V! 13 "# ' * F # * ) F # ( " & + +* ! F & ) #' * * ) ) F #R + ' + #@ ) % #> * #& I + G !) G " F + # ' 03#D F # @ + #' «interface» NodeInterface +downloadData() +deleteData() +getDataList() +getNodeIP() +requestDataIntegration() +requestDataDeletion() uploadData( ) resourcesInterface +requestMemoryRecovery() +insertElementToDataSkipList() +addPeer() «interface» NodeInterface +downloadData() +deleteData() +getDataList() +getNodeIP() 3#D M @ F F F * + 2D I # * ' ) # % #'/ #> N ) * )+ ? #' V # * / # # F F * F # G * * 47 + + # + #' >' * # ) F *Q # E F * + 25 % % % * F #@ (" " $ $ 5% )- % #- + #' + % ) # + +* + # * * + + !02#1 "# % # ) ! +* #@ +# @ #@ + F * % * % #@ #@ #- * * * "# + # * F ! F "# @ # 7" $ G * * ) ( * 0 % #& #@ * % #> * % 38 # P +! * # ' 0=#4 F F ! 7*% * F N ) / ' F 7*% C )F + F F F # * #& P P # *" #' ; 7*% / >" F 7*% C # #> # *G NODE J’ai besoin de la donnée A DATA A =#4 M > !02#1"# F + V* #& V * #>+ * # #> A * 7 % #> * I # ) % * !X " #A *G # 0* ) + # + 34 + # * ) " $* J A +@ @ *7 +@ *@ * ( * 1888# JS VK # JS @+81K # S Z V* ># * W# @ * # @V Z I * A# * ># * # + * # * 6# ? #& ? $ 6)0 * 1881# $1 ? 61? *1 * @ ?# ? * JSS 81K * #Y #( H * #S * @# S # * 6A ' @ * 1881# R# ' * A# @ * # Z I# & ? $ 1 * Z W I*18 #'* # * #& ) #& ? J'@@+81K J' &>55K J A# + Z @ + * I 7* @ + 32 ... Utilisateur deleteData(metaData) requestDataDeletion(metaData, nodeIP) dataLocations = searchDataLocation(predicatesList) deleteData(metaData) deleteLocalData(metaData) deleteLocalData(metaData)... nombre de nœuds sur classe i est suffisant if longueur de la retourList >= replicaNb[i] then ok = true arreter la boucle for endif endfor if ok then return retourList else return Echec endif 2#=... uploadData(newMetaData, fileContent) insertNewDataToSkipList(newMetaData, nodeIP) Le noeud ayant la nouvelle donnộe reỗoit les adresses des noeuds oự la nouvelle donnộe sera répliquée et l'envoie ces