首页> 中国专利> 优化升级任务的技术

优化升级任务的技术

摘要

提供了优化升级任务的技术。描述了用于对升级操作的执行区分优先级和优化的技术。技术可包括确定要被从一个存储介质复制到另一存储介质的数据块的大小,以及升级任务对数据块和其他任务的依赖性。可根据权重对任务区分优先级,该权重包括该任务及其依赖任务所依赖的数据块的累积大小。数据块复制可根据依赖于该数据块的任务的累积权重被区分优先级。一些实施例可并行地,而非顺序地,执行数个数据复制和/或任务。对其他实施例也予以描述并要求保护。

著录项

  • 公开/公告号CN102722381A

    专利类型发明专利

  • 公开/公告日2012-10-10

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN201210081385.X

  • 申请日2012-03-23

  • 分类号G06F9/445;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人胡利鸣

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 06:47:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-03-01

    授权

    授权

  • 2015-08-19

    专利申请权的转移 IPC(主分类):G06F9/445 变更前: 变更后: 登记生效日:20150727 申请日:20120323

    专利申请权、专利权的转移

  • 2014-04-30

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20120323

    实质审查的生效

  • 2012-10-10

    公开

    公开

说明书

技术领域

本申请涉及优化升级任务的技术。

背景技术

升级或更新计算机系统上的软件和/或数据可包括将大量的数据从一个存 储介质复制到另一存储介质,以及执行使用数据或对数据进行操作的多个脚 本。数据被复制的次序实质上可以是随机的。依赖于要执行的数据的后同步任 务不能够被执行,直到该数据被复制。此外,一些任务可依赖要首先执行的其 他任务。升级复制操作和任务执行可顺序地发生。此外,除了依赖性考虑之外, 升级任务可实质上随机地发生。这样的升级过程的总体效果可能在使用处理和 网络资源方面是低效的,延长了升级过程并负面地影响了生产力。本发明的改 进正是针对这些和其他考虑事项而需要的。

发明内容

提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描 述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要 特征,也不旨在用于帮助确定所要求保护的主题的范围。

各实施例总体上针对用于优化升级或更新过程的技术。一些实施例尤其涉 及用于通过根据大小和依赖性对过程步骤区分优先级来优化包括复制数据和 执行与数据相关的任务的升级过程的技术。在一实施例中,例如,技术可包括 确定要被从一个存储介质复制到另一存储介质的数据块的大小,以及升级任务 对数据块和其他任务的依赖性。可根据权重对任务区分优先级,该权重包括该 任务及其依赖任务所依赖的数据块的累积大小。数据块复制可根据依赖于该数 据块的任务的累积权重被区分优先级。一些实施例可并行地,而非顺序地,执 行数个数据复制和/或任务。对其他实施例也予以描述并要求保护。

通过阅读下面的详细描述并参考相关联的附图,这些及其它特点和优点将 变得显而易见。应该理解,前面的概括说明和下面的详细描述只是说明性的, 不会对所要求保护的各方面形成限制。

附图说明

图1示出了用于优化升级过程的第一系统的实施例。

图2示出了用于优化升级过程的第二系统的实施例。

图3示出了用于优化升级过程的第三系统的实施例。

图4示出了要优化的一组数据和任务的实施例。

图5示出了显示经区分优先级的列表的用户界面的实施例。

图6示出逻辑流程的实施例。

图7示出计算体系结构的实施例。

图8示出通信体系结构的实施例。

具体实施方式

各实施例针对用于优化升级任务的系统和技术。一实施例可考虑数据块 (诸如表或文件)的大小和依赖于该数据的任务,来对复制和任务执行的次序 区分优先级。一实施例可并行地执行复制和任务执行的一些。一实施例可允许 任务或数据复制的优先级被覆盖。结果,各实施例可提高操作者、设备或网络 的可承受性、可伸缩性、模块性、可扩展性或互操作性。

一些计算机实现的应用使用大量的数据。数据可被存储在一个或多个数据 库中。这样的应用的示例可包括企业应用、库存管理应用等。应用可包括客户 端组件和服务器组件。升级数据和/或应用可包括将新版本的数据从一个位置复 制到不同的位置。虽然此处的讨论涉及升级过程,但是各实施例可包括其他过 程,其他过程包括可被区分优先级的多个复制和任务步骤。这样的过程可包括 例如用于恢复丢失或损坏的数据的恢复过程、或用于更新远程站点处的数据的 更新过程。各实施方式不限于这些示例。

图1示出了用于优化升级过程的系统100的框图。在一个实施例中,例如, 系统100可包括具有诸如服务器110和服务器120的多个组件的计算机实现的 系统100。如此处所使用的,术语“系统”和“组件”旨在指代与计算机相关 的实体,包括硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件 可被实现为在处理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存 储介质的)存储驱动器、对象、可执行代码、执行的线程、程序、和/或计算机。 作为说明,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组 件可以驻留在进程和/或执行的线程内,且组件可以视给定实现所需而位于一台 计算机上和/或分布在两台或更多的计算机之间。各实施例不限于该上下文。

在图1中示出的所示实施例中,系统100可用一个或多个电子设备实现。 电子设备的示例可包括但不限于,移动设备、个人数字助理、移动计算设备、 智能电话、蜂窝电话、手机、单向寻呼机、双向寻呼机、消息通信设备、计算 机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、手持式 计算机、服务器、服务器阵列或服务器场、web服务器、网络服务器、因特网 服务器、工作站、小型计算机、大型计算机、超级计算机、网络设备、web设 备、分布式计算系统、多处理器系统、基于处理器的系统、消费电子产品、可 编程消费电子产品、电视机、数字电视机、机顶盒、无线接入点、基站、订户 站、移动订户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换 机、机器、或其组合。虽然图1中示出的系统100具有按照某种拓扑结构的有 限数量的元素,但可以理解,系统100可以视给定实现的需要而包括按照替代 拓扑结构的更多或更少元素。

服务器110和服务器120可以经由各种类型的通信介质来通信地耦合。服 务器110和服务器120可以协调彼此之间的操作。该协调可以涉及单向或双向 信息交换。例如,服务器110和服务器120可以传递通过通信介质传递的信号 形式的信息。该信息可被实现成分配给各条信号线的信号。在这些分配中,每 一个消息都是信号。然而,其他实施方式可另选地采用数据消息。这些数据消 息可以跨各个连接发送。示例性连接包括并行接口、串行接口和总线接口。

在各实施例中,系统100可包括服务器110。服务器110可以是电子设备。 服务器110可包括存储数据112的计算机可读存储介质。数据112可以是存储 在一个或多个数据块中的数据。数据块可以是例如,数据库表或文件。

服务器110可包括在服务器110上操作的应用114。应用114可使用数据 112并对数据112进行操作。应用114可以是例如,企业资源计划应用、客户 关系管理应用、业务线应用、或存储、管理和使用大量数据的其他应用。应用 114可以是到由不同设备(诸如,服务器120)提供的应用功能的接口,例如, “哑”终端。系统100可以包括一个以上的服务器110。

在各实施例中,系统100可包括服务器120。服务器120可提供用于应用 114的服务,包括更新或升级功能。服务器120可执行例如数据的处理、备份 和/或管理。数据可包括例如,人员数据、库存数据、客户数据、商业记录、信 件、产品开发数据等。

服务器120可包括数据122。数据122可以是数据112的副本,或可以是 数据112的不同版本。例如,数据122可包括相比于数据112而言更多的数据 块、更少的数据块、或被不同结构化的数据块。数据122可具有与数据112相 同数量和结构的数据块,但可包含不同的数据。数据122可包含例如相比于数 据112而言更加新的数据。

服务器120可包括更新器130。更新器130可以是对服务器110上的数据 进行升级、更新和/或恢复的组件。升级过程可包括将数据块复制到诸如服务器 110的目标设备,以及对所复制的数据执行任务或使用所复制的数据来执行任 务。复制数据块和执行任务的组合在此可被统称为“升级操作”。

更新器130可包括任务132。任务132可包括要对数据122执行的或使用 数据122来执行的一个或多个操作或操作集,包括后同步操作。操作可以是例 如,脚本、经编译的软件指令、经解释的软件指令、小应用程序、宏、固件指 令等。一些任务可依赖于一个或多个数据块,这意味着在任务可被执行之前, 该任务可能需要具有数据122中被复制到服务器110的数据块。一些任务可依 赖于其它任务,这意味着一任务可能需要在依赖于它的任务能被执行之前被执 行。在一实施例中,在数据122被复制到服务器110后,任务132可由服务器 120对该数据122执行。任务232的示例可包括排序数据、分析数据、使数据 相关等。

在一实施例中,更新器130可能够并行地一次执行一个以上的升级操作。 例如,更新器130可能够一次将两个或更多个数据块复制到服务器110,或可 能够在将一个或多个数据块复制到服务器110的同时执行一个或多个任务。

在一实施例中,更新器130可包括优先级区分器134。优先级区分器134 可以是更新器130的组件,或可用作服务器120上的独立应用或过程。优先级 区分器134可检查数据122和任务132以及它们的依赖性来对升级操作的次序 区分优先级。在一实施例中,优先级区分器134可考虑数据块的大小、依赖于 数据块的任务的数量、任务所依赖的数据块的数量、任务所依赖的数据块的大 小、依赖于一任务的任务的数量、一任务所依赖的任务的数量、或它们的任何 组合,来确定执行升级操作的次序。在一实施例中,优先级区分器134可在对 升级操作区分优先级时附加地分析和考虑其它因素,诸如网络条件和/或硬件配 置。在一实施例中,优先级区分器134可按顺序的升级次序对升级操作区分优 先级。在一实施例中,优先级区分器134可根据可发生的指定数量的并行操作 来将升级操作区分优先级为升级次序。

在一实施例中,服务器120可包括调度器140。调度器140可以是更新器 130的组件,或可用作服务器120上的独立应用或过程。调度器140可接收经 区分优先级的升级次序并根据该次序来开始升级操作。在一实施例中,调度器 140可请求或接收多个可用的并行处理资源,例如,处理器线程,并可将升级 操作按次序地分配给各个可用的处理资源。例如,如果5个线程是可用的,则 调度器140可在这些线程的各个线程中启动前5个升级操作中的各个升级操 作。当升级操作完成并且处理资源变得可用时,调度器140可按优先级次序选 择下一其依赖性已经得到满足的升级操作。在以上示例中,如果第六个升级操 作是依赖于依然正在被复制的数据块的任务,则调度器140可跳过该第六个操 作并选择第七个升级操作。

图2示出了用于优化升级过程的系统200的框图。系统200可类似于系统 100,但可包括服务器210上而非服务器220上的更新器230。在系统200中, 更新器230可在升级操作期间从服务器220获取数据222。更新器230可本地 地、在服务器210上对所获取的数据执行任务232。如果任务232等同于系统 100中的任务132,并且数据222等同于系统100中的数据122,则优先级区分 器234可相比于优先级区分器134而言不同地对任务和数据复制区分优先级。 例如,如果任务232要被服务器210执行,则相比于服务器120,服务器210 的硬件配置可建议不同的次序来优化升级操作。

调度器240可接收经区分优先级的升级次序并根据该次序来开始来自服务 器210的升级操作。在一实施例中,调度器240可请求或接收服务器210上多 个可用的并行处理资源,例如,处理器线程,并可将升级操作按次序地分配给 各个可用的处理资源。所得到的系统200中复制和任务的完成的实际次序可与 系统100中的不同,尤其在服务器210相比于服务器120而言具有对其可用的 不同数量的处理资源的情况下,或在服务器210相比于服务器120而言具有不 同的硬件配置使得复制和/或任务以不同的速度完成的情况下。

图3示出了用于优化升级过程的系统300的框图。系统300可类似于系统 100和200。然而,系统300可具有与应用服务器320分开的数据服务器350。 数据服务器350可存储数据322。如同数据122一样,数据322可以是服务器 310上的数据312的副本,或可以是数据312的不同版本。数据服务器350可 以是例如,备份服务器或多个客户端系统的集中式数据存储。

类似于服务器120的应用服务器320可提供用于应用314的服务,包括由 更新器330管理的更新或升级功能。类似于更新器130和230,更新器330可 以与数据服务器350进行通信,并作为升级过程的一部分,可分析数据322中 需要被复制到服务器310的数据块的大小。

如以上所述,优先级区分器334可根据数据块的大小以及任务和数据块之 间的依赖性来对任务332和数据322的复制区分优先级。在确定任务和数据复 制的优先级时,优先级区分器334可分析并考虑应用服务器320、数据服务器 350和/或服务器310的硬件和网络配置。

调度器340可接收经区分优先级的升级次序并根据该次序来开始升级操 作。如同调度器140和240一样,调度器340可请求或接收多个可用的并行处 理资源,并可将升级操作按次序地分配给各个可用的处理资源。所得到的系统 300中的复制和任务的完成的实际次序可与系统100和200中的不同,例如在 数据服务器350和服务器310之间的数据传输率不同于应用服务器320和服务 器310之间的数据传输率的情况下。

图4是示出包括任务和要复制的数据块的升级操作集的示例以及它们的依 赖性的图400。在图4中,数据块由矩形表示,任务由圆圈表示,依赖性由箭 头表示。图4中示出的操作集因此具有六个数据块:D1-D6,以及9个任务, T 1-T9。各个数据块的大小被显示为该数据块中的“S”值,例如,D1具有20 兆字节(MB)的大小,而DB5具有2MB的大小。

任务可依赖于一个或多个数据块和/或一个或多个任务。例如,任务T6依 赖于数据块DB1和DB3,这意味着在任务T6能被执行之前,DB1和DB3必 须被复制。任务T4例如依赖于任务T6和数据块DB3,这意味着在T4能被执 行之前,DB3必须被复制并且任务T6必须完成。

每个任务都可具有任务权重,显示为“TW”数值。在一实施例中,任务 的任务权重是通过以下方式计算的:将该任务所依赖的所有数据块的大小相加 作为第一权重(显示为“W1”数值),并接着将依赖于该任务的所有其它任务 的第一权重相加(显示为“W2”数值)。任务权重可以是W1和W2的和。例 如,对于任务T1,W1是DB1和DB2的相加的大小,因为T1依赖于DB1和 DB2。对于T1:W1=20+15=35。T1被T3所依赖,T3具有15的W1。T1的 W2是W2=35+15=50。T1的任务权重是TW:35+50=85。任务T3依赖于DB2, 并具有15的W1。T3不被任何任务所依赖,因此其W2是0。T3的任务权重 是TW:15+0=15。

每个数据块都可具有复制权重,显示为“CW”数值。在一实施例中,复 制权重可通过将数据块的大小加到直接依赖于该数据块的所有任务的W2值来 计算。例如,DB4具有S=2,并且具有直接依赖于其的两个任务:T8和T2。 T8具有W2=0,T2具有W2=18。因此,DB4的复制权重等于2+0+18=20。

在一实施例中,任务和数据块可分别根据任务权重和复制权重被区分优先 级。在图4中示出了优先级排序的示例,由每个数据块和任务左上方的小圆圈 中的数字表示。一般而言,具有最大复制权重的数据块可被分配给最高的优先 级。相对于其它数据块而言,大的复制权重可反映出依赖于该数据块的任务的 数量以及数据块本身的大小。剩余的数据块和任务可根据它们各自的复制权重 和任务权重被区分优先级。

在图4中,DB 1具有第一优先级,因为它具有最大的复制权重231。DB3 具有第5优先级,具有为90的复制权重,而T4由于其任务权重为30而具有 第9优先级。如果两个或更多个升级过程具有相同数值的复制权重或任务权重, 则优先级可例如根据相应的W1和大小值或根据过程所具有的依赖性来确定。 例如,在图4中,DB3和T6各自具有为90的权重。T6依赖于DB3,并因此 具有低于DB3的优先级。在其他实施例中,任务和数据块可根据附加的或替代 的因素来被区分优先级,诸如但不限于,硬件配置、网络条件、可用的处理资 源等。

分配给任务和数据块的优先级不一定反映出任务和数据块复制发生的实 际次序。一般而言,在给定N个并行处理资源的情况下,前N个升级过程可一 起开始。在升级过程中的一个升级过程完成并且其处理资源变得可用时,调度 器可检查下一最高优先级升级过程来确定它是否能被执行。然而,如果该过程 依赖于还没有完成的数据块或任务,则调度器可跳过该过程并检查下一最高优 先级,直到找到能被执行的过程。例如,在图4中,DB1,DB2,DB5,T7和 DB3是前5个最高优先级任务。如果系统具有四个可用的处理资源,则DB1, DB2和DB5将实质上一起开始被复制。然而,T7依赖于DB1,DB2和DB5, 因此不能在这三个数据块被复制之前执行。调度器可接着检查下一最高优先级 项,DB3,并且由于它不依赖于任何其它过程,调度器可致使DB3的复制开始。 T7可以作为在DB1,DB2和DB5被复制完成后的下一过程被开始。

图5示出了用户界面(UI)500的实施例,该用户界面显示图4的各升级 操作的经区分优先级的列表的示例。UI 500可向用户(例如,应用管理员)显 示升级操作的经区分优先级的列表,并可允许用户覆盖优先级并对优先级重新 排序。

UI 500可按表格的形式显示升级操作,该表格形式具有一个或多个列以及 对应于前N个区分优先级的操作的N个行。列可包括例如,优先级列510、项 目列512、任务权重列514、复制权重列516以及“依赖”列518。优先级列 510可标识由优先级区分器分配给升级操作的优先级次序。作为默认,UI 500 可按优先级次序从最高到最低排序。在一实施例中,优先级列510可在UI 500 中被省略,具有暗示的优先级次序。项目列512可包括升级操作的名称或描述, 使得用户可能够标识任务或数据表。

任务权重列514可显示列表中的任务的任务权重,并可将0显示为数据表 的值。复制权重列516可显示列表中的数据表的复制权重,并可将0显示为列 表中的任务的值。在一实施例中,任务权重列514和复制权重列516可被组合 到“权重”列,该“权重”列显示列表中任务和数据表的相应的任务和复制权 重。在一实施例中,UI 500可不显示权重。

“依赖”列518可列出项目所依赖的其它任务和数据表。例如,第四优先 级项目T7依赖于DB1,DB2和DB5。该信息在用户决定是否要对升级操作重 新排序时是有用的。在一实施例中,UI500可附加地或替代地将依赖于行项目 的项目显示在例如“被依赖”列中。在这样的实施例中,例如,第一优先级项 目DB1将显示T1,T4,T6和T7作为依赖于它的项目。

UI 500可向用户提供一种改变所显示的项目的优先级的方式。例如,UI 500 可提供增加按钮520和减少按钮522。在一实施例中,增加按钮520和减少按 钮522可仅仅在重排序按钮526被选择后激活。选择表格中的项目并选择增加 按钮520一次可将所选项目的优先级增加1,而将在所选项目之上的项目的优 先级减少1。例如,如果第五优先级项目DB3被选择,并且增加按钮520被选 择一次,那么DB3将被重新分配优先级4,而先前的第四优先级项目T7将被 分配优先级5。减少按钮522可与增加按钮520类似地操作,但是降低项目的 优先级。

在一实施例中,优先级可例如通过以下方式被改变:用户用输入设备(诸 如,鼠标)选择、拖放列表中的项目到一对应于不同优先级的新的位置。在一 实施例中,优先级列510中的字段可以是可编辑的,并且用户可通过选择字段 并从例如键盘在字段中输入新的数字优先级来改变优先级。在一实施例中,任 务权重列514和复制权重列516中的字段可以是可编辑的,并允许用户改变数 据块的复制权重或任务的任务权重。在一实施例中,任务编写器可包括任务的 附加权重系数,该附加权重系数致使所计算的任务权重乘以该权重系数,从而 改变任务的有效任务权重。权重系数可被包括在任务的属性中。各实施方式不 限于这些示例。

一旦优先级次序在需要或不需要重新排序的情况下对用户而言是满意的, 选择接受按钮524可关闭UI 500并致使优先级信息被提供给调度器。调度器可 接着根据所接受的优先级来开始升级过程。在一实施例中,取消按钮可被提供 来终止升级过程。

UI的其他实施例是可能的。例如,UI可将关于升级过程的信息提供为以 某个次序安排的图形(诸如图标)来显示它们的优先级。图形可由输入设备选 择拖曳到不同的优先级位置。UI可用连接线来显示升级过程之间的关系,类似 于图4中的那些。各实施例不限于UI 500的示例。

上述实施例的操作可参考一个或多个逻辑流程来进一步描述。可以理解, 除非另外指明,否则代表性的逻辑流程不一定要按所呈现的次序或者按任何特 定次序来执行。此外,关于逻辑流程描述的各种活动可按串行或并行的方式执 行。视给定一组设计和性能约束所需,逻辑流程可使用所述实施例的一个或多 个硬件元件和/或软件元件或替换元件来实现。例如,逻辑流程可被实现为供逻 辑设备(例如,通用或专用计算机)执行的逻辑(例如,计算机程序指令)。

图6示出逻辑流程600的一个实施例。逻辑流程600可表示由在此所描述 的一个或多个实施方式所执行的操作中的部分或全部。

在图6显示的示出的实施例中,逻辑流程600可在框602处确定升级过程 的任务和数据块之间的依赖性。例如,升级器130可检测各个升级任务的代码 来确定任务需要什么数据块,以及在任务可被执行之前需要执行什么其它任 务。在一实施例中,各个任务都可包括例如,列出其依赖性的注释。在一实施 例中,一分开的数据文件可包括针对各个任务和数据块的条目,条目列出什么 任务和数据块依赖于条目中的项目。数据文件可以是例如,表格、列表、数据 库、电子表格等。

在一实施例中,任务可具有一个或多个属性,除其它功能,该一个或多个 属性可以是将元数据应用到其它类和方法的专用类。属性可被用于公布一任务 依赖于什么其它任务和数据块。更新器130可读取任务的属性中的信息来确定 任务的依赖性。

逻辑流程400可在框604处计算升级过程中任务的任务权重。例如,优先 级区分器134可通过以下方式计算任务的任务权重:将任务所依赖的所有数据 块的大小相加作为第一权重,并接着将依赖于该任务的所有其它任务的第一权 重相加作为第二权重。任务权重可以是第一权重和第二权重的和。例如,如果 一任务依赖于大小为15MB的数据块,并具有依赖于该任务的具有为30的第 一权重的任务,那么该任务的第二权重是15+30=45。任务权重则是30+45=75。

逻辑流程600可在框606处计算升级过程中数据块的复制权重。例如,优 先级区分器134可通过将数据块的大小与直接依赖于该数据块的所有任务的第 二权重相加来计算复制权重。例如,如果数据块具有20MB大小,并具有依赖 于该数据块的三个任务分别具有为10、5和2的第二权重,那么复制权重是 20+10+5+2=37。

在一实施例中,可计算其它度量,诸如将数据块从一设备复制到一另一设 备有多快、或在各个设备上执行该任务要花费多长时间。

逻辑流程600可在框608处根据任务权重、复制权重和/或依赖性来对升级 操作区分优先级。例如,优先级区分器134可将最高优先级分配给具有最高权 重(分别为任务权重或复制权重)的任务或数据块。在相同权重的情况下,可 考虑其它因素,诸如依赖的数量、过程是数据块复制还是任务、操作之一是否 依赖于其它操作、或其它考虑。在一实施例中,可在对升级操作区分优先级时 分析并考虑附加的或替代的因素。例如,网络条件、硬件配置、数据块结构和 /或其它影响性能的条件可影响优先级的分配。

在一实施例中,更新器130可显示用户界面(UI),该用户界面示出具有 其优先级的指示的升级操作的一些或全部。UI可允许用户覆盖升级操作的被分 配的优先级。在一实施例中,UI可允许用户编辑数据块的复制权重或任务的任 务权重,或编辑优先级。在一实施例中,UI可允许用户从升级过程的列表中移 除任务或数据块复制操作。

逻辑流程600在框610可根据优先级来执行升级操作。例如,调度器140 可获得一定数量的处理资源,诸如线程,并开始该数量个升级操作。在一实施 例中,优先级排序可不同于执行次序。一些较高的优先级操作在它们能被执行 之前可依赖于其它数据块或任务的完成。较低的优先级操作反而能被执行,直 到所依赖的操作完成,较高的优先级操作可启动。例如,当升级过程之一完成 并且其处理资源变得可用时,调度器可检查下一最高优先级升级过程来确定它 是否能被执行。然而,如果该过程依赖于还没有完成的数据块或任务,则调度 器可跳过该过程并检查下一最高优先级,直到找到能被执行的过程。

各实施例由此可利用并行的处理能力,并且通过分析依赖性,可优化复制 和任务操作来最小化升级过程期间的停机时间。优化也可通过确保数据在依赖 于它的任务之前被复制来保护功能数据完整性。

图7示出适用于实现上述各实施例的示例性计算体系结构700的实施例。 计算体系结构700包括各种常见计算元件,如一个或多个处理器、协同处理器、 存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、 音频卡、多媒体输入/输出(I/O)组件,等等。然而,各实施方式不限于由计 算体系结构700来实现。

如图7所示,计算体系结构700包括处理单元704、系统存储器706以及 系统总线708。处理单元704可以是可购得的各种处理器中的任一种。双微处 理器和其它多处理器体系结构也可用作处理单元704。系统总线708向包括但 不限于系统存储器706的各系统组件提供到处理单元704的接口。系统总线708 可以是若干种总线结构中的任一种,这些总线结构还可互连到存储器总线(带 有或没有存储器控制器)、外围总线、以及使用各类市场上可购买到的总线体 系结构中的任一种的局部总线。

系统存储器706可以包括各种类型的存储器单元,诸如只读存储器 (ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据率DRAM (DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM (PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、 闪存、诸如铁电聚合物存储器等聚合物存储器、奥氏存储器、相变或铁电存储 器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、或适于存 储信息的任何其他类型的介质。在图7示出的所示实施方式中,系统存储器706 可包括非易失性存储器710和/或易失性存储器712。基本输入/输出系统(BIOS) 可以存储在非易失性存储器710中。

计算机702可包括各种类型的计算机可读存储介质,包括内置硬盘驱动器 (HDD)714、用于读写可移动磁盘718的磁软盘驱动器(FDD)176、以及用 于读写可移动光盘722(例如,CD-ROM或DVD)的光盘驱动器720。HDD 714、 FDD 716、以及光盘驱动器720可分别由HDD接口724、FDD接口726和光盘 驱动器接口728连接到系统总线708。用于外置驱动器实现的HDD接口724 可包括通用串行总线(USB)和IEEE 1394接口技术中的至少一种或两者。

驱动器及相关联的计算机可读介质提供了对数据、数据结构、计算机可执 行指令等的易失性和/或非易失性存储。例如,多个程序模块可存储在驱动器和 存储器单元710、712中,包括操作系统730、一个或多个应用程序732、其他 程序模块734和程序数据736。一个或多个应用程序732、其他程序模块734、 以及程序数据736可包括例如应用114和更新器130。

用户可以通过一个或多个有线/无线输入设备,例如键盘738和诸如鼠标 740等定点设备将命令和信息输入到计算机702中。其他输入设备可包括话筒、 红外(IR)遥控器、操纵杆、游戏垫、指示笔、触摸屏等等。这些和其他输入 设备通常通过耦合到系统总线708的输入设备接口742连接到处理单元704, 但也可通过诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接 口等其他接口连接。

监视器744或其他类型的显示设备也经由诸如视频适配器746等接口连接 到系统总线708。除了监视器744之外,计算机通常包括诸如扬声器、打印机 等其他外围输出设备。

计算机702可使用经由有线和/或无线通信至一个或多个远程计算机(诸如 远程计算机748)的逻辑连接在联网环境中操作。远程计算机748可以是工作 站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱 乐设备、对等设备或其他常见的网络节点,并且通常包括相对于计算机702描 述的许多或所有元件,但为简明起见仅示出了存储器/存储设备750。所描绘的 逻辑连接包括到局域网(LAN)752和/或例如广域网(WAN)754等更大网络 的有线/无线连接。这种LAN和WAN联网环境常见于办公室和公司,并且方 便了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全 球通信网络。

当在LAN联网环境中使用时,计算机702通过有线和/或无线通信网络接 口或适配器756连接到LAN 752。适配器756可以方便到LAN 752的有线和/ 或无线通信,并且还可包括其上设置的用于使用适配器756的无线功能进行通 信的无线接入点。

当在WAN联网环境中使用时,计算机702可包括调制解调器758,或连 接到WAN 754上的通信服务器,或具有用于诸如通过因特网等通过WAN 754 建立通信的其它装置。或为内置或为外置以及有线和/或无线设备的调制解调器 758经由输入设备接口742连接到系统总线708。在联网环境中,相对于计算 机702所描绘的程序模块或其部分可以存储在远程存储器/存储设备750中。应 该理解,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路 的其他手段。

计算机702可操作来使用IEEE 802标准系列来与有线和无线设备或实体 进行通信,这些实体例如是在操作上安置成与例如打印机、扫描仪、台式和/ 或便携式计算机、个人数字助理(PDA)、通信卫星、任何一件与无线可检测 标签相关联的设备或位置(例如,电话亭、报亭、休息室)以及电话进行无线 通信(例如,IEEE 802.7空中调制技术)的无线设备。这至少包括Wi-Fi(即 无线保真)、WiMax和蓝牙TM无线技术。由此,通信可以如对于常规网络那样 是预定义结构,或者仅仅是至少两个设备之间的自组织(ad hoc)通信。Wi-Fi 网络使用称为IEEE 802.7x(a、b、g等等)的无线电技术来提供安全、可靠、 快速的无线连接。Wi-Fi网络可用于将计算机彼此连接、连接到因特网以及连 接到有线网络(使用IEEE 802.3相关的介质和功能)。

图8示出适用于实现上述各实施例的示例性通信体系结构800的框图。通 信架构800包括各种常见通信元件,如发射机、接收机、收发机、无线电装置、 网络接口、基带处理器、天线、放大器、滤波器,等等。然而,各实施方式不 限于由通信架构800来实现。

如图8所示,通信架构800包括一个或多个客户机802和服务器804。客 户机802可实现服务器系统110、210和/或310。服务器804可实现服务器系 统120、220、320和/或350。客户机802和服务器804可操作地连接到可被用 来存储相应客户机802和服务器804本地的信息(如cookie和/或相关联的上下 文信息)的一个或多个相应客户机数据存储808和服务器数据存储810。

客户机802和服务器804可以使用通信框架806在彼此之间传递信息。通 信框架806可以实现任何公知通信技术,如适用于与分组交换网络(例如,诸 如因特网等公共网络、诸如企业内联网等专有网络,等等)、电路交换网络(例 如,公共交换电话网)、或分组交换网络和电路交换网络的组合(使用合适的 网关和转换器)一起使用的技术。客户机802和服务器804可以包括被设计成 可与通信框架806进行互操作的各种类型的标准通信元件,如一个或多个通信 接口、网络接口、网络接口卡(NIC)、无线电装置、无线发射机/接收机(收 发机)、有线和/或无线通信介质、物理连接器等。作为示例而非限制,通信介 质包括有线通信介质和无线通信介质。有线通信介质的示例可以包括导线、电 缆、金属线、印刷电路板(PCB)、背板、交换光纤、半导体材料、双绞线、 同轴电缆、光纤、所传播的信号等。无线通信介质的示例可以包括声学、射频 (RF)频谱、红外和其他无线介质。客户机802和服务器804之间的一种可能 的通信可以是以适用于在两个或更多计算机进程之间传输的数据包的形式。例 如,数据包可以包括cookie和/或相关联的上下文信息。

各实施例可以使用硬件元件、软件元件或两者的组合来实现。硬件元件的 示例可以包括设备、组件、处理器、微处理器、电路、电路元件(例如,晶体 管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编 程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、 存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件 元件的示例可以包括软件组件、程序、应用软件、计算机程序、应用程序、系 统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、 函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、 计算机代码、代码段、计算机代码段、文字、值、符号、或其任意组合。确定 一实施例是否使用硬件元件和/或软件元件来实现可视给定实现所需根据任何 数量的因素而变化,这些因素如所需计算速率、功率级、耐热性、处理周期预 算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其它设计 或性能约束。

一些实施方式可包括制品。制品可包括用于存储逻辑的存储介质。存储介 质的示例可包括能够存储电子数据的一种或多种类型的计算机可读存储介质, 包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不 可擦除存储器、可写或可重写存储器等。逻辑的示例可包括各种软件元件,诸 如软件组件、程序、应用软件、计算机程序、应用程序、系统程序、机器程序、 操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、 软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、 计算机代码段、文字、值、符号、或其任意组合。例如,在一个实施例中,制 品可以存储可执行计算机程序指令,该指令在由计算机执行时使得该计算机执 行根据所描述的各实施方式的方法和/或操作。可执行计算机程序指令可包括任 何合适类型的代码,诸如源代码、已编译代码、已解释代码、可执行代码、静 态代码、动态代码等。可执行计算机程序指令可根据用于指示计算机执行特定 功能的预定义的计算机语言、方式或句法来实现。这些指令可使用任何合适的 高级、低级、面向对象、可视、已编译和/或已解释编程语言来实现。

一些实施例可使用表述“一个实施例”和“一实施例”及其派生词来描述。 这些术语意味着结合该实施例描述的特定特征、结构、或特性包括在至少一个 实施例中。出现在说明书中各个地方的短语“在一个实施例”并不必全都指的 是同一实施例。

一些实施例可使用表述“耦合的”和“连接的”及其派生词来描述。这些 术语不必旨在互为同义词。例如,一些实施例可使用术语“连接的”和/或“耦 合的”来描述以指示两个或更多元件彼此有直接的物理或电接触。然而,术语 “耦合的”还可以意味着两个或更多元件彼此不直接接触,而仍彼此合作或交 互。

要强调的是,提供了本公开的摘要以符合37C.F.R.1.72(b)节要求使读者能 快速确定本技术公开的特性的摘要。提交摘要的同时要明白,将不用它来解释 或限制权利要求的范围或含义。另外,在前面的详细描述中,可以看到,出于 将本公开连成一个整体的目的而将各种特征组合在一起放在单个实施方式中。 此公开方法将不被解释为反映所要求保护的实施方式要求比每个权利要求中 明确陈述的更多特征的意图。相反,如所附权利要求书所反映,发明性的主题 存在于比单个已公开实施方式的所有特征少的特征中。从而,据此将所附权利 要求结合进详细描述中,其中每个权利要求独立地代表一个单独的实施方式。 在所附权利要求书中,术语“包括”和“其中”分别用作术语“包含”和“其 特征在于”的易懂的英文等价词。而且,术语“第一”、“第二”、“第三” 等等只用作标记,而不旨在将数字要求强加于其对象上。

尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所 附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述 具体特征和动作是作为实现权利要求的示例形式公开的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号