RPC vs RMI
Diferența de bază între 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 ceea ce privește limbajul, dar acceptă doar transmiterea tipurilor de date primitive. Pe de altă parte, RMI este limitat la Java, dar permite trecerea obiectelor. RPC urmează construcțiile tradiționale de limbaj 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. Aceasta 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 celebră 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 stub de server 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. Astfel, acest lucru face programarea mai ușoară ș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 obișnuite, cum ar fi Unix, Linux, Windows și OS X. RPC este, în general, neutru din punct de vedere lingvistic, prin urmare limitează tipurile de date la cele mai primitive, deoarece acestea trebuie să fie comune tuturor limbilor. Abordarea în RPC nu este orientată obiect, dar este un mecanism procedural tradițional ca în C.
Ce este RMI?
RMI, care înseamnă Invocare metodă la distanță, este un API (Application Programming Interface) care implementează RPC în java pentru a sprijini natura orientată spre 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ță. Limita RMI este că numai metodele Java pot fi invocate, dar acest lucru vine cu avantajul că obiectele pot fi transmise ca argumente și returnează valori. Atunci când performanța este considerată RMI este mai lentă decât RPC datorită implicării codului de byt pe mașina virtuală Java, dar RMI este foarte ușor de programat ș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 strat de transport personalizate non-TCP. Mai mult, RMI oferă metode pentru a ocoli firewall-urile. Pașii care apar în RMI sunt similari cu RPC. Implementarea RMI are grijă de detaliile rețelei interne în care programatorul nu trebuie să-și facă griji.
Care este diferența dintre RPC și RMI?
• RPC este neutru în limbă, în timp ce RMI este limitat la Java.
• RPC este procedural ca în C, dar RMI este orientat pe obiect.
• RPC acceptă doar tipuri de date primitive, în timp ce RMI permite ca obiectele să fie transmise ca argumente și să returneze valori. Atunci când se utilizează RPC, programatorul trebuie să împartă orice obiecte compuse la 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 proiectare datorită naturii orientate 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ă a limbii limitează tipurile de date care sunt transmise ca argumente și returnează valorile tipurilor primitive. RMI este implementarea RPC în Java și acceptă și trecerea obiectelor, facilitând viața programatorului. Avantajul RMI este suportul de proiectare orientat pe obiecte, dar limitarea la Java este un dezavantaj.
Imagini Amabilitate: