Condividi tramite


Conformità alle specifiche DPWS

Questo argomento descrive come WSDAPI implementa la funzionalità elettiva nella specifica Device Profile for Web Services (DPWS). Descrive anche la funzionalità DPWS omessa dall'implementazione WSDAPI.

La specifica DPWS offre un modo coerente per messaggi con i dispositivi. Aggiunge inoltre restrizioni e raccomandazioni specifiche che semplificano il processo di supporto dei servizi Web nell'hardware incorporato.

La specifica DPWS descrive le funzionalità elettive usando i termini MAY o SHOULD in una determinata raccomandazione o restrizione di implementazione. La funzionalità omessa può essere una funzionalità descritta come REQUIRED nella specifica DPWS non implementata da WSDAPI oppure potrebbe essere una funzionalità implementata da WSDAPI in un metodo diverso da quello specificato nella specifica DPWS.

Questo argomento segue il layout della sezione DPWS per sezione. Ogni sezione descrive in che modo restrizioni, requisiti e funzionalità elettive specifiche vengono gestite dall'implementazione WSDAPI. Questo argomento è la migliore lettura in combinazione con la specifica DPWS.

Messaggistica DPWS 3.0

Formati URI DPWS 3.1

Restrizioni R0025 e R0027 vincolano gli URI a MAX_URI_SIZE ottetti. WSDAPI applica entrambe queste restrizioni come specificato.

Messaggistica UDP 3.2 DPWS 3.2

La raccomandazione R0029 suggerisce che i pacchetti UDP superiori all'unità di trasferimento massima (MTU) per UDP non devono essere inviati. WSDAPI non implementa questa raccomandazione e consentirà alle implementazioni di inviare e ricevere messaggi di individuazione di dimensioni superiori a MTU.

Messaggistica HTTP DPWS 3.3

R0001 richiede che i servizi supportino il trasferimento in blocchi. WSDAPI accetta dati in blocchi nei messaggi di richiesta e invierà dati in blocchi nei messaggi di richiesta.

R0012 e R0013 descrivono le parti necessarie dell'associazione HTTP SOAP. Per R0012, WSDAPI implementa l'associazione HTTP SOAP, ma non inizierà a leggere la risposta HTTP fino al termine dell'invio della richiesta HTTP da parte di WSDAPI. WSDAPI implementa il modello di scambio di messaggi richiesto in R0013, implementa il nodo SOAP facoltativo che risponde in R0014 e non implementa la funzionalità facoltativa del metodo Web in R0015. WSDAPI supporta anche i requisiti in R0030 e R0017.

Busta SOAP DPWS 3.4

WSDAPI supporta R0034 e applica R0003 e R0026 per impostazione predefinita. In particolare, in base a R0003 e R0026, se WSDAPI riceve una busta SOAP maggiore di MAX_ENVELOPE_SIZE su HTTP viene rifiutata e la connessione viene chiusa.

DPWS 3.5 WS-Addressing

R0004 riflette l'uso consigliato dell'API del dispositivo in WSDAPI ed è supportato dall'API client in WSDAPI. Poiché si tratta di un consiglio, WSDAPI consentirà ai client e ai dispositivi di usare URI diversi dagli urn:uuid URI per gli endpoint dispositivo per garantire la massima compatibilità. Poiché l'API del dispositivo in WSDAPI non mantiene lo stato tra le inizialiizzazioni, spetta agli sviluppatori di applicazioni che usano l'API del dispositivo in WSDAPI per garantire che R0005 e R0006 siano supportati correttamente. L'API client in WSDAPI presuppone che le identità dei dispositivi siano univoche e persistenti e che la funzionalità basata sull'API client in WSDAPI (ad esempio PnP-X) richieda questa operazione per riconoscere correttamente il dispositivo tra i riavvii del dispositivo.

R0007 consiglia di usare le proprietà di riferimento nei riferimenti all'endpoint. WSDAPI riconosce e accetta gli endpoint con proprietà di riferimento e gli sviluppatori possono scegliere di usarli, ma per impostazione predefinita WSDAPI non li popola negli endpoint creati. Analogamente, con R0042, quando WSDAPI crea endpoint di servizio, userà un indirizzo di trasporto HTTP o HTTPS, ma non richiederà che i dispositivi usino indirizzi di trasporto HTTP o HTTPS negli endpoint di servizio. Il comportamento del client quando si tenta di comunicare con un servizio che non usa HTTP o HTTPS non è definito.

In caso di errori, R0031 vincola l'endpoint di risposta e descrive l'errore da inviare se l'errore non è anonimo. WSDAPI forza l'endpoint di risposta a usare il valore corretto durante l'invio di messaggi e genera un errore corretto se WSDAPI riceve un messaggio di richiesta con l'endpoint di risposta non corretto. R0041 offre alle implementazioni l'opzione per eliminare un errore se l'endpoint di risposta non è valido. Invece di eliminare l'errore, WSDAPI invierà di nuovo l'errore nel canale di richiesta, indirizzato all'endpoint anonimo, come "migliore sforzo" per comunicare con il client.

Infine, esistono due restrizioni per le intestazioni SOAP, R0019 e R0040, entrambe conformi a WSDAPI e applicate ai messaggi ricevuti.

Allegati DPWS 3.6

WSDAPI supporta gli allegati ed è conforme a R0022. WSDAPI è conforme anche a R0037. Quando si inviano allegati, WSDAPI imposterà sempre la codifica trasferimento contenuto su "binario" per tutte le parti MIME. Tuttavia, WSDAPI non applica R0036. Il comportamento di WSDAPI durante la ricezione di una parte MIME con codifica di trasferimento del contenuto non impostato su "binary" non è definito.

DPWS definisce anche clausole di ordinamento delle parti MIME. Per R0038, WSDAPI applichererà l'ordinamento delle parti e rifiuterà un messaggio MIME se la busta SOAP non è la prima parte MIME. Per R0039, WSDAPI invierà sempre la busta SOAP come prima parte MIME.

Individuazione DPWS 4.0

R1013 e R1001 differenziano l'individuazione dei dispositivi e l'individuazione dei servizi. WSDAPI è conforme a R1013. L'implementazione dell'hosting è conforme a R1001, ma WSDAPI non applica questa raccomandazione al client.

DPWS fornisce anche indicazioni sui tipi e sulle regole di corrispondenza dell'ambito. WSDAPI supporta tutte le regole di corrispondenza dell'ambito definite in WS-Discovery , ad eccezione di LDAP. WSDAPI fornisce anche un modello estendibile per definire regole di corrispondenza dell'ambito personalizzate, rispettando così R1019. L'API di hosting fornirà sempre il wsdp:Device tipo di individuazione per R1020, ma l'API client non richiede che sia presente. Altre applicazioni basate su WSDAPI, ad esempio PnP-X, hanno un requisito rigido per il tipo da presentare nell'individuazione wsdp:Device .

Per facilitare l'individuazione e l'associazione, WSDAPI supporta R1009 e R1016. Per R1018, WSDAPI ignorerà udp multicast non inviato all'indirizzo anonimo. R1015, R1021 e R1022 definiscono un'associazione HTTP per il messaggio probe, che WSDAPI supporta come descritto.

Descrizione di DPWS 5.0

WSDAPI applica R2044 nel client. Sul lato host, WSDAPI fornirà solo l'elemento wsx:Metadata nel corpo della busta SOAP. R2045 consente ai dispositivi di supportare un subset della funzionalità WS-Transfer . L'API di hosting genererà sempre l'errore wsa:ActionNotSupported .

Caratteristiche di DPWS 5.1

DPWS descrive le caratteristiche di base per il dispositivo. Oltre alle restrizioni descritte in questo argomento, i limiti di lunghezza sono definiti per stringhe e URI specifici. WSDAPI applica i limiti di lunghezza in questa sezione 5.1 di DPWS, prima di inviare il messaggio o dopo l'analisi del contenuto.

DPWS descrive anche le sezioni di metadati necessarie e il ciclo della versione dei metadati. L'implementazione client applica la presenza di metadati ThisModel e ThisDevice. L'implementazione dell'hosting gestisce correttamente anche la versione dei metadati e fornisce sempre queste sezioni, rispettando R2038, R2012, R2001, R2039, R2014 e R2002.

DPWS 5.2 Hosting

Questa sezione descrive la gerarchia dei servizi e dei metadati delle relazioni. WSDAPI non applica l'univocità del ServiceId, come descritto in questa sezione sul client o sul lato dispositivo.

WSDAPI è conforme a R2040 ed è possibile che l'implementazione dell'hosting invii una risposta ai metadati senza alcuna sezione relazione se non sono presenti servizi ospitati. L'implementazione client accetta correttamente la risposta dei metadati.

R2029 consente più sezioni di relazione in una risposta di metadati, che WSDAPI accetterà correttamente. R2030 e R2042 descrivono la gestione della versione dei metadati, implementata correttamente nell'API di hosting.

DPWS 5.3 WSDL

Se un servizio fornisce dati WSDL (Web Services Description Language), le implementazioni client possono ottenere la definizione del servizio e modificare il servizio in tempo reale. Viene usato dai client con associazione tardiva. L'implementazione client WSDAPI accetterà WSDL fornito da un servizio, ma il client non lo convalida e il client non fornisce un modello di programmazione con associazione tardiva. L'implementazione dell'hosting può essere usata per fornire WSDL, ma l'host non è necessario farlo perché i metadati a livello di servizio non vengono gestiti dall'host stesso.

DPWS 5.4 WS-Policy

DPWS descrive le asserzioni di criteri da usare per i dispositivi. Poiché WSDAPI non fornisce e non interpreta WSDL, non può riconoscere e applicare criteri incorporati nei dati WSDL.

Eventi DPWS 6.0

Sottoscrizione di DPWS 6.1

DPWS richiede il supporto per il recapito push. WSDAPI implementa il recapito push sul lato servizio, rispettando così R3009 e R3010 e accettando solo la modalità di recapito push sul lato client. R3017 e R3018 richiedono errori specifici dal servizio se non riconosce gli NotifyTo indirizzi o EndTo . WSDAPI non convalida questi indirizzi in anticipo e non genererà questi errori. Tuttavia, l'implementazione del client riconoscerà correttamente questi errori. Analogamente, R3019 è facoltativo e WSDAPI non implementa questa raccomandazione, ma l'implementazione del client riconoscerà correttamente il SubscriptionEnd messaggio e invierà una notifica all'applicazione di un errore di recapito.

Filtro DPWS 6.1.1

WSDAPI è conforme a R3008 e implementa il Action filtro. In conformità con R3011 e R3012, WSDAPI non genererà gli errori nelle condizioni indicate. WSDAPI implementa anche l'errore descritto R3020 se non riconosce le azioni su cui viene richiesto di filtrare.

Durata e rinnovo di DPWS 6.2

WSDAPI è conforme a R3005, R3006 e R3016. WSDAPI userà xs:duration sempre, ma accetterà xs:dateTime se specificato e pertanto non emetterà l'errore facoltativo in R3013. WSDAPI supporta GetStatus e non genera l'errore wsa:ActionNotSupported per R3015. WSDAPI accettare l'errore wsa:ActionNotSupported se un servizio risponde a una GetStatus richiesta.

Sicurezza DPWS 7.0

DPWS descrive un modello di sicurezza consigliato per i dispositivi. WSDAPI non implementa queste raccomandazioni come descritto e non applica le restrizioni in questa sezione, come descritto.

Appendice DPWS I

DPWS modifica le costanti globali da altre specifiche per soddisfare i dispositivi. WSDAPI usa le costanti di questa sezione ed esegue l'override delle costanti predefinite nell'implementazione WS-Discovery con queste costanti. Le applicazioni che usano WSDAPI per WS-Discovery verranno associate alle costanti definite in DPWS, non alle costanti definite in WS-Discovery.