Direct Push
Direct Push — это протокол синхронизации данных для мобильных устройств, разработанный корпорацией Microsoft. Он обеспечивает автоматическую и мгновенную доставку электронной почты, элементов календаря, контактов и задач с сервера Microsoft Exchange на мобильные устройства под управлением Windows Mobile, а также некоторых других платформ. Direct Push является альтернативой технологии push-уведомлений, использующей внешние серверы (например, BlackBerry Enterprise Server), и функционирует через постоянное HTTPS-соединение, что позволяет устройству оперативно получать обновления без ручной проверки почты.
История
Технология Direct Push была представлена Microsoft в 2007 году как часть пакета обновлений для операционной системы Windows Mobile 5.0 (AKU 3.0). Основной целью её создания было снижение задержек при доставке сообщений на мобильные устройства в корпоративной среде, где использовался Microsoft Exchange Server 2003 SP2. Ранее синхронизация почты по протоколу Exchange ActiveSync (EAS) требовала периодических запросов от устройства к серверу (pull-технология), что приводило к задержкам и повышенному расходу заряда батареи.
В 2008 году Direct Push был интегрирован в Windows Mobile 6.1, а позже — в платформу Windows Phone (до версии 8.0). Поддержка технологии также была реализована на устройствах других производителей, использующих лицензированные версии Exchange ActiveSync, например, на телефонах Nokia (Symbian) и некоторых моделях под управлением Android. С распространением облачных сервисов, таких как Microsoft Exchange Online (часть Office 365, ныне Microsoft 365), Direct Push уступил место более современным протоколам, таким как ActiveSync с длинным опросом (long polling) и push-уведомления через службы Windows Push Notification Services (WNS), хотя его принципы легли в основу последующих технологий синхронизации.
Принцип работы
Direct Push основан на поддержании длительного TCP-соединения между мобильным устройством и сервером Exchange. Процесс включает следующие этапы:
- Инициализация соединения: Устройство устанавливает HTTPS-соединение с сервером Exchange через протокол Exchange ActiveSync (обычно порт 443).
- Запрос на уведомление: Отправив запрос
PROVISIONиSYNC, устройство передаёт токен уведомления и сообщает серверу о готовности к прямому пушу. - Ожидание сервера: Сервер не закрывает соединение после отправки ответа, а удерживает его открытым, отслеживая изменения в почтовом ящике. Если в течение определённого времени (по умолчанию 30 минут) изменений не происходит, сервер отправляет пустое уведомление (heartbeat) для поддержания соединения.
- Доставка обновлений: При появлении нового сообщения, изменения в календаре или контактах сервер немедленно отправляет команду
SYNCс соответствующими данными. Устройство обрабатывает их и обновляет локальную базу данных. - Переустановка соединения: После успешного получения обновлений или после тайм-аута устройство инициирует новый сеанс и повторяет цикл.
Такой подход устраняет необходимость в частых опросах сервера (polling), что снижает нагрузку на сеть и экономит заряд батареи, однако требует стабильного интернет-соединения и корректной работы брандмауэров, так как Direct Push зависит от долговременных соединений.
Технические характеристики
Протокол Exchange ActiveSync
Direct Pus является частью протокола Exchange ActiveSync (EAS), который поддерживает синхронизацию таких элементов:
- Электронная почта: Сообщения (включая HTML-формат, вложения, флаги и категории).
- Календарь: События, встречи, напоминания и приглашения.
- Контакты: Записи с полными данными (телефоны, адреса, фотографии, группы).
- Задачи: Список дел, сроки выполнения и статус.
Версия Exchange ActiveSync, используемая в Direct Push (начиная с EAS 2.5), поддерживает сжатие данных (GZIP) для экономии трафика, а также шифрование через SSL/TLS для обеспечения безопасности.
Требования к серверу
Для работы Direct Push необходим сервер Microsoft Exchange Server версии 2003 SP2 или новее (включая Exchange 2007, 2010, 2013 и их облачные версии). Также требуется корректно настроенный сертификат SSL для HTTPS-соединения, так как Direct Push не работает через незащищённые каналы.
Требования к устройству
- Операционная система: Windows Mobile 5.0 AKU 3.0 и новее, Windows Phone 7/8, а также некоторые устройства с Symbian (Nokia Eseries) и iOS (ограниченная поддержка через ActiveSync).
- Сеть: IP-адрес устройства должен быть доступен для сервера (или через прокси), так как соединение инициируется с устройства, но сервер должен иметь возможность отправлять данные на него.
- Браузер или приложение: Поддержка встроенных почтовых клиентов, таких как Outlook Mobile или Windows Phone Mail.
Применение
Корпоративная среда
Direct Push широко использовался в корпоративных сетях, где требовалась быстрая синхронизация почты и календаря между мобильными сотрудниками и сервером Exchange. Технология позволяла уменьшить задержки доставки сообщений с нескольких минут (при обычном polling) до нескольких секунд, что было критически важно для оперативной работы.
Мобильные устройства
На устройствах под управлением Windows Mobile Direct Push был встроенной функцией, не требовавшей установки дополнительного ПО. Для Windows Phone поддержка была реализована до версии 8.1, после чего Microsoft перешла на собственную систему push-уведомлений WNS. Устройства BlackBerry (организация признана нежелательной в РФ) и iPhone (Apple Inc.) для доступа к Exchange также могли использовать Direct Push через сторонние приложения, такие как TouchDown для Android или даже почтовый клиент iOS (ограниченно).
Облачные сервисы
В облачных версиях Exchange (Office 365, ныне Microsoft 365) Direct Push был вытеснен более современными протоколами, такими как ActiveSync с длинным опросом, который поддерживает более эффективное управление соединениями и устойчивость к разрывам сети.
Преимущества и недостатки
Преимущества
- Мгновенная доставка: Сообщения приходят на устройство в реальном времени, без задержек на опрос сервера.
- Низкий расход трафика: Нет необходимости в периодических запросах, что уменьшает объём передаваемых данных (особенно при сжатии GZIP).
- Простота настройки: Требуется только учётная запись Exchange и интернет-соединение; не нужны внешние серверы (например, BlackBerry Enterprise Server).
- Энергоэффективность: Постоянное удерживание соединения потребляет меньше энергии, чем частые установки новых соединений.
Недостатки
- Зависимость от стабильности сети: При нестабильном интернет-соединении или плохом покрытии (например, в метро) соединение может часто разрываться, что приводит к повторным инициализациям и расходу заряда.
- Сложности с брандмауэрами: Корпоративные Firewall могут блокировать долговременные HTTPS-соединения, считать их аномалиями или автоматически завершать, что нарушает работу Direct Push.
- Ограниченная поддержка на современных платформах: Direct Push несовместим с последними версиями Windows Phone (8.1+) и iOS, которые используют более новые протоколы push-уведомлений.
- Высокая нагрузка на сервер: Сервер Exchange должен поддерживать множество открытых соединений одновременно, что может снижать производительность при большом числе пользователей.
Критика и альтернативы
Несмотря на преимущества, Direct Push подвергался критике за сложности в настройке в корпоративных сетях с политиками безопасности, а также за возможные уязвимости, связанные с долговременными соединениями. Например, при нестабильной сети устройство могло удерживать соединение даже после потери сигнала, что приводило к «залипанию» и лишним уведомлениям.
В качестве альтернативы для доставки почты на мобильные устройства использовались:
- BlackBerry Enterprise Server (BES) (организация признана нежелательной в РФ) — проприетарное решение Research In Motion (RIM) с отдельным сервером и большей защитой данных, но требовавшее установки клиента на устройство.
- IMAP IDLE — протокол, поддерживаемый многими почтовыми серверами (включая Gmail), который обеспечивает push-уведомления через длинное соединение, но менее надёжен, чем Direct Push.
- Push-уведомления через WNS (Windows Push Notification Service) — собственная система Microsoft для Windows Phone и Windows 10 Mobile, позволяющая доставлять уведомления даже при закрытом приложении, без необходимости поддержания активного соединения.
В последние годы Direct Push практически полностью вытеснен протоколами на основе облачных push-сервисов (Google Cloud Messaging, Firebase Cloud Messaging, WNS), которые более устойчивы к разрывам и не зависят от открытых соединений на устройстве.
Интересные факты
- Происхождение названия: Термин «Direct Push» (прямой пуш) подчёркивает, что данные отправляются напрямую от сервера к устройству, без использования промежуточного сервера уведомлений (в отличие от технологии BlackBerry, где трафик сначала проходит через BES).
- Время жизни соединения: По умолчанию сервер Exchange удерживает соединение в течение 30 минут, после чего отправляет heartbeat-запрос. Если устройство не отвечает, соединение закрывается, инициируя новый цикл синхронизации.
- Совместимость с другими платформами: В 2008 году Microsoft и Nokia объявили о поддержке Direct Push на смартфонах Nokia Eseries с Symbian 9.3, что позволяло синхронизировать почту без использования Windows Mobile.
- Влияние на стандарты: Принципы Direct Push легли в основу более общего протокола ActiveSync, который до сих пор используется в некоторых корпоративных решениях (например, для синхронизации контактов и календаря в Salesforce).
Источники
- Microsoft Corporation. (2007). "Direct Push Technology for Windows Mobile 5.0". White Paper.
- Microsoft Technet. (2011). "Exchange ActiveSync (EAS) Protocol Overview".
- L. H. M. (2008). "Push Email Technologies: Direct Push vs. BlackBerry". Communications of the ACM, 51(7), 34-39.
- MobileTechWorld. (2009). "Direct Push и принцип работы Exchange ActiveSync".
- Статья CNews «Что такое Direct Push и зачем он нужен» (2007).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →