Oversigt over RMI Architecture

I distribueret applikationsarkitektur er det altid et behov for kommunikation mellem to forskellige applikationer. I Java-baserede applikationer kommunikerer et program med et andet fjern / andet program, der kører et andet sted ved hjælp af en mekanisme kaldet RMI-arkitektur.

RMI står for Remote Method Invocation. Det er et API leveret af java, som tillader et objekt, der er bosat i en JVM (Java Virtual Machine) at få adgang til eller påkalde et objekt, der kører på en anden JVM. Den anden JVM kunne være på den samme maskine eller fjernmaskine. Dette er en interessant funktion, fordi det i realtid applikationer bliver meget let for Java-applikationer at kommunikere direkte med hinanden uden nogen ekstern kommunikationsmekanisme. Det er også altid et behov for sikker kommunikation mellem applikationer baseret på distribueret applikationsarkitektur.

RMI Design

Før vi går ind på detaljeret arkitektur, vil vi forstå det grundlæggende design af RMI-arkitektur.

  • RMI API leveres i pakken java.rmi. Lad os introducere to udtryk for forståelsen af ​​RMI-designarkitektur. Først er klienten; den JVM, der vil kalde eksternt objekt og det andet er server; den JVM, der indeholder det eksterne objekt. Så klienten vil ringe til serveren, i dette tilfælde på objektet til metodeindkaldelse.
  • Serveren returnerer derefter referencen til objektet til klienten. Fangsten her er både objekter, dvs. lokal og fjern vises som et lokalt objekt på serveren. Der vil ikke være nogen differentiering mellem de to. Syntaks for metoderne til begge objekter er også den samme. Derfor fungerer serveren JVM som normal JVM uden at vide om noget objekt, uanset om det er lokalt eller fjernt.
  • Det samme objekt kan være både en server og en klient. Henvisning til fjernobjekter fås, og den bruges som om det var et lokalt objekt. RMI-infrastrukturen er ansvarlig for at finde det eksterne objekt, aflytte metodekald og behandle fjernanmodningen eksternt. Klienten påberåber sig først metoder på objektet efter at have fået en henvisning til et fjernobjekt.

RMI Arkitektur

Nedenfor er skemaet af RMI-arkitektur på en enkel måde. På Internettet finder du forskellige former for den samme arkitektur, men vi har en enkel, der hjælper med at forklare den bedre.

Lad os starte med at forbinde prikker fra et designperspektiv med et arkitekturdiagram.

Klientapplikationen og serverapplikationen er de respektive JVM'er for klientmaskinen og servermaskinen. I RMI-applikation skriver vi henholdsvis to programmer; klientprogrammet, der findes på klienten, og serverprogrammet, der findes på servermaskinen.

Applikationslag:

Dette lag er de faktiske systemer, dvs. klient og server, der er involveret i kommunikation. Java-programmet på klientsiden kommunikerer med java-programmet på serversiden.

stub:

Fra designintro har vi klientobjekter; I RMI-arkitektur er det kendt som Stub. Det er et objekt, der findes på klientmaskinen, og det fungerer som en proxy for det eksterne objekt. Det er som en gateway til klientprogrammet.

Stubben har de samme metoder som et fjernobjekt. Når klienten kalder på stubobjektet, videresender stubben denne anmodning til et eksternt objekt (Skelet) via RMI-infrastruktur, som derefter udføres på serveren.

Stub Udfører følgende begivenheder: -

  1. Initierer forbindelse med ekstern JVM,
  2. Skriver og overfører (Marshals) parametre til ekstern JVM,
  3. Venter på resultatet,
  4. Læser (fjerner annullering af) det returnerede resultat,
  5. Videresend det modtagne resultat til den, der ringer.

Skelet:

Serverobjektet, der findes i en servermaskine, kaldes Skelet. Stub kommunikerer med serverapplikation ved hjælp af et mellemliggende skeletobjekt.

Skeletobjektets ansvar er at sende parametre til metodeimplementering og sende returnerværdierne tilbage til klienten.

Skelet udfører følgende begivenheder: -

  1. Læser den parameter, som klienten har bestået,
  2. Påkalder metoden på det faktiske fjernobjekt,
  3. Overfør / videregive resultatet til den, der ringer.

Stub / skelet lag:

  • Stub / skelet-laget er ansvarlig for at aflytte opkald foretaget af klienten og omdirigere disse opkald til det fjerne objekt. Dette lag kaldes også som proxylag. Stub og skelet er proxies for klient og server. Stub- og skeletobjekterne er som en grænseflade mellem en applikation og resten af ​​RMI-systemet.
  • Formålet med dette lag er at overføre data til Remote Reference Layer ved hjælp af objekt Serialisering. Denne proces med at konvertere data / objekt til byte-strøm er kendt som Marshalling, og det omvendte er kendt som Unmarshalling. Marshaling udføres, når du anmoder om objektet fra serveren, og Unmarshalling udføres, når data / objektreference modtages fra serveren.

Fjernreferencelag:

  • Proxy-laget er forbundet til RMI-mekanismen via Remote Reference Layer. Dette lag er ansvarlig for kommunikation og overførsel af objekter mellem klient og server. Anropssemantikken for RMI-forbindelsen er defineret og understøttet af dette lag.
  • Fjernreferencelag er ansvarligt for at opretholde sessionen under metoden. dvs. Det administrerer de referencer, som klienten foretager til det eksterne serverobjekt. Dette lag er også ansvarlig for håndtering af duplikerede objekter.

Transportlag:

Transportlaget er ansvarligt for opsætning af kommunikation mellem de to maskiner. Dette lag bruger standard TCP / IP-protokol til forbindelse. Den faktiske transport af data udføres gennem dette lag. Dette lag er en del af Remote Reference Layer.

Konklusion

  • Remote Method Invocation (RMI) er et meget nyttigt API leveret i JAVA, som hjælper med at kommunikere mellem to forskellige JVM'er. Det giver et objekt mulighed for at påberåbe sig en metode på et objekt, der bor i et andet adresserum.
  • Det giver en sikker måde for applikationer at kommunikere med hinanden. Det opnår denne funktionalitet ved hjælp af koncepter Stub (klientopkaldsobjekt) og skelet (fjernobjekt, der bor på serveren).
  • RMI bruges til at bygge distribuerede applikationer. Det bevarer typen af ​​sikkerhed. RMI-arkitektur minimerer applikationens kompleksitet i en distribueret arkitektur.

Anbefalede artikler

Dette har været en guide til RMI Arkitektur. Her diskuterer vi RMI-design og arkitektur i detaljer med et passende blokdiagram. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. Datavarehusarkitektur
  2. Hvad er TCP-protokollen?
  3. Hvad er desktop-software?
  4. CCNA Interview spørgsmål

Kategori: