# Traitement des événements complexes

Le traitement des événements complexes, ou CEP (pour complex event processing), est principalement un concept de traitement des événements dans le but d'identifier les événements significatifs dans un event stream.
Le CEP emploie des techniques telles que la détection des schémas complexes de multiples événements: corrélation, abstraction, et hiérarchies entre événements et les relations entre événements tels que les liens de causalité, l'adhésion, la chronologie et les processus pilotés par les événements. La fonction du CEP est de découvrir les informations contenues dans les événements qui passent dans toutes les couches d'une organisation et ensuite d'analyser son impact au niveau macro comme "événement complexe" et puis décider du plan d'action en temps réel.

## Description conceptuelle du CEP

Le CEP est une technique qui permet de découvrir les événements complexes, par déduction, analyse et corrélation d'événements élémentaires. Il existe de nombreuses applications commerciales du CEP comme la négociation de titres, la détection de fraude à la carte de crédit, le pilotage des activités métier(Business Activity Monitoring).

## Cellule de crise

Un bon exemple de besoin de ce type de technique est les cellules de crise dont se dotent par exemple les compagnies aériennes.
Lorsqu'une panne est détectée lors d'une escale sur un avion, il faut pouvoir prendre la bonne décision : doit-on réparer si oui combien de temps cela prendra-t-il, où est la pièce de rechange, que faire des passagers en attendant, devra-t-on changer d'équipage car il dépasserait son temps d'activité? Doit-on envoyer un autre avion, que faire des passagers VIP...
On voit très vite que les flux d'information à rapprocher sont très divers (techniques, ressources humaines, coûts, et humains voire politique). Aujourd'hui bien souvent la cellule de crise dispose de multiples applications indépendantes et c'est bien souvent les hommes qui essaient de corréler les informations et de trouver la bonne réponse en espérant ne pas rater un événement important. La survie des compagnies est à ce prix.
C'est la même problématique, sur les champs d'action des armées qui interviennent dans des conflits où il faut prendre les bonnes décisions en fonction des ressources humaines et matérielles dont elles disposent et en fonction des forces qu'opposent l'ennemi, tout en sachant que la situation doit être réévaluée en permanence.

## Exemples d'événements

Des cloches d'une église sonnent, un homme en habit avec une femme en robe blanche et du riz jeté dans l'air. L'événement complexe déduit de ces événements simples : un mariage.
Autre exemple de CEP qui implique une voiture, certains capteurs et divers événements et réactions :
* Imaginez qu'une voiture dispose de plusieurs capteurs : un qui mesure la pression des pneus, un autre qui mesure la vitesse et un dernier qui détecte si une personne se trouve sur le siège conducteur ou le quitte.
Dans un premier cas, la voiture est en mouvement et la pression de l'un des pneus chute de 9 à 2 bars en plus de 20 minutes.
* Comme la pression dans le pneu est réduite, une série d'événements contenant la pression des pneus est générée par le capteur.
* En outre, une série d'événements contenant la vitesse de la voiture est générée.
* Le processeur d'événements de la voiture détecte une situation dans laquelle une perte de pression des pneus a lieu sur une période relativement longue. Il génère alors un nouvel événement de synthèse "BaissePressionPneu".
* Ce nouvel événement peut déclencher un processus de réaction: noter la perte de pression dans le journal de maintenance de la voiture et alerter le conducteur via l'interface de la voiture.
Dans un second cas, la voiture est en mouvement et la pression de l'un des pneus chute de 9 à 2 bars en 5 secondes.
* Une situation différente est détectée - peut-être parce que la perte de pression s'est produite sur une période de temps plus courte, ou peut-être parce que la différence de valeur entre chaque événement a été supérieure à une limite prédéfinie.
* Le processeur de traitement détecte une situation différente et génère un nouvel événement "EclatementPneu".
* Ce nouvel événement déclenche un processus de réaction différent : avertir immédiatement le pilote et engager des routines de l'ordinateur de bord pour aider le conducteur à arrêter la voiture sans perte de contrôle.
De plus, les événements qui représentent les situations détectées peuvent aussi être combinés avec d'autres événements afin de détecter des situations plus complexes. Par exemple, dans un troisième cas, la voiture se déplaçait normalement mais un des pneus a éclaté, ce qui lui a fait quitter la route, puis heurter un arbre et le pilote a été éjecté.
* Une série de situations différentes sont rapidement détectées. La combinaison de "EclatementPneu", "VitesseNulle" et "PasdePilote" dans un temps très court permet de détecter une situation nouvelle : "OccupantAccidenté".
* Même s'il n'y a aucune mesure directe qui permette de déterminer de façon concluante que le pilote a été éjecté, ou qu'il y a un accident, la combinaison d'événements permet à la situation qu'elle soit détectée et qu'un nouvel événement soit créé pour signifier la situation détectée.
* C'est l'essence même d'un événement complexe (ou composite). Il est complexe car on ne peut pas détecter directement la situation; il faut déduire la situation par la combinaison d'autres événements.

## Types de CEP

La plupart des solutions CEP et concepts peuvent être classés en deux catégories principales :
* calcul orienté CEP ;
* détection orientée CEP.
Une solution de calcul orienté CEP est axée sur l'exécution d'algorithmes en ligne en réponse à des événements entrant dans le système. Un exemple simple consiste à calculer en permanence une moyenne basée dans les données contenues dans les événements entrants.
Une solution de détection orientée CEP est axée sur la détection des combinaisons de modèles d'événements appelés situations. Un exemple simple consiste à détecter une situation par la reconnaissance d'une séquence spécifique d'événements.

## Recherche universitaire

* Aurora (Brandeis University, Brown University and MIT)
* BeepBeep (Université du Québec à Chicoutimi)
* Borealis (Brandeis University, Brown University and MIT)
* STREAM (Stanford University)
* Telegraph (UC Berkeley)
* SASE (UC Berkeley/UMass Amherst)
* Cayuga (Cornell University)
* PIPES (University of Marburg)