Verschil Tussen RPC En RMI

Inhoudsopgave:

Verschil Tussen RPC En RMI
Verschil Tussen RPC En RMI

Video: Verschil Tussen RPC En RMI

Video: Verschil Tussen RPC En RMI
Video: RPC vs RMI|Difference between rpc and rmi|RPC and RMI difference|Difference between rmi and rpc 2024, Mei
Anonim

RPC versus RMI

Het fundamentele verschil tussen RPC en RMI is dat RPC een mechanisme is waarmee een procedure op een externe computer kan worden aangeroepen, terwijl RMI de implementatie is van RPC in Java. RPC is taalneutraal, maar ondersteunt alleen primitieve gegevenstypen die moeten worden doorgegeven. Aan de andere kant is RMI beperkt tot Java, maar laat het objecten doorgeven. RPC volgt traditionele procedurele taalconstructies, terwijl RMI objectgeoriënteerd ontwerp ondersteunt.

Wat is RPC?

RPC, wat staat voor Remote Procedure Call, is een soort communicatie tussen processen. Hierdoor kan een functie worden aangeroepen in een ander proces dat op de lokale computer of een externe computer wordt uitgevoerd. Dit concept ontstond lang geleden in 1980, maar de eerste beroemde implementatie was te zien in Unix.

RPC omvat verschillende stappen. De cliënt doet zoals gewoonlijk een procedure-oproep op de lokale computer. De module genaamd client stub verzamelt de argumenten en maakt een bericht en geeft het door aan het besturingssysteem. Besturingssysteem doet een systeemaanroep en stuurt dit bericht naar de externe computer. Het besturingssysteem op de server verzamelt het bericht en geeft het door aan de module op de server met de naam serverstub. Vervolgens roept serverstub de procedure op de server aan. Ten slotte worden de resultaten teruggestuurd naar de klant.

Het voordeel van het gebruik van RPC is dat het onafhankelijk is van de netwerkdetails. De programmeur hoeft alleen maar op een abstracte manier te specificeren, terwijl het besturingssysteem voor de interne netwerkdetails zorgt. Dit maakt het programmeren dus eenvoudiger en laat RPC over elk netwerk werken, ondanks de fysieke en protocolverschillen. RPC-implementaties zijn aanwezig in alle gangbare besturingssystemen zoals Unix, Linux, Windows en OS X. RPC is over het algemeen taalneutraal en daarom beperkt het de gegevenstypen tot de meest primitieve, aangezien ze gemeenschappelijk moeten zijn voor alle talen. De benadering in RPC is niet objectgeoriënteerd, maar het is een traditioneel procedureel mechanisme zoals in C.

Verschil tussen RPC en RMI
Verschil tussen RPC en RMI

Wat is RMI?

RMI, wat staat voor Remote Method Invocation, is een API (Application Programming Interface) die RPC in Java implementeert om objectgeoriënteerde aard te ondersteunen. Hierdoor kunnen Java-methoden worden aangeroepen op een andere virtuele Java-machine die zich op dezelfde computer of een externe computer bevindt. De beperking van RMI is dat alleen Java-methoden kunnen worden aangeroepen, maar dit heeft het voordeel dat objecten kunnen worden doorgegeven als argumenten en retourwaarden. Wanneer de prestaties worden beschouwd, is RMI langzamer dan RPC vanwege de betrokkenheid van bytecode op de Java Virtual-machine, maar RMI is erg programmeervriendelijk en het is heel gemakkelijk te gebruiken.

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

Wat is het verschil tussen RPC en RMI?

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

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

• RPC ondersteunt alleen primitieve gegevenstypen, terwijl RMI toestaat dat objecten worden doorgegeven als argumenten en retourwaarden. Bij gebruik van RPC moet de programmeur alle samengestelde objecten splitsen in primitieve gegevenstypen.

• RMI is eenvoudig om die RPC te programmeren.

• RMI is langzamer dan RPC aangezien RMI de uitvoering van java-bytecode inhoudt.

• RMI maakt het gebruik van ontwerppatronen mogelijk vanwege de objectgeoriënteerde aard, terwijl RPC deze mogelijkheid niet heeft.

Samenvatting:

RPC versus RMI

RPC is een taalneutraal mechanisme waarmee een procedure op een externe computer kan worden aangeroepen. De taalneutrale functie beperkt echter de gegevenstypen die worden doorgegeven als argumenten en retourwaarden tot primitieve typen. RMI is de implementatie van RPC in Java en het ondersteunt ook het doorgeven van objecten, waardoor het leven van de programmeur gemakkelijker wordt. Het voordeel van RMI is de objectgeoriënteerde ontwerpondersteuning, maar beperking tot Java is een nadeel.

Afbeeldingen beleefdheid:

Aanbevolen: