Visão geral de hubs de notificação
Os Hubs de Notificação do Azure oferecem uma infraestrutura fácil de usar que permite enviar notificações móveis por push de qualquer back-end (na nuvem ou localmente) para qualquer plataforma móvel.
Com os Hubs de Notificação, é possível enviar facilmente notificações por push personalizadas entre plataformas, abstraindo os detalhes dos diferentes sistemas de notificação de plataforma (PNSs). Com uma única chamada de API, você pode direcionar usuários individuais ou segmentos de público inteiros com milhões de usuários em todos os dispositivos.
Você pode usar os Hubs de Notificação para cenários empresariais e de consumidor. Por exemplo:
Envie notificações de últimas notícias para milhões de pessoas com baixa latência (Os Hubs de Notificação potencializam os aplicativos Bing pré-instalados em todos os dispositivos do Windows e do Windows Phone.)
Envie cupons baseados na localização para segmentos de usuários.
Envie notificações de eventos para usuários ou grupos para aplicativos de esportes/finanças/jogos.
Notifique os usuários sobre eventos corporativos, como novas mensagens/emails e vendas potenciais.
Envie senhas de uso único exigidas para Multi-Factor Authentication.
O que são notificações por push?
Os smartphones e tablets são capazes de "notificar" os usuários quando ocorre um evento. Nos aplicativos da Windows Store e Windows Phone, a notificação resulta em uma notificação do sistema (uma janela não restrita que aparece na parte superior da tela) ou com atualizações de bloco na tela Início. Da mesma forma, nos dispositivos Android e Apple iOS, as notificações aparecem agrupadas em um painel de notificações que podem ser facilmente acessadas na parte superior da tela.
As notificações por push ajudam os back-ends dos aplicativos a exibir informações atualizadas nos dispositivos móveis mesmo quando o aplicativo não está ativo no dispositivo.
As notificações por push são entregues através de infraestruturas específicas de plataforma chamadas Sistemas de Notificação de Plataforma (PNS). Um PNS oferece funções do tipo "barebone" (isto é, sem suporte para difusão ou personalização) e os PNSs específicos de plataforma não possuem uma interface comum. Por exemplo, para enviar uma notificação para um aplicativo da Windows Store, um desenvolvedor deve contatar o WNS (Serviço de Notificação do Windows). Para enviar uma notificação para um dispositivo iOS, o mesmo desenvolvedor entra em contato com o APNS (Serviço de Notificação por Push da Apple) e envia a mensagem uma segunda vez. O processo é semelhante para aplicativos Windows Phone 8 e Android.
Em um nível alto, todos os sistemas de notificação de plataforma seguem o mesmo padrão:
O aplicativo cliente contata o PNS para recuperar o seu identificador. O tipo de identificador depende do sistema. Para o WNS, é um URI ou um "canal de notificação". Para APNS, é um token.
O aplicativo cliente armazena esse identificador no back-end do aplicativo para uso posterior. Para o WNS, o back-end é geralmente um serviço de nuvem. Para a Apple, o sistema é chamado provedor.
Para enviar uma notificação por push, o back-end do aplicativo contata o PNS usando o identificador para alcançar uma instância de um aplicativo cliente específico.
O PNS encaminha a notificação para o dispositivo especificado pelo identificador.
A infraestrutura necessária para implementar esse fluxo é bastante complexa e em grande parte não relacionada à lógica de negócios principal do aplicativo. Estes são alguns dos desafios na criação de uma infraestrutura de envio por push sob demanda:
Dependência da plataforma. Para enviar notificações para dispositivos em diferentes plataformas, você deve codificar várias interfaces no back-end. Não só os detalhes de nível inferior são diferentes, mas também a apresentação da notificação (bloco, notificação do sistema ou notificação) depende da plataforma. Essas diferenças resultam em um código de back-end complexo e difícil de manter.
Dimensão. Essa infraestrutura de dimensionamento tem dois aspectos:
De acordo com as diretrizes de PNS, os tokens de dispositivo devem ser atualizados sempre que o aplicativo for iniciado. Isso resulta em uma grande quantidade de tráfego (e consequentemente de acesso ao banco de dados) apenas para manter os tokens do dispositivo atualizados. Quando o número de dispositivos aumenta (possivelmente para milhões), o custo de criação e manutenção dessa infraestrutura é significativo.
A maioria dos PNSs não oferece suporte à difusão para vários dispositivos. Dessa forma, uma difusão para milhões de dispositivos resulta em milhões de chamadas para os PNSs. O dimensionamento dessas solicitações não é fácil, já que normalmente os desenvolvedores de aplicativos desejam manter a latência total baixa (por exemplo, o último dispositivo a receber a mensagem não deve receber a notificação 30 minutos após as notificações terem sido enviadas, pois, em muitos casos, isso anularia o propósito de ter notificações por push).
Roteamento. O PNSs fornecem uma maneira de enviar uma mensagem a um dispositivo. No entanto, na maioria dos aplicativos, as notificações destinam-se a usuários e/ou grupos de interesse (por exemplo, todos os funcionários atribuídos a uma determinada conta de cliente). Sendo assim, o back-end do aplicativo deve manter um registro que associa os grupos de interesse a tokens de dispositivo a fim de encaminhar as notificações aos dispositivos corretos. Essa sobrecarga aumenta o tempo total para comercialização do aplicativo, bem como os seus custos de manutenção.
Monitoramento e telemetria. Acompanhar e agregar os resultados de milhões de notificações não é simples, e isso normalmente é um componente importante de qualquer solução que usa notificações por push.
Usando hubs de notificação
Os Hubs de Notificação eliminam uma grande complexidade: você não precisa gerenciar os desafios das notificações por push. Em vez disso, você pode usar um Hub de Notificação. Os Hubs de Notificação usam uma infraestrutura de notificação por push de multiplataforma completa e dimensionável e reduzem consideravelmente o código específico de envio por push que é executado no back-end do aplicativo. Os Hubs de Notificação implementam toda a funcionalidade de uma infraestrutura de envio por push. Os dispositivos são responsáveis somente por registrar os identificadores de PNS e o back-end é responsável por enviar mensagens independentes de plataforma para os usuários ou grupos de interesse, como mostra a figura abaixo:
Os Hubs de Notificação oferecem uma infraestrutura de push com as seguintes vantagens:
Várias plataformas.
Suporte para todas as principais plataformas móveis (Windows/Windows Phone, iOS, Android).
Nenhum protocolo específico de plataforma. O aplicativo se comunica somente com Hubs de Notificação.
Gerenciamento de identificador de dispositivo. Os Hubs de Notificação mantêm o registro de identificadores e comentários dos PNS.
Funciona com qualquer back-end. Nuvem ou local, .NET, PHP, Java, Node etc.
Dimensão. Os Hubs de Notificação podem ser dimensionados para milhões de dispositivos sem a necessidade de rearquitetura ou fragmentação. Disponível em todas as regiões.
Amplo conjunto de padrões de entrega. Associam dispositivos a marcas, representando usuários ou grupos de interesse lógicos.
Transmissão: permite a difusão quase simultânea para milhões de dispositivos com uma única chamada de API.
Unicast/Multicast: push para marcas que representam usuários individuais, incluindo todos os seus dispositivos; ou grupo mais amplo; por exemplo, fatores de formulário separados (tablet versus telefone).
Segmentação: push para segmento complexo definido por expressões de marca (por exemplo, dispositivos em Nova York seguindo os Yankees).
Personalização. Cada dispositivo pode possuir um ou mais modelos, para obter personalização e localização por dispositivo sem afetar o código de back-end.
Segurança. Segredo de acesso compartilhado (SAS) ou autenticação federada.
Telemetria sofisticada. Disponível no portal e de forma programática.
Resumo
As notificações por push tornaram-se uma parte integrante de qualquer aplicativo moderno, uma vez que aumentam o compromisso do usuário com aplicativos de consumidor e a utilidade dos aplicativos empresariais.
Os Hubs de Notificação fornecem uma infraestrutura de push multiplataforma, dimensionável e fácil de usar, que reduz significativamente a codificação e a manutenção do código do back-end do aplicativo.
Os Hubs de Notificação podem ser usados em qualquer back-end (nuvem ou local) para enviar notificações por push para todas as principais plataformas móveis (Windows/Windows Phone, iOS, Android).
Recursos adicionais
Como os clientes usam os Hubs de Notificação
Tutoriais e guias de Hubs de notificação
Tutoriais de introdução dos Hubs de Notificação:
As referências relevantes das APIs gerenciadas pelo .NET para os hubs de notificação estão localizadas aqui: