Nunca he entendido realmente por qué un implementador de servicios web elegiría uno sobre el otro. ¿XML-RPC se encuentra generalmente en sistemas más antiguos? Cualquier ayuda para entender esto será muy apreciada.
Nunca he entendido realmente por qué un implementador de servicios web elegiría uno sobre el otro. ¿XML-RPC se encuentra generalmente en sistemas más antiguos? Cualquier ayuda para entender esto será muy apreciada.
Respuestas:
Diferencias?
SOAP es más poderoso y es mucho más preferido por los proveedores de herramientas de software (MSFT .NET, edición Java Enterprise, ese tipo de cosas).
SOAP fue visto durante mucho tiempo (2001-2007ish) como el protocolo de elección para SOA. xml-rpc no tanto. REST es el nuevo favorito de SOA, aunque no es un protocolo.
SOAP es más detallado, pero más capaz.
SOAP no es compatible con algunas de las cosas más antiguas. Por ejemplo, no hay libs SOAP para ASP clásico (que pude encontrar).
SOAP no es compatible con Python. XML-RPC tiene un gran soporte en Python, en la biblioteca estándar.
SOAP admite la transferencia a nivel de documento, mientras que xml-rpc se trata más de la transferencia de valores, aunque puede transferir estructuras como estructuras, listas, etc.
xm-rpc se trata realmente de una transferencia independiente del lenguaje de programa a programa. Principalmente pasa por http / https. Los mensajes SOAP también pueden enviarse por correo electrónico.
xml-rpc es más unixy. Le permite hacer las cosas de forma sencilla, y cuando sabe lo que está haciendo, implementar servicios web de calidad es muy rápido, incluso cuando se utilizan editores de texto de terminal. Hacer SOAP de esa manera es un zoológico; Realmente necesita un buen IDE para hacerlo factible.
Sin embargo, conocer SOAP se verá mucho mejor en su currículum vitae / CV si está compitiendo por un trabajo de TI de Fortune 500.
xml-rpc tiene algunos problemas con los juegos de caracteres que no son ASCII.
XML-RPC no admite parámetros con nombre. Deben estar en el orden correcto. No estoy seguro de SOAP, pero creo que sí.
Solo para agregar a las otras respuestas, lo animo a que observe las representaciones textuales reales de las llamadas SOAP y XML-RPC, quizás capturando una con Ethereal. Todo el argumento de que "XML-RPC es más simple" no tiene mucho sentido hasta que se ve cuán increíblemente detallada es una llamada SOAP. Muchos de los sitios web bastante populares se alejan de SOAP como su API debido a la cantidad de ancho de banda que consumiría si la gente comenzara a usarlo de manera extensiva.
Kate Rhodes tiene un gran ensayo sobre las diferencias en http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap