Fiche technique | |
---|---|
Nom : | SOAP |
Nom long : | Simple Object Access Protocol |
Type de produit : | Protocole |
Couche : | Application |
Date de publication : | 1999 |
Introduction
Le protocole SOAP tirent son nom de l'anglicisme Simple Object Access Protocol, est un protocole d'échange d'information structurée dans la mise en oeuvre de service web bâti sur le XML.
La place de SOAP dans la pile technologique des services Web est celle d'un protocole de conditionnement standardisé pour les messages partagés par les applications. La spécification ne définit rien de plus qu'une simple enveloppe basée sur XML pour les informations transférées et un ensemble de règles pour traduire les types de données spécifiques à l'application et à la plate-forme en représentations XML. La conception de SOAP le rend adapté à une grande variété de modèles de messagerie et d'intégration d'applications.
Voici ses principales caractéristiques :
- Basé sur le XML : Le SOAP utilise le XML pour formater les messages. Les données échangées sont encapsulées dans un format XML standardisé, facilitant l'interopérabilité entre différentes plateformes et technologies.
- Indépendant du protocole de transport : Le SOAP peut fonctionner sur plusieurs protocoles de transport, bien qu'il soit souvent utilisé avec HTTP ou HTTPS. Il peut également fonctionner avec SMTP, JMS, ou d'autres protocoles de transport.
- Interopérabilité : Le SOAP est conçu pour être indépendant du système d'exploitation, du langage de programmation et de la plateforme, ce qui facilite l'interopérabilité entre différents systèmes et environnements.
- Structure des messages : Un message SOAP est structuré en quatre parties principales :
- Extensibilité : Le SOAP est conçu pour être extensible. Les développeurs peuvent ajouter de nouvelles fonctionnalités via des extensions, tout en respectant les spécifications de base du protocole. Par exemple, les entêtes SOAP peuvent être utilisés pour implémenter des fonctionnalités de sécurité ou de routage.
- Neutralité du format de données : Le SOAP permet d'envoyer des données sous différents formats (texte, objets sérialisés,...), tant qu'elles sont encapsulées dans le format XML. Cependant, il est souvent utilisé avec des formats de données texte (comme XML ou JSON).
- Sécurité : Bien que SOAP ne définisse pas directement des mécanismes de sécurité, il supporte les extensions comme WS-Security pour ajouter des fonctionnalités de sécurité, telles que le chiffrement, la signature numérique, l'authentification et le contrôle d'accès.
- Validation des messages : Le SOAP permet de valider les messages échangés à l'aide de schémas XML (XSD), garantissant ainsi que les messages sont bien formés et contiennent des données valides.
- Gestion des erreurs : Le SOAP inclut une gestion des erreurs via son bloc Fault, permettant de signaler des problèmes tels que des erreurs de communication, de validation, ou des fautes d'exécution dans les services web.
- Support des RPC (Remote Procedure Call) : Le SOAP permet l'appel de procédures distantes (RPC). Il est souvent utilisé pour appeler des méthodes à distance sur un serveur Web en passant des paramètres, et en recevant des réponses sous forme de données.
- Normes WS- et intégration des services Web* : Le SOAP s'intègre avec d'autres normes WS- (Web Services)* pour des fonctionnalités avancées, telles que :
- Stateless ou Stateful : Les services SOAP peuvent être sans état (stateless) ou avec état (stateful). Un service sans état ne conserve pas de contexte entre deux requêtes, tandis qu'un service avec état peut suivre des sessions entre plusieurs appels.
- Fortement typé : Les messages SOAP sont souvent associés à des définitions de types fortes via WSDL (Web Services Description Language). Un fichier WSDL décrit les services, leurs méthodes, les types de données, et les formats attendus.
- Conçu pour les environnements d'entreprise : Le SOAP est souvent privilégié dans les environnements d'entreprise en raison de son support pour les transactions, la sécurité, la validation et son extensibilité. Il est bien adapté pour les services nécessitant des fonctionnalités complexes et une forte interopérabilité.
- Verbeux et complexité : Le SOAP est souvent critiqué pour sa verbosité due à l'utilisation du XML, ce qui peut entraîner des messages volumineux, et une consommation de bande passante plus importante que des alternatives comme REST.
Partie | Description |
---|---|
Envelope | Contient les informations qui délimitent le message SOAP et définit l'espace de noms utilisé. |
Header | Partie facultatif utilisé pour transporter des informations supplémentaires, comme des métadonnées ou des informations de sécurité. |
Body | Contient le message principal, avec les données et les informations applicatives. |
Fault | Partie facultatif pour fournir des informations d'erreur si une requête SOAP échoue. |
Fonctionnalité | Description |
---|---|
WS-Security | Pour la sécurité des messages. |
WS-Addressing | Pour le routage des messages. |
WS-AtomicTransaction | Pour la gestion des transactions distribuées. |
Voir également
Logiciel - PostMan - Introduction
Logiciel - SoapUI - Présentation