项目要用到工作流引擎,而且是整个系统的核心部件。所以,又要对工作流的部分进行研究了,为什么要说又呢?呵呵,本科时候的毕业设计就做的工作流的啊,但是说实话那时候并没有太多的理解,虽然题目定在了工作流,但是我实际做的东西还是分布式对象运行管理的。
算了,不说旧话了,反正现在的新项目上工作流系统也是很正常的,时下对工作流的研究还是非常热门的。现在又有了这么多的新技术什么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引擎研究的第一篇,我还会随着项目进展再写写自己的学习体会。
分享到:
相关推荐
activeBpel是一款开源的工作流引擎,它基于BPEL(Business Process Execution Language)标准,用于构建和执行业务流程。BPEL是一种XML语言,专为描述企业服务之间的交互和组合而设计,使得开发者能够创建复杂的业务...
**ActiveBPEL引擎**是一款基于BPEL(Business Process Execution Language)规范的开源业务流程引擎,用于执行复杂的业务流程。其安装与配置涉及到几个关键步骤: ##### (一)依赖关系 ActiveBPEL引擎的正常运行...
综上所述,activeBPEL是实现BPEL工作流的一个强大工具,它简化了在Java/J2EE环境中构建和部署业务流程的过程。通过理解和掌握BPEL,开发者可以更好地设计和管理服务间的交互,提高系统灵活性和可扩展性。
ActiveBPEL引擎要求安装和正确的配置servlet容器。ActiveBPEL引擎的安装脚本是用作环境变量,也就是Tomcat的最上层目录。ActiveBPEL引擎应该运行在任何标准的servlet容器下。
ActiveBPEL引擎要求安装和正确的配置servlet容器。ActiveBPEL引擎的安装脚本是用作环境变量,也就是Tomcat的最上层目录。ActiveBPEL引擎应该运行在任何标准的servlet容器下。
ActiveBPEL,全称为Active Business Process Execution Language,是一种基于Web服务的工作流引擎,用于执行业务流程执行语言(Business Process Execution Language, BPEL)规范。BPEL是用于描述企业服务集成和服务...
ActiveBpel是Apache基金会的一个项目,提供了一个开源的BPEL引擎,允许开发者在Java平台上实现BPEL流程。本文将深入探讨如何在ActiveBpel环境中进行客户端配置并运行实例。 一、ActiveBpel简介 ActiveBpel引擎实现...
ActiveBPEL 是一款专注于执行BPEL4WS (Business Process Execution Language for Web Services) 的工作流引擎。ActiveBPEL 的优势在于其对BPEL标准的支持,使得它可以处理复杂的Web服务交互。 ### 20. YAWL YAWL ...
Oracle BPEL是一款强大的企业级BPEL引擎,而ActiveBPEL则是一个开源的BPEL引擎,它提供了对BPEL规范的实现,同时也为研究BPEL引擎的内部工作原理提供了便利。 ActiveBPEL的优势在于它的开放源码特性,这让开发者有...
办公自动化(OA)系统主要技术之一就是工作流,jBPM作为开源工作流引擎,是实现OA系统中工作流管理的重要组件。 总结起来,"itcast jbpm4.4工作流详细教程文档"主要涵盖了工作流的基础知识,jBPM4.4的介绍,以及...
jbpm作为一款流行的工作流引擎,利用Active Diagram模型构建,与Hibernate集成,因此能很好地支持多种主流数据库。jbPM Console是其提供的Web管理控制台,用于管理和监控流程实例,包括部署流程定义、执行流程和检查...
jBPM与其他工作流框架如OSWorkflow、ActiveBPEL、YAWL等相比,以其开源、灵活和强大的Java支持而受到开发者青睐。在企业级应用中,jBPM常被用于OA(办公自动化)、CRM(客户关系管理)、ERP(企业资源规划)等系统中...
其中,**Jbpm** 是一款非常流行的开源工作流引擎,特别适合于Java环境下的业务流程管理。 #### 三、Jbpm 4.4 简介 **Jbpm** 即 Java Business Process Management,是一款基于Java的业务流程管理系统。Jbpm 4.4 的...
针对当前主流的分布式计算平台的特点及其在工作流技术中的应用的不足,提出了一种基于Web Services的工作流管理系统架构,并采用ActiveBPEL引擎建立了一个基于Web Services的工作流管理系统平台,最后运行应用实例以...
此外,提到了"结合ActiveBPEL引擎",这表明Astro支持Business Process Execution Language (BPEL),这是一种标准的XML格式,用于描述和执行服务之间的协作工作流。 ActiveBPEL引擎是Astro中的关键组件,它允许用户...
在本指南中,我们将详细介绍如何搭建一个基于ActiveBPEL、Apache ODE、Apache Tomcat和JDK 1.5的BPEL运行环境。 **一、Apache ODE简介** Apache ODE(Orchestration Director Engine)是开源社区的一个BPEL引擎,...
它是市面上相当流行的一款开源工作流引擎,底层基于 Active Diagram 模型。 **2. jBPM4.4特性** - jBPM4.4 使用了 Hibernate (3.3.1 版本),因此可以很好地支持主流数据库。 - jBPM4.4 共有 18 张表,这些表用于...