Wat is Remote Method Invocation in Java?



Dit artikel over RMI in Java zal u vertellen hoe u de interface voor het aanroepen van externe methoden in Client en Server kunt implementeren, samen met een praktisch voorbeeld.

Externe methode aanroep is een manier waar een programmeur gebruik van maakt en zijn ontwikkelomgeving op afstand. Het draait allemaal om hoe de voorwerpen op verschillende computers communiceren in een gedistribueerd netwerk. In dit artikel over Remote Method Invocation in Java, zal ik je vertellen hoe je een RMI-applicatie maakt voor Client en Server.

Onderstaande onderwerpen komen aan bod in dit artikel:





Laten we beginnen!

Wat is RMI in Java?

De RMI (Remote Method Invocation) is een API die een mechanisme biedt om een ​​gedistribueerde applicatie te maken in . Met de RMI kan een object methoden aanroepen voor een object dat in een ander wordt uitgevoerd . De Remote Method Invocation zorgt voor communicatie op afstand tussen de applicaties met behulp van twee objecten stomp en skelet .



Inzicht in stomp en skelet

Het stub-object op de clientcomputer bouwt een informatieblok op en stuurt deze informatie naar de server. Het blok bestaat uit:

tools die worden gebruikt bij big data-analyse
  • Een identificatie van het te gebruiken externe object
  • Methodenaam die moet worden aangeroepen
  • Parameters voor de externe JVM

Stomp en skelet - KMI in Java - EdurekaSkeleton-object

Het skeletobject geeft het verzoek van het stub-object door aan het object op afstand. Het voert de volgende taken uit:



  • Het roept de gewenste methode aan op het echte object dat op de server aanwezig is.

  • Het stuurt de parameters die zijn ontvangen van het stub-object door naar de methode.

Laten we hiermee verder gaan en zien hoe u een RMI-applicatie kunt maken

array van objecten in het Java-voorbeeldprogramma

Stappen om een ​​RMI-applicatie te maken

De onderstaande stappen helpen u bij het maken van een RMI-applicatie:

  1. Een afstandsbediening definiëren koppel
  2. Implementatie van de externe interface
  3. Stomp en skelet maken voorwerpen van de implementatieklasse die RMIC gebruikt (RMI-complier)
  4. Start het RMI-register
  5. Maak het servertoepassingsprogramma en voer het uit
  6. Maak het clienttoepassingsprogramma en voer het uit

Laten we nu eens kijken naar de details van deze stappen.

Stap 1: een externe interface definiëren

Het eerste dat we moeten doen, is een koppel . Dit geeft een beschrijving van de methoden die kunnen worden aangeroepen door externe clients. Deze interface zou de externe interface moeten uitbreiden en het prototype van de methode binnen de interface zou de RemoteException moeten genereren.

// Een zoekinterface maken import java.rmi. * Public interface Search breidt Remote uit {// Declaratie van de methode prototype public String Query (String search) gooit RemoteException}

Stap 2: Implementatie van externe interface

De volgende stap is het implementeren van de externe interface. Om de externe interface te implementeren, moet de klasse zich uitbreiden naar de UnicastRemoteObject-klasse van het java.rmi-pakket . Ook een default bouwer moet worden gemaakt om de java.rmi.RemoteException van de bovenliggende constructor.

// Java-programma om de zoekinterface te implementeren import java.rmi. * Import java.rmi.server. * Public class SearchQuery breidt UnicastRemoteObject uit met Search {// Default constructor om RemoteException uit zijn bovenliggende constructor te gooien SearchQuery () gooit RemoteException {super ( )} // Implementatie van de query-interface public String-query (String-zoekopdracht) genereert RemoteException {String-resultaat if (search.equals ('Reflection in Java')) result = 'true' else result = 'false' retourresultaat}}

Stap 3: Stub- en Skeleton-objecten maken van de implementatieklasse met behulp van rmic

De RMIC-tool wordt gebruikt om de RMI-compiler op te roepen die de Stub- en Skeleton-objecten maakt. Het prototype is de naam van de RMIC-klasse.

STAP 4: Start de RMIregistry
U moet de registerservice starten door de opdracht uit te voeren bij de opdrachtprompt om RMIregistry te starten

STAP 5: Maak het servertoepassingsprogramma en voer het uit
De volgende stap is het maken van het servertoepassingsprogramma en het uitvoeren op een afzonderlijke opdrachtprompt.

  • Het serverprogramma gebruikt de createRegistry methode van de klasse LocateRegistry om rmiregistry te maken binnen de server-JVM met het poortnummer dat is doorgegeven als een argument.

  • De rebind-methode van Naming class wordt gebruikt om het externe object aan de nieuwe naam te binden.

// programma voor servertoepassing import java.rmi. * import java.rmi.registry. * public class SearchServer {public static void main (String args []) {try {// Maak een object van de interface-implementatieklasse Search obj = new SearchQuery () // rmiregistry binnen de server JVM met // poortnummer 1900 LocateRegistry.createRegistry (1900) & ltp style = 'text-align: justify' & gt // Bindt het externe object met de naam // edureka Naming.rebind ( 'rmi: // localhost: 1900' + '/ edureka', obj)} catch (uitzondering ae) {System.out.println (ae)}}}

Stap 6: Creëer en voer het Client Application-programma uit
De laatste stap is het maken van het Client Application-programma en het uitvoeren op een aparte opdrachtprompt. De opzoekmethode van Naming class wordt gebruikt om de referentie van het Stub-object op te halen

Het bovenstaande client- en serverprogramma wordt op dezelfde machine uitgevoerd en daarom wordt localhost gebruikt. Om vanaf een andere machine toegang te krijgen tot het externe object, moet localhost worden vervangen door het IP-adres waarop het externe object aanwezig is.

Dit brengt ons dus bij het einde van het KMI in artikel. Ik hoop dat je het informatief vond en je hielp bij het begrijpen van de grondbeginselen.

c ++ array sorteren

Bekijk de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. We zijn hier om je te helpen bij elke stap op je reis, om naast deze Java-interviewvragen een curriculum te worden dat is ontworpen voor studenten en professionals die een Java Ontwikkelaar. De cursus is bedoeld om u een voorsprong te geven in het programmeren van Java en u te trainen in zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in de commentarensectie van dit 'RMI in Java' -artikel en we nemen zo snel mogelijk contact met u op.