CN1306413C - 用于对数据处理设备与数据服务进行全无线同步的系统和方法 - Google Patents
用于对数据处理设备与数据服务进行全无线同步的系统和方法 Download PDFInfo
- Publication number
- CN1306413C CN1306413C CNB038119307A CN03811930A CN1306413C CN 1306413 C CN1306413 C CN 1306413C CN B038119307 A CNB038119307 A CN B038119307A CN 03811930 A CN03811930 A CN 03811930A CN 1306413 C CN1306413 C CN 1306413C
- Authority
- CN
- China
- Prior art keywords
- message
- wireless device
- service application
- application program
- information updating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/58—Message adaptation for wireless communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Telephonic Communication Services (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
在这里公开了一种数据处理设备(130)完全同步于消息传递服务(120)的系统。该系统的一个实施例包括一个无线数据处理设备;一个保持了消息(102)和代表了用户的其他信息(102)的消息传递服务;以及同步逻辑,所述同步逻辑用于在无线设备与消息传递服务之间保持所述消息和其他信息的同步。
Description
优先权
本申请是2001年8月7日提交的、名为“APPARATUS AND METHODFOR CONSERVING BANDWIDTH BY BATCH PROCESSING DATATRANSACTIONS”的同时待决美国申请09/924,283的部分继续申请。
技术领域
本发明一般涉及网络数据服务的领域。更为特别的是,本发明涉及一种用于将无线数据处理设备同步于无线消息传递服务的设备和方法。
背景技术
在过去的若干年间已经推行了多种无线数据处理设备。这其中包括手持型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可以根据其主题字段中包含“RE:Patent 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),但是应该了解,本发明的基本原理也可以在经由网络传送数据的单独的客户机上实现。此外,虽然本发明是在无线数据处理设备的环境中描述的,但是通过实施本发明的基本原理,也可以在包括有线和无线在内的近乎所有连网环境中对数据进行压缩。因此,本发明的范围和实质是根据下列权利要求判定的。
Claims (51)
1.一种系统,包括:
服务器,执行消息传递服务应用程序以保持多个电子邮件消息;和
无线设备,响应于探测到一个或多个电子邮件消息进行的修改,通过即时传送消息更新到消息传递服务应用程序,该无线设备开始与该消息传递服务应用程序的同步,所述消息更新表示在该无线设备对多个电子邮件消息中的每一个进行的修改,并且,在将合并过的消息更新作为单个消息更新传送之前,该无线设备合并两个或更多消息更新。
2.根据权利要求1所述的系统,其中,当所述消息传递服务应用程序接收到消息更新时向所述无线消息传递设备传送确认消息。
3.根据权利要求1所述的系统,其中,所述无线设备包括表示消息升级何时被合并的处理参数。
4.根据权利要求3所述的系统,其中,如果所述无线设备在预定的时间周期内没有被访问,则合并所述消息更新。
5.根据权利要求3所述的系统,其中,如果第一电子邮件消息和第二电子邮件消息在预定时间周期内被修改,则合并所述消息更新。
6.根据权利要求1所述的系统,其中,所述消息传递服务应用程序通过传送消息更新到所述无线设备而开始与所述无线设备的同步,传送消息更新到所述无线设备表示一个或多个电子邮件消息已经在所述服务器的数据库中得到更新。
7.根据权利要求6所述的系统,其中,在将合并的消息更新作为单个更新消息传送之前,所述消息传递服务应用程序合并两个或更多消息更新。
8.根据权利要求1所述的系统,其中,消息更新表示用户已经阅读过电子邮件消息。
9.根据权利要求1所述的系统,其中,消息更新表示用户已经删除了电子邮件消息。
10.根据权利要求1所述的系统,其中,消息更新表示电子邮件消息已经被从第一机构文件夹移动到第二机构文件夹。
11.一种无线设备,包括:
控制逻辑电路,在探测到对一个或多个电子邮件消息做出修改后,通过即时传送消息更新到消息传递服务应用程序而开始与该消息服务应用程序同步,所述消息更新表示对所述无线设备的多个电子邮件消息中的每一个做出的修改,并且,该控制逻辑电路从所述消息传递服务应用程序接收确认消息,表示在所述消息传递服务应用程序已经接收到了所述消息更新;以及
批处理逻辑电路,用于在将合并的消息更新作为单个消息更新传送到所述消息传递服务应用程序之前合并两个或更多消息更新。
12.根据权利要求11所述的无线设备,其中,所述批处理逻辑电路包括表示消息升级何时被合并的处理参数。
13.根据权利要求12所述的无线设备,其中,如果所述无线设备在预定的时间周期内没有被访问,则合并所述消息更新。
14.根据权利要求12所述的无线设备,其中,如果第一电子邮件消息和第二电子邮件消息在预定时间周期内被修改,则合并所述消息更新。
15.根据权利要求11所述的无线设备,所述无线设备配置为从所述消息传递服务应用程序接收消息更新,表示一个或多个电子邮件消息已经在所述消息传递服务应用程序中得到更新。
16.根据权利要求11所述的无线设备,其中,消息更新表示用户已经阅读过电子邮件消息。
17.根据权利要求11所述的无线设备,其中,消息更新表示用户已经删除了电子邮件消息。
18.根据权利要求11所述的无线设备,其中,消息更新表示电子邮件消息已经被从第一机构文件夹移动到第二机构文件夹。
19.一种方法,包括:
在无线设备修改第一电子邮件消息;
生成表示所述第一电子邮件的修改的第一消息更新;
即时传送第一消息更新到消息传递服务应用程序;
基于所述无线设备中的第一消息更新,修改存储在所述消息传递服务应用程序中的第一电子邮件消息的复本;
在所述无线设备修改第二电子邮件消息;
生成表示第二电子邮件消息已经被修改过的第二消息更新;
传送所述第二消息更新到所述消息传递服务应用程序;和
基于所述无线设备中的第二消息更新,修改存储在所述消息传递服务应用程序中的第二电子邮件消息的复本;
其中,在传送所述第一消息更新和第二消息更新之前将该第一消息更新和第二消息更新合并,并且将所述第一消息更新和第二消息更新作为合并的消息更新传送到所述消息传递服务应用程序。
20.根据权利要求19所述的方法,进一步包括:
在所述无线设备从所述消息传递服务应用程序接收第一确认信号,表示在消息传递服务应用程序已经接收到了第一消息更新;
在所述无线设备从所述消息传递服务应用程序接收第二确认信号,表示在消息传递服务应用程序已经接收到了第二消息更新。
21.一种系统,包括:
服务器,执行消息传递服务应用程序以保持多个电子邮件消息,并通过传送消息更新而开始同步,传送消息更新表示一个或多个电子邮件消息已经在所述服务器的数据库中得到更新;和
无线设备,当探测到对一个或多个电子邮件消息进行的修改时,通过即时传送消息更新到消息传递服务应用程序,该无线设备开始与该消息传递服务应用程序的同步,所述消息更新表示在该无线设备对多个电子邮件消息中的每一个进行的修改;
其中,在将合并的消息更新作为单个消息更新传送之前,所述消息传递服务应用程序合并两个或更多消息更新,并且所述消息传递服务应用程序包括表示消息升级何时被合并的处理参数。
22.根据权利要求21所述的系统,其中,在将合并过的消息更新作为单个消息更新传送之前,所述无线设备合并两个或更多消息更新。
23.根据权利要去22所述的系统,其中,所述无线设备包括表示消息升级何时被合并的处理参数。
24.根据权利要求23所述的系统,其中,如果所述无线设备在预定的时间周期内没有被访问,则合并所述消息更新。
25.根据权利要求23所述的系统,其中,如果第一电子邮件消息和第二电子邮件消息在预定时间周期内被修改,则合并所述消息更新。
26.一种系统,包括:
服务器,执行消息传递服务应用程序以保持多个电子邮件消息;和
无线设备,一旦电子邮件消息被修改,则该无线设备通过生成要即时传送到消息传递服务应用程序的数据事务而开始与所述消息传递服务应用程序的同步,其中,在将两个或更多数据事务作为本地同步传输传送到所述消息传递服务应用程序之前,在所述无线设备将所述的两个或更多数据事务合并起来。
27.根据权利要求26所述的系统,其中,一旦接收到本地同步传输,则所述消息传递服务应用程序传送确认消息到所述无线消息传递设备。
28.根据权利要求26所述的系统,其中,所述无线设备包括表示数据事务何时被合并以形成本地同步传输处理参数的处理参数。
29.根据权利要求28所述的系统,其中,如果所述无线设备在预定时间周期内没有被访问,则合并所述数据事务。
30.根据权利要求28所述的系统,其中,如果在预定时间周期内第一电子邮件消息和第二电子邮件消息被修改,则合并所述数据事务。
31.根据权利要求26所述的系统,其中,一旦所述消息传递服务应用程序的数据库中的电子邮件消息被修改,则所述消息传递服务应用程序通过生成要传送到所述无线设备的数据事务而开始与所述消息传递服务应用程序的同步,其中,在将两个或更多数据事务作为远程同步传输传送到所述无线设备之前,在所述消息传递服务应用程序将所述的两个或更多数据事务合并起来。
32.根据权利要求31所述的系统,其中,在传送所述远程同步传输之前所述消息传递服务应用程序合并所述数据事务。
33.根据权利要求32所述的系统,其中,所述消息传递服务应用程序包括表示数据事务何时被合并的处理参数。
34.根据权利要求26所述的系统,其中,数据事务表示用户已经阅读过电子邮件消息。
35.根据权利要求26所述的系统,其中,数据事务表示用户已经删除了电子邮件消息。
36.根据权利要求26所述的系统,其中,数据事务表示电子邮件消息已经被从第一机构文件夹移动到第二机构文件夹。
37.一种无线设备,包括同步逻辑电路,一旦电子邮件消息被修改,则该同步逻辑电路通过生成要即时传送到消息传递服务应用程序的数据事务而开始与所述消息传递服务应用程序的同步,并且在将合并的数据事务作为本地同步传输传送到所述消息传递服务应用程序之前将两个或更多数据事务合并起来。
38.根据权利要求37所述的无线设备,其中,所述无线设备包括表示数据事务何时被合并以形成本地同步传输处理参数的处理参数。
39.根据权利要求38所述的无线设备,其中,如果所述无线设备在预定时间周期内没有被访问,则合并所述数据事务。
40.根据权利要求38所述的无线设备,其中,如果在预定时间周期内第一电子邮件消息和第二电子邮件消息被修改,则合并所述数据事务。
41.根据权利要求37所述的无线设备,进一步配备为从具有两个或更多合并的数据事务的消息传递服务应用程序接收远程同步传输。
42.根据权利要求37所述的无线设备,其中,数据事务表示用户已经阅读过电子邮件消息。
43.根据权利要求37所述的无线设备,其中,数据事务表示用户已经删除了电子邮件消息。
44.根据权利要求37所述的无线设备,其中,数据事务表示电子邮件消息已经被从第一机构文件夹移动到第二机构文件夹。
45.一种系统,包括:
服务器,执行消息传递服务应用程序以保持多个电子邮件消息,并且所述消息传递服务应用程序的数据库中的电子邮件消息一旦被修改,则通过生成要被传输的数据事务而开始同步,其中,在两个或更多数据事务作为远程同步传输而传送之前,在所述消息传递服务应用程序合并所述的两个或更多数据事务;和
无线设备,电子邮件消息一旦被修改,则通过生成要被即时传送到所述消息传递服务应用程序的数据事务而开始与所述消息传递服务应用程序的同步,其中,在两个或更多数据事务作为本地同步传输而传送到所述消息传递服务应用程序之前,在所述无线设备合并所述的两个或更多数据事务。
46.根据权利要求45所述的系统,其中,当所述消息传递服务应用程序接收到本地同步传输时传送确认消息到所述无线消息传递设备。
47.根据权利要求45所述的系统,其中,所述无线设备包括表示数据事务何时被合并以形成本地同步传输的处理参数。
48.根据权利要求47所述的系统,其中,如果所述无线设备在预定时间周期内没有被访问,则合并所述数据事务。
49.根据权利要求47所述的系统,其中,如果在预定时间周期内第一电子邮件消息和第二电子邮件消息被修改,则合并所述数据事务。
50.根据权利要求47所述的系统,其中,在传送所述远程同步传输之前所述消息传递服务应用程序合并所述的数据事务。
51.根据权利要求50所述的系统,其中,所述消息传递服务应用程序包括表示数据事务何时被合并的处理参数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/109,928 | 2002-03-29 | ||
US10/109,928 US7243163B1 (en) | 2001-08-07 | 2002-03-29 | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1656454A CN1656454A (zh) | 2005-08-17 |
CN1306413C true CN1306413C (zh) | 2007-03-21 |
Family
ID=28673633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB038119307A Expired - Lifetime CN1306413C (zh) | 2002-03-29 | 2003-03-26 | 用于对数据处理设备与数据服务进行全无线同步的系统和方法 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1493086A4 (zh) |
JP (1) | JP2005521938A (zh) |
CN (1) | CN1306413C (zh) |
AU (1) | AU2003223382A1 (zh) |
WO (1) | WO2003083667A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7962622B2 (en) | 2001-08-07 | 2011-06-14 | Motorola Mobility, Inc. | System and method for providing provisioning and upgrade services for a wireless device |
US9134989B2 (en) | 2002-01-31 | 2015-09-15 | Qualcomm Incorporated | System and method for updating dataset versions resident on a wireless device |
US9092286B2 (en) | 2002-12-20 | 2015-07-28 | Qualcomm Incorporated | System to automatically process components on a device |
US8626146B2 (en) | 2003-10-29 | 2014-01-07 | Qualcomm Incorporated | Method, software and apparatus for performing actions on a wireless device using action lists and versioning |
US7925754B2 (en) | 2003-11-21 | 2011-04-12 | Microsoft Corporation | Method and computer program product to provide synch notifications to client devices |
US7184753B2 (en) * | 2004-01-22 | 2007-02-27 | Research In Motion Limited | Mailbox pooling pre-empting criteria |
US7797386B2 (en) | 2004-02-27 | 2010-09-14 | Research In Motion Limited | System and method for remotely configuring a desktop mailbox |
CA2594036A1 (en) * | 2005-01-06 | 2006-07-13 | Tervela, Inc. | Intelligent messaging application programming interface |
EP1708097A1 (de) * | 2005-03-31 | 2006-10-04 | Ubs Ag | Rechnernetzwerksystem zum Synchronisieren einer zweiten Datenbank mit einer ersten Datenbank sowie Vorgehensweise hierfür |
US8307036B2 (en) | 2005-09-27 | 2012-11-06 | Research In Motion Limited | Email server with enhanced least recently used (LRU) cache |
DE602005017200D1 (de) | 2005-11-23 | 2009-11-26 | Research In Motion Ltd | Verfahren und Vorrichtung zur Speicherverwaltung bei einer elektronischen Vorrichtung |
DE602005020033D1 (de) | 2005-11-23 | 2010-04-29 | Research In Motion Ltd | Verfahren und Vorrichtung zur Synchronisierung von mittels drahtloser Schnittstelle verbundenen Datenbanken |
US7747566B2 (en) | 2005-11-23 | 2010-06-29 | Research In Motion Limited | Method and apparatus for synchronizing databases connected by wireless interface |
US8769033B2 (en) * | 2006-03-03 | 2014-07-01 | Microsoft Corporation | Identifying changes to media-device contents |
CN100450108C (zh) * | 2006-03-23 | 2009-01-07 | 华为技术有限公司 | 一种采用数据同步处理电子邮件的系统、装置及方法 |
US8121585B2 (en) | 2006-08-25 | 2012-02-21 | International Business Machines Corporation | Technique for synchronizing data with a mobile device based on a synchronization context |
CN101647015A (zh) * | 2006-11-30 | 2010-02-10 | 因特利塞公司 | 用于提供智能同步的方法、设备和计算机程序产品 |
GB0625643D0 (en) * | 2006-12-21 | 2007-01-31 | Symbian Software Ltd | Sync field filtering |
KR101212872B1 (ko) | 2007-01-07 | 2012-12-17 | 애플 인크. | 동기화 방법 및 시스템 |
US7805403B2 (en) | 2007-01-07 | 2010-09-28 | Apple Inc. | Synchronization methods and systems |
US9166941B2 (en) * | 2007-04-24 | 2015-10-20 | Microsoft Technology Licensing, Llc | Synchronizing email messages between external and local email servers and/or a wireless device |
DE102007025020A1 (de) * | 2007-05-28 | 2008-12-04 | Schrimpf, Werner | Verfahren und Vorrichtung zum automatischen Übermitteln von Informationen |
WO2008157735A2 (en) * | 2007-06-19 | 2008-12-24 | Qualcomm Incorporated | Methods and apparatus for dataset synchronization in a wireless environment |
GB2459494A (en) * | 2008-04-24 | 2009-10-28 | Symbian Software Ltd | A method of managing a cache |
US9716744B2 (en) * | 2011-10-27 | 2017-07-25 | Microsoft Technology Licensing, Llc | Remote access from mobile devices |
US20140258358A1 (en) * | 2013-03-11 | 2014-09-11 | Htc Corporation | Method of combining network data and mobile device using the same |
US8766827B1 (en) * | 2013-03-15 | 2014-07-01 | Intel Corporation | Parallel apparatus for high-speed, highly compressed LZ77 tokenization and Huffman encoding for deflate compression |
US10261801B2 (en) | 2013-12-13 | 2019-04-16 | Ab Initio Technology Llc | Dynamically determining a mode of a data processing application |
CN105763587A (zh) * | 2014-12-18 | 2016-07-13 | 中国移动通信集团公司 | 一种数据同步方法及装置 |
CN105897545B (zh) * | 2015-01-26 | 2019-09-10 | 九玉(北京)科技有限公司 | 一种邮件同步的方法及装置 |
CN109271444A (zh) * | 2018-08-10 | 2019-01-25 | 武汉达梦数据库有限公司 | 一种基于触发器的表级双向同步实现方法和系统 |
CN109947801A (zh) * | 2019-02-25 | 2019-06-28 | 交通银行股份有限公司 | 数据库数据同步系统、方法及装置 |
US20230085065A1 (en) * | 2021-09-16 | 2023-03-16 | Apple Inc. | Efficient communication in limited resource environments |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1145704A (zh) * | 1995-01-19 | 1997-03-19 | 诺基亚电信公司 | 在移动通信系统中同步电信连接 |
US6052735A (en) * | 1997-10-24 | 2000-04-18 | Microsoft Corporation | Electronic mail object synchronization between a desktop computer and mobile device |
US6151606A (en) * | 1998-01-16 | 2000-11-21 | Visto Corporation | System and method for using a workspace data manager to access, manipulate and synchronize network data |
CN1289515A (zh) * | 1998-01-30 | 2001-03-28 | 艾利森电话股份有限公司 | 建立加密连接的方法和设备 |
US6219694B1 (en) * | 1998-05-29 | 2001-04-17 | Research In Motion Limited | System and method for pushing information from a host system to a mobile data communication device having a shared electronic address |
US6226618B1 (en) * | 1998-08-13 | 2001-05-01 | International Business Machines Corporation | Electronic content delivery system |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666530A (en) * | 1992-12-02 | 1997-09-09 | Compaq Computer Corporation | System for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between |
JP3482863B2 (ja) * | 1998-03-16 | 2004-01-06 | 三菱電機株式会社 | 電子メール管理システム |
US6779019B1 (en) * | 1998-05-29 | 2004-08-17 | Research In Motion Limited | System and method for pushing information from a host system to a mobile data communication device |
US6449622B1 (en) * | 1999-03-08 | 2002-09-10 | Starfish Software, Inc. | System and methods for synchronizing datasets when dataset changes may be received out of order |
US6983308B1 (en) * | 1998-11-19 | 2006-01-03 | Openwave Systems, Inc. | Mail synchronization of remote and local mail systems |
GB2365260B (en) * | 2000-02-24 | 2004-05-26 | Ibm | Database synchronisation for mobile computing devices |
JP2001339442A (ja) * | 2000-05-25 | 2001-12-07 | Mitsubishi Electric Corp | 信号伝送方式 |
-
2003
- 2003-03-26 JP JP2003581023A patent/JP2005521938A/ja active Pending
- 2003-03-26 AU AU2003223382A patent/AU2003223382A1/en not_active Abandoned
- 2003-03-26 WO PCT/US2003/009576 patent/WO2003083667A1/en active Application Filing
- 2003-03-26 EP EP03719504A patent/EP1493086A4/en not_active Withdrawn
- 2003-03-26 CN CNB038119307A patent/CN1306413C/zh not_active Expired - Lifetime
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1145704A (zh) * | 1995-01-19 | 1997-03-19 | 诺基亚电信公司 | 在移动通信系统中同步电信连接 |
US6052735A (en) * | 1997-10-24 | 2000-04-18 | Microsoft Corporation | Electronic mail object synchronization between a desktop computer and mobile device |
US6151606A (en) * | 1998-01-16 | 2000-11-21 | Visto Corporation | System and method for using a workspace data manager to access, manipulate and synchronize network data |
CN1289515A (zh) * | 1998-01-30 | 2001-03-28 | 艾利森电话股份有限公司 | 建立加密连接的方法和设备 |
US6219694B1 (en) * | 1998-05-29 | 2001-04-17 | Research In Motion Limited | System and method for pushing information from a host system to a mobile data communication device having a shared electronic address |
US6226618B1 (en) * | 1998-08-13 | 2001-05-01 | International Business Machines Corporation | Electronic content delivery system |
Also Published As
Publication number | Publication date |
---|---|
EP1493086A4 (en) | 2006-09-20 |
AU2003223382A1 (en) | 2003-10-13 |
JP2005521938A (ja) | 2005-07-21 |
EP1493086A1 (en) | 2005-01-05 |
WO2003083667A1 (en) | 2003-10-09 |
CN1656454A (zh) | 2005-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1306413C (zh) | 用于对数据处理设备与数据服务进行全无线同步的系统和方法 | |
US7243163B1 (en) | System and method for full wireless synchronization of a data processing apparatus with a messaging system | |
US7064688B2 (en) | System and method for compressing data on a bandwidth-limited network | |
US7155483B1 (en) | Apparatus and method for conserving bandwidth by batch processing data transactions | |
US20100254410A1 (en) | System and method for compressing data using field-based code word generation | |
CN1229949C (zh) | 用无线通信设备准备和发送电子邮件通信的系统和方法 | |
AU749883B2 (en) | Processing and forwarding messages from a computer network to a forwarding service | |
AU2007200208A1 (en) | Method and system for messaging across cellular networks and a public data network | |
CN1474585A (zh) | 用于在移动设备上启动即时消息传送的系统和方法 | |
CN1436413A (zh) | 将信息从主机系统推送到移动数据通信设备的系统和方法 | |
CN101043519A (zh) | 网络存储系统 | |
CN1437819A (zh) | 用于定制业务调用中的行为和接口的系统 | |
CN100566302C (zh) | 电子邮件显示方法及系统 | |
CN100340092C (zh) | 在无线数据网中从主系统向移动数据通信设备发送信息的系统及方法 | |
CN1173275C (zh) | 设置信息终端中的通信参数的装置和方法 | |
US7308252B2 (en) | Mobile communications device employing multiple data storage locations for electronic messages | |
CN1297122C (zh) | 利用mms实现在移动终端上收发电子邮件的系统和方法 | |
CN1941927A (zh) | 向电信网络节点的数据分发 | |
CN1195277C (zh) | 即时消息传送帐户系统 | |
CN1941749A (zh) | 基于移动即时通信服务的即时电子邮件收发系统 | |
US20060123135A1 (en) | Method and system for uniform message interchange | |
CN1357836A (zh) | 提高短消息调度中心消息处理能力的方法 | |
CN101465820A (zh) | 消息发送系统及方法 | |
CN101252699A (zh) | 群发短信的系统及其实现方法 | |
US7046770B2 (en) | Multimedia messaging system and method for controlling message procedures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20070321 |