Differenza tra RPC e RMI | RPC vs RMI
RPC vs RMI < la differenza tra RPC e RMI è che RPC è un meccanismo che consente la chiamata di una procedura su un computer remoto mentre RMI è l'implementazione di RPC in java. RPC è linguaggio neutro ma supporta solo i tipi di dati primitivi da passare. D'altro canto, RMI è limitato a Java ma consente di passare gli oggetti. RPC segue tradizionali costrutti della lingua procedurale mentre RMI supporta il design orientato agli oggetti.
Che cos'è RPC?RPC, che sta per Remote Procedure Call, è un tipo di comunicazione interprocessa. Ciò consente di chiamare una funzione in un altro processo in esecuzione sul computer locale o su un computer remoto. Questo concetto è emerso molto tempo fa nel 1980, ma la prima nota implementazione è stata vista in Unix.
RPC comporta diversi passaggi. Il cliente effettua una chiamata di procedura sul computer locale come al solito. Il modulo chiamato stub del client raccoglie gli argomenti e crea un messaggio e passa al sistema operativo, il sistema operativo effettua una chiamata di sistema e invia questo messaggio al computer remoto. Il sistema operativo nel server raccoglie il messaggio e passa al modulo sul server denominato server stub. Quindi lo stub server richiama la procedura sul server. Infine, i risultati vengono inviati al cliente.
RMI, che sta per Remote Invocation Metodo, è un'API (Application Programming Interface) che implementa RPC in java per supportare la natura orientata agli oggetti. Ciò consente di chiamare i metodi Java in un'altra macchina virtuale Java che risiede nello stesso computer o in un altro remoto. La limitazione di RMI è che solo i metodi Java possono essere richiamati, ma questo presenta il vantaggio che gli oggetti possono essere passati come argomenti e valori di ritorno. Quando le prestazioni sono considerate RMI è più lento di RPC a causa del coinvolgimento del bytecode sulla macchina Java Virtual, ma RMI è molto amichevole per il programmatore ed è molto facile da usare.
RMI utilizza meccanismi di protezione incorporati in Java e fornisce anche una fabbrica di socket che consente l'utilizzo di protocolli a livello di trasporto personalizzato non TCP. Inoltre, RMI fornisce metodi per bypassare i firewall. I passaggi che si verificano in RMI sono simili a quelli RPC. L'implementazione di RMI cura i dettagli della rete interna in cui il programmatore non deve preoccuparsi di loro.
Qual è la differenza tra RPC e RMI?
• RPC è un linguaggio neutro mentre RMI è limitato a Java.
• RPC è procedurale come in C, ma RMI è orientato agli oggetti.
• RPC supporta solo tipi di dati primitivi mentre RMI consente agli oggetti di essere passati come argomenti e valori di ritorno. Quando si utilizza RPC, il programmatore deve dividere tutti gli oggetti composti su tipi di dati primitivi.
• RMI è facile programmare tale RPC.
• RMI è più lento di RPC poiché RMI prevede l'esecuzione di bytecode java.
• RMI consente l'utilizzo di modelli di design dovuti alla natura orientata agli oggetti mentre RPC non dispone di questa funzionalità.
Riepilogo:
RPC vs RMI
RPC è un meccanismo neutro di lingua che consente la chiamata di una procedura su un computer remoto. Tuttavia, la funzione di linguaggio neutro limita i tipi di dati che vengono passati come argomenti e restituisce i valori a tipi primitivi. RMI è l'implementazione di RPC in Java e supporta anche l'oggetto che passa, rendendo più facile la vita del programmatore. Il vantaggio di RMI è il supporto di progettazione orientato agli oggetti, ma la limitazione a Java è uno svantaggio.
Cortesia di immagini:
RPC sincrono o asincrono da CAPS entreprise (CC BY-SA 3. 0)