5 votes

La véritable interopérabilité de SOAP est-elle un mythe ?

Je veux dire, vrai une véritable interopérabilité : de Java à .NET, de PHP à Java, etc.

Je pose la question parce que nos autorités veulent que nous mettions en œuvre une API publique avec des services Web SOAP, et j'essaie d'argumenter en faveur d'une API RESTful XML/JSON.

Leur raisonnement est fortement influencé par le lavage de cerveau :

  • SOAP est un protocole basé sur des normes (sans parler du fait qu'un de nos développeurs a passé les 4 derniers jours enterré dans la configuration XML et les sérialiseurs de jetons de sécurité personnalisés en essayant d'une manière ou d'une autre de plier le client WCF pour qu'il appelle le service WSE 3.0 et qu'il produise toutes sortes d'erreurs obscures),
  • SOAP est sécurisé (mais, d'un point de vue commercial, nous n'avons besoin ni de cryptage ni de signatures numériques - HTTP sur SSL sera plus que suffisant).
  • Enfin, SOAP est interopérable, ce qui semble être le principal argument de vente pour eux (l'objet même de cette question).

Je le répète : SOAP est-il vraiment interopérable ? Vos récits de guerre du monde réel seront excellents.

3voto

skaffman Points 197885

Tant que vous vous en tenez à WS-I-based SOAP, l'interopérabilité est généralement assez facile. Le WS-I a été conçu pour résoudre les problèmes initiaux d'interopérabilité dont souffraient les premières mises en œuvre de SOAP.

Les problèmes ont tendance à surgir lors de l'utilisation de services web pré-WS-I (par exemple, des trucs encodés par rpc), ou lors de l'utilisation d'extensions de sécurité fantaisistes dont WCF fait grand cas. Celles-ci deviennent complexes, et difficiles à déboguer lorsqu'elles tournent mal.

1voto

ryber Points 3117

Oui, la plupart du temps, même si parfois ça peut être une bataille. J'ai un certain nombre de services de savon basés sur des normes et certains langages/bibliothèques semblent être plus faciles que d'autres.

Cependant, tout n'est pas rose au pays du SOAP. Une bibliothèque particulièrement vilaine (Apache Axis), compile par défaut une copie de la WSDL dans ses stubs.... ce qui n'est pas étrange en soi car .net fait la même chose.... mais le problème est qu'elle valide également la WSDL pour toute modification. Et si un changement est détecté, le système affiche un message.

Supposons que vous ayez une méthode de création d'utilisateur et que vous ajoutiez une initiale intermédiaire 5 mois plus tard. Vous allez casser le service pour tous les consommateurs qui utilisent Axis... même si l'initiale du milieu n'est PAS nécessaire et que le service se soucie peu que vous l'envoyiez. Ainsi, chez nous, nous devons envoyer des messages aux clients plusieurs mois avant l'ajout de tout paramètre optionnel afin qu'ils puissent à nouveau engager leurs sous-traitants pour recompiler le WSDL le soir de la sortie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X