Vue d’ensemble du service SOAP COM+
HTTP a révolutionné l’utilisation de l’ordinateur en permettant aux utilisateurs d’utiliser un navigateur Web pour accéder facilement aux informations sur un serveur distant via un réseau. Les services web XML ont maintenant révolutionné le développement d’applications en permettant aux applications clientes d’appeler facilement des méthodes distantes sur un réseau.
Il est souvent utile pour une application cliente de pouvoir appeler une méthode implémentée sur un serveur distant. Parfois, la méthode utilise des informations volatiles stockées sur le serveur distant (par exemple, une méthode qui retourne le cours actuel de l’action correspondant à un symbole de ticker donné). À d’autres moments, le développeur souhaite pouvoir mettre à niveau l’implémentation des méthodes sans avoir à redéployer toutes les applications qui l’utilisent.
Comme les pages web, les services web XML sont accessibles via un serveur web, tel qu’IIS, à l’aide de HTTP. Toutefois, au lieu de pages web encodées en HTML, ces paquets HTTP contiennent les paramètres d’entrée et de sortie des appels à une méthode implémentée sur le serveur, encodés en SOAP.
Pour utiliser un service web XML, vous devez connaître l’URL où le service est exposé et le nom de la méthode que vous souhaitez appeler, et vous devez fournir les paramètres d’entrée à la méthode.
La norme SOAP 1.1 fournit l’exemple suivant d’un paquet HTTP contenant un appel distant à un service web XML à https://www.stockquoteserver.com/StockQuote
, qui retourne le cours actuel de l’action correspondant à un symbole de ticker donné.
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml; "charset=utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI"
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="https://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI">
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Comme l’illustre l’exemple précédent, SOAP est une instance XML qui peut être incorporée dans une requête HTTP. De même, le résultat est retourné sous forme de paquet HTTP avec une charge utile SOAP, comme illustré dans l’exemple suivant.
HTTP/1.1 200 OK
Content-Type: text/xml; "charset=utf-8"
Content-Length: nnnn
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="https://schemas.xmlsoap.org/soap/encoding//">
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m="Some-URI">
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Bien qu’il soit utile d’avoir une certaine compréhension de l’infrastructure qui sous-tend les services web XML, COM+ facilite la création et l’utilisation de services web XML que vous n’aurez pas souvent à explorer ce niveau.
Vous pouvez exposer les méthodes dans les interfaces par défaut des composants COM configurés dans n’importe quelle application COM+ en tant que service web XML. Aucune considération particulière en matière de programmation n’est nécessaire lors de l’écriture des composants, sauf que les méthodes que vous souhaitez exposer doivent se trouver dans l’interface par défaut et que le composant doit être configuré (dans le catalogue COM+ de votre serveur). Vous n’avez pas besoin d’écrire du code pour communiquer via une interface réseau ou analyser SOAP. Pour obtenir des instructions détaillées sur l’utilisation du service SOAP COM+ pour créer un service web XML, consultez Création de services web XML.
Lorsque vous exposez une application COM+ en tant que service web XML, des informations détaillées sur la syntaxe de toutes les méthodes disponibles à partir d’un service web XML sont publiées automatiquement, à l’aide du langage WSDL (Web Services Description Language). Ces informations sont utilisées par les clients qui utilisent votre service web XML.
COM+ offre deux façons d’accéder à un service web XML distant et de l’utiliser, comme suit :
- Le mode objet connu (WKO) peut être utilisé pour accéder à n’importe quel service web XML qui publie sa syntaxe à l’aide de WSDL, même si ce service web XML n’a pas été créé à l’aide de COM+ ou même de Microsoft Windows.
- Le mode objet activé par le client (CAO) peut uniquement être utilisé pour accéder aux services web XML créés en exposant des applications COM+. Le mode CAO améliore les performances en utilisant des connexions persistantes, une fonctionnalité non prise en charge par la norme SOAP actuelle.
Les deux méthodes permettent aux applications clientes d’appeler les méthodes des services web XML à distance de manière simple, sans avoir à écrire du code pour communiquer via une interface réseau ou analyser SOAP. Pour plus d’informations sur l’accès aux services web XML dans les deux modes, consultez Accès aux services web XML en mode CAO et Accès aux services web XML en mode WKO.
Notes
COM+ prend uniquement en charge la spécification SOAP-RPC, pas la spécification SOAP-Document.
COM+ facilite particulièrement l’utilisation des services web XML en vous permettant d’utiliser des applications COM+ existantes en tant que services web XML en mode CAO de manière totalement transparente. Si vous exportez une application COM+ qui a été exposée en tant que service web XML à partir de votre serveur, tout client qui importe l’application peut utiliser de manière transparente le service web XML du serveur chaque fois que l’application importée est utilisée. Cette fonctionnalité facilite la conversion d’applications COM+ existantes en services web XML et le déploiement de ces services sur un réseau très facile.
L’utilisation de services web XML présente plusieurs avantages uniques par rapport aux autres implémentations d’appels de procédure distante (RPC), notamment :
- SOAP est une véritable implémentation RPC multiplateforme, qui augmente l’interopérabilité.
- Les services web XML prennent en charge les méthodes avec des paramètres d’entrée et de sortie.
- Les services web XML s’exécutent via HTTP, ce qui peut généralement pénétrer dans les pare-feu susceptibles de bloquer d’autres implémentations RPC.
- Lorsqu’un service web XML est implémenté à l’aide de COM+, le développeur n’a pas besoin d’écrire de code spécialisé ; il s’agit d’un énorme avantage par rapport aux autres mécanismes RPC.
Notes
Les services web XML ne prennent pas en charge les appels transactionnels asynchrones ou transparents. Utilisez le service Composants mis en file d’attente COM+ lorsque vous avez besoin de cette fonctionnalité.
Rubriques connexes