2011-01-20

Explicit event processing agents in BPMN?

Sometimes we need to process in an instance a group of events collected from different instances. For example, incoming orders are collected and treated each hour all together. I call this pattern CPP:


Anatoly Belychook uses “interprocess communication via data” pattern (see http://mainthing.ru/item/332/) - something like that:


One of the building blocks of Event Processing Network (EPN) presented in “Event processing in action” (see http://epthinking.blogspot.com/) is event processing agent. It can, in particular, aggregate many events from a stream. Use of such an agent (between pools, of course) looks like that:


I found it rather explicit. Maybe a next version of BPMN should consider some building blocks of EPN?

Thanks,
AS

2 comments:

Gianpiero Bongallino said...

There are some concepts, like views, time windows, aggregation, partition, patterns that in BPM are not present. Moreover the "start" and "end" nodes of a EPN are streams, so you can consider more consumers and subscription and I/O adapters. An EPN is another parallel view to your business, with different semantic and functionality. An idea to have the same modeling environment (BPM and EPN) can be to create an underview or an Event Processing Pool.

Alexander Samarin said...

Thanks Gianpiero for the comment.

Sure, EPN is a different view and different functionality, but for the same good reason -- coordination of activities.

So, I mainly thought about things which help the BPM-like coordination of activities and which stay _outside_ of BPMN pools in white-white space (just white space is the space outside of activities within the same pool).

For example:
- event channels (from EPN) – event repositories?
- event agents (from EPN)
- data repositories – see http://mainthing.ru/item/403/
- something else?

Thanks,
AS