Übersicht über die WSDAPI-Schnittstellen

Web Services on Devices API (WSDAPI) wird verwendet, um Clientanwendungen zu entwickeln, die Geräte finden und darauf zugreifen, sowie zum Entwickeln von Gerätehosts und zugehörigen Diensten, die unter Windows Vista und Windows Server 2008 ausgeführt werden. Die Funktionsermittlungs-API und das WsdCodeGen-Tool sind zusätzliche Tools, die für die Client-, Gerätehost- und Dienstentwicklung verwendet werden können. Die WSDAPI-Schnittstellen können direkt verwendet werden, um erweiterte Funktionen verfügbar zu machen.

Wichtige WSDAPI-Schnittstellen

Die vier wichtigsten WSDAPI-Schnittstellen sind IWSDiscoveryProvider, IWSDiscoveryPublisher, IWSDDeviceProxy und IWSDDeviceHost. Eine Liste aller WSDAPI-Schnittstellen finden Sie unter Webdienste auf Geräteschnittstellen.

IWSDiscoveryProvider

IWSDiscoveryProvider wird verwendet, um WS-Discovery Funktionalität auf Clients zu implementieren.

IWSDiscoveryProvider gibt WS-Discovery Test - und Resolve-Nachrichten aus und empfängt Hello-, Bye-, ProbeMatches- und ResolveMatches-Nachrichten . Verwenden Sie die über die IWSDiscoveryProvider-Schnittstelle abgerufenen Informationen, wenn Sie eine IWSDDeviceProxy-Schnittstelle erstellen, die zum Beschreiben und Steuern eines bestimmten DPWS-Geräts verwendet wird.

Eine IWSDiscoveryProvider-Schnittstelle ist nicht erforderlich, wenn sie vor dem Erstellen eines Geräteproxys einfach eine bestimmte DPWS-Geräteadresse auflösen. WSDCreateDeviceProxy löst die Geräteadresse bei Bedarf automatisch auf.

Die Funktionsermittlungs-API kann für die generische Geräte- und Dienstermittlung verwendet werden, da die API DPWS-Geräte und geräte mit anderen Protokollen ermitteln kann. Erwägen Sie die Verwendung der Funktionsermittlung beim Schreiben einer generischen Ermittlungsanwendung.

IWSDiscoveryPublisher

IWSDiscoveryPublisher wird verwendet, um WS-Discovery Funktionalität auf Zieldiensten wie Geräten zu implementieren.

IWSDiscoveryPublisher ermöglicht es einer Anwendung, ihre Anwesenheit mithilfe von WS-Discovery Hello and Bye-Nachrichten zu veröffentlichen. Diese Schnittstelle ermöglicht es einer Anwendung, Test- und Resolve-Anforderungen zu empfangen sowie ProbeMatches- und ResolveMatches-Antworten zu erstellen und zu senden.

Eine IWSDiscoveryPublisher-Schnittstelle ist nicht erforderlich, wenn einfach das Vorhandensein eines IWSDDeviceHost-Objekts veröffentlicht wird. IWSDDeviceHost verwaltet seine eigene WS-Discovery Anwesenheit.

IWSDDeviceProxy

IWSDDeviceProxy wird verwendet, um clientseitige WS-Discovery-, WS-MetadataExchange- und Steuerungsfunktionen zu implementieren. Diese Funktionalität umfasst optionale Funktionen für sicheren Kanal, WS-Eventing und Anlagen.

Die IWSDDeviceProxy-Schnittstelle hat die folgenden drei Verwendungsmöglichkeiten.

  • Löst bei Bedarf logische Geräteadressen auf.
  • Initiiert Metadatenanforderungen an Geräte, um die Typen und Adressen von Diensten aufzulisten.
  • Stellt eine Quelle für IWSDServiceProxy-Objekte bereit, die verwendet werden können, um Steuernachrichten an bestimmte Dienste auf einem Gerät auszugeben.

Das IWSDDeviceProxy-Objekt wird in der Regel vollständig innerhalb des von WsdCodeGen generierten Codes erstellt und verwendet.

IWSDDeviceHost

IWSDDeviceHost wird verwendet, um geräteseitige WS-Discovery-, WS-MetadataExchange- und Diensthostingfunktionen zu implementieren. Gehostete Dienste können auf Steuerungsnachrichten reagieren und können sichere Kanal-, WS-Ereignis- und Anlagenfunktionen unterstützen.

Die IWSDDeviceHost-Schnittstelle hat die folgenden Verwendungsmöglichkeiten.

  • Hosten von Dienstobjekten.
  • Gibt das Vorhandensein eines Gerätehosts im Netzwerk mithilfe von WS-Discovery an.
  • Reagiert auf WS-MetadataExchange Anforderungen und beschreibt die Typen und Speicherorte gehosteter Dienste.
  • Sendet Netzwerkanforderungen an Dienstobjekte.

WS-Discovery, WS-MetadataExchange und WS-Eventing Abonnementverwaltungsfunktionen werden vollständig innerhalb des Gerätehostobjekts behandelt. Bevor ein Dienst innerhalb eines Gerätehosts gehostet werden kann, müssen die folgenden Anforderungen erfüllt sein.

  • Der Host muss durch Aufrufen von WSDCreateDeviceHost erstellt werden.
  • Die dem Dienst zugeordneten Metadaten müssen registriert werden.
  • Der Dienst selbst muss registriert werden.
  • Der Gerätehost muss gestartet werden.

Das IWSDDeviceHost-Objekt wird in der Regel innerhalb des von WsdCodeGen generierten Codes erstellt und verwendet.