Версии схемы EWS в Exchange

Узнайте о схеме EWS и о том, как спроектировать приложение для работы с ней, а также о функциях, доступных в каждой версии схемы, и о том, как схема связана с версией службы Exchange.

Схема EWS определяет структуры данных, которые могут быть отправлены и возвращены Exchange. Каждая новая версия Exchange, содержащая значительное изменение функциональных возможностей EWS, будет содержать новую схему. EWS и схема EWS имеют обратную и в некоторых случаях прямую совместимость. Приложения, разработанные на основе более ранних версий EWS, будут работать в большинстве случаев с более поздними версиями EWS, а приложения, предназначенные для более поздних версий EWS, будут работать, если те же функции были включены в более раннюю версию. Эта статья поможет вам понять роль схемы EWS, как работает управление версиями схемы, связь между версией схемы и версией службы, а также как спроектировать приложение для работы со схемой EWS.

Роль схемы EWS

Схема EWS выполняет следующие действия:

  • Определяет набор функций, доступный клиенту. Клиент может получить список поддерживаемых версий схемы с помощью службы автообнаружения SOAP. Затем клиент может определить, к каким функциям он может получить доступ, так как каждая версия схемы представляет набор функций EWS. Каждая новая схема, выпущенная для EWS, содержит сущности схемы из предыдущей версии, а также определения схемы для любых новых функций. Таким образом, EWS поддерживает приложения, предназначенные для более ранней версии EWS.

  • Предоставляет общее описание контракта API. Этот контракт можно использовать для определения структур данных, которые можно отправлять и получать из Exchange.

  • Предоставляет механизм управления версиями для отправки запросов. Сервер Exchange server содержит все поддерживаемые версии схемы EWS в своем виртуальном каталоге.

Проектирование приложения с учетом версии схемы

При проектировании приложения для работы с различными версиями схемы EWS учитывайте следующие моменты:

  • Включите или выключите функциональные возможности на основе версии схемы. Вы хотите сопоставить функциональность клиента с версией схемы, а в некоторых случаях — с версией службы. В следующем примере возвращается свойство PropertySet на основе версии схемы и службы.

    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;
    }
    
  • Версия запросов с самой ранней версией схемы EWS, которая поддерживает нужные функции. Это сделает ваш клиент применимым к большему числу потенциальных серверов Exchange. Это менее важно, если вы разрабатываете бизнес-приложение, предназначенное только для серверов вашей организации, но очень важно, если вы создаете приложение для более широкой аудитории Exchange.

Функции по версиям схемы

Версии схемы, доступные клиенту, определяются в простом типе ExchangeVersionType , расположенном в схеме types.xsd. ExchangeVersionType реализуется элементом RequestServerVersion. Элемент RequestServerVersion отправляется во всех запросах EWS, чтобы указать серверу, какую версию схемы предназначен клиент. Это, в свою очередь, определяет набор функций, доступный клиенту.

Таблица 1. Функции EWS по продуктам и версиям схемы

Версия продукта Связанная версия схемы Компоненты
Exchange Online Последняя версия схемы. Включает все функции в текущей версии Exchange в дополнение к новым функциям, добавленным для интернет-клиентов.
Exchange 2013 SP1 Exchange2013_SP1 Включает все функции Exchange 2013.

В Exchange 2013 с пакетом обновления 1 (SP1) появились следующие функции:
Exchange 2013 Exchange2013 Включает все функции, представленные в Exchange 2007 и Exchange 2010.

В Exchange 2013 появились следующие возможности:
  • Архивация
  • Обнаружение электронных данных
  • Personas
  • Политики хранения
  • Единое хранилище контактов
  • Фотографии пользователя
Exchange 2010 с пакетом обновления 2 (SP2) Exchange2010_SP2 Включает все функции, представленные в Exchange 2010 с пакетом обновления 1 (SP1).

В Exchange 2010 с пакетом обновления 2 (SP2) появились следующие функции:
  • Получение срока действия пароля
  • Точность даты и времени
  • Обновленные идентификаторы свойств для контактов
  • Новые сценарии олицетворения
Exchange 2010 SP1 Exchange2010_SP1 Включает все функции, представленные в Exchange 2010.

В Exchange 2010 с пакетом обновления 1 (SP1) появились следующие функции:
  • Создание, извлечение и изменение правил папки "Входящие"
  • Программный доступ к архивным почтовым ящикам
  • Действия бесед
  • Уведомления для обхода брандмауэра
  • Улучшенные функции администрирования
  • Улучшена поддержка смешанных версий
  • Поддержка защиты от регулирования
  • Управление доступом приложений к EWS
  • Поддержка проверки подлинности с помощью сертификата клиента
Exchange 2010 Exchange2010 Включает все функции, представленные в Exchange 2007 с пакетом обновления 1 (SP1).

В первоначальной версии Exchange 2010 появились следующие функции:
  • Полный список частных дистрибутивов
  • Объекты конфигурации пользователя
  • Элементы, связанные с папкой
  • Отслеживание сообщений
  • Единая система обмена сообщениями
  • Автообнаружение SOAP
  • Расширенная поддержка часовых поясов
  • Сведения о доступности ресурсов помещения
  • Индексированные поисковые запросы
  • Доступ к мусорной корзине
  • Сведения о подсказках
Exchange 2007 SP1 Exchange2007_SP1 Включает все функции, представленные в Exchange 2007.

В Exchange 2007 с пакетом обновления 1 (SP1) появились следующие функции:
  • Управление делегатами
  • Разрешения для папок
  • Общедоступные папки
  • Публикация элементов
  • Преобразование идентификаторов
Exchange 2007 Exchange2007 В первоначальной версии Exchange 2007 появились следующие функции:
  • Полный доступ к элементам, папкам и вложениям (создание, получение, обновление, удаление)
  • Доступность
  • Параметры "Нет на рабочем месте"
  • Уведомления
  • Синхронизация
  • Разрешение имен
  • Расширение списка рассылки (DL)
  • Поиск

Связь между схемой EWS и версией службы

Версия схемы EWS связана с версией службы EWS, запущенной на сервере. Шаблон именования для схемы EWS связан с локальными версиями Exchange. Например, первоначальный выпуск Exchange 2013 имеет версию службы 15.00.0516.032 и имя схемы Exchange2013. Так как схема была обновлена для Exchange 2013, и Exchange 2013, и Exchange Online с версией службы 15.00.0516.032 и более поздних версий имеют одно и то же имя для последней схемы. В более ранних версиях Exchange схема EWS не обновлялась накопительными обновлениями (ранее назывались накопительными пакетами). Но так как Exchange обновляется чаще для поддержки Exchange Online, накопительные обновления теперь содержат обновления схемы для EWS. Имена файлов схемы и связанные с ними имена версий схемы обновляются только с помощью пакетов обновления или основных выпусков локальной версии Exchange.

Хотя схема EWS определяет контракт, в некоторых сценариях версия службы является единственным способом для клиента определить, как он должен взаимодействовать со службой. Изменения в поведении службы, которые не отражены в схеме, могут определяться только версией службы, возвращенной во всех ответах EWS. Например, когда общедоступные папки были переработаны в Exchange 2013, операции, используемые для перемещения и копирования общедоступных папок, изменились. Если вы разработали клиент для копирования общедоступных папок в Exchange 2010, вам потребуется обновить его, чтобы использовать различные операции, чтобы получить тот же результат в Exchange 2013.

Обновление схемы EWS

Серверы Exchange под управлением версий Exchange, начиная с Exchange 2007, включают схему EWS в виртуальный каталог, в котором размещается служба EWS. Текущая версия схемы всегда представлена файлами types.xsd и messages.xsd. На рисунке 1 показано, как схема messages.xsd создается вилкой при разработке новой версии схемы. Перед добавлением новых функций копия исходной схемы messages.xsd включается и переименовывается для представления предыдущей версии схемы. Затем файл messages.xsd обновляется с описанием службы для новой версии.

Рис. 1. Обновление схемы EWS

Рисунок, на котором показано, как обновляется схема EWS. Последняя версия схемы раздвоена и переименована, чтобы представлять предыдущую версию, а последнее имя файла представляет текущую версию.

Перед обновлением схемы EWS для новой версии текущая версия схемы создается вилкой и переименовывается с помощью следующего соглашения:

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

Затем исходное имя файла представляет последнюю схему. Все новые функции добавляются в последнюю схему, за исключением обновлений и исправлений в более ранних версиях схемы.

См. также