From 29a2223ed00f38c0627e1126bb9c7549b7b5b4d6 Mon Sep 17 00:00:00 2001 From: Amaury Date: Wed, 3 Apr 2024 09:13:23 +0200 Subject: [PATCH] oups --- docs/bibliographie/liste_detaille.md | 2 +- .../SoutenanceStage/conclusion/index.tex | 32 +++++ .../SoutenanceStage/consistency/byzantin.tex | 14 ++ .../SoutenanceStage/consistency/faible.tex | 82 ++++++++++++ .../SoutenanceStage/consistency/forte.tex | 61 +++++++++ .../SoutenanceStage/consistency/index.tex | 8 ++ .../SoutenanceStage/distr_sys/bases.tex | 32 +++++ .../SoutenanceStage/distr_sys/index.tex | 2 + .../SoutenanceStage/images/carte_criteres.png | Bin 0 -> 162861 bytes .../images/distributedsystems.png | Bin 0 -> 12070 bytes .../SoutenanceStage/intro/index.tex | 2 + .../SoutenanceStage/intro/presentation.tex | 16 +++ .../SoutenanceStage/intro/suite.tex | 61 +++++++++ docs/presentations/SoutenanceStage/main.tex | 65 +++++++++ .../SoutenanceStage/schemas/ccv_hc_1.png | Bin 0 -> 73194 bytes .../SoutenanceStage/schemas/convergence.tex | 35 +++++ .../schemas/linearisation_atomicite_hc.tex | 31 +++++ .../schemas/linearisation_regularite_hc.tex | 31 +++++ .../schemas/linearisation_surete_hc.tex | 31 +++++ .../SoutenanceStage/schemas/localiteetat.tex | 34 +++++ .../SoutenanceStage/schemas/validite.tex | 31 +++++ .../SoutenanceStage/schemas/wcc_hc_1.tex | 42 ++++++ .../SoutenanceStage/schemas/wcc_hc_2.tex | 29 ++++ .../SoutenanceStage/schemas/wcc_hc_3.tex | 41 ++++++ .../SoutenanceStage/work/index.tex | 25 ++++ .../séminaire_printemps_2024/crdt/index.tex | 17 +++ .../images/carte_criteres.png | Bin 0 -> 162861 bytes .../scille/séminaire_printemps_2024/main.tex | 52 ++++++++ .../scille/séminaire_printemps_2024/script.md | 27 ++++ .../coherence_forte/index.tex | 96 ++++++++++++++ .../consistency_criteria/index.tex | 71 +++++++++- .../rapport_etat_art/images/local1.latex | 43 ++++++ .../rapport_etat_art/images/local1.puml | 16 +++ .../rapport_etat_art/images/local2.latex | 41 ++++++ .../rapport_etat_art/images/local2.puml | 38 ++++++ .../rapport_etat_art/images/local2fail.latex | 44 ++++++ .../rapport_etat_art/images/localiteEtat.puml | 22 +++ .../images/localiteEtatFail.latex | 76 +++++++++++ .../rapport_etat_art/images/seriaized.puml | 25 ++++ .../rapport_etat_art/images/serialized.latex | 57 ++++++++ docs/rapport/rapport_etat_art/main.tex | 10 ++ .../rapport/rapport_etat_artv2/CRDT/index.tex | 34 +++++ .../coherence_forte/index.tex | 125 ++++++++++++++++++ .../consistency_criteria/index.tex | 70 ++++++++++ .../rapport_etat_artv2/images/local1.latex | 43 ++++++ .../rapport_etat_artv2/images/local1.puml | 16 +++ .../rapport_etat_artv2/images/local1_tzk.tex | 21 +++ .../rapport_etat_artv2/images/local2.latex | 41 ++++++ .../rapport_etat_artv2/images/local2.puml | 38 ++++++ .../images/local2fail.latex | 44 ++++++ .../images/localiteEtat.puml | 22 +++ .../images/localiteEtatFail.latex | 76 +++++++++++ .../rapport_etat_artv2/images/seriaized.puml | 25 ++++ .../images/serialized.latex | 57 ++++++++ .../rapport_etat_artv2/intro/index.tex | 5 + .../rapport_etat_artv2/intro/intro.tex | 10 ++ .../rapport_etat_artv2/intro/motivation.tex | 9 ++ docs/rapport/rapport_etat_artv2/main.tex | 59 +++++++++ 58 files changed, 2031 insertions(+), 6 deletions(-) create mode 100644 docs/presentations/SoutenanceStage/conclusion/index.tex create mode 100644 docs/presentations/SoutenanceStage/consistency/byzantin.tex create mode 100644 docs/presentations/SoutenanceStage/consistency/faible.tex create mode 100644 docs/presentations/SoutenanceStage/consistency/forte.tex create mode 100644 docs/presentations/SoutenanceStage/consistency/index.tex create mode 100644 docs/presentations/SoutenanceStage/distr_sys/bases.tex create mode 100644 docs/presentations/SoutenanceStage/distr_sys/index.tex create mode 100755 docs/presentations/SoutenanceStage/images/carte_criteres.png create mode 100644 docs/presentations/SoutenanceStage/images/distributedsystems.png create mode 100644 docs/presentations/SoutenanceStage/intro/index.tex create mode 100644 docs/presentations/SoutenanceStage/intro/presentation.tex create mode 100644 docs/presentations/SoutenanceStage/intro/suite.tex create mode 100755 docs/presentations/SoutenanceStage/main.tex create mode 100755 docs/presentations/SoutenanceStage/schemas/ccv_hc_1.png create mode 100755 docs/presentations/SoutenanceStage/schemas/convergence.tex create mode 100755 docs/presentations/SoutenanceStage/schemas/linearisation_atomicite_hc.tex create mode 100755 docs/presentations/SoutenanceStage/schemas/linearisation_regularite_hc.tex create mode 100755 docs/presentations/SoutenanceStage/schemas/linearisation_surete_hc.tex create mode 100755 docs/presentations/SoutenanceStage/schemas/localiteetat.tex create mode 100755 docs/presentations/SoutenanceStage/schemas/validite.tex create mode 100755 docs/presentations/SoutenanceStage/schemas/wcc_hc_1.tex create mode 100755 docs/presentations/SoutenanceStage/schemas/wcc_hc_2.tex create mode 100755 docs/presentations/SoutenanceStage/schemas/wcc_hc_3.tex create mode 100644 docs/presentations/SoutenanceStage/work/index.tex create mode 100644 docs/presentations/scille/séminaire_printemps_2024/crdt/index.tex create mode 100755 docs/presentations/scille/séminaire_printemps_2024/images/carte_criteres.png create mode 100755 docs/presentations/scille/séminaire_printemps_2024/main.tex create mode 100755 docs/presentations/scille/séminaire_printemps_2024/script.md create mode 100644 docs/rapport/rapport_etat_art/coherence_forte/index.tex create mode 100644 docs/rapport/rapport_etat_art/images/local1.latex create mode 100644 docs/rapport/rapport_etat_art/images/local1.puml create mode 100644 docs/rapport/rapport_etat_art/images/local2.latex create mode 100644 docs/rapport/rapport_etat_art/images/local2.puml create mode 100644 docs/rapport/rapport_etat_art/images/local2fail.latex create mode 100644 docs/rapport/rapport_etat_art/images/localiteEtat.puml create mode 100644 docs/rapport/rapport_etat_art/images/localiteEtatFail.latex create mode 100644 docs/rapport/rapport_etat_art/images/seriaized.puml create mode 100644 docs/rapport/rapport_etat_art/images/serialized.latex create mode 100644 docs/rapport/rapport_etat_artv2/CRDT/index.tex create mode 100644 docs/rapport/rapport_etat_artv2/coherence_forte/index.tex create mode 100755 docs/rapport/rapport_etat_artv2/consistency_criteria/index.tex create mode 100644 docs/rapport/rapport_etat_artv2/images/local1.latex create mode 100644 docs/rapport/rapport_etat_artv2/images/local1.puml create mode 100644 docs/rapport/rapport_etat_artv2/images/local1_tzk.tex create mode 100644 docs/rapport/rapport_etat_artv2/images/local2.latex create mode 100644 docs/rapport/rapport_etat_artv2/images/local2.puml create mode 100644 docs/rapport/rapport_etat_artv2/images/local2fail.latex create mode 100644 docs/rapport/rapport_etat_artv2/images/localiteEtat.puml create mode 100644 docs/rapport/rapport_etat_artv2/images/localiteEtatFail.latex create mode 100644 docs/rapport/rapport_etat_artv2/images/seriaized.puml create mode 100644 docs/rapport/rapport_etat_artv2/images/serialized.latex create mode 100755 docs/rapport/rapport_etat_artv2/intro/index.tex create mode 100644 docs/rapport/rapport_etat_artv2/intro/intro.tex create mode 100644 docs/rapport/rapport_etat_artv2/intro/motivation.tex create mode 100755 docs/rapport/rapport_etat_artv2/main.tex diff --git a/docs/bibliographie/liste_detaille.md b/docs/bibliographie/liste_detaille.md index 701d6bc..9e9a1cc 100644 --- a/docs/bibliographie/liste_detaille.md +++ b/docs/bibliographie/liste_detaille.md @@ -29,4 +29,4 @@ Algorithme pour de la convergence BFT. (Reflexions sur des erreurs byzanties pos __tseng_distributed_2019__, "Algo BFT pour cohérence causale (preuve + experiences)" -__misra_byzantine_2021__, "Preuve d'impossibilité de BFT dans un certain contexte pour de la cohérence causale + 2 algo pour de la cohérence causale BFT" \ No newline at end of file +__misra_byzantine_2021__, "Preuve d'impossibilité de BFT dans un certain contexte pour de la cohérence causale + 2 algo pour de la cohérence causale BFT"4 \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/conclusion/index.tex b/docs/presentations/SoutenanceStage/conclusion/index.tex new file mode 100644 index 0000000..9d4f9d1 --- /dev/null +++ b/docs/presentations/SoutenanceStage/conclusion/index.tex @@ -0,0 +1,32 @@ +\begin{frame} + \frametitle{Conclusion} + + \begin{block}{Bilan Moral} + \begin{itemize} + \item Mon intégration à Parsec + \item Ma présence au laboratoire et mon rythme de travail + \end{itemize} + \end{block} + + \pause + + \begin{block}{La suite ?} + \begin{itemize} + \item Étudier des applications existantes d'édition collaborative adoptant de la cohérence faible. + \item Continuer mon travail avec Parsec : + \begin{itemize} + \item fournir un rapport de l'état de l'art adapté à leur problématique + \item fournir une preuve de concept de l'éditeur collaboratif + \end{itemize} + + \end{itemize} + \end{block} +\end{frame} + +\begin{frame} + \frametitle{Merci !} + + Place aux questions ! + + +\end{frame} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/consistency/byzantin.tex b/docs/presentations/SoutenanceStage/consistency/byzantin.tex new file mode 100644 index 0000000..e843f61 --- /dev/null +++ b/docs/presentations/SoutenanceStage/consistency/byzantin.tex @@ -0,0 +1,14 @@ +\begin{frame} + \frametitle{La cohérence faible appliquée aux milieux malveillant} + + \begin{block}{Plusieurs directions de recherches :} + \begin{itemize} + \item Le critère de cohérence réduit par design le champ des attaques malicieuses possibles. + \item Le critère de cohérence introduit de nouveaux types d'erreurs byzantines. + \begin{itemize} + \item Hypothèse la plus étayée sur le sujet. Mais pas de réponse satisfaisante. + \end{itemize} + \end{itemize} + \end{block} + +\end{frame} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/consistency/faible.tex b/docs/presentations/SoutenanceStage/consistency/faible.tex new file mode 100644 index 0000000..50eccc6 --- /dev/null +++ b/docs/presentations/SoutenanceStage/consistency/faible.tex @@ -0,0 +1,82 @@ +\begin{frame} + \frametitle{Les classes de cohérences} + + \begin{columns} + \column{0.6\textwidth} + + \begin{figure} + \resizebox{\columnwidth}{!}{ + \includegraphics{images/carte_criteres.png} + } + \caption{Perrin, \emph{Concurrence et cohérence dans les systèmes répartis}, 2017} + \end{figure} + + \column{0.4\columnwidth} + \begin{block}{Les classes de cohérences} + Deux grandes familles : + \begin{itemize} + \item Cohérence Forte + \item Cohérence Faible : + \begin{itemize} + \item Convergence (EC) + \item Localité d'état (SL) + \item Validité (V) + \end{itemize} + \end{itemize} + \end{block} + \end{columns} + \end{frame} + + \begin{frame} + \frametitle{Convergence (EC)} + + \begin{block}{Définition} + Les \textbf{lectures infinies} d'un document n'étant plus soumis à \textbf{aucune opération d'écriture} doit retourner pour tout nœud du système \textbf{la même valeur}. + \end{block} + + \begin{figure} + \centering + \resizebox{0.7\columnwidth}{!}{ + \begin{tcolorbox}[colframe=green!50!black] + \input{schemas/convergence} + \end{tcolorbox} + } + \end{figure} + + \end{frame} + + \begin{frame} + \frametitle{Localité d'état (SL)} + + \begin{block}{Définition} + Chaque processus, indépendamment des autres, doit garder une cohérence de ses lectures en fonction de leurs ordres locaux. + \end{block} + + + \begin{figure} + \centering + \resizebox{0.7\columnwidth}{!}{ + \begin{tcolorbox}[colframe=green!50!black] + \input{schemas/localiteetat} + \end{tcolorbox} + } + \end{figure} + \end{frame} + + \begin{frame} + \frametitle{Validité (V)} + + \begin{block}{Definition} + Chaque lecture doit résulter d'une suite d'opérations d'écriture valides impliquant l'ensemble des opérations d'écriture connue par le nœud à cet instant. + \end{block} + + + \begin{figure} + \centering + \resizebox{0.7\columnwidth}{!}{ + \begin{tcolorbox}[colframe=green!50!black] + \input{schemas/validite} + \end{tcolorbox} + } + \end{figure} + \end{frame} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/consistency/forte.tex b/docs/presentations/SoutenanceStage/consistency/forte.tex new file mode 100644 index 0000000..4fc5454 --- /dev/null +++ b/docs/presentations/SoutenanceStage/consistency/forte.tex @@ -0,0 +1,61 @@ +\begin{frame} + \frametitle{La cohérence selon Lamport} + + Leslie Lamport : + + \begin{itemize} + \item Initialement ingénieur chez Intel dans les années 60. + \item Il a travaillé sur les premières problématiques d'architectures multicœurs. + \item Il a ainsi posé les bases de l'informatique distribuée. + \end{itemize} + + Il a (entre autre) proposé une formalisation mathématique du comportement attendu d'un système réparti. \\ + Il propose 3 registres permettant de spécifier un comportement séquentiel dans un environnement distribué. + +\end{frame} + +\begin{frame} + \frametitle{Sûreté} + \begin{block}{Définition} + Chaque opération de \textbf{lecture} réalisée dans le même espace \textbf{non-concurrent} doit fournir le même resultat. + \end{block} + \begin{figure} + \input{schemas/linearisation_surete_hc} + \end{figure} + \end{frame} + + \begin{frame} + \frametitle{Régularité} + \begin{block}{Définition} + Une \textbf{opération de lecture concurrente à une opération d'écriture} doit fournir une valeur \textbf{antérieure ou postérieure à l'écriture}. + \end{block} + \begin{figure} + \input{schemas/linearisation_regularite_hc} + \end{figure} + \end{frame} + + \begin{frame} + \frametitle{Atomicité} + \begin{block}{Definition} + Si \textbf{deux opérations de lecture sont non-concurrentes} alors la seconde doit fournir une valeur \textbf{au moins aussi récente que} la précédente. + \end{block} + \begin{figure} + \input{schemas/linearisation_atomicite_hc} + \end{figure} + \end{frame} + + \begin{frame} + \frametitle{Cohérence Atomique ($C_\top$)} + + \begin{block}{Définition} + La cohérence atomique est le critère de cohérence le plus "fort". + \begin{itemize} + \item Propose une interactivité très faible. + \item Nécessite une synchronisation forte entre chaque opération. + \begin{itemize} + \item Chaque opération est bloquante et doit attendre la fin des opérations précédentes pour être exécutée. + \end{itemize} + \item Elle est utilisée comme référence pour les autres classes de cohérence. + \end{itemize} + \end{block} + \end{frame} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/consistency/index.tex b/docs/presentations/SoutenanceStage/consistency/index.tex new file mode 100644 index 0000000..b619f2f --- /dev/null +++ b/docs/presentations/SoutenanceStage/consistency/index.tex @@ -0,0 +1,8 @@ +\subsection*{Cohérence forte} +\include{consistency/forte.tex} + +\subsection*{Les compromis de la cohérence faible} +\include{consistency/faible.tex} + +\subsection*{Dans un contexte malveillant ?} +\include{consistency/byzantin.tex} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/distr_sys/bases.tex b/docs/presentations/SoutenanceStage/distr_sys/bases.tex new file mode 100644 index 0000000..9ddcb55 --- /dev/null +++ b/docs/presentations/SoutenanceStage/distr_sys/bases.tex @@ -0,0 +1,32 @@ +\begin{frame} + \frametitle{Un système distribué} + + \begin{block}{Définition} + Un système distribué est un ensemble d'\textbf{acteurs} capable de communiquer \textbf{les uns avec les autres} et travaillant ensemble à la réalisation d'une \textbf{tâche commune}. + \end{block} + + \begin{figure} + \centering + \resizebox{0.75\columnwidth}{!}{ + \includegraphics{images/distributedsystems.png} + } + \caption{Thibaut Arribe, \emph{Conception des chaînes éditoriales}} + \end{figure} +\end{frame} + +\begin{frame} + \frametitle{Un système distribué est un système vivant} + + Les systèmes distribués évoluent au fil du temps + + Il y a plusieurs approches permettant d'étudier ces changements : + \begin{itemize} + \item concentrés sur le \textbf{churn} (ajout ou retrait de nœuds) + \item concentrés sur les \textbf{messages} + \item concentrés sur la \textbf{connectivité} + \item concentrés sur les \textbf{états} $\Leftarrow$ + \item sûrement d'autres... ? + \end{itemize} + + +\end{frame} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/distr_sys/index.tex b/docs/presentations/SoutenanceStage/distr_sys/index.tex new file mode 100644 index 0000000..39ca154 --- /dev/null +++ b/docs/presentations/SoutenanceStage/distr_sys/index.tex @@ -0,0 +1,2 @@ +\subsection*{Définition} +\include{distr_sys/bases} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/images/carte_criteres.png b/docs/presentations/SoutenanceStage/images/carte_criteres.png new file mode 100755 index 0000000000000000000000000000000000000000..cd71ddc88a22310aca2c4ce1557e5b6debbdc910 GIT binary patch literal 162861 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

`?a!6c@3mS1+r(s7M!02%wabgnt=aI8? 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 PWDw=)>gTe~DWM4fQD5k+ literal 0 HcmV?d00001 diff --git a/docs/presentations/SoutenanceStage/schemas/convergence.tex b/docs/presentations/SoutenanceStage/schemas/convergence.tex new file mode 100755 index 0000000..4606363 --- /dev/null +++ b/docs/presentations/SoutenanceStage/schemas/convergence.tex @@ -0,0 +1,35 @@ +\resizebox{\columnwidth}{!}{ + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode] (11) {}; + \node[left] at (11.west) {$p_0$}; + \node[above] at (11.north) {$ecrire(1)$}; + \node[roundnode] (12) [right=50pt of 11] {}; + \node[above] at (12.north) {$ecrire(0)$}; + \node[roundnode] (13) [right=50pt of 12] {}; + \node[above] at (13.north) {$lire/\emptyset$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$ecrire(2)$}; + \node[roundnode] (22) [right=50pt of 21] {}; + \node[below] at (22.south) {$lire/2$}; + \node[roundnode] (23) [right=50pt of 22] {}; + \node[below] at (23.south) {$lire/\emptyset$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + + \draw (23) -- (13); + + \draw[dashed] ($(13)!0.5!(12) + (0,1)$) -- ++(0, -2.9); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/schemas/linearisation_atomicite_hc.tex b/docs/presentations/SoutenanceStage/schemas/linearisation_atomicite_hc.tex new file mode 100755 index 0000000..dcb5b75 --- /dev/null +++ b/docs/presentations/SoutenanceStage/schemas/linearisation_atomicite_hc.tex @@ -0,0 +1,31 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt}, + invisible/.style={draw=none, fill=none}, + ] + + \node[invisible] (10) {}; + \node[roundedrectangle, minimum width=150pt] (11) [right=100pt of 10] {$ecriture(1)$}; + \node[invisible] (12) [right=100pt of 11] {}; + + \node[invisible] (20) [below=15pt of 10] {}; + \node[roundedrectangle, minimum width=75pt] (21) [right=25pt of 20] {\textcolor{blue}{$lecture/0$}}; + \node[roundedrectangle, minimum width=50pt] (22) [right=75pt of 21] {\textcolor{blue}{$lecture/0$}}; + \node[roundedrectangle, minimum width=50pt] (23) [right=75pt of 22] {\textcolor{red}{$lecture/1$}}; + \node[invisible] (24) [below=15pt of 12] {}; + + \node[invisible] (30) [below=15pt of 20] {}; + \node[roundedrectangle, minimum width=50pt] (31) [right=125pt of 30] {\textcolor{red}{$lecture/1$}}; + \node[roundedrectangle, minimum width=80pt] (32) [right=40pt of 31] {\textcolor{red}{$lecture/1$}}; + \node[invisible] (33) [below=15pt of 24] {}; + + \node[invisible] (40) [below=25pt of 30] {}; + \node[invisible] (41) [below=25pt of 33] {}; + + \draw (10) -- (11) -- (12); + \draw (20) -- (21) -- (22) -- (23) -- (24); + \draw (30) -- (31) -- (32) -- (33); + + \draw[->] (40) -- node [above] {temps} (41); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/schemas/linearisation_regularite_hc.tex b/docs/presentations/SoutenanceStage/schemas/linearisation_regularite_hc.tex new file mode 100755 index 0000000..54b4bb1 --- /dev/null +++ b/docs/presentations/SoutenanceStage/schemas/linearisation_regularite_hc.tex @@ -0,0 +1,31 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt}, + invisible/.style={draw=none, fill=none}, + ] + + \node[invisible] (10) {}; + \node[roundedrectangle, minimum width=150pt] (11) [right=100pt of 10] {$ecriture(1)$}; + \node[invisible] (12) [right=100pt of 11] {}; + + \node[invisible] (20) [below=15pt of 10] {}; + \node[roundedrectangle, minimum width=75pt] (21) [right=25pt of 20] {\textcolor{blue}{$lecture/0$}}; + \node[roundedrectangle, minimum width=50pt] (22) [right=75pt of 21] {\textcolor{blue}{$lecture/0$}}; + \node[roundedrectangle, minimum width=50pt] (23) [right=75pt of 22] {\textcolor{red}{$lecture/1$}}; + \node[invisible] (24) [below=15pt of 12] {}; + + \node[invisible] (30) [below=15pt of 20] {}; + \node[roundedrectangle, minimum width=50pt] (31) [right=125pt of 30] {\textcolor{red}{$lecture/1$}}; + \node[roundedrectangle, minimum width=80pt] (32) [right=40pt of 31] {\textcolor{blue}{$lecture/0$}}; + \node[invisible] (33) [below=15pt of 24] {}; + + \node[invisible] (40) [below=25pt of 30] {}; + \node[invisible] (41) [below=25pt of 33] {}; + + \draw (10) -- (11) -- (12); + \draw (20) -- (21) -- (22) -- (23) -- (24); + \draw (30) -- (31) -- (32) -- (33); + + \draw[->] (40) -- node [above] {temps} (41); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/schemas/linearisation_surete_hc.tex b/docs/presentations/SoutenanceStage/schemas/linearisation_surete_hc.tex new file mode 100755 index 0000000..ccb281c --- /dev/null +++ b/docs/presentations/SoutenanceStage/schemas/linearisation_surete_hc.tex @@ -0,0 +1,31 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt}, + invisible/.style={draw=none, fill=none}, + ] + + \node[invisible] (10) {}; + \node[roundedrectangle, minimum width=150pt] (11) [right=100pt of 10] {$ecriture(1)$}; + \node[invisible] (12) [right=100pt of 11] {}; + + \node[invisible] (20) [below=15pt of 10] {}; + \node[roundedrectangle, minimum width=75pt] (21) [right=25pt of 20] {\textcolor{blue}{$lecture/0$}}; + \node[roundedrectangle, minimum width=50pt] (22) [right=75pt of 21] {\textcolor{blue}{$lecture/0$}}; + \node[roundedrectangle, minimum width=50pt] (23) [right=75pt of 22] {\textcolor{red}{$lecture/1$}}; + \node[invisible] (24) [below=15pt of 12] {}; + + \node[invisible] (30) [below=15pt of 20] {}; + \node[roundedrectangle, minimum width=80pt] (31) [right=125pt of 30] {\textcolor{red!50!blue}{$lecture/27$}}; + \node[roundedrectangle, minimum width=50pt] (32) [right=40pt of 31] {\textcolor{red}{$lecture/1$}}; + \node[invisible] (33) [below=15pt of 24] {}; + + \node[invisible] (40) [below=25pt of 30] {}; + \node[invisible] (41) [below=25pt of 33] {}; + + \draw (10) -- (11) -- (12); + \draw (20) -- (21) -- (22) -- (23) -- (24); + \draw (30) -- (31) -- (32) -- (33); + + \draw[->] (40) -- node [above] {temps} (41); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/schemas/localiteetat.tex b/docs/presentations/SoutenanceStage/schemas/localiteetat.tex new file mode 100755 index 0000000..935d74b --- /dev/null +++ b/docs/presentations/SoutenanceStage/schemas/localiteetat.tex @@ -0,0 +1,34 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode] (11) {}; + \node[left] at (11.west) {$p_0$}; + \node[above] at (11.north) {$ecrire(0)$}; + \node[roundnode] (12) [right=50pt of 11] {}; + \node[above] at (12.north) {$lire/\emptyset$}; + \node[roundnode] (13) [right=50pt of 12] {}; + \node[above] at (13.north) {$lire/1$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$ecrire(1)$}; + \node[roundnode] (22) [right=50pt of 21] {}; + \node[below] at (22.south) {$lire/\emptyset$}; + \node[roundnode] (23) [right=50pt of 22] {}; + \node[below] at (23.south) {$lire/0$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + + \draw[message] (11) -- ($(22)!0.5!(23)$); + \draw[message] (21) -- ($(12)!0.5!(13)$); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/schemas/validite.tex b/docs/presentations/SoutenanceStage/schemas/validite.tex new file mode 100755 index 0000000..29074ea --- /dev/null +++ b/docs/presentations/SoutenanceStage/schemas/validite.tex @@ -0,0 +1,31 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode] (11) {}; + \node[left] at (11.west) {$p_0$}; + \node[above] at (11.north) {$ecrire(1)$}; + \node[roundnode] (12) [right=50pt of 11] {}; + \node[above] at (12.north) {$lire/1$}; + \node[roundnode] (13) [right=50pt of 12] {}; + \node[above] at (13.north) {$lire/1$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$lire/1$}; + \node[roundnode] (22) [right=50pt of 21] {}; + \node[below] at (22.south) {$supprimer(1)$}; + \node[roundnode] (23) [right=50pt of 22] {}; + \node[below] at (23.south) {$lire/\emptyset$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/schemas/wcc_hc_1.tex b/docs/presentations/SoutenanceStage/schemas/wcc_hc_1.tex new file mode 100755 index 0000000..839acb3 --- /dev/null +++ b/docs/presentations/SoutenanceStage/schemas/wcc_hc_1.tex @@ -0,0 +1,42 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode, color=red] (11) {}; + \node[above] at (11.north) {$w(1)$}; + \node[roundnode, color=red!50] (12) [right=of 11] {}; + \node[above] at (12.north) {$r/(0,1)$}; + \node[roundnode, color=red!25] (13) [right=of 12] {}; + \node[above] at (13.north) {$r/(3,2)^\omega$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + + \node[roundnode, color=green!75!black] (21) [below=20pt of 11] {}; + \node[left] at (21.west) {$r/(3,1)$}; + \node[roundnode, color=green!95!black] (22) [right=of 21] {}; + \node[right] at (22.east) {$w(2)$}; + + \draw[arrow] (21) -- (22); + + \node[roundnode, color=blue] (31) [below=20pt of 21] {}; + \node[below] at (31.south) {$w(3)$}; + \node[roundnode, color=blue!50] (32) [right=of 31] {}; + \node[below] at (32.south) {$r/(3,1)$}; + \node[roundnode, color=blue!25] (33) [right=of 32] {}; + \node[below] at (33.south) {$r/(3,2)^\omega$}; + + \draw[arrow] (31) -- (32); + \draw[arrow] (32) -- (33); + + \draw[message] (11) -- (21); + \draw[message] (31) -- (21); + \draw[message] (21) -- (32); + \draw[message] (22) -- (13); + \draw[message] (22) -- (33); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/schemas/wcc_hc_2.tex b/docs/presentations/SoutenanceStage/schemas/wcc_hc_2.tex new file mode 100755 index 0000000..1651ec2 --- /dev/null +++ b/docs/presentations/SoutenanceStage/schemas/wcc_hc_2.tex @@ -0,0 +1,29 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode] (11) {}; + \node[above] at (11.north) {$w(1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$r/(2,1)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$r/(2,1)^\omega$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + + \node[roundnode] (21) [below=20pt of 11] {}; + \node[left] at (21.west) {$r/(0,1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[right] at (22.east) {$w(2)$}; + + \draw[arrow] (21) -- (22); + + \draw[message] (11) -- (21); + \draw[message] (22) -- (12); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/schemas/wcc_hc_3.tex b/docs/presentations/SoutenanceStage/schemas/wcc_hc_3.tex new file mode 100755 index 0000000..6b109f9 --- /dev/null +++ b/docs/presentations/SoutenanceStage/schemas/wcc_hc_3.tex @@ -0,0 +1,41 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode, color=red] (11) {}; + \node[above] at (11.north) {$w(1)$}; + \node[roundnode, color=red!50] (12) [right=of 11] {}; + \node[above] at (12.north) {$r/(3,1)$}; + \node[roundnode, color=red!25] (13) [right=of 12] {}; + \node[above] at (13.north) {$r/(1,2)^\omega$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + + \node[roundnode, color=green!75!black] (21) [below=20pt of 11] {}; + \node[left] at (21.west) {$r/(0,0)$}; + \node[roundnode, color=green!95!black] (22) [right=of 21] {}; + \node[right] at (22.east) {$w(2)$}; + + \draw[arrow] (21) -- (22); + + \node[roundnode, color=blue] (31) [below=20pt of 21] {}; + \node[below] at (31.south) {$w(3)$}; + \node[roundnode, color=blue!50] (32) [right=of 31] {}; + \node[below] at (32.south) {$r/(1,3)$}; + \node[roundnode, color=blue!25] (33) [right=of 32] {}; + \node[below] at (33.south) {$r/(3,2)^\omega$}; + + \draw[arrow] (31) -- (32); + \draw[arrow] (32) -- (33); + + \draw[message] (11) -- (31); + \draw[message] (31) -- (12); + \draw[message] (22) -- (13); + \draw[message] (22) -- (33); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/SoutenanceStage/work/index.tex b/docs/presentations/SoutenanceStage/work/index.tex new file mode 100644 index 0000000..f355619 --- /dev/null +++ b/docs/presentations/SoutenanceStage/work/index.tex @@ -0,0 +1,25 @@ +\begin{frame} + \frametitle{Travail réalisé} + + \begin{columns} + \column{0.4\columnwidth} + \begin{block}{LIS} + \begin{itemize} + \item Une réflexion sur l'approche à prendre avec la problématique de Parsec + \item Une étude et une compréhension profonde de l'architecture derrière Parsec + \end{itemize} + \end{block} + + \column{0.4\columnwidth} + \begin{block}{Scille} + \begin{itemize} + \item L'étude et la réalisation de l'état de l'art. + \item Des présentations dans le cadre du LIS + \end{itemize} + \end{block} + \vspace{50pt} + + + \end{columns} + +\end{frame} \ No newline at end of file diff --git a/docs/presentations/scille/séminaire_printemps_2024/crdt/index.tex b/docs/presentations/scille/séminaire_printemps_2024/crdt/index.tex new file mode 100644 index 0000000..2e90563 --- /dev/null +++ b/docs/presentations/scille/séminaire_printemps_2024/crdt/index.tex @@ -0,0 +1,17 @@ +\begin{frame} + \frametitle{Le principe de la commutativité} + + \begin{block}{Définition} + Une opération est commutative si l'ordre dans lequel elle est appliquée n'a pas d'importance. + \end{block} + + \begin{exampleblock}{Exemple} + \begin{itemize} + \item $a + b = b + a$ + \item $a \times b = b \times a$ MAIS $a \times b \times c \neq a \times c \times b$ + \item $a \div b \neq b \div a$ + \end{itemize} + \end{exampleblock} + + L'idée est de restreindre les opérations possibles de l'application à seulement celles qui sont commutatives entre elles. +\end{frame} \ No newline at end of file diff --git a/docs/presentations/scille/séminaire_printemps_2024/images/carte_criteres.png b/docs/presentations/scille/séminaire_printemps_2024/images/carte_criteres.png new file mode 100755 index 0000000000000000000000000000000000000000..cd71ddc88a22310aca2c4ce1557e5b6debbdc910 GIT binary patch literal 162861 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 z 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 Serialisabilité + 3. Convergence/Convergence Forte + 1. Définit le concept de convergence + 2. Pourquoi ? + les apports de la convergence forte + 3. Types de données basés sur la convergence (pourquoi ?) + 4. Cohérence Pipeline + 1. On présente la notion d'Intention + 2. On l'oppose à la cohérence Pipeline + +6. Cohérence d'écriture + 1. Ce que ne couvre pas les modèles précédents + 2. Cohérence d'écriture et cohérence d'écriture forte. + diff --git a/docs/rapport/rapport_etat_art/coherence_forte/index.tex b/docs/rapport/rapport_etat_art/coherence_forte/index.tex new file mode 100644 index 0000000..cd35e0d --- /dev/null +++ b/docs/rapport/rapport_etat_art/coherence_forte/index.tex @@ -0,0 +1,96 @@ +La cohérence forte présente, dans un premier temps, l'approche la plus intuitive pour une application collaborative dans le cloud. +Prenons l'approche de chercher à répliquer un processus d'édition local d'un document. Formalisons dans un premier temps ce qu'on attend d'une application d'édition de document local. + +\begin{figure}[!h] + \centering + \resizebox{!}{.4\columnwidth}{ + \input{images/local1.latex} + } + \caption{Bob edit un document localement} + \label{local_1} +\end{figure} + +On voit sur la figure \ref{local_1} que Bob émet une requête à son interface utilisateur. À partir de là le clavier partage l'information au système jusqu'à l'application d'édition. En fonction du traitement de cette information, si elle est acceptée par l'application d'édition, alors elle affiche un document modifié en accord avec la saisie de Bob à l'écran. Ce qui donne un feedback à Bob concernant son action initiale. +Dans notre modélisation, nous séparons bien les actions de l'utilisateur sur ses interfaces (l'écran et le clavier) des interactions au sein du système. + +Dans un cas d'usage courant, une application d'édition local ne présente pas de problèmes liés à la présence de plusieurs éditeurs en simultanés. Il y a en effet une seule interface homme-machine, c'est-à-dire de façon pragmatique un unique écran et clavier. + +Imaginons ainsi un cas où Alice et Bob souhaitent éditer ensemble un même document. Si on voulait simplement appliquer le fonctionnement local que nous venons de décrire à cette nouvelle problématique. Il conviendrait de simplement rajouter un IHM à Alice. Ainsi il y a toujours une seule application d'édition collaborative sur lequel viennent se connecter cette fois-ci deux interfaces (comme visible dans la figure \ref{local_2}). + +\begin{figure}[!h] +\begin{multicols}{2} + + \centering + \resizebox{!}{.7\columnwidth}{ + \input{images/local2.latex} + } + \caption{Alice et Bob éditent un document localement} + \label{local_2} + + \columnbreak + + \centering + \resizebox{!}{.8\columnwidth}{ + \input{images/local2fail.latex} + } + \caption{Alice et Bob éditent un document localement de manière concurente} + \label{local_2_fail} + \end{multicols} +\end{figure} + + +Nous avons à présents deux acteurs qui éditent et lise le document, et un autre qui s'occupe de stocker et de synchroniser le document entre ces deux acteurs. + +La limite liée à cette approche réside dans le fait que les communications entre Alice et l'application et Bob et l'application ne peuvent pas être garentits comme équitables. En effet, Alice et Bob peuvent très bien se retrouver déconnectés de manière non prévisible et asynchrone. Ou bien avoir des temps de transmissions de leurs informations qui diffèrent. Le caractère non-deterministe des ces erreurs peut résulter en des incohérences dans l'ordre d'arrivé des informations soumises par Alice et Bob. Ce qui peut a terme créer des incohérences dans le document final. + +C'est néanmoins une problèmatique qui peut être assimilée à de la gestion de la concurrence entre processus. C'est en effet un domaine qui est étudié depuis l'apparition des premiers processeurs multi-coeur. Une approche que nous pouvons donc prendre à la programmation concurente serait de résoudre ce problème en venant utliser des techniques de synchronisation de processus. C'est-à-dire en utilisant des mécanismes de synchronisation tel que des verrous dans notre application. On peut par exemple utiliser des sémaphores pour gérer les accès concurrents à la mémoire partagée. Ce qui resulterais en l'execution suivante: + +\begin{figure}[!h] + \centering + \resizebox{!}{.7\columnwidth}{ + \input{images/serialized.latex} + } + \caption{Alice et Bob éditent un document localement avec des vérous} + \label{serialized} +\end{figure} + +On voit sur la figure \ref{serialized} que les actions d'Alice et Bob sont sérialisées. C'est-à-dire que les actions d'Alice et Bob sont exécutées l'une après l'autre. Ce qui permet d'éviter les problèmes de concurrence entre les deux acteurs. Cependant, cette approche est très limitée. En effet, elle ne permet pas de profiter des avantages de l'édition collaborative. En effet, cela signifie que l'un des deux acteurs doit attendre que l'autre ait fini d'éditer le document pour pouvoir à son tour l'éditer. Ce qui rabaisse les performance de l'application à la latence de l'acteur le plus lent. + +En revenons dans notre contexte initial qui est une applicationn d'édition collaborative nous souhaitons pouvoir gérér un grand nombre d'utilisateur en simultanés. Ainsi la probabilité d'avoir une expérience dégradé pour l'ensemble des utilisateur croit avec le nombre d'utilisateur. Pour pallier à ce problème l'approche qui peut être adopté est d'exclure les utilisateurs possèdant des connections trop limités avec le serveur. + +C'est néanmoins la seule approche qui nous permet d'obtenir une cohérence absolue autant dans la prise en compte des opérations d'écritures des acteurs que dans le traitement de leurs lectures. + +Selon Perrin on se placerait dans une approche qui relèverait de la cohérence séquentielle. + +\subsection{Cohérence séquentielle} + +% blbla sur la cohérence séquentielle de manière très théorique et fondamentale + + + +\paragraph{Validité} + +Dans une application d'édition collaborative on s'attend à ce que toutes les entrées des utilisateurs soient prises en compte. Il nous parait en effet inacceptable que des saisies disparaisses de manière aléatoire durant l'exécution. + +Ce principe nous permet d'introduire une première propriété utilisée par Perrin pour définir et classer les différents critères de cohérence qu'est la validité. + +La validité peut ainsi être résumé comme la propriété qui permet d'assurer que toutes les saisies réalisées, et seulement elles, soient prises en compte dans l'exécution du système. + +Ceci se traduit par l'affichage d'un retour quant à la saisie de bob sur son application. Lui signifiant que son interaction avec l'application à bien était prise en compte, et n'est donc pas passée à la trappe. Elle n'implique néanmoins aucune notion d'ordre dans les saisies, ce qui signifie que les saisies peuvent être réagencées durant l'exécution. + +\paragraph{Convergence} + +Une autre attente d'une application d'édition collaborative est en quelque sorte sont determinisme sur une durée infinie. On s'attend en effet, une fois toutes les éditions terminés, que le document soit identique pour tous les acteurs. C'est-à-dire que peut importe l'ordre dans lequel les saisies ont été réalisées, le document final doit être identique pour tous les noeuds. + +C'est ce que Perrin appelle la convergence qu'il définit plus formellement comment étant la propriété qui assure que si un nombre finit d'ecriture et infini de lecture sont réaliséés, alors tous les noeuds finissent par avoir la même valeur. + +\paragraph{Localité D'état} + +La dernière propriétée du model de Perrin est la localité d'état. + +Elle consiste en le fait que chaque acteur doivent garder une vision local cohérente du système. Par exemple, comme illustrée dans la Figure \ref{local_state}, au fur et à mesure des éditions de Bob, sa vue local va évoluer en conséquence, mais si il recoit à un moment donné une édition d'Alice qui est antérieur à une de ses éditions, alors il doit privilégier sa propre édition. C'est-à-dire que sa vue local doit être cohérente avec son historique d'édition quitte à diverger de la vue local d'Alice. + +\begin{figure}[!h] + \caption{Localité d'état} + \label{local_state} +\end{figure} \ No newline at end of file diff --git a/docs/rapport/rapport_etat_art/consistency_criteria/index.tex b/docs/rapport/rapport_etat_art/consistency_criteria/index.tex index c850426..6ddf0a0 100755 --- a/docs/rapport/rapport_etat_art/consistency_criteria/index.tex +++ b/docs/rapport/rapport_etat_art/consistency_criteria/index.tex @@ -1,7 +1,68 @@ -\subsection{Etat des différents critères} -\subsubsection{Les modèles de mémoires partagées} +Nous venons de définir la cohérence séquentielle et de proposer une approche pour la réalisser. Néanmoins nous avons vue que cette approche est limitès puisqu'elle pousse le système à être nivelé par le bas en s'adaptant à l'acteur le plus lent. +Nous allons donc explorer d'autres approches réalisant plus de compromis dans la gestion de la cohérence du système. -\subsubsection{La cohérence forte} -Cohérence Séquentielle \cite{lamport_how_1979} +Ainsi là où la cohérence séquentielle (et par extension la cohérence forte) permettait de garantir nos 3 propriétées que sont la validité, la convergence et la localité d'état. Nous allons explorer des solution qui certaines de ces propriétées afin de gagner en performance et en résilience. -\subsubsection{La cohérence Faible} +\subsection{Adaptation à notre problème} + +Dans le cadre de notre problématique il convient dans un premier temps de spécifier quels sont les critères qui semblent être essentiels à la réalisation d'une application d'édition collaborative. Pour ca nous pouvons dèja imaginer ce qu'implique concretement ces différents critères sur le comportement de notre application. + +\subsubsection{Validité} + +Comme dit précèdemment, la validité permet d'assurer que les saisies de Bob soient toujours prise en compte en tout point du système. C'est-à-dire que si Bob saisit "Hello" puis "World" alors il s'attend à ce que ces deux saisies soient prises en compte. Ce qui se traduit par l'affichage de "Hello World" ou "World Hello sur son écran. Les états finaux incorects qui ne respecterais pas la validité sont alors "Hello", "World" ou "$\emptyset$". + +De la même manière, les saisies des aitres acteurs du sytème peuvent donc très bien étre ignorés, intercalés entre les saises de Bob, et réagencés durant l'éxécution. + +Ne pas prendre en compte le critère de validité dans notre application reviendrait donc à être capable d'ignorer des saisies soumises par l'utilisateur. C'est ce qui est formalisé par le critère de cohérence dit de Sérialization (selon Perrin). + +L'application de la validité demande à notre système une approche d'acknowledgement. Puisque toutes saisies ce doit d'être considéré, le client doit s'assurer que sa saisie à bien était recu par l'ensemble des noeuds. Dans le cas d'une application centralisé, seul un intermédiaire doit être contacté. Mais dans un contexte plus distriué, le problème augmente en compléxité et en coût pour le réseau. + +\paragraph{La Serialisation} + +La sérialisation se propose donc comme étant l'exact inverse de la validité, c'est à dire un critère de cohérence fort auquel nous aurions retiré la validité. ($SER = \{C_\top\} - \{V\}$) + +\subsubsection{Convergence} + +La convergence permet d'assurer que le document final soit identique pour tous les acteurs. C'est-à-dire que peut importe l'ordre dans lequel les saisies ont été recu par chaque noeud, le document final doit être identique pour tous. + +Il est important de noter que la convergence seule ne dit rien sur la source des données qui composent le document. Ainsi il est possible que le document final ne prenne pas en compte toutes les saisies réalisées sur le système. Ou bien même qu'il prenne en compte des saisies qui n'ont jamais été réalisées. + +Appliqué à notre problème, la convergence assure que le document final soit identique pour tous les acteurs, ce qui peut sembler essentiel dans notre cas. + +L'application de la convergence introduit dans notre système une notion de gestion des conflits. Si plusieurs acteurs souhaitent écrire au même moments, alors des mécanismes doivent être mise en place pour une gestion des conflits deterministe. C'est à dire, permettant de garantir une seule version pour tous les acteurs quelque soit sa position dans le système, et donc l'ordre potentiel de reception des saisies. + +[Un exemple de gestion de conflits pas si évidente que ca] + +Cette gestion des conflit peut être réalisé de manière distribué impliquant la mise en place d'un algorithme de consensus. Ce qui peut être très couteux en terme de performance et de complexité. Ou bien être délégué à un acteur centralisé qui aura le pouvoir de manipuler l'ordre final des saisies. Ce qui peut poser des problèmes en termes de gouvernance du système, donnant le pouvoir à un seul acteur. + +Il est bon de noter que bien que la convergence est une propriétée qui semble importante dans le cadre d'une application d'édition collaborative classique. Il existe des manière de concevoir une application collaborative fournissant un document final identique, mais ne garantissant pas nécéssairement la convergence dans l'ordre où les saisies sont interprétés. Ce point sera discuté lorsque nous aborderons les CRDTs. + +\subsubsection{Localité d'état} + +La localité d'état permet d'assurer que les mises à jour d'affichages futures soient toujours cohérentes avec les mises à jour d'affichages passées. Indirectement, cela interdit le changement de l'ordre dans lequel les transactions passés sont interprétés une fois que le résultat est affiché à l'utilisateur. Mais empeche aussi l'insertion et la supression de transctions dans ce même passé. + +L'objectif à haut niveau est de garder une expérience cohérente pour l'utilisateur, en interdisant à l'application de tolérer des retours en arrières de l'état courant. + +Appliqué à notre problème, la localité d'état permet d'assurer que les saisies de Bob et celles qu'il a reçu soient toujours affichés dans l'ordre où elles ont étaient interprétés initialement. Cette propriétée permet par exemple d'empecher le cas où Alice traiterais la saisie de bob, bob de son coté suprime la saisie qu'il vient de réalisé, et Alice renvoit à Bob la saisie qu'elle vient de modifier. Ce cas est explicité dans la figure \ref{local_state_fail}. + +\begin{figure}[!h] + \centering + \resizebox{!}{0.7\columnwidth}{ + \input{images/localiteEtatFail.latex} + } + \caption{Localité d'état non respectée} + \label{local_state_fail} +\end{figure} + +Du point de vue de Bob, il vient de revoir aparaitre une ligne qu'il vient de supprimer, ce qui rend son expérience incohérente. + +En effet, premièrement Bob à vue s'afficher sur son écran la ligne qu'il venant de saisir \\ $\delta = \{"Hello World"\}$ qui est le resultat de l'éxécution $\text{inserer}("Hello World")$. Puis il supprime le mot "World". Le passé des éxécutions de Bob devient donc $\text{inserer}("Hello World") \cdot \text{supprimer}(" World") = \{"Hello"\}$. Mettant ainsi à jour son état local. Enfin il recoit l'opération d'Alice qui vinet de réaliser une modification en se basant sur un état antérieur à l'état actuel de Bob. L'état qu'il recoit est donc le résultat des opérations $\text{inserer}("Hello World") \cdot \text{inserer}("Hello World") = \{"Hello World"\}$. On omet ici une opération que Bob à soumise, qu'il à pu constater comme étant comptabilisé dans le calcul de son état local, mais qui à ensuite était ignoré par le système. La cohérence de l'état local de Bob n'a donc pas était respectée. + + +% \subsection{Etat des différents critères} +% \subsubsection{Les modèles de mémoires partagées} + +% \subsubsection{La cohérence forte} +% Cohérence Séquentielle \cite{lamport_how_1979} + +% \subsubsection{La cohérence Faible} diff --git a/docs/rapport/rapport_etat_art/images/local1.latex b/docs/rapport/rapport_etat_art/images/local1.latex new file mode 100644 index 0000000..3ce4dac --- /dev/null +++ b/docs/rapport/rapport_etat_art/images/local1.latex @@ -0,0 +1,43 @@ +% generated by Plantuml 1.2022.7 +\definecolor{plantucolor0000}{RGB}{24,24,24} +\definecolor{plantucolor0001}{RGB}{0,0,0} +\definecolor{plantucolor0002}{RGB}{226,226,240} +\begin{tikzpicture}[yscale=-1 +,pstyle0/.style={color=plantucolor0000,line width=0.5pt,dash pattern=on 5.0pt off 5.0pt} +,pstyle1/.style={color=plantucolor0000,fill=plantucolor0002,line width=0.5pt} +,pstyle3/.style={color=plantucolor0000,fill=plantucolor0000,line width=1.0pt} +,pstyle4/.style={color=plantucolor0000,line width=1.0pt} +] +\draw[pstyle0] (23pt,84.0679pt) -- (23pt,311.01pt); +\draw[pstyle0] (134.7162pt,84.0679pt) -- (134.7162pt,311.01pt); +\draw[pstyle0] (208.3289pt,84.0679pt) -- (208.3289pt,311.01pt); +\draw[pstyle0] (368.0101pt,84.0679pt) -- (368.0101pt,311.01pt); +\node at (5pt,65pt)[below right,color=black]{Bob}; +\draw[pstyle1] (23.3692pt,13.5pt) ellipse (8pt and 8pt); +\draw[color=plantucolor0000,line width=0.5pt] (23.3692pt,21.5pt) -- (23.3692pt,48.5pt)(10.3692pt,29.5pt) -- (36.3692pt,29.5pt)(23.3692pt,48.5pt) -- (10.3692pt,63.5pt)(23.3692pt,48.5pt) -- (36.3692pt,63.5pt); +\draw[pstyle1] (100.7162pt,55pt) arc (180:270:5pt) -- (105.7162pt,50pt) -- (164.3289pt,50pt) arc (270:360:5pt) -- (169.3289pt,55pt) -- (169.3289pt,78.0679pt) arc (0:90:5pt) -- (164.3289pt,83.0679pt) -- (105.7162pt,83.0679pt) arc (90:180:5pt) -- (100.7162pt,78.0679pt) -- cycle; +\node at (107.7162pt,57pt)[below right,color=black]{Clavier}; +\draw[pstyle1] (179.3289pt,55pt) arc (180:270:5pt) -- (184.3289pt,50pt) -- (233.3289pt,50pt) arc (270:360:5pt) -- (238.3289pt,55pt) -- (238.3289pt,78.0679pt) arc (0:90:5pt) -- (233.3289pt,83.0679pt) -- (184.3289pt,83.0679pt) arc (90:180:5pt) -- (179.3289pt,78.0679pt) -- cycle; +\node at (186.3289pt,57pt)[below right,color=black]{Ecran}; +\draw[pstyle1] (330.0101pt,55pt) arc (180:270:5pt) -- (335.0101pt,50pt) -- (402.2546pt,50pt) arc (270:360:5pt) -- (407.2546pt,55pt) -- (407.2546pt,78.0679pt) arc (0:90:5pt) -- (402.2546pt,83.0679pt) -- (335.0101pt,83.0679pt) arc (90:180:5pt) -- (330.0101pt,78.0679pt) -- cycle; +\node at (337.0101pt,57pt)[below right,color=black]{Système}; +\draw[pstyle3] (123.0226pt,113.7739pt) -- (133.0226pt,117.7739pt) -- (123.0226pt,121.7739pt) -- (127.0226pt,117.7739pt) -- cycle; +\draw[pstyle4] (23.3692pt,117.7739pt) -- (129.0226pt,117.7739pt); +\node at (30.3692pt,98.0679pt)[below right,color=black]{Ecrit "Hello"}; +\draw[pstyle3] (356.6323pt,145.4799pt) -- (366.6323pt,149.4799pt) -- (356.6323pt,153.4799pt) -- (360.6323pt,149.4799pt) -- cycle; +\draw[pstyle4] (135.0226pt,149.4799pt) -- (362.6323pt,149.4799pt); +\node at (142.0226pt,129.7739pt)[below right,color=black]{Envoie "Hello"}; +\draw[pstyle4] (368.6323pt,198.892pt) -- (410.6323pt,198.892pt); +\draw[pstyle4] (410.6323pt,198.892pt) -- (410.6323pt,211.892pt); +\draw[pstyle4] (369.6323pt,211.892pt) -- (410.6323pt,211.892pt); +\draw[pstyle3] (379.6323pt,207.892pt) -- (369.6323pt,211.892pt) -- (379.6323pt,215.892pt) -- (375.6323pt,211.892pt) -- cycle; +\node at (375.6323pt,161.4799pt)[below right,color=black]{Accepte la saisie et}; +\node at (375.6323pt,179.186pt)[below right,color=black]{modifie le document}; +\draw[pstyle3] (219.8289pt,257.304pt) -- (209.8289pt,261.304pt) -- (219.8289pt,265.304pt) -- (215.8289pt,261.304pt) -- cycle; +\draw[pstyle4] (213.8289pt,261.304pt) -- (367.6323pt,261.304pt); +\node at (225.8289pt,223.892pt)[below right,color=black]{Afiche le document}; +\node at (225.8289pt,241.598pt)[below right,color=black]{mis à jour}; +\draw[pstyle3] (34.3692pt,289.01pt) -- (24.3692pt,293.01pt) -- (34.3692pt,297.01pt) -- (30.3692pt,293.01pt) -- cycle; +\draw[pstyle4] (28.3692pt,293.01pt) -- (207.8289pt,293.01pt); +\node at (40.3692pt,273.304pt)[below right,color=black]{Regarde}; +\end{tikzpicture} diff --git a/docs/rapport/rapport_etat_art/images/local1.puml b/docs/rapport/rapport_etat_art/images/local1.puml new file mode 100644 index 0000000..0b6edc3 --- /dev/null +++ b/docs/rapport/rapport_etat_art/images/local1.puml @@ -0,0 +1,16 @@ +@startuml local1 + +hide footbox + +actor Bob +participant Clavier +participant Ecran +participant Système + +Bob -> Clavier : Ecrit "Hello" +Clavier -> Système : Envoie "Hello" +Système -> Système : Accepte la saisie et\nmodifie le document +Système -> Ecran : Afiche le document\nmis à jour +Ecran -> Bob : Regarde + +@enduml \ No newline at end of file diff --git a/docs/rapport/rapport_etat_art/images/local2.latex b/docs/rapport/rapport_etat_art/images/local2.latex new file mode 100644 index 0000000..52fd4e1 --- /dev/null +++ b/docs/rapport/rapport_etat_art/images/local2.latex @@ -0,0 +1,41 @@ +% generated by Plantuml 1.2022.7 +\definecolor{plantucolor0000}{RGB}{24,24,24} +\definecolor{plantucolor0001}{RGB}{0,0,0} +\definecolor{plantucolor0002}{RGB}{226,226,240} +\begin{tikzpicture}[yscale=-1 +,pstyle0/.style={color=plantucolor0000,line width=0.5pt,dash pattern=on 5.0pt off 5.0pt} +,pstyle1/.style={color=plantucolor0000,fill=plantucolor0002,line width=0.5pt} +,pstyle2/.style={color=plantucolor0000,line width=0.5pt} +,pstyle3/.style={color=plantucolor0000,fill=plantucolor0000,line width=1.0pt} +,pstyle4/.style={color=plantucolor0000,line width=1.0pt} +] +\draw[pstyle0] (26pt,84.0679pt) -- (26pt,294.304pt); +\draw[pstyle0] (75.9pt,84.0679pt) -- (75.9pt,294.304pt); +\draw[pstyle0] (235.9633pt,84.0679pt) -- (235.9633pt,294.304pt); +\node at (5pt,65pt)[below right,color=black]{Alice}; +\draw[pstyle1] (26.45pt,13.5pt) ellipse (8pt and 8pt); +\draw[pstyle2] (26.45pt,21.5pt) -- (26.45pt,48.5pt)(13.45pt,29.5pt) -- (39.45pt,29.5pt)(26.45pt,48.5pt) -- (13.45pt,63.5pt)(26.45pt,48.5pt) -- (39.45pt,63.5pt); +\node at (57.9pt,65pt)[below right,color=black]{Bob}; +\draw[pstyle1] (76.2692pt,13.5pt) ellipse (8pt and 8pt); +\draw[pstyle2] (76.2692pt,21.5pt) -- (76.2692pt,48.5pt)(63.2692pt,29.5pt) -- (89.2692pt,29.5pt)(76.2692pt,48.5pt) -- (63.2692pt,63.5pt)(76.2692pt,48.5pt) -- (89.2692pt,63.5pt); +\draw[pstyle1] (184.9633pt,55pt) arc (180:270:5pt) -- (189.9633pt,50pt) -- (282.623pt,50pt) arc (270:360:5pt) -- (287.623pt,55pt) -- (287.623pt,78.0679pt) arc (0:90:5pt) -- (282.623pt,83.0679pt) -- (189.9633pt,83.0679pt) arc (90:180:5pt) -- (184.9633pt,78.0679pt) -- cycle; +\node at (191.9633pt,57pt)[below right,color=black]{Application}; +\draw[pstyle3] (224.2932pt,113.7739pt) -- (234.2932pt,117.7739pt) -- (224.2932pt,121.7739pt) -- (228.2932pt,117.7739pt) -- cycle; +\draw[pstyle4] (26.45pt,117.7739pt) -- (230.2932pt,117.7739pt); +\node at (33.45pt,98.0679pt)[below right,color=black]{saisir("Hello")}; +\draw[pstyle3] (37.45pt,145.4799pt) -- (27.45pt,149.4799pt) -- (37.45pt,153.4799pt) -- (33.45pt,149.4799pt) -- cycle; +\draw[pstyle4] (31.45pt,149.4799pt) -- (235.2932pt,149.4799pt); +\node at (43.45pt,129.7739pt)[below right,color=black]{lire("Hello")}; +\draw[pstyle3] (87.2692pt,177.186pt) -- (77.2692pt,181.186pt) -- (87.2692pt,185.186pt) -- (83.2692pt,181.186pt) -- cycle; +\draw[pstyle4] (81.2692pt,181.186pt) -- (235.2932pt,181.186pt); +\node at (93.2692pt,161.4799pt)[below right,color=black]{lire("Hello")}; +\draw[pstyle3] (224.2932pt,208.892pt) -- (234.2932pt,212.892pt) -- (224.2932pt,216.892pt) -- (228.2932pt,212.892pt) -- cycle; +\draw[pstyle4] (76.2692pt,212.892pt) -- (230.2932pt,212.892pt); +\node at (83.2692pt,193.186pt)[below right,color=black]{saisir(" World")}; +\draw[pstyle3] (37.45pt,240.598pt) -- (27.45pt,244.598pt) -- (37.45pt,248.598pt) -- (33.45pt,244.598pt) -- cycle; +\draw[pstyle4] (31.45pt,244.598pt) -- (235.2932pt,244.598pt); +\node at (43.45pt,224.892pt)[below right,color=black]{lire("Hello World")}; +\draw[pstyle3] (87.2692pt,272.304pt) -- (77.2692pt,276.304pt) -- (87.2692pt,280.304pt) -- (83.2692pt,276.304pt) -- cycle; +\draw[pstyle4] (81.2692pt,276.304pt) -- (235.2932pt,276.304pt); +\node at (93.2692pt,256.598pt)[below right,color=black]{lire("Hello World")}; +\end{tikzpicture} diff --git a/docs/rapport/rapport_etat_art/images/local2.puml b/docs/rapport/rapport_etat_art/images/local2.puml new file mode 100644 index 0000000..e3baac7 --- /dev/null +++ b/docs/rapport/rapport_etat_art/images/local2.puml @@ -0,0 +1,38 @@ +@startuml local2 + +!pragma teoz true +hide footbox + +actor Alice +actor Bob +participant Application + +Alice ->(15) Application: saisir("Hello") +Application ->(15) Alice: lire("Hello") +& Application ->(30) Bob + +Bob ->(15) Application: saisir(" World") +Application ->(15) Alice: lire("Hello World") +& Application ->(30) Bob + +@enduml + +@startuml local2fail + +!pragma teoz true +hide footbox + +actor Alice +participant Application +actor Bob + +Alice ->(15) Application: saisir("Le chat") +Application ->(15) Alice: lire("Le chat") +& Application ->(15) Bob: lire("Le chat") + +Bob ->(15) Application: saisir(" mange") +& Alice ->(20) Application: saisir(" boit") +Application ->(15) Alice: lire("Le chat mange boit") +& Application ->(15) Bob: lire("Le chat mange boit") + +@enduml \ No newline at end of file diff --git a/docs/rapport/rapport_etat_art/images/local2fail.latex b/docs/rapport/rapport_etat_art/images/local2fail.latex new file mode 100644 index 0000000..40e9848 --- /dev/null +++ b/docs/rapport/rapport_etat_art/images/local2fail.latex @@ -0,0 +1,44 @@ +% generated by Plantuml 1.2022.7 +\definecolor{plantucolor0000}{RGB}{24,24,24} +\definecolor{plantucolor0001}{RGB}{0,0,0} +\definecolor{plantucolor0002}{RGB}{226,226,240} +\begin{tikzpicture}[yscale=-1 +,pstyle0/.style={color=plantucolor0000,line width=0.5pt,dash pattern=on 5.0pt off 5.0pt} +,pstyle1/.style={color=plantucolor0000,fill=plantucolor0002,line width=0.5pt} +,pstyle2/.style={color=plantucolor0000,line width=0.5pt} +,pstyle3/.style={color=plantucolor0000,fill=plantucolor0000,line width=1.0pt} +,pstyle4/.style={color=plantucolor0000,line width=1.0pt} +] +\draw[pstyle0] (26.45pt,84.0679pt) -- (26.45pt,293.892pt); +\draw[pstyle0] (230.5952pt,84.0679pt) -- (230.5952pt,293.892pt); +\draw[pstyle0] (434.7404pt,84.0679pt) -- (434.7404pt,293.892pt); +\node at (5pt,65pt)[below right,color=black]{Alice}; +\draw[pstyle1] (26.45pt,13.5pt) ellipse (8pt and 8pt); +\draw[pstyle2] (26.45pt,21.5pt) -- (26.45pt,48.5pt)(13.45pt,29.5pt) -- (39.45pt,29.5pt)(26.45pt,48.5pt) -- (13.45pt,63.5pt)(26.45pt,48.5pt) -- (39.45pt,63.5pt); +\draw[pstyle1] (179.2654pt,55pt) arc (180:270:5pt) -- (184.2654pt,50pt) -- (276.9251pt,50pt) arc (270:360:5pt) -- (281.9251pt,55pt) -- (281.9251pt,78.0679pt) arc (0:90:5pt) -- (276.9251pt,83.0679pt) -- (184.2654pt,83.0679pt) arc (90:180:5pt) -- (179.2654pt,78.0679pt) -- cycle; +\node at (186.2654pt,57pt)[below right,color=black]{Application}; +\node at (416.3712pt,65pt)[below right,color=black]{Bob}; +\draw[pstyle1] (434.7404pt,13.5pt) ellipse (8pt and 8pt); +\draw[pstyle2] (434.7404pt,21.5pt) -- (434.7404pt,48.5pt)(421.7404pt,29.5pt) -- (447.7404pt,29.5pt)(434.7404pt,48.5pt) -- (421.7404pt,63.5pt)(434.7404pt,48.5pt) -- (447.7404pt,63.5pt); +\draw[pstyle3] (218.9152pt,126.0519pt) -- (228.5952pt,130.7739pt) -- (218.329pt,134.0304pt) -- (222.6114pt,130.3343pt) -- cycle; +\draw[pstyle4] (26.45pt,115.7739pt) -- (228.5952pt,130.7739pt); +\node at (33.45pt,96.0679pt)[below right,color=black]{saisir("Le chat")}; +\draw[pstyle3] (37.13pt,172.7579pt) -- (27.45pt,177.4799pt) -- (37.7162pt,180.7364pt) -- (33.4339pt,177.0403pt) -- cycle; +\draw[pstyle4] (229.5952pt,162.4799pt) -- (26.45pt,177.4799pt); +\node at (43.45pt,142.7739pt)[below right,color=black]{lire("Le chat")}; +\draw[pstyle3] (423.0604pt,172.7579pt) -- (432.7404pt,177.4799pt) -- (422.4742pt,180.7364pt) -- (426.7566pt,177.0403pt) -- cycle; +\draw[pstyle4] (230.5952pt,162.4799pt) -- (432.7404pt,177.4799pt); +\node at (237.5952pt,142.7739pt)[below right,color=black]{lire("Le chat")}; +\draw[pstyle3] (241.2752pt,219.4639pt) -- (231.5952pt,224.186pt) -- (241.8615pt,227.4424pt) -- (237.5791pt,223.7463pt) -- cycle; +\draw[pstyle4] (433.7404pt,209.186pt) -- (230.5952pt,224.186pt); +\node at (247.5952pt,189.4799pt)[below right,color=black]{saisir(" mange")}; +\draw[pstyle3] (219.0329pt,224.23pt) -- (228.5952pt,229.186pt) -- (218.2529pt,232.1919pt) -- (222.6238pt,228.601pt) -- cycle; +\draw[pstyle4] (26.45pt,209.186pt) -- (228.5952pt,229.186pt); +\node at (33.45pt,189.4799pt)[below right,color=black]{saisir(" boit")}; +\draw[pstyle3] (37.13pt,271.1699pt) -- (27.45pt,275.892pt) -- (37.7162pt,279.1484pt) -- (33.4339pt,275.4523pt) -- cycle; +\draw[pstyle4] (229.5952pt,260.892pt) -- (26.45pt,275.892pt); +\node at (43.45pt,241.186pt)[below right,color=black]{lire("Le chat mange boit")}; +\draw[pstyle3] (423.0604pt,271.1699pt) -- (432.7404pt,275.892pt) -- (422.4742pt,279.1484pt) -- (426.7566pt,275.4523pt) -- cycle; +\draw[pstyle4] (230.5952pt,260.892pt) -- (432.7404pt,275.892pt); +\node at (237.5952pt,241.186pt)[below right,color=black]{lire("Le chat mange boit")}; +\end{tikzpicture} diff --git a/docs/rapport/rapport_etat_art/images/localiteEtat.puml b/docs/rapport/rapport_etat_art/images/localiteEtat.puml new file mode 100644 index 0000000..7c963a9 --- /dev/null +++ b/docs/rapport/rapport_etat_art/images/localiteEtat.puml @@ -0,0 +1,22 @@ +@startuml localiteEtatFail + +Bob -> Bob : inserer("Hello World") +Bob -> Bob : afficher() -> "Hello World" +Bob -> Alice : partager("Hello World") + +!pragma teoz true + +Alice -> Alice : afficher() : "Hello World" + +Alice -> Alice : souligner("Hello World") +& Bob -> Bob : supprimer("Hello World", " World") + +Alice -> Alice : afficher() : "__Hello World__" +& Bob -> Bob : afficher() : "Hello" + +Alice ->(25) Bob : \t\t partager("__Hello World__")\n +& Bob ->(25) Alice : partager("Hello") +Bob -> Bob : afficher() -> "__Hello World__" +& Alice -> Alice : afficher() -> "__Hello__" + +@enduml \ No newline at end of file diff --git a/docs/rapport/rapport_etat_art/images/localiteEtatFail.latex b/docs/rapport/rapport_etat_art/images/localiteEtatFail.latex new file mode 100644 index 0000000..3bdaf4e --- /dev/null +++ b/docs/rapport/rapport_etat_art/images/localiteEtatFail.latex @@ -0,0 +1,76 @@ +% generated by Plantuml 1.2022.7 +\definecolor{plantucolor0000}{RGB}{24,24,24} +\definecolor{plantucolor0001}{RGB}{226,226,240} +\definecolor{plantucolor0002}{RGB}{0,0,0} +\begin{tikzpicture}[yscale=-1 +,pstyle0/.style={color=plantucolor0000,line width=0.5pt,dash pattern=on 5.0pt off 5.0pt} +,pstyle1/.style={color=plantucolor0000,fill=plantucolor0001,line width=0.5pt} +,pstyle2/.style={color=plantucolor0000,line width=1.0pt} +,pstyle3/.style={color=plantucolor0000,fill=plantucolor0000,line width=1.0pt} +] +\draw[pstyle0] (27.3692pt,39.0679pt) -- (27.3692pt,431.4221pt); +\draw[pstyle0] (295.551pt,39.0679pt) -- (295.551pt,431.4221pt); +\draw[pstyle1] (5pt,10pt) arc (180:270:5pt) -- (10pt,5pt) -- (44.7385pt,5pt) arc (270:360:5pt) -- (49.7385pt,10pt) -- (49.7385pt,33.0679pt) arc (0:90:5pt) -- (44.7385pt,38.0679pt) -- (10pt,38.0679pt) arc (90:180:5pt) -- (5pt,33.0679pt) -- cycle; +\node at (12pt,12pt)[below right,color=black]{Bob}; +\draw[pstyle1] (270.101pt,10pt) arc (180:270:5pt) -- (275.101pt,5pt) -- (316.001pt,5pt) arc (270:360:5pt) -- (321.001pt,10pt) -- (321.001pt,33.0679pt) arc (0:90:5pt) -- (316.001pt,38.0679pt) -- (275.101pt,38.0679pt) arc (90:180:5pt) -- (270.101pt,33.0679pt) -- cycle; +\node at (277.101pt,12pt)[below right,color=black]{Alice}; +\draw[pstyle1] (5pt,436.4221pt) arc (180:270:5pt) -- (10pt,431.4221pt) -- (44.7385pt,431.4221pt) arc (270:360:5pt) -- (49.7385pt,436.4221pt) -- (49.7385pt,459.49pt) arc (0:90:5pt) -- (44.7385pt,464.49pt) -- (10pt,464.49pt) arc (90:180:5pt) -- (5pt,459.49pt) -- cycle; +\node at (12pt,438.4221pt)[below right,color=black]{Bob}; +\draw[pstyle1] (270.101pt,436.4221pt) arc (180:270:5pt) -- (275.101pt,431.4221pt) -- (316.001pt,431.4221pt) arc (270:360:5pt) -- (321.001pt,436.4221pt) -- (321.001pt,459.49pt) arc (0:90:5pt) -- (316.001pt,464.49pt) -- (275.101pt,464.49pt) arc (90:180:5pt) -- (270.101pt,459.49pt) -- cycle; +\node at (277.101pt,438.4221pt)[below right,color=black]{Alice}; +\draw[pstyle2] (27.3692pt,70.7739pt) -- (69.3692pt,70.7739pt); +\draw[pstyle2] (69.3692pt,70.7739pt) -- (69.3692pt,83.7739pt); +\draw[pstyle2] (28.3692pt,83.7739pt) -- (69.3692pt,83.7739pt); +\draw[pstyle3] (38.3692pt,79.7739pt) -- (28.3692pt,83.7739pt) -- (38.3692pt,87.7739pt) -- (34.3692pt,83.7739pt) -- cycle; +\node at (34.3692pt,51.0679pt)[below right,color=black]{inserer("Hello World")}; +\draw[pstyle2] (27.3692pt,115.4799pt) -- (69.3692pt,115.4799pt); +\draw[pstyle2] (69.3692pt,115.4799pt) -- (69.3692pt,128.4799pt); +\draw[pstyle2] (28.3692pt,128.4799pt) -- (69.3692pt,128.4799pt); +\draw[pstyle3] (38.3692pt,124.4799pt) -- (28.3692pt,128.4799pt) -- (38.3692pt,132.4799pt) -- (34.3692pt,128.4799pt) -- cycle; +\node at (34.3692pt,95.7739pt)[below right,color=black]{afficher() -\textgreater "Hello World"}; +\draw[pstyle3] (283.551pt,156.186pt) -- (293.551pt,160.186pt) -- (283.551pt,164.186pt) -- (287.551pt,160.186pt) -- cycle; +\draw[pstyle2] (27.3692pt,160.186pt) -- (289.551pt,160.186pt); +\node at (34.3692pt,140.4799pt)[below right,color=black]{partager("Hello World")}; +\draw[pstyle2] (295.551pt,191.892pt) -- (337.551pt,191.892pt); +\draw[pstyle2] (337.551pt,191.892pt) -- (337.551pt,204.892pt); +\draw[pstyle2] (296.551pt,204.892pt) -- (337.551pt,204.892pt); +\draw[pstyle3] (306.551pt,200.892pt) -- (296.551pt,204.892pt) -- (306.551pt,208.892pt) -- (302.551pt,204.892pt) -- cycle; +\node at (302.551pt,172.186pt)[below right,color=black]{afficher() : "Hello World"}; +\draw[pstyle2] (295.551pt,236.598pt) -- (337.551pt,236.598pt); +\draw[pstyle2] (337.551pt,236.598pt) -- (337.551pt,249.598pt); +\draw[pstyle2] (296.551pt,249.598pt) -- (337.551pt,249.598pt); +\draw[pstyle3] (306.551pt,245.598pt) -- (296.551pt,249.598pt) -- (306.551pt,253.598pt) -- (302.551pt,249.598pt) -- cycle; +\node at (302.551pt,216.892pt)[below right,color=black]{souligner("Hello World")}; +\draw[pstyle2] (27.3692pt,236.598pt) -- (69.3692pt,236.598pt); +\draw[pstyle2] (69.3692pt,236.598pt) -- (69.3692pt,249.598pt); +\draw[pstyle2] (28.3692pt,249.598pt) -- (69.3692pt,249.598pt); +\draw[pstyle3] (38.3692pt,245.598pt) -- (28.3692pt,249.598pt) -- (38.3692pt,253.598pt) -- (34.3692pt,249.598pt) -- cycle; +\node at (34.3692pt,216.892pt)[below right,color=black]{supprimer("Hello World", " World")}; +\draw[pstyle2] (295.551pt,281.304pt) -- (337.551pt,281.304pt); +\draw[pstyle2] (337.551pt,281.304pt) -- (337.551pt,294.304pt); +\draw[pstyle2] (296.551pt,294.304pt) -- (337.551pt,294.304pt); +\draw[pstyle3] (306.551pt,290.304pt) -- (296.551pt,294.304pt) -- (306.551pt,298.304pt) -- (302.551pt,294.304pt) -- cycle; +\node at (302.551pt,261.598pt)[below right,color=black]{afficher() : "\underline{Hello World}"}; +\draw[pstyle2] (27.3692pt,281.304pt) -- (69.3692pt,281.304pt); +\draw[pstyle2] (69.3692pt,281.304pt) -- (69.3692pt,294.304pt); +\draw[pstyle2] (28.3692pt,294.304pt) -- (69.3692pt,294.304pt); +\draw[pstyle3] (38.3692pt,290.304pt) -- (28.3692pt,294.304pt) -- (38.3692pt,298.304pt) -- (34.3692pt,294.304pt) -- cycle; +\node at (34.3692pt,261.598pt)[below right,color=black]{afficher() : "Hello"}; +\draw[pstyle3] (37.9548pt,363.8051pt) -- (28.3692pt,368.716pt) -- (38.6973pt,371.7706pt) -- (34.3433pt,368.1591pt) -- cycle; +\draw[pstyle2] (294.551pt,343.716pt) -- (27.3692pt,368.716pt); +\node at (44.3692pt,306.304pt)[below right,color=black]{\qquad\qquad\qquad\qquad\qquad\qquad\qquad partager("\underline{Hello World}")}; +\node at (44.3692pt,324.01pt)[below right,color=black]{ }; +\draw[pstyle3] (283.9655pt,363.8051pt) -- (293.551pt,368.716pt) -- (283.2229pt,371.7706pt) -- (287.577pt,368.1591pt) -- cycle; +\draw[pstyle2] (27.3692pt,343.716pt) -- (293.551pt,368.716pt); +\node at (34.3692pt,324.01pt)[below right,color=black]{partager("Hello")}; +\draw[pstyle2] (27.3692pt,400.4221pt) -- (69.3692pt,400.4221pt); +\draw[pstyle2] (69.3692pt,400.4221pt) -- (69.3692pt,413.4221pt); +\draw[pstyle2] (28.3692pt,413.4221pt) -- (69.3692pt,413.4221pt); +\draw[pstyle3] (38.3692pt,409.4221pt) -- (28.3692pt,413.4221pt) -- (38.3692pt,417.4221pt) -- (34.3692pt,413.4221pt) -- cycle; +\node at (34.3692pt,380.716pt)[below right,color=black]{afficher() : "\underline{Hello World}"}; +\draw[pstyle2] (295.551pt,400.4221pt) -- (337.551pt,400.4221pt); +\draw[pstyle2] (337.551pt,400.4221pt) -- (337.551pt,413.4221pt); +\draw[pstyle2] (296.551pt,413.4221pt) -- (337.551pt,413.4221pt); +\draw[pstyle3] (306.551pt,409.4221pt) -- (296.551pt,413.4221pt) -- (306.551pt,417.4221pt) -- (302.551pt,413.4221pt) -- cycle; +\node at (302.551pt,380.716pt)[below right,color=black]{afficher() : "\underline{Hello}"}; +\end{tikzpicture} diff --git a/docs/rapport/rapport_etat_art/images/seriaized.puml b/docs/rapport/rapport_etat_art/images/seriaized.puml new file mode 100644 index 0000000..388dc9e --- /dev/null +++ b/docs/rapport/rapport_etat_art/images/seriaized.puml @@ -0,0 +1,25 @@ +@startuml serialized + +!pragma teoz true +hide footbox + +participant Alice +participant Server +participant Bob + + +Alice ->(10) Server : lock() +Server -->(10) Alice : true + +Bob -> Server : lock() +& Alice ->(10) Server : inserer("hello world") +Server -->(10) Bob : false +& Alice ->(10) Server : lire() +Server -->(10) Alice : "hello world" +Alice -> Server : unlock() +Bob -> Server : lock() +Bob -> Server : lire() +Server -->(10) Bob : "hello world" +Bob -> Server : unlock() + +@enduml \ No newline at end of file diff --git a/docs/rapport/rapport_etat_art/images/serialized.latex b/docs/rapport/rapport_etat_art/images/serialized.latex new file mode 100644 index 0000000..21b7d98 --- /dev/null +++ b/docs/rapport/rapport_etat_art/images/serialized.latex @@ -0,0 +1,57 @@ +% generated by Plantuml 1.2022.7 +\definecolor{plantucolor0000}{RGB}{24,24,24} +\definecolor{plantucolor0001}{RGB}{226,226,240} +\definecolor{plantucolor0002}{RGB}{0,0,0} +\begin{tikzpicture}[yscale=-1 +,pstyle0/.style={color=plantucolor0000,line width=0.5pt,dash pattern=on 5.0pt off 5.0pt} +,pstyle1/.style={color=plantucolor0000,fill=plantucolor0001,line width=0.5pt} +,pstyle2/.style={color=plantucolor0000,fill=plantucolor0000,line width=1.0pt} +,pstyle3/.style={color=plantucolor0000,line width=1.0pt} +,pstyle4/.style={color=plantucolor0000,line width=1.0pt,dash pattern=on 2.0pt off 2.0pt} +] +\draw[pstyle0] (30.45pt,39.0679pt) -- (30.45pt,434.1281pt); +\draw[pstyle0] (210.5241pt,39.0679pt) -- (210.5241pt,434.1281pt); +\draw[pstyle0] (328.7611pt,39.0679pt) -- (328.7611pt,434.1281pt); +\draw[pstyle1] (5pt,10pt) arc (180:270:5pt) -- (10pt,5pt) -- (50.9pt,5pt) arc (270:360:5pt) -- (55.9pt,10pt) -- (55.9pt,33.0679pt) arc (0:90:5pt) -- (50.9pt,38.0679pt) -- (10pt,38.0679pt) arc (90:180:5pt) -- (5pt,33.0679pt) -- cycle; +\node at (12pt,12pt)[below right,color=black]{Alice}; +\draw[pstyle1] (177.9423pt,10pt) arc (180:270:5pt) -- (182.9423pt,5pt) -- (238.1059pt,5pt) arc (270:360:5pt) -- (243.1059pt,10pt) -- (243.1059pt,33.0679pt) arc (0:90:5pt) -- (238.1059pt,38.0679pt) -- (182.9423pt,38.0679pt) arc (90:180:5pt) -- (177.9423pt,33.0679pt) -- cycle; +\node at (184.9423pt,12pt)[below right,color=black]{Server}; +\draw[pstyle1] (306.3919pt,10pt) arc (180:270:5pt) -- (311.3919pt,5pt) -- (346.1303pt,5pt) arc (270:360:5pt) -- (351.1303pt,10pt) -- (351.1303pt,33.0679pt) arc (0:90:5pt) -- (346.1303pt,38.0679pt) -- (311.3919pt,38.0679pt) arc (90:180:5pt) -- (306.3919pt,33.0679pt) -- cycle; +\node at (313.3919pt,12pt)[below right,color=black]{Bob}; +\draw[pstyle2] (198.7612pt,76.2256pt) -- (208.5241pt,80.7739pt) -- (198.3177pt,84.2133pt) -- (202.5333pt,80.4412pt) -- cycle; +\draw[pstyle3] (30.45pt,70.7739pt) -- (208.5241pt,80.7739pt); +\node at (37.45pt,51.0679pt)[below right,color=black]{lock()}; +\draw[pstyle2] (41.2128pt,117.9316pt) -- (31.45pt,122.4799pt) -- (41.6564pt,125.9193pt) -- (37.4408pt,122.1473pt) -- cycle; +\draw[pstyle4] (209.5241pt,112.4799pt) -- (30.45pt,122.4799pt); +\node at (47.45pt,92.7739pt)[below right,color=black]{true}; +\draw[pstyle2] (221.5241pt,150.186pt) -- (211.5241pt,154.186pt) -- (221.5241pt,158.186pt) -- (217.5241pt,154.186pt) -- cycle; +\draw[pstyle3] (215.5241pt,154.186pt) -- (327.7611pt,154.186pt); +\node at (227.5241pt,134.4799pt)[below right,color=black]{lock()}; +\draw[pstyle2] (198.7612pt,159.6376pt) -- (208.5241pt,164.186pt) -- (198.3177pt,167.6253pt) -- (202.5333pt,163.8533pt) -- cycle; +\draw[pstyle3] (30.45pt,154.186pt) -- (208.5241pt,164.186pt); +\node at (37.45pt,134.4799pt)[below right,color=black]{inserer("hello world")}; +\draw[pstyle2] (317.1338pt,201.0635pt) -- (326.7611pt,205.892pt) -- (316.4596pt,209.035pt) -- (320.7825pt,205.3863pt) -- cycle; +\draw[pstyle4] (210.5241pt,195.892pt) -- (326.7611pt,205.892pt); +\node at (217.5241pt,176.186pt)[below right,color=black]{false}; +\draw[pstyle2] (198.7612pt,201.3437pt) -- (208.5241pt,205.892pt) -- (198.3177pt,209.3314pt) -- (202.5333pt,205.5593pt) -- cycle; +\draw[pstyle3] (30.45pt,195.892pt) -- (208.5241pt,205.892pt); +\node at (37.45pt,176.186pt)[below right,color=black]{lire()}; +\draw[pstyle2] (41.2128pt,243.0497pt) -- (31.45pt,247.598pt) -- (41.6564pt,251.0374pt) -- (37.4408pt,247.2653pt) -- cycle; +\draw[pstyle4] (209.5241pt,237.598pt) -- (30.45pt,247.598pt); +\node at (47.45pt,217.892pt)[below right,color=black]{"hello world"}; +\draw[pstyle2] (198.5241pt,275.304pt) -- (208.5241pt,279.304pt) -- (198.5241pt,283.304pt) -- (202.5241pt,279.304pt) -- cycle; +\draw[pstyle3] (30.45pt,279.304pt) -- (204.5241pt,279.304pt); +\node at (37.45pt,259.598pt)[below right,color=black]{unlock()}; +\draw[pstyle2] (221.5241pt,307.01pt) -- (211.5241pt,311.01pt) -- (221.5241pt,315.01pt) -- (217.5241pt,311.01pt) -- cycle; +\draw[pstyle3] (215.5241pt,311.01pt) -- (327.7611pt,311.01pt); +\node at (227.5241pt,291.304pt)[below right,color=black]{lock()}; +\draw[pstyle2] (221.5241pt,338.716pt) -- (211.5241pt,342.716pt) -- (221.5241pt,346.716pt) -- (217.5241pt,342.716pt) -- cycle; +\draw[pstyle3] (215.5241pt,342.716pt) -- (327.7611pt,342.716pt); +\node at (227.5241pt,323.01pt)[below right,color=black]{lire()}; +\draw[pstyle2] (317.1338pt,379.5935pt) -- (326.7611pt,384.4221pt) -- (316.4596pt,387.5651pt) -- (320.7825pt,383.9164pt) -- cycle; +\draw[pstyle4] (210.5241pt,374.4221pt) -- (326.7611pt,384.4221pt); +\node at (217.5241pt,354.716pt)[below right,color=black]{"hello world"}; +\draw[pstyle2] (221.5241pt,412.1281pt) -- (211.5241pt,416.1281pt) -- (221.5241pt,420.1281pt) -- (217.5241pt,416.1281pt) -- cycle; +\draw[pstyle3] (215.5241pt,416.1281pt) -- (327.7611pt,416.1281pt); +\node at (227.5241pt,396.4221pt)[below right,color=black]{unlock()}; +\end{tikzpicture} diff --git a/docs/rapport/rapport_etat_art/main.tex b/docs/rapport/rapport_etat_art/main.tex index 0be1ec6..f133481 100755 --- a/docs/rapport/rapport_etat_art/main.tex +++ b/docs/rapport/rapport_etat_art/main.tex @@ -10,6 +10,13 @@ \usepackage{biblatex} \addbibresource{../../recherches/Stage.bib} +\usepackage{tikz} +\usepackage{aeguill} + +\usepackage{amsmath} + +\usepackage{multicol} + \begin{document} \title{Critères de Cohérence faible byzantine appliquée aux environements cloud} @@ -34,6 +41,9 @@ \section{Introduction} \input{intro/index.tex} +\section{Cohérence Forte} +\input{coherence_forte/index.tex} + \section{Les critères de cohérence} \input{consistency_criteria/index.tex} diff --git a/docs/rapport/rapport_etat_artv2/CRDT/index.tex b/docs/rapport/rapport_etat_artv2/CRDT/index.tex new file mode 100644 index 0000000..7a16a72 --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/CRDT/index.tex @@ -0,0 +1,34 @@ +Les CRDT sont des types de données qui supporte de manière intrinsèque les critères de convergence (Strong Eventual Consistency) et de cohérence pipeline (qui est un compromis entre la validité et la Localité d'état). + +Pour y parvenir, un type de donnée dit CRDT doit proposer une bibliothèque d'opérations qui sont commutatives l'une à l'autre. Ainsi pour deux suites d'opérations $S$ et $S'$, soit $L$ l'ensemble contenant tous les termes de $S$ et $L'$ l'ensemble contenant tous les termes de $S'$. Si $L$ et $L'$ sont indiscernables, alors les résultats de $S$ et $S'$ l'est aussi. [REF CRDT] + +Ces types de données présentent un très grand intérêt pour le problème de l'édition collaborative. En effet, ils permettent de mettre en place des approches qui sont dites local-first. C'est à dire que les modifications sont dans un premier temps appliquées localement au client, pour ensuite être éventuellement fusionnées, sans avoir à gérer d'hypothétiques conflits (puisque le type de donnée ne le permet pas). + +Cette approche est déjà utilisée par certains projets déjà en production, notamment à travers le protocole YATA [REF YATA] qui trouve son implémentation dans l'application Yjs. Yjs est une application de prise de note, d'organisation et de productivité utilisant des CRDT, ce qui lui permet d'être résilient aux pannes réseaux et de permettre une synchronisation entre plusieurs terminaux pour un seul client sans utiliser d'entité centrale. Cette solution apporte toutefois une limite, qui est le manque de clarté dans l'expérience utilisateur sur ce qui est synchronisé et ce qui ne l'est pas. Ce comportement est toute fois intrinsèque au design de l'application est relève d'un compromis technique. + +L'usage des CRDT dans Yjs est toutefois assez limité, puisque proposant une application "un seul utilisateur". Et pour cause, l'ajout de plusieurs utilisateurs introduit une nouvelle problématique qui est celle des droits d'accès et d'édition. +Dans l'approche d'Yjs, rien de ce que peut soumettre l'utilisateur ne peut provoquer d'état illégal. Puisque par définition TOUT est accepté. De plus, aucun comportement arbitraire et malveillant n'a à être envisagé puisqu'une nouvelle fois, il n'y a pas de notion de malveillance. + +Mais si Yjs fait ce choix, c'est parce que les CRDT passe très mal l'épreuve du problème des généraux byzantins. Le problème des généraux byzantin est un problème connu en algorithmie distribuée. Il vise à introduire dans notre système des noeuds aux comportements arbitraires. C'est à dire des noeuds qui dévieraient du protocole attendu afin de réaliser des actions aléatoires, imprévisibles et irrationnelles (dans le cas d'un bug dans l'implémentation par exemple), ou bien des actions malveillantes et donc rationnels (dans le cas d'une attaque du protocole par un membre malveillant du réseau). + +% En effet les CRDT ne proposent aucun mécanisme permettant de mitiger les actions d'un attaquant. Reprenons l'exemple d'Yjs, qui ne définit pas de notion d'état illégal. Ceci est du au fait que pour satisfaire les propriétés des CRDT, le choix de YATA est d'utiliser un "grow only set". C'est à dire une structure de donnée qui ne peut que s'agrandir. La seule opération possible est donc l'insertion d'un élement, facilitant ainsi la commutativité des opérations, Et la suppression y est traitée comme une opération spécifique d'insertion du point de vue de la structure de donnée, la donnée ne disparait donc pas, mais se voit attribuer un "marqueur" qui la rend invisible. + +% Ainsi la notion de légalité dans un grow only set n'existe pas puisque toutes les suites d'opérations sont valides. Or si Bob tente d'insérer dans une zone de texte où seule Alice a le droit en écriture, il est attendu que l'opération soit rejetée. Ce qui n'a pas de sens dans un grow only set, et empêcherait la convergence des états à la fin de l'exécution. + +% Pour palier à ce problème, l'approche du PCDO + +Notamment un problème connu qui est celui de l'équivocation. L'équivocation est le fait pour un noeud malveillant devant normalement envoyer une information à l'ensemble des noeuds d'un réseau distribué, d'envoyer une opération $A$ à une partie du réseau et une opération $B$ à l'autre partie. Créant ainsi une divergence dans les suites d'opérations que maintiennent chaque partie concernée du réseau. +Plusieurs papiers tendent à montrer qu'une certaine classe de CRDT peut être améliorée afin de mitiger ce problème. Une approche intéressante consiste en la mise en place d'un DAG (un graph dirigé acyclique) stockant tous les états atteints par le réseau ainsi que leurs parents. Et d'accrocher une trace de ce DAG à l'opération qui est envoyé aux autres noeuds. Ainsi l'ensemble des noeuds légitimes seraient en capacité de détecter si leur propre DAG manque d'information, et seraient donc à même de redemander l'information manquante. [REF MEG22] Cette solution proposerait ainsi un mécanisme de resynchronisation entre noeuds légitimes. + +Un autre aspect limitant des CRDT est qu'ils ne conviennent pas à tous les types d'applications. En effet, de par leur aspect commutatif, ils ne peuvent opérer que sur des données qui ne présentent pas de notion d'états illégaux. Prenons le cas d'un compteur sur lequel nous pouvons appliquer des opérations d'additions ou de soustractions (et qui sont donc commutatives les unes avec les autres). Peu importe si nous appliquons toutes les soustractions puis toutes les additions, ou bien l'inverse, ou encore un mélange aléatoire de celles-ci. Le compteur qui se verra évoluer au fil du temps n'entrera jamais dans un état "interdit". + +Or, dans beaucoup d'application nous avons besoin de restreindre la donnée à un ensemble d'état dits valides. Et d'interdire un ensemble d'état dits invalides. Ce serait le cas dans le traitement d'un solde d'une carte de débit. L'utilisateur peut soumettre un ensemble d'opérations qui vont venir débiter ou créditer la carte. Mais même si l'utilisateur ne cherche pas à dépenser de l'argent qu'il ne possède pas, nous ne pouvons pas appliquer les opérations dans tous les ordres possibles. Par exemple si toutes les opérations de débit sont soumises les unes après les autres, le solde se trouvera en négatif ce qui n'est pas permis, même pour un état qu'on pourrait qualifier de "temporaire". + +C'est pour palier à ce problème que Reynal [REF Raynal 23] propose un nouveau type de donnée qui hérite des CRDT et qu'il nomme PCDO (Process-Commutative Distributed Objects). cette solution améliore les CRDT pour proposer un type de donnée empêchant l'atteinte d'état illégaux. Pour ce faire il divise les opérations possibles en deux groupe. Les opérations qui sont réalisables par tous les membres du réseau, et les opérations qui sont spécifiques à un acteur. Il définit alors deux règles. Les opérations communes ne doivent jamais permettre d'atteindre un état illégal. Et seule l'application de plusieurs opérations spécifique à un seul processus permet d'atteindre un état illégal. + +Cette solution contraint en réalité l'usage des CRDT, puisqu'elle semble reposer sur la mise en place de plusieurs registres SWMR (Single Writer Multiple Reader) comme théorisé par Lamport en 198X [REF LAMPORT SWMR]. Cette approche ne posant en effet aucun problême de cohérence sur le registre en tant que tel, puisque l'ordre est défini par le seul noeud capable d'édition. La somme de ses registres propose par contre une cohérence partielle, puisque les opérations se retrouvent ordonnées via un ordre lui-même partiel. + +Le contre coüt est donc dans la généralisation de ce type de donnée, puisqu'il demande à ce que l'application découpe la donnée partagée en plusieurs registres SWMR ce qui n'est pas applicable dans tous les contextes. + +Pour ces raisons, l'application des CRDTs pour l'édition collaborative n'est pas évidente. Puisque dans un contexte multi-utilisateur avec des politiques de contrôle d'accès au document (et dans le corps du document), les CRDT se retrouvent peu résistantes aux problématiques d'édition malveillante. De plus, l'application des CRDT à l'édition collaborative ne résout pas tous les problèmes de résolutions de conflits, et certains cas de figure peuvent encore causer des incohérences et à terme des divergences importantes dans le document final. + diff --git a/docs/rapport/rapport_etat_artv2/coherence_forte/index.tex b/docs/rapport/rapport_etat_artv2/coherence_forte/index.tex new file mode 100644 index 0000000..83dddd9 --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/coherence_forte/index.tex @@ -0,0 +1,125 @@ +La cohérence forte présente, dans un premier temps, l’approche la plus intuitive pour une application collaborative dans le cloud. +Cherchons dans un premier temps à répliquer un processus d’édition local d’un document. Formalisons alors ce qu’on attend d’une application d’édition de document seulement local. + +Nous avons un acteur qui va réaliser deux types d’actions différentes, la lecture ou l’écriture d’un document. Ces opérations sont des opérations atomiques du point de vue de l’utilisateur et il ne peut les exécuter que l’une après l’autre. Dans notre manière d’appréhender ce modèle nous partons du principe que l’écriture n’implique pas nécessairement une lecture, forçant ainsi l’acteur à soumettre une opération de lecture pour pouvoir vérifier que son opération d’écriture a bien été prise en compte. Ce point est important puisque la cohérence du point de vue de l’utilisateur sera conditionné par ces opérations de lecture. + +L’application de ce modèle sur un seul acteur résultera donc en une suite finit d’opérations d’écritures et de lectures, pour terminer par une suite de lecture infinies (qui est le moment où l’utilisateur arrête d’éditer le document). + +\begin{math} + w('he') \cdot r/\{'he'\} \cdot w('llo') \cdot r/\{'hello'\}^\omega +\end{math} + +\begin{figure}[! h] + \centering + \resizebox{0.5\columnwidth}{!}{ + \input{images/local1_tzk.tex} + } + \caption{Modification local d'un document} + \label{local_1} +\end{figure} + +On voit sur la figure \ref{local_1} que le noeud émet deux requêtes atomiques de modification $w('h')$ et $w('e')$ (regroupées sous la forme d'une seule pour soucis de lisibilité). Il réalise ensuite une requête de lecture $r/\{'h','e'\}$ qui lui permet de vérifier que ses modifications ont bien été prises en compte. Puis il écrit $w('llo')$ et récupère un retour en lisant $r/\{'h','e','l','l','o'\}$ qui lui permet de vérifier que ses modifications ont bien été prises en compte. Il réalise ensuite une suite infinie de lecture $r/\{'h','e','l','l','o'\}^\omega$ correspondant à la consultation du document sur un temps infini. + +Cette modélisation nous permet de mettre en avant les points critiques dans la mise en place d'une expérience cohérente pour l'utilisateur. Dans un premier temps nous pouvons nous concentrer sur le lien entre les écritures et les lectures : + +Lorsque l'utilisateur soumet les écritures $w('h')$ et $w('e')$ il lui attribue une notion d'ordre. L'écriture de $w('h')$ est donc antérieur à celle de $w('e')$, il serait donc incohérent que au moment de la lecture qui suit, l'utilisateur constate un ordre différent. Cela représente une première propriété de la cohérence séquentielle, la préservation de l'ordre entre les écritures. + +Une seconde propriété est la préservation de la validité des écritures. C'est-à-dire que si l'utilisateur soumet une écriture $w('h')$ et une écriture $w('e')$ il s'attend à ce que la lecture qui suit retourne un état qui contient uniquement $'h'$ et $'e'$. Il serait en effet incohérent de recevoir tout autre état. + +La troisième propriété est la préservation de la cohérence entre les lectures, c'est-à-dire que si l'utilisateur lit à un instant $t$ un état $\alpha$, alors toutes lectures réalisées à un instant $t' > t$ doivent retourner un état $\beta$ tel que $\alpha \subseteq \beta$. + +Ces trois propriétés sont celles définit par Lamport [REF LAMPORT89] et permettent de définir ce qu'il nomme "registre atomique". + +\fbox{ + \begin{minipage}{0.94\linewidth} + \paragraph{Un registre} + est une structure mathématique qui sert d'abstraction pour parler d'un système qui permet de réaliser des opérations d'écritures et de lectures. L'approche du registre permet de se concentrer sur le point de vue d'un client sans considérer les aspects topologiques du système. Il est donc tout trouvé pour spécifier les problématiques liées à la cohérence dans les systèmes distribués. + \end{minipage} +} + + +Le registre atomique de lamport permet de définir le comportement attendu dans un système SWMR (Single Writer Multiple Reader). C'est-à-dire un système où un seul acteur peut écrire et plusieurs peuvent lire. Ce modèle est pertinent dans notre cas d'édition à un seul acteur puisque nous avons un acteur qui écrit et un acteur qui lit (en l'occurrence toujours le même). + +\emph{TODO : Résumer papier Lamport89} + +Dans un cas d’usage courant, une application d’édition local ne présente pas de problèmes liés à la présence de plusieurs éditeurs en simultanés. Il y a en effet une seule interface homme-machine, c’est-à-dire de façon pragmatique un unique écran et clavier. + +Imaginons ainsi un cas où Alice et Bob souhaitent éditer ensemble un même document. Si on voulait simplement appliquer le fonctionnement local que nous venons de décrire à cette nouvelle problématique. Il conviendrait de simplement rajouter une IHM à Alice. Ainsi il y a toujours une seule application d’édition collaborative sur lequel viennent se connecter cette fois-ci deux interfaces (comme visible dans la figure \ref{local_2}). + +\begin{figure}[! h] +\begin{multicols}{2} + + \centering + \resizebox{!}{.7\columnwidth}{ + \input{images/local2.latex} + } + \caption{Alice et Bob éditent un document localement} + \label{local_2} + + \columnbreak + + \centering + \resizebox{!}{.8\columnwidth}{ + \input{images/local2fail.latex} + } + \caption{Alice et Bob éditent un document localement de manière concurrente} + \label{local_2_fail} + \end{multicols} +\end{figure} + + +Nous avons à présents deux acteurs qui éditent et lisent le document, et un autre qui s’occupe de stocker et de synchroniser le document entre ces deux acteurs. + +La limite liée à cette approche réside dans le fait que les communications entre Alice et l’application et Bob et l’application ne peuvent pas être garantis comme équitables. En effet, Alice et Bob peuvent très bien se retrouver déconnectés de manière non prévisible et asynchrone. Ou bien avoir des temps de transmissions de leurs informations qui diffèrent. Le caractère non-deterministe de ces erreurs peut résulter en des incohérences dans l’ordre d’arrivée des informations soumises par Alice et Bob. Ce qui peut a terme créer des incohérences dans le document final. + +C’est néanmoins une problématique qui peut être assimilée à de la gestion de la concurrence entre processus. C’est en effet un domaine qui est étudié depuis l’apparition des premiers processeurs multi-cœur. Une approche que nous pouvons donc prendre à la programmation concurrente serait de résoudre ce problème en venant utiliser des techniques de synchronisation de processus. C’est-à-dire en utilisant des mécanismes de synchronisation tel que des verrous dans notre application. On peut par exemple utiliser des sémaphores pour gérer les accès concurrents à la mémoire partagée. Ce qui résulterait en l’exécution suivante : + +\begin{figure}[! h] + \centering + \resizebox{!}{.7\columnwidth}{ + \input{images/serialized.latex} + } + \caption{Alice et Bob éditent un document localement avec des vérrous} + \label{serialized} +\end{figure} + +On voit sur la figure \ref{serialized} que les actions d’Alice et Bob sont sérialisés. C’est-à-dire que les actions d’Alice et Bob sont exécutés l’une après l’autre. Ce qui permet d’éviter les problèmes de concurrence entre les deux acteurs. Cependant, cette approche est très limitée. En effet, elle ne permet pas de profiter des avantages de l’édition collaborative. En effet, cela signifie que l’un des deux acteurs doit attendre que l’autre ait fini d’éditer le document pour pouvoir à son tour l’éditer. Ce qui rabaisse les performances de l’application à la latence de l’acteur le plus lent. + +En revenons dans notre contexte initial qui est une application d’édition collaborative nous souhaitons pouvoir gérer un grand nombre d’utilisateur en simultanés. Ainsi la probabilité d’avoir une expérience dégradée pour l’ensemble des utilisateurs croit avec le nombre d’utilisateur. Pour pallier à ce problème l’approche qui peut être adopté est d’exclure les utilisateurs possédant des connexions trop limités avec le serveur. + +C’est néanmoins la seule approche qui nous permet d’obtenir une cohérence absolue autant dans la prise en compte des opérations d’écritures des acteurs que dans le traitement de leurs lectures. + +Selon Perrin on se placerait dans une approche qui relèverait de la cohérence séquentielle. + +\subsection{Cohérence séquentielle} + +% blbla sur la cohérence séquentielle de manière très théorique et fondamentale + + + +\paragraph{Validité} + +Dans une application d’édition collaborative on s’attend à ce que toutes les entrées des utilisateurs soient prises en compte. Il nous parait en effet inacceptable que des saisies disparaisses de manière aléatoire durant l’exécution. + +Ce principe nous permet d’introduire une première propriété utilisée par Perrin pour définir et classer les différents critères de cohérence qu’est la validité. + +La validité peut ainsi être résumé comme la propriété qui permet d’assurer que toutes les saisies réalisées, et seulement elles, soient prises en compte dans l’exécution du système. + +Ceci se traduit par l’affichage d’un retour quant à la saisie de bob sur son application. Lui signifiant que son interaction avec l’application à bien était prise en compte, et n’est donc pas passée à la trappe. Elle n’implique néanmoins aucune notion d’ordre dans les saisies, ce qui signifie que les saisies peuvent être réagencées durant l’exécution. + +\paragraph{Convergence} + +Une autre attente d’une application d’édition collaborative est en quelque sorte sont determinisme sur une durée infinie. On s’attend en effet, une fois toutes les éditions terminés, que le document soit identique pour tous les acteurs. C’est-à-dire que peut importe l’ordre dans lequel les saisies ont été réalisées, le document final doit être identique pour tous les nœuds. + +C’est ce que Perrin appelle la convergence qu’il définit plus formellement comment étant la propriété qui assure que si un nombre finit d’ecriture et infini de lecture sont réaliséés, alors tous les nœuds finissent par avoir la même valeur. + +\paragraph{Localité D’état} + +La dernière propriétée du model de Perrin est la localité d’état. + +Elle consiste en le fait que chaque acteur doivent garder une vision local cohérente du système. Par exemple, comme illustrée dans la Figure \ref{local_state}, au fur et à mesure des éditions de Bob, sa vue local va évoluer en conséquence, mais si il recoit à un moment donné une édition d’Alice qui est antérieur à une de ses éditions, alors il doit privilégier sa propre édition. C’est-à-dire que sa vue local doit être cohérente avec son historique d’édition quitte à diverger de la vue local d’Alice. + +\begin{figure}[! h] + \caption{Localité d’état} + \label{local_state} +\end{figure} \ No newline at end of file diff --git a/docs/rapport/rapport_etat_artv2/consistency_criteria/index.tex b/docs/rapport/rapport_etat_artv2/consistency_criteria/index.tex new file mode 100755 index 0000000..19b850a --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/consistency_criteria/index.tex @@ -0,0 +1,70 @@ +Nous venons de définir la cohérence séquentielle et de proposer une approche pour la réaliser. Néanmoins nous avons vu que cette approche est limitée puisqu’elle pousse le système à être nivelé par le bas en s’adaptant à l’acteur le plus lent. +Nous allons donc explorer d’autres approches réalisant plus de compromis dans la gestion de la cohérence du système. + +Ainsi là où la cohérence séquentielle (et par extension la cohérence forte) permettait de garantir nos 3 propriété que sont la validité, la convergence et la localité d’état. Nous allons explorer des solutions qui certaines de ces propriétés afin de gagner en performance et en résilience. + +\subsection{Adaptation à notre problème} + +Dans le cadre de notre problématique il convient dans un premier temps de spécifier quels sont les critères qui semblent être essentiels à la réalisation d’une application d’édition collaborative. Pour ça nous pouvons déjà imaginer ce qu’impliquent concrètement ces différents critères sur le comportement de notre application. + +\subsubsection{Validité} + +Comme dit précédemment, la validité permet d’assurer que les saisies de Bob soient toujours prises en compte en tout point du système. C’est-à-dire que si Bob saisit “Hello” puis “World” alors il s’attend à ce que ces deux saisies soient prises en compte. Ce qui se traduit par l’affichage de « Hello World » ou « World Hello sur son écran. Les états finaux incorrects qui ne respecterait pas la validité sont alors “Hello”, “World” ou "$\emptyset$". + +De la même manière, les saisies des aitres acteurs du système peuvent donc très bien être ignorés, intercalés entre les saisis de Bob, et réagencés durant l’exécution. + +Ne pas prendre en compte le critère de validité dans notre application reviendrait donc à être capable d’ignorer des saisies soumises par l’utilisateur. C’est ce qui est formalisé par le critère de cohérence dit de Sérialisation (selon Perrin). + +L’application de la validité demande à notre système une approche d’acknowledgement. Puisque toutes saisies ce doit d’être considéré, le client doit s’assurer que sa saisie a bien été reçue par l’ensemble des nœuds. Dans le cas d’une application centralisé, seul un intermédiaire doit être contacté. Mais dans un contexte plus distribué, le problème augmente en complexité et en coût pour le réseau. + +\paragraph{La Sérialisation} + +La sérialisation se propose donc comme étant l’exact inverse de la validité, c’est-à-dire un critère de cohérence fort auquel nous aurions retiré la validité. ($SER = \{C_\top\} - \{V\}$) + +\subsubsection{Convergence} + +La convergence permet d’assurer que le document final soit identique pour tous les acteurs. C’est-à-dire que, peu importe l’ordre dans lequel les saisies ont été reçus par chaque nœud, le document final doit être identique pour tous. + +Il est important de noter que la convergence seule ne dit rien sur la source des données qui composent le document. Ainsi il est possible que le document final ne prenne pas en compte toutes les saisies réalisées sur le système. Ou bien même qu’il prenne en compte des saisies qui n’ont jamais été réalisées. + +Appliqué à notre problème, la convergence assure que le document final soit identique pour tous les acteurs, ce qui peut sembler essentiel dans notre cas. + +L’application de la convergence introduit dans notre système une notion de gestion des conflits. Si plusieurs acteurs souhaitent écrire au même moments, alors des mécanismes doivent être mis en place pour une gestion des conflits déterministe. C’est-à-dire, permettant de garantir une seule version pour tous les acteurs quelle que soit sa position dans le système, et donc l’ordre potentiel de réception des saisies. + +[Un exemple de gestion de conflits pas si évidente que ça] + +Cette gestion des conflits peut être réalisée de manière distribuée impliquant la mise en place d’un algorithme de consensus. Ce qui peut être très couteux en termes de performance et de complexité. Ou bien être délégué à un acteur centralisé qui aura le pouvoir de manipuler l’ordre final des saisies. Ce qui peut poser des problèmes en termes de gouvernance du système, donnant le pouvoir à un seul acteur. + +Il est bon de noter que bien que la convergence est une propriété qui semble importante dans le cadre d’une application d’édition collaborative classique. Il existe des manières de concevoir une application collaborative fournissant un document final identique, mais ne garantissant pas nécessairement la convergence dans l’ordre où les saisies sont interprétées. Ce point sera discuté lorsque nous aborderons les CRDTs. + +\subsubsection{Localité d’état} + +La localité d’état permet d’assurer que les mises à jour d’affichages futurs soient toujours cohérentes avec les mises à jour d’affichages passés. Indirectement, cela interdit le changement de l’ordre dans lequel les transactions passées sont interprétés une fois que le résultat est affiché à l’utilisateur. Mais empêche aussi l’insertion et la suppression de transactions dans ce même passé. + +L’objectif à haut niveau est de garder une expérience cohérente pour l’utilisateur, en interdisant à l’application de tolérer des retours en arrières de l’état courant. + +Appliqué à notre problème, la localité d’état permet d’assurer que les saisies de Bob et celles qu’il a reçu soient toujours affichés dans l’ordre où elles ont été interprétées initialement. Cette propriété permet par exemple d’empêcher le cas où Alice traiterait la saisie de bob, bob de son côté supprime la saisie qu’il vient de réaliser, et Alice renvoi à Bob la saisie qu’elle vient de modifier. Ce cas est explicité dans la figure \ref{local_state_fail}. + + + +\begin{figure}[! h] + \centering + \resizebox{!}{0.7\columnwidth}{ + \input{images/localiteEtatFail.latex} + } + \caption{Localité d’état non respectée} + \label{local_state_fail} +\end{figure} + +Du point de vue de Bob, il vient de revoir apparaitre une ligne qu’il vient de supprimer, ce qui rend son expérience incohérente. + +En effet, premièrement Bob à vue s’afficher sur son écran la ligne qu’il venait de saisir \\ $\delta = \{"Hello World"\}$ qui est le résultat de l’exécution $\text{insérer}("Hello World")$. Puis il supprime le mot “World”. Le passé des exécutions de Bob devient donc $\text{insérer}("Hello World") \cdot \text{supprimer}("World") = \{"Hello"\}$. Mettant ainsi à jour son état local. Enfin il recoit l’opération d’Alice qui vient de réaliser une modification en se basant sur un état antérieur à l’état actuel de Bob. L’état qu’il reçoit est donc le résultat des opérations $\text{insérer}("Hello World") \cdot \text{insérer}("Hello World") = \{"Hello World"\}$. On omet ici une opération que Bob à soumise, qu’il a pu constater comme étant comptabilisé dans le calcul de son état local, mais qui a ensuite été ignoré par le système. La cohérence de l’état local de Bob n’a donc pas était respectée. + + +% \subsection{État des différents critères} +% \subsubsection{Les modèles de mémoires partagées} + +% \subsubsection{La cohérence forte} +% Cohérence Séquentielle \cite{lamport_how_1979} + +% \subsubsection{La cohérence Faible} diff --git a/docs/rapport/rapport_etat_artv2/images/local1.latex b/docs/rapport/rapport_etat_artv2/images/local1.latex new file mode 100644 index 0000000..3ce4dac --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/images/local1.latex @@ -0,0 +1,43 @@ +% generated by Plantuml 1.2022.7 +\definecolor{plantucolor0000}{RGB}{24,24,24} +\definecolor{plantucolor0001}{RGB}{0,0,0} +\definecolor{plantucolor0002}{RGB}{226,226,240} +\begin{tikzpicture}[yscale=-1 +,pstyle0/.style={color=plantucolor0000,line width=0.5pt,dash pattern=on 5.0pt off 5.0pt} +,pstyle1/.style={color=plantucolor0000,fill=plantucolor0002,line width=0.5pt} +,pstyle3/.style={color=plantucolor0000,fill=plantucolor0000,line width=1.0pt} +,pstyle4/.style={color=plantucolor0000,line width=1.0pt} +] +\draw[pstyle0] (23pt,84.0679pt) -- (23pt,311.01pt); +\draw[pstyle0] (134.7162pt,84.0679pt) -- (134.7162pt,311.01pt); +\draw[pstyle0] (208.3289pt,84.0679pt) -- (208.3289pt,311.01pt); +\draw[pstyle0] (368.0101pt,84.0679pt) -- (368.0101pt,311.01pt); +\node at (5pt,65pt)[below right,color=black]{Bob}; +\draw[pstyle1] (23.3692pt,13.5pt) ellipse (8pt and 8pt); +\draw[color=plantucolor0000,line width=0.5pt] (23.3692pt,21.5pt) -- (23.3692pt,48.5pt)(10.3692pt,29.5pt) -- (36.3692pt,29.5pt)(23.3692pt,48.5pt) -- (10.3692pt,63.5pt)(23.3692pt,48.5pt) -- (36.3692pt,63.5pt); +\draw[pstyle1] (100.7162pt,55pt) arc (180:270:5pt) -- (105.7162pt,50pt) -- (164.3289pt,50pt) arc (270:360:5pt) -- (169.3289pt,55pt) -- (169.3289pt,78.0679pt) arc (0:90:5pt) -- (164.3289pt,83.0679pt) -- (105.7162pt,83.0679pt) arc (90:180:5pt) -- (100.7162pt,78.0679pt) -- cycle; +\node at (107.7162pt,57pt)[below right,color=black]{Clavier}; +\draw[pstyle1] (179.3289pt,55pt) arc (180:270:5pt) -- (184.3289pt,50pt) -- (233.3289pt,50pt) arc (270:360:5pt) -- (238.3289pt,55pt) -- (238.3289pt,78.0679pt) arc (0:90:5pt) -- (233.3289pt,83.0679pt) -- (184.3289pt,83.0679pt) arc (90:180:5pt) -- (179.3289pt,78.0679pt) -- cycle; +\node at (186.3289pt,57pt)[below right,color=black]{Ecran}; +\draw[pstyle1] (330.0101pt,55pt) arc (180:270:5pt) -- (335.0101pt,50pt) -- (402.2546pt,50pt) arc (270:360:5pt) -- (407.2546pt,55pt) -- (407.2546pt,78.0679pt) arc (0:90:5pt) -- (402.2546pt,83.0679pt) -- (335.0101pt,83.0679pt) arc (90:180:5pt) -- (330.0101pt,78.0679pt) -- cycle; +\node at (337.0101pt,57pt)[below right,color=black]{Système}; +\draw[pstyle3] (123.0226pt,113.7739pt) -- (133.0226pt,117.7739pt) -- (123.0226pt,121.7739pt) -- (127.0226pt,117.7739pt) -- cycle; +\draw[pstyle4] (23.3692pt,117.7739pt) -- (129.0226pt,117.7739pt); +\node at (30.3692pt,98.0679pt)[below right,color=black]{Ecrit "Hello"}; +\draw[pstyle3] (356.6323pt,145.4799pt) -- (366.6323pt,149.4799pt) -- (356.6323pt,153.4799pt) -- (360.6323pt,149.4799pt) -- cycle; +\draw[pstyle4] (135.0226pt,149.4799pt) -- (362.6323pt,149.4799pt); +\node at (142.0226pt,129.7739pt)[below right,color=black]{Envoie "Hello"}; +\draw[pstyle4] (368.6323pt,198.892pt) -- (410.6323pt,198.892pt); +\draw[pstyle4] (410.6323pt,198.892pt) -- (410.6323pt,211.892pt); +\draw[pstyle4] (369.6323pt,211.892pt) -- (410.6323pt,211.892pt); +\draw[pstyle3] (379.6323pt,207.892pt) -- (369.6323pt,211.892pt) -- (379.6323pt,215.892pt) -- (375.6323pt,211.892pt) -- cycle; +\node at (375.6323pt,161.4799pt)[below right,color=black]{Accepte la saisie et}; +\node at (375.6323pt,179.186pt)[below right,color=black]{modifie le document}; +\draw[pstyle3] (219.8289pt,257.304pt) -- (209.8289pt,261.304pt) -- (219.8289pt,265.304pt) -- (215.8289pt,261.304pt) -- cycle; +\draw[pstyle4] (213.8289pt,261.304pt) -- (367.6323pt,261.304pt); +\node at (225.8289pt,223.892pt)[below right,color=black]{Afiche le document}; +\node at (225.8289pt,241.598pt)[below right,color=black]{mis à jour}; +\draw[pstyle3] (34.3692pt,289.01pt) -- (24.3692pt,293.01pt) -- (34.3692pt,297.01pt) -- (30.3692pt,293.01pt) -- cycle; +\draw[pstyle4] (28.3692pt,293.01pt) -- (207.8289pt,293.01pt); +\node at (40.3692pt,273.304pt)[below right,color=black]{Regarde}; +\end{tikzpicture} diff --git a/docs/rapport/rapport_etat_artv2/images/local1.puml b/docs/rapport/rapport_etat_artv2/images/local1.puml new file mode 100644 index 0000000..0b6edc3 --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/images/local1.puml @@ -0,0 +1,16 @@ +@startuml local1 + +hide footbox + +actor Bob +participant Clavier +participant Ecran +participant Système + +Bob -> Clavier : Ecrit "Hello" +Clavier -> Système : Envoie "Hello" +Système -> Système : Accepte la saisie et\nmodifie le document +Système -> Ecran : Afiche le document\nmis à jour +Ecran -> Bob : Regarde + +@enduml \ No newline at end of file diff --git a/docs/rapport/rapport_etat_artv2/images/local1_tzk.tex b/docs/rapport/rapport_etat_artv2/images/local1_tzk.tex new file mode 100644 index 0000000..b63641c --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/images/local1_tzk.tex @@ -0,0 +1,21 @@ +\begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode] (11) {}; + \node[left] at (11.west) {$p_0$}; + \node[above] at (11.north) {$w('he')$}; + \node[roundnode] (12) [right=40pt of 11] {}; + \node[above] at (12.north) {$r/\{'he'\}$}; + \node[roundnode] (13) [right=40pt of 12] {}; + \node[above] at (13.north) {$w('llo')$}; + \node[roundnode] (14) [right=40pt of 13] {}; + \node[above] at (14.north) {$r/\{'hello'\}^\omega$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (14); +\end{tikzpicture} \ No newline at end of file diff --git a/docs/rapport/rapport_etat_artv2/images/local2.latex b/docs/rapport/rapport_etat_artv2/images/local2.latex new file mode 100644 index 0000000..52fd4e1 --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/images/local2.latex @@ -0,0 +1,41 @@ +% generated by Plantuml 1.2022.7 +\definecolor{plantucolor0000}{RGB}{24,24,24} +\definecolor{plantucolor0001}{RGB}{0,0,0} +\definecolor{plantucolor0002}{RGB}{226,226,240} +\begin{tikzpicture}[yscale=-1 +,pstyle0/.style={color=plantucolor0000,line width=0.5pt,dash pattern=on 5.0pt off 5.0pt} +,pstyle1/.style={color=plantucolor0000,fill=plantucolor0002,line width=0.5pt} +,pstyle2/.style={color=plantucolor0000,line width=0.5pt} +,pstyle3/.style={color=plantucolor0000,fill=plantucolor0000,line width=1.0pt} +,pstyle4/.style={color=plantucolor0000,line width=1.0pt} +] +\draw[pstyle0] (26pt,84.0679pt) -- (26pt,294.304pt); +\draw[pstyle0] (75.9pt,84.0679pt) -- (75.9pt,294.304pt); +\draw[pstyle0] (235.9633pt,84.0679pt) -- (235.9633pt,294.304pt); +\node at (5pt,65pt)[below right,color=black]{Alice}; +\draw[pstyle1] (26.45pt,13.5pt) ellipse (8pt and 8pt); +\draw[pstyle2] (26.45pt,21.5pt) -- (26.45pt,48.5pt)(13.45pt,29.5pt) -- (39.45pt,29.5pt)(26.45pt,48.5pt) -- (13.45pt,63.5pt)(26.45pt,48.5pt) -- (39.45pt,63.5pt); +\node at (57.9pt,65pt)[below right,color=black]{Bob}; +\draw[pstyle1] (76.2692pt,13.5pt) ellipse (8pt and 8pt); +\draw[pstyle2] (76.2692pt,21.5pt) -- (76.2692pt,48.5pt)(63.2692pt,29.5pt) -- (89.2692pt,29.5pt)(76.2692pt,48.5pt) -- (63.2692pt,63.5pt)(76.2692pt,48.5pt) -- (89.2692pt,63.5pt); +\draw[pstyle1] (184.9633pt,55pt) arc (180:270:5pt) -- (189.9633pt,50pt) -- (282.623pt,50pt) arc (270:360:5pt) -- (287.623pt,55pt) -- (287.623pt,78.0679pt) arc (0:90:5pt) -- (282.623pt,83.0679pt) -- (189.9633pt,83.0679pt) arc (90:180:5pt) -- (184.9633pt,78.0679pt) -- cycle; +\node at (191.9633pt,57pt)[below right,color=black]{Application}; +\draw[pstyle3] (224.2932pt,113.7739pt) -- (234.2932pt,117.7739pt) -- (224.2932pt,121.7739pt) -- (228.2932pt,117.7739pt) -- cycle; +\draw[pstyle4] (26.45pt,117.7739pt) -- (230.2932pt,117.7739pt); +\node at (33.45pt,98.0679pt)[below right,color=black]{saisir("Hello")}; +\draw[pstyle3] (37.45pt,145.4799pt) -- (27.45pt,149.4799pt) -- (37.45pt,153.4799pt) -- (33.45pt,149.4799pt) -- cycle; +\draw[pstyle4] (31.45pt,149.4799pt) -- (235.2932pt,149.4799pt); +\node at (43.45pt,129.7739pt)[below right,color=black]{lire("Hello")}; +\draw[pstyle3] (87.2692pt,177.186pt) -- (77.2692pt,181.186pt) -- (87.2692pt,185.186pt) -- (83.2692pt,181.186pt) -- cycle; +\draw[pstyle4] (81.2692pt,181.186pt) -- (235.2932pt,181.186pt); +\node at (93.2692pt,161.4799pt)[below right,color=black]{lire("Hello")}; +\draw[pstyle3] (224.2932pt,208.892pt) -- (234.2932pt,212.892pt) -- (224.2932pt,216.892pt) -- (228.2932pt,212.892pt) -- cycle; +\draw[pstyle4] (76.2692pt,212.892pt) -- (230.2932pt,212.892pt); +\node at (83.2692pt,193.186pt)[below right,color=black]{saisir(" World")}; +\draw[pstyle3] (37.45pt,240.598pt) -- (27.45pt,244.598pt) -- (37.45pt,248.598pt) -- (33.45pt,244.598pt) -- cycle; +\draw[pstyle4] (31.45pt,244.598pt) -- (235.2932pt,244.598pt); +\node at (43.45pt,224.892pt)[below right,color=black]{lire("Hello World")}; +\draw[pstyle3] (87.2692pt,272.304pt) -- (77.2692pt,276.304pt) -- (87.2692pt,280.304pt) -- (83.2692pt,276.304pt) -- cycle; +\draw[pstyle4] (81.2692pt,276.304pt) -- (235.2932pt,276.304pt); +\node at (93.2692pt,256.598pt)[below right,color=black]{lire("Hello World")}; +\end{tikzpicture} diff --git a/docs/rapport/rapport_etat_artv2/images/local2.puml b/docs/rapport/rapport_etat_artv2/images/local2.puml new file mode 100644 index 0000000..e3baac7 --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/images/local2.puml @@ -0,0 +1,38 @@ +@startuml local2 + +!pragma teoz true +hide footbox + +actor Alice +actor Bob +participant Application + +Alice ->(15) Application: saisir("Hello") +Application ->(15) Alice: lire("Hello") +& Application ->(30) Bob + +Bob ->(15) Application: saisir(" World") +Application ->(15) Alice: lire("Hello World") +& Application ->(30) Bob + +@enduml + +@startuml local2fail + +!pragma teoz true +hide footbox + +actor Alice +participant Application +actor Bob + +Alice ->(15) Application: saisir("Le chat") +Application ->(15) Alice: lire("Le chat") +& Application ->(15) Bob: lire("Le chat") + +Bob ->(15) Application: saisir(" mange") +& Alice ->(20) Application: saisir(" boit") +Application ->(15) Alice: lire("Le chat mange boit") +& Application ->(15) Bob: lire("Le chat mange boit") + +@enduml \ No newline at end of file diff --git a/docs/rapport/rapport_etat_artv2/images/local2fail.latex b/docs/rapport/rapport_etat_artv2/images/local2fail.latex new file mode 100644 index 0000000..40e9848 --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/images/local2fail.latex @@ -0,0 +1,44 @@ +% generated by Plantuml 1.2022.7 +\definecolor{plantucolor0000}{RGB}{24,24,24} +\definecolor{plantucolor0001}{RGB}{0,0,0} +\definecolor{plantucolor0002}{RGB}{226,226,240} +\begin{tikzpicture}[yscale=-1 +,pstyle0/.style={color=plantucolor0000,line width=0.5pt,dash pattern=on 5.0pt off 5.0pt} +,pstyle1/.style={color=plantucolor0000,fill=plantucolor0002,line width=0.5pt} +,pstyle2/.style={color=plantucolor0000,line width=0.5pt} +,pstyle3/.style={color=plantucolor0000,fill=plantucolor0000,line width=1.0pt} +,pstyle4/.style={color=plantucolor0000,line width=1.0pt} +] +\draw[pstyle0] (26.45pt,84.0679pt) -- (26.45pt,293.892pt); +\draw[pstyle0] (230.5952pt,84.0679pt) -- (230.5952pt,293.892pt); +\draw[pstyle0] (434.7404pt,84.0679pt) -- (434.7404pt,293.892pt); +\node at (5pt,65pt)[below right,color=black]{Alice}; +\draw[pstyle1] (26.45pt,13.5pt) ellipse (8pt and 8pt); +\draw[pstyle2] (26.45pt,21.5pt) -- (26.45pt,48.5pt)(13.45pt,29.5pt) -- (39.45pt,29.5pt)(26.45pt,48.5pt) -- (13.45pt,63.5pt)(26.45pt,48.5pt) -- (39.45pt,63.5pt); +\draw[pstyle1] (179.2654pt,55pt) arc (180:270:5pt) -- (184.2654pt,50pt) -- (276.9251pt,50pt) arc (270:360:5pt) -- (281.9251pt,55pt) -- (281.9251pt,78.0679pt) arc (0:90:5pt) -- (276.9251pt,83.0679pt) -- (184.2654pt,83.0679pt) arc (90:180:5pt) -- (179.2654pt,78.0679pt) -- cycle; +\node at (186.2654pt,57pt)[below right,color=black]{Application}; +\node at (416.3712pt,65pt)[below right,color=black]{Bob}; +\draw[pstyle1] (434.7404pt,13.5pt) ellipse (8pt and 8pt); +\draw[pstyle2] (434.7404pt,21.5pt) -- (434.7404pt,48.5pt)(421.7404pt,29.5pt) -- (447.7404pt,29.5pt)(434.7404pt,48.5pt) -- (421.7404pt,63.5pt)(434.7404pt,48.5pt) -- (447.7404pt,63.5pt); +\draw[pstyle3] (218.9152pt,126.0519pt) -- (228.5952pt,130.7739pt) -- (218.329pt,134.0304pt) -- (222.6114pt,130.3343pt) -- cycle; +\draw[pstyle4] (26.45pt,115.7739pt) -- (228.5952pt,130.7739pt); +\node at (33.45pt,96.0679pt)[below right,color=black]{saisir("Le chat")}; +\draw[pstyle3] (37.13pt,172.7579pt) -- (27.45pt,177.4799pt) -- (37.7162pt,180.7364pt) -- (33.4339pt,177.0403pt) -- cycle; +\draw[pstyle4] (229.5952pt,162.4799pt) -- (26.45pt,177.4799pt); +\node at (43.45pt,142.7739pt)[below right,color=black]{lire("Le chat")}; +\draw[pstyle3] (423.0604pt,172.7579pt) -- (432.7404pt,177.4799pt) -- (422.4742pt,180.7364pt) -- (426.7566pt,177.0403pt) -- cycle; +\draw[pstyle4] (230.5952pt,162.4799pt) -- (432.7404pt,177.4799pt); +\node at (237.5952pt,142.7739pt)[below right,color=black]{lire("Le chat")}; +\draw[pstyle3] (241.2752pt,219.4639pt) -- (231.5952pt,224.186pt) -- (241.8615pt,227.4424pt) -- (237.5791pt,223.7463pt) -- cycle; +\draw[pstyle4] (433.7404pt,209.186pt) -- (230.5952pt,224.186pt); +\node at (247.5952pt,189.4799pt)[below right,color=black]{saisir(" mange")}; +\draw[pstyle3] (219.0329pt,224.23pt) -- (228.5952pt,229.186pt) -- (218.2529pt,232.1919pt) -- (222.6238pt,228.601pt) -- cycle; +\draw[pstyle4] (26.45pt,209.186pt) -- (228.5952pt,229.186pt); +\node at (33.45pt,189.4799pt)[below right,color=black]{saisir(" boit")}; +\draw[pstyle3] (37.13pt,271.1699pt) -- (27.45pt,275.892pt) -- (37.7162pt,279.1484pt) -- (33.4339pt,275.4523pt) -- cycle; +\draw[pstyle4] (229.5952pt,260.892pt) -- (26.45pt,275.892pt); +\node at (43.45pt,241.186pt)[below right,color=black]{lire("Le chat mange boit")}; +\draw[pstyle3] (423.0604pt,271.1699pt) -- (432.7404pt,275.892pt) -- (422.4742pt,279.1484pt) -- (426.7566pt,275.4523pt) -- cycle; +\draw[pstyle4] (230.5952pt,260.892pt) -- (432.7404pt,275.892pt); +\node at (237.5952pt,241.186pt)[below right,color=black]{lire("Le chat mange boit")}; +\end{tikzpicture} diff --git a/docs/rapport/rapport_etat_artv2/images/localiteEtat.puml b/docs/rapport/rapport_etat_artv2/images/localiteEtat.puml new file mode 100644 index 0000000..7c963a9 --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/images/localiteEtat.puml @@ -0,0 +1,22 @@ +@startuml localiteEtatFail + +Bob -> Bob : inserer("Hello World") +Bob -> Bob : afficher() -> "Hello World" +Bob -> Alice : partager("Hello World") + +!pragma teoz true + +Alice -> Alice : afficher() : "Hello World" + +Alice -> Alice : souligner("Hello World") +& Bob -> Bob : supprimer("Hello World", " World") + +Alice -> Alice : afficher() : "__Hello World__" +& Bob -> Bob : afficher() : "Hello" + +Alice ->(25) Bob : \t\t partager("__Hello World__")\n +& Bob ->(25) Alice : partager("Hello") +Bob -> Bob : afficher() -> "__Hello World__" +& Alice -> Alice : afficher() -> "__Hello__" + +@enduml \ No newline at end of file diff --git a/docs/rapport/rapport_etat_artv2/images/localiteEtatFail.latex b/docs/rapport/rapport_etat_artv2/images/localiteEtatFail.latex new file mode 100644 index 0000000..3bdaf4e --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/images/localiteEtatFail.latex @@ -0,0 +1,76 @@ +% generated by Plantuml 1.2022.7 +\definecolor{plantucolor0000}{RGB}{24,24,24} +\definecolor{plantucolor0001}{RGB}{226,226,240} +\definecolor{plantucolor0002}{RGB}{0,0,0} +\begin{tikzpicture}[yscale=-1 +,pstyle0/.style={color=plantucolor0000,line width=0.5pt,dash pattern=on 5.0pt off 5.0pt} +,pstyle1/.style={color=plantucolor0000,fill=plantucolor0001,line width=0.5pt} +,pstyle2/.style={color=plantucolor0000,line width=1.0pt} +,pstyle3/.style={color=plantucolor0000,fill=plantucolor0000,line width=1.0pt} +] +\draw[pstyle0] (27.3692pt,39.0679pt) -- (27.3692pt,431.4221pt); +\draw[pstyle0] (295.551pt,39.0679pt) -- (295.551pt,431.4221pt); +\draw[pstyle1] (5pt,10pt) arc (180:270:5pt) -- (10pt,5pt) -- (44.7385pt,5pt) arc (270:360:5pt) -- (49.7385pt,10pt) -- (49.7385pt,33.0679pt) arc (0:90:5pt) -- (44.7385pt,38.0679pt) -- (10pt,38.0679pt) arc (90:180:5pt) -- (5pt,33.0679pt) -- cycle; +\node at (12pt,12pt)[below right,color=black]{Bob}; +\draw[pstyle1] (270.101pt,10pt) arc (180:270:5pt) -- (275.101pt,5pt) -- (316.001pt,5pt) arc (270:360:5pt) -- (321.001pt,10pt) -- (321.001pt,33.0679pt) arc (0:90:5pt) -- (316.001pt,38.0679pt) -- (275.101pt,38.0679pt) arc (90:180:5pt) -- (270.101pt,33.0679pt) -- cycle; +\node at (277.101pt,12pt)[below right,color=black]{Alice}; +\draw[pstyle1] (5pt,436.4221pt) arc (180:270:5pt) -- (10pt,431.4221pt) -- (44.7385pt,431.4221pt) arc (270:360:5pt) -- (49.7385pt,436.4221pt) -- (49.7385pt,459.49pt) arc (0:90:5pt) -- (44.7385pt,464.49pt) -- (10pt,464.49pt) arc (90:180:5pt) -- (5pt,459.49pt) -- cycle; +\node at (12pt,438.4221pt)[below right,color=black]{Bob}; +\draw[pstyle1] (270.101pt,436.4221pt) arc (180:270:5pt) -- (275.101pt,431.4221pt) -- (316.001pt,431.4221pt) arc (270:360:5pt) -- (321.001pt,436.4221pt) -- (321.001pt,459.49pt) arc (0:90:5pt) -- (316.001pt,464.49pt) -- (275.101pt,464.49pt) arc (90:180:5pt) -- (270.101pt,459.49pt) -- cycle; +\node at (277.101pt,438.4221pt)[below right,color=black]{Alice}; +\draw[pstyle2] (27.3692pt,70.7739pt) -- (69.3692pt,70.7739pt); +\draw[pstyle2] (69.3692pt,70.7739pt) -- (69.3692pt,83.7739pt); +\draw[pstyle2] (28.3692pt,83.7739pt) -- (69.3692pt,83.7739pt); +\draw[pstyle3] (38.3692pt,79.7739pt) -- (28.3692pt,83.7739pt) -- (38.3692pt,87.7739pt) -- (34.3692pt,83.7739pt) -- cycle; +\node at (34.3692pt,51.0679pt)[below right,color=black]{inserer("Hello World")}; +\draw[pstyle2] (27.3692pt,115.4799pt) -- (69.3692pt,115.4799pt); +\draw[pstyle2] (69.3692pt,115.4799pt) -- (69.3692pt,128.4799pt); +\draw[pstyle2] (28.3692pt,128.4799pt) -- (69.3692pt,128.4799pt); +\draw[pstyle3] (38.3692pt,124.4799pt) -- (28.3692pt,128.4799pt) -- (38.3692pt,132.4799pt) -- (34.3692pt,128.4799pt) -- cycle; +\node at (34.3692pt,95.7739pt)[below right,color=black]{afficher() -\textgreater "Hello World"}; +\draw[pstyle3] (283.551pt,156.186pt) -- (293.551pt,160.186pt) -- (283.551pt,164.186pt) -- (287.551pt,160.186pt) -- cycle; +\draw[pstyle2] (27.3692pt,160.186pt) -- (289.551pt,160.186pt); +\node at (34.3692pt,140.4799pt)[below right,color=black]{partager("Hello World")}; +\draw[pstyle2] (295.551pt,191.892pt) -- (337.551pt,191.892pt); +\draw[pstyle2] (337.551pt,191.892pt) -- (337.551pt,204.892pt); +\draw[pstyle2] (296.551pt,204.892pt) -- (337.551pt,204.892pt); +\draw[pstyle3] (306.551pt,200.892pt) -- (296.551pt,204.892pt) -- (306.551pt,208.892pt) -- (302.551pt,204.892pt) -- cycle; +\node at (302.551pt,172.186pt)[below right,color=black]{afficher() : "Hello World"}; +\draw[pstyle2] (295.551pt,236.598pt) -- (337.551pt,236.598pt); +\draw[pstyle2] (337.551pt,236.598pt) -- (337.551pt,249.598pt); +\draw[pstyle2] (296.551pt,249.598pt) -- (337.551pt,249.598pt); +\draw[pstyle3] (306.551pt,245.598pt) -- (296.551pt,249.598pt) -- (306.551pt,253.598pt) -- (302.551pt,249.598pt) -- cycle; +\node at (302.551pt,216.892pt)[below right,color=black]{souligner("Hello World")}; +\draw[pstyle2] (27.3692pt,236.598pt) -- (69.3692pt,236.598pt); +\draw[pstyle2] (69.3692pt,236.598pt) -- (69.3692pt,249.598pt); +\draw[pstyle2] (28.3692pt,249.598pt) -- (69.3692pt,249.598pt); +\draw[pstyle3] (38.3692pt,245.598pt) -- (28.3692pt,249.598pt) -- (38.3692pt,253.598pt) -- (34.3692pt,249.598pt) -- cycle; +\node at (34.3692pt,216.892pt)[below right,color=black]{supprimer("Hello World", " World")}; +\draw[pstyle2] (295.551pt,281.304pt) -- (337.551pt,281.304pt); +\draw[pstyle2] (337.551pt,281.304pt) -- (337.551pt,294.304pt); +\draw[pstyle2] (296.551pt,294.304pt) -- (337.551pt,294.304pt); +\draw[pstyle3] (306.551pt,290.304pt) -- (296.551pt,294.304pt) -- (306.551pt,298.304pt) -- (302.551pt,294.304pt) -- cycle; +\node at (302.551pt,261.598pt)[below right,color=black]{afficher() : "\underline{Hello World}"}; +\draw[pstyle2] (27.3692pt,281.304pt) -- (69.3692pt,281.304pt); +\draw[pstyle2] (69.3692pt,281.304pt) -- (69.3692pt,294.304pt); +\draw[pstyle2] (28.3692pt,294.304pt) -- (69.3692pt,294.304pt); +\draw[pstyle3] (38.3692pt,290.304pt) -- (28.3692pt,294.304pt) -- (38.3692pt,298.304pt) -- (34.3692pt,294.304pt) -- cycle; +\node at (34.3692pt,261.598pt)[below right,color=black]{afficher() : "Hello"}; +\draw[pstyle3] (37.9548pt,363.8051pt) -- (28.3692pt,368.716pt) -- (38.6973pt,371.7706pt) -- (34.3433pt,368.1591pt) -- cycle; +\draw[pstyle2] (294.551pt,343.716pt) -- (27.3692pt,368.716pt); +\node at (44.3692pt,306.304pt)[below right,color=black]{\qquad\qquad\qquad\qquad\qquad\qquad\qquad partager("\underline{Hello World}")}; +\node at (44.3692pt,324.01pt)[below right,color=black]{ }; +\draw[pstyle3] (283.9655pt,363.8051pt) -- (293.551pt,368.716pt) -- (283.2229pt,371.7706pt) -- (287.577pt,368.1591pt) -- cycle; +\draw[pstyle2] (27.3692pt,343.716pt) -- (293.551pt,368.716pt); +\node at (34.3692pt,324.01pt)[below right,color=black]{partager("Hello")}; +\draw[pstyle2] (27.3692pt,400.4221pt) -- (69.3692pt,400.4221pt); +\draw[pstyle2] (69.3692pt,400.4221pt) -- (69.3692pt,413.4221pt); +\draw[pstyle2] (28.3692pt,413.4221pt) -- (69.3692pt,413.4221pt); +\draw[pstyle3] (38.3692pt,409.4221pt) -- (28.3692pt,413.4221pt) -- (38.3692pt,417.4221pt) -- (34.3692pt,413.4221pt) -- cycle; +\node at (34.3692pt,380.716pt)[below right,color=black]{afficher() : "\underline{Hello World}"}; +\draw[pstyle2] (295.551pt,400.4221pt) -- (337.551pt,400.4221pt); +\draw[pstyle2] (337.551pt,400.4221pt) -- (337.551pt,413.4221pt); +\draw[pstyle2] (296.551pt,413.4221pt) -- (337.551pt,413.4221pt); +\draw[pstyle3] (306.551pt,409.4221pt) -- (296.551pt,413.4221pt) -- (306.551pt,417.4221pt) -- (302.551pt,413.4221pt) -- cycle; +\node at (302.551pt,380.716pt)[below right,color=black]{afficher() : "\underline{Hello}"}; +\end{tikzpicture} diff --git a/docs/rapport/rapport_etat_artv2/images/seriaized.puml b/docs/rapport/rapport_etat_artv2/images/seriaized.puml new file mode 100644 index 0000000..388dc9e --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/images/seriaized.puml @@ -0,0 +1,25 @@ +@startuml serialized + +!pragma teoz true +hide footbox + +participant Alice +participant Server +participant Bob + + +Alice ->(10) Server : lock() +Server -->(10) Alice : true + +Bob -> Server : lock() +& Alice ->(10) Server : inserer("hello world") +Server -->(10) Bob : false +& Alice ->(10) Server : lire() +Server -->(10) Alice : "hello world" +Alice -> Server : unlock() +Bob -> Server : lock() +Bob -> Server : lire() +Server -->(10) Bob : "hello world" +Bob -> Server : unlock() + +@enduml \ No newline at end of file diff --git a/docs/rapport/rapport_etat_artv2/images/serialized.latex b/docs/rapport/rapport_etat_artv2/images/serialized.latex new file mode 100644 index 0000000..21b7d98 --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/images/serialized.latex @@ -0,0 +1,57 @@ +% generated by Plantuml 1.2022.7 +\definecolor{plantucolor0000}{RGB}{24,24,24} +\definecolor{plantucolor0001}{RGB}{226,226,240} +\definecolor{plantucolor0002}{RGB}{0,0,0} +\begin{tikzpicture}[yscale=-1 +,pstyle0/.style={color=plantucolor0000,line width=0.5pt,dash pattern=on 5.0pt off 5.0pt} +,pstyle1/.style={color=plantucolor0000,fill=plantucolor0001,line width=0.5pt} +,pstyle2/.style={color=plantucolor0000,fill=plantucolor0000,line width=1.0pt} +,pstyle3/.style={color=plantucolor0000,line width=1.0pt} +,pstyle4/.style={color=plantucolor0000,line width=1.0pt,dash pattern=on 2.0pt off 2.0pt} +] +\draw[pstyle0] (30.45pt,39.0679pt) -- (30.45pt,434.1281pt); +\draw[pstyle0] (210.5241pt,39.0679pt) -- (210.5241pt,434.1281pt); +\draw[pstyle0] (328.7611pt,39.0679pt) -- (328.7611pt,434.1281pt); +\draw[pstyle1] (5pt,10pt) arc (180:270:5pt) -- (10pt,5pt) -- (50.9pt,5pt) arc (270:360:5pt) -- (55.9pt,10pt) -- (55.9pt,33.0679pt) arc (0:90:5pt) -- (50.9pt,38.0679pt) -- (10pt,38.0679pt) arc (90:180:5pt) -- (5pt,33.0679pt) -- cycle; +\node at (12pt,12pt)[below right,color=black]{Alice}; +\draw[pstyle1] (177.9423pt,10pt) arc (180:270:5pt) -- (182.9423pt,5pt) -- (238.1059pt,5pt) arc (270:360:5pt) -- (243.1059pt,10pt) -- (243.1059pt,33.0679pt) arc (0:90:5pt) -- (238.1059pt,38.0679pt) -- (182.9423pt,38.0679pt) arc (90:180:5pt) -- (177.9423pt,33.0679pt) -- cycle; +\node at (184.9423pt,12pt)[below right,color=black]{Server}; +\draw[pstyle1] (306.3919pt,10pt) arc (180:270:5pt) -- (311.3919pt,5pt) -- (346.1303pt,5pt) arc (270:360:5pt) -- (351.1303pt,10pt) -- (351.1303pt,33.0679pt) arc (0:90:5pt) -- (346.1303pt,38.0679pt) -- (311.3919pt,38.0679pt) arc (90:180:5pt) -- (306.3919pt,33.0679pt) -- cycle; +\node at (313.3919pt,12pt)[below right,color=black]{Bob}; +\draw[pstyle2] (198.7612pt,76.2256pt) -- (208.5241pt,80.7739pt) -- (198.3177pt,84.2133pt) -- (202.5333pt,80.4412pt) -- cycle; +\draw[pstyle3] (30.45pt,70.7739pt) -- (208.5241pt,80.7739pt); +\node at (37.45pt,51.0679pt)[below right,color=black]{lock()}; +\draw[pstyle2] (41.2128pt,117.9316pt) -- (31.45pt,122.4799pt) -- (41.6564pt,125.9193pt) -- (37.4408pt,122.1473pt) -- cycle; +\draw[pstyle4] (209.5241pt,112.4799pt) -- (30.45pt,122.4799pt); +\node at (47.45pt,92.7739pt)[below right,color=black]{true}; +\draw[pstyle2] (221.5241pt,150.186pt) -- (211.5241pt,154.186pt) -- (221.5241pt,158.186pt) -- (217.5241pt,154.186pt) -- cycle; +\draw[pstyle3] (215.5241pt,154.186pt) -- (327.7611pt,154.186pt); +\node at (227.5241pt,134.4799pt)[below right,color=black]{lock()}; +\draw[pstyle2] (198.7612pt,159.6376pt) -- (208.5241pt,164.186pt) -- (198.3177pt,167.6253pt) -- (202.5333pt,163.8533pt) -- cycle; +\draw[pstyle3] (30.45pt,154.186pt) -- (208.5241pt,164.186pt); +\node at (37.45pt,134.4799pt)[below right,color=black]{inserer("hello world")}; +\draw[pstyle2] (317.1338pt,201.0635pt) -- (326.7611pt,205.892pt) -- (316.4596pt,209.035pt) -- (320.7825pt,205.3863pt) -- cycle; +\draw[pstyle4] (210.5241pt,195.892pt) -- (326.7611pt,205.892pt); +\node at (217.5241pt,176.186pt)[below right,color=black]{false}; +\draw[pstyle2] (198.7612pt,201.3437pt) -- (208.5241pt,205.892pt) -- (198.3177pt,209.3314pt) -- (202.5333pt,205.5593pt) -- cycle; +\draw[pstyle3] (30.45pt,195.892pt) -- (208.5241pt,205.892pt); +\node at (37.45pt,176.186pt)[below right,color=black]{lire()}; +\draw[pstyle2] (41.2128pt,243.0497pt) -- (31.45pt,247.598pt) -- (41.6564pt,251.0374pt) -- (37.4408pt,247.2653pt) -- cycle; +\draw[pstyle4] (209.5241pt,237.598pt) -- (30.45pt,247.598pt); +\node at (47.45pt,217.892pt)[below right,color=black]{"hello world"}; +\draw[pstyle2] (198.5241pt,275.304pt) -- (208.5241pt,279.304pt) -- (198.5241pt,283.304pt) -- (202.5241pt,279.304pt) -- cycle; +\draw[pstyle3] (30.45pt,279.304pt) -- (204.5241pt,279.304pt); +\node at (37.45pt,259.598pt)[below right,color=black]{unlock()}; +\draw[pstyle2] (221.5241pt,307.01pt) -- (211.5241pt,311.01pt) -- (221.5241pt,315.01pt) -- (217.5241pt,311.01pt) -- cycle; +\draw[pstyle3] (215.5241pt,311.01pt) -- (327.7611pt,311.01pt); +\node at (227.5241pt,291.304pt)[below right,color=black]{lock()}; +\draw[pstyle2] (221.5241pt,338.716pt) -- (211.5241pt,342.716pt) -- (221.5241pt,346.716pt) -- (217.5241pt,342.716pt) -- cycle; +\draw[pstyle3] (215.5241pt,342.716pt) -- (327.7611pt,342.716pt); +\node at (227.5241pt,323.01pt)[below right,color=black]{lire()}; +\draw[pstyle2] (317.1338pt,379.5935pt) -- (326.7611pt,384.4221pt) -- (316.4596pt,387.5651pt) -- (320.7825pt,383.9164pt) -- cycle; +\draw[pstyle4] (210.5241pt,374.4221pt) -- (326.7611pt,384.4221pt); +\node at (217.5241pt,354.716pt)[below right,color=black]{"hello world"}; +\draw[pstyle2] (221.5241pt,412.1281pt) -- (211.5241pt,416.1281pt) -- (221.5241pt,420.1281pt) -- (217.5241pt,416.1281pt) -- cycle; +\draw[pstyle3] (215.5241pt,416.1281pt) -- (327.7611pt,416.1281pt); +\node at (227.5241pt,396.4221pt)[below right,color=black]{unlock()}; +\end{tikzpicture} diff --git a/docs/rapport/rapport_etat_artv2/intro/index.tex b/docs/rapport/rapport_etat_artv2/intro/index.tex new file mode 100755 index 0000000..7b80510 --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/intro/index.tex @@ -0,0 +1,5 @@ +\subsection{Motivation} +\input{intro/motivation.tex} + +\subsection{Introduction} +\input{intro/intro.tex} \ No newline at end of file diff --git a/docs/rapport/rapport_etat_artv2/intro/intro.tex b/docs/rapport/rapport_etat_artv2/intro/intro.tex new file mode 100644 index 0000000..8ff945f --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/intro/intro.tex @@ -0,0 +1,10 @@ +Les comportements des systèmes distribués sont étudiés depuis les années 1970, depuis l’arrivée des premiers processeurs multicœur. +Dans ce contexte il semblait essentiel de pouvoir répartir une tâche entre plusieurs acteurs de manières asynchrone afin d’accroitre les performances sur une unique tâche. +Ainsi Lamport définit un modèle de cohérence qu’il nomme “séquentiel”. Il présente la séquentialité de la manière suivante : une tâche est décomposable en un ensemble finit d’opération atomique. S’il est possible de réordonner ces opérations de façon à ce que leur remaniement séquentiel émette des résultats indiscernables pour un opérateur extérieur par rapport à l’exécution séquentielle non-distribuée. Alors la cohérence atteinte par ce système peut être appelée séquentiel. +Aujourd’hui nous savons que cette approche nécessite de garder une synchronicité forte entre les acteurs [REF]. +La difficulté à préserver cette synchronicité croit considérablement avec le nombre d’acteur et le temps de transmission de l’information. L’usage d’une approche séquentiel sur des applications visant à faire travailler des acteurs distants à travers un réseau mondial tel qu’internet semble à ce titre loin d’être efficace. Restreignant les applications dans un dilemme, nécessitant de choisir entre un usage hautement interactif mais excluant les nœuds les plus lents du réseau, ou permettant à l’ensemble des noeuds de participer au prix d’une très grande latence pour l’ensemble du réseau. +% Parallèle édition collaborative synchrone VS git + +Néanmoins là ou l’approche séquentiel est la seule fournissant une cohérence absolue dans la gestion des données du point de vue général et du point de vue de l’utilisateur. +Il est possible d’accepter une perte de cette cohérence partielle ou total afin de gagner en performances sur des applications à grande échelle. +Ce compromis entre cohérence et performances est l’objet de ce document qui vise à faire un état du paysage des différentes approches et solutions existantes, en définissant les cas d’usages associés. \ No newline at end of file diff --git a/docs/rapport/rapport_etat_artv2/intro/motivation.tex b/docs/rapport/rapport_etat_artv2/intro/motivation.tex new file mode 100644 index 0000000..a8c1e60 --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/intro/motivation.tex @@ -0,0 +1,9 @@ +La plupart des applications collaboratifs sur le marché prennent la forme d’une entité centralisée traitant des données, puis les redistribuent aux différents clients en résolvant au passage les possibles problèmes de cohérences qui auraient pu survenir. +De manière à favoriser l’interactivité de l’application et ainsi fournir l’expérience utilisateur la plus optimale, on constate que certaines de ces applications font appels à des algorithmes qui ne respectent pas ce qu’on attendrait d’une exécution séquentielle, pouvant ainsi mener à des incohérences dans les exécutions. +Et à terme avoir un impact sur l’expérience utilisateur. + +Il nous semble donc intéressant de se pencher sur l’état de la recherche concernant les divers manières d’aborder ce compromis dans la gestion de la cohérence dans ce genre de systèmes. Et ainsi mettre en avant les différentes propriétés qui en résultent. L’intérêt ici est de fournir une base permettant d’éclairer la prise de décision lors de l’implémentation d’un algorithme visant à satisfaire un problème distribué. + +Ce document est réalisé dans le cadre de la réalisation de ma thèse à fin de servir de base en tant qu’état de l’art sur le sujet. +L’objectif est de fournir un état de l’art de la recherche autour des différents compromis réalisables dans la gestion de la cohérence dans le contexte d’applications distribués. +Il a pour but de servir de base à un projet de thèse en CIFRE financé par l’entreprise Scille SAS, et encadré par le Laboratoire d’Informatique et Système. \ No newline at end of file diff --git a/docs/rapport/rapport_etat_artv2/main.tex b/docs/rapport/rapport_etat_artv2/main.tex new file mode 100755 index 0000000..a100473 --- /dev/null +++ b/docs/rapport/rapport_etat_artv2/main.tex @@ -0,0 +1,59 @@ +\documentclass{article} + +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[french]{babel} +\usepackage[affil-it]{authblk} +\usepackage{fullpage} +\usepackage{graphicx} + +\usepackage{biblatex} +\addbibresource{../../recherches/Stage.bib} + +\usepackage{tikz} +\usetikzlibrary{positioning} +\usetikzlibrary{calc} +\usetikzlibrary{arrows.meta} +\usepackage{aeguill} + +\usepackage{amsmath} + +\usepackage{multicol} + +\begin{document} + +\title{DRAFT: Critères de Cohérence faible byzantine appliquée aux environements cloud} +\author{JOLY Amaury \\ \textbf{Encadrants :} GODARD Emmanuel, TRAVERS Corentin} +\affil{Aix-Marseille Université, Scille} +\date{\today} + +\begin{titlepage} + \maketitle + +\end{titlepage} + +\begin{abstract} + DRAFT ! +\end{abstract} + +\newpage + +\tableofcontents + +\newpage + +\section{Introduction} +\input{intro/index.tex} + +\section{Cohérence Forte} +\input{coherence_forte/index.tex} + +\section{Les critères de cohérence} +\input{consistency_criteria/index.tex} + +\section{Les CRDT} +\input{CRDT/index.tex} + +\printbibliography + +\end{document} \ No newline at end of file

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 z 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