可靠的自适应对象:原理与机制
1. 引言
当前计算机系统的执行环境复杂、动态且难以预测,这给软件设计者确保系统可靠性带来了挑战。系统可靠性常通过应用程序的非功能属性来体现。静态方法在系统所有影响事件已知或有界时有效,但难以应对意外情况;动态方法虽不能确保完全满足所有约束,但能处理未知状况。
ARTO(自适应实时对象)项目旨在定义一种自主对象模型,使对象能根据执行环境的变化动态修改其行为。该项目最初针对软实时领域,但模型的底层原理旨在提高不可预测执行环境下的系统可靠性。由于其开放性,该模型可轻松适应其他领域的非功能约束。
在ARTO中,所有非功能方面(如时间相关约束)都被视为对象提供服务质量的一部分,自适应决策由服务质量(QoS)标准驱动。软件开发社区对自适应有多种观点,自适应元素可以是对象、参与者、应用程序或组件。项目初始版本限于单处理器执行,未来计划扩展到分布式系统,为此在设计上做了特殊考虑,如使用CORBA和J2EE等对象代理中间件。
2. 自适应原理
任何系统都采用尽力而为的策略来维持可靠性,满足用户期望。本项目认为,当某些需求无法满足时,自适应才开始。此时需做出决策,以尽可能提高全局满意度,即根据各种标准最大化全局满意度。在本工作中,自适应意味着系统根据其上下文修改行为(即提供服务的方式),以达到更合适、满意的工作点。满意度通过收集形成系统提供的QoS的标准来评估,因此自适应通过提高系统的全局QoS来提高可靠性。
实现自适应首先需要选择架构,有非侵入式和侵入式两种QoS管理类型:
- 非侵入式 :
- 操作系统主导