Что такое Центры уведомлений Azure?

Центры уведомлений Azure обеспечивают простой в использовании и масштабируемый механизм отправки push-уведомлений, который позволяет отправлять уведомления на любую платформу (iOS, Android, Windows и т. д.) c любой серверной части (облачной или локальной). Центры уведомлений отлично походят как для отдельных потребителей, так и для крупных предприятий. Ниже приведено несколько примеров сценариев:

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

Примечание

Сведения о прекращении поддержки Firebase Cloud Messaging и шагах миграции см. в разделе Миграция Google Firebase Cloud Messaging.

Что такое push-уведомления?

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

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

Примечание

Центры уведомлений Azure официально не поддерживают push-уведомления по протоколу VOIP. Но в этой статье объясняется, как можно использовать уведомления APNS VOIP через Центры уведомлений Azure.

Дополнительные сведения о push-уведомлениях для нескольких популярных платформ см. в следующих разделах:

Как работают push-уведомления?

Push-уведомления доставляются через инфраструктуры, предназначенные для конкретных платформ, которые известны как системы отправки уведомлений платформы (PNS). Они предлагают базовые функциональные возможности для доставки сообщений на конкретное устройство по предоставленному дескриптору и не имеют единого интерфейса. Чтобы отправить уведомления всем клиентам, использующим разные версии приложения (для iOS, Android и Windows), разработчик должен работать с помощью службы push-уведомлений Apple (APNS), Firebase Cloud Messaging (FCM) и службы уведомлений Windows (WNS) отдельно.

В целом алгоритм отправки выглядит так:

  1. Приложение хочет получать уведомления. Для этого оно обращается к PNS для целевой платформы, где выполняется приложение, и запрашивает уникальный временный дескриптор для push-уведомлений. Тип дескриптора зависит от системы (например, WNS использует URI, а APNS — токены).
  2. Клиентское приложение сохраняет этот дескриптор в серверной части или у поставщика службы.
  3. Для отправки push-уведомления серверная часть приложения обращается к PNS, используя дескриптор для обращения к приложению конкретного клиента.
  4. PNS перенаправляет уведомление на устройство, указанное дескриптором.

Рабочий процесс push-уведомлений

Трудности в работе с push-уведомлениями

Системы PNS — очень мощное средство. Несмотря на это, разработчикам приложений требуется прилагать много усилий для реализации даже распространенных сценариев использования push-уведомлений, например для отправки push-уведомлений определенным сегментам пользователей.

Отправка push-уведомлений требует сложной инфраструктуры, не связанной с основной бизнес-логикой приложения. Вот лишь некоторые из трудностей, которые возникают на уровне инфраструктуры:

  • Зависимость от платформы
    • Серверная служба вынуждена использовать сложную и неудобную в обслуживании логику работы с разными платформами, чтобы отправлять уведомления на все возможные устройства, так как системы PNS не стандартизированы.
  • Масштабирование
    • По правилам PNS маркеры устройств необходимо обновлять при каждом запуске приложения. На серверную часть направляется большой объем трафика, и нужно много обращений к базе данных только для того, чтобы поддерживать актуальность маркеров. Если количество устройств достигает сотен миллионов или даже миллиардов, требуются огромные затраты на создание и поддержание такой инфраструктуры.
    • Большинство систем PNS не поддерживают рассылку на несколько устройств. Чтобы разослать самое простое сообщение на миллион устройств, потребуется миллион обращений к разным PNS. Передача таких объемов трафика с минимальными задержками — непростая задача.
  • Маршрутизация
    • Системы PNS предоставляют средства для отправки сообщений на устройства, но для большинства приложений нужна еще и возможность сегментирования по пользователям или тематическим группам. Серверная часть должна поддерживать реестр устройств с привязкой к тематическим группам, пользователям, свойствам и т. д. Эти сложности увеличивают время выхода приложения на рынок и повышают затраты на его обслуживание.

Какие преимущества использования Центров уведомлений Azure?

Центры уведомлений устраняют все сложности, связанные с самостоятельной отправкой push-уведомлений из серверной части приложения. Многоплатформенная масштабируемая инфраструктура для отправки push-уведомлений позволяет сократить объем кода, нацеленного на использование push-уведомлений, и существенно упростить серверную часть приложения. Если вы используете Центры уведомлений, вам остается лишь зарегистрировать с устройства дескрипторы PNS, а затем отправлять сообщения от серверной части нужным пользователям или группам пользователей. Эта схема работы представлена на следующем рисунке.

Схема Центра уведомлений

Центры уведомлений — это готовые к использованию механизмы отправки push-уведомлений, которые обеспечивают следующие преимущества:

  • Кроссплатформенная поддержка
    • Поддержка всех основных платформ push-уведомлений.
    • Единый интерфейс для отправки уведомлений на все платформы. Вы можете использовать отдельные форматы для разных платформ или единый формат, и при этом не требуются дополнительные действия с учетом особенностей платформ.
    • Управление маркерами устройств выполняется централизованно.
  • Поддержка различных серверных систем
    • Облачные или локальные системы.
    • .NET, Node.js, Java, Python и т. д.
  • Широкий набор схем доставки
    • Рассылка на одну или несколько платформ. Выполнив один вызов API, вы можете мгновенно отправить сообщение на несколько миллионов устройств, в том числе на разных платформах.
    • Push-уведомление на устройство. Вы можете направлять уведомления на конкретные устройства.
    • Отправка push-уведомления пользователю. Поддержка тегов и шаблонов позволяет передать сообщение конкретному пользователю, использующему несколько устройств на разных платформах.
    • Push-уведомления для сегмента пользователей с использованием динамических тегов. Поддержка тегов позволяет разделять устройства на сегменты и отправлять уведомления для любого из этих сегментов или любой комбинации сегментов, используя логические выражения (например, для всех пользователей, которые активны И живут в Сиэтле, И НЕ являются новыми пользователями). Вы больше не ограничены шаблоном "издатель — подписчик" и можете обновлять теги для устройств когда угодно и где угодно.
    • Локализованные push-уведомления. Поддержка шаблонов позволяет локализовать систему, не внося изменения в код серверной части.
    • Автоматические push-уведомления. Вы можете использовать механизм push-to-pull, рассылая на устройства автоматические уведомления, которые инициируют обмен информацией или выполнение действий на этих устройствах.
    • Запланированная отправка. Вы можете запланировать отправку уведомлений в любое время.
    • Технология Direct Push. При использовании службы "Центры уведомлений" вы можете даже не регистрировать устройства, а просто отправлять уведомления по списку дескрипторов устройств.
    • Персонализированные push-уведомления. Переменные в push-уведомлениях с информацией об устройстве позволяют отправлять персонализированные push-уведомления с использованием настроенных пар "ключ — значение".
  • Масштабируемость
    • Быстрая отправка сообщений на миллионы устройств, для которой не потребуется изменять архитектуру системы или сегментировать устройства.
  • Безопасность
    • Поддерживаются Shared Access Secret (SAS) и федеративная проверка подлинности.

Следующие шаги

Начните работу по созданию и использованию Центра уведомлений, следуя указаниям в руководстве по push-уведомлениям для мобильных приложений.