Existe una posible clasificación de las páginas web:
- Las que generan información. Pueden tener una tematica más o menos definida, pero el contenido exacto de cada noticia o información no se sabe hasta que no se publica. Esta publicación puede ser «síncrona» o «asíncrona» es decir, publicarse de forma regular en el tiempo o cuando le da la gana a los mantenedores. Las web de noticias como libertonia, weblogs y otras están en esta categoría.
- Las que tienen información a consultar. Solo visitamos dichas páginas cuando necesitamos una información y sabemos que la vamos a encontrar ahí: los buscadores como google o imdb están entre ellas.
- Las páginas de nuestros amigos que las actualizan cuando les da la gana. Con minutos, dias o meses entre cada actualización. Como por ejemplo la mía propia
(Por supuesto estas categorias se solapan en mayor o menor medida).
La idea es buscar un mecanismo para estar al tanto de cuando se producen cambios en los casos 1 y 3 sin tener que hacerlo nosotros manualmente. Aquí entra el «Fabuloso mundo de la sindicación» (los RSS).
(No voy a dar definiciones precisas, porque tampoco son necesarias. Además aunque aquí emplee el término RSS, os comentaré que es uno de los distintos formatos disponibles para la sindicación, otros son RDF, atom y no se que más.)
Visto desde fuera, la sindicación es lo siguiente: Cuando una página web te gusta y ofrece posibilidades de sindicación, tu la activas y cada vez que cambia la página automáticamente te avisan los cambios con un pequeño resumen de dicho cambio. ¡Prueba superada!
Desde dentro la realidad es bien distinta: las páginas que ofrecen sindicación, son aquellas que tienen a disposición de los usuarios de un fichero resumen de si misma (en el formato RSS u otro). Cada vez que se actualiza la página se hace consecuentemente lo mismo con el resumen. Cuando un usuario se sindica lo que hace es suministrar a un programa (el lector de RSS) la dirección de dicho resumen. La misión del lector es cada cierto tiempo bajarse el resumen y compararlo con un resumen previamente bajado. Si existen diferencias se las comunica al usuario.
Se supone que esto anterior lo debe saber todo el mundo que lee libertonia. Quizás el siguiente apartado no lo sepa ya tanta gente:
En la electrónica digital y en la informática existen 2 sistemas de controlar recursos externos (los perifericos): el poll y las interrupciones. En el primer caso, el micro deja de trabajar cada cierto tiempo para preguntar a cada periférico si tiene alguna información nueva que suministrar, espera la respuesta de cada periférico y sigue trabajando con lo suyo. En el segundo caso, el micro trabaja sin parar y cuando un periférico tiene nueva información este manda al micro una petición de interrupción («oye, cuando puedas te paras y miras lo que te tengo»). Este, cuando puede se para y atiende a la petición.
En función de las necesidades y la simplicidad requerida del diseño, se emplea un sistema u otro. El poll es bastante simple de utilizar. Aunque tiene 2 inconvenientes: el micro deja de trabajar para consultar cosas (perdida de potencia) y los buses de comunicaciones se llenan de mensajes del tipo: "¿tienes algo para mí?", "no". El sistema de interrupción en cambio tiene un inconveniente: es más complejo de implementar periféricos inteligentes.
Volvamos al mundo de la sindicación. Como podreis suponer, todo el sistema de la sindicación se efectuan por llamadas tipo poll. Esto significa que estamos bajandonos a nuestro equipo resumenes que en la mayoría de los casos no varía con respecto lo que ya teníamos. Es cierto que los resumenes, como su nombre indica, no pesan tanto como las páginas web completas, pero los lectores comprueban cada muy poco tiempo (30 minutos, 1 hora aprox) si ha habido variación. Con lo cual al cabo del día lo descargado llega a ser superior a visitar la página web.
Hay un segundo aspecto a tener en cuenta. La multiplicidad de usuarios. Si muchos usuarios te sindican, significa que muchos robots van a bombardear el servidor para conseguir el resumen cargando constantemente el equipo. Recientemente he leido (lo siento, no recuerdo el enlace) de una página que retiraba el RSS de su web. Había muerto de éxito. Tenía tantas peticiones de RSS que le hundían el servidor.
No me gusta la sindicación
En general mueve mucha información que no sirve para nada. Sobrecarga innecesariamente al cliente y al servidor. Consume ancho de banda.
Solución, la generación de eventos de cambio de página o fórmulas híbridas.
- Generación de eventos o suscripción. Determinar algún sistema para que la página web pueda emitir un aviso de que ha variado (por correo electrónico y otro sistema a determinar) esto permite la serialización en los avisos: Si una web puede dar 10 páginas por minuto y tiene a 100 personas suscritas, puede avisar a cada persona con 6 segundos de intervalo. Así evita que 100 personas o robots accedan simultáneamente a la página.
- Fórmulas híbridas. Es el sistema que yo empleo en este momento. En vez de tener un lector de RSS particular, me he suscrito a un robot jabber: jabrss@jabber.at Este robot, es un lector RSS que hace las consultas via RSS. Cuando hay variaciones en una de las páginas web, me envia un mensaje y me lo comunica. ¿Cuál es la ventaja respecto al método directo? Si 2 personas que usan el servicio están suscritos a la misma página web no hace falta dos peticiones del RSS. Imaginad el ahorro para 10 o 100 usuarios. Creo que http://www.syndic8.com (no los voy a enlazar porque no se lo merecen B-P ), tambien tiene un servicio similar aunque cobran ¡¡$25!! por la sindicación de una página web durante ¡una semana!
Para terminar, la idea es que hay que intentar ser respetuosos con los servicios que nos ofrecen desde internet para no agotar los recursos de los que los ofrecen gratuitamente. El uso de lectores «comunitarios» frente a los personales, es una buena medida de cortesía.