Differenza Tra RPC E RMI

Sommario:

Differenza Tra RPC E RMI
Differenza Tra RPC E RMI

Video: Differenza Tra RPC E RMI

Video: Differenza Tra RPC E RMI
Video: Часть 1 из 3: Простое руководство по Java RMI 2024, Marzo
Anonim

RPC vs RMI

La differenza fondamentale 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 è indipendente dal linguaggio ma supporta solo il passaggio di tipi di dati primitivi. D'altra parte, RMI è limitato a Java ma consente il passaggio di oggetti. RPC segue i tradizionali costrutti del linguaggio procedurale mentre RMI supporta la progettazione orientata agli oggetti.

Cos'è l'RPC?

RPC, che sta per Remote Procedure Call, è un tipo di comunicazione tra processi. 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 famosa implementazione è stata vista in Unix.

RPC prevede diversi passaggi. Il client esegue normalmente una chiamata di procedura sul computer locale. Il modulo chiamato client stub raccoglie gli argomenti e crea un messaggio e lo passa al sistema operativo, il sistema operativo esegue una chiamata di sistema e invia questo messaggio al computer remoto. Il sistema operativo nel server raccoglie il messaggio e lo passa al modulo sul server chiamato server stub. Quindi lo stub del server chiama la procedura sul server. Infine, i risultati vengono restituiti al cliente.

Il vantaggio dell'utilizzo di RPC è che è indipendente dai dettagli della rete. Il programmatore deve solo specificare in modo astratto mentre il sistema operativo si prenderà cura dei dettagli della rete interna. Quindi questo semplifica la programmazione e consente a RPC di funzionare su qualsiasi rete nonostante le differenze fisiche e di protocollo. Le implementazioni RPC sono presenti in tutti i principali sistemi operativi come Unix, Linux, Windows e OS X. RPC è generalmente indipendente dal linguaggio, quindi limita i tipi di dati a quelli più primitivi poiché devono essere comuni a tutti i linguaggi. L'approccio in RPC non è orientato agli oggetti, ma è un meccanismo procedurale tradizionale come in C.

Differenza tra RPC e RMI
Differenza tra RPC e RMI

Cos'è RMI?

RMI, che sta per Remote Method Invocation, è un'API (Application Programming Interface) che implementa RPC in java per supportare la natura orientata agli oggetti. Ciò consente di chiamare metodi Java su un'altra macchina virtuale Java che risiede sullo stesso computer o su uno remoto. La limitazione di RMI è che possono essere richiamati solo metodi Java, ma questo ha 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 Java Virtual machine, ma RMI è molto intuitivo per i programmatori ed è molto facile da usare.

RMI utilizza meccanismi di sicurezza integrati in Java e fornisce anche una fabbrica di socket che consente l'utilizzo di protocolli del livello di trasporto personalizzato non TCP. Inoltre, RMI fornisce metodi per aggirare i firewall. I passaggi che si verificano in RMI sono simili a RPC. L'implementazione di RMI si occupa dei dettagli della rete interna in cui il programmatore non deve preoccuparsene.

Qual è la differenza tra RPC e RMI?

• RPC è indipendente dal linguaggio mentre RMI è limitato a Java.

• RPC è procedurale come in C, ma RMI è orientato agli oggetti.

• RPC supporta solo i tipi di dati primitivi mentre RMI consente di passare gli oggetti come argomenti e valori di ritorno. Quando si utilizza RPC, il programmatore deve suddividere qualsiasi oggetto composto in tipi di dati primitivi.

• RMI è facile da programmare tale RPC.

• RMI è più lento di RPC poiché RMI implica l'esecuzione di java bytecode.

• RMI consente l'utilizzo di modelli di progettazione a causa della natura orientata agli oggetti mentre RPC non ha questa capacità.

Sommario:

RPC vs RMI

RPC è un meccanismo indipendente dal linguaggio che consente di chiamare una procedura su un computer remoto. Tuttavia, la funzionalità indipendente dal linguaggio limita i tipi di dati che vengono passati come argomenti e restituisce valori ai tipi primitivi. RMI è l'implementazione di RPC in Java e supporta anche il passaggio di oggetti, semplificando la vita del programmatore. Il vantaggio di RMI è il supporto per la progettazione orientata agli oggetti, ma la limitazione a Java è uno svantaggio.

Immagini per gentile concessione:

Raccomandato: