CN117999549A - 生成相关数据类型之间的捷径路径 - Google Patents
生成相关数据类型之间的捷径路径 Download PDFInfo
- Publication number
- CN117999549A CN117999549A CN202280061654.8A CN202280061654A CN117999549A CN 117999549 A CN117999549 A CN 117999549A CN 202280061654 A CN202280061654 A CN 202280061654A CN 117999549 A CN117999549 A CN 117999549A
- Authority
- CN
- China
- Prior art keywords
- data
- data type
- edges
- model
- directed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013499 data model Methods 0.000 claims abstract description 175
- 230000009471 action Effects 0.000 claims abstract description 40
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 53
- 230000002085 persistent effect Effects 0.000 claims description 35
- 238000003860 storage Methods 0.000 claims description 14
- 239000002131 composite material Substances 0.000 claims description 4
- 230000007704 transition Effects 0.000 claims description 4
- 238000012800 visualization Methods 0.000 description 50
- 230000008569 process Effects 0.000 description 36
- 238000004891 communication Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 19
- 238000013523 data management Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 230000008520 organization Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 230000004807 localization Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 235000008694 Humulus lupulus Nutrition 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000010897 surface acoustic wave method Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009529 body temperature measurement Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2423—Interactive query statement specification based on a database schema
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/26—Visual data mining; Browsing structured data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施方案涉及管理数据。可以提供包括数据类型、数据类型关系、捷径的数据模型。响应于用于确定数据模型中针对捷径的有向路径的查询,可以执行进一步的动作,包括:基于数据模型、目标数据类型和源数据类型,确定候选节点和遍历边;基于候选节点和遍历边而生成树;移除树的不是目标数据类型的叶节点;移除树的对应于重复遍历边的重复分支;基于剩余的候选节点和遍历边,确定数据模型中将源数据类型连接至目标数据类型的有向路径;以及基于有向路径,生成对查询的响应。
Description
技术领域
本发明整体涉及数据可视化,并且更具体地但非排他地涉及管理与可视化中所包括的对象相关联的数据。
背景技术
组织正在生成和收集数量不断增长的数据。数据可以与组织的不同部分相关联,诸如消费者活动、制造活动、客户服务、服务器日志等。由于各种原因,对于这种组织而言,可能不方便高效地利用其巨大数据集合。在一些情况下,数据量可能使得难以高效地利用所收集的数据来改进商业实践。因此,在一些情况下,组织可以采用各种应用或工具来基于其数据中的一些或全部生成可视化。采用可视化来表示数据可以使得组织能够改进其对商业运作、销售、客户信息、雇员信息、关键业绩指标等的理解。在一些情况下,复杂的可视化可以并入或以其他方式依赖于来自组织内的各种源(包括不同数据库)的数据。在一些情况下,许多不同的可视化可以取决于这些变化的或不同的数据源。通常,使得用户能够标识不同依赖对象之间可以用于与那些对象交互的关系可能是重要的。在一些情况下,由于可以表示的许多变化的或不同的数据类型,对一些不同数据类型之间的关系进行手动确定可能易于出错。因此,本发明正是针对这些及其他考虑而作出的。
附图说明
参考以下附图描述本创新的非限制性和非详尽的实施方案。在附图中,在各个附图中,相似的附图标记表示相似的部件,除非另有说明。为了更好地理解所描述的创新,将参考将联系附图进行阅读的以下具体实施方式,其中:
图1示出了其中可以实现各种实施方案的系统环境;
图2示出了客户端计算机的示意性实施方案;
图3示出了网络计算机的示意性实施方案;
图4示出了根据各种实施方案中的一个或多个实施方案的用于生成相关数据类型之间的捷径路径的系统的逻辑架构;
图5示出了根据各种实施方案中的一个或多个实施方案的用于生成相关数据类型之间的捷径路径的数据类型500的逻辑示意图;
图6示出了根据各种实施方案中的一个或多个实施方案的用于生成相关数据类型之间的捷径路径的模式模型600的逻辑示意图;
图7示出了根据各种实施方案中的一个或多个实施方案的可以是数据模型的一部分的闭包的逻辑示意图;
图8示出了根据各种实施方案中的一个或多个实施方案的用于表示数据模型的数据流边界的数据结构的表示;
图9示出了根据各种实施方案中的一个或多个实施方案的用于表示闭包提示的数据结构的表示,这些闭包提示用于生成相关数据类型之间的捷径路径;
图10示出了根据各种实施方案中的一个或多个实施方案的用于生成相关数据类型之间的捷径路径的过程的概述流程图;
图11示出了根据各种实施方案中的一个或多个实施方案的用于生成相关数据类型之间的捷径路径的过程的流程图;
图12示出了根据各种实施方案中的一个或多个实施方案的用于生成闭包的过程的流程图,这些闭包用于生成相关数据类型之间的捷径路径;
图13示出了根据各种实施方案中的一个或多个实施方案的用于生成相关数据类型之间的捷径路径的过程的流程图;
图14示出了根据各种实施方案中的一个或多个实施方案的用于生成闭包的过程的流程图,这些闭包用于生成相关数据类型之间的捷径路径;
图15示出了根据各种实施方案中的一个或多个实施方案的用于用持久捷径替代运行时生成的捷径路径的过程的流程图;
图16示出了根据各种实施方案中的一个或多个实施方案的用于基于相关数据类型之间的捷径路径来处理查询的过程的流程图。
具体实施方式
现在将参考附图在下文中更全面地描述各种实施方案,附图形成了本发明的一部分并且通过图示示出了可以实践本发明的具体示例性实施方案。然而,实施方案可以以许多不同的形式实施,并且不应被解释为限于本文阐述的实施方案;相反,提供这些实施方案是为了使公开文本透彻且完整,并且这些实施方案将向本领域技术人员充分传达实施方案的范围。除了其他方面外,各种实施方案可以是方法、系统、介质或设备。因此,各种实施方案可以采取完全硬件实施方案、完全软件实施方案、或组合软件和硬件方面的实施方案的形式。因此,以下详细描述不应被理解为限制性的。
在整个说明书和权利要求中,以下术语采取与本文明确关联的含义,除非上下文另有明确规定。如本文所用的短语“在一个实施方案中”不一定指代相同的实施方案,尽管其可以指代相同的实施方案。此外,如本文所用的短语“在另一实施方案中”不一定指代不同的实施方案,尽管其可以指代不同的实施方案。因此,如下所述,在不脱离本发明的范围或精神的情况下,可以容易地组合各种实施方案。
另外,如本文所用,术语“或”是包含性的“或”运算符,并且等同于术语“和/或”,除非上下文另有明确规定。术语“基于”并非排他性的,并且允许基于未描述的附加因素,除非上下文另有明确规定。另外,在整个说明书中,“一种”、“一个”和“该”的含义包括复数引用。“中”的含义包括“中”和“上”。
对于示例性实施方案,以下术语也根据对应的含义在本文中使用,除非上下文另有明确规定。
如本文所用,术语“引擎”指代以硬件或软件指令实施的逻辑,其可以用编程语言编写,诸如C、C++、Objective-C、COBOL、JavaTM、Kotlin、PHP、Perl、JavaScript、Ruby、VBScript,或者用Microsoft.NETTM语言编写,诸如C#等。引擎可以被编译成可执行程序或用解释性编程语言编写。软件引擎可以能够从其他引擎或从其自身调用。本文描述的引擎指代可以与其他引擎或应用合并或者可以被划分成子引擎的一个或多个逻辑模块。引擎可以存储在非暂态计算机可读介质或计算机存储设备中,并且可以存储在一个或多个通用计算机上并由其执行,从而创建被配置为提供引擎的专用计算机。此外,在一些实施方案中,引擎的一个或多个部分可以是执行一个或多个动作以支持引擎或作为引擎的一部分的硬件设备、ASIC、FPGA等。
如本文所用,术语“数据模型”指代表示与由组织收集或维护的数据相关联的一个或多个实体的一个或多个数据结构。数据模型通常被布置成对与组织相关联的各种操作或活动进行建模。在一些情况下,数据模型被布置成提供或促进各种数据集中的动作,诸如高效存储、查询、索引、搜索、更新等。通常,数据模型可以被布置成提供与数据操纵或数据管理相关的特征,而不是提供对数据的易于理解的呈现或可视化。
如本文所用,术语“数据对象”指代包括数据模型的一个或多个实体或数据结构。在一些情况下,数据对象可以被认为是数据模型的部分。数据对象可以表示项目的类或种类,诸如数据库、数据源、表、工作簿、可视化、工作流等。
如本文所用,术语“数据对象类”或“对象类”指代表示数据对象的类、种类或类型的一个或多个实体或数据结构。
如本文所用,术语“数据类型”指代表示数据对象的类或种类的数据对象。例如,“表”和“列”可以各自为数据类型,而“表A”和“表A”的“列B”可以分别被认为是数据类型“表”和数据类型“列”的实例。
如本文所用,术语“模式模型”指代表示各种数据类型以及那些数据类型之间的关系的数据结构。模式模型可以被认为是定义数据类型、数据类型关系等的数据模型。
如本文所用,术语“闭包”指代模式模型的节点和边中可以由数据流边界分开的一部分。在一些情况下,闭包可以非正式地被认为是模式模型的分区。模式模型可以声明多于一个闭包。
如本文所用,术语“数据流边界”、“流边界”或“流”指代模式模型中可以被定义为将模式模型的各部分分成闭包的边。模式模型可以声明多于一个流边界。
如本文所用,术语“捷径”指代模式模型中所声明的从源数据类型节点延伸到目标数据类型节点的有向路径。捷径定义可以包括至少源数据类型、目标数据类型和路径方向。因此,完全实现的捷径是模式模型中从源数据类型到目标数据类型的包括模式模型中的边和节点的路径。
如本文所用,术语“显示模型”指代表示数据模型的一个或多个表示的一个或多个数据结构,数据模型的一个或多个表示可以适合于在一个或多个硬件显示器上显示的可视化中使用。显示模型可以限定可供非创作用户使用的样式或用户界面特征。
如本文所用,术语“显示对象”指代包括显示模型的一个或多个数据结构。在一些情况下,显示对象可以被认为是显示模型的部分。显示对象可以表示可以在可视化中显示的项目的个体实例或项目的整个类或种类。在一些实施方案中,显示对象可以被认为是视图或称为视图,因为其提供数据模型的某个部分的视图。
如本文所用,术语“面板”指代图形用户界面(GUI)内的区域,其在GUI内具有限定的几何形状(例如,x、y、z顺序)。面板可以被布置成向用户显示信息或者托管一个或多个交互式控件。可以使用配置信息(包括动态规则)来限定与面板相关联的几何形状或样式。此外,在一些情况下,可以使得用户能够在一个或多个面板上执行动作,诸如移动、显示、隐藏、调整大小、重新排序等。
如本文所用,术语“配置信息”指代可以包括基于规则的策略、模式匹配、脚本(例如,计算机可读指令)等的信息,该信息可以从各种源提供,各种源包括配置文件、数据库、用户输入、内置默认值等或其组合。
以下简要描述本发明的实施方案,以便提供对本发明的一些方面的基本理解。简要描述并不旨在作为广泛概述。其并不旨在标识关键或重要元素,也并不旨在描绘或以其他方式缩小范围。其目的仅在于以简化形式呈现一些概念,作为稍后呈现的更详细描述的序言。
简而言之,各种实施方案涉及使用网络计算机管理数据。在各种实施方案中的一个或多个实施方案中,可以提供包括一个或多个数据类型、一个或多个数据类型关系、一个或多个捷径等的数据模型,使得每个数据类型可以由数据模型中的节点表示,并且每个数据类型关系可以由数据模型中的一对相反指向的有向边表示。
在各种实施方案中的一个或多个实施方案中,响应于用于确定数据模型中针对捷径的有向路径的查询,可以执行进一步的动作,包括:基于捷径来确定当前源数据类型和当前目标数据类型;基于数据模型、当前目标数据类型和当前源数据类型来确定一个或多个候选节点和一个或多个遍历边,使得每个遍历边可以对应于数据模型、一个或多个候选节点和一个或多个遍历边中包括的两个数据类型之间的数据类型关系;基于一个或多个候选节点和一个或多个遍历边而生成树;移除树的一个或多个叶节点,使得一个或多个剩余叶节点可以对应于当前目标数据类型;移除树的一个或多个分支,使得一个或多个移除分支可以对应于树中的一个或多个重复遍历边;基于树中的一个或多个候选节点的剩余部分和树中的一个或多个遍历边的剩余部分来确定数据模型中将当前源数据类型连接至当前目标数据类型的有向路径;以及基于采用有向路径从当前源数据类型到当前目标数据类型遍历数据模型来生成对查询的响应。
在各种实施方案中的一个或多个实施方案中,确定一个或多个候选节点和一个或多个遍历边可以包括:提供可以与数据模型相关联的一个或多个闭包源数据类型、一个或多个闭包目标数据类型和一个或多个有向闭包边;基于一个或多个闭包源数据类型、一个或多个闭包目标数据类型和一个或多个有向闭包边而生成一个或多个闭包;基于一个或多个闭包的与目标数据类型和源数据类型相关联的部分来确定一个或多个候选节点;基于一个或多个闭包的该部分来确定一个或多个遍历边;等等。
在各种实施方案中的一个或多个实施方案中,确定一个或多个遍历边可以包括:提供与数据模型相关联的一个或多个流源数据类型、一个或多个流目标数据类型和一个或多个有向流边;基于一个或多个流源数据类型、一个或多个流目标数据类型和一个或多个有向流边而生成一个或多个流边界,使得每个流边界指示数据模型中的一个或多个数据类型之间的过渡边界;将一个或多个有向流边添加至一个或多个遍历边;等等。
在各种实施方案中的一个或多个实施方案中,可以采用数据存储库以提供与数据模型相关联的一个或多个持久捷径,使得每个持久捷径可以提供另一源数据类型与另一目标数据类型之间的另一有向路径;以及响应于确定有向路径的对应于一个或多个持久捷径的一个或多个部分,以对应的一个或多个持久捷径替代有向路径的一个或多个部分。
在各种实施方案中的一个或多个实施方案中,可以基于包括一个或多个其他数据类型或包括一个或多个其他数据类型关系来修改数据模型。在一些实施方案中,可以基于经修改的数据模型和一个或多个捷径来生成另一有向路径。并且,在一些实施方案中,可以提供另一有向路径作为有向路径的替代。
在各种实施方案中的一个或多个实施方案中,提供数据模型可以包括在不存在查询的情况下自动地生成针对每个捷径的一个或多个有向路径。
在各种实施方案中的一个或多个实施方案中,提供数据模型可以包括:提供可以由一个或多个其他数据类型组成的一个或多个复合数据类型;以及提供数据模型中可以表示相同数据类型的多于一个节点。
示出的操作环境
图1示出了可以在其中实践本发明的实施方案的环境的一个实施方案的部件。并非所有部件都是实践本发明所必需的,并且在不脱离本发明的精神或范围的情况下,可以对部件的布置和类型进行改变。如图所示,图1的系统100包括局域网(LAN)/广域网(WAN)—(网络)110、无线网络108、客户端计算机102至105、可视化服务器计算机116等。
下面结合图2更详细地描述客户端计算机102至105的至少一个实施方案。在一个实施方案中,客户端计算机102至105中的至少一些客户端计算机可以在一个或多个有线或无线网络(诸如网络108或110)上操作。通常,客户端计算机102至105可以包括能够通过网络进行通信以发送和接收信息,执行各种在线活动、离线动作等的几乎任何计算机。在一个实施方案中,客户端计算机102至105中的一个或多个客户端计算机可以被配置为在企业或其他实体内操作,以执行用于企业或其他实体的各种服务。例如,客户端计算机102至105可以被配置为作为web服务器、防火墙、客户端应用、媒体播放器、移动电话、游戏控制台、台式计算机等进行操作。然而,客户端计算机102至105不限于这些服务,并且在其他实施方案中,还可以例如用于终端用户计算。应当认识到,可以在诸如本文所述的系统内包括更多或更少的客户端计算机(如图1所示),并且因此实施方案不受所采用的客户端计算机的数量或类型的约束。
可以作为客户端计算机102操作的计算机可以包括通常使用有线或无线通信介质连接的计算机,诸如个人计算机、多处理器系统、基于微处理器的或可编程的电子设备、网络PC等。在一些实施方案中,客户端计算机102至105可以包括能够连接至另一计算机并接收信息的几乎任何便携式计算机,诸如膝上型计算机103、移动计算机104、平板电脑105等。然而,便携式计算机不限于此,并且还可以包括其他便携式计算机,诸如蜂窝电话、显示寻呼机、射频(RF)设备、红外(IR)设备、个人数字助理(PDA)、手持式计算机、可穿戴计算机、组合前述计算机中的一者或多者的集成设备等。因此,客户端计算机102至105通常在能力和特征方面范围很广。此外,客户端计算机102至105可以访问各种计算应用,包括浏览器或其他基于web的应用。
Web使能的客户端计算机可以包括被配置为通过web发送请求和接收响应的浏览器应用。浏览器应用可以被配置为接收和显示采用几乎任何基于web的语言的图形、文本、多媒体等。在一个实施方案中,浏览器应用被使得能够采用JavaScript、超文本标记语言(HTML)、可扩展标记语言(XML)、JavaScript对象表示法(JSON)、层叠样式表(CSS)等或其组合来显示和发送消息。在一个实施方案中,客户端计算机的用户可以采用浏览器应用来通过网络(在线)执行各种活动。然而,也可以使用另一应用来执行各种在线活动。
客户端计算机102至105还可以包括被配置为与另一计算机之间接收或发送内容的至少一个其他客户端应用。客户端应用可以包括发送或接收内容等的能力。客户端应用还可以提供标识其自身的信息,包括类型、能力、名称等。在一个实施方案中,客户端计算机102至105可以通过各种机制中的任何机制来唯一地标识其自身,各种机制包括互联网协议(IP)地址、电话号码、移动标识号(MIN)、电子序列号(ESN)、客户端证书或其他设备标识符。这种信息可以在一个或多个网络分组等中提供,在其他客户端计算机、可视化服务器计算机116或其他计算机之间发送。
客户端计算机102至105可以被进一步配置为包括使得终端用户能够登录到可以由另一计算机(诸如可视化服务器计算机116等)管理的终端用户账户的客户端应用。在一个非限制性示例中,这种终端用户账户可以被配置为使得终端用户能够管理一个或多个在线活动,在一个非限制性示例中,一个或多个在线活动包括项目管理、软件开发、系统管理、配置管理、搜索活动、社交网络活动、浏览各种网站、与其他用户通信等。此外,客户端计算机可以被布置成使得用户能够显示报告、交互式用户界面或由可视化服务器计算机116提供的结果。
无线网络108被配置为将客户端计算机103至105及其部件与网络110联接。无线网络108可以包括各种无线子网络(其还可以覆盖独立的自组织网络等)中的任何子网络,以为客户端计算机103至105提供面向基础设施的连接。这种子网络可以包括网状网络、无线LAN(WLAN)网络、蜂窝网络等。在一个实施方案中,系统可以包括多于一个无线网络。
无线网络108还可以包括通过无线电链路等连接的终端、网关、路由器等的自治系统。这些连接器可以被配置为自由地和随机地移动并且任意地组织其自身,使得无线网络108的拓扑可以快速地改变。
无线网络108还可以采用多种接入技术,包括用于蜂窝系统、WLAN、无线路由器(WR)网状网络等的第2代(2G)、第3代(3G)、第4代(4G)、第5代(5G)无线电接入。接入技术(诸如2G、3G、4G、5G)以及未来的接入网络可以实现对具有各种程度的移动性的移动计算机(诸如客户端计算机103至105)的广域覆盖。在一个非限制性示例中,无线网络108可以通过无线电网络接入来实现无线电连接,无线电网络接入诸如为全球移动通信系统(GSM)、通用分组无线电服务(GPRS)、增强型数据GSM环境(EDGE)、码分多址(CDMA)、时分多址(TDMA)、宽带码分多址(WCDMA)、高速下行链路分组接入(HSDPA)、长期演进(LTE)等。本质上,无线网络108可以包括信息可以在客户端计算机103至105与另一计算机、网络、基于云的网络、云实例等之间行进所通过的几乎任何无线通信机制。
网络110被配置为通过无线网络108等将网络计算机与其他计算机联接,其他计算机包括可视化服务器计算机116、客户端计算机102和客户端计算机103至105。网络110被使得能够采用任何形式的计算机可读介质,以用于将信息从一个电子设备传送到另一电子设备。此外,除了局域网(LAN)、广域网(WAN)、直接连接(诸如通过通用串行总线(USB)端口、以太网端口、其他形式的计算机可读介质或其任何组合)之外,网络110还可以包括互联网。在LAN(包括基于不同架构和协议的那些LAN)的互连集合上,路由器充当LAN之间的链路,从而使得消息能够从一个LAN发送到另一LAN。另外,LAN内的通信链路通常包括双绞线或同轴电缆,而网络之间的通信链路可以利用模拟电话线,包括T1、T2、T3和T4的全部或部分专用数字线,或包括例如E载波、综合服务数字网络(ISDN)、数字订户线(DSL)的其他载波机制,包括卫星链路的无线链路,或本领域技术人员公知的其他通信链路。此外,通信链路还可以采用各种数字信令技术中的任何数字信令技术,包括但不限于例如DS-0、DS-1、DS-2、DS-3、DS-4、OC-3、OC-12、OC-48等。此外,远程计算机和其他相关电子设备可以经由调制解调器和临时电话链路远程连接至LAN或WAN。在一个实施方案中,网络110可以被配置为传输互联网协议(IP)的信息。
另外,通信介质通常实施计算机可读指令、数据结构、程序模块或其他传输机制,并且包括任何信息非暂态递送介质或暂态递送介质。以举例的方式,通信介质包括有线介质诸如双绞线、同轴电缆、光纤、波导和其他有线介质,以及无线介质诸如声学、RF、红外和其他无线介质。
此外,下面结合图3更详细地描述可视化服务器计算机116的一个实施方案。尽管图1将可视化服务器计算机116示出为单个计算机,但是创新或实施方案不限于此。例如,可视化服务器计算机116等的一个或多个功能可以分布在一个或多个不同的网络计算机上。此外,在一个或多个实施方案中,可视化服务器计算机116可以使用多个网络计算机来实现。此外,在各种实施方案中的一个或多个实施方案中,可视化服务器计算机116等可以使用一个或多个云网络中的一个或多个云实例来实现。因此,这些创新和实施方案不应被解释为限于单个环境,并且还设想了其他配置和其他架构。
例示性客户端计算机
图2示出了可以包括比所示部件更多或更少的许多部件的客户端计算机200的一个实施方案。客户端计算机200可以表示例如图1中示出的移动计算机或客户端计算机的一个或多个实施方案。
客户端计算机200可以包括经由总线228与存储器204通信的处理器202。客户端计算机200还可以包括电源230、网络接口232、音频接口256、显示器250、小键盘252、照明器254、视频接口242、输入/输出接口238、触觉接口264、全球定位系统(GPS)接收器258、凌空手势接口260、温度接口262、相机240、投影仪246、指向设备接口266、处理器可读固定存储设备234、和处理器可读可移除存储设备236。客户端计算机200可以可选地与基站(未示出)通信,或者直接与另一计算机通信。并且,在一个实施方案中,尽管未示出,但是可以在客户端计算机200内采用陀螺仪来测量或维护客户端计算机200的取向。
电源230可以向客户端计算机200提供电力。可以使用可充电或不可充电电池来提供电力。电力也可以由外部电源提供,诸如对电池进行补充或充电的AC适配器或供电对接托架。
网络接口232包括用于将客户端计算机200联接到一个或多个网络的电路,并且被构造为与一个或多个通信协议和技术一起使用,一个或多个通信协议和技术包括但不限于实现用于移动通信(GSM)的OSI模型、CDMA、时分多址(TDMA)、UDP、TCP/IP、SMS、MMS、GPRS、WAP、UWB、WiMax、SIP/RTP、GPRS、EDGE、WCDMA、LTE、UMTS、OFDM、CDMA2000、EV-DO、HSDPA或各种其他无线通信协议中的任何协议的任何部分的协议和技术。网络接口232有时称为收发器、收发设备或网络接口卡(NIC)。
音频接口256可以被布置成产生和接收音频信号,诸如人类语音的声音。例如,音频接口256可以联接到扬声器和麦克风(未示出),以使得能够与其他人通信或生成针对某个动作的音频确认。音频接口256中的麦克风也可以用于对客户端计算机200的输入或控制,例如,使用语音识别、基于声音来检测触摸等。
显示器250可以是液晶显示器(LCD)、气体等离子体、电子墨水、发光二极管(LED)、有机LED(OLED)或可以与计算机一起使用的任何其他类型的光反射或光透射显示器。显示器250还可以包括被布置成从对象(诸如触笔或来自人手的手指)接收输入的触摸接口244,并且可以使用电阻、电容、表面声波(SAW)、红外、雷达或其他技术来感测触摸或手势。
投影仪246可以是能够在远程墙壁或任何其他反射对象(诸如远程屏幕)上投影图像的远程手持式投影仪或集成投影仪。
视频接口242可以被布置成捕获视频图像,诸如静态照片、视频片段、红外视频等。例如,视频接口242可以联接到数字摄像机、web相机等。视频接口242可以包括透镜、图像传感器和其他电子器件。图像传感器可以包括互补金属氧化物半导体(CMOS)集成电路、电荷联接器件(CCD)或用于感测光的任何其他集成电路。
小键盘252可以包括被布置成接收来自用户的输入的任何输入设备。例如,小键盘252可以包括按钮数字拨号盘或键盘。小键盘252还可以包括与选择和发送图像相关联的命令按钮。
照明器254可以提供状态指示或提供光。照明器254可以在特定时间段内或响应于事件消息而保持活跃。例如,当照明器254活跃时,其可以从背后照亮小键盘252上的按钮,并且在客户端计算机被供电时保持开启。此外,当执行特定动作时,诸如拨打另一客户端计算机时,照明器254可以按各种模式从背后照亮这些按钮。照明器254还可以使位于客户端计算机的透明或半透明外壳内的光源响应于动作而照明。
此外,客户端计算机200还可以包括硬件安全模块(HSM)268,HSM用于提供附加的防篡改保护措施,以用于生成、存储或使用安全性/密码信息,诸如密钥、数字证书、密码、双因素认证信息等。在一些实施方案中,硬件安全模块可以用于支持一个或多个标准公钥基础设施(PKI),并且可以用于生成、管理或存储密钥对等。在一些实施方案中,HSM 268可以是独立的计算机,在其他情况下,HSM 268可以被布置作为可以被添加至客户端计算机的硬件卡。
客户端计算机200还可以包括用于与外部外围设备或其他计算机(诸如其他客户端计算机和网络计算机)通信的输入/输出接口238。外围设备可以包括音频头戴式耳机、虚拟现实头戴式耳机、显示屏眼镜、远程扬声器系统、远程扬声器和麦克风系统等。输入/输出接口238可以利用一种或多种技术,诸如通用串行总线(USB)、红外、WiFi、WiMax、BluetoothTM等。
输入/输出接口238还可以包括一个或多个传感器,一个或多个传感器用于确定地理位置信息(例如,GPS)、监测电力状况(例如,电压传感器、电流传感器、频率传感器等)、监测天气(例如,恒温器、气压计、风速计、湿度检测器、降水量表等)等。传感器可以是收集或测量客户端计算机200外部的数据的一个或多个硬件传感器。
触觉接口264可以被布置成向客户端计算机的用户提供触觉反馈。例如,触觉接口264可以用于当另一计算机用户正在呼叫时以特定方式振动客户端计算机200。温度接口262可以用于向客户端计算机200的用户提供温度测量输入或温度改变输出。凌空手势接口260可以例如通过使用单个或立体摄像机、雷达、用户持有或穿戴的计算机内的陀螺传感器等来感测客户端计算机200的用户的物理手势。相机240可以用于跟踪客户端计算机200的用户的物理眼睛移动。
GPS收发器258可以确定客户端计算机200在地球表面上的物理坐标,其通常将位置输出为纬度值和经度值。GPS收发器258还可以采用其他地理定位机制来进一步确定客户端计算机200在地球表面上的物理位置,包括但不限于三角测量、辅助GPS(AGPS)、增强观测时间差(E-OTD)、小区标识符(CI)、服务区域标识符(SAI)、增强定时提前(ETA)、基站子系统(BSS)等。应当理解,在不同的条件下,GPS收发器258可以确定客户端计算机200的物理位置。然而,在一个或多个实施方案中,客户端计算机200可以通过其他部件提供可以用于确定客户端计算机的物理位置的其他信息,包括例如媒体访问控制(MAC)地址、IP地址等。
在各种实施方案中的至少一个实施方案中,应用诸如操作系统206、客户端显示引擎222、其他客户端应用224、web浏览器226等可以被布置成采用地理位置信息来选择一个或多个本地化特征,诸如时区、语言、货币、日历格式化等。本地化特征可以用于文档、可视化、显示对象、显示模型、动作对象、用户界面、报告以及内部过程或数据库中。在各种实施方案中的至少一个实施方案中,用于选择本地化信息的地理位置信息可以由GPS258提供。此外,在一些实施方案中,地理位置信息可以包括使用网络(诸如无线网络108或网络111)上的一个或多个地理位置协议提供的信息。
人机接口部件可以是与客户端计算机200在物理上分开的外围设备,从而允许到客户端计算机200的远程输入或输出。例如,如在此所述通过人机接口部件(诸如显示器250或键盘252)路由的信息可以替代地通过网络接口232路由到远程定位的适当的人机接口部件。可以位于远程的人机接口外围部件的示例包括但不限于音频设备、指向设备、小键盘、显示器、相机、投影仪等。这些外围部件可以通过微微网络通信,诸如BluetoothTM、ZigbeeTM等。具有这种外围人机接口部件的客户端计算机的一个非限制性示例是可穿戴计算机,其可以包括远程微微投影仪以及一个或多个相机,一个或多个相机与单独定位的客户端计算机远程通信以感测用户朝向由微微投影仪投影到反射表面(诸如墙壁或用户的手)上的图像的部分的手势。
客户端计算机可以包括被配置为接收和发送网页、基于web的消息、图形、文本、多媒体等的web浏览器应用226。客户端计算机的浏览器应用可以采用几乎任何编程语言,包括无线应用协议消息(WAP)等。在一个或多个实施方案中,浏览器应用被使得能够采用手持式设备标记语言(HDML)、无线标记语言(WML)、WMLScript、JavaScript、标准通用标记语言(SGML)、超文本标记语言(HTML)、可扩展标记语言(XML)、HTML5等。
存储器204可以包括RAM、ROM或其他类型的存储器。存储器204示出了用于存储信息诸如计算机可读指令、数据结构、程序模块或其他数据的计算机可读存储介质(设备)的示例。存储器204可以存储用于控制客户端计算机200的低级操作的BIOS208。存储器还可以存储用于控制客户端计算机200的操作的操作系统206。应当理解,部件可以包括通用操作系统诸如一个版本的或/>Microsoft/>或专用客户端计算机通信操作系统诸如AndroidTM或/>公司的iOS。操作系统可以包括Java虚拟机模块或与Java虚拟机模块交互,Java虚拟机模块使得能够经由Java应用程序控制硬件部件或操作系统操作。
存储器204还可以包括一个或多个数据存储210,一个或多个数据存储可以由客户端计算机200用于存储应用220或其他数据等。例如,数据存储210也可以用于存储描述客户端计算机200的各种能力的信息。然后,可以基于各种方法中的任何方法将信息提供给另一设备或计算机,包括在通信期间作为报头的一部分发送、在请求时发送等。数据存储210还可以用于存储社交网络信息,包括地址簿、好友列表、别名、用户配置文件信息等。数据存储210还可以包括程序代码、数据、算法等,以供处理器(诸如处理器202)用于实施和执行动作。在一个实施方案中,数据存储210中的至少一些也可以被存储在客户端计算机200的另一部件上,包括但不限于非暂态处理器可读可移除存储设备236、处理器可读固定存储设备234,或甚至存储在客户端计算机外部。
应用220可以包括计算机可执行指令,这些计算机可执行指令当由客户端计算机200执行时传输、接收或以其他方式处理指令和数据。应用220可以包括例如客户端显示引擎222、其他客户端应用224、web浏览器226等。客户端计算机可以被布置成与可视化服务器计算机交换通信,诸如查询、搜索、消息、通知消息、事件消息、警示、性能度量、日志数据、API调用等或其组合。
应用程序的其他示例包括日历、搜索程序、电子邮件客户端应用、IM应用、SMS应用、互联网协议语音(VOIP)应用、联系人管理器、任务管理器、代码转换器、数据库程序、字词处理程序、安全性应用、电子表格程序、游戏、搜索程序等。
另外,在一个或多个实施方案中(图中未示出),客户端计算机200可以包括嵌入式逻辑硬件设备而不是CPU,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程阵列逻辑(PAL)等或其组合。嵌入式逻辑硬件设备可以直接执行其嵌入式逻辑以执行动作。此外,在一个或多个实施方案中(图中未示出),客户端计算机200可以包括一个或多个硬件微控制器而不是CPU。在一个或多个实施方案中,一个或多个微控制器可以直接执行其自身的嵌入式逻辑以执行动作,并访问其自身的内部存储器和其自身的外部输入和输出接口(例如,硬件引脚或无线收发器)以执行动作,诸如片上系统(SOC)等。
例示性网络计算机
图3示出了可以包括在实现各种实施方案中的一个或多个实施方案的系统中的网络计算机300的一个实施方案。网络计算机300可以包括比图3所示部件更多或更少的许多部件。然而,所示部件足以公开用于实践这些创新的例示性实施方案。网络计算机300可以表示例如图1的一个或多个可视化服务器计算机116的一个实施方案。
网络计算机(诸如网络计算机300)可以包括可以经由总线328与存储器304通信的处理器302。在一些实施方案中,处理器302可以包括一个或多个硬件处理器,或者一个或多个处理器核。在一些情况下,一个或多个处理器中的一个或多个处理器可以是被设计成执行一个或多个专用动作(诸如本文描述的那些动作)的专用处理器。网络计算机300还包括电源330、网络接口332、音频接口356、显示器350、键盘352、输入/输出接口338、处理器可读固定存储设备334和处理器可读可移除存储设备336。电源330向网络计算机300提供电力。
网络接口332包括用于将网络计算机300联接到一个或多个网络的电路,并且被构造为与一个或多个通信协议和技术一起使用,一个或多个通信协议和技术包括但不限于实现开放系统互连模型(OSI模型)、全球移动通信系统(GSM)、码分多址(CDMA)、时分多址(TDMA)、用户数据报协议(UDP)、传输控制协议/互联网协议(TCP/IP)、短消息服务(SMS)、多媒体消息服务(MMS)、通用分组无线电服务(GPRS)、WAP、超宽带(UWB)、IEEE 802.16全球微波接入互操作(WiMax)、会话发起协议/实时传输协议(SIP/RTP)或各种其他有线和无线通信协议中的任何协议的任何部分的协议和技术。网络接口332有时称为收发器、收发设备或网络接口卡(NIC)。网络计算机300可以可选地与基站(未示出)通信,或者直接与另一计算机通信。
音频接口356被布置成产生和接收音频信号,诸如人类语音的声音。例如,音频接口356可以联接到扬声器和麦克风(未示出),以使得能够与其他人通信或生成针对某个动作的音频确认。音频接口356中的麦克风也可以用于对网络计算机300的输入或控制,例如,使用语音识别。
显示器350可以是液晶显示器(LCD)、气体等离子体、电子墨水、发光二极管(LED)、有机LED(OLED)或可以与计算机一起使用的任何其他类型的光反射或光透射显示器。在一些实施方案中,显示器350可以是能够在墙壁或其他对象上投影图像的手持式投影仪或微微投影仪。
网络计算机300还可以包括用于与图3中未示出的外部设备或计算机通信的输入/输出接口338。输入/输出接口338可以利用一个或多个有线或无线通信技术,诸如USBTM、FirewireTM、WiFi、WiMax、ThunderboltTM、红外、BluetoothTM、ZigbeeTM、串行端口、并行端口等。
此外,输入/输出接口338还可以包括一个或多个传感器,一个或多个传感器用于确定地理位置信息(例如,GPS)、监测电力状况(例如,电压传感器、电流传感器、频率传感器等)、监测天气(例如,恒温器、气压计、风速计、湿度检测器、降水量表等)等。传感器可以是收集或测量网络计算机300外部的数据的一个或多个硬件传感器。人机接口部件可以与网络计算机300在物理上分开,从而允许到网络计算机300的远程输入或输出。例如,如在此所述通过人机接口部件(诸如显示器350或键盘352)路由的信息可以替代地通过网络接口332路由到位于网络上其他地方的适当的人机接口部件。人机接口部件包括允许计算机从计算机的人类用户取得输入或向其发送输出的任何部件。因此,指向设备(诸如鼠标、触笔、轨迹球等)可以通过指向设备接口358通信以接收用户输入。
GPS收发器340可以确定网络计算机300在地球表面上的物理坐标,其通常将位置输出为纬度值和经度值。GPS收发器340还可以采用其他地理定位机制来进一步确定网络计算机300在地球表面上的物理位置,包括但不限于三角测量、辅助GPS(AGPS)、增强观测时间差(E-OTD)、小区标识符(CI)、服务区域标识符(SAI)、增强定时提前(ETA)、基站子系统(BSS)等。应当理解,在不同的条件下,GPS收发器340可以确定网络计算机300的物理位置。然而,在一个或多个实施方案中,网络计算机300可以通过其他部件提供可以用于确定客户端计算机的物理位置的其他信息,包括例如媒体访问控制(MAC)地址、IP地址等。
在各种实施方案中的至少一个实施方案中,应用诸如操作系统306、数据管理引擎322、显示引擎324、沿袭引擎326、web服务329等可以被布置成采用地理位置信息来选择一个或多个本地化特征,诸如时区、语言、货币格式化、日历格式化等。本地化特征可以用于文档、文件系统、用户界面、报告、显示对象、显示模型、可视化以及内部过程或数据库中。在各种实施方案中的至少一个实施方案中,用于选择本地化信息的地理位置信息可以由GPS340提供。此外,在一些实施方案中,地理位置信息可以包括使用网络(诸如无线网络108或网络111)上的一个或多个地理位置协议提供的信息。
存储器304可以包括随机存取存储器(RAM)、只读存储器(ROM)或其他类型的存储器。存储器304示出了用于存储信息诸如计算机可读指令、数据结构、程序模块或其他数据的计算机可读存储介质(设备)的示例。存储器304存储用于控制网络计算机300的低级操作的基本输入/输出系统(BIOS)308。存储器还存储用于控制网络计算机300的操作的操作系统306。应当理解,部件可以包括通用操作系统诸如一个版本的UNIX或或专用操作系统诸如Microsoft公司的/>操作系统,或者Apple公司的/>操作系统。操作系统可以包括一个或多个虚拟机模块或与一个或多个虚拟机模块交互,一个或多个虚拟机模块诸如为Java虚拟机模块,Java虚拟机模块使得能够经由Java应用程序控制硬件部件或操作系统操作。同样地,可以包括其他运行环境。
存储器304还可以包括一个或多个数据存储310,一个或多个数据存储可以由网络计算机300用于存储应用320或其他数据等。例如,数据存储310也可以用于存储描述网络计算机300的各种能力的信息。然后,可以基于各种方法中的任何方法将信息提供给另一设备或计算机,包括在通信期间作为报头的一部分发送、在请求时发送等。数据存储310还可以用于存储社交网络信息,包括地址簿、好友列表、别名、用户配置文件信息等。数据存储310还可以包括程序代码、数据、算法等,以供处理器(诸如处理器302)用于实施和执行动作,诸如下面描述的那些动作。在一个实施方案中,数据存储310中的至少一些也可以被存储在网络计算机300的另一部件上,包括但不限于处理器可读可移除存储设备336、处理器可读固定存储设备334、或网络计算机300内的任何其他计算机可读存储设备内的非暂态介质,或甚至存储在网络计算机300外部。数据存储310可以包括例如数据模型314、显示模型316、源数据318等。数据模型314可以存储表示一个或多个数据模型的一个或多个部分的文件、文档、版本、性质、元数据、数据结构等。显示模型316可以存储显示模型。源数据318可以表示用于存储数据库或贡献作为数据模型、显示模型等的基础的数据的其他数据源的存储器。
应用320可以包括计算机可执行指令,这些计算机可执行指令当由网络计算机300执行时传输、接收或以其他方式处理消息(例如,SMS、多媒体消息服务(MMS)、即时消息(IM)、电子邮件或其他消息)、音频、视频,并且使得能够与另一移动计算机的另一用户通信。应用程序的其他示例包括日历、搜索程序、电子邮件客户端应用、IM应用、SMS应用、互联网协议语音(VOIP)应用、联系人管理器、任务管理器、代码转换器、数据库程序、字词处理程序、安全性应用、电子表格程序、游戏、搜索程序等。应用320可以包括可以被布置成执行用于下面描述的实施方案的动作的数据管理引擎322、显示引擎324、沿袭引擎326、web服务329等。在各种实施方案中的一个或多个实施方案中,应用中的一个或多个应用可以被实现为另一应用的模块或部件。此外,在各种实施方案中的一个或多个实施方案中,应用可以被实现为操作系统扩展、模块、插件等。
此外,在各种实施方案中的一个或多个实施方案中,数据管理引擎322、显示引擎324、沿袭引擎326、web服务329等可以在基于云的计算环境中操作。在各种实施方案中的一个或多个实施方案中,包括管理平台的这些应用及其他应用可以在可以处于基于云的计算环境中管理的虚拟机或虚拟服务器内执行。在各种实施方案中的一个或多个实施方案中,在此上下文中,应用可以根据由云计算环境自动管理的性能和缩放考虑而从基于云的环境内的一个物理网络计算机流向另一物理网络计算机。同样地,在各种实施方案中的一个或多个实施方案中,可以自动地调配和停用专用于数据管理引擎322、显示引擎324、web服务329等的虚拟机或虚拟服务器。
此外,在各种实施方案中的一个或多个实施方案中,数据管理引擎322、显示引擎324、沿袭引擎326、web服务329等可以位于在基于云的计算环境中运行的虚拟服务器中,而不是被绑定到一个或多个特定的物理网络计算机。
此外,网络计算机300还可以包括硬件安全模块(HSM)360,HSM用于提供附加的防篡改保护措施,以用于生成、存储或使用安全性/密码信息,诸如密钥、数字证书、密码、双因素认证信息等。在一些实施方案中,硬件安全模块可以用于支持一个或多个标准公钥基础设施(PKI),并且可以用于生成、管理或存储密钥对等。在一些实施方案中,HSM 360可以是独立的网络计算机,在其他情况下,HSM360可以被布置成可以安装在网络计算机中的硬件卡。
另外,在一个或多个实施方案中(图中未示出),网络计算机300可以包括嵌入式逻辑硬件设备而不是CPU,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程阵列逻辑(PAL)等或其组合。嵌入式逻辑硬件设备可以直接执行其嵌入式逻辑以执行动作。此外,在一个或多个实施方案中(图中未示出),网络计算机可以包括一个或多个硬件微控制器而不是CPU。在一个或多个实施方案中,一个或多个微控制器可以直接执行其自身的嵌入式逻辑以执行动作,并访问其自身的内部存储器和其自身的外部输入和输出接口(例如,硬件引脚或无线收发器)以执行动作,诸如片上系统(SOC)等。
例示性逻辑系统架构
图4示出了根据各种实施方案中的一个或多个实施方案的用于生成相关数据类型之间的捷径路径的系统400的逻辑架构。在各种实施方案中的一个或多个实施方案中,系统400可以包括各种部件,诸如数据模型402,其可以包括范围从一个或多个数据库对象到一个或多个可视化的各种数据对象。在示例中,数据模型402包括数据库对象404、数据库对象406、表对象408、表对象410、表对象412、工作流对象414、数据源对象416、数据源对象418、工作簿对象420、表单对象422和表单对象424。
在各种实施方案中的一个或多个实施方案中,可视化服务器计算机(诸如可视化服务器计算机116)可以被布置成采用数据模型(诸如数据模型402)来表示可以用于生成可视化的信息。此外,在一些实施方案中,数据模型可以用于管理可视化系统中的其他行为者,包括用户、作者等。
在示例中,数据模型402可以具有一个或多个根级数据对象,诸如数据对象404和数据对象406。数据对象404和数据对象406表示可以是驱动数据模型的信息的源的数据库。例如,数据对象404可以表示与组织的一部分相关联的SQL RDBMS,同时数据对象406可以表示到另一信息提供者或其他数据库的API网关。
在各种实施方案中的一个或多个实施方案中,数据对象408、数据对象410、数据对象412等表示可以由一个或多个数据库提供的表或表状对象。在数据模型的该级别下,数据对象可以被认为包裹从数据库提供的实体或以其他方式接近地对其进行建模。因此,在一些实施方案中,表或数据库对象的性质或属性可以接近地反映其原生表示,包括属性名称、数据类型、表名称、列名称等。例如,数据管理员可以被使得能够将数据库或表“导入”到数据模型中,使得所导入的对象保留以原生形式可用的特征或属性中的一些或全部特征或属性。在一些情况下,在一些实施方案中,一个或多个所导入数据对象可以包括也可以导入的元数据信息。
在各种实施方案中的一个或多个实施方案中,在所导入表对象可以用于可视化之前,数据管理员可能必须执行或实施一个或多个动作以准备供可视化或可视化作者消耗的信息。在示例中,提取-转换-加载(ETL)对象414表示在使表对象410和表对象412中的信息可用于可视化之前对信息进行一些处理的ETL过程。
在各种实施方案中的一个或多个实施方案中,数据源对象(诸如数据源416或数据源418)表示可视化作者可用于并入可视化或其他显示模型中的数据对象。在一些实施方案中,数据源对象可以向数据管理员提供控制以管理或以其他方式整形来自数据库(例如,数据库404或数据库406)的可以供可视化或可视化作者使用的信息。例如,数据库404中的一个或多个表可以包括组织希望从可视化中排除的敏感信息。因此,在一些实施方案中,通过选择从表对象到数据源对象的映射属性,数据管理员可以控制从底层数据库展示数据的方式。在一些实施方案中,数据管理员可以被使得能够从表对象中选择特定的列或属性以包括在数据源中。此外,在一些实施方案中,表对象中的属性名称(例如,列名称)可以被映射到数据源中的不同名称。例如,表对象中名称为“客户_标识符”的表列可以被映射到数据源中名称为“账号”的属性。此外,在一些实施方案中,可以执行其他映射变换,诸如数据类型转换、聚合、过滤、组合等。在一些实施方案中,广泛或复杂的变换可以被封装在ETL对象等中,而更简单或更常见的变换可以在不使用单独的ETL对象的情况下启用。
在各种实施方案中的一个或多个实施方案中,边448表示从表对象到数据源的映射。在示例中,边448可以表示将表对象408的一个或多个属性(例如,列)映射到数据源416的一个或多个数据结构。因此,在一些实施方案中,边448提供一个或多个映射规则或指令或与之相关联,一个或多个映射规则或指令限定来自表对象408的哪些信息在数据源416中可用,以及可以向可视化作者呈现来自表对象408的信息的方式。
在各种实施方案中的一个或多个实施方案中,工作簿对象420表示可以与一个或多个用户级数据对象(诸如表单对象422或表单对象424)相关联的数据对象。在一些实施方案中,可视化作者可以被使得能够基于由一个或多个数据源(诸如数据源416或数据源418)提供的信息来设计工作簿(诸如工作簿对象420)。在一些实施方案中,可视化作者可以设计包括一个或多个表单(例如,表单对象422或表单对象424)的工作簿。在一些实施方案中,表单对象可以包括一个或多个可视化等。
在各种实施方案中的一个或多个实施方案中,表单对象422或表单对象424可以表示可以提供给可视化引擎等的信息中的一些或全部信息,可视化引擎提供可以由用户采用的一个或多个交互式可视化应用或报告。在示例中,表单对象422或表单对象424可以被认为包括或引用可以用于渲染可以由一个或多个数据库提供的信息的一个或多个可视化的数据、元数据、数据结构等中的一者或多者。在一些实施方案中,表单可以被布置成包括一个或多个显示模型、样式信息、文本描述、叙述信息、样式化图形、到其他表单的链接等。
图5示出了根据各种实施方案中的一个或多个实施方案的用于生成相关数据类型之间的捷径路径的数据类型500的逻辑示意图。在一些实施方案中,数据模型可以包括各种数据类型的各种数据对象。在一些实施方案中,一个或多个数据类型可以由一个或多个其他数据类型组成。在示例中,对于一些实施方案,数据类型可以包括数据库数据类型502、表数据类型504、列数据类型506、数据源数据类型508、用户数据类型510、字段数据类型512、列字段数据类型514、计算字段数据类型516、工作簿数据类型518、表单数据类型520等。在各种实施方案中的一个或多个实施方案中,每个数据类型可以包括一个或多个属性,一个或多个属性是一个或多个其他数据类型或对其他数据类型的一个或多个引用。
在一些情况下,一个或多个属性可以包括所谓的内置数据类型,诸如字符串、整数、浮点数等。为了简洁和清楚起见,本说明书中省略了内置数据类型。
在各种实施方案中的一个或多个实施方案中,各种数据类型可以基于其定义与一组已知的行为或数据约束相关联。因此,在一些实施方案中,沿袭引擎可以被布置成编程地询问数据类型以确定其组成以及相关联的规则或行为。
此外,在一些实施方案中,采用定义的数据类型来组成数据模型使得可视化平台中的其他应用或服务能够正确地彼此交互。如下所述,模式模型还可以声明一些数据类型可以由其他数据类型组成的方式。
图6示出了根据各种实施方案中的一个或多个实施方案的用于生成相关数据类型之间的捷径路径的模式模型600的逻辑示意图。在各种实施方案中的一个或多个实施方案中,模式模型(诸如模式模型600)可以声明可视化平台中的各种数据类型可以彼此相关的方式。因此,在一些实施方案中,模式模型可以声明数据类型可以由其他数据类型组成的方式。
在各种实施方案中的一个或多个实施方案中,相同的数据类型可以在相同的模式模型中出现多于一次,因为一个或多个数据类型可以用于组成一个或多个其他数据类型,如本文所述。此外,在各种实施方案中的一个或多个实施方案中,模式模型可以使用有向边来表示数据类型之间的关系。然而,在一些情况下,对于一些实施方案,模式模型可以使用两个有向边来表示数据类型之间的关系,其中第一有向边可以被认为表示一个方向上的关系,并且第二有向边可以被认为表示相反方向上的关系。因此,在各种实施方案中的一个或多个实施方案中,确定数据模型或模式模型中的数据类型节点之间的捷径可能需要消除由每对有向边表示的两个关系的歧义的信息。
在示例中,对于一些实施方案,表数据类型604可以由列数据类型606所表示的一个或多个列和对数据库数据类型602的引用组成。
在示例中,对于一些实施方案,列数据类型606可以由列字段数据类型608所表示的一个或多个列字段数据类型组成。
在示例中,对于一些实施方案,数据源数据类型612可以由字段数据类型614所表示的一个或多个字段和对用户数据类型610的引用组成。
在示例中,对于一些实施方案,计算字段数据类型626可以由对字段数据类型628的一个或多个引用组成。
在示例中,对于一些实施方案,工作簿数据类型620可以由一个或多个表单数据类型622和对用户数据类型616的引用组成。
在示例中,对于一些实施方案,表单数据类型622可以由对字段数据类型624所示出的一个或多个字段的引用组成。
在各种实施方案中的一个或多个实施方案中,模式模型可以声明一个或多个数据类型之间的一个或多个捷径。在一些实施方案中,捷径可以被认为是数据类型之间可以实现更高效的查询的关系。在示例中,捷径630定义从数据源数据库类型到数据库数据类型的捷径。同样地,在示例中:捷径632定义从工作簿数据类型到数据库数据类型的捷径;捷径634定义从表数据类型到数据源数据类型的捷径;捷径636定义从表数据类型到工作簿数据类型的捷径;捷径638定义从列字段数据类型到列数据类型的捷径;等等。需注意,在示例中,捷径638显式地从列数据类型606与列字段数据类型608之间的一对互逆关系中消除捷径路径的方向的歧义。
在各种实施方案中的一个或多个实施方案中,捷径可以被认为是在模式模型中定义的数据类型的一部分,其类似于其他数据类型(属性或引用)。因此,在一些实施方案中,定义模式模型的数据设计者可以包括对到达其他数据类型的捷径的定义。在一些实施方案中,捷径可以被布置成包括两个数据类型之间的特定有向路径的数据结构,特定有向路径消除这两个数据类型之间的直接或反向关系之间的歧义。相比之下,在一些常规系统中,可能需要数据设计者手动地声明来自模式模型中的两个数据类型的完全有资格的路径定义,以消除模式模型中包括的直接/反向关系之间的歧义。
在不存在本文公开的创新的情况下,在一些常规系统中,可以利用显式(完全有资格的)路径来定义捷径。然而,在具有许多数据类型的复杂生产模式模型中,显式路径可能很长且复杂。此外,随着模式模型随时间推移而演化,显式捷径路径也可能需要被更新。然而,在一些情况下,修改模式模型的一部分的组织/人员可能不知道在模式模型的其他部分中可能被破坏的显式捷径路径。
相比之下,在一些实施方案中,沿袭引擎可以被布置成使得数据设计者能够通过提供比完全有资格的捷径路径更容易正确地表达的提示/定义来定义捷径。在一些实施方案中,提示可以包括命名捷径的每个端点,而不是要求用户/数据建模者提供两个数据类型之间的完全有资格的路径。因此,在一些实施方案中,沿袭引擎可以被布置成自动地生成针对捷径的通过模式模型的明确有向路径。
需注意,在示例中,具有相同标签的数据类型可以被认为是相同的数据类型。例如,字段数据类型614、字段数据类型628、字段数据类型624等可以被认为表示相同的数据类型。
本领域普通技术人员应当理解,生产模式模型可以包括比在此所示更多或更少的数据类型。
图7示出了根据各种实施方案中的一个或多个实施方案的可以是数据模型的一部分的闭包700的逻辑示意图。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成确定数据模型的可以被认为是闭包的一个或多个部分,如下所述。在一些实施方案中,沿袭引擎可以被布置成执行一个或多个动作以确定可以一起分类为闭包的一个或多个数据类型。在一些实施方案中,闭包可以是表示模式模型的节点和边的可以由数据流边界分开的一部分的一个或多个数据结构。在一些情况下,闭包可以非正式地被认为是模式模型的分区。如上所述,模式模型可以声明多于一个闭包。
在示例中,闭包700可以包括数据库数据类型702、表数据类型704和列数据类型706。
在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成采用模式模型、数据流边界、闭包提示等来确定模式模型或数据模型的闭包。
图8示出了根据各种实施方案中的一个或多个实施方案的用于表示模式模型的数据流边界的数据结构800的表示。
在各种实施方案中的一个或多个实施方案中,可以由用户(例如,数据建模者、数据设计者等)基于对应的数据模型或模式模型声明数据流边界。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成采用数据流边界来确定模式模型中的闭包之间的边界。
如下面更详细地描述的,在一些实施方案中,沿袭引擎可以被布置成遍历模式模型以标识可以被分组成闭包的数据类型。因此,在一些实施方案中,沿袭引擎可以被布置成采用数据流边界来帮助确定用于停止遍历以确定闭包的条件。
在各种实施方案中的一个或多个实施方案中,数据流边界可以是具有各种字段诸如源数据类型、目标数据类型、边身份、流方向等的数据结构。
在示例中,对于一些实施方案,一个或多个数据流边界可以被分组成列表或阵列,诸如数据流边界阵列802。因此,在示例中,对于一些实施方案,数据流边界804表示用于声明数据流边界的数据结构。
此外,在示例中,数据流边界804可以包括一个或多个字段,诸如源数据类型806、边身份808、目标数据类型810、流方向812等。在示例中,数据流边界804声明列数据类型与列字段数据类型之间沿着被标识为“由字段引用(referencedByFields)”的边的数据流边界。在一些实施方案中,沿袭引擎可以被布置成采用数据流边界804来确定列字段不应被包括在与列相同的闭包中。类似地,数据流边界阵列802中的其他数据流边界可以定义数据模型中可以有助于确定闭包的其他数据流边界。
在各种实施方案中的一个或多个实施方案中,为数据流边界声明的边可以标示模式模型中在闭包之间的分隔或边界。在示例中,边身份808声明表示边界的边。
本领域普通技术人员应当理解,在不脱离这些创新的范围的情况下,数据结构(诸如数据结构800)可以使用各种实现诸如JSON(如图所示)、XML、结构、对象、数据库表等来表示。
此外,在一些实施方案中,数据流边界可以被定义为数据模型的其他部分中的数据类型定义的一部分,而不是如在此所示的单独的数据结构。
图9示出了根据各种实施方案中的一个或多个实施方案的用于表示闭包提示的数据结构900的表示,这些闭包提示用于生成相关数据类型之间的捷径路径。
在各种实施方案中的一个或多个实施方案中,可以由用户(例如,数据建模者、数据设计者等)基于对应的数据模型声明闭包提示。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成采用闭包提示来确定数据模型的闭包。
如下面更详细地描述的,在一些实施方案中,沿袭引擎可以被布置成遍历数据模型以标识可以被分组成闭包的数据类型。因此,在一些实施方案中,沿袭引擎可以被布置成采用闭包提示来帮助确定用于将数据类型包括到闭包中的条件。
在各种实施方案中的一个或多个实施方案中,闭包提示可以是具有各种字段诸如源数据类型、目标数据类型、边身份、流方向等的数据结构。
在示例中,对于一些实施方案,一个或多个闭包提示可以被分组成列表或阵列,诸如闭包提示阵列902。因此,在示例中,对于一些实施方案,闭包提示904表示用于声明闭包提示的数据结构。
此外,在示例中,闭包提示904可以包括一个或多个字段,诸如源数据类型906、边身份908、目标数据类型910、流方向912等。在示例中,闭包提示904声明列数据类型与表数据类型之间沿着被标识为“表”的边的闭包提示。在一些实施方案中,沿袭引擎可以被布置成采用闭包提示904来确定可以用于生成相关数据类型之间的捷径路径的闭包。
本领域普通技术人员应当理解,在不脱离这些创新的范围的情况下,数据结构(诸如数据结构900)可以使用各种表示诸如JSON(如图所示)、XML、结构、对象、数据库表等来实现。
此外,在一些实施方案中,闭包提示可以被定义为数据模型的其他部分中的数据类型定义的一部分,而不是如在此所示的单独的数据结构。
一般化操作
图10至图16表示根据各种实施方案中的一个或多个实施方案的用于生成相关数据类型之间的捷径路径的一般化操作。在各种实施方案中的一个或多个实施方案中,结合图10至图16描述的过程1000、1100、1200、1300、1400、1500和1600可以由单个网络计算机(诸如图3的网络计算机300)上的一个或多个处理器来实现或执行。在其他实施方案中,这些过程或其部分可以由多个网络计算机(诸如图3的网络计算机300)实现或在其上执行。在其他实施方案中,这些过程或其部分可以由一个或多个虚拟化计算机(诸如在基于云的环境中的那些虚拟化计算机)实现或在其上执行。然而,实施方案不限于此,并且可以利用网络计算机、客户端计算机等的各种组合。此外,在各种实施方案中的一个或多个实施方案中,结合图10至图15描述的过程可以根据各种实施方案或架构(诸如结合图4至图9描述的那些实施方案或架构)中的至少一者用于生成相关数据类型之间的捷径路径。此外,在各种实施方案中的一个或多个实施方案中,由过程1000、1100、1200、1300、1400、1500和1600执行的动作中的一些或全部动作可以部分地由在一个或多个网络计算机的一个或多个处理器上运行的数据管理引擎322、显示引擎324或沿袭引擎326执行。
图10示出了根据各种实施方案中的一个或多个实施方案的用于生成相关数据类型之间的捷径路径的过程1000的概述流程图。在开始框之后,在开始框1002处,在各种实施方案中的一个或多个实施方案中,可以向沿袭引擎提供数据模型。如上所述,数据管理引擎、显示引擎等可以被布置成生成可以由可视化作者、数据建模者或数据管理员用于创建可以与数据模型中的各种数据模型层或数据类型相关联的数据对象的数据模型。
在框1004处,在各种实施方案中的一个或多个实施方案中,可以向沿袭引擎提供一个或多个捷径定义。如上所述,在一些实施方案中,可以由用户、数据建模者、数据管理员等声明捷径定义。通常,如果新数据类型被引入数据模型中,则捷径定义可以被包括在数据模型中。在一些实施方案中,可以提供捷径定义以声明数据模型中的一对或多对数据类型之间的有向路径。因此,在一些实施方案中,捷径定义可以包括至少源数据类型、目标数据类型和流方向(例如,上或下)。在一些实施方案中,可能需要流方向,因为在一些情况下,数据模型可以是无向图或部分无向图,使得在不存在应用本文公开的创新的情况下,对数据模型的朴素遍历可能提供不明确或不正确的结果。在一些实施方案中,数据模型可以声明数据类型中的一个或多个数据类型之间的一对关系—每个方向一个关系。在一些实施方案中,因为这些成对的有向边可以表示不同的“方向”,所以通过观察确定捷径路径可能提供不正确或不明确的路径结果,因为从观察中可能不清楚捷径路径应当采取哪个方向通过数据模型。
同样地,在一些实施方案中,如果可以修改数据模型中的现有数据类型的关系,则可以提供捷径定义。
在各种实施方案中的一个或多个实施方案中,捷径定义可以被布置成使得用户能够提供最少量的信息。然而,在一些实施方案中,捷径定义的重要特征是使得用户能够明确地定义源数据类型与目标数据类型之间的关系,而无需关心数据模型中的中间数据类型。例如,为数据类型A至数据类型F声明的捷径可以产生A->B->C->D->E->F的有向路径,有向路径可以被提供以在数据模型中的数据类型之间进行遍历。因此,在示例中,即使当捷径有向路径由于数据模型的改变而变成A->B->E->C->D->F时,捷径定义也可以保持有效。相比之下,在不存在本文公开的创新的情况下,对数据模型的改变可能破坏或无效被显式地声明的捷径有向路径。
在框1006处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成确定数据模型中的一个或多个闭包。在各种实施方案中的一个或多个实施方案中,在准备从捷径定义生成捷径路径时,沿袭引擎可以被布置成评估数据模型以确定/标识可以处于数据模型中的一个或多个闭包。在一些实施方案中,闭包可以被定义为数据模型的满足各种特定条件的部分/分区。在一些实施方案中,闭包可以被认为是适配在所声明的数据流边界内的相关数据类型的分组。
在一些实施方案中,确定可以被分组成闭包的数据类型取决于可以为数据模型声明的数据流边界。如上所述,可以通过声明流源数据类型、流目标数据类型和流方向来定义数据流边界。因此,在一些实施方案中,“边界”在所定义的遍历方向(流方向)上在源数据类型与目标数据类型之间。在一些实施方案中,选择在哪里定义数据流边界取决于可以正在创作或使用数据模型的用户、数据建模者等的本地要求。因此,在各种实施方案中的一个或多个实施方案中,可以由用户、数据建模者、数据管理员等声明闭包提示。(参见上述图8)。
因此,在一些实施方案中,沿袭引擎可以被布置成执行一个或多个动作以将数据类型分组成闭包。需注意,在一些实施方案中,给定数据类型可以被包括在多于一个闭包中。
在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成在初始化时(例如,在启动沿袭引擎或可视化平台等时)生成闭包,或者在一些情况下,闭包生成可以被推迟,直到可以提供与捷径相关联的第一查询。因此,在一些实施方案中,沿袭引擎可以被布置成采用经由配置信息提供的规则、指令等来确定是否应当生成闭包。
在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成在沿袭引擎正在运行、超时等时将闭包数据结构保持在存储器或高速缓存中达指定的持续时间,诸如当前会话的长度。在一些实施方案中,沿袭引擎可以被布置成采用经由配置信息提供的规则、指令等来确定一个或多个闭包数据结构的寿命。
在框1008处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成基于一个或多个闭包和一个或多个捷径定义来生成一个或多个捷径有向路径。
在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成为每个所声明的捷径生成完全有资格的捷径有向路径。捷径有向路径使得沿袭引擎等能够根据需要正确地遍历数据模型中的数据类型关系。
在框1010处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成采用所生成的捷径有向路径来提供对与数据模型相关联的一个或多个查询的响应。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成使得其他应用、服务、客户端等能够提供与数据模型中的关系相关联的查询。因此,在一些实施方案中,可以采用为捷径生成的捷径有向路径来提供正确的响应。在一些实施方案中,在不存在捷径有向路径的情况下,一些遍历路径或其他关系可能是不明确的或不能确定的。
接下来,在各种实施方案中的一个或多个实施方案中,控制可以返回到调用过程。
图11示出了根据各种实施方案中的一个或多个实施方案的用于生成相关数据类型之间的捷径路径的过程1100的流程图。在开始框之后,在开始框1102处,在各种实施方案中的一个或多个实施方案中,可以向沿袭引擎提供数据模型。如上所述,可以由用户诸如数据建模者、数据设计者、管理员、应用开发者等创作数据模型定义。在一些实施方案中,数据模型定义可以包括可以由一个或多个其他数据类型组成的一个或多个数据类型。
在框1104处,在各种实施方案中的一个或多个实施方案中,可以向沿袭引擎提供一个或多个闭包提示。在各种实施方案中的一个或多个实施方案中,数据模型定义可以包括一个或多个闭包提示或闭包定义。如上所述,闭包可以是被分组在一起以满足本地要求或本地境况的数据类型的分组。在各种实施方案中的一个或多个实施方案中,可以由用户声明数据模型的特定闭包提示。
在各种实施方案中的一个或多个实施方案中,可以由定义数据模型的配置信息提供闭包提示。替代地,在一些实施方案中,可以在可以与用于定义数据模型的信息分开的文件或数据结构中提供闭包提示。在一些实施方案中,闭包提示引用可以由沿袭引擎解释的数据类型(源数据类型和目标数据类型)、关系(边)和流方向(上/下)以生成闭包。
在框1106处,在各种实施方案中的一个或多个实施方案中,可以向沿袭引擎提供一个或多个数据流边界。
在各种实施方案中的一个或多个实施方案中,数据模型定义可以包括一个或多个数据流边界定义。如上所述,数据流边界可以是数据类型之间被声明以满足本地要求或本地境况的边界。在各种实施方案中的一个或多个实施方案中,可以由用户声明数据模型的特定数据流边界。
在各种实施方案中的一个或多个实施方案中,可以由定义数据模型的配置信息提供数据流边界。替代地,在一些实施方案中,可以在可以与用于定义数据模型的信息分开的文件或数据结构中提供数据流边界。在一些实施方案中,数据流边界引用可以由沿袭引擎解释的数据类型(源数据类型和目标数据类型)、关系(边)和流方向(上/下)以生成数据流边界。
在框1108处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成确定要生成的一个或多个闭包以用于生成相关数据类型之间的捷径路径。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成基于闭包提示来生成一个或多个闭包。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成生成如由闭包提示提供的多个闭包。
在决策框1110处,在各种实施方案中的一个或多个实施方案中,如果正在生成的闭包是上闭包,则控制可以流向框1112;否则,控制可以流向框1114。在各种实施方案中的一个或多个实施方案中,闭包可以是上闭包或下闭包。在一些实施方案中,上闭包可以是从被认为在数据模型中处于相同闭包的其他成员下方或下游的数据类型的视角或起点生成的闭包。在一些实施方案中,沿袭引擎可以被布置成从与正在生成的闭包相关联的闭包提示确定闭包可以是上闭包还是下闭包。同样地,在一些实施方案中,下闭包可以是从被认为在数据模型中处于相同闭包的其他成员上方或上游的数据类型的视角或起点生成的闭包。在一些实施方案中,上闭包或下闭包可以是能够区分的,因为它们可能需要不同的动作来生成。
在框1112处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成生成上闭包。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成执行一个或多个动作以生成上闭包,如下面更详细地描述的。
在框1114处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成生成下闭包。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成执行一个或多个动作以生成下闭包,如下面更详细地描述的。
在决策框1116处,在一些实施方案中,如果可能需要更多闭包,则控制可以循环回到框1108;否则,控制可以流向框1118。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成继续生成闭包,直到已经生成针对每个闭包提示的至少一个闭包。在一些情况下,闭包提示可以声明应当针对相同的数据类型生成上闭包和下闭包两者。
在框1118处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成采用一个或多个闭包来生成捷径有向路径。接下来,在各种实施方案中的一个或多个实施方案中,控制可以返回到调用过程。
图12示出了根据各种实施方案中的一个或多个实施方案的用于生成闭包的过程1200的流程图,这些闭包用于生成相关数据类型之间的捷径路径。在开始框之后,在开始框1202处,在各种实施方案中的一个或多个实施方案中,可以向沿袭引擎提供捷径路径的源数据类型和目标数据类型。如上所述,可以向沿袭引擎提供一个或多个捷径声明或捷径定义作为数据模型定义的一部分(或与数据模型定义一起提供)。
因此,在一些实施方案中,每个捷径定义可以标识源数据类型和目标数据类型。在一些实施方案中,可以使用JSON、XML、文本等来提供捷径声明。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成解析捷径声明以确定源数据类型和目标数据类型。在一些实施方案中,源数据类型和目标数据类型可以被认为是捷径的端点,而沿袭引擎可以被布置成确定包括从源数据类型到目标数据类型的捷径有向路径的中间数据类型。
在框1204处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成基于源数据类型的“上”闭包来确定一个或多个候选节点。
在一些实施方案中,数据模型中的节点可以被认为对应于数据类型。此外,在一些实施方案中,可以由连接表示数据模型中的数据类型的节点的边表示数据类型之间的关系。
在各种实施方案中的一个或多个实施方案中,上闭包中包括的节点可以被添加至候选节点的池,池可以被进一步评估以确定源数据类型与目标数据类型之间的捷径路径。
在框1206处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成基于一个或多个候选节点来确定一个或多个遍历边。类似地,基于与源数据类型相关联的上闭包来收集候选节点,与上闭包相关联的边可以被收集到遍历边的池中,池可以被评估以确定捷径路径。
在框1208处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成基于初始候选节点和一个或多个遍历边而生成树。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成遍历候选边以基于候选节点和遍历边而生成树。
在各种实施方案中的一个或多个实施方案中,树可以包括可以表示相同数据类型的一个或多个重复节点和表示相同关系的一个或多个边。
在框1210处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成移除树的导致叶不是目标数据类型的一个或多个分支。在各种实施方案中的一个或多个实施方案中,所生成的树可以包括一个或多个叶节点。因此,在一些实施方案中,可以确定可以表示不同于目标数据类型的数据类型的叶节点。在一些实施方案中,沿袭引擎可以被布置成标识和丢弃树中与对应于不同于目标数据类型的数据类型的叶节点相关联的分支。
在框1212处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成移除可以处于树中的一个或多个重复边。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成标识重复边并将其从树中移除。
在框1214处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成基于所得到的树来生成捷径有向路径。在一些实施方案中,经修改的树可以包括对应于源数据类型的根节点,并且剩余叶节点可以对应于目标数据类型。因此,在一些实施方案中,剩余节点和边包括从源数据类型到目标数据类型的捷径有向路径。
接下来,在各种实施方案中的一个或多个实施方案中,控制可以返回到调用过程。
图13示出了根据各种实施方案中的一个或多个实施方案的用于生成相关数据类型之间的捷径路径的过程1300的流程图。在开始框之后,在开始框1302处,在各种实施方案中的一个或多个实施方案中,可以向沿袭引擎提供对应于数据模型中的数据类型的一个或多个节点。
在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成基于与源数据类型和目标数据类型相关联的闭包来提供一个或多个候选节点。(参见图12的过程1200中的框1204)。
在框1304处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成将数据流边界“下”边添加至遍历集合。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成采用数据流边界中包括的信息来确定要包括在边遍历池中的一个或多个边。如上所述,数据流边界声明包括与数据流边界相关联的边定义。
因此,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成评估候选节点及其相关联的边以确定是否可以存在一个或多个流边界。在一些实施方案中,可以在与数据模型一起被包括的数据流边界定义中声明区分流边界的一个或多个边。在一些实施方案中,所确定的流边界中包括的边可以被添加至可能需要遍历的边集合。例如,如果可以定义可以穿过流边界的捷径,则在搜索捷径路径的情况下,可以遍历那些所确定的构成流边界的边。
在框1306处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成遍历数据模型。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成访问候选节点池中的节点并遍历遍历边池中的边。
在各种实施方案中的一个或多个实施方案中,候选节点和遍历边可以被组装成树状图,其中节点对应于数据类型,边对应于候选节点之间或之中的关系。
因此,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成遍历每个边。在一些情况下,如下所述,可以将一个或多个边添加至遍历集合。
在决策框1308处,在各种实施方案中的一个或多个实施方案中,如果当前正被遍历访问的节点距起始节点为两个或更多个“跳”,则控制可以流向框1310;否则,控制可以流向决策框1312。在一些实施方案中,沿袭引擎可以被布置成在从与数据模型一起被包括的捷径声明确定的源数据类型处开始遍历。因此,在一些实施方案中,沿袭引擎可以被布置成跟踪当前所访问节点可以距起始节点的距离。
在框1310处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成将“下”闭包边添加至边遍历集合。在各种实施方案中的一个或多个实施方案中,数据模型中包括或与数据模型一起被包括的闭包信息包括用于所定义的闭包的流方向指示符,以标识应当考虑两个边(例如,相反方向上的边)中的哪个边。因此,在各种实施方案中的一个或多个实施方案中,与所访问节点相关联的“下”闭包中包括的边可以被添加至遍历集合。
在决策框1312处,在各种实施方案中的一个或多个实施方案中,如果遍历集合中的所有边都已被遍历,则控制可以跳转到框1314;否则,控制可以循环回到框1306。在一些实施方案中,沿袭引擎可以被布置成跟踪遍历集合中的边是否已被遍历。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成将与所遍历的边相关联的节点添加至中间树状图。此外,在一些实施方案中,沿袭引擎可以被布置成将所遍历的边添加至中间树。
在框1314处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成提供中间树。
在一些实施方案中,沿袭引擎可以被布置成在中间树中包括重复数据类型或重复关系,这取决于数据模型。需注意,中间树可以被认为是树状图而不是形式树,因为它们可能不符合树图的形式定义。
在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成执行如上所述的附加操作以修剪/清除中间树,以确定所请求的捷径有向路径。
接下来,在各种实施方案中的一个或多个实施方案中,控制可以返回到调用过程。
图14示出了根据各种实施方案中的一个或多个实施方案的用于生成闭包的过程1400的流程图,这些闭包用于生成相关数据类型之间的捷径路径。在开始框之后,在框1402处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成从数据模型提供闭包提示。如上所述,一个或多个闭包提示可以与数据模型一起被包括或与数据模型相关联。在各种实施方案中的一个或多个实施方案中,闭包提示声明沿袭引擎应当生成包括源数据类型和目标数据类型的闭包。可以包括附加的数据类型,这取决于数据模型的形貌。
在框1404处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成从闭包提示确定闭包方向。在一些实施方案中,闭包提示包括闭包可以是上闭包还是下闭包的指示符。在一些情况下,闭包提示可以指示应当针对给定的数据类型的源/目标对生成上闭包和下闭包两者。在一些实施方案中,对于下闭包,在朝向目标数据类型的路径上远离源数据类型指向的边可以被认为是下方向上的边。相比之下,远离目标数据类型指向源数据类型的边可以被认为是上方向上的边。
在框1406处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成从可以与数据模型一起被提供的闭包提示来确定源数据类型。在各种实施方案中的一个或多个实施方案中,特定数据类型可以是用于多于一个闭包的源数据类型。
在框1408处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成从可以与数据模型一起被提供的闭包提示来确定目标数据类型。在各种实施方案中的一个或多个实施方案中,特定数据类型可以是用于多于一个闭包的目标数据类型。
在框1410处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成从闭包源数据类型到闭包目标数据类型来遍历数据模型。在各种实施方案中的一个或多个实施方案中,闭包提示可以包括指示数据模型中可以链接到源数据类型和目标数据类型的边的至少一个命名关系。
在框1412处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成生成对应于闭包提示的闭包。在各种实施方案中的一个或多个实施方案中,闭包可以包括至少两个数据类型—源数据类型和目标数据类型。然而,在一些实施方案中,如果源数据类型或目标数据类型可以由附加数据类型组成,则那些数据类型也可以被包括在闭包中。例如,如果闭包700中的表数据类型704包括表示表数据类型的属性或特征的附加数据类型,则那些数据类型可以被包括在闭包中。
在决策框1414处,在各种实施方案中的一个或多个实施方案中,如果存在要处理的更多闭包提示,则控制可以循环回到框1402;否则,控制可以返回到调用过程。
在各种实施方案中的一个或多个实施方案中,数据模型可以被配置为包括一个或多个闭包提示。因此,在一些实施方案中,沿袭引擎可以被布置成处理每个闭包提示以生成数据模型的闭包。
图15示出了根据各种实施方案中的一个或多个实施方案的用于基于相关数据类型之间的捷径路径来处理查询的过程1500的流程图。在开始框之后,在开始框1502处,在各种实施方案中的一个或多个实施方案中,如上所述,沿袭引擎可以被布置成生成一个或多个运行时捷径路径。因此,在一些实施方案中,沿袭引擎可以被布置成从与数据模型相关联的捷径声明生成一个或多个捷径有向路径。
在一些实施方案中,沿袭引擎可以被布置成高速缓存所生成的捷径路径以使得能够在活动会话期间重新使用它们。在一些实施方案中,沿袭引擎可以被布置成提供API,这些API使得查询提供者能够请求是否应当在使用之后高速缓存或丢弃捷径有向路径。在一些实施方案中,沿袭引擎可以被布置成基于可以与捷径或查询相关联的超时值、优先级等级等来确定是否应当高速缓存捷径有向路径。
在框1504处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成确定一个或多个持久捷径。在各种实施方案中的一个或多个实施方案中,数据模型可以声明一个或多个捷径可以是持久捷径。在一些实施方案中,持久捷径可以如上所述在初始化阶段期间生成,然后被存储以供稍后使用。
在一些实施方案中,可以由数据设计者手动地生成或以其他方式手动调整一个或多个持久捷径。因此,在一些实施方案中,持久捷径可以表示最优的或优选的路径。在一些实施方案中,持久捷径可以作为可以与数据模型中的其他边一样被遍历的边而被包括在数据模型中。在一些实施方案中,持久捷径可以提供直接(一跳)关系,其可以替换包括多跳的路径。
在决策框1506处,在各种实施方案中的一个或多个实施方案中,如果可以存在一个或多个相关持久捷径,则控制可以前进到框1508;否则,控制可以前进到框1510。在各种实施方案中的一个或多个实施方案中,相关持久捷径可以包括可以与数据模型的部分相关持久捷径,数据模型的部分可以与可以匹配一个或多个运行时捷径路径中包括的数据类型的数据对象或数据类型相关联。
在一些实施方案中,如果持久捷径减少了捷径路径中的跳数量,则沿袭引擎可以用持久捷径替换捷径路径。在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成用持久捷径替换最长的有资格的运行时捷径或运行时捷径路径部分。因此,在一些情况下,包括多个节点或边的多跳路径可以由持久捷径所表示的单个边替换。因此,在一些实施方案中,可以通过减少可以被遍历以解决查询的节点或边的数量来降低用于查询解决的计算性能或存储器消耗。
在框1508处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成将一个或多个持久捷径替代到捷径有向路径中。
在一些实施方案中,沿袭引擎可以被布置成用持久捷径路径替换捷径路径的部分。例如,在一些实施方案中,如果所生成的捷径有向路径可以是A->B->C->D->E(其中A至E是数据类型),并且持久捷径Q具有源数据类型B和目标数据类型D,则可以将持久捷径Q替代到捷径中,实现A->[Q]->E。
在框1510处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成采用捷径有向路径来解决后续查询。接下来,在各种实施方案中的一个或多个实施方案中,控制可以返回到调用过程。
图16示出了根据各种实施方案中的一个或多个实施方案的用于基于相关数据类型之间的捷径路径来处理查询的过程1600的流程图。在开始框之后,在开始框1602处,在各种实施方案中的一个或多个实施方案中,可以向沿袭引擎提供查询信息。在各种实施方案中的一个或多个实施方案中,由沿袭引擎提供或管理的数据模型可以由一个或多个其他应用(诸如可视化平台等)采用。可以在用户界面、可视化等中采用数据模型中包括的数据对象和数据类型。因此,在一些实施方案中,这种应用或服务可以提供一个或多个查询以检索数据对象或关于数据模型的其他信息。例如,应用可以请求关于提供在用户界面或可视化中显示的一个或多个字段的数据源的信息。此外,在一些实施方案中,沿袭引擎可以被布置成提供实现类似查询以支持数据模型的数据管治或数据管理的用户接口。
在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成解析处于各种语言或表示的各种查询类型。在一些实施方案中,沿袭引擎可以被布置成支持使用各种查询语言表达的查询,各种查询语言诸如为类SQL查询语言、基于图的查询语言或基于对象的查询语言。在一些实施方案中,沿袭引擎可以被布置成采用经由配置信息提供的解析、规则、语法等来包括/扩展所支持的查询语言。
因此,在一些实施方案中,沿袭引擎可以被布置成提供一个或多个API,一个或多个API使得授权的用户、应用或服务能够提供请求关于特定数据对象或数据类型的信息的查询信息。在各种实施方案中的一个或多个实施方案中,可以以JSON、XML、文本、API参数等或其组合提供查询信息。
在框1604处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成确定先前基于数据模型生成的一个或多个捷径有向路径。
在框1606处,在各种实施方案中的一个或多个实施方案中,沿袭引擎可以被布置成采用一个或多个捷径有向路径来解决查询。在一些实施方案中,沿袭引擎可以被布置成解析查询信息以标识其是否引用可以与有向捷径路径中的一个或多个有向捷径路径相关联的数据对象或数据类型。
在一些实施方案中,沿袭引擎可以被布置成采用捷径有向路径来正确地确定与数据模型中的数据类型相关的查询响应。
接下来,在各种实施方案中的一个或多个实施方案中,控制可以返回到调用过程。
应当理解,可以由计算机程序指令实现每个流程图图示中的每个框以及每个流程图图示中的框的组合。这些程序指令可以被提供给处理器以产生机器,使得在处理器上执行的指令创建用于实现在每个流程图框或多个框中指定的动作的装置。计算机程序指令可以由处理器执行以使得由处理器执行一系列操作步骤以产生计算机实现的过程,使得在处理器上执行的指令提供用于实现在每个流程图框或多个框中指定的动作的步骤。计算机程序指令还可以使得在每个流程图的框中示出的操作步骤中的至少一些操作步骤被并行地执行。此外,这些步骤中的一些步骤还可以在多于一个处理器上执行,诸如可以在多处理器计算机系统中出现。另外,在不脱离本发明的范围或精神的情况下,每个流程图图示中的一个或多个框或框的组合也可以与其他框或框的组合被同时执行,或者甚至以与所示不同的序列执行。
因此,每个流程图图示中的每个框支持用于执行指定动作的装置的组合、用于执行指定动作的步骤的组合、以及用于执行指定动作的程序指令装置。还应当理解,可以由执行指定动作或步骤、或专用硬件和计算机指令的组合的基于硬件的专用系统来实现每个流程图图示中的每个框以及每个流程图图示中的框的组合。前述示例不应被解释为限制性的或详尽的,而是例示性用例,以示出本发明的各种实施方案中的至少一个实施方案的实现方式。
此外,在一个或多个实施方案中(图中未示出),可以使用嵌入式逻辑硬件设备而不是CPU来执行例示性流程图中的逻辑,诸如专用集成电路(ASIC)、字段可编程门阵列(FPGA)、可编程阵列逻辑(PAL)等或其组合。嵌入式逻辑硬件设备可以直接执行其嵌入式逻辑以执行动作。在一个或多个实施方案中,微控制器可以被布置成直接执行其自身的嵌入式逻辑以执行动作,并访问其自身的内部存储器和其自身的外部输入和输出接口(例如,硬件引脚或无线收发器)以执行动作,诸如片上系统(SOC)等。
Claims (20)
1.一种使用包括一个或多个处理器的计算机管理数据的方法,其中所述方法由执行动作的所述一个或多个处理器执行,所述动作包括:
提供包括一个或多个数据类型、一个或多个数据类型关系和一个或多个捷径的数据模型,其中每个数据类型由所述数据模型中的节点表示,而每个数据类型关系由所述数据模型中的成对的有向边表示;和
响应于用于确定所述数据模型中针对捷径的有向路径的查询,执行进一步的动作,包括:
基于所述捷径,确定当前源数据类型和当前目标数据类型;
基于所述数据模型、所述当前目标数据类型和所述当前源数据类型,确定一个或多个候选节点和一个或多个遍历边,其中每个遍历边对应于所述数据模型、所述一个或多个候选节点和所述一个或多个遍历边中包括的两个数据类型之间的数据类型关系;
基于所述一个或多个候选节点和所述一个或多个遍历边而生成树;
移除所述树的一个或多个叶节点,其中一个或多个剩余叶节点对应于所述当前目标数据类型;
移除所述树的一个或多个分支,其中所述一个或多个移除分支对应于所述树中的一个或多个重复遍历边;
基于所述树中的所述一个或多个候选节点的剩余部分和所述树中的所述一个或多个遍历边的剩余部分,确定所述数据模型中将所述当前源数据类型连接至所述当前目标数据类型的有向路径;和
基于采用所述有向路径从所述当前源数据类型到所述当前目标数据类型遍历所述数据模型,生成对所述查询的响应。
2.根据权利要求1所述的方法,其中确定所述一个或多个候选节点和所述一个或多个遍历边还包括:
提供与所述数据模型相关联的一个或多个闭包源数据类型、一个或多个闭包目标数据类型和一个或多个有向闭包边;
基于所述一个或多个闭包源数据类型、所述一个或多个闭包目标数据类型和所述一个或多个有向闭包边,生成一个或多个闭包;
基于所述一个或多个闭包的与所述目标数据类型和所述源数据类型相关联的部分来确定所述一个或多个候选节点;以及
基于所述一个或多个闭包的所述部分,确定所述一个或多个遍历边。
3.根据权利要求1所述的方法,其中确定所述一个或多个遍历边还包括:
提供与所述数据模型相关联的一个或多个流源数据类型、一个或多个流目标数据类型和一个或多个有向流边;
基于所述一个或多个流源数据类型、所述一个或多个流目标数据类型和所述一个或多个有向流边,生成一个或多个流边界,其中每个流边界指示所述数据模型中的所述一个或多个数据类型之间的过渡边界;和
将所述一个或多个有向流边添加至所述一个或多个遍历边。
4.根据权利要求1所述的方法,还包括:
采用数据存储库以提供与所述数据模型相关联的一个或多个持久捷径,其中每个持久捷径提供另一源数据类型与另一目标数据类型之间的另一有向路径;和
响应于确定所述有向路径的对应于所述一个或多个持久捷径的一个或多个部分,以所述对应的一个或多个持久捷径替代所述有向路径的所述一个或多个部分。
5.根据权利要求1所述的方法,还包括:
基于包括一个或多个其他数据类型或包括一个或多个其他数据类型关系,修改所述数据模型;
基于经修改的数据模型和所述一个或多个捷径,生成另一有向路径;和
提供所述另一有向路径作为所述有向路径的替代。
6.根据权利要求1所述的方法,其中提供所述数据模型还包括:在不存在所述查询的情况下,自动地生成针对每个捷径的一个或多个有向路径。
7.根据权利要求1所述的方法,其中提供所述数据模型还包括:
提供由一个或多个其他数据类型组成的一个或多个复合数据类型;和
提供所述数据模型中表示相同数据类型的多于一个节点。
8.一种用于管理数据的系统,包括:
网络计算机,所述网络计算机包括:
存储器,其至少存储指令;和
一个或多个处理器,其执行指令,所述指令执行动作,所述动作包括:
提供包括一个或多个数据类型、一个或多个数据类型关系和一个或多个捷径的数据模型,其中每个数据类型由所述数据模型中的节点表示,而每个数据类型关系由所述数据模型中的成对的有向边表示;和
响应于用于确定所述数据模型中针对捷径的有向路径的查询,执行进一步的动作,包括:
基于所述捷径,确定当前源数据类型和当前目标数据类型;
基于所述数据模型、所述当前目标数据类型和所述当前源数据类型,确定一个或多个候选节点和一个或多个遍历边,其中每个遍历边对应于所述数据模型、所述一个或多个候选节点和所述一个或多个遍历边中包括的两个数据类型之间的数据类型关系;
基于所述一个或多个候选节点和所述一个或多个遍历边而生成树;
移除所述树的一个或多个叶节点,其中一个或多个剩余叶节点对应于所述当前目标数据类型;
移除所述树的一个或多个分支,其中所述一个或多个移除分支对应于所述树中的一个或多个重复遍历边;
基于所述树中的所述一个或多个候选节点的剩余部分和所述树中的所述一个或多个遍历边的剩余部分,确定所述数据模型中将所述当前源数据类型连接至所述当前目标数据类型的有向路径;和
基于采用所述有向路径从所述当前源数据类型到所述当前目标数据类型遍历所述数据模型,生成对所述查询的响应;和
客户端计算机,所述客户端计算机包括:
存储器,其至少存储指令;和
一个或多个处理器,其执行指令,所述指令执行动作,所述动作包括提供所述查询。
9.根据权利要求8所述的系统,其中确定所述一个或多个候选节点和所述一个或多个遍历边还包括:
提供与所述数据模型相关联的一个或多个闭包源数据类型、一个或多个闭包目标数据类型和一个或多个有向闭包边;
基于所述一个或多个闭包源数据类型、所述一个或多个闭包目标数据类型和所述一个或多个有向闭包边,生成一个或多个闭包;
基于所述一个或多个闭包的与所述目标数据类型和所述源数据类型相关联的部分,确定所述一个或多个候选节点;和
基于所述一个或多个闭包的所述部分,确定所述一个或多个遍历边。
10.根据权利要求8所述的系统,其中确定所述一个或多个遍历边还包括:
提供与所述数据模型相关联的一个或多个流源数据类型、一个或多个流目标数据类型和一个或多个有向流边;
基于所述一个或多个流源数据类型、所述一个或多个流目标数据类型和所述一个或多个有向流边,生成一个或多个流边界,其中每个流边界指示所述数据模型中的所述一个或多个数据类型之间的过渡边界;和
将所述一个或多个有向流边添加至所述一个或多个遍历边。
11.根据权利要求8所述的系统,其中所述一个或多个网络计算机处理器执行指令,所述指令执行动作,所述动作还包括:
采用数据存储库以提供与所述数据模型相关联的一个或多个持久捷径,其中每个持久捷径提供另一源数据类型与另一目标数据类型之间的另一有向路径;和
响应于确定所述有向路径的对应于所述一个或多个持久捷径的一个或多个部分,以所述对应的一个或多个持久捷径替代所述有向路径的所述一个或多个部分。
12.根据权利要求8所述的系统,其中所述一个或多个网络计算机处理器执行指令,所述指令执行动作,所述动作还包括:
基于包括一个或多个其他数据类型或包括一个或多个其他数据类型关系,修改所述数据模型;
基于经修改的数据模型和所述一个或多个捷径,生成另一有向路径;和
提供所述另一有向路径作为所述有向路径的替代。
13.根据权利要求8所述的系统,其中提供所述数据模型还包括:在不存在所述查询的情况下,自动地生成针对每个捷径的一个或多个有向路径。
14.根据权利要求8所述的系统,其中提供所述数据模型还包括:
提供由一个或多个其他数据类型组成的一个或多个复合数据类型;和
提供所述数据模型中表示相同数据类型的多于一个节点。
15.一种包括用于管理数据的指令的处理器可读非暂态存储介质,其中由一个或多个处理器实施所述指令执行动作,所述动作包括:
提供包括一个或多个数据类型、一个或多个数据类型关系和一个或多个捷径的数据模型,其中每个数据类型由所述数据模型中的节点表示,而每个数据类型关系由所述数据模型中的成对的有向边表示;和
响应于用于确定所述数据模型中针对捷径的有向路径的查询,执行进一步的动作,包括:
基于所述捷径,确定当前源数据类型和当前目标数据类型;
基于所述数据模型、所述当前目标数据类型和所述当前源数据类型,确定一个或多个候选节点和一个或多个遍历边,其中每个遍历边对应于所述数据模型、所述一个或多个候选节点和所述一个或多个遍历边中包括的两个数据类型之间的数据类型关系;
基于所述一个或多个候选节点和所述一个或多个遍历边而生成树;
移除所述树的一个或多个叶节点,其中一个或多个剩余叶节点对应于所述当前目标数据类型;
移除所述树的一个或多个分支,其中所述一个或多个移除分支对应于所述树中的一个或多个重复遍历边;
基于所述树中的所述一个或多个候选节点的剩余部分和所述树中的所述一个或多个遍历边的剩余部分,确定所述数据模型中将所述当前源数据类型连接至所述当前目标数据类型的有向路径;和
基于采用所述有向路径从所述当前源数据类型到所述当前目标数据类型遍历所述数据模型,生成对所述查询的响应。
16.根据权利要求15所述的介质,其中确定所述一个或多个候选节点和所述一个或多个遍历边还包括:
提供与所述数据模型相关联的一个或多个闭包源数据类型、一个或多个闭包目标数据类型和一个或多个有向闭包边;
基于所述一个或多个闭包源数据类型、所述一个或多个闭包目标数据类型和所述一个或多个有向闭包边,生成一个或多个闭包;
基于所述一个或多个闭包的与所述目标数据类型和所述源数据类型相关联的部分,确定所述一个或多个候选节点;和
基于所述一个或多个闭包的所述部分,确定所述一个或多个遍历边。
17.根据权利要求15所述的介质,其中确定所述一个或多个遍历边还包括:
提供与所述数据模型相关联的一个或多个流源数据类型、一个或多个流目标数据类型和一个或多个有向流边;
基于所述一个或多个流源数据类型、所述一个或多个流目标数据类型和所述一个或多个有向流边,生成一个或多个流边界,其中每个流边界指示所述数据模型中的所述一个或多个数据类型之间的过渡边界;和
将所述一个或多个有向流边添加至所述一个或多个遍历边。
18.根据权利要求15所述的介质,还包括:
采用数据存储库以提供与所述数据模型相关联的一个或多个持久捷径,其中每个持久捷径提供另一源数据类型与另一目标数据类型之间的另一有向路径;和
响应于确定所述有向路径的对应于所述一个或多个持久捷径的一个或多个部分,以所述对应的一个或多个持久捷径替代所述有向路径的所述一个或多个部分。
19.根据权利要求15所述的介质,还包括:
基于包括一个或多个其他数据类型或包括一个或多个其他数据类型关系,修改所述数据模型;
基于经修改的数据模型和所述一个或多个捷径,生成另一有向路径;和
提供所述另一有向路径作为所述有向路径的替代。
20.根据权利要求15所述的介质,其中提供所述数据模型还包括:
提供由一个或多个其他数据类型组成的一个或多个复合数据类型;和
提供所述数据模型中表示相同数据类型的多于一个节点。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/409,299 US20230059083A1 (en) | 2021-08-23 | 2021-08-23 | Generating shortcut paths between related data types |
US17/409,299 | 2021-08-23 | ||
PCT/US2022/038328 WO2023027851A1 (en) | 2021-08-23 | 2022-07-26 | Generating shortcut paths between related data types |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117999549A true CN117999549A (zh) | 2024-05-07 |
Family
ID=83149327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280061654.8A Pending CN117999549A (zh) | 2021-08-23 | 2022-07-26 | 生成相关数据类型之间的捷径路径 |
Country Status (4)
Country | Link |
---|---|
US (2) | US20230059083A1 (zh) |
EP (1) | EP4392872A1 (zh) |
CN (1) | CN117999549A (zh) |
WO (1) | WO2023027851A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331933B (zh) * | 2023-09-11 | 2024-02-23 | 安徽省大数据中心 | 基于多源异构统一纳管的安全运营方法及系统 |
CN117591705B (zh) * | 2024-01-19 | 2024-05-24 | 北京志翔科技股份有限公司 | 基于图搜索的分表关联方法及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10698955B1 (en) * | 2016-07-19 | 2020-06-30 | Datastax, Inc. | Weighted abstract path graph database partitioning |
US11194845B2 (en) * | 2019-04-19 | 2021-12-07 | Tableau Software, LLC | Interactive lineage analyzer for data assets |
US11566909B2 (en) * | 2020-10-12 | 2023-01-31 | Verizon Patent And Licensing Inc. | Systems and methods for optimal path determination using contraction hierarchies with turn costs |
-
2021
- 2021-08-23 US US17/409,299 patent/US20230059083A1/en not_active Abandoned
-
2022
- 2022-07-26 WO PCT/US2022/038328 patent/WO2023027851A1/en active Application Filing
- 2022-07-26 EP EP22761669.5A patent/EP4392872A1/en active Pending
- 2022-07-26 CN CN202280061654.8A patent/CN117999549A/zh active Pending
-
2023
- 2023-12-14 US US18/540,844 patent/US20240111791A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4392872A1 (en) | 2024-07-03 |
US20240111791A1 (en) | 2024-04-04 |
US20230059083A1 (en) | 2023-02-23 |
WO2023027851A1 (en) | 2023-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11687571B2 (en) | Interactive lineage analyzer for data assets | |
US11605189B2 (en) | Dynamic visualization and data analytics based on parameter actions | |
US10275710B1 (en) | Machine learning model repository | |
US20240111791A1 (en) | Generating shortcut paths between related objects | |
US11893039B2 (en) | Interactive interface for data analysis and report generation | |
US20210097065A1 (en) | Interactive data visualization | |
US11507532B2 (en) | Aggregating metrics in distributed file systems | |
US20240095285A1 (en) | Dynamic graph generation for interactive data analysis | |
JP2023541584A (ja) | 自動データモデル生成 | |
US20220382761A1 (en) | Metadata inheritance for data assets | |
JP7313553B2 (ja) | パーソナライズされた推奨に基づいたデータ可視化の提供 | |
US20230065227A1 (en) | Providing data flow directions for data objects | |
US11188558B2 (en) | Parenting computed fields with data objects | |
US20230008999A1 (en) | Data processing for visualizing hierarchical data | |
US11422985B2 (en) | Interactive data modeling | |
CN117716352A (zh) | 数据资产的元数据继承 | |
WO2022256235A1 (en) | Metadata inheritance for data assets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |