基于代理机制的自适应服务组合演化
2016-04-14罗利民
罗利民
摘要:在很多大型系统的,面临的一个关键就是异常的发生。在任何数据中心,异常都在不断的发生,或由磁盘故障、内存、网络连接,或软件错误引起的。较小的异常连锁反应可能造成大规模的异常。而异常的不可预测性使他们变得具有挑战而且难以应付。预测异常更好的选择是创建一个可以自主适应异常的系统。本文为自适应系统的服务组合探讨了一个分散的自适应方法。本文的做法是基于代理协调机制,而这适合于大规模的协调系统。我们通过详细的实验的复合服务评估这种方法。实验的结果表明,当面临大规模的异常时,它可以创建服务组合以应对这种异常。
关键词:异常;服务组合;自适应;代理机制
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)05-0202-03
ABSTRACT: In many large-scale systems, one of the key is the occurrence of anomalies. In any data center, anomalies are constantly occurring, or caused by disk failures, memory, network connections, or software errors. Smaller abnormal chain reactions may cause large scale anomalies. And the unpredictable nature of the anomalies makes them challenging and difficult to cope with. The better option to predict exceptions is to create a system that can adapt itself to the exception. In this paper, a decentralized adaptive method is discussed for the service composition of the adaptive system. The approach is based on the agent coordination mechanism, which is suitable for large-scale coordination systems. We evaluate this method through detailed experiments on a composite service. The results of the experiments show that when confronted with large scale anomalies, it can create a service composition in order to cope with this anomaly.
Key words: exception; service composition; adaptive; agent mechanism
1 概述
服务计算有利于大规模应用程序的创建。服务是比较小的和易于管理的软件单元,具有明确定义的接口。这里的目的是建立一个高弹性的动态服务组合系统。传统上,一个有弹性的系统能够处理异常,我们的目标是设想一个系统,把异常看作是“正常的”,它自适应地塑造自己。这样的系统(涉及成千上万的节点和服务)的大或潜在的巨大规模,使一个中心的选择和组成部门不可行。在我们的研究中,探讨分散自适应和自组织的动态服务组合方法。我们研究代表,一个协调机制[1],原本有针对性的大规模协调和控制应用,如交通和物流管理,实体需要协调的资源。这种协调和控制系统本质上是动态的。从概念上讲,协调机制也特别适合于大规模的服务组合。
2 问题定义
我们感兴趣的是在一个系统由多个服务和服务管理人员通过网络相互作用构成的。服务和服务管理软件实体居在相同的计算节点,但具有不同的功能。例如,一个操作可以执行一个图像转换,或者执行一个算法。另一方面的服务管理人员负责维护有关可用性的信息,以及它们与之相关联的服务的质量。
复合服务是一种特殊的服务范畴,主要是通过对其他服务的操作进行组合[2]。每一个活动都描述一个特定的操作,必须由一个单独的组件服务来实现。一个服务组合形式的活动图,其中每个节点代表一个活动,边表示活动之间的数据流。此后,这个图意味着每一个活动按照特定的顺序执行,描述串行或并行执行,这必须得符合复合服务的正常运作。如图1所示,一个组合服务的活动只能由与该活动兼容的服务来委派,一个复合服务被描述为一个活动/任务的图表,其中一个活动必须由一个服务来满足。
当一个节点发生故障时,该节点的服务和服务管理器都会异常。如果无法找到所有需要的组件服务,在给定的超时时间内,复合服务[3]只会异常。从系统的角度来看,我们根据它们的规模,由异常的服务的数量定义来区分2种类型的故障情况:
·很少有服务。不到20%的系统服务被丢弃。
·一些无法访问的服务。超过80%的系统服务被丢弃。
3 使用委托代理协调组合服务
任务代理是负责寻找最佳的组件服务,以满足所描述的活动所描述的复合服务,在一个给定的时间。他们也负责跟踪执行的组成和尊重所需的质量的复合服务。他们基本上是按照BDI代理[5]体系结构。BDI代理不断监测环境,创造他们的(信任),考虑可能的选择是如何进行的(请求),并选择一个特定的选择作为他们的意图。然后,他们制定行动计划,以满足他们的意图。这样,BDI代理旨在应付突然变化的环境或者异常,以计算有效的方法。
每个任务代理代表一个组合服务实例,并有以下主要责任:
·接收组合服务描述作为输入;
·获得一个服务级别协议,该协议为其组合服务指定所需的质量;
·选择可能的组件服务为其服务组合实例提供操作,创建执行计划;
·从选定的组件服务中通知资源代理,它打算使用它们的服务
·保持对可能的替代组件服务的网络进行检查,同时它的服务组合正在执行;
·评估如果有更好的组件服务使用该组合物中,决定使不使用,这是由任务代理策略确定的;
·在完成服务组合实例之后,对所从事组件服务的质量进行信息传递。
一个自然的探索策略,将溢出每个可能的资源代理的服务质量和信息素,然而,这将会花费巨大和耗时很多,特别是在大型系统中。探索蚁群[4]利用优化的方法,探索可能的资源代理,探索蚁群试图找到一个路径,包含资源代理通过其任务代理的来源能够执行所需的操作,索蚁群在使用某个特定资源代理之前,将所有的服务质量参数考虑在内。
其中,[τ]是信息素的平均,[α]表示信息素信息对探索蚁群的价值是多少,[η]是QoS的一个试探值,[β]表示质量信息对探索蚁群的价值。
探索蚁群选择一条路径,按照方程中定义的概率1。因此,对于探索行为的可能性总是很高,除非将参数化为高。如果一组被设置为高,探索蚁群将只遵循最高的信息素浓度的路径。一个探索蚁群返回它的发现,它的起源任务代理,当他们到达他们的时间,或他们已经找到了一个有效的路径,即,他们已经找到足够的资源代理,以满足他们的起始任务代理的需求。一个探索蚁群的行为的简化视图中示出的算法1。
4 结束语
本文提出了一个分散的机制以应对在组合服务中的故障。面对大规模系统故障时,比较本文提出的方法,在服务组合的质量方面是一个纯粹的反应性的方法,我们发现,此机制善于对更稳定的服务进行改进,需要在我们的方法中修改某些参数,例如,探索行为和启发式的参数,必须在使用前调整算法。我们相信创造一个能帮助优化算法的自适应层是更好的。
在今后的工作中,为了保持高质量的服务组合执行的预测以及降低组合时间,我们计划研究如何适应多Agent系统。
参考文献:
[1] 袁小娟, 高春鸣. Web服务组合执行引擎中服务代理运行机制研究[J]. 计算机工程与应用, 2007, 43(28):103-106.
[2] 赵颖. 服务组合的自动恢复及补偿的研究与实现[D]. 中山大学, 2008.
[3] 夏永霖. 复合服务自恢复关键技术研究. Diss. 中国科学技术大学, 2010.
[4] 王颖, 谢剑英. 一种自适应蚁群算法及其仿真研究[J]. 系统仿真学报, 2002, 14(1):31-33.
[5] 陈为雄. 基于Petri Nets的BDI Agent模型[J]. 计算机工程, 2005, 31(3):23-25.