EA2013 RulesEngines EventConditionActin ComplexEventProcessing

Présentation

 * Enseignants : Georges-Pierre Bonneau, Didier Donsez (EA2013)
 * Auteur : Bidois Morgan 
 * Présentation :

Event-Condition-Action (ECA)
Les éléments à la base des Architectures Orientées Evènnement sont les règles. Elles sont consitutées de la manière suivante :


 * Event : Evènement qui permet d’invoquer la règle
 * Condition : Partie logique pour vérifier que la régle est satisfaite ou non
 * Action : Actions, mise à jour du système

event : IF some condition THEN some action

Ces règles peuvent être écrites dans différents langages, certains d'entres eux sont très proches du langage naturel.

Rules Engine
Les Rules Engines (ou Rules-based System) sont utilisés en informatique, pour interpréter des données en se basant sur plusieurs composants :


 * Base de règles (rules-base) : Elle constitue la "connaissance du système" et est construite grâce à des règles (ECA).
 * Moteur d'inférence (inference engine) : Programme qui va permettre de "raisonner" sur les règles établies dans la base.
 * Memoire de travail (workspace/working memory) : Mémoire qui va permettre au moteur d'inférence d'effectuer son raisonnement.

Ces trois composants sont indépendants. Ce qui signifie que s'ils sont fait de manière à être compatibles, on peut utiliser un moteur d'inférence avec différentes bases de règles.

La manière de construire ces systèmes est finalement proche du fonctionnement du cerveau humain. C'est pourquoi ces sytèmes sont très utilisés en Intelligence Artificielle. On parle alors de "Système Expert". Les sytèmes experts simulent la prise de décision par un expert humain. Ils sont conçus de manière à résoudre des problèmes complexes, en raisonnant sur une base de connaissance de la même manière qu'un expert humain.

Ces sytèmes possèdent de nombreux avantages :
 * Base de règles écrite dans le langage courant : Permet de facilement transmettre de la connaissance au système
 * Réutilisabilité du moteur d’inférence : Gain de temps
 * Fiabilité : Ces systèmes sont capables, si la base de règle a été faite de manière non ambigue, d'arriver toujours à la même interpretation (déterminisme).
 * Evolution : Pour faire évoluer le système il suffit de faire évoluer la base de règles.

Le gros désavantage de ces système est que la base de règles est écrite par des humains. Ce qui signifie dans la cas de base avec beaucoup de règles, beaucoup de temps à passer pour introduire les règles. Mais aussi, que les règles écrites peuvent être fausses, ambigues, ou être en contradiction entre elles. Ce qui peut avoir pour conséquence un système qui ne fonctionne pas correctement.

Annexes

 * http://fr.wikipedia.org/wiki/Architecture_Orient%C3%A9e_Ev%C3%A8nements
 * http://fr.wikipedia.org/wiki/Complex_event_processing
 * http://en.wikipedia.org/wiki/Event_condition_action
 * http://en.wikipedia.org/wiki/Event-driven_architecture
 * http://en.wikipedia.org/wiki/Rule-based_system
 * http://en.wikipedia.org/wiki/Expert_systems
 * https://github.com/giacecco/JSRulez
 * http://www.j-paine.org/students/lectures/lect3/node5.html
 * http://blog.octo.com/complex-event-processing-cep-de-quoi-sagit-il/