La Performance de SAVON vs XML-RPC ou de REPOS
Les arguments au sujet de la simplicité de solutions à l'aide de XML-RPC ou de REPOS sont faciles à comprendre et difficile de discuter.
J'ai aussi souvent entendu des arguments que l'augmentation de la surcharge de SAVON peut influencer de manière significative la bande passante utilisée et peut-être même le temps de latence. Je voudrais voir les résultats d'un test qui permet de quantifier l'impact. Tout savoir une bonne source pour ce type d'information?
Vous devez vous connecter pour publier un commentaire.
Il y a quelques études qui ont été réalisées au sujet de ce que vous pouvez trouver instructif. Veuillez consulter les documents suivants:
Il y a aussi une (un peu à l'extérieur de la date) performance intéressante conversation sur le sujet à la Les Forums MSDN.
En bref - la plupart de ces sources semblent d'accord pour dire que le SAVON et le REPOS sont à peu près les mêmes performances pour une utilisation générale de données. Certains toutefois, les résultats semblent indiquer qu'avec des données binaires, RESTE peut effectivement être moins performant. Voir les liens dans le forum j'ai fait un lien pour plus de détails sur cette.
Le principal impact de la vitesse de SAVON vs RESTE n'a rien à voir avec la vitesse du fil, mais avec possibilité de mise en cache. RESTE suggère l'utilisation du web sémantique au lieu d'essayer de tunnel sur elle via XML, de sorte que les services web RESTful sont généralement conçus pour utiliser correctement les en-têtes de cache, de sorte qu'ils fonctionnent bien avec la web standard d'infrastructure comme la mise en cache des procurations et même les caches du navigateur. Aussi, en utilisant le web sémantique signifie que des choses comme les ETags et automatique de compression zip sont bien entendu des moyens d'accroître l'efficacité.
..et maintenant vous dites que vous voulez de repères. Eh bien, avec Google d'aide, j'ai trouvé un gars dont les tests montrent que le RESTE à 4-6x plus rapide que du SAVON et de l'autre papier aussi favorise le REPOS.
RESTE qu'un protocole ne définit pas la forme de l'enveloppe du message, tandis que le SAVON n'ont cette norme.
À cet effet, il est quelque peu simpliste d'essayer et de comparer les deux, ils sont les pommes à des oranges.
Cela dit, une enveloppe SOAP (moins les données) est seulement quelques-uns k, donc il ne devrait pas y avoir de différence notable dans la vitesse à condition que vous êtes de la récupération d'un objet sérialisé à la fois via SOAP et REST.
REST !== XML over HTTP
.Du SAVON et de tout autre protocole qui utilise XML généralement gonfle vos messages un peu - cela peut ou peut ne pas être un problème selon le contexte.
Quelque chose comme JSON serait plus compact et peut-être plus vite à serialise /deserialise - ne l'utilisez pas, c'est uniquement pour cette raison. Faire ce que vous vous sentez un sens au temps et de la modifier si c'est un problème.
Tout ce qui utilise HTTP généralement (Sauf en cas de réutilisation d'une de HTTP 1.1 keepalive de connexion, qui a de nombreuses implémentations ne) démarre une nouvelle connexion TCP pour chaque demande; c'est assez mauvais, surtout à haute latence des liens. HTTPS est bien pire. Si vous avez beaucoup de court demandes provenant d'un expéditeur à un destinataire, pensez à comment vous pouvez prendre ce traitement en dehors.
À l'aide de HTTP pour tout type de RPC (si le SAVON ou autre chose) est toujours à engager des coûts indirects. D'autres protocoles RPC généralement vous permettre de garder une connexion ouverte.
Expansion sur "pjz" 's réponse.
Si vous obtenez beaucoup de l'INFORMATION(get* type d'appels) SAVON à base d'opérations, il n'est actuellement pas possible de les mettre en cache. Mais si vous étiez à la mise en œuvre de ces mêmes opérations à l'aide de REPOS, il est possible que les données(dépend de votre contexte d'affaires) peut être mis en cache, comme mentionné ci-dessus. Parce que le SAVON utilise POST, pour ses opérations, il ne peut pas en cache les informations sur le serveur.
SAVON est certainement plus lent. Les charges sont nettement plus grandes qui sont plus lents à se rassembler, de transport, d'analyser, de valider et de processus.
Je ne connais pas de réponse à l'analyse comparative de la question, cependant, ce que je sais sur le SAVON format est oui, il n'ont dessus, mais que les frais généraux de ne pas augmenter, conformément à la demande: si vous avez un élément envoyé vers le service web, vous avez les frais généraux + un élément de construction, et si vous avez des éléments de 1000 envoyé vers le service web, vous avez les frais généraux + 1000 élément de construction. La surcharge se produit à la demande XML est formaté pour l'opération particulière, mais chaque individu argument élément de la requête est formaté de la même.
Si vous vous en tenez à la répétabilité, de courtes rafales de données (par exemple, 500 éléments), la vitesse devrait être acceptable.
Je suppose que la question principale ici est de savoir comment se compare RPC avec du SAVON.
ils servent tous les deux la même approche de la communication de l'abstraction par le fait d'avoir des objets de talon, vous exploitez et primitive/les types de données complexes, vous obtenez en retour, sans savoir vraiment comment tout cela est géré en dessous.
Je préfère toujours (JSON)RPC parce que
bien qu'il existe des raisons que vous devriez utiliser de SAVON, c'est à dire si vous avez besoin de paramètres de la dénomination au lieu de compter sur leur ordre correct
un peu plus de détails que vous obtenez à partir de ce stackoverflow question