Combining expressiveness and efficiency in a complex event processing middleware

Alessandro Margara · 2012

Molti sistemi complessi si basano sull’osservazione di eventi primitivi provenienti dall’ambiente esterno, interpretandoli e aggregandoli in eventi compositi, che offrono una conoscenza del mondo a un livello di astrazione superiore. Infine, inviano notifiche di tali eventi a tutti i componenti adibiti a prendere decisioni e mettere in atto azioni sulla base di essi, determinando in questo modo il comportamento complessivo del sistema. Esistono svariati sistemi che operano in questo modo: le reti di sensori per il monitoraggio ambientale, le applicazioni finanziarie, i tool per la scoperta di frodi bancarie e i sistemi automatici di gestione dei prodotti basati su tecnologia RFID. Piu in generale, il sistema informativo di ogni azienda puo e dovrebbe essere organizzato intorno a un centro di gestione degli eventi, che realizzi una sorta di sistema nervoso per guidare e controllare il comportamento di ogni altro sotto-sistema. Il compito di identificare eventi compositi a partire da eventi primitivi e svolto da un motore di Complex Event Processing (CEP). Esso interpreta una serie di regole che descrivono come gli eventi compositi sono definiti a partire dai primitivi. Il motore di CEP e solitamente parte di un sistema o middleware di CEP, il quale si occupa anche di gestire la comunicazione con componenti locali e remoti. Per rispondere a tutte le esigenze delle applicazioni prima descritte, un motore di CEP deve soddisfare alcuni requisiti. In primo luogo, deve fornire un adeguato linguaggio per la definizione delle regole, espressamente studiato per esprimere complesse relazioni temporali. In secondo luogo, deve implementare algoritmi di processing efficienti, per produrre eventi compositi e inviare notifiche ai componenti interessati con una bassa latenza. Infine, deve poter supportare scenari distribuiti, in cui gli attori che prendono parte alla comunicazione potrebbero coprire una vasta area geografica. In questa tesi viene dapprima proposto un framework di modelli che permette di analizzare e confrontare non solo i sistemi CEP esistenti, ma piu in generale tutti i sistemi nati per processare flussi continui di informazioni sulla base di un insieme di regole. Questo ci permette di individuare i principali vantaggi e limitazioni degli approcci proposti sinora, guardando ad un ampio insieme di sistemi. Inoltre, il nostro framework definisce un terreno comune per il confronto degli sforzi di ricerca intrapresi da diverse comunita, aventi diverse basi teoriche, conoscenze, e terminologie. Crediamo che questo lavoro possa contribuire a ridurre la distanza fra le diverse aree di ricerca, semplificando la comunicazione e agevolando lo scambio di esperienze, per portare a un’unione dei risultati ottenuti nel recente passato. Partendo dalle problematiche individuate durante l’analisi dei sistemi esistenti, nella tesi viene poi presentato T-Rex un nuovo sistema di CEP, pensato per offrire espressivita ed efficienza. In particolare, proponiamo innanzitutto TESLA, il nuovo linguaggio utilizzato da T-Rex per la definizione di eventi. TESLA e espressamente pensato per modellare in modo semplice e naturale le complesse relazioni tra eventi primitivi e le azioni necessarie per aggregarli in eventi compositi. Successivamente viene presentata in dettaglio l’implementazione di T-Rex, studiato per processare in modo efficiente regole TESLA. La tesi si sofferma prima sul problema del matching, ovvero della selezione di eventi (primitivi) sulla base del contenuto degli eventi stessi. Tale problema sta alla base di ogni sistema a eventi. Nella tesi si propone un nuovo algoritmo espressamente progettato per sfruttare hardware parallelo, incluse le moderne schede grafiche (GPU). Questo e il primo lavoro in cui si analizza l’utilizzo di hardware parallelo per velocizzare il processo di matching e la fase di valutazione mostra significativi miglioramenti rispetto agli algoritmi sequenziali presenti in letteratura. La tesi si concentra quindi sulla valutazione completa di regole TESLA, descrivendo e confrontando due algoritmi di processing che seguono due diversi approcci per l’analisi degli eventi in ingresso. Un confronto con i sistemi esistenti mostra i benefici della proposta presentata. Indipendentemente dall’algoritmo adottato, T-Rex e in grado di sfruttare la presenza di piu core per valutare in maniera efficiente diverse regole in parallelo. Un ulteriore contributo della tesi deriva dalla definizione di un algoritmo di processing espressamente pensato per girare sulle moderne schede grafiche, il quale permette di ridurre significativamente il tempo necessario per gestire singole regole complesse, che richiedono l’analisi di un ingenete numero di eventi. E nostra convinzione che il contributo di questa tesi vada oltre la semplice progettazione e implementazione di T-Rex. Infatti essa e il primo lavoro ad analizzare in dettaglio come CEP possa trarre vantaggio dalla presenza di hardware parallelo: multi-core CPU e GPU. Sebbene la nostra analisi si concentri sugli operatori offerti da TESLA, questi costituiscono la base di molti linguaggi per la definizione di eventi presenti in letteratura. Per tale ragione il nostro lavoro costituisce un importante contributo per determinare come CEP possa trarre vantaggio dalle architetture di hardware parallelo oggi disponibili e quali algoritmi di processing siano piu adatti per sfruttarne al meglio le caratteristiche. L’ultimo aspetto esaminato in questa tesi riguarda la possibilita di sfruttare la presenza di diversi nodi, distribuendo il carico di processing tra essi, al fine di offrire un miglior supporto a scenari distribuiti, riducendo la latenza necessaria per la ricezione di risultati e l’occupazione di risorse di rete. In tale ambito presentiamo e confrontiamo diverse soluzioni per un sistema T-Rex distribuito, evidenziando i vantaggi e le limitazioni di ognuna di esse. Tali soluzioni includono i protocolli per organizzare i nodi disponibili in una overlay network, per scomporre e distribuire le regole di definizione degli eventi e per gestire in modo cooperativo l’elaborazione e l’invio di eventi.

Read the paper · More papers on PaperTik