专利名称::确定计算设备的状态的方法和装置的制作方法
技术领域:
:本说明书总体上涉及软件更新,具体涉及用于确定计算设备的状态的方法和装置。
背景技术:
:由于可用于将软件更新传输到计算设备上的带宽和计算设备本身的计算能力,在计算设备上安装软件更新经常出现问题。一般而言,当在计算设备上安装软件更新时,首先卸载软件的旧版本。换言之,在安装软件的新版本之前,从计算设备中完全删除该软件的旧版本。对于许多计算设备,包括移动和/或无线计算设备,由于大量的数据必须传输到计算设备上并由其处理,上述情况会出现问题。确实,在很多情况下,可用于将新软件版本传输到计算设备的带宽是有限的。例如,在无线通信设备中,实现软件更新的无线数据传输可能包括通过无线网络发送数百兆字节的数据。然而,许多无线网络具有有限的数据传输速率,而且数据传输是一个耗时的过程。此外,在某些商业模型下,针对接收数据,基于每数量速率对无线通信设备的用户收费,例如,每兆字节数据收取一定费用,从而证明软件更新的接收是高成本的。即使在非无线网络上传输新软件的情形中,非无线网络的带宽仍旧受限。例如,如果计算设备经由调制解调器通过PSTN接收软件更新,软件更新的下载可能花费数个小时。这包括移动计算设备在同步过程期间经由其他计算设备接收软件更新的情形,其他计算设备诸如是从有限带宽网络接收软件更新的个人计算机。另外,移动计算设备的计算能力可能是有限的,从而证明处理旧软件的卸载和新软件的安装是耗时的过程。EP-A-1519268公开了一种在移动设备上更新软件的方法,其中设备上的软件被分成多个软件区,每一个软件区有预定大小,并被分配有唯一的标识关键字。当软件区的更新可用于下载时,给移动设备发送可用于下载的软件区的标识关键字,并将该标识关键字与设备上的对应软件区的标识关键字相比较。当比较确定标识关键字不相同时,下载更新的软件区到移动设备。此外,'在一些情况下,新的软件可能与计算设备的当前状态不兼容。在这些情况下,安装更新可能引擎计算设备无法工作。
发明内容实施例的第一广义方面可以包括确定计算设备的状态的方法。该方法的第一步骤可以包括确定与驻留在所述计算设备上的至少一个文件相关联的至少一个唯一码,所述至少一个唯一码代表所述至少一个文件的状态。该方法的第二步骤可以包括确定与至少一个更新文件相关联的至少一个唯一参考码,所述至少一个更新文件用于更新驻留在所述计算设备上的所述至少一个文件,所述至少一个唯一参考码代表驻留在所述计算设备上的所述至少一个文件的预期状态。该方法的第三步骤可以包括如果所述至少一个唯一码与所述至少一个唯一参考码相匹配,则确定所述计算设备处在预期状态,和/或如果所述至少一个唯一码与至少一个唯一参考码不匹配,则确定所述计算设备处在非预期状态。第一广义方面的一些实施例中,计算设备可以包括手持电子设备。第一广义方面的其他实施例中,所述至少一个唯一码可以包括多个唯一码中的至少一个,所述多个唯一码中的每一个与驻留在所述计算设备上的多个文件之一相关联,所述至少一个唯一参考码包括多个唯一参考码中的至少一个,所述多个唯一参考码中的每一个与多个更新文件之一相关联,每一个更新文件用于更新驻留在所述计算设备上的所述多个文件中的至少一个。该方法还包括如果所述多个唯一码的第一子集与所述多个唯一参考码的第一子集相匹配,则确定所述计算设备的第一部分处在预期状态,和/或如果所述多个唯一码的第二子集与所述多个唯一参考码的第二子集不匹配,则确定计算设备的第二部分处在非预期状态。第一广义方面的其它实施例中,所述确定至少一个唯一码包括处理状态数据,所述状态数据代表所述计算设备的状态。所述方法还包括从所述计算设备接收所述状态数据。该方法的这些实施例中的一些还包括,所述方法还包括向所述计算设备请求所述状态数据,以及接收所述状态数据是响应于请求所述状态数据的。第一广义方面的其他实施例中,所述确定所述至少一个唯一参考码包括处理软件更新数据,所述方法还包括从远程实体接收所述软件更新数据。在这些实施例的一些中,该方法还可以包括向所述远程计算实体请求所述软件更新数据,以及接收所述软件更新数据是响应于请求所述状态数据的。第一广义方面的其它实施例中,该方法还可以包括通过向驻留在所述计算设备上的所述至少一个文件应用散列算法,产生所述至少一个唯一码;以及通过向至少一个参考文件应用所述散列算法,产生所述至少一个唯一参考码,其中所述至少一个参考文件等同于驻留在所述计算设备上的所述至少一个文件。在这些实施例的一些中,散列算法包括SHA-1,SHA-224,SHA-256,SHA-384,SHA-512之一。第一广义方面的其他实施例中,方法还可以包括编译所述计算设备可处理的消息,所述消息包括用于指示所述计算设备向至少一个远程计算实体请求所述至少一个更新文件的数据;以及向所述计算设备发送所述消息。实施例的第二广义方面可以包括用于确定手持电子设备的状态的计算装置。计算装置可以包括用于接收来自所述手持电子设备的状态数据和来自远程计算实体的软件更新数据的接口。计算设备还可以包括与接口相连的处理器,用于—处理所述状态数据以确定与驻留在所述手持电子设备上的至少一个文件相关联的至少一个唯一码,所述至少一个唯一码代表所述至少一个文件的状态;一处理所述软件更新数据以确定与至少一个更新文件相关联的至少一个唯一参考码,所述至少一个更新文件用于更新驻留在所述手持电子设备上的所述至少一个文件,所述至少一个唯一参考码代表驻留在所述手持电子设备上的所述至少一个文件的预期状态;一如果所述至少一个唯一码与所述至少一个唯一参考码相匹配,则确定所述手持电子设备处在预期状态,和/或如果所述至少一个唯一码与所述至少一个唯一参考码不匹配,则确定所述手持电子设备处在非预期状态。—如果所述手持电子设备处在预期状态,则编译所述手持电子设备可处理的消息,所述消息包括用于指示所述手持电子设备向至少一个远程计算实体请求所述至少一个更新文件的数据;一使所述消息经由所述接口被发送至所述手持电子设备。第二广义方面的一些实施例中,处理器还能够用于使针对所述状态数据的请求经由所述接口被发送至所述手持电子设备,并响应于发送针对所述状态数据的所述请求,经由所述接口接收所述状态数据。第二广义方面的一些实施例中,处理器还能够使针对所述软件更新数据的请求经由所述接口被发送至所述远程计算实体,并响应于发送针对所述软件更新数据的所述请求,经由所述接口接收所述软件更新数据。参考下列附图描述实施例,其中图l示出了根据非限制性实施例的用于确定计算设备状态的结构;图2示出了根据非限制性实施例的用于确定计算设备状态的方法;根图3示出了根据非限制性实施例的用于更新计算设备状态的方法;以及图4示出了根据非限制性实施例的用于更新计算设备状态的结构。具体实施例方式图1示出了一个用于确定计算设备110的状态的结构,计算设备经由通信网络135与通信服务器120、更新细节(details)服务器125和补丁(patch)服务器130通信。通信服务器120还与补丁可用性服务器140通信。补丁可用性服务器140和更新细节服务器125与数据库145通信,数据库145和补丁服务器130还与管理服务器150通信。通信服务器120、更新细节服务器125、补丁服务器130、补丁可用性服务器140、数据库M5和管理服务器150可以经由至少一个通信网络进行通信。在一些实施例中,该至少一个通信网络可以包括通信网络135,而在其他实施例中,该至少一个通信网络可以与通信网络135不同。在一些实施例中,该至少一个通信网络可以包括局域网(LAN)、广域网(WAN)、无线网络、基于分组的通信网络(诸如互联网)、PSTN、蜂窝网络、WiFi网络、WiMax网络中的至少一个或它们的组合。一些实施例中,通信服务器120、更新细节服务器125、补丁服务器130、补丁可用性服务器140、数据库145和管理服务器150可以是共处于同一位置的,而在其它实施例中,通信服务器120、更新细节服务器125、补丁服务器130、补丁可用性服务器140、数据库145和管理服务器150可以是彼此远离的。在一些实施例中,通信服务器120、更新细节服务器125、补丁服务器130、补丁可用性服务器140、数据库145和管理服务器150中的至少一个可以是至少一个计算装置的元件。一个非限制性实施例中,更新细节服务器125、补丁服务器130和补丁可用性服务器140是计算装置128的元件。一些实施例中,通信网络135可以包括局域网(LAN)、广域网(WAN)、无线网络、基于分组的通信网络(诸如互联网)、PSTN、蜂窝网络、WiFi网络、WiMax网络中的至少一个或它们的组合。在一些实施例中,计算设备110可以包括手持电子设备,该手持电子设备可操作来经由通信网络135与通信服务器120、更新细节服务器125和补丁服务器130进行通信。在这些实施例中,计算设备110可以包括蜂窝电话、个人数字助理(PDA)、基于WiFi的通信设备、基于WiMax的通信设备或它们的组合。在其它实施例中,计算设备100可以包括其它类型的手持电子设备。在一些实施例中,手持电子设备可以用于经由无线网络进行通信,而在其它实施例中,手持电子设备可以用于经由有线网络进行通信。在其它实施例中,手持电子设备可以用于经由无线或有线网络进行通信。在一些实施例中,手持电子设备能够经由手持电子设备所在地的另一计算设备通信服务器120、更新细节服务器125和补丁服务器130进行通信,该另一计算设备与通信网络135进行通信。在这些实施例中,手持电子设备能够经由有线或无线链接(例如,WiFi,蓝牙,和/或硬线串行旁路(hardwiredserialbypass),诸如USB链接)与手持设备所在地的计算设备进行通信。在其它实施例中,计算设备HO可以包括非手持电子设备的计算设备。在这些实施例中,计算设备110可以包括个人计算机或膝上计算机。在这些实施例中,计算设备可操作来经由有线网络、无线网络或它们的组合进行通信。计算设备110包括能够经由通信网络125进行通信的通信接口112。在通信网络135包括无线网络的实施例中,如本
技术领域:
的技术人员已知的,通信接口112包括无线通信接口。无线通信接口的非限制性示例包括,但不是限于,蜂窝电话接口(例如,CDMA,GSM,lx,EVDO,UTMS等)、WiFi接口、WiMax接口等等。在通信网络135包括有线通信网络的实施例中,如本
技术领域:
的技术人员已知的,通信接口U2包括有线通信接口。在这些实施例中,通信接口112能够和例如调制解调器等通信网络135的边缘设备(edgedevice)(未描述)相连接。在这些实施例中的一些中,如上描述的,通信接口能够经由与通信网络135通信的另一计算设备与边缘设备连接。在其它实施例中,通信接口112能够经由有线或无线通信网络迸行通信。计算设备110还包括用于处理数据的处理器114。计算设备110还包括用于存储数据的存储器,该数据包括与应用相关联的文件。在一些实施例中,存储在计算设备110上的应用包括驻留在计算设备110上的单个文件,而在其它实施例中,驻留在计算设备115上的应用包括驻留在计算设备110上的多个文件。例如,应用可以包括可执行文件,从而当通过处理器114处理可执行文件时,计算设备110的用户能够访问该应用。应用还可以包括存储了与计算设备110相关联的数据的文件。应用还可以包括存储了与应用的状态相关联的数据的文件。本领域技术人员可以想到其它类型的与应用关联的文件。在一些实施例中,存储了与给定的驻留在计算设备上的文件的状态相关联的数据的文件也可以存储在存储器115中。在这些实施例中,存储了与给定文件的状态相关联的数据的文件可以包括与给定文件的状态相关联的唯一码。在一些实施例中,可以将与给定文件的状态相关联的唯一码在其关联文件存储在存储器115中的时候存储在存储器115中,例如在安装给定应用的时候。在这些实施例中,计算设备110能够使用驻留在计算设备110中的给定文件作为输入,产生唯一码。在这些实施例中的一些中,当给定文件存储在计算设备110中时,由计算设备110产生唯一码,而在其它实施例中,当计算设备110被触发以经由通信网络135发送计算设备110的状态时,如下所述,通过例如安装在计算设备110上的散列算法来产生唯一码。通过给远程实体传输唯一码,远程实体可以识别计算设备110的状态,尤其是驻留在计算设备110上的关联文件的状态。在一些实施例中,给定的唯一码的大小小于驻留在计算设备110上的文件。在其它实施例中,唯一码可以与计算设备110的状态相关联,而不是与驻留在计算设备110上的文件的状态相关联。在一些实施例中,可以通过向给定的数据集合(例如,驻留在计算设备110上的文件)应用散列算法,产生唯一码。通常,散列算法可操作来针对不同的给定数据集合而产生不同的唯一码,给定数据集合包括之间仅有较小差别的两个给定数据集合。因此,通过从向每个数据集合应用散列算法中而导出唯一码,可以将给定数据集合的状态与稍微不同的数据集合的状态区分开来。在一些实施例中,通过应用来自散列算法的安全散列算法(SHA)族可以获得唯一码,安全散列算法例如是SHA-1、SHA-224、SHA-256、SHA-384和SHA-512等等。本领域技术人员可以想到其它散列算法。在一些实施例中,由例如软件供应商或图l结构中的另一计算实体等远程实体提供唯一码。在这些实施例中的一些中,远程实体向要驻留在计算设备110上的文件应用散列算法,并将唯一码与要驻留在计算设备110上的文件一起提供。在其它实施例中,远程实体使用唯一码产生器来计算针对要驻留在计算设备110上的文件的唯一码,并将唯一码与要驻留在计算设备110上的文件一起提供。在这些实施例中,唯一码可以包括符合通用唯一标识符(UUID)标准的唯一码。符合通用唯一标识符(UUID)标准的唯一码的非限制性示例是全局唯一标识符(GUID)。在非限制性示例中,图l示出了4个文件U7a,117b,117c和117d,文件117a,117b,117c和117d驻留在计算设备110上,并存储在存储器115内。文件117a,117b和117c是与第一应用116a相关联的,而文件117d是与第二应用116b相关联的。例如,当文件117a由处理器114处理时,文件117a可以包括用于在计算设备110上运行第一应用116a的可执行程序。文件117b可以包括与计算设备110的用户相关联的数据,处理器114在运行第一应用116a的同时周期性地访问和更新文件117b。例如,文件117b可以包含用户偏好数据、高分数(highscore)等。文件117c可以包括与第一应用116a的状态相关联的数据,处理器114在运行第一应用116a的同时周期性地访问和更新文件117c。第一应用116a还包括驻留在计算设备110上的其它文件(未示出)。类似地,当由处理器114处理文件117d时,文件117d可以包括用于在计算设备110上运行第二应用116b的可执行文件。每一个文件117a,117b,117c和117d分别与唯一码U8a,U8b,118c和118d相关联,每一个唯一码118a,118b,118c和118d与其关联文件的状态相关联。在一些实施例中,每一个唯一码118a,U8b,118c和118d包括与其关联文件的版本号和标识其关联文件的其它信息。在其它实施例中,每一个唯一码118a,118b,118c和118d可以包括通过处理其关联文件而获得的数据。在这些实施例中,可以通过向其关联文件117a,117b,117c和117d分别应用散列算法,获得各个独立码118a,118b,118c和118d。在一些实施例中,计算设备110还能够产生状态数据111,状态数据111包括与计算设备110的状态相关联的数据。与计算设备110的状态相关联的数据可以包括与安装在计算设备110上的应用相关联的数据,该数据包括但不是限于驻留在计算设备110上的至少一个文件的名称、和/或与该文件相关联的数据(例如,文件版本,在计算设备110上安装该文件的日期,发行该文件的日期等,和/或应用名称)、和/或与该应用相关联的数据(例如,应用版本,在计算设备110上安装该应用的日期,发行该应用的日期等)。在一些实施例中,状态数据lll可以包含唯一码,例如上述唯一码118a,118b,118c和118d。在其它实施例中,状态数据lll可以包括其它类型的数据,如下描述的。在一些实施例中,计算设备110能够在接收到来自远程实体的针对状态数据111的请求时,向该远程实体发送状态数据lll。在其它实施例中,例如在开启和/或重启计算设备110时,和/或在计算设备110的状态改变时,计算设备110能够周期性地向远程实体发送状态数据111。在一些实施例中,远程实体可以包括通信服务器120和更新细节服务器125中的至少一个,如下所述。下面参考计算设备110与图1中所示结构的其它元件的相互作用、图2的方法、图3的方法和图4,讨论计算设备110的附加功能。管理服务器150能够向数据库145传输软件更新信息147以用于存储,还能够向补丁服务器130传输至少一个软件更新文件148。管理服务器150包括通信接口192,以能够与补丁服务器130和数据库145进行通信,以及在一些实施例中能够与软件供应商(未示出)通信。为了能够进行这些通信,通信接口192可以是任何适合的接口,无线的、有线的或它们的组合。在一些实施例中,管理服务器150还包括用于处理数据的处理器。在其它实施例中,管理服务器150还包括用于存储数据的存储器196。在一些实施例中,管理服务器150可以与提供至少一个软件更新文件148和/或软件更新信息147的至少一个软件供应商(未示出)通信。在一些实施例中,管理服务器150能够通过例如经由处理器194处理至少一个软件更新文件148,来产生软件更新信息147的至少一部分。在其它实施例中,管理服务器150经由通信网络(例如经由通信接口192)从至少一个软件供应商接收至少一个软件更新文件148和/或软件更新信息147。在其它实施例中,管理服务器150经由诸如磁或光盘、闪存等可移动(transportable)介质从软件供应商接收至少一个软件更新文件148和/或软件更新信息147。在这些实施例中,由管理员将软件更新文件148和/或软件更新信息147上载到管理服务器150。在一些实施例中,至少一个软件更新文件148包括对驻留在计算设备110上的文件进行更新的数据,以实现计算设备110的更新,下面参照图3描述更新计算设备110的方法。在非限制性示例中,—至少一个软件更新文件148可以包括更新文件119a,U9b,U9c和119d,其中更新文件119a旨在更新文件117a,更新文件119b旨在更新文件117b,更新文件119c旨在更新文件117c,更新文件119d旨在更新文件117d。软件更新信息147包括与至少一个软件更新文件148相关联的数据。软件更新信息147可以包括,但不是限于,至少一个软件更新文件的名称、和/或与至少一个软件更新文件相关联的数据(例如,文件版本,发行文件的日期等)、和/或驻留在计算设备110上的要更新的至少一个文件的名称、和/或与该文件相关联的数据(例如,文件版本,发行文件的日期等)、和/或应用的名称和/或与该应用相关联的数据(例如,应用版本,发行该应用的日期等)。非限制性实施例中,软件更新信息147包括至少一个软件更新文件的标识符;驻留在计算设备110上的文件的标识符,该文件是至少一个软件更新文件148旨在更新的文件;可以获取至少一个软件更新文件148的位置;以及用于使用至少一个软件更新文件148对驻留在计算设备110上的文件进行更新的指令。在一些实施例中,该指令是计算设备110可处理的,以使用至少一个软件更新文件148实现驻留在计算设备110上的文件的更新。在一些实施例中,软件更新信息147还可以包括与驻留在计算设备110上的文件相关联的应用的标识符,该文件是至少一个软件更新文件148旨在更新的文件;与至少一个软件更新文件148相关联的应用的标识符(例如,所更新的应用的名称);至少一个软件更新文件M8的描述;和/或对驻留计算设备110上的文件的预期状态进行标识的唯一参考码,该文件是至少一个软件更新文件148旨在更新的文件。在非限制性实施例中,软件更新信息包括唯一参考码141a,141b,141c和141d,其中每一个都分别与一个更新文件119a,119b,119c和119d相关联。在软件更新信息147包括唯一参考码的实施例中,可以使用参考文件作为散列算法的输入,采用与上述参照计算设备110而描述的唯一码(例如,118a,U8b,118c和118d)类似的方式产生唯一参考码(例如,唯一参考码141a,141b,141c和141d)。对于至少一个软件更新文件148(例如,更新文件119a,119b,119c和119d)旨在更新的文件,例如驻留在计算设备110上的文件(例如,文件117a,117b,117c,和117)来说,参考文件是相同的。在一些实施例中,由软件供应商产生唯一参考码。在其它实施例中,在管理服务器150处从至少一个软件供应商接收参考文件,其与所描述的关于接收至少一个软件更新文件148的方式相似。在一些实施例中,管理服务器150能够从参考文件中产生唯一参考码。在一些实施例中,由管理服务器150将软件更新信息147的至少一部分发送到补丁服务器130。在一些实施例中,至少一部分软件更新信息147的至少一部分还可以包括用于使用对驻留在计算设备110上的文件迸行更新的数据对驻留在计算设备110上的文件进行更新的指令。下面更详细的描述这些实施例。管理服务器150还可操作来例如经由通信接口192将软件更新文件148发送至补丁服务器130,并将软件更新信息147发送至数据库145。补丁服务器130包括用于存储至少一个软件更新文件148的补丁数据库132。在一些实施例中,管理服务器150还可操作来例如经由通信接口192将软件更新信息147的至少一部分发送至补丁服务器130,以用于存储在补丁数据库132中。在一些实施例中,软件更新信息147的至少一部分包括至少一个软件更新文件148的标识符、和/或驻留在计算设备110上并且至少一个软件更新文件148旨在更新的的文件的标识符、和/或对驻留在计算设备110上并且至少有一个软件更新文件148旨在更新的文件的预期状态进行标识的唯一参考码。补丁服务器130能够接收和存储至少一个软件更新文件148(如果可适用,还接收和存储软件更新信息147的至少一部分)。补丁服务器130还包括能够用于与管理服务器150、计算设备110进行通信的通信接口182。为了能够进行这些通信,通信接口182可以是任何适合的接口,有线的、无线的或其组合。在一些实施例中,补丁服务器130还包括用于处理数据的处理器。此外,参照图3和4描述补丁服务器130的其他功能。数据库可操作来接收和存储软件更新信息147。在一些实施例中,数据库145可以包括用于处理和管理数据的处理器(未示出。在其它实施例中,处理器是在用于处理和管理存储在数据库145上的数据的计算装置(未示出)的元件中。在一些实施例中,数据库145包括用于存储软件更新信息147的表T1。Tl包括至少一个记录,该至少一个记录用于存储与至少一个软件更新文件148相关联的软件更新信息,并由软件更新信息147中接收到的数据填充(populate)。通常,表T1中每一个记录与不同的软件更新文件相关联。在非限制性实施例中,Tl包括多个行,每一行代表对给定软件更新文件的记录。每一行的列可以对应于一该给定软件更新文件的标识符;一驻留在计算设备110上的并且该给定软件更新文件旨在更新的文件的标识符;一可以获取该给定软件更新文件的位置;一用于使用该给定软件更新文件对驻留在计算设备110上的文件进行更新的指令;一与驻留在计算设备110上的并且给定软件更新文件148旨在更新的文件相关联的应用的标识符;一与给定软件更新文件148相关联的应用的标识符(例如所更新的应用的名称);一给定软件更新文件148的描述;以及/或者一对驻留在计算设备110上的并且给定软件更新文件148旨在更新的文件的预期状态进行标识的唯一参考码。在非限制性实施例中,参照上述:<table>tableseeoriginaldocumentpage17</column></row><table><table>tableseeoriginaldocumentpage18</column></row><table>在这个示例中,第一列包括给定软件更新文件的标识符(例如,更新文件119a,119b等的名称)。第二列包括软件更新文件的描述。例如,描述可以包括给定软件更新旨在实现的特定动作,诸如对特定文件的更新、或对关联应用的更新。第三列包括给定软件更新文件的位置,在这个示例中是补丁服务器130的网络地址。第四列包括驻留在计算设备110上并要更新的文件的标识符(例如,文件117a,117b等的名称)。第五列包括对驻留在计算设备110上的并且至少一个软件更新文件148旨在更新的文件的预期状态进行标识的唯一参考码(例如,唯一参考码141a,141b等)。第六列包括用于使用给定软件更新文件(例如,更新文件119a,119b等)对驻留在计算设备110上的文件(例如,文件117a,117b等)进行更新的指令。如所示的,指令可以包括如下指令中的至少一个使用给定软件更新文件替换驻留在计算设备上的文件的至少一部分的指令;通过在计算设备110上驻留的文件的末尾追加给定软件更新文件、或在计算设备110上驻留的文件的开头添加给定软件更新文件将给定软件更新文件和计算设备110上驻留的文件拼接的指令;用给定软件更新文件替换驻留在计算设备110上的整个文件的指令;或者删除驻留在计算设备100上的文件的至少一部分的指令。在一些实施例中,如下描述的,用于使用给定软件更新文件(例如更新文件119a,119b等)更新计算设备110上驻留的文件(例如文件117a,117b等)的指令可以存储在补丁服务器130处。第七列包括与给定软件更新文件相关联的应用的标识符(例如,所更新的应用的名称,诸如操作系统的新版本或应用的新版本)。在其它实施例中,存储在表T1中的数据可以分布在数据库145内的多个表之中。在一些实施例中,给定软件更新文件可以旨在更新驻留在计算设备110上的多个文件。在这些实施例中的一些,针对驻留在计算设备110上的并且给定软件更新文件旨在更新的多个文件中的每一个,Tl中可以存在分离的记录(例如,不同的行),而在其它实施例中,针对驻留在计算设备110上的并且给定软件更新文件旨在更新的多个文件,可以存在单个记录。在这些实施例中,将由给定软件更新文件更新的驻留在计算设备110上的文件可以与单个应用相关联或与多个应用相关联。在一些实施例中,多于一个的给定软件更新文件可以旨在更新计算设备110上驻留的同一文件,例如,通过用不同的给定软件更新文件替换文件的不同部分,或者通过使用第一软件更新文件替换文件的一部分并将第二软件更新文件与该同一文件拼接。在一些实施例中,数据库145可以存储与可用的软件更新相关联的附加信息。在一些实施例中,数据库145包括空中(overtheair)软件加载(OTASL)数据库。在这些实施例中,OTASL数据库也可以存储对软件更新文件、从属(dependency)数据和验收(acceptance)数据进行描述的冗词(verbiage)。补丁可用性服务器140能够从数据库145接收数据142,数据142包括未缓存(imcached)的软件更新信息,该软件更新信息例如是从T1中得到的。在一些实施例中,补丁可用性服务器140能够通过向数据库145发送请求,从数据库145获取数据142。在其它实施例中,数据库145能够在例如从管理服务器150接收到软件更新信息147时向补丁可用性服务器140发送数据142。在一些实施例中,未缓存的软件更新信息可以包括指示给定软件更新可用的信息。在这些实施例中,数据142可以包括,但不是限于,应用名称和/或与该应用相关联的数据(例如,应用版本,发行应用的日期等)、驻留在计算设备110上的要更新的至少一个文件的名称、禾口/或与该文件相关联的数据(例如,文件版本,发行文件的日期等)。在参照上述表T1描述的非限制性示例中,数据142可以包括,但不是限于,来自被标记为"文件描述"和/或"要更新的文件的标识符"和/或"要更新的文件的预期状态的唯一参考码"和域"应用名称"的列的数据。在其它实施例中,数据142包括可以由通信服务器120处理的以协助确定计算设备110的状态的信息,该信息包括但不限于至少一个软件更新文件148的标识符、以及对驻留在计算设备110上的并且至少一个软件更新文件148旨在更新的文件的预期状态进行标识的唯一参考码。在这些实施例中的一些,数据142还可以包括驻留在计算设备110上的并且至少一个软件更新文件148旨在更新的文件的标识符;与对驻留在计算设备110上的并且至少一个软件更新文件148旨在更新的文件相关联的应用的标识符;与至少一个软件更新文件148相关联的应用的标识符(例如,所更新的应用的名称);和/或至少一个软件更新程序148的描述。在这些实施例中,上述参照表T1描述的非限制性示例中,数据142可以包括但不是限于,来自被标记为"文件标识符"和"要更新的文件的预期状态的唯一参考码"的列的数据。在其它实施例中,数据142包括用于实现对计算设备110更新的信息。在这些实施例中,数据142包括用于实现对计算设备110更新的信息,该信息包括,但不是限于,至少一个软件更新文件148的标识符、驻留在计算设备110上的并且至少一个软件更新文件148旨在更新的文件的标识符、可以获取至少一个软件更新文件148的位置、和用于使用至少一个软件更新文件148对驻留在计算设备110上的文件进行更新的指夺。在这些实施例中,上述参照表T1描述的非限制性示例中,数据142可以包括,但不是限于,来自被标记为"文件标识符"、"文件位置"、"要更新的文件的标识符"和"安装指令"的列的数据。在一些实施例中,补丁可用性服务器140能够存储和管理数据142。补丁可用性服务器140包括能够与数据库145和通信服务器120通信的通信接口162。通信接口162可以是任何适合的接口,有线的、无线的或其组合,以能够进行这些通信。在一些实施例中,补丁可用性服务器140还包括用于处理数据的处理器164。在一些实施例中,补丁可用性服务器140包括用于存储数据142的存储器139。在这些实施例中,补丁可用性服务器140可以在给定时间段上存储数据,其中在给定时间段之后删除数据142。补丁可用性服务器140还能够向通信服务器120发送数据。数据143包括软件更新信息。因此,补丁可用性服务器140还能够通过处理数据142来产生数据143。在一些实施例中,数据143包括数据142的子集。在其他实施例中,数据143包括所处理的数据142的子集,以使数据142的该子集可由通信服务器120处理。在一些实施例中,当从通信服务器120接收到针对数据的请求(未示出)时,产生数据143。在其它实施例,在接收到数据142时产生数据143。在一些实施例中,当从通信服务器120接收到请求时向通信服务器120发送数据143,而在其它实施例中,在数据143产生时向通信服务器120发送数据143。通信服务器120能够与计算设备110通信,以向计算设备100传送信息,该信息包括用于向计算设备110通知软件更新可用的通知。通信服务器120包括能够与补丁可用性服务器140和计算设备110通信的通信接口152。为了能够进行这些通信,通信接口152可以是任何适合的接口,有线的、无线的或其组合。在一些实施例中,通信服务器120还包括用于处理数据的处理器154。可以在从补丁可用性服务器140接收到数据143时产生通知122,数据143通常包括软件更新信息,如下面描述的。在一些实施例中,通信服务器120能够向补丁可用性服务器140请求数据143。在一些实施例中,通信服务器120包括用于存储数据143的存储器123。在这些实施例中的一些,存储器123还能够存储从计算设备UO接收到的状态数据lll。通信服务器120还能够通过例如经由处理器154处理数据143来产生通知122。在一些实施例中,通知122包括数据143的子集。在其它实施例中,通知122包括所处理的数据143的子集,从而数据143的该子集可由计算设备110处理。在其它实施例中,通信服务器120还能够例如经由通信接口120从计算设备110接收状态数据111。在这些实施例中,通信服务器110还能够诸如在存储器123中存储状态数据111。在一些实施例中,通信服务器120能够周期性地请求状态数据111。在其它实施例中,如上所述,计算设备110能够周期性地给通信服务器120发送计算设备110的状态。在一些实施例中,如果状态数据111的至少一部分和数据143的至少一部分相匹配,则经由诸如通信接口152将通知122发送至计算设备110。如果状态数据111的至少一部分和数据143的至少一部分是匹配的,则发送通知122。在一些实施例中,如果状态数据lll的至少一部分和数据143的至少一部分不匹配,则不发送通知122。在非限制性示例中,数据143可以包括如下数据软件更新对于给定应用的给定版本而言是可用的。如果计算设备110的状态数据111包括计算设备110上安装了给定应用的给定版本的数据,则将通知122发送至计算设备110。如下描述的,在通信服务器120上存储状态数据111的实施例中,例如在通信服务器120已经向计算设备110请求了状态数据111、或计算设备110周期性地向通信服务器120发送状态数据111的实施例中,通知122还可以配置来对计算设备lll的状态更新迸行触发。在一些实施例中,通信服务器120还配置来处理从计算设备110接收到的状态数据111以及数据"3,以使用下述图2的方法来确定计算设备110的状态。在一些实施例中,通信服务器120还能够管理计算设备110和另一计算设备之间的数据同步。在计算设备110包括手持计算设备的实施例中,通信服务器120能够管理手持电子设备和个人计算机之间的数据同步。在非限制性示例中,通信服务器能够管理台式计算机和移动软件之间的数据同步,该数据包括但不限于电子邮件和个人信息管理(PIM)数据。现在转向更新细节服务器125,其能够从数据库145接收数据144,数据144通常包括诸如从表T1得到的未缓存的软件更新元数据。更新细节服务器125包括能够与数据库145和计算设备110通信的通信接口172,为了能够进行这些通信,通信接口172可以是任何适合的接口,有线的、无线的或其组合。在一些实施例中,更新细节服务器125还包括用于处理数据的处理器174。在一些实施例中,更新细节服务器125通过经由例如通信接口172向数据库145发送请求,能够从数据库145获取数据144。在其它实施例中,数据库145能够在例如从管理服务器150接收到软件更新信息147时向更新细节服务器125发送数据144。更新细节服务器125还配置来例如经由通信接口172从计算设备110接收状态数据lll。在一些实施例中,更新细节服务器125还配置来处理从计算设备U0接收到的状态数据111以及数据144,以使用下面描述的图2的方法并经由例如处理器174来确定计算设备110的状态。在这些实施例中,数据144包括可由更新细节服务器125处理以协助确定计算设备110的状态的信息,如上述描述的,该信息包括但不限于至少一个软件更新文件148的标识符、和对驻留在计算设备110上并且至少有一个软件更新文件148旨在更新的文件的预期状态进行标识的唯一参考码。在这些实施例中的一些中.,软件更新元数据还包括驻留在计算设备110上并且至少有一个软件更新文件148旨在更新的文件的标识符;与驻留在计算设备UO上并且至少有一个软件更新文件148旨在更新的文件相关联的应用的标识符;与至少一个软件更新文件148相关联的应用的标识符(例如,所更新的应用的名称);和/或至少一个软件更新文件148的描述。在这些实施例中,上述参照表T1描述的非限制性示例中,数据144可以包括但不限于来自被标记为"文件标识符"和"要更新的文件的预期状态的唯一参考码"的列的数据。在这些实施例的一些中,更新细节服务器125还能够向计算设备llO请求状态数据lll,以协助确定计算设备UO的状态。在其它实施例中,计算设备110能够在接收到上述通知122时向更新细节服务器125发送状态数据lll。在由计算设备110接收通知122的一些实施例中,状态数据111还可以包括通知122的子集,该子集包括但不限于至少一个软件更新文件148的标识符和/或至少一个软件更新文件148的描述。在这些实施例中,如下参照图2所述的,更新细节服务器125能够通过将状态数据111的至少部分子集和数据144的至少部分子集相比较,处理状态数据lll和数据144以确定计算设备110的状态。在一些实施例中,更新细节服务器125能够存储和管理数据144。在这些实施例中,更新细节服务器125包括用于存储数据144的存储器127。在这些实施例的一些中,更新细节服务器125可以只在给定时间段上仅存储数据144,其中在该给定时间段之后删除数据144。图2示出了确定计算设备110的状态的方法。如下所述,图2的方法可以由计算设备IIO、通信服务器120、更新细节服务器125或其它能够接收和处理状态数据lll和参考数据的计算实体中的至少一个执行。在步骤210,确定与驻留在计算设备110上的至少一个文件相关联的至少一个唯一码,该至少一个唯一码代表该至少一个文件的状态。在非限制性实施例中,对状态数据U1进行处理以提取与驻留在计算设备110上的至少一个文件的状态相关联的唯一码,例如上面描述的唯一码118a,118b,118c和118d。如上述描述,在之前的步骤中,唯一码已经被合并到状态数据111中。在由计算设备110执行图2中方法的实施例中,状态数据111包括存储器115的内容的至少一部分,该部分包括但不限于唯一码。在其它非限制性实施例中,可以采用其它方式确定该至少一个唯一码。在步骤220中,确定与至少一个更新文件相关联的至少一个唯一参考码,该至少一个更新文件用于更新驻留在计算设备110上的至少一个文件,该至少一个唯一参考码代表该驻留在计算设备110上的至少一个文件的预期状态。在非限制性实施例中,对参考数据进行处理以提取与驻留在计算设备110上并且至少有一个软件更新文件148旨在更新的文件的预期状态相关联的唯一参考码,例如上述描述的唯一参考码141a,141b,141c和141d。在之前的步骤中,已经将唯一参考码合并到参考数据中。在一些实施例中,参考数据可以包括数据144的至少一部分。在其它实施例中,参考数据可以包括数据143的至少一个部分。在由计算设备110执行图2方法的实施例中,可以由通信服务器120、更新细节服务器125或其它计算实体向计算设备110发送参考数据。在非限制性实施例中,参考数据可以包括通知122。在其它非限制性实施例中,可以采用其它方式确定与至少一个更新文件相关联的至少一个唯一参考码。在步骤230中,将唯一码和唯一参考码相比较。例如,每一个唯一码118a,U8b,118c和118d与独立参考码141a,141b,141c和141d中的至少一个相比较。如果发现匹配,则在步骤240确定计算设备110处于预期状态。在这些实施例中,确定计算设备110处在预期状态还允许计算实体对至少一个软件更新文件148旨在更新驻留在计算设备110上的文件(例如文件117a,117b,117c和117d)进行验证,其中该文件与状态数据lll中接收到的唯一码(例如唯一码118a,118b,118c和118d)相关联。在这些实施例中,执行图2方法的计算实体接着可以触发对计算设备110的状态的更新,如参照图3中的方法所描述的。在步骤230,如果发现唯一码和唯一参考码之间是不匹配的,则在步骤260确定计算设备处在非预期状态。在这些实施例中,确定计算设备110处在非预期状态还允许计算实体对至少一个软件更新文件148旨在更新驻留在计算设备110上的文件(例如文件117a,117b,117c和117d)进行验证,其中该文件与状态数据lll中接收到的唯一码(例如唯一码118a,U8b,118c和118d)相关联。在这些实施例中,执行图2方法的计算实体接着可以触发对计算设备110的状态的更新,如参照图3中的方法所描述的。在这些实施例中,在步骤270,执行图2方法的计算实体可以结束进一步的数据处理。换言之,对计算设备110处在非预期状态的确定阻止了对计算设备的更新的触发,因为至少一个软件更新文件148不是旨在更新与状态数据111中接收的唯一码相关联的并驻留在计算设备110上的文件。确实,如果使用至少一个更新文件148来更新不是想要更新的文件,可能导致计算设备110毫无用处。在这些实施例中,本
技术领域:
的技术人员会将毫无用处的计算设备110称作"brick"。在备选实施例中,如果在步骤260确定计算设备110处在非预期状态,则在步骤270,执行图2方法的计算实体可以不结束处理,而是在步骤280触发补救措施。在实施例的一些中,例如,补救措施可以包括向计算设备110的用户发送消息以与图1结构的管理员联系。在一些实施例中,该消息包括电子邮件消息、电话消息、传真消息等中的至少一个。在其它实施例中,补救措施可以包括从数据库145或管理服务器150、或经由管理服务器150从软件供应商获取新的参考数据,以确定需要哪些软件更新来实现计算设备110状态的更新。在一个实施例中,可以通过向远程计算实体发送与唯一参考码不匹配的至少一个唯一码,来处理状态数据中的唯一码以确定和请求旨在更新计算设备iio上驻留的文件的附加软件更新,该至少一个附加软件更新与同至少一个唯一码匹配的至少一个附加唯一参考码相关联。在一些实施例中,计算设备110的第一部分可以处在预期状态,而计算设备110的第二部分可以处在非预期状态。例如,在这些实施例中,参考数据可以包括多个参考码,每一个参考码与不同的软件更新文件相关联,这些不同的软件更新文件旨在更新驻留在计算设备110上的文件,驻留在计算设备110上的文件与安装在计算设备110上的两个应用相关联。在一些实施例中,与第一应用相关联的文件可以处在预期状态(第一部分),而与第二应用程序相关联的文件可以处在非预期状态(第二部分)。在这些实施例中,如上描述的,执行图2方法的计算实体可以触发对计算设备第一部分的状态的更新,并可以阻止对计算设备第二部分的状态的更新,或者触发补救措施。一旦已经确定了计算设备110的状态,就由更新细节服务器125触发计算设备110的更新,例如,通过向计算设备发送消息,或者由通信服务器120触发计算设备U0的更新,例如,通过向计算设备发送通知129。在更新细节服务器125触发计算设备110更新的实施例中,数据144(以及由此数据144)包括用于实现计算设备110的更新的信息,该信息包括但不限于至少一个软件更新文件的标识符;驻留在计算设备IIO上的文件的标识符,该文件是至少一个软件更新文件148旨在更新的文件;可以获取至少一个软件更新文件148的位置;以及用于使用至少一个软件更新文件148对驻留在计算设备110上的文件进行更新的指令。在一些实施例中,数据144还可以包括与驻留在计算设备110上的文件相关联的应用的标识符,该文件是至少一个软件更新文件"8旨在更新的文件;与至少一个软件更新文件148相关联的应用的标识符(例如,所更新的应用的名称);至少一个软件更新文件148的描述;和/或对驻留计算设备UO上的文件的预期状态进行标识的唯一参考码,该文件是至少一个软件更新文件148旨在更新的文件。在这些实施例中,上述参照表T1描述的非限制性示例中,数据142可以包括,但不是限于,来自被标记为"文件标识符"、"文件位置"、"要更新的文件的标识符"和"安装指令"的列的数据。在这些实施例中,通知122或消息129包括用于实现计算设备H0更新的信息,包括但不限于至少一个软件更新文件的标识符;驻留在计算设备110上的文件的标识符,该文件是至少一个软件更新文件148旨在更新的文件;可以获取至少一个软件更新文件148的位置;以及用于使用至少一个软件更新文件148对驻留在计算设备110上的文件进行更新的指令。。在这些实施例中的一些中,通知122或消息129还包括与驻留在计算设备110上的文件相关联的应用的标识符,该文件是至少一个软件更新文件148旨在更新的文件;与至少一个软件更新文件148相关联的应用的标识符(例如,所更新的应用的名称);至少一个软件更新文件148的描述;和/或对驻留计算设备110上的文件的预期状态进行标识的唯一参考码,该文件是至少一个软件更新文件148旨在更新的文件。在这些实施例中,更新细节服务器125(或通信服务器120)处理数据M4,以(分别)产生消息129(或通知122)。消息129(或通知122)是可由计算设备110处理的,并包括用于通过从至少一个远程计算实体请求至少一个更新文件来更新计算设备110状态的指令,该至少一个更新文件用于更新驻留在计算设备110上的文件。在一些实施例中,该至少一个更新文件包括至少一个软件更新文件148,例如更新文件119a,119b,119c和119d中的至少一个。在其它实施例中,该至少一个远程计算实体包括补丁服务器132。还在其它实施例中,驻留在计算实体110上的文件包括非限制性示例中的文件117a,117b,117c和117d中的至少一个。在一些实施例中,用于更新计算设备110状态的指令包括向远程计算实体请求至少一个更新文件的指令。在一些实施例中,指令可以包括显式指令,其指示计算实体110可以进行处理以从远程计算实体请求至少一个更新文件。在这些实施例中,显式指令包括计算设备iio可处理的、用编程语言编写的指令。在这些实施例中,更新细节服务器125还能够处理数据144以产生可由计算设备110处理的、用编程语言编写的指令。在一个非限制性实施例中,显式指令包括用标记语言编写的指令。在非限制性实施例中,标记语言可以包括可扩展标记语言(XML)。在其它实施例中,指令可以包括本
技术领域:
的技术人员已知的键值对(key-valuepairs)。在其它实施例中,指令可以包括数据集合,该数据集合使计算设备110能够通过向至少一个远程计算实体请求用于更新驻留在计算设备110上的文件的至少一个更新文件来产生用于更新计算设备110状态的显式指令。在这些实施例中,可以通过处理该数据集合来产生显式指令。在一些实施例中,更新细节服务器125(或通信服务器120)能够(分别)压縮消息129(或通知122)的至少一部分,以减小消息129(或通知122的大小),该至少一部分例如是向远程计算实体请求至少一个更新文件的指令。在一些实施例中,可以使用本领域技术人员已知的zip软件压縮消息129的至少一部分(或通知122的至少一部分)。Zip软件的非限制性示例包括gzip、winzip、jar、stuffit和rar。非限制性实施例中,使用gzip软件压缩消息129的至少一部分。在一些实施例中,当由计算设备110处理时,压縮的消息129的至少一部分(或通知122的至少一部分)能够被解压。例如,可以将消息129的至少一部分(或通知122的至少一部分)压縮为自解压縮可执行文件,该在自解压可执行文件在由计算设备110处理时被解压缩。在这些实施例中,没有解压縮软件驻留在计算设备110上。然而,在其它实施例中,解压縮软件驻留在计算设备110上,用于对压縮的消息129的至少一部分(或压縮的通知122的至少一部分)进行解压縮。在这些实施例的一些中,解压缩软件包括本领域技术人员已知的unzip。在使用gzip软件压缩消息129的至少一部分(或通知122的至少一部分)的实施例中,unzip软件也可以包括gzip软件。在一些实施例中,指令包括可以获取至少一个软件更新文件148的位置。在这些实施例中,指令可以包括远程计算实体的地址,例如补丁服务器130的网络地址。在其它实施例中,指令包括远程计算实体的标识符,例如远程计算实体的别名。在这些实施例中,可以将远程计算实体的别名与远程计算实体的地址一起存储在计算设备110上,例如可以存储在存储器115中,计算设备110能够通过处理至少一个远程计算实体的别名,向该远程计算实体请求至少一个更新文件。还在其它实施例中,远程计算实体的地址存储在计算设备iio上,例如存储在存储器115中,计算设备110能够通过处理存储在计算设备110上的地址,在收到消息129时从远程计算实体获取该至少一个更新文件。在一些实施例中,指令还包括用于处理该至少一个更新文件以更新远程计算设备110的状态的指令。在这些实施例中,更新细节服务器125还能够将用于使用至少一个软件更新文件148对驻留在计算设备110上的文件进行更新的指令合并到向远程计算实体请求该至少一个更新文件的指令中。在非限制性实施例中,指令包括来自上述表T1的安装指令。在由管理服务器150向补丁服务器130发送软件更新信息147的至少一部分的实施例中,如上所述,指令还包括至少一个软件更新文件148的标识符、和/或对驻留计算设备110上的并且至少一个软件更新文件148旨在更新的文件的预期状态进行标识的唯一参考码。。在这些实施例中,由管理服务器150向补丁服务器130发送的软件更新信息147的至少一部分包括用于处理至少一个软件更新文件148以更新远程计算设备110状态的指令;至少一个软件更新文件148的标识符;或/和唯一参考码。在这些实施例中,计算设备110还能够通过发送至少二个软件更新文件148的标识符和/或唯一参考码,从补丁服务器130获取指令,该指令针对用于处理至少一个软件更新文件148以更新远程计算设备110状态的指令。在非限制性实施例中,用于更新计算设备110的状态的指令包括来自表T1的指令、以及用于从补丁服务器130获取至少一个软件更新文件148的指令。在这个实施例中,指令可以包括:_从具有网络地址192.237.34.56的补丁服务器获取更新文件U9a,119b,119c禾Q119d用119a替换文件117a的字节xyz用119b替换文件117b将119c追加到117c用U9d替换文件117d的字节abc在一些实施例中,用于更新计算设备110的状态的指令还包括重新启动命令。在其它非限制性实施例中,用于更新计算设备110的状态的指令可以包括从补丁服务器130获取至少一个软件更新文件148、以及可能己由管理服务器150发送给补丁服务器130的用于更新计算设备110的任何数据,例如上述软件更新信息147的至少一部分。在这些实施例中,指令可以包括一从具有网络地址192.237.34.56的补丁服务器获取的更新文件119a,119b,119c和119d及相关联的数据文件。现在转向图3,示出了更新计算设备110的状态的方法。图3的方法可以由计算设备110执行。参考图1和图4描述图3所示的方法。图4示出了根据非限制性实施例的用于更新计算设备110状态的结构。图4与图1基本上相似,相同元件具有相同编号。在步骤310,计算设备110接收用于更新计算设备110状态的指令。在一些实施例中,通过消息129从更新细节服务器125接收指令。在其它实施例中,通过通知122从通信服务器120接收指令。在其它实施例中,从能够产生用于更新计算设备110状态的指令的其它计算实体接收指令。在步骤315,计算设备110在处理器114处处理指令。在一些实施例中,如上所述,指令可以是压缩的。在这些实施例中,计算设备IIO可以压缩的指令进行解压缩。在这些实施例的一些中,如上所述,计算设备110可以通过用解压缩软件处理指令,对指令进行解压縮。在其它实施例中,如上所述,压縮的指令包括自解压縮可执行文件,计算设备110通过处理自解压缩可执行文件,对压縮的指令进行解压縮。在指令包括能够使计算设备110产生用于更新计算设备110状态的显式指令的数据集合的实施例中,在步骤315可以进一步处理指令,以产生显式指令(即,用编程语言编写的指令)。例如,在一些实施例中,指令包括可以获取至少一个软件更新文件148的远程实体位置,但是不包括用于获取文件的显式指令。因此,在步骤315使用该数据集合作为输入来产生显式指令。在步骤320,将针对至少一个软件更新文件148的至少一个请求410发送至至少一个远程实体,从该远程实体可以获取至少一个软件更新文件148。在要获取多个软件更新文件的实施例中,可以发送多个请求,其中每一个请求分别针对多个软件文件中的一个。在要获取多个软件更新文件并且该多个软件更新文件驻留在单个远程实体的实施例中,可以发送单个请求,用于请求该多个软件更新文件的全体。在要获取多个软件更新文件并且该多个软件更新文件分布在多个远程实体的实施例中,可以发送多个请求,其中每一个请求针对这些远程实体中的一个。在一些实施例中,至少一个远程实体包括补丁服务器130。在步骤330,从至少一个远程实体接收至少一个软件更新文件148,例如经由传输420从补丁服务器130获取。在图4所示的非限制性示例中,传输420包括更新文件119a,119b,119c和119d。在计算设备IIO也已经获取了已由管理服务器150发送到补丁服务器130的用于更新计算设备110的数据的实施例中,在步骤330也接收用于更新计算设备100的数据。在步骤340,使用至少一个软件更新文件148更新在计算设备110上驻留的至少一个文件,以产生至少一个更新的文件。在一些实施例中,通过用至少一个软件更新文件148来替换至少一个处在计算设备IIO上驻留的至少一个文件中的至少一部分,产生至少一个更新的文件。在一些实施例中,通过将至少一个软件更新文件148和在计算设备IIO上驻留的至少一个文件拼接,来产生至少一个更新的文件。在这些实施例的一些中,将至少一个软件更新文件148追加在驻留在计算设备110上的至少一个文件的末尾。在这些实施例的其他一些中,将至少一个软件更新文件148添加在驻留在计算设备110上的至少一个文件的开头。在其他实施例中,通过用至少一个软件更新文件148提供在计算设备110上驻留的至少一个文件的整体,来产生至少一个更新的文件。还在其他实施例中,通过删除在计算设备110上驻留的至少一个文件的至少一部分,来产生至少一个更新的文件。图4还示出了对包含在表T1内的指令进行处理的结果。存储器115包括文件117a、117b'、117c和117d'。文件117a、117b'和117c与已从应用116a更新的已更新应用116a相关联。文件117d'与已从应用116b更新的已更新应用116b'相关联。文件117a是已通过利用更新文件9a更新文件117a而产生的,其中更新文件119a替换文件117a的一部分。文件117b'是已通过利用更新文件119b更新文件117b而产生的,其中更新文件119b替换整个文件117b。文件117c是己通过利用更新文件119c更新文件117c而产生的,其中更新文件119c被追加至117c。文件117d'是已通过利用更新文件119d更新文件117d而产生的,其中更新文件119d替换文件117d的一部分。注意,图4中没有示出通过删除驻留在计算设备110上的至少一个文件的至少一部分来产生至少一个更新的文件。在与在计算设备110上驻留的至少一个文件关联的唯一码的实施例中,在步骤350,用与至少一个更新的文件关联的更新的唯一码替换与在计算设备110上驻留的至少一个文件关联的唯一码。在一些实施例中,在步骤330,与至少一个软件更新文件148—起从至少一个远程实体接收更新的唯一码。在其他实施例中,如上所述,通过向至少一个更新的文件应用散列算法,由计算设备110产生至少一个唯一码。图4还示出了用至少一个更新的唯一码替换至少一个唯一码的结果,存储器115还包括分别与文件117a'、117b'、117c和117d'的状态相关联的更新的唯一码118a、118b'、118c'和118d'。在一些实施例中,计算设备在步骤350重新启动。在这些实施例中,当计算设备110重新启动时,由计算设备处理至少一个更新文件。因此,通过向计算设备110发送消息(例如,通知122或消息129之一),可以触发对计算设备110状态的确定。在一些实施例中,消息包括允许计算设备110确定其自身状态的数据(例如唯一参考码),而在其它实施例中,计算设备110发送状态数据111以允许其它计算实体(例如,通信服务器120或更新细节服务器,或其它计算实体)确定计算设备110的状态。一旦确定了计算设备110处在预期状态,则向计算设备110发送其它消息(例如,通知122或消息129之一),该其他消息包括允许计算设备110更新其自身的数据。本领域技术人员将理解,在一些实施例中,可以使用预编程硬件或固件元件(例如,专用集成电路(ASIC),电可擦除可编程只读存储器(EEPROM)等),或其它相关组件,实现计算设备IIO、通信服务器120、更新细节服务器125、补丁服务器130、补丁可用性服务器140、数据库145和管理服务器150的功能。在其它实施例中,可以使用能够访问存储有用于计算装置操作的计算机可读程序代码的代码存储器(未示出)的该计算装置,实现计算设备IIO、通信服务器120、更新细节服务器125、补丁服务器130、补丁可用性服务器140、数据库145和管理服务器150的功能。计算机可读程序代码可以存储在由这些组件直接可读的固定有形的介质(即,可拆卸磁盘、CD-ROM、ROM、硬盘(fDceddisk)、USB驱动),或者计算机可读代码可以是远程存储的,但可以经由与网络(包括但不限于互联网)连接的调制解调器或其它接口设备传输给这些组件。传输介质可以是非无线介质(例如,光或模拟通信线路)、无线介质(例如,微波、红外线、自由空间光或其它传输方案)或其组合。本专利文件公开的一部分包含受到版权保护的材料。当该专利文件或专利公开出现在专利和商标局的专利文件或记录中时,版权所有者不反对任何人复制该专利文件或专利公开,除此之外保留所有版权。本领域技术人员将理解,可以有更多备选的实现方式和修改方式可用来实施上述实施例,上述的实现方式和示例仅示出了一个或多个实施例。因此,本发明范围仅由所附权利要求限定。权利要求1、一种确定计算设备的状态的方法,包括一确定与驻留在所述计算设备上的至少一个文件相关联的至少一个唯一码,所述至少一个唯一码代表所述至少一个文件的状态;一确定与至少一个更新文件相关联的至少一个唯一参考码,所述至少一个更新文件用于更新驻留在所述计算设备上的所述至少一个文件,所述至少一个唯一参考码代表驻留在所述计算设备上的所述至少一个文件的预期状态;以及一如果所述至少一个唯一码与所述至少一个唯一参考码相匹配,则确定所述计算设备处在预期状态,和/或如果所述至少一个唯一码与至少一个唯一参考码不匹配,则确定所述计算设备处在非预期状态。2、根据权利要求l所述的方法,其中,所述计算设备包括手持电子设备。3、根据权利要求1或2所述的方法,其中,所述至少一个唯一码包括多个唯一码中的至少一个,所述多个唯一码中的每一个与驻留在所述计算设备上的多个文件之一相关联,所述至少一个唯一参考码包括多个唯一参考码中的至少一个,所述多个唯一参考码中的每一个与多个更新文件之一相关联,每一个更新文件用于更新驻留在所述计算设备上的所述多个文件中的至少一个,所述方法还包括如果所述多个唯一码的第一子集与所述多个唯--参考码的第一子集相匹配,则确定所述计算设备的第一部分处在预期状态,和/或如果所述多个唯一码的第二子集与所述多个唯一参考码的第二子集不匹配,则确定计算设备的第二部分处在非预期状态。4、根据权利要求1到3中任一项所述的方法,其中,所述确定至少一个唯一码包括处理状态数据,所述状态数据代表所述计算设备的状态,所述方法还包括从所述计算设备接收所述状态数据。5、根据权利要求4所述的方法,其中,所述方法还包括向所述计算设备请求所述状态数据,接收所述状态数据是响应于请求所述状态数据的。6、根据上述权利要求中任一项所述的方法,其中,所述确定所述至少一个唯一参考码包括处理软件更新数据,所述方法还包括从远程实体接收所述软件更新数据。7、根据权利要求6所述的方法,其中,所述方法还包括向所述远程计算实体请求所述软件更新数据,接收所述软件更新数据是响应于请求所述状态数据的。8、根据上述权利要求中任一项所述的方法,还包括通过向驻留在所述计算设备上的所述至少一个文件应用散列算法,产生所述至少一个唯一码;以及通过向至少一个参考文件应用所述散列算法,产生所述至少一个唯一参考码,其中所述至少一个参考文件等同于驻留在所述计算设备上的所述至少一个文件。9、根据权利要求8所述的方法,其中,所述散列算法包括SHA-1、SHA-224、SHA-256、SHA-384和SHA-512中的一个。10、根据上述权利要求中任一项所述的方法,还包括编译所述计算设备可处理的消息,所述消息包括用于指示所述计算设备向至少一个远程计算实体请求所述至少一个更新文件的数据;以及向所述计算设备发送所述消息。11、根据上述权利要求中任一项所述的方法,还包括如果所述计算设备处在非预期状态,则触发补救措施。12、根据权利要求ll所述的方法,其中,所述补救措施包括向所述计算设备的用户通知所述计算设备处在非预期状态。13、根据权利要求ll所述的方法,其中,所述补救措施包括通过向所述远程计算实体发送所述至少一个唯一码,向所述远程计算实体请求至少一个附加软件更新,所述至少一个附加软件更新与同所述至少一个唯一码匹配的至少一个附加唯一参考码相关联。14、一种用于确定手持电子设备的状态的计算装置,包括一接口,用于接收来自所述手持电子设备的状态数据和来自远程计算实体的软件更新数据,一处理器,与所述接口连接,用于一处理所述状态数据以确定与驻留在所述手持电子设备上的至少一个文件相关联的至少一个唯一码,所述至少一个唯一码代表所述至少一个文件的状态;一处理所述软件更新数据以确定与至少一个更新文件相关联的至少一个唯一参考码,所述至少一个更新文件用于更新驻留在所述手持电子设备上的所述至少一个文件,所述至少一个唯一参考码代表驻留在所述手持电子设备上的所述至少一个文件的预期状态;一如果所述至少一个唯一码与所述至少一个唯一参考码相匹配,则确定所述手持电子设备处在预期状态,和/或如果所述至少一个唯一码与所述至少一个唯一参考码不匹配,则确定所述手持电子设备处在非预期状态;一如果所述手持电子设备处在预期状态,则编译所述手持电子设备可处理的消息,所述消息包括用于指示所述手持电子设备向至少一个远程计算实体请求所述至少一个更新文件的数据;一使所述消息经由所述接口被发送至所述手持电子设备。15、根据权利要求14所述的计算装置,其中,所述至少一个唯一码是多个唯一码中的至少一个,所述多个唯一码中的每一个与驻留在所述手持电子设备上的多个文件之一相关联,所述至少一个唯一参考码是多个唯一参考码中的至少之一,所述多个唯一参考码中的每一个与多个更新文件之一相关联,每一个更新文件用于更新驻留在所述手持电子设备上的所述多个文件中的至少一个,所述处理器还能够用于如果所述多个唯一码的第一子集和所述多个唯一参考码的第一子集相匹配,则确定所述手持电子设备的第一部分处在预期状态,和/或如果所述多个唯一码的第二子集和所述多个唯一参考码的第二子集不匹配,则确定所述手持电子设备的第二部分处在非预期状态。16、根据权利要求14或15所述的计算装置,其中,所述处理器还能够用于使针对所述状态数据的请求经由所述接口被发送至所述手持电子设备,并响应于发送针对所述状态数据的所述请求,经由所述接口接收所述状态数据。17.根据权利要求14到16中任一项所述的计算装置,其中,所述处理器还能够用于使针对所述软件更新数据的请求经由所述接口被发送至所述远程计算实体,并响应于发送针对所述软件更新数据的所述请求,经由所述接口接收所述软件更新数据。18.根据权利要求14到17中任一项所述的计算装置,所述处理器能够用于如果所述手持电子设备处在非预期状态,则触发补救措施。19.根据权利要求18所述的计算装置,其中,所述补救措施包括向所述手持电子设备的用户通知所述计算设备处在非预期状态。20.根据权利要求18所述的计算装置,其中,所述补救措施包括通过向第二远程计算实体发送所述至少一个唯一码,向所述第二远程计算实体请求至少一个附加软件更新,所述至少一个附加软件更新与同所述至少一个唯一码相匹配的至少一个附加唯一参考码相关联。21.—种存储有计算机可读指令的计算机可读介质,所述计算机可读指令可由计算设备的处理器执行以使所述设备实现权利要求l到'13中任一项所述的方法中的步骤。全文摘要根据说明书中描述的实施例,描述了用于确定计算设备的状态的方法和装置,其中,首先确定与驻留在所述计算设备上的至少一个文件相关联的至少一个唯一码,所述至少一个唯一码代表所述至少一个文件的状态。其次,确定与至少一个更新文件相关联的至少一个唯一参考码,所述至少一个更新文件用于更新驻留在所述计算设备上的所述至少一个文件,所述至少一个唯一参考码代表驻留在所述计算设备上的所述至少一个文件的预期状态。最后,如果所述至少一个唯一码与所述至少一个唯一参考码相匹配,则确定所述计算设备处在预期状态,和/或如果所述至少一个唯一码与至少一个唯一参考码不匹配,则确定所述计算设备处在非预期状态。文档编号G06F9/445GK101364181SQ200810129698公开日2009年2月11日申请日期2008年8月7日优先权日2007年8月9日发明者斯宾塞·奎恩,高永谦申请人:捷讯研究有限公司