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:

  1. .
  2. Stub del cliente
  3. Tempo di esecuzione RPC
  4. Stub del server
  5. server
RPC Architectura
RPC Architectura

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.