对分层数据分页的制作方法

文档序号:6593698阅读:417来源:国知局
专利名称:对分层数据分页的制作方法
对分层数据分页背景网络和数据系统的普遍存在的本质方便了对大量数据的广泛访问。例如,企业现 在支持存储与例如财务、销售、产品、项目管理、人力资源等有关的各种数据的分布式数据 系统以及本地数据系统。因此,用户从服务器系统访问数据的能力可影响服务器、网络和客 户机系统的性能。常规的数据系统通常涉及对大型数据集的查询和检索。按照促进积极的用户体验 的方式来支持对客户机/服务器系统中的大型分层数据集的交互式查看和编辑是困难的。 排序、分组和需要整个数据集的其他视图操作是非常资源密集的,且随着用户数量增加在 服务器上的伸缩很差。此外,当记录被添加到分层结构的各层中时,这些记录也需要在以上 操作中被考虑到。当这些约束加上分层数据集的增加的复杂性(例如,包含多个任务层的 项目)时,问题的复杂性增加了,而客户机和/或服务器上的性能受到损害。概述下面提供了简化的概述,以便提供对此处所描述的一些新颖实施例的基本理解。 本概述不是详尽的概述,并且它不旨在标识关键/重要元素或描绘本发明的范围。其唯一 的目的是以简化形式呈现一些概念,作为稍后呈现的更详细描述的序言。所公开的体系结构通过在读取或编辑分层数据集时最小化在客户机和服务器之 间发送的数据量来优化客户机/服务器环境中的分层数据集上的操作的性能。该体系结构 促进了通过视图操作(例如,排序、过滤、分组)来智能地对分层数据集分页的能力、在不向 客户机发送或向服务器发回整个记录集的情况下对分层结构做出添加/或删除并管理数 据集记录的父/子关系的能力。可以优化用于读操作的控制,同时也最小化编辑操作期间 事务性处理的数据。为了为实现上述及相关目的,本文结合下面的描述和附图来描述某些说明性方 面。这些方面指示了可以实践本文所公开的原理的各种方式,所有方面及其等效方面旨在 落入所要求保护的主题的范围内。结合附图阅读下面的详细描述,其他优点和新颖特征将 变得显而易见。附图简述

图1示出了根据所公开的体系结构的计算机实现的数据处理系统。图2示出用于对分层数据分页的客户机-服务器系统。图3示出客户机上采用的与对分层视图执行的操作合作的跟踪机制。图4示出各行的展开视图和折叠视图以及位置转换器索引和折叠集列表中的跟 S^fn 息 ο图5示出一种处理数据的方法。图6示出一种跟踪客户机侧视图操作的方法。图7示出根据所公开的体系结构的可操作来执行分页和视图过程的计算系统的 框图。图8示出用于执行分页和视图过程的示例性计算环境的示意性框图。4
详细描述所公开的体系结构是一种提供通过客户机上的分层视图的视图操作来智能地对 分层数据集分页(分片)的能力的客户机-服务器实现。该体系结构还提供了在从不将整 个记录集发送给客户机或者将整个记录集接收回服务器的情况下对客户机上的分层视图 做出添加/删除并管理视图记录的父/子关系的能力,从而优化分层数据集上的操作性能。 该体系结构最大化可被分页的数据量并最小化不可被分页的数据。贯穿本说明书,使用涉及“视图”的以下术语。数据集视图是由字段子集、行子集、 行过滤准则、分组准则、排序准则所定义的更大的数据集的子集;数据集视图只存在于服务 器上。行视图正是数据集视图中所提到的行的子集。这一行列表是在别处所称的“完全展 开”列表。到该列表中的索引在别处被称为“数据位置”。行视图存在于服务器和客户机上。客户机视图是不包括已折叠的行的子行的行视图的子集。到该列表中的索引在别 处被称为“视图位置”。客户机视图集是客户机视图的子集,并且是用户可在给定时刻在客 户机上在物理上看见的东西。即,如果客户机视图包含100行,且这些行中的30行已经下载 到客户机但在不滚动的情况只有前10行在屏幕上是可见的,则客户机视图集的大小为10。现在将参考附图,全部附图中相同的附图标记用于表示相同的元件。在下面的描 述中,为了进行说明,阐述了很多具体细节以便提供对本发明的全面理解。然而,显而易见, 可以没有这些具体细节的情况下实施各新颖实施例。在其它情况下,以框图形式示出了公 知的结构和设备以便于描述它们。本发明将涵盖落入所要求保护的主题的精神和范围内的 所有修改、等效方案和替换方案。图1示出了根据所公开的体系结构的计算机实现的数据处理系统100。系统100 包括用于基于在分层客户机视图集110中的一个或多个行108上的行操作106来对分层数 据集104分页(获得子集)的分页组件102。系统100还包括用于根据行变更操作114来 更新分层客户机视图集110的更新组件112。对客户机视图集110的更新可基于行视图的 行关键字,行关键字与分层数据集104的页相关联。分页组件102可基于行变更操作114 异步地对分层数据集104分页。注意,行变更操作114是关于数据集视图206中呈现的分层结构的编辑本质的行 操作。行变更操作114是行的插入、行的删除或行的缩进或突出。如果有必要更新带有作 为例如行删除的结果而滚入视图的行的客户机视图集110,则行变更操作114可导致后续 行操作106。系统100通过只处理行视图中的相关行而不是重新计算整个行视图来最小化所 处理的数据量。出于该目的,行操作106可以是读操作,该读操作将分层客户机视图集110 的后代行折叠成已折叠的行、展开已折叠的行来示出分层客户机视图集110中的一个或多 个新的后代行、并基于分层客户机视图集110的滚动来添加或移除行。读操作可在分层数 据被发送到客户机仅供读取的读模式期间执行。在该模式中不允许编辑,且出于这一原因, 网格在网格发送给客户机的未分页数据(例如,未过滤分层结构)的量方面可以更节约。网 格是用于展示本地和/或分布式数据系统的大量数据的计算框架。滚动可导致行被追加到客户机视图集110或从客户机视图集110中移除。例如, 在向上滚动时,行被添加到客户机视图集110的顶部并从底部移除。对客户机视图集110 的顶部的行的添加导致新查询(或请求)被发送到分页组件102以便为所需新的行对数据集104分页。行操作可以是与分层客户机视图集110中的行的插入、行的删除、行的缩进和/或 行的突出相关联的编辑操作。编辑操作可在分层数据按照支持对行的编辑操作的格式被发 送到客户机的编辑模式中执行。缩进是增加行的大纲级别以使该行成为另一行的子行的动 作。突出是降低行的大纲级别以使该行成为其父行的对等行的动作。分页组件102基于例如过滤、排序、行展开和行折叠为与行操作相关的行来对分 层数据集104分页。图2示出用于对分层数据分页的客户机-服务器系统200。系统200包含作为服 务器系统202的一部分的、用于对服务器系统的分层数据集104分页的分页组件102和更 新组件112,以及出现在客户机204上的分层客户机视图集110、视图行108、行操作106和 行变更操作114。更新组件112基于与编辑模式相关联的行操作来更新未过滤的分层结构。系统200还示出在客户机204和服务器202中的每一个上生成并存储的数据。分 页组件102生成数据集视图206和服务器侧行视图208。随后行视图208的副本作为客户 机侧行视图210被发送到客户机204以最小化原本需要在服务器202和客户机204之间发 送的数据量。随后客户机视图212可以从客户机侧行视图210中得到。分页组件102管理分层客户机视图集110中的与行操作106和/或行变更操作 114有关的行的父-子关系。分页组件102还创建由行关键字和父关键字的定序映射所定 义的分层结构索引(服务器侧行视图208)。该索引然后基于分层客户机视图集110的行操 作(例如,行操作106、行变更操作114)来发送到客户机204。下文将更详细地描述这些和 其他方面。图3示出客户机204上采用的与对分层客户机视图集110执行的操作合作的跟踪 机制。此处,可以对客户机视图集Iio的行108执行不同类型的行操作300(例如,只读、编 辑)。为了跟踪基于客户机的客户机视图集110中的行活动,采用了位置转换器索引302和 折叠集列表304。位置转换器索引302是用于跟踪分层客户机视图集110的展开/折叠状 态并在视图位置和数据位置之间进行转换的行的定序索引。视图位置是客户机视图集110 内的行相对于已展开/折叠的行的序数位置。数据位置(也被称为行索引)是包括所有行 的客户机视图集110内的行的序数位置,不管行是否被展开。折叠集列表304是允许网格 了解行是将被折叠还是展开的已折叠的行的列表。折叠集列表304最初是空的,但随着行 在客户机106上被展开/折叠,该列表304被更新。图4示出各行的展开视图400和折叠视图402以及位置转换器索引和折叠集列表 中的跟踪信息。该体系结构最小化在读取或编辑分层数据集时在客户机和服务器之间发送 的数据量。所示示例描述了读操作;然而,在编辑操作期间事务性处理的数据也可被最小 化。读和编辑操作两者都从客户机向服务器请求在网格中呈现数据开始。服务器查询其数 据库并应用客户机所定义的排序、过滤或分组中的一个或多个来产生行集合。随后处理该 行集合来生成数据集以发送到客户机。未过滤的分层结构是用作行关键字和父关键字的按次序映射的完整分层结构。为 了理解限定词“未过滤”的意义,考虑三行A、B和C的一示例。B是A的子行,而C是B的 子行。在行过滤的过程中,可能B不包括在行视图中因而C在行视图中没有父行(直接祖 先)。未过滤的分层结构是A、B和C之间的分层关系。在滚动/展开/折叠时没有必要判6定C的父行,但在缩进/突出/插入/删除时需要进行该判定。因此,在编辑操作期间,使 用未过滤的分层结构,因为无法从检查每一行视图记录的父行标识符中来构造所需信息。未过滤的分层结构只在编辑期间发送给客户机,并用于回答关于客户机上需要的 行的问题来支持缩进/突出,包括行的大纲级别、该行是否是父行、哪些行是子行、以及哪 一行是该行先前的兄弟。在编辑模式中,分层结构在未分页的情况下被发送到客户机。露 出整个分层结构来支持影响该分层结构的操作(例如,缩进/突出、插入或删除行)。行是行关键字和相关联的数据的分页集合(在项目的情况中,这可以是按照ID的 任务集合)。如下文所描述的,这包括下列字段大纲级别在只读模式中,该字段单独减轻 了要具有未过滤的分层结构的需要;在编辑模式中,系统使用未过滤的分层结构。父行关键 字在只读模式中,该域单独减轻了要具有未过滤的分层结构的需要;在编辑模式中,系统 使用未过滤的分层结构。后代计数在只读模式中,这在服务器上计算并被发送到客户机; 在编辑模式中,使用未过滤的分层结构和行视图来计算后代计数。也可采用被认为对系统 有用的其他数据字段。注意,整个分层数据集不包括在上述列表中。不将整个行列表发送给客户机。只 有在客户机视图集中要求的关于过滤、排序和已展开/折叠的分层结构的相关行才被发送 到客户机。如图所示,展开视图400包括用于标识符(ID)、名称、大纲级别、视图位置、数据位 置和后代计数的列。后代计数是相对于当前行视图可见的子行的总数。换言之,在过滤之 后,这是可能被发送到客户机的子行、孙子行等的计数。汇总行是分层结构中有子行的行。 在展开视图400中,Tl是汇总行,因为它有子行(子行A和子行B)。应该理解,视图400和 视图402都是客户机视图,是在折叠单个行的示例之前和之后的快照。视图400包括行视 图包括的确切的行集合可能是巧合的。如前所指示的,视图位置是行在当前展开视图400中相对于已展开/折叠的行的 序数位置,而数据位置是在包括所有行的当前视图400中的行的序数位置,无论这些行是 否被展开。大纲级别根据级别(例如,1、2、3……)来定义。此处,Tl名称是最左边的大纲 级别1,子行A被指定为大纲级别2,子行Cl被进一步缩进为大纲级别3,以此类推。在展开 视图400中有八行;因此,视图位置号1-8被分配给相应的ID 1-8。数据位置号被分配给 行且沿着该行,无论是否被展开或折叠。注意折叠Tl怎样使得视图位置改变但对应于行的 数据位置保持不变。行ID 1的后代计数是二,因为行ID 1有两个子行(ID 2和ID 3)。子行(ID 2和 ID 3)没有子行;因此,对于这些行(ID 2和ID 3)中的每一个的后代计数是零。出于效率考虑,在客户机上维护位置转换器索引404和折叠集列表406。位置转 换器索引404是用于跟踪分层结构的展开/折叠状态并在视图位置和数据位置之间进行转 换的行的定序索引。位置转换器索引404包括行关键字字段,它是在数据库中标识该行的 GUID (全局唯一 ID);视图位置字段,它是该行相对于任何已展开/折叠的行离视图顶部的 位置;以及数据位置,它是该行离视图的顶部的绝对位置(忽略已折叠的行)。位置转换器 索引404允许视图位置和数据位置之间的快速转换从而使得只从服务器检索客户机视图 集中的行且这些行按照正确的可视次序来放置。在运行时在客户机上创建该数据结构并在 折叠行时添加该数据结构。该表的最初状态是没有行,因为分层结构默认是展开的。
折叠集列表406是允许网格了解行将被折叠还是展开的已折叠的行的列表。该列 表406最初是空的,但随着行在客户机上被展开/折叠,该列表被更新。在该示例中,位置转换器索引404和折叠集列表406中的相应的值跟踪展开视图 400,从而使得行关键字(ID)是1-8,视图位置是1-8,且数据位置是1-8。因为在展开(完 全)视图400中没有已折叠的行,所以折叠集列表是空的。继续折叠视图402,行ID 1现在被折叠(如符号“ + ”所指示的)。位置转换器索 引408和折叠集列表410中的相应的值跟踪折叠视图402。对子行(ID2和ID 3)的折叠导 致行关键字(ID)的转换器值为1-8,视图位置变成将行关键字ID 2和3映射到其中子行折 叠的行ID 1并将其余行关键字ID的其他视图位置映射到当前视图位置。数据位置如之前 一样是1-8。因为现在视图402中有了已折叠的行,所以折叠集列表410将行ID 1列举为 已折叠的行。这些集合中的部分或全部被发送到客户机。在读模式中,可以发送包括定义与其 他行的分层关系的三个额外字段的行视图和/或行的分页子集。在编辑模式中,可以发送 未过滤的分层结构、行视图、和/或行的分页子集(不包括定义其与其他行的分层关系的三 个额外字段-因为这些字段提供的信息可以从未过滤的分层结构中导出)。客户机随后可决定在下列读模式和编辑模式的情况下从服务器请求哪些行来填 充客户机视图集。在读模式中并与折叠相关,更新折叠集来包括所指示的行关键字,然后更 新位置转换器来包括新的视图位置。在读模式中并与展开相关,从折叠集中移除已展开的 行,然后更新位置转换器来包括新的视图位置。随后客户机请求该客户机还未从客户机视 图集得到的行。在折叠一节点且该节点包括一个或多个已折叠的子行时,折叠集中的那些 列表条目被追加到折叠集中的新折叠的行的条目中。在读模式中并与(向下/向上)滚动 相关,网格使用客户机视图集中所请求的位置来从客户机请求行的分页集合。在编辑模式中并与插入相关,更新未过滤的分层结构来包括在所指示的位置处的 新行,从而为该新行指定正确的父行ID以及在其兄弟内的次序。更新位置转换器,并将所 有后续视图位置递增一。随后网格将变更保存到服务器。服务器不需要向下发送未过滤的 分层结构更新,因为客户机版本与服务器作为未过滤的分层结构所维护的相匹配,包括添 加。在编辑模式中并与删除相关,更新未过滤的分层结构来移除所指示的行。更新位 置转换器,并将所有后续视图位置递减一。如上所述,客户机上的未过滤分层结构是正确 的。在编辑模式中并与缩进相关,因为未过滤的分层结构是树,所以网格查找所指示的行并 将该行移动到树中的正确位置。视图位置不改变,所以不需要更新位置转换器。注意,在需 要的基础上对后代计数求值;网格要求行计算其子行的个数然后缓存该数据从而使得下次 需要该信息的时候,容易获得该查找。在编辑模式中并与突出相关,因为未过滤的分层结构 是树,所以网格查找所指示的行并将该行移动到树中的正确位置。分组是分层结构的一种特殊情况。为进行分组,服务器对所有数据进行排序、生成 人工分层结构、并插入虚构汇总行以供对头部进行分组。新的行视图作为任何其他视图被 发送到客户机。在已分组的视图中,大纲级别等价于分组子句的计数。以下是表示用于执行所公开的体系结构的各新颖方面的示例性方法的一系列流 程图。尽管出于解释简明的目的,此处例如以流图或流程图形式示出的一个或多个方法被8示出并描述为一系列动作,但是可以理解和明白,各方法不受动作的次序的限制,因为根据 本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其他动作同时发生。例 如,本领域技术人员将会明白并理解,方法可被替换地表示为一系列相互关联的状态或事 件,诸如以状态图的形式。此外,并非在一方法中示出的所有动作都是新颖实现所必需的。图5示出一种处理数据的方法。在500处,从客户机接收要基于客户机行操作在 分层客户机视图集中呈现相关数据的请求。在502处,基于该请求为相关数据对分层数据 集分页。在504处,将相关数据发送到客户机以便更新分层客户机视图集。可基于该请求 异步地对分层数据集分页。此外,该方法还包括基于行操作来管理父-子关系。对分层数据集的分页可响应 于读操作,该读操作将分层客户机视图集的行折叠成已折叠的行、将已折叠的行展开以在 分层客户机视图集中示出一个或多个新的行、以及基于分层客户机视图集的滚动来添加或 移除行。另选地,对分层数据集的分页可响应于与分层行视图中的行的插入、行的删除、行 的缩进或行的突出相关联的编辑操作。该方法可包括创建定义与行父子关系、行大纲级别、子行和缩进/突出操作有关 的相关数据的未过滤的分层结构,并应用过滤、排序或分组中的一个或多个来接收相关数 据。图6示出一种跟踪客户机侧视图操作的方法。在600处,客户机将与分层客户机 视图集中的行的编辑有关的请求发送给服务器。在602处,从服务器接收未过滤的分层结 构。在604处,客户机使用位置转换器索引基于对分层结构的变更来跟踪行关键字信息、视 图位置信息和数据位置信息。在606处,客户机使用折叠集列表基于对分层结构的变更来 跟踪行折叠操作。在608处,客户机处理位置转换器索引和折叠集列表来只从分层数据集 请求用于行操作的相关行。如在本申请中所使用的,术语“组件”和“系统”旨在表示计算机相关的实体,其可 以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是但不限于,在处 理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对 象、可执行代码、执行的线程、程序、和/或计算机。作为说明,运行在服务器上的应用程序 和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,且组件可 以位于一台计算机上和/或分布在两台或更多的计算机之间。词语“示例性”此处可用于 表示用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释 为相比其他方面或设计更优选或有利。现在参考图7,示出了根据所公开的体系结构的可用于执行分页和视图过程的计 算系统700的框图。为了提供用于其各方面的附加上下文,图7及以下讨论旨在提供对其 中可实现该各方面的合适的计算系统700的简要概括描述。尽管以上描述是在可在一个或 多个计算机上运行的计算机可执行指令的一般上下文中进行的,但是本领域的技术人员将 认识到,新颖实施例也可结合其他程序模块和/或作为硬件和软件的组合来实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组 件、数据结构等等。此外,本领域的技术人员可以理解,本发明的方法可用其他计算机系统 配置来实施,包括单处理器或多处理器计算机系统、小型计算机、大型计算机、以及个人计 算机、手持式计算设备、基于微处理器的或可编程消费电子产品等,其每一个都可操作上耦合到一个或多个相关联的设备。所示各方面也可以在其中某些任务由通过通信网络链接的远程处理设备来执行 的分布式计算环境中实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存 储设备中。计算机通常包括各种计算机可读介质。计算机可读介质可以是可由计算机访问的 任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限 制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以存储如 计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术来实现的易失 性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、R0M、EEPR0M、 闪存或其它存储器技术、CD-ROM、数字视频盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储 或其它磁存储设备、或可以用来存储所需信息并可由计算机访问的任一其它介质。再次参考图7,用于实现各方面的示例性计算系统700包括具有处理单元704、系 统存储器706和系统总线708的计算机702。系统总线708向包括但不限于系统存储器706 的各系统组件提供到处理单元704的接口。处理单元704可以是市场上可购买到的各种处 理器中的任意一种。双微处理器和其它多处理器体系结构也可用作处理单元704。系统总线708可以是若干种总线结构中的任一种,这些总线结构还可互连到存储 器总线(带有或没有存储器控制器)、外围总线、以及使用各类市场上可购买到的总线体系 结构中的任一种的局部总线。系统存储器706可包括非易失性存储器710和/或易失性存 储器712(例如,随机存取存储器(RAM))。基本输入/输出系统¢10 可被存储在非易失 性存储器710(例如,ROM、EPROM、EEPROM等)中,其中BIOS是帮助诸如在启动期间在计算 机702内的元件之间传输信息的基本例程。易失性存储器712还可包括诸如静态RAM等高 速RAM来用于高速缓存数据。计算机702还包括内置硬盘驱动器(HDD)714(例如,EIDE、SATA),该内置HDD 714 还可被配置成在合适的机壳中外部使用;磁软盘驱动器(FDD) 716(例如,从可移动磁盘718 中读取或向其写入);以及光盘驱动器720 (例如,从⑶-ROM盘722中读取,或从诸如DVD等 其他高容量光学介质中读取或向其写入)。HDD 714、FDD 716、以及光盘驱动器720可分别 由HDD接口 724、FDD接口 7 和光盘驱动器接口 7 连接到系统总线708。用于外置驱动 器实现的HDD接口 7M可包括通用串行总线(USB)和IEEE 1394接口技术中的至少一种或 两者。驱动器及相关联的计算机可读介质提供了对数据、数据结构、计算机可执行指令 等的非易失性存储。对于计算机702,驱动器和介质容纳适当的数字格式的任何数据的存 储。尽管以上对计算机可读介质的描述涉及HDD、可移动磁盘(例如FDD)以及诸如CD或 DVD等可移动光学介质,但是本领域的技术人员应当理解,示例性操作环境中也可使用可由 计算机读取的任何其他类型的介质,诸如zip驱动器、磁带盒、闪存卡、盒式磁带等等,并且 任何这样的介质可包含用于执行所公开的体系结构的新颖方法的计算机可执行指令。多个程序模块可被存储在驱动器和易失性存储器712中,包括操作系统730、一个 或多个应用程序732、其他程序模块734和程序数据736。作为客户机计算系统,一个或多 个应用程序732、其他程序模块734和程序数据736可包括,例如,分层客户机视图集110、 行108、行操作106、行变更操作114、客户机204、行视图210、客户机视图212、行操作300、10位置转换器索引302、折叠集列表304、展开视图400、折叠视图402、位置转换器索引004 和408)、折叠集列表006和410)以及图6的方法。在计算机702用作服务器系统的情况 中,一个或多个应用程序732、其他程序模块734、程序数据736可包括,例如,分页组件102、 更新组件112、分层数据集104、服务器202、数据集视图206、行视图208和图5的方法。操作系统、应用程序、模块和/或数据的全部或部分也可被高速缓存在易失性存 储器712中。应该明白,所公开的体系结构可以用市场上可购得的各种操作系统或操作系 统的组合来实现。用户可以通过一个或多个有线/无线输入设备,例如键盘738和诸如鼠标740等 定点设备将命令和信息输入到计算机702中。其他输入设备(未示出)可包括话筒JR遥 控器、操纵杆、游戏手柄、指示笔、触摸屏等等。这些和其他输入设备通常通过耦合到系统总 线708的输入设备接口 742连接到处理单元704,但也可通过诸如并行端口、IEEE 1394串 行端口、游戏端口、USB端口、IR接口等其他接口连接。监视器744或其他类型的显示设备也经由诸如视频适配器746等接口连接到系统 总线708。除了监视器744之外,计算机通常包括诸如扬声器、打印机等其他外围输出设备 (未示出)。计算机702可使用经由有线和/或无线通信至诸如远程计算机748等的一个或多 个远程计算机的逻辑连接在网络化环境中操作。远程计算机748可以是工作站、服务器计 算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他常见 的网络节点,并且通常包括相对于计算机702描述的许多或所有元件,尽管为简明起见仅 示出了存储器/存储设备750。所描绘的逻辑连接包括到局域网(LAN) 752和/或例如广域 网(WAN) 7M等更大的网络的有线/无线连接。这一 LAN和WAN连网环境常见于办公室和 公司,并且方便了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等 全球通信网络。当在LAN连网环境中使用时,计算机702通过有线和/或无线通信网络接口或适 配器756连接到LAN 752。适配器756可以方便到LAN 752的有线和/或无线通信,并且还 可包括其上设置的用于使用适配器756的无线功能进行通信的无线接入点。当在WAN连网环境中使用时,计算机702可包括调制解调器758,或连接到WAN 7 上的通信服务器,或具有用于诸如通过因特网等通过WAN 7 建立通信的其他装置。或 为内置或为外置以及有线和/或无线设备的调制解调器758经由输入设备接口 742连接到 系统总线708。在联网环境中,相对于计算机702所描绘的程序模块或其部分可以存储在远 程存储器/存储设备750中。应该理解,所示网络连接是示例性的,并且可以使用在计算机 之间建立通信链路的其他手段。计算机702可操作来使用IEEE 802标准家族来与有线和无线设备或实体进行通 信,这些实体例如是在操作上安置成与例如打印机、扫描仪、台式和/或便携式计算机、个 人数字助理(PDA)、通信卫星、任何一件与无线可检测标签相关联的设备或位置(例如,电 话亭、报亭、休息室)以及电话进行无线通信(例如,IEEE 802. 11空中调制技术)的无线设 备。这至少包括Wi-Fi (即无线保真)、WiMax和蓝牙 无线技术。由此,通信可以如对于常 规网络那样是预定义结构,或者仅仅是至少两个设备之间的自组织(ad hoc)通信。Wi-Fi 网络使用称为IEEE 802. llx(a、b、g等等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机彼此连接、连接到因特网以及连接到有线网络(使用IEEE 802. 3相关介质和功能)。现在参考图8,示出了用于执行分页和视图过程的示例性计算环境800的示意性 框图。环境800包括一个或多个客户机802。客户机802可以是硬件和/或软件(例如,线 程、进程、计算设备)。例如,客户机802可容纳cookie和/或相关联的上下文信息。环境800还包括一个或多个服务器804。服务器804也可以是硬件和/或软件 (例如,线程、进程、计算设备)。服务器804可以例如通过使用本体系结构来容纳线程以执 行变换。在客户机802和服务器804之间的一种可能的通信能够以适合在两个或更多计算 机进程之间传输的数据分组的形式进行。数据分组可包括例如cookie和/或相关联的上 下文信息。环境800包括可以用来使客户机802和服务器804之间通信更容易的通信框架 806(例如,诸如因特网等全球通信网络)。通信可经由有线(包括光纤)和/或无线技术来促进。客户机802操作上被连接 到可以用来存储对客户机802本地的信息(例如,cookie和/或相关联的上下文信息)的 一个或多个客户机数据存储808。同样地,服务器804可在操作上连接到可以用来存储对服 务器804本地的信息的一个或多个服务器数据存储810。客户机802可包括客户机204和图6的方法,而服务器可包括服务器202和图5 的方法。上面描述的包括所公开的体系结构的各示例。当然,描述每一个可以想到的组件 和/或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,许多其他组合和 排列都是可能的。因此,该新颖体系结构旨在涵盖所有这些落入所附权利要求书的精神和 范围内的更改、修改和变化。此外,就在说明书或权利要求书中使用术语“包括”而言,这一 术语旨在以与术语“包含”在被用作权利要求书中的过渡词时所解释的相似的方式为包含 性的。
权利要求
1.一种计算机实现的数据处理系统(100),包括用于基于对客户机视图集的一个或多个行的行操作来对分层数据集分页的分页组件 (102);以及用于响应于行变更操作来更新所述客户机视图集的更新组件(112),对所述客户机视 图集的更新基于与已分页的分层数据集相关联的行关键字。
2.如权利要求1所述的系统,其特征在于,所述分页组件管理所述客户机视图集中的 行的父-子关系,所述行与所述行操作相关。
3.如权利要求1所述的系统,其特征在于,所述分页组件创建由行关键字和父关键字 的定序映射所定义的分层结构索引,所述索引响应于所述客户机视图集的行操作被发送到 客户机。
4.如权利要求1所述的系统,其特征在于,所述行操作是读操作,所述读操作将所述分 层视图的行折叠成已折叠的行、将已折叠的行展开以在所述分层视图中示出一个或多个新 的行、以及基于所述客户机视图集的滚动来添加或移除行。
5.如权利要求1所述的系统,其特征在于,所述行操作是与所述客户机视图集中的行 的插入、行的删除、行的缩进、或行的突出相关联的编辑操作。
6.如权利要求1所述的系统,其特征在于,所述分页组件基于过滤、排序、行展开和行 折叠来为与所述行操作相关的行对所述分层数据集分页。
7.如权利要求1所述的系统,其特征在于,所述更新组件基于与编辑模式相关联的行 操作来更新未过滤的分层结构。
8.如权利要求1所述的系统,其特征在于,所述分页组件基于所述行变更操作异步地 对所述分层数据集分页。
9.一种计算机实现的数据处理系统000),包括服务器的分页组件(102),所述分页组件用于响应于客户机的客户机视图集中的行操 作来获得分层数据集的页;以及所述服务器的更新组件(112),所述更新组件用于根据行变更操作来更新所述客户机 视图集,所述页只包括与所述行变更操作相关的行。
10.如权利要求9所述的系统,其特征在于,所述分页组件管理所述客户机视图集中的 行的父-子关系。
11.如权利要求9所述的系统,其特征在于,所述分页组件创建由行关键字和父关键字 的定序映射所定义的分层结构索引,并将所述索引发送到客户机,其中客户机视图集的更 新基于编辑行操作。
12.如权利要求9所述的系统,其特征在于,所述行操作是读操作,所述读操作关联于 将所述客户机视图集的行折叠成已折叠的行、将行展开以在所述客户机视图集中示出一个 或多个新的行、或基于所述客户机视图集的滚动来添加和移除行。
13.如权利要求9所述的系统,其特征在于,所述行操作是与所述客户机视图集中的行 的插入、行的删除、行的缩进、或行的突出相关联的编辑操作。
14.一种处理数据的计算机实现的方法,包括从客户机接收基于客户机行操作在客户机视图集中呈现相关数据的请求(500);响应于所述请求获得用于所述相关数据的分层数据集的页(502);以及将所述相关数据发送到所述客户机以便更新所述客户机视图集(504)。
15.如权利要求14所述的方法,其特征在于,还包括基于所述行操作来管理父-子关系。
16.如权利要求14所述的方法,其特征在于,还包括响应于读操作来对所述分层数据 集分页,所述读操作将所述客户机视图集的行折叠成已折叠的行、将已折叠的行展开以在 所述客户机视图集中示出一个或多个新的行、以及基于所述客户机视图集的滚动来示出/ 隐藏行。
17.如权利要求14所述的方法,其特征在于,还包括响应于与所述客户机视图集中的 行的插入、行的删除、行的缩进、或行的突出相关联的编辑操作来获得所述分层数据集的 页。
18.如权利要求14所述的方法,其特征在于,还包括应用过滤、排序或分组中的一个或 多个来接收所述相关数据。
19.如权利要求14所述的方法,其特征在于,还包括创建定义与行父子关系、行大纲级 别、子行和缩进/突出操作有关的所述相关数据的未过滤的分层结构。
20.如权利要求14所述的方法,其特征在于,基于所述请求异步地获得所述分层数据 集的所述页。
全文摘要
提供通过分层视图的视图操作来智能地对分层数据集分页的能力的体系结构。该体系结构还提供了在从不将整个记录集发送给客户机或者将整个记录集接收回服务器的情况下对分层结构视图做出添加/删除并管理视图记录的父/子关系的能力,从而优化分层结构数据集上的操作性能。
文档编号G06F17/30GK102047252SQ200980119899
公开日2011年5月4日 申请日期2009年4月13日 优先权日2008年5月26日
发明者A·R·库内奥, B·沃莱恩, E·M·岑茨, S·朱 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1