力软敏捷开发框架工作流实现技术

工作流管理联盟(WFMC)提出了一个工作流参考模型,约定了工作流系统的体系结构、应用接口及特性,主要目的是为了实现工作流技术的标准化和开放性。下面简要介绍系统中的各个部分,并对参考模型中的五类接口进行描述。

1. 工作流管理系统中的各种数据

    工作流控制数据(Workflow Control Data)工作流执行服务/工作流机通过内部的工作流控制数据来辨别单个过程或活动实例的状态。这些数据由工作流执行服务/工作流机控制。用户、应用程序或其它的工作流机/工作流执行服务不能对其进行直接读写操作,它们可以通过向工作流执行服务/工作流机发送消息来获得工作流控制数据的内容。

    工作流相关数据(Workflow Relevant Data)工作流管理系统通过工作流相关数据来确定过程实例状态转换的条件,并选择下一个执行的活动。这些数据可以被工作流应用程序访问并修改。因此,工作流管理软件应该在活动实例之间传递工作流相关数据。

     工作流应用数据(Workflow Application Data)这种数据指那些由应用程序操作的数据。它们是针对应用程序的,工作流管理系统无法对它们进行访问。  

2. 工作流模型和工作流建模工具

     工作流模型过程模型包含了工作流执行服务运行该过程的所有必需的信息,包括它启动和结束的条件、组成的活动、活动间导航的准则、参与其中的用户、需要激活的应用程序的指针、需要用到的工作流相关数据的定义等等。    

     在工作流的建模期间需要参考组织/角色模型来获得有关组织结构和组织内角色的信息。过程定义指定完成某项活动的组织实体或角色,而不是定义具体人员。工作流执行服务负责在工作流运行环境内将组织实体或角色映射为特定的人员。    

    工作流建模工具它主要用于分析、建模、描述并记录经营过程。它应输出一个能被工作流机动态解释的过程定义。不同的工作流产品其建模工具输出的格式是不同的,参考模型中的接口1不仅使工作流的定义阶段和运行阶段分离,使用户可以分别选择建模工具和执行产品,还可以使不同的工作流产品合作为一个过程定义的执行提供运行服务环境。    

     工作流管理联盟针对工作流建模做了两方面的工作:  (1) 建立了一个元模型(process meta model):它用于描述一个过程模型内各个对象、它们之间的关系及它们的属性,有利于多个工作流产品之间交换模型信息。  (2) 定义了一套可以在工作流管理系统之间及在管理系统与建模工具之间交互过程模型定义的API接口。  图1为工作流管理联盟定义的过程元模型。  

3. 工作流执行服务

    工作流执行服务由一个或多个工作流机组成(在分布环境下,由多个工作流机组成),提供了过程实例执行的运行环境,主要完成以下功能:  (1) 解释流程定义,生成过程实例,并管理其实施过程。  (2) 依据过程定义和工作流相关数据为过程实例的导航提供进入和退出的条件、并行或串行执行活动的信息、用户信息或所需激活的应用程序的信息等等。  (3) 与外部资源交互完成各项活动。 (4) 维护工作流控制数据和工作流相关数据(这些数据包括不同过程和活动实例的内部状态信息、工作流机用于协调和恢复的各种检查数据和恢复/重起信息等),并向用户传递必要的相关数据。    

  在分布式的工作流执行服务中,多个工作流机协调工作,推进工作流机实例的执行。每一个工作流机控制过程执行的一部分,并使用相关的资源和应用工具。这种执行服务需要共同的命名和管理范围,便于过程定义和用户/应用名称一致。分布式的工作流系统采用特定的协议来同步各工作流机,并传递相应的控制信息。在一个同构的工作流执行服务中这些协议是因厂家而异的。当选用不同的工作流系统产品时,各工作流机之间需要一个标准来进行转换。它应包括以下几个方面的内容:  (1) 一个共同的命名机制;  (2) 支持共同的过程定义对象和属性;  (3) 能够传递相应的工作流相关数据,并控制过程实例的生成;  (4) 能够在异构的工作流机间传递过程、子过程及活动;  (5) 支持共同的管理职能。

4. 工作流机

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

    工作流机的一个重要功能就是控制实例和活动实例的状态转换。工作流管理联盟的参考模型中为过程实例的运行状态和活动实例的状态进行了定义,并给出了状态转换的条件。图2和图3分别描述了过程实例和活动实例各个状态之间的转换。  过程实例包括以下几种运行状态:  初始(inactived):一个过程实例已经生成,但该过程实例并没有满足开始执行的条件;  准备运行(running):该过程实例已经开始执行,但是还不满足开始执行第一个活动并生成一个任务项的条件;       

    运行中(active):一个或多个活动已经开始执行(也就是已经生成一个工作项并分配给了合适的活动实例)  挂起(suspended):该过程实例正在运行,但处于静止状态,除非有一个“重启”的命令使该过程实例回到准备运行状态,否则所有的活动都不会执行;  结束(completed):该过程实例满足结束的条件,工作流管理系统将执行过程实例结束后的操作(如统计),并删除该过程实例;  终止(terminated):该过程实例在正常结束前被迫终止,工作流管理系统将执行补救措施,并删除该过程实例。    

    活动的运行状态包括:  未开始(inactive):该活动实例已经生成但还没有被激活(例如活动开始条件没有满足);  运行中(active):该活动实例已经被激活了;  挂起(suspended):该活动实例处于静止状态;  结束(completed):该活动已经执行完毕,工作流管理系统将进行活动结束后的导航工作,激活下一个符合启动条件的活动实例。

5. 客户端应用

    这种方式适合于需要人员参与的活动。这种情况下,工作流机通过任务项列表管理器来进行控制。工作流管理联盟提供了四种可能的通过任务项列表来实现工作流客户工作流机之间的通讯方式,如图4所示。其中一种支持集中式的结构,另外三种适合分布情况下的工作流系统。  (1) 基于主机方式的模型(Hust Based Model):这种方式适合于集中的情况。此时,客户端应用程序、任务项列表管理器、任务项列表和工作流机都列在中央的主服务器上,用户通过模拟一个终端用户来获得任务项列表;  (2) 共享的文件库模型(Shared Filestore Model):在这种情形下,客户应用程序和任务列表管理器位于用户的工作站上,而工作流位于中央服务器上。任务项列表位于一个客户应用和工作流机都能够达到的共享的文件系统中。  (3) 电子邮件模型(Electronic Mail Model):这里,客户应用和任务项列表管理器位于用户的工作站上,工作流机位于中央主机上。所有的通讯都使用电子邮件。此时,任务项列表一般位于客户端;  (4) 过程调用或信息传递模型(Procedure Callor Message Passing Model):这时,客户应用程序和任务项列表管理器位于用户的工作站上,任务项列表和工作流机位于服务器端。用户通过RPC或者其它的消息传递机制来获得任务项列表。     

6. 由工作流机直接调用的应用程序

     这种情况适合于不需要人员参与的活动。在简单的情况下,工作流机通过过程模型中定义的活动的信息、应用程序的类型和需要的数据来激活应用程序。被激活的应用程序可以和工作流机位于一台计算机上,可以位于相同的运行平台上,也可以位于网络可以到达的不同平台上。模型定义提供了有关应用程序的类型、地址等充分信息,便于工作流机激活该程序并执行相应的动作。  

7. 工作流执行服务之间的互操作性

    工作流联盟的目标之一就是规定一个标准使得不同厂商提供的工作流产品能够协调工作,整个系统能够无缝地在各个产品之间传递任务项。工作流管理联盟在互操作性上的工作主要集中在提供了一系列互操作的情景,从简单的任务传递到传输整个工作流过程模型和工作流参考数据。尽管有可能考虑那些很复杂的情形(如不同厂商提供的工作流机共同协作实现工作流执行服务,这在目前还不可能实现,因为它要求所有的工作流机都能够解释过程模型,共享一套工作流控制数据,并在异构的工作流机环境下共享过程实例状态。)但就目前来说,比较切合实际的目标是在不同的工作流执行服务间传递过程的部分内容,支持其实例的运行。  

8. 系统管理和监控工具

    该工具能够对工作流在整个组织内的流动状况进行监控,并提供一系列的管理功能,如有关安全性、对过程的控制和授权操作等方面的管理。主要功能包括以下几个方面:  (1) 建立、设置和优化组成工作流管理系统的各个软件;  (2) 对过程模型进行实例化;  (3) 将过程模型中的角色实例化;  (4) 将运行中的过程实例、活动实例和数据分发到各个工作流机中;  (5) 启动、挂起、恢复和终止过程实例;  (6) 管理正在执行的过程实例并对正常或异常退出的过程的历史数据进行统计和分析。  

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

     工作流联盟给出了五类接口:  (1) 接口1:工作流服务和工作流建模工具;  (2) 接口2:工作流服务和客户应用之间的接口,这是最主要的接口规范,它约定所有客户方应用和工作流服务之间的功能访问方式;  (3) 接口3:工作流机和直接调用的应用程序之间的接口;  (4) 接口4:工作流管理系统之间的互操作接口;  (5) 接口5:工作流服务和工作流管理工具之间的接口。    其中,接口1为在不同物理或电子介质之间传递过程定义的信息提供了交互的形式和API调用;接口2定义了通信建立、工作流定义操作等功能;接口3激活应用程序的API函数应覆盖的几个方面的功能;接口4完成工作流执行服务之间需要提供大量的WAPI来实现互操作,无论是在两个工作流执行服务之间的直接调用还是通过网关函数;接口5主要实现对工作流的管理和监视。

官网:www.learun.cn

免费演示地址:http://www.learun.cn/Home/VerificationForm

原文地址:http://blog.51cto.com/13990199/2316072

时间: 2024-11-06 07:22:50

力软敏捷开发框架工作流实现技术的相关文章

OA系统构建神器---力软敏捷开发框架

现在企业对OA系统的要求越来越高了,十年前把请假单,报销单这些乱七八糟的单据实现无纸化就可以叫OA系统了,后来做OA的这些厂商又坐不住了,所性把工作流也整合进来了.这样也就算了,随着这几年微信.APP的崛起,于是企业主便通过微信.APP把魔爪伸向了无辜的劳动人民,是的,微信和APP也被整合进来了,号称办公无处不在(在哪儿你都得给老子干活,小样压榨不死你). 对于开发OA系统的企业和团队来说,技术要求真的是越来越高了,整个工作流进来已经废了半条小命,这下还要把微信,安卓.IOS给弄进来,上哪儿学这

力软敏捷开发框架V7.0.6新版移动端上线,支持钉钉、支付宝等小程序

日前,力软敏捷开发框架V7.0.6正式更新,新增了微信小程序模块,为了进一步提升框架的实用性,对移动端功能再次进行了更新,目前可同步支持微信.支付宝.百度.头条.QQ.钉钉等小程序. 小程序相关功能使用方法比较简单,这里以钉钉为例做一下基础演示: 在表单页右上角点击"分享"按钮,可以分享到钉钉群聊或私聊 相关人员点击这个链接会自动启动小程序,登录之后直接跳转到对应的表单,自动进入流程. 如账号已经登陆,会直接进入流程 到此流程结束. 力软敏捷开发框架是一套基于智能化可扩展组件式的软件系

力软敏捷开发框架

力软敏捷开发框架(第六代)软件行业的3D打印机.整合框架,给用户和开发者最佳的.Net框架方案.力软敏捷开发框架是一套集快速开发+通用权限管理+工作流+即时通讯+微信组件+手机APP开发于一体的敏捷开发框架.能帮企业提高开发效率,提升软件质量,使得软件研发人员只用关注核心业务的实现.拥有了这套框架您只需要一批.net程序员, 就能把架构师.美工妹.APP开发人员的活全干了.只要您创意有了,设计出来了,马上就能通过力软敏捷开发框架快速实现.它就是软件行业的3D打印机! 框架官网:http://ww

力软敏捷开发框架,至美UI,强大功能组件,给开发一个加速度!

力软敏捷开发框架,软件行业的3D打印机.整合框架,给用户和开发者最佳的.Net框架方案. 力软敏捷开发框架是一套集快速开发+通用权限管理+工作流+即时通讯+微信组件+手机APP开发于一体的敏捷开发框架. 能帮企业提高开发效率,提升软件质量,使得软件研发人员只用关注核心业务的实现.拥有了这套框架您只需要一批.net程序员, 就能把架构师.美工妹.APP开发人员的活全干了.只要您创意有了,设计出来了,马上就能通过力软敏捷开发框架快速实现. 它就是软件行业的3D打印机! UI 首先是界面UI,界面是一

力软敏捷开发框架7.0版本更新资料

感谢一直以来广大用户对力软的支持,现将力软敏捷框架7.0版本更新情况发布如下:1新添加了?1.多语言功能:?2.代码生成器模版:a.可编辑列表代码生成器(Excel风格)模版:b.报表现实代码生成器模版:3.树形代码生成功能:4.动态配置首页功能5.外部邮件收发功能6.办公类型文件在线预览功能:7.表单页面的弹出框:a.左边树:b.中间选择:c.右边显示已选择2修复1.表格控件子表格展开显示异常问题:2.日期控件偶尔出现格式错乱问题:3.分页控件页面再次加载页数错误问题3优化1.代码生成器优化成

力软敏捷开发框架-轻量化app一键快速开发

APP怎么快速开发?2018年,力软敏捷开发框架的APP在线制作平台已经逐步成熟.你不需要任何的编程技术,自己就可以通过力软敏捷开发框架上面的APP应用,拼图式自己快速搭建出一个手机互联网APP. 在整体框架都已经搭建好了,开发者只用实现业务功能.并且敏捷开发框架内已经集成了大量业务模板.大量的公共组件,开发人员只需要根据开发向导进行设置就可速度完成开发工作.让APP开发的成本可以降低90%左右,这种免编程自己制作手机APP的方法,对于没有技术团队.雄厚资本的中小企业及个人创业者来说,无疑是巨大

【力软7.0.5】力软敏捷开发框架源码更新发布,企业级.net快速开发平台

力软敏捷开发框架7.0.5版发布,企业级.net快速开发平台 升级日志: 新增 1.代码生成器,可保存方案: 2.加入葡萄城报表.套打: 3.流程手写签名.印章管理: 4.仓库平面图数据展示: 5.数据源的带参数查询: 6.表格控件字段的隐藏: 7.甘特图+项目管理示例: 8.Redis消息队列示例: 9.首页工作流任务处理界面: 修复 1.数据权限同一字段多次参与条件运算异常: 2.流程撤销异常: 3.日期控件在表格中使用异常: 4.清空缓存不彻底问题: 5.代码生成器生成编码字段异常: 6.

力软敏捷开发框架 V7.0.6 正式发布

新增 1.新增ERP示例: 2.新增jqGrid示例: 3.新增二维码生成示例: 4.新增D3图表示例: 5.流程审批节点新增自动同意规则和无对应处理人规则设置: 6.移动端流程对系统表单进行支持: 7.pc端流程新增他人代填功能: 8.新增一套主题皮肤: 9.移动端支持小程序: 修复 1.完善功能页面表单字段权限设置: 2.修复流程普通审核节点不能指定下一审核人的功能: 3.修复单据编码在流水号初始值不是1的情况下错误的问题: 4.修复即时通讯历史消息页js语法错误: 5.修复tree 打开关

力软敏捷开发平台 7.0.6 框架源码下载

接触这个框架有三年的时间了,初次接触b/s型开发项目时,是在指导人员的帮助下完成的,技术上确实也学到了一些东西,但个人觉得最大的收获是在开发软件项目的过程中,自己意识上的提升,如做项目是考虑其合理性安全性以及并发性的重要性与必要性,这么想来发现我们以前开发的项目简直太肤浅了,接来下我还是踏下心来研究处理好创业项目的测试以及后台程序并发性,安全性的问题吧. 任何一个框架都是不完美的,此框架也是,有其便利的地方,我们用起来很舒服,开发起来很方便,但是每当我们想要加入个性化要求的时候这便是一件比较蛋疼