Razlika Između RPC I RMI

Sadržaj:

Razlika Između RPC I RMI
Razlika Između RPC I RMI

Video: Razlika Između RPC I RMI

Video: Razlika Između RPC I RMI
Video: Как в вайбере восстановить переписку 2024, Svibanj
Anonim

RPC vs RMI

Osnovna razlika između RPC-a i RMI-a je u tome što je RPC mehanizam koji omogućuje pozivanje postupka na udaljenom računalu, dok je RMI implementacija RPC-a u javi. RPC je jezično neutralan, ali podržava samo primitivne vrste podataka koje treba proslijediti. S druge strane, RMI je ograničen na Javu, ali omogućuje prenošenje objekata. RPC slijedi tradicionalne proceduralne jezične konstrukcije dok RMI podržava objektno orijentirani dizajn.

Što je RPC?

RPC, što je skraćenica od Remote Procedure Call, vrsta je međuprocesne komunikacije. To omogućuje pozivanje funkcije u drugom procesu koji se izvodi na lokalnom računalu ili udaljenom računalu. Ovaj se koncept pojavio davno 1980. godine, ali prva poznata implementacija viđena je u Unixu.

RPC uključuje nekoliko koraka. Klijent na uobičajeni način izvrši poziv na lokalnom računalu. Modul nazvan klijentski stub prikuplja argumente i stvara poruku i prosljeđuje operativnom sustavu, operativni sustav vrši sistemski poziv i šalje ovu poruku na udaljeno računalo. Operativni sustav na poslužitelju prikuplja poruku i prelazi na modul na poslužitelju koji se naziva poslužiteljski stub. Zatim stub poslužitelja poziva proceduru na poslužitelju. Napokon, rezultati se vraćaju klijentu.

Prednost upotrebe RPC-a je u tome što je neovisan o mrežnim detaljima. Programer mora apstraktno navesti dok će operativni sustav paziti na detalje interne mreže. Dakle, ovo olakšava programiranje i omogućuje RPC-u rad na bilo kojoj mreži unatoč fizičkim i protokolskim razlikama. RPC implementacije prisutne su u svim glavnim operativnim sustavima kao što su Unix, Linux, Windows i OS X. RPC je općenito jezično neutralan, stoga ograničava tipove podataka na najprimitivnije, jer moraju biti zajednički svim jezicima. Pristup u RPC-u nije objektno orijentiran, ali to je tradicionalni proceduralni mehanizam kao u C.

Razlika između RPC i RMI
Razlika između RPC i RMI

Što je RMI?

RMI, što je skraćenica od Remote Method Invocation, API je (sučelje za programiranje aplikacija) koji implementira RPC u javi za podršku objektno orijentirane prirode. To omogućuje pozivanje Java metoda na drugom Java virtualnom stroju koji se nalazi na istom ili udaljenom računalu. Ograničenje RMI-a je da se mogu pozivati samo Java metode, ali to dolazi s prednošću što se objekti mogu prosljeđivati kao argumenti i vraćati vrijednosti. Kada se smatra izvedba, RMI je sporiji od RPC-a zbog sudjelovanja bajtkoda na Java virtualnom stroju, ali RMI je vrlo prilagodljiv programerima i vrlo je jednostavan za upotrebu.

RMI koristi ugrađene sigurnosne mehanizme u Javi, a također nudi tvornicu utičnica koja omogućuje upotrebu protokola prilagođenog transportnog sloja koji nisu TCP. Štoviše, RMI nudi metode za zaobilaženje vatrozida. Koraci koji se događaju u RMI-u slični su RPC-u. Implementacija RMI-a brine se o detaljima interne mreže gdje se programer ne mora brinuti o njima.

Koja je razlika između RPC i RMI?

• RPC je jezično neutralan, dok je RMI ograničen na Javu.

• RPC je proceduralan kao u C, ali RMI je objektno orijentiran.

• RPC podržava samo primitivne tipove podataka, dok RMI dopušta da se objekti prosljeđuju kao argumenti i vraćaju vrijednosti. Kada koristi RPC, programer mora podijeliti sve složene objekte na primitivne tipove podataka.

• RMI je lako programirati taj RPC.

• RMI je sporiji od RPC-a, jer RMI uključuje izvršavanje Java bajt-koda.

• RMI omogućuje upotrebu obrazaca dizajna zbog objektno orijentirane prirode, dok RPC nema tu mogućnost.

Sažetak:

RPC vs RMI

RPC je jezično neutralan mehanizam koji omogućuje pozivanje postupka na udaljenom računalu. Međutim, jezično neutralna značajka ograničava tipove podataka koji se prosljeđuju kao argumenti i vraćaju vrijednosti primitivnim tipovima. RMI je implementacija RPC-a u Javi, a podržava i dodavanje objekata, što olakšava život programera. Prednost RMI-a je objektno orijentirana podrška za dizajn, ali ograničenje na Javu je nedostatak.

Ljubaznost slika:

Preporučeno: