基于web技术的工作流管理系统的设计与实现内容摘要:

示 Petri 网模型的唯一出口,模型实例将在该点结束流程。 终止库所的特征是,没有从该库所指向变迁的内向弧,但可以有一个或多个从变迁指向该库所得外向弧。 中间库所,即 intermediate place,在标准 Petri 网模型中可以有 0 个或多个,它是除去起始库所和终止库所外的第三类库所,通常,中间库所起到的作用是连接变迁与变迁,中间库所根据其相对于变迁的位置的不同又可以分为输入库所和输出库所两种。 当存在一条内向弧 P T 时,我们称 P 是 T 的输入库所。 当存在一条外向弧 T P 时,我们称 P 是 T 的输出库所。 .2 变迁 变迁使用矩形表示。 变迁是英文 transition 的中文译文,在英文中transition 意为转换、转变,大多数中文文献中都将 transition 翻译为变迁是比较形象、合理的,本文 后继部分将使用变迁一词来代表 transition,为了文章说明的方便,也会交替使用 transition 和变迁,它们代表同样的图元。 在后继的文章中,也会使用 T 来表示变迁,使用 Ti( i 1, 2, 3„)表示在一个 Petri网模型中的某个具体变迁。 为了后文讨论工作流引擎调度策略的方便,这里简单介绍一下变迁在模型实例中可能存在的状态。 一个变迁在模型实例中可能存在三种状态,分别是:常态、就绪态和激发态。 常态,或者说是未就绪态,处于该状态的变迁是指那些尚不满足被调度的条件的变迁。 就绪态,就绪态的变迁是指那些已 具备了被调度的条件的变迁,这里的被调度的条件是指该变迁的所有输入库所中都至少获得了一个 token,这将在工作流引擎调度策略章节详细分析。 激发态,激发态的变迁是指那些成为就绪态的变迁所对应的任务实体被实际执行后的变迁的状态。 严格来说,激发态并不是变迁的一种静态状态,而是指处于就绪态的变迁所对应的任务被实际执行时刻的动态状态,这样来说,一个就绪态的变迁所对应的任务实体被实际执行后变迁将处于激发态,激发态只是个瞬间状态,进入激发态的变迁即刻处于常态,即进入新的等待调度条件的状态。 图 5 说明了变迁状态的变更。 图 5:变迁的运行时状态迁移图 .3 弧 弧使用一条有向线段表示。 弧是英文 arc 的中文译文,弧在 Petri 网模型中起到的作用是连接库所和变迁,因为有弧的存在,一个 Petri 网的模型最终形成了一个有向图。 根据弧的方向是从库所指向变迁还是从变迁指向库所,弧可以分为两类:内向弧和外向弧。 内向弧是指从库所指向变迁的弧,如图。 内向弧是英文 inward arc 的中文译文。 内向弧通常使用 P T 来表示,即从 place 指向 transition 的弧。 外向弧是指从变迁指向库所的弧,如图。 外向弧是英文 outward arc 的中文译文。 外向弧通常使用 T P 来表示,即从 transition 指向 place 的弧。 这里需要说明的是,当我们说外向和内向时,我们是站在变迁即transition 的角度来说明弧的方向的,因为 transition 在 Petri 网模型中是主要的元素, transition 也将是工作流调度引擎进行调度的主体,这将在后继的文章中说明。 .4 标记 标记在 Petri 网模型中使用小黑点来表示,标记一词是本文对 token 的翻译,在大多数中文文献中都没有给出比较合适的翻译,通常选择了直接使用token 一词,应该说在 Petri 网中 token 所起到的作用很难选择一个合适的中文来描述。 标记不是 Petri 网静态模型的元素,而是 Petri 网模型实例运行时的存在的元素。 具体来说,在 Petri 网模型建模期间是不存在标记的,只有当该模型被工作流执行引擎实例化并开始调度时存在的。 标记始终是存在于库所中的,如果把库所理解为一种容器,那么,库所的作用就是用来装标记的。 Petri 网模型实例中标记在所有库所中的分布状态就反映了一个 Petri 网模型实例的运行状态。 因此, token 在 Petri 网中是一种运行时模型实例状态信息的载体和标记,这也是本文将 token 翻译为标记的直接原因。 从这个角度来说,有些参考文献引用网络中的术语将 Petri 网中的 token 翻译为令牌是不恰当的,至少是不够准确的, Petri网中的 token从功能上来说是一种反映模型实例运行状态的静态实体,网络中的令牌是一种处于移动中的动态实体。 Petri 网中的 token 的生存期只是在某个特定的 place 中从创建到消耗的过程,并不会出现 token 在不同的 place中移动的情况。 这一点在后文将由具体的解释。 Petri 网的触发器 从上文所阐述的变迁运行期状态迁移中可以看出,变迁处于就绪态的时刻和变迁 处于激发态的时刻是不同的。 能够引起一个处于就绪态的变迁向激发态迁移的事件被称为一个“触发器”。 存在四种不同类型的触发器。 图 6: petri 网中变迁的四种触发类型表示图 自动触发:任务一旦从常态迁移到了就绪态就马上可以被激发。 这种类型的触发应用于那些不需要人来交互的而是被应用程序来执行的任务。 用户触发:任务由人来触发,例如,用户选择一个处于就绪态的任务来执行。 在一个工作流管理系统中每个用户都有一个任务输入箱,这个输入箱所包含的就是那些已经就绪的可以被用户执行的任务实例,任务实例也称为工作项( workitem)。 用户选择并完成一个工作项的操作就是相关的任务实例的触发,同时工作流实例也将进入流程的下一阶段。 时间触发:处于就绪态的任务由一个时钟来触发。 例如,任务项在一个预定的时刻被执行。 消息触发:一个外部事件触发一个处于就绪态的任务实例。 消息可能是电子邮件、传真、电话或 EDI 消息。 每个这样的外部事件都对应应用任务的某个活动,这样工作流系统才能知道事件的发生。 Petri 网的路由 从工作流程的起始库所到中止库所的路由形式有多种,如下: 顺序路由 图 7:顺序路由示意图 并行路由 图 8:并行路由示意图 条件路由 图 9:条件路由示意图 迭代路由 图 10:迭代路由示意图 Petri 网的发散和汇聚 为了能够实现 Petri 网的路由方法,需要使用发散和汇聚, Petri 网具有如下基本的发散和汇聚单元: 图 11: petri 网的发散和汇聚标示 与发散 与发散标示的是一种并行路由,即多个任务可以并行地或以某种不确定的次序进行。 用图表示为具有一个输入库所、两个或多个输出库所的变迁。 这样,当该变迁被激发后将为所有的输出库所产生 token。 与汇聚 与汇聚用图表示为一个具有两个或多个输入库所和一个输出库所的变迁。 这样,变迁只有当其所有 的输入库所中都拥有了可用的 token 后才能够从常态迁移到就绪态,既是说,输入库所前并行的流程必须全部执行完,才汇聚到当前变迁,任何一个输入库所没有可用的 token,变迁都处于同步等待状态。 显示或发散 显示或发散是条件路由的一种具体实例,它在流程的推进中表现出来的特征是尽可能早的确定( as early as possible)。 用图表示为在变迁的输出弧上附加了条件判断,即是说,当变迁被激发后,并不是为其所有输出库所产生token,而是要根据输出弧上的条件,通常条件是一种 bool 型的表达式,以决定是否为弧所 连接的输出库所产生 token。 隐式或发散 隐式或发散也是条件路由的一种具体实例,它在流程的推进中表现出来的特征是尽可能晚的确定( as late as possible)。 用图表示为存在两条弧从同一库所出发指向不同的变迁,这样,当输入库所获得 token 后,哪个变迁先激发就会获得这个 token。 一旦某个变迁消耗了该 token,那么,另外的变迁将不再具备就绪的条件了,也就无法被激发了。 或汇聚 或汇聚用图表示为两个不同的变迁拥有同一个输出库所,这样,这两个不同 的变迁中任何一个的激发都会使得其输出库所后继的 变迁的状态的迁移。 3 相关工作 工作流发展现状 工作流的概念起源于生产组织和办公自动化领域,提出的目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高工作效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。 自 20 世纪 90 年代中期至今,互联网技术在我国迅速发展和普及,引出了Intra、 Extra、 Inter、政府上网工程、企业上网工程、电子政府、电子商务、电子管理、政府内部网、企业网、数字神经系统和数字化办公等一系列新 概念,这些新概念的提出背后都或多或少的存在着工作流的思想,只不过有些概念体现的工作流思想少些,而有些概念的核心思想就是工作流的思想,如办公自动化等。 随着企业信息化步伐的加快,工作流的思想已经越来越多地进入了企业应用系统领域。 现代化企业为了增强工作效率、缩短信息传播周期、固化业务模式、增加核心竞争力,已经将企业经营过程的各个领域各个环节均纳入了企业信息化的部分。 众多的企业应用系统按照功能从大的范围来划分,无非两种,一种是以公文流转、日常办公为主体的办公自动化系统,另一种则是以企业经营过程的业务流程为主要辅助对 象的具体业务系统。 无论是办公自动化系统还是具体业务系统,都是为企业提供软件服务的,都是本着服务于企业需求为目标的,然而,现实世界中的各个企业的经营过程是无时无刻不在变化和调整中的,以便适应瞬息万变的市场。 这种变更带给信息化系统软件的最大的问题在于企业经营过程的调整往往使得原有的信息化系统软件要推倒重新设计开发,使开发成本非常的高,寻找到一种能够相对灵活的架构和管理方式以使得信息化系统能够快速的适应企业经营过程的变更成为了为企业构造信息化系统的软件设计人员的头等课题。 工作流及工作流管理系统之所以能为企业信息化 系统所使用究其原因也在于此。 虽然工作流技术已经开始在企业应用中拥有了一片天空,然而,同已经应用于企业的其他技术相比,工作流技术仍然处于其技术发展的初期。 图 12:工作流技术同关系数据库管理系统技术发展曲线图 图 12是在 stevesmith提出的用来反映一种技术从其提出到最终产品化的发展趋势的曲线图上标示了工作流技术同 RDBMS 技术当前发展阶段的对比。 从图中不难看出,工作流技术才刚刚处于技术的提出和初期的发展阶段,距离其发展的高峰期还有很长的一段路。 特别是当把工作流技术同已经处于稳定阶段的产品化了的 RDBMS 相比时,工作流技术发展的落后是非常明显的,然而,任何一种技术的发展客观上都是遵循这一技术发展曲线的,都是要有个过程的, RDBMS 技术能够达到今天的程度也是从其提出之初一点点地发展起来的,因此,工作流技术尽管仍然处于其技术提出阶段,但市场对技术的需求必将加快工作流技术的发展,加快其产品化的步伐。 从国内目前工作流技术应用来看,工作流进入企业应用的还非常有限,并且,已有的工作流产品大部分属于办公自动化系统,例如协同、通达、浪潮等产品。 然后,能够作为企业业务系统支撑平台的工作流产品几乎没有,企业业务系统仍是大量的 专业系统各自独立的构成的,相互集成协作的能力基本上靠传统的手工方式人为的来操作,失去了信息化的高效性和自动性。 工作流为企业业务系统提供支撑平台的需求同当前工作流技术的发展形成了鲜明的对比,当然,需求拉动市场,市场促进科研,随着工作流技术的成熟,最终将会进入到企业业务系统并为其服务的。 本文所设计实现的工作流管理系统主要目的也在于此。 工作流研究领域 工作流管理技术,在其发展的初期主要是由工作流产品开发的公司推动着其发展,随着它在实际应用中取得的良好效果而得到了充分的重视,并且得到了迅速的发展。 相对于工作 流产品市场的繁荣,工作流相关理论研究则显得有些滞后。 在过去很长一段时间里,有关工作流方面的研究主要是商品化的工作流管理系统的开发商所领导。 本着把工作流产品推向市场的目的,这些开发商大多把研究的注意力放在了工作流管理系统的开发实施方面。 目前,在工作流设计方法学、工作流概念模型等方面还没有形成一套比较成熟的理论和方法。 在工作流理论与实施技术方面,研究的主要内容包括: 1 工作流管理系统体系结构的研究; 2 工作流模型与工作流定义语言研究; 3 工作流的事务特性:研究如何实现高级事务处理技术与工作流管理技术的结合,用定义良 好的模型语义与恢复机制来提高工作流系统的正确性与可靠性,从而能够更好地支持企业复杂的业务过程; 4 工作流实现技术:包括面向对象技术、异构分布式计算技术、图形化用户界面、消息通讯、数据库、等在内的与工作流系统的设计实现有关的各项技术及方法; 5 工作流的仿真与分析方法; 6 基于工作流的应用集成与互操作技术:研究异构应用系统的集成以及不同工作流系统之间的互操作问题; 7 工作流与经营过程重组:研究如何通过工作流管理系统的实施来支持企业快速高效地实现经营过程重组; 8 工作流技术的其它应用:研究如何将工作流技术在不同的领域进行应 用,包括在 CIMS 中的应用。 上述主要研究问题可以分为三个方面:第一方面是工作流的理论基础,包括工作流管理系统的体系、模型与定义语言(工作流建模方法、工作流模型的形式化标识、工作流定义语言)等的研究。 这一部分工作目前相对来说比较薄弱,还有许多问题需要进一步研究。 第二方面是工作流的实现技术,包括工作流的事务特性、各种先进软件技术的应用、工作流仿真。 这方面研究工作的主要目的是提高。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。