Práctica de laboratoro de la asignatura Sistemas Distribuidos, Uned. Pequeño programa en Java RMI implementando callbacks.Descripción completa
java rmiDescripción completa
METHOT INVOQUETION MODEL
Descripción completa
Full description
Descripción: asd
Descripción completa
Java Remote Method Invocation.
Guia_2 Sistemas DistribuidosDescripción completa
Descripción completa
Descripción completa
Descrição: Apostila de Segurança em Sistemas Distribuídos - Curso de Sistemas de Informação
Descripción: Desarrollo para Sistemas Distribuidos
Breve descripción sobre sistemas distribuidos, definición y características.Descripción completa
Descripción: Este libro se ha estructurado de forma que cualquier persona interesada en aspectos de programación concurrente y sistemas distribuidos pueda obtener provecho de su lectura. Este libro pretende, p...
Descripción completa
aa
Descrição: Apostila de apoio para a disciplina de Sistemas Distribuidos com conteudos relacionados ao desenvolvimento de aplicações distribuidas.
Descripción: Tipos de Sistemas Distribuidos
+
Ja J ava RMI Sistemas Distribuidos Rodrigo Santamaría
Jav ava a + J • •
RMI
RMI Java Ja va RMI
2
+
3
RMI
!
Remote Method Invocation: middleware para que un objeto que se ejecuta en una JVM use métodos de otro objeto que se ejecuta en otra JVM (local o remota) !
Sin embargo, muchas implementaciones de RMI no lo soportan o requieren reconfiguraciones del registro
14
+
Java RMI Servidor y Stub /** * Servidor de bolsa que implementa Corredor * Debe implementar una interfaz de java.rmi.Remote * */ Bolsa Corredor { String listarTitulos() RemoteException {...} comprar(String nombre, cantidad) RemoteException; {...} vender(String nombre, cantidad) RemoteException; {...} //Cualquier otra función interna que sea necesaria }
//Registramos un objeto Bolsa de nombre “LaBolsa” String nombre="LaBolsa"; Corredor motor= Bolsa(); Corredor stub=(Corredor) UnicastRemoteObject.exportObject (motor,0); Registry registro=LocateRegistry.getRegistry (); registro. (nombre,stub);
15
+
Java RMI Stub: registro "
Para poder registrar el stub al nombre de servicio, debe estar activado el registro RMI ( rmiregistry )
"
Tres maneras: !
Desde un terminal con rmiregistry [port]
!
Desde java con Runtime. getRuntime ().exec("rmiregistry");
!
Desde java con LocateRegistry. createRegistry (int port);
!
Cuidado: no iniciar un registro si ya hay otro corriendo
16
+
Java RMI Stub: registro "
Dos modos de asociar un stub a un registro desde Java: "
"
Mediante java.rmi.registry.Registry "
Registry registro=LocateRegistry.getRegistry ();
"
registro.
(nombre,stub);
Mediante java.rmi.Naming "
Naming.rebind(nombre, stub)
17
+
Java RMI Cliente Cliente { main(String args[]) { { String nombre="LaBolsa"; //Instanciar el registro RMI //Instanciar un objeto de la clase del servidor
} (Exception e) { System.err .println("Excepción en el cliente de la bolsa:" ); e.printStackTrace(); } } }
18
+
Java RMI Cliente: búsqueda "
Dos modos de buscar el stub de un servicio: "
"
Mediante java.rmi.registry.Registry "
Registry registro=LocateRegistry.getRegistry ();
"
registro.lookup(nombre);
Mediante java.rmi.Naming "
Naming.lookup(nombre)
19
+
Java RMI Gestor de seguridad Si nuestra interfaz contiene métodos que requieren como argumentos o devuelven clases distintas del API de Java, hay que implementar un gestor de seguridad
!
!
!
Para evitar intrusiones de código maligno
Para activar el gestor: (System.getSecurityManager ()== ) System.setSecurityManager ( SecurityManager());
!
Podemos modificar la política de seguridad de Java con un fichero de permisos con líneas como: grant{ permission java.security.AllPermission; };
Y especificar el fichero con la opción de la JVM !