Udostępnij przez


Implementacja urządzenia WSD z wielohomowaniem

odnajdywania WS i profilu urządzeń dla usług sieci Web (DPWS) nie opisują implementacji urządzeń wieloadzielonego. W tym temacie opisano obsługę urządzeń wielodomowych w programie WSDAPI i przedstawiono zalecenia dotyczące implementacji dla deweloperów klientów i urządzeń. W tym temacie przyjęto założenie, że komunikaty odnajdywania są wysyłane zarówno za pośrednictwem protokołów IPv4, jak i IPv6 (jeśli są dostępne) z tym samym identyfikatorem komunikatu i informacjami sekwencjonowania aplikacji.

Odnajdywanie w środowisku z wieloma domami

Jak wspomniano w sekcji Hello i XAddrs sekcji Dodatkowe funkcje WS-Discovery, interfejs WSDAPI nigdy nie udostępnia funkcji XAddrs w wiadomości Hello. Oznacza to, że na wszystkich interfejsach sieciowych można wysłać ten sam komunikat Hello z tym samym identyfikatorem komunikatu i informacjami sekwencjonowania aplikacji. Ułatwia to wykrywanie kolizji klienta, co pozwala na odrzucenie wielu wiadomości Hello z tego samego urządzenia, gdy klient i urządzenie współużytkują więcej niż jedną podsieć.

Ponieważ XAddrs nie są wysyłane w wiadomości Hello, implementacje klienta muszą wysłać wiadomość Resolve, aby uzyskać odpowiedni adres urządzenia. Rozwiązanie powinno być wysyłane na wszystkich interfejsach klienta z tym samym identyfikatorem wiadomości, a urządzenie powinno filtrować zduplikowane wiadomości w razie potrzeby. Użycie tego samego identyfikatora komunikatu dla komunikatu Resolve umożliwia urządzeniu wybranie preferowanego interfejsu do komunikacji z klientami w razie potrzeby.

Podczas wysyłania komunikatu ResolveMatch urządzenie powinno podać XAddrs, które odnoszą się do interfejsu sieciowego, przez który przesyła wiadomość unikatową. Ta praktyka pomaga uniknąć wielu prób nawiązania połączenia klienta i skomplikowanej logiki ponawiania prób.

Wymiana metadanych w środowisku z wieloma domami

Implementowanie wymiany metadanych w środowisku z wieloma domami jest trudniejsze niż implementowanie odnajdywania z powodu przechowywania metadanych. Jeśli klient żąda metadanych za pośrednictwem wielu interfejsów, klient może odbierać wiele GetResponse komunikatów za pośrednictwem różnych interfejsów. Tego typu komunikaty GetResponse mogą zawierać różne sekcje metadanych relacji w tej samej wersji metadanych. Zmniejsza to wartość numeru wersji metadanych.

Istnieje alternatywne podejście, w którym pojedynczy komunikat GetResponse jest wysyłany w odpowiedzi z wszystkimi adresami dla danej usługi. Wadą tej metody jest to, że informacje prywatne, takie jak topologia pośrednio dostępnych sieci, mogą być ujawniane.

W systemie Windows Vista metadane udostępniane przez interfejs WSDAPI zawierają tylko adresy prawidłowe dla interfejsu, na którym odebrano żądanie metadanych.