首页> 中国专利> 用于访问和更新结构化数据元素的多客户机协作

用于访问和更新结构化数据元素的多客户机协作

摘要

公开了用于提供多客户机协作以用于访问和更新结构化数据元素的工具和技术。客户机系统可呈现提供可供协作的已发布的数据元素的库的用户界面。客户机可请求所选数据元素,同时引用与所选数据元素相关联的唯一标识符。发布数据元素以便由其他客户机协作的那些客户机可呈现提供候选结构化数据元素的表示并接收对被选择发布的那些数据元素的选择的用户界面。发布客户机然后可发送所选数据元素以便发布。客户机系统可与服务器或协作服务交互,该服务器或协作服务可接收客户机已发布以供其他客户机访问的结构化数据元素。这些服务器可以为已发布的数据元素定义相应的唯一标识符,并且可将结构化数据元素和对应的唯一标识符发送到各个客户机系统。

著录项

  • 公开/公告号CN101911046A

    专利类型发明专利

  • 公开/公告日2010-12-08

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200880125027.6

  • 发明设计人 R·G·霍金;

    申请日2008-12-24

  • 分类号G06F15/16(20060101);G06F9/06(20060101);G06F21/00(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人杨洁;钱静芳

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 01:18:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-13

    专利权的转移 IPC(主分类):G06F15/16 变更前: 变更后: 登记生效日:20150424 申请日:20081224

    专利申请权、专利权的转移

  • 2012-10-10

    授权

    授权

  • 2011-01-19

    实质审查的生效 IPC(主分类):G06F15/16 申请日:20081224

    实质审查的生效

  • 2010-12-08

    公开

    公开

说明书

背景

出于各种原因,计算系统和应用程序的用户正变得在地理上彼此越来越分开或分散。不管这一距离或分隔,这些用户可能希望就他们可能正在操作的各种项目进行协作。不同的应用程序和实用程序可以在某种程度上支持协作;然而,该领域中的进一步发展和改进正在进行中。

概述

公开了用于提供用于访问和更新结构化数据元素的多客户机协作的工具和技术。客户机系统(“客户机”)可呈现提供可供协作的已发布的数据元素的库的用户界面。客户机可请求所选数据元素,同时引用与所选数据元素相关联的唯一标识符。发布数据元素以便由其他客户机协作的那些客户机可呈现提供候选结构化数据元素的表示并接收对被选择发布的那些数据元素的选择的用户界面。发布客户机然后可发送所选数据元素以便发布。客户机系统可与服务器或协作服务交互,该服务器或协作服务可接收客户机已发布以供其他客户机访问的结构化数据元素。这些服务器可以为已发布的数据元素定义各自的唯一标识符,并且可将结构化数据元素和对应的唯一标识符发送到各个客户机系统。

上述主题也可被实现为方法、计算机控制装置、计算机进程、计算系统或诸如计算机可读介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他特征将变得显而易见。

提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本概述用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。

附图简述

图1是示出启用多客户机协作以用于访问和更新结构化数据元素的系统或操作环境的框图。

图2是用于允许正在协作的客户机系统访问来自服务器的结构化主数据的过程的组合的框、数据和流程图。

图3是用于允许客户机系统对结构化数据元素应用本地规约的过程的组合的框、数据和流程图。

图4是用于处理对不同的客户机表中的主表数据作出的正在进行的变更或更改的过程的组合的框、数据和流程图。

图5是示出在两个或更多客户机表结构之间共享的主表结构的示例的框图。

图6是示出可以在客户机表之一变更从主表中消费的数据时产生的更新的框图。

图7是示出可由于来自一个客户机表的更新而从主表传播的更新的框图。

详细描述

以下详细描述涉及用于启用多客户机协作以用于访问和更新结构化数据元素的技术。术语“结构化数据元素”在此处用来指出现在总组织模式的上下文中的数据元素,且不限制可能的实现。例如,这些组织模式可以在电子表或其组件中实现。这些电子表组件可包括工作簿、表、行、列、单元格或其各部分。在不限制可能的实现的情况下,并且只是为了方便本说明书,参考说明性电子表术语来呈现以下分层结构:

  示例电子  表术语  概括  说明性角色  工作簿  模型、报告、  或应用程序  提供表可在其中操作的上下文。公式可引用表。在  主表中,主表中的公式可引用实际上不在该主表本  身中的工作簿中的其他数据。  表  数据协作结  构  用户就同一表进行协作,同时不同的用户可具有不  同的工作簿。此处的描述可允许用户之间在表级进  行协作。  行Id、列  数据点标识  符  标识数据点以使得对由不同用户维护的不同工作簿  中的相同逻辑单元格/数据点对用对表的变更。  单元格  数据点  数据的个别值。

尽管在结合计算机系统上的操作系统和应用程序的执行而执行的程序模块的一般上下文中呈现了此处描述的主题,但是本领域技术人员将认识到,其他实现可以结合其他类型的程序模块来执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员将明白,可以利用其他计算机系统配置来实施此处描述的主题,这些计算机系统配置包括手持式设备、多处理器系统,基于微处理器的或可编程消费电子产品、小型计算机、大型计算机等等。

在下面的详细描述中,将参考构成本发明的一部分的附图,并且在附图中作为说明示出了各具体实施例或示例。现在参考附图(全部若干附图中相同的标号表示相同的元素),将描述用于访问和更新结构化数据元素的多客户机协作的工具和技术的各方面。

图1示出了在100处概括地表示的允许多个客户机系统协作地访问和更新结构化数据元素的系统或操作环境。这些系统100可包括一个或多个服务器系统102,且图1在102a和102n处提供服务器的两个示例(统称为服务器102)。然而,此处的描述的实现可包括任何数量的服务器。

服务器102可与一个或多个客户机系统104通信,且图1提供了如在104a和104n表示的客户机系统的两个示例(统称为客户机系统104)。服务器和客户机系统可通过一个或多个网络106彼此通信,该网络可表示使用任何适当的联网和信令技术来构造的局域网或广域网。网络106可包括例如,因特网。这些网络可提供无线和/或有线通信能力。

服务器和客户机可经由合适的链路108与网络106通信。图1示出了分别与服务器102a和102n以及客户机104a和104n相关联的链路108a、108b、108c、108n。这些链路108表示允许服务器和客户机系统连接到网络的硬件和/或软件组件。这些组件可包括网络适配器、协议栈等。

图1中用来描绘服务器、客户机系统和网络的图形元素只是为了便于说明而选择的,并且不是为了限制此处的描述的可能的实现。更具体而言,图1示出了其中客户机系统104a是便携式计算系统的示例,无论其被表征为膝上型计算机、笔记本、还是其他以移动系统。客户机系统104n表示固定或桌面系统。然而,此处的描绘还构想其他形式的客户机系统,包括但不限于无线个人数字助理、智能电话等。

更详细地转向服务器102,这些服务器可包括一个或多个处理器110,这些处理器可具有被选为适于特定实现的特定类型或体系结构。处理器110可以耦合到被选为与处理器110兼容的一个或多个总线系统112。

服务器102可包括耦合到总线系统112的计算机可读存储介质114的一个或多个实例。这些总线系统可允许处理器110将代码和/或数据读取到计算机可读存储介质114或从计算机可读存储介质114读取代码和/或数据。介质114可表示使用包括但不限于半导体、磁性材料、光学等在内的任何合适的技术来实现的存储元件。介质114可包括存储器组件,无论其被归类为RAM、ROM、闪存、还是其他类型,并且还可表示硬盘驱动器。

存储介质114可包括指令的一个或多个模块116,该指令在被加载到处理器110中并被执行时,使得服务器102向客户机系统提供启用多客户机协作以用于访问和更新结构化数据元素的一组服务。如在本说明书全文中详述地,这些服务器侧协作服务可允许客户机系统处的一个或多个用户(在稍后附图中示出)访问主表118中存储的结构化数据。本说明书提供涉及电子表应用的上下文中的结构化数据的示例,但此处所描述的原理可扩展到其他应用而不背离本说明书的范围和精神。一般而言,协作服务模块116管理去往和来自主表118的访问和数据传输,如虚线120所示。

更详细地转向客户机系统104,这些客户机系统可包括一个或多个处理器122。这些处理器可被选为适于这些客户机系统,并且可具有或不具有与服务器中的处理器110相同的类型或体系结构。处理器122可以耦合到被选为与处理器122兼容的一个或多个总线系统124,并因此可具有或不具有与服务器中的总线系统112相同的类型或体系结构。

这些客户机系统可包括耦合到总线系统124的计算机可读存储介质126的一个或多个实例。总线系统124可允许处理器122将代码和/或数据读取到计算机可读存储介质126或从计算机可读存储介质126读取代码和/或数据。对存储介质114的概括描述一般适用于存储介质126,并因此不在此重复。

存储介质126可包括指令的一个或多个模块128,当这些指令被加载到处理器122中并被执行时,使得客户机系统102参与服务器侧模块116以提供协作服务。如在本说明书全文中详述地,这些客户机侧协作服务可允许客户机系统的用户将结构化数据从主表118加载到客户机侧、或本地表130中。一般而言,协作服务模块128管理去往和来自客户机表130的访问和数据传输,如虚线132所示。

如图1所示,服务器侧服务116和客户机侧服务128可以互操作以允许工作流在服务器和客户机系统之间传递,如由虚线134概括地表示的。后续附图和描述就协作工作流134进行进一步详述,但这些工作流一般表示命令流、数据流、以及与就主存在服务器102处的结构化数据进行协作的客户机系统104(及相关联的用户)相关的其他处理。

虽然图1详述了服务器102n和客户机系统104n的各个组件,但这些描述可以同等地适用于服务器102a和客户机系统104a。这些描述还可适用于图1中未示出、但可被包括在此处所提供的技术的各个实现中的服务器和客户机系统。

虽然图1示出了包括服务器系统和客户机系统的示例实现,但应当注意,其他实现是可能的。例如,此处所描述的如由服务器执行的功能可被分发给客户机。更具体而言,客户机可包括与其他客户机通信以执行此处所描述的服务器功能的服务。以此方式,服务器功能可被分散和分发到客户机本身。

在描述了如图1所示的系统或操作环境100后,本讨论继续至对与用于访问和更新结构化数据元素的多客户机协作相关的过程和数据流的描述,这些过程和数据流现在在图2中呈现。具体而言,图2示出了概括地在200处表示的用于允许客户机系统协作地访问来自服务器的结构化主数据的过程和数据流。为了易于描述而不是为了限制可能的实现,图2可带入来自先前附图的附图标记以指代相似的元素。

图2带入客户机表130的示例,且示例客户机表130a与来自图1的客户机系统104a相关联,而示例客户机表130n与客户机系统104n相关联。图2还带入与服务器102相关联的示例主表118。客户机侧协作服务128a和128n的各个实例分别管理客户机表130a和130n,并且服务器侧协作服务116管理主表118。图2还提供协作工作流134的实例,且工作流134a传递至/自客户机侧协作服务128a而工作流134n传递至/自客户机侧协作服务128n。如通过查看图2所理解地,图2所示的各个数据流就协作工作流134a和134n进行进一步详述。

更详细地转向过程和数据流200,框202表示客户机系统(例如,与客户机侧服务128n相关联的客户机系统104n)呈现允许用户请求将一个或多个结构化数据元素从客户机系统发布到服务器的用户界面(UI)。这些结构化数据元素的示例可包括表,其表示以行和列排列的数据结构的集合,且在行和列的相交处定义单元格。这些单元格可包含如由用户选择或编程的数据、公式或标签。框202可包括响应于显式用户命令来呈现该UI,或者可包括响应于某一组条件来自动呈现该UI。

响应于框202中所呈现的UI,用户204可选择要发布的一个或多个表。例如,用户可能已经对多个不同的表或工作表进行编程以执行不同的功能,并且可选择这些表或工作表中的一个或多个以供发布,以使得其他用户能够就操作这些表或工作表进行协作。用户可选择发布同一工作簿中的多个表。用户可选择整个表或工作表以供发布,或者可选择其部分。图2在206处表示这些表选择,并且处理框208表示接收这些选择206。例如,框208可包括接收如用如由硬件和/或软件传达的、如用适当的信号和/或事件来表示的鼠标点击、选择、或来自用户的其他响应的指示。

框210表示发送或传送用户选择发布的表。图2在212处表示这些所选表。虽然未在图2中显式地示出,但框202、208和210可以重复任何次数,以使得用户能够选择结构化数据的多个实例以供发布给其他用户。

在与服务器侧服务116相关联的服务器处,框214表示向一个或多个客户机系统发送表(例如,212)已被发布并可供消费的通知。在不限制可能的实现的情况下,如此处所使用的术语“发布”可以指将表放置到公共池或库中,其中任何数量的其他客户机(和/或对应的用户)可浏览这些已发布的表,并选择这些表中的一个或多个以供协作。在各实现中,该已发布的表的池或库在非限定数量的客户机或用户可访问库并获取表的共享副本以供协作的意义上可以是可扩充的。当给定客户机发布表时,该客户机可能不知道其他哪些客户机将最终共享所发布的表。

图2在216处表示可用表的通知,并且这些表216可包括如由客户机服务128n发布的表212,以及由其他客户机服务和相关客户机系统发布的其他表。可用表216可被组织成库,该库可包含对应于已经发布的各个表的条目。

这些服务器系统和客户机系统可定义组织可供客户机系统选择的候选数据元素集(例如,表、数据协作结构或其各部分,如以上提供的示例分层结构中所示)的一个或多个协议。这些协议可标识这些候选数据元素中的哪一些已被特定客户机系统选择。例如,这些协议可组织候选数据元素,并且可将唯一标识符与候选数据元素中的相应数据元素相关联。在此为了易于引用而不是为了限制可能的实现,本说明书引用与这些候选数据元素相关联的相应的、唯一数据点标识符。因此,框214可包括将这些标识符的各个实例与从服务器系统发布到客户机系统的可用表216中的元素相关联。协作服务128和116对用户不可见地维护这些标识符,除非用户显式地选择查看这些标识符。另外,与发布或贡献客户机相关联的协作服务128n可接收与由特定客户机发布或贡献的表相关联的标识符,以便于稍后跟踪和协调对这些已发布或已贡献的表的变更。

在与客户机侧服务128a相关联的其他客户机系统(例如,104a)处,框218表示呈现展示已由其他客户机发布并因此可供客户机系统104a消费的表、工作簿或其他结构化数据元素的UI。与客户机系统104a相关联的用户220可审阅该UI,并且选择呈现在该UI中的可用结构化数据元素中的一个或多个。图2在222处表示这些选择。

进而,框224表示客户机服务模块128a从用户接收对结构化数据元素(例如,表、工作表、行、列或这样的结构化数据元素的其他构造)的选择。例如,框224(如以上框208)可包括接收如用如由硬件和/或软件传达的、用适当的信号和/或事件来表示的鼠标点击、选择、或来自用户的其他响应的指示。

框226表示客户机系统发送用户已选择哪些表的指示。在用户选择这些可用表中的一个或多个后,框226可通知服务器系统用户选择了哪些表或数据元素,如228所示。这些通知或指示228可包括所选数据元素的标识符,如图2所示。

在维护主表118的服务器系统处,框230表示从客户机系统接收选择228。如上所述,选择228可引用对应于所选数据元素的一个或多个标识符。进而,框232表示从主表(例如,118)中检索所选数据元素。框232可包括将包括在选择228中的输入标识符用作主表中的索引。框234表示将所选数据元素发送到请求这些数据元素的客户机系统。图2在236处表示这些已发送的数据元素。

在客户机系统处,框238表示接收用户先前选择(即,选择222)的所请求的数据元素。图2示出了其中客户机表130a接收从另一客户机表130n发布的数据元素的示例。然而,应当注意,任何数量的客户机表可请求并接收从该客户机表130n发布的数据元素,如现在在图3中所示出的。另外,任何数量的客户机表可发布数据元素以便与其他用户协作。

为了描述简明起见,但不是为了限制,对过程和数据流200的描述继续至图3,如出现在图2中的续页标记所示。本讨论现在继续至图3以继续本说明书。

图3示出了概括地在300处表示的用于允许客户机系统对从服务器接收到的结构化主数据应用本地格式化的过程和数据流。为了易于描述而不是为了限制可能的实现,图3可带入来自先前附图的附图标记以指代相似的元素。

如图3所示,客户机表130a从图2中带入。图3还提供了由另一客户机系统维护的另一客户机表130m,假设该另一客户机系统也已向服务器系统请求一个或多个数据元素并从该服务器系统接收到该一个或多个数据元素。图3示出了维护客户机表130m的客户机侧协作服务128m。由客户机表130m接收到的数据元素可以与或不与由客户机表130a请求和接收的数据元素相同。

转向客户机表130a,来自图2的处理可继续至框302,框302表示将从主表接收到的数据元素合并到本地客户机表130a中。例如,客户机表130a可维护对于与客户机表130a相关联的用户是专用或本地的某些数据,并且可请求已发布的数据元素中的某些元素以扩充本地或专用数据。框302由此可包括将如从服务器系统接收到的已发布的数据元素(例如,图2中的236)集成到存储在客户机表130a中的任何本地/专用信息中。框302还可包括在将这些数据元素集成到客户机表130a中后维护如与已发布的数据元素一起接收的任何标识符或索引信息。如将在下文中进一步描述的,该标识符或索引信息可允许跟踪在客户机表130a中本地地作出的变更,并且可允许将这些变更报告回到服务器系统并跨多个进行协作的客户机系统传播这些变更。

框304表示应用如本地用户(例如,220)所请求的任何本地格式化、排序、过滤或其他本地定制。例如,本地用户可请求以特定颜色、边框、阴影等呈现他或她的数据。在另一示例中,本地用户可发出以某种方式对本地表进行排序的命令。在又一示例中,本地用户可发出过滤或隐藏本地表中的某些数据的命令。

框306表示向用户220呈现本地表,且已经对该本地表应用任何本地指定的格式化、过滤、排序或其他操作,并且已经集成从服务器系统接收到的任何主数据元素。框306可包括突出显示或以其他方式指示主数据元素,以使得本地用户220可以容易地察觉到哪些数据是本地的以及哪些数据是外部的(即,源自服务器系统或其他客户机系统)。图3在308处表示如响应于本地指定310(例如,格式化、排序、过滤或类似定制)而呈现给用户220的本地表。

转向其他接收客户机表130m和相关的协作服务128m,框312、314和316对应于框302、304和306中所描述的、如对其他本地客户机表130m执行的处理。具体而言,框314可包括响应于由用户320指定的本地指定或命令318来对本地客户机表130m进行格式化、排序、过滤或以其他方式本地定制本地客户机表130m。图3在322处表示如呈现给用户320的本地表。然而,对于本地客户机表130a的本地指定310可以与对于本地客户表130m的本地指定318不同。以此方式,客户机系统(更具而言是服务128a和128m)可允许不同的用户220和320根据其自己的指定来不同地定制其本地表130a和130m。例如,用户220和230可不同地对其本地表130a和130m进行排序或过滤。

如虚线324和326所示,本地表130a和130m可包括从服务器系统接收到的至少某些主数据元素,且这些主数据元素被集成到本地表中。标识符可用于标识和组织本地表中的主数据元素。为了易于说明而不是为了限制可能的实现,对过程和数据流300的描述继续至图4,如出现在图3中的续页标记所示。

图4示出了涉及处理对不同的客户机表中的主表数据作出的正在进行的变更或更改的过程和数据流400。图4还示出将这些变更或更改集成到主表中,并且跨各种不同的客户机系统传播这些变更。为了易于描述而不是为了限制可能的实现,图4可带入来自先前附图的附图标记以指代相似的元素。

从来自图3的续页标记开始,框402表示从用户(例如,用户220)接收一个或多个命令。这些命令一般可表示对客户机表130a的任何更新,无论针对本地或专用数据还是针对从服务器系统接收到的主数据。图4在404处概括表示这些命令。

在用户已更新从主表接收到的数据元素的情况下,框406表示将对主表数据的更新发送到服务器系统(例如,服务116)。图4在408处表示这些更新,并且这些更新可引用对应于在客户机级变更的数据元素的标识符。更新408可包括各个变更记录,这些记录可包括标识符、对所涉及的列的引用、以及新值。出于效率考虑,可批处理变更。变更还可以在客户机从网络断开时批处理或以其他方式处在离线模式中批处理。

在服务器系统处,框410表示接收对主表的更新408。进而,框412表示将从客户机系统接收到的这些更新合并到主表中。框412可包括从更新408中提取标识符,访问主表(例如,118)中对应于所指示的标识符的部分,并且更新主表的适当部分。

转向协作服务组件128m,该服务组件可允许另一用户(例如,320)更新由该组件128m管理的客户机表(例如,图3中的130m)。更具体而言,框414表示从用户320接收更新命令,且图4在416处表示这些命令。响应于命令416,服务组件128m可相应地更新客户机表。如以上对于框402所讨论地,这些更新可包括对本地/专用数据的更新,以及对包含在客户机表中的主数据的更新。在用户命令导致对主数据元素的变更的情况下,框418表示将任何这样的更新发送到主数据元素绑定到的服务器系统。图4在420处表示这些更新。

返回到服务器侧协作服务116,框410(以上所描述的)可包括不仅从客户机服务组件128a,而且从客户机服务组件128m接收更新。换言之,框410可包括接收更新408和/或更新420,以及来自图4中未示出的其他客户机的更新。另外,框412可包括将这些更新集成或合并到由服务器系统维护的主表中。标识符可通过指定主数据中的哪些部分已由客户机系统变更来方便该集成或合并。在跨所有客户机系统聚集的情况下,这些标识符将指示主数据中的哪些部分将要被更新并被重新发布到客户机。

框422表示跨不同的客户机发布对主表的更新。更具体而言,假设客户机服务组件128m变更绑定到服务器系统的某些主数据,框422可包括向客户机服务组件128a发布这些变更或更新。框422还可包括将这些变更发布到已订阅该主数据的任何其他客户机系统。在HTTP上下文中,框422可包括服务器侧服务响应来自客户机的轮询。

类似地,如果客户机服务组件128a对绑定到服务器系统的某些主数据作出变更,则框422可包括将这些变更发布到客户机服务组件128m以及已订阅该主数据的任何其他客户机系统。图4在424处表示已发布到客户机服务组件128a的主表更新,并在426处表示已发布到客户机服务组件128m的主表更新。这些更新可引用受特定变更影响的主表的标识符。

在客户机服务组件128a处,框428表示接收表更新424,该表更新424指示由其他客户机系统对主表数据作出的变更。进而,框430表示将这些更新合并到本地客户机表(例如,图3中的130a)中。标识符参数可通过允许客户机服务组件128a确定要更新主表数据中的哪些部分来方便框430。框432表示向用户220呈现已更新的主表数据。框432可包括呈现已更新的主表数据以及由客户机系统维护的任何本地或专用数据。

转向其他客户机服务组件128m,框434、436和438一般对应于框428、430和432。因此,框434表示接收主表更新426,框436表示将这些更新合并到客户机系统处的本地数据显示中,而框438表示向客户机系统的用户呈现这些已合并的更新。

在这两个客户机系统处,客户机服务组件128a和128m可以在用户220和320继续与呈现给他们的数据元素交互时无限地重复图4所示的各框。由此,客户机服务组件128a可重复框402、406、428、430和432任何次数,如箭头440所示。类似地,客户机服务组件128m可重复框414、418、434、436和438任何次数,如箭头442所示。

以上述方式,多个客户机系统可以协作地访问共享数据元素(例如,电子表格中的表)。在某些情况下,多个客户机可同时访问这些共享数据元素。在其他情况下,某些客户机可能处在离线模式中,且在该客户机下一次上线时协调在离线时作出的任何变更。更新可以同时、彼此按序、彼此异步地发生。这些客户机中的任一个可更新这些共享数据元素,且由一个客户机作出的更新被传播到共享相同的数据元素的任何其他客户机。服务器系统可使用分配给共享数据元素的标识符来合并和协调这些更新或变更。在描述了图2-4中的处理流程200、300和400后,本讨论现在继续至对上述用于启用多客户机协作以用于访问和更新结构化数据元素的技术的操作示例的描述,该描述现在用图5-7来呈现。

图5示出了在500处概括地表示的、在两个或更多客户机表结构之间共享的主表结构的示例。为了易于描述而不是为了限制可能的实现,图5-7可带入来自先前附图的附图标记以指代相似的元素。例如,客户机服务组件128a可管理客户机表130a,主服务组件116可管理主表118,而客户机服务组件128m可管理客户机表130m。为了易于引用和描述,图5示出了名为“Steve”的正通过协作服务组件128a访问客户机表130a的虚构用户,以及名为“Miriam”的正通过协作服务组件128m访问客户机表130m的虚构用户。出于描述图5-7所示的示例的目的,而不是为了限制可能的实现,假设Steve和Miriam正在使用电子表格类型的应用程序,诸如可从华盛顿州雷蒙德市的微软公司购得的应用程序系列。在提供这些示例时,此处的描述不限于这些特定产品或其版本,而是可以用可从任何特定厂商购得的各种产品和/或版本来实现。

图5提供了此处被称为“实况表”的主表118的示例,其包含在服务器(例如,图1中的102)上运行的工作簿“主表.Xlsx”502。实况表118可包括基于工作簿的其余部分来执行某些计算的计算出的(即,“计算”)列504。如以下示例所描述的,计算列可包含公式,这些公式基于驻留在服务器上的数据和/或由如Steve、Miriam等协作用户提供的数据来计算值。假设工作簿502被配置成进行库存跟踪和管理,该工作簿可在行506中提供关于第一物品的信息,并且可在行508中提供关于第二物品的信息。列510可提供这些物品的数量或量,列512可指示这些物品位于哪里,而列514可命名这些物品。由这些行和列的相交定义的单元格能够描述各行和各列所传达的信息的特定实例。

转向客户机表130a,假设用户Steve是管理员,他已打开名为“管理员库存.xls”的工作簿516,并且已将实况表的至少一部分以及用于修改从该实况表中消费的数据的指令导入到客户机表130a中。例如,假设Steve已从主表接收到行506和508中的值的当前实例。图5在506a和506b处表示如在客户机表130a中消费的这些导入的行。还假设Steve已从主表导入计算列504,如504a所示。客户机表130a包含对应于资产“Foo”的计算出的值300,以及对应于资产“Bar”的计算出的值2000,如列504a所示。一般而言,工作簿516中的列根据工作簿502中的列来排列。

转向客户机表130m,假设用户Miriam是分析员,她打开名为“库存分析.xls”的工作簿518。该工作簿518可包含实况表的至少各部分,且行506m和508m对应于来自主表118的行506和508,并且工作簿518的列一般根据工作簿502中的列来排列。工作簿518包括被标记为“合计”的行520并将其打开。行520对来自对应于工作簿502中的计算列504的计算列504m计算出的值求和。Miriam的工作簿518还可包括对如由Miriam、Steve和从主表118消费数据的任何其他用户报告的“Bar”物品的数量求和的行522。单元格可定义用于对“Bar”物品计数的求和公式。在描述了工作簿502、516和518的初始布局后,本讨论现在继续至对如何处理共享信息中的变更的描述,该描述现在用图6和7来呈现。

图6示出了在600处概括地表示的、可以在一个协作用户更新从主表中消费的数据时产生的更新。在这些示例中,用户Steve将新行602添加到他的工作簿516(从图5带入)。该新行602提供关于“Bar”物品的附加数据,以指示这些物品中的20个在地点“雷蒙德”可用。该对工作簿516的更新提供图4所示的客户机系统用于更新来自主表的信息的数据流408的示例。由此,图6带入附图标记408以标记由于本地变更(在这种情况下是对行和单元格的变更)而产生的对主表的更新。

在主表118处,协作服务模块116接收更新408。作为响应,工作簿502添加新行602n,并将其与在用于协作的不同客户机系统之间共享的结构化数据元素中标识该新行的值(例如,行_id)相关联。工作簿502还为新行602n更新列510、512、514和504以并入更新408。由此,主表现在指示资产“Bar”的20个实例在雷蒙德可用。另外,行602n中的单元格604包括在示例计算列504中定义的公式的新实例。在描述了主表和相关工作簿502可如何变更以并入来自Steve的客户机工作簿516的变更后,本讨论现在继续至如何将这些变更传播至Steve和Miriam的工作簿的描述。

图7示出了在700处概括地表示的由于来自一个客户机表的更新而从主表传播的更新。继续以上表征Steve和Miriam的本地表的示例,主表118和主工作簿502可将由于对Steve的工作簿516作出的变更而导致的行/单元格变更传递至Miriam的工作簿518。图7将这些对Miriam的工作簿的更新表示为行/单元格变更702。由此,协作服务128m用对应于出现在其他工作簿中的行602和602n的新行602m来更新Miriam的工作簿518。更具体而言,标识符(例如,行_id参数)可将Miriam的新行602n链接或绑定到主表中的对应的行602n和Steve的工作表中的对应的行602。以此方式,更新Miriam的工作簿以反映在雷蒙德的20个“Bar”物品。

除了用新行/单元格来更新Miriam之外,主工作簿502还响应于Steve的变更来重新计算计算列504,并且用重新计算出的值来更新Steve和Miriam的表和工作簿。图7在704处将对计算列的更新表示为传递至Steve的工作簿516,并在706处将对计算列的更新表示为传递至Miriam的工作簿518。更新702、704和706提供图4所示的主表更新425和426的示例。然而,图7用新的标号来引用这些更新以便于单独讨论对各种客户机表的不同类型的更新。

在Steve的工作簿516处,响应于更新704,协作服务128a更新计算列504a以使得单元格708a包含由主表单元格604中的公式计算出的计算值。在所示示例中,单元格708a包含值‘8000’。在Miriam的工作簿518处,响应于更新702和704,协作服务128m更新计算列504m以使得单元格708m包含由主表单元格604计算出的计算值(例如,‘8000’)。因为计算列现在包含新的值(即,708m处的‘8000’),所以Miriam的行520本地地更新,如单元格710中的已更新的总和‘10300’所示。

回想对图5的描述,Miriam的表包括用于对归于被标记为“Bar”的物品的计算出的值求和的行522。响应于新单元格708m中的值‘8000’,单元格524将该值与单元格712中的预先存在的值‘2000’相加,从而产生已更新的总和‘10000’。在描述了以上行和单元格变更跨多个协作客户机传播的示例后,本说明书现在提供各种类型的变更的更详细的示例。

添加和删除行的操作可包括发送对应于受影响的行的相关行_id信息。当客户机表从共享客户机表中删除一行时,该客户机可将具有该行_id的通知发送到服务器。作为响应,绑定到共享客户机表的主表和其他客户机表可对具有该行_id的行执行表行删除操作。

当客户机表在表的末尾插入或添加新行时,该客户机表可以为该新行生成临时行_id。该客户机表然后可向服务器发送引用该临时行_id的添加行通知。该服务器可生成并返回该客户机表(和其他服务器或客户机表)然后将对该新行使用的永久行_id。绑定到该客户机表的主表和其他客户机表然后用该永久行_id来向其表添加新行。可以发送或不发送该新行在表中的位置。通常,新行可以出现在每一个表的底部,如果用户正在同时添加新行,则可能在上面。在某些实现中,可以在客户机处扣留新行通知直到某些数据可供与其一起发送到服务器。

在至少某些实现中,例如响应于在特定客户机处有效的本地指定(例如,图3中的指定310和318),只对客户机表的本地实例应用排序。以此方式,不同的用户可对其自己的客户机表应用其自己的排序。当新行出现时,它们可以不立即排序,在数据变更时也不自动应用排序。该方法可防止用户在受影响的表中的位置在他们输入数据时变化。一旦编辑或插入完成,用户就可肯定地重新应用其排序。客户机侧服务可向用户提供始终排序选项,以使得新数据在到达时就自动排序。该选项可以对执行分析的客户机,而不是执行数据输入的客户机是有吸引力的。

客户机侧服务可提供可以如排序那样工作的过滤功能。过滤功能可响应于特定客户机处的本地指定(图3中的310和318)来执行。不同的用户可指定其自己的过滤,而不影响其他用户。如同排序,过滤可被调节以不会使得数据位置在用户输入数据时不断改变。始终过滤选项可具有与始终排序选项相似的值。

客户机侧服务可提供合计行能力,该能力对出现在一个或多个列中的值求和。该合计行能力对于客户机表可以是本地的(例如,响应于本地指定),且用户选择是否查看或看它。类似的考虑事项可适用于子合计功能。

不同的用户可选择对其客户机表应用什么表样式。这些表样式可指定特定边框、阴影、颜色、突出显示、或本地地应用于向不同用户显示的客户机表的其他可视定制。在一个客户机处应用的本地定制(例如,响应于本地指定)通常不会影响在其他客户机处呈现的显示画面。

用户可以在不影响主表的情况下对其客户机表的各列进行重新排序。这些用户还可以在不影响主表的情况下按需删除列。

假设给定客户机表包含一个或多个计算列,客户机侧服务可以不允许客户机表的用户编辑该客户机表中的计算列并将变更推送回主表,除了经由消费者模式变更协议之外。在这些协议之外,这些列可被视作是只读的。

在计算列包括对于给定表完全是内部的依赖性的情况下(例如,乘以表中的两列),可将对计算列的更新从主表向下推送到客户机表,以给予更快的反馈和更佳的离线处理体验。主表可提供不向下推送对于这些计算列的公式的选项,类似于接下来描述的如用于具有外部依赖性的计算列的特征。

在计算列包括对于给定表是外部的至少一个依赖性的情况下,于是消费客户机表通常将不评估它们。相反,服务器可评估这些计算列并将所得值向下推送到消费客户机表。例如,这些计算列可包含专有公式,并且该机制提供在实际上不提供或展示专有公式的情况下发送使用专用公式计算的客户机表值的方式。因为只有这些列中的值被发送到客户机,而不是整个工作簿重新计算,所以网络量得以减少并且可以在消费客户机表的工作簿中完成任何本地计算。如果计算列具有异常并包括外部依赖性,则消费客户机表可保持不知道异常,并且将接收针对这些异常计算出的值。如果异常在被发送到消费客户机表的列中,则也可发送异常公式。

客户机表可添加只存在于该客户机表中的计算列。客户机表本地计算列可以在新行出现时本地填充这样的计算列,该计算列被本地计算和维护。

如果在同一客户机工作簿中消费来自同一主工作簿的多个主表,则可以在客户机处本地地解析客户机工作簿中的引用,而不回头引用主工作簿。由此,基于这些引用的任何公式可以在客户机处本地地计算,而不招致与主工作簿通信的开销。

一般而言,单独地对不同的客户机表应用格式化。由此,格式化给定客户机表中的单元格将只格式化该客户机表的该实例。以下是可适用于各实施例的某些异常:

●可使对主表中的列应用的数字格式化作为模式的一部分对所有消费客

户机表可用以便对该列应用。

●块级格式和单元格上的格式可作为最低级优先级格式化被传播到消费客户机表。

●在主表上评估的条件格式可作为静态主格式化之上的优先级被传播到消费客户机表。

●可以在主表上启用一选项,以使得如果启用该选项,则用户对消费客户机表中的格式化作出的变更可被发送回主表并在那里应用。

●主表可将格式化向下发送到客户机表。在某些情况下,该格式化可以是条件格式化。在某些情况下,特定客户机可定义用于在该客户机处进行格式化的本地指定(例如,图3中的310和318)。在这些情况下,在该客户机处的协作服务模块(例如,128)可将如从主表发送下来的格式化与由该客户机处的本地指定定义的格式化进行协调。

基于客户机表中的唯一标识符(例如,行_id)的跟踪可以在用户处在离线模式中时维护。稍后,当用户在线时,可将该跟踪与自从发生在主表中以来所具有的变更进行协调。

如果用户具有打开主表工作簿的特权,则他或她可编辑主表以作出模式变更。这些模式变更的示例可包括:

●删除列;

●添加列;或者

●变更已计算的列计算,等等。

当用户提交这些变更时,可以在所有消费客户机表接下来与主表同步时将这些变更的效果应用于这些消费客户机表。

如果用户表示他们希望变更他们正在消费的主表的模式,则协作服务可因此根据其在主表上的许可和设置来准许这些用户以允许这些操作。客户机侧服务可将用户的本地变更发送到主表,在那里这些本地变更将与变更主表类似地应用。

此处所描述的工具和技术可以与诸如可从微软购得的SHAREPOINTTM平台或竞争对手的平台等基于入口的协作和文档管理平台一起操作。例如,SHAREPOINTTM技术中的列表允许对数据进行排序和编辑,并且可以在电子表格应用程序之外使用。在某些情况下,这些平台可启用此处的工具和技术来通过主表展示数据库API以允许其他技术使用API。在某些情况下,可将列表绑定到主表,且该列表在变更主表时更新。有了该特征,列表在更新主表时接收更新,或者主表可以在列表变更时从该列表接收更新。可以用UI或在某些情况下用特定行标记来处理冲突。

虽然是以计算机结构特征和/或方法操作,以及计算机可读取的介质特定的语言来描述这里呈现的主题的,但是,应该理解,在所附的权利要求中所定义的本发明不一定仅限于这里所描述的特定的特点或操作或介质。相反,这些具体特征、动作和介质是作为实现权利要求的示例形式来公开的。

上述主题仅作为说明提供,并且不应被解释为限制。可对此处所述的主题作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离所附权利要求书中所述的本发明的真正精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号