Vista la popolarità (!), ecco qualche nota su BitTorrent ed RSS e sul perché credo che possano stare bene assieme.
BitTorrent non è un sistema di filesharing, è un sistema di filedowloading. Serve
a fare in modo che la banda utilizzata per il trasferimento di un file
venga messa a disposizione non solo da un singolo server ma da chiunque
stia in quel dato momento scaricando il file.
In una situazione tradizionale, lo scaricamento di un file avviene
mediante una connessione diretta tra un client ed un server. Se il
server in questione ha una disponibilità di banda di 10Mbit e 10 utenti
con una linea adsl da 1Mbit si connettono contemporaneamente, la
disponibilità di banda di quel server sarà saturata. Di conseguenza, in
base alla configurazione del sistema, ulteriori utenti verranno
respinti o si troveranno a condividere una quota minore di banda con
gli altri.
Piccola digressione sull'uso della banda: in un uso di tipo
mail/navigazione web per la gran parte del tempo la banda non viene
utilizzata. Quando voi scaricate una pagina web, state pochi secondi a
trasferirla dal server che la ospita al vostro computer e poi una
quantità di tempo significativamente superiore a leggere quanto avete
scaricato. Di conseguenza la connessione di un numero molto alto di
untenti contemporanei ad un server web è un evento tutto sommato
piuttosto raro, quindi di solito non serve una quantità di banda enorme
per ospitare un normale sito.
Se però iniziamo a distribuire file di grandi dimensioni come audio o
video, il tempo necessario per scaricarli si incrementa
significativamente, quindi la probabilità di utenti contemporanei
aumenta, quindi l'assorbimento di banda aumenta proporzionalmente al
numero degli utenti. Morale: se volete distribuire un pezzo di video
contemporaneamente ad un grande numero di persone dovete spendere un
sacco di soldi in banda. A meno che non usiate bitTorrent.
Quello che permette di fare bitTorrent è distribuire il carico tra
tutti quelli che stanno scaricando un file. Diciamo che io sia il primo
ad iniziare a scaricare un file da un server, clicco sul file "torrent"
ed il mio client bitTorrent inizia a scaricare il file dal server. A
questo punto un secondo utente arriva e vuole scaricare lo stesso file.
Il server gli comunica che c'è già un utente (io) che sta scaricando
quel file, e quindi il suo client inizierà ad scaricare il file in
parte dal server ed in parte dal mio client (che quindi diventa a sua
volta un server), usando quindi la mia banda in uscita e non solo
quella del server. La stessa cosa avverrà per il terzo, il quarto, il
quinto utente e così via. Ognuno ad usare la banda degli altri e a
mettere a disposizione la propria.
Di conseguenza al contrario di quello che succede normalmente, con bitTorrent più utenti ci sono, più banda c'è.
Veniamo ad RSS. Fin dalle sue origini nel formato RSS è esistita
una funzione che consente di fare un "attachment" ad un post di un
weblog. Alcuni feed reader (ad esempio Radio UserLand), possono essere
configurati per scaricare automaticamente questi attachment ad un'ora
predeterminata, di solito di notte quando la banda costa meno e non
serve.
Con questo sistema in partica io mi posso iscrivere ad un feed RSS che
pubblica contenuti di tipo multimediale. Lascio il mio computer
collegato e automaticamente nel cuore della notte questo si collegherà
al server centrale e scaricherà i file più pesanti. In questo modo la
mattina successiva io troverò i file già scaricati sul mio computer e
pronti ad essere utilizzati.
Ora, mettiamo insieme le due cose.
Immaginate un feed RSS che pubblica come allegati dei torrent. Ad una
certa ora viene reso disponibile un torrent. Nel giro di qualche minuto
i feed reader riceveranno la comunicazione ed attiveranno il download.
Succedendo quasi contemporaneamente, si creerà la situazione ideale per
BitTorrent (un elevato numero di utenti contemporanei), e quindi tutti
saranno in grado di ricervere il file molto velocemente, senza per
questo richiedere grossi server e tanta banda.
Risultato: possibilità di distrubuire grandi quantità di materiali
audio e video ad un costo estremamente ridotto e con un uso ottimale
delle risorse.