« Middleware » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Silex6 (discuter | contributions)
Aucun résumé des modifications
Silex6 (discuter | contributions)
nouveau texte + sources
Ligne 1 : Ligne 1 :
En [[architecture informatique]], un '''middleware''' ([[anglicisme]]) est une couche de [[logiciel]]s qui crée un réseau d'échange d'informations entre différentes [[application informatique|applications informatique]]. Le réseau est mis en oeuvre par l'utilisation d'une même technique d'échange d'information dans toutes les applications impliqués<ref>{{en}}John Footen et Joey Faust, ''The Service-Oriented Media Enterprise: SOA, BPM, and Web Services in Professional Media Systems'', Focal Press, 2008, {{ISBN|9780240809779}}, chapitre 4 ''definition of a middleware''</ref>, souvent à l'aide de [[composant logiciel|composants logiciels]].
{{À recycler}}{{À vérifier}}{{sources|date=juin 2008}}
Un '''middleware''', ([[anglicisme]]), aussi appelé ''logiciel médiateur'' ou ''intergiciel'', est un [[logiciel]] servant d'intermédiaire de communication entre plusieurs [[Logiciel|applications]], généralement complexes ou distribuées sur un [[réseau informatique]]. L'intergiciel offre des services de haut niveau liés aux besoins de communication des applications.


Les [[composant logiciel|composants logiciels]] d'échange d'information assurent la communication entre les applications quels que soient les ordinateurs impliqués et quels que soient les caractéristiques matérielles et logicielles des [[réseau informatique|réseaux informatique]], des [[protocoles réseau]], des [[systèmes d'exploitation]] impliqués.
Des exemples d'intergiciels sont [[Intégration d'applications d'entreprise|IAE]][[Extract Transform Load|ETL]], [[CORBA]], [[HLA]], [[file d'attente de message]], [[ODBC]], NEXUS ...


Les techniques les plus courantes d'échange d'informations sont l'échange de message, l'appel de procédure distant et la manipulation d'objets distants.
Les intergiciels sont des éléments essentiels dans les architectures multi-tier. On peut distinguer plusieurs catégories d'intergiciels :
* les intergiciels "orientés objets distribués" : [[Object Request Broker]], comme Java RMI ou CORBA ;
* les intergiciels "orientés messages" : [[Message-Oriented Middleware]], comme [[MQ Series]] d'IBM, [[JMS]] de [[Sun Microsystems|Sun]], [[MSMQ]] de [[Microsoft]] ;
* les intergiciels "transactionnels" : [[moniteur transactionnel|moniteurs transactionnels]], comme [[CICS]] d'IBM, [[Tuxedo (logiciel)|Tuxedo]] de [[BEA Systems]], [[MTS]] de [[Microsoft]], [[JTS]] de [[Sun Microsystems|Sun]].


Les middleware sont typiquement utilisés comme ''ciment'' pour relier des applications informatique disparates des [[système d'information]] des entreprises et des institutions.
Une tendance se dégage également vers l'intégration des intergiciels "objets distribués" avec les "moniteurs transactionnels" et former ainsi un ensemble rebaptisé pour l'occasion : serveur d'application. Ce cas se présente dans l'[[Intégration d'applications d'entreprise]].


== Vocabulaire ==
== Traduction ==
Le terme ''middleware'' vient de l'[[anglais]] ''middle'' (du milieu) et ''software'' (logiciel). Diverses francisations ont été proposées et '''intergiciel''' semble le terme le plus répandu :
Le terme ''middleware'' vient de l'[[anglais]] ''middle'' (du milieu) et ''software'' (logiciel). Diverses francisations ont été proposées :
* La [[Délégation générale à la langue française et aux langues de France]] préconise l'emploi de '''logiciel médiateur''' depuis [[1999]].
* La [[Délégation générale à la langue française et aux langues de France]] préconise l'emploi de ''logiciel médiateur'' depuis [[1999]].
* L'[[Office québécois de la langue française]], quant à lui, propose le terme '''intergiciel'''.
* L'[[Office québécois de la langue française]], quant à lui, propose le terme ''intergiciel''.
* Les termes de '''logiciel d'intermédiation''' et, par abus de langage, de '''bus logiciel''' (voir aussi [[bus de données]]) peuvent être rencontrés dans la littérature.
* Les termes de ''logiciel d'intermédiation'' et, par abus de langage, de ''bus logiciel'' (voir aussi [[bus de données]]) peuvent être rencontrés dans la littérature.


== Description ==
== Techniques ==
La double mission d’interfaçage de l'intergiciel est :
* Le processus [[client-serveur|client ou serveur]] : la gestion des appels de [[fonction (informatique)|fonctions]] de l’application ou la gestion du renvoi des résultats.
* La mise en forme des [[donnée]]s en vue de leur prise en charge par la couche transport.


L'échange de messages, l'appel de procédure et la manipulation d'objets tiers sont trois techniques prises en charge par le middleware, qui permettent à des applications informatique d'interragir, de coopérer et de se transmettre des informations.
Les deux missions sont assurées par deux composants distincts :
=== échange de messages ===
{{article détaillé|Message-Oriented Middleware}}


dans un middleware orienté message (''message-oriented middleware''). Les applications informatique communiquent par échanges de messages d'une manière similaire au [[courrier électronique]]: Une application informatique émet un message. Le message est alors transmis à l'application destinataire par les composants logiciels du middleware pendant que l'application émetteur effectue d'autres traitements ([[asynchronisme]]).
* Le Protocole d'accès formaté (''Format And Protocol'', FAP) met en forme les différentes données au niveau du réseau.
* L'[[interface de programmation]] (''Application Programming Interface'', API) se charge :
** des connexions et déconnexions avec le serveur;
** de la définition de l’environnement de la connexion (variables de contexte, zones tampon); et
** du transfert des requêtes et de la réception des résultats (n-uplet par n-uplet ou de façon globale).


Le contenu du message est formaté par l'émetteur selon une convention pré-établie, ce de manière à pouvoir être traité automatiquement par l'application destinataire. le [[format de données]] [[XML]] est souvent utilisé pour les messages.<ref>Daniel Serain et Iain Craig, ''Middleware and enterprise application integration: the architecture of e-business solutions'', Springer - 2002, {{ISBN|9781852335700}}, page 154</ref>
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.



== Sources ==
[[WebSphere MQ]] de [[International Business Machines|IBM]], est un composant logiciel pour middleware orienté messages.
=== Anglophones ===

*[http://ironick.typepad.com/ironick/2005/07/update_on_the_o.html Mise à jour sur l'origine du terme "middleware". par Ironick]
[[Java Message Service|JMS]] est une [[interface de programmation]] pour les middleware orientés messages. [[OW2 JORAM]] est un des logiciels qui met en oeuvre cette interface.
*[http://middleware.objectweb.org/ Ce qu'est un Middleware. Selon l'ObjectWeb.]

*[http://www.sei.cmu.edu/str/descriptions/middleware.html Middleware, selon université Carnegie Mellon.]
=== appel de procédure distant ===
*[http://www.middleware.org/ Qu'est qu'un Middleware? Selon le Middleware Resource Center (MRC).]

=== Francophones ===
Avec un middleware basé sur les appels de procédure distant (''remote procedure call'') des [[fonction (informatique)|fonctions]] existantes dans une application informatique donnée peuvent être exécutées sur demande par d'autres applications.
*[http://sardes.inrialpes.fr/ecole/livre/pub/ '''Intergiciel et Construction d'Applications Réparties''', livre en ligne par l'INRIA, l'IMAG et l'ObjectWeb.]

<!-- métadonnées -->
L'appel de procédure à l'intérieur d'une application est un mécanisme logiciel ordinaire, qui peut être réalisé avec n'importe quel [[langages de programmation]] [[programmation procédurale|procédural]]. Il en va autrement quand cet appel est réalisé entre deux applications.

Dans le mécanisme d'appels de procédure distant, les composants logiciels du middleware créent dans l'application appelante un composant logiciel souche (''stub'') dont les fonctions sont identiques à celles de l'application informatique appelée. Puis les appels de procédure effectués par l'application appelante sur la souche sont déviés par les composants logiciel du middleware vers l'application appelée dans laquelle les composants du middleware ont créé une autre souche semblable à l'appelant.

Le résultat de l'exécution de la fonction est ensuite transmis de l'appelé vers l'appelant par les mêmes mécanismes. Les composants du middleware utilisent le procédé de [[sérialisation]] (''marshalling'').<ref>{{en}} Bill Blunden, ''Message passing server internals'', McGraw-Hill Professional - 2003, {{ISBN|9780071416382}}</ref>

le [[protocole réseau]] [[RPC]] de [[Sun Microsystems]] sert à effectuer des appels distants.

[[SOAP]] est une technique d'appels distants sur des [[serveurs web]] basée sur [[XML]] et le protocole [[HTTP]] - protocole des serveurs web.

technique intermédiaire entre les appels de procédure distant et la manipulation d'objets, [[Remote Method Invocation|RMI]] est un [[composant logiciel]] pour effectuer des appels de procédure distant sur des objets en langage de programmation [[Java (langage)|Java]].

=== manipulation d'objets ===
Avec un middleware à objets, une application informatique donnée peut manipuler les objets - de [[programmation orientée objet]] - d'une autre application. Ces manipulations induisent des traitements et des modifications d'informations dans l'application qui est propriétaire de l'objet en question.

La manipulation par une application d'objets lui appartenant est une opération ordinaire de [[programmation orientée objet]]. Les mécanismes nécessaires existent dans la totalité des [[langage de programmation]] [[orientation objet|orientés objet]]. Il en va autrement de la manipulation d'un objet appartenant à une autre application.

Le mécanisme est similaire à celui des composants de middleware à appel de procédure distant: les composants du middleware créent dans l'application informatique qui exploite l'objet (client) une souche (''stub'') de celui-ci. Puis les manipulations effectuées sur la souche sont déviées par les composants du middleware vers l'application à laquelle appartient l'objet (fournisseur). Les composants du middleware créent dans l'application fournisseur un objet qui contient l'objet manipulé ainsi que les instructions nécessaire pour recevoir les manipulations - le squelette (''skeleton'').

Le squelette est réalisé en utilisant les mécanismes d'[[héritage (informatique)|héritage]] de la programmation orientée objet.<ref>{{en}} Gustavo Alonso, ''Web services: concepts, architectures and applications'', Springer - 2004, {{ISBN|9783540440086}}, page 55</ref>

[[Distributed Component Object Model|DCOM]] de [[Microsoft]] est une technique de manipulation d'objets distants basée sur le protocole réseau [[RPC]].

[[Distributed Computing Environment|DCE]] est un middleware à manipulation d'objet du [[Object Management Group]] basé sur [[Common Object Request Broker Architecture|CORBA]] est une technique standardisée du même auteur.

=== Transactions ===

En informatique une transaction est une suite d'opérations indissociables - qui doivent être réalisées entièrement ou pas du tout. Divers composants de middleware permettent la réalisation de transactions. Ils permettent en particulier l'annulation totale de la transaction en cas d'échec.<ref>{{en}} Qusay H. Mahmoud, ''Middleware for communications'', John Wiley and Sons - 2004, {{ISBN|9780470862063}}, page 54</ref>

[[CICS]] de [[International Business Machines|IBM]] et [[Distributed Transaction Coordinator|DTC]] de [[Microsoft]] sont des middleware qui permettent la réalisation de transactions.
== Notes et références ==
<references />


{{portail informatique}}
{{portail informatique}}


[[Catégorie:Calcul distribué]]
[[Catégorie:Calcul distribué]]
[[Catégorie:Architecture réseau]]
[[Catégorie:Architecture informatique]]


[[bn:মিডলওয়্যার]]
[[bn:মিডলওয়্যার]]

Version du 27 novembre 2009 à 23:22

En architecture informatique, un middleware (anglicisme) est une couche de logiciels qui crée un réseau d'échange d'informations entre différentes applications informatique. Le réseau est mis en oeuvre par l'utilisation d'une même technique d'échange d'information dans toutes les applications impliqués[1], souvent à l'aide de composants logiciels.

Les composants logiciels d'échange d'information assurent la communication entre les applications quels que soient les ordinateurs impliqués et quels que soient les caractéristiques matérielles et logicielles des réseaux informatique, des protocoles réseau, des systèmes d'exploitation impliqués.

Les techniques les plus courantes d'échange d'informations sont l'échange de message, l'appel de procédure distant et la manipulation d'objets distants.

Les middleware sont typiquement utilisés comme ciment pour relier des applications informatique disparates des système d'information des entreprises et des institutions.

Traduction

Le terme middleware vient de l'anglais middle (du milieu) et software (logiciel). Diverses francisations ont été proposées :

Techniques

L'échange de messages, l'appel de procédure et la manipulation d'objets tiers sont trois techniques prises en charge par le middleware, qui permettent à des applications informatique d'interragir, de coopérer et de se transmettre des informations.

échange de messages

dans un middleware orienté message (message-oriented middleware). Les applications informatique communiquent par échanges de messages d'une manière similaire au courrier électronique: Une application informatique émet un message. Le message est alors transmis à l'application destinataire par les composants logiciels du middleware pendant que l'application émetteur effectue d'autres traitements (asynchronisme).

Le contenu du message est formaté par l'émetteur selon une convention pré-établie, ce de manière à pouvoir être traité automatiquement par l'application destinataire. le format de données XML est souvent utilisé pour les messages.[2]


WebSphere MQ de IBM, est un composant logiciel pour middleware orienté messages.

JMS est une interface de programmation pour les middleware orientés messages. OW2 JORAM est un des logiciels qui met en oeuvre cette interface.

appel de procédure distant

Avec un middleware basé sur les appels de procédure distant (remote procedure call) des fonctions existantes dans une application informatique donnée peuvent être exécutées sur demande par d'autres applications.

L'appel de procédure à l'intérieur d'une application est un mécanisme logiciel ordinaire, qui peut être réalisé avec n'importe quel langages de programmation procédural. Il en va autrement quand cet appel est réalisé entre deux applications.

Dans le mécanisme d'appels de procédure distant, les composants logiciels du middleware créent dans l'application appelante un composant logiciel souche (stub) dont les fonctions sont identiques à celles de l'application informatique appelée. Puis les appels de procédure effectués par l'application appelante sur la souche sont déviés par les composants logiciel du middleware vers l'application appelée dans laquelle les composants du middleware ont créé une autre souche semblable à l'appelant.

Le résultat de l'exécution de la fonction est ensuite transmis de l'appelé vers l'appelant par les mêmes mécanismes. Les composants du middleware utilisent le procédé de sérialisation (marshalling).[3]

le protocole réseau RPC de Sun Microsystems sert à effectuer des appels distants.

SOAP est une technique d'appels distants sur des serveurs web basée sur XML et le protocole HTTP - protocole des serveurs web.

technique intermédiaire entre les appels de procédure distant et la manipulation d'objets, RMI est un composant logiciel pour effectuer des appels de procédure distant sur des objets en langage de programmation Java.

manipulation d'objets

Avec un middleware à objets, une application informatique donnée peut manipuler les objets - de programmation orientée objet - d'une autre application. Ces manipulations induisent des traitements et des modifications d'informations dans l'application qui est propriétaire de l'objet en question.

La manipulation par une application d'objets lui appartenant est une opération ordinaire de programmation orientée objet. Les mécanismes nécessaires existent dans la totalité des langage de programmation orientés objet. Il en va autrement de la manipulation d'un objet appartenant à une autre application.

Le mécanisme est similaire à celui des composants de middleware à appel de procédure distant: les composants du middleware créent dans l'application informatique qui exploite l'objet (client) une souche (stub) de celui-ci. Puis les manipulations effectuées sur la souche sont déviées par les composants du middleware vers l'application à laquelle appartient l'objet (fournisseur). Les composants du middleware créent dans l'application fournisseur un objet qui contient l'objet manipulé ainsi que les instructions nécessaire pour recevoir les manipulations - le squelette (skeleton).

Le squelette est réalisé en utilisant les mécanismes d'héritage de la programmation orientée objet.[4]

DCOM de Microsoft est une technique de manipulation d'objets distants basée sur le protocole réseau RPC.

DCE est un middleware à manipulation d'objet du Object Management Group basé sur CORBA est une technique standardisée du même auteur.

Transactions

En informatique une transaction est une suite d'opérations indissociables - qui doivent être réalisées entièrement ou pas du tout. Divers composants de middleware permettent la réalisation de transactions. Ils permettent en particulier l'annulation totale de la transaction en cas d'échec.[5]

CICS de IBM et DTC de Microsoft sont des middleware qui permettent la réalisation de transactions.

Notes et références

  1. (en)John Footen et Joey Faust, The Service-Oriented Media Enterprise: SOA, BPM, and Web Services in Professional Media Systems, Focal Press, 2008, (ISBN 9780240809779), chapitre 4 definition of a middleware
  2. Daniel Serain et Iain Craig, Middleware and enterprise application integration: the architecture of e-business solutions, Springer - 2002, (ISBN 9781852335700), page 154
  3. (en) Bill Blunden, Message passing server internals, McGraw-Hill Professional - 2003, (ISBN 9780071416382)
  4. (en) Gustavo Alonso, Web services: concepts, architectures and applications, Springer - 2004, (ISBN 9783540440086), page 55
  5. (en) Qusay H. Mahmoud, Middleware for communications, John Wiley and Sons - 2004, (ISBN 9780470862063), page 54