论文部分内容阅读
随着网络技术的持续发展,以及面向服务的计算、普适计算等新计算范型的不断涌现,Internet正在由最初的内容服务的提供者开始逐渐发展成为以提供计算能力为核心的高层次应用服务提供者,软件开发人员可以更多的通过复用Internet上的构件的来构建他们的软件系统。而在Internet的环境下,对构件的选择、运行环境支撑、基于构件的软件开发方法等方面,具有明显区别于传统方法的特征。这组特征对软件在运行时刻观察环境、适应环境的能力提出了更高的要求。然而,现有的自适应软件构造方法并不能很好地满足这种构造需要,其主要问题包括网络环境的不稳定性、开放性和动态性对白适应机制提出的新的技术挑战等,这促使研究人员对在动态、开放、无控制中心的环境下构造自适应系统进行更深入的研究。
针对新计算环境的特点,一种应对上述技术挑战的可行途径是不再将运行系统的构成单元视为被动的受管对象,而是将其建模为具有主动能力的计算实体,这些实体能够通过观察运行时刻信息,主动地对自身实现进行调整,或是改变与其它实体的交互;继而,系统通过这些构成单元局部间的相互作用表现出整体性的自适应行为。沿着这一思路,本文对基于自主实体的自适应软件构造方法进行了探索性的研究。方案提出了一种支持自主行为的构件模型ACT,设计了适用于Internet环境的自主策略,在此基础上给出了面向ACT构件的协同框架,并通过扩展现有的构件运行支撑平台,实现了对ACT构件的运行时刻支持。
但是,并不是构件的自主性越高给软件系统带来的收益越大,一方面,因为分布式的构件的感知范围有限,缺乏全局性的环境知识,它们的自主策略往往是局部的,相对于全局来说,构件的这种局部的自主性往往会导致自主构件之间的采取行为的冲突,如对资源获取上的死锁,饥饿等,从而导致全局质量属性的损失。另一方面,自主构件往往只关注自身的利益和目标,它们并不关心全局的长远利益,它们的行为和规划都具有短视性,这种短视性也同样会对全局的质量属性造成负面影响。
对此,我们对已有的构件运行支撑平台进行了扩展,实现或集成了一系列用于支持构件自主行为的基础服务。同时,开发了一个由自主构件构成的实验系统,通过统计的方法探讨了如何合理调整自主构件的自主性程度,使得系统的全局质量属性最优。此外,对于构件的协作的策略,给出一种基于规则注入的方法来支持构件协作框架,并分别给出运行结果从而证明方案的实用性。