同步结构化网站内容的制作方法

文档序号:6454936阅读:120来源:国知局
专利名称:同步结构化网站内容的制作方法
同步结构化网站内容
背景
网络软件应用程序通常维护用于应用程序和/或用户数据的集中式网络数 据库。在某些情况下,设备可以从网络数据库下载或复制中央数据库的子集, 然后从网络断开连接。例如,无线手持式设备可以从诸如网站等中央数据库下 载曰历和联系人信息。如果网络数据库所维护的信息被修改,或者复制的信息 子集本身被修改,则可能需要同步事件来更新两个数据位置中的这些改变。例 如,假定用户向日历应用程序添加了新约会。当手持式设备建立了与网络数据 库的连接时,可能需要更新网络数据库所存储的日历信息以反映来自手持式设 备的修改的数据,反之亦然。然而,随着应用程序数据数量以及试图与网络数 据库同步的设备的数目的增加,同步事件可能变得需要越来越多的时间和带 宽。因此,可能需要改进的同步技术来解决这些和其它问题。
概述
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一 些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也 不旨在用于限制所要求保护的主题的范围。
各实施例一般涉及用于在物理或逻辑实体之间同步结构化内容的技术。更 具体而言,各实施例涉及客户机和服务器之间的同步技术。例如,在某些实施 例中,可在同步操作之前标识在服务器和客户机之间共享的某些结构化内容类 型。 一旦被标识,然后可同步对应于该结构化内容类型的结构化内容。以此方 式,同步可以集中于如由结构化内容类型所标识的共享的结构化内容,而非客 户机和/或服务器存储的全部数据集。因此,可减少同步时间和资源,由此对于 用户增强总体设备操作和网络服务。
在一个实施例中,客户机可以执行发现或标识操作。例如,服务器可以接 收对服务器内容列表的请求。服务器可以检索并发送具有表示服务器所支持的
5结构化内容类型的结构化内容值的服务器内容列表。客户机可以接收该服务器 内容列表,并将该服务器内容列表与具有表示客户机所支持的结构化内容类型 的结构化内容值的客户机内容列表进行比较。客户机可以发送同步请求和/或共 享内容列表以同步服务器和客户机所支持的结构化内容类型。服务器可接收同 步请求和/或共享内容列表,并相应地执行同步操作。
在一个实施例中,服务器可以执行发现或标识操作。例如,服务器可以接 收客户机内容列表。服务器可以检索服务器内容列表,并比较两个内容列表。 服务器可以根据比较生成具有表示客户机和服务器所支持的结构化内容类型 的结构化内容值的共享内容列表。服务器可以将该共享内容列表发送给客户 机。客户机可以接收该共享内容列表,并发送根据该共享内容列表来同步结构 化内容类型的同步请求。服务器可以接收该同步请求,并根据同步请求来执行 同步操作。对其它实施例也予以描述并主张权利。
附图


图1示出网络的示例性实施例。 图2示出一逻辑流程的示例性实施例。 图3示出第一消息流的示例性实施例。 图4示出第二消息流的示例性实施例。
详细描述
图1示出网络的一个示例性实施例。图1示出网络100的框图。网络100
可以表示适用于实现各种实施例的通用网络体系结构。网络ioo可以包括多个
元素。元素可以包括被安排来执行特定操作的任何物理或逻辑结构。视给定的 一组设计参数或性能约束的需要,每一元素可被实现为硬件、软件、或其任意 组合。硬件元素的示例可以包括处理器、微处理器、电路、电路元素(例如,
晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、 可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、 存储器单元、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件
的示例可以包括任何软件组件、程序、应用软件、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、 函数、方法、接口、软件接口、应用程序接口 (API)、指令集、计算代码、 计算机代码、代码段、计算机代码段、文字、值、符号、或其任意组合。虽然 图1中示出的网络100在特定拓扑中具有有限数量的元素,但可以理解,网络 100视给定实现所需在另选拓扑中可以包括更多或更少元素。各实施例在该上 下文中不受限制。
例如,如图1所示,网络100可以包括各种元素,如计算阵列140、服务 器150、网络160、负载均衡器170、和客户机设备180-l-s。例如,在一实施 例中,服务器150可以被实现为web服务器。web服务器可以包括能够接受来 自客户机设备(例如,客户机180-l-s和/或计算设备122-l-n)的超文本传输协 议(HTTP)请求以提供网页的计算设备。网页通常是使用诸如超文本标记语 言(HTML)、可扩展标记语言(XML)、可扩展超文本标记语言(XHTML)、 MICROSOFT WORD⑧标记语言(WordML)等某种形式的标记语言生成的文档。 网络160可以包括使用诸如传输控制协议和网际协议(TCP/IP)等一种或多种 因特网协议的分组网络。负载平衡器170可以包括以计算资源被以高效的方式 使用的方式向一组联网的计算机服务器(例如,计算阵列140)分派工作负载 的设备。负载平衡器170可以使用例如计算机、服务器、虚拟服务器、网络设 备等来实现。
在各实施例中,网络100可包括各种计算设备。例如,在各实施例中,计 算阵列140可以包括多个计算设备122-l-n。类似地,客户机设备180-l-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-l-n。此外,计算设备122-1也可以表示任何客户机设备180-l-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-l-n的每一个都可以包括多个数据库。如参考计算设备122-1 详细示出的,计算设备122-1可以被耦合到数据库124、 126。每一数据库可被 安排成存储用于计算设备122-1、应用程序118、服务器同步模块120等的各 种类型的数据。例如,在一个实施例中,数据库124可以存储客户机内容列表 130、服务器内容列表132、共享内容列表134等等。客户机内容列表130可以 包括表示诸如一个或多个客户机180-l-s等客户机所支持的结构化内容类型的 结构化内容值。服务器内容列表132可以包括表示诸如一个或多个服务器 122-l-n等服务器所支持的结构化内容类型的结构化内容值。共享内容列表134 可以包括表示一个或多个客户机180-l-s和一个或多个服务器122-l-n共享的结 构化内容类型的结构化内容值。可以用计算设备122-1来实现其它类型的数据 和数据库,且这些实施例在该上下文中不受限制。
在一般的操作中,网络100可以帮助由计算阵列140的一个或多个计算设 备122-l-n存储或执行的一个或多个应用程序与由一个或多个客户机设备 1801-s存储或执行的一个或多个应用程序之间的同步操作。假定计算设备 122-l-n的每一个都实现一个或多个应用程序118,如基于服务器的web应用 程序。基于服务器的web应用程序的示例可包括MICROSOFT⑧公司生产的
9WINDOWS SHAREPOINT 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应用程序和附带 的第三方程序描述了一些实施例,但可以理解,可以使用此处描述的同步技术 来同步由单个或多个计算设备执行的任何应用程序。各实施例在该上下文中不 受限制。
WSS3.0版提供了供多个用户以高效的方式共享数据的平台。例如,用户 可以被组织成团队,每一团队具有共享日历、联系人列表、任务列表、电子邮 件、讨论板、文档等等。为了增加这些共享数据的可用性,网络100的各元素 可以被组织为间歇同步数据库系统(ISDB) 。 ISDB例如允许各种物理或逻辑 客户机实体从数据库124、 126将信息部分下载或复制到诸如客户机设备180-1 等客户机设备。假定客户机设备180-1包括诸如微软公司生产的MICROSOFT OUTLOOK⑧等应用程序。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可以利用结 构化内容来实现改进的同步技术。结构化内容可以涉及具有诸如宽度、长度、 位大小、字节大小、句法、字段、值、代码、标志等一个或多个定义的结构参 数的任何类型的媒体内容(例如,文本、音频、视频、图像、图片、动画、符 号、字符、数字、图标等等)。结构化内容可包括支持诸如MICROSOFT OUTLOOK 、 MICROSOFT ACCESS 、 MICROSOFT FRONTPAGE 、MICROSOFT ONENOTE 、 MICROSOFT POWERPOINT 、 MICROSOFT WORD、 MICROSOFT VISIO 、 WSS应用程序、SPS应用程序等任意数目的 应用程序的应用程序数据和/或用户数据。例如,在一个实施例中,结构化内容 可包括用于Microsoft Outlook的应用程序数据和/或用户数据,诸如来自日历列 表、任务列表、联系人列表、笔记或备忘录列表、邮件列表等的一个或多个项。 服务器同步模块120和客户机同步模块182可被集成以标识在服务器122和客 户机180之间共享的结构化内容类型。对应于在服务器122和客户机180之间 共享的结构化内容类型的结构化内容信息然后可被同步。
使用结构化内容来执行同步操作可以提供优于常规的同步技术的若干优 点。例如,在各实施例中,设备之间的发起同步操作可以用多种方式来改进。 例如,可以为同步客户机生成网络地址和/或超链接以发起基于服务器和/或客 户机支持的特定内容类型的同步操作。可生成不同超链接以发起对不同内容范 围的同步操作。在另一示例中,同步操作可以基于所同步的内容的数量(例如, 仅同步标题对比同步整个内容集)来不同地发起。在又一示例中,可使用协议 处理程序来从web浏览器发起同步操作。
一旦发起了同步操作,各实施例可改进内容实际如何被同步。例如,可使 用服务器侧改变日志来仅同步改变的内容。可来回传递令牌以仅获得自从前一 同步事件以来做出的新改变。在另一示例中,同步操作可以仅支持结构化模式 中个别地请求或定义的字段。在又一示例中,同步操作可以支持诸如在文件夹 分层结构中创建的不同分层范围。在再一示例中,可以生成同步视图以显示由 各字段值确定的经过滤的内容集。在还有一示例中,某些实施例可以支持使用 分页技术对非常大的数据集的同步。在另一示例中,某些实施例可以使用版本 历史来执行冲突检测和自动解决。在又一示例中,某些实施例可以支持使用 "E标签"来进行冲突解决的附件同步。在另一示例中,某些实施例可使用特 性包(propertybag)支持同步网站和客户机之间的模式失配。在又一示例中, 某些实施例可使用字段值映射支持服务器/客户机语言失配。在再一示例中,某 些实施例可使用读/发送/刷新模式支持读取和更新。最后,某些实施例可向客 户机提供其可同步来访问来自内部专用网络或外部公共网络的网站的替换统 一资源定位符(URL)。为进一步改进同步操作,各实施例可改进关于何时将客户机设备与网站同 步的定时问题。例如,某些实施例可以通过向同步客户机提供建议的同步间隔 (例如,每隔P分钟的客户机同步)来管理客户机负载和/或服务器负载。建 议的同步间隔可以表示最小同步间隔、最大同步间隔或两者之间的某一值。建 议的同步间隔可以基于存储在服务器上的历史内容改变数据(例如,网格同 步),或基于来自客户机的先前的同步请求的结果(例如,指数型衰减)。
为了与服务器122同步结构化内容,客户机设备180可使用
SharePoint.StssyncHandler ActiveX控件。该控件被安装在具有Microsoft Outlook 的客户机设备180上,并指示客户机设备180上是否安装了 Microsoft Outlook 且能够同步特定类型的列表。例如,在WSS3.0板中,可被同步的列表的类型 包括日历列表、联系人列表、文档列表、任务列表、讨论列表以及其它列表。
以上各实施例的操作可以参考以下附图和所附示例来进一步描述。一些附 图可以包括逻辑流程。虽然此处呈现的这些附图可以包括特定的逻辑流程,但 可以理解,逻辑流程仅仅提供如何实现此处描述的一般功能的示例。此外,除 非另外指明,否则给出的逻辑流程不必要以所呈现的顺序执行。另外,给出的 逻辑流程可由硬件元素、由处理器执行的软件元素、或其任意组合来实现。各 实施例在该上下文中不受限制。
图2示出逻辑流程的一个实施例。图2示出逻辑流程200。逻辑流程200 可以表示此处描述的诸如网络100、计算设备112-l-n和/或客户机设备180-l-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执行对改变日志项的"成批"获取。
各实施例可使用版本历史来确定结构化内容的多个版本是否已被独立修 改。某些实施例可以使用版本历史来执行冲突检测和自动解决。版本历史是用 于在对等环境中自动解决一类特定同步冲突的机制。特别地,它可自动解决因 对一个项的一致的顺序改变而引起的冲突。
15作为示例,假定第一用户将一个项同步到第一客户机设备80-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列 表和改变号码,如下7^75 /似:2, / S5D德-^ 5 73-卯CJ5-舰C- 7^ 66, 7別";
每次一特定计算设备编辑一给定项,适当的同步模块(例如,同步模块 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上维护版本历史。此时,该版本历史可表 现如下.-
絲舰'f赝务器—G證力
第一用户然后在第一客户机设备180-1上编辑该项目。该版本历史现在可 表现如下
鮮麼,,多器—G隐,,—
第一用户将该项目同步到第二客户机设备180-2,然后从第二客户机设备 180-2同步到第三客户机设备180-3。由于没有对该项目的编辑,因此在版本历 史中没有相应的改变。第一用户在第三客户机设备180-3上编辑该项目。该版 本历史被更新如下
^多器—G,乂工/f—G證.2,家—第一用户从第三客户机设备180-3同步到服务器122-1。 第一用户第二天回去上班并将第一客户机设备180-1与服务器122-1同 步。第一客户机设备上的客户机同步模块182可以具有如下版本历史
f嚴多器一G隱/,工,—G"瓜力
服务器122-1上的服务器同步模块120可以具有如下版本历史
,多器一G"瓜'/' _T,—G"瓜'2'家一G"瓜'"
对于版本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可以具有以下版本历史
f,多器一G眼'/,工,—
同时,服务器122-1的服务器同步模块120可以具有以下版本历史
f赝多器一Gf/脂,帝户2_工伊—G離"
对版本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应用程序接收到具有项限制的请求时,删除操作 可被排除在项限制之外。可在列表查询中传递一参数以限制返回给rmvLimit 的项的个数。如果少于该数目的项改变,则将随着项一起返回更新的改变令牌。 然而,如果多于该数目的项改变,则不更新改变令牌,并且可返回最初传入的 相同的改变令牌。也可返回ListltemCollectionPositkmNext (列表项集合下一位 置)的值。在接收到ListltemCollectionPositionNext的值时,客户机设备180-1 应重新查询服务器122-1,同时发送改变令牌和该值两者。服务器122-1将运 行一新查询以返回从ListltemCollection 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的域不同的情况下也能同步该列表。
替换域映射可用任意数目的方式来实现。例如,在一个实施例中,替换域 可按以下顺序返回
A就^/, A历特,7, ,^定J7
这些映射可在"listitems"(列表项)标签上的"AlternateUrls"(替换 URL)属性中返回。如果映射不存在,则可返回相同的次序,并且为遗漏的域 插入逗号如下.-
(7z牟7/,"Zra"", A印5v〃fifej^w/f, /z"f 〃ex加"".com,,/z印.7/cw加w^ 这五个替换域映射都可以在中央管理中定义。域可仅包括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的总命中
21数可达每天10*24*100,000次,这算出为一天24小时每秒大约278次命中。大 约每隔60分钟同步的真正简单同步(RSS)源可使该问题进一步加剧。
可使用各种技术来减小给定服务器122-l-n上的工作负载。例如,在一个 实施例中,可在前端上实现对高速缓存列表和/或站点的修改的次数。如果要求 自从最后一次高速缓存的列表或站点以来的改变的请求到达服务器122-1修改 的次数,则服务器122-1将知道没有改变并且可完全避免查询数据库124、 126。 高速缓存可能需要以某一定期的间隔,诸如例如大约每隔5分钟过期。被高速 缓存的列表或站点的数目可能需要被限制以容纳存储器资源,诸如,例如大约 100个列表和/或站点。
减小给定服务器122-l-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-l-s重新 同步的概率的阈值来以智能的方式调整网络100的行为。例如,服务器管理员 可以调整该概率阈值以使客户机设备180-1在内容有10%的机率被更新时同 步。如果这生成太多的服务器负载,则管理员可将该阈值调整为50%概率阈值。 管理员可以继续细化该过程,直到网络性能在可接受的参数内。
在某些情况下,对将来列表使用的概率阈值可以基于历史使用数据。列表 可包括,例如一个或多个结构化内容类型的数据或项的集合。使用通常遵循模 式。人自然是习惯的生物,并且结构化工作环境通常在其创建可预测性时进一 步鼓励这一习惯。为表示过去的使用,时间可被划分成网格。假定一周的时间 段,则y轴可具有一周的各天,而x轴可具有每天的各小时。在该网格的每一 单元格中,可设置指示列表在该时间段内是否被更新的布尔值,其中"l"值 表示列表在该时间段内被更新,而"0"值表示列表在该时间段内未被更新。 例如,观察周一的行以及上午9:30-9:40的单元格,如果该单元格中的值是"1 ", 则列表在周一上午9:30到上午9:40之间的某一时刻被修改。下一个"1"可能 直到周一的下午3:10-下午3:20才出现。向前移动,监视一周的站点使用提供 了完整的网格。如果列表被更频繁地更新则该网格将有更多l值,并且如果列 表被较不频繁地更新则具有较多的0值。假定客户机设备180-1在周一上午9:05 与服务器122-1同步。在运行了查询来查看是否有任何东西改变之后,服务器 122-1现在需要向客户机设备180-1做出关于其何时应执行其下一次同步事件 的建议。分析历史数据,发现在周一上午9:30-上午9:40之间发生了更新。基 于该历史数据,服务器122-1可以指示客户机设备180-1在上午9:30-上午9:40 之间执行其下一次同步。在算法上,这可通过遍历网格直到达到l值来实现。对于经过的每一单元格,可将单元格时间大小添加到同步之间的建议时间。在
该示例中,经过了 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-l-s多久一次向服务 器122-l-n请求信息是轻松对比用户立即拥有最新的数据有多重要的有见识的 决策。如果服务器管理员将阈值设为例如50%或更少,则服务器122-1将返回 同步间隔20分钟。然而,如果阈值被设在50-100%之间,则服务器将返回同 步间隔30分钟。
生成同步间隔的概括算法可如下表示
尸違撒率
r,户定,離
S是每一卓i谘游好/坊錄度,^以J:示劍屮为川分辨
C是当#単元袼##;
G/7是拜潜,俊定<^0_/表示当#好/坊必游澄 M^M潜力游牟i潜教最乂澄,,WJ:^W屮;是I,P《'
尸。^=0;尸<7^++」 P =尸+ G,q//M;
值得注意的是,返回值不必对每一客户机请求重新计算。相反,它可被高 速缓存一段时间,并且直到下一时间间隔开始之前都被认为是有效的。在以上 示例中,该段时间可达10分钟。
为构建实际网格,每次当修改一个项时,检査列表的最后修改时间。如果 列表的最后修改时间发生在与当前时间相同的时间跨度内,则不需要写入改 变。例如,发生在上午9:00和上午9:10之间的同一时间段内的两个改变仅需 要一次更新。这将写入次数保持为最小,从而有助于锁竞争和规模。如果列表 的最后修改时间发生在与当前时间不同的时间跨度中,则当前时间跨度单元格 中的值可被递增"1"。在某些情况下,列表的修改时间也需要被更新,尽管 WSS 3.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怀層天2谦表
=字萝
M分辦度
2涨表 =2朋字萝
除了基于历史数据生成建议的同步间隔之外,建议的同步间隔也可基于来 自客户机的先前的同步请求的结果。例如,在一个实施例中,服务器同步模块
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可以通过发送
27"隐藏电子邮件警告"来通知客户机180-1需要同步事件。这可以充分利用现
有的警告基础结构。警告不一定要被用户看见,并且它在SharePoint中在用户 选择执行同步操作时自动创建。这对于不频繁改变的列表尤其有效。然而,客 户机设备180-1可能需要支持对传入邮件请求的接收以实现该特定技术。
此处阐明了许多具体细节以提供对这些实施例的全面理解。然而,本领域 技术人员将理解,没有这些具体细节也可实践这些实施例。在其它实例中,没 有详细地描述公知的操作、组件和电路以免得使这些实施例显得晦涩难懂。可 以理解,此处公开的具体的结构和功能细节可以是代表性的且不必要限制这些 实施例的范围。
还值得注意的是,任何对"一实施例"或"实施例"的引用都意味着结合 该实施例所描述的特定的特征、结构、或特性被包括在至少一个实施例中。出 现在说明书中各个地方的短语"在一实施例中"不必全都指的是同一实施例。
某些实施例可能使用表述"耦合的"和"连接的"及其派生词来描述。应 当理解,这些术语不旨在互为同义词。例如,某些实施例可能使用术语"连接 的"来描述以指示两个或更多元素互相有直接的物理的或电的接触。在另一示 例中,某些实施例可能使用术语"耦合的"来描述以指示两个或更多元素有直 接的物理的或电的接触。然而,术语"耦合的"还可以意味着两个或更多元素 互相不直接接触,而仍互相合作或交互。各实施例在该上下文中不受限制。
某些实施例可以例如使用可以存储如果被机器执行则使得机器执行根据 这些实施例的方法和/或操作的指令或一组指令的机器可读介质或物品来实现。 例如,这种机器可以包括任何合适的处理平台、计算平台、计算设备、计算系 统、处理系统、计算机、处理器等,且可以使用硬件和/或软件的任意合适的组 合来实现。例如,机器可读介质或物品可以包括任何合适类型的存储器单元、 存储器设备、存储器物品、存储器介质、存储设备、存储物品、存储介质和或 存储单元,例如,存储器、可移动或不可移动介质、可擦除或不可擦除介质、 可写或可重写介质、数字或模拟介质、硬盘、软盘、压縮盘只读存储器
(CD-ROM)、可记录压缩盘(CD-R)、可重写压縮盘(CD-RW)、光盘、 磁性介质、磁光介质、可移动存储器卡或盘、各种类型的数字多功能盘(DVD)、 磁带、磁盒等。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解, 所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体 特征和动作是作为实现权利要求的示例形式公开的。
权利要求
1. 一种包括包含指令的机器可读存储介质的物品,所述指令在被执行时使得系统标识(202)服务器和客户机共享的结构化内容各类型,并同步(204)对应于所述结构化内容类型的结构化内容。
2. 如权利要求l所述的物品,其特征在于,还包括在被执行时使得所述 系统执行以下动作的指令接收对服务器内容列表的请求、发送具有表示所述 服务器支持的结构化内容类型的结构化内容值的所述服务器内容列表、以及接 收同步所述服务器和所述客户机支持的结构化内容类型的同步请求。
3. 如权利要求l所述的物品,其特征在于,还包括在被执行时使得所述系统执行以下动作的指令接收具有表示所述客户机支持的结构化内容类型的结构化内容值的客户机内容列表、检索具有表示所述服务器支持的结构化内容 类型的结构化内容值的服务器内容列表、将所述服务器内容列表与所述客户机 内容列表进行比较、发送具有表示所述客户机和所述服务器支持的结构化内容 类型的结构化内容值的共享内容列表、以及接收根据所述共享内容列表来同步 结构化内容类型的同步请求。
4. 如权利要求l所述的物品,其特征在于,还包括在被执行时使得所述 系统生成不同超链接以发送对于不同结构化内容类型的所述同步请求的指令。
5. 如权利要求1所述的物品,其特征在于,还包括在被执行时使得所述系统执行以下动作的指令确定要同步的结构化内容的数量、基于所述数量设置同步参数、以及根据所述同步参数向所述客户机发送同步信息。
6. 如权利要求l所述的物品,其特征在于,还包括在被执行时使得所述 系统使用协议处理程序从web浏览器发送所述同步请求的指令。
7. 如权利要求l所述的物品,其特征在于,还包括在被执行时使得所述系统执行以下动作的指令接收具有所述结构化内容类型的所述同步请求、使用改变日志来确定所述结构化内容类型指示的结构化内容是否己被修改、以及 基于所述确定向所述客户机发送同步信息。
8. 如权利要求l所述的物品,其特征在于,还包括在被执行时使得所述系统使用版本历史来确定结构化内容的多个版本是否已被独立修改的指令。
9. 如权利要求l所述的物品,其特征在于,还包括在被执行时使得所述 系统使用特性包来检测数据模式冲突的指令。
10. 如权利要求l所述的物品,其特征在于,还包括在被执行时使得所述 系统使用字段值映射来检测语言冲突的指令。
11. 如权利要求l所述的物品,其特征在于,还包括在被执行时使得所述 系统执行以下动作的指令生成同步间隔参数、将所述同步间隔参数发送给所 述客户机、以及根据所述同步间隔参数从所述客户机接收同步请求。
12. 如权利要求l所述的物品,其特征在于,还包括在被执行时使得所述 系统执行以下动作的指令基于所述服务器存储的历史内容改变数据或来自先 前的同步请求的先前的同步结果来为客户机生成同步间隔参数,并将所述同步 间隔参数发送给所述客户机。
13. 如权利要求l所述的物品,其特征在于,还包括在被执行时使得所述 系统使用分页操作来同步所述结构化内容类型的指令。
14. 如权利要求l所述的物品,其特征在于,还包括在被执行时使得所述系统执行以下动作的指令生成第一网络地址来从内部专用网络发送具有至少一个结构化内容类型的所述同步请求,并生成第二网络地址来从外部公共网络 发送具有至少一个结构化内容类型的所述同步请求。
15. —种方法,包括标识(202)服务器和客户机共享的结构化内容类型;以及 同步(204)对应于所述结构化内容类型的结构化内容。
16. 如权利要求l所述的方法,其特征在于,包括 接收对服务器内容列表的请求;发送具有表示所述服务器支持的结构化内容类型的结构化内容值的所述 服务器内容列表;以及接收同步所述服务器和所述客户机支持的结构化内容类型的同步请求。
17. 如权利要求l所述的方法,其特征在于,包括接收具有表示所述客户机支持的结构化内容类型的结构化内容值的客户 机内容列表;检索具有表示所述服务器支持的结构化内容类型的结构化内容值的服务器内容列表;将所述服务器内容列表与所述客户机内容列表进行比较; 发送具有表示所述客户机和所述服务器支持的结构化内容类型的结构化 内容值的共享内容列表;以及接收根据所述共享内容列表同步结构化内容类型的同步请求。
18. —种包括具有服务器同步模块(120)的服务器(122)的装置,所述 服务器同步模块标识所述服务器和客户机(180)共享的结构化内容类型(134), 并同步对应于所述结构化内容类型的结构化内容。
19. 如权利要求19所述的装置,其特征在于,包括具有客户机同步模块 的所述客户机,所述客户机同步模块发送同步所述服务器和所述客户机支持的 结构化内容类型的同步请求。
20. 如权利要求19所述的装置,其特征在于,所述服务器同步模块接收 具有客户机结构化内容类型的客户机内容列表,将所述客户机结构化内容类型与服务器结构化内容类型进行比较,发送具有匹配的结构化内容类型的共享内 容列表,以及接收根据所述共享内容列表来同步结构化内容类型的同步请求。
全文摘要
描述了同步结构化网站内容的技术。一种装置可包括具有服务器同步模块的服务器,该服务器同步模块标识服务器和客户机共享的结构化内容类型,并同步对应于该结构化内容类型的结构化内容。对其它实施方式也予以描述并主张权利。
文档编号G06F17/00GK101454769SQ200780019071
公开日2009年6月10日 申请日期2007年5月22日 优先权日2006年5月22日
发明者D·B·维特利欧, J·费雷拉 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1