(3)Activiti的结构和实现原理。Activiti项目主要由三种类型的组件组成,分别是专用工具(Dedicated Tools)、存储内容(Stored Content) 协作工具(Collaboration Tool)。专用工具包括内容管理器、建模器、设计器、管理和监控器、任务管理五个工具组件。存储内容组件包含文档仓库、MVN仓库、Activiti引擎。Activiti是整个软件的核心引擎。协作工具组件是一种全新的BPM组件,用来促进业务人员、开发人员、和操作人员的协作[5]。
(4)ABPM工作流管理系统的设计。系统提供基于Web的图形化流程设计器方便用户使用,系统既可以单独部署也可以嵌入到应用系统当中,系统应当保持独立性,对业务代码的侵入度降到最低。
本文的各章节内容说明如下:
第一章引言部分主要讨论了工作流引擎的发展现状,分析了国内外主要的工作流管理软件的特点,阐述了本文的研究目的和论文特色,并着重说明了本文的主要研究内容和章节安排。
第二章对工作流的理论知识和工作流技术的发展历史进行了介绍,并着重介绍了目前最流行的开源工作流软件的特点,最后从市场的角度分析了工作流技术的发展前景和本文的研究目的。
第三章介绍Activiti工作流引擎,首先是Activiti的总体介绍,接着从Activiti的系统结构和Activiti的特点这两方面对Activiti的实现机制和优缺点进行了探讨,希望读者对Activiti能有一个初步的了解。
第四章首先说明了基于Activiti的工作流管理系统的开发背景,并给出了系统的设计目标。
第五章对ABPM工作流管理系统的结构设计和主要功能进行了详细说明,并对系统的主要功能模块进行了简要阐述。基于浏览器的流程设计器是系统的一大特点,本章特地用一小节内容对流程设计器的设计和实现进行了说明,最后给出了系统持久化的方案和主要接口的使用方式。
第六章对ABPM系统进行测试和结果分析,并举例说明了系统的使用方式。 第七章论文总结和项目展望。
4
第二章 工作流概述
2.1 工作流的定义
工作流的英文单词是Workflow,表示工作Work和流动Flow的组合,是一种能够被计算机解释和执行的反映经营过程业务流动的计算机化模型[6]。
工作流的出现与办公自动化领域的发展密不可分,在较早的时候就有人提出,可以将企业日常工作中具有固定模式的业务活动进行抽象成为计算机可以理解的模型,将一项工作分解成为按照某个顺序执行的一组任务,然后指定不同角色的人员在计算机的协助下完成任务,最终完成某项业务或者工作。最终达到更好的过程管理、提高沟通和工作的效率、增强对客户的服务、提供企业整体效率的目的。尽管工作流的概念的出现已经有数十年的时间,与工作流相关的理论和技术也已经相当丰富,但是目前业内对于工作流的定义还没有一个完全统一的认识,曾经有许多有名的企业和专家对工作流的定义给出了不同的解释。
AndyPankous认为的工作流定义是:工作流是一种按照某种规则定义的一组任务,任务可以由一个人或者多个人来完成,也可以通过计算机系统来自动完成,工作流的关键是任务执行的顺序和触发条件,目的是为了达到某个特定的企业经营目标[7]。
IBM公司的RobertAlan将工作流定义为:工作流是企业经营过程的一种计算机化的表示模式,模式中规定了一个完整的经营过程必须包含的所有步骤、这些步骤的执行顺序和条件、以及完成步骤的负责人,所有这些信息构成了工作流的参数[8]。
1993年工作流管理联盟(Workflow Management Coal ition,简称WFMC)的成立,标志着工作流理论和技术达到了一个较为成熟的阶段。WFMC成立以后提出了一系列的关于工作流技术的标准和规范,为推进工作流的发展做出了极大贡献。WFMC给出的最新的工作流的定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。
2.2 工作流的发展历史
1970年代早期办公自动化领域的相关研究工作就已经提出了现代工作流技术的雏形,但是工作流思想出现的时间可能更早,Amanda Nierson在1968年就
5
已经提出了要利用计算机技术来帮助人来完成工作流的先进想法。1971年 Michael D. Zisman开发出了原型系统SPORK,1976年Frederica Kevin和Thomas Neil开发出了“网络故障自动监测”程序,1975年Samson A. Tony和Vincent J. Spark等人合作推出了SilentTalk系列试验系统,这些系统都采用了Petri网的相关算法来进行流程模型建立,都具有早期工作流程自动化的思想。其中SPORK和SilentTalk系统,不但标志着工作流技术的开端,而且也是最早的办公自动化系统之一。
在上世纪七十年代,工作流技术的出现激起了很多企业的兴趣,许多企业的管理者相信,这种先进的技术可以让企业的办公效率大大提升,最终提高企业的利润,但是最后许多尝试都以失败告终。很多企业实施工作流技术失败的原因主要包括:工作流技术的实施限制了企业员工的工作创造性和灵活性,让企业人员只能死板的按照某一种固定的工作模式来完成每天的工作,最终导致企业人员对新技术的反感。而在上世纪70年代的时候,真是现代企业管理理论快速发展的时候,各种不同的新想法和新理念层出不穷,同时在那个年代,计算机和网络的普及还很有限,计算机尚未成为所以企业办公必备的工具,计算机的使用也没有今天那么方便。
在上世纪八十年代,出现了许多含有工作流特征的工业化控制系统,比如某些用在生产线上的自动化控制系统。生产线在使用了自动化控制系统以后,操作员能够按照实现设定的工作流程来完成产品制造中的一个步骤,再把产品推送到下一个节点,由另外一名操作人员来完成产品的下一个生产环节,最终完成整个产品的生产制造过程。这些系统大大提高了企业的生产效率,但是缺点是应用范围比较窄,而且工作流程基本是固化的,难以调整。
进入上世纪90年代以后,工作流技术迎来一个新的发展高潮,与工作流相关的各种理论和新技术层出不穷,工作流技术被广泛应用在政府、金融机构、企业、学校、医院等组织机构当中,与工作流相关的应用系统包括电子政务、办公自动化、金融信息系统、教育信息系统、医疗信息系统、科研系统等等,据统计,在1995年就要超过两百多种软件产品宣称自己支持工作流或者具有工作流系统的特征,工作流产品可谓是百花齐放,百家争鸣。
1993年8月,工作流技术标准化的工业组织-工作流管理联盟(WFMC)成立。 1994年,工作流管理联盟发布了用于工作流管理系统之间互操作的工作流参考模型,并相继制定了一系列工业标准。
关于工作流技术的学术研究也从未停止过,光是在万方数据库中搜索,与工作流相关的论文就多达数万篇,许多专家学者在提出新的工作流理论的同时,还使用各种不同的技术开发出了原型系统,从工作流的定义、建模、流程有效性验
6
证、工作流中的事务控制、如何提升工作流引擎的性能、工作流系统的安全性、工作流与应用系统的接口等方面进行了大量研究,并产生了许多具有实际应用价值的成果。
尽管工作流技术已经取得了长足的发展,但是工作流系统还是有很多值得研究的地方,比如现在的工作流系统在性能上、可靠性上、安全性上都有不尽如人意的地方,对于支撑企业系统7乘24小时不间断工作还有一定距离。
2.3 典型的工作流管理系统
目前各大软件厂商均推出了自己的工作流软件,市场占有率最高的是IBM的Websphere MQ Workflow系列产品,产品的可伸缩性和容错性使得它可以充分发挥多处理引擎和群集的优势,并且方便用户快速构建和部署。MQ Workflow有如下特点:过程执行速度更快;自动生产方式提高了生产率;帮助用户节省成本;提高过程执行的品质;使用ISO9000标准来进行过程处理。
另一款比较有代表性的工作流软件是Oracle公司推出的Oracle Workflow产品,该产品提供了自动化的任务管理和个性化的工作列表以及自动邮件等功能实现了用户高效率的合作,工作流管理器实现了对工作流状态的全过程监控,方便用户对流程进行完善和优化,实现业务流程的智能化。
微软公司的Microsoft Biz talk Server是针对大中型企业推出的服务器产品,目前在市场上占有较高的份额,功能包括业务流程自动化、业务流程管理、企业应用集成以及企业之间的集成。Biz talk的主要特点有:提供了图形化的流程定制界面,易于使用; 提供了图形化的流程监控界面,便于查看流程状态;支持流程自动化和流程持久性;支持多种工作流模式。
以上的几款工作流引擎一般作为整体解决方案的一部分存在,除此之外还有为数众多的开源工作流引擎。比较典型的有JBPM,OpenWFE,Enhydra Shark,Bonita,Activiti等。2004年10月18日,JBPM2.0版本发布,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分。它覆盖了业务流程管理、工作流、服务协作等多个领域,支持BPEL语言,可以部署在任何需要使用工作流的J2EE系统当中。
OpenWFE由John Mettraux所领导的小组开发,完全遵循WFMC标准,系统采用JAVA作为开发语言,OpenWFE除了实现工作流引擎的各项基本功能,也可以当作一个完整的工作流管理系统来使用。系统具有功能完善、易于扩展、通用性好等优点。
Enhydra Shark 提供了基于Java Swing的桌面应用程序来对Shark引擎进行
7
配置管理,产品遵循WfMC和OMG标准,并支持XPDL外部接口,功能较为强大。但是整个软件的体系结构过于复杂,产品体积比较庞大,不少的开发人员反映Enhydra Shark 难以使用,使用Enhydra Shark的总成本较高,适合大中型项目使用,不太适合用在小型软件项目中。
Bonita是一个新兴的基于活动预测模型的第三代工作流引擎,系统遵守WfMC规范,软件体积小巧,方便使用,并提供了基于浏览器的流程设计器。系统基于PetriNet模型开发,便于理论分析,支持持久化。文档齐全,支持标准的Web Service接口。系统的缺点是功能过于简单,系统性能和稳定性有待验证。
Activiti是一款开源的、灵活的、易扩展的可执行流程语言框架,它由JBPM的创始人Tom Baeyens发起。Activiti可以运行在任何部署在服务器、集群、云计算中心上的Java程序当中,具有良好的发展前景。
国内厂商也推出了众多的工作流产品,比较有代表性的有普元EOS、方正飞鸿BPMES平台、StarFlow等等,相比于国外的工作流引擎软件,国内的软件在性能和功能上与国外还有不小的差距。
2.4 工作流的应用和市场前景
自从上世纪九十年代末,随着工作流的理论逐渐完善成熟,各种支持工作流或者包含工作流特征的软件如雨后春笋纷纷出现。微软、IBM、Oracle这些老牌软件公司都推出了自己的工作流产品和解决方案,在国内也有多达上百家的IT公司正在大力推广自己的工作流产品,努力提高自己的市场份额。
工作流管理软件之所以能被众多的IT公司所重视,不断的进行理论和技术的创新,究其原因,是因为工作流管理软件有着广泛的应用领域和市场空间。目前在政府、企业、学校、医院等各种不同的单位都能看到工作流管理软件的身影,工作流管理软件的使用范围遍及电子政务、金融服务、企业管理、制造流通、物业管理等等。
从具体的使用功能上来看,工作流管理系统支持的业务包括:
? 行政管理业务:包括公文下发,各种办公用品的采购存储使用流程,日
常工作成果上报审查等等。
? 人事管理业务:包括企业组织结构变更,员工职位职级变更,员工绩效
考核,员工培训考试管理等等。
? 财务管理业务:包括员工出差经费报销、日常开支报销流程、其他经费
的支出审核管理等等。
? 客户关系管理业务:包括客户信息管理、客户投诉管理以及客户售后服
8