Todos nosotros disfrutamos, hoy, de las ventajas de las notificaciones push y nuestras aplicaciones. Y, no sé vosotros, pero yo jamás me pregunté cómo funcionarían estas notificaciones hasta que no me tocó estudiarlo en una asignatura de la carrera.
Y, si os soy sincero, el funcionamiento es tan obvio que jamás se me habría pasado por la cabeza. ¿Os parece que veamos cómo funcionan las notificaciones push?
¿Qué son las notificaciones push?
Una notificación push es, básicamente, un mensaje enviado por un servidor a un cliente que está "suscrito" a sus notificaciones. Es imperativo que exista un servidor.
Existen muchos tipos de arquitecturas de sistema; distinguiendo dos ejemplos que son casi opuestos, arquitecturas cliente-servidor y arquitecturas P2P. Las comunicaciones push, según su definición, únicamente son posibles en entornos cliente-servidor, en los que uno o muchos clientes se suscriben a un topic concreto de los ofrecidos por el servidor.
Push versus pull
Debemos distinguir, primero, dos términos: transacciones push y transacciones pull. Hay una diferencia fundamental entre ambas, y tiene que ver con quién es el que inicia la comunicación en arquitecturas publisher-suscriber (esto es, arquitecturas en la que los clientes se suscriben a las actualizaciones de un publicador, al menos a uno de los temas que tenga disponibles).
En transacciones push es el servidor quien inicia la transacción. Un ejemplo de esto es cuando disponemos de push mail, es decir, cuando somos notificados de nuevos correos electrónicos en el momento de recibirlos, y no tras una comprobación periódica por parte del cliente. Es el servidor quien envía un mensaje al cliente para avisarle de que hay nuevos e-mails.
Por el contrario, en transacciones pull la transacción es iniciada por el cliente. Sería el caso de que realizáramos una sincronización manual con nuestro servidor de correo electrónico, en lugar de esperar al mensaje del servidor. También sería el caso, por ejemplo, de simplemente visitar una página Web.
¿Cómo funciona la tecnología push?
La tecnología push, a nivel de infraestructura, puede implementarse en prácticamente todos los servidores. ¿Cómo funcionan este tipo de mensajes? Hay varias opciones.
Por una parte, el servidor mantiene la conexión abierta, de manera que tan pronto el servidor reciba un determinado evento, puede enviar la información correspondiente al cliente. De haberse cerrado la conexión, el servidor necesitaría mantener una cola para enviar la información tan pronto el cliente vuelva a conectarse.
Esta información puede enviarse, por ejemplo, mediante el contenido formateado en HTML y un pequeño script que se encarga de modificar un elemento de la página. Otro ejemplo puede ser enviar la información en formato JSON o XML y que sea un script en el cliente quien se encargue de interpretarla.
Debemos darnos cuenta de que estamos hablando siempre a un nivel muy alto: realmente, en este contexto, nos da igual qué tipo de paquetes se envíen, qué tipo de protocolo se use para realizar la comunicación y qué tipo de red haya por debajo. Únicamente importa que se envíe el mensaje, y que el mensaje se reciba correctamente.
¿Qué sistemas son push?
Algunos de los ejemplos de tecnologías que hacen uso de transacciones push pueden ser:
- IMAP. Las notificaciones push no son parte del estándar original para IMAP, pero sí parte de una extensión descrita en RFC-2177, en el que se describe el comando IDLE, enviado por el servidor para indicar al cliente que hay correo nuevo. Tanto el servidor como el cliente deben tener soporte para este comando.
- De paso, el push mail de BlackBerry, con la peculiaridad en su momento de ser el primer servicio que permitía comunicaciones push para correo electrónico en movilidad.
- La inmensa mayoría de sistemas de mensajería instantánea, como IRC o Messenger. Estos sistemas y protocolos cuentan con soporte para transacciones push. Mejora el rendimiento a la hora de conseguir una comunicación instantánea (o que se acerque a ello): no hay que estar comprobando continuamente si hay novedades. También tienen soporte para push de archivos.
- Los SMS son un ejemplo perfecto de mensaje push.
Además, las plataformas móviles (iOS, Android) suelen disponer de un servicio de push notifications que los desarrolladores pueden utilizar para evitar el coste de desarrollar su propio servidor que envíe mensajes push a los usuarios.
Imagen | Yutaka Tsutano | Cheon Fong Liew
Ver 14 comentarios