Difference between revisions of "VT2015 Complex Event Processing2"

From air
Jump to navigation Jump to search
Line 26: Line 26:
   
 
===CEP===
 
===CEP===
  +
  +
[[File:CEP.jpg]]
  +
 
Le Complex Event Processing (en francais, Traitement des événements complexes) est un concept d'analyse d'événements permettant de traiter un flots continus de données (mesures, événements) en temps réel dans un nuage d'événements. Cela consiste à un traitement des événements (lecture, création, transformation, l’abstraction des données) puis à l'emploie de techniques de détection de schémas complexes (corrélation, abstraction, et hiérarchies entre événements, causalité, l'adhésion, la chronologie). La fonction principal du CEP est de trier les informations contenues dans les événements et ensuite d'analyser son impact au niveau macro comme "événement complexe" pour décider d'un plan d'action en temps réel.
 
Le Complex Event Processing (en francais, Traitement des événements complexes) est un concept d'analyse d'événements permettant de traiter un flots continus de données (mesures, événements) en temps réel dans un nuage d'événements. Cela consiste à un traitement des événements (lecture, création, transformation, l’abstraction des données) puis à l'emploie de techniques de détection de schémas complexes (corrélation, abstraction, et hiérarchies entre événements, causalité, l'adhésion, la chronologie). La fonction principal du CEP est de trier les informations contenues dans les événements et ensuite d'analyser son impact au niveau macro comme "événement complexe" pour décider d'un plan d'action en temps réel.
  +
  +
====Architecture EDA====
  +
[[File:Architecture.jpg]]
  +
  +
Les systèmes basé sur le concept CEP se repose sur une architecture de type EDA (Event D Architecture). C'est à dire sur un modèle d'interaction applicatif qui met en oeuvre des services répondant aux demandes. La particularité de cette architecture et de ne pas avoir de langage ou platforme particuliers avec des communications asynchrone (bus : PublishedSubscibe).
   
 
===Domaine d'application===
 
===Domaine d'application===

Revision as of 17:56, 26 October 2015

Présentation

Enseignants : DONSEZ Didier, BONNEAU Georges-Pierre

Sujet : Complex Event Processing

Démonstration :

  • Apache Storm et Spark Streaming sur le cloud d'Azure
  • Saas IFTTT

Auteur : KLIPFFEL Tararaina

Date : 23/10/15

Mots clés :

Document

File:Complex Event Processing.pdf

Résumé

De nos jour, le concept de Big-Data fait partie intégrante de notre quotidien. Nous faisons face à une véritable explosion du nombres de sources d'informations et par conséquent de l’augmentation exponentielle de l’information. En effet, les données générées deviennent tellement volumineuses qu'il devient difficile de les traiter avec des outils classiques de gestion de base de données ou de gestion de l'information en temps réel. Toutes ces données et événements peuvent être cruciaux pour analyser ou prendre des décisions stratégiques. D’où l'apparition des technologies de style "Complex Event Processing" qui permettent de traiter ces informations sous contrainte de temps, et d’en explorer les relations sémantiques et temporelles afin de générer des solutions.

Synthèse

CEP

File:CEP.jpg

Le Complex Event Processing (en francais, Traitement des événements complexes) est un concept d'analyse d'événements permettant de traiter un flots continus de données (mesures, événements) en temps réel dans un nuage d'événements. Cela consiste à un traitement des événements (lecture, création, transformation, l’abstraction des données) puis à l'emploie de techniques de détection de schémas complexes (corrélation, abstraction, et hiérarchies entre événements, causalité, l'adhésion, la chronologie). La fonction principal du CEP est de trier les informations contenues dans les événements et ensuite d'analyser son impact au niveau macro comme "événement complexe" pour décider d'un plan d'action en temps réel.

Architecture EDA

Architecture.jpg

Les systèmes basé sur le concept CEP se repose sur une architecture de type EDA (Event D Architecture). C'est à dire sur un modèle d'interaction applicatif qui met en oeuvre des services répondant aux demandes. La particularité de cette architecture et de ne pas avoir de langage ou platforme particuliers avec des communications asynchrone (bus : PublishedSubscibe).

Domaine d'application

Complex Event Processing, en tant que concept, répond à tout besoin exigeant en termes de traçabilité, réactivité, disponibilité et prise de décision. La complexité de mise en œuvre réside dans la définition d’algorithmes de calcul et de corrélation performants ainsi que de processus et règles métiers optimisés.

Les domaines d’application sont divers et variés. Ci-dessous quelques exemples:

  • Traçabilité par le biais de puces RFID
    • Réseaux de capteurs (IoT)
    • Exemple : Fiabilisation de la traçabilité d’objets dans une chaîne logistique
  • Fiabilité
    • Journaux système (détection de fraudes, ...)
    • Problématiques financières et boursières (quotations boursières, ...)
    • Exemple : Détection des « Microcap stock fraud »
    • Sécurité des systèmes d’information par corrélation d’événements
  • Réactivité
    • Réseaux sociaux (post)
    • Optimisation en temps réel de tournées de flotte par corrélation de positions GPS et état du trafic
  • Prise de décision
    • Supervision technique des plateformes
    • Exemple : Traitement des alertes SNMP remontées par les composants logiciels et les serveurs
    • Business Activity Monitoring (BAM)


Solutions

Les solutions CEP peuvent être intégrées soit dans un périmètre applicatif (utilisation de frameworks comme Esper ou NEsper) ou positionnées comme un module transverse recueillant l’ensemble des événements provenant d’applications diverses du SI (par exemple, intégrées à une plateforme d’échanges transverse entreprise à base d’ESB). Par rapport aux solutions existantes, de type BPM, BI ou autres, les solutions CEP se caractérisent par :

  • Un traitement continu d’une masse considérable (plusieurs centaines de milliers par seconde) d’événements provenant de sources d’information différentes
  • D’un besoin de prise de décision en temps réel par rapport à un ensemble d’événements quelconque surgissant dans une fenêtre temporelle définie. (de quelques secondes, à quelques heures, voire quelques jours)


Apache Spark

Apache Spark est un framework de traitements Big Data open source développé par AMPLab, de l’Université UC Berkeley, en 2009 et passé open source sous forme de projet Apache en 2010. Apache Spark permet d'effectuer des analyses sophistiquées. C'est principaux avantages et sa rapidité et sa facilité d’utilisation.

Avantages

Spark présente plusieurs avantages par rapport aux autres technologies big data et MapReduce comme Hadoop et Storm. D’abord, Spark propose un framework complet et unifié pour répondre aux besoins de traitements Big Data pour divers jeux de données, divers par leur nature (texte, graphe, etc.) aussi bien que par le type de source (batch ou flux temps-réel). Ensuite, Spark permet à des applications sur clusters Hadoop d’être exécutées jusqu’à 100 fois plus vite en mémoire, 10 fois plus vite sur disque. Il vous permet d’écrire rapidement des applications en Java, Scala ou Python et inclut un jeu de plus de 80 opérateurs haut-niveau. De plus, il est possible de l’utiliser de façon interactive pour requêter les données depuis un shell.

Enfin, en plus des opérations de Map et Reduce, Spark supporte les requêtes SQL et le streaming de données et propose des fonctionnalités de machine learning et de traitements orientés graphe. Les développeurs peuvent utiliser ces possibilités en stand-alone ou en les combinant en une chaîne de traitement complexe.

À côté des API principales de Spark, l’écosystème contient des librairies additionnelles qui permettent de travailler dans le domaine des analyses big data et du machine learning. Parmi ces librairies, on trouve : Spark Streaming

Spark Streaming

Spark Streaming peut être utilisé pour traitement temps-réel des données en flux. En vérité Spart Streaming ne fait pas de l'analyse de données en temps réel mais utilise plutôt un mode de traitement "micro-batch". C'est à dire que Spark ne traite pas les données d’un flux en continue (contrairement à Apache Storm) mais les accumule pendant un laps de temps fixé avant d’être traitées. Deplus Spark stream utilise pour les données temps-réel DStream, c’est-à-dire une série de RDD (Resilient Distributed Dataset).


Conclusion

On peut dire aujourd’hui que les solutions existantes sont au stade de la « croissance » et dépassent largement l’écosystème «trading» financier, historiquement connues pour l’évolution et l’adaptation de ce genre de solution sur les prochaines années sera rapide.


Bibliographie