`
kungstriving
  • 浏览: 131344 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

扩展Apache ODE --服务的动态选择

    博客分类:
  • BPEL
阅读更多

一般情况下流程运行中所涉及到的Web服务实例都是固定的,其调用的端点地址是在流程设计时期就指定了的,在运行期间引擎将会向指定的Web服务发送调用信息,并获得运行结果。这种设计虽然执行起来简单,但是其缺点也有很多,首先,流程运行的容错性不高。如果某个流程是一个长期运行实例(其一次运行可能持续几天,甚至几个月),那么在流程设计初期为其指定的服务可能会因为各种原因停止服务,那么引擎对于该实例的合作伙伴的调用将会出错,从而使得实例运行失败;其次,这种设计限制了整个系统运行的性能发挥。很多情况下,某个特定领域中的某个计算程序会在一个流程实例中多次被调用,而同时也会有多个组织或个体拥有该计算程序,如果在设计过程中就将某个常用计算程序指定到某个固定服务器上,那么随着该服务的不断被调用,其服务性能将会迅速下降,从而影响流程运行效率。

因此本系统采用向流程部署文件集(所有流程部署所需信息的集合)中添加动态信息描述文件dynamic.properties的方式,在不影响BPEL标准的前提下,为系统增加服务动态选择功能。该特性可以让流程在运行时对服务的绑定进行重新选择,其选择的依据就是目前该服务的多个实例所部署的服务器当前性能指标,同时可以根据用户所定义的选择策略进行服务筛选,以获得较好的执行效率。



 上图是本系统的动态服务选择框架图,加入该特性后引擎在调用每个服务时候首先检查该服务是否在动态配置文件中存在,该配置文件指定了当前流程中哪个服务的调用是采用动态机制调度的,通过服务名称来表明,同时给出了该服务应该采取的选择策略。如果当前服务不需要进行动态选择,则使用该服务的原始地址进行常规调用;如果需要动态选择,则引擎首先会向动态选择服务发送请求,获得在当前服务名称和选择策略下所对应的最佳服务地址。然后再使用该调用地址替换原来的地址进行调用。在这里,需要注意的是在拿到需要进行动态调用的服务信息之后,要想取得该服务所对应的最佳服务地址,必须有服务注册中心的支持和选择算法的应用。本系统所采用的服务注册中心采用UDDI技术实现,具体工作由本项目组其他成员负责完成,在这里不做讨论。

本系统中服务动态选择实现的特点是,并没有扩充BPEL标准,也就是说在加入该功能后BPEL定义文件不需要做任何修改,仍然是符合标准规范的,而只是在部署流程的时候添加相应的动态信息描述文件即可。与服务注册中心的结合可以通过配置文件实现,当然其中的选择策略也可以由用户自己定义。通过向系统添加该功能特性,对系统运行流程性能有一个较大的提高,但同时付出的代价是服务注册中心部分需要负责收集各个服务性能指标,对其造成了一定的负担。

  • 大小: 39.1 KB
分享到:
评论
3 楼 comsci 2010-03-11  
呵呵,感觉到你们这个项目多半是针对大型应用平台的,都需要采集服务性能,要求肯定比较高。。。。。一般来讲是流程比较复杂和数量比较大的情况
2 楼 kungstriving 2010-03-11  
comsci 写道
实际上就是通过一个消息服务器来动态选择流程配置文件,是吗?

恩,差不多,呵呵,只是一个很小的改动
但这个改动需要有服务性能收集装置来作支撑,也就是通过某种工具能监控到所有提供服务的节点当前状态
1 楼 comsci 2010-03-11  
实际上就是通过一个消息服务器来动态选择流程配置文件,是吗?

相关推荐

    Apache ODE - 1.架构介绍

    Apache ODE 通过其模块化的架构设计,成功实现了轻量级、可扩展且可靠的业务流程管理。从 BPEL 编译器到 BPEL 引擎运行时,再到 DAOs 和集成层,每个模块都紧密配合,共同支撑着 ODE 的核心功能。这种设计不仅满足了...

    Apache ODE开发指南

    Apache ODE 是一个基于 Web 服务的业务流程执行引擎,旨在提供一个灵活、可扩展、可靠的流程执行环境。ODE 的关键组成部分包括 ODE BPEL 编译器、ODE BPEL 引擎 Runtime、ODE 数据访问对象(DAOs)、ODE 整合层...

    Apache ode介绍

    Apache ODE 作为一款成熟的 BPEL 引擎,为企业提供了执行这些流程的能力,使得企业能够在不同的系统和服务之间实现高效的协调。 #### 三、Apache ODE 的功能和特点 - **支持 BPEL 版本**:Apache ODE 当前版本支持...

    顶楼:Apache ODE的镜像

    6. **扩展性**:通过插件机制,用户可以自定义行为,如添加新的活动或扩展服务交互。 在“attic-ode-master”这个文件中,"attic"通常表示这是一个废弃或者历史版本的代码库,而"master"通常代表项目的主分支。这...

    ode-image

    "ode-image"是一个基于Shell脚本的项目,主要用于处理图像操作。在IT行业中,Shell脚本是一种常用的自动化工具,尤其在Linux或Unix系统中,它允许用户通过编写一系列命令来执行复杂的任务。在这个"ode-image"项目中...

    bpel engine

    在给定的压缩包"apache-ode-war-1.3.5.zip"中,包含的是Apache ODE的WAR(Web Application Archive)文件,名为"ode.war"。 WAR文件是一种打包格式,用于Java Web应用程序的部署。在Tomcat这样的Servlet容器中,WAR...

    BPEL整合WEBService服务的一个完整案例

    这不仅展示了BPEL在整合服务方面的强大能力,也突显了其在构建灵活、可扩展的企业级应用中的重要性。 #### 技术栈与工具 - **开发工具**:Eclipse 3.5.1 - **技术框架**:Eclipse-BPEL 和 Apache ODE - **服务器**...

    bpel入门实例(组合加减法运算)

    在Apache ODE环境中,首先需要配置ODE服务器,包括设置数据源、部署服务等。接着,将BPEL流程文件(通常扩展名为`.bpel`)部署到ODE服务器上。部署成功后,流程便可以在服务器上执行。 3. **Apache CXF Web服务...

    eclipse bpel

    Apache ODE(OpenESB Dieployment Engine)是一个开源BPEL服务器,它实现了WS-BPEL 2.0规范,可以在多种Java应用服务器上运行,如Tomcat。 2. **Eclipse中加载BPEL Designer插件** - BPEL Designer是Eclipse的扩展...

    面向服务软件开发 实验报告

    在实验环境中,我们首先需要安装Apache ODE,这是通过下载和部署ode.war文件到Tomcat服务器实现的。在Eclipse中,我们需要配置一个新的ODE Server,并安装BPEL Designer插件,以便在IDE中创建和编辑BPEL流程。 实验...

    几种开源工作流引擎的简单比较

    Apache ODE是一个基于WS-BPEL 2.0标准的开源工作流引擎,它支持BPEL、Xforms、WebService等外部接口标准。Apache ODE的文档较为齐全,代码量为548K。Apache ODE的缺点是不支持工作流实例的持久化,缺少图形编辑环境...

    VxBPEL_ODE:增强可变性的服务组合引擎

    1. VxBPEL引擎的扩展方法,即如何在Apache ODE的基础上实施VxBPEL扩展,并开发出支持可变性服务组合的VxBPEL_ODE引擎。 2. 使用VxBPEL_ODE引擎执行服务组合时的核心问题,例如如何处理服务组合的运行时变异、如何...

    介绍SOA ESB Mule的企业服务总线PPT

    - **BPEL实现**:Apache ODE是基于Java的开源BPEL引擎,能够执行BPEL描述的业务流程,实现业务流程自动化。它支持长期运行和短期运行的过程,采用Apache 2.0许可证。 #### 四、总结 Mule作为一个强大的ESB平台,为...

    BPEL调用WebService的示例

    Apache ODE提供了一种方便的方式来管理和执行BPEL流程,以及与其他Web服务的交互。 **调用Web服务的步骤** 1. **创建BPEL项目**:在Eclipse中,通过新建一个BPEL项目(如"InvokeWebServiceProj")开始。这将创建一...

    ofbiz 4.0开发文档

    这些服务组件通过接口进行通信,允许系统模块化,便于维护和扩展。在OFBiz 4.0中,开发者需要理解服务引擎和服务组件的概念,如何定义和调用服务,以及如何处理服务之间的依赖关系。 文档会详细解释OFBiz的数据模型...

    BPEL概览

    许多工具和平台支持BPEL的开发和执行,如Oracle BPEL Process Manager、IBM WebSphere Process Server、Apache ODE等,它们提供了图形化界面,方便开发者创建、测试和部署BPEL流程。 **7. 应用场景** BPEL广泛应用...

    demo-properties-java:不带弹簧的Modelo decriaçãode parame(java)

    通过传递不同的语言代码,程序可以动态选择合适的语言版本。 4. **属性文件的其他使用场景** - 日志配置:如设置日志级别、输出路径等。 - 邮件服务器配置:如SMTP服务器地址、端口、用户名、密码等。 - 系统...

    Eclipse BPEL异步调用

    将BPEL项目部署到支持BPEL的服务器(如Apache ODE或Oracle SOA Suite),并确保配置正确。可以使用Eclipse的内置调试器或提供服务的测试工具进行测试。 在提供的资源中,"Bpel异步调用服务.docx"可能包含了详细...

    关于bpel链接小service的实例

    具体实施时,我们通常使用BPEL工具,如Oracle BPEL Process Manager、Apache ODE(OpenESB的一部分)或IBM WebSphere Process Server等。这些工具提供了图形化的界面,帮助开发者设计流程图,并自动生成相应的BPEL...

    基于C++的BPEL流程引擎原型的设计与实现.docx

    本文作者在深入研究了Apache ODE(一个流行的BPEL流程引擎)的基础上,对其实现机制进行了细致的分析,特别是关于如何处理并发活动以及调度控制的问题。 #### 2. 技术选型 - **C++语言选择**:鉴于C++在性能方面的...

Global site tag (gtag.js) - Google Analytics