Académique Documents
Professionnel Documents
Culture Documents
Licenciatura en Computacin
Tema 3.
JULIO DE 2012
Maquina
Maquina
Las llamadas se hacen de forma transparente para las aplicaciones Para esto se requiere de STUBS o Suplente de cliente y servidor contenidos en libreras, y procesos de empaquetamiento y desempaquetamiento de los parmetros pasados en las llamadas y en el resultado.
Caractersticas de un RPC
1 La informacin se transporta de un lado al otro mediante paso de parmetros.
2 Se enva un resultado a travs de un procedimiento. 3 El procedimiento que hace la llamada y el que la recibe se ejecutan en mquinas
diferentes por lo que utilizan distintos espacios de direcciones de memoria.
Funcionamiento de un RPC
1
Un proceso
2
El proceso X enva el mensaje y espera el resultado
Un proceso Y ejecuta el procedimiento, obtiene el resultado, lo encapsula en un mensaje de respuesta y se enva al proceso x
Maquina B
X
realiza la llamada y empaqueta los argumentos en un mensaje
Maquina A
STUB Cliente
STUB Servidor
Ejemplo de un RPC
Realizar un procedimiento para sumar dos nmeros sumar (a, b)
Maquina A Maquina B
1
Inicia con la llamada Suma(3, 4)
8
Fin de la llamada Suma = 7
Resultado
2
STUB Cliente
3
Convierte la Entrada
7
Prepara Entrada
5
STUB Servidor
6
Convierte Salida
1 Elementos Bsicos 2 3
Transferencia de Parmetros.
Enlace dinmico.
Funciones:
Generar un procedimiento STUB del cliente para corresponder a cada procedimiento de la interfaz. Generar un proceso STUB del servidor. Generar las operaciones empaquetamiento marshalling y
desempaquetamiento unmarshalling en cada procedimiento STUB. Generar los procedimientos de servicio de la definicin de la interfaz
Hola.java
Cliente.java
package ejemplo.hola; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; public class Cliente { private Cliente() {}
2. Transferencia de Parmetros
La comunicacin con RPC en los sistemas distribuidos se da mediante transferencia de mensajes con paso de parmetros a travs de arquitecturas diferentes (hardware y software) lo que implica diferentes formatos de representacin de nmeros y caracteres.
2.Transferencia de Parmetros
Representacin de los Datos
Problema:
La maquina del cliente y la del servidor utilizan diferentes formas de representar nmeros y caracteres, por ejemplo:
Caracteres: EBCDIC vs. ASCII Nmeros: Big endian vs. Little endian
Solucin:
Los Suplentes se encargan de convertir las entradas y salidas en representaciones intermedias utilizando un estndar.
2. Transferencia de Parmetros
Uso de Punteros o Parmetros por Referencia
Problema:
al comunicarse mediante RCP en sistemas distribuidos utilizando punteros o parmetros por referencia se generan problemas de direccionamiento, sobre escritura, entre otros; ya no se comparte un mismo espacio de memoria (cada mquina trabaja con su memoria principal).
Solucin:
Prohibir el pase de parmetros por referencias en RPC. Copiar los datos reales en el mensaje (paso de parmetros por valor). Ir pasando los datos a medida que el servidor lo requiera. Solo se deben enviar datos, NO direcciones de memoria
2. Transferencia de Parmetros
Pase de parmetros de tipos definidos por el usuario
Problema:
al trabajar con tipos de datos definidos por el usuario se presentan problemas de incompatibilidad entre las mquinas que se comunican ya que no se trabaja bajo un estndar sino que es un tipo de datos definido por el programador.
Solucin:
Dividir sucesivamente las estructuras hasta alcanzar tipos de datos bsicos, fciles de reconocer por cualquier mquina.
3. Enlace Dinmico
Permite localizar a los servidores que ejecutan las llamadas a procedimientos remotos (RCP). Esta es una de las funciones del suplente (STUB) del cliente. Existe un servidor de nombres o enlazador dinmico donde cada servidor registra todos los procedimientos o servicios que ofrece junto con su direccin. Por ejemplo si se utiliza TCP/IP se registra: el protocolo, la direccin IP y el puerto que se encuentra escuchando. Si un cliente requiere ejecutar un RCP busca en el servidor de nombres la direccin del servidor que ofrece el servicio. El servidor de nombres enva al cliente la direccin del proceso del servidor que ofrece un determinado servicio. Mquina A
Servidor de Nombres
1 5egistrar Procedimiento 3
Direccin del servidor web
Servidor de Archivos
Mquina C
Servidor Web
Ejecutar Procedimiento
Mquina B
Isaac Mao