Subido por Yessenia Huerta

Jerarquía de objetos RMI

Anuncio
3.3 JERARQUÍA DE
OBJETOS RMI
Clase Object
■ La clase Object, como ya se ha indicado anteriormente, es la clase raíz de todo el
árbol de la jerarquía de clases Java, y proporciona un cierto número de métodos de
utilidad general que pueden utilizar todos los objetos. ... Un método para convertir
un objeto a una cadena.
Objeto remoto
■ El sistema RMI (Java Remote Method Invocation) es un mecanismo que permite a
un objeto en una máquina virtual Java llamar a métodos de objetos en otra
máquina virtual Java. ... El registro devuelve al llamador una referencia (llamada
stub [esqueleto]) al objeto remoto.
java.lang.Object
■ Objeto de clase es la raíz de la jerarquía de clases. Cada clase tiene el objeto como
una superclase. Todos los objetos, incluidas las matrices, implementan los métodos
de esta clase.
El paquete java.rmi
■ Este paquete proporciona la interfaz Remote y las clases MarshalledObject, Naming
y RmiSecurityManager, junto con una serie de excepciones.
■ La interfaz Remote, que carece de métodos, debe ser implementada por toda clase
remota para que sus métodos sean accesibles. Si no es asi, Java no la reconocerá
como tal.
■ Mediante una instancia de la clase MarshaliedObject se puede manejar el flujo de
bytes serializados de un objeto. Sus métodos son usados internamente por RMI.
La clase Naming proporciona métodos para obtener y
almacenar referencias de los objetos remotos mediante URLs.
Sus métodos mss habituales son:
■ .public static void bind(String name, Remote object) throws
■ AireadyBoundException,MalformedURLException,RemoteExceptic .public static void
rebind(String name,
■ Remote object) throws RemoteException, MalformedURLException
■ .public static void lookup(String name) throws
■ NotBoundException,MalformedURLException,RemoteException.
El código que registra un objeto remoto en el
rmiregistry, típicamente, tiene la forma siguiente:
■ Este código registra una instancia de la clase myClass en el rmiregistry mediante la
URL especificada.
■ La diferencia entre rebindO y bindO radica en el hecho de que el primero permite
asociar un nuevo nombre a un objeto ya registrado, cambiando el actual, mientras
que el segundo ocasionaría una excepción del tipo:
AlreadyBoundException.
Paquete java.rmi.registry Descripción
■ Proporciona una clase y dos interfaces para el registro RMI.
■ Cuando un objeto quiere invocar un método en un objeto remoto, primero debe
buscar el objeto remoto usando su nombre. El registro devuelve al objeto llamante
una referencia al objeto remoto, mediante el cual se puede invocar un método
remoto.
Registry
■ Es una interfaz remota para un simple registro de objetos remotos que proporciona
métodos para almacenar y recuperar referencias de objetos remotos enlazados con
nombres de cadenas arbitrarios.
■ Las bind, unbindy rebind los métodos se utilizan para alterar las vinculaciones de
nombres en el registro, y las lookupy listlos métodos se utilizan para consultar las
vinculaciones de nombres actuales.
RegistryHandler
■ Es una interfaz utilizada internamente por el tiempo de ejecución de RMI en
versiones de implementación anteriores.
LocateRegistry
■ Se utiliza para obtener una referencia a un registro de objetos remotos de arranque
en un host particular (incluido el host local), o para crear un registro de objetos
remotos que acepte llamadas en un puerto específico.
Paquete java.rmi.server
Este paquete proporciona una serie de clases y excepciones para el lado servidor de las
aplicaciones RMI
Algunas de sus clases principales son:
■ Clase de ObjlD.- identificadores de objetos que los host declaran como remotos ,
proporciona métodos para la creación de los mismos lectura de estos desde flujos
de bytes e inserción en ellos
■ Estos identificadores son los propios de un objeto remoto en una referencia remota.
■ Clase RemoteObject: implementa la clase java.lang.object(clase raíz de todas las clases
java).
■ Clase RemoteServer: hereda de Remoteobject. Es la clase raíz de la que se heredan
todas las implementaciones de objetos cuyos métodos son accesibles remotamente y
proporciona la semántica básica para el manejo de referencias remotas.
■ Clase RemoteStub: hereda de RemoteObject. Es la clase raíz de la que heredan todos
los Stubs de los clientes.
Clase RMI ClassLoader:
■ Se incluyen los métodos para cargar clases desde una ubicación de red (una o más
URL) y obtener la ubicación desde la cual las partes remotas deben cargar una
clase existente. El tiempo de ejecución de RMI utiliza estos métodos al ordenar y
agrupar las clases contenidas en los argumentos y valores de retorno de las
llamadas a métodos remotos.
Clase RMI SocketFactory:
■ Es la a instancia utilizada por el tiempo de ejecución de RMI para obtener sockets
de cliente y servidor para llamadas RMI. Una aplicación puede usar el método
setSocketFactory para solicitar que el tiempo de ejecución de RMI use su instancia
de fábrica de sockets en lugar de la implementación predeterminada.
Clase UnicastRemoteObject:
■ Se utiliza para exportar un objeto remoto con JRMP y obtener un código auxiliar que
se comunica con el objeto remoto. Los apéndices se generan en tiempo de
ejecución utilizando objetos de proxy dinámico, o se generan de forma estática en el
momento de la compilación, normalmente utilizando la herramienta rmic
Interfaz
Interfaz RMIServerSocketFactory
■ Usada por RMI para obtener sokets servidores para las llamadas RMI.
Interfaz ServerRef
■ Extiende la interfaz RemoteRef y es implementada por los objetos remotos para
poder acceder a sus objetos RemoteStub.
Interfaz Unreferenced
■ Usada para que los objetos remotos puedan recibir mensajes de aviso cuando no
existan mas clientes con referencia a ellos.
El paquete java.rmi.actvation
■ Permite activas remotamente objetos, desactivarlos cuando ya no se trabaje con
ellos y reactivarlos cuando sea necesario.
■ Entre activación y desactivación conservan su estado.
Descargar