Čo je vzdialené vyvolanie metódy v Jave?



Tento článok o RMI v Jave vám povie, ako implementovať rozhranie vzdialeného vyvolávania metód v rámci klienta a servera, spolu s praktickým príkladom.

Diaľkové vyvolanie metódy je spôsob, ktorý programátor využíva a jeho vývojové prostredie na diaľku. Je to všetko o tom, ako predmety na rôznych počítačoch interagujú v distribuovanej sieti. V tomto článku o vzdialenej metóde vyvolávania v prostredí Java vám poviem, ako vytvoriť aplikáciu RMI v rámci klienta a servera.

V tomto článku sa venujeme týmto témam:





Začnime!

Čo je RMI v Jave?

The RMI (Remote Method Invocation) je API, ktoré poskytuje mechanizmus na vytvorenie distribuovanej aplikácie v . RMI umožňuje objektu vyvolať metódy na objekte bežiacom v inom . Aplikácia Remote Method Invocation poskytuje vzdialenú komunikáciu medzi aplikáciami pomocou dvoch objektov pahýľ a kostra .



Pochopenie pahýľa a kostry

Objekt stub na klientskom počítači vytvorí informačný blok a odošle tieto informácie na server. Blok pozostáva z:

  • Identifikátor vzdialeného objektu, ktorý sa má použiť
  • Názov metódy, ktorá sa má vyvolať
  • Parametre vzdialeného JVM

Stub and Skeleton - RMI v Jave - EdurekaKostrový objekt

python def __init__

Kostrový objekt odovzdáva požiadavku z objektu pahýľa vzdialenému objektu. Vykonáva tieto úlohy:



  • Zavolá požadovanú metódu na skutočný objekt na serveri.

  • Preposiela parametre prijaté z objektu stub do metódy.

Týmto sa poďme posunúť ďalej a uvidíme, ako vytvoriť aplikáciu RMI

Kroky na vytvorenie aplikácie RMI

Nasledujúce kroky vám pomôžu vytvoriť aplikáciu RMI:

  1. Definovanie diaľkového ovládača rozhranie
  2. Implementácia vzdialeného rozhrania
  3. Vytvorenie pahýľa a kostry predmety z implementačnej triedy pomocou RMIC (RMI complier)
  4. Spustite register RMI
  5. Vytvorte a vykonajte aplikačný program servera
  6. Vytvorte a vykonajte program klientskej aplikácie

Teraz sa pozrime na podrobnosti týchto krokov.

Krok 1: Definovanie vzdialeného rozhrania

Prvá vec, ktorú musíme urobiť, je vytvoriť rozhranie . To poskytne popis metód, ktoré môžu byť vyvolané vzdialenými klientmi. Toto rozhranie by malo rozšíriť vzdialené rozhranie a prototyp metódy v rámci rozhrania by mal vyvolať výnimku RemoteException.

// Vytvorenie vyhľadávacieho rozhrania import java.rmi. * Verejné rozhranie Search extends Remote {// Deklarovanie prototypu metódy public String Query (String search) vyvolá RemoteException}

Krok 2: Implementácia vzdialeného rozhrania

Ďalším krokom je implementácia vzdialeného rozhrania. S cieľom implementovať vzdialené rozhranie by sa trieda mala rozšíriť na Trieda balíka java.rmi UnicastRemoteObject . Tiež predvolené staviteľ je potrebné vytvoriť hodiť java.rmi.RemoteException od nadradeného konštruktora.

// Program Java na implementáciu rozhrania vyhľadávania import java.rmi. * Import java.rmi.server. * Verejná trieda SearchQuery rozširuje UnicastRemoteObject implementuje Search {// predvolený konštruktor na vyhodenie RemoteException z nadradeného konštruktora SearchQuery () hodí RemoteException {super ( )} // Implementácia verejného rozhrania dotazu Public String query (String search) throws RemoteException {String result if (search.equals ('Reflection in Java')) result = 'true' else result = 'false' return result}}

Krok 3: Vytváranie objektov Stub a Skeleton z triedy implementácie pomocou nástroja rmic

Nástroj RMIC sa používa na vyvolanie kompilátora RMI, ktorý vytvára objekty Stub a Skeleton. Jeho prototypom je názov triedy RMIC.

KROK 4: Spustite RMIregistry
Službu registra musíte spustiť zadaním príkazu na príkazovom riadku spustiť RMIregistry

KROK 5: Vytvorte a vykonajte aplikačný program servera
Ďalším krokom je vytvorenie aplikačného programu servera a jeho vykonanie na samostatnom príkazovom riadku.

  • Serverový program používa createRegistry metóda triedy LocateRegistry na vytvorenie rmiregistry v rámci servera JVM s číslom portu odovzdaným ako argument.

  • Na naviazanie vzdialeného objektu na nový názov sa používa metóda rebind triedy Naming.

// program pre serverovú aplikáciu import java.rmi. * import java.rmi.registry. * verejná trieda SearchServer {public static void main (String args []) {try {// Vytvorenie objektu triedy implementácie rozhrania Search obj = new SearchQuery () // rmiregistry within the server JVM with // port number 1900 LocateRegistry.createRegistry (1900) & ltp style = 'text-align: justify' & gt // Spojí vzdialený objekt s menom // edureka Naming.rebind ( 'rmi: // localhost: 1900' + '/ edureka', obj)} catch (Výnimka ae) {System.out.println (ae)}}}

Krok 6: Vytvorte a vykonajte program klientskej aplikácie
Posledným krokom je vytvorenie programu klientskej aplikácie a jeho vykonanie na samostatnom príkazovom riadku. Na získanie referencie na objekt Stub sa používa vyhľadávacia metóda triedy Naming

Vyššie uvedený program klienta a servera sa vykonáva na rovnakom stroji, a preto sa používa server localhost. Aby bolo možné pristupovať k vzdialenému objektu z iného počítača, musí sa localhost nahradiť IP adresou, kde je vzdialený objekt prítomný.

Týmto sa dostávame na koniec RMI v článok. Dúfam, že ste to našli informatívne a pomohli vám pochopiť základy.

Pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Sme tu, aby sme vám pomohli na každom kroku na vašej ceste. Aby sme sa stali otázkami okrem rozhovoru v jazyku Java, vymyslíme učebný plán určený pre študentov a profesionálov, ktorí chcú byť Java Vývojár. Kurz je navrhnutý tak, aby vám dal náskok v programovaní v jazyku Java a naučil vás základné aj pokročilé koncepty jazyka Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov v tomto článku „RMI v Jave“ a ozveme sa vám čo najskôr.