Java RMI-introduktion

annonser

rmi står för Remote Method Invocation. Det är en mekanism som tillåter ett objekt som är bosatt i ett system (JVM) att komma åt/åberopa ett objekt som körs på en annan JVM.

RMI används för att bygga distribuerade applikationer; det ger fjärrkommunikation mellan Java-program. Det finns i paketet java.rmi.

arkitektur för en RMI-applikation

i en RMI-applikation skriver vi två program, ett serverprogram (finns på servern) och ett klientprogram (finns på klienten).

  • inuti serverprogrammet skapas ett fjärrobjekt och referens för det objektet görs tillgängligt för klienten (med registret).

  • klientprogrammet begär fjärrobjekten på servern och försöker åberopa dess metoder.

följande diagram visar arkitekturen för en RMI-applikation.

rmi-arkitektur

Låt oss nu diskutera komponenterna i denna arkitektur.

  • Transport Layer-detta lager ansluter klienten och servern. Den hanterar den befintliga anslutningen och skapar också nya anslutningar.

  • Stub – en stub är en representation (proxy) av fjärrobjektet på klienten. Det finns i klientsystemet; det fungerar som en gateway för klientprogrammet.

  • skelett-detta är objektet som finns på serversidan. stub kommunicerar med detta skelett för att skicka begäran till fjärrobjektet.

  • RRL (Remote Reference Layer) – det är det lager som hanterar referenser från klienten till fjärrobjektet.

bearbetning av en RMI-applikation

följande punkter sammanfattar hur en RMI-applikation fungerar−

  • när klienten ringer till fjärrobjektet tas det emot av stubben som så småningom skickar denna begäran till RRL.

  • när klientsidan RRL tar emot begäran, åberopar den en metod som kallas invoke () av objektet remoteRef. Den skickar begäran till RRL på serversidan.

  • RRL på serversidan skickar begäran till skelettet (proxy på servern) som slutligen åberopar det önskade objektet på servern.

  • resultatet skickas hela vägen tillbaka till kunden.

Marshalling och Unmarshalling

när en klient åberopar en metod som accepterar parametrar på ett fjärrobjekt, samlas parametrarna i ett meddelande innan de skickas över nätverket. Dessa parametrar kan vara av primitiv typ eller objekt. Vid primitiv typ sätts parametrarna ihop och en rubrik är kopplad till den. Om parametrarna är objekt, så serialiseras de. Denna process är känd som marshalling.

på serversidan separeras de packade parametrarna och sedan anropas den önskade metoden. Denna process kallas unmarshalling.

rmi-registret

rmi-registret är ett namnområde där alla serverobjekt placeras. Varje gång servern skapar ett objekt registrerar det detta objekt med rmiregistry (med bind () eller reBind () – metoder). Dessa registreras med ett unikt namn som kallas bind name.

för att anropa ett fjärrobjekt behöver klienten en referens för det objektet. Vid den tiden hämtar klienten objektet från registret med sitt bindningsnamn (med hjälp av lookup () – metoden).

följande illustration förklarar hela processen –

register

mål för RMI

Följande är målen för RMI−

  • för att minimera applikationens komplexitet.
  • för att bevara typsäkerhet.
  • distribuerad sophämtning.
  • minimera skillnaden mellan att arbeta med lokala och avlägsna objekt.
annonser



+