Приложения EWS и архитектура Exchange
Узнайте, как EWS работает в архитектуре Exchange, и узнайте, какие протоколы используются EWS.
Веб-службы Exchange (EWS) — это кроссплатформенный API, который позволяет приложениям получать доступ к таким элементам почтовых ящиков, как сообщения электронной почты, собрания и контакты из Exchange Online, Exchange Online в рамках Office 365 или локальных версий Exchange, начиная с Exchange Server 2007 года. Приложения EWS могут получать доступ к элементам почтовых ящиков локально или удаленно, отправляя запрос в XML-сообщении на основе SOAP. Сообщение SOAP внедряется в HTTP-сообщение при отправке между приложением и сервером. Это означает, что до тех пор, пока ваше приложение может отправлять XML-код по протоколу HTTP, оно может использовать EWS для доступа к Exchange.
Общие сведения об архитектуре Exchange
На следующих схемах показаны методы проверки подлинности и пути связи, используемые приложениями EWS при взаимодействии с Exchange 2013 и Exchange Online. С точки зрения приложения EWS пути связи идентичны, а методы проверки подлинности немного различаются. разница main заключается в видимости серверной части Exchange.
Рис. 1. Приложение EWS и локальная архитектура Exchange
На рисунке 2 показаны те же пути связи, что и на рис. 1, которые используются приложениями EWS при взаимодействии с Exchange Online.
Рис. 2. Приложение EWS и архитектура Exchange Online
Ниже приведены компоненты, показанные на схемах.
Приложение EWS — это может быть клиент, портал или приложение службы, которое можно установить на клиенте или на локальном сервере клиентского доступа Exchange. Если вы используете управляемый API EWS для разработки приложения EWS, сборки управляемого API EWS должны быть установлены на клиенте и распространяться приложением.
XML-сообщение SOAP — XML-сообщение в конверте SOAP, встроенное в сообщение HTTP/S, соответствующее файлу Services.wsdl на сервере клиентского доступа. Протокол HTTPS рекомендуется использовать для локальной службы Exchange и требуется для Exchange Online.
Методы проверки подлинности. Сообщения EWS включают сведения о базовой проверке подлинности, NTLM (встроенная проверка подлинности Windows) или сведения о проверке подлинности OAuth в составе полезных данных HTTP.
Load Balancer — подсистема балансировки нагрузки распределяет сообщение на сервер клиентского доступа в массиве серверов клиентского доступа. Этот компонент отображается только в локальной архитектуре Exchange.
Массив серверов клиентского доступа. Серверы клиентского доступа организованы в группу с балансировкой нагрузки, которая называется массивом серверов клиентского доступа. Отдельные серверы клиентского доступа обеспечивают проверку подлинности, ограниченное перенаправление и прокси-службы. Сами серверы клиентского доступа не выполняют никакой отрисовки данных, и данные не помещают в очередь или не хранятся на сервере клиентского доступа — это тонкий и без отслеживания состояния; он просто проверяет подлинность запроса, выполняет поиск автообнаружения, а затем отправляет запрос прокси на сервер почтовых ящиков. Сервер клиентского доступа поддерживает связь 1:1 с сервером почтовых ящиков, на котором размещаются данные пользователя. Протокол HTTP (защищенный с помощью SSL с помощью самозаверяющего сертификата) используется между сервером клиентского доступа и сервером почтовых ящиков. Этот компонент отображается только в локальной архитектуре Exchange.
Служба автообнаружения— служба автообнаружения выполняет обнаружение службы, обращаюсь к доменные службы Active Directory (AD DS) для получения версии почтового ящика и расположения сервера почтовых ящиков, на котором размещена активная копия данных пользователя.
Служба EWS — служба EWS описывается тремя файлами: Services.wsdl, Messages.xsd и Types.xsd, а также сборками управляемого API EWS. Services.wsdl описывает контракт между клиентом и сервером, Messages.xsd — запросы и ответные сообщения SOAP, а Types.xsd — элементы, используемые в сообщениях SOAP. Messages.xsd и Types.xsd всегда содержат последние версии схемы, хотя существуют более ранние версии схемы. Обратите внимание, что службы Services.wsdl, Messages.xsd и Types.xsd становятся доступными на сервере клиентского доступа, но на самом деле не используются для проверки схемы— они предоставляются только для справки. Сборки управляемого API EWS предоставляются для клиентских приложений EWS на стороне сервера и развертываются на всех Exchange Server ролях, а не только на серверах клиентского доступа. Этот компонент отображается только в локальной архитектуре Exchange.
Доступность компонентов зависит от версии схемы EWS, целевой для вашего приложения. Так как схемы EWS поддерживают обратную и прямую совместимость, при создании приложения, ориентированного на более раннюю версию схемы, например Exchange 2007 с пакетом обновления 1 (SP1), приложение также будет работать с более поздней версией схемы, например службой Exchange 2010 с пакетом обновления 2 (SP2), а также с Exchange Online. Так как функции и их обновления зависят от схемы, рекомендуем использовать наиболее раннюю базу общего кода, которая относится к тем возможностям EWS, которые нужно реализовать в клиентском приложении. Многие приложения могут работать с версией Exchange2007_SP1, потому что схема Exchange 2007 с пакетом обновления 1 содержит почти все основные возможности Exchange для работы с элементами и папками в хранилище Exchange. Дополнительные сведения см. в разделе Функции клиента EWS.
Группа доступности баз данных (DAG) — серверы почтовых ящиков организованы в высокодоступную группу daG, которую можно развернуть в одном или нескольких центрах обработки данных. Сервер почтовых ящиков содержит базу данных почтовых ящиков и обрабатывает все действия для активных почтовых ящиков на этом сервере. Все компоненты, которые обрабатывают, отрисовывают и хранят данные, находятся на сервере почтовых ящиков. Клиенты не подключаются напрямую к серверу почтовых ящиков; все подключения обрабатываются сервером клиентского доступа. Этот компонент отображается только в локальной архитектуре Exchange.
Exchange Online и Exchange Online в рамках Office 365 — размещенное решение для обмена сообщениями, которое предоставляет функции Exchange в виде облачной службы.
Когда приложение EWS запрашивает сведения из хранилища Exchange, создается сообщение запроса XML, которое соответствует стандарту SOAP и отправляется на сервер Exchange Server. Когда сервер Exchange получает запрос, он проверяет учетные данные, предоставленные клиентом, и автоматически анализирует XML-код для запрошенных данных. Затем сервер создает ответ SOAP, содержащий XML-данные, представляющие запрошенные строго типизированные объекты и их свойства. XML-данные отправляются обратно в приложение в HTTP-ответе. Затем приложение десериализует XML-код и использует данные для преобразования строго типизированных объектов.
Протоколы и стандарты, которые должны поддерживать приложения EWS
Для взаимодействия с сервером Exchange Server приложения EWS должны поддерживать следующие протоколы и стандарты.
Таблица 1. Протоколы
Protocol (Протокол) | Как он используется |
---|---|
HTTP/S |
Позволяет приложениям EWS получать доступ к данным базы данных Exchange по сети, независимо от того, находится ли клиент в Интернете или интрасети. |
SOAP 1.0 |
Forms конверт вокруг полезных данных для обмена сообщениями. EWS реализует протокол SOAP, используя различные части конверта SOAP для обеспечения различных функциональных возможностей. Заголовок SOAP используется для олицетворения и предоставления данных управления версиями. В тексте SOAP содержатся сведения о выполняемой операции и данные, отправляемые в операцию. ПРОТОКОЛ SOAP использует WSDL для описания вызываемой операции. |
WSDL 1.0 |
Описывает привязки, операции и свойства, используемые для вызова операций EWS, в файле Services.wsdl. Этот файл вместе с файлами схемы, на которые ссылается ссылка, содержит контракт между приложением EWS и сервером Exchange Server и часто используется вместе с инструментами для конкретных поставщиков для создания приложений, зависящих от платформы. WSDL-файл находится в виртуальном каталоге EWS, который находится в корне веб-сайта. |
Безопасность транспортного уровня (TLS)/SSL |
Обеспечивает безопасную веб-связь в Интернете или в интрасети. ПРОТОКОЛ TLS позволяет приложениям проходить проверку подлинности серверов или, при необходимости, серверам для проверки подлинности приложений EWS. Он также предоставляет канал безопасности путем шифрования сообщений. Протокол TLS является более последней версией протокола SSL. |
XML/XSD |
Предоставляет универсальный формат сообщений для обмена информацией между сервером Exchange Server и клиентом. XML предоставляет сложные данные базы данных Exchange клиентским приложениям, но в определенной структуре. Красота XML заключается в том, что он позволяет обмениваться данными, даже если приложение EWS и сервер не используют общую платформу. |
Кроме того, приложения EWS должны поддерживать следующие стандарты проверки подлинности:
Обычная проверка подлинности по протоколу SSL для приложений, предназначенных для локальной службы Exchange.
Проверка подлинности NTLM по протоколу SSL для приложений, предназначенных для локальной среды Exchange.
Проверка подлинности по маркеру OAuth 2.0 для приложений, предназначенных для Exchange Online, доверенных партнерских приложений и взаимодействия с Lync Server 2013 и SharePoint Server 2013.