1、引言
随着企业业务流程自动化、企业经营过程重组的需求,与之密切相关的核心技术——工作流管理技术的研究越来越受到企业界和学术界的重视,己开始进入了一个百花齐放的阶段。更多更新的技术被集成到工作流中,产品性能得到了不断的提高,大规模的过程模型的建立成为了可能。这就对模型实施之前的分析提出了更高的要求。
同时,为了减少企业成本,使企业具有更好的柔性,能够在日益激烈的市场竞争中立于不败之地,人们提出了企业经营过程重组(Business Process Re-engineering)的概念。企业经营过程重组是对企业的经营过程进行重新思考与再设计,以追求企业性能的突破性提高。BPR非常复杂,它的实施需要通过先进的过程建模和分析手段来描述、分析和评价经营过程,发现其中的问题并对其进行优化。
于是,仿真分析法成为了一种经济可行的手段。工作流模型仿真分析方法就是支持BPR的一种可行的和有效的分析手段。对工作流模型进行仿真,模拟工作流模型的运行,并根据仿真结果来推断、评估或评价真实流程的性能。通过定量分析经营过程运行的各项性能指标来判断经营过程是否存在瓶颈或死锁因素、经营过程运行性能如何,以及确定如何调整和优化过程模型。仿真结果可以作为经营过程的评价,过程改进方案的可行性和有效性验证的依据,也是决策的可靠基础。
西安协同时光软件公司是中国领先的中间件产品供应商,其SynchroFLOW协同工作流管理系统、SynchroESB协同企业服务总线、SynchroMQ协同消息中间件等产品享有盛誉。SynchroFLOW工作流管理系统包括工作流模型设计工具,组织结构建模工具,信牌驱动工作流引擎及其管理控制台,但是缺少工作流仿真的相关功能。为开发商着想,为最终用户着想,西安协同实现了一个B/S结构的非交互式工作流仿真系统,通过对工作流模型中的各个活动的模拟执行,在仿真过程中分析和收集性能评价指标并生成仿真报表最终展示给用户,在通讯、能源、税务等领域已都到了应用。
2、名词
BPR:Business Process Reengineering/Business Process Re-engineering的缩写,意为业务流程重组。它的基本思想就是必须彻底改变传统的工作方式,也就是彻底改变传统的 自工业革命以来、按照分工原则把一项完整的工作分成不同部分、由各自相对独立的部门依次进行工作的工作方式。
工作流仿真:工作流的执行不需要人的参与,它是利用离散事件驱动的仿真执行部件模拟执行工作流模型中的各项活动,自动推进工作流实例。
3、SynchroFLOW 工作流仿真
SycnhroFLOW工作流仿真是一种通过建立工作流虚拟运行环境执行工作流仿真的方法。它以集中式仿真引擎解释工作流仿真模型,仿真活动的执行,处理仿真过程中的不确定性,从而完成工作流模型的仿真。同时,在关键活动或关键过程的显示上,引入Flash动画,使用户真实感受到业务环境、条件或状态的变化。
仿真系统架构是围绕工作流引擎构建的,包含三个层次:界面层、仿真执行层、数据层,如下图所示。

3.1界面层
界面层是工作流仿真需要与仿真用户交互的模块,包括仿真环境设置、仿真控制、仿真动画显示和仿真报表生成。
3.1.1仿真环境设置
仿真环境设置就是定义仿真场景。场景是一组与仿真运行有关的数据。场景的设置包括仿真运行设置、动画显示设置和全局变量设置。设置完仿真环境后,用户就可以运行工作流模型的仿真。全局变量设置不仅可以设置全局变量的个数,而且可以设置全局变量的生成百分比。
3.1.2仿真控制
仿真控制,设置完仿真环境后,用户就可以运行工作流模型的仿真了。在仿真过程中控制流程的启动、暂停和终止仿真过程的执行
3.1.3仿真动画显示
为了让用户从一种直观的、可视的角度了解仿真过程中路径、活动实例等的状态,仿真动画将流程执行同步的、动态的展现给用户。
3.1.4仿真报表
仿真报表生成器将收集到的仿真数据进行分析统计处理,生成一系列的仿真报表,如路径信息表、活动实例信息表和错误信息表等。路径信息表包括流程实际流转路径、全局变量、错误信息和错误原因。活动实例信息表包括流程实例化活动的名称、次数和实例化率。
3.2仿真执行层
仿真执行层是主要是仿真引擎,它是系统的核心部分。仿真引擎所包含的部件分为两种:一个是原有的执行引擎,一个是离散事件仿真部分。原有的执行引擎是工作流系统固有的,是对工作流引擎的重用;而离散事件仿真部分是仿真引擎所必须扩充的。仿真执行部件利用SynchroFLOW的接口(Interafec)驱动工作流引擎。随机数生成器、统计计数器和消息发送器就更是多数离散事件仿真系统所必备的部件,仿真引擎从随机数生成器获取全局变量,调用工作流API推进事件执行,仿真引擎会将执行结果发给统计计数器,仿真引擎将活动属性发送给客户端。客户端接收并处理消息,将动画显示到界面层。
3.2.1仿真引擎
工作流仿真引擎是仿真工具的核心,他的功能影响了流程的流转和动画的显示;他的性能影响了工作就执行的效率和动画显示的速度。因此,设计一个功能全面,执行效率高的仿真引擎是非常重要的。
仿真引擎应该具有以下功能:
1) 根据选择的模型和仿真次数,完整的完成流程。并且支持异步活动组、同步活动组和其他不产生工作项活动元素。
2) 支持对子过程和内置块的动画显示。
3) 保存仿真报表。
4) 支持多用户仿真。
5) 支持仿真的暂停、停止。
3.2.2随机数生成器
随机数生成器是为了保证每个分支路径都能覆盖到,而且仿真人员可以根据真实环境设置出现的概率,在全局变量设置中进行设置。随机数生成器根据仿真的次数和概率的得到该全局变量的出现次数,然后产生所有的随机数。这样可以保证所有的全局变量、所有的分支都和真实环境接近,从而达到仿真的目的。
3.2.3统计计数器
仿真报表的产生需要统计计数器的支持,它记录在流程流转过程中活动和路径的变化情况。它包括活动的名称、活动实例化次数、路径、全局变量和错误原因等。
3.2.4消息发送器
消息发送器承担了服务端和客户端的消息通信,是动画显示的驱动。仿真的及时性要求服务端数据的变化要及时反馈到客户端,因此采用BlazeDS的stream消息发送模式。将活动实例的信息发送到前端,前端根据活动的状态显示流程运行情况。
3.3数据层
数据层主要包括工作流模型文件、业务数据库库和仿真数据库。仿真模型文件主要保存活动的相关属性、全局变量的相关信息和事件的相关信息。业务数据库是工作流数据库和业务逻辑数据库组成。工作流数据库保存流程流转的相关信息,业务逻辑数据库保存业务流程项目数据信息。仿真数据库保存工作流的流转的相关信息和仿真报表的相关信息。
4、结论
工作流模型仿真是利用离散事件驱动的仿真引擎模拟执行工作流模型中的各项活动,自动推进工作流实例。经过多次仿真运行,得到一系列关于工作流模型运行的统计数据,如路径、活动实例化次数和实例化率等。用户可以在这些仿真统计数据的基础上进一步分析和评价企业经营过程的各项性能。
仿真分析法具有以下优点:
(l)运行时间短、效率高:一个需要运行几天或者几个月才能完成的经营过程,其仿真过程可能只需要几个小时甚至几分钟。
(2)安全可靠,风险小:工作流模型仿真是通过设置仿真环境、修改工作流模型和仿真初始化条件来模拟业务过程的变动和市场环境的变化,它不会对实际的业务过程的运行产生任何影响,避免了改变实际的业务过程可能带来的不可挽回的影响。
(3)经济:工作流模型仿真过程中,除了仿真系统的运行消耗外,不需要消耗其他的企业资源,因此,仿真运行成本低,非常经济。
从上面简要列举的特性,我们不难发现, SynchroFLOW 工作流仿真作为SynchroFLOW重要补充,是SynchroFLOW的一次大的提升。其将给应用系统提供易维护、高效、支持大并发处理的中间件服务平台。这样的应用系统必将会给最终客户带来更大的安全感和满意度。