前面简单介绍了一下BPEL的基本特性,年底了终于有些时间可以积淀一下了,针对前段时间对BPEL的研究,现在主要交流一下目前的主流和开源的BPEL引擎。时至今日,几乎没有一个大的软件厂商不力顶SOA的,而Oracle也是其中一家,在SOA方面的投了大量的资金。
1、Oracle BPEL工具套件是一套比较好的BPEL工具,包括引擎和定制工具以及管理控制台:
Oracle BPEL Process Manager 通过将一系列同步和异步的服务组合到一个端到端 BPEL 流程流中,简化了基于面向服务的体系结构 (SOA) 开发应用程序的流程。Oracle BPEL Process Manager 为设计、部署和管理 BPEL 业务流程提供了一个开发人员易于使用的可靠的解决方案。 Oracle BPEL Process Manager 包括三个主要组件: JDeveloper BPEL Designer: JDeveloper BPEL Designer 扩展了 Oracle JDeveloper 10g 的功能,并支持使用 BPEL 进行业务流程的建模、编辑和设计。它提供了一个图形化和用户友好的方式构建 BPEL 流程。JDeveloper 使用 BPEL 作为其原生格式,因此构建的流程是可移植的。 Oracle BPEL Process Manager Server: Oracle BPEL Process Manager 提供了 BPEL 服务器的一个可伸缩的强健实现。Oracle BPEL Process Manager 执行标准的 BPEL 流程并提供“脱水”功能,因此长期运行流的状态在数据库中能够得以自动维护,从而实现了用于故障切换和可伸缩性的集群。BPEL Server 利用的是基础 J2EE 应用服务器。 Oracle BPEL Console: Oracle BPEL Console 为管理和调试部署到 BPEL 服务器上的流程提供了一个基于 Web 的成熟界面。审计跟踪和流程历史/报告信息可通过 BPEL Console 和 Java API 自动维护和提供。 2、 IBM的WBI Server Foundation WBI Server Foundation由运行环境和开发环境组成,它的开发环境是WSAD-IE,在WSAD-IE中完成流程开发后,将流程的EAR应用部署到运行环境中。WBI Server Foundation 的运行环境提供一个高效的J2EE工作流引擎,它由流程导航(Navigator)、人员交互相关的工作项管理(WorkItem Management)、工厂(Factory)、内部和外部接口、客户端(Client)等部分组成。如下图:
导航器:导航器组件是流程引擎的核心,它管理所有流程实例的状态过渡以及这些流程实例中所有活动的状态过渡。
工作项管理:Work Item Manager 组件负责在流程引擎的数据库中创建和删除工作项,根据该数据库分析来自流程参与者的工作项查询等。
工厂:工厂组件负责管理流程引擎处理的"物理"状态信息,流程相关的数据能够以下列形式之一被存储:
瞬时存储在内存中,不可中断的流程要获得高效率的执行需要这种形式 持久存储在数据库中,可中断的流程要获得持久性需要这种形式它支持的数据库包括 DB2、Oracle、Sybase 和 Cloudscape。
外部接口:流程引擎对外提供EJB和JMS两种接口,由Fa?ade-Session EJB 和 Fa?ade MDB 负责外部接口的同步生成和异步生成。
客户端:Server Foundation提供了Web客户端支持,同时用户可以利用其API接口开发自己的客户端。
其他组件:流程引擎包含一个负责产生诊断信息的跟踪和记录组件。
3、BEA Integration
4、开源的主要有
ActiveBPEL引擎的最新版本3.0,完全支持WS-BPEL2.0规范。其包含引擎和定制工具以及控制台。引擎是开源,但是定制工具并非开源。经过对比,此引擎也是目前开源BPEL引擎中不错的一个。
JbossBPEL 是jBPM的一个子部分,JBoss要进军SOA,故JbossESB和JbossBPEL为其不可或缺的一部分。JbossBPEL 基于开源的工作流jBPM开发的,把传统的工作流元素作了一个mapping
还有bexee、fivesight-pxe、twister等等,没有过多的接触所以不是很了解。
累了,今天就写到这。
对了简单的对比一下: