WSIF et WSDL
Il existe une relation étroite entre le WSIF (Web Services Invocation Framework) basé sur les métadonnées et la sémantique évolutive du langage WSDL (Web Services Description Language).
Dans le langage WSDL, un service est défini dans trois différentes sections :
- Elément portType. Cette section définit l'interface abstraite offerte par le service. Un élément portType définit un ensemble d'opérations. Chaque opération peut être In-Out (Request-Response), In-Only, Out-Only ou Out-In (Solicit-Response). Chaque opération définit les messages d'entrée et/ou de sortie. Un message est défini en tant qu'ensemble de parties et chaque partie possède un type défini par le schéma.
- Elément binding. Cette section définit comment effectuer le mappage entre l'élément portType abstrait et un format et un protocole d'un service réel. Par exemple, la liaison SOAP définit le style de codage, l'en-tête SOAPAction, l'espace de nom du corps (élément targetURI), etc.
- Elément port. Cette section définit l'emplacement (point de contact) du service disponible. Par exemple, l'adresse Web HTTP à laquelle le service SOAP est disponible.
Dans la spécification actuelle de WSDL, chaque port possède une liaison et chaque liaison possède un seul élément portType. Mais, ce qui est plus important, chaque service (portType) peut avoir plusieurs ports, chacun d'entre eux représentant un moyen différent d'accéder au service (combinaison d'un emplacement et d'un type de liaison).
La structure WSIF (Web Services Invocation Framework) obéit autant que possible à la sémantique de WSDL :
- L'API d'appel dynamique WSIF expose directement les équivalents d'exécution du modèle provenant de la description WSDL. Par exemple, l'appel d'une opération implique l'exécution d'une opération avec un message d'entrée.
- WSDL dispose de points d'extension prenant en charge l'ajout de nouveaux ports et de nouvelles liaisons. De cette manière, WSDL peut décrire de nouveaux systèmes. Le concept équivalent dans WSIF est un fournisseur qui lie le service WSIF à l'implémentation sous-jacente de ce service. Ceci permet à WSIF de comprendre une classe d'extensions et donc de prendre en charge un nouveau type d'implémentation de service.
WSIF est une infrastructure d'appel à base de métadonnées. A chaque évolution de WSDL, WSIF est mise à jour en conséquence.
Le système de type binaire de WSIF est le schéma XML. WSIF prend en charge l'appel au moyen de serveurs proxy dynamiques, lesquels prennent en charge les systèmes de type Java™. Toutefois, lorsque vous utilisez l'interface WSIFMessage pour appeler un service Web via l'API WSIF, il vous incombe de peupler les objets WSIFMessage avec des données basées sur les types de schémas XML définis dans le document WSDL. Vous devez donc définir les types d'objet par un mappage fixe et canonique dans l'environnement d'exécution.