设为首页 收藏本站
查看: 837|回复: 0

[经验分享] 扩展Apache ODE --服务的动态选择

[复制链接]

尚未签到

发表于 2017-1-8 06:05:32 | 显示全部楼层 |阅读模式
一般情况下流程运行中所涉及到的Web服务实例都是固定的,其调用的端点地址是在流程设计时期就指定了的,在运行期间引擎将会向指定的Web服务发送调用信息,并获得运行结果。这种设计虽然执行起来简单,但是其缺点也有很多,首先,流程运行的容错性不高。如果某个流程是一个长期运行实例(其一次运行可能持续几天,甚至几个月),那么在流程设计初期为其指定的服务可能会因为各种原因停止服务,那么引擎对于该实例的合作伙伴的调用将会出错,从而使得实例运行失败;其次,这种设计限制了整个系统运行的性能发挥。很多情况下,某个特定领域中的某个计算程序会在一个流程实例中多次被调用,而同时也会有多个组织或个体拥有该计算程序,如果在设计过程中就将某个常用计算程序指定到某个固定服务器上,那么随着该服务的不断被调用,其服务性能将会迅速下降,从而影响流程运行效率。
因此本系统采用向流程部署文件集(所有流程部署所需信息的集合)中添加动态信息描述文件dynamic.properties的方式,在不影响BPEL标准的前提下,为系统增加服务动态选择功能。该特性可以让流程在运行时对服务的绑定进行重新选择,其选择的依据就是目前该服务的多个实例所部署的服务器当前性能指标,同时可以根据用户所定义的选择策略进行服务筛选,以获得较好的执行效率。

DSC0000.jpg
 上图是本系统的动态服务选择框架图,加入该特性后引擎在调用每个服务时候首先检查该服务是否在动态配置文件中存在,该配置文件指定了当前流程中哪个服务的调用是采用动态机制调度的,通过服务名称来表明,同时给出了该服务应该采取的选择策略。如果当前服务不需要进行动态选择,则使用该服务的原始地址进行常规调用;如果需要动态选择,则引擎首先会向动态选择服务发送请求,获得在当前服务名称和选择策略下所对应的最佳服务地址。然后再使用该调用地址替换原来的地址进行调用。在这里,需要注意的是在拿到需要进行动态调用的服务信息之后,要想取得该服务所对应的最佳服务地址,必须有服务注册中心的支持和选择算法的应用。本系统所采用的服务注册中心采用UDDI技术实现,具体工作由本项目组其他成员负责完成,在这里不做讨论。
本系统中服务动态选择实现的特点是,并没有扩充BPEL标准,也就是说在加入该功能后BPEL定义文件不需要做任何修改,仍然是符合标准规范的,而只是在部署流程的时候添加相应的动态信息描述文件即可。与服务注册中心的结合可以通过配置文件实现,当然其中的选择策略也可以由用户自己定义。通过向系统添加该功能特性,对系统运行流程性能有一个较大的提高,但同时付出的代价是服务注册中心部分需要负责收集各个服务性能指标,对其造成了一定的负担。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-325210-1-1.html 上篇帖子: Apache ODE 流程运行过程解析 下篇帖子: 复杂业务流程监控(基于Apache ODE)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表