Internet这样开放环境下的软件系统常常面临着计算环境和用户需求的变化。其中许多系统需要能够在不关闭系统的条件下对软件进行更新以适应这些变化。本项目拟针对这种技术需求,研究较为通用、灵活而对系统服务干扰小的软件在线演化方法,特别是在基于动态软件体系结构的系统演化技术、基于软件分析的在线演化规划技术以及图文法制导的在线演化支撑工具构造技术等方面取得进展,并逐步将其引入到主流的软件开发和运行支撑技术中去,为研制下一代具有在线演化服务的中间件系统进行技术准备。
Online Software Evolution;Software Middleware;Software Architecture;;
开放网络环境下的软件系统常常面临着计算环境和用户需求的变化。如何能够在不关闭系统的条件下对软件进行更新以适应这些变化是一个具有重要应用意义而又十分困难的问题。传统的软件开发和运行支撑技术在此方面的支持存在明显不足。本项目就此进行了较为深入的研究,给出了一套以“高一致性保障、低运行干扰和多粒度在线更新”为特征的软件无缝演化技术,并开发了相应的软件在线演化支撑工具,较圆满地完成了本项目预定的任务。其间取得的较重要的结果包括 1. 在软件构件级,提出了基于版本一致的构件在线更新方法。既有途径如Quiescence、Tranquility等要么对系统服务干扰太大,要么不能保证系统更新的正确性。我们提出新的版本一致性准则,通过对运行时刻构件间动态依赖关系的分析,给出了相应的一致性维护算法,在保证系统在更新过程之中和更新之后仍能正确运行的同时,降低了构件更新对系统正常服务的干扰。 2. 在程序代码级,提出了Java代码按需更新机制。既有Java程序在线更新技术采用一次性整体更新的方式,系统运行中断时间较长。我们通过一种按需更新机制,避免了无用更新,并使更新开销分散到用户线程中,消除了绝大部分的系统中断时间;同时给出优化的对象合法性检查和新对象扩张机制,克服了按需更新的运行开销大的问题。 3. 分别开发了支持动态更新的Service Component Architecture框架ConUp和基于OpenJDK的Java程序动态更新支持工具Javelus,使得上述研究成果可在工业级的主流系统中应用。 结合上述工作,在软件工程领域著名会议FSE '11和ICWS '11, COMPSAC '12, APSEC '12等国际会议以及《IEEE Software》、《Pervasive and Mobile Computing》、《中国科学》等国内外重要刊物发表论文14篇,申请发明专利4项。相关成果获得2010年度教育部技术发明一等奖(本项目主持人为第2完成人)和2011年度国家科技进步二等奖(第4完成人)。