Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROCEDIMIENTOS
REMOTOS
FACULTAD DE INGENIERÍA
INGENIERÍA DE SISTEMAS
UNT
UNIVERSIDAD NACIONAL DE
TRUJILLO
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA DE SISTEMAS
CURSO:
SISTEMAS DISTRIBUIDOS.
DOCENTE:
TORRES VILLANUEVA, MARCELINO.
CICLO:
VIII
ESTUDIANTES:
TRUJILLO – PERÚ
2020
ÍNDICE
1. HISTORIA ...................................................................................................................... 1
2. TERMINOLOGÍA .................................................................................................... 2
3. CARACTERÍSTICAS ..................................................................................................... 2
9. COMPUTACIÓN RPC.................................................................................................. 16
CONCLUSIONES ............................................................................................................... 21
REFERENCIAS .................................................................................................................. 22
LLAMADAS A PROCEDIMIENTOS REMOTOS (RPC)
1. HISTORIA
Una de las primeras implementaciones prácticas fue en 1982 por Brian Randell y
sus colegas para su Conexión Newcastle entre máquinas UNIX. Esto fue seguido
pronto por "Lupin" de Andrew Birrell y Bruce Nelson en el ambiente Cedar en
Xerox PARC. Lupin generó automáticamente stubs, proporcionando enlaces de
tipo seguro y usó un protocolo eficiente para la comunicación. Uno de los primeros
usos comerciales de RPC fue realizado por Xerox con el nombre "Courier" en 1981.
La primera implementación popular de RPC en Unix fue RPC de Sun (ahora
llamado ONC RPC), utilizado como base para Network File System (NFS).
1
1991) y la invocación remota de métodos Java. Las RMI, a su vez, perdieron
popularidad con el auge de Internet, especialmente en la década de 2000.
Hoy en día la tendencia es a utilizar XML como lenguaje de descripción del interfaz
(define de qué manera se muestra la información que define los procedimientos y
los datos que estos pueden necesitar o devolver) y HTTP como protocolo de red,
dando lugar a lo que se han venido en denominar servicios web, como ejemplos
de estos cabe citar SOAP o XML-RPC.
2. TERMINOLOGÍA
3. CARACTERÍSTICAS
2
a los sockets usados previamente y que requerían una gran atención por parte del
programador.
En teoría, cualquier protocolo antiguo puede funcionar si obtiene los bits del
núcleo del cliente y los lleva al núcleo del servidor; pero en la práctica hay que
tomar decisiones importantes en este punto, decisiones que pueden tener un
fuerte impacto en el desempeño. La primera decisión está entre un protocolo
orientado a la conexión o un protocolo sin conexión. En el primer caso, al
momento en que el cliente se conecta con el servidor, se establece una
conexión entre ellos. Todo el tráfico, en ambas direcciones, utiliza esta
conexión.
3
La segunda opción principal está en utilizar un protocolo de propósito general
o alguno diseñado de forma específica para RPC. Puesto que no existen
estándares en esta área, el uso de un protocolo RPC adaptado quiere decir por
lo general que cada quien diseñe el suyo. Algunos sistemas distribuidos
utilizan IP (o UDP, integrado a IP) como el protocolo básico.
4
4.3. MODO DE OPERACIÓN DEL RPC
5
Figura 2. Pseudocódigo de funcionamiento.
6
5. VENTAJAS Y DESVENTAJAS
5.1. VENTAJAS
7
5.2. DESVENTAJAS
Debido a todas estas posibles causas de error, hay que dominar la semántica
especial de los errores de la RPC, lo que vuelve la programación
relativamente más compleja. Los desarrolladores deben lidiar con los
aspectos relacionados con la seguridad de los sistemas distribuidos y su
comunicación a través de RPC y UDP/IP o TCP/IP –seguridad de red, piratería,
ataques de denegación de servicio, etc.
8
pueden no ser idénticas, la transferencia de parámetros y resultados puede
complicarse. Ambas computadoras pueden descomponerse.
6. MODELOS DE RPC
9
7. PROTOCOLO RPC CON FALLO
El objetivo de RPC es ocultar la comunicación al hacer que las llamadas a
procedimientos remotos se parezcan a las llamadas locales, el problema se presenta
cuando aparecen los errores, ya que las diferencias entre las llamadas locales y
remotas no son tan fáciles de encubrir.
Se considerarán las siguientes situaciones:
10
Pérdida de Mensajes de Respuesta
La pérdida de respuestas genera mayores problemas que la pérdida de
solicitudes.Se utiliza un cronómetro:
11
Figura 4. Fallos del servidor.
Exterminación:
○ Se crea un registro que indica lo que va a hacer el resguardo del cliente
antes de que emita la RPC.
○ El registro se mantiene en disco.
○ Luego del re arranque se verifica el contenido del registro y se elimina el
huérfano explícitamente.
○ La desventaja es la sobrecarga en e/s generada por la grabación previa
a cada RPC.
○ Fallaría si los huérfanos generan RPC, creando huérfanos de huérfanos:
➔ Sería imposible localizarlos.
➔ Ante ciertos fallos en la red sería imposible eliminarlos, aunque se
los localice.
13
Reencarnación:
○ Resuelve los problemas anteriores sin necesidad de escribir registros en
disco.
○ Consiste en dividir el tiempo en épocas numeradas de manera
secuencial.
○ Cuando un cliente rearranca envía un mensaje a todas las máquinas
declarando el inicio de una nueva época.
○ Al recibir estos mensajes se eliminan todos los cómputos remotos.
○ Si se divide la red mediante particiones por fallas, podrían sobrevivir
ciertos huérfanos:
➔ Cuando se reconecten y vuelvan a reportarse sus respuestas
contendrán un número de época obsoleto y se los podrá detectar y
eliminar.
Expiración:
○ A cada RPC se le asigna una cantidad estándar de tiempo “t” para que
realice su trabajo.
○ Si el tiempo es insuficiente debe pedir explícitamente otro quantum,
pero esto es un inconveniente.
○ Si luego del fallo el servidor espera “t” antes de re arrancar, todos los
huérfanos habrán desaparecido.
○ El problema es elegir un “t” razonable, ya que pueden existir RPC con
requisitos diversos.
14
Pudiera ser: El método se puede ejecutar una vez o ninguna. No se aplican
mecanismos de tolerancia a fallos. Se utiliza cuando pueden perderse invocaciones
o cuando una invocación retrasada (repetida) es inutil.
○ En algunas aplicaciones con restricciones tiempo real en redes de elevada
latencia, un mensaje repetido es inutil (p.e. Voz sobre IP).
○ Las semánticas pudiera ser se implementan sin ACKs.
○ CORBA permite este tipo de semántica.
Al menos una vez: El método se ejecuta una o más veces. Se aplican mecanismos
de tolerancia a fallos que evitan fallos de omisión. Se utiliza cuando una invocación
puede repetirse varias veces sin afectar el funcionamiento de la aplicación.
○ Decimos que una operación es idempotente cuando puede realizarse
repetidas veces con el mismo efecto que si hubiera sido realizada una sola
vez.
○ Cuando una aplicación distribuida puede realizarse exclusivamente a
través de invocaciones idempotentes, se puede utilizar esta semántica para
su implementación.
○ Hay operaciones que pueden realizarse de forma idempotente o no
idempotente dependiendo del diseño.
No idempotente: (RPC) Incrementa en 10 el saldo.
Idempotente: (RPC) Lee el saldo + (Local) incrementa en 10 el saldo
+ (RPC) escribe el nuevo saldo.
Sun RPC proporciona esta semántica.
Como máximo una vez: El método se ejecuta una vez o ninguna. Se aplican
mecanismos de tolerancia a fallos que evitan fallos de omisión y evitan la
repetición de ejecuciones. El invocante recibe un resultado, en cuyo caso sabe que
el método se ejecutó exactamente una vez, o una excepción que le informa de que
no se recibió el resultado, en cuyo caso el método pudo ejecutarse o no.
○ La mayoría de los entornos RPC implementan este tipo de semántica.
○ Es la que se aproxima más a la semántica LPC.
○ No requiere operaciones idempotentes.
○ Java RMI, CORBA y el DSA de Ada implementan esta semántica.
15
9. COMPUTACIÓN RPC
Esquema de funcionamiento
16
Los skeleton (esqueleto, esquema) en el lado del servidor.
○ Su papel es el de hacer que la invocación RPC sea transparente para el
servidor.
○ El skeleton y el servidor se enlazan en tiempo de compilación.
○ Se comporta como un “objeto local” que llama al servidor.
○ Se ocupa de la representación de los datos en los mensajes (aplanamiento,
desaplanamiento)
○ Hay un skeleton por cada procedimiento remoto que el servidor exporta.
Servicio de localización
En un sistema distribuido con invocaciones RPC, el “enlazado” entre el
cliente y el servidor se realiza en tiempo de ejecucion.
El servidor y el cliente pueden estar en diferentes nodos de una red (que
pueden cambiar)
Es necesario disponer de un servicio que permita “localizar” al servidor.
Procedimiento:
○ El servidor se registra en un servicio de directorio al arrancar.
○ El cliente busca en el directorio para localizar al servidor apropiado
○ La asociación cliente/servidor puede realizarse de varios modos.
17
En la práctica, la mayor parte de los entornos RPC garantizan alguna
forma de semántica como mucho una vez.
2. Argumentos:
Limitación en el tamaño: la mayorıa de los entornos RPC limitan el
tamaño de sus argumentos
Argumentos complejos: por ejemplo los punteros, la dirección local no
tiene sentido en proceso remoto(Derreferenciaciom, tiene un elevado
costo). La mayoría de los entornos RPC limitan el tipo de sus
argumentos
18
Compiladores de interfaces: Generan los stubs y los skeletons, mientras
que la descripción del interfaz puede realizarse de forma implícita con el
lenguaje de programación (el entorno solo soporta ese lenguaje) y de forma
explícita a través de un IDL (el entorno puede soportar varios lenguajes de
programación).
Servicios para gestionar: Servicio de directorio, sincronización de relojes
y los eventos.
Herramientas para visualizar el estado del sistema y gestionar
servidores de aplicaciones.
19
DCOM: Son las siglas de Distributed Component Object Model, esta es una
tecnología propietaria de Microsoft que extiende los componentes de su
tecnología COM de manera que permite la ejecución de software
distribuido en varios equipos que se comunican entre sí.
o El principal problema que presenta DCOM para nuestros intereses es el que
es una tecnología propietaria de Microsoft y que solo funciona sobre
equipos que ejecuten Windows.
DSA: El entorno RPC para el lenguaje de programación Ada.
Java RMI: Entorno orientado a objetos del lenguaje de programación Java.
DCE: Distributed Computing Environment desarrollado entre 1987 y
1989.Fue el primer entorno de calidad comercial en implementar las ideas
relativas al RPC.
Opciones de Rendimiento
20
CONCLUSIONES
21
REFERENCIAS
22