Share via


Introducción a los centros de notificaciones

Los Centros de notificaciones de Azure son una infraestructura fácil de usar que le permite enviar notificaciones de inserción móviles desde cualquier back-end (en la nube o de forma local) a cualquier plataforma móvil.

Con los Centros de notificaciones puede enviar fácilmente notificaciones de inserción personalizadas entre plataformas, resumiendo los detalles de los distintos Sistemas de notificación de plataforma (PNS). Con una única llamada API, puede dirigirse a usuarios individuales o a segmentos completos con millones de usuarios, entre todos sus dispositivos.

Notification Hubs se puede usar tanto para escenarios empresariales como de consumidores. Por ejemplo:

  • Envíe notificaciones de noticias de última hora a millones de personas con baja latencia (Notification Hubs posibilitan las aplicaciones de Bing instaladas previamente en todos los dispositivos Windows y Windows Phone).

  • Envíe cupones basados en la ubicación a segmentos de usuarios.

  • Envíe notificaciones de eventos a usuarios o grupos para aplicaciones deportivas, de finanzas o de juegos.

  • Informe a los usuarios de eventos empresariales; por ejemplo, si tienen mensajes o correos electrónicos nuevos, o clientes potenciales.

  • Envíe contraseñas únicas necesarias para la autenticación multifactor.

¿Qué son las notificaciones de inserción?

Los smartphones y las tabletas son capaces de enviar "notificaciones" a los usuarios si se produce un evento. En las aplicaciones de la Tienda Windows y de Windows Phone, la notificación genera una notificación del sistema (una ventana sin modo que aparece en la parte superior de la pantalla) o la actualización de mosaicos de la pantalla Inicio. De manera similar, en los dispositivos Android y Apple iOS, las notificaciones aparecen agrupadas en un panel de notificaciones fácil de abrir en la parte superior de la pantalla.

Las notificaciones de inserción ayudan a los back-ends de aplicaciones a mostrar información nueva en dispositivos móviles aunque la aplicación del dispositivo no esté activa.

Las notificaciones de inserción se entregan por medio de infraestructuras específicas de la plataforma llamadas Sistemas de notificación de plataforma (PNS). Un PNS ofrece funciones esenciales (es decir, no admite la difusión ni la personalización) y los PNS específicos de cada plataforma no tienen una interfaz común. Por ejemplo, para enviar una notificación a una aplicación de la Tienda Windows, un desarrollador debe ponerse en contacto con el WNS (Servicio de notificaciones de Windows). Para enviar una notificación a un dispositivo iOS, el mismo desarrollador se pone en contacto con el APNS (Apple Push Notification Service) y envía el mensaje una segunda vez. El proceso es parecido para aplicaciones de Windows Phone 8 y Android.

En niveles altos, todos los sistemas de notificación de las plataformas siguen el mismo patrón:

  1. La aplicación cliente se pone en contacto con el PNS para recuperar su identificador. El tipo de identificador depende del sistema. Para WNS, es un URI o un "canal de notificación". Para APNS, es un token.

  2. La aplicación cliente guarda el identificador en el back-end de la aplicación para usarlo más adelante. En el caso del WNS, el back-end suele ser un servicio en la nube. En el caso de Apple, el sistema se denomina proveedor.

  3. Para enviar una notificación de inserción, el back-end de la aplicación se pone en contacto con el PNS mediante el identificador para destinar una instancia de una aplicación cliente específica.

  4. El PNS reenvía la notificación al dispositivo que especifica el identificador.

Notification Hubs

La infraestructura necesaria para aplicar este flujo es bastante compleja y, en gran parte, no está relacionada con la lógica empresarial principal de la aplicación. Algunas de las dificultades que presenta la creación de una infraestructura de inserción a petición son:

  • Dependencia de las plataformas. Para enviar notificaciones a dispositivos de diferentes plataformas, es necesario que cree código para varias interfaces del back-end. Verá que no solo los detalles de bajo nivel son diferentes, sino que la presentación de la notificación (el mosaico, la notificación del sistema o la insignia) depende de la plataforma. Estas diferencias provocan que el código del back-end sea complejo y difícil de mantener.

  • Escala. Escalar esta infraestructura tiene dos aspectos:

    • Según las directrices de PNS, se deben actualizar los tokens de dispositivo cada vez que se inicia la aplicación. Esto provoca gran cantidad de tráfico (y, por lo tanto, acceso a la base de datos) solo para tener al día los tokens de dispositivo. Cuando el número de dispositivos aumenta (quizá hasta millones), el coste de crear y mantener esta infraestructura no se puede obviar.

    • La mayoría de los PNS no admiten la difusión a varios dispositivos. Por eso, una difusión a millones de dispositivos provoca millones de llamadas a los PNS. La capacidad de escalar estas solicitudes no es una nimiedad, ya que normalmente los desarrolladores de aplicaciones quieren mantener la latencia total baja (por ejemplo, el último dispositivo que recibe el mensaje no debería recibir la notificación 30 minutos después de que se envíe la notificación, porque en muchos casos iría contra la finalidad de tener notificaciones de inserción).

  • Enrutamiento. Los PNS brindan una forma de enviar un mensaje a un dispositivo. Pero en la mayoría de aplicaciones las notificaciones se destinan a usuarios o grupos de interés (por ejemplo, todos los empleados asignados a cierta cuenta de clientes). Por eso, el back-end de la aplicación debe mantener un registro que asocie los grupos de interés a tokens de dispositivo a fin de enrutar las notificaciones a los dispositivos correctos. Esta sobrecarga se suma al tiempo total y a los costes de comercialización y mantenimiento de una aplicación.

  • Supervisión y telemetría. El seguimiento y la suma de los resultados de millones de notificaciones no es una tarea trivial. Además, suele ser un componente importante de cualquier solución que usa notificaciones de inserción.

Usar Notification Hubs

Notification Hubs elimina una complejidad importante: no es necesario administrar los desafíos de las notificaciones push. En su lugar, puede utilizar un Centro de notificaciones. Notification Hubs usa una infraestructura completa de notificaciones de inserción de varias plataformas y con escalamiento horizontal, además de reducir considerablemente el código específico de inserción que se ejecuta en el back-end de la aplicación. Notification Hubs implementan toda la funcionalidad de una infraestructura de inserción. Los dispositivos solo son responsables de registrar identificadores de PNS, mientras que el back-end es responsable de enviar mensajes independientemente de la plataforma a usuarios o grupos de interés, tal como se muestra en la ilustración siguiente.

Notification Hubs

Los centros de notificaciones proporcionan una infraestructura de inserción con las siguientes ventajas:

  • Plataformas múltiples:

    • Se admiten todas las principales plataformas móviles (Windows/Windows Phone, iOS y Android).

    • No hay protocolos específicos de cada plataforma. La aplicación solo se comunica con Notification Hubs.

    • Administración de controladores de dispositivos. Notification Hubs se encarga del mantenimiento de los comentarios y del registro de identificadores de los PNS.

  • Funciona con todos los back-ends. En la nube o locales, .NET, PHP, Java, Node, etc.

  • Escala. Los centros de notificaciones se escalan a millones de dispositivos sin necesidad de modificar la arquitectura ni particionarlos. Disponible en todas las regiones.

  • Conjunto completo de patrones de entrega. Se pueden asociar los dispositivos a etiquetas que representen grupos de interés o usuarios lógicos.

    • Difusión: permite la difusión casi simultánea a millones de dispositivos con una sola llamada API.

    • Unidifusión/Multidifusión: inserción en etiquetas que representan usuarios individuales, incluidos todos sus dispositivos; o grupo más amplio; por ejemplo, factores de forma independientes (tableta frente al teléfono).

    • Segmentación: inserción en un segmento complejo definido por expresiones de etiqueta (por ejemplo, dispositivos en Nueva York después de los Yankees).

  • Personalización. Cada dispositivo puede tener una o más plantillas para lograr la localización o la personalización dispositivo a dispositivo sin que el código del back-end se vea afectado.

  • Seguridad. Firma de acceso compartido (SAS) o autenticación federada.

  • Telemetría completa. Disponible en el portal y mediante programación.

Resumen

  • Las notificaciones de inserción se han convertido en una parte integral de cualquier aplicación moderna, ya que mejoran la implicación del usuario en las aplicaciones de consumidor y la utilidad de las aplicaciones empresariales.

  • Los centros de notificaciones proporcionan una infraestructura de inserción ampliada al máximo, multiplataforma y de fácil uso, que reduce considerablemente la creación de código y el mantenimiento del código del back-end de la aplicación.

  • Los centros de notificaciones se pueden usar desde cualquier back-end (en la nube o local) para enviar notificaciones de inserción a las principales plataformas móviles (Windows/Windows Phone, iOS y Android).

Recursos adicionales

Cómo utilizan los clientes los Notification Hubs

Tutoriales y guías sobre los Notification Hubs

Tutoriales de introducción sobre los centros de notificaciones:

Las referencias pertinentes para la API administrada de .NET referidas a los centros de notificaciones se pueden encontrar en los siguientes temas:

Microsoft.WindowsAzure.Messaging.NotificationHub

Microsoft.ServiceBus.Notifications