Middleware
Arrière-plan noir et bleu
Middleware

Le middleware accélère le développement des applications distribuées en simplifiant la connectivité entre les applications, les composants des applications et les sources de données dorsales.

Produits à la une

WebSphere Hybrid Edition

Red Hat OpenShift on IBM Cloud

WebSphere Application Server

MQ

IBM API Connect

Event Streams


Qu'est-ce que le middleware ?

Le middleware est un logiciel qui permet au moins un type de communication ou de connectivité entre au moins deux 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 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, est issu du fait qu'il a commencé par faire office de médiateur entre un frontal d'application, 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 le frontal d'application et des outils pour la connectivité dorsale ; 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 un 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. Le middleware fournit généralement, en outre, 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'ecommerce 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. Et il peut fournir des fonctionnalités d'authentification , où il demande des identifiants (nom d'utilisateur et mot de passe) ou des certificats numériques aux demandes d'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. Et des fonctionnalités de traitement simultané peuvent é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. Les logiciels de middleware les plus connus et les plus couramment utilisés sont les suivants :

  • MOM (Message-oriented middleware) permet aux composants d'applications 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 à et l'interaction avec les bases de données dorsales. Le middleware de base de données 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  middleware  d'API comprennent des outils pour la monétisation  des API, à savoir que des entreprises peuvent les utiliser moyennant paiement. Du middleware d'API peut être des plateformes de gestion d'API, des passerelles d'API et des portails de développeur d'APl.
  • 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 traitement de transaction  (TPM), qui assurent que les transactions se poursuivent d'une étape à la suivante, à 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 exemples les plus connus de middleware pour le flux de données en temps réel.
  • 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 OS 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 au niveau d'un seul écran, pour créer un application composite unique.
  • Le middleware robotique simplifie le processus d'intégration de matériel, de firmware et de logiciels robotique de multiple fabricants et emplacements.

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'applications, 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, un modèle hébergé dans le cloud appelé 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), ou des conteneurs, ou les deux, 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 complexité propre, ainsi que le type de frais d'infrastructure que les conteneurs étaient censés éliminer. C'est pourquoi des plateformes de développement d'application cloud comme Cloud Foundry (le lien réside en dehors d'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.


Middleware et IBM Cloud®

Alors que les entreprises accélérent leur transformation numérique, au sein de laquelle le middleware joue un rôle clé, le besoin d'automatisation s'élargit. L'évolution vers une plus grande automatisation doit commencer par de petits projets dont le succès est mesurable, et que vous pouvez ensuite adapter et optimiser pour d'autres processus et dans d'autres secteurs de votre organisation.

En collaboration avec IBM, vous aurez accès aux fonctionnalités d'automatisation propulsée par IA, y compris à des flux de travail préconfigurés, pour accélérer l'innovation en rendant chaque processus plus intelligent.

Pour aller plus loin :

Obtenez un compte IBM Cloud dès aujourd'hui.


Solutions connexes

Automatisation basée sur l'IA

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


WebSphere Application Server

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


IBM API Connect

Gérez votre écosystème d'API sur plusieurs clouds, notamment en boostant les opérations de socialisation et de monétisation


Event Streams

IBM Event Streams, une plateforme de streaming d'événements basée sur Apache Kafka peut vous aider à réagir aux événements en temps réel pour des expériences client plus intéressantes.


Red Hat OpenShift on IBM Cloud

Red Hat OpenShift on IBM Cloud exploite OpenShift dans les environnements publics et hybrides afin d'offrir vitesse, réactivité sur le marché, évolutivité et fiabilité.