Unidad 3 Rmi Act de Aprendizaje
Unidad 3 Rmi Act de Aprendizaje
Tabla de contenido
RMI (REMOTE METHOD INVOCATION) ...................................................................... 1
3.1 Características y Estructura de RMI. ............................................................................. 2
3.2 El API java RMI. ........................................................................................................... 3
3.3. Jerarquía de objetos RMI.
......................................................................................... 5
3.4. El Sistema de Nombrado Registry.
............................................................................ 5
3.5. Desarrollo de Aplicaciones Distribuidas. ..................................................................... 5
3.6. Paso de parámetros a través de la red. ....................................................................... 6
HAY 3 MECANISMOS BÁSICOS .................................................................................................... 6
1) TIPOS PRIMITIVOS: SE PASAN POR VALOR (COPIA). TODOS SON SERIALIZABLES. ....................... 6
2) OBJETOS REMOTOS: SE PASAN POR REFERENCIA (TALONES, USADOS PARA INVOCAR MÉTODOS
REMOTOS). ........................................................................................................................... 6
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. .............................................................. 6
3.7. Callbacks (Resguardos). .............................................................................................. 6
......................................................................................................................................... 7
bibliografía ........................................................................................................................ 9
RMI (REMOTE METHOD INVOCATION)
Definición
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.
=Características=
=Invocación=
=Skeleton y Stub=
Dota a clientes y servidores de una interfaz que les permite localizar objetos remotos para
invocar sus métodos como si fueran locales.
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.
=Definición=
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.
=Características=
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.
=Conceptos=
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.
3.3. Jerarquía de objetos RMI.
3.4. El Sistema de Nombrado Registry.
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.
3.5. Desarrollo de Aplicaciones Distribuidas.
ü 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.
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
Ø EL 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.
¿CÓMO SE EJECUTA ?
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.
bibliografía
https://es.slideshare.net/VERONICAPONCE5/rmi-remote-method-invocation-41837337
http://laurel.datsi.fi.upm.es/_media/docencia/asignaturas/sod/comunicacion_parte4-1pp.pdf