December 31, 2010 by huionn
Due to a small home project I was doing recently, I grow strong interest in event processing (including CEP and ESP in general).
In two projects I have previously done – a rfid tracking system and procurement-stock management system, one of the awkwardness of our solution is the latency. All reading from rfid readers are pumped into database and process every x minutes. All stock changes are transferred as flat files for processing nightly.
One particular interesting use case of event processing is in "Event-Driven Business Process Management" (EDBPM).
"Event-Driven Business Process Management" (EDBPM) is nowadays an enhancement of BPM by new concepts of Service Oriented Architecture, Event Driven Architecture, Software as a Service, Business Activity Monitoring and Complex Event Processing (CEP). In this context BPM means a software platform which provides companies the ability to model, manage, and optimize these processes for significant gain. As an independent system, CEP is a parallel running platform that analyses and processes events. The BPM- and the CEP-platform correspond via events which are produced by the BPM-workflow engine and by the – if distributed – IT services which are associated with the business process steps. Also events coming from different event sources in different forms can trigger a business process or influence the execution of a process or a service, which can result in another event. Even more, the correlation of these events in a particular context can be treated as a complex, business level event, relevant for the execution of other business processes or services. A business process – arbitrarily fine or coarse grained – can be seen as a service again and can be “choreographed” with other business processes or services, even between different enterprises and organizations.
Loosely coupled event-driven architecture for BPM provides significant benefits:
- Responsiveness. Events can occur at any time from any source and processes respond to them immediately, whenever they happen and wherever they happen.
- Agility. New processes can be modeled, implemented, deployed, and optimized more quickly in response to changing business requirements.
- Flexibility. Processes can span heterogeneous platforms and programming languages. Participating applications can be upgraded or changed without breaking the process model.
source: 2nd International Workshop on Event-Driven Business Process Management (edBPM09) http://icep-edbpm09.fzi.de/
Traditional application: Traditionally, business applications are people-oriented. A sales agent need to manually key in a new order from customer and then submit it for processing.
BPM: BPM provides flexibility in routing – the process flow is configurable. For example, the process flow of a high value order from a prestigious customer may be forked in two – management approval and inventory checking – in order to shorten the processing time.
Integration with SOA: With SOA, the customer can directly send the order to the system. However, the order will remain there until someone processes it.
edBPM: With edBPM, some intelligence can be built into the system. For example, “if the order is from company XYZ and the value is larger than 50k, send alert to Henry who need to process the order as soon as possible”. This scenario can be implemented easily. The system just need to produce an event of received order to a event processing server, the event processing server will take predefined actions if the conditions or patterns are matched.
In most case, if there is such requirement in a business application, the logic will be hard-coded as part of business logic. What are the drawbacks compared to edBPM?
- it is less configurable and less flexible
- it will increase coupling in the system and reduce maintainability of the system
- temporal reasoning is hard to implement programmatically
[UPDATE:] Event Driven Business Process Management in jBPM5 – An insightful article about edBPM with jBPM5 by a Drools Flow/jBPM5 contributor.
“jBPM5 introduces a very tight and powerful integration model for business rules, events and process like no other framework in the open source market. This post aims to show these integration capabilities with an example and to shed some light a new concept like Event Driven Business Process Management (ED-BPM).
ED-BPM besides from being the latest buzzword is also an extremely powerful concept to mimic how business processes interact in the real world: driven by business events. Traditionally BPM packages whether commercial or open source focused exclusively in processes, making difficult to create more complex applications that combine other components. jBPM5 makes it easier to express and implement these complex application using the integration approach discussed earlier.”