Protocollo RPC (Remote Procedure Call) nel sistema distribuito
Cos'รจ l'RPC?
Remote Procedure Call (RPC) รจ una tecnica di comunicazione interprocesso. La forma completa di RPC รจ Remote Procedure Call. ร utilizzata per applicazioni client-server. I meccanismi RPC sono utilizzati quando un programma per computer causa l'esecuzione di una procedura o di una subroutine in uno spazio di indirizzamento diverso, che รจ codificato come una normale chiamata di procedura senza che il programmatore codifichi specificamente i dettagli per l'interazione remota.
Questa chiamata di procedura gestisce anche il protocollo di trasporto di basso livello, come User Datagram Protocol, Transmission Protocollo di controllo/Protocollo Internet ecc. Viene utilizzato per trasportare i dati dei messaggi tra programmi.
Tipi di RPC
Tre tipi di RPC sono:
- RPC di richiamata
- Trasmetti RPC
- RPC in modalitร batch
RPC di richiamata
Questo tipo di RPC consente un paradigma P2P tra i processi partecipanti. Aiuta un processo a essere sia servizi client che server.
Funzioni dell'RPC di richiamata:
- Problemi applicativi interattivi elaborati in remoto
- Offre server con gestione client
- La richiamata fa attendere il processo client
- Gestire i deadlock di callback
- Facilita un paradigma peer-to-peer tra i processi partecipanti.
Trasmetti RPC
Broadcast RPC รจ una richiesta del client, che viene trasmessa sulla rete, elaborata da tutti i server che dispongono del metodo per elaborare tale richiesta.
Funzioni di Broadcast RPC:
- Consente di specificare che il messaggio di richiesta del client deve essere trasmesso in broadcast.
- Puoi dichiarare porte di trasmissione.
- Aiuta a ridurre il carico sulla rete fisica
RPC in modalitร batch
La modalitร batch RPC consente di mettere in coda e separare le richieste RPC in un buffer di trasmissione sul lato client, per poi inviarle in un unico batch al server su una rete.
Funzioni di RPC in modalitร batch:
- Riduce al minimo il sovraccarico coinvolto nell'invio di una richiesta poichรฉ le invia attraverso la rete in un batch al server.
- Questo tipo di protocollo RPC รจ efficace solo per le applicazioni che necessitano di tariffe di chiamata inferiori.
- Ha bisogno di un protocollo di trasmissione affidabile.
RPC Architectura
L'architettura RPC ha principalmente cinque componenti del programma:
- .
- Stub del cliente
- Tempo di esecuzione RPC
- Stub del server
- server

Come funziona l'RPC?
Durante il processo RPC si svolgono i seguenti passaggi:
Passo 1) Il client, lo stub del client e un'istanza del runtime RPC vengono eseguiti sul computer client.
Passo 2) Un client avvia un processo di stub del client passando i parametri nel solito modo. Lo stub del client viene archiviato nello spazio degli indirizzi del client. Chiede inoltre al runtime RPC locale di rispedire allo stub del server.
Passo 3) In questa fase, RPC a cui accede l'utente eseguendo regolarmente Local Procedural Cal. RPC Runtime gestisce la trasmissione dei messaggi tra la rete attraverso client e server. Esegue inoltre il lavoro di ritrasmissione, riconoscimento, routing e crittografia.
Passo 4) Dopo aver completato la procedura del server, ritorna allo stub del server, che comprime (esegue il marshall) i valori restituiti in un messaggio. Lo stub del server invia quindi un messaggio al livello di trasporto.
Passo 5) In questa fase, il livello di trasporto restituisce il messaggio risultato al livello di trasporto del client, che restituisce un messaggio allo stub del client.
Passo 6) In questa fase, lo stub del client demarshall (decomprime) i parametri di ritorno, nel pacchetto risultante, e il processo di esecuzione ritorna al chiamante.
Caratteristiche dell'RPC
Ecco le caratteristiche essenziali di RPC:
- La procedura chiamata si trova in un altro processo, che probabilmente risiederร in un'altra macchina.
- I processi non condividono lo spazio degli indirizzi.
- I parametri vengono passati solo tramite valori.
- RPC viene eseguito nell'ambiente del processo server.
- Non offre accesso all'ambiente della procedura chiamante.
Caratteristiche dell'RPC
Ecco le caratteristiche importanti di RPC:
- Sintassi di chiamata semplice
- Offre semantica conosciuta
- Fornire un'interfaccia ben definita
- Puรฒ comunicare tra processi sulla stessa macchina o su macchine diverse
Vantaggi dell'RPC
Ecco i pro/vantaggi di RPC:
- Il metodo RPC aiuta i client a comunicare con i server mediante l'uso convenzionale di chiamate di procedura in linguaggi di alto livello.
- Il metodo RPC รจ modellato sulla chiamata di procedura locale, ma รจ molto probabile che la procedura chiamata venga eseguita in un processo diverso e solitamente in un computer diverso.
- RPC supporta modelli orientati ai processi e ai thread.
- RPC rende nascosto all'utente il meccanismo interno di passaggio dei messaggi.
- Lo sforzo necessario per riscrivere e sviluppare nuovamente il codice รจ minimo.
- Le chiamate di procedura remota possono essere utilizzate ai fini dell'ambiente distribuito e locale.
- Impegna molti dei livelli del protocollo per migliorare le prestazioni.
- RPC fornisce l'astrazione. Ad esempio, la natura dello scambio di messaggi della comunicazione di rete rimane nascosta all'utente.
- RPC consente l'utilizzo delle applicazioni in un ambiente distribuito e non solo nell'ambiente locale.
- Con il codice RPC, gli sforzi di riscrittura e ri-sviluppo sono ridotti al minimo.
- Supporto di modelli orientati ai processi e ai thread tramite RPC.
Svantaggi dell'RPC
Ecco i contro/svantaggi dell'utilizzo di RPC:
- La chiamata di procedura remota passa i parametri solo in base ai valori e ai valori dei puntatori, il che non รจ consentito.
- Il tempo di chiamata (e restituzione) della procedura remota (cioรจ i costi generali) puรฒ essere significativamente inferiore a quello di una procedura locale.
- Questo meccanismo รจ altamente vulnerabile al fallimento poichรฉ coinvolge un sistema di comunicazione, un'altra macchina e un altro processo.
- Il concetto RPC puรฒ essere implementato in diversi modi, il che non puรฒ essere standard.
- Non offre alcuna flessibilitร in RPC per l'architettura hardware poichรฉ รจ basata principalmente sull'interazione.
- Il costo del processo aumenta a causa di una chiamata di procedura remota.
Sintesi
- Una chiamata di procedura remota รจ un file comunicazione tra processi tecnica.
- Tre tipi di RPC sono 1) RPC di richiamata 2) RPC di trasmissione e 3) RPC in modalitร batch
- L'architettura RPC ha principalmente cinque componenti del programma: 1) Client 2) Client Stub 3) RPC Runtime 4) Server Stub e 5) Server
- Nel metodo RPC i processi non condividono lo spazio degli indirizzi
- RPC offre una sintassi di chiamata semplice e una semantica conosciuta
- Il metodo RPC aiuta i client a comunicare con i server mediante l'uso convenzionale di chiamate di procedura in linguaggi di alto livello.
- Il piรน grande svantaggio del metodo RPC รจ che รจ altamente vulnerabile ai guasti poichรฉ coinvolge un sistema di comunicazione, un'altra macchina e un altro processo.
