Está en la página 1de 8

DESARROLLO DE SISTEMAS DISTRIBUIDOS

4CV2

Calculadora RPC

INDICE
INTRODUCCIN ........................................................................................................................................ 2 RPC ........................................................................................................................................................... 2 Tipos de semntica ......................................................................................................................... 2 Semntica tal-vez ........................................................................................................................ 2 Semntica al-menos-una-vez .................................................................................................. 3 Semntica como-mximo-una-vez ........................................................................................ 3 DESARROLLO PRCTICO ........................................................................................................................ 4 Capturas de pantalla ......................................................................................................................... 4 CONCLUSIONES ........................................................................................................................................ 8 BIBLIOGRAFA............................................................................................................................................. 8

JENNYFER OJEDA

DESARROLLO DE SISTEMAS DISTRIBUIDOS

4CV2

INTRODUCCIN
RPC El Remote Procedure Call (RPC) (del ingls, Llamada a Procedimiento Remoto) 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. 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. Hoy en da se est utilizando el XML como lenguaje para definir el IDL y el HTTP como protocolo de red, dando lugar a lo que se conoce como servicios web. Ejemplos de stos pueden ser SOAP o XML-RPC. Tipos de semntica Semntica tal-vez

Procedimiento remoto puede ejecutarse una vez o ninguna vez.

El cliente puede recibir una respuesta o ninguna. Funcionamiento 1. El cliente enva una peticin y se queda a la espera un tiempo determinado.
JENNYFER OJEDA 2

DESARROLLO DE SISTEMAS DISTRIBUIDOS

4CV2

2. Si no llega la respuesta dentro del tiempo de espera, contina su ejecucin. 3. El cliente no tiene realimentacin en caso de fallo (no sabe que pas). Slo admisible en aplicaciones donde se tolere la prdida de peticiones y la recepcin de respuestas con retraso (fuera de orden). Semntica al-menos-una-vez

Procedimiento remoto se ejecuta una o ms veces.

El cliente puede recibir una o ms respuestas. Funcionamiento 1. El cliente enva una peticin y queda a la espera un tiempo. 2. Si no llega respuesta o ACK dentro del tiempo de espera, repite la peticin. 3. El servidor no filtra peticiones duplicadas (el procedimiento remoto puede ejecutarse repetidas veces). 4. El cliente puede recibir varias respuestas. Slo es aplicable cuando se usan exclusivamente operaciones idempotentes (repetibles). Nota: Una operacin es idempotente si se puede ejecutar varias veces resultando el mismo efecto que si se hubiera ejecutado slo una. En ocasiones una operacin no idempotente puede implementarse como una secuencia de operaciones idempotentes. Admisible en aplicaciones donde se tolere que se puedan repetir invocaciones sin afectar a su funcionamiento. Semntica como-mximo-una-vez

El procedimiento remoto se ejecuta exactamente una vez o no llega a ejecutarse ninguna.

El cliente recibe una respuesta o una indicacin de que no se ha ejecutado el procedimento remoto. Funcionamiento 1. El cliente enva la peticin y queda a la espera un tiempo. 2. Si no llega respuesta o ACK dentro del tiempo de espera, repite la peticin. 3. El servidor filtra las peticiones duplicadas y guarda historial con las respuestas enviadas (servidor con memoria). El procedimiento remoto slo se ejecuta una vez. 4. El cliente slo recibe una respuesta si la peticin lleg y se ejecut el procedimiento,si no recibe informe del error.

JENNYFER OJEDA

DESARROLLO DE SISTEMAS DISTRIBUIDOS

4CV2

DESARROLLO PRCTICO
Capturas de pantalla
Para realizar la calculadora en RPC se deben de implementar los siguientes archivos de la manera especificada:

calculadora.x: Especificacin XDR del interfaz remoto que exporta las cuatro operaciones bsicas para enteros (suma, resta, multiplicacin y divisin) servidor.c: Implementacin, conforme al esquema esperado por el skeleton de Sun-RPC, de las 4 funciones exportadas cliente.c: Ejemplo de cliente donde se muestra la forma en que realizan las llamadas remotas a las funciones remotas exportadas.

Pasos a seguir 1. $ cd rpc1

JENNYFER OJEDA

DESARROLLO DE SISTEMAS DISTRIBUIDOS

4CV2

2. Comprobar el contenido del fichero calculadora.x con el interfaz remoto


o

Usa el esquema de parmetros ''clsico'' que slo permite un argumento de entrada en los procedimientos remotos Por esa razn se define la estructura entrada para contener los dos operandos (arg1 y arg2) que se pasan a cada una de las cuatro operaciones

3. Compilar con rpcgen la definicin del interfaz remoto: $ rpcgen calculadora.x

Se generarn los siguientes ficheros.


o

calculadora.h: Fichero de cabecera con constantes y las definiciones de las estructuras usadas como parmetros de entrada y como valores de salida. calculadora_clnt.c: Cdigo C con la implementacin del stub
5

JENNYFER OJEDA

DESARROLLO DE SISTEMAS DISTRIBUIDOS


o o

4CV2

calculadora_svc.c: Cdigo C con la implementacin del skeleton calculadora_xdr.c: Cdigo C con la implementacin de las rutinas XDR para aplanar/desaplanar los argumentos y el valor de retorno

Se pueden abrir con un editor y comprobar su estructura, las definciones de tipos de datos, los prototipos de las funciones del stub y ver cmo son las llamadas realizadas en stub y skeleton.

4. Compilar y lanzar el servidor: $ gcc -o servidor servidor.c calculadora_svc.c calculadora_xdr.c $ ./servidor &

5. Se pueden comprobar los programas RPC registrados en el portmapper de una mquina con la orden rpcinfo: $ rpcinfo p

JENNYFER OJEDA

DESARROLLO DE SISTEMAS DISTRIBUIDOS

4CV2

Muestra el nm. de programa (en decimal) junto su nm. de versin [ambos especificados en el fichero XDR calculadora.x] y sus puertos de escucha (tcp y udp). 6. Compilar y ejecutar el cliente de ejemplo (en un terminal distinta): $ gcc -o cliente cliente.c calculadora_clnt.c calculadora_xdr.c $ ./cliente localhost & Se puede probar a ejecutar las funciones remotas de otra mquina del laboratorio poniendo su direccin IP en lugar de ''localhost''

JENNYFER OJEDA

DESARROLLO DE SISTEMAS DISTRIBUIDOS

4CV2

CONCLUSIONES
Utilizando RPC se evita la configuracin de la comunicacin entre sistemas distribuidos. La preocupacin ahora se centra en la aplicacin. * Las aplicaciones que utilizan RPC tienen mejores oportunidades de desarrollo y mantenimiento que aquellas que lo hacen directamente sobre SOCKETS

BIBLIOGRAFA

http://www.chuidiang.com/clinux/rpc/rpc.php http://es.wikipedia.org/wiki/Remote_Procedure_Call

JENNYFER OJEDA

También podría gustarte