用于管理分布式异质数据源之间的复杂关系的系统和方法

文档序号:2610739阅读:179来源:国知局
专利名称:用于管理分布式异质数据源之间的复杂关系的系统和方法
技术领域
本发明涉及数据处理领域并且更特别地涉及一种用于管理多 个分布式异质数据源之间的关系的系统和方法。
背景技术
在很多企业中希望集成来自各种数据源的数据。目前,注意力 主要集中于在涉及到数据库管理系统、知识库、平面文件系统、表
单(form)和电子数据表(spreadsheet)应用等的异质数据源分布式 环境中的简单数据查询和映射。这样的数据查询通常使得用户可以 使用比如结构化查询语言(SQL)来指定搜索标准,而数据映射用 来在异质后端系统与集中式集成平台之间转译查询和结果。虽然当 前正在构建大规模集成解决方案以提供高效的数据获取,但是这些 解决方案都不支持用于数据的复杂关系管理的基础结构。目前,用 于数据集成的规范通常仅涉及到来自多个数据源的显式数据映射。 例如,Dessloch等人的美国专利申请第6,633,889号教导了将驻留于 多个数据源中的持久型数据对象映射到对于计算机所执行的面向对 象编程语言应用而言可访问的单个可重用软件部件中以便对可以物 理地分布和存储于全异数据库管理系统中的数据进行多数据库访 问。可以基于注册数据对象来创建单个虚拟数据对象,而该虛拟数 据对象可以封装成可重用软件部件。
现有技术的解决方案通常不能促进在传统显式映射之上对隐 式信息即复杂关系定义的使用和标识。另外,在现有技术的系统中, 用户必须传统地发布多个查询以收集最终答案以便例如开发管理 链。仅就表达出正确的查询而言,用户通常就必须预先具有对系统 的方案和结构的整体了解。最后,现有技术的系统通常限于获取显
式数据而不允许通过广义数据结构来获取和维护在多条显式数据之 间的逻辑牵连。鉴于上述内容,希望提供一种用于管理分布式异质数据源之间 的复杂关系的系统和方法。除了促进对传统显式映射的使用和标识 之外,该系统和方法还应当促进对隐式信息即复杂关系定义的使用和标识,并且应当为用户提供例如使用可扩展标记语言(XML)脚 本以概念上直观和视觉上显式的方式定义任一类所需关系的灵活 性。也将希望该系统和方法使得用户可以容易地导航而无需复杂的 查询表达式。另外也将希望该系统和方法使得用户可以通过将导航 结构和组件本身视为复杂的数据形式来获取附加的"隐式"数据。发明内容本发明解决了现有技术中的上述需要,提供一种用于管理分布 式异质数据源之间的复杂关系的系统和方法。在一个方面中,提供 管理多个分布式异质数据源的系统集成平台以及配置为包含从数据 源映射和/或转译的实体和/或属性的中央数据模型。该管理能够对例 如来自用户的查询命令做出响应。该平台能够确定与命令相对应的 所需查询结果。该平台能够包括关系和导航数据仓库,该数据仓库 配置为包含定义在来自不同数据源的数据之间的关系的关系模板并 且也与中央数据模型进行接口连接。该系统集成平台还能够包括耦 合到关系和导航数据仓库的集成引擎。该引擎能够配置为接收查询 命令、确定查询命令适用'于哪个或者哪些数据源以及哪个或者哪些 模板并且响应于查询命令来计算所需查询结果。在本发明的另一方面中,提供一种构造用于管理多个分布式异 质数据源的导航树结构的方法。该方法包括以下步骤获得预先存 在的定义数据;对用于预先存在的定义数据的多个存储器内节点 (in-memory node )进行实例化;至少对针对各节点的关系属性和实 体属性进行初始化;以及从具有给定属性的给定节点形成已更新的 导航树结构。
在本发明的又一方面中,提供一种处理与多个分布式异质数据源相关联的查询命令的方法。该方法包括获得查询命令;以及响 应于查询命令,创建导航会话或者加载预先存在的导航会话。该方 法还包括将查询命令以及新的导航会话或者预先存在的导航会话 传递到集成引擎;然后通过使用集成引擎来标识和解释与查询命令 相关联的有关定义和计算模板。该方法还包括至少部分地基于定 义和计算模板中的至少一个定义和计算模板而从有关分布式异质数 据源计算和获取所需查询结果。在本发明的又 一 个方面中,提供 一 种用于构造导航树结构的系 统,该导航树结构用于管理多个分布式异质数据源。该系统包括关 系和导航数据仓库以及集成引擎。该集成引擎耦合到该关系和导航 数据仓库,以及配置为从该关系和导航数据仓库和/或 一 个或者多个 分布式数据源获得预先存在的定义数据。集成引擎还配置为对用于 定义数据的多个存储器内节点进行实例化以及至少对针对各节点的 关系属性和实体属性进行初始化。该集成引擎还配置为从具有给定 属性的给定节点形成已更新的导航树结构。通过参照以下具体描述和附图将获得对本发明以及本发明的 更多特征和优点的更完整理解。


图1示出了根据本发明的系统集成平台;图2示出了根据本发明的处理查询命令的方法的流程图;图3示出了根据本发明的示例性关系定义和计算模板;图4示出了配置为向用户进行显示的导航树结构;图5示出了根据本发明的导航树结构的导航树以及节点数据阵列;图6示出了广义导航树结构;图7示出了多维导航树结构;以及图S示出了根据本发明的构造导航树结构的方法。具体实施方式

现在将参照图1,该图描绘了根据本发明实施例的系统集成装置(也称为平台)100。平台100管理多个分布式异质数据源102和 中央数据模型104。中央数据模型104配置为包含从数据源102映射 和/或转译的实体和/或属性。平台IOO响应于例如能够从外部浏览器 106接收的查询命令来确定所需查询结果。将认识到(恰如在使用数 据联合的传统集成平台中一样)各数据源102能够具有可以例如通 过适当的连接和封装器(比如JDBC ( Java数据库连通性)封装器或 者定制API (应用程序接口 )封装器)来传送到平台100中的数据。 平台100包括配置为包含关系模板110的关系和导航数据仓库 108,这些模板定义在来自数据源102的数据之间的关系。关系模板 110定义在单独数据源102内的数据之间的关系,也定义在不同数据 源102中的数据之间的关系。关系和导航数据仓库108配置为与中 央数据模型104进行接口连接。关系和导航数据仓库108能够可选 地包括导航组件和结构仓库112,而中央数据模型104能够可选地包 括实体定义U4和映射/转译模板116。系统集成平台也包括耦合到关系和导航数据仓库108的集成引 擎118。集成引擎118配置为接收查询命令以及确定该查询命令适用 于多个数据源102中的哪个或者哪些数据源以及方框110中所含模 板中的哪个或者哪些模板,以便标识有关数据源和有关模板。集成 引擎还配置为响应于查询命令基于有关数据源和有关模板来计算所 需查询结果。集成引擎118能够例如实施为XML引擎,该引擎确定 查询适用于哪个或者哪些数据源102以及用于在各有关后端系统 102中对关系进行计算的方法和参数。例如能够通过解释仓库108 中的关系定义和计算模板110 (例如形式为脚本)来执行后一功能。 如果希望则能够将结果映射/转译到中央数据模型104。可选地,集成引擎118可以是应用服务器120的一部分。应用 服务器也能够包括接口模块122,该接口模块耦合到集成引擎118
而集成引擎118通过该接口模块来接收查询命令。举例而言,如图1 中所示,能够优选地使用适当的servlet/JSP ( Java服务器页面)容器 124以及适当的JAVA Beans和类126来构造接口模块。然而,能够 代之以利用通过浏览器接口来工作的任一类适当应用(例如C+十或 者Visual Basic )。集成引擎能够可选地计算被形成为具有多个源数 据项的导航树结构(下文将更全面地加以讨论)的结果,而接口模 块122能够配置为在适于以易于访问的方式从平台.IOO输出(例如 输出到外部浏览器106)的方式下格式化导航树结构的至少一部分。 一旦集成引擎110已经确定所需结果,这些结果就能够随同导航树 数据结构的至少所需部分(比如活跃部分) 一起被传递回到接口 114 中的servlet 124以〗更显示导^元树并更新^接口 ,和/或能够存留到例如 仓库112。接口模块122能够可选地将导航树结构的至少一部分格式 化到查询接口 400中,下文将参照图4加以讨论。关系和导航数据 仓库108能够配置为将导航树结构存储于方框112中。将继续参照图l对如下系统进行讨论,.该系统用于构造对多个 分布式异质数据源102进行管理的导航树结构。用于构造导航树结 构的系统的单元包括关系和导航数据仓库108以及耦合到关系和导 航数据仓库108的集成引擎118。集成引擎118配置为从关系和导航 数据仓库108和/或至少一个分布式数据源102获得预先存在的定义 数据以及配置为对用于该定义数据的多个存储器内节点进行实例 化。另外,集成引擎配置为至少对针对各节点的关系属性和实体属 性进行初始化,从而对多个关系属性进行初始化。至少一些关系属 性定义在不同数据源中的数据之间的关系。节点的关系属性和实体 属性能够例如对应于下文参照图5讨论的任何项502、 510、 512、 514、 516。最后,集成引擎118能够配置为从具有给定属性的给定节点形 成例如这里所述类型的已更新导航树结构。由此将认识到刚才描述 的方法是能够实施下文参照图8描述的方法的一种可能的系统。因 而,预先存在的定义数据可以是存储于数据源102之一中的结果、 存储于关系和导航数据仓库108中的结果或者存储于关系和导航数
据仓库108中的子图表(sub-graph)。集成引擎118然后能够配置 为实现下文参照图8描述的任何附加方法步骤。现在将参照图2,该图描绘了根据本发明对与多个分布式异质 数据源如数据源102相关联的查询命令进行处理的方法的流程图 200。该方法包括以下步骤如在方框202中所示获得查询命令;然 后按照方框204响应于查询命令来创建导航会话或者加载预先存在 的导航会话。例如能够通过接口 400从外部浏览器106获得命令(下 文加以讨论)。该方法还包括以下步骤如在方框206中所示将查 询命令以及新的导航会话或者已经加载的预先存在的导航会话传递 到集成引擎如集成引擎118。该方法还包括以下步骤如在方框208 所示标识和解释与查询命令相关联的有关定义和计算模板。该标识 和解释步骤通常借助集成引擎118来执行,而至少一些模板定义在不同数据源102中的数据之间的关系。最后在方框210描绘了计算 和获取所需查询结果的步骤。所需查询结果将通常至少部分地基于 至少一个定义和计算模板110,并且通常使用来自定义和计算模板的 关系信息从有关的多个分布式异质数据源102获取所需查询结果。 能够使用如上所述的技术将所需查询结果组装成导航树结构,并且 如上所述地格式化所需部分以供输出,而无需用于输出的部分则能 够存留到存储器。这些步骤在方框212、 214、 216中示出(也可以 参照下文针对图7而给出的活跃和非活跃区域的例子)。因而,能 够在格式化为导航树结构的情况下将所需查询结果写到持久型存储 装置(storage)或者能够格式化所需查询结果以供输出和后续显示,并 且如果希望则能够选择导航树结构的多个部分以用于存储或者显示 选项。现在将参照图3,该图描绘了通常将存储于关系定义和计算模 板110中的关系和导航数据仓库108的示例性内容。能够利用适当 的脚本和/或类;如果希望则能够使用用于定义新的关系的模板和用 于现有关系定义的XML脚本。在图3中针对关系"子组件-零件,,呈 现了示例性XML定义和计算脚本以及相关联的类。定义脚本300能 够标识源实体302 (也就是源项的实体类型)以及目的地列表304, 该列表包括与关系相关的有关后端数据源。在图3所示例子中,源实体属于能够通过它的子组件来导航的尸j/ r类型如汽车引擎,并且在该例子中指定了至少两个后端源(对应于例如图1的两个分布式 数据源102)。也就是说,至少两个后端源包含应当在源实体的子组 件(例如用于汽车引擎的风机叶片)中包括的信息。在方法标记306 中,示例性脚本300也指定了描述如何计算所需关系的特定于计算 的(computation specific)脚本308、 310。特定于计算的脚本能够包 括各种项,包括JDBC查询、Web服务调用、已编译的代理代码、 专有应用程序接口 (API)等。根据待定义的关系的复杂性,实际的 类想要多长就能够有多长。当计算机制涉及到已编译的类文件312 时,规范脚本能够包括在正确的调用次序下各函数的参数和输出, 其中输入参数与源实体的属性或者先前的输出值匹配。尽管已经在图3中示出了具体例子,但是将认识到一般而言平 台100的关系和导航数据仓库108能够包括定义多个关系的多个关 系定义;各定义又能够标识源实体302、有关的多个数据源的关联目 的地列表304以及对适当定义308、310的至少一个计算定义引用306 等。计算定义如308、 310能够响应于被计算定义引用306引用而定 义如何计算相应的多个关系。现在参照图4,接口模块122能够可选地将导航树结构的至少 一部分格式化到查询接口 400中。接口 400能够包括代表第一部分 402的数据,该第 一 部分用于指定来自导航树结构的 一 个所需源数据 项,接口 400也能够包括代表第二部分404的数据,该第二部分用 于指定有关的一个关系模板。如果希望则查询接口 400能够包括代 表第三部分406的数据,该第三部分指定了导航到导航树结构中的 所需深度。部分402能够显示在给定会话中迄今为止的用户导航。 部分408能够显示当前查询的结果。在本发明的优选实施例中,能够以最少的选择次数或者输入次 数如通过鼠标点击来进行查询。例如,用户能够点击用来进行查询
的源数据项410和所需关系404。图4所示例子描绘了用于示例性 "Acme X12"汽车的子组件零件分解。如上所述,如果希望则查询接 口能够包括代表部分406的数据,该部分用于指定导4元到导^^树结 构中的深度。"深度"选项使得用户可以指定要遍历多少级(整数), 而"所有,,选项遍历所有级。通常,通过将查询递归i也应用于在以深 度优先的方式设置的结果中的所有节点或者结果,两个选项都能够 扩展导航。例如,点击"John Smith"、"经理"和"所有"将获取从John Smith开始直至首席4丸行官的整个管理链。点击"Acme X12"、"子组 件-零件"和指定深度3的"深度,,将获取直至深度3的所有汽车子组件 的树层级结构。由此在图4所示示例性实施例中,能够简单地通过 在所示接口中进行点击来触发用于通过数据进行导航以及存留数据(使用部分406中的保存选项)以及用于指定更多查询选项的^喿作。 能够优选地通过捆绑到JavaBeans和类的Java servlet和Java力良务器 页面(JSP页面)来实施接口 400 (见图1中的项124和126)。如 上所述,能够利用其它适当的应用如C十+和Visual Basic。接口 400 能够与集成引擎118相结合地管理用于会话的关系和导航结构,并 且能够驻留于应用服务器120上,或者它的全部或者部分能够被下 载到运行浏览器106的用户机器(上文已经参照图1讨论了单元106、 118、 120)。现在参见图5,描绘了本发明的导航树结构500的多个方面。 如上所述,导航树结构500能够具有多个源数据项;在任一级,源 数据项通常能够包括例如通过点击来指定的第一项。在图4所示部 分402中描绘了源数据项,而在图5中示出了相应的显式属性502。 导航树结构500能够包括导航树部分504和节点数据阵列506。导航 树部分504基本上是列表的层级结构;如图5中所示,它代表图4 中所示的顶级。导航树结构500和部分504被设计为帮助构造图4 的接口 ,而列表的层级结构允许将导航信息简单地构建和格式化到 用户所看到的接口中;例如形式为Web接口。图4中所看到的表示 是导航树结构的深度优先遍历的表示图。"深度优先遍历"是图形理 论领域技术人员已知的术语;尽可能远地向下进行到叶节点,然后移到下一个兄弟节点(sibling)。它与优先经过所有兄弟节点的"广 度优先,,遍历相反。导航树部分504能够用于呈现目的,而树中的节 点508能够配置为保持用于呈现的数据。各节点408能够包括前述 显示属性502以在接口中标识导航树结构中的各数据项。关系部分 510能够存储在数据项用作查询中的源实体的情况下用来进行查询 的关系。下一级部分512能够维持在向下导航的紧接着的下一级中 的数据项列表。最后,节点号514能够用作用于例如在动态网页中 处理请求的索引。如上所述,导航树结构500也能够包括节点数据阵列506。与 给定节点相关联的适当属性516然后能够用作例如对于在关系定义 和计算模板110中指定的方法而言的参数。用整数对源数据项进行 索引之所以有帮助是因为它消除了对遍历整个导航树结构以获取数 据项的非显示属性的需要,并且它也避免了必须将每个数据项的所 有属性插入到接口中使得任何用户请求可访问所有适当属性值以传 递给查询句柄。注意到如果希望则数据项能够链接到能够例如在属 性516所示的二进制链接列表中指定的大型二进制文件,比如用于 汽车和飞机零件的计算机辅助设计(CAD)文件。鉴于对图5的讨 论,将认识到导航树结构能够包括多个节点508,这些节点配置为实 现向用户呈现导航树结构500的深度优先遍历,以及将认识到该结 构还能够包括节点数据阵列506,其中针对多个节点508中的各节点 存储通常至少包括实体类型和至少一个属性的有关数据。同样如上 所述,导航树结构500的导航树部分504中的各节点508能够包括 表示为显示属性502、关系510、节点号514和下一级512的属性, 而这些属性能够用作对于关系模板110而言的参数。注意到实体能 够被考虑为如下对象,希望向用户呈现该对象用以进行接口连接以 便使得可以在系统中进行导航。现在将参照图6,该图描绘了广义导航树604。为进行图6中 的描绘而扩展了图5的导航树504,并且相似的单元通过将图5中的 参考标号增加IOO来表示。单元602、 608、 610、 612、 614类似于 图5中的单元502、 508、 510、 512、 514并且这里不再加以讨i仑。 为了补充关系定义和计算模板110在指定多维关系(其中实体通过 数个关系链接到其它实体)时的灵活性以及系统就 一 般应用而言的 表达能力,已经将图5中的导航树部分504拓展为图6中的广义导 航树数据结构604。举例而言,图6图示了如何能够通过"协调器" 和"子组件-零件"关系将"外部"实体关联到其它实体。由此广义导航 树数据结构由通用节点602构建而成,这些节点保持对用户针对给 定实体(在这一情况下为"外部"实体)而导航的所有有关关系的跟 踪。现在将参照图7,该示了多维导航树结构704和广义的图 表722。同样,为了达到在图7所示的项与图5和图6所示的项之间 的共性,图7中的参考标号已经相对于图6而言增加了 100并且相 对于图5而言增加了 200。图7也描绘了具有非活跃区域726的用户 逐层钻取(drill-down)导航路径724。假设使得用户可以针对各实 体沿着一个严格的关系进行导航。在这样的情况下,导航树能够例 如正好类似于无阴影线结构727 (例如对应于"子组件,,关系)、单阴 影线结构728 (例如对应于"管理"关系)或者双阴影线结构729 (例 如对应于一些其它关系)。然而,由于本发明允许每一实体定义和 计算多个关系,所以应当允许沿着多个关系来遍历节点,这就产生 了多维导航树结构704。 704中的包含无阴影线圆圈和单阴影线圆圈 的顶部虛线框能够例如代表适用于"外部"实体的两个关系(例如子 组件、管理)。尽管该结构在外观上多少有些复杂,但是能够使用 广义导航树结构704和它的通用节点(用圆圈表示但没有单独编号) 将多维导航树结构表示为容易扩展且组织得很简洁的平面(或者二 维)通用图表722。然后,以这一形式,能够保持在对于高效导航和 遍历而言易于缩放的数据树结构中对n维关系图表的跟踪。现在, 特别是就将关系描述为通用图表而言,关系定义/计算脚本和底层存 储器内数据结构实现了高度的灵活性。
注意到视查看方案而定,导航结构的数个维度在背景中潜在地 展现为"非活跃,,,即当前时刻不为用户所见。由此,全部维度能够 适应性地存留到存储(例如磁盘或者其它类型的存储器,通常是非 易失性形式的存储器)并且就用户对导航树结构的查看而言按照导 航树结构所要求的那样被送回到存储器。如果用户已经逐层钻取到导航树结构中以粗线730表示的某一路径,从而使导^t树结构的其 余部分未扩展,则关系图表中如区域726所示的相当一部分将为非 活跃。在给定本发明的图表表示的情况下,能够高效地对这些"非活 跃"区域进行定位,并且这些区域能够留存到存储器(同样通常为磁 盘或者其它类型的非易失性存储器,但是能够使用任何适当形式的 存储器)的粒度很自然地从组成区域726的子图表或者子树的大小 和位置开始拓展。鉴于对图7的以上描述,将认识到本发明的平台能够在希望的 情况下具有包括活跃区域和非活跃区域的导航树结构;非活跃区域 如上所述地在图7中表示为项726,而项724中的其余节点构成活跃 区域。另外,能够将导航树结构的非活跃区域726留存到关系和导 航数据仓库108,而.能够在适于以容易访问的方式从平台100输出的 方式下格式化导航树结构的活跃区域。例如,接口模块122能够进 行格式化以便利用外部浏览器106向用户进行显示。现在将参照图8,该图描绘了用于根据本发明构造用于对多个 分布式异质数据源(比如数据源102)进行管理的导航树结构(可以 是上文讨论的类型)的方法的流程图。方法800包括获得预先存在 的定义数据的步骤802。预先存在的定义数据能够例如是如在方框 804所示存储于后端如数据源102之一中的结果、如在方框806所示 来自持久型存储装置如中央数据模型104或者关系和导航数据仓库 108的结果或者如在方框808所示来自持久型存储装置的子图表。如 在方框810所示,该方法还包括以下步骤对用于预先存在的定义 数据的多个存储器内节点进行实例化(能够可选地以反复的方式对 存储器内节点进行实例化);而如在方框812所示,对针对各节点的关系属性和/或实体属性进行初始化。关系属性能够定义在同 一数 据源中的数据之间的关系,并且不同于先前系统,也能够定义在不同数据源中的数据之间的关系。方法800还能够包括以下步骤按 照方框814从具有给定属性的前述节点形成已更新的导航树结构。 在预先存在的定义数据为子图表的情况下,如在方框824所示能够 针对各级节点重复实例化步骤、初始化步骤和形成步骤。注意到子 图表如任何图表一样能够被视为具有任意数目的节点级的层级结 构。如在方框816、 818、 820所示,方法800能够可选地包括以下 附加步骤确定与第一存储器相关联的存储器约束;对已更新的导 航树结构与存储器约束进行比较;然后,如果已更新的导航树结构 超出存储器约束,则执行附加步骤。在这样的情况下将执行的附加 步骤包括确定导航树结构中非活跃的第 一 部分以及导航树结构中 活跃的第二部分;至少将导航树结构的第 一部分存储到第二存储器; 以及在第一存储器中保留导航树结构的第二部分(方框822)。上文 已经参照图7讨论了活跃部分和非活跃部分的例子。举例而言但不 具限制性,第一存储器通常能够包括RAM,而第二存储器通常能够 包括实施于关系和导航数据仓库108并且特别是导航组件和结构仓 库112中的磁盘或者其它持久型存储装置。存储器约束能够例如与 用户的数目或者导航树数据结构的大小以及可用存储器资源相关 联。系统和产品细节正如本领域中已知的,这里7>开的方法和装置可以:故分布为一 种产品,该产品本身包括其上实施有计算机可读代码装置的计算机 可读介质。计算机可读程序代码装置可与计算机系统相结合地操作 以实现用来执行这里讨论方法或者产生这里讨论的装置的所有或者 一些步骤。计算机可读介质可以是可记录介质(例如软盘、硬盘驱 动器、压缩光盘或者存储卡)或者可以是传输介质(例如包括光纤
的网络、万维网、电缆或者使用时分多址、码分多址的无线信道或 者其它射频信道)。可以使用能够存储适合于与计算机系统一起使 用的信息的任何已知的或者开发的介质。计算机可读代码装置是用 于使得计算机可以读取指令和数据(比如磁介质上的》兹变化或者光 盘表面上的高度变化)的任何机制。这里描述的计算机系统和服务器各包含存储器,该存储器会将 相关联的处理器配置为实施这里公开的方法、步骤和功能。存储器 可以是分布式或者本地的,而处理器可以是分布式或者单一的。存 储器能够实施为电、磁或者光存储器或者这些或其它类型的存储器 设备的任何组合。另外,应当足够广义地理解术语"存储器,,以涵盖 能够从相关联的处理器所访问的可访问空间中的地址读取或者写入 到该地址的任何信息。根据这一定义,网络上的信息仍然在存储器 中,这是因为相关联的处理器能够从网络获取该信息。将理解到这里示出和描述的实施例以及变型仅仅描述了本发 明的原理而且本领域技术人员可以实施各种修改而不脱离本发明的 范围和精神。
权利要求
1. 一种系统集成装置,用于响应于查询命令来管理多个分布式异质数据源和中央数据模 型,该中央数据模型配置为包含至少一个实体和/或属性,所述至少 一个实体和/或属性是从所述数据源映射和/或转译的至少 一个实体 和/或属性;以及确定与所述命令相对应的所需查询结果,各所述数据源具有能 够传送到所述装置中的数据,所述装置包括关系和导航数据仓库,配置为包含对在来自所述数据源的所述 数据之间的关系进行定义的关系模板,所述关系模板定义在单独数述关系和导航数据仓库配置为与所述中央数据模型进行接口连接; 以及集成引擎,耦合到所述关系和导航数据仓库,所述集成引擎配 置为接收所述查询命令;确定所述查询命令适用于所述多个数据源中的哪个或者哪 些数据源以及所述模板中的哪个或者哪些模板以便标识有关数 据源和有关模板;以及响应于所述查询命令基于所述有关数据源和所述有关模板 来计算所述所需查询结果。
2. 根据权利要求1所述的装置,还包括应用服务器,所迷应用 服务器又包括所述集成引擎;以及接口模块,耦合到所述集成引擎,并且所述集成引擎通过该接 口模块来接收所述查询命令。
3. 根据权利要求2所述的装置,其中所述集成引擎计算被形成为具有多个源数据项的导航树结构的 所述结果;以及所述接口模块配置为在适于以易于访问的方式从所述装置输出的方式下格式化所述导航树结构的至少 一 部分。
4. 根据权利要求3所述的装置,其中所述接口模块将所述导航 树结构的所述至少一部分格式化到查询接口中,所述查询接口包括代表第 一 部分的数据,该第 一 部分用于指定来自所述导航树结 构的所述源数据项中的所需源数据项;以及代表第二部分的数据,该第二部分用于指定所述关系模板中的 有关关系模板。
5. 根据权利要求4所述的装置,其中所述查询接口还包括代表 第三部分的数据,该第三部分用于指定导航到所述导航树结构中的 所需深度。
6. 根据权利要求3所述的装置,其中所述关系和导航数据仓库 还配置为存储所述导航树结构。
7. 根据权利要求3所述的装置,其中所述导航树结构又包括多个节点,所述多个节点配置为实现向 所述用户呈现对所述导航树结构的深度优先遍历;以及针对所述多个节点中的各节点,所述导航树结构还包括具有有 关数据的节点数据阵列,该节点数据阵列至少包括实体类型和至少 一个属性。
8. 根据权利要求7所述的装置,其中 所述导航树结构中的各所述节点至少包括所述属性中表示为显示属性的属性, 关系,节点号,以及 下一纟及;以及所述导航树结构中的所述属性用作对于所述关系模板而言的参数。
9. 根据权利要求8所述的装置,其中 所述导航树结构包括活跃区域和非活跃区域;以及 所述导航树结构的所述非活跃区域留存到所述关系和导航数据 仓库,而所述导航树结构的活跃区域包括在适于以易于访问的方式 从所述装置输出的方式下格式化的所述导航树结构的所述一部分。
10. 根据权利要求l所述的装置,其中所述关系和导航数据仓库还包括定义多个关系的多个关系定义,各所述关系定义标识了源实体、 所述数据源中有关数据源的关联目的地列表和至少 一 个计算定义引 用;以及多个计算定义,定义如何响应于所述关系定义中相应关系定义 的所述至少一个计算定义引用来计算所述关系中的相应关系。
11. 一种构造用于管理多个分布式异质数据源的导航树结构的 方法,所述方法包括以下步骤获得预先存在的定义数据;对用于所述预先存在的定义数据的多个存储器内节点进行实例化;至少对针对各所述节点的关系属性和实体属性进行初始化,由 此对多个关系属性进行初始化,所述关系属性中的至少 一些关系属 性定义在所述数据源中不同数据源内的数据之间的关系;以及从具有所述属性的所述节点形成巳更新的导航树结构。
12. 根据权利要求11所述的方法,其中所述预先存在的定义数据是所述数据源之 一 中存储的结果或者 关系和导航数据仓库中存储的结果;以及 反复地对所述存储器内节点进行实例化。
13. 根据权利要求12所述的方法,还包括以下步骤 确定与第一存储器相关联的存储器约束;对所述已更新的导航树结构与所述存储器约束进行比较;以及 如果所述已更新的导航树结构超出所述存储器约束,则确定所述导航树结构中非活跃的第 一 部分和所述导航树结构中活跃的第二部分;至少将所述导航树结构的所述第 一 部分存储到第二存储 器;以及在所述第 一 存储器中保留所述导航树结构的所述第二部分。
14. 根据权利要求11所述的方法,其中所述预先存在的定义数据是存储于关系和导航数据仓库中并且 具有多个节点级的子图表;以及反复地对所述存储器内节点进行实例化; 所述方法还包括以下步骤针对所述多个节点级中的各级重复所述实例化步骤、初始化步 骤和形成步骤。
15. 根据权利要求14所述的方法,还包括以下附加步骤 确定与第一存储器相关联的存储器约束;如果所述已更新的导航树结构超出所述存储器约束,则确定所述导航树结构中非活跃的第 一部分和所述导航树结构中活跃的第二部分;至少将所述导航树结构的所述第 一 部分存储到第二存储器;以及在所述第一存储器中保留所述导航树结构的所述第二部分。
16. —种构造用于管理多个分布式异质数据源的导航树结构的 产品,包括机器可读介质,该机器可读介质包含在执行时实施以下 步骤的一个或者多个程序获得预先存在的定义数据;对用于所述预先存在的定义数据的多个存储器内节点进行实例化;至少对针对各所述节点的关系属性和实体属性进行初始化,由 此对多个关系属性进行初始化,所述关系属性中的至少 一 些关系属 性定义在所述数据源中不同数据源内的数据之间的关系;以及 从具有所述属性的所述节点形成已更新的导航树结构。
17. 根据权利要求16所述的产品,其中 所述预先存在的定义数据是所述数据源之一中存储的结果或者关系和导航数据仓库中存储的结果;以及 反复地对所述存储器内节点进行实例化。
18. 根据权利要求17所述的产品,还包括以下附加步骤 确定与第一存储器相关联的存储器约束;对所述已更新的导航树结构与所述存储器约束进行比较;以及 如果所述已更新的导航树结构超出所述存储器约束,则确定所述导航树结构中非活跃的第 一 部分和所述导航树结 构中活跃的第二部分;至少将所述导航树结构的所述第 一部分存储到第二存储 器;以及在所述第 一 存储器中保留所述导航树结构的所述第二部分。
19. 根据权利要求16所述的产品,其中所述预先存在的定义数据是存储于关系和导航数据仓库中并且 具有多个节点级的子图表;以及反复地对所述存储器内节点进行实例化; 还包4舌以下附加步骤针对所述多个节点级中的各级重复所述实例化步骤、初始化步 骤和形成步骤。
20. 根据权利要求19所述的产品,还包括以下附加步骤 确定与第一存储器相关联的存储器约束;对所述已更新的导航树结构与所述存储器约束进行比较;以及 如果所述已更新的导航树结构超出所述存储器约束,则确定所述导航树结构中非活跃的第 一 部分和所述导航树结 构中活跃的第二部分; 至少将所述导航树结构的所述第 一部分存储到第二存储器; 以及在所述第一存储器中保留所述导航树结构的所述第二部分。
21. —种处理与多个分布式异质数据源相关联的查询命令的方 法,所述方法包括以下步骤获得所述查询命令;响应于所述查询命令,创建导航会话或者加载预先存在的导航 会话;在的导航会S4递到集成引擎;' ;'经由所述集成引擎来标识和解释与所述查询命令相关联的有关 定义和计算模板,所述模板中的至少 一些模板定义在所述数据源中 不同数据源内的数据之间的关系;以及至少部分地基于所述定义和计算模板中的至少一个定义和计算 模板而从所述分布式异质数据源中的有关分布式异质数据源计算和 获取所需查询结果。
22. 才艮据权利要求21所述的方法,还包括以下附加步骤输出 被格式化为导航树结构的所述所需查询结果的至少 一部分。
23. 根据权利要求21所述的方法,还包括以下附加步骤将所 述所需查询结果写入到持久型存储装置,所述所需结果被格式化为 导航树结构。
24. —种用于处理与多个分布式异质数据源相关联的用户导航 请求的产品,包括机器可读介质,该机器可读介质包含在执行时实 施以下步骤的一个或者多个程序获得查询命令;响应于所迷查询命令,创建导航会话或者加栽预先存在的导航 会话;将所述查^在的导航会话传递到集成引擎; 经由所述集成引擎来标识和解释与所述查询命令相关联的有关 定义和计算模板,所述模板中的至少 一 些模板定义在所述数据源中不同数椐源内的数据之间的关系;以及至少部分地基于所述定义和计算模板中的至少一个定义和计算 模板而从所述分布式异质数据源中的有关分布式异质数据源计算和 获取所需查询结果。
25. 根据权利要求24所述的产品,还包括以下附加步骤输出 被格式化为导航树结构的所述所需查询结果的至少 一部分。
26. 根据权利要求24所述的产品,还包括以下附加步骤将所 述所需查询结果写入到持久型存储装置,所述所需结果被格式化为 导航树结构。
27. —种用于构造导航树结构的系统,该导航树结构用于管理 多个分布式异质数据源,所述系统包括关系和导航数据仓库;以及集成引擎,配置为耦合到所述关系和导航数据仓库,所述集成 引擎配置为从以下至少 一项获得预先存在的定义数据 所述关系和导航数据仓库,以及 所述分布式数据源中的至少 一个分布式数椐源; 对用于所述定义数据的多个存储器内节点进行实例化; 至少对针对各所述节点的关系属性和实体属性进行初始 化,由此对多个关系属性进行初始化,所述关系属性中的至少 一些关系属性定义在所述数据源中不同数据源内的数据之间的 关系;以及从具有所述属性的所述节点形成已更新的导航树结构。
28. 根据权利要求27所述的系统,其中所述预先存在的定义数据是所述数据源之 一 中存储的结果或者 所述关系和导航数据仓库中存储的结果;以及所述集成引擎反复地对所述存储器内节点进行实例化。
29. 根据权利要求28所述的系统,其中所述集成引擎还配置为 确定与第一存储器相关联的存储器约束;如果所述已更新的导航树结构超出所述存储器约束,贝'j:确定所述导航树结构中非活跃的第 一部分和所述导航树结构中活跃的第二部分;至少将所述导航树结构的所述第 一 部分存储到第二存储器;以及在所述第一存储器中保留所述导航树结构的所述第二部分。
30. 根据权利要求27所述的系统,其中所述预先存在的结果是存储于所述关系和导航数据仓库中的子图表,所述子图表具有多个节点级;以及所述集成引擎反复地对所述存储器内节点进行实例化;以及 所述集成引擎配置为针对所述多个节点级中的各级重复所述实例4匕、初始化和形成。
31. 根据权利要求30所述的系统,其中所述集成引擎还配置为 确定与第一存储器相关联的存储器约束;如果所述已更新的导航树结构超出所述存储器约束,则确定所述导航树结构中非活跃的第 一部分和所述导航树结构中活跃的第二部分;至少将所述导航树结构的所述第 一 部分存储到第二存储器;以及在所述第 一 存储器中保留所述导航树结构的所述第二部分。
全文摘要
一种关系和导航数据仓库能够与中央数据模型进行接口连接并且包含对在来自多个分布式异质数据源的数据之间的关系进行定义的模板。集成引擎耦合到关系和导航数据仓库,并且能够接收查询命令以及确定查询适用于哪一或者哪些异质数据源和哪一或者哪些模板,然后响应于命令基于相关数据源和模板来计算所需查询结果。分布式异质数据源通过如下系统和方法来管理,该系统和方法涉及到获得预先存在的定义数据,对用于数据的存储器内节点进行实例化,对针对各节点的关系属性和实体属性进行初始化,然后从中形成已更新的导航树结构。
文档编号G09G5/00GK101147187SQ200580049262
公开日2008年3月19日 申请日期2005年11月10日 优先权日2005年4月19日
发明者E.Y-S.尚, H·T·莫里斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1