Table des matières |
Le protocole SOAP
|
Retour au sommaire Introduction Historique Architecture Présentation d'Axis Installation d'Axis Conclusion Pour en savoir plus Glossaire |
Qu'est ce que SOAP (Simple Object Access Protocol) ?SOAP est un protocole de communication basé sur XML pour permettre aux applications de s'échanger des informations via HTTP. Il permet ainsi l'accès aux services web et l'interopérabilité des applications à travers le web. SOAP est un protocole simple et léger et qui repose entièrement sur des standars établis comme le HTTP et XMl. Il est portable et donc indépendant de tous système d'exploitation et du type d'ordinateur. SOAP est une spécification non propriétaire.Pourquoi SOAP?Les applications communiquent grâce aux RPC entre les objets. Mais HTTP n'a pas été concu pour ca. Or RPC ne resout pas les problèmes de sécurité et de compatibilité car certains firewall et proxy bloque ce genre de trafic. L'utilisation de la communication via HTTP reste incontournable car il est supporté par tous les navigateurs et serveurs. Aussi SOAP a été créer pour palier ce manque et permettre la communication entre application qui tournent sur différents OS, différentes technologies, et différents langages de programmation.Structure d'un message SOAPSOAP définit un format pour l’envoi des messages. Les messages SOAP sont structuré en un document XML et comporte 2 éléments obligatoires : Une enveloppe et un corps ( une entête facultative).![]() Le schéma ci-dessus montre la strcuture d'un message SOAP :
Exemple d'un message SOAPSoit un dialogue RPC encodé par SOAP qui contient un message de requete et un message de réponse. Considérons la méthode d'un service simple qui double la valeur d'un entier donné.![]() ![]() Dans la requete ci-dessus, on retrouve bien les deux éléments obligatoires caractéristiques d'un message SOAP. Le tag de l'enveloppe Principe de fonctionnement de SOAP![]() Coté clientLe client envoie des messages au serveur correspondant à des requetes SOAP-XML enveloppés dans des requetes HTTP. De meme, les réponses du serveurs sont des réponses HTTP qui renferment des réponses SOAP-XML. Dans le process client, l'appel de service est convertu en une requete SOAP qui est ensuite enveloppé dans une HTTP.Coté serveurC'est légèrement plus complexe car il requiert un process listener corresponsant au process serveur en attente de connexion cliente. Le listener est souvent implémenté au travers d'un servlet qui s'exécute qui a pour tache d'extraire le message XML-SOPA de la requete HTTP, de le désérialiser c'est à dire de séparer le nom de la méthode et les paramètres fournis puis invoquer la méthode du service en conséquence. Le résultat de la méthode est alors sérialisé, encodé HTTP et renvoyé au demandeur. |