2007/01/26 15:39:33.648 US/Eastern

Joost: un approfondimento tecnico

Joost e' il risultato del lavoro di persone con un background lavorativo e culturale eterogeneo e rappresenta un collage di tecnologie, applicazioni e mentalita' di svilluppo differenti che riescono a convivere e ad integrarsi in maniera perfettamente funzionale; non si puo', a mio avviso, capire come si sia ottenuto tale risultato senza sapere chi sono i principali protagonisti che stanno dietro questa iniziativa:
  • innanzitutto i fondatory del progetto, Niklas Zennstrom e Janis Friis, che sono stati anche i fondatori di KaZaa, Joltid, e Skype e che fondamentalmente possono essere definiti come "very smart individuals who really understood the emerging peer-to-peer markets and what was really taking place in distributed computing";
  • poi Fredrik de Wahl, CEO di Joost nonche' di Joltid, essendo subentrato a Zennstrom quando questi si era  completamente dedicato a portare avanti il progetto Skype;
  • continuando con Dirk-Willem van Gullik il chief technical architect di Joost, che viene dal modo di Apache e dei grossi progetti open-source e che conosce bene le tecnologie legate al W3C, e' la persona che sta che sta dietro a molte delle scelte vincenti, sia tecniche che organizzative, del progetto;
  • infine i vari sviluppatori sparsi nel mondo, come Antoine Quint il responsabile dell' interfaccia grafica, o l'italiano Andrea Campi.

Joost, in quanto esempio di sistem integration ben riuscita, merita sicuramente un approfondimento a livello tecnico, cominciando con un chiarimento sul funzionamento di base.

Joost e' un ibrido tra un sistema P2P ed uno centralizzato:
L'altra  fondamentale innovazione tecnologica introdotta da Joost e' la rottura della dicotomia tra downloading e streaming; infatti "It's not only a P2P network, it's P2P streaming. Everything is delivered to the end user or the viewer in bits and bytes which are a proprietary standard, and each packet is encrypted. Different packets are then cached after being viewed on your machine much like cached Web content from your Web browser, with the difference being that we then pass it on to others when they want to watch it. Everything originates from the long-tail storage server in Luxembourg, and then if the content is also available in caches, the caches will start to chip in. When there's enough content in the different caches, you can stream everything just from the peers", ovvero Joost si comporta sia come client di un servizio di streaming ma, contemporaneamente, effettua il download  e' mantiene al suo interno una copia (anche se in maniera criptata e non direttamente utilizzabile) dei contenuti di cui l'utente ha usufruito; il motivo per cui viene effettuata la copia locale del contenuto e' chiaramente quello di rendere possibile il funzionamento dell'intera infrastruttura, ma il risultato e' sostanzialmente uguale a quello che si otterrebbe scaricando lo stesso contenuto mediante il classico download: ne ho una copia locale (anche se la cache ha una dimensione limitata ed i contenuti prima o poi "scadono") e quando voglio rivedere lo stesso contenuto lo posso fare senza essere soggetto ai problemi che si verificano durante lo streaming.

L' esperienza fatta con Skype e KaZaa ha dato i suoi frutti:
Ovvero Joost, cosi' come Skype e KaZaa, e' basato sul Joltid Global Index Software che viene utilizzato costruendoci sopra una strato software aggiuntivo; inoltre, per garantire (cosi' come avviene per Skype) una buona performance anche in condizioni non ottimali di banda, anche per Joost vengono utilizzati dei codec proprietari.

Ma e' anche stato accuratamente evitato uno dei maggiori problemi di Skype e KaZaa, ovvero, la portabilita'; e' evidente, infatti, che Joost e' stato progettato sin dall' inizio in maniera tale da essere facilmente portabile su sistemi operativi  e piattaforme hardware differenti:
"For us to go to a new platform, we're talking a development time of weeks, not months, and certainly not years. It's more of when the hardware is available in terms of processing power and storage and when bandwidth is suitable, that's when we would move to different devices".

Infatti l' interfaccia grafica, la componente piu' difficile da riscrivere durante il cambio di piattaforma, e' basata su di una versione modificata di Mozilla ed utilizza a piene mani molte delle sue tecnologie, come XUL e XULRunner, nonche' molti degli standard aperti del web; in particolare, come spiegato da Antoine Quint, fa' largo uso di molti degli standard del W3C:

"UI built using SVG means that the user interface of this product is written using SVG, with JavaScript and the DOM providing the user interaction and scripting layer. The renderer used is Mozilla's native implementation, which uses the cross-platform Cairo rendering library as a back-end.

SVG is not the only technology used for the user interface, although it is the most used. XUL, XHTML and CSS are also used. This product is a great proof that XML-based markup technologies are ideal to create internet-integrated desktop applications.

I assume you hint at the Flash Player as potential renderer for this. Using only pure XML-based technologies allow to use a single object model and scripting APIs (the DOM), which is tremendously useful, Flash does not integrate as seamlessly unfortunately, and Apollo, as it looks, will not fill the gap either."

Ovvero:
  • per la gestione degli eventi dell' interfaccia utilizza javascript  e DOM;
  • i comandi dell' interfaccia grafica sono disegnati utilizzando sia SVG (Scalable Vector Graphics) che CSS, XUL e XHTML;
  • in particolare SVG e' stato preferito al flash per motivi di performance.
E' infine interessante notare come Joost sia la prima applicazione (al di fuori dell' ambito accademico) che utilizza RDF e le tecnologie legate al semantic web per la catalogazione semantica dei contenuti; scelta, questa, che si inquadra nella sua strategia che si conferma in contro tendenza rispetto a quanto avviene con altri servizi che tendono a seguire i dogmi del Web 2.0:
  • user generated content;
  • user generated tagging;
Joost invece:
  • non prevede l'esistenza di contenuti generati dagli utenti (anche se, secondo quanto genericamente dichiarato nella FAQ, dovrebbe essere previsto in futuro);
  • si limita a consentire di assegnare un voto di gradimento al contenuto ma non consente all' utente di effettuare una catalogazione mediante tag.

Posted by: swarzy.2007/01/26 15:39:33.648 US/Eastern
Tags: lts w3c joost joltid-global-index-software h264 svg mozilla semantic-web iptv xul rdf xulrunner p2p 264 long-tail-storage anthill skylib | Permalink | Comments (2) | References (2)

Comments

Non ho ancora avuto tempo di testare Joost e sto aspettando Babelgum,in ogni modo ti faccio i complimenti per l'approfondimento che hai scritto. Ci son diversi spunti che cercherò di riprendere in un post.

Posted by: Dario Salvelli .2007/01/29 06:45:47.209 US/Eastern
http://www.dariosalvelli.com

Grazie...
anche se, per i miei gusti, non e' poi cosi' approfondito:

infatti mi sto documentando un po' meglio sull' implementazione dello Joltid Global Index e delle varie tecniche, utilizzate sia da Skype che da Joost, per superare i NAT ed firewall;

spero di avere abbastanza tempo libero da dedicare all' argomento da poterci scrivere almeno un altro paio di post ;-)

Posted by: swarzy .2007/01/29 15:54:46.383 US/Eastern

References

...: non paiono esserci modi di inserire contenuti degli utenti ed i contenuti&8230; arriveranno! Nel frattempo ho letto che il post successivo approfondimento che mi e&8217; molto piaciuto. Visto che nel frattempo il mio commento è ...

Reference by: quasi.dot » Blog Archive » Joost e lo User Generated Content 2007/01/28 08:56:26.668 US/Eastern

...p://www.voipblog.it">Pietro Saccomani Chi lavora a Joost e quali tecnologie alla base della TV P2P dei creatori di Skype? Leggi Joost: un approfondimento tecnico su www.blorigo.net.Tags: Reference by: del.icio.sfera » Joost: un approfondimento tecnico 2007/01/30 21:27:43.981 US/Eastern

Post a comment





The CAPTCHA image

Please enter the letters shown in the image in the following text box. Provided by Captchas.net