Está en la página 1de 8

Snchez Angeles Luis Alfredo

JUNIO 2014

Aplicaciones Para Comunicaciones en Red
Remote Procedure Call

INTRODUCCIN
RPC es una tecnologa, tradicionalmente
empleada en ambiente UNIX, que permite el
desarrollo de sistemas de procesamiento
distribuido basados en el paradigma
procedimental. Con el advenimiento de
implementaciones para plataforma Windows,
as como para Java, es posible pensar en RPC
como un mecanismo de integracin de
software heterogneo.
Una llamada a un procedimiento (funcin o
subrutina) es un mtodo bien conocido para
transferir el control de una parte del
programa a otra, con un retorno del control a
la primera. Asociado con la llamada a un
procedimiento estn el pase de argumentos y
el retorno de uno o varios resultados. Cuando
el cdigo que invoca a un procedimiento y
dicho procedimiento estn en un mismo
proceso en un computador dado, se dice que
ha ocurrido una llamada a un procedimiento
local.
Por el contrario, en una llamada a un
procedimiento remoto (RPC, Remote
Proceure Call) el sistema local invoca, a travs
de la red, a una funcin alojada en otro
sistema.
Se utiliza el trmino solicitud para referirse a
la llamada que realiza el cliente al
procedimiento remoto (servidor) y, el
trmino respuesta, para describir el resultado
devuelto por ste ltimo.



Proceso de una llamada a
un procedimiento remoto


Funcionamiento:
1. El cliente llama a un procedimiento
local llamado stub del cliente, el
cual aparenta ser el procedimiento
servidor que el cliente desea llamar.
El propsito del stub del cliente es
empaquetar los argumentos del
procedimiento remoto, adecuarlos a
algn formato estndar y construir
uno o varios mensajes de red. El
empaquetamiento de los argumentos
del procedimiento remoto en
mensajes de red se conoce como
marshaling.
2. Estos mensajes son enviados por el
stub del cliente al sistema remoto,
lo cual requiere una llamada del
sistema
3. Los mensajes son transferidos al
sistema remoto empleando
protocolos con o sin conexin.

Snchez Angeles Luis Alfredo
JUNIO 2014

Aplicaciones Para Comunicaciones en Red
Remote Procedure Call

4. Un procedimiento stub del servidor
espera en el sistema remoto la
solicitud del cliente. Desempaqueta
los argumentos de los mensajes de
red y si es necesario realiza alguna
conversin.

5. El stub del servidor realiza la
llamada al procedimiento local que
realmente invoca la funcin del
servidor y le pasa los argumentos
transferidos a travs de la red desde
el stub del cliente

6. Cuando el procedimiento del servidor
termina, ste le regresa el control al
stub del servidor devolviendo los
resultados obtenidos.

7. El stub del servidor adecua el
formato de tales resultados, si es
necesario, y los empaqueta en
mensajes de red para ser devueltos al
stub del cliente.
8. Los mensajes son transmitidos al
stub del cliente
9. El stub del cliente lee los mensajes
recibidos
10. Luego de posiblemente convertir los
valores de retorno, el stub del
cliente retorna finalmente dichos
resultados a la funcin del cliente
haciendo parecer un retorno normal
de funcin.
El concepto de llamada a procedimiento
remoto permite ocultar en los stubs todos
los detalles del cdigo correspondiente a la
comunicacin a travs de la red. Esto permite
que los desarrolladores de programas de
aplicacin no se preocupen por detalles tales
como sockets y ordenamiento de bytes.
Uno de los objetivos de RPC es facilitar el
desarrollo de aplicaciones distribuidas.
Las implementaciones de RPC ms populares
son:
La desarrollada por Sun Microsystem
denominada ONC-RCP (Open Network
Computing, ONC-RCP), distribuida con casi
todos los sistemas UNIX.
La desarrollada por Microsoft en lnea con el
Ambiente de Computacin Distribuida (DCE,
Distributed Computing Enviroment) definido
por la Fundacin de Software Abierto (OSF,
Open Software Foundation). Incluida en los
sistemas operativos Windows.
y por otro lado, la implementacin del
protocolo puede ser:
Esquema request-reply
Exclusin mutua del server de
procedimientos de un mismo
programa
Sobre TCP o UDP manteniendo la
semntica de la capa de transporte
Estrategia simple de time out y
retransmisin.









Snchez Angeles Luis Alfredo
JUNIO 2014

Aplicaciones Para Comunicaciones en Red
Remote Procedure Call

CARACTERSTICAS DE
TRANSPARENCIA
Para lograr que a una aplicacin le sea
indistinto realizar una llamada a un
procedimiento remoto o una llamada local, es
necesario considerar los siguientes aspectos:
Pase de parmetros
Enlace
Protocolo de transporte
Manejo de excepciones
Semntica de llamadas
Representacin de los datos
Desempeo
Seguridad
ONC-RPC (Open Network
Computing - Remote
Procedure Call)
ONC-RPC cuenta con los siguientes
componentes:
rpcgen, un compilador que toma la
definicin de la interfaz de un procedimiento
remoto y genera el stub del cliente y el
stub del servidor.
XDR (eXternal Data Representation), un
estndar para la descripcin y codificacin de
datos que garantiza portabilidad entre
sistemas de arquitecturas diferentes.
Una librera que maneja todos los detalles.

XDR (EXTERNAL DATA
REPRESENTATION)
XDR es un estndar para la descripcin y
codificacin de datos que utiliza un lenguaje
cuya sintaxis es similar a la del lenguaje de
programacin C. Es empleado principalmente
en la transferencia de informacin entre
diferentes arquitecturas computacionales y
se ubica dentro de la capa de presentacin del
modelo ISO. Involucra un mecanismo de
tipificado implcito, es decir que slo viaja el
valor de la variable por la red.
Los tipos de datos de XDR presentan cierta
similitud con los tipos de datos de C.
Algunos de estos son:

int
unsigned int
enum
bool
hyper
unsigned hyper
float
double
quadruple (punto flotante de cudruple
precisin)
opaque (de longitud fija o variable)
string
array (de longitud fija o variable)
struct
union (uniones discriminadas)
void
constant







Snchez Angeles Luis Alfredo
JUNIO 2014

Aplicaciones Para Comunicaciones en Red
Remote Procedure Call

Archivos necesarios para el desarrollo de una
aplicacin cliente servidor empleando ONC
RPC.





Secuencia de pasos de una llamada RPC









Snchez Angeles Luis Alfredo
JUNIO 2014

Aplicaciones Para Comunicaciones en Red
Remote Procedure Call

FUNCIONAMIENTO DE LA
PRCTICA
INTRODUCCION
Realizar una agenda distribuida que contenga
los registros de nombres de personas,
apellido y un id.
La informacin de la persona deber estar
contenida en una estructura.
La practica requiere de cuatro operaciones
bsicas:
1) Insertar un nuevo registro
2) Buscar un registro por nombre
3) Listar todos los registros
4) Listar todos los registros en un
archivo.
1) Generacin de la
aplicacin rpc.
Para poder generar la estructura cliente-
servidor rpc.
Necesitamos un archivo con extensin.x





2) Estructuracin de las
llamadas a funciones del
cliente.



Snchez Angeles Luis Alfredo
JUNIO 2014

Aplicaciones Para Comunicaciones en Red
Remote Procedure Call



Snchez Angeles Luis Alfredo
JUNIO 2014

Aplicaciones Para Comunicaciones en Red
Remote Procedure Call

Estructuracin del servidor.







Snchez Angeles Luis Alfredo
JUNIO 2014

Aplicaciones Para Comunicaciones en Red
Remote Procedure Call



Conclusiones
En el desarrollo de la prctica de RPC
comprendimos el funcionamiento de este
protocolo para realizar aplicaciones
distribuidas. Nos familiarizamos con la
estructura de trabajo de RPC.
Se reafirm el conocimiento del desarrollo de
aplicaciones cliente-servidor, adems de
incluir llamadas a procedimientos remotos
para interactuar con recursos nativos de un
servidor en dichas aplicaciones
implementadas en lenguaje C.

También podría gustarte