Alexandre Janniaux 6 gadi atpakaļ
vecāks
revīzija
e3afada829

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
images/Nginx_logo.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1940 - 0
images/Tux.svg


+ 270 - 0
images/broker.svg

@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="167.48697mm"
+   height="121.19292mm"
+   viewBox="0 0 167.48697 121.19292"
+   version="1.1"
+   id="svg17413"
+   inkscape:version="0.92.2 2405546, 2018-03-11"
+   sodipodi:docname="broker.svg">
+  <defs
+     id="defs17407">
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker18516"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path18514"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker18292"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path18290"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker18100"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path18098"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path5211"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.0568359"
+     inkscape:cx="252.85248"
+     inkscape:cy="226.57618"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1918"
+     inkscape:window-height="934"
+     inkscape:window-x="0"
+     inkscape:window-y="145"
+     inkscape:window-maximized="0"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <sodipodi:guide
+       position="124.62586,18.815349"
+       orientation="0,1"
+       id="guide18378"
+       inkscape:locked="false" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata17410">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-24.785067,-78.669632)">
+    <rect
+       style="opacity:1;fill:#f4f4f4;fill-opacity:1;stroke:none;stroke-width:0.76499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect18411"
+       width="167.48697"
+       height="121.19292"
+       x="24.785067"
+       y="78.669632" />
+    <rect
+       style="opacity:1;fill:#dadada;fill-opacity:1;stroke:#000000;stroke-width:1.06500006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect17958"
+       width="66.093513"
+       height="42.560215"
+       x="76.107681"
+       y="85.200333" />
+    <rect
+       style="opacity:1;fill:#dadada;fill-opacity:1;stroke:#000000;stroke-width:1.06500006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect17960"
+       width="52.073677"
+       height="33.046757"
+       x="30.042505"
+       y="162.30942" />
+    <rect
+       y="162.30942"
+       x="135.87581"
+       height="33.046757"
+       width="52.073677"
+       id="rect17964"
+       style="opacity:1;fill:#dadada;fill-opacity:1;stroke:#000000;stroke-width:1.06500006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.76499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+       d="m 55.232474,162.45935 c 14.734477,-9.78968 25.328248,-16.80662 32.904594,-21.89636 L 107.45549,127.585"
+       id="path17966"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="csc" />
+    <path
+       sodipodi:nodetypes="csc"
+       inkscape:connector-curvature="0"
+       id="path18096"
+       d="m 161.3933,162.45935 c -14.73448,-9.78968 -25.32826,-16.80662 -32.90461,-21.89636 L 109.17026,127.585"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.76499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker18100)" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="108.42287"
+       y="107.75796"
+       id="text18368"><tspan
+         sodipodi:role="line"
+         id="tspan18366"
+         x="108.42287"
+         y="107.75796"
+         style="font-size:8.46666622px;text-align:center;text-anchor:middle;stroke-width:0.26458332px">Orchestrateur</tspan></text>
+    <text
+       id="text18372"
+       y="181.05296"
+       x="56.563484"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       xml:space="preserve"><tspan
+         style="font-size:8.46666622px;text-align:center;text-anchor:middle;stroke-width:0.26458332px"
+         y="181.05296"
+         x="56.563484"
+         id="tspan18370"
+         sodipodi:role="line">Worker</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="162.9568"
+       y="180.87401"
+       id="text18376"><tspan
+         sodipodi:role="line"
+         id="tspan18374"
+         x="162.9568"
+         y="180.87401"
+         style="font-size:8.46666622px;text-align:center;text-anchor:middle;stroke-width:0.26458332px">Worker</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="62.285828"
+       y="138.40096"
+       id="text18405"><tspan
+         sodipodi:role="line"
+         id="tspan18403"
+         x="62.285828"
+         y="138.40096"
+         style="text-align:center;text-anchor:middle;stroke-width:0.26458332px">commandes</tspan><tspan
+         sodipodi:role="line"
+         x="62.285828"
+         y="144.18872"
+         style="text-align:center;text-anchor:middle;stroke-width:0.26458332px"
+         id="tspan18432">+</tspan><tspan
+         sodipodi:role="line"
+         x="62.285828"
+         y="149.97647"
+         style="text-align:center;text-anchor:middle;stroke-width:0.26458332px"
+         id="tspan18434">RPC</tspan></text>
+    <text
+       id="text18442"
+       y="138.40096"
+       x="158.42184"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       xml:space="preserve"><tspan
+         style="text-align:center;text-anchor:middle;stroke-width:0.26458332px"
+         y="138.40096"
+         x="158.42184"
+         id="tspan18436"
+         sodipodi:role="line">commandes</tspan><tspan
+         id="tspan18438"
+         style="text-align:center;text-anchor:middle;stroke-width:0.26458332px"
+         y="144.18872"
+         x="158.42184"
+         sodipodi:role="line">+</tspan><tspan
+         id="tspan18440"
+         style="text-align:center;text-anchor:middle;stroke-width:0.26458332px"
+         y="149.97647"
+         x="158.42184"
+         sodipodi:role="line">RPC</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.96499997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker18516)"
+       d="m 107.98466,127.585 v 54.00169 h 27.70732"
+       id="path18492"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.965;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker18292)"
+       d="M 107.45549,181.58669 H 82.61689"
+       id="path18494"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="103.25399"
+       y="188.01054"
+       id="text18568"><tspan
+         sodipodi:role="line"
+         id="tspan18566"
+         x="103.25399"
+         y="188.01054"
+         style="stroke-width:0.26458332px">RPC</tspan></text>
+  </g>
+</svg>

+ 533 - 0
images/dacl.svg

@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="238.27626mm"
+   height="144.5885mm"
+   viewBox="0 0 238.27626 144.5885"
+   version="1.1"
+   id="svg7949"
+   inkscape:version="0.92.2 2405546, 2018-03-11"
+   sodipodi:docname="dacl.svg">
+  <defs
+     id="defs7943">
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker10122"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path10120"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker9998"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path9996"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker9922"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path9920"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker9852"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path9850"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker9788"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path9786"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker9646"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path9644"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker9498"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         id="path9496"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker9326"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path9324"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker9218"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path9216"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker8928"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path8926"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path5211"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend-4"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         id="path5211-2"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.1552734"
+     inkscape:cx="311.23471"
+     inkscape:cy="289.8408"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1918"
+     inkscape:window-height="1006"
+     inkscape:window-x="0"
+     inkscape:window-y="73"
+     inkscape:window-maximized="0"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <metadata
+     id="metadata7946">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(49.801307,10.677023)">
+    <rect
+       style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:0.8659122;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect10290"
+       width="29.142868"
+       height="82.375336"
+       x="137.06285"
+       y="-77.500526"
+       transform="matrix(0.90649802,0.42221006,-0.48011864,0.87720356,0,0)" />
+    <rect
+       transform="matrix(0.90649802,0.42221006,-0.48011864,0.87720356,0,0)"
+       y="-59.589268"
+       x="99.849548"
+       height="82.375336"
+       width="29.142868"
+       id="rect10288"
+       style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:0.8659122;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:0.8659122;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect10286"
+       width="29.142868"
+       height="82.375336"
+       x="62.63623"
+       y="-41.677982"
+       transform="matrix(0.90649802,0.42221006,-0.48011864,0.87720356,0,0)" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1"
+       id="rect8494"
+       width="23.36027"
+       height="17.176668"
+       x="25.879517"
+       y="5.1773338" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="35.727474"
+       y="24.234488"
+       id="text8498"><tspan
+         sodipodi:role="line"
+         id="tspan8496"
+         x="35.727474"
+         y="28.331137"
+         style="stroke-width:0.26458332px" /></text>
+    <rect
+       y="5.1773338"
+       x="68.212852"
+       height="17.176668"
+       width="23.36027"
+       id="rect8500"
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1"
+       id="rect8502"
+       width="23.36027"
+       height="17.176668"
+       x="110.54617"
+       y="5.1773338" />
+    <rect
+       y="5.1773338"
+       x="152.87953"
+       height="17.176668"
+       width="23.36027"
+       id="rect8504"
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1"
+       id="rect8494-4"
+       width="23.360271"
+       height="17.176668"
+       x="46.756332"
+       y="45.648071" />
+    <rect
+       y="45.648071"
+       x="89.089668"
+       height="17.176668"
+       width="23.360271"
+       id="rect8500-6"
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1"
+       id="rect8502-9"
+       width="23.360271"
+       height="17.176668"
+       x="131.42299"
+       y="45.648071" />
+    <rect
+       y="77.398071"
+       x="46.756332"
+       height="17.176668"
+       width="23.360271"
+       id="rect8527"
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1"
+       id="rect8529"
+       width="23.360271"
+       height="17.176668"
+       x="89.089668"
+       y="77.398071" />
+    <rect
+       y="77.398071"
+       x="131.42299"
+       height="17.176668"
+       width="23.360271"
+       id="rect8531"
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       y="116.30231"
+       x="25.879517"
+       height="17.176668"
+       width="23.36027"
+       id="rect8533"
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1"
+       id="rect8535"
+       width="23.36027"
+       height="17.176668"
+       x="68.212852"
+       y="116.30231" />
+    <rect
+       y="116.30231"
+       x="110.54617"
+       height="17.176668"
+       width="23.36027"
+       id="rect8537"
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1"
+       id="rect8539"
+       width="23.36027"
+       height="17.176668"
+       x="152.87953"
+       y="116.30231" />
+    <path
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+       d="M 36.872584,116.53046 58.629697,94.544321"
+       id="path8541"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend-4)"
+       d="M 79.993315,116.81727 101.75043,94.831128"
+       id="path8541-2"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path8924"
+       d="M 59.700411,94.831127 81.457516,116.81727"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker9498)" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path9212"
+       d="M 122.32666,116.81727 144.08379,94.831128"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker9218)" />
+    <path
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker8928)"
+       d="m 102.03375,94.83113 21.75712,21.98614"
+       id="path9214"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path9322"
+       d="m 143.57973,94.54432 21.75712,21.98614"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker9326)" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path9632"
+       d="M 58.629698,45.379755 36.872585,23.393625"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker9646)" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path9634"
+       d="M 101.75043,45.092948 79.993315,23.106814"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker9998)" />
+    <path
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker9788)"
+       d="M 59.700411,45.092949 81.457516,23.106815"
+       id="path9636"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker9922)"
+       d="M 144.08379,45.092946 122.32666,23.106816"
+       id="path9638"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path9640"
+       d="M 102.03375,45.622113 123.79087,23.635982"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker10122)" />
+    <path
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker9852)"
+       d="M 143.57973,45.379756 165.33685,23.393625"
+       id="path9642"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 59.087741,77.13863 c 0,-14.428401 0,-14.428401 0,-14.428401"
+       id="path10292"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path10294"
+       d="m 59.087741,77.13863 c 0,-14.428401 0,-14.428401 0,-14.428401"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 100.36274,77.13863 c 0,-14.428401 0,-14.428401 0,-14.428401"
+       id="path10296"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path10298"
+       d="m 143.75441,77.13863 c 0,-14.428401 0,-14.428401 0,-14.428401"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:0.66500002;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect10300"
+       width="57.484589"
+       height="17.405691"
+       x="-49.468807"
+       y="4.7519407" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="-38.704765"
+       y="15.531643"
+       id="text10304"><tspan
+         sodipodi:role="line"
+         id="tspan10302"
+         x="-38.704765"
+         y="15.531643"
+         style="font-size:8.46666622px;stroke-width:0.26458332px">Groupes</tspan></text>
+    <rect
+       y="44.439445"
+       x="-49.468807"
+       height="17.405691"
+       width="57.484589"
+       id="rect10306"
+       style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:0.66500002;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       id="text10310"
+       y="55.219147"
+       x="-34.471428"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       xml:space="preserve"><tspan
+         style="font-size:8.46666622px;stroke-width:0.26458332px"
+         y="55.219147"
+         x="-34.471428"
+         id="tspan10308"
+         sodipodi:role="line">Tokens</tspan></text>
+    <rect
+       style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:0.66500002;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect10312"
+       width="57.484589"
+       height="17.405691"
+       x="-49.468807"
+       y="76.189445" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="-41.350601"
+       y="86.969139"
+       id="text10316"><tspan
+         sodipodi:role="line"
+         id="tspan10314"
+         x="-41.350601"
+         y="86.969139"
+         style="font-size:8.46666622px;stroke-width:0.26458332px">Processus</tspan></text>
+    <rect
+       y="115.87694"
+       x="-49.468807"
+       height="17.405691"
+       width="57.484589"
+       id="rect10318"
+       style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:0.66500002;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       id="text10322"
+       y="126.65665"
+       x="-46.113106"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       xml:space="preserve"><tspan
+         style="font-size:8.46666622px;stroke-width:0.26458332px"
+         y="126.65665"
+         x="-46.113106"
+         id="tspan10320"
+         sodipodi:role="line">Filemapping</tspan></text>
+  </g>
+</svg>

+ 272 - 0
images/deadlock_double_rpc.svg

@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="183.23763mm"
+   height="117.69309mm"
+   viewBox="0 0 183.23763 117.69309"
+   version="1.1"
+   id="svg11000"
+   inkscape:version="0.92.2 2405546, 2018-03-11"
+   sodipodi:docname="deadlock_double_rpc.svg">
+  <defs
+     id="defs10994">
+    <marker
+       inkscape:stockid="DotL"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="DotL"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5269"
+         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+         style="fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(0.8,0,0,0.8,5.92,0.8)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="CurvyCross"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="CurvyCross"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <g
+         id="g5402"
+         transform="scale(0.6)"
+         style="fill:#0b0b0b;fill-opacity:1;stroke:#0b0b0b;stroke-opacity:1">
+        <path
+           id="path5398"
+           d="m 4.625493,-5.0456926 c -2.76,0 -5.00000002,2.24 -5.00000002,5.00000002 0,2.75999998 2.24000002,4.99999998 5.00000002,4.99999998"
+           style="fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.00000003pt;stroke-opacity:1"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path5400"
+           d="m -5.4129913,-5.0456926 c 2.76,0 4.99999999,2.24 4.99999999,5.00000002 0,2.75999998 -2.23999999,4.99999998 -4.99999999,4.99999998"
+           style="fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.00000003pt;stroke-opacity:1"
+           inkscape:connector-curvature="0" />
+      </g>
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker12841"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path12839"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker11679"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path11677"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path5211"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5208"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(0.8,0,0,0.8,10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="3.4175362"
+     inkscape:cx="173.77994"
+     inkscape:cy="227.28587"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1918"
+     inkscape:window-height="952"
+     inkscape:window-x="0"
+     inkscape:window-y="127"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata10997">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-1.4352814,-33.865028)">
+    <rect
+       style="opacity:1;fill:#e7e7e7;fill-opacity:1;stroke:none;stroke-width:0.96499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13355"
+       width="183.23763"
+       height="117.69309"
+       x="1.4352814"
+       y="33.865028" />
+    <circle
+       style="opacity:1;fill:#c3c3c3;fill-opacity:1;stroke:#000000;stroke-width:0.66499996;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path11545"
+       cx="89.824707"
+       cy="62.929482"
+       r="27.868385" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="69.132736"
+       y="65.441223"
+       id="text11549"><tspan
+         sodipodi:role="line"
+         id="tspan11547"
+         x="69.132736"
+         y="65.441223"
+         style="font-size:8.46666622px;stroke-width:0.26458332px">Eventloop</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.06500006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+       d="m 117.6931,63.049089 h 39.23102 v 18.419449"
+       id="path11551"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <rect
+       style="opacity:1;fill:#c3c3c3;fill-opacity:1;stroke:#0b0b0b;stroke-width:1.06500006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect11649"
+       width="48.799576"
+       height="27.031137"
+       x="132.04591"
+       y="81.946968" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="147.83401"
+       y="98.69191"
+       id="text11653"><tspan
+         sodipodi:role="line"
+         id="tspan11651"
+         x="147.83401"
+         y="98.69191"
+         style="font-size:8.46666622px;stroke-width:0.26458332px">RPC</tspan></text>
+    <text
+       id="text11657"
+       y="58.025597"
+       x="128.93614"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       xml:space="preserve"><tspan
+         style="font-size:8.46666622px;stroke-width:0.26458332px"
+         y="58.025597"
+         x="128.93614"
+         id="tspan11655"
+         sodipodi:role="line">Message</tspan></text>
+    <path
+       sodipodi:nodetypes="ccc"
+       inkscape:connector-curvature="0"
+       id="path11665"
+       d="M 53.011831,61.374594 H 30.040047 v 18.419449"
+       style="fill:none;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.06500006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotL)" />
+    <rect
+       y="80.7509"
+       x="6.9371963"
+       height="27.031137"
+       width="48.799576"
+       id="rect11667"
+       style="opacity:1;fill:#c3c3c3;fill-opacity:1;stroke:#0b0b0b;stroke-width:1.06500006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       id="text11671"
+       y="97.495842"
+       x="22.725298"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       xml:space="preserve"><tspan
+         style="font-size:8.46666622px;stroke-width:0.26458332px"
+         y="97.495842"
+         x="22.725298"
+         id="tspan11669"
+         sodipodi:role="line">RPC</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="3.8274245"
+       y="56.829529"
+       id="text11675"><tspan
+         sodipodi:role="line"
+         id="tspan11673"
+         x="3.8274245"
+         y="56.829529"
+         style="font-size:8.46666622px;stroke-width:0.26458332px">Message</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.96499997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker12841)"
+       d="m 156.68491,109.21732 v 25.11742 H 29.423272 v -26.55271"
+       id="path13161"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="77.889954"
+       y="145.86963"
+       id="text11675-8"><tspan
+         sodipodi:role="line"
+         id="tspan11673-8"
+         x="77.889954"
+         y="145.86963"
+         style="font-size:8.46666622px;stroke-width:0.26458332px">Message</tspan></text>
+  </g>
+</svg>

+ 332 - 0
images/deadlock_rpc_no_loop.svg

@@ -0,0 +1,332 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="183.23763mm"
+   height="111.47354mm"
+   viewBox="0 0 183.23763 111.47354"
+   version="1.1"
+   id="svg11000"
+   inkscape:version="0.92.2 2405546, 2018-03-11"
+   sodipodi:docname="deadlock_rpc_no_loop.svg">
+  <defs
+     id="defs10994">
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker15167"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DotL">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(0.8,0,0,0.8,5.92,0.8)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+         id="path15165" />
+    </marker>
+    <marker
+       inkscape:stockid="DotL"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="DotL"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path5269"
+         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+         style="fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(0.8,0,0,0.8,5.92,0.8)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="CurvyCross"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="CurvyCross"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <g
+         id="g5402"
+         transform="scale(0.6)"
+         style="fill:#0b0b0b;fill-opacity:1;stroke:#0b0b0b;stroke-opacity:1">
+        <path
+           id="path5398"
+           d="m 4.625493,-5.0456926 c -2.76,0 -5.00000002,2.24 -5.00000002,5.00000002 0,2.75999998 2.24000002,4.99999998 5.00000002,4.99999998"
+           style="fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.00000003pt;stroke-opacity:1"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path5400"
+           d="m -5.4129913,-5.0456926 c 2.76,0 4.99999999,2.24 4.99999999,5.00000002 0,2.75999998 -2.23999999,4.99999998 -4.99999999,4.99999998"
+           style="fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.00000003pt;stroke-opacity:1"
+           inkscape:connector-curvature="0" />
+      </g>
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker12841"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path12839"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker11679"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path11677"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5208"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(0.8,0,0,0.8,10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker12841-2"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path12839-8"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker15167-8"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DotL">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(0.8,0,0,0.8,5.92,0.8)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+         id="path15165-3" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.1060547"
+     inkscape:cx="155.01304"
+     inkscape:cy="227.25872"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1918"
+     inkscape:window-height="970"
+     inkscape:window-x="0"
+     inkscape:window-y="109"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata10997">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-1.4352814,-40.084583)">
+    <rect
+       style="opacity:1;fill:#e7e7e7;fill-opacity:1;stroke:none;stroke-width:0.96499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13355"
+       width="183.23763"
+       height="111.47354"
+       x="1.4352814"
+       y="40.084583" />
+    <rect
+       style="opacity:1;fill:#c3c3c3;fill-opacity:1;stroke:#0b0b0b;stroke-width:1.06500006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect11649"
+       width="48.799576"
+       height="27.031137"
+       x="132.04591"
+       y="81.946968" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="156.14157"
+       y="94.987747"
+       id="text11653"><tspan
+         sodipodi:role="line"
+         id="tspan11651"
+         x="156.14157"
+         y="94.987747"
+         style="font-size:8.46666622px;text-align:center;text-anchor:middle;stroke-width:0.26458332px">RPC</tspan><tspan
+         sodipodi:role="line"
+         x="156.14157"
+         y="101.77209"
+         style="font-size:8.46666622px;text-align:center;text-anchor:middle;stroke-width:0.26458332px"
+         id="tspan16740">Caller</tspan></text>
+    <path
+       sodipodi:nodetypes="ccc"
+       inkscape:connector-curvature="0"
+       id="path11665"
+       d="M 149.41492,61.374594 H 30.040047 v 18.419449"
+       style="fill:none;fill-rule:evenodd;stroke:#0b0b0b;stroke-width:1.06500006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotL)" />
+    <rect
+       y="80.7509"
+       x="6.9371963"
+       height="27.031137"
+       width="48.799576"
+       id="rect11667"
+       style="opacity:1;fill:#c3c3c3;fill-opacity:1;stroke:#0b0b0b;stroke-width:1.06500006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       id="text11671"
+       y="97.495842"
+       x="22.725298"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       xml:space="preserve"><tspan
+         style="font-size:8.46666622px;stroke-width:0.26458332px"
+         y="97.495842"
+         x="22.725298"
+         id="tspan11669"
+         sodipodi:role="line">RPC</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="14.113609"
+       y="52.28447"
+       id="text11675"><tspan
+         sodipodi:role="line"
+         id="tspan11673"
+         x="14.113609"
+         y="52.28447"
+         style="font-size:8.46666622px;stroke-width:0.26458332px">Message</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.96499997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker12841)"
+       d="M 68.415088,134.33474 H 29.423272 v -26.55271"
+       id="path13161"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="10.910143"
+       y="143.23828"
+       id="text11675-8"><tspan
+         sodipodi:role="line"
+         id="tspan11673-8"
+         x="10.910143"
+         y="143.23828"
+         style="font-size:8.46666622px;stroke-width:0.26458332px">Message</tspan></text>
+    <rect
+       y="121.2976"
+       x="68.4151"
+       height="27.031137"
+       width="48.799576"
+       id="rect11667-9"
+       style="opacity:1;fill:#c3c3c3;fill-opacity:1;stroke:#0b0b0b;stroke-width:1.06500006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.96499997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker12841-2)"
+       d="m 156.62342,108.59709 v 26.3135 l -37.31732,0.23921"
+       id="path13161-8"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="138.411"
+       y="143.9559"
+       id="text11675-8-8"><tspan
+         sodipodi:role="line"
+         id="tspan11673-8-6"
+         x="138.411"
+         y="143.9559"
+         style="font-size:8.46666622px;stroke-width:0.26458332px">Message</tspan></text>
+    <text
+       id="text11671-8"
+       y="139.09122"
+       x="83.935371"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       xml:space="preserve"><tspan
+         style="font-size:8.46666622px;stroke-width:0.26458332px"
+         y="139.09122"
+         x="83.935371"
+         id="tspan11669-3"
+         sodipodi:role="line">RPC</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.06500006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker15167)"
+       d="M 56.932839,94.146853 H 77.983633 V 114.00158"
+       id="path15157"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.06500006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker15167-8)"
+       d="m 100.76295,120.84288 v -21.0508 h 19.85472"
+       id="path15157-3"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="77.983627"
+       y="90.080215"
+       id="text16744"><tspan
+         sodipodi:role="line"
+         id="tspan16742"
+         x="77.983627"
+         y="90.080215"
+         style="font-size:6.3499999px;stroke-width:0.26458332px">Blocage</tspan></text>
+  </g>
+</svg>

+ 313 - 0
images/eventloop.svg

@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="365.96884mm"
+   height="119.29381mm"
+   viewBox="0 0 365.96885 119.29381"
+   version="1.1"
+   id="svg18633"
+   inkscape:version="0.92.2 2405546, 2018-03-11"
+   sodipodi:docname="eventloop.svg">
+  <defs
+     id="defs18627">
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker23982"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path23980"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker20069"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path20067"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker20003"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path20001"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker19533"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path19531"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.7298944"
+     inkscape:cx="452.96333"
+     inkscape:cy="-43.472801"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1918"
+     inkscape:window-height="916"
+     inkscape:window-x="0"
+     inkscape:window-y="163"
+     inkscape:window-maximized="0"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     showguides="true"
+     inkscape:guide-bbox="true">
+    <sodipodi:guide
+       position="120.71096,6.8689583"
+       orientation="0,1"
+       id="guide23718"
+       inkscape:locked="false" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata18630">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-11.821,-81.206244)">
+    <rect
+       style="opacity:1;fill:#eaeaea;fill-opacity:1;stroke:#000000;stroke-width:0.96499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect21782"
+       width="179.42604"
+       height="117.75399"
+       x="197.8813"
+       y="81.688744" />
+    <rect
+       style="opacity:1;fill:#eaeaea;fill-opacity:1;stroke:#000000;stroke-width:0.96499991;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect21363"
+       width="174.81224"
+       height="118.32881"
+       x="12.3035"
+       y="81.688744" />
+    <circle
+       style="opacity:1;fill:#c2c2c2;fill-opacity:1;stroke:#000000;stroke-width:0.96499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path19178"
+       cx="53.411255"
+       cy="103.68746"
+       r="20.121349" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="39.532776"
+       y="104.07193"
+       id="text19182"><tspan
+         sodipodi:role="line"
+         id="tspan19180"
+         x="39.532776"
+         y="104.07193"
+         style="stroke-width:0.26458332px">EVENTLOOP</tspan></text>
+    <g
+       id="g19221"
+       transform="translate(10.252917,-51.264585)">
+      <rect
+         y="141.15565"
+         x="103.29813"
+         height="23.581707"
+         width="67.156609"
+         id="rect19206"
+         style="opacity:1;fill:#c2c2c2;fill-opacity:1;stroke:#000000;stroke-width:0.96499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <text
+         id="text19216"
+         y="155.08827"
+         x="109.68968"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-size:6.3499999px;stroke-width:0.26458332px"
+           y="155.08827"
+           x="109.68968"
+           id="tspan19214"
+           sodipodi:role="line">Message( id = x )</tspan></text>
+    </g>
+    <g
+       id="g21380"
+       transform="matrix(0.99103365,0,0,1,194.4255,-102.51315)"
+       style="stroke-width:1.0045135">
+      <rect
+         y="230.86868"
+         x="9.7402716"
+         height="54.596783"
+         width="169.17313"
+         id="rect21104"
+         style="opacity:1;fill:#dbdbdb;fill-opacity:1;stroke:#000000;stroke-width:0.96935558;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <g
+         transform="translate(-84.740763,95.691057)"
+         id="g19229"
+         style="stroke-width:1.0045135">
+        <rect
+           y="141.15565"
+           x="103.29813"
+           height="23.581707"
+           width="67.156609"
+           id="rect19223"
+           style="opacity:1;fill:#c2c2c2;fill-opacity:1;stroke:#000000;stroke-width:0.96935558;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+        <text
+           id="text19227"
+           y="155.08827"
+           x="109.68968"
+           style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26577753px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             style="font-size:6.3499999px;stroke-width:0.26577753px"
+             y="155.08827"
+             x="109.68968"
+             id="tspan19225"
+             sodipodi:role="line">Réponse( id = x )</tspan></text>
+      </g>
+      <g
+         transform="translate(0,95.434734)"
+         id="g19527"
+         style="stroke-width:1.0045135">
+        <rect
+           y="141.15565"
+           x="103.29813"
+           height="23.581707"
+           width="67.156609"
+           id="rect19521"
+           style="opacity:1;fill:#c2c2c2;fill-opacity:1;stroke:#000000;stroke-width:0.96935558;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+        <text
+           id="text19525"
+           y="155.08827"
+           x="109.68968"
+           style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26577753px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             style="font-size:6.3499999px;stroke-width:0.26577753px"
+             y="155.08827"
+             x="109.68968"
+             id="tspan19523"
+             sodipodi:role="line">Message( id = x )</tspan></text>
+      </g>
+      <text
+         id="text21108"
+         y="278.54474"
+         x="24.094355"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26577753px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-size:9.87777805px;stroke-width:0.26577753px"
+           y="278.54474"
+           x="24.094355"
+           id="tspan21106"
+           sodipodi:role="line">RPC</tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="17.971758"
+       y="194.0118"
+       id="text21367"><tspan
+         sodipodi:role="line"
+         id="tspan21365"
+         x="17.971758"
+         y="194.0118"
+         style="font-size:9.87777805px;stroke-width:0.26458332px">Processus A</tspan></text>
+    <g
+       id="g21385"
+       transform="translate(157.54846,-102.51314)">
+      <circle
+         style="opacity:1;fill:#c2c2c2;fill-opacity:1;stroke:#000000;stroke-width:0.96499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="circle19513"
+         cx="87.277954"
+         cy="206.00142"
+         r="20.121349" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         x="73.399475"
+         y="206.91505"
+         id="text19517"><tspan
+           sodipodi:role="line"
+           id="tspan19515"
+           x="73.399475"
+           y="206.91505"
+           style="stroke-width:0.26458332px">EVENTLOOP</tspan></text>
+    </g>
+    <path
+       inkscape:connector-curvature="0"
+       id="path19519"
+       d="m 264.55232,102.34977 h 51.23752 v 29.68393"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.96499997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker20003)"
+       sodipodi:nodetypes="ccc" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="203.07697"
+       y="194.3389"
+       id="text21367-3"><tspan
+         sodipodi:role="line"
+         id="tspan21365-8"
+         x="203.07697"
+         y="194.3389"
+         style="font-size:9.87777805px;stroke-width:0.26458332px">Processus B</tspan></text>
+    <path
+       inkscape:connector-curvature="0"
+       id="path20065"
+       d="m 212.9213,147.24642 -158.772187,0.3625 v -23.76008"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.96499997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker20069)"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.96499997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker23982)"
+       d="m 180.38134,101.55728 h 42.77445"
+       id="path23972"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

BIN
images/flatpak.png


+ 105 - 0
images/googlechrome.svg

@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="1 1 176 176">
+ <defs>
+  <circle id="a" cy="96" cx="96" r="88"/>
+ </defs>
+ <clipPath id="b">
+  <use width="100%" overflow="visible" xlink:href="#a" height="100%"/>
+ </clipPath>
+ <g transform="translate(-7 -7)" clip-path="url(#b)">
+  <path d="m21.97 8v108h39.39l34.64-60h88v-48z" fill="#db4437"/>
+  <linearGradient id="c" y2="44.354" gradientUnits="userSpaceOnUse" y1="75.021" x2="81.837" x1="29.337">
+   <stop stop-color="#A52714" stop-opacity=".6" offset="0"/>
+   <stop stop-color="#A52714" stop-opacity="0" offset=".66"/>
+  </linearGradient>
+  <path d="m21.97 8v108h39.39l34.64-60h88v-48z" fill="url(#c)"/>
+ </g>
+ <path clip-path="url(#b)" fill-opacity=".15" d="m62.31 115.65l-39.83-68.31-0.58 1 39.54 67.8z" transform="translate(-7 -7)" fill="#3e2723"/>
+ <g transform="translate(-7 -7)" clip-path="url(#b)">
+  <path d="m8 184h83.77l38.88-38.88v-29.12h-69.29l-53.36-91.52z" fill="#0f9d58"/>
+  <linearGradient id="d" y2="130.33" gradientUnits="userSpaceOnUse" y1="164.5" x2="52.538" x1="110.87">
+   <stop stop-color="#055524" stop-opacity=".4" offset="0"/>
+   <stop stop-color="#055524" stop-opacity="0" offset=".33"/>
+  </linearGradient>
+  <path d="m8 184h83.77l38.88-38.88v-29.12h-69.29l-53.36-91.52z" fill="url(#d)"/>
+ </g>
+ <path clip-path="url(#b)" fill-opacity=".15" d="m129.84 117.33l-0.83-0.48-38.39 67.15h1.15l38.1-66.64z" transform="translate(-7 -7)" fill="#263238"/>
+ <g transform="translate(-7 -7)" clip-path="url(#b)">
+  <defs>
+   <path id="e" d="m8 184h83.77l38.88-38.88v-29.12h-69.29l-53.36-91.52z"/>
+  </defs>
+  <clipPath id="f">
+   <use width="100%" overflow="visible" xlink:href="#e" height="100%"/>
+  </clipPath>
+  <g clip-path="url(#f)">
+   <path d="m96 56l34.65 60-38.88 68h92.23v-128z" fill="#ffcd40"/>
+   <linearGradient id="g" y2="114.13" gradientUnits="userSpaceOnUse" y1="49.804" x2="136.55" x1="121.86">
+    <stop stop-color="#EA6100" stop-opacity=".3" offset="0"/>
+    <stop stop-color="#EA6100" stop-opacity="0" offset=".66"/>
+   </linearGradient>
+   <path d="m96 56l34.65 60-38.88 68h92.23v-128z" fill="url(#g)"/>
+  </g>
+ </g>
+ <g transform="translate(-7 -7)" clip-path="url(#b)">
+  <path d="m96 56l34.65 60-38.88 68h92.23v-128z" fill="#ffcd40"/>
+  <path d="m96 56l34.65 60-38.88 68h92.23v-128z" fill="url(#g)"/>
+ </g>
+ <g transform="translate(-7 -7)" clip-path="url(#b)">
+  <defs>
+   <path id="i" d="m96 56l34.65 60-38.88 68h92.23v-128z"/>
+  </defs>
+  <clipPath id="j">
+   <use width="100%" overflow="visible" xlink:href="#i" height="100%"/>
+  </clipPath>
+  <g clip-path="url(#j)">
+   <path d="m21.97 8v108h39.39l34.64-60h88v-48z" fill="#db4437"/>
+   <path d="m21.97 8v108h39.39l34.64-60h88v-48z" fill="url(#c)"/>
+  </g>
+ </g>
+ <radialGradient id="l" gradientUnits="userSpaceOnUse" cy="55.948" cx="668.18" gradientTransform="translate(-576)" r="84.078">
+  <stop stop-color="#3E2723" stop-opacity=".2" offset="0"/>
+  <stop stop-color="#3E2723" stop-opacity="0" offset="1"/>
+ </radialGradient>
+ <path clip-path="url(#b)" d="m96 56v20.95l78.4-20.95z" transform="translate(-7 -7)" fill="url(#l)"/>
+ <g transform="translate(-7 -7)" clip-path="url(#b)">
+  <defs>
+   <path id="m" d="m21.97 8v40.34l39.39 67.66 34.64-60h88v-48z"/>
+  </defs>
+  <clipPath id="n">
+   <use width="100%" overflow="visible" xlink:href="#m" height="100%"/>
+  </clipPath>
+  <g clip-path="url(#n)">
+   <path d="m8 184h83.77l38.88-38.88v-29.12h-69.29l-53.36-91.52z" fill="#0f9d58"/>
+   <path d="m8 184h83.77l38.88-38.88v-29.12h-69.29l-53.36-91.52z" fill="url(#d)"/>
+  </g>
+ </g>
+ <radialGradient id="p" gradientUnits="userSpaceOnUse" cy="48.52" cx="597.88" gradientTransform="translate(-576)" r="78.044">
+  <stop stop-color="#3E2723" stop-opacity=".2" offset="0"/>
+  <stop stop-color="#3E2723" stop-opacity="0" offset="1"/>
+ </radialGradient>
+ <path clip-path="url(#b)" d="m21.97 48.45l57.25 57.24-17.86 10.31z" transform="translate(-7 -7)" fill="url(#p)"/>
+ <radialGradient id="q" gradientUnits="userSpaceOnUse" cy="96.138" cx="671.84" gradientTransform="translate(-576)" r="87.87">
+  <stop stop-color="#263238" stop-opacity=".2" offset="0"/>
+  <stop stop-color="#263238" stop-opacity="0" offset="1"/>
+ </radialGradient>
+ <path clip-path="url(#b)" d="m91.83 183.89l20.96-78.2 17.86 10.31z" transform="translate(-7 -7)" fill="url(#q)"/>
+ <g transform="translate(-7 -7)" clip-path="url(#b)">
+  <circle cy="96" cx="96" r="40" fill="#f1f1f1"/>
+  <circle cy="96" cx="96" r="32" fill="#4285f4"/>
+ </g>
+ <g transform="translate(-7 -7)" clip-path="url(#b)">
+  <path fill-opacity=".2" d="m96 55c-22.09 0-40 17.91-40 40v1c0-22.09 17.91-40 40-40h88v-1h-88z" fill="#3e2723"/>
+  <path fill-opacity=".1" d="m130.6 116c-6.92 11.94-19.81 20-34.6 20-14.8 0-27.69-8.06-34.61-20h-0.04l-53.35-91.52v1l53.36 91.52h0.04c6.92 11.94 19.81 20 34.61 20 14.79 0 27.68-8.05 34.6-20h0.05v-1h-0.06z" fill="#fff"/>
+  <path opacity=".1" d="m97 56c-0.17 0-0.33 0.02-0.5 0.03 21.86 0.27 39.5 18.05 39.5 39.97s-17.64 39.7-39.5 39.97c0.17 0 0.33 0.03 0.5 0.03 22.09 0 40-17.91 40-40s-17.91-40-40-40z" fill="#3e2723"/>
+  <path fill-opacity=".2" d="m131 117.33c3.4-5.88 5.37-12.68 5.37-19.96 0-4.22-0.66-8.28-1.87-12.09 0.95 3.42 1.5 7.01 1.5 10.73 0 7.28-1.97 14.08-5.37 19.96l0.02 0.04-38.88 68h1.16l38.09-66.64-0.02-0.04z" fill="#fff"/>
+ </g>
+ <g transform="translate(-7 -7)" clip-path="url(#b)">
+  <path fill-opacity=".2" d="m96 9c48.43 0 87.72 39.13 87.99 87.5 0-0.17 0.01-0.33 0.01-0.5 0-48.6-39.4-88-88-88s-88 39.4-88 88c0 0.17 0.01 0.33 0.01 0.5 0.27-48.37 39.56-87.5 87.99-87.5z" fill="#fff"/>
+  <path fill-opacity=".15" d="m96 183c48.43 0 87.72-39.13 87.99-87.5 0 0.17 0.01 0.33 0.01 0.5 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-0.17 0.01-0.33 0.01-0.5 0.27 48.37 39.56 87.5 87.99 87.5z" fill="#3e2723"/>
+ </g>
+ <radialGradient id="r" gradientUnits="userSpaceOnUse" cy="32.014" cx="34.286" gradientTransform="translate(-7 -7)" r="176.75">
+  <stop stop-color="#fff" stop-opacity=".1" offset="0"/>
+  <stop stop-color="#fff" stop-opacity="0" offset="1"/>
+ </radialGradient>
+ <circle cy="89" cx="89" r="88" fill="url(#r)"/>
+</svg>

BIN
images/logo-baleine-docker.png


+ 408 - 0
images/memoire.svg

@@ -0,0 +1,408 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="201.62935mm"
+   height="61.311268mm"
+   viewBox="0 0 201.62935 61.311268"
+   version="1.1"
+   id="svg4542"
+   inkscape:version="0.92.2 2405546, 2018-03-11"
+   sodipodi:docname="memoire.svg">
+  <defs
+     id="defs4536">
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker7001"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6999"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker6659"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path6657"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker5933"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5931"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path5229"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5211"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.1798828"
+     inkscape:cx="190.40776"
+     inkscape:cy="58.853404"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1918"
+     inkscape:window-height="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="55"
+     inkscape:window-maximized="0"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <sodipodi:guide
+       position="104.43238,6.4371382"
+       orientation="0,1"
+       id="guide6981"
+       inkscape:locked="false" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4539">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-4.9993903,-85.15406)">
+    <rect
+       style="opacity:1;fill:#dbdbdb;fill-opacity:1;stroke:#000000;stroke-width:0.76499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5087"
+       width="75.346466"
+       height="60.322021"
+       x="68.843353"
+       y="85.760803" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="74.225243"
+       y="93.160896"
+       id="text5091"><tspan
+         sodipodi:role="line"
+         id="tspan5089"
+         x="74.225243"
+         y="93.160896"
+         style="stroke-width:0.26458332px">Mémoire partagée</tspan></text>
+    <g
+       id="g5102"
+       transform="translate(-1.0583333)">
+      <rect
+         y="100.78525"
+         x="75.570709"
+         height="14.800199"
+         width="20.630579"
+         id="rect5093"
+         style="opacity:1;fill:#dbdbdb;fill-opacity:1;stroke:#000000;stroke-width:0.76499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <text
+         id="text5097"
+         y="109.46791"
+         x="79.526451"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="stroke-width:0.26458332px"
+           y="109.46791"
+           x="79.526451"
+           id="tspan5095"
+           sodipodi:role="line">Block</tspan></text>
+    </g>
+    <g
+       transform="translate(39.467199,-2.4514097e-6)"
+       id="g5102-1">
+      <rect
+         y="100.78525"
+         x="75.570709"
+         height="14.800199"
+         width="20.630579"
+         id="rect5093-0"
+         style="opacity:1;fill:#dbdbdb;fill-opacity:1;stroke:#000000;stroke-width:0.76499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <text
+         id="text5097-3"
+         y="109.46791"
+         x="79.526451"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="stroke-width:0.26458332px"
+           y="109.46791"
+           x="79.526451"
+           id="tspan5095-0"
+           sodipodi:role="line">Block</tspan></text>
+    </g>
+    <g
+       transform="translate(39.242954,23.770014)"
+       id="g5102-4">
+      <rect
+         y="100.78525"
+         x="75.570709"
+         height="14.800199"
+         width="20.630579"
+         id="rect5093-4"
+         style="opacity:1;fill:#dbdbdb;fill-opacity:1;stroke:#000000;stroke-width:0.76499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <text
+         id="text5097-4"
+         y="109.46791"
+         x="79.526451"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="stroke-width:0.26458332px"
+           y="109.46791"
+           x="79.526451"
+           id="tspan5095-4"
+           sodipodi:role="line">Block</tspan></text>
+    </g>
+    <rect
+       style="opacity:1;fill:#dbdbdb;fill-opacity:1;stroke:#000000;stroke-width:0.76499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5140"
+       width="52.697674"
+       height="60.546268"
+       x="5.3818903"
+       y="85.53656" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.63020849px;line-height:125%;font-family:'3270Medium Nerd Font';-inkscape-font-specification:'3270Medium Nerd Font';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="9.8667994"
+       y="92.039673"
+       id="text5144"><tspan
+         sodipodi:role="line"
+         id="tspan5142"
+         x="9.8667994"
+         y="96.322617"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'3270Medium Nerd Font';-inkscape-font-specification:'3270Medium Nerd Font';stroke-width:0.26458332px" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="8.6477394"
+       y="93.409744"
+       id="text5091-5"><tspan
+         sodipodi:role="line"
+         id="tspan5089-4"
+         x="8.6477394"
+         y="93.409744"
+         style="stroke-width:0.26458332px">Producteur</tspan></text>
+    <rect
+       y="85.53656"
+       x="153.54857"
+       height="60.546268"
+       width="52.697674"
+       id="rect5164"
+       style="opacity:1;fill:#dbdbdb;fill-opacity:1;stroke:#000000;stroke-width:0.76499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       id="text5168"
+       y="93.409744"
+       x="156.81441"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       xml:space="preserve"><tspan
+         style="stroke-width:0.26458332px"
+         y="93.409744"
+         x="156.81441"
+         id="tspan5166"
+         sodipodi:role="line">Consommateur</tspan></text>
+    <g
+       transform="translate(-47.54003,0.22424294)"
+       id="g5102-49">
+      <rect
+         y="100.78525"
+         x="75.570709"
+         height="14.800199"
+         width="20.630579"
+         id="rect5093-9"
+         style="opacity:1;fill:#dbdbdb;fill-opacity:1;stroke:#000000;stroke-width:0.76499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <text
+         id="text5097-36"
+         y="109.46791"
+         x="79.526451"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="stroke-width:0.26458332px"
+           y="109.46791"
+           x="79.526451"
+           id="tspan5095-05"
+           sodipodi:role="line">Block</tspan></text>
+    </g>
+    <g
+       transform="translate(84.09204,-0.2242479)"
+       id="g5102-0">
+      <rect
+         y="100.78525"
+         x="75.570709"
+         height="14.800199"
+         width="20.630579"
+         id="rect5093-2"
+         style="opacity:1;fill:#dbdbdb;fill-opacity:1;stroke:#000000;stroke-width:0.76499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <text
+         id="text5097-9"
+         y="109.46791"
+         x="79.526451"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="stroke-width:0.26458332px"
+           y="109.46791"
+           x="79.526451"
+           id="tspan5095-43"
+           sodipodi:role="line">Block</tspan></text>
+    </g>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.86499995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+       d="M 48.212768,108.63677 H 72.824934"
+       id="path5206"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path5929"
+       d="m 135.44425,108.41098 h 22.51659"
+       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5933);fill-opacity:1" />
+    <g
+       id="g5102-5"
+       transform="translate(-0.87919723,23.64292)">
+      <rect
+         y="100.78525"
+         x="75.570709"
+         height="14.800199"
+         width="20.630579"
+         id="rect5093-1"
+         style="opacity:1;fill:#dbdbdb;fill-opacity:1;stroke:#000000;stroke-width:0.76499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <text
+         id="text5097-7"
+         y="109.46791"
+         x="79.526451"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="stroke-width:0.26458332px"
+           y="109.46791"
+           x="79.526451"
+           id="tspan5095-431"
+           sodipodi:role="line">Block</tspan></text>
+    </g>
+    <path
+       inkscape:connector-curvature="0"
+       id="path6655"
+       d="M 74.270957,132.44942 H 49.658791"
+       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.86499995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6659);fill-opacity:1" />
+    <g
+       id="g6979"
+       transform="translate(-47.54003,23.507585)">
+      <rect
+         style="opacity:1;fill:#dbdbdb;fill-opacity:1;stroke:#000000;stroke-width:0.76499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="rect6973"
+         width="20.630579"
+         height="14.800199"
+         x="75.570709"
+         y="100.78525" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         x="79.526451"
+         y="109.46791"
+         id="text6977"><tspan
+           sodipodi:role="line"
+           id="tspan6975"
+           x="79.526451"
+           y="109.46791"
+           style="stroke-width:0.26458332px">Block</tspan></text>
+    </g>
+    <g
+       id="g6995"
+       transform="translate(84.09204,23.588261)">
+      <rect
+         style="opacity:1;fill:#dbdbdb;fill-opacity:1;stroke:#000000;stroke-width:0.76499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="rect6989"
+         width="20.630579"
+         height="14.800199"
+         x="75.570709"
+         y="100.78525" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         x="79.526451"
+         y="109.46791"
+         id="text6993"><tspan
+           sodipodi:role="line"
+           id="tspan6991"
+           x="79.526451"
+           y="109.46791"
+           style="stroke-width:0.26458332px">Block</tspan></text>
+    </g>
+    <path
+       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.86500007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:9.39999962;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker7001);fill-opacity:1"
+       d="M 159.40686,132.22363 H 136.89027"
+       id="path6997"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

+ 249 - 0
images/orchestrateur.svg

@@ -0,0 +1,249 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="167.48697mm"
+   height="121.19292mm"
+   viewBox="0 0 167.48697 121.19292"
+   version="1.1"
+   id="svg17413"
+   inkscape:version="0.92.2 2405546, 2018-03-11"
+   sodipodi:docname="orchestrateur.svg">
+  <defs
+     id="defs17407">
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker18292"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path18290"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker18202"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path18200"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker18100"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path18098"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path5211"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.0568359"
+     inkscape:cx="252.85248"
+     inkscape:cy="226.57618"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1918"
+     inkscape:window-height="934"
+     inkscape:window-x="0"
+     inkscape:window-y="145"
+     inkscape:window-maximized="0"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <sodipodi:guide
+       position="124.62586,18.815349"
+       orientation="0,1"
+       id="guide18378"
+       inkscape:locked="false" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata17410">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-24.785067,-78.669632)">
+    <rect
+       style="opacity:1;fill:#f4f4f4;fill-opacity:1;stroke:none;stroke-width:0.76499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect18411"
+       width="167.48697"
+       height="121.19292"
+       x="24.785067"
+       y="78.669632" />
+    <rect
+       style="opacity:1;fill:#dadada;fill-opacity:1;stroke:#000000;stroke-width:1.06500006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect17958"
+       width="66.093513"
+       height="42.560215"
+       x="76.107681"
+       y="85.200333" />
+    <rect
+       style="opacity:1;fill:#dadada;fill-opacity:1;stroke:#000000;stroke-width:1.06500006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect17960"
+       width="52.073677"
+       height="33.046757"
+       x="30.042505"
+       y="162.30942" />
+    <rect
+       y="162.30942"
+       x="135.87581"
+       height="33.046757"
+       width="52.073677"
+       id="rect17964"
+       style="opacity:1;fill:#dadada;fill-opacity:1;stroke:#000000;stroke-width:1.06500006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.76499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+       d="m 55.232474,162.45935 c 14.734477,-9.78968 25.328248,-16.80662 32.904594,-21.89636 L 107.45549,127.585"
+       id="path17966"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="csc" />
+    <path
+       sodipodi:nodetypes="csc"
+       inkscape:connector-curvature="0"
+       id="path18096"
+       d="m 161.3933,162.45935 c -14.73448,-9.78968 -25.32826,-16.80662 -32.90461,-21.89636 L 109.17026,127.585"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.76499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker18100)" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.76499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker18202)"
+       d="M 82.317631,172.19585 H 135.42578"
+       id="path18192"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path18288"
+       d="M 136.91092,184.3667 H 83.802773"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.76499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker18292)" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="108.42287"
+       y="107.75796"
+       id="text18368"><tspan
+         sodipodi:role="line"
+         id="tspan18366"
+         x="108.42287"
+         y="107.75796"
+         style="font-size:8.46666622px;text-align:center;text-anchor:middle;stroke-width:0.26458332px">Orchestrateur</tspan></text>
+    <text
+       id="text18372"
+       y="181.05296"
+       x="56.563484"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       xml:space="preserve"><tspan
+         style="font-size:8.46666622px;text-align:center;text-anchor:middle;stroke-width:0.26458332px"
+         y="181.05296"
+         x="56.563484"
+         id="tspan18370"
+         sodipodi:role="line">Worker</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="162.9568"
+       y="180.87401"
+       id="text18376"><tspan
+         sodipodi:role="line"
+         id="tspan18374"
+         x="162.9568"
+         y="180.87401"
+         style="font-size:8.46666622px;text-align:center;text-anchor:middle;stroke-width:0.26458332px">Worker</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="103.73792"
+       y="179.808"
+       id="text18401"><tspan
+         sodipodi:role="line"
+         id="tspan18399"
+         x="103.73792"
+         y="179.808"
+         style="stroke-width:0.26458332px">RPC</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="49.921661"
+       y="143.16339"
+       id="text18405"><tspan
+         sodipodi:role="line"
+         id="tspan18403"
+         x="49.921661"
+         y="143.16339"
+         style="stroke-width:0.26458332px">commandes</tspan></text>
+    <text
+       id="text18409"
+       y="143.16339"
+       x="134.58829"
+       style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       xml:space="preserve"><tspan
+         style="stroke-width:0.26458332px"
+         y="143.16339"
+         x="134.58829"
+         id="tspan18407"
+         sodipodi:role="line">commandes</tspan></text>
+  </g>
+</svg>

+ 133 - 0
images/proxy.svg

@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="116.03046mm"
+   height="72.037132mm"
+   viewBox="0 0 116.03046 72.037132"
+   version="1.1"
+   id="svg10368"
+   inkscape:version="0.92.2 2405546, 2018-03-11"
+   sodipodi:docname="proxy.svg">
+  <defs
+     id="defs10362" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.1306641"
+     inkscape:cx="-24.157014"
+     inkscape:cy="64.203576"
+     inkscape:document-units="mm"
+     inkscape:current-layer="g10930"
+     showgrid="false"
+     inkscape:window-width="1918"
+     inkscape:window-height="988"
+     inkscape:window-x="0"
+     inkscape:window-y="91"
+     inkscape:window-maximized="0"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <metadata
+     id="metadata10365">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-40.852734,-93.783398)">
+    <rect
+       style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:0.66500002;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect10913"
+       width="115.36546"
+       height="71.372131"
+       x="41.185234"
+       y="94.115898" />
+    <g
+       id="g10930">
+      <rect
+         y="127.1109"
+         x="52.885586"
+         height="28.080843"
+         width="93.836815"
+         id="rect10915"
+         style="opacity:1;fill:#c3c3c3;fill-opacity:1;stroke:#000000;stroke-width:0.66499996;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <text
+         id="text10919"
+         y="138.34323"
+         x="59.905796"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-size:9.87777805px;stroke-width:0.26458332px"
+           y="138.34323"
+           x="59.905796"
+           id="tspan10917"
+           sodipodi:role="line">input_proxy</tspan></text>
+      <text
+         id="text10923"
+         y="149.83899"
+         x="60.028103"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-size:5.64444447px;stroke-width:0.26458332px"
+           y="149.83899"
+           x="60.028103"
+           id="tspan10921"
+           sodipodi:role="line">- callbacks</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         x="46.099384"
+         y="105.67274"
+         id="text10934"><tspan
+           sodipodi:role="line"
+           x="46.099384"
+           y="105.67274"
+           style="font-size:9.87777805px;stroke-width:0.26458332px"
+           id="tspan10936">proxy_object</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         x="46.689701"
+         y="114.17696"
+         id="text10942"><tspan
+           sodipodi:role="line"
+           id="tspan10940"
+           x="46.689701"
+           y="114.17696"
+           style="font-size:5.64444447px;stroke-width:0.26458332px">- proxy_id</tspan></text>
+      <text
+         id="text10946"
+         y="121.5853"
+         x="46.689701"
+         style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-size:5.64444447px;stroke-width:0.26458332px"
+           y="121.5853"
+           x="46.689701"
+           id="tspan10944"
+           sodipodi:role="line">- stage_id</tspan></text>
+    </g>
+  </g>
+</svg>

BIN
images/sandboxing_cycle.png


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 92 - 0
images/videolabs.svg


+ 215 - 33
slides.md

@@ -2,37 +2,47 @@
 % Alexandre Janniaux
 % 19 septembre 2018
 
-## Présentation du stage
-
-/!\\ A faire
-
 ## VideoLabs, VLC
 
-mettre logo videolabs
+<img src="images/videolabs.svg" alt="Logo videolabs" width="50%"/>
 
 ## Présentation de l'entreprise
 
 - Créée en 2012
 - Sponsorise le développement de VLC
 - Propose des prestations en :
-    - système embarqué
+    - systèmes embarqués
     - pipeline vidéo
     - multimédia en général
-- Composé d'une quinzaine d'employés
+- Composée d'une quinzaine d'employés
+
+## Présentation du stage
+
++ Principalement de la recherche (4 mois)
++ Utilisation d'une API d'encodage matériel
++ Optimisation d'un moteur de rendu pour la VR
++ Réalisation d'un prototype VLC multiprocessus
 
 ## Sandboxing
 
-Mettre image vlc-sandbox
+- Besoin d'isolation mémoire
+- Besoin de règles par processus
+- Besoin de définir les possibilités pour chaque bout de l'application
 
 ## Conteneurs
 
-flatpack, snap
+<img src="images/flatpak.png" alt="Flatpack">
+<img src="images/logo-baleine-docker.png" alt="Docker">
 
 ## Fined Grained sandboxing
 
-google chrome
+<img src="images/googlechrome.svg" alt="Google Chrome" width="40%">
 
-## Conception de la sandbox
+## Objectifs de la sandbox
+
+- être désactivable au démarrage
+- définir des zones de privilège et d'accès
+- ne pas réécrire les modules
 
 ## Mécanismes de sandboxing sous Linux
 
@@ -43,56 +53,228 @@ google chrome
 
 ## Mécanismes de sandboxing sous Windows
 
-## Architecture multiprocessus
+- Integrity level
+- AppContainer
+- DACL
+
+## Conception de la sandbox
+
+- Réalisation d'un prototype indépendant
+- Intégration dans VLC
+- Choix du modèle
+
+<aside class=notes>
+</aside>
+
+## Modèles de sandbox : orchestrateur
+
+<img src="images/orchestrateur.svg" alt="Orchestrateur">
+
+<aside class=notes>
++ Socket dédié pour chaque lien entre zone
++ Jetons d'accès
++ Moins d'appel système
+
+Mais
+
++ Croissance potentiellement quadratique du nombre de socket
++ Difficile à manipuler
++ Difficile à déboguer
+
+Exemple avec strace
+</aside>
+
+## Modèles de sandbox : broker
+
+<img src="images/broker.svg" alt="Orchestrateur">
+
+<aside class=notes>
++ droits d'accès plus fin, centralisés et personnalisables
++ point de contrôle pour les logs et le debogage
+
+mais
+
++ logique de contrôle et de routage
++ plus d'étape de changement de contexte
+
+</aside>
+
+## Premier prototype
+
+- Créer les processus
+- Établir la communication entre eux
+- Modèle orchestrateur
+<img src="images/Nginx_logo.svg" alt="Logo NGINX" width="50%">
+
+Manipulation de l'interface SCM et de la mémoire partagée
+
+## Modification des variables
+
+- Répartition de l'arbre de variables sur plusieurs processus
+- Très bon test pour la communication interprocessus
+- Devenu gênant dans la suite
 
-## Découpage du projet
+## Deadlock version 1
 
+<img src="images/deadlock_rpc_no_loop.svg" alt="">
 
-#
+## Intégration d'une boucle événementielle
 
-## Architecture de VLC
+<img src="images/eventloop.svg" alt="boucle événementielle">
 
-## Modules
+## Deadlock version 2
+
+<img src="images/deadlock_double_rpc.svg" alt="">
+
+<aside class=notes>
+    + impossible à régler sans concepts comme des futures et promesses
+    + vivre avec, éviter de faire des IPC dans des handlers d'IPC
+</aside>
+
+##
+
+<img src="images/sandboxing_cycle.png" alt="Sandbox cycle XKCD" width="60%">
+
+<aside class=notes>
+    + Ressemble beaucoup au XKCD
+</aside>
+
+## Objets proxy
+
+- un identifiant
+- `proxy_SendMsgReply(proxy, msg, &cookie)`
+
+<img src="images/proxy.svg" alt="Création de proxy">
+
+<aside class=notes>
+- nouvel objet proxy par downcasting et aggrégation
+</aside>
 
-Dessin libvlccore
 
 ## Description de l'API
 
+    /* Début du processus */
+    sandbox = vlc_sandbox_Init(&(const struct vlc_sandbox_cfg) {
+        /* parameters and policy */
+    });
+    
+    vlc_sandbox_Start(sandbox);
+
+<aside class=notes>
+</aside>
+
+## Démarrage des processus
+
+    /* vlc_sandbox_Init */
+    const char psz_zygote[] = "--sandbox-zygote=";
+    const char psz_worker[] = "--sandbox-worker=";
+    for(int i=0; i< cfg->argc; ++i)
+    {
+        if(!strncmp(cfg->argv[i], psz_zygote, strlen(psz_zygote)))
+        {
+            // it's a zygote
+        }
+        else if(!strncmp( cfg->argv[i], psz_worker, strlen(psz_worker)))
+        {
+            // it's a worker
+        }
+    }
+
 ## Architecture du projet
 
-## Paradigme proxy
+<aside class=notes>
+- On a fait la partie correspondant à la mise en place du cadre de sandboxing
+- Il faut revenir à VLC
+</aside>
 
 ## Méthode avec les modules de VLC
 
+- Pattern proxy
+- Générer de faux modules se comportant comme les vrais à IPC près
+
 ## Méthode avec les objets de libvlccore
 
+- Pattern strategy sur l'architecture de VLC
+- Implémenter le pattern proxy
+
+## Protocole de communication
+
+    ------------------------------------------------------------
+    | ID d'étage | ID de requête | ID de RPC | Paramètres  RPC |
+    ------------------------------------------------------------
+
++ À qui envoyer ?
++ Comment répondre ?
++ Que faire ?
+
 ## Passage de ressources entre processus
 
-## Conception et inscription dans VLC
+    block_t *block = block_Alloc(size);
+
++ Très peu flexible
++ Devrait être amené à changer pour Windows
+
+## Passage de ressources entre processus
+
+<img src="images/memoire.svg" alt="producteur-consommateur en mémoire partagée" width="100%">
+
+<aside class=notes>
+    Buffer multiplexé pour l'écriture de blocs
+</aside>
+
+## Passage de ressources sous Linux
+
+- On utilise `memfd_create` dans `block_Alloc`
+- Utilisation totalement transparente
+
+Mais plus coûteux que le modèle précédent
+
+## Limitations du travail actuel sous Windows
+
+## Gestion des ressources sous Windows
+
+    BOOL WINAPI DuplicateHandle(
+      _In_  HANDLE   hSourceProcessHandle,
+      _In_  HANDLE   hSourceHandle,
+      _In_  HANDLE   hTargetProcessHandle,
+      _Out_ LPHANDLE lpTargetHandle,
+      _In_  DWORD    dwDesiredAccess,
+      _In_  BOOL     bInheritHandle,
+      _In_  DWORD    dwOptions
+    );
+
+`SourceProcess` et `TargetProcess` doivent avoir `PROCESS_DUP_HANDLE`
+
+## Gestion des droits sous Windows : Jobs
 
-## Implémentation dans Linux
+- Gestion des limitations de ressources dans les processus
+- `JOB_OBJECT_ULIMIT_HANDLES`
+- `UserHandleGrantAccess`
 
-Parler des mécanismes d'héritage et socket unix
+Malheureusement...
 
-## Implémentation dans Windows
+## Gestion des droits sous Windows : Jobs
 
-Parler des mécanismes d'héritage et DuplicateHandle
+- Un user handle est un objet de l'interface, pas un objet système
+- Les jobs ne sont pas une fonctionnalité de sécurité
 
-## Création des processus
+On peut faire le parallèle entre les Jobs et cgroups, avec un esprit Windows (i.e. GUI)
 
-## ASLR ou exécution complète
+<aside class=notes>
+</aside>
 
-## Gestion de la boucle événementielle
+## Gestion des droits sous Windows : ACL
 
-## Mécanisme de lecture asynchrone
++ PACL, DACL, ACE, SecurityDescriptor, Tokens...
 
-Différents modèles de notification
+##
 
-- notification sur complétion d'une opération
-- notification sur disponibilité des objets
+<img src="images/dacl.svg" alt="Construction avec des ACL">
 
-## Implémentation sous Linux
+# Conclusion
 
-epoll
++ pattern reproductible
++ difficultés à déboguer
++ différences de paradigmes
 
-## Implémentation sous windows
+# Questions

+ 2 - 1
template-revealjs.html

@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 
-<title>$title$</title>
+<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
 
 <meta name="description" content="$title$">
 
@@ -91,6 +91,7 @@ $body$
     progress: true,
     history: true,
     center: false,
+    slideNumber: true,
 
   // available themes are in /css/theme
   $if(theme)$

+ 61 - 6
todolist

@@ -2,24 +2,79 @@
 
 - [ ] Présentation
 - [ ] VideoLabs
+
+// 2 min ici
+
 - [ ] Sandboxing 
     - Expliquer qu'il s'agit de multiprocessing mais avec un esprit de sandboxing derriere
     - [ ] Explication graphique sandboxing
+        - [ ] Flatpack, docker
     - [ ] Explication graphique fined grained sandboxing
-    - [ ] 
+        - [ ] séparation en plusieurs partie
+        - [ ] google chrome
+        - [ ] XKCD => ne pas intégrer la comm comme une feature, transparence
+    - [ ] Mécanismes de sandboxing
+        - [ ] linux capabilities
+        - [ ] seccomp
+        - [ ] linux namespace
+        - [ ] cgroups
+        - [ ] integrity level
+        - [ ] lowbox token
+        - [ ] AppContainer
+        - [ ] PACL
+
+// 5 min
+
 - [ ] Conception
     - Expliquer que je vais détailler les différentes parties 
-    - [ ] Mécanismes de sandboxing
+    - [ ] Objectifs
     - [ ] Présentation du projet / découpage
+
+// 2 min
+
+- [ ] Réalisation du proto-ipc en orchestrateur
+    - [ ] Création des processus
+    - [ ] Passage de ressources entre processus
+
+// 4 min
+
+- [ ] Réécriture des variables
+    - [ ] Pattern proxy
+    - [ ] Boucle événementielle pour éviter les blocages
+    - [ ] Toujours des blocages
+
+// 6 min
+
+- [ ] Injection de la sandbox dans l'architecture
+    - [ ] Création du décodeur
+    - [ ] Création des objets proxy
+    - [ ] Création du lien entre les processus
+
+- [ ] Conversion entre broker et orchestrateur
+
+// 6 min
+
 - [ ] Présentation de l'API
     - [ ] Architecture du projet
-    - [ ] Proxy
     - [ ] Methode entre libvlccore et modules
-- [ ] Passage de ressources entre processus
-- [ ] Création des processus
-- [ ] Boucle événementielle
+
+- [ ] Démonstration
 
 ? Séparer par theme plutot que par implémentation ? => permet de tout décrire 
 => expliquer des mécanismes de software engineering qui permettent cette transformation
 
 => bien expliquer les limitations 
+
+
++ objet libvlc
++ libvlccore/libvlc : placement de la partie sandbox
++ ASLR, fork, déplacer dans description de l'API cliente
++ architecture proxy : plus de maniabilité, peut être retravaillée plus tard (pas de changement d'interface)
++ architecture proxy : pattern strategy aussi
++ Politiques de sandboxing
+
++ présentation du PoC seccomp et mise en parallèle
++ écriture du PoC pour tester les concepts (windows, linux)
++ écriture des premiers points
+
++ parler lien