专利名称:从服务器刷新客户端时再同步化客户端装置的系统和方法
技术领域:
本发明涉及一种具有计算能力并利用服务器的服务的消费电子装置;本发明尤其涉及利用更新的对象组从服务器刷新这些装置的操作背景技术新的家用客户端装置、移动电话或其它具有计算能力的消费电子装置使用网络浏览器从提供互连网服务的网络服务器把信息下载到本地。与专业设备相反,这些广泛使用的装置在离线模式下浏览本地信息。当它们重新连接时,需要根据服务器中该装置已经预定的服务,用网络服务器掌握的更新信息来刷新该装置。
这些低成本消费装置的另一个特征是,在离线模式下,这些装置可能因维护或甚至替换的原因而重新初始化。在这种情况中,在重新连接时必须在服务器和该装置之间进行再同步,这样的再同步化还必须考虑到该装置已经预定的服务。
通常认为,对于这种装置,每晚定期刷新,加上按用户的请求而刷新是适当的。
从服务器刷新装置的操作的第一个问题在于将要下载的信息量。因为信息可以每天刷新一次或多次(股价信息的情况如此),服务器不知道装置请求的信息的级别,并且在重新连接的情况下,服务器将向每个客户端装置发送它自己完整的信息组。在每个装置下载的信息量在传输时间和传输成本方面都较少的情况下,这种方法是可接受的。在所述装置中本地保存的数据的持续增长迅速导致难以管理的状态。例如,对于每个装置,10M字节的更新通常需要大于半小时的传输时间,而如果服务器有100K个装置要更新,将需要巨大而又昂贵的通道来提供所需要的在这种情况中达到1兆兆字节的量。
现有的减少下载信息量的第一种解决方案为,用新级别的信息来刷新在线客户端装置。这一应用于容器(container)的解决方案,已在转让给International Business Machines Corporation(国际商务机器公司)的美国专利US6148340中公开。其包括在服务器端记录(keep track)下载到装置的容器的上一级别。为了用新级别的容器刷新装置,服务器只发送自上次下载以来修改过的容器。而且,因为服务器保持刷新的级别,并且在每次客户端装置请求时重新评定刷新级别,因此刷新操作指向在线客户端装置。
现有技术的解决方案,高效地减少了网络服务器在刷新操作期间下载到客户端装置的信息量。然而,当已重新初始化的装置离线时,该方案不能答复该装置再同步化的需要。因此,在重新连接时,在客户端装置在其本地存储器实际存储的信息与网络服务器认为该客户端装置存储到本地的已下载的信息之间存在差异。
而且,在现有技术的所述方案中,不考虑客户端装置向网络服务器做的当前预定。根据该方案,从向给定客户端装置下载上一级别的容器起,该客户端装置可能已改变预定的服务器服务中的一个服务,并且可能访问与服务器根据这一方案而为该装置记录的容器不同的一组信息。
发明内容
因此,本发明的一个目的是提供一种方法和系统,当客户端装置向服务器请求刷新对应于其预定的服务的信息时,向客户端装置发送其需要的正确级别的信息。
本发明的另一个目的是只发送已更新的信息。
本发明的另一个目的是,在重新连接时,以根据当前预定的服务器服务的信息级别再同步化客户端装置。
通过根据权利要求1的方法实现上述目的,所述方法在从服务器刷新客户端装置本地存储的对象时再同步所述客户端装置,其中所述客户端装置通过通信装置远程连接到所述服务器,所述服务器记录所述客户端装置预定的交易,所述方法包括以下步骤-在客户端装置中读取数据列表,所述数据列表包括对象标识符和用于标识客户端装置本地存储器中存储的对象内容的摘要;-从所述客户端装置向所述服务器发送刷新请求消息,所述刷新请求消息包括客户端装置标识符和所读取的数据列表;-在服务器中读取与由所接收的客户端装置标识符标识的所述客户端装置所预定的交易对应的对象标识符列表;
-在所述服务器比较从刷新请求中接收的数据列表和由所述服务器存储的数据列表,由所述服务器存储的数据列表包括对象标识符和用于标识也由所述服务器存储的对象内容的摘要;-从服务器向客户端装置发送具有对象列表的刷新答复消息,该对象列表包括为与所述客户端装置所预定的交易相对应并且为其接收的摘要与服务器中读取的摘要不同的对象,而从服务器中读取的对象标识符及其相应摘要和内容;-在客户端装置接收刷新答复消息,替换与属于所述对象列表的对象的对象标识符相对应的本地存储的对象的内容和数据列表中的摘要。
根据权利要求2,如果新的对象属于客户端装置已经预定的交易,服务器在对象列表中添加对应于这些新的对象的信息。根据权利要求3,当相应的对象不再属于客户端装置预定的交易时,服务器在对象列表中发送有特定代码伴随的对象标识符。客户端装置将在其本地存储器中消除该对象本身及其相关的信息。
本方法通过在服务器中运行的程序产品和在客户端装置中运行的程序产品实现。
本发明的主要优点在于,其可以应用于经常在离线模式下使用的广泛使用的客户端装置。
图1示出了优选实施例的环境;图2示出了存储在服务器端用于管理装置对象的三个表,即预定表、交易对象表以及对象表;图3示出了如何选择客户端装置中更新的对象;图4示出了下载到客户端装置的对象列表的格式;图5示出了在刷新前后位于客户端装置中的用户当前对象表;图6示出了在客户端装置和网络服务器之间的信息交换;图7示出了刷新和同步客户端装置的优选实施例的方法的流程表。
具体实施例方式
图1是对本发明的环境的描述。网络服务器(100)通过网络(130)对客户端装置(110、120)提供服务,网络(130)可以是互联网,并可以包括移动通信。互连网客户端装置使用网络浏览器对服务器发出访问信息的发送请求,所述信息可以是任何类型的对象,如HTML页面或图像文件(JPG、GIF等)或音频文件(WAV、MP3等),并形成通常所称的网络文档(150)。服务器记录客户端装置标号(identity),例如对移动电话而言,利用其IMEI(国际移动设备标号)。屏幕电话客户端装置可以发送其互联网用具(appliance)的按ISRF标准化的识别码。更一般地,所有的客户端装置发送类似于作为唯一标识符的序列号的识别码。
服务器还记录由客户端装置预定的服务及更多其它方面,客户端装置可能对该服务提供并在其简档中描述的特定信息感兴趣。在对优选实施例的描述中,预定了一个简单的示例服务,而没有简档,但是本领域的技术人员可以容易地利用客户端简档改写该优选实施例。所述信息可以是静态的,例如用于烹饪信息服务的菜谱;或者可以每日刷新,例如报纸;或者每日刷新几次,例如随气象位置(weather site)刷新。根据优选实施例,服务器将只发送与先前发送的上一级别相比较新的信息。在图1中,客户端装置已经离线,并需要由网络服务器刷新。客户端装置发送明确的具有再同步信息的刷新请求,所述再同步信息存储在该装置本地,并将帮助服务器以所需要的正确级别的信息再同步客户端装置。网络文档(150)最初由“来源服务器”(140)存储,所述来源服务器响应请求将所述网络文档发送到对用户客户端装置(110、120)提供服务的远程网络服务器(100)。远程网络服务器只用已更新的网络文档对象刷新客户端装置。客户端装置一旦得到刷新,根据本优选实施例,可以利用已刷新的对象在本地重建网络文档(150)。
根据本实施例,作为网络服务器信息服务的用户的客户端装置具有通信设备本地存储单元,以存储建立网络文档的对象;以及至少一个处理器,以重建网络文档,显示这些文档并发送刷新请求。服务器通过下载信息再同步化和刷新所述装置。所述装置可以接收所述信息,修改本地存储的对象和本地存储的再同步信息。所述刷新和同步方法可以作为在服务器和客户端装置中的计算资源中运行的程序而实现。
图2示出了存储在服务器端的三个表。客户端装置正浏览由对象构成的“本地网页”。对象是作为单个实体处理的数据块。对于本优选实施例的目的而言,对象是刷新单位(unit)。
服务器表有预定表(200)、交易对象表(210)和对象表(220)。预定表用于存储由交易ID唯一标识、并与由装置ID唯一标识的给定客户端装置相关联的“交易”。每个交易对应于对服务器提供的服务的预定。利用该表,服务器能够找出所有与给定客户端装置相关的交易。交易对象表为由交易ID标识的每个交易存储与该交易相关并由服务器分配的对象ID唯一标识的对象的列表。服务器使用该表找出所有属于与给定客户端装置相关的交易的对象ID。对象表由服务器维持,使每个对象ID与一对象签名即“摘要”相关联,用于标识为安全性而使用的文本的内容。MD5是给出对象的约化表示的单向混编信息(one-way hash)。MD5签名使得能够标识具有较高安全级别的大文本。在优选实施例中可以使用任何其它“摘要”。服务器充当“代理”功能,从本地或远程“来源服务器”得到对象。在每次服务器从来源服务器接收新的对象时,计算签名。对象表包含最新接收到的对象值和相应的计算出的签名。服务器为每个对象ID存储计算出的签名、对象长度以及标识提供了包含所述对象的网络文档的互联网或内部网来源服务器的网址的本地URI(统一资源标识符)或远程URL(统一资源定位符地址)。所述地址不用于对客户端装置进行刷新和再同步化,而由服务器用来周期性地向来源服务器要求最新对象级别。
图3示出了对象组的一个示例,以及服务器如何在所有这些对象中进行选择以刷新客户端装置。通过读取预定表(200)和处理对象表(210)确定属于给定客户端装置的交易的对象组。作为示例,对装置T01而言,包括Obj2、Obj1、Obj3以及Obj4。服务器获知在应客户端装置发出的请求而进行刷新之前客户端装置中已驻留哪些对象,这在将在下文中参考图6详细描述。这些对象形成对图3的第二组,包括Obj5、Obj1、Obj3以及Obj4。服务器查找两组间的交集,以确定需要为客户端装置更新的对象Obj1、Obj3和Obj4。对象Obj5不再是客户端装置预定的交易的一部分,并且服务器将请求客户端装置删除Obj5及所述装置中存储的关于该对象的任何信息。对象Obj2不是已在客户端装置中驻留的对象服务器必须以该新对象刷新客户端装置。对于已在客户端装置中驻留的对象,Obj1、Obj3和Obj4,如果客户端中驻留的版本不具有与其最新版本相同的签名,服务器必须以该对象的最新版本刷新客户端装置。因为在由客户端装置发送的请求中将包括对象的签名,所以服务器将获知客户端装置中驻留的对象的签名,这在下文中将参考图6详细描述。
图4示出了服务器将下载到客户端装置以对其进行刷新的对象列表的格式。图4的示例示出了从Obj1到Objn共n个对象。对象列表中的每个“对象”包括对象ID、作为来自对象表的最新级别签名的对象签名、来自对象表的对象长度、以及从来源服务器读取的对象本身。
图5示出了对客户端装置中维持的当前用户对象组表的更新。该表包括对象ID和对象的签名。由服务器分配对象ID,由服务器计算签名,并在前面的刷新操作中下载上述二者。当前用户对象组表包含从服务器接收的最新级别。一旦接收到由客户端装置发送的刷新请求,服务器将如图3所示,选择要下载到客户端装置的对象。当客户端装置接收到服务器发送的对象列表时,更新本地对象版本,客户端装置还相应地更新所述表(所述对象ID和签名)。在图5中,第一个表是刷新前的先前级别(500),而第二个表是在刷新后的最新级别(510)。示出了与图3中相同的示例,新级别(510)不再包括对Obj5的引用(reference),而引入对新对象Obj2的新引用,并且仅更新必须改变的对象Obj3的签名,因为其签名已经改变。
图6示出了在客户端装置和服务器之间交换的消息。示例中所用的协议是HTTP,其中利用“POST(发布)”命令发送请求(600)。发布的消息遵循本优选实施例的刷新请求语法。该命令是“Refresh(刷新)”,在该示例中终端ID是T01,对象ID列表和关联的签名是客户端装置中本地存储的当前用户对象组表中的内容。客户端装置发布刷新本地存储的对象的请求。对于这种离线时工作的客户端装置,可以每天发送一次该请求。服务器通过读取客户端装置的识别号答复该请求,并利用两个表即预定表(200)和交易对象表(210)标识所有对应于该客户端装置的交易和所有与这些交易相关的对象。根据图3所示,服务器将决定哪些是要为该客户端装置(320)更新的候选对象。然后,通过读取对象表,服务器对每个要刷新的候选对象读取签名。对象表中存储的签名是当服务器从来源服务器接收并存储最新级别的对象时计算出的签名。如果对象表的签名与来自客户端装置的请求中包括的签名相同,那么服务器将不在其答复中发送该对象。在该示例中,Obj1和Obj4具有不同的签名(分别是S12和S41),所以服务器将不发送它们。由客户端装置本地存储的Obj3对应于由签名S32标识的级别。在服务器中,所存储的级别具有不同的签名S31。必须发送当前级别的Obj3以刷新客户端装置。还必须发送新Obj2,并且服务器因为Obj5不再属于客户端装置预定的交易,所以必须建议从客户端装置的存储器中删除Obj5。
图6中还示出了来自服务器的答复(610)。利用HTTP协议,服务器发送答复发布消息的简单消息。该命令是“Refresh_response(刷新响应)”,随后是根据参考图4描述的格式的“Object_list(对象列表)”。将Obj3与更新的签名S32、新对象长度和对象内容本身一起发送。将Obj2与以前计算出的签名S21、对象长度和对象内容本身一起发送。如上所述,Obj5不再是客户端装置的交易的一部分,不对其刷新,并且刷新响应中的签名识别号0和对象长度识别号0意味着必须从客户端装置的本地存储器中取消该对象,并且必须从当前用户对象组表中删除所述记录。
如果在致命崩溃的情况下,在维护或由新装置替换后重新初始化客户端装置,则当前用户对象组表是空的,而所述请求用于发送对应于客户端装置已经预定的交易的所有对象。由客户端装置发布的刷新命令将不包括对象。这是在优选实施例中通知服务器其需要接收对应于其已预定的所有交易的所有最新级别的对象的方式。
图7是根据本优选实施例,利用一组对象再同步化要刷新的客户端装置的方法的流程图。
步骤700由客户端装置执行,其中读取存储二元组(couple)(对象ID,签名)的当前用户对象组表。客户端装置在例如互联网络中使用的HTTP协议(710)下发布消息,所述发布消息是客户端-服务器环境中的客户端请求。该消息包括根据参考图6描述的格式的“Request_refresh(请求_刷新)”命令。其包括从当前用户对象组表中读到服务器中的其预订的所述二元组和客户端装置唯一标识符。服务器读取预定表(200)和交易对象表(210),并如参考图3所述,识别对于该给定客户端装置而言要更新的候选对象、要删除的对象以及要添加的对象。服务器读取对象表中要更新的第一候选对象的签名。如果该签名与来自客户端装置的请求_刷新消息中的不同(对测试730回答否),那么,在刷新操作中保持该对象(740)。如果签名相同(对测试730回答是),则读取下一个对象,直到没有要更新的候选对象(对测试750回答是),服务器准备对象列表。如果否(对测试750回答否),核对要更新的下一个候选对象的签名和请求_刷新中接收的签名(730)。
服务器首先用要更新的对象建立对象列表(760)。如参考图4所述,对象列表包括每个对象的对象ID、对象签名、从对象表中读取的对象长度、以及服务器中所存储的对象内容自身。在对象列表中,服务器添加随交易的改变或交易中的改变而添加的新对象的对象ID、对象签名、从对象表中读取的对象长度以及对象内容(770)。包括对象ID的三元组(triplet)的后面是指示由于交易的改变或交易中的改变而要删除的对象的特定代码。指定将删除一个对象的一种可能是在对象列表中放入对象ID、以及对应于签名和对象长度的零值。可以结合对象ID使用其它任何标识,来通知客户端装置将删除该对象(770)。服务器利用客户端-服务器HTTP协议发送对刷新请求的响应(780)。客户端装置接收对象列表,并能够读取每个对象的对象ID、对象签名、对象长度,并利用对象长度读取对象内容,以识别对象的结束。利用接收到的信息,客户端装置用对象ID和对应的签名更新当前用户对象组表。其删除要删除的对象条目,并添加新对象条目。然后,用所发送的最新级别在其本地存储器中替换对象内容本身。服务器已用其所需要的对象而刷新和再同步。
权利要求
1.一种在从服务器刷新客户端装置本地存储的对象时再同步所述客户端装置的方法,其中所述客户端装置通过通信装置远程连接到所述服务器,所述服务器记录所述客户端装置预定的交易,所述方法包括以下步骤-在客户端装置中读取数据列表,所述数据列表包括对象标识符和用于标识客户端装置本地存储器中存储的对象内容的摘要;-从所述客户端装置向所述服务器发送刷新请求消息,所述刷新请求消息包括客户端装置标识符和所读取的数据列表;-在服务器中读取与由所接收的客户端装置标识符标识的所述客户端装置所预定的交易对应的对象标识符列表;-在所述服务器比较从刷新请求中接收的数据列表和由所述服务器存储的数据列表,由所述服务器存储的数据列表包括对象标识符和用于标识也由所述服务器存储的对象内容的摘要;-从服务器向客户端装置发送具有对象列表的刷新答复消息,该对象列表包括为与所述客户端装置所预定的交易相对应并且为其接收的摘要与服务器中读取的摘要不同的对象,而从服务器中读取的对象标识符及其相应摘要和内容;-在客户端装置接收刷新答复消息,替换与属于所述对象列表的对象的对象标识符相对应的本地存储的对象的内容和数据列表中的摘要。
2.如权利要求1所述的方法,其中发送刷新答复的步骤还包括以下步骤-在对象列表中添加为与所述客户端装置所预定的交易相对应并且不属于刷新请求消息中的数据列表的对象,而从服务器中读取的对象标识符及其相应摘要和内容。
3.如权利要求1或2所述的方法,其中发送刷新答复消息的步骤还包括以下步骤-为属于刷新请求消息中的数据列表而不与所述客户端装置所预定的交易相对应的对象,在对象列表中添加对象标识符和特定代码;接收刷新答复消息的步骤还包括以下步骤-对属于对象列表并具有特定代码的对象,消除本地存储的对象的内容以及客户端装置中的数据列表中的所述对象标识符及其摘要。
4.如权利要求1或3中任何一个所述的方法,还包括以下步骤-通过通信装置,从连接到所述服务器的至少另一台服务器接收已存储在该服务器中的新版本的对象内容;-用新版本替换已存储的对象内容,计算所述新版本的对象的摘要,并更新与由服务器中存储的数据列表中的对象标识符标识的对象相对应的摘要。
5.如权利要求1到4中任何一个所述的方法,还包括以下步骤-在服务器中保持与终端标识符相关的交易列表,所述终端标识符标识已预定所述相关交易的客户端装置;所述服务器利用所述交易列表和相关终端标识符,来执行读取与由所接收的客户端装置标识符标识的所述客户端装置所预定的交易相对应的对象标识符列表的步骤。
6.如权利要求1到5中任何一个所述的方法,还包括以下步骤-在服务器中保持与至少一个对象标识符相关的交易列表,所述相关对象标识符标识在给定时间是交易的一部分的对象;服务器利用所述交易列表和相关对象标识符,来执行读取与由所接收的客户端装置标识符标识的所述客户端装置所预定的交易相对应的对象标识符列表的步骤。
7.如权利要求1到6中任何一个所述的方法,还包括以下步骤-从服务器为刷新答复消息中发送的对象列表中的每个对象,在每个对象内容前添加对象内容的长度,对象标识符、摘要、对象长度和对象内容依次写入;以及-为对象列表中的每个对象,从客户端装置读取对象长度,并利用对象长度来读取依次写入的对象内容。
8.如权利要求1到7中任何一个所述的方法,其中所述摘要是MD5签名。
9.如权利要求1到8中任何一个所述的方法,其中所述通信装置是互联网,所述服务器以及所述至少另一台服务器是网络服务器,而所述对象形成网络文档。
10.一种计算机程序成品,包括程序代码指令,用于当在计算机上执行所述程序时,执行根据权利要求1到9中任何一个而由客户端装置执行的方法的步骤。
11.一种计算机程序产品,包括程序代码指令,用于当在计算机上执行所述程序时,执行根据权利要求1到9中任何一个而由服务器执行的方法的步骤。
12.一种计算系统,包括适配为执行如权利要求10所述的计算机程序的装置。
13.一种计算系统,包括适配为执行如权利要求11所述的计算机程序的装置。
全文摘要
一种方法和计算系统,用于从服务器刷新在通过通信装置远程连接到所述服务器的客户端装置中本地存储的对象。所述客户端装置发送刷新请求消息以及其本地存储器中存储的对象标识符列表和对象自身的摘要。所述服务器,在检查客户端装置所预定的交易后,发送回具有在客户端装置中本地存储并需要刷新的对象的刷新答复消息。根据客户端装置所预定的交易,服务器还将向客户端装置发送新对象,并发送特定代码以向客户端装置指定要删除不再是交易的一部分的对象。
文档编号G06F17/30GK1653420SQ03811116
公开日2005年8月10日 申请日期2003年5月13日 优先权日2002年6月20日
发明者杰勒德·马米盖尔, 乔奎因·皮肯, 皮埃尔·塞康多 申请人:国际商业机器公司