Pregled arhitekture RMI

U distribuiranoj arhitekturi aplikacija uvijek je potrebna komunikacija između dvije različite aplikacije. U Java-temeljenim aplikacijama jedna aplikacija komunicira s drugom udaljenom / drugom aplikacijom koja se izvodi negdje drugdje pomoću mehanizma koji se zove RMI arhitektura.

RMI označava udaljeni poziv. To je API koji pruža Java, a objektu koji boravi na jednom JVM (Java Virtual Machine) omogućuje pristup ili poziv objektu koji se izvodi na drugom JVM-u. Drugi JVM može biti na istom stroju ili udaljenom stroju. Ovo je zanimljiva značajka jer u stvarnim vremenskim aplikacijama za Java aplikacije postaje vrlo jednostavno međusobno komunicirati bez ikakvog vanjskog komunikacijskog mehanizma. Također, uvijek je potrebna sigurna komunikacija između aplikacija zasnovana na distribuiranoj arhitekturi aplikacija.

RMI dizajn

Prije nego što krenemo u detaljnu arhitekturu, razumjet ćemo osnovni dizajn RMI arhitekture.

  • RMI API nalazi se u paketu java.rmi. Uvedimo dva pojma za razumijevanje arhitekture dizajna RMI. Prvo je klijent; JVM koji će pozvati udaljeni objekt i drugi je server; JVM koji sadrži udaljeni objekt. Dakle, klijent će pozvati poslužitelj, u ovom slučaju na objekt radi poziva metode.
  • Poslužitelj će potom vratiti referencu objekta klijentu. Ulov ovdje su i objekti, tj. Lokalni i daljinski pojavit će se kao lokalni objekt na poslužitelju. Neće biti razlike između to dvoje. Sintaksa metoda oba objekta je također ista. Stoga, poslužitelj JVM djeluje poput uobičajenog JVM bez saznanja za bilo koji objekt je li lokalni ili udaljeni.
  • Isti objekt može biti i poslužitelj i klijent. Dobiva se referenca udaljenih objekata i koristi se kao da je lokalni objekt. RMI infrastruktura odgovorna je za pronalazak udaljenog objekta, presretanje poziva metode i daljinsku obradu zahtjeva. Klijent poziva metode na objekt tek nakon što dobije referencu na udaljeni objekt.

RMI arhitektura

Ispod je dijagram RMI arhitekture na jednostavan način. Na internetu ćete pronaći razne oblike iste arhitekture, ali mi imamo jednostavan onaj koji će vam pomoći da to bolje objasnite.

Započnimo povezivanjem točkica iz perspektive dizajna s arhitektonskim dijagramom.

Klijentska aplikacija i aplikacija poslužitelja su odgovarajući JVM-ovi klijentskog i poslužiteljskog stroja. U RMI aplikaciji pišemo dva programa; klijentski program koji se nalazi na klijentskom i poslužiteljskom programu koji je smješten na poslužiteljskom stroju.

Sloj aplikacije:

Ovaj sloj su stvarni sustavi tj. Klijent i poslužitelj koji su uključeni u komunikaciju. Program java na strani klijenta komunicira s java programom na strani poslužitelja.

Stub:

Od uvoda dizajna, imamo klijentske objekte; U RMI arhitekturi je poznat kao Stub. To je objekt koji se nalazi na klijentskom stroju i djeluje kao proxy za udaljeni objekt. To je poput pristupnika za program klijenta.

Stub ima iste metode kao i udaljeni objekt. Kada klijent poziva objekt ubode, uboda prosljeđuje ovaj zahtjev udaljenom objektu (skeletu) putem RMI infrastrukture koja se zatim izvršava na poslužitelju.

Stub Izvodi sljedeće događaje: -

  1. Inicira vezu s daljinskim JVM,
  2. Piše i šalje (maršale) parametre na udaljeni JVM,
  3. Čeka na rezultat,
  4. Čita (razmršava) vraćeni rezultat,
  5. Dobiveni rezultat proslijedite pozivaocu.

Kostur:

Objekt poslužitelja koji se nalazi u poslužiteljskom stroju poznat je pod nazivom Skeleton. Stub komunicira s aplikacijom poslužitelja uz pomoć internetskog objekta Skeleton.

Odgovornost skeletnog objekta je slanje parametara u implementaciju metode i vraćanje vrijednosti natrag klijentu.

Skeleton Izvodi sljedeće događaje: -

  1. Čita parametar koji je poslao klijent,
  2. Poziva metodu na stvarni udaljeni objekt,
  3. Prenesite / proslijedite rezultat pozivaocu.

Sloj skele / skeleta:

  • Sloj Stub / Skeleton odgovoran je za presretanje poziva koje upućuje klijent i za preusmjeravanje tih poziva na udaljeni objekt. Ovaj sloj se još naziva i proxy sloj. Stub i Skeleton su posrednici za klijenta i poslužitelja. Objekti Stub i Skeleton su poput sučelja između aplikacije i ostatka RMI sustava.
  • Namjena ovog sloja je prijenos podataka u udaljeni referentni sloj objektnom serializacijom. Ovaj postupak pretvaranja podataka / objekta u bajt tok poznat je pod nazivom Marshalling, a obrnuto je poznat i kao Unmarshalling. Marshaling se izvodi kada se objekt traži od poslužitelja, a Unmarshalling se izvodi kada se podatak podataka / objekta primi od poslužitelja.

Daljinski referentni sloj:

  • Proxy sloj povezan je s mehanizmom RMI putem udaljenog referentnog sloja. Ovaj sloj je odgovoran za komunikaciju i prijenos objekata između klijenta i poslužitelja. Semantika poziva RMI veze definira i podržava ovaj sloj.
  • Daljinski referentni sloj odgovoran je za održavanje sesije tijekom poziva metode. tj. Upravlja referencama koje je klijent uputio na objekt udaljenog poslužitelja. Ovaj sloj je također odgovoran za rukovanje dupliciranim objektima.

Transportni sloj:

Transportni sloj odgovoran je za uspostavljanje komunikacije između dva stroja. Ovaj sloj koristi standardni TCP / IP protokol za povezivanje. Stvarni transport podataka vrši se kroz ovaj sloj. Ovaj sloj je dio udaljenog referentnog sloja.

Zaključak

  • Daljinski poziv (RMI) je vrlo koristan API koji se nudi u JAVA i koji pomaže u komunikaciji između dva različita JVM-a. Omogućuje da objekt može pozvati metodu na objekt koji se nalazi u drugom adresnom prostoru.
  • Omogućuje siguran način da aplikacije međusobno komuniciraju. Ovu funkcionalnost postiže pomoću koncepata Stub (objekt koji poziva klijent) i Skeleton (Udaljeni objekt koji boravi na poslužitelju).
  • RMI se koristi za izgradnju distribuiranih aplikacija. Čuva vrstu sigurnosti. RMI arhitektura minimizira složenost aplikacije u distribuiranoj arhitekturi.

Preporučeni članci

Ovo je vodič za RMI arhitekturu. Ovdje detaljno raspravljamo o RMI dizajnu i arhitekturi s odgovarajućim blok dijagramom. Možete i proći naše druge predložene članke da biste saznali više -

  1. Arhitektura skladišta podataka
  2. Što je TCP protokol?
  3. Što je Desktop softver?
  4. CCNA pitanja za intervju

Kategorija: