Přehled architektury RMI

V distribuované aplikační architektuře je vždy potřeba komunikace mezi dvěma různými aplikacemi. V aplikacích založených na jazyce Java jedna aplikace komunikuje s jinou vzdálenou / jinou aplikací běžící někde jinde pomocí mechanismu zvaného architektura RMI.

RMI je zkratka pro Remote Method Invocation. Jde o rozhraní API poskytované java, které umožňuje objektu sídlícímu v jednom JVM (Java Virtual Machine) přistupovat nebo vyvolat objekt spuštěný v jiném JVM. Druhý JVM by mohl být na stejném nebo vzdáleném stroji. To je zajímavá vlastnost, protože v aplikacích v reálném čase je pro aplikace Java velmi snadné komunikovat přímo mezi sebou bez vnějšího komunikačního mechanismu. Vždy je také potřeba zabezpečené komunikace mezi aplikacemi založenými na distribuované architektuře aplikací.

Návrh RMI

Než se pustíme do podrobné architektury, pochopíme základní návrh architektury RMI.

  • RMI API je k dispozici v balíčku java.rmi. Představme si dva termíny pro pochopení architektury designu RMI. První je klient; JVM, které bude volat vzdálený objekt a druhým je server; JVM, který obsahuje vzdálený objekt. Klient tedy zavolá server, v tomto případě na objekt pro vyvolání metody.
  • Server potom vrátí odkaz na objekt klientovi. Úlovek zde představuje objekty, tj. Místní a vzdálený se na serveru zobrazí jako místní objekt. Mezi nimi nebude žádné rozlišení. Syntaxe metod obou objektů je také stejná. Server JVM proto funguje jako normální JVM, aniž by věděl o jakémkoli objektu, zda je místní nebo vzdálený.
  • Stejným objektem může být server i klient. Získává se odkaz na vzdálené objekty a používá se, jako by to byl místní objekt. Infrastruktura RMI je zodpovědná za nalezení vzdáleného objektu, zachycení volání metody a vzdálené zpracování vzdáleného požadavku. Klient vyvolá metody na objektu až po získání odkazu na vzdálený objekt.

Architektura RMI

Níže je schéma architektury RMI jednoduchým způsobem. Na internetu najdete různé podoby stejné architektury, ale máme jednoduchou, která ji pomůže lépe vysvětlit.

Začněme spojováním teček z pohledu designu s architektonickým diagramem.

Klientská aplikace a serverová aplikace jsou příslušné JVM klientského počítače a serverového stroje. V aplikaci RMI píšeme dva programy; klientský program, který je umístěn v klientském a serverovém programu, který je umístěn na stroji serveru.

Vrstva aplikace:

Tato vrstva je skutečnými systémy, tj. Klientem a serverem, které jsou zapojeny do komunikace. Program java na straně klienta komunikuje s programem java na straně serveru.

Pahýl:

Od úvodního návrhu máme klientské objekty; V architektuře RMI je znám jako Stub. Je to objekt, který je umístěn na klientském počítači a funguje jako proxy server pro vzdálený objekt. Je to jako brána pro klientský program.

Stub má stejné metody jako vzdálený objekt. Když klient volá objekt stub, stub předá tento požadavek vzdálenému objektu (Skeleton) přes infrastrukturu RMI, která se poté provede na serveru.

Stub Provádí následující události: -

  1. Zahájí spojení se vzdáleným JVM,
  2. Zapisuje a přenáší (maršálové) parametry do vzdáleného JVM,
  3. Čeká na výsledek,
  4. Přečte (zrušíte) vrácený výsledek,
  5. Přijatý výsledek předejte volajícímu.

Kostra:

Objekt serveru, který se nachází v serverovém počítači, se nazývá Skeleton. Stub komunikuje se serverovou aplikací pomocí přechodného objektu Skeleton.

Odpovědností objektu kostry je poslat parametry k implementaci metody a vrátit vrácené hodnoty zpět klientovi.

Skeleton Provádí následující události: -

  1. Přečte parametr předaný klientem,
  2. Vyvolá metodu na skutečném vzdáleném objektu,
  3. Předejte / předejte výsledek volajícímu.

Vrstva pahýlu / kostry:

  • Vrstva Stub / Skeleton je zodpovědná za zachycení hovorů provedených klientem a přesměrování těchto volání na vzdálený objekt. Tato vrstva se také nazývá Proxy Layer. Stub a Skeleton jsou proxy pro klienta a server. Objekty Stub a Skeleton jsou jako rozhraní mezi aplikací a zbytkem systému RMI.
  • Účelem této vrstvy je přenést data do vzdálené referenční vrstvy pomocí serializace objektů. Tento proces převodu dat / objektů do bajtového proudu je známý jako Marshalling a zpět je znám jako Unmarshalling. Marshaling se provádí při vyžádání objektu ze serveru a Unmarshalling se provádí, když je ze serveru přijata reference na data / objekt.

Vzdálená referenční vrstva:

  • Vrstva proxy je připojena k mechanismu RMI prostřednictvím vzdálené referenční vrstvy. Tato vrstva je zodpovědná za komunikaci a přenos objektů mezi klientem a serverem. Tato vrstva definuje a podporuje sémantiku vyvolání připojení RMI.
  • Vzdálená referenční vrstva je zodpovědná za udržování relace během volání metody. tj. spravuje odkazy provedené klientem na objekt vzdáleného serveru. Tato vrstva je také zodpovědná za zpracování duplicitních objektů.

Transport Layer:

Transportní vrstva je zodpovědná za nastavení komunikace mezi dvěma stroji. Tato vrstva používá pro připojení standardní protokol TCP / IP. Skutečný přenos dat se provádí touto vrstvou. Tato vrstva je součástí vzdálené referenční vrstvy.

Závěr

  • Remote Method Invocation (RMI) je velmi užitečné API poskytované v JAVA, které pomáhá při komunikaci mezi dvěma různými JVM. Umožňuje objektu vyvolat metodu na objektu, který sídlí v jiném adresním prostoru.
  • Poskytuje bezpečnou cestu pro vzájemnou komunikaci aplikací. Tuto funkci dosahuje prostřednictvím konceptů Stub (objekt volající klientem) a Skeleton (vzdálený objekt na serveru).
  • RMI se používá k vytváření distribuovaných aplikací. Zachovává typ bezpečnosti. Architektura RMI minimalizuje složitost aplikace v distribuované architektuře.

Doporučené články

Toto byl průvodce architekturou RMI. Zde diskutujeme podrobně RMI design a architekturu s vhodným blokovým diagramem. Další informace naleznete také v dalších navrhovaných článcích -

  1. Architektura datového skladu
  2. Co je protokol TCP?
  3. Co je to stolní software?
  4. CCNA Interview Otázky

Kategorie: