发明名称 软件动态更新中确定实例对象转换次序的方法及系统
摘要 一种计算机应用技术领域的软件动态更新中确定实例对象转换次序的方法及系统,本发明方法中,获取对象引用信息和引用终止信息;比较并删除冗余的对象引用信息以及互相匹配的两类信息;区分对象引用属性,得到系统运行时所有活跃对象的依赖关系信息;运用类型检查规则验证更新的完整性;验证安全对象更新条件,得到合理的构件更新次序。本发明的系统包括:服务调用监听模块、引用信息更新模块、构件依赖分析模块、完整性验证模块、更新次序选择模块。本发明能够在系统运行过程中动态获取构件实例对象的动态依赖关系,并在构件动态更新时据此给出合理的实例对象转换次序。
申请公布号 CN101393528A 申请公布日期 2009.03.25
申请号 CN200810201929.5 申请日期 2008.10.30
申请人 上海交通大学 发明人 徐小辉;黄林鹏;王德俊;王欣
分类号 G06F9/46(2006.01)I;G06F9/445(2006.01)I 主分类号 G06F9/46(2006.01)I
代理机构 上海交达专利事务所 代理人 王锡麟;王桂忠
主权项 1. 一种软件动态更新中确定实例对象转换次序的方法,其特征在于,包括以下步骤:步骤一,服务调用监听:通过开发阶段向构件所包含的类文件中增加接口方法,在系统运行时监控该构件所提供全部服务对象的生存周期,获取这些方法的执行所产生的事件消息,得到对象引用信息和引用终止信息,对象引用信息是指在通过初始创建或服务引用而获取被调对象时,用于声明这一初始化事件的信息,对象引用信息包括:类别为引用生成的消息类别、被调对象的身份标识、主调对象的身份标识、被调对象初始创建的时间戳;引用终止信息是指在之前创建和引用的被调对象不再在主调对象中起作用时,用于宣告被调对象引用终止事件的信息,引用终止信息包括:类别为引用终止的消息类别、被调对象的身份标识、主调对象的身份标识、被调对象引用终止时的时间戳;步骤二,分别比较对象引用信息中的被调对象的身份标识和主调对象的身份标识,当消息类别为引用生成,且被调对象的身份标识和主调对象的身份标识分别与另一对象引用信息完全相同,则认为该对象引用信息是冗余信息,删除该冗余的对象引用信息,然后将剩余不存在冗余的对象引用信息逐个与所有引用终止信息进行匹配性验证,若验证通过,则删除相匹配的对象引用信息和引用终止信息;若验证未通过,则保留该对象引用信息,得到当前实际存在的活跃对象的对象引用信息;步骤三,逐个比较对象引用信息中所包含的被调对象身份标识与主调对象身份标识,结合构件间静态依赖关系,区分各个对象引用信息的属性,即识别各个对象是否属于某一构件的内部对象的引用,或者是否属于不同构件间对象的引用,以获得系统运行时所有活跃对象的依赖关系;步骤四,当采用惰更新时,系统中的应用过程或其他对象转换正准备调用一个待更新的对象而触发具体对象更新,结合步骤三获得的活跃对象依赖关系验证更新的完整性,运用类型检查规则验证对象引用关系是否因不兼容接口的引入而受到影响,如果受到影响则相关对象必须进行更新,通过验证以确保当前更新包含所有待更新活跃对象的更新包和转换函数,如果完整性验证通过,则继续进行下一步;否则,如果更新不完整,则产生异常信息,退出更新过程;步骤五,根据对象间运行时依赖信息以及安全对象更新条件,获得构件更新次序,包括单一构件所包含的各个对象之间的更新执行次序以及组成整个系统的各个构件所包含的对象之间的更新执行次序。
地址 200240上海市闵行区东川路800号