Richtlijnen voor naamservicetoepassingen
Wanneer u uw gedistribueerde toepassing ontwikkelt, moet u de toepassingsgebruikers een methode opgeven voor het opgeven van de naam waaronder ze de toepassing kunnen registreren in de naamservicedatabase. Deze methode kan bestaan uit een gegevensbestand, opdrachtregelinvoer of dialoogvenster.
Hoewel de RPC-naamservicearchitectuur verschillende methoden ondersteunt voor het ordenen van serververmeldingen van een toepassing, is deze geoptimaliseerd voor zoekacties. Als gevolg hiervan kunnen frequente updates de prestaties van zowel de naamservice als de toepassing belemmeren. Als u het exporteren van gegevens onnodig wilt voorkomen, kiest u een ontwerp waarmee de server kan bepalen of de gegevens zich in de naamservicedatabase bevinden. Bovendien moet elk serverexemplaren worden geëxporteerd naar een eigen vermeldingsnaam. Anders is het moeilijk voor een exemplaar om de ondersteunde object-UUID's of protocolreeksen te wijzigen zonder de informatie van een ander exemplaar te storen.
De volgende methode vermijdt deze valkuilen en biedt goede prestaties, ongeacht de naamservice die uw netwerk gebruikt.
Ontwerp eerst uw toepassing zodat de eerste keer dat een bepaald serverexemplaren wordt gestart, een unieke serververmeldingsnaam kiest en deze naam opslaat in het register, samen met de andere configuratiegegevens van de toepassing. Vervolgens exporteert u de bindingsgrepen en object-UUID's, indien van toepassing, naar de naamservicevermelding.
Volgende aanroepen van het serverexemplaren moeten controleren of de naamservicevermelding aanwezig is en de juiste set object-UUID's en bindingsgrepen bevat. Een ontbrekende vermelding kan betekenen dat een beheerder deze heeft verwijderd of dat de naamservicegegevens verloren zijn gegaan door een stroomstoring. Het is belangrijk om te controleren of de bindingsgrepen in de vermelding juist zijn; als een beheerder TCP/IP-ondersteuning toevoegt aan een computer, luisteren RPC-servers bijvoorbeeld naar die protocolreeks wanneer ze RpcServerUseAllProtseqsaanroepen. Als de server de naamservicevermelding echter niet bijwerkt, worden clients niet geïnformeerd dat TCP wordt ondersteund.
Wanneer de client wordt geïmporteerd, moet deze NULL- opgeven als de naam van het item. Als u NULL- opgeeft, worden de functies van de Microsoft RPC-bibliotheek gezocht naar de interface in alle naamservicevermeldingen in het domein of de werkgroep van de clientcomputer, waardoor de informatie voor elk exemplaar wordt gevonden.
Als u object-UUID's gebruikt om bekende objecten zoals printers weer te geven, kunt u een variant van deze methode gebruiken. In plaats van bindingen naar één vermelding te exporteren, ontwerpt u de toepassing zodat elk exemplaar een vermelding maakt voor elk ondersteund object, zoals '/.:/printers/Laser1' en '/.:/printers/Laser2'. Laat de server vervolgens de bindingsgrepen exporteren naar elke serververmelding, samen met het object UUID dat relevant is voor die vermelding.
In dit geval kan een client een resource opzoeken op naam door te importeren uit de relevante serververmelding; hiervoor is de object-UUID van de resource niet vereist. Als de resource UUID maar niet de naam heeft, kan deze worden geïmporteerd uit de null- vermelding.