La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Práctica II: Java RMI. Sistemas Distribuidos - Nebrija - Justo Hidalgo2 Práctica II: Java RMI (I): introducción 1.Localización de objetos remotos. 2.Comunicación.

Presentaciones similares


Presentación del tema: "Práctica II: Java RMI. Sistemas Distribuidos - Nebrija - Justo Hidalgo2 Práctica II: Java RMI (I): introducción 1.Localización de objetos remotos. 2.Comunicación."— Transcripción de la presentación:

1 Práctica II: Java RMI

2 Sistemas Distribuidos - Nebrija - Justo Hidalgo2 Práctica II: Java RMI (I): introducción 1.Localización de objetos remotos. 2.Comunicación con objetos remotos. 3.Carga de código móvil.

3 Sistemas Distribuidos - Nebrija - Justo Hidalgo3 Práctica II: Java RMI (II): introducción Normalmente los sistemas RPC se declaran mediante IDL. JavaRMI utiliza una interfaz Java => sólo utilizable entre aplicaciones Java. Necesidades de las aplicaciones distribuidas: –Localización de objetos remotos: Rmiregistry ó Paso de objetos como referencias remotas, ó Servicio de nombrado CORBA, en RMI/IIOP. –Comunicación con objetos remotos. JavaRMI se ocupa de que la interacción entre objetos sea como invocaciones locales. –Carga de los bytecodes de los objetos que se pasan como parámetros o valores de retorno.

4 Sistemas Distribuidos - Nebrija - Justo Hidalgo4 Práctica II: Java RMI (III): diferencias –Los clientes de los objetos remotos tratan sólo con interfaces remotas, no con la implementación. –Los argumentos no remotos se pasan siempre por copia, no por referencia. Diferencias con el modelo de objetos local Java: –Los objetos remotos se pasan por referencia. –Los clientes han de tratar más excepciones que antes.

5 Sistemas Distribuidos - Nebrija - Justo Hidalgo5 Práctica II: Java RMI (IV): interfaz java.rmi.Remote Interfaz que declara un conjunto de métodos que pueden invocarse desde una JVM remota. Una interfaz remota debe extender la interfaz java.rmi.Remote. Un método remoto: –Debe incluir la excepción java.rmi.RemoteException (o superclases). Ejemplo: –public interface BankAccount extends java.rmi.Remote { public void deposit(float amount) throws java.rmi.RemoteException; public void withdraw(float amount) throws OverdrawnException, java.rmi.RemoteException; public float getBalance() throws java.rmi.RemoteException; }

6 Sistemas Distribuidos - Nebrija - Justo Hidalgo6 Práctica II: Java RMI (V): clase RemoteObject Parte servidora; tres subclases: –Java.rmi.Server.RemoteObject: implementaciones para los métodos de Object: hashCode, equals, toString. –Java.rmi.server.UnicastRemoteObject: define un objeto remoto Singleton cuyas referencias son sólo válidas mientras el proceso esté vivo. –Java.rmi.server.Activatable: abstracta que define un objeto remoto activable on request.

7 Sistemas Distribuidos - Nebrija - Justo Hidalgo7 Práctica II: Java RMI (VI): localización Un cliente necesita referencia al objeto remoto que quiere invocar. La referencia se almacena en un servicio de registro (rmiregistry) mediante la convención de java.rmi.Naming: –Look up. –Bind. –Rebind. –Unbind.

8 Sistemas Distribuidos - Nebrija - Justo Hidalgo8 Práctica II: Java RMI (VII): stubs & skeletons Stub: proxy en la parte cliente para el objeto remoto. –El cliente invoca el stub, que es quien se conecta con la parte servidora: Conexión con JVM remota. Marshalling. Espera de resultados. Unmarshalling de valores de retorno o excepciones. Devolución de resultado a la aplicación cliente. Skeleton: no necesario en Java2 Platform.Ejerce de dispatcher.

9 Sistemas Distribuidos - Nebrija - Justo Hidalgo9 Práctica II: Java RMI (VIII): garbage collection Borrado automático de objetos remotos cuando no son referenciados por ningún cliente. RMI se basa en Network Object de Modula- 3. Cuando hay una nueva referencia: count++ Especialización de Leasing.

10 Sistemas Distribuidos - Nebrija - Justo Hidalgo10 Práctica II: Java RMI (IX): ejemplo Creación de la interfaz remota Java Implementación de la interfaz remota. –Main: Gestor de seguridad. Creación de instancia del objeto remoto. Registro del objeto. Implementación de la aplicación cliente.

11 Sistemas Distribuidos - Nebrija - Justo Hidalgo11 Práctica II: Java RMI (X): compilación Entorno: –set CLASSPATH=%CLASSPATH%; \example s\hello;. Compilación de las fuentes. –javac Hello.java HelloImpl.java HelloClient.java Generación de stubs/skeletons. –rmic examples.hello.HelloImpl –Genera: HelloImpl_Stub.class HelloImpl_Skel.class //opcional.

12 Sistemas Distribuidos - Nebrija - Justo Hidalgo12 Práctica II: Java RMI (XI): ejecución Arranque del rmiregistry: –start –set CLASSPATH= –rmiregistry Arranque del servidor: –java -Djava.rmi.server.codebase=file:/// / - Djava.security.policy= \policy examples.hello.HelloImpl Arranque del cliente: –java -Djava.rmi.server.codebase=file:/// / - Djava.security.policy= \policy examples.hello.HelloClient


Descargar ppt "Práctica II: Java RMI. Sistemas Distribuidos - Nebrija - Justo Hidalgo2 Práctica II: Java RMI (I): introducción 1.Localización de objetos remotos. 2.Comunicación."

Presentaciones similares


Anuncios Google