{"id":1799,"date":"2014-09-11T22:40:35","date_gmt":"2014-09-11T20:40:35","guid":{"rendered":"http:\/\/blog.nebule.org\/?p=1799"},"modified":"2016-03-29T19:00:45","modified_gmt":"2016-03-29T17:00:45","slug":"gestion-temporelle-partielle","status":"publish","type":"post","link":"http:\/\/blog.nebule.org\/?p=1799","title":{"rendered":"Gestion temporelle partielle"},"content":{"rendered":"<p style=\"text-align: justify;\">Il y a deux fa\u00e7ons de g\u00e9rer le temps et deux fa\u00e7ons pour le prendre en compte.<\/p>\n<p style=\"text-align: justify;\">C&rsquo;est la suite des articles <a title=\"Horodatage\" href=\"http:\/\/blog.nebule.org\/?p=68\" target=\"_blank\">Horodatage<\/a>, <a title=\"Horodatage ISO 8601\" href=\"http:\/\/blog.nebule.org\/?p=628\" target=\"_blank\">ISO 8601<\/a>, <a title=\"Horodatage \u00e2\u20ac\u201c suite\" href=\"http:\/\/blog.nebule.org\/?p=1108\" target=\"_blank\">suite<\/a> et <a title=\"Marque de temps\" href=\"http:\/\/blog.nebule.org\/?p=1477\" target=\"_blank\">Marque de temps<\/a>.<\/p>\n<h2 style=\"text-align: justify;\">La r\u00e9f\u00e9rence de temps, ou pas<\/h2>\n<p style=\"text-align: justify;\">On peut g\u00e9rer le temps comme \u00e9tant un pr\u00e9requis commun \u00e0 tous les acteurs. Dans ce cas, toutes les machines doivent synchroniser leurs horloges internes sur une source commune. Tout le monde travaille avec la m\u00eame heure, le m\u00eame espace temps et la m\u00eame r\u00e9f\u00e9rence. Ici on ne tient pas compte du fuseau horaire qui est un bricolage de d\u00e9calage non pas temporel mais sur l&rsquo;affichage uniquement. Aujourd&rsquo;hui, l&rsquo;orientation de tous les syst\u00e8mes d&rsquo;informations, c&rsquo;est la synchronisation globale, c&rsquo;est \u00e0 dire la m\u00eame partout sur la plan\u00e8te.<br \/>\nOn pourrait aussi simplement consid\u00e9rer que chaque machine, chaque utilisateur, a un espace temps qui lui est propre. Pas de synchronisations \u00e0 faire mais se pose alors l&rsquo;interpr\u00e9tation d&rsquo;une date donn\u00e9e par une autre machine. Il faut pr\u00e9voir un m\u00e9canisme de correction du temps des autres machines, par rapport \u00e0 une r\u00e9f\u00e9rence. On retrouve cette r\u00e9f\u00e9rence commune mais elle peut dans certains cas \u00eatre soi-m\u00eame, c&rsquo;est \u00e0 dire je suis \u00e0 la bonne heure et je compense l&rsquo;heure des autres. En cas d&rsquo;absence de r\u00e9f\u00e9rence externe, il faut retenir le d\u00e9calage de chacune des machines avec lesquelles on communique.<br \/>\nAvoir une r\u00e9f\u00e9rence commune implique une communication r\u00e9guli\u00e8re avec cette r\u00e9f\u00e9rence. Il faut donc une connexion r\u00e9seau, m\u00eame partielle. Plus la pr\u00e9cision attendue dans la synchronisation est forte, plus les moyens tant en r\u00e9seau qu&rsquo;en relais doivent \u00eatre importants, rapides et fiables. Sur des r\u00e9seaux isol\u00e9s ou fortement fragment\u00e9s, la synchronisation du temps devient illusoire. Et cela peut arriver partout sur la plan\u00e8te : catastrophe naturelle, guerre, dictature, repli sur elles-m\u00eame des nations, etc&#8230;<\/p>\n<p style=\"text-align: justify;\">Le probl\u00e8me sur la r\u00e9f\u00e9rence de temps n&rsquo;est pas que th\u00e9orique. Ce ne serait pas \u00ab\u00a0juste un probl\u00e8me d&rsquo;affichage\u00a0\u00bb. Beaucoup de protocoles de s\u00e9curisation s&rsquo;appuient aujourd&rsquo;hui sur le temps et exigent un horodatage assez pr\u00e9cis. Lorsque l&rsquo;on se connecte au site web de sa banque, lorsque l&rsquo;on renvoie un message sign\u00e9, lorsque l&rsquo;on se connecte \u00e0 un r\u00e9seau d&rsquo;entreprise, les jetons de session et autres certificats \u00e9lectroniques ont une dur\u00e9e de vie limit\u00e9e ou une date d&rsquo;expiration. Tous ces services impliquent d&rsquo;avoir un r\u00e9seau pour fonctionner et peuvent d\u00e9livrer une r\u00e9f\u00e9rence de temps en m\u00eame temps que ces services. Par contre, des documents comme les passeports sont aussi \u00e9mis avec une date d&rsquo;expiration et il serait difficile de v\u00e9rifier leur validit\u00e9 sans une r\u00e9f\u00e9rence de temps commune.<\/p>\n<p style=\"text-align: justify;\">Le syst\u00e8me de gestion du temps dans <a title=\"Projet nebule\" href=\"http:\/\/www.nebule.org\" target=\"_blank\">nebule<\/a> est encore aujourd&rsquo;hui bas\u00e9 sur l&rsquo;horloge interne de la machine qui exploite les liens. Il utilisera aussi l&rsquo;entit\u00e9 <a title=\"kronos\" href=\"http:\/\/kronos.nebule.org\/\" target=\"_blank\">kronos<\/a> comme r\u00e9f\u00e9rence. Mais il est pr\u00e9vu de calculer et m\u00e9moriser les d\u00e9calages de temps entre machines. Cette capacit\u00e9 \u00e0 m\u00e9moriser les variations de temps rend l&rsquo;ensemble plus r\u00e9silient en cas de catastrophe ou tout simplement de fragmentation volontaire des r\u00e9seaux. A faire&#8230;<\/p>\n<p style=\"text-align: justify;\">Sur un r\u00e9seau maill\u00e9 comme sur Internet, la structure globale ressemble \u00e0 un fractal dans lequel on peut zoomer et retrouver les m\u00eames formes de connexions entre n\u00c5\u201cuds de r\u00e9seau. Un r\u00e9seau Internet fragment\u00e9 serait s\u00fcrement toujours maill\u00e9 et toujours interconnect\u00e9, mais la structure globale ressemblerait plut\u00f4t \u00e0 une n\u00e9buleuse, c&rsquo;est \u00e0 dire sans structure marqu\u00e9e. Dans ce deuxi\u00e8me cas, les synchronisations de temps seraient souvent conflictuelles.<br \/>\nLe postulat que l&rsquo;on peut simplement synchroniser tout le monde sur une seule et unique r\u00e9f\u00e9rence de temps est une facilit\u00e9 de notre \u00e9poque. Mais c&rsquo;est une facilit\u00e9 qui n&rsquo;est ni \u00e9vidente ni d\u00e9finitivement acquise.<\/p>\n<h2 style=\"text-align: justify;\">Prise en compte des \u00e9v\u00e9nements futurs, ou pas<\/h2>\n<p style=\"text-align: justify;\">Avec synchronisation du temps entre les machines ou pas, il peut arriver d&rsquo;une marque de temps soit dans le futur ou interpr\u00e9t\u00e9e comme telle. Que fait-on dans ce cas ? Est-ce une erreur de l&rsquo;\u00e9metteur ? Est-ce une erreur de synchronisation ? Est-ce une erreur de zone de temps ? Est-ce un acte malveillant ?<br \/>\nEt c&rsquo;est pareil pour une date du pass\u00e9 qui ne correspond manifestement pas \u00e0 l&rsquo;\u00e8re informatique. Est-ce une erreur de r\u00e9f\u00e9rence de temps ?<\/p>\n<p style=\"text-align: justify;\">On peut tenir compte d&rsquo;une marque de temps probl\u00e9matique et l&rsquo;interpr\u00e9ter telle quelle vis-\u00e0-vis des autres date. Dans le cas d&rsquo;une suppression de lien marqu\u00e9 dans le futur, cette suppression est valable. Mais, parce qu&rsquo;elle est dans un futur un peu lointain, il va devenir impossible de r\u00e9habiliter ce lien avant cette date puisque sa suppression sera toujours valide temporellement. Il faudrait un nouveau lien plus loin dans le futur qui, lui, emp\u00eacherait la suppression avant cette nouvelle date dans le futur&#8230; On ne s&rsquo;en sort pas.<\/p>\n<p style=\"text-align: justify;\">On peut ne pas tenir compte d&rsquo;une marque de temps invalide et l&rsquo;\u00e9carter du traitement comme \u00e9tant incoh\u00e9rente. Dans ce cas un lien de suppression dans le futur ne serait plus utilis\u00e9 avant que notre espace temps ne soit arriv\u00e9 effectivement \u00e0 cette date.<br \/>\nMais dans ce cas la synchronisation de temps ou l&rsquo;utilisation d&rsquo;une r\u00e9f\u00e9rence de temps a beaucoup plus d&rsquo;importance puisque des dates du calendrier arabe, h\u00e9bra\u00efque, indien, chinois ou copte n&rsquo;ont pas la m\u00eame signification. Des \u00e9v\u00e9nements interpr\u00e9t\u00e9s comme \u00e9tant dans le futur seront automatiquement ignor\u00e9s alors qu&rsquo;ils sont peut-\u00eatre valides.<\/p>\n<p style=\"text-align: justify;\">La non prise en compte de liens avec une date dans le futur semble la meilleur solution, mais elle n&rsquo;est pas encore impl\u00e9ment\u00e9e dans <em>nebule<\/em>. A faire&#8230;<br \/>\nL&rsquo;impl\u00e9mentation doit aussi permettre de g\u00e9rer sereinement les d\u00e9calages, pr\u00e9visibles, du temps entre diff\u00e9rentes machines m\u00eame si elles ont la m\u00eame r\u00e9f\u00e9rence de temps. En dessous de la seconde, une synchronisation globale est illusoire. Avec une connexion \u00e0 Internet intermittente, une pr\u00e9cision de l&rsquo;ordre de la minute est plausible. Il faut donc pr\u00e9voir un param\u00e8tre afin de d\u00e9finir le d\u00e9calage maximal de temps que l&rsquo;on accepte pour des liens dans le futur.<\/p>\n<p style=\"text-align: justify;\">L&rsquo;utilisation de la norme ISO8601 est indispensable mais pas suffisante. Tous les calendriers n&rsquo;utilisent pas cette forme et bien s\u00fcr n&rsquo;ont pas la m\u00eame r\u00e9f\u00e9rence de temps. De plus, si il permet une grande pr\u00e9cision, il ne permet pas de manipuler le temps sur ce que l&rsquo;on appelle le temps long. Il serait int\u00e9ressant de pouvoir manipuler d&rsquo;autres calendriers, peut-\u00eatre avec un pr\u00e9fixe sp\u00e9cifique.<\/p>\n<h2 style=\"text-align: justify;\">Lien juste \u00e0 temps<\/h2>\n<p style=\"text-align: justify;\">Les liens de <em>nebule<\/em> n&rsquo;ont pas vocation \u00e0 permettre un traitement complexe des donn\u00e9es, juste \u00e0 permettre leur transmission et faciliter le traitement.<\/p>\n<p style=\"text-align: justify;\">Manipuler des donn\u00e9es avec des \u00e9ch\u00e9ances n&rsquo;est possible qu&rsquo;en associant un objet contenant une date avec un objet m\u00e9ta sp\u00e9cifique. Le traitement \u00e0 \u00e9ch\u00e9ance est r\u00e9alis\u00e9 par le programme qui interpr\u00e8te cette forme de lien. Il est facile de r\u00e9aliser au niveau des liens d&rsquo;une prise en compte \u00ab\u00a0\u00e0 retardement\u00a0\u00bb d&rsquo;un lien. Le mod\u00e8le pourrait \u00eatre l&rsquo;encapsulation d&rsquo;un lien dans un autre lien d&rsquo;un type particulier, sur le mod\u00e8le du lien offusqu\u00e9. Au lien d&rsquo;une cl\u00e9 de chiffrement, ce pourrait \u00eatre une date de prise en compte.<br \/>\nCe nouveau type de lien est de fait en concurrence avec un lien avec une date dans le futur. Mais cela pr\u00e9senterait quand m\u00eame quelques avantages. Le premier, c&rsquo;est que la date pourrait \u00eatre aussi une p\u00e9riode de prise en compte. Mais surtout, l\u00e0 o\u00f9 un lien dans le futur pourrait \u00eatre supprim\u00e9 parce que consid\u00e9r\u00e9 invalide, un lien d\u00e9di\u00e9 \u00e0 cet usage serait beaucoup plus l\u00e9gitime.<\/p>\n<p style=\"text-align: justify;\">Cette id\u00e9e est encore \u00e0 r\u00e9fl\u00e9chir&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il y a deux fa\u00e7ons de g\u00e9rer le temps et deux fa\u00e7ons pour le prendre en compte. C&rsquo;est la suite des articles Horodatage, ISO 8601, suite et Marque de temps. La r\u00e9f\u00e9rence de temps, ou pas On peut g\u00e9rer le temps comme \u00e9tant un pr\u00e9requis commun \u00e0 tous les acteurs. Dans ce cas, toutes les &hellip; <a href=\"http:\/\/blog.nebule.org\/?p=1799\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Gestion temporelle partielle<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5,91,12,111,24,43],"tags":[209],"_links":{"self":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/1799"}],"collection":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1799"}],"version-history":[{"count":1,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/1799\/revisions"}],"predecessor-version":[{"id":2165,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/1799\/revisions\/2165"}],"wp:attachment":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1799"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1799"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1799"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}