Introducción a los centros de notificaciones

Actualizado: junio de 2015

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.

Los Centros de notificaciones se pueden 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 (los Centros de notificaciones 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.

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 (servicio de notificación de inserción de Apple) 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 el WNS, es un URI o un "canal de notificaciones". Para el 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 especificado con el identificador.

Bases de datos centrales de notificaciones

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. A continuación enumeramos algunas de las dificultades a la hora de crear una infraestructura de inserción a petición:

  • 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. La modificación de escala de esta infraestructura se compone de dos aspectos:

    • Según las directrices del PNS, los tokens de dispositivo se tienen que actualizar cada vez que se abre 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 proporcionan 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.

Los centros de notificaciones eliminan una complejidad importante: no tiene que administrar las dificultades que suponen las notificaciones de inserción. En su lugar puede usar un centro de notificaciones. Los centros de notificaciones usan una infraestructura de notificaciones de inserción ampliada al máximo y de compatibilidad con todas las plataformas y reducen considerablemente el código específico de inserción que se ejecuta en el back-end de la aplicación. Los centros de notificaciones aplican todas las funciones de una infraestructura de inserción. Los dispositivos solo se encargan de registrar los identificadores de PNS y el back-end se encarga de enviar mensajes independientes a la plataforma a usuarios o grupos de interés, tal como se muestra en la siguiente ilustración:

Bases de datos centrales de notificaciones

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 los centros de notificaciones.

    • Administración del identificador de dispositivo. Los centros de notificaciones se encargan 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. Disponibles 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 concretos, incluidos todos sus dispositivos; o con grupos más amplios como, por ejemplo, factores de forma independientes (tableta o teléfono).

    • Segmentación: inserción en segmentos complejos definidos por expresiones de etiquetas (por ejemplo, dispositivos de Sevilla que siguen al Betis).

  • 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.

  • 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).

Cómo utilizan los clientes los centros de notificaciones

Tutoriales y guías sobre los centros de notificaciones

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

Mostrar: