Wednesday, 14 August 2013

Running Simulations in Oracle BPM


Business Process Simulation Syndicate This

Business process simulation plays an important role in the continuous improvement approach to business process management (BPM). By running business process simulations, companies can predict how business processes perform under specific conditions. Simulations can also be used to test process design, measure performance, identify bottlenecks and test changes. Ultimately, process simulation can identify the most effective process flow and help prevent problems from cropping up during process execution. Simulation models can be very simple or highly complex.

   By running simulations, business analysts and developers can predict the behavior of business processes under specified conditions. They can run simulations to verify that the output meets the metric objectives and identify any bottlenecks. They can also run simulations to test the effects of changes on an existing process design.

10.1 Introduction to Running Simulations in Oracle BPM

After you define a simulation, you run it in Oracle BPM to determine the efficiency of that definition. Your simulation can reflect either real or anticipated data.
Using the simulation capabilities of Oracle BPM, you can:
  • Define multiple models for a given process so that different conditions can be analyzed
  • Run multiprocess simulations to learn how working in different business processes can affect resources


10.1.1 Simulation Models and Simulation Definitions

Before you run a simulation, you must specify the behavior of each element of your process. To define a simulation you must create and configure the following elements in your BPM Project:
  • Simulation model
    Enables you to define the behavior for an individual process model. Note that, for any given process model, you can have multiple simulation models, so that you can mimic a variety of scenarios.
  • Simulation definition
    Enables you to define the processes and resources that define a simulation scenario.In a simulation definition you specify the processes that participate in the simulation by selecting the simulation models associated to those processes. A process may have multiple simulation models defined for it. If a process has multiple simulations models defined, then you must select one of those models to use in the simulation definition.
Simulations do not call each individual task within a process. For example, they do not run the service associated to a service task, variables are not assigned values, and external resources are not updated.
However, simulations mimic the behavior of an activity using the following simulation variables that you can define using the Simulation Editor:
  • duration
  • resources
  • cost
  • queue information
  • probability of the instance passing through a sequence flow

10.2 Creating Simulation Models

Simulation models enable you to simulate the behavior of an individual process. They enable you to define how a process behaves as part of a simulation definition.
You can define multiple simulation models for each process, creating different simulations based on different combinations of resource allocation and activity behavior.

10.2.1 How to Create and Configure a Simulation Model


To create and configure a simulation model:
  1. In the BPM Project Navigator, expand the Simulations node.:
  2. Right-click the Simulation Models node.
  3. Select New Simulation Model.
    The Create Simulation Model dialog box appears.
  4. Select a process.
  5. Enter a name for the simulation model.
  6. Click OK.
    The simulation model appears under the Simulation Models node in the BPM Project Navigator and the Simulation Model editor opens.
  7. Specify the number of instances to create during the simulation:
    1. Select Specify number of process instances to be created.
    2. Specify the number of instances to create during the simulation.
    Note:
    The process simulation runs until the completes the specified duration or reaches the maximum number of instances.
  8. In the Flow Nodes tree, select an activity.
    Depending on which type of activity you select, the following tab pages appear on the right of the Flow Nodes tree:
    • Duration: defines the distribution that determines the time an activity takes to complete.
    • Resources: specifies the number of participants assigned to a particular role. You can define this parameter in the simulation model or at a global project level in the project simulation definition.
    • Cost: specifies the cost of processing the activity. For user tasks it also specifies the cost of the resources assigned to the user task.
    • Queue Info: defines the simulated behavior of how process instances are queued for a given activity
    • Sequence Flows: determines the probability percentage of instances routed through the different outgoing sequence flows
  9. Configure each activity as follows:
    1. In the Duration page, in the Instance Execution Duration section, specify the Distribution Type. Options are listed and described in Table 10-1.

      Table 10-1 Options in the Simulation Model Flow Nodes Duration Page
      Option Description
      Constant Specifies that the simulation model uses the value specifies in the Period property to calculate the completion time for all the activities in the process.
      Uniform Determines the period required to complete an activity consistently, taking into account the variation specified in the delta property. When you select this option, you are prompted to specify each of the following:
      • Mean: Determines the mean time it takes to complete an activity
      • Delta: Defines the upper and lower limit variation of the mean parameter when determining how long it takes to complete a simulated activity
      Exponential Determines how long it takes to complete a simulated activity by specifying how many instances are completed within a specific period. When you select this option, you are prompted to specify:
      • Average Frequency: Determines the number of average instances processed within the interval defined by the Every property
      • Every: Defines the interval used for exponential distribution
      Normal Uses the Gauss Bell distribution to determine how long a simulated activity takes to complete. You must specify the mean and standard distribution. When you select this option, you are prompted to specify:
      • Mean: The mean period required to perform an activity
      • Standard Deviation: The standard deviation of the mean period required to perform an activity
      Real Enables you to specify the amount of time required to complete a simulated activity for a specific time interval. When you select this option, you must specify:
      • Distribution Criteria: determines the time interval for determining how long a simulated activity takes to complete
      • Interval: specifies the period during which the simulation runs.
      • Mean: defines the mean time to complete an activity
      • Standard Deviation: defines the standard deviation of the mean parameter
    2. In the Cost page, specify the following:

      Table 10-2 Properties in the Simulation Model Flow Nodes Cost Page
      Property Description
      Fixed Base Cost Defines the cost required to perform the simulated activity
      Fixed Base Cost Plus Resource Cost Calculated based on the defined cost per hour and the time it takes the resource to execute the instance. This property is only available for user tasks.
    3. In the Queue Info page, specify the following:

      Table 10-3 Properties in the Simulation Model Flow Nodes Queue Info Page


      Queue Warning Size Determines the number of incoming instances that can be waiting for an activity simultaneously.
      Activity Queue Policy Determines how incoming instances are handled by the activity. The following values are available: F.I.F.O (First In, First Out), L.I.F.O (Last In, First Out), Random, and By Priority
    4. In the Sequence Flows page, move the slider to specify the probability of each outgoing sequence flow occurring.
      If the activity contains boundary events, then the flows of the boundary events appear in this page. For more information about configuring boundary events, see Section 10.3, "Configuring Boundary Events".

10.3 Configuring Boundary Events

If the BPMN process you want to simulate contains boundary events, then you must specify the probability of these events happening.
You can specify the probabilities for the different boundary events in the Outgoing Flows page.
The way you specify the probability of a boundary event varies according to the type of the event:
  • Interrupting Boundary Message and Error Events
    The probabilities of all the interrupting boundary message and error events for an activity are related. If you add these probabilities the result must always be 1.
    The simulation model editor displays a set of sliders to configure these activities. If you move a slider, the values in the other sliders automatically adjust. You can lock the values by clicking the lock icon next to the slider. When you lock a value the simulations model editor does not modify it when you move the other sliders. The simulation model editor forces you to leave at least two values unlocked.
  • Non-Interrupting Boundary Message and Error Events
    The probability of a non-interrupting boundary message or error event is independent from the probability of other events happening. This value of this probability can vary between 0 and 1.
    The simulation model editor displays a slider for each non-interrupting boundary message or error event. You can move this slider to specify any value between 0 and 1.
  • Timer Events
    To specify the probability of a boundary timer event, you must define the time interval between occurrences of the event. If the implementation of the timer event in the BPMN process uses an expression, then you must define a fixed time interval to use during the simulation. If the implementation of the timer event in the BPMN processes uses a fixed time interval, then redefining the time interval is optional because you can use the interval defined in the BPMN process for the simulation.
    The simulation model editor displays a table for interrupting timer events and another one for non-interrupting timer events. You can redefine the time intervals for each of the events using these tables.
Figure 10-1 shows the Approve Quote user task with different types of boundary events. Figure 10-2 shows the simulation configuration page for the Approve Quote user task.

Figure 10-1 The Approve Quote user task with multiple boundary events
Description of Figure 10-1 follows
Description of "Figure 10-1 The Approve Quote user task with multiple boundary events"

Figure 10-2 Outgoing Flows tab page for the Approve Quote task
Description of Figure 10-2 follows
Description of "Figure 10-2 Outgoing Flows tab page for the Approve Quote task"

10.4 Creating Simulation Definitions

You can create a simulation definition to represent a simulation scenario for a group of simulation models. You can select which simulations model to run from the group of simulation model contained in the simulation definition.


10.4.1 How to Create a Simulation Definition

In a simulation definition, you can customize the following parameters to see how they influence the performance of your project:
  • Start time and duration of the simulation
  • Which process simulation models you want to include in the project simulationThe participant resources you want to include in the simulation

To create and configure a simulation definition:
  1. In the BPM Project Navigator, expand the Simulations node.
  2. Right-click the Simulation Definitions node.
  3. Select New Simulation.
    The Create Simulation Definition dialog box appears.
  4. Enter a name for the simulation definition.
  5. Click OK.
    The simulation definition appears under the Simulation Definitions node and the Simulation Definition editor opens. Figure 10-3 shows the Simulation Definition editor.

    Figure 10-3 Simulation Definitions Project Page
    A description of this graphic follows.
    Description of "Figure 10-3 Simulation Definitions Project Page"
  6. Specify the general parameters for this simulation as described in Table 10-4.

    Table 10-4 General Parameters for Simulation Definitions
    Parameter Description
    Start Time Defines the start time for the simulation. This time is used only for logging. It is not used for scheduling purposes.
    Duration Defines the period the simulation runs. This interval is specified in months, days, hours, minutes, and seconds.
    Let in-flight instances finish before simulation ends If selected, simulation ends only when the specified number of instances completes. If unselected, simulation stops after the simulation duration is completed. At that point, all incomplete instances are shown in either “in-process” or “queue” status.
  7. The Project page contains a table that lists all of the processes within the current project. For each process, you can select which simulation model you want to use. Also, you must specify which processes to include in the simulation.
    Specify the parameters in the Project page as described in Table 10-5.

    Table 10-5 Project Parameters for Simulation Definitions
    Parameter Description
    Process Lists the processes that you can include in this simulation.
    Model For each process, lists the model specified in Section 10.2.1, "How to Create and Configure a Simulation Model"
    Include in Simulation Enables you to specify whether to include the process in the simulation
    After you specified the parameters in the Project page, select the Resources tab.
  8. In the Resources page, you can define the resources to use within the simulation.
    All processes included in the simulation share these resources. The cost of each resource is defined per hour.
    To define the resources click the following buttons:
    • Add Resource: adds a resource to the simulation definition
    • Delete Resource: deletes the selected resource from the simulation definition
    Figure 10-4 shows an example of the Resources page.

    Figure 10-4 Simulation Definitions Resources Page
    A description of this graphic follows.
    Description of "Figure 10-4 Simulation Definitions Resources Page"
  9. Click Save.
    Note:
    Ensure you saved the changes before running the simulation. If you do not save the changes, then the simulation engine does not use them when you run the simulation.

10.5 Running Simulations

You can pause, stop, or run a simulation to the end. If you stop the simulation, you must restart it from the beginning.

10.5.1 How to Run a Simulation

To run a simulation, you must have created simulation models and at least one simulation definition.

To run a simulation:
  1. In the BPM Project Navigator:
    1. Open the Simulation view.
    2. From the Simulation list, select the simulation definition you want to run.
    3. Click Run Simulation.
      The simulation begins.


10.5.2 What Happens When You Run a Simulation

The animation of the simulation appears in the project editor, and the results appear according to your specifications in the Simulation page.
Note:
If you place the mouse pointer over a column in the chart, a tooltip with the value of the activity or indicator appears.


10.5.3 Understanding the Simulation View

The simulation view enables you to configure and run a simulation. Figure 10-5 shows a simulation view.

Figure 10-5 Example of a Simulations Page
This illustration is described in the text.
Description of "Figure 10-5 Example of a Simulations Page"
The toolbar on the Simulations view enables you to:
  • Select which simulation to run from the Simulation list.
  • Start, stop, and pause the simulation, or run it to the end by clicking the appropriate button. If you choose to run the simulation to the end, the simulation runs in the background with no animation making the simulation faster.
    Note:
    If you stop a simulation, you must restart it from the beginning.
  • Select the speed at which to run the simulation from the Speed list. In normal speed, instances are created at rate of one per second.

10.6 Analyzing the Results of a Simulation

You can display simulation results either as a chart or as a log file by clicking either the Chart tab or the Log tab in the Simulations window.
The Log tab displays a log that tracks the movements of all the instances in the simulated process. Each line in the log contains the following information:
  • Date and Time
  • Process
  • Instance
  • Instance path


10.6.1 How to Analyze the Results of a Simulation Using a Chart

The Chart tab enables you to select a type of chart to display the result of the simulation. You can configure this chart to display the resources to monitor. You can also select the units the chart uses to measure the resources use.
In the Chart tab you can configure how to display the chart with the results of the simulation by configuring the following:
  • Type of chart
  • Activities or resources to monitor
  • Indicators
Figure 10-6 shows the toolbar for a sample Chart page.

Figure 10-6 Simulations Chart Page
The description of this graphic follows.
Description of "Figure 10-6 Simulations Chart Page"

To analyze the results of the simulation using a chart:
  1. From the list below the Chart tab, select the type of chart to display.
    They available types are:
    • Column
    • Bar
    • Bar 3D
    • Column 3D
    • Table
  2. Click the Configure icon located on the right hand side of the Charts tab.
    A Configuration dialog box appears.
  3. Select a resource or an activity to monitor.
  4. Select the axis where to display the activities or resources.
  5. From the list below the Show list, select the activities or resources to monitor in the simulation.
  6. From the Indicators list, select the type of indicators to monitor.
    The available types of indicators are:
    • Cost
    • Time
    • Units
  7. From the list below the indicators list, select the indicators to monitor.
    The chart displays the variables and indicators you selected.
  8. Click Close.
  9. Optionally, click the drill up and drill down icons located next to the Types list to increase or reduce the level of detail in the chart.


10.6.2 How to Generate a Simulation Report

You can generate a simulation report that contains the result of the simulation.

To generate a simulation report:
  1. Run the simulation.
    For more information on how to run a simulation, see Section 10.5.1, "How to Run a Simulation".
  2. Click the Generate Documentation icon.
    The Simulation Report dialog box appears.
  3. In the Directory Location field, enter a directory to store the report or click the button next to it to browse the file system and select a directory.
  4. In the Activities tab, select an option:
    • Summary
    • Details
  5. In the tree below, select the activities to include in the report.
    You can specify which activities to include using the following options:
    • Select All to include all the processes in the simulation definition.
    • Select a process to include all the activities in the selected process.
    • Individually select the activities to include.
  6. In the indicators tab, select an option:
    • Summary
    • Details
  7. In the tree below, select the indicators to include in the report.
    You can individually select which indicators to display in the report, or select a type of indicator to display all the indicators of that type.
  8. Select the type of graphic to use in the report.
    The preview are shows an example of the graphic you chose.
  9. Click OK.


10.6.3 What Happens when You Generate a Simulation Report

Oracle BPM Studio creates a directory using the name and location you selected. This directory contains an HMTL file for each of the processes in the simulation.
The HTML file contains:
  • a graphic that displays the result of the simulation
  • a link to a CSV file with the simulation data
  • a link to a CSV file with the simulation resources data
You can view the CSV files with the simulation data and resources data in a spreadsheet application.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.