¿Qué es la invocación de método remoto en Java?



Este artículo sobre RMI en Java le dirá cómo implementar la interfaz de invocación de métodos remotos en Cliente y Servidor junto con un ejemplo práctico.

Invocación de método remoto es una forma en que un programador hace uso de y su entorno de desarrollo de forma remota. Se trata de cómo objetos en diferentes computadoras interactúan en una red distribuida. En este artículo sobre la invocación de método remoto en Java, le diré cómo crear una aplicación RMI en el cliente y el servidor.

Los siguientes temas se tratan en este artículo:





¡Empecemos!

¿Qué es RMI en Java?

los RMI (Invocación de método remoto) es una API que proporciona un mecanismo para crear una aplicación distribuida en . La RMI permite que un objeto invoque métodos en un objeto que se ejecuta en otro . La invocación de método remoto proporciona comunicación remota entre las aplicaciones utilizando dos objetos talón y esqueleto .



Entendiendo Stub y Skeleton

El objeto stub en la máquina cliente crea un bloque de información y envía esta información al servidor. El bloque consta de:

  • Un identificador del objeto remoto que se utilizará
  • Nombre del método que se va a invocar
  • Parámetros de la JVM remota

Stub and Skeleton - RMI en Java - EdurekaObjeto esqueleto

El objeto esqueleto pasa la solicitud del objeto stub al objeto remoto. Realiza las siguientes tareas:



  • Llama al método deseado en el objeto real presente en el servidor.

  • Reenvía los parámetros recibidos del objeto stub al método.

Con esto, avancemos más y veamos cómo crear una aplicación RMI

Pasos para crear una aplicación RMI

Los siguientes pasos le ayudarán a crear una aplicación RMI:

  1. Definiendo un control remoto interfaz
  2. Implementando la interfaz remota
  3. Creación de talón y esqueleto objetos de la clase de implementación usando RMIC (RMI complier)
  4. Inicie el registro RMI
  5. Cree y ejecute el programa de aplicación del servidor
  6. Crear y ejecutar el programa de aplicación cliente.

Ahora, veamos los detalles de estos pasos.

Paso 1: Definición de una interfaz remota

Lo primero que tenemos que hacer es crear un interfaz . Esto proporcionará una descripción de los métodos que pueden invocar los clientes remotos. Esta interfaz debería extender la interfaz remota y el prototipo del método dentro de la interfaz debería lanzar RemoteException.

// Creando una interfaz de búsqueda import java.rmi. * Interfaz pública La búsqueda amplía Remoto {// Declarando el prototipo de método público String Query (búsqueda de cadenas) arroja RemoteException}

Paso 2: implementación de la interfaz remota

El siguiente paso es implementar la interfaz remota. Para implementar la interfaz remota, la clase debe extenderse al Clase UnicastRemoteObject del paquete java.rmi . Además, un valor predeterminado constructor necesita ser creado para lanzar el java.rmi.RemoteException de su constructor padre.

// Programa Java para implementar la interfaz de búsqueda import java.rmi. * Import java.rmi.server. * Clase pública SearchQuery extiende UnicastRemoteObject implementa Search {// Constructor predeterminado para lanzar RemoteException desde su constructor padre SearchQuery () lanza RemoteException {super ( )} // Implementación de la interfaz de consulta public String query (String search) throws RemoteException {String result if (search.equals ('Reflection in Java')) result = 'true' else result = 'false' return result}}

Paso 3: crear objetos Stub y Skeleton desde la clase de implementación usando rmic

La herramienta RMIC se utiliza para invocar el compilador RMI que crea los objetos Stub y Skeleton. Su prototipo es el nombre de clase RMIC.

PASO 4: Inicie el registro RMI
Debe iniciar el servicio de registro emitiendo el comando en el símbolo del sistema start RMIregistry

PASO 5: Cree y ejecute el programa de aplicación del servidor
El siguiente paso es crear el programa de aplicación del servidor y ejecutarlo en un símbolo del sistema separado.

  • El programa del servidor utiliza el createRegistry método de la clase LocateRegistry para crear rmiregistry dentro de la JVM del servidor con el número de puerto pasado como argumento.

  • El método de volver a vincular de la clase Naming se utiliza para vincular el objeto remoto al nuevo nombre.

// programa para la aplicación del servidor import java.rmi. * import java.rmi.registry. * public class SearchServer {public static void main (String args []) {try {// Crea un objeto de la clase de implementación de interfaz Search obj = new SearchQuery () // rmiregistry dentro de la JVM del servidor con // número de puerto 1900 LocateRegistry.createRegistry (1900) & ltp style = 'text-align: justify' & gt // Vincula el objeto remoto por el nombre // edureka Naming.rebind ( 'rmi: // localhost: 1900' + '/ edureka', obj)} catch (Exception ae) {System.out.println (ae)}}}

Paso 6: crear y ejecutar el programa de aplicación cliente
El último paso es crear el programa de aplicación cliente y ejecutarlo en un símbolo del sistema por separado. El método de búsqueda de la clase Naming se usa para obtener la referencia del objeto Stub

¿Cuáles son los componentes de la plataforma Java?

El programa cliente y servidor anterior se ejecuta en la misma máquina y es por eso que se utiliza localhost. Para acceder al objeto remoto desde otra máquina, localhost debe reemplazarse con la dirección IP donde está presente el objeto remoto.

Así que esto nos lleva al final de la RMI en artículo. Espero que le haya resultado informativo y le haya ayudado a comprender los Fundamentos.

Revisar la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. Estamos aquí para ayudarlo en cada paso de su viaje, para convertirse además de las preguntas de esta entrevista en Java, creamos un plan de estudios diseñado para estudiantes y profesionales que desean ser un Java Desarrollador. El curso está diseñado para darle una ventaja en la programación de Java y capacitarlo para los conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este artículo 'RMI en Java'. y nos pondremos en contacto contigo lo antes posible.