Software architectural decisions frequently involve tradeoffs between implementing basic functions yourself or using an existing framework or tool to reduce the manual effort of some parts. This blog post is about a trade-off of this sort: using a business process management (BPM) tool to enhance your enterprise integration scenarios (rather than "rolling your own").
Enterprise Integration: Platforms and Patterns
Businesses today increasingly interact with their customers through applications. These customers expect new features and functionality to be delivered frequently, and one of the best ways to do this is through the integration of applications with existing systems, both within the enterprise and beyond.
There are many strategies for performing Enterprise Integration, and the most common strategies have been turned into patterns as popularized in the book "Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions" by Gregor Hohpe and Bobby Wolfe.
RedHat provides two excellent integration platforms that implement these Enterprise Integration Patterns; JBoss Fuse and JBoss Fuse Service Works. Each of these platforms use Apache Camel for integration patterns and provide a robust JMS Messaging subsystem. These platforms and the patterns they implement are therefore very useful in a wide variety of integration scenarios.
The JBoss Business Process Manament Suite (JBoss BPM Suite) is a Worflow engine that includes the JBoss Business Rules Management System (BRMS). The BPM Suite allows for the definition of complex business processes using the standard Business Process Modeling Language 2 (BPMN2) notation. The BRMS features allow business rules to be extracted and managed outside of applications.
You should consider the JBoss BPM Suite to enhance your Enterprise Integration scenarios, especially if you experience any of the following in your enterprise.
1) Your enterprise integration includes tasks that are long running or must be performed by humans
The Workflows defined in the JBoss BPMS engine can include Human Task Nodes. These Human Tasks allow tasks to be assigned to individuals or groups. Tasks can be claimed, reassigned, canceled and completed. The Human Task features make it easy to include people in your Enterprise Integration.
2) You have requirements to capture and report on metrics associated with your enterprise integration
JBoss BPM Suite includes a comprehensive Business Activity Monitoring (BAM) engine. This captures advanced statistics related to your workflow integration. Custom Reports and Graphs can be generated to provide visibility into these metrics.
Example metrics include:
- The number of accepted vs. rejected messages processed over a given time frame
- The average time it takes to complete an integration
- Number of messages processed from and to specific systems or entities
- Service Level Agreement (SLA) Reporting
These metrics can be utilized to provide powerful analysis of your Enterprise Integration.
3) You would like the abilitly to reconfigure the data flow of your enterprise integration
The BPMS system provides a graphical editor to configure your workflow processes. The tasks performed in a workflow integration can easily be reconfigured and tasks can be added, removed or re-ordered.
4) You need to execute business rules as part of your enterprise integration
The BPMS component of the JBoss BPMS allows for centralized management of business rules in an enterprise.
These rules can be used in enterprise integration for activities such as:
- Complex routing decisions
5) You need to support multiple versions of your integration logic
The BPMS system provides out of the box versioning of your integration process definitions. This makes it possible to have multiple versions of your integration logic active at a time. Clients can invoke different versions of the integration logic to support a phased approach to upgrading your integration logic. Upgrades can occur minimizing the impact on existing client applications. The versioning also allows in process integration logic to continue and finish utilizing the same version of the integration logic that existing when the integration was started while allowing new integration instances to utilize the new logic.
While JBoss BPM Suite is not a replacement for an integration platform such as JBoss Fuse or JBoss Fuse Service works, there are many use cases where it makes sense to use it in conjunction with these tools to enhance your integration scenarios.
Are you considering adding BPM to your enterprises integration scenarios? We offer complimentary consultations. Click here to request one.