O que são Hubs de Notificação do Azure?What is Azure Notification Hubs?

Os Hubs de Notificação do Azure fornecem um mecanismo de push expansível e fácil de usar que permite que você envie notificações para qualquer plataforma (iOS, Android, Windows, Kindle, Baidu etc.) de qualquer back-end (nuvem ou local).Azure Notification Hubs provide an easy-to-use and scaled-out push engine that allows you to send notifications to any platform (iOS, Android, Windows, Kindle, Baidu, etc.) from any backend (cloud or on-premises). Os Hubs de Notificação funcionam bem tanto para cenários empresariais quanto para cenários de consumidor.Notification Hubs works great for both enterprise and consumer scenarios. Aqui estão alguns exemplos de cenários:Here are a few example scenarios:

  • Para enviar notificações sobre as novidades para milhões de pessoas com baixa latência.Send breaking news notifications to millions with low latency.
  • Para enviar cupons baseados na localização para segmentos de usuários interessados.Send location-based coupons to interested user segments.
  • Para enviar notificações de eventos para usuários ou grupos em aplicativos de mídia/esportes/finanças/jogos.Send event-related notifications to users or groups for media/sports/finance/gaming applications.
  • Para enviar por push conteúdos promocionais para aplicativos com o objetivo de atrair e vender para os clientes.Push promotional contents to applications to engage and market to customers.
  • Para notificar os usuários sobre eventos corporativos, como novas mensagens e itens de trabalho.Notify users of enterprise events like new messages and work items.
  • Para enviar códigos para Autenticação Multifator.Send codes for multi-factor authentication.

O que são notificações por push?What are push notifications?

As notificações por push são uma forma de comunicação do aplicativo para o usuário na qual os usuários de aplicativos móveis recebem notificações sobre determinadas informações desejadas, geralmente em uma caixa de diálogo ou pop-up em um dispositivo móvel.Push notifications is 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. Geralmente, os usuários podem optar por exibir ou ignorar a mensagem; ao optar por exibir a mensagem, ela será aberta no aplicativo móvel que enviou a notificação.Users generally choose to view or dismiss the message; choosing the former opens the mobile application that communicated the notification. Algumas notificações são silenciosas – entregues em segundo plano para o aplicativo para que ele as processe em segundo plano e decida o que fazer.Some notifications are silent - delivered behind the scenes for the app to process behind the scenes and decide what to do.

As notificações por push são fundamentais para os aplicativos direcionados ao consumidor no aumento da interação e do uso do aplicativo e para os aplicativos empresariais na comunicação de informações atualizadas da empresa.Push notifications are vital for consumer apps in increasing app engagement and usage, and for enterprise apps in communicating up-to-date business information. É a melhor forma de comunicação de aplicativos para o usuário, porque oferece baixo consumo de bateria para dispositivos móveis, é flexível para os remetentes das notificações e permanece disponível mesmo quando os aplicativos correspondentes não estiverem ativos.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.

Saiba mais sobre as notificações por push em algumas plataformas populares, consulte os tópicos a seguir:For more information on push notifications for a few popular platforms, see the following topics:

Como as notificações por push funcionam?How push notifications work?

As notificações por push são fornecidas por meio de infraestruturas específicas à plataforma chamadas de Sistemas de Notificação de Plataforma (PNS).Push notifications are delivered through platform-specific infrastructures called Platform Notification Systems (PNSes). Eles oferecem funcionalidades de push barebone para enviar mensagens para um dispositivo com um identificador fornecido e não contam com interfaces comuns.They offer barebone push functionalities to deliver a message to a device with a provided handle, and have no common interface. Para enviar uma notificação para todos os clientes entre as versões iOS, Android e Windows de um aplicativo, o desenvolvedor deve trabalhar com APNS (Apple Push Notification Service), FCM (Firebase Cloud Messaging) e WNS (serviço de notificação do Windows) separadamente.To send a notification to all customers across the Android, iOS, and Windows versions of an app, the developer must work with Apple Push Notification Service(APNS), Firebase Cloud Messaging(FCM), and Windows Notification Service(WNS) separately.

Em um alto nível, é assim que o push funciona:At a high level, here is how push works:

  1. Um aplicativo decide que deseja receber notificações, então entra em contato com o PNS da plataforma de destino em que o aplicativo está sendo executado e solicita um identificador push único e temporário.An application decides it wants to receive notification, so it contacts PNS for the target platform where the app is running and requests a unique and temporary push handle. O tipo de identificador depende do sistema (por exemplo, o WNS usa URIs, enquanto o APNS usa tokens).The handle type depends on the system (for example, WNS uses URIs while APNS uses tokens).
  2. O aplicativo cliente armazena esse identificador no back-end do aplicativo ou provedor.The client app stores this handle in the app backend or provider.
  3. Para enviar uma notificação por push, o back-end do aplicativo entra em contato com o PNS usando o identificador para selecionar um aplicativo cliente específico.To send a push notification, the app backend contacts the PNS using the handle to target a specific client app.
  4. O PNS encaminha a notificação para o dispositivo especificado pelo identificador.The PNS forwards the notification to the device specified by the handle.

Fluxo de trabalho de notificação por push

Os desafios de notificações por pushThe challenges of push notifications

Os PNSes são eficientes.PNSes are powerful. No entanto, ainda há muito trabalho para o desenvolvedor do aplicativo para implementar até cenários comuns de notificação por push, como a transmissão de notificações por push a usuários segmentados.However, they leave much work to the app developer to implement even common push notification scenarios, such as broadcasting push notifications to segmented users.

As notificações por push requerem uma infraestrutura complexa que não está relacionada à lógica de negócios principal do aplicativo.Pushing notifications requires complex infrastructure that is unrelated to the application's main business logic. Alguns dos desafios de infraestrutura são:Some of the infrastructural challenges are:

  • Dependência de plataformaPlatform dependency
    • O back-end requer uma lógica dependente de plataforma complexa e difícil de manter para enviar notificações para dispositivos em várias plataformas, já que os PNSs não estão unificados.The backend requires complex and hard-to-maintain platform-dependent logic to send notifications to devices on various platforms as PNSes are not unified.
  • EscalaScale
    • De acordo com as diretrizes de PNS, os tokens de dispositivo deverão ser atualizados sempre que o aplicativo for iniciado.Per PNS guidelines, device tokens must be refreshed upon every app launch. O back-end lida com uma grande quantidade de tráfego e acesso ao banco de dados apenas para manter os tokens atualizados.The backend deals with a large amount of traffic and database access just to keep the tokens up-to-date. Quando o número de dispositivos aumenta para centenas, milhares ou milhões, o custo da criação e manutenção dessa infraestrutura é enorme.When the number of devices grows to hundreds, thousands, or millions, the cost of creating and maintaining this infrastructure is massive.
    • A maioria dos PNS não dá suporte à transmissão para vários dispositivos.Most PNSes do not support broadcast to multiple devices. Uma transmissão simples para um milhão de dispositivos resulta em um milhão de chamadas para o PNS.A simple broadcast to a million devices results in a million calls to the PNSes. Escalar essa quantidade de tráfego com latência mínima é uma tarefa difícil.Scaling this amount of traffic with minimal latency is nontrivial.
  • RoteamentoRouting
    • Embora os PNS forneçam uma maneira de enviar mensagens para dispositivos, a maioria das notificações de aplicativos são destinadas a usuários ou grupos de interesse.Though PNSes provide a way to send messages to devices, most apps notifications are targeted at users or interest groups. O back-end deve manter um registro para associar os dispositivos com grupos de interesse, usuários, propriedades, etc. Essa sobrecarga aumenta o tempo total de colocação no mercado e os custos de manutenção de um aplicativo.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.

Por que usar Hubs de Notificação do Azure?Why use Azure Notification Hubs?

Os Hubs de Notificação eliminam todas as complexidades associadas a enviar notificações por push por sua conta de seu aplicativo de back-end.Notification Hubs eliminates all complexities associated with pushing notifications on your own from your app backend. Sua infraestrutura de notificação por push multiplataforma e dimensionável reduz os códigos de push e simplifica o seu back-end.Its multi-platform, scaled-out push notification infrastructure reduces push-related coding and simplifies your backend. Com os Hubs de Notificação, os dispositivos são responsáveis somente por registrar os identificadores de PNS com o hub, enquanto o back-end envia mensagens para os usuários ou grupos de interesse, como mostra a figura a seguir: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:

Diagrama do Hub de Notificação

Os Hubs de Notificação são o seu mecanismo por push pronto para uso com as seguintes vantagens:Notification hubs is your ready-to-use push engine with the following advantages:

  • Plataformas cruzadasCross platforms
    • Suporte para todas as plataformas de push principais, incluindo iOS, Android, Windows e Kindle e Baidu.Support for all major push platforms including iOS, Android, Windows, and Kindle and Baidu.
    • Uma interface comum para enviar notificações por push para todas as plataformas em formatos específicos de plataforma ou independentes da plataforma, sem trabalho específico da plataforma.A common interface to push to all platforms in platform-specific or platform-independent formats with no platform-specific work.
    • Gerenciamento de identificador de dispositivo em um só local.Device handle management in one place.
  • Back-ends cruzadosCross backends
    • Em nuvem ou localCloud or on-premises
    • .NET, Node.js, Java, Python, etc..NET, Node.js, Java, Python, etc.
  • Conjunto avançado de padrões de entregaRich set of delivery patterns
    • Transmitir para uma ou várias plataformas: é possível fazer transmissões instantâneas para milhões de dispositivos de diversas plataformas com uma única chamada à API.Broadcast to one or multiple platforms: You can instantly broadcast to millions of devices across platforms with a single API call.
    • Enviar por push para o dispositivo: é possível enviar notificações para dispositivos individuais.Push to device: You can target notifications to individual devices.
    • Enviar por push para um usuário: recursos de marcações e modelos ajudam você a acessar todos os dispositivos multiplataforma de um usuário.Push to user: Tags and templates features help you reach all cross-platform devices of a user.
    • Enviar notificação por push para o segmento com marcações dinâmicas: o recurso de marcações ajuda você a segmentar dispositivos e enviar notificações por push a eles de acordo com as suas necessidades, esteja você enviando para um segmento ou uma expressão de segmentos (por exemplo, ativo E reside em Seattle, NÃO novo usuário).Push to segment with dynamic tags: 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). Em vez de ficar limitado a opções de publicação/assinatura, você pode atualizar as marcações de dispositivo em qualquer lugar e a qualquer momento.Instead of being restricted to pub-sub, you can update device tags anywhere and anytime.
    • Notificações por push localizadas: recurso de modelo que ajuda você a alcançar uma localização sem afetar o código de back-end.Localized push: Templates feature helps achieve localization without affecting backend code.
    • Notificações por push silenciosas: é possível habilitar o padrão push e pull enviando notificações silenciosas para dispositivos e disparando-os para concluir determinadas ações ou pulls.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.
    • Notificações por push agendadas: é possível agendar o envio de notificações a qualquer momento.Scheduled push: You can schedule to send out notifications anytime.
    • Notificações por push diretas: é possível ignorar o registro de dispositivos com o serviço dos Hubs de Notificação e distribuir em lote por push diretamente para uma lista de identificadores de dispositivos.Direct push: You can skip registering devices with the Notification Hubs service and directly batch push to a list of device handles.
    • Notificações por push personalizadas: as variáveis de envio por push a dispositivo ajudam você a enviar notificações por push personalizadas específicas para o dispositivo com pares de valor-chave personalizados.Personalized push: Device push variables helps you send device-specific personalized push notifications with customized key-value pairs.
  • Telemetria avançadaRich telemetry
    • A telemetria geral de push, dispositivo, erro e operação está disponível no portal do Azure e programaticamente.General push, device, error, and operation telemetry are available in the Azure portal and programmatically.
    • A telemetria por mensagem controla cada notificação por push da sua chamada de solicitação inicial para o serviço de Hubs de Notificações que obteve êxito no envio em lote.Per Message Telemetry tracks each push from your initial request call to the Notification Hubs service successfully batching the pushes out.
    • Os comentários do Sistema de Notificação de Plataforma comunicam todos os comentários dos sistemas de notificação de plataforma para ajudar na depuração.Platform Notification System Feedback communicates all feedback from Platform Notification Systems to assist in debugging.
  • EscalabilidadeScalability
    • Envie mensagens rápidas para milhões de dispositivos sem fragmentação de dispositivo ou rearquitetura.Send fast messages to millions of devices without rearchitecting or device sharding.
  • SegurançaSecurity
    • Segredo de acesso compartilhado (SAS) ou autenticação federada.Shared Access Secret (SAS) or federated authentication.

Próximas etapasNext steps

Introdução à criação e ao uso de um hub de notificação, seguindo o Tutorial: Enviar notificações por push para aplicativos móveis.Get started with creating and using a notification hub by following the Tutorial: Push notifications to mobile applications.