运行程序的热修复方法及装置与流程

文档序号:14990224发布日期:2018-07-20 22:04阅读:235来源:国知局

本发明涉及计算机技术领域,具体涉及一种运行程序的热修复方法及装置。



背景技术:

目前,当服务端的线上运行程序出现问题(例如运行的程序文件存在漏洞bug)时,由于其修复过程通常需要依次经历程序的开发环境、预发环境以及发布等过程,因此存在程序修复过程耗时较长的问题(通常在半小时以上,当运行机器较多时,还会花费数小时甚至更多时间),给程序开发以及用户使用都带来诸多不便,同时还有可能给开发商造成较大的资产损失以及信誉损失。

针对上述存在的问题,现有技术中通过热部署技术以及热加载技术来对运行程序进行动态更新。但是,热部署技术以及热加载技术存在以下局限:热部署技术(例如tomcat热部署模块)通常需要重新加载整个应用,其所耗时长与重启服务器的时长相差无几,并不能有效解决运行程序修复耗时过长的问题;而热加载技术通常存在程序修改限制较大(例如hotswap,只允许修改方法体,不允许增加新协议,不允许新增字段、方法以及不允许修改方法签名等,极大限制了解决问题的类型)、安装复杂(例如jrebel与jvm强耦合,安装较为复杂)、维护不便(例如osgi)以及脚本不适用(例如groovy一般只能用于修复自身脚本问题,对于其它脚本则不适用)等诸多问题,在此基础上也无法有效解决运行程序修复耗时较长的问题。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种运行程序的热修复方法及装置。

根据本发明的一个方面,提供了一种运行程序的热修复方法,包括:根据数据访问请求,查询配置信息;判断配置信息是否包含提供数据访问服务的程序的更新配置信息;其中,更新配置信息记录有将第一程序类文件替换为经修复后的第二程序类文件的信息;若判断结果为是,则根据更新配置信息获取并加载第二程序类文件;在运行系统中运行第二程序类文件的可执行程序以响应数据访问请求。

可选地,更新配置信息还记录有:第二程序类文件在分布式文件系统中的存储路径;

根据更新配置信息获取并加载第二程序类文件的步骤进一步包括:

根据存储路径访问分布式文件系统,获取第二程序类文件;

利用程序类加载器加载第二程序类文件,生成可执行程序。

可选地,存储在分布式文件系统中的第二程序类文件按照预设命名规则进行命名,预设命名规则以版本信息为依据;

根据存储路径访问分布式文件系统,获取第二程序类文件的步骤进一步包括:

根据预设命名规则在分布式文件系统中查找版本信息最高的第二程序类文件。

可选地,在根据数据访问请求,查询配置信息之前,方法进一步包括:在第一程序类文件的预设位置插入代理程序代码;其中,预设位置根据预先设置的标识进行识别。

根据本发明的另一个方面,提供了一种运行程序的热修复装置,包括:查询模块,用于根据数据访问请求,查询配置信息;判断模块,用于判断配置信息是否包含提供数据访问服务的程序的更新配置信息;其中,更新配置信息记录有将第一程序类文件替换为经修复后的第二程序类文件的信息;加载模块,用于若判断结果为是,则根据更新配置信息获取并加载第二程序类文件;运行模块,用于在运行系统中运行第二程序类文件的可执行程序以响应数据访问请求。

可选地,更新配置信息还记录有:第二程序类文件在分布式文件系统中的存储路径;加载模块进一步包括:获取单元,用于根据存储路径访问分布式文件系统,获取第二程序类文件;加载单元,用于利用程序类加载器加载第二程序类文件,生成可执行程序。

可选地,存储在分布式文件系统中的第二程序类文件按照预设命名规则进行命名,预设命名规则以版本信息为依据;则获取单元进一步用于:根据预设命名规则在分布式文件系统中查找版本信息最高的第二程序类文件。

可选地,装置进一步包括:代理程序插入模块,用于在第一程序类文件的预设位置插入代理程序代码;其中,预设位置根据预先设置的标识进行识别。

依据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使所述处理器执行上述的运行程序的热修复方法对应的操作。

依据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述的运行程序的热修复方法对应的操作。

在本发明提供的运行程序的热修复方法及装置中,能够首先根据数据访问请求查询与该请求对应的配置信息,并根据查询结果判断配置信息是否包含提供数据访问服务的程序的更新配置信息;其中,更新配置信息记录有将第一程序类文件替换为经修复后的第二程序类文件的信息;若判断结果为是,则根据更新配置信息获取并加载第二程序类文件;在运行系统中运行第二程序类文件的可执行程序以响应数据访问请求。由此可见,本发明能够根据数据访问请求访问对应的配置信息,并根据配置信息中的更新配置信息对需要修复的程序类文件进行快速替换,大大缩短了运行程序的修复时间,其实现过程简单、操作灵活,给程序开发以及用户使用都带来诸多便利。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例一提供的一种运行程序的热修复方法的流程图;

图2示出了本发明实施例二提供的一种运行程序的热修复方法的流程图;

图3为示出了本发明实施例二提供的服务端内部流程交互示意图;

图4示出了本发明实施例三提供的一种运行程序的热修复装置的结构框图;

图5示出了本发明实施例四提供的一种运行程序的热修复装置的结构框图;

图6示出了根据本发明实施例六提供的一种计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了本发明实施例一提供的一种运行程序的热修复方法的流程图。如图1所示,该方法包括:

步骤s110:根据数据访问请求,查询配置信息。

其中,数据访问请求为用户端向服务端发送的数据访问请求,其用于访问服务端中的对应数据。在本步骤中,在接收到的数据访问请求时,并不直接根据数据访问请求访问对应数据,而是查询与该数据访问请求对应的配置信息。其中,上述配置信息为动态更新的配置信息。实际操作中,程序员可以根据程序的运行情况在配置文件中修改配置信息。具体实施中,本发明对动态修改配置信息的方式不作限定。

步骤s120:判断配置信息是否包含提供数据访问服务的程序的更新配置信息。

其中,更新配置信息记录有将第一程序类文件替换为经修复后的第二程序类文件的信息。其中,第一程序类文件为存在问题需要修复的程序类文件。在程序运行过程中当发现上述第一程序类文件运行有问题时,程序员在线下对该问题进行修复得到经修复后的第二程序类文件,并在第一程序类文件的配置信息中记录将第一程序类文件替换为经修复后的第二程序类文件的更新配置信息。在本步骤中,判断上述配置信息中是否包含提供数据访问服务的程序的更新配置信息,若判断结果为否,则说明数据访问服务的程序无需修复,即第一程序类文件可正常运行,执行步骤s150;若判断结果为是,则执行步骤s130。

步骤s130:根据更新配置信息获取并加载第二程序类文件。

具体地,若步骤s120中的判断结果为是,则说明需要对提供数据访问服务的程序的进行修复。在本步骤中,实现修复的过程具体为将加载对象由第一程序类文件替换为经修复后的第二程序类文件,其具体实现过程如下:在执行本步骤之前,由于第二类程序文件被预先上传至对应的文件系统(具体实施中,这一步骤由程序员执行),则在本步骤中,从上述文件系统中获取第二类程序文件并对其进行加载,生成第二程序类文件的可执行程序(具体实施中,可以为程序代码等可执行程序),以供后续步骤(对应步骤s140)在运行系统中运行上述可执行程序。其中,上传第二程序类文件的文件系统可以由本领域技术人员根据实际情况进行选择,本发明对此不作限定。第二类程序文件的获取方式可以有多种,例如在第二程序类文件的命名中加入版本信息,根据版本信息获取对应的第二类程序文件并对其进行加载等等,本发明对第二类程序文件的获取方式不作限定。

步骤s140:在运行系统中运行第二程序类文件的可执行程序以响应数据访问请求。

具体地,在运行系统中运行步骤s130中生成的可执行程序,并将运行结果返回用户端,以响应用户端发送的数据访问请求,使修复程序的生效。

步骤s150:对提供数据访问服务的第一程序类文件进行加载,在运行系统中运行第一程序类文件的可执行程序以响应数据访问请求。

具体实施中,上述各个步骤中的查询、判断、加载以及运行的过程可以在几秒之内完成,能够大大减少运行程序的修复时长,实现对运行程序中存在问题进行快速修复的目的。由此可见,在本发明提供的运行程序的热修复方法中,能够根据数据访问请求访问对应的配置信息,并根据配置信息中的更新配置信息对需要修复的程序类文件进行快速替换以实现在线上对存在问题的运行程序进行快速修复的目的。本发明能够大大缩短运行程序的修复时长,其实现过程简单、操作灵活,给程序开发以及用户使用都带来诸多便利。

图2示出了本发明实施例二提供的一种运行程序的热修复方法的流程图。图3为示出了本发明服务端内部流程交互示意图。其中,本实施例中的程序在aspectj工具中运行,aspectj中设置了专门的编译器用于生成遵守java字节编码规范的class文件。如图2所示,该方法包括:

步骤s210:在第一程序类文件的预设位置插入代理程序代码,其中,上述预设位置根据预先设置的标识进行识别。

其中,第一程序类文件为线上运行出现问题的程序类文件,例如存在漏洞bug的程序类文件等。在本实施例中,先根据预先设置的标识对第一程序类文件的预设位置进行识别,然后在上述预设位置处插入代理程序代码以生成与第一程序类文件对应的代理类,其中,上述代理类用于触发执行后续步骤(对应步骤s220-步骤s260)中的各个步骤。上述预设位置一般在第一程序类文件的方法入口处,或者也可以在程序类文件的其它位置(根据实际情况而定),本发明对此不作限定。预先设置的标识以及代理程序代码的具体形式可以由本领域技术人员根据实际情况进行设置,本发明对此不作限定。

具体实施中,若第一程序类文件为classa。则在执行本步骤时,首先根据预先设置的标识对第一程序类文件classa中的预设位置进行识别,然后在上述预设位置处插入代理程序代码以生成classa的代理类classproxy。其中,classproxy用于触发执行后续步骤(对应步骤s220-步骤s260)中的各个步骤。

步骤s220:根据数据访问请求,查询配置信息。

其中,数据访问请求为用户端向服务端发送的数据访问请求,其用于访问服务端中的对应数据。在接收到用户端发送的数据访问请求之后,代理类根据上述数据访问请求在服务端的配置模块中查询与该数据访问请求对应的配置信息(具体实施中classproxy根据接收到的数据访问请求,首先在服务端的配置模块中查询classa的配置信息)。其中,上述配置信息为动态更新的配置信息,实际操作中,程序员可以根据程序的运行情况将存在问题的程序的修复信息(例如修复信息可以为“用classa’替换classa”等类似信息,其中,classa’为classa的经修复后的序类文件)记录在上述配置信息中。

其中,对动态修改配置信息的方式可以有多种,例如通过开源软件对配置信息动态进行修改等,本发明对动态修改配置信息的方式不作限定。

步骤s230:判断配置信息是否包含提供数据访问服务的程序的更新配置信息。

其中,更新配置信息记录有将第一程序类文件替换为经修复后的第二程序类文件的信息。具体地,当第一程序类文件的程序运行出现问题时,程序员在线下对上述问题做以修复得到经修复后的第二程序类文件,并在第一程序类文件的配置信息中配置将第一程序类文件替换为经修复后的第二程序类文件的更新配置信息(具体实施中,更新配置信息可以为“用classa’替换classa”等类似信息。其中,classa为存在问题的程序类文件,classa’为对classa中的存在问题进行修复后的文件)。由此可见,当配置信息中存在对应的更新配置信息时,则说明数据访问服务的程序需要进行修复,因此在本步骤中,针对步骤s220中查询到的配置信息,判断上述配置信息中是否包含上述更新配置信息,若判断结果为否,则说明数据访问服务的程序无需修复,即第一程序类文件可正常运行,执行步骤s260;若判断结果为是,则执行步骤240。

步骤s240:根据存储路径访问分布式文件系统,获取第二程序类文件,并利用程序类加载器加载第二程序类文件,生成可执行程序。

程序员在得到经修复后的第二程序类文件后,进一步将上述第二程序类文件上传至对应的分布式文件系统(具体实施中可以为oss系统等类似系统),并将第二程序类文件在上述分布式文件系统中的存储路径记录在第一程序类文件的更新配置信息中。则在本步骤中,实现修复的过程具体为:将加载对象由第一程序类文件替换为经修复后的第二程序类文件,其具体过程可以通过如下两步执行:首先,根据更新配置信息中记录的存储路径访问分布式文件系统以获取对应的第二程序类文件(以图3为例,若提供数据访问服务的程序为第一程序类文件a,则根据更新配置信息中记录的存储路径对应访问分布式文件系统中的第二程序类文件a’);其次,在对应的加载模块中对获取的第二程序类文件进行加载以生成可执行程序。具体实施中,加载模块可以为classloader,其为jvm(javavirtualmachine,java虚拟机)的文件加载模块。

其中,为了能够更加准确地获取对应的第二程序类文件,可以按照预设命名规则对第二程序类文件进行命名。具体实施中,上述命名规则以版本信息为依据。例如,若第一程序类文件的命名为abcd.class,则第二程序类文件的命名为abcd_{version}.class,version为版本信息(即版本号)。若版本号为1,则第二程序类文件的命名为abcd_1.class;若版本号为2,则第二程序类文件的命名为abcd_2.class,等等依次类推。其中,上述version字段可以支持多次修改,则在查找并获取第二程序类文件时,根据预设命名规则在分布式文件系统中查找版本信息最高的第二程序类文件,例如,若同时存在命名为abcd.class和abcd_1.class的程序类文件,则获取abcd_1.class的程序类文件作为第二程序类文件;若同时存在命名为abcd_1.class和abcd_2.class的程序类文件,则获取命名abcd_2.class的程序类文件作为第二程序类文件。上述根据述预设命名规则查找第二程序类文件的处理方式能够快速准确识别并获取最新的经修复后的第二程序类文件,完成待修复程序类文件与经修复后的程序类文件之间的灵活替换。

步骤s250:在运行系统中运行第二程序类文件的可执行程序以响应数据访问请求。

具体地,获取并运行步骤s240中生成的可执行程序,并将运行结果返回用户端,以响应用户端发送的数据访问请求,使修复程序的生效。

步骤s260:对提供数据访问服务的第一程序类文件进行加载,在运行系统中运行第一程序类文件的可执行程序以响应数据访问请求。

具体实施中,上述各个步骤中的查询、判断、加载以及运行生效的过程可以在几秒之内完成,能够大大减少运行程序的修复时长,实现对运行程序中存在问题进行快速修复的目的。并且,本实施例能够将aspectj的静态代理功能和程序中类的加载机制进行结合,其不仅能够实现对任意java文件的修复,并且由于其执行逻辑仅有一种,提升了逻辑执行的安全性,风险性较低。由此可见,本发明提供的运行程序的热修复方法不仅能够大大缩短运行程序的修复时间,其实现过程简单、操作灵活,并且具有较高的安全性,给程序开发以及用户使用都带来诸多便利。

图4示出了本发明实施例三提供的一种运行程序的热修复装置的结构框图。如图4所示,该装置包括:查询模块41、判断模块42、加载模块43以及运行模块44。

查询模块41用于根据数据访问请求,查询配置信息。

判断模块42用于判断配置信息是否包含提供数据访问服务的程序的更新配置信息;其中,更新配置信息记录有将第一程序类文件替换为经修复后的第二程序类文件的信息。

加载模块43用于若判断结果为是,则根据更新配置信息获取并加载第二程序类文件,生成对应的可执行程序;若判断结果为否,则对提供数据访问服务的第一程序类文件进行加载,生成对应的可执行程序。

运行模块44用于在运行系统中运行上述可执行程序以响应数据访问请求。

图5示出了本发明实施例四提供的一种运行程序的热修复装置的结构框图。本实施例中的程序在aspectj工具中运行,由于aspectj中设置了专门的编译器用于生成遵守java字节编码规范的class文件,因此本实施例中的运行文件为class文件。如图5所示,该装置包括:查询模块51、判断模块52、加载模块53、运行模块54、以及代理程序插入模块55。其中,加载模块53进一步包括:获取单元531以及加载单元532。

查询模块51用于根据数据访问请求,查询配置信息。

判断模块52用于判断配置信息是否包含提供数据访问服务的程序的更新配置信息;其中,更新配置信息记录有将第一程序类文件替换为经修复后的第二程序类文件的信息。并且,更新配置信息还记录有:第二程序类文件在分布式文件系统中的存储路径。

加载模块53用于若判断结果为是,则根据更新配置信息获取并加载第二程序类文件,生成对应的可执行程序;若判断结果为否,则对提供数据访问服务的第一程序类文件进行加载,生成对应的可执行程序。

获取单元531用于根据存储路径访问分布式文件系统,获取第二程序类文件。其中,存储在分布式文件系统中的第二程序类文件按照预设命名规则进行命名,预设命名规则以版本信息为依据。

加载单元532用于利用程序类加载器加载第二程序类文件,生成可执行程序。

运行模块54用于在运行系统中运行上述可执行程序以响应数据访问请求。

代理程序插入模块55用于在第一程序类文件的预设位置插入代理程序代码;其中,预设位置根据预先设置的标识进行识别。

上述各个模块的具体结构和工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。

由此可见,在本发明提供的运行程序的热修复方法装置中,各个模块的执行过程可以在几秒之内完成,能够大大减少运行程序的修复时长,实现对运行程序中存在问题进行快速修复的目的。并且,本发明还能够将aspectj的静态代理功能和程序中类的加载机制进行结合,其不仅能够实现对任意java文件的修复,并且由于其执行逻辑仅有一种,提升了逻辑执行的安全性,风险性较低。由此可见,本发明提供的运行程序的热修复方法不仅能够大大缩短运行程序的修复时间,其实现过程简单、操作灵活,并且具有较高的安全性,给程序开发以及用户使用都带来诸多便利。

本申请实施例五提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的运行程序的热修复方法。

可执行指令具体可以用于使得处理器执行以下操作:

根据数据访问请求,查询配置信息;

判断配置信息是否包含提供数据访问服务的程序的更新配置信息;其中,更新配置信息记录有将第一程序类文件替换为经修复后的第二程序类文件的信息;

若判断结果为是,则根据更新配置信息获取并加载第二程序类文件;

在运行系统中运行第二程序类文件的可执行程序以响应数据访问请求。

在一种可选的方式中,更新配置信息还记录有:第二程序类文件在分布式文件系统中的存储路径;

则可执行指令进一步用于使得处理器执行以下操作:

根据存储路径访问分布式文件系统,获取第二程序类文件;

利用程序类加载器加载第二程序类文件,生成可执行程序。

在一种可选的方式中,存储在分布式文件系统中的第二程序类文件按照预设命名规则进行命名,预设命名规则以版本信息为依据;

则可执行指令进一步用于使得处理器执行以下操作:

根据预设命名规则在分布式文件系统中查找版本信息最高的第二程序类文件。

在一种可选的方式中,可执行指令还用于使得处理器执行以下操作:

在第一程序类文件的预设位置插入代理程序代码;其中,预设位置根据预先设置的标识进行识别。

图6示出了根据本发明实施例六的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。

如图6所示,该计算设备可以包括:处理器(processor)602、通信接口(communicationsinterface)604、存储器(memory)606、以及通信总线608。

其中:

处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。

通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器602,用于执行程序610,具体可以执行上述运行程序的热修复方法实施例中的相关步骤。

具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。

处理器602可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器606,用于存放程序610。存储器606可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序610具体可以用于使得处理器602执行以下操作:

根据数据访问请求,查询配置信息;

判断配置信息是否包含提供数据访问服务的程序的更新配置信息;其中,更新配置信息记录有将第一程序类文件替换为经修复后的第二程序类文件的信息;

若判断结果为是,则根据更新配置信息获取并加载第二程序类文件;

在运行系统中运行第二程序类文件的可执行程序以响应数据访问请求。

在一种可选的方式中,更新配置信息还记录有:第二程序类文件在分布式文件系统中的存储路径;

则程序610进一步用于使得处理器602执行以下操作:

根据存储路径访问分布式文件系统,获取第二程序类文件;

利用程序类加载器加载第二程序类文件,生成可执行程序。

在一种可选的方式中,存储在分布式文件系统中的第二程序类文件按照预设命名规则进行命名,预设命名规则以版本信息为依据;

则程序610进一步用于使得处理器602执行以下操作:根据预设命名规则在分布式文件系统中查找版本信息最高的第二程序类文件。

在一种可选的方式中,程序610还用于使得处理器602执行以下操作:

在第一程序类文件的预设位置插入代理程序代码;其中,预设位置根据预先设置的标识进行识别。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的运行程序的热修复装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1