La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sistemas Operativos Centralizados y Distribuidos Carlos David Zepeda.

Presentaciones similares


Presentación del tema: "Sistemas Operativos Centralizados y Distribuidos Carlos David Zepeda."— Transcripción de la presentación:

1 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: 1.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. 2.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. 3.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. 4.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: 1.El cliente se conecta al puerto de escucha del servidor. 2.El servidor acepta conexión entrante y crea un nuevo socket para gestionar esta única solicitud (… en caso de bootstraping …). 3.El antiguo puerto de escucha permanece así en espera de más clientes. 4.Comunicación cliente-servidor mediante el nuevo socket. 5.Intercambio de parámetros del método mediante un protocolo. Puede ser JRMP, CORBA, SOAP. 5.El método es ejecutado en el servidor y devuelto el valor de retorno vía stub. 6.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. o El objeto que realiza una llamada remota invoca el método en el stub “local”. o Implementa exactamente el mismo conjunto de interfaces remotas que el objeto remoto. o Pasos que realiza son: 1. Inicia una conexión con la JVM remota que contiene el objeto remoto. 2. Escribe (serializa) y transmite los parámetros a la JVM remota. 3. Espera los resultados de la invocación remota. 4. Lee (deserializa) los valores de retorno o excepciones devueltas. 5. Devuelve el valor al objeto que inicio la llamada. o Hace uso del rmic.

10 Skeleton: Es una representación local EN EL SERVIDOR del objeto remoto. o Es responsable de enviar la llamada a la implementación del objeto remoto. o Pasos que realiza son: 1. Lee (deserializa) los parámetros del método remoto. 2. Invoca al método en la implementación del objeto remoto. 3. Escribe (serializa) y transmite el resultado. o 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. o El contacto directo se tiene con el stub proporcionado por el objeto remoto. o Almacena internamente la etiqueta y el objeto stub en un hashmap. o Devuelve el stub al cliente que solicito el objeto remoto. o 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): //host:puerto/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 JVM’s 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_2aParte.pdf. www.lcc.uma.es/~pinto/apuntes/software%20de%20sistema s/Tema%204%20-%20Java%20RMI.pdf http://www.programacion.com/java/tutorial/rmi/ www.revista.unam.mx/vol.2/num1/art3/

16


Descargar ppt "Sistemas Operativos Centralizados y Distribuidos Carlos David Zepeda."

Presentaciones similares


Anuncios Google