Hvad er Remote Method Invocation i Java?



Denne artikel om RMI i Java fortæller dig, hvordan du implementerer grænseflade til fjernbetjening af metode på tværs af klient og server sammen med et praktisk eksempel.

Remote Method Invocation er en måde, som en programmør bruger og dets udviklingsmiljø eksternt. Det handler om, hvordan genstande på forskellige computere interagerer i et distribueret netværk. I denne artikel om Remote Method Invocation i Java vil jeg fortælle dig, hvordan du opretter en RMI-applikation på tværs af klient og server.

Nedenstående emner er dækket af denne artikel:





Lad os komme igang!

Hvad er RMI i Java?

Det RMI (Remote Method Invocation) er en API, der giver en mekanisme til at oprette en distribueret applikation i . RMI tillader et objekt at påberåbe sig metoder på et objekt, der kører i et andet . Remote Method Invocation giver fjernkommunikation mellem applikationerne ved hjælp af to objekter stub og skelet .



Forståelse af stub og skelet

Stub-objektet på klientmaskinen bygger en informationsblok og sender disse oplysninger til serveren. Blokken består af:

  • En identifikator af det eksterne objekt, der skal bruges
  • Metodenavn, der skal påberåbes
  • Parametre til fjernbetjening JVM

Stub og skelet - RMI i Java - EdurekaSkelet objekt

Skeletobjektet videresender anmodningen fra stubobjektet til det fjerne objekt. Den udfører følgende opgaver:



hvordan man bruger br i html
  • Det kalder den ønskede metode på det virkelige objekt, der findes på serveren.

  • Det videresender de parametre, der modtages fra stub-objektet, til metoden.

Med dette, lad os gå videre og se, hvordan du opretter en RMI-applikation

Trin til oprettelse af RMI-applikation

Nedenstående trin hjælper dig med at oprette RMI-applikation:

  1. Definition af en fjernbetjening interface
  2. Implementering af den eksterne grænseflade
  3. Oprettelse af stub og skelet genstande fra implementeringsklassen ved hjælp af RMIC (RMI-complier)
  4. Start RMI-registreringsdatabasen
  5. Opret og udfør serverapplikationsprogrammet
  6. Opret og udfør klientapplikationsprogrammet

Lad os nu komme ind i detaljerne i disse trin.

hash-kort vs hash-tabel

Trin 1: Definere en ekstern grænseflade

Den første ting, vi skal gøre, er at skabe en interface . Dette giver en beskrivelse af de metoder, der kan påberåbes af fjernklienter. Denne grænseflade skal udvide Remote-grænsefladen, og metode-prototypen i grænsefladen skal kaste RemoteException.

// Oprettelse af en import af søgegrænseflade java.rmi. * Offentlig grænseflade Søgning udvides eksternt

Trin 2: Implementering af ekstern grænseflade

Det næste trin er at implementere den eksterne grænseflade. For at implementere den eksterne grænseflade skal klassen udvides til UnicastRemoteObject klasse af java.rmi-pakke . Også en standard Bygger skal oprettes for at smide java.rmi.RemoteException fra dets overordnede konstruktør.

// Java-program til implementering af Search interface import java.rmi. * Import java.rmi.server. * Public class SearchQuery udvider UnicastRemoteObject implementerer søgning {// Standardkonstruktør til at kaste RemoteException fra sin overordnede konstruktør SearchQuery () kaster RemoteException {super ( )} // Implementering af forespørgselsgrænsefladen offentlig Strengeforespørgsel (String-søgning) kaster RemoteException {String-resultat, hvis (search.equals ('Reflection in Java')) result = 'true' ellers result = 'false' return result}}

Trin 3: Oprettelse af stub- og skeletobjekter fra implementeringsklassen ved hjælp af rmic

RMIC-værktøjet bruges til at påkalde RMI-kompilatoren, der opretter Stub- og skelet-objekterne. Dens prototype er RMIC klasse navn.

TRIN 4: Start RMIregistret
Du skal starte registreringsdatabasetjenesten ved at udstede kommandoen ved kommandoprompten start RMIregistry

TRIN 5: Opret og udfør serverapplikationsprogrammet
Det næste trin er at oprette serverapplikationsprogrammet og udføre det på en separat kommandoprompt.

  • Serverprogrammet bruger createRegistry metode til LocateRegistry-klasse for at oprette rmiregistry inden for server-JVM med portnummeret sendt som et argument.

  • Rebind-metoden i Naming-klassen bruges til at binde det eksterne objekt til det nye navn.

// program til serverapplikation import java.rmi. * import java.rmi.registry. * public class SearchServer {public static void main (String args []) {try {// Opret et objekt af interfaceimplementeringsklassen Søg obj = ny SearchQuery () // rmiregistry inden for serveren JVM med // portnummer 1900 LocateRegistry.createRegistry (1900) & ltp style = 'text-align: justify' & gt // Binder fjernobjektet med navnet // edureka Naming.rebind ( 'rmi: // localhost: 1900' + '/ edureka', obj)} fangst (Undtagelse ae) {System.out.println (ae)}}}

Trin 6: Opret og udfør programmet Client Application
Det sidste trin er at oprette klientapplikationsprogrammet og udføre det på en separat kommandoprompt. Opslagsmetoden i Naming-klassen bruges til at få reference til Stub-objektet

Ovenstående klient- og serverprogram udføres på den samme maskine, og derfor bruges localhost. For at få adgang til det eksterne objekt fra en anden maskine skal localhost erstattes med den IP-adresse, hvor det eksterne objekt er til stede.

hvordan man konverterer binær til decimal i java

Så dette bringer os til slutningen af ​​RMI i artikel. Jeg håber, du fandt det informativt og hjalp dig med at forstå de grundlæggende.

Tjek af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Vi er her for at hjælpe dig med hvert trin på din rejse, for at blive en ud over dette java-interviewspørgsmål, kommer vi med en læseplan, der er designet til studerende og fagfolk, der ønsker at være en Java Udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne “RMI i Java” -artikel og vi vender tilbage til dig hurtigst muligt.