论文部分内容阅读
目前在大规模分布式在线服务系统中,系统的可靠性、可用性、可信性以及可维护性逐步成为计算机系统必须考虑的重要因素,尤其在一些关键服务应用领域如:金融数据处理系统、医疗服务系统,远程通信系统、电信在线计费系统等。在类似这样的分布式系统环境中往往需要实时的决策支持或者是事件驱动处理,系统一旦开始运行,就必须一天二十四小时、一周七天的保持操作,系统的中断意味着付出高昂的代价甚至危及用户生命。因此,软件动态更新技术正成为当今软件维护领域的一个重要研究课题,能否提供不间断的服务正在成为人们衡量软件系统的一项重要指标。由于面向服务在动态更新和交互性等方面的优势,以服务为实体来构建面向服务的应用程序已然成为软件工程中的一个趋势。因此如何在面向服务的分布式系统上实现动态更新是一个值得深入研究的课题,本文针对“24×7”面向服务的分布式系统环境,提出相应的动态更新支持关键问题。由于面向服务思想主要专注于动态性和互换性,而面向构件技术则主要专注于创建可复用的软件构件模块,因此很多流行的软件技术都是将构件模型和面向服务模型结合,以面向服务的构件模型(SOCM)为基础的,因此本文的主题研究是基于SOCM展开的。论文的主要研究工作和创新性包含以下几个方面:1、深入分析服务的远程访问特征,包括远程服务的发布、远程服务请求、远程服务调用和远程服务执行返回,进而从中进一步深入分析确定更新的时机、更新的状态传递、更新的服务重定向、多服务更新的协调等相关问题;2、根据分布式系统的服务访问的事务特征,提出一组基于事务的动态更新控制策略,包括:针对分布式系统上运行的服务事务的长短特征,提出慢速更新策略和快速更新策略;以相关短事务(单个或依赖的多个需要被更新服务参与的事务)的执行完成为更新时机的选择策略,不同于主动强制更新单元停止来获得更新时机的方法;提出基于短事务的ACID特性保证更新前后系统的ACID特性的更新实施策略,用短事务模型来控制基本更新操作,用长事务模型来控制分布式系统中更新耗时最长的部分――持久化数据的转换;提出用lazy转换的方法来执行持久数据变换,对应用事务和转换事务的交叉进行序列化处理,以保证更新前后系统状态的一致性;3、提出一个基于事务的分层协调更新模型CoDUM-TrSOS,用于支持系统软件的动态更新,模型设计主要包括三部分:面向服务的支持动态更新功能的单个构件更新管理器的设计(包括原子服务构件和复合服务构件更新管理器),面向多个依赖服务的动态更新协调模型和从中心服务器到服务端的分层控制更新框架;4、根据复合构件和有服务调用依赖的构件产生的引用、包含依赖关系,自动确定构件运行时状态转换的执行顺序和持久化数据转换长事务中各转换短事务的执行顺序,从而保证了更新前后系统状态的一致性,一方面减轻开发人员的负担,另一方面避免因手工编程实现转换时顺序依赖关系控制不当引起的系统状态转换出错;5、借助于带类型的Pi演算,将其用于本系统面向服务更新中的服务重绑定的类型安全性刻画和验证,该验证是基于子类型关系的匹配基础上而不是名称上的,从而用形式化方法保证了运行时系统的服务重配置和动态更新服务实现的接口重绑定的类型安全性,从而提供更新的系统一致性的基础;6、在分布式系统BR-OSGi-DS上,通过原型实现,从实践角度验证了相关策略的正确性,为进一步研究在支持普适服务事务的普适计算平台上实现动态更新功能提供了有一定价值的参考。