Hva er Remote Method Invocation i Java?



Denne artikkelen om RMI i Java vil fortelle deg hvordan du implementerer eksternt metodeinnkallingsgrensesnitt over klient og server sammen med et praktisk eksempel.

Remote Method Invocation er en måte som en programmerer bruker og dets utviklingsmiljø eksternt. Det handler om hvordan gjenstander på forskjellige datamaskiner samhandler i et distribuert nettverk. I denne artikkelen om Remote Method Invocation i Java vil jeg fortelle deg hvordan du lager en RMI-applikasjon på tvers av klient og server.

Følgende emner er dekket i denne artikkelen:





La oss komme i gang!

Hva er RMI i Java?

De RMI (Remote Method Invocation) er et API som gir en mekanisme for å opprette et distribuert program i . RMI tillater et objekt å påkalle metoder på et objekt som kjører i et annet . Remote Method Invocation gir ekstern kommunikasjon mellom applikasjonene ved hjelp av to objekter stubbe og skjelett .



Forstå stubbe og skjelett

Stubobjektet på klientmaskinen bygger en informasjonsblokk og sender denne informasjonen til serveren. Blokken består av:

  • En identifikator for det eksterne objektet som skal brukes
  • Metodenavn som skal påberopes
  • Parametere til den eksterne JVM

Stub and Skeleton - RMI i Java - EdurekaSkjelettobjekt

Skjelettobjektet sender forespørselen fra stubobjektet til det eksterne objektet. Den utfører følgende oppgaver:



rekursjon Fibonacci-serie i Java
  • Det kaller ønsket metode på det virkelige objektet som er tilstede på serveren.

  • Den videresender parametrene som mottas fra stubobjektet til metoden.

Med dette kan du gå videre og se hvordan du oppretter en RMI-applikasjon

Fremgangsmåte for å lage RMI-applikasjon

Trinnene nedenfor hjelper deg med å lage RMI-applikasjon:

  1. Definere en fjernkontroll grensesnitt
  2. Implementering av det eksterne grensesnittet
  3. Opprette stubbe og skjelett gjenstander fra implementeringsklassen ved hjelp av RMIC (RMI-complier)
  4. Start RMI-registeret
  5. Opprett og kjør serverapplikasjonsprogrammet
  6. Opprett og kjør klientapplikasjonsprogrammet

La oss nå komme inn i detaljene i disse trinnene.

omfangsoppløsningsoperator c ++

Trinn 1: Definere et eksternt grensesnitt

Det første vi må gjøre er å lage en grensesnitt . Dette vil gi en beskrivelse av metodene som kan påkalles av eksterne klienter. Dette grensesnittet skal utvide Remote Interface og metoden prototypen i grensesnittet skal kaste RemoteException.

// Opprette et søkegrensesnitt importere java.rmi. * Offentlig grensesnitt Søk utvider eksternt

Trinn 2: Implementering av eksternt grensesnitt

Neste trinn er å implementere det eksterne grensesnittet. For å implementere det eksterne grensesnittet, bør klassen utvides til UnicastRemoteObject klasse av java.rmi-pakken . Også en standard bygger må lages for å kaste java.rmi.RemoteException fra foreldrekonstruktøren.

// Java-program for å implementere søkegrensesnittet import java.rmi. * Import java.rmi.server. * Offentlig klasse SearchQuery utvider UnicastRemoteObject implementerer søk {// Standardkonstruktør for å kaste RemoteException fra sin overordnede konstruktør SearchQuery () kaster RemoteException {super )} // Implementering av spørringsgrensesnittet offentlig String-spørring (String-søk) kaster RemoteException {String-resultat hvis (search.equals ('Reflection in Java')) result = 'true' else result = 'false' return result}}

Trinn 3: Opprette stub- og skjelettobjekter fra implementeringsklassen ved hjelp av rmic

RMIC-verktøyet brukes til å påkalle RMI-kompilatoren som lager Stub og Skeleton-objektene. Prototypen er RMIC-klassenavn.

TRINN 4: Start RMIregistry
Du må starte registertjenesten ved å utstede kommandoen ved ledeteksten, start RMIregistry

TRINN 5: Opprett og kjør serverapplikasjonsprogrammet
Neste trinn er å lage serverapplikasjonsprogrammet og utføre det på en egen ledetekst.

forskjell mellom c c ++ og java
  • Serverprogrammet bruker createRegistry metode for LocateRegistry-klassen for å opprette rmiregistry i serveren JVM med portnummeret sendt som et argument.

  • Rebind-metoden til Naming-klassen brukes til å binde det eksterne objektet til det nye navnet.

// program for serverapplikasjon import java.rmi. * import java.rmi.registry. * public class SearchServer {public static void main (String args []) {try {// Opprett et objekt av grensesnittets implementeringsklasse Søk obj = ny SearchQuery () // rmiregistry i 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 (Unntak ae) {System.out.println (ae)}}}

Trinn 6: Opprett og kjør programmet Client Application
Det siste trinnet er å opprette Client Application-programmet og utføre det på en egen ledetekst. Oppslagsmetoden i Naming-klassen brukes til å få referansen til Stub-objektet

Ovennevnte klient- og serverprogram kjøres på samme maskin, og det er derfor localhost blir brukt. For å få tilgang til det eksterne objektet fra en annen maskin, må localhost erstattes med IP-adressen der det eksterne objektet er til stede.

Så dette bringer oss til slutten av RMI i artikkel. Jeg håper du syntes det var informativt og hjalp deg med å forstå det grunnleggende.

Sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden. Vi er her for å hjelpe deg med hvert trinn på reisen, for å bli en foruten dette java-intervjuspørsmålene, kommer vi med en læreplan som er designet for studenter og fagpersoner som vil være en Java Utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne “RMI i Java” -artikkelen og vi kommer tilbake til deg så snart som mulig.