Ogni tanto mi piace anche scrivere qualche post relativo al mio lavoro, eccone uno.
Mi sono ritrovato a dover realizzare un’applicazione di carattere
finanziario, in particolare si tratta di un software di
simulazione (al momento ci limitiamo a quella) di sistemi di Trading per il
Forex da inserire nella
competition di Trade2Win. Data la particolare natura del sistema è strettamente necessario che vi sia la minor latenza possibile tra il recupero delle variazioni dei prezzi (interroghiamo la sorgente ogni secondo circa) e l’interazione dell’utente che sceglie di effettuare un’operazione.
AJAX è parso immediatamete
non sufficiente, visto che il suo utilizzo sincrono deve effettuare un
polling e per tenere sincronizzati valori, che si aggiornano potenzialmente ogni secondo, saremmo costretti a dover effettuare una richiesta ogni mezzo secondo, con conseguente impegno di banda e risorse.
Sono convinto che soluzioni come Flash o Java siano ormai superate: siamo nel web 2 (e anche qualcosina di più) !! Cosi le ricerche sono continuate in cerca della soluzione ideale.
Il risultato è
COMET: un’evoluzione di Ajax (perdonatemi il paragone!) che permette di mantenere i dati sincronizzati in real time senza bisogno di polling. L’idea non è nuova, se ne parla già da un paio di anni, ma le reali implementazioni sono tutt’oggi pochissime. Comet è attualmente utilizzato all’interno di Gmail per l’applicazione Gtalk ed un paio di altre implementazioni IM via web. Comet necessita di un server apposito per la comunicazione client-server, le implementazioni libere degne di nota sono:
Cometd a cui lavora anche
Alex Russel (colui che ha coniato il termine Comet),
Meteor server scritto in perl,
Orbited scritto in python.

Esistono anche alcune implementazioni commerciali, che non intendo elencare qui e che in ogni caso ho deciso di
scartare. Le ragioni sono sempre le stesse, la prima tra tutte è che essendo Comet una tecnologia estremamente giovane non mi sento di affidarmi ad una società che domani
potrebbe non esistere più oppure semplicemente non darmi ciò di cui ho bisogno, ho bisogno di una soluzione libera che mi dia certezza e tranquillità.
Nei prossimi giorni cercherò di aggiornare il blog con contenuti tecnici relativi a questa tecnologia riportando qualche esempio e qualche soluzione reale.
Social Networks