CN101454769B - 在客户机设备与服务器设备之间同步数据的方法和系统 - Google Patents

在客户机设备与服务器设备之间同步数据的方法和系统 Download PDF

Info

Publication number
CN101454769B
CN101454769B CN2007800190714A CN200780019071A CN101454769B CN 101454769 B CN101454769 B CN 101454769B CN 2007800190714 A CN2007800190714 A CN 2007800190714A CN 200780019071 A CN200780019071 A CN 200780019071A CN 101454769 B CN101454769 B CN 101454769B
Authority
CN
China
Prior art keywords
server
client devices
data item
structured content
server apparatus
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 - Fee Related
Application number
CN2007800190714A
Other languages
English (en)
Other versions
CN101454769A (zh
Inventor
D·B·维特利欧
J·费雷拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101454769A publication Critical patent/CN101454769A/zh
Application granted granted Critical
Publication of CN101454769B publication Critical patent/CN101454769B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Abstract

描述了同步结构化网站内容的技术。一种装置可包括具有服务器同步模块的服务器,该服务器同步模块标识服务器和客户机共享的结构化内容类型,并同步对应于该结构化内容类型的结构化内容。对其它实施方式也予以描述并主张权利。

Description

在客户机设备与服务器设备之间同步数据的方法和系统
背景 
网络软件应用程序通常维护用于应用程序和/或用户数据的集中式网络数据库。在某些情况下,设备可以从网络数据库下载或复制中央数据库的子集,然后从网络断开连接。例如,无线手持式设备可以从诸如网站等中央数据库下载日历和联系人信息。如果网络数据库所维护的信息被修改,或者复制的信息子集本身被修改,则可能需要同步事件来更新两个数据位置中的这些改变。例如,假定用户向日历应用程序添加了新约会。当手持式设备建立了与网络数据库的连接时,可能需要更新网络数据库所存储的日历信息以反映来自手持式设备的修改的数据,反之亦然。然而,随着应用程序数据数量以及试图与网络数据库同步的设备的数目的增加,同步事件可能变得需要越来越多的时间和带宽。因此,可能需要改进的同步技术来解决这些和其它问题。 
概述 
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。 
各实施例一般涉及用于在物理或逻辑实体之间同步结构化内容的技术。更具体而言,各实施例涉及客户机和服务器之间的同步技术。例如,在某些实施例中,可在同步操作之前标识在服务器和客户机之间共享的某些结构化内容类型。一旦被标识,然后可同步对应于该结构化内容类型的结构化内容。以此方式,同步可以集中于如由结构化内容类型所标识的共享的结构化内容,而非客户机和/或服务器存储的全部数据集。因此,可减少同步时间和资源,由此对于用户增强总体设备操作和网络服务。 
在一个实施例中,客户机可以执行发现或标识操作。例如,服务器可以接收对服务器内容列表的请求。服务器可以检索并发送具有表示服务器所支持的 结构化内容类型的结构化内容值的服务器内容列表。客户机可以接收该服务器内容列表,并将该服务器内容列表与具有表示客户机所支持的结构化内容类型的结构化内容值的客户机内容列表进行比较。客户机可以发送同步请求和/或共享内容列表以同步服务器和客户机所支持的结构化内容类型。服务器可接收同步请求和/或共享内容列表,并相应地执行同步操作。 
在一个实施例中,服务器可以执行发现或标识操作。例如,服务器可以接收客户机内容列表。服务器可以检索服务器内容列表,并比较两个内容列表。服务器可以根据比较生成具有表示客户机和服务器所支持的结构化内容类型的结构化内容值的共享内容列表。服务器可以将该共享内容列表发送给客户机。客户机可以接收该共享内容列表,并发送根据该共享内容列表来同步结构化内容类型的同步请求。服务器可以接收该同步请求,并根据同步请求来执行同步操作。对其它实施例也予以描述并主张权利。 
附图 
图1示出网络的示例性实施例。 
图2示出一逻辑流程的示例性实施例。 
图3示出第一消息流的示例性实施例。 
图4示出第二消息流的示例性实施例。 
详细描述 
图1示出网络的一个示例性实施例。图1示出网络100的框图。网络100可以表示适用于实现各种实施例的通用网络体系结构。网络100可以包括多个元素。元素可以包括被安排来执行特定操作的任何物理或逻辑结构。视给定的一组设计参数或性能约束的需要,每一元素可被实现为硬件、软件、或其任意组合。硬件元素的示例可以包括处理器、微处理器、电路、电路元素(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件的示例可以包括任何软件组件、程序、应用软件、计算机程序、应用程序、系 统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、接口、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、文字、值、符号、或其任意组合。虽然图1中示出的网络100在特定拓扑中具有有限数量的元素,但可以理解,网络100视给定实现所需在另选拓扑中可以包括更多或更少元素。各实施例在该上下文中不受限制。 
例如,如图1所示,网络100可以包括各种元素,如计算阵列140、服务器150、网络160、负载均衡器170、和客户机设备180-1-s。例如,在一实施例中,服务器150可以被实现为web服务器。web服务器可以包括能够接受来自客户机设备(例如,客户机180-1-s和/或计算设备122-1-n)的超文本传输协议(HTTP)请求以提供网页的计算设备。网页通常是使用诸如超文本标记语言(HTML)、可扩展标记语言(XML)、可扩展超文本标记语言(XHTML)、MICROSOFT WORD
Figure G2007800190714D0003093446QIETU
标记语言(WordML)等某种形式的标记语言生成的文档。网络160可以包括使用诸如传输控制协议和网际协议(TCP/IP)等一种或多种因特网协议的分组网络。负载平衡器170可以包括以计算资源被以高效的方式使用的方式向一组联网的计算机服务器(例如,计算阵列140)分派工作负载的设备。负载平衡器170可以使用例如计算机、服务器、虚拟服务器、网络设备等来实现。 
在各实施例中,网络100可包括各种计算设备。例如,在各实施例中,计算阵列140可以包括多个计算设备122-1-n。类似地,客户机设备180-1-s也可被实现为各种类型的计算设备。计算设备的示例可包括,但不一定限于,计算机、计算机系统、计算机子系统、工作站、终端、服务器、web服务器、虚拟服务器、个人计算机(PC)、台式计算机、膝上型计算机、超膝上型计算机、便携式计算机、手持式计算机、个人数字助理(PDA)、移动计算设备、蜂窝电话、组合蜂窝电话/PDA、数字视频设备(例如,数码相机、视频摄像机、或摄像放像一体机)、数字音频设备(例如,MP3播放器)、单向寻呼机、双向寻呼机、上述示例中任一个的虚拟实例化、以及任何其它电子、机电或电气设备。各实施例在该上下文中不受限制。 
例如,在一实施例中,计算阵列140可被实现为服务器场,其中计算设备 122-1-n的每一个都表示服务器、虚拟服务器、虚拟机、单板计算机(SBC)、服务器刀片、web服务器等。服务器场一般是通常由公司维护以实现超出一个机器的能力的服务器需求的计算机服务器的集合。通常,服务器场将主服务器和后备服务器两者同时分配给单个任务,以便在主服务器发生故障的情况下,后备服务器将接管主服务器的功能。例如,服务器场通常被用来提供web主存服务。web主存服务是向个人和组织提供在线系统以供存储信息、图像、视频、音频、文本、动画、电影、图片或可经由万维网(WWW或“web”)访问的任何其它形式的web内容的一类因特网主存服务。web主机是在其拥有的服务器上提供空间以供其客户机使用以及提供因特网连接的公司,通常位于数据中心中。web主机还可以为其不拥有的、位于其数据中心中的服务器提供数据中心空间和到因特网的连接。 
图1还示出计算设备122-1的更详细的框图。计算设备122-1可以表示任何计算设备122-1-n。此外,计算设备122-1也可以表示任何客户机设备180-1-s。在其最基本的配置106中,计算设备122-1通常包括至少一个处理单元102和存储器104。存储器104可以使用机器可读的或计算机可读的、能够存储数据的任何介质来实现,包括易失性和非易失性存储器。例如,存储器104可以包括只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、诸如铁电聚合物存储器等聚合物存储器、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、或适于存储信息的任何其它类型的介质。如图1所示,存储器104可以存储各种软件程序,如一个或多个应用程序118、服务器同步模块120和附带数据。 
计算设备122-1还可以具有在配置106之外的另外的特征和/或功能。例如,计算设备122-1可以包括可移动存储108和不可移动存储110,这些存储还可以包括如前所述的各种类型的机器可读的或计算机可读的介质。计算设备122-1还可以具有一个或多个输入设备114,如键盘、鼠标、笔、语音输入设备、触摸输入设备等。诸如显示器、扬声器、打印机等一个或多个输出设备116 也可以被包括在计算设备122-1中。 
计算设备122-1还可以包括允许计算设备122-1与其它设备进行通信的一个或多个通信连接112。通信连接112可以包括各种类型的标准通信元件,如一个或多个通信接口、网络接口、网络接口卡(NIC)、无线电、无线发射机/接收机(收发机)、有线和/或无线通信介质、物理连接器等。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任意信息传送介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非局限,通信介质包括有线通信介质和无线通信介质。有线通信介质的示例可以包括导线、电缆、金属线、印刷电路板(PCB)、背板、交换光纤、半导体材料、双绞线、同轴电缆、光纤、经传播的信号等。无线通信介质的示例可以包括声学、射频(RF)频谱、红外和其它无线介质。此处使用的术语机器可读介质和计算机可读介质旨在包括存储介质和通信介质两者。 
计算设备122-1-n的每一个都可以包括多个数据库。如参考计算设备122-1详细示出的,计算设备122-1可以被耦合到数据库124、126。每一数据库可被安排成存储用于计算设备122-1、应用程序118、服务器同步模块120等的各种类型的数据。例如,在一个实施例中,数据库124可以存储客户机内容列表130、服务器内容列表132、共享内容列表134等等。客户机内容列表130可以包括表示诸如一个或多个客户机180-1-s等客户机所支持的结构化内容类型的结构化内容值。服务器内容列表132可以包括表示诸如一个或多个服务器122-1-n等服务器所支持的结构化内容类型的结构化内容值。共享内容列表134可以包括表示一个或多个客户机180-1-s和一个或多个服务器122-1-n共享的结构化内容类型的结构化内容值。可以用计算设备122-1来实现其它类型的数据和数据库,且这些实施例在该上下文中不受限制。 
在一般的操作中,网络100可以帮助由计算阵列140的一个或多个计算设备122-1-n存储或执行的一个或多个应用程序与由一个或多个客户机设备1801-s存储或执行的一个或多个应用程序之间的同步操作。假定计算设备122-1-n的每一个都实现一个或多个应用程序118,如基于服务器的web应用程序。基于服务器的web应用程序的示例可包括
Figure G2007800190714D00051
公司生产的
Figure G2007800190714D00061
SERVICES(WSS)2.0版、3.0版以及各种变体(此处统称为“WSS应用程序”或“SharePoint应用程序”)。WSS3.0版是例如向诸如客户机180-1-s等各客户机提供基本团队服务、门户网站和内联网功能的集成的应用程序套件。用于WSS3.0版的用户数据或内容数据可由数据库124、126存储。此外,一个或多个计算设备122-1-n可以实现构建在WSS3.0版之上的第三方应用程序,例如,诸如SharePoint门户服务器(SPS)2003或Office SharePoint服务(OSS)2006。虽然作为示例参考WSS应用程序和附带的第三方程序描述了一些实施例,但可以理解,可以使用此处描述的同步技术来同步由单个或多个计算设备执行的任何应用程序。各实施例在该上下文中不受限制。 
WSS3.0版提供了供多个用户以高效的方式共享数据的平台。例如,用户可以被组织成团队,每一团队具有共享日历、联系人列表、任务列表、电子邮件、讨论板、文档等等。为了增加这些共享数据的可用性,网络100的各元素可以被组织为间歇同步数据库系统(ISDB)。ISDB例如允许各种物理或逻辑客户机实体从数据库124、126将信息部分下载或复制到诸如客户机设备180-1等客户机设备。假定客户机设备180-1包括诸如微软公司生产的MICROSOFTOUTLOOK
Figure 2007800190714100002G2007800190714D0003093446QIETU
等应用程序。Microsoft Outlook可以从如使用WSS3.0版维护的服务器122-1导入共享数据。因此,用户可具有诸如手持式计算设备等执行Microsoft Outlook的本地版本的便携式设备,并从服务器122-1下载共享数据的各部分。客户机设备180-1可以在没有到服务器122-1的恒定连接(例如,在线)的情况下修改本地复制的数据,诸如通过添加约会、删除联系人、修改任务、生成笔记、更新项目时间线等来修改。同时,其它用户也可修改来自数据库124、126的本地复制的数据。为了维持数据完整性,客户机设备180-1可能需要周期性地或间歇地与服务器122-1同步以反映对在两个设备之间共享的任何结构化内容或数据集的改变。 
为了执行同步操作,每一客户机设备180-1-s可以包括客户机同步模块182,并且每一服务器122-1-n可以包括服务器同步模块120。同步模块120、182可以具有变化的集成水平以允许服务器122和客户机设备180分别同步两个设备支持的结构化内容或数据集。例如,在一个实施例中,客户机设备180 可以包括由服务器122执行的WSS应用程序在同一层集成的Microsoft Outlook客户机应用程序。这一集成可以包括在Microsoft Outlook和WSS应用程序之间同步数据。例如,WSS应用程序可包括存储在WSS应用程序中的共享日历、联系人、任务、电子邮件以及讨论板。各实施例可定义用户模型、驱动程序、规范、数据模式以及同步基础结构以供Microsoft Outlook的用户与WSS应用程序数据交互。尽管仅作为示例,某些实施例可被描述为在Microsoft Outlook和WSS应用程序之间同步结构化内容,但可以理解,结构化内容的同步可以视给定一组设计参数和性能约束对任何应用程序和计算平台实现。各实施例在该上下文中不受限制。 
当试图同步诸如服务器122-1和客户机设备180-1等两个或多个应用程序和/或设备时有若干设计考虑事项。例如,为将网站用作中央数据存储库,数据应被快速同步到其它应用程序而同时在网站服务器上生成最小负载。此外,用户通常仅对总体数据中的小范围感兴趣,且因此用户需要可被容易发现的位置来开始对于感兴趣的相关数据的同步操作。另外,不同同步客户机只能与来自服务器的特定类型的数据同步。类似地,某些同步客户机可以支持网站服务器不支持的数据类型或值,而网站服务器可以支持同步客户机不支持的数据类型或值。在另一示例中,网站和同步客户机可以用不同的语言来运行。在又一示例中,多个同步客户机可能在不连接到服务器的同时更新相同的数据,因此需要采取措施来确保数据在同步事件期间不丢失。在再一示例中,用户需要与在专用网络和诸如因特网等公共网络两者内的网站同步。在还有一个示例中,同步来自服务器的内容的客户机不能准确地预测内容会以什么频率改变,导致服务器上的额外负载或同步的客户机上的陈旧内容。最后,服务器管理员希望能够控制通过同步客户机而在服务器上生成的负载。 
为了解决这些和其它问题,服务器122和/或客户机设备180可以利用结构化内容来实现改进的同步技术。结构化内容可以涉及具有诸如宽度、长度、位大小、字节大小、句法、字段、值、代码、标志等一个或多个定义的结构参数的任何类型的媒体内容(例如,文本、音频、视频、图像、图片、动画、符号、字符、数字、图标等等)。结构化内容可包括支持诸如MICROSOFTOUTLOOK、MICROSOFT 
Figure G2007800190714D00071
MICROSOFT  MICROSOFT 
Figure G2007800190714D00081
 MICROSOFT 
Figure G2007800190714D00082
 MICROSOFTWORD、MICRO SOFT
Figure G2007800190714D00083
WSS应用程序、SPS应用程序等任意数目的应用程序的应用程序数据和/或用户数据。例如,在一个实施例中,结构化内容可包括用于Microsoft Outlook的应用程序数据和/或用户数据,诸如来自日历列表、任务列表、联系人列表、笔记或备忘录列表、邮件列表等的一个或多个项。服务器同步模块120和客户机同步模块182可被集成以标识在服务器122和客户机180之间共享的结构化内容类型。对应于在服务器122和客户机180之间共享的结构化内容类型的结构化内容信息然后可被同步。 
使用结构化内容来执行同步操作可以提供优于常规的同步技术的若干优点。例如,在各实施例中,设备之间的发起同步操作可以用多种方式来改进。例如,可以为同步客户机生成网络地址和/或超链接以发起基于服务器和/或客户机支持的特定内容类型的同步操作。可生成不同超链接以发起对不同内容范围的同步操作。在另一示例中,同步操作可以基于所同步的内容的数量(例如,仅同步标题对比同步整个内容集)来不同地发起。在又一示例中,可使用协议处理程序来从web浏览器发起同步操作。 
一旦发起了同步操作,各实施例可改进内容实际如何被同步。例如,可使用服务器侧改变日志来仅同步改变的内容。可来回传递令牌以仅获得自从前一同步事件以来做出的新改变。在另一示例中,同步操作可以仅支持结构化模式中个别地请求或定义的字段。在又一示例中,同步操作可以支持诸如在文件夹分层结构中创建的不同分层范围。在再一示例中,可以生成同步视图以显示由各字段值确定的经过滤的内容集。在还有一示例中,某些实施例可以支持使用分页技术对非常大的数据集的同步。在另一示例中,某些实施例可以使用版本历史来执行冲突检测和自动解决。在又一示例中,某些实施例可以支持使用“E标签”来进行冲突解决的附件同步。在另一示例中,某些实施例可使用特性包(property bag)支持同步网站和客户机之间的模式失配。在又一示例中,某些实施例可使用字段值映射支持服务器/客户机语言失配。在再一示例中,某些实施例可使用读/发送/刷新模式支持读取和更新。最后,某些实施例可向客户机提供其可同步来访问来自内部专用网络或外部公共网络的网站的替换统一资源定位符(URL)。
为进一步改进同步操作,各实施例可改进关于何时将客户机设备与网站同步的定时问题。例如,某些实施例可以通过向同步客户机提供建议的同步间隔(例如,每隔P分钟的客户机同步)来管理客户机负载和/或服务器负载。建议的同步间隔可以表示最小同步间隔、最大同步间隔或两者之间的某一值。建议的同步间隔可以基于存储在服务器上的历史内容改变数据(例如,网格同步),或基于来自客户机的先前的同步请求的结果(例如,指数型衰减)。 
为了与服务器122同步结构化内容,客户机设备180可使用SharePoint.StssyncHandler ActiveX控件。该控件被安装在具有Microsoft Outlook的客户机设备180上,并指示客户机设备180上是否安装了Microsoft Outlook且能够同步特定类型的列表。例如,在WSS3.0板中,可被同步的列表的类型包括日历列表、联系人列表、文档列表、任务列表、讨论列表以及其它列表。 
以上各实施例的操作可以参考以下附图和所附示例来进一步描述。一些附图可以包括逻辑流程。虽然此处呈现的这些附图可以包括特定的逻辑流程,但可以理解,逻辑流程仅仅提供如何实现此处描述的一般功能的示例。此外,除非另外指明,否则给出的逻辑流程不必要以所呈现的顺序执行。另外,给出的逻辑流程可由硬件元素、由处理器执行的软件元素、或其任意组合来实现。各实施例在该上下文中不受限制。 
图2示出逻辑流程的一个实施例。图2示出逻辑流程200。逻辑流程200可以表示此处描述的诸如网络100、计算设备112-1-n和/或客户机设备180-1-s等一个或多个实施例所执行的操作。例如,在某些实施例中,可在框202处在同步操作之前标识在服务器和客户机之间共享的某些结构化内容类型。一旦被标识,然后可在框204处同步对应于该结构化内容类型的结构化内容。以此方式,同步可以集中于如由结构化内容类型所标识的共享的结构化内容,而非客户机和/或服务器存储的全部数据集。因此,可减少同步时间和资源,由此对于用户增强总体设备操作和网络服务。 
图3示出第一消息流的一个实施例。图3示出其中客户机执行标识操作的消息流300。如图3所示,客户机设备180可向服务器122发送消息302,其中消息302包括对服务器内容列表的请求。服务器122可以接收消息302,并从数据库124中检索服务器内容列表132。服务器122可以向客户机设备180 发送消息304,其中消息304包括具有表示服务器122所支持的结构化内容类型的结构化内容值的服务器内容列表132。客户机设备180可接收服务器内容列表132,并检索客户机内容列表130。客户机内容列表130可包括表示客户机所支持的结构化内容类型的结构化内容值。客户机设备180可以将服务器内容列表132与客户机内容列表130进行比较以找出匹配的内容类型。客户机设备180可以生成共享内容列表134,并向服务器122发送消息306。消息306可以包括同步请求和/或共享内容列表134。服务器122可以接收消息306,并且服务器122和客户机设备180可以开始同步操作以如箭头308所示地同步服务器122和客户机180所支持的结构化内容类型。 
图4示出第二消息流的一个示例性实施例。图4示出其中服务器执行标识操作的消息流400。如图4所示,服务器122可以经由消息402来接收客户机内容列表130。服务器122可检索服务器内容列表132,并比较两个内容列表。服务器122可以根据比较生成具有表示客户机设备180和服务器122所支持的结构化内容类型的结构化内容值的共享内容列表134。服务器122可经由消息404将共享内容列表134发送给客户机设备180。客户机设备180可以接收共享内容列表134,并经由消息406发送根据共享内容列表134来同步结构化内容类型的同步请求。服务器122可接收该同步请求,并且服务器122和客户机设备180可以如箭头408所示地根据该同步请求来执行同步操作。 
在各实施例中,设备之间的发起同步操作可以用多种方式来改进。例如,可以为同步客户机生成网络地址和/或超链接以基于服务器和/或客户机支持的特定内容类型来发起同步操作。可生成不同超链接以发起对不同内容范围的同步操作。在一个实施例中,服务器同步模块120可以生成一超链接以发送具有至少一个结构化内容类型的同步请求。结果,用户可用无缝的方式选择性地与服务器122同步特定的结构化内容类型。 
在各实施例中,同步操作可以基于所同步的内容数量来不同地发起。例如,在一个实施例中,服务器同步模块120可以确定要同步的结构化内容的数量。服务器同步模块120可以基于所确定的数量来设置同步参数。服务器122-1可以根据同步参数向客户机180-1发送同步信息。例如,假定结构化内容类型是电子邮件消息。如果所确定的数量是要在服务器122-1和客户机180-1之间同 步的较大量电子邮件消息,则服务器122-1可以设置一同步参数以指示最初只需同步电子邮件标题而非整个电子邮件内容。相反,如果所确定的数量是较少量的电子邮件消息,则服务器122-1可以设置一同步参数以指示要与客户机180-1同步整个电子邮件内容。在另一示例中,假定结构化内容类型是文档。如果所确定的数量是要在服务器122-1和客户机180-1之间同步的大量文档,则服务器122-1可以设置一同步参数以指示最初只需同步每一文档的特定部分而非每一文档的全部正文。相反,如果所确定的数量是较少量的文档,则服务器122-1可以设置一同步参数以指示要与客户机180-1同步每一文档的全部内容。该同一技术也可通过检查文档的总大小来应用,其中较大的文档每次仅发送一部分,而较小的文档在一次交易中全部发送。这些仅是几个示例,并且可使用结构化内容类型的其它特征来设置同步参数。 
在各实施例中,可使用协议处理程序来从web浏览器发起同步操作。一旦标识了共享结构化内容类型,则客户机180-1上的web浏览器可以提供一个或多个URL来如上所述地发起同步操作。为此,客户机同步模块182可使用协议处理程序来向服务器122-1发送不同的同步请求。 
一旦发起了同步操作,各实施例可改进内容实际如何被同步。例如,可使用服务器侧改变日志来仅同步改变的内容。例如,在一个实施例中,服务器同步模块120可以接收同步特定结构化内容类型的同步请求。服务器同步模块120可以使用改变日志来确定该结构化内容类型所指示的结构化内容是否已被修改。服务器122-1可以基于该确定向客户机发送同步信息。 
对于读/写同步,Microsoft Outlook需要定义的技术来从WSS应用程序同步改变。这可使用改变日志和附带的web服务API来实现。例如,WSS3.0版支持按虚拟服务器、站点和列表的改变日志。这将允许Microsoft Outlook能够特别地轮询增加的、编辑的、删除的、重命名的和移动的项。另外,可以实现web服务来允许Microsoft Outlook执行对改变日志项的“成批”获取。 
各实施例可使用版本历史来确定结构化内容的多个版本是否已被独立修改。某些实施例可以使用版本历史来执行冲突检测和自动解决。版本历史是用于在对等环境中自动解决一类特定同步冲突的机制。特别地,它可自动解决因对一个项的一致的顺序改变而引起的冲突。
作为示例,假定第一用户将一个项同步到第一客户机设备180-1,诸如在办公室使用的台式计算机。第一用户对该项做出一些改变,但是没有将这些改变复制回服务器122-1。第一用户将第一客户机设备180-1与诸如PDA等第二客户机设备180-2同步,并离开办公室回家。当第一用户到家时,该第一用户将第二客户机设备180-2与诸如家庭PC等第三客户机设备180-3同步。第一用户对该项做出进一步的改变,之后将其从第三客户机设备180-3同步到服务器122-1。第二天,第一用户上班并将第一客户机设备180-1与服务器122-1同步。第一客户机设备180-1试图将其具有的更新的项发送给服务器122-1,但是服务器122-1检测到自从与第一客户机设备180-1的前一次同步以来对该项有改变,因此引发冲突。然而,该冲突并不是真正的冲突,因为驻留在服务器122-1上的该项的更新的版本在第一用户将第三客户机设备180-3与服务器122-1同步时已经包括了在第一客户机180-1上做出的改变某些实施例可使用版本历史来检测此类情形并自动解决该冲突。 
在以上情形中,项上的单个版本号可能不足以解决冲突。例如,如果第一用户未从第三客户机设备180-3与服务器122-1同步将会如何。相反,假定第二用户对该项做出了不相关的改变。在这一情况下,的确存在冲突。单个版本号不足以区分这两种情形。版本历史技术存储了帮助解决这一问题的附加信息。 
特别地,可使用版本历史技术来确定是否有一个项的多个版本(例如,版本A和版本B),以及一个版本是否包括在另一版本中做出的改变(例如,版本B是否包括在版本A中做出的改变)。在这一情况下,所述项的文本检查被证明是困难且不准确的。例如,考虑其中版本B的确包括来自版本A的改变,然而版本B中的改变之一是移除在版本A中添加的行的情形。 
可使用版本历史技术来记录作者列表以及对每一作者的递增的改变号码,该改变号码指示这些作者依次做了什么改变。这一情况下的“作者”是由全局用户标识符(GUID)表示的计算机。版本历史特性因此可包括候选GUID列表和改变号码,如下: 
{199A4AEA-A573-40CB-BB3C-7A66C0375104:1,201B4AEA-A573-40CB-BB3C- 7A66C0375104:2,185D4AEA-A573-40CB-BB3C-7A66C0375104:3} 
每次一特定计算设备编辑一给定项,适当的同步模块(例如,同步模块120和/或182)取上一个改变号码,将其递增一,然后将其写在其GUID旁边。通过比较每一版本的最高改变集,在版本A和版本B之间自动解决了冲突。“最高改变集”可以包括具有最高号码的GUID和号码的对。如果版本A的最高改变集被包括在版本B中,并且版本B的最高改变集没有被包括在版本A中,则版本B较新,并且解决冲突以使版本B为胜者。然而,如果版本A的最高改变集未被包括在版本B中且版本B的最高改变集未被包括在版本A中,则版本B不包括在版本A中做出的所有编辑。在这一情况下用户将需要手动解决冲突。 
继续上面的示例,假定第一用户将一项目向下同步到第一客户机设备180-1。服务器同步模块120可以在数据库124中维护版本历史。客户机同步模块182也可在客户机设备180-1-s上维护版本历史。此时,该版本历史可表现如下: 
版本历史:{服务器_GUID:1} 
第一用户然后在第一客户机设备180-1上编辑该项目。该版本历史现在可表现如下: 
版本历史:{服务器_GUID:1,工作_GUID:2} 
第一用户将该项目同步到第二客户机设备180-2,然后从第二客户机设备180-2同步到第三客户机设备180-3。由于没有对该项目的编辑,因此在版本历史中没有相应的改变。第一用户在第三客户机设备180-3上编辑该项目。该版本历史被更新如下: 
版本历史:{服务器_GUID:1,工作_GUID:2,家_GUID:3}
第一用户从第三客户机设备180-3同步到服务器122-1。 
第一用户第二天回去上班并将第一客户机设备180-1与服务器122-1同步。第一客户机设备180-1上的客户机同步模块182可以具有如下版本历史: 
{服务器_GUID:1,工作_GUID:2} 
服务器122-1上的服务器同步模块120可以具有如下版本历史: 
{服务器_GUID:1,工作_GUID:2,家_GUID:3} 
对于版本A和版本B的版本历史的比较揭示A中的最高改变集(工作GUID:2)被包括在版本B中,但是版本B的最高改变集(家_GUID:3)不被包括在版本A中。服务器同步模块120因此知道版本B包括了对版本A做出的所有编辑,但是版本A不包括在版本B中做出的所有改变。版本B是版本A的超集,因此在冲突中获胜。 
然而,假定第一用户从未从第三客户机设备180-3与服务器122-1同步,而是第二用户对驻留在服务器122-1上的该项目做出了改变。可使用版本历史来检测此情形中的冲突。在这一情况下,第四客户机设备180-4的客户机同步模块182可以具有以下版本历史: 
{服务器_GUID:1,工作_GUID:2} 
同时,服务器122-1的服务器同步模块120可以具有以下版本历史: 
{服务器_GUID:1,用户2_工作_GUID:2} 
对版本A和版本B的版本历史的比较现在揭示版本A中的最高改变集(工作_GUID:2)未被包括在版本B中,且版本B中的最高改变集(用户2_工作_GUID:2)未被包括在版本A中。因此,版本B不是版本A的超集,版本A 不是版本B的超集,且服务器同步模块120检测到需要解决的真正冲突。 
各实施例可使用特性包来检测数据模式冲突。某些实施例可使用特性包支持服务器122和客户机180之间的模式失配。特性包可以指应用程序和/或设备使用的各种数据模式的一组字段定义。特性包可用于在按需的基础上定义字段而非一组固定或硬编码的字段。例如,客户机设备180执行的Microsoft Outlook的任务模式可能需要服务器122的WSS应用程序不可用的某些字段,反之亦然。特性包可用于在特设的基础上为可同时由Microsoft Outlook和WSS应用程序两者使用的各种列表或应用程序定义字段。以此方式,服务器122和客户机180之间的模式失配可被纠正而不必更新或修改两个设备执行的实际应用程序。 
各实施例可以使用字段值映射来检测语言冲突。某些实施例可以使用字段值映射来支持服务器122-1和客户机180-1之间的语言失配。该特征对于支持其中客户机设备180-1和服务器122-1不使用同一语言的国际情形是合乎需要的。例如,Microsoft Outlook具有基于“状态”字段和“优先级”字段的值来执行任务的逻辑。服务器122-1可以基于服务器的语言将不同的值写入这些字段中。例如,在英语语言中,状态字段可以包括诸如“Not Started”(未开始)、“Deferred”(推迟)、“Completed”(完成)等表达式。Microsoft Outlook需要知道如何可靠地将这些值映射到其理解的值。在一个实施例中,可以向Microsoft Outlook能使用的列表的模式添加映射部分以将写入的值映射到其理解的值。 
各实施例可使用一种或多种分页技术来同步结构化内容类型。某些实施例可以使用各种分页技术来支持服务器122-1和客户机180-1之间非常大的数据集的同步。为增强服务器122-1和客户机180-1的性能,可使用页请求来获得在列表中已经改变的一组项。服务器122-1可以仅返回最后Q个项(例如,最后100个项)而非返回已经改变的所有项。该特征在客户机180-1具有到服务器122-1的较慢的通信连接或在服务器122-1在列表中具有数千或数百万个项时特别有用。大量的项可造成性能瓶颈,尤其是在例如在客户机设备180-1和服务器122-1上的Microsoft Outlook之间同步地址簿结构化内容类型的时候。 
给定的分页技术可以用任意数量的方式来实现。例如,在一个实施例中, 服务器同步模块120可以被安排成支持GetListChangesSinceToken(获取自从令牌以来的列表改变)web服务上称为“rowLimit”(行限制)的特性,该特性指定要返回的项的最大数目。例如,“rowLimit=100”将返回自从改变令牌的值以来已经更新的前100个项。如果未指定该特性,则将返回自从改变令牌以来改变的所有项。 
当服务器122-1的WSS应用程序接收到具有项限制的请求时,删除操作可被排除在项限制之外。可在列表查询中传递一参数以限制返回给rowLimit的项的个数。如果少于该数目的项改变,则将随着项一起返回更新的改变令牌。然而,如果多于该数目的项改变,则不更新改变令牌,并且可返回最初传入的相同的改变令牌。也可返回ListItemCollectionPositionNext(列表项集合下一位置)的值。在接收到ListItemCollectionPositionNext的值时,客户机设备180-1应重新查询服务器122-1,同时发送改变令牌和该值两者。服务器122-1将运行一新查询以返回从ListItemCollection PositionNext的开头开始的下rowLimit个项。该“如果”框然后可按需重新执行。 
值得注意的是,客户机180-1需要确保在处理更新之前处理删除。在客户机180-1接收到对已经删除的项的删除的情况下,它应抑制该错误并继续。在客户机180-1尝试对已经在服务器122-1上删除的项的更新的情况下,客户机180-1应抑制该错误并继续操作。 
各实施例可向客户机180-1提供其可用于经由内部专用网络或外部公共网络(例如,公共因特网)与服务器122-1同步的替换URL。例如,在一个实施例中,服务器同步模块120可以生成第一网络地址从内部专用网络发送具有至少一个结构化内容类型的同步请求,并生成第二网络地址以从外部公共网络发送具有至少一个结构化内容类型的同步请求。第一和第二地址可包括例如使用超链接实现的URL。 
作为示例,服务器同步模块120可被安排成响应于同步请求传送具有返回数据的替换域映射。这允许其中用户导航到专用网络(例如,企业内联网)内的列表并将该列表同步到诸如Microsoft Outlook等本地应用程序的情形。用户然后回家,使用远程过程调用(RPC)通过超文本传输协议(HTTP)连接到邮件,并期望其SharePoint列表也能同步。如果服务器122-1(例如,SharePoint 站点)也被展示在公共网络(例如,诸如因特网等外联网)上,则用户即使在该URL的域不同的情况下也能同步该列表。 
替换域映射可用任意数目的方式来实现。例如,在一个实施例中,替换域可按以下顺序返回: 
[内联网],[默认],[外联网],[因特网],[自定义] 
这些映射可在“listitems”(列表项)标签上的“AlternateUrls”(替换URL)属性中返回。如果映射不存在,则可返回相同的次序,并且为遗漏的域插入逗号如下: 
(http://intranet,https://default,https://extranet.com,,http://custom) 
这五个替换域映射都可以在中央管理中定义。域可仅包括URL的第一部分,例如““http://www.microsoft.com””或http://msw。客户机应用程序(例如,Microsoft Outlook)负责解析这些域并基于客户机设备180-1-s的状态来确定要使用哪一个。一般而言,客户机180-1应以第一个域开始并按序迭代通过其余的域。 
为进一步改进同步操作,各实施例可改进关于何时将客户机设备与网站同步的定时问题。例如,某些实施例可以通过向同步客户机提供建议的同步间隔(例如,每隔R分钟的客户机同步)来管理客户机负载。建议的同步间隔可以表示最小同步间隔、最大同步间隔或两者之间的某一值。例如,在一个实施例中,服务器同步模块120可以生成同步间隔参数。服务器同步模块120可将该同步间隔参数发送给客户机180-1。服务器122-1可以根据同步间隔参数从客户机180-1接收同步请求。 
使用建议的同步间隔可提供若干优点。对建议的同步间隔的使用可提高规模,使得大量Microsoft Outllok客户机(例如,100,000个)不会使得SharePoint服务器场(例如,计算阵列140)不可使用。例如,假定Microsoft Outlook具有使得客户机设备180-1每隔60分钟同步每一结构化内容列表的默认同步间隔。假定每一用户最终合计有10个同步的列表,则对服务器122-1的总命中 数可达每天10*24*100,000次,这算出为一天24小时每秒大约278次命中。大约每隔60分钟同步的真正简单同步(RSS)源可使该问题进一步加剧。 
可使用各种技术来减小给定服务器122-1-n上的工作负载。例如,在一个实施例中,可在前端上实现对高速缓存列表和/或站点的修改的次数。如果要求自从最后一次高速缓存的列表或站点以来的改变的请求到达服务器122-1修改的次数,则服务器122-1将知道没有改变并且可完全避免查询数据库124、126。高速缓存可能需要以某一定期的间隔,诸如例如大约每隔5分钟过期。被高速缓存的列表或站点的数目可能需要被限制以容纳存储器资源,诸如,例如大约100个列表和/或站点。 
减小给定服务器122-1-n上的工作负载的另一技术可以是实现日期/时间自适应同步技术。服务器同步模块120可以通过向客户机设备180-1发送同步间隔参数来减少给定Microsoft Outlook客户机做出的同步请求的数目,该同步检测参数基于利用将诸如工作时段、夜间时段和周末等日期/时间信息计算在内的历史列表改变数据对下一列表改变时间的概率的估计而改变。 
在各实施例中,建议的同步间隔可以基于存储在服务器上的历史内容改变数据。例如,在一个实施例中,服务器同步模块120可以基于服务器122-1存储的历史内容改变数据来为客户机180-1生成同步间隔参数。服务器同步模块120可将该同步间隔参数发送给客户机180-1。 
基于历史内容改变数据的技术的一个示例可以被称为基于网格的自适应同步(“网格同步”)。SharePoint服务器上的每一列表具有不同的使用特征。多个因素可影响列表使用且因此影响更新频率。这些因素的示例可包括列表类型、站点类型、列表大小、列表定制数量、站点用户数量、用户的地理位置和分布、对站点的总访问数、日时、站点项目的周期中的当前位置(例如,开始、中间、结束或归档)等等。多个此类因素是基于配置的,并且关于使用模式的估计可基于该数据来做出。然而,多个此类因素也是基于时间的。基于时间的因素可对使用模式有显著影响。站点通常本质是循环的,并且网站很少永远以相同的速率使用。此外,人们往往按时间表工作。因此,从晚上10点到早上6点发生的工作的量通常要少于在早上9点和下午5点之间发生的工作的量,即使每一时段都包括8小时。人们也往往不在周末工作。值得注意的是,工作的 本质和工作的地理分布能影响这些因素,并且因此适合使用模式而非试图事先对其进行硬编码是重要的。对减少对服务器的请求数同时仍满足用户期望有显著影响的提议需要涉及基于时间的算法,并且需要对人们工作且因此使用给定站点的方式是敏感的。 
从这一观点来看,一个设计考虑事项是向客户机设备180-1提供其接下来应执行同步操作的建议的时间。客户机设备180-1应仅在客户机设备180-1或服务器122-1中任一个上有改变时与服务器122-1同步。因此,可使用概率分析来确定理想同步间隔。管理员可以通过调整其希望客户机设备180-1-s重新同步的概率的阈值来以智能的方式调整网络100的行为。例如,服务器管理员可以调整该概率阈值以使客户机设备180-1在内容有10%的机率被更新时同步。如果这生成太多的服务器负载,则管理员可将该阈值调整为50%概率阈值。管理员可以继续细化该过程,直到网络性能在可接受的参数内。 
在某些情况下,对将来列表使用的概率阈值可以基于历史使用数据。列表可包括,例如一个或多个结构化内容类型的数据或项的集合。使用通常遵循模式。人自然是习惯的生物,并且结构化工作环境通常在其创建可预测性时进一步鼓励这一习惯。为表示过去的使用,时间可被划分成网格。假定一周的时间段,则y轴可具有一周的各天,而x轴可具有每天的各小时。在该网格的每一单元格中,可设置指示列表在该时间段内是否被更新的布尔值,其中“1”值表示列表在该时间段内被更新,而“0”值表示列表在该时间段内未被更新。例如,观察周一的行以及上午9:30-9:40的单元格,如果该单元格中的值是“1”,则列表在周一上午9:30到上午9:40之间的某一时刻被修改。下一个“1”可能直到周一的下午3:10-下午3:20才出现。向前移动,监视一周的站点使用提供了完整的网格。如果列表被更频繁地更新则该网格将有更多1值,并且如果列表被较不频繁地更新则具有较多的0值。假定客户机设备180-1在周一上午9:05与服务器122-1同步。在运行了查询来查看是否有任何东西改变之后,服务器122-1现在需要向客户机设备180-1做出关于其何时应执行其下一次同步事件的建议。分析历史数据,发现在周一上午9:30-上午9:40之间发生了更新。基于该历史数据,服务器122-1可以指示客户机设备180-1在上午9:30-上午9:40之间执行其下一次同步。在算法上,这可通过遍历网格直到达到1值来实现。 对于经过的每一单元格,可将单元格时间大小添加到同步之间的建议时间。在该示例中,经过了9:00-9:10单元格、9:10-9:20单元格以及9:20-9:30单元格。服务器122-1因此可以返回建议的同步间隔30分钟。 
此时,上午9:30-9:40的建议仅是起始点。更长的时间段将细化建议。继续以上示例,假定列表在第二周的上午9:22被更新。在第三周期间,客户机设备180-1再一次在上午9:05执行与服务器122-1的同步并且服务器122-1需要做出更新的建议。遍历该网格,在上午9:20-9:30单元格中有1值,并且在上午9:30-9:40单元格中有1值。该网格算法在当前单元格处开始,并随着经过每一单元格增加10分钟,直到到达具有1值的单元格。经过了上午9:00-9:10单元格,并经过了上午9:10-9:20单元格。服务器122-1现在向客户机180-1返回值20分钟。然而,基于历史证据,可生成指示列表是否在20分钟之内更新的概率。在从起始时间上午9:05到完成时间上午9:30的两个可能的周一,列表仅在一个周一被更新。基于该历史数据,概率可被计算为1/2,即50%。可向该建议的同步间隔增加10分钟,并且可再次执行概率分析。对于从起始时间上午9:05到完成时间上午9:40的两个周一的数据,列表被更新了两次。因此,对于30分钟的概率为1/2+1/2=2/2,即100%。使用更多数据得到细化的建议。现在变为关于对于服务器管理员而言客户机设备180-1-s多久一次向服务器122-1-n请求信息是轻松对比用户立即拥有最新的数据有多重要的有见识的决策。如果服务器管理员将阈值设为例如50%或更少,则服务器122-1将返回同步间隔20分钟。然而,如果阈值被设在50-100%之间,则服务器将返回同步间隔30分钟。 
生成同步间隔的概括算法可如下表示: 
P是概率 
T是用户定义的阈值 
S是每一单元格的时间跨度,在以上示例中为10分钟 
C是当前单元格计数, 
G[]是网格,假定G[0]表示当前时间处的值 
M是网格中的单元格的最大值,在以上示例中是周数
P=0; 
For(C=0;P<T;C++) 
P=P+G[C]/M; 
return C*S 
值得注意的是,返回值不必对每一客户机请求重新计算。相反,它可被高速缓存一段时间,并且直到下一时间间隔开始之前都被认为是有效的。在以上示例中,该段时间可达10分钟。 
为构建实际网格,每次当修改一个项时,检查列表的最后修改时间。如果列表的最后修改时间发生在与当前时间相同的时间跨度内,则不需要写入改变。例如,发生在上午9:00和上午9:10之间的同一时间段内的两个改变仅需要一次更新。这将写入次数保持为最小,从而有助于锁竞争和规模。如果列表的最后修改时间发生在与当前时间不同的时间跨度中,则当前时间跨度单元格中的值可被递增“1”。在某些情况下,列表的修改时间也需要被更新,尽管WSS3.0版已经处理了这一情况。 
该网格算法基于可储存多少数据以及在特定应用程序的使用中什么趋势是常见的,可以在许多维度中缩放。在x方向中,每一单元格的时间跨度可被减小到分钟,或延长到小时或更多。在y维度中,网格可被扩展为包括对于一个月的每天的不同行,或者网格可被折叠到仅表示一天的一行。实际上,它可通过具有两天来以略微更智能的方式折叠,其中一天表示工作日而另一天表示周末。如果网格表示了12小时轮班工作,则网格可具有y行,每一行表示从开始到结束的12小时轮班。 
如上所述,站点使用通常遵循可预测周期。这些周期时间段通常在几个月中缓慢变化。为细化网格算法,新近数据可能是比较旧的数据更好的指示符。例如,发生在6个月之前的周一的列表更新通常具有比发生在昨天的小的值。因此,网格算法可通过维护较大的数据集并应用基于时间对该较大集合中的数据不同地加权的函数来细化。或者,可通过使旧数据过期来更有效地使用存储器资源。例如,假定网格每8周被重置。在以上示例中定义的网格中,每一单 元格中的最大值是8。每一单元格因此可仅用3位来表示。 
然而,重置网格也移除了可影响网格算法结果的数据。该问题可通过创建从彼此偏移一时间段的两个网格来缓解。例如,第一网格可以在第1周开始记录数据,而第二网格可以在第4周开始记录数据。此时,服务器同步模块120可使用第一网格来进行概率计算。在第8周,第一网格可被重置,并且服务器同步模块120可切换到使用第二网格来执行概率计算。服务器同步模块120可以开始再次在第一网格中记录。以此方式,服务器同步模块120可以不断地从一个网格旋转到下一网格,而永远不必从头开始。在这一情况下,数据流中的不连续性以4周为间隔出现。取决于平滑度的重要性,这可通过添加更多网格来减少。例如,8个网格将导致各自有1周的更微小的不连续性。注意,该系统也可用于通过使用多个网格来生成概率来给予更新近的事件更多能量。 
为进一步改进网格算法的性能,可设置最大和最小同步间隔。最小同步间隔应可能默认为单元格跨度的大小,在以上示例中为10分钟。最大间隔的大小取决于系统中的置信度水平。两者都应可由管理员连同阈值一起来配置。这些值可被调整以在使用期间细化系统,尽管在已经处于使用中时改变网格结构(例如,x轴和y轴上的时间表示)可能是麻烦的。应对初始的同步设置默认时间,直到该网格被填充到最小可使用状态。 
该方法适用于诸如RSS等其它同步协议。它还适用于诸如搜索爬寻器、索引器和高速缓存内容的代理服务器等领域。尽管该网格算法可以在客户机上实现,但是准确度最有可能降低,因为客户机不知道在服务器上做出的所有改变。该网格算法可在客户机—客户机同步时使用。它也可结合基于通知的同步方法来使用,其中通知处理很少改变的内容,并且该系统处理更频繁改变的内容。 
网格算法可取决于给定实现对存储器资源有变化的影响。对数据存储的估计可如下做出: 
20分钟跨度 
7个不同的天 
每张表8周
2张表 
=378字节 
10分钟跨度 
2行(工作日/周末) 
每张表6周 
2张表 
=288字节 
除了基于历史数据生成建议的同步间隔之外,建议的同步间隔也可基于来自客户机的先前的同步请求的结果。例如,在一个实施例中,服务器同步模块120可以基于来自客户机180-1的先前同步请求的先前同步结果为客户机生成同步间隔参数。服务器同步模块120可将该同步间隔参数发送给客户机180-1。 
作为示例,服务器同步模块120可以执行基于功能的自适应同步来生成同步间隔参数。给定Microsoft Outlook客户机做出的同步请求的数量可以使用某一形式的指数衰减/生长函数来生成。例如,取最后一个同步间隔。如果发生了改变,则将时间间隔减小一指数函数。然而,如果未发生改变,则将时间间隔增加一指数函数。 
也可使用其它技术来生成同步间隔参数。例如,可使用最后一次修改的自适应同步技术。该技术通过向客户机180-1发送基于对列表的最后一次修改时间严格改变的同步间隔来减少Microsoft Outlook客户机做出的同步请求的数目。例如,如果列表在上一小时内修改,则在20分钟之后再次同步。如果列表在多于一小时但少于一天之前修改,则在2小时之后再次同步。如果列表在多于一天之前修改,则在一天之后再次同步。在另一示例中,也可使用对多个列表的单个查询技术。该技术通过允许客户机180-1做出一次传入所有感兴趣的GUID列表的一个请求来减少Microsoft Outlook客户机做出的同步请求的数目。可对这些列表批量检查最后一次修改时间,然后服务器同步模块120可以通知客户机设备180-1要显式同步哪些列表。在又一示例中,可使用基于电子邮件通知的同步技术。现有同步技术可使用各种轮询技术,其中客户机在定期或半定期的基础上轮询服务器。在一个实施例中,服务器122-1可以通过发送 “隐藏电子邮件警告”来通知客户机180-1需要同步事件。这可以充分利用现有的警告基础结构。警告不一定要被用户看见,并且它在SharePoint中在用户选择执行同步操作时自动创建。这对于不频繁改变的列表尤其有效。然而,客户机设备180-1可能需要支持对传入邮件请求的接收以实现该特定技术。 
此处阐明了许多具体细节以提供对这些实施例的全面理解。然而,本领域技术人员将理解,没有这些具体细节也可实践这些实施例。在其它实例中,没有详细地描述公知的操作、组件和电路以免得使这些实施例显得晦涩难懂。可以理解,此处公开的具体的结构和功能细节可以是代表性的且不必要限制这些实施例的范围。 
还值得注意的是,任何对“一实施例”或“实施例”的引用都意味着结合该实施例所描述的特定的特征、结构、或特性被包括在至少一个实施例中。出现在说明书中各个地方的短语“在一实施例中”不必全都指的是同一实施例。 
某些实施例可能使用表述“耦合的”和“连接的”及其派生词来描述。应当理解,这些术语不旨在互为同义词。例如,某些实施例可能使用术语“连接的”来描述以指示两个或更多元素互相有直接的物理的或电的接触。在另一示例中,某些实施例可能使用术语“耦合的”来描述以指示两个或更多元素有直接的物理的或电的接触。然而,术语“耦合的”还可以意味着两个或更多元素互相不直接接触,而仍互相合作或交互。各实施例在该上下文中不受限制。 
某些实施例可以例如使用可以存储如果被机器执行则使得机器执行根据这些实施例的方法和/或操作的指令或一组指令的机器可读介质或物品来实现。例如,这种机器可以包括任何合适的处理平台、计算平台、计算设备、计算系统、处理系统、计算机、处理器等,且可以使用硬件和/或软件的任意合适的组合来实现。例如,机器可读介质或物品可以包括任何合适类型的存储器单元、存储器设备、存储器物品、存储器介质、存储设备、存储物品、存储介质和或存储单元,例如,存储器、可移动或不可移动介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、压缩盘只读存储器(CD-ROM)、可记录压缩盘(CD-R)、可重写压缩盘(CD-RW)、光盘、磁性介质、磁光介质、可移动存储器卡或盘、各种类型的数字多功能盘(DVD)、磁带、磁盒等。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (16)

1.一种用于在客户机设备与服务器设备之间同步数据的方法,所述方法包括:
标识所述客户机设备所支持的一个或多个结构化内容类型;
在所述客户机设备处,接收所述服务器设备所支持的一个或多个结构化内容类型;
由所述客户机设备标识所述客户机设备和所述服务器设备两者均支持的一个或多个结构化内容类型;
由所述客户机设备发送同步所述客户机设备和服务器设备两者均支持的一个或多个结构化内容类型的同步请求,其中所述同步请求包括请求自改变令牌以来发生改变的定义数目的数据项,且其中对定义数目的数据项的请求是使用改变令牌上的rowLimit特性作出的;
接收所请求的定义数目的数据项;
在所述客户机设备处,修改所述客户机设备和服务器设备两者均支持的一个或多个结构化内容类型的至少第一数据项;
从所述服务器设备接收所述至少第一数据项的服务器版本,其中所述第一数据项的服务器版本包括版本历史;
分析所述第一数据项的服务器版本的版本历史,其中所述第一数据项的服务器版本的版本历史包括第一多个用户标识符和改变号码对,且其中所述用户标识符标识编辑所述第一数据项的计算机,而所述改变号码指示对所述第一数据项作出的改变的次序;
根据所述第一数据项的服务器版本的版本历史确定所述第一数据项是否被另一客户机设备编辑过;
根据所述第一数据项的服务器版本的版本历史确定在所述客户机设备处作出的修改被包括在所述第一数据项的服务器版本中;以及
同步所述客户机设备和服务器设备两者均支持的一个或多个结构化内容类型,其中所述同步是至少部分基于所述版本历史的。
2.如权利要求1所述的方法,其特征在于,还包括生成不同超链接以发送对于不同结构化内容类型的所述同步请求。
3.如权利要求1所述的方法,其特征在于,还包括:确定要同步的结构化内容的数量、基于所述数量设置同步参数、以及根据所述同步参数向所述客户机设备发送同步信息。
4.如权利要求1所述的方法,其特征在于,还包括使用协议处理程序从web浏览器发送所述同步请求。
5.如权利要求1所述的方法,其特征在于,还包括:接收具有所述结构化内容类型的所述同步请求、使用改变日志来确定所述结构化内容类型指示的结构化内容是否已被修改、以及基于所述确定向所述客户机设备发送同步信息。
6.如权利要求1所述的方法,其特征在于,还包括使用版本历史来确定结构化内容的多个版本是否已被独立修改。
7.如权利要求1所述的方法,其特征在于,还包括使用特性包来检测数据模式冲突。
8.如权利要求1所述的方法,其特征在于,还包括使用字段值映射来检测语言冲突。
9.如权利要求1所述的方法,其特征在于,还包括:生成同步间隔参数、将所述同步间隔参数发送给所述客户机设备、以及根据所述同步间隔参数从所述客户机设备接收同步请求。
10.如权利要求1所述的方法,其特征在于,还包括:基于所述服务器设备存储的历史内容改变数据或来自先前的同步请求的先前的同步结果来为客户机设备生成同步间隔参数,并将所述同步间隔参数发送给所述客户机。
11.如权利要求1所述的方法,其特征在于,还包括使用分页操作来同步所述结构化内容类型。
12.如权利要求1所述的方法,其特征在于,还包括:生成第一网络地址来从内部专用网络将具有至少一个结构化内容类型的所述同步请求发送到所述第一网络地址,并生成第二网络地址来从外部公共网络将具有至少一个结构化内容类型的所述同步请求发送到所述第二网络地址。
13.一种用于在客户机设备与服务器设备之间同步数据的方法,所述方法包括:
由所述客户机设备发送对服务器内容列表的请求,其中所述服务器内容列表包含所述服务器设备所支持的结构化内容类型;
由所述客户机设备接收所述服务器内容列表,并将所述服务器内容列表与客户机内容列表进行比较,其中所述客户机内容列表包含所述客户机设备所支持的结构化内容类型;
由所述客户机设备标识所述客户机设备和所述服务器设备两者均支持的一个或多个结构化内容类型;
由所述客户机设备发送同步所述客户机设备和服务器设备两者均支持的一个或多个结构化内容类型的同步请求,其中所述同步请求包括请求自改变令牌以来发生改变的定义数目的数据项,且其中所述对定义数目的数据项的请求是使用所述改变令牌上的rowLimt特性作出的;
接收所请求的定义数目的数据项;
在所述客户机设备处,修改所述客户机设备和服务器设备两者均支持的一个或多个结构化内容类型的一个或多个数据项;
从所述服务器设备接收所述一个或多个数据项的服务器版本,其中所述一个或多个数据项的服务器版本包括版本历史;
分析所述一个或多个数据项的服务器版本的版本历史,其中所述一个或多个数据项的服务器版本的版本历史包括第一多个用户标识符和改变号码对,且其中所述用户标识符标识编辑所述一个或多个数据项的计算机,而所述改变号码指示对所述一个或多个数据项作出的改变的次序;
根据所述一个或多个数据项的服务器版本的版本历史确定所述一个或多个数据项被另一客户机设备编辑过;
根据所述一个或多个数据项的服务器版本的版本历史确定在所述客户机设备处作出的修改被包括在所述一个或多个数据项的服务器版本中;以及
在所述客户机设备处自动存储所述一个或多个数据项的服务器版本。
14.一种用于在客户机设备与服务器设备之间同步数据的系统,所述系统包括:
用于标识所述服务器设备所支持的一个或多个结构化内容类型的装置;
用于接收标识所述客户机设备所支持的一个或多个结构化内容类型的客户机内容列表的装置;
用于比较所述客户机设备所支持的一个或多个结构化内容类型和所述服务器设备所支持的一个或多个内容类型以生成共享内容类型列表的装置,其中所述共享内容类型列表包含所述客户机设备和所述服务器设备两者均支持的一个或多个内容类型;
用于由所述服务器设备接收同步所述客户机设备和服务器设备两者均支持的一个或多个结构化内容类型的同步请求的装置,其中所述同步请求包括使用改变令牌上的rowLimit特性对自所述改变令牌以来发生改变的定义数目的数据项的请求;以及
用于确定所述客户机设备和服务器设备两者均支持的一个或多个内容类型的版本历史是否在所述同步请求之前被另一客户机设备修改过的装置。
15.如权利要求14所述的系统,其特征在于,还包括用于由客户机设备发送同步所述服务器和所述客户机支持的结构化内容类型的同步请求的装置。
16.如权利要求14所述的系统,其特征在于,还包括用于发送具有匹配的结构化内容类型的共享内容列表的装置,以及用于接收所述同步请求以根据所述共享内容列表来同步结构化内容类型的装置。
CN2007800190714A 2006-05-22 2007-05-22 在客户机设备与服务器设备之间同步数据的方法和系统 Expired - Fee Related CN101454769B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/438,176 2006-05-22
US11/438,176 US7792792B2 (en) 2006-05-22 2006-05-22 Synchronizing structured web site contents
PCT/US2007/012283 WO2007139824A2 (en) 2006-05-22 2007-05-22 Synchronizing structured web site contents

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2011100215334A Division CN102081663A (zh) 2006-05-22 2007-05-22 同步结构化网站内容的方法和系统

Publications (2)

Publication Number Publication Date
CN101454769A CN101454769A (zh) 2009-06-10
CN101454769B true CN101454769B (zh) 2011-03-16

Family

ID=38713199

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2011100215334A Pending CN102081663A (zh) 2006-05-22 2007-05-22 同步结构化网站内容的方法和系统
CN2007800190714A Expired - Fee Related CN101454769B (zh) 2006-05-22 2007-05-22 在客户机设备与服务器设备之间同步数据的方法和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2011100215334A Pending CN102081663A (zh) 2006-05-22 2007-05-22 同步结构化网站内容的方法和系统

Country Status (10)

Country Link
US (2) US7792792B2 (zh)
EP (1) EP2024866A4 (zh)
JP (1) JP5009366B2 (zh)
KR (1) KR101366386B1 (zh)
CN (2) CN102081663A (zh)
AU (1) AU2007267994B2 (zh)
CA (1) CA2649369C (zh)
NO (1) NO20084436L (zh)
RU (1) RU2432608C2 (zh)
WO (1) WO2007139824A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9576056B2 (en) 2005-02-03 2017-02-21 Apple Inc. Recommender system for identifying a new set of media items responsive to an input set of media items and knowledge base metrics

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7792792B2 (en) * 2006-05-22 2010-09-07 Microsoft Corporation Synchronizing structured web site contents
US20080016248A1 (en) * 2006-07-14 2008-01-17 George Tsirtsis Method and apparatus for time synchronization of parameters
US7827138B2 (en) 2006-10-02 2010-11-02 Salesforce.Com, Inc. Method and system for synchronizing a server and an on-demand database service
KR101112736B1 (ko) * 2006-11-03 2012-03-13 삼성전자주식회사 휴대용 콘텐츠 재생 장치와 콘텐츠 저장 장치 간 콘텐츠상태 목록의 동기화 방법, 휴대용 콘텐츠 재생 장치,콘텐츠 저장 장치
KR101221672B1 (ko) * 2006-11-30 2013-01-14 재단법인서울대학교산학협력재단 데이터 동기화 시스템
US8248636B1 (en) 2006-12-29 2012-08-21 Google Inc. WYSIWYG printing for web based applications
US8612547B1 (en) 2006-12-29 2013-12-17 Google Inc. Container interrupt services
US9391826B1 (en) * 2006-12-29 2016-07-12 Google Inc. Collaborative web based applications
US9384346B1 (en) 2006-12-29 2016-07-05 Google Inc. Local service access within a web based application framework
US8539073B1 (en) 2006-12-29 2013-09-17 Google Inc. Startup of container applications
US8335817B1 (en) 2006-12-29 2012-12-18 Google Inc. Message passing within a web based application framework
WO2008119397A1 (en) * 2007-04-02 2008-10-09 Telefonaktiebolaget Lm Ericsson (Publ) Scalability and redundancy in an msc-server blade cluster
CN101765831B (zh) * 2007-06-06 2012-10-17 雅典娜电信实验有限公司 数据库不一致的处理方法
US8122040B2 (en) * 2007-08-29 2012-02-21 Richard Banister Method of integrating remote databases by automated client scoping of update requests over a communications network
US7991740B2 (en) * 2008-03-04 2011-08-02 Apple Inc. Synchronization server process
US8135838B2 (en) 2008-04-08 2012-03-13 Geminare Incorporated System and method for providing data and application continuity in a computer system
KR101028671B1 (ko) * 2008-07-15 2011-04-12 엔에이치엔(주) 이기종 단말기간 동기화된 인터넷 페이지를 제공하는 방법및 장치
US8407590B1 (en) 2009-02-15 2013-03-26 Google Inc. On-screen user-interface graphic
US8291036B2 (en) * 2009-03-16 2012-10-16 Microsoft Corporation Datacenter synchronization
US8725793B2 (en) * 2009-04-03 2014-05-13 Google Inc. Architectural pattern for persistent web application design
US8260876B2 (en) * 2009-04-03 2012-09-04 Google Inc. System and method for reducing startup cost of a software application
US8666954B2 (en) * 2009-04-03 2014-03-04 Google Inc. Reduced bandwidth cache coherency via checksum exchange
US8745202B2 (en) * 2009-04-03 2014-06-03 Google Inc. Tracking remote browser crashes via cookies
US8380669B2 (en) 2009-06-05 2013-02-19 Apple Inc. Throttling to reduce synchronizations of excessively changing data
US20110055177A1 (en) * 2009-08-26 2011-03-03 International Business Machines Corporation Collaborative content retrieval using calendar task lists
WO2012054022A1 (en) * 2010-10-19 2012-04-26 Hewlett-Packard Development Company, L.P. Managing content from structured and unstructured data sources
CN102469123B (zh) * 2010-11-09 2015-04-08 腾讯科技(深圳)有限公司 网络游戏数据同步的系统及方法
KR101755421B1 (ko) * 2011-01-10 2017-07-10 삼성전자주식회사 클라이언트 장치를 이용한 호스트 장치의 파일 정보 시스템 편집 방법 및 시스템
US20130283283A1 (en) * 2011-01-13 2013-10-24 Htc Corporation Portable electronic device and control method therefor
US8948892B2 (en) 2011-03-23 2015-02-03 Audible, Inc. Managing playback of synchronized content
US9760920B2 (en) 2011-03-23 2017-09-12 Audible, Inc. Synchronizing digital content
US9697265B2 (en) * 2011-03-23 2017-07-04 Audible, Inc. Synchronizing digital content
US8862255B2 (en) 2011-03-23 2014-10-14 Audible, Inc. Managing playback of synchronized content
US8855797B2 (en) 2011-03-23 2014-10-07 Audible, Inc. Managing playback of synchronized content
US9697871B2 (en) 2011-03-23 2017-07-04 Audible, Inc. Synchronizing recorded audio content and companion content
US9706247B2 (en) 2011-03-23 2017-07-11 Audible, Inc. Synchronized digital content samples
US9703781B2 (en) 2011-03-23 2017-07-11 Audible, Inc. Managing related digital content
US9734153B2 (en) 2011-03-23 2017-08-15 Audible, Inc. Managing related digital content
US20130002532A1 (en) * 2011-07-01 2013-01-03 Nokia Corporation Method, apparatus, and computer program product for shared synchronous viewing of content
US8533275B2 (en) 2011-08-19 2013-09-10 Microsoft Corporation Synchronizing conversation structures in web-based email systems
US9003018B2 (en) * 2011-09-15 2015-04-07 Ca, Inc. System and method for data set synchronization and replication
US8983905B2 (en) * 2011-10-03 2015-03-17 Apple Inc. Merging playlists from multiple sources
US10389766B2 (en) * 2011-12-16 2019-08-20 Techexcel Inc. Method and system for information sharing
US9960932B2 (en) 2011-12-28 2018-05-01 Evernote Corporation Routing and accessing content provided by an authoring application
TWI497948B (zh) * 2012-02-14 2015-08-21 Htc Corp 行動裝置的動態郵件同步方法、系統及電腦程式產品
US8849676B2 (en) 2012-03-29 2014-09-30 Audible, Inc. Content customization
US9037956B2 (en) 2012-03-29 2015-05-19 Audible, Inc. Content customization
US9075760B2 (en) 2012-05-07 2015-07-07 Audible, Inc. Narration settings distribution for content customization
US9317500B2 (en) 2012-05-30 2016-04-19 Audible, Inc. Synchronizing translated digital content
US9141257B1 (en) 2012-06-18 2015-09-22 Audible, Inc. Selecting and conveying supplemental content
US8972265B1 (en) 2012-06-18 2015-03-03 Audible, Inc. Multiple voices in audio content
US9536439B1 (en) 2012-06-27 2017-01-03 Audible, Inc. Conveying questions with content
US9679608B2 (en) 2012-06-28 2017-06-13 Audible, Inc. Pacing content
CN104704480A (zh) * 2012-07-27 2015-06-10 三星电子株式会社 执行数据同步的终端和服务器
US10109278B2 (en) 2012-08-02 2018-10-23 Audible, Inc. Aligning body matter across content formats
US9367196B1 (en) 2012-09-26 2016-06-14 Audible, Inc. Conveying branched content
US10057726B2 (en) 2012-10-02 2018-08-21 Razer (Asia-Pacific) Pte. Ltd. Managing user data on an electronic device
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9632647B1 (en) 2012-10-09 2017-04-25 Audible, Inc. Selecting presentation positions in dynamic content
US9087508B1 (en) 2012-10-18 2015-07-21 Audible, Inc. Presenting representative content portions during content navigation
US9223830B1 (en) 2012-10-26 2015-12-29 Audible, Inc. Content presentation analysis
TWI477978B (zh) * 2012-12-07 2015-03-21 Inst Information Industry 資料同步系統以及資料同步方法
US9280906B2 (en) 2013-02-04 2016-03-08 Audible. Inc. Prompting a user for input during a synchronous presentation of audio content and textual content
US9472113B1 (en) 2013-02-05 2016-10-18 Audible, Inc. Synchronizing playback of digital content with physical content
KR102020358B1 (ko) * 2013-03-14 2019-11-05 삼성전자 주식회사 단말 및 그 단말에서 애플리케이션 동기화 방법
US20140304293A1 (en) * 2013-04-04 2014-10-09 Marklogic Corporation Apparatus and Method for Query Based Replication of Database
US9317486B1 (en) 2013-06-07 2016-04-19 Audible, Inc. Synchronizing playback of digital content with captured physical content
US9489360B2 (en) 2013-09-05 2016-11-08 Audible, Inc. Identifying extra material in companion content
US10073761B2 (en) * 2013-09-30 2018-09-11 Entit Software Llc Legacy system
US10242045B2 (en) * 2013-10-30 2019-03-26 Dropbox, Inc. Filtering content using synchronization data
US10205777B2 (en) 2013-12-13 2019-02-12 Telefonaktiebolaget Lm Ericsson (Publ) Traffic coordination for communication sessions involving wireless terminals and server devices
US9824130B1 (en) * 2013-12-13 2017-11-21 Open Text Corporation Optimizing synchronization of enterprise content management systems
RU2580392C2 (ru) * 2013-12-31 2016-04-10 Общество С Ограниченной Ответственностью "Яндекс" Способ синхронизации первой и второй сессии просмотра страниц для пользователя и сервер
US10105593B2 (en) 2014-04-08 2018-10-23 Razer (Asia-Pacific) Pte. Ltd. File prefetching for gaming applications accessed by electronic devices
CN105095237B (zh) 2014-04-30 2018-07-17 国际商业机器公司 用于生成非关系数据库的模式的方法和设备
US10521417B2 (en) * 2014-06-24 2019-12-31 Google Llc Processing mutations for a remote database
CN104156233B (zh) * 2014-07-21 2016-05-18 小米科技有限责任公司 轻应用离线更新方法、装置及终端
US9672026B2 (en) 2014-07-21 2017-06-06 Xiaomi Inc. Light app offline updating method, device and terminal
RU2595524C2 (ru) * 2014-09-29 2016-08-27 Общество С Ограниченной Ответственностью "Яндекс" Устройство и способ обработки содержимого веб-ресурса в браузере
CN104410632B (zh) * 2014-11-26 2018-01-16 广州华多网络科技有限公司 一种同步业务数据的方法及装置
CN105701116A (zh) * 2014-11-27 2016-06-22 英业达科技有限公司 数据同步系统
US9680833B2 (en) * 2015-06-25 2017-06-13 Imperva, Inc. Detection of compromised unmanaged client end stations using synchronized tokens from enterprise-managed client end stations
US10387386B2 (en) * 2015-08-11 2019-08-20 International Business Machines Corporation Automatic attribute structural variation detection for not only structured query language database
US20170091253A1 (en) * 2015-09-29 2017-03-30 Dropbox, Inc. Interrupted synchronization detection and recovery
US10567342B2 (en) * 2016-02-24 2020-02-18 Imperva, Inc. Techniques for securely detecting compromises of enterprise end stations utilizing tunnel tokens
CN107453831B (zh) * 2016-05-31 2019-07-19 阿里巴巴集团控股有限公司 分布式交易系统的时间同步方法和装置
US10977273B2 (en) * 2016-08-02 2021-04-13 Blackberry Limited Electronic device and method of managing data transfer
US11405345B2 (en) 2016-11-01 2022-08-02 Microsoft Technology Licensing, Llc E-mail with smart reply and roaming drafts
US10516630B2 (en) 2016-11-01 2019-12-24 Microsoft Technology Licensing, Llc Switching synchronization systems for synchronizing server/client data
CN109032654B (zh) * 2017-06-08 2022-06-07 北京京东尚科信息技术有限公司 在服务器中配置参数的方法和装置、服务器和存储介质
CN109753370A (zh) * 2018-12-28 2019-05-14 北京东方国信科技股份有限公司 一种低时延、高吞吐的远程过程调用方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002077860A1 (en) * 2001-03-26 2002-10-03 Nokia Corporation Application data synchronization in telecommunications system
US6477543B1 (en) * 1998-10-23 2002-11-05 International Business Machines Corporation Method, apparatus and program storage device for a client and adaptive synchronization and transformation server
EP1291770A2 (en) * 2001-08-14 2003-03-12 Microsoft Corporation Method and system for sychronizing mobile devices

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6877137B1 (en) * 1998-04-09 2005-04-05 Rose Blush Software Llc System, method and computer program product for mediating notes and note sub-notes linked or otherwise associated with stored or networked web pages
US5966533A (en) * 1996-06-11 1999-10-12 Excite, Inc. Method and system for dynamically synthesizing a computer program by differentially resolving atoms based on user context data
US5787262A (en) * 1996-06-26 1998-07-28 Microsoft Corporation System and method for distributed conflict resolution between data objects replicated across a computer network
US6256634B1 (en) * 1998-06-30 2001-07-03 Microsoft Corporation Method and system for purging tombstones for deleted data items in a replicated database
US6810405B1 (en) * 1998-08-18 2004-10-26 Starfish Software, Inc. System and methods for synchronizing data between multiple datasets
US6341291B1 (en) * 1998-09-28 2002-01-22 Bentley Systems, Inc. System for collaborative engineering using component and file-oriented tools
US7007003B1 (en) * 1998-12-04 2006-02-28 Intellisync Corporation Notification protocol for establishing synchronization mode for use in synchronizing databases
US6976077B1 (en) * 1999-07-06 2005-12-13 Microsoft Corporation Automatic and transparent synchronization of server-side state information with a client application
US6839744B1 (en) * 1999-09-10 2005-01-04 Ianywhere Solutions, Inc. System, method, and computer program product for administering channels, content, and data for mobile devices
US6658476B1 (en) * 1999-11-29 2003-12-02 Microsoft Corporation Client-server protocol support list for standard request-response protocols
US6883135B1 (en) * 2000-01-28 2005-04-19 Microsoft Corporation Proxy server using a statistical model
US6643669B1 (en) * 2000-03-14 2003-11-04 Telefonaktiebolaget Lm Ericsson (Publ) Method for optimization of synchronization between a client's database and a server database
WO2001069390A2 (en) * 2000-03-15 2001-09-20 Arc Cores, Inc. Method and apparatus for debugging programs in a distributed environment
KR20010094095A (ko) 2000-04-04 2001-10-31 서평원 웹 기반 전송장비의 관리 데이터 동기 방법
US6944651B2 (en) * 2000-05-19 2005-09-13 Fusionone, Inc. Single click synchronization of data from a public information store to a private information store
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
KR100425494B1 (ko) * 2000-08-21 2004-03-30 엘지전자 주식회사 웹 기반 전송장비의 관리 데이터 동기 방법
US20020059280A1 (en) * 2000-09-25 2002-05-16 Brian Slesinsky Automated table installer for multiple heterogenous databases
WO2002027540A1 (en) 2000-09-26 2002-04-04 Gky Distributors Pty Limited Method and system for the rapid addition of contact information to an electronic address book using a uniform resource locator
US6711151B1 (en) * 2000-10-10 2004-03-23 Computer Access Technology Corporation Apparatus and method using paging for synchronizing to a communication network without joining the network
US6961909B2 (en) * 2001-01-05 2005-11-01 Hewlett-Packard Development Company, L.P. System for displaying a hierarchical directory
US6650348B2 (en) * 2001-01-17 2003-11-18 Microsoft Corporation System and method for web-based content scheduling
US6941326B2 (en) * 2001-01-24 2005-09-06 Microsoft Corporation Accounting for update notifications in synchronizing data that may be represented by different data structures
US7017105B2 (en) * 2001-02-02 2006-03-21 Microsoft Corporation Deleting objects from a store of a device
US6981062B2 (en) * 2001-04-20 2005-12-27 Sbc Technology Resources, Inc. World wide web content synchronization between wireless devices
US7389515B1 (en) * 2001-05-21 2008-06-17 Microsoft Corporation Application deflation system and method
US7243346B1 (en) * 2001-05-21 2007-07-10 Microsoft Corporation Customized library management system
US20020188936A1 (en) * 2001-06-11 2002-12-12 Peter Bojanic Synchronous script object access
JP3671880B2 (ja) * 2001-07-18 2005-07-13 ソニー株式会社 通信システムおよび方法、情報処理装置および方法、通信端末および方法、拡張装置、並びにプログラム
US7076736B2 (en) * 2001-07-31 2006-07-11 Thebrain Technologies Corp. Method and apparatus for sharing many thought databases among many clients
US7546359B2 (en) * 2001-10-24 2009-06-09 Groove Networks, Inc. Method and apparatus for managing a peer-to-peer collaboration system
JP2005509979A (ja) * 2001-11-15 2005-04-14 ヴィスト・コーポレーション 非同期型同期のシステムおよび方法
US7032033B1 (en) * 2001-11-30 2006-04-18 Microsoft Corporation Handling collisions during synchronization of data between client and server computers
US7376695B2 (en) * 2002-03-14 2008-05-20 Citrix Systems, Inc. Method and system for generating a graphical display for a remote terminal session
JP2005535947A (ja) * 2002-05-31 2005-11-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 異なるタイプのバックエンド・データ・ストアにアクセスするためのシステムおよび方法
US7318073B2 (en) * 2002-05-31 2008-01-08 Microsoft Corporation System and method for downloading information to a mobile device
JP3882043B2 (ja) 2002-07-12 2007-02-14 有一 八谷 Webページ同期閲覧方法及びシステム
US6952758B2 (en) * 2002-07-31 2005-10-04 International Business Machines Corporation Method and system for providing consistent data modification information to clients in a storage system
US20040111642A1 (en) * 2002-12-05 2004-06-10 Amir Peles Content security by network switch
AU2003285702A1 (en) * 2003-01-06 2004-07-29 Koninklijke Philips Electronics N.V. Multi-factor application selection
TWI237792B (en) * 2003-07-11 2005-08-11 Via Tech Inc Method and apparatus for updating simultaneously distributed webpage data of various languages, and storage medium therefor
US20050015461A1 (en) * 2003-07-17 2005-01-20 Bruno Richard Distributed file system
US7483923B2 (en) * 2003-08-21 2009-01-27 Microsoft Corporation Systems and methods for providing relational and hierarchical synchronization services for units of information manageable by a hardware/software interface system
US7512638B2 (en) * 2003-08-21 2009-03-31 Microsoft Corporation Systems and methods for providing conflict handling for peer-to-peer synchronization of units of information manageable by a hardware/software interface system
US7424477B1 (en) * 2003-09-03 2008-09-09 Sun Microsystems, Inc. Shared synchronized skip-list data structure and technique employing linearizable operations
US7546594B2 (en) * 2003-12-15 2009-06-09 Microsoft Corporation System and method for updating installation components using an installation component delta patch in a networked environment
US7441000B2 (en) * 2003-12-22 2008-10-21 International Business Machines Corporation Method for session sharing
US20050177617A1 (en) * 2003-12-23 2005-08-11 Intel Corporation Conflict resolution during data synchronization
US20050240512A1 (en) * 2004-02-18 2005-10-27 Nacenters, Inc. Method and system for identifying auction items in a graphical location
US8407752B2 (en) * 2004-03-18 2013-03-26 Digimarc Corporation Synchronizing broadcast content with corresponding network content
KR100557192B1 (ko) * 2004-04-06 2006-03-03 삼성전자주식회사 서버와 클라이언트간에 데이터 동기화 시 비정상 종료된경우 데이터 전송 방법 및 그 시스템.
US7814231B2 (en) * 2004-05-24 2010-10-12 Apple Inc. Method of synchronizing between three or more devices
CA2558875C (en) * 2004-05-24 2014-09-30 Apple Computer, Inc. Methods for sharing groups of objects, synchronising, and synchronising between three or more devices
JP4186886B2 (ja) * 2004-07-05 2008-11-26 ソニー株式会社 サーバクライアントシステム、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
BRPI0418942B1 (pt) * 2004-07-09 2018-05-29 Telefonaktiebolaget Lm Ericsson Método para prover serviços diferentes em um sistema de comunicação de multimídia, e, servidor de aplicativo em um sistema de comunicação de multimídia
US20060036488A1 (en) * 2004-08-10 2006-02-16 Hiro-Media Ltd. Method and system for dynamic, real-time addition of advertisements to downloaded static content
US8571011B2 (en) * 2004-08-13 2013-10-29 Verizon Business Global Llc Method and system for providing voice over IP managed services utilizing a centralized data store
US7672978B2 (en) * 2004-08-20 2010-03-02 Nokia Corporation Handling of content in a data processing device
US20060041893A1 (en) * 2004-08-20 2006-02-23 Microsoft Corporation Extensible device synchronization architecture and user interface
US20060168642A1 (en) * 2004-11-08 2006-07-27 Nokia Corporation Using presence to inform other clients about capability limitations
EP1705872B1 (en) * 2005-03-21 2008-12-24 Hewlett-Packard Development Company, L.P. Mobile device client and system supporting remote terminal management
US7388829B2 (en) * 2005-03-25 2008-06-17 Cisco Technology, Inc. Method and apparatus for detecting and recovering from faults associated with transport protocol connections across network address translators
US7523146B2 (en) * 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
US20070016632A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. System and method for synchronizing between a user device and a server in a communication network
JP4778061B2 (ja) * 2005-09-29 2011-09-21 リサーチ イン モーション リミテッド 代表的な情報を比較することによる効率的なデータベースの同期化
US20070094334A1 (en) * 2005-10-21 2007-04-26 Microsoft Corporation Service/client synchronization
US7472116B2 (en) * 2005-12-22 2008-12-30 International Business Machines Corporation Method for filtering query results using model entity limitations
US7421542B2 (en) * 2006-01-31 2008-09-02 Cisco Technology, Inc. Technique for data cache synchronization
US7571184B2 (en) * 2006-02-08 2009-08-04 International Business Machines Corporation Dynamic schema-based silicon IP analysis, qualification, data exchange, and integration
KR100813972B1 (ko) * 2006-03-08 2008-03-14 삼성전자주식회사 컨텐츠 스트리밍 클라이언트 장치 및 방법, 그 방법을수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
US8081970B2 (en) * 2006-03-27 2011-12-20 Research In Motion Limited System and method for provisioning a mobile wireless communications device, including indicators representative of image and sound data
US7860825B2 (en) * 2006-05-08 2010-12-28 Palm, Inc. Method for synchronizing software application and user data for asynchronous client-server and peer to peer computer networks
US8255464B2 (en) * 2006-05-09 2012-08-28 Wilkins John T Contact management system and method
US7792792B2 (en) * 2006-05-22 2010-09-07 Microsoft Corporation Synchronizing structured web site contents
US7913084B2 (en) * 2006-05-26 2011-03-22 Microsoft Corporation Policy driven, credential delegation for single sign on and secure access to network resources

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477543B1 (en) * 1998-10-23 2002-11-05 International Business Machines Corporation Method, apparatus and program storage device for a client and adaptive synchronization and transformation server
WO2002077860A1 (en) * 2001-03-26 2002-10-03 Nokia Corporation Application data synchronization in telecommunications system
EP1291770A2 (en) * 2001-08-14 2003-03-12 Microsoft Corporation Method and system for sychronizing mobile devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9576056B2 (en) 2005-02-03 2017-02-21 Apple Inc. Recommender system for identifying a new set of media items responsive to an input set of media items and knowledge base metrics

Also Published As

Publication number Publication date
US7792792B2 (en) 2010-09-07
RU2008146060A (ru) 2010-05-27
JP5009366B2 (ja) 2012-08-22
EP2024866A4 (en) 2012-05-09
AU2007267994A1 (en) 2007-12-06
AU2007267994B2 (en) 2012-01-19
US20070271309A1 (en) 2007-11-22
KR101366386B1 (ko) 2014-03-03
WO2007139824A2 (en) 2007-12-06
KR20090010198A (ko) 2009-01-29
CA2649369A1 (en) 2007-12-06
WO2007139824A3 (en) 2008-01-24
RU2432608C2 (ru) 2011-10-27
CA2649369C (en) 2015-12-01
NO20084436L (no) 2008-10-22
US20110087802A1 (en) 2011-04-14
CN102081663A (zh) 2011-06-01
JP2009538475A (ja) 2009-11-05
US8572028B2 (en) 2013-10-29
CN101454769A (zh) 2009-06-10
EP2024866A2 (en) 2009-02-18

Similar Documents

Publication Publication Date Title
CN101454769B (zh) 在客户机设备与服务器设备之间同步数据的方法和系统
EP2243091B1 (en) Method and system for storing and retrieving characters, words and phrases
US7930629B2 (en) Consolidating local and remote taxonomies
CN100585598C (zh) 用于更新portlet信息的方法和系统
EP2441069B1 (en) Electronic paper display device event tracking
US20070143300A1 (en) System and method for monitoring evolution over time of temporal content
US7707142B1 (en) Methods and systems for performing an offline search
KR20100094021A (ko) 이동통신 단말기와 아이피 기반 정보 단말기를 이용한 맞춤, 지능형 심볼, 아이콘 인터넷 정보 검색시스템
CN102612687A (zh) Web服务界面和查询
CN111666490A (zh) 基于kafka的信息推送方法、装置、设备及存储介质
TW201203153A (en) Mechanism for supporting user content feeds
CN103380421A (zh) 用于图形数据的分布式缓存
CN107016027A (zh) 实现业务信息快速搜索的方法和装置
CN108366096A (zh) 一种信息订阅方法、终端及计算机可读存储介质
Lee et al. Leveraging microblogging big data with a modified density-based clustering approach for event awareness and topic ranking
WO2012161928A1 (en) Techniques to automatically search selected content
CN107784071A (zh) 一种消息推送方法、装置和移动终端
EP3039582A1 (en) A system and method for managing partner feed index
TW565774B (en) System and method for synchronizing for wireless devices
Klein Using the web infrastructure for real time recovery of missing web pages
US20080126438A1 (en) Per entry changelog
CN114331486A (zh) 一种用户画像更新方法、装置、设备和介质
Matthews Where does it come from? Generating and collecting online usage data: an update
CN114861046A (zh) 一种应用推荐方法及装置
Treese Web services for the people

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150421

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150421

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110316

Termination date: 20180522