Dopo gli accordi che Google sta ponendo in essere con i principali social network per l’indicizzazione in tempo reale dei contenuti prodotti dagli utenti, il colosso di Mountain View ha recentemente presentato “PubSubHubbub“. Dietro all’improbabile nome del progetto c’è un protocollo aperto che consentirà a coloro che creano contenuti, sia a livello amatoriale che professionale, di ottenere un’immediata indicizzazione degli stessi sul motore di ricerca.
Con il nuovo meccanismo non sono più i “lettori” o, ad esempio, un normale motore di ricerca a verificare – connettendosi al sito web dell'”editore” – se siano presenti nuovi contenuti. Sarà invece proprio l’editore ad informare i suoi “abbonati” circa la disponibilità di nuovo materiale. “PubSubHubbub” (si legge pab sab hàb bab) basa il suo funzionamento sulla un “hub” che funge da “assistente” dell’editore.
Brad Fitzpatrick riassume le modalità con cui opera PubSubHubbub con un semplice esempio. Si immagini di partire per un lungo viaggio con la propria macchina. Durante il tragitto, ad intervalli regolari e con insistenza, le persone accomodatesi sui sediti posteriori ripetono: “siamo già arrivati? Siamo già arrivati?”. E’ un po' ciò che accade sul web quando si ha a che fare con i feed RSS/Atom. Il server che distribuisce i feed continua a ricevere continue richieste simili a quelle dei viaggiatori: “c’è qualcosa di nuovo? C’è qualche nuovo contenuto?”. Questo modo di procedere è chiamato “pulling” e sebbene funzioni, si rivela lento ed inefficiente.
L’alternativa è chiamata “push”: in questo caso sono gli editori, i produttori dei contenuti che informano gli interessati allorquando venga pubblicato materiale “inedito”.
Si pensi ad un piccolo blog che distribuisca i propri contenuti attraverso un feed Atom. Per usare PubSubHubbub, l’editore deve solo inserire una tag aggiuntiva all’interno del feed. Essa indica che l’aggiornamento avverrà in tempo reale appoggiandosi ad un “hub”. Si pensi ad un’applicazione web che instauri una connessione, ricorrendo ad Ajax, con il server web: caricando un aggiornamento sul blog, l’altra applicazione web lo riceverà in modo pressoché istantaneo.
Le due entità sono completamente separate tra di loro e sono in grado di comunicare, appunto, attraverso un “hub”. Quest’ultimo è una sorta di assistente che fa tutto “il lavoro sporco”: l'”hub” si incarica, in base alle direttive dell’editore, di informare i lettori circa la disponibilità dei nuovi contenuti.
Come spiega Fitzpatrick già molti CMS sono compatibili con PubSubHubbub consentendo da subito la diffusione immediata dei contenuti, appena questi vengono pubblicati sul web.
Gli autori del progetto desiderano far notare come il protocollo sia “libero” e decentralizzato. “Non c’è nessuna azienda al centro che possa controllarne il funzionamento operativo”.
L’editore dovrà solamente inserire una tag <link rel="hub" ...>
nel file Atom o RSS XML. Tale tag deve contenere il riferimento all’hub od agli hub da impiegare: l’hub può essere gestito dall’editore stesso od un hub remoto, comune, che chiunque può usare. L'”abbonato” recupererà il feed, come al solito, solo la prima volta. Se nel file del feed è definito l’uso dell’hub, l’abbonato può evitare di inviare nuove richieste verso il server dell’editore mettendosi invece in comunicazione, successivamente, con l’hub per ottenere aggiornamenti istantanei.