Brevet FR3070213A1 — publié le 20190222

CALCULATEUR DE CONCEPT MULTICOUCHE DU TEMPS DE RÉPONSE CONTEXTE [0001] De façon générale l'invention concerne des ordinateurs et des logiciels d'ordinateur, et en particulier des procédés, des systèmes et des produits-programmes d'ordinateur pour l'intégration d'applications (EAI) permettant d'intégrer des applications frontales avec des interfaces de programme d'application (APIs) et des intergiciels de services commerciaux. [0002] Les logiciels de l'industrie du voyage, tels que les applications de gestion de la chaîne d'approvisionnement, les systèmes de planification des ressources d'entreprise (ERP) et les applications de veille économique doivent communiquer les uns avec les autres afin de partager des données ou des règles commerciales. Afin d'éviter un défaut de communication et les inefficacités qui en résultent, p. ex., des données dupliquées, stockées dans de multiples endroits, ou des difficultés d'automatisation, les applications doivent être liées tout en faisant le moins de changements possible aux applications ou aux structures de données existantes. [0003] EAI utilise les principes architecturaux des systèmes informatiques et des logiciels pour intégrer des applications informatiques d'entreprise qui facilitent la communication entre les applications. Dans l'industrie du voyage, EAI est typiquement effectué par des équipes de développement séparées, définissant souvent des dépendances, soit sur la base d'un bout à bout improvisé unique, soit en groupes isolés distincts, résultant en un processus de développement complexe qui est difficile à intégrer entre les équipes. Par ailleurs, il n'est pas possible de représenter et d'intégrer le résultat d'une telle orchestration jusqu'à ce que le processus EAI soit achevé et toutes les dépendances aient été compilées, incluant la fourniture d'informations clés intermédiaires telle que des projections de temps de réponse. [0004] Afin d'évaluer l'intégration des logiciels d'industrie de voyage à travers le processus de développement et d'orchestration, il existe un besoin persistant pour des outils d'évaluation de flux intergiciel informatisé, ainsi que pour des procédés et des produits-programmes informatiques améliorés pouvant fournir des indicateurs clé de développement. 2 RÉSUMÉ [0005] Selon un mode de réalisation de l'invention, un procédé d'évaluation de flux intergiciel dans un système EAI peut être fourni. Le système EAI peut faciliter l'échange de données entre au moins une application frontale, un ou plusieurs intergiciels 5 de services commerciaux basés sur le Web, et un ou plusieurs intergiciels APIs. L'application frontale peut être accessible directement par un client pour recevoir ou utiliser des capacités dorsales du système de voyage permettant au client de demander les services commerciaux au système de voyage et ladite ou plusieurs APIs peuvent servir d'interface entre les services commerciaux et le système de voyage dorsal en spécifiant 10 comment chacun communique avec l'autre et en fournissant un ensemble de contrôles communs. Un flux d'application frontale et un ou plusieurs flux de services commerciaux peuvent être reçus, l'application frontale incluant au moins un appel à un ou plusieurs flux de services commerciaux et ledit un ou plusieurs services commerciaux incluant un ou plusieurs appels à des APIs. Un flux bout à bout complet exprimant ledit ou plusieurs flux 15 de services commerciaux et ledit ou plusieurs appels aux APIs en termes ordonnés peut être compilé et une projection de latence pour le flux bout à bout complet peut être construite en additionnant les temps de réponse pour chacun dudit ou de plusieurs appels aux APIs incluses dans le flux bout à bout complet. [0006] Dans certains modes de réalisation un diagramme séquentiel représentant 20 l'échange de messages peut être généré, sur la base dudit au moins un ou plusieurs appels à ledit ou plusieurs flux de services commerciaux et ledit un ou plusieurs appels aux APIs dans le flux bout à bout complet. [0007] Dans certains modes de réalisation, un procédé peut être fourni pour la construction d'une projection de latence pour le flux bout à bout complet en récupérant les 25 temps de réponse pour chacun dudit ou de plusieurs appels aux APIs à partir d'un tableau de consultation. En outre, les temps de réponse pour chacun dudit ou de plusieurs appels aux APIs peuvent inclure des statistiques de latence associées aux APIs. [0008] Dans un autre mode de réalisation, un procédé peut être fourni pour la construction d'une projection de latence en compilant le flux bout à bout sur la base, au 30 moins en partie, d'un ou de plusieurs identifiants d'étape qui peuvent définir un ordre de récurrence pour le flux d'application frontale et un ou plusieurs identifiants d'étape qui 3 peuvent définir un ordre de récurrence pour ledit ou plusieurs flux de services commerciaux. [0009] Dans un autre mode de réalisation, un procédé peut être fourni pour la construction d'une projection de latence en compilant le flux bout à bout sur la base, au 5 moins en partie, de l'exécution récurrente du flux d'application frontale jusqu'à ce qu'une ou plusieurs conditions pour le flux d'application frontale soient satisfaites et l'exécution récurrente des flux de services commerciaux jusqu'à ce qu'une ou plusieurs conditions pour les flux de services commerciaux soient satisfaites. [0010] Dans un autre mode de réalisation, un procédé peut être fourni pour la 10 construction d'une projection de latence en stockant le flux d'application frontale avec une première liste d'un ou de plusieurs services commerciaux associés au flux d'application frontale dans un premier tableau, en stockant une seconde liste dudit ou de plusieurs flux de services commerciaux avec une liste des APIs associées à l'un des flux de services commerciaux dans un second tableau et en interrogeant le second tableau pour chacun 15 dudit ou de plusieurs flux de services commerciaux dans le premier tableau afin de récupérer chacune des APIs associées au flux de services commerciaux dans le premier tableau. [0011] Dans un autre mode de réalisation de l'invention, un système pour évaluer l'évaluation de flux intergiciel dans un système EAI peut être fourni. Le système peut 20 inclure un processeur et une mémoire stockant des instructions qui, lorsqu'elles sont exécutées par le processeur, peuvent amener le système à recevoir un flux d'application frontale incluant au moins un appel à un ou plusieurs flux de services commerciaux, à recevoir un ou plusieurs flux de services commerciaux, chacun incluant au moins un plusieurs appels à des APIs et à compiler un flux bout à bout complet qui inclut le flux 25 d'application frontale et ledit ou plusieurs flux de services commerciaux. Le flux bout à bout complet peut être exprimé en termes ordonnés dudit ou de plusieurs flux de services commerciaux et dudit ou plusieurs appels aux APIs. Les instructions peuvent par ailleurs amener le système à construire automatiquement une projection de latence pour le flux bout à bout complet en additionnant les temps de réponse pour chacun dudit ou de 30 plusieurs appels aux APIs incluses dans le flux bout à bout complet. En outre, les temps de 4 réponse peuvent être reçus à partir d'un tableau de consultation et peuvent inclure des statistiques de latence associées aux APIs. [0012] En outre, les instructions peuvent être configurées pour amener le système à générer automatiquement un diagramme séquentiel représentant un échange de messages 5 basé sur ledit au moins un appel à ledit ou à plusieurs flux de services commerciaux et ledit ou plusieurs appels aux APIs dans le flux bout à bout complet. [0013] Dans un autre mode de réalisation, le flux d'application frontale peut inclure un ou plusieurs identifiants d'étape qui définissent un ordre de récurrence pour le flux d'application frontale, ledit ou plusieurs flux de services commerciaux peuvent inclure un 10 ou plusieurs identifiants d'étape qui définissent un ordre de récurrence pour ledit ou plusieurs flux de services commerciaux et les instructions peuvent par ailleurs être configurées pour amener le système à compiler le flux bout à bout complet sur la base, au moins en partie, dudit ou de plusieurs identifiants d'étape du flux d'application frontale et dudit ou plusieurs identifiants d'étape dudit ou plusieurs flux de services commerciaux. 15 [0014] Dans un autre mode de réalisation, les instructions peuvent être configurées pour exécuter le flux d'application frontale de façon récurrente sur la base d'une ou de plusieurs conditions et peuvent aussi être configurées pour exécuter ledit ou plusieurs flux de services commerciaux de façon récurrente sur la base d'une ou de plusieurs conditions. Les instructions peuvent ensuite être par ailleurs configurées pour compiler le flux bout à 20 bout complet sur la base, au moins en partie, de ladite ou plusieurs conditions pour le flux d'application frontale et de ladite ou plusieurs conditions pour les flux de services commerciaux. [0015] Dans un autre mode de réalisation, les instructions peuvent être par ailleurs configurées pour stocker le flux d'application frontale dans une première liste dudit ou 25 plusieurs flux de services commerciaux dans un premier tableau et stocker une seconde liste dudit ou plusieurs flux de services commerciaux et une liste des APIs dans un second tableau. Le flux de services commerciaux inclus dans la première liste peut être associé au flux d'application frontale et chacune des APIs dans le second tableau peut être associée à un des flux de services commerciaux dans la seconde liste dudit ou de plusieurs flux de 30 services commerciaux. En outre, les instructions peuvent par ailleurs être configurées pour compiler le flux bout à bout complet pour chacun dudit ou de plusieurs flux de services 5 commerciaux dans le premier tableau en interrogeant le second tableau pour récupérer chacune des APIs associées au flux de services commerciaux dans le second tableau correspondant au flux de services commerciaux dans le premier tableau. [0016] Dans un autre mode de réalisation, un produit-programme d'ordinateur peut 5 être fourni qui inclut un support de stockage non transitoire lisible par ordinateur incluant des instructions. Les instructions peuvent être configurées de sorte que, lorsqu'elles sont exécutées par le processeur, elles amènent le processeur à recevoir un flux d'application frontale incluant au moins un appel à un ou plusieurs flux de services commerciaux, chacun incluant un ou plusieurs appels aux APIs et elles compilent un flux bout à bout 10 complet qui inclut le flux d'application frontale et ledit ou plusieurs flux de services commerciaux. Le flux bout à bout complet peut être exprimé en termes ordonnés dudit ou de plusieurs flux de services commerciaux et dudit ou plusieurs appels aux APIs. Les instructions peuvent par ailleurs amener le processeur à construire automatiquement une projection de latence pour le flux bout à bout complet en additionnant les temps de réponse 15 pour chacun dudit ou plusieurs appels aux APIs incluses dans le flux bout à bout complet. [0017] Le résumé ci-dessus peut apporter une vue d'ensemble simplifiée de certains des modes de réalisation de l'invention afin de fournir une compréhension basique de certains aspects de l'invention discutés dans les présentes. Le résumé ne prétend pas apporter une vue globale extensive de l'invention et n'est pas destiné à identifier des 20 éléments clés ou critiques quelconques ou à délimiter la portée de l'invention. Le seul but du résumé est de présenter simplement quelques concepts sous une forme simplifiée en guise de préambule à la description détaillée présentée ci-dessous. BRÈVE DESCRIPTION DES DESSINS [0018] Les dessins, qui font partie intégrante des spécifications, illustrent des 25 modes variés de réalisation de l'invention et, avec la description générale de l'invention ci- dessus et la description détaillée des modes de réalisation donnée ci-après, servent à expliquer les modes de réalisation de l'invention. [0019] La FIG. 1 est une vue schématique d'un environnement d'exploitation exemplaire qui inclut une pluralité de systèmes pour améliorer l'EAI. 30 [0020] La FIG. 2 est une vue schématique du système informatique exemplaire de la FIG. 1. 6 [0021] La FIG.3 est un diagramme schématique illustrant les entrées et les résultants d'un intégrateur de concept multicouche EAI qui peut être utilisé dans le développement du système d'application d'intégration de la FIG. 1. [0022] La FIG. 4 est un organigramme illustrant une séquence d'opérations qui 5 peuvent être effectuées par l'intégrateur de concept multicouche EAI de la FIG.3 pour traiter une demande de flux schématique bout à bout. [0023] La FIG. 5 est un exemple d'un flux schématique bout à bout qui peut être produit par l'intégrateur de concept multicouche EAI de la FIG. 3. DESCRIPTION DÉTAILLÉE 10 [0024] Les modes de réalisation de l'invention fournissent des procédés, des systèmes et des produits-programmes d'ordinateur pour l'évaluation de flux intergiciels dans un système EAI destiné aux services de voyage et à la gestion de la disponibilité d'un inventaire pour des éléments d'inventaire de voyage associés à des services de voyage. De façon générale, les modes de réalisation de l'invention peuvent traiter des flux 15 d'application frontale, des flux de services commerciaux, des appels à des APIs afin de générer des flux bout à bout complets et des projections de latence pour les flux bout à bout complets. [0025] Faisant référence à la FIG.1 et selon des modes de réalisation de l'invention, un environnement d'exploitation exemplaire 10 peut inclure un ou plusieurs clients 12, un 20 ou plusieurs développeurs tiers 14, un ou plusieurs fournisseurs de services 16, un ou plusieurs fournisseurs de services Web 18 et un ou plusieurs systèmes dorsaux 22 de systèmes de voyage. Chacune de ces parties et/systèmes peut communiquer avec un ou plusieurs systèmes EAI 20. En outre, chacun de ces parties et/ou systèmes peut communiquer avec les autres via un ou plusieurs réseaux privés et/ou réseaux publics, tels 25 qu'Internet. Un ou plusieurs de ses systèmes peut être logiquement ou physiquement (p. ex. géographiquement distincts ou implémentés par des plateformes informatiques) distantes les unes des autres. Par exemple, le client 12, le développeur tiers 14, le fournisseur de services 16 et le fournisseur de services Web 18 peuvent être logiquement ou physiquement distants des systèmes EAI 20. Un ou plusieurs de ces systèmes, tels 30 qu'un ou plusieurs des systèmes EAI 20 et/ou un ou plusieurs des systèmes dorsaux 22 de systèmes de voyage peuvent chacun être implémentés par le ou les mêmes plateformes 7 informatiques. Par exemple, deux ou plusieurs systèmes EAI 20 peuvent partager au moins une plateforme informatique. [0026] Le client 12 peut inclure des dispositifs informatiques ou des systèmes informatiques qui permettent l'accès à des systèmes distants tels que le système EAI 20, 5 sur un ou plusieurs réseaux. Dans un mode de réalisation, un client 12 peut être un utilisateur final, p. ex. un voyageur, et utiliser un dispositif pour chercher et réserver des produits de voyage en accédant au système EAI 20 via un réseau. En outre, les dispositifs clients 12 peuvent chacun comprendre un ordinateur de bureau, un ordinateur portable, une tablette informatique, un smartphone ou tout autre dispositif informatique approprié. 10 Autrement, un client 12 peut inclure un site Web, un serveur ou un programme qui accède au système EAI 20, par exemple en rapport avec un voyage. [0027] Les développeurs tiers 14 peuvent être associés à des systèmes de développement tiers et peuvent être des entités qui sont indépendantes des fournisseurs de services 16 et des fournisseurs de services Web 18. En outre, un développeur tiers 14 peut 15 fournir les applications frontales sous la direction de fournisseurs de services 16 et les applications frontales peuvent être directement ou indirectement en interaction avec (par) des clients 12. [0028] Les fournisseurs de services 16, p. ex. les compagnies aériennes, les agences de voyages, les métachercheurs, les entreprises, les aéroports, les établissements hôteliers, 20 les sociétés de transport ferroviaire, les entreprises de location de voitures et autres, peuvent agir comme portail de services et/ou fournisseur de contenu offrant une variété de services que ce soient des solutions maison ou en partenariat avec divers développeurs tiers 14. Pour permettre un service particulier, les fournisseurs de services 16 peuvent exploiter un flux d'opérations composites impliquant des recours à de multiples 25 développeurs tiers 14 interagissant avec les clients 12 et les fournisseurs de services Web 18 pour servir d'interface avec les systèmes dorsaux 22. Par exemple, les fournisseurs de services 16 peuvent utiliser les fournisseurs de services Web 18 pour permettre la distribution de services de réservation d'inventaire de voyage. Les offres du fournisseur de service, p. ex. les services aériens, sont étroitement intégrées aux plateformes d'un 30 fournisseur de services sur la base des APIs. 8 [0029] Les fournisseurs de services Web 18 peuvent permettre aux fournisseurs de services 16 d'utiliser les systèmes dorsaux 22 par l'intermédiaire des « services Web » qui sont autonomes, des applications commerciales modulaires qui sont ouvertes, orientées Internet, des APIs basées des normes. Un exemple de services Web est un système logiciel 5 conçu pour prendre en charge une interaction interopérable machine à machine sur un réseau, ayant une interface décrite dans un format traitable par machine. D'autres systèmes peuvent interagir avec un service Web exemplaire d'une manière prescrite par sa description en utilisant un protocole d'accès à un objet simple (SOAP) de messages et être acheminés en utilisant un protocole de transfert hypertexte (HTTP) avec le langage de 10 balisage extensible (XML) de sérialisation conjointement avec d'autres normes relatives au Web. En outre, la facilitation des interactions entre les fournisseurs de services 16 et les systèmes dorsaux 22 peut être accomplis par les fournisseurs de services Web 18 en utilisant XML, SOAP, le langage de définition de service Web (WSDL) et/ou les normes ouvertes de description universelle, découverte et intégration (UDDI) sur une structure 15 dorsale de protocole Internet. Par exemple, XML peut être utilisé pour baliser une donnée, SOAP peut être utilisé pour transférer une donnée, WSDL peut être utilisé pour décrire des services disponibles UDDI peut être utilisé pour lister les services qui sont disponibles. [0030] Par exemple, le client 12 peut être géré par une entreprise de voyage ou un système d'agent de voyage cherchant à offrir au voyageur la possibilité de chercher et de 20 réserver des options de voyage, incluant les transports aériens, ferroviaires et/ou des billets de bus, ainsi que des réservations d'hôtel, des locations de voitures, etc. Les fournisseurs de services 16, par ex. les compagnies aériennes, d'autocars, les chaînes d'hôtels, etc., tirent parti des développeurs tiers 14 et des fournisseurs de services Web 18 pour la gestion de voyage, par exemple en ayant la capacité d'interroger leurs offres et de réserver des 25 options de voyage. Les fournisseurs de services 16 peuvent aussi inclure des fournisseurs de paiement, tels que des compagnies de carte de crédit qui fournissent aussi des services pour garantir les paiements effectués par les consommateurs. Via les applications frontales développées par les développeurs tiers 14, le voyageur soumet des informations aux services d'une agence de voyages avec les détails d'un voyage et le service de l'agence de 30 voyages soumet ensuite l'information aux fournisseurs de services 16. Via les services commerciaux, les fournisseurs de services 16 reçoivent les données provenant des 9 applications frontales puis interrogent le fournisseur de services Web 18. Via les services Web, le fournisseur de services Web 18 peut communiquer avec les systèmes dorsaux 22 pour déterminer, par exemple, une liste des vols disponibles et/ou pour réserver un vol ou traiter un enregistrement. 5 [0031] Par référence à la FIG. 2, les clients 12, les développeurs tiers 14, les fournisseurs de services 16, les fournisseurs de services Web 18, les systèmes EAI 20 et les systèmes dorsaux 22 peuvent être implémentés sur un ou plusieurs dispositifs ou systèmes informatiques, tels que le système informatique exemplaire 24. Le système informatique 24 peut comprendre un processeur 26, un dispositif de mémoire de masse 30, une interface 10 entrée/sortie (1/0) 32, et une interface homme-machine (HMI) 34. Le système informatique 24 peut aussi être couplé de façon fonctionnelle à une ou plusieurs ressources externes 36 par l'intermédiaire du réseau 23, ou d'une interface 1/0 32. Les ressources externes peuvent inclure, mais de façon non exhaustive, des serveurs, des bases de données, des dispositifs de stockage de masse, des dispositifs périphériques, des services 15 de réseau en nuage (cloud), ou toute autre ressource informatique appropriée qui peut être utilisée avec le système informatique 24. [0032] Le processeur 26 peut inclure un ou plusieurs dispositifs sélectionnés : microprocesseurs, microcontrôleurs, processeurs de signal numérique, micro-ordinateurs, unités centrales de traitement, des réseaux de portes programmables, des dispositifs 20 logiques programmables, des machines à état défini, des circuits logiques, des circuits analogiques, des circuits numériques, ou tout autre dispositif servant à manipuler des signaux (analogues ou numériques) basé sur des instructions de fonctionnement enregistrées dans la mémoire 28. La mémoire 28 peut inclure un seul dispositif de mémoire ou une pluralité de dispositifs de mémoire comprenant, de façon non exhaustive, la 25 mémoire à lecture seule (ROM), la mémoire à accès aléatoire (RAM), la mémoire volatile, la mémoire non volatile, la mémoire vive statique (SRAM), la mémoire dynamique à accès aléatoire (DRAM), la mémoire flash, l'antémémoire (cache memory), ou tout autre dispositif capable de stocker des informations. Le dispositif de mémoire de masse 30 peut inclure des dispositifs de stockage de données tels qu'un disque dur, un disque optique, un 30 dérouleur de bande magnétique, un circuit à l'état solide volatile ou non volatile, ou tout autre dispositif capable de stocker des informations. 10 [0033] Le processeur 26 peut fonctionner sous le contrôle d'un système d'exploitation 38 qui réside dans la mémoire 28. Le système d'exploitation 38 peut gérer les ressources de l'ordinateur de telle façon que le code de programme de l'ordinateur, intégré sous forme d'un ou plusieurs logiciels d'application, telle que l'application 40 qui 5 réside dans la mémoire 28, puisse disposer d'instructions exécutées par le processeur 26. Dans un autre mode de réalisation, le processeur 26 peut exécuter directement l'application 40; dans ce cas le système d'exploitation 38 peut-être omis. Une ou plusieurs structures de donnée 42 peuvent également résider dans la mémoire 28, et peuvent être utilisées par le processeur 26, le système d'exploitation 38, ou l'application 40 10 pour stocker ou manipuler des données. [0034] L'interface 32 peut fournir une interface machine qui couple de façon fonctionnelle le processeur 26 à d'autres dispositifs et systèmes, tels que le réseau 23 ou une ou plusieurs ressources externes 36. L'application 40 peut ainsi collaborer avec le réseau 23 et/ou les ressources externes 36 en communiquant par l'intermédiaire de 15 l'interface I/O 32 pour fournir les divers éléments, fonctions, applications, processus, ou modules composant les modes de réalisation de l'invention. Le serveur d'application 40 peut aussi avoir un code de programme qui est exécuté par une ou plusieurs ressources externes 36 ou sinon repose sur les fonctions ou signaux fournis par d'autres systèmes ou composants de réseau externe à l'ordinateur 24. En effet, au vu des configurations presque 20 infinies de matériel et de logiciel possibles, les hommes de métier comprendront que les modes de réalisation de l'invention peuvent inclure des applications localisées extérieurement au système informatique 24, distribuées à des ordinateurs multiples et à d'autres ressources externes 36 ou apportées par des ressources informatiques (matérielles et logicielles) telles qu'un service d'informatique en nuage (cloud computing) fournies 25 comme services sur le réseau 23. [0035] Le HMI 34 peut être couplé de façon fonctionnelle avec le processeur 26 du système informatique 24 d'une manière connue pour permettre à un utilisateur d'interagir directement avec système informatique 24. Le HMI 34 peut inclure un affichage vidéo ou une unité d'affichage à caractères-, un écran tactile, un haut-parleur et tout autre indicateur 30 visuel et audio capable de communiquer des données à l'utilisateur. Le HMI 34 peut aussi inclure des dispositifs de saisie et des contrôles tels qu'un clavier alphanumérique, un 11 périphérique de pointage, des claviers, des boutons poussoir, des boutons de commande, des microphones, etc., capables d'accepter des commandes ou des saisies de l'utilisateur, et de les transmettre au processeur 26. [0036] Une base de données 44 peut résider sur le dispositif de mémoire de 5 masse 30, et peut être utilisée pour collecter et organiser les données utilisées par les différents systèmes et modules décrits dans les présentes. La base de données 44 peut inclure des données et accommoder les structures de donnée associées qui stockent et organisent les données. En particulier, la base de données 44 peut-être arrangée selon toute organisation ou structure de base de données incluant, mais de façon non exhaustive, 10 une base de données relationnelle, une base de données de type hiérarchique, une base de données en réseau, ou des combinaisons de celles-là. Un système de gestion de base de données sous forme de logiciel d'application qui s'exécute sous la forme d'instructions sur le processeur 26 peut être utilisé pour accéder à l'information ou aux données stockées dans des fichiers de la base de données 44 en réponse à une interrogation, lorsqu'une 15 interrogation peut être déterminée de façon dynamique et exécutée par le système d'exploitation 38, les autres applications 40, ou un ou plusieurs modules. [0037] Par référence à la FIG. 3, un intégrateur de concepts multicouches EAI 46 peut être utilisé dans le développement du système EAI 20 de la FIG. 1. Tel qu'il est représenté, l'intégrateur de concept multicouche EAI 46 peut recevoir comme entrée un ou 20 plusieurs flux d'application frontale 48, un ou plusieurs flux de services commerciaux 50 et une ou plusieurs APIs 52 et un ou plusieurs temps de réponse 54. L'intégrateur de concept multicouche EAI 46 peut compiler, construire et/ou générer un ou plusieurs résultats incluent un ou plusieurs flux bout à bout 56, une ou plusieurs projections de latence de flux bout à bout 58 et un ou plusieurs diagrammes séquentiels de flux bout à 25 bout 60. [0038] Les flux d'application frontale 48 peuvent être développés par des développeurs tiers 14 et peuvent servir d'interface entre le client 12 et les fournisseurs de services 16, formant une couche d'applications ou couche de services. En outre, les flux d'application frontale 48 peuvent faire appel au flux de services commerciaux 50 et 30 éventuellement à d'autres flux d'application frontale 48. Ledit ou plusieurs flux d'application frontale 48 peuvent comprendre des services de présentation tels que 12 l'affichage de formulaires et la transmission de flux d'informations en provenance ou vers un affichage ou une interface. Ledit ou plusieurs flux d'application frontale 48 peuvent aussi inclure des services d'application, tels que l'implémentation de demandes d'utilisateur et l'interaction avec des fournisseurs de services 16. Par ailleurs, les flux 5 d'application frontale 48 peuvent être fournis par un navigateur Web et peuvent servir d'interface avec le client 12 en obtenant des entrées et en présentant des résultats au flux de services commerciaux 50. Par exemple, les flux d'application frontale 48 peuvent remplir un formulaire avec des données avant de présenter le formulaire à l'utilisateur et extraire une donnée d'un formulaire après qu'elle a été soumise par l'utilisateur. En outre, les flux 10 d'application frontale 48 peuvent fournir une interface d'utilisateur, p. ex., une interface graphique d'utilisateur (GUI) utilisée par des clients 12. [0039] Les flux de services commerciaux 50 sont définis par les fournisseurs de services 16 et peuvent faire appel aux APIs 52. En outre, les flux de services commerciaux 50 peuvent être utilisés pour implémenter une logique commerciale et des 15 règles commerciales qui déterminent comment les données sont créées, stockées et modifiées, c.-à-d. la prescription de la manière dont les objets commerciaux tels que des comptes, prêts, itinéraires et inventaires interagissent les uns avec les autres et la mise en vigueur des routes et des procédés appliqués pour l'accès et la mise à jour des objets commerciaux. Par exemple, les flux d'application frontale 48 d'un site Web de réservation 20 de voyage peuvent permettre aux clients 12 de spécifier les caractéristiques du voyage (p. ex., la date, l'heure et le lieu de départ/arrivée), la sélection des éléments de voyage pour la réservation, la spécification des informations personnelles, l'apport des informations de paiement, etc. Les flux de services commerciaux 50 peuvent spécifier ce qui va se passer, par exemple, pendant un processus de recherche dans l'inventaire, la réservation d'un 25 élément d'inventaire de voyage, et pendant le passage en caisse. Les flux de services commerciaux 50 peuvent aussi surveiller l'infrastructure pour assurer que toutes les parties d'un site fonctionnent correctement. [0040] Les APIs 52 sont définies par les fournisseurs de services Web 18 et peuvent être appelées par les flux de services commerciaux 50 pour servir d'interface avec 30 les systèmes dorsaux 22. Les APIs 52 peuvent implémenter des mécanismes de persistance de donnée (p. ex., des serveurs de base de données, des partages de fichiers, etc.) et 13 peuvent former une couche d'accès aux données qui encapsule des mécanismes de persistance et expose la donnée dans les systèmes dorsaux 22. En d'autres termes les APIs 52 fournissent un mécanisme aux fournisseurs de services 16 pour gérer, manipuler, ou actualiser des données stockées sans exposer ou créer de dépendances sur les 5 mécanismes de stockage de donnée. Chaque API 52 peut avoir un temps de réponse associé 54 qui représente la quantité de temps prise par les fournisseurs de services Web 18 pour traiter une demande après sa réception. Le temps de réponse 54 peut être mesuré en enregistrant la durée écoulée entre le moment où l'API 52 est appelée et le moment où l'API 52 renvoit. 10 [0041] Comme décrit par la suite de façon plus détaillée, ledit ou plusieurs flux bout à bout 56 spécifient un flux qui commence avec un flux d'application frontale 48, peut inclure un ou plusieurs flux de services commerciaux 50 en fonction des appels à un ou plusieurs flux de services commerciaux 50 effectués par l'application frontale 48 et peut par ailleurs inclure une ou plusieurs APIs 52 sur la base des appels à une ou plusieurs 15 APIS 52 par ledit ou plusieurs flux de services commerciaux 50. Autrement, un flux bout à bout 56 peut inclure uniquement les flux d'application 48 si les flux d'application 48 ne font pas appel à un ou plusieurs flux de services commerciaux 50. De façon similaire, un flux bout à bout 56 peut contenir seulement un ou plusieurs flux d'application frontale 48 et un ou plusieurs flux de services commerciaux 50 si ledit ou plusieurs flux de services 20 commerciaux 50 ne font pas appel à une ou plusieurs APIs 52. Comme également discuté par la suite plus en détail, une projection de latence de flux bout à bout 58 peut être calculée en additionnant les temps de réponse 54 des APIs 52 incluses dans le flux bout à bout. Le flux bout à bout 56 peut également être représenté sous la forme d'un diagramme séquentiel de flux bout à bout 60 illustrant chaque étape du flux bout à bout 56. 25 [0042] Les informations de flux intergiciel associées à chaque application commerciale distincte intergicielle peuvent inclure un identifiant de services commerciaux, un nom de module, un ordre ou une étape de traitement et tout élément correspondant, tel que des conditions ou des boucles. De façon similaire, les informations de flux d'application frontale associée à chaque flux individuel d'application frontale 48 30 peuvent inclure un nom d'application frontale et un nom de flux d'application bout à bout comme convenu entre les développeurs tiers 14 et les fournisseurs de services 16 ainsi 14 qu'un ordre ou une étape de traitement et tout élément correspondant, tel que des conditions ou des boucles. L'intégrateur de concept multicouche BAI 46 peut recevoir les temps de réponse 54 dans un nombre de formes, incluant des statistiques de temps de réponse basées sur des données de production réelles, des scénarios de tests ou des valeurs 5 choisies arbitrairement. En analysant les informations d'entrée qui peuvent inclure les flux d'application frontale 48, les flux de services commerciaux 50, les APIs 52 et les temps de réponse 54 comme ce sera expliqué de façon plus détaillée ci-après, l'intégrateur de concept multicouche BAI 46 peut ensuite calculer les résultats qui peuvent inclure des flux bout à bout 56 et des projections de latence de flux bout à bout 58 ainsi que des 10 diagrammes séquentiels de flux bout à bout. [0043] Faisant maintenant référence à la FIG.4, l'intégrateur de concept multicouche BAI 46 peut mettre en oeuvre un processus 62 conformément à des modes de réalisation de l'invention pour traiter une demande de flux de diagramme bout à bout. À l'étape 64, l'intégrateur de concept multicouche BAI 46 peut surveiller un ou plusieurs flux 15 d'application frontale 48, un ou plusieurs flux de services commerciaux 50, une ou plusieurs APIs 52 et/ou un ou plusieurs temps de réponse 54 pour déterminer s'il faut générer un ou plusieurs flux bout à bout 56, une ou plusieurs projections de latence de flux bout à bout 58 et/ou un ou plusieurs diagrammes séquentiels de flux bout à bout. Autrement, l'intégrateur de concept multicouche BAI 46 peut être activé manuellement par 20 un utilisateur en réponse à une demande d'intégration. [0044] En réponse à une commande d'exécution, l'intégrateur de concept multicouche EAI 46 peut fonctionner en boucle à travers ledit ou plusieurs flux d'application frontale 48 stockés dans un premier tableau ou une base de données contenant une liste d'un ou plusieurs flux d'application frontale 48 et d'un ou de plusieurs 25 flux de services commerciaux 50 appels associés à chaque flux d'application frontale 48. À l'étape 66, il est déterminé si le flux d'application frontale 48 inclut un appel à un flux de services commerciaux 50 associé et dans l'affirmative, par la suite à l'étape 68 facultative il peut être déterminé par ailleurs si une condition facultative régissant le flux de services commerciaux 50 est appelée a été satisfaite et/ou si le flux de services commerciaux 50 a 30 été appelé un nombre de fois requis. À l'étape 68, il n'est pas déterminé que la condition optionnelle associée au flux de services commerciaux 50 a été satisfaite et/ou que le flux de 15 services commerciaux 50 a été appelé le nombre de fois requis, les étapes 66 et 68 peuvent alors se répéter jusqu'à ce que la condition optionnelle soit satisfaite ou que le flux de services commerciaux 50 soit appelé le nombre de fois requis, auquel cas le processus avance à l'étape 70. 5 [0045] À l'étape 70, l'intégrateur de concept multicouche EAI 46 peut parcourir en boucle une seconde liste ou base de données d'un ou de plusieurs flux de services commerciaux 50 et un ou plusieurs appels à des APIs 52 associées à chaque flux de services commerciaux 50. À l'étape 70, le flux de services commerciaux de la seconde liste ou base de données des flux de services commerciaux 50 et des APIs 52 correspondant au 10 flux de services commerciaux 50 identifié à l'étape 66 (dans la première liste ou base de données des appels d'application frontale et de flux de services commerciaux 50) est examiné pour déterminer s'il inclut un appel à une API 52. Dans l'affirmative, à l'étape optionnelle 72, il peut alors être déterminé par ailleurs si une condition optionnelle régissant l'appel à l'API 52 a été satisfaite et/ou si l'API 52 a été appelée un nombre de 15 fois requis. S'il n'est pas déterminé à l'étape 72 que la condition optionnelle associée à l'API 52 a été satisfaite et/ou que l'API 52 a été appelée le nombre de fois requis, alors les étapes 70 et 72 peuvent se répéter jusqu'à ce que la condition optionnelle soit satisfaite ou que l'API 52 soit appelée le nombre de fois requis, auquel cas le processus revient à l'étape 70 pour examiner l'API 52 suivante. Une fois qu'il ne reste plus d'APIs 52, le 20 processus revient à l'étape 66 pour vérifier l'appel suivant à un flux de services commerciaux 50. Une fois qu'il n'y a plus de flux commerciaux 50 restants, le processus avance à l'étape 74. [0046] À l'étape 74, un flux bout à bout 56 peut être déterminé pour chaque flux d'application frontale 48 basé sur les étapes 66 à 72. Au fur et à mesure que chacune des 25 étapes 66 à 72 est complétée comme il se doit, le nom des flux d'application frontale 48, des flux de services commerciaux 50 et des APIs 52 sont compilés ainsi que toutes conditions ou boucles dans l'ordre selon lequel ils sont présentés dans le processus. Ainsi, le flux bout à bout complet 56 comprend une compilation de tous les flux de services commerciaux 50, des APIs 52 et des conditions et/ou boucles associées à l'appel d'un flux 30 d'application frontale donné 48. 16 [0047] À l'étape 76, une représentation visuelle d'un flux bout à bout 56 peut être générée sous la forme d'un diagramme séquentiel 60, où chaque étape du flux bout à bout 56 est représentée visuellement comme un message. [0048] À l'étape 78, une troisième liste ou base de données contenant une liste des 5 APIs 52 et un temps de réponse 54 associé à chaque API 52 peut être recherché pour chaque API incluse dans le flux bout à bout 56. Les temps de réponse 54 peuvent être additionnés pour toutes les APIs 52 incluses dans le flux bout à bout 56 afin de générer une projection de latence d'un flux bout à bout 58. [0049] Dans un autre mode de réalisation, les étapes 74 à 78 peuvent être 10 complétées au cours des étapes 66 à 72 du processus par une compilation en cours d'exécution du flux bout à bout 56, d'un diagramme séquentiel 60 et de la projection de latence du flux bout à bout 58. [0050] À l'étape 80, le résultat de l'intégrateur de concept multicouche EAI 46 peut être fourni et une réponse est communiquée. Dans un mode de réalisation, le flux bout à 15 bout peut être communiqué à l'étape 80 d'une manière compatible avec les outils de génération de diagramme séquentiel, tels que WebSequenceDiagrams.com. [0051] En effectuant de façon répétée les étapes 66 à 80 du processus, les relations entre chacun dudit ou plusieurs flux d'application frontale 48, un ou plusieurs flux de services commerciaux 50 et/ou une ou plusieurs APIs 52 sont définies permettant à un flux 20 bout à bout 56, à un diagramme séquentiel 60 et à une projection de latence de flux bout à bout d'être calculés pour chaque flux d'application frontale 48. Au fur et à mesure que l'intégrateur de concept multicouche EAI 46 tourne en boucle de manière récursive à travers les informations associées à chaque flux d'application frontale 48 pour le/les flux de services commerciaux 50 et les APIs 52, le processus peut générer un résultat 25 intermédiaire et/renvoyer des informations qui peuvent être une consolidation du/des flux de services commerciaux 50 et du/des flux d'application frontale 48. Par exemple, un flux particulier d'application frontale 48 peut avoir certaines boucles ou conditions qui lui sont associées et au final faire appel au flux de services commerciaux 50 qui peut aussi avoir ses propres boucles ou conditions associées. En mettant en oeuvre de façon réitérative les 30 boucles et les conditions, d'abord pour le flux d'application frontale 48 et ensuite pour le flux de services commerciaux 50, le flux combiné peut être généré de telle sorte qu'il est 17 représentatif du flux consolidé incluant à la fois les conditions de flux d'application frontale et les conditions de flux de services commerciaux. [0052] La FIG. 5 illustre un exemple de calcul effectué par l'intégrateur de concept multicouche EAI 46 cohérent avec un mode de réalisation de la présente invention. 5 Comme le montre la FIG.5, un flux bout à bout 56 représenté sous forme de diagramme séquentiel de flux bout à bout 60 et une projection de latence de flux bout à bout 58 sont générés à partir d'un flux d'application frontale exemplaire 48, de flux de services commerciaux exemplaires 50, d'APIs exemplaires 52 et de temps de réponse exemplaires 54. Le flux d'application frontale exemplaire 48 inclut des appels au flux de services 10 commerciaux 50 qui sont étiquetés `BS_FLUX_1', `BS_FLUX_2', and `BS_FLUX_3'. Conformément à des modes de réalisation de la présente invention, `13S-FLUX _2' est montré avec une condition applicable associée à l'exécution de l'appel, étiquetée 'CONDI'. Par ailleurs, des conditions optionnelles peuvent être associées à un quelconque des appels, incluant des appels à des flux d'application frontale 48, à des flux de services 15 commerciaux 50 et des appels aux APIs 52. [0053] Les flux exemplaires de services commerciaux 50 incluent des appels aux APIs 52 qui sont étiquetées 'API!', `API_2', `AP1_3', `API_4', et 'APIS'. Selon des modes de réalisation de la présente invention, `BS_FLUX_3' inclut un appel à un autre flux commercial, spécifiquement `BS_FLUX_2'. Similairement, le flux d'application 20 frontale 48 peut inclure des appels à d'autres flux d'application frontale. BS_FLUX_3' inclut par ailleurs une condition de boucle optionnelle associée aux APIs 52 dans lequel les appels aux APIs sont en boucle trois fois ; c.-à-d. Les appels aux APIs sont effectués trois fois avant tout autre traitement des flux de services commerciaux. [0054] Selon des modes de réalisation de la présente invention, les flux 25 d'application frontale 48 incluant des appels aux flux de services commerciaux peuvent être stockés dans un premier tableau, une liste ou une base de données. Les flux de services commerciaux 50, incluant des appels aux APIs, peuvent être stockés dans un second tableau, une liste ou une base de données. Au fur et à mesure que l'intégrateur de concept multicouche 46 traite le flux d'application frontale 48 de la première liste, il peut ensuite 30 rechercher dans la seconde liste les flux de services commerciaux correspondant au flux de services commerciaux appelés par le flux d'application frontale. Ainsi les APIs 52 18 associées au flux de services commerciaux 50 peuvent être déterminées et compilées dans le flux bout à bout 56 permettant aux flux d'application frontale 48 d'être représenté comme un flux bout à bout complet 56 incluant les appels aux APIs 52. [0055] Un troisième tableau, liste ou base de données des temps de réponse 54 peut 5 inclure une liste des APIs 52 et des temps de réponse associés 54. En compilant le temps de réponse 54 associé à chaque API 52 présentée dans le flux bout à bout 56, la projection de latence du flux bout à bout 58 peut être calculée. Dans l'exemple fourni dans la FIG. 5, `API_I' a un temps de réponse de 13,4 ms, 'API l' a un temps de réponse de 13,4 ms, `AP1_2' a un temps de réponse de 9,1 ms, `API_3' a un temps de réponse de 12,1 ms, 10 `API_4' a un temps de réponse de 13,2 ms, et `API_5' a un temps de réponse de 10.3 ms. Comme on le voit, la projection de latence du flux bout à bout est calculée en additionnant chacune des APIs 52 qui apparaissent dans le flux bout à bout 56. Tel que représenté, la projection de latence du flux bout à bout 58 peut aussi refléter le temps associé aux boucles ou conditions associées aux appels aux APIs 52. 15 [0056] En général, les routines exécutées pour mettre en oeuvre les modes de réalisation de l'invention, qu'elles soient implémentées dans le cadre d'un système d'exploitation ou d'une application spécifique, d'un composant, d'un programme, d'un objet, 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 20 simplement « code de programme ». Le code de programme comprend typiquement des instructions lisibles par ordinateur qui 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, provoque l'exécution par l'ordinateur d'opérations et/ou d'éléments propres aux aspects variés des modes de réalisation de 25 l'invention. Les instructions d'un programme informatique lisibles par ordinateur pour effectuer les opérations des modes de réalisation de l'invention peuvent être, par exemple : le langage d'assemblage ou, un code source ou un code objet, écrit en combinaison avec un ou plusieurs langages de programmation. [0057] Le code de programme mis en oeuvre dans tout module/application décrit 30 dans les présentes peut être distribué individuellement ou collectivement comme un produit programme d'ordinateur, sous une variété de formes. En particulier, le code de programme 19 peut-être distribué en utilisant un support de stockage lisible par ordinateur ayant des instructions de programme lisibles par ordinateur en amenant un processeur à exécuter des aspects des modes de réalisation de l'invention. [0058] Les supports de stockage de données lisibles par ordinateur et qui sont 5 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ées, des modules de programme, ou autres données. Les supports de stockage lisibles par ordinateur peuvent aussi comprendre des mémoires : une mémoire à 10 accès aléatoire (RAM), une mémoire à lecture seule (ROM), une mémoire à lecture seule programmable et effaçable (EPROM), une mémoire à lecture seule programmable et effaçable électriquement (EEPROM), une mémoire flash, ou toute technologie de support solide de mémoire, un disque compact portable doté d'une mémoire à lecture seule (CD-ROM), ou tout autre stockage optique, bandes d'enregistrement magnétique, mémoire à 15 disque magnétique, ou tout autre support pouvant être utilisé pour stocker l'information désirée et apte à être lu par un ordinateur. Un support de stockage lisible par ordinateur ne peut être interprété comme signaux transitoires en soi (p. ex., des ondes radio ou toutes autres ondes électromagnétiques se propageant à travers un support de transmission tel qu'un guide d'ondes, ou des signaux électriques transmis par câble). Les instructions de 20 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 par un réseau. [0059] Les instructions de programme lisibles par ordinateur, stockées sur un 25 support lisible 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 fonctions, les actions et/ou les opérations spécifiées dans les 30 organigrammes, diagrammes de séquence, et/ou diagrammes blocs. Les instructions de programme informatique peuvent être fournies à un ou plusieurs processeurs d'un 20 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 à l'aide du ou des processeurs, accomplissent une série de calculs pour mettre en oeuvre les fonctions, actions, et/ou les opérations spécifiées dans les 5 organigrammes, diagrammes séquentiels et/ou diagrammes blocs. [0060] Dans certains autres modes de réalisation, les fonctions, les actions et/ou des opérations spécifiées dans les organigrammes, diagrammes de séquence, et/ou des diagrammes blocs peuvent être commandées à 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, tout 10 organigramme, diagramme séquentiel, et/ou diagramme bloc peut inclure plus ou moins de blocs que ceux qui sont illustrés conformément à des modes de réalisation de l'invention. [0061] La terminologie utilisée dans les présentes a pour but de décrire uniquement des modes de réalisation particuliers et n'est pas destinée à limiter les modes de réalisation de l'invention. On comprendra par ailleurs que les formes verbales du verbe 15 « comprendre », et/ou « comprenant », lorsqu'elles sont utilisées dans cette spécification, spécifie la présence de caractéristiques, nombres entiers, étapes, opérations, éléments, et/ou composants, mais n'excluent pas la présence ou l'ajout d'une ou de plusieurs caractéristiques, nombres entiers, étapes, éléments, composants et/ou groupes de celle-ci. De plus, dans la mesure où les verbes « inclure », « ayant », « a », «avec », « compris de » 20 ou des variantes de ceux-là, sont utilisés dans la description détaillée et les revendications, ces termes sont censés être inclusifs de façon similaire à la forme verbale « comprenant ». [0062] Bien que l'invention soit illustrée par une description de divers modes de réalisation et bien que ces modes de réalisation soient décrits de façon très détaillée, il n'est pas de l'intention du demandeur de restreindre ou de limiter, de quelque façon que ce soit, 25 l'étendue des revendications des présentes à ces détails. Des avantages supplémentaires et des modifications possibles apparaîtront aisément aux hommes de métier. L'invention sous un angle plus large n'est donc pas limitée aux détails spécifiques, aux procédés et aux appareils représentatifs, et aux illustrations montrées et décrites à titre d'exemple. Par conséquent, il est possible de s'éloigner de ces détails sans s'éloigner de l'esprit et de la 30 portée du concept inventif général