SISTEMAS DISTRIBUIDOS
INSTITUTO TECNOLOGICO DE
TUXTLA GUTIERREZ
TAREA:
TAREA : PRACTICA RPC (REMOTE PROCEDURE CALL)
Morales Mancilla José Alberto
CATEDRATICO
INTEGRANTES DEL EQUIPO:
Peña Morales Luis
Tinoco Ramos Guillermo
INGENIERIA EN SISTEMAS COMPUTACIONALES
TUXTLA GUTIERREZ, CHIAPAS A 11 DE ABRIL DEL 2011
SISTEMAS DISTRIBUIDOS
INTRODUCCION
El Modelo
El modelo de Llamada Remota de Procedimiento es similar al modelo de llamadas locales de
procedimientos, en el cual la rutina que invoca el procedimiento coloca los argumentos en un
área de memoria bien conocida y transfiere el control para el procedimiento en ejecución, que
lee los argumentos y los procesa. En algún momento, la rutina retoma el control, extrayendo el
resultado de la ejecución de un área bien conocida de la memoria. Después de eso, la rutina
prosigue con la ejecución normal.
Secuencia de pasos de una llamada a procedimientos remotos.
Vamos a la practica¡¡
SISTEMAS DISTRIBUIDOS
Procedimiento:
Lo primero que tenemos que hacer es escribir nuestro archivo con la extensión
“.x en mi caso se lama “funciones.x” Una vez escrito nuestro fichero funciones.x
hacemos una llamada al comando de Unix "rpcgen -a funciones..x". Esto
generará 7 ficheros distintos.
Contenido de el archivo
funciones.x, prácticamente
es la declaración vacía de
los métodos que serán
remotos.
Archivos generados por la llamda a rpcgen:
1. Makefile.funciones
2. Funciones_xdr.c
3. Funciones.h
4. Funciones_server.c
5. Funciones_client.c
6. Funciones_svc.c
7. Funciones_ctrl.c
De los cuales solo nos interesa modificar el servidor y el cliente es decir
funciones_server.c y funciones_client.c respectivamente.
SISTEMAS DISTRIBUIDOS
El código anterior es el código del archivo funciones_server.c el cual es el
servidor de nuestra aplicación, y como podemos ver es como si fuera una clase
donde tenemos las clases, ya con código y las instrucciones de lo que van a
realizar cuando sean llamadas por el cliente.
SISTEMAS DISTRIBUIDOS
El siguiente código es nuestro archivo funciones_client.c, el cual es nuestro
cliente y es el que utiliza los métodos de la remotos de otra máquina.
Como podemos observar es un programa común y corriente con la diferencia
de que tenemos que crear un cliente y las llamas a los métodos remotos tiene
un formato específico.
Lo que nos toca por hacer ahora es compilar nuestros programas con el cando
Linux make, para este caso seria “make –f Makefile.funciones”, con esto
generamos la compilación de nuestros archivos, además de los ejecutables
para servidor y cliente.
SISTEMAS DISTRIBUIDOS
La imagen anterior es la llamada a make, ahora lo que nos toca por hacer es poner a correr el
servidor.
Con esto sabemos que los proceminetos remotos están listos para ser usados por otra
máquina, digamos en espera de petición de métodos.
Para ejecutar el cliente debemos poner el nombre del ejecutable en este caso
“funciones_client” mas la dirección IP de la maquina que contiene los métodos remotos como
se muestra a continuación:
SISTEMAS DISTRIBUIDOS
Confirmemos que si funciona nuestra aplicación:
SISTEMAS DISTRIBUIDOS
CONCLUSION
RPC es una tecnología, tradicionalmente empleada en ambiente UNIX, que
permite el desarrollo de sistemas de procesamiento distribuido basados en él
paradigma procedimental. Con el advenimiento de implementaciones para
plataforma Windows, así como para Java, se concibe a RPC como una
tecnología de integración entre plataformas disimiles de hardware y software.
A mi parecer el lenguaje usado por RPC es bastante parecido a JAVARMI, es
bastante fácil ya que es lenguaje c nativo en su mayoría. A diferencia de los
sockets, en RPC no tenemos que preocuparnos de crear sockets crear clientes,
llenas estructuras o definir puertos pues todo eso ya lo trae implícito el lenguaje
de RPC, lo único que tenemos que hacer fuera de lo “común” es hacer la
creación y destrucción del cliente, pero es relativamente fácil pues se hace con
una instrucción cada una; clnt_create (host, nombre_programa,
Version_programa) y clnt_destroy (variable_clnt) respectivamente.
Como conclusión bastante útil la técnica de RPC a nuestro parecer, además de
hacer las conexiones entre cliente y servidor.
SISTEMAS DISTRIBUIDOS
BIBLIOGRAFIA
El RPC, Trabajo de Investigación
http://es.scribd.com/doc/52219317/El-RPC-Trabajo-de-investigacion
RPC (Remote Procedure Call)
http://www.chuidiang.com/clinux/rpc/rpc.php/