Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Instituto de Cálculo Aplicado
Instituto de Cálculo Aplicado
INSTITUTO DE
DE
CÁLCULO
CÁLCULO APLICADO
APLICADO
ICA
La Universidad del Zulia
Facultad de Ingeniería
Instituto de Cálculo Aplicado
RPC
Llamadas a Procedimientos
Remotos
1
INTRODUCCIÓN
INTRODUCCIÓN
Desventajas:
• Mayor complejidad
• Aspectos de seguridad
INTRODUCCIÓN
INTRODUCCIÓN
• Enfoque procedimental
2
MODELO
MODELO RPC
RPC
Proceso del Cliente Proceso del Servidor
Cliente Servidor
(8)
Funciones Funciones
de Red de Red
Comunicación de red = (3)
El concepto RPC permite ocultar los detalles del código relacionados con la
comunicación a través de la red, facilitando el desarrollo de aplicaciones
cliente/servidor
IMPLEMENTACIONES
IMPLEMENTACIONES MÁS
MÁS
POPULARES
POPULARES
ONC-RCP
(Open Network Computing, ONC-RCP), desarrollada por Sun
Microsystem y distribuida con casi todos los sistemas UNIX.
DCE-RPC
(DCE, Distributed Computing Enviroment) definido por la
Fundación de Software Abierto (OSF, Open Software Foundation)
e incluida en los sistemas operativos Windows.
3
CARACTERÍSTICAS
CARACTERÍSTICAS DE
DE
TRANSPARENCIA
TRANSPARENCIA
Pase de Parámetros
Enlace
Protocolo de Transporte
CARACTERÍSTICAS
CARACTERÍSTICAS DE
DE
TRANSPARENCIA
TRANSPARENCIA
Manejo de Excepciones
Semántica de Llamadas
4
CARACTERÍSTICAS
CARACTERÍSTICAS DE
DE
TRANSPARENCIA
TRANSPARENCIA
Desempeño
Seguridad
ONC
ONC -- RPC
RPC
5
ONC
ONC -- RPC
RPC
XDR
XDR (eXternal
(eXternal Data
Data Representation)
Representation)
6
XDR
XDR (eXternal
(eXternal Data
Data Representation)
Representation)
+--------+--------+...+---------+--------+...+--------+
| byte 0 | byte 1 | ... |byte n-1| 0 |...| 0 |
+--------+--------+....+---------+--------+..+ -------+
|<-----------n bytes---------->|<------r bytes------>|
|<----------n+r (donde (n+r) mod 4 = 0)>-------->|
XDR
XDR (eXternal
(eXternal Data
Data Representation)
Representation)
Enteros de 64 Bits
Declaración: hyper identifier;
unsigned hyper identifier;
7
XDR
XDR (eXternal
(eXternal Data
Data Representation)
Representation)
Enumeración
Ejemplo:
XDR
XDR (eXternal
(eXternal Data
Data Representation)
Representation)
8
XDR
XDR (eXternal
(eXternal Data
Data Representation)
Representation)
Cadenas de Caracteres
XDR
XDR (eXternal
(eXternal Data
Data Representation)
Representation)
Algunos Tipos de Datos
Arreglo
Declaración:
type-name identifier[n]; (Arreglo de longitud fija)
type-name identifier<m>; (Arreglo de longitud variable)
Estructura
Declaración:
struct {
component-declaration-A;
component-declaration-B;
...
} identifier;
9
Extensión
Extensión de
de XDR
XDR para
para la
la
Declaración
Declaración de
de Procedimientos
Procedimientos
ONC-RPC es un protocolo de mensajes especificado en XDR
version-def:
"version" identifier "{"
procedure-def
procedure-def *
"}" "=" constant ";"
procedure-def:
type-specifier identifier "(" type-specifier
("," type-specifier )* ")" "=" constant ";"
DESARROLLO
DESARROLLO DE
DE APLICACIONES
APLICACIONES
EMPLEADO ONC-RPC
EMPLEADO ONC-RPC
Procedimientos del Servidor Programa Servidor
date_proc.c cc date_svc
date_svc.c
Archivo de especificación RPC
Librería
date.x rpcgen date.h
RPC
date_clnt.c
Función main() del Cliente Programa Cliente
Stub del Cliente
rdate.c cc rdate
10
DESARROLLO
DESARROLLO DE
DE APLICACIONES
APLICACIONES
EMPLEADO ONC-RPC
EMPLEADO ONC-RPC
Archivo XDR
/*
* date.x – Especificación de servicio de tiempo remoto
*/
program DATE_PROG
{
version DATE_VERS
{
long BIN_DATE(void) =1; /* procedimiento No. 1 */
string STR_DATE(long) =2; /* procedimiento No. 2 */
} = 1; /* version No. 1 */
} = 0x31234567 /* numero de programa */
Números de Programa
0x00000000 – 0x1fffffff definidos por Sun Microsystem
0x20000000 – 0x3fffffff definidos por el usuario
0x40000000 – 0x5fffffff transitorios
0x60000000 – 0xffffffff reservados
SECUENCIA
SECUENCIA DE
DE PASOS
PASOS DE
DE UNA
UNA
LLAMADA
LLAMADA ONC-RPC
ONC-RPC
Sistema Remoto
rdate
(cliente)
Sistema Local
11
CONCLUSIONES
CONCLUSIONES
12