Ek WS-Discovery İşlevselliği

Bazı durumlarda, Web Hizmetleri için Cihaz Profili (DPWS) ve ilgili belirtimler, uygulama işlevselliğini açıkça tanımlamaz. Örneğin, WS-Discovery belirtimi çok girişli ortamlarda istemci ve konak davranışını tanımlamaz. WSDAPI uygulandığında, belirtimde tanımlanan işlevselliğin ötesinde bazı bulma işlevleri eklendi.

WSDAPI ayrıca HTTP üzerinden bulma ara sunucusuyla iletişim kurmak için WS-Discovery v1.1 CD1'in seçili bölümlerini de uygular.

Bu konunun amacı, WSDAPI tarafından uygulanan ancak DPWS veya WS-Discovery belirtimlerinde başka şekilde açıklanmamış bulma işlevselliğini açıklamaktır.

IPv6 adresleri ve soap.udp URI biçimi

UDP üzerinden SOAP ve WS-Discovery, değişmez bir IPv6 adresinin soap.udp URI biçiminde nasıl gösterileceğini açıkça açıklamaz. rfc 2396 , "Tekdüzen Kaynak Tanımlayıcıları (URI): Genel Söz Dizimi", değişmez IPv6 adreslerinin soap.udp URI biçiminde desteklenmediğini gösterir.

Kolaylık olması için WSDAPI, soap.udp düzeninde köşeli ayraç içine alınmış IPv6 adreslerini tanır. Örneğin, adres soap.udp://[2001:abcd:0001:0002:0003:0004:0005:0032]:3702 WSDAPI tarafından tanınır. Bu, IPv6 adreslerinin HTTP'de işlenme biçimine benzer.

Hello ve XAddrs

WSDAPI'nın DPWS barındırma nesnesi hiçbir zaman ileti gövdesinde XAddrs WS-Discovery Hello iletisi göndermez. İstemcinin XAddrs'ı alması gerekiyorsa bir Hello iletisi aldıktan sonra istemci her zaman Çözümle iletisi gönderir.

Bu yaklaşımın iki avantajı vardır. İlk olarak, WSDAPI üzerinde oluşturulan bir cihaz, özel ağların IP adreslerini ifşa eden XAddr'ları hiçbir zaman kullanıma sunmaz. İkinci olarak, WSDAPI üzerinde oluşturulan bir cihaz yalnızca istemci tarafından erişilebilen XAddr'ları kullanıma sunar; bu da IPv6 adreslerinin hiçbir zaman bir IPv4 istemcisine gönderilmediği anlamına gelir.

Yoklama veya Çözümle iletisi alındığında yanıt olarak yalnızca tek bir XAddr gönderilir. Gönderilen XAddr, isteğin alındığı yerel adrese karşılık gelir. İstek IPv6 üzerinden alt ağlar arasında alındıysa, WSDAPI yanıtta genel bir IPv6 adresi sağlar.

Tercih edilen adresler

Bir cihaz, Hello, ProbeMatchveya ResolveMatch iletisinde birden çok XAddr sağlayabilir. Bir hizmet, farklı aktarım adreslerine sahip birden çok uç noktada da kullanılabilir. Bu durumlarda WSDAPI, bulduğu ilk kullanılabilir adreste cihazla iletişim kurmaya çalışır. Adres, IPv4'in yüklü olduğu bir makinede IPv4 veya IPv6'nın yüklü olduğu bir makinede IPv6 gibi kullanılabilir bir protokolden geliyorsa kullanılabilir. Ayrıca, adres yerel alt ağda bulunmayan bir cihazdan veya hizmetten geliyorsa, yalnızca IPv4, IPv6 sitesi yerel veya IPv6 bağlantısı yerelse kullanılabilir.

Meta veri değişiminde WSDL

WSDAPI üzerinde oluşturulan cihazlar ve hizmetler, bu bilgileri sağlamak üzere uygulama tarafından genişletilmediği sürece WSDL'lerini meta veri değişiminde sağlamaz. Varsayılan olarak, WSDL sağlama programlama modelinin bir parçası değildir.

APP_MAX_DELAY

DPWS, Yoklama alma ile YoklamaMatchgönderme arasındaki rastgele gecikme aralığı olan APP_MAX_DELAY 5.000 milisaniye olarak tanımlar. Windows Güvenlik Duvarı, UDP için çok noktaya yayın isteği/tek noktaya yayın yanıt modelinin yalnızca 4 saniyelik güvenlik duvarı penceresinde çalışmasını gerektirir. Sonuç olarak, WSDAPI yanıtları APP_MAX_DELAY tarafından açıklanan 5.000 ms penceresi yerine 2.500 ms veya daha kısa sürede iletir.

IANA bağlantı noktası rezervasyonları

WSDAPI, VARSAYıLAN olarak HTTP trafiği için TCP bağlantı noktası 5357 ve HTTPS trafiği için 5358 numaralı TCP bağlantı noktasını kullanır. Bu bağlantı noktaları, HTTP.sysurl rezervasyonu aracılığıyla daha düşük ayrıcalık işlemleri için ayrılmıştır ve ayrıca IANA ile ayrılmıştır.

UDP bağlantı noktası paylaşımı

WSDAPI, bağlantı noktası paylaşımını kullanır. 3702 numaralı bağlantı noktasına gönderilen tek noktaya yayın iletileri tüm WSDAPI tabanlı uygulamalar tarafından düzgün işlenmeyebilir. Bir uygulama yalnızca 3702 numaralı bağlantı noktasına bağlanırsa, WSDAPI tabanlı uygulamaların bu bağlantı noktasını doğru kullanmasını engelleyebilir.

WS-Discovery v1.1 CD1 Ara Sunucusu

WSDAPI, WS-Discovery v1.1 CD1 yönetilen mod protokollerini uygulayan bir bulma ara sunucusunu arar ve onunla iletişim kurar. WS-Discovery v1.1 CD1, ara sunucu ile istemci veya cihaz arasındaki iletişim için http protokolünün açık bir açıklamasını içeren ilk WS-Discovery düzeltmesidir.

WSDAPI, çok noktaya yayın isteklerinde kullanılan eşzamanlı sürüm sayısını sınırlamak için 2005/04 ad alanında bir WS-Discovery Yoklama isteği gönderir, ancak v1.1 CD1 DiscoveryProxy WS-Discovery türünü arar. Bir ara sunucu yanıt verirse, WSDAPI belirtilen ara sunucu uç noktasına WS-Discovery v1.1 CD1'de tanımlandığı şekilde bir HTTP Yoklaması veya Çözümle isteği gönderir.