Utilisation d’adresses logiques et physiques
WS-Discovery définit l’adressage logique à l’aide d’URI en fonction du urn:uuid:
format. L’objectif de ce schéma d’adressage est de différencier l’identité de l’appareil de son adresse IP actuelle. Ce schéma fournit essentiellement les fonctionnalités des noms DNS sans nécessiter de serveur de noms.
Le profil d’appareils pour les services web (DPWS) recommande aux appareils d’utiliser ce schéma d’adressage.
DPWS recommande également que les services utilisent des adresses physiques (également appelées adresses de transport). Cela permet aux clients qui ne prennent pas en charge les mécanismes d’adressage WS-Discovery en mode natif de communiquer avec les services DPWS. En outre, chaque service peut définir ses adresses, ce qui permet l’adressage au niveau du transport pour les implémentations d’appareils qui gèrent la répartition des services au niveau d’une couche inférieure. Enfin, l’utilisation d’adresses physiques optimise l’interopérabilité.
L’inconvénient de l’adressage physique est qu’il ajoute de la complexité aux implémentations d’appareils, car l’adresse IP ou l’adresse de transport actuelle doit être suivie et les métadonnées de l’appareil doivent être modifiées en conséquence. Pour cette raison, DPWS ne nécessite pas que les services utilisent des adresses de transport.
Si des adresses logiques sont utilisées, il existe des scénarios dans lesquels le comportement d’implémentation n’est pas défini. La spécification WS-Discovery ne décrit pas ce que signifie pour un service de résider à une adresse logique. R1001 de la spécification WS-Discovery recommande de ne pas utiliser WS-Discovery sur les services hébergés en raison du chat réseau associé.
Il n’est pas recommandé que les services résident à des adresses logiques, car cela réduit l’interopérabilité. Si une implémentation doit absolument résider à une adresse logique, le service doit utiliser la même adresse logique que l’appareil. Si cela ajoute trop de complexité au modèle de répartition sur l’appareil, la solution recommandée consiste à utiliser des paramètres de référence pour différencier les services. WSDAPI envoie correctement des messages aux services s’ils utilisent la même adresse de point de terminaison que l’appareil.