17
01
08

Toh, ancora si parla di decentralizzare!

15:20 Technocracy

Twitter non ha retto al peso del Keynote di Jobs dell’altro giorno e inequivocabilmente torna fuori il discorso sulla scalabilità del sistema.
Questa volta però si parla di decentralizzare: “We do need to figure out how to build a Twitter-like system with all the advantages of centralization and none of the disadvantages.”, dice Dave Winer in un post intitolato “A decentralized Twitter?”.

A parte che a me viene in mente una prima risposta: IRC. Ma so bene che non è esattamente valida come alternativa, neppure tecnologicamente. I netsplit non erano cosa rara e un sistema non può ammettere l’esistenza di uno split (anche se erano divertenti, a modo loro).

Winer cita anche Andrew Baron:

“if Twitter wants to adapt, anyone should be able to host their own Twitter so that they connect to any other Twitter independently if they want to. See how this changes things? Suddenly Twitters are no longer action tweets, they are individual nouns, a Twitter installed here, a Twitter installed there, here a Twitter, there a Twitter everywhere a Twitter, Twitter.”

Toh, rispunta fuori la questione. Questo era infatti il punto centrale di una discussione che avevo riportato tempo fa, fatta con Bru e Phauly. La discussione era “Trustlet: P2P *really* open social platform” (anche se non userò più il termine Trustlet, perché al momento sta seguendo un altro iter, più legato al trust).

Il problema che stavamo tentando di risolvere era sostanzialmente come trasformare i social network centralizzati in una più naturale rete di social network P2P, decentralizzati, fondati sul trust.

La cosa buffa è che, vagliati i requisiti necessari, il primo problema tecnico che si è riscontrato è quello del trasformare un meccanismo PULL, lento (ovvero, tutti quelli che mi seguono vengono a controllare ogni tot se ci sono aggiornamenti, come la e-mail e i feed RSS) in un meccanismo PUSH, veloce (che ha altri problemi, che dovrebbero essere gestiti).

Fondamentalmente creare un sistema ad eventi basato sul web e decentralizzato.

Una cosa viene immediata a questo punto: se questo progetto andasse in porto, Twitter sarebbe semplicemente uno dei tanti servizi presenti su questa infrastruttura. Questo perché i requisiti tecnici di Twitter sono:

  1. Gestire una lista di contatti.
  2. Inviare un aggiornamento a tale lista di contatti.
  3. (Ricevere un aggiornamento, che è implicito: è il ricevente).

Casualmente, un sistema PUSH, veloce, che sia in grado di gestire un social network, non è altro che questo.
Infatti, il social network è la struttura soggiacente a tutti questi servizi.
Ovviamente, “social network” inteso come teoria, come rete sociale, e non come “servizio” o “sito”.

Non c’è proprio nessuno che abbia il tempo di unirsi a noi e sviluppare il progetto? Ci sono le idee, ma ci manca il tempo di realizzarle… :P

10 comments Add yours below

1

bard 2008 01 17 at 16:37

C'è già, si chiama Jabber. Anche Blaine concorda. :-)
2

Folletto Malefico 2008 01 17 at 16:56

Jabber, o meglio XMPP è una tecnologia, non un prodotto. Per essere precisi, XMPP è il protocollo e Jabber è un prodotto (IM).

Però, attenzione: è come se nel 1999 alla domanda: "Ma creare un weblog?" si fosse risposto con "C'è già, è HTML!". Ammetto che non sia l'esempiò più calzante, spero si capisca cosa intendo.

Il senso è che da una parte può essere vero, dall'altra parte significa confondere una tecnologia con un impiego della tecnologia. :)

Il problema di usare XMPP è uno: non è P2P. In altri termini seppure credo che XMPP non sia restrittivo, l'implementazione del protocollo è basata su un sistema client-server, e non peer-peer.
Per questo motivo, non può rispondere a questo tipo di necessità: al più è utilizzabile come endpoint per certe comunicazioni, oppure come protocollo, ma prima bisogna adattarlo.

In altri termini: risolverebbe soltanto il problema di "come" scrivere i dati che vengono scambiati, nient'altro. Personalmente ero orientato più verso Atom in questo senso. :)
3

Lawrence Oluyede 2008 01 17 at 17:21

Distributed observer pattern sostanzialmente :D

mmm l'idea a me piace, il tempo non esiste, as usual :D
4

Folletto Malefico 2008 01 17 at 17:29

Io con i nomi dei pattern non vado molto d'accordo... ma si, dovrebbe essere proprio quello! :D
5

bard 2008 01 17 at 17:53

> Il problema di usare XMPP è uno: non è P2P. In altri termini seppure credo che
> XMPP non sia restrittivo, l'implementazione del protocollo è basata su un sistema
> client-server, e non peer-peer.

Quando si parla di client/server è bene tenere a mente qual è la risorsa "servita" dal server al client.

Nel caso di XMPP le risorse servite sono connettività e indirizzabilità, come un modem ma a livello più alto (stream XML anziché di bit). Come l'hardware di rete, XMPP produce un tessuto connettivo stupido e lascia agli endpoint il compito di definire la funzionalità, laddove il web/HTTP è sempre più costituito da "intelligent midpoints" che entrano nel merito della comunicazione. (Ops, sono appena scaduto nell'autoreferenzialità. Mi perdoni vero? Non capitano tante occasioni. :-D)

Quindi sì, un endpoint XMPP è in relazione client rispetto a chi gli fornisce stream XML e indirizzo, ma non più di quanto lo sia un programma P2P rispetto all'hardware che fornisce IP e stream di bit alla macchina che lo ospita.

> Per questo motivo, non può rispondere a questo tipo di necessità: al più è utilizzabile > come endpoint per certe comunicazioni, oppure come protocollo, ma prima bisogna > adattarlo.
>
> In altri termini: risolverebbe soltanto il problema di "come" scrivere i dati che
> vengono scambiati, nient'altro. Personalmente ero orientato più verso Atom in
> questo senso. :)

Ehm, no, non risolve il problema di come scrivere i dati, fortunatamente lo lascia agli endpoint. :-)


p.s.: Attendo ancora con trepidazione un post sulla code usability. Le occasioni di evangelizzarlo si moltiplicano (purtroppo). :-/
6

Folletto Malefico 2008 01 17 at 18:09

(Pork hai ragione, è che il "Post sulla Code Usability" sta diventando grossino, come concept, dovrei spezzarlo... oltre che trovare il tempo di scriverlo gh)

Ti ringrazio moltissimo per la spiegazione che mi hai dato su XMPP. Pensavo che in una certa misura identificasse anche il formato dati.

Per il resto, il problema è appunto realizzare questa infrastruttura P2P al giusto livello e con la giusta facilità d'uso per gli utenti.

Se tale infrastruttura P2P esistesse e fosse ad un livello di complessità come "plugin per WordPress", quella sarebbe a mio avviso la strada giusta.

A quel punto: ho il blog che in una sua forma è se vogliamo la mia principare identità in rete. Il blog è connesso ad un tessuto di comunicazione PUSH P2P (esattamente come il linking sul web). Twitter a questo punto sarebbe non dico triviale a farsi, ma comunque ben più solido.
7

Riccardo 2008 01 17 at 22:50

Uhm, ci ho fatto un po' di pensierini in questo periodo. Ora (concetto relativo) vado a recuperare il google doc e vi spammo un po'.
8

Simbul 2008 01 18 at 10:47

Spamma spamma. E' un discorso sempre interessante, quando torna in superficie periodicamente ;)
9

Francesco 2008 01 22 at 19:56

Non posso offrirti tempo perché non ne ho ha abbastanza per me, ma trovo che l'argomento sia molto interessante.
In questi ultimi tempi sto cercando di trovare qualcosa di veramente utile in servizi come Twitter, Tumblr, Pownce, ecc. Ognuno di loro offre qualcosa, ma nessuno mi soddisfa, non basta. Ci vorrebbe qualcosa che riesca a sganciarmi da ognuno di loro e aggregare le loro caratteristiche. Un altro servizio? Possibile, ma difficile da reggere pensando al carico che graverebbe sul server in questo caso. La soluzione forse ci sarebbe se Twitter e company fossero architetture distribuite dotate di strumenti di push con i quali potrebbero inviarmi le novità man mano che ci sono. Il mio "aggregatore" si limiterebbe a riceverle e metterle insieme. Se poi mi offrisse i filtri necessari ad ottimizzare i flussi per me sarebbe perfetto. Non c'è ma spero che prima o poi ci sia. Io ci sto pensando su da un po', per la verità e non è detto che prima o poi non ci cominci a lavorare su. Chissà.
10

Folletto Malefico 2008 01 22 at 20:09

Se iniziassi anche soltanto a mettere in piedi un prototipo, fammi sapere. ;)

Leave your Comment

required

required, hidden, never shared

Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post ~ Subscribe to the comments via RSS Feed