Простое и недорогое средство для мобильного обмена сообщениями

Пользователи уже успели оценить преимущества мобильного доступа к электронной почте, о чем свидетельствует популярность беспроводных устройств для обмена сообщениями, таких как карманный коммуникатор BlackBerry компании Research In Motion (RIM), а также смартфоны Windows Mobile и карманные компьютеры Pocket PC. Хотя число пользователей, работающих с такими устройствами, пока невелико, Microsoft явно рассчитывает на его значительный рост: в 2002 году было решено интегрировать функции продукта Mobile Information Server (MIS) — кодовое название Airstream — в Exchange Server 2003. Когда пакет Exchange 2003 поступил в продажу, он почти мгновенно превратился в популярное средство мобильного обмена сообщениями, хотя во многих организациях мобильные функции этой системы еще не используются. Несомненно, в Microsoft придают большое значение средствам обработки электронной почты с возможностью мобильного доступа. Корпорация не только включила в систему Exchange 2003 процессор Exchange ActiveSync (EAS). Она пошла еще дальше и сделала поистине необычный шаг — выдала лицензии на использование протокола EAS AirSync компаниям, чьи изделия непосредственно конкурируют с Windows Mobile, продолжая в то же время работать с рядом партнеров, таких как Good Technology и Intellisync, чьи решения дополняют функции мобильного обмена сообщениями, встроенные в Exchange. В связи с этим мне бы хотелось рассказать о том, что представляет собой система EAS, что она умеет делать и как можно с ее помощью предоставлять пользователям возможность мобильного обмена сообщениями.

Что такое EAS?

Прошло уже немало времени с тех пор, как мобильные устройства были наделены средствами доступа к электронной почте через известные протоколы доступа POP и IMAP. В сущности, система Exchange обеспечивала доступ к данным с мобильных устройств начиная с версии Exchange Server 5.0. Но пользователи все настойчивее добиваются оснащения устройств такими функциями, которые не всегда обеспечиваются протоколами IMAP и POP. Они хотели бы иметь функцию синхронизации (так, чтобы данные были видны как на экране мобильного устройства, так и в окне обычного почтового клиента); доступ к электронной почте, календарю и контактной информации, к тому же пользователям требуется полное соответствие содержимого папок и данных на различных устройствах. Наконец, надо сказать, что пользователи карманных устройств серии BlackBerry, а также серверов/карманных компьютеров GoodLink компании Good Technology уже привыкли к тому, что можно обходиться без синхронизации вручную и иметь гарантированно самые свежие данные.

EAS удовлетворяет все эти ожидания пользователей. Термин EAS я употребляю для обозначения нескольких компонентов и функций Exchange, но в самом строгом смысле он означает «процессор синхронизации, реализующий протокол AirSync». Процессор EAS и мобильное устройство взаимодействуют с целью обнаружения и синхронизации данных. Инициировать функцию синхронизации всегда должно мобильное устройство, хотя пользователь может активизировать функцию Always-Up-to-Date (AUTD), которая будет автоматически запускать функцию синхронизации при поступлении новых почтовых сообщений.

Систему EAS можно использовать с целым рядом устройств:

  • устройства Windows Mobile 2002 (включая устройства, функционирующие под управлением Microsoft Pocket PC 2002 и Smartphone 2002), работающие через протокол AirSync 1.0;
  • устройства Pocket PC 2003 и Smartphone2003, обеспечивающие взаимодействие с протоколом AirSync 2.0. Эта версия необходима для выполнения функции AUTD;
  • устройство Palm One Treo 650, совместимое с протоколом AirSync 2.0, хотя реализованная в нем версия несколько отличается от версии Windows Mobile.

Кроме того, компании Microsoft и Motorola объявили о том, что созданный на базе Linux телефон Motorola a720 будет поддерживать EAS, хотя в данный момент эта модель еще не появилась в продаже.

Не путайте EAS с клиентом Outlook Mobile Access (OMA). EAS реально синхронизирует данные на карманном устройстве, тогда как OMA (как и Outlook Web Access-OWA) лишь обеспечивает возможность просмотра сообщений и глобального списка адресов (Global Address List, GAL), но не передает в карманное устройство копии постоянных данных.

Как функционирует EAS?

На рисунке показано, каким образом мобильное устройство использует EAS для обмена сообщениями с Exchange 2003. В этом примере я решил отдельно показать внешний сервер, внутренний сервер и брандмауэр Microsoft Internet Security and Acceleration (ISA) Server 2004, хотя для работы EAS ни один из этих компонентов не является обязательным.

Рисунок. EAS служит мостом между карманными устройствами и данными Exchange

Когда мобильное устройство делает запрос, оно направляет его в виртуальный каталог Microsoft-Server-ActiveSync. Этот каталог поддерживается фильтром Internet Server API (ISAPI) — massync.dll, который реализует протокол AirSync. Если воспользоваться анализатором протоколов и проследить за обменом данными между устройством и сервером, можно заметить, что команды AirSync и данные передаются в обе стороны в виде структур XML, содержимое которых не документировано, но в контексте данной статьи эта тема, в сущности, не представляет интереса.

В почтовом ящике каждого пользователя, активизировавшего EAS, имеются три скрытых папки: CalendarSyncFile — для синхронизации календаря, ContactSyncFile — для синхронизации сведений о контактах, а также папка для синхронизации почты, имя которой формируется на основе глобально уникального идентификатора (GUID) соответствующего почтового ящика. Эти папки размещаются в разделе почтового ящика NON_IPM_SUBTREE, поэтому их нельзя увидеть с помощью традиционных клиентов на базе интерфейса Messaging API (MAPI).

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

  1. Устройство просматривает информацию DNS с целью обнаружения сервера EAS. Если пользователь неверно указал имя или если служба DNS поставщика услуг беспроводной связи отключена, на данном этапе произойдет сбой.
  2. Клиент устанавливает первоначальное соединение с сервером EAS по протоколу Secure Sockets Layer (SSL). Возможно (это зависит от используемого клиента), что в ходе данной процедуры потребуется подтвердить корректность SSL-сертификата сервера, что в свою очередь может потребовать особого искусства в развертывании. Но об этом я расскажу в следующем разделе.
  3. После установления соединения по протоколу SSL устройство направляет учетные данные пользователя на сервер EAS, который с их помощью подтверждает свои полномочия на сервере глобального каталога (GC). При выполнении данного процесса включается режим Basic authentication, который нужно активизировать для каталога EAS. В случае успешного завершения процедуры аутентификации сервер EAS обнаруживает сервер почтовых ящиков, где хранится почтовый ящик данного пользователя.
  4. Сервер EAS пытается с помощью встроенных средств аутентификации Windows подтвердить свои права доступа к серверу, содержащему почтовый ящик пользователя. Этот процесс напоминает процедуру, в ходе которой OWA или клиент Entourage задействуют WWW Distributed Authoring and Versioning (WebDAV): EAS формирует запросы DAV в адрес уровня Exchange DAV.
  5. Устройство отсылает стоящие в очередях почтовые, календарные и контактные сообщения, включая ответы и переадресованные сообщения.
  6. Устройство запрашивает сведения об иерархии папок; если имеются новые папки, они добавляются в список синхронизации.
  7. Устройство запрашивает список измененных объектов, содержащихся в первой папке; в соответствии с этим запросом EAS с помощью DAV извлекает файл состояния синхронизации данного пользователя. Информацию из этого файла EAS использует для выявления содержащихся в папке объектов, которые изменились с момента последней процедуры синхронизации.
  8. Устройство запрашивает данные об измененных объектах; каждый запрос может содержать не более 100 изменений. Устройство продолжает запрашивать информацию об изменениях до тех пор, пока не получит сведения обо всех изменениях, выявленных на этапе 7.
  9. После завершения синхронизации изменений в папке устройство запрашивает данные об изменениях объектов в следующей папке из списка синхронизации; при этом для каждой папки, содержащей изменения, повторяются этапы 7 и 8.
  10. По завершении синхронизации всех изменений устройство запрашивает сведения о новых присоединенных файлах. Такой порядок запросов устанавливается для того, чтобы сначала устройство получало сведения об изменении объектов и только после этого ему бы передавались потенциально объемные присоединенные файлы, способные занять значительную часть полосы пропускания.

Синхронизация средствами EAS осуществляется следующим образом. Читатели, возможно, заметили, что в приведенном описании ничего не говорится о синхронизации с помощью функции AUTD. Смысл этой функции заключается в том, чтобы дополнить инициированные пользователем процедуры синхронизации (включая плановые процедуры, установленные процессором EAS данного устройства) процедурами синхронизации по запросу, которые осуществляются, когда в почтовый ящик пользователя поступают новые сообщения. Когда функция AUTD активизирована для некоторого пользователя и хранилище Information Store (IS) доставило новый объект в папку, которая включена в список синхронизации данного пользователя, приемник событий системы Exchange оповещает о событии извещения о синхронизации. Эти события группируются в соответствии с интервалом (рассчитанным в миллисекундах), который устанавливается в параметре реестра HKEY_LOCAL_MACHINESOFTWARE MicrosoftExchangeOMABatchingTimer Значение Batching

Timer можно устанавливать в трех диапазонах.

  • Если установить это значение равным 0, EAS будет направлять извещение при поступлении каждого нового сообщения. В таком случае счет поставщику услуги коротких сообщений Short Message Service (SMS) будет расти как на дрожжах, если платить за каждое сообщение, так что следует помнить об этом.
  • Если установить данное значение в пределах от 0 до 900 000 миллисекунд (т. е. до 15 минут), EAS будет направлять извещения со стандартным 15-минутным интервалом.
  • Если значение BatchingTimer превышает порог 900 000, процессор будет направлять извещения через указанное число миллисекунд. Microsoft не установила верхнего предела для этого значения, так что требуется соблюдать осторожность.

Итак, по истечении указанного интервала сервер EAS направляет мобильному устройству текстовое сообщение SMS. Но нужно уточнить, что данное сообщение является особым служебным сообщением, и обычное SMS-приложение на устройстве его не видит. Для передачи на телефоны сигнальной и настроечной информации операторы беспроводных услуг используют другие типы служебных сообщений. Поступив в устройство, такое управляющее сообщение запускает EAS-провайдер устройства, который, в свою очередь, вызывает и инициирует процедуру синхронизации. (Более полное описание AUTD можно найти в статье «What is the Exchange ActiveSync Up-to-date feature and how does it work?», которую члены группы Microsoft ExchangeTeam опубликовали в своем сетевом журнале

(см. http://blogs.msdn.com/exchange/ archive/2004/04/26/120520.aspx).

Развертывание EAS

Поскольку процессор EAS входит в комплект поставки Exchange 2003, для его развертывания практически ничего не нужно делать. Установка дополнительного программного обеспечения не предполагается, а активизация средств EAS осуществляется по умолчанию.

Как показано на экране 1, активизация EAS (а также OMA и AUTD) осуществляется в диалоговом окне Mobile Services Properties. Чтобы открыть это окно, в диспетчере Exchange System Manager (ESM) нужно раскрыть узел Global Settings объекта существующей организации Exchange, щелкнуть правой клавишей мыши на узле Mobile Services и выбрать элемент Properties. Активизировать средства EAS можно, выставив флажок Enable user initiated synchronization. А флажки Enable up-to-date notifications и Enable notifications to user specified SMTP addresses определяют, соответственно, включена ли функция AUTD и может ли EAS направлять сообщения AUTD непосредственно на устройство пользователя.

Экран 1. Диалоговое окно Mobile Services Properties

Хотя средства EAS активизированы по умолчанию, администраторы могут решать, будут ли эти средства доступны тем или иным пользователям. В оснастке Active Directory Users and Computers консоли Microsoft Management Console (MMC) следует открыть диалоговое окно Properties соответствующего пользователя и перейти на закладку Exchange Features, которая показана на экране 2. Активизируя или отключая функции User Initiated Synchronization и Up-to-date Notifications, можно предоставлять или блокировать доступ пользователей к ним.

Экран 2. Можно предоставить или заблокировать права отдельных пользователей на работу с EAS и AUTD

Если задействован один сервер Exchange и необходимо использовать протокол SSL — вне связи с другими компонентами или потому что применяется процедура аутентификации на базе форм, — требуется выполнить кое-какие дополнительные работы. Нужно будет создать новый виртуальный каталог для EAS, доступ к которому возможен без использования протокола SSL, и дать процессору EAS указание пользоваться не традиционным каталогом Exchange, а именно этим виртуальным каталогом. Кто-то может подумать, что таким образом ставится под угрозу безопасность системы, но это не так, ибо мы одновременно наложим на новый каталог ограничение, в соответствии с которым он будет принимать трафик, поступающий только с IP-адреса локального сервера Exchange, иначе говоря, весь внешний трафик будет блокироваться. Более подробную информацию о настройке этой конфигурации для одного сервера можно найти в подготовленной специалистами Microsoft статье «Exchange ActiveSync and Outlook Mobile Access errors occur when SSL or forms-based authencation is required for Exchange Server 2003»(http://support.microsoft.com/?kbid=817379). По сути дела, с помощью консоли управления Microsoft IS администраторы экспортируют настройки виртуального каталога Exchange в файл, создают новый виртуальный каталог на базе этих настроек и затем поручают фильтру EAS ISAPI использовать их, изменив значение параметра реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesMasSyncParametersExchangeVDir.

Вне зависимости от того, один имеется в сети сервер Exchange или несколько, предстоит выполнить еще кое-какую дополнительную работу для настройки функции AUTD. Когда устройство, поддерживающее функцию AUTD, впервые выполняет процедуру синхронизации с сервером Exchange 2003, оно должно отобразить извещение с адресованным пользователю вопросом — хочет ли он активизировать функцию AUTD. Если пользователь дает утвердительный ответ, устройство передает серверу Exchange информацию, необходимую для обеспечения работы AUTD с почтовым ящиком этого пользователя (скажем, сведения о настройках для каждой папки, содержимое которой нужно отслеживать, и данные об устройстве пользователя). Кроме того, пользователь должен знать свой SMS-адрес (обычно это номер телефона мобильного устройства в комбинации с именем домена оператора), а оператор мобильной связи должен обеспечивать преобразование сообщений SMTP в формат SMS. Большинство крупных операторов — AT&T, Sprint, T-Mobile и Verizon в Соединенных Штатах, а также Orange, Telstra и T-Mobile по всему миру — предоставляют такие услуги, но это касается не всех операторов. Более полная информация об установке функции AUTD на различных устройствах Windows Mobile приведена в статье Ваниты Прабхакаран «How to Configure Always Up-ToDate Notifications» (http://www.microsoft.com/technet/ prodtechnol/exchange/2003/autd.mspx).

Вопросы безопасности

Если в сети используется процессор EAS, следует иметь в виду несколько соображений, связанных с проблемами безопасности. Во-первых, поскольку в ходе обменов между устройством и EAS учетные данные почтового ящика пользователя остаются без защиты, я настоятельно рекомендую всегда применять протокол SSL. Конечно, время от времени приходится отключать этот протокол для проведения диагностики. Если необходимо идти на такие меры, при первой же возможности следует обязательно вновь активизировать данный протокол.

Во-вторых, если используется протокол SSL, источник сертификата может существенно повлиять на ситуацию. Устройства Windows Mobile пытаются проверить подлинность сертификата, сверяясь со своими локальными списками надежных сертификатов (certificate trust lists, CTL). Такой проверке можно воспрепятствовать с помощью утилиты DisableCertChk (она входит в комплект инструментальных средств Exchange). Можно также воспользоваться утилитой SPAddCert; она позволяет устанавливать на устройстве сертификат от центра сертификации. Более подробная информация об этой возможности приведена в статье Microsoft «How to add root certificates to Windows Mobile 2003 Smartphone and to Windows Mobile 2002 Smartphone» (http://support. microsoft.com/?kbid=841060).

Наконец, необходимо убедиться в том, что защищающий процессор EAS брандмауэр обеспечивает выполнение команды WebDAV OPTIONS. Некоторые брандмауэры не пропускают эту команду, тем самым блокируя систему EAS. В частности, эту команду не пропускает ISA Server 2000. Положение можно исправить, модернизировав его до уровня Service Pack 1 (SP1) и добавив раздел реестра PassOPTIONSToPublishedServer в соответствии с инструкциями, изложенными в статье Microsoft «The ISA Server response to client options requests is limited to a predefined set» (http://support.microsoft.com/?kbid=304340).

Диагностика

Версии EAS для систем Windows Mobile в случае сбоев предъявляют пользователям коды ошибок. К сожалению, модель PalmOne Treo 650 выдает лишь несколько обобщенных сообщений об ошибках и не имеет журнала регистрации устройств, что значительно затрудняет диагностику. Полное описание диагностики средствами EAS могло бы стать предметом отдельной статьи. Эта тема прекрасно раскрыта в работе Джима Уэстморленда «TechNet Support WebCast: TroubleshootingMicrosoft Exchange Server2003 ActiveSync issues» (http://support.microsoft.com/?kbid=836024), здесь же я приведу лишь несколько общих замечаний, которые помогут читателям на первых порах.

Первая заповедь диагностики — необходимо понимать выводимые коды ошибок. Microsoft так и не опубликовала полный список всех возможных кодов ошибок, но в Web-рассылке документов по диагностике средствами EAS можно почерпнуть ценные данные. Ниже изложены некоторые общие сведения о ряде распространенных ошибок.

  • Ошибки MIS_XX или SYNC_XX указывают на наличие проблемы на сервере EAS. К примеру, ошибка SYNC_5 обычно возникает, когда в виртуальном каталоге EAS отключены встроенные средства аутентификации.
  • Ошибки HTTP_XXX указывают на проблемы с обменом данными между устройством и сервером. Эти ошибки могут быть общего характера: например, код HTTP_401 означает, что проблема связана с аутентификацией, но в сообщении об ошибке не содержится указаний на конкретный сбой. Если система извещает о таких ошибках, следует проверить файлы регистрации IIS и журнал регистрации событий приложений сервера EAS. Впервые устанавливая EAS, я получил извещение об ошибке именно с таким кодом и благодаря журналу регистрации событий быстро выяснил, что проблема возникла из-за неправильных параметров аутентификации на моем внешнем сервере. Код HTTP_403 означает, что целевая учетная запись не имеет разрешения на использование EAS.
  • Ошибки Internet_XX указывают на проблемы обмена данными между мобильным устройством и Internet. Так, код INTERNET_7 означает, что устройство не может разрешить имя DNS, которое было задано для сервера, а коды INTERNET_45 и INTERNET_55 обычно означают, что синхронизация не состоялась из-за невозможности подтвердить действительность сертификата сервера.
  • Коды ошибок ConnMgr_XX отображаются в тех случаях, когда диспетчер Connection Manager (клиентская часть EAS) сталкивается с ошибкой. Такие ошибки встречаются довольно редко.
  • Сообщения об ошибках Dev_XX поступают от устройства. К примеру, часто встречающийся код DEV_1 указывает на то, что устройство не имеет достаточного объема свободной памяти для завершения операции синхронизации, а код DEV_3 означает, что в ходе синхронизации произошло отключение.
  • Коды ошибок, которые начинаются с символов 0x, это коды ошибок Windows HResult. Они отображаются лишь в тех случаях, когда возникает неожиданная (а значит, неспецифицированная) ошибка.

Самый простой способ убедиться в том, что система EAS функционирует нормально, — это выяснить, доступен ли каталог Microsoft-Server-Active-Sync на сервере Exchange. При попытке обратиться к этому каталогу с помощью запроса HTTP GET пользователь всегда должен получать сообщение 501 Not implemented, вне зависимости от того, с каким устройством он работает, или от того, применяется ли в ходе обмена данными протокол SSL. Чтобы выяснить, функционирует ли процессор EAS, можно попробовать загрузить на настольную систему, защищенную брандмауэром сети, соответствующий указатель URL. Если операция пройдет нормально, следует попытаться загрузить этот URL в Web-браузер мобильного устройства. Если не удастся разрешить его с использованием SSL, можно попробовать отключить этот протокол. Если указатель и в таком случае не будет загружаться, надо полагать, что возникла проблема с разрешением имен.

Теперь следует проверить журналы регистрации событий сервера EAS. Если возникшая проблема связана с аутентификацией, наиболее очевидно указывать на это будут сообщения о нештатном завершении процедуры аутентификации в журнале регистрации событий. Если же проблемы имеют другую природу, нужно проверить журналы регистрации IIS. Вы сможете установить, поступают ли запросы от устройства на сервер EAS. Если в сети установлен ISA Server или другой брандмауэр, возможно, он блокирует некоторые или все запросы. Можно настроить разработанную Microsoft утилиту URLScan (с ее помощью можно отфильтровывать URL и запросы WebDAV, как описывается в статье Microsoft TechNet «UrlScan Security Tool» (http://www.microsoft.com/technet/ security/tools/urlscan.mspx) таким образом, чтобы она блокировала используемые процессором EAS команды IF и PUT и чтобы ISA Server могла блокировать необходимую команду OPTIONS.

Подойдет ли EAS?

EAS примечателен тем, что, обеспечивая беспроводной доступ к данным календаря, сведениям о контактах и к сообщениям, он не требует установки какого-либо дополнительного программного обеспечения на стороне сервера; достаточно иметь систему Exchange 2003 и совместимое мобильное устройство. Текущая версия EAS не отличается таким богатством функциональных возможностей, как упоминавшиеся решения BlackBerry и GoodLink, но затраты на развертывание этого продукта значительно ниже, а предоставляемый им набор функций достаточен для многих организаций. Процессор EAS дает администраторам возможность без особых затрат обеспечивать пользователей беспроводным доступом к необходимым данным. Всем, кто выбирает решение для создания в организации средств беспроводной связи, стоит рассмотреть возможность развертывания в сети этой системы.


Старший системный архитектор компании EntireNet, имеет сертификаты MCSE и MCT. Поддерживает Web-сайт www.exchangefaq.org. С ним можно связаться по адресу: getting-started@robichaux.net