BPM Simulation
Introduction
ActiveVOS™ Designer accelerates business process design and model-driven development and integration by enabling better collaboration between business analysts, process architects and developers.
This is achieved as a result of allowing business analysts to generate better defined processes, using intuitive BPMN-compliant process diagrams and documentation of goals, Key Performance Indicators (KPI) and requirements.
Business Process Modeling Notation (BPMN) is the standard for modeling business process flows. Created initially by the Business Process Management Initiative (BPMI) and later adopted by the Object Management Group (OMG), it is a rich notation that simplifies the modeling of complex processes. BPMN has been developed with the primary goals of being easy to use and readily understandable by business and technology users.
The
ActiveVOS Designer business process model simulator extends and
complements its business process modeling functions with analytical
capabilities. Process architects can use the simulation capability to
evaluate the
impact of new processes or proposed changes to existing processes in a
model environment through the creation of "what-if" scenarios.
Simulation enables examination and testing of options prior to actually
implementing them in the "real" environment. Since simulation
approximates reality, it also permits the inclusion of uncertainty and
variability into the forecasts of process performance.
Objectives
- Create a new orchestration project based on the Human Approval Completed Orchestration Project Template
- Add a simulation nature to the project
- Define resource and resource pools and assign pools to activities in the process
- Create a simulation model
- Running the simulation
- Analyze the results
Simulation Overview
Globalization and competitive pressures urge many organizations to radically change business processes. Although this approach can provide significant benefits, such as reducing costs or improving efficiency, there are substantial risks associated with it. Using simulation for modeling and analyzing business processes can reduce that risk and increase the chance of success for a business process.
Analysts can use the simulation feature to evaluate the impact of
process changes and new processes in a model environment by creating
"what-if" scenarios. Simulation allows you to include uncertainty and
variability into forecasts of process performance.
By running simulations, you can quickly gain insights into
- Average process cycle time
- Average process cost
- Capacity planning
- Resource utilization
- Process bottlenecks
- Customized Key Performance Indicators (KPI)
You can create a simulation project and define resources and how those
resources can be shared among activities. You can also specify the
length of time being simulated and the distribution of incoming arrival
instances.
Simulation generates a set of instances according to the model, which
are input to the simulated process. Each instance then visits each task
according to the semantics of BPMN. When an instance arrives at an
activity, the resources are assigned as needed. If the resources are
not available, the instance will be blocked until resources are
available. Data is collected about the start and end times of the
activities in the simulation.
From within the Business Process Perspective, simulation provides an
animated view of the business process in action. Process simulation
enables the simultaneous viewing and examination of all cases in a
virtual environment.
Simulation output provides detailed information including resource
utilization levels, cost, and cycle time calculations. The data can be
saved in Microsoft Excel format for further analysis and customization.
Getting Set Up
This sample is designed to use ActiveVOS Designer to simulate the HumanApprovalCompleted orchestration project. Here are the steps required to get set up:
- Start ActiveVOS Designer and select File / New / Orchestration Project. Enter any value for the Project Name and press Next. Choose Human Approval Completed from the list of ActiveVOS Samples and press Finish.
- In the Project Explorer right-click on the project name and select Enable Business Process Simulation menu item.
- Note that two files are added to the project that are used for bpm simulation:
-
Important: Simulation requires that Microsoft Excel is installed on the same machine running the ActiveVOS Designer.
- Note: The support
folder included in the project's archive contains the completed files
created for this sample.
| configuration.experiment |
used for storing the simulation experiment properties created by the simulation model |
| simulation.resources |
used for adding and defining resources that have an impact on a running proces |
The Loan Process
The loan approval process represents a loan approval/denial process.
- There are three primary tasks: Assess Risk, to assess credit risk, ReviewLoan, a task completed by a human participant, and NotifiyCustomerServiceOfDecision, for the purpose of notifying the customer with the loan decision.
- Upon receiving the loan request, the credit risk is determined. If the risk level is high the loan is denied. If the risk level is low the loan is approved. If the risk level is set to review or the loan amount is greater than or equal to $10,000 the loan is routed to a human for approval and then forwarded to the customer service department so that they can reply with the decision.
- Here is the process that we will simulate:

Upon simulation the process architect plans to discover:
- The average cycle time for processing a credit application
- Resource utilization
- The resources needed for various loan application flows to meet service level agreements
- Activity-based costing and accounting
- Quality of service - percentage of loan applications that would be rejected because of timeout
Simulation will be used to generate results that can then be further analyzed using Microsoft Excel.
Modeling Resources
Three resource pools (loan reps, loan mgrs and Credit Check Partner Service) and three types of resources (account admin, loan manager and Credit Check Service) will be used for simulation. Resources are assigned to Resource Pools and resources in a pool can be prioritized. This means that resources with a lower priority will only be used if all high priority resources are currently being used. Additionally we can also model a resource cost structure that includes base cost, utilization cost and availability.
Here are the steps required to create the simulation resources:
Create the Resources
- In the Project Explorer open the simulation.resources file.
- Create the account admin resource by right clicking on the <Resource Model> element and select New Child / Resource
- In the Properties view select the General tab and set the following properties:
- Name: account admin
- Type: People
- Quantity: 3
- Select the Cost tab and set the following properties:
- Base Cost: 20.0 per hour
- Utilization Cost: 20.0 per hour
- Create the loan manager resource by right clicking on the <Resource Model> element and select New Child / Resource
- In the Properties view select the General tab and set the following properties:
- Name: loan manager
- Type: People
- Quantity: 1
- Select the Cost tab and set the following properties:
- Base Cost: 50.0 per hour
- Utilization Cost: 50.0 per hour
- Create the Credit Check Service resource by right clicking on the <Resource Model> element and select New Child / Resource
- In the Properties view select the General tab and set the following properties:
- Name: Credit Check Service
- Type: Equipment
- Quantity: 1
- Select the Cost tab and set the following properties:
- Cost Per Use: 0.01
Create the Resource Pools and assign resources
- Create the loan reps resource pool by right clicking on the <Resource Model> element and select New Child / Resource Pool
- In the Properties view select the General tab and set the following properties:
- Name: loan reps
- Prioritized: checked
- Resources: press the ... button and add the account admin resource and then add the loan manager resources. Make sure that the account admin resource is added first.
- Create the loan mgrs resource pool by right clicking on the <Resource Model> element and select New Child / Resource Pool
- In the Properties view select the General tab and set the following properties:
- Name: loan mgrs
- Prioritized: checked
- Resources: press the ... button and add the loan manager resource.
- Create the Credit Check Parter Service resource pool by right clicking on the <Resource Model> element and select New Child / Resource Pool
- In the Properties view select the General tab and set the following properties:
- Name: Credit Check Partner Service
- Prioritized: checked
- Resources: press the ... button and add the loan manager resource.
- Save the simulation.resources file.
Create a Simulation Model
At this point we will create a new simulation model based on the loanProcessHumanCompleted.bpel process. Here are the steps to accomplish this.
- Create a new folder in the project and give it a name of SimulationModel. This step is optional but it provides a useful folder to store our simulation models in.
- Right click on the folder and select New / Simulation Model
- Specify the following values for the simulation model and press Finish:
- Destination folder: /HumanApprovalSimulation/SimulationModel
- File name: loanProcessHumanCompleted
- ActiveVOS BPEL File: bpel/loanProcessHumanCompleted.bpel
Assign resources to the activities in the simulation model
Now that resources have been defined and added to resource pools the next step is to specify the resource pools used by each activity in the simulation model.
- Select the Assess Risk activity and on the Simulation tab specify the following properties:
- Resource Pool: Credit Check Partner Service
- Duration Distribution: Normal
- Time Unit: Second
- Mean Value: 5.0
- Standard Deviation: 1.0
- Select the ReviewLoan activity and on the Simulation tab specify the following properties:
- Resource Pool: loan reps
- For the account admin resource specify the following:
- Duration Distribution: Constant
- Time Unit: Minute
- Value: 20
- For the loan manager resource specify the following:
- Duration Distribution: Constant
- Time Unit: Second
- Value: 30.0 + loanAmount / 1000
Define How often the process is instantiated and instance data
Next we will define how often the process will be instantiated along with the message variables that have some sort of impact on the process. Since the branching logic in the process is based on the loan amount and risk level we will create instance data for these two message variables.
- Select the Receive Loan Application activity and on the
- Simulation tab specify the following properties:
- Interval Distribution: Constant
- Time Unit: Minute
- Value: 5.0
- On the Instance Data tab press the green + icon in the toolbar and create a new variable with the following properties:
- Variable Name: loanAmount
- Data Type: Integer
- Distribution: Normal
- Mean Value: 10000
- Standard Deviation 500
- On the Instance Data tab press the green + icon in the toolbar and create a new variable with the following properties:
- Variable Name: riskLevel
- Data Type: String
- Add three literals with the following properties:
-
Literal Probability Weight high .3 low .3 review .4
Set the simulation properties for each path
Now we will set the simulation properties for each path.
- Select the arrow leading in to the Under Review activity and set the following properties:
- Select the General tab
- Check the Default Flow checkbox
- Select the arrow leading in to the Approve activity and set the following properties:
- Select the Simulation tab
- Probablity based: unchecked
- Condition: riskLevel == 'low' && loanAmount < 10000
- Select the arrow leading in to the Deny activity and set the following properties:
- Select the General tab
- Uncheck the Default Flow checkbox
- Select the Simulation tab
- Probability based: unchecked
- Condition: riskLevel == 'high' && loanAmount < 10000
Run the Simulation
We are now ready to simulate the process. First we need to make sure that we are in the ActiveVOS Business Process Simulation perspective. Select Window / Open Perspective / Other / Simulation from the menu.
Here are the steps required to simulate the process:
- Select Run / Simulate from the menu.
- The Simulation Configuration is opened.
- Create a new launch configuration by pressing the left most icon in the toolbar.
- We will simulate the process for 1000 minutes so change the Stimulation Stop Time property to 1000 as displayed here:

- Press the Simulate button.
- Progess bars showing the resource utilization are displayed for each activity while the simulation is being run as shown here:

- When the simulation completes an Excel spreadsheet is opened with the results of the simulation. Take a few minutes to view the results.
Analyze the Results
Upon completion of the simulation an Excel spreadsheet will open with the results. The following images are some of the summary reports and graphs generated for the simulation. Additional details are also available.




Summary
In this sample we described how to create and run a simulation model for help with resource planning and process optimzation using the simulation features of ActiveVOS Designer. Simulation makes it possible to analyze resource utilization by changing resouce levels and re-running the simulation. Additional information can be found in the ActiveVOS Business Process Modeling and Simulation documentation available from the Help menu item and available online in the Product Documentation section of the Customer Education Center.
