En informatique, un intergiciel (en anglais middleware) est un logiciel servant d'intermédiaire de communication entre plusieurs applications, généralement complexes ou distribuées sur un réseau informatique.
Le terme middleware vient de l'anglais middle (du milieu) et software (logiciel). Diverses francisations ont été proposées, mais leur usage reste confidentiel :
Le middleware offre des services de haut niveau liés aux besoins de communication des applications (temps réel, sécurisation, sérialisation, transaction informatique, etc.)...
C’est ce que l’on appelle une communication interprocessus (anglais InterProcess Communication, IPC). Elle vient se situer dans le modèle OSI au dessus de la couche de transport (couches 5, 6 et 7). La double mission d’interfaçage du middleware est :
Les deux missions sont assurées par deux composants distincts :
L’interface de programmation transmet au FAP les requêtes destinées au serveur qui va se charger de conditionner les données au transport par le réseau. Le FAP est propre à chaque protocole réseau. Le FAP du client reçoit la requête et la plie dans une trame destinée au transport sur le réseau. La FAP du serveur reçoit la trame, la déplie et transmet la requête à l’interface. Après traitement, le serveur renvoie le résultat de la requête à l’interface qui transmettra au client via les FAP du serveur, puis du client, soit par n-uplet de résultat, soit en entier.
Exemples de middleware : EAI, ETL, CORBA, HLA, file d'attente de message, pare-feu, ODBC, NEXUS, CFT (SopraGroup).
Le middleware se situe "au-dessous" de l'applicatif, "au-dessus" du système d'exploitation et "entre" deux logiciels ayant besoin de communiquer entre eux !
Par exemple, le couple [SQL*Net + ODBC] forme un middleware.
Les middleware les plus en vogue dans les architectures dites trois tiers sont :
Une tendance (marketing ?) se dégage également vers l'intégration des middleware "objets distribués" avec les "moniteurs transactionnels" (cas de Tuxedo qui fusionne avec l'ORB ObjectBroker pour constituer le produit M3 de BEA, cas également de l'offre COM+ de Microsoft) et former ainsi un ensemble rebaptisé pour l'occasion : serveur d'application. Voir également EAI.
L'accès aux données et aux services étant critique pour les entreprises, les serveurs d'application sont complétés par une couche d'accès aux données basée sur des standards tels que JDO ou SDO.