Modello di programmazione
Nei primi tempi della programmazione di computer, ogni programma è stato scritto come un grande blocco monolitico, pieno di istruzioni goto. Ogni programma doveva gestire il proprio input e output in dispositivi hardware diversi. Con la maturità della disciplina di programmazione, questo codice monolitico è stato organizzato in procedure, con le procedure più comunemente usate in librerie per la condivisione e il riutilizzo.
Il linguaggio di programmazione C supporta la programmazione orientata alle procedure. In C, la procedura principale è collegata a tutte le altre procedure come a delle scatole nere. Ad esempio, la procedura principale non è in grado di scoprire come le procedure A, B e X svolgono il loro lavoro. La procedura principale chiama solo un'altra procedura; non dispone di informazioni sulla modalità di implementazione di tale procedura.
I linguaggi di programmazione orientati alle procedure forniscono meccanismi semplici per specificare e scrivere procedure. Ad esempio, il prototipo di funzione C standard ANSI è un costrutto usato per specificare il nome di una routine, il tipo del risultato restituito (se presente) e il numero, la sequenza e il tipo dei relativi parametri. L'uso del prototipo di funzione è un modo formale per specificare un'interfaccia tra le procedure.
Microsoft RPC si basa su tale modello di programmazione consentendo alle procedure, raggruppate in interfacce, di risiedere in processi diversi rispetto al chiamante. Microsoft RPC aggiunge inoltre un approccio più formale alla definizione della procedura che consente al chiamante e alla routine chiamata di adottare un contratto per lo scambio remoto di dati e la chiamata di funzionalità. Nel modello di programmazione RPC Microsoft, le chiamate di funzione tradizionali vengono integrate con due elementi aggiuntivi.
- Il primo elemento è un file con estensione idl/.acf che descrive in modo preciso lo scambio di dati e il meccanismo di passaggio dei parametri tra il chiamante e la routine chiamata.
- Il secondo elemento è un set di API di runtime che forniscono agli sviluppatori un controllo granulare della chiamata di procedura remota, inclusi gli aspetti di sicurezza, la gestione dello stato nel server, la specifica dei client che possono comunicare con il server e così via.