【技术实现步骤摘要】
本专利技术涉及一种计算机应用
的方法,具体是一种软件动态更新中确定实例对象转换次序的方法及系统。
技术介绍
软件构件技术的产生,使得可以依据一些关注分离规则将一个完整的应用程序划分成适当数目的软件构件模块。这些构件可以在不同的环境下独立开发和编译,并通过合适的组装方式来搭建实际的应用系统,由此使构件得以重用和共享,其使用寿命也不再像传统代码模块一样受限于某个应用程序。由于生存周期的延长,构件在其服役期间将可能需要得到更新,以便改进构件实现、提供新的功能、纠正设计错误及适应运行时环境的变化等。更为重要的是,在一些任务关键型应用领域,诸如金融数据处理系统、空中交通控制系统、航天探测器控制软件、网格和自治计算系统等,由于具有比较高的可用性需求,软件构件的更新必须在运行时完成而不导致系统的中断,也就是需要进行动态更新。动态更新将用构件运行时实例的新版本来取代旧版本,而构件的运行时实例是通过某些服务对象(或直接称对象)来实现的。因此,动态构件更新将被具体化为活跃对象的更新。通常,对单一构件而言,动态更新就是在运行时为其提供新版本构件实例,并由对应的转换函数依据各旧版本对象的当前状态,来初始化从属于该构件的所有新对象。但是,由于构件之间存在的交互依赖关系,完整的系统更新将往往包含不止一个构件的更新,而是要求转换相关旧版本构件提供的所有对象。并且由于高可用性需求,在更新过程中应当尽量避免应用的延迟。一种较为合理的更新方式是懒更新(lazy upgrade),对于每个活跃对象,都恰好在应用过程或者其他更新过程访问它之前进行转换,从而确保在更新开始之后才启动的应用不 ...
【技术保护点】
一种软件动态更新中确定实例对象转换次序的方法,其特征在于,包括以下步骤: 步骤一,服务调用监听:通过开发阶段向构件所包含的类文件中增加接口方法,在系统运行时监控该构件所提供全部服务对象的生存周期,获取这些方法的执行所产生的事件消息,得到对象引用信息和引用终止信息,对象引用信息是指在通过初始创建或服务引用而获取被调对象时,用于声明这一初始化事件的信息,对象引用信息包括:类别为引用生成的消息类别、被调对象的身份标识、主调对象的身份标识、被调对象初始创建的时间戳;引用终止信息是指在之前创建和引用的被调对象不再在主调对象中起作用时,用于宣告被调对象引用终止事件的信息,引用终止信息包括:类别为引用终止的消息类别、被调对象的身份标识、主调对象的身份标识、被调对象引用终止时的时间戳; 步骤二,分别比较对象引用信息中的被调对象的身份标识和主调对象的身份标识,当消息类别为引用生成,且被调对象的身份标识和主调对象的身份标识分别与另一对象引用信息完全相同,则认为该对象引用信息是冗余信息,删除该冗余的对象引用信息,然后将剩余不存在冗余的对象引用信息逐个与所有引用终止信息进行匹配性验证,若验证通过,则删除相匹配 ...
【技术特征摘要】
1.一种软件动态更新中确定实例对象转换次序的方法,其特征在于,包括以下步骤:步骤一,服务调用监听:通过开发阶段向构件所包含的类文件中增加接口方法,在系统运行时监控该构件所提供全部服务对象的生存周期,获取这些方法的执行所产生的事件消息,得到对象引用信息和引用终止信息,对象引用信息是指在通过初始创建或服务引用而获取被调对象时,用于声明这一初始化事件的信息,对象引用信息包括:类别为引用生成的消息类别、被调对象的身份标识、主调对象的身份标识、被调对象初始创建的时间戳;引用终止信息是指在之前创建和引用的被调对象不再在主调对象中起作用时,用于宣告被调对象引用终止事件的信息,引用终止信息包括:类别为引用终止的消息类别、被调对象的身份标识、主调对象的身份标识、被调对象引用终止时的时间戳;步骤二,分别比较对象引用信息中的被调对象的身份标识和主调对象的身份标识,当消息类别为引用生成,且被调对象的身份标识和主调对象的身份标识分别与另一对象引用信息完全相同,则认为该对象引用信息是冗余信息,删除该冗余的对象引用信息,然后将剩余不存在冗余的对象引用信息逐个与所有引用终止信息进行匹配性验证,若验证通过,则删除相匹配的对象引用信息和引用终止信息;若验证未通过,则保留该对象引用信息,得到当前实际存在的活跃对象的对象引用信息;步骤三,逐个比较对象引用信息中所包含的被调对象身份标识与主调对象身份标识,结合构件间静态依赖关系,区分各个对象引用信息的属性,即识别各个对象是否属于某一构件的内部对象的引用,或者是否属于不同构件间对象的引用,以获得系统运行时所有活跃对象的依赖关系;步骤四,当采用惰更新时,系统中的应用过程或其他对象转换正准备调用一个待更新的对象而触发具体对象更新,结合步骤三获得的活跃对象依赖关系验证更新的完整性,运用类型检查规则验证对象引用关系是否因不兼容接口的引入而受到影响,如果受到影响则相关对象必须进行更新,通过验证以确保当前更新包含所有待更新活跃对象的更新包和转换函数,如果完整性验证通过,则继续进行下一步;否则,如果更新不完整,则产生异常信息,退出更新过程;步骤五,根据对象间运行时依赖信息以及安全对象更新条件,获得构件更新次序,包括单一构件所包含的各个对象之间的更新执行次序以及组成整个系统的各个构件所包含的对象之间的更新执行次序。2、根据权利要求1所述的软件动态更新中确定实例对象转换次序的方法,其特征是,所述增加接口方法,包括:对象引用宣告方法和对象引用终止方法,这两类方法在编写构件类文件时由应用开发程序员手动添加,其中:对象引用宣告方法,其声明和定义方式相同于一般的类方法,对该方法的调用位于类的初始化模块,对象引用宣告方法最终将对象引用信息包含在消息事件中发送给服务调用监听模块,其中,初始化模块是指在一个类声明中包含的独立代码块,只要构造类的对象,初始化模块就会被执行;对象引用终止方法,其声明和定义方式相同于一般的类方法,对该方法的调用将由应用开发程序员手动设置,对象引用终止方法最终将引用终止信息包含在消息事件中发送给服务调用监听模块。3、根据权利要求1所述的软件动态更新中确定实例对象转换次序的方法,其特征是,所述对象的生存周期,是指从主调对象通过创建或服务引用而获取被调对象,一直到被调对象在主调对象中不再起作用时的一段时间,其中,主调对象是指请求服务的其他对象,被调对象则指当前对象。4、根据权利要求1所述的软件动态更新中确定实例对象转换次序的方法,其特征是,所述匹...
【专利技术属性】
技术研发人员:徐小辉,黄林鹏,王德俊,王欣,
申请(专利权)人:上海交通大学,
类型:发明
国别省市:31[中国|上海]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。