Protocollo RPC (Remote Procedure Call) nel sistema distribuito
โก Riepilogo intelligente
La chiamata di procedura remota (RPC) รจ un protocollo di comunicazione interprocesso che consente a un programma di eseguire una procedura in un altro spazio di indirizzamento o su un'altra macchina, nascondendo i dettagli di rete dietro una normale chiamata di funzione locale nei sistemi client-server distribuiti.

Cos'รจ l'RPC?
Remote Procedure Call (RPC) is an comunicazione tra processi Tecnica utilizzata per applicazioni client-server. L'acronimo RPC sta per Remote Procedure Call (chiamata di procedura remota). I meccanismi RPC vengono utilizzati quando un programma per computer fa sรฌ che una procedura o una subroutine venga eseguita in uno spazio di indirizzamento diverso, codificata come una normale chiamata di procedura senza che il programmatore codifichi esplicitamente i dettagli per l'interazione remota.
Questa chiamata di procedura gestisce anche i protocolli di trasporto di basso livello, come UDP e TCP/IP, per trasferire i dati dei messaggi tra i 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 abilita un paradigma peer-to-peer (P2P) tra i processi partecipanti. Consente a un processo di agire sia come client che come server.
Funzioni dell'RPC di richiamata:
- Gestisce i problemi delle applicazioni interattive elaborate da remoto.
- Fornisce al server l'handle del client.
- La funzione di callback mette in attesa il processo client.
- Gestisce i deadlock delle callback.
- Facilita un paradigma peer-to-peer tra i processi partecipanti.
Trasmetti RPC
La chiamata RPC broadcast รจ una richiesta del client che viene trasmessa in rete ed 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.
- Contribuisce a ridurre il carico sulla rete fisica.
RPC in modalitร batch
La modalitร batch RPC consente di accodare singole richieste RPC in un buffer di trasmissione sul lato client e di inviarle poi in un unico batch al server tramite la rete.
Funzioni della RPC in modalitร batch:
- Riduce al minimo il sovraccarico derivante dall'invio di una richiesta, poichรฉ invia le richieste in un unico batch sulla rete al server.
- Questo tipo di protocollo RPC รจ efficiente solo per le applicazioni che necessitano di frequenze 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
RPC Architectura
Come funziona l'RPC?
Durante il processo RPC si verificano i seguenti passaggi:
Passo 1) Il client, lo stub del client e un'istanza del runtime RPC vengono eseguiti sulla macchina client.
Passo 2) Il client avvia un processo stub client passando i parametri nel modo consueto. Lo stub client viene memorizzato nello spazio degli indirizzi del client stesso. Richiede inoltre al runtime RPC locale di inoltrare la richiesta allo stub server.
Passo 3) In questa fase, l'utente accede al protocollo RPC effettuando una normale chiamata di procedura locale. Il runtime RPC gestisce la trasmissione dei messaggi tra client e server attraverso la rete. Si occupa inoltre della ritrasmissione, della conferma di ricezione, dell'instradamento e della crittografia.
Passo 4) Dopo aver completato la procedura del server, l'esecuzione ritorna allo stub del server, che impacchetta (sequenza) i valori di ritorno in un messaggio. Lo stub del server invia quindi il messaggio al livello di trasporto.
Passo 5) In questa fase, il livello di trasporto invia il messaggio risultante al livello di trasporto del client, il quale a sua volta lo restituisce allo stub del client.
Passo 6) In questa fase, lo stub del client deserializza (estrae) i parametri di ritorno dal pacchetto risultante e l'esecuzione ritorna al chiamante.
Caratteristiche dell'RPC
Ecco le caratteristiche essenziali di RPC:
- La procedura chiamata si trova all'interno di un altro processo, che probabilmente risiede su 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 di chiamata.
Caratteristiche dell'RPC
Ecco le caratteristiche importanti di RPC:
- Sintassi di chiamata semplice.
- Offre semantica nota.
- Fornisce un'interfaccia ben definita.
- Puรฒ comunicare tra processi sulla stessa macchina o su macchine diverse.
Vantaggi dell'RPC
Ecco i vantaggi/benefici di RPC:
- RPC aiuta i client a comunicare con i server attraverso l'uso convenzionale di chiamate di procedura in linguaggi di alto livello.
- RPC si basa sul modello della chiamata di procedura locale, ma la procedura chiamata viene molto probabilmente eseguita in un processo diverso e solitamente su un computer diverso.
- RPC supporta modelli orientati ai processi e modelli orientati ai thread.
- RPC rende il meccanismo interno di scambio dei messaggi nascosto all'utente.
- Impegna molti dei livelli del protocollo per migliorare le prestazioni.
- RPC fornisce assolutatracad esempio, la natura di scambio di messaggi della comunicazione di rete rimane nascosta all'utente.
- RPC puรฒ essere utilizzato sia in ambienti distribuiti che locali.
- Lo sforzo necessario per riscrivere e rielaborare il codice รจ minimo.
Svantaggi dell'RPC
Ecco i contro/svantaggi dell'utilizzo di RPC:
- La chiamata di procedura remota (RPC) passa i parametri solo per valore; i valori puntatore (riferimento) non sono consentiti.
- Il tempo di chiamata (e di risposta) per una procedura remota, ovvero i costi generali, รจ significativamente piรน elevato rispetto a quello di una procedura locale.
- Questo meccanismo รจ altamente vulnerabile ai guasti, poichรฉ coinvolge un sistema di comunicazione, un'altra macchina e un altro processo.
- Il concetto di RPC puรฒ essere implementato in diversi modi, quindi non esiste un unico standard.
- Non offre flessibilitร per l'architettura hardware, poichรฉ si basa principalmente sull'interazione.
- Il costo del processo aumenta a causa della chiamata di procedura remota.

