RMI - Introducción

Boris R. Pérez G.
29 Sept 201617:21

Summary

TLDREl video ofrece una introducción a la invocación remota de métodos en Java, que permite a un objeto en una máquina virtual invocar métodos de otro objeto en una máquina virtual diferente, facilitando así la computación distribuida. Se explica que para implementar una solución de invocación remota se requieren un cliente y un servidor, donde el servidor hace accesible el objeto a través de la red y el cliente consume sus métodos. Seguidamente, se profundiza en la creación de una interfaz remota en Java que extienda de `java.rmi.Remote` y declare métodos que lancen `java.rmi.RemoteException`. A lo largo del video, se muestra cómo implementar tanto el servidor como el cliente utilizando Eclipse, destacando la importancia de la serialización, los puertos de red, y la comunicación entre ambos a través de la interfaz. Finalmente, se abordan consideraciones finales como la desactivación de firewalls, la importancia de estar en la misma subred y la versión de Java utilizada para la compatibilidad entre cliente y servidor.

Takeaways

  • 📚 La invocación remota de métodos permite que un objeto en una máquina virtual invoque métodos de un objeto en otra máquina virtual, lo que habilita la computación distribuida.
  • 🔌 Las aplicaciones de RM (Remote Method Invocation) requieren un cliente y un servidor; el servidor hace que un objeto sea accesible a través de la red, mientras que el cliente invoca los métodos de ese objeto remoto.
  • 💡 La implementación de RM es sencilla y no tiene nada que ver con conceptos complejos como la computación cuántica o la aeronáutica.
  • 📈 Se necesita un servidor de correo electrónico que publique la información de su instancia en el registro para que los clientes puedan acceder a ella.
  • 📝 El cliente localiza al servidor, solicita la instancia del objeto remoto y luego puede invocar sus métodos.
  • 📁 Se debe crear una interfaz en Java que declare los métodos que se ofrecerán al cliente; esta interfaz debe extender de la interfaz `Remote` y sus métodos deben lanzar una excepción `RemoteException`.
  • 📂 El servidor necesita utilizar una referencia de tipo `java.rmi.Remote`, que es una interfaz que permite la comunicación entre el cliente y el servidor.
  • 🖥️ El proyecto del servidor debe agregar la biblioteca (JAR) de la interfaz para que la clase del servidor pueda conocer y utilizar la interfaz.
  • 🔠 El servidor debe tener un constructor que lance una `RemoteException` y un método `main` para arrancar el servidor.
  • 🔑 El registro del servidor guarda la instancia del objeto con una llave específica para que el cliente pueda recuperarla.
  • ⚙️ El cliente obtiene el registro del servidor, invoca el método de la interfaz y utiliza los resultados como si el objeto estuviera en la misma máquina.
  • 🛡️ Se deben considerar aspectos como desactivar el firewall, asegurarse de que los equipos estén en la misma subred y utilizar una versión de Java compatible para todos los clientes.

Q & A

  • ¿Qué es la invocación remota de métodos en Java?

    -La invocación remota de métodos es una característica que permite que un objeto en una máquina virtual invoque métodos de un objeto que se encuentra en otra máquina virtual, lo que habilita la computación distribuida.

  • ¿Para qué sirve la invocación remota de métodos en aplicaciones?

    -Sirve para que un objeto Java pueda publicarse y ofrecer sus métodos en una máquina, permitiendo que usuarios en otras máquinas o instalaciones de Java invoquen esos métodos sin necesidad de tener el objeto en su máquina.

  • ¿Cuáles son los dos componentes necesarios para las aplicaciones de invocación remota de métodos?

    -Los dos componentes necesarios son un cliente y un servidor. El servidor hace que el objeto sea accesible a través de la red, mientras que el cliente accede al servidor a través de su dirección IP y utiliza los métodos del objeto remoto.

  • ¿Qué es una interfaz (interface) en Java y cómo se relaciona con la invocación remota de métodos?

    -Una interfaz en Java es una estructura que permite declarar métodos que serán ofrecidos al cliente. En el contexto de la invocación remota de métodos, el servidor implementa la interfaz, permitiendo que el cliente se comunique con el servidor a través de esa interfaz.

  • ¿Por qué es importante que la interfaz para la invocación remota de métodos extienda de 'java.rmi.Remote'?

    -Es importante porque esta extensión permite que tanto el cliente como el servidor se comuniquen a través de la interfaz, y el cliente pueda recibir una instancia de una clase que implementa la interfaz sin necesidad de conocer detalles específicos del servidor.

  • ¿Cómo se implementa la interfaz para la invocación remota de métodos en un proyecto de Java?

    -Se crea un archivo de interfaz que extiende 'java.rmi.Remote' y declara los métodos que el servidor ofrecerá al cliente. Luego, se implementa esta interfaz en la clase del servidor, donde se define el código para los métodos declarados.

  • ¿Qué es el propósito del atributo 'static final' en la clase del servidor de invocación remota de métodos?

    -El atributo 'static final' se utiliza para definir una variable que contiene el número del puerto a través del cual el cliente se conectará con el servidor. Este número es constante y no puede cambiar durante la ejecución del programa.

  • ¿Qué es la serialización en el contexto de Java y por qué es importante en la invocación remota de métodos?

    -La serialización es el proceso de convertir objetos en una secuencia de bytes que se pueden transmitir a través de una red. Es importante en la invocación remota de métodos porque permite que los objetos del servidor se viajen a través de la red hasta el cliente.

  • ¿Cómo se obtiene y utiliza la referencia del objeto remoto en el cliente?

    -El cliente obtiene la referencia del objeto remoto a través del registro, utilizando la dirección IP y el puerto del servidor. Luego, utiliza esta referencia para invocar los métodos del objeto remoto como si estuviera en la propia máquina del cliente.

  • ¿Qué consideraciones son importantes al implementar un servidor de invocación remota de métodos?

    -Algunas consideraciones importantes incluyen desactivar el firewall del sistema operativo para permitir las conexiones entrantes, asegurarse de que los clientes y el servidor estén en la misma subred o utilicen direcciones IP públicas, y utilizar una versión de Java compatible para la compilación y ejecución del proyecto.

  • ¿Cómo se asegura la comunicación entre el cliente y el servidor en la invocación remota de métodos?

    -La comunicación se asegura a través del registro de servicios, donde el servidor guarda una instancia de un objeto con una llave específica. El cliente solicita esta instancia al registro utilizando la misma llave, y obtiene una referencia al objeto remoto que puede utilizar para invocar sus métodos.

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This

5.0 / 5 (0 votes)

Related Tags
JavaRMIComputación DistribuidaInvocación RemotaEjemplo PrácticoServidorClienteSerializaciónFirewallSubredVersión Java
Do you need a summary in English?