探索中国CIO人才现状 | 第四季调研报告
基于流程模式的工作流研究
2013-11-27  作者:CIO时代网 

  工作流概念的提出解决了复杂系统不断演化和开放性的需求,其最大的优点是实现了应用逻辑与过程逻辑的分离,可以在不修改具体功能实现的情况下,通过修改过程模型来改变业务流程。为了规范工作流管理系统的业务,工作流管理联盟(WorkflowManagementCoalition-WfMC)给出工作流系统的参考模型、接口和执行过程。工作流系统中的核心部件是工作流引擎,通过引擎的调度来推动流程的顺利流转,引擎的品质直接影响到管理系统的效能。工作流管理技术作为工作流管理系统的重要思想方法,越来越受到以计算机协同工作为主体的各种信息系统的青睐,已经被广泛应用到多个行业的系统研制过程中,极大地降低了开发成本和风险,提高了系统的稳定性和扩展性,使得工作流管理系统更加面向市场、面向客户,更能提高企业的业务处理水平。


  一、流程模式及工作流建模工具Petri网


  流程模式用来表示工作流生成中的业务知识,包括业务目标、应用场景和解决方案3个部分。Petri网是图形化的过程描述工具,Petri网分析方法可用于静态分析也可用于动态分析,对具有并行性、分布性、并发性、异步性、不确定性的信息系统有很好的处理效率。Petri网主要由库所和变迁组成,通常用圆圈表示库所,用矩形表示变迁,用黑点表示标记且库所可以容纳标记。Petri网中的库所和变迁采用有向弧连接,共有两种类型的弧:从库所到变迁;从变迁到库所。从库所到库所,或从变迁到变迁的弧都是不允许的。变迁、库所和标记是Petri网中的三要元素,Petri网中的变迁表达事件处理、操作和转换过程。Petri网中的库所表达的是过程状态或者是阶段状态。整个工作流处理过程肯定要有一个处理对象,这个被工作流处理的对象就是用标记来表示的,它是工作流系统启动时的必不可少的条件之一。


  二、基于流程模式的工作流参考模型


  工作流参考模型是通过确定通用工作流应用体系结构的接口得到的,这些接口可以使产品在不同的结构层次上协同工作。所有工作流系统都包含一系列的公共组件,组件间采用一套定义好的方式进行协作;不同的产品在这些公共的组件中会表现出不同的性能。为了实现不同工作流产品间的协同工作,需要在这些组件间制定一套标准的接口和数据交换格式。通过实现这些标准接口,可以达到产品间的协同工作,从而确定市场上产品能在各个层次上功能一致。


  1.工作流参考模型的五类接口


  接口1:工作流执行服务与工作流建模工具间的接口,为实现对工作流过程定义的访问(如建立、修改、删除等)提供了一致的方法。接口2:工作流服务和用户应用之间的接口,这是最主要的接口规范,它约定所有客户方应用和工作流服务之间的功能访问方式。接口3:工作流引擎和应用服务间的直接借口,其目标是集成工作流和其它应用服务而无需考虑原有工作流管理系统。接口4:工作流管理系统之间的互操作接口,用于描述不同工作流产品的互操作性。接口5:工作流服务和工作流管理工具之间的接口,用于系统管理、应用访问工作流执行服务。


  2.参考模型五类接口的功能


  (1)工作流执行服务


  工作流执行服务是指由一个或者多个工作流引擎组成,以创建,管理和执行工作流实例,应用程序可能通过工作流应用程序接口(WAPI))与这个服务进行交互。工作流执行服务的主要功能是:解释流程定义,生成过程实例,并管理其实施过程;依据工作流相关数据实现流程活动导航,包括顺序或并行操作、期限设置等;与外部资源交互,完成各项活动;维护工作流控制数据和工作流相关数据,并向用户传送必要的相关数据。


  (2)工作流引擎


  工作流引擎是指为工作流实例提供运行时执行环境的软件服务或“引擎”。主要提供以下功能:对过程定义进行解释;控制过程实例的生成、激活、挂起、终止等;控制过程活动间的转换,包括串行或并行的操作、工作流相关数据的解释等;支持用户操作的界面;维护工作流控制数据和工作流相关数据,在应用或用户间传递工作流相关数据;提供用于激活外部应用并提供工作流相关数据的界面;提供控制、管理和监督的功能。


  (3)过程定义工具


  过程定义工具是管理流程定义的工具,它可以通过图形方式把复杂的流程定义显示出来并加以操作。流程定义工具同工作流执行服务交互,为用户提供一种对实际业务过程进行分析、建模的手段,并生成业务过程的可被计算机处理的形式化描述(过程定义)。这也是工作流系统建立阶段的主要任务。不同的工作流产品,其建模工具输出格式是不同的。接口1不仅使工作流的定义阶段和运行阶段分离,使用户可以分别选择建模工具和执行产品,并且提供了对工作流过程进行协同定义的潜在能力。


  (4)管理和监控工具


  管理和监控工具主要负责对组织机构、角色等数据的维护管理和工作流实例的运行进行监控。管理员可以通过工作流管理工具获得目前各个活动的运行情况报告,并可干预实例的推进。


  (5)客户端应用


  客户端应用是通过请求的方式同工作流执行服务交互的应用,也就是说是客户端应用调用工作流执行服务,客户端应用同工作流执行服务交互。它提供给用户一种手段,以处理实例运行过程中需要人工参与的任务。


  (6)调用的应用


  调用的应用指工作流执行服务在过程实例运行过程中调用的、用以对应用数据进行处理的应用程序和Web服务。


  三、应用实例


  测试一个输入字符串,如果符合预先给定的编码规则则返回True,否则返回False。下面我们利用workflow应用程序进行验证,并且给出验证是否通过的反馈。利用VS平台创建一个基于流程的工作流如图1。我们利用此工作流来解决已有的一个字符串是否是一个符合预先给定的编码规则的问题。我们预先在ifElseActivity1节点处添加判断条件,当workflow执行到分支时将强制其执行一些动作(如条件判断为True时,将执行左边分支;反之,执行右边分支)。此步骤通过激活ifElseBranchActivity1分支的condition属性,并在condition属性中添加事件名来完成。当workflow流到判断节点这个事件将被激发。内部事件被激发后,ConditionalEventArgs类型的变量e,将给出workflow流转的依据。而e的取值将由事件里的满足特定条件的正则表达式来确定。刚刚增加的这个条件将引发工作流选择左边路径还是右边路径。但两条路径都没有指明工作流将进行的动作,因此需要在两条分支中添加活动。此时通过在左边分支的codeActivity1图标的ExecuteCode属性中添加事件来表明输入字符串已被判断为合法的,同时在codeActivity2图标的ExecuteCode属性中添加事件来表明输入字符串已被判断为不合法的。综上可知,工作流流到ifElseActivity1节点处,将完成输入的字符串是否合法的判断,同时根据条件进行判断它将引发工作流选择左边路径还是右边路径。同时我们可以在左边分支和右边分支中添加活动来指示输入的字符串是否合法的判断,即给出两条路径中工作流流入时将进行的动作。最后workflow应用程序流向终点完成判断过程。


  四、结束语


  工作流技术是一种实现业务过程的分析、建模、优化、管理与集成以及最终实现业务过程自动化的方法,它可以与其它应用系统有效结合,构建各种业务管理系统。本文探讨了工作流参考模型、流程模式和工作流建模工具Petri网。实例表明,工作流技术是提高业务过程效率的关键技术,基于流程模式的工作流技术的业务系统具有开放性、可扩展性等特点。