Linee guida per l'applicazione del servizio dei nomi
Quando si sviluppa l'applicazione distribuita, è necessario fornire agli utenti dell'applicazione un metodo per specificare il nome in cui è possibile registrare l'applicazione nel database del servizio dei nomi. Questo metodo può essere costituito da un file di dati, un input della riga di comando o una finestra di dialogo.
Anche se l'architettura del servizio dei nomi RPC supporta vari metodi per organizzare le voci del server di un'applicazione, è ottimizzato per le ricerche. Di conseguenza, gli aggiornamenti frequenti possono ostacolare le prestazioni sia del servizio dei nomi che dell'applicazione. Per evitare di esportare informazioni inutilmente, scegliere una progettazione che consenta al server di determinare se le informazioni si trovano nel database del servizio dei nomi. Inoltre, ogni istanza del server deve essere esportata nel nome della voce. In caso contrario, sarà difficile per un'istanza modificare gli UUID dell'oggetto o le sequenze di protocollo supportati senza disturbare le informazioni di un'altra istanza.
Il metodo seguente evita queste insidie e offre prestazioni ottimali, indipendentemente dal nome usato dalla rete.
Per iniziare, progettare l'applicazione in modo che venga avviata la prima volta che viene avviata una determinata istanza del server, seleziona un nome univoco della voce del server e salva questo nome nel Registro di sistema insieme alle altre informazioni di configurazione dell'applicazione. Esportare quindi gli handle di associazione e gli UUID dell'oggetto, se presenti, nella voce del servizio dei nomi.
Le chiamate successive dell'istanza del server devono verificare che la voce del servizio dei nomi sia presente e contenga il set corretto di UUID oggetto e handle di associazione. Una voce mancante può significare che un amministratore lo ha rimosso o che un'interruzione dell'alimentazione ha causato la perdita delle informazioni sul servizio dei nomi. È importante verificare che gli handle di associazione nella voce siano corretti; se un amministratore aggiunge il supporto TCP/IP a un computer, ad esempio, i server RPC saranno in ascolto su tale sequenza di protocollo quando chiamano RpcServerUseAllProtseqs. Tuttavia, se il server non aggiorna la voce del servizio dei nomi, i client non verranno informati che TCP è supportato.
Quando il client esegue l'importazione, deve specificare NULL come nome della voce. Se si specifica NULL , le funzioni della libreria RPC Microsoft cercano l'interfaccia in tutte le voci del servizio dei nomi nel dominio o nel gruppo di lavoro del computer client, individuando così le informazioni per ogni istanza.
Se si usano UUID oggetto per rappresentare oggetti noti, ad esempio stampanti, è possibile utilizzare una variante di questo metodo. Anziché esportare associazioni in una voce, progettare l'applicazione in modo che ogni istanza crei una voce per ogni oggetto supportato, ad esempio "/.:/ stampanti/Laser1" e "/.:/ stampanti/Laser2." Fare quindi in modo che il server esporta i relativi handle di associazione in ogni voce del server, insieme all'UUID dell'oggetto pertinente a tale voce.
In questo caso, un client può cercare una risorsa in base al nome importando dalla voce del server pertinente; non richiede l'UUID dell'oggetto della risorsa. Se ha l'UUID della risorsa ma non il nome, può importare dalla voce Null .