Pr - PowerPoint PPT Presentation

About This Presentation
Title:

Pr

Description:

JavaRMI utiliza una interfaz Java = s lo utilizable entre aplicaciones Java. ... Marshalling. Espera de resultados. Unmarshalling de valores de retorno o excepciones. ... – PowerPoint PPT presentation

Number of Views:37
Avg rating:3.0/5.0
Slides: 13
Provided by: hidalgosa
Category:

less

Transcript and Presenter's Notes

Title: Pr


1
Práctica II Java RMI
2
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
Práctica II Java RMI (II) introducción
  • Normalmente los sistemas RPC se declaran mediante
    IDL.
  • JavaRMI utiliza una interfaz Java gt 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
Práctica II Java RMI (III) diferencias
  • Diferencias con el modelo de objetos local Java
  • 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.
  • Los objetos remotos se pasan por referencia.
  • Los clientes han de tratar más excepciones que
    antes.

5
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
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
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
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
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
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
Práctica II Java RMI (X)compilación
  • Entorno
  • set CLASSPATHCLASSPATHltpracticasgt\examples\hel
    lo.
  • 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
Práctica II Java RMI (XI)ejecución
  • Arranque del rmiregistry
  • start
  • set CLASSPATH
  • rmiregistry ltpuertogt
  • Arranque del servidor
  • java -Djava.rmi.server.codebasefile///ltpathgt/
    -Djava.security.policyltpathgt\policy
    examples.hello.HelloImpl
  • Arranque del cliente
  • java -Djava.rmi.server.codebasefile///ltpathgt/
    -Djava.security.policyltpathgt\policy
    examples.hello.HelloClient lthostgt
Write a Comment
User Comments (0)
About PowerShow.com