SlideShare una empresa de Scribd logo
1 de 39
Ketnia Nataly Navarrete Méndez 
Stephany Guadalupe Contreras Bahena 
Daniel Alberto Peralta Guzmán 
Fernando Cano Gómez
 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).
 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.
 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.
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.
 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.
 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.
 Dota a clientes y servidores de una interfaz 
que les permite localizar objetos remotos 
para invocar sus métodos como si fueran 
locales.
 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.
 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.
 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.
Interface Descripción 
Remote La interface remota sirve 
para identificar interfaces 
cuyos métodos pueden 
ser invocados desde una 
máquina local o virtual.
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.
Java.lang.Object 
Java.rmi.server. 
RemoteObject 
Java.rmi.server. 
RemoteServer 
Java.rmi.sever.Uni 
castRemoteObject 
Mi objeto 
remoto 
Java.rmi.Remote 
Mi interface 
remota
 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.
 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.
 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.
 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.
 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.
 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.
 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.
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.
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.
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.
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.
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.

Más contenido relacionado

La actualidad más candente

259730295 unidad-1-contexto-de-la-programacion-cliente-servidor
259730295 unidad-1-contexto-de-la-programacion-cliente-servidor259730295 unidad-1-contexto-de-la-programacion-cliente-servidor
259730295 unidad-1-contexto-de-la-programacion-cliente-servidor
noysielm098
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de software
sergio
 
Introducción a SOA
Introducción a SOAIntroducción a SOA
Introducción a SOA
rdiegoc
 
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Universidad de Guadalajara
 
Actividad 5 seguridad informatica
Actividad 5 seguridad informaticaActividad 5 seguridad informatica
Actividad 5 seguridad informatica
JESSIKADG86
 
Informe v2.1 Base de Datos II - Proyecto TodoAutos : venta de carros del año
Informe v2.1  Base de Datos II - Proyecto TodoAutos : venta de carros del añoInforme v2.1  Base de Datos II - Proyecto TodoAutos : venta de carros del año
Informe v2.1 Base de Datos II - Proyecto TodoAutos : venta de carros del año
Juan Polo Cosme
 
Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rup
Xochitl Saucedo Muñoz
 
Seguridad en los sistemas de archivos
Seguridad en los sistemas de archivosSeguridad en los sistemas de archivos
Seguridad en los sistemas de archivos
ANDRES SALAZAR
 

La actualidad más candente (20)

259730295 unidad-1-contexto-de-la-programacion-cliente-servidor
259730295 unidad-1-contexto-de-la-programacion-cliente-servidor259730295 unidad-1-contexto-de-la-programacion-cliente-servidor
259730295 unidad-1-contexto-de-la-programacion-cliente-servidor
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de software
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Introducción a SOA
Introducción a SOAIntroducción a SOA
Introducción a SOA
 
Active Directory
Active DirectoryActive Directory
Active Directory
 
Comandos basicos en linux
Comandos basicos en linuxComandos basicos en linux
Comandos basicos en linux
 
Middleware
MiddlewareMiddleware
Middleware
 
Importancia de los Sistemas Cliente Servidor, su arquitectura y describir sus...
Importancia de los Sistemas Cliente Servidor, su arquitectura y describir sus...Importancia de los Sistemas Cliente Servidor, su arquitectura y describir sus...
Importancia de los Sistemas Cliente Servidor, su arquitectura y describir sus...
 
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
 
Actividad 5 seguridad informatica
Actividad 5 seguridad informaticaActividad 5 seguridad informatica
Actividad 5 seguridad informatica
 
diagrama de despliegue
diagrama de desplieguediagrama de despliegue
diagrama de despliegue
 
Cuadro comparativo s.o
Cuadro  comparativo s.oCuadro  comparativo s.o
Cuadro comparativo s.o
 
1. uml
1. uml1. uml
1. uml
 
Informe v2.1 Base de Datos II - Proyecto TodoAutos : venta de carros del año
Informe v2.1  Base de Datos II - Proyecto TodoAutos : venta de carros del añoInforme v2.1  Base de Datos II - Proyecto TodoAutos : venta de carros del año
Informe v2.1 Base de Datos II - Proyecto TodoAutos : venta de carros del año
 
Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rup
 
Arquitectura sql
Arquitectura sqlArquitectura sql
Arquitectura sql
 
Metodos ITIL, COBIT, BS15000
Metodos  ITIL, COBIT, BS15000Metodos  ITIL, COBIT, BS15000
Metodos ITIL, COBIT, BS15000
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Seguridad en los sistemas de archivos
Seguridad en los sistemas de archivosSeguridad en los sistemas de archivos
Seguridad en los sistemas de archivos
 
Pt7seccion2
Pt7seccion2Pt7seccion2
Pt7seccion2
 

Similar a Rmi remote method invocation (20)

Semana 13 sistemas distribuidos
Semana 13   sistemas distribuidosSemana 13   sistemas distribuidos
Semana 13 sistemas distribuidos
 
Rmi
RmiRmi
Rmi
 
RMI en java
RMI en javaRMI en java
RMI en java
 
11 ad java-rmi
11 ad java-rmi11 ad java-rmi
11 ad java-rmi
 
Tema RMI en java e invocación utilizando
Tema RMI en java e invocación utilizandoTema RMI en java e invocación utilizando
Tema RMI en java e invocación utilizando
 
Java Rmi
Java  RmiJava  Rmi
Java Rmi
 
Java Rmi[1]
Java  Rmi[1]Java  Rmi[1]
Java Rmi[1]
 
Comunicación distribuida
Comunicación distribuidaComunicación distribuida
Comunicación distribuida
 
Comunicación distribuida
Comunicación distribuidaComunicación distribuida
Comunicación distribuida
 
COMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDACOMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDA
 
Estructura d capas rmi
Estructura d capas rmiEstructura d capas rmi
Estructura d capas rmi
 
RMI
RMIRMI
RMI
 
Java Rmi
Java RmiJava Rmi
Java Rmi
 
algorimo distribuidos
algorimo distribuidosalgorimo distribuidos
algorimo distribuidos
 
RMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
RMI_Concepto_Elementos_Funciones_Ventajas_DesventajasRMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
RMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
 
Remote Procedure Call (RPC)
Remote Procedure Call (RPC)Remote Procedure Call (RPC)
Remote Procedure Call (RPC)
 
Ejemplosencillocon rmi
Ejemplosencillocon rmiEjemplosencillocon rmi
Ejemplosencillocon rmi
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
RPC
RPCRPC
RPC
 
Actividad ...... 16
Actividad ...... 16Actividad ...... 16
Actividad ...... 16
 

Último

ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
DavidRojas870673
 
INFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdfINFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdf
octaviosalazar18
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
andersonsubero28
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 

Último (20)

Mecatronica Automotriz .pdf
Mecatronica Automotriz              .pdfMecatronica Automotriz              .pdf
Mecatronica Automotriz .pdf
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
 
INFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdfINFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdf
 
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
 
Video sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxVideo sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptx
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 

Rmi remote method invocation

  • 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.
  • 17.
  • 18. Java.lang.Object Java.rmi.server. RemoteObject Java.rmi.server. RemoteServer Java.rmi.sever.Uni castRemoteObject Mi objeto remoto Java.rmi.Remote Mi interface remota
  • 19.
  • 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.