¿Qué es Azure Notification Hubs?What is Azure Notification Hubs?

Azure Notification Hubs proporciona un motor de inserción de escalabilidad horizontal y fácil de usar que le permite enviar notificaciones a cualquier plataforma (iOS, Android, Windows, Kindle, Baidu, etc.) desde cualquier back-end (en la nube o 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). Notification Hubs funciona muy bien tanto para escenarios empresariales como de consumidores.Notification Hubs works great for both enterprise and consumer scenarios. Estos son algunos escenarios de ejemplo:Here are a few example scenarios:

  • Enviar notificaciones de noticias de última hora a millones de usuarios con baja latencia.Send breaking news notifications to millions with low latency.
  • Enviar cupones basados en la ubicación a segmentos de usuarios interesados.Send location-based coupons to interested user segments.
  • Enviar notificaciones relacionadas con eventos a usuarios o grupos para aplicaciones de medios, deportivas, de finanzas o de juegos.Send event-related notifications to users or groups for media/sports/finance/gaming applications.
  • Inserte contenido promocional en aplicaciones para ponerse en contacto y comercializar con clientes.Push promotional contents to applications to engage and market to customers.
  • Informar a los usuarios sobre eventos empresariales como, por ejemplo, nuevos mensajes o elementos de trabajo.Notify users of enterprise events like new messages and work items.
  • Enviar códigos para Multi-Factor Authentication.Send codes for multi-factor authentication.

¿Qué son las notificaciones push?What are push notifications?

Las notificaciones push son una forma de comunicación de aplicación a usuario en la que los usuarios de aplicaciones móviles reciben una notificación con determinada información que desean, por lo general, en un cuadro de diálogo o una ventana emergente en un dispositivo móvil.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. Normalmente, los usuarios eligen ver o descartar el mensaje; si eligen lo primero, se abrirá la aplicación móvil que les ha comunicado la notificación.Users generally choose to view or dismiss the message; choosing the former opens the mobile application that communicated the notification. Algunas notificaciones son silenciosas, es decir, que se entregan en segundo plano para que la aplicación se procese en segundo plano y decida qué hacer.Some notifications are silent - delivered behind the scenes for the app to process behind the scenes and decide what to do.

Las notificaciones push son vitales para las aplicaciones de consumidor, ya que aumentan el uso y la interacción de las aplicaciones, así como para las aplicaciones empresariales, ya que comunican información empresarial actualizada.Push notifications are vital for consumer apps in increasing app engagement and usage, and for enterprise apps in communicating up-to-date business information. Es la mejor forma de comunicación de aplicación a usuario porque ahorra energía para los dispositivos móviles, es flexible para los remitentes de notificaciones y está disponible cuando las aplicaciones correspondientes no están activas.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.

Para obtener más información acerca de las notificaciones push de algunas plataformas populares, consulte los temas siguientes:For more information on push notifications for a few popular platforms, see the following topics:

Funcionamiento de las notificaciones pushHow push notifications work?

Las notificaciones push se entregan a través de unas infraestructuras específicas para la plataforma llamadas Sistemas de notificación de plataforma (PNS).Push notifications are delivered through platform-specific infrastructures called Platform Notification Systems (PNSes). Ofrecen funcionalidades de inserción esenciales para la entrega de un mensaje a un dispositivo con un identificador proporcionado y no tienen ninguna interfaz común.They offer barebone push functionalities to deliver a message to a device with a provided handle, and have no common interface. Para enviar una notificación a todos los clientes en versiones de Android, iOS y Windows de una aplicación, el desarrollador debe trabajar con Apple Push Notification Service (APNS), Firebase Cloud Messaging (FCM) y el Servicio de notificaciones de Windows (WNS) por separado.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.

A continuación se muestra cómo funciona la inserción, a nivel general:At a high level, here is how push works:

  1. Una aplicación decide que desea recibir una notificación, por lo que se pone en contacto con PNS para la plataforma de destino donde la aplicación se está ejecutando y solicita un identificador de inserción único y temporal.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. El tipo de identificador depende del sistema (por ejemplo, WNS usa URI, mientras que APNS usa tokens).The handle type depends on the system (for example, WNS uses URIs while APNS uses tokens).
  2. La aplicación cliente almacena este identificador en el back-end o el proveedor de la aplicación.The client app stores this handle in the app backend or provider.
  3. Para enviar una notificación push, el back-end de la aplicación se pone en contacto con el PNS a través del identificador para dirigirse a una aplicación cliente específica.To send a push notification, the app backend contacts the PNS using the handle to target a specific client app.
  4. El PNS reenvía la notificación al dispositivo que especifica el identificador.The PNS forwards the notification to the device specified by the handle.

Flujo de trabajo de las notificaciones push

Los desafíos de las notificaciones pushThe challenges of push notifications

Los PNS son potentes.PNSes are powerful. No obstante, exigen mucho trabajo al desarrollador de aplicaciones para poder implementar incluso escenarios comunes de notificaciones push, como la difusión de notificaciones push a usuarios 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.

Las notificaciones push requieren una infraestructura compleja que no esté relacionada con la lógica de negocios principal de la aplicación.Pushing notifications requires complex infrastructure that is unrelated to the application's main business logic. Algunos de los desafíos que presenta la infraestructura son:Some of the infrastructural challenges are:

  • Dependencia de la plataformaPlatform dependency
    • El back-end requiere una lógica, dependiente de la plataforma, compleja y difícil de mantener para enviar notificaciones a dispositivos de distintas plataformas, ya que los PNS no están 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
    • Según las directrices de PNS, se deben actualizar los tokens de dispositivo cada vez que se inicia la aplicación.Per PNS guidelines, device tokens must be refreshed upon every app launch. El back-end trata con una gran cantidad de tráfico y acceso de bases de datos solo para mantener actualizados los tokens.The backend deals with a large amount of traffic and database access just to keep the tokens up-to-date. Cuando el número de dispositivos aumenta a centenares, millares o millones, la creación y el mantenimiento de esta infraestructura supone un costo enorme.When the number of devices grows to hundreds, thousands, or millions, the cost of creating and maintaining this infrastructure is massive.
    • La mayoría de los PNS no son compatibles con la difusión a varios dispositivos.Most PNSes do not support broadcast to multiple devices. Una simple difusión a un millón de dispositivos genera un millón de llamadas a los PNS.A simple broadcast to a million devices results in a million calls to the PNSes. El escalado de esta cantidad de tráfico con una latencia mínima no es algo trivial.Scaling this amount of traffic with minimal latency is nontrivial.
  • EnrutamientoRouting
    • Aunque los PNS proporcionan una manera de enviar mensajes a dispositivos, la mayoría de las notificaciones de aplicaciones se dirigen a usuarios o grupos de interés.Though PNSes provide a way to send messages to devices, most apps notifications are targeted at users or interest groups. El back-end debe mantener un registro para asociar dispositivos a grupos de interés, usuarios, propiedades, etc. Esta sobrecarga se agrega al tiempo de comercialización total y a los costos de mantenimiento de una aplicación.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.

Motivos para usar Azure Notification HubsWhy use Azure Notification Hubs?

Notification Hubs elimina todas las complejidades asociadas a la inserción de notificaciones por su cuenta desde el back-end de su aplicación.Notification Hubs eliminates all complexities associated with pushing notifications on your own from your app backend. Su infraestructura de notificaciones push multiplataforma y escalada horizontalmente reduce la codificación relativa a la inserción y simplifica el back-end.Its multi-platform, scaled-out push notification infrastructure reduces push-related coding and simplifies your backend. Con Notification Hubs, los dispositivos solo son responsables de registrar identificadores de PNS con un centro, mientras que el back-end envía mensajes a usuarios o grupos de interés, tal como se muestra en la ilustración siguiente: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 de Notification Hubs

Notification Hubs es un motor de inserción listo para usar que presenta las siguientes ventajas:Notification hubs is your ready-to-use push engine with the following advantages:

  • MultiplataformaCross platforms
    • Compatibilidad para las principales plataformas push incluidos iOS, Android, Windows, Kindle y Baidu.Support for all major push platforms including iOS, Android, Windows, and Kindle and Baidu.
    • Una interfaz común para insertar en todas las plataformas en formatos específicos de la plataforma o independientes de esta sin ningún tipo de trabajo específico de la plataforma.A common interface to push to all platforms in platform-specific or platform-independent formats with no platform-specific work.
    • Administración de controladores de dispositivos en un único lugar.Device handle management in one place.
  • Back-ends cruzadosCross backends
    • En la nube o localCloud or on-premises
    • .NET, Node.js, Java, etc..NET, Node.js, Java, etc.
  • Conjunto completo de patrones de entregaRich set of delivery patterns
    • Difusión para una o varias plataformas: puede difundir al instante a millones de dispositivos entre plataformas con una sola llamada API.Broadcast to one or multiple platforms: You can instantly broadcast to millions of devices across platforms with a single API call.
    • Inserción en dispositivo: puede destinar las notificaciones a dispositivos individuales.Push to device: You can target notifications to individual devices.
    • Inserción en usuario: las características de etiquetas y plantillas le ayudan a llegar a todos los dispositivos multiplataforma de un usuario.Push to user: Tags and templates features help you reach all cross-platform devices of a user.
    • Inserción en segmento con etiquetas dinámicas: las características de etiquetas le ayudan a segmentar dispositivos e insertar en ellos en función de sus necesidades, tanto si va a enviar a un segmento como si lo envía a una expresión de segmentos (por ejemplo: AND activo reside en Seattle NO es un usuario nuevo).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). En lugar de limitarse a la publicación-suscripción, puede actualizar las etiquetas de dispositivo en cualquier lugar y en cualquier momento.Instead of being restricted to pub-sub, you can update device tags anywhere and anytime.
    • Inserción localizada: la característica de plantillas le ayuda a obtener la localización sin alterar el código de back-end.Localized push: Templates feature helps achieve localization without affecting backend code.
    • Inserción silenciosa: puede habilitar el modelo de inserción a extracción enviando notificaciones silenciosas a dispositivos y desencadenándolos para que realicen ciertas extracciones o acciones.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.
    • Inserción programada: puede programar el envío de notificaciones en cualquier momento.Scheduled push: You can schedule to send out notifications anytime.
    • Inserción directa: puede omitir el registro de dispositivos con el servicio Notification Hubs y procesar por lotes directamente las inserciones a una lista de identificadores de dispositivo.Direct push: You can skip registering devices with the Notification Hubs service and directly batch push to a list of device handles.
    • Inserción personalizada: las variables de inserción de dispositivo le ayudan a enviar notificaciones push personalizadas específicas de dispositivo con pares de clave-valor personalizados.Personalized push: Device push variables helps you send device-specific personalized push notifications with customized key-value pairs.
  • Telemetría enriquecidaRich telemetry
    • La telemetría de inserción general, dispositivo, error y operación está disponible en Azure Portal y mediante programación.General push, device, error, and operation telemetry are available in the Azure portal and programmatically.
    • La telemetría por mensaje realiza el seguimiento de cada inserción desde la llamada de la solicitud inicial al servicio Notification Hubs, procesando por lotes correctamente el envío de las inserciones.Per Message Telemetry tracks each push from your initial request call to the Notification Hubs service successfully batching the pushes out.
    • Platform Notification System Feedback (Comentarios del Sistema de notificación de plataforma) comunica todos los comentarios de los Sistemas de notificación de plataforma para ayudar en la depuración.Platform Notification System Feedback communicates all feedback from Platform Notification Systems to assist in debugging.
  • EscalabilidadScalability
    • Envíe mensajes rápidos a millones de dispositivos sin tener que volver a diseñar la arquitectura ni realizar el particionamiento del dispositivo.Send fast messages to millions of devices without rearchitecting or device sharding.
  • SeguridadSecurity
    • Firma de acceso compartido (SAS) o autenticación federada.Shared Access Secret (SAS) or federated authentication.

Pasos siguientesNext steps

Conozca la información para la creación y el uso de un centro de notificaciones en Tutorial: Envío de notificaciones push a aplicaciones móviles.Get started with creating and using a notification hub by following the Tutorial: Push notifications to mobile applications.