一种远程快速实现用电信息采集终端软件更新的方法及系统与流程

文档序号:17474170发布日期:2019-04-20 06:00阅读:178来源:国知局
一种远程快速实现用电信息采集终端软件更新的方法及系统与流程

本发明涉及用电信息采集终端软件更新技术领域,并且更具体地,涉及一种远程快速实现用电信息采集终端软件更新的方法及系统。



背景技术:

在用电信息采集系统中,终端设备承担着具体采集功能的实现。但是,由于采集数据、协议和功能需求的不断扩充和升级,产品面临着较为频繁的软件升级要求,并且通常为批量升级。

目前,由于各个终端厂家的软件包格式尚不统一,导致远程软件升级策略无法统一,存在的问题主要包括:1.部分厂家使用的软件升级包规模较大,远程升级时,网络传输数据量较大,升级效率低;2.部分厂家使用经过裁剪的规模较小的专用升级包,但是由于包格式不统一,远程升级无法实现统一策略的自动化升级,人为依赖较多;3.现有终端的远程升级无法支持软件版本的远程自动回滚。

因此,需要一种远程快速实现用电信息采集终端软件更新的方法,以实现自动、快速的对软件进行更新。



技术实现要素:

本发明提出一种远程快速实现用电信息采集终端软件更新的方法及系统,以解决现有的用电信息采集终端软件更新繁琐、不能自动和快速的对软件进行更新的问题。

为了解决上述问题,根据本发明的一个方面,提供了一种远程快速实现用电信息采集终端软件更新的方法,其特征在于,所述方法包括:

利用远程网络通信建立服务器和终端设备之间的远程通信链路,以获取所述终端设备上的在运行软件包的控制信息;

根据所述在运行软件包的控制信息,确定与所述在运行软件包匹配的更新软件包;

对与所述在运行软件包匹配的更新软件包进行解包,以获取与所述在运行软件包匹配的更新软件包的控制信息;

将与所述在运行软件包匹配的更新软件包的控制信息和所述在运行软件包的控制信息进行比对获取差异信息,并根据差异信息从与所述在运行软件包匹配的更新软件包中提取待升级的程序文件以生成补丁文件;

将所述补丁文件通过所述远程通信链路下发至所述终端设备,以使所述终端设备根据升级处理逻辑完成软件包更新。

优选地,其中所述控制信息包括:软件包的包类型、软件包中所有程序文件的文件描述信息、软件包的版本信息,以及循环冗余crc校验和。

优选地,其中所述根据所述在运行软件包的控制信息,确定与所述在运行软件包匹配的更新软件包,包括:

读取服务器中所有更新软件包的文件头信息,从所述文件头信息中提取每个更新软件包的包类型;

将每个更新软件包的包类型和所述在运行软件包的包类型进行比对,确定与所述在运行软件包匹配的更新软件包。

优选地,其中所述方法还包括:

将所述在运行软件包的控制信息存储于第一临时文件中,将与所述在运行软件包匹配的更新软件包的控制信息存储于第二临时文件中。

优选地,其中所述方法还包括:

在所述第一临时文件中提取在运行软件包的版本信息,在所述第二临时文件中提取与所述在运行软件包匹配的更新软件包的版本信息,并根据预设的补丁文件命名规则,对所述补丁文件命名,以能够根据补丁文件名称在终端设备和/或服务器端快速识别补丁文件的版本信息。

优选地,其中所述命名规则为:将在运行软件包的版本信息和与在运行软件包匹配的更新软件包的版本信息进行拼接,以确定补丁文件名称。

优选地,其中所述终端设备根据接收的服务器端下发的软件版本更新探测消息上报在运行软件包的控制信息。

优选地,其中所述软件版本更新探测消息为:软件版本升级探测消息或软件版本回滚探测消息。

根据本发明的另一个方面,提供了一种远程快速实现用电信息采集终端软件更新的系统,其特征在于,所述系统包括:

第一控制信息获取单元,用于利用远程网络通信建立服务器和终端设备之间的远程通信链路,以获取所述终端设备上的在运行软件包的控制信息;

更新软件包确定单元,用于根据所述在运行软件包的控制信息,确定与所述在运行软件包匹配的更新软件包;

第二控制信息获取单元,用于对与所述在运行软件包匹配的更新软件包进行解包,以获取与所述在运行软件包匹配的更新软件包的控制信息;

补丁文件生成单元,用于将与所述在运行软件包匹配的更新软件包的控制信息和所述在运行软件包的控制信息进行比对获取差异信息,并根据差异信息从与所述在运行软件包匹配的更新软件包中提取待升级的程序文件以生成补丁文件;

软件包更新单元,用于将所述补丁文件通过所述远程通信链路下发至所述终端设备,以使所述终端设备根据升级处理逻辑完成软件包更新。

优选地,其中所述控制信息包括:软件包的包类型、软件包中所有程序文件的文件描述信息、软件包的版本信息,以及循环冗余crc校验和。

优选地,其中所述更新软件包确定单元,根据所述在运行软件包的控制信息,确定与所述在运行软件包匹配的更新软件包,包括:

更新软件包的包类型确定模块,用于读取服务器中所有更新软件包的文件头信息,从所述文件头信息中提取每个更新软件包的包类型;

更新软件包匹配模块,用于将每个更新软件包的包类型和所述在运行软件包的包类型进行比对,确定与所述在运行软件包匹配的更新软件包。

优选地,其中所述系统还包括:

存储单元,用于将所述在运行软件包的控制信息存储于第一临时文件中,将与所述在运行软件包匹配的更新软件包的控制信息存储于第二临时文件中。

优选地,其中所述系统还包括:

补丁文件命名单元,用于在所述第一临时文件中提取在运行软件包的版本信息,在所述第二临时文件中提取与所述在运行软件包匹配的更新软件包的版本信息,并根据预设的补丁文件命名规则,对所述补丁文件命名,以能够根据补丁文件名称在终端设备和/或服务器端快速识别补丁文件的版本信息。

优选地,其中所述命名规则为:将在运行软件包的版本信息和与在运行软件包匹配的更新软件包的版本信息进行拼接,以确定补丁文件名称。

优选地,其中在所述第一控制信息获取单元,所述终端设备根据接收的服务器端下发的软件版本更新探测消息上报在运行软件包的控制信息。

优选地,其中所述软件版本更新探测消息为:软件版本升级探测消息或软件版本回滚探测消息。

本发明提供了一种远程快速实现用电信息采集终端软件更新的方法及系统,建立服务器和终端设备之间的远程通信链路;根据在运行软件包的控制信息确定匹配的更新软件包,并进行解包获取更新软件包的控制信息;将匹配的更新软件包的控制信息和在运行软件包的控制信息进行比对获取差异信息,并根据差异信息生成补丁文件;将补丁文件通过所述远程通信链路下发至所述终端设备,以使所述终端设备根据升级处理逻辑完成软件包更新。本发明降低了终端厂家软件版本管理的复杂度,在进行软件更新时,只需要发布唯一的整体更新软件包即可,不需要额外制作专用升级包;通过动态获取在运行软件包的控制信息,并与匹配的更新软件包的控制文件进行比较以动态生成补丁文件,并快速实施软件更新,相比传统的更新方案,明显地减少了网络传输数据量,提高了升级效率;同时,本发明既可以从较低的软件包版本升级为较高的软件包版本,也可以从较高的软件包版本回退到较低的软件包版本,有效地解决了软件包版本无法回滚的问题。

附图说明

通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:

图1为根据本发明实施方式的远程快速实现用电信息采集终端软件更新的方法100的流程图;

图2为根据本发明实施方式的标准的软件包的结构示意图;

图3为根据本发明实施方式的自动生成软件补丁并进行软件更新的流程示意图;以及

图4为根据本发明实施方式的远程快速实现用电信息采集终端软件更新的系统400的结构示意图。

具体实施方式

现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。

除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。

图1为根据本发明实施方式的远程快速实现用电信息采集终端软件更新的方法100的流程图。如图1所示,本发明的实施方式提供的远程快速实现用电信息采集终端软件更新的方法降低了终端厂家软件版本管理的复杂度,在进行软件更新时,只需要发布唯一的整体更新软件包即可,不需要额外制作专用升级包;通过动态获取在运行软件包的控制信息,并与匹配的更新软件包的控制文件进行比较以动态生成补丁文件,并快速实施软件更新,相比传统的更新方案,明显地减少了网络传输数据量,提高了升级效率;同时,本发明既可以从较低的软件包版本升级为较高的软件包版本,也可以从较高的软件包版本回退到较低的软件包版本,有效地解决了软件包版本无法回滚的问题。本发明的实施方式提供的远程快速实现用电信息采集终端软件更新的方法100从步骤101处开始,在步骤101利用远程网络通信建立服务器和终端设备之间的远程通信链路,以获取所述终端设备上的在运行软件包的控制信息。

优选地,其中所述控制信息包括:软件包的包类型、软件包中所有程序文件的文件描述信息、软件包的版本信息,以及循环冗余crc校验和。

优选地,其中所述终端设备根据接收的服务器端下发的软件版本更新探测消息上报在运行软件包的控制信息。

优选地,其中所述软件版本更新探测消息为:软件版本升级探测消息或软件版本回滚探测消息。

优选地,在步骤102根据所述在运行软件包的控制信息,确定与所述在运行软件包匹配的更新软件包。

优选地,其中所述根据所述在运行软件包的控制信息,确定与所述在运行软件包匹配的更新软件包,包括:

读取服务器中所有更新软件包的文件头信息,从所述文件头信息中提取每个更新软件包的包类型;

将每个更新软件包的包类型和所述在运行软件包的包类型进行比对,确定与所述在运行软件包匹配的更新软件包。

优选地,在步骤103对与所述在运行软件包匹配的更新软件包进行解包,以获取与所述在运行软件包匹配的更新软件包的控制信息。

优选地,其中所述方法还包括:

将所述在运行软件包的控制信息存储于第一临时文件中,将与所述在运行软件包匹配的更新软件包的控制信息存储于第二临时文件中。

在本发明的实施方式中,利用packn表示更新软件包,所述更新软件包存储于服务器中,所述更新软件包既可以为相比于在运行软件包更高版本的软件包,也可以为性比喻在运行软件包低版本的软件包;利用packr表示在终端设备上的在运行软件包。在进行软件更新时,通过远程网络通信,在服务器与终端设备之间建立升级逻辑链路,即涉及一种时序的交互逻辑,终端设备根据接收的服务器端下发的软件版本更新探测消息上报在运行软件包的控制信息。其中,所述控制信息包括:软件包的包类型、软件包中所有程序文件的文件描述信息、软件包的版本信息,以及循环冗余crc校验和。即通过时序的交互逻辑提取出packr的所有控制信息,包括packr的包类型、packr中包含的所有程序文件的文件描述信息、版本信息和crc校验和,并存于第一临时文件rpackinfotmp.txt中。服务器端根据rpackinfotmp.txt中提取出的包类型rpacktype,对升级目录下所有更新软件包进行文件头信息读取,并将从文件头读取的包类型npacktype与rpacktype进行比对,直至匹配到相同的大包类型,从而确定与所述在运行软件包packr匹配的更新软件包packn。然后,对与终端设备在运行软件包匹配的更新软件包packn进行解包,获取packn的控制信息,包括:packn的包类型、packn包含的所有程序文件的文件描述信息、版本信息和crc校验和,并存于第二临时文件npackinfotmp.txt中。

图2为根据本发明实施方式的标准的软件包的结构示意图。如图2所示,一个标准的软件包包括:大包头描述结构和大包文件体,所示大包文件体由软件包中的每个程序文件组成。其中,大包头描述结构中包括每个程序文件的描述结构,每个程序文件包括:文件头描述结构和文件体,文件头描述结构包括该程序文件的文件描述信息。

优选地,在步骤104将与所述在运行软件包匹配的更新软件包的控制信息和所述在运行软件包的控制信息进行比对获取差异信息,并根据差异信息从与所述在运行软件包匹配的更新软件包中提取待升级的程序文件以生成补丁文件。

优选地,在步骤105将所述补丁文件通过所述远程通信链路下发至所述终端设备,以使所述终端设备根据升级处理逻辑完成软件包更新。

优选地,其中所述方法还包括:

在所述第一临时文件中提取在运行软件包的版本信息,在所述第二临时文件中提取与所述在运行软件包匹配的更新软件包的版本信息,并根据预设的补丁文件命名规则,对所述补丁文件命名,以能够根据补丁文件名称在终端设备和/或服务器端快速识别补丁文件的版本信息。

优选地,其中所述命名规则为:将在运行软件包的版本信息和与在运行软件包匹配的更新软件包的版本信息进行拼接,以确定补丁文件名称。

在本发明的实施方式中,通过比对单元将rpackinfotmp.txt与npackinfotmp.txt中的差异信息提取出来,并生成补丁文件,命名为patch_rxxnxx。其中,rxx代表在运行终端软件包的版本信息,从rpackinfotmp.txt中提取。nxx代表更新软件包的版本信息,从npackinfotmp.txt中提取。比对单元为一种专业版本信息比对工具,为一个可执行工具程序。补丁文件patch_rxxnxx包含了更新软件包packn与远程侧在运行软件包pacnr的所有差异点,通常情况下补丁文件的规模远远小于整个软件包的大小。然后,通过远程升级逻辑链路,服务器向终端设备下发升级补丁文件patch_rxxnxx,在终端设备侧获得patch_rxxnxx后,启用升级处理逻辑完成软件包升级。由于patch_rxxnxx的轻量级特征,远程传输的效率将会大幅度提高。同时,根据升级后的终端设备上包含补丁版本信息rxxnxx,能够方便快速地在终端设备界面或服务器端识别版本补丁信息。

以下具体举例说明本发明的实施方式

在本发明的实施方式中,以图2所述的标准的软件包结构为前提。其中,由大包头描述结构确定大包的整体属性,包括大包版本信息、大包类型、大包数据crc校验和等。大包文件体构成了大包的主体,由所有程序文件拼接而成。其中,每个程序文件在大包中具有单独的文件头描述结构,主要用于确定每个程序文件的版本信息、唯一的文件标识id、crc校验和、文件长度信息、文件描述信息等。

图3为根据本发明实施方式的自动生成软件补丁并进行软件更新的流程示意图。如图3所示,实施例的拓扑结构包括主站和多个分布式部署的用电信息采集终端,以远程通信链路进行交互。其中主站以m1表示,即服务器端,终端以t1到tn表示,交互过程或逻辑以p1到p7表示。

在本发明实施方式的远程更新软件的过程中,首先将更新软件包上传至主站升级目录m2下,更新软件包以packn表示,在主站的升级目录下可以放置任意多个更新软件包。主站通过更新命令触发对本台区的终端设备的扫描,即通过远程通信链路对本台区终端设备进行探测,以获取终端设备在运行软件包版本信息,如p4所示。

以图2t1终端为例,终端在运行软件包为packr,packr具有图2所示意的标准化大包结构,当终端接收到主站下发的升级探测消息时,终端上报packr的关键控制信息,如packr的包类型、包版本、crc校验和以及所有程序文件的描述信息,如p6所示。

主站获取到终端设备的上报消息后,启动主站的比对单元m3,遍历主站升级目录下所有的更新软件包,解析更新软件包的包头描述结构,提取出包类型字段,如图p1所示。其中,m3为本发明的实施方式所涉及的一种专用版本信息比对工具,是一个可执行工具程序。

然后,通过比对单元m3将更新软件包的包类型与终端设备上报的packr的包类型进行匹配,当匹配一致时即确定了主站升级目录下与终端设备唯一对应的更新软件包packn,即自动地、动态地确定了更新软件包packn。通过比对单元m3对更新软件包packn进行解包,并与终端设备上报的packr的版本控制信息比对,从而从packn中提取出需要更新的部分程序文件,并拼接为一个轻量级的补丁文件,补丁文件如图3中patch_rxxnxx所示。生成的patch_rxxnxx文件包含了更新软件包packn与远程侧在运行软件包pacnr的所有差异点。

最后,通过远程升级逻辑链路,主站向终端设备下发升级补丁文件patch_rxxnxx,在终端设备侧获得patch_rxxnxx后,启用升级处理逻辑完成软件包升级,如p7所示。

在通常此情况下,补丁文件的规模远远小于整个软件包的大小,由于patch_rxxnxx的轻量级特征,远程传输的效率大幅度提高。同时,升级后的终端设备上包含补丁版本信息rxxnxx,便于在终端设备界面或主站快速识别版本补丁信息。

图4为根据本发明实施方式的远程快速实现用电信息采集终端软件更新的系统400的结构示意图。如图4所示,本发明的实施方式提供的远程快速实现用电信息采集终端软件更新的系统400,包括:第一控制信息获取单元401、更新软件包确定单元402、第二控制信息获取单元403、补丁文件生成单元404和软件包更新单元405。优选地,所述第一控制信息获取单元401,用于利用远程网络通信建立服务器和终端设备之间的远程通信链路,以获取所述终端设备上的在运行软件包的控制信息。

优选地,其中所述控制信息包括:软件包的包类型、软件包中所有程序文件的文件描述信息、软件包的版本信息,以及循环冗余crc校验和。

优选地,其中在所述第一控制信息获取单元401,所述终端设备根据接收的服务器端下发的软件版本更新探测消息上报在运行软件包的控制信息。优选地,其中所述软件版本更新探测消息为:软件版本升级探测消息或软件版本回滚探测消息。

优选地,所述更新软件包确定单元402,用于根据所述在运行软件包的控制信息,确定与所述在运行软件包匹配的更新软件包。

优选地,其中所述更新软件包确定单元402,根据所述在运行软件包的控制信息,确定与所述在运行软件包匹配的更新软件包,包括:更新软件包的包类型确定模块4021和更新软件包匹配模块4022。所述更新软件包的包类型确定模块4021,用于读取服务器中所有更新软件包的文件头信息,从所述文件头信息中提取每个更新软件包的包类型。所述更新软件包匹配模块4022,用于将每个更新软件包的包类型和所述在运行软件包的包类型进行比对,确定与所述在运行软件包匹配的更新软件包。

优选地,所述第二控制信息获取单元403,用于对与所述在运行软件包匹配的更新软件包进行解包,以获取与所述在运行软件包匹配的更新软件包的控制信息。

优选地,所述补丁文件生成单元404,用于将与所述在运行软件包匹配的更新软件包的控制信息和所述在运行软件包的控制信息进行比对获取差异信息,并根据差异信息从与所述在运行软件包匹配的更新软件包中提取待升级的程序文件以生成补丁文件。

优选地,其中所述系统还包括:存储单元,用于将所述在运行软件包的控制信息存储于第一临时文件中,将与所述在运行软件包匹配的更新软件包的控制信息存储于第二临时文件中。

优选地,其中所述系统还包括:补丁文件命名单元,用于在所述第一临时文件中提取在运行软件包的版本信息,在所述第二临时文件中提取与所述在运行软件包匹配的更新软件包的版本信息,并根据预设的补丁文件命名规则,对所述补丁文件命名,以能够根据补丁文件名称在终端设备和/或服务器端快速识别补丁文件的版本信息。优选地,其中所述命名规则为:将在运行软件包的版本信息和与在运行软件包匹配的更新软件包的版本信息进行拼接,以确定补丁文件名称。

优选地,所述软件包更新单元405,用于将所述补丁文件通过所述远程通信链路下发至所述终端设备,以使所述终端设备根据升级处理逻辑完成软件包更新。

本发明的实施例的用于远程快速实现用电信息采集终端软件更新的系统400与本发明的另一个实施例的用于一种远程快速实现用电信息采集终端软件更新的方法100相对应,在此不再赘述。

已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。

通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。

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