ITLAB – Laboratorio IT

SOA (Service Oriented Architecture), Web 2.0, Open Source e Java.

  • Feed

    Feed ITLAB

  • Chi sono

    Mi chiamo Andrea Gumina. Sono laureato in Scienze dell'Informazione e lavoro per un'azienda di consulenza IT. Da qualche anno mi occupo di integrazione di sistemi, di SOA (Service Oriented Architecture) da poco meno di tre.

  • Bookmarks

  • Licenza

  • Statistiche

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!

Lascia un commento

XHTML: Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>