著录项信息
专利名称 | 用于下载更新的方法和系统 |
申请号 | CN200510137028.0 | 申请日期 | 2005-12-13 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2006-06-21 | 公开/公告号 | CN1790266 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/445 | IPC分类号 | G;0;6;F;9;/;4;4;5查看分类表>
|
申请人 | 微软公司 | 申请人地址 | 美国华盛顿州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 微软技术许可有限责任公司 | 当前权利人 | 微软技术许可有限责任公司 |
发明人 | J·F·麦凯 |
代理机构 | 上海专利商标事务所有限公司 | 代理人 | 张政权 |
摘要
本发明的实施例提供了软件提供商利用对等环境向若干不同的接收者分发软件更新的能力。此处所描述的本发明可用于更新任何类型的软件,包括但不限于操作软件、编程软件、反病毒软件、数据库软件等。具有增加的安全性的对等环境的使用提供了最小化每一对等体的下载时间并也减少必须由软件提供商提供来使得接收者(对等体)能够获得更新的出口带宽的数量的能力。
1.一种用于更新网络中的第一计算设备的方法,所述网络包括所述第一计算设备和主机,所述第一计算设备具有用于存储至少一个更新的高速缓存,所述方法包括:
(A)在所述第一计算设备处从所述主机接收可用更新列表;
(B)响应于步骤(A),在所述第一计算设备处从所述可用更新列表中确定所需更新,其中,所述所需更新被分割成多个片断;
(C)在所述第一计算设备处从所述主机接收用于获得所确定的所需更新的更新选项列表,所述更新选项列表包括标识部分更新、完全更新以及由所述部分更新可更新的文件的期望散列值的信息;
(D)响应于步骤(C),在所述第一计算设备处从所述更新选项列表中确定一更新选项,所述步骤(D)包括:
确定所述第一计算设备是否包括其散列值与所述期望散列值匹配的文件;
当所述第一计算设备包括其散列值与所述期望散列值匹配的文件时,选择对应于所述期望散列值的该部分更新作为所述更新选项;
当所述第一计算设备不包括其散列值与所述期望散列值匹配的文件时,选择所述完全更新作为所述更新选项;
(E)在所述第一计算设备处从所述主机接收网络中的计算设备列表,其中,所述计算设备列表对所述多个片断的每一个标识了使得该片断可用于下载的至少一个计算设备;
(F)从所述计算设备列表中的多个计算设备处下载所述多个片断中的每个片断到所述第一计算设备,其中,所述多个片断的至少两个是从不同的计算设备下载的;以及(G)使用所下载的所述多个片断更新所述第一计算设备的软件。
2.如权利要求1所述的方法,其特征在于,所述完全更新包括全补丁,而所述部分更新包括至少一个增量补丁。
3.如权利要求2所述的方法,其特征在于,所述增量补丁包括要使用所述增量补丁更新的文件的文件名和该文件的期望散列值。
4.如权利要求1所述的方法,其特征在于,所述的响应于步骤(A),在所述第一计算设备处确定所需更新的步骤包括:扫描所述第一计算设备以确定其当前状态,并将所述当前状态与可用更新列表进行比较;
其中所述方法进一步包括:
如果确定要在所述高速缓存中生成可用空间,就由所述第一计算设备从所述高速缓存中删除一片断,所述删除步骤包括:
通过将一优先级分配给高速缓存中存储的每个更新的片断来生成一个用于高速缓存中存储的更新的片断的优先级列表;
确定所述高速缓存是否有可用空间来下载所述多个片断;以及
如果所述高速缓存没有可用空间,从所述高速缓存中选择在优先级列表中具有低优先级的更新的片断以进行删除,其中为更新的每个片断所分配的优先级是基于对更新的每个片断请求的频率。
5.如权利要求1所述的方法,其特征在于,对于所述多个片断的至少一个,所述计算设备列表包括多个计算设备的标识。
6.如权利要求1所述的方法,其特征在于,所述计算设备是由网际协议地址标识的。
7.如权利要求1所述的方法,其特征在于,更新软件包括:
将所下载的片断组装成补丁;以及
安装所述补丁。
8.如权利要求1所述的方法,其特征在于,每一下载的片断是基于所述片断的散列来确认的。
9.如权利要求1所述的方法,其特征在于,还包括:
提供已下载的多个片断的标识;以及
与其它计算设备共享所标识的已下载的多个片断。
10.如权利要求9所述的方法,其特征在于,所述已下载的多个片断的标识包括每一已下载的片断的散列值。
11.如权利要求1所述的方法,其特征在于,在预定点上,所标识的已下载的多个片断不被共享。
12.一种用于向具有高速缓存的客户机提供对等体列表用于下载网络中的软件更新的方法,所述网络包括所述客户机和主机,所述高速缓存用于存储更新,所述方法包括:
从所述主机向所述客户机发送标识可用更新的列表;
从所述主机向所述客户机发送用于可用更新的更新选项列表,所述更新选项列表包括标识部分更新、完全更新以及由所述部分更新可更新的文件的期望散列值的信息;
由所述主机从所述客户机处接收对对等体列表的请求,所述对等体列表标识了可从其请求所述更新选项列表中的更新选项的对等体;
由所述主机生成标识多个对等体和多个片断的对等体列表,所述多个片断共同定义了所请求的更新选项;
由所述主机向所述客户机发送所述对等体列表;
其中所述对等体列表为所述多个片断中的每个片断标识了至少一个对等体。
13.如权利要求12所述的方法,其特征在于,所述标识可用更新的列表标识多个可用更新。
14.如权利要求12所述的方法,其特征在于,所述完全更新包括全补丁,而所述部分更新包括至少一个增量补丁。
15.如权利要求12所述的方法,其特征在于,由所述主机从客户机接收对对等体列表的请求包括接收对所述更新选项之一的对等体列表请求。
16.如权利要求12所述的方法,其特征在于,还包括:
接收所述可用更新的经高速缓存的片断的标识;以及
更新用于所述可用更新的主对等体列表。
17.如权利要求12所述的方法,其特征在于,所标识的对等体之一是主机计算机。
18.一种用于更新网络中的第一计算设备的系统,所述网络包括所述第一计算设备和主机,所述第一计算设备具有用于存储至少一个更新的高速缓存,所述系统包括:
(A)用于在所述第一计算设备处从所述主机接收可用更新列表的装置;
(B)响应于装置(A)中的动作,用于在所述第一计算设备处从所述可用更新列表中确定所需更新的装置,其中,所述所需更新被分割成多个片断;
(C)用于在所述第一计算设备处从所述主机接收用于获得所确定的所需更新的更新选项列表的装置,所述更新选项列表包括标识部分更新、完全更新以及由所述部分更新可更新的文件的期望散列值的信息;
(D)响应于装置(C)中的动作,用于在所述第一计算设备处从所述更新选项列表中确定一更新选项的装置,所述装置(D)包括:
用于确定所述第一计算设备是否包括其散列值与所述期望散列值匹配的文件的装置;
用于当所述第一计算设备包括其散列值与所述期望散列值匹配的文件时,选择对应于所述期望散列值的该部分更新作为所述更新选项的装置;
用于当所述第一计算设备不包括其散列值与所述期望散列值匹配的文件时,选择所述完全更新作为所述更新选项的装置;
(E)用于在所述第一计算设备处从所述主机接收网络中的计算设备列表的装置,其中,所述计算设备列表对所述多个片断的每一个标识了使得该片断可用于下载的至少一个计算设备;
(F)用于从所述计算设备列表中的多个计算设备处下载所述多个片断中的每个片断到所述第一计算设备的装置,其中,所述多个片断的至少两个是从不同的计算设备下载的;以及(G)用于使用所下载的所述多个片断更新所述第一计算设备的软件的装置。
19.如权利要求18所述的系统,其特征在于,所述计算设备列表对所述多个片断的每一个标识多个子片断,并对每一子片断标识使得该子片断可用于下载的计算设备。
20.如权利要求19所述的系统,其特征在于,所述计算设备列表对所述多个子片断的每一个标识多个子子片断,并对每一子子片断标识使得该子子片断可用于下载的计算设备。
21.如权利要求18所述的系统,其特征在于,进一步包括:如果确定要在所述高速缓存中生成可用空间,用于由所述第一计算设备从所述高速缓存中删除一片断的装置,所述用于删除的装置包括:
用于通过将一优先级分配给高速缓存中存储的每个更新的片断来生成一个用于高速缓存中存储的更新的片断的优先级列表的装置;
用于确定所述高速缓存是否有可用空间来下载所述多个片断的装置;以及
如果所述高速缓存没有可用空间,用于从所述高速缓存中选择在优先级列表中具有低优先级的更新的片断以进行删除的装置,其中为更新的每个片断所分配的优先级是基于对更新的每个片断的请求的频率。
22.如权利要求18所述的系统,其特征在于,所述更新所述软件的装置包括:
用于将所下载的片断组装成补丁的装置;以及
用于安装所述补丁的装置。
技术领域\n本发明一般涉及计算机更新,尤其涉及使用对等网络环境获取和安装更新的系统和方法。\n背景技术\n计算机,尤其是计算机软件通常是通过用户通过诸如因特网等网络从诸如软件提供商等主机下载软件补丁来更新的。当前,补丁完整地从单个来源下载,并且安装在下载机器上以将软件更新到当前状态。尽管该技术是可操作的,但是它具有若干缺陷。\n首先,使补丁可用于下载的软件提供商必须提供足够数量的出口带宽以允许多个顾客同时下载更新。对于具有大量顾客的软件提供商,这一出口带宽可能变得非常昂贵。\n其次,顾客在安装补丁和升级软件之前必须从一个来源下载整个补丁。尽管这对于小尺寸的补丁可能是可接受的,但对于较大的补丁,从一个来源下载整个补丁所需的时间可能是不可接受的。第三,如果所提供的软件并未使足够的带宽可用于下载(当发行诸如安全更新等高优先级补丁时,这尤其困难和昂贵),顾客可能被临时禁止下载补丁。\n对等网络中最近的进步提供了从多个对等体下载大文件的不同部分的能力。例如,图1示出了用于下载特定文件的典型对等环境的框图。为下载特定文件,客户机101向主机103请求特定文件。作为响应,主机发送一对等体列表,该对等体列表标识了可用于下载这些所请求文件的不同片断的多个对等体。例如,视频文件可被划分成多个片断,这些片断被划分成多个子片断,且这些子片断被划分成子子片断。先前从一个来源或从多个其它对等体下载该视频文件的每一对等体可用于由诸如客户机101等其它对等体下载整个文件的这些子子片断中的一个或多个。由主机103发送给客户机101的对等体列表标识了所请求的特定文件的子子片断的每一个以及可用于下载这些子子片断的相关联的对等体。\n在从主机103接收到对等体列表之后,客户机101为子子片断的每一个标识将从其中下载该子子片断的对等体。在标识了对等体之后,客户机101从所选择的对等体下载每一子子片断,直到下载了特定文件的所有子子片断。通过从不同的对等体下载片断,可同时进行多个下载。当下载了每一子子片断之后,客户机101可决定它是否希望成为可用于下载该子子片断(即,共享该子子片断)对等体。如果客户机决定它的确希望共享该子子片断,则客户机101向主机103标识它愿意共享的子子片断。\n尽管诸如参考图1所描述的对等环境提供了客户机下载它所请求的特定文件,诸如视频文件的能力,当前没有用于确定客户机可能需要什么文件的技术。例如,回头参考下载软件补丁,在请求补丁之前,客户机必须不仅知道有什么更新可用,还必须知道客户机需要什么更新。此外,当前没有保护下载计算机以免通过在材料被完全集成到下载计算机之前标识它共享什么而遭受危害的安全特征。此外,不存在当客户机需要收回本地高速缓存空间时软件提供商能够对客户机本地高速缓存中的多个补丁区分优先级的方法。\n因此,需要一种允许客户机标识所需的软件更新并使用对等网络安全地下载那些更新的系统和方法。\n发明内容\n本发明的实施例提供了软件提供商使用对等环境问若干不同的顾客分发软件更新的能力。此处描述的本发明可用于更新任何类型的软件,包括但不限于,操作软件、编程软件、反病毒软件、数据库软件等等。具有增加的安全性的对等环境的使用提供了最小化每一对等体的下载时间并也减少必须由软件提供商提供以使其顾客(对等体)能够获取更新的出口带宽的数量能力。\n依照本发明的第一方面,提供了一种用于更新第一计算设备的方法。该方法接收可用更新的列表,并确定是否需要列表上的任何更新。如果需要任何更新,则接收标识更新的片断以及可从其中获得这些片断的计算设备的计算设备列表。这些片断然后从计算设备下载,其中多个片断的至少两个从不同的计算设备下载。一旦下载了片断,使用下载的片断更新第一计算设备的软件。\n依照本发明的另一方面,提供了一种用于向客户机提供对等体列表以供下载软件更新的方法。该方法发送标识可用更新的列表并接收对可用更新的对等体列表请求。作为响应,生成标识多个对等体的对等体列表,其中每一标识的对等体可用于下载可用更新的至少一部分。该对等体列表然后被发送。\n依照本发明的另一方面,提供了一种具有计算机可读介质的计算机系统,该计算机可读介质中包括用于执行获取更新的方法的计算机可执行程序。该计算机系统接收可用更新的列表,并从可用更新列表中标识所需的更新。然后为所需的更新请求并接收对等体列表。所接收的对等体列表标识所需更新的多个片断,并为每一片断标识使得该片断可用于下载的一个或多个计算设备。该计算机系统然后从所标识的计算设备下载每一片断。\n附图说明\n当结合附图参考以下详细描述时,可以更好地理解且更容易明白本发明的上述方面和许多附加优点,附图中:\n图1示出了用于下载特定文件的典型对等环境的框图;\n图2A-2C示出了依照本发明的一个实施例使用对等环境下载软件更新的状态图;\n图3是依照本发明的一个实施例可由主机生成的、标识用于所需更新的不同选项的更新选项列表的框图;\n图4示出了依照本发明的一个实施例响应于来自客户机的对等体列表请求标识用于所需更新的对等体的对等体列表的框图;\n图5是依照本发明的一个实施例示出用于更新客户机的软件的客户机软件更新例程的流程图;\n图6示出了依照本发明的一个实施例可以作为用于从不同对等体下载所需更新的片断的客户机软件更新例程的一部分执行的下载子例程的流程图;\n图7示出了依照本发明的一个实施例用于扩展客户机系统上的高速缓存大小以启用补丁下载的优先级子例程的流程图;以及\n图8示出了依照本发明的一个实施例使用对等环境做出可用更新的主机例程。\n具体实施方式\n本发明的实施例提供了此处被称为主机的软件提供商向若干不同的接收者(此处称为对等体)分发软件更新的片断的能力。如此处所称的对等体包括使得可用于下载软件更新的一部分(片断)的任何类型的计算设备。例如,对等体可以是,但不限于,个别计算设备、服务器、主机计算设备、客户机计算设备等。具有软件更新的片断的对等体使得该片断对其它对等体可用于下载。当其它对等体获得同一软件片断时,它们也使得这些片断可用于其它对等体下载。由此,当包含片断的对等体的数目增加时,对该片断的可用下载站点的数目也增加。\n图2A-2C示出了依照本发明的一个实施例使用对等环境下载软件更新的状态图。对等环境200提供了客户机201标识所需更新并从主机203获取可从中获得那些更新的各部分的对等体的列表的能力。\n首先参考图2A,在初始状态,客户机201向主机请求可从主机203获得的更新的列表。在替换实施例中,主机203可在周期性的时刻发布由客户机201获得的可用更新列表。主机203在接收到对可用更新列表的请求之后,向客户机201发送可用更新列表。客户机201扫描其自身以确定其当前状态,并将该状态与可用更新列表进行比较以确定需要哪些更新。在确定了所需更新之后,客户机201向主机203请求用于所需更新的更新选项列表。主机203在接收对用于所需更新的更新选项的请求之后构建更新选项列表。\n对于客户机的私密性问题,在本发明的一个实施例中,从客户机向主机传递最小数量的客户机信息。例如,如上所述,主机提供可用更新列表,且客户机决定需要哪些。在一个替换实施例中,客户机可向主体提供其当前状态的标识,或对应于各种操作状态的信息,并且主机可向客户机通知所需更新。\n现在参考图3,描述了依照本发明的一个实施例可由主机生成的、标识用于所需更新的不同选项的更新选项列表。更新选项列表300对客户机201所请求的每一更新,诸如更新1301标识可用于获取该更新的不同选项。另外,更新选项列表300可包括用于若干所请求的更新的更新选项。例如,假定客户机201请求了用于更新1301和更新7303的更新选项,则更新选项列表300将包括所请求的更新301、303的每一个的标识以及可用于获取该更新的不同选项的标识。例如,更新1301可包括全补丁1305、增量1.1补丁307、增量1.2补丁309、以及增量1.3补丁311的标识。同样,更新7303可包括全补丁7313、增量7.1补丁315、增量7.2补丁317以及增量7.3补丁319的标识。\n全补丁1305是可被安装以将软件从现有状态带到当前状态的全补丁。每一增量补丁可用于将软件从已知的现有状态带到当前状态而不需要使用全补丁。要更新的软件通常处于可被标识的若干不同的已知状态的一个中。由此,对那些已知状态的每一个,可使用增量补丁来修改该软件以将其带入当前状态。例如,增量1.1补丁307可用于将软件的版本从已知现有状态带到当前状态。\n为允许客户机201确定它是否可使用增量补丁之一来更新软件,每一增量补丁包括文件和用于那些文件的期望散列值的列表。期望散列值可用于确定增量补丁是否适用于现有软件。例如,增量1.1补丁307包括具有期望散列值321的文件1.1320、具有期望散列值323的文件1.2322、以及具有期望散列值325的文件1.3324。客户机在接收到更新选项列表300之后,可对要在客户机的系统201上更新的文件的当前状态求散列,并确定散列值是否与包含在更新列表中的期望散列值相匹配。如果散列值匹配,则对应的增量补丁可用于更新客户机的系统。使用诸如增量1.1307等增量补丁而非使用诸如全补丁1305等全补丁,可得到较小的下载,因为它是部分更新而非完全更新。\n现在参考图2B,一旦主机203生成了所请求的更新选项列表,该更新选项列表被发送到客户机201。客户机201从更新选项列表中选择用于将客户机201的状态带到当前状态的每一更新的补丁。如上所述,客户机可为所需的更新选择全补丁或适当的增量补丁。如本领域的技术人员理解的,可从更新选项列表中选择一个或多个所需更新。在选择了每一适当的补丁之后,客户机201请求用于所需更新的对等体列表。主机i203响应于接收对用于所需更新的对等体列表的请求,构建所请求的对等体列表并将该对等体列表发送到客户机201。\n主机维护标识使得更新的各部分可用于下载的每一对等体的主对等体列表。如果更新从未从主机下载,则初始对等体列表可能仅将主机标识为可用对等体。在这一情况下,客户机将是下载该更新的第一个,并且将选择该主机作为对等体并从主机下载整个文件。如下所述,一旦客户机下载并安装了更新,它向主机标识它可用于下载(共享)该更新的一个或多个部分。由此,主机可将该客户机添加到用于该客户机将共享的更新的各部分的主对等体列表。当其它客户机从主机、该对等体或两者下载该更新,并将其自身标识为现在使得更新的各部分可用于下载,则可用对等体的数目增加。\n图4示出了依照本发明的一个实施例,响应于来自客户机的对于对等体列表的请求,标识用于所需更新的对等体的对等体列表的框图。继续上述示例,假定客户机201请求增量1.1补丁401以及全补丁7403,则对等体列表400将包括那些补丁的每一个的细节以及用于那些补丁的对等体的标识。也包括了散列值以验证下载的补丁的真实性。\n例如,则增量1.1补丁401包括用于该补丁的增量散列以及优先级值。如下文更详细地描述的,该补丁的散列值可用于在安装之前确认散列的有效性。在另一实施例中,补丁中可能不包括优先级值。在这一环境中,将片断保存到高速缓存,并且当附加存储空间变得必需时,客户机计算机可请求当前位于高速缓存中的片断的优先级列表。这为主机提供了随时间动态控制片断的优先级的能力。同样如下所述,补丁的优先级值可用于确定补丁的片断是要在客户机计算机的高速缓存中维护还是要删除。对于补丁的每一文件,诸如文件1.1405和文件1.2407,也包括增量散列。与补丁的增量散列一样,文件的增量散列可用于验证文件的真实性。\n另外,诸如文件1.1405等每一文件可被划分成片断,诸如片断1409和片断2411。文件的每一片断还可被划分成子片断,而那些子片断可被划分成子子片断。例如,片断1409可被划分成子片断,诸如子片断1.1413和子片断1.2415。同样,那些子片断可被进一步划分成子子片断,诸如子子片断1.1.1417和子子片断1.1.2419。如本领域的技术人员所理解的,划分成片断、子片断和子子片断可在任一划分级别上进行,且如此处所描述的子子片断的粒度仅用于解释性目的。\n划分的最小级别,诸如子子片断包括使得该片断可用于下载的一个或多个对等体的标识。例如,子子片断1417包括使得该片断可用于下载的两个对等体的标识。具体地,子子片断1.1.1417可从对等体1421或对等体4425下载。使得子子片断可用于下载的每一对等体由诸如网际协议地址等地址来标识。对等体列表400可包括使得子子片断可用于下载的所有对等体的标识、使得子子片断可用于下载的对等体的一部分、或者用于每一子子片断的一个对等体。另外,对于对等体列表中列出的每一对等体,可提供附加信息。例如,关于对等体的附加信息可包括但不限于,对等体的带宽、对等体的等级(对等体如何可靠)、对等体与公司或组织的从属关系、对等下载系统的对等体使用历史等等。对等体列表还可包括更新命令集427,它提供关于如何安装增量补丁本身的指令。\n回头参考图2B,客户机201在接收到对等体列表之后,选择对等体列表中标识的用于子子片断的对等体。对等体和片断选择将参考图6更详细讨论。在选择了子子片断和可从其中下载那些片断的对等体之后,客户机201打开与不同对等体的通信的若干信道,并开始同时下载更新的不同片断。从不同对等体下载更新的不同片断的技术提高了可获得更新的速度,并由此减少了总下载时间。另外,通过对等环境提供更新减少了主机203所需的出口带宽。使用本发明的实施例,当客户机联系主机、下载更新并开始与其它客户机(即,其它对等体)共享那些更新的片断时,从主机203出来的出口带宽减少,因为客户机从其它对等体而非主机获得更新的片断。该技术比传统的文件服务能够更有效地处理对特定内容的需求中的极端峰值,而传统的文件服务最多只能变得非常昂贵,最差会在负载下完全失效。\n现在参考图2C,当每一子子片断的下载完成时,对该子子片断求散列并将其与包括在对等体列表中的散列值进行比较,以确认该子子片断未被改变。一旦下载并认证了特定补丁的所有子子片断,则组装那些片断以重新创建补丁。另外,在高速缓存中维护下载的子子片断的一个或多个的副本。那些副本可用于供其它对等体下载。\n组装的补丁被安装以将客户机更新到当前状态。在完成安装之后,客户机计算机系统可在必要时重启。一旦客户机201的补丁安装和重启(如有需要)完成,客户机201向主机203发送储存在高速缓存中的子子补丁的标识。这一标识可以是每一所储存的子子片断的散列值。主机203在接收到高速缓存的子子片断的标识之后,更新主对等体列表,添加该客户机作为使得那些片断可用于下载的对等体。主对等体列表包括维护可用于下载到其它客户机的补丁的片断的每一对等体的列表。\n图5是示出依照本发明的一个实施例用于更新客户机的软件的客户机软件更新例程的流程图。客户机软件更新例程500在框501开始,并且在框503,客户机请求并获取更新列表。如上所述,更新列表包括可用于下载的更新的标识。使用该列表,在框505,客户机将其现有系统的状态与可用更新进行比较。基于该比较,在判别框507,确定是否需要更新以将客户机的现有系统带到当前状态。\n如果在判别框507确定需要更新,则在判别框509确定是否有用于所需更新的增量补丁可用。如上所述,确定是否有用于所需更新的增量补丁可用可通过请求用于所需更新的更新选项并接收不同更新选项的列表来确定。不同更新选项的列表包括增量补丁以及用于将由增量补丁更新的文件的期望散列值的标识。通过将增量补丁的期望散列值与客户机上的文件的散列值进行比较,客户机可确定增量补丁是否可用。在另一实施例中,可用更新的列表也可包括用于每一可用更新的更新选项,由此消除了随后获得更新选项的需求。\n允许客户机确定增量补丁是否可用,而非客户机向主机提供其现有系统的散列值,允许客户机维护相对于其自身的私密性。如果在判别框509确定增量补丁可用,则该增量补丁被添加到下载列表,如框511所示。然而,如果在判别框509确定增量补丁不可用,则在框513将用于该更新的全补丁的标识添加到下载列表。\n在判别框515,确定是否需要其它更新以将客户机带到当前状态。如果在判别框515确定需要其它更新,则客户机软件更新例程500返回到判别框509并且该例程继续。然而,如果在判别框515确定不需要其它更新,则在判别框517,客户机请求用于下载列表中所标识的补丁的对等体列表。响应于在框517请求对等体列表,在框519,客户机接收对等体列表,它包括使得下载列表中标识的每一补丁的每一子子片断可用于下载的对等体的标识。在接收到对等体列表之后,执行如框521所示的下载子例程。下载子例程将参考图6更详细地描述。在完成下载子例程之后,在框523,组装下载的子子片断以重新创建所请求的补丁,并将那些补丁安装在客户机系统上以将客户机系统带到当前状态。\n一旦下载的补丁的安装完成且客户机系统在必要时重启,客户机软件更新例程500如框525所示地发送高速缓存的子子片断的散列。高速缓存的子子片断是储存在客户机高速缓存中的片断,客户机将使这些子子片断可用于由其它对等体下载。在本发明的一个实施例中,要求客户机共享它从其它对等体下载的片断以确保维持对等环境。\n例如,如果客户机通过对等环境下载了50MB的更新,则可要求客户机使得它本身下载的相同数量的数据可用于下载。在本发明的一个实际实施例中,高速缓存的子子片断的散列可能不被发送,由此标识共享是可用的,直到每一片断被验证和安装。在共享补丁之前验证和安装补丁可能是必要的,因为当从主机向其它对等体提供对等体列表时,可将对等体的地址用于对于对等体缺乏特定补丁(诸如所下载的补丁)的了解来危害对等机器。一旦在框525发送了高速缓存的子子片断的散列,或者如果在判别框507确定不需要任何更新,则客户机软件更新例程500在框527完成。\n客户机软件更新例程500可手动启动,或者作为替代,可被调度成在周期性的基础上运行以确保客户机被维持在当前状态。例如,客户机软件更新例程500可被调度成在晚上或当客户机计算设备不使用时运行。另外,作为一个增加的安全特征,可用更新列表、更新选项列表以及对等体列表的每一个可以由主机数字地签署,使得它们不能被更改。数字地签署文档在本领域中是已知的,并且因此无需再次详细描述。\n图6示出了依照本发明的一个实施例可作为用于从不同对等体下载补丁片断的客户机软件更新例程的一部分执行的下载子例程的流程图。尽管下载子例程600是相对于下载一个补丁来描述的,然而可以理解,可使用下载子例程600同时或在不同的时刻下载任意数量的补丁。\n下载子例程600在框601开始,并且在框603,接收用于一个或多个补丁的子子片断的每一个的对等体列表。如上所述,对等体列表标识了可用于下载补丁的不同子子片断的对等体的地址。在子子片断的下载期间,对等体列表可以被周期性地更新(例如,每隔两分钟)以确保该客户机正在请求可用对等体的下载。\n使用该对等体列表,在判别框605,确定是否需要附加高速缓存以在安装之前储存补丁的子子片断。如果在判别框605确定需要附加高速缓存,则如框607所示地执行优先级子例程。用于获得附加高速缓存的优先级子例程将参考图7更详细地描述。然而,如果在判别框605确定不需要附加高速缓存,则在框609,选择正被下载的补丁的文件。在框611,选择对其开始下载的所选择文件的一个片断。使用这一选择的片断,在判别框613,确定该片断的子片断之一是否已完成下载。如果确定该片断的子片断之一未完成下载,则在判别框615,确定该子片断的子子片断之一是否已被下载。如果在判别框615确定子片断的子子片断之一未被下载,则在框617,随机地选择子片断的子子片断。在框619,也随机地选择可用于下载随机选择的子子片断的对等体。在选择了子子片断和对等体之后,在框621,开始从所选择的对等体下载子子片断。一旦开始了子子片断的下载,下载子例程600返回到框613并继续。\n回头参考判别框615,如果确定子子片断之一已完成了下载,则在框623,选择子片断中具有对其子片断可用于下载的最少数量的对等体的子子片断。另外,在框625,随机地选择用于所选择的子子片断的对等体之一。在框627,启动从随机选择的对等体下载所选择的子子片断。一旦所选择的子子片断的下载开始,在框627,下载子例程600返回到框613并继续。\n由于同时可下载多个子子片断,由此减少了下载一个或多个补丁所需的总时间,因此一旦在框621或框627开始了下载,下载子例程600就通过选择另一片断和另一对等体并启动该下载来继续。由此,可达到用于正在下载更新的客户机的带宽的总饱和度,且可快速地完成更新的下载。另外,当每一子子片断的下载完成时,可通过对子子片断求散列并将该散列值与包括在对等体列表中的散列值进行比较来验证那些片断的真实性。\n现在参考判别框613,如果确定片断的子片断完成了下载,则在判别框629,确定文件的所有片断是否都完成了下载。如果在判别框629确定文件的所有片断未完成下载,则下载子例程600返回到框611并选择另一片断,并且该过程继续。然而,如果在判别框629确定文件的所有片断都已完成下载,则在判别框631,确定用于补丁的所有文件是否都已完成了下载。如果在判别框631确定用于补丁的所有文件未完成下载,则下载子例程600返回到框609,并且选择要下载的另一文件。然而,如果在判别框631确定用于补丁的所有文件都已被下载且因此也下载了补丁的所有片断、子片断和子子片断,则例程在框633完成-并将控制返回到客户机软件更新例程500(图5)。\n图7示出了依照本发明的一个实施例用于扩展客户机系统上的高速缓存大小以启用补丁下载的优先级子例程的流程图。优先级子例程700在框701开始,并且在框703,向主机发送共享的所有当前高速缓存的子子片断的列表。响应于共享的高速缓存的子子片断的列表的发送,在框705,接收那些子子片断的每一个的优先级。子子片断可基于它们被请求下载的频率而被分配优先级。例如,如果发布了新更新以提供对抗新计算机病毒的防御,则该补丁以及因此该补丁的子子片断可能以非常高的频率被下载。由此,该更新的子子片断可接收高优先级。\n在接收到高速缓存的子子片断的优先级之后,在框707,从高速缓存中删除具有最低优先级的高速缓存的子子片断。在判别框709,一旦删除了共享的子子片断,确定高速缓存中是否有足够的空间可用于更新。如果在判别框709确定有足够的空间可用,则例程如框723所示的将控制返回到下载子例程600(图6)。然而,如果在判别框709确定没有足够的空间可用,则在判别框711,确定是否有未被删除的其它共享的高速缓存的子子片断。\n如果在判别框711确定仍剩余共享的高速缓存的子子片断,则优先级子例程700返回到框707并删除下一最低优先级,且该过程继续。在本发明的一个实际实施例中,与用于特定更新的补丁相关联的某些高速缓存的子子片断可被标识为不可删除。例如,如果子子片断与极其频繁地下载的更新相关联,则它可被标识为不可删除,以确保存在可从其中下载该子子片断的足够的对等体。\n如果在判别框711确定没有剩下可删除的高速缓存的子子片断,则在判别框713确定是否有任何补丁已被完全下载。如上所述,依照本发明的一个实施例,可同时下载多个补丁。如果那些补丁之一已完成了下载,则在判别框713,它被标识并且在框717安装该补丁。这一安装可导致在安装该更新的同时下载的剩余部分被暂停。然而,现有技术允许暂停的下载在无需重启的情况下继续。由此,从下载的暂停/重启不会导致任何实质的下载数据损失。一旦安装了下载的补丁,在框717,从高速缓存中删除该补丁的子子片断,如框719所示,除非它们被标识为不可删除。在删除了下载之后,在判别框721确定高速缓存中是否有足够的空间可用于下载更新。如果在判别框721确定高速缓存中没有足够的空间,则优先级子例程700返回到判别框713,并确定是否有其它已完成下载的补丁,并且该过程继续。\n回头参考判别框713,如果确定没有已完成下载的补丁,则在框715扩展高速缓存的大小。高速缓存的大小可通过请求客户机系统的用户扩展高速缓存的大小来扩展。或者,高速缓存的大小可被自动扩展。一旦高速缓存中通过从高速缓存删除现有片断或扩展高速缓存的大小准备了足够的空间用于下载更新,优先级子例程700在框723完成,将控制返回到下载子例程600。\n图8示出了依照本发明的一个实施例利用对等环境作出可用更新的主机子例程。主机子例程800在框801开始,并且在框803,主机接收对更新列表的请求。如上所述,更新列表是由主机提供的用于下载的可用更新的列表。在框805,主机发送标识可用下载的更新列表。\n一旦更新列表已被发送,在某一稍后的时间点,如框807所示,从客户机接收对用于更新列表上标识的一个或多个可用更新的更新选项的请求。在框809,为框807所接收的请求中标识的更新生成更新选项。如上所述,更新选项列表包括可用于获取该更新的补丁的标识。该列表然后被发送到请求该更新选项的客户机。在框811,接收请求用于框809所发送的选项列表中所标识的一个或多个补丁的对等体列表的对等体列表请求。在框813,主机生成并发送用于所请求补丁的对等体列表。如上所述,对等体列表对每一补丁标识了片断、子片断和子子片断。另外,对于那些子子片断的每一个,包括一个或多个对等体以及那些对等体的地址,以标识从中可获得那些子子片断。对等体列表然后被发送到客户机,并且在框815,接收已被客户机下载并储存的、现在可用于与其它对等体共享的子子片断的标识。所接收的列表用于更新主对等体列表817,该列表包括可用更新的所有子子片断以及具有那些子子片断可用于下载的对等体的标识。主机例程800在框819完成。\n尽管示出并描述了本发明的实施例,然而可以理解,可以在其中作出各种改变而不脱离本发明的精神和范围。
法律信息
- 2015-05-20
专利权的转移
登记生效日: 2015.04.30
专利权人由微软公司变更为微软技术许可有限责任公司
地址由美国华盛顿州变更为美国华盛顿州
- 2010-12-08
- 2008-01-23
- 2006-06-21
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2002-10-16
|
2001-03-14
| | |
2
| | 暂无 |
1996-06-07
| | |
3
| | 暂无 |
1997-09-29
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 1 | | 2013-11-28 | 2013-11-28 | | |
2 | | 2013-11-28 | 2013-11-28 | | |