ActiveBPEL引擎研究一(工作流介绍)

    项目要用到工作流引擎,而且是整个系统的核心部件。所以,又要对工作流的部分进行研究了,为什么要说又呢?呵呵,本科时候的毕业设计就做的工作流的啊,但是说实话那时候并没有太多的理解,虽然题目定在了工作流,但是我实际做的东西还是分布式对象运行管理的。

    算了,不说旧话了,反正现在的新项目上工作流系统也是很正常的,时下对工作流的研究还是非常热门的。现在又有了这么多的新技术什么SOA啊,WebService,UDDI啊这些的。其实,认真想想工作流这个概念,还是对于产业界非常有用的(如果实施的好的话,SAP应该也包含类似的东西吧,但是好像很多企业实施之后,头比身子大啊,哈),它是起源于办公自动化(OA)的,后来逐步发展到工业界。从工作流的名字可以看出,其实就是工作流程,在没有计算机系统之前,工作的流转都是靠人来完成,比如你审批一个文件,都是你拿着文件跑上跑下的,盖章,签字的。工作流的理念就是将我们日常生活中的工作流程搬到计算机上,搬到网络上,让我们绝大部分的机械工作都让电脑来完成。想想也是很美的,现在要审批一个文件,你只需要坐在电脑旁,打开公司的工作流系统,点击某个按钮来启动审批这个文件的流程。当然,你要有这个文件的电子版,也把它交给工作流系统,这样,你的文件就随着工作流系统的控制,从一级领导-二级领导等等一路走了下来。当然,这些领导们也是这个系统的用户,他们进入这个系统就看到了自己需要审批你的文件了,就这样,通过类似的方式工作流系统就是这样工作的。

    对于上面的这个场景我想大部分人还是很有疑问的,比如

1)流程从哪来的?

   流程设计器的工作。流程设计器也是工作流系统不可缺少的一部分,通过它,熟悉本公司业务流程的员工可以设计出各种日常事务,或是生产过程的流程。它一般是可视化的图形界面,有很多的框框、线条之类的,通过拖拽来构建一个流程(——!当然了,比在word里面画图要难的多,因为还需要设置很多参数,或是指定活动等。这些参数就在日后流程运行时,控制了流程的流向啊)。把流程创建好之后,一般会生成一个基于XML的文本文件,这个文件其实就是你刚才设计的流程。然后,你把文件交给流程引擎,设计器的工作就算完成了。嗯??引擎是什么

2)引擎是什么?

   你光有了上面的流程文件也没啥用啊,这时就需要一个东西来处理这个文件了,它读取这个文件的内容,根据文件设定的流程走向来控制这个流程。比如,文件审批的流程启动之后,引擎发现首先要项目经理通过,所以它就给项目经理这个用户发送一个消息,说XXX要审批X文件,然后,项目经理进入系统,pass这个文件,这时候引擎知道了项目经理已经通过了这个文件,根据流程定义文件,下一个应该是处长了,所以它又要通知处长了。。。类似的。引擎就好像流程的指南针一样,指导着流程走向不同的地方。它是整个系统的核心。

 

上面的叙述可能也不是很清楚,但是大家肯定能有一个大体的认识了。工作流确实有很多的优势的,而且现在有很多的开源的工作流系统可以使用,下面就是java开源工作流列表,

http://www.open-open.com/08.htm

 

而对于我们这个项目,强调的是跨域资源共享、分布式协同执行,从这两点出发以往的工作流系统就无法满足项目需求了(一般的工作流系统都不是分布式的,更不要说跨域的资源共享了)。所以项目组决定采用BPEL(Business Process Execution Language)语言来定义流程,它最大的特点是可以与WebService绑定,而WebService对于异构系统可以进行封装,从而可以解决资源共享的问题。那么,就需要有一个支持BPEL语言的引擎,现在BPEL的流程引擎还不是很多,开源做的比较好的有ActiveBPEL、JBoss-jBPM-BPEL、Apache-ODE、bexee。开源的设计器就更少了Eclipse-BPEL是目前比较成熟的一种。而ActiveBpel的设计器也已经成为商业版,JBoss-jBPM确实是一个很棒的开源工作流引擎,而且有很棒的设计器,但是它并不是支持标准bpel语言的。所以也不在考虑范围之内了。

 

下面介绍下ActiveBpel:

ActiveBPEL 是BPEL引擎的代表,也是一款可执行BPEL4WS规范的开源流程引擎,其结构和实现方式具有很高的参考价值。目前国内很多正在开发基于BPEL产品的中小型软件厂商,其实现的很多基础性内容和思想都参考自ActiveBPEL。受目前国内中小型客户对流程需求的限制,基于BPEL的开源引擎或小型产品被市场接受度还很低。但BPEL所围绕的业务流程及流程整合应用是一个发展趋势。【摘自Huihoo Wiki】

ActiveBpel支持标准bpel语言,而且开源,有很大的研究价值。对于工作流工作原理、技术方法的研究都有很大帮助,但是不好的是,它没有自己的设计器,它的公司已经将其设计器ActiveVOS商业化。

 

ActiveBpel的安装配置,网上有很多文章,我这里只是简单说一下。

下载它的二进制包或者all包之后,解压根据readme的提示就可用顺利安装,需要注意的是ActiveBpel最新版5.0还是基于JDK5开发的,Tomcat的版本也支持5.X系列的。然后就是需要配置一些环境变量。启动tomcat,随着ActiveBpel也就启动了。如果需要其他帮助,可以查看{ActiveBpel.root}/doc文件夹下 的文档,包括了console的使用,部署流程,持久化等,写的非常详细,照做就是。

 

我们项目组需要做的就是了解其工作机理,然后修改,使其具有分布式特性,而且可以支持流程的分拆(我会在其他文章中详细介绍什么是流程分拆)。

 

这是ActiveBpel引擎研究的第一篇,我还会随着项目进展再写写自己的学习体会。

你可能感兴趣的:(tomcat,工作,webservice,jbpm,项目管理)