一种基于操作截取的分布式关键任务系统悔改方法

文档序号:6607385阅读:116来源:国知局
专利名称:一种基于操作截取的分布式关键任务系统悔改方法
技术领域
本发明涉及的是一种应用于具有高安全标准的分布式关键任务系统的信息安全 保护方法。
背景技术
由于系统复杂性、异构性、动态性日益提高,以及外在攻击手段的不断革新,操作 员对分布式关键任务系统的管理与维护日益困难,操作失误频繁发生,致使系统时刻面临 软件中断、数据丢失、甚至系统崩溃等系统失效问题的威胁,如何保障分布式关键任务系统 的连续可靠运行已成为一项严峻的挑战。针对该问题,早期的研究者从备份恢复的角度进 行了一些有意义的探索。例如,公开号为CN1517918的专利中的技术方案,通过定期备份数 据文件,使系统可以恢复到较早的健康状态;公开号为CN1784676的专利则给出了基于快 照副本的系统恢复方法。备份恢复技术的缺点在于需要反复地对原始文件进行备份,增加 了大量的额外恢复开销,也无法保证备份数据的实时性,在面对无法预测的随机误操作时, 更是显得苍白无力,因此限制了其在分布式关键任务系统中的进一步应用。由于操作员的操作失误在系统失效诱因中所占的比例日益增大,为了更好地解决 分布式关键任务系统失效问题,研究者在传统的备份恢复技术的基础上,提出了“悔改”方 法。所谓“悔改”方法是指系统对已经执行完毕的命令、操作等具有“后悔”和“改正”的能 力,从而能使系统从失效状态恢复过来。悔改方法因其对用户操作灵活的undo/redo功能 以及在恢复效率上的明显优势,得到了研究者的广泛重视。悔改方法最早应用于绘图和文 字处理领域(公开号CN101539960),在分布式关键任务系统领域的应用尚处于起步阶段。 数据库事务回滚技术是悔改思想的一种体现,但它只是实现了事务回滚,并未使系统从失 效中恢复,因此并未实现真正的悔改。

发明内容
本发明的目的在于提供一种能够对系统实施悔改恢复,解决悔改过程可能产生的 不一致性问题的基于操作截取的分布式关键任务系统悔改方法。本发明的目的是这样实现的步骤一对分布式关键任务系统重要程序文件和数据文件进行冗余备份;步骤二 操作截取器实时截取系统操作,捕获操作参数及操作数据,写入操作日 志;步骤三操作分析器实时分析新发生的操作;操作监视模块监视操作日志的变 化,读取操作日志中新形成的操记录,交由过滤模块处理;过滤模块对接收到的操作记录依 据“可恢复性判断算法”进行可恢复性检查,将不可恢复或无需恢复的操作交由操作存储器 直接写入冗余文件,把需要恢复的操作压入回滚栈,供悔改器处理;步骤四当系统失效发生时,悔改器对系统实施悔改恢复;首先,悔改器调用回滚 模块分析历史操作记录,发出操作记录退栈消息;回滚操作栈响应退栈消息,使误操作记录退栈;接着,悔改器调用修复模块工作,修复模块依据“修复算法”,对误操作记录实施修复, 修复后的误操作记录压入重放操作栈中;最后,悔改器调用重放模块工作,重放模块取出重 放操作栈中的操作记录,重新执行;步骤五当悔改恢复过程产生不一致性时,一致性管理器依据分级补偿机制,对不 一致性进行处理。本发明面向分布式关键任务系统,提出了一种基于操作截取的悔改方法,该方法 通过操作截取器、操作日志、操作分析器、悔改器、一致性管理器及操作存储器实现对系统 操作的悔改。首先,对系统重要文件进行冗余备份,保证数据信息的可恢复性。其次,操作 截取器实时截取系统的操作信息,写入操作日志;操作分析器分析捕获到的操作记录,将不 可恢复或无需恢复的操作交由操作存储器写入冗余文件,需要恢复的操作则交由悔改器处 理。悔改器是本发明的核心部分,当系统失效发生时,悔改器通过操作回滚、操作修复、操作 重放三个连续的步骤对系统实施悔改恢复,并通过一致性管理器依据分级补偿策略解决悔 改过程可能产生的不一致性问题。


图1本发明的实现原理图;图2可恢复判断方法流程图;图3修复方法流程图;图4悔改恢复过程关键代码实现。
具体实施例方式下面结合附图举例对本发明做更详细地描述图1说明了本发明的实现原理,给出了一种基于操作截取的分布式关键任务系统 悔改方法的详细工作过程步骤一对分布式关键任务系统重要程序文件和数据文件进行冗余备份,以保证 系统初始状态信息的完整性和可恢复性。这样,即使在悔改方法无法正常工作的“最坏”情 况下,系统仍能被恢复到初始状态。步骤二 操作截取器实时截取系统操作,捕获操作参数及操作数据,写入操作日志。步骤三操作分析器实时分析新发生的操作。操作监视模块监视操作日志的变化, 读取操作日志中新形成的操记录,交由过滤模块处理。过滤模块对接收到的操作记录依据 “可恢复性判断算法”进行可恢复性检查,将不可恢复或无需恢复的操作交由操作存储器直 接写入冗余文件,把需要恢复的操作压入回滚栈,供悔改器处理。步骤四当系统失效发生时,悔改器对系统实施悔改恢复。首先,悔改器调用回滚 模块分析历史操作记录,发出操作记录退栈消息;回滚操作栈响应退栈消息,使误操作记录 退栈;接着,悔改器调用修复模块工作,修复模块依据“修复算法”,对误操作记录实施修复, 修复后的误操作记录压入重放操作栈中;最后,悔改器调用重放模块工作,重放模块取出重 放操作栈中的操作记录,重新执行。步骤五当恢复一致性管理器依据分级补偿机制,解决悔改恢复过程中可能产生的不一致性问题。1、冗余文件在系统处于初始状态时,通过为系统重要程序文件和数据文件进行冗余备份,保 障了系统重要系统信息和数据信息的完整性和可恢复性。系统运行过程中,随着无需恢复 和不可恢复等“安全”操作的写入,冗余文件保存了系统最近的健康状态,从而避免了对原 始文件的反复备份。2、操作截取器操作截取器负责实时截取系统运行过程中产生的操作信息,如IO操作、进程通信 操作及SQL操作等。应用现有HOOK技术及SQL截取技术,可以对系统操作进行无侵入式地 拦截和捕获。以下给出了操作截取器实现中一次完整的HOOK操作截取过程(1)注入操作 截取dll模块;(2)保存系统函数入口地址;(3)替换进程中的系统函数,执行dll模块;(4) 恢复系统函数入口地址,重新调用原来的系统函数。3、操作日志操作截取器捕获到操作信息后,按照一定格式写入操作日志,形成操作记录。操作 记录保存了操作过程的完整信息,包括操作发生时间、操作发生位置、操作类型及操作所携 带的数据等。以下给出了操作记录的一种实现方式op_idIop_time|op_location|op_type|op_data其中,op_id标识本次操作;op_time记录本次操作发生的时间;op_location记录 本次操作的位置信息;op_type给出了本次操作的类型;op_data记录了本次操作的操作数 据。4、操作分析器操作分析器由监视模块和过滤模块构成,对截取器捕获到的操作进行分析。监视 模块实时读取操作日志中形成的操作记录,交由过滤模块处理。过滤模块根据“可恢复性判 断算法”,如图2,对监视模块交付的操作记录进行可恢复性判断。以下给出了“可恢复性判 断算法”的一种实现方式算法可恢复性判断算法输入操作记录输出可恢复;无需恢复;或者不可恢复{opr = new Oprecord (op_record) ; /氺传人操作i己录参数氺/if (opr. isSaveableO)/* 可存储判断 */{if (opr. isUndoableO)/* 可回退判断 */{if (opr. isThreatenableO)/* 可引起失效判断 */opr. setRecoveryType ( “可恢复”);elseopr. setRecoveryType ( “无需恢复”);}
elseopr. setRecoveryType( “不可恢复”);}elseopr. setRecoveryType( “不可恢复”);}过滤模块对操作记录进行可恢复性判断后,将不可恢复或无需恢复的操作交由操 作存储器直接写入冗余文件,把需要恢复的操作压入回滚栈,供悔改器处理。5、悔改器当系统失效发生时,由悔改器负责对系统实施悔改恢复。首先,悔改器调用回滚模 块分析历史操作记录,发出操作记录退栈消息;回滚操作栈响应退栈消息,使误操作记录退 栈;接着,悔改器调用修复模块工作,修复模块依据修复算法,如图3,对误操作记录实施修 复,修复后的误操作记录压入重放操作栈中;最后,悔改器调用重放模块工作,重放模块取 出重放操作栈中的操作记录,重新执行。以下给出了修复算法的一种实现方式,悔改过程关 键代码如图4所示。算法修复算法输入操作记录输出修复后的操作记录{opr = stac k. getTopItemO ;if (opr. isReversible ()){reverseRecovery (opr);}elseif (opr、isReplaceable ()){replaceRecovery (opr);}elseInconsistency(opr);}6、一致性管理器一致性管理器负责检查悔改恢复过程可能产生的“不一致性”问题。所谓的“不一 致性”问题是指,由于操作信息在修复过程中发生了变化,使得系统重放后的状态与系统失 效前的状态相比可能产生偏差、不一致、甚至引入新的错误。为了解决“不一致性”问题,一 致性管理器通过建立分级补偿机制,使系统最大限度地恢复到失效前的状态。分级补偿机 制下所示。
/*回滚栈栈顶出栈*/ /*可逆判断*/
/*逆向修复*/
/*可替换判断*/ /*替换修复*/
/*不一致性处理*/ 本发明给出了一种基于操作截取的分布式关键任务系统悔改恢复方法,可以解决 基于操作的分布式关键任务系统失效问题。该方法与传统的基于检查点的备份恢复方法相 比,具有低恢复开销,高恢复速度的优点,应用于具有高安全标准的分布式关键任务系统。
权利要求
一种基于操作截取的分布式关键任务系统悔改方法,其特征是步骤一对分布式关键任务系统重要程序文件和数据文件进行冗余备份;步骤二操作截取器实时截取系统操作,捕获操作参数及操作数据,写入操作日志;步骤三操作分析器实时分析新发生的操作;操作监视模块监视操作日志的变化,读取操作日志中新形成的操记录,交由过滤模块处理;过滤模块对接收到的操作记录进行可恢复性检查,将不可恢复或无需恢复的操作交由操作存储器直接写入冗余文件,把需要恢复的操作压入回滚栈,供悔改器处理;步骤四当系统失效发生时,悔改器对系统实施悔改恢复;首先,悔改器调用回滚模块分析历史操作记录,发出操作记录退栈消息;回滚操作栈响应退栈消息,使误操作记录退栈;接着,悔改器调用修复模块工作,对误操作记录实施修复,修复后的误操作记录压入重放操作栈中;最后,悔改器调用重放模块工作,重放模块取出重放操作栈中的操作记录,重新执行;步骤五当悔改恢复过程产生不一致性时,一致性管理器依据分级补偿机制,对不一致性进行处理。
全文摘要
本发明提供的是一种基于操作截取的分布式关键任务系统悔改方法。首先,对系统重要文件进行冗余备份,保证数据信息的可恢复性。其次,操作截取器实时截取系统的操作信息,写入操作日志;操作分析器分析捕获到的操作记录,将不可恢复或无需恢复的操作交由操作存储器写入冗余文件,需要恢复的操作则交由悔改器处理。当系统失效发生时,悔改器通过操作回滚、操作修复、操作重放三个连续的步骤对系统实施悔改恢复,并通过一致性管理器依据分级补偿策略解决悔改过程可能产生的不一致性问题。
文档编号G06F11/14GK101916215SQ20101024779
公开日2010年12月15日 申请日期2010年8月9日 优先权日2010年8月9日
发明者吕宏武, 周晓耕, 王慧强, 郑业青 申请人:哈尔滨工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1