用于对数据处理设备与数据服务进行全无线同步的系统和方法

文档序号:6409708阅读:205来源:国知局
专利名称:用于对数据处理设备与数据服务进行全无线同步的系统和方法
技术领域
本发明一般涉及网络数据服务的领域。更为特别的是,本发明涉及一种用于将无线数据处理设备同步于无线消息传递服务的设备和方法。
背景技术
在过去的若干年间已经推行了多种无线数据处理设备。这其中包括手持型PalmVIIx之类的个人数字助理(“PDA”)、具有数据处理能力的蜂窝电话(例如那些支持无线应用协议(“WAP”)的蜂窝电话),此外还包括ResearchIn Motion(“RIM”)于最近开发的BlackberryTM无线寻呼机这类无线消息传递设备。
一般来说,Palm这类个人数字助理只提供了有限的无线消息传递能力(例如即时消息传递和基本的因特网访问)。举例来说,这些设备通常需要用户手动建立经由因特网服务供应商(“ISP”)的因特网连接或是与公司服务器建立连接,以便检查电子邮件消息。
虽然RIM Blackberry这种公司消息传递系统提供了更全面的消息传递能力,但是这些系统也存在着极大限制。特别地,这些系统使用的是只在满足一定条件时才将消息重定向到无线设备的电子邮件“重定向”或“转发”技术。这些条件则称为“重定向事件”,例如,这些条件可以包括表明用户并未在公司台式机上工作的指示(例如从台式机底座上取走无线设备、在台式机上启动了屏幕保护程序等等)或是由用户发起的手动重定向命令(例如借助于无线设备或公司台式机)。在美国专利6,219,694(“System and Methodfor Pushing Information From a Host System to a Mobile Data CommunicationDevice Having a Shared Electronic Address”)中描述了这样的信息重定向系统。
这样一来,这些系统(实际上)不能在无线设备与公司的电子邮件数据库之间提供完全同步。举例来说,由于消息只在一定条件下才会重定向到无线设备(例如出现重定向事件之后),因此在任何指定时间点,无线设备只能包含不完全的电子邮件数据集合。此外,即使有效地将消息转发到无线设备,无线设备上保存的电子邮件数据与电子邮件数据库也不会实现真正的同步。例如,在无线设备上执行的某些事务没有通过无线方式而在电子邮件服务上得到更新,其中举例来说,所述事务可以是表明用户已经查看过消息、删除消息、将消息从一个文件夹移动到另一个文件夹等等的指示。
此外,无线设备只能对发送和接收消息这样的基本电子邮件功能进行控制。更高级的电子邮件管理功能则必须在用户台式机上进行设定(例如配置电子邮件过滤器、输出电子邮件签名、口令之类的安全设定等等)。
此外,先前的消息传递系统需要用到公司台式机,当用户在办公室时,所述设备必须连接在台式机上。与此相关的问题在于这其中不仅需要用到公司台式机,而且还必须使用允许所述台式机直接与无线设备进行通信的软件以及专用“底座”来对其进行配置。
因此,目前需要一种用于在无线设备与消息传递服务(例如公司的电子邮件帐户)之间提供完全同步和管理的系统和方法。此外还需要一种用于接收和发送电子邮件消息的无线设备,其中所述设备不需要公司台式机或是任何那些在台式机上安装和运行的软件。

发明内容
在这里公开了一种用于将数据处理设备完全同步于消息传递服务的系统。该系统的一个实施例包括一个无线数据处理设备;一个保持消息以及其他那些代表了用户的信息的消息传送服务;以及一个用于在无线设备与消息传送服务之间保持消息以及其他信息同步的同步逻辑。
附图简述从以下结合附图所进行的详细描述中可以更好地理解本发明,其中

图1描述的是用于实现本发明的原理的示范性网络架构。
图2描述的是用于对数据进行压缩的系统的一个实施例。
图3a~c描述的是相关电子邮件消息的一个示范性序列。
图4描述的是通过使用在先前消息中找到的冗余数据来压缩数据的方法的一个实施例。
图5描述的是用于执行基于状态的压缩的设备的一个实施例。
图6描述的是基于状态的数据压缩格式的一个实施例。
图7描述的是根据本发明实施例而被用于对数据进行压缩的码字表。
图8描述的是结合码字来对数据进行压缩的方法的一个实施例。
图9描述的是协调多个其他压缩模块之间的数据压缩任务的文本压缩模块。
图10描述的是根据一个本发明实施例的压缩数据格式。
图11描述的是用于在无线设备与服务之间同步消息事务的系统的一个实施例。
图12描述的是用于在无线设备与服务之间对消息事务进行同步的系统的改进实施例。
图13描述的是用于确定是否进入批处理模式的方法。
图14描述的是使用了多级批处理的发明实施例。
图15描述的是使用了按顺序控制功能的发明实施例。
图16描述的是将同步标识码映射到标准的标识码的发明实施例。
图17描述的是用于检测和解决数据对象版本冲突的发明实施例。
图18描述的是取代删除命令和新建命令而将移动命令传送到无线设备的发明实施例。
图19a和b描述的是用于产生移动命令的方法的实施例。
具体实施例方式
在以下描述中,出于说明目的而对很多细节进行了阐述,以便提供关于本发明的全面理解。然而对本领域技术人员来说,很明显,本发明可以在不具备其中某些特定细节的情况下得到实施。在其他实例中,为了避免本发明的基本原理不清楚,众所周知的结构和设备都是以框图形式显示的。
示范性网络架构图1描述了用于实施这里所述的压缩技术的网络架构的一个实施例。图1描述的“客户站点”120可以是供多个服务器103与客户机110进行通信的任何局域网或广域网。例如,所述客户站点可以包括由单个公司维护的所有服务器和客户机。并且在这里可以对服务器103进行配置,以便为网络用户提供多种不同的消息传递和组件服务102(例如电子邮件、即时消息传递、口历等等)。在一个实施例中,这些服务是由Microsoft ExchangeTM提供的。然而,本发明的基本原理并不局限于任何一种特定的消息传递/组件平台。
在本发明的一个实施例中,接口100将服务102保持的数据对象(例如电子邮件消息、即时消息、日历数据等等)经由外部数据网络170和/或无线服务供应商网络171转发到多个无线数据处理设备(在图1中是用无线设备130表示的)。举例来说,如果服务102包括电子邮件数据库,那么接口100会将任何一封到达服务102上的用户邮箱的新电子邮件传送到用户的无线数据处理设备130(经由一个或多个网络170和/或171)。作为选择或补充,服务102可以在请求时将电子邮件提供给用户的本地计算机(例如客户机110)(也就是说,由此用户会在离开办公室时在其无线设备130上收到电子邮件,当在办公室时,用户是在其个人计算机110上收到电子邮件的)。与此可逆地,从用户无线数据处理设备130发送的电子邮件是经由接口100传送到服务102的。
在一个实施例中,接口100是一个适合与特定服务120一起工作的软件模块。然而应该指出的是,接口100可以在符合本发明基本原理的同时通过硬件方式或是软件与硬件的组合方式来实现。
在一个实施例中,外部数据网络170包括多个服务器/客户机(未显示)以及其他那些用于在接口100与无线设备130之间传送数据的网络硬件(例如路由器、集线器等等)。在一个实施例中,接口100将数据封装在一个或多个数据包中,其中包含了一个用于识别无线设备130的地址(例如24比特的Mobitex访问号(“MAN#”))。外部数据网络179则将数据包传送到无线服务供应商171,该服务供应商转而将分组经由无线通信链路传送到无线设备130。在一个实施例中,所述无线服务供应商网络是一个双向寻呼网络。然而在符合本发明基本原理的同时,在这里也可以使用多种其他类型的网络(例如CDMA2000、PCS等等)。
应该指出的是,网络服务供应商网络171与外部数据网络170(以及关联的接口100)可以由同一机构所拥有/运营,作为选择,外部数据网络170的拥有者/运营商也可以从无线服务供应商网络那里租用无线服务。本发明的基本原理并不局限于任何特定的服务方案。
在本发明的一个实施例中,服务102(例如电子邮件数据库)与无线数据处理设备130是完全同步的。因此,在无线设备130上执行的任何操作都会在服务102上自动更新,在服务102上执行的任何事务都会自动反映给设备130。这种同步更新可以包括但不局限于设备配置修改、日历更新、电子邮件消息更新、即时消息、待办事宜列表更新和/或任何其他类型的个人信息管理事务或公司数据管理事务(在下文中将其称为“消息事务”)。例如,当用户使用设备130查看电子邮件消息时,一个表明用户查看了消息的指示将会发送到服务102(经由接口100)。相应地,如果用户随后经由客户机110连接到电子邮件,那么电子邮件将会呈现出已被查看的状态。其他那些诸如删除消息、编档活动(例如将消息移动到特定文件夹)、消息响应、会议确认/添加等操作则是在服务102上自动反映的,这样一来,(如果正在使用其中一个设备的话)在服务102、设备130和/或客户机110之间提供了完全的同步。
当前的消息传递系统没有提供完全的无线设备同步。同样,这些系统还是需要用户具有配备了用于无线设备连接的底座的台式机,以便接收某些类型的同步更新。这种情况的一个原因在于先前的系统是以相对低效的方式处理消息事务的,这些系统仅仅使用了有限的压缩技术,由此完全同步变得不切实际。同样,为了实现完全的无线同步,本发明的实施例使用了以下给出的一种或多种压缩和/或消息处理技术。
基于状态的压缩图2更详细地描述了无线数据处理设备130以及接口100的某些方面。在一个实施例中,数据处理设备130包括一个本地数据压缩/解压缩模块225(在下文中将其称为“编解码模块225”)和一个本地消息高速缓存器210。本地编解码模块225则使用这里描述的各种压缩技术来对输出数据进行压缩,并且对输入数据进行解压缩。
本地消息高速缓存器210包括一个用于临时保存输入消息的输入队列211和一个用于保存输出消息的输出队列212。尽管在图2中将本地消息高速缓存器210描述为分离的逻辑单元,但是所述高速缓存器也可以只包含一个根据高速缓存替换策略来保存输入和输出消息的单个存储块。在一个实施例中,消息是利用先入先出(“FIFO”)替换策略而被保存在输入队列和/或输出队列中的。然而在这里也可以使用符合本发明的基本原理的多种其他缓存替换技术。例如,在这里可以实施最近最少使用(“LRU”)策略,在这种策略中,与更频繁使用的消息相比,本地编解码模块225极少使用的消息在缓存器中保存的时段相对较短。如下所述,本地编解码模块225更频繁使用的消息通常包含了构成通用电子邮件线程的一部分的消息,而较少使用的消息则包括垃圾邮件或“兜售信息(spam)”(换言之,对这些消息来说,只存在一种单独和单向的消息传递)。
在一个实施例中,接口100包括一个远程数据压缩/解压缩模块220(在下文中将其称为“编解码模块220”)和一个具有远程输入队列201以及远程输出队列202的远程消息高速缓存器200。编解码模块220根据这里描述的技术对传送到无线数据处理设备130的消息进行压缩,并且对接收自数据处理设备130的消息进行解压缩。远程消息高速缓存器200临时保存了向/从数据处理设备130传送的消息(例如通过使用以上描述的多种高速缓存替换算法)。在一个实施例中,在接口100上实施的高速缓存替换策略与无线设备130上实施的策略是相同的(换言之,这样一来,高速缓存的内容在远程高速缓存器200与本地高速缓存器210之间是同步的)。
图3a~c对用于描述本发明不同方面的示范性电子邮件消息序列进行了说明。图3a描述的是在逻辑上分为报头信息部分305和文本信息部分310的序列(与多数电子邮件消息相类似)中的初始电子邮件消息300。此外在图3a中还显示了一个附件320,它表示的是附着在消息上的文档以及一个可以由发送方(也就是John Smith的)的电子邮件客户端自动插入所述消息中的电子签名。
图3b描述的是用户Roger Collins为了应答初始电子邮件消息所传送的序列中的第二电子邮件消息301。如新报头信息335所示,这个消息直接传送到初始发送方John Smith,并且传送到初始电子邮件消息所抄送的用户Tom Webster。此外,所述消息还抄送到初始消息送抵群组中的其他每个人。这个能在大多数电子邮件客户端找到的“回复全部”的特征提供了一种允许个人的公共群组查看电子邮件消息序列的简单机制。
如图3b所示,实际上,在新的电子邮件消息中复制了初始电子邮件消息的文本310。这个“答复历史”的特征是大多数电子邮件客户端所共有的,由此允许对公共群组中某个人的注解序列进行追踪,所述追踪是从一个电子邮件消息到下一个电子邮件消息。此外这其中还描述了由应答方(RogerCollins)电子邮件系统在初始电子邮件文本各行的开端插入的多个字符316。这个特征是某些(但是并非全部)电子邮件系统所共有的,它使得用户能对新旧文本加以区分。
因此,即使在电子邮件序列中的初始电子邮件答复之后,电子邮件历史(也就是从先前消息中复制的文本部分和附件)也还是表示了整个消息的一个相当大的部分,由此导致要在无线网络上传送电子邮件文本部分和电子邮件报头部分中的大量冗余信息。
图3c描述的是第二电子邮件收件人答复第二电子邮件发件人以及抄送群组中所有其他成员的序列中的最终电子邮件消息302。如所述,电子邮件消息302中的唯一非冗余信息是若干行文本355。所有群组成员的电子邮件地址与先前两个消息中的地址都是相同的(尽管是在不同的域中切换的,但是基本地址都是相同的),此外,在这里复制了包括附件320在内的来自先前消息300、301的文本和报头,并且只对它们进行了少许修改(例如电子邮件系统插入了附加的“>”字符)。
本发明的一个实施例是通过利用这种高冗余度来压缩电子邮件消息的。特别地,在这里将会使用指向冗余部分的指针来取代那些在高速缓存器200、201保存的先前电子邮件消息中识别的一部分新的消息,而不是发送新的电子邮件消息所包含的实际内容。例如在消息302中,来自消息301的所有冗余内容都可以由一个在用户无线设备高速缓存器保存的消息中标识冗余内容的指针所替换。以下将对这些和其他压缩技术进行更详细的描述。
图4描述的是通过使用在先前消息中找到的冗余内容来压缩消息的方法的一个实施例。这个实施例是相对于图5来进行描述的,其中图5更详细地描述了消息接口100的某些方面。在400,接口100收到一个将要传送到特定无线数据处理设备130的消息(或一组消息)。在405中,通过对这个消息进行分析来确定它是否包含了那些在先前消息中找到的冗余数据。在一个实施例中,这个处理是借助了图5所示的消息标识逻辑500来完成的,其中所述消息标识逻辑500对先前电子邮件消息进行扫描,以便查找那些包含冗余数据的消息。
消息标识逻辑500可以使用多种消息标识参数505来搜索消息。例如在一个实施例中,消息标识逻辑一开始尝试确定所述新消息是否是消息序列中的最新的一个消息。在这里,消息标识逻辑500可以使用多种技术来做出这种判定。例如在一个实施例中,消息标识逻辑500会在消息的主题字段中搜索那些表明所述新消息是答复先前消息的字串。如果识别出这些字符串,那么消息标识逻辑500可以在序列中寻找最近的消息(例如根据那些在主题字段中发现的文本)。回过来参考图3a~c,举例来说,一旦收到消息302,那么消息标识逻辑500可以根据其主题字段中包含“REPatent Issues”这一事实而将消息302识别为序列的一部分。标识逻辑500可以忽略RE(如果消息是转发的,则忽略FW)并且在文本中扫描另一个与主题字段剩余部分(即“Patent Issues”)相匹配的消息,此外还对主题报头包含该文本的最近的先前消息进行识别。
如果消息主题不包含RE或FW这类表明消息是某个序列的一部分的字符,那么消息标识逻辑500可以使用不同的识别参数505集合来识别先前消息。例如在一个实施例中,消息标识逻辑500会搜索那些在报头中列举了新消息发送方(例如将其作为收件人)的最近消息。此外,消息标识逻辑500还可以搜索某些表明消息包含相关数据的关键字或单词组合(例如图3a~c中描述的电子签名315)。在一个实施例中,消息标识逻辑500可以产生一个区分优先级的消息子集,其中所述子集(基于所定义的参数505)是最有可能包含了那些在新消息中找到的内容的候选者。
如果在410判定先前消息中没有冗余数据,那么在420中将会通过应用另外的压缩技术来压缩消息,以下对其中某些技术进行了描述。然而,如果先前消息中存在冗余数据,那么在415,冗余数据将会由那些对无线设备130的高速缓存器210上(或是接口100的告诉缓存器200中的,这取决于消息传送的方向)的冗余数据进行标识的指针/偏移所取代。如图5所述,在一个实施例中,这种处理是由基于状态的压缩逻辑510完成的,其中所述逻辑是通过使用消息标识逻辑500识别的消息来产生指针/偏移的。
图6描述的是基于状态的压缩逻辑510所生成的基于状态的压缩格式的一个实施例。如所示,该格式包括由偏移602、612,长度603、613以及消息标识数据604、614分离的一个或多个非冗余数据组块601、610、620,其中所述消息标识数据识别的是来自先前消息的数据组块。举例来说,如果使用图6的压缩格式来对图3c所示的消息302进行编码,那么可以将新文本302作为非冗余数据601加以保存,并且所有的消息301都可以通过特定消息ID 604来进行识别,在所述消息ID之后则是一个用于标识从何处开始拷贝来自消息301的内容的偏移602,以及一个用于对从所述偏移所识别的地址点开始读取的内容量进行指示的长度603。
同样,如果由基于状态的压缩逻辑510来对那些源自图3b的消息301进行编码,那么新的文本部分340可以作为非冗余数据601加以保存。此外,电子邮件系统316自动插入的各个“>”字符都可以作为由偏移和长度所识别的冗余数据行所分离的非冗余数据来进行传送(换言之,在由新消息中的长度/偏移所识别的消息300的各冗余行末端将会插入新的非冗余“>”)。
在一个实施例中,当用户长期未曾接收消息时,在电子邮件服务102上,在其收件箱中可能会建立很多相关消息(例如消息300~302)。因此在一个实施例中,接口100将会通过使用那些指向尚未到达用户无线设备高速缓存器的消息的指针来应用上述基于状态的压缩技术。也就是说,一旦用户重新连接到服务,那么接口100会确定将群组中的消息(保存在服务102上的用户收件箱中)在无线数据处理设备130的高速缓存器210中的保存位置。
再次参考图4和5,一旦基于状态的压缩逻辑510结束压缩消息,则可以将那些经过压缩的消息515传送到用户无线设备130。做为选择,在420也可以使用另外的压缩技术(如下所述)来对消息进行进一步压缩。一旦充分地压缩了消息,则所述消息将会传送到无线设备(在425),在那里可以使用编解码模块225来对其进行解压缩。
上文是在接口100的环境中对基于状态的压缩技术进行描述的,其中接口100在向无线设备130传送消息之前对消息进行了压缩。然而应该了解,在将消息传送到接口100之前,无线设备130也可以执行相同的压缩技术(例如长度/偏移可以识别远程消息高速缓存器200中保存的冗余数据)。此外,虽然上文是相对于电子邮件消息来进行描述的,但是所述压缩技术也可用于压缩多种其他消息类型(例如新闻组文章、即时消息、HTML文档等等)。
补充/备选的压缩技术作为对于上述基于状态的压缩技术的补充或替换,在这里还可以使用多种另外的压缩技术。
在本发明的一个实施例中,常见的字符和字符串(也就是那些经常在无线设备130与接口100之间传送的内容)是用相对较小的码字编码的,不常见的字符或字符串则是用相对较大的码字编码的。为了能以这种方式来对数据进行编码,在这里执行统计分析来识别常见字符串。其中根据统计分析而产生了一个与图7所述表格相类似的查找表,并且在无线设备130与接口100上保持了所述查找表。如所示,某些像是“@good.com”这类用于公司电子邮件域的字符串以及“(408)720-”之类的公司电话号码前六位数字可能是很常见的。这样一来,使用相对较小的码字来替换这些常见比特串可以产生极大的压缩量。回过来参考消息300~302,通过使用这种压缩技术,可以用一个只具有若干比特的短码字来替换在每个消息报头中多次遇到的域“@good.com”。
在一个实施例中可以为接口100与无线数据处理设备130之间传送的不同类型的数据产生不同的查找表,由此在识别常见字符串时将会实现更大的精度。例如,在这里可以与那些对公司通讯录进行压缩的码字所不同的码字集合来压缩电子邮件消息。因此,对最常见的电子邮件域来说,用于压缩电子邮件消息的码字表中有可能包含了相对较小的码字,而公司通讯录很可能也包含了用于公司地址和公司电话号码的一部分的相对较小的码字。
此外在一个实施例中可以为某种类型的数据内部的各个字段产生唯一的码字表。例如,在这里可以将一个与用于电子邮件消息剩余字段的码字表所不同的码字表用于电子邮件报头字段。同样,在这里为公司通讯录的“地址”字段产生的码字表可以与用于“电子邮件地址”字段的码字表不同,由此在生成码字集的时候实现更高的精度。
与采用统计方式为各个字段产生并传送一个码字表所不同,作为选择或是补充,本发明的一个实施例涉及的是与英语字典相类似的“已知”码字的字典,由此不需要将字典与数据一起传送。例如在一个实施例中,可以将无线设备130和/或接口100上保持的拼写检查字典用于压缩内容。与发送电子邮件消息的实际文本所不同,所述消息中的每个单词都是通过其在拼写检查词典中的条目来进行标识的(例如,单词“meeting”可以由条目#3944所替换)。
其中一种特别适合前述压缩类型的数据类型则是在大多数公司电子邮件服务器上保持的公司通讯录。在本发明的一个实施例中,公司通讯录最初是通过一个与客户机110的直接连接而同步的(参见图1)。在初始同步时(例如在无线设备直接连接到客户机110的时候)将会产生针对常见字母和“标记”(例如姓名、地区码、电子邮件域))的统计。然后,所述统计和标记将被用于压缩上述数据。此后,任何相对于通信录的改变都是无线传送的。在后续更新时,双方(无线设备130与接口100)的压缩器都会查阅所收集的较早统计值,由此在不传送任何新统计值或单词的情况下进行压缩。
所述更新可以代表整个通信录的一小部分,但是仍可能表示大量字节,当在指定公司对使用中的全部无线设备成倍地进行所述更新的时候则更是如此。因此,如上所述,通过减少传送通信录更新所需要的数据量,可以极大节约传送成本。此外,由于所述通信录相对于客户机上的可用存储器而言过于庞大,因此通过在客户机上以压缩形式保存通信录,可以允许保存更多条目。
在一个实施例中,为了节约附加空间,只有公司通讯录的某些字段才是以无线方式进行同步的。举例来说,只有姓名、地址、电子邮件和电话号码字段可以采用无线方式进行更新。然后则可以在无线设备再次直接连接到客户机110的时候更新通信录的所有字段。
图8描述了用于产生码字表的方法的一个实施例。在810中对由标准的Huffman压缩算法所使用的某些字节串的出现进行了计数。在820则根据某个字段类型的固有边界而为所述字段产生某些“标记”。举例来说,如上所述,在这里可以将电子邮件地址分成“.com”以及如上所述的用于电子邮件字段的“@good.com”。而电话号码则可以分成“(650)”以及用于通讯录字段的“(650)620-”。
在830,通过使用与等同于计数比特串出现的方式来计算标记的出现,并且假设如果出现一个四字节标记,则为所述计数加4。在840中产生了所有字母以及出现过一次以上的标记的码字表(也可以是出现过一次以上的最高的N个标记)。所述码字表的一部分将会包含标记本身。在850,通过使用字符和标记的码字表来压缩每一个记录,然后在860中,码字表和压缩记录都被发送到无线设备130。
在一个实施例中,码字表是由时戳之类的唯一号码识别的。接口100和无线设备130将会保存所述表。在无线设备130上可以仍旧将记录保持在压缩状态,以便节约空间,并且只在打开记录的时候才对所述记录进行解压缩。在后续同步上,无线设备130可以请求对公司词典进行更新。作为请求的一部分,无线设备130可以包括分配给码字表的唯一号码。如果无线设备130因为某种原因而不具有初始码字表,那么它可以通过发送一个ID的特殊符号而向接口100发出通知(例如通过使用一个代表ID的“0”)。同样,如果主机因为某种原因而没有识别出ID,那么它可以忽略初始码字表并且创建新的码字表。
然而在大多数情况下,无线设备130和接口100将会就ID的内容达成一致,更新的压缩将会使用先前计算得到的已有码字表。例如,与现有雇员具有相同电子邮件域和电话前缀的新雇员将会恰当地进行压缩。由于所述更新应该是总的通信录的一小部分,因此所述更新很可能会非常类似于现有数据。
本发明的一个实施例是将字母数字字符(例如标准的ASCII文本)转换成专有的可变比特字符格式,由此为常见字符分配相对较少的比特,并且为不常见的字符分配相对较多的比特。而在一个特定实施例中则是为大多数字符分配6个比特,并且为所有其他比特分配12个比特。这个实施例则可以通过如下所述的换码功能而与如上所述的另一种压缩形式无缝整合(例如消息指针生成、码字查询等等)。
大多数消息中都具有ASCII文本。举例来说,电子邮件中的TO字段或通讯录条目中的姓名通常都包括ASCII文本。大多数ASCII文本使用了7个比特/字符。典型的例外情况则是类似 或的重音字符。然而文本字段中的大多数文本实际上都由a~z、0~9、空格以及少量符号组成。
如上所述的使用码字表的文本压缩是一种对大量文本进行编码的有效方式,因为它收集了关于指定字符出现频率的统计信息并且以更少比特来表示更频繁出现的字符。例如,字母“e”比字母“k”出现的更频繁,因此可以假设所述字母是在3个比特中表示的。此外它还特别适合压缩特定数据字段中的数据,所述特定数据字段已知是,相同字符串的出现是有规则的(例如电子邮件域“@good.com”)。然而,与之相关的一个问题在于所述技术需要使用经过编码的文本来发送和保存统计信息。对少量文本(例如很短的电子邮件消息)来说,这将会变得不切实际。
一个六比特的字符格式代表了64个字符(26=64)。在一个实施例中,以下符号是使用六个比特编码的便于表示字串末尾的零、“a”到“z”、“0”到“9”、“空格”以及大多数常见符号(例如点、逗号、制表符、换行、@、括弧、!、冒号、分号、单双引号等等)。上述值占了64个值中的48个值,由此仅仅剩余16个值。
在一个实施例中,剩余的16个值将被用于下列换码值(1)其中四个值与接下来的6个比特组合,从而允许在两个6比特值中对任何可能的ASCII值进行编码。它顾及了任何大写字母、不在前十位的符号、重音字符等等。举例来说,二进制值60、61、62和63各自可以识别另外的6比特值,其中包含了基本字符信息。由此规定了具有附加的256个字符的编码(4*64=256),对于编码整个US-ASCII字符集来说,这都是绰绰有余的。
(2)转换键锁定。在后续转换锁定键关闭移位之前将会一直开启转换。对字母来说,这种操作类似于大写锁定。对数字和符号来说,这种操作则不会有任何效果。作为选择,第二组数值可以在开启转换锁定时定义(例如另外的“前十位”符号列表)。
在一个实施例中,剩余的11个六比特字符都是“可安装换码值”,由此提供了一个或多个标准或定制的压缩器。例如,电子邮件中的TO、FROM、CC以及BCC字段全都包含在由分号分离的电子邮件地址列表中。同样,在这里还可以定义下列特殊换码值(1)客户/用户的电子邮件地址可以转换成一个六比特值;(2)客户/用户域可以转换成一个六比特值(例如将“@Good.Com”变成六个比特);(3)“常见”域名和后缀可以转换成一个六比特值以及一个六比特变元(举例来说,“常见”列表可以是最常见姓名中的64个姓名,并且可以包括“@aol.com”、“@webrv.com”、“.com”、“.net”、“.org”、“.gov”、“.us”、“.uk”等等);以及(4)电子邮件中“最近使用”的姓名可以转换成一个六比特值以及一个六比特变元。消息中的别处则是所取决的电子邮件ID。所述变元可以包括用于识别字段(TO、FROM、CC或BCC)的两个比特,以及用于识别所述字段中的前十六个电子邮件地址的四个比特。
新字符可以无缝地与上述其他压缩类型结合使用(例如码字、重复字符、LZ压缩、字典查找和/或查阅在先消息)。如图9所述的一个实施例,文本压缩模块900根据如上所述的6比特字符格式来对文本进行压缩,并且在多种其他压缩模块之间协调压缩功能,在所述实施例中,这其中包含了一个通过查阅在先高速缓存信号来压缩消息的基于状态的压缩模块910(如上所述),此外还包括一个使用码字(如上所述,举例来说,通过编码经过统计分析的标记以及查阅拼写检查字典等等)来压缩常见字符的码字压缩模块920,此外,如替换压缩模块930所示,在所述系统上也可以使用多种其他类型的压缩,以便获取更高的压缩等级(例如标准的LZ压缩)。
图10描述的是依照本发明这个实施例编码的电子邮件消息302(来自图3c)的示范性部分。从电子邮件消息302的右上角开始,文本压缩模块900开始编码第一组字符(也就是说,它是以收件人字段“To”开始的)。结合各个字符,所述模块与其他压缩模块910、920、930进行协调,以便确定这些模块是否可以实现更大的压缩。如果不能,则文本压缩模块900根据六比特字符格式来对文本进行编码。然而,如果可以结合其他压缩模块910、920、930之一来获取更高压缩度,则文本压缩模块900会将压缩任务切换到所述模块,并且插入一个表明所述模块完成压缩任务的位置的“换码”比特序列。
举例来说,如图10所示,前三个字符(“TO”)之后的换码序列“110010”表明码字生成模块920将对后续数据部分进行压缩。在操作中,一旦到达电子邮件消息中的这个点,则码字生成模块920会向文本压缩模块900告知它可以使用码字(例如使用标记化的电子邮件地址)来获得更高的压缩度。相应地,换码序列“110010”之后的序列“1011001000”是表示标记化电子邮件地址“Collins,Roger”<rcollins@_good.com>的码字。做为选择,在这里也可以根据系统所用特定码字集(举例来说,其中一个用于个人的姓名,另一个则用于域“@good.com”)而使用两个或更多码字来对电子邮件地址进行编码。然后如图10所示,文本压缩模块900可以选择标记化电子邮件地址之后的编码处理(也就是说,在回车字符之后跟随的是文本“FROM”)。
在电子邮件报头信息被编码之后,新文本块355是通过使用6比特字符格式而被编码的。当然,根据码字生成模块920使用的码字和/或系统上的先前电子邮件,新文本块355的某些部分也可以通过使用码字和/或指向先前消息的指针而被编码。紧随文本块355的是,在对消息进行了分析之后,基于状态的压缩模块910向文本压缩模块900告知它可以通过识别那些在先前消息中发现的内容而实现更高的压缩度。同样,在这里将会产生一个换码序列“110011”,以便指示基于状态的压缩模块910从该点开始执行压缩。然后,基于状态的压缩逻辑910使用一个消息ID码来识别先前电子邮件消息(表示的是信息301),此外还产生表明电子邮件消息内部具体内容的偏移和长度(例如使用如上所述的一种或多种基于状态的压缩技术)。
应该指出的是,图10所示的具体实施例只是出于描述目的。根据系统所用码字和/或系统上保存的先前消息,电子邮件消息302的实际编码可以不同于所描述的内容。举例来说,如上所述,文本块355可以通过使用码字和/或指向先前消息的指针来进行编码,并且可以使用六比特字符格式来进行编码。
此外还可以使用多种补充/备选的压缩技术(例如替换压缩模块930所表示的技术)。在一个实施例中,某些类型的数据并不是在无线数据处理设备130与接口100之间以无线方式传送的。例如在一个实施例中,当设备在相当一段时间未能接收到消息(例如一个星期),一开始只会将消息报头传送到设备130,由此可以避免过长的下载周期(也就是将所有那些在无效周期接收的消息全都传送到设备)。作为选择或是补充,在一个实施例中,如果在延长的时段仍未与设备取得联系,那么在设备恢复联机时只会把相对较新的消息(例如在24小时周期接收的)传送到所述设备。同样,在一个实施例中,当用户是抄送收件人和/或当电子邮件来自不同于用户收件箱的文件夹时,只有将电子邮件报头信息(例如指示主题和发件人的信息)才会被传送到无线设备130。
在一个实施例中,在设备130上仅仅更新了某些字段。例如对公司或个人通信录来说,只有姓名、电子邮件地址和电话号码字段会在设备130上得到同步。如果设备直连到客户机,那么可以更新所有字段。
在一个实施例中,在将电子邮件消息传送到设备130之前,从所述消息中剥离了某些细节,从而使得所述消息更为简洁。举例来说,在这里只传送某些指定的报头信息(例如To、From、CC、日期、主题、正文等等)。同样,在这里也可以截断超过某个大小的主题行(例如20个字符之后)。此外,在这里还可以不传送附件以及多种格式的对象(例如嵌入的图片)。在一个实施例中,当用户在输出消息上将其自身列举为抄送(CC)收件人的时候,这个消息是不会回送到无线设备130的。
虽然可以不将附件传送到无线设备130,但是在一个实施例中,用户仍旧可以将附件从无线设备转发给其他人(当然,所述附件是保存在电子邮件服务器上的)。此外在一个实施例中,响应于来自无线设备130的用户命令,可以将附件发送给一台传真机。因此,如果用户离开办公室并且需要检查某个特定附件,那么他可以输入附近传真机的号码并且将此信息传送到接口100。然后,接口100使用一个用于附件的文件类型(例如Word、PowerPoint等等)的查看器来打开附件,以及使用用户输入的传真号码并经由传真机调制解调器来传送文档。因此,用户是可以在未曾在设备上接收附件的情况下查看所述附件的。
消息事务的批处理如图11所示,在某些条件下,在设备130与服务102之间保持完全同步有可能会耗费大量无线带宽。举例来说,如果用户在延长的时段或时间中离开范围(例如将设备关闭),那么在无线设备回到范围以内的时候,有可能会有多个消息连续从接口100传送到无线设备130。当然,用户在某些情况下是根本不必处在范围以外的。与此相反,用户可能只是连续接收/传送很多电子邮件消息。
如所述,一旦用户开始在设备130上查看消息,那么消息事务更新将会连续不断地发送到接口100。举例来说,在用户读取消息1的时候,一个表明消息已被读取的指示将会传送到接口100。这个处理之后可以是在来自接口100的确认(例如表明接收到信息)。同样,当用户读取并且随后删除消息2时,那些表明已经读取并删除了消息的单独指示将会分别传送到接口100,随后则是对各个事务进行确认。
由于设备130与接口100之间的每一个单独数据传输都可以包含大量开销(设备地址130、服务地址102之类的报头信息以及多种其他类型的报头/控制信息),并且因为各个消息都有可能需要来自接口100的确认,所以以这种方式进行的消息同步可能会耗费大量带宽。换句话说,实际数据(例如数据库更新)与控制数据(例如报头数据)之间的比率相对较低。此外,这类连续数据传送往往要消耗明显更多的功率(举例来说,由于设备的无线电装置没有足够长的空闲时间以进入低功率模式)。
因此,在本发明的一个实施例中,在某些条件下(如下所述)将会对设备130与接口100之间的数据事务进行组合或是执行批处理,以便节约带宽。举例来说,如图12所述,在这个实施例中,在对设备与服务102进行同步之前,在数据处理设备上执行了多个消息事务。随后,包含所有同步更新(例如查看和删除消息、答复消息等等)的单独传送1201将会传送到接口100,其后则是表明接收到了更新的单独确认1202。
同样,在某些条件下,在传送到设备130之前,可以对服务102上的数据库修改执行批处理。举例来说,如果用户在办公室阅读和答复一系列电子邮件消息(例如来自客户机110),那么由于上文阐述的原因,在相互独立的情况下,将各个消息事务传送到无线设备130有可能并不是非常有效的。同样,在一个实施例中将会合并这些事务(或是其子集)并且将其同时传送到无线设备130。
如图12所示,在发起批处理的特定条件以及组合消息的特定方式可以分别以无线设备130和/或接口100中配置的处理参数1210、1220为基础。例如在一个实施例中,如果用户在相当长的时间段(例如2天)都没有检查消息,则触发批处理。在这种情况下则预计一旦用户开始检查消息,那么他/她将会在相对较短的时段中执行大量消息事务。然而应该指出的是,在这里可以在符合本发明基本原理的同时使用多种不同的批处理触发器(例如预定时段中的两个或更多的连续消息事务,由最终用户设定的手动触发等等)。
一旦触发批处理,则可以对周期性间隔(例如每隔10分钟)上执行的消息事务进行组合,并且在各个间隔末端传送所述事务。作为选择或补充,一旦所组合的消息事务达到某个预定阈值(例如基于事务绝对数目和/或合并事务内部包含的数据量),则可以同时传送所组合的消息。此外也可以在符合本发明基本原理的同时使用多种其他消息组合参数。
在图13中描述了用于执行消息事务批处理的方法的一个实施例。在1301中,对当前信息事务条件进行评估(例如消息事务执行频率、发起上一个消息事务的时间等等)。在1305,确定当前条件是否匹配于执行批处理所需要的阈值条件。举例来说,如上所述,如果用户的无线数据处理设备130在预定时段处于范围以外和/或如果用户在某个时段中没有检查其电子邮件,则可以调用批处理模式。
如果不满足条件,那么在1310,系统仍处于标准的消息事务模式。然而如果满足条件,那么在1315,系统(也就是无线设备130和/或接口100)将会根据所建立的批处理参数来处理消息。例如,设备130和/或接口100可以在这个阶段组合那些在一个预定时段中发生的消息事务(或是那些导致产生指定数量的事务或是如上所述的数据量的消息事务)。
在1325中对是否再次满足标准的消息处理条件进行判定。举例来说,如果用户的数据处理设备在进入批处理模式之后的预定时段均处于范围以内,并且用户周期性接收和快速答复消息,则这有可能导致系统恢复到标准的消息传送模式。依照系统结构,不同的附加/替换条件可能会导致系统进入标准的消息处理模式。
多级批处理在本发明的一个实施例中则使用了两级批处理一级是在客户站点120,另一级是在位于外部数据网络170上的数据中心。这个实施例是相对于图14而被描述的,其中所述附图14显示的是一个以可通信方式经由出站网关1413耦合到客户站点、经由无线网关1411耦合到无线网络171的数据中心1410。
批处理逻辑1400在客户站点提供了第一级批处理。特别地,在一个实施例中,当用户同时执行一组消息事务时,在将消息事务传送到数据中心1410之前,批处理逻辑1400会在逻辑上组合这些消息事务。例如,当用户删除一批电子邮件消息或是将其从一个文件夹移动到另一个文件夹的时候,单独删除/移动事物组成的块是作为一个整体传送的(即与传送一系列单独的删除/移动并等待来自中心1410的等量单独确认相反)。此外,消息事务块临时保存在远程消息高速缓存器200(如上文相对图2所述)或客户站点的备选高速缓存器中。
在数据中心1410,一开始就将执行了批处理的消息事务保存在一个辅助高速缓存器中,并且在此将其称为“消息交换机”1412。在接收和保存了消息事务块之后,消息交换机会向批处理逻辑1400发送一个块应答,所述逻辑随后从远程消息高速缓存器200中删除消息事务块。作为选择,批处理逻辑1400可以在某个预定时间段内或发生了某个预定事件之后继续保存消息事务块(例如在收到表明无线设备130已经成功接收了消息事务的指示之前)。
如果将无线电设备有效连接到无线网络,那么消息事务是作为一个整体从消息交换机1412转发到无线设备(经由无线网关1411)的。例如,在这里可以同时传送表明已经将10个消息从用户“收件箱”移动到用户“已保存邮件”文件夹的指示。然后,无线设备130可以使用它所接收的所有10个消息事务的单个确认来做出响应。作为选择,如果没有成功接收到其中一个消息事务,那么无线设备130可以请求与整个群组相反的单独的消息事务(如下文名为“消息事务的顺序传递”的部分中详细描述的那样)。
在一个实施例中,除了在客户站点上由批处理逻辑1400执行第一级批处理之外(或是作为替换),消息交换机1412还执行了第二级批处理。特别地,与处理大量消息事务相反,消息交换机1412只对在一个时段上生成的消息事务序列执行批处理(例如“删除10个消息”)。例如,用户通常是在客户站点逐一读取新的电子邮件消息,并且用户可以在一整天里不断添加新的待办列表表目和日历条目。在一个实施例中,当这些单独的消息事务出现在服务102上的时候,它们将会从接口100传送到消息交换机1412。例如,当用户读取一个单独的新电子邮件消息时,一个表明消息已被读取的指示将会传送到消息交换机1412。同样,当用户产生一个新的日历条目时,这个新条目将会自动传送到消息交换机1412。
在一个实施例中,消息交换机1412会在将多种个人消息事务传送到无线设备130之前将其聚集起来。如果无线设备130有效连接到无线网络,那么在将消息作为一个整体传送到无线设备130之前,所述消息交换机1412可以将一定数量的消息事务组合在一起和/或将那些在某个时段出现的消息事务组合在一起。当无线设备130没有在无线网络上进行有效通信时,消息交换机1412可以组合所有消息事务,一旦无线设备联机,则所述交换机会将所述事务作为一个整体来进行传送。在一个实施例中,消息交换机1412和/或批处理逻辑1400可以根据以上相对图12所描述的批处理参数1210和1220来对消息事务执行批处理。
按照顺序的传递为使无线设备130能与这里所描述的服务102完全同步,不但可靠传递往返于无线设备的消息事务非常重要,而且按照恰当顺序传递消息事务也是非常重要的(例如按照其在服务上出现的相同顺序)。举例来说,如果用户在服务102上创建新文件夹,然后将若干条消息移动到该文件夹中,那么创建文件夹的事务必须是在移动事务之前为无线设备所接收。
虽然Mobitex这类无线网络确保了可靠的数据传递,但是它们未必确保所传递的数据能够按顺序到达。此外,虽然诸如传输控制协议(“TCP”)之类的网络协议确保了按照顺序的数据传递,但是这些协议都是假设发送节点和接收节点始终有效,因此未必适合其中某个节点(即无线设备)在较长时段内失效的系统。
同样,图14中描述的本发明的一个实施例在客户站点、数据中心和/或无线设备分别是使用顺序控制逻辑1500、1510和1520来确保按顺序的传递消息事务的。在操作中,客户站点上的各个消息事务都被分配了一个顺序码,所述顺序码表示的是产生消息事务的相关顺序。在一个实施例中,在将一系列消息事务传送到无线设备130时(或从无线设备130传送到接口100时),在接收到所有先前顺序消息事务之前,无线设备130(或接口100)不会执行特定消息事务。因此,如果无线设备130接收了按照从1~3和从5~10的顺序来进行编码的消息事务,那么它可以执行消息事务1~3,但在接收到消息事务4之前是不会执行消息事务5的。
在一个实施例中,如果无线设备在某个指定时段之后没有接收到消息事务4(例如由于消息事务在传送过程中丢失),那么无线设备130会向数据中心1410和/或接口100发送一个重传消息事务4的请求。然后,在接口100和/或数据中心1410中运行的顺序控制逻辑1500或1510分别会从远程消息高速缓存器200或者消息交换机1412传送消息事务4。
一旦成功接收到消息事务4,则无线设备130会向接口100和/或消息交换机1412发出通知,由此允许从远程消息高速缓存器200和/或消息交换机1412中删除消息事务(也就是假设已经满足了这里描述的其他高速缓存清除条件)。在一个实施例中,无线设备可以发送一个与用于各个消息事务的单独通知相反的块通知。例如,无线设备130可以发送一个成功接收到消息1~10的单独通知(或是某些备选的消息事务号码),而不是只发送一个表明接收到消息事务4的通知,由此允许根据所述单独通知,从远程消息高速缓存器200和/或消息交换机1412中删除所有消息。应该指出的是,以上阐述的连续事务号码只是出于说明目的。在符合本发明基本原理的同时也可以通过使用各种备选顺序码来指示消息事务顺序。
标识码分配每一个电子邮件消息、日历条目、待办事宜列表条目等等都由服务102分配了唯一标识码。举例来说,如果所述服务是Microsoft Exchange,则为每个新的数据对象产生了一个128字节的标识码。相应地,在将无线设备130完全同步于服务102的时候有必要提供某些机制,以便确保不会将重复的标识码分配给两个不同的数据对象。举例来说,如果服务102和无线设备130能够独立产生数据对象,那么它们有可能同时使用同一标识码来产生数据对象,由此将会引发冲突。
一种用于解决这个问题的机制是要求无线设备130在每次产生新数据对象时都从服务102那里请求新的标识码。这种方案的潜在问题在于根据无线网络速度,所述无线设备130可能要花费过长时间来获取标识码。例如,在输入新的电子邮件消息或日历条目之前,如果需要等待好几秒,则可以认为这个时间量是不合理的。
作为选择,在一个实施例中,所有可能数据对象码的范围是在无线设备130与服务103之间划分的。换句话说,在这里将所有可能码中的一定百分比(例如1/2)的码分配给无线设备130,并且将剩余的可能码分配给服务103。在操作中,当在无线设备上产生新数据对象(例如新的“待办事宜”列表条目)时,无线设备130只从预指定范围内选择一个数据对象码,由此防止在服务102上发生冲突。而在一个特定实施例中则是将所有负码分配给了无线设备130,并且将所有正码分配给了服务102。如果使用的是32比特(4字节)的码,那么这将会产生2,147,483,648(231)个负码以及2,147,483,648(231)个正码。然而应该指出的是,分割代码的特定方式与本发明的基本原理无关。
在将无线设备完全同步于服务时,其中存在的另一个潜在问题是很多服务使用的标准数据对象标识码不必太大。如上所述,Microsoft Exchange是产生一个128字节(1024比特)的码来识别各个唯一数据对象的。
相应地,在图16描述的本发明的一个实施例中,接口100包括对象标识码映射逻辑1600,以便将标准数据对象标识码1620(例如MicrosoftExchange所用的128字节码)映射成专门供这里所描述的同步系统使用而产生的数据对象标识码1610(在下文中将其称为“同步系统标识码”)。如所述,对象标识码映射逻辑1600保持了一个数据对象标识表1605,其中每一个标准标识码1620都与一个相应的同步系统标识码1610相关联。如上所述,在一个实施例中,同步系统标识码1610的长度是32比特,由此显著减少了经由无线网络传送的信息量。此外如图16所示,负标识码1610识别的是由无线设备130创建的数据对象,正标识码1610识别的则是在服务102上创建的数据对象(例如从本地台式机PC)。
数据对象冲突判决由于可以将数据对象副本保留在无线设备130和服务102上,因此本发明的一个实施例使用了一种以逻辑方式来确保在无线设备130与服务102上并行修改同一数据对象的技术。例如在一个实施例中,版本号是与各个数据对象相关联的。在每次修改数据对象的时候,所述版本码都会得到修改,以便表示新的版本。
在图17所述的一个实施例中,接口100和/或无线数据处理设备130分别包含了用于检测何时发生版本冲突的冲突检测逻辑1700和1701,以及通过执行一种或多种预定义冲突判决技术来解决版本冲突的冲突判决逻辑1710。举例来说,在图17中,数据对象X的版本1的副本一开始保存在无线设备130和服务102上。其中举例来说,版本1可以是日历条目或待办事宜列表条目的初始版本。数据对象X的第1版的副本将会在服务102和无线设备130上同时修改,由此分别产生了版本21和22,进而出现了版本冲突。其中一种可能出现这种情况的方式是用户在无线设备130上修改了数据对象X,同时用户的行政助理在服务102上也修改了数据对象X。随后,无线设备130尝试用版本22来更新服务102,同样,服务102尝试用版本21来更新更新无线设备130。
在一个实施例中,分别在接口100和/或无线设备130上执行的冲突检测逻辑1700、1701将会对版本冲突进行检测。作为响应,冲突检测逻辑1700、1701触发冲突判决逻辑1710、1711,所述逻辑则尝试应用一种或多种冲突判决技术来解决冲突。在这里可以使用多种技术来解决冲突。例如在一个实施例中,服务102上的数据对象的版本(版本21)将被自动保留,用户则被告知并未输入其从无线设备130上执行的数据对象修改。所述通知可以由新版本(版本22)的可视指示和/或一个表明为何不能输入修改的解释来完成。作为选择,在一个实施例中,用户也可以从数据处理设备得到在两个可能版本之间进行选择的提示。一旦做出选择,则将选定版本保存在无线设备130和服务102上。如果另一个人尝试输入未被选定的版本(例如用户的行政助理),则可以通知这个人可能随后被通知。在一个实施例中,选定版本是以输入者为基础的。举例来说,在这里可以对本发明的一个实施例进行配置,以便始终接受用户生成的版本(而不是用户行政助理)。因此,如果用户从无线设备130或者直接在服务102(也就是从连接到服务102的台式机)上修改数据对象X,那么用户修改将会优先于任何其他修改而被接受。
应该指出的是,上述具体冲突判决技术只是出于例示目的。在符合本发明基本原理的同时,冲突判决逻辑1710、1711也可以使用不同的附加冲突判决技术。
完全无线同步和零台式机安装上述高级压缩和消息处理技术允许无线设备130完全同步于服务102。例如在本发明的一个实施例中,消息传递服务的所有主要组件都是在无线设备130上完全同步的。举例来说,如果所述服务是Microsoft Exchange,那么这些组件包括电子邮件、电子日历、联系人、任务和便笺。相应地,所有用户事务(消息编档、待办事宜列表条目等等)都会在没有底座的情况下在无线设备上保持最新状态。
在一个实施例中,不但消息得到了同步,而且服务102的整个状态也得到了同步。举例来说,这个状态信息可以包括创建新文件夹、删除旧文件夹、将消息归档到文件夹中、从设备中读取消息、标记未读消息、删除电子邮件、新消息到达、将消息复制到一个文件夹中、归档消息和/或其他任何对在服务上保持的邮箱产生了影响的事务。
此外在一个实施例中,无线设备130是以无线方式提供的。因此,一旦在服务上启用用户帐户,那么所有初始用户数据都是以无线方式发送的。举例来说,这些数据可以包括初始联系人(例如通信录)、便笺、任务和日历数据,在一个实施例中,一开始可以在无线设备130上安装唯一的加密密钥,以便对设备与服务之间的通信进行加密(例如借助于设备安装软件)。
在一个实施例中,即使无线设备130上的数据完全同步,也还是可以使用老化算法(aging algorithm)来节省设备上的空间。例如,在指定时间点,所述服务可以保存了40,000个数据对象(例如电子邮件消息、日历条目等等),然而,无线设备(具有少量存储器)则只能保存20,000个数据对象。因此在一个实施例中,无线设备130只保存那些最长时间没有修改或以其他方式操作(例如从一个文件夹移动到另一个文件夹)的数据对象。在一个实施例中,用户可以规定自动删除的消息类型(举例来说,所述消息类型可以仅仅是“发送邮件”文件夹中的消息,也可以是任何超出了一个月的消息等等)。然而一旦从设备上删除了消息,那么通常能够从服务中恢复所述消息。
举例来说,用户可以基于一个或多个规定变量(例如创建者、客户机、发件人、收件人、日期范围等等)而请求从服务102那里重传某些数据对象。同样,在一个实施例中,如果用户从用户台式机上操作那些已经从无线设备130上删除的数据对象(例如将电子邮件消息从一个文件夹移动到另一个文件夹),那么所述数据对象将会重传到无线设备并且保存在目的文件夹中。
即使系统“停机”(例如数据网络170和/或无线服务供应商网络171),本发明的一个实施例也会保持同步事件。举例来说,如上所述,任何在系统停机时间之中发生的同步事件可以分别在处于数据中心1410和/或接口100的批处理高速缓存器1412或200之一得到保持。因此,即使接口100停机一段时间,数据网络170不可用,无线设备130关闭、离开覆盖范围或是损坏,同步更新仍旧是可以得到保持的。一旦系统的所有部分再次正常工作,则可以对队列中的同步更新进行处理。
在接口100的一个实施例中,“移动”事件是以一种有效方式而被检测和处理的。如图18所示,在服务102与接口100之间,当消息(或其他数据对象)在Microsoft Exchange之类的消息传递系统上从一个文件夹移动到另一个文件夹(例如从“已发送邮件”文件夹移动到“已保存邮件”文件夹,从“收件箱”文件夹移动到“已读取邮件”文件夹等等)的时候,在目的文件夹的位置将会产生所述消息的一个新副本,然后则从源文件夹中删除原始消息。作为选择,在这里也可以一开始就从源文件夹中删除消息,然后在目的文件夹中重建所述消息。在复制基本消息之前或之后将删除命令传送到无线设备130,这种处理是一种用于执行移动事务的低效方法。因此如图18所示,接口100的一个实施例是通过使用数据对象(也就是消息)标识码、源文件夹和/或目的文件夹而将“删除”命令与“新建”命令合并成一个单独的“移动”命令,由此显著减少了经由无线网络传送的信息量。
为了以这种方式向无线设备130提供移动命令,系统(例如接口100)首先必须识别所要移动的消息。所述接口的一个实施例则是单独或以组合方式使用图19a和/或图19b所阐述的方法来对消息进行识别的。首先参考图19a,在1900,接口100检测到已经从文件夹A中删除了消息X。在1910,接口100尝试确定所述删除是否形成了移动命令的一部分。同样,该接口还对用户帐户中的其他文件夹进行搜索,以便查找相同消息。如果在文件夹B之类的特定文件夹中发现相同消息,那么在1930,所述接口会将一个移动命令传送到无线设备130,其中所述命令表示的是将消息X从文件夹A移动到文件夹B。然而,如果没有在另一个文件夹中找到消息X,那么它会向无线设备传送一个删除命令,以便指示从文件夹A中删除消息X。
现在参考图19b,在一个实施例中,接口100一开始检测到消息X已经到达文件夹B。作为响应,接口100对数据对象标识码表1605(举例来说,参见图16)进行搜索,以便确定与消息X相关联的标识码匹配。如果发现匹配(在1970确定),则接口100将一个移动命令传送到无线设备130,以便指示应该将消息X从文件夹A移动到文件夹B。然而如果没有找到标识码匹配,那么接口100会向无线设备传送一个删除命令,以便指示应该从文件夹A中删除消息X。
当无线设备130与服务102在一个很长的时段中“失去联系”时,这时有可能已经累积了大量需要同步的事务。因此在一个实施例中,为了节省设备上的带宽和时间(例如不使之为未同步数据所淹没),只有某些数据的典型部分可以传送。举例来说,如果无线设备130关闭两周,那么只有消息报头将会传送到所述设备(也就是不传送消息主体)。其基本原因在于用户不可能会希望/需要在设备上读取早前的所有邮件。
在一个实施例中,在经过很长时段之后将数据传送到设备的具体方式是由用户选择的。因此,用户可以选择一个时段,其中在这个时段之后只有报头才被发送(例如一周以前、从未等等)。在任何情况下,用户都可以在传送报头之后请求完整的消息主体。
正如这里所使用的那样,“零桌面安装”指的是无线设备在用户台式机上未曾安装任何客户机软件的情况下正常运作的能力。由于如上所述,无线设备可以访问所有消息传递特征(例如设备选项管理、消息传递服务结构、消息过滤器、输出电子邮件签名、安全设定等等),因此本发明的一个实施例不需要台式机。这个特征在当前的消息传递系统并不可用,因为当前无线设备只支持所有消息传递功能的一个子集。同样,当前系统还需要台式机软件以及一个底座来完成同步处理。
在一个实施例中,无线设备的结构设置将会得到保存,并且会在消息传递服务器上不断得到更新。因此,如果曾经丢失了设备设置(例如因为设备初始化或丢失),那么所述设置会与消息传递数据一起自动恢复。实际上,在一个实施例中,由于不会存在不与消息传递服务器同步并为所述设备所独有的数据,因此没有必要一直对所述设备进行备份。
此外在一个实施例中,软件升级是以无线方式传送到设备的,由此完全清除了设备与台式机之间的任何必要链路。所述软件升级可以包括设备操作系统升级以及应用的安装程序。
本发明的实施例可以包括上文所阐述的不同步骤。这些步骤可以用机器可执行指令实施。其中可以使用这些指令而使得通用或专用处理器执行某些步骤。作为选择,这些步骤也可以由包含了用于执行这些步骤的硬件逻辑的具体硬件元件来执行,或是由那些经过编程的计算机组件以及定制的硬件组件来实施。
本发明的部件还可以作为一个用于保存机器可执行指令的机器可读介质而被提供。所述机器可读介质可以包括但不局限于软盘、光盘、CD-ROM、磁光盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、传播介质或是适合保存电子指令的其他类型的媒体/机器可读介质。举例来说,本发明可以作为一个计算机程序而被下载,其中所述程序是借助了载波或其他传播介质中包含的数据信号并且经由一条通信链路(例如调制解调器或网络连接)而被从远程计算机(例如服务器)传递到一台发起请求的计算机的(例如客户机)。
在以上描述中,出于说明目的而对许多细节进行了阐述,以便提供关于本发明的全面理解。然而对于本领域技术人员来说,很明显,本发明可以在不具备其中一些特定细节的情况下得到实施。例如,虽然在这里是将本发明作为一个在服务器103上执行的服务102的接口100来进行描述的(参见图1),但是应该了解,本发明的基本原理也可以在经由网络传送数据的单独的客户机上实现。此外,虽然本发明是在无线数据处理设备的环境中描述的,但是通过实施本发明的基本原理,也可以在包括有线和无线在内的近乎所有连网环境中对数据进行压缩。因此,本发明的范围和实质是根据下列权利要求判定的。
权利要求
1.一种系统,包括一个无线数据处理设备;一个保持了代表用户的数据对象的消息传递服务;以及同步装置,用于在无线网络上的所述无线设备与所述消息传递服务之间保持所述数据对象的同步,其中所述同步装置将那些在所述服务发起的数据对象事务更新传送到所述无线设备,并且将那些在所述无线设备发起的数据对象事务更新传送到所述服务。
2.根据权利要求1所述的系统,其中所述数据对象包括电子邮件消息。
3.根据权利要求2所述的系统,其中所述数据对象包括电子日历数据。
4.根据权利要求3所述的系统,其中所述数据对象包括待办事宜列表数据。
5.根据权利要求4所述的系统,其中所述数据对象包括联系信息。
6.根据权利要求1所述的系统,其中所述同步装置还包括压缩装置,用于对在所述无线设备与所述服务之间传送的所述消息和其他信息进行压缩。
7.根据权利要求1所述的系统,其中所述同步装置还包括批处理装置,用于在所述无线数据处理设备与所述消息传递服务之间传送所述更新之前组合数据对象事务更新群组。
8.根据权利要求1所述的系统,其中所述数据处理设备包括控制装置,以使所述用户从所述数据处理设备修改所述消息传递服务的配置参数。
9.根据权利要求1所述的系统,其中所述服务和所述无线数据处理设备是以无线方式完全同步的,并且没有将所述无线设备直接耦合到用以运行所述服务的网络。
10.根据权利要求1所述的系统,其中所述同步装置对包括在电子邮件文件夹之间消息的移动在内的消息事务更新进行同步。
11.根据权利要求10所述的系统,其中所述消息事务更新中的一个更新包括表明所述用户已经从所述无线数据处理设备查看了消息的指示。
12.根据权利要求1所述的系统,其中所述同步装置还包括第一批处理装置,它被配置在所述服务运作的客户站点;以及第二批处理装置,它被配置在以可通信方式耦合在所述无线数据处理设备与所述客户站点之间的数据中心上。
13.根据权利要求12所述的系统,其中所述第一批处理装置在传送所述数据对象事务之前会在所述客户站点对用户同时执行的数据对象事务进行组合,并且其中所述第二批处理装置对那些并未被所述用户同时执行的数据对象事务进行组合。
14.根据权利要求13所述的系统,其中由所述用户同时执行的所述数据对象事务包括一组由所述用户同时删除的电子邮件消息。
15.根据权利要求7所述的系统,还包括顺序传递装置,用于确保所述组合数据对象事务更新在其相应目的地是以正确的顺序得到执行的。
16.根据权利要求15所述的系统,其中所述顺序传递装置在接收到所有在先事务更新之前是不允许所述无线数据处理设备执行特定事务更新的。
17.根据权利要求1所述的系统,其中所述同步装置还包括数据对象标识(ID)码分配装置,用于为所述无线数据处理设备与所述消息传递服务之间的新的数据对象分配多个可能标识码。
18.根据权利要求17所述的系统,其中将负ID码分配给了在所述无线设备上生成的数据对象,并且将正码分配给了在所述消息传递服务上生成的ID码。
19.根据权利要求1所述的系统,其中所述同步装置还包括数据对象冲突判决装置,用于确保基于一个或多个冲突判决参数来解决在所述无线设备与所述服务上进行的特定数据对象副本的同时修改。
20.根据权利要求19所述的系统,其中所述数据对象冲突判决装置产生与各个数据对象修改相关联的新版本号。
21.一种用于对无线设备和服务进行同步的方法,包括将多个第一标识码与无线设备相关联,以及将多个第二标识码与消息服务相关联,其中所述无线设备在生成新数据对象的时候仅仅使用了来自所述多个第一标识码的标识码,并且所述消息服务在产生新数据对象时只使用来自所述多个第一标识码的标识码;以及当在所述消息服务上创建新数据对象时,自动将一个包含所述新数据对象的更新传送到所述无线设备,并且当在所述无线设备上创建新数据对象时,自动将一个包含所述新数据对象的更新传送到所述消息服务。
22.根据权利要求21所述的方法,还包括在所述消息服务上合并所述数据对象的多个事务;以及将合并后的所述数据对象的所述多个事务作为一个整体传送到所述无线设备。
23.根据权利要求21所述的方法,还包括在运行所述消息服务的客户站点上合并成由用户同时执行的所述数据对象的事物;将涉及所述数据对象的单独事务以及涉及所述数据对象的所述合并事务传送到一个以可通信方式耦合在所述客户站点与所述无线设备之间的数据中心;在所述数据中心,合并所述数据对象的所述组合事务和/或所述数据对象的所述单独事务,以便产生所述事务的第二层组合;以及将所述事务的所述第二层合并作为一个整体传送到所述无线设备。
24.根据权利要求22所述的方法,还包括除了所述数据对象的所述多个事务中的一个或多个事务,所述无线设备接收几乎全部事务;所述无线设备请求只重传所述多个事务中的一个或多个所述事务。
25.根据权利要求24所述的方法,还包括按顺序对涉及所述数据对象的事务进行编号,其中在接收和执行所述一个或多个事务之前,所述无线设备将会禁止执行那些在涉及所述数据对象的所述一个或多个事务之后出现的事务。
26.根据权利要求21所述的方法,其中某些所述数据对象包含了电子邮件消息。
27.根据权利要求26所述的方法,其中所述事务包括发送新的电子邮件消息。
28.根据权利要求27所述的方法,其中所述事务包括删除电子邮件消息。
29.根据权利要求21所述的方法,还包括在将所述数据对象传送到无线设备和/或所述服务之前对其进行压缩。
30.根据权利要求21所述的方法,还包括对所述服务和所述无线设备同时修改的数据对象之间的版本冲突进行检测;以及使用一种或多种冲突判决技术来解决所述版本冲突。
31.根据权利要求30所述的方法,其中所述冲突判决技术之一包括保留在所述服务上执行的修改,并且相应地更新所述无线设备。
32.根据权利要求21所述的方法,还包括将所述多个第一和第二数据对象标识码映射到一个通常由所述消息服务使用的标识码集合。
33.根据权利要求32所述的方法,其中所述消息服务是MicrosoftExchange。
34.一种用于对无线设备和服务进行同步的系统,包括一个以通信方式耦合在所述服务与所述无线设备之间的接口,其中所述接口是安装和配置了所述服务的客户站点执行的,由此响应于所述服务上的数据对象事务而将数据对象事务更新提供给所述无线设备,并且响应于所述无线设备上的数据对象事务而将数据对象事务更新提供给所述服务;以及一个以通信方式耦合在所述无线设备与所述接口之间的数据中心,其中在将所述数据对象事务更新成功传送到所述无线设备之前,所述数据中心将会临时保存所述数据对象事务更新。
35.根据权利要求34所述的系统,还包括批处理逻辑,用于在将所述数据对象事务更新传送到所述无线设备和/或所述接口之前,将所述数据对象事务更新组合在一起。
36.根据权利要求35所述的系统,其中所述批处理逻辑还包括一个在所述接口实施的第一级批处理逻辑,其中在传送所述数据对象事务更新之前,所述第一级批处理逻辑会对用户同时执行的数据对象事务更新进行组合;以及一个在所述数据中心实施的第二级批处理逻辑,其中在将所述数据对象事务更新传送到所述无线设备之前,所述第二级批处理逻辑会对所述用户单独执行的数据对象事务更新进行组合。
37.根据权利要求34所述的系统,其中所述接口将所述服务上的两个或多个数据对象事务合并成一个等价的单独数据对象事务,以便传送到所述无线设备。
38.根据权利要求37所述的系统,其中所述两个或多个数据对象事务包括从源位置删除数据对象的删除命令,以及在目的位置复制所述数据对象的新建命令,并且其中被传送到所述无线设备的所述单个数据对象事务是一个移动命令。
39.根据权利要求38所述的系统,其中所述移动命令包括所述数据对象的标识、所述源位置的标识以及所述目的位置的标识。
40.根据权利要求38所述的系统,其中如果所述删除命令是在所述新建命令之前,则所述接口通过在所述服务中搜索所述数据对象,以便在所述删除命令之后在所述服务上的所述新位置识别所述对象,从而确定所述这两个数据对象事务等价于一个单独的移动命令。
41.根据权利要求38所述的系统,其中如果所述新建命令处于所述删除命令之前,那么所述接口通过对具有数据对象标识码的表进行搜索,以便确定所述数据对象是否在所述新建命令之前已经存在于一个不同的位置,从而确定所述这两个数据对象事务等价于一个单独的移动命令。
全文摘要
在这里公开了一种数据处理设备(130)完全同步于消息传递服务(120)的系统。该系统的一个实施例包括一个无线数据处理设备;一个保持了消息(102)和代表了用户的其他信息(102)的消息传递服务;以及同步逻辑,所述同步逻辑用于在无线设备与消息传递服务之间保持所述消息和其他信息的同步。
文档编号G06F12/00GK1656454SQ03811930
公开日2005年8月17日 申请日期2003年3月26日 优先权日2002年3月29日
发明者J·弗兰德, M·贝尔希, R·柯林斯, M·贝内特 申请人:卓越技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1