论文部分内容阅读
随着分布式软件系统的规模越来越大,功能越来越复杂,传统的动态调控已经不能满足现代分布式软件系统的需求。传统动态调控主要针对传统集中式软件或小型分布式软件,其调控手段简单,主要依赖人工调控,动态调控的成效往往与管理者水平高低有很大的关系,动态调控过程中容易因人为疏忽和失误导致整个调控的失败。针对传统调控方法的不足,本文提出了策略驱动的动态调控方法。动态调控过程是一个可能引发系统不一致的过程,需要保持调控的正确性。动态调控的正确性内涵包括结构完整性、效果达成性、交互一致性和性能合理性。在保证调控正确性的基础上,给出了策略表示和策略处理方法。策略驱动是指以策略替代人工来触发动态调控,提出了三种类型的策略,动作策略、目标策略和效用策略。系统依据对环境变化或异常的分析诊断结果选择正确的策略来指导调控,如何选择合适策略的过程叫做决策。决策是动作、目标和效用三种策略互相转换的过程。本文提出了目标求精即由效用到目标再到动作的分解过程,同时给出了基于规则的目标求精算法。求精的结果是基本动作序列,基本动作序列可以直接指导系统进行动态调控。本文设计了策略驱动的动态调控模型以及策略处理引擎智囊的策略库。提出了基于静止等待和动态阻塞的动态调控方法以满足交互一致性,基于这两种调控方法设计了六种基本动作,并给出了相应算法,即构件添加、构件删除、构件替换和构件迁移以及连接建立和连接删除的算法,算法满足动态调控中的正确性要求。开发了基于J2EE的动态调控平台。在动态调控平台的设计中引入DI容器和AOP框架技术,实现了各类调控机制的细节以及阐述了在平台中的体现过程。