Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
QUE ES?
es un protocolo que permite a un programa de ordenador ejecutar cdigo en otra mquina remota sin tener que preocuparse por las comunicaciones entre ambos. El protocolo es un gran avance sobre los sockets usados hasta el momento. De esta manera el programador no tena que estar pendiente de las comunicaciones, estando stas encapsuladas dentro de las RPC.
Las RPC son muy utilizadas dentro del paradigma cliente-servidor. Siendo el cliente el que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o funcin y enviando ste de vuelta el resultado de dicha operacin al cliente.
HISTORIA Y ORGENES
La idea de RPC (Remote Procedure Call) se remonta al menos hasta 1976, cuando fue descrito en RFC 707. Una de las empresas utiliza en primer lugar de RPC era de Xerox con el nombre de "El Correo" en 1981 . La aplicacin popular primero de RPC en Unix se RPC de Sun (que ahora se llama ONC RPC), usado como base para el NFS de Sun. ONC RPC est siendo ampliamente utilizada hoy en varias plataformas.
PASO DE MENSAJES
RPC es un paradigma claro y popular para la aplicacin del cliente modelo de servidor de la informtica distribuida. Un RPC es iniciada por el cliente que enva un mensaje de solicitud a un servidor remoto conocido con el fin de ejecutar un procedimiento especificado utilizando parmetros suministrados. Una respuesta se devuelve al cliente cuando la aplicacin contina a lo largo de su proceso. Hay muchas variaciones y matices en la ejecucin de diversas, resultando en una variedad de diferentes (incompatibles) protocolos RPC. Mientras que el servidor est procesando la llamada, se bloquea el cliente (se espera hasta que el servidor ha terminado de procesar antes de reanudar la ejecucin).
Una diferencia importante entre las llamadas a procedimiento remoto y las llamadas locales es que las llamadas remotas pueden fracasar a causa de problemas de red impredecibles. Adems, los que llaman generalmente deben hacer frente a estos fallos sin saber si el procedimiento remoto fue en realidad invocada. Procedimientos idempotente (aquellos que no tienen efectos adicionales si se llama ms de una vez) son fciles de manejar, pero las dificultades siguen siendo suficiente que el cdigo que llama a procedimientos remotos es a menudo limitarse a cuidadosamente escrito subsistemas de bajo nivel.
Hay distintos tipos de RPC, muchos de ellos estandarizados como pueden ser el RPC de Sun denominado ONC RPC (RFC 1057), el RPC de OSF denominado DCE/RPC y el Modelo de Objetos de Componentes Distribuidos de Microsoft DCOM, aunque ninguno de estos es compatible entre s. La mayora de ellos utilizan un lenguaje de descripcin de interfaz (IDL) que define los mtodos exportados por el servidor.
TERMINOLOGA:
ONC\RPC: Open Network Computing /Remote Procedure Call: es un protocolo de llamada a procedimiento remoto (RPC) desarrollado por el grupo ONC de Sun Microsystems como parte del proyecto de su sistema de archivos de Red NFS, algunas veces se lo denomina Sun ONC o Sun RPC DCE\RPC Distributed Computing Environment / Remote Procedure Calls: es un sistema de llamada a procedimiento remoto que permite que el software para trabajar en varios equipos, como si se tratara de todos los que trabajan en el mismo equipo. Este sistema permite a los programadores a escribir software distribuido sin tener que preocuparse por el cdigo de red subyacente. IDL: Interface definition language: es en computacin, como su propio nombre indica un lenguaje de especificacin de interfaces que se utiliza en software de computacin distribuida. Ofrece la sintaxis necesaria para definir los procedimientos o mtodos que queremos invocar remotamente
XML-RPC es un protocolo de llamada a procedimiento remoto que usa XML para codificar los datos y HTTP como protocolo de transmisin de mensajes. Es un protocolo muy simple ya que slo define unos cuantos tipos de datos y comandos tiles, adems de una descripcin completa de corta extensin. La simplicidad del XML-RPC est en contraste con la mayora de protocolos RPC que tiene una documentacin extensa y requiere considerable soporte de software para su uso.
Nombre
Tags de ejemplo
Descripcin
array
<array> <data> <value><i4>1404</i4></ value> <value><string>Algo ac</string></value> <value><i4>1</i4></val ue> </data> </array>
base64
<base64>eW91IGNhbid0IH JlYWQgdGhpcyE=</base64 > <boolean>1</boolean> <dateTime.iso8601>1998 0717T14:08:55</dateTim e.iso8601> <double>12.53</double> <i4>42</i4> o <int>42</int> <string>Hola mundo</string>
boolean
date/time
Da y hora
double
integer
string
struct
<struct> <member> <name>foo</name> <value><i4>1</i4></val ue> </member> <member> <name>bar</name> <value><i4>2</i4></val ue> </member> </struct>
nil
<nil/>