Forskel mellem RPC og RMI | RPC vs RMI

Anonim

RPC vs RMI

Den grundlæggende forskellen mellem RPC og RMI er, at RPC er en mekanisme, der gør det muligt at kalde en procedure på en fjerncomputer, mens RMI er implementeringen af ​​RPC i java. RPC er sprogneutralt, men understøtter kun primitive datatyper, der skal bestås. På den anden side er RMI begrænset til Java, men tillader passerende objekter. RPC følger traditionelle proceduremæssige sprogkonstruktioner, mens RMI understøtter objektorienteret design.

Hvad er RPC?

RPC, som står for Remote Procedure Call, er en form for interprocess kommunikation. Dette gør det muligt at kalde en funktion i en anden proces, der kører på den lokale computer eller en fjerncomputer. Dette koncept opstod for længe siden i 1980, men den første berømte implementering blev set i Unix.

RPC involverer flere trin. Klienten kalder en procedure på den lokale computer som normalt. Modulet kaldet klientstub samler argumenterne og opretter en besked og sendes til operativsystemet. Operativsystemet laver et systemopkald og sender denne meddelelse til den eksterne computer. Operativsystemet i serveren samler meddelelsen og passerer til modulet på serveren kaldet serverstub. Derefter kalder serverstub proceduren på serveren. Endelig sendes resultaterne tilbage til klienten.

Fordelen ved at bruge RPC er, at den er uafhængig af netværksdetaljerne. Programmeren skal bare angive abstrakt mode, mens operativsystemet vil passe de interne netværksdetaljer. Så det gør programmeringen nemmere og lader RPC arbejde på tværs af ethvert netværk på trods af fysiske og protokollforskelle. RPC-implementeringer er til stede i alle almindelige operativsystemer som Unix, Linux, Windows og OS X. RPC er generelt sprogneutral, og det begrænser datatyperne til de mest primitive, da de skal være fælles for alle sprog. Tilgangen i RPC er ikke objektorienteret, men det er en traditionel proceduremekanisme som i C.

Hvad er RMI?

RMI, som står for Remote Method Invocation, er et API (Application Programming Interface), der implementerer RPC i Java for at understøtte objektorienteret natur. Dette gør det muligt at kalde Java-metoder på en anden Java Virtual-maskine, der er bosat på den samme computer eller en fjernbetjening. Begrænsningen af ​​RMI er, at kun Java-metoder kan påberåbes, men det kommer med den fordel, at objekter kan overføres som argumenter og returværdier. Når det vurderes, at RMI er langsommere end RPC på grund af involvering af bytecode på Java Virtual-maskine, men RMI er meget programmørvenlig, og det er meget nemt at bruge.

RMI bruger indbyggede sikkerhedsmekanismer i Java og giver også en stikkontaktfabrik, der muliggør brug af ikke-TCP-tilpassede transportlagprotokoller. Desuden giver RMI metoder til at omgå firewalls. De trin der forekommer i RMI svarer til RPC. Implementeringen af ​​RMI ser efter de interne netværksdetaljer, hvor programmereren ikke behøver at bekymre sig om dem.

Hvad er forskellen mellem RPC og RMI?

• RPC er sprogneutralt, mens RMI er begrænset til Java.

• RPC er proceduremæssigt som i C, men RMI er objektorienteret.

• RPC understøtter kun primitive datatyper, mens RMI tillader objekter at blive overført som argumenter og returværdier. Når du bruger RPC, skal programmør opdele eventuelle sammensatte objekter til primitive datatyper.

• RMI er let at programmere den RPC.

• RMI er langsommere end RPC, da RMI indebærer udførelse af java bytecode.

• RMI tillader brug af designmønstre på grund af objektorienteret natur, mens RPC ikke har denne kapacitet.

Sammenfatning:

RPC vs RMI

RPC er en sprogneutral mekanisme, der gør det muligt at kalde en procedure på en fjerncomputer. Den sprogneutrale funktion begrænser dog de datatyper, der sendes som argumenter og returnerer værdier til primitive typer. RMI er implementeringen af ​​RPC i Java, og den understøtter også objektgennemgang, hvilket gør programmeringsprogrammets liv lettere. Fordelen ved RMI er objektorienteret design support, men begrænsning til Java er en ulempe.

Billeder Hilsen:

  1. Synkron versus asynkron RPC ved CAPS entreprise (CC BY-SA 3. 0)