So far I don't see how it can be done using CEP based approach (using rule based (EPL) CEP principles). One can create a rule that observes messages (aka events), however I don't see a way to derive relationships that can later on be used to classify incoming message or events.
It seems to me that CEP would require a relationship engine of some sort that can be used to derive, store and query relationships that can be used by the CEP engine when processing events.
For example: say we observe events A, B and C. There maybe a relationship between these events. We can say events A->B a related (-> related) if A and Bs pay load contains a certain key (example order number of customer id). Lets call E(x) event E with payload x. If we observe A(x), B(x) and C(x): we can derive that A->B and B->C. If relation is transitive we can derive that A->C as well.
So it would be helpful to have a relationship service within CEP engines where once can declare a relationship and then at runtime determine whether events A and B are related and how, an if they are what types of relations qualify.
3 comments:
There are two ways to identify the relation between events:
1. Using Rapide pattern language (Stanford university project)
2. Using a state machine that implement the process definition of the processed transaction.
Both methods are viable, and their are concrete implementations on the market.
You basically just described what ruleCore does ;)
/Marco of ruleCore
Marco, interesting. What facilities of ruleCore would accomplish this? Please let contact me directly at amavashev@nastel.com.
Post a Comment