Cos'è l'invocazione del metodo remoto in Java?

Questo articolo su RMI in Java ti spiegherà come implementare l'interfaccia di chiamata del metodo remoto su Client e Server insieme a un esempio pratico.

Invocazione metodo remoto è un modo utilizzato da un programmatore e il suo ambiente di sviluppo in remoto. È tutto su come il oggetti su computer diversi interagiscono in una rete distribuita. In questo articolo su Remote Method Invocation in Java, ti spiegherò come creare un'applicazione RMI su Client e Server.



Gli argomenti seguenti sono trattati in questo articolo:



Iniziamo!

Cos'è RMI in Java?

Il RMI (Remote Method Invocation) è un'API che fornisce un meccanismo per creare un'applicazione distribuita in . L'RMI consente a un oggetto di richiamare metodi su un oggetto in esecuzione in un altro . Remote Method Invocation fornisce la comunicazione remota tra le applicazioni utilizzando due oggetti stub e scheletro .



Capire lo stub e lo scheletro

L'oggetto stub sulla macchina client crea un blocco di informazioni e invia queste informazioni al server. Il blocco è composto da:

  • Un identificatore dell'oggetto remoto da utilizzare
  • Nome del metodo che deve essere richiamato
  • Parametri per la JVM remota

Stub and Skeleton - RMI in Java - EdurekaOggetto scheletro

L'oggetto scheletro passa la richiesta dall'oggetto stub all'oggetto remoto. Svolge le seguenti attività:



  • Chiama il metodo desiderato sull'oggetto reale presente sul server.

  • Inoltra i parametri ricevuti dall'oggetto stub al metodo.

Con questo, andiamo oltre e vediamo come creare un'applicazione RMI

Passaggi per creare l'applicazione RMI

I passaggi seguenti ti aiutano a creare l'applicazione RMI:

  1. Definizione di un telecomando interfaccia
  2. Implementazione dell'interfaccia remota
  3. Creazione di stub e scheletro oggetti dalla classe di implementazione utilizzando RMIC (compilatore RMI)
  4. Avvia il registro RMI
  5. Crea ed esegui il programma dell'applicazione server
  6. Crea ed esegui il programma applicativo client

Ora, entriamo nei dettagli di questi passaggi.

Passaggio 1: definizione di un'interfaccia remota

La prima cosa che dobbiamo fare è creare un file interfaccia . Ciò fornirà una descrizione dei metodi che possono essere richiamati dai client remoti. Questa interfaccia dovrebbe estendere l'interfaccia Remote e il prototipo del metodo all'interno dell'interfaccia dovrebbe generare RemoteException.

// Creazione di un'interfaccia di ricerca import java.rmi. * Public interface Search extends Remote {// Declaring the method prototype public String Query (String search) throws RemoteException}

Passaggio 2: implementazione dell'interfaccia remota

Il prossimo passo è implementare l'interfaccia remota. Per implementare l'interfaccia remota, la classe dovrebbe estendersi a UnicastRemoteObject classe del pacchetto java.rmi . Inoltre, un valore predefinito costruttore deve essere creato per lanciare il file java.rmi.RemoteException dal suo costruttore genitore.

// Programma Java per implementare l'interfaccia di ricerca import java.rmi. * Import java.rmi.server. * Public class SearchQuery estende UnicastRemoteObject implementa Search {// Il costruttore predefinito per lanciare RemoteException dal suo costruttore principale SearchQuery () genera RemoteException {super ( )} // Implementazione dell'interfaccia di query public String query (String search) genera RemoteException {String result if (search.equals ('Reflection in Java')) result = 'true' else result = 'false' return result}}

Passaggio 3: creazione di oggetti Stub e Skeleton dalla classe di implementazione utilizzando rmic

Lo strumento RMIC viene utilizzato per richiamare il compilatore RMI che crea gli oggetti Stub e Skeleton. Il suo prototipo è il nome della classe RMIC.

FASE 4: Avvia RMIregistry
È necessario avviare il servizio di registro immettendo il comando al prompt dei comandi per avviare RMIregistry

differenza tra classe e interfaccia in java

PASSAGGIO 5: creare ed eseguire il programma dell'applicazione server
Il passaggio successivo consiste nel creare il programma dell'applicazione server ed eseguirlo su un prompt dei comandi separato.

  • Il programma server utilizza l'estensione createRegistry metodo della classe LocateRegistry per creare rmiregistry all'interno della JVM del server con il numero di porta passato come argomento.

  • Il metodo rebind della classe Naming viene utilizzato per associare l'oggetto remoto al nuovo nome.

// programma per l'applicazione server import java.rmi. * import java.rmi.registry. * public class SearchServer {public static void main (String args []) {try {// Crea un oggetto della classe di implementazione dell'interfaccia Search obj = new SearchQuery () // rmiregistry all'interno della JVM del server con // numero di porta 1900 LocateRegistry.createRegistry (1900) & ltp style = 'text-align: justify' & gt // Associa l'oggetto remoto con il nome // edureka Naming.rebind ( 'rmi: // localhost: 1900' + '/ edureka', obj)} catch (eccezione ae) {System.out.println (ae)}}}

Passaggio 6: creare ed eseguire il programma dell'applicazione client
L'ultimo passaggio consiste nel creare il programma dell'applicazione client ed eseguirlo su un prompt dei comandi separato. Il metodo di ricerca della classe Naming viene utilizzato per ottenere il riferimento dell'oggetto Stub

Il programma client e server di cui sopra viene eseguito sulla stessa macchina ed è per questo che viene utilizzato localhost. Per accedere all'oggetto remoto da un'altra macchina, localhost deve essere sostituito con l'indirizzo IP in cui è presente l'oggetto remoto.

Quindi questo ci porta alla fine del RMI in articolo. Spero che tu l'abbia trovato informativo e ti abbia aiutato a comprendere i Fondamenti.

Controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Siamo qui per aiutarti in ogni fase del tuo viaggio, per diventare oltre a queste domande di intervista java, abbiamo creato un curriculum progettato per studenti e professionisti che vogliono essere un Giava Sviluppatore. Il corso è progettato per darti un vantaggio nella programmazione Java e formarti sia sui concetti di base che avanzati su Java insieme a vari framework Java come Hibernate e Spring.

Hai domande per noi? Si prega di menzionarlo nella sezione commenti di questo articolo 'RMI in Java' e ti risponderemo il prima possibile.