Descrição Geral dos Notification Hubs
Os Hubs de Notificação Azure fornecem uma infraestrutura fácil de usar que lhe permite enviar notificações de push móvel de qualquer backend (na nuvem ou no local) para qualquer plataforma móvel.
Com os Centros de Notificação pode facilmente enviar notificações de push personalizadas e personalizadas, resumindo os detalhes dos diferentes sistemas de notificação da plataforma (PNSs). Com uma única chamada API, pode visar utilizadores individuais ou segmentos de audiência inteiros contendo milhões de utilizadores, em todos os respetivos dispositivos.
Pode utilizar os Notification Hubs para cenários de empresa e de consumidor. Por exemplo:
Envie notificações de notícias de última hora a milhões de pessoas com baixa latência (as Notification Hubs alimentam as aplicações Bing pré-instaladas em todos os dispositivos Windows e Windows Phone).
Envie cupões com base na localização a segmentos de utilizadores.
Envie notificações de eventos a utilizadores ou grupos para aplicações de desportos/finanças/jogos.
Notifique utilizadores de eventos de empresa como novas mensagens/e-mails e vendas potenciais.
Envie palavras-passe de utilização única necessária para o Multi-Factor Authentication.
O que são as Notificações Push?
Smartphones e tablets são capazes de "notificar" os utilizadores quando um evento ocorreu. No Windows aplicações Store e Windows Phone, a notificação resulta num brinde (uma janela de modeles que aparece na parte superior do ecrã) ou com atualizações de azulejos no ecrã Início. Da mesma forma, nos dispositivos Android e Apple iOS, as notificações aparecem agrupadas num painel de notificações facilmente acessível a partir do topo do ecrã.
As notificações push ajudam os backends de aplicações a exibir novas informações em dispositivos móveis, mesmo quando a aplicação no dispositivo não está ativa.
As notificações push são entregues através de infraestruturas específicas da plataforma denominadas Sistemas de Notificação de Plataforma (PNS). Um PNS oferece funções barebones (isto é, sem suporte para transmissão ou personalização) e os PNS específicos da plataforma não têm interface comum. Por exemplo, para enviar uma notificação para uma aplicação Windows Store, um desenvolvedor deve contactar o WNS (Windows Serviço de Notificação). Para enviar uma notificação a um dispositivo iOS, o mesmo desenvolvedor contacta a APNS (Serviço de Notificação Apple Push) e envia a mensagem uma segunda vez. O processo é semelhante para Windows Phone 8 e Android aplicações.
A um nível elevado, todos os sistemas de notificação da plataforma seguem o mesmo padrão:
A aplicação do cliente contacta o PNS para recuperar o seu manípulo. O tipo de identificador depende do sistema. Para a WNS, é um URI ou "canal de notificação". Para a APNS, é um símbolo.
A aplicação do cliente armazena este cabo no backend da app para utilização posterior. Para a WNS, o backend é tipicamente um serviço de nuvem. Para Apple, o sistema chama-se fornecedor.
Para enviar uma notificação push, o backend da aplicação contacta o PNS utilizando o manípulo para direcionar uma instância de uma aplicação específica do cliente.
O PNS reencaminha a notificação para o dispositivo especificado pelo identificador.
A infraestrutura necessária para implementar este fluxo é bastante complexa e principalmente alheia à principal lógica de negócio da app. Alguns dos desafios na construção de uma infraestrutura de push a pedido são:
Dependência da plataforma. Para enviar notificações para dispositivos em diferentes plataformas, é necessário codificar várias interfaces no backend. Não só os detalhes de baixo nível são diferentes, mas também a apresentação da notificação (azulejo, torrada ou crachá) é dependente da plataforma. Estas diferenças conduzem a um código de fundo complexo e difícil de manter.
A escala. O dimensionamento desta infraestrutura tem dois aspetos:
De acordo com as diretrizes PNS, os tokens de dispositivo têm de ser atualizados sempre que a aplicação é iniciada. Isto leva a uma grande quantidade de tráfego (e consequente acesso à base de dados) apenas para manter os tokens do dispositivo atualizados. Quando o número de dispositivos cresce (possivelmente para milhões), o custo de criação e manutenção desta infraestrutura não é trivial.
A maioria dos PNS não suporta a transmissão para vários dispositivos. Como tal, uma transmissão para milhões de dispositivos resulta em milhões de chamadas para os PNSs. Poder escalar estes pedidos não é trivial, porque os desenvolvedores de aplicações geralmente querem 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 o envio das notificações, porque em muitos casos iria derrotar o propósito de ter notificações push).
Encaminhamento. Os PNSs proporcionam um modo de enviar uma mensagem para um dispositivo. Na maioria das aplicações, no entanto, as notificações são direcionadas para utilizadores e/ou grupos de interesses (por exemplo, todos os funcionários atribuídos a uma determinada conta de cliente). Como tal, o backend da aplicação deve manter um registo que associe grupos de interesse com fichas de dispositivo para encaminhar as notificações para os dispositivos corretos. Esta sobrecarga adiciona ao tempo total de mercado e custos de manutenção de uma aplicação.
Monitorização e Telemetria. O acompanhamento e agregação dos resultados de milhões de notificações não é trivial, e é geralmente um componente importante de qualquer solução que utilize notificações push.
Usando centros de notificação
Os Centros de Notificação eliminam uma grande complexidade: não é preciso gerir os desafios das notificações push. Pode, em vez disso, utilizar um Notification Hub. Os Notification Hubs utilizam uma infraestrutura completa de notificações push multiplataforma ampliada e reduzem significativamente o código específico de push que é executado no back-end da aplicação. Os Notification Hubs implementam todas as funcionalidades de uma infraestrutura push. Os dispositivos são apenas responsáveis pelo registo de identificadores PNS e o back-end é responsável pelo envio de mensagens independentes da plataforma a utilizadores ou grupos de interesses, como se mostra na figura seguinte:
Os Centros de Notificação fornecem uma infraestrutura push com as seguintes vantagens:
Múltiplas plataformas:
Suporte para todas as principais plataformas móveis (Windows/Windows Phone, iOS, Android).
Sem protocolos específicos da plataforma. A aplicação comunica apenas com os Notification Hubs.
Gestão de identificadores do dispositivo. Os Notification Hubs mantêm o registo dos identificadores e a resposta dos PNSs.
Funciona com qualquer back-end. Nuvem ou no local, .NET, PHP, Java, Nó, etc.
A escala. Os Centros de Notificação escalam para milhões de dispositivos sem necessidade de re-arquitecta ou fragmento. Disponível em todas as regiões.
Rico conjunto de padrões de entrega. Associar dispositivos com tags, representando utilizadores lógicos ou grupos de interesse.
Difusão: permite a difusão quase simultânea para milhões de dispositivos com uma única chamada de API.
Unicast/Multicast: empurrar para etiquetas que representem utilizadores individuais, incluindo todos os seus dispositivos; ou um grupo mais vasto; por exemplo, fatores de forma separados (tablet vs. telefone).
Segmentação: empurrar para um segmento complexo definido por expressões de tag (por exemplo, dispositivos em Nova Iorque seguindo os Yankees).
A personalização. Cada dispositivo pode ter um ou mais modelos, para alcançar a localização e personalização por dispositivo sem afetar o código de back-end.
Segurança. Segredo de Acesso Partilhado (SAS) ou autenticação federada.
Telemetria rica. Disponível no portal e programático.
Resumo
As notificações push tornaram-se parte integrante de qualquer aplicação moderna, uma vez que aumentam o envolvimento dos utilizadores nas aplicações de consumo e na utilidade das aplicações empresariais.
Os Centros de Notificação fornecem uma infraestrutura push de fácil utilização, multiplataforma e escalada, o que reduz significativamente a codificação e manutenção do código de back-end da aplicação.
Os Centros de Notificação podem ser utilizados a partir de qualquer back-end (nuvem ou no local) para enviar notificações push para todas as principais plataformas móveis (Windows/Windows Phone, iOS, Android).
Recursos Adicionais
Como os clientes estão a utilizar os Hubs de Notificação
Tutoriais e guias dos Hubs de Notificação
Centros de Notificação iniciando tutoriais:
As referências API geridas pela .NET para centros de notificação estão localizadas aqui: