Skillnaden mellan RPC och RMI

Innehållsförteckning:

Skillnaden mellan RPC och RMI
Skillnaden mellan RPC och RMI

Video: Skillnaden mellan RPC och RMI

Video: Skillnaden mellan RPC och RMI
Video: Vad är det för skillnad på en aktie och en fond? 2024, November
Anonim

RPC vs RMI

Den grundläggande skillnaden mellan RPC och RMI är att RPC är en mekanism som möjliggör anrop av en procedur på en fjärrdator medan RMI är implementeringen av RPC i java. RPC är språkneutral men stöder endast primitiva datatyper som ska skickas. Å andra sidan är RMI begränsad till Java men tillåter passerande objekt. RPC följer traditionella procedurspråkskonstruktioner medan RMI stöder objektorienterad design.

Vad är RPC?

RPC, som står för Remote Procedure Call, är en typ av kommunikation mellan processer. Detta gör det möjligt att anropa en funktion i en annan process som körs på den lokala datorn eller en fjärrdator. Det här konceptet dök upp för länge sedan 1980, men den första kända implementeringen sågs i Unix.

RPC omfattar flera steg. Klienten gör ett proceduranrop på den lokala datorn som vanligt. Modulen som heter klientstubb samlar in argumenten och skapar ett meddelande och skickar till operativsystemet. Operativsystemet gör ett systemanrop och skickar detta meddelande till fjärrdatorn. Operativsystemet i servern samlar in meddelandet och skickar vidare till modulen på servern som kallas serverstubb. Sedan anropar serverstubben proceduren på servern. Slutligen skickas resultaten tillbaka till kunden.

Fördelen med att använda RPC är att det är oberoende av nätverksdetaljerna. Programmeraren måste bara specificera på ett abstrakt sätt medan operativsystemet tar hand om de interna nätverksdetaljerna. Så detta gör programmering enklare och låter RPC fungera över alla nätverk trots fysiska skillnader och protokollskillnader. RPC-implementationer finns i alla vanliga operativsystem som Unix, Linux, Windows och OS X. RPC är i allmänhet språkneutral, därför begränsar den datatyperna till de mest primitiva eftersom de måste vara gemensamma för alla språk. Tillvägagångssättet i RPC är inte objektorienterat, men det är en traditionell procedurmekanism som i C.

Skillnaden mellan RPC och RMI
Skillnaden mellan RPC och RMI
Skillnaden mellan RPC och RMI
Skillnaden mellan RPC och RMI

Vad är RMI?

RMI, som står för Remote Method Invocation, är ett API (Application Programming Interface) som implementerar RPC i java för att stödja objektorienterad natur. Detta tillåter anrop av Java-metoder på en annan Java Virtual-maskin som finns på samma dator eller en fjärrdator. Begränsningen med RMI är att endast Java-metoder kan anropas, men detta kommer med fördelen att objekt kan skickas som argument och returvärden. När prestanda anses vara RMI långsammare än RPC på grund av inblandning av bytekod på Java Virtual-maskinen, men RMI är väldigt programmerarvänligt och det är väldigt lätt att använda.

RMI använder inbyggda säkerhetsmekanismer i Java och ger även en socketfabrik som möjliggör användning av icke-TCP anpassade transportlagerprotokoll. Dessutom tillhandahåller RMI metoder för att kringgå brandväggar. Stegen som sker i RMI liknar RPC. Implementeringen av RMI tar hand om de interna nätverksdetaljerna där programmeraren inte behöver oroa sig för dem.

Vad är skillnaden mellan RPC och RMI?

• RPC är språkneutr alt medan RMI är begränsat till Java.

• RPC är procedurmässigt som i C, men RMI är objektorienterat.

• RPC stöder endast primitiva datatyper medan RMI tillåter att objekt skickas som argument och returvärden. När du använder RPC måste programmeraren dela upp alla sammansatta objekt till primitiva datatyper.

• RMI är lätt att programmera den RPC.

• RMI är långsammare än RPC eftersom RMI involverar exekvering av java-bytekod.

• RMI tillåter användning av designmönster på grund av den objektorienterade naturen medan RPC inte har denna funktion.

Sammanfattning:

RPC vs RMI

RPC är en språkneutral mekanism som tillåter anrop av en procedur på en fjärrdator. Den språkneutrala funktionen begränsar dock de datatyper som skickas som argument och returnerar värden till primitiva typer. RMI är implementeringen av RPC i Java och den stöder också objektöverföring, vilket gör programmerarens liv enklare. Fördelen med RMI är det objektorienterade designstödet, men begränsningen till Java är en nackdel.

Rekommenderad: