Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

RMI En java

como funcioan RMI
by

fabian penaloza

on 15 January 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of RMI En java

AUTORES:
Fabián Peñaloza
Wilson Monje
Martha Sapatanga
José Farfán
Jhonatan Ambrosi
Freddy Santacruz
Juan Carlos Lojano U
Fernando Sumba RMI EN JAVA CONTENIDO INTRODUCCION
OBJETIVOS
RMI
VENTAJAS RMI
OBJETIVOS RMI
CARACTERISTICAS RMI
COMUNICACION RMI
ARQUITECTURA RMI
SEGURIDAD RMI
DESARROLLO
CONCLUSIONES
BIBLIOGRAFIA INTRODUCCION La gran mayoría de los sistemas actuales requieren de procedimientos remotos, es decir, de varias computadoras distribuidas, que forman lo que es un sistema distribuido, el cual surge a partir de la necesidad que implica la comunicación y el deseo de compartir información y recursos a través de la red Las principales propiedades de seguridad proporcionadas por SSL son:
Comunicación segura basada en encriptación simétrica.
Autentificación y negociación basada en encriptación asimétrica.
Comunicación fiable basada en protocolos de integridad de mensajes. RMI nos proporciona una elegante y segura tecnología para crear nuestras aplicaciones distribuidas. Sin embargo, puede ser un gran inconveniente utilizar una implementación comercial de SSL por su coste. CONCLUSIONES Concurrencia.
Nombrado de objetos.  
Paso de parámetros.
En una invocación a un método de un objeto remoto puede contar con los siguientes parámetros:
Primitivos.
Serializados.
Objetos remotos.
Recolector de basura CARACTERISTICAS RMI: Transparencia de acceso
Transparencia de escalabilidad
Transparencia en la migración
Transparencia frente a fallos RMI Los sistemas distribuidos solucionan las necesidades de:
Repartir el volumen de información
Compartir recursos (Software/Hardware)

Para que un sistema se considere distribuido debe cumplir con ciertas características: http://www.ctr.unican.es/asignaturas/procodis_3_II/Doc/Procodis_7_01.pdf
http://repositorio.bib.upct.es/dspace/bitstream/10317/194/1/pfc1149.pdf
http://usuarios.multimania.es/manualesjava/manuales/rmi/rmi.pdf
http://www.infor.uva.es/~fdiaz/sd/doc/rmi.pdf
http://www.matematicas.unam.mx/jloa/rmi.pdf
http://arantxa.ii.uam.es/~dcamacho/POO/ejemplormi.pdf
http://profesores.elo.utfsm.cl/~agv/elo330/2s05/projects/CesarVasquez/sitio_web/que_es.html
http://www.programacion.com/articulo/rmi_mano_a_mano_con_ssl:_construyendo_aplicaciones_distribuidas_seguras_79
http://asteriscus.com/presentacion/RMI%20-%20Henry%20Tenorio.pdf BIBLIOGRAFIA Compilación de los ficheros fuente de Java y Generación de los stubs del cliente y de los skeletons del servidor.
Se supone que se está trabajando con la máquina infodep03 y se tienen los fuentes en el directorio /home/fdiaz/rmi
JavaRMI proporciona el compilador rmic que toma como entrada el .classgenerado a partir de la implementación de la interfaz remota, y genera el código de los stubs y del skeleton. PASO 4 Desarrollar el problema del cliente.
Para que el objeto cliente pueda invocar los métodos del servidor, el cliente debe buscar primero el nombre del servidor en el registro
El nombre del servidor se especifica mediante una URL: rmi://host:puerto/nombre
El puerto por defecto que asigna Java RMI es el 1099.
El nombre debe coincidir exactamente con el nombre lógico que utilice el servidor en el registro del objeto, en el ejemplo, el nombre es “SERVIDOR-EJEMPLO”.
Para obtener una referencia del objeto remoto es necesario hacer un casting a la interfaz remota definida en la invocación al método lookup() de la clase java.rmi.Naming.
La invocación al método remoto se hace como si fuera en local, pero utilizando la referencia del objeto remoto
  PASO 3 Desarrollar el objeto remoto mediante la implementación de la interfaz remota.
Es importante hacer notar que:
El servidor remoto se define (se deriva) a partir de la clase java.rmi.server.UnicastRemoteObject.
El servidor remoto debe implementar la interfaz remota definida en el Paso 1.
El servidor utilice un gestor de seguridad RMI propio para garantizar sus recursos durante el transcurso de la comunicación con el cliente. PASO 2 Definir la interfaz remota
Es importante fijarse que:  
La interfaz remota definida debe derivar de la interfaz Remote.
Los métodos declarados en la interfaz deben lanzar la excepción RemoteException PASO 1 Los pasos para desarrollar una aplicación RMI son los siguientes: DESARROLLO RMI extiende la filosofía de seguridad de JAVA a la hora de controlar la ejecución de las clases

El concepto de caja de arena, controla la descarga y funcionamiento de las clases provenientes de la red.

La propuesta de SUN para encriptar las comunicaciones RMI es SSL (Secure Socket Layer). SEGURIDAD RMI Entre los principales objetivos está el de proporcionar un middleware para el desarrollo de aplicaciones distribuida
Escalabilidad
Transparencia
Orientado a objetos
Facilidad
Mantenimiento
Seguridad OBJETIVOS DE RMI Costo reducido.
Escalabilidad.
Modularidad.
Disponibilidad. VENTAJAS DE RMI Conocer los conceptos básicos de RMI
Conocer las ventajas de RMI
Conocer las características de RMI
Conocer la comunicaciones de RMI
Conocer sobre la seguridad de RMI
Conocer los pasos para desarrollar una aplicación RMI OBJETIVOS La gran mayoría de los sistemas actuales requieren de procedimientos remotos, es decir, de varias computadoras distribuidas, que forman lo que es un sistema distribuido, el cual surge a partir de la necesidad que implica la comunicación y el deseo de compartir información y recursos a través de la red INTRODUCCION INTRODUCCION
OBJETIVOS
RMI
VENTAJAS RMI
OBJETIVOS RMI
CARACTERISTICAS RMI
COMUNICACION RMI
ARQUITECTURA RMI
SEGURIDAD RMI
DESARROLLO
CONCLUSIONES
BIBLIOGRAFIA CONTENIDO NOMBRES:
Wilson Monge
Fabián Peñaloza
Martha Sapatanga
José Farfán
Jhonatan Ambrosi
Freddy Santacruz
Juan Carlos Lojano U
Fernando Sumba. UNIVERSIDAD DE CUENCA RMI EN JAVA Inicio de los objetos servidores remotos y Ejecución del cliente.
Cuando el registro (binder) es iniciado, el servidor puede ser lanzado.
Derivado del modelo de seguridad granular en Java 2.0, se debe definir una política de seguridad para Java RMI estableciendo la propiedad java.security.policy a un fichero específico, por ejemplo, mijava.policy. PASO 5 El método main() de la clase servidora actúa como un cargador del objeto remoto
El servidor debe registrar su nombre ante la utilidad de cliente. El nombre utilizado, es un nombre lógico y no tiene que ver nada con el nombre de las clases, en el ejemplo “SERVIDOR-EJEMPLO”.
En el método main() del objeto servidor, se crea y se instala el gestor de seguridad RMI, un objeto de la clase RMISecurityManager, controla la descarga y ejecución de código en la maquina virtual Java (JVM) del servidor La arquitectura de RMI consta de tres capas:
La capa stub/skeleton.
La capa de referencia remota.
La capa de transporte. ARQUITECTURA El servidor debe, registrar su nombre en la utilidad de registro (RMI Registry).
El cliente debe buscar el nombre del servidor en la utilidad de registro con el fin de obtener una referencia del objeto remoto.
El stub (en el lado cliente) serializa los parámetros del método invocado y se los envía, vía red, al skeleton (en el lado servidor), invoca al método y devuelve el resultado al stub.
Un cliente invoca a un método remoto.
El stub es el responsable de “transmitir” la invocación remota hacia el skeleton que está en el lado del servidor.
El skeleton posee un método que recibe las llamadas remotas, desempaqueta los parámetros e invoca a la implementación real del objeto remoto. COMUNICACIÓN RMI Conocer los conceptos básicos de RMI
Conocer las ventajas de RMI
Conocer las características de RMI
Conocer la comunicaciones de RMI
Conocer sobre la seguridad de RMI
Conocer los pasos para desarrollar una aplicación RMI OBJETIVOS RMI Los sistemas distribuidos solucionan las necesidades de:
Repartir el volumen de información
Compartir recursos (Software/Hardware)

Para que un sistema se considere distribuido debe cumplir con ciertas características: Transparencia de acceso
Transparencia de escalabilidad
Transparencia en la migración
Transparencia frente a fallos Costo reducido.
Escalabilidad.
Modularidad.
Disponibilidad. VENTAJAS DE RMI Entre los principales objetivos está el de proporcionar un middleware para el desarrollo de aplicaciones distribuida
Escalabilidad
Transparencia
Orientado a objetos
Facilidad
Mantenimiento
Seguridad OBJETIVOS DE RMI Concurrencia.
Nombrado de objetos.  
Paso de parámetros.
En una invocación a un método de un objeto remoto puede contar con los siguientes parámetros:
Primitivos.
Serializados.
Objetos remotos.
Recolector de basura CARACTERISTICAS RMI: Estos Stubs y Skeletons permiten que al momento de ser invocada la función remota esta pueda ser "simulada localmente". En la comunicación de RMI participan tres procesos:
Registro de objetos remotos (RMI Registry)
Servidor
Cliente COMUNICACIÓN RMI El servidor debe, registrar su nombre en la utilidad de registro (RMI Registry).
El cliente debe buscar el nombre del servidor en la utilidad de registro con el fin de obtener una referencia del objeto remoto.
El stub (en el lado cliente) serializa los parámetros del método invocado y se los envía, vía red, al skeleton (en el lado servidor), invoca al método y devuelve el resultado al stub.
Un cliente invoca a un método remoto.
El stub es el responsable de “transmitir” la invocación remota hacia el skeleton que está en el lado del servidor.
El skeleton posee un método que recibe las llamadas remotas, desempaqueta los parámetros e invoca a la implementación real del objeto remoto. COMUNICACIÓN RMI La arquitectura de RMI consta de tres capas:
La capa stub/skeleton.
La capa de referencia remota.
La capa de transporte. ARQUITECTURA RMI extiende la filosofía de seguridad de JAVA a la hora de controlar la ejecución de las clases

El concepto de caja de arena, controla la descarga y funcionamiento de las clases provenientes de la red.

La propuesta de SUN para encriptar las comunicaciones RMI es SSL (Secure Socket Layer). SEGURIDAD RMI Las principales propiedades de seguridad proporcionadas por SSL son:
Comunicación segura basada en encriptación simétrica.
Autentificación y negociación basada en encriptación asimétrica.
Comunicación fiable basada en protocolos de integridad de mensajes. Los pasos para desarrollar una aplicación RMI son los siguientes: DESARROLLO PASO 3 Compilación de los ficheros fuente de Java y Generación de los stubs del cliente y de los skeletons del servidor.
Se supone que se está trabajando con la máquina infodep03 y se tienen los fuentes en el directorio /home/fdiaz/rmi
JavaRMI proporciona el compilador rmic que toma como entrada el .classgenerado a partir de la implementación de la interfaz remota, y genera el código de los stubs y del skeleton. PROGRAMACION AVANZADA
grupo 2
UNIVERSIDAD DE CUENCA Definir la interfaz remota
Es importante fijarse que:  
La interfaz remota definida debe derivar de la interfaz Remote.
Los métodos declarados en la interfaz deben lanzar la excepción RemoteException PASO 1 Desarrollar el objeto remoto mediante la implementación de la interfaz remota.
Es importante hacer notar que:
El servidor remoto se define (se deriva) a partir de la clase java.rmi.server.UnicastRemoteObject.
El servidor remoto debe implementar la interfaz remota definida en el Paso 1.
El servidor utilice un gestor de seguridad RMI propio para garantizar sus recursos durante el transcurso de la comunicación con el cliente. PASO 2 El método main() de la clase servidora actúa como un cargador del objeto remoto
El servidor debe registrar su nombre ante la utilidad de cliente. Desarrollar el problema del cliente.
Para que el objeto cliente pueda invocar los métodos del servidor, el cliente debe buscar primero el nombre del servidor en el registro
El puerto por defecto que asigna Java RMI es el 1099.
Para obtener una referencia del objeto remoto es necesario hacer un casting a la interfaz remota definida en la invocación al método lookup() de la clase java.rmi.Naming.
La invocación al método remoto se hace como si fuera en local, pero utilizando la referencia del objeto remoto PASO 3 Ejecución del problema.
Para su ejecución se puede realizar a partir desde una misma maquina, lo mas practico es probar con mas de 2 maquinas.
Primero se ejecuta el servidor.
Luego se ejecuta el cliente.
Entonces se tendrá acceso al objeto remoto. PASO 4 EJERCICION PROPUESTOS RMI nos proporciona una elegante y segura tecnología para crear nuestras aplicaciones distribuidas. Sin embargo, puede ser un gran inconveniente utilizar una implementación comercial de SSL por su coste. CONCLUSIONES http://www.ctr.unican.es/asignaturas/procodis_3_II/Doc/Procodis_7_01.pdf
http://repositorio.bib.upct.es/dspace/bitstream/10317/194/1/pfc1149.pdf
http://usuarios.multimania.es/manualesjava/manuales/rmi/rmi.pdf
http://www.infor.uva.es/~fdiaz/sd/doc/rmi.pdf
http://www.matematicas.unam.mx/jloa/rmi.pdf
http://arantxa.ii.uam.es/~dcamacho/POO/ejemplormi.pdf
http://profesores.elo.utfsm.cl/~agv/elo330/2s05/projects/CesarVasquez/sitio_web/que_es.html
http://www.programacion.com/articulo/rmi_mano_a_mano_con_ssl:_construyendo_aplicaciones_distribuidas_seguras_79
http://asteriscus.com/presentacion/RMI%20-%20Henry%20Tenorio.pdf BIBLIOGRAFIA
Full transcript