Каждый день на форуме Microsoft TechNet появляются новые вопросы, касающиеся разработки Exchange\Exchange Online. Сегодня актуальны два метода разработки: с использованием веб-сервисов (EWS Exchange и других) и без их использования.
В этой статье мы рассмотрим оба варианта и обозначим их плюсы и минусы.
Предоставляю слово автору.
Microsoft Exchange Server — это серверное программное обеспечение для обмена сообщениями и совместной работы.
Exchange предоставляет не просто очень мощную систему обмена сообщениями электронной почты, но и гораздо более широкий набор функций.
Помимо почтового сервера, Exchange можно использовать для обмена документами, создания общих календарей, обмена голосовыми сообщениями и многого другого.
Дополнительную информацию об Exchange Server можно найти по адресу Веб-сайт .
Более подробно история продукта описана на сайте связь .
В современном динамично меняющемся мире очень важно оставаться на плаву.
Требования к продукту, который будет использовать компания, могут не поддерживаться производителем.
Служба безопасности зачастую ставит неразрешимые задачи.
Основными целями развития являются следующие:
- Выполнение требований-ограничений
- Предоставление нового функционала, часто на стыке нескольких продуктов (например, автоматическое назначение или перенаправление запросов в ServiceDesk по электронной почте)
- Предоставление другого интерфейса (например, мобильного приложения)
Они менялись, модифицировались, менялись и вымирали.
Сегодня основные методы разработки осуществляются с использованием EWS Exchange, REST API и других веб- и невеб-сервисов.
Вы можете прочитать о миграции со старых методов разработки на более новые.
здесь .
А пока давайте поговорим немного подробнее о каждом из них.
Разработка с помощью EWS
EWS Exchange и другие веб-службы позволяют получать доступ к данным почтовых ящиков в Exchange Online или в локальной версии Exchange, начиная с Exchange Server 2007. Они предоставляют возможность создавать пользовательские или серверные приложения с прямым доступом к пользовательским данным.На данный момент существует несколько таких технологий:
- EWS, управляемый API EWS и API EWS Java.
- Автообнаружение POX/SOAP
- API REST для Office 365
- Единая система обмена сообщениями (UM) (старая служба, лучше использовать управляемый API EWS)
Операции EWS можно вызывать из любой операционной системы и языка, поскольку EWS использует SOAP для обработки запросов и ответов.
Важным фрагментом кода является код XML, который используется для создания запросов EWS и возврата ответов XML с сервера.
Управляемый API EWS теперь доступен как проект с открытым исходным кодом.
С помощью библиотеки с открытым исходным кодом вы можете:
- добавлять исправления ошибок и улучшения API;
- получать исправления ошибок и улучшения до того, как они станут доступны в официальном выпуске;
- Получите доступ к наиболее полной и актуальной реализации API, которую вы можете использовать для справки или для создания новых библиотек на новых платформах.
Служба автообнаружения предоставляет информацию о конфигурации, которую приложение использует для создания подключения к серверу Exchange. Вы можете использовать службу Autodiscover SOAP для отправки сообщений между клиентским приложением и сервером Exchange, чтобы определить параметры, которые приложение будет использовать для подключения к Exchange. Служба Autodiscover SOAP (в отличие от Autodiscover POX) обеспечивает пакетные запросы конфигурации Autodiscover и более детальный контроль над тем, какие параметры возвращаются в ответ. Autodiscover SOAP — это более современная версия, которую рекомендуется использовать.
API-интерфейсы REST (API-интерфейсы почты, календарей и контактов) упрощают программирование Exchange, предоставляя знакомый синтаксис, разработанный с открытым доступом (например, поддержка открытых стандартов JSON, OAUTH, ODATA) и гибкостью (например, детальный доступ к пользовательским данным).
Эти API позволяют разработчикам подключаться с любой платформы, будь то веб-сайт, настольный или мобильный клиент. Существуют SDK для .
NET, iOS, Android, NodeJS, Ruby, Python, Cordova и CORS для использования в одностраничных веб-приложениях JavaScript. Это обеспечивает следующие преимущества:
- Поскольку эти API требуют OAuth для аутентификации, ваше приложение не должно обрабатывать или хранить учетные данные пользователей.
- OAuth позволяет авторизованным пользователям запрашивать только определенные данные.
Например, вы можете создать приложение, запрашивающее чтение только календаря пользователя.
Разработка без использования веб-служб Exchange
Разработку без использования веб-сервисов или с минимальным использованием можно разделить на несколько направлений:- Пользовательские транспортные агенты, расширяющие встроенную функциональность (например, пересылка всех сообщений в другую организацию для внутренних пользователей перед отправкой или отправка сообщений на основе домена отправителя).
- Программы или интерфейсы, использующие Powershell (например, программа для ServiceDesk с определенными скриптами или интерфейс для хостинга Exchange)
- Мобильные клиенты или приложения, использующие ActiveSync
- Утилиты корпоративного уровня (резервное копирование, антиспам\антивирус, миграция)
- Утилиты более конкретного назначения (низкого уровня, например, на C\C++)
На следующем рисунке показано, где в транспортном конвейере транспортные агенты могут регистрироваться для получения событий.
Когда сообщение поступает в транспортный конвейер, агент транспорта, производный от класса SmtpReceiveAgent, может воздействовать на сообщение во время любого SMTP-события, для которого зарегистрирован агент. Агент, производный от класса RoutingAgent, может воздействовать на любое из четырех событий классификатора, для которых он зарегистрирован.
Агент, производный от класса DeliveryAgent, может обрабатывать сообщение во время любого события доставки, для которого он зарегистрирован.
Командная консоль Exchange предоставляет богатый набор команд на платформе Windows PowerShell для управления Exchange Online или локальным Exchange, начиная с Exchange 2013. Командную консоль Exchange можно использовать для создания двух типов инструментов: сценариев командной строки, которые запускаются в Windows. PowerShell и инструменты, которые используют командлеты Exchange Management Shell через управляемый интерфейс.
Управляемые приложения можно использовать для создания стандартного пользовательского интерфейса Windows или веб-интерфейса для администрирования сервера Exchange. В качестве примера такого приложения можно увидеть графический интерфейс для переноса данных в облако с помощью связь .
Протокол Exchange ActiveSync предназначен для прямой синхронизации мобильных устройств с Exchange, включая облегченные клиенты, такие как приложение «Почта и календарь» Windows 8, которые можно использовать в мобильных сценариях.
Exchange ActiveSync оптимизирован для приложений с низкой пропускной способностью, таких как приложения для обмена сообщениями, которые работают на мобильных устройствах.
Усовершенствования протокола Exchange ActiveSync в первую очередь обеспечивают стабильность и надежность сценариев использования мобильных устройств.
ActiveSync — открытый протокол, более подробную информацию о нем можно найти на сайте связь .
Если мы зайдем в Google Play и введем в поиске Exchange activesync, то получим более 100 результатов написанных для Exchange приложений, использующих activesync. Несмотря на то, что почти каждый телефон имеет встроенную поддержку AS, большинство клиентов хотят расширить ее функциональность с помощью таких вещей, как двухфакторная аутентификация, контейнеры и т. д. Для крупных компаний важно иметь высокую доступность данных, организованность процессов и возможность точного планирования.
В связи с этим на рынке программного обеспечения существует огромное количество приложений, предоставляющих аналогичный функционал.
В регионах, например, существует более сотни утилит для архивирования почты, информацию о крупнейших компаниях вы можете посмотреть на странице «Магический квадрант архивирования корпоративной информации».
При этом каждое программное обеспечение имеет свои языки программирования и методы реализации.
Компании могут использовать множество предоставляемых функций для разработки архитектуры и принципов работы своих приложений.
Например, для утилит резервного копирования и восстановления есть раздел на MSDN, в котором подробно описаны все процессы связь .
Также для многих сервисов и процессов существуют дополнительные API для написания программ на C\C++ для более узконаправленных запросов и программ.
Например, для ESE вы можете посмотреть связь .
Программировать или нет решать каждой компании, но стоит признать, что Exchange имеет огромные возможности для расширения функционала и предоставляет для этого все инструменты.
об авторе
Михаил Сартаев - системный архитектор в группе компаний ИТ.В настоящее время он является MVP в направлении «Офисные серверы и службы».
Занимается внедрением решений унифицированных коммуникаций.
Вы также можете прочитать статьи Михаила в блоге WordPress .
Теги: #microsoft #server #программирование #api #администрирование сервера #mail #exchange #rest api #PowerShell #mail #messages
-
Никто Не Виноват, Но Что Вы Можете Сделать?
19 Oct, 24 -
Теория Ограничений
19 Oct, 24 -
Об Операторах
19 Oct, 24 -
Ровно 60 Лет Назад Упал Нло.
19 Oct, 24 -
Принципы Вечны, Практика Иллюзорна
19 Oct, 24