CN102081663A - 同步结构化网站内容的方法和系统 - Google Patents
同步结构化网站内容的方法和系统 Download PDFInfo
- Publication number
- CN102081663A CN102081663A CN2011100215334A CN201110021533A CN102081663A CN 102081663 A CN102081663 A CN 102081663A CN 2011100215334 A CN2011100215334 A CN 2011100215334A CN 201110021533 A CN201110021533 A CN 201110021533A CN 102081663 A CN102081663 A CN 102081663A
- Authority
- CN
- China
- Prior art keywords
- server
- client devices
- content
- synchronous
- tabulation
- 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.)
- Pending
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
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
Abstract
描述了同步结构化网站内容的技术。一种装置可包括具有服务器同步模块的服务器,该服务器同步模块标识服务器和客户机共享的结构化内容类型,并同步对应于该结构化内容类型的结构化内容。对其它实施方式也予以描述并主张权利。
Description
本申请是国际申请日为2007年5月22日、国际申请号为PCT/US2007/012283、中国国家申请日为2007年5月22日、申请号为200780019071.4、发明名称为“同步结构化网站内容”的专利申请的分案申请。
技术领域
本申请涉及同步结构化网站内容的技术。
背景技术
网络软件应用程序通常维护用于应用程序和/或用户数据的集中式网络数据库。在某些情况下,设备可以从网络数据库下载或复制中央数据库的子集,然后从网络断开连接。例如,无线手持式设备可以从诸如网站等中央数据库下载日历和联系人信息。如果网络数据库所维护的信息被修改,或者复制的信息子集本身被修改,则可能需要同步事件来更新两个数据位置中的这些改变。例如,假定用户向日历应用程序添加了新约会。当手持式设备建立了与网络数据库的连接时,可能需要更新网络数据库所存储的日历信息以反映来自手持式设备的修改的数据,反之亦然。然而,随着应用程序数据数量以及试图与网络数据库同步的设备的数目的增加,同步事件可能变得需要越来越多的时间和带宽。因此,可能需要改进的同步技术来解决这些和其它问题。
发明内容
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
各实施例一般涉及用于在物理或逻辑实体之间同步结构化内容的技术。更具体而言,各实施例涉及客户机和服务器之间的同步技术。例如,在某些实施例中,可在同步操作之前标识在服务器和客户机之间共享的某些结构化内容类型。一旦被标识,然后可同步对应于该结构化内容类型的结构化内容。以此方式,同步可以集中于如由结构化内容类型所标识的共享的结构化内容,而非客户机和/或服务器存储的全部数据集。因此,可减少同步时间和资源,由此对于用户增强总体设备操作和网络服务。
在一个实施例中,客户机可以执行发现或标识操作。例如,服务器可以接收对服务器内容列表的请求。服务器可以检索并发送具有表示服务器所支持的结构化内容类型的结构化内容值的服务器内容列表。客户机可以接收该服务器内容列表,并将该服务器内容列表与具有表示客户机所支持的结构化内容类型的结构化内容值的客户机内容列表进行比较。客户机可以发送同步请求和/或共享内容列表以同步服务器和客户机所支持的结构化内容类型。服务器可接收同步请求和/或共享内容列表,并相应地执行同步操作。
在一个实施例中,服务器可以执行发现或标识操作。例如,服务器可以接收客户机内容列表。服务器可以检索服务器内容列表,并比较两个内容列表。服务器可以根据比较生成具有表示客户机和服务器所支持的结构化内容类型的结构化内容值的共享内容列表。服务器可以将该共享内容列表发送给客户机。客户机可以接收该共享内容列表,并发送根据该共享内容列表来同步结构化内容类型的同步请求。服务器可以接收该同步请求,并根据同步请求来执行同步操作。对其它实施例也予以描述并主张权利。
附图说明
图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标记语言(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应用程序的示例可包括公司生产的SERVICES(WSS)2.0版、3.0版以及各种变体(此处统称为“WSS应用程序”或“SharePoint应用程序”)。WSS 3.0版是例如向诸如客户机180-1-s等各客户机提供基本团队服务、门户网站和内联网功能的集成的应用程序套件。用于WSS 3.0版的用户数据或内容数据可由数据库124、126存储。此外,一个或多个计算设备122-1-n可以实现构建在WSS 3.0版之上的第三方应用程序,例如,诸如SharePoint门户服务器(SPS)2003或Office SharePoint服务(OSS)2006。虽然作为示例参考WSS应用程序和附带的第三方程序描述了一些实施例,但可以理解,可以使用此处描述的同步技术来同步由单个或多个计算设备执行的任何应用程序。各实施例在该上下文中不受限制。
WSS 3.0版提供了供多个用户以高效的方式共享数据的平台。例如,用户可以被组织成团队,每一团队具有共享日历、联系人列表、任务列表、电子邮件、讨论板、文档等等。为了增加这些共享数据的可用性,网络100的各元素可以被组织为间歇同步数据库系统(ISDB)。ISDB例如允许各种物理或逻辑客户机实体从数据库124、126将信息部分下载或复制到诸如客户机设备180-1等客户机设备。假定客户机设备180-1包括诸如微软公司生产的MICROSOFT等应用程序。Microsoft Outlook可以从如使用WSS 3.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、MICROSOFTMICROSOFTMICROSOFTMICROSOFTMICROSOFTWORD、MICROSOFTWSS应用程序、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且能够同步特定类型的列表。例如,在WSS 3.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来实现。例如,WSS 3.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.一种用于同步结构化网站内容的计算机实现的方法,所述方法包括:
由客户机设备发送对服务器内容列表的请求,其中所述服务器内容列表包括服务器设备所支持的一个或多个结构化内容类型,所述一个或多个结构化内容类型包括由日历、联系人、讨论、文档和任务组成的组中的一个或多个;
由所述客户机设备接收所述服务器内容列表;
将所述服务器内容列表与客户机内容列表进行比较,其中所述客户机内容列表包含所述客户机设备所支持的一个或多个结构化内容类型;
由所述客户机设备标识所述客户机设备和所述服务器设备两者共享的一个或多个结构化内容类型;
由所述客户机设备发送同步所述共享的一个或多个结构化内容类型的第一同步查询,其中所述同步查询包括改变令牌和要被返回的最大项数,其中要被返回的项是自从改变令牌的值以来发生改变的项;
当多于所请求的最大项数的项发生了改变时:
由所述客户机设备接收第一数量的项直到所述最大项数,以及接收所述改变令牌;
由所述客户机设备接收一值,用于请求从该值开始下一数量的项直到所述最大项数;以及
由所述客户机设备发送第二同步查询,所述第二同步查询包括所述改变令牌和所述值。
2.如权利要求1所述的方法,其特征在于,所述最大项数包括“rowLimit”特性。
3.如权利要求1所述的方法,其特征在于,所述第一同步请求和所述第二同步请求使用分页技术。
4.如权利要求1所述的方法,其特征在于,所述分页技术是在所述客户机设备减少了到所述服务器设备的通信连接时使用的。
5.如权利要求1所述的方法,其特征在于,还包括由所述客户机设备接收同步间隔参数,其中所述同步间隔参数基于历史内容改变数据。
6.如权利要求5所述的方法,其特征在于,所述历史内容改变数据基于基于网格的自适应同步。
7.如权利要求6所述的方法,其特征在于,所述基于网格的自适应同步基于以下因素组成的组中的一个或多个因素:列表类型、站点类型、列表大小、列表定制数量、站点用户数量、地理位置和用户分布。
8.一种用于同步结构化网站内容的计算机实现的方法,包括:
由服务器接收来自客户机的内容列表;
检索服务器内容列表;
由所述服务器处的至少一个处理器比较客户机内容列表和服务器内容列表;
确定由所述客户机和所述服务器两者都支持的结构化内容类型;
基于对所述客户机和所述服务器两者都支持的结构化内容类型的确定,生成共享内容列表;
将所述共享内容列表发送到所述客户机;
从所述客户机接收同步所述共享内容列表中的一个或多个结构化内容类型的请求,所述请求包括对要被返回的项数的限制;以及
基于所接收的同步请求执行一个或多个同步操作,所接收的请求和项限制使得所述服务器将一参数传递至列表查询中以将返回的项数限制到所请求的限制,其中任何删除操作都被排除在项限制外。
9.如权利要求8所述的方法,其特征在于,所述同步包括分页技术。
10.如权利要求8所述的方法,其特征在于,发送同步间隔参数,其中所述同步间隔参数基于历史内容改变数据。
11.如权利要求10所述的方法,其特征在于,所述历史内容改变数据基于基于网格的自适应同步。
12.一种用于同步结构化网站内容的系统,所述系统包括:
用于由客户机设备发送对服务器内容列表的请求的装置,其中所述服务器内容列表包括服务器设备所支持的一个或多个结构化内容类型,所述一个或多个结构化内容类型包括由日历、联系人、讨论、文档和任务组成的组中的一个或多个;
用于由所述客户机设备接收所述服务器内容列表的装置;
用于将所述服务器内容列表与客户机内容列表进行比较的装置,其中所述客户机内容列表包含所述客户机设备所支持的一个或多个结构化内容类型;
用于由所述客户机设备标识所述客户机设备和所述服务器设备两者共享的一个或多个结构化内容类型的装置;
用于由所述客户机设备发送同步所述共享的一个或多个结构化内容类型的第一同步查询的装置,其中所述同步查询包括改变令牌和要被返回的最大项数,其中要被返回的项是自从改变令牌的值以来发生改变的项;
当多于所请求的最大项数的项发生了改变时:
用于由所述客户机设备接收第一数量的项直到所述最大项数,以及接收所述改变令牌的装置;
用于由所述客户机设备接收一值的装置,用于请求从该值开始下一数量的项直到所述最大项数;以及
用于由所述客户机设备发送第二同步查询的装置,所述第二同步查询包括所述改变令牌和所述值。
13.如权利要求12所述的系统,其特征在于,还包括用于由所述客户机设备接收同步间隔参数的装置,其中所述同步间隔参数基于历史内容改变数据,所述同步间隔参数由所述服务器设备存储。
14.如权利要求13所述的方法,其特征在于,所述历史内容改变数据基于基于网格的自适应同步。
15.如权利要求14所述的方法,其特征在于,所述基于网格的自适应同步基于以下因素组成的组中的一个或多个因素:列表类型、站点类型、列表大小、列表定制数量、站点用户数量、地理位置和用户分布。
16.如权利要求12所述的系统,其特征在于,所述最大项数包括“rowLimit”特性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/438,176 US7792792B2 (en) | 2006-05-22 | 2006-05-22 | Synchronizing structured web site contents |
US11/438,176 | 2006-05-22 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800190714A Division CN101454769B (zh) | 2006-05-22 | 2007-05-22 | 在客户机设备与服务器设备之间同步数据的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102081663A true CN102081663A (zh) | 2011-06-01 |
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800190714A Expired - Fee Related CN101454769B (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) |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1849099B1 (en) | 2005-02-03 | 2014-05-07 | Apple Inc. | Recommender system for identifying a new set of media items responsive to an input set of media items and knowledge base metrics |
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 | 재단법인서울대학교산학협력재단 | 데이터 동기화 시스템 |
US9391826B1 (en) * | 2006-12-29 | 2016-07-12 | Google Inc. | Collaborative web based applications |
US8539073B1 (en) | 2006-12-29 | 2013-09-17 | Google Inc. | Startup of container applications |
US8612547B1 (en) | 2006-12-29 | 2013-12-17 | Google Inc. | Container interrupt services |
US9384346B1 (en) | 2006-12-29 | 2016-07-05 | Google Inc. | Local service access within a web based application framework |
US8248636B1 (en) | 2006-12-29 | 2012-08-21 | Google Inc. | WYSIWYG printing for web based applications |
US8335817B1 (en) | 2006-12-29 | 2012-12-18 | Google Inc. | Message passing within a web based application framework |
CN101669380B (zh) * | 2007-04-02 | 2013-11-27 | 艾利森电话股份有限公司 | Msc服务器刀片集群中的可扩缩性和冗余度 |
US20100198789A1 (en) | 2007-06-06 | 2010-08-05 | Kunio Kamimura | Database contradiction solution method |
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 |
US8745202B2 (en) * | 2009-04-03 | 2014-06-03 | Google Inc. | Tracking remote browser crashes via cookies |
US8666954B2 (en) * | 2009-04-03 | 2014-03-04 | Google Inc. | Reduced bandwidth cache coherency via checksum exchange |
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 |
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 |
US20130205195A1 (en) * | 2010-10-19 | 2013-08-08 | Mohamed Dekhil | 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 |
US9697265B2 (en) * | 2011-03-23 | 2017-07-04 | Audible, Inc. | Synchronizing digital content |
US9734153B2 (en) | 2011-03-23 | 2017-08-15 | Audible, Inc. | Managing related digital content |
US9697871B2 (en) | 2011-03-23 | 2017-07-04 | Audible, Inc. | Synchronizing recorded audio content and companion content |
US8948892B2 (en) | 2011-03-23 | 2015-02-03 | Audible, Inc. | Managing playback of synchronized 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 |
US9760920B2 (en) | 2011-03-23 | 2017-09-12 | 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 |
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 |
US20130212198A1 (en) * | 2012-02-14 | 2013-08-15 | Htc Corporation | Methods and systems of dynamic mail synchronization for mobile devices |
US9037956B2 (en) | 2012-03-29 | 2015-05-19 | Audible, Inc. | Content customization |
US8849676B2 (en) | 2012-03-29 | 2014-09-30 | 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 |
CN110543461A (zh) * | 2012-07-27 | 2019-12-06 | 三星电子株式会社 | 执行数据同步的终端及其方法 |
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 |
CN105556505A (zh) * | 2013-09-30 | 2016-05-04 | 慧与发展有限责任合伙企业 | 遗产系统 |
US10242045B2 (en) * | 2013-10-30 | 2019-03-26 | Dropbox, Inc. | Filtering content using synchronization data |
US9824130B1 (en) * | 2013-12-13 | 2017-11-21 | Open Text Corporation | Optimizing synchronization of enterprise content management systems |
BR112016004281B1 (pt) | 2013-12-13 | 2022-10-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Dispositivo e método de sincronização de comunicação, portadora de dados, e, dispositivo e método para administrar a comunicação |
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 |
US9672026B2 (en) | 2014-07-21 | 2017-06-06 | Xiaomi Inc. | Light app offline updating method, device and terminal |
CN104156233B (zh) * | 2014-07-21 | 2016-05-18 | 小米科技有限责任公司 | 轻应用离线更新方法、装置及终端 |
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 |
US11960525B2 (en) * | 2016-12-28 | 2024-04-16 | Dropbox, Inc | Automatically formatting content items for presentation |
CN109032654B (zh) * | 2017-06-08 | 2022-06-07 | 北京京东尚科信息技术有限公司 | 在服务器中配置参数的方法和装置、服务器和存储介质 |
CN109753370A (zh) * | 2018-12-28 | 2019-05-14 | 北京东方国信科技股份有限公司 | 一种低时延、高吞吐的远程过程调用方法 |
Family Cites Families (78)
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 |
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 |
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 |
US6779042B1 (en) * | 1999-09-10 | 2004-08-17 | Ianywhere Solutions, Inc. | System, method, and computer program product for enabling on-device servers, offline forms, and dynamic ad tracking on 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 |
US7133820B2 (en) * | 2000-03-15 | 2006-11-07 | Arc International | 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 |
GB2385444B (en) | 2000-09-26 | 2004-07-07 | Gky Distributors Pty Ltd | 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 |
FI113129B (fi) | 2001-03-26 | 2004-02-27 | Nokia Corp | Sovellusdatan synkronointi tietoliikennejärjestelmässä |
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 |
US7149813B2 (en) | 2001-08-14 | 2006-12-12 | Microsoft Corporation | Method and system for synchronizing mobile devices |
US7546359B2 (en) * | 2001-10-24 | 2009-06-09 | Groove Networks, Inc. | Method and apparatus for managing a peer-to-peer collaboration system |
WO2003044698A1 (en) * | 2001-11-15 | 2003-05-30 | Visto Corporation | System and methods for asychronous synchronization |
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 |
DE60311317T2 (de) * | 2003-01-06 | 2007-08-30 | Koninklijke Philips Electronics N.V. | Anwendungsauswahl unter berücksichtigung mehrerer faktoren |
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 |
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 |
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 |
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 |
EP1754186A1 (en) | 2004-05-24 | 2007-02-21 | 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 | ソニー株式会社 | サーバクライアントシステム、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
KR101214326B1 (ko) * | 2004-07-09 | 2012-12-21 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 멀티미디어 통신 시스템에서 여러 서비스를 제공하는 방법및 장치 |
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 |
US7706401B2 (en) * | 2004-08-13 | 2010-04-27 | Verizon Business Global Llc | Method and system for providing interdomain traversal in support of packetized voice transmissions |
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 |
WO2006048758A2 (en) * | 2004-11-08 | 2006-05-11 | 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 |
CA2623837A1 (en) * | 2005-09-29 | 2007-04-05 | Research In Motion Limited | Efficient database synchronization by comparing representative information |
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 |
-
2006
- 2006-05-22 US US11/438,176 patent/US7792792B2/en not_active Expired - Fee Related
-
2007
- 2007-05-22 CA CA2649369A patent/CA2649369C/en not_active Expired - Fee Related
- 2007-05-22 RU RU2008146060/08A patent/RU2432608C2/ru not_active IP Right Cessation
- 2007-05-22 KR KR1020087027771A patent/KR101366386B1/ko not_active IP Right Cessation
- 2007-05-22 CN CN2011100215334A patent/CN102081663A/zh active Pending
- 2007-05-22 EP EP07795227A patent/EP2024866A4/en not_active Withdrawn
- 2007-05-22 JP JP2009512123A patent/JP5009366B2/ja not_active Expired - Fee Related
- 2007-05-22 AU AU2007267994A patent/AU2007267994B2/en not_active Ceased
- 2007-05-22 CN CN2007800190714A patent/CN101454769B/zh not_active Expired - Fee Related
- 2007-05-22 WO PCT/US2007/012283 patent/WO2007139824A2/en active Application Filing
-
2008
- 2008-10-22 NO NO20084436A patent/NO20084436L/no not_active Application Discontinuation
-
2010
- 2010-08-30 US US12/871,831 patent/US8572028B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2007139824A2 (en) | 2007-12-06 |
CN101454769A (zh) | 2009-06-10 |
CN101454769B (zh) | 2011-03-16 |
AU2007267994B2 (en) | 2012-01-19 |
RU2432608C2 (ru) | 2011-10-27 |
JP2009538475A (ja) | 2009-11-05 |
RU2008146060A (ru) | 2010-05-27 |
AU2007267994A1 (en) | 2007-12-06 |
CA2649369A1 (en) | 2007-12-06 |
US7792792B2 (en) | 2010-09-07 |
EP2024866A2 (en) | 2009-02-18 |
JP5009366B2 (ja) | 2012-08-22 |
KR101366386B1 (ko) | 2014-03-03 |
WO2007139824A3 (en) | 2008-01-24 |
NO20084436L (no) | 2008-10-22 |
KR20090010198A (ko) | 2009-01-29 |
US20070271309A1 (en) | 2007-11-22 |
US8572028B2 (en) | 2013-10-29 |
CA2649369C (en) | 2015-12-01 |
US20110087802A1 (en) | 2011-04-14 |
EP2024866A4 (en) | 2012-05-09 |
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 | |
CN104919453B (zh) | 数据库内容的每用户汇总 | |
CN102612687A (zh) | Web服务界面和查询 | |
CN103380421A (zh) | 用于图形数据的分布式缓存 | |
CN107016027A (zh) | 实现业务信息快速搜索的方法和装置 | |
EP2122514A1 (en) | Live entities internet store service | |
CN108366096A (zh) | 一种信息订阅方法、终端及计算机可读存储介质 | |
CN103685528A (zh) | 信息展示方法和装置 | |
CN104115142A (zh) | 用于书签同步的特定于设备的文件夹 | |
US20210004790A1 (en) | Systems, Methods and Devices for Providing Automated Adaptive Web-Based News Feeds | |
CN102542434A (zh) | 应用于办公自动化系统的同步内容方法 | |
TW565774B (en) | System and method for synchronizing for wireless devices | |
WO2007099331A2 (en) | Data processing apparatus | |
US20080126438A1 (en) | Per entry changelog | |
Matthews | Where does it come from? Generating and collecting online usage data: an update | |
CN114331486A (zh) | 一种用户画像更新方法、装置、设备和介质 | |
JP2005293149A (ja) | プロファイル更新装置及びコンピュータプログラム | |
Treese | Web services for the people | |
Mehta et al. | Mobile AJAX Applications: Going Far Without The Bars |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110601 |