14) Come è strutturata una RPC con chiamata a basso livello?

La chiamata remota eseguita tramite funzioni avanzate permette di ottenere la massima capacità espressiva.

SERVER: preparazione all’accettazione di richieste di servizio

creazione di gestore di protocollo che utilizza una socket per il meccanismo di trasporto UDP o TCP: primitive svcudp_create() o svctcp_create()

distruzione di eventuali precedenti registrazioni con lo stesso numero di programma e versione: pmap_unset()

associazione di una tripla {n_prog,n_vers,protocollo} ad una procedura di dispatching che implementa i vari servizi: svc_register()

ingresso nel ciclo infinito di attesa e servizio della chiamata: svc_run()

CLIENT: preparazione alla richiesta di servizio, chiamata e termine

creazione di gestore di protocollo che utilizza una socket per il meccanismo di trasporto UDP o TCP: primitive clntudp_create() o clnttcp_create()

chiamata alla procedura remota: clnt_call()

interpretazione degli eventuali errori: clnt_perror()

deallocazione del gestore: clnt_destroy()

Osservazioni:

la svcXXX_create() ritorna un puntatore ad un gestore di trasporto (struttura del tipo SVCXPRT)

 


Back
Index
Next