seminario rmi

19

Upload: cristhianmarcelo

Post on 08-Jul-2015

283 views

Category:

Documents


0 download

TRANSCRIPT

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 1/19

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 2/19

` Un poco de Historia

` Que es RMI

` Objetivos de RMI

`  Arquitectura

` Receta para crear una Aplicación RMI

` Un Ejemplo de Aplicación

` Seguridad

` Ventajas y Desventajas

` Conclusiones` Preguntas

` Referencias

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 3/19

Remontándonos varios años atrás todos los sistemas distribuidos

se desarrollaban a base en sockets (forma primitiva), una de las

deficiencias de este mismo es que no brindaban gran funcionalidada la hora de desarrollar (mas esfuerzo de centraba en le desarrollo

de la implementación que en la solución del problema), a la par de

esta situación surge los RPCs una de las primeras tecnologías que

aparecen, posteriormente RMI que ofrece un nivel mas alto a la

hora de solucionar problemas

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 4/19

RMI ("Remote Method Invocation") es el mecanismo ofrecido por 

Sun Microsystems en Java que permite a un procedimiento

(método, clase, aplicación) poder ser invocado remotamente. Una

de las ventajas al diseñar un procedimiento con RMI es

interoperabilidad, ya que RMI forma parte de todo JDK, por ende,

cualquier plataforma que tenga acceso a un JDK también tendrá

acceso a estos procedimientos, esto a diferencia del clásico

CORBA que requiere de otros criterios.

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 5/19

� Permitir invocación remota de métodos en objetos que residen en

diferentes Máquinas Virtuales

� Permitir invocación de métodos remotos por Applets

� Integrar el Modelo de Objetos Distribuidos al lenguaje Java de

modo natural y preservando en lo posible la semántica de objetos

en Java

� Permitir la distinción entre objetos locales y remotos

� Permitir diferentes semánticas en las referencias a objetos remotos:

no persistentes (vivas), persistentes, de activación lenta.

� Facilitar el desarrollo de aplicaciones distribuidas

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 6/19

` Capa de Aplicación. objetos que

implementan la aplicación. Aca se

distinguen dos tipos de agentes:

los clientes, servidores

`

Capa de Representantes (Proxy).En esta capa se encuentran los

objetos que actúan como

representantes locales de los

objetos remotos. Se encargan del

empaquetado y desempaquetado

de las invocaciones, argumentos yresultados de métodos remotos,

conocidos como stubs y

skeletons

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 7/19

` Capa de Referencias Remotas. En esta capa se realiza la

interpretación de las referencias a objetos remotos, las referencias

locales a stubs o skeletons se resuelven a sus contrapartes

remotas y estos datos, junto con los datos "empaquetados"

(marshalled) que contienen las invocaciones o los resultados de

invocaciones, se pasan a la Capa de Transporte.

` Capa de Transporte. En esta capa se encuentra el protocolo de

comunicación, que se encarga de dirigir los mensajes que

intercambian los distintos objetos. RMI utiliza por defecto el

protocolo TCP/IP.

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 8/19

El objeto stub encapsula al objeto remoto, es algo así como el"mensajero" del objeto remoto. Tiene una identificación del objetoremoto a utilizar y además su interfaz (métodos que son invocados, losparámetros y el tipo de retorno). El stub recibe la llamada al objetoremoto y a continuación:Envía (marshalling) los parámetros codificadosen un bloque de bytes al objeto remoto.

Son recibidos por el método remoto. Este método realiza su servicio(hace un cálculo, devuelve un resultado, etc.). El resultado codificado(o la excepción) lo recibe el stub.

Nota: para versiones anteriores a 1.2 era preciso tener objetosskeleton, que eran el homólogo de los stub, pero en el lado delservidor. Salvo cuando hagamos referencia a rmic, obviaremos laexistencia de skeletons.

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 9/19

Modelo de Compilación de RMI Modelo de comunicación RMI

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 10/19

� Crear la interfaz remota (InterfazReceptor Mensajes.java)

� La interfaz remota va a ser utilizada tanto por el cliente como por el servidor 

� Implementar la interfaz remota en el servidor (RMIFrameServidor.java)

� Contiene los métodos que se ejecutarán a través de RMI

� Puede contener estado y evolucionar a través de las llamadas RMI

� Debe ³conectarse´ al RMI runtime de alguna manera (UnicastRemoteObject)

� Implementar el cliente (RMIFrameCliente.java)

� Recupera una(s) instancia(s) de los objetos RMI a través de sus interfaces

� Lo hace utilizando el nombre único con el que se registran en el rmiregistry 

� Utiliza los métodos RMI definidos en la interfaz de manera transparente

� Lanza el rmiregistry 

� Lanza el servidor 

� Lanza el cliente

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 11/19

Creando el interface InterfazReceptor Mensajes.java

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 12/19

Creando el interface RMIFrameServidor.java

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 13/19

Creando la clase RMIServidor.java

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 14/19

Creando la clase RMIFrameCliente.java

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 15/19

Deben existir diversos criterios de Seguridad

para permitir la ejecución de estos

 procedimientos remotos ya que pueden estar 

sujetos a un ambiente hostil, por el hecho deencontrarse en Red.

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 16/19

Ventajas- Forma parte del estándar del lenguaje Java-  Aprovecha las ventajas del lenguaje Java

- Los detalles de comunicación son transparentes para el programador - Permite el desarrollo rápido y fácil de objetos distribuidos-

Es REALMENTE facil de usar si ya se conoce JAVA.

- Portable a traves de plataformas con soporte JAVA.

Desventajas

- No permite la fácil integración con sistemas heredados- No es rápido

-Tiene algunas limitaciones debido a su estrecha integración con Java;la principal de ellas es que esta tecnología no permite la interaccióncon aplicaciones escritas en otro lenguaje.

-  A veces, no es tan intuitivo

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 17/19

Luego de investigar y realizar pruebas con RMI, podemos

indicar que:

Cuando los sistemas distribuidos residen en diferentes host

y/o cuando se quiere alivianar la carga del servidor losmétodos de invocación remota RMI, son una buena alternativa

a la solución de problemas en sistemas distribuidos

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 18/19

Que«?

Como«?

Cual«?

5/9/2018 SEMINARIO RMI - slidepdf.com

http://slidepdf.com/reader/full/seminario-rmi 19/19

� http://java.sun.com/

� http://www.programacion.net

� http://www.revista.unam.mx/

� http://www.programacion.com/articulos/poo/� http://www.chuidiang.com/chuwiki/index.php?title=Categor%C3%AD

a:Java:RMI

� http://www.programacion.com/java/tutorial/rmi/

� http://www.chuidiang.com/java/rmi/rmi.php

� http://www.proactiva-calidad.com/java/rmi/