net工作流引擎设计三WorkFlowEng_第1页
net工作流引擎设计三WorkFlowEng_第2页
net工作流引擎设计三WorkFlowEng_第3页
net工作流引擎设计三WorkFlowEng_第4页
net工作流引擎设计三WorkFlowEng_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、net工作流引擎设计 三 WorkFlowE工作流引擎设计(三):WorkFlowEngine工作流引擎设计a.工作流引擎只负责处理与流程运转相关事宜,处理过程的解释执行、流转规则,控制任务管理器。架构在工作流引擎之上的web应用的具体业务处理另外编写,以保持工作流引擎的独立性和简洁性。b.通过此设计方案设计的工作流引擎,只负责业务系统流程的流转,业务系统使用此工作流引擎需要根据业务系统的需要来评估使用性以及考虑业务逻辑的具体实现,不能依靠工作流引擎来实现所有的业务功能。c.此阶段在业务系统中需要控制表单控件的访问权限时需要业务系统结合工作流来自行进行控制,在之后的工作流引擎功能扩

2、展第二阶段可以设计通过工作流引擎来控制表单中控件的访问权限。d.此阶段流程定义采用程式来定义和维护,不使用图形化的建模工作。在工作流平台的进一步深入开发的第三阶段再进行流程定义工具的开发。.1工作流定义根据WFMC的定义,工作流(Workflow)就是自动运作的业务流程部份或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。简单的说,工作流就是一系列相互衔接、自动进行的业务活动或任务。如果将整个业务流程看作是一条河,其中流过的就是工作流。使用工作流作为业务流程的实现技术首先要求工作流系统能够反映业务流程的以下几个问题,即业务流程是什么由哪些活动、任务组成,也就是结构

3、上的定义、怎么做活动间的执行条件、规则以及所交互的信息,也就是控制流与信息流的定义、由谁来做人或计算机应用程序,也就是组织角色的定义、做的怎么样通过工作流管理系统对执行流程进行监控。工作流参考模型工作流管理系统功能通常,工作流管理系统是指运行在一个或多个工作流引擎上用于定义、实现和管理工作流运行的一套软件系统,它与工作流执行者人、应用交互,推进工作流实例的执行,并监控工作流的运行状态。虽然不同的工作流管理系统具有不同的应用范围和不同的实施方式,但它们具有很多共同的特性。概括地说,工作流管理系统提供了3种功能。(1).建立阶段的功能:主要考虑工作流流程和相关活动的定义和建模功能。(2).运行阶段

4、的控制功能:在一定的运行环境下,执行工作流工程,并完成每个流程中活动的排序和调度功能。(3).运行阶段的人机交互功能:实现各种活动执行流程中用户与IT应用工具之间的交互。.2.2工作流实现模型a.流程定义:创建计算机可处理的业务流程描述。规定用户间信息传输的一组路由命令。b.组织/角色模型:包含了组织结构和组织中角色的信息。这些信息往往与流程定义信息紧密相关。c.工作流执行系统和工作流引擎:工作流执行系统也称业务流程执行环境,包括一个或多个工作流引擎。工作流引擎是WMS的核心。它功能包括:解释流程定义;创建流程实例并控制其执行;调度各项活动;为用户工作表添加工作项;通过应用程序接口(API)调

5、用应用程序;提供监督和管理功能等。d.工作流控制数据:被工作流执行系统和工作流引擎管理的系统数据,如工作流实例的状态信息、每一活动的状态信息等。e.工作流相关数据:指与业务流程相关的数据。WFMS使用这些数据确定工作流实例的状态转移,例如流程调度决策数据、活动间的传输数据等。工作流相关数据既可被工作流引擎使用,也可以被应用程序调用。f.工作列表:流程执行中,当需要用户的交互时,工作流引擎便将工作项放置到由worklist管理的工作列表中,通过worklist实现与用户的交互。g.应用程序和应用数据:应用程序可以直接被WFMS调用或通过应用程序代理被间接调用。通过应用程序调用,WFMS部份或完全

6、自动完成一个活动,或者对业务参与者的工作提供支持。与工作流控制数据和相关数据不同,应用数据对应用程序来讲是局部数据,对WFMS的其他部件来说是不可见的。.3工作流模型规范WFMC的工作流流程语言包括6个基本实体:工作流定义:反映一个业务流程的目的。活动:对应业务流程中的任务,主要反映了完成该业务流程需要执行的哪些功能操作。转换条件:负责为流程实例提供导航依据,对应于一个业务流程中的业务规则和操作顺序。工作流相关数据:是引擎执行任务推进的依据之一,引擎根据相关数据和转换条件执行后续活动。角色:角色或组织实体决定了参与某个活动的人员或组织单元,描述了业务流程中参与的操作人员和组织单位。应用程序:描

7、述了用于完成业务流程所采用的外部工具或工具。活动是流程定义的核心部份。一个流程包括若干活动组成;特定的角色参与活动的执行;活动执行流程中使用工作流相关数据,激活特定外部应用程序;流程实例的推进是根据转换条件和工作流相关数据进行的。工作流模型元模型实体控制模型单一角色、顺序流程一个角色有4个业务活动,开始、结束也算活动类型之一,但这里为符合日常习惯,特意避开,下同设计一个流程;设计6个活动,start类型1个;end类型1个;人工类型4个,都把活动参与者映射给主管;不需要设计流程相关参数为每个活动设计活动变迁,这样,活动间的前趋,后续的关系就建立了;不需要为活动变迁设定变迁条件;多角色、顺序流程

8、1.设计一个流程;2.设计6个活动,start类型1个;end类型1个;人工类型4个,活动参与者分别映射不同的角色;3.不需要设计流程相关参数;4.为每个活动设计活动变迁;5.不需要为活动变迁设定变迁条件;类型分支流程1.设计一个流程;2.设计8个活动,start类型1个;end类型1个;and-split活动1个;and-join活动1个;人工类型4个,活动参与者分别映射给不同的角色;3.不需要设计流程相关参数;4.为每个活动设计活动变迁;5.不需要为活动变迁设定变迁条件;在and-join路由活动中,应该会出现某个参与者等待的情况,活动4的执行必须等待and-join的完成;而and-jo

9、in的完成,需要活动2和活动3都为完成状态。.4 or类型分支流程1.设计一个流程;2.设计8个活动,start类型1个;end类型1个;and-split活动1个;and-join活动1个;人工类型4个,活动参与者分别映射给不同的角色;3.设计流程相关参数do_man:string类型;操作符号为=;标示必须相等,才能执行后续任务;4.为每个活动设计活动变迁;5.不需要为活动变迁设定变迁条件;在or-split路由活动中,系统根据用户的输入来决定后续活动的路径。该路由活动状态由not_start-running;如果决定了后续活动;设置该路由活动状态为完成,同时把后续活动状态的not_sta

10、rt-waiting。该流程包括了1个and发散和1个or发散。在实现上,or发散可以模拟出循环的效果。1.设计一个流程;2.4个参与者3.1个开始活动;1个end活动;3个路由活动;6个人工活动;4.1个流程相关变量is_ok:string类型;等于操作符;5.1个条件变迁;在and-split活动后,同时启动开发2,开发3活动;到了and-join活动,系统会在这里等待,直到两个活动都执行完毕。完毕后启动开发4;在or-split出,系统等待用户输入,根据用户的输入来决定后续的活动,是完成该开发流程还是继续迭代。就是前面顺序、and类型、or类型节点的组合。在上一章里,我们谈到了工作流的控

11、制模式,控制模式强调的是对业务流程进行建模,业务流程的目标是实现一个商业目标或者管理目标,业务流程的执行往往由一系列的任务所构成,控制模式建模的实质在于合理调配这些任务,以期以最少的成本达到最大的收益。本章将介绍工作流的资源模式,如果说控制模式更为宏观,强调的是业务流程里各个任务的合理调配的话,那么资源模式则深入细节,将要讨论单个具体任务的执行情况。提到任务的执行,那么谁能执行这些任务呢。答案很直接,是人。不管是在公司企业还是政府里,人都是最重要的资源,除去人之外,还有其他的非人力资源,例如机器、设备、计算机等。探讨这些资源如何执行业务流程中的具体任务,如何调配这些资源即构成了本章的内容,即资

12、源模式。4.工作流管理系统的设计.1总体设计.2工作流系统用例图.3流程状态转变图a.初始(inactive):一个流程实例已经生成,但该流程实例并没有满足开始执行的条件;b.运行中(running):一个或多个活动已经开始执行已经生成一个工作项并分配给了合适的活动实例;c.挂起(suspended):该流程实例正在运行,但出于静止状态,除非有一个重启的命令使该流程实例回到准备运行状态,否则所有的活动都不会执行;d.结束(completed):该流程实例满足结束的条件,工作流管理系统将执行流程实例结束后的操作;e.终止(terminated):该流程实例在正常结束前被迫终止;流程在设计中,不涉

13、及到状态,就是说保存在模型库中的流程表,不需要设置状态栏位。a.一旦流程被实例化,该流程的状态被设置为初始(inactive),并保存在数据库中。b.如果用户此时进入自己的工作列别,启动了第一个活动实例,状态由初始(inactive)-运行中(running)。c.可以在monitor中把流程实例的状态设置从运行中(running)-挂起(suspended),那与该流程实例相关联的活动实例都要设置为挂起(suspended),活动实例并被设置为不能使用,直到流程实例的状态被恢复成运行中running)。d.可以在monitor中把流程实例的状态强迫设置从运行中(running)-终止(ter

14、minated),那与该流程实例相关联的活动实例都要作不可恢复的删除;流程实例不删除保存在数据库中,但设置终止terminated)状态。e.流程实例下所有的活动实例运行完毕,判断is_end_act()为true,设置流程实例的状态为:运行中(running)-结束(completed)。流程实例不删除保存在数据库中,但设置结束(completed)状态。.4活动状态转变图a.在流程实例启动时,设置流程实例状态为初始(inactive),与之相关的所有活动实例的状态都设置为没有启动(not_started)。b.找到流程实例第一个活动(start)类型,并把第一个活动设置为完成(comple

15、ted),找到下一个活动实例,设置为就绪等待waiting)。c.用户登录自己任务管理器,得到属于自己的waiting任务,选择任务处置,完成后点接受,该活动实例状态从waiting直接越过running-完成completed)。d.可以monitor页面设置某个活动挂起,或终止,则应该活动实例不再出现在用户的任务列表上。挂起为可恢复流程,而终止为不可逆流程。e.当前活动实例为and_jion类型,而标识位属于路径没有全部到达时,把当前活动实例设置为pending;当标志位为全部到达时,状态由pending直接越过running,到达completed。流程和活动状态转变及相互影响图.6流程

16、初始化流程图.7活动执行流程图5.与业务流程的结合.1整合方法通常工作流系统在设计之初,都会明确的区分流程数据和业务数据。工作流引擎只关心流程数据,为实现工作流的流转,会为工作流引擎设计一套工作流的表结构,来辅助流程引擎的实现。业务数据是千变万化的,为实现各自的业务,会设计一系列业务表。业务表,工作流系统是不关心的。但是工作流数据和业务数据又是交互的关联的。为了将业务数据和流程数据关联起来,会有一个关联表,将流程实例和业务数据关联。.2参与者执行流程1.流程设计者2.普通用户3.流程监控者.3执行流程概述1.工作流管理人员设计工作流流程模型,并保存到模型库中;2.该工作流流程模型被调用,被工作

17、流引擎解释执行;3.引擎根据流程模型中定义的规则,调用某个活动;4.该活动是一个人工活动,比如是员工出差申请单,该页面已经制作完毕,上面有相应的栏位需要员工填写,并提交。该页面的逻辑处理自行处理,对于引擎来说,它只需要地址和附件的参数。该页面的存储在活动表中的业务地址栏位中,附加的参数存储在活动表中的该活动的业务附加变量中。整个业务名称由业务逻辑名称来表示。需要人工完成该活动时,由工作流引擎把与活动绑定的页面地址分配给某个用户,用户直接点击该,就可以出现该页面,用户可以在上面作相应的处理,处理完毕,通知工作流引擎;5.与该活动绑定的页面地址由工作流引擎发到任务管理器,在页面地址后附加需要的参数

18、,工作流引擎希望通过来传递变量;6.通过组织模型来确定该活动具体有哪个用来执行,并经过访问控制模块的检查和过滤,最后发到特定人员的任务列表中;7.用户操作完毕后,通知工作流引擎,该活动完成,工作流引擎根据流程模型执行后续的活动;流程设计者操作业务模型a.创建参与者:具体参与者可点选择用户,进入用户选择页面。b.创建流程c.创建相关数据如果没有,就不需要创建,直接到创建活动的步骤:相关数据是在活动变迁条件中用到。d.创建活动:创建完活动,才能创建活动变迁和变迁条件。其中变迁条件的变量来自相关数据中的设定。e.创建活动变迁,以及变迁条件a.启动流程b.业务处理流程监控者操作业务模型表单的权限控管在工作流系统中,经常会有对表单访问权限的要求,比如在不同的站别有的是可以修改,有的是只读,有的是只能访问其中的栏位。本设计方案可以通过流程环节的权限控制和表单的权限控制来达到不同环节表单的访问权限。方法:通过程式来维护每个流程以及各个环节对应业务表单的访问权限。UIS系统中已经实现设定不同角色对表单的访问权限,如下:在此基础上,再绑定流程和活动节点即可。业务系统表单中根据从工作流系统传递来的流程和活动的编号即可判断对应的访问权限。流程的版本控制在工作流系统中,

温馨提示

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

评论

0/150

提交评论