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: Часть 1 из 3: Простое руководство по Java RMI 2024, November
Anonim

RPC vs RMI

Den grundlæggende forskel mellem RPC og RMI er, at RPC er en mekanisme, der muliggør opkald af en procedure på en fjerncomputer, mens RMI er implementeringen af RPC i java. RPC er sprogneutral, men understøtter kun primitive datatyper, der skal sendes. 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, der står for Remote Procedure Call, er en type kommunikation mellem processer. Dette gør det muligt at ringe til 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 en procedureopkald på den lokale computer som normalt. Modulet kaldet klientstub samler argumenterne og opretter en besked og videregiver til operativsystemet, operativsystem foretager et systemopkald og sender denne besked til fjerncomputeren. Operativsystem på serveren indsamler meddelelsen og overføres 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. Programmøren skal bare angive på en abstrakt måde, mens operativsystemet vil passe på de interne netværksdetaljer. Så det gør programmeringen 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 som Unix, Linux, Windows og OS X. RPC er generelt sprogneutral og derfor 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.

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 gør det muligt at kalde Java-metoder på en anden Java Virtual-maskine, der findes på den samme computer eller en ekstern. Begrænsningen af RMI er, at kun Java-metoder kan påberåbes, men dette har den fordel, at objekter kan sendes som argumenter og returneringsværdier. Når ydeevne betragtes som RMI er langsommere end RPC på grund af involvering af bytecode på Java Virtual-maskinen, men RMI er meget programmerervenlig, og det er meget let at bruge.

RMI bruger indbyggede sikkerhedsmekanismer i Java og giver også en stikkontaktfabrik, der muliggør brug af ikke-TCP tilpassede 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æssig som i C, men RMI er objektorienteret.

• RPC understøtter kun primitive datatyper, mens RMI tillader, at objekter sendes som argumenter og returværdier. Ved brug af RPC skal programmør opdele sammensatte objekter til primitive datatyper.

• RMI er let at programmere den RPC.

• RMI er langsommere end RPC, da RMI involverer udførelse af Java-bytecode.

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

Resumé:

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 det understøtter også passering af objekter, hvilket gør programmørens liv lettere. Fordelen ved RMI er den objektorienterede designstøtte, men begrænsning til Java er en ulempe.

Billeder med tilladelse:

Anbefalet: