27) In cosa consiste il callback?

La modalità asincrona di ritorno (callback) consiste nell’inversione dei ruoli fra client e server.

Nella RPC, i ruoli cliente e servitore ben definiti, tuttavia alcuni servizi remoti devono invertire il ruolo ed il servitore diventa richiedente per il cliente. Questo, nella terminologia RPC, si chiama callback.

Il callback, anche se l’RPC iniziale è sincrona, porta asincronismo.

Per implementare un meccanismo callback occorre un numero di programma per la RPC di ritorno, che viene generato dinamicamente nell'intervallo dei numeri di programma transient (40000000h - 5fffffffh) tramite la primitiva gettransient(), che trova un numero libero di programma (dinamico)

u_long gettransient (protocol, vers, sockp)

int protocol; /* protocollo utilizzato */

u_long vers; /* versione */

int *sockp; /* con sockp= RPC_ANYSOCK, si crea una nuova socket */

/* e socket descriptor in *sockp */

il risultato è il numero di programma registrato .

 


Back
Index
Next