软件更新系统、空中固件更新系统和更新客户端装置的方法与流程

文档序号:17534292发布日期:2019-04-29 13:49阅读:170来源:国知局
软件更新系统、空中固件更新系统和更新客户端装置的方法与流程

本发明涉及这样一种软件更新系统,其例如包括能够将非操作系统(os)更新传送到客户端装置的客户端更新服务器。本发明还涉及这样一种空中固件更新系统,其例如包括能够将非os更新传送到客户端装置的客户端更新服务器。本发明还涉及这样一种更新客户端装置的方法,其例如包括将非os更新传送到客户端装置的客户端更新服务器。



背景技术:

在无线通信领域,对于一些应用,已知的是提供所谓的空中固件(fota)系统。fota系统用于使更新系统中的启用通信的装置更新到其最新固件版本。空中更新方法使得能够利用与服务器(例如,专用固件更新服务器)的无线连接来更新具有通信能力的装置。因此,装置可以保持在原位,无需为更新而取回或召回它们或物理连接到另一计算装置。然而,空中方法伴随有若干限制。例如,从通信角度装置需要是可达的;需要足够的数据传送速率;以及装置需要足够的电力供应(例如,在电池供电的信标的情况下)。

因此,考虑到关于更新服务器与装置之间的连接的有限带宽、以及与装置执行的正常任务相比装置的无线接收消耗相对大量的电力的事实,发送到装置的更新通常被处理。在这方面,例如,可以通过使用适合于所涉及的数据类型的打包算法将更新进行打包来处理更新。然而,这又导致要求接收经处理的更新的装置必须能够逆向进行数据处理以便使用更新。

此外,可能无法获得对使用更新系统的所有装置共同的更新。相反,可能基于个体来要求装置的更新,或者超过一个装置的组可能分别要求应用不同的更新。另外,在一些场景中,为了更新的目的,装置可以由超过一个服务器访问,因此给定装置的固件配置并非由单个更新服务器独占控制。另外,对于一些装置,例如通过将装置连到另一计算装置以应用更新,可以在本地更新固件。

因此,尽管更新服务器(以下称为“内容服务器”)可以被编程以记录并因此跟踪给定装置的固件的更新状态和版本,但是这种方法假设内容服务器是为了更新的目的而可以访问装置的唯一服务器,因此假设内容服务器所保持的信息总是最新的。类似地,尽管为了将更新从内容服务器传送到装置,内容服务器可以维持各个装置或装置组支持的进程的记录,但是由于内容服务器未必是可以访问给定装置存储的进程的唯一实体,因此为了更新的目的,装置或装置组可以由另一服务器或其它服务器控制或者可以在本地被访问。这可能导致在内容服务器的检测范围之外对装置进行了改变,因此内容服务器支持的进程的记录变得不准确。

为了克服这些困难,已知装置更新过程可以要求内容服务器询问待更新的装置以便识别对更新服务器可用并且由待更新的装置支持的处理技术,内容服务器可以使用该处理技术来以处理过的形式传送装置的更新。然而,该已知更新过程假设可以找到共同的处理技术。另外,对装置的询问要求装置响应于关于装置所支持的处理技术的查询而将数据发送回内容服务器,从而装置消耗电力。



技术实现要素:

根据本发明的第一方面,提供了一种软件更新系统,包括:客户端装置,其具有待更新的非os系统软件;客户端更新服务器,其远离客户端装置设置并且能够与客户端装置通信;以及装置能力管理器,其被配置为访问与客户端装置有关的技术能力数据;其中,客户端更新服务器被配置为检索对客户端装置的非os系统软件的至少一部分进行更新所需的第一更新;客户端更新服务器包括更新优化器,该更新优化器被配置为与装置能力管理器协作以确定应用于第一更新以优化客户端装置的更新的组织方案,所确定的组织方案与客户端装置的技术能力兼容,并且更新优化器被配置为识别从根据所选择的组织方案组织的第一更新的实例恢复第一更新的恢复功能;装置能力管理器被配置为使用能力数据以便确定客户端装置实现更新优化器所识别的恢复功能所需的必要功能;客户端更新服务器包括更新包生成器,该更新包生成器响应更新优化器并被配置为生成包括第二更新的更新包以使得客户端装置能够支持恢复功能;客户端更新服务器包括更新通信单元,该更新通信单元被配置为将更新包传送到客户端装置;并且客户端装置被配置为接收更新包并且提取并安装第二更新。

更新包生成器可以包括更新优化器。

客户端更新服务器可以被配置为指示更新通信单元在第一更新之前将更新包传送到客户端装置。

客户端更新服务器可以被配置为指示更新通信单元将更新包和根据所选择的组织方案组织的第一更新的实例分别传送到客户端装置。

更新通信单元可以被配置为向预期接收更新包的客户端装置发送建议,以方便从根据所选择的组织方案组织的第一更新的实例恢复第一更新。

更新通信单元可以被配置为在更新包之前发送根据所选择的组织方案组织的第一更新的实例,并且对客户端装置的所述建议伴随根据所选择的组织方案组织的第一更新的实例。

客户端更新服务器可以被配置为从更新储存库检索第一更新。

客户端更新服务器可以包括可由装置能力管理器访问的能力数据储存库,该能力数据储存库可以记录客户端装置所支持的现有功能。

装置能力管理器可以被配置为通过参考能力数据储存库来确定客户端装置实现恢复功能所需的必要功能。

装置能力管理器可以被配置为将客户端装置所需的目标功能与客户端装置所支持的现有功能进行比较,以便识别构成客户端装置所需的必要功能的功能差别。

客户端更新服务器可以包括功能储存库;该功能储存库可以包括多个操作功能。

更新包生成器可以被配置为访问功能储存库以便从功能储存库检索操作功能,以便提供功能差别中的至少部分功能。

第二更新可以包括操作功能。

能力数据可以包括客户端装置的技术能力和客户端装置所支持的现有功能。

更新包可以包括根据所选择的组织方案组织的第一更新。

更新包生成器可以被配置为生成包括根据所选择的组织方案组织的第一更新的另一更新包。

更新优化器可以被配置为识别另一恢复功能,该另一恢复功能要与所述恢复功能结合以用于从根据所选择的组织方案组织的第一更新的实例恢复第一更新。

非os系统软件可以是固件。

客户端装置可以包括通信模块并且第一更新可以涉及该通信模块。

组织方案可以包括下列中的至少一项:压缩方案;加密方案;数据差分方案;以及delta编码方案。

更新包生成器可以通过响应由装置能力管理器确定的、客户端装置所需的必要功能来响应装置能力管理器。

装置能力管理器确定所需必要功能可以是确定客户端装置实现由更新优化器识别的恢复功能所缺少的功能。

能力数据可以作为下列中的一种更多种存储:表、数组和/或数据库。

更新优化器可以被配置为基于以下标准中的一项或更多项来选择组织方案:易失性存储器使用;非易失性存储器使用;存储器的物理块的大小;与第一更新的实现关联的改变的分布程度;更新包的大小;和/或客户端装置所需的处理时间。

恢复功能可以是编译代码、编译脚本、可解译代码或可解译脚本。

第一更新可以涉及客户端装置的非更新维护功能方面。

所述功能方面可以是:生成随机数的方法、计算校验和的方法、将后续更新包中跟随的数据解码的方法、将所述更新包解压缩的方法、gnss接收器的功能、声码器插件、新的特征、新的at命令或安全补丁。

客户端更新服务器可以被配置为识别对包括客户端装置的客户端装置组进行更新所需的第一更新,并且更新通信单元可以被配置为将更新包无线地传送到客户端装置组的所有客户端装置。

所述更新包和/或第一更新可以免于要求来自客户端装置的响应的查询。

更新包生成器可以包括delta文件生成器。

更新包生成器可以被配置为通过参考能力数据储存库来确定客户端装置实现恢复功能所需的必要功能。

更新包生成器可以被配置为将客户端装置所需的目标功能与客户端装置所支持的现有功能进行比较,以便识别构成客户端装置所需的必要功能的功能差别。

装置能力管理器可以被配置为响应于从更新包生成器接收到功能列表请求消息,确定客户端装置或一类客户端装置所拥有的功能。

客户端更新服务器可以包括开放移动联盟数据管理(omadm)服务器以及可由omadm服务器访问的能力数据储存库,该能力数据储存库记录客户端装置所支持的现有功能。

omadm服务器可以被配置为响应于从更新包生成器接收到功能列表请求消息,确定客户端装置或一类客户端装置所拥有的功能。

装置能力管理器可以被配置为接收功能列表请求消息并响应于此,向omadm服务器发送功能列表请求;omadm服务器可以被配置为响应于从装置能力管理器接收到功能列表请求消息,确定客户端装置或一类客户端装置所拥有的功能。

所述更新包可以根据数据结构定义被传送到客户端装置,该数据结构定义可以包括:为包含所述更新包而预留的所需功能内容字段。

所述另一更新包可以根据数据结构定义被传送到客户端装置,该数据结构定义可以包括:为包含所述另一更新包而预留的所需功能内容字段。

数据结构定义还可以包括:为包含根据所选择的组织方案组织的第一更新的实例而预留的更新内容字段。

数据结构定义还可以包括:为包含与恢复根据所选择的组织方案组织的第一更新的实例关联的功能的标识符而预留的功能指示符字段;并且该功能指示符字段可以被配置为伴随所需功能内容字段。

数据结构定义还可以包括:为包含所述另一更新包而预留的另一所需功能内容字段。

数据结构定义还可以包括:为包含另一组织的更新的实例而预留的另一更新内容字段。

数据结构定义还可以包括:为包含与恢复所述另一组织的更新的实例关联的另一功能的另一标识符而预留的另一功能指示符字段;并且该另一功能指示符字段可以被配置为伴随所述另一所需功能内容字段。

根据本发明的第二方面,提供了一种空中固件更新系统,该空中固件更新系统包括上面关于本发明的第一方面所阐述的软件更新系统。

根据本发明的第四方面,提供了一种更新客户端装置的方法,该客户端装置具有待更新的非os系统软件,该方法包括以下步骤:访问与客户端装置有关的能力数据;检索对客户端装置的非os系统软件的至少一部分进行更新所需的第一更新;确定应用于第一更新以优化客户端装置的更新的组织方案,所确定的组织方案与客户端装置的技术能力兼容;识别从根据所选择的组织方案组织的第一更新的实例恢复第一更新的恢复功能;使用能力数据以便确定客户端装置实现由更新优化器识别的恢复功能所需的必要功能;响应于确定客户端装置所需的必要功能,生成更新包,该更新包包括使客户端装置能够支持恢复功能的第二更新;将更新包传送到客户端装置;以及客户端装置接收更新包并且提取并安装第二更新

因此,可以提供一种软件更新系统和更新客户端装置的方法,其在一些情况下不再需要询问客户端装置,从而避免了由于带宽不足而遇到的通信困难和/或需要节省客户端装置所消耗的电力。另外,该系统和方法优化了向客户端装置传送更新,同时确保了客户端更新服务器和客户端装置二者支持对更新应用共同的组织方案以方便与客户端装置的通信。此外,客户端装置被置于装置可以支持对于客户端装置的处理能力而言最佳的组织方案的条件下。另外,该系统和方法方便内容的最小更新,从而降低例如由于物理扰动(例如,无线电信号损失和/或功率损失)而引起数据传送中断的风险。由于存在损坏风险的数据较少,因此正在传送的数据损坏的风险也降低,并且存储更新包所需的内存量也减少。

附图说明

现在将参照附图仅作为示例描述本发明的至少一个实施方式,附图中:

图1是构成本发明的实施方式的软件更新系统的示意图;

图2是图1的系统中所使用的客户端装置的示意图;

图3是构成本发明的另一实施方式的、图1的系统的第一部分的操作方法的第一部分流程图;

图4是图3的方法的第二部分流程图;

图5是构成本发明的另一实施方式的、图4的方法的第二部分的替代的流程图;

图6是用于图1的系统的不同数据结构定义结构的示意图;

图7是构成本发明的又一实施方式的、图1的系统的第二部分的操作方法的流程图;

图8是构成本发明的另一实施方式的、图1的系统的替代架构的示意图;

图9是构成本发明的另一实施方式的、图1的系统的又一架构的示意图;

图10是构成本发明的又一实施方式的、图1的系统的另一架构的示意图;以及

图11是构成本发明的又一实施方式的、图1的系统的又一架构的示意图。

具体实施方式

贯穿以下描述,相同的标号将用于标识相同的部分。

参照图1,软件更新系统100(例如,空中固件更新系统)包括能够经由无线通信接口108与客户端装置104或客户端装置组106通信的客户端更新服务器102,客户端装置104或客户端装置组106远离客户端更新服务器102设置。各个客户端装置包括可更新的相应非os软件110。更新服务器102可以是任何合适的计算装置,例如个人计算机(pc)、工作站、迷你计算机、大型计算机等。更新服务器102可以包括例如任何合适的总线配置、联网平台和/或多处理器平台。可以使用各种操作系统,包括unixtm、solaristm、linuxtm、windowstm、macostm或任何其它合适的操作系统。

可选地,提供软件更新系统100外部的另一更新服务器112(例如,设备制造商服务器),更新服务器112能够经由无线通信接口108或另一无线通信接口114与一个或更多个客户端装置104通信。在这方面,客户端装置104包括无线通信模块(未示出)以从更新服务器112接收无线通信。

转向图2,在此示例中,客户端装置104是无线通信装置,例如蜂窝的用户设备(ue)单元,客户端装置104包括处理资源170(例如,微处理器)、各自连接到处理资源170的易失性存储器172(例如,ram)和非易失性存储器174(例如,rom)。处理资源170还连接到麦克风176、扬声器单元178、按键180和显示器182。处理资源170还连接到包括发送器链184和接收器链186的收发器,发送器链184和接收器链186连接到双工组件188。双工组件188连接到天线190。技术人员应该理解,上述客户端装置104的架构包括其它元件,但是为了保持描述简明和清晰起见,本文中没有描述这些附加元件。技术人员还应该理解,客户端装置104未必需要包括无线通信能力,或者可以包括无线和有线通信能力。在这方面,与客户端装置104的通信可以经由有线通信。

返回参照图1,客户端更新服务器102包括经由网络接口(例如,lan接口120)在操作上连接到通信网络118(例如,局域网(lan))的更新包生成器116。更新包生成器116还在操作上连接到支持经由无线通信接口108进行通信的更新通信单元122。

客户端更新服务器102还包括在操作上连接到更新包生成器116和装置能力管理器126的更新优化器124,装置能力管理器126能够将能力数据存储在能力数据储存库128中。能力数据储存库包括使用软件更新系统100的各个客户端装置或各个类型的客户端装置104的技术能力的记录(在此示例中,包括客户端装置或各个类型的客户端装置104支持的现有功能)。可以按照任何合适的形式(例如,表、数组和/或数据库)存储能力数据。在此示例中,包含在能力数据储存库中的信息由制造商预定。更新存储部130也在操作上连接到更新包生成器116并存储例如更新数据的映像(例如,固件映像)。功能储存库131在操作上连接到更新包生成器116并存储多个操作功能。操作功能是可以由各种客户端装置(单独或组合)采用,以便执行期望的任务(例如,与恢复已根据所选组织方案组织的更新关联的任务,如本文中稍后将更详细描述的)的功能的集合或库。多个操作功能构成功能的套件(toolkit)。

在操作中(图3),更新包生成器116经由网络接口120接收更新,以更新一个或更多个客户端装置104的非os软件的最后部分,并将所接收的更新存储在更新存储部130(构成更新的储存库)中。一旦更新包生成器116确定(步骤200)接收到第一更新,更新包生成器116就识别(步骤202)应用第一更新的目标装置。目标装置可以是个体客户端装置104或客户端装置组106。

在此示例中,第一更新是固件更新,并涉及客户端装置104的通信模块。然而,第一更新可以是任何合适的非os软件,其旨在包括可以涉及可空中更新的客户端装置104的任何操作部分的数据,例如文件(例如,配置文件)、算法、算法库、计算机程序、代码图像、指令。待更新的非os软件涉及客户端装置104的非更新维护功能方面,例如生成随机数的方法、计算校验和的方法、将后续更新包中的数据解码的方法、将更新包解压缩的方法、gnss接收器的功能、声码器插件、新的特征或新的at命令。第一更新可以是软件更新、新的或替换文件、新的或替换装置配置、安全补丁和/或用于客户端装置104执行的特定命令。在这方面,应该理解,客户端装置104具有涉及维护更新机制(与本文中稍后描述的第二更新关联)的功能方面,并且存在与维护客户端装置104的更新机制无关的其它功能方面;第一更新涉及与维护更新机制无关的这些其它功能方面。

一旦已识别出应用第一更新的客户端装置(步骤202),更新包生成器116就将第一更新以及客户端装置104或客户端装置组106的标识传送到更新优化器124,更新优化器124与装置能力管理器126协作以便识别(步骤204)客户端装置104或客户端装置组106的技术能力。在一些示例中,更新包生成器116可以包括delta文件生成器以生成待更新的非os软件的现有版本与所接收的更新之间的差异,该差异构成传送到更新优化器124的第一更新。装置能力管理器126然后访问能力数据128以便确定客户端装置104或客户端装置组106的技术能力。为了描述简明起见,以下对客户端装置104或客户端装置组106的引用将被简写为对客户端装置104的引用。然而,技术人员将理解,操作原理仍然适用于客户端装置组106,必要时进行适当修改即可。

一旦由装置能力管理器126确定,客户端装置104的技术能力就被传送回更新优化器124,更新优化器124将与客户端装置104关联的技术能力数据与由更新包生成器116识别的第一更新结合使用,以便识别(步骤206)在客户端装置104的技术能力内可以据以组织第一更新的组织方案,以便以最佳方式传送第一更新,从而例如优化客户端装置104的更新。可以基于客户端装置的技术能力(例如,存储器、易失性存储器、非易失性存储器或存储器的物理块的大小、与第一更新的实现关联的改变的分布程度、所需的处理时间、处理器容量和/或电池寿命)中的一个或更多个来选择组织方案。可以考虑当前存在于客户端装置104上的源固件映像与旨在作为更新进程的结果存在于客户端装置104上的目标固件映像之间的差异。同样,不仅从存储器使用角度,而且从发送时间和功耗角度,也可以考虑更新包的大小。在此示例中,组织方案是压缩方案,但是技术人员应该理解,可以采用用于组织第一更新(例如,用于最佳传输)的其它技术。其它组织方案的示例为:加密方案、数据差分方案和/或delta编码方案。

然后,更新优化器124确定(步骤208)恢复功能,恢复功能是为了逆向进行已根据所识别的组织方案组织的第一更新的组织,客户端装置104必须实现的一个或更多个处理步骤,因为在向客户端装置104传送之前,要根据更新优化器124选择的组织方案对第一更新进行组织。恢复功能可以被认为是组织方案的逆过程或逆向进行,并且客户端装置104的技术规格需要支持恢复功能的实现。恢复功能使得能够从根据所选择的组织方案组织的第一更新的实例恢复第一更新。恢复功能可以被实现为编译代码、编译脚本、可解译代码或可解译脚本。

更新优化器124将恢复功能或恢复功能的标识传送到装置能力管理器126。利用所需的恢复功能和客户端装置104的技术能力的知识,装置能力管理器126识别(步骤210)为了实现恢复功能客户端装置104需要拥有的功能。在这方面,装置能力管理器126被配置为将客户端装置104所需的目标功能与客户端装置104支持的现有功能进行比较,以便识别构成客户端装置104所需的必要功能的任何功能短缺或差别。在一些示例中,可以基于客户端支持的“源”功能与客户端装置104需要支持的“目标”功能的先验知识来预定差别;功能差别信息可以被存储在例如数据库或查找表中,以方便功能差别的识别。

在不存在短缺的情况下,更新包管理器116可以将第一更新组织(步骤212)成根据所选择的组织方案配置并构成更新包的第一更新的实例,然后将更新包传送(步骤214)到客户端装置104,之后返回到等待接收另外的更新(步骤200)。否则,将必要功能(可以是单个功能或多个功能)传送到更新包生成器116,更新包生成器116以上面简要提及的第二更新的形式提供必要功能。为了提供必要功能,在此示例中,更新包生成器116访问功能储存库131以检索一个或更多个操作功能,以便至少部分地减小功能短缺(客户端装置104可能已经支持部分必要功能),即,从功能储存库131的检索提供了客户端装置104实现恢复功能所缺少的至少部分功能,因此弥补功能差别。因此,在此示例中,第二更新包括或代表至少一个操作功能。

在一些情况下,在恢复功能不足以提供所有必要功能的情况下,更新优化器124被配置为识别要与该恢复功能结合用于恢复第一更新的另一恢复功能。因此,操作功能由更新包生成器116从功能储存库131检索并被并入更新包中,其细节在本文中稍后描述。

在接收到或恢复第二更新时,更新包生成器116通过以适合于在客户端装置104支持的当前功能的能力内到客户端装置104的最佳通信的形式配置(步骤216)第二更新来响应。参照图4,第二更新的配置构成更新包,然后更新包生成器116将该更新包传送到更新通信单元122,更新通信单元122根据所采用的一个或更多个通信协议支持的数据结构定义来配置更新包,并将第二更新传送(步骤218)到客户端装置104。

在此示例中,更新通信单元122被指示在第一更新的通信之前作为独立的通信以更新包的形式传送第二更新。在这方面,更新包生成器116然后根据更新优化器124确定的组织方案来组织(步骤220)第一更新,然后更新包生成器116经由更新通信单元122和无线通信接口108将第一更新以组织过的形式传送(步骤222)到客户端装置104。在此示例中,更新包生成器116生成包括根据所选择的组织方案组织的第一更新的另一更新包。

如上所述,可以按照若干不同的方式将第一更新和第二更新传送到客户端装置104。例如(图5),可以将第一和第二更新一起作为单个通信的部分传送到客户端装置,在这种情况下,更新包生成器116根据更新优化器124确定的组织方案来组织(步骤220)第一更新,然后更新包生成器116将包括组织过的形式的第一更新的实例和第二更新的更新包传送到更新通信单元122,更新通信单元122根据所采用的一个或更多个通信协议支持的数据结构定义来配置更新包并经由无线通信接口108将更新包传送(步骤222)到客户端装置104(或需要第二更新的所有装置)。

另选地,通过实现合适的协议,第一更新可以作为单独的通信(上述另一更新包)被传送到客户端装置104,并在执行之前由客户端装置104保持,直至第二更新被接收并被处理。在这方面,更新通信单元122被配置为向预期接收更新包的客户端装置104发送建议,以方便从根据所选择的组织方案组织的第一更新的实例恢复第一更新。此外,第一更新的实例的传送可以伴随有对客户端装置104的建议。

当根据数据结构定义传送更新包(无论有还是没有所组织的第一更新)时,数据结构定义可以按照若干不同的方式被构造,并且包括为包含更新包而预留的所需功能字段。参照图6,第一数据结构定义300包括所需功能内容字段302,所需功能内容字段302在此示例中伴随有功能关键标识符或指示符字段304。当所需功能字段302中伴随第二更新时,第一数据结构定义300还包括为要传送到客户端装置104的第一更新的实例或其部分预留的第一更新内容字段306、第二更新内容字段308和第三更新内容字段310。

在超过一个功能需要被传送到客户端装置104以便使客户端装置104能够支持恢复功能的情况下,可以采用第二数据结构定义312。与第一数据结构定义300一样,第二数据结构定义312包括所需功能字段302,所需功能字段302伴随有功能关键标识符或指示符字段304。在此示例中,客户端装置104已经拥有支持恢复功能所需的一个功能,但是需要另一功能以支持与非os软件的不同更新或同一第一更新的不同部分一起使用的另一恢复功能。在这方面,第二数据结构定义312包括在第一更新字段306之前的第一功能标识符或指示符字段314,以向客户端装置306指示支持与包含在第一更新字段306中的更新关联的恢复功能需要特定功能。类似地,第二数据结构定义312还包括在第二更新字段308之前的第二功能标识符或指示符字段316,以向客户端装置306指示支持与包含在第二更新字段308中的更新关联的恢复功能需要特定功能。然而,在此示例中,客户端装置104已经支持第二功能标识符或指示符字段316中所标识的功能,因此数据结构不具有为第二功能标识符或指示符字段316中所指示的功能预留的字段。

在需要将超过一个更新包传送到客户端装置104以便客户端装置104能够支持关于第一更新的恢复功能的情况下,采用第三数据结构定义322。在此示例中,还假设除了第一和第二功能之外,客户端装置104支持支持关于第一更新的恢复功能所需的第三功能。在这方面,第三数据结构定义322包括伴随有为第一功能预留的功能关键标识符或指示符字段304的所需功能字段302,但是还包括伴随有另一功能关键标识符或指示符字段326的另一所需功能字段324。第三数据结构定义312还包括在第一更新字段306之前的第三功能标识符或指示符字段328,以向客户端装置306指示除了正在传送给客户端装置104的功能之外,支持与包含在第一更新字段306中的更新关联的恢复功能需要特定的其它功能(在第三功能标识符或指示符字段328中标识)。

在包含第二更新的更新包与第一更新分开传送的实施方式中,可以采用第一两部分数据结构定义330作为第一数据结构定义300的两部分模拟。第一两部分数据结构定义330支持连同与同一第一更新对应的两个更新字段一起传送更新包,该更新包与包含第二更新的更新包分开发送。

同样,可以采用第二两部分数据结构定义340。在第二数据结构定义312的背景下,第二两部分数据结构定义340是两部分的等效模拟,并支持连同与第一更新对应的两个更新字段一起传送更新包,该更新包与包含第二更新的更新包分开发送,并且支持这种可能性:客户端装置104支持除了与第二更新关联的功能之外所需的功能。

客户端装置104可以是能够实现空中软件更新的任何合适的启用通信的装置,例如但不限于无线通信装置(例如,蜂窝通信手机)。在此示例中,参照图7,客户端装置104被配置为等待接收(步骤400)无线通信。然后,客户端装置104确定(步骤402)所接收的数据是否涉及非os软件的更新。在所接收的数据与非os软件的更新无关的情况下,客户端装置104根据客户端装置104的设计来处理(步骤404)所接收的数据。在这方面,为了描述简明起见,客户端装置104的操作的描述将被限制为与更新客户端装置104的非os软件有关的处理。

此外,为了描述清晰和简明起见,将在这样的背景下描述客户端装置104的操作:在接收到组织过的形式的第一更新之前并且在与第一更新分开的通信中,作为另一更新包接收包括第二更新的更新包。在这方面,相对于用于传送组织的第一更新的通信脉冲串(communicationburst)或比特流,使用单独的通信脉冲串或比特流来传输第二更新。因此,在所接收的数据涉及更新的情况下(步骤402),客户端装置104然后确定(步骤406)通信是否涉及需要在任何非os软件更新的处理之前安装的更新包。在所接收的数据包括更新包的情况下,客户端装置104从更新包提取第二更新或逆向进行客户端更新服务器102用来将第二更新传送到客户端装置104的、第二更新的任何组织,该更新包被这样配置:客户端装置104可以使用客户端装置104支持的现有功能从更新包恢复第二更新。第二更新的提取可以是简单解译、解密和/或解压缩。客户端装置104然后安装或执行(步骤408)第二更新。

客户端装置104然后确定(步骤410)客户端装置104接收的数据是否包括组织过的形式的第一更新。在所接收的数据包括组织过的形式的第一更新或者所接收的数据被客户端装置104确定(步骤406)为仅包括第一更新的情况下,由于客户端装置已经拥有实现恢复功能所需的功能,所以客户端装置104接下来从所接收的数据恢复(步骤412)第一更新。否则,客户端装置104等待(步骤400)接收涉及非os软件的更新的另外的数据。一旦从用于通信目的的组织过的形式的第一更新恢复了第一更新,客户端装置104就执行或实现(步骤414)用于更新客户端装置104的非os软件的第一更新。

在其它实施方式中(图8),客户端更新服务器102本质上可以是分布式的和/或包括其它功能单元以支持特定实现架构。在这方面,更新优化器124的功能可以被并入更新包生成器116中。另外地或另选地,可以提供能够与更新包生成器116通信的内容服务器140。内容服务器140充当中介并处理由更新包生成器116生成的更新。内容服务器140还能够与客户端装置104无线地通信,并且在此示例中,内容服务器140能够与客户端装置104无线地通信。

在操作中,代替更新优化器124询问装置能力管理器126,更新包生成器116向内容服务器140发送针对与客户端装置104支持的技术能力和/或功能有关的信息的查询160(例如,功能列表请求消息)。响应于此,内容服务器140能够询问162客户端装置104以便确定客户端装置104支持的技术能力和/或功能。一旦客户端装置104将其支持的技术能力和/或功能传送164到内容服务器140,内容服务器140就将客户端装置104支持的技术能力和/或功能传送166回更新包生成器116。在这方面,应该理解,与客户端装置104支持的技术能力和/或功能有关的一些信息可以由装置能力管理器126根据上述分布式方法提供。一旦更新包生成器116具有了请求的信息,更新包生成器116就生成包括组织过的形式的第一更新的更新包。在这方面,与恢复功能和组织方案的标识有关的第二更新与上面关于先前实施方式描述的相同。此后,在第一通信142中将包括第一更新的更新包传送到内容服务器140。然后根据实现方便,内容服务器140在第二通信144中(例如,通过推送第二通信144)将更新包(在此示例中,包括组织过的形式的第一更新、以及第二更新)传送到客户端装置104。在这方面,可以使用永久或暂时存储装置来保存可以由内容服务器140存储并由客户端装置104访问的第二通信144的内容。无论如何,一旦客户端装置104已获得第二通信144的内容,客户端装置104就可以按照上面已经描述的方式处理所接收的第一更新和第二更新。尽管在此示例中,第一和第二更新在单个更新包中一起传送,但是技术人员当然将理解,可以根据任何其它通信格式(例如,作为单独的更新包)将组织过的形式的第一更新、以及第二更新传送到客户端装置104。

在上述实施方式的改型中(图9),为了获得关于客户端装置104支持的技术能力和/或功能的信息,可以提供开放移动联盟数据管理(omadm)服务器146,omadm服务器146可以用作内容服务器140与客户端装置104之间的中介。在这方面,由内容服务器140从更新包生成器116接收的查询160被转发到omadm服务器146,以便获得所请求的信息。因此,omadm服务器146可以询问162客户端装置104以便确定客户端装置104或一类客户端装置104支持的技术能力和/或功能。一旦客户端装置104将其支持的技术能力和/或功能传送164到omadm服务器146,omadm服务器146就可以将此信息传送166回内容服务器140以用于按照上面关于先前实施方式所描述的相同方式处理。另选地,代替询问客户端装置104,omadm服务器146可以访问客户端装置104或这类客户端装置104支持的技术能力和/或功能的数据库148(构成储存库),并且响应于由内容服务器140转发的查询160,omadm服务器146可以访问数据库148并检索客户端装置104支持的技术能力和/或功能,并将该信息传送166回内容服务器140。在这方面,如上所述,按照上面关于先前实施方式所描述的相同方式处理关于客户端装置104支持的技术能力和/或功能的信息。一旦生成,更新包就可以被传送到客户端装置104。在一个示例中,可以无线地传送更新包,但可以想到其它模式,例如通过便携式存储器装置(未示出)传送到omadm服务器146以便随后由omadm服务器146传送到客户端装置104。

应该理解,在其它实施方式中,查询无需由更新包生成器116专门发起,而可以由客户端更新服务器102或者甚至软件更新系统100中的任何其它适当的实体发起,例如可以接收查询(例如,功能列表请求)的装置能力管理器126。查询向omadm服务器146的传送可以是直接或间接的。

在另一实施方式中,不需要omadm服务器146。在此实施方式中,假设代替确定客户端装置104支持的功能或维持这些信息的存储,第一更新将总是伴随有、跟随有或之前有实现恢复功能所需的第二更新。因此,无论如何,第二更新被传送到客户端装置104,而不管客户端装置104是否已经支持恢复功能。因此,为了支持此方法,参照图10,更新包生成器116和内容服务器140支持更新包从更新包生成器116到内容服务器140的组合通信150。另外,更新包生成器116和/或内容服务器140支持更新包从内容服务器140到客户端装置104的组合通信152。一旦使用任何合适的实现方式(例如,上面已经描述的那类实现方式)确定,更新包生成器116就被配置为向内容服务器140传送第一更新、以及第二更新(作为更新包的一部分或作为另一更新包)。类似地,内容服务器140被配置为向客户端装置104传送第一更新、以及第二更新(作为更新包的一部分或作为另一更新包)。根据实现需要,可以存储所述另一更新包和/或所述更新包的一个或更多个暂时(或永久)副本,以便更新包生成器116和内容服务器140、以及内容服务器140和客户端装置104共享使用。可以使用任何合适的实现方式(例如,共享硬盘驱动器、存储器或云资源)来存储更新的副本。

因此,在操作中,一旦更新包生成器116识别出要应用于客户端装置104的第一更新以及以第二更新的形式的所需功能的数据,这些就被生成并传送150到内容服务器140,然后按照上面已经描述的方式从内容服务器140传送152到客户端装置104。

转向图11,现在将在单独传送包括第二更新的更新包和包括组织过的形式的第一更新的另一更新包的背景下描述图10的实现方式。在这方面,一旦使用任何合适的实现方式(例如,上面已经描述的那类实现方式)确定,就使用第一单独通信154来将第二更新以及任何其它这样的功能(构成另一更新包)从更新包生成器116传送到内容服务器140,并且使用第二单独通信156来存储传送第一更新。第一单独通信154和第二单独通信156用于与图10的第一组合通信150相同的目的。然后,分别包括第二更新和第一更新的所述更新包和所述另一更新包作为第三单独通信158和第四单独通信160被传送到客户端装置104,第三单独通信158和第四单独通信160用于与图10的第二组合通信152相同的目的。同样,根据实现需要,可以存储所述另一更新包和/或所述更新包的一个或更多个暂时(或永久)副本,以便更新包生成器116和内容服务器140、以及内容服务器140和客户端装置104共享使用。可以使用任何合适的实现方式(例如,共享硬盘驱动器、存储器或云资源)来存储更新的副本。

与图10的示例相比,此示例的这种配置方式是数据通信的不同组织,但是以与先前示例相似的方式起作用。

关于上述实施方式,应该理解,第一更新免于要求来自客户端装置104的响应的查询。同样,更新包免于要求来自客户端装置104的响应的查询。

技术人员应该理解,上述实现方式仅仅是在所附权利要求的范围内可以想到的各种实现方式的示例。

例如,作为装置能力管理器126确定客户端装置104实现恢复功能所需的必要功能的替代,更新包生成器116可以通过参考能力数据储存库128来确定必要功能。同样,代替装置能力管理器126,更新包生成器116可以将客户端装置104所需的目标功能与客户端装置104支持的现有功能进行比较,以便识别构成客户端装置104所需的必要功能的功能短缺或差别。装置能力管理器126仍然可以响应于从更新包生成器116接收的功能列表请求消息确定客户端装置或一类客户端装置104所拥有的功能。

尽管在上述示例中,装置能力管理器126和能力数据储存库128由客户端更新服务器102支持,但是技术人员应该理解,装置能力管理器126无需与客户端更新服务器102共处一地。同样,能力数据储存库128无需与客户端更新服务器102共处一地。在这方面,装置能力管理器126和能力数据储存库128可以分别远离客户端更新服务器102设置并且实际上彼此分离(例如,由相应单独的服务器支持)。

在上面所阐述的示例中,客户端装置104依赖于无线通信接口以便参与更新进程。然而,如上所述,可以使用有线通信来确保客户端装置104的连接。技术人员还应该理解,非os软件无需涉及客户端装置104的无线通信能力或有线通信能力,非os软件可以涉及客户端装置104的其它方面,例如如上所述,gnss接收器(例如,全球定位系统(gps)接收器)或应用处理器(例如,由客户端装置104的制造商提供的应用处理器)。

尽管被描述为分布式架构,但是客户端更新服务器102可以包括omadm服务器146。此外,omadm服务器146仅是在上述一些实施方式中可以采用的一类服务器的示例,技术人员应该理解,可以采用其它适当类型的服务器,例如支持根据开放移动联盟(oma)轻量级机器对机器(lwm2m)协议的通信的服务器。

除了所描述的结构组件和用户交互之外,上述实施方式的设备和方法可以在计算机系统中(具体地,在计算机硬件中或在计算机软件中)或者在专门制造或配置的集成电路中实现。

上述实施方式的方法可以作为计算机程序或作为承载计算机程序的计算机程序产品或计算机可读介质提供,该计算机程序被配置为当在计算机或其它处理器上运行时执行上述方法。

术语“计算机可读介质”包括(但不限于)可以由计算机或计算机系统直接读取和访问的任何介质。介质可以包括(但不限于):磁存储介质,例如软盘、硬盘存储介质和磁带;光学存储介质,例如光盘或cd-rom;电存储介质,例如存储器,包括ram、rom和闪存;以及上述的混合和组合,例如磁/光学存储介质。

尽管上面描述了本发明的特定示例,但是技术人员将理解,许多等同修改和变化是可能的。因此,上面所阐述的本发明的示例性实施方式被认为是例示性的而非限制。在不脱离本发明的精神和范围的情况下,可以对所描述的实施方式进行各种改变。

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