Java LanguageInvocación de método remoto (RMI)


Observaciones

RMI requiere 3 componentes: cliente, servidor y una interfaz remota compartida. La interfaz remota compartida define el contrato cliente-servidor especificando los métodos que debe implementar un servidor. La interfaz debe ser visible para el servidor para que pueda implementar los métodos; la interfaz debe ser visible para el cliente para que sepa qué métodos ("servicios") proporciona el servidor.
Cualquier objeto que implemente una interfaz remota está destinado a asumir el rol de un servidor. Como tal, una relación cliente-servidor en la que el servidor también puede invocar métodos en el cliente es, de hecho, una relación servidor-servidor. Esto se denomina devolución de llamada ya que el servidor puede devolver la llamada al "cliente". Teniendo esto en cuenta, es aceptable utilizar el cliente de designación para los servidores que funcionan como tales.

La interfaz remota compartida es cualquier interfaz que se extiende a Remote . Un objeto que funciona como un servidor experimenta lo siguiente:

  1. Implementa la interfaz remota compartida, ya sea explícita o implícitamente al extender UnicastRemoteObject que implementa Remote .
  2. Se exporta, ya sea de forma implícita si extiende UnicastRemoteObject , o explícitamente se pasa a UnicastRemoteObject#exportObject .
  3. Enlazado en un registro, ya sea directamente a través del Registry o indirectamente a través de Naming . Esto solo es necesario para establecer una comunicación inicial, ya que se pueden pasar más apéndices directamente a través de RMI.

En la configuración del proyecto, los proyectos de cliente y servidor no están relacionados, pero cada uno especifica un proyecto compartido en su ruta de compilación. El proyecto compartido contiene las interfaces remotas.

Invocación de método remoto (RMI) Ejemplos relacionados