{"id":1775,"date":"2014-08-20T19:00:18","date_gmt":"2014-08-20T17:00:18","guid":{"rendered":"http:\/\/blog.nebule.org\/?p=1775"},"modified":"2016-03-29T19:00:47","modified_gmt":"2016-03-29T17:00:47","slug":"telechargement-et-ponderation-protocols-multiples","status":"publish","type":"post","link":"https:\/\/blog.nebule.org\/?p=1775","title":{"rendered":"T\u00e9l\u00e9chargement et pond\u00e9ration \u00e2\u20ac\u201c Protocols multiples"},"content":{"rendered":"<p style=\"text-align: justify;\">Suite des articles <a title=\"T\u00e9l\u00e9chargement et pond\u00e9ration\" href=\"http:\/\/blog.nebule.org\/?p=1765\" target=\"_blank\">T\u00e9l\u00e9chargement et pond\u00e9ration<\/a> et <a title=\"T\u00e9l\u00e9chargement et pond\u00e9ration \u00e2\u20ac\u201c activation\" href=\"http:\/\/blog.nebule.org\/?p=1769\" target=\"_blank\">activation<\/a>.<\/p>\n<p style=\"text-align: justify;\">Jusque ici, on utilise que le protocole HTTP. C&rsquo;est simple, pratique et instantan\u00e9.<\/p>\n<p style=\"text-align: justify;\">Mais il \u00e9tait pr\u00e9vu que les objets et liens <a title=\"Projet nebule\" href=\"www.nebule.org\" target=\"_blank\">nebule<\/a> puissent transiter par d&rsquo;autres protocoles, notamment la messagerie.<\/p>\n<p style=\"text-align: justify;\">On va prendre pour commencer le cas de la messagerie instantan\u00e9e, et plus pr\u00e9cis\u00e9ment XMPP qui est \u00e0 la fois fonctionnel, ouvert et universel.<br \/>\nContrairement \u00e0 ce que l&rsquo;on pourrait penser, l&rsquo;utilisation de ce protocole est assez ais\u00e9. Il faut g\u00e9rer une connexion TCP, transmettre des messages pr\u00e9-format\u00e9s en XML et r\u00e9cup\u00e9rer la r\u00e9ponse toujours en XML.<br \/>\nCe qui est plus probl\u00e9matique par contre, c&rsquo;est qu&rsquo;une instance de <em>nebule<\/em> soit bidirectionnelle, c&rsquo;est \u00e0 dire qu&rsquo;elle soit aussi serveur. Pour qu&rsquo;elle puisse \u00eatre serveur, elle doit fonctionner en permanence, or en HTTP, une fois la page charg\u00e9e, tout s&rsquo;arr\u00eate jusqu&rsquo;\u00e0 la prochaine page demand\u00e9e.<br \/>\nIl faut utiliser un serveur XMPP sur lequel se connecte un autre programme. Ce programme agira comme tout client XMPP et fera la traduction vers les sp\u00e9cificit\u00e9s <em>nebule<\/em>, en gros r\u00e9pondre aux demandes d&rsquo;objets et de liens.<br \/>\nLe serveur XMPP peut garder des messages pour les clients d\u00e9connect\u00e9s. Pour le c\u00f4t\u00e9 programme serveur de <em>nebule<\/em>, \u00e7a n&rsquo;a pas d&rsquo;int\u00e9r\u00eat, ils peuvent \u00eatre supprim\u00e9s lors de la connexion initiale au serveur XMPP. Par contre, c\u00f4t\u00e9 client <em>nebule<\/em>, ce pourrait \u00eatre des r\u00e9ponses \u00e0 des requ\u00eates pr\u00e9c\u00e9dentes. Mais si l&rsquo;on respecte le sens des \u00e9changes, on ne doit accepter que les r\u00e9ponses correspondantes \u00e0 des requ\u00eates, et donc il faut suivre ces requ\u00eates.<\/p>\n<p style=\"text-align: justify;\">On continue avec le protocole de messagerie SMTP. Contrairement \u00e0 XMPP vu pr\u00e9c\u00e9demment, la messagerie SMTP n&rsquo;est pas temps r\u00e9el, c&rsquo;est \u00e0 dire instantan\u00e9e. C&rsquo;est m\u00eame pire, elle a une contrainte de temps tr\u00e8s large. Et ceci m\u00eame si un message peut traverser le monde dans la seconde. Ce qui est \u00e0 son avantage en temps normal est un probl\u00e8me dans notre cas.<br \/>\nOn peut donc l&rsquo;inclure dans les protocoles en esp\u00e9rant que les r\u00e9ponses seront rapides.<br \/>\nUn autre probl\u00e8me, c&rsquo;est qu&rsquo;il faut travailler avec un serveur de messagerie tiers avec deux voir trois protocoles diff\u00e9rents. En effet, le SMTP ne sert qu&rsquo;\u00e0 l&rsquo;envoi, la r\u00e9ponse doit \u00eatre consult\u00e9e avec POP ou IMAP.<br \/>\nDifficile donc d&rsquo;impl\u00e9menter facilement ce protocole. Il faudrait presque refaire un serveur d\u00e9di\u00e9 \u00e0 <em>nebule<\/em>, ce qui serait plut\u00f4t improductif&#8230;<\/p>\n<p style=\"text-align: justify;\">Il va falloir maintenant normaliser pour chaque protocole les requ\u00eates\/r\u00e9ponses.<\/p>\n<p style=\"text-align: justify;\">\u00c9videmment, la liste support\u00e9e n&rsquo;est pas ferm\u00e9e. D&rsquo;autres protocoles pourront \u00eatre ajout\u00e9s par la suite&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Suite des articles T\u00e9l\u00e9chargement et pond\u00e9ration et activation. Jusque ici, on utilise que le protocole HTTP. C&rsquo;est simple, pratique et instantan\u00e9. Mais il \u00e9tait pr\u00e9vu que les objets et liens nebule puissent transiter par d&rsquo;autres protocoles, notamment la messagerie. On va prendre pour commencer le cas de la messagerie instantan\u00e9e, et plus pr\u00e9cis\u00e9ment XMPP qui &hellip; <a href=\"https:\/\/blog.nebule.org\/?p=1775\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">T\u00e9l\u00e9chargement et pond\u00e9ration \u00e2\u20ac\u201c Protocols multiples<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[92,7,13,101,20,114,24,32,52],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/1775"}],"collection":[{"href":"https:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1775"}],"version-history":[{"count":1,"href":"https:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/1775\/revisions"}],"predecessor-version":[{"id":2170,"href":"https:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/1775\/revisions\/2170"}],"wp:attachment":[{"href":"https:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1775"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1775"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1775"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}