Diferența dintre RPC și RMI

Cuprins:

Diferența dintre RPC și RMI
Diferența dintre RPC și RMI

Video: Diferența dintre RPC și RMI

Video: Diferența dintre RPC și RMI
Video: ACȚIUNI vs OBLIGAȚIUNI vs IMOBILIARE - Avantaje - Dezavantaje - Lichiditate - Risc - Diversificare 2024, Noiembrie
Anonim

RPC vs RMI

Diferența de bază dintre RPC și RMI este că RPC este un mecanism care permite apelarea unei proceduri pe un computer la distanță, în timp ce RMI este implementarea RPC în java. RPC este neutru în limbaj, dar acceptă doar tipurile de date primitive care trebuie transmise. Pe de altă parte, RMI este limitat la Java, dar permite trecerea obiectelor. RPC urmează construcțiile tradiționale ale limbajului procedural, în timp ce RMI acceptă proiectarea orientată pe obiecte.

Ce este RPC?

RPC, care înseamnă Remote Procedure Call, este un tip de comunicare între procese. Acest lucru permite apelarea unei funcții într-un alt proces care rulează pe computerul local sau pe un computer la distanță. Acest concept a apărut cu mult timp în urmă în 1980, dar prima implementare faimoasă a fost văzută în Unix.

RPC implică mai mulți pași. Clientul efectuează un apel de procedură pe computerul local ca de obicei. Modulul numit client stub colectează argumentele și creează un mesaj și trece la sistemul de operare, sistemul de operare efectuează un apel de sistem și trimite acest mesaj către computerul de la distanță. Sistemul de operare din server colectează mesajul și trece la modulul de pe server numit server stub. Apoi server stub apelează procedura de pe server. În cele din urmă, rezultatele sunt trimise înapoi clientului.

Avantajul utilizării RPC este că este independent de detaliile rețelei. Programatorul trebuie doar să specifice într-un mod abstract, în timp ce sistemul de operare va avea grijă de detaliile rețelei interne. Deci, acest lucru ușurează programarea și permite RPC să funcționeze în orice rețea, în ciuda diferențelor fizice și de protocol. Implementările RPC sunt prezente în toate sistemele de operare mainstream, cum ar fi Unix, Linux, Windows și OS X. RPC este în general neutru în limbaj, prin urmare limitează tipurile de date la cele mai primitive, deoarece acestea trebuie să fie comune tuturor limbilor. Abordarea în RPC nu este orientată pe obiecte, dar este un mecanism procedural tradițional ca în C.

Diferența dintre RPC și RMI
Diferența dintre RPC și RMI
Diferența dintre RPC și RMI
Diferența dintre RPC și RMI

Ce este RMI?

RMI, care înseamnă Remote Method Invocation, este un API (Application Programming Interface) care implementează RPC în java pentru a sprijini natura orientată pe obiect. Aceasta permite apelarea metodelor Java pe o altă mașină virtuală Java care se află pe același computer sau pe unul la distanță. Limitarea RMI este că numai metodele Java pot fi invocate, dar acest lucru vine cu avantajul că obiectele pot fi transmise ca argumente și pot returna valori. Când se consideră performanța, RMI este mai lentă decât RPC datorită implicării bytecode pe mașina virtuală Java, dar RMI este foarte prietenos cu programatorii și este foarte ușor de utilizat.

RMI folosește mecanisme de securitate încorporate în Java și oferă, de asemenea, o fabrică de socket-uri care permite utilizarea protocoalelor de nivel de transport personalizate non-TCP. Mai mult, RMI oferă metode de ocolire a firewall-urilor. Pașii care apar în RMI sunt similari cu RPC. Implementarea RMI are grijă de detaliile rețelei interne, unde programatorul nu trebuie să-și facă griji pentru ele.

Care este diferența dintre RPC și RMI?

• RPC este neutru în limbaj, în timp ce RMI este limitat la Java.

• RPC este procedural ca în C, dar RMI este orientat pe obiecte.

• RPC acceptă numai tipuri de date primitive, în timp ce RMI permite ca obiectele să fie transmise ca argumente și să returneze valori. Când folosește RPC, programatorul trebuie să împartă orice obiect compus în tipuri de date primitive.

• RMI este ușor de programat acel RPC.

• RMI este mai lent decât RPC, deoarece RMI implică executarea unui bytecode java.

• RMI permite utilizarea modelelor de design datorită naturii orientate pe obiect, în timp ce RPC nu are această capacitate.

Rezumat:

RPC vs RMI

RPC este un mecanism de limbaj neutru care permite apelarea unei proceduri pe un computer la distanță. Cu toate acestea, caracteristica neutră în limbaj limitează tipurile de date care sunt transmise ca argumente și returnează valori la tipurile primitive. RMI este implementarea RPC în Java și acceptă și trecerea obiectelor, ușurând viața programatorului. Avantajul RMI este suportul pentru design orientat pe obiecte, dar limitarea la Java este un dezavantaj.

Recomandat: