Открыть сервис

Windows Push Notification Services

Windows Push Notification Services (WNS) — это облачная служба уведомлений, входящая в состав операционной системы Microsoft Windows, предназначенная для доставки push-уведомлений от серверов приложений (или веб-сервисов) на клиентские устройства под управлением Windows 8, Windows 8.1, Windows 10, Windows 11, а также Windows Phone и Windows Server. Служба обеспечивает механизм, при котором приложение может получать обновления, сообщения, напоминания и другие данные даже в фоновом режиме, без необходимости постоянного опроса сервера.

История

До появления WNS в Windows 7 и более ранних версиях для получения обновлений от сервера приложения использовали механизмы фонового опроса (polling) или постоянные TCP-соединения, что приводило к повышенному расходу энергии и трафика. С развитием мобильных и сенсорных интерфейсов в Windows 8 компания Microsoft внедрила унифицированную систему push-уведомлений, основанную на облачной инфраструктуре.

WNS была впервые представлена вместе с Windows 8 в 2012 году. Первоначально она поддерживала только уведомления для приложений из Магазина Windows (Store apps). В Windows 10 и Windows 11 служба была расширена: она стала доступна для классических (Win32) приложений, а также для веб-приложений, работающих в Microsoft Edge.

Архитектура и принцип работы

WNS работает по трёхзвенной архитектуре: клиентское приложение, облачная служба WNS и сервер приложения (или сторонний сервис).

  1. Регистрация канала: При первом запуске приложение на устройстве пользователя обращается к локальной службе WNS, которая запрашивает у облачной платформы Microsoft уникальный канал уведомлений (Notification Channel URI). Этот URI представляет собой URL-адрес, который связывает конкретное приложение на конкретном устройстве с облачной службой.
  2. Передача URI серверу: Приложение передаёт полученный URI своему серверу (или серверу разработчика). Сервер сохраняет этот URI для последующей отправки уведомлений.
  3. Отправка уведомления: Когда серверу необходимо отправить уведомление (например, новое сообщение в чате), он формирует HTTP-запрос (POST) на URI канала, переданный ранее. Запрос должен содержать аутентификационный токен, полученный от службы WNS, и само тело уведомления в формате XML.
  4. Доставка: Облачная служба WNS получает запрос, проверяет его подлинность и доставляет уведомление на соответствующее устройство. Если устройство выключено или не имеет доступа к сети, уведомление может быть помещено в очередь и доставлено при следующем подключении (время жизни уведомления по умолчанию — 3 дня, но может быть настроено).
  5. Обработка на клиенте: Получив уведомление, операционная система передаёт его соответствующему приложению. Приложение может обработать уведомление в фоновом режиме (например, обновить плитку) или отобразить его пользователю в виде всплывающего сообщения (toast-уведомления).

Типы уведомлений

WNS поддерживает несколько типов уведомлений, которые различаются по способу отображения и обработки:

  • Toast-уведомления (всплывающие): Отображаются в правом нижнем углу экрана (в Windows 10/11) в виде баннера. Могут содержать текст, изображения, кнопки действий. Используются для оповещения пользователя о событиях, требующих внимания (новые сообщения, напоминания, системные события).
  • Уведомления на плитку (Tile): Обновляют содержимое «живой» плитки приложения в меню «Пуск». Плитка может отображать текст, изображения, значки, а также анимированные элементы.
  • Значки (Badge): Отображают числовое значение (например, количество непрочитанных сообщений) или графический символ на значке приложения на панели задач или в меню «Пуск».
  • Фоновые уведомления (Raw): Не отображаются пользователю напрямую. Предназначены для передачи данных приложению, работающему в фоновом режиме. Используются для синхронизации данных, обновления контента, активации фоновых задач.
  • Уведомления о состоянии (Status): В Windows 10 и 11 появились уведомления, которые отображаются в центре уведомлений и могут содержать интерактивные элементы, такие как ползунки громкости или кнопки «Ответить».

Технические детали

  • Протокол: WNS использует протокол HTTP (HTTPS для отправки уведомлений с сервера). Для обеспечения безопасности все запросы к облачной службе должны быть аутентифицированы с помощью токена, полученного через OAuth 2.0.
  • Формат данных: Тело уведомления передаётся в формате XML, который описывает структуру уведомления (текст, изображения, действия). Для toast-уведомлений в Windows 10/11 используется адаптивный XML-шаблон, позволяющий создавать сложные макеты.
  • Аутентификация: Для отправки уведомлений сервер приложения должен пройти аутентификацию в облачной службе WNS. Для этого используется пара «Идентификатор приложения (Package SID)» и «Секретный ключ (Client secret)», которые генерируются при регистрации приложения в Центре партнёров Microsoft (Partner Center).
  • Ограничения: WNS накладывает определённые ограничения на частоту отправки уведомлений (например, не более 30 уведомлений в минуту для одного канала). При превышении лимита служба может временно блокировать отправку.

Применение

WNS является основой для работы многих современных приложений в экосистеме Windows:

  • Почтовые клиенты: Уведомления о новых письмах (Microsoft Outlook, Mozilla Thunderbird).
  • Мессенджеры: Уведомления о новых сообщениях (Telegram, Discord, Skype).
  • Социальные сети: Уведомления о лайках, комментариях, подписках (VK, Facebook — организация признана экстремистской и запрещена в РФ, Instagram — организация признана экстремистской и запрещена в РФ).
  • Календари: Напоминания о событиях.
  • Системные утилиты: Уведомления о состоянии системы (например, обновления Windows, антивирусные предупреждения).
  • Игры: Уведомления о достижениях, приглашениях в игру, обновлениях контента.

Сравнение с другими службами

WNS является частью более широкой экосистемы push-уведомлений Microsoft, которая также включает:

  • Windows Notification Service (WNS) для Windows Phone 8.1: Предшественник современной WNS, использовавшийся на мобильных устройствах.
  • Microsoft Push Notification Service (MPNS): Использовалась в Windows Phone 7 и 8. В настоящее время устарела.
  • Azure Notification Hubs: Облачный сервис Microsoft Azure, который предоставляет единый API для отправки push-уведомлений на различные платформы (iOS, Android, Windows, Web). Он может использовать WNS как один из каналов доставки для Windows-устройств.

В отличие от аналогичных служб от Google (Firebase Cloud Messaging, FCM) и Apple (Apple Push Notification Service, APNs), WNS тесно интегрирована с операционной системой Windows и использует собственные форматы уведомлений и механизмы аутентификации.

Критика и ограничения

  • Зависимость от облачной инфраструктуры: Для работы WNS требуется постоянное подключение к интернету и доступ к серверам Microsoft. При отключении интернета или сбоях в облачной службе доставка уведомлений невозможна.
  • Задержки: В некоторых случаях доставка уведомлений может задерживаться, особенно при высокой нагрузке на сеть или на серверы WNS.
  • Сложность настройки: Для разработчиков настройка WNS требует регистрации приложения в Центре партнёров, получения токенов и правильной обработки XML-шаблонов, что может быть сложнее, чем использование сторонних библиотек.
  • Ограничения на количество уведомлений: Жёсткие лимиты на частоту отправки могут быть проблемой для приложений, генерирующих большое количество уведомлений (например, чатов с высокой активностью).
  • Проблемы с конфиденциальностью: Как и любая облачная служба, WNS обрабатывает данные о пользователях и их устройствах. Критики указывают на потенциальные риски утечки данных или их использования для таргетированной рекламы.

Источники

  • Документация Microsoft по Windows Push Notification Services (WNS) — официальная техническая документация.
  • Спецификация протокола WNS — описание форматов запросов и ответов.
  • Руководство по разработке приложений для Windows 10 и Windows 11.
  • Статьи в блоге Microsoft Developer Network (MSDN) о push-уведомлениях.
  • Материалы конференций Build и Ignite.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →