首页 / 专利库 / 专利权 / 申请 / 国际申请 / 修改 / 用于修改源数据的数据对象的覆盖

用于修改源数据的数据对象的覆盖

阅读:1027发布:2020-06-25

专利汇可以提供用于修改源数据的数据对象的覆盖专利检索,专利查询,专利分析的服务。并且一种系统包括 覆盖 和变换器。所述系统用于基于覆盖识别与源数据关联的数据对象。应用所述覆盖以 修改 所述数据对象。所述数据对象即将作为最终数据被提供,其中就好像所述最终数据是被所述覆盖修改的源数据那样与所述最终数据进行交互。,下面是用于修改源数据的数据对象的覆盖专利的具体信息内容。

1.一种非暂时性机器可读存储介质,被编码有由计算系统可执行的指令,所述指令在被执行时使所述计算系统:
基于覆盖识别与源数据关联的数据对象;并且
应用所述覆盖,以修改即将作为最终数据提供的所述数据对象,其中就好像所述最终数据是被所述覆盖修改的源数据那样与所述最终数据进行交互,其中,变换器用于独立于所述源数据而提供所述最终数据。
2.根据权利要求1所述的存储介质,其中,所述覆盖包括匹配属性,所述匹配属性包括名称和值,以基于针对所述匹配属性对所述源数据的检查来识别所述数据对象,且所述覆盖包括修改属性,所述修改属性包括名称和值,以响应于所述匹配属性被满足而修改所述数据对象。
3.根据权利要求2所述的存储介质,其中,所述覆盖用于基于所述匹配属性的精确匹配而识别所述数据对象。
4.根据权利要求2所述的存储介质,其中,所述覆盖用于基于正则表达式(REGEX)以匹配所述匹配属性来识别所述数据对象。
5.根据权利要求1所述的存储介质,其中,所述覆盖包括优先级,以识别相对于其他覆盖而应用所述覆盖的顺序。
6.根据权利要求1所述的存储介质,其中,所述覆盖包括源数据标识符,以瞄准其数据对象即将被修改的源数据。
7.根据权利要求1所述的存储介质,进一步包括覆盖库,以存储所述覆盖,并检索需提供给所述变换器的覆盖。
8.根据权利要求1所述的存储介质,进一步包括使所述计算系统应用多个覆盖以迭代地修改所述数据对象的指令。
9.根据权利要求1所述的存储介质,其中,所述变换器能定制为适应所述源数据的所述结构,从所述源数据获取所述数据对象的一般化模型而不考虑所述源数据的所述结构,所述源数据的所述结构包括与所述结构关联的对象图。
10.根据权利要求1所述的存储介质,其中,所述变换器用于访问所述源数据的一部分,以实施拆分操作,从而获取从结构解耦的所述数据对象,而不需要访问整个所述源数据。
11.根据权利要求1所述的存储介质,其中,所述变换器用于实施可定制的连接操作,以将所述数据对象与不同于所述源数据的所述结构的期望类型的结构耦合。
12.根据权利要求1所述的存储介质,其中,变换器用于将所述最终数据提供为相对于所述源数据作出的改变。
13.根据权利要求1所述的存储介质,进一步包括使所述计算系统基于验证框架识别应用所述覆盖的可能的问题并禁用有问题的覆盖的指令。
14.一种非暂时性机器可读存储介质,被编码有由计算系统可执行的指令,所述指令在被执行时使所述计算系统:
基于覆盖识别与源数据关联的数据对象;
由变换器实施拆分操作,以从所述源数据获取与所述源数据的结构解耦的所述数据对象;
应用所述覆盖,以修改所述数据对象;并且
由所述变换器实施连接操作,以提供被所述覆盖修改的所述数据对象作为最终数据;
其中,所述变换器用于提供最终数据对象,其中就好像该数据对象是被所述覆盖修改的源数据那样与所述最终数据对象进行交互,而不用修改所述源数据。
15.一种方法,包括:
基于覆盖识别与源数据关联的数据对象;
应用所述覆盖,以修改即将作为最终数据提供的所述数据对象;以及
由变换器提供最终数据对象,其中就好像所述最终数据对象是被所述覆盖修改的源数据那样与所述最终数据对象进行交互,而不用修改所述源数据。

说明书全文

用于修改源数据的数据对象的覆盖

背景技术

[0001] 应用环境可能涉及从多个外部数据源可获得的数据。由于将数据消费者与数据提供者隔开的组织障碍或技术障碍,数据的消费者可能在解决数据源的问题时面对困难。在数据源处使用传统的数据修正方法可能在可能依赖该数据源的其他应用之间产生不兼容。此外,由于数据源在数据消费者的控制之外,所以数据修正可能是耗成本的且延迟的。
附图说明
[0002] 图1是根据示例的包括变换器和覆盖的计算系统的框图
[0003] 图2是根据示例的包括变换器和覆盖的计算系统的框图。
[0004] 图3是根据示例的包括覆盖引擎的计算系统的框图。
[0005] 图4是根据示例的包括覆盖引擎的计算系统的框图。
[0006] 图5是根据示例的包括覆盖引擎的计算系统的框图。
[0007] 图6是根据示例的包括变换器和覆盖的系统的框图。
[0008] 图7是根据示例的覆盖界面的框图。
[0009] 图8是根据示例的基于应用覆盖的流程图
[0010] 图9是根据示例的基于应用覆盖的流程图。

具体实施方式

[0011] 本文提供的示例基于覆盖,用于使与使能对消费数据(例如,来自源数据)的修改相关联的开销能够减少。覆盖可从源数据创建信息视图,而不需要改变数据源处的源数据本身。因此,数据服务的消费者可独立于且在不影响源数据或其他消费者及其源数据视图的情况下(例如,在诸如数据可作为服务可用的面向服务的体系结构(SOA)之类的环境中),在必要时根据其需要剪裁数据。因此,各示例非常适合于与对数据设置的更高平的审查关联的数据处理环境。示例系统对外部服务提供的不一致的或“脏”数据是有弹性的,这样的数据例如外部数据中的错误,使得控制数据的人不知道或不能在数据消费者期望的时间内针对这些错误采取修正动作。覆盖可用于以有针对性的方式作为权威引用源‘介入’,以最小化险和破坏,同时减少支持和开发成本。即使在推迟了对原始源数据的修复时,好处也是可立即实现的。
[0012] 因此,各示例包括使得数据服务消费者/客户(例如,应用)能够:与控制外部数据服务的外部源无关地解决外部来源的数据中的错误;以每种情况为基础,排除外部数据服务所提供的不想要的数据;向(来自外部数据服务的)数据添加消费应用需使用的附加数据;对添加和数据调整等施加时间限制;通过允许数据服务消费者比尝试与数据服务提供者团队协作更快地进行响应,来确保业务连续性;并且允许使用提供更高百分比的期望/要求的信息的服务,同时调整可能不合适的部分。
[0013] 图1是根据示例的包括变换器110和覆盖120的计算系统100的框图。计算系统100用于基于覆盖120从源数据102获取数据对象130。变换器110用于对数据对象130应用覆盖120,以获得最终数据104。
[0014] 覆盖120可为临时的、用户定义的、和/或有针对性的。可修改(例如,添加和/或修正)源数据102(例如,外部维护的内容)。在覆盖120可应用于甚至源自特定数据供应源的个别内容流,以及也可应用于那些流中的个别元素的意义上,覆盖120可为有针对性的。在覆盖120可包括待交互的修改,以代替由权威数据源提供者直接在源数据102处进行的确定性修正动作的意义上,覆盖120可为临时性的。在业务代表(例如,源数据102的消费者)可拥有并(例如,经由用户界面(UI)以及持久层)与覆盖修改的特征进行交互,以定义、测试、并维护一个或多个覆盖120的意义上,覆盖120可以是用户定义的。
[0015] 示例计算系统100所示出的基于覆盖的方法通过源数据102的直接净化提供几个优势。覆盖120可从源数据102抽取,使得可快速对数据应用修正,而不影响数据服务的其他客户。覆盖120可一致地应用于所有引用数据源,因此业务领导可以以同样的方式(例如,经由示例计算系统100)管理所有数据修正,而不需要与负责源数据102的外部团队进行任何耗费成本的交互。计算系统100可提供可由引用数据团队管理的集中式数据问题库(例如,覆盖120的存储库)。因此,覆盖120的维护可由最接近业务需求且对来自源数据102的信息可如何添加以提供最终数据104进行控制的那些人实施。
[0016] 与计算系统100关联的覆盖过程可作为服务本身(例如,作为共享的业务服务)提供,例如软件需求、软件即服务,等。因此,尽管图1说明了计算系统100为分立的模,但各示例不限于基于客户的部署。各示例包括将覆盖120及关联的好处提供为可远程调用的服务。在一示例中,覆盖120可作为服务被调用,且可使用一般的方法应用覆盖120,该方法不引用任何特定的源数据结构。该应用方法可为完全解耦的构造,其可应用于任何类似的情况,且可能可应用于任意数据结构。系统100可将覆盖服务本身提供为共享业务服务,以在面向服务的局面下甚至更容易地提供覆盖服务。
[0017] 除了能够作为服务被调用之外,可例如通过使用面向方面的编程(AOP)的拦截器而应用覆盖120。因此,源数据102的消费者(例如用户、开发者,等)可使用被覆盖的数据(例如,最终数据104),而不需要包含任何代码改变。例如,面向方面的编程基于识别代码中可注入外部代码的点,使得拦截器或超级结构能够位于用户代码的外部。因此,用户可基于直接调用(例如‘,获取源数据(get soruce data)’以及‘更新网页(update webpage)’),而启用覆盖120。开发者可在外部对软件应用进行配置,使得拦截器可识别其可更新的点以注入是覆盖系统的代码。在代码运行时,基于覆盖的系统可使用模式匹配等对方法调用进行拦截,并提供已被覆盖120修改的最终数据104。
[0018] 变换器110用于应用覆盖120。变换器110(及其他示例组件)可被提供为代码模块(例如,在这种情况下是java类)。变换器110可为通用的,使得能够在变换器引擎的外部指定变换规则,或其他实现方式变形
[0019] 因此,本文提供的示例使得覆盖120的使用能够以针对性的方式,作为权威引用源临时‘介入’,以最小化服务的风险/破坏,并提供关联的支持和开发成本的降低。覆盖方法比传统的数据净化技术更有用。覆盖120使能包括用于匹配来自给定源数据102外部服务的数据的数据不可知服务的特征,基于消费者指定的规则添加或修改数据102的能,对添加规则设置时间限制的能力,根据优先级使添加成层的能力,基于各种规则(正则表达式、精确匹配,等)进行匹配的能力,在源数据102的子集或流内进行工作的能力,以及避免对附加持久性的需求的能力。各示例是灵活的,且可实现为各种服务,并且可实现为包括:例如用于创建覆盖120并与覆盖120(或其他组件/特征)交互的网页UI。
[0020] 图2是根据示例的包括变换器210和覆盖220的计算系统200的框图。计算系统200用于基于覆盖220从源数据202获取数据对象230。变换器210被系统200(或其他引擎,例如,覆盖引擎500)委派用于抽取源数据202以及获取数据对象230,使得覆盖220可应用于数据对象230,以获得最终数据204。变换器210可实施拆分操作,以将结构203与源数据202分开,从而获得数据对象230。覆盖220可包括匹配属性222、修改属性224、优先级226、时间信息227、以及源数据标识符228。计算系统220可包括用于存储多个覆盖220的覆盖库229、以及用于检查有效运行状态的验证框架240。
[0021] 系统200(或其他引擎,例如,覆盖引擎500)可委派变换器210例如经由拆分操作来实施源数据202到数据对象230的抽取。系统200还可委派变换器210例如经由连接操作将(被覆盖220修改的)数据对象230重整回最终数据204。系统200可选择对数据使用什么变换器210和/或覆盖220,且该选择可基于例如源数据202的身份的各种特征。系统200还可向验证框架240委派任务,例如实施用于应用覆盖220的‘应用’方法以及覆盖220和其交互的验证。因此,系统220可与图2的各种组件协作,将所有特征绑在一起以获得期望的最终数据204。
[0022] 覆盖220可基于任何数据对象230的状态可降为无结构格式(例如,基于成对的键/值(或其他属性)的格式)的前提而与数据交互。因此,覆盖220可被视为数据多态性的形式,因为覆盖220可被形成为扩展或修改数据对象230的已有实例。在内部,覆盖220可包含属性对象集,例如匹配属性222、修改属性224等。该集合可表示将要在源数据202中匹配的匹配属性222的名称和值。覆盖220可指定要寻找的匹配的类型,例如精确匹配和/或基于表达式的匹配。覆盖220还包括修改属性224,其包含在匹配属性222被实现的情况下将要扩展/改变的键/值(例如,值和名称)属性的列表。
[0023] 覆盖220可包括优先级226,其可(例如,由系统220)用于识别覆盖220相对于其他覆盖220(可具有它们自己的优先级226)被应用的顺序。优先级226可通过多种方式表达,且不限于像例如高/中/低或数字表达之类的表达这样的细节。覆盖220可包括时间信息227,其可包括与何时应该应用覆盖220相关联的时间和/或时间范围(例如,开始/完成)。覆盖220可包括源数据标识符228,其用于标识所瞄准(例如,可用的各种可能的源数据202、一个或多个覆盖220可瞄准的一个或多个源中)的源数据202。尽管图2中示出了单个属性,但各示例可包括任意数量的属性或除具体说明的那些之外的其他特征。
[0024] 覆盖220可用作传达从外部源找出并修改(例如,改写和/或添加)数据的意图的工具。可基于精确和/或基于模式的(表达式)匹配(例如,表达式/字符串的模糊匹配)来匹配和/或修改属性。覆盖220可基于特定的指定属性实施匹配,且还可基于可用于实施/指定覆盖220的自然语言创建/规则/语法进行匹配。
[0025] 覆盖220可使能基于覆盖界面(例如,参见图7)的用户交互。交互可包括对什么参数可被接受用于覆盖属性的限制。在示例中,限制可对什么值在与覆盖220关联的域的完整性的可接受参数内进行设置。覆盖220可考虑给定应用/系统当前面对的具体挑战而建立。覆盖220还可建立为具有其自己唯一的用户界面(例如,以每个覆盖为基础),包括跨多个域的多个用户界面的使用。类似地,计算系统200的其他组件可能享用用于与这样的组件(例如,变换器210,等)交互的用户界面的定制。用户界面可为系统200的函数,但不是指定性/限制性的,因为可在UI中创建任何形式以与可能相关的数据或其他组件交互。
[0026] 可使用用户界面指定覆盖220的源数据标识符228,以指定如何标识覆盖220所瞄准的是什么源数据202。因此,在示例中,源数据标识符228可用于将其关联的覆盖220定在源自特定源数据202的数据流或数据的其他源上。这样的行为/属性是可选择的,例如在UI/系统应用中可选择,以将覆盖220瞄准特定信息流,甚至是在源数据202内。该源数据标识符228属性可被扩展为瞄准期望的任何数据流,包括同时和/或由相同的覆盖220瞄准多个数据流。
[0027] 优先级226使得能够使用可被迭代和/或递归应用的多个覆盖220。覆盖220可成组(例如,合并)使用,且优先级226属性使得一个覆盖220能够改写另一个覆盖220(例如,较低优先级226的覆盖)。因此,系统200使得覆盖220能够像它们是待处理和/或待应用于源数据202和数据对象230的规则引擎等那样进行交互。例如,一个覆盖220可用于匹配期望类型的数据,而另一个覆盖220可用于匹配略微不同/类似的数据。第三个覆盖220可用于接收前两个覆盖220的结果,并实施另一个修改,迭代在之前的覆盖上。覆盖220可对整个数据集操作,且可对子集(例如,根据另一个覆盖)操作,且这些交互可受优先级226的影响。
[0028] 优先级226可如示出的那样存储,即作为覆盖220本身的可在管理员UI(参见例如图5的管理员UI 506)中管理的特性。在替代示例中,优先级226可在覆盖220外部进行管理,例如作为存储在覆盖220本身中的优先级226的替代或附加。系统200(例如,覆盖引擎500)可包括基于一个或多个覆盖220正尝试匹配和/或修改什么来评估一个或多个覆盖220并确定与那些覆盖220中的每一个关联的优先级226的智能。系统200可解决可能的问题,并解决已经出现的导致一个覆盖220改变另一个覆盖220正查找的信息的问题,使得这种覆盖220之间的优先级/智能可防止这样的问题。系统200可检测到较低优先级覆盖220会影响较高优先级覆盖220的特性,并补偿这样的问题,以防止由于与覆盖220关联的修改的无序应用而导致的非故意的修改。
[0029] 此外,独立于可能由于优先级而产生的问题和/或除了由于优先级而产生的问题之外,系统200或用于应用覆盖220的任何引擎可检测覆盖220本身的某些问题。例如,系统200可确定应用覆盖220会提供超过可接受阈值数目的结果的结果,或提供对于提供有意义的最终数据204来说不够窄的结果。系统200还可对相等优先级226的覆盖220应用无优先级的控制,在这种情况下可能期望进一步的控制以避免不期望的交互。
[0030] 变换器210用于应用覆盖220,且可以是通常定义的界面和/或一种策略模式。变换器210可用于从应用覆盖220的过程解耦(例如,拆分)源数据结构204。因此,可包括结构203(例如,对象图)的源数据202可被变换器210平面化为无结构形式,以表示数据对象230。因此,覆盖220免于需要解决源数据202中的各种类型的结构203的约束,因为这样的特征可由变换器210处理。因此,由实现方式定义的对象图解构的语义以及对应的改变后内容到该对象图的向回重整(例如,连接)可以是在变换器210处独立于覆盖220可管理的。
[0031] 变换器210可实施拆分操作,这使实现器具有推荐应向覆盖220的应用转发初始源数据202的什么元素的能力(例如,使用匹配/扩展循环等应用覆盖220)。变换器210可实施连接操作,以提供允许实现器决定如何重整形成最终数据204的修改/改变的便利,以包括作为源数据202的初始对象图/结构203。在替代示例中,变换器210可用与源数据202不同的结构,或根本没有结构,重整最终数据204。
[0032] 系统200可基于覆盖220的应用而匹配、扩展、和/或添加数据对象230,这将尝试基于匹配属性222进行匹配,并基于修改属性224进行改变、扩展、和/或添加。变换器210通过解构源数据202的对象图203以提供最终的平面化数据而促进覆盖220的普遍适用,最终平面化数据可包括将由覆盖引擎根据匹配属性222进行搜索的数据对象230。覆盖220的应用可根据覆盖220被设计为基于其属性做什么而扩展、增加、或修改数据对象230的任何属性。变换器210随后可实施连接操作,其中平面化的数据对象230可被重整回例如具有源数据
202的结构的期望的模型/结构。因此,变换器210可一般化源数据202,而不管其初始结构
203,以提供可被覆盖220修改的一般模型,从而使能数据添加/数据多态性。
[0033] 变换器210可实现为一般的界面类型,从而使能在指定调用连接操作/方法的返回结果时的灵活性以及类型安全性。作为替代,一种实现方式可使用java‘对象’类,其可允许设计的灵活性,但具有减少的类型安全性。因此,变换器210基于适合于给定结构203的定制,使能与范围从网页服务、文件、和数据库到更模糊的数据(例如,电子邮件和自由文本)的不同的源数据进行的交互。
[0034] 变换器210根据数据解构技术使能覆盖技术的解耦,且使能变换器210的定制以对付合适的数据源。例如,变换器210可定制为对通用可扩展标记语言(XML)源数据202进行操作,以解构和/或重构XML。系统200(例如,引擎)可调用变换器210实施拆分操作,应用覆盖220,并调用变换器210实施连接操作。因此,基于变换器210被定制为源数据202的各种实现方式,源数据202的格式可被提供为使覆盖220可理解且容易地匹配/连接它。这可使得覆盖
220能够在所有服务中通用,且覆盖220可被提供为(例如,经由库229)为预先制作的,以供用户将覆盖库229插入到系统/引擎220中。覆盖库229可随时间增加,使得用户/数据消费者能够内建多个存储的覆盖220,以供对各种源数据202使用。可由很好地熟悉源数据202及其结构203的端用户(例如,对用于消费或解构来自数据服务提供者的源数据202的代码进行负责的开发者团队)创建或定制变换器210。
[0035] 最终数据204可基于连接操作被重构,但可基于各种选项被提供。在示例中,变换器210可重构是源数据202的子集(包括已相对于源数据202被改变为单独的调试流等的那些)的最终数据204。最终数据204可重整回与源数据202完全相同或类似的构造,包括相同的数据结构203,但具有被覆盖220修改的改变。源变换器210可被定制为基于覆盖引擎从源数据结构203的解耦,管理产生最终数据204的这些方面。
[0036] 系统200可包括闭环反馈机制,用于使得最终数据204能够被馈送回源数据202,或用于更新源数据202。系统200可馈送回已被覆盖改变的元素,或发送完全被更新的结构化数据集置换。在示例中,源数据服务提供者可提供接收已被覆盖220修改的‘净化的’信息的协议,使得源提供者能够在源数据202处应用这些改变。但是,这样的系统可以对付可能正在消费源数据202的其他服务的需要,以避免改变其值被该服务的另一个消费者依赖的属性,从而避免中断其他服务。
[0037] 覆盖220的使用可使能对数据的改变,例如作为最终数据204,以用于不同目的,而没有在所有可能依赖该源数据202的服务之间产生破坏。这样的好处可能在面向服务的架构环境中特别有用,从而允许不中断其他服务的数据源服务的消费。即使最终更新了源数据202,覆盖220也可通过例如无害的非匹配情况和/或通过使他们自身停用等,智能地辨别和/或适应这样的改变。覆盖220可为时间受限的(基于时间信息227),且可通过其他方式被失效(例如,通过覆盖UI手动失效)。时间信息227可用于时间盒本身,从而提供覆盖220保持激活的时间窗。因此,覆盖220使得数据消费者能够检测正被消费的源数据202存在问题,创建覆盖220,对覆盖应用时间盒(例如,接下来的三个星期保持激活),并应用覆盖,以解决问题。同时,数据消费者可联系源数据202的提供者,并请求通过提供者可使用的任何机制解决该问题。随着时间盒过期,覆盖将不再匹配。此外,问题解决时,匹配属性222将不再匹配。因此,覆盖220的应用可在需要时提供有效的方案,并在不再需要/可用时,保持无害。
[0038] 系统200使得超过一个变换器210能够在给定的时间运行。在示例中,系统可实现调试输出或其他类型的反馈环路,以整理改变。第一变换器210可为了完全重构源数据202的目的而对源数据202进行变换,第二变换器210重复该变换,但包括改变。最终数据204或其他变换器输出可被导回源数据202本身。因此,各种示例可利用以各种能力运行的多个变换器,且本文提供的示例目的不旨在受限于具体示出的图。
[0039] 验证框架240可提供对系统200的运行的支持,以减轻与数据交互的覆盖220的可能问题。例如,覆盖220可以瞄准相同的数据,或者针对覆盖的瞄准范围太宽而不那么有用(且可能地对数据完整性有害)的情况。验证框架240可通过防止较低优先级覆盖220改变需要被用于提供较高优先级覆盖220中的匹配的属性,来防止较低优先级覆盖220‘侵害’较高优先级覆盖220。验证框架240可基于例如确定覆盖220的匹配属性222正尝试匹配可能导致过多引用数据被删除/改写的属性值(例如,通过RGEX),而防止范围过宽的覆盖220。
[0040] 验证框架240可检查作为覆盖界面的一部分的问题,其中用户可指定覆盖220的特性。因此,覆盖220可在创建时(例如,在覆盖220正被保存到覆盖库229时)被验证。验证框架240可在其他位置进行检查,例如在检测到威胁和/或应不允许的错误状况时。验证框架240可针对不期望的行为对系统200进行监控,例如作为实际应用过程本身的一部分。例如,验证框架240可能发现覆盖220重复违反某些条件,且验证框架240可禁用覆盖220。验证检查可在最初执行,以正在进行/监控为基础执行,和/或在覆盖220的应用完成时执行,和/或在其他时间执行。
[0041] 系统200和/或验证框架240可基于例如错误状况和警告状况,识别和/或特征化不期望的情况。在下面的示例中,验证框架240可识别警告状况。可呈现宽范围覆盖220,以匹配使用正则表达式(REGEX)的单个属性,正则表达式例如在运行时将匹配一切的*.*或类似。验证框架240可检查此覆盖220并识别出此覆盖220的应用对于目的来说范围可能太宽,并发布警告状况。另一个示例中的验证框架240可通过检测干扰(例如,与覆盖优先级226冲突的行为)以量化覆盖220将实际上干扰较高优先级覆盖220,来识别错误状况,并发布错误状况。除了识别各状况之外,验证框架240可基于情形采取行动(例如,暂停覆盖)。
[0042] 系统200提供可对源数据202的子集进行分析以识别数据对象230,使得其不需要分析整个源数据202的好处。与数据净化的其他尝试(例如,使用XML格式序列化源数据202)相比,不需要消费和分析整个源数据202。本文提供的示例可应用于数据流(例如,应用于源数据202的子集)。因此,通过对源数据202的子集进行操作,一找到结果,结果就可用,而不用等待整个源数据202的处理。在示例中,系统200可提供覆盖220,以检查来自视频流源数据202的帧捕获图像,以匹配图像,使得系统200可处理视频流,直至覆盖220满足匹配条件的点,并拖拉所需要的帧图像。
[0043] 没有针对源数据202的实际结构的先决条件。源变换使得开发团队能够提供可能的变换过程,以减少变为可对其应用覆盖220的格式的源数据202,从而使能源数据202的分解的形成。此以结构为中心的应用由可为业务或领域专家的任何人可定制,即给最熟悉需分析的数据的那些人以权力。示例系统针对期望的一般应用,提供设计可适应可以呈现的任何类型元数据202的客户UI和变换服务的自由。
[0044] 本文提供的示例可以硬件、软件、或硬件和软件的结合实现。示例系统可包括处理器和存储资源,用于执行存储在有形的非暂时性介质(例如,易失性存储器非易失性存储器、和/或计算机可读介质)中的指令。非暂时性计算机可读介质可为有形的,且具有存储在其上可由处理器执行以实施根据本公开的示例的计算机可读指令。
[0045] 示例系统(例如,计算设备)可包括和/或接收有形的非暂时性计算机可读介质,用于存储计算机可读指令集(例如,软件)。如本文所用的,处理器可包括一个或多个处理器,例如,并行处理系统。存储器可包括可由处理器寻址以执行计算机可读指令的存储器。计算机可读介质可包括易失性和/或非易失性存储器,例如随机存取存储器(“RAM”)、磁存储器(例如,硬盘软盘、和/或磁带存储器)、固态硬盘驱动(“SSD”)、闪存、相变存储器,等等。
[0046] 图3是根据示例的包括覆盖引擎330的计算系统300的框图。计算系统300还可包括处理器304(例如,CPU)、存储器306、显示处理器310、以及显示接口302。计算系统300的存储器306可与操作系统308以及覆盖引擎330关联。显示处理器310可基于显示接口302与显示器320交互。显示器320可为物理硬件显示器,且还可包括虚拟化显示器。
[0047] 在示例中,覆盖引擎330可指导处理器304作为覆盖引擎操作。因此,处理器304可包括硬件/电路(例如,专用集成电路(ASIC),以提供本文所描述的好处。
[0048] 处理器304(以及覆盖引擎330)可为执行或解释指令、数据事务、代码或信号的硬件和软件的任意结合。例如,处理器310和/或覆盖引擎330可实现为微处理器、专用集成电路(ASIC)、分布式处理器(例如,处理器或计算设备的集群或网络)、和/或虚拟机,等。
[0049] 覆盖引擎330可为驻留在系统存储器306中且与处理器304通信的软件模块。计算系统300可经由显示接口30与至少一个显示器320通信(例如,以提供表示数据或信息的显示的信号)。显示器320用于包括可以列、行等组织的需由显示处理器310寻址的多个像素。显示处理器310可包括硬件(例如,引脚、连接器或集成电路)以及软件(例如,驱动或通信栈)。例如,显示处理器310可经由到形成显示接口302(例如,视频图形阵列(VGA)、数字可视接口(DVI)、高保真多媒体接口(HDMI)、显示器端口、或其他图形接口)的引脚的引线(trace)进行通信。
[0050] 存储器306是处理器可读介质,用于存储指令、代码、数据、或其他信息。例如,存储器306可为易失性随机存取存储器(RAM)、永久性或非暂时性数据存储库(例如,硬盘驱动或固态驱动)、或其结合或其他类型的存储器。此外,存储器306可与处理器304和/或显示处理器310集成,或独立于处理器304和/或显示处理器310,或在计算系统300外部。
[0051] 操作系统308和显示处理器驱动330可为指令或代码,这些指令或代码在处理器304和/或显示处理器310处执行时,使处理器304和/或显示处理器310实施实现操作系统
308和覆盖引擎330的特征的操作。换句话说,操作系统308以及覆盖引擎330可位于或加载到计算设备330上。更具体地,覆盖引擎330可包括例如实现上面参照图1和图2讨论的特征的代码或指令。此外,覆盖引擎330可包括实现参照图4-9讨论的特征的代码或指令。
[0052] 在一些实现方式中,覆盖引擎330(和/或如本文通篇公开的其他组件)可被托管在或实现在计算设备仪器处。也即,覆盖引擎330和/或其他组件可在专用于托管覆盖引擎330的计算设备300处实现。例如,覆盖引擎330可被托管在具有最小或“刚好的”操作系统和/或具有虚拟化显示器的虚拟化计算系统的计算设备处。此外,覆盖引擎330可以是托管在设备处的主软件应用。
[0053] 图4是根据示例的包括覆盖引擎430的计算系统400的框图,计算系统400可实现为硬件、软件或其结合。计算系统400可包括处理器404、显示处理器410、以及例如易失性存储器406和/或非易失性存储器405的存储资源,用于执行存储在有形的非暂时性介质(例如,易失性存储器406、非易失性存储器405、和/或非暂时性计算机可读介质450)中的指令。非暂时性计算机可读介质450可具有存储在其上且可由处理器404和/或显示处理器410执行以实现根据本示例的覆盖引擎430的计算机可读指令452。
[0054] 机器(例如,计算系统400)可包括和/或接受有形的非暂时性计算机可读介质450,用于经由输入设备401存储计算机可读指令集452(例如,软件)。如本文所用的,处理器404和/或显示处理器410可包括一个或多个处理器,例如并行处理系统。存储器406可包括可由处理器404和/或显示处理器410寻址以执行计算机可读指令的存储器。显示处理器410可包括可加载有指令的其自己的分立的显示存储器(例如,图形存储器)。计算机可读介质450可包括可由输入设备401读取的易失性和/或非易失性存储器,例如随机存取存储器(RAM)、磁存储器(例如,硬盘、软盘、和/或磁带存储器)、固态硬盘驱动(SSD)、闪存、相变存储器等。在一些实施例中,非易性存储器405可为本地或远程数据库,包括多个物理的非易失性存储设备。非易失性存储器405可包括:并行AT附接(PATA)接口、串行AT附接(SATA)接口、小型计算机系统(SCSI)接口、网络(例如,以太网、光纤信道、无线宽带、互联网小型计算机系统接口(iSCSI)、存储域网络(SAN)、或网络文件系统(NFS))接口、通用串行总线(USB)接口、或其他存储设备接口。显示处理器410还可包括其他形式的存储器,包括非易失性随机存取存储器(NVRAM)、电池备份随机存取存储器(RAM)、相变存储器,等等。
[0055] 处理器404可控制计算系统400的整体运行。处理器404可连接至存储控制器407,存储控制器407可从易失性存储器406(例如,随机存取存储器(RAM))读取数据和/或向易失性存储器406写入数据。处理器404可连接至总线,以提供处理器404、网络接口409、显示处理器410、以及计算系统400的其他部分之间的通信。非易失性存储器405可提供计算系统400的永久数据存储。此外,网络接口409可用于通信,例如以接收和/或提供(可经由例如存储器或计算机可读指令的其他技术接收/提供的)源数据和/或目的数据。
[0056] 计算系统400可包括具有例如处理器、状态机、ASIC、控制器、和/或类似机器的控制电路的计算设备。如本文所用的,不定冠词“一”可指示一个或超过一个所命名的对象。因此,例如,“一处理器”可包括诸如多核处理器、集群、或并行处理结构中的一个或超过一个处理器。
[0057] 图5是根据示例的包括覆盖引擎500的计算系统501的框图。源数据502可经由源接口507进行交互,以识别源数据502和/或提供数据对象503。覆盖引擎500可获取数据对象530并提供最终数据504。覆盖引擎500可包括变换器510以及(例如,来自覆盖库529的)覆盖
520。覆盖库529可基于管理员用户界面(UI)506进行交互。变换器可由覆盖引擎500应用,以获取从结构解耦的数据对象,且覆盖引擎500可对提取的数据对象530应用覆盖520,以提供最终数据504。
[0058] 覆盖引擎500可在任何系统上实施,包括本地计算系统、虚拟系统、远程服务器,等。覆盖引擎500用于与例如外部/网络服务、专家引用数据等的各种源数据502交互,并使用各种源数据502。源接口507使能用于选择瞄准什么源数据502的可定制技术。那些源数据502可由其他所有者控制,或很难在源处进行修改,且覆盖引擎500是使得源数据502更可消费且更便于获取最终数据504的模块。例如,覆盖引擎500可与能满足例如客户需求的90%的源数据502交互,但可能该源数据502太慢而不能实现改变,或在某些区域不那么合适或在客户使用源数据502之前需要以某种方式添加、清理、和/或增强。覆盖引擎500使能这种场景。
[0059] 覆盖引擎500可能包括‘被插入’以用于在处理各种源数据502(例如,对于每种类型的可能‘脏’的源数据)时使用的变换器510的多个实现方式。覆盖引擎500可根据下面的示例操作:
[0060] 1.获取对应于源数据502的变换器510
[0061] 2.在变换器510上调用‘拆分’操作,使得变换器510可从源数据502提取数据对象530的集合。数据对象530可以是用于从已视为适于覆盖的源数据502采集数据的元素的构造。数据对象530可合并适用于源数据502的格式的识别模式,使得在期望时数据对象530可‘被重整’回源数据502的结构。
[0062] 3.对数据对象530的集合实施覆盖匹配/修改(例如,改变/扩展)(例如,覆盖520的应用)
[0063] 4.在变换器510上调用‘连接’操作,并向调用器返回从连接操作返回的任何类型的对象(例如,最终数据504)。
[0064] 在示例中,变换器510的接口可用java语言编程,如下。在替代示例中,任意合适的编程语言可用于表达这些概念:
[0065]
[0066]
[0067] 图6是根据示例的包括变换器610和覆盖620的系统600的框图。源数据602示出为具有一种结构,且变换器610可实施拆分操作,以将数据对象630从该结构分离,以提供平面数据。系统/引擎600可应用变换器610,且可应用覆盖620,以实现修改的数据对象630’。系统600可应用变换器610,以实施连接操作,从而重整数据对象630’为具有结构,如最终数据604所示出的。
[0068] 源数据602在其数据值之间包括结构关系。在示例中,源数据602可对应于天气服务数据,在该数据中包括国家、地区、等的节点。这些关系可以以可重复多次的图形形式采集,例如,作为父子关系。由于存在与遍历图形/结构关联的开销,因此如果需要遍历图形结构以实施修改,则可能影响覆盖620的应用。因此,源变换器610可解构/平面化源数据602,以通过实施拆分操作从源数据602去除结构/形式(即,图形)。平面化的数据结构可用于应用覆盖620,而不需要覆盖620对结构进行处理。变换器610可通过维持在拆分操作期间处理的初始结构的知识来重建图形结构。在示例中,树数据结构可分解成待修改并重整回树结构的列表。可使用其他类型的结构,例如链表、阵列,等。
[0069] 数据对象630可包括可用于匹配数据对象630、修改数据对象630、以及用于其他好处的各种属性。在图6的示例中,属性可示出为包括源Id/地址,但可包括任何键/值对或其他属性的集合。源Id/地址可用于标识数据的结构,且可对应于1/2/2/1,以表示源数据602的树结构中标为‘4’的盒。数据对象630的键/值对的集合可被匹配到覆盖620,覆盖620可增加或修改该集合。
[0070] 数据对象630不限于单个键/值对,可包括多个键/值对或键/值对的集合。此键/值对集合可表示所识别的源数据602的子集(树图中的块)。覆盖620可通过在包含的键/值对的集合中进行匹配而应用于数据对象630,且可根据覆盖620中的属性修改匹配的数据对象630,以产生修改的数据对象630’。
[0071] 变换器610可实施连接操作,以将数据对象630,630’的集合重整回最终数据604。示例的变换器610不限于简单的重整。示例可仅处理改变或未改变的内容。在示例中,由于源数据602包含一些类的结构,所以变换器610可平面化该结构,覆盖被应用于平面化的结构,且随后系统600(覆盖引擎)请求源变换器重构/解平面化(unflatten)数据对象630,
630’,以包含改变,并将改变重整回结构化数据。
[0072] 因此,变换器610可转换结构化信息,以移除信息对结构的依赖性,以用于应用覆盖620。通过移除对结构的依赖性,通过本示例中示出的拆分操作,变换器可维持如何重构结构并将那些改变重整回数据的知识。系统600使得该结构识别知识能够驻留在单独的模块/程序中,将责任委派给变换器610,以使能处理分立结构和可能伴随源数据602的关联的结构复杂性时的特殊化。
[0073] 因此,源变换器610可精减结构为其可管理的程度,精减到已知的平面化的键/值对(属性名和属性值)对象,以使能覆盖620及其对平面化数据的应用的改善的性能。
[0074] 图7是根据示例的覆盖界面700的框图。示出用于创建覆盖的界面。界面700可包括各种特征,包括覆盖细节721、覆盖动作723、匹配属性722、以及修改属性724。
[0075] 覆盖细节721可包括各种描述性信息段,例如身份、名称、以及方便管理覆盖的描述。此外,覆盖细节721可包括在应用覆盖时使用的信息,例如优先级属性以及计时属性(以供时间盒或其他使用)。
[0076] 覆盖动作723可包括插入、删除、重写,等等。覆盖可与被选择用于指示匹配属性722被满足时覆盖采取的动作的覆盖动作723中的一个关联,且可应用修改属性724。在示例中,覆盖动作723可被选择为“重写”,且覆盖可用修改属性724中指定的新的值重写匹配的属性(如匹配属性722段中指定的)。覆盖动作723可被设置为针对每个覆盖覆盖动作723中的一个选择,使得可使用多个覆盖实现多个覆盖动作723。在替代示例中,多个覆盖操作723可用在单个覆盖中,以响应于匹配属性被满足而完成多个动作。可创建多个覆盖,每个覆盖实施其自身对数据对象的动作。
[0077] 覆盖界面700可用作UI,用于接受被馈送到分析引擎中的覆盖信息,以处理在源处是脏的源信息。可生成第一报告,例如作为不正确数据的结果,且可生成第二报告,用于显示被覆盖修改的正确数据。覆盖界面700可由业务拥有者数据消费者(例如,经由本地系统现场,经由远程网络服务等)可访问,使得报告的生成以及对覆盖进行的管理可由(与搜索公司准备查找数据的端用户消费者相比)最熟悉数据的那些数据消费者实现。
[0078] 在示出覆盖界面700的使用的示例场景中,在软件发布分析报告中存在无效版本时产生支持调用。覆盖调查开始,并识别出针对产品号J8692A支持的版本K.14.92是不正确的。联系并请求源数据提供者(软件团队)从源处的源数据记录中去除该版本。在该修正/更新生效之前(例如,正处理该改变时),使用覆盖界面700创建具有“删除”的覆盖动作723的覆盖。删除覆盖用于移除违规版本,直至数据源提供者已更新了源数据的时刻。源数据提供者已指出,将在2013-01-31前从源数据移除该版本。
[0079] 因此,覆盖界面700可用于插入字段并创建覆盖,以解决源数据的问题,使得端用户即使在源数据提供者已修正源数据之前也可用更新的信息工作。在这样的情况下,排除的覆盖动作用于排除不想要的版本信息。被识别为不正确的匹配属性722是针对产品名:J8692A以及版本:K.14.92的。这样的值将产生满足搜索参数的匹配条件的覆盖,以改写不期望的信息。
[0080] 覆盖细节721可包括开始和结束时间/日期,以确保覆盖的时间盒有效期延至2013-01-31,从而对应于源数据提供者努力更新其引用源数据的日期,使得覆盖照理在该日期之后不需要有效。覆盖可在该时间/日期失效,但如果源数据提供者不能满足此期限,则覆盖可延长或重激活。可替代地,如果数据在源处被修正,则覆盖不应再匹配,因此将不会产生对数据的损害。
[0081] 覆盖可保存到覆盖库,且出现在可应用于给定数据的可用和/或有效覆盖的列表中。一旦已创建、测试并激活覆盖,就可运行评估以确定覆盖是否正确起作用。示例的覆盖应使数据的支持版本部分不包含对应已被排除的版本K.14.92的引用。通过运行报告/评估,满足其匹配属性722的选定覆盖可修改数据,以产生期望的结果,而不需要在源处修改源数据。因此,源数据的消费者可继续使用完全正确的数据运行,而不用担心源数据提供者对数据的所有请求的修复是否是最新的。
[0082] 在替代示例中,覆盖可包括被选为“重写”的覆盖动作723,如下。在发布分析报告(即,指示用于生成分析报告的源数据的问题)中存在无效统一资源定位符(URL)时产生支持调用。覆盖调查开始,并针对产品号J8692A识别版本K.14.92,即引用链接中的超链接是不正确的。联系并请求源数据提供者更新源数据记录中的URL。在处理该改变时,创建重写覆盖(包括覆盖动作723“重写”),以重写违规URL,直至源数据提供者已更新了其记录的时刻。源数据提供者已指出:将在2013-01-31移除该版本。因此,类似于上述示例,可应用覆盖以产生不论源数据提供者何时有办法更新其源数据都没有错误的期望的最终数据。
[0083] 覆盖可包括各种字段,包括如下。Id:覆盖的内部键标识符。在覆盖被保存时填充Id。名称:描述覆盖的目的的简单标题。描述:覆盖可包括详细描述,指为什么创建和/或编辑覆盖,且可引用支持调用的提交者以及覆盖被确定为有效多长时间。源:覆盖可依赖于覆盖的应用将瞄准的特定源数据(例如,以找出将满足匹配属性722的数据对象)。优先级:优先级可指示相对于其他覆盖,覆盖在应用期间的执行时间。基于对覆盖的优先级检查且对比之前执行的覆盖,具有较高优先级的覆盖可随后执行(例如,在较早执行的覆盖之后),可能重写较低优先级的覆盖。优先级可包括1)最低,2)低,3)默认,4)高,以及5)最高,但是,可使用优先级系统/排序。注意到:其他规则/检查可用于解决‘结(tie)’:例如具有相同优先级的两个覆盖碰巧匹配相同的数据段且尝试改写相同属性的情况。时间盒(有效时段-从…到):覆盖可包括激活时段,其确定覆盖被应用于源数据多长时间。覆盖可在数据包括问题时保持有效。一旦在源处解决了数据的问题,则覆盖可被去激活。覆盖的原因:概括为什么创建覆盖的规定原因,例如由于无效框架。
[0084] 参照图8和9,依照本公开的各种示例示出了流程图。流程图表示可与参照之前的图讨论的各种系统和设备结合使用的过程。虽然以特定顺序示出,但本公开目的不在于受限于此。反而,明确地预期各种过程可以以不同的顺序发生,或与除示出的那些之外的其他过程同时执行。
[0085] 图8是根据示例的基于应用覆盖的流程图800。在块810,基于覆盖识别与源数据关联的数据对象。例如,覆盖可包括各种匹配属性,用于搜索源数据中满足匹配属性的至少一部分,并由此识别待修改的数据对象。在块820,应用覆盖,以修改即将被提供为最终数据的数据对象,其中就好像最终数据是被覆盖修改的源数据那样与最终数据进行交互。例如,变换器可实施拆分操作,以将数据对象与源数据的结构分开,覆盖修改可应用于最终的平面数据对象,且变换器可实施连接操作,以将修改的数据对象重整为具有期望的结构(可以或可以不与源数据结构相同)。在块830,由变换器独立于源数据而提供最终数据。例如,最终数据可被提供为改变的调试流,用于馈送回源数据提供者,使得源数据可被修正。最终数据还可被提供为源数据的副本,包括其结构,但被更新为包括在覆盖中指示的修改。
[0086] 图9是根据示例的基于应用覆盖的流程图900。在块910,基于覆盖识别与源数据关联的数据对象。例如,覆盖可包括用于标识要瞄准的源数据的信息,并针对满足覆盖的匹配标准的任何数据对象搜索该源数据。在块920,由变换器实施拆分操作,以从源数据获取与源数据的结构解耦的数据对象。例如,变换器可被定制为识别源数据的特定结构,使得可由变换器在应用覆盖之后对解耦该结构进行反转。在块930,应用覆盖以修改数据对象。例如,覆盖可根据所应用的覆盖的修改属性,对数据对象的至少一部分进行更新、删除、重写、或实施其他修改。在块940,由变换器实施连接操作,以作为最终数据提供被覆盖修改的数据对象。连接操作可基于使用源数据的初始结构或碰巧期望的另一结构之类的结构对修改的数据对象进行重整(例如,用于将改变馈送回源数据,以更新源数据)。在块950,最终数据对象由变换器提供,以就好像该数据对象是被覆盖修改的源数据那样与该数据对象进行交互,而不用修改源数据。例如,不需要修改源数据,原因在于覆盖可以以可用于数据的端用户消费者的格式提供最终数据,由于最终数据以与初始源数据相同的格式出现,但具有期望被覆盖的修正,因此不会意识到已调用了覆盖。
[0087] 本公开目的不在于限于本文示出的各示例,而在于被赋予与本文公开的原理和新的特征一致的最宽的范围。例如,可理解本公开不限于例如计算系统400的特定配置。结合本文公开的各示例描述的各种说明性模块和步骤可被实现为电子硬件、计算机软件、或两者的结合。各示例可使用软件模块、硬件模块、硬件模块或组件、或软件和硬件模块或组件的结合来实现。因此,在示例中,本文描述的示例步骤和/或块中的一个或多个可包括硬件模块或组件。在另一示例中,本文描述的步骤和/或块中的一个或多个可包括存储在非暂时性计算机可读存储介质上的可由处理器执行的软件代码
[0088] 为了清楚地说明硬件和软件的此可互换性,已依照其功能(例如,显示处理器驱动430)概括地描述了各种说明性组件、块、模块、及步骤。这种功能是实现为硬件还是软件依赖于特定应用和针对整个系统所选择的设计约束。本领域的技术人员可以针对每种特定应用以各种方式实现所描述的功能,但这种实现方式决定不应被理解为脱离本公开的范围。
相关专利内容
标题 发布/更新时间 阅读量
一种修改中性笔 2020-05-12 964
一种修改纸 2020-05-11 229
OCT图像修改 2020-05-11 363
业务流修改流程 2020-05-13 12
一种面型修改油 2020-05-13 128
定向声音修改 2020-05-13 700
修改液笔 2020-05-11 986
修改带 2020-05-11 618
修改设备通知 2020-05-13 408
错字修改笔 2020-05-12 370
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈