De façon générale, l’interopérabilité est la capacité des systèmes à opérer ensemble. En informatique, l’interopérabilité définit un cadre d’échange structuré qui répond à un ensemble de normes établies.

En effet, l’informatisation des processus d’une entreprise nécessite des échanges de données (par exemple les prix des produits, les quantités en stock, les montants vendus etc.) entre les applications internes et avec l’extérieur. Il est tout à fait possible de réaliser ces échanges à l’aide d’intégrations point à point : un connecteur unique entre 2 systèmes gère tous les échanges entre ces systèmes.

L’effet « spaghetti »

Interopérabilité - Effet Spaghetti

Couplage inter-applications

Très performante sur de petits systèmes d’information, cette architecture devient vite très complexe à mettre en œuvre et à maintenir, puisque le nombre de connexions point à point nécessaires augmente de façon exponentielle quand le nombre de systèmes à intégrer augmente. On parle alors d’un « plat de spaghetti ». Pour éviter cela, on a donc très souvent recours à une solution d’interopérabilité.

ETL (Extract Transform Load)

Un ETL est un logiciel middleware (en français « intergiciel », logiciel qui se place entre d’autres logiciels du système d’information), qui permet de collecter des données de sources multiples (extract), de les restructurer (transform) et de les transférer (load) à l’entrepôt de données de l’informatique décisionnelle (data warehouse) ou autre base de données cible.

Ce système est prévu pour traiter une grande quantité d’informations et des flux unidirectionnels.

Il fonctionne sous forme de lots (batch), selon des règles de consolidation liées aux données ou aux métadonnées. Il est donc adapté aux architectures orientées données.

Centre de transformation

Centre d’intégration

EAI (Enterprise Application Integration)

Un EAI (Echanges Inter-applicatifs de Données en français) est un autre outil middleware qui permet à plusieurs logiciels disparates (par exemples outils de gestion de la relation client, des entrepôts, des transports…) de communiquer entre eux, et ainsi de construire une architecture orientée applications.

Un logiciel EAI permet en effet de se connecter à tout type de sources de données, d’en extraire des données, de les manipuler, de les structurer, puis de les déposer dans d’autres structures de données. On peut ainsi faire communiquer entre eux tous types d’applicatifs en temps quasi réel et aussi préparer les données pour l’informatique décisionnelle.

Pour orchestrer ces flux (qui peuvent être bidirectionnels, contrairement à l’ETL), l’EAI possède des données de référence liées à l’entreprise, un moteur de gestion de règles, des connecteurs applicatifs et un système de transport d’information, ce qui permet d’élaborer des scénarios complexes d’échange de données.

Le principal inconvénient de ce modèle est que la gestion des flux inter-applicatifs est centralisée, ce qui constitue un risque pour l’entreprise : en cas de défaut, le logiciel EAI paralyse tout le SI, et il peut également être un goulot d’étranglement en cas de trafic important.

ESB (Enterprise Service Bus)

Un ESB, ou bus de service d’entreprise, est un centre d’échanges inter-applicatifs via des services. Les messages entre les composants sont transportés par un canal permettant de faire circuler en temps réel l’information entre les applications, le « bus applicatif ».

Ces échanges sont normalisés (par exemple webservices, XML pour le format des messages…) et transverses à tout le système d’information, toutes les applications étant connectées au bus. Ce système permet le découplage entre les applications : il y a celles qui consomment et celles qui fournissent des services, dans une architecture orientée service (SOA).

Centre d’échanges

Outre le bus applicatif qui transporte et sécurise les messages entre les applications, l’ESB comporte 3 autres fonctionnalités essentielles :

  • Les services web qui intègrent les messages via le bus.
  • Le moteur de transformation qui convertit le format du message entre les applications.
  • Le moteur de routage qui aiguille la destination des messages.

Contrairement à l’EAI, un ESB ne permet pas la gestion de la consommation et de la gouvernance de la donnée, et est donc souvent associé à un BPM (Business Process Management) pour l’orchestration des flux. Il est souvent également complété par une solution d’API Management pour la gouvernance des services fournis.

API (Application Programming Interface) et services web

Une API, Interface de Programmation Applicative en français, est une solution informatique qui permet à des applications de communiquer entre elles et de s’échanger mutuellement des données. En exposant une API, un logiciel offre des services à d’autres logiciels.

Les API sont basées sur deux grands protocoles de communication :

  • SOAP : Simple Object Access Protocol
  • REST : Representational State Transfer

Un service web (ou webservice) est un type particulier d’API : il s’agit d’un protocole permettant la communication et l’échange de données entre applications et systèmes dans un même réseau. Les deux machines vont dialoguer à distance via Internet : la première envoie une demande, généralement sous la forme d’un message XML, et la seconde lui renvoie une réponse. On parle alors de clients et serveur.

Les API peuvent être développées en interne (API privée), mais on peut aussi utiliser des API ouvertes, accessible à tous (open source) ou des API partenaires, soumises à des droits d’utilisation. On peut aussi construire des API composites en regroupant les demandes de plusieurs API de manière séquentielle au sein d’une seule API, pour en améliorer les performances.

Une solution d’API Management (APIM) permet de gérer et d’industrialiser l’exposition des API via un portail où l’on peut suivre l’utilisation des API exposées. Elle sert ainsi à la gouvernance des échanges avec l’extérieur, tandis que l’ESB sert à l’orchestration des services du SI. Ce sont des solutions complémentaires.

Centre de services

En conclusion, s’il est certain que la mise en place d’une solution d’interopérabilité rendra plus performant le système d’information, le choix de la solution doit se faire selon les besoins des métiers de l’entreprise, selon l’utilisation qui est faite des données et les flux internes et externes.