一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

控制文档中的标记位置的制作方法

2021-12-18 03:59:00 来源:中国专利 TAG:

控制文档中的标记位置


背景技术:

1.计算机系统目前被广泛使用。一些这样的系统包括在远程服务器位置处托管服务以供由客户端计算系统访问的主机系统。
2.例如,一个这样的系统是托管内容创建服务的主机计算系统。内容创建服务可以允许客户端计算系统创建和管理内容。一些示例包括托管的文字处理服务、电子表格服务、文档管理服务、幻灯片演示服务以及其他各种服务。
3.这些类型的计算系统具有暴露能够由客户端计算系统访问的接口的前端。在一个示例中,客户端计算系统通过基于浏览器的接口与远程服务器环境进行通信。例如,用户可能正在使用客户端计算系统通过基于浏览器的接口与托管的文字处理服务进行交互。用户可以调用客户端计算系统上的内容编辑系统来编辑已创建并存储在远程文字处理服务上的文档。
4.为了做到这一点,可以将文档作为连接的节点的树表示给内容编辑系统。节点被组织成分层树,内容编辑系统的工作是响应于用户输入而修改树。树中的节点以双向链接的方式被组织,其中父节点引用其子节点,并且所有子节点引用其父节点。子节点也可以作为下一个和跟随的同胞而相互链接。
5.例如,树可以包括表示整个文档的根节点。子节点(或直接依赖于根节点的第一级子节点)可以表示文档中的部分、文档中的段落等。来自第一级子节点的子节点可以表示每个部分或段落中的项目,例如文本、图像、表格等。
6.在一些领域,内容编辑系统需要创建和维护对内容树中特定位置的引用。文本处理系统通常通过创建作为指向内容中的持久指针运行的对象来处理这个问题。这些对象可以被称为标记指针、节点位置或文本标记,并且在本文中将被称为位置标记或文本标记。位置标记可以通过引用节点树中的节点并且接着具有反映要跟踪的节点内的跟踪位置偏移的偏移值来引用文档或内容内的位置。
7.例如,在进行文本选择操作或文本插入操作时,需要保持被选择的文本的位置或要插入文本的位置。举例来说,文本文档中的选择是通过生成一对位置标记(对文本中位置的引用)来执行的。这些位置可以是所选文本的开始位置和结束位置。两个位置之间的跨度被认为是“所选择的”,并且可以用作编辑操作(例如,格式化、删除、复制等)的目标。
8.使用位置标记的另一示例是在分页中。在将文档的内容组织成多个页面后,内容编辑系统保留对每个页面的开头和结尾的引用,这些引用再次被表示为内容树中的位置。
9.为了在内容修改期间保持它们的持久性,位置标记通常使用双链接结构来实现。即,位置标记对象是指内容节点树中的一个节点,并且该节点回引位置标记,以使得当在位置标记附近的内容被删除或修改时,可以对位置标记进行修正。
10.以上讨论仅提供用于一般背景信息并且不旨在用作确定要求保护的主题的范围的帮助。


技术实现要素:

11.在文档处理系统中文档被表示为节点树。对节点的编辑在改变记录中表示,该改变记录具有到该节点的单向链接。位置标记具有到改变记录的单向链接。当由改变记录表示的改变反映在位置标记中时,它会删除该链接。当没有其他对象链接到改变记录时,存储器管理系统会释放分配给该改变记录的存储器。
12.提供本发明概要以简化形式介绍在以下详细描述中进一步描述的概念的选择。本概述无意确定要求保护的主题的关键特征或基本特征,也无意用作确定要求保护的主题的范围的帮助。要求保护的主题不限于解决背景中提到的任何或所有缺点的实现方式。
附图说明
13.图l是内容树的一个示例的图。
14.图2是示出计算系统架构的一个示例的框图。
15.图3是改变记录的一个示例的框图。
16.图4是节点的一个示例的框图。
17.图5是文本标记的一个示例的框图。
18.图6a

6c(在此统称为图6)示出了图示图2所示架构的操作的一个示例的流程图。
19.图7a

7h示出了存储器管理的示例。
20.图8是示出部署在云计算架构中的图1所示架构的一个示例的框图。
21.图9

11显示了可以在先前图中所示的架构中使用的移动设备的示例。
22.图12是示出了可以在先前图中所示的架构中使用的计算环境的一个示例的框图。
具体实施方式
23.如上所述,位置标记可以由对内容树中的节点的引用和该节点内的字符偏移的组合来表示。然而,当节点内的内容被修改时,位置标记可能会失效。例如,如果从节点中删除文本,则偏移值可能不准确。如果节点中的内容被移动、插入等情况也是如此。
24.处理这个问题的一种方式是使用上面讨论的双向链接(例如,通过强引用将位置标记附加到节点,其中位置标记保存对它所附加到的节点的引用,并且该节点还保留对附加到它的位置标记的回引)。在这些场景中,当节点被修改时,附加到节点的位置标记也会被节点本身内的逻辑修改。当然,这意味着节点必须有一个对所有附加到它的位置标记的回引。这可能会出现问题。
25.例如,当内容编辑系统不再需要位置标记的情况下,它可以通过删除其对该位置标记的引用来释放该位置标记。在一些计算系统中,当存储器中没有对特定对象的引用时,垃圾收集或其他存储器管理系统会释放存储器。然而,即使内容编辑系统删除它对位置标记的引用,该位置标记仍将具有从它附加到的节点对它的引用。节点将不会知道内容编辑系统已经释放了那个位置标记,并且因此它将不会删除对那个位置标记的引用。这将阻止位置标记在节点树对应的存储器内被释放,从而导致针对节点树的更大存储器占用。这可能导致存储器溢出情况,或者可能导致针对节点树的存储器占用过大。
26.图1示出了表示文档的内容树100的一个示例。内容树100包括相互链接的一组节点。这些节点包括根节点102、子节点104、106和108(它们是以根节点102作为它们的父级的
子节点),以及其他子节点110

112(它们是节点104的子级)和节点114和116(它们是节点108的子级)。图1还包括内容树100的html表示118的一部分118的示例。箭头120、122和124表示位置标记。例如,位置标记120和122可以表示内容(例如,文本)选择,使得位置标记120和122之间的跨度标识所选择的内容。位置标记124可以表示例如书签或分页标记。这些只是示例。
27.可以看出,当节点之一发生变化,并且该节点被位置标记引用时,位置标记可能会变得无效。举例来说,假设位置标记120在存储器中被表示为节点引用(其指代节点112)和偏移引用,其指代位置标记位置所位于的节点112内的字符偏移。如果节点112中的一些内容被删除,则这可能使位置标记120中的偏移值无效。
28.在一些当前系统中,为了弥补这种情况,节点112将包括对位置标记120的回引(reference back)。当节点112改变时,节点112中的逻辑将在需要时改变位置标记120,以便确保位置标记120指向节点112内的适当位置。然而,这意味着节点112具有对位置标记120的回引。如上所述,这可能是有问题的,因为当内容编辑系统释放其对位置标记120的引用时(因为不再需要),存储器中表示位置标记120的对象将不会被释放,因为节点112仍将保持对它的引用。
29.因此,本说明书描述了一种系统,其中内容树100中的节点没有对附加到它们的位置标记的引用。相反,这些引用仅是单向的。即,每个位置标记仅在朝向其对应节点的方向上具有引用,但是该节点不具有对那些位置标记的回引。因此,位置标记包括在它们所附接到的节点发生变化时更新自身的逻辑。这将在下面更详细地描述。
30.图2是其中可以使用位置标记的计算系统架构130的一个示例的框图。架构130说明性地包括内容创建服务计算系统132,以及可以通过网络138连接到内容创建服务计算系统132的多个不同的客户端计算系统134

136。因此,网络138可以是局域网、广域网、蜂窝通信网络、近场通信网络或多种网络中的任何一种或网络的组合。
31.内容创建服务计算系统132说明性地包括一组服务器140、服务前端系统142、服务后端系统144、数据存储库146(其可以存储内容148和其他项目150),并且它可以包括其他项目152。服务前端系统142暴露可由客户端计算系统134和136访问的接口,以便创建、修改和以其他方式管理内容148,例如文档。在这样做时,前端计算系统142通过暴露的接口接收输入并与服务后端系统144交互,服务后端系统144本身基于由服务前端系统142接收的输入对内容148执行操作步骤。
32.客户端计算系统134和136被示为分别生成用户接口154和156以供用户158和160进行交互。用户158说明性地与用户接口154交互以便控制和操纵客户端计算系统134和内容创建服务计算系统132的一些部分。类似地,用户160可以与用户接口156交互以便控制和操纵客户端计算系统136和内容创建服务计算系统132的一些部分。客户端计算系统134和136可以相似或不同。出于本讨论的目的,将假设它们是相似的,使得在此仅更详细地描述客户端计算系统134。这仅作为示例。
33.在一个示例中,客户端计算系统134包括一个或多个处理器162、数据存储库164(其可以存储内容166——其可以是一些内容148或不同内容的表示)并且它可以包括其他项目168。系统134还说明性地包括浏览器170和文档处理系统171。系统171可以包括内容编辑系统172、存储器管理系统173和编辑器存储器174,它们可以在对内容166的编辑期间由
内容编辑系统172使用。编辑器存储器174可以包括表示正在编辑的内容的内容树176,并且它可以包括其他项目178。系统134可以包括各种各样的其他客户端计算系统功能180。
34.应当注意,内容148和166可以作为内容树存储在数据存储库146和164中。它也可以存储在不同的结构中。当内容被加载到编辑器存储器174中时,它被加载为内容树176。内容树176可以包括内容本身或对保存内容的不同结构的引用。
35.在图1所示的例子中,内容编辑系统172可以包括多种不同类型的编辑功能。例如,系统172可以包括允许系统172选择由内容树176表示的内容的部分以进行编辑的选择功能182。系统172可以包括书签功能184,书签功能184允许系统172在内容树176内维护书签。系统172可以包括允许系统172识别由内容树176表示的内容中的分页符的分页功能186。系统172可以包括允许系统172在正在编辑的内容中执行突出显示的突出显示功能188,并且它当然可以包括允许系统172执行多种其他编辑功能的多种其他编辑功能190,例如内容移动功能、删除功能,复制和粘贴功能等。
36.为了编辑文档(其可以作为内容148存储在计算系统132上),客户端计算系统134说明性地允许用户158调用内容编辑系统172,内容编辑系统172基于用户输入通过使用浏览器170的基于浏览器的接口来编辑内容。内容编辑系统172首先下载要编辑的内容并将表示该内容的对应内容树176加载到编辑器存储器174中。然后它通过用户接口154基于来自用户158的用户输入编辑内容树176。在执行那些编辑操作时,内容编辑系统172可以使用位置标记。存储器管理系统173说明性地管理编辑器存储器174。因此,系统173为内容树176分配存储器(以及如下所述的改变记录和位置标记)。当对象不再被编辑器存储器174中的其他对象引用时,它还释放该存储器。这将在下面更详细地描述。
37.在更详细地描述位置标记的使用之前,将首先描述内容树176中的一些项目的简要描述。
38.图3是当内容编辑系统172使用编辑操作改变节点112中的信息时,可以由节点(例如图1中所示的节点112)创建为存储器174中的对象的改变记录202的一个示例的框图。图3示出了改变记录202可以包括改变信息204、节点/改变记录引用206,并且它可以包括其他项目208。改变信息204代表创建了改变记录202的节点(例如,节点112)中的内容编辑系统172改变的信息。节点/改变记录引用206是对节点112的引用,或者是对将基于内容编辑系统172对节点112的后续改变生成的后续改变记录的引用。改变记录202可以包括其他项目208。因此,一旦创建,改变记录202表示由内容编辑系统172对节点112做出的改变,并且它包括到创建它的节点112的单向引用或链接。
39.图4示出了图1所示的内容树100中的节点(例如节点112)的一个示例。节点112说明性地是存储器174中的对象,其包括节点表示的内容数据和在某些情况下(例如当对节点中的内容做出改变时)执行的逻辑。在另一示例中,节点跨节点共享一些或全部逻辑。在又一示例中,节点不保存内容,但保存对保存内容的另一结构的引用。在图4所示的示例中,节点112包括最后的改变记录引用192、改变记录生成器193、引用更新系统194,并且它可以包括其他节点数据和功能196(其可以包括由节点表示的内容)。
40.最后的改变记录引用192是对反映由内容编辑系统172最近做出的对节点112的改变的最近改变记录的引用。改变记录的一个示例在上文关于图3进行了更详细的描述。引用更新系统194说明性地包括节点更新逻辑198和改变记录更新逻辑200。改变记录生成器193
生成表示改变的数据的改变记录。节点更新逻辑198更新最后的改变记录引用192,以便它引用新创建的改变记录。改变记录更新逻辑200修改改变记录中的引用,使其指向新创建的改变记录,而不是节点112。
41.图5示出了位置标记(例如图1中所示的位置标记120)的示例。位置标记120说明性地是存储器174中的对象,其包括对存储器中的另一对象的引用以及在某些情况下执行的逻辑。与节点一样,位置标记可以包括它们自己的逻辑或跨其他对象共享逻辑。在图5所示的示例中,位置标记120包括节点/改变记录引用210、新改变记录检测器212、改变记录遍历逻辑214、改变解释逻辑216、引用更新逻辑218、偏移更新逻辑220,并且它可以包括多种其他位置标记数据和功能222。节点/改变记录引用210引用节点112,或已经由节点112生成并且位置标记120引用的任何中间改变记录202。引用210还可以包括指示它所引用的节点内的偏移的偏移值,以标识由树100表示的内容中的特定位置。
42.新改变记录检测器212检测新改变记录202何时已由节点112生成。例如,它可以检测改变记录202中的节点/改变记录引用206已被更新以指向新改变记录,而不是指向节点112。它也可以通过其他方式检测新的改变记录。
43.改变记录遍历逻辑214说明性地遍历从位置标记120所引用的改变记录的引用,直至通过所有中间改变记录到达节点112。改变解释逻辑216解释所遍历的每个改变记录中的改变信息204,以标识表示已对节点112进行并且由所遍历的改变记录表示的总体改变的总体改变值。
44.引用更新逻辑218然后更新节点/改变记录引用210,使得它引用最近的改变记录。偏移更新逻辑220基于由改变记录遍历逻辑214遍历的各种改变记录中反映的改变来修改位置标记120中的偏移值。
45.图6a

6c(这里统称为图6)示出了说明内容编辑系统172、存储器管理系统173和内容树176在维护和管理位置标记中的操作的一个示例的流程图。首先假设内容148中的一些项已经生成并存储在托管的内容创建计算系统132中。该内容的项可以是文字处理文档、电子表格文档、幻灯片演示文档或另一内容项。这由图6的流程图中的块230指示。接下来,假设用户158已经与接口154交互,以便启动或调用内容编辑系统172来编辑内容148。这样做时,可以将正在编辑的内容148下载到数据存储库164中,或者对应于要编辑的内容的内容树176可以被下载到客户端计算系统134,并且由存储器管理系统173存储在编辑器存储器174中。编辑器存储器174可以是内容编辑系统172的一部分或者与其分离。内容编辑系统122和存储器管理系统173说明性地使用由浏览器170实现的基于浏览器的接口,以便与内容树176和内容创建服务计算系统132交互。启动或调用内容编辑系统172由图6的流程图中的块232指示。将内容树加载到客户端计算系统存储器174中由框234指示。
46.如上所述,内容树176可以包括由图6的流程图中的块236表示的节点。节点可以具有到父/子关系或同胞关系中的其他节点的链接或引用。这由块238指示。内容树也可以包括其他项目240。
47.在某一时刻,内容编辑系统172的组件创建位置标记并保持对该位置标记的引用。位置标记本身是指内容树中的一个节点,它也包括一个偏移量,在该节点内,标识该节点中的特定位置,从而标识树100表示的文档中的特定位置。这由图6的流程图中的块242指示。
48.图7a

7g示出了将结合图2

6讨论的一系列图。图7a示出了一个示例,其中示出了
节点112(内容树100的节点)。图7a还示出了内容编辑系统172的组件已经生成了位置标记(例如,位置标记120),该位置标记保持对节点112的引用,该引用由箭头244指示。为了示例,假设为了执行内容选择的目的,内容编辑系统172中的选择功能182保持对位置标记120的引用。该引用由图7a 中的箭头246指示。
49.接下来,假设用户158与接口154交互,使得内容编辑系统172改变节点112中的信息。这由图6的流程图中的框248指示。改变可以是任意改变,如复制粘贴、选择、移动文本、删除信息、添加信息、修改信息等。
50.响应于该改变,节点112中的改变记录生成器193生成改变记录以反映改变的信息。在图7b中的250处标识出改变记录。节点112中的改变记录更新逻辑200然后更新改变记录250以将改变记录250中的引用添加到节点112。这由图7b的流程图中的箭头252指示。节点更新逻辑198然后更新节点112本身,使得最后的改变记录引用192现在保持对改变记录250的引用。这由图7b中的箭头254指示。生成反映改变的第一改变记录250,并保持对该改变记录的引用254,这由图6的流程图中的块256指示。使节点112配置改变记录250以使其保持对节点112的引用252,这由块258指示。
51.新改变记录检测器212检测到节点112已经创建了改变记录250。引用更新逻辑218然后更新节点/改变记录引用210(在位置标记120中),使得它现在引用改变记录250,而不是引用节点112。这由图6的流程图中的框260指示,并且该引用由图7b中的箭头262指示。
52.可能在某一时刻,内容编辑系统172在改变记录250中反映的改变之后对节点112进行另一改变。这由图6的流程图中的块264指示。此时,改变记录生成器193生成后续改变记录以反映由内容编辑系统172新做出的改变。节点更新逻辑198然后更新节点112中的改变记录引用192,使得它现在引用由节点112刚生成的后续改变记录(或最近的改变记录)。这由图6的流程图中的块266指示。
53.改变记录更新逻辑200配置新创建的改变记录,使得它包括对节点112的回引。它还配置先前的改变记录250,使得它现在包含对后续改变记录的引用,而不是对节点112本身的引用。其结果示于图7c中。
54.图7c类似于图7b,除了它现在示出节点112已经创建了新的(或后续的)改变记录268之外。图7c示出了改变记录250现在具有对新创建的改变记录268的引用270,而不是对节点112的引用。它还示出了改变记录268具有对节点112的引用272,并且该节点112现在具有对改变记录268的引用274,而不是对改变记录250的引用。使节点112配置改变记录250,使得它的引用270现在引用改变记录268,在图6的流程图的块276处示出。使节点112配置新创建的改变记录268,并且配置改变记录268以使其引用(通过箭头272)节点112,这也由块276指示。
55.引用更新系统194然后删除节点112中的引用以改变记录250。这由图6的流程图中的块278指示。位置标记120中的新改变记录检测器212检测后续改变记录268的创建。这由图6的流程图中的块280指示。此外,为了举例,假设内容编辑系统172的组件创建具有对改变记录268的引用的新位置标记282。因此,内容编辑系统172还保持对新位置标记282的引用284(如图7c所示)。创建新位置标记由图6的流程图中的块286指示。
56.在这一点上,可以看出内容编辑系统172保存对两个位置标记的引用(对位置标记120的引用246和对位置标记282的引用284)。位置标记120保存对改变记录250的引用262,
而位置标记282保存对改变记录268的引用288。
57.图7d类似于图7c,除了它显示节点112现在已经生成了两个额外的改变记录292和294,但是位置标记120和282还没有更新它们自己之外。改变记录268中的引用已改变为引用296,引用296现在引用改变记录292。改变记录292也具有引用298,该引用298引用改变记录294。进而,改变记录294具有引用300,引用300引用节点112,并且节点112具有引用302,引用302现在引用改变记录294。
58.位置标记120中的改变记录遍历逻辑214将遍历引用262、270、296和298通过改变记录250、268、292和294直到节点112,并且在这样做时改变解释逻辑216将解释反映在这些改变记录250、268、292和294中的每一个中的对节点112的改变。以这种方式遍历改变记录由图6的流程图中的块290指示。
59.位置标记120然后基于从所有改变记录250、268、292和294解释的改变来更新自身。例如,位置标记120可以更新它保持的相对于节点112的偏移值。它还可以更新其他信息。这由图6的流程图中的块306指示。
60.引用更新逻辑218然后更新位置标记120中的节点/改变记录引用210,使得它现在指向改变记录294。该引用或链接由图7d中的虚线箭头308指示,并且更新对改变记录294的引用的过程由图6的流程图中的块310指示。
61.引用更新逻辑218然后删除其对任何或所有其他改变记录的引用。例如,它删除其对改变记录250的引用262。删除对旧改变记录的引用由图6的流程图中的块312指示。
62.这导致图7e中所示的结构。现在可以看出,改变记录250不具有任何引用它的内容。同样,图7e示出了位置标记282类似地具有遍历链接296和298以及改变记录268、292和294并且更新自身和它自己的引用,使得位置标记282现在包含对改变记录294的引用314。在这种情况下,可以移除引用288以产生图7f所示的结构。因为改变记录250现在不具有任何引用它的内容,所以存储器管理系统173说明性地从存储器174释放它。例如,它可以通过垃圾收集或其他存储器维护机制来收集。一旦它被移除,则改变记录268就不具有任何引用它的内容。因此也可以从存储器中释放改变记录268。一旦改变记录268被释放,则改变记录292就不具有任何引用它的内容,它也可以被释放。
63.接下来,假设内容编辑系统172不再需要位置标记282。在这种情况下,系统172删除其自身对位置标记282的引用284,产生图7g所示的结构。现在,由于位置标记282不具有任何引用它的内容,因此它可以在存储器中被释放,并由垃圾收集器或其他存储器维护系统收集。这产生图7h所示的结构。一旦内容编辑系统172不再需要位置标记120,它就删除其自身对位置标记120的引用246。在这种情况下,可以从存储器中释放位置标记120。
64.释放未被引用的所有改变记录和位置标记由图6的流程图中的316指示。使用垃圾收集机制收集和释放它们由块318指示。它们也可以通过其他方式释放,并且这由块320指示。
65.还应该注意的是,当前的讨论可以应用于协作环境中。例如,假设用户158和160通过内容创建服务计算系统132在内容148的项上进行协作。在这种情况下,由用户158通过内容编辑系统172输入的改变通过服务计算系统132和网络138传播到客户端计算系统136。每个内容编辑系统172(在每个客户端计算系统中)然后在自己的客户端计算系统134上保存表示改变和它们来自的客户端计算系统的对象,以及内容编辑系统172在内容148中的位
置。因此,当客户端计算系统136中的内容编辑系统生成位置标记时,这些位置标记在表示客户端计算系统136中的内容编辑系统172的对象中被保持在客户端计算系统134上。对客户端计算系统136发送的改变也是如此。以这种方式,内容编辑系统172和内容树176中的代码(例如,节点中的代码、改变记录和位置标记)可以保持最新,以便也反映用户160所做的改变。改变的处理方式与在本地进行时相同,但维护标识符以标识改变的来源(例如,它们来自的客户端计算系统)。因此,存储器管理系统173可以不仅基于由内容编辑系统172做出的改变,而且基于涉及协作的客户端计算系统136中的内容编辑系统做出的改变来管理编辑器存储器174。
66.因此可以看出,本描述使存储器管理系统173能够为内容树176保持比其他情况小得多的占用空间。一旦位置标记或改变记录不再被另一对象引用,存储器管理系统173就释放该存储器用于其他用途。这减少了存储器溢出问题并保持较小的存储器占用空间。它还使内容树176中的节点在计算上独立于引用它们的位置标记的数量。改变记录生成器193和引用更新系统194用于生成改变记录和修改节点自身中的引用,以及新创建的和上次创建的改变记录,改变记录生成器193和引用更新系统194仅处理节点之间的恒定大小引用,最后的改变记录,以及一个前一个改变记录(因为逻辑将前一个改变记录中的引用改变为引用最后的改变记录)。它不需要处理更新可能附加到节点的整个位置标记集合。事实上,节点甚至不需要知道附加到它的任何位置标记。此外,即使位置标记修改的总数通常与正在使用的改变记录和位置标记的倍数成正比,但在内容树修改的最内层数据处理级别可以看到总体计算分布优势。即,在使用位置标记的时刻进行位置标记的维护。相对于节点改变而言,这种情况通常相对较少发生。因此,本描述也节省了计算开销。
67.将注意到,以上讨论已经描述了多种不同的系统、组件和/或逻辑。应当意识到,这样的系统、组件和/或逻辑可以由执行与那些系统、组件和/或逻辑相关联的功能的硬件项(例如处理器和相关存储器,或其他处理组件,其中一些在下面描述)组成。此外,系统、组件和/或逻辑可以由加载到存储器中并且随后由处理器或服务器或其他计算组件执行的软件组成,如下所述。系统、组件和/或逻辑也可以由硬件、软件、固件等的不同组合组成,下面描述了其中的一些示例。这些只是可用于形成上述系统、组件和/或逻辑的不同结构的一些示例。也可以使用其他结构。
68.本讨论已经提到了处理器和服务器。在一个示例中,处理器和服务器包括具有相关联的存储器和定时电路的计算机处理器,未单独示出。它们是它们所属的系统或设备的功能部分,由这些系统中的其他组件或项目激活,并促进这些系统中的其他组件或项目的功能。
69.此外,还讨论了许多用户接口显示。它们可以采用多种不同的形式,并且可以在其上设置多种不同的用户可致动输入机构。例如,用户可启动的输入机制可以是文本框、复选框、图标、链接、下拉菜单、搜索框等。也可以以多种不同的方式来致动它们。例如,可以使用指向和点击设备(例如轨迹球或鼠标)来致动它们。可以使用硬件按钮、开关、操纵杆或键盘、拇指开关或拇指垫等来致动它们。也可以使用虚拟键盘或其他虚拟致动器来致动它们。此外,如果显示它们的屏幕是触敏屏幕,则可以使用触摸手势来致动它们。此外,如果显示它们的设备具有语音识别组件,则可以使用语音命令来致动它们。
70.还讨论了许多数据存储库。需要注意的是,它们每个都可以分成多个数据存储库。
对于访问它们的系统而言,所有这些都可以是本地的,也可以是远程的,或者一些可以是本地的,而另一些则是远程的。所有这些配置都在本文中被考虑。
71.此外,附图示出了具有归属于每个块的功能的多个块。应当注意,可以使用更少的块,因此功能由更少的组件来执行。此外,可以使用更多块以及分布在更多组件中的功能。
72.图8是图2所示的架构130的框图,除了它的元素被布置在云计算架构500中之外。云计算提供计算、软件、数据访问和存储服务,这些服务不需要最终用户了解提供服务的系统的物理位置或配置。在各种实施例中,云计算使用适当的协议在诸如互联网的广域网上递送服务。例如,云计算提供商通过广域网提供应用程序,并且可以通过web浏览器或任何其他计算组件访问它们。架构130的软件或组件以及相应的数据可以存储在远程位置的服务器上。云计算环境中的计算资源可以在远程数据中心位置进行整合,也可以分散。云计算基础设施可以通过共享数据中心递送服务,即使它们表现为用户的单一访问点。因此,可以使用云计算架构从位于远程位置的服务提供商提供这里描述的组件和功能。可替代地,它们可以从传统服务器提供,或者它们可以直接安装在客户端设备上,或以其他方式安装。
73.该描述旨在包括公共云计算和私有云计算。云计算(公共和私有)提供了实质上无缝的资源池,并减少了管理和配置底层硬件基础设施的需要。
74.公共云由供应商管理并且通常支持使用相同基础设施的多个消费者。此外,与私有云相反,公共云可以让最终用户免于管理硬件。私有云可能由组织本身管理,基础设施通常不与其他组织共享。组织仍然在一定程度上维护硬件,例如安装和维修等。
75.在图8所示的例子中。,一些项目类似于图2中所示的项目并且它们的编号相同。图8具体示出了计算系统132可以位于云502中(其可以是公共的、私有的,或者部分是公共的而其他部分是私有的组合)。因此,用户158和160分别使用客户端计算系统134和136来通过云502访问那些系统。
76.图8还描绘了云架构的另一个示例。图8示出还预期计算系统132的一些元件可以布置在云502中而其他元件则不是。举例来说,数据存储库148可以设置在云502之外,并通过云502访问。无论它们位于何处,它们都可以由系统134和136通过网络(广域网或局域网)直接访问,它们可以通过服务托管在远程站点,也可以通过云作为服务提供或通过驻留在云中的连接服务访问。所有这些架构都在本文中被考虑。
77.类似地,图8示出了客户端计算系统134和136(或其他客户端计算系统)中的一些或全部可以部署为云502或不同云中的虚拟客户端计算系统504。用户可以通过各种不同的用户设备中的任何一个来访问虚拟客户端504。
78.还应注意,架构130或其部分可以设置在多种不同的设备上。其中一些设备包括服务器、台式计算机、膝上型计算机、平板计算机或其他移动设备,例如掌上计算机、手机、智能手机、多媒体播放器、个人数字助理等。
79.图9是可用作用户或客户的手持设备16的手持或移动计算设备的一个说明性示例的简化框图,其中可部署本系统(或其部分)。图10

11是手持或移动设备的示例。
80.图9提供了可以运行组件计算系统132的客户端设备(或用户设备)16或与架构130交互的客户端系统134和136或两者的组件的一般框图。在设备16中,提供通信链路13,其允许手持设备与其他计算设备进行通信,并且在一些实施例中提供用于自动接收信息的信道,例如通过扫描。通信链路13的示例包括红外端口、串行/usb端口、诸如以太网端口的有
线网络端口和允许通过一种或多种通信协议进行通信的无线网络端口,通信协议包括通用分组无线服务(gprs)、lte、hspa、hspa 和其他3g和4g无线电协议、lxrtt和短消息服务,它们是用于提供对网络的蜂窝访问的无线服务,以及wi

fi协议和蓝牙协议,它们提供到网络的本地无线连接。
81.在其他示例中,在连接到sd卡接口15的可移除安全数字(sd)卡上接收应用程序或系统。sd卡接口15和通信链路13与处理器17(其也可以包含处理器或其他图中的服务器)沿总线19通信,总线19也连接到存储器21和输入/输出(i/o)组件23,以及与时钟25和定位系统27通信。
82.在一个示例中,提供i/o组件23以促进输入和输出操作。用于设备16的各种示例的i/o组件23可以包括输入组件,例如按钮、触摸传感器、多点触摸传感器、光学或视频传感器、语音传感器、触摸屏、接近传感器、麦克风、倾斜传感器和重力开关和输出组件,例如显示设备、扬声器和/或打印机端口。也可以使用其他i/o组件23。
83.时钟25说明性地包括输出时间和日期的实时时钟组件。它还可以说明性地为处理器17提供计时功能。
84.定位系统27说明性地包括输出设备16的当前地理位置的组件。这可以包括例如全球定位系统(gps)接收器、loran系统、航位推算系统、蜂窝三角测量系统或其他定位系统。它还可以包括例如生成所需地图、导航路线和其他地理功能的地图软件或导航软件。
85.存储器21存储操作系统29、网络设置31、应用程序33、应用程序配置设置35、数据存储库37、通信驱动程序39和通信配置设置41。存储器21可以包括所有类型的有形易失性和非易失性计算机可读存储设备。它还可以包括计算机存储介质(如下所述)。存储器21存储计算机可读指令,当由处理器17执行时,这些指令使处理器根据指令执行计算机实现的步骤或功能。类似地,设备16可以具有客户端系统24,其可以运行各种应用程序或者体现架构130的部分或全部。处理器17也可以由其他组件激活以促进它们的功能。
86.网络设置31的示例包括诸如代理信息、互联网连接信息和映射之类的东西。应用程序配置设置35包括为特定企业或用户定制应用程序的设置。通信配置设置41提供与其他计算机通信的参数,包括gprs参数、sms参数、连接用户名和密码等项目。
87.应用程序33可以是先前已经存储在设备16上的应用程序或在使用期间安装的应用程序,尽管这些可以是操作系统29的一部分,或者也可以是托管在设备16外部。
88.图10示出了一个示例,其中设备16是平板计算机600。在图10中,计算机600被示为具有用户接口显示屏幕602。屏幕602可以是触摸屏(因此来自用户手指的触摸手势可用于与应用程序交互)或从笔或手写笔接收输入的启用笔的接口。它还可以使用屏幕上虚拟键盘。当然,它也可以通过合适的附接机制附接到键盘或其他用户输入设备,例如无线链接或usb端口。计算机600也可以说明性地接收语音输入。
89.图11示出该设备可以是智能电话71。智能电话71具有显示图标或图块或其他用户输入机制75的触敏显示器73。用户可以使用机制75来运行应用程序、拨打电话、执行数据传输操作等。一般来说,智能电话71建立在移动操作系统上并且比功能手机提供更先进的计算能力和连接性。
90.注意,设备16的其他形式也是可能的。
91.图12是其中可以部署(例如)架构130或其部分的计算环境的一个示例。参考图12,
用于实现一些实施例的示例系统包括计算机810形式的计算设备。计算机810的组件可以包括但不限于处理单元820(其可以包括来自先前图的处理器或服务器)、系统存储器830和系统总线821,系统总线821将包括系统存储器的各种系统组件耦合到处理单元820。系统总线821可以是使用各种总线架构中的任何一种的包括存储器总线或存储器控制器、外围总线以及本地总线的多种类型的总线结构中的任一种。作为示例而非限制,此类架构包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)本地总线和外围组件互连(pci)总线,也称为夹层总线(mezzanine bus)。关于图2描述的存储器和程序可以部署在图12的相应部分中。
92.计算机810通常包括各种计算机可读介质。计算机可读介质可以是可由计算机810访问的任何可用介质并且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质不同于且不包括已调制数据信号或载波。它包括硬件存储介质,包括以任何用于存储信息(例如计算机可读指令、数据结构、程序模块或其他数据)的方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储技术、cd

rom、数字多功能磁盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储设备,或可用于存储所需信息并可由计算机810访问的任何其他介质。通信介质通常包含传输机制中的计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传递介质。术语“已调制数据信号”是指一种信号,其一个或多个特征被设置或改变以在信号中编码信息。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、rf、红外线和其他无线介质之类的无线介质。上述任何一种的组合也应包括在计算机可读介质的范围内。
93.系统存储器830包括易失性和/或非易失性存储器形式的计算机存储介质,例如只读存储器(rom)831和随机存取存储器(ram)832。基本输入/输出系统833(bios),包含有助于例如在启动期间在计算机810内的元件之间传输信息的基本例程,通常存储在rom 831中。ram 832通常包含可由处理单元820立即访问和/或当前由处理单元820正在操作的数据和/或程序模块。作为示例而非限制,图12图示了操作系统834、应用程序835、其他程序模块836和程序数据837。
94.计算机810还可以包括其他可移动/不可移动易失性/非易失性计算机存储介质。仅作为示例,图12图示了从不可移动的非易失性磁介质读取或写入的硬盘驱动器841,以及从诸如cd rom或其他光学介质的可移动的非易失性光盘856读取或写入的光盘驱动器855。可以在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字多功能磁盘、数字视频磁带、固态ram、固态rom等。硬盘驱动器841通常通过诸如接口840之类的不可移动存储器接口连接到系统总线821,并且光盘驱动器855通常通过诸如接口850之类的可移动存储器接口连接到系统总线821。
95.替代地或另外地,本文描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如但不限于,可以使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(fpga)、程序专用集成电路(asic)、程序专用标准产品(assp)、片上系统式系统(soc)、复杂可编程逻辑器件(cpld)等。
96.上面讨论并在图12中示出的驱动器和它们相关联的计算机存储介质为计算机810
提供计算机可读指令、数据结构、程序模块和其他数据的存储。在图12中,例如,硬盘驱动器841被示为存储操作系统844、应用程序845、其他程序模块846和程序数据847。注意,这些组件可以与操作系统834、应用程序835、其他程序模块836和程序数据837相同或不同。操作系统844、应用程序845、其他程序模块846和程序数据847在此被赋予不同的编号,以说明它们至少是不同的副本。
97.用户可以通过诸如键盘862、麦克风863和诸如鼠标、轨迹球或触摸板之类的定点设备861之类的输入设备将命令和信息输入到计算机810中。其他输入设备(未示出)可以包括操纵杆、游戏手柄、卫星天线、扫描仪等。这些和其他输入设备通常通过耦合到系统总线的用户输入接口860连接到处理单元820,但也可以通过其他接口和总线结构连接,例如并行端口、游戏端口或通用串行总线(usb)。视觉显示器891或其他类型的显示设备也通过接口连接到系统总线821,例如视频接口890。除了监视器,计算机还可以包括可以通过输出外设接口895连接的其他外围输出设备,例如扬声器897和打印机896。
98.计算机810使用到一个或多个远程计算机(例如远程计算机880)的逻辑连接在联网环境中操作。远程计算机880可以是个人计算机、手持设备、服务器、路由器例如,网络pc、对等设备或其他公共网络节点,并且通常包括上文相对于计算机810描述的许多或所有元件。图12中描绘的逻辑连接包括局域网(lan)871和广域网(wan)873,但也可以包括其他网络。这种联网环境在办公室、企业范围的计算机网络、内部网和因特网中很常见。
99.当在lan联网环境中使用时,计算机810通过网络接口或适配器870连接到lan 871。当在wan联网环境中使用时,计算机810通常包括调制解调器872或用于通过wan 873(例如因特网)建立通信的其他装置。调制解调器872可以是内部的或外部的,可以经由用户输入接口860或其他适当的机制连接到系统总线821。在联网环境中,相对于计算机810描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例而非限制,图12图示了驻留在远程计算机880上的远程应用程序885。应当理解,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他方式。
100.还应当注意,这里描述的不同实施例可以以不同方式组合。即,一个或多个实施例的部分可以与一个或多个其他实施例的部分组合。所有这些都在本文中被考虑。
101.示例1是一种文档处理系统,包括:
102.生成表示内容文档并具有节点的内容树的内容树生成器;
103.对所述节点进行修改的内容编辑系统,该节点包括:
104.改变记录生成器,其生成表示对所述节点的修改的第一改变记录;和
105.引用更新系统,其更新所述第一改变记录中的引用以引用所述节点,并且更新所述节点中的引用以引用所述第一改变记录;以及
106.文本标记,其具有对所述节点的单向引用,以及指示所述节点中的位置的位置值,以及文本标记引用更新逻辑,文本标记引用更新逻辑在所述第一改变记录生成之后将对该节点的单向引用更新为对所述第一改变记录的单向引用。
107.示例2是任何或所有先前示例的文档处理系统,其中所述内容编辑系统被配置为对所述节点进行后续修改,并且其中所述改变记录生成器被配置为生成表示对所述节点的后续修改的后续改变记录。
108.示例3是任何或所有先前示例的文档处理系统,其中所述节点中的引用更新系统
被配置为生成后续改变记录中的对所述节点的引用,将所述第一改变记录中的引用更新为对所述后续改变记录的单向引用,然后删除所述节点中对所述第一改变记录的引用,并在所述节点中生成对所述后续改变记录的引用。
109.示例4是任何或所有前述示例的文档处理系统,其中所述文本标记包括:
110.新改变记录检测器,被配置为检测所述后续改变记录的生成,其中所述文本标记中的文本标记引用更新逻辑被配置为将对所述第一改变记录的单向引用更新为对所述后续改变记录的单向引用。
111.示例5是任何或所有前述示例的文档处理系统,其中文本标记包括:
112.所述文本标记包括:改变记录遍历逻辑,被配置为使用所述文本标记中对所述第一改变记录的单向引用、所述第一改变记录中对所述后续改变记录的单向引用以及后续改变记录中对所述节点的引用来遍历所述第一改变记录和所述后续改变记录。
113.示例6是任何或所有先前示例的文档处理系统,其中文本标记包括:
114.改变解释逻辑,被配置为基于对所述第一改变记录和所述后续改变记录的遍历来识别所述修改和后续修改,并基于所识别的修改和后续修改生成改变解释。
115.示例7是任何或所有先前示例的文档处理系统,其中文本标记包括:
116.偏移更新逻辑,被配置为基于改变解释更新所述文本标记中的识别所述节点中的位置的位置值。
117.示例8是任何或所有先前示例的文档处理系统,其中所述文本标记引用更新逻辑被配置为将文本标记中对所述第一改变记录的单向引用更新为对所述节点的单向引用。
118.示例9是任何或所有前述示例的文档处理系统,并且还包括:
119.存储器管理系统,其为所述文本标记、所述节点、所述第一改变记录和所述后续改变记录分配存储器,并释放分配给未由任何文本标记、改变记录或节点引用的任何改变记录的存储器。
120.示例10是任何或所有先前示例的文档处理系统,其中内容编辑系统包括:
121.基于浏览器的接口,其接收编辑用户输入并基于所述编辑用户输入编辑所述内容文档。
122.示例11是一种处理内容文档的方法,包括:
123.接收表示所述内容文档并具有节点的内容树;
124.对所述节点进行修改;
125.使用所述节点中的改变记录生成器来生成表示对节点的修改的第一改变记录;以及
126.使用所述节点中的引用更新系统来更新所述第一改变记录的引用以引用所述节点并更新所述节点中的引用以引用所述第一改变记录;以及
127.通过将对该节点的单向引用改变为对所述第一改变记录的单向引用,更新具有对该节点的单向引用和指示该节点中位置的位置值的文本标记。
128.示例12是任何或所有前述示例的方法,并且还包括:
129.对所述节点进行后续修改;以及
130.生成表示对所述节点的后续修改的后续改变记录。
131.示例13是任何或所有先前示例的方法,并且进一步包括,使用节点中的引用更新
系统来执行以下步骤:
132.在所述后续改变记录中生成对所述节点的引用;
133.将所述第一改变记录中的引用更新为对所述后续改变记录的单向引用;删除所述节点中对所述第一改变记录的引用;以及
134.在所述节点中生成对所述后续改变记录的引用。
135.示例14是任何或所有前述示例的方法,并且还包括:
136.利用所述文本标记检测所述后续改变记录的生成;以及
137.将对所述第一改变记录的单向引用更新为对所述后续改变记录的单向引用。
138.示例15是任何或所有前述示例的方法,并且还包括:
139.用文本标记中的改变记录遍历逻辑使用文本标记中对第一改变记录的单向引用、第一改变记录中对后续改变记录的单向引用以及后续改变记录中对节点的引用来遍历第一改变记录和后续改变记录;
140.通过文本标记中的改变解释逻辑,基于对第一改变记录和后续改变记录的遍历来识别修改和后续修改;以及
141.基于所识别的修改和后续修改来生成改变解释。
142.示例16是任何或所有先前示例的方法,并且还包括:
143.使用文本标记中的偏移更新逻辑更新文本标记中的偏移值,以根据改变解释来识别节点中的位置。
144.示例17是任何或所有前述示例的方法,并且还包括:
145.使用文本标记引用更新逻辑,将文本标记中对第一改变记录的单向引用更新为对节点的单向引用。
146.示例18是任何或所有前述示例的方法,并且还包括:
147.为文本标记、节点、第一改变记录和后续改变记录分配存储器;以及
148.释放分配给未被任何文本标记、改变记录或节点引用的任何改变记录的存储器。
149.示例19是任何或所有先前示例的方法,其中处理内容文档的方法在第一客户端计算系统上执行并且其中进行修改包括:
150.从第二客户端计算系统接收修改的指示;以及
151.将修改识别为是从第二客户端计算系统做出的。
152.示例20是一种文档处理系统,包括:
153.内容树生成器,其生成表示内容文档并具有节点的内容树;
154.内容编辑系统,其部署在基于云的客户端计算系统上,通过基于浏览器的接口接收编辑输入并对所述节点进行修改,该节点包括:
155.改变记录生成器,其生成表示对所述节点的修改的第一改变记录;和
156.引用更新系统,其更新所述第一改变记录中的引用以引用节点,并且更新所述节点中的引用以引用所述第一改变记录;以及
157.文本标记,其具有对所述节点的单向引用,和指示节点中的位置的位置值,以及文本标记引用更新逻辑,文本标记引用更新逻辑在所述第一改变记录生成之后将对该节点的单向引用更新为对所述第一改变记录的单向引用。
158.虽然已经以结构特征和/或方法动作特定的语言描述了主题,但是应当理解,在所
附权利要求中定义的主题不一定限于上述特定特征或动作。相反,上述特定特征和动作被公开为实施权利要求的示例形式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献