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

Центры уведомлений Azure обеспечивают простой в использовании и масштабируемый механизм отправки push-уведомлений, который позволяет отправлять уведомления на любую платформу (iOS, Android, Windows и т. д.) c любой серверной части (облачной или локальной).Azure Notification Hubs provide an easy-to-use and scaled-out push engine that enables you to send notifications to any platform (iOS, Android, Windows, etc.) from any back-end (cloud or on-premises). Центры уведомлений отлично походят как для отдельных потребителей, так и для крупных предприятий.Notification Hubs works great for both enterprise and consumer scenarios. Ниже приведено несколько примеров сценариев:Here are a few example scenarios:

  • отправка (с низкой задержкой) уведомлений об экстренных новостях миллионам пользователей;Send breaking news notifications to millions with low latency.
  • отправка купонов целевым сегментам пользователей с учетом их местоположения;Send location-based coupons to interested user segments.
  • отправка уведомлений о событиях пользователям или группам пользователей в информационных, спортивных, финансовых и игровых приложениях;Send event-related notifications to users or groups for media/sports/finance/gaming applications.
  • передача в приложения рекламного содержимого, которое помогает привлекать клиентов и продавать товары;Push promotional contents to applications to engage and market to customers.
  • уведомление пользователей о корпоративных событиях, новостях и рабочих задачах;Notify users of enterprise events such as new messages and work items.
  • отправка кодов для многофакторной идентификации.Send codes for multi-factor authentication.

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

Push-уведомления — это механизм взаимодействия приложения с пользователями, который позволяет передать пользователю мобильного приложения важную информацию, обычно во всплывающем или диалоговом окне на мобильном устройстве.Push notifications are a form of app-to-user communication where users of mobile apps are notified of certain desired information, usually in a pop-up or dialog box on a mobile device. Как правило, пользователь имеет выбор — просмотреть сообщение или отказаться от просмотра. Если он выберет просмотр, откроется мобильное приложение, от которого поступило уведомление.Users generally choose to view or dismiss the message; choosing the former opens the mobile application that communicated the notification. Некоторые уведомления беззвучные. Они доставляются в фоновом режиме, чтобы приложение обработало их и выбрало нужное действие.Some notifications are silent - delivered behind the scenes for the app to process and decide what to do.

Push-уведомления жизненно важны для потребительских приложений, так как позволяют повысить качество и частоту взаимодействия с приложением. Для корпоративных приложений это важный метод передачи актуальной бизнес-информации.Push notifications are vital for consumer apps in increasing app engagement and usage, and for enterprise apps in communicating up-to-date business information. Это самый лучший способ взаимодействия с клиентами: он позволяет экономить заряд мобильного устройства, обеспечивает гибкость для отправителей сообщений и работает даже без запуска соответствующего приложения.It's the best app-to-user communication because it is energy-efficient for mobile devices, flexible for the notifications senders, and available when corresponding applications are not active.

Примечание

Центры уведомлений Azure официально не поддерживают push-уведомления по протоколу VOIP. Но в этой статье объясняется, как можно использовать уведомления APNS VOIP через Центры уведомлений Azure.Azure Notification Hubs does not officially support Voice Over Internet Protocol (VOIP) push notifications; however, this article describes how you can use APNS VOIP notifications through Azure Notification Hubs.

Дополнительные сведения о push-уведомлениях для нескольких популярных платформ см. в следующих разделах:For more information on push notifications for a few popular platforms, see the following topics:

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

Push-уведомления доставляются через инфраструктуры, предназначенные для конкретных платформ, которые известны как системы отправки уведомлений платформы (PNS).Push notifications are delivered through platform-specific infrastructures called Platform Notification Systems (PNSes). Они предлагают базовые функциональные возможности для доставки сообщений на конкретное устройство по предоставленному дескриптору и не имеют единого интерфейса.They offer basic push functionalities to deliver a message to a device with a provided handle, and have no common interface. Чтобы отправить уведомления всем клиентам, использующим разные версии приложения (для iOS, Android и Windows), разработчик должен работать с помощью службы push-уведомлений Apple (APNS), Firebase Cloud Messaging (FCM) и службы уведомлений Windows (WNS) отдельно.To send a notification to all customers across the Android, iOS, and Windows versions of an app, the developer must work separately with Apple Push Notification Service (APNS), Firebase Cloud Messaging (FCM), and Windows Notification Service (WNS).

В целом алгоритм отправки выглядит так:At a high level, here is how push works:

  1. Приложение хочет получать уведомления. Для этого оно обращается к PNS для целевой платформы, где выполняется приложение, и запрашивает уникальный временный дескриптор для push-уведомлений.An application wants to receive a notification, so it contacts the PNS for the target platform on which the app is running and requests a unique and temporary push handle. Тип дескриптора зависит от системы (например, WNS использует URI, а APNS — токены).The handle type depends on the system (for example, WNS uses URIs while APNS uses tokens).
  2. Клиентское приложение сохраняет этот дескриптор в серверной части или у поставщика службы.The client app stores this handle in the app backend or provider.
  3. Для отправки push-уведомления серверная часть приложения обращается к PNS, используя дескриптор для обращения к приложению конкретного клиента.To send a push notification, the app backend contacts the PNS using the handle to target a specific client app.
  4. PNS перенаправляет уведомление на устройство, указанное дескриптором.The PNS forwards the notification to the device specified by the handle.

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

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

Системы PNS — очень мощное средство.PNSes are powerful. Несмотря на это, разработчикам приложений требуется прилагать много усилий для реализации даже распространенных сценариев использования push-уведомлений, например для отправки push-уведомлений определенным сегментам пользователей.However, they leave much work to the app developer to implement even common push notification scenarios, such as broadcasting push notifications to segmented users.

Отправка push-уведомлений требует сложной инфраструктуры, не связанной с основной бизнес-логикой приложения.Sending push notifications requires complex infrastructure that is unrelated to the application's main business logic. Вот лишь некоторые из трудностей, которые возникают на уровне инфраструктуры:Some of the infrastructure challenges are:

  • Зависимость от платформыPlatform dependency
    • Серверная служба вынуждена использовать сложную и неудобную в обслуживании логику работы с разными платформами, чтобы отправлять уведомления на все возможные устройства, так как системы PNS не стандартизированы.The backend requires complex and hard-to-maintain platform-dependent logic to send notifications to devices on various platforms, as PNSes are not unified.
  • МасштабированиеScale
    • По правилам PNS маркеры устройств необходимо обновлять при каждом запуске приложения.Per PNS guidelines, device tokens must be refreshed on every app launch. На серверную часть направляется большой объем трафика, и нужно много обращений к базе данных только для того, чтобы поддерживать актуальность маркеров.The backend deals with a large amount of traffic and database access just to keep the tokens up-to-date. Если количество устройств достигает сотен миллионов или даже миллиардов, требуются огромные затраты на создание и поддержание такой инфраструктуры.When the number of devices grows to hundreds, thousands, or millions, the cost of creating and maintaining this infrastructure is massive.
    • Большинство систем PNS не поддерживают рассылку на несколько устройств.Most PNSes do not support broadcast to multiple devices. Чтобы разослать самое простое сообщение на миллион устройств, потребуется миллион обращений к разным PNS.A simple broadcast to a million devices results in a million calls to the PNSes. Передача таких объемов трафика с минимальными задержками — непростая задача.Scaling this amount of traffic with minimal latency is nontrivial.
  • МаршрутизацияRouting
    • Системы PNS предоставляют средства для отправки сообщений на устройства, но для большинства приложений нужна еще и возможность сегментирования по пользователям или тематическим группам.Though PNSes provide a way to send messages to devices, most app notifications are targeted at users or interest groups. Серверная часть должна поддерживать реестр устройств с привязкой к тематическим группам, пользователям, свойствам и т. д. Эти сложности увеличивают время выхода приложения на рынок и повышают затраты на его обслуживание.The backend must maintain a registry to associate devices with interest groups, users, properties, etc. This overhead adds to the time to market and maintenance costs of an app.

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

Центры уведомлений устраняют все сложности, связанные с самостоятельной отправкой push-уведомлений из серверной части приложения.Notification Hubs eliminates all complexities associated with sending push notifications on your own from your app backend. Многоплатформенная масштабируемая инфраструктура для отправки push-уведомлений позволяет сократить объем кода, нацеленного на использование push-уведомлений, и существенно упростить серверную часть приложения.Its multi-platform, scaled-out push notification infrastructure reduces push-related coding and simplifies your backend. Если вы используете Центры уведомлений, вам остается лишь зарегистрировать с устройства дескрипторы PNS, а затем отправлять сообщения от серверной части нужным пользователям или группам пользователей. Эта схема работы представлена на следующем рисунке.With Notification Hubs, devices are merely responsible for registering their PNS handles with a hub, while the backend sends messages to users or interest groups, as shown in the following figure:

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

Центры уведомлений — это готовые к использованию механизмы отправки push-уведомлений, которые обеспечивают следующие преимущества:Notification Hubs is your ready-to-use push engine with the following advantages:

  • Кроссплатформенная поддержкаCross platforms
    • Поддержка всех основных платформ push-уведомлений.Support for all major push platforms.
    • Единый интерфейс для отправки уведомлений на все платформы. Вы можете использовать отдельные форматы для разных платформ или единый формат, и при этом не требуются дополнительные действия с учетом особенностей платформ.A common interface to push to all platforms in platform-specific or platform-independent formats with no platform-specific work.
    • Управление маркерами устройств выполняется централизованно.Device handle management in one place.
  • Поддержка различных серверных системCross backends
    • Облачные или локальные системы.Cloud or on-premises.
    • .NET, Node.js, Java, Python и т. д..NET, Node.js, Java, Python, etc.
  • Широкий набор схем доставкиRich set of delivery patterns
    • Широковещательная передача на одну или несколько платформ. С помощью одного вызова API вы можете мгновенно передавать данные в широковещательном режиме на миллионы устройств под управлением различных платформ.Broadcast to one or more platforms: You can instantly broadcast to millions of devices across platforms with a single API call.
    • Отправка push-уведомления на устройство. Вы можете направлять уведомления на конкретные устройства.Push to device: You can target notifications to individual devices.
    • Отправка push-уведомления пользователю. Поддержка тегов и шаблонов позволяет передать сообщение конкретному пользователю, использующему несколько устройств на разных платформах.Push to user: Tags and templates help you reach all cross-platform devices for a user.
    • Отправка push-уведомления для сегмента пользователей с использованием динамических тегов. Поддержка тегов позволяет разделять устройства на сегменты и отправлять уведомления для любого из этих сегментов или любой комбинации сегментов, используя логические выражения (например, для всех пользователей, которые активны И живут в Сиэтле, И НЕ являются новыми).Push to segment with dynamic tags: The tags feature helps you segment devices and push to them according to your needs, whether you are sending to one segment or an expression of segments (For example, active AND lives in Seattle NOT new user). Вы больше не ограничены шаблоном "издатель — подписчик" и можете обновлять теги для устройств когда угодно и где угодно.Instead of being restricted to publish-subscribe, you can update device tags anywhere and anytime.
    • Локализованные push-уведомления. Поддержка шаблонов позволяет локализовать систему, не внося изменения в код серверной части.Localized push: The templates feature helps achieve localization without affecting backend code.
    • Автоматические push-уведомления. Вы можете использовать механизм push-to-pull, рассылая на устройства автоматические уведомления, которые инициируют обмен информацией или выполнение действий на этих устройствах.Silent push: You can enable the push-to-pull pattern by sending silent notifications to devices and triggering them to complete certain pulls or actions.
    • Запланированные push-уведомления. Вы можете запланировать отправку уведомлений на любое время.Scheduled push: You can schedule notifications to be sent anytime.
    • Технология Direct Push. При использовании службы "Центры уведомлений" вы можете даже не регистрировать устройства, а просто отправлять уведомления по списку дескрипторов устройств.Direct push: You can skip registering devices with the Notification Hubs service and directly batch push to a list of device handles.
    • Персонализированные push-уведомления. Переменные в push-уведомлениях с информацией об устройстве позволяют отправлять персонализированные push-уведомления, настроив пары "ключ-значение".Personalized push: Device push variables help you send device-specific personalized push notifications with customized key-value pairs.
  • Богатые возможности телеметрииRich telemetry
    • Общие данные телеметрии по уведомлениям, устройствам, ошибкам и операциям можно получать через портал Azure и с помощью программных средств.General push, device, error, and operation telemetry are available both in the Azure portal and programmatically.
    • Телеметрия для каждого сообщения позволяет отследить каждое push-уведомление, отправляемое в соответствии с пакетным заданием, переданным в службу "Центры уведомлений" в исходном запросе.Per-message telemetry tracks each push from your initial request call to the Notification Hubs service successfully sending the pushes.
    • Обратная связь от системы отправки уведомлений платформы позволяет получить всю информацию, необходимую для отладки.Platform Notification System feedback communicates all feedback from PNSes to assist in debugging.
  • МасштабируемостьScalability
    • Быстрая отправка сообщений на миллионы устройств, для которой не потребуется изменять архитектуру системы или сегментировать устройства.Send fast messages to millions of devices without re-architecting or device sharding.
  • БезопасностьSecurity
    • Поддерживаются Shared Access Secret (SAS) и федеративная проверка подлинности.Shared Access Secret (SAS) or federated authentication.

Дальнейшие действияNext steps

Приступите к созданию и использованию концентратора уведомлений, следуя инструкциям из статьи Руководство по отправке push-уведомлений на устройства Android с помощью Центров уведомлений Azure и Google Firebase Cloud Messaging.Get started with creating and using a notification hub by following the Tutorial: Push notifications to mobile applications.