XMLRPC y SOAP son dos mecanismos que han surgido para reducir las implicaciones de diseñar procedimientos remotos . A diferencia de otras tecnologías similares como CORBA,DCOM e inclusive RMI, XMLRPC y SOAP permiten la ejecución de procedimientos remotos a través de diversos lenguajes y sistemas operativos.
Diversos sistemas operativos y lenguajes ? Esto ya lo logra RMI y CORBA, no ? Si, pero la diferencia estriba en que el intercambio de información se logra mediante XML y HTTP .
Más allá de CORBA y RMI
Cuando se utiliza RMI, CORBA o DCOM siempre se debe utilizar marshalling | unmarshalling , sin embargo, el utilizar marshalling y unmarshalling tiene sus consecuencias, si utiliza CORBA: tanto el cliente como el servidor deben utilizar el mismo ORB("Objet Request Broker") ,y si utiliza RMI: el cliente y servidor deben operar con Java.
Las limitaciones se hacen más evidentes cuando se desean invocar procedimientos remotos en Perl,Python,C++,Java bajo Linux,AIX,Windows o Solaris. Será posible coordinar la utilización del mismo ORB("Objet Request Broker") o Java ? En un ambiente como Internet seguramente NO.
Para lograr invocar procedimientos remotos XMLRPC y SOAP utilizan XML y el protocolo HTTP , y esto otorga lo siguiente:
Ventajas
-
Debido a que XML es utilizado para solicitar y enviar requisiciones de procedimientos remotos , se emplea uno de los estándares más utilizados e interoperable de la industria.
-
Esta misma interoperabilidad de XML permite algo sin precedente en un sistema de computo, el invocar procedimientos remotos transparentemente de distintos lenguajes que pueden variar desde Java, Perl, C++, Python y otros más .
El utilizar HTTP elimina la conocida restricción de procedimientos remotos: el firewall , CORBA y RMI requieren de su propio puerto TCP lo cual implica configuración adicional a un firewall, debido a que XMLRPC y SOAP operan bajo HTTP (puerto 80) casi siempre es permitido este tipo de trafico (Web) por el firewall.
Desventajas
-
El utilizar XML para enviar las requisiciones de procedimientos remotos puede ser excesivo, esto se debe a que la requisición debe ser más expresiva por ende, ocupa mayor ancho de banda para ser transmitida. Lo anterior no es el caso cuando se utiliza RMI o CORBA, ya que utilizar marshalling y unmarshalling permite que la requisición sea más pequeña.
Links:
|
|
