Freigeben über


Implementieren eines WSD-Geräts mit mehreren Homed-Geräten

WS-Discovery und das Geräteprofil für Webdienste (DPWS) beschreiben nicht die Implementierung von Geräten mit mehreren Homed-Geräten. In diesem Thema wird die Unterstützung für geräteübergreifende Geräte in WSDAPI beschrieben, und es werden Implementierungsempfehlungen für Client- und Geräteentwickler bereitgestellt. In diesem Thema wird davon ausgegangen, dass Ermittlungsmeldungen sowohl über IPv4 als auch über IPv6 (sofern verfügbar) mit den gleichen Nachrichten-ID- und Anwendungssequenzinformationen gesendet werden.

Ermittlung in einer umgebung mit mehreren Heimen

Wie im Abschnitt Hello and XAddrs unter Additional WS-Discovery Functionality erwähnt, stellt WSDAPI niemals XAddrs in einer Hello-Nachricht bereit. Das bedeutet, dass dieselbe Hello-Nachricht an alle Netzwerkschnittstellen mit derselben Nachrichten-ID und Anwendungssequenzierungsinformationen gesendet werden kann. Dies erleichtert es der Clientkollisionserkennung, mehrere Hello-Nachrichten vom gleichen Gerät zu verwerfen, wenn ein Client und das Gerät mehrere Subnetze gemeinsam nutzen.

Da die XAddrs nicht in der Hello-Nachricht gesendet werden, müssen Clientimplementierungen eine Resolve-Nachricht senden, um die relevante Geräteadresse abzurufen. Die Auflösung sollte an alle Clientschnittstellen mit derselben Nachrichten-ID gesendet werden, und das Gerät sollte bei Bedarf doppelte Nachrichten filtern. Wenn Sie dieselbe Nachrichten-ID für die Nachricht auflösen verwenden, kann das Gerät bei Bedarf eine bevorzugte Schnittstelle für die Kommunikation mit Clients auswählen.

Beim Senden einer ResolveMatch-Nachricht sollte ein Gerät XAddrs bereitstellen, die sich auf die Netzwerkschnittstelle beziehen, über die die Nachricht unicastet wird. Diese Vorgehensweise hilft, mehrere Clientverbindungsversuche und komplizierte Wiederholungslogik zu vermeiden.

Metadatenaustausch in einer Multi-Homed-Umgebung

Das Implementieren des Metadatenaustauschs in einer Umgebung mit mehreren Heimen ist aufgrund der Metadatenversionsverwaltung schwieriger als die Implementierung der Ermittlung. Wenn ein Client Metadaten über mehrere Schnittstellen anfordert, kann der Client mehrere GetResponse-Nachrichten über verschiedene Schnittstellen empfangen. Diese GetResponse-Nachrichten können unterschiedliche Beziehungsmetadatenabschnitte mit derselben Metadatenversion enthalten. Dadurch wird der Wert der Metadatenversionsnummer reduziert.

Es gibt einen alternativen Ansatz, bei dem eine einzelne GetResponse-Nachricht als Antwort mit allen Adressen für den Dienst gesendet wird. Der Nachteil dieser Methode besteht darin, dass private Informationen, wie z. B. die Topologie von indirekt zugänglichen Netzwerken, offengelegt werden können.

Unter Windows Vista enthalten die von WSDAPI bereitgestellten Metadaten nur Adressen, die für die Schnittstelle gültig sind, über die die Metadatenanforderung empfangen wurde.