Enjeu historique![Intégration logicielle](https://citech.fr/wp-content/uploads/2023/01/pexels-sora-shimazaki-5935791-200x300.jpg)
Comment l'intégration logicielle a-t-elle vu le jour ?
A mesure que les systèmes informatiques grossissaient et se développaient, ils s’éloignaient aussi les uns des autres. Ainsi les solutions provenant de fournisseurs différents ne pouvaient plus communiquer entre elles.
Par conséquent, les éléments de la pile informatique d’une entreprise n’étaient plus connectés que par le simple fait de leur appartenance commune à ladite entreprise.
Il fallait donc trouver une solution pour organiser cet environnement et éviter la répétition des tâches.
Notion d’intégration logicielle
La notion d’intégration logicielle trouve son essence dans la connexion et l’unification de différents types de composants logiciels d’un « macro-système » informatique.
Dans le processus de développement d’un logiciel classique, elle intervient après la phase de codage et d’exécution de tests unitaires : c’est une étape inévitable du cycle de vie d’un logiciel.
Durant cette étape, il est question d’intégrer les différents modules du logiciel par niveau successif en respectant les spécifications des tests d’intégration.
Par exemple, on pourra tester:
- que les modules liés à une relation d’utilisation fonctionnent correctement ensemble ;
- qu’une tâche, ou qu’une fonctionnalité spécifique fonctionne correctement en utilisant les modules sur lesquels elle s’appuie ;
- que plusieurs fonctionnalités, plus ou moins liées par des mécanismes multitâches ou successifs dans l’usage nominal de l’outil logiciel, fonctionnent correctement ;
- qu’une fois toutes les fonctionnalités regroupées, le logiciel fonctionne de manière globale.
Le document de spécifications de tests d'intégration du logiciel décrit les tests et jeux d'essais à exécuter durant la phase d'intégration du logiciel. Le document Test report retranscrit leurs résultats.
Pourquoi l’intégration logicielle ?
Avantages
De nos jours, de nombreuses entreprises, et ce dans des domaines diversifiés, se basent sur des systèmes d’information de plus en plus complexes.
Ces macro-systèmes étant eux-mêmes composés de sous-systèmes, chaque application spécifique intervenant répond non seulement à un besoin fonctionnel précis, mais peut nécessiter des informations gérées par d’autres applications annexes faisant aussi partie de ces systèmes.
En outre, elle peut aussi produire une quantité d’informations nécessaire au bon fonctionnement des autres applications composant le système. C’est la raison principale pour laquelle l’intégration logicielle des sources de données est devenue une étape incontournable et indispensable.
Cette étape permet aussi de résoudre un large éventail de problématiques liées aux sources de données :
- des logiciels « legacy » utilisant des BD et autres technologies obsolètes
- sources de données diverses, disparates et parfois sur différentes plateformes
- structure des données qui peut être modifiée dans le temps et ce parfois dans un format qui peut devenir difficilement interprétable ou ambigu
Le fait de connecter les données, les applications, les API, et les appareils permet entre autres d’augmenter l’efficacité, la productivité, et l’agilité de l’entreprise.
Ainsi l’intégration informatique représente un aspect clé de la transformation d’une entreprise et de son adaptation face à l’évolution du marché, en y ajoutant considérablement de la valeur : en connectant les différentes fonctions de plusieurs sous-systèmes, il est fortement possible d’offrir de nouvelles fonctionnalités.
Inconvénients
Le domaine de l’intégration logicielle présente certaines limitations :
- Les solutions d’intégration logicielle sont généralement des solutions propriétaires, dans la mesure où le protocole utilisé pour l’échange et le transport des messages, les connecteurs d’accès aux applications et les formats de données utilisées, sont encore largement spécifiques et propriétaires. Ce qui nécessite dans certains cas l’utilisation d’autres technologies pour des raisons de performances et de qualité du service.
- Les solutions actuelles d’intégration logicielle sont des infrastructures construites sans vision stratégique. Elles se basent essentiellement sur des technologies, et ne suffisent pas pour avoir une intégration optimale et efficace des applications.
- Les solutions d’intégration proposées sont basées essentiellement sur des mécanismes pour l’interconnexion des applications au niveau technique et au niveau syntaxique (des mécanismes de mapping ou de transformations syntaxiques), mais elles ne traitent pas correctement, pour le moment, la problématique liée à l’intégration sémantique.
- Les solutions de l’intégration logicielle actuelles souffrent d’un manque d’adaptation, qui s’avère être un principe fondamental et nécessaire notamment dans certains cas liés aux changements organisationnels, techniques et fonctionnels.
Les solutions d’intégration logicielle actuelles souffrent du manque de services pour la modélisation et l’intégration de processus métiers.
Méthodologies : quelle architecture faudrait-il adopter ?
Les architectures d’intégration constituent le socle de mise en œuvre des différentes technologies d’intégration.
On distingue deux typologies d’architectures d’intégration de base : il s’agit de l’architecture Hub-and-Spoke et de l’architecture bus.
Toutes les autres architectures sont des formes hybrides combinant les deux formes de base hub-and-spoke et bus, telle que l’architecture multi-hub par exemple :
- Architecture hub-and-spoke : c’est le modèle centralisé des solutions d’intégration logicielle. Il correspond à un modèle étoilé qui consiste à déployer en un seul point focal. Il permet d’encapsuler la logique d’interaction de l’application, en minimisant les dépendances de communication entre applications pour passer l’information et les traitements entres eux.
![Architecture hub-and-spoke](https://citech.fr/wp-content/uploads/2023/01/hub_spoke-300x225.jpg)
- Architecture bus : c’est le modèle décentralisé des solutions d’Intégration. Il consiste à distribuer l’ensemble de services de l’infrastructure sur des nœuds, ce sont les points de connexion à une application qui permettent d’encapsuler la logique d’automatisation du processus et les applications.
![Architecture bus](https://citech.fr/wp-content/uploads/2023/01/esb_architecture-300x154.png)
- Architecture multi-hub : ce modèle permet de combiner les deux approches Hub-and-Spoke et l’approche en bus, en mettant ainsi en évidence la subdivision de système d’information en plusieurs îlots informationnels, découlant généralement d’une approche d’urbanisation menée en amont. L’intégration intra-îlots est réalisée selon la typologie hub-and-spoke, tandis qu’inter-îlots est réalisée généralement selon une typologie bus.
![Intégration intra-îlots](https://citech.fr/wp-content/uploads/2023/01/Point-vs-Hub-866x400-1-300x234.png)
Les différents niveaux d’intégrations
L’intégration peut concerner un ou plusieurs niveaux de système d’information et des applications de l’entreprise. Nous notons :
- L’intégration au niveau des données : l’intégration à ce niveau se réalise par la migration des données d’une base de données à une autre sans avoir besoin d’introduire des changements sur la logique des applications de l’entreprise.
- L’intégration au niveau des traitements : permet à des applications de partager les fonctionnalités offertes par d’autres applications hétérogènes et indépendantes et cela par l’invocation des services qu’elles exposent. Le mécanisme le plus simple permettant de réaliser ce type d’intégration est l’utilisation des APIs (Application Programming Interface), ou encore les web services.
- L’intégration au niveau des processus : permet le partage de la logique d’affaires, ainsi que l’intégration de nouvelles applications à travers les applications existantes. Cela permet de créer une nouvelle interface ou intégrer une nouvelle application. Cette approche est basée généralement sur la mise en place d’un moteur d’orchestration, ou encore un moteur de workflow afin de relier et intégrer les applications dans un processus commun.
- L’intégration par présentation (interfaces utilisateurs) : cette approche, aussi appelée screen-scrapping, permet de relier la logique d’intégration dans l’interface des utilisateurs. L’intégration à ce niveau se fait par le développement d’une interface commune (partagée) pour exposer les différentes applications.
![Niveaux d'intégration](https://citech.fr/wp-content/uploads/2023/01/Lesniveauxdintegration-300x215.jpg)
Si vous avez un besoin spécifique, consultez notre offre d'assistance technique !
Rédaction : Jaccepte Mbana & Sophie Berbey.
Pour aller plus loin, voici quelques sources portant sur le sujet de l'intégration :