Brevet FR3086135A1 — publié le 20200320

ÉTABLISSEt :NT D'UNE SESSION DANS ).NNEMENT INFORMATIQUE DISTR, UE il [0001] La présente invention concerne un procédé et un système pour établir une session dans un environnement distribué. La présente invention concerne par ailleurs un procédé et un système pour établir une session dans un environnement distribué entre des systèmes/serveurs qui communiquent en utilisant des protocoles de messages différents. EX'I'T [0002] De nombreux systèmes existants sont configurés po fo rnir un dispositif externe avec une session comprenant diverses conversations entre des applications logicielles du système et un dispositif externe et dans lequel le dispositif externe et le système opèrent en mode client serveur. Le document US2008/2886441 décrit un ces systèmes connus. [0003] Ces solutions existantes sont efficaces dans des environnements homogènes, c,- 20 à-d. des environnements dans lesquels les applications logicielles impliquées dans une session utilisent im protocole commun. [0004] Cependant, avec ces systèmes systètrie existants, il est particulièrement difficile d'avoir des conversations qui. utilisent des protocoles différents tout en partageant un contexte commun pour la session dans son intégralité. La plupart du temps, le contexte pour une session donnée doit être dupliqué pour chaque protocole utilisé par les serveurs d'applications dédiés. Ces solutions existantes consortnnent des capacités de traitement et de stockage de données. En particulier, les systèmes existants ne fournissent pas de solution efficace pour migrer graduellement, à partir d'applications utilisant des 30 protocoles donnés, vers des applications utilisant d'autres protocoles tout en partageant le même contexte. [0005] Lors d'une transition vers une infrastructure telle n'un service (laaS), il est nécessaire de soutenir nativement les échecs qui peuvent survenir au cours des opérations tout en assurant une continuité des services pour !es utilisateurs. Ces échecs pourraient être à la fois planifiés et non planifiés, m-à-d.que les ordinateurs qui hébergent laaS peuvent tomber en panne, des machines virtuelles peuvent être arrêtées, et ainsi de suite. En effet la migration d'infrastructures existantes vers des plateformes laaS peut poser des problèmes techniques complexes en termes de compatibilité la cornpatibflité des services de stockage, la sécurité des machines virtuelles, la sécurité des don [0 EP2501107 décrit une méthodologie pour établir des conversations en utilisant des protocoles différents tout en partageant un contexte conumm pour la session complète. Cependant, la solution proposée par EP2501107 repose sur des requêtes de routaac, dépendantes du protocole de message détecté, vers des serveurs d'applications compatib. es, H en résulte que la solution proposée par EP2501107 nécessite l'utilisation de ressources infbrmatiques supplémentaires pour traiter la communication des messages dans une architecture tilieralserveur hétérogène. REM' DE L' N N 20 [00071 Un objet de la présente invention est de tOurnit un procédé et un système pour établir une session dans un environnement distribué en surmontant les limitations des solutions de l'art antérieur, [0008] objet de la présente invention est de tburnir un procédé et un stérne pour établir une session dans un environnement distribué en accommodant des plateformes inférmatiques différentes configurées pour échanger des messages dans une variété de formats, p. ex. une platefOrme infbrmatique fournie avec des services intégrant la sémantique HTTI> (REST). r001,91 Ces buts sont accomplis, selon avec le sastètrte et le procédé montrant les caractéristiques technique, des revendications indépendantes respectives. 'l10] Selon un premier as de la présente invention, le systè 'outras: une session à un dispositif externe is un environnement informatisé dist dans la session nécessite d'établir des conversations entre le dispositif externe et les serveurs d'applications du système, le dispositif externe et le système opérant en mode clientiserveur, le système opérant dans un mode entre le mode client et le mode serveur, le dispositif externe opérant dans l'autre mode crue ce soit le mode client ou le mode serveur, dans lequel chaque serveur d'application traite au moins une application logicielle le système comprenant au moins un intégrateur de services comprenant des moyens de routage contligurés pour 10 établir, au cours d'une session donnée, une conversation entre le dispositif externe et au moins un des serveurs d'applications, lions lequel l'intégrateur de services est configure prltir échanger des messages ei7 utilisant un premier protocole de messagerie avec un premier format de message, et dans lequel ledit au moins un serveur d'application est configure pour échanger des i. messages en utilisant un deuxième protocole de messagerie avec un deuxième format de message ; dans lequel le systèmenprend module de passerelle eotrliguré pour générer l'échange des messages entrant, entre l'intégrateur de services et ledit au moins un serveur d'application et les messages sortants entre ledit au moins un serveur d'application et 20 ntégrateur de services, dans lequel pour chaque message entrant sortant le module de passerelle est configure pour, avec au moins un moteur traitement de données recevoir une demande de message de la part dudit au moins un serveur d'application. et de l'intégrateur de services afin d'atteindre l'autre que ce soit le serveur d'application ou l'intégrateur de services ; niner si le message a té transmis dans tin format qui est compatible avec le protocole de message de la destination ; ton mat du message est identifié coiT r e étant e avec le protocole de message de la destination, convertir le format de message dans un fonnat qui est compatible avec le protocole de message i3.e la inatien de sorte qu'un message entrant cse, converti du premier format au deuxième format, et un message sortant est converti di deuxième format au premier format ; et transmettre le message entrant sortant à la destinationdésirée. [0011] Il a été constat: qu. e module de passcrell une conversation et d'échanger des messages entre des syst il est possible d'ouvrir utilisent des protocoles de message différents. Par ailleurs, par contraste a3,ux solutions existantes S identifiées, le module de passerelle met en oeuvre la conversion sur chaque message entrant/sortant. 11 en résulte que [e système de la présente invention nécessite moins de ressources informatiques pour gérer l'échange des messages entre des systèmes utilisant des protocoles de communication incompatibles. En outre, le module de passerelle est configure pour surveiller le fonctionnement de chaque serveur d'application connecté et ld par conséquent informe ['intégrateur de services (SI) lorsque le feractionnemerit d'un serveur d'application est perturbé. En utilisant ['information reçue du module de passerelle, l'intégrateur de services (SI) peut adopter une logique de mappage de session des moyens de routage de sorte que les conversations de sessions sont établies uniquement entre le dispositif externe et les serveurs d'applications opérationnels. Le system° peut 15 être fourni en communication avec une base de données de session qui peut stocker les attributs de contexte de la session établie. Dans Peventualité où Fun des serveurs d'applications échouerait, un autre serveur d'application peut être connecté à une session ouverte établie en accédant aux attributs de contexte de la session correspondante stockée dans la base de données de session, En outre,la hase de données de session peut être configurée pour stocker les changements e,. ectues au contexte de session par le serveur d'application au cours d'une session ouverte, [0012] Conformément odes de réalisation de ta présente invention, i'iniégrateur de services est coi/figuré pour communiquer avec le module de passerelle via un protocole XML, et'ou le protocole international EDIFACT (IEDI) etiou le protocole WH_ [0013] Conformément à des modes de réalisation rie la présente invention, ledit moins un serveur d'application est configure pour communiquer avec le module de passerelle en utilisant un protocole i-ITTP. 30 afhhrrnméritem à des modes de ré isation de la preserlie invention, ledit au rio in. application comprend des composants OJF (Structure Java Ouverte). [0015] ll a été "en fournissant le module dc passerelle, il est possible de réaliser une intégration dans des services d'architecture informatique actuels pris en charge par une sémantique liTTP (R EST). Par exemple, dans un système de réservation informatique (CRS) fourni avec un mécanisme d'intégration de services (intégrateur de services ou Si) il est possible de rencontrer des difficultés qui compliquent la phase d'intégration des services i-V1TTP. En effet, même si le module IS prend en charge les services intégrant la sémantique HTTP (REST), I1 utilise EDWACT et, les technologies de protocole de transport logique-interconneetion-groupements (ICIE) pour échanger de l'information. Le protocole TCIL apporte plusieurs fonctions de transport (longueur de donnée, détection d'erreur, segmentation, multiplexage'). En outre, même si la prise en charge des formats REST/JSON et SOAP!HTTP par la plateforme TEE ne pose pas de difficulté particulier, l'implémentation de l'infrastructure 1S augmente la complexité d'intégration des composants de structure Java ouverte OJF (Open Java Framework). 11 a été constaté qu'en fournissant le module de passerelle il est possible de convertir tout le trafic entrant du SI en format trrirP standard et de convertir tout le trafic sortant HTTP en format X7v1E., ou E.DIF ACT par l'intermédiaire du protocole TOL. Il en résulte qu'avec le système de la présente invention il est possible de fournir une synergie fonctionnelle entre l'intégrateur de services internes et différentes platefôrrnes informati .s standard, p. ex. la plateforme informatique configurée pour échanger des messages en utilisant le protocole HTTP/SOAP. Les dispositifs externes peuvent interagir avec le système configuré en mode client/serveur ou vice versa. Ainsi, les dispositifs externes peuvent envoyer des requêtes au système, ou inversement. Typiquement ce type de dispositifs externes peut inclure un ordinateur personnel, des serveurs fonctionnant sur des sites Web et autres dispositifs. Par exemple, ce dispositif externe peut être un site Web permettant aux utilisateurs de réserver et d'acheter des produits et des services de voyage de tourisme p. ex avion, train, location de voiture ou hôtel. Le dispositif externe peut aussi être un système faisant partie d'un système de réservation et tinii envois des requêtes relatives d une disponibilité pour un voyage (typiquement des requêtes relatives la disponibilité d'un soi). Les dispositifs externes peuvent aussi fonctionner en mode serveur alors que le système fbnctiorme cri mode client. Des exemples typiques de ces dispositifs externes sont des unités de traitement ou de banque de données qui fournissent les données au 6 système. Par exemple, un tel dispositif externe est une banque de données gérée par une entreprise qui fournit des produits et des services de voyage et de tourisme. La. banque de données peut être un inventaire chargé de la disponibilité des vols et géré par une compagnie aérienne ou un système de distribution globale RHYS). [0016] conversation et une communication entre deux composants, les composants étant un dispositif externe et un serveur d'application du système où étant deux serveurs d'applications du système. Un seul protocole est utilisé par conversation. 10 [0017] Une transaction comprend toutes les conversations et le traitement requit pour satisfaire une requête. Un appel peut être initié par un dispositif externe ou par un serveur d'application peur établir une conversation. [0018] Une session comprend habituellement iiric plurald é de conversations et peut 15 comprendre une pluralité de transactions. Une session peut être associée à un contexte. Le contexte peut être généré par les serveurs d'applications etiou peut être fourni par un dispositiU externe. [0019] Selon des modes de réalisation de la présente invention' le module de passerelle 20 est configuré pour exécuter simultanément de multiples taches pour chaque message entrant et/ou sortant. [0020] Selon des lu isation de la présente invention, lesdites multiples tâches raque des activités suivantes : conversion de messages, transmission de messages, expiration de session, nettoyage de session, surveillance de session, et du serveur d'application. [0021] Selon des modes de réalisation de la présente invention, _ le de passerelle est configure pour exécuter un nombre de fils d'exécution parallèles pour l'exécution desdites multiples tâches, dans lequel les fils d'exécution parallèles sont gérés par l'intermédiaire d'au moins un fichier de t lion comprenant un nombre de paramètres de système configurables: [0022] fi a été constaté que l'apport d'une passerelle configurable multi filsrèsent l'avantage que le fonctionnement de la passerelle et la fâche en cours d'exécution peuvent être modifies facilement et rapidement sans qu'il soit nécessaire de reprogrammer la totabtè de l'unité. Par ailleurs, le nombre de tâches effectuées par le module de passerelle peut être configuré directement par un utilisateur, (p. ex., un administrateur ou un processus selon les besoins du système. En outre, le système peut capable d'exécuter un nombre de fils d'exécution parallèles pour exécuter de multiples tâches, selon les besoins du système. Le nombre de fils d'exécution parallèles peut être géré par 10 l'intermédiaire d'un nombre de paramètres configurables qui peuvent liure partie d'un fichier de configuration. 1.1 a été constaté qu'en fournissant un module de passerelle configurable il est possible d'ajuster la fonctionnalité du système facilement et sans nécessiter des modifications majeures aux parties restantes du système. Il en résulte que l'intégration de systèmes hétérogènes peut être accomplie plus rapidement. [00231 Selon des modes de réalisation de la présente invention, le système comprend au moins une base de données de session configurée pour stocker les attributs du contexte sur une session ouverte. 20 11 a été constaté qu'en stockant le contexte attribué à une session ouverte dans une base de données de session présente l'avantage de connecter rapidement un. serveur d'application une session ouverte établie. En outre, la base de données de session peut être configurée pour stocker les changements ayant affecté le contexte de session par le serveur d'application au cours d'une session ouverte. Par conséquent, les changements ayant affecte le contexte de session peuvent être enregistrés et, si nécessaire, communiqués â d'autres parties du système. [00251 Selon des modes de réalisation de la Présenteinvention, chaque serveur d'application comprend un composant de décharge de session comprenant un container de stockage configure pour stocker une copie des attributs de contexte de la session. 8 F00261 Selon des modes de réalisation de la présente invention, le composant de décharge de session comprend un composant de gestion de session configure pour surveiller les changements effectués sur la copie des attributs de contexte de session et par conséquent pour metire à jour, au moins partiellement, les attributs de contexte de session correspondants stockés dans la base de données de session. [00271 Selon des modes de réalisation de la présente i#fveluio t, le composant de décharge de session est configure pour obtenir les attributs de contexte f une conversation de session ouverte à partir de la base de données de session. [00,'8E Selon des modes de réalisation de la présente invention, k composaa t de gestion de session est configure pour, lorsque des changements sont détectés dans la conversation de session ouverte, mettre en oeuvre une opération de validation atomique par laquelle au moins certains des attributs de la copie de contexte de session sont mis à jour simultanément. [00291 Selon des modes de -o., lisation de la présente invention, le composant de gestion de session est confiuuré pour empêcher le renvoi de sessions expirées à un serveur d'application. 20 [OC été constaté mie ort d'un composant de décharge de session avec un composant de gestion de session présente l'avantage que tout changement effectué au contexte de session par l'application est reflété dans les données de session stockées à la fois localement dans le composant de décharge de session, p. ex. dans un container de stockage, etiou dans la base de données de session, Par ailleurs le composant de gestion de session est capable d'effectuer une opération de validation atomique, ll en résulte qu'au moins certains des attributs de contexte de session stockés qui peuvent être stockés dans le composant de décharge de session etion dans la base de données de session sont à jour simultanément. li eil résulte que toutes les conversations de session entrantes/sortantes sont fournies avec la version la plus récente du contexte de session, minimisant ainsi le nombre d'échecs qui peut survenir dû à l'utilisation de données de session obsolètes. Par ailleurs, en fournissant un composant de décharge de session, un 9 dispositif client distant peut re oindr ne session ouverte établie en cours d'ex sur un serveur d'application, p. ex. via une application Web en cours d'exécution sur un serveur utilisant les données de contexte de session stockées dans la base de données de session. f00111 Selon des modes de r on, an procédé pour fournir un dispositif externe avec une session dans un environnement informatisé distribué, dans lequel la session nécessite d'établir des conversations entre le dispositif externe et des serveurs d'applications du systéme, dispositif externe et le système opérant en mode 10 client/serveur, le système fonctionnant dans un mode entre k mode client eu le mode serveur, le dispositif externe fonctionnant dans l'autre mode que ce soit le mode client ou le mode serveur, dans lequel chaque serveur d'application traite au moins une application logicielle, k procédé comprenant les étapes suivantes : la fourniture d'au moins un intégrateur de services comprenant des moyens de routage effectuant au moins une étape d'établissement, pour une session donnée, d'une conversation entre le dispositif externe et au moins un des serveurs d'applications. dans lequel l'intégrateur de services est configure pot r échanger- es sages en UtlliSînt un premier protocole de messagerie avec un premier format t message, et dans lequel ledit au moins un serveur d'application est configure pour échanger des messages en utilisant un deuxième protocole de messagerie avec un deuxième format de message dans lequel, le iro.,ic comprend la gestion, par un module de pas erelle, clé l'échange des messages entrants entre l'intégrateur de services et ledit au moins un serveur d'application, et des messages sortants entre ledit au moins n serveur d'application et 'intégrateur de services, dans lequel pour chaque message entrant/sortant le module de passerelle effectue, avec au moins un moteur de traitement de données, les étapes suivantes la réception d'une demande de message dudit au moins un serveur d'application et de l'intégrateur de services pour atteindre l'autre que ce soit le serveur d'application 30 ou l'intégrateur de services ; le fait de déterminer si le message a été transmise dans un `unirai qui est compatible avec le protocole de message de la destination, si le format de message est identifiécomme étant incompatible avec le protocole ir message de la destination, la conversion duformai du message vers un format qui est compatible avec le protocole de message de la destination de sorte qu'un message entrant est converti du premier formai au deuxième format, et un message sortant est converti du deuxième format au premier format ; et transmettre le message entrain/sortant vers la destination BREVE DESCRIPTION DES DESSINS [0032] Les dessins suivants so e d'exempte pour décrire, et expliquer de façon détaillée divers aspects de l'invention. Figure I montre un svste de ta. présente invention, cont rme l desmodes de réalisation [,00.341 La Figure 2 montre une implémentation exemplaire du ,nodule passerelle conforme à modes de réalisation de la présente invention. [00351 La Figure 3 montre une implémentation exemplaire du composant 'e décharge de session conforme à modes de réalisation de la présente invention. [0036] Lir Figure 4 montre un exemple de système conforme a des modes de réalisation de la présente nvention. dans lequel le module de passerelle est intégré avec les serveurs application dans la même machine de serveurs. 0 La Figure 5 montre un réalisation exemplaire du protocole 'OEIL conforme à des modes de réalisation ide la présente invention. li DESCRIPTION DÉTAL t00381 La présente invention sera illustrée en utilisant les modes réalisation exemplaires montrés dans les figures i à 5 qui seront décrits de Luçon plus détaillée ci-dessous. Il faut notet que. toutes les références fa.ï tes aux dimensions sont seulement indicatives et ne limitent d'aucune façon l'inventim Alors que l'invention a été montrée et décrite par référa à certains modes de réalisation illustrés dans la présente, l'homme de métier comprendra que diverses modifications de formes et de détails, peuvent y être 10 apportées sans pour autant s'éloigner du champ d'application de l'invention couvert par les revendications en annexe. Par ailleurs, alors que l'invention a ét décrite avec des références à un procède particulier et à un système pour établir une session dans un environnement distribué, l'homme de métier comprendra que des changements de formes et de détails peuvent être apportés pour faciliter d'autres types de procédés erjou de systèmes sans s'éloigner du champ d'application de l'invention couvert par les revendications en annexe, [0039] 1.,a Figure l montre un système cordonne à modes de réalisation de la présente invention. Le système est configure pour établir une session dans un environnement distribué entre une pluralité de dispositifs externes 200, 300, 400 et au moins un serveur d'application A 1 -C4, Chaque serveur d'application traite une application logicielle. De façon avantageuse, la même application logis elle: est traitée indépendamment par une pluralité de serveurs d'applications, ces serveurs d'applications fonctionnant sur la même machine ou des machines différentes. Le système peut aussi être désigné comme étant 25 une plateforme. Les serveurs d'applications peuvent être organisés en groupes et sont aussi désignés comme étant des machines. Du [Mi que chaque serveur d'application du même groupe de serveurs d'applications traite la même application logicielle, une application logicielle donnée peut être traitée parallèlement sur plusieurs serveurs iplications. Par exemple, chaque serveur d'application Al, A2 du groupe 1 traite 30 l'application logicielle A, Chaque serveur d'application Bi, 132 traite l'application logicielle B. Chaque serveur d'application Ci, C2 traite l'application logicielle C. Pour une session donnée un seul serveur d'application opère par application logicielle. Ainsi parmi un groupe de serveurs d'applications qui traitent la mhrie application logicielle, un serveur d'application est dédié à cette session donnée. Chaque serveur d'application qui a besoin de stocker des données est fourni avec des moyens de stockage de données. Le serveur d'application dédié à une session donnée utilise les moyens de stockage de la machine sur Lequel il fonctionne, Le senteur d'application dédié à une session donnée peut ainsi stocker dans ces moyens de stockage la partie du contexte d'utilisateur qui est pertinente pour l'application logiciel le traitée par le serveur d'application Par exemple, comme le montre la figure I, chacun des serveurs d'applications Al C2, peut être fourni avec un composant déchargeur de session 60, agencé pour stocker localement, soit 10 sur une mémoire dédiée, soit dans une base de données, une copie des attributs le contexte de la session ouverte, lesquels attributs de contexte de session ouverte peuvent être stockés dans une base de données de session 90. Un intégrateur dc services 10 peut être fourni pour établir la communication entre les dispositifs externes 200, 300, 400 et les serveurs d'applications. L'intégrateur de services 10 peut être fourni avec des moyens de routage pour acheminer la requête reçue à partir des dispositifs externes 200, 300, 400 vers le serveur d'application approprié exécutant l'application logicielle requise. Par exemple, les nuiyens de routage peuvent être sous la forme d'un bus de serveur d'entreprise ([SE) comprenant une pluralité de composants E5I3 chargés d'acheminer les transactions, Un appel atteignant un composant ESB avec une requête pour rejoindre 20 une session est transmis au composant ES B chargé de cette session en consultant tous les composants ESB avec l'ID de session de cette session. L'intégrateur de services (SI) 10 peut être configure pour échanger des messages au {Mutat XML, EDIRACT ou EDIF.ACT international. D'autre part, les serveurs d'applications A1, C2, peuvent être wrirp ou un protocole d'accès à un objet simple (SOAP) basé sur des serveurs configurés pour 25 exécuter une application de logiciel d'application Web comprenant des composants de structure Java ouverte (OIE). Les serveurs d'applications A l , , C2 peuvent être arrangés pour communiquer en utilisant un protocole IITTP/SOAP. Dans cet arrannement, le protocole de messagerie. des serveurs d'applications serait incompatible avec le protocole de messagerie de l'intégrateur de services 10. Un module de passerelle 30 peut être h:agni 30 pour assurer que les dispositifs externes 200, 300, 400 peuvent accéder au service offert par les serveurs d'applications' le module de passerelle 30 peut être configure pour gérer l'échange de messages entrants qui sont des messages envoyés par :'intégrateur de 13 dit au moins un serveur d'application, et les messages sortants qui sonÉ partir dudit au moins un serveur d'application vers le SI 10. De cette façon, le module de passerelle 30 peut effectuer la conversion nécessaire fheilitant ainsi l'échange des messages entre les messages de systèmes ayant des protocoles de communication de message différents, Le module de passerelle 30 peut comprendre un produit-programme d'ordinateur téléchargé dans une mémoire du système et contenant un ensemble d'instructions exécutables qui lorsqu'elles sont exécutées par au moins un processeur de données, amènent le système â mettre en les étapes suivantes recevoir une demande de message dudit au moins un serveur d'application et din SI 10 pour atteindre l'autre que ce soit le serveur d'application ou le SI 10 ; déterminer si le message a été transmis dans un format qui est compatible avec le protocole de message de la destination ; si te format de message est identifié comme était incompatible avec. lel de message de la destination, convertir le format du message vers un format qui est compatible avec le protocole de message de la destination de sorte qu'un message entrant est converti du premier format au deuxième format est un message sortant est converti du deuxième format au premier format ; et transmettre le message entrant/si. destination désirée. 20 [0040] Le module de passerelle 30 peut être fo unit ec>m me un composant séparé ries serveurs d'applications, coinme le montre la Figure 1 ou il peut eine intégré avec les serveurs d'applications sur la même machine comme le montre la Figure. 4, [0041] La Figure de réalisation de la pré e uni exemple d'un module de passerelle 30 conforme â modes e invention. Le module de passerelle 30 peut comprendre un moteur de traitement 40 configure pour mettre en oeuvre une pluralité de tâches incluant une quelconque des tâches suivantes : conversion de message, transmission de message, expiration de session, nettoyage de session, surveillance de session et surveillance du serveur d'application. Le composant de passerelle 31) peut mettre eu oeuvre au moins 30 certaines des tâches en mode multi fils, c.-à-d. simultanément, au séquent ellement, c.-à- d. l'un après l'autre, Le mode d'opération du module de ulti fils ou configuré via un moteur de configuration 50 qui peut comprendre au moins un fichier de configurationavec un ensemble de paramètres de configurations pouvant être manipulés par un utilisateur tel qu'un administrateur via l'interface utilisateur, ou d'une autre façon connue de l'homme de métier. Le composant de passerelle 30 peut être configure de sorte que quand il détecte un échec d'un serveur d'application Al ,' ., C2 il communique brmation concernant l'échec de l'application au SI 1.0. Le SI 10 peut à son tour, en utilisant L'information reçue par /é module de passerelle 30, adapter le nappa fie logique des moyens de routage afin d'assurer qu'une session de conversion est établie uniquement avec le serveur d'application opérationnel Al ,... C2, empêchant ainsi ou du moins réduisant la possibilité qu'une session soit avec un serveur d'application hors de service, ce qui peut réduire le taux d'échec conversion de session. [00421 Comme le montre la Figure 3, le déchargeur de session 60 peut être fourni avec, un container de stockage 70 configuré pour stocker au moins une copie des attributs de contexte de la session stockée dans la base de données de session 90. Comme le montre la Figure 3, un composant de gestion de session 80 peut être fourni comprenant la logique de traitement qui peut être configurée pour surveiller les changements effectués sur le contexte de session lors d'une session ouverte et pour mettre à jour en conséquence, au moins partiellement, les attributs du contexte de session stockés dans la base de données 20 de session 90, Lors de la détection d'un changement, le composant de gestion de session peut être configuré pour meure en oeuvre une opération de validation atomique, de sorte qu'au moins certains des attributs du contexte de session, stockés localement dans le composant de décharge de session 60 et/ou dans la base de données de session 90, soient mis à jour simultanément. Le composant de gestion de session 80 peut être configuré pour 2.5 empêcher des sessions expirées d'être renvoyées à une application éliminant ainsi le besoin de vérifier l'expiration avant d'utiliser une session. Par exemple, lors de l'expiration de la session, le composant de nestion de session. 80 peut émettre une clé de nettoyage de session qui est utilisée pour nettoyer les données stockées au cours de la session. L'opération visant à nettoyer peut impliquer le nettoyage, c.-à-d. l'enlèvement, 30 des données de session stockées dans la base de données de session 90 ettou dans la copie de données de session stockée localement sur le déchargeur de session 60. L'opération de nettoyage peut être mise en oeuvre dans une fenêtre de lems prédéterminée à partir de de la clé de session, ex.. dans les 5 minutes suivant l'émission a session [0043] La g m mode de réalisation exemplaire du protocole de transport lue-intercoion-groupement (ICIL) qui apporte plusieurs fonctions de transport (longueur de donnée, détection d'erreur, segmentation, multiplexage). Une des fol ctiormalit s principales du TCIL et d'apporter une transparence d'emplacement physique aux partenaires de communication associés à des stratégies de basculement. Le protocole TCIL peut être implémenté, p. ex. sur TCP/IP ou urw/IP et même sur IPC. 10 Comme le montre la Figure 4, un message T-CIL est divisé en 3 parties : l'en-tête T-CIL à taille fixe les extensions ] 911, (opilonnei) à, taille et les données de message. [0044 rnant le format de .ête TCIL, les messages TCIL sont eneapsulés dans des segments TCP, ou passés via des mécanismes IPC. Les en-têtes TCP/IP comportent plusieurs champs d'informations tels que tes ports adresse des hôtes de destination et de la source. 20 [0045] Les champs alphabétiques de l'ensemble des caractères sont en format ASCII. Si ce n'est pas spécifié, la représentation est binaire et l'ordre des octets big-endian est [00461 TM: est un en-tête de transport dépend pas des autres couches de réseau is basses et plus élevées) et peut ainsi être utilisé avec tout protocole de conversation tel qu' [EDI. [00471 Iln générai, les routines exécutées pour mettre en oeuvre les modes de réalisation l'invention, qu'elles soient implémentées dans le cadre d'un système d'exploitation ou 30 d'une application spécifique, d'un composant, d'un programme, d'un ob et, d'un module ou d'une séquence d'instructions, ou même un sous-ensemble de ceux-là, peuvent être désignées dans les présentes comme « code de programme informatique » ou simplement « code de programme Le code de programme comprend ty cillement des instructions lisibles par ordinateur £lui résident à des moments divers dans des dispositifs divers de mémoire et de stockage dans un ordinateur, et qui lorsqu'il est lu et exécuté par un ou plusieurs processeurs dans un ordinateur, amène cet ordinateur à mettre en oeuvre les opérations et/ ;u d'éléments propres aux aspects variés des modes de réalisation de l'invention. Les instructions d'un programme informatique lisibles par ordinateur pour accomplir les opérations des modes de réalisation de l'invention peuvent être, par exemple le langage d'assemblage ou, soit un code source, ou un code objet, est écrit en combinaison avec un ou plusieurs langages de programmation. [0044] Le code de programme mis eia oeuvre dans unelim quelconque des applications/modules décrits dans les présentes peut être distribué individuellement ou collectivement cornue un produit-programme d'ordinateur, sous une variété de fternies.. En particulier, le code de programme peut-être distribué en utilisant un support de stockage lisible par ordinateur ayant des instructions de programme lisibles par ordinateur pour amener un processeur à mettre en oeuvre des aspects des modes de réalisation de l'invention. [0049] Les supports données lisibles par ordinateur qui sont 20 intrinsèquement non transitoires, peuvent inclure des médias tangibles volatiles et non. volatiles, amovibles et non amovibles, implémentés dans toute méthode ou technologie de stockage de données, telles que des instructions de programme lisibles par ordinateur, des structures de donnée, des modules de programme, ou autres données. Les supports de stockage lisibles par ordinateur peuvent par ailleurs indure la mémoire aléatoire (RAM), 25 la mémoire morte (ROM), la mémoire à lecture exclusive, programmable et effaçable (EPROM), la mémoire à lecture exclusive, prourammable et effaçable électriquement (EEPROM3, une mémoire flash, ou toute technologie de support, solide de mémoire, disque compact partable doté d'une mémoire à lecture seule (CD-ROM.), ou tout autre stockage optique, bandes d'enregistrement magnétique, mémoire à disque magnétique, 0 ou tout autre médium pouvant être utilisé pour stocker l'information désirée et apte à déchiffré par un ordinateur. Un support de stockage lisible par ordinateur ne peut être interprété comme « signaux transitoires >) en soi (par exemple, des ondes radio ou toutes autres ondes électromagnétiques se propageant, des ondes électromagr_éiiques se propageant à travers un support de transmission te l'un guide d'ondes, ou des signaux électriques transmis par câble). Les instructions de programme lisibles par ordinateur peuvent être téléchargées sur un ordinateur, un autre type d'appareil de traitement de données programmable ou sur tout autre dispositif de support de stockage lisible par machine, ou vers un ordinateur externe ou vers un dispositif de stockage externe via un réseau, Les instructions de programme lisibles par ordinateur, stockées sur un support e par ordinateur, peuvent être utilisées pour instruire un ordinateur, d'autres types d'appareils programmables de traitement ou d'autres dispositifs pour fonctionner d'une façon particulière, de sorte que les instructions stockées sur un support lisible par ordinateur produisent un article de fabrication comprenant les instructions qui implémentent les (Onctions/actions spécifiées dans les organigrammes, diagrammes de séquence, et/ou diagrammes blocs. Les instructions de programme informatique peuvent être fournies à un ou plusieurs processeurs d'un ordinateur à usage général, un ordinateur dédié ou un autre appareil programmable de traitement de données pour produire une machine, de sorte que les instructions, lorsqu'elles sont exécutées via un ou plusieurs processeurs, accomplissent une série de calculs pour mettre en oeuvre les fonctions, actions, etiou les actions spécifiées dans les organigrammes, diagrammes séquentiels et/ou diagrammes blocs. [0051] Dans certains autres modes de réalisation, les tonetions, les actions eliou des opérations spécifiées dans les organigrammes, diagrammes de séquence, et/ou des diagrammes blocs peuvent etre commandées a nouveau, traitées en série et/ou traitées en même temps conformément aux modes de réalisation de l'invention. De plus, un quelconque des organigrammes, diagrammes séquentiels, chou diagrammes bloc peut inclure plus ou moins de blocs que ceux qui sont illustrés conformément à des modes de réalisation de l' in vention, 30 [0052] La terminologie utilisée dans les présentes a pour but de déc.riree uniquement des modes de réalisation particuliers et n'est pas destinée iter les modes de réalisation n. On comprendra par ailleurs crue les ternies « comprendre y), « comprend et/ ou « con tenant », lorsqu'ils sont utilisés dans cette spécification, précisent la présence e caractéristiques, de nombres entiers, d'étapes' d'opérations, d'éléments, et/ou de composants, mais n'excluent pas la présence ou l'ajout d'une ou de plusieurs caractéristiques, de nombres entiers, d'étapes, d'éléments, de composants et/ou de groupes, en ela. De plus, clans la mesure où les termes « inclut », « ayant », « ba a, « avec », « coi pris de » ou des variantes de ceux-ci, sont utilisés, soit dans la description détaillée, soit dans les revendications, ces ternies sont censés être inclusifs de façon similaire au ternie ({ comprenant ». [005._ Bien que l'invention soit illustrée par urne description de divers modes de réalisation et bien que ces modes de réalisation soient rits de façon très détaillée, le demandeur n'a pas l'intention de restreindre ou de limiter, de quelque manière que ce soit, . des revendications famexées à de tels détails. Des avantages supplémentaires et des modifications possibles apparaîtront aisément aux hommes de L'invention sous ses aspects pins larges n'est donc pas limitée aux détails spécifiques, aux appareils représentatifs et aux ploc s ainsi qu'aux exemples illustratifs montrés et décrits, Par conséquent, il est possible de s'éloigner de ces détails sans s'éloigner de l'esprit et de la portée du concept inventif générai du demandeur, REVENDICATIONS1. Ceme pour fournir à un dispositif externe une session dans un environnement informatisé distribué, dans lequel la session nécessite d'établir des conversations e11 El le dispositif externe et les serveurs d'applications du svstème, le dispositif externe et le sy.st.eme fonetkmnant en mole clierilisen,eur; le système fonctionnant dans un mode entre le mode client et le mode serveur, le dispositif externe fonctionnant dans l'autre mode que ce soit le mode client ou le mode serveur, dans lequel ehaque serveur d'application traite au moins une application logiciel le, le système 10 c °ni:merlan t au moins un intégraleur de St tViCcomprenant des moyens de routage, co figura pour établir au cours d'une session donnée une conversation entre le dispositif externe e,lt. au moins un des serveurs d'applications. dans 'lequel l'intégrateur de services est cc rifiguré pour échanger des messages en utilisant IS un premier protocole de messagerie avec un premier format de message, et dans lequel ledit au moins un serveur d'application est corifiguré pour échanger des messages en uti lisant deuxi.éme protocole de messagerie aveu un deuxième format rie message ; dans lequel le système comprend un module de passerelle ennfigur pour gérer l'échange 20 des messages entrants, entre l'intégrateur de services et ledit au moins un serveur licarion, et des messages sortants entre ledit au moins un serveur d'application et Ur de services, dans lequel pour chaque message entrant/sortant, le module de passerelle (30), avec au moins un moteur de traitement de données, est agencé pour recevoir une demande de message de la part dudit au moins un serveur :cation et de l'intégrateur de services pour atteindre l'autre, que ce soit le serveur plicatiou ou l'intégrateur de services ; déterminer si le message a été transmis dans un fo.ratcompatible avec le protocole de message de la destination ; si le :formai du message est identifié comme étant incompatible avec le pros c le de message de la destination, convertir le format de message dans un format qui est compatible avec le protocole de message de la destination. de sorte qu'un message entrant est converti du. premier format au deuxième format, et un message sortant est converti du deuxième format au premier format ; et 20 transmettre le message. entrai désirée. tin système (100) selon la revend; . que: 1 ilintégrateur ci est confiwaré pour communiquer avec Le Trio( passerelle via un protocole XIML et/ou le protocole international EliTtIFACT l'HM) et/ou le protocole Tell.. 10 lin système (10 serveur d'application. , ion 1 ou dans lequel ledit a tn rotoeole pour cor muniquet avec le module de passerel en 4. Le syst...me selon l'une quelconque ces revendications pre adente, dans lequel ledit au moins un serveur dappitt. 'ion comprend des composants Or (Structure Java Ouverte). 15 Sÿ store selon l'une quelconque des revendications précédentes, dans lequel le module de passerelle est configure pour exécuter de multiples tâches simultanément pour chaque message entrant etlou sortant. 6. Le systeme selon la revendication 5, dans lequel lesdites multiples tâches incluent une quelconque des `vantes : conversion de message, transmission de message, expiration de session, nettovage de session, surveillance de session et surveillance du serveur d'application. 7. Le système selon la revendication S ou 6, dans lequel le module de passerelle est configure pour faire fonctionner un nombre de fils d'exécution parallèles afin d'exécuter lesdites tâches multiples, dans lequel les fils d'exécution parallèles sont gérés par au moins un fichier de configuration comprenant un nombre de paramètres de système con hg Lit ables. 30 8. Le système selon quelconque des revendications précédentes, dans lequel le système comprend au moins une base de données de session configurée pour stocker les attributs de contexte au cours d'une session ouverte. Le système de la revendication 8, dans lequel chaque serveur d'application comprend un composant de décharge de session comprenant un container de stockage configure pour stocker une copie des attributs de contexte de la session. 111. Le système selon la revendication 9, dans lequel le composant de décharge de session comprend un composant de gestion de session configuré pour surveiller les changements effectués dans la copie des attributs de contexte de session et par conséquent mettre à jour au moins partiellement les attributs de contexte de session correspondants stuc -é dans la base de données de session. Le système, selon 'endication 9 ou 10, dans lequel le composant de décharge de session est configure pour obtenir les attributs du contexte d'une conversation de session ouverte à partir de la hase de données de session, 12. Le système, selon la revendication 10 ou 1 I, clans lequel le composant de gestion de session est configure pour, lorsque des changements sont détectés dans la conversation de session ouverte, réialiser t.tue opération de validation atomique par laquelle au moins certains des attributs de la copie de contexte de session sont mis Fa jour simultanément. 20 13. Le systOn e selon Pune quelconque des revendications 9 à 12, dans lequel le composant de gestion de session est configure pour en le renvoi des sessions expirées à un serveur d'application. 14, Le système selon la revendication 13, dans lequel le composant de gestion de 2.5 session est configuré pour, lors de l'expiration d'une session, émettre une clé de nettoyage de session qui est utilisée pour nettoyer les données stockées durant la session. I5. Un procédé pour fournir un dispositif externe avec une session dans un environnement informatisé distribué, dans lequel la session nécessite d'établir des conversations entre le dispositif e et des serveurs d'applications du système, le dispositif externe et le système opérant en mode client serveur, le système fonctionnant dans un mode entre le mode client et le mode serveur, le dispositif externe fonctionnant dans l'autre mode que ce soit le mode client ou le mode serveur, dans lequel chaque 22 serveur d`applrcatiu au mon-.ns une application logicielle, le proc déé Cern fourniture d'an moins un intégrateur de services comprenant des les étapes suivantes moyens de routage effectuant au moins une étape d'établissement, pour une session donnée, d'une conversation entre le dispositif externe et au moins un des serveurs d'applications. dans lequel!' intég3 « .4ur de serv tees est configure pour échanger des mes s un premier protocole pie messager, ,vec un premier (Murat de message, et dans lequel ledit au moins un serveur 'application est configure pour échange :es messages en utilisant un deuxième protocole de messagerie avec un deuxième iforrif 10 message dans lequel, le procédé comprend la gestion, par un module de passerellle, des le de messages entrants entre l'intégrateur de services et ledit au moins un se d'application, et des messages sortants entre ledit au moins un serveur d'application et l'intégrateur de services, dans lequel pour chaque message entrant/sortant le module de passer elle effectue, avec au moins un moteur de traitement de données:, les étapes suivantes : la réception d'une demande de message dudit au moins un ven. d'application et de l'intégrateur de services pour atteindre l'autre que ce soit le serveur d'application ou l'intégrateur de services ; 20 le fait de déterminer si le message a été transmis dans un fônnat qui est compatible avec le protocole de message de la destination, si le format de message est identifié comme étant incompatible avec le protocole de message de la destination, la conversion du format du message vers un format qui est compatible avec le protocole de message de la destination de sorte qu'un message entrant est converti du premier format au deuxième thrinat, est un message sortant est converti du deuxième format au premier format et la transmission du message entrantisortant vers la destination désirée.