Últimamente no paramos de ver noticias sobre esa gran novedad llamada “Tiempo real”. Twitter es uno de los servicios que más lo está aprovechando con su API User Streams, aunque también lo tenemos en cosas tan cotidianas como el RSS con el impronunciable PubSubHubBub o el correo con las notificaciones push.
Sin embargo, uno no puede dejar de pensar que esto no es más que una tontería tecnológica, un capricho de los ingenieros de software para ver hasta dónde pueden llegar. ¿Es una chuchería la web en tiempo real, o puede resultar útil para los usuarios?
¿Qué es y cómo funciona el tiempo real?
La web en tiempo real requiere un esfuerzo de ingeniería muy grande. En el modelo tradicional son los clientes los que preguntan al servidor, lo que requiere poco trabajo por parte de éste. Las peticiones llegan y el servidor responde. Fácil y sencillo. El servidor no procesa más datos de los necesarios para dar la información que piden los clientes.
Cuando pasamos al modelo del tiempo real, las cosas cambian. Ahora el servidor tiene que preocuparse de dar la información a los clientes cuando ésta se genera. Para ello necesita un registro de clientes que tienen que recibir esa información, así que no sólo tiene que procesar los datos relativos a la información que va a dar sino que además tiene que preocuparse de decidir con quién conectar y cuándo hacerlo. No sólo eso, también tiene que gestionar las conexiones y desconexiones del sistema. Es decir, un método mucho más complejo que el tradicional.
¿Qué ventajas proporciona?

Con toda esa complejidad del tiempo real, alguna ventaja tenía que darnos. La primera es para los servidores. En la web tradicional, si de repente los 200.000 clientes de un servicio deciden hacer una petición todos a la vez, el servidor puede decir “hasta aquí hemos llegado” y bloquearse por saturación. Sin embargo, si son los servidores los que gestionan las conexiones estas situaciones no pueden ocurrir: el servidor distribuye de forma normal las conexiones de forma que no haya problemas de saturación, y evitando los DDoS involuntarios.
La siguiente ventaja es bastante obvia: la instantaneidad de la información. Cuando son las aplicaciones las que tienen que preguntar al servidor, normalmente lo hacen a intervalos. Si vamos encadenando varias aplicaciones (por ejemplo, si lees Genbeta desde Twitter, primero tienes que esperar a que el post llegue al RSS, que Twitterfeed lo mande a Twitter y que tu cliente lea el tweet), los intervalos se acumulan y podemos tener retardos bastante grandes. Con la web en tiempo real, estos intervalos desaparecen y la información llega con un retraso mínimo.
Otra ventaja es que genera menos tráfico de red. Si tu cliente de correo chequea cada cinco minutos si tienes mensajes nuevos, cada cinco minutos va a estar generando tráfico hayan o no hayan mensajes nuevos. Es decir, que estará creando bastante tráfico inútil. Sin embargo, si es el servidor el que avisa al cliente, sólo se produce tráfico cuando hay correo nuevo. Es decir, el tráfico generado es siempre tráfico útil.
Para un solo usuario puede resultar insignificante, pero si juntamos todo el tráfico inútil que se produce cada hora podemos tener una cantidad muy considerable de datos.
¿Y qué desventajas tiene la web en tiempo real?
La primera, como he comentado arriba, es la complejidad y la dificultad que conlleva hacer un sistema en tiempo real. Hay que exprimir los paquetes al máximo para quitar lo irrelevante y minimizar el tráfico que genera el servidor. Hay que preparar los clientes para que reciban señales del servidor y las procesen correctamente. Hay que programar el servidor para que gestione correctamente todas las conexiones, y para que decida a quién avisar y a quién no. Para el desarrollador del sistema es muchísimo más sencillo hacerlo sin tiempo real.

La segunda es el riesgo de infoxicación o sobrecarga de información. Si nos están llegando novedades continuamente en tiempo real podemos acabar completamente saturados: aunque veamos todo lo que nos llega no nos enteramos de nada o bien no filtramos lo que es de verdad importante, y acabamos desechando todo y esa fuente de información se vuelve inútil.
Otro riesgo, aunque bastante más personal, es la distracción. Si tenemos avisos saltando continuamente es más difícil centrarse en una tarea, lo que nos hace tener rendimiento muy bajo. Aunque esto ya pasa con los programas tradicionales y los intervalos de actualización, con programas en tiempo real se vería muy acrecentado. Por suerte, esto tiene una fácil y sencilla solución: el botón de salir.
Entonces, ¿es de verdad útil este “invento”?
Para mí, sí lo es. La razón principal no es la inmediatez, sino las mejoras en rendimiento. Los servidores, aunque se tienen que encargar de gestionar los avisos a clientes, se ahorran los DDoS involuntarios por demasiados clientes conectándose a la vez. El tráfico de red disminuye, algo bastante conveniente con las actuales tarifas para móviles, y las aplicaciones sólo consumen CPU (y por ende la batería) cuando es realmente necesario, y no cada X minutos de forma fija.
Como veis, el tiempo real es sobre todo útil para dispositivos móviles como los tablets y smartphones, donde nos preocupamos más por la batería y los datos que en los ordenadores de escritorio, donde las mejoras no son tan apreciables.
Es cierto que el tiempo real es en parte una chuchería creada por los ingenieros para ver hasta donde puede llegar la tecnología, pero eso no quita que no nos pueda resultar útil. Podemos encontrar ejemplos de aplicaciones que hacen uso del tiempo real y que son bastante útiles.
El agonizante Google Wave, que permite la edición de “olas” a la vez con varios colaboradores, es un ejemplo. En Wave no era el cliente (el navegador) quien se encargaba de descargar los nuevos cambios, sino que el servidor mandaba directamente las ediciones a los clientes. Si no fuese en tiempo real, la “ola” cambiaría a intervalos fijos, lo que sería muy ineficiente e incómodo.

Otro ejemplo son las notificaciones push, que funcionan en BlackBerry, iOS y Android, y que permiten que el cliente se despreocupe de preguntar si hay correo nuevo (por ejemplo) para que sea el servidor quien avise de forma instantánea.
Con esta entrada he pretendido aclarar un poco cómo funciona la web en tiempo real, y qué ventajas e inconvenientes tiene. Si tenéis algo que añadir o corregir, no dudéis ni un momento en usar los comentarios para hacerlo.
Imagen | Body Bytes | Erik Pitty
Ver 19 comentarios
19 comentarios
frmartinez
Que se esté usando mal el tiempo real no implica que su potencial no sea inmenso.
Además, analizamos el tiempo real en relación al uso en "ocio" (redes sociales, correos electrónicos...) pero, ¿porqué no hacerlo en términos empresariales? ¿Se ha pensado en la potencial mejora, por ejemplo, de procesos administrativos, de trabajo colaborativo, de dinámicas de equipo...? Las soluciones en tiempo real son incontables y de una eficiencia creciente para la dimensión privada.
El tiempo real es siempre positivo. ¿Que lo usamos mal? Aprenderemos. ¿Que lo podemos usar mejor? Mejoraremos. ¿Que ahora lo dedicamos principalmente al ocio, porque también es la actividad que da un mayor retorno a las compañías tecnológicas en el corto plazo? Lo extenderemos a otras actividades en muy poco tiempo. Dudar de el es ponerle verjas al campo. No nos limitemos. Soñemos. El futuro está aquí.
jurrabi1
El tiempo real NUNCA "es un capricho de los Ingenieros de software". Muy al contrario es un capricho de los usuarios que se convierte en la pesadilla de los ingenieros.
Y no es nuevo. Hace más de 8 años que tenía que soportar como muchos ejecutivos de perifollo basaban casi exclusivamente su decisión de usar Blackberry porque los mensajes de correo les llegaban al instante...
Es evidente que Internet (tras el teléfono) es el medio que nos mete la inmediatez en la cabeza. Hace años mandábamos una carta o, si teníamos mucha prisa, un telegrama... Hoy todo tiene que ser ya.
Los ingenieros sólo nos dejamos llevar, o mejor dicho... somos empujados.
Armando Quintero
Para mí el tiempo Real es muy útil, sobre todo cuando usas Twitter para mirar noticias o quieres buscar en Google lo más comentado del momento.
Sivious
¿Qué? ¿Una chuchería de los ingenieros?
Que twitter o facebook implementen este sistema me la trae al pairo, recibir mensajes tontos de amigos 5 minutos antes que despues es lo mismo. Pero que un servidor de monitorización de centrales electricas funcione con este sistema ya no me parece tan trivial.
Como siempre, todo depende del uso que se le de, pero una tecnología nueva nunca es una "chuminada" tecnologica y menos cuando todavía se está empezando a implmentar.
duskwalker
Chuminada, pues no se, depende. A mi el RSS que lo recibas inmediatamente no me parece una chuminada, hay gente, me incluyo, que le gusta recibir e los blogs, periodicos, o páginas web los artículos al momento, y no ir al sitio. La notificación de cuando te llega un correo tampoco es una tontería, si tuvieses que estar dándole al botón de recibir todo el rato a estas alturas de la película, seria decepcionante. Lo de los servidores es obligado, no podemos estar colapsando los servidores por que no incorporen esos sistemas. Otras cosas depende ya he dicho, del uso que le des. Otras como Google Instant: Si, señores de google, muy bonito, ¿pero para que sirve?(aparte de para ahorrar un segundo, que no me lo creo y que no es gran cosa, por busqueda) eso es una sobrada, por que podrian estar dedicando más tiempo a proyectos que realmente necesitan más tiempo.
joven depresivo
Pues en ese sentido se ha inventado el Google Instant que a mí no me ha llegado a convencer.
Antonio Bueno
Estoy totalmente de acuerdo, apenas llevo 6 meses descubriendo las maravillada qur puede hacer un smartphone y principalmente me preocupa el consumo (batería y datos).
Pol
Yo creo que dependerá del servicio y de lo persistentes que sean los datos. UN servicio de geoposicionamiento o de cotizaciones en bolsa tiene sentido que sea en tiempo real pero un blog de recetas de cocina dudo que sea interesante ver en el momento que se ha publicado algo. Creo que esta muy relacionado a lo "social" que a otra cosa.
Otra cosa, las búsquedas como las de instant no significan que los resultados estén actualizados a tiempo real, sino que se mostrarán mientras escribes. Son dos cosas distintas.
65114
Esto ni es ni tiene nada que ver con el "Tiempo Real", es una pena como se roban los términos por marketing o desconocimiento. Podría decirse que un sistema en Tiempo Real es aquel que distribuye su capacidad de proceso de una forma "conocida" de modo que es posible saber cuanto consume y cuando va a finalizar cada tarea, evitando retardos y esperas no programadas. Todos los datos están donde deberían estar en el momento en el que se espera que estén.
Este tiempito real del que se habla ahora tiene ya un termino acuñado "Right Time" algo así como "Tiempo adecuado" y esta relacionado con temas de experiencia de usuario. Que la experiencia del usuario sea lo mas cercana a la inmediatez que sea posible. Importante sin duda. Pero nada que ver con el Real Time, el Real time no admite condicionales.
Darkanima
Yo estudie una nueva tecnología en la red sobre esto el año pasado, seria un cambio completo sobre TCP/IP. Este se desarolla sobre un paradigma publicador-subscriptor. Lo malo es que aun no está desarrollado del todo y sería necesario un gran cambio en los protocolos, y lo bueno es que puede convivir sobre TCP/IP siendo menos eficiente, por lo que la transición sería sencilla. Teneis información sobre ello en la web de psirp.
conessatti
¿Alguien sabe si el protocolo IMAP del e-mail tiene algo que ver con ésto? Es decir, es instantáneo, por tanto supongo que es el servidor el que gestiona la conexión y envía el dato al cliente... ¿o no?
chelo703
me gustaria el Google Earth en tiempo real, aunque se que no se puede porque viola la privacidad de las personas, pero me gustaria solo verlo funcionar, como las busquedas satelitales en el cine, se que esta tecnologia existe pero solo para las agencias de seguridad.