background preloader

CEP

Facebook Twitter

Storm, Hadoop Map Reduce en temps réel. BackType est une startup spécialisée dans l’analyse des données sociales : Twitter, Facebook, blogs, etc. Utilisant notamment Clojure et Python, les trois ingénieur-fondateurs ont mis en place une infrastructure à deux vitesses. Des batchs Hadoop effectuent les traitements lourds tandis que des topologies Storm mettent à jour les résultats à l’aide des dernières informations.

Juillet dernier, Twitter les a racheté et pendant la même période, Storm, leur innovation interne, fut rendue publique en tant que projet Open Source. Storm peut se comparer à Hadoop Map Reduce mais sans les contraintes de batch ou encore à Yahoo! S4 mais avec une garantie de traitement des messages. C’est une solution potentiellement à même de remplacer tout système complexe de queues avec des workers responsables de traiter, filtrer, transformer les messages. Incidemment, il est intéressant de noter que l’essentiel du système d’information de Backtype repose sur Amazon Web Service.

Storm en un éclair. Storm: Distributed and Fault-tolerant Real-time Computation. CEP, de quoi s’agit-il? Depuis quelques années, on assiste à l’émergence de nouvelles solutions logicielles, dont le concept à la base est loin d’être nouveau, mais dont l’offre est de plus en plus riche et perfectionnée, à savoir, Complex Event Processing. Alors de quoi s’agit-il ? Complex Event Processing (CEP)? Selon la définition fournie par EPTS (Event Process Technical Society) dans son glossaire publié fin 2008, Complexe Event Processing, (en français, traitement des événements complexes), est tout calcul/traitement exécutant des opérations sur des événements complexes tels que la lecture, la création, la transformation, l’abstraction des données portées par ces événements.

En d’autres termes, Complex Event Processing traduit plus des concepts d’analyse d’événements porteurs d’informations prévenant de diverses sources de données que de solutions logicielles. Inspiration et concepts « Complex Event processing » a été développé vers le début des années 90. Deux dérivés conceptuels se distinguent: CEP avec Esper. Dans un précédent article, Karim Ben Othman nous introduisait le concept de Complex Event Processing (CEP).

Afin de rendre cette notion plus concrète, je vais au travers de cet article, vous présenter un framework de CEP open source : Esper. Je vous invite à découvrir pas à pas, comment nous pourrions implémenter, avec Esper, le cas d’utilisation suivant : la détection de bagages égarés à l’aéroport. Le schéma ci-dessus illustre le système mis en place. Prenons le scénario suivant : En partant du postulat que chaque bagage, une fois enregistré, porte une puce RFID que des antennes sont capables de localiser. Les antennes transmettent les messages à une application « centrale » avec les bagages qu’elles ont identifiés dans leur périmètre. Pour détecter les problèmes nous considérons que le temps maximum d’un « voyage » sur le tapis est de n secondes, et, qu’au delà de ce délai, le bagage doit être considéré comme manquant.

Esper : un framework open source dédié au CEP Oui, … mais non. Esper+Camel Samples. Architecture événementielle avec Esper. Notre objectif est de mettre en place une architecture, reposant sur le moteur CEP Esper, permettant de traiter le plus d’événements possible. L’intérêt de notre plateforme est d’agréger des informations multiples (infra, applicatifs, etc.) afin de faire remonter des alertes lorsque certaines corrélations d’événements interviennent.

Les enjeux de l’architecture sont dès lors multiples : acquisition des donnéesarchitecture événementielle et réactiveutilisation et analyse de contextes historiquesdéfinition de règles qui permettent de déclencher des alertes grâce à un moteur CEP Nous présenterons dans cet article différentes architectures mises en place autour du moteur CEP Esper dont l’objectif est de traiter un maximum d’événements. Nous commencerons par faire une rapide introduction à Esper, puis nous vous présenterons les architectures qui ont été implémentées et enfin nous ferons un bilan de nos expérimentations. Le moteur CEP utilisé est Esper, édité par EsperTech. Description Mode HTTP.