Översikt av RMI Architecture

I distribuerad applikationsarkitektur är det alltid ett behov av kommunikation mellan två olika applikationer. I Java-baserade applikationer kommunicerar en applikation med en annan fjärr / annan applikation som kör någon annanstans med en mekanism som kallas RMI-arkitektur.

RMI står för Remote Method Invocation. Det är ett API som tillhandahålls av java som gör att ett objekt som är bosatt i en JVM (Java Virtual Machine) kan komma åt eller åberopa ett objekt som körs på en annan JVM. Den andra JVM kan vara på samma maskin eller fjärrmaskin. Detta är en intressant funktion eftersom det i realtidsprogram blir mycket enkelt för Java-applikationer att kommunicera direkt med varandra utan någon extern kommunikationsmekanism. Dessutom är det alltid ett behov av säker kommunikation mellan applikationer baserat på distribuerad applikationsarkitektur.

RMI Design

Innan vi går in på detaljerad arkitektur kommer vi att förstå den grundläggande designen av RMI-arkitekturen.

  • RMI API finns i paketet java.rmi. Låt oss introducera två termer för att förstå RMI-designarkitektur. Först är klienten; JVM som kommer att anropa fjärrobjekt och andra är server; JVM som innehåller fjärrobjektet. Så kommer klienten att ringa servern, i det här fallet på objektet för metodinvokation.
  • Servern returnerar sedan referensen för objektet till klienten. Fångsten här är både objekten, dvs att lokal och fjärr visas som ett lokalt objekt på servern. Det kommer ingen skillnad mellan de två. Syntaxen för metoderna för båda objekt är också densamma. Därför fungerar servern JVM som vanlig JVM utan att känna till något objekt om det är lokalt eller fjärr.
  • Samma objekt kan vara både en server och en klient. Referensen för fjärrobjekt erhålls och den används som om det var ett lokalt objekt. RMI-infrastrukturen är ansvarig för att hitta fjärrobjektet, avlyssna metodsamtal och behandla fjärrbegäran på distans. Klienten åberopar metoder på objektet först efter att ha fått en referens till ett fjärrobjekt.

RMI Arkitektur

Nedan visas schemat över RMI-arkitektur på ett enkelt sätt. På internet hittar du olika former av samma arkitektur, men vi har en enkel som hjälper till att förklara den bättre.

Låt oss börja med att ansluta prickar ur ett designperspektiv med ett arkitekturdiagram.

Klientapplikationen och serverapplikationen är respektive JVM för klientmaskinen och servern. I RMI-applikationen skriver vi två program respektive; klientprogrammet som finns på klienten och serverprogrammet som finns på servern.

Applikationslager:

Detta lager är de faktiska systemen, dvs. klient och server som är involverade i kommunikation. Java-programmet på klientsidan kommunicerar med java-programmet på serversidan.

Stump:

Från designintro har vi klientobjekt; I RMI-arkitektur kallas det Stub. Det är ett objekt som finns på klientmaskinen och det fungerar som en proxy för fjärrobjektet. Det är som en gateway för klientprogrammet.

Stubben har samma metoder som ett fjärrobjekt. När klienten anropar stubobjektet vidarebefordrar stubben denna begäran till ett fjärrobjekt (Skeleton) via RMI-infrastruktur som sedan körs på servern.

Stub utför följande händelser: -

  1. Initierar anslutning med fjärr JVM,
  2. Skriver och överför (Marshals) parametrar till fjärr JVM,
  3. Väntar på resultatet,
  4. Läser (avmarkerar) det returnerade resultatet,
  5. Vidarebefordra det mottagna resultatet till den som ringer.

Skelett:

Serverobjektet som finns i en servermaskin kallas Skeleton. Stub kommunicerar med serverapplikationen med hjälp av ett mellanliggande skelettobjekt.

Skelettobjektets ansvar är att skicka parametrar till metodimplementering och skicka tillbaka värdena tillbaka till klienten.

Skeleton utför följande händelser: -

  1. Läser den parameter som klienten har vänt,
  2. Åkallar metoden på det faktiska fjärrobjektet,
  3. Skicka / skicka resultatet till den som ringer.

Stub / skelettlager:

  • Stub / skelettlagret ansvarar för att avlyssna samtal som gjorts av klienten och omdirigera dessa samtal till det avlägsna objektet. Detta lager kallas också som Proxy Layer. Stub och skelett är proxyerna för klient och server. Stub- och skelettobjekten är som ett gränssnitt mellan en applikation och resten av RMI-systemet.
  • Detta lagers syfte är att överföra data till fjärrreferenslager genom objektserialisering. Denna process för att konvertera data / objekt till byte-ström är känd som Marshalling och det omvända kallas Unmarshalling. Marshaling utförs när du begär objektet från servern och Unmarshalling utförs när data / objektreferens tas emot från servern.

Fjärrreferenslager:

  • Proxyskiktet är anslutet till RMI-mekanismen via Remote Reference Layer. Detta lager ansvarar för kommunikation och överföring av objekt mellan klient och server. Anropssemantiken för RMI-anslutningen definieras och stöds av detta lager.
  • Remote Reference Layer ansvarar för att upprätthålla sessionen under metodsamtalet. dvs Det hanterar referenser från klienten till fjärrservernobjektet. Detta lager är också ansvarigt för hantering av duplicerade objekt.

Transportlager:

Transportlagret ansvarar för att konfigurera kommunikation mellan de två maskinerna. Detta lager använder standard TCP / IP-protokoll för anslutning. Den faktiska transporten av data utförs genom detta lager. Detta lager är en del av Remote Reference Layer.

Slutsats

  • Remote Method Invocation (RMI) är ett mycket användbart API som tillhandahålls i JAVA som hjälper till i kommunikation mellan två olika JVM: er. Det tillåter ett objekt att påkalla en metod på ett objekt som är bosatt i ett annat adressutrymme.
  • Det ger ett säkert sätt för applikationer att kommunicera med varandra. Den uppnår denna funktionalitet med hjälp av koncept Stub (Client Calling Object) och Skeleton (Remote-objekt som finns på servern).
  • RMI används för att bygga distribuerade applikationer. Det bevarar typen av säkerhet. RMI-arkitektur minimerar applikationens komplexitet i en distribuerad arkitektur.

Rekommenderade artiklar

Detta har varit en guide till RMI Architecture. Här diskuterar vi RMI-design och arkitekturen i detalj med ett lämpligt blockschema. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer -

  1. Datavarehusarkitektur
  2. Vad är TCP-protokollet?
  3. Vad är Desktop Software?
  4. CCNA intervjufrågor

Kategori: