Instructions relatives à l’application de service de nom
Lorsque vous développez votre application distribuée, vous devez fournir aux utilisateurs de l’application une méthode pour spécifier le nom sous lequel ils peuvent inscrire l’application dans la base de données du service de noms. Cette méthode peut se composer d’un fichier de données, d’une entrée de ligne de commande ou d’une boîte de dialogue.
Bien que l’architecture du service de nom RPC prenne en charge différentes méthodes d’organisation des entrées de serveur d’une application, elle est optimisée pour les recherches. Par conséquent, des mises à jour fréquentes peuvent nuire aux performances du service de noms et de l’application. Pour éviter d’exporter inutilement des informations, choisissez une conception qui permet au serveur de déterminer si ses informations se situent dans la base de données du service de noms. En outre, chaque serveur instance doit exporter vers son propre nom d’entrée. Sinon, il sera difficile pour un instance de modifier ses UUID d’objets pris en charge ou les séquences de protocole sans perturber les informations d’un autre instance.
La méthode suivante évite ces pièges et fournit de bonnes performances, quel que soit le service de nom utilisé par votre réseau.
Pour commencer, concevez votre application de sorte que la première fois qu’un serveur donné instance démarre, elle sélectionne un nom d’entrée serveur unique et enregistre ce nom dans le Registre, ainsi que les autres informations de configuration de l’application. Ensuite, faites-lui exporter ses descripteurs de liaison et les UUID d’objet, le cas échéant, vers son entrée de service de nom.
Les appels ultérieurs du serveur instance doivent case activée que l’entrée de service de nom est présente et contient l’ensemble correct d’UUID d’objet et de handles de liaison. Une entrée manquante peut signifier qu’un administrateur l’a supprimée ou qu’une panne de courant a provoqué la perte des informations du service de nom. Il est important de vérifier que les handles de liaison dans l’entrée sont corrects ; si un administrateur ajoute la prise en charge TCP/IP à un ordinateur, par exemple, les serveurs RPC écoutent cette séquence de protocole lorsqu’ils appellent RpcServerUseAllProtseqs. Toutefois, si le serveur ne met pas à jour l’entrée de service de nom, les clients ne sont pas informés que TCP est pris en charge.
Lorsque le client importe, il doit spécifier NULL comme nom d’entrée. Si vous spécifiez la valeur NULL, les fonctions de la bibliothèque Microsoft RPC recherchent l’interface dans toutes les entrées de service de nom dans le domaine ou le groupe de travail de l’ordinateur client, ce qui permet de trouver les informations pour chaque instance.
Si vous utilisez des UUID d’objets pour représenter des objets connus tels que des imprimantes, vous pouvez utiliser une variante de cette méthode. Au lieu d’exporter des liaisons vers une seule entrée, concevez votre application de sorte que chaque instance crée une entrée pour chaque objet pris en charge, par exemple " / .:/ printers/Laser1 » et « /.:/ imprimantes/Laser2. » Ensuite, le serveur exporte ses handles de liaison vers chaque entrée de serveur, ainsi que l’UUID d’objet correspondant à cette entrée.
Dans ce cas, un client peut rechercher une ressource par nom en important à partir de l’entrée de serveur appropriée ; elle ne nécessite pas l’UUID de l’objet de la ressource. S’il a l’UUID de ressource, mais pas le nom, il peut importer à partir de l’entrée Null .