Sistemas Distribuidos: Práctica 3

En esta práctica se programará una aplicación que permita la ejecución de procedimientos remotos utilizando Sun RPC. Se propone la implementación del servicio de consulta de notas y modificación (véase SD_PR02) mediante Sun RPC.


Para la realización de la práctica se proporciona el código fuente en C que implementa la funcionalidad requerida en un único programa (notas_local.c). La estructura de este programa ya se ha realizado de tal forma que gran parte del código sea reutilizable y sólo sea necesario incluir el código C que viene impuesto por la utilización de Sun RPC

Para realizar esta parte de la práctica, se sugieren los siguientes pasos:

  1. Escribir el fichero notas.x para la definición de la interfaz remota.
  2. Generar de nuevo los ficheros necesarios utilizando el compilador rpcgen.
  3. A partir del programa proporcionado (notas_local.c), construir dos nuevos programas cliente.c y servidor.c. El cliente solicitará al servidor la realización de consultas e inserciones al servidor mediante llamadas a procedimientos remotos y el servidor implementará los servicios correspondientes.  Se sugiere la generación de las plantillas del cliente y servidor (rpcgen -a) a partir del fichero notas.x..
Comentarios adicionales:

/* rmore.x */
const
MAX_CHAR=255;

struct
linea {
  
char cadena[MAX_CHAR];
};

struct
lineaint {
    int
error;
    char
cadena[MAX_CHAR];
};

program
RMORE_PROG {
    version
RMORE_VER {
        struct
lineaint rmore(struct linea) = 1;
    } = 1
;
} = 9999
;

 


Guía para construir la aplicación:

	$ rpcgen notas.x

que generará los ficheros notas_svc.c y notas_clnt.c. En este caso, también se generará el fichero notas_xdr.c, ya que se utilizan tipos de datos complejos.

$ gcc cliente.c notas_clnt.c notas_xdr.c -o cliente
$ gcc servidor.c notas_svc.c notas_xdr.c -o servidor

y ya pueden ejecutarse en terminales distintas de la misma máquina o en distintas máquinas.