为了实现成功的模拟,您需要一个没有严重错误的完整流程模型。与任何复杂的系统设计活动一样,流程建模最适合采用迭代方法。捕获一般流程流非常重要,包括必须执行的任务和流程中的数据流向和控制流。还可以为流程设置各种依赖项,例如时间表和资源可用性。
流程建模的最困难方面涉及到了解业务上下文——业务目标和如何定义度量来确保目标得到实现。即使是最老练的业务分析人员,也需要可视化多种场景以更好地了解如何能够优化流程。
IBM 红皮书 Business Process Management: Modeling through Monitoring Using WebSphere V6 Products 提供了填充流程模型属性所涉及到的分析的详细案例研究。该案例研究跟踪一个订单处理流程,并开发了下列要求矩阵:
一旦完成此分析,则必须完成下列任务来准备 WebSphere Business Modeler 模拟环境:
在创建流程模型时,将包括必须执行的任务,并表明流程中的数据和控制流向。还可以为流程设置各种依赖项,例如时间表和资源可用性。通过定义具有模拟概要的模拟快照来访问模拟环境。模拟快照捕获流程在特定时间点的情况,包括所有当前缺省值和所包括的任务和活动的输入数据。
若要创建模拟快照,请执行以下操作:
此时 Project Tree 中应该可以见到一个新的模拟快照,如下面的图 1 所示。它是使用原始流程名称和时间戳来命名的。该模拟快照包含一个名为 Defaults 的局部模拟首选项文件夹和模拟概要。这些缺省局部模拟首选项是创建快照时的全局模拟首选项的副本。
模拟快照是流程模型在特定时间点的记录。此记录包含所有流程元素(如业务项、资源和全局任务)的副本。每个模拟快照都包含一个初始模拟概要。该模拟概要包含创建模拟快照时的流程模型副本。您可以自定义该模拟概要中包含的流程,并且可以在同一模拟快照中创建其他模拟概要。通常,当您操作模拟概要中的字段以确定对流程结果的影响时,将会为模拟快照创建多个模拟概要。
在对项目或流程本身做出更改以后,建议为流程创建附加模拟快照,以便能够比较这些更改的效果。模拟快照是流程模型和其他项目元素在特定时间点的副本。如果对流程模型或对其他流程元素做出更改,您的更改将不会在模拟快照和它所包含的模拟概要中反映出来。
流程模拟设置
模拟属性允许您配置流程,以使它以与现实业务流程相似的方式工作。在运行模拟时,您可以定义想要测量和分析的变量。
存在多种设置模拟属性的方法:全局、局部或流程或任务级别。这些设置级别的优先顺序为:
请注意,当 Defaults 文件夹中的局部属性被更新时,所有后续模拟概要都将继承那些新属性。
同样,全局模拟首选项包含任何新创建的模拟快照的局部首选项的缺省值。若要查看和设置全局模拟属性,请执行以下操作:
图 2 显示了 General 类别。
局部首选项表示流程快照中的概要的模拟属性缺省值。这些值包含在 Defaults 文件夹中,初始值是从全局模拟首选项继承的。然后这些局部模拟首选项被用作为当前快照创建的任何新模拟概要的缺省值,但现有的概要不受影响。由于局部首选项优先于全局首选项设置,因此,如果您希望更改正在运行的模拟的基本首选项而不修改标准设置,它们将非常有用。
若要修改局部模拟首选项,请执行以下操作:
同样,如果对局部设置作出更改,则建议创建新的模拟概要。每当对流程或项目作出更改时,都必须创建新的模拟快照。
流程模拟属性定义作为整体的流程的条件和行为。在流程级别设置的属性将优先于全局和局部设置。例如,如果希望用特定的输入来运行某个模拟,但是不希望这些输入延续到任何其他模拟,您可以更新流程模拟设置。
若要设置流程模拟属性,请执行以下操作:
更新后的流程模拟属性仅应用于当前模拟概要。正如本教程前面所述,如果创建新的模拟概要,它将继承全局和局部模拟首选项,而不是继承修改后的流程模拟属性。
有关流程属性首选项的详细信息,请参见联机帮助。
现在您已看到了为被模拟的流程设置属性的三种不同方法。您还可以为定义流程中各个活动的条件和行为的模拟属性设置值。如果希望仅对较大流程中的一个或两个任务的成本或性能运行“what if”场景,您可以调整那些特定任务的属性,同时保留该模拟中其余任务和活动的属性值不受影响。
若要更新单独任务的属性,请遵循与设置流程模拟属性值相同的过程,但是要确保选择活动而不是选择流程。或者,您也可以通过便利的表格格式更新各个任务的属性。
如图 5 所示,若要使用任务属性摘要表来设置特定任务的模拟值,请执行以下操作:
有关任务属性首选项的详细信息,请参见联机帮助。
现在您已经看到了如何更新全局、局部、流程和任务属性。下面可以开始在不同条件下运行模拟并分析结果了。
若要运行流程模拟,必须为流程提供一个或多个输入。在模拟概要中,令牌表示对流程和流程中的活动的输入。一个令牌对应于流程流中不同活动之间接收和传输的一个工作单元。有些令牌表示活动之间的数据传输,而其他令牌则仅表示控制转移。
您可以为与数据关联的任何输入指定令牌创建设置,无论它是对流程的输入还是对流程中的活动的输入。通过设置时间触发器,您可以指定为某个输入创建令牌的速率。该时间触发器可以是定期间隔,也可以是按某个分布来定义的可变间隔。您还可以设置:要生成的令牌数量、要一次性生成的令牌数量(每一批的令牌数量)和每个令牌的一次性成本。可以将这其中每个属性设置为常数值,或设置为某个定义为某种分布的可变值。还可以选择一个时间表来定义在其间创建令牌的周期。
模拟结果
模拟提供两类有关流程的信息:
模拟会话 表示某个时间点的流程快照。每次模拟运行都会创建一组保留在数据库中的结果,并在 Project Tree 中的模拟概要中由一个结果节点表示。
流程的每次运行称为一个流程实例。每个流程实例代表一个特定的执行路径或案例,选择一个路径而不选择另一个路径的可能性是使用概率来定义的。最后,流程实例中每个运行的任务称为任务实例。
可以通过选择 Simulation 控制面板右上角的下拉菜单图标()> Setting 来访问模拟设置,如图 6 所示。
可以启用或禁用对统计信息和结果的收集,还可以指定要显示的流程数量。可以在模拟期间关闭动画,从而使模拟能够运行得更快。如果启用了动画,则可以使用 Speed 滑动条来调整动画步调,如图 7 所示。最后,您可以选择保留最终结果。
模拟统计信息表示有关作为整体的流程和流程中的各个任务和连接的详细信息。选择 Processes、Tasks 和 Connections 选项卡以查看为模拟生成的数据,如图 8 - 10 所示。
选择 Processes 以查看与被模拟的流程相关的数据,包括开始时间、收入、成本和利润。
选择 Tasks 以查看与流程中执行的任务相关的统计信息,包括每个任务的当前激活实例数量和每个任务的累积成本、收入和利润。对于通过流程的每个令牌,都会分别显示一行数据。
选择 Connections 以查看流程中每个活动之间传输的令牌数量。
当模拟正在进行时,这些详细信息会不断地更新。您可以选择显示各个流程实例的统计信息或基于所有流程实例收集的统计信息。如果显示收集的统计信息,则该统计信息包括诸如成本和持续时间等的平均值,以及每个所显示平均值的标准偏差。
当您运行模拟时,该工具将模拟结果存储在数据库中,并向 Project Tree 添加一个模拟结果节点作为模拟概要的子节点。如果运行某个模拟的多个连续副本,则每个副本都产生各自的模拟结果节点。
流程通常包含多个路径,每个模拟运行表示一个潜在案例或流程实例。这些变化是通过向流程中的决策点分配概率或表达式来生成的。表达式规定了选择通过流程的路径的方法。因此,为了真正了解作为整体的流程行为,您应该运行多个模拟——足以涵盖已定义的概率以便获得有统计意义的结果集。
在大多数情况下,您仅指定有关决策选择和循环的概率。除了需要非常详细的低级分析的情况以外,概率对于执行大多数模拟已经足够了。或者,对于低级未来业务模型和清楚定义了任务和其他元素(如决策)的进出接口的模型,您也可以使用表达式。当设置基于表达式的模拟时,您将对如何在特定数据通过流程时处理该数据进行建模。表达式是捕获有关条件和模型中的业务规则信息的理想方法。
可以对下列对象分配概率分布:
WebSphere Business Modeler 支持下列分布:
Beta | 表示结果的有效程度 |
Continuous | 生成的值被平均分布 |
Erlang | 用于表示队列系统中的等待时间 |
Exponential | 当原始数据高度偏斜时非常有用;通常用于描述经济现象和诸如衰减等科学事件 |
Gamma | 用于约束为 >= 0 的连续随机变量,与等待时间有关 |
Johnson | 最适合分布 |
Lognormal | 用于 > 0 的随机变量 |
Normal | 典型的对称分布,值主要集中于中间(“钟形曲线”) |
Poisson | 在概率很小和机会很大时使用 |
Random list | 值的选择具有随机性的概率 |
Triangular | 最可能值 |
Uniform | 值的均匀分布 |
Weibell | 模型可靠性 |
Weighted list | 每个值的加权概率 |
每个分布的设置取决于所选的类型。有关设置流程模型中的概率和表达式的详细信息,请参见联机帮助。
任务通常依赖于关联的资源,并且从技术上讲,在获得必要的最基本资源之前,它不会开始执行。任务的资源分配受输入令牌创建设置和输入逻辑以及资源可用性的影响。任务的总体处理时间基于其资源分配时间表和关联的资源时间表,如图 11 所示。
总结
流程表示一个包含各种案例或潜在路径的可能复杂的系统,其中每组路径统计信息都受到决策概率和集体任务行为的影响。模拟期间的流程行为可能相当复杂,并取决于为每个分支定义的概率和表达式以及所涉及的任务资源要求