失效链接处理 |
基于Activiti5工作流的OA系统的设计与实现 PDF 下载
本站整理下载:
提取码:j07y
相关截图:
主要内容:
2 关键技术概述
2.1 工作流的定义
工作流这一术语源自于英文单词Workflow,字面意义是工作和流的结合,但是其定义多种多样,至今还没有一个统一而又明确的定义,但其中一种广为流传的说法是说它指“业务流程的部分或整体在计算机环境下实现的自动化”。曾经在不同时代的人对它作出过各自的定义:
定义1:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行。
定义2:工作流是将一组任务组织起来完成某个经营过程。在工作流中定义了任务的触发顺序和触发条件。每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以是由一个或多个人与软件系统协作完成。任务的触发顺序和触发条件用来定义并实现任务的触发、任务的同步和信息流(数据流)的传递。
定义3:工作流是一个用来实施经营过程实践的机制。
定义4:工作流是经营过程的一种计算机化的表示模型,定义了完成整个过程所需要的各种参数。这些参数包括对过程中每一个步骤的定义、步骤间的执行顺序、条件以及数据流的建立、每一步骤由谁负责以及每个活动所需要的应用程序[3]。
对于以上四个定义,它们的表述方式各有不同,但无外凸出了一个基本的本质,即工作流是工作过程的一个计算机实现方式。
此外,工作流经常与“业务过程重组(BPR)”联系在一起。业务过程重组是关于企业组织核心业务过程的评估、分析、定义、模拟,以及其后的操作实现。尽管不是所有的业务过程重组都是采用工作流技术来加以实现的,但是工作流技术是实现业务过程重组的最佳方法。一个主要的原因是因为工作流技术提供了业务过程逻辑和计算机操作的分离,进而能够通过修改过程规则来重新定义业务过程。还有一点值得注意的是,工作流技术并不是只限于在业务过程重组中使用,它还能用到更多更有利于我们的方面。
2.2 工作流管理系统
工作流管理系统(Workflow Management System ,WFMS)是这样一个软件系统:它通过执行经过计算的流程定义去支持一批专门设定的业务流程。它被用来支持定义、管理和执行工作流程。可以这样来理解,工作流管理系统的目标是:管理工作的流程以确保工作在正确的时间被所期望的人员去执行,在自动化进行的业务过程中插入人工的执行和干预措施,这也正是工作流管理系统的价值之所在,也是工作流系统的开发人员最主要的工作。
图2.1 工作流管理系统参考模型
如图2.1所示,就是工作流管理联盟提出的工作流管理系统参考模型,它是由工作流引擎、流程定义工具、管理和监控工具、工作流客户端应用、执行外部应用、其它工作流应用接口服务所构成,其中工作流引擎是整个工作流管理系统的核心,可以说它在整个工作流的应用环节都起着极为关键的作用。
2.3 Activiti简介
Activiti项目是一款基于Apache许可的全新开源的工作流引擎软件,它的第一个版本为5.0 alphal,到了2010年才发布其第一个正式版Activiti 5.0,也正是在5.0正式版之后才开始出现对于BPMN 2.0规范支持。Activiti的创始人Tom Baeyens曾经是JBPM创始人,但是后来因为与合作伙伴在JBPM的未来架构上产生了分歧,他决定放弃JBPM 4的架构,开始转向基于Drools Flow的重新开发,并在后来发布了Activiti的第一个版本,即Activiti 5.0版。Activiti 5.0版采用了宽松的Apache License 2.0开源协议,以便这个项目可以更广泛的被使用,同时促进了Activiti BPM引擎和BPMN 2.0的匹配,因此当它一问世,就得到了开源社区的大力支持。Activiti的另外一个重要的好处是它比起其他工作流引擎,更容易与Spring进行集成的操作,他能适配几乎所有主流的数据库软件,并且能够在绝大多数服务器上完成部署操作。
2.3.1 Activiti架构的简介
下面简要介绍Activiti架构,如图2.2所示
图2.2 Activiti架构图
下面依次介绍Activiti架构图中的各个组件[4]:
(1)Activiti Engine
Activiti工作流引擎,是整个Activiti中最为核心的部分。它是对BPMN 2.0规范的执行、创建、管理、查询历史记录,并且根据结果来生成报表。
(2)Activiti Modeler
Activiti模型设计器,它适用于多个方面,主要功能是被工作流的设计人员用来将需求转换为规范流程定义。
(3)Activiti Designer
它的功能与Activiti模型设计器相似,它也拥有基于BPMN 2.0规范的可视化设计功能,但是不足之处是它仍然不能百分百地支持BNPM规范的定义。它非常符合开发人员的需求,它具备将业务需求人员用Signavio设计的流程定义导入到Activiti Designer中,进而能够使得工作流的业务开发人员将它进一步实现为可以流转运行的流程定义。
(4)Activiti Explorer
它能够用来管理用户、仓库、启动流程、办理任务等。该部分使用了REST风格的API,非常适合没有工作流开发基础的程序员来使用,它的主要特点是提供了一个基础的设计模型。
(5)Activiti REST
提供Restful特色的服务,可以满足客户端以JSON的方式与引擎的REST API交互。
2.3.2 Activiti的核心类简介
下面介绍Activiti的几个核心类,如图2.3所示:
|