{"id":103,"date":"2017-04-22T17:07:58","date_gmt":"2017-04-22T15:07:58","guid":{"rendered":"http:\/\/www.gatoux.com\/?page_id=103"},"modified":"2017-04-25T11:19:10","modified_gmt":"2017-04-25T09:19:10","slug":"la-couche-application","status":"publish","type":"page","link":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/la-couche-application\/","title":{"rendered":"La couche Application"},"content":{"rendered":"<h2>R\u00f4le<\/h2>\n<p><strong><span style=\"color: #ff0000;\">Rendre des services g\u00e9n\u00e9riques aux applications<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-195 alignright\" src=\"http:\/\/www.gatoux.com\/wp-content\/uploads\/2017\/04\/S1P14I2.gif\" alt=\"\" width=\"277\" height=\"299\" \/><\/span><\/strong><\/p>\n<p>Ne vous laissez pas abuser par son nom. La couche application n&rsquo;h\u00e9berge pas du tout l&rsquo;application. Elle est l\u00e0 pour rendre des services aux applications plac\u00e9es au-dessus d&rsquo;elles. En effet, nombre d&rsquo;applications ont besoin d&rsquo;\u00e9changer des fichiers, d&rsquo;\u00eatre accessibles \u00e0 distance par des terminaux en mode caract\u00e8res, de se baser sur des carnets d&rsquo;adresses pour identifier les utilisateurs, d&rsquo;\u00e9changer des messages, etc&#8230;<\/p>\n<p>Le d\u00e9veloppeur d&rsquo;application a alors deux choix possibles :<\/p>\n<ul>\n<li><strong>Il \u00e9crit du code au sein de son application<\/strong> qui permet de faire des transferts de fichier, ou de l&rsquo;\u00e9mulation de terminal distant, ou de g\u00e9rer un annuaire centralis\u00e9 ou partag\u00e9, ou encore de g\u00e9rer une messagerie. C&rsquo;est long, c&rsquo;est cher et ce n&rsquo;est pas portable (difficilement modifiable pour s&rsquo;adapter \u00e0 une autre architecture), sans compter que c&rsquo;est sp\u00e9cifique donc pas ouvert, donc pas OSI !<\/li>\n<li><strong>Il utilise des programmes standards<\/strong> de transferts de fichiers, d&rsquo;\u00e9mulations virtuelles de terminaux, d&rsquo;annuaires, ou encore de messageries. Il acc\u00e8de \u00e0 ses programmes par une interface normalis\u00e9e (un Gosub, pour les accros du Basic !), plus commun\u00e9ment appel\u00e9e <strong>API<\/strong> (Application Program Interface).<\/li>\n<\/ul>\n<p>La couche application offre justement diff\u00e9rents services (messagerie, transfert de fichier, \u00e9mulation de terminal, annuaire, supervision, &#8230;). Ces services sont normalis\u00e9s et sont accessibles par des interfaces normalis\u00e9es d\u00e9nomm\u00e9es <strong>AE<\/strong> (Application Entity), \u00e9quivalent des <strong>API<\/strong>.<\/p>\n<p>L&rsquo;unit\u00e9 de donn\u00e9es du protocole est appel\u00e9e <strong>l&rsquo;APDU<\/strong> (Application Protocol Data Unit). Cette APDU est bien s\u00fbr en principe encapsul\u00e9e dans la PPDU du niveau 6.<\/p>\n<h2>Analogie avec l&rsquo;environnement TCP-IP<\/h2>\n<p>La plupart d&rsquo;entre-vous (par la force des choses !) appr\u00e9hendent mieux l&rsquo;environnement TCP-IP que l&rsquo;environnement OSI. A l&rsquo;inverse de la couche Pr\u00e9sentation qui n&rsquo;a pas d&rsquo;\u00e9quivalant en TCP-IP, on peut trouver dans l&rsquo;architecture TCP-IP un bon \u00e9quivalent de couche 7. Vous avez tous entendu parler de <strong>FTP<\/strong>, <strong>Telnet<\/strong> ou encore <strong>SNMP<\/strong> ? Le premier est un protocole de transfert de fichiers, le second un protocole d&rsquo;\u00e9mulation de terminal virtuel en mode caract\u00e8re et le dernier un protocole de supervision. Ces procotoles rendent des services aux applications IP qui les utilisent (typiquement votre Netscape ou Internet Explorer !).<\/p>\n<p>Ces protocoles issus de l&rsquo;environnement IP, je vous le rappelle, ne sont pas normalis\u00e9s ISO, mais on trouve les \u00e9quivalents dans l&rsquo;environnement OSI !<\/p>\n<h2>Exemples de services rendus et normes associ\u00e9es<\/h2>\n<p><strong><span style=\"color: #ff0000;\">1 &#8211; Le transfert de fichier avec RTSE : Reliable Transfert Service \u00c9l\u00e9ment<\/span><\/strong><\/p>\n<p style=\"padding-left: 30px;\"><strong>RTSE (ISO 9066)<\/strong> est un protocole de transfert de fichiers fiable (encore plus fiable que FTP). Beaucoup plus connu sous le nom d&rsquo;X400 en regard de son nom dans la normalisation UIT-T.<\/p>\n<p style=\"padding-left: 30px;\"><strong>FTAM (File Transfer Access and Management)<\/strong> est une application de transfert de fichier fiable r\u00e9f\u00e9renc\u00e9e sous la norme ISO 8571.<\/p>\n<p style=\"padding-left: 30px;\">Ces deux protocoles et application rendent des services similaires \u00e0 <strong>FTP<\/strong> bien que beaucoup plus \u00e9volu\u00e9s. On ne trouve pas dans l&rsquo;environnement OSI d&rsquo;\u00e9quivalent du TFTP (Trivial File Transfer Protocol) d&rsquo;IP, qui fonctionne en mode non connect\u00e9 (vous savez ce que \u00e7a veut dire maintenant !). En effet l&rsquo;environnement OSI fonctionne g\u00e9n\u00e9ralement en mode connect\u00e9 avec un niveau de qualit\u00e9 de service assez \u00e9lev\u00e9, ce qui n&rsquo;est pas le cas de TFTP !<\/p>\n<p><strong><span style=\"color: #ff0000;\">2 &#8211; La supervision d&rsquo;\u00e9l\u00e9ments de r\u00e9seaux et d&rsquo;application avec CMIP-CMISE :<\/span><\/strong><\/p>\n<p style=\"padding-left: 30px;\"><strong>CMIP<\/strong> (Common Management Information Protocol) est un protocole de supervision de r\u00e9seau au m\u00eame titre que SNMP d&rsquo;IP.<\/p>\n<p style=\"padding-left: 30px;\"><strong>CMISE<\/strong> (Common Management Information Service) d\u00e9fini le service requis pour la supervision (rappelez-vous ! OSI c&rsquo;est des normes de services et des normes de protocoles rendant ses services !).<\/p>\n<p style=\"padding-left: 30px;\"><strong>CMIP<\/strong> est d\u00e9crit dans la norme ISO 9596.<\/p>\n<p><strong><span style=\"color: #ff0000;\">3 &#8211; Un annuaire avec DS (Directory Service) :<\/span><\/strong><\/p>\n<p style=\"padding-left: 30px;\"><strong>DS <\/strong>(Directory Service), r\u00e9f\u00e9renc\u00e9e par la norme ISO 9594-1\/8 est plus connu sous le nom d&rsquo;X500, qui est en fait le nom de la norme UIT-T.<\/p>\n<p style=\"padding-left: 30px;\">Comme vous le savez sans doute, ce protocole permet de synchronisez des annuaires qui permettent de localiser \u00e0 peu pr\u00e8s n&rsquo;importe quel type de ressource (personnes physiques, serveurs d&rsquo;impressions, serveurs de fichiers, passerelles, applications, etc &#8230;). Ces annuaires sont tr\u00e8s utiles pour permettre aux applications d&rsquo;adresser les ressources n\u00e9cessaires.<\/p>\n<h2>L&rsquo;association de processus<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-196 alignleft\" src=\"http:\/\/www.gatoux.com\/wp-content\/uploads\/2017\/04\/S1P14I4.gif\" alt=\"\" width=\"491\" height=\"207\" \/>Nous avons vu pr\u00e9c\u00e9demment qu&rsquo;une application voulant utiliser des services de couche 7, doit s&rsquo;interfacer avec un <strong>AE<\/strong> (Application element), \u00e9quivalent \u00e0 une <strong>API<\/strong>. Lorsque cette application atteint l&rsquo;\u00e9l\u00e9ment de couche 7 d\u00e9sir\u00e9 (par exemple FTAM), elle est g\u00e9n\u00e9ralement mise en relation avec un \u00e9l\u00e9ment \u00e9quivalent \u00e0 l&rsquo;autre bout de la cha\u00eene de transmission. Il est alors n\u00e9cessaire d&rsquo;op\u00e9rer une synchronisation des processus, et de g\u00e9rer la mise en relation des services ne serait-ce que pour pouvoir diff\u00e9rencier des connexions <strong>FTAM<\/strong> (ou autres) distinctes et simultan\u00e9es entre m\u00eames applications !<\/p>\n<p>Cette fonction est assur\u00e9e par un module d\u00e9nomm\u00e9 <strong>ACSE<\/strong> (Association Control Service Element) normalis\u00e9 ISO 8649 pour le service et 8650 pour le protocole ou X217\/227 \u00e0 l&rsquo;IUT-T. Il permet d&rsquo;offrir les fonctions de base n\u00e9cessaires pour mettre en relation deux processus et pour contr\u00f4ler leur association.<\/p>\n<h2>Remarques<\/h2>\n<p>En r\u00e9sum\u00e9, la couche Application est une couche qui offre aux applications des sous-programmes et protocoles standards. Les utiliser, plut\u00f4t que d&rsquo;int\u00e9grer les fonctions dans un d\u00e9veloppement sp\u00e9cifique, offre des avantages en terme de portabilit\u00e9 des processus, d&rsquo;homog\u00e9n\u00e9it\u00e9 d&rsquo;architecture, de gains en d\u00e9veloppement.<\/p>\n<p>M\u00eame si la chose para\u00eet idyllique, ne nous leurrons pas. Utiliser des protocoles OSI s&rsquo;av\u00e8re souvent assez lourd et complexe. C&rsquo;est pourquoi, bien souvent si l&rsquo;on a besoin d&rsquo;une fonction de transfert de fichier (par exemple) l\u00e9g\u00e9re on ne s&rsquo;attachera pas les services OSI comme FTAM ou CFT (Cross File Tranfer). On pr\u00e9f\u00e9rera un petit protocole comme FTP ou un d\u00e9veloppement sp\u00e9cifique !<\/p>\n<p>Nous arrivons ici \u00e0 la fin de notre mont\u00e9e dans les couches &#8230; Une petite conclusion s&rsquo;impose &#8230;<\/p>\n<h5 align=\"center\"><a href=\"http:\/\/www.gatoux.com\/index.php\/la-couche-presentation\/\">Page Pr\u00e9c\u00e9dente <\/a>| <a href=\"http:\/\/www.gatoux.com\/index.php\/conclusion\/\">La Conclusion<\/a><\/h5>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>R\u00f4le Rendre des services g\u00e9n\u00e9riques aux applications Ne vous laissez pas abuser par son nom. La couche application n&rsquo;h\u00e9berge pas du tout l&rsquo;application. Elle est l\u00e0 pour rendre des services aux applications plac\u00e9es au-dessus d&rsquo;elles. En effet, nombre d&rsquo;applications ont besoin d&rsquo;\u00e9changer des fichiers, d&rsquo;\u00eatre accessibles \u00e0 distance par des terminaux en mode caract\u00e8res, de\u2026 <span class=\"read-more\"><a href=\"https:\/\/racine.gatoux.com\/lmdr\/index.php\/la-couche-application\/\">Lire la suite &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":14,"comment_status":"closed","ping_status":"closed","template":"page-templates\/full-width.php","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"class_list":["post-103","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages\/103","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/comments?post=103"}],"version-history":[{"count":3,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages\/103\/revisions"}],"predecessor-version":[{"id":334,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages\/103\/revisions\/334"}],"wp:attachment":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/media?parent=103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}