Compartilhar via


Conformidade de especificação do DPWS

Este tópico descreve como o WSDAPI implementa a funcionalidade eletiva na especificação DPWS ( Perfil de Dispositivos para Serviços Web ). Ele também descreve qual funcionalidade DPWS foi omitida da implementação do WSDAPI.

A especificação DPWS fornece uma maneira consistente de enviar mensagens com dispositivos. Ele também adiciona restrições e recomendações específicas que simplificam o processo de suporte a serviços Web em hardware inserido.

A especificação DPWS descreve a funcionalidade eletiva usando os termos MAY ou SHOULD em uma determinada recomendação ou restrição de implementação. A funcionalidade omitida pode ser a funcionalidade descrita como REQUIRED na especificação DPWS que não foi implementada pelo WSDAPI ou pode ser a funcionalidade que o WSDAPI implementou em um método outro no especificado na especificação DPWS.

Este tópico segue o layout da seção DPWS por seção. Cada seção descreve como restrições, requisitos e funcionalidades eletivas específicos são tratados pela implementação do WSDAPI. Este tópico é melhor lido em conjunto com a especificação DPWS.

Mensagens DPWS 3.0

Formatos de URI do DPWS 3.1

Restrições R0025 e R0027 restringem URIs a octetos MAX_URI_SIZE. O WSDAPI impõe essas duas restrições, conforme especificado.

Mensagens UDP DPWS 3.2

A recomendação R0029 sugere que pacotes UDP maiores que a MTU (unidade de transferência máxima) para UDP não devem ser enviados. O WSDAPI não implementa essa recomendação e permitirá que as implementações enviem e recebam mensagens de descoberta maiores que a MTU.

Mensagens HTTP DPWS 3.3

R0001 requer que os serviços ofereçam suporte à transferência em partes. O WSDAPI aceita dados em partes em mensagens de solicitação e enviará dados em partes em mensagens de solicitação.

R0012 e R0013 descrevem partes necessárias da associação HTTP SOAP. Para R0012, o WSDAPI implementa a associação SOAP HTTP, mas não começará a ler a resposta HTTP até que o WSDAPI termine de enviar a solicitação HTTP. O WSDAPI implementa o padrão de troca de mensagens necessário em R0013, implementa o nó SOAP de resposta opcional em R0014 e não implementa o recurso de método Web opcional no R0015. O WSDAPI também dá suporte aos requisitos em R0030 e R0017.

DPWS 3.4 SOAP Envelope

O WSDAPI dá suporte a R0034 e impõe R0003 e R0026 por padrão. Mais especificamente, de acordo com R0003 e R0026, se o WSDAPI receber um envelope SOAP maior que MAX_ENVELOPE_SIZE por HTTP, ele será rejeitado e a conexão será fechada.

DPWS 3.5 WS-Addressing

R0004 reflete o uso recomendado da API do dispositivo no WSDAPI e tem suporte da API do cliente no WSDAPI. Como essa é uma recomendação, o WSDAPI permitirá que clientes e dispositivos usem URIs diferentes urn:uuid de URIs para seus pontos de extremidade de dispositivo para garantir a compatibilidade máxima. Como a API do dispositivo no WSDAPI não persiste o estado entre as inicializações, cabe aos desenvolvedores de aplicativos usar a API do dispositivo no WSDAPI para garantir que R0005 e R0006 sejam suportados corretamente. A API do cliente no WSDAPI assumirá que as identidades do dispositivo são exclusivas e persistentes, e a funcionalidade baseada na API do cliente no WSDAPI (como PnP-X) exigirá isso para reconhecer corretamente o dispositivo entre reinicializações do dispositivo.

R0007 recomenda o uso de propriedades de referência em referências de ponto de extremidade. O WSDAPI ainda reconhecerá e aceitará pontos de extremidade com propriedades de referência e os desenvolvedores poderão optar por usá-los, mas, por padrão, o WSDAPI não os preencherá nos pontos de extremidade que ele cria. Da mesma forma, com r0042, quando o WSDAPI cria pontos de extremidade de serviço, ele usará um endereço de transporte HTTP ou HTTPS, mas não exigirá que os dispositivos usem endereços de transporte HTTP ou HTTPS em seus pontos de extremidade de serviço. O comportamento do cliente ao tentar se comunicar com um serviço que não usa HTTP ou HTTPS é indefinido.

Em falhas, R0031 restringe o ponto de extremidade de resposta e descreve a falha a ser enviada se a falha não for anônima. O WSDAPI força o ponto de extremidade de resposta a usar o valor correto ao enviar mensagens e falhará corretamente se o WSDAPI receber uma mensagem de solicitação com o ponto de extremidade de resposta incorreto. R0041 dá às implementações a opção de remover uma falha se o ponto de extremidade de resposta for inválido. Em vez de descartar a falha, o WSDAPI enviará a falha novamente no canal de solicitação, endereçada ao ponto de extremidade anônimo, como um "melhor esforço" para se comunicar com o cliente.

Por fim, há duas restrições em cabeçalhos SOAP, R0019 e R0040, ambas com as quais o WSDAPI está em conformidade e impõe as mensagens recebidas.

Anexos do DPWS 3.6

O WSDAPI dá suporte a anexos e está em conformidade com r0022. O WSDAPI também está em conformidade com r0037. Ao enviar anexos, o WSDAPI sempre definirá a Codificação de Transferência de Conteúdo como "binária" para todas as partes MIME. No entanto, o WSDAPI não impõe r0036. O comportamento do WSDAPI ao receber uma parte MIME com uma Codificação de Transferência de Conteúdo não definida como "binária" é indefinido.

O DPWS também define cláusulas de ordenação de parte MIME. Para R0038, o WSDAPI imporá a ordenação de parte e rejeitará uma mensagem MIME se o envelope SOAP não for a primeira parte MIME. Para R0039, o WSDAPI sempre enviará o envelope SOAP como a primeira parte MIME.

Descoberta do DPWS 4.0

R1013 e R1001 diferenciam descoberta de dispositivo e descoberta de serviço. O WSDAPI está em conformidade com o R1013. A implementação de hospedagem está em conformidade com o R1001, mas o WSDAPI não impõe essa recomendação ao cliente.

O DPWS também fornece diretrizes sobre tipos e regras de correspondência de escopo. O WSDAPI dá suporte a todas as regras de correspondência de escopo definidas em WS-Discovery , exceto LDAP. O WSDAPI também fornece um modelo extensível para definir regras de correspondência de escopo personalizadas, cumprindo assim o R1019. A API de hospedagem também sempre fornecerá o wsdp:Device tipo na descoberta por R1020, mas a API do cliente não exige que ela esteja presente. Outros aplicativos criados no WSDAPI, como PnP-X, têm um requisito difícil para que o wsdp:Device tipo esteja presente na descoberta.

Para facilitar a descoberta e a associação, o WSDAPI dá suporte a R1009 e R1016. Por R1018, o WSDAPI ignorará o UDP multicast não enviado para o endereço anônimo. R1015, R1021 e R1022 definem uma associação HTTP para a mensagem Probe, que o WSDAPI dá suporte, conforme descrito.

Descrição do DPWS 5.0

O WSDAPI impõe R2044 ao cliente. No lado da hospedagem, o WSDAPI só fornecerá o wsx:Metadata elemento no corpo do envelope SOAP. O R2045 permite que os dispositivos ofereçam suporte a um subconjunto da funcionalidade WS-Transfer . A API de hospedagem sempre gerará a wsa:ActionNotSupported falha.

Características do DPWS 5.1

O DPWS descreve as características básicas do dispositivo. Além das restrições descritas neste tópico, os limites de comprimento são definidos para cadeias de caracteres e URIs específicos. O WSDAPI impõe os limites de comprimento nesta seção 5.1 do DPWS, antes de enviar a mensagem ou depois de analisar seu conteúdo.

O DPWS também descreve as seções de metadados necessárias e o ciclismo da versão de metadados. A implementação do cliente impõe a presença de metadados ThisModel e ThisDevice. A implementação de hospedagem também gerencia corretamente a versão de metadados e sempre fornece essas seções, em conformidade com R2038, R2012, R2001, R2039, R2014 e R2002.

Hospedagem do DPWS 5.2

Esta seção descreve a hierarquia de serviços e metadados de relação. O WSDAPI não impõe a exclusividade da ServiceId conforme descrito nesta seção no lado do cliente ou do dispositivo.

O WSDAPI está em conformidade com r2040 e é possível que a implementação de hospedagem envie uma resposta de metadados sem nenhuma seção de relação se não houver serviços hospedados. A implementação do cliente aceita corretamente a resposta de metadados.

O R2029 permite várias seções de relação em uma resposta de metadados, que o WSDAPI aceitará corretamente. R2030 e R2042 descrevem o gerenciamento da versão de metadados, que é implementada corretamente na API de hospedagem.

DPWS 5.3 WSDL

Se um serviço fornecer dados WSDL (Linguagem de Descrição dos Serviços Web), as implementações do cliente poderão obter a definição de serviço e manipular o serviço em tempo real. Isso é usado por clientes com associação tardia. A implementação do cliente WSDAPI aceitará o WSDL fornecido de um serviço, mas o cliente não o valida e o cliente não fornece um modelo de programação com limite tardio. A implementação de hospedagem pode ser usada para fornecer WSDL, mas o host não é necessário para fazer isso, pois os metadados de nível de serviço não são gerenciados pelo próprio host.

DPWS 5.4 WS-Policy

O DPWS descreve as declarações de política a serem usadas para dispositivos. Como o WSDAPI não fornece e não interpreta o WSDL, ele não pode reconhecer e impor a política inserida em dados WSDL.

Evento DPWS 6.0

Assinatura do DPWS 6.1

O DPWS requer suporte para entrega por push. O WSDAPI implementa a entrega por push no lado do serviço, cumprindo com R3009 e R3010 e aceitará apenas o modo de entrega por push no lado do cliente. R3017 e R3018 exigem falhas específicas do serviço se ele não reconhecer os NotifyTo endereços ou EndTo . O WSDAPI não valida esses endereços antecipadamente e não gerará essas falhas. No entanto, a implementação do cliente reconhecerá essas falhas corretamente. Da mesma forma, o R3019 é opcional e o WSDAPI não implementa essa recomendação, mas a implementação do cliente reconhecerá corretamente a SubscriptionEnd mensagem e notificará a aplicação de uma falha de entrega.

Filtragem do DPWS 6.1.1

O WSDAPI está em conformidade com R3008 e implementa o Action filtro. Em conformidade com R3011 e R3012, o WSDAPI não gerará as falhas nas condições declaradas. O WSDAPI também implementa a falha descrita R3020 se não reconhecer as ações nas quais é solicitado a filtrar.

Duração e renovação da assinatura do DPWS 6.2

O WSDAPI está em conformidade com R3005, R3006 e R3016. O WSDAPI sempre usará xs:duration , mas aceitará xs:dateTime se for fornecido e, portanto, não emitirá a falha opcional no R3013. O WSDAPI dá GetStatus suporte e não emitirá a wsa:ActionNotSupported falha por R3015. O WSDAPI aceitará a wsa:ActionNotSupported falha se um serviço responder a uma GetStatus solicitação com ela.

Segurança do DPWS 7.0

O DPWS descreve um modelo de segurança recomendado para dispositivos. O WSDAPI não implementa essas recomendações conforme descrito e não impõe as restrições nesta seção, conforme descrito.

Apêndice I do DPWS

O DPWS altera constantes globais de outras especificações para atender aos dispositivos. O WSDAPI usa as constantes desta seção e substitui as constantes padrão na implementação do WS-Discovery com essas constantes. Os aplicativos que usam o WSDAPI para WS-Discovery serão associados às constantes definidas no DPWS, não às constantes definidas no WS-Discovery.