Profil de base WS-I
Le profil de base Web Services-Interoperability (WS-I)est un ensemble de spécifications de services Web non propriétaires, qui favorisent l'interopérabilité. WebSphere Application Server est conforme aux profils WS-I Basic Profile Version 1.1 et WS-I Basic Security Profile Version 1.0.
Le profil de base WS-I est géré par un consortium d'entreprises leaders du secteur, notamment IBM®, sous la direction de WS-I Organization. Le profil est un ensemble de principes qui tendent à propager les standards ouverts pour les technologies des services Web. Toutes les organisations intéressées par la promotion de l'interopérabilité entre les services Web sont encouragées à adhérer à l'organisation Web Services Interoperability.
Plusieurs composants technologiques sont utilisés dans la création et l'implémentation de services Web (tels que la messagerie, la description, la reconnaissance et la sécurité). Chacun de ces composants est pris en charge par des spécifications et des normes, telles que SOAP 1.1, Extensible Markup Language (XML) 1.0, HTTP 1.1, Web Services Description Language (WSDL) 1.1 et UDDI (Universal Description, Discovery and Integration). Le profil de base WS-I décrit comment ces composants technologiques permettent l'interopérabilité et préconise une utilisation particulière pour chaque technologie le cas échéant. Pour plus de détails sur le Profil de base WS-I, connectez-vous au site Web de l'organisation WS-I.
A mesure que les composants technologiques sont mis à jour, il sont également utilisés dans la création et l'implémentation de services Web. A titre exemple, SOAP 1.1 et SOAP 1.2 sont désormais pris en charge.
- WS-I Basic Profile V1.2 se base sur les profils WS-I Basic Profile V1.0 et WS-I Basic Profile V1.1 et ajoute la prise en charge de WS-Addressing (WS-A) et MTOM (Message Transmission Optimization Mechanism) SOAP. La spécification WS-Addressing active le modèle d'échange de messages asynchrones de sorte que vous pouvez dissocier la demande de service de la réponse de service. L'en-tête SOAP de la demande de l'expéditeur contient la caleur wsa:ReplyTo qui définit la référence de noeud final à laquelle la réponse du fournisseur est envoyée. La dissociation de la demande et de la réponse permet de longues interactions des services Web. Bénéficiant de la prise en charge du modèle de programmation asynchrone dans JAX-WS Version 2.1 conjointement à WS-Addressing, vous pouvez désormais tirer parti de la possibilité de créer des appels de services web dans lesquels le client peut continuer à exécuter le travail sans attendre de réponse en retour. Ceci fournit un modèle plus dynamique et plus efficace pour appeler les services Web. Avec MTOM, vous pouvez envoyer et recevoir des données binaires de façon optimale au sein d'un message SOAP.
- WS-I Basic Profile V2.0 se base sur Basic Profile V1.2 avec l'ajout de la prise en charge de SOAP 1.2.
- WS-I Reliable Secure Profile 1.0 se base sur WS-I Basic Profile V1.2, WS-I Basic Profile V2.0, WS-I Basic Security Profile V1.0 et WS-I Basic Security Profile V1.1 et ajoute la prise en charge de WS-Reliable Messaging 1.1, WS-Make Connection 1.0 et WS-Secure Conversation 1.3. S-Reliable Messaging 1.1 est un protocole basé sur la session qui assure la fiabilité au niveau des messages pour les interactions de services Web. WS-Make Connection 1.0 a été développé par le groupe de travail WS-Reliable Messaging afin de répondre aux scénarios dans lesquels un noeud final de services web se trouve derrière un pare-feu ou le noeud final n'a pas de référence de noeud final visible. Si un noeud final de services web perd la connectivité pendant une session fiable, WS-Make Connection fournit une méthode efficace pour la rétablir. En outre, WS-Secure Conversation V1.3 est un protocole de sécurité basé sur la session qui utilise un algorithme de chiffrement efficace, basé sur une clé symétrique pour la sécurité au niveau des messages. WS-I Reliable Secure Profile V1.0 assure des interactions de services web orientées session fiables et sécurisées.
Chaque composant technologique a ses impératifs qui sont décrit plus en détail sur le site Web de l'organisation WS-I. Ainsi, la prise en charge de l'encodage en UTF-16 est requise par le Profil de base WS-I. UTF-16 est un schéma d'encodage Unicode qui utilise des valeurs sur 16 bits pour stocker des caractères UCS (Universal Character Set). UTF-8 est le codage le plus couramment utilisé sur Internet. Le codage UTF-16 est en général utilisé pour des applications Java™ et Windows. Le codage UTF-32 quant à lui est utilisé par différents systèmes Linux et UNIX. Contrairement à UTF-8, UTF-16 pose problème avec les formats big endian et little endian. Il est souvent nécessaire d'utiliser une marque BOM (Byte Order Mark) pour indiquer l'endian. Un marqueur BOM est obligatoire pour l'encodage UTF-16 et facultatif pour l'encodage UTF-8.
Le serveur d'applications ne prend en charge que le codage UTF-8 et UTF-16 des messages SOAP.
Pour savoir comment passer du codage UTF-8 au codage UTF-16, consultez les informations relatives aux changement de codage des messages SOAP pour prendre en charge WSI-Basic Profile.
Octets | Forme de codage |
---|---|
EF BB BF | UTF-8 |
FF FE | UTF-16, little-endian |
FE FF | UTF-16, big-endian |
00 00 FE FF | UTF-32, big-endian |
FF FE 00 00 | UTF-32, little-endian |
POST http://www.whitemesa.net/soap12/add-test-rpc HTTP/1.1
Content-Type: application/soap+xml; charset=utf-16; action=""
SOAPAction:
Host: localhost: 8080
Content-Length: 562
OxFF0xFE<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2002/12/soap-envelope"
xmlns:soapenc="http://www.w3.org/2002/12/soap-encoding
xmlns:tns="http://whitemesa.net/wsdl/soap12-test"
xmlns:types="http://whitemesa.net/wsdl/soap12-test/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<q1:echoString xmlns:q1="http://soapinterop.org/">
<inputString soap:encodingStyle="http://example.org/unknownEncoding"
xsi:type="xsd:string">
Hello SOAP 1.2
</inputString>
</q1:echoString>
</soap:Body>
</soap:Envelope>
Dans l'exemple de code, 0xFF0xFE correspond aux codes d'octet, alors que la déclaration <?xml> est la représentation textuelle.
OxFF0xFE<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2002/12/soap-envelope"
xmlns:soapenc="http://www.w3.org/2002/12/soap-encoding
xmlns:tns="http://whitemesa.net/wsdl/soap12-test"
xmlns:types="http://whitemesa.net/wsdl/soap12-test/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<q1:echoString xmlns:q1="http://soapinterop.org/">
<inputString xsi:type="xsd:string">
Hello SOAP 1.2
</inputString>
</q1:echoString>
</soap:Body>
</soap:Envelope>
Pour obtenir la liste complète des normes et spécifications prises en charge, voir les spécifications des services Web et la documentation des API.