Sunteți pe pagina 1din 39

RMI

(Java Remote Method


Invocation)
Ketnia Nataly Navarrete Mndez
Stephany Guadalupe Contreras Bahena
Daniel Alberto Peralta Guzmn
Fernando Cano Gmez

Temas
3.1.
3.2.
3.3.
3.4.
3.5.
3.6.
3.7.

Caractersticas y Estructura de RMI


El API Java RMI.
Jerarqua de objetos RMI.
El Sistema de Nombrado Registry.
Desarrollo de Aplicaciones Distribuidas.
Paso de parmetros a travs de la red.
Callbacks (Resguardos).

Definicin

Es un mecanismo ofrecido por Java para


invocar un mtodo de manera remota.

Forma parte del entorno estndar de


ejecucin de Java y proporciona un
mecanismo simple para la comunicacin de
servidores en aplicaciones distribuidas
basadas exclusivamente en Java.

Caractersticas y
estructura de RMI

Caractersticas
Facilidad de uso en la programacin por
estar especficamente diseado para JAVA.
Proporciona paso de objetos por referencia.
Recoleccin de basura distribuida.
Paso de tipos arbitrarios.

Invocacin
1)
2)

3)

4)

Encapsulado de los parmetros.


Invocacin del mtodo (del cliente con el
servidor). El invocador se queda
esperando una respuesta.
Al terminar la ejecucin, el servidor
serializa el valor de retorno y lo enva al
cliente.
El cdigo cliente recibe la respuesta y
contina como si la invocacin hubiera
sido local.

Arquitectura
Puede verse como un modelo de cuatro
capas.
Primera Capa: es la de aplicacin y
corresponde con la implementacin real de
las aplicaciones cliente y servidor.
Segunda Capa: es la que interacta
directamente con la capa de aplicacin. Se
encuentran las llamadas a objetos remotos
y acciones junto con sus parmetros y
retornos de objetos.

Arquitectura II
Tercera Capa: es la de referencia remota,
y es responsable del manejo de la parte
semntica de las invocaciones remotas. Es
responsable de la replicacin 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 mquina a otra.

Arquitectura de RMI

Skeleton y Stub

Dota a clientes y servidores de una interfaz


que les permite localizar objetos remotos
para invocar sus mtodos como si fueran
locales.

El API java RMI

API de Java

Es una interfaz de programacin 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.

Interfaces y Clases RMI

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.

Interfaces y Clases RMI (2)


Java.rmi.dgc: Contiene Clases, Interfaces
y Excepciones para la recoleccin de
basura.
Java.rmi.activation: Contiene Clases,
Interfaces y Excepciones para la activacin
de objetos remotos.

API java.rmi
Interface

Descripcin

Remote

La interface remota
sirve para identificar
interfaces cuyos
mtodos pueden ser
invocados desde una
mquina local o virtual.

API java.rmi (2)


Clase

Descripcin

MarshalledObject<T>

Un MarshallObject contiene un
byte con una representacin
serializada de un objeto dado por
el constructor.

Naming

La clase Naming proporciona


mtodos para almacenamiento y
obtener referencias de objetos
remotos en un objeto remoto
registrado.

RMISecurityManager

Una subclase de SecurityManager


usada por aplicaciones RMI que
usa cdigo descargado.

Jerarqua de objetos
RMI

Java.lang.Objec
t

Java.rmi.Remot
e

Java.rmi.server.
RemoteObject

Java.rmi.server.
RemoteServer
Java.rmi.sever.Un
icastRemoteObje
ct

Mi objeto
remoto

Mi interface
remota

Sistema de
Nombrado Registry

Definicin
Es un servidor simple que permite que una
aplicacin vea los objetos lo cuales estn
siendo importados por un RMI.
Una vez que se tiene un objeto que est
siendo exportado por un servidor que utiliza
mtodos de RMI, la comunicacin es
entonces como una simple llamada a
mtodos de un objeto que puede existir en
una mquina diferente.

Caractersticas
Este setup requiere algunos parmetros de
localizacin de los objetos remotos.
Es fcil llamar a objetos remotos si se tiene
su ubicacin.
Una vez que el objeto ha sido localizado,
usarlo de manera remota es relativamente
fcil.
Para poder inicializar objetos remotos, hay
que utilizar los servicios de registry.

Desarrollo de
Aplicaciones
Distribuidas

Componentes de aplicaciones
distribuidas
Clientes: Conducen el flujo de la aplicacin.
Localizan e invocan mtodos ofertados como
remotos por los servidores.
Servidores: Conjunto de objetos de ofrecen
interfaces remotas pblicas cuyos mtodos
pueden ser invocados por clientes de
cualquier procesador de la plataforma.
Registro: Servicio esttico que se establece
en cada nudo, en el que se registran los
servidores con un nombre, y donde los
clientes los localizan.

Componentes de aplicaciones
distribuidas

Conceptos

Objeto remoto:
Objeto cuyos mtodos pueden invocarse desde
otras mquinas virtuales.
Descrito por una o ms interfaces Remotas en las
que se declaran los mtodos que pueden ser
invocados por objetos desde otras mquinas
virtuales.

Invocacin a mtodos remotos:


Accin de invocar un mtodo de una interfaz
remota en un objeto remoto.
Tiene la misma sintaxis de un mtodo local.

Paso de Parmetros a
travs de la Red

Paso de parmetros a mtodos


remotos
Hay 3 mecanismos bsicos
1) Tipos primitivos: se pasan por valor
(copia). Todos son serializables.
2) Objetos Remotos: Se pasan por
referencia (talones, usados para invocar
mtodos remotos).
3) Objetos locales: Se pasan por valor (slo
si son serializables), se crea un nuevo
objeto en la mquina virtual que recibe la
copia.

Callbacks

Callbacks en RMI

El cliente inscribe un objeto remoto para


recibir una invocacin remota.
Al ocurrir cierto evento, el servidor realiza una
devolucin a cada cliente interesado.

Interacciones clienteservidor

Despliegue

Interfaz de callback
El servidor ofrece un mtodo remoto para que el
cliente registre sus callbacks
Hay que disear una interfaz remota para el
callback
La interfaz debe incluir un mtodo 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 mtodo remoto del cliente en
caso de aparecer el evento indicado.

Diagrama de eventos para la


aplicacin hello

Cmo se ejecuta?

Pasos
1)

2)

3)

Se ejecuta el servidor de registro RMI,


rmiregistry, en la mquina que contendr
al objeto servidor.
Se crea un objeto en el servidor, se
exporta, y se registra en el servicio
rmiregistry con un nombre. (ser crea
instancia skeleton).
Se crea el objeto cliente, que llamar a un
mtodo de la interfaz del objeto remoto.

Pasos (II)
4)

5)

6)

El servidor de registro enva al proceso cliente


una referencia remota al objeto (stub).Este stub
contiene la direccin IP del host donde reside el
objeto remoto, el numero de puerto de escucha y
el ID del objeto.
El stub serializa los argumentos y enva a la capa
de referencias remotas una peticin de conexin.
La capa de referencias remotas indica a la capa
de transporte que necesita abrir una conexin
para enviarle el flujo de datos resultante del paso
anterior.

Pasos (III)
7)

8)

9)

10)

La capa de transporte crea un socket de


cliente para enviar dicho flujo.
En el host remoto los datos llegan a la
capa de transporte y el socket servidor
asociado los lee.
La capa de referencias remotas pasa los
datos al skeleton.
El skeleton extrae del flujo de datos
serializado los objetos incluidos y pasa la
llamada al objeto remoto.

Pasos (IV)
11)

12)

13)

El objeto remoto ejecuta el mtodo invocado


con los argumentos proporcionados y, si
corresponde devuelve un valor al objeto
skeleton.
El skeleton enva una peticin de conexin a
la capa de referencias remotas y delega en
ella el envo de la respuesta.
La capa de referencias remotas serializa la
respuesta y enva el flujo de bytes resultante
a la capa de transporte indicndole que
necesita conexin.

Pasos (V)
14)

15)

16)

17)

La capa de transporte remota abre un


socket de cliente y enva la respuesta al
host local.
sta llega a la capa de transporte del host
local y all un socket servidor lo transmite
a la capa de referencias remotas.
La capa de referencias remotas extra la
informacin serializada y la enva al stub.
El stub enva el valor devuelto al objeto
local.

S-ar putea să vă placă și