Gnip: publish-subscribe sul web
Pubblicato da Andrea Gumina su 21 Gennaio 2009
Gnip è un servizio di publish-subscribe sul web: raccoglie e riespone dati (eventi, attività, ecc.) tramite API.
Le sue API sono sufficientemente REST: i verbi (GET, POST, PUT, DELETE e HEAD) seguono la semantica imposta dalle specifiche HTTP, il payload è XML, il content-type conguo (application/xml) e le risorse identificate da URI.
Chi intende pubblicare o prelevare eventi, attività, ecc. su Gnip, lo fa quindi invocando API, ma Gnip, in più, consegna dati “a domicilio”: contatta eventualmente la URL comunicata ed esposta da chi sottoscrive.
Gnip, stranamente, non adotta Atom: i dati ritornati, infatti, sono strutturati secondo un formato proprietario che contiene – compresso e codificato base64 – l’originale struttura dati (così come ricevuta da chi la pubblica). Ancora più strano, non annovera XMPP (Extensible Messaging and Presence Protocol): semplicemente ancora troppo poco diffuso per essere considerato (questa la risposta sulla FAQ).
Il beneficio di Gnip è nel risparmio di risorse conseguente all’abbandono del modello polling a favore del pushing: chi pubblica, infatti, invoca Gnip solo se ha dati da comunicare, chi sottoscrive – se decide di essere invocato – li riceve solo quando Gnip li possiede (e comunque può imporre filtri per prelevare/ricevere i soli cui è interessato).
Dal blog degli autori si apprende la semplice ma efficace architettura di Gnip: la mancanza di un DBMS – rimpiazzato da file-system (Amazon S3) e cache distribuita (Terracotta) – e l’esecuzione delle trasformazioni subito dopo l’ingresso dei dati – non prima della loro uscita.
—-><—-
Hai trovato questo post interessante? Segui il feed e commenta!
