Технология Direct Push

Область применения: Exchange Server 2013 г.

Direct Push — это функция, встроенная в Microsoft Exchange Server 2013. Функция Direct Push поддерживает рабочее состояние мобильного устройства через подключение к сотовой или беспроводной сети. Она уведомляет мобильное устройство, когда новый контент готов к синхронизации.

Обзор

Для работы Direct Push необходимо использовать мобильное устройство, поддерживающее эту технологию. К этим устройствам относятся мобильные телефоны, которые производятся лицензией Microsoft Exchange ActiveSync и разработаны специально для обеспечения совместимости с прямой отправкой

По умолчанию технология Direct Push включена в Exchange 2013. Мобильные устройства с поддержкой технологии Direct Push отправляют продолжительные HTTPS-запросы на сервер под управлением Microsoft Exchange. Сервер Exchange отслеживает активность в почтовом ящике пользователя и в случае обнаружения каких-либо изменений, например появления новых или измененных сообщений, элементов календаря, контактов или задач, отправляет ответ на мобильное устройство. Если изменения происходят во время срока существования HTTPS-запроса, сервер Exchange выдает устройству ответ, сообщающий, что возникли изменения и устройство должно синхронизироваться с сервером Exchange. Затем устройство выдает серверу запрос. После завершения синхронизации создается новый долгоживущий HTTPS-запрос на повторный запуск процесса. Это гарантирует быструю доставку на мобильное устройство элементов электронной почты, календаря, контактов и задач, а также постоянную синхронизацию устройства с сервером Exchange.

Топология Direct Push

Технология "Direct Push" функционирует следующим образом:

  1. Мобильное устройство, настроенное на синхронизацию с сервером Exchange 2013, выдает серверу HTTPS-запрос. Этот запрос называется PING. Запрос отдает команду серверу уведомлять устройство обо всех изменениях элементов в любой папке, настроенной на синхронизацию, в течение следующих 15 минут. В противном случае сервер должен вернуть сообщение "HTTP 200 OK". Затем мобильное устройство переходит в ждущий режим. 15-минутный временной диапазон называется интервалом подтверждения соединения.

  2. Если никакие элементы не изменяются в течение 15 минут, сервер возвращает ответ "HTTP 200 OK". Мобильное устройство телефон получает этот ответ, возобновляет активность (выполняет возобновление работы) и повторно выдает запрос. Эти действия перезапускают процесс.

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

Технология "Direct Push" зависит от сетевых условий, поддерживающих долгоживущий HTTPS-запрос. Если передающая сеть мобильного устройства или брандмауэр не поддерживает долговременные HTTPS-запросы, то HTTPS-запрос останавливается. Ниже приводится пошаговое описание работы Direct Push для случая, когда время ожидания подключения для передающей сети мобильного устройства равно 13 минутам.

  1. Мобильное устройство выдает серверу HTTPS-запрос. Запрос отдает команду серверу уведомлять устройство обо всех изменениях элементов в любой папке, настроенной на синхронизацию, в течение следующих 15 минут. В противном случае сервер должен вернуть сообщение "HTTP 200 OK". Затем мобильное устройство переходит в ждущий режим.

  2. Если сервер не отвечает в течение 15 минут, мобильное устройство запускается в предположении, что в сети было превышено время ожидания подключения к серверу. Устройство повторно выдает HTTPS-запрос, но на этот раз используется интервал подтверждения соединения, равный 8 минутам.

  3. По истечении 8 минут сервер отправляет сообщение "HTTP 200 OK". Затем устройство пытается установить более продолжительное подключение, выдавая серверу новый HTTPS-запрос, имеющий интервал подтверждения соединения, равный 12 минутам.

  4. Спустя 4 минуты принимается новое сообщение электронной почты и сервер в ответ отправляет HTTPS-запрос, который сообщает устройству о необходимости синхронизации. Устройство синхронизируется и повторно выдает HTTPS-запрос с интервалом подтверждения соединения, равным 12 минутам.

  5. Спустя 12 минут, если отсутствуют новые или измененные элементы, сервер отвечает, отправляя сообщение "HTTP 200 OK". Устройство возобновляет работу в предположении, что сетевые условия поддерживают интервал подтверждения соединения, равный 12 минутам. Затем устройство пытается установить более длительное подключение, повторно выдавая HTTPS-запрос с интервалом подтверждения соединения, равным 16 минутам.

  6. Спустя 16 минут никакого отклика от сервера не принимается. Устройство возобновляет работу в предположении, что сетевые условия не поддерживают интервал подтверждения соединения, равный 16 минутам. Так как эта ошибка возникла непосредственно после попытки устройства увеличить интервал подтверждения соединения, делается вывод, что интервал подтверждения соединения достиг максимума. Затем устройство выдает HTTPS-запрос с интервалом подтверждения соединения, равным 12 минутам, так как это был последний успешно действующий такой интервал.

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

Настройка "Direct Push" для работы через брандмауэр

Чтобы технология Direct Push работала через брандмауэр, необходимо открыть TCP-порт 443. Этот порт необходим для протокола SSL (Secure Sockets Layer) и должен быть открыт между Интернетом и сервером клиентского доступа.

Помимо открытия портов на брандмауэре для оптимальной работы Direct Push следует увеличить значение времени ожидания соединения на брандмауэре с 15 минут по умолчанию до 30 минут. Максимальная длительность HTTPS-запроса определяется следующими параметрами:

  • Максимальное время ожидания соединения, устанавливаемое на брандмауэрах, управляющих трафиком из Интернета на сервер клиентского доступа

  • Время ожидания на брандмауэрах, устанавливаемое поставщиком услуг мобильной связи