Prochains événements des
Systèmes d'Information Durables

Programme

Header
 
 

Quand faut-il utiliser SOAP-XML ?

La vocation de départ des Web service (SOAP-XML) est l’interopérabilité. C’est la raison pour laquelle la stack de base est composée de standards simples : HTTP pour le transport, une enveloppe SOAP et une représentation XML (XML Schema).

Bien sûr, au-delà de l’interopérabilité la mise en place d’un système réel nécessite d’évaluer les besoins en terme de performance d’exécution (temps de réponse) et de coordination (acquittement des messages, contexte, transaction…). Ici les Web services présentent des contraintes fortes qu’il faut comprendre dans l’instant et estimer dans la distance.

Cette meilleure pratique propose un cadre d’analyse pour juger du niveau de pertinence de l’usage de SOAP-XML face aux autres solutions plus traditionnelles comme RMI/IIOP, DCOM, MOM…

Rappel sur la granularité des services

Une autre meilleure pratique détaille comment appréhender la granularité des services et conduit à une typologie de services qui est la suivante :

Aujourd’hui, compte tenu de la vocation des Web service et de la représentation des messages en XML (besoin de parsing), il faut limiter leurs usages aux services métiers, c'est-à-dire la première couche de service que nous venons de décrire rapidement. Un Web service est donc ‘coarse grained’, pas ‘medium grained’ et encore moins ‘fine grained’. C’est évidemment une règle de départ (par défaut) que l’on peut toujours dégrader selon les besoins particulier d’un projet, mais en justifiant les raisons de cette éventuelle variante.

Les différents types de binding

Tout d’abord nous synthétisons dans le tableau suivant les différents types de bindings courants pour le choix du protocole de communication.
Les deux premières colonnes présentent le cas des Web services avec SOAP over HTTP et SOAP over JMS. Une courte analyse synthétique est associée à chaque cas de binding.

Figure 13 : Les différents types de binding

Le terme ‘Coordination’ fait référence aux fonctions nécessaires pour la gestion de l’acquittement des messages, du contexte (maintien d’information entre plusieurs appels de services), des événements (abonnement, notification), des transactions…

Cadre d’analyse pour juger de la pertinence des Web services et de la performance

Le tableau suivant présente les critères majeurs qui contribuent à l’étude d’opportunité d’usage des Web services. Bien sûr, les deux axes principaux sont l’interopérabilité et la performance.

On confirme que l’usage actuel de SOAP over HTTP (cadrant en couleur verte sur le schéma) est légitime lorsque le besoin d’interopérabilité est fort et les performances moyennes.

En cas d’interopérabilité forte et de performance attendue également forte, on peut tenter l’usage de SOAP over HTTP sous condition de déployer des dispositifs qui favorisent les performances :

Dans le cas où l’interopérabilité porte sur des environnements Java, il est aussi possible de retenir un binding SOAP over JMS (voir deuxième colonne du tableau).

En plus de la situation ci-dessus, si les besoins de coordination sont importants les standards fondateurs de l’infrastructure EDA (Event Driven Architecture) comme WS-Eventing (ou WS-Notification), WS-ReliableMessaging, WS-CAF, WS-RF… deviennent incontournables mais non encore disponibles aujourd’hui dans les implémentations. Il faudra sans doute attendre 2006/2007 pour envisager un usage industriel de ces protocoles dans un cadre d’interopérabilité.

Par contre, lorsqu’il s’agit de mettre en place une coordination dans un contexte de forte interopérabilité et pour des temps de réponse attendu moyen, il est tout à fait possible d’anticiper les implémentations des standards EDA (voir ci-dessus) en procédant à des implémentations spécifiques qui s’en inspirent. C’est notamment le cas pour l’acquittement des messages (équivalent à WS-ReliableMessaging) ou la gestion d’un contexte de données partagé entre plusieurs Web services (équivalent à WS-Context ou WS-RF).

Figure 14 : Cadre d’analyse pour juger de la pertinence de SOAP-XML