From c9e3b8a751b9aa9d2f48237fd414ccb214034076 Mon Sep 17 00:00:00 2001 From: Amaury Date: Mon, 11 Sep 2023 09:21:49 +0200 Subject: [PATCH] rapport de stage --- .../consistency_criteria/index.tex | 7 + docs/rapport/rapport_etat_art/intro/index.tex | 5 + docs/rapport/rapport_etat_art/intro/intro.tex | 18 + .../rapport_etat_art/intro/motivation.tex | 9 + docs/rapport/rapport_etat_art/main.tex | 42 +++ docs/rapport/rapport_stage/acquis/index.tex | 13 + docs/rapport/rapport_stage/bilan/index.tex | 12 + .../rapport_stage/images/carte_criteres.png | Bin 0 -> 162861 bytes docs/rapport/rapport_stage/intro/index.tex | 25 ++ docs/rapport/rapport_stage/lib.bib | 312 ++++++++++++++++++ docs/rapport/rapport_stage/main.ist | 29 ++ docs/rapport/rapport_stage/main.tex | 68 ++++ .../rapport_stage/schemas/convergence.tex | 35 ++ .../rapport_stage/schemas/ensemble.tex | 29 ++ .../rapport_stage/schemas/ensemble_2.tex | 35 ++ .../rapport_stage/schemas/ensemble_2_lin.tex | 40 +++ .../rapport_stage/schemas/ensemble_2_lin2.tex | 40 +++ .../rapport_stage/schemas/localiteetat.tex | 34 ++ .../rapport_stage/schemas/pipeline.tex | 43 +++ .../rapport_stage/schemas/pipeline_crdt.tex | 43 +++ .../rapport_stage/schemas/validite.tex | 31 ++ docs/rapport/rapport_stage/travail/index.tex | 243 ++++++++++++++ 22 files changed, 1113 insertions(+) create mode 100755 docs/rapport/rapport_etat_art/consistency_criteria/index.tex create mode 100755 docs/rapport/rapport_etat_art/intro/index.tex create mode 100644 docs/rapport/rapport_etat_art/intro/intro.tex create mode 100644 docs/rapport/rapport_etat_art/intro/motivation.tex create mode 100755 docs/rapport/rapport_etat_art/main.tex create mode 100644 docs/rapport/rapport_stage/acquis/index.tex create mode 100644 docs/rapport/rapport_stage/bilan/index.tex create mode 100755 docs/rapport/rapport_stage/images/carte_criteres.png create mode 100644 docs/rapport/rapport_stage/intro/index.tex create mode 100644 docs/rapport/rapport_stage/lib.bib create mode 100644 docs/rapport/rapport_stage/main.ist create mode 100644 docs/rapport/rapport_stage/main.tex create mode 100755 docs/rapport/rapport_stage/schemas/convergence.tex create mode 100644 docs/rapport/rapport_stage/schemas/ensemble.tex create mode 100644 docs/rapport/rapport_stage/schemas/ensemble_2.tex create mode 100644 docs/rapport/rapport_stage/schemas/ensemble_2_lin.tex create mode 100644 docs/rapport/rapport_stage/schemas/ensemble_2_lin2.tex create mode 100755 docs/rapport/rapport_stage/schemas/localiteetat.tex create mode 100644 docs/rapport/rapport_stage/schemas/pipeline.tex create mode 100644 docs/rapport/rapport_stage/schemas/pipeline_crdt.tex create mode 100755 docs/rapport/rapport_stage/schemas/validite.tex create mode 100644 docs/rapport/rapport_stage/travail/index.tex diff --git a/docs/rapport/rapport_etat_art/consistency_criteria/index.tex b/docs/rapport/rapport_etat_art/consistency_criteria/index.tex new file mode 100755 index 0000000..c850426 --- /dev/null +++ b/docs/rapport/rapport_etat_art/consistency_criteria/index.tex @@ -0,0 +1,7 @@ +\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/intro/index.tex b/docs/rapport/rapport_etat_art/intro/index.tex new file mode 100755 index 0000000..7b80510 --- /dev/null +++ b/docs/rapport/rapport_etat_art/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_art/intro/intro.tex b/docs/rapport/rapport_etat_art/intro/intro.tex new file mode 100644 index 0000000..576e4b1 --- /dev/null +++ b/docs/rapport/rapport_etat_art/intro/intro.tex @@ -0,0 +1,18 @@ +L'étude du comportement des systèmes distribués date des années 1970 avec l'arrivé des premiers processeurs multicoeur. +Il semblait essentiel à l'époque de pouvoir répartir une tâche entre plusieurs acteurs de manières +asynchrone afin d'accroitre les performances. +Ainsi Lamport définit un model de cohérence qu'il nomme "séquentiel". C'est à dire que, une tâche pouvant être découper en un +ensemble d'opération, chaque opération étant répartit entre plusieurs acteurs, il est possible de resequentialiser ces opérations +de facon à ce qu'infine leurs remaniement séquentiel soit indicernable vis-à-vis de ce qui pourait être attendu de +l'éxécution de la même tache dans un environement non distribués. + +Le désaventage de cette approche est qu'elle nécéssite de garder une synchronicité forte entre les acteurs. +La difficulté à préserver cette synchronicité croit considérablement avec le nombre d'acteur et la latence entre eux. L'usage d'une approche séquentiel sur des applications visant à faire travailler des +acteurs distant à travers un réseau mondia tel qu'internet semble à ce titre loin d'être efficace. Et restreint ces dernières +à des usages limités où une faible intéractivité doit être acceptée par les concepteurs. + +Néanmoins là ou l'approche séquentiel est la seule fournissant une cohénce absolue dans la gestions des données du point de vue +général et du point de vue de l'utilisateur. +Il est possibe d'accepter une perte de cette cohérence partiel ou total afin de gagner en performances sur des applications a grande echelle. +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_art/intro/motivation.tex b/docs/rapport/rapport_etat_art/intro/motivation.tex new file mode 100644 index 0000000..11163be --- /dev/null +++ b/docs/rapport/rapport_etat_art/intro/motivation.tex @@ -0,0 +1,9 @@ +La plupart des applications colaborarifs sur le marché fonctionnent sous la forme d'une entité centralisé qui traite les données, les redistribuent aux différents client et résoud les problèmes de cohérences. +De manière à favorisé l'intéractivité de l'applications et ainsi fournir l'experience utilisateur la plus optimal, on constate que certaines de ces application font appels à des algorithmes qui ne respectent pas ce qu'on attendrait d'une éxécution séquentielles, pouvant ainsi menés à des incohérences dans les éxécutions. +Et infine avoir un impact sur l'experience utilisateur. + +Il nous semble donc intéressant de se pencher sur l'état de la rechecrhe 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ésultents. 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èmes distribué. + +Ce document à était réalisé dans le cadre de mon stage de fin d'étude de Master. +L'objectif est de fournir un état de l'art de la recherches autour des différents compromis réalisables dans la gestion de la cohérence dans le contexte d'applications distribués. +Il à 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_art/main.tex b/docs/rapport/rapport_etat_art/main.tex new file mode 100755 index 0000000..0be1ec6 --- /dev/null +++ b/docs/rapport/rapport_etat_art/main.tex @@ -0,0 +1,42 @@ +\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} + +\begin{document} + +\title{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} + lorem ipsum dolor sit amet. +\end{abstract} + +\newpage + +\tableofcontents + +\newpage + +\section{Introduction} +\input{intro/index.tex} + +\section{Les critères de cohérence} +\input{consistency_criteria/index.tex} + +\printbibliography + +\end{document} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/acquis/index.tex b/docs/rapport/rapport_stage/acquis/index.tex new file mode 100644 index 0000000..86e2d9a --- /dev/null +++ b/docs/rapport/rapport_stage/acquis/index.tex @@ -0,0 +1,13 @@ +\subsection{Sécurité des Systèmes d'Information} + +Ce stage à étais pour moi l'opportunité de m'intéresser à la science de l'informatique appliquée aux systèmes distribuée. J'ai pu ainsi découvrir comment mesurer la fiabilité et la cohérence dans ces systèmes, tout en en appréciant les enjeux. J'ai ainsi pu développer une sensibilité dans ma manière d'aborder les applications distribuée, me permettant d'avoir un regard plus critique sur les choix de conceptions de ces derniers. + +Dans le même temps, mes contacts avec l'équipe de Scille m'ont permis de découvrir les enjeux du développement à un stade précoce d'une application orientée sécurité. Mon intégration à ce projet m'a permis de développer un réflexe critique dans la manière dont j'envisage la conception de l'éditeur collaboratif. Devant à tout pris le rendre cohérent avec le produit sur lequel il vise à être greffé. + +Cela à étais aussi l'occasion pour moi de découvrir des types d'attaques particuliers et propres aux systèmes distribués, ainsi que des techniques permettant de contourner la sécurité de réseaux dans le but de réaliser des communications en pair à pair. + +\subsection{Compétences transverses} + +Durant ce stage, j'ai pu perfectionner ma maitrise du LaTeX et notamment la modélisation de schémas. J'ai eu à de nombreuses occasions l'opportunité de m'exprimer devant un auditoire ce qui m'a énormément apporté en aisance à l'oral et en maitrise de mon sujet. + +Ayant travaillé seul en autonomie la plupart de mon temps, j'ai aussi du mettre en place une certaine rigueur et organisation autour de mon travail. Et trouver un équilibre dans l'organisation de mes tâches et de mes pauses. \ No newline at end of file diff --git a/docs/rapport/rapport_stage/bilan/index.tex b/docs/rapport/rapport_stage/bilan/index.tex new file mode 100644 index 0000000..706188b --- /dev/null +++ b/docs/rapport/rapport_stage/bilan/index.tex @@ -0,0 +1,12 @@ +Mon sentiment vis-à-vis de ce stage est globalement positif. J'ai pu comprendre de manière plus profonde le fonctionnement et l'organisation de la recherche en Informatique ce qui était pour moi l'objectif principal. + +Je me suis pris de passion pour le sujet que j'ai eu à traiter et j'ai hâte de poursuivre mon travail dans le cadre de la thèse. + +Mon intégration avec Scille est aussi très positive et je les remercie énormément pour la confiance qu'ils me portent et l'importance du rôle qu'ils me donnent. J'ai réellement le sentiment de faire partie de l'équipe et du projet et c'est quelque chose de très gratifiant. + +Mes regrets vis-à-vis de ce stage porte plutôt sur le début durant lequel j'ai dû me construire un rythme qui n'a pas était évident à trouver. +Les premières semaines on était éprouvante au point de remettre en question mon engagement dans cette voie. Il m'a fallu m'approprier le sujet et gérer d'une meilleure manière mes sessions de travail avant d'arriver à m'épanouir dans ce projet. + +J'aurais aussi aimé apporter une contribution plus importante à Parsec. Je trouve ne pas avoir eu le temps d'acquérir une maitrise du produit suffisante pour être pleinement capable d'y projeter mon travail. + +Je suis très reconnaissant envers mes encadrants pour leurs présences et leurs bienveillances à mon égard. Ils m'on était d'une aide capitale autant vis-à-vis de mon travail que d'un point de vue personnel et c'est avec joie et confiance que je m'engage dans une thèse avec eux. \ No newline at end of file diff --git a/docs/rapport/rapport_stage/images/carte_criteres.png b/docs/rapport/rapport_stage/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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, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode] (11) {}; + \node[left] at (11.west) {$p_0$}; + \node[above] at (11.north) {$I(1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(0)$}; + \node[roundnode] (13) [right=35pt of 12] {}; + \node[above] at (13.north) {$R/\{\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) {$I(2)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{2\}$}; + \node[roundnode] (23) [right=35pt of 22] {}; + \node[below] at (23.south) {$R/\{\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/rapport/rapport_stage/schemas/ensemble.tex b/docs/rapport/rapport_stage/schemas/ensemble.tex new file mode 100644 index 0000000..a0717ae --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/ensemble.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[left] at (11.west) {$p_0$}; + \node[above] at (11.north) {$I(0)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(1)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$I(2)$}; + \node[roundnode] (15) [right=of 13] {}; + \node[above] at (15.north) {$R/\{0,1,2\}$}; + \node[roundnode] (16) [right=of 15] {}; + \node[above] at (16.north) {$D(1)$}; + \node[roundnode] (17) [right=of 16] {}; + \node[above] at (17.north) {$R/\{0,2\}$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (15); + \draw[arrow] (15) -- (16); + \draw[arrow] (16) -- (17); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/ensemble_2.tex b/docs/rapport/rapport_stage/schemas/ensemble_2.tex new file mode 100644 index 0000000..799bac6 --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/ensemble_2.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) {$I(0)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(2)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$D(1)$}; + \node[roundnode] (14) [right=of 13] {}; + \node[above] at (14.north) {$R/\{0,2\}$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (14); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$I(1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{0,1,2\}$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$R/\{0,2\}$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/ensemble_2_lin.tex b/docs/rapport/rapport_stage/schemas/ensemble_2_lin.tex new file mode 100644 index 0000000..a028364 --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/ensemble_2_lin.tex @@ -0,0 +1,40 @@ +\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) {$I(0)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(2)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$D(1)$}; + \node[roundnode] (14) [right=of 13] {}; + \node[above] at (14.north) {$R/\{0,2\}$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (14); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$I(1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{0,1,2\}$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$R/\{0,2\}$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + + \draw[message] (21) -- ($(11)!0.5!(12)$); + \draw[message] (11) -- (21); + \draw[message] (12) -- ($(21)!0.5!(22)$); + \draw[message] (13) -- ($(22)!0.5!(23)$); + + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/ensemble_2_lin2.tex b/docs/rapport/rapport_stage/schemas/ensemble_2_lin2.tex new file mode 100644 index 0000000..c8acec9 --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/ensemble_2_lin2.tex @@ -0,0 +1,40 @@ +\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) {$I(0)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(2)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$D(1)$}; + \node[roundnode] (14) [right=of 13] {}; + \node[above] at (14.north) {$R/\{0,2\}$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (14); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$I(1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{0,1,2\}$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$R/\{0,2\}$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + + \draw[message] (21) -- ($(12)!0.5!(13)$); + \draw[message] (11) -- ($(21)!0.33!(22)$); + \draw[message] (12) -- ($(21)!0.66!(22)$); + \draw[message] (13) -- ($(22)!0.5!(23)$); + + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/localiteetat.tex b/docs/rapport/rapport_stage/schemas/localiteetat.tex new file mode 100755 index 0000000..1dc0ddc --- /dev/null +++ b/docs/rapport/rapport_stage/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) {$I(0)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$R/\{\emptyset\}$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$R/\{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) {$I(1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{\emptyset\}$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$R/\{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/rapport/rapport_stage/schemas/pipeline.tex b/docs/rapport/rapport_stage/schemas/pipeline.tex new file mode 100644 index 0000000..4de6ff9 --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/pipeline.tex @@ -0,0 +1,43 @@ +\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) {$D(1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(1)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$D(1)$}; + \node[roundnode] (14) [right=of 13] {}; + \node[above] at (14.north) {$R/\{1\}$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (14); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$I(1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{\emptyset\}$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$R/\{1\}$}; + \node[roundnode] (24) [right=of 23] {}; + \node[below] at (24.south) {$R/\{\emptyset\}$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + \draw[arrow] (23) -- (24); + + \draw[message] (21) -- ($(13)!0.5!(14)$); + \draw[message] (11) -- ($(21)!0.5!(22)$); + \draw[message] (13) -- ($(23)!0.5!(24)$); + \draw[message] (12) -- ($(22)!0.5!(23)$); + + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/pipeline_crdt.tex b/docs/rapport/rapport_stage/schemas/pipeline_crdt.tex new file mode 100644 index 0000000..d67259f --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/pipeline_crdt.tex @@ -0,0 +1,43 @@ +\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) {$I(O_1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(O_2)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$I(O_3)$}; + \node[roundnode] (14) [right=50pt of 13] {}; + \node[above] at (14.north) {$R/\{O_0, O_1, O_2, O_3\}$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (14); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$I(1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{O_0, O_1\}$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) [below=15pt] {$R/\{O_0, O_1, O_2\}$}; + \node[roundnode] (24) [right=50pt of 23] {}; + \node[below] at (24.south) {$R/\{O_0, O_1, O_2, O_3\}$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + \draw[arrow] (23) -- (24); + + \draw[message] (21) -- ($(13)!0.5!(14)$); + \draw[message] (11) -- ($(21)!0.5!(22)$); + \draw[message] (13) -- ($(23)!0.5!(24)$); + \draw[message] (12) -- ($(22)!0.5!(23)$); + + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/validite.tex b/docs/rapport/rapport_stage/schemas/validite.tex new file mode 100755 index 0000000..f3f9d38 --- /dev/null +++ b/docs/rapport/rapport_stage/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) {$I(1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$R/\{1\}$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$R/\{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) {$R/\{1\}$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$D(1)$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$R/\{\emptyset\}$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/travail/index.tex b/docs/rapport/rapport_stage/travail/index.tex new file mode 100644 index 0000000..aec05d6 --- /dev/null +++ b/docs/rapport/rapport_stage/travail/index.tex @@ -0,0 +1,243 @@ +\subsection{L'étude de la cohérence des données dans les applications distribuée} + +La première étape de la réalisation de mon stage a était la lecture et compréhension de la littérature mise en lien avec le sujet du stage. Le sujet sous-jacent à ces différentes sources peut être résumé à l'étude de la \textbf{cohérence dans des systèmes répartis en milieu malicieux}. + +Il semble essentiel dans un premier temps d'expliquer cet énoncé et de faire le lien avec notre projet plus concret. + +En tant qu'application collaborative en temps réel, notre problème doit impliquer une application distribuée. C'est-à-dire une suite de procédure sous la forme d'un algorithme qui pourra être exécutés par l'ensemble des membres collaborant et qui aura comme objectif la synchronisation des informations entre les utilisateurs. + +Ce genre d'application nécessite de manière intrinsèque une architecture dite distribuée. On formalisera ainsi un système distribué comme étant un ensemble de nœud capable d'échanger de l'information les uns avec les autres au vu de réaliser une tâche commune. + +Les applications collaboratives grand public actuelles (Google Doc \cite{GoogleDoc}, Office365 \cite{Office365}, OnlyOffice \cite{OnlyOffice}) utilisent une approche de synchronisation entre les utilisateurs qui imite un comportement similaire à une exécution sans collaboration. Elles utilisent ainsi une architecture client-serveur. Chaque opération d'écriture et de lecture du document soumise par le client doit être validé en amont par le serveur qui s'assurera de la préservation de la cohérence du document entre chaque membre à chaque instant. En d'autres termes avec cette approche si on prend une image de l'état des données stocké par l'ensemble du réseau, alors elle sera identique pour chaque nœud. + +Cette approche est la plus évidente et est la plus proche d'un comportement attendu par un utilisateur sur ce genre d'usage. Mais elle présente tout de même quelques problèmes. +Premièrement elle nécessite que tous les membres possèdent une latence raisonnable, afin de permettre la meilleure interactivité possible. L'ensemble des nœuds du système doivent se baser sur la latence du nœud le plus lent, nuisant à l'interactivité de l'application. Pour éviter cela, les applications exclues les membres possédants des connexions trop lentes limitant donc les utilisateurs potentiels. + +Cette approche n'est pas non plus compatible avec une réplication du serveur sans occasionner une baisse de l'interactivité par la même occasion. Posant ainsi le problème d'un point de faille unique où si le serveur se trouve être inaccessible, l'application ne peut plus être fonctionnel. +Par extension dans le cas d'une segmentation du réseau, les membres n'étant pas sur le segment commun avec le serveur se retrouve exclues de l'application. + +La dernière limitation de cette approche et qu'elle implique que le serveur central ait accès aux données partagé et en soit l'ordonnanceur, ce qui rentre complétement en désaccord avec l'approche zero-trust de Parsec. Cette solution n'est donc pas acceptable, heureusement des compromis sont possibles autorisant des comportements qui serait inacceptable dans un contexte de synchronicité forte entre les nœuds, mais ne nuisant pas nécessairement à notre application finale. Afin d'étudier les différents compromis possibles nous devons donc nous pencher sur l'étude de la cohérence dans les systèmes répartie. + +Nous nous intéressons à la notion de milieu malicieux, c'est-à-dire considérer que n'importe quel nœud du réseau peut se révéler être dissident de la procédure attendue à des fin rationnelle ou non, puisque dans notre contexte, l'application sera distribuée dans un environnement de production et doit donc à ce titre prendre en considération ce genre de cas. + +\subsubsection{Comment étudier la cohérence dans un système répartie} + +L'étude de la cohérence des données dans un système répartie est à différencié de l'étude algorithmique de l'application distribuée sous-jacente. Ce qui nous intéresse dans l'étude de la cohérence est la manière dont les états locaux des différents nœuds évolues dans le temps et non pas la manière avec laquelle nous avons obtenu ces états locaux. Cette nuance est importante puisqu'elle nous force à regarder les changements d'états comme une histoire résultant d'une certaine exécution d'un algorithme sans être biaisé par les spécifications de ce dernier. On ne se base donc plus sur ce que l'algorithme est censé produire, mais sur l'histoire que nous observons. + +Pour observer et décrire ces histoires, nous avons besoin d'un modèle assez simple pour pouvoir être facilement généralisé tout en étant capable d'expliquer la totalité de ce qui peut être observable. Nous utiliserons ainsi la modélisation utiliser par Perrin \cite{perrin_concurrence_2017} dans son ouvrage précédemment cité. +PERRIN définit différents types de données mettant plus ou moins en avant certains comportements. Dans le cadre de ce rapport, nous utiliserons essentiellement l'"ensemble" qui se rapproche le plus de notre objectif final. + +L'ensemble peut être soumis à 3 opérations différentes : +\begin{itemize} + \item L'insertion notée $I(v)$ permet d'insérer l'élément $v$ dans l'ensemble. + \item La suppression notée $D(v)$ permet de retirer l'élément $v$ de l'ensemble. + \item La lecture notée $R$ retourne l'état de l'ensemble. +\end{itemize} + +Par exemple imaginons un système à un seul nœud où les opérations $I(0) \bullet I(1) \bullet I(2) \bullet R \bullet D(1) \bullet R$ sont réalisées. +Nous pouvons modéliser cette exécution comme vue dans la figure \ref{enesmble}. + +\begin{figure}[!h] + \centering + \resizebox*{.75\textwidth}{!}{\input{schemas/ensemble}} + \caption{Exemple d'histoire concurrente à un seul nœud sur un ensemble} + \label{enesmble} +\end{figure} + +Il est important de noter que dans un ensemble, il n'y a pas de notion d'ordre. Si un élément est inséré plusieurs fois dans l'ensemble alors il ne sera présent qu'une unique fois au maximum et ne nécessitera qu'une seule opération de suppression pour être retiré. + +Nous pouvons, à partir de la figure \ref{enesmble} retrouver la liste des opérations qui nous on servit à la produire, c'est-à-dire $I(0) \bullet I(1) \bullet I(2) \bullet R \bullet D(1) \bullet R$. Cette liste d'opération est ce qu'on appelle une linéarisation de l'histoire décrite par la figure. Dans le contexte de l'étude de la cohérence d'un système on ne prend pas une linéarisation existante pour produire une histoire, mais on observe de manière extérieure une histoire et on essaye par la suite de montrer si une linéarisation est possible. + +Reprenons notre exemple en y ajoutant un second nœud. + +\begin{figure}[!h] + \centering + \resizebox*{.5\textwidth}{!}{\input{schemas/ensemble_2}} + \caption{Exemple d'histoire concurrente à 2 nœuds sur un ensemble} + \label{enesmble2} +\end{figure} + +Dans la figure \ref{enesmble2} nous avons répartie les opérations entre plusieurs nœuds. C'est le comportement qu'on pourrait observer dans une application d'édition collaborative par exemple. Mais ici il semble moins évident d'extraire une linéarisation. + +La linéarisation la plus évidente pourrait être montrée sur la figure \ref{enesmble2lin}. + +\begin{figure}[!h] + \centering + \resizebox*{.5\textwidth}{!}{\input{schemas/ensemble_2_lin.tex}} + \caption{Exemple de linéarisation possible} + \label{enesmble2lin} +\end{figure} + +Ici nous imaginons que ce qui à pu produire une telle histoire est l'exécution séquentielle des opérations $I(0) \bullet I(1) \bullet I(2) \bullet R \bullet D(1) \bullet R$. Ce qui ne diffère donc en rien d'une exécution à un seul nœud. La cohérence est entièrement préservée et on ne distingue pas cette exécution d'une exécution similaire réalisée par un unique nœud. + +On parle alors de cohérence forte, ou de cohérence séquentielle. Puisque la linéarisation est indiscernable de celle d'une exécution séquentielle. + +Néanmoins, il est aussi envisageable que l'exécution se soit déroulée comme ce qui est montrée dans la figure \ref{enesmble2linbis}. + +\begin{figure}[!h] + \centering + \resizebox*{.50\textwidth}{!}{\input{schemas/ensemble_2_lin2.tex}} + \caption{Exemple de linéarisation possible} + \label{enesmble2linbis} +\end{figure} + +Ici chaque nœud possède sa propre linéarisation. Du point de vue du nœud 0 l'exécution est linéarisé comme suit $I(0) \bullet I(2) \bullet I(1) \bullet D(1) \bullet R$. Tandis que pour le nœud 1 il s'est plutôt passé l'exécution suivante $I(1) \bullet I(0) \bullet I(2) \bullet R \bullet D(1) \bullet R$. +Ici le résultat final ne change pas, mais les évolutions des états de chaque nœud diverge à certains moments. Dans le cas où l'exécution se serait terminé prématurément, les deux nœuds auraient fini leur collaboration dans des états différents. + +L'histoire présentée en figure \ref{enesmble2} ne nous permet pas de trancher. Par défaut l'approche est optimistes et nous considérons que cette histoire satisfait le critère de cohérence séquentielle puisque étant le critère le plus haut applicable à cette histoire. + +\subsubsection{Les critères de cohérences faibles} + +La cohérence séquentielle est le nom donné au critère qui définit qu'une histoire concurrente soit indiscernable de son équivalent non concurrent. C'est le critère de cohérence le plus fort, celui privilégier par les applications d'édition collaborative grand public. + +La cohérence séquentielle a était découverte au début de l'informatique distribuée par Lamport \cite{lamport_how_1979,lamport_interprocess_1986} lorsqu'il travaillait pour Intel sur les premiers processeurs multicœur. +À l'époque les processeurs atteignait une limite en termes de précision de gravure. Et est naturellement venu l'idée de mettre plusieurs cœurs dans une même puce afin de répartir la tâche et de gagner en performance. Il a fallu réfléchir au comportement qu'on attendait d'une telle architecture afin d'éviter au maximum les conflits et la perte de temps lié à la résolution de problèmes de synchronisation des cœurs entre eux. + +La cohérence séquentielle peut être découpée en 3 propriétés que sont : la validité, la localité d'état et la convergence. On dit que la cohérence séquentielle satisfait ces trois propriétés, on la considère ainsi comme étant un critère de cohérence fort. Les critères de cohérences ne satisfaisant qu'un seul ou deux de ces propriétés sont donc qualifiés de cohérence faible, proposant des compromis diminuant la cohérence d'une application, mais présentant des avantages sur l'efficacité algorithmique. + +\paragraph{La convergence} + +La convergence est la première propriété que nous allons définir. Elle est illustrée par la figure \ref{convergence}. + +\begin{figure}[!h] + \centering + \resizebox*{.4\textwidth}{!}{\input{schemas/convergence.tex}} + \caption{Exemple d'histoire convergente} + \label{convergence} +\end{figure} + +La convergence se concentre seulement sur l'état final de l'histoire concurrente sans jamais prendre en compte les opérations précédentes. Pour qu'une histoire satisfasse le critère de convergence, elle doit admettre un état unique justifiant les lectures finales d'un système. + +En d'autres termes, si tous les membres du réseau arrêtent d'écrire et réalisent en boucle sur une durée infinie des opérations de lecture. Alors toutes les opérations de lectures doivent fournir un résultat identique dépendant d'un seul et même état. + +Dans la figure \ref{convergence} on constate que les lectures finales ne prennent pas en compte les opérations précédentes. Ce qui se traduit du point de vue du nœud 0 par une non prise en compte de ses soumissions, et du point de vue du nœud 1 comme un retour en arrière de son état après la soumission d'un événement. Mais aucune opération de suppression n'a jamais était émise. +Ainsi il n'existe aucune linéarisation possible permettant de justifier cet état final. + +Si nous voulions le traduire de manière concrète à la problématique d'un éditeur collaboratif, cela reviendrait en un document qui se verrait modifier dans un premier temps, puis sur lequel ces mêmes modifications serait supprimées sans raison apparente pour l'utilisateur. Cela ne permet donc pas de garantir une cohérence du point de vue de l'expérience utilisateur, mais seulement une cohérence sur l'état final des données. + + +\paragraph{La Localité d'état} +Là où la convergence assure la cohérence des données à la fin de l'exécution, la localité d'état assure la cohérence du point de vue du nœud. + +On le formalise donc comme l'existence pour chaque nœud d'une linéarisation incluant l'ensemble des opérations de lecture de ce nœud ainsi qu'un sous-ensemble des écritures du système. + +\begin{figure}[!h] + \centering + \resizebox*{.4\textwidth}{!}{\input{schemas/localiteetat.tex}} + \caption{Exemple d'histoire respectant la localité d'état} + \label{le} +\end{figure} + +Dans le cas de la figure \ref{le} on observe bel et bien une histoire qui respecte la localité d'état. Les lectures du nœud 0 peuvent être linéarisées tel que $R/\{\emptyset\} \bullet I(1) \bullet R/\{1\}$. Il en est de même pour le nœud 1 via la linéarisation $R/\{\emptyset\} \bullet I(0) \bullet R/\{0\}$. + +Ce qui nous interpelle ici, c'est que nous avons omis les écritures locales à chaque nœud afin de préserver la cohérence des lectures. Dans la localité d'état, il est plus important que les observations de l'utilisateur soient cohérentes, plutôt que de conserver les actions réalisées par ce dernier. +Les informations peuvent très bien être divergente in fine puisque ce qui compte, c'est la cohérence de l'expérience et non pas celle du système. + +En appliquant le critère à notre problématique d'éditeur collaboratif. Cela reviendrait à un document qui aura toujours du sens du point de vue de l'utilisateur, mais risquant de diverger entre les différents nœuds. Créant ainsi une ramification des versions du document. On peut l'assimiler au fonctionnement d'un dépôt git mettant à jour seulement les fichiers n'ayant jamais était édité par l'utilisateur, s'affranchissant ainsi de tout conflit à régler qui viendrait perturber la cohérence locale. + +\paragraph{La Validité} + +La dernière propriété à être présentée est la Validité. Elle assure que les lectures finales résultent d'une linéarisation de l'ensemble des opérations d'écritures. + +\begin{figure}[!h] + \centering + \resizebox*{.4\textwidth}{!}{\input{schemas/validite.tex}} + \caption{Exemple d'histoire respectant la validité} + \label{validite} +\end{figure} + +Dans la figure \ref{validite} cela se traduit par la lecture $R/\{1\}$ linéarisable par $D/(1) \bullet I(1) \bullet R/\{1\}$ bien que cet ordre n'est pas cohérent au vu de la première lecture du nœud 1. En effet, elle force à croire que l'insertion est déjà prise en compte avant même que l'opération de suppression ne soit soumise. + +La validité ne peut donc pas permettre la préservation d'une cohérence locale ou convergente. Mais elle assure que le résultat est cohérent dépendamment des opérations d'écritures émises dans le système. + +Dans notre contexte imaginons que deux utilisateurs modifie la même partie du document en local. Si leurs travaux vise à être fusionnés, alors il risque d'y avoir deux fois la même ligne, ou bien un entrelacement des deux lignes. Mais en respectant la validité on assure qu'en aucun cas l'utilisateur se verra supprimer ou refuser son opération par l'algorithme. + +\subsection{Quelle direction pour notre sujet ?} + +Perrin \cite{perrin_concurrence_2017} propose une cartographie des différents critères de cohérences connus. +Elle prend la forme d'une carte en deux dimensions comportant 3 zones s'entrelaçant comme montré dans la figure \ref{perrin}. Chaque zone correspondant à une propriété définit plus haut. + +\begin{figure}[h!] + \centering + \resizebox{0.4\columnwidth}{!}{ + \includegraphics{images/carte_criteres.png} + } + \caption{Cartographie des critères de cohérences par Mathieu Perrin} + \label{perrin} +\end{figure} + +L'intersection de ces 3 zones correspond donc à la cohérence forte. Et le reste du schéma à des critères de cohérence faibles. + +Pour savoir où chercher le critère de cohérence nécessaire à la résolution de notre problématique, nous devons déterminer quelles sont les propriétés nécessaires à la réalisation d'un bon éditeur collaboratif. + +Ainsi la convergence semble être une propriété essentielle pour notre produit. En effet, on attend d'un bon éditeur de document qu'il nous permette de réaliser, une fois les sessions d'éditions terminées, un document unique et non pas plusieurs versions divergentes. + +Pour rester dans la cohérence faible, nous devons au choix respecter soit la validité, soit la localité d'état. + +Dans le premier cas, nous prenons parti de tolérer des remaniements de l'histoire lors des synchronisations provoquant le non-respect de la cohérence du document du point de vue de l'utilisateur. Cela risque de créer des insertions et suppressions arbitraires et des annulations d'opérations pourtant bien retourner à l'utilisateur. L'expérience semblera incohérente et illogique pour ce dernier. + +Dans le second on autorise le système à réaliser des opérations n'ayant jamais était émise ou omettre d'autres opérations afin de préserver la cohérence locale. Dégradant par la même occasion l'expérience de l'utilisateur en lui donnant une sensation de "retour en arrière" sur ses opérations. + +\subsection{Accepter de la non-convergence avec les CRDTs} + +Une autre solution est néanmoins possible, en utilisant un type de donnée particulier. En effet, il est possible d'accepter une non-convergence des états si le type de données que nous échangeons permet déjà d'assurer une convergence. C'est possible en utilisant des CRDTs que nous allons définir. + +Les CRDTs (Conflict-free Replicated Data Types) \cite{shapiro2011conflict} sont des structures de données conçues pour fonctionner efficacement dans des environnements distribués, où plusieurs répliques des données peuvent être modifiées simultanément. Ils garantissent la convergence des données répliquées sans nécessiter d'ordonnanceur intermédiaire. + +Le principe fondamental des CRDTs repose sur la notion d'opérations commutatives et associatives. En d'autres termes, les opérations sur les données répliquées peuvent être effectuées dans n'importe quel ordre sans entraîner de conflits ou de résultats incohérents. Cela permet aux applications utilisant des CRDTs de soumettre des opérations concurrentes sans jamais avoir à ne résoudre de conflit. + +Les CRDTs peuvent nous permettre dans notre cas, de s'affranchir du critère de convergence et ainsi privilégier la validité et la localité d'état qui sont les deux impactants l'expérience de l'utilisateur d'un point de vue local. + +\subsubsection{Quel est donc le critère le plus adapté ?} + +En étudiant la cartographie de Perrin (figure \ref{perrin}), il semble que les critères les plus pertinents sont la cohérence pipeline ($PC$), la cohérence causale ($CC$) et la cohérence causale forte ($SCC$). Au moment où j'écris ce rapport je n'ai pas encore déterminé lequel de ces 3 critères est le plus pertinent pour notre problématique. Néanmoins, nous pouvons présenter la cohérence pipeline qui est la base des deux autres critères, ce qui donne une idée d'à quoi un système respectant à la fois la Validité et la Localité d'état peut ressembler. + +\paragraph{Cohérence Pipeline} + +La cohérence pipeline fonctionne sur une logique du "premier arrivé premier servit" comme illustré dans la figure \ref{pipeline}. + +\begin{figure}[!h] + \centering + \resizebox*{.4\textwidth}{!}{\input{schemas/pipeline.tex}} + \caption{Exemple d'histoire respectant la cohérence pipeline} + \label{pipeline} +\end{figure} + +Ce critère ne garantit en effet pas la convergence, puisque les opérations peuvent arriver dans des ordres différents d'un nœud à l'autre. C'est problématique dans le cas d'un ensemble pouvant être soumis à des insertions et des suppressions comme ici. Mais dans une optique d'utilisation avec des CRDTs il n'y a pas nécessité à retirer des éléments. Notre ensemble stockera simplement un ensemble de CRDTs qui, peu importe leurs ordres d'arrivés reproduira systématiquement la même histoire. Ainsi nous aurions une exécution plus proche de celle de la figure \ref{pipeline_crdt}. + +\begin{figure}[!h] + \centering + \resizebox*{.5\textwidth}{!}{\input{schemas/pipeline_crdt.tex}} + \caption{Exemple d'histoire respectant la cohérence pipeline utilisant des CRDTs} + \label{pipeline_crdt} +\end{figure} + +\subsection{Appliquer un système reparti à un environnement malicieux} + +Une partie de mon travail à étais d'étudier le lien entre l'acceptation de critère de cohérences faibles et les risques de comportements malicieux. + +J'ai donc formulé à ce moment-là deux hypothèses possibles : + +Dans la première le fait de baisser le critère de cohérence ouvre la porte à plus de risques de comportement malicieux. Cette hypothèse semble être celle la plus étudiée. \cite{van_der_linde_practical_2020,kumar_fault-tolerant_2019} Mais les études sur le sujet semble concentrer les comportements à des implémentations satisfaisant les critères de cohérences et non pas au critère lui-même. Rendant ainsi difficile l'attribution de comportements malicieux à un critère de cohérence particulier. Il est compliqué de discerner si ces comportements ne relèvent pas simplement d'une erreur protocolaire dans l'implémentation. + +La deuxième hypothèse consiste à dire que puisque le critère de cohérence baisse, on accepte plus de situations qui serait considérés problématiques et malicieuse en temps normal. Ce qui rend par cette occasion un système à faible cohérence plus robuste. +Je n'ai pas trouvé de littérature appuyant particulièrement cette seconde hypothèse. + +\subsection{Les outils et pistes pour le développement d'un produit final} + +Le développement d'un éditeur collaboratif sans autorité de contrôle implique nécessairement la mise en place d'un réseau en pair à pair. Je me suis donc posé la question de la faisabilité réelle d'un réseau P2P à travers Internet dans le contexte d'une entreprise. + +Le frein principal est la présence de NAT du côté du fournisseur d'accès puis de l'entreprise. Dans des systèmes d'information complexe il peut même y avoir plusieurs profondeurs de NAT au sein d'une seule organisation. Le NAT (Network Address Translation) à pour but de faire une translation d'adresse entre l'adresse publique de l'entreprise, routable via Internet, avec l'adresse privé de la machine, routable seulement sur le réseau local de l'entreprise. +Cette couche rend impossible pour une personne extérieure au réseau de l'entreprise de contacter un client cacher derrière un NAT sans que celui-ci soit configurer à cet usage. + +Ce fonctionnement est particulièrement problématique dans le contexte d'une application en pair à pair. La solution qui fait néanmoins consensus est d'adopter la technique du hôle-punching. \cite{ford2005peer} +Le hôle-punching consiste en un détournement du fonctionnement du protocole UDP afin de réaliser une connexion en pair à pair. + +Pour ce faire nous avons besoin d'un serveur exposé sur Internet et connu des pairs. Lorsqu'un des nœuds source veut entrer en contact avec un nœud cible, il demande au serveur la mise en relation avec un autre membre du réseau. +Le serveur envoie donc l'adresse IP et le port du NAT derrière lequel se cache le nœud cible. + +Dans le même temps, le serveur prévient le nœud cible de l'arrivée du nœud source. Une fois que les deux nœuds possèdent mutuellement l'adresse de l'un et de l'autre. Ils initient chacun auprès de leurs NAT une connexion l'un vers l'autre. Le NAT du nœud source s'attend donc bien à recevoir un message du NAT du nœud cible et vice-verse. + +Cette technique nous permet donc d'envisager le fonctionnement d'un tel système en pair à pair dans un contexte réel d'entreprise. + +La seule limitation qui pourrait se retrouver en désaccord avec la politique zero-trust de parsec est la mise en place d'un serveur dit de "rendez-vous" qui devrait gérer un annuaire des adresses IP de chaque nœud du réseau. Mais ce sont les seules informations auquel le serveur à accès puisque le reste de l'échange se réalise directement en pair à pair. Le serveur Parsec possédant déjà l'information de l'adresse IP de par les logs d'accès au stockage de fichier, cette solution ne nécessite aucune information supplémentaire de la part du serveur Parsec. Elle reste donc compatible avec les primitives de sécurités et de confidentialités liées à Parsec. \ No newline at end of file