it-swarm-es.tech

¿Cuál es la diferencia entre XML-RPC y SOAP?

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ía muy apreciada.

75
Scott Saad

Diferencias?

SOAP es más poderoso y es muy preferido por los proveedores de herramientas de software (MSFT .NET, edición Java Enterprise, ese tipo de cosas).

SOAP fue considerado durante mucho tiempo (2001-2007) como el protocolo de elección para SOA. xml-rpc no tanto. REST es el nuevo SOA querida, aunque no es un protocolo.

El jabón es más detallado, pero más capaz.

SOAP no es compatible con algunas de las cosas más antiguas. Por ejemplo, no SOAP libs for classic ASP (que pude encontrar).

SOAP no está bien soportado en 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 trata más sobre la transferencia de valores, aunque puede transferir estructuras como estructuras, listas, etc.

xm-rpc se trata realmente de un programa para programar la transferencia independiente del lenguaje. Principalmente se trata de http/https. SOAP los mensajes también pueden ir por correo electrónico.

xml-rpc es más unixy. Le permite hacer cosas de manera simple, y cuando sabe lo que está haciendo, es muy rápido implementar servicios web de calidad, incluso cuando utiliza editores de texto de terminal. Hacer SOAP de esa manera es un zoológico; realmente necesitas una buena IDE para que sea factible.

Sin embargo, saber que SOAP se verá mucho mejor en tu currículum/currículum vitae si estás compitiendo por un trabajo de Fortune 500 IT.

xml-rpc tiene algunos problemas con los conjuntos de caracteres que no son ascii.

XML-RPC no admite parámetros nombrados. Deben estar en el orden correcto. No estoy seguro de SOAP, pero creo que sí.

83
Christopher Mahan

Solo para agregar a las otras respuestas, te animo a que mires las representaciones textuales reales de SOAP y las llamadas XML-RPC, tal vez capturando una con Ethereal. El argumento "XML-RPC es más simple" no tiene mucho sentido hasta que se ve cuán increíblemente detallado es una llamada SOAP. Muchos de los sitios web bastante populares por ahí evitan a SOAP como su API debido a la cantidad de ancho de banda que consumiría si la gente comenzara a usarla ampliamente.

12
bmdhacks

Kate Rhodes tiene un gran ensayo sobre las diferencias en http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap

4
Dexter