Qu'est-ce qu'un middleware ?
Un middleware accélère le développement des applications distribuées en simplifiant la connectivité entre les applications, les composants d'application et les sources de données back-end.
S'abonner au bulletin d'information IBM
Fond noir et bleu
Qu'est-ce qu'un middleware ?

Un middleware est un logiciel qui permet un ou plusieurs types de communication ou de connectivité entre des applications ou des composants d'application dans une réseau distribué. En facilitant la connexion d'applications qui n'ont pas été conçues pour se connecter entre elles, et en offrant une fonctionnalité de connexion intelligente, le middleware rationalise le développement d'applications et accélère la commercialisation.

Il existe de nombreux types de middleware. Certains, comme les courtiers de messages ou les moniteurs de traitement de transactions, sont axés sur un type de communication. D'autres, comme les serveurs d'applications Web ou middleware de dispositif mobile, fournissent toutes les fonctionnalités de communication et de connectivité nécessaires pour générer un type d'application particulier. D'autres encore, comme une offre iPaaS (Integration Platform as a Service) ou un ESB (Enterprise Service Bus), font office de hub d'intégration centralisé pour connecter tous les composants d'une entreprise. Il existe même un middleware qui permet aux développeurs de générer leur middleware personnalisé.

Le terme middleware, ou logiciel intermédiaire, doit son nom au fait qu'il a commencé par faire office de médiateur entre une application frontale, ou client, et une ressource d'arrière-plan, par exemple une base de données, une application mainframe ou une unité matérielle spécialisée, à partir de laquelle le client peut demander des données. 

Mais le middleware d'aujourd'hui va bien au-delà. Le middleware de portail, par exemple, englobe l'application frontale et des outils pour la connectivité dorsale et le middleware de base de données comprend généralement son propre magasin de données. Une classe émergente de middleware (évoquée plus loin) exploite la technologie de conteneurs pour aider les développeurs à se connecter à des ressources distribuées sur plusieurs clouds.

Fonctionnement du middleware

Au niveau le plus élémentaire, le middleware permet aux développeurs de générer des applications sans avoir à créer une intégration personnalisée à chaque fois qu'ils ont besoin de se connecter à des composants applicatifs (services ou microservices), des sources de données, des ressources ou des dispositifs informatiques.

Pour ce faire, il fournit des services permettant à différents services et applications de communiquer via des infrastructures de messagerie communes comme JSON (JavaScript Object Notation), REST (Representational State Transfer), XML (Extensible Markup Language), SOAP (Simple Object Access Protocol) ou des services Web. Généralement, le middleware fournit également des services qui permettent à des composants écrits dans de multiples langages, tels que Java, C++, PHP et Python, de communiquer.

Outre cette interopérabilité pratique, le middleware comprend également des services qui aident les développeurs :

  • Configurer et contrôler les connexions et les intégrations. Sur la base d'informations d'une demande de client ou d'application frontale, le middleware peut personnaliser la réponse depuis l'application frontale ou le service. Dans une application d'e-commerce de distributeur, la logique applicative du middleware peut trier les résultats de recherche de produits d'une base de données d'inventaire back-end par magasin le plus proche, sur la base de l'adresse IP ou des informations d'emplacement de l'en-tête de la demande HTTP.

  • Sécuriser les connexions et le transfert de données.  Le middleware établit une connexion sécurisée depuis l'application frontale vers les sources de données dorsales via le protocole TSL (Transport Layer Security) ou un autre protocole de sécurité réseau. Il peut également fournir des fonctionnalités d'authentification, en demandant des données d'identification (nom d'utilisateur et mot de passe) ou des certificats numériques aux applications frontales. 

  • Gérer le trafic de manière dynamique via des systèmes distribués. Lorsque le trafic applicatif atteint un pic, le middleware d'entreprise peut se mettre à l'échelle pour répartir les demandes client sur plusieurs serveurs, sur site ou dans le cloud. Des fonctionnalités de traitement simultané peuvent également permettre d'éviter des problèmes lorsque plusieurs clients tentent d'accéder à la même source de données dorsale simultanément.
Types de middleware

Il existe de nombreux types de middleware. Certains sont axés sur les types de connectivité, d'autres sur des applications, des composants d'application et des dispositifs spécifiques ; certains combinent des fonctionnalités de middleware pour une tâche de développement spécifique. Voici les logiciels de middleware les plus connus et les plus couramment utilisés :

Le MOM (Message-oriented middleware) permet aux composants d'application utilisant différents protocoles de messagerie de communiquer pour échanger des messages. Outre la traduction (ou transformation) des messages entre les applications, le MOM gère le routage des messages afin qu'ils parviennent toujours aux composants adéquats dans le bon ordre. Des MOM peuvent être des files d'attente de messages et des courtiers de messagerie.

Le middleware RPC (Remote procedure call) permet à une application de déclencher une procédure dans une autre application – s'exécutant sur le même ordinateur ou sur un ordinateur ou un réseau différent – comme si les deux faisaient partie de la même application sur le même ordinateur.

Le middleware de données ou de base de données simplifie l'accès aux bases de données dorsales et l'interaction avec ces dernières. C'est généralement un serveur de base de données SQL.

Le middleware d'API fournit des outils que les développeurs peuvent utiliser pour créer, exposer et gérer des API pour leurs applications afin que d'autres développeurs puissent s'y connecter. Certains middlewares d'API comprennent des outils pour la monétisation des API, permettant à des entreprises de les utiliser moyennant paiement. Les plateformes de gestion d'API, les passerelles d'API et les portails de développeurs d'API sont des exemples de middleware d'API.

Le middleware ORB (Object request broker) fait office de courtier entre une requête d'un objet ou d'un composant d'application et l'exécution de cette requête par un autre objet ou composant sur le réseau distribué. Les ORB fonctionnent avec l'architecture CORBA (Common Object Request Broker), qui permet à un composant logiciel d'en demander un autre sans savoir où il est hébergé ou quel aspect a son IU ; le courtage gère ces informations au cours de l'échange.

Le middleware transactionnel fournit des services pour la prise en charge de l'exécution des transactions de données sur un réseau distribué. Les middlewares les plus connus sont les moniteurs de traitement des transactions (TPM) qui garantissent le bon déroulement des transactions d'une étape à l'autre, à savoir l'exécution de l'échange de données, l'ajout/la modification/la suppression de données si nécessaire, etc., jusqu'à la fin.

Le middleware de flux de données asynchrone réplique un flux de données dans un magasin intermédiaire, permettant le partage de données entre de multiples applications. Apache Kafka est l'un des middlewares de flux de données en temps réel parmi les plus connus.

Le middleware de dispositif offre un ensemble ciblé de fonctionnalités d'intégration et de connectivité pour le développement d'applications pour un système d'exploitation mobile spécifique.

Le middleware de portail fournit des outils et des ressources pour intégrer du contenu et des fonctionnalités d'applications connexes sur un seul écran, afin de créer une application composite unique.

Le middleware robotique simplifie le processus d'intégration de matériel, de firmware et de logiciels robotiques provenant de fabricants et de sites multiples.

Middleware d'intégration d'applications d'entreprise


Le middleware d'intégration d'applications d'entreprise permet à une entreprise d'établir un hub d'intégration d'entreprise, à savoir, un mode de connexion standardisé de toutes les applications, composants d'application, processus métier et sources de données back-end dans l'entreprise étendue.

Jusqu'à il y a environ dix ans, le middleware d'intégration d'applications d'entreprise le plus répandu était l'ESB, qui servait de hub d'intégration au sein d'une architecture SOA. Aujourd'hui, iPaaS permet à une entreprise de connecter des applications, des données, des processus et des services via des environnements sur site, de cloud privé et de cloud public sans les tâches et les dépenses liées à l'achat, l'installation, la gestion et la maintenance du middleware d'intégration (et du matériel sur lequel il s'exécute) au sein son centre de données.

Middleware de plateforme


Le middleware de plateforme (ou middleware de plateforme applicative) peut supporter de façon accrue le développement d'applications et accélérer leur distribution en fournissant un environnement d'hébergement d'exécution, tel qu'un environnement d'exécution Java (Java RE), et/ou des conteneurs, pour la logique applicative ou métier. Le middleware de plateforme peut inclure ou combiner des serveurs d'applications d'entreprise, des serveurs web et des systèmes de gestion de contenu, tout comme les autres types de middleware répertoriés ci-dessus.

Middleware et applications cloud natives

Le cloud natif est une approche de développement d'applications qui tire parti des technologies de cloud computing fondamentales, dans le but de fournir un développement, un déploiement et une gestion cohérents dans des environnements sur site, de cloud privé et public. 

En pratique, les applications cloud natives actuelles sont des applications créées à partir de microservices et déployées dans des conteneurs orchestrés à l'aide de Kubernetes. Les microservices sont des composants d'application faiblement couplés englobant leur propre pile et qui peuvent être déployés et mis à jour indépendamment les uns des autres, et communiquer entre eux à l'aide d'une combinaison d'API REST, de courtiers de messages et de flux d'événements. Les conteneurs sont des exécutables légers qui comportent du code d'application de package, tels que les microservices, avec uniquement les bibliothèques et les dépendances de système d'exploitation requises pour exécuter ce code sur toute infrastructure IT ou cloud traditionnelle.

Avec les technologies connexes, ils créent une plateforme puissante à développement unique et déploiement en tout lieu pour fournir de nouvelles applications de cloud hybride et pour moderniser les systèmes à des fins d'utilisation dans le cloud. Mais ils mènent également à un environnement de développement complexe qui combine davantage encore d'applications logicielles, de sources de données, de langages de programmation, d'outils et de systèmes distribués. 

Le middleware peut résoudre une partie de cette complexité, mais l'exécution d'applications conteneurisées avec du middleware conventionnel peut ajouter sa propre complexité, ainsi que le type de frais d'infrastructure que les conteneurs étaient censés éliminer. C'est pourquoi des plateformes de développement d'applications cloud comme Cloud Foundry (lien externe à IBM) et Red Hat Open Shift ont évolué pour inclure du middleware conteneurisé, à savoir du middleware modularisé pour que seules les fonctions de connectivité requises puissent être packagées dans un conteneur.

Solutions connexes
WebSphere Application Server

Un environnement d'exécution de serveur Java flexible et hautement sécurisé pour les applications d'entreprise.

Découvrir IBM WebSphere Application Server
IBM API Connect

Gérez votre écosystème d'API sur plusieurs clouds, notamment en stimulant les efforts de socialisation et de monétisation.

Découvrir IBM API Connect
Automatisation basée sur l'IA

De vos flux de travaux métier à vos opérations IT, nous avons la solution qu'il vous faut avec l'automatisation basée sur l'IA. Découvrez comment les grandes entreprises se transforment.

Découvrir l'automatisation basée sur l'IA
Ressources Qu'est-ce qu'un courtier de messages ?

Les courtiers de messages sont une technologie de communication inter-applications qui prend en charge les architectures cloud natives, basées sur les microservices, sans serveur et hybrides.

Qu'est-ce que l'iPaaS (Integration-Platform-as-a-Service) ?

L'iPaaS est une solution cloud qui normalise et simplifie l'intégration des applications dans les environnements sur site et sur le cloud.

Qu'est-ce qu'une API REST ?

Les API REST constituent un moyen souple et léger d'intégrer des applications. Elles sont aujourd'hui la méthode la plus courante pour connecter des composants dans les architectures de microservices.

Pour aller plus loin

IBM MQ fournit une messagerie éprouvée, hautes performances et sécurisée pour les environnements hybride et multi-cloud. Connectez des applications et des microservices dans des centres de données privés, dans des environnements hybrides ou multicloud et à la périphérie de votre entreprise. Exploitez la valeur de vos données stratégiques existantes pour obtenir des informations en temps réel et protégez votre entreprise contre les données incorrectes et les erreurs d'application grâce à la livraison unique des messages. IBM MQ ne perdra jamais un message, ni ne délivrera un message plus d'une fois.

En savoir plus sur IBM MQ