Pregled arhitekture RMI

V razporejeni arhitekturi aplikacij je vedno potrebna komunikacija med dvema različnima aplikacijama. V aplikacijah, ki temeljijo na Javi, ena aplikacija komunicira z drugo oddaljeno / drugo aplikacijo, ki se izvaja nekje drugje z mehanizmom, imenovanim RMI arhitektura.

RMI pomeni kratica oddaljenih metod. To je API, ki ga ponuja java in omogoča objektu, ki prebiva v enem JVM (Java Virtual Machine), dostop do objekta, ki se izvaja v drugem JVM, ali ga pokliče. Drugi JVM je lahko na istem ali oddaljenem stroju. To je zanimiva funkcija, saj v aplikacijah v realnem času Java aplikacije zelo enostavno komunicirajo med seboj brez kakršnega koli zunanjega komunikacijskega mehanizma. Prav tako je vedno potrebna varna komunikacija med aplikacijami na podlagi porazdeljene arhitekture aplikacij.

RMI Design

Preden se lotimo podrobne arhitekture, bomo razumeli osnovno zasnovo arhitekture RMI.

  • API RMI je na voljo v paketu java.rmi. Uvedimo dva izraza za razumevanje arhitekture zasnove RMI. Prvo je stranka; JVM, ki bo poklical oddaljeni objekt in drugi je strežnik; JVM, ki vsebuje oddaljeni objekt. Torej bo odjemalec poklical strežnik, v tem primeru na objekt zaradi priklica metode.
  • Nato strežnik vrne odjemalcu referenco predmeta. Tukaj so ujeti tako predmeti, tj. Lokalni in oddaljeni bodo na strežniku prikazani kot lokalni objekt. Razlike med obema ne bo. Skladnost metod obeh predmetov je tudi enaka. Zato strežnik JVM deluje kot običajni JVM, ne da bi poznal noben predmet, naj bo lokalni ali oddaljeni.
  • Isti objekt je lahko strežnik in odjemalec. Dobi se sklic na oddaljene predmete in se uporablja, kot da je lokalni predmet. Infrastruktura RMI je odgovorna za iskanje oddaljenega predmeta, prestrezanje klica metode in obdelavo oddaljene zahteve na daljavo. Odjemalec prikliče metode na predmet šele po pridobitvi reference na oddaljeni objekt.

Arhitektura RMI

Spodaj je na preprost način prikazan arhitektura RMI. Na internetu boste našli različne oblike iste arhitekture, vendar imamo enostavne, ki nam bodo pomagale razložiti.

Začnimo s povezovanjem pik z vidika oblikovanja z arhitekturnim diagramom.

Odjemalec in strežniška aplikacija sta ustrezni JVM odjemalca in strežniškega stroja. V aplikacijo RMI pišemo dva programa oz. odjemalski program, ki je na odjemalcu, in strežniški program, ki je na strežniškem stroju.

Aplikacijski sloj:

Ta plast je dejanski sistem, torej odjemalec in strežnik, ki sodelujeta v komunikaciji. Program java na strani odjemalca komunicira s programom java na strani strežnika.

Stub:

Od uvedbe dizajna imamo predmete stranke; V arhitekturi RMI je znan kot Stub. To je objekt, ki prebiva na odjemalskem stroju in deluje kot posrednik za oddaljeni objekt. Je kot prehod za program za stranke.

Škrbca ima iste metode kot oddaljeni predmet. Ko odjemalec pokliče predmet škrbine, škrbina to zahtevo posreduje oddaljenemu objektu (skeletu) prek infrastrukture RMI, ki se nato izvede na strežniku.

Stub izvaja naslednje dogodke: -

  1. Začne povezavo z oddaljenim JVM,
  2. Zapiše in posreduje (Marshals) parametre na oddaljeni JVM,
  3. Čaka na rezultat,
  4. Prebere (razveljavi) vrnjeni rezultat,
  5. Prejeti rezultat posredujte klicatelju.

Okostje:

Strežniški objekt, ki prebiva v strežniškem stroju, je znan kot Skelet. Stub komunicira s strežniško aplikacijo s pomočjo vmesnega objekta Skeleton.

Odgovornost skeletnega predmeta je, da pošlje parametre za izvajanje metode in vrne povratne vrednosti nazaj odjemalcu.

Skelet izvaja naslednje dogodke: -

  1. Bere parameter, ki ga je posredoval odjemalec,
  2. Pokliče metodo na dejanski oddaljeni objekt,
  3. Rezultat posredujte / posredujte klicatelju.

Plast steber / skelet:

  • Plast Stub / Skeleton je odgovorna za prestrezanje klicev, ki jih opravi odjemalec, in preusmeritev teh klicev na oddaljeni objekt. Ta plast se imenuje tudi proxy Layer. Stub in Skeleton sta pooblaščenca za stranko in strežnik. Predmeti Stub in Skeleton so kot vmesnik med aplikacijo in preostalim sistemom RMI.
  • Namen te plasti je prenos podatkov v oddaljeni referenčni sloj s serijsko izvedbo objekta. Ta postopek pretvorbe podatkov / predmeta v bajtni tok je znan kot Marshalling, obratno pa je znan kot Unmarshalling. Marshaling se izvede pri zahtevi predmeta od strežnika, Unmarshalling pa se izvede, ko se od strežnika prejme sklic podatkov / predmeta.

Oddaljeni referenčni sloj:

  • Proxy sloj je povezan z mehanizmom RMI prek oddaljenega referenčnega sloja. Ta plast je odgovorna za komunikacijo in prenos predmetov med odjemalcem in strežnikom. Semantika priklica povezave RMI je definirana in podprta s tem slojem.
  • Oddaljeni referenčni sloj je odgovoren za vzdrževanje seje med klicem metode. tj. Upravlja reference, ki jih je odjemalec dal na objekt oddaljenega strežnika. Ta plast je odgovorna tudi za ravnanje s podvojenimi predmeti.

Transportni sloj:

Za vzpostavitev komunikacije med obema strojema je odgovoren transportni sloj. Ta plast za povezavo uporablja standardni TCP / IP protokol. Dejanski prenos podatkov se izvaja prek tega sloja. Ta plast je del oddaljenega referenčnega sloja.

Zaključek

  • Poziv na oddaljene metode (RMI) je zelo uporaben API, ki je na voljo v JAVA in pomaga pri komunikaciji med dvema različnima JVM. Objekt omogoča, da se pri predmetu, ki prebiva v drugem naslovnem prostoru, sklicuje na metodo.
  • Aplikacijam omogoča varen način medsebojne komunikacije. To funkcionalnost dosega s konceptoma Stub (odjemalec kliče objekt) in Skelet (Oddaljeni objekt, ki prebiva na strežniku).
  • RMI se uporablja za gradnjo porazdeljenih aplikacij. Ohranja vrsto varnosti. Arhitektura RMI zmanjšuje zapletenost aplikacije v porazdeljeni arhitekturi.

Priporočeni članki

To je vodnik za arhitekturo RMI. Tu podrobno razpravljamo o zasnovi RMI in arhitekturi z ustreznim blokovnim diagramom. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Arhitektura skladišča podatkov
  2. Kaj je protokol TCP?
  3. Kaj je namizna programska oprema?
  4. Vprašanja za intervju CCNA