Para convergir padrões de serviço Web para recursos, eventos e gerenciamento

 

15 de março de 2006

Versão 1.0

Autores

Kevin Cline, Intel
Josh Cohen
Doug Davis, IBM
Donald F Ferguson, IBM
Heather Kreger, IBM
Raymond McCollum
Bryan Murray, HP
Ian Robinson, IBM
Jeffrey Schlimmer, Microsoft
John Shewchuk
Vijay Tewari, Intel
William Vambenepe, HP

Introdução

HP, IBM, Intel e Microsoft planejam desenvolver um conjunto comum de especificações para recursos, eventos e gerenciamento que podem ser amplamente compatíveis em várias plataformas. As partes farão isso com base nas especificações existentes e definindo um conjunto de aprimoramentos que permitem essa convergência. Em muitos cenários, fornecedores e clientes que criam soluções usando serviços Web descobrirão que as especificações existentes dão suporte a seus cenários. Fornecedores e clientes podem usar as novas especificações e funções ao precisar dos recursos comuns.

A funcionalidade comum que abordamos inclui:

  • Recursos: a capacidade de criar, ler, atualizar e excluir informações usando serviços Web.
  • Eventos: a capacidade de conectar serviços Web juntos usando uma arquitetura controlada por eventos com base na publicação e assinatura.
  • Gerenciamento: forneça um modelo de serviço Web para criar soluções de gerenciamento de sistemas e aplicativos, com foco no gerenciamento de recursos.

Além disso, a coleção interoperável comum de especificações foi projetada para que as organizações possam estender facilmente as especificações para abranger cenários avançados adicionais.

Hoje há muitas especificações que fornecem recursos de serviço Web para recursos, eventos e gerenciamento. Alguns exemplos são:

  • WS-Transfer
  • WS-Enumeration
  • WS-Eventing
  • WS-MetadataExchange
  • WS-ResourceFramework
    • WS-Resource
    • WS-ResourceProperties
    • WS-ResourceLifetime
    • WS-ServiceGroup
    • WS-BaseFaults
  • WS-Notification
    • WS-BaseNotification
    • WS-BrokeredNotification
    • WS-Topics
  • WS-Management
  • Gerenciamento Distribuído de Serviços Web
    • Gerenciamento usando serviços Web (Parte 1)
    • Gerenciamento usando serviços Web (parte 2)
    • Gerenciamento de Serviços Web

HP, IBM, Intel e Microsoft forneceram implementações de muitas dessas especificações em kits e produtos para desenvolvedores. Essas implementações estão fornecendo comentários valiosos para mais evolução e refinamento. A experiência do cliente e do usuário também demonstra a necessidade de convergir incrementalmente essas especificações para fornecer uma única definição de funções comuns e principais. Muitas das especificações já são padrões e outras foram enviadas recentemente. Alcançar a convergência simplificará a interoperabilidade, o desenvolvimento de soluções e o processo de padronização de um novo conjunto comum de especificações.

Este artigo fornece uma visão geral da convergência e motivação. Primeiro, ele divide o problema em dois grandes blocos de construção: (a) gerenciamento de informações e (b) eventos e notificação. Em seguida, ele descreve como esses blocos formam uma base composável para o gerenciamento de serviços Web. Em cada uma dessas três seções, este artigo fornece uma breve visão geral técnica das especificações relevantes e sua relação com as especificações existentes. Os detalhes neste artigo representam nosso melhor pensamento atual e podem evoluir antes da publicação das especificações.

Consistente com os esforços anteriores de roteiro, os autores esperam que as especificações sejam publicadas e refinadas nos próximos 18-24 meses. Algumas das especificações identificadas neste roteiro serão publicadas já no 2Q06. As especificações serão refinadas usando o processo de workshop do WS-*, com envio a uma organização de padrões após esse processo quando a qualidade apropriada for garantida.

Este white paper descreve o que os coautores preveem ser a evolução técnica das especificações atuais. Embora a intenção seja que versões futuras de produtos ofereçam suporte a essas especificações, as informações sobre os produtos específicos podem ser obtidas dos respectivos representantes de empresas.

Os leitores devem consultar as especificações reais para obter detalhes técnicos.

Gerenciamento de informações

Visão geral

HP, IBM, Intel e Microsoft estão criando duas novas especificações (WS-Transfer Addendum, WS-ResourceTransfer) e uma nova versão de uma especificação existente (WS-MetadataExchange). Essas especificações se sobressaem e compõem com WS-Transfer e WS-Enumeration, que serão compatíveis com HP, IBM, Intel e Microsoft.

WS-Transfer Addendum (novo) estende WS-Transfer (sep 2004) definindo mensagens opcionais Get', Put', e Create', que revisam as mensagens Get, Put e Create existentes. Não há nenhuma alteração na mensagem Excluir WS-Transfer. As extensões opcionais para Get', Put', e Create' permitem que o elemento do corpo da mensagem especifique um subconjunto do recurso ou transmita diretivas de processamento específicas do recurso. O dialeto do elemento body é específico do recurso e é definido por especificações em camadas em WS-Transfer Addendum. Um dialeto de exemplo óbvio é XPath. Neste exemplo, se a representação do recurso for um documento XML grande, a expressão XPath em um Get' selecionará um subconjunto desse documento. Da mesma forma, um corpo de Put pode especificar um subconjunto do documento a ser atualizado. A mensagem GetResponse tem alterações análogas.

WS-Transfer Addendum estende as respostas Put' e Create' para que elas possam incluir a referência de ponto de extremidade WS-Addressing (EPR) para o recurso atualizado/novo. Assim como as mensagens de solicitação, o corpo das três mensagens de resposta (GetResponse', PutResponse', CreateResponse') fica indefinido para permitir que as especificações de extensão subsequentes definam mecanismos de transferência específicos do recurso, incluindo mecanismos de transferência parcial.

Todas as três operações atualizadas têm novos URIs de ação WS-Addressing. O uso de novos URIs garante a compatibilidade com o WS-Transfer.

WS-Transfer Addendum permite alterações no WS-MetadataExchange que permitem uma melhor integração com a transferência do WS. Portanto, a IBM e a Microsoft estão republicando WS-Metadata Exchange Versão 1.1 (novo). Em essência, os metadados de recurso/serviço são apenas mais um recurso que é recuperado usando Get.

O novo WS-MetadataExchange:

  • Altera a mensagem Obter para, em vez disso, referenciar Obter em WS-Transfer (2004 de set).
  • Define o uso do elemento mex:Metadata em EPRs. Isso fornece uma maneira interoperável de transmitir metadados para um EPR.

Para compatibilidade com versões anteriores, o elemento mex:Metadata é retido, assim como a associação padrão e o namespace XML de "https://schemas.xmlsoap.org/ws/2004/09/mex".

Com base no trabalho acima, HP, IBM, Intel e Microsoft estão desenvolvendo em conjunto uma nova especificação conhecida como WS-ResourceTransfer (WS-RT, new). WS-ResourceTransfer (WS-RT, novo) faz referência a WS-Transfer (sep 2004), WS-Transfer adendo (novo), WS-Enumeration (sep 2004) e WS-MetadataExchange versão 1.1 (novo). WS-ResourceTransfer adiciona alguns dos conceitos mais avançados do WS-ResourceFramework.

O WS-RT (novo) define elementos de corpo para Create', Get', e Put' que dão suporte à criação, recuperação e atualização de elementos parciais de um recurso. Há muitas motivações para dar suporte ao acesso a subconjuntos do estado de um recurso. Alguns exemplos incluem

  • Desempenho aprimorado – o estado de um recurso pode ser muito grande, enquanto o solicitante só precisa de subconjuntos.
  • Permitir atualizações parciais elimina efeitos colaterais desnecessários devido à atualização de documentos inteiros. Por exemplo, atualizar uma entrada inteira do Diretório poderia redefinir um temporizador de tempo de vida de senha, enquanto simplesmente atualizar o endereço de email não seria.

O WS-RT (novo) predefini dois dialetos de elemento corporal: XPath e identificação de elementos filho por QName. Essas duas abordagens são equivalentes a funções que WS-ResourceProperties definidas. Definir esses dialetos usa o elemento body em WS-TransferAddendum concreto. Os dialetos concretos também contêm suporte para Get', Put' e Create' passando várias referências de subconjunto para o recurso. Novamente, os vários Put' e Get' melhoram o desempenho evitando obter/colocar o documento inteiro e evitando várias chamadas de rede para obter/colocar subconjuntos.

Get' retorna os vários subconjuntos e Create' e Put' passam os vários valores para inicializar e atualizar, respectivamente. Novamente, essas funções são equivalentes a recursos que WS-ResourceProperties definidos.

Além disso, o WS-RT (novo) define

  • Um tempo de vida de recurso opcional. O tempo de vida especifica quando o recurso é excluído automaticamente. Isso dá suporte a alguns modelos para recursos, por exemplo, assinaturas para eventos.
  • Um formato de metadados de tempo de vida e um dialeto WS-MetadataExchange associado, que permite a inclusão de modelos de tempo de vida com suporte nos metadados de um recurso.
  • Semântica para processar metadados de tempo de vida quando incluídos em uma solicitação Criar.
  • Como um EPR de recurso pode incluir o elemento mex:Metadata e, dentro disso, um EPR para metadados de recurso. Isso permite que os metadados sejam recuperados e/ou atualizados como qualquer outro elemento dos dados de um recurso, incluindo suporte para acesso parcial.

Relação com especificações existentes

Figura 1. Relação com especificações existentes

A Figura 1 fornece uma visão geral da relação entre as novas especificações. (Os blocos sombreados representam especificações acordadas conjuntamente.)

Não há alterações no WS-Transfer e na Enumeração WS. WS-Transfer Addendum estende WS-Transfer e requer compatibilidade com versões anteriores. WS-ResourceTransfer camadas e composes com WS-Transfer Addendum, definindo sintaxe concreta e semântica para expressões genéricas nas especificações base. WS-ResourceTransfer fornece mapeamentos para muitos dos recursos do WS-ResourceFramework. Isso inclui suporte para acessar e atualizar elementos parciais de um recurso, integrando metadados a um modelo de estado de recursos e um modelo de tempo de vida para recursos. Outras funções de WS-ResourceFramework serão baseadas em especificações identificadas abaixo e em outras especificações eventuais.

HP, IBM, Intel e Microsoft pretendem dar suporte a WS-Transfer, WS-Enumeration, WS-TransferAddendum, WS-MetadataExchange e especificações de WS-ResourceTransfer em produtos futuros.

A IBM e outras pessoas continuarão a dar suporte ao WS-ResourceFramework. A IBM e os parceiros trabalharão em corpos padrões para fatorar novamente WS-ResourceFramework para delinear claramente extensões além do WS-ResourceTransfer. Os programadores poderão usar essas extensões se precisarem dessas funções.

A Microsoft e outras pessoas continuarão a dar suporte a WS-Transfer, WS-Enumeration.

Os programadores podem começar com WS-Transfer, WS-Transfer Addendum, WS-Enumeration, WS-MetadataExchange. A Microsoft e os parceiros que dão suporte a essas especificações continuarão a fornecer esse suporte. Os programadores podem usar implementações e versões existentes do WS-ResourceFramework. A IBM e os parceiros que dão suporte a essa especificação garantirão a interoperabilidade com as novas especificações.

Evento e notificação

Visão geral

HP, IBM, Intel e Microsoft estão definindo uma especificação que integra funções de WS-Notification ao WS-Eventing. A nova especificação, WS-EventNotification, camadas sobre e compõe com WS-Eventing. WS-EventNotification apresenta cinco recursos compatíveis com WS-Notification. Eles são:

  1. Política de assinatura – WS-Eventing e WS-Notification introduzem o conceito de assinatura de recursos/serviços para eventos. Diferentes serviços/recursos podem ter abordagens diferentes para implementar assinaturas e notificações. Os assinantes podem querer definir requisitos ou diretivas diferentes em assinaturas. WS-EventNotification define políticas concretas que permitem que um recurso/serviço descreva suas abordagens para assinaturas e gerenciamento de assinaturas e permite que um assinante especifique diretivas para a origem do evento. Isso permite extensibilidade para WS-EventNotification e descrição de funcionalidade que outras especificações podem usar.
  2. Idiomas de filtro mais avançados – WS-Eventing introduziu uma linguagem de filtragem simples. O idioma permite que um assinante especifique um filtro que descreva quais eventos o assinante deseja receber. WS-EventNotification introduz uma linguagem de filtro mais rica, que permite funções que WS-Notification dá suporte.
  3. Notificação encapsulada – WS-Eventing descreve eventos como operações/mensagens de saída em um portType WSDL. As mensagens de saída correspondem a mensagens/operações de entrada no coletor de eventos. Alguns cenários, especialmente aqueles que se baseiam em sistemas de publicação/assinatura existentes, exigem uma mensagem de notificação explícita que contém os dados do evento. Esta é uma notificação "encapsulada". A mensagem/operação de saída do evento está contida em uma operação/mensagem de notificação externa. A notificação encapsulada também fornece uma interface genérica para receber notificações. Isso permite definir assinantes que podem receber eventos de qualquer notificador. Não há necessidade de uma operação que corresponda à operação de saída do emissor do evento.
  4. Recursos de assinatura – WS-EventNotification, como WS-Notification, trata o estado de uma assinatura como um recurso no WS-ResourceTransfer. Uma assinatura pode ter um tempo de vida e o assinante pode usar Get', Put' e Delete' para ler ou atualizar o estado da assinatura, por exemplo, para alterar um tempo de vida de filtro ou expiração. Isso integra melhor os conceitos definidos em WS-Eventing com conceitos semelhantes no WS-ResourceTransfer e no WS-ResourceFramework.
  5. Pausar assinaturas – O WS-EventNotification, como o WS-Notification, introduz a noção de "pausar" uma assinatura. Isso permite a interrupção temporária do fluxo de Notificações para um assinante específico. As propriedades exatas do QoS, por exemplo, se as novas notificações forem armazenadas em cache ou simplesmente ignoradas, serão controladas pelas Políticas de Assinatura.

Relação com especificações existentes

Figura 2. Relação com especificações existentes

A Figura 2 fornece uma visão geral da relação de especificações de eventing e notificação. WS-EventNotification é um superconjunto de WS-Eventing e dá suporte à compatibilidade com versões anteriores. A nova especificação (WS-EventNotification) compõe com WS-ResourceTransfer para dar suporte a um modelo de estado/recurso para gerenciar assinaturas. A funcionalidade existente de WS-Notification não definida explicitamente no WS-EventNotification ainda pode ser substituída por seu modelo de mensagem e funcionalidade como uma extensão.

Microsoft, IBM e outros continuarão a dar suporte ao WS-Eventing,

HP, IBM, Intel e Microsoft pretendem dar suporte ao novo WS-ResourceTransfer e WS-EventNotification especificação em produtos futuros.

A IBM e outras pessoas continuarão a dar suporte ao WS-Notification e esperam trabalhar em padrões para integrar melhor as especificações de WS-Notification com WS-ResourceTransfer e WS-EventNotification. Os programadores podem usar as funções mais avançadas da estrutura WS-Notification quando necessário. A IBM e os parceiros garantirão que as implementações que usam WS-Notification funcionem em ambientes com WS-EventNotification e WS-ResourceTransfer.

Gerenciamento de Serviços Web

Visão geral

Por fim, com base no trabalho conjunto na área de distribuição de informações e notificação de eventos, HP, IBM, Intel e Microsoft estão liderando o desenvolvimento de uma especificação de gerenciamento de serviços Web comuns. Essa nova especificação compõe WS-ResourceTransfer (novo) e WS-EventNotification (novo). Muitas das diferenças entre WS-Management e o Gerenciamento Distribuído de Serviços Web se devem diretamente às diferenças entre WS-Transfer e WS-ResourceFramework e entre WS-Notification e WS-Eventing. A reconciliação dessas especificações de camada inferior permite a convergência das especificações de gerenciamento, que está em andamento.

A Figura 3 fornece uma visão geral das novas especificações e sua relação com as especificações existentes. HP, IBM, Intel e Microsoft estão desenvolvendo uma nova especificação que fornece uma única definição de funções de gerenciamento principais.

Relação com especificações existentes

Figura 3. Relação com especificações existentes (proposta)

A reconciliação das especificações de gerenciamento de recursos e evento/notificação permite a reconciliação de muitas das funções das especificações de gerenciamento. Alguns exemplos incluem:

  • Manipulação do estado dos recursos gerenciados, incluindo subconjuntos.
  • Notificação de eventos de gerenciamento e alteração de estado do recurso.

O novo conjunto de especificações de gerenciamento deve incluir suporte para os seguintes recursos para metadados, incluindo informações de tipo de recurso:

  • Inicializando o processo de descoberta
  • Descoberta dos níveis de conformidade e funcionalidades dos serviços e implementações
  • Descoberta e enumeração de tipos de recursos e os metadados associados
  • Acesso de leitura/gravação ao espaço de tipo e metadados associados
  • Navegação de relações por meio do espaço de tipo e metadados
  • Acomodar um tipo somente leitura e um espaço de metadados que podem ser hospedados fora do serviço (em um site) e adaptados ao serviço real em runtime
  • Inicializando a descoberta e a enumeração de instâncias e fontes de eventos

Além dos recursos fornecidos em WS-Transfer fornecendo a capacidade de criar e excluir recursos e WS-Resource Transfer fornecendo acesso de leitura/gravação a instâncias de recursos, as especificações de gerenciamento fornecerão suporte para vários modelos de dados padronizados que definirão:

  • Noções básicas e relações de decodificação entre instâncias
  • Um mecanismo comum para distinguir instâncias de recursos
  • Um formato de conteúdo comum básico para eventos para fins de interoperação, sem restringir o uso de formatos específicos da plataforma

A interoperabilidade entre sistemas heterogêneos exigirá o uso de um ou mais dos modelos de eventos ou dados padronizados. Alguns desses formatos podem ser definidos pelo esforço conjunto conforme necessário.

Extensões para essas especificações podem ser desenvolvidas e continuar a existir para as famílias de especificações do WS-Management e do WSDM. No entanto, a unificação resultará em um grande núcleo comum que pode dar suporte ao monitoramento, ao gerenciamento de estado e à configuração de recursos.

O trabalho existente nas especificações atuais continuará até a conclusão planejada. Esse roteiro fornece uma visão para a próxima geração das especificações e padrões que estão em processo. Um caminho de migração será definido para as especificações atuais. Com base em suas soluções existentes com base nas especificações atuais, HP, IBM, Intel e Microsoft desenvolverão suas soluções para incorporar essas especificações à medida que avançam.

HP, IBM, Intel e Microsoft pretendem implementar a nova especificação de gerenciamento comum em produtos futuros.

A IBM e os parceiros continuarão a dar suporte ao WSDM. A IBM e os parceiros que atualmente implementam o WSDM também garantirão suporte para implementações existentes com base no WSDM.

A Microsoft e os parceiros continuarão a dar suporte ao WS-Management. A Microsoft e os parceiros que atualmente implementam WS-Management também garantirão suporte para implementações existentes com base no WS-Management.