Que sont les intergiciels ?

Les intergiciels, ou middleware, sont des logiciels utilisés par différentes applications pour communiquer entre elles. Ils délivrent la fonctionnalité permettant de connecter les applications de façon intelligente et efficace, pour vous permettre d'innover plus rapidement. Les intergiciels jouent le rôle de pont entre des technologies, des outils et des bases de données disparates pour que vous puissiez les intégrer en toute transparence dans un même système. Ce système unique fournit ensuite un service unifié à ses utilisateurs. Par exemple, une application frontend Windows échange des données avec un serveur backend Linux, mais les utilisateurs de l'application n'en sont pas informés.

Pourquoi les intergiciels sont-ils importants ?

Les intergiciels ont commencé à servir de pont entre les nouvelles applications et les systèmes hérités avant de gagner en popularité dans les années 1980. Les développeurs les utilisaient initialement pour intégrer de nouveaux programmes à des systèmes antérieurs sans réécrire le code antérieur. Les intergiciels sont devenus un outil important de communication et de gestion des données dans les systèmes distribués.

Les développeurs utilisent des intergiciels pour soutenir le développement d'applications et simplifier les processus de conception. Ils peuvent ainsi se concentrer sur la logique et les fonctions métier plutôt que sur la connectivité entre les différents composants logiciels. Sans intergiciels, les développeurs devraient créer un module d'échange de données pour chaque composant logiciel qui se connecte à l'application. C'est un défi, car les applications modernes se composent de plusieurs microservices ou de petits composants logiciels qui communiquent entre eux. 

Quels sont les cas d'utilisation des intergiciels ?

Voici les cas d'utilisation les plus courants des intergiciels :

Développement de jeux

Les développeurs de jeux utilisent les intergiciels comme moteur de jeu. Pour qu'un jeu fonctionne, le logiciel doit communiquer avec divers serveurs d'images, d'audio et de vidéo ainsi qu'avec des systèmes de communication. Le moteur de jeu facilite cette communication et rend le développement du jeu plus efficace.

Matériel électronique

Les ingénieurs en électronique utilisent des intergiciels pour intégrer divers types de capteurs à leurs contrôleurs. La couche des intergiciels permet aux capteurs de communiquer avec le contrôleur par le biais d'un cadre de messagerie commun. 

Développement de logiciels

Les développeurs de logiciels utilisent des intergiciels pour intégrer différents composants logiciels dans d'autres applications. Les intergiciels offrent une interface de programme d'application (API) standard pour gérer l'entrée et la sortie de données requises du composant. La liaison interne avec le composant est cachée à l'utilisateur. Les développeurs utilisent les API pour interroger les services dont ils ont besoin auprès des composants logiciels. 

Transmission de données

Les applications logicielles utilisent des intergiciels pour envoyer et recevoir des flux de données de manière fiable. Les flux de données consistent en une transmission à grande vitesse de données continues. Ils sont importants pour une diffusion vidéo et audio fiable.

Applications distribuées

Les applications distribuées sont des logiciels qui s'exécutent sur différents ordinateurs d'un réseau. Ils se composent généralement d'applications frontend et backend. Les applications frontend sont des logiciels que vous utilisez sur un ordinateur ou un appareil mobile, comme une application de médias sociaux. En revanche, les applications backend sont des logiciels qui gèrent le traitement des données, la logique métier et les tâches de gestion des ressources. Les intergiciels communiquent entre les applications frontend et backend, afin que l'application distribuée fonctionne sans problème.

Qu'est-ce que l'architecture intergicielle ?

L'architecture logicielle intergicielle est constituée de plusieurs composants qui communiquent pour créer un pipeline de données. Les données passent d'une application de connexion à l'autre par le biais des intergiciels. Les intergiciels traitent les données pour en assurer la compatibilité. Les éléments suivants sont des composants courants des logiciels intergiciels :

Console de gestion

La console de gestion fournit aux développeurs de logiciels un aperçu des activités, des règles logicielles et des configurations du système des intergiciels.

Interface client

L'interface client est la partie extérieure du logiciel intergiciel qui communique avec les applications. Les développeurs utilisent les fonctions fournies par l'interface client pour interagir avec d'autres applications, bases de données ou autres microservices.

Interface interne de l'intergiciel

L'interface interne de l'intergiciel agit comme la colle logicielle qui lie les différents composants entre eux. Les composants de l'intergiciel utilisent l'interface interne pour fonctionner de manière cohérente avec leur propre protocole. 

Interface de plateforme

L'interface de l'intergiciel garantit que le programme de l'intergiciel est compatible avec diverses plateformes. Il contient des composants logiciels qui fonctionnent avec différents types de systèmes d'exploitation. 

Gestionnaire de contrat

Le gestionnaire de contrat définit les règles d'échange de données dans le système intergiciel. Il garantit également que les applications respectent les règles lorsqu'elles envoient des données au moyen de l'intergiciel. Il envoie une alerte, ou une exception, à l'application lorsque celle-ci enfreint des règles spécifiques. Par exemple, le gestionnaire de contrat renverra une exception si l'application envoie un nombre alors qu'un mot est attendu. 

Gestionnaire de session

Le gestionnaire de session établit un canal de communication sécurisé entre les applications et l'intergiciel. Il assure la fluidité de la communication et stocke les enregistrements de l'activité des données pour l'établissement de rapports. 

Gestionnaire de base de données

Certains types d'intergiciels comprennent également un gestionnaire de base de données. Le gestionnaire de base de données est responsable de l'intégration avec différents types de bases de données, selon les besoins. 

Moniteur d'exécution

Le moniteur d'exécution assure une surveillance continue des mouvements de données dans l'intergiciel. Il détecte et signale les activités inhabituelles aux développeurs. 

Comment fonctionne un intergiciel ?

L'intergiciel abstrait le processus de communication sous-jacent entre les composants. Cela signifie que l'application frontend communique uniquement avec l'intergiciel et ne doit pas apprendre la langue des autres composants logiciels backend. 

Cadre de messagerie

Un cadre de messagerie facilite l'échange de données entre les applications frontend et backend. Les cadres courants sont les suivants :

  • JavaScript Object Notation (JSON)
  • Representational State Transfer (REST API)
  • Extensible Markup Language (XML)
  • Web Services
  • Simple Object Access Protocol (SOAP) 

Les cadres de messagerie fournissent une interface de communication commune aux applications de différentes plateformes d'exploitation et de différents langages. Les applications écrivent et lisent des données dans un format standardisé fourni par le cadre de messagerie. 

Exemple d'intergiciel

Par exemple, un serveur web est un intergiciel qui connecte les sites web à la base de données backend. Lorsque vous soumettez un formulaire sur un site Web, votre ordinateur envoie la requête en XML ou JSON au serveur Web. Ensuite, le serveur web exécute la logique métier en fonction de la demande, récupère des informations dans les bases de données ou communique avec d'autres microservices en utilisant différents protocoles.

Autres fonctions de l'intergiciel

En plus d'être un intermédiaire entre les applications logicielles, les programmes intergiciels effectuent également les tâches suivantes :

  • Fournir un canal de communication sécurisé entre les applications distribuées afin que les sites Web envoient des informations sensibles en toute sécurité aux applications backend. 
  • Gérer le flux de trafic et évitez de submerger une application ou un serveur de fichiers particulier.
  • Automatiser et personnaliser les réponses à la requête. Par exemple, l'intergiciel trie et filtre les résultats avant de les envoyer à l'application frontend.

Qu'est-ce qu'un intergiciel de plateforme ?

L'intergiciel de plateforme prend en charge le développement d'applications en fournissant un système d'outils et de ressources gérés. Les développeurs utilisent un intergiciel de plateforme pour partager ou transférer des ressources entre les applications. Voici quelques exemples de ressources d'intergiciel de plateforme :

Environnements d'exécution

Un environnement d'exécution est comme un petit système d'exploitation qui permet à un logiciel de fonctionner. Par exemple, les applications Java doivent être exécutées dans l'environnement d'exécution Java (Java Runtime Environment). Les développeurs peuvent utiliser AWS Lambda pour mettre en place un environnement d'exécution pour tout langage de programmation. 

Serveurs Web

Un serveur Web est un programme informatique qui reçoit, traite et répond aux demandes des sites Web. Les développeurs Web utilisent Amazon Lightsail pour héberger et gérer des serveurs Web pour des applications simples. 

Systèmes de gestion de contenu

Le système de gestion de contenu est un logiciel qui crée, modifie, stocke et publie des informations numériques. Par exemple, WordPress est un système de gestion de contenu à code source ouvert permettant de créer des sites Web. 

Conteneurs

Un conteneur est un paquet prêt à être déployé contenant les codes de l'application et les ressources nécessaires. Les développeurs utilisent Amazon Elastic Container Service (Amazon ECS) pour déployer, gérer et mettre à l'échelle des applications conteneurisées. 

Quels sont les types d'intergiciels ?

Les développeurs utilisent les intergiciels à diverses fins dans le développement de logiciels. Voici les types courants d'intergiciels :

Intergiciels d'intégration d'applications métier

Les intergiciels d'intégration d'applications métier relient tous les systèmes logiciels, les services et les sources de données au sein d'une organisation. Les applications métier utilisent ces intergiciels pour s'envoyer des informations les unes aux autres sans modifier les configurations du réseau ou de la base de données. 

Intergiciels orientés base de données

Les intergiciels orientés données ou bases de données facilitent le transfert de données entre les applications et différents types de bases de données.

Intergiciels orientés messages

Les intergiciels orientés messages (MOM, Message Oriented Middleware) peuvent prendre en charge la communication entre les composants logiciels d'un système informatique distribué.

Intergiciels transactionnels

Les intergiciels transactionnels, tels que les moniteurs de processus transactionnels, garantissent que chaque étape d'un processus transactionnel logiciel est exécutée correctement. 

Intergiciels axés sur le contenu

Les applications utilisent des intergiciels axés sur le contenu pour publier ou récupérer du contenu sans créer le mécanisme de stockage sous-jacent.

Intergiciels d'appel de procédure à distance

Un programme logiciel utilise un intergiciel d'appel de procédure à distance (RPC, Remote Procedure Call) pour utiliser le service d'un autre programme au sein du même réseau.

Intergiciels pour appareils

Les intergiciels pour appareils fournissent les ressources nécessaires aux développeurs pour créer des applications mobiles sur des appareils mobiles spécifiques, comme des cadres de connectivité et des bibliothèques. 

Intergiciels de requête d'objets

Les applications utilisent un agent de requête d'objet ou un intergiciel de requête d'objet pour envoyer des requêtes sans savoir où l'application cible est hébergée.

Intergiciels pour serveurs d'applications

Les développeurs utilisent un intergiciel pour serveur d'applications pour créer, déployer, gérer et connecter les applications métier aux serveurs d'applications backend.

Intergiciels embarqués

Les intergiciels embarqués servent de pont entre les applications et le système d'exploitation dans les systèmes embarqués. Les systèmes embarqués sont des produits électroniques qui fonctionnent avec un microcontrôleur. 

Intergiciels de gestion d'API

Les développeurs utilisent des intergiciels de gestion d'API pour créer des API et faciliter leur utilisation par d'autres développeurs. 

Intergiciels de flux de données asynchrones

Les intergiciels de flux de données asynchrones prennent en charge le flux de données en temps réel parmi les systèmes distribués.

Intergiciels robotiques

Les ingénieurs utilisent des intergiciels robotiques pour intégrer différents types de robots, quels que soient leur matériel, leur micrologiciel et leur fabricant. 

Qu'est-ce qu'un intergiciel dans le cloud computing ?

Le cloud computing consiste à créer et à déployer des applications natives cloud sur différentes infrastructures. Les développeurs utilisent des intergiciels pour accéder aux ressources du cloud sans être submergés par la complexité de la gestion des infrastructures. Les développeurs déploient des applications cloud dans des conteneurs sur un hébergement évolutif basé sur le cloud, tel que Amazon Elastic Compute Cloud (Amazon EC2).

Présentation d'Amazon EC2

Comment AWS prend-il en charge la technologie des intergiciels ?

Application Integration on AWS (intégration d'applications sur AWS) est une suite de services qui constituent une alternative abordable aux intergiciels classiques pour le cloud computing. Les développeurs utilisent les services pour communiquer entre les composants découplés au sein des microservices, des systèmes distribués et des applications sans serveur. Par exemple :

  • AWS Step Functions est un service de flux visuels qui permet aux développeurs de créer des applications distribuées, d'automatiser les processus informatiques et métier et de créer des pipelines de données et de machine learning en utilisant les services AWS.
  • Amazon Simple Notification Service (Amazon SNS) est une alternative aux intergiciels orientés messages. Il fournit des services de messagerie pour les applications.
  • Amazon EventBridge est un bus d'événements sans serveur que les développeurs utilisent pour intégrer des applications cloud aux services AWS.  

Commencez à utiliser les intergiciels sur AWS en créant un compte AWS aujourd'hui.

Intergiciels : prochaines étapes

Standard Product Icons (Features) Squid Ink
Consultez les ressources supplémentaires liées aux produits
En savoir plus sur la prise en charge par AWS de la technologie des intergiciels 
Sign up for a free account
Créer gratuitement un compte

Obtenez un accès instantané à l'offre gratuite AWS.

Créer un compte gratuit 
Standard Product Icons (Start Building) Squid Ink
Commencer à créer sur la console

Commencez à créer avec Amazon EC2 dans la console de gestion AWS.

Se connecter