Vad är Remote Method Invocation i Java?



Den här artikeln om RMI i Java berättar hur du implementerar fjärrmetodanropsgränssnitt över klient och server tillsammans med ett praktiskt exempel.

Fjärrmetodinrop är ett sätt som en programmerare använder sig av och dess utvecklingsmiljö på distans. Det handlar om hur objekt på olika datorer interagerar i ett distribuerat nätverk. I den här artikeln om Remote Method Invocation i Java kommer jag att berätta hur du skapar en RMI-applikation över klienten och servern.

Nedanstående ämnen behandlas i den här artikeln:





Låt oss börja!

Vad är RMI i Java?

De RMI (Remote Method Invocation) är ett API som tillhandahåller en mekanism för att skapa en distribuerad applikation i . RMI tillåter ett objekt att åberopa metoder på ett objekt som körs i ett annat . Remote Method Invocation ger fjärrkommunikation mellan applikationerna med två objekt stump och skelett .



Förstå stub och skelett

Stub-objektet på klientmaskinen bygger ett informationsblock och skickar denna information till servern. Blocket består av:

  • En identifierare för det fjärrobjekt som ska användas
  • Metodnamn som ska åberopas
  • Parametrar till fjärrkontrollen JVM

Stub and Skeleton - RMI i Java - EdurekaSkelettobjekt

Skelettobjektet skickar begäran från stubobjektet till fjärrobjektet. Den utför följande uppgifter:



  • Den kallar den önskade metoden på det verkliga objektet som finns på servern.

  • Den vidarebefordrar parametrarna som tas emot från stub-objektet till metoden.

Med detta kan du gå vidare och se hur du skapar en RMI-applikation

Steg för att skapa RMI-applikation

Nedanstående steg hjälper dig att skapa RMI-applikation:

def __init __ (själv)
  1. Definiera en fjärrkontroll gränssnitt
  2. Implementering av fjärrgränssnittet
  3. Skapa stub och skelett objekt från implementeringsklassen med hjälp av RMIC (RMI-complier)
  4. Starta RMI-registret
  5. Skapa och kör serverapplikationsprogrammet
  6. Skapa och kör klientprogrammet

Nu ska vi läsa mer om detaljerna i dessa steg.

Steg 1: Definiera ett fjärrgränssnitt

Det första vi måste göra är att skapa en gränssnitt . Detta ger en beskrivning av de metoder som kan åberopas av fjärrklienter. Detta gränssnitt ska utöka fjärrgränssnittet och metodprototypen inom gränssnittet ska kasta RemoteException.

// Skapa ett sökgränssnittsimport java.rmi. * Offentligt gränssnitt Sök utvidgar fjärrkontroll {// Att förklara metoden prototyp offentlig Strängfråga (strängsökning) kastar RemoteException

Steg 2: Implementering av fjärrgränssnitt

Nästa steg är att implementera fjärrgränssnittet. För att implementera fjärrgränssnittet bör klassen utvidgas till UnicastRemoteObject-klass av paketet java.rmi . Också en standard byggare måste skapas för att kasta java.rmi.RemoteException från dess överordnade konstruktör.

// Java-program för att implementera sökgränssnittet import java.rmi. * Importera java.rmi.server. * Public class SearchQuery utökar UnicastRemoteObject implementerar sökning {// Standardkonstruktör för att kasta RemoteException från sin överordnade konstruktör SearchQuery () kastar RemoteException {super )} // Implementering av frågegränssnittet offentlig Strängfråga (strängsökning) kastar RemoteException {Strängresultat om (search.equals ('Reflektion i Java')) resultat = 'true' annars resultat = 'falskt' returresultat}}

Steg 3: Skapa stub- och skelettobjekt från implementeringsklassen med hjälp av rmic

RMIC-verktyget används för att åberopa RMI-kompilatorn som skapar Stub- och Skeleton-objekten. Dess prototyp är RMIC-klassnamn.

STEG 4: Starta RMIregistret
Du måste starta registertjänsten genom att utfärda kommandot vid kommandotolken starta RMIregistry

STEG 5: Skapa och kör serverapplikationsprogrammet
Nästa steg är att skapa serverapplikationsprogrammet och köra det på en separat kommandotolk.

  • Serverprogrammet använder createRegistry metod för LocateRegistry-klass för att skapa rmiregistry inom servern JVM med portnumret skickat som ett argument.

  • Rebind-metoden för Naming-klass används för att binda fjärrobjektet till det nya namnet.

// program för serverapplikation import java.rmi. * import java.rmi.registry. * public class SearchServer {public static void main (String args []) {try {// Skapa ett objekt för gränssnittets implementeringsklass Sök obj = ny SearchQuery () // rmiregistry inom servern JVM med // portnummer 1900 LocateRegistry.createRegistry (1900) & ltp style = 'text-align: justify' & gt // Binder fjärrobjektet med namnet // edureka Naming.rebind ( 'rmi: // localhost: 1900' + '/ edureka', obj)} catch (Exception ae) {System.out.println (ae)}}

Steg 6: Skapa och kör programmet Client Application
Det sista steget är att skapa programmet Client Application och utföra det på en separat kommandotolk. Uppslagsmetoden för Naming-klass används för att få referens för Stub-objektet

Ovanstående klient- och serverprogram körs på samma maskin och därför används localhost. För att komma åt fjärrobjektet från en annan maskin ska localhost ersättas med IP-adressen där fjärrobjektet finns.

Så detta leder oss till slutet av RMI artikel. Jag hoppas att du tyckte att det var informativt och hjälpte dig att förstå de grundläggande.

Kolla in av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Vi är här för att hjälpa dig med varje steg på din resa, för att bli en förutom de här Java-intervjufrågorna, kommer vi med en läroplan som är utformad för studenter och yrkesverksamma som vill vara en Java Utvecklaren. Kursen är utformad för att ge dig ett försprång till Java-programmering och träna dig för både kärn- och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

längden på en array-javascript

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen i denna “RMI i Java” -artikel så återkommer vi så snart som möjligt.