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: EduSrijeda: DIONICE vs OBVEZNICE 2024, Oktobar
Anonim

RPC vs RMI

Osnovna razlika između RPC-a i RMI-ja je u tome što je RPC mehanizam koji omogućava pozivanje procedure na udaljenom računaru dok je RMI implementacija RPC-a u Javi. RPC je jezički neutralan, ali podržava samo primitivne tipove podataka koji se prosljeđuju. S druge strane, RMI je ograničen na Javu, ali dozvoljava prosljeđivanje objekata. RPC prati tradicionalne konstrukcije proceduralnih jezika dok RMI podržava objektno orijentisani dizajn.

Šta je RPC?

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

RPC uključuje nekoliko koraka. Klijent obavlja poziv procedure na lokalnom računaru kao i obično. Modul nazvan klijent stub prikuplja argumente i kreira poruku i prosljeđuje je operativnom sistemu, Operativni sistem obavlja sistemski poziv i šalje ovu poruku udaljenom računaru. Operativni sistem na serveru prikuplja poruku i prosljeđuje je modulu na serveru koji se zove serverski stub. Zatim stub servera poziva proceduru na serveru. Konačno, rezultati se šalju nazad klijentu.

Prednost korištenja RPC-a je da je neovisna o mrežnim detaljima. Programer samo treba da specificira na apstraktan način dok će operativni sistem voditi računa o detaljima unutrašnje mreže. Dakle, ovo čini programiranje lakšim i omogućava RPC-u da radi na bilo kojoj mreži uprkos fizičkim razlikama i razlikama u protokolu. RPC implementacije su prisutne u svim mainstream operativnim sistemima 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 za sve jezike. Pristup u RPC-u nije objektno orijentisan, ali je tradicionalni proceduralni mehanizam kao u C.

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

Šta je RMI?

RMI, što je skraćenica za Remote Method Invocation, je API (Aplikacijsko programsko sučelje) koji implementira RPC u Javi kako bi podržao objektno orijentiranu prirodu. Ovo omogućava pozivanje Java metoda na drugoj Java virtuelnoj mašini koja se nalazi na istom računaru ili udaljenom. Ograničenje RMI-ja je to što se mogu pozvati samo Java metode, ali to dolazi s prednošću da se objekti mogu proslijediti kao argumenti i vratiti vrijednosti. Kada se uzmu u obzir performanse, RMI je sporiji od RPC-a zbog uključivanja bajtkoda na Java virtuelnoj mašini, ali RMI je veoma prijateljski programerski i veoma je jednostavan za korišćenje.

RMI koristi ugrađene sigurnosne mehanizme u Javi i takođe daje fabriku socketa koja omogućava upotrebu ne-TCP prilagođenih protokola transportnog sloja. Štaviše, RMI pruža metode za zaobilaženje zaštitnih zidova. Koraci koji se javljaju u RMI-u su slični RPC-u. Implementacija RMI vodi računa o detaljima interne mreže gdje programer ne mora brinuti o njima.

Koja je razlika između RPC i RMI?

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

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

• RPC podržava samo primitivne tipove podataka dok RMI dozvoljava da se objekti prosleđuju kao argumenti i vraćaju vrednosti. 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 dozvoljava upotrebu dizajnerskih obrazaca zbog objektno orijentisane prirode dok RPC nema ovu mogućnost.

Sažetak:

RPC vs RMI

RPC je jezički neutralan mehanizam koji dozvoljava pozivanje procedure na udaljenom računaru. Međutim, jezička neutralna karakteristika ograničava tipove podataka koji se prosljeđuju kao argumenti i vraćaju vrijednosti na primitivne tipove. RMI je implementacija RPC-a u Javi i podržava i prenošenje objekata, što olakšava život programeru. Prednost RMI-a je podrška objektno orijentisanom dizajnu, ali ograničenje na Javu je nedostatak.

Preporučuje se: