Passer au contenu

Avec XML et HTTP, SOAP fédère les services fournis sur le web

SOAP permet d’échanger sur Internet des informations structurées. Ce protocole de dialogue a été pensé pour une utilisation aussi simple que possible.

Imaginez une application qui relie entre elles les informations que vous recevez d’un site contenant des données sur le trafic routier, grâce à une destination qui lui aurait été fournie au préalable par votre gestionnaire de calendrier. […] Une application qui vous rappelle 15 minutes avant votre rendez-vous et vous indique le trajet idéal en tenant compte du trafic routier.” Tel est, selon Microsoft, l’objectif annoncé par les créateurs de SOAP (Simple Object Access Protocol) : Microsoft, Userland Software Inc. , DevelopMentor et, depuis la version 1. 1, IBM et Lotus.Pour réaliser cet objectif, les développeurs ont fait appel à la fois à HTTP et à XML afin de transposer et d’étendre le principe de la technique RPC (Remote Procedure Call) – qui permet à un programme client d’appeler des procédures qui sont exécutées sur un serveur distant – à la multitude d’objets applicatifs reliés à l’Internet. On peut ainsi concevoir SOAP comme un protocole de création et de routage d’objets distribués utilisant la couche de transport HTTP et, depuis la version 1. 1, SMTP et FTP. En ayant recours à XML et HTTP, ces messages sont totalement indépendants des plates-formes, des modèles d’objets, des langages de programmation, des systèmes d’exploitation et du mode de transport utilisé.En outre, ce protocole présente l’avantage d’autoriser un haut niveau d’interopérabilité entre des éléments, éventuellement concurrents, dont la connexion peut se révéler problématique ou qui n’ont pas nécessairement été conçus pour cela à l’origine : sites web, applications, objets COM/DCOM, CORBA-IIOP, scripts CGI ou Perl, programmes Java, etc. Autrement dit, pour fournir un service tel que décrit plus haut, SOAP procède un peu à la façon dont on construit une application par composants objets : il agrège les mécanismes liés à chaque objet et les met sous enveloppe qu’il va transmettre par une couche de transport.

Extensible et simple à mettre en ?”uvre

Concrètement, un message SOAP est un document XML constitué de trois éléments. L’enveloppe, tout d’abord, élément représentant le message, est obligatoire et peut contenir des déclarations d’espace de noms ou un certain nombre d’attributs supplémentaires. L’en-tête, ensuite, est facultatif mais permet, si nécessaire, d’ajouter des fonctions à un message, sans accord préalable entre le client et le serveur. Enfin, le corps du message contient les informations destinées au composant final. Il peut s’agir des appels de méthodes RPC fournissant l’URI (Universal Resource Identifier) de la méthode, un nom de méthode, une signature et des paramètres. Le corps peut également contenir une entrée destinée à rapporter les erreurs éventuelles (Fault). Bien entendu, les spécifications de SOAP, soumises au W3C en vue de sa normalisation, précisent quelques règles essentielles à la constitution des messages et à la manière dont ils doivent être traités, règles que l’application qui reçoit un message SOAP doit respecter durant son traitement. Elle doit identifier les parties du message qui lui sont destinées, avant de vérifier qu’elles pourront être prises en charge et traitées ; sinon, le message est effacé. Dans le cas où cette application n’est pas le seul destinataire, le message est ” nettoyé ” des éléments déjà traités, puis routé au destinataire suivant.Deux technologies, CIM (COM Internet Service) et RDS (Remote Data Service) ressemblent à SOAP, mais sans en posséder tous les avantages en terme d’interopérabilité. Elles sont similaires car elles utilisent HTTP, tout comme SOAP, pour permettre aux objets COM/DCOM, en l’occurrence, de passer outre l’obstacle des pare-feu par le port 80. Mais à l’inverse de SOAP, elles nécessitent à la fois une plate-forme spécifique, à savoir le serveur HTTP de Microsoft IIS, un paramétrage spécifique et, dans le cas de RDS, une infrastructure similaire sur le poste client. Deux des caractéristiques de SOAP – simplicité de mise en ?”uvre et extensibilité – le privent cependant de certaines fonctions propres aux systèmes d’objets distribués traditionnels (COM/DCOM, CORBA) tels, entre autres, le nettoyage de mémoire distribuée ou la mise en lots des messages.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


STÉPHANE GAUTIER