Forskellen mellem RPC og RMI

Indholdsfortegnelse:

Forskellen mellem RPC og RMI
Forskellen mellem RPC og RMI

Video: Forskellen mellem RPC og RMI

Video: Forskellen mellem RPC og RMI
Video: Hvad er OBLIGATIONER - Skal Man Investere i dem? 2024, November
Anonim

RPC vs RMI

Den grundlæggende forskel 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 sprogneutral, men understøtter kun primitive datatyper, der skal videregives. 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 type kommunikation mellem processer. 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 foretager et procedurekald på den lokale computer som norm alt. Modulet kaldet client stub indsamler argumenterne og opretter en besked og videregiver til operativsystemet. Operativsystemet foretager et systemkald og sender denne besked til fjerncomputeren. Operativsystemet i serveren indsamler beskeden og overfører til modulet på serveren kaldet server stub. Så kalder serverstub proceduren på serveren. Til sidst sendes resultaterne tilbage til kunden.

Fordelen ved at bruge RPC er, at den er uafhængig af netværksdetaljerne. Programmøren skal blot specificere på en abstrakt måde, mens operativsystemet vil passe på de interne netværksdetaljer. Så dette gør programmering lettere og lader RPC arbejde på tværs af ethvert netværk på trods af de fysiske og protokolforskelle. RPC-implementeringer er til stede i alle almindelige operativsystemer såsom Unix, Linux, Windows og OS X. RPC er generelt sprogneutral, og derfor begrænser det datatyperne til de mest primitive, da de skal være fælles for alle sprog. Fremgangsmåden i RPC er ikke objektorienteret, men det er en traditionel proceduremekanisme som i C.

Forskellen mellem RPC og RMI
Forskellen mellem RPC og RMI
Forskellen mellem RPC og RMI
Forskellen mellem RPC og RMI

Hvad er RMI?

RMI, som står for Remote Method Invocation, er en API (Application Programming Interface), der implementerer RPC i java for at understøtte objektorienteret natur. Dette tillader opkald af Java-metoder på en anden Java Virtual-maskine, der er bosat på den samme computer eller en fjerncomputer. Begrænsningen ved RMI er, at kun Java-metoder kan påberåbes, men dette kommer med den fordel, at objekter kan sendes som argumenter og returværdier. Når ydeevne betragtes, er RMI langsommere end RPC på grund af involvering af bytekode på Java Virtual-maskinen, men RMI er meget programmørvenlig, og den er meget nem at bruge.

RMI bruger indbyggede sikkerhedsmekanismer i Java og giver også en socket-fabrik, der muliggør brug af ikke-TCP-brugerdefinerede transportlagsprotokoller. Desuden giver RMI metoder til at omgå firewalls. De trin, der forekommer i RMI, ligner RPC. Implementeringen af RMI passer på de interne netværksdetaljer, hvor programmøren ikke behøver at bekymre sig om dem.

Hvad er forskellen mellem RPC og RMI?

• RPC er sprogneutral, 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, at objekter sendes som argumenter og returværdier. Når du bruger RPC, skal programmøren opdele alle sammensatte objekter til primitive datatyper.

• RMI er let at programmere den RPC.

• RMI er langsommere end RPC, da RMI involverer udførelse af java-bytekode.

• RMI tillader brug af designmønstre på grund af den objektorienterede natur, mens RPC ikke har denne funktion.

Oversigt:

RPC vs RMI

RPC er en sprogneutral mekanisme, der tillader opkald af 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å objektoverførsel, hvilket gør programmørens liv lettere. Fordelen ved RMI er den objektorienterede designunderstøttelse, men begrænsning til Java er en ulempe.

Anbefalede: