SOAP

SOAP (auparavant appelé Simple Object Access Protocol) est un protocole simplifié permettant l'échange d'informations dans un environnement décentralisé et réparti. Un message SOAP correspond à une transmission d'informations entre un expéditeur et un récepteur. Il est possible de combiner plusieurs messages SOAP pour effectuer des masques de requête/réponse.

Bien que n'étant pas associé à un mode de transport particulier, SOAP est le plus souvent transmis via HTTP, de manière à assurer une compatibilité avec les infrastructures Internet existantes. SOAP permet de lier et d'utiliser les services Web découverts en définissant un chemin de messages pour le routage des messages. SOAP est utilisé pour émettre des requêtes UDDI pour les services Web. Le plan de travail prend en charge SOAP 1.1.

SOAP est un protocole basé sur XML, qui définit trois parties pour chaque message :

Style de liaison

SOAP prend en charge deux styles différents de communication :

Appel de procédure éloignée (RPC) : appel d'une opération renvoyant un résultat. Utilisé en général avec le codage SOAP, qui n'est pas conforme à la spécification WS-I.

Style Document :  également appelé style orienté documents ou orienté messages. Ce style fournit une couche d'abstraction de bas niveau et nécessite un plus gros travail de programmation.

Styles de codage

Dans les environnements informatiques répartis, les styles de codage définissent la manière dont les valeurs des données définies dans l'application peuvent être traduites depuis et vers un format de protocole spécifique. Le processus de traduction est appelé sérialisation/désérialisation.

La spécification SOAP définit le style de codage SOAP :

Codage SOAP : le style de codage SOAP vous permet de sérialiser/désérialiser les valeurs des types de données à partir du modèle de données SOAP. Ce style de codage est défini dans la norme SOAP 1.1 et il n'est pas conforme à la spécification WS-I.

La spécification WSDL définit le style de codage XML littéral :

XML littéral : l'adjectif littéral fait ici référence au fait que le document doit être lu tel quel, non codé. Le document est sérialisé en XMI, ce qui signifie que le message XML est conforme au schéma de la spécification WSDL. Lors de l'utilisation du codage littéral, chacune des parties du message fait référence à une définition de schéma concrète. Le codage littéral est conforme à la spécification WS-I.

Modèle de données

Le modèle de données SOAP a pour but de fournir une abstraction indépendante du langage pour les types de données utilisés par les types de langages de programmation courants. Il se compose de :

Tous les éléments et identificateurs comprenant le modèle de données SOAP sont définis dans l'URI de l'espace de nom. La norme SOAP définit les règles régissant la manière dont les types de données peuvent être construits. Un schéma XML propre au projet doit définir les véritables types de données. Les éléments de la spécification SOAP sont définis aux adresses suivantes : http://schemas.xmlsoap.org/soap/envelope/ et http://schemas.xmlsoap.org/soap/encoding/

Implémentations SOAP

Différentes implémentations du protocole SOAP sont disponibles actuellement. Ainsi, la Fondation Apache propose Apache SOAP qui s'appuie non seulement sur un projet IBM® appelé SOAP4J, mais également sur Apache Axis et l'environnement d'exécution d'IBM WebSphere®.

Mappages

Un mappage définit l'association entre un nom qualifié d'élément XML, un nom de classe Java™ et un style de codage. Le mappage spécifie comment, avec un codage donné, un élément XML entrant disposant d'un nom qualifié complet est converti en classe Java.

Pour plus d'informations sur Apache SOAP, voir xml.apache.org/soap  Pour plus d'informations sur SOAP, voir www.w3.org/TR/SOAP