Complex Event Processing (CEP), de quoi s'agit-il?

le 09/09/2009 par Karim Ben Othman
Tags: Software Engineering

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. C’a été principalement utilisé par les plateformes de simulation en tout genre. Elle doit son inspiration aux concepts développés par Stephan H.Haechel dans son livre: «Adapative Entreprise». Le concept de base est traduit par le schéma suivant:

Cycle

Deux dérivés conceptuels se distinguent:

- ESP (Event Stream Processing): traite des streams* d’événements ordonnés dans le temps - CEP (Complex Event Processing): réfère à un processus de traitement d’événements qui assume avoir un Event Cloud* comme input, par conséquent, il n'y a aucune supposition quant à l’ordre d’arrivée des messages.

(*) Ces termes sont définis dans le paragraphe suivant

Un peu de vocabulaire…

EPTS a publié une première ébauche de glossaire regroupant l’ensemble des termes utilisés dans le domaine du CEP.

Le schéma suivant reprend les termes les plus importants extraits de ce glossaire:

Vocab_CEP_V0.5

Event stream (un flux d'événements): une séquence linéaire d’événements ordonnée par rapport à un axe temps. Cette séquence peut: - être bornée - contenir des événements de différents types.

Event Cloud (un nuage d'événements): une séquence d’événements partiellement ordonnée dans le temps. La séquence est engendrée par des relations (entre les événements) autres que le temps. Typiquement, un event cloud : - est créé par des événements produits par un ou plusieurs systèmes distribués - peut inclure plusieurs types d’événements, plusieurs steams d’événements, etc.

Cela dit : - Dans un cloud, il n’y a pas nécessairement de règles permettant d’ordonner les événements. - Un Event Stream est un cloud, pas l’inverse.

Event source (une source d'événements): un système qui envoie des événements.

Event Sink (un collecteur d'événements): un système qui reçoit des événements

Event Channel (un canal d'événements): un conduit dans lequel les événements partent du système source au système cible.

Event processing Agent (un agent de traitement d'événements): un module logiciel qui traite les événements.

Complex event (un événement complexe): un événement traduisant une abstraction d’autres événements. Exemple: une transaction en ligne est une abstraction de plusieurs événements (dépôt de l'article dans le panier, saisie d'un code réduction, saisie du n° de la carte bancaire, etc.)

Composite event (un événement composé): un événement construit par combinaison de plusieurs événements utilisant des constructeurs d’événements particuliers, comme une conjonction, disjonction, etc.

Rule (une règle): règle de traitement de l’événement

Window (une fenêtre): une portion de stream d’événements bornée

Event template (gabarit d'événement): Traduit un descriptif de l'événement dont les paramètres sont des variables.

Domaines 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 - Exemple 1: Fiabilisation de la traçabilité d’objets dans une chaîne logistique - Exemple 2: Traçabilité des bagages dans un aéroport entre le dépôt à l'enregistrement par le voyageur et le chargement dans l’avion

• Problématiques financières et boursières - Exemple : Détection des « Microcap stock fraud » (**).

• Optimisation de tournées de flottes de véhicule - Optimisation en temps réel de tournées de flotte par corrélation de positions GPS et état du trafic

• Supervision technique des plateformes - Exemple : Traitement des alertes SNMP remontées par les composants logiciels et les serveurs

• Business Activity Monitoring (BAM)

• Sécurité des systèmes d’information par corrélation d’événements.

(**) Combine connue dans le domaine boursier et utilisée par les fraudeurs pour manipuler le cours des actions.

Panorama des solutions logicielles du marché

Depuis quelques années, on assiste à l’intérêt grandissant des acteurs majeurs de l’édition logicielle pour le Complex Event Processing, après avoir été réservé à une niche d’éditeurs dans le domaine « trading».

Les solutions du marché proposent l’outillage nécessaire pour l’implémentation des concepts inhérents à l’ESP et/ou CEP. On désigne Intelligent Event Processing (IEP) les solutions implémentant les 2 concepts.

Le schéma suivant trace l’évolution des solutions du marché (inspiré d'un post de Paul Vincent sur le blog Tibco et mis à jour):

Offre_logicielle_CEP_V11

CEP dans la jungle des 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)

C’est pour cette raison que ces solutions logicielles ne sont pas positionnées comme des solutions concurrentes, plutôt, complémentaires: - CEP, BI: solutions d’optimisation du business - BPM, workflow: solutions de gestion des processus - ESB/EAI: solution d’infrastructure logicielle - Serveurs physiques, virtualisation: solutions d’infrastructure physique

Quelles perspectives?

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. Selon IDC, ce marché représente 140M$ aujourd’hui et 800M$ en 2012. Plusieurs initiatives autour de CEP ont été lancées. On note celle la plus significative qui concerne la définition d'un event metaModel portée par OMG.

Cet article sera suivi par un deuxième présentant un outil du marché ainsi qu’une implémentation d’un cas d’utilisation.