Diapositiva 1 - PowerPoint PPT Presentation

About This Presentation
Title:

Diapositiva 1

Description:

Sistemas Operativos Centralizados y Distribuidos Carlos David Zepeda Definici n. Remote Method Invocation. Exclusivo de Java *. Mecanismo/sistema que permite que un ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 17
Provided by: Window1145
Category:

less

Transcript and Presenter's Notes

Title: Diapositiva 1


1
RMI
Sistemas Operativos Centralizados y
Distribuidos Carlos David Zepeda
2
Definición.
  • Remote Method Invocation.
  • Exclusivo de Java .
  • Mecanismo/sistema que permite que un objeto
    ejecutándose en un JVM llame a métodos de otro
    objeto que esta en una JVM diferente.
  • Para plataformas diferentes se necesitaría SOAP o
    CORBA.
  • RMI proporciona el mecanismo para transferir
    información entre procesos de diferentes máquinas.

3
Estructura.
  • Formado básicamente por 2 programas remotos
  • Servidor. Crea objetos remotos. Referencia a
    ellos. Espera por la solicitud de los clientes.
  • Cliente. Obtiene referencia a los objetos
    remotos. Ejecuta sus métodos.
  • Mecanismo general de comunicación
  • Localización de objetos. 2 maneras rmiregitry o
    paso de objetos en parámetros o valores de
    retorno de funciones.
  • Comunicación con objetos remotos. Control por
    parte de RMI. Transparencia para el programador
    del cliente.
  • Carga de bytecodes (código intermedio). Descarga
    del código del objeto y transferencia de sus
    datos.

4
Una aplicación...
  • Pasos en los que se observa el desarrollo de una
    aplicación distribuida RMI
  • Se inicia el servidor y registra sus objetos y
    métodos a invocarse en un servicio de
    nombramiento. Asocia un nombre con el objeto
    remoto.
  • Se inicia el cliente y localiza los objetos y/o
    métodos a invocar de manera remota en el
    directorio de nombres del servidor obteniendo la
    referencia al objeto.
  • El cliente invoca a los métodos remotos mediante
    la referencia al objeto obtenida. Espera por
    respuesta.
  • Marshalling (reconocimiento) de los parámetros
    Serialización.
  • Invocación del método en el servidor.
  • Termina la ejecución del método en el servidor y
    se regresa el valor de retorno serializado al
    cliente.

5
Esquema de funcionamiento.
6
Funcionamiento a nivel sockets.
  1. El servidor escucha un puerto.
  2. El servidor conoce la máquina y puerto de
    eschucha del servidor mediante el stub.
  3. El cliente invoca la función del stub.
  4. El stub se conecta al puerto del servidor y envía
    los parámetros de la siguiente manera
  5. El cliente se conecta al puerto de escucha del
    servidor.
  6. El servidor acepta conexión entrante y crea un
    nuevo socket para gestionar esta única solicitud
    ( en caso de bootstraping ).
  7. El antiguo puerto de escucha permanece así en
    espera de más clientes.
  8. Comunicación cliente-servidor mediante el nuevo
    socket.
  9. Intercambio de parámetros del método mediante un
    protocolo. Puede ser JRMP, CORBA, SOAP.
  10. El método es ejecutado en el servidor y devuelto
    el valor de retorno vía stub.
  11. El stub devuelve el resultado al cliente como una
    llamada a método local.

7
Especificación de RMI (en Java).
  • Interfaces, objetos y métodos remotos.
  • Interfaces remotas
  • Heredan de java.rmi.Remote
  • Lanzan excepción java.rmi.RemoteException.
  • Objetos y métodos remotos.
  • Heredan de java.rmi.server.UnicastRemoteObject ó
  • Heredan de java.rmi.server.Activatable.
  • Paso de parámetros en RMI.
  • Paso de objetos remotos.
  • Paso de objetos locales.
  • Transmisión de datos.

8
Diagrama de interfaces y clases de objetos.
9
RMI Stub y Skeleton.
  • STUB Es una representación local EN EL CLIENTE
    del objeto remoto.
  • El objeto que realiza una llamada remota invoca
    el método en el stub local.
  • Implementa exactamente el mismo conjunto de
    interfaces remotas que el objeto remoto.
  • Pasos que realiza son
  • Inicia una conexión con la JVM remota que
    contiene el objeto remoto.
  • Escribe (serializa) y transmite los parámetros a
    la JVM remota.
  • Espera los resultados de la invocación remota.
  • Lee (deserializa) los valores de retorno o
    excepciones devueltas.
  • Devuelve el valor al objeto que inicio la
    llamada.
  • Hace uso del rmic.

10
  • Skeleton Es una representación local EN EL
    SERVIDOR del objeto remoto.
  • Es responsable de enviar la llamada a la
    implementación del objeto remoto.
  • Pasos que realiza son
  • Lee (deserializa) los parámetros del método
    remoto.
  • Invoca al método en la implementación del objeto
    remoto.
  • Escribe (serializa) y transmite el resultado.
  • A partir del JDK 1.2 (versión de Java 2) se ha
    introducido un protocolo stub adicional que
    elimina la necesidad del uso de los esqueletos.

11
Registro de objetos remotos.
  • RMIRegistry Se ejecuta en el servidor y es un
    objeto remoto con un puerto conocido. Relaciona
    el objeto remoto con un nombre.
  • El contacto directo se tiene con el stub
    proporcionado por el objeto remoto.
  • Almacena internamente la etiqueta y el objeto
    stub en un hashmap.
  • Devuelve el stub al cliente que solicito el
    objeto remoto.
  • En caso de no hacer uso de este ejecutable de
    Java se encuentran la interfaz Registry y la
    clase LocateRegistry (con sus métodos
    createRegustry y getRegistry).

12
Localización de objetos remotos.
  • Se realiza utilizando la clase java.rmi.Naming.
  • Esta clase construye un objeto stub y lo
    asocia al objeto remoto del registro.
  • Maneja principalmente dos parámetros para la
    mayoria de sus métodos primordiales
  • cadena que nombra al objeto (URL)
  • //hostpuerto/nombre.
  • Stub del objeto remoto.
  • Hace uso de los siguientes métodos
  • bind y rebind.
  • lookup.
  • unbind.
  • list.

13
Creación de una aplicación distribuida.
  1. Diseño e implementación de las componentes
    (interfaz, servidor, cliente).
  2. Compilar las fuentes y generar los stubs.
  3. Hacer accesibles las clases a la red.
  4. Iniciar la aplicación (registro y cliente -
    servidor).

14
Metas del sistema RMI de Java.
  • Proporcionar invocación remota de objetos que se
    encuentran en JVMs diferentes.
  • Integrar el modelo de objetos distribuidos en
    Java de forma natural.
  • Intentar simplificar al máximo la escritura de
    aplicaciones distribuidas.
  • Preservar la seguridad proporcionada por Java.
  • Proporcionar varias semánticas para las
    referencias de los objetos remotos (persistentes,
    no persistentes y de "activación retardada" ).

15
Bibliografía.
  • www.fcharte.com/Default.asp?glosario.
  • Díaz Pérez, Arturo Remote Method Invocation.
    CINVESTAV IPN.
  • arcos.inf.uc3m.es/dad/import/2005-2006/Tema2_2aP
    arte.pdf.
  • www.lcc.uma.es/pinto/apuntes/software20de20sis
    temas/Tema20420-20Java20RMI.pdf
  • http//www.programacion.com/java/tutorial/rmi/
  • www.revista.unam.mx/vol.2/num1/art3/

16
... Gracias ...
Write a Comment
User Comments (0)
About PowerShow.com