基于SSH2动态工作流模型的研究与设计

时间:2022-08-20 09:25:39

基于SSH2动态工作流模型的研究与设计

摘要:工作流技术是通过工作流对业务流程化的管理,是利用计算机辅助预先定义好的工作流逻辑部分自动或完全,协同推进任务的过程实例来达到执行企业级业务的经营过程,并使伴随着流程实例中的文档或任务信息能够在不同的执行者之间传递与执行。目前这项技术被广泛地运用于企业的内部与企业之间的业务。但由于市场环境的瞬息万变,企业需要不断地改善自身的业务流程过程,而与之相应的要求应用工作流技术的业务也能够动态响应企业经营过程的这些动态变化,能够动态地修改由业务过程定义的任务流程过程,从而实现对任务流程高度的灵活性和有效有序化的管理。该课题主要研究的工作是在分析WfMC(Workflow Management Coalition,工作流管理联盟)工作流管理系统的体系结构与动态工作流技术的特点及其应用以及SSH2-MVC设计模式理论,基于以上这些基础理论,设计与实现了基于Web服务灵活的、易扩展的SSH2(Struts2 Spring Hibernate)动态工作流模型,此模型可以适应动态修改任务流程过程,主要是在流程定义文件中设定任务及时处理等级度,模型会依据它进行动态地修改任务流程的执行过程。模型适应对执行流程实例的异常处理,采用查找异常活动节点最近任务流程正常执行的活动节点,同时启动补偿活动节点机制,从而达到处理流程实例异常的目的,使流程实例能够在异常活动节点完成执行并能够提交给下一个活动节点。对于与业务相关的参数,采用动态表单机制,模型对表单的设计与实现分别从它的数据类型,输入形式以及独立存储动态表单的参数等。最后对SSH2动态工作流模型进行了性能测试,根据测试的结果显示此模型可以适应于工作流技术在企业级业务变化的需要。

关键词:工作流管理系统;动态工作流技术;SSH2-MVC;SSH2动态工作流模型

中图分类号:TP315文献标识码:A文章编号:1009-3044(2011)19-4719-05

Research and Design Based on SSH2 Dynamic Workflow Model

LIANG Yong-chao, ZHU Yu, ZHANG Kun-ao

(Computer Science College, Xi'an University of Science and Technology, Xi'an 710054, China)

Abstract: Workflow technology is through workflow to the service flow process management, is auxiliary defines workflow logical gate in advance using the computer automatic or completely, the coordination advancement duty's process example achieves carries out the enterprise service management process, and causes to follow in the flow example documents or the duty information can between the different performer the transmission and the execution At presentthe technology has been widely applied in the enterprise interior and between enterprise's business. However, because of the rapidly changing market environment, enterprises need to constantly improve their business process ,And the corresponding requirement application workflow technology business can also dynamic response of enterprise management process, Can dynamically modification process definition by the task of business process, so as to realize the process of task workflow is a high degree of flexibility and effective management of orderly.The main topic of research work is in the WfMC workflow management system architecture and dynamic workflow technique and its applications, SSH2-MVC design pattern theory, Based on above these basic theory, Design and implementation of Web services based on flexible, easy to extend the SSH2 dynamic workflow mode. This model may adapt to dynamically modify the task flow process, mainly in the process definition file, set the task in time level, model will be modified dynamically based on its task execution process. Model will be modified dynamically based on its mandate implementation process. Model adaptation process instance of the implementation of exception handling, the use of unusual activity to find node in the normal process of the implementation of the recent activities of the task nodes. At the same time start the compensation mechanism for active nodes, So as to achieve the purpose of exception handling process instance, so that the process complete the execution in the abnormal movement node and can submit gives the next active node. Regarding with the service related parameter, uses the dynamic form mechanism, the model with realizes to the form design separately from its data type, the input form as well as the independent memory dynamic form parameter and so on. Finally, dynamic workflow model SSH2 performance test, according to test results show that this model can adapt to the workflow in the changing needs of enterprise-class business.

Key words: workflow management system; dynamic workflow technology; SSH2; SSH2 dynamic workflow model

工作流最初起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序的活动提出的一个概念。企业应用工作流技术,是希望通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,来达到改进和优化业务流程,实现更好的业务过程控制,以便提高企业级业务流程的工作效率,提高企业组织部门的办事效率,从而达到降低生产成本、提高顾客服务质量,提高处理业务流程的柔性并提升企业生产经营管理水平和企业竞争力的目标[3]。但随着信息化技术发展进入了一个全新的时代,企业面临着跨区域业务量不断增多,市场竞争的日益激烈,这些都要求企业必须运用信息化技术来实现企业内部的业务整合,实现企业跨地域甚至全球化的协同业务处理,世界经济的一体化发展,需要企业不断的整合国际市场资源。也更需要企业能够将业务流程过程进行快速的重组,而这些变化也相应的要求信息系统能够快速的适应这些变化[3]。

在我国,由于中小企业占国民经济绝大多数,加之信息化技术快速的发展与市场需求的多变,企业相应处理业务的能力要不断适应外部的变化,采用工作流技术使业务计算机化,可以提高企业处理企业与企业之间、企业内部业务的能力,可以预见采用工作流技术的产品。本文研究的意义在于:SSH2动态工作流模型最大关注是如何缩短企业任务流程的闲置时间,提高企业级业务处理的能力,使企业能够关注于真正对企业有增值意义的业务,降低生产成本,提高企业生产经营过程中管理水平和提升企业的核心竞争力,通过流程自动化以及各类表单统计查询功能,提高企业的决策能力。SSH2动态工作流模型可以在最大程度保证企业的信息系统能够顺利的进行扩展来满足不断变化的市场环境,使企业的工作内容更加丰富,提高企业从业人员的业务能力,改进企业的工作质量。

1 动态工作流技术理论概述

随着企业环境的持续变化,不确定性和多变性已经成为现代企业流程的内在特点,因此提高工作流管理系统应对流程变化的能力,已经成为工作流领域研究的热点问题之一。动态工作流是指组成工作流的任务组件在运行时才能确定下来,指在过程运行时对该过程进行某种修改,能够支持比较灵活的业务逻辑实现,并在较短的时间内,建立适应具体业务变化的动态工作流系。一般情况下,工作流程的调整意味着整个业务流程的重新设计,而基于动态工作流技术的系统由于功能设计和实现相分离,可以将单纯的流程调整通过流程定义调整的简单方式解决,而不会影响到如何实现的部分[4]。

如果一个工作流管理系统支持对于正在运行工作流过程实例的修改,我们称这个工作流管理系统为动态工作流系统,相应的,那个被修改的工作流称为动态工作流。

在国外,德国ULM大学Reichert提出了一种支持动态修改工作流模型的机制[5]。这种机制提供了对工作流实例进行修改的能力,提出了调整任务状态,流程中插入活动节点等方法。这种方法能够解决很多问题。但是这种修改对工作流模型和实例来说是一种紧密祸合的关系,修改模型一定影响到过程实例。这对临时性修改来说就是一种资源浪费。

美国California大学Peter J.Kammer[6]等提出了一种部分执行和反馈的方法,就是事先不定义整个流程,在实际运行的过程中运行到哪里,由当时的执行人生成下一个任务项,将任务传递到下一个执行人,通过反馈的方式来通信。这种方法很灵活,但是对用户来说复杂,工作量在某种程度上变得更大了。

2 SSH2动态工作流模型设计模式理论构简介

2.1 MVC架构设计模式简介

MVC是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式。M代表Model(模型),V代表View(视图),C代表Controller(控制器)[4],MVC主要的思想是将应用程序的输入,处理和输出强制性地分开,将应用程序开发细分为3个核心部件,模型,视图,控制器,它们各自负责不同的功能,既分工明确又相互协作,不但实现了减弱业务逻辑接口和数据接口之间的耦合,也让视图层更富于变化[5]。SSH2(Struts2 Spring Hibernate)架构是MVC的一种实现方式,它继承了MVC的各项特性,并根据J2EE的特点做了相应的变化与扩展。

2.2 SSH2-MVC架构

框架表现为抽象的组件和实例的交互,是整个系统的可复用代码的组合,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文关系。构件领域框架方法是构件技术、软件体系结构研究和应用软件开发三者结合的发展产物。框架通常以构件库的形式出现。框架的关键技术在于架构内的对象交互与控制流的关系[7]。SSH2(Struts2 Spring Hibernate)框架架构是MVC的一种实现方式,它继承了MVC的各项特性,具有高内聚、低耦合、易移植,程序结构清晰,各层分工明确,利于系统的更新与维护,以其跨平台性、分布性、开放性等更多优点,为异构系统的良好整合提供了保证。

1) Struts2在SSH2动态工作流模型中主要负责拦截企业级业务任务流程的请求,并调用相应的业务逻辑组件来处理任务的请求,并将处理结果返回。

2) Spring在SSH2动态工作流模型中主要负责管理企业级任务流程业务逻辑处理的所有组件,并负责管理调度流程任务中各组件之间的依赖关系,避免了各组件之间的硬编码耦合,提高了系统的可扩展性。利用它的自动装配策略,可以更好地将控制器与业务逻辑组件进行分离,DAO组件的分离,实现了各层之间的解耦。

3) Hibernate在SSH2动态工作流模型中主要负责提供与SSH2工作流企业级任务流程相关的对象以及对象产生的数据,分别将这些对象与对象数据持久化到数据库。

3 SSH2动态工作流模型设计与运行机制

3.1 架构设计原则

当今,计算机网络信息技术的迅猛发展,Web正以其广泛性、交互性、快捷性、易用性特点风靡全球,并且已经渗入到社会的各个应用领域。SSH2是Java Web应用程序开发强有力的解决方案,它可以降低软件开发过程之间的成本,提高软件的质量,缩短软件的开发周期,模型各层之间通过接口进行通信,降低各层之间的耦合度,能够满足系统复杂性的需求,提高了系统的可维护性、可扩展性、可靠性和业务处理效率。

SSH2动态工作流模型是作为一个基于Web开发的工作流管理平台,SSH2动态工作流模型设计将动态工作流技术理论应用于SSH2基于Web设计模式架构之中,工作流的动态性与SSH2灵活MVC开发方式的结合,不但涉及数据库、网络技术、分布式处理等计算机技术领域,同时它还涉及到企业业务相关领域。它是为了适应企业级业务的不断发展和信息量不断增多的需要,是对企业级业务流程动态性深入分析,并依据动态工作流技术理论而设计工作流模型,它支持企业级任务流程的动态扩展,可以灵活调整任务流程的设计、优化和管理,可以适应于任务流程规范化的管理,可以适应企业跨组织,跨区域业务的分布性、异构性、自治性的需要。可以适应复杂度逐渐增大业务的需要。可以实现企业信息资源的共享。并能够在任务流程执行过程中,发现不合理的环节,进而对企业级的任务流程过程进行优化重组,从而提高企业经营过程的效益,提高经营过程的柔性,降低企业管理成本,使资源效益的最大化。

3.2 主要功能组件描述

SSH2动态工作流模型主要组件包括系统服务元模块,过程服务元模块,工作流数据元模块。

1) 系统服务元模块

主要为过程领域中的任务流程提供执行的实体,为了提高企业级任务流程的动态适应性,执行的实体与流程过程定义独立分开,并在流程的执行过程中由过程动态执行跟踪,负责监控流程异变的相应处理。过程的动态修改监控负责任务流程过程的动态修改。

① 系统业务执行实体在任务流程开发中将用户、角色和权限分开,不同的用户对应不同的角色,不同的角色对应不同的权限,而权限制约不同的用户人员对整个流程节点处理的权限。人员:对应于企业中的每个员工,是一个独立的、具有一定行为能力的人的实体,人员可以用以下方式描述:User=(Bas,Pw,RI,ACL)。其中,Bas为基本信息列表,Pw为人员密码,RI为人员角色列表,一个用户可以同时具有多个角色,角色是系统权限的集合,ACL表示授权访问控制列表[7]。角色:是指一个组织或任务中的工作或职位,代表了一种资格、权利和责任。字母R表示全体角色的集合。角色是一种语义综合体,可以是一种抽象概念,也可以对应于具体应用领域内的职位和权利[7]。权限(Permission):是对计算机系统中的资料或者用资料表示的其它资源进行访问的许可。字母P表示全体权限的集合。权限一般是一种抽象概念,表示对于某种客体资源的某种操作许可[7]。用户指派(User Assignment):是用户集U到角色集R的一种多对多的关系。形式化描述为:UA∈U×R,用户指派也称为角色授权(Role Authorization)。(u,r)∈UA表示用户u拥有角色r,从语义上来说就表示u拥有r所具有的权限。权限指派(Permission Assignment):是权限集P到角色集R的一种多对多的关系[7],形式化描述为:PA∈P×R。(p,r)∈PA表示权限p被赋予角色r,从语义上来说就表示拥有角色r的用户拥有权限p。

基于任务流程节点角色权限分隔访问控制策略,也就是不同角色人员对工作流的某个任务流程节点控制操作是不同的。角色本身是一种抽象的逻辑用户分组,代表具有同等权限的用户组。任务流程节点与角色关联,每个角色根据自身的角色获得操作它的权限,这样可以简化授权的逻辑。利用用户--角色--权限--人员的这层关系来制约审批工作流任务人员的权限,因此在分配用户-权限关系时,我们只需将角色分配给用户,用户也会由角色得到相应的权限,进而决定审批处理流程实例的角色人员。

② 任务流程实例对实体资源服务执行过程。它是用于承载业务的计算机化模型的载体,承载执行任务流程过程活动中提交一定的数据,这些数据主要包括:提交的文档资源,相应的票据资源,业务表单数据资源,其中业务表单数据中包含相应的数据类型,如整型、浮点型、布尔型,业务表单与流程实例绑定时,包含了流程流转属性的信息,例如业务表单的创建者、创立的时间、所属的流程,以及对流程实例资源的添加、删除、

修改。在任务流程执行过程当中,流程实例一般需要经过:触发引擎实例用于触发实体资源服务,待审触发引擎实例是指具有审批工作流权限的用户能够查看到需要自己处理其它用户提交的实体资源。已审触发引擎实例是指可以查看已审过的实体资源。

③ 过程动态执行主要负责流程实例执行时的跟踪器,监控它的整个执行过程并当流程执行时发生异常,可以动态的回滚到流程最近一次正常执行的活动节点,并调整流程的下一个活动节点,以保证流程的运行。

④ 过程动态修改监控,主要采取设定业务的及时处理等级度,根据等级度动态的修改业务流程。用户只需选定等级度与原流程定义文件,则模型原会根据等级度对原流程定义文件进行动态的优化,同时会记录修改的时间与原因。

2) 过程服务元模块

过程领域:主要负责业务流程的定义,是开发业务流程的起点,是通过可视化的方式描述业务的工作流过程,控制工作流实例的运行,流程实例根据流程定义查找在任务列表中相应的任务,同时在任务列表中的任务节点设定了处理它权限,依据角色权限用户的关系,动态的查找处理它的用户,此节点用户完成节点任务的审批并将它推向下一个任务节点。

3) 工作流数据元模块

日志数据:流程实例日志数据信息的存储与备份,日志文件,用户操作的记录信息以及用户操作行为的跟踪。

3.3 SSH2动态工作流模型运行机制

1) 动态表单的业务任务参数机制

业务任务参数动态输入是解决企业因业务的不同而需要处理不同的数据,表单数据不仅决定业务的任务流程实例流转方向,而且决定处理流程的角色人员。表单的业务任务参数机制主要将流程定义文件与表单相关的属性主外键挂接,例如表单的数据类型模板,表单的输入类型模板(表单的文本输入框,表单列表输入框等),任务流程实例的子属性表采用Map(Key-Value)主要存储表单的动态输入参数。

2) 流程实例异常处理机制

如果任务流程实例在流程执行过程中,由于用户的操作不当导致它的处理异常,则过程动态执行主动处理它执行过程的各种异常,首先,启动流程定义中的补偿活动,标记出现异常的活动节点,并查找异常活动的开始节点标记,动态的查找最近与开始节点标记相同的一次完整的流程定义,补偿活动机制补全出错节点及以后的节点,使任务流程实例在补偿后的任务流程过程中能够完整的执行。

3) 流程活动节点动态修改

为了提高流程流转的扩展性,用户可以根据业务的实际需求,动态的减少任务流程实例流转的活动节点,在SSH2动态工作流模型中会根据用户提交的流程定义文件与业务处理等级度,动态查找流程过程的任务列表,重新规划流程过程。

3.4性能测试

SSH2动态工作流模型性能测试主要指标包括:能否有效的执行任务流程,能否有效对企业任务流程动态的扩展,能否有效适应任务流程的异常,能否有效的执行多与并发任务流程,下面分别介绍测评方法与结果。

吞吐量可以用每秒完成的任务流程数量来表示,它从一个侧面反映了任务流程执行性能。

通常,吞吐率可以用以下公式得出

Throughput=NM(Tj-Ti)(i

Throughput代表吞吐量

J一系统中最后一个被处理完成的请求

i一系统中第一个被开始处理的请求

Tj一第j个任务流程实例处理完成的时间

Ti一第i个任务流程实例开始处理的时间

1) 性能测试方法

① 系统性能测试环境,服务器:曙光天阔I620r-FY(CPU,Intel Xeon E5410,内存:4GB,硬盘:500GB),100M以太网络环境。操作系统:Microsoft Windows XP SP2,JDK1.6,应用服务器:Tomcat6.0,数据库:Microsoft SQL Server 2008。

② 主要测试:SSH2动态工作流模型吞吐量、SSH2动态工作流模型平均运转周期。测试的方法是:定义业务的任务流程,建立任务的流程实例并触发执行,记录流程实例在任务流程中的运行时间参数,最后通过对运行时间参数分析得出结论。

2) 性能测试实施

在SSH2动态工作流模型中,首先进行流程环节平均运转周期时间的测试,采用10个流程实例,这些流程实例中的流程结点数从100依次递增到1000,测试流程实例在任务流程执行过程。记录下流程开始执行与执行结束的时间,并依此计算出流程中每个结点的平均运转周期。测试结果如图8所示。

从图8中可以看出,流程实例处理的平均周转时间时间上限为0.45~0.5之间,所以在SSH2动态工作流模型能够完全满足流程执行效率的需求。

其次是吞吐量的测试,用例采用10个流程实例组,每个流程实例组包括的流程实例数从0依次递增到100,流程流转时记录下每个流程实例开始执行和执行结束的时间,最终计算出所有流程环节运转周期的平均值。测试结果如图9所示。

从图9中可以看出,SSH2动态工作流模型中伴随着系统中流程实例的增加,流程平均执行时间呈加速上升趋势,流程实例数达到400个左右。

4 结论

目前,工作流技术已在许多领域得到了广泛的应用,它必是企业信息化建设首先技术之一,它可以实现企业解决跨地域企业级业务实际经营的过程转化成计算机可处理的任务流程已成为现实,随着它在企业的实践中逐渐深入的推广,工作流技术在企业提高处理业务效率方面必然发挥着巨大的作用。

本文分析了工作流管理联盟的工作流体系架构,提出了一个支持动态特性的基于SSH2动态工作流模型,此模型以解决如何提高工作流技术在企业级业务运用的时效性、灵活性、可靠性,解决如何提高企业实际现实中的业务在工作流技术计算化模型的最大化适应性,即最大化体现业务的过程。最大化的灵活性,即模型能够最大化的动态适应业务的过程。最大化的扩展性,即模型能够最大化的适应企业相关信息化的模型。现将论文主要的工作总结如下:

① 研究了当前工作流技术的现状与发展方向,企业应用工作流技术处理企业内部或外部的业务已经成为发展自身信息技术的趋势之一,但现实的企业经营过程中如何解决本文所提到影响工作流技术发展中的不足因素,是目前企业必须解决的问题,本文在分析了目前流行的基于Web的SSH2-MVC开发模式,提出基于SSH2动态工作流模型来解决企业应用工作流技术所面临的问题。

② 深入分析了工作流管理系统的基础原理,工作流的体系结构、参考模型、执行过程以及动态工作流技术,它是为解决企业多变的业务而提出。本文SSH2动态工作流模型正是在基础之上所提出的具体解决方案,它能够解决企业分布式,异构式与多变式的业务发展的需要。同时在模型的运行机制中重点分析了对不同业务任务流程的应对机制。

③ 本文在SSH2动态工作流模型测试中引入性能测试。从它测试的结果显示:此模型可以适应于工作流技术在企业级业务的需要。

参考文献:

[1] 刘明.工作流引擎技术分析与市场预测[J].计算机工程应用技术,2009(9):40-50.

[2] 罗海滨,范玉顺,吴澄.工作流技术综述[J].软件学报,2008(7):22-24.

[3] 周炎宏.工作流应用技术与发展趋势[J].计算机应用,2009(9):30-35.

[4] 孙瑞志,史美林.支持动态工作流变化的工作流元模型[J].软件学报,2004(2):12-15.

[5] Reichert M,Dadam P.ADEPT flex Supporting Dynamic Changes of Workflows without Loosing Control[J].Journal of Intelligent Information Systems,1998,10(2).

[6] Edmond D,ter Hofstede A H M..A Reflective Infrastructure for Workflow Adaptability[J].Data and Knowledge Engineering,2007(2):103-115.

[7] 何成万,余秋惠.MVC模型2及软件框架Struts的研究[J].计算机工程,2002(6):70-80.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:快速L1范数最小化算法的性能分析和比较 下一篇:广东欠发达地区高中信息技术教育调查分析