Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
EAI - Business Process Management - BPM - Use Case
1. Sherif Rasmy - BPM
1
Enterprise Application Integration
The Business Process Manager – BPM
Sherif Rasmy - March 13, 2014
Introduction
SPX is a medium size on-line store that has successfully sustained consistent growth over the past two
years. In order to maintain that growth, management realized that their operational systems need to
be modernized to expedite purchases' delivery and improve the quality of customer service through an
implementation of a Customer Relationship Management System (CRM).
In the ESB paper [8]
we outlined an integration solution based on an enterprise service bus (ESB) to
reduce the time to fulfill orders from 2-3 days to minutes. This paper demonstrates how Business
Process Management (BPMs) can allow SPX respond to rapid changing business changes. The paper
outlines the key functional features and architectural properties of BPMs, and highlights the
differences between ESBs and BPMs to clarify the role BPMs play in Enterprise Application Integration.
The Problem
SPX relied on file based integration architecture. The latency in this approach made order
fulfillment exceed 2 days (figure 1).
Order Management
System
(OMS)
DB
Payment Management
System
(PMS)
DB SOAP
Warehouse management
System
(WMS)
DB REST
Shipping Management
System
(SMS)
DB MQ
1: Place Order
2: Load Orders
Overnight 1
3: Load Orders
Overnight 2
4: Load Orders
Overnight 2
Figure 1 – SPX File Based Integration Architecture
The implementation of an ESB reduced the order lifecycle time to be minutes (figure 2).
Currently, when payment fails, the order is cancelled and the customer is notified through an
email. However, the business is looking to enable a customer service representative (CSR) to
call high valued customer with failing orders by phone in an attempt to review and resolve the
payment failure.
2. Sherif Rasmy - BPM
2
Order
Management
System
(OMS)
DB
Payment Management
System
(PMS)
DB SOAP
Warehouse management
System
(WMS)
DB REST
Shipping Management
System
(SMS)
DB MQ
Place
Order
Route
1: Place Order
2: Place Order
Workflow
E
S
B
Save Order
4: Payment
Request
5: Poll
Payment
Request
7: Call
Recipients6: Success
F1: Failure – Send
Failure Email
Figure 2 – SPX ESB Integration Architecture
The Solution
The solution uses a BPM integrated within the new ESB infrastructure (figure 3).
In the proposed solution, the order processing life-cycle starts in the BPM and not the ESB.
The ESB route is broken into four routes accessible through four web services A, B, C and D.
The BPM is also configured as an end point in the ESB.
Order
Management
System
(OMS)
DB
Payment
Management
System
(PMS)
Warehouse
management
System
(WMS)
REST
Shipping
Management
System
(SMS)
MQ
E
S
B
Save Order
Is High Value
Customer?
Order
Placement
Yes
Create Failure
Email & Send
No
Yes
No
B
P
M
Save and Pay
Order
SOAP
A
B
Payment Failed?
A
Yes
No
C D
Call Customer.
Is Issue Resolved?
A B C D
Pay & Pull
for Status
Send Failure
Email
Prepare the
Order
Initiate
Shipping
User Places Order
on the Web
ESB Route
Gateway
Activity
Event
ESB Workflow Action
Web Application UI
CSR - BPM UI
Parallel Execution
X
WS
Figure 3 – SPX ESB/BPM Architecture
3. Sherif Rasmy - BPM
3
The BPM work-flow starts with an Event that signifies an order that failed payment. The
workflow advances as shown going through multiple IT Activities. IT Activities are components
implemented as internal/external web services and/or business rules.
Our workflow may stop in a single Action; and cannot advance before a CSR calls the
customer. Actions in that context are not IT components but rather manual processes that
require human intervention.
Technically, a BPM is best suited in our use case because:
o Human intervention (CSR) is required: One of the key differences between ESBs and
BPMs is that, ESBs integrate software components and data only, while BPMs integrate
people, software components and data.
o Issue resolution may take days: ESBs cannot handle long living processes. BPMs
handle long living processes by storing their statuses and priorities a database.
BPMs, ESBs and EAI
Business Process Managers [4]
BPM is a discipline that leverages software and services to provide total visibility into the
organization. BPMs help discover, document, automate, and continuously improve business
processes to increase efficiency and reduce costs [5]
.
In order to evaluate BPM providers and understand the role it plays in EAI, we must
understand the key features and components that they should provide (figure 4):
BPM
Process Modeler UI Designer
DB Repository
Rules Engine
Process Activity
Monitor
Process Simulator
Development
Collaborator
Connectors
Figure 4 – BPMs Features and Components
o Process Modeler & Executor:
Allows users to create visual flowcharts that capture happy paths, alternative
paths, exception flows, process conversations, and capture handling of business
events using standard modeling notation (BPMN) as well as process execution.
Allows both business and IT tools share the same meta-model, same BPMN
diagrams, and related artifacts.
Supports long living processes
o Process Simulator:
Provides business users with various techniques to analyze and optimize processes
4. Sherif Rasmy - BPM
4
Specifies process step durations and costs and runs various scenarios to find the
optimum process design.
Identifies process bottlenecks, paths in the process that are most expensive and
the paths that take up the most time.
o User Interface Designer:
Allows business users to easily create user interfaces for their business processes
using dragging and dropping controls from a palette.
o Rules Engine:
Allows business users to add rules process models as conditions, decision tables or
as system steps that may call any other enterprise systems.
Allows rules externalization to quickly respond to the business changes
o Development Collaborator:
Empowers business users and IT developers to perform their work efficiently and
effectively by through work management collaborative portal that allows.
o Business Activity Monitor:
Captures events and data as the process advances
Provides a timely, overall picture to business managers
o Connectors:
Supports basic connectivity protocols like JDBC, JMS, SOAP, and REST
Provides adapters to multiple ERPs like SAP and PeopleSoft
BPMs versus ESBs [4]
There is an evident overlap between the features provided by ESB (figure 5) and those
provided by BPMs (figure 4).
ESB
Messaging Connectivity Routing Transformation
Web Services Framework
Message BrokerSystem Management
Development & Tooling
Figure 5 – ESBs Features and Components
Integration Feature/Function ESBs BPMs
Connectivity Yes Yes
Orchestration Yes Yes
Data Transformation Yes Yes
System Management Yes Yes
Component Integration Yes Yes
Data Integration Yes Yes
Stand Alone Deployment Yes Yes
Messaging/Queues Yes No
People Integration No Yes
Long Living Processes No Yes
Primarily used by IT Developers Yes No
Primarily used by Business Modelers No Yes
Table 1 – Similarities and Differences between ESBs and BPMs
5. Sherif Rasmy - BPM
5
In our use case, the ESB and BPM have unique and non-overlapping roles in the integration
architecture:
o SPX ESB: carries out all responsibilities set by EIP including Messaging, Routing,
Connectivity and Transformation. However, routing that is based on business logic is
delegated to the BPM.
o SPX BPM: carries out all the responsibilities related to business rules and routing.
BPM Vendors
Most BPM vendors implement the features we described but they vary in the level of
complexity.
According to Gartner, visionary leaders in BPM [3]
are: Pegasystems, IBM (Lomabrdi) and
Progress (Savvion).
We recommend SPX to use Activiti BPM Platform [6]
. Activiti is a light-weight workflow and
Business Process Management (BPM) Platform targeted at business people, developers and
system admins. Its core is a super-fast and rock-solid BPMN 2 process engine for Java. It's
open-source and distributed under the Apache license. Activiti runs in any Java application, on
a server, on a cluster or in the cloud. It integrates perfectly with Spring, it is extremely
lightweight and based on simple concepts.
Activiti implements all the key enterprise feature of BPMs. It also integrates with ServiceMix [7]
we recommended for SPX’s ESB.
Conclusion
BPMs empower business participants to design and implement their business processes rapidly,
without having to rely greatly on over stretched IT resources, leading to agile and cost efficient
development. It promotes close collaboration between business and IT and ensures that processes
reflect actual business needs. It enables business users to gain better control of their process related
tasks and facilitates dynamic work redistribution enhancing user productivity and process efficiency. It
puts business in the driver’s seat and provides them the ability to tune processes dynamically and
meet changing business needs [4]
.
6. Sherif Rasmy - BPM
6
References
1. Business Process Modeling. http://www.businessballs.com/business-process-modelling.htm
2. Mark Cooper and Paul Anderson. April 27, 2007. Business Process Management.
http://www.cio.com/article/106609/Business_Process_Management_BPM_Definition_and_Solutions#what
3. Magic Quadrant for BPM Suites. October 18, 2010.
https://wwwimages2.adobe.com/content/dam/Adobe/en/enterprise/pdfs/magic-quadrant-for-business-process-
management-suites.pdf
4. Business Driven Process Management. January, 2013. http://www.oracle.com/us/technologies/bpm/oracle-bpm-
business-driven-1906865.pdf
5. What is BPM? http://www-01.ibm.com/software/info/bpm/what-is-bpm/
6. Activiti BPM Platform. http://www.activiti.org/index.html
7. ServiceMix. http://servicemix.apache.org/
8. ESB paper. Sherif Rasmy. http://www.slideshare.net/sherifrasmy71/the-enterprise-service-bus