Versões de esquema EWS no Exchange

Saiba mais sobre o esquema EWS e como projetar seu aplicativo para trabalhar com ele, bem como os recursos disponíveis com cada versão do esquema e como o esquema se relaciona com a versão do serviço do Exchange.

O esquema EWS define as estruturas de dados que podem ser enviadas e retornadas pelo Exchange. Cada nova versão do Exchange que contém uma alteração significativa na funcionalidade EWS conterá um novo esquema. O EWS e o esquema EWS são ao contrário e, em alguns casos, compatíveis com o encaminhamento – os aplicativos projetados em versões anteriores do EWS funcionarão, na maioria dos casos, com versões posteriores do EWS e aplicativos que visam versões posteriores do EWS funcionarão se a mesma funcionalidade foi incluída em uma versão anterior. Este artigo ajudará você a entender a função do esquema EWS, como funciona a versão do esquema, a relação entre a versão do esquema e a versão do serviço e como projetar seu aplicativo para trabalhar com o esquema EWS.

Função do esquema EWS

O esquema EWS faz o seguinte:

  • Define o conjunto de recursos que está disponível para um cliente. Um cliente pode obter a lista das versões de esquema com suporte usando o serviço SOAP Autodiscover. Em seguida, o cliente pode determinar quais recursos ele pode acessar, pois cada versão do esquema representa um conjunto de recursos EWS. Cada novo esquema lançado para EWS contém as entidades de esquema da versão anterior mais as definições de esquema para qualquer nova funcionalidade. Dessa forma, o EWS dá suporte a aplicativos que visam uma versão anterior do EWS.

  • Fornece uma descrição geral do contrato de API. Você pode usar esse contrato para determinar as estruturas de dados que podem ser enviadas e recebidas do Exchange.

  • Fornece um mecanismo de versão para o envio de solicitações. O servidor exchange contém todas as versões de esquema EWS com suporte em seu diretório virtual.

Projetar seu aplicativo com a versão do esquema em mente

Tenha os seguintes pontos em mente ao projetar seu aplicativo para trabalhar com diferentes versões do esquema EWS:

  • Ativar/desativar a funcionalidade com base na versão do esquema. Você deseja mapear a funcionalidade do cliente para a versão do esquema e, em alguns casos, para a versão do serviço. O exemplo a seguir retornará um PropertySet com base na versão do esquema e do serviço.

    private static PropertySet InitPropertySetByVersion(ExchangeService service)
    {
        PropertySet props;
        // The schema version to target to access the NormalizedBody property 
        // is Exchange2013 or later. The server version to target to access the 
        // NormalizedBody property on an email is 15 or later, which 
        // equates to Exchange 2013.
        if (service.RequestedServerVersion >= ExchangeVersion.Exchange2013 &&
            service.ServerInfo.MajorVersion >= 15)
        {
            props = new PropertySet(EmailMessageSchema.NormalizedBody);
        }
        else
        {
            props = new PropertySet(EmailMessageSchema.Body);
        }
        return props;
    }
    
  • Versão de suas solicitações com a versão mais antiga do esquema EWS que dá suporte à funcionalidade que você deseja usar. Isso tornará seu cliente aplicável a um número maior de servidores do Exchange em potencial. Isso é menos importante se você estiver desenvolvendo um aplicativo de linha de negócios para direcionar apenas os servidores da sua organização, mas é muito importante se você estiver criando um aplicativo para um público mais amplo do Exchange.

Recursos por versão de esquema

As versões de esquema disponíveis para um cliente são identificadas no tipo simples ExchangeVersionType localizado no esquema types.xsd. O ExchangeVersionType é implementado pelo elemento RequestServerVersion . O elemento RequestServerVersion é enviado em todas as solicitações EWS para indicar ao servidor qual versão do esquema o cliente destina. Isso, por sua vez, identifica o conjunto de recursos que está disponível para o cliente.

Tabela 1: recursos do EWS por versão de produto e esquema

Versão do produto Versão de esquema associada Recursos
Exchange Online A versão mais recente do esquema. Inclui todos os recursos na versão atual do Exchange, além de novos recursos que são adicionados para clientes online.
Exchange 2013 SP1 Exchange2013_SP1 Inclui todos os recursos no Exchange 2013.

Os seguintes recursos foram introduzidos no Exchange 2013 SP1:
Exchange 2013 Exchange2013 Inclui todos os recursos introduzidos no Exchange 2007 e no Exchange 2010.

Os seguintes recursos foram introduzidos no Exchange 2013:
  • Arquivamento
  • Descoberta eletrônica
  • Personas
  • Políticas de retenção
  • Armazenamento de Contato Unificado
  • Fotos do usuário
Exchange 2010 SP3 Exchange2010_SP2 Inclui todos os recursos introduzidos no Exchange 2010 SP1.

Os seguintes recursos foram introduzidos no Exchange 2010 SP2:
  • Obter expiração de senha
  • Precisão DateTime
  • Identificadores de propriedade atualizados para contatos
  • Novos cenários de representação
Exchange 2010 SP1 Exchange2010_SP1 Inclui todos os recursos introduzidos no Exchange 2010.

Os seguintes recursos foram introduzidos no Exchange 2010 SP1:
  • Criar, recuperar e modificar regras da caixa de entrada
  • Acesso programático à Caixa de Correio de Arquivo
  • Ações de conversas
  • Notificações de travessia de firewall
  • Recursos de administração aprimorados
  • Suporte de versão misturada aprimorado
  • Suporte à proteção contra limitação
  • Controle do acesso do aplicativo ao EWS
  • Suporte à autenticação de certificado do cliente
Exchange 2010 Exchange2010 Inclui todos os recursos introduzidos no Exchange 2007 SP1.

Os seguintes recursos foram introduzidos na versão inicial do Exchange 2010:
  • Lista de distribuição privada completa
  • Objetos de configuração do usuário
  • Itens associados à pasta
  • Controle de mensagens
  • Unificação de Mensagens
  • Descoberta Automática SOAP
  • Suporte a fuso horário aprimorado
  • Informações de disponibilidade de recursos de sala
  • Pesquisa indexada
  • Acesso a lixeiras
  • Informações do MailTips
Exchange 2007 SP1 Exchange2007_SP1 Inclui todos os recursos introduzidos no Exchange 2007.

Os seguintes recursos foram introduzidos no Exchange 2007 SP1:
  • Gerenciamento de delegados
  • Permissões de pastas
  • Pastas públicas
  • Postar itens
  • Conversão de ID
Exchange 2007 Exchange2007 Os seguintes recursos foram introduzidos na versão inicial do Exchange 2007:
  • Acesso completo a itens, pastas e anexos (Criar, Obter, Atualizar, Excluir)
  • Disponibilidade
  • Configurações fora do Office
  • Notificações
  • Sincronização
  • Resolução do nome
  • Expansão da DL (lista de distribuição)
  • Pesquisar

Relação entre o esquema EWS e a versão do serviço

A versão do esquema EWS está relacionada à versão do serviço EWS que o servidor está executando. O padrão de nomenclatura do esquema EWS está relacionado às versões locais do Exchange. Por exemplo, a versão inicial do Exchange 2013 tem uma versão de serviço de 15.00.0516.032 e o nome do esquema Exchange2013. Como o esquema foi atualizado para o Exchange 2013, tanto o Exchange 2013 quanto Exchange Online com uma versão de serviço de 15.00.0516.032 e posteriores têm o mesmo nome de versão para o esquema mais recente. Nas versões anteriores do Exchange, o esquema EWS não foi atualizado com atualizações cumulativas (anteriormente chamadas de rollups). Mas como o Exchange é atualizado com mais frequência para dar suporte a Exchange Online, as atualizações cumulativas agora contêm atualizações de esquema para EWS. Os nomes de arquivo de esquema e o nome da versão do esquema associado são atualizados apenas com pacotes de serviço ou versões principais do Exchange local.

Embora o esquema EWS defina o contrato, em alguns cenários, a versão do serviço é a única maneira de um cliente determinar como ele deve interagir com o serviço. As alterações de comportamento de serviço que não são refletidas no esquema só podem ser determinadas pela versão de serviço retornada em todas as respostas EWS. Por exemplo, quando as pastas públicas foram redesenhadas no Exchange 2013, as operações usadas para mover e copiar pastas públicas foram alteradas. Se você projetou um cliente para copiar pastas públicas no Exchange 2010, precisará atualizá-lo para usar operações diferentes para obter o mesmo resultado no Exchange 2013.

Como o esquema EWS é atualizado

Os servidores exchange que executam versões do Exchange a partir do Exchange 2007 incluem o esquema EWS no diretório virtual que hospeda o serviço EWS. A versão atual do esquema é sempre representada pelos arquivos types.xsd e messages.xsd. A Figura 1 mostra como o esquema messages.xsd é bifurcado quando uma nova versão do esquema é desenvolvida. Antes da nova funcionalidade ser adicionada, uma cópia do esquema messages.xsd original é incluída e renomeada para representar a versão anterior do esquema. O arquivo messages.xsd é atualizado com a descrição do serviço para a nova versão.

Figura 1. Como o esquema EWS é atualizado

Uma ilustração que mostra como o esquema EWS é atualizado. A última versão do esquema é bifurcada e renomeada para representar a versão anterior, e o nome do arquivo mais recente representa a versão atual.

Antes que o esquema EWS seja atualizado para uma nova versão, a versão atual do esquema é bifurcada e renomeada usando a seguinte convenção:

<schemaname>-<majorserverversion><servicepack>.xsd

Em seguida, o nome do arquivo original representa o esquema mais recente. Todos os novos recursos são adicionados ao esquema mais recente, com exceção de atualizações e correções para as versões anteriores do esquema.

Confira também