WebpushEdit

La propuesta Webpush del grupo de trabajo de ingeniería de Internet es un protocolo simple que utiliza la versión 2 de HTTP para entregar eventos en tiempo real, como llamadas entrantes o mensajes, que se pueden entregar (o «enviar») de manera oportuna. El protocolo consolida todos los eventos en tiempo real en una sola sesión, lo que garantiza un uso más eficiente de los recursos de red y radio. Un único servicio consolida todos los eventos, distribuyéndolos a las aplicaciones a medida que llegan. Esto requiere solo una sesión, evitando los gastos generales duplicados.,

Las notificaciones Web forman parte del estándar W3C y definen una API para las notificaciones de usuario final. Una notificación permite alertar al usuario fuera del contexto de una página web de una ocurrencia, como la entrega de correo electrónico. Como parte de esta API Push estándar definida por W3C, ahora está siendo implementado por Chrome, Firefox, Edge y Safari.

HTTP server pushEdit

HTTP server push (también conocido como HTTP streaming) es un mecanismo para enviar datos no solicitados (asincrónicos) desde un servidor web a un navegador web. HTTP Server push se puede lograr a través de varios mecanismos.,

como parte de HTML5, la API WebSocket permite que un servidor web y un cliente se comuniquen a través de una conexión TCP full-duplex.

generalmente, el servidor web no termina una conexión después de que los datos de respuesta se hayan enviado a un cliente. El servidor web deja la conexión abierta de modo que si ocurre un evento (por ejemplo, un cambio en los datos internos que necesita ser reportado a uno o varios clientes), puede ser enviado inmediatamente; de lo contrario, el evento tendría que ser puesto en cola hasta que se reciba la siguiente solicitud del cliente. La mayoría de los servidores web ofrecen esta funcionalidad a través de CGI (p. ej.,, Scripts de encabezados no analizados en el Servidor HTTP Apache). El mecanismo subyacente para este enfoque es la codificación de transferencia fragmentada.

otro mecanismo está relacionado con un tipo MIME especial llamado multipart/x-mixed-replace, que fue introducido por Netscape en 1995. Los navegadores web interpretan esto como un documento que cambia cada vez que el servidor envía una nueva versión al cliente. Todavía es compatible con Firefox, Opera y Safari hoy en día, pero es ignorado por Internet Explorer y solo es parcialmente compatible con Google Chrome., Se puede aplicar a documentos HTML, y también para la transmisión de imágenes en aplicaciones de cámara web.

la propuesta WHATWG Web Applications 1.0 incluye un mecanismo para enviar contenido al cliente. El 1 de septiembre de 2006, el navegador web Opera implementó este nuevo sistema experimental en una función llamada «eventos enviados por el servidor». Ahora se está estandarizando como parte de HTML5.

PushletEdit

en esta técnica, el servidor aprovecha las conexiones HTTP persistentes, dejando la respuesta perpetuamente «abierta» (i. e.,, el servidor nunca termina la respuesta), engañando efectivamente al navegador para que permanezca en modo de «carga» después de que la carga inicial de la página se pueda considerar completa. El servidor envía periódicamente fragmentos de JavaScript para actualizar el contenido de la página, logrando así la capacidad de inserción. Al usar esta técnica, el cliente no necesita applets Java u otros plug-ins para mantener una conexión abierta con el servidor; el cliente es notificado automáticamente sobre nuevos eventos, empujados por el servidor., Un grave inconveniente de este método, sin embargo, es la falta de control que tiene el servidor sobre el tiempo de espera del navegador; una actualización de página siempre es necesaria si se produce un tiempo de espera en el extremo del navegador.

long pollingEdit

Long polling no es en sí mismo un push verdadero; long polling es una variación de la técnica de sondeo tradicional, pero permite emular un mecanismo de push en circunstancias donde un push real no es posible, como sitios con políticas de seguridad que requieren el rechazo de solicitudes HTTP / s entrantes.,

con el sondeo largo, el cliente solicita información del servidor exactamente como en el sondeo normal, pero con la expectativa de que el servidor puede no responder inmediatamente. Si el servidor no tiene nueva información para el cliente cuando se recibe la encuesta, en lugar de enviar una respuesta vacía, el servidor mantiene la solicitud abierta y espera que la información de respuesta esté disponible. Una vez que tiene nueva información, el servidor envía inmediatamente una respuesta HTTP/s al cliente, completando la solicitud HTTP/S abierta., Al recibir la respuesta del servidor, el cliente a menudo emite inmediatamente otra solicitud del servidor. De esta manera se elimina la latencia de respuesta habitual (el tiempo entre el momento en que la información está disponible por primera vez en la siguiente solicitud del cliente) que de otra manera se asocia con los clientes de sondeo.

por ejemplo, BOSH es una técnica HTTP popular y de larga duración utilizada como una alternativa de sondeo prolongado a una conexión TCP continua cuando dicha conexión es difícil o imposible de emplear directamente (p. ej.,, en un navegador web); también es una tecnología subyacente en el XMPP, que Apple utiliza para su soporte push iCloud.

Flash XMLSocket relaysEdit

esta técnica, utilizada por aplicaciones de chat, hace uso del objeto XMLSocket en una película de Adobe Flash de un solo píxel. Bajo el control de JavaScript, el cliente establece una conexión TCP a un relé unidireccional en el servidor. El servidor de retransmisión no lee nada de este socket; en su lugar envía inmediatamente al cliente un identificador único. A continuación, el cliente realiza una solicitud HTTP al servidor web, incluyendo con él este identificador., La aplicación web puede enviar mensajes dirigidos al cliente a una interfaz local del servidor de Retransmisión, que los transmite a través de la toma Flash. La ventaja de este enfoque es que aprecia la asimetría natural de lectura y escritura que es típica de muchas aplicaciones web, incluido el chat, y como consecuencia ofrece una alta eficiencia. Dado que no acepta datos en sockets salientes, el servidor de relé no necesita sondear las conexiones TCP salientes en absoluto, lo que hace posible mantener abiertas decenas de miles de conexiones simultáneas., En este modelo, el límite de escala es la pila TCP del sistema operativo del servidor subyacente.

entrega de datos de grupo confiable (RGDD)editar

en servicios como la computación en la nube, para aumentar la confiabilidad y la disponibilidad de los datos, generalmente se envía (replica) a varias máquinas. Por ejemplo, el sistema de archivos distribuidos de Hadoop (HDFS) realiza 2 copias adicionales de cualquier objeto almacenado. RGDD se enfoca en enviar eficientemente un objeto de una ubicación a muchas mientras ahorra ancho de banda enviando un número mínimo de copias (solo una en el mejor de los casos) del objeto a través de cualquier enlace a través de la red., Por ejemplo, Datacast es un esquema para la entrega a muchos nodos dentro de centros de datos que se basa en topologías regulares y estructuradas y DCCast es un enfoque similar para la entrega a través de centros de datos.

Push notificationEdit

una notificación push es un mensaje que se «empuja» desde el servidor backend o la aplicación a la interfaz de usuario, por ejemplo, (pero no limitado a) aplicaciones móviles y aplicaciones de escritorio. Las notificaciones Push fueron introducidas por primera vez por Apple en 2009.In 2010 Google lanzó su propio servicio, Google Cloud to Device Messaging., (Desde entonces ha sido reemplazado por Google Cloud Messaging y luego Firebase Cloud Messaging.En noviembre de 2015, Microsoft anunció que el servicio de notificación de Windows se ampliaría para hacer uso de la arquitectura de Plataforma Universal de Windows, lo que permite enviar datos push a Windows 10, Windows 10 Mobile, Xbox, así como otras plataformas compatibles que utilizan llamadas API universales y solicitudes POST.

Las notificaciones Push se dividen principalmente en 2 enfoques, notificaciones locales y notificaciones remotas., Para las notificaciones locales, la aplicación programa la notificación con el sistema operativo del dispositivo local o, alternativamente, establece como temporizador en la propia aplicación si puede ejecutarse continuamente en segundo plano. Cuando se alcanza la hora programada del evento, o se cumple la condición programada del evento, el mensaje se muestra en la interfaz de usuario de la aplicación.

Las notificaciones remotas son manejadas por un servidor remoto. En este escenario, la aplicación cliente debe registrarse en el servidor con una clave única (por ejemplo, un UUID)., Luego, el servidor dispara el mensaje contra la clave única para entregar el mensaje a la aplicación cliente a través de un protocolo Cliente/Servidor acordado, como HTTP o XMPP, y el cliente muestra el mensaje recibido. Cuando llega la notificación push, puede transmitir notificaciones y mensajes cortos, establecer insignias en los iconos de la aplicación, parpadear o iluminar continuamente el LED de notificación o reproducir sonidos de alerta para atraer la atención del usuario. Las aplicaciones suelen utilizar las notificaciones Push para llamar la atención de los usuarios., El contenido de los mensajes se puede clasificar en las siguientes categorías de ejemplo:

  • mensajes de Chat, por ejemplo: mensajes de Facebook messenger enviados por otros usuarios.
  • ofertas especiales de proveedores, por ejemplo: un proveedor puede querer anunciar sus ofertas sociales a los clientes.
  • recordatorio de evento, por ejemplo: alguna aplicación puede permitir al cliente crear un recordatorio o alerta para un momento específico.
  • Cambios de temas suscritos, por ejemplo: los usuarios pueden querer obtener actualizaciones sobre el clima en su ubicación, o monitorear una página web para rastrear los cambios, por ejemplo.,

Las notificaciones push en tiempo Real pueden plantear problemas de privacidad, ya que se pueden usar para vincular identidades virtuales de seudónimos de redes sociales a las identidades reales de los propietarios de teléfonos inteligentes.