面向软件业务逻辑的工作流引擎(ToLWE)的设计与实现_第1页
面向软件业务逻辑的工作流引擎(ToLWE)的设计与实现_第2页
面向软件业务逻辑的工作流引擎(ToLWE)的设计与实现_第3页
面向软件业务逻辑的工作流引擎(ToLWE)的设计与实现_第4页
面向软件业务逻辑的工作流引擎(ToLWE)的设计与实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向软件业务逻辑的工作流引擎(ToLWE)的设计与实现 本文档格式为WORD,感谢你的阅读。 摘 要:传统的工作流系统通过管理和控制业务流程来提高企业运行的灵活性和适应性。本文面向软件业务逻辑的定制和执行实现了一个基于令牌协议的轻量级工作流引擎,将工作流的优点引入软件开发领域,同时为其提供基于GME(通用建模环境)的可视化流程定义工具。ToLWE通过将工作流的概念引入软件开发中,不仅加快了软件的开发速度,而且提高了软件业务逻辑的灵活性和可定制性。 关键字:软件设计;工作流;工作流引擎 TP309 从1993年工作流管理联盟(WfMC)成立起1,工作流技术被广泛接受并得到了极大的发展。工作流是一

2、类能够完全或者部分自动执行的经营过程,根据一系列过程规则,文档、信息或任务在不同的执行者之间传递与执行2。普通软件通过提高个人的工作效率和资源的利用率达到提高整体工作效率的目的。而工作流软件则是通过压缩规范工作的环节,并在各个环节之间实现自动化提高整个业务的完成效率。 随着信息技术的发展,信息系统越来越复杂,更新换代的速度也越来越快。如何快速的开发出复杂的信息系统已经成为了IT设计人员的一个挑战。本文将软件开发抽象成具体业务,将相对成熟的工作流设计理念引入到了软件系统设计过程中,设计实现了一款基于令牌协议的轻量级工作流引擎,并实现了基于GME(通用建模环境)3的可视化的流程定义工具,提高了软件

3、设计中业务逻辑的灵活性和可定制性,提高了软件的开发速度。 1 ToLWE引擎的工作原理 ToLWE工作流引擎的核心思想是:将软件的业务逻辑抽象为多个相对独立的过程(Process),每个过程进一步抽象为能够完成具体行为的活动(Activity)的集合,活动之间连接成为一个有向图。ToLWE工作流引擎是一款基于令牌协议的轻量级工作流引擎(ToLWE),在软件运行时活动向工作流引擎申请令牌(Token),流程中持有令牌的活动将被运行的线程执行,引擎通过控制令牌的申请、转交、分裂和归还等操作实现控制活动的执行顺序最终完成软件开发。ToLWE工作流引擎采用了线程数可控的多线程技术提高软件的性能。同时为

4、了提高软件的灵活性,支持软件的高级用户参与软件流程的设计,流程通过满足特定规范的xml语言定义,并提供了可视化的流程定义工具。 图1 ToLWE工作流引擎工作原理示意图 图1简要的描述了ToLWE引擎的工作原理,该引擎中用到的基本概念的简单定义如下。 1.1 执行器(Performer) 在执行器中定义可以执行的基本操作,例如读写存储器模型,打开界面等。执行器负责业务(软件设计)逻辑的直接体现,是最小的业务逻辑分解单元。 1.2 活动(Activity) 是本文设计的工作流引擎的基本单元,该引擎中通过“活动”的传递来实现软件设计的流动,从而完成软件设计。活动是流程(Process)的基本组成部

5、分,定义了允许的流程流向。同时活动封装了动作行为实际执行的执行器。 1.3 流程(Process) 流程是活动实例的集合,并负责活动和上下文实例的“构造”,一个流程可以有两种启动方式:自启动,在初始化时,直接由某个(活动)向引擎申请令牌;它启动,通过引擎调用自己的“流程调用方法”(startProcess(IContext)来启动。 1.4 上下文(Context) 描述了工作流程在执行时所处的“环境信息”,它是初始设定、各(活动)作用的载体和结果。 如图1所示,ToLWE引擎逻辑上可以分为四个部分,Performers,Process,Token队列和WFEngine。其中Performer

6、s是实现的Performer集合,主要负责基本的业务操作。Process是用户设计的软件“活动”流程。Token队列负责保存已经分配的令牌(Token)。WFEngine是ToLWE的核心模块,该模块主要负责完成两项工作,Token的管理和执行Activity。Token的管理模块负责受理Token的申请,为申请的Activity分配Token,同时支持Token的转交,分裂和归还等操作。Token的转交是指将一个Token传递给指定的activity(或Process),指定的activity(或Process)或的Token后将会被工作流调度执行。Token的分裂是指将一个Token分裂成

7、多个,分别传递给指定的Activities。Token的归还是指将一个Token归还给系统。ToLWE工作流引擎通过对Token的管理完成任务调度,实现预定功能。在WFEngine模块中定义实现了多个TokenThread线程,这些线程负责执行Process中获得Token的Activity。引擎启动后,这些线程开始工作,每个线程不停的询问Token队列,根据Token队列中Token找到拥有该Token的Activity,执行该Activity。 ToLWE引擎的基本工作过程为首先Process中的Activity向WFEngine模块申请Token,WFEngine模块为其分配Token,

8、并将该Token添加打Token队列中。WFEngine模块中的TokenThread线程到Token队列中获取Token,根据Token找到拥有该Token的Activity,执行该Activity,在执行过程中可能需要调用执行器中的Performer进行业务操作。执行Activity完毕后,调用WFEngine模块,完成Token的转交或归还。需要注意的一点为了便于描述,该过程是引擎工作过程中的一段相对理想化的过程,实际的工作过程相对复杂,还包含流程的加载启动等操作,系统中同时存在多个流程,引擎启动多个线程进行执行获得令牌的Activity。 2 基于GME的图形化流程建模工具 GME(G

9、eneric Modeling Environment,通用建模环境)是范德堡大学的软件集成系统学会于2001年设计完成的,是一个优秀的可配置的流程建模环境3。GME通过使用系统内的元数据模型来描述特定应用程序域的模型范例来实现针对特定程序域的配置。模型范例是创建的模型的集合。模型范例包括语义,语法和表现形式等概念,这些概念用于构建模型。用户根据这些创建好的模型对业务逻辑进行可视化建模。GME建模环境包含解释器解释执行建模结果。 图2 GME建模环境的体系结构3 图2描述了GME建模环境的体系结构,用户通过GUI根据创建的模型进行业务逻辑建模,最终可以将建模的结果输出到xml。GME支持对元模

10、型(meta-model)进行建模,通过对元模型进行建模可以定制自己的GME的建模环境。本文针对ToLWE引擎的需要在GME基础上定义开发了Start、CronTimer、IfThen 、Switch、Case、Fork、Join、ProcessInc、ProcessRef以及用于复合的For、While等活动(元模型),并针对这些活动实现了对应ToLWE解释器,为ToLWE引擎定制了图形化的流程定义工具,如图3所示。该流程建模工具根据已经定义好的活动对软件的业务逻辑行为进行可视化建模,通过ToLWE解释器生成xml格式的Process描述文件。ToLWE引擎加载该xml文件执行定义的Proc

11、ess,实现预定的软件功能。图3展示了流程定义工具的操作界面,左侧列出了本文定义的活动(元模型),中间是根据这些活动对流程进行可视化建模,最终将定义的流程输出为xml文件。 图3 ToLWE图形化建模环境 3 基于ToLWE引擎软件实现 本文基于该引擎实现了PC机和Andriod平板电脑之间的简单的文件同步系统,该系统要求实现将服务端(PC端)的文件和目录同步到客户端(Andriod平板)。图4是通过建模环境设计实现的同步软件服务端(Sync_Server)主流程(Process),该主流程除了流程入口和出口外包括两个子流程加载WDMVC基础设施(Load wdmvc infrastructu

12、re,如图5所示)和服务端的业务流程(Start app Process,如图6所示)。加载WDMVC基础设施流程加载引擎工作需要的资源完成引擎的准备工作,是基于该引擎设计软件的必要环节。服务端业务流程相对简单,包含了两个活动,LoadServerObjs活动加载服务器端对象SyncServer,以便后续程序和客户端能够通过对象管理器(ObjectHome)访问;StartServerMainUI活动启动服务器端的UI界面。通过我们的流程定义工具将主流程(bootprocess)生成bootprocess.xml,在软件运行时以bootprocess.xml作为情动流程,启动软件界面如图7所示

13、。 图4 同步软件服务端主bootprocess 图5 加载WDMVC基础设施流程 图6 服务端的业务流程 图7 服务端的启动界面 客户端的设计也十分简单,只需要使用本文设计的流程定义工具定义客户端启动流程bootprocess_client,生成对应的bootprocess_client.xml流程定义文件,在软件选择bootprocess_client.xml启动即可。bootprocess_client与bootprocess的区别在于前者最后启动的流程是sync_client活动而不是sync_server活动。sync_client活动同样先加载远程服务器端对象SyncServer和

14、本地客户端对象SyncClient,然后启动客户端的UI界面。 经过实际验证基于ToLWE引擎设计的文件同步系统成功的PC端的文件,目录同步到平板电脑中,软件的工作正常。分析可以得出基于ToLWE引擎进行软件开发具有3个明显优势。首先,引入工作流的思想后使得软件开发的流程更加清晰规范,便于团队协作,软件设计工作按流程设计,Activity实现进行分工,而Activity之间的开发也是独立完成的。其次,实现了一次开发代码永久使用的增量开发,如元数据模型(活动)的扩展是针对于引擎而独立于具体软件,其他软件产品可以直接使用,极大的提高了代码的利用率,如客户端和服务端中共同使用了加载基础设施和加载对象

15、等活动。最后,支持软件高级使用者参与软件设计,理想情况下使用者可以直接使用本文设计的流程定义工具定义软件业务逻辑流程,通过引擎加载完成软件设计,极大的提高了软件灵活性和可定制性。 4 结束语 本文将工作流的理念引入到了软件设计过程中,设计实现了一款基于令牌协议的轻量级工作流引擎,和配套的可视化流程定义工具。通过文件同步系统的设计实现可以看出基于ToLWE工作流引擎进行软件开发可以明显的提高软件开发速度,并支持软件的高级用户进行软件自定义,极大的降低了软件开发的技术门槛,提高了软件开发的灵活性和可定制性。 TolWE工作流引擎目前尚处在起步阶段,需要根据实际需求进行进一步完善和改进。ToLWE工

16、作流引擎作为软件设计的基础设施支持持续的扩展和完善,如执行器,和活动等方面的丰富。如目前已经实现的timer、fork等活动还需要进一步完善。另外流程定义工具尚只支持流程的定义,还不能将生成好的xml文件还原成可视化的流程图。 参考文献: 2赵贵根.工作流系统框架研究A.第六届全国计算机应用联合学术会议论文集C.第六届全国计算机应用联合学术会议,2002:1650-1656. 3Akos Ledeczi,Miklos Maroti.The Generic Modeling Environment.Copyright 2001 IEEE. 作者简介:郑超(1987-),男,吉林伊通人,硕士研究生,助教,研究方向:体系结构、干部工作信息化、信息安全。 作者单位:南京政治学院上海校区军事信息管理系,上海 200433;国防科技大学 计算机学院,长沙 410073 文档资料:面向软件业务逻辑的工作流引擎(ToLWE)的设计与实现 完整下载 完整阅读 全文下载 全文阅读 免费阅读及下载阅读相关文档:人工智能及识别技术的应用研究 基于Web的网上购物系统研究 现代楼宇 自动报警装置系统设计 智能水表售水软件VB编程实现 有线电视WOC在酒店中的应用 浅谈服务器管理中虚拟服务器技术的研究与应用 如何做好灭火救援现场无线通信保障工作 四川电信软交换升汇接局的实现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论