工作流引擎技术白皮书

工作流引擎技术白皮书
工作流引擎技术白皮书

工作流引擎产品功能介绍

目录

1.1工作流引擎简介

1.1.1产生背景

随着我国信息化建设的不断深入,越来越多的政府部门和企事业单位都清醒地认识到信息化对于自身的生存与发展的重要性,以IT 系统建设为基础提高工作效率,增强竞争能力,已经成为共识。

在过去的若干年中,许多企业以当时的IT 发展水平为基础,针对不同的业务需求搭建了种类繁多的应用系统。回顾这一阶段,我们可以发现长期以来IT 系统的建设一直跟随着技术的革新和业务需求的增长而被动地发展着。不论技术手段如何变化,企业仍旧习惯于沿着功能分析的思路为特定的需求开发专有应用。随着时间的推移,企业内部逐渐积累了许多相互孤立的筒仓式应用系统。不可否认,正是这些应用系统共同构成了当今企业的主要IT 运行环境并有效地支撑了企业早期的业务发展,但是我们也必须清醒地认识到,在这些缺乏前期规划、互连性极差的应用系统之间信息不能被有效地共享且难于保持一致,业务过程也无法顺畅地流转,它们是造成“信息孤岛”现象的根源。一些企业也曾经尝试采用整理、合并各种需求、统一数据接口、规范业务过程等方式来降低集成的复杂度,但是在经过一番实践后,人们又发现仅仅依靠规范静态信息的交换格式,集合局部的需求等方法并不足以支持更大范围内的应用整合。因此当前的企业迫切需要一个能够支持在不同的应用系统之间完成协作任务的具有前瞻性的应用集成框架。

当前,企业面对的是一个多变且难以预测的市场,要在这样的环境中生存和

发展,就必需具备对外部变化做出迅速响应的能力。同样,政府部门也面临着转变工作职能,适应市场经济发展要求的压力,需要不断地为大众提供各种高效的公共服务。各项独立调查表明: 对业务系统和IT 基础设施进行快速调整和扩展一直是政府部门和企事业单位应对外部环境变化的重要手段。然而在早期的IT 系统设计过程中,人们往往更加关注于系统的稳定性而不是迅速应对变化的能力,原先那种僵硬的基于硬编码实现的系统功能扩展和集成方式已远远不能满足要求。“采用什么样的技术来搭建能够实现跨部门、跨企业、跨地理范围的支持流程协作和流程自动化的IT 基础设施”,“如何能够从被动地应对变化到预见变化进而实现前瞻性地主动变化”…这些都是当前每一个政府部门和企事业单位必须面对的挑战。

通过工作流系统把各业务部门的孤立应用系统整合起来是IT技术发展的必然趋势,而我国从上实际八十年代大量建设基础信息系统至今,工作流技术的发展可以分成以下几个阶段。

1.1.2发展阶段

1.1.

2.1EDF(电子数据流)阶段

此阶段的工作流在信息技术中的应用,仅着眼于利用信息技术减轻人们在流程中的计算强度最主要的特点是仅对企业单项业务进行处理,基本不涉及管理的内容。国内最早成功的产品是财务管理产品,为了配合产生正确的数据,可能要设计一个流程用来协调多个会计统计帐目。

此阶段仅仅停留在诸如文档处理、公文流转以及信息发布等这些简单的业务

层面上。

1.1.

2.2TPF(事务处理流)阶段

TPF并没有形成对企业的全局业务的管理,而着眼于对企业局部业务的管理,比如,设计一套工作流程,来管理物资的采购和供应。

此阶段不仅仅停留在诸如文档处理、公文流转以及信息发布等这些简单的业务层面上。越来越多的企业或部门要求将信息技术的应用扩展到关键业务中,例如,产品的设计和制造过程,银行的借贷和划账业务,还有商标的申请、审查和注册业务等等,都属于相应企业或部门的关键业务。

1.1.

2.3IMF(整体集成管理流)阶段

IMF强调对企业业务的全局的整体性的管理。在这个阶段,工作流就是为了完成同一目标而相互衔接、自动进行的一系列业务活动或任务。工作流技术与信息技术以及企业管理紧密结合,已经悄悄渗入MIS系统、ERP系统和CRM系统等企业级关键系统中,并迅速成为这些系统的核心。

1.1.

2.4CPF(知识共享和持续改进)阶段

针当企业走上一个良性循环后,它会更加依靠系统从业务、管理的点点滴滴不断地进行积累、总结提高,其中包括流程本身的改进、业务技能和经验的总结推广、管理思想的推广。

企业顺利实施本阶段,则和竞争对手的差距就可以明显拉大。

1.1.3主要特点

通常的工作流引擎一般都具备以下特点:

1.提供方便灵活的流程定义工具;

2.按照既定的业务规则管理和监督业务的运行;

3.提高工作效率,有效缩短业务处理周期;

4.避免传统处理方式中的随意性造成业务流程混乱,增强业务各环节的协作能力,使业务运做更加顺畅;

5.减少或避免人为因素造成的原则性错误及由此带来的损失;

6.有利于业务的评估和业绩考核;

7.新员工可以迅速适应本职工作;

8.由于业务处理主要由业务人员自行处理,并且业务的管理由工作流服务器承担,各业务主管将从以前大量的事务中解放出来,将主要精力用于更重要的事情;

9. 与现有系统进行整合集成(EAI);

10.为帮助企业适应新形势而进行业务流程重组提供有效的分析手段和技术支持;

11.高效率的业务处理有助于提高客户服务水平和企业竞争能力;

1.1.4流程定义和运行

1.1.5流程运转模式

在工作流引擎中,千变万化的流程可以归结为以下几种基本模式:

1.1.6工作流引擎不等于OA系统

很多人一到工作流就理解成收发文,简单吧工作流认为是OA产品,其实很大地降低的工作流地价值。

纵观当前OA市场,我们可以简单地把OA系统划分为三类:

第一类是基于IBM Lotus Domimo/Notes平台开发的OA系统。这类系统在中国的用户量相对较大。典型的代表产品有蓝凌、金蝶开思、合强和凌柯等软件公司的OA产品。这类软件的优点是,它和Lotus系列的其他软件如Sametime、Quickplace等的集成度比较高,还能利用Lotus提供与关系数据库和大型ERP 软件如SAP、Oracle、Peoplesoft的接口。其缺点是,平台不够开放,存储结构不是建立在关系数据库平台上,大数据量下的频繁CRUD(创建、替换、更新、删除)操作会大大降低性能。根据IBM对Lotus系列产品的发展路径图,Domino 平台存储将会基于DB2平台,同时完全支持J2EE平台,但对于现有客户来说,这是一笔较大的升级成本。对于马上要用的客户来说,这不过是望梅止渴。

第二类是基于微软Exchange平台开发的OA系统,这类系统用户数量也不少。比较典型的有京华网络的ExOA、领航OA等系统。这类软件的特点是和微软的产品高度集成,而和其他系统(如企业的ERP、CRM等)的集成需要定制开发来完

成。因为这样的OA系统几乎需要从头开始开发接口,工作量很大。由于Exchange 也没有采用关系数据库的存储方式,和第一类Lotus产品一样存在大数据量情况下的性能问题。

上述两类软件是国内OA市场上的主流,基本占到国内OA软件的90%以上的市场份额。

第三类是基于应用服务器平台和关系数据库开发的应用系统。由于Domino 和Exchange在海量数据上的性能限制,于是部分公司在基于应用服务器(J2EE,.Net等)和关系数据库来开发OA系统。比较典型的有Exact E-Synergy、泛微软件的eCology以及华炎软件的HotOA。XX工作流流工作引擎基本可以归入此类,但是它更加强调和业务系统的无缝集成和整合,而没有主推OA产品。

这类系统的优点是和其他系统的接口相对容易,由于使用了关系数据库系统,处理巨量数据时性能有大幅度提高。

总体说来,国内OA市场上的OA产品都不够成熟,各家产品的特色和缺点一样明显。和其他比较成熟的应用系统如财务软件相比,还有很大的差距。基于同样的原因,这也导致了国内OA厂商的规模都不大。

1.2XX工作流引擎

1.2.1XX工作流引擎简介

XX工作流引擎是一个以分布式工作流引擎技术为核心的用于实现不同企事业单位间业务流程及应用系统动态整合的平台类软件产品。

XX工作流引擎既是一个开发环境也是一个运行平台,在XX工作流引擎系统中我们将最终用户的各种业务规则和IT基础设施均抽象为层次化的构件,并通过其提供的描述、生成、部署、发现、执行、监控、运行时调整等技术手段作用于上述的各种构件,以实现在不同企业/事业单位间基于规则的智能化业务流转和应用系统集成。

XX工作流引擎是在异构的应用系统环境下实现业务流程整合与流程再造的强大引擎,同时也为快速、灵活地适应不可预知的未来业务要求提供了坚实的基础。XX工作流引擎是一个以分布式工作流引擎技术为核心的用于实现不同企事业单位间业务流程及应用系统动态整合的平台类软件产品。作为一个中间件产品,致力于企业的业务流程自动化解决方案,为企业的业务流程自动化以及企业流程再造提供坚实的基础平台,成为业界领先的企业业务流程自动化的基础平台产品以及企业流程再造的核心产品。有力的简化应用开发的步骤,降低应用开发的难度,提高应用开发的效率及灵活性,节约应用开发的成本,从而极大的提高应用开发的生产力。为企业工作流自动化和企业流程再造提供了一个基础平台,构建在工作流中间件产品之上的企业应用系统,将满足上述要求,为您的企业带来新的活力。

基于目前最流行和被广泛采用的J2EE平台,采用EJB组件技术、基于JMS 消息传递机制。适当扩展国际工作流管理联盟(WFMC)制定的工作流标准;图形化的交互式用户界面,良好的稳定性、扩展性、安全性、分布式事务管理、灵活地业务流程变动功能;可方便地集成企业现有系统、中间件和电子商务应用,是开发、部署和管理企业关键业务的理想平台。

1.2.2产品设计

1.2.2.1工作流是XX电子政务平台的组件之一

统一图表编号

1.2.2.2工作流引擎设计思想

XX工作流引擎工作流定义工具,用于为XX工作流引擎工作流管理系统提供图形化的流程定制环境。它实现了工作流定义的创建、设置、存储、下载、检查等功能,XX工作流引擎具有以下特点:

符合WFMC 规范

全面支持XML 规范

跨平台Java 架构

提供了构件化的流程设计模型

符合WFMC(工作流管理联盟:全球性的工作流规范维护组织)规范,保证了系统架构的标准性和完整性。全面以XML 为数据规范,实现了数据的兼容性和与其他系统交换数据的可能性。采用了支持跨平台的Java 技术,使得定义工具可以在多种支持Java 虚拟机的操作系统下使用而不必进行修改,同时支持以Java 应用程序(Application)和Java 小程序(Applet)方式运行,后者可以不需安装,直接打开浏览器访问网络地址即可使用。XX工作流引擎工作流定义工具采用了所见即所得的定义方式,流程的执行逻辑只需通过鼠标的点击、拖拽操作

就可以构造出来,而流程中的数据和复杂逻辑判断用户也只需要填写或者选择一些字段就能完成。所有被设计并测试完成的流程定义均可以以流程构件的方式被保存和复用。此外定义工具还提供了校验定义合法性的功能。

不仅仅是一个工作流管理系统,而是一个以实现业务整合和系统整合为目标的平台类软件产品。采用SOA架构(Service-oriented architecture)。SOA 是在计算环境下设计、开发、应用、管理分散的逻辑单元的一种规范。它要求开发者从服务集成的角度来设计应用软件,即使这么做的利益不会马上显现。采用SOA架构的中心目标是使得企业应用摆脱面向技术的解决方案的束缚,轻松地应对变化和发展的需要。将应用程序和业务逻辑构件化,使IT技术人员和业务管理人员可以在自己所关心的层次上展现、理解和影响应用系统。其中技术人员的注意力将主要集中在如何以IT构件的形式封装已有的应用系统和功能模块,而业务管理人员关注的重点则是如何以业务构件的形式描述用户的流程规则片段,以及怎样在更高的层次上通过组合各种构件来实现跨越多个业务流程和IT 系统的应用整合。

高内聚,低耦合。各种构件可以被独立地开发\测试\优化\使用\理解和修改。构件间低耦合的特点会为今后的流程再造提供极大的灵活性。

引擎与引擎运行环境可分离,工作流引擎可以分布式运行和嵌入式运行。本系统关注平台设计的底层实现技术,对广大的业务适应性问题交由二次开发人员在不断的构件积累过程中逐渐完善。

重点强调易用性,最终用户可以自主地设计、调整和部署新的业务规则。

1.2.2.3工作流引擎产品架构

整个中间件由设计工具, 工作流引擎, 管理平台, 工作列表, 工作流API 几部分组成。

1.2.3产品功能

1.2.3.1支持流程运转模式

串行模式

并行模式

同步模式

唯一选择模式

简单合并模式

多相选择模式

同步合并模式

延期选择模式

转折点模式

交叉平行模式

任意环模式

1.2.3.2设计工具

采用SOA设计思想并提供了完善的构件库管理功能,最终用户可以在平台的支持下不断地积累已有的各种业务知识和应用资源,并利用可视化定义工具以构件重组的方式实现业务流程再造。

通过拖、拉方式描述流程,可视化方式设定属性

通过拖、拉方式描述业务流程

可视化方式设定流程属性

编辑工作流参与者、工作流数据及流程集成的业务组件

发布流程至运行库或从运行库下载到当前设计环境

以XML(XPDL格式)文件进行文件暂存和载入

支持以嵌入和引用的方式复用已有流程

支持业务流程的动态绑定,可以在运行时根据条件和流程中的数据来选择引用何种子流程

支持任意层次的子流程嵌套

提供了完善的流程合法性校验功能

具备流程版本控制能力

提供完善的国际化支持(I18N)

除基本数据类型及其数组外还支持任意的Java类和接口作为流程控制和业务数据

支持流程定义功能

1.2.3.3控制平台

功能介绍:

查看和管理各发布流程模板,包括流程的各历史版本

创建、启动过程实例

图形或表单方式监控流程实例统计、流程实例状态

干涉流程实例(启动、挂起、恢复、终止、重起…)

干涉活动实例(强制重起、停止、执行人员再安排…)

设定业务日历(每周工作时间、特殊工作时间、公共假日)

日志查询

1.2.3.4任务列表

任务列表模块用于开发人员进行流程测试,因为任务列表扩展了很多Web 功能,开发人员也可基于工作任务列表开发自己的业务系统。

显示当前用户的任务列表,包括可执行动作、任务状态、简述、优先级等

查询任务项的详细信息,包括活动实例数据

图形化显示实例运行状态

检出、检入任务项

模拟执行用户组件

通过流程实例状态图可以轻松了解流程实例运行路径,当前状态等

1.2.3.5流程与用户

Workflow相关人员角色共分为:

模板责任人: 负责流程需求采集及设计维护流程模板

实例创建者:具有创建流程实例的权限

实例管理者:监控、管理流程实例的运行

任务执行者:执行流程手工类型活动

Workflow在定义具体流程的各类型角色时均可通过三种类型(个人、角色、组织)的组合来最终确定, 其中角色和部门可设定关联关系为并集或交集。而且每种类型可选择定义好的参与人员(可基于流程实例变量设定规则)或通过过程实例数据值来动态指定。

1.2.3.6工作流数据

工作流数据是指和业务相关联的流程数据,主要用于初始业务组件输入参数和确定活动间转移条件的判断等, Workflow工作流数据分为过程实例数据(Process Instance Data)和活动实例数据(Activity Instance Data):通过设计工具定义过程实例数据(流程实例全局变量),支持String、int、boolean、long、double、DateTime和自定义类型,引入数据结构概念(Data Structure),过程输入、输出数据、活动输入、输出数据通过数据结构进行指定。可保证集成组件接口的稳定性。

创建过程实例时,输入过程输入数据,在过程实例运行过程中, Workflow 给每一个过程实例分配一个实例池,保存过程实例数据在引擎创建活动时,首先按照模板中定义的活动输入数据和其与活动实例数据的映射关系从过程实例数据池中取出需要的数据并映射为活动数据,并将活动数据存储以供执行和错误恢复时使用。

执行业务组件时,引擎从活动实例池中取出活动实例传递给业务组件,业务组件执行完毕后用业务组件输出数据的值写入过程实例池中,修改原有的数据值。

过程包括输出数据,可在当前过程实例是子流程时使用。

活动实例数据可保证流程回退时恢复为原有状态。

1.2.3.7事务处理

Workflow基于应用服务器的事务机制,根据具体情况结合使用CMT和BMT 方式, 当活动调用自动组件时,如果组件抛出AppException异常,工作流将自动会滚整个活动执行的事务,并将该活动和所属过程实例状态设定为InError;对于交互式组件通过API与工作流交互时,如在Web 端,可采用Global Transaction方式,如在应用服务器端则可直接使用EJB的Container Managed Transaction方式

1.2.3.8异常处理

在Workflow中,异常分为系统级异常和应用级异常,应用级异常为可修复异常,由开发人员控制,当服务器端抛出应用级别异常时(AppException), 系统自动设定调用活动实例和所属过程实例为InError状态,异常原因排除后,可以通过控制平台或API编程调用实现重复执行;当系统级别异常出现时(如数据被破坏),异常为不可修复异常,系统自动设定状态为Abort, 只能删除该实例,不能再重复执行。

1.2.4产品安全能力

支持对流程实例数据及附件进行数字签名和加密存储。

支持基于JAAS的安全认证。

支持基于J2EE应用服务器的事务处理。

提供完善的三级日志功能(系统日志\流程日志\动作日志),可以由用户定义需要保存那些事件及异常信息,并倒出到数据库或XML文件。

1.2.5产品集成扩展

支持目录服务,可以与客户现有的邮件系统或NT域紧密集成。

不需编程即可直接调用WebServices和Java类(JavaBean\EJB)中的方法,支持各种复合参数类型。

流程定义可以被部署为WebService和EJB。

由于XX工作流引擎的组织结构管理模块中的各项功能(如增加用户、修改用户的角色等)均是由预制流程实现的,因此最终用户可以依据自身的需求对其进行调整。

支持基于Java语言的功能扩展,由于XX工作流引擎可以将其他开发商编写的Java代码自动编译为可执行的类文件,因此工作流引擎在执行非常复杂的业务规则时也可以保持极高的运行效率。

为了便于实现与用户已有的业务系统及其它工作流管理系统的整合,XX工作流引擎提供了对XML技术的广泛支持。流程定义工具可以将流程模板保存为XPDL文件,并以XSL文件的形式规定其显示格式,同时流程定义工具也可以为每一个动作生成描述其上下文数据和结果数据结构的schema文件。

1.2.6运行环境

最低硬件配置:PC 机,主频450MHz 以上,128M 以上内存,4G 以上硬盘,10/100M 以太网网卡;

相关主题
相关文档
最新文档