Verschil tussen RPC en RMI

RPC vs RMI

De basis verschil tussen RPC en RMI is dat RPC een mechanisme is dat het oproepen van een procedure op een externe computer mogelijk maakt, terwijl RMI de implementatie van RPC in Java is. RPC is taalneutraal maar ondersteunt alleen primitieve datatypen die worden doorgegeven. Aan de andere kant, RMI is beperkt tot Java, maar laat de voorbijgaande objecten toe. RPC volgt traditionele procedurele taalconstructies, terwijl RMI objectgericht ontwerp ondersteunt.

Wat is RPC?

RPC, die staat voor Remote Procedure Call, is een soort communicatie tussen processen. Hiermee kunt u een functie bellen in een ander proces dat op de lokale computer of op een externe computer draait. Dit concept ontstond lang geleden in 1980, maar de eerste bekende implementatie werd gezien in Unix.

RPC omvat meerdere stappen. De client doet als gewoon een procedure op de lokale computer. De module genaamd client stub verzamelt de argumenten en maakt een bericht en gaat naar het besturingssysteem. Het besturingssysteem maakt een systeemgesprek en stuurt dit bericht naar de externe computer. Besturingssysteem in de server verzamelt het bericht en gaat naar de module op de server genaamd server stub. Dan roept de server stub de procedure op de server op. Eindelijk worden de resultaten teruggestuurd naar de klant.

Het voordeel van het gebruik van RPC is dat het onafhankelijk is op de netwerkdetails. De programmeur moet op abstracte wijze alleen opgeven, terwijl het besturingssysteem de interne netwerkgegevens zal verzorgen. Zo maakt dit de programmering makkelijker en laat RPC over elk netwerk werken ondanks de fysieke en protocolverschillen. RPC-implementaties zijn aanwezig in alle algemene besturingssystemen zoals Unix, Linux, Windows en OS X. RPC is over het algemeen taalneutraal, waardoor het de gegevenstypes beperkt tot de meest primitieve, omdat ze voor alle talen gebruikelijk zijn. De aanpak in RPC is niet objectgericht, maar het is een traditioneel procedurele mechanisme zoals in C.

Wat is RMI?

RMI, die staat voor Remote Method Invocation, is een API (Application Programming Interface) die RPC in Java implementeert om objectgerichte natuur te ondersteunen. Dit laat het bellen van Java-methoden toe op een andere Java Virtual-computer die op dezelfde computer of op een externe computer woont. De beperking van RMI is dat alleen Java-methoden kunnen worden ingeroepen, maar dit komt met het voordeel dat objecten kunnen worden doorgegeven als argumenten en retourwaarden. Als de prestatie wordt beschouwd, is RMI langzamer dan RPC door de betrokkenheid van bytecode op de Java Virtual-machine, maar RMI is erg programmeurvriendelijk en het is erg makkelijk te gebruiken.

RMI gebruikt ingebouwde beveiligingsmechanismen in Java en geeft ook een socketfabriek die het gebruik van non-TCP aangepaste transportlaagprotocollen mogelijk maakt. Bovendien biedt RMI methoden om firewalls omzeilen. De stappen die optreden in RMI is vergelijkbaar met RPC. De implementatie van RMI zorgt voor de interne netwerkdetails waar de programmeur zich geen zorgen hoeft te maken over hen.

Wat is het verschil tussen RPC en RMI?

• RPC is taalneutraal, terwijl RMI is beperkt tot Java.

• RPC is procedurele zoals in C, maar RMI is objectgericht.

• RPC ondersteunt alleen primitieve datatypen, terwijl RMI objecten mogelijk maakt als argumenten en retourwaarden. Bij het gebruik van RPC moet programmeur alle samengestelde objecten verdelen naar primitieve datatypen.

• RMI is gemakkelijk om die RPC te programmeren.

• RMI is langzamer dan RPC, aangezien RMI uitvoering van java bytecode omvat.

• RMI maakt gebruik van design patronen door de object georiënteerde aard, terwijl RPC niet beschikt over deze mogelijkheid.

Samenvatting:

RPC vs RMI

RPC is een taalneutraal mechanisme dat het mogelijk maakt om een ​​procedure op een externe computer op te roepen. De taalneutrale functie beperkt echter de gegevenstypen die worden doorgegeven als argumenten en retourwaarden naar primitieve typen. RMI is de implementatie van RPC in Java en ondersteunt het doorgeven van objecten, waardoor het leven van de programmeur makkelijker wordt. Het voordeel van RMI is het objectgerichte ontwerpondersteuning, maar beperking tot Java is een nadeel.

Foto's Hoffelijkheid:

  1. Synchroon tegen asynchrone RPC door CAPS entreprise (CC BY-SA 3. 0)