德玛西亚之WorkFlow(一)工作流介绍
德玛西亚之WorkFlow(一)工作流介绍
1 什么是工作流
工作流(WorkFlow),就是将一项多人或者多任务的工作按照固定的顺序进行逐项操作,直至此工作结束。举个简单的例子:多个人协同做饭,首先A同学负责采购,B同学负责清洗,C同学负责刀工处理,D同学负责烹炸煎炒,E同学负责饭后清洗。为了完成一次晚餐,各位同学各司其职才能顺利结束。
2 为什么使用工作流
对上述示例来说,各位同学可以根据食材的外观和气味可以确定下一步是谁的任务,该做怎样的处理。对于计算机来说,肯定不能根据数据的外观和大小来随意的判断如果确定这是谁的任务。然后我们一般情况常用的则是使用的数据或者是记录状态来标注这些数据处于一个什么样的阶段,下一步操作如何。这样确实能解决问题,但是状态的之前复杂标注和历史状态的变更我们则要付出巨大的代码和算法进行维护。所以我们需要一个框架帮助我们完成这些比较通用的功能记录,这就是我们的工作流框架。
3 工作流都有哪些
常用的工作流有Activiti和jBPM
4 为什么选用Activiti工作流
jBPM5与Activiti同样支持BPMN2.0规范,但是实际上jBPM5已经推翻了jBPM3和jBPM4的架构,使用了Drools Flow作为工作流架构,这就对原来使用jBPM3和jBPM4的用户来说就需要从头开始。而Activiti则更像是jBPM4的延续。但是由于JBoss中有一些优秀的项目(例如规则引擎Drools、Seam等),jBPM5与这些项目进行整合具有先天的优势,因此如何选择还需要具体情况分析。
除了原来的架构有所改变之外, 还需要考虑的是,jBPM5采用的是LGPL开源协议, 如果要在其基础上使用以修改和衍生的方式做二次开发的商业软件,涉及的修改部分就需要使用LGPL协议, 对于这些商用的软件来说, 需要对jBPM5的源代码进行修改并做二次开发, 显然这不是个明智的选择。 相对千jBPM5, Activiti采用了更为宽松的ApacheLicense 2.0协议, 该协议鼓励代码共享并尊重原作者的著作 权, 其允许对 代码进行修改和发布而不管其用途。
5 Activiti由来
BPMN 2.0 规范在2011年后发布,各个工作流引擎的提供商均向其靠拢,包括jBPM5和我们即将学习的Activiti。Activiti的第一版本为5.0alpha1,2010年12月才发布Activiti5.0的正式版,期间经历了4个alpha版本、2个beta版本和1个rc版本,只到5.0正式版才出现对BPMN 2.0规范的支持。
5.1Activiti的出现
Activiti的创始人Tom Baeyens是jbpm的创始人,由于与合作伙伴在jBPM的未来架构上产生意见分歧,Tom Baeyens在2010年离开了JBoss并加入了Alfresco公司。Tom Baeyens的离开是的jBPM5完全放弃了jBPM4的架构,基于Drools Flow重新开发。而在2010年的5月,Tom Baeyens发布了第一个Activiti版本(5.0alpha1),有次看来,Activiti更像是jBPM4的延续,也许是为了让器看起来更像jBPM4的延续,Activiti团队直接将Activiti的第一个版本定义为5.0。
5.2 为什么选择Activiti
Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度。Activiti 作为一个遵从 Apache 许可的工作流和业务流程管理开源平台,其核心是基于Java的超快速、超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员。Activiti 流程引擎重点关注在系统开发的易用性和轻量性上。每一项 BPM 业务功能 Activiti 流程引擎都以服务的形式提供给开发人员。通过使用这些服务,开发人员能够构建出功能丰富、轻便且高效的 BPM 应用程序。Activiti是一个针对企业用户、开发人员、系统管理员的轻量级工作流业务管理平台,其核心是使用Java开发的快速、稳定的BPMN e 2.0流程引擎。Activiti是在ApacheV2许可下发布的,可以运行在任何类型的Java程序中,例如服务器、集群、云服务等。Activiti可以完美地与Spring集成。同时,基于简约思想的设计使Activiti非常轻量级。
6 搭建Action开发环境
6.1 Eclipse Designer
参照找官方提供的安转文档安装即可。https://www.activiti.org/userguide/#eclipseDesignerInstallation。
The following installation instructions are verified on Eclipse Kepler and Indigo. Note that Eclipse Helios is NOT supported.
Go to Help → Install New Software. In the following panel, click on Add button and fill in the following fields:
- *Name:*Activiti BPMN 2.0 designer
- *Location:*http://activiti.org/designer/update/
Make sure the “Contact all updates sites…” checkbox is checked, because all the necessary plugins will then be downloaded by Eclipse.