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.
WebSphere Hybrid Edition
Red Hat OpenShift on IBM Cloud
WebSphere Application Server
MQ
IBM API Connect
Event Streams
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.
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 à :
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 :
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.
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.
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.
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.
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.
Un environnement d'exécution de serveur Java flexible et hautement sécurisé pour les applications d'entreprise
Gérez votre écosystème d'API sur plusieurs clouds, notamment en boostant les opérations de socialisation et de monétisation
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 exploite OpenShift dans les environnements publics et hybrides afin d'offrir vitesse, réactivité sur le marché, évolutivité et fiabilité.