分层数据容器的系统和方法

文档序号:6534138阅读:172来源:国知局
分层数据容器的系统和方法
【专利摘要】用于管理计算环境(例如云数据仓库)的方法、制品和设备。在一些实施例中,这可包括在运行时间修改对象或对象的组件并且将修改的对象或修改的对象的组件存储在存储装置中。在一些实施例中,修改的对象的组件可包括特征。在一些实施例中,特征可以是分层数据结构,其包括具有超过一个版本的分层数据结构。这些分层数据结构还可包含元数据或与之关联,并且还可组成托管对象的元数据。实施例规定策略可应用于这些特征。
【专利说明】分层数据容器的系统和方法

【技术领域】
[0001]本发明大体上涉及数据系统,并且更特定地涉及用于在数据系统中组织和升级数据的系统和方法。

【背景技术】
[0002]传统上,例如树或目录/文件夹型数据结构或组织方案等分层数据关系通常在父-子型数据表中限定或实现。传统的分层数据关系在图1中描绘。具有根节点11的分层树数据关系I和具有根节点12的树关系2对应于表3中的分层关系数据。在这样的表中,分层关系1、2分解为父-子关系或指针的集合,其中分层容器或树标识符1、2在列4中指示,并且组成分层关系的父(列5)和子(列6)关系对每个树1、2阐明。例如,在分层容器2中(其中根节点12具有子节点22),节点22的子关系23是子节点32 (关系存储在行42中)和子节点33 (关系存储在彳丁 43中)。
[0003]这样的表格实现相对于这样的数据结构的存储并且特别在分层数据结构的数据库存储的情况下具有一些劣势。例如,如果有人期望从采用表3中描绘的形式存储的数据库重建分层数据结构,将需要0(n)询问,其中η是树中的节点数量。对于通常遇到的现实世界的大的值η,该线性重建时间可与明显的性能下降关联。
[0004]另外,因为组成数据结构1、2的父-子关系存储在头或根节点101、102外部的表3、指针或指定数据结构1、2或其实例的其他识别特性中,对于分层数据结构的该父-子数据表3致使数据结构不适合于嵌入对象中。
[0005]数据的版本化(例如分层数据结构)可包括对象或数据结构(例如分层数据结构)的离散或唯一状态的命名和编目。由于上文论述的分层容器的存储方面(其包括需要的存储的复杂性和体积),分层数据结构的版本化大体上是低效的。在这些数据结构改变时,典型地必需维持整个历史数据结构以便示出检查的数据结构的过去版本。从而,需要大量存储来维持关于这些数据结构的历史信息。
[0006]因此需要有用于组织数据系统中的数据(其包括对于分层数据结构)和用于对数据系统中存储的数据进行修改的改进方法、制品和设备。

【专利附图】

【附图说明】
[0007]本发明将通过下列详细描述连同附图而容易理解,其中类似的标号指代类似的结构元件,并且其中:
图1图示根据现有技术的分层表示的表格表示。
[0008]图2图示根据一些实施例的数据系统。
[0009]图3图示根据一些实施例的数据系统,其包括数据结构外部的关联。
[0010]图4图示根据一些实施例具有嵌入式元数据的数据系统。
[0011]图5图示根据一些实施例具有与数据结构关联的策略的数据系统。
[0012]图6图示根据一些实施例具有关联策略的数据系统。
[0013]图7图示根据一些实施例具有关联策略的数据系统。
[0014]图8图示根据一些实施例具有带关联快照的数据结构的数据系统。
[0015]图9图示根据一些实施例具有带外部关联快照的数据结构的数据系统。

【具体实施方式】
[0016]在下文连同附图提供本发明的一个或多个实施例的详细描述,这些附图图示本发明的原理。尽管本发明连同一个或多个这样的实施例描述,应该理解本发明不限于任一个实施例。相反地,本发明的范围仅由权利要求限制并且本发明包含许多备选、修改和等同物。为了示例目的,在下列描述中阐述许多具体细节以便提供本发明的全面理解。为了示例目的提供这些细节,并且本发明可根据权利要求实践而没有这些具体细节中的一些或全部。为了清楚目的,在与本发明有关的【技术领域】中已知的技术材料未被详细描述使得不会不必要地掩盖本发明。
[0017]应该意识到本发明可以以许多方式实现,包括作为过程、设备、系统、装置、方法或计算机可读介质,例如计算机可读存储介质或计算机网络,其中计算机程序指令通过光或电子通信链路发送。应用可采取在通用计算机上执行的软件的形式或在硬件中或固件中硬连线或硬编码。在该说明书中,这些实现或本发明可采取的任何其他形式可称为技术。一般,可在本发明的范围内更改公开的过程的步骤顺序。
[0018]本发明的实施例将参考采用配置成存储文件的存储系统的形式的数据存储系统描述,但应该理解本发明的原理不限于该配置。相反,它们能应用于能够存储和处理各种类型的对象以及特别地采用模拟、数字或其他形式的数据对象的任何系统。尽管可通过示例使用例如文档、文件、对象等术语,本发明的原理不限于代表和存储数据或其他信息的任何特定形式;相反,它们同样能应用于代表和存储信息的任何方式。相似地,尽管在本文可参考数据库、数据系统、文档存储系统、数据仓库或相似的系统或数据集合;对这些系统中的一个类型的参考应指所有这样的适合系统,除非另外明确规定。
[0019]本发明的实施例描述或建立限定分层容器所采用的方法或设备。这些分层容器在某些实施例中则可嵌入对象中。本发明的实施例可用于创建分层容器,其限定嵌套容器(其包括嵌套分层容器)。在其他实施例中,分层容器可限定分层排序的关联。
[0020]本文描述的技术和结构允许数据对象或附带数据结构或特性的动态定义,如在2011年6月30日提交的共同所用和同在审批中的美国专利申请号13/174,746 (代理人案号EMC-11-219)对于“DYNAMIC DATA STRUCTURES (动态数据结构)”中更详细描述的;这样的申请为了全部目的通过引用合并于此。
[0021]如在这样的申请中描述的,数据对象可采用XML文档的形式实现。例如,在涉及扫描纸质文档、数据文件或一些其他实际、虚拟或电子文档或文件的一些实施例中,可创建“文档”数据对象。具有类型“文档”的该对象可例如通过XML文档中适当地提供标签而给出特征。在一些实施例中,数据方面或其他横切或多对象数据结构或属性(而不是“特征”)可例如通过XML文档中的实现而与数据对象(在本文统称为“特征”)关联。如果对象或特征在这样的文档中实现,这些数据对象与它们关联的特征可方便地存储在面向对象或其他数据库中,例如为存储XML文档而优化的数据库。本发明的受让人分配的xDB数据库可适合地在实施例中采用以用于存储实现数据对象和关联特征的XML文档。
[0022]本文描述的增强技术允许数据对象或数据结构(其包括分层数据结构)的动态定义。特征定义限定数据模型,但特征也可揭露服务和方法。在运行时间期间将特征添加到对象允许灵活的数据库模型而不必前期限定刚性数据库结构。
[0023]根据本发明的实施例的对象和特征每个可具有类型。对象类型可在XML文档中限定,并且对象类型定义可包括例如名称、命名空间和版本,并且在本发明的实施例中可存储在类型系统数据库中,例如在xDB数据库中。特征定义可相似地存储在一或该类型系统数据库中。
[0024]作为根据本发明的实施例的特征的另一个示例,具有类型“文档”的对象可创建有“内容”特征和“创作”特征。对象持有与某一文件(其可在系统中存储在别处)有关的数据(“文档”对象的实例),例如采用本地二进制大对象(“BLOB”)、众所周知的二进制数据格式或MME格式。在一些实施例中,“内容”特征可对关于该文件(例如,MME类型、大小、文件引用、文件名称或文件系统元数据)的数据分组,而“创作”特征可与关于文件的创作过程(例如,最后修改日期、最后的修改人、创建日期、创建人或应用元数据)的数据关联。
[0025]特征是很适合在运行时间添加到例如对象等数据结构的数据定义。特征定义限定数据模型,但特征也可揭露、提供或启用服务和方法。在运行时间期间将特征添加到对象允许灵活的数据库模型而不必前期限定刚性数据库结构。实施例可进一步允许在运行中添加或修改特征而不中断存储系统或数据库的连续使用。特征是这样的对象部分,其具有对对象的该部分限定限制的关联特征定义。复合对象可以保持多个特征,每个具有关联的特征定义。
[0026]图2图示根据本发明的某些实施例的数据系统。对象的实例210被例示并且存储在数据库220中。在描绘的实施例中,依赖于根节点230的分层关系可在分层容器240中保持,其可例示为并且也可以识别为对象实例210的嵌入式特征240。在对象210级处嵌入分层容器240消除对外部数据结构3的需要,并且允许将分层容器240视为复合数据对象210的特征240。特征是能应用于数据结构(例如对象)的数据定义。分层容器240 (是特征)经由指针引用245而与类型系统数据库260中存储或包含的特征定义250关联。特征定义限定对于特征的方案,其进而是对象的元数据块。特征定义还可限定对该元数据块特定的服务,和/或可对于它所限定的特定特征限定事件模型,例如事件处理器。
[0027]对象可包含或托管其他特征(未描绘)。例如,对象可以是具有“内容”特征和“创作”特征的“文档”对象(未描绘)。对象持有与某一文件(其可在系统中存储在别处)有关的数据。“内容”特征可例如对关于文件(MIME类型、大小、文件引用、文件名称)的数据分组,而“创作”特征可对关于文件的创作过程(最后修改日期、最后的修改人、创建日期、创建人)的数据分组。
[0028]作为分层数据结构,根节点230可具有带变化深度的依赖或后代节点,例如270、275、280、285,和这里未专门枚举的其他后代节点。
[0029]根据本发明的某些实施例,分层容器可以用于使其他对象、对象的特征和/或其他分层容器节点关联。图3图示根据本发明的某些实施例的数据系统,其包括对象与分层容器关联或来自分层容器所在的实施例。如在图2中的,对象实例210包含嵌入式分层容器特征240,其中关联的特征定义250存储在类型系统260中。分层数据结构230的元素可与其他对象或数据元素关联。例如,分层容器节点270可通过指针310或其他可寻址或任何其他查找或引用(在本文大体上称为“指针”)而与实例320关联。另外的后代分层容器节点280可与不同的对象实例360关联。相似地,对象实例345中嵌入的特征实例340可通过指针330而与分层容器节点275关联。实施例还提供分层容器节点285与独立对象实例390中的分层容器特征385的独立实例的节点380的关联。
[0030]本发明的实施例还提供元数据在分层容器内和/或分层容器节点处的存储。图4图示根据本发明的一些实施例的数据系统。对象实例210包含嵌入式分层容器特征240,其中关联的特征定义250存储在类型系统260中。分层容器节点410经由指针而与元数据415关联。采用该方式,元数据可嵌入分层容器特征内、节点410级处。相似地,元数据425可与分层容器节点420关联,并且进一步在分层容器下,元数据435可与分层容器节点275关联。
[0031]这样的实施例提供分层容器节点,例如节点275、410和420,其可包含强类型的元数据(例如分别地,435、415和425)。可使用关联的245分层特征定义250以便限定或限制哪个元数据415、425、435支持容器节点275、410或420内或处的嵌入。
[0032]在某些实施例中,分层容器可嵌入对象级处并且在XML中串行化、经由代表性状态转移(REST)接口和URI而访问。本发明的某些实施例可提供元数据在分层容器中的任何节点处的存储。根据本发明的分层容器还可具有关联的策略。另外,或代替这样的关联策略,在某些实施例中,策略可与从或由分层容器引用的对象关联。
[0033]本发明的实施例可具有与分层容器或一个或多个分层容器中的某些节点的其他关联。例如,某些信息系统行为或数据处理可与分层容器中的某一节点或某一类型的节点或某一类型的分层容器关联。与节点或一类型的节点的另一个类型的关联可以是事件处理过程(其包括由代码、脚本、子例程或其他机器指令(其包括在硬件或固件中编码的)实施的过程)。
[0034]本发明的其他实施例提供分层容器的版本化,即分层容器的不同相关实例或相关实例链的跟踪和/或编目。在某些实施例中,这样的版本化可包括或可选地提供分层容器的实例或类型中的增量式改变的跟踪或存储,其可以在未来无限地或持续某一时期地回顾,由此提供对数据结构随时间的改变的理解或遗留或储存数据的使用或操纵。
[0035]其他实施例可提供分层容器,其从某一原型或原属分层容器结构定制来为某些商业或其他数据用户或群体提供最大效用。这些实施例中的一些可视为提供“个性化”或“定制”分层容器。本发明的实施例还可提供某一分层容器关于之前存在的分层容器的继承性或多态性。
[0036]根据本发明的某些实施例的分层容器是可嵌入对象中的数据结构。本发明的分层容器还可具有这样的实施例,其中分层容器包含深度嵌套数据结构。这些的子实施例可包括这样的分层容器,其通过指针而链接到相同或其他对象中的其他分层容器或引用其他分层容器。
[0037]本发明的一个实施例提供分层容器,其可在对象级处嵌入。在该类型的特定实施例中,分层容器将进一步在XML中串行化。可意识到在对象级处嵌入分层容器消除对外部数据结构的需要以便实施或实现分层容器。这样的实施例(其提供要嵌入的分层容器)进一步允许分层容器视为复合数据对象的特征或作为复合数据对象的特征而建立。实施例规定对象的特征可典型地与限定特征的特征定义关联,并且因此可对对象的特征部分的行为和性质施加限制或可增强对象的特征部分的行为和性质。特征然后组成与对象关联的元数据。复合对象可以持有或托管多个特征,每个具有关联的特征定义。本发明的实施例可启用或利用描述对象的特征,例如版本或版本化特征。如果对象持有特定特征,特定性质或行为可与这样的特征关联;例如,持有或包含版本化特征的对象可支持或实现版本化。版本化特征在许多实施例中将典型地包含管理版本化能力的一些性质和服务。例如,“最后修改日期”可以是由这样的特征提供的方案的方面。
[0038]本发明的实施例还提供可与分层容器节点关联的外部策略的建立。引用分层容器节点的策略可以对该容器节点和/或它的后代应用或揭示特定行为;和/或策略可对该特定分层容器节点所引用的所有对象应用/揭示特定行为。图5图示根据本发明的一些相关实施例的数据系统。如与本文描绘的其他实施例一样,对象实例210包含嵌入式分层容器特征240。存储在类型系统260中的关联特征定义250未在图5中描绘。策略525可经由指针530而与分层容器节点420 —起应用或与之关联。受策略影响或服从策略的分层容器节点被策略应用区域535界定。在该实施例和状态中,策略应用区域535指示对于具有根节点230的分层容器,策略应用于策略525所应用的分层容器节点420。
[0039]图6图示根据本发明的一些实施例的数据系统,并且特别描绘策略525对与对象实例210关联的分层容器特征240的节点420的应用。策略525在该实施例和状态中可被设计或应用以便应用于或限制策略525经由指针530而与之关联的分层容器节点420,并且也应用于节点420的子或后代叶节点621、622。实施例提供对某些规定深度/ 一个或多个级(例如,在子节点621、622中)或以节点420为根的整个子树处的子或其他后代的策略应用性的选择。这样的策略应用指令中的若干个(例如,从节点420的整个子树;节点420+节点420的子;节点420和到(n+1)深度的后代)可导致图6的描绘的策略应用区域635。某些这样的策略应用性(例如,整个子树)可由用户或管理员在缺乏逆向选择的情况下选为默认策略应用性,或系统可在策略应用性中根本没有提供选项。
[0040]图7图示根据本发明的一些实施例的数据系统,并且特别描绘策略725对节点420的应用。策略725在该实施例和状态中可设计成或应用成应用于或限制策略725经由指针730而与之关联的分层容器节点420,并且也应用于子节点621和622,并且还应用于关联或链接的对象实例721和722,其分别通过指针723和724而与节点621和622关联。策略725对节点420的应用性在该实施例和状态中可例如设置成应用于节点420是根所针对的整个子树,和链接到服从策略725的任何节点的任何对象例示(例如,721和722)。可预期这样的应用性策略导致策略应用区域735。如之前那样,这样的策略应用性(例如,整个子树,其包括链接对象)可由用户或管理员在缺乏逆向选择的情况下选为默认策略应用性,或系统可在策略应用性中根本没有提供选项。
[0041]根据本发明的实施例的策略可关于任何计算机处理、存储、管理、安全、备份、归档或可根据限定或可确定的标准、准则或规则而应用或执行的其他功能。根据一些实施例的策略的另一个示例是安全策略,可以引用分层容器节点的特殊情况的策略。
[0042]可作为策略而应用并且在对于分层容器的一些定义中与分层容器特征或节点关联的另一个策略可以限定事件处理器(事件处理过程、指令或例程)来限定事件发生之前或之后与容器节点有关的额外行为。这些额外行为在一些实施例中可在脚本中或使用应用逻辑来限定。实施例提供事件处理器,其可以在特征定义中限定,该特征定义可包括这样的事件:例如“访问节点”,在其下在访问容器节点之前或之后发起行为;“添加节点”,关于发起行为是数据结构(例如,对象、节点或其他容器节点)到服从策略的容器节点的添加的事件;“删除节点”,删除容器节点的事件;“改变节点”,容器节点被改变的事件;“元数据访问”,容器节点的元数据被访问的事件;“元数据增加”,元数据增加到容器节点的事件;“元数据删除”,删除容器节点的元数据;“元数据改变”,容器节点的元数据改变事件。
[0043]因为分层容器与复合数据结构中的对象关联,它们可以版本化,就像任何其他对象版本化模型一样,并且版本化信息可以创建和/或连同分层容器的任何事件驱动或任何其他改变一起存储。相似地,分层容器的状态可以通过创建该状态的快照而保存。如本文使用的,“快照”是分层特征容器的副本。图8图示根据一些实施例具有带关联快照的数据结构的数据系统。对象例示810对分层特征840托管,其包含具有根节点830的分层容器。具有该特征的快照841由与特征的额外实例相同的对象810托管。特征的两个实例(原始特征840和快照特征841)可分别通过指针845和855而与相同的分层特征定义850关联。在其他实施例中,每个特征840和841可与独立但相同的分层特征定义850关联。实施例将提供从快照特征841回到原始特征840的指针关联865。
[0044]容器或特征841的该副本可以绑定到与原始特征840相同的对象810,或它可以备选地或也绑定到一个或多个不同的托管对象。图9图示根据一些实施例具有带外部关联快照的数据结构的数据系统。如在图2中的,对象210具有嵌入式特征240,该特征通过指针245而与分层特征定义250关联。快照940 (分层容器240的副本)由独立对象910托管。快照940经由指针965而也与原始分层容器特征240关联。一些实施例规定在快照操作期间,不一定保存分层容器内的节点身份。相反,快照分层容器节点内的节点可简单地回溯到它的原点,即,包含到分层容器(副本由其组成)的节点的指针。
[0045]本发明的实施例规定分层容器可“个性化”或定制来满足数据系统用户或管理员的需要。这样,分层容器可以用于管理个人文件夹或目录结构(例如,用户定制或独有的文件夹结构),其中每个用户可以具有托管一个或多个分层容器特征的一个或多个对象。
[0046]本发明的实施例规定分层容器可以用于高效管理“虚拟文档”,即例如数据对象或相似的用户显示构造等数据元素,其中显见文档基于与指针关联的引用或数据元素而组合。分层容器可以托管对整个“虚拟文档”的关联部分的所有引用。该虚拟文档的部分可以通过遵循来自每个分层容器的所有引用并且使它们结合而组合并且对用户显示以在单个文档接口、模拟或体验中向用户显示。
[0047]为了清楚起见,本文的过程和方法已经用具体流程图示,但应该理解其他序列可是可能的并且一些可并行执行,而不偏离本发明的精神。另外,步骤可细分或组合,或过程可调用其他过程来处理某些任务。在本文对“服务”、“过程”、“方法”、“任务”和相似术语的引用应理解为包含服务、方法、应用、小程序、功能、模块、守护程序、脚本、任务和其他计算机过程,然而是计价的。尽管一些过程或方法可描述为“预期”、“期望”或“接受”某些信息或结果,或更一般地执行动作(例如“获得”),本领域内技术人员将意识到这些过程不必有意识或具有知觉或代理,相反,指示预期或希望的拟人性语言仅规定成说明过程或方法可设计成处理或使用某些类型的参数或具有某些质量或类型的数据,并且其他参数或数据可导致错误、失效、例外、溢出、异常终止、异常结束或“崩溃”;或用别的方式导致非预期、不准确、不可取或次优的结果或输出。如本文公开的,根据本发明编写的软件可存储在例如存储器或CD-ROM/光介质等一些形式的计算机可读介质中,或在网络上传送,并且由处理器执行。
[0048]本文援引的所有参考意在通过引用而包含。尽管已经在上文从具体实施例方面描述本发明,预期对本发明的改动和修改将无疑对于本领域内技术人员变得明显并且可在附上的权利要求的范围和等同物内实践。可使用超过一个的计算机,例如通过使用并联或负载分担设置的多个计算机或使任务横跨多个计算机、处理器或分区分配,使得它们作为整体执行本文识别的组件的功能;即,它们代替单个计算机。上文描述的各种功能可由单个计算机上或分布在若干计算机上的单个过程或过程组执行。可使用单个存储装置,或可使用若干个来代替单个存储装置。公开的实施例是说明性而非限制性的,并且本发明不限于本文给出的细节。存在实现本发明的许多备选方式。因此规定本公开和下面的权利要求解释为涵盖所有这样的改动和修改,它们落入本发明的真正精神和范围内。
【权利要求】
1.一种用于在数据仓库中创建分层数据结构的方法,所述方法包括: 创建数据对象; 创建分层数据特征实例,其具有对应于分层特征定义的至少一个节点;以及 使所述分层数据特征实例与所述数据对象关联。
2.如权利要求1所述的方法,其中所述分层数据特征实例以串行化形式存储。
3.如权利要求2所述的方法,其中所述分层数据特征实例存储为XML数据元素。
4.如权利要求1所述的方法,进一步包括将所述数据对象存储在数据库中的步骤。
5.如权利要求1所述的方法,其中所述分层数据特征实例的至少一个节点与这样的节点外部的数据结构关联。
6.如权利要求5所述的方法,其中所述节点外部的数据结构是元数据信息。
7.如权利要求5所述的方法,其中所述节点外部的数据结构在所述数据对象外部。
8.如权利要求7所述的方法,其中所述数据对象外部的至少一个数据结构是第二数据对象。
9.如权利要求5所述的方法,其中所述节点外部的至少一个数据结构是第二分层数据特征实例。
10.如权利要求1所述的方法,进一步包括以下步骤: 创建能应用于所述分层数据特征实例的至少一个节点的策略;以及 将所述策略应用于所述分层数据特征实例的至少一个节点。
11.如权利要求10所述的方法,进一步包括将所述策略应用于与所述分层数据特征实例的至少一个节点关联的数据结构的步骤。
12.如权利要求10所述的方法,其中能应用于所述分层数据特征实例的至少一个节点的策略是事件处理指令。
13.如权利要求10所述的方法,其中能应用于所述分层数据特征实例的至少一个节点的策略是版本化指令。
14.如权利要求1所述的方法,其中所述分层特征实例与所述分层特征实例外部的数据结构关联。
15.如权利要求14所述的方法,其中所述分层特征实例外部的数据结构是所述分层特征实例的快照。
16.如权利要求15所述的方法,其中所述分层特征实例的快照由所述数据对象托管。
17.如权利要求15所述的方法,其中所述分层特征实例的快照由第二数据对象托管。
18.一种用于存储分层数据结构的系统,包括: 处理器,其配置成 在存储器中创建分层数据结构定义; 根据所述分层数据结构定义来例示分层数据结构;以及 在存储器中使所述分层数据结构与至少一个数据对象关联。
【文档编号】G06F7/00GK104321739SQ201380028529
【公开日】2015年1月28日 申请日期:2013年3月14日 优先权日:2012年3月31日
【发明者】J.范罗特丹, M.波尔曼 申请人:Emc 公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1