Oversikt over RMI Architecture

I distribuert applikasjonsarkitektur er det alltid et behov for kommunikasjon mellom to forskjellige applikasjoner. I Java-baserte applikasjoner kommuniserer ett program med en annen ekstern / annen applikasjon som kjører et annet sted ved å bruke en mekanisme som kalles RMI-arkitektur.

RMI står for Remote Method Invocation. Det er et API levert av java som lar et objekt som er bosatt i en JVM (Java Virtual Machine) få tilgang til eller påkalle et objekt som kjører på en annen JVM. Den andre JVM kan være på samme maskin eller ekstern maskin. Dette er en interessant funksjon fordi det i sanntidsapplikasjoner blir veldig enkelt for Java-applikasjoner å kommunisere direkte med hverandre uten noen ekstern kommunikasjonsmekanisme. Det er også alltid et behov for sikker kommunikasjon mellom applikasjoner basert på distribuert applikasjonsarkitektur.

RMI Design

Før vi går inn på detaljert arkitektur, vil vi forstå grunnleggende design av RMI-arkitektur.

  • RMI API leveres i pakken java.rmi. La oss introdusere to begrep for forståelsen av RMI-designarkitektur. Først er klienten; JVM som vil kalle eksternt objekt og det andre er server; JVM som inneholder det eksterne objektet. Så vil klienten ringe serveren, i dette tilfellet på objektet for innkalling av metode.
  • Serveren vil deretter returnere referansen til objektet til klienten. Fangsten her er både objektene, dvs. lokale og eksterne vil vises som et lokalt objekt på serveren. Det blir ingen differensiering mellom de to. Syntaksen til metodene til begge objektene er også den samme. Derfor fungerer serveren JVM som vanlig JVM uten å vite om noe objekt enten det er lokalt eller fjernt.
  • Det samme objektet kan være både en server og en klient. Referansen til eksterne objekter oppnås, og den brukes som om det var et lokalt objekt. RMI-infrastrukturen er ansvarlig for å finne det eksterne objektet, avskjære metodeanrop og behandle ekstern forespørsel eksternt. Klienten påberoper seg metoder på objektet først etter å ha fått en henvisning til et eksternt objekt.

RMI Arkitektur

Nedenfor er diagrammet av RMI-arkitektur på en enkel måte. På internett finner du forskjellige former for den samme arkitekturen, men vi har en enkel en som vil bidra til å forklare den bedre.

La oss starte med å koble prikker fra et designperspektiv med et arkitekturdiagram.

Klientapplikasjonen og serverapplikasjonen er de respektive JVM-ene for klientmaskinen og servermaskinen. I RMI-applikasjon skriver vi henholdsvis to programmer; klientprogrammet som ligger på klienten og serverprogrammet som ligger på servermaskinen.

Applikasjonslag:

Dette laget er de faktiske systemene, dvs. klient og server som er involvert i kommunikasjon. Java-programmet på klientsiden kommuniserer med Java-programmet på serversiden.

Stub:

Fra designintro har vi klientobjekter; I RMI-arkitektur er det kjent som Stub. Det er et objekt som ligger på klientmaskinen, og det fungerer som en proxy for det eksterne objektet. Det er som en inngangsport for klientprogrammet.

Stubben har de samme metodene som et eksternt objekt. Når klienten kaller på stubobjektet, videresender stubben denne forespørselen til et eksternt objekt (Skeleton) via RMI-infrastruktur som deretter blir kjørt på serveren.

Stub Utfører følgende hendelser: -

  1. Initierer tilkobling med ekstern JVM,
  2. Skriver og overfører (Marshals) parametere til eksterne JVM,
  3. Venter på resultatet,
  4. Leser (annullerer) det returnerte resultatet,
  5. Gi det mottatte resultatet videre til den som ringer.

Skjelett:

Serverobjektet som ligger i en servermaskin er kjent som Skeleton. Stub kommuniserer med serverapplikasjon ved hjelp av et mellomliggende skjelettobjekt.

Skjelettobjektets ansvar er å sende parametere til metodeimplementering og sende returverdiene tilbake til klienten.

Skeleton gjennomfører følgende hendelser: -

  1. Leser parameteren som er gitt av klienten,
  2. Påkaller metoden på faktisk eksternt objekt,
  3. Overfør / send resultatet til den som ringer.

Stubb / skjelettlag:

  • Stub / skjelettlaget er ansvarlig for å avskjære anrop utført av klienten og omdirigere disse anropene til det eksterne objektet. Dette laget kalles også som proxy-lag. Stub og skjelett er fullmektiger for klient og server. Stub- og skjelettobjektene er som et grensesnitt mellom et program og resten av RMI-systemet.
  • Formålet med dette laget er å overføre data til ekstern referanselag etter objekt Serialisering. Denne prosessen med å konvertere data / objekt til byte-strøm er kjent som Marshalling og motsatt er kjent som Unmarshalling. Marshaling utføres når du ber om objektet fra serveren og Unmarshalling utføres når data / objektreferanse mottas fra serveren.

Fjernreferanselag:

  • Proxy-laget er koblet til RMI-mekanismen gjennom Remote Reference Layer. Dette laget er ansvarlig for kommunikasjon og overføring av objekter mellom klient og server. Påkallingssemantikken til RMI-tilkoblingen er definert og støttet av dette laget.
  • Remote Reference Layer er ansvarlig for å opprettholde økten under metoden. dvs. Den håndterer referansene fra klienten til det eksterne serverobjektet. Dette laget er også ansvarlig for håndtering av dupliserte objekter.

Transportlag:

Transportlaget er ansvarlig for å sette opp kommunikasjon mellom de to maskinene. Dette laget bruker standard TCP / IP-protokoll for tilkobling. Selve transporten av data utføres gjennom dette laget. Dette laget er en del av Remote Reference Layer.

Konklusjon

  • Remote Method Invocation (RMI) er et veldig nyttig API levert i JAVA som hjelper i kommunikasjonen mellom to forskjellige JVM-er. Det gjør at et objekt kan påkalle en metode på et objekt som er bosatt i et annet adresseområde.
  • Det gir en sikker måte for applikasjoner å kommunisere med hverandre. Den oppnår denne funksjonaliteten ved hjelp av konseptene Stub (Client calling object) og Skeleton (Remote object som ligger på serveren).
  • RMI brukes til å bygge distribuerte applikasjoner. Det bevarer typen sikkerhet. RMI-arkitektur minimerer kompleksiteten i applikasjonen i en distribuert arkitektur.

Anbefalte artikler

Dette har vært en guide til RMI Architecture. Her diskuterer vi RMI-design og arkitektur i detalj med et passende blokkskjema. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. Datavarehusarkitektur
  2. Hva er TCP-protokollen?
  3. Hva er stasjonær programvare?
  4. CCNA intervjuspørsmål