Informe RPC

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

República Bolivariana de Venezuela

Universidad Nacional Experimental de Guayana


Vicerrectorado Académico
Ingeniería Informática
Semestre VIII-Sistemas Distribuido
Puerto Ordaz – Estado Bolívar

Llamadas a Procedimientos Remotos (RPC)


Sistemas Distribuidos

Diovilgy Salazar C.I: 23872064


Carlos Cesin C.I: 22758942
salazadiovilgy@gmail.com

Resumen
En el presente informe se evalúa la invocación remota, utilizando uno de sus tres (3)
paradigmas, Llamada de Procedimiento Remoto (RPC), este permite que un programa de
ordenador ejecutar código en otra máquina remota sin tener que preocuparse por la
comunicaciones entre ambos. Usando la técnica de cliente-servidor, que facilita las llamadas
a servidores remotos.
RPC proporciona un middleware que simplifica el desarrollo de aplicaciones distribuidas,
evitando que el programador interactúe con la interfaz de los sockets. El servidor ofrece
procedimientos que el cliente llama como si fueran procedimientos locales, ofreciéndole al
usuario un entorno no distribuido.

Introducción
Las llamadas de procedimientos remotos, son muy utilizadas dentro del paradigma
cliente-servidor. Siendo el cliente el que inicia el proceso solicitando al servidor que ejecute
cierto procedimiento o función y enviando este de vuelta el resultado de dicha operación al
cliente. Los protocolos que utiliza RPC son solitud (que no espera respuesta),
solitud/respuesta (se pasa el protocolo solitud respuesta pero sin mensaje de confirmación) y
solicitud/respuesta/confirmación (no se bloquea el cliente, la confirmación contiene el id de
la solitud).
RPC es dependiente del lenguaje de programación que se utilice, siendo esta una de su
mayor desventaja, ya que, si se utilizara para ofrecer un servicio web, es probable que se
necesiten más de un lenguaje de programación del lado del cliente y del servidor.
La práctica a realizar se mostrara la funcionalidad de las llamadas de procedimientos
remotos.
Método experimental
Para realizar la práctica se utilizó el sistema operativo Ubuntu base Linux, se instalaron
los paquetes rpcgen y rpcbin. Los resultados generados se visualizaran en la terminal.

Resultado y Discusión

Practica
Elaborar una aplicación cliente-servidor basada en Llamada de procedimiento remoto
RPC, el cliente implementara una interfaz de usuario y el servidor el procesamiento.
Programar una calculadora básica con las siguientes funciones: suma, resta,
multiplicación, división, promedio, potencia y raíz cuadrada. El cliente implementara la
interface de usuario y el servidor las funciones de cálculo.
El cliente:
1. La aplicación cliente solicita y captura los datos del operador mediante interfaz de
usuario.
2. El cliente envía los datos y el tipo de operación aritmética a realizar.
3. El cliente espera el resultado.
4. El cliente visualiza el resultado.
El servidor:
1. El servidor espera los datos del cliente.
2. Realiza la operación indicada.
3. Devuelve la operación al cliente.

Resultado
En la siguiente imagen se muestran los archivos generados al compilar el archivo
calculadora.x, este archivo se le conoce como Interface Description Lenguaje (IDL), que es
la interfaz con la que se comunicaran cliente y servidor. Se compila el siguiente comando
que se muestra en la terminal (Imagen 1) para generar los archivos RPC automáticamente.

Imagen 1: Generando los archivos RPC


Imagen 2: Archivos generados
Modificamos el archivo calculadora_client.c y calculadora_server.c, agregando las
funciones correspondientes para el cliente y el servidor. Luego ejecutamos el archivo
Makefile.calculadora (Ver la imagen 3) que compilara todo el proyecto evaluando los
posibles errores de sintaxis.

Imagen 3: Ejecutando Makefile.calduladora


Una vez compilado el proyecto, se generan los siguientes archivos (Ver imagen 4):

Imagen 4: Archivos rpc


Se evalúan los puertos de comunicación.

Imagen 5: Puertos del cliente


Para ejecutar el programa cliente, se necesita la ip del servidor para establecer
comunicación. Usando la terminal y colocando el comando: ifconfig, se conoce la ip del
servidor.

Imagen 6: IP del servidor


Se inicializa primero el servidor. Una vez inicializado, este espera por la petición del
cliente.

Imagen 7: Se encuentra inicializado el servidor


Se ejecuta el cliente, agregando la ip del servidor.
Imagen 8: cliente
Se ingresa el primer número, segundo número y el operador, que será enviado al servidor.

Imagen 9: Cliente – Servidor


Como se puede ver en la imagen 9, le fue enviado la petición del cliente al servidor, el
servidor realizo el cálculo (la suma de dos números), y le envió la respuesta al cliente.
En el siguiente ejemplo se realiza una división. Como se puede observar el servidor quedo
en espera, ya que el cliente ingreso valores erróneos, no se puede dividir un número entre
cero, estas son validaciones que se realizan del lado del cliente, no del servidor.

Imagen 10: División

Conclusión
En la práctica se concluyó que RPC es síncrono, es decir, necesita una respuesta del
servidor para poder continuar su ejecución, usando “stub” que se encarga de ajustar
parámetros.
En RPC, el sistema local invoca, a través de la red, a una función alojada en otro sistema,
el protocolo que se utilizó para la invocación es el UDP, así el servidor queda a la espera por
la petición del cliente.
RPC permite el desarrollo de sistemas de procesamiento distribuido, dado a entender al
usuario que todo se maneja en un mismo sistema.

También podría gustarte