Monday, December 10, 2007

Continuano le interviste alle aziende italiane che esportano tecnologia: lo streaming Ajax di Lightstreamer raccontato da Alessandro Alinone (I parte)

Alessandro Alinone è Chief Technology Officer presso Weswit, che produce e commercializza Lightstreamer. Alessandro creò Lightstreamer quando lavorava per Sol-Tec, un system integrator in ambito finanziario, che con un spin-off della tecnologia diede vita a Weswit.
Dopo la laurea in ingegneria informatica al Politecnico di Milano ha lavorato come ricercatore al Cefriel


Lightstreamer è un prodotto di nicchia, siete probabilmente poco conosciuti al grosso pubblico, sopratutto in Italia, allora con qualche domanda, modello intervista delle “Iene”, vorrei tracciare un vostro breve profilo:

1. Nome?

Lightstreamer (www.lightstreamer.com).


2. Di che tecnologia vi occupate?

Di tecnologia “Comet”, ovvero un’estensione al paradigma AJAX.


3. Da quando avete cominciato?

Il progetto Lightstreamer nacque nel 2000 (anche se i termini usati sopra sono ben più recenti).


4. Uno dei vostri maggiori successi è l’accordo con Tibco, leader mondiale della tecnologia di integrazione. Ce ne puoi parlare un po’?

L’accordo con Tibco è stato indubbiamente uno dei principali successi. Tibco Software, leader storico nel middleware di messaging (ricordiamo Rendezvous ed Enterprise Message Service) ha ufficialmente annunciato lo scorso maggio un accordo OEM con Lightstreamer. In sostanza, per estendere il “messaging asincrono” al Web, invece di sviluppare un prodotto da zero, Tibco ha scelto di fare un rebranding di Lightstreamer, e di venderlo come engine del nuovo TIBCO Ajax Message Service (AMS).


5. Ci puoi fare il nome di qualche cliente internazionale?

I nostri clienti appartengono prevalentemente a due mondi: il finance e il gaming (anche se talvolta i confini tra i due appaiono sfumati...). Nel finance possiamo annoverare due tra le più grosse banche d’affari del mondo, di cui purtroppo non posso fare il nome. Posso però citare G.X. Clarke, Hedgestreet e PatSystems. Nel gaming abbiamo una prevalenza di clienti anglosassoni, che coprono i più diversi settori, dalle scommesse sportive allo spread betting sul mercato Forex. Ad esempio IG Group.


6. In Italia?

Un cliente storico è IntesaTrade, del gruppo Intesa Sanpaolo. Posso poi citare UniCredit Group e Banco Popolare.


7. Quali concorrenti internazionali avete?

Per molti anni ci siamo trovati di fatto senza concorrenti, ma anche senza un vasto bacino di utenza... Col senno di poi possiamo dire che eravamo probabilmente in anticipo sui tempi. E’ solo con la recente esplosione del mercato AJAX che abbiamo visto crescere sia la concorrenza , sia la quantità e la qualità dei clienti. Nel mercato finance il nostro principale concorrente è una software house inglese, che solo di recente ha introdotto il supporto AJAX nella propria soluzione. Nel segmento low-end invece la concorrenza è con le iniziative open source, prima tra tutte il progetto Cometd. Per questo motivo forniamo anche un’edizione completamente gratuita di Lightstreamer, anche se il nostro modello rimane closed source. Tuttavia siamo estremamente attivi sul fronte dell’apertura delle API e dell’interoperabilità con framework e toolkit di terze parti. Siamo membri dell’OpenAjax Alliance, consorzio dei principali player del mondo AJAX. Periodicamente ci incontriamo e partecipiamo al cosiddetto InteropFest, dove ciascun vendor porta un’applicazione demo che dimostri l’interoperabilità della propria soluzione. L’ultimo InteropFest si è svolto a settembre ed è stato ospitato da Microsoft.


8. E in Italia ?

Non ci risultano concorrenti italiani.


9. Che unità di misura di riferimento usate per contare i contatti mensili al vostro sito, decine, centinaia, migliaia o..?

I contatti mensili sono diverse migliaia, che portano ad alcune centinaia di nuove registrazioni ogni mese per il download del prodotto.



Bene... questa era una sorta di scheda anagrafica, giusto per dare una informazione reale sull’impatto sul mercato. Ora andiamo al sodo, anche perché mi piacerebbe qualche approfondimento tecnico...


Dunque voi siete molto noti nella comunità Ajax, ma in realtà l’unica novità vera e propria di Ajax è il superamento della logica passiva del web, il classico paradigma pull.
Anche se è solo un pull mascherato non è un meccanismo che supera la necessità di un push? Uno degli slogan è l’AJAX streaming, ma in realtà il vostro prodotto esiste ancor prima che la sigla AJAX stessa si diffondesse. Quale è il rapporto tra queste due tecnologie?

Forse una breve cronistoria può aiutare a districarsi nei meandri delle “buzzword” tecnologiche legate al mondo AJAX. Il Web si è sempre basato su un paradigma definibile, più o meno intercambiabilmente, come “pull”, “request/response”, o “sincrono”. In sostanza, per ogni azione dell’utente, il browser effettua una richiesta al server, il quale risponde con una pagina nuova che sostituisce la precedente. Già dieci anni fa era possibile costruire pagine Web particolarmente evolute che aggiravano questo paradigma, ma per tutta una serie di motivi, la vera e propria rivoluzione si è verificata solo a partire dal 2005, anno di invenzione del termine “AJAX” (ma non certo del paradigma sotteso, ben più antico). AJAX è l’acronimo di “Asynchronous JavaScript and XML”, anche se ormai la parte “XML” della definizione sta cadendo concettualmente in disuso (XML è solo uno dei possibili protocolli di comunicazione; più spesso si usa JSON). Con AJAX, le richieste fatte dal browser al server non sono più necessariamente finalizzate al caricamento di una nuova pagina. Il browser può chiedere dati puri, che poi visualizzerà in modo asincrono rispetto alle azioni dell’utente. Questo approccio rende le applicazioni Web molto più interattive, ma non “real-time”. Un’applicazione real-time richiede un’inversione del paradigma pull classico, per approdare a un paradigma definibile come “push”, “publish/subscribe” o “asincrono”. In questo modo è il server che prende l’iniziativa e manda dati aggiornati al browser non appena disponibili. Per delineare questo paradigma, nel 2006 è stato inventato il termine “Comet” (di nuovo, solo il termine, mentre la tecnologia esisteva già da molti anni). Come nota di colore, in America Comet è una marca di detergenti alternativa ad Ajax... E’ bene chiarire che la tecnologia Comet non è alternativa ad AJAX, ma ne rappresenta a tutti gli effetti un’estensione. Come dicevo prima, Lightstreamer nacque nel 2000, come implementazione completa del paradigma Comet. Prima che inventassero questo termine lo scorso anno, noi utilizzavamo la locuzione “Streaming AJAX”.


Su cosa si basa la vostra tecnologia? io credo che sia estremamente interessante e potrebbe veramente essere utilizzata in mille casi per delle applicazioni realmente interattive... per esempio il mondo dell’informazione è il segmento ideale

Lightstreamer è utile in tutti i casi in cui bisogna inviare dati in tempo reale attraverso Internet, verso applicazioni Web o di altro tipo. Trattiamo esclusivamente dati testuali (stringhe, numeri, ecc.) e non multimediali (non facciamo cioè streaming di audio o video). L’applicazione più tipica è la visualizzazione delle quotazioni di borsa che si aggiornano continuamente. Basta un qualunque browser Web, e senza fare il download di alcun componente (nemmeno di un’applet Java) si vedrà la pagina aggiornarsi in tempo reale. Ma anche i sistemi di chat, messaging e i social network posso trarre beneficio da Lightstreamer. Altre possibili applicazioni sono: console di monitoring, trasmissione di risultati sportivi e alert di ogni genere.


Il problema classico del push è quello di utilizzare molta banda ed in molti casi questo è ancora un problema, pensiamo solamente al mobile per esempio..

Eh sì... Se da un lato la banda media disponibile per ogni accesso Internet è enormemente aumentata rispetto a dieci anni fa, dall’altro lato si sono diffuse modalità di accesso molto eterogenee, a partire dall’Internet mobile in tutte le sue declinazioni. I primi sistemi di push dei dati sprecavano parecchia banda per inviare informazioni ridondanti o non rilevanti e soprattutto non tenevano in considerazione la banda effettivamente disponibile istante per istante.


Puoi raccontarci qualche features applicativa e darci un’idea delle potenzialità delle prestazioni?

Con Lightstreamer abbiamo voluto implementare fin dall’inizio un meccanismo di controllo di banda, caratterizzato da aspetti sia statici sia adattativi. Il tutto nasce da considerazioni sulla natura del dato testuale. Ad esempio, esistono tipologie di dati che sono comprimibili mediante “delta”. Se ogni aggiornamento è caratterizzato da uno schema comune, è sufficiente inviare solo i campi cambiati e non l’intero evento. Vi sono poi tipologie di dati filtrabili in frequenza. Il classico esempio è quello delle quotazioni finanziarie. Se il titolo Microsoft sul NASDAQ valorizza 100 prezzi in un secondo, difficilmente avrò bisogno di inviare 100 eventi al secondo a un fruitore umano. Spesso 2 o 3 aggiornamenti al secondo sono più che sufficienti, purché si mantenga la consistenza del dato dopo l’operazione di filtraggio (detta “conflation” nel gergo finanziario). Lightstreamer permette di assegnare una banda massima ad ogni utente, con la garanzia che non verrà mai superata, consentendo così un facile dimensionamento della connettività Internet in uscita necessaria per erogare un buon servizio. Il rispetto della banda assegnata avviene applicando algoritmi di filtering, conflation, bursting, queueing, ecc. Ma se un’improvvisa congestione di rete fa sì che la banda disponibile sia ancora meno di quella allocata, allora il sistema inizia automaticamente a ridurre la quantità di dati inviati, fino a calibrarsi sul valore ottimale (throttling). In questo modo si evita di mandare dati vecchi che verrebbero accodati nei vari buffer che separano il client dal server.
Per quanto riguarda invece le prestazioni del server, fondamentale è la scalabilità. Un sistema di push deve reggere parecchie migliaia di connessioni TCP concorrenti. Per questo motivo le architetture tradizionali dei web server e degli application server non sono adatte per realizzare soluzioni Comet scalabili. Lightstreamer utilizza un’architettura proprietaria di tipo staged event driven, dove pool di thread di dimensioni fisse gestiscono un numero arbitrario di connessioni concorrenti.


segue....

No comments:

Post a Comment