Yleiskatsaus RMI-arkkitehtuurista

Hajautetussa sovellusarkkitehtuurissa on aina tarpeen viestiä kahden eri sovelluksen välillä. Java-pohjaisissa sovelluksissa yksi sovellus on yhteydessä toiseen etä / muuhun sovellukseen, joka toimii muualla, käyttämällä mekanismia, jota kutsutaan RMI-arkkitehtuuriksi.

RMI tarkoittaa etämenetelmän kutsumista. Se on Java-sovelluksen tarjoama sovellusliittymä, jonka avulla yhdessä JVM: ssä (Java Virtual Machine) asuva kohde voi käyttää toisessa JVM: ssä käynnissä olevaa objektia tai kutsua sitä esiin. Toinen JVM voi olla samassa koneessa tai etäkoneessa. Tämä on mielenkiintoinen ominaisuus, koska reaaliaikaisissa sovelluksissa Java-sovellusten on erittäin helppoa kommunikoida suoraan keskenään ilman ulkoista viestintämekanismia. Lisäksi on aina tarvetta turvalliseen tiedonsiirtoon sovellusten välillä hajautetun sovellusarkkitehtuurin perusteella.

RMI-suunnittelu

Ennen kuin siirrymme yksityiskohtaiseen arkkitehtuuriin, ymmärrämme RMI-arkkitehtuurin perussuunnittelun.

  • RMI API toimitetaan paketissa java.rmi. Esitetään kaksi termiä RMI-arkkitehtuurin ymmärtämiseen. Ensimmäinen on asiakas; JVM, joka kutsuu etäobjektin ja toinen on palvelin; JVM, joka sisältää etäobjektin. Joten asiakas soittaa palvelimelle, tässä tapauksessa objektille menetelmän kutsumiseksi.
  • Palvelin palauttaa sitten objektin viitteen asiakkaalle. Saalis on tässä sekä objektit, ts. Paikallinen ja etäinen näkyvät palvelimella paikallisena objektina. Näiden kahden välillä ei ole eroa. Kummankin objektin menetelmien syntaksi on myös sama. Siksi palvelimen JVM toimii kuten normaali JVM tietämättä mitään objektia, onko se paikallista vai kauko-ohjainta.
  • Sama objekti voi olla sekä palvelin että asiakas. Etäobjektien viite saadaan, ja sitä käytetään ikään kuin se olisi paikallinen objekti. RMI-infrastruktuuri vastaa etäobjektin löytämisestä, menetelmäkutsujen sieppaamisesta ja etäpyynnön käsittelystä etäyhteyden kautta. Asiakas vetoaa menetelmiin objektiin vasta saatuaan viittauksen etäobjektiin.

RMI-arkkitehtuuri

Alla on kaavio RMI-arkkitehtuurista yksinkertaisella tavalla. Internetistä löydät saman muotoilun eri muotoja, mutta meillä on yksinkertainen, joka auttaa selittämään sitä paremmin.

Aloitetaan yhdistämällä pisteitä suunnittelun näkökulmasta arkkitehtuurikaavioon.

Asiakassovellus ja palvelinsovellus ovat vastaavat asiakaskoneen ja palvelinlaitteen JVM: t. RMI-sovelluksessa kirjoitamme vastaavasti kaksi ohjelmaa; asiakasohjelma, joka sijaitsee asiakas- ja palvelinohjelmassa, joka sijaitsee palvelinkoneessa.

Sovelluskerros:

Tämä kerros on todelliset järjestelmät eli asiakas ja palvelin, jotka osallistuvat viestintään. Asiakaspuolen Java-ohjelma on yhteydessä palvelinpuolen Java-ohjelmaan.

Tynkä:

Suunnitteluesittelystä alkaen meillä on asiakasobjekteja; RMI-arkkitehtuurissa se tunnetaan nimellä Stub. Se on objekti, joka sijaitsee asiakaskoneella ja toimii välityspalvelimena etäobjektille. Se on kuin yhdyskäytävä asiakasohjelmalle.

Viilalla on samat menetelmät kuin etäobjektilla. Kun asiakas pyytää tynkäobjektia, tynkä välittää tämän pyynnön etäobjektille (Skeleton) RMI-infrastruktuurin kautta, joka sitten suoritetaan palvelimella.

Stub Suorittaa seuraavat tapahtumat: -

  1. Aloittaa yhteyden kauko-JVM: ään,
  2. Kirjoittaa ja lähettää (marshals) parametrit etä JVM: lle,
  3. Odottaa tulosta,
  4. Lukee (Unmarshalls) palautetun tuloksen,
  5. Siirrä vastaanotettu tulos soittajalle.

Luuranko:

Palvelinkoneessa oleva palvelinobjekti tunnetaan nimellä Skeleton. Stub kommunikoi palvelinsovelluksen kanssa Skeleton-väliobjektin avulla.

Luuranko-objektin vastuulla on parametrien lähettäminen menetelmän toteuttamiseen ja palautusarvojen lähettäminen takaisin asiakkaalle.

Luuranko suorittaa seuraavat tapahtumat: -

  1. Lukee asiakkaan ohittaman parametrin,
  2. Käynnistää menetelmän todellisessa etäobjektissa,
  3. Lähetä / välitä tulos soittajalle.

Stub / luuranko kerros:

  • Stub / Skeleton -kerros vastaa asiakkaan soittojen sieppaamisesta ja näiden puheluiden ohjaamisesta etäobjektiin. Tätä kerrosta kutsutaan myös välityspalkkikerrokseksi. Stub ja Skeleton ovat välityspalvelimet asiakkaalle ja palvelimelle. Stub- ja Skeleton-objektit ovat kuin käyttöliittymä sovelluksen ja muun RMI-järjestelmän välillä.
  • Tämän kerroksen tarkoituksena on siirtää tietoja etäviitekerrokseen objektisarjaamalla. Tätä prosessia tietojen / objektin muuntamiseksi tavuvirraksi tunnetaan nimellä Marshalling ja käänteistä tunnetaan nimellä Unmarshalling. Marshaling suoritetaan, kun objektia pyydetään palvelimelta, ja Unmarshalling suoritetaan, kun data / objektiviite vastaanotetaan palvelimelta.

Etäviitekerros:

  • Välityskerros on kytketty RMI-mekanismiin etäviitekerroksen kautta. Tämä kerros vastaa viestinnästä ja objektien siirrosta asiakkaan ja palvelimen välillä. Tämä kerros määrittelee ja tukee RMI-yhteyden kutsutusta semantiikkaa.
  • Etäviitekerros on vastuussa istunnon ylläpidosta menetelmäpuhelun aikana. eli se hallitsee asiakkaan viittauksia etäpalvelinobjektiin. Tämä kerros vastaa myös kopioitujen kohteiden käsittelystä.

Kuljetuskerros:

Kuljetuskerros vastaa viestinnän muodostamisesta kahden koneen välillä. Tämä kerros käyttää yhteyteen tavallista TCP / IP-protokollaa. Tosiasiallinen datan kuljetus suoritetaan tämän kerroksen kautta. Tämä kerros on osa etäviitekerrosta.

johtopäätös

  • Etäinen menetelmäkutsu (RMI) on erittäin hyödyllinen sovellusliittymä, joka toimitetaan JAVA: ssa, mikä auttaa kommunikoimaan kahden eri JVM: n välillä. Sen avulla objekti voi kutsua menetelmän toisessa osoitetilassa olevalle objektille.
  • Se tarjoaa turvallisen tavan sovelluksille kommunikoida keskenään. Se saavuttaa tämän toiminnallisuuden käsitteiden Stub (asiakassoittoobjekti) ja Skeleton (palvelimella oleva etäobjekti) avulla.
  • RMI: tä käytetään hajautettujen sovellusten rakentamiseen. Se säilyttää turvallisuuden tyypin. RMI-arkkitehtuuri minimoi sovelluksen monimutkaisuuden hajautetussa arkkitehtuurissa.

Suositellut artikkelit

Tämä on ollut opas RMI-arkkitehtuuriin. Tässä keskustellaan yksityiskohtaisesti RMI-suunnittelusta ja arkkitehtuurista sopivan lohkokaavion avulla. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. Tietovarastoarkkitehtuuri
  2. Mikä on TCP-protokolla?
  3. Mikä on työpöytäohjelmisto?
  4. CCNA-haastattelukysymykset