O que é a invocação de método remoto em Java?



Este artigo sobre RMI em Java explicará como implementar a interface de invocação de método remoto no cliente e no servidor, juntamente com um exemplo prático.

Invocação de Método Remoto é uma maneira que um programador faz uso de e seu ambiente de desenvolvimento remotamente. É tudo sobre como o objetos em diferentes computadores interagem em uma rede distribuída. Neste artigo sobre Chamada de Método Remoto em Java, direi como criar um aplicativo RMI entre Cliente e Servidor.

função de divisão no exemplo java

Os tópicos abaixo são abordados neste artigo:





Vamos começar!

O que é RMI em Java?

o RMI (Remote Method Invocation) é uma API que fornece um mecanismo para criar um aplicativo distribuído em . O RMI permite que um objeto invoque métodos em um objeto em execução em outro . A Invocação de Método Remoto fornece comunicação remota entre os aplicativos usando dois objetos toco e esqueleto .



Noções básicas sobre stub e esqueleto

O objeto stub na máquina cliente constrói um bloco de informações e envia essas informações ao servidor. O bloco consiste em:

  • Um identificador do objeto remoto a ser usado
  • Nome do método que deve ser invocado
  • Parâmetros para o JVM remoto

Stub and Skeleton - RMI em Java - EdurekaObjeto de esqueleto

O objeto esqueleto passa a solicitação do objeto stub para o objeto remoto. Ele executa as seguintes tarefas:



  • Ele chama o método desejado no objeto real presente no servidor.

  • Ele encaminha os parâmetros recebidos do objeto stub para o método.

Com isso, vamos avançar e ver como criar um aplicativo RMI

Etapas para criar o aplicativo RMI

As etapas abaixo ajudam você a criar o aplicativo RMI:

  1. Definindo um controle remoto interface
  2. Implementando a interface remota
  3. Criação de stub e esqueleto objetos da classe de implementação usando RMIC (RMI complier)
  4. Inicie o registro RMI
  5. Crie e execute o programa de aplicação do servidor
  6. Crie e execute o programa aplicativo cliente

Agora, vamos entrar em detalhes sobre essas etapas.

Etapa 1: Definindo uma interface remota

A primeira coisa que temos que fazer é criar um interface . Isso fornecerá uma descrição dos métodos que podem ser chamados por clientes remotos. Essa interface deve estender a interface Remote e o protótipo do método dentro da interface deve lançar a RemoteException.

// Criando uma interface de pesquisa import java.rmi. * Public interface Search extends Remote {// Declarando o protótipo do método public String Query (String search) throws RemoteException}

Etapa 2: Implementação da interface remota

A próxima etapa é implementar a interface remota. A fim de implementar a interface remota, a classe deve se estender ao Classe UnicastRemoteObject do pacote java.rmi . Além disso, um padrão construtor precisa ser criado para lançar o java.rmi.RemoteException de seu construtor pai.

como sair em java
// Programa Java para implementar a interface de Pesquisa import java.rmi. * Import java.rmi.server. * Public class SearchQuery estende UnicastRemoteObject implementa Search {// Construtor padrão para lançar RemoteException de seu construtor pai SearchQuery () throws RemoteException {super ( )} // Implementação da interface de consulta pública String query (String search) lança RemoteException {String result if (search.equals ('Reflection in Java')) result = 'true' else result = 'false' return result}}

Etapa 3: Criando objetos Stub e Skeleton a partir da classe de implementação usando rmic

A ferramenta RMIC é usada para invocar o compilador RMI que cria os objetos Stub e Skeleton. Seu protótipo é o nome da classe RMIC.

PASSO 4: Iniciar o RMIregistry
Você precisa iniciar o serviço de registro emitindo o comando no prompt de comando start RMIregistry

diferença entre chef e fantoche

ETAPA 5: Crie e execute o programa de aplicativo do servidor
A próxima etapa é criar o programa de aplicativo do servidor e executá-lo em um prompt de comando separado.

  • O programa do servidor usa o createRegistry método da classe LocateRegistry para criar rmiregistry na JVM do servidor com o número da porta passado como um argumento.

  • O método rebind da classe Naming é usado para ligar o objeto remoto ao novo nome.

// programa para aplicativo de servidor import java.rmi. * import java.rmi.registry. * public class SearchServer {public static void main (String args []) {try {// Criar um objeto da classe de implementação de interface Search obj = new SearchQuery () // rmiregistry dentro da JVM do servidor com // número da porta 1900 LocateRegistry.createRegistry (1900) & ltp style = 'text-align: justify' & gt // Vincula o objeto remoto pelo nome // edureka Naming.rebind ( 'rmi: // localhost: 1900' + '/ edureka', obj)} catch (Exception ae) {System.out.println (ae)}}}

Etapa 6: Crie e execute o programa de aplicativo do cliente
A última etapa é criar o programa Aplicativo Cliente e executá-lo em um prompt de comando separado. O método lookup da classe Naming é usado para obter a referência do objeto Stub

O programa cliente e servidor acima é executado na mesma máquina e é por isso que o localhost está sendo usado. Para acessar o objeto remoto de outra máquina, localhost deve ser substituído pelo endereço IP onde o objeto remoto está presente.

Então, isso nos leva ao final do RMI em artigo. Espero que você tenha achado informativo e tenha ajudado a compreender os fundamentos.

Confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. Estamos aqui para ajudá-lo em todas as etapas de sua jornada, para se tornar um além dessas perguntas da entrevista java, nós criamos um currículo que é projetado para estudantes e profissionais que desejam ser um Java Desenvolvedor. O curso foi desenvolvido para dar a você uma vantagem inicial na programação Java e treiná-lo para os conceitos básicos e avançados de Java, juntamente com várias estruturas Java, como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste artigo “RMI em Java” e entraremos em contato com você o mais rápido possível.