388 votes

SAVON ou repos pour les Services Web ?

Est RESTE la meilleure approche pour faire des Services Web ou de SAVON? Ou sont-ils différents outils pour différents problèmes? Ou est-ce un nuancée de la question est, est un peu mieux dans certains domaines que l'autre, etc?

Bounty-Edit:

Maintenant, près de trois ans plus tard, je voudrais demander à nouveau à cette question - offrant une prime pour encourager une profondeur de réponse. Je l'apprécie particulièrement les informations au sujet de ces concepts et de leurs relations avec le PHP de l'univers, et aussi moderne haut de gamme web-applications.

563voto

mdhughes Points 3805

J'ai construit l'un des premiers serveurs SOAP, y compris le code de la génération et de la génération WSDL, à partir de l'original spec comme il était en cours d'élaboration, quand je travaillais chez Hewlett-Packard. Je ne recommande PAS d'utiliser du SAVON pour quoi que ce soit.

L'acronyme "SAVON de marseille" est un mensonge. Il n'est pas Simple, il n'est pas orienté Objet, il ne définit pas de règles d'Accès. C'est, sans doute, un Protocole. Il est Ne de la Boîte de pire spec jamais, et c'est tout un exploit, car il est l'homme qui a commis "COM".

Il n'y a rien d'utile dans la fabrication du SAVON qui ne peut être fait avec le RESTE pour le transport, et JSON, XML ou encore texte brut pour la représentation des données. Pour la sécurité du transport, vous pouvez utiliser le protocole https. Pour l'authentification, authentification basique. Pour les sessions, il y a des témoins. Le RESTE de version sera plus simple, plus clair, plus rapides, et d'utiliser moins de bande passante.

XML-RPC définit clairement la requête, la réponse, d'erreur et de protocoles, et il y a des bonnes bibliothèques pour la plupart des langues. Cependant, XML est plus lourd que vous avez besoin pour de nombreuses tâches.

200voto

Will Hartung Points 57465

Le REPOS est une architecture, SOAP est un protocole.

C'est le premier problème.

Vous pouvez envoyer des enveloppes SOAP dans un RESTE d'application.

Le SAVON lui-même est assez basique et simple, c'est le WSS-* normes sur le dessus de cela qu'il est très complexe.

Si vos consommateurs sont d'autres applications et d'autres serveurs, il y a beaucoup de support pour le protocole SOAP aujourd'hui, et les bases de données mouvement est essentiellement un clic de souris dans les Ide modernes.

Si vos consommateurs sont plus susceptibles d'être des RIAs ou Ajax clients, vous allez probablement vouloir quelque chose de plus simple que de SAVON, et de plus naturel pour le client (notamment JSON).

JSON paquets envoyés via HTTP est pas nécessairement une architecture REST, c'est juste des messages à des adresses Url. Le tout parfaitement réalisable, mais il y a des éléments clés pour le RESTE de l'idiome. Il est facile de confondre les deux. Mais juste parce que vous parlez des requêtes HTTP ne signifie pas nécessairement que vous avez un RESTE de l'architecture. Vous pouvez avoir un REPOS de la demande sans HTTP (l'esprit, ce qui est rare).

Donc, si vous avez des serveurs et des consommateurs qui sont "à l'aise" avec du SAVON, de SAVON et de WSS pile peut bien vous servir. Si vous faites plus ad hoc choses et veulent meilleure interface avec les navigateurs web, puis un peu plus léger le protocole HTTP peut bien fonctionner aussi.

102voto

toluju Points 2555

Le REPOS est fondamentalement différent du paradigme de SAVON. Une bonne lecture sur le REPOS peut être trouvé ici: Comment je l'ai expliqué RESTE de ma femme.

Si vous n'avez pas le temps de le lire, voici la version courte: le RESTE est un peu un changement de paradigme en se concentrant sur les "noms", et la restriction du nombre de "verbes", vous pouvez appliquer pour ces noms. La seule verbes sont "get", "", "post" et "supprimer". Cela diffère de SAVON où bon nombre de verbes peuvent être appliquées à de nombreux différents noms (c'est à dire beaucoup de fonctions différentes).

Pour le RESTE, les quatre verbes correspondent aux requêtes HTTP, tandis que les noms sont identifiés par des Url. Cela rend la gestion de l'état beaucoup plus transparent que dans la fabrication de SAVON, où ses souvent imprécise dans quel état se trouve sur le serveur et qu'est-ce que sur le client.

Dans la pratique, bien que la plupart de cette tombe, et RESTE habituellement, renvoie à de simples requêtes HTTP qui retournent des résultats en JSON, tandis que le SAVON est un plus complexe de l'API qui communique par un passage à XML autour. Les deux ont leurs avantages et leurs inconvénients, mais j'ai trouvé que dans mon expérience RESTE est habituellement le meilleur choix parce que vous avez rarement besoin de toutes les fonctionnalités que vous obtenez de SAVON.

44voto

Mark Cidade Points 53945

SAVON actuellement a l'avantage d'améliorer les outils où ils vont générer beaucoup de code réutilisable pour le service de la couche ainsi que la génération de clients de tout WSDL.

Le REPOS est plus simple, peut-être plus facile à maintenir car un résultat, est au cœur de l'architecture du Web, permet de mieux protocole de visibilité, et a été prouvé à l'échelle à la taille de la WWW. Certains cadres de là vous aider à construire le RESTE des services, comme Ruby on Rails, et certains même de vous aider avec l'écriture de ses clients, comme ADO.NET Services de Données. Mais pour la plupart, outil de manque d'appui.

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