Interesting to see a fascinating blog entry by Roeland Loggen on “Future Patterns of BPM Technology” which showed CEP as a solution to semi-structured processes, between Straight Through Processing for full structured processes and Agent technology and AI for unstructured processes. As it happens, I had just been discussing Agent Technology with agent-guru James Odell, who is leading the OMG standardization efforts around Agent technologies. Earlier this week, reading the description of Event Processing given by Jack Van Hoof in his SOA-EDA blog on “Event Processor Tracks State of Objects”, it had seemed like CEP could easily map to agent technologies . But would it be worthwhile?
- Agent technology handles extreme scaleability issues by going from “database” processing (single instruction, multiple data records) to “via message” processing (instruction decomposition via separate multiple agents and their intercommunication). Note that CEP usually uses a half-way approach: “in-memory and cache”.
.
- Agents are characterised by being autonomous, having interactions, and being adaptive. CEP engines can be autonomous and interactive to the extent that they simply respond to multiple (complex and continuous) events; adaptiveness could be via machine-learning or more commonly via statistical functions. The main attribute of CEP engines is “memory” (of event histories) which presumably is an advantage in “intelligent” distributed agents too!
.
- Agent Communication Languages often combine rules with agent control commands: indeed CEP engines could be considered (or used as) coarse-grained agents (although typically their control and behaviour are relatively fixed compared to some more dynamic agent-based approaches). One suspects that agent communication languages could easily embed the W3C Rule Interchange working group rule format.
.
- One needs to be aware of the latency issues in communications between agents, especially for time-constrained problems. Agent techniques may be ideal for things like continuous scheduling where they might be controlled by a CEP engine that determines when to reschedule.
.
With CEP being associated with event-driven middleware, and such middleware being an integral part of agent communities, it seems there is likely to be some cross-fertilization in future between these technologies.