Style des documents (ws)
Style de document
Style rp et document
Les spécifications de SOAP définissent deux styles de formats possibles pour les messages échangés :
- Le style « rpc »
- Le style « document »
Et pour chaque style deux formats d’encodage des paramètres :
- Le format « encoded »
- Le format « literal »
Si on combine ces deux paramètres on obtient quatre façons de représenter le contenu d’un message, dans la pratique seul deux sont utilisées : rpc/encoded et document/literal.
Les deux styles formats ne sont pas exactement identique, le style « rpc » est plutôt orienté échange d’objet alors que le style « document » est plutôt orienté échange de document. Il est par exemple plus facile de référencé des objets, l’exemple typique est l’échange de structure arborescente, avec le style « rpc » qu’avec le style « document ».
Lors de la publication vous pouvez sélectionner le style format qui sera indiqué dans le WSDL :
Lorsque le style « Document » est sélectionné le format d’encodage est forcément « literal », lorsque le style « rpc » est sélectionné le format d’encodage peut être « suivant le modèle » ou bien « suivant le style »
« Suivant le style » utilisera l’encodage en rapport avec le style, c'est-à-dire « encoded » quel que soit le format d’encodage spécifié dans les propriétés de chaque service.
« Suivant le modèle » utilisera l’encodage défini sur les propriétés de chaque service. Cette option permet donc de définir des formats « rpc/literal ».
Style de document et interopérabilité
Le but des Web Services est de fournir un moyen universel de communication entre des applications hétérogènes, l’interopérabilité est donc un souci majeur des implémentations de Web Services.
Malheureusement il s’est avéré à l’usage que les normes pouvaient être interprétées de différentes manières et que l’interopérabilité des différentes implémentations devenait rapidement problématique.
Pour cette raison une organisation, le WS-I, a été créée pour préciser comment implémenter les normes pour garantir l’interopérabilité des implémentations.
Cette organisation à défini différent profiles que doivent respecter les implémentations pour garantir l’interopérabilité.
Entre autre recommandations le WS-I a décidée que le style « rpc/encoded » ne devait plus être utilisé et que seul « document/literal » ou « rpc/literal » devait être utilisé.
Cette décision semble simplifier l’utilisation des WS sur le long terme mais pose un problème à court terme, en effet la plupart des implémentations d’origines utilisaient le style « rpc/encoded ».
Combinaisons | Implémentation SOAP | Recommandations WS-I |
rpc/encoded | .NET 1.x Axis gSOAP, php, python | Non |
rpc/literal | .NET 2.0 Axis gSOAP | Oui |
document/encoded | Non | |
document/literal | .NET 2.0 Axis gSOAP | Recommandé |
Compte tenu des évolutions des normes W3C vers le style document le style rpc n’est plus supporté, seul le style document/literal est supporté. |