1. Ketnia Nataly Navarrete Méndez
Stephany Guadalupe Contreras Bahena
Daniel Alberto Peralta Guzmán
Fernando Cano Gómez
2. 3.1. Características y Estructura de RMI
3.2. El API Java RMI.
3.3. Jerarquía de objetos RMI.
3.4. El Sistema de Nombrado Registry.
3.5. Desarrollo de Aplicaciones Distribuidas.
3.6. Paso de parámetros a través de la red.
3.7. Callbacks (Resguardos).
3. Es un mecanismo ofrecido por Java para
invocar un método de manera remota.
Forma parte del entorno estándar de
ejecución de Java y proporciona un
mecanismo simple para la comunicación de
servidores en aplicaciones distribuidas
basadas exclusivamente en Java.
4.
5. Facilidad de uso en la programación por
estar específicamente diseñado para JAVA.
Proporciona paso de objetos por referencia.
Recolección de basura distribuida.
Paso de tipos arbitrarios.
6. 1) Encapsulado de los parámetros.
2) Invocación del método (del cliente con el
servidor). El invocador se queda esperando
una respuesta.
3) Al terminar la ejecución, el servidor serializa
el valor de retorno y lo envía al cliente.
4) El código cliente recibe la respuesta y
continúa como si la invocación hubiera sido
local.
7. Puede verse como un modelo de cuatro
capas.
Primera Capa: es la de aplicación y
corresponde con la implementación real de
las aplicaciones cliente y servidor.
Segunda Capa: es la que interactúa
directamente con la capa de aplicación. Se
encuentran las llamadas a objetos remotos y
acciones junto con sus parámetros y retornos
de objetos.
8. Tercera Capa: es la de referencia remota, y es
responsable del manejo de la parte semántica
de las invocaciones remotas. Es responsable
de la replicación de objetos.
Cuarta Capa: es la de transporte; es la
responsable de realizar las conexiones
necesarias y manejo del transporte de los
datos de una máquina a otra.
9.
10. Dota a clientes y servidores de una interfaz
que les permite localizar objetos remotos
para invocar sus métodos como si fueran
locales.
11.
12. Es una interfaz de programación de
aplicaciones provistas por los creadores del
lenguaje java, y que da a los programadores
los medios para desarrollar aplicaciones Java.
LA API de Java provee un conjunto de clases
utilitarias para efectuar toda clase de tareas
dentro de un programa.
13. Implementa 5 paquetes.
Java.rmi: contiene Clases, Interfaces y
Excepciones vistas por los clientes.
Java.rmi.server: Contiene clases, Interfaces y
Excepciones vistas por los servidores.
Java.rmi.registry: Contiene Clases, Interfaces
y Excepciones útiles para localizar y registrar
objetos remotos.
14. Java.rmi.dgc: Contiene Clases, Interfaces y
Excepciones para la recolección de basura.
Java.rmi.activation: Contiene Clases,
Interfaces y Excepciones para la activación de
objetos remotos.
15. Interface Descripción
Remote La interface remota sirve
para identificar interfaces
cuyos métodos pueden
ser invocados desde una
máquina local o virtual.
16. Clase Descripción
MarshalledObject<T> Un MarshallObject contiene un
byte con una representación
serializada de un objeto dado por
el constructor.
Naming La clase Naming proporciona
métodos para almacenamiento y
obtener referencias de objetos
remotos en un objeto remoto
registrado.
RMISecurityManager Una subclase de SecurityManager
usada por aplicaciones RMI que
usa código descargado.
20. Es un servidor simple que permite que una
aplicación vea los objetos lo cuales están
siendo importados por un RMI.
Una vez que se tiene un objeto que está
siendo exportado por un servidor que utiliza
métodos de RMI, la comunicación es entonces
como una simple llamada a métodos de un
objeto que puede existir en una máquina
diferente.
21. Este setup requiere algunos parámetros de
localización de los objetos remotos.
Es fácil llamar a objetos remotos si se tiene
su ubicación.
Una vez que el objeto ha sido localizado,
usarlo de manera remota es relativamente
fácil.
Para poder inicializar objetos remotos, hay
que utilizar los servicios de registry.
22.
23. Clientes: Conducen el flujo de la aplicación.
Localizan e invocan métodos ofertados como
remotos por los servidores.
Servidores: Conjunto de objetos de ofrecen
interfaces remotas públicas cuyos métodos
pueden ser invocados por clientes de
cualquier procesador de la plataforma.
Registro: Servicio estático que se establece en
cada nudo, en el que se registran los
servidores con un nombre, y donde los
clientes los localizan.
24.
25. Objeto remoto:
◦ Objeto cuyos métodos pueden invocarse desde
otras máquinas virtuales.
◦ Descrito por una o más interfaces Remotas en las
que se declaran los métodos que pueden ser
invocados por objetos desde otras máquinas
virtuales.
Invocación a métodos remotos:
◦ Acción de invocar un método de una interfaz
remota en un objeto remoto.
◦ Tiene la misma sintaxis de un método local.
26.
27. Hay 3 mecanismos básicos
1) Tipos primitivos: se pasan por valor (copia).
Todos son serializables.
2) Objetos Remotos: Se pasan por referencia
(talones, usados para invocar métodos
remotos).
3) Objetos locales: Se pasan por valor (sólo si
son serializables), se crea un nuevo objeto
en la máquina virtual que recibe la copia.
28.
29. El cliente inscribe un objeto remoto para
recibir una invocación remota.
◦ Al ocurrir cierto evento, el servidor realiza una
devolución a cada cliente interesado.
30.
31.
32. El servidor ofrece un método remoto para que el
cliente registre sus callbacks
Hay que diseñar una interfaz remota para el
callback
La interfaz debe incluir un método que será
invocado en el callbakc desde el servidor
E cliente deberá ser una subclase de
RemoteObject e implementará la interfaz de
callback
El cliente se registrará frente la clase remota
para ser rellamado.
El servidor invoca el método remoto del cliente
en caso de aparecer el evento indicado.
33.
34.
35. 1) Se ejecuta el servidor de registro RMI,
rmiregistry, en la máquina que contendrá al
objeto servidor.
2) Se crea un objeto en el servidor, se exporta,
y se registra en el servicio rmiregistry con
un nombre. (ser crea instancia skeleton).
3) Se crea el objeto cliente, que llamará a un
método de la interfaz del objeto remoto.
36. 4) El servidor de registro envía al proceso cliente
una referencia remota al objeto (stub).Este stub
contiene la dirección IP del host donde reside el
objeto remoto, el numero de puerto de escucha
y el ID del objeto.
5) El stub serializa los argumentos y envía a la
capa de referencias remotas una petición de
conexión.
6) La capa de referencias remotas indica a la capa
de transporte que necesita abrir una conexión
para enviarle el flujo de datos resultante del
paso anterior.
37. 7) La capa de transporte crea un socket de
cliente para enviar dicho flujo.
8) En el host remoto los datos llegan a la capa
de transporte y el socket servidor asociado
los lee.
9) La capa de referencias remotas pasa los
datos al skeleton.
10) El skeleton extrae del flujo de datos
serializado los objetos incluidos y pasa la
llamada al objeto remoto.
38. 11) El objeto remoto ejecuta el método
invocado con los argumentos
proporcionados y, si corresponde devuelve
un valor al objeto skeleton.
12) El skeleton envía una petición de conexión a
la capa de referencias remotas y delega en
ella el envío de la respuesta.
13) La capa de referencias remotas serializa la
respuesta y envía el flujo de bytes
resultante a la capa de transporte
indicándole que necesita conexión.
39. 14) La capa de transporte remota abre un
socket de cliente y envía la respuesta al host
local.
15) Ésta llega a la capa de transporte del host
local y allí un socket servidor lo transmite a
la capa de referencias remotas.
16) La capa de referencias remotas extraé la
información serializada y la envía al stub.
17) El stub envía el valor devuelto al objeto
local.