Actualizado el 12 de Septiembre del 2020 (Publicado el 14 de Enero del 2017)
1.286 visualizaciones desde el 14 de Enero del 2017
155,1 MB
157 paginas
Creado hace 12a (30/01/2013)
IS 1'-i'-1- {';i
n;s/S- ;99 8
ct..r"t tf IICY[STIIACitw f H
fSTUtMS AVANZAits Ill
I. P. N.
atBLIOTEOA
INGENIERIA ELECTitK:~
Cf.IHM ;:, ;_ II'IVt 'STII ACitl ttl 0
f.SP C! I!l S AV,O.NV.IIII IH
1. P. N.
a1 8L IO T E0A
1 ,.1 GEN I ERI~ ELECTftlC-.
CiNVESTAV
lPN
ADOUJSICION
DE LIB ROS
,,
Centro de lnvestigaci6n y de Estudios Avanzados
deii.P.N.
Departamento de Ingenieria Electrica
Secci6n de Computaci6n
COMPILADOR DEL PROTOCOLO RPC PARA LA
PROGRAMACION DE APLICACIONES DISTRIBUIDAS
Tesis que presenta Ia Lie. Graciela Judith Esparza Azcoitia para obtener
el grado de MAESTRO EN CIENCIAS dentro de Ia especialidad de
INGENIERiA ELECTRICA con opci6n en COMPUT A CION
Trabajo dirigido por el M. en C. Raul Garcia Ruiz
Mexico, D .F., Agosto de 1997
Becario de CONACYT
A mis padres, a mis hermanos y a Miguel porque hemos logrado estar unidos, a
pesar de las distancias.
A mis companeros de trabajo y amigos que siempre me han apoyado.
AI personal y a
las secciones de Computaci6n,
Comunicaciones asf como Ia Secretarfa de Planeaci6n porque me brindaron su
ayuda y colaboraron en mi formaci6n academica.
los profesores de
AI C/NVESTAV y a/ Consejo Nacional de Ciencia y Tecnologfa (Conacyt) por e/
apoyo econ6mico brindado.
Cf.NT!'O g ~ IMvtST! QAC itll T fl
ESTUl'!GS AV • ".Z • ~eS DEl
L P. N .
• IBL.IOTE OA
INGENIERiA ELE CTRIC~<
CONTENIDO
CU T!U' DE lllfrt:STiiACI . . 'f II
f3 TUI'lii'JS • v ~.NlA80 S tH
I. P. N.
arEi L I O TEO A
'"'r:;E NIERIA ELECTRIC~
l . INTRODUCCION ___________________________________________ 2
l.l. Objetivo de Ia tesis -------------------------------------------
1.2. An t e c ed en t e s - - - - - - - - - - - - - - - - - - - - - - - - -
1.3. Modelo RPC - - - - - - - - - - - - - - - - - - - - - - - - -
1.4. Resultados __ _ _ ___________ ___ ____ __ _
2. LLAMADAS A PROCEDIMIENTOS REMOTOS _____________________ 10
2.1. Modelos Cliente- Servidor - - - - - - - - - - - - - - - - - - - -1 0
2.2. Estructura General del Modelo RPC
2.2.1. Paso de parametres
2.2.2. Enlace
2.2.3. Protocolo de transporte
2. 2.4. Manejo de excepciones
2.2.5. Semantica de las llamadas
2.2.6. Representacion de los datos
2.2.7. Desempeiio y Seguridad
10
12
12
12
12
13
13
13
2.3. Representaci6n de los datos en productos RPC comerciales
2.4. Llamadas a procedimientos remotos en productos comerciales
2.4.l.SUNRPC
2.4.2. COURIER DE XEROX
2.4.3. RPC DE APOLLO
14
15
15
19
25
3. BIBLIOTECAS RPC, XDR, STUBS Y ENCABEZADOS --------------- 29
3.~ ~i~~~~';: ~~;~:~:sc~~ñg~~~;~~;:n~a:eac~:t:'eer de los datos -----------;~
3 I
31
33
3. I. 2 Rutinas XDR para el manejo de Ia cadena de caracteres
3.1.3 Rutinas XDR para el manejo de conversion de tipos simples (filtros)
3.1.4 Rutinas XDR para el manejo de conversion de tipos complejos (filtros)
3.2 Biblioteca de funciones RPC
3.2.1 Autenticacion del chente
3. 2. 2 Llarnada desde el !ado chente
3.2.3 Administracion del "handle" del chente
3 . 2.4 Registro de un servidor en el Portmap
3.2.5 Administracion del handle del servicio de transporte SVCXPTR
3.2.6 Manejo y reporte de errores en ellado servidor
3. 2. 7 Servidor E/S y utilerias
3.2.8 Acceso Directo XDR
3.3 Biblioteca de funciones generadas para el manejo del portmap
3.4 Generaci6n de stubs cliente-servidor, encabezados y rutinas xdr
3 .4. I Encabezados
35
35
3 5
37
3 8
38
39
40
40
41
43
4 3
3.4.2 Rutinas XDR
3.4.3 CLIENTE
3.4.4 SERVIDOR
4. INTERFAZ DE SOCKETS E JNTERFAZ DE COMUNICACION CRAD
4.1 Uso de Ia interfaz de sockets para clientes y servidores
4. 1. I Biblioteca de Sockets
4.2 Descripcion del modelo cliente-servidor generado por CRAD
4.3 Interfaz de comunicacion CRAD
4.3. I INTERF AZ DEL CLIENTE
4.3.2 INTERFAZ DEL SERVIDOR
5. COMPILADOR CRAD
5.1. Fases del Compilador
5.2. An:ilisis Lexico
5.3. An:ilisis Sintactico
5.4. An:ilisis Semantico , Tablas de simbolos y Manejo de Errores
5.5. Generacion de codigo
5.5. 1. Generador de encabezados
5.5.2. Generador de rutinas XDR
5.5.3. Generador de rutinas del cliente (stub del cliente)
5.5.4. Generador de rutinas del servidor (stub del servidor)
6. EJEMPLO DE GENERA CION DE COD/GO
6.1 Planteamiento del problema
6.2 Especificacion del problema en lenguaje RPC
6.3 Compilacion de Ia especificacion
6.4 Archivo de encabezados
6.5 Codigo del cliente
6.6 Stub del cliente
6.7 Filtros XDR
6.8 Stub del Servidor
6.9 Rutin as locales del servidor
Conclusiones
46
~7
52
58
58
59
62
66
66
70
76
76
80
83
88
90
90
93
94
95
99
99
99
100
100
101
104
105
106
I 08
111
ApendiceA. XDR: ESTANDAR PARA LA REPRESENTACION DE DATOS
EXTERN OS (EXTERNAL DATA REPRESENTATION STANDARD)
Introduccion:
Tamafio basico de bloque.
Especificacion dellenguaje xdr
Sintaxis .
Apendice B MODELO CLIENTE-SERVIDOR
Implantacion del modelo Cliente-Servidor
Interfaz de sockets
Consideraciones en el Diseilo de Clientes
Consideraciones en el Diseilo de Servidores
Servidores concurrentes:
Servidores iterativos:
Servidores orientados a conexi6n:
Servidores sin conexi6n
Tipos Basicos de Servidores
Servidores Multiprotocolo (TCP/UDP)
Servidores Multiservicio (TCP, UDP)
Servidores mulliservicio sin conexi6n
Servidores mu/tiservicio orientado a conexi6n
Un servidor mu/tiservicio, concurrente y orientado a conexi6n
Un servidor multiservicio con un proceso Unico
Servidores Multiservicio Multiprotocolo
Apendice C INTRODUCCION AL USO DEL LENGUAJE RPC
Protocolo de Mensajes RPC
Mensajes RPC
Protocolo de Autenticacion
Lenguaje RPC.
Protocolo del programa PORT MAPPER
BIBLJOGRAFfA
114
114
ll4
120
120
124
124
124
125
125
125
126
126
126
127
129
130
131
131
132
133
134
136
138
138
141
141
142
145
Compilador del Protocolo RPC Para Ia programaci6n de aplicaciones distribuidas
INTRODUCCION
Capitulo 1. lnfroducci6n
1.
1.
INTRODUCCION
1. 1. Objetivo de Ia tesis
En Ia actualidad,
las redes de computadoras son un media de comunicacion
elemental que nos permiten intercambiar informacion y compartir recursos, como discos,
cintas, archives, bases de datos , modems, impresoras, plotters y otros dispositivos. Las
redes permiten a los usuaries estructurar tales recursos de forma que se adapten a su
organizaci6n, promoviendo una mejor distribuci6n y Ia descentralizaci6n de los mismos.
En este contexte, es importante que los usuaries de los servicios tengan acceso a los
recursos distribuidos sin solicitar de manera explicita Ia transacci6n requerida para
usarlos, en otras palabras, tener acceso a los servicios remotes de forma transparente .
Los programas de aplicaci6n que soportan esta capacidad son conocidos como
aplicaciones o sistemas distribuidos y su objetivo es proporcionar un media ambiente que
oculte Ia localizacion geografica de las computadoras y servicios, de tal manera que
parezcan locales.
La programaci6n de aplicaciones distribuidas puede resultar muy compleja ya que
involucra el conocimiento de diferentes redes,
interfaces,
estandares para Ia representaci6n de datos, etc. Debido a esto, los programadores han
tenido Ia necesidad de una plataforma' de facil usa para escribir aplicaciones distribuidas.
Una de estas plataformas es "Open Network Computing" (ONC) desarrollada par SUN
MicroSystems. Esta plataforma consta de rutinas para llamadas a procedimientos
remotes (Remote Procedure Call -RPC-) y rutinas para Ia representaci6n de los datos
(eXternal Data Representation -XDR-).
familias de protocolos ,
Par otra parte, Ia plataforma ideal para las aplicaciones distribuidas no debe asociarse
con un Sistema Operative o una arquitectura especifica, par Ia que debe ser aceptada
par varies fabricantes, constituyendose en un estandar de industria como es el case de
ONC de SUN.
Con base en estes antecedentes se plante6 como el objetivo fundamental de esta
tesis el desarrollo de una herramienta que facilitara Ia programacion de aplicaciones
distribuidas, que funcionara bajo el entorno del sistema Operative MS-DOS y a Ia vez
fuera compatible con Ia plataforma ONC para establecer sesiones con las estaciones de
trabajo de SUN o cualquier otra estaci6n similar.
En las secciones 1.2 y 1.3 de este capitulo, se citan los antecedentes y conceptos
que enmarcan el desarrollo de las aplicaciones distribuidas y su entorno general, asi
como los motives que impulsaron a Ia elaboracion de esta tesis, para entonces explicar
el problema a nivel general y las consideraciones que se tomaron para el desarrollo de
una herramienta de este estilo. En Ia secci6n 1.4 se explican los resultados obtenidos,
1 Una plataforma para aplicaciones distribuidas Ia podemos definir como un conjunto de rut inas que proporcionan funciones
especificas para el desarrollo de aplicaciones que involucran el intercambio de informaciOn entre dos o mas entidades
distribuidas
2
Capitulo 1. lntroducci6n
los modules de programacion que comprende esta tesis y las herramientas que se
utilizaron para el desarrollo de Ia misma.
En el capitulo 2 se explican el modele RPG , productos comerciales que lo emplean y
el modele RPG de SUN . En el capitulo 3 se especifican las bibliotecas RPG y XDR
elaboradas para Ia creacion de aplicaciones distribuidas, posteriormente se definen Ia
generacion de stubs, encabezados y rutinas XDR. En el capi
Comentarios de: Tesis: Graciela Esparza - COMPILADOR DEL PROTOCOLO RPC PARA LA PROGRAMACION DE APLICACIONES DISTRIBUIDAS (0)
No hay comentarios