CN107430613A - 知识密集型数据处理系统 - Google Patents
知识密集型数据处理系统 Download PDFInfo
- Publication number
- CN107430613A CN107430613A CN201680012718.XA CN201680012718A CN107430613A CN 107430613 A CN107430613 A CN 107430613A CN 201680012718 A CN201680012718 A CN 201680012718A CN 107430613 A CN107430613 A CN 107430613A
- Authority
- CN
- China
- Prior art keywords
- data
- inquiry
- time
- conversion
- data object
- 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.)
- Granted
Links
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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例提供了通过使用大数据和相关技术从低价值数据中捕获和提取高价值数据来管理和处理大量复杂和高速数据的系统和方法。本文描述的说明性数据库系统可以在提取或生成高价值数据的同时收集并处理数据。高价值数据可以由提供诸如多时态、来源、闪回和注册查询之类的功能的数据库处理。在一些示例中,可以实现计算模型和系统,以将知识和过程管理方面与数据驱动的情况感知计算系统中的近实时数据处理框架相结合。
Description
交叉引用
本申请要求于2015年3月23日提交的标题为“KNOWLEDGE-INTENSIVE DATAPROCESSING SYSTEM”的美国专利申请序列No.14/665,171的权益,该美国专利申请的完整内容在此通过引用并入本文。
背景技术
复杂应用(诸如管理云服务、监督履行中心、管理网格、推进科学或治疗患者等)都可能要求应用管理大量数据结构良好的过程。例如,对于服务级别协议(SLA)的符合性对于许多云操作来说是关键要求。这种符合性可能要求对关键性能度量的连续监视和预测诊断能力,以检测即将发生的SLA违规,以便使得操作能够规避SLA违规,或者在违规发生时提供较快的问题解决。这些云操作可能必须监视、诊断和管理在运营商和/或客户的私有云、公有云和混合云中的数据中心、网络、服务器机器、虚拟机、操作系统、数据库、中间件、应用等的数百万个硬件和软件组件。
传统信息技术(IT)操作的反应性故障检测和手动诊断技术可能过于劳动密集、需要广泛的领域专业知识并且响应可能太晚,从而导致涉及重新启动系统的大部分而不是隔离和修复故障组件的不相称的响应,并且可能无法针对云适当地缩放。有效的云系统操作可能需要对重要的生命体征的连续测量、时间序列分析、多变量系统状态模型、系统响应模型、预测性异常检测、基于机器学习的分类、自动诊断和预后(prognosis)、决策支持和各种控制能力。
发明内容
本文描述的各方面提供了用于通过使用大数据和相关技术从低价值数据捕获并提取高价值数据来管理和处理大量复杂的高容量和高速数据的各种技术。本文描述的说明性数据库系统可以在提取或生成高价值数据的同时收集和处理数据。高价值数据可以由提供诸如多时态(multi-temporality)、来源、闪回和注册查询之类的功能的数据库来处理。在一些示例中,可以实现计算模型和系统,以将知识和过程管理方面与数据驱动的情境感知计算系统中的近实时数据处理框架相结合。
在一些实施例中,本文描述的技术可以维护和更新多时态数据库、评估关于多时态数据库的过滤器查询、以及基于过滤器查询评估来调用数据变换过程。来自数据流、大数据技术和其它原始输入数据的输入数据可以被接收并存储在多时态数据库中。可以基于更新后的多时态数据来识别包括诸如表达式过滤器、注册查询、触发器、连续查询通知等之类的数据库构造的过滤器查询。过滤器查询和/或数据事务处理可以基于当前数据状态和一个或多个先前数据状态来执行,并且多个执行之间的差异可以被评估。与不同时间和数据状态对应的不同过滤器查询和/或数据事务处理的结果之间的差异可以被用来调用附加数据事务处理和/或循环应用实例。
附图说明
图1是示出根据本发明的一个或多个实施例的数据驱动的变换循环应用的执行模型的示例性实例的框图。
图2是在高级别示出根据本发明的一个或多个实施例的、用于执行数据驱动的应用的基于云的计算机系统的元件的框图。
图3是示出根据本发明的一个或多个实施例的、用于在多时态数据库中基于过滤器查询来调用数据对象变换的过程的流程图。
图4是示出根据本发明的一个或多个实施例的循环数据变换应用的执行的示例性实例的流程图。
图5是示出根据本发明的一个或多个实施例的、用于多时态数据库中的数据项的有效时间集合的图。
图6是示出其中可以实现本发明的各种实施例的示例性分布式系统的组件的框图。
图7是示出由本发明的实施例提供的服务可以通过其作为云服务被提供的系统环境的组件的框图。
图8是示出其中可以实现本发明的实施例的示例性计算机系统的框图。
图9是示出根据本发明的一个或多个实施例的用于管理数据、知识和过程的示例模型的框图。
图10是示出根据本发明的一个或多个实施例的实体模型的框图。
图11A-图11E是示出根据本发明的一个或多个实施例的CARE定义示例的框图。
图12是示出根据本发明的一个或多个实施例的、在示例性KIDS循环中的经注释的FPHD和CARE数据的框图。
图13是示出根据本发明的一个或多个实施例的、跨相关实体集合的各种类型的信息的信息融合的框图。
图14是示出根据本发明的一个或多个实施例的CARE循环的实现的框图。
具体实施方式
在以下描述中,为了解释的目的,阐述了许多具体细节以便提供对本发明的各种实施例的透彻理解。然而,对于本领域技术人员将明显的是,可以在没有这些具体细节中的一些细节的情况下实践本发明的实施例。在其它实例中,公知的结构和设备以框图的形式示出。
随后的描述仅提供示例性的实施例,并且不是旨在限制本公开的范围、适用性或配置。相反,对示例性实施例的随后描述将向本领域技术人员提供用于实现示例性实施例的使能性描述。应当理解,在不背离如所附权利要求中阐述的本发明的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
在以下描述中给出了具体细节以提供对实施例的透彻理解。然而,本领域普通技术人员将理解,可以在没有这些具体细节的情况下实践实施例。例如,电路、系统、网络、过程和其它组件可以被示为以框图的形式的组件,以便不会以不必要的细节使实施例模糊。在其它实例中,公知的电路、过程、算法、结构和技术可以在没有不必要的细节的情况下被示出,以避免使实施例模糊。
而且,应当指出,各种实施例可以被描述为被描绘为流程表、流程图、数据流程图、结构图或框图的过程。虽然流程图可以将操作描述为顺序的过程,但是操作中的许多操作可以被并行或并发地执行。此外,操作的顺序可以被重新布置。过程在它的操作完成时终止,但是可以具有未包括在附图中的附加步骤。过程可以对应于方法、函数、进程(procedure)、子例程、子程序等。当过程对应于函数时,它的终止可以对应于函数返回到调用函数或主函数。
术语“计算机可读介质”包括但不限于非暂态介质,诸如能够存储、包含或携带(一条或多条)指令/或数据的便携式或固定存储设备、光存储设备和各种其它介质。代码段或计算机可执行指令可以表示进程、函数、子程序、程序、例程、子例程、模块、软件包、类、或者指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容耦接到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的手段来传递、转发或传送。
此外,实施例可以由硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合实现。当用软件、固件、中间件或微代码来实现时,用于执行必要任务的程序代码或代码段可以被存储在计算机可读介质中。(一个或多个)处理器可以执行这些必要任务。
本文描述了用于通过使用大数据和相关技术从低价值数据中捕获和提取高值数据来管理和处理大量复杂和高速数据的各种技术(例如,方法、系统、存储可由一个或多个处理器执行的多条指令的非暂态计算机可读存储器等)。在一些实施例中,数据库系统可以在提取或生成高价值数据的同时收集和处理数据。高价值数据可以由提供诸如多时态、来源、闪回和注册查询之类的功能的数据库处理。在一些示例中,计算模型和系统可以被实现以将知识和过程管理方面与数据驱动的情境感知计算系统中的近实时数据处理框架相结合。
本文描述的技术可以维护和更新多时态数据库、评估关于多时态数据库的过滤器查询、以及基于过滤器查询评估来调用数据变换过程。来自数据流、大数据技术和其它原始输入数据的输入数据可以被接收并且存储在多时态数据库中。可以基于更新后的多时态数据来识别过滤器查询,所述过滤器查询包括诸如表达式过滤器、注册查询、触发器、连续查询通知等之类的数据库构造。过滤器查询和/或数据事务处理可以基于当前数据状态和一个或多个先前数据状态来执行,并且可以评估多个执行之间的差异。与不同时间和数据状态对应的不同过滤器查询和/或数据事务处理的结果之间的差异可以被用来调用附加数据事务处理和/或循环应用实例。
现在参考图1,示出了用于数据驱动的变换循环应用的执行模型的框图。执行模型100可以由数据库系统或其它计算系统内的执行引擎实现。如下所述,这样的执行引擎可以包括被配置为实现数据驱动的过程以实例化、跟踪和控制执行模型100内的各种组件的专用硬件、软件和/或网络组件。
在这个示例中,执行模型100包括三个不同类别的对象:数据对象、变换对象和过滤器。数据对象可以表示结构化的、半结构化的和非结构化的原始内容,诸如事实、事件流、关系、可扩展标记语言(XML)文档、文本等。数据对象还可以表示元数据(诸如类别、标签、关系和容器)和/或可以表示通过获取过程捕获的内容(诸如用户界面表单、处方表单、通知模板等)。变换对象可以表示算法、脚本、过程、查询、资源描述框架(RDF)公理、生产规则、决策树、支持向量机、神经网络、贝叶斯网络、隐马尔可夫(Hidden Markov)模型、霍普菲尔德(Hopfield)模型、隐性人类知识以及各种类型的变换数据。变换对象包括可以被应用于数据对象以便添加、改变或删除那些数据对象的数据。过滤器可以与可以在一个或多个数据对象和变换对象的上下文中被评估(evaluate)的路径表达式和/或布尔表达式对应。例如,过滤器可以包括检测数据对象和/或变换对象的变化实例的数据库系统中的一个或多个注册查询。这样的过滤器可以使用多时态或双时态数据库系统之上的数据库触发器、实时日志分析和/或注册查询来实现。
如图1中所示,说明性执行模型100可以与循环数据变换应用对应,其可以是潜在地迭代的和/或无限的(indefinite)过程循环。在这个示例和其它相关实施例中,每种不同类型的数据对象可以表示具有不同属性或特性的不同数据,并且每个不同的变换对象类型可以是用于将一种数据对象类型变换为另一种数据对象类型的不同算法或系统的实现。虽然说明性执行模型100包括四种类型的数据对象和四种类型的变换对象,但是应当理解,在不同的实现中可以使用不同数量的数据对象和变换对象(例如,各自为2个数据对象和2个变换对象、2个数据对象和2个变换对象、…、5个数据对象和5个变换对象)。此外,应当理解的是,可以在不同的实施例中实现更多或更少的过滤器对象,并且在某些实施例中过滤器中的一些或全部过滤器可以是可选的。
在执行模型100中,类型1数据对象103、104、120可以表示到计算系统中的原始输入。这样的输入可以包括例如来自Java虚拟机(JVM)中的垃圾收集器的数据流、来自周期性线程转储的堆栈踪迹、存储器堆转储、数据库AWR报告等。类型1数据对象103、104、120可以是非结构化对话、表单输入、从设备收集的定量测量结果、事件流数据、XML文档或文本文档等。类型2数据对象107、108、110可以表示基于类型1数据对象计算的预测或观察的定性解释。在一些实施例中,类型2数据对象107、108、110可以包括以下四个不同数据对象子类型中的一个或多个:观察对象、预测对象、规范(norm)对象和目标对象。观察对象可以将事实的个体表示为离散值。例如,用于数据库连接事实的线程阻塞的强度(数字)可以被个体化(individuate)为具有定性值(诸如正常、被守护、严重或关键)的观察对象。预测对象可以表示从变化的条件预测的定性值。预测对象可以表示由观察模型(例如通过模拟)内插或外推的定性值。规范对象可以表示历史基线的定性值。目标对象可以表示目标定性值,所述目标定性值的获得可以被寻求以用于观察对象和预测对象,以便实现总体目标和决议。类型3数据对象112和114可以表示基于类型2数据对象计算的诊断或原因(例如,观察和/或预测)。例如,导致线程类的线程强度在两个服务器的群集中的第一服务器中被分类为处于高压状态(强度明显高于规范)并且在第二服务器中被分类为处于低压状态(强度明显低于规范)的负载平衡器的故障可以是类型3数据对象112或114的特定于域的示例。类型4数据对象116和118可以表示基于类型3数据对象计算的、要执行的活动的集合。例如,用于取得堆转储或配置存储器管理策略的指令集合可以是类型4数据对象116或118的特定于域的示例。
每个变换对象可以表示通过在计算机系统上的硬件和软件的执行被体现为自动化软件程序、算法、技术、过程或方法的知识的抽象。像数据对象一样,变换对象也可以被存储在数据库系统、基于文件的存储系统或任何数据储存器(store)中。变换对象可以被存储、检索以及应用于各种数据对象,以计算执行模型内的不同类型的数据。
例如,在执行模型100中,类型1变换对象105和106可以体现用于基于类型1数据对象(例如,通过生成从与类型1数据对象对应的原始数据的池或流中取得的重要数据的紧凑表示)来计算类型2数据对象的技术。类型2变换对象111可以体现用于基于类型2数据对象来计算类型3数据对象的技术。类型3变换对象115可以体现用于基于类型3数据对象来计算类型4数据对象的技术。例如,类型3变换对象115可以包括用于基于观察或预测偏离规范多少来开发指示(directives)的技术。类型4变换对象119可以体现用于基于类型4数据对象来计算类型1数据对象的技术。例如,类型4变换对象119可以被设计为响应(例如,在类型3数据对象中的)假设并且还被设计为捕获附加的原始输入(例如,类型1数据对象)。
执行模型100中的各个过滤器对象101、102、109、113、117可以与数据对象(例如,存储在数据库或其它存储系统中的数据)类似地、或与变换对象(例如,自动化软件程序、算法、技术等)类似地、或作为数据和编程的组合被实现。在一些情况下,过滤器对象101、102、109、113、117可以实现用于确定数据对象的多少变化足以调用变换对象的最小数据变化阈值。附加地或可替代地,过滤器对象101、102、109、113、117可以通过用于确定数据对象的什么性质足以调用变换对象的数据的组合、条件或极性来实现最小置信度。如上面所指出的,过滤器可以包括在多时态或双时态数据库系统之上的数据库触发器、实时日志分析和/或注册查询中的一个或多个。
数据对象和变换对象可以实现用于从数据对象中去除噪声、检测和提取离群数据、检测和校正季节性趋势等的机制。例如,季节性趋势变换器可以检测持久数据对象的数据变化中的季节性增长趋势,并且可以更新平滑的强度和平滑的强度增长率,以预测强度的增长趋势。在这个示例中,预测强度的归一化残差可以被用作用于检测离群值的变换器,其中离群值表示何时测量的强度偏离预期强度。此外,多个独立的变换器可以并行执行,以跟踪以不同时间尺度运行的数据估计。依赖于时间尺度,这样的并行的变换器可以充当用于预测季节性趋势、长期容量需求、短期终点(存储器不足(out-of-memory)错误)等的多个策略。
像数据对象一样,变换对象也可以在数据驱动的监督控制循环的执行期间动态改变。在一些实施例中,监督控制循环可以执行各种技术(例如,非线性回归),以估计用于系统中的Java虚拟机的实例的变换参数和季节性因素。在这样的示例中,监督控制器循环可以将变换参数和季节性因素推送到变换对象,以便更新嵌入在(例如,使用MBean以及Hotspot或JRockit仪器的)每个Java虚拟机中嵌入的一个或多个变换的变换标准/编程。
循环数据驱动的应用(诸如由执行模型100体现的应用)可以由一个或多个执行引擎发起、跟踪和控制。执行引擎可以例如实例化执行模型100中示出的对象中的每个对象,并且然后执行和监视要由每个对象执行的各种过程,以及每当对数据对象、变换对象或过滤器对象进行动态更新时控制执行过程。在各种对象(例如,经由面向对象的类)的实例化之后,执行引擎可以检测执行模型100中的数据对象中的一个数据对象内的新的和/或更新的数据。在检测到新的或更新的数据之后,执行引擎可以调用适当的过滤器对象,或者过滤器(例如,表达式过滤器或重复查询)可以被自动执行以分析和/或修改数据,并且确定是否应当调用后续的变换对象。如果必要,那么执行引擎然后可以调用变换对象来更新循环中的下一个下游数据对象,例如,基于对类型1数据对象的更新来更新类型2数据对象。以这种方式,循环应用可以继续,直到过滤器或变换对象确定后续的数据对象不应当被更新为止。
此外,多时态数据库存储库121可以包含低价值数据和高价值数据两者。例如,存储库121可以包含与(FSD∪特征)对应的数据。过滤器101、102、109、113、117(其还可以称为守护(guard))可以查询存储库121中的数据,以检索当前数据状态和/或先前的数据状态,以便执行过滤器标准或过程以及评估数据库中处于不同时间状态的标准/过程之间的差异。
此外,在循环数据驱动的应用的执行期间,附加的数据更新可以在任何时间对任何数据对象发生。例如,变换对象115可以正在执行中更新数据对象116,同时分开的数据对象103经由不同过程的数据库事务、新数据流数据的到达等被动态更新。在这个示例中,执行引擎可以使变换对象115的执行完成,然后调用过滤器101和/或变换对象105,从而实际上将循环应用的指令指针改变到执行模型100的完全不同的部分。在另一个示例中,执行引擎可以在不等待变换对象115的执行完成的情况下调用过滤器101和/或变换对象105,从而实际上允许循环应用的多个指令指针在执行模型100的不同部分中异步工作。执行模型100中的数据对象103、104、110、114和118表示状态的一致视图,而数据更新可以在任何时间对任何其它数据对象发生。
在执行模型100的各种实现中,不同的数据对象、变换对象和/或过滤器对象可以被存储在数据库或其它数据储存器中,并且各种数据库技术可以被用来实现执行模型100和本文公开的其它技术。例如,可以为执行模型100中的对象类别中的一些或全部建立面向对象的类,例如数据对象类和变换对象类。特定于类型的子类可以从所实现的父类中的每个父类派生,诸如类型1数据对象子类、类型2数据对象子类、类型3数据对象子类和类型4数据对象子类,以及类型1变换对象子类、类型2变换对象子类、类型3变换对象子类和类型4变换对象子类。每个类和子类实现可以被给予适合于它们适用的对象的类别和类型的标记和属性。例如,执行引擎可以实例化类型1数据对象,并且可以在其中存储与该数据对象相关的属性的值。类似地,可以实例化类型1变换对象,以存储与该变换对象相关的属性的值,等等。这些对象定义中的每个对象定义以及这些对象的所有实例可以被存储在与一个或多个应用相关联的数据储存器中。例如,数据驱动的变换循环应用的执行引擎可以使用各种数据库技术来存储数据对象、变换对象和过滤器对象的定义和实例。可以使用双时态数据库和/或多时态数据库,以便维护每个对象的每个实例的多个版本,以使得可以检索每个实例的历史。此外,在一些实施例中,这些对象(类、子类等的实例化)之间的映射还可以由执行引擎生成和存储。
在一些实施例中,代理对象(或行动者对象)还可以被包括在执行模型100中和/或可以由执行引擎生成和控制。代理对象可以与自动化的代理对应,或者可以表示个人、个人的组或组织。代理对象可以被实例化为面向对象的编程对象,并且可以拥有诸如简档和存在上下文(presence context)之类的属性。自动化的代理可以是封装算法过程的软件,算法过程诸如举例来说有工作流、模拟、支持向量机、神经网络和贝叶斯网络。自动化的代理可以拥有指示代理的能力的简档。代理对象可以具有诸如组织上下文、技能简档、知识简档、兴趣简档、偏好简档等之类的属性。这种知识简档可以指示与代理对象相关联但是系统可能不能以编码方式拥有的隐性(tacit)知识。当代理对象表示个人时,那么代理对象可以为由该对象表示的个人指定实时存在和/或实时活动。执行引擎可以基于代理对象的属性将代理对象指派给特定变换对象的未决执行。
如下面进一步讨论的,执行模型100可以实现可以被用来执行变换(比如分类、评估、决议和制定)的专用算法的演化,以变换世界的状态或数据。变换对象可以表示可能不一定直接一起工作的专用算法。通过将变换对象的不同算法封装为经由归一化数据模型进行交互的各种类型的变换对象(例如,类型1-4变换对象),数据驱动的过程的执行引擎可以允许这些算法被独立开发并且被集成到能够作为公共应用演化的单个系统中。系统内的不同算法可以彼此补充和加强。此外,执行模型100中的组件中的一些组件可以包括与代理对象的实例交互的用户界面和消息传送系统。执行模型100通过连续查询数据对象实例的变化以及发起依赖的变换对象的执行来驱动交互。此外,变换对象的升级(例如,更新的算法、新的软件版本发行等)可以触发已经对其应用了该变换对象中的变换的数据对象实例的追溯处理。在这种情况下,一旦新的/更新后的变换对象被部署,变换对象中的变换就可以被应用。
现在参考图2,示出了图示用于执行数据驱动的应用的计算机系统的框图。在这个示例中示出的系统200可以表示用于基于云的系统的高级计算机体系架构,该基于云的系统被用来实现和管理被设计为处理大数据分析问题的数据驱动的应用的执行。这些问题可以包括非常大的数据量、高的数据速度、复杂的数据种类,并且还可能要求近实时的复杂事件处理能力。在这个示例中,系统200与用于使用HADOOP软件框架来发起和管理数据驱动应用的系统对应。应当理解的是,在其它示例中可以使用其它软件框架而不是HADOOP。示例系统200中示出的各种组件(包括双时态数据库210、编排引擎220、资源管理器230和计算群集240)可以在包括硬件、软件和网络组件的专用组合的个人计算机系统或共享计算机系统中被实现。
在这个示例中,双时态数据库210可以在包括本文描述的数据库硬件、软件和网络组件的各种数据库服务器和技术上实现。对于使用双时态(或其它多时态)数据库模式的数据库210,存储在数据库210内的各种不同对象(例如,数据对象、变换对象、过滤器查询等)可以用数据变得持久或变得可恢复并且对其它可恢复事务可见的事务时间来加时间戳并且随后使用双时态有效时间和事务时间查询被召回(recall)。基于双时态数据库210中的这些具体化关系,可以针对数据中表现的任何事件(诸如对数据对象、变换对象、过滤器等的更新)来确定导致变化的原因。例如,双时态数据库210中的关系可以示出在特定时间间隔期间类型1数据的实例被分类为一种类型的问题,并且在大数据系统内规定了特定的修复以解决该问题。在这个示例中,双时态数据库210可以使得按照确定和规定每个修复的时间次序来对编排引擎220或其它系统组件启用多个不同的规定修复,以便确定为什么发生数据的变化。在其它实施例中,可以使用其它多时态数据库,例如,包括与决策时间对应的数据项的附加时间线或时间数据的多时态数据库。
可以实现编排引擎220,以使用专用硬件、软件和网络组件的组合来创建和管理用于大数据分析系统的应用。编排引擎(或执行引擎)220可以在与双时态数据库210相同的数据库系统内实现,或者可以被实现为分开的控制服务器。在任一情况下,编排引擎220可以被设计为利用与双时态数据库210相关联的数据库技术,诸如复杂时态注册、闪回查询和表达式过滤器。编排引擎220可以向诸如HADOOP资源管理器230(例如,HADOOP YARN资源管理器)之类的资源管理器指派数据变换循环应用。作为响应,HADOOP资源管理器230可以选择具有HADOOP群集240的计算节点,并且可以为所选择的HADOOP群集240内的数据变换循环应用启动应用主机(AM)241。在一些情况下,应用主机241可以针对为循环应用运行数据变换的容器与HADOOP资源管理器230协商。在大数据分析的背景下,这样的数据变换活动可以包括例如机器学习活动、使用大量原始数据的分类活动、贝叶斯信念网络(BBN)引擎、非线性回归过程、季节性趋势过程等。在一些实施例中,用于数据变换循环应用的应用主机241可以是长时间运行的过程。然而,每当用于应用的循环过程(例如,执行模型100)的执行被关闭或暂停时,HADOOP群集240内的容器就可以被重用。编排引擎220可以管理用于每个数据变换循环应用的每个应用主机241的状态,并且每个应用主机241又管理它相关联的数据变换实例242的状态。应用主机241和数据变换实例242可以使一个或多个高价值数据对象与双时态数据库210中的对应数据同步。
在某些示例中,系统200可以与基于云的SaaS系统的大数据分析应用对应。例如,公有云中的每个租户应用SaaS系统可以被实现为pod,或者使用一种或多种虚拟化技术的虚拟机和数据库实例的组装。应用SaaS的pod规模模型可以实现机器数据的逻辑群集,并且分析可以利用数据的位置来在同一个pod中的数据流之间进行连接和关联。在这种环境下,随着pod的数量持续增长,每pod的数据流的数量(每个传感器一个)可能增长。数据流可以包括例如WebLogic服务器日志、Java虚拟机(JVM)垃圾收集器日志、JVM线程转储日志、HTTP访问日志、操作系统观察者日志、网络设备日志、数据库日志等。数据流可以被存储在例如HBase表和HDFS文件夹的集合中。在一些示例中,Hbase表中的区域可以使用行密钥前缀中的pod名称的32-十六进制数MD5摘要进行拆分,以在同一HBase区域服务器中并置(collocate)每个pod的所有数据流。当列单元格中的数据流增长到大于阈值时,它可以被卸载到HDFS文件。提取变换加载(ETL)操作可以由MapReduce中的映射器执行,并且利用映射器和HBase区域服务器之间的数据本地亲和性(affinity),用于同一个pod的HDFS文件和HBase区域因此可以被共同定位在相同的数据节点或HBase区域服务器中。在这个示例中描述的数据组织可以在用于循环应用、数据变换操作,HBase区域和HDFS数据节点的应用主机241之间实现数据本地计算和相对小百分比的机架本地计算。此外,在这些示例中,编排引擎220和应用主机241可以使用动态实体模型来选择具有HADOOP群集240的计算节点来启动数据本地的应用主机241和容器。
上述示例中的应用SaaS的动态实体模型可以表示客户pod、部署在虚拟机中的应用、部署在服务器群集中的物理计算节点中的虚拟机、部署在服务器中的物理数据库节点中的数据库以及通过线程段、线程类和/或线程类之间的依赖关系在周期性线程转储中的高强度堆栈踪迹的动态分类所发现的实体之间的关系。依赖关系可以捕获线程之间的线程间和进程间通信。以这种方式,堆栈踪迹分类模型可以被添加到实体模型。如上文所描述的,动态实体模型可以由时态数据库(例如,双时态或其它多时态数据库)来管理。
现在参考图3,示出了图示基于多时态数据库中的过滤器查询来对数据对象调用变换过程的流程图。如下文所描述的,这个过程中的步骤可以由系统200中的一个或多个组件(诸如双时态数据库210、编排引擎220和资源管理器230等)执行。然而,应当理解的是,本文描述的技术(包括维护和更新多时态数据库、评估关于多时态数据库的过滤器查询以及基于过滤器查询评估来调用变换过程)不需要限于上文描述的具体的系统和硬件实现,而是可以在包括硬件、软件和网络组件的其它组合的其它硬件和系统环境内执行。另外,虽然示例过程300是基于数据库数据的更新来执行的,但是类似的过程和技术可以响应于变换对象和/或过滤器对象的更新来执行。
在步骤301中,数据库更新可以例如在与循环数据驱动的应用相关联的数据储存器和/或数据管理设备处被接收。例如,包括一个或多个数据更新的数据库事务可以在双时态数据库210上被发起,或者经由编排引擎220、HADOOP群集240或其它数据源被接收。在步骤301中接收的更新后的数据可以包括与上文参考图1中的数据对象讨论的各种数据类型中的任何数据类型对应的结构化、非结构化和/或半结构化数据(例如,非结构化对话、表单输入、从设备收集的定量测量结果、事件流数据、XML文档或文本文档)。在各种实现中,所接收的数据可以表示例如来自Java虚拟机中的垃圾收集器的数据流、来自周期性线程转储的堆栈踪迹、存储器堆转储、数据库AWR报告等。
在步骤302中,一个或多个多时态数据库可以被更新,以反映在步骤301中接收的数据更新。例如,在双时态数据库210中,可以将更新后的数据插入到适当的数据库结构中,该数据结构包括用于更新后的数据的事务时间和/或有效时间。与接收到的数据相关联的事务时间可以与数据被认为是真实的一个或多个时间范围对应,而有效时间可以与接收到的数据相对于模型化系统的实际情况确实是真实的时间范围对应。事务时间和有效时间中的任何一个或两者可以被包括在步骤301中接收的数据中。可替代地,可以例如由编排引擎220为接收到的数据动态确定事务时间和/或有效时间。例如,在一些情况下,接收到的数据的有效时间可以由与数据相关联的对象的生命周期、由数据库的生命周期界定。此外,某些对象可以包括多个有效时间。例如,特征向量可以包括具有不同的并且潜在重叠的有效时间的多个特征。在这个示例中,用于特征向量的有效时间可以是用于它的所有相关联特征的有效时间的交集。
在一些实施例中,本文描述的系统、软件框架和/或执行模型可以跟踪每个数据对象(例如,图1中的所有类型1-4数据对象)的有效时间以及数据变得持久或变得可恢复并且对其它可恢复事务可见的事务时间。通过跟踪有效时间和事务二者,这些系统可以允许针对不同时间确定数据对象实例的数据值,以及确定对数据对象实例的任何先前变化的原因。例如,对于类型4数据对象(例如,指示类型数据对象)的实例,类型4数据对象所基于的不同的类型1-3数据对象可以在形式上与类型4数据对象相关。因此,编排引擎220或其它系统组件可以对于类型4数据对象追溯地确定在生成类型4数据对象的当前版本时哪些相关联的类型1-3数据对象可用。随着时间的推移,新数据可以以对执行模型中的各种类型1-4数据对象的更新的形式可用,并且潜在地是循环应用中先前生成的指示和类似数据的结果。当新数据变得可用(例如,变得可恢复并且对其它可恢复事务可见)时,这种新数据可以追溯地被应用到直到先前有效时间为止的在不同事务时间的不同对象/数据状态。
因此,在基于先前数据执行后续变换过程之后在数据中发生的任何改变/更新可以被分离为非因果的,并且可以使用数据改变的事务时间来描述,即使数据改变可以被追溯地应用直到与变换过程形式上相关的有效时间为止。可能已经影响数据变换过程的执行的后来获取的数据更新(如果这些数据更新先前已经可用的话)可以被清楚地识别为对于数据变换过程是非因果的。这样的后来获取的数据更新可以从各种数据视图、报告或分析中被过滤,以使得关于数据变换过程的结果所基于的底层数据不存在混淆。在任何时刻,系统可以计算特定数据变换过程为什么被发起以及数据变换过程可用和由数据变换过程使用的底层数据(例如,一个或多个类型1数据对象实例),以生成结果(例如,更新后的类型2数据对象实例)。这些追溯分析可以通过在数据随后在稍后的事务时间被修改之前召回到先前事务时间为止的各种数据来执行。在某些实施例中,这种双时态来源能力可以被用来满足某些监管要求。
在步骤303中,基于在步骤302中对多时态数据库执行的更新来识别一个或多个过滤器查询。过滤器查询可以包括被用来跟踪和管理多时态数据库内的变化的数据的状态的任何数量的技术和机制。例如,过滤器查询可以包括双时态数据库210内的诸如表达式过滤器、注册查询、触发器、连续查询通知等之类的数据库构造。此外,过滤器查询可以包括在编排引擎220和/或其它系统组件内实现的前向链接和/或后向链接数据提取和规则系统。这种前向链接和/或后向链接数据可以集成多个推理引擎和/或时序算法。一些过滤器查询(诸如表达式过滤器和注册查询)可以完全在一个或多个数据库系统内实现,而其它过滤器查询可以部分地或全部地在数据库之外实现,诸如在编排引擎220或其它系统部件内执行的数据库访问软件。
在这个示例中,过滤器查询可以被设计和实现为响应于多时态数据库中的底层数据改变的集合来提供通知和/或执行某些过程。在一些情况下,过滤器查询可以对应于可以与关系数据库表的一个或多个列相关联的条件表达式。例如,过滤器查询可以将在步骤303中来自数据更新的传入数据与存储在数据库列中的表达式匹配,以识别感兴趣的行。在一些情况下,过滤器查询可以与简化的SQL查询对应,其中这些简化的SQL查询每当数据库中的SQL查询的底层数据改变时提供通知或执行功能。为了说明,如果SQL查询的结果依赖于数据库内的四个单独的底层数据元素,那么过滤器查询可以在数据库内的这些底层数据元素中的任何底层数据元素改变的任何时候生成通知或执行过程。在一些情况下,过滤器查询可能无法肯定地确定SQL查询或其它数据驱动过程的结果是否已改变,而是只能确定该结果可能潜在地发生改变,因为结果所依赖的底层数据已改变。在其它情况下,过滤器查询可以确定SQL查询或其它数据驱动过程的输出在下一次利用更新后的数据来执行该查询或过程时将肯定改变。
在步骤304中,在识别出与多时态数据库中更新后的数据相关联的一个或多个过滤器查询之后,可以使用多时态数据的当前时间状态来执行过滤器查询。因此,过滤器查询的执行可以基于在步骤301中接收到的更新后的数据以及多时态数据库内的其它当前数据状态。
在步骤305中,可以使用多时态数据的先前时间状态来执行与在步骤304中执行的相同的一个或多个过滤器查询。在一些情况下,先前的时间状态可以与先前执行的相关联的变换动作(或过程)的先前时间对应。如上面所讨论的,过滤器查询可以与变换动作或其它自动化过程相关联。例如,在示例执行模型100中,过滤器查询101和102可以充当守护,以分别确定变换对象105和106何时被调用。类似地,过滤器查询109可以确定变换对象111何时被调用,等等。因此,对于与数据变换对象的实例相关联的过滤器查询,在步骤305中确定的先前时间状态可能是数据变换对象被执行的最近时间。在步骤305中在确定用于过滤器查询的执行的(一个或多个)先前时间状态之后,可以使用存储在数据库中的双时态数据(例如,事务时间和有效时间)来生成到先前时间为止在数据库内的准确数据状态。在一些情况下,在步骤305中可能不执行过滤器查询,而是可以在步骤305中检索并使用到所确定的先前时间为止过滤器查询的先前执行的结果。
在步骤306中,使用当前时间状态数据执行的一个或多个过滤器查询的结果(步骤304)与使用先前时间状态数据执行的相同的过滤器查询的结果(步骤305)进行比较,并且结果的差异与预定阈值进行比较。在某些实施例中,事实、感知、假设或指示的改变可以由预定的阈值条件、极性、性质或值来限定或量化。阈值条件可以包括可以改变变换的输出的变换对象的改变,诸如算法的新版本、错误修复、个性化或模型参数等。如果过滤器查询执行的输出之间的差异满足阈值或超过阈值(306:是),那么可以在步骤307中调用数据变换过程。这些数据变换过程可以类似于上面参考图1中的变换对象所讨论的数据变换过程。例如,在步骤307中调用的数据变换过程可以与示例执行模型100中的类型1-4变换对象的实例对应。
因此,每个过滤器查询可以具有用于确定何时相关联的变换过程将被执行的事实、感知、假设或指示的改变的一个或多个阈值条件、极性、性质或值。条件、极性、性质或值的改变的更高阈值可能要求底层时态数据的更多变化,并且相关联的变换过程将更不频繁地被执行。在某些实施例中,例如在其中频繁或连续的数据更新被接收的大数据分析和其它大规模数据驱动的应用中,与过滤器查询相关联的阈值条件、极性、性质或值可以是有利的。例如,在被实现为接收和分析大规模数据流(包括例如WebLogic服务器日志、Java虚拟机(JVM)垃圾收集器日志、JVM线程转储日志、HTTP访问日志、操作系统观察器日志、网络设备日志、数据库日志等)的循环应用中,对于在系统中接收到的每个更新后的数据执行变换过程可能是低效的。在这样的情况下,过滤器查询和关联的阈值条件、极性、性质或值可以充当守护,以限制在循环应用内执行的数据变换过程,以使得仅当底层数据已经改变到很可能导致显著的下游数据对象改变的程度时数据变换过程才被执行。
在一些实施例中,示例过程300的各个步骤可以在不同的数据库事务中被执行和/或异步地被执行。例如,在接收和分析大量流传输数据或其它频繁的数据更新的数据驱动的应用中,在一个事务中在步骤302中更新多时态数据库同时在不同的事务中在步骤307中调用数据变换过程可能是有利的。如下面所讨论的,步骤307中的数据变换过程可以导致附加的迭代和循环数据更新和/或附加的变换过程被执行。因此,通过在与如下事务分开的一个或多个事务内执行数据变换和更新的应用循环(例如,步骤307和/或后续步骤401-416)可以增强一些系统中的性能和稳定性:该事务被用来利用外部接收的数据来更新数据库(例如,步骤301-302)或执行发起循环应用实例的开始的另一个事件。因此,在一些实现中,过程300的步骤301和302可以在一个专用数据库事务中被执行,而步骤303-307(以及基于这些步骤确定的任何后续过程401-416)可以在一个或多个分开的事务中被执行。此外,在一些实施例中,潜在地慢或长时间运行的循环应用可以(例如,在数据库引擎的异步执行模式下)被异步执行。
现在参考图4,示出了图示循环数据变换应用的执行的流程图。过程400中的步骤可以由系统200中的一个或多个组件(诸如双时态数据库210、编排引擎220和资源管理器230等)执行。然而,应当理解的是,本文描述的技术不需要限于上文描述的具体的系统和硬件实现,而是可以在包括硬件、软件和网络组件的其它组合的其它硬件和系统环境内执行。
图4所示的示例过程400可以与由编排引擎220或其它系统组件对与上面在图1中讨论的模型100相似的执行模型的实现对应。与执行模型100类似地,示例性过程循环400可以是潜在地迭代的和/或无限的数据变换循环,但是在这个示例中在每个数据变换过程之前执行过滤器和阈值,以防止任何意外的无限循环。在示例过程400中使用的不同数据对象(例如,类型1-类型4)可以与具有不同属性或特性的不同类型的数据对象对应,并且不同的变换对象(例如,类型1-4)可以与用于将一种类型的数据对象变换成后续类型的不同算法或系统的实现对应。此外,虽然说明性过程400使用四种类型的数据对象和四种类型的变换对象,但是应当理解的是,在不同示例中可以使用不同数量的数据对象和变换对象(例如,各自是2个数据对象和2个变换对象、2个数据对象和2个变换对象、...、5个数据对象和5个变换对象)。
过程400可以在步骤401中开始,步骤401可以与上面讨论的步骤307中的变换动作的调用对应。然而,在其它示例中,过程400不需要在步骤401中开始执行,而是可以在数据变换调用步骤(例如,401、405、409、413)中的任何数据变换调用步骤、数据生成和存储步骤(例如,402、406、410、414)中的任何数据生成和存储步骤或过滤器执行步骤(例如,403、407、411、415)中的任何过滤器执行步骤中开始。如上面所讨论的,可以基于多时态数据库210内数据状态的改变、变换对象的改变(例如,更新的算法、新的软件版本发行等)或过滤器对象的改变(例如,更新的表达式过滤器查询等)来发起数据驱动的循环应用过程。对数据变换对象和/或过滤器查询的更新可以触发使用较旧版本的变换对象和/或过滤器先前计算的数据的重新计算。因此,对系统数据、变换过程或过滤器中的一个或多个的更新可以发起应用循环过程400的执行。此外,在一些情况下,与过滤器和/或变换对象相关联的阈值可以被动态更新,这可以通过响应于更新后的阈值而动态地重新执行阈值确定(例如,404、408、412、416)之一来发起应用循环过程400。
现在参考图5,示出了识别若干示例数据项的有效时间的图。图500中的x轴与时间对应。在图500上标记的每个时间(t1-t8)可以与在系统内发生的事件(诸如数据变换过程(例如,经由变换对象实例)的执行、(例如,经由数据对象实例)对数据库数据的更新或对变换过程或过滤器的更新)对应。图500中的y轴与多时态数据库中的不同数据项(例如上面讨论的数据对象类型中的一个或多个数据对象类型的实例)对应。图500中的线指示用于每个数据项的有效时间范围。例如,数据D1与时间t3和t5之间的有效数据对应,数据D2与时间t1和t2之间的有效数据对应,等等。因为这个示例中的数据是双时态的,所以多个不同的数据项D1-D8可以表示在不同的时间的相同的数据(例如,相同的数据对象实例)。例如,数据项可以表示从时间t3到时间t5的数据对象实例,而数据项D8可以表示从时间t5到时间t8的相同的数据对象实例。
在图500中表示的有效时间数据可以被用来执行如上文描述(例如在步骤305中)的追溯分析。多时态数据库中的有效时间数据可以被用来检索多时态数据库中的任何先前的数据状态,以便重新调用或重新执行数据变换过程和/或追溯地改变数据驱动的循环应用中使用的数据、过程或过滤器。例如,数据驱动的循环应用可以比较多时态数据库210内的数据状态和/或在当前时间(例如,t8)的变换过程或过滤器的结果以及在前一时间(例如,t6)的相同数据或过程。在这个示例中,当前时间(t8)数据状态由数据项D3、D5、D7和D8组成,而先前有效时间(t6)数据状态由数据项D3、D4、D5、D6和D8组成。因此,对应的过滤器查询、数据变换过程等可以准确地反映在当前时间和先前时间执行的变换过程和驱动这些过程的底层数据状态。
现在参考图6,图6是示出其中可以实现本发明的各种实施例的示例性分布式系统的组件的框图。在所示的实施例中,分布式系统600包括一个或多个客户端计算设备602、604、606和608,该一个或多个客户端计算设备被配置为通过一个或多个网络610执行和操作客户端应用,诸如web浏览器、专有客户端(例如Oracle Forms)等。服务器612可以经由网络610与远程客户端计算设备602、604、606和608可通信地耦接。
在各种实施例中,服务器612可以适于运行由系统的组件中的一个或多个组件提供的一个或多个服务或软件应用。在一些实施例中,这些服务可以作为基于web的服务或云服务或者在软件即服务(SaaS)模型下被提供给客户端计算设备602、604、606和/或608的用户。操作客户端计算设备602、604、606和/或608的用户又可以利用一个或多个客户端应用与服务器612交互,以利用由这些组件提供的服务。
在该图中绘出的配置中,系统600的软件组件618、620和622被示为在服务器612上实现。在其它实施例中,系统600的组件中的一个或多个组件和/或由这些组件提供的服务还可以由客户端计算设备602、604、606和/或608中的一个或多个客户端计算设备来实现。操作客户端计算设备的用户然后可以利用一个或多个客户端应用来使用由这些组件提供的服务。这些组件可以用硬件、固件、软件或其组合来实现。应当理解,可以与分布式系统600不同的各种不同的系统配置是可能的。因此,在该图中示出的实施例是用于实现实施例系统的分布式系统的一个示例,并且不旨在进行限制。
客户端计算设备602、604、606和/或608可以是运行诸如Microsoft Windows之类的软件和/或诸如iOS、Windows Phone、Android、BlackBerry 10、Palm OS等之类的各种移动操作系统并且启用互联网、电子邮件、短消息服务(SMS)、或其它通信协议的便携式手持设备(例如,蜂窝电话、计算平板电脑、个人数字助理(PDA))或可穿戴设备(例如,Google头戴式显示器)。客户端计算设备可以是通用个人计算机,通用个人计算机举例来说包括运行各种版本的MicrosoftApple和/或Linux操作系统的个人计算机和/或笔记本计算机。客户端计算设备可以是运行包括但不限于各种GNU/Linux操作系统(诸如像GoogleChrome OS)的各种商用或类UNIX操作系统中的任何操作系统的工作站计算机。可替代地或附加地,客户端计算设备602、604、606和608可以是能够通过(一个或多个)网络610通信的任何其它电子设备,诸如瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有姿势输入设备的Microsoft Xbox游戏控制台)和/或个人消息传送设备。
虽然示例性分布式系统600被示为具有四个客户端计算设备,但是任何数量的客户端计算设备可以被支持。诸如具有传感器的设备等之类的其它设备可以与服务器612交互。
在分布式系统600中的(一个或多个)网络610可以是本领域技术人员熟悉的、可以支持使用各种商用协议(包括但不限于TCP/IP(传输控制协议/互联网协议)、SNA(系统网络体系结构)、IPX(互联网分组交换)、AppleTalk等)中的任何商用协议的数据通信的任何类型的网络。仅仅作为示例,(一个或多个)网络610可以是局域网(LAN),诸如基于以太网、令牌环等的局域网。(一个或多个)网络610可以是广域网和互联网。它可以包括虚拟网络,该虚拟网络包括但不限于虚拟专用网(VPN)、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线网络(例如,在电气和电子协会(IEEE)802.11协议套件、和/或任何其它无线协议中的任何协议下操作的网络);和/或这些网络和/或其它网络的任何组合。
服务器612可以包括一个或多个通用计算机、专用服务器计算机(作为示例,包括PC(个人计算机)服务器、服务器、中型服务器、大型计算机、机架式服务器等)、服务器场、服务器集群或者任何其它适当的布置和/或组合。在各种实施例中,服务器612可以适于运行上述公开内容中描述的一个或多个服务或软件应用。例如,服务器612可以对应于用于执行上文描述的根据本公开的实施例的处理的服务器。
服务器612可以运行操作系统,该操作系统包括上文讨论的操作系统中的任何操作系统以及任何商用的服务器操作系统。服务器612还可以运行各种附加的服务器应用和/或中间层应用中的任何服务器应用和/或中间层应用,这些附加的服务器应用和/或中间层应用包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于来自Oracle、Microsoft、Sybase、IBM(国际商业机器)等的那些商用数据库服务器。
在一些实现中,服务器612可以包括分析和整合从客户端计算设备602、604、606和608的用户接收到的数据馈送和/或事件更新的一个或多个应用。作为示例,数据馈送和/或事件更新可以包括但不限于馈送、更新或者从一个或多个第三方信息源和连续数据流接收到的实时更新,该实时更新可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和业务管理应用)、点击流分析工具、汽车交通监视等相关的实时事件。服务器612还可以包括经由客户端计算设备602、604、606和608的一个或多个显示设备显示数据馈送和/或实时事件的一个或多个应用。
分布式系统600还可以包括一个或多个数据库614和616。数据库614和616可以驻留在各种位置中。作为示例,数据库614和616中的一个或多个可以驻留在服务器612本地(和/或驻留在服务器612中)的非暂态存储介质上。可替代地,数据库614和616可以远离服务器612,并且经由基于网络的或专用的连接与服务器612通信。在一组实施例中,数据库614和616可以驻留在存储区域网络(SAN)中。类似地,用于执行属于服务器612的功能的任何必要的文件可以适当地被本地存储在服务器612上和/或被远程存储。在一组实施例中,数据库614和616可以包括适于响应于SQL格式的命令来存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。
现在参考图7,示出了服务通过其可以作为云服务被提供的系统环境的组件的框图。在所示的实施例中,系统环境700包括可以由用户使用以与提供云服务的云基础设施系统702交互的一个或多个客户端计算设备704、706和708。客户端计算设备可以被配置为操作诸如web浏览器、专有客户端应用(例如,Oracle Forms)或一些其它应用之类的客户端应用,该客户端应用可以由客户端计算设备的用户使用以与云基础设施系统702交互,以使用由云基础设施系统702提供的服务
应当理解的是,在该图中绘出的云基础设施系统702可以具有除了所绘出的组件之外的其它组件。此外,在该图中示出的实施例仅是可以结合本发明的实施例的云基础设施系统的一个示例。在一些其它实施例中,云基础设施系统702可以具有比在该图中示出的组件更多或更少的组件、可以组合两个或更多个组件、或者可以具有不同的组件配置或布置。
客户端计算设备704、706和708可以是与上文针对602、604、606和608描述的设备类似的设备。
虽然示例性系统环境700被示为具有三个客户端计算设备,但是任何数量的客户端计算设备可以被支持。诸如具有传感器的设备等之类的其它设备可以与云基础设施系统702交互。
(一个或多个)网络710可以促进客户端704、706和708与云基础设施系统702之间的通信和数据交换。每个网络可以是本领域技术人员熟悉的、可以支持利用各种商用协议(包括上文针对(一个或多个)网络110描述的商用协议)中的任何商用协议的数据通信的任何类型的网络。
云基础设施系统702可以包括一个或多个计算机和/或服务器,该一个或多个计算机和/或服务器可以包括上文针对服务器612描述的那些服务器。
在某些实施例中,由云基础设施系统提供的服务可以包括云基础设施系统的用户按需可用的许多服务,诸如在线数据存储和备份解决方案、基于Web的电子邮件服务、托管的办公套件和文档协作服务、数据库处理、受管理的技术支持服务等。由云基础设施系统提供的服务可以动态地缩放,以满足它的用户的需求。由云基础设施系统提供的服务的具体实例在本文中被称为“服务实例”。一般而言,来自云服务提供商的系统的、经由诸如互联网之类的通信网络对用户可用的任何服务被称为“云服务”。通常,在公有云环境中,构成云服务提供商的系统的服务器和系统与客户自己的本地服务器和系统不同。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网之类的通信网络按需订购和使用应用。
在一些示例中,在计算机网络云基础设施中的服务可以包括对由云供应商提供给用户的存储装置、托管的数据库、托管的web服务器、软件应用或其它服务的受保护的计算机网络访问,或者如本领域中已知的其它服务。例如,服务可以包括通过互联网对云上的远程存储装置的受密码保护的访问。作为另一个示例,服务可以包括用于由联网的开发人员私人使用的基于web服务的托管的关系数据库和脚本语言中间件引擎。作为另一个示例,服务可以包括对在云供应商的网站上托管的电子邮件软件应用的访问。
在某些实施例中,云基础设施系统702可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用并且安全的方式交付给客户的一套应用、中间件和数据库服务供应物。这种云基础设施系统的示例是由本受让人提供的Oracle公有云。
在各种实施例中,云基础设施系统702可以适于自动供应、管理和跟踪客户对由云基础设施系统702提供的服务的订阅。云基础设施系统702可以经由不同的部署模型来提供云服务。例如,服务可以在公有云模型下提供,在该公有云模型中云基础设施系统702由销售云服务的组织拥有(例如,由Oracle拥有)并且服务对一般公众和不同行业的企业可用。作为另一个示例,服务可以在私有云模型下提供,在该私有云模型中云基础设施系统702仅为单个组织运营并且可以为该组织内的一个或多个实体提供服务。云服务还可以在社区云模型下提供,在该社区云模型中云基础设施系统702和由云基础设施系统702提供的服务由相关社区中的若干个组织共享。云服务还可以在混合云模型下提供,该混合云模型是两种或更多种不同模型的组合。
在一些实施例中,由云基础设施系统702提供的服务可以包括在软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别、或包括混合服务的其它服务类别下提供的一个或多个服务。客户可以经由订阅订单订购由云基础设施系统702提供的一个或多个服务。云基础设施系统702然后执行处理,以提供客户的订阅订单中的服务。
在一些实施例中,由云基础设施系统702提供的服务可以包括但不限于应用服务、平台服务和基础设施服务。在一些示例中,应用服务可以由云基础设施系统经由SaaS平台提供。SaaS平台可以被配置为提供落入SaaS类别下的云服务。例如,SaaS平台可以提供在集成的开发和部署平台上构建和交付按需应用套件的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可以利用在云基础设施系统上执行的应用。客户可以获取应用服务,而无需客户购买分开的许可和支持。可以提供各种不同的SaaS服务。示例包括但不限于为大型组织提供用于销售业绩管理、企业集成和业务灵活性的解决方案的服务。
在一些实施例中,平台服务可以由云基础设施系统经由PaaS平台提供。PaaS平台可以被配置为提供落入PaaS类别下的云服务。平台服务的示例可以包括但不限于使得组织(诸如Oracle)能够在共享的公共体系架构上整合现有应用以及具有构建利用由平台提供的共享服务新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。客户可以获得由云基础设施系统提供的PaaS服务,而无需客户购买分开的许可和支持。平台服务的示例包括但不限于Oracle Java云服务(Oracle Java CloudService,JCS)、Oracle数据库云服务(Oracle Database Cloud Service,DBCS)以及其它服务。
通过利用由PaaS平台提供的服务,客户可以采用由云基础设施系统支持的编程语言和工具,并且还可以控制所部署的服务。在一些实施例中,由云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle Fusion Middleware服务)和Java云服务。在一个实施例中,数据库云服务可以支持共享服务部署模型,这些共享服务部署模型使得组织能够汇集数据库资源并且以数据库云的形式向客户提供数据库即服务。在云基础设施系统中,中间件云服务可以为客户提供开发和部署各种业务应用的平台,以及Java云服务可以为客户提供部署Java应用的平台。
可以由云基础设施系统中的IaaS平台提供各种不同的基础设施服务。基础设施服务促进利用由SaaS平台和PaaS平台提供的服务的客户对底层计算资源(诸如存储装置、网络和其它基本计算资源)的管理和控制。
在某些实施例中,云基础设施系统702还可以包括用于提供向云基础设施系统的客户提供被用于提供各种服务的资源的基础设施资源730。在一个实施例中,基础设施资源730可以包括用于执行由PaaS平台和SaaS平台提供的服务的硬件(诸如服务器、存储装置和联网资源)的预先集成和优化组合。
在一些实施例中,在云基础设施系统702中的资源可以由多个用户共享并且按需动态地重新分配。此外,资源可以被分配给在不同时区中的用户。例如,云基础设施系统730可以使得第一时区中的第一用户集合能够利用云基础设施系统的资源指定的小时数,然后使得能够将相同资源重新分配给位于不同时区中的另一用户集合,从而最大化资源的利用率。
在某些实施例中,可以提供由云基础设施系统702的不同组件或模块以及由云基础设施系统702提供的服务共享的若干内部共享服务732。这些内部共享服务可以包括但不限于:安全性和身份服务、集成服务、企业存储库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传输服务等。
在某些实施例中,云基础设施系统702可以提供对云基础设施系统中的云服务(例如,SaaS、PaaS和IaaS服务)的综合管理。在一个实施例中,云管理功能可以包括用于供应、管理和跟踪由云基础设施系统702接收到的客户的订阅的能力等。
在一个实施例中,如在该图中所绘出的,云管理功能可以由诸如订单管理模块720、订单编排模块722、订单供应模块724、订单管理和监视模块726以及身份管理模块728之类的一个或多个模块提供。这些模块可以包括一个或多个计算机和/或服务器或者利用一个或多个计算机和/或服务器来提供,该一个或多个计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置和/或组合。
在示例性操作734中,使用客户端设备(诸如客户端设备704、706或708)的客户可以通过请求由云基础设施系统702提供的一个或多个服务并且对由云基础设施系统702提供的一个或多个服务的订阅下订单来与云基础设施系统702交互。在某些实施例中,客户可以访问云用户界面(UI)、云UI 712、云UI 714和/或云UI 716并且经由这些UI下订阅订单。响应于客户下订单而由云基础设施系统702接收到的订单信息可以包括识别客户和客户打算订阅的由云基础设施系统702提供的一个或多个服务的信息。
在客户下订单之后,订单信息经由云UI 712、714和/或716被接收。
在操作736处,订单被存储在订单数据库718中。订单数据库718可以是由云基础设施系统718操作并且结合其它系统元素操作的若干数据库之一。
在操作738处,订单信息被转发到订单管理模块720。在一些实例中,订单管理模块720可以被配置为执行与订单相关的计费和记帐功能,诸如验证订单,并且在通过验证时,预订订单。
在操作740处,关于订单的信息被传送到订单编排模块722。订单编排模块722可以利用订单信息来为客户下的订单编排服务和资源的供应。在一些实例中,订单编排模块722可以编排资源的供应,以利用订单供应模块724的服务支持订阅的服务。
在某些实施例中,订单编排模块722实现对与每个订单相关联的业务过程的管理,并且应用业务逻辑来确定订单是否应当继续供应。在操作742处,当接收到对新订阅的订单时,订单编排模块722向订单供应模块724发送分配资源和配置履行订阅订单所需要的这些资源的请求。订单供应模块724实现用于由客户订购的服务的资源分配。订单供应模块724在由云基础设施系统700提供的云服务和被用来供应用于提供所请求的服务的资源的物理实现层之间提供抽象级别。订单编排模块722因此可以与实现细节隔离,这些实现细节诸如服务和资源是实际上被实时供应还是预先被供应并且仅在请求时才被分配/指派。
在操作744处,一旦供应了服务和资源,就可以通过云基础设施系统702的订单供应模块724向客户端设备704、706和/或708上的客户发送所提供的服务的通知。
在操作746处,可以由订单管理和监视模块726来管理和跟踪客户的订阅订单。在一些实例中,订单管理和监视模块726可以被配置为收集订阅订单中的服务的使用统计数据,诸如所使用的存储量、所传送的数据量、用户的数量、以及系统运行时间和系统停机时间的量。
在某些实施例中,云基础设施系统700可以包括身份管理模块728。身份管理模块728可以被配置为提供身份服务,诸如云基础设施系统700中的访问管理和授权服务。在一些实施例中,身份管理模块728可以控制关于希望利用由云基础设施系统702提供的服务的客户的信息。这样的信息可以包括认证这些客户的身份的信息和描述这些客户被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段等)执行哪些动作的信息。身份管理模块728还可以包括对关于每个客户的描述性信息和关于描述性信息可以如何和由谁来访问和修改的管理。
现在参考图8,示出了其中可以实现本发明的实施例的示例性计算机系统的框图。系统800可以被用来实现上文描述的计算机系统中的任何计算机系统。如图所示,计算机系统800包括经由总线子系统802与若干外围子系统通信的处理单元804。这些外围子系统可以包括处理加速单元806、I/O子系统808、存储子系统818和通信子系统824。存储子系统818包括有形的计算机可读存储介质822和系统存储器810。
总线子系统802提供了用于让计算机系统800的各种组件和子系统按意图彼此通信的机制。虽然总线子系统802被示意性地示为单条总线,但是总线子系统的可替代实施例可以利用多条总线。总线子系统802可以是利用各种总线架构中的任何总线架构的若干类型的总线结构中的任何总线结构,这些总线结构包括存储器总线或存储器控制器、外围总线以及局部总线。例如,这些架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和可以被实现为按IEEEP1386.1标准制造的夹层(Mezzanine)总线的外围组件互连(PCI)总线。
可以被实现为一个或多个集成电路(例如,常规的微处理器或微控制器)的处理单元804控制计算机系统800的操作。一个或多个处理器可以被包括在处理单元804中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元804可以被实现为一个或多个独立的处理单元832和/或834,其中在每个处理单元中包括单核或多核处理器。在其它实施例中,处理单元804还可以被实现为通过将两个双核处理器集成到单个芯片中而形成的四核处理单元。
在各种实施例中,处理单元804可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要执行的程序代码中的一些或全部可以驻留在(一个或多个)处理器804中和/或在存储子系统818中。通过适当的编程,(一个或多个)处理器804可以提供上文描述的各种功能。计算机系统800可以附加地包括处理加速单元806,处理加速单元806可以包括数字信号处理器(DSP)、专用处理器等。
I/O子系统808可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或踪迹球之类的指示设备、结合到显示器中的触摸板或触摸屏、滚轮、点拨轮、拨盘、按钮、开关、键板、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括例如运动感测和/或姿势识别设备,诸如使得用户能够利用姿势和口头命令通过自然用户界面控制诸如Microsoft360游戏控制器之类的输入设备并且与该输入设备交互的Microsoft运动传感器。用户接口输入设备还可以包括眼睛姿势识别设备,诸如检测来自用户的眼睛活动(例如,当拍摄图片和/或进行菜单选择时的“眨眼”)并且将眼睛姿势变换为到输入设备(例如,Google)中的输入的Google眨眼检测器。此外,用户接口输入设备可以包括使得用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备。
用户接口输入设备还可以包括但不限于三维(3D)鼠标、操纵杆或指示杆、游戏板和图形平板、以及音频/视觉设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、以及视线跟踪设备。附加地,用户接口输入设备可以包括例如医疗成像输入设备,诸如计算机断层扫描设备、磁共振扫描设备、正电子发射断层扫描设备、医疗超声设备。用户接口输入设备还可以包括例如音频输入设备,诸如MIDI键盘、数字乐器等。
用户接口输出设备可以包括显示子系统、指示器灯或诸如音频输出设备之类的非视觉显示器等。显示子系统可以是阴极射线管(CRT)、诸如利用液晶显示器(LCD)或等离子显示器的平板设备之类的平板设备、投影设备、触摸屏等。一般而言,术语“输出设备”的使用旨在包括用于向用户或其它计算机输出来自计算机系统800的信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括但不限于可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
计算机系统800可以包括存储子系统818,存储子系统818包括被示为当前位于系统存储器810内的软件元件。系统存储器810可以存储可在处理单元804上加载并且执行的程序指令以及在这些程序执行期间生成的数据。
依赖于计算机系统800的配置和类型,系统存储器810可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器等)。RAM通常包含可由处理单元804立即访问和/或目前正由处理单元804操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器810可以包括多种不同类型的存储器,诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实施方式中,包含诸如在启动期间有助于在计算机系统800内的元件之间传送信息的基本例程的基本输入/输出系统(BIOS)通常可以被存储在ROM中。作为示例而不是限制,系统存储器810还示出了可以包括客户端应用、Web浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序812、程序数据814以及操作系统816。作为示例,操作系统816可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种商用或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、GoogleOS等)和/或诸如iOS、Phone、OS、10OS和OS操作系统之类的移动操作系统。
存储子系统818还可以提供用于存储提供一些实施例的功能的基本编程和数据构造的有形计算机可读存储介质。当由处理器执行时提供上文描述的功能的软件(程序、代码模块、指令)可以被存储在存储子系统818中。这些软件模块或指令可以由处理单元804执行。存储子系统818还可以提供用于存储根据本发明被使用的数据的存储库。
存储子系统800还可以包括可以被进一步连接到计算机可读存储介质822的计算机可读存储介质读取器820。与系统存储器810一起并且可选地与系统存储器810组合,计算机可读存储介质822可以全面地表示用于临时和/或较持久地包含、存储、传送和检索计算机可读信息的远程存储设备、本地存储设备、固定存储设备和/或可移动存储设备以及存储介质。
包含代码或代码的部分的计算机可读存储介质822还可以包括本领域已知或使用的任何适当的介质,这些介质包括存储介质和通信介质,诸如但不限于以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。这可以包括非暂态和有形的计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储装置、盒式磁带、磁带、磁盘存储装置或其它磁存储设备、或其它有形的计算机可读介质。这还可以包括非有形的计算机可读介质,诸如可以被用来传送期望的信息并且可以由计算机系统800访问的数据信号、数据传输或者任何其它介质。
作为示例,计算机可读存储介质822可以包括从不可移动的非易失性磁介质读取或对不可移动的非易失性磁介质写入的硬盘驱动器、从可移动的非易失性磁盘读取或对可移动的非易失性磁盘写入的磁盘驱动器、以及从可移动的非易失性光盘(诸如CD ROM、DVD和Blu-盘或其它光学介质)读取或对可移动的非易失性光盘写入的光盘驱动器。计算机可读存储介质822可以包括但不限于驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字音频带等。计算机可读存储介质822还可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如固态RAM、动态RAM、静态RAM,基于DRAM的SSD,磁阻RAM(MRAM)SSD)以及使用基于DRAM的SSD和基于闪存存储器的SSD的组合的混合SSD。盘驱动器及其关联的计算机可读介质可以为计算机系统800提供计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。
通信子系统824提供到其它计算机系统和网络的接口。通信子系统824充当用于从来自计算机系统800的其它系统接收数据和向来自计算机系统800的其它系统传送数据的接口。例如,通信子系统824可以使得计算机系统800能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统824可以包括用于访问(例如,利用蜂窝电话技术,诸如3G、4G或EDGE(用于全球演化的增强的数据速率)之类的先进数据网络技术、Wi-Fi(IEEE802.11系列标准),或其它移动通信技术、或其任何组合的)无线语音和/或数据网络的射频(RF)收发器组件、全球定位系统(GPS)接收器组件和/或其它组件。在一些实施例中,作为无线接口的附加或替代,通信子系统824可以提供有线网络连接(例如,以太网)。
在一些实施例中,通信子系统824还可以代表可以使用计算机系统800的一个或多个用户接收以结构化和/或非结构化的数据馈送826、事件流828、事件更新830等形式的输入通信。
作为示例,通信子系统824可以被配置为实时地从社交网络和/或其它通信服务的用户接收数据馈送826,诸如馈送、更新、诸如丰富站点摘要(RSS)馈送之类的web馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统824还可以被配置为接收以连续数据流形式的本质上可能是连续的或无界的没有明确结束的数据,其中连续数据流可以包括实时事件的事件流828和/或事件更新830。生成连续数据的应用的示例可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如网络监视和业务管理应用)、点击流分析工具、汽车交通监视等。
通信子系统824还可以被配置为向一个或多个数据库输出结构化和/或非结构化的数据馈送826、事件流828、事件更新830等,其中该一个或多个数据库可以与耦接到计算机系统800的一个或多个流传输数据源计算机进行通信。
计算机系统800可以是各种类型中的一种,这些类型包括手持便携式设备(例如,蜂窝电话、计算平板、PDA)、可穿戴设备(例如,Google头戴式显示器)、PC、工作站、大型机、信息亭、服务器机架或任何其它数据处理系统。
由于计算机和网络不断变化的本质,在该图中绘出的计算机系统800的描述仅仅旨在作为具体示例。具有比该图中所绘出的系统更多或更少的组件的许多其它配置是可能的。例如,定制的硬件还可以被使用和/或特定的元件可以用硬件、固件、软件(包括小程序)或其组合来实现。另外,可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文所提供的公开内容和教导,本领域普通技术人员将理解实现各种实施例的其它方式和/或方法。
在前面的描述中,为了说明的目的,以特定的次序描述了方法。应当理解的是,在替代实施例中,可以以与描述的次序不同的次序来执行方法。还应当理解的是,上文描述的方法可以由硬件组件执行,或者可以被体现在可以被用来使机器(诸如利用指令被编程的通用或专用处理器或逻辑电路)执行方法的机器可执行指令的序列中。这些机器可执行指令可以被存储在一个或多个机器可读介质或存储器设备上,诸如存储在CD-ROM或其它类型的光盘、软盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、闪存存储器、或者适用于存储电子指令的其它类型的机器可读介质或存储器设备上。可替代地,可以通过硬件和软件的组合来执行方法。
虽然已经在本文中详细描述了本发明的说明性和目前优选的实施例,但是要理解的是,发明性概念可以以其它方式不同地被体现和采用,并且所附权利要求旨在被解释为包括除了被现有技术限定的之外的这样的变化。
示例实施例
现在参考图9,示出了以协同、一致和结构良好的方式管理数据、知识和过程的示例知识密集型数据库系统(KIDS)模型。如下面所讨论的,该模型描述了捕获定量事实、对事实进行分类以导出紧凑的定性信息、评估信息以得出一个或多个假设、以及使用这些假设来制定指示(或决定不应当或不可以做任何事情)。可以按照所得到的指示行动,以创建新的事实,等等。
从知识的角度来看图9中的KIDS模型,CARE(分类(Classification)、评估(Assessment)、决议(Resolution)和制定(Enactment))循环由四个不同的知识类别组成,这些知识类别作用于特定类别的数据并且产生特定类别的数据。CARE循环表示规范化的工作流程。从数据的角度来看同一个循环,FPHD循环(事实(Fact)、感知(Perception)、假设(Hypothesis)和指示(Directive))表示四种不同的数据类型;数据描述了通常存储在现代数据库系统中的事物,而没有任何区别。形式知识被存储在文章、书籍、应用代码、工作流程、案例管理系统或决策支持系统中,关于在什么时间最好使用哪些知识以及每个事物如何交互没有任何区别。为了弥补这一缺陷,CARE/FPHD循环提供了应用中的数据、知识和过程之间的非常需要的交互结构。
在这个实施例中,KIDS可以包括KIDS模型本身、工具和基础设施,该基础设施被设计为管理四种类别的数据、四种类别的知识以及基于规范化的过程结构的知识和数据的激活。KIDS模型可以交织在现实世界中所看到的数据、知识和过程。它远离当前模型,在当前模型中知识和过程彼此分开并且与数据分开地存活在各自的世界中。KIDS工具允许用户基于KIDS模型开发应用。这些工具利用对于各种组件可用的现有工具并且添加支持(约束)以符合KIDS模型。KIDS基础设施利用现有技术,尤其是现代数据库和应用服务器,以便以规则、存储的查询、模型、用于变换数据的过程以及用于控制知识使用的工作流程的形式来管理应用执行、数据和知识。
KIDS可以在数据管理中连接两个正在演化的大数据和CEP技术。虽然CARE循环的分类阶段可以利用大数据技术(在自组织/批处理上下文中)或利用CEP技术(在实时上下文中)实现,但是,通过将数据和知识表示分类并且将这些技术嵌入到现代应用结构中,KIDS比这两种技术中的任何一种都要更进一步;即,大数据和CEP是KIDS中除了其它重要技术(包括FSD(灵活模式数据)、多时态数据库、来源(provenance)、ILM(信息生命周期管理)、注册查询、OLAP数据立方体(cube)等)之外的两个重要基础设施要素。
在各种实施例中,KIDS提供以下内容:
·用于结构化应用以更好地管理数据、知识和过程的模型,
·通过引入四对互补的类别来对数据、知识和交互进行规范化,其中每对在交互结构中充当特定目的,
·用于大数据和CEP的涵盖性的上下文,
·所有组件的声明式规范,
·状态跟踪、时间旅行和来源能力,以及
·用于通过基础设施改进、演化的用户规范以及来自数据的知识发现进行持续应用演化的模型。
用例–云操作
对于云操作,与服务水平协议(SLA)的符合性可能是关键要求。它需要持续监视关键性能度量和预测性诊断能力,以检测即将发生的SLA违规,以便使得操作能够规避SLA违规,或者在违规发生时提供较快的问题解决。典型的云操作必须监视、诊断和管理运营商的和/或客户的私有云、公有云和混合云中的数据中心、网络、服务器机器、虚拟机、操作系统、数据库、中间件、应用等的数百万个硬件组件和软件组件。传统IT操作的反应性故障检测和手动诊断技术是劳动密集型的、需要广泛的领域专业知识并且响应可能太少或太晚,从而经常导致涉及重新启动系统的大部分而不是隔离和修复故障组件的不相称的响应,并且明显无法针对云进行扩展。云操作是只有通过KIDS循环(诸如图9所示的CARE/FPHD循环)的快速迭代以理解季节性周期、负载趋势、负载尖峰、系统响应特性、瞬态毛刺、对环境中数百万个组件的降级、老化和性能漂移的预警的动态性才能蓬勃发展(thrive)的领域。这些系统可能需要通过计算机化的KIDS循环对重要生命体征的连续测量、时间序列分析、多变量系统状态模型、系统响应模型、预测性异常检测、基于机器学习的分类、自动诊断和预后、决策支持和控制能力。
云计算的基本假设是通过整合和汇集物理资源并且通过动态资源管理提供几乎无限的资源的规模经济。除了动态资源管理之外,控制系统还需要管理由于频繁的新软件版本、用于错误修复的补丁、硬件升级、容量扩展等而改变的动态实体模型,以提供对系统的准确感知。
在本节中,描述实体模型的复杂性,以及承载系统健康的重要生命体征的机器数据的量。大数据分析和实时CEP技术在这个问题领域越来越受到关注,但是每种技术本身都不足以用于这个问题领域,但尽管如此,这两种技术在很大程度上保持分离。需要像KIDS一样的框架来整合它们,并且利用用于大规模状态管理的其它基本技术(诸如双时态数据库、表达式过滤器、注册查询以及前向链接和后向链接编排引擎)来增强它们,以整合许多推理引擎,诸如RETE、BBN、MSET、SVM、神经网络、OWL和其它时序算法。
现在参考图10,示出了用于Oracle Fusion应用SaaS的实体模型,该实体模型包括客户pod、被部署在虚拟机中的Fusion应用、被部署在Exalogic机架中的物理计算节点中的虚拟机、以及被部署在Exadata机架中的物理数据库节点中的数据库。这个实体模型利用通过线程段、线程类和/或线程类之间的依赖关系在周期性线程转储中的高强度堆栈踪迹的动态分类发现的实体被扩展;依赖关系捕获线程之间的线程间和进程间通信。将堆栈踪迹分类模型添加到实体模型很像是在系统生物学中将人类基因组信息添加到人体解剖模型。
线程强度提供了系统功能中的性能热点的“热度”的统计度量。代码块的热度可以通过代码块的调用次数乘以代码块的执行时间来量化。类似的度量已经被应用于各种性能分析工具,诸如Oracle Sun Studio 12性能分析器、Intel VTune放大器、AMDCodeAnalyst、Oracle数据库活动会话历史(ASH)、Oracle JRockit Flight Recorder和UNIX gprof命令。
线程类是段类的有序集合,例如CRM域销售服务器ADF应用线程由段类的元组(CRM域,销售服务器,ADF-应用,ADF Web服务调用)表示。示例线程依赖关系是[(ADF Web服务调用)→(ADF Web服务,ADF-BC)],它具有子类[(CRM域,销售服务器,ADF-应用,ADF Web服务调用)→(CRM域,订单捕获服务器,ADF Web服务,ADF-BC,DATABASE(数据库)操作)]。类(ADFWeb服务,ADF-BC)可以被向下钻取(drill)直到高强度类(CRM域,订单捕获服务器,ADF Web服务,ADF-BC,DATABASE操作),并且跨线程依赖关系钻取到数据库线程(DATABASE,Fusion应用模式),并且继续向下钻取数据库中的调用图、调用树或调用堆栈模型(包括SQL执行计划和执行踪迹)直到(DATABASE,Fusion应用模式)线程的高密度子类。
沿着调用链传播的执行上下文ID(ECID)可以被用来跨中间件和数据库层将异常踪迹相关联,以帮助各个执行上下文中的问题的根源分析。可以基于来自以定期时间间隔取得的一系列线程转储样本的各种线程类和线程段的强度统计量的测量结果来使用生命体征,以诊断系统问题。线程类之间的依赖关系信息可以被用来跨中间件和数据库层将事件相关联,以帮助根源分析。线程强度统计增强了向下钻取分类层次结构以观察线程段的特定子类的强度的能力。它增强了线程之间的通信信道或资源池中的队列的流量强度的可观察性,以及对作为SLA问题的主导指标的小型性能毛刺的敏感性。
数据立方体用反映实体模型中的关系的“部分”的维度和概念晶格被定义,以支持OLAP操作(诸如上卷(roll-up)、向下钻取、切片和切块、枢转、钻过(drill-across)、钻透(drill-through)等)。预测性诊断解决方案需要系统的状态空间模型,该状态空间模型包括构成系统功能的生命体征的各种系统统计量的测量结果。多变量状态估计技术(MSET)对来自相关实体集合的时间序列数据的信息融合尤其有效。MSET与顺序概率比测试(SPRT)结合是一种将机器学习应用于预测性异常检测的健壮的分类模型。统计测量结果从大数据系统中的日志中提取,并且被组织在数据立方体中。统计测量结果包括由时间序列过滤器导出的趋势和季节性信息。尤其是在JVM完整GC统计量的时间序列分析中,可以基于Brown的指数过滤器、Holt的双指数过滤器、Winters的三指数过滤器、对于不规则时间间隔的Wright扩展、对于时间接近的间隔的Hanzak调整因子和/或用于克服Cauchy分布问题的具有离群值截断的适应性缩放的异常值检测和修剪来实现特殊的时间序列过滤器。可以从时间序列数据提取趋势(诸如级别尖峰、级别漂移、方差变化、离群值和端点预测),并且将定量趋势变换为定性值(诸如低、正常或高)。
包括JVM完整GC统计量和周期性线程转储的事实数据可以经历变换,以提取越来越高级别的分类信息。线程段和线程根据它们的流量强度被增量地分类。堆栈踪迹被分类为高强度线程段和线程,并被分类为包括线程类之间的依赖关系以及线程类到段类的向下钻取的更高形式的信息。用于周期性线程转储的时间序列数据包含用于每个线程类和段类的强度的趋势信息,诸如季节性周期、线性趋势、方差变化、级别尖峰、级别漂移、离群值以及饱和或端点预测。趋势信息将大量时间序列数据减少为更简练的事件序列,其中事件的数量与观察的时间窗口内的实质趋势变化的数量成比例。可以通过趋势信息的特征向量来识别系统状态,并且系统状态过渡可以由表示趋势中的实质变化的事件划分。
因此,KIDS模型可以实现跨由不同的分类知识推导出的各种特殊类型的信息(诸如观察、目标、预测、模拟、季节性预报等)以及跨相关实体的信息融合。KIDS模型还可以实现在支持有效的KIDS循环所需的复杂性和异构性的级别的信息融合和情境意识,以在大规模云操作中检测异常、诊断根本原因以及动态管理资源。
用例-软件和硬件产品支持
这个用例可以通过用于最小化系统不可用性的涉及支持人员和客户人员的协作和迭代的问题解决活动来表征。为了实现这些目标,最小化或者发现已知问题以及应用现有知识(隐性的或显式的)来解决已知问题或者发现新问题的补救所需的时间可能是重要的。增加和/或最大化处理已知问题的自动化可以使支持人员和客户人员能够腾出时间关注需要大量集体人类经验和智慧的新出现的问题。因此,由于对自动化的永无止尽的需求,在该领域开发的应用可能会持续变化。这样的自动化需求带来三个挑战:1)实现经济的自动化,2)设计应用,以实现这样的自动化的快速部署,3)最大的非技术挑战,该非技术挑战是如何实现所解决的问题的精确表达和来源。为了实现经济的自动化,确保在整个产品生命周期中(在错误数据库、支持工作单(ticket)中)遇到的关于产品问题的数据和知识都是利用精确的表达和来源捕获的至关重要。这包括具有准确定义的一致术语、准确和经验证的因果关系、系统配置以及人员的贡献。这种表达和来源实现关于问题的可能的复发以及自动或半自动地识别和解决问题的复杂程度的准确统计。接下来,该过程可以被标准化,以用于基于所收集的来源数据来诊断问题。这种标准化可以旨在建立标准化的数据收集、对这些数据的标准化的解析和解释、标准化的诊断和标准化的补救方法、以及问题解决的整个过程的标准化。
为了实现使得能够快速部署这种自动化的健壮的应用体系架构,自动化问题空间可以被分段成相干的模块化组件。为了实现这样的分段,空间的自动化复杂度可能不统一。数据收集自动化可能不像数据解析自动化那么复杂。数据解析自动化又可能不像诊断自动化那么复杂。另外,使补救自动化可能更复杂和不同。自动化复杂性的这种级别转移可以提供用于分解问题空间的自然的界限。
用例-患者护理
患者护理可以是由捕获的数据、观察、知识和过程驱动的要求高的任务;数量和复杂性都以不断增加的速度增长。当医疗传感器成为主流时,预期数据和知识的量将以甚至更快的速度增长。通过使用传感器,医生将变得对所有他们的患者持续地负责,不管这些患者是否到访他们的办公室。虽然EMR(电子医疗记录)的收集(描述测量结果、图像(和读数)、观察、诊断和治疗的数据的混合)是极其重要的,但是这些记录绝对不是足够的。EMR既不将数据组织成有意义的类别,也不描述谁在什么时间查看了什么数据、得到什么诊断以及为什么、以及是否使用任何计算机化的知识和使用哪个版本来得出任何结论。还存在由于医生的过失或者患者或律师的贪婪导致的巨大的成本压力和不断出现的医疗诉讼问题。
医生使用许多方法来照顾患者;其中经常使用的术语中的一些术语是:循证医学、护理标准、鉴别诊断以及个性化/精准医疗。存在支持医生的无数应用;但是,它们仅捕获医生的任务的一小部分;此外,它们是专有的和不透明的,从而使主要扩展、个性化和快速演化几乎不可能。所需要的是一种系统,该系统在治疗的所有阶段帮助医生、允许医生用他们的语言与这个系统进行通信、将测量结果变换为紧凑的形式、提供严谨的(rigorous)来源、异常的警报、允许主要的扩展和个性化、以及持续演化–这不是详尽的列表。
患者护理从收集证据开始,证据的形式为事实和观察。事实包括诸如生命体征、血液生化以及图像之类的测量结果;测量事实是量化的。通过使用分类,事实被变换为感知,诸如测量结果与规范的偏差的严重性以及图像的解释。事实由被视为感知的观察补充。感知将被评估,以得出确定观察到的疾病的根本原因的一个或多个诊断(假设)及其相关联的置信度。下个步骤是产生指示的治疗计划;例如,基于护理标准的具体治疗和/或更多检查。指示的制定将创造更多的事实并且循环再次开始,直到假设显示已经达到目标或者不应当或者不可以再做任何事情;鉴别诊断是其示例。这些步骤中的大多数步骤是计算机支持的并且将越来越多地被计算机支持,从而允许基于持续的事实流来对患者进行永久性监督。一旦新的计算机化的知识已经被验证和发布,它就必须被立即使用。任何支持必须在个性化的背景下被考虑;知识的应用必须基于个人或团队的偏好。社交网络和隐性知识剖析应当有助于识别对于任务最有资格的个人或团队。
这种用例强调将事实变换为感知的需要。存在具有各种维度和范围的大约十个生命体征,其中范围常常依赖于患者的情况。因此,指定用于通知的条件可能要求非常高。医生通过对事实进行分类来处理这个问题并且对于许多类型的事实使用相同的分类器;用于所有生命体征的潜在的限定符是正常、被守护(guarded)、严重和关键。目标是使用实际上非常少的限定符来保持事情直观。限定符有助于规范化和简化查询,诸如:告诉我具有至少有一个关键或两个严重生命体征的所有患者。利用时间性,医生添加对值的演化的见解,诸如恶化/改善。变化率可以被用来讨论缓慢或快速的恶化。显然,还可以讨论值的稳定性,诸如患者的生命体征稳定还是不稳定。医生偏好使用感知,因为它导致直观和紧凑的语言。感知的模糊性必须通过严谨的来源来补偿。
除了对单个值进行分类的好处之外,可能存在甚至更大的需求来对一组值或图像进行分类。这里是示例:心脏骤停的风险可以在数小时之前的血液检查中看到。不幸的是,这需要理解至少十个值之间的复杂的相互关系,即使对于最好的专家而言,这往往也是不可行的;计算机擅长这个。因此,可能需要对大量模型的实时评估。利用这种方法,医生甚至可以意识到他们从未遇到或甚至从未知道的潜在风险。同样,需要严谨的来源,以允许医生审查分类。
感知需要以时间方式描述患者的当前状况的重要方面;毕竟所有医生都想知道目前正在发生的事情以及这种情况已经如何演化和预测这种情况将如何演化。此外,过去的情况必须容易获得。预测与分类相结合应当允许医生制定非常通用的请求,诸如:告诉我患者的情况是否没有按预期演化。这个请求对于特定情况具有特定的含义。
KIDS模型-概念
KIDS提供了结构化应用的模型,该模型关注数据、知识和过程管理,例如,参见图9。数据的管理是相对成熟的技术,该技术目前正在经历快速演化。KIDS通过定义和管理四个不同类别的数据来增进这种演化:
·事实(Fact)是世界上可以被测量的数据。事实的数量、速度和定量的本质使得人类认知系统难以直接处理它们。诸如CEP和大数据之类的技术关注捕获和处理这些数据。
·感知(Perception)是事实(和观察)的紧凑的、时间性的和定性的表示。它被优化以用于由人类认知系统使用;它表示事实中可见的不断演化的情况的最重要的方面。感知依赖于消费者对该信息的观点。
·假设(Hypothesis)是解释事实和感知的可能的根本原因的描述。
·指示(Directive)描述为了对具体的事实、感知和假设的集合做出反应需要做什么。指示指定通常以工作流程或过程的形式的动作计划。显然,指示将最有可能影响演化的事实。
这些数据类别中的任何数据类别都可能要求各种各样的数据类型/结构、可扩展性、跨数据类型/结构的声明式访问、时间旅行、演化的数据结构的灵活性(对结构良好的数据以及数据首先/结构稍后的支持或从不支持)、OLTP、分析等。还可能需要扩展功能,诸如(细粒度)安全性、来源和ILM。重要的操作特性可以包括灾难恢复、高可用性、可靠性、可扩展性、性能和快速开发工具。在一些情况下,数据管理需要可能在成熟和广泛使用的数据库中可用的这样广泛的功能和操作支持。对事实的收集和管理不需要经典的事务模式,并且数据的有限损失可能是可接受的。成熟的数据库可以优化对事实的管理,并且提供对于显著减少的资源消耗的支持。
在某些实施例中,知识可以被分为补充四个数据类别的四类:分类、评估、决议和制定。这些类别基于处理每个类别的数据所需的推理模式。每种知识类别的重要子集可以通过合适的计算模型被自动化。
·分类(Classification)知识-将数据变换为感知-主要由演绎推理模式表示。产生预测或规范的一些分类知识也可以涉及归纳推理。用于分类的计算模型包括支持向量机、朴素贝叶斯网络、神经网络、聚类、关联规则、决策树、多变量状态估计技术、认知计算等。
·评估(Assessment)知识-将感知变换为假设-通常通过从感知中导出假设的溯因(abductive)推理来实现。用于评估的计算模型包括用于逆问题的解决方案的最小二乘优化或回归和贝叶斯信念网络。
·决议(Resolution)知识-将假设变换为指示-涉及在结果的不确定性的情况下通过考虑不同结果的相对优点和相关联的收益/成本来做出决定。用于决议的计算模型包括用决策节点和收益/成本节点扩展的贝叶斯信念网络(被称为影响图)、Dempster-Shafer理论、多个决策树、以及剩余使用寿命的预后。
·制定(Enactment)知识-将指示变换为动作(和新的事实)-涉及在BPMN中以脚本、计划、调度、BPEL工作流程和业务过程编码的控制结构。
知识可以按照由CARE循环指定的正确顺序被应用。在一些情况下,不是CARE循环的所有步骤都需要被执行。知识(包括知识的每个版本)可以被存储在数据库中,以提供完整的来源以及允许复杂的查询访问。知识可以自组织(ad hoc)并且实时地可适用。一个用例是利用新知识重新访问数据(尤其是事实和感知)以发现被错过和被高估的内容的能力。
在KIDS的上下文中使用大数据/CEP会导致更为全面和系统的方法:
·查询/模型被视为知识而不是单独的元素;知识可以被查询和演化。
·数据以及知识(查询、规则和模型)在具有特定特性的四个类别中彼此关联。
·将事实变换为感知由对情况作出反应的动作补充。
·来源支持是明确的,以记录哪个版本的知识已经被用来导出哪个版本的数据。
此外,每个类别的形式知识可以由人类隐性知识来补充。应用还可能需要社交联网服务,在社交联网服务中我们可以剖析系统中的行动者的隐性知识和社交偏好。这可以允许通过基于最近的活动调整隐性知识简档来识别对于任务的最有资格的个人或团队,以确保简档是尽可能最新的。
在一些实施例中,应用可以包括持续改进的能力。这最好可以通过持续地改进知识来做到。用于实现持续改进的技术包括:
·通过利用来自用户和领域专家的见解来改进规则、查询、模型和代码。
·使用附加数据或新算法来重新表征和重新运行模型。
知识可以在领域的专家之间交换;这种交换可以尽可能是形式上的。论文可以被认为是维恩图的等价物,其有助于直观地理解模型或使用的任何形式体系(formalism)。任何新知识都可以在它被广泛使用之前仔细地审查。KIDS可以允许同时使用演化的和现有的知识,并且能够显示两种结果。KIDS还可以能够用新知识来审查现有数据,从而指出新的风险和机会以及以前高估的风险和机会。
KIDS形式模型
KIDS可以包括推动人类行动者、代表人类行动者行动的计算机程序或硬件设备(代理)和/或被观察、诊断和治疗的实体的交互的引擎。KIDS的形式模型可以通知驱动系统中的行动者、代理和实体之间的交互的过程管理应用的实现,以主动管理系统中的信息变化。
可以在多时态数据库系统中表示KIDS的形式模型。虽然事务时间可能没有在模型中显式表示,但是可以假设模型中的任何一条数据都具有事务时间(TxnTime)。这个规则的一个例外是对于其事务时间被显式表示以支持闪回查询和来源的活动(Activity)上下文。
有效时间(ValidTime)可以在FSD和特征(Feature)数据中显式表示,FSD和特征数据为形式定义中的基本数据结构中的两个基本数据结构:
Vector={Featuren|n=1,2,…,N}
BigVector={FSDn|n=1,2,…,N}∪Vector。
FSD(灵活模式数据)可以是数据库中的任何可扩展性数据,包括文本、音频、视频、空间、图形、XML、RDF和JSON。因此,FSD可以表示文件,并且依赖于相关联的FSDType,在患者护理领域中文件可以包含心电图、X射线、CT扫描、MRI扫描等,以及在在云操作以及软件和硬件产品支持领域中文件可以包含线程转储、堆转储、数据库AWR快照、数据库踪迹等。特征可以表示在症状或疾病的观察范围中的分类值(诸如低、正常、高),并且依赖于相关联的FeatureType(特征类型),在患者护理领域中症状或疾病可以表示呼吸道感染、急性支气管炎、哮喘等,以及在云操作及软件和硬件产品支持领域中症状或疾病可以表示高压、低压、阻抗不匹配、护送效应等。
ValidTime和TxnTime是时间间隔。由[t1,t2)表示的时间间隔是集合{t|t>=t1且t<t2并且t1<t2,其中t、t1、t2∈DateTime}。瞬时时间t1可以由[t1,NA)表示。两个有效时间[t1,t2)和[t2,t3)可以被接合成一个有效时间[t1,t3)。
·ValidTime=[DateTime,DateTime∪{∞,NA})
·TxnTime=[DateTime,DateTime∪{∞,NA})
KIDS系统可以是7元组(Actor,Agent,Entity,CARE,Metadata,Context,Profile)。Actor是人类行动者的集合,Agent是代表人类行动者动作的计算机程序或硬件组件的集合。Entity是被观察、诊断和治疗的实体的集合。
·CARE=(Data(数据),Knowledge(知识))
·Data=(Fact(事实),Perception(感知),Hypothesis(假设),Directive(指示))
·Knowledge=(Classification(分类),Assessment(评估),
Resolution(决议),Enactment(制定))
·Data用两个基本数据结构FSD和Feature来表示:
·
·
·
·
·Situation=Fact∪Perception∪Hypothesis∪Directive
情况(Situation)可以是事实、感知、假设和指示的一般化。Situation实例与CARE-循环实例中的特定Activity(活动)实例相关联,并且表示与Activity实例相关联的KFun函数的输入或输出。Situation实例可以与Entity(实体)相关联,并且包含可以作为相关Entity的状态的一部分的FSD或Feature的向量,即,Situation中的Entity可以通过有效的JPQL路径表达式与Situation中的FSD或Feature中的每一个的Entity相关。FoM是表示置信水平、置信区间、概率、得分、均方根误差、收益/成本等的品质因数定量或定性值。
知识(knowledge)可以依据将一种类型的数据变换为另一种类型的数据的函数来表示。令f:Vector→Vector表示函数,表示对域(f)的限制,表示对陪域(f)(co-domain)的限制。例如,其域(f)局限于BigVector的Fact并且陪域(f)局限于Perception的向量(Vector)的函数对于给定的护理循环和循环计数器k,将care-loop[k].classify.fact.bigVector映射到care-loop[k].classify.perception.vector。
·Kfun=Classification∪Assessment∪Resolution∪Enactment∪SymptomResolution
·
·
·
·
·
·Kfun是Classification,Assessment,Resolution,Enactment和SymptomResolution的一般化。
·MetaData=(CARE-LoopType,ActivityType,FSDType,FeatureType,KfunDefinition).
·
·
·
·
·KfunDefinition=(PreCondition,PostCondition)
·
·
·
PreCondition和PostCondition元数据捕获Kfun函数之间的影响关系,以检测(对于相关的Entity的集合)FSD和Feature的集合何时变得同时有效并且满足调用Kfun函数所需的Situation。Filter是依据JPQL路径表达式定义的谓词。Mandatory是布尔表达式,它指定对应的FSDType或FeatureType必须是输入或输出Situation的一部分,以便调用Kfun。
Context是5元组(CARE-Loop,Classified,Assess,Resolve,Enact)。
·CARE-Loop=CARE-LoopType×Entity×Actor×Counter×(Classify×Assess×Resolve×Enact)n
CARE-loop实例可以是Activity的序列的闭包,并且与它的Activity实例中的每个Activity实例一起表示用于评估由CAREDefinition(CARE定义)定义的Filter的上下文。Counter是从0到n的循环计数器,它是CARE-Loop实例的状态的一部分。
·
·
·
·
Classify、Assess、Resolve或Enact实例可以分别表示Classification、Assessment、Resolution或Enactment函数的执行上下文。
·Activity=Classify∪Assess∪Resolve∪Enact.
·Activity=ActivityType×Situation×(KFun)n×Situation×Actor×TxnTime×ValidTime
Activity可以是Classify、Assess、Resolve或Enact的一般化。许多Activity实例(每个具有一对输入/输出Situation实例)可以与相同的KFun函数相关联。Guard可以是由依据在CARE-Loop实例或Activity实例的上下文中被评估的JPQL路径表达式和Mandatory布尔表达式指定的Filter的集合组成的查询。
·Profile是三元组(ActorProfile,KnowledgeProfile,AcivityAssignee,Personalization)。
·
·
·
·Personalization:Kfun×Actor→Kfun
·Personalization可以依据curry运算符来解释:
·Personalization(Kfun,Actor)≡curry(Kfun)(ActorProfile(Actor))
KIDS执行模型
在本节中,描述KIDS执行模型的一个或多个实施例。CARE循环(CARE-loop)实例可以是Activity(Classify,Assess,Resolve和Enact)的序列的闭包。它可以提供包括过去已经发生的Activity、当前或目前正在进行的Activity以及未来应该会发生的Activity的历史的和意图的上下文。对于每个CARE循环实例,KIDS可以维护循环计数器。如果Activity实例应当在当前循环计数器下执行,那么该Activity实例可以是当前的。当用于Activity实例的输入Situation实质上改变时,应当执行当前的Activity实例。当在当前循环计数器下的所有当前Resolve活动实例被执行时,循环计数器递增。
CARE循环实例可以具有实例类型和实例所有者。实例类型将类似的CARE循环实例进行分组并且可以被用来定制或约束在CARE循环实例内执行的Activity实例。第一次指定CARE循环类型时,Actor(实例化该类型的第一个实例的他/她或者他/她指定的另一个Actor)作为该类型的所有者与该类型相关联。CARE循环实例的每个Activity实例都具有有资格执行Activity实例的受托人Actor。在没有Activity实例受托人的情况下,CARE循环实例所有者成为Activity实例受托人。同样,在没有明确指定的CARE循环实例所有者的情况下,类型所有者将缺省地成为实例所有者。可以通过指定的函数在Activity受托人中计算实例所有者或Activity实例受托人。这样的函数是依据在CARE循环实例或者CARE循环实例中的Activity实例的上下文中评估的路径表达式来定义的。
可以允许CARE循环实例类型的所有者限制某一类型的所有实例的行为。还可以允许CARE循环实例的所有者在由类型所有者指定的约束内进一步定制实例的行为。CARE循环实例所有者可以通过创建初始Activity实例和任何后续的Activity实例来实时定义CARE循环实例的新Activity实例。在为Activity实例的Situation实例创建FSD或Feature之前,CARE循环实例或类型所有者还可以创建新的FSDType或FeatureType,以构建CAREDefinition元数据。任何Activity实例都可以通过编码的知识函数(SVM、MSET、BBN等机器)实现,该编码的知识函数也是借助CAREDefinition元数据定义的。图11A-图11E描绘了CAREDefinition的一些示例。
Activity实例可以在CARE循环实例内由索引唯一地识别,例如,在care-loop[i].classify、care-loop[i].assess、care-loop[i].resolve和care-loop[i].enact中的索引i=0...n。CARE循环实例的状态包括与CARE循环实例中的Activity实例相关联的Situation实例中的FSD和Feature的聚合物,即,可以通过路径表达式访问的FSD和Feature(例如,“care-loop[2].classify.perception.feature[‘平均存储器使用’].entity”)的聚合物。许多Activity实例可以与Kfun函数和Kfun函数的CAREDefinition元数据相关联。KIDS可以选择应当在当前循环计数器下执行的当前Activity实例。使用每个Activity实例中指定的Guard来控制当前Activity实例的执行。Guard包括依据路径表达式和Mandatory布尔表达式指定的Filter谓词的集合。路径表达式(诸如“care-loop[1].resolve.directive.feature[‘分配更多存储器’].value”或“perception.feature[‘存储器使用尖峰’].value”)在CARE循环实例或CARE循环实例中的Activity实例的上下文中被评估。当Activity实例成为当前的时,KIDS使用对应的Guard来组成SQL查询语句。这种查询的结果是Situation(Fact,Perception,Hypothesis或Directive)实例。该查询可以被注册为用于对象改变检测。当任何FSD或Feature被更新或插入时,KIDS执行到由对应的Activity实例中的TxnTime记录的最后事务时间为止每个注册查询语句的闪回查询。它还执行到当前事务时间为止的查询。如果Situation实例在两个事务之间显著改变,那么KIDS将用更新后的Situation来激活Activity实例。这可以是与Activity实例相关联的Kfun函数的调用。在调用Kfun函数并且输入和输出Situation实例被提交之后,KIDS将在Activity实例中保存新的事务时间(TxnTime)。KIDS将延迟Kfun函数的调用,直到所有强制的FSD和Feature是输入Situation的一部分。因此,KIDS编排CARE循环Activity实例的执行,以推进CARE循环计数器。
SituationDefinition可以包含FilterDefinition的列表,FilterDefinition中的每个FilterDefinition指定Situation中的FSD或Feature的FSDType和FeatureType。每个FilterDefinition还指定Filter谓词,诸如“‘YAK-dom0.12-OVM.222’=feature.entity.oracleVM并且feature.name=‘ESS过程尖峰’”。FilterDefinition中指定的Filter谓词可以被用来在Oracle数据库表达式过滤器表中注册表达式,以选择可能受当前事务中的新的或更新后的FSD或Feature影响的注册查询语句。KIDS仅针对受影响的查询语句执行闪回查询,以检测Situation实例的改变。Filter中的路径表达式的使用允许在Situation实例中聚合Entity的相关集合的FSD和Feature。路径表达式对于给定的Entity模型必须是有效的。
如果KIDS在当前循环计数器下检测到对于多于一个当前Activity的输入Situation实例的改变,那么它可以根据优先规则“Classify<Assess<Resolve<Enact”来选择一个要执行的Activity。当当前Activity的输入Situation实例发生变化时,当前Activity可以被重复执行,直到一个或多个当前Resolve活动实例的执行撞击(bump)循环计数器并且新的Activity实例集合成为活动的。还有可能将循环计数器重置为较低的数字,以便重新评估Situation实例,以及使用较新版本的Kfun函数来重新执行Activity实例。
因此,可以使用用于大规模状态管理、丰富数据模型和数据类型、表达式过滤器、闪回查询和注册查询的成熟的数据库技术来实现KIDS引擎。
KIDS的经验–云操作
KIDS引擎可以编排上面讨论的各种推理引擎(诸如BBN、RETE、MSET、SVN等)的交互。KIDS数据库可以注释事实数据中的FPHD和CARE数据,以针对来源具体化数据中的KIDS循环,如图12中所示。KIDS模型可以在IT运营中集成用于日志分析和实时企业管理系统的大数据系统,这两者表示被断开并且被自动化岛屿包围的大数据和CEP。KIDS模型可以实现动态实体模型、日志分析和实时监视的信息融合,以实时地实现较快的OODA循环。
KIDS模型实现跨通过不同分类知识导出的各种特殊类型的感知(诸如观察、目标、预测、模拟等)以及跨相关实体的信息融合。在图13中的信息融合的示例场景中,其信息收敛的实体的相关集合包括OracleVM、它的JavaVM、它的Dom0主机以及Dom0主机中的其它OracleVM和JavaVM。动态实体模型由时态数据库管理。
在图11A-图11C中的示例场景中,“存储器使用尖峰”和“企业调度器服务处理尖峰”特征可以是OS存储器和OS过程的测量结果中的异常趋势的分类的一部分。图11A和图11C中的“存储器不足预测”特征是由时间序列过滤器产生的感知的一部分。附加特征(诸如“可以压缩其它OracleVM中的JVM的堆”和“可以从其它OracleVM回收存储器”)是由对数据立方体的上卷操作预测的感知的一部分,该数据立方体包括用于Dom0中的所有OracleVM中的所有JavaVM的平均负载和季节性趋势数据。KIDS Entity模型实现基于“在Dom0中运行的OracleVM的库存”和“在这些OracleVM中的每个OracleVM中运行的JavaVM的库存”的情境意识以及关于“可以压缩其它OracleVM中的JVM的堆”和“可以从其它OracleVM回收存储器”的分类感知,所有这些在Situation实例中在公共有效时间间隔中必须相符。
KIDS模型可以捕获在各种推理引擎中实现的Knowledge函数的交互结构。图14中描绘的CARE循环实际上是多个网络的网络,由此交互类似于Petri网(Petri-Net)(Activity和Guard实例是转换,Situation实例是地点,并且FSD和Feature是令牌)。用于Assessment功能的Activity实例由图15中描绘的贝叶斯信念网络实现。通过使用交互模型,KIDS可以编排涉及各种推理引擎的模型的执行。
图15中由BBN表示的评估知识“OracleVM存储器诊断”可以诊断给定的感知并且推导出假设“Dom0有存储器可分配给OracleVM”和“需要向OracleVM分配更多的存储器”。同一个网络包括决议知识“OracleVM存储器决议”,该决议知识组合假设以到达用于Dom0的“从Dom0向OracleVM分配存储器”的目标。在ESS作业被处理之后,评估知识可以到达假设“需要从OracleVM回收存储器”。由影响图表示的决议知识将到达用于Dom0的“从OracleVM回收存储器”的目标。“从Dom0向OracleVM分配存储器”的目标由触发同一个Dom0中的其它OracleVM中运行的JavaVM中的完全垃圾收集(GC)和堆压缩的制定函数实现。在JavaVM的堆压缩之后,制定函数可以命令Dom0使其它OracleVM中的存储器气球(存储器在承诺机制上的一部分)充气,以回收气球中的存储器。然后,Dom0可以将弹性存储器分配给OracleVM,以支持由ESS产生的过程。由于ESS过程是可能表现出季节性的被调度的活动,因此KIDS的具有制定函数的反应性和预测性响应将成为季节性活动的一部分。
KIDS的经验–软件和硬件产品
以下是针对KIDS设计的知识引出和自动化经验的总结,该总结示出了模块化产品支持故障排除活动可以如何被映射到CARE循环,同时在所涉及的人员的个人生产力与知识的精确表达和来源之间寻求平衡,其中知识的精确表达和来源导致经济术语和过程标准化,并且最终导致知识自动化和敏捷的应用演化。这样的方法可以为促进协作的和有生产力的实践社区提供重要的贡献。
在以下场景中,自动事件或者客户手动动作实例化以循环索引i=0开始的新的CARE循环实例。该过程包括四个阶段:识别问题、验证问题、确定原因和提供解决方案。
·问题识别阶段(II-i)
οDirective(目标)(II-i)是用于从客户人员获取关于问题的数据或收集遥测数据,并且产生Fact(事实)(II-i)以作为对问题的答案或度量值集合的动作计划。
οFact(II-i)被分类为被称为观察的Perception(感知)(II)。
οPerception(II-i)被评估为被称为潜在问题的Hypothesis(假设)(II-i)。
οHypothesis(II-i)被解析为被称为初始数据收集动作计划的Directive(目标)(IV-i+1)。
·问题验证循环(IV-i)
οDirective(IV-i)的制定产生Fact(IV-i),Fact(IV-i)是日志和跟踪文件的集合。
οFact(IV-i)被解析(分类)为Perception(IV-i)-观察的集合。
οPerception(IV-i)被评估为Hypothesis(IV-i)-经验证或未经验证的问题。
ο如果问题被验证,那么通过产生Directive(CD-i+1)而前进到原因确定,以确定原因(故障条件),否则通过产生Directive(II-i+1)来重新访问问题识别。
·原因确定循环(CD-i)
ο制定Directive(CD-i),从而产生以附加日志和跟踪文件以及配置数据的形式的Fact(CD-i)。
οFact(CD-i)被解析为Perception(CD-1)-附加的观察。
οPerception(CD-i)被评估,从而产生被称为故障条件的Hypothesis(CD-i)。
ο如果发现Hypothesis(CD-i)具有高置信度,那么产生Directive(SP-i+1)(解决方案动作计划),否则产生Directive(CD-i+1)以收集附加数据来促进潜在原因的调查。
·解决方案计划循环(SP-i)
οDirective(SP-i)是纠正由假设的原因引起的问题以及收集附加数据来验证制定的解决方案从而产生Fact(SP-i)的动作集合。
οFact(SP-i)被解析为Perception(SP-i)-解决方案的观察。
οPerception(SP-i)被评估,从而产生指示解决方案是否被验证为纠正问题的Hypothesis(SP-i)。
ο如果Hypothesis(SP-i)验证了解决方案,那么提供以Directive(NO-OP-END)的形式的CARE循环闭包,否则通过产生Directive(CD-i+1)来重新访问原因确定,或通过产生Directive(SP-i+1)来尝试新解决方案。
依赖于过程的成熟度以及拥有循环的支持团队的显式知识以及领域的复杂性,上文描述的专用的CARE循环中的任何活动可以是手动的、部分自动化或完全自动化的。利用KIDS Analytics(分析)服务来限定准备好进行部分自动化或完全自动化的手动活动。这样的活动必须已经达到足够的成熟度,并且对于自动化具有经济上良好的ROI。通过嵌入在产品中的可诊断性框架来实现数据收集的自动化,以实现关键问题的第一次故障数据捕获以及实现用于获得更深入认知的按需测试。为了实现快速部署,自动化组件以声明的方式指定并且测试被完全自动化以确保这种自动化的快速周转。KIDS插件框架被用来包括特定于域的服务和知识,诸如特定于域的本体存储库、支持解析模块的自动化测试框架的基于XML的诊断数据解析框架。通过将收集的数据变换为XML中的规范表示并且在XPATH规则中指定数据解析规则来实现自动数据解析。可以为在XPATH中无法容易地指定的复杂模式开发Java中的可重用的数据解析模式的库。对于自动诊断,手动建模是用于自动化的唯一可行的方法。还利用KIDS插件框架来包括基于贝叶斯信念网络的建模、自动化测试和自动化框架。事实上,KIDS CARE循环还被用于构建和测试这些模型。贝叶斯信念网络(BBN)可以被用来对诊断建模。由于问题空间的阻碍机器学习的稀疏的本质,BBN提供了理想的范式。帮助解释如何达到这样的诊断以及如何处理不完整和乱序的输入数据的BBN可以被构建。
KIDS还可以被用于个人生产力服务,以便以引导的加标签和散列标签扩展和内联行动计划规范的形式来支持手动活动中的个人生产力,以及利用引导的标签来实现术语标准化,并且利用散列标签扩展来定义个人术语。KIDS还可以被要求用于探索用于捕获和共享动作计划的内联动作计划规范、以及用于捕获数据解析规则集合和允许数据解析规则集合的共享的自服务式个人数据解析自动化。这些各种示例一方面可以提供个人赋权,另一方面可以实现社区共享和协作。例如,标签实现个人知识的组织和搜索,而引导的加标签实现在标准化标签集合上的社区收敛。另外,散列标签扩展用户体验服务目标在于帮助指定文本样板(boiler plate)或术语定义一次并且在个人级别上多次重用,同时使得社区能够共享这些定义。最后,内联动作计划(在人员级别上的可重用的动作计划的创建)还使得这种动作计划的行动者能够利用该动作计划作为检查清单。在社区级别上,可以共享和交换这些动作计划。所有这些用户体验服务都旨在支持个人赋权,同时帮助实践社区收敛到最佳实践和常用术语。
KIDS的经验-患者护理
患者护理KIDS项目的关注点可能在分类和来源上。为了支持来源,所有患者记录都在事务时间数据库中进行管理。可以利用注册查询以及利用模型来进行分类。分类可以由医生向下调整到单独的患者的水平;从而减少假警报。对于生命体征,使用正常、被守护、严重和关键的分类。可以使用这些分类来表达注册查询。因此,医生可以用他们的语言来定义规则,诸如:如果患者X的至少一个生命体征超过2分钟是关键的,那么通知我。由于这些规则可以独立于分类细节,因此少量的规则可以是足够的并且规则可以是稳定的。
此外,非假设驱动的模型可以被用来预测未来若干小时心脏骤停的概率。令人惊讶的结果可以是生命体征(通常为可用的最新数据)对于“长期”预测来说仅仅有较小的重要性。这样的KIDS技术还可以示出事件或者不是好的终端用户抽象。可以使用术语“事件对象”;这个想法可以演化为情况(状态)模型。一些实施例可以仅覆盖事实、分类和感知的管理。CARE循环的其它元素可以在这些项目完成之后被添加。
KIDS数据库规范
在一些实施例中,被用来实现KIDS模型的数据库可以满足某些要求或规范。在一些情况下,KIDS数据库可以提供声明式查询语言,以允许用户查询CARE循环实例。SQL可以被用来提供声明式语言模型。然而,SQL仅查询原子数据集合。为了查询KIDS,SQL可能需要被扩展为查询CARE循环实例的集合。SQL可以使用主键/外键关系来查询数据之间的链接,但是对于可以涉及递归图遍历的CARE循环实例和Activity实例的查询可能是受限的。SQL中对图遍历声明式构造的最接近的支持可能是递归查询。然而,递归查询可以提供以表格形式的最终结果,而不是从原始递归结构导出的结果。因此,KIDS查询语言可以允许用户查询和遍历CARE循环路径,以了解Activity实例如何依赖于Situation实例以及Kfun知识函数如何被应用。
此外,KIDS数据库可以提供声明式操纵语言,以操纵KIDS元素。CARE循环可以跟踪发生了什么。然而,DML可以允许用户预测如果用户以某些方式修改知识的话将会发生什么或者什么将已经发生,即“如果…将怎样(what if)查询”能力。以这种方式,用户可以能够使用新知识来评估历史数据,以获得对历史数据的新见解。这就像是到过去的时间穿越。此外,用户将能够通过利用不同版本的知识分出多个CARE循环来预测未来的数据。这就像到未来的时间穿越。
KIDS工具规范
KIDS工具集不仅可以帮助用户构建KIDS应用,而且还可以指定底层基础设施的各种控制方面,即,基于用户反馈的知识演化以及利用新数据对知识的重新表征。
KIDS应用服务器
KIDS应用服务器可以使用存储在数据库中的KIDS数据、知识和过程模型来支持KIDS应用的执行。KIDS应用服务器可以为明确的来源引导(channel)信息,以及将状态管理和事件处理委托给数据库。
KIDS优化
KIDS数据库可以被设计为支持事务的ACID属性;事实的收集需要完全的或减少的持久性,因此需要具有对数据模型和类型、以及安全性、压缩、紧凑、时间旅行、来源等的所有支持的数据库服务。持久性必须由用户要求(诸如全部、>数据的x%)来控制,并且足以以足够的准确度回答来源问题。此外,这种服务必须支持高性能分类。可以放松ACID要求,以显著降低资源消耗。可以预期用于该目的的专门数据库,但是它可以是针对要求的全部范围的功能。因此,某些方法可以包括优化现有的数据库,以用于演化的模式以及利用硬件加速。
对于分布式处理的KIDS支持
在一些实施例中,KIDS可以在分布式环境中工作,以利用底层基础设施。
与社交网络和个性化的集成
在一些实施例中,社交网络可以是KIDS的组成部分。个性化是特别感兴趣的,通过个性化任何知识都可以基于组和个人的偏好来进行。例如,患者护理示例用例示出了个性化的重要性。
KIDS迁移
关于迁移支持,现有的应用可以保持对于现有的功能运行,但是可以基于KIDS模型来创建“影子”应用。影子(有时通过抓取)观察现有系统中的数据。然而,可以在KIDS中实现新的功能以及现有技术中的一些现有技术。
Claims (20)
1.一种方法,包括:
在计算机系统处,接收对于存储在所述计算机系统中的数据的一个或多个更新;
在所述计算机系统中,基于接收到的更新来更新一个或多个多时态数据项;
基于确定第一查询依赖于更新后的多时态数据项来识别所述计算机系统中的所述第一查询;
使用与当前时间对应的多时态数据来执行所述第一查询的第一执行;
使用与先前时间对应的多时态数据来执行所述第一查询的第二执行,所述先前时间与所述第一查询的先前执行对应;
确定所述第一查询的第一执行的结果与所述第一查询的第二执行的结果之间的差异;
将所述差异与预定阈值进行比较;以及
在确定所述差异大于所述预定阈值时,对与所述第一查询相关联的第一数据对象调用第一变换动作。
2.如权利要求1所述的方法,其中所述第一变换动作由在HADOOP数据处理群集的计算节点内执行的数据变换循环应用执行。
3.如权利要求2所述的方法,其中所述第一变换动作包括以下中的一个或多个:机器学习过程、原始数据分类过程、支持向量机、朴素贝叶斯分类器、神经网络、聚类、关联规则、决策树、单变量季节性和线性趋势、多变量状态估计技术、认知计算、贝叶斯信念网络、用于反问题的解决方案的最小二乘优化或回归、影响图、Dempster-Shafer理论、多个决策树、剩余使用寿命预后、脚本、计划、调度、BPEL工作流程、以及BPMN中的业务过程。
4.如权利要求1所述的方法,还包括:
存储与针对第一数据对象的所述第一变换动作的结果对应的第二数据对象;
确定第二数据对象与具有和所述第二数据对象相同的类型的不同数据对象之间的差异,其中所述不同数据对象是由所述第一变换动作的先前调用生成的;以及
基于确定第二数据对象与所述不同数据对象之间的差异大于第二预定阈值,对第二数据对象调用第二变换动作。
5.如权利要求4所述的方法,其中所述第一变换动作和所述第二变换动作是连续数据变换循环应用的一部分,所述方法还包括:
接收对存储在所述计算机系统中的所述多时态数据的一个或多个附加更新;
基于接收到的附加更新来更新所述多时态数据项的集合;
使用用于所述多时态数据的附加更新来执行所述第一查询的第三执行;
使用与所述第一查询的先前执行时间对应的多时态数据来执行所述第一查询的第四执行;
确定所述第一查询的第三执行的结果与所述第一查询的第四执行的结果之间的差异;
将所述差异与所述预定阈值进行比较;以及
在确定所述差异大于所述预定阈值时,重新调用所述第一变换动作。
6.如权利要求1所述的方法,其中更新后的多时态数据项的集合是包括用于每个数据项的事务时间和有效时间的双时态数据项。
7.如权利要求1所述的方法,其中识别所述第一查询包括访问所述计算机系统中的过滤表,所述过滤表包含各自与不同的变换动作对应的多个查询。
8.如权利要求1所述的方法,其中识别所述第一查询、执行所述第一查询的第一执行和第二执行以及将所述第一查询的第一执行与第二执行之间的差异与所述预定阈值进行比较在作为对所述多时态数据项的集合的更新的第一事务之外被执行并且与所述第一事务异步地被执行,并且其中对第一数据对象调用所述第一变换动作在所述第一事务之外被执行并且与所述第一事务异步地被执行。
9.一种系统,包括:
处理单元,所述处理单元包括一个或多个处理器;以及
存储器,所述存储器与所述处理单元耦接并且可由所述处理单元读取,并且在所述存储器中存储有指令集合,所述指令集合当由所述处理单元执行时,使所述处理单元:
接收对于存储在计算机系统中的数据的一个或多个更新;
在所述计算机系统中,基于接收到的更新来更新一个或多个多时态数据项;
基于确定第一查询依赖于更新后的多时态数据项来识别所述计算机系统中的所述第一查询;
使用与当前时间对应的多时态数据来执行所述第一查询的第一执行;
使用与先前时间对应的多时态数据来执行所述第一查询的第二执行,所述先前时间与所述第一查询的先前执行对应;
确定所述第一查询的第一执行的结果与所述第一查询的第二执行的结果之间的差异;
将所述差异与预定阈值进行比较;以及
在确定所述差异大于所述预定阈值时,对与所述第一查询相关联的第一数据对象调用第一变换动作。
10.如权利要求9所述的系统,其中所述第一变换动作由在HADOOP数据处理群集的计算节点内执行的数据变换循环应用执行。
11.如权利要求10所述的系统,其中所述第一变换动作包括以下中的一个或多个:机器学习过程、原始数据分类过程、支持向量机、朴素贝叶斯分类器、神经网络、聚类、关联规则、决策树、单变量季节性和线性趋势、多变量状态估计技术、认知计算、贝叶斯信念网络、用于反问题的解决方案的最小二乘优化或回归、影响图、Dempster-Shafer理论、多个决策树、剩余使用寿命预后、脚本、计划、调度、BPEL工作流程、以及BPMN中的业务过程。
12.如权利要求9所述的系统,所述存储器还在其中存储指令,所述指令当由所述处理单元执行时,使所述处理单元:
存储与针对第一数据对象的所述第一变换动作的结果对应的第二数据对象;
确定第二数据对象与具有和所述第二数据对象相同的类型的不同数据对象之间的差异,其中所述不同数据对象是由所述第一变换动作的先前调用生成的;以及
基于确定第二数据对象与所述不同数据对象之间的差异大于第二预定阈值,对第二数据对象调用第二变换动作。
13.如权利要求12所述的系统,其中所述第一变换动作和所述第二变换动作是连续数据变换循环应用的一部分,并且所述存储器还在其中存储指令,所述指令当由所述处理单元执行时,使所述处理单元:
接收对存储在所述计算机系统中的所述多时态数据的一个或多个附加更新;
基于接收到的附加更新来更新所述多时态数据项的集合;
使用用于所述多时态数据的附加更新来执行所述第一查询的第三执行;
使用与所述第一查询的先前执行时间对应的多时态数据来执行所述第一查询的第四执行;
确定所述第一查询的第三执行的结果与所述第一查询的第四执行的结果之间的差异;
将所述差异与所述预定阈值进行比较;以及
在确定所述差异大于所述预定阈值时,重新调用所述第一变换动作。
14.如权利要求9所述的系统,其中更新后的多时态数据项的集合是包括用于每个数据项的事务时间和有效时间的双时态数据项。
15.如权利要求9所述的系统,其中识别所述第一查询包括访问所述计算机系统中的过滤表,所述过滤表包含各自与不同的变换动作对应的多个查询。
16.如权利要求9所述的系统,其中识别所述第一查询、执行所述第一查询的第一执行和第二执行以及将所述第一查询的第一执行与第二执行之间的差异与所述预定阈值进行比较在作为对所述多时态数据项的集合的更新的第一事务之外被执行并且与所述第一事务异步地被执行,并且其中对第一数据对象调用所述第一变换动作在所述第一事务之外被执行并且与所述第一事务异步地被执行。
17.一种非暂态计算机可读存储器,所述非暂态计算机可读存储器包括存储在其中的指令集合,所述指令集合当由处理器执行时,使所述处理器:
接收对于存储在计算机系统中的数据的一个或多个更新;
基于接收到的更新来更新第一数据对象,第一数据对象具有第一数据对象类型;
调用第一变换对象,所述第一变换对象使用第一数据对象来产生具有第二数据对象类型的第二数据对象;
调用第二变换对象,所述第二变换对象使用第二数据对象来产生具有第三数据对象类型的第三数据对象;
调用第三变换对象,所述第三变换对象使用第三数据对象来产生具有第四数据对象类型的第四数据对象;以及
调用第四变换对象,所述第四变换对象使用第四数据对象来产生具有第一数据对象类型的第五数据对象。
18.如权利要求17所述的计算机可读存储器,其中调用所述第一变换对象包括:
基于确定第一查询依赖于更新后的第一数据对象来识别所述计算机系统中的所述第一查询;
使用与当前时间对应的多时态数据来执行所述第一查询的第一执行;
使用与先前时间对应的多时态数据来执行所述第一查询的第二执行;
确定所述第一查询的第一执行的结果与所述第一查询的第二执行的结果之间的差异;
将所述差异与预定阈值进行比较;以及
在确定所述差异大于所述预定阈值时,调用所述第一变换对象。
19.如权利要求17所述的计算机可读存储器,其中所述第一变换对象由在HADOOP数据处理群集的计算节点内执行的数据变换循环应用调用。
20.如权利要求2所述的方法,其中所述第一变换对象、所述第二变换对象、所述第三变换对象和所述第四变换对象中的每一个被配置为执行以下中的一个或多个:机器学习过程、原始数据分类过程、支持向量机、朴素贝叶斯分类器、神经网络、聚类、关联规则、决策树、单变量季节性和线性趋势、多变量状态估计技术、认知计算、贝叶斯信念网络、用于反问题的解决方案的最小二乘优化或回归、影响图、Dempster-Shafer理论、多个决策树、剩余使用寿命预后、脚本、计划、调度、BPEL工作流程、以及BPMN中的业务过程。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/665,171 US10740358B2 (en) | 2013-04-11 | 2015-03-23 | Knowledge-intensive data processing system |
US14/665,171 | 2015-03-23 | ||
PCT/US2016/021642 WO2016153790A1 (en) | 2015-03-23 | 2016-03-10 | Knowledge-intensive data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107430613A true CN107430613A (zh) | 2017-12-01 |
CN107430613B CN107430613B (zh) | 2021-10-01 |
Family
ID=55590161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680012718.XA Active CN107430613B (zh) | 2015-03-23 | 2016-03-10 | 知识密集型数据处理系统 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3274869A1 (zh) |
JP (2) | JP7064333B2 (zh) |
CN (1) | CN107430613B (zh) |
WO (1) | WO2016153790A1 (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108319437A (zh) * | 2018-02-28 | 2018-07-24 | 徐保东 | 内容大数据密集程度分析平台 |
CN108595644A (zh) * | 2018-04-26 | 2018-09-28 | 宁波银行股份有限公司 | 一种大数据平台运维管理系统 |
CN108804556A (zh) * | 2018-05-22 | 2018-11-13 | 上海交通大学 | 基于时间旅行和时态聚合查询的分布式处理框架系统 |
CN108805818A (zh) * | 2018-02-28 | 2018-11-13 | 徐保东 | 内容大数据密集程度分析方法 |
CN109242550A (zh) * | 2018-08-21 | 2019-01-18 | 首钢京唐钢铁联合有限责任公司 | 一种钢铁工序成本预测系统 |
US10205640B2 (en) | 2013-04-11 | 2019-02-12 | Oracle International Corporation | Seasonal trending, forecasting, anomaly detection, and endpoint prediction of java heap usage |
CN110008262A (zh) * | 2019-02-02 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种数据导出方法及装置 |
TWI669668B (zh) * | 2018-03-21 | 2019-08-21 | 兆豐國際商業銀行股份有限公司 | 資料管理裝置及資料管理方法 |
CN110750384A (zh) * | 2019-10-15 | 2020-02-04 | 浙江众鑫空间科技有限公司 | 大数据管理系统 |
US10740358B2 (en) | 2013-04-11 | 2020-08-11 | Oracle International Corporation | Knowledge-intensive data processing system |
CN111566678A (zh) * | 2018-12-03 | 2020-08-21 | 戴斯数字有限责任公司 | 利用动态关系认知的数据交互平台 |
CN111813453A (zh) * | 2020-04-30 | 2020-10-23 | 中科院计算所西部高等技术研究院 | 具有ooda多处理器的计算板卡 |
CN112422234A (zh) * | 2020-11-06 | 2021-02-26 | 应急管理部通信信息中心 | 一种基于时间感知的自适应深度学习的数据治理服务方法 |
CN112990767A (zh) * | 2021-04-20 | 2021-06-18 | 上海领健信息技术有限公司 | 垂直消费医疗类SaaS生产数据计算方法、系统、终端及介质 |
US11614969B2 (en) | 2016-05-09 | 2023-03-28 | Oracle International Corporation | Compression techniques for encoding stack trace information |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11443206B2 (en) | 2015-03-23 | 2022-09-13 | Tibco Software Inc. | Adaptive filtering and modeling via adaptive experimental designs to identify emerging data patterns from large volume, high dimensional, high velocity streaming data |
CN109104378B (zh) * | 2018-08-17 | 2019-08-20 | 四川新网银行股份有限公司 | 基于时间序列预测的智能令牌预回收方法 |
US11481379B2 (en) | 2018-11-01 | 2022-10-25 | Hewlett-Packard Development Company, L.P. | Metadata variance analytics |
US11182362B2 (en) | 2019-01-16 | 2021-11-23 | Kabushiki Kaisha Toshiba | Calculating device, data base system, calculation system, calculation method, and storage medium |
US20200310449A1 (en) * | 2019-03-26 | 2020-10-01 | GM Global Technology Operations LLC | Reasoning system for sensemaking in autonomous driving |
US11544566B2 (en) | 2019-06-03 | 2023-01-03 | International Business Machines Corporation | Deep learning model insights using provenance data |
JP7372530B2 (ja) | 2019-10-07 | 2023-11-01 | 横浜ゴム株式会社 | 混練異常度学習装置、学習済モデルの生成方法及びプログラム |
US11237847B1 (en) | 2019-12-19 | 2022-02-01 | Wells Fargo Bank, N.A. | Automated standards-based computing system reconfiguration |
US11502905B1 (en) | 2019-12-19 | 2022-11-15 | Wells Fargo Bank, N.A. | Computing infrastructure standards assay |
CN116646061B (zh) * | 2023-04-28 | 2024-01-26 | 西安交通大学 | 分布式ct成像和智能诊疗系统及方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231642A (zh) * | 2007-08-27 | 2008-07-30 | 中国测绘科学研究院 | 时空数据库管理方法及其系统 |
US20100098342A1 (en) * | 2008-10-16 | 2010-04-22 | Curators Of The University Of Missouri | Detecting geographic-area change using high-resolution, remotely sensed imagery |
CN102411599A (zh) * | 2011-08-01 | 2012-04-11 | 中国民生银行股份有限公司 | 数据仓库中异常行为的处理方法及监测服务器 |
CN102651020A (zh) * | 2012-03-31 | 2012-08-29 | 中国科学院软件研究所 | 一种海量传感器数据存储与查询方法 |
CN102799621A (zh) * | 2012-06-25 | 2012-11-28 | 国家测绘局卫星测绘应用中心 | 矢量时空数据变化检测方法及其系统 |
US20130066866A1 (en) * | 2011-09-08 | 2013-03-14 | Oracle International Corporation | Bi-temporal user profiles for information brokering in collaboration systems |
US20140101131A1 (en) * | 2012-10-08 | 2014-04-10 | International Business Machines Corporation | Swapping expected and candidate affinities in a query plan cache |
CN103779808A (zh) * | 2013-12-30 | 2014-05-07 | 国家电网公司 | 基于LiDAR的输电线路智能巡检系统 |
US20140280319A1 (en) * | 2013-03-15 | 2014-09-18 | The Florida International University Board Of Trustees | Streaming representation of moving objects and shapes in a geographic information service |
CN104408137A (zh) * | 2014-11-28 | 2015-03-11 | 武汉大学 | 一种网络统计地图可视化数据制备方法 |
US20150081713A1 (en) * | 2013-09-13 | 2015-03-19 | Microsoft Corporation | Social media driven information interface |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2828609B2 (ja) * | 1994-09-22 | 1998-11-25 | 株式会社エイアンドティー | 臨床検査分析装置 |
JP4405658B2 (ja) * | 2000-11-01 | 2010-01-27 | 住友林業株式会社 | 住宅管理方法 |
JP2011055355A (ja) | 2009-09-03 | 2011-03-17 | Oki Electric Industry Co Ltd | 無線通信装置及びプログラム、並びに、無線通信システム |
JP2014021585A (ja) * | 2012-07-13 | 2014-02-03 | Sharp Corp | ネットワークシステム、情報処理装置 |
US9495395B2 (en) * | 2013-04-11 | 2016-11-15 | Oracle International Corporation | Predictive diagnosis of SLA violations in cloud services by seasonal trending and forecasting with thread intensity analytics |
-
2016
- 2016-03-10 JP JP2017546680A patent/JP7064333B2/ja active Active
- 2016-03-10 WO PCT/US2016/021642 patent/WO2016153790A1/en active Application Filing
- 2016-03-10 EP EP16711749.8A patent/EP3274869A1/en not_active Ceased
- 2016-03-10 CN CN201680012718.XA patent/CN107430613B/zh active Active
-
2021
- 2021-02-12 JP JP2021020802A patent/JP7142116B2/ja active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231642A (zh) * | 2007-08-27 | 2008-07-30 | 中国测绘科学研究院 | 时空数据库管理方法及其系统 |
US20100098342A1 (en) * | 2008-10-16 | 2010-04-22 | Curators Of The University Of Missouri | Detecting geographic-area change using high-resolution, remotely sensed imagery |
CN102411599A (zh) * | 2011-08-01 | 2012-04-11 | 中国民生银行股份有限公司 | 数据仓库中异常行为的处理方法及监测服务器 |
US20130066866A1 (en) * | 2011-09-08 | 2013-03-14 | Oracle International Corporation | Bi-temporal user profiles for information brokering in collaboration systems |
CN102651020A (zh) * | 2012-03-31 | 2012-08-29 | 中国科学院软件研究所 | 一种海量传感器数据存储与查询方法 |
CN102799621A (zh) * | 2012-06-25 | 2012-11-28 | 国家测绘局卫星测绘应用中心 | 矢量时空数据变化检测方法及其系统 |
US20140101131A1 (en) * | 2012-10-08 | 2014-04-10 | International Business Machines Corporation | Swapping expected and candidate affinities in a query plan cache |
US20140280319A1 (en) * | 2013-03-15 | 2014-09-18 | The Florida International University Board Of Trustees | Streaming representation of moving objects and shapes in a geographic information service |
US20150081713A1 (en) * | 2013-09-13 | 2015-03-19 | Microsoft Corporation | Social media driven information interface |
CN103779808A (zh) * | 2013-12-30 | 2014-05-07 | 国家电网公司 | 基于LiDAR的输电线路智能巡检系统 |
CN104408137A (zh) * | 2014-11-28 | 2015-03-11 | 武汉大学 | 一种网络统计地图可视化数据制备方法 |
Non-Patent Citations (1)
Title |
---|
ERIC S.CHAN: ""Situation aware computing for big data"", 《2014 IEEE INTERNATIONAL CONFERENCE ON BIG DATA》 * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10740358B2 (en) | 2013-04-11 | 2020-08-11 | Oracle International Corporation | Knowledge-intensive data processing system |
US10205640B2 (en) | 2013-04-11 | 2019-02-12 | Oracle International Corporation | Seasonal trending, forecasting, anomaly detection, and endpoint prediction of java heap usage |
US10333798B2 (en) | 2013-04-11 | 2019-06-25 | Oracle International Corporation | Seasonal trending, forecasting, anomaly detection, and endpoint prediction of thread intensity statistics |
US11468098B2 (en) | 2013-04-11 | 2022-10-11 | Oracle International Corporation | Knowledge-intensive data processing system |
US11614969B2 (en) | 2016-05-09 | 2023-03-28 | Oracle International Corporation | Compression techniques for encoding stack trace information |
CN108319437A (zh) * | 2018-02-28 | 2018-07-24 | 徐保东 | 内容大数据密集程度分析平台 |
CN108805818A (zh) * | 2018-02-28 | 2018-11-13 | 徐保东 | 内容大数据密集程度分析方法 |
TWI669668B (zh) * | 2018-03-21 | 2019-08-21 | 兆豐國際商業銀行股份有限公司 | 資料管理裝置及資料管理方法 |
CN108595644A (zh) * | 2018-04-26 | 2018-09-28 | 宁波银行股份有限公司 | 一种大数据平台运维管理系统 |
CN108804556A (zh) * | 2018-05-22 | 2018-11-13 | 上海交通大学 | 基于时间旅行和时态聚合查询的分布式处理框架系统 |
CN108804556B (zh) * | 2018-05-22 | 2020-10-20 | 上海交通大学 | 基于时间旅行和时态聚合查询的分布式处理框架系统 |
CN109242550B (zh) * | 2018-08-21 | 2021-09-21 | 首钢京唐钢铁联合有限责任公司 | 一种钢铁工序成本预测系统 |
CN109242550A (zh) * | 2018-08-21 | 2019-01-18 | 首钢京唐钢铁联合有限责任公司 | 一种钢铁工序成本预测系统 |
CN111566678B (zh) * | 2018-12-03 | 2023-09-01 | 戴斯数字有限责任公司 | 利用动态关系认知的数据交互平台 |
CN111566678A (zh) * | 2018-12-03 | 2020-08-21 | 戴斯数字有限责任公司 | 利用动态关系认知的数据交互平台 |
CN110008262A (zh) * | 2019-02-02 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种数据导出方法及装置 |
CN110008262B (zh) * | 2019-02-02 | 2023-06-06 | 创新先进技术有限公司 | 一种数据导出方法及装置 |
CN110750384A (zh) * | 2019-10-15 | 2020-02-04 | 浙江众鑫空间科技有限公司 | 大数据管理系统 |
CN111813453A (zh) * | 2020-04-30 | 2020-10-23 | 中科院计算所西部高等技术研究院 | 具有ooda多处理器的计算板卡 |
CN112422234A (zh) * | 2020-11-06 | 2021-02-26 | 应急管理部通信信息中心 | 一种基于时间感知的自适应深度学习的数据治理服务方法 |
CN112990767A (zh) * | 2021-04-20 | 2021-06-18 | 上海领健信息技术有限公司 | 垂直消费医疗类SaaS生产数据计算方法、系统、终端及介质 |
CN112990767B (zh) * | 2021-04-20 | 2021-08-20 | 上海领健信息技术有限公司 | 垂直消费医疗类SaaS生产数据计算方法、系统、终端及介质 |
Also Published As
Publication number | Publication date |
---|---|
JP7064333B2 (ja) | 2022-05-10 |
JP7142116B2 (ja) | 2022-09-26 |
JP2021108127A (ja) | 2021-07-29 |
CN107430613B (zh) | 2021-10-01 |
JP2018509709A (ja) | 2018-04-05 |
EP3274869A1 (en) | 2018-01-31 |
WO2016153790A1 (en) | 2016-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11468098B2 (en) | Knowledge-intensive data processing system | |
JP7142116B2 (ja) | 知識集約型データ処理システム | |
JP7344327B2 (ja) | アプリケーションプログラミングインターフェイスのメタデータ駆動型外部インターフェイス生成ためのシステムおよび方法 | |
Benhlima | Big data management for healthcare systems: architecture, requirements, and implementation | |
Bacchi et al. | Machine learning in the prediction of medical inpatient length of stay | |
US20170124269A1 (en) | Determining new knowledge for clinical decision support | |
US20220199266A1 (en) | Systems and methods for using machine learning with epidemiological modeling | |
US20110191128A1 (en) | Method and Apparatus for Creating a Monitoring Template for a Business Process | |
US20110191351A1 (en) | Method and Apparatus for Using Monitoring Intent to Match Business Processes or Monitoring Templates | |
US20230368070A1 (en) | Systems and methods for adaptative training of machine learning models | |
Post et al. | Protempa: A method for specifying and identifying temporal sequences in retrospective data for patient selection | |
Batool et al. | Predicting hospital no-shows using machine learning | |
Bork et al. | Enterprise Modeling for Machine Learning: Case-Based Analysis and Initial Framework Proposal | |
Kuruganti et al. | Real-Time Automated Health Information Technology Hazard Detection | |
Oliveira | Knowledge engineering for interoperable electronic health records | |
Bellandi et al. | Data management for continuous learning in EHR systems | |
Mohamedali et al. | Application of Complex Event Processing techniques to Big Data related to healthcare: a systematic literature review of case studies | |
ALEMAYEHU | BIG DATA ANALYTICS TO PREDICT CANCER BASED ON DIAGNOSED CLINICAL DATA | |
Rathish Babu et al. | Improvement of the dependency structure of the software architecture model with risk estimation | |
Henriques | Leveraging Knowledge Through Ontology Design | |
Cho et al. | Accuracy and performance evaluation of a clinical decision support system for laboratory result alerts |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |