Event Condition Action

Le paradigme Event Condition Action (ECA) consiste à déclencher des actions sur réception d'un événement quand la condition (en général, une expression booléenne sur la valeur de l'événement).

SQL

 * Triggers SQL

Java

 * JBoss Drools

Javascript

 * JSON Rules http://bpt.hpi.uni-potsdam.de/pub/Public/EmilianPascalau/JSONRulesSlides.pdf
 * JSRuleZ pour Node.js

Exemples
Hystérésis pour un chauffage avec JSRuleZ pour Node.js

var requirejs = require('requirejs');

requirejs([ "JSRulez" ], function (JSRulez) { var maxTemp=21;  var minTemp=19;	  var heater = {     heatOn : function(context)  { context.heaterOn=true; },    heatOff : function(context)  { context.heaterOn=false; },    heat : function(context)  { context.indoortemp+=1; },      };

var ruleSet = [ { name: 'heatOn', condition: function (context) { return context.indoortemp <= minTemp && context.heaterOn==false; }, action: function (context) { heater.heatOn(context); }, breakFlow: true, },	 { name: 'heatOff', condition: function (context) { return context.indoortemp >= maxTemp && context.heaterOn==true; }, action: function (context) { heater.heatOff(context); }, breakFlow: true, },

{ name: 'heater', condition: function (context) { return context.heaterOn==true; }, action: function (context) { heater.heat(context); }, breakFlow: true, },	];	var rulesEngine = new JSRulez.RulesEngine(ruleSet),

context = { indoortemp: 10, outdoortemp: 10, heaterOn : false};

for(i=1;i<100;i++) { console.log("indoortemp: " + context.indoortemp); rulesEngine.runAll(context); }; });

npm install requirejs node hysteresis.js