专利名称:用于基于数据效用从数据存储库选择数据的系统的制作方法
技术领域:
本发明涉及在数据存储库中存储数据,并且更具体地,用于从数据集合中仅选择数据子集以存储在数据存储库中,例如至少部分地将目标数据存储库同步到源数据存储库,或选择电子邮件或电子邮件附件以保存在邮箱中。
背景技术:
在将较小的数据存储库同步于较大的数据存储库时,通常较大数据存储库中所有的数据并不是都可以被传输到较小的数据存储库中。因此,同步必须包括仅选择较大数据存储库中的数据子集。
从较大的数据采集中选择数据子集(有时称为数据对象或简称为对象,并且其包括任何可能的信息组织,例如数据记录中的数据或数据存储库的文件,或者记录或文件自身)的问题频繁地出现在许多不同任务的移动信息访问中。这类任务通常被表述为服务器-移动同步,这表示将数据传输到移动设备,例如移动电话或USB密钥链(keychain)、或个人数字助理等。移动电话通常包括各种个人信息管理(PIM)软件应用,例如日历、电话本、待做事项列表软件应用和邮箱。用户可以手动地将信息输入到这些移动软件应用中,但许多人主要依赖个人计算机(PC)或远程群件(group-ware)服务器作为此类信息的主要存储库。人们越来越多地将他们的移动电话上的电子邮件/PIM软件应用用作主要的、基于服务器的仓库的高速缓存器或“镜像”。
为了将信息复制到移动设备,用户可以调用同步程序,从而根据一种或另一种同步协议在移动设备和远程计算机之间进行数据传输。公共同步协议是SyncML协议v1.1.1,其规范可以在www.syncml.org上找到。根据自最后一次同步起在服务器上存储的数据量,该同步可以涉及相当数量的数据传输。例如,对于邮箱而言,通常不会超过几十或甚至几百兆字节(MB),即使在该邮箱只有相对较少的电子邮件,这是因为每个电子邮件可能包括附件,并且某些可能非常大(特别是图片图像)。
通过无线接口,网络性能和运营商附加的费用可能妨碍将整个数据存储库同步到移动设备。即使通过免费和/或高速的连接,移动设备也可能缺乏存储整个数据存储库的容量。在此情况下,只能将数据存储库中的某些对象传输到移动设备,即选择的子集中的对象。现有技术提供选择对象以进行传输的简单方法,该方法使用例如“存储最新创建的对象”的规则。通常,这种简单的方法不太理想,例如在旧对象比较重要而新对象不太重要的情况下,或者较大的新对象将其他任何东西排挤出来的情况下。现有技术提供的另一种方法是要求用户手动地选择对象进行同步,但很明显,这种方法较为烦累。(在移动消息发送用户代理消息存储库的情况下,现有技术还教导了在移动设备上仅存储最近消息的滑动窗口,并自动地去除落在窗口之外的消息。这可以被视为使用“存储最新创建的对象”的规则来选择对象的形式)。
从数据集合中仅选择数据子集的问题还出现在ISP(互联网服务供应商)或客户端的其他的企业主机邮件的情况下。大多数ISP和企业在用户邮箱的尺寸上应用配额。这种配额有时候小到5MB。任何固定的配额,即使是非常大的配额,都迫使用户花费时间来将消息从邮箱中消除或将它们移动到另一个存储仓库中。像以前一样,此任务可以手动地完成或利用现有技术所提供的简单解决方案来完成。
因此,需要更完善的自动或过程以仅选择数据集合中的某些数据,需要比现有技术所提供的简单的自动解决方案更切实有用的过程。
发明内容
因此,在本发明的第一方面中,提供一种方法,该方法包括从源数据存储库内的数据对象集合中选择数据对象子集的步骤;以及将选择的数据对象保存在目标数据存储库中的步骤;其中根据用于为数据对象集合中每个数据对象分配效用(utility)的预定方法,执行选择数据对象子集的步骤。
根据本发明的第一方面,可以执行该选择数据对象子集的步骤,从而根据用于分配效用的预定方法,将源数据存储库中的具有高效用的至少部分数据对象包括在子集中。
而且,根据本发明的第一方面,用于分配效用的预定方法可以基于考虑多种因素并为每种因素提供权重的模型。进一步地,权重可以基于对至少一个用户访问数据对象进行监视。而且,权重可以基于对用户集合访问数据对象进行监视,并且然后基于对特定用户进行监视而适应于特定用户。
而且,根据本发明的第一方面,该因素可以使得分配给数据对象的效用随时间连续降低,但是如果数据对象尚未被观看或者如果数据对象被标记为指示需要后续处理动作,则分配给数据对象的效用增加。
而且,根据本发明的第一方面,源数据存储库可以由移动设备包含,并且目标数据存储库可以是仅在对源数据存储库进行压缩期间存在的临时数据存储库,并且移动设备还包含电子邮件用户代理,该电子邮件用户代理从远程邮件服务器提取新的电子邮件消息并将它们放置在源数据存储库中,而且,该移动设备包含的电子邮件用户代理或者相关模块可以时常检查源数据存储库的尺寸,如果尺寸超过预定尺寸限制,则可以通过以下来压缩源数据存储库执行子集选择步骤,然后将所选择的对象保存在新目标数据存储库中,删除源数据存储库,然后使用新目标数据存储库作为新源数据存储库以接收新电子邮件消息。
而且,根据本发明的第一方面,源数据存储库可以由同步服务器包含,并且目标数据存储库可以是同步客户端设备上的数据存储库,并且该服务器可以执行源数据存储库中对象的子集选择步骤,从而提供不超过与目标数据存储关联的尺寸限制的对象集合,然后可以将该对象传送至客户端设备。而且,服务器还可以向客户端设备传送所有未被选择的对象的对象片段和标记符,用于保存在目标数据存储库中,并且如果客户端设备删除标记符,则服务器可以在后续同步操作中传送完全(full)对象。
而且,根据本发明的第一方面,电子邮件服务器时常使用用户邮箱作为源数据存储库并使用目标数据存储库作为临时数据存储库来执行该选择和保存子集的步骤,并且电子邮件服务器可以时常检查源数据存储库的尺寸,如果该尺寸超过预定尺寸限制,则可以通过以下来压缩源数据存储库执行子集选择步骤,然后将选择的对象保存在新目标数据存储库中,删除源数据存储库,最后使用新目标数据存储库作为新源数据存储库以接收新电子邮件消息。
在本发明的第二方面中,提供一种计算机程序产品,该计算机程序产品包括包含用于由计算机处理器执行的计算机程序代码的计算机可读存储库结构,其中该计算机程序代码包括用于执行包括下列步骤的方法的指令从源数据存储库内的数据对象集合中选择数据对象子集的步骤;以及将选择的数据对象保存在目标数据存储库中的步骤;其中根据用于为数据对象集合中每个数据对象分配效用的预定方法,执行选择数据对象子集的步骤。
在本发明的第三方面中,提供一种设备,该设备包括用于从源数据存储库内的数据对象集合中选择数据对象子集的装置;以及用于将选择的数据对象保存在目标数据存储库中,或用于将选择的数据对象传送到另一个设备从而将选择的数据对象保存在目标数据存储库的装置;其中用于选择数据对象子集的装置可以根据用于为该数据对象集合中每个数据对象分配效用的预定方法来执行该选择。
根据本发明的第三方面,并且对应于本发明的第一方面,用于选择数据对象子集的装置可以包括,根据用于分配效用的预定方法,将源数据存储库中的具有高效用的至少部分数据对象包括在该子集中,该用于分配效用的预定方法可以基于考虑多种因素并为每种因素提供权重的模型,权重可以基于对至少一个用户访问该数据对象进行监视,或者可以基于对用户集合访问该数据对象进行监视,并且然后基于对特定用户进行监视而适应于特定用户。而且,再次对应于本发明的第一方面,该因素可以使得分配给数据对象的效用随时间连续降低,但是如果该数据对象尚未被观看或者如果该数据对象被标记为指示需要后续处理动作,则分配给数据对象的效用增加。
在本发明的第四方面中,提供一种系统,该系统包括多个移动设备;以及通性网元,耦合至多个移动设备并且包括或耦合至用于压缩数据的设备,该设备包括用于从源数据存储库内的数据对象集合中选择数据对象子集的装置;以及用于将选择的数据对象传送至多个移动设备中的一个或另一个,从而将选择的数据对象存储在多个移动设备中的一个或另一个上的目标数据存储库中的装置;其中用于选择数据对象子集的装置根据用于为该数据对象集合中每个数据对象分配效用的预定方法来执行该选择。
从对结合附图所进行的后继详细描述的考虑中,本发明的上述和其他目的、特征或有益效果将变得明了,其中图1是根据本发明的用于从源数据存储库中选择对象子集的模块的框图/流程图;以及图2是本发明所提供的方法的流程图。
具体实施例方式
理论上,本发明采用输入数据对象集合(例如每个数据对象是记录或文件中的数据,或是记录或文件本身)以及针对该数据对象集合的子集的尺寸配额Q。其考虑尺寸不大于Q的数据对象的每一种可能的子集,并基于对子集中各数据对象的效用求和而向用户选择具有最大总效用的子集,其中所分配的数据对象的效用表示用户将要访问该集合中任一其他数据对象之后、之前的数据对象的估计概率。又例如,本发明最小化下一访问的丢失概率。
本发明依靠概率模型来估计数据对象的效用。下面描述该模型的参量形式,以及如何通过观察用户随时间的采集行为来利用最大似然以估计该模型参数的值。此外,我们还描述在向数据对象(完全)集合中的每个数据对象分配效用之后本发明如何搜索数据对象的理想效用最大化(ideal-utility-maximizing)和配额有关子集(quota-respecting-subset)。
分配对象效用考虑本发明必须从中选择子集的数据对象集合C。通常,这些对象中的某些较新,某些较旧;某些最近已经被用户写入/编辑/访问过,而其他在很长时间内未见活动。最重要的是,存在一个身份对本发明未知的对象,用户接下来将从C中所有的数据对象间对其进行访问。我们可以通过由模型分配给C中每个数据对象的概率来假设C上的概率分布,其中所分配的概率是该对象接下来将要被访问的可能性。这样的针对数据对象的概率(数据对象是“接下来将要被请求的”对象的概率)在这里被称为数据对象的效用。
为了使得描述更加具体,考虑采集C是邮箱的情况。在任何时刻,用户在邮箱中具有一定数量的消息(N个)。在该邮箱的所有消息中,有一个消息是用户接下来将要访问的消息。我们对消息分配概率分布,其中由模型分配给消息的概率是该消息在当前位于邮箱中的任何其他消息之前被观看的可能性。
概率分布,即使是分布的形式对于我们来说也是未知的,但我们可以对其采用一些受过训练的猜测。一些消息,例如具有表示商业或个人通信之外的主题行(subject line)的消息(例如在主题行中包括“线缆解扰器”或“减肥药丸”),具有很小的接下来被读概率,而其他消息,例如最近刚刚从CEO那里到来的消息,具有较高的概率。通常,我们可以设置邮箱所有N个消息的概率分布。由x来表示随机变量,该随机变量表示来自邮箱中集合{1,2,3...N}的哪个消息接下来将被用户读取。而且,由x来表示该随机变量的值,由P(X=x)来表示消息x接下来将要被用户读取的事件的概率。
通常,用户消息访问行为的预测模型将通过考虑很多变量以向P(X=x)分配值,这些变量包括例如下列中的一个或多个消息x的年龄;x的发送方;x的主题行;x的主题行中某些关键词/短语的存在;x是否被标记用于后续处理;x是否被标记为‘重要’;x已经被读取的次数;以及在邮箱中是否存在同一线程中的较新消息。
注意,x的尺寸不在上述列表出的变量之中。这是有意为之的;在此情况下,由于消息进行了压缩,所以我们认为消息的尺寸自身是动态量值。也就是说,尺寸不是独立变量。
提供P(X=x)的模型的合理开始点是模型的混合P(X=x)=Ae-λa(x)Z1+BU(x)Z2+CF(x)Z3---(1)]]>其中0≤A,B,C≤1是加权因子,其服从以下约束条件A+B+C=1,其中a(x)是数据对象x(在此情况下是消息)的年龄,其以离散的单元(例如,天)来测量,其中U(x)是具有0值或1值的判定/逻辑函数,当且当且仅当消息x未被读取时,则其评估为1,其中F(x)当且当且仅当消息x被标记为用于后续处理时判定其评估为1,并且其中除了防止误解的说明之外,Z1=Σx=1Ne-λa(x)]]>和Z2=Σx=1NU(x)]]>和Z3=Σx=1NF(x)]]>全是归一化因子。该防止误解的说明必须考虑到Z2或Z3是0的情况。注意当该邮箱包含未读消息时Z2=0。这由于被0除而导致了等式(1)中第二项的不确定值。在本发明的实施中,如果没有消息未读,则简单地将等式(1)中的第二项定义为0。对于没有消息未经标记时也出现类似的问题,因此在此情况下简单地将等式(1)中的第三项定义为0。
等式(1)给出的P(X)的形式提供的是消息的效用(在这里所使用的意义上)随时间呈指数衰减(第一项),但是如果消息尚未被读(第二项)或者如果消息被标记用于后续处理(第三项)则效用增加。
等式(1)中a(x)表示的年龄具有很多不同的可能的解释,包括自消息被发送或接收到的时间量,或者自消息最后一次被读的时间量。这是本发明通常所采用的这些解释中的最后一个。在此选择之后的直觉知识是,与一个星期以前接收到的但至今未看的消息相比,两个星期以前接收到的但一个小时以前最新访问过的消息可能很快将被再次访问。
对应于等式(1)的模型给出了有时仅是非常粗略的估计,该模型没有考虑有关一个消息很可能将是下一个被观看的消息的许多前述因素。可以假设一个结合附加的因素的更复杂的模型。混合模型表述的益处在于其很容易容纳附加因素,每一个因素都有它们自己的系数。混合模型的另一个益处在于无效模型(那些具有较差预测能力的模型)不会产生破坏;下面描述的最大似然估计是为构成模型发现最优加权值的方法。给定足够量的数据,最大似然将向无效因素分配较小的权重。
在实施本发明时,无论本发明何时执行邮箱压缩,其必须针对邮箱中每个消息x计算P(X=x)。自然实施可以是CPU计算密集的。但随后的一些观察可以在提供有效实施方面提供帮助首先,可以在自然实施中通过访问邮箱中所有的消息来计算与B相乘的邮箱中未读消息的数量Z2。然而,除了这样之外,邮件客户端可以经由API调用而从很多邮件服务器中直接确定该信息。例如,该数量可以通过向邮件服务器发送“STATUS”命令而从IMAP邮件服务器中直接确定,每个格式STATUS[文件夹名称](UNSEEN)。
类似的策略应用用于确定Z3。
以此显然的方式来计算Z1要求计算针对每个消息x的e-λa(x)。但是假设时间按天(整数)测量,那么我们可以通过仅一次性地针对t=0、1、2、3、...天来计算e-λt的值来节约(Z1的)计算,然后将结果记录在表中。通过mt=e-λt来表示所记录的值。现在,假设我们需要计算Z1并且在邮箱中有t天前的nt个消息,那么我们可以将Z1表示为这两项的点乘积(两个n维数组的标量相乘Z1=A(n1m1+n2m2+n3m3+...)。
在以上描述中,我们已经将注意力放在了C是消息(例如在邮箱中)集合(采集)的情况。等式(1)所表示的模型对于这种情况是特定的。但是为其他对象例如日历条目或文件设计模型是简单的。在后一种情况,模型将考虑例如下列因素文件x的年龄;x的MIME(多用途互联网邮件扩展)类型;x已经被访问的次数。本发明不限于P(X)的任何一个特定表述。使用等式(1)的实施方式的本发明仅表示一个或多个不同的可能的实施方式。
找出最优子集以上描述示出了本发明如何向对象集合(采集)中的每个对象分配效用分数。现在描述如何使用此分数(效用的测量)来决定哪些对象应当包括所选子集,该子集由某些准则按在尺寸上限制,并且具有所有可能类似限制的子集的最大可能效用。
正常情况下,子集选择问题可以如下输入数组(sk,pk),其中sk是对象k的尺寸,而pk(还可以表示为P(X=k))是接下来将访问对象k的估计概率。
配额Q(限制任何可能的子集从而具有的尺寸不超过Q)。输出对象完全集合{1、2、3、...N}的子集S,其中子集S满足两个条件1.∑iS|xi|≤Q,即所选子集的总尺寸(字节数目)不超过限额。
2.∑iSpi在满足第一条件的所有子集中是最大的;即用户访问的下一对象将来自的S的概率是最大的。
精确解要求在解空间上搜索哪一个尺寸是采集中的对象数目的幂,因此本发明解决了对精确解的近似。
参数估计在这个部分,基于最大似然来描述两种技术,用于计算等式(1)的A、B、C系数。首先,描述用于计算单个{A、B、C}三元组的静态估计技术。然后,通过观察用户的行为来描述本发明怎样随时间进行适应。也就是说,通过跟踪用户观看了哪些消息(以及消息到达之后多快将其读取),本发明可以将其模式P(X=x)调整到与用户属性更加一致,从而更加根据用户如何向消息分配重要性而分配效用分数。这里参考等式(1)描述技术,但该技术可同样良好地应用到组合成混合模型的任意数目的模型。
最大似然估计回顾本发明基于等式(1)向每个消息x分配概率P(X=x),其包括三个单独的概率分布或子模型,分别具有对不同的子模型加权的系数A、B和C。这些子模型使用不同的信息(对象的年龄等)来向对象x分配概率值,从而表示以下概率即x是对象的采集或全部集合的所有对象中接下来将要被访问的对象的概率。在将A、B、C系数解释为加权因子时,A的相对尺寸例如对应于P(X)中按年龄进行衰减的项的加权。
本发明使用所谓的最大似然(ML)来提供等式(1)的系统A、B、C的值。以邮箱压缩问题并使用对应于等式(1)的模型为例,为了提供针对最大似然系数值的值(其可以被描述为学习过程),在用户从邮箱中选择消息进行阅读的时间段上,(通过监视用户接口交互动作)来“观察”该用户。每当用户选择消息x时,记录三元组{e-λa(x)/Z1,U(x)/Z2,F(x)/Z3},该三元组的每个分量表示各个子模型将被分配给关于x将是从邮箱访问的下一消息这一概率的分数。
通过随时间来观察用户的行为,我们可以采集很多此类观察(在这里称为单用户观察)并且为用户量身定做模型。然后我们观察一组用户并将这些观察聚集在一起,从而为该用户群量身定做模型。
使用聚集的单用户观察数据,我们将每个符号的“分数”相加(由子模型分配给随后访问对象的概率之和),并将它们进行归一化,从而例如A=Σie-λa(xi)Z1Σie-λa(xi)Z1+U(x)Z2+F(x)Z3,]]>(对B和C具有类似的计算)。
这里的计算得到了系数A、B、C的静态值,即针对所有用户的一个系数集合。在确定此静态值之后,本发明可用于利用等式(1)来计算效用。
A、B、C的上述静态计算方法的问题在于没有一个单独的A、B、C设置是对所有用户均优化的。例如,某些用户仅观看最近到达的消息;对于这些用户A≈1并且B,C≈0。一些其他用户将仅观看被标记用于后续处理的消息;对于这些用户,C≈1并且A,B≈0。用户间使用模式不同的事实支持了自适应方法,这是一种在分配效用分数时考虑单个用户的方法。(注意,这不同于单独地学习针对每个用户的A、B、C值,其将要求针对每个用户有足够的数据,当数据经常不足时,学习单独地针对每个用户的A、B、C值的问题经常能够被表征为稀疏数据(sparse-data)问题可能没有来自用户的足够的例子来稳健地估计针对每个用户的参数。换言之,将训练数据集中在一起以及估计全局A、B、C值是有价值的,则对于向我们提供足够的附加例子的用户,我们可以“学习”他们的使用与全局标准如何不同,并相应地更新/调整他们单独的A、B、C值。此过程通常称为贝叶斯(Bayesian)建模。)可以通过观察用户随时间的动作将本发明如何计算效用分数对每个用户进行自定义。换言之,本发明可以当预测用户接下来很可能观看哪个目标时考虑各个用户差异。为了对此完成,首先在上述的静态估计阶段计算全局系数集合,如上所述。然后,本发明向每个用户分配系数值集合。首先,针对每个用户的系数值被设定为等于在静态/全局ML估计阶段计算的全局系数。但是随着时间变化,本发明观察估计的效用和用户所选择的实际消息之间的失配,并且相应地调节用户的系数分数。
存在学习算法,用于语言建模和公文包(portfolio)选择应用,其描述的策略用于在接收到新数据时自适应地调整系数A、B、C。一个这样的例子是Cover的MIXER算法(1991年MathematicalFinance 1(1)第1-29页的Thomas Cover的“Universal Portfolios”)。Cover的MIXER算法(其在接收到新数据的时候动态地调整系数值)保证几乎与接收到全部数据之后事后选择的最佳静态模型混合执行地一样好。几乎与MIXER执行地一样好的一种更有效的算法SWITCHER,在A.Kalai等人的“Online algorithms for combininglanguage models”中(在语言建模的上下文中)进行了描述,其收录于Proceeding of the International conference on Acoustics,speech,andSignal Processing(ICASSP 1999)中。
因此,现在参考图1,根据本发明,子集选择器11(其可以是例如按下文所述的移动电话(未示出)的移动消息传递用户代理的模块)基于使用一个或多个用于分配效用的规则来为源数据存储库中的每个对象分配各个针对效用的值,将从源数据存储库12a中选择的数据对象集合保存在目标数据存储库12b中,所述规则可以被硬连线到子集选择器,或者可以将其提供为至子集选择器的输入(其有时这样改变)。因此,如上所述,所述分配可以使用用于分配效用的规则的混合。如上所述,子集选择器在所有可能的子集中选择的子集通常遵守预定配额(例如其尺寸并不大于某上限),并且在所有此类遵守配额的子集中具有最大的总效用。在为每个数据对象分配各自的效用时,子集选择器可以在可选的效用指示符数据存储库12c中使用效用指示符,通过观察一个用户(或多个用户)对源数据存储库中的数据对象的访问来随时间获取效用指示符(例如在某时间段内数据对象被访问的次数)。为了获取这样的指示符,提供对源数据存储库访问的模块(未示出)可以在每次发生访问时通知子集选择器,或者可以直接向效用指示符数据存储库提供与该指示符相关的信息。可选地,所有访问可以通过子集选择器。接下来,在一些实施方式中(如下所述),目标数据存储库12b可以被用作(代替)源数据存储库12a,从而净效应是对源数据存储库进行压缩(如图1中虚线所示)。
现在继续参考图2,本发明示出为提供一种方法,包括下列步骤第一(可选)步骤21,在该步骤中,子集选择器11监视对源数据存储库12a中的数据对象的访问(直接或经由提供此类访问的模块)和根据用于分配效用的一个或多个规则而将与该数据对象的效用相关的信息存储在效用指示符数据存储库12c中。在接下来的步骤22,子集选择器11基于使用分配效用所用的一个或多个规则(包括使用可选择地存储在效用指示符数据存储库中的信息)而为数据对象集合中每个数据对象分配各个效用值,从而从源数据存储库中的数据对象中选择数据对象子集。所选择的子集的尺寸通常小于某尺寸限制(配额),并且具有尺寸小于尺寸限制的所有可能子集最高的总分配效用。在下一步骤23中,子集选择器11将所选择的数据对象存储在目标数据存储库中,或者如果在包括子集选择器的设备之外的设备中包含目标数据存储库,则将所选择的数据对象传送给该设备以存储在目标数据存储库中。
一些示意性实施移动电话的移动消息传递用户代理(MMA)许多移动电话的MMA可以配置为在新的电子邮件消息到达时从远程邮件服务器中连续地提取该新电子邮件消息,并接着将其存储。较新的电话能够在例如802.11x和3G的高带宽网络上进行通信,这允许它们快速地下载较大的电子邮件消息。利用高带宽网络,在不长的时间内电话上的存储容量将耗尽。而且,如上所述,即使对于大容量设备,很多用户倾向于优选限制它们的MMA上存储的消息的数目,从而允许方便地搜索和滚动这些消息。
本发明的子集选择系统可以作为单独的应用而安装在移动电话或其他移动设备上。本发明可以实施为独立于MMA运行但可以对MMA消息存储库进行访问。本发明可以由用户利用配额Q来配置,也可以默认为该设备上的可用持久存储库的某个固定比例。
在规则的间隔(或者在每个新消息达到MMA之后,如果该信息可用),本发明可以实施为检查MMA消息存储库的尺寸,并且,如果该尺寸超过Q,则通过计算所有对象的效用并然后执行子集选择,而压缩该邮箱。
由于邮箱压缩处理可以是资源密集型的,因此其应当被调度为在有限活动的时间来执行,例如当电话/移动设备在充电时或者在深夜。
在某些应用中,本发明被配置为考虑消息上的“重要”标志是有利的。则此消息此后总是被包含于所选择的子集S中。
此外,本发明可以被实施为保留电子邮件头并仅删除未被选择的消息子集中的消息体。通过该方法,用户可以看到那条消息已经从MMA消息存储库中被去除,并且如果希望,使用MMA来再次从邮件服务器下载消息。(当然,用户则应当能够将该消息标记为“重要”以防止其被再次去除)。
当然,本发明还可以配置为在去除消息之前交互式地提示用户。
同步服务器本发明可以嵌入在同步服务器中。同步的一个问题在于移动设备可能没有足够的存储容量来保留来自这样的服务器的所有数据。即使存储容量足够,但完全(full)同步操作所用的时间和费用也可以是禁止性的。这对于第一次的客户端-服务器同步操作来说尤其如此。并且其在通过低吞吐量无线或IR(红外)信道(例如CDMA、GPRS或蓝牙信道)时尤其如此。
为了解决这些问题,同步服务器经常在用户应当放置他们希望同步的对象(消息、联系、文件等)的同步服务器上分配特殊的种类和目录(文件夹)。当然,这要求用户手动地注释或将所选择的对象移动到该特殊的种类或目录中。本发明的自动子集选择过程是该手动方法的一种备选方案。嵌入在同步服务器中的本发明可以从可以被同步的所有可能数据中仅提供该数据的压缩的高效用子集以传送到移动设备。
在SyncML(同步标记语言)中(如2002年10月的SyncML协议v1.1.1所述),名称为<freemem>的元素为客户端提供一种向服务器指定配额的方法。该协议指定的是该信息应当在同步发起期间进行交换。因此该同步服务器从SyncML设备中接收值Q。
本发明所支持的同步服务器的典型配置是仅在慢同步(例如第一次同步)期间执行子集选择处理。后续处理同步操作通常将不要求使用本发明,因为待同步的信息量通常将非常少。
在通常的实施方式中,本发明支持的同步服务器计算对象的最大效用Q子集并将这些传送给客户端。其还发送针对所有其他对象的标记符(例如邮件的消息报头)。在更新同步中,自最后的同步被传送给客户端起,在服务器上创建所有新的对象。如果用户希望观看丢失的对象,该用户仅需要删除该标记,并且同步服务器将(在下一更新同步操作)检测到客户端对象的改变,并将该完全版本的对象传送至该客户端。
本发明可以部署在客户端(例如PC)或服务器(例如群件服务器)。
本发明支持所谓的快速同步,因为仅同步高效用的对象用户可以指定时间限制并且本发明将同步该时间量内服务器上最高效用的对象子集。例如,在30kb/s信道上,两分钟的时间限制大约等于500KB。不具有资格的对象被一起忽略,或者以缩略的形式来进行传送仅电子邮件消息的邮件头。在后一种情况中,客户端(例如移动设备)可以给予用户对来自服务器的完全对象执行按需同步的能力。
邮件服务器随着附件(例如图像、字处理或电子数据表或所谓的办公文档以及音频/视频文件)的普及,电子邮件的邮箱可以很快变大。例如,每星期接收10MB电子邮件的用户,不到两年即可达到1GB的邮箱尺寸。
大多数公司和ISP对于分配给每个用户邮箱的服务器盘空间的数量进行限制。为了遵守该限制,用户通常主动地从服务器删除消息或从服务器将消息下载到他们的PC/膝上型电脑的本地消息存储库中。没有一种解决方案是希望的在整体上删除消息的危险在于将来可能需要该消息,而将消息下载到特定MUA(消息用户代理)不考虑用户将来可能希望从另一MUA处访问其邮箱的可能性。
本发明提供另一种解决方案将本发明风格的压缩直接应用到邮件服务器的消息存储库上。将接收10MB/星期的邮箱主动压缩为包含平均1MB/星期的邮箱意味着该邮箱将花费近20年达到1GB。在服务器上压缩消息的同时,原始消息可以可选择地保留在存档文件中,例如磁带备份中。
需要理解的是,上述设置仅是本发明原理的示意性应用。在不脱离本发明的范围的情况下,本领域技术人员可以设计出多种修改和备选设置,并且所附权利要求旨在涵盖此类修改和设置。
权利要求
1.一种方法,包括从源数据存储库内的数据对象集合中选择数据对象子集的步骤;以及将所述选择的数据对象保存在目标数据存储库中的步骤;其中根据用于为所述数据对象集合中每个数据对象分配效用的预定方法,执行所述选择数据对象子集的步骤。
2.根据权利要求1所述的方法,其中,执行所述选择数据对象子集的步骤,从而根据所述用于分配效用的预定方法,将所述源数据存储库中的具有高效用的至少部分数据对象包括在所述子集中。
3.根据权利要求1所述的方法,其中,所述用于分配效用的预定方法基于考虑多种因素并为每种所述因素提供权重的模型。
4.根据权利要求3所述的方法,其中,所述权重基于对至少一个用户访问所述数据对象进行监视。
5.根据权利要求3所述的方法,其中,所述权重基于对用户集合访问所述数据对象进行监视,并且然后基于对特定用户进行监视而适应于所述特定用户。
6.根据权利要求1所述的方法,其中,所述因素使得分配给数据对象的效用随时间连续降低,但是如果所述数据对象尚未被观看或者如果所述数据对象被标记为指示需要后续处理动作,则所述分配给数据对象的效用增加。
7.根据权利要求1所述的方法,其中,所述源数据存储库由移动设备包含,并且所述目标数据存储库是仅在对所述源数据存储库进行压缩期间存在的临时数据存储库,并且所述移动设备还包含电子邮件用户代理,该电子邮件用户代理从远程邮件服务器提取新的电子邮件消息并将它们放置在所述源数据存储库中,并且其中,所述移动设备包含的所述电子邮件用户代理或者相关模块时常检查所述源数据存储库的尺寸,并且如果所述尺寸超过预定尺寸限制,则通过以下来压缩所述源数据存储库执行所述子集选择步骤,然后将所述选择的对象保存在新的目标数据存储库中,删除所述源数据存储库,然后使用所述新的目标数据存储库作为新的源数据存储库以接收新的电子邮件消息。
8.根据权利要求1所述的方法,其中,所述源数据存储库由同步服务器包含,并且所述目标数据存储库是同步客户端设备上的数据存储库,并且其中,所述服务器执行所述源数据存储库中对象的子集选择步骤,从而提供不超过与所述目标数据存储库关联的尺寸限制的对象集合,并将所述对象传送至所述客户端设备。
9.根据权利要求8所述的方法,其中,所述服务器还向所述客户端设备传送所有未被选择的对象的对象片段和标记符,用于保存在所述目标数据存储库中,并且如果所述客户端设备删除所述标记符,则所述服务器在后续同步操作中传送完全对象。
10.根据权利要求1所述的方法,其中,电子邮件服务器时常使用用户邮箱作为所述源数据存储库并使用所述目标数据存储库作为临时数据存储库来执行所述选择和保存子集的步骤,并且其中,所述电子邮件服务器时常检查所述源数据存储库的尺寸,并且如果所述尺寸超过预定尺寸限制,则通过以下来压缩所述源数据存储库执行所述子集选择步骤,然后将所述选择的对象保存在新的目标数据存储库中,删除所述源数据存储库,然后使用所述新的目标数据存储库作为新的源数据存储库以接收新的电子邮件消息。
11.一种计算机程序产品,包括包含用于由计算机处理器执行的计算机程序代码的计算机可读存储库结构,其中所述计算机程序代码包括用于执行包括下列步骤的方法的指令从源数据存储库内的数据对象集合中选择数据对象子集的步骤;以及将所述选择的数据对象保存在目标数据存储库中的步骤;其中根据用于为所述数据对象集合中每个数据对象分配效用的预定方法,执行所述选择数据对象子集的步骤。
12.一种设备,包括用于从源数据存储库内的数据对象集合中选择数据对象子集的装置;以及用于将所述选择的数据对象保存在目标数据存储库中,或用于将所述选择的数据对象传送到另一个设备从而将所述选择的数据对象保存在目标数据存储库的装置;其中所述用于选择数据对象子集的装置根据用于为所述数据对象集合中每个数据对象分配效用的预定方法来执行所述选择。
13.根据权利要求12所述的设备,其中,所述用于选择数据对象子集的装置包括根据所述用于分配效用的预定方法,将所述源数据存储库中的具有高效用的至少部分数据对象包括在所述子集中。
14.根据权利要求12所述的设备,其中,所述用于分配效用的预定方法基于考虑多种因素并为每种所述因素提供权重的模型。
15.根据权利要求14所述的设备,其中,所述权重基于对至少一个用户访问所述数据对象进行监视。
16.根据权利要求14所述的设备,其中,所述权重基于对用户集合访问所述数据对象进行监视,并且然后基于对特定用户进行监视而适应于所述特定用户。
17.根据权利要求12所述的设备,其中,所述因素使得分配给数据对象的效用随时间连续降低,但是如果所述数据对象尚未被观看或者如果所述数据对象被标记为指示需要后续处理动作,则所述分配给数据对象的效用增加。
18.一种系统,包括多个移动设备;以及通信网元,耦合至所述的多个移动设备并且包括或耦合至用于压缩数据的设备,所述设备包括用于从源数据存储库内的数据对象集合中选择数据对象子集的装置;以及用于将所述选择的数据对象传送至所述多个移动设备中的一个或另一个,从而将所述选择的数据对象存储在所述多个移动设备中的一个或另一个上的目标数据存储库中的装置;其中所述用于选择数据对象的子集的装置根据用于为所述数据对象集合中每个数据对象分配效用的预定方法来执行所述选择。
全文摘要
一种方法和相应的设备,用于根据用于为数据对象集合中的每一个数据对象分配效用的预定方法,而从源数据存储库中的数据对象集合选择数据对象。该用于分配效用的预定方法通常考虑多种因素并为每种因素提供权重,从而例如分配给数据对象的效用随时间降低,但如果数据对象尚未被用户观看或者如果该数据对象被标记为指示需要后续处理动作,则分配给数据对象的效用增加。本发明用作例如移动电话消息发送用户代理的一部分或者与其相连使用,该移动电话消息发送用户代理仅将完全数据对象集合中较高效用的数据对象(消息)存储在移动电话中。
文档编号H04L7/00GK101036358SQ200580033522
公开日2007年9月12日 申请日期2005年7月21日 优先权日2004年8月27日
发明者A·伯杰, R·罗梅罗 申请人:诺基亚公司