stringtranslate.com

XML-RPC

XML-RPC es un protocolo de llamada a procedimiento remoto (RPC) que utiliza XML para codificar sus llamadas y HTTP como mecanismo de transporte. [1]

Historia

El protocolo XML-RPC fue creado en 1998 por Dave Winer de UserLand Software y Microsoft [2] , y Microsoft consideró que el protocolo era una parte esencial para ampliar sus esfuerzos en el comercio electrónico entre empresas. [3] A medida que se introdujeron nuevas funciones, el estándar evolucionó hasta convertirse en lo que hoy es SOAP . [4]

UserLand admitió XML-RPC a partir de la versión 5.1 de su sistema de gestión de contenido web Frontier, [4] lanzado en junio de 1998. [5]

La idea de XML-RPC de un estándar legible y escribible por humanos, y analizable mediante scripts para solicitudes y respuestas basadas en HTTP también se ha implementado en especificaciones competidoras como Web Distributed Data Exchange (WDDX) de Allaire y Web Interface Definition Language (WIDL) de webMethod. [6] La tecnología anterior que envolvía objetos COM , CORBA y Java RMI en sintaxis XML y los transportaba a través de HTTP también existía en la tecnología WebBroker de DataChannel. [7] [8]

El uso genérico de XML para llamadas a procedimientos remotos (RPC) fue patentado por Phillip Merrick, Stewart Allen y Joseph Lapp en abril de 2006, y reclamaron el beneficio de una solicitud provisional presentada en marzo de 1998. La patente fue asignada a webMethods , con sede en Fairfax, Virginia . La patente expiró el 23 de marzo de 2019. [9]

Uso

En XML-RPC, un cliente realiza una RPC enviando una solicitud HTTP a un servidor que implementa XML-RPC y recibe la respuesta HTTP. Una llamada puede tener varios parámetros y un resultado. El protocolo define algunos tipos de datos para los parámetros y el resultado. Algunos de estos tipos de datos son complejos, es decir, están anidados. Por ejemplo, puede tener un parámetro que sea una matriz de cinco números enteros.

La estructura de parámetros/resultados y el conjunto de tipos de datos están pensados ​​para reflejar aquellos utilizados en lenguajes de programación comunes.

La identificación de los clientes con fines de autorización se puede lograr mediante métodos de seguridad HTTP populares. Se puede utilizar la autenticación de acceso básica para la identificación y autenticación.

En comparación con los protocolos RESTful, donde se transfieren representaciones de recursos (documentos), XML-RPC está diseñado para llamar a métodos . La diferencia práctica es simplemente que XML-RPC es mucho más estructurado, lo que significa que se puede usar un código de biblioteca común para implementar clientes y servidores y hay menos trabajo de diseño y documentación para un protocolo de aplicación específico. [ cita requerida ] Una diferencia técnica destacada entre los protocolos RESTful típicos y XML-RPC es que muchos protocolos RESTful usan el URI HTTP para la información de parámetros, mientras que con XML-RPC, el URI solo identifica al servidor.

JSON-RPC es similar a XML-RPC.

Tipos de datos

Los tipos de datos comunes se convierten en sus equivalentes XML con valores de ejemplo que se muestran a continuación:

Ejemplos

Un ejemplo de una solicitud XML-RPC típica sería:

<?xml version="1.0"?> <methodCall> <methodName> ejemplos.getStateName </methodName> <params> <param> <value><i4> 40 </i4></value> </param> </params> </methodCall>      

Un ejemplo de una respuesta XML-RPC típica sería:

<?xml version="1.0"?> <methodResponse> <params> <param> <value><string> Dakota del Sur </string></value> </param> </params> </methodResponse>      

Un error típico de XML-RPC sería:

<?xml version=" 1.0 "?> <methodResponse> <fault> <value> <struct> <member> <name> faultCode </name> <value><int> 4 </int></value> </member> <member> <name> faultString </name> <value><string> Demasiados parámetros. </string></value> </member> </struct> </value> </fault> </methodResponse>                

Crítica

Los críticos recientes (a partir de 2010) de XML-RPC sostienen que las llamadas RPC se pueden realizar con XML simple y que XML-RPC no agrega ningún valor sobre XML. Tanto XML-RPC como XML requieren un modelo de datos a nivel de aplicación, como qué nombres de campo se definen en el esquema XML o los nombres de parámetros en XML-RPC. Además, XML-RPC utiliza aproximadamente 4 veces la cantidad de bytes en comparación con XML simple para codificar los mismos objetos, lo que es en sí mismo verboso en comparación con JSON . [10] [11] [12]

Véase también

Referencias

  1. ^ Simon St. Laurent, Joe Johnston, Edd Dumbill. (junio de 2001) Programación de servicios web con XML-RPC. O'Reilly. Primera edición.
  2. ^ Box, Don (1 de abril de 2001). "Una breve historia de SOAP". O'Reilly . Consultado el 27 de octubre de 2010 .
  3. ^ Rupley, Sebastian (30 de junio de 1999). «El siguiente paso de XML». PC Magazine . Archivado desde el original el 4 de marzo de 2000. Consultado el 17 de noviembre de 2015 .
  4. ^ ab Walsh, Jeff (10 de julio de 1999). «Microsoft encabeza el impulso del protocolo». Infoworld . Archivado desde el original el 14 de septiembre de 1999. Consultado el 17 de noviembre de 2015 .
  5. ^ Walsh, Jeff (29 de junio de 1998). «UserLand lanza Frontier 5.1 y abandona el modelo de software gratuito». InfoWorld . Archivado desde el original el 15 de septiembre de 1999. Consultado el 17 de noviembre de 2015 .
  6. ^ Udell, Jon (7 de junio de 1999). "Explorando XML-RPC: ¿DCOM? ¿CORBA? ¿RMI? ¿Por qué no simplemente XML-RPC?". Byte . Archivado desde el original el 4 de marzo de 2000 . Consultado el 17 de noviembre de 2015 .
  7. ^ Walsh, Jeff (25 de mayo de 1998). «W3C hace un guiño a WebBroker de DataChannel». Infoworld . Vol. 20, núm. 21. Archivado desde el original el 10 de septiembre de 1999. Consultado el 17 de noviembre de 2015 .
  8. ^ Vizard, Michael; Walsh, Jeff (29 de junio de 1998). «Dave Pool de DataChannel habla sobre cómo adaptar el papel de XML para satisfacer diferentes necesidades». Infoworld . Archivado desde el original el 16 de septiembre de 1999. Consultado el 8 de diciembre de 2015 .
  9. ^ Merrick; et al. (11 de abril de 2006). «US Patent 7,028,312». Archivado desde el original el 3 de diciembre de 2011. Consultado el 18 de septiembre de 2008 .
  10. ^ "¿Cuál es el beneficio de XML-RPC sobre XML simple?". Stack Overflow . 9 de septiembre de 2009. Consultado el 7 de abril de 2011 .
  11. ^ "Una encuesta abierta sobre los méritos de XmlRpc frente a las alternativas". intertwingly.net. 22 de noviembre de 2006. Consultado el 7 de abril de 2011 .
  12. ^ Jon Canady (14 de enero de 2010). "Si tienes REST, ¿por qué XML-RPC?". joncanady.com. Archivado desde el original el 11 de mayo de 2013. Consultado el 7 de abril de 2011 .

Enlaces externos