数字内容的增强更新的制作方法

文档序号:11142224阅读:177来源:国知局
数字内容的增强更新的制造方法与工艺

本公开的方面涉及计算硬件和软件技术,尤其涉及更新数字内容。



背景技术:

对所有类型的数字内容的更新经由云以增大的频率输送。虽然一些软件包会是每年更新一次,或者以甚至更低的频率更新,但是现在常见的是软件开发者每个月或者甚至比每月更快地提供更新。诸如地图数据库和媒体库的其它类型的数字内容也以增大的频率更新。

过去,对应用的更新可以通过下载并安装新的安装包来实现。该技术的缺陷在于,当安装包中的新文件取代较旧版本的文件时,会丢失用户对应用程序的定制。另一缺陷是一些安装包的大尺寸,这会消耗相当大量的时间和带宽。

在许多情况下,从应用的一个版本到另一版本的文件或二进制文档的差异不会有太大变化,使得完全安装过程甚至更低效。甚至在从一个版本到下一版本确实有变化的二进制文档内,变化也是微小的。这些缺陷以及其它缺陷是通过补丁的开发来缓解的。利用补丁,针对应用包中的有限集合的文件进行更新,从而限制需要下载多少文件。

可以利用比如二进制差异压缩(binary delta compression)的差分压缩技术来减小更新包的总大小,无论它包含补丁文件还是完整文件。二进制差异压缩仅允许在更新过程期间下载旧文件与新文件之间的差别。因此,更新包可以包括使得旧版本的文件相对于新版本的文件是最新的差异文件,而不必下载文件的完整版本。

虽然补丁和差分压缩技术可改善特定更新的性能,但是开发者由于对数字内容包创建更新的快速性而面临新的情况。因为以更大的频率产生更新,所以可能的更新状态的范围已经扩大。要继续当前的更新范式意味着越来越多的差异文件需要被维护以便于支持所有可能的更新状态。



技术实现要素:

本文提供的是增强更新数字内容的过程的系统、方法和软件。在至少一个实现方式中,更新代理从一组文件中识别出定于从文件的当前版本更新到文件的新版本的至少一个文件作为对该组文件的更新的部分。该更新可以包括用于将文件从文件的多个先前版本更新到新版本的差异文件集合以及用于将文件更新到新版本的完整文件。

更新代理判定该差异文件集合中是否有任何差异文件能够用于将文件从当前版本更新到新版本。如果该差异文件集合包括利用其以将文件从当前版本更新到新版本的至少一个差异文件,则该差异文件被下载且用于更新文件。如果该差异文件集合中的任一个均不能用于将文件从当前版本更新到新版本,则下载利用其以将文件更新到新版本的完整文件。

提供该发明内容以便以简化的形式来引入下面的具体实施方式中进一步描述的概念的选择。该发明内容不旨在确定所要求保护的主题的关键特征或主要特征,也不旨在用于限定所要求保护的主题的范围。

附图说明

本公开的多个方面可以参考附图得以更好的理解。虽然结合这些附图描述了若干实现方式,本公开不限于在此公开的实现方式。相反,意图是涵盖所有的可替代方案、变型例和等同方案。

图1示出了实现方式中的更新体系结构。

图2示出了实现方式中的更新过程。

图3示出了实现方式中的更新过程。

图4示出了实现方式中的更新体系结构。

图5示出了实现方式中的操作序列。

图6示出了实现方式中的更新体系结构。

图7示出了实现方式中的更新过程。

图8示出了实现方式中的更新过程的结果。

图9示出了适合于实现本文结合图1-9所公开的以及下面在技术公开中所论述的应用、服务、过程、体系结构和操作方案中的任一个的计算系统。

具体实施方式

在本文公开的实现方式使能增强数字内容更新,由此可以产生并维护用于将文件从先前版本更新到更近期版本的有限的差异文件集合。更新代理随后可以根据相关联的文件的更新状态来选择性地下载差异文件。当适合的差异文件不可用时,更新代理可以下载新文件的完整版本。

该实现方式有助于适应产生对数字内容的更新的增大的频率以及由此引起的相应增大的可能的更新状态的范围。过去,当以例如每年或十八个月一次的速率产生更新时,可能存在于本地安装中的各种更新状态仅变化这么多。例如,如果在三年的过程中产生来自软件包的基础状态的两个更新,则在三年末尾时仅可能有三个不同的更新状态。产生和维护适合于桥接所有更新状态的差异文件因此将是合理的努力。

随着更新产生的频率增大,在相同的三年跨度内,很可能有极大数量的更新状态。例如,如果每月更新软件包,则在三年过程中可能有数十个不同的更新状态。产生和维护将软件包以其全部各种更新状态的实例桥接到最近期版本的软件包所需的所有的差异文件是费力且低效的任务。

如本文所讨论的,所支持的差异文件的数量会受限制于使得仅可能存在的各种更新状态的子集能够利用差异文件桥接到新版本的数字内容。该技术减少了否则在产生和维护更新文件中所涉及到的努力和资源的量。

可以在通过更新服务传送给运行于各种内容环境中的更新代理的更新清单中列举可用作更新的部分的差异文件。给定的更新代理可以检查清单以识别一组文件中的哪个(哪些)文件是从文件的先前版本到新版本的更新所针对的。清单还可以列举可供用来将文件从文件的先前版本更新到新版本的差异文件。用于更新文件到新版本的完整文件也可以包含在更新中。

更新代理可以从清单中判定出是否有差异文件可供用于适合将文件从当前版本更新到新版本的更新中。如果有适合的差异文件可用,则更新代理可以开始从更新服务或者任选地从某其它源下载该差异文件。如果没有适合的差异文件可供使用,则可以下载完整的文件且用于更新文件。

作为更新目标的给定的软件包或其它类型的数字内容可以包括一组文件,该组文件中的至少一些文件须经更新。因此,更新可以包括差异文件组。差异文件的每个单独的组可对应于更新目标中的文件中的单独一个文件。在示例中,软件包可以包括多个文件。对软件包的更新可因此包含对应于软件文件中的一个软件文件的一个差异文件集合和对应于软件文件中的另一软件文件的另一个差异文件集合。

在这些方案中,更新代理可以检查清单以判定软件包或其它数字内容中的哪个文件或文件的哪个子集须经更新。更新代理从中可以对于文件子集中的每个文件判定出更新是否包括适合于将该文件从先前版本更新到新版本的差异文件。在一些方案中,清单可以描述对于更新中的差异文件,每个差异文件可应用于文件的先前版本中的哪一个版本。

更新代理可以发起对更新服务的获得更新清单的请求。该请求可以响应于由更新服务提供的更新可用的通知而做出。然而,可替代的技术可用于递送清单,诸如将清单连同更新通知一起传送的更新服务。

数字内容的示例包括单独的软件应用、软件包或软件套件、视频内容、数字书籍和期刊、数字音乐和可以不断更新的任何其它类型的数字内容。可以更新的文件的示例包括数据库文件、应用文件、操作系统文件以及媒体文件(例如视频、音频或数字印刷媒体)。

在一些实现方式中,更新服务可以跟踪每个均包括一组文件的软件包的更新状态且基于其更新状态而生成用于软件包的清单。这可以包括例如跟踪对应于软件的一系列可能版本中的一个版本或另一版本的软件包的安装实例的份额。取决于特定版本所具有的安装实例的份额多大,对于包中的每个文件可以产生会适合用于将包的那些安装的实例从软件包的该版本更新到新版本的差异文件。

当判定是构建差异文件(或文件集合)还是根本不构建差异文件(或文件集合)时,也可以考虑给定版本所占有的安装实例的份额。随着给定版本的份额随时间推移而下降,其会在某点通过某阈值以下而使得将不产生差异文件。对于更新所生成的清单可以识别对于给定的更新目标所产生的上述一个或多个差异文件以及给定的差异文件能够从其中更新文件的特定版本。

现在转到图1,更新体系结构100包括内容环境101和更新服务111。内容环境101包括更新代理102、文件103和文件105。文件103和105可以不断地经过由更新服务111提供的更新。更新120代表了一个这样的更新并且包括差异文件121、差异文件123、差异文件125和文件127。

在操作中,开发更新120,并且生成描述更新120的内容的相应的清单。清单129代表了可以关于更新120所产生的清单。清单129包括表明内容环境中的什么文件可以定于更新的信息。该信息还表明更新中可用的内容,诸如哪些差异文件在更新中以及哪些完整文件在更新中。

在清单中规定的差异文件中的每一个可用于将目标文件从各种先前版本中的一个先前版本更新到近期版本。除了识别差异文件之外,清单129中的信息可以识别出可使用差异文件将目标文件从哪个先前版本更新到文件的近期版本。在该操作方案中,差异文件121代表了文件的第四版本与第五版本之间的差别;差异文件123代表了文件的第三版本与第五版本之间的差别;差异文件125代表了文件的第二版本与文件的第五版本之间的差别。文件127代表了文件的完整的第五版本。

更新服务111将清单129传送到内容环境101以及可能传送到可供用于更新120的其它内容环境(未示出)。更新代理102检查清单129以判定从更新服务111下载哪个或哪些差异文件。在一些方案中,不下载任何差异文件。相反,可以下载所更新的一个文件或多个文件的完整版本。

一旦识别出适合的(多个)差异文件或(多个)完整文件,则将差异文件或完整文件从更新服务111下载到内容环境101。然后,相应地更新目标文件。在该方案中,差异文件123被识别且下载从而将文件103从第三版本更新到第五版本。

图2示出了在关于图1所论述的操作方案的上下文中更新服务111可以采用的更新过程200。作为附加说明参考图2所描述的步骤,更新服务111识别在更新包中包括哪个或哪些文件(步骤201)。这可以包括识别与更新相关联的差异文件和完整文件二者。哪些差异文件包含在更新中可以基于描述软件包的更新或安装状态的遥测数据来自动地确定。在其它方案中,识别包含在更新中的差异文件可以涵盖经由规定要包含哪些差异文件的用户接口来接收用户输入或其它指导。

更新服务111随后生成清单129,该清单描述了更新的内容(步骤203)。该清单可以是文件、消息、一系列消息或者适合于承载该信息的任何其它数据结构。该清单由更新服务111传送到内容环境101以及可能传送到其它内容环境(步骤205)。

图3更详细地示出了在关于图1所论述的操作方案的上下文中更新代理102所可能采用的更新过程300。作为附加说明参考图3所描述的步骤,更新代理102检查清单129以识别内容环境101中的哪个或哪些文件须经更新(步骤301)。对于须经更新的文件中的每一个文件,更新代理102判定在更新包中所包含差异文件中是否有任何差异文件适合用于将目标文件更新到该文件的更近期版本(步骤303)。这可以通过将每个差异文件的版本信息与该主题文件的更新状态进行比较来实现。

如果存在可用于将主题文件更新到更近期版本的差异文件,则更新代理102开始从更新服务111(步骤305)或某其它内容源下载差异文件。然而,如果适合的差异文件不可用,则下载文件的完整版本。

返回参考图1,内容环境101可以是其中托管了文件且可以运行能够更新文件的用户代理的任何计算环境。内容环境101的示例包括但不限于:本地运行时环境、操作系统环境、web浏览器环境、虚拟机、沙盒环境、安装环境、和虚拟化环境,以及它们的任意组合或变型例。

内容环境101可以实现在单个计算设备中或者分布在多个计算设备之中。计算系统901代表了一个这样的计算平台且下文参考图9进行更详细论述。然而,用于实现内容环境101的适合的计算设备(多个)的示例包括任何类型的个人计算机,包括膝上型的、桌面式的、平板式的和混合式的计算机。其它示例包括移动电话、智能电话、游戏设备、智能电视机和其它智能器具、可佩戴计算设备、服务器计算机、虚拟服务器、虚拟机或任何其它适合的计算设备。

更新代理102代表了能够与更新服务111通信且实现更新过程300的任何软件应用、实用工具、模块、组件或其集合。随着更新代理102运行于内容环境101的上下文内,其可以利用存储在由计算系统901代表的适合的计算设备上或者由其执行的程序指令来实现。更新代理102可以独立的方式执行或者可以集成到其它应用、实用工具、模块或组件中。

更新服务111代表了能够与更新代理102通信且实现更新过程200的任何软件应用或服务。更新服务111可以利用存储在计算系统901代表的适合的一个或多个计算设备上或者由其执行的程序指令来实现。更新服务111可以是独立的服务或者可以与其它服务集成,诸如生产应用服务、通信服务、游戏服务、电子商务服务、在线应用商店、或任何其它类型的服务、服务的组合或其变型例。

文件103和文件105代表了可以被视为数字内容且可以不断更新的任何类型的文件。示例包括程序应用文件,如可执行文件、库文件、数据库文件和操作系统文件。其它示例包括媒体文件,如电影、音乐、数字文献、数字期刊或任何其它类型的数字内容文件。

可以从图1-3的上述论述中意识到,当实现如本文所论述的增强更新时可以获得各种技术效果。如所提到的,否则适应增大的更新产生速率将需要的差异文件的大的数量会受限制或缓解。另外,允许更新代理选择性地下载差异文件节约了网络带宽和本地存储容量。除了本文所述的那些技术效果之外替代本文所描述的那些技术效果,其它技术效果是可能的,并且可视为在本公开的范围内。

图4示出了在另一实现方式中的更新体系结构400。更新体系结构400包括应用环境401、应用环境411和应用环境421。应用环境401、411和421分别包括更新代理405、更新代理415和更新代理425,它们与更新服务431通信以接收对安装在应用环境中的应用的更新。应用包括由应用环境401、411和421中的每一个应用环境中的各自的文件403、文件413和文件423所表示的文件。更新440代表了可利用其来更新文件403、413和423的更新包。

更新440包括差异文件441、差异文件443和差异文件445。差异文件441、443和445各自代表了所更新的文件的先前版本与要更新为的文件的更近期版本之间的差别。在该示例中,差异文件441代表了文件的第四版本与第五版本之间的差别;差异文件443代表了文件的第三版本与第五版本之间的差别;并且差异文件445代表了文件的第二版本与第五版本之间的差别。更新440还包括文件447,其代表了文件的完整的第五版本。

图5示出了在一个实现方式中代表更新服务431与应用环境401、411、421之间的信息和数据流的操作序列500。在操作中,更新服务431生成了清单,该清单包括表明一组文件中的什么文件可定于更新的信息。该信息还可以表明在更新中哪些具体文件可用,例如哪些差异文件在更新中,以及哪些完整文件在更新中。因此,在该示例的序列中,清单可以识别作为更新目标的文件(对应于应用环境401、411和421中的相应的文件403、413和423)、差异文件441、443、445和文件447。

更新服务431将清单传送给应用环境401、411和421中的每一个。应用环境401、411和421中的更新代理405、415和425分别检查清单以判定如何继续进行更新,包括判定下载哪个差异文件,或者在缺失适合的差异文件的情况下判定下载哪个完整文件。

可以意识到,图4中的文件403、413和423的版本相互不同。因此,更新代理405、415和425各自达成了完全不同的关于下载差异文件441、443和445中的哪个差异文件(如果有)的判定。更新代理425判定下载差异文件441且相应地向更新服务431请求该差异文件。差异文件441由更新代理425选择,是因为文件423的版本是版本四。因此,能够利用差异文件441来将文件423更新到版本五。应用环境411中的更新代理415决定使用差异文件443来将文件413从版本三更新到版本五并且相应地开始下载差异文件443。

然而,更新代理405判定在更新440中可用的全部差异文件441、443、445均不适合用于更新文件403。这种情况是因为文件403的版本是版本一,但是尚未产生任何差异文件用于将这些文件从版本一带到版本五。因此,应用环境401中的更新代理405开始对文件的全版本即文件447的下载,从而将文件403更新到版本五。文件447能够用于取代文件403。

返回参考图4,应用环境401、411和421可以各自代表任何可以在其中托管文件且能够更新文件的用户代理可以在其中运行的计算环境。应用环境401、411和421的示例包括但不限于程序应用、本地运行时环境、操作系统环境、web浏览器应用、虚拟机、沙盒环境、安装环境和虚拟化环境,以及它们的任意组合或变型例。应用环境401、411和421可以各自实现于单个计算设备中或者分布在多个计算设备之中。计算系统901代表了一个这样的计算平台并且下面结合图9来更详细地论述。

更新代理405、415和425各自代表了能够与更新服务431通信且实现更新过程的任何软件应用、实用工具、模块、组件或其集合。更新代理405、415和425可以各自分别在上下文应用环境401、411和421内运行且可以存储在计算系统901代表的适合的计算设备上且由其执行。更新代理405、415和425可以独立的方式执行或者可以集成到其它应用、实用工具、模块或组件中。

更新服务431代表了任何能够与更新代理405、415和425通信且实现更新过程的软件应用或服务。更新服务431可以利用存储在计算系统901代表的适合的一个或多个计算设备上或者由其执行的程序指令来实现。更新服务431可以是独立的服务或者可以与其它服务集成,诸如生产应用服务、通信服务、游戏服务、电子商务服务、在线应用商店、或任何其它类型的服务、服务组合或其变型例。

文件403、413和423各自代表了可以视为数字内容且可以不断更新的任何类型的文件。示例包括程序应用文件,诸如可执行文件、库文件、数据库文件和操作系统文件。其它示例包括媒体文件,诸如电影、音乐、数字文献、数字期刊或任何其它类型的数字内容文件。

从图4-5的以上论述中可以意识到,当实现如本文论述的增强更新时,可以获得各种技术效果。在该示例中,当每个更新代理下载不同的单独的差异文件时,而不是每个更新代理下载全部可用的差异文件,节约了带宽。另外,无需维护用于将文件从版本一更新到版本五的差异文件,从而节约了生产和维护资源。

图6示出了其中多个文件须经更新的实现方式中的更新体系结构600。更新体系结构600包括应用环境601、应用环境611、和应用环境621。应用环境601、611和621各自包括更新代理,更新代理与更新服务631通信以促进对安装在应用环境601、611和621的每个应用环境中的软件包的更新。

特别地,应用环境601包括辅助更新作为软件包的部分的文件603和文件604的更新代理605。应用环境611包括辅助更新也属于软件包的文件613和文件614的更新代理615。应用环境621包括用于更新也作为软件包的部分的文件623和文件626的更新代理625。因此,可以意识到,在应用环境601、611和621中的每个应用环境中的每组文件代表了在每个应用环境中安装的软件包的实例。

软件包的每个实例可以相对于其它实例略微不同。这会由于例如一个实例相比另一实例更新得较不频繁而发生。作为示例,文件603代表了包中名称为“alpha.exe”的文件的第一版本,文件604代表了包中名称为“kilo.exe”的另一文件的第二版本。在应用环境611中,文件613代表了alpha.exe文件的第三版本,而文件614代表了kilo.exe文件的第三版本。应用环境621中的文件623代表了alpha.exe文件的第四版本,而文件626代表了名称为“sierra.exe”的文件的任何版本,其在某时点也可以是软件包的部分。从这些示例可以意识到,虽然每个应用环境包括了安装在其中的相同的软件包,但是与包中的每个文件相关联的更新状态可以在环境与环境之间不同,并且实际上甚至是在文件与文件之间不同。

更新服务631包括软件更新640,其代表了可用来更新安装到应用环境601、611和621中的软件包的实例的更新。为了示范的目的,软件更新640包括针对两个文件的更新包,由文件更新650和文件更新660表示。文件更新650包括用于将应用环境601、611和621中的alpha.exe文件更新到文件的第五版本的差异文件和完整文件,由差异文件651、差异文件653、差异文件655和完整文件657来表示。文件更新660包括用于将应用环境601、611和621中的kilo.exe文件更新到文件的第五版本的差异文件和完整文件,由差异文件661、差异文件663、差异文件665和完整文件667来表示。软件更新640还包括描述软件更新640的内容的清单670。

在操作中,软件更新640可以在构建或开发环境(或两者)中产生且准备用于在更新服务631中筹划。一旦软件更新640准备就绪,向应用环境601、611、621提供通知。更新代理605、615和625在该上下文中采用更新过程700,更新过程700将在图7中进行详细说明。

参考图7,更新代理(诸如更新代理605、615和625)接收新的更新包可用的通知(步骤701)。这会在例如更新代理轮询更新服务时或者在该通知被推送给更新代理或者以某其它方式提供时发生。更新代理作为回应请求并下载更新清单,该更新清单描述哪些文件要作为更新的一部分而被更新(步骤703)。

清单还描述哪些差异文件以及哪些完整文件是可供使用的。与每个差异文件能够更新对应文件的哪些版本相关联地描述差异文件。更新代理处理清单以列举在清单中被识别为待经更新的各个文件(步骤705)。所列举的每个文件由更新代理分析以判定其是否是与软件包的本地实例中的现有文件不同的新文件(步骤707)。如果该文件是新的,则更新代理下载全文件(步骤709)且使用它来产生文件的新版本(步骤711)。

然而,如果文件不是新的,则更新代理检查清单以判定适合用于更新每个文件的差异文件是否包含在更新中(步骤713)。如果为否,则更新代理下载全文件(步骤709)且产生文件的新版本。如果适合的差异文件确实存在且包含在更新中,则更新代理下载差异文件(步骤715)且利用差异文件来产生文件的更新版本(步骤717)。

在产生了新文件或更新的文件之后,更新代理判定基于清单所列举的任何其它文件是否仍待更新(步骤719)。如果为是,则更新过程700返回到步骤707。但是,如果没有任何需要更新的剩余文件,则更新完成(步骤721)。

图8包括表格800,表格800图示出当运行于应用环境601、611和621中的更新代理605、615和625在图6所提供的方案的上下文中分别采用更新过程700时会出现的结果。表格800包含由所更新文件的名称(alpha.exe和kilo.exe)所定义的行以及对应于每个文件在其中更新的应用环境的列。由行和列所定义的每个单元包括对于每个更新过程700表达特定应用环境中的特定文件如何更新的信息。

在该示例的方案中,文件更新650将关于alpha.exe文件应用于应用环境601。更新代理605将确定下载完整文件以便于更新alpha.exe文件,因为不包含将文件603从版本一更新到版本五的任何适合的差异文件。相反,更新代理605将下载差异文件665以便于将kilo.exe文件从版本二更新到版本五。

关于应用环境611,更新代理615将确定下载差异文件653以便于将文件613从alpha.exe文件的第三版本更新到第五版本。另外,更新代理615将下载差异文件663以便于将文件614从kilo.exe文件的第三版本更新到第五版本。

关于应用环境621,更新代理625将确定下载差异文件651以用于将文件623从alpha.exe文件的第四版本更新到第五版本。但是,关于更新kilo.exe文件的本地版本,更新代理625将遇到文件不存在于本地的情况。相应地,更新代理625将下载完整文件667以便于获得第五版本的kilo.exe文件的完整版本。

表格800还说明了更新代理625将任选地移除名称为sierra.exe的文件626。这在更新包不再包含先前已经包含在软件套件中的文件的一些方案中会发生。在一些方案中,更新代理可以由于在清单中不存在一文件而得出结论该文件可被移除。在其它方案中,清单可以显式地规定要移除的文件。

返回参考图6,应用环境601、611和621可以各自是可以在其中托管文件且能够更新文件的用户代理可以在其中运行的任何计算环境。应用环境601、611和621的示例包括但不限于程序应用、本地运行时环境、操作系统环境、web浏览器应用、虚拟机、沙盒环境、安装环境和虚拟化环境,以及它们的任意组合或变型例。应用环境601、611和621可以各自实现在单个计算设备中或者分布在多个计算设备之中。计算系统901代表了一个这样的计算平台且下文结合图9来更详细说明。

更新代理605、615和625各自代表了能够与更新服务631通信且实现更新过程的任何软件应用、实用工具、模块、组件或其集合。更新代理605、615和625可以各自分别运行于应用环境601、611和621的上下文内且可以存储在计算系统901代表的适合的计算设备上且由该适合的计算设备执行。更新代理605、615和625可以独立的方式执行或者可以集成到其它应用、实用工具、模块或组件中。

更新服务631代表了能够与更新代理605、615和625通信且实现更新过程700的任何软件应用或服务。更新服务631可以利用存储在计算系统901代表的适合的一个或多个计算设备上或者由其执行的程序指令来实现。更新服务631可以是独立的服务或者可以与其它服务集成,诸如生产应用服务、通信服务、游戏服务、电子商务服务、在线应用商店或任何其它类型的服务、服务的组合或其变型例。

文件603、604、613、614、623和624各自代表可以被视为数字内容且可以不断更新的任何类型的文件。示例包括程序应用文件,诸如可执行文件、库文件、数据库文件和操作系统文件。其它示例包括媒体文件,诸如电影、音乐、数字文献和数字期刊。

从图6-8的以上论述中可以意识到,当实现如本文论述的增强更新时,可以获得各种技术效果。在其它可能的益处当中,通过提供优于完整文件的差异文件来节约带宽。另外,支持有限的差异文件集合节约了生产和维护资源。

图9图示出代表可以在其中实现本文公开的各种操作体系结构、方案和过程的任何系统或系统集合的计算系统901。计算系统901的示例包括但不限于,智能电话、膝上型计算机、平板计算机、桌面式计算机、混合式计算机、游戏机、虚拟机、智能电视机、智能手表和其它可佩戴设备,以及它们的任意变型例或组合。其它示例包括服务器计算机、机架服务器、web服务器、云计算平台、以及数据中心装备,以及任何其它类型的物理或虚拟服务器机器、及其任意变型例或组合。

计算系统901可以实现为单一装置、系统或设备,或者可以分布式方式实现为多个装置、系统或设备。计算系统901包括但不限于,处理系统902、存储系统903、软件905、通信接口系统907和用户接口系统909。处理系统902与存储系统903、通信接口系统907和用户接口系统909可操作地耦合。

处理系统902从存储系统903装载并执行软件905。软件905至少包括更新过程906,该更新过程代表了关于上述实现方式所论述的更新过程200、更新过程300和更新过程700。当通过处理系统902执行来增强如何更新数字内容时,软件905引导处理系统902对于至少在上述实现方式中论述的各个过程、操作方案和序列如本文所描述的那样操作。计算系统901可以任选地包括为简要的目的而没有论述的附加的设备、特征或功能。

仍参考图9,处理系统902可以包括从存储系统903取回并执行软件905的微处理器和其它电路系统。处理系统902可以实现在单个处理设备内,但是也可以分布于在执行程序指令时配合的多个处理设备或子系统之中。处理系统902的示例包括通用中央处理单元、专用处理器和逻辑器件,以及任何其它类型的处理设备、组合或其变型例。

存储系统903可以包括处理系统902能读且能够存储软件905的任何计算机可读存储介质。存储系统903可以包括利用用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性的、可移除的和非可移除的介质。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、闪速存储器、虚拟存储器和非虚拟存储器、磁盒、磁带、磁盘存储或其它磁存储设备、或任何其它适合的存储介质。在任何情况下,计算机可读存储介质都不是传播信号。

除了计算机可读存储介质之外,在一些实现方式中,存储系统903还可以包括计算机可读通信介质,至少一些软件905可以在内部或者在外部通过该计算机可读通信介质传送。存储系统903可以实现为单个存储设备,或者还可以实现在相对于彼此共同定位或分布的多个存储设备或子系统之中。存储系统903可以包括能够与处理系统902或可能其它系统通信的附加的元件,诸如控制器。

软件905可以利用程序指令来实现,并且在其它功能当中,当通过处理系统902执行时,可以引导处理系统902如关于本文图示的各个操作方案、序列和过程所描述的那样操作。例如,软件905可以包括用于实现更新代理或更新服务及其相应的功能的程序指令。

特别地,程序指令可以包括配合或以其它方式交互来执行本文所描述的各个过程和操作方案的各种组件或模块。各个组件或模块可以编译或解释的指令来具体体现,或者以指令的某其它变型例或组合来具体体现。各个组件或模块可以同步或异步的方式、串行地或者并行地、在单线程环境或多线程环境中、或者根据任何其它适合的执行范式、变型例或其组合来执行。除了更新过程906之外或包括更新过程906,软件905可以包括额外的过程、程序或组件,诸如操作系统软件或其它应用软件。软件905还可以包括能够由处理系统902执行的固件或某其它形式的机器可读处理指令。

一般地,当装载到处理系统902中且执行时,软件905可以将适合的装置、系统或设备(计算系统901代表)整体地从通用计算系统变换成被定制以促进数字内容的增强更新的专用计算系统。事实上,将软件905编码到存储系统903上可以变换存储系统903的物理结构。物理结构的具体的变换可以取决于该说明书的不同实现方式中的各种因素。这些因素的示例可以包括但不限于用于实现存储系统903的存储介质的技术以及计算机存储介质是否表征为主存储或辅助存储,以及其它因素。

例如,如果计算机可读存储介质实现为基于半导体的存储器,当程序指令编码到其中时,例如通过变换晶体管、电容器或其它构成半导体存储器的离散电路元件的状态,软件905可以变换半导体存储器的物理状态。关于磁或光介质可以发生类似的变换。物理介质的其它变换是可能的,而不偏离本说明书的范围,提供前述示例仅为了利于当前的论述。

再次参考作为示例的图1-3,通过计算系统901代表的一个或多个计算系统的操作,可以相对于更新体系结构100执行变换,尤其是针对文件103执行变换。作为示例,文件103的更新状态可以是其已被更新到版本3。在更新服务111采用更新过程200且更新代理102采用更新过程300时,差异文件123被下载且用于将文件103更新到版本5,从而将其变成新的更新状态。

可以理解的是,计算系统901一般旨在表示可以在其上部署和执行软件905从而实现增强的数字内容更新的一个或多个计算系统。然而,计算系统901还可适合作为可以在其上筹划软件905以及从其中分布、传送、下载或以其它方式提供一个或两个软件到又一计算系统以用于部署和执行或者另外额外分布的任何计算系统。

通信接口系统907可以包括允许经由通信网络(未示出)与其它计算系统(未示出)通信的通信连接和设备。共同允许系统间通信的连接和设备的示例可以包括网络接口卡、天线、功率放大器、RF电路系统、收发机和其它通信电路系统。连接和设备可以经由通信介质通信以与其它计算系统或系统网络交换通信信息,诸如金属、玻璃、空气或任何其它适合的通信介质。上述的介质、连接和设备是公知的且无需再此冗长论述。

用户接口系统909是任选的并且可包括键盘、鼠标、语音输入设备、用于接收来自用户的触摸姿势的触摸输入设备、用于检测用户的非触摸姿势和其它运动的运动输入设备和其它能够接收来自用户的用户输入的类似的输入设备和相关联的处理元件。诸如显示器、扬声器、触觉设备和其它类型的输出设备之类的输出设备也可以包含在用户接口系统909中。在一些情况下,输入设备和输出设备可以组合在单个设备中,诸如能够显示图像和接收触摸姿势的显示器。上述用户输入和输出设备是本领域公知的且无需在此冗长论述。

用户接口系统909还可以包括能够由处理系统902执行的支持上述的各种用户输入和输出设备的相关联的用户接口软件。单独地或者彼此结合以及与其它硬件和软件元件结合地,用户接口软件和用户接口设备可以支持图形用户接口、自然用户接口或任何其它类型的用户接口。

计算系统901与其它计算系统(未示出)之间的通信可以通过一个或多个通信网络以及依照各种通信协议、协议的组合或其变型例而发生。示例包括内联网、互联网、因特网、局域网、广域网、无线网、有线网、虚拟网、软件定义网络、数据中心总线、计算底板或任何其它类型的网络、网络的组合或其变型例。上述通信网和协议是公知的且无需在此冗长论述。然而,可以使用的一些通信协议包括但不限于因特网协议(IP,IPv4、IPv6等)、传输控制协议(TCP)和用户数据图协议(UDP)以及任何其它适合的通信协议、变型例或其组合。

在其中交换数据、内容或任何其它类型的信息的上述示例中的任一个示例中,信息的交换可以根据各种协议中的任一种而发生,包括FTP(文件传输协议)、HTTP(超文本传输协议)、REST(表征状态传输)、WebSocket、DOM(文档对象模型)、HTML(超文本标记语言)、CSS(级联式表单)、HTML5、XML(可扩展标记语言)、JavaScript、JSON(JavaScript对象符号)、和AJAX(异步JavaScript和XML)以及任何其它适合的协议、变型例或其组合。

虽然图1-9一般地描绘了相对较少的操作方案和序列,可以意识到本文公开的概念可以大规模地且常规地应用。例如,本文所公开的更新服务可以部署成支持任意数量的内容环境和应用环境。

在图中提供的功能框图、操作方案和序列以及流程图代表了用于执行本公开的新颖的方面的示范性的系统、环境和方法。虽然为了简化说明的目的,本文所包含的方法可以为功能图、操作方案或序列或流程图的形式,并且可以被描述为一系列动作,应当理解且意识到,所述方法不受动作顺序限制,因为一些动作可以据此以与如图所示和本文所描述的其它动作不同的顺序发生和/或与其同时发生。例如,本领域技术人员将理解和意识到,方法可以可替代地表示为一系列互相关的状态或事件,诸如状态图。而且,不是在方法中所说明的所有动作都是新颖的实现方式所需要的。

本文所包含的说明和附图描绘了具体的实现方式以教导本领域技术人员如何实现和利用最佳的选择。为了教导发明原理的目的,一些常规的方面已经简化或省略。本领域技术人员将意识到来自这些实现方式的落入本发明范围内的变型例。本领域技术人员还将意识到,上述的特征能够以多种方式组合而形成多个实现方式。结果,本发明不限于上述的具体实现方式,而是仅由权利要求及其等同内容来限制。

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