[发明专利]一种大型软件自愈合框架及愈合方法在审
申请号: | 201510745681.9 | 申请日: | 2015-11-03 |
公开(公告)号: | CN105260193A | 公开(公告)日: | 2016-01-20 |
发明(设计)人: | 莫展鹏;杨松;季统凯 | 申请(专利权)人: | 国云科技股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 广东莞信律师事务所 44332 | 代理人: | 余伦 |
地址: | 523808 广东省东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 大型软件 愈合 框架 方法 | ||
技术领域
本发明涉及软件开发领域,特别是指一种大型软件自愈合框架及愈合方法。
背景技术
随着软件的复杂性的不断提高,尤其是应用在通信、金融等重要领域的大型软件,软件的高可靠性越来越受到关注。如何开发一个具有高可靠性的软件系统成为软件技术发展必须要解决的问题。
自愈合系统是提高软件可靠性的一种途径。它结合了容错与除错的方法,在运行时对程序进行调整,完成对错误的修正。目前,实现自愈合软件有两种手段,一种是程序本身内建的提供自愈合的特性,通过软件自身实现监控、分析、修改代码完成自愈特性。一种是实现一个可动态配置的框架和具有相同功能的冗余组件。程序通过在重加载软件完成对错误的消除。
上述方法存在以下的弊端:
1、软件本身需要采集和分析监控数据,数据量大,对系统性能损耗大。
2、对软件的愈合不彻底,如果软件由于内部因素导致崩溃,那么通过上述方法自愈以后,错误还可能会再次出现。
3、适用性不强,由于需要对受监视的程序进行修改,因此大型软件复杂的特点往往导致其无法实施。
发明内容
本发明解决的技术问题之一在于提供一种大型软件自愈合框架,有效提高大型软件的可靠性。
本发明解决的技术问题之二于提供一种大型软件自愈合框架的愈合方法,实现大型软件的自愈合,提高大型软件的可靠性。
本发明解决上述技术问题之一的技术方案是:
所述的框架包括如下模块:
模块1、运行环境;
模块2、监视模块;
模块3、程序分析模块;
模块4、代码愈合策略生成模块;
模块5、字节码修改模块;
模块6、事件转发模块;
所述的运行环境是实际执行程序的软件环境;
监视模块获得程序运行的状态并生成监视数据;
程序分析模块接收来自监视模块的监视数据,通过对监视数据的解析,借助判断规则分析得到系统是否正常运行的结果;如果程序出错,程序分析模块给出错误定位信息,并以事件的形式发送给事件转发模块;
代码愈合策略生成模块由生成规则和代码愈合策略生成器组成,代码愈合策略生成模块将程序分析模块诊断出的错误定位信息作为输入,与事件转发模块交互,一方面从事件转发模块发送过来的信息获取目前正在处理的字节码信息,另一方面又将根据生成规则生成的愈合策略以愈合指令的形式发送给事件转发模块,由事件转发模块转换为字节码修改模块识别的事件流信息;
字节码修改模块用来实际操作对字节码文件的修改;事件转发模块负责在程序分析模块、代码愈合策略生成模块、字节码修改模块之间转发事件流。
所述运行环境具有动态加载的特性,通过类加载器动态加载类文件,完成链接,初始化后,程序得以正常运行。
所述监视模块通过运行环境外的程序对其进行观察,获得在运行环境中运行的大型软件程序运行的状态。本发明并不是对程序运行的所有方面进行观察。“属性和方法”描述文件里,本发明给出了框架所关注的程序行为和状态。
本发明解决上述技术问题之二的技术方案是:
所述的方法按照以下工作流程进行:
步骤1:监控模块注册要监控的方法和属性,实现对运行程序有选择的监控;监控模块把产生的监控数据发送到程序分析模块;
步骤2:程序分析模块接收来自监控模块的监控数据,通过对监控数据的解释,借助于判断规则分析我们可以得到系统是否正常运行的结果;如果程序出错,程序分析模块给出错误定位信息,并以事件的形式发送给代码愈合策略生成模块,同时在事件转发模块上注册;
步骤3:代码愈合策略生成模块根据生成规则生成相关的愈合指令,并发送给事件转发模块,由事件转发模块转换成事件流再转发到字节码修改模块;
步骤4:字节码修改模块对字节码文件进行修改;
步骤5:将修改后的字节码文件重新进行装载运行。
所述字节码修改模块包括解码器与字节码构建器两个部分,其对字节码文件的修改步骤如下:
步骤1:字节码修改模块扫描字节码文件形成字节码流,并通过解码器将扫描到的信息以事件流形式发送到外部;
步骤2:字节码构架器接收发送过来的事件流,转换为字节码流并保存到类文件中。
字节码修改模块通过这个双向的过程可以完成对字节码文件的修改。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国云科技股份有限公司,未经国云科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510745681.9/2.html,转载请声明来源钻瓜专利网。