Forskjellen mellom RPC og RMI

Innholdsfortegnelse:

Forskjellen mellom RPC og RMI
Forskjellen mellom RPC og RMI

Video: Forskjellen mellom RPC og RMI

Video: Forskjellen mellom RPC og RMI
Video: AKSJER og SKATT - Hvordan Fungerer det egentlig? (Beregning, Utfylling og besparelser) 2024, Oktober
Anonim

RPC vs RMI

Den grunnleggende forskjellen mellom RPC og RMI er at RPC er en mekanisme som gjør det mulig å kalle en prosedyre på en ekstern datamaskin mens RMI er implementeringen av RPC i java. RPC er språknøytral, men støtter bare primitive datatyper som skal sendes. På den annen side er RMI begrenset til Java, men tillater passerende objekter. RPC følger tradisjonelle prosessuelle språkkonstruksjoner mens RMI støtter objektorientert design.

Hva er RPC?

RPC, som står for Remote Procedure Call, er en type kommunikasjon mellom prosesser. Dette gjør det mulig å kalle en funksjon i en annen prosess som kjører på den lokale datamaskinen eller en ekstern datamaskin. Dette konseptet dukket opp for lenge siden i 1980, men den første berømte implementeringen ble sett i Unix.

RPC innebærer flere trinn. Klienten utfører et prosedyrekall på den lokale datamaskinen som vanlig. Modulen k alt klientstub samler argumentene og lager en melding og sender den til operativsystemet. Operativsystemet gjør et systemkall og sender denne meldingen til den eksterne datamaskinen. Operativsystemet i serveren samler inn meldingen og går videre til modulen på serveren som kalles server stub. Deretter kaller serverstubb prosedyren på serveren. Til slutt sendes resultatene tilbake til kunden.

Fordelen med å bruke RPC er at den er uavhengig av nettverksdetaljene. Programmereren må bare spesifisere på en abstrakt måte mens operativsystemet tar vare på de interne nettverksdetaljene. Så dette gjør programmering enklere og lar RPC fungere på tvers av alle nettverk til tross for fysiske forskjeller og protokollforskjeller. RPC-implementeringer er til stede i alle vanlige operativsystemer som Unix, Linux, Windows og OS X. RPC er generelt språknøytral, og derfor begrenser den datatypene til de mest primitive siden de må være felles for alle språk. Tilnærmingen i RPC er ikke objektorientert, men det er en tradisjonell prosedyremekanisme som i C.

Forskjellen mellom RPC og RMI
Forskjellen mellom RPC og RMI
Forskjellen mellom RPC og RMI
Forskjellen mellom RPC og RMI

Hva er RMI?

RMI, som står for Remote Method Invocation, er et API (Application Programming Interface) som implementerer RPC i java for å støtte objektorientert natur. Dette tillater anrop av Java-metoder på en annen Java Virtual-maskin som ligger på samme datamaskin eller en ekstern. Begrensningen til RMI er at bare Java-metoder kan påberopes, men dette kommer med fordelen at objekter kan sendes som argumenter og returverdier. Når ytelsen vurderes, er RMI tregere enn RPC på grunn av involvering av bytekode på Java Virtual-maskinen, men RMI er veldig programmerervennlig, og det er veldig enkelt å bruke.

RMI bruker innebygde sikkerhetsmekanismer i Java og gir også en socket-fabrikk som muliggjør bruk av ikke-TCP-tilpassede transportlagsprotokoller. Dessuten gir RMI metoder for å omgå brannmurer. Trinnene som skjer i RMI ligner på RPC. Implementeringen av RMI tar vare på de interne nettverksdetaljene der programmereren ikke trenger å bekymre seg for dem.

Hva er forskjellen mellom RPC og RMI?

• RPC er språknøytral mens RMI er begrenset til Java.

• RPC er prosedyremessig som i C, men RMI er objektorientert.

• RPC støtter kun primitive datatyper mens RMI tillater at objekter sendes som argumenter og returverdier. Når du bruker RPC, må programmereren dele opp alle sammensatte objekter til primitive datatyper.

• RMI er enkelt å programmere den RPC-en.

• RMI er tregere enn RPC siden RMI involverer kjøring av java-bytekode.

• RMI tillater bruk av designmønstre på grunn av den objektorienterte naturen mens RPC ikke har denne muligheten.

Sammendrag:

RPC vs RMI

RPC er en språknøytral mekanisme som tillater oppkalling av en prosedyre på en ekstern datamaskin. Den språknøytrale funksjonen begrenser imidlertid datatypene som sendes som argumenter og returnerer verdier til primitive typer. RMI er implementeringen av RPC i Java, og den støtter også objektoverføring, noe som gjør livet til programmereren enklere. Fordelen med RMI er den objektorienterte designstøtten, men begrensning til Java er en ulempe.

Anbefalt: