基于分布式软件的软件热插拔方法研究与实现
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
分布式计算机软件系统已经与人类的生活和生产密不可分,随着应用的不断扩展,系统软件的复杂性越来越高,维护管理和保障其功能可信性也日渐艰难。一些系统故障、操作失误甚至于软件彻底失效常会发生,给人们的工作和生活带来不利影响,极大的损害了用户对软件的信心。因此对于分布式软件系统的可信演化的研究越来越受人们的关注。
     本文所研究的软件热插拔技术就是实现软件可信性及软件动态演化的一种重要手段。经过对相关资料的收集、整理以及相关文献研究的总结,在软件热插拔技术领域,目前世界上只有极少数的组织或研究机构进行过相关的研究和实现,并且这些组织或研究机构对于软件热插拔技术的研究仍然处于初步阶段,截止到当前取得的科研成果以及技术的实践应用等方面也是有限的。经过论证和实验发现,要实现一种安全有效的热插拔普适方法还是比较困难的。
     本文基于自律系统的控制结构进行系统模型设计,进而提出了一种基于分布式软件的软件热插拔技术。论文首先介绍了软件可信性及软件的动态演化的基本概念和原理,通过软件动态演化属性的重要性和必要性来阐述热插拔技术在大型分布式软件系统领域应用的优势。
     其次,讨论并建立了基于分布式软件的软件热插拔系统模型,包括文件包组织模块、运行对象监测模块、基于分布式的文件修正模块以及对象动态编译和装载模块,并简要介绍了各个模块的作用。在此基础上,研究并解释了本文所设计的两个重要算法的原理及其实现,包括软件运行监测算法和软件热插拔算法。分析了设计与实现基于分布式软件的软件热插拔系统的关键问题,并给出了初步解决方案。
     最后,给出了基于分布式软件的软件热插拔系统仿真实现,包括软件运行监测算法和软件热插拔算法的详细设计。通过仿真实验获取了相关数据验证了该热插拔算法的可行性。论文最后进行了总结,提出了下一步的研究重点。
Distributed software system has a close relationship with human's life and production. As the uses of software develop, the complexity of software system is higher and higher, the maintenance and the credibility of its function are harder and harder. Some system breakdown, mistaken operation, even the software completely broken down often happens which has bad influence on people' work and life and destroy the confidence that the users have in the software. So the researches of the dependability evolution are more and more concerned.
     The software hot-swapping introduced in this paper is an important way to make the dependability and the dynamic evolution comes true. According to the collections of the relative material and the conclusion of the documents, we discover there are only a few organizations and departments working on the hot-swapping and making it come true, and these organizations are on the first step where the software hot-swapping is. The research results and the uses of the technique are limited. According to the proof and experiment, it is difficult to make a safe and efficient hot-swapping come true.
     Based on autonomic computing system, the paper introduces a hot-swapping technique. First, the paper introduces the basic concept and theory of software dependability and dynamic evolution; it explains the using advantage of the software hot-swapping based on the distributed software system by the importance and necessity of the software dynamic evolution.
     Second, the paper discusses and creates the software hot-swapping module, including package organization module, monitoring module, file correction module based on distributed system, dynamic compilation and dynamic loading module and introduces the function of each module. Based on this, it researches and explains the two importances of theory and how they work including software monitoring algorithm in run-time and software hot-swapping algorithm. It analyses how they designed and how they worked.
     In the end, the paper gives a simulation experiment of the software hot-swapping, including the detailed design of software monitoring algorithm in run-time and the software hot-swapping algorithm. The data from the simulation experiment verify the feasibility of the software hot-swapping.
引文
[1]李长云,何频捷,李玉龙.软件动态演化技术.北京:北京大学出版社,2007.11:9-11页
    [2]王怀民,尹刚.网络时代的软件可信演化.中国计算机学会通讯,2010.2,6(2):28页
    [3]Segal M. E, Frieder O. On-the-fly program modification:Systems for dynamic updating. IEEE Software,1993,10 (2):53-65P
    [4]Scott Malabarba, Raju Pandey, Je_ Gragg, Earl Barr, and J. Fritz Barnes. Runtime Support for Type-Safe Dynamic Java Classes. ECOOP, Berlin,2000:337-361P
    [5]MICHAEL HICKS, SCOTT NETTLES. Dynamic Software Updating. ACM Transactions on Programming Languages and Systems,2005,27 (6):1049-1096P
    [6]Janghoon Lyu, Youngjin Kim, Yongsub Kim and Inhwan Lee, A Procedure-Based Dynamic Software Update. In:Proceeding of the International Conference on Dependable Systems and Networks (DSN), Washington, DC,2001:271-284P
    [7]Orso A, Rao A, Harrold MJ. A technique for dynamic updating of JAVA software. In: Proceedings of the International Conference on Software Maintenance (ICSM), Washington, DC,2002:649-658P
    [8]N. Feng, G. Ao, T. White, B. Pagurek, Dynamic Upgrading of Network Management Software by Software Hot-Swapping. In: Proceedings of the 7th IFIP/IEEE International Symposium on Integrated Network Management (IM 2001), Seattie,2001: 63-76P
    [9]Ross Gardler and Nikolay Mehandjiev. Supporting Component-Based Software Evolution. In: Proceedings of the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a NetWorked World, London,2002:242-245P
    [10]Kevin Hui_Craig A. N. Soules_Robert W. Wisniewski_Dilma Da Silva_ Orran Krieger_Marc Auslander_David Edelsohn_Ben Gamsa_Gregory R. Ganger_Paul. Enabling Autonomic System Software with Hot-Swapping.2006: http://www.research.ibm.com/K42/papers/auto-vis.pdf
    [11]Andre Postma, Pierre America, Jan Gerben Wijnstra, Component Replacement in a Long-Living Architecture:The 3RDBA Approach. Proceedings of the Fourth Working IEEE/IFIP Conference on Software Architecture. Washington DC,2004:89-100P
    [12]王晓鹏,王千祥,梅宏.一种面向构件化软件的在线演化方法.计算机学报,2005,11:134-141页
    [13]叶海智,王慧强,赖积保.关键任务系统中的任务热插拔技术.计算机工程,2008,34(10):33-37页
    [14]D. R. Cheriton, "The V kernel:A software base for distributed systems,"IEEE Software, vol. 1,pp.19-42, Apr.1984
    [15]Lehman, M. M.:On understanding laws, evolution and conservation in the large program life cycle. Systems and Software 1 (3),1980,213-221P
    [16]George Candea and Armando Fox. Designing For High Availability and Measurability. lstWorkshop on Evaluation and Architecting System Dependability, Goteborg Sweden, 2001:12-15P
    [17]崔慧敏,戴桂兰,王生原.动态编译技术研究.计算科学,2004,31(7):36-41页
    [18]王政霞,黄大荣,孙艳红.一般意义下动态加载机制的应用研究.自动化技术与应用.2005,24(6):30-33页
    [19]JOHN R LEVINE Linkers & Loaders. Morgan-Kauffman 2000
    [20]Kephart JO, Chess DM. The vision of autonomic computing. Computer,2003,1 (36):41-45P
    [21]J.O.Kephart,D.M.Chess.The vision of autonomic computing. Computer.2003,36 (1) 41-50P
    [22]杨仕平,熊光泽,桑楠,等.高可信软件的防危性评估研究.计算机工程与设计.2004,25(2):161-169页
    [23]廖备水,李石坚,姚远,高济.自主计算概念模型与方法研究.软件学报.2008,19(4):779-802页
    [24]臧铖,黄忠东,董金祥.基于状态的通用自主计算模型.计算机辅助设计与图形学学报2007,19(11):1476-1481页
    [25][美]Gamma E, Helm R, Johnson R, et al.设计模式:可复用面向对象软件的基础[M].北京:机械工业出版社,2000:14-18页
    [26]韦华颖,詹剑锋,王沁.分布式构建技术综述[期刊论文]-计算机应用研究2004(10)
    [27]陈火旺等.程序设计语言编译原理.第3版.北京:国防工业出版社,2000:15-20页
    [28]杨芙清.软件工程技术发展思索[J].软件学报,2005,16(1):1-7页
    [29]孙昌爱,金茂忠,刘超.软件体系结构研究综述[J].软件学报,2002,13(7):1229-1237 页
    [30]oneworld Java垃圾收集器使用小诀窍.2005:http://www.weste.net/2005/6-3/ 09584892908.html
    [31]Q.Zhenyu, G.Allen, C.Alessandro. A formal specification of Java class loading. Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications,2000:325-336P
    [32]L.Tim, Y.Frank.The Java Virtual Machine Specification (Second Edition). http://Java.sun.com/docs/books/jvms/
    [33]G.James, J.Bill. The Java Language Specification, Third Edition. http://Java.sun.eom/docs/books/jls/download/langspec-3.0.pdf
    [34]Y.Sato and S.Chiba. Negligent Class Loaders for Software Evolution. Proceedings of ECOOP'2004 Workshop on Reflection, AOP and Meta-Data for Software Evolution (RAM-SE'04), Oslo, Norway,2004:53-58P
    [35]O.Alessandro, R.Anup, J.H.Mary. A Technique for Dynamic Updating of Java Software. Proceedings of the International Conference on Software Maintenance (ICSM'02), 2002:649P
    [36]M.Dmitriev. Towards flexible and safe technology for runtime evolution of JAVA language applications.In:Proceedings of the Workshop on Engineering Complex Object-Oriented Systems for Evolution, Tampa,2001:65-76P
    [37]Dominic Duggan, Stevens, Hoboken. TypeBased Hot Swapping of Running Modules. ICFP'01, Florence, Italy,2001:62-73P

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700