13) Come avviene il binding dinamico?
Fase di compilazione: tutto si svolge come se si usasse una procedura locale, in quanto gli stub rendono trasparente l’approccio. Gli stub sono prodotti in modo automatico.
Fase di collegamento (binding vero e proprio). Preparato durante lo sviluppo attuato a run-time:
il server si esporta registrandosi.
Primitive del binder che vengono invocate:
- register (servizio, versione, servitore).
- unregister (servizio, versione, servitore).
il client importa un server specificato.
Primitiva:
- lookup (servizio, versione, &servitore)
il nome del servitore può essere dipendente dal nodo di residenza o meno. Se dipendente, allora una variazione deve essere comunicata al binder.
Possono essere usati binder multipli per limitare l’overhead: inizialmente i clienti usano un broadcast per trovare il binder più conveniente.
Fase di chiamata (o di trasporto): gli stub usano il servizio di comunicazione (trasporto). Possibili eterogeneità, necessità di controllo della RPC (monitoring, debugging, ecc.)
Fase di controllo: la chiamata può andare a buon fine dopo un collegamento statico o dinamico.
Fase di rappresentazione dei dati: a causa di problemi in ambiente eterogeneo vi è la necessità di traslazione dei dati. Tanto è più veloce tanto meglio è, viene inserita la ridondanza ritenuta necessaria.