一种局域网中应用程序的自动更新方法及系统与流程

文档序号:12463280阅读:375来源:国知局
一种局域网中应用程序的自动更新方法及系统与流程

本发明涉及一种软件更新技术,具体涉及一种局域网中应用程序的自动更新方法及系统。



背景技术:

在计算机终端中安装有大量应用程序,为了修正应用程序bug或者改进其功能,程序开发者会对程序进行升级更新。目前应用程序更新方案主要采用两种方式,一种方式是依靠软件管家提供应用程序更新,例如360软件管家,这种更新方式能够为各种应用程序提供更新,并且能够主动选择版本,但是这种更新方式需要手动安装软件管家,并且需要手动进行更新操作;另一种方式是在每个应用程序中设立更新子功能来实现,但这种更新方式无法实现对同一企业旗下的所有应用程序进行统一管理更新。

上述这两种更新方式能够满足一般的应用场景,却无法满足学校或者企业里比较常见的局域网中只有一台设备可连接外部网络的场景。针对这种场景,卡巴斯基为其病毒库更新提供了一种局域网升级方案。在该方案中,能够连接外部网络的设备(下称联网设备)通过外部网络更新自己的病毒库,并将更新文件保存在一个固定文件夹中,然后在该设备上配置下载服务器,局域网中的其他设备(下称未联网设备)直接连接到该下载服务器进行病毒库更新。虽然卡巴斯基的上述局域网升级方案能够实现局域网中各设备的软件更新,但仍存在如下缺点,1.未联网设备的更新完全依赖于局域网中的联网设备和下载服务器中是否存在更新文件;2.在应用程序更新场景下,一种更新方案(或更新策略)只能完成单一应用程序的更新,无法实现多个应用程序的更新,也无法解决低版本需要先升级到过渡版本才能升级到高版本时的版本匹配问题;3.未联网设备无法主动请求更新。



技术实现要素:

为了解决上述技术问题,本发明提供了一种局域网中应用程序的自动更新方法及系统,该方案能够避免现有局域网升级方案中未联网设备完全依赖局域网中的联网设备和下载服务器中存在更新文件才能实现升级的问题。

本发明提出的技术方案如下。

一种局域网中应用程序的自动更新方法,局域网中所有设备安装的所有可更新应用程序分成多个可更新应用程序组,每个可更新应用程序组中包括一个或多个可更新应用程序,每个可更新应用程序组包括的所有可更新应用程序由同一单位或个人在其远程更新服务器上提供更新信息;

局域网中安装该可更新应用程序的设备为该可更新应用程序所在的可更新应用程序组安装一个更新服务,该更新服务用于更新该可更新应用程序组包括的所有可更新应用程序;

该方法包括以下步骤:

设备中安装的可更新应用程序向与该可更新应用程序所在的可更新应用程序组对应的更新服务发送更新请求;

该更新服务接收到该更新请求后,首先在局域网内查找是否存在该可更新应用程序的安装包,如果存在且安装包的版本高于该可更新应用程序的版本,则获取该安装包的信息;如果不存在或者安装包的版本低于或等于该可更新应用程序的版本,则通过局域网中的联网设备访问外部网络,在该可更新应用程序对应的远程更新服务器上查找是否存在该可更新应用程序的安装包,如果存在且安装包的版本高于该可更新应用程序的版本,则获取安装包;

使用获取的安装包对该发出更新请求的可更新应用程序进行更新。

进一步地,所述更新信息包含可更新应用程序的唯一标识符、安装包及其版本号;所述更新请求包含应用程序唯一标识符、应用程序当前版本号。

进一步地,局域网中联网设备安装的更新服务既可以为其上安装的与该更新服务对应的可更新应用程序组所包括的所有可更新应用程序提供更新,也可以为局域网中的未联网设备上安装的与该更新服务对应的可更新应用程序组所包括的所有可更新应用程序提供更新中转服务;局域网中未联网设备安装的更新服务为其上安装的与该更新服务对应的可更新应用程序组所包括的所有可更新应用程序提供更新。

进一步地,联网设备配备有内部更新服务器,用于保存局域网内各可更新应用程序的安装包及其版本号以及相应的应用程序唯一标识符,所述在局域网内查找是否存在该可更新应用程序的安装包,即在内部更新服务器上查找是否存在该可更新应用程序的安装包。

进一步地,所述如果存在且安装包的版本高于该可更新应用程序的版本,则获取该安装包的信息,具体包括如下子步骤:

该更新服务根据应用程序唯一标识符获取该应用程序的安装包的信息,该应用程序的安装包的信息包含应用程序唯一标识符和可更新版本号;如果存在多个该应用程序的安装包,则获取所有安装包的信息;

更新服务判断获取的安装包的信息中包含的可更新版本号是否高于应用程序当前版本号,如果安装包的信息中包含的可更新版本号高于应用程序当前版本号,则更新服务获取该安装包,并下载该安装包对应用程序进行更新,同时将应用程序的版本号变更为该安装包对应的版本号;如果存在多个安装包的信息中包含的可更新版本号高于应用程序当前版本号,则该更新服务按各安装包版本号的先后顺序下载安装包对应用程序进行更新,并且将应用程序的版本号变更为其中最新的版本号。

进一步地,所述如果不存在或者安装包的版本低于或等于该可更新应用程序的版本,则通过联网设备访问外部网络,在该可更新应用程序对应的远程更新服务器上查找是否存在该可更新应用程序的安装包,具体包括以下步骤:

若该设备为联网设备,联网设备的更新服务将该更新请求发送给与应用程序对应的远程更新服务器;若该设备为未联网设备,该未联网设备的更新服务将该更新请求转发给联网设备的更新服务,联网设备的更新服务接收到该未联网设备的更新服务转发的该更新请求后,将该更新请求发送给与应用程序对应的远程更新服务器;

该远程更新服务器根据接收到的更新请求,查找是否存在该可更新应用程序的安装包。

进一步地,在远程更新服务器上查找到存在该可更新应用程序的安装包时,由所述安装该可更新应用程序的设备的更新服务对该安装包的版本进行判断;

或者,在远程更新服务器上查找到存在该可更新应用程序的安装包时,由联网设备的与该可更新应用程序所在的可更新应用程序组对应的更新服务对该安装包的版本进行判断。

进一步地,该方法还包括:局域网中的每台设备安装可更新应用程序时,会检查该设备上是否已经安装有与该可更新应用程序所在的可更新应用程序组对应的更新服务,如果该设备上已经安装有与该可更新应用程序所在的可更新应用程序组对应的更新服务,则无需再次安装该更新服务;如果该设备上没有安装与该可更新应用程序所在的可更新应用程序组对应的更新服务,则在该设备上随该可更新应用程序安装与该可更新应用程序所在的可更新应用程序组对应的更新服务。

本发明还提出一种实现前述自动更新方法的系统,该系统包括一台连接外部网络的联网设备和一台或多台不直接连接外部网络的未联网设备,未联网设备与联网设备在局域网内互联;联网设备配备有内部更新服务器,用于保存局域网内各可更新应用程序的安装包及其版本号以及相应的应用程序唯一标识符,供局域网内的设备下载。

本发明还提出了一种局域网中应用程序的自动更新系统,局域网中所有设备安装的所有可更新应用程序分成多个可更新应用程序组,每个可更新应用程序组中包括一个或多个可更新应用程序,每个可更新应用程序组包括的所有可更新应用程序由同一单位或个人在其远程更新服务器上提供更新信息;

局域网中安装该可更新应用程序的设备为该可更新应用程序所在的可更新应用程序组安装一个更新服务,该更新服务用于更新该可更新应用程序组包括的所有可更新应用程序;

该系统包括以下模块:

更新请求发起模块:设备中安装的可更新应用程序向与该可更新应用程序所在的可更新应用程序组对应的更新服务发送更新请求;

安装包获取模块:该更新服务接收到该更新请求后,首先在局域网内查找是否存在该可更新应用程序的安装包,如果存在且安装包的版本高于该可更新应用程序的版本,则获取该安装包的信息;如果不存在或者安装包的版本低于或等于该可更新应用程序的版本,则通过局域网中的联网设备访问外部网络,在该可更新应用程序对应的远程更新服务器上查找是否存在该可更新应用程序的安装包,如果存在且安装包的版本高于该可更新应用程序的版本,则获取安装包;

更新模块:使用获取的安装包对该发出更新请求的可更新应用程序进行更新。

本发明的有益效果:

1.本发明通过局域网中未联网设备的应用程序主动发起更新请求,来进行该应用程序的更新,有效避免了现有局域网升级方案中未联网设备完全依赖局域网中的联网设备和下载服务器中存在更新文件才能实现升级的问题,从而可以保持应用程序为最新版本。

2.本发明通过在局域网内的每台设备上为同一单位或个人开发或管理的所有可更新应用程序配备一个更新服务,通过该更新服务实现同一单位或个人开发或管理的所有可更新应用程序的更新,因此无需对其中每个可更新应用程序都配置一套更新方案。

3.本发明通过在获取最新版本安装包的同时获取过渡版本的安装包,解决了低版本直接升级到最新版本时可能遇到的版本不匹配的问题。

附图说明

图1为本发明提出的局域网中应用程序的自动更新系统的结构框图;

图2为本发明提出的局域网中应用程序的自动更新方法的流程图;

图3为本发明提出的局域网中应用程序的自动更新系统的系统架构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。但本领域技术人员知晓,本发明并不局限于附图和以下实施例。

本发明提出的局域网中应用程序的自动更新系统如图1所示。局域网中的设备包括一台连接外部网络的联网设备和一台或多台不直接连接外部网络的未联网设备,未联网设备与联网设备在局域网内互联。联网设备和未联网设备对其上安装的可更新应用程序可以执行手动更新、自动更新,也可以执行差分更新、整包更新等操作,在执行自动更新操作时,未联网设备与联网设备的更新逻辑一致。

联网设备配备有内部更新服务器,用于保存局域网内各可更新应用程序的安装包及其版本号以及相应的应用程序唯一标识符(例如全局唯一标识符GUID),以供局域网内的各设备下载。

局域网中所有设备安装的所有可更新应用程序分成多个可更新应用程序组,每个可更新应用程序组中包括一个或多个可更新应用程序,每个可更新应用程序组包括的所有可更新应用程序由同一单位或个人在其远程更新服务器上提供更新信息,更新信息主要包含可更新应用程序的唯一标识符(例如全局唯一标识符GUID)、安装包及其版本号等,这里的安装包不仅包括可更新应用程序最新版本的安装包及其版本号,还包括升级到该最新版本的各个必要的过渡版本的安装包及其版本号,以避免出现低版本直接升级到最新版本时可能遇到的版本不匹配的问题。

局域网中安装该可更新应用程序的设备为该可更新应用程序所在的可更新应用程序组安装一个更新服务,该更新服务负责更新该可更新应用程序组包括的所有可更新应用程序,因此不需要对每个可更新应用程序都设置一套更新方案。局域网中的每台设备安装可更新应用程序时,会检查该设备上是否已经安装有与该可更新应用程序所在的可更新应用程序组对应的更新服务,如果该设备上已经安装有与该可更新应用程序所在的可更新应用程序组对应的更新服务,则无需再次安装该更新服务;如果该设备上没有安装与该可更新应用程序所在的可更新应用程序组对应的更新服务,则在该设备上随该可更新应用程序安装与该可更新应用程序所在的可更新应用程序组对应的更新服务。

联网设备通过更新服务既可以为其上安装的与该更新服务对应的可更新应用程序组所包括的所有可更新应用程序提供更新,也可以为未联网设备上安装的与该更新服务对应的可更新应用程序组所包括的所有可更新应用程序提供更新中转服务。未联网设备通过更新服务为其上安装的与该更新服务对应的可更新应用程序组所包括的所有可更新应用程序提供更新。

设备中安装的可更新应用程序向与该可更新应用程序所在的可更新应用程序组对应的更新服务发送更新请求,该更新服务接收到该更新请求后,首先在内部更新服务器中查找是否存在该可更新应用程序的安装包,如果存在且安装包的版本高于该可更新应用程序的版本,则获取该安装包的信息;如果不存在或者安装包的版本低于或等于该可更新应用程序的版本,则通过联网设备访问外部网络,在该可更新应用程序对应的远程更新服务器上查找是否存在该可更新应用程序的安装包,如果存在且安装包的版本高于该可更新应用程序的版本,则获取安装包;使用获取的安装包对该发出更新请求的可更新应用程序进行更新。

下面结合实施例对本发明提出的局域网中应用程序的自动更新方法进行描述。为了描述方便,以更新第一设备的应用程序A为例说明该方法,其中应用程序A为可更新应用程序,包括在第一可更新应用程序组中。

实施例1:

本实施例的局域网中应用程序的自动更新方法如图2所示。该自动更新方法包括如下步骤:

步骤S0:在第一设备中为第一可更新应用程序组安装更新服务A;

步骤S1:局域网中第一设备的应用程序A发送更新请求给更新服务A,该更新请求包含应用程序A唯一标识符(例如全局唯一标识符GUID)、应用程序A当前版本号等信息;

步骤S2:更新服务A根据应用程序A唯一标识符检查内部更新服务器中是否已经存在应用程序A的安装包;对于更新服务A检查到内部更新服务器中存在应用程序A的安装包并且其版本号高于应用程序A当前版本号的情况,进行步骤S211~步骤S212:对于更新服务A检查到内部更新服务器中不存在应用程序A的安装包,或者检查到的应用程序A的安装包的可更新版本号低于或等于应用程序A当前版本号的情况,进行步骤S221~步骤S223:

其中,步骤S211:更新服务A根据应用程序A唯一标识符获取该应用程序A的安装包的信息,该应用程序A的安装包的信息包含应用程序A唯一标识符、可更新版本号、是否为差分更新等信息;如果存在多个该应用程序A的安装包,则获取所有安装包的上述信息;

步骤S212:更新服务A判断获取的安装包的信息中包含的可更新版本号是否高于应用程序A当前版本号,如果安装包的信息中包含的可更新版本号高于应用程序A当前版本号,则更新服务A获取该安装包,并下载该安装包对应用程序A进行更新,同时将应用程序A的版本号变更为该安装包对应的版本号。如果存在多个安装包的信息中包含的可更新版本号高于应用程序A当前版本号,则更新服务A按各安装包版本号的先后顺序下载安装包对应用程序A进行更新,并且将应用程序A的版本号变更为其中最新的版本号。其中,如果是差分更新,获取的安装包为差分包,如果不是差分更新,则获取的安装包为整包。

步骤S221:若第一设备为联网设备,第一设备的更新服务A将该更新请求发送给与应用程序A对应的远程更新服务器;若第一设备为未联网设备,第一设备的更新服务A将该更新请求转发给联网设备的更新服务A,联网设备的更新服务A接收到第一设备的更新服务A转发的该更新请求后,将该更新请求及第一设备的信息保存到联网设备,并将该更新请求发送给与应用程序A对应的远程更新服务器;其中,第一设备的信息包含第一设备的唯一标识符;

步骤S222:联网设备的更新服务A从该远程更新服务器获取到更新应答信息后,将该更新应答信息保存在联网设备,其中更新应答信息包含应用程序A唯一标识符、可更新版本号、是否为差分更新等信息;可更新版本号可以为一个或多个,对于多个可更新版本号的情形,则表明应用程序A存在从当前版本到最新版本的必要的过渡版本;

步骤S223:若第一设备为联网设备,第一设备的更新服务A根据获取的该更新应答信息判断是否存在应用程序A的更新,若更新应答信息中的可更新版本号高于应用程序A当前版本号,则判断存在应用程序A的更新,否则判断不存在应用程序A的更新,并通知第一设备的应用程序A其不存在更新。如果存在应用程序A的更新,则第一设备的更新服务A从该远程更新服务器获取该应用程序A的安装包,并保存在内部更新服务器中,第一设备的更新服务A使用该安装包对应用程序A进行更新,同时将应用程序A的版本号变更为该安装包对应的版本号;如果存在多个可更新版本号高于应用程序A当前版本号,则更新服务A获取该多个可更新版本号的安装包并保存在内部更新服务器中,并按各安装包版本号的先后顺序使用各安装包对应用程序A进行更新,同时将应用程序A的版本号变更为其中最新的版本号。其中,如果是差分更新,获取的安装包为差分包,如果不是差分更新,则获取的安装包为整包;

若第一设备为未联网设备,联网设备的更新服务A转发获取的更新应答信息给第一设备的更新服务A,第一设备的更新服务根据获取的该更新应答信息判断是否存在应用程序A的更新,若更新应答信息中的可更新版本号高于应用程序A当前版本号,则判断存在应用程序A的更新,否则判断不存在应用程序A的更新。如果存在应用程序A的更新,则第一设备的更新服务A通知联网设备的更新服务A从该远程更新服务器获取该应用程序A的安装包,联网设备的更新服务A从该远程更新服务器获取该应用程序A的安装包后将其保存在内部更新服务器中,第一设备的更新服务A从内部更新服务器下载该安装包对应用程序A进行更新,同时将应用程序A的版本号变更为该安装包对应的版本号;如果存在多个高于应用程序A当前版本号的可更新版本号,则针对每个可更新版本号获取相应的安装包,并将获取的安装包保存在内部更新服务器中,第一设备的更新服务A按各安装包版本号的先后顺序从内部更新服务器下载安装包对应用程序A进行更新,并且将应用程序A的版本号变更为其中最新的版本号。

实施例2:

本实施例与实施例1的不同之处在于,在实施例1的步骤S223中,若第一设备为未联网设备,联网设备的更新服务A根据获取的该更新应答信息判断是否存在应用程序A的更新,而不是联网设备的更新服务A转发获取的更新应答信息给第一设备的更新服务A,由第一设备的更新服务A根据获取的该更新应答信息判断是否存在应用程序A的更新。

若更新应答信息中的可更新版本号高于应用程序A当前版本号,则联网设备的更新服务A判断存在应用程序A的更新,并通知第一设备的更新服务A应用程序A存在更新,否则判断不存在应用程序A的更新,并通知第一设备的更新服务A应用程序A不存在更新;如果存在应用程序A的更新,则联网设备的更新服务A从该远程更新服务器获取该应用程序A的安装包,并保存在内部更新服务器中,第一设备的更新服务A从内部更新服务器下载该安装包对应用程序A进行更新,同时将应用程序A的版本号变更为该安装包对应的版本号;如果存在多个高于应用程序A当前版本号的可更新版本号,则针对每个可更新版本号获取相应的安装包,并将获取的安装包保存在内部更新服务器中,第一设备的更新服务A按各安装包版本号的先后顺序从内部更新服务器下载安装包对应用程序A进行更新,并且将应用程序A的版本号变更为其中最新的版本号。

本实施例与实施例1相同之处不再赘述。

本发明还提出了一种局域网中应用程序的自动更新系统,局域网中所有设备安装的所有可更新应用程序分成多个可更新应用程序组,每个可更新应用程序组中包括一个或多个可更新应用程序,每个可更新应用程序组包括的所有可更新应用程序由同一单位或个人在其远程更新服务器上提供更新信息;局域网中安装该可更新应用程序的设备为该可更新应用程序所在的可更新应用程序组安装一个更新服务,该更新服务用于更新该可更新应用程序组包括的所有可更新应用程序。

该系统如图3所示,包括以下模块:

更新请求发起模块:设备中安装的可更新应用程序向与该可更新应用程序所在的可更新应用程序组对应的更新服务发送更新请求;

安装包获取模块:该更新服务接收到该更新请求后,首先在局域网内查找是否存在该可更新应用程序的安装包,如果存在且安装包的版本高于该可更新应用程序的版本,则获取该安装包的信息;如果不存在或者安装包的版本低于或等于该可更新应用程序的版本,则通过局域网中的联网设备访问外部网络,在该可更新应用程序对应的远程更新服务器上查找是否存在该可更新应用程序的安装包,如果存在且安装包的版本高于该可更新应用程序的版本,则获取安装包;

更新模块:使用获取的安装包对该发出更新请求的可更新应用程序进行更新。

所述更新信息包含可更新应用程序的唯一标识符、安装包及其版本号;所述更新请求包含应用程序唯一标识符、应用程序当前版本号。

局域网中联网设备安装的更新服务既可以为其上安装的与该更新服务对应的可更新应用程序组所包括的所有可更新应用程序提供更新,也可以为局域网中的未联网设备上安装的与该更新服务对应的可更新应用程序组所包括的所有可更新应用程序提供更新中转服务;局域网中未联网设备安装的更新服务为其上安装的与该更新服务对应的可更新应用程序组所包括的所有可更新应用程序提供更新。

联网设备配备有内部更新服务器,用于保存局域网内各可更新应用程序的安装包及其版本号以及相应的应用程序唯一标识符,所述在局域网内查找是否存在该可更新应用程序的安装包,即在内部更新服务器上查找是否存在该可更新应用程序的安装包。

所述如果存在且安装包的版本高于该可更新应用程序的版本,则获取该安装包的信息,具体为:

该更新服务根据应用程序唯一标识符获取该应用程序的安装包的信息,该应用程序的安装包的信息包含应用程序唯一标识符和可更新版本号;如果存在多个该应用程序的安装包,则获取所有安装包的信息;

更新服务判断获取的安装包的信息中包含的可更新版本号是否高于应用程序当前版本号,如果安装包的信息中包含的可更新版本号高于应用程序当前版本号,则更新服务获取该安装包,并下载该安装包对应用程序进行更新,同时将应用程序的版本号变更为该安装包对应的版本号;如果存在多个安装包的信息中包含的可更新版本号高于应用程序当前版本号,则该更新服务按各安装包版本号的先后顺序下载安装包对应用程序进行更新,并且将应用程序的版本号变更为其中最新的版本号。

所述如果不存在或者安装包的版本低于或等于该可更新应用程序的版本,则通过联网设备访问外部网络,在该可更新应用程序对应的远程更新服务器上查找是否存在该可更新应用程序的安装包,具体为:

若该设备为联网设备,联网设备的更新服务将该更新请求发送给与应用程序对应的远程更新服务器;若该设备为未联网设备,该未联网设备的更新服务将该更新请求转发给联网设备的更新服务,联网设备的更新服务接收到该未联网设备的更新服务转发的该更新请求后,将该更新请求发送给与应用程序对应的远程更新服务器;

该远程更新服务器根据接收到的更新请求,查找是否存在该可更新应用程序的安装包。

在远程更新服务器上查找到存在该可更新应用程序的安装包时,由所述安装该可更新应用程序的设备的更新服务对该安装包的版本进行判断;

或者,在远程更新服务器上查找到存在该可更新应用程序的安装包时,由联网设备的与该可更新应用程序所在的可更新应用程序组对应的更新服务对该安装包的版本进行判断。

局域网中的每台设备安装可更新应用程序时,会检查该设备上是否已经安装有与该可更新应用程序所在的可更新应用程序组对应的更新服务,如果该设备上已经安装有与该可更新应用程序所在的可更新应用程序组对应的更新服务,则无需再次安装该更新服务;如果该设备上没有安装与该可更新应用程序所在的可更新应用程序组对应的更新服务,则在该设备上随该可更新应用程序安装与该可更新应用程序所在的可更新应用程序组对应的更新服务。

以上,对本发明的实施方式进行了说明。但是,本发明不限定于上述实施方式。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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