面向开放环境的动态软件演化技术研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:yoyo220
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
与传统软件系统所处的环境不同,Internet这一新的计算环境具有开放、动态、难控的特点。其上的软件在运行过程中经常面临用户需求和运行环境等要素的变化。要在这样的一种环境下良好工作,软件系统需能够在不中断运行的情况下进行动态演化,以适应运行时刻计算环境中网络、硬件设备、软件资源等的变化和用户需求的改变,尽可能地提高用户满意度。这种动态演化的需求使得基本的软件构造模型需从以“隐式为主的环境和静态为主的应变”为特征的经典模型逐步转变为以“显式化环境与动态化应变”为特征的网构软件环境驱动模型。如何构造这样一种开放的环境驱动软件模型,并在此模型下提供有效的动态演化支撑方法和保障机制已成为软件新技术所面临的一项重要挑战。本文在分析了经典软件演化机制和支撑方法的基础上,以软件体系结构为研究的切入点,提出面向开放环境的动态软件演化的模型和方法。首先,不同于传统软件力求稳定的体系结构设计,此类软件需要采用动态体系结构,支持在运行时刻规范地修改其体系结构配置以及时有效地应对变化;其次,这种新型软件系统需要具备实时收集用户的需求和环境的变化,尤其是非预期的变化的能力,并能迅速做出反应,通过可复用的驱动机制实施相应的演化策略;同时,软件系统的动态演化不能破坏系统的完整性和一致性,需要相应机制保障。针对这些问题,本文的主要工作如下:   ⑴提出一个面向开放环境的动态软件演化的总体框架。该框架着眼于此类软件的“开放性”和“动态性”,对传统的构件/服务模型进行了扩展,通过引入显式的体系结构实体将构件/服务之间的协同交互解耦;为构件/服务增加上下文感知“方面”,提高构件/服务对环境的敏感性,以及根据环境变化而演化的敏捷程度。该抽象框架为下一步研究开放环境中运行时刻的软件演化奠定了基础。   ⑵基于上述框架研究一种面向软件体系结构的动态演化方法,给出内置式软件体系结构的定义和实现。内置式软件体系结构使得原本隐含在系统实现中的软件体系结构在运行时刻成为可以操纵的实体,它和实现系统之间保持因果关联,通过反射计算实现软件系统预设和非预设的演化。此外,通过动态加载演化规则,可以进一步实现软件系统的自适应演化。内置式的软件体系结构实体能够充分利用面向对象语言中的类型、继承、多态等机制,为动态软件演化提供一种规范的方式。   ⑶针对环境驱动的自适应演化,进一步给出环境上下文的定义、分类及描述方法和上下文感知应用的编程方法。给出用户需求和与软件运行、演化相关的各类环境上下文的描述方法,并将这些描述方法统一到RDF框架中,通过扩展的RDF元组为上下文冲突的消解提供额外信息并且给出相应的算法。在实现层,提出适合上下文感知应用的软件设计模式和体系结构风格以使上下文感知应用能够利用可复用的驱动机制进行动态演化,并且能够动态添加非预设的上下文信息及相关的自适应行为。   ⑷对基于π演算的内置式软件体系结构的形式模型进行了探讨。首先基于π演算定义内置式软件体系结构中各组成元素的语义,通过实例介绍面向软件体系结构的动态演化方法的形式语义模型。同时对面向开放环境的软件系统的自适应演化进行形式化描述。   ⑸设计并实现了面向软件体系结构的动态软件演化支撑环境ARTEMIS-ARC系统。该系统基于工业界广泛采用的Eclipse,Apache Axis和Jboss等平台,支持基于Web Service,EJB等规范的软件设计、开发和组装,并提供了包括图形化的开发界面、基于属性图文法的体系结构检查、代码生成、上下文监控等工具集以及设计运行时刻体系结构类的APIs。通过该支撑系统可以实现开放环境中软件的面向体系结构的动态演化。   ⑹探讨面向软件体系结构的动态演化方法在开放环境中软件上的具体应用。通过两个具体的实例展示了面向软件体系结构的协同和动态演化方法、上下文感知等技术及其支撑系统在现实世界中的应用。针对这两个应用实例,分别展现了如何应用前述技术和平台进行Internet上增值服务的快速开发,以及由非功能性需求、功能性需求的变化和上下文变化所驱动的动态演化。通过这些应用的实践在一定程度上表明了面向软件体系结构的软件服务集成和动态演化方法及其支撑机制的可行性和有效性。
其他文献
在数字信息时代,人们对信息的需求表现得前所未有的强烈,尤其是在互联网浪潮席卷全球之后,这种需求达到了极至。庞大互联网的出现,给我们提供了无穷的学习资源。伴随搜索引擎
在教育领域,人们一直在尝试着将计算机及互联网技术应用于教学活动中,提高计算机教学辅助化工作的水平。在一般的课程管理系统(Course Management System, CMS)之外,面对计算
近几年网络流识别吸引了越来越多人的兴趣,准确快速的识别网络流应用层协议数据所属协议类别,将对当前网络的运行和管理带来重大现实意义,有助于深化网络流工程学,网络容量设计和
随着计算机技术的发展,系统仿真作为一种先进的计算机技术,已经被广泛应用于国民经济和国防建设的各个领域。同时,为了适应现代战争要求和科学技术的进步,外弹道学在近几十年
基于可视性的最优路径分析是地形可视性分析中的一项基本功能,属于空间决策支持的范畴,在理论研究和实际应用两方面都具有重要的意义。在传统基于可视性的最优路径分析中,影响通
近几十年来,随着数字图像获取技术的迅速发展,数字图像的数量和种类也以前所未有的速度增长着。海量的图像数据带来了图像处理和图像分析方面的迫切需求,其中如何高效地进行数字
随着虚拟现实技术、网络技术、计算机图形学等学科技术的迅猛发展,单机运行的三维可视化系统已经不再满足人们的需求,基于网络的三维可视化系统已经成为虚拟现实和虚拟景观中
随着高校教学管理信息化的日益发展与日趋成熟,基于教务管理信息系统形成的海量历史数据进行深层次分析与应用,对提高学校教学管理与决策的质量与水平具有积极而深远意义。
Web Services技术是一个简单的、易扩展的技术,它为广域、异构的分布式应用程序提供了便于互操作的平台,被广泛用于构建网络系统的基本框架。   Web Services技术之所以具有
智能化是人对计算机系统的基本要求,将智能技术引入人机交互研究中,产生了智能交互技术。智能交互是提高人机交互效率、使计算机提供的服务更好的满足用户个性化需求的重要手段