掌桥专利:专业的专利平台
掌桥专利
首页

一种基于标签列表的软件升降级方法

文献发布时间:2023-06-19 10:35:20


一种基于标签列表的软件升降级方法

技术领域

本发明涉及软件升降级技术领域,尤其涉及一种基于标签列表的软件升降级方法。

背景技术

随着软件功能的不断完善与更新,对不同版本的软件进行升降级成为一种比较常见的技术。软件的升降级主要包括:软件差异升级、版权的快速切换和版本发布约束。现有的技术存在如下缺陷:

软件差异升级:对于计算机桌面应用程序而言,软件在线自动升级功能往往是必不可少的,目前主流的桌面应用程序自动升级策略是重新下载最新的安装包,然后重新安装整个客户端。这种方式虽然简单直观,但是缺陷也很明显。比如,即使整个客户端有100M,而本次更新仅仅只是修改了一个1KB大小的dll(动态链接库),那也意味着要重新下载100M的全部内容。这对带宽是极大的浪费,相应地也增加了客户茫然等待的时间,给用户极差的体验。

版本快速切换:对于计算机桌面应用程序存在很多版本,版本间快速切换往往是需要的,软件从高版本降级到低版本或者从低版本升级到高版本,目前主流版本切换策略是把以前安装的旧版本客户端先卸载,然后重新安装新的客户端版本,版本切换时间较长,给用户造成极差的体验,不能实现任意版本间的快速切换。

版本发布约束:计算机桌面应用程序存在很多版本,版本发布约束往往是需要的,目前主流版本发布策略是随意发布、没有约束,没有授权的用户也可以实现版本升级。这种方式虽然简单直观,但是缺陷也很明显。比如,版本发布可能存在随意发布、用户版本推送没有机制,软件版本和用户之间没有对应关系的情况,增加了软件版本发布安全性能风险,没有实现版本的安全、约束、可靠、渐进式发布管理。

因此,急需一种新的技术改进来解决上述问题。

发明内容

本发明的目的在于克服上述现有技术的问题,提供了一种基于标签列表的软件升降级方法,包括update_client.exe客户端升级程序、softwareConfig.exe客户端配置工具和update_Server.exe服务端升级程序,其是独立于被升级的软件版本应用程序以外的单独一套客户端/服务器架构的升级程序,可以支持跨语言、跨平台。update_client.exe客户端升级程序采用socket套接字通讯技术和update_server.exe服务端升级程序建立通讯连接,从而可以请求服务端升级程序执行任务处理,服务端支持客户端高并发同时在线请求;softwareConfig.exe客户端配置工具同理采用socket连接服务端升级程序,管理维护着所有软件版本的上传、修改、删除、标签定义和管理等整个生命周期。

上述目的是通过以下技术方案来实现:

一种基于标签列表的软件升降级方法,包括:

S101软件版本信息获取,update_client.exe客户端升级程序根据本地标签列表信息请求update_server.exe服务端升级程序获取匹配的软件版本信息列表,所述update_server.exe服务端升级程序接收所述软件版本信息列表并匹配可以授权访问的软件版本信息列表返回,所述update_client.exe客户端升级程序根据获取到的软件版本信息列表进行远程下载;用户首次下载为完整下载,后续都为差异下载;

S102版本差异计算分析,所述update_client.exe客户端升级程序将本地最新软件版本并与用户选择下载的目标软件版本文件内容md5差异比较分析,计算得出差异文件列表;请求所述update_server.exe服务端升级程序下载所述差异文件列表对应的差异文件;

S103升级程序自升级,所述update_server.exe服务端升级程序接收所述update_client.exe客户端升级程序请求,读取差异文件的文件流并Zip压缩后返回给所述update_client.exe客户端升级程序,所述update_client.exe客户端升级程序接收所述update_server.exe服务端升级程序返回的Zip压缩文件流并解压缩写入本地文件,并通过文件内容的md5值校验本地软件版本与目标软件版本的一致性,待所述update_client.exe客户端升级程序校验正确完毕,通过启动本地文件拷贝应用程序实现新版本文件覆盖替换,同时备份旧版本的文件到备份目录。

优选的,所述update_client.exe客户端升级程序采用socket套接字通讯技术和所述update_server.exe服务端升级程序建立通讯连接,请求执行任务处理,服务端支持客户端高并发同时在线请求。

优选的,所述客户端的所有软件版本的上传、修改和删除等都通过softwareConfig.exe客户端配置工具维护,所述softwareConfig.exe客户端配置工具采用socket套接字通讯技术和所述update_server.exe服务端升级程序建立通讯连接,请求执行任务处理。

优选的,所述update_client.exe客户端升级程序、所述update_server.exe服务端升级程序和所述softwareConfig.exe客户端配置工具,是独立于被升级的软件版本应用程序以外的单独一套客户端/服务器架构的升级程序,可以支持跨语言、跨平台。

优选的,所述update_client.exe客户端升级程序包括update_client.exe升级程序、Config.xml配置文件、tmpVersionInfo.txt缓存文件和dll动态链接库,所述update_client.exe客户端升级程序加载Config.xml配置文件和调用dll动态链接库实现软件版本的升降级功能。

优选的,所述update_server.exe服务端升级程序包括update_server.exe升级程序、Config.xml配置文件和dll动态链接库、数据库等数据文件,用于接收所述update_client.exe客户端升级程序请求并执行任务处理。

优选的,所述softwareConfig.exe客户端配置工具包括softwareConfig.exe程序、Config.xml配置文件和dll动态链接库等文件,维护着所有软件版本地上传、修改、删除、标签定义和管理等整个生命周期。

有益效果

本发明所提供的一种基于标签列表的软件升降级方法,包括如下优点:

1、通过分析计算软件版本之间的差异文件,仅对软件版本之间的差异文件进行下载,可以极大地节省网络带宽和下载时间,而无需整个安装包软件文件下载;

2、可以对本地多个软件版本之间进行快速启动切换,无需卸载原版本软件然后安装新版本软件,可以实现快速切换和本地启动,支持版本切换记忆;

3、可以实现对软件版本发布约束并授权,版本上传时事先定义好软件版本授权的用户,上传后只有授权的客户端用户才被允许访问对应软件版本信息并实现软件下载。

4、可以统计软件下载分步区域、下载次数、下载软件版本信息等;

附图说明

图1为本发明所述一种基于标签列表的软件升降级方法的流程图;

图2为本发明所述一种基于标签列表的软件升降级方法的软件版本信息获取流程图;

图3为本发明所述一种基于标签列表的软件升降级方法的软件版本差异计算分析流程图;

图4为本发明所述一种基于标签列表的软件升降级方法的软件升级程序自升级流程图。

具体实施方式

下面根据附图和实施例对本发明作进一步详细说明。

如图1所示,一种基于标签列表的软件升降级方法,包括update_client.exe客户端升级程序、softwareConfig.exe客户端配置工具和update_server.exe服务端升级程序,其是独立于被升级的软件版本应用程序以外的单独一套客户端/服务器架构的升级程序,可以支持跨语言、跨平台。update_client.exe客户端升级程序采用socket套接字通讯技术和update_server.exe服务端升级程序建立通讯连接,从而可以请求服务端升级程序执行任务处理,服务端支持客户端高并发同时在线请求;softwareConfig.exe客户端配置工具同理采用socket连接服务端升级程序,管理维护着所有软件版本的上传、修改、删除等整个生命周期。具体方法包括:

步骤S101软件版本信息获取,update_client.exe客户端升级程序根据本地标签列表信息请求update_server.exe服务端升级程序获取匹配的软件版本信息列表,所述update_server.exe服务端升级程序接收所述软件版本信息列表并匹配可以授权访问的软件版本信息列表返回,所述update_client.exe客户端升级程序根据获取到的软件版本信息列表进行远程下载;用户首次下载为完整下载,后续都为差异下载;

具体的,如图2所示,update_client.exe客户端升级程序根据本地标签列表信息请求update_server.exe服务端升级程序获取匹配的软件版本信息列表,update_server.exe服务端升级程序接收客户端标签列表信息并匹配可以授权访问的软件版本信息返回,update_client.exe客户端升级程序可以根据获取到的软件版本信息列表进行远程下载;用户首次下载为完整下载,后续都为差异下载。

步骤S102版本差异计算分析,所述update_client.exe客户端升级程序将本地最新软件版本并与用户选择下载的目标软件版本文件内容md5差异比较分析,计算得出差异文件列表;请求所述update_server.exe服务端升级程序下载所述差异文件列表对应的差异文件;

具体的,如图3所示,update_client.exe客户端升级程序将本地最新软件版本并与用户选择下载的目标软件版本文件内容md5差异比较分析,计算得出差异文件列表,包括文件新增、删除、修改。update_client.exe客户端升级程序根据差异文件信息列表(新增、修改),请求服务端升级程序下载差异文件,客户端首次下载时本地无软件版本则需要完整下载,有本地软件版本后续下载都是将用户选择目标软件版本与本地最新软件版本文件信息差异比较,升级或降级仅需要下载差异文件,而无需下载整个软件版本文件,大大地提高了软件下载速度,节省了网络带宽。

步骤S103升级程序自升级,所述update_server.exe服务端升级程序接收所述update_client.exe客户端升级程序请求,读取差异文件的文件流并Zip压缩后返回给所述update_client.exe客户端升级程序,所述update_client.exe客户端升级程序接收所述update_server.exe服务端升级程序返回的Zip压缩文件流并解压缩写入本地文件,并通过文件内容的md5值校验本地软件版本与目标软件版本的一致性,待所述update_client.exe客户端升级程序校验正确完毕,通过启动本地文件拷贝应用程序实现新版本文件覆盖替换,同时备份旧版本的文件到备份目录。

具体的,如图4所示,update_client.exe客户端升级程序将自身软件版本号socket套接字网络请求发送给update_server.exe服务端升级程序,update_server.exe服务端升级程序比较最新版本的客户端升级程序软件版本和客户端升级程序版本,判断是否需要升级并返回给客户端升级程序;若客户端升级程序需要升级,会推送新版本客户端升级程序信息,由用户选择是否需要升级;若用户选择升级,则会向服务端升级程序请求下载差异文件,服务端升级程序接收客户端升级程序请求,读取差异文件的文件流并Zip压缩后返回给客户端升级程序,客户端升级程序接收服务端升级程序返回的Zip压缩文件流并解压缩写入本地文件,并通过文件内容的md5值校验本地版本与目标版本的一致性。待客户端升级程序校验正确完毕,通过启动本地文件拷贝应用程序实现新版本文件覆盖替换,同时备份旧版本的文件到备份目录,以防止升级失败可以版本回退。

作为本实施例的说明,所述update_client.exe客户端升级程序包括update_client.exe升级程序、Config.xml配置文件、tmpVersionInfo.txt缓存文件和dll动态链接库,主要功能是通过socket通讯技术和服务端升级程序建立套接字通讯链接,从而请求服务端升级程序任务处理。所述update_client.exe客户端升级程序加载Config.xml配置文件和调用dll动态链接库实现软件版本的升降级功能。

update_client.exe客户端升级程序包括软件版本间差异文件比较、版本差异下载、标签列表授权访问和标签加密混淆、升级程序自升级、新版本的推送、本地版本切换、版本信息缓存、下载码管理、临时下载码等,具体如下:

1)差异文件比较:通过版本文件的md5值差异比较计算文件是否修改,软件版本差异文件类型主要包括文件新增、文件删除、文件修改,新增和修改文件都视为差异文件需要远程下载。

2)版本差异下载:通过差异计算获取差异文件,从本地拷贝软件版本之间相同的文件,请求服务端下载软件版本之间的差异文件。客户端首次下载软件版本为完整下载,后续下载都为差异下载,差异计算原则是根据本地最新软件版本与用户选择的目标软件版本差异计算差异文件信息,并实现合成目标版本文件。

3)标签列表授权:每个客户端都有授权的标签列表,服务端软件版本对应允许访问的授权标签列表,客户端只有合法的授权标签才能推送到匹配的软件版本列表。

4)标签列表加密:每个客户端授权的标签都通过加密混淆以字符串的形式存放在客户端Config.xml配置文件,客户端升级程序通过标签列表请求服务端升级程序推送匹配的软件版本列表。

5)升级程序升级:当客户端升级程序检测到自身有升级更新时,服务端升级程序响应客户端升级程序自升级并版本比较,客户端升级程序下载并升级客户端升级程序并执行自身版本更新,同时备份旧版本客户端升级程序文件。

6)新版本的推送:客户端升级程序启动时会自动向服务端升级程序请求本地最新版本,由服务端升级程序比较并判断客户端升级程序是否有更新版本,若可以升级则自动推送提示首次下载提示,由用户选择是否需要升级,同时可以忽略本次升级。每次启动本地客户端软件版本时,后台程序都会在后台静默检测有无新版本客户端,有新版本会自动推送提示。

7)本地版本切换:可以对服务端远程下载的多个本地软件版本进行启动切换、删除。

8)版本信息缓存:在客户端升级程序离线或网速极低的情况下,可以快速显示上次正常浏览状态下的软件版本信息,而不会无法显示,但此模式下无法远程下载软件版本,只能本地切换,待后续连接上服务端升级程序或接收到服务端升级程序返回的软件版本信息后再次刷新客户端升级程序软件版本信息并再次缓存。

9)下载码管理:对标签进行持久化维护,可以增加、删除、修改标签,并自动刷新更新后标签对应的软件版本信息,维护后的标签持久化保存,待下次再启动客户端升级程序还是生效。

10)临时下载码:对标签进行临时的维护,可以增加、删除、修改标签,并自动刷新更新后标签对应的软件版本信息,维护后的标签临时化保存,待下次再启动客户端升级程序不再生效。

所述update_server.exe服务端升级程序包括update_server.exe升级程序、Config.xml配置文件和dll动态链接库、数据库等数据文件,用于接收所述update_client.exe客户端升级程序请求并执行任务处理。

服务端升级程序包括版本标签解析、登录用户管理、标签模块管理、软件版本管理、客户端程序自升级、版本信息推送、在线下载用户、下载信息日志等功能,具体如下:

1)版本标签解析:服务端升级程序根据配置文件自动解析软件版本对应标签列表信息,并自动映射所有软件版本文件信息并进行缓存。

2)登录用户管理:服务端升级程序可以对softwareConfig.exe客户端配置工具进行授权用户登录并分配用户相应权限,用户管理主要包括用户增加、删除、修改,只有授权的用户才能登录客户端配置工具并进行相关的访问权限操作。

3)标签模块管理:服务端升级程序可以对软件版本自定义标签,包括标签增加、删除、修改,并可以定义标签等级是普通标签还是重要标签,重要标签只有管理员权限才能维护。

4)软件版本管理:服务端升级程序可以对sofewareConfig.exe客户端配置工具进行软件版本管理,包括软件版本上传、修改、删除。

5)客户端程序自升级:支持客户端升级程序请求本地升级程序版本与服务端升级程序最新升级程序版本比较,并判断客户端升级程序是否可以升级。

6)版本信息推送:客户端升级程序每次请求服务端升级程序软件版本信息,服务端升级程序过滤并匹配客户端升级程序标签列表对应的软件版本,并返回相应的软件版本信息,并支持软件版本之间版本说明历史迭代。

7)在线下载用户:服务端升级程序可以在线显示客户端升级程序的IP地址和端口号等。

8)下载信息日志:服务端升级程序可以搜集客户端升级程序下载信息,包括IP地址、下载城市、操作系统信息、下载软件版本、自身程序版本、标签列表信息等供后台数据挖掘

所述softwareConfig.exe客户端配置工具包括softwareConfig.exe程序、Config.xml配置文件和d1l动态链接库等文件,通过socket套接字连接服务端升级程序请求并执行任务处理,维护着所有软件版本地上传、修改、删除等整个生命周期。

softwareConfig.exe客户端配置工具包括用户模块管理、软件版本管理、标签模块管理、产品维护管理、软件版本过滤等,具体如下:

1)用户模块管理:客户端配置工具可以对用户进行管理,包括用户增加、删除、修改,并可以分配用户权限。配置工具不同的模块都有相应的访问权限,只有符合权限的用户才可以进行操作,从而加强了安全性,限制了用户操作。

2)软件版本管理:客户端配置工具可以对软件进行管理,包括软件上传、删除、修改。上传软件版本时需要事先制作Zip格式软件版本压缩包、授权软件版本标签列表信息、填写软件版本说明信息。修改软件版本包括修改版本说明、标签列表,修改完自动刷新最新信息。

3)标签模块管理:客户端配置工具可以对标签进行管理,包括标签增加、删除、修改,并可以定义标签属性,普通标签还是重要标签,重要标签只有管理员才能维护。

4)产品维护管理:客户端配置工具可以对所有软件进行管理,分别可以连接不同的软件产品执行不同的软件版本维护等,一个客户端配置工具对应连接多个服务端升级程序。

5)软件版本过滤:可以根据软件版本信息、标签信息等多角度、多维度地筛选软件版本。

作为本实施例的进一步说明,如下:

软件版本信息获取主要包括:update_client.exe客户端升级程序通过本地配置文件中加密过的授权标签列表信息向update_server.exe服务端升级程序动态获取匹配的软件版本信息列表并显示软件版本和版本说明等信息。update_client.exe客户端升级程序请求服务端升级程序软件版本,update_server.exe服务端升级程序根据客户端升级程序标签过滤并检索匹配的软件版本,动态响应并返回给客户端升级程序,update_client.exe客户端升级程序可以显示update_server.exe服务端升级程序推送到的软件版本信息和说明。通过softwareConfig.exe客户端配置工具可以定义软件版本和授权的标签列表,标签可以约束限制推送软件版本信息。

软件差异文件下载主要包括:update_client.exe客户端升级程序通过标签授权访问匹配的软件版本信息,根据本地最新软件版本与服务端目标软件版本文件内容的md5值计算差异文件,请求update_server.exe服务端升级程序下载差异文件列表,服务端接收差异文件下载请求并读取文件流返回。

软件版本差异文件信息主要包括差异文件的路径、文件大小、文件md5值、差异类型,其中md5值代表文件内容的md5值,可以根据md5值可以判断文件是否篡改。差异类型主要包括新增文件,删除文件、修改文件,新增文件和修改文件都需要向服务端升级程序请求下载差异文件,而删除的文件是本地版本特有的文件,可以选择删除或不删除模式。本地最新的软件版本和远程目标版本之间相同的文件只需本地拷贝而无需远程下载,差异文件则需要向服务端升级程序请求下载并缓存到本地目录,最后合成相同文件和差异文件,此种下载方式仅需要下载版本间修改的文件,而不需要下载软件版本所有文件,极大地缩短了下载时间和节省了网络带宽。

软件升级程序自升级主要包括:update_client.exe客户端升级程序每次启动都会将其自身版本号socket套接字网络连接发给update_server.exe服务端升级程序,update_server.exe服务端升级程序通过版本号比较判断update_client.exe客户端升级程序是否需要下载升级,并由用户选择是否需要升级;若服务端发布新版本客户端升级程序时,客户端升级程序请求下载新版本升级程序并缓存到临时目录,通过覆盖替换更新删除旧版本文件,安装新版本文件实现update_client.exe客户端升级程序自升级功能,每次升级都会备份旧版本文件。

签列表授权主要包括:softwareConfig.exe配置工具上传软件版本时为每个软件版本预先定义了客户端可以授权访问的标签列表,客户端请求标签必须与定义的软件版本标签列表匹配才能动态推送到版本信息列表,没有授权的标签无法访问软件版本信息,从而实现对软件版本的有效管理。

新版本软件检测主要包括:update_client.exe客户端应用程序启动时,会在后台静默启动客户端升级程序update_client.exe,而客户端升级程序会根据应用程序软件版本与授权的标签匹配的服务端升级程序update_server.exe最新的应用程序版本进行比较,若有新的软件版本会推送给客户端升级程序,由用户选择是否软件升级。

本地软件版本启动切换主要包括:当需要频繁启动多个软件版本时,本地可以实现对多个软件版本进行快速启动切换,而无需卸载旧版本安装新版本。客户端本地已有的软件版本直接可以启动切换,而本地没有的软件版本可以远程下载,下载完成后续可以直接本地启动切换。

软件版本生命周期管理主要包括:softwareConfig.exe配置工具可以对所有软件版本进行有效管理,包括软件版本上传、版本删除、版本修改。上传版本时可以预先定义软件版本对应的标签列表并填写版本说明,上传后可以修改软件版本说明和对应的标签列表并支持版本删除。

以上所述仅为说明本发明的实施方式,并不用于限制本发明,对于本领域的技术人员来说,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种基于标签列表的软件升降级方法
  • 一种基于神经网络分类的软件信息站点快速标签推荐方法
技术分类

06120112607965