IBM BPM and Event Integration with SCA (Tuscany)
[Editor’s note: this is another guest post in a series from Gary Samuelson, one of the foremost experts in BPM, and IBM BPM. In this series he has been sharing his knowledge of architecture and BPM with our readers. Gary’s blog can also be found here. ]
This discussion is focused on IBM’s recent release of BPM v855-Advanced. New to v855 is the BPMN “start” and “intermediate” SCA implementation types – specifically, supporting inbound SCA-integrated events. Though CASE was also introduced with this release, that topic will have to wait for a future article.
Event Messaging in IBM-BPM: The Early Days
Reason for my initial focus on SCA integration is that it solves and adds immediate value for event management difficulties. Previously, marshaling “start message” events into BPM required knowledge of proprietary XML message-payload formats and carefully constructed transformations. These events then either arrived at their intended “start message” (process flow) or disappeared into the error queue – failure information just wasn’t helpful. Debugging the reasons behind “lost events” was an effort of discovery while sifting through the error queue, reformatting the XML on rejected messages, and re-submitting.
The workaround to this tedium was circumventing the service integration bus (SIB) via the use of either SOAP or ReST services. However, the problem with this approach is that it relied on direct gateways into process flows – meaning, this path essentially offloaded reliability and made it the responsibility of the originating party or client application. Without the SIB there was no message persistence nor transaction support for inbound events. Though this workaround didn’t present much of an issue for medium-value payloads, it was considered a major gap in end-to-end reliability for high-value inter-system communication (example: large volume capital management or trading).
Future Vision: BPM & The Event Driven Architecture
The event driven architecture (EDA) provides the features and foundation for complex event processing (CEP). BPM then relies on CEP infrastructure for event subscription and routing into its execution (run-time) environment.
Features / Values:
- Message Persistence – Messages are stored and forwarded. Events are secured and capable of supporting an orderly recovery within a risk-mitigation or disaster-recovery infrastructure.
- Transactions – Integrated systems have the option of starting transactions and extending their context (either direct or optimistically/loosely coupled) across the message pipeline. This means reliability is centrally managed with improved support for alternate site plans (e.g. DR).
- Centralized Management – Supporting a “publishers” fire-and-forget pattern whereby messages are discretely managed per each node’s necessary requirements. This effectively supports centralized rules and routing logic.
- Centralized Business Domain Management – Provides the tools and supporting infrastructure for “process driven” discovery and analysis of business domain objects (i.e. message taxonomy or schema).
IBM-BPM v855: The Start Message & SCA
This initial view focuses on a sub-set of the event driven architecture (EDA) with a look at three components:
- SCA Composite (Tuscany) providing both a SOAP service and a reference into the BPM SCA Export (via IBM Rational Developer). Noting that a second example (future article) will utilize JAX-RS (via Websphere Wink implementation) from within an OSGi bundle… demonstrating the OSGi and SCA relationship.
- IBM-BPM SCA Export (Integration Designer artifact).
- Process flow (BPM) containing an SCA start message event
Examples & Future Articles:
Due to some time-constraints this month, the architecture reference/examples will soon follow in a future article. And, I’ll include the SCA+OSGi JAX-RS integration. I also want to demonstrate IBM’s new Integration Bus (aka ESB) with a full CEP reference.