Vous êtes sur la page 1sur 3

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 mtodos, debe ser implementada por toda clase remota para que sus mtodos sean accesibles. Si no es as, Java no la reconocer como tal. Mediante una instancia de la clase MarshalledObject se puede manejar el flujo de bytes serializados de un objeto. Sus mtodos son usados internamente por RMI. La clase Naming proporciona mtodos para obtener y almacenar referencias de los objetos remotos mediante URLs. Sus mtodos ms habituales son:

public static void bind(String name, Remote object) throws AlreadyBoundException,MalformedURLException,RemoteExceptio n public static void rebind(String name, Remote object) throws RemoteException, MalformedURLException public static void lookup(String name) throws NotBoundException,MalformedURLException,RemoteException

El mtodo bind() asocia un nombre a un objeto remoto mediante una URL, es decir, lo registra. En consecuencia, ese nombre se utiliza para localizar el objeto. Las URL's son de la forma: rmi://host:port/remote_object_name Si la especificacin dada en la URL no es correcta, se producir una excepcin del tipo MalformedURLException. El host y el puerto son opcionales, de manera que si no se incluyen se toma el host local y el puerto por defecto asociados al servicio de registro RMI. El cdigo que registra un objeto remoto en el rmiregistry, tpicamente, tiene la forma siguiente:
myClass myInstance=new myClass(); Naming.bind("rmi://host:port/name,myInstance");

Este cdigo registra una instancia de la clase myClass en el rmiregistry mediante la URL especificada.

La diferencia entre rebind() y bind() 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 ocasionara una excepcin del tipo AlreadyBoundException. Por otro lado, el mtodo lookup() devuelve una referencia al objeto remoto especificado en la URL. De esta forma un proceso local puede determinar qu host est proporcionando el servicio buscado y dnde se ubica el objeto remoto. Esta referencia remota se obtiene en forma de stub, de manera que se podrn abrir conexiones hacia el host y puerto que especifica el stub y llamar a los mtodos remotos del objeto. Una llamada tpica a lookup() sera de la forma:
myClass myInstance= (myClass)Naming.lookup("rmi://host:port/remote_object_name");

Por ltimo, la clase RMISecurityManager proporciona un gestor de seguridad para las aplicaciones que utilizan cdigo descargado desde un servidor.
java.rmi El paquete java.rmi proporciona la interfaz Remote y las clases MarshalledObject , Naming y RMISecurityManager , as como unas cuantasexcepciones.La interfaz Remote carece de mtodos. Toda clase remota debe implementarla ;en caso contrario, Java no la considera como tal.La clase MarshalledObject apareci por primera vez en el JDK 1.2. Unainstancia de ella contiene el flujo de bytes serializado de un objeto. Sus mtodos sonutilizados internamente por la RMI.La clase Naming incluye mtodos para obtener y almacenar referencias a objetosremotos mediante el URL de la RMI. Los mtodos ms usados son

public static voidbind(String nombre,Remote objeto) throws AlreadyBoundException,MalformedURLException, RemoteExceptionBinds public static voidrebind(String nombre, Remoteobjeto) throws RemoteException, MalformedURLException public static Remotelookup(String nombre) throwsNotBoundException, MalformedURLException,RemoteException. El mtodo bind() asocia un nombre a un objeto remoto mediante un URL de laRMI (lo registra); as, ese nombre podr usarse para localizar el objeto remoto. Todoslos argumentos nombre de los mtodos de Naming deben ser Strings con la formade los URL de la RMI. http://www.ooscarr.com/nerd/elblog/2008/11/ejemplo-oficial-de-hola-mundo-conrmi.php

Vous aimerez peut-être aussi