Si l’on reprend la définition de Mark Colan, Web Service and XML Chief Advocate chez IBM, les Web Services sont des “applications modulaires basées sur internet qui exécutent des tâches précises et qui respectent un format spécifique”. Nous sommes bien conscients que cette citation apportera peu d’informations aux non initiés et nous allons tâcher d’en reprendre le contenu.
Il y a plusieurs manières de définir les web services :
Si l’on s’en remet à une définition non-informatique, le terme “Web Service” décrit une fonctionnalité commerciale exposée par une entreprise sur Internet afin de fournir un moyen d’utiliser ce service à distance
Si l’on s’en tient aux aspects opérationnels, les “Web Service” sont des applications modulaires qui peuvent être décrites, publiées, localisées et invoquées dans un réseau.
Ainsi, cela permet à vos applications de faire appel à des fonctionnalités situées sur d’autres machines.
Si l’on détaille tout ceci, on peut dire que l’objectif initial d’un web service est de permettre l’utilisation d’un composant applicatif de manière distribuée.
Plus clairement, cela consiste à permettre l’utilisation d’une application à distance. En fait, les “Web Services” facilitent l’invocation de certains traitements depuis Internet. Le modèle logiciel proposé contient à la fois un nouveau mode de développement et une nouvelle méthode de fourniture de services. Les concepts qui le composent en font presque un véritable paradigme de programmation.
L’avantage de ce modèle tient est de présenter ces services comme des “boîtes noires”. En fait, les entrées-sorties d’un service sont gérées au sein de messages dont on connaît le format grâce à des interfaces clairement exposées mais sur lesquels l’implémentation interne du traitement n’influe pas au niveau de la structure. Ceci permet un haut niveau de modularité et d’interopérabilité. L’avantage du modèle de message est qu’il permet de s’abstraire de l’architecture, du langage ou encore de la plate-forme qui va supporter le service : il suffit juste que le message respecte une structure donnée pour qu’il puisse être utilisé.
Techniquement les concepts ayant donné lieu aux Web Services ne sont pas nouveaux. Nous venons d’évoquer les protocoles existants : DCOM, RMI, CORBA, DIIOP et Remote Procedure Call (RPC).
Les implémentations propriétaires de ces protocoles ont mené à leur perte. Ceux-ci sont progressivement abandonnés au profit des Web Services. On peut toutefois s’attendre à les voir conserver tant que les technologies que nous allons vous présenter n’auront pas parfaitement adressé l’ensemble des problèmes que l’informatique distribuée recouvre.
Pour finir, la définition des Web Services ne serait pas complète si l’on n’évoquait pas ses principaux standards : SOAP, WSDL et UDDI, des protocoles mis en place par Microsoft, IBM, Sun et bien d’autres.
SOAP est un protocole permettant l’invocation de méthodes à distance par l’échange de messages XML
WSDL est une norme dérivée de XML qui permet la description de l’interface d’utilisation d’un Web Service. Ce standard est donc équivalent à la partie publique d’une classe ou au header d’un programme C.
UDDI est un protocole d’annuaire permettant de trouver le web service que l’on recherche mais aussi d’en annoncer la disponibilité