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 SOAP

SOAP 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 :
  • Un enveloppe qui définit le contenu du message
  • Une en-tete optionel qui contient les informations d'en-tete (autorisations et transactions par exemple)
  • Un corps contenant les informations sur l'appel et la réponse
  • Des attachements optionnels.

Exemple d'un message SOAP

Soit 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é.

Voici la requete :


Dans la requete ci-dessus, on retrouve bien les deux éléments obligatoires caractéristiques d'un message SOAP. Le tag de l'enveloppe dans le message de requete contient également des définitions de namespaces. On trouve ensuite le tag SOAP Body qui encapsule le tag de méthode qui porte le nom de la méthode elle meme (ou le meme nom suivi de "response" dans le cas du message de réponse.

Principe de fonctionnement de SOAP



    Coté client

    Le 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é serveur

    C'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.