Sdílet prostřednictvím


Dodržování předpisů specifikace DPWS

Toto téma popisuje, jak WSDAPI implementuje volitelné funkce ve specifikaci profilu zařízení pro webové služby (DPWS). Popisuje také, které funkce DPWS byly vynechány z implementace WSDAPI.

Specifikace DPWS poskytuje konzistentní způsob zasílání zpráv se zařízeními. Přidává také specifická omezení a doporučení, která zjednodušují proces podpory webových služeb na vloženém hardwaru.

Specifikace DPWS popisuje volitelné funkce pomocí termínů MAY nebo SHOULD v daném doporučení nebo omezení implementace. Vynechané funkce mohou být funkce popsané jako POVINNÉ ve specifikaci DPWS, která nebyla implementována wsDAPI, nebo to může být funkce, které WSDAPI implementují v metodě jiné ve specifikaci DPWS uvedené ve specifikaci DPWS.

Toto téma se řídí rozložením oddílu DPWS podle oddílu. Každá část popisuje, jak implementace WSDAPI zpracovává konkrétní omezení, požadavky a volitelné funkce. Toto téma je nejlepší číst společně se specifikací DPWS.

Zasílání zpráv DPWS 3.0

Formáty URI DPWS 3.1

Omezení R0025 a R0027 omezení URI pro MAX_URI_SIZE oktety. WSDAPI vynucuje obě tato omezení, jak je uvedeno.

Zasílání zpráv UDP DPWS 3.2

Doporučení R0029 naznačuje, že pakety UDP větší než maximální přenosová jednotka (MTU) pro UDP by se neměly odesílat. WSDAPI toto doporučení neimplementuje a umožní implementaci odesílat a přijímat zprávy zjišťování, které jsou větší než MTU.

Zasílání zpráv HTTP DPWS 3.3

R0001 vyžaduje, aby služby podporovaly blokovaný přenos. WSDAPI přijímá blokovaná data v požadovaných zprávách a bude posílat blokovaná data v požadovaných zprávách.

R0012 a R0013 popisují požadované části vazby HTTP protokolu SOAP. Pro R0012 wsDAPI implementuje vazbu HTTP PROTOKOLU SOAP, ale nezačne číst odpověď HTTP, dokud WSDAPI nedokončí odeslání požadavku HTTP. WSDAPI implementuje požadovaný vzor výměny zpráv v R0013, implementuje volitelný odpovídající uzel SOAP v R0014 a neimplementuje volitelnou funkci webové metody v R0015. WSDAPI také podporuje požadavky v R0030 a R0017.

Obálka SOAP PRO DPWS 3.4

WSDAPI podporuje R0034 a ve výchozím nastavení vynucuje R0003 a R0026. Konkrétněji, v souladu s R0003 a R0026, pokud WSDAPI obdrží obálku SOAP, která je větší než MAX_ENVELOPE_SIZE přes HTTP je odmítnuta a připojení je uzavřeno.

DPWS 3.5 WS-Addressing

R0004 odráží doporučené použití rozhraní API zařízení ve WSDAPI a je podporováno klientským rozhraním API ve WSDAPI. Vzhledem k tomu, že se jedná o doporučení, WSDAPI umožní klientům a zařízením používat jiné identifikátory URI než urn:uuid identifikátory URI pro koncové body zařízení, aby se zajistila maximální kompatibilita. Vzhledem k tomu, že rozhraní API zařízení ve WSDAPI neuchovává stav mezi inicializací, je na vývojářích aplikací používajících rozhraní API zařízení ve WSDAPI, aby se zajistilo, že jsou správně podporované R0005 a R0006. Klientské rozhraní API ve WSDAPI předpokládá, že identity zařízení jsou jedinečné a trvalé, a funkce, které jsou založeny na klientském rozhraní API ve WSDAPI (například PnP-X), to bude vyžadovat, aby bylo možné správně rozpoznat zařízení při restartování zařízení.

R0007 doporučuje použití referenčních vlastností v odkazech na koncové body. WSDAPI bude dál rozpoznávat a přijímat koncové body s referenčními vlastnostmi a vývojáři se můžou rozhodnout je používat, ale ve výchozím nastavení je WSDAPI nenaplní v koncových bodech, které vytvoří. Podobně s R0042, když WSDAPI vytvoří koncové body služby, bude používat přenosovou adresu HTTP nebo HTTPS, ale nebude vyžadovat, aby zařízení ve svých koncových bodech služby používala přenosové adresy HTTP nebo HTTPS. Chování klienta při pokusu o komunikaci se službou, která nepoužívá protokol HTTP nebo HTTPS, není definováno.

V případě chyb R0031 omezuje koncový bod odpovědi a popisuje chybu, která se má odeslat, pokud chyba není anonymní. WSDAPI vynutí, aby koncový bod odpovědi při odesílání zpráv použil správnou hodnotu a správně selže, pokud WSDAPI obdrží zprávu požadavku s nesprávným koncovým bodem odpovědi. R0041 dává implementaci možnost vypustit chybu, pokud koncový bod odpovědi je neplatný. Místo vyřazení chyby WSDAPI odešle chybu zpět na kanál požadavku adresovanou anonymnímu koncovému bodu jako "nejlepší úsilí" pro komunikaci s klientem.

Kromě toho existují dvě omezení hlaviček PROTOKOLU SOAP, R0019 a R0040, z nichž obě wsDAPI vyhovují a vynucují u přijatých zpráv.

Přílohy DPWS 3.6

WSDAPI podporuje přílohy a vyhovuje R0022. WSDAPI také vyhovuje R0037. Při odesílání příloh wsDAPI vždy nastaví kódování Content Transfer na "binární" pro všechny části MIME. WsDAPI však nevynucuje R0036. Chování WSDAPI při příjmu části MIME s kódováním Content Transfer není nastaveno na "binární" není definováno.

DPWS také definuje klauzule řazení částí MIME. V případě R0038 vynucuje WSDAPI řazení částí a odmítne zprávu MIME, pokud obálka SOAP není první částí MIME. V případě R0039 bude WSDAPI vždy odesílat obálku SOAP jako první část MIME.

Zjišťování DPWS 4.0

R1013 a R1001 rozlišují zjišťování zařízení a zjišťování služeb. WSDAPI odpovídá R1013. Implementace hostování je v souladu s R1001, ale WSDAPI toto doporučení nevynucuje na klientovi.

DPWS také poskytuje pokyny k typům a pravidlu párování oborů. WSDAPI podporuje všechna pravidla porovnávání oborů definovaná v WS-Discovery s výjimkou LDAP. WSDAPI také poskytuje rozšiřitelný model pro definování vlastních pravidel párování oborů, a proto je v souladu s R1019. Rozhraní API pro hostování také vždy poskytne typ wsdp:Device zjišťování na R1020, ale klientské rozhraní API ho nevyžaduje. Jiné aplikace založené na WSDAPI, jako je například PnP-X, mají pevný požadavek na typ wsdp:Device, který se nachází ve zjišťování.

Kvůli usnadnění zjišťování a vazby podporuje WSDAPI R1009 a R1016. Pro R1018 bude WSDAPI ignorovat vícesměrové vysílání UDP neodesílané na anonymní adresu. R1015, R1021 a R1022 definují vazbu HTTP pro zprávu sondy, kterou WSDAPI podporuje, jak je popsáno.

Popis DPWS 5.0

WSDAPI vynucuje v klientovi R2044. WsDAPI na straně hostování poskytne pouze prvek wsx:Metadata v těle obálky SOAP. R2045 umožňuje zařízením podporovat podmnožinu funkcí WS-Transfer. Rozhraní API pro hostování vždy vygeneruje chybu wsa:ActionNotSupported.

Vlastnosti DPWS 5.1

DPWS popisuje základní charakteristiky zařízení. Kromě omezení popsaných v tomto tématu jsou limity délky definované pro konkrétní řetězce a identifikátory URI. WSDAPI vynucuje omezení délky v této části DPWS 5.1, a to buď před odesláním zprávy, nebo po analýze jejího obsahu.

DPWS také popisuje požadované části metadat a cyklistiku verze metadat. Implementace klienta vynucuje přítomnost metadat ThisModel a ThisDevice. Implementace hostování také správně spravuje verzi metadat a vždy poskytuje tyto části, které vyhovují R2038, R2012, R2001, R2039, R2014 a R2002.

Hostování DPWS 5.2

Tato část popisuje hierarchii služeb a metadat vztahů. WSDAPI nevynucuje jedinečnost Id služby, jak je popsáno v této části na straně klienta nebo zařízení.

WSDAPI dodržuje R2040 a je možné, že implementace hostování odešle odpověď metadat bez oddílu relace, pokud nejsou hostované služby. Implementace klienta správně přijímá odpověď metadat.

R2029 umožňuje v odpovědi metadat více oddílů relací, které WSDAPI správně přijme. R2030 a R2042 popisují správu verze metadat, která je správně implementovaná v hostitelském rozhraní API.

DPWS 5.3 WSDL

Pokud služba poskytuje data jazyka WSDL (Web Services Description Language), mohou implementace klienta získat definici služby a manipulovat se službou za běhu. Používá se u klientů s pozdní vazbou. Implementace klienta WSDAPI přijme WSDL poskytovanou ze služby, ale klient ho neověří a klient neposkytuje opožděný programovací model. Implementaci hostování lze použít k poskytování WSDL, ale hostitel není nutný k tomu, protože metadata na úrovni služby nejsou spravována samotným hostitelem.

DPWS 5.4 WS-Policy

DPWS popisuje kontrolní výrazy zásad, které se mají použít pro zařízení. Vzhledem k tomu, že WSDAPI neposkytuje a neinterpretuje WSDL, nemůže rozpoznat a vynutit zásady vložené do dat WSDL.

DPWS 6.0 Eventing

DPWS 6.1 Subscription

DPWS vyžaduje podporu pro doručování nabízených oznámení. WSDAPI implementuje doručování nabízených oznámení na straně služby, a proto je v souladu s R3009 a R3010 a bude přijímat pouze režim doručování nabízených oznámení na straně klienta. R3017 a R3018 vyžadují konkrétní chyby ze služby, pokud nerozpozná NotifyTo nebo EndTo adresy. WSDAPI neověřuje tyto adresy předem a nevygeneruje tyto chyby. Implementace klienta ale tyto chyby rozpozná správně. Podobně je R3019 nepovinný a WSDAPI toto doporučení neimplementuje, ale implementace klienta správně rozpozná SubscriptionEnd zprávu a oznámí aplikaci selhání doručení.

Filtrování DPWS 6.1.1

WSDAPI splňuje R3008 a implementuje filtr Action. V souladu s R3011 a R3012 wsDAPI nevygeneruje chyby ve stavových podmínkách. WSDAPI také implementuje chybu popsanou V3020, pokud nerozpozná akce, na kterých se zobrazí výzva k filtrování.

Doba trvání a prodloužení předplatného DPWS 6.2

WSDAPI splňuje požadavky R3005, R3006 a R3016. WSDAPI bude vždy používat xs:duration, ale v případě poskytnutí přijme xs:dateTime, a proto nebude vydávat volitelnou chybu v R3013. WSDAPI podporuje GetStatus a nebude vydávat chybu wsa:ActionNotSupported na R3015. WSDAPI přijme chybu wsa:ActionNotSupported, pokud služba odpoví na požadavek GetStatus s ním.

Zabezpečení DPWS 7.0

DPWS popisuje doporučený model zabezpečení pro zařízení. WSDAPI neimplementuje tato doporučení, jak je popsáno, a nevynucuje omezení v této části, jak je popsáno.

Příloha I služby DPWS

DPWS mění globální konstanty z jiných specifikací tak, aby vyhovovaly zařízením. WSDAPI používá konstanty z této části a přepíše výchozí konstanty v WS-Discovery implementaci s těmito konstantami. Aplikace používající WSDAPI pro WS-Discovery budou vázány na konstanty definované v DPWS, nikoli konstanty definované v WS-Discovery.