Какой протокол лучше?

В статье «Доступ к Exchange из Windows Mobile 2003», опубликованной в Windows & .NET Magazine/RE № 3 за 2004 год, рассказывалось о безопасном доступе к Exchange Server 2003 по беспроводным соединениям с помощью Windows Mobile 2003. К почтовым ящикам можно обращаться с использованием IMAP или Microsoft ActiveSync на базе сервера. Какой из этих протоколов оптимален для конкретного предприятия? Выбор зависит от механизма доступа к данным почты и календаря каждого протокола, а также различий в использовании сетевых ресурсов.

Работа с почтой

Windows Mobile 2003 располагает программой Microsoft Pocket Outlook, которая обеспечивает доступ к данным Exchange 2003. Pocket Outlook состоит из трех компонентов: транспортных протоколов, интерфейса пользователя и хранилища сообщений. IMAP и ActiveSync — транспортные протоколы, которые выполняют операции извлечения (например, загрузки сообщений с сервера в карманные устройства). Эти протоколы также обеспечивают управление почтой на серверной стороне, например удаление и перемещение сообщений. Интерфейс пользователя служит для взаимодействия с хранилищем сообщений (которое содержит данные Pocket Outlook); через него пользователь читает, составляет, перемещает и удаляет сообщения.

Экран 1. Создание запроса на собрание в Pocket Outlook

Модель Pocket Outlook сегментирована, поэтому пользователь решает задачу (например, составляет сообщение) единственным способом, независимо от используемого протокола (IMAP или ActiveSync). Различия между двумя протоколами становятся заметны, если проанализировать, как действия на клиентской стороне преобразуются в серверные операции и как назначаются параметры для выборки и управления сообщениями.

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

Функции синхронизации обоих протоколов похожи; отличия касаются в основном гибкости применения этих функций. Например, в обоих протоколах предусмотрено автоматическое подключение и синхронизация карманного устройства с сервером Exchange. В обоих протоколах предполагается, что данное соединение устанавливается через регулярные промежутки времени (например, через каждые 15 минут). Существенное различие между механизмами синхронизации заключается в том, что пользователи ActiveSync могут составить расписание для часов с пиковой и минимальной нагрузкой; например, можно реже извлекать сообщения в период с самой высокой повременной платой. В IMAP можно задать лишь одно расписание.

Еще одно различие, не показанное в табл. 1, — метод и место настройки этих параметров. Все интерфейсы для настройки конфигурации IMAP доступны на карманном устройстве, и изменения можно внести в любой момент. Для настройки параметров ActiveSync необходимо вставить карманное устройство в док-станцию и вносить изменения с помощью приложения ActiveSync на настольном компьютере.

Где должен находиться пользователь?

Большинство пользователей, которые обращаются к Exchange с беспроводных устройств, желают получить доступ не только к электронной почте, но и к другой личной информации, в частности к календарю. Как правило, новые записи в календарь добавляются в трех случаях: при отправке запроса на собрание (meeting), при получении такого запроса и при организации деловой встречи (appointment). В ответ на запрос о собрании Exchange планирует время для пользователя и одного или нескольких его коллег. Лицо, отправившее запрос, — организатор (organizer), а остальные пользователи — участники (attendee). Если пользователь получает приглашение на собрание, то он — участник, а кто-то другой — организатор. Обычно все организаторы и участники имеют почтовые ящики в одной организации Exchange.

Диаграмма 1. Число килобайтов при загрузке сообщений

Методы создания и приема запросов собраний и организации деловых встреч в IMAP и ActiveSync существенно различаются. Рассмотрим, как это делается в каждом из протоколов.

IMAP: M значит Message

Буква M в названии IMAP (Internet Message Access Protocol) указывает, что протокол используется для доступа к почтовым сообщениям. IMAP не предназначен для доступа к календарю. В качестве транспортного средства для запросов собраний используется электронная почта, поэтому IMAP обеспечивает минимальный уровень интеграции с календарем.

В меню настольной версии Outlook предусмотрены отдельные пункты для создания запросов собраний и деловых встреч. Меню Pocket Outlook содержит лишь один пункт New Appointment, который позволяет создавать запросы как собраний, так и деловых встреч. Различие между запросами собраний и встреч заключается в указании участников (экран 1). Если указаны участники, то Pocket Outlook обрабатывает запись как запрос собрания; в противном случае Pocket Outlook рассматривает ее как запрос встречи.

При создании запроса собрания Pocket Outlook с помощью функции New Appointment генерирует сообщение meeting-request и помещает его в ящик «Исходящие» для доставки участникам при следующем подключении к Exchange. Если пользователь получает приглашение на собрание, то запрос поступает в ящик «Входящие» Pocket Outlook. Пользователь может открыть запрос и принять или отвергнуть приглашение. В отличие от настольной версии, Pocket Outlook не выполняет фоновую предварительную обработку приглашения и не добавляет ее в календарь в качестве предполагаемой встречи. Pocket Outlook заносит собрание в календарь и помещает в ящик «Исходящие» подтверждающее сообщение, только если приглашение принято. В следующий раз, когда Pocket Outlook установит соединение с Exchange, Exchange доставит подтверждающее сообщение и удалит запрос на собрание из ящика «Входящие» на сервере.

IMAP определяет только способ доступа и обработки почтовых сообщений, поэтому протокол автоматически не обновляет записей о собраниях в календаре на сервере, а записи о встречах в календаре Pocket Outlook в календарь на сервере не переносятся. Отсутствие записей о встречах и собраниях доставляет неудобства, поскольку те, кто использует вид свободен/занят календаря Exchange для планирования собраний, не увидят истинной картины свободного времени пользователей. Существует два варианта ввода записи в календарь на сервере.

  1. Можно установить карманное устройство в док-станцию и скопировать запись из карманного устройства на сервер с помощью приложения ActiveSync, установленного на настольном комьютере. Этот процесс обновляет информацию о встречах и собраниях на сервере, но не синхронизирует вид свободен/занят с карманным устройством до тех пор, пока оно не будет вновь вставлено в док-станцию.
  2. В виртуальном сервере IMAP есть функция, которая вставляет URL Outlook Web Access (OWA) в получаемые пользователем запросы собраний. Благодаря этому URL можно получить доступ к запросам собраний через OWA. Если приглашение на собрание принято через OWA, то Exchange отмечает время собрания в серверном календаре пользователя. Однако этот подход не принесет нужного результата, если пользователь вносит в календарь изменения, так как OWA не создает записей о встречах и собраниях в Pocket Outlook.

Чтобы использовать указатели URL OWA, необходимо настроить систему на указание в URL полного имени сервера (fully qualified server name). Если этого не сделать, Microsoft Pocket Internet Explorer (PIE) не обнаружит сервер OWA. Настройка полного имени хост-машины подробно описана по врезке «Конфигурирование URL календаря IMAP».

Если приглашение на собрание в OWA принято, то необходимо также принять запрос собрания, доставленный в ящик «Входящие» Pocket Outlook. Если этого не сделать, придется ждать синхронизации в настольном компьютере, чтобы добавить запись в календарь карманного устройства. Если щелкнуть на кнопке Accept в запросе собрания в Pocket Outlook, Pocket Outlook спросит, нужно ли послать организатору подтверждающее сообщение. Если приглашение уже принято в OWA, то посылать оповещение в Pocket Outlook не следует, иначе организатор получит два подтверждения.

Диаграмма 2. Число килобайтов при синхронихации перемещенных сообщений

Прежде чем принимать приглашение в Pocket Outlook, требуется сначала подтвердить участие в собрании в OWA. Несоблюдение этой последовательности — досадное неудобство, которое может превратиться в проблему. Неудобство заключается в том, что, пока запрос собрания находится в ящике «Входящие» Pocket Outlook, встроенный URL представляет собой активную ссылку, которую можно открыть, щелкнув на ней. Как только пользователь щелкнет на кнопке Accept, чтобы принять приглашение, Pocket Outlook начнет обрабатывать подтверждение, а затем удалит запрос собрания из ящика «Входящие». Таким образом, чтобы воспользоваться ссылкой, необходимо обратиться к ней из календаря. Pocket Outlook преобразует URL в простой текст, поэтому URL нужно скопировать в PIE.

Несоблюдение правильной последовательности превращается в проблему, если соединение IMAP установлено до того, как открывается URL. Вставленный URL указывает запрос собрания как сообщение в ящике «Входящие» на сервере (например, server.domain.com/exchange/neubauer/inbox/E2k3.eml?cmd=open). Когда пользователь принимает запрос собрания на карманном устройстве, Pocket Outlook обрабатывает запрос, затем перемещает запрос собрания из ящика «Входящие» в папку «Удаленные». Если после этого открыть соединение IMAP, оно воспроизведет перемещение на сервере. Если затем попытаться открыть OWA URL, то ссылка будет недействительна, так как указывает на сообщение, которого в серверном ящике «Входящие» больше нет.

ActiveSync: S — синхронизация

ActiveSync сравнивает состояние объектов в соответствующих контейнерах (например, папках «Входящие» на сервере и в карманном устройстве), а затем синхронизирует эти контейнеры, чтобы они содержали идентичные объекты. ActiveSync была спроектирована для доступа к Exchange, поэтому программа свободна от некоторых ограничений, присущих IMAP, и может обрабатывать изменения в любой доступной из Outlook папке в почтовом ящике Exchange. Функции ActiveSync обработкой почтовых объектов не ограничиваются, поэтому ActiveSync более тесно интегрирован с календарем. ActiveSync приводит в соответствие запросы собраний и встреч между календарями карманного устройства и сервера, независимо от того, кто послал приглашение на собрание или назначил встречу.

Например, если зарезервировать определенный промежуток времени в календаре Pocket Outlook, назначив встречу или послав запрос собрания, ActiveSync отражает зарезервированное время в календаре на сервере. Если зарезервировать какой-нибудь промежуток времени в календаре Pocket Outlook, приняв приглашение на собрание, то ActiveSync отражает зарезервированное время в серверном календаре. Аналогично, любые изменения в серверном календаре отражаются в календаре карманного устройства. Таким образом, IMAP при работе с календарем не может сравниваться с ActiveSync.

Единственная трудность при синхронизации календаря ActiveSync — необходимость составлять автоматическое расписание соединений. Без расписания ActiveSync не будет синхронизировать изменения в календаре. При запуске ActiveSync вручную из Inbox обрабатываются только объекты почтовой папки, выбранной для синхронизации; другими словами, папка календаря не синхронизируется.

Считаем байты

Если различий в конфигурации и функциональности недостаточно, чтобы отдать предпочтение одному из протоколов, следует рассмотреть воздействие протоколов на сеть предприятия. Это особенно важно, если тарифным планом не предусмотрено использование канала связи без ограничений времени. Чтобы оценить это влияние, я измерил объем трафика между сервером, на котором размещен почтовый ящик, и устройством HP iPAQ при использовании IMAP и ActiveSync. Моей целью было выяснить, какой протокол более эффективно передает информацию с меньшим числом служебных байтов.

Диаграмма 3. Число килобайтов при синхронизации удаленных сообщений

Я разрешил доступ IMAP и ActiveSync к учетным записям, размещенным на сервере Exchange 2003. Сеть, работающая со скоростью 100 Мбит/с, соединяющая сервер с беспроводным узлом доступа, и плата Ethernet в iPAQ, работающая на 10 Мбит/с, составили беспроводное соединение. Network Monitor с фильтрами захвата на сервере учитывал только трафик между сервером и карманным устройством.

В течение недели я использовал отдельные соединения IMAP и ActiveSync для загрузки электронной почты, поступающей для почтовой учетной записи HP. В табл. 2 приведены объем и число сообщений для каждого дня. Каждое утро я очищал ящик «Входящие» от всех объектов, оставшихся от предыдущих дней, и делал копии сообщений в ящике «Входящие», чтобы подтвердить результаты многократным повторением теста.

Начиная сеанс мониторинга, я использовал соединение ActiveSync для загрузки сообщений из Exchange 2003 в iPAQ путем синхронизации ящика «Входящие» и записывал число переданных байтов. Наконец, я перемещал сообщения в другую папку, синхронизировал ящик «Входящие» и записывал число переданных байтов. Чтобы убедиться в точности результатов, я повторял эти три операции (загрузку, удаление и перемещение) еще три раза. Для каждой операции я вычислял среднее число переданных байтов в ходе четырех прогонов теста. Завершив тесты ActiveSync, я повторял их для соединения IMAP.

В диаграмме 2 приведены сравнительные результаты тестов загрузки. Как мы видим, ActiveSync передает сообщения с сервера в карманное устройство гораздо эффективнее, чем IMAP. Усредненный объем трафика за неделю был примерно на 45% меньше. На диаграммах 2 и 3 показаны результаты операций соответственно перемещения и удаления. Сравнительные данные для операции перемещения также показывают, что производительность ActiveSync выше, чем IMAP, так как трафик ActiveSync был примерно на 45% меньше. Для операции удаления различие в производительности поражает: по сравнению с IMAP, ActiveSync передавал через сеть на 80% меньше байтов.

Выбор за вами

Выбор оптимального протокола для организации зависит в основном от потребностей пользователей. Протоколы похожи по функциональности и доступу к электронной почте. Однако если пользователям нужно обращаться к электронной почте с различных платформ, то больше подойдет IMAP. В IMAP есть ряд функций синхронизации календарей, но ActiveSync будет предпочтительным выбором для тех, кому нужно интегрировать календари Exchange и Pocket Outlook. ActiveSync более эффективно использует ресурсы сети, и если тарифным планом не предусмотрено неограниченное время связи, стоит выбрать именно его.

Джозеф Ньюбауэр (joseph.neubauer@hp.com) — старший технический консультант в HP, специализируется на системах передачи сообщений


Настройка URL календаря IMAP

В Exchange Server 2003 виртуальному серверу IMAP выделена новая вкладка: Calendaring. Когда запрос собрания передается клиенту IMAP, виртуальный сервер присоединяет к сообщению Outlook Web Access (OWA) URL, который позволяет получателю задействовать OWA для доступа и ответа на запрос. По умолчанию виртуальный сервер посылает URL, указывающий на сервер получателя. Например, URL может иметь вид http://srv3/exchange/inbox.... Имя сервера — не полное; оно содержит только имя узла, но не информацию о домене.

Если карманное устройство не имеет прямого соединения с беспроводной сетью предприятия и доступа к WINS-серверу, то Pocket Internet Explorer (PIE) не обнаружит сервер только по имени узла. Из-за этого ограничение OWA URL становится почти бесполезным. На практике удобно изменить конфигурацию виртуального сервера IMAP таким образом, чтобы виртуальный сервер предоставил полное имя узла.

Экран А. Вкладка Calendaring при настройке IMAP

Для доступа к вкладке Calendaring (Экран A) следует щелкнуть правой кнопкой мыши на виртуальном сервере IMAP и выбрать пункт Properties. Следует перейти в режим Use front-end server, даже если конфигурация внешний/внутренний (front-end/back-end) не используется. В поле Front-end server name нужно ввести полное имя сервера (FQDN, например srv3.neulan.net). Префикс http:// или https:// не нужен, так как виртуальный сервер вставляет его автоматически. Если сервер OWA задействует Secure Sockets Layer (SSL), необходимо установить флажок Use SSL connections. Если для защиты соединений между клиентом и сервером VPN не используется, рекомендуется получить сертификат и задействовать SSL для защиты соединений как OWA, так и IMAP. Результирующий OWA URL появится в нижнем диалоговом окне (экран A).