CN108351796A - 用于在各种运行时环境中与模型交互并执行模型的统一接口规范 - Google Patents

用于在各种运行时环境中与模型交互并执行模型的统一接口规范 Download PDF

Info

Publication number
CN108351796A
CN108351796A CN201680063016.4A CN201680063016A CN108351796A CN 108351796 A CN108351796 A CN 108351796A CN 201680063016 A CN201680063016 A CN 201680063016A CN 108351796 A CN108351796 A CN 108351796A
Authority
CN
China
Prior art keywords
runtime environment
analysis
computerization
data structure
script
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
Application number
CN201680063016.4A
Other languages
English (en)
Other versions
CN108351796B (zh
Inventor
R·N·瓦达潘德什沃拉
S·B·辛格
R·拉维德兰
R·帕蒂尔
N·施蒂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle Financial Services Software Ltd
Original Assignee
Oracle Financial Services Software Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oracle Financial Services Software Ltd filed Critical Oracle Financial Services Software Ltd
Publication of CN108351796A publication Critical patent/CN108351796A/zh
Application granted granted Critical
Publication of CN108351796B publication Critical patent/CN108351796B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

描述了与分析模型的产生和执行相关联的系统(100)、方法(400)和其他实施例(200)。在一个实施例中,一种计算机实现方法(400)包括识别用于执行包括分析表达式的分析模型的选定的运行时环境(410)。产生用户脚本数据结构,该用户脚本数据结构提供分析表达式到运行时环境的可执行表达式的映射(420)。产生计算机化的规范对象,该计算机化的规范对象包括前脚本数据结构、具有分析模型的用户脚本数据结构以及后脚本数据结构(430)。前脚本数据结构指定运行时环境将如何访问要被分析模型操作的输入数据。后脚本数据结构指定如何从运行时环境输出由分析模型生成的结果数据。通过计算机网络将计算机化的规范对象发送到运行时环境以供在运行时环境中执行分析模型(440)。

Description

用于在各种运行时环境中与模型交互并执行模型的统一接口 规范
背景技术
如今,为公司工作的业务分析师可能开发用于帮助理解业务的某个方面的统计模型。模型包括必须被计算系统执行的计算表达式,计算系统运行用于这种模型的专门应用。在一些情况下,模型可能是非常复杂的,并且公司典型地可以使用外部供应商(定量分析提供者)来执行模型。外部供应商提供其中通过定制软件执行模型的运行时环境(runtimeenvironment)。然而,运行时环境被配置为执行特定于运行时环境的计算表达式。因此,运行时环境的任何输入必须为运行时环境识别的特定计算机语言/格式。例如,如果外部供应商是MATLAB,则必须使用MATLAB计算表达式来创建和格式化被提交用于执行的统计模型,以使得该模型可以在MATLAB运行时环境中被执行。同样地,如果使用不同的供应商来执行统计模型,则必须使用该供应商的计算表达式来创建和格式化统计模型。否则,统计模型是无效输入,并且在该供应商的运行时环境中将不执行。
然而,业务分析师没有接受关于任何特定运行时环境的训练。为了简化编程过程,业务分析师可以首先使用例如英语、伪代码或流程图来创建统计模型。业务分析师然后可以与接受关于特定运行时环境及其特定编程语言的训练的软件程序员一起工作。软件程序员然后创建遵守并使用运行时环境的计算表达式的模型的程序。
在以后的日子,如果业务分析师或公司决定应使用新的外部供应商来执行统计模型,则公司的现有统计模型将不起作用。这是因为新的外部供应商很可能提供需要不同的语言并且执行需要不同的计算表达式的模型的不同的运行时环境(例如,Python)。因此,现有统计模型将必须被重新编程以符合该不同的运行时环境的计算表达式。业务分析师可能必须与相同的软件程序员或不同的软件程序员一起工作来创建现有模型的使用新运行时环境的计算表达式的新程序。
公司可能有许多统计模型在切换到新的外部供应商时必须被重新编程。对现有模型重新编程的过程是耗时且昂贵的。重新编程还消耗许多资源(业务分析师、软件程序员等)。此外,每次公司切换到新的外部供应商时,将不得不重复重新编程过程。
发明内容
在一个实施例中,计算机实现方法被描述为由计算设备执行,该计算设备至少包括用于执行来自存储器的指令的处理器。该方法包括:从一组可用的经计算机化的运行时环境中识别选定的运行时环境,其中,该选定的运行时环境被选来执行包括分析表达式的分析模型,其中,分析模型为与选定的运行时环境关于执行不兼容的格式;产生用户脚本数据结构,其中,用户脚本数据结构包括用于基于选定的运行时环境的运行时规范来将分析模型的分析表达式映射到选定的运行时环境的可执行表达式的指令;产生计算机化的规范对象,其中,计算机化的规范对象包括:(i)前脚本(pre-script)数据结构,其指定选定的运行时环境将如何访问要被分析模型操作的输入数据;(ii)用户脚本数据结构和分析模型;以及(iii)后脚本(post-script)数据结构,其指定如何从选定的运行时环境输出由分析模型生成的结果数据;通过计算机网络将计算机化的规范对象发送到选定的运行时环境以供选定的运行时环境执行分析模型,其中,至少用于映射的指令使分析模型在选定的运行时环境中关于执行兼容;并且从选定的运行时环境接收结果数据。
在另一个实施例中,所述方法还包括:通过计算机网络将计算机化的配置对象发送到选定的运行时环境,以基于一组参数与选定的运行时环境同步并且指定在选定的运行时环境中分析模型要在何处被执行。
在另一个实施例中,所述方法还包括:在选定的运行时环境中启动计算机化的规范对象的执行。
在另一个实施例中,其中,可执行表达式包括要被选定的运行时环境按顺序执行的多个计算步骤。
在另一个实施例中,其中,前脚本数据结构被产生为指定选定的运行时环境将如何连接到数据库设备以访问要被分析模型操作的输入数据。
在另一个实施例中,其中,前脚本数据结构被产生为指定要被分析模型操作的输入数据将如何被选定的运行时环境从数据文件读取。
在另一个实施例中,所述方法还包括:提供选定的运行时环境对配置文件的访问,其中,配置文件指定分析模型是否要在选定的运行时环境的本地节点、远程节点、集群节点或者本地节点、远程节点和集群节点的组合上被执行。
在另一个实施例中,所述方法还包括:通过计算机网络将计算机化的启动对象发送到选定的运行时环境,其中,计算机化的启动对象指定要被选定的运行时环境访问的存储有分析模型的输入数据的多个数据结构。
在另一个实施例中,其中,用户脚本数据结构被产生为指定选定的运行时环境要对输入数据执行的分析模型的分析步骤序列。
在另一个实施例中,描述了一种计算系统,该计算系统包括:分析应用逻辑,其被配置为产生计算机化的规范对象,该计算机化的规范对象具有:用户脚本数据结构,其指定具有分析表达式的分析模型,其中,用户脚本数据结构包括用于将分析表达式映射到计算机化的运行时环境的可执行表达式的指令;前脚本数据结构,其指定计算机化的运行时环境将如何访问要被分析模型操作的自变量数据;以及后脚本数据结构,其指定如何输出分析模型在被计算机化的运行时环境执行时生成的结果数据;以及用户界面逻辑,其被配置为促进与分析应用逻辑的用户交互以用于产生计算机化的规范对象。
在所述计算系统的另一个实施例中,其中,分析模型将要被计算机化的运行时环境按顺序执行的多个计算步骤指定为分析表达式。
在所述计算系统的另一个实施例中,其中,分析模型将要被计算机化的运行时环境按顺序执行的多个统计操作指定为分析表达式。
在另一个实施例中,所述计算系统进一步包括被配置为存储自变量数据和结果数据的数据库设备,其中,该数据库设备可以被计算机化的运行时环境访问。
在所述计算系统的另一个实施例中,其中,前脚本数据结构指定计算机化的运行时环境将如何连接到数据库设备以访问自变量数据。
在所述计算系统的另一个实施例中,其中,后脚本数据结构指定计算机化的运行时环境将如何连接到数据库设备以存储结果数据。
附图说明
合并在本说明书中并且构成本说明书的一部分的附图例示了本公开的各种系统、方法和其他实施例。将应理解,附图中例示的元件边界(例如,框、框组或其他形状)表示边界的一个实施例。在一些实施例中,一个元件可以被实现为多个元件,或者多个元件可以被实现为一个元件。在一些实施例中,被示为另一个元件的内部组件的元件可以被实现为外部组件,反之亦然。此外,元件可能不按比例绘制。
图1例示了具有分析应用基础设施(AAI)的系统的一个实施例,AAI被配置为允许分析模型被定义为使得分析模型可以在若干不同的定量分析提供者运行时环境中的任何一个中执行。
图2例示了具有分析应用基础设施(AAI)的系统的另一个实施例,AAI被配置为允许分析模型被定义为使得分析模型可以在若干不同的定量分析提供者运行时环境中的任何一个中执行。
图3例示了部署架构的一个实施例,其示出了从部署角度看图1的系统的样子。
图4例示了可以被图1的分析应用基础设施(AAI)执行的方法的一个实施例。
图5例示了被配置和/或编程有本文所描述的示例系统和方法和/或等同物中的一个或多个的示例计算设备。
具体实施方式
本文描述了被配置为允许用户(例如,业务分析师)创建统计模型(或其他类型的分析模型)的计算机化系统和方法。实现了如下接口:该接口允许分析模型在多种不同类型的运行时环境(例如,MATLAB、Python、R等)中被执行,而无需针对被选来执行模型的特定运行时环境重新产生或重新配置分析模型。
术语“分析模型”在本文中是通用的,并且可以指被配置为可被计算系统读取和被输入到计算系统的数学模型、业务模型、统计模型、算法模型或它们的任何组合。例如,可以在诸如可扩展标记语言(XML)文件之类的文档中使用一系列语句(例如,分析表达式)定义分析模型。
术语“计算机化的运行时环境”、“运行时环境”、“执行环境”、“统计运行时”、“定量分析运行时”和“提供者运行时”在本文中是可交换地使用的,并且是指定量分析提供者提供的计算机化的计算系统(例如,web服务系统)。
如本文所使用的术语“定量分析提供者”或“运行时提供者”是指提供用于执行分析模型的计算机化的运行时环境的供应商。
术语“规范”和“计算机化的规范对象”可以在本文中可交换地使用。
术语“分析应用基础设施”和“分析应用逻辑”在本文中是可交换地使用的。
如本文所使用的术语“推送”及其各种形式是指在其它程序或计算机未请求数据的情况下将该数据发送(例如,传送)到另一个程序或计算机。
如本文所使用的术语“拉出”及其各种形式是指向另一个程序或计算机请求数据并接收数据。
总体概述
在一个实施例中,提供了分析应用基础设施(AAI)。AAI在本文中有时被称为分析应用逻辑。AAI使得脚本化模型的执行能够在计算机化的运行时环境(例如,远程服务器计算机系统)的一个或多个节点上执行。通过利用运行时参数配置AAI,可以在任何节点上进行模型执行,或者可以将模型分布在多个节点上执行。根据一个实施例,作为AAI的一部分,提供允许统计模型被插入到运行时环境中并且以声明的方式配置用于该运行时环境的处理节点的接口和插件驱动器。
AAI提供允许任何统计运行时环境被用于执行分析模型的接口规范和插件模块。作为例子,可以定义分析模型,而不管专门用于在特定运行时环境(例如,MATLAB、Scala、M-Lib等)中执行分析模型的编码格式或语法。不同的运行时环境针对输入的分析模型需要不同的编码格式。因此,如果分析模型是以与运行时环境预期的格式不同的格式定义的,则分析模型将不被运行时环境识别,并且不能被执行(例如,非兼容格式)。AAI允许一种格式的分析模型在各种运行时环境中的任何一种中都被提交和执行,而不管格式如何。另外,在一个实施例中,AAI提供向运行时环境提供指令的功能性,这些指令以声明的方式对运行时环境的特定硬件基础设施(例如,本地节点、远程节点、Hadoop集群)指导分析模型的处理。
在一个实施例中,AAI产生包括“前脚本”块、“用户脚本”块和“后脚本”块的执行模型或规范。根据一个实施例,该规范是作为计算机化的对象(即,计算机化的规范对象)产生和维护的。从一个角度来讲,这三个组件一起(前脚本块、用户脚本块、后脚本块)创建可执行工件,该可执行工件可以被以声明的方式关联到特定定量分析提供者的指定的运行时环境,并且另外还可以面向在本地或远程节点上或在Hadoop集群上运行。在一个实施例中,前脚本插件和后脚本插件被很好地指定。前脚本和后脚本可以由定量分析提供者(运行时环境——主机服务器侧)或分析应用逻辑的提供者(客户端侧)实现。
根据一个实施例,AAI在计算机化的规范对象(规范)中包括以下不同部分:
-启动块,其建立使建模者拥有、用数据工作并且执行模型的证书。
-前脚本块,其将模型变量绑定到数据句柄,准备用于模型的工作空间,准备提供者特定的用于查询数据的句法结构,并且准备输入/输出数据结构。
-核心业务逻辑,其至少部分由用户脚本块中的定量分析技术的统计模型(模型定义)以及与可变/静态参数和占位符的绑定表示。核心业务逻辑基于与用户脚本块相关联的元信息来自动地确定绑定的运行时环境。例如,元信息标识已经(从一组运行时环境)被选来执行统计模型的特定运行时环境。因此,改变与用户脚本块相关联的元信息在无需模型定义(即,分析/统计模型)的改变的情况下切换运行时环境(从而切换提供者)。
-后处理块(后脚本块),其为下游消耗准备执行的输出。
-配置块,其保存指示在选定的运行时环境内要使用什么硬件来运行模型(例如,本地节点、远程节点、节点集群)的信息和其他环境参数。
本文的很多描述是就统计模型提供的。然而,其他类型的分析模型也是可能的。系统被配置为能够访问例如基于MATLAB和Python的运行时环境并且使统计模型针对它们两个执行。统计模型是单个定义模型。目前典型的是,如果算法是针对MTALAB开发的,则MATLAB特定的代码被编写。类似地,如果算法是针对Python开发的,则Python特定的代码被编写。在一个实施例中,能够定义可以与底层的MATLAB、Python或其他运行时环境绑定并且一起运行的统计模型(单个定义模型)的一个规范(脚本,非代码),而无需以运行时环境的特定代码对该模型进行代码化。
统计模型执行的功能可以以运行时不可知的方式(例如,经由脚本)指定。典型地,统计模型具有一组自变量(输入数据)和一组因变量(结果数据)。例如,因变量可以是某个段的人群拖欠他们的住房贷款的概率。自变量可以是国内生产总值(GDP)、失业率、通货膨胀率以及住房贷款的余额的历史平均值。模型可以对这四(4)个自变量进行运算以计算或确定违约概率。这四(4)个自变量可以经过如由模型定义的各种分析算法(例如,可能是线性回归算法或按若干步骤运行以最后确定最终结果(其是违约概率)的某个其他的统计算法)。
在一个实施例中,产生基于声明式范式(例如,英语口语)声明式规范(计算机化的规范对象)。在计算机化的规范对象中,变量被选择,这些变量将经历的计算的类型被声明,并且输出结果的类型被定义。该声明式规范然后例如以XML格式被存储。规范然后可以被发送给底层的定量分析提供者(例如,MATLAB或Python)以使得来自规范的三个分开的不同的指令集被输入到定量分析提供者的运行时环境。
在一个实施例中,第一指令集是前脚本,该前脚本指示定量分析提供者运行时环境连接到特定数据库,并且将某些表和列映射到正被发送的变量。第二指令集是用户脚本,该用户脚本是查询定量分析提供者以提供计算例如线性回归或某个(某些)其他的数学函数的表达式(一个或多个)的算法或统计模型。基于运行时环境提供的东西,来自上述示例的在前脚本中查询和定义的四(4)个自变量被输入到该表达式中。第三指令集是后脚本,在该后脚本中,运行时环境在已经计算输出结果之后被指导将输出结果存储在被作为因变量占位符发送的占位符中。具有前脚本、主要的用户脚本和后脚本的方法对于定量分析提供者的底层运行时环境(定量分析引擎)是统一的。也就是说,具有在用户脚本(单个定义)中定义的相同的分析模型的相同的规范结构可以在不必重写分析模型或偏离规范结构(前脚本、用户脚本、后脚本)的情况下与任何底层运行时环境一起使用。
在一个实施例中,定量分析提供者(例如,MATLAB或Python)的运行时环境不必被编程为识别分析应用基础设施(AAI)或任何特定的接口信息的详情。脚本保证模型将在运行时环境中工作。客户不想被限于必须依赖一个定量分析提供者来执行它们的统计模型。本文所描述的机制允许客户在不必将现有统计模型重新编程为具有特定于运行时环境的新表达式的新语言的情况下从一个运行时环境移到另一个运行时环境。就目前的系统和方法而言,AAI环境中定义的统计模型可以被输入以便与不同的运行时环境一起执行。
图1例示了具有分析应用基础设施或逻辑110的计算机化系统100的一个实施例。分析应用逻辑110被配置为在不必对统计模型重新进行编程/编写以符合选定的运行时环境的特定要求的情况下允许分析(例如,统计)模型被定义并被部署/提交以便在若干不同的运行时环境中的任何一个中执行。分析应用逻辑110包括Java引擎112,Java引擎112支持计算机化的规范对象114(规范)的产生。计算机化的规范对象114包括前脚本115、用户脚本116和后脚本117。如本文稍后所讨论的,计算机化的规范对象114还可以包括计算机化的启动对象和计算机化的配置对象。
计算机化系统100还包括数据库设备120,数据库设备120直接地和/或经由网络接口可操作地连接到分析应用逻辑110,以允许经由网络连接对数据库设备120进行访问。根据一个实施例,数据库设备120被配置为在数据库系统(例如,分析应用数据库系统)中存储和管理与分析应用逻辑110相关联的计算机化的对象和数据结构(例如,统计模型的自变量数据和输出结果数据的记录)。
计算机化系统100还包括可操作地连接到分析应用逻辑110的用户界面逻辑130。在一个实施例中,用户界面逻辑130被配置为产生促进与分析应用逻辑110的用户交互的图形用户界面(GUI)。例如,用户界面逻辑130包括基于所实现的界面图形设计来产生图形用户界面并且使图形用户界面被显示的程序代码。响应于经由GUI的用户动作和选择,可以操纵脚本和模型定义的相关方面。
计算机化系统100还包括可操作地连接到分析应用逻辑110的显示屏幕140。根据一个实施例,显示屏幕140被实现为显示由用户界面逻辑130产生的图形用户界面(GUI)的视图并且促进与该GUI的用户交互以用于查看和更新与单个定义分析建模相关联的信息。在一个实施例中,分析应用逻辑110是被许多客户端设备/用户访问的集中式服务器侧应用。因此,显示屏幕140可以表示允许用户经由联网的计算机通信从分析应用逻辑110访问和接收服务的多个计算设备/终端。
此外,用户界面逻辑130被配置有用于从用户可选的可用运行时环境的列表中选择一个运行时环境的输入参数。该输入参数标识选定的分析模型将被部署执行的运行时环境。在一个实施例中,选定的运行时环境被存储为元信息。在以下讨论中,选定的运行时环境将被称为由定量分析提供者托管在远程计算机系统上的计算机化的运行时环境150(参见图1)。
用户界面逻辑130还被配置为促进输出结果数据和经由图形用户界面在显示屏幕140上显示结果数据。结果数据是计算机化的运行时环境150在执行了被提交执行的选定的分析模型之后产生的和从计算机化的运行时环境150接收的数据。本文稍后接着进一步讨论计算机化的运行时环境150。根据各种其他的实施例,其他类型的结果数据也是可能的。
其他实施例可以提供不同的逻辑或逻辑组合来提供与图1的分析应用逻辑110相同的或类似的功能性。在一个实施例,分析应用逻辑110是包括被配置为执行该逻辑在被计算机化系统100的处理器执行时的功能的算法和/或程序模块的可执行应用。该应用作为计算机程序产品被存储在非暂时性计算机存储介质中。在一个实施例中,分析应用逻辑110的功能被实现为在非暂时性计算机可读介质上存储的模块,其中模块包括至少处理器可执行的指令以执行本文所述的功能。笼统地说,分析应用逻辑110、数据库设备120、用户界面逻辑130、显示屏幕140以及之间的可操作连接在本文中被称为分析应用环境。
在一个实施例中,图1示出了描述由分析应用逻辑110产生并被包括到规范(计算机化的规范对象)中的组件的块。规范被产生为包括数据结构形式的前脚本115、用户脚本116和后脚本117。用户脚本116被产生为包括实际的定量分析块(用于执行的统计模型被添加到用户脚本数据结构)。图1示出了前脚本115、用户脚本116和后脚本117如何被输入到定量分析提供者的计算机化的运行时环境150。在图1中,R用作定量分析引擎(还示出了作为替代的定量分析引擎的MATLAB、Python等)。基本构思可以与传统的设置一起工作,或者可以使用集群的Hadoop架构来实现。脚本不必包含关于底层硬件规范的信息或关于脚本将如何被定量分析提供者运行的信息。
定量分析提供者是提供用于执行统计模型的运行时环境的实体(例如,具有主机服务器的供应商)。分析应用逻辑提供者是使用分析应用逻辑110来提交用于在运行时环境上执行的一个或多个统计模型的实体(例如,客户端)。回想起存在可用于选择的多个不同的运行时环境,其中每个运行时环境可以执行特定格式的统计模型。规范(前脚本、用户脚本、后脚本)指示选定的运行时环境要实现什么。例如,运行时环境可以直接实现前脚本和后脚本(例如,在主机服务器上产生和实现的)。可替代地,定量分析提供者可以公布运行时环境的规范,该规范描述运行时环境的功能的语法、格式等(例如,描述为了连接到例如数据库以执行查询而在内部调用什么功能)。通过从多个不同的运行时环境获得规范,每个识别的运行时环境可以以数据结构的形式产生运行时规范的数据库,并且组织该数据库。如稍后将描述的,运行时规范可以用于产生用户脚本116的翻译指令。然后,分析应用逻辑110被配置为根据选定的运行时环境的运行时规范来产生并执行前脚本和后脚本。两种方法都是可行的。
因此,如果定量分析提供者想要客户端实现前脚本和后脚本,则定量分析提供者必须与客户端共享运行时规范以及包括如何连接到数据库以在运行时环境内执行查询的语法。然后,给定来自定量分析提供者的规范,操作分析应用逻辑110的客户端可以实现前脚本和后脚本。可替代地,定量分析提供者可以在内部针对用于与特定客户端一起操作的运行时环境来实现前脚本和后脚本,例如,如果定量分析提供者不想向客户端透露运行时规范的话。
一个实施例提供规范(前脚本、用户脚本、后脚本)的配置以及将规范输入到定量分析提供者的指定的运行时环境并启动执行的能力。基于脚本的规范是指定模型使得该模型可以与任何运行时环境一起工作的中性方法。也就是说,即使每个运行时环境对于模型需要不同的表达式,相同的模型也能在不同的运行时环境中执行。通常,底层的统计代码(例如,对于MATLAB等)是专有的。但是AAI的用户不必为了使用运行时环境执行已经被开发的统计模型而要获悉或理解专有代码。用户统计模型是不管统计模型在何处被输入执行(MATBLA、Python、R等)都保持完整无缺的业务级模型。规范(前脚本、用户脚本、后脚本)本质上是用户接口规范。在一个实施例中,前脚本和后脚本被重新配置为特定于特定的运行时环境。例如,基于运行时环境如何连接到数据库并且查询数据库,脚本包括根据运行时环境的协议的命令或代码。因此,脚本提供允许统计模型在运行时环境中可执行的接口。
前脚本是由分析应用逻辑110产生的块,其指示计算机化的运行时环境150如何得到/读取分析模型中的表达式所用的数据(例如,输入的变量数据)。在一个实施例中,数据驻留在分析应用基础设施数据库设备120中。也就是说,数据如何被从数据库设备120提取并被提供给计算机化的运行时环境150是在前脚本块中定义的。例如,在一个实施例中,前脚本数据结构115指定计算机化的运行时环境如何连接到数据库设备120以访问自变量数据。
前脚本访问数据,并且将数据组织为使得外部的运行时环境可以正确地读取和识别作为分析模型的一部分输入的数据的格式。例如,一个运行时环境可以被配置为将数据读取为值列表。因此,如果输入数据没有被格式化为值列表,则输入数据将不被正确地读取。另一个运行时环境可以被配置为以表格式读取数据。第三运行时环境可以以特定格式(诸如Excel格式)读取数据。也就是说,每个定量分析提供者可以以适合于他们的运行时环境的不同方式处理数据。因此,前脚本是针对特定定量分析提供者的运行时环境相应地构造或配置的。前脚本允许连接到数据环境,允许数据被提取出来,并且以运行时环境可以适当地观察数据的方式来管理数据。
用户脚本是规范对象114的主要部分。用户脚本指定分析(例如,统计)模型,例如,通过使用线性回归以及其他的统计方法和数学方法,该分析模型基于四(4)个自变量来计算例如一组客户拖欠贷款的概率。也就是说,用户脚本指定要对自变量数据执行的计算(例如,统计)步骤或操作(作为分析表达式)系列。定量分析提供者提供将在运行时环境150中对数据进行操作并且计算结果的实际的统计和数学函数(可执行表达式)。输入数据可以被前脚本使用。在一个实施例中,用户脚本包括用于将构成分析模型的分析表达式映射到计算机化的运行时环境的可执行表达式的指令。因此,用户脚本提供了即使分析模型本身具有不可识别的/不兼容的格式、也允许运行时环境执行输入的分析模型的机制。
例如,假设存在线性回归函数将输入和操作三(3)个变量的一种方式。因此,一旦输入数据通过前脚本方法被处理(被访问、被管理等),该数据就通过众所周知的数学原理被绑定到底层的算法,并且这些算法按用户脚本中指示的顺序被调用。因此,对于算法如何被实例化以及在算法中数据如何被呈现给占位符,运行时环境在执行期间不能改变底层的数学基础。
例如,线性回归算法可以被配置为输入在括号中用逗号分隔的三(3)个变量。这样的数学格式不能被改变。即使对于线性回归算法来说,数据可以被作为值列表呈现给运行时环境,该算法的名称或表达式也必须被运行时环境识别并且是运行时环境可标识的。例如,MATLAB运行时环境可以调用算法“线性回归”,Python运行时环境可以调用算法“LREG”,第三定量分析提供者运行时环境可以调用算法“LR”。运行时环境的名称、格式和其他规则可以被认为是由运行时规范定义的运行时环境的语法。如前面所提及的,运行时规范(为数据结构形式)的数据库可以从各种可用的运行时环境产生。
因此,在一个实施例中,响应于选定的运行时环境,从数据库分析对应的运行时规范,并且产生包括选定的运行时环境的语法特定的/兼容的表达式的用户脚本。因此,在一个实施例中,为了使在分析应用环境中开发的分析模型与不同的运行时环境兼容,用户脚本包括基于运行时规范、对于对应的步骤/动作将分析模型中的步骤的名称重新映射到运行时环境所用的名称和语法的声明。因此,在一个实施例中,用户脚本被配置为将分析模型(没有特定的格式或语法)的声明翻译为符合选定的运行时环境的语法的声明。
在一个实施例中,来自定量分析提供者的运行时规范可以包括关于如何从算法获取输出结果并且读回输出结果的信息或数据。这样的信息或数据可以在后脚本中用于定义数据的输出。例如,如果输出是将拖欠住房贷款的一组客户的违约概率,则运行时环境可以以若干不同的方式返回值(例如,用数字、作为字符串、作为必须被解码回数字格式的某个二进制值)。后脚本被相应地配置为使得结果可以被写回或输出回分析应用环境(例如,数据库设备120)。因此,如何从运行时环境读回输出的运行时规范的获悉被用于正确地配置后脚本。因此,再一次地,后脚本可以针对特定的运行时环境定制。例如,在一个实施例中,后脚本数据结构117指定计算机化的运行时环境将如何连接到数据库设备120以存储结果数据。
将输出结果写回到分析应用环境是基于分析应用环境(客户端/客户系统)如何被配置。然而,在一个实施例中,后脚本表达式可以从客户端系统传送到运行时环境,以在该运行时环境内实现。以这种方式,运行时环境可以被配置为以用于输出执行结果的客户端系统的要求进行操作。
当客户想要从一个定量分析提供者变为另一个定量分析提供者、从而改变运行时环境时,前脚本和后脚本被产生与新的运行时环境兼容。用户脚本也被产生,以将模型中所用的步骤或调用函数的表达式名称重新映射到新的运行时环境的对应算法(例如,线性回归、相关等)的名称/语法,从而与新的运行时环境兼容。在一个实施例中,如前所述,新的运行时环境的运行时规范是从数据库检索的,并且用于确定适当的翻译和映射指令。因此,对于用户脚本,执行将模型中的声明翻译为运行时环境的对应的声明和语法的映射。分析应用环境名称被获取,并且被映射到运行时环境名称。因此,当客户改变定量分析提供者时,基于新的运行时环境的语法来对用户脚本执行并产生新的映射。业务分析师看不见该映射。因此,对于业务分析师,统计模型(在用户脚本中定义)没有改变,并且不必被业务分析师重新编程。
在一个实施例中,存在启动块(例如,计算机化的启动对象),该启动块是计算机化的规范对象114的一部分,计算机化的规范对象114提供了在启动实际执行之前在分析应用环境中发生的一组步骤。在另一个实施例中,启动块可以是与计算机化的规范对象分开的计算机化的启动对象。
启动块定义哪些表、列等供应实际数据。一些定量分析提供者将输出结果作为文件写回。他们永远不对数据库设备120进行读写。因此,如果定量分析提供者将该文件提供给分析应用环境,则分析应用环境确定什么数据结构将被预先准备以使得存在允许定量分析提供者写回到文件的写入许可。
在某种意义上,启动块取决于底层的运行时环境而被执行一次。今天的执行可以发生在Linux box上,明天的执行可以发生在集群上,后天的执行可以发生在UNIX IBM大型机环境中。因此,取决于底层的部署环境,启动块在分析应用基础设施过程开始时被执行一次。
配置块(例如,计算机化的配置对象)用于使系统元件中的一个或多个与一组参数同步。该组参数可以包括例如与远程文件的位置相关的参数(Remote_File_Location)、边缘节点的标识(Edge_Node_Identifier)、hive会话(Hive_Session_Parameters)以及函数的标识(Function_ID)。此外,配置块可以定义在计算机化的运行时环境中模型正在何处运行(本地节点、远程节点、在集群上)。因此,在一个实施例中,主机名称在系统内是共享的,以使得系统被指示和/或可以识别函数正在何处执行、数据在何处被切换、结果在何处被返回、哪个文件夹要访问等。这些参数和/或指令是在配置块中设置和定义的。根据各种实施例,计算机化的配置对象可以是计算机化的规范对象的一部分,或者可以是完全分开的对象。
系统执行流程
再次参照图1,图1的左侧示出了包括分析应用逻辑110的分析应用环境的一个实施例。还存在数据库设备120,数据库设备120包括其中存储了用分析应用逻辑110定义的对象的元模型数据库。图1示出了与元模型数据库120的虚线连接,元模型数据库120是保存所有被定义的对象的储存库。甚至模型定义也是被存入元模型数据库120中的对象。
根据一个实施例,AAI的应用层级是Java引擎112。应用层级中的关键框架是在其中(例如,由人类业务分析师)构建有统计模型的建模框架。核心建模框架是业务用户(人类业务分析师)以声明的方式定义导致至少具有前脚本、用户脚本和后脚本的计算机化的规范对象114(规范)的模型的意图的地方。
在一个实施例中,计算机化的规范对象114被表示为XML文件。XML文件的内容例如在某个意义上是英语口语,以使得任何懂英语的人都可以查看XML文件并且理解模型定义的含义。因此,规范(前脚本、用户脚本、后脚本)是传统上用统计编程的不便的且隐秘的语言编写的记号翻译为业务人员可以理解的记号。这在图1中被表示为XML文件118中的“模型运行时”节点配置。XML文件118表示意图加上最终进入执行模型的其他一切(例如,规范、启动块和配置块)。XML文件118变为理解模型和该模型的执行动态的单个参考点。
图1还示出了相同的模型定义被输入到节点的表示,在该节点中,计算机化的运行时环境150通过首先获取模型定义并且将模型定义绑定到实际实现(例如,基于R的运行时引擎152或基于MATLAB的或基于Python的运行时引擎154)来进行模型的执行。然后,执行的物理方面可以被输入到Hadoop节点(例如,商用硬件的集群)。这些各种可执行硬件系统节点由定量分析提供者出于各种原因/偏好确定。图1示出了被配置为在Hadoop环境中运行的执行环境。Hadoop环境具有单个主节点156以及一对工作者从节点157和158,在这些节点处分析模型被逐个时钟周期地实际执行。
参照图2,图2的系统200类似于图1的系统100,除了图2的系统200使用数据的基于文件的表示之外。在图1中,这样的文件没有表示。在图2中,存在被标记为“针对模型输入数据集和变量创建的hdfs文件”的块210。hdfs文件是Hadoop分布式文件系统文件。系统200示出用于模型的执行的数据可以通过以下两种方式之一共享,即,允许定量分析提供者运行时环境连接到AAI数据仓库(数据库)120,或者提供数据的基于文件的表示(块210)以使得定量分析提供者运行时环境不必连接到AAI数据仓库120。到那种程度的话,以任何形式或方式,定量分析提供者运行时环境对于分析应用逻辑110的存在都是完全不可知的。块210的hdfs文件变为用于使数据进入定量分析提供者运行时环境150并且得回结果数据的管道。
图3例示了部署架构的一个实施例,其示出了从部署角度看图1的系统100的样子。分析应用环境310在图3的右侧,定量分析提供者环境320在图3的左侧。如图3所示,规范的前脚本322和后脚本324部分已经作为插件被从分析应用环境310发送(推送)到定量分析提供者环境310,并且统计模型已经被从分析应用环境输入到(推送到)定量分析提供者环境。
根据一个实施例,图3所示的推送过程是执行如何被启动。图3的块326是提供者运行时环境320执行分析模型的地方,并且可以根据分析模型的复杂度和待处理的数据量在若干节点上铺开。后脚本324被配置为写回到盘或hdfs文件328。该文件经由接收(拉出)过程被读回,并且被放到AAI数据库设备312,AAI数据库设备312在图3的右边示出。拉出过程是包括将数据请求发送到另一个计算机、并且在该计算机用输出结果做出响应之后从该计算机接收输出结果的网络通信过程。图3中的左下角上的Hive管理部分330示出了集群的正在执行不同的可执行任务的分布部分。
图4例示了图1的分析应用逻辑110可以执行的方法400的一个实施例。方法400描述了分析应用逻辑110的操作,并且被实现为由图1的分析应用逻辑110或被配置有方法400的算法的计算设备执行。例如,在一个实施例中,方法400由被配置为执行计算机应用的计算设备实现。该计算机应用被配置为以电子形式对数据进行处理,并且包括所存储的执行方法400的功能的可执行指令。
将从图1的角度来描述方法400,在图1中,分析应用逻辑110是计算机化系统100的一部分,其中计算机化系统100提供了用户界面以及用于将分析模型提交到一组可用运行时环境中的选定的运行时环境的翻译机制。再次,分析模型可以被描述为数学模型、业务模型、统计模型、算法模型或它们的任何组合。例如,可以使用诸如可扩展标记语言(XML)文件之类的计算机化文档中的一系列声明(例如,分析表达式)来定义分析模型。分析模型由例如业务分析师使用在分析应用环境中统一的分析表达式产生。方法400允许业务分析师或其他操作者从一组可用运行时环境中选择用于执行分析模型的运行时环境。因此,方法400提供在不必对分析模型进行修改或重新编程的情况下容易地从一个运行时环境切换到不同的运行时环境来实际执行分析模型的机制。
当启动方法400以开始提交分析模型以供执行的过程时,在块410,从用户界面读取识别选定的运行时环境的输入参数。在一个实施例中,所识别的运行时环境被存储为元信息。在一个实施例中,可以显示可用运行时环境的列表/组以允许用户做出选择。然后如前所述从数据库检索选定的运行时环境的运行时规范。运行时规范至少定义相关联的运行时环境的语法和函数/声明,并且该数据用于产生用户脚本的适当的指令。块410还可以包括从一组现有的分析模型中识别要提交执行的分析模型。可以经由用户界面从用户输入识别模型,然后所述方法包括从存储了所识别的模型的数据库或其他存储位置检索模型。如前面所说明的,分析模型包括使用与运行时环境不兼容的格式定义的分析表达式。
在块420,产生用户脚本数据结构。使用检索的运行时规范来产生用于将分析模型的声明映射到运行时环境的等效/对应的声明的指令。例如,用户脚本数据结构包括用于基于元信息来将分析模型的分析表达式映射到计算机化的运行时环境的可执行表达式的指令。根据一个实施例,可执行表达式可以包括要被计算机化的运行时环境按顺序执行的多个计算步骤。在一个实施例中,用户脚本数据结构指定计算机化的运行时环境将对输入数据执行的分析模型的分析步骤序列。即使分析模型是以运行时环境不可识别的格式定义的,运行时环境也使用用户脚本数据结构的指令来适当地读取并执行分析模型。在一个实施例中,待执行的选定的分析模型被添加到用户脚本数据结构/与用户脚本数据结构包括在一起。
在块430,产生计算机化的规范对象。如前所述,该计算机化的规范对象包括用户脚本数据结构和要执行的分析模型、前脚本数据结构以及后脚本数据结构。后脚本数据结构指定如何从计算机化的运行时环境输出由分析模型生成的结果数据。前脚本数据结构指定计算机化的运行时环境将如何访问要被分析模型操作的输入数据(例如,自变量数据)。
例如,前脚本数据结构可以指定计算机化的运行时环境如何连接到数据库设备以访问要被分析模型操作的输入数据。可替代地,前脚本数据可以指定要被分析模型操作的输入数据将如何被计算机化的运行时环境从数据文件读取。
在块440,通过计算机网络将计算机化的规范对象(其包括分析模型)推送到选定的计算机化的运行时环境以供计算机化的运行时环境执行分析模型。再次,如本文所使用的术语“推送”及其各种形式是指在其他程序或计算机(例如,计算机化的运行时环境)还没有请求数据的情况下经由网络通信将该数据发送(例如,传送)到另一个程序或计算机。根据一个实施例,计算机化的规范对象在运行时环境中的执行可以在运行时环境处被接收到时启动。
至少根据用户脚本数据结构中包含的用于映射的指令来使分析模型被选定的运行时环境执行。映射指令允许运行时环境适当地读取并执行分析模型,从而使分析模型兼容在运行时环境中运行。因此,计算机化的规范对象充当使分析模型与选定的运行时环境兼容的接口,即使分析模型是以与运行时环境不兼容的格式定义的。当执行分析模型时,运行时环境产生结果数据。
在块450,从计算机化的运行时环境拉出计算机化的运行时环境通过执行分析模型产生的结果数据。再次,如本文所使用的术语“拉出”及其各种形式是指向另一个程序或计算机请求数据并且经由网络通信接收该数据。在一个实施例中,当运行时环境完成分析模型执行时,基于后脚本数据结构将结果数据从运行时环境拉到分析应用环境。
利用本计算机化方法400,通过经由用户界面(其改变元信息)选择新的运行时环境,分析模型可以被选定的运行时环境执行,而无需用与选定的运行时环境兼容的格式重新编程/编写。基于新选择的运行时环境的运行时规范来重新产生用户脚本数据结构,以将分析模型的分析表达式重新映射到新选择的运行时环境的可执行表达式。分析模型连同用户脚本数据结构一起然后被发送到新的运行时环境以用于执行。
此外,在一个实施例中,可以通过计算机网络将计算机化的配置对象推送到计算机化的运行时环境。计算机化的配置对象被用来与计算机化的运行时环境的系统元件同步并且指定分析模型在计算机化的运行时环境中将被执行的地方。
在一个实施例中,提供计算机化的运行时环境对配置文件的访问。配置文件指定分析模型在计算机化的运行时环境中将被执行的地方(例如,硬件方面)。例如,配置文件可以指定分析模型将在运行时环境中的本地节点、远程节点、集群节点或它们的组合上被执行。
在一个实施例中,可以通过计算机网络将计算机化的启动对象推送到计算机化的运行时环境。计算机化的启动对象指定要被计算机化的运行时环境访问的存储有分析模型的输入数据的多个数据结构。
以这种方式,用户(例如,业务分析师)可以产生能在任何定量分析提供者运行时环境中执行的分析模型。可以产生具有标准化格式的计算机化的规范对象。标准化格式至少包括前脚本数据结构、用户脚本数据结构和后脚本数据结构。用户脚本数据结构指定分析模型,并且在用户脚本数据结构执行时将分析模型的分析表达式映射到选定的运行时环境的可执行表达式。
云或企业实施例
在一个实施例中,本系统是包括企业中的可执行应用或分布式应用集合的计算/数据处理系统。本分析应用基础设施(AAI)是所实现的应用的组件/程序模块。应用和计算系统可以被实现为基于云的联网系统、软件即服务(SaaS)架构或其他类型的联网计算解决方案,或者被配置为与它们一起操作。在一个实施例中,本系统是至少提供本文所公开的功能并且可以被许多用户经由通过计算机网络与计算系统(充当服务器)通信的计算设备/终端访问的集中式服务器端应用。
在一个实施例中,本文所描述的组件(包括AAI)中的一个或多个被配置为存储在非暂时性计算机可读介质中的程序模块。这些程序模块被配置有存储的指令,这些指令当至少被处理器执行时使计算设备执行如本文所描述的对应功能(一个或多个)。
计算设备实施例
图5例示了被配置和/或编程有本文所描述的示例系统和方法和/或等同物中的一个或多个的示例计算设备。示例计算设备可以是计算机500,计算机500包括被总线508可操作地连接的处理器502、存储器504和输入/输出端口510。在一个例子中,计算机500包括分析应用逻辑530,其类似于图1中的分析应用逻辑110,被配置为促进如前所述的AAI的功能。在不同的例子中,逻辑530可以用硬件、存储有指令的非暂时性计算机可读介质、固件和/或它们的组合来实现。虽然逻辑530被示为附连到总线508的组件,但是应理解,在其他实施例中,逻辑530可以在处理器502中被实现、被存储在存储器504中、或者被存储在盘506中。
在一个实施例中,逻辑530或计算机是用于执行所描述的动作的部件(例如结构、硬件、非暂时性计算机可读介质、固件)。在一些实施例中,计算设备可以是在云计算系统中操作的服务器、用软件即服务(SaaS)架构配置的服务器、智能电话、膝上型计算机、平板计算设备等。
所述部件还可以被实现为存储的计算机可执行指令,计算机可执行指令作为临时存储在存储器504中的数据516被呈现给计算机500,然后被处理器502执行。
逻辑530还可以提供用于执行分析应用基础设施(AAI)的功能的部件(例如,硬件、存储可执行指令的非暂时性计算机可读介质、固件)。
概括地描述计算机500的示例配置,处理器502可以是包括双微处理器和其他多处理器架构的各种处理器。存储器504可以包括易失性存储器和/或非易失性存储器。非易失性存储器可以包括例如ROM、PROM等。易失性存储器可以包括例如RMA、SRAM、DRAM等。
存储盘506可以经由例如输入/输出(I/O)接口(例如,卡、装置)518和输入/输出端口510可操作地连接到计算机500。盘506可以例如是磁盘驱动器、固态盘驱动器、软盘驱动器、Zip驱动器、闪存卡、记忆棒等。此外,磁盘506可以是CD-ROM驱动器、CD-R驱动器、CD-RW驱动器、DVD ROM等。存储器504可以存储例如进程514和/或数据516。磁盘506和/或存储器504可以存储控制和分配计算机500的资源的操作系统。
计算机500可以经由I/O接口518和输入/输出端口510与输入/输出(I/O)设备交互。输入/输出设备可以例如是键盘、麦克风、指指向和选择设备、相机、视频卡、显示器、盘506、网络设备520等。输入/输出端口510可以包括例如串行端口、并行端口和USB端口。
计算机500可以在网络环境中操作,因此,可以经由I/O接口518和/或I/O端口510连接到网络设备520。通过网络设备520,计算机500可以与网络交互。通过网络,计算机500可以逻辑地连接到远程计算机。计算机500可以交互的网络包括但不限于LAN、WAN和其他网络。
定义和其他实施例
在另一个实施例中,所描述的方法和/或它们的等同物可以用计算机可执行指令来实现。因此,在一个实施例中,非暂时性计算机可读/存储介质被配置有算法/可执行应用的存储的计算机可执行指令,该算法/可执行应用当被机器(一个或多个)执行时使该(这些)机器(和/或相关联的组件)执行所述方法。示例机器包括但不限于处理器、计算机、在云计算系统中操作的服务器、用软件即服务(SaaS)架构配置的服务器、智能电话等。在一个实施例中,计算设备用被配置为执行所描述的任何方法的一个或多个可执行算法来实现。
在一个或多个实施例中,所公开的方法或它们的等同物由以下任一项执行:被配置为执行所述方法的计算机硬件;或以非暂时性计算机可读介质体现的包括被配置为执行所述方法的可执行算法的计算机软件。
虽然为了简化说明的目的,附图中所示的方法被显示和描述为算法的一系列块,但是应立即,这些方法不受块的次序限制。一些块可以按与所示的和所描述的次序不同的次序发生和/或与其他块同时发生。而且,可以使用比所示的所有块少的块来实现示例方法。可以组合块或将块分为多个动作/组件。此外,另外的和或替代的方法可以采用块中未例示的附加动作。
以下包括本文所用的选定术语的定义。定义包括落在术语的范围内的并且可以用于实现的组成部分的各种例子和/或形式。例子并非意图是限制。单数和复数这两种形式的术语可以在定义内。
所称“一个实施例”、“实施例”、“一个例子”、“例子”等指示如此描述的实施例(一个或多个)或例子(一个或多个)可以包括特定的特征、结构、特性、性质、要素或限制,但是并非每一个实施例或例子都必定包括该特定的特征、结构、特性、性质、要素或限制。此外,短语“一个实施例”的重复使用不一定指的是同一个实施例,尽管可以。
ASIC:专用集成电路
CD:紧凑盘
CD-R:CD可录制的
CD-RW:CD可重写的
DVD:数字多功能盘和/或数字视频盘
LAN:局域网
RAM:随机存取存储器
DRAM:动态RAM
SRAM:同步RAM
ROM:只读存储器
PROM:可编程ROM
USB:通用串行总线
WAN:广域网
“可操作的连接”或实体通过其“可操作地连接”的连接是其中信号、物理通信和/或逻辑通信可以被发送和/或接收的连接。可操作的连接可以包括物理接口、电气接口和/或数据接口。可操作的连接可以包括足以允许可操作的控制的接口和/或连接的不同组合。例如,两个实体可以可操作地连接以直接地或通过一个或多个中间实体(例如,处理器、操作系统、逻辑、非暂时性计算机可读介质)彼此传送信号。可操作的连接可以包括产生数据并且将数据存储在存储器中的一个实体以及经由例如指令控制从存储器检索该数据的另一个实体。逻辑和/或物理通信信道可以用于创建可操作的连接。
如本文所使用的“数据结构”是计算系统中的数据被存储在存储器、存储设备或其他计算机化系统中的组织。数据结构可以是例如以下中的任何一个:数据字段、数据文件、数据数组、数据记录、数据库、数据表、图、树、链接列表等。数据结构可以由许多其他的数据结构形成并且包含这些数据结构(例如,包括许多数据记录的数据库)。根据其他实施例,数据结构的其他例子也是可能的。
如本文所使用的“计算机可读介质”或“计算机存储介质”是指存储被配置为在被处理器执行时执行所公开的功能中的一个或多个功能的指令和/或数据的非暂时性介质。计算机可读介质可以采取各种形式,包括但不限于非易失性介质和易失性介质。非易失性介质可以包括例如光盘、磁盘等。易失性介质可以包括例如半导体存取器、动态存储器等。计算机可读介质的常见形式可以包括但不限于软盘、柔性盘、硬盘、磁带、其他磁性介质、专用集成电路(ASIC)、可编程逻辑器件、紧凑盘(CD)、其他光学介质、随机存取存储器(RAM)、只读存储器(ROM)、存储芯片或卡、记忆棒、固态存储器件(SSD)、闪速驱动器以及计算机、处理器或其他电子设备可以与其一起运行的其他介质。每种类型的介质如果在一个实施例中被选择用于实现,则可以包括被配置为执行所公开的和/或所要求保护的功能中的一个或多个的算法的存储的指令。
如本文所使用的“逻辑”表示这样的组件:该组件是用计算机或电气硬件、存储有可执行应用或程序模块的指令的非暂时性介质和/或这些的组合实现的以执行如本文所公开的功能或动作中的任何一个和/或使来自另一个逻辑、方法和/或系统的功能或动作如本文所公开的那样执行。等同的逻辑可以包括固件、利用算法编程的微处理器、离散逻辑(例如,ASIC)、至少一个电路、模拟电路、数字电路、被编程的逻辑器件、包含算法的指令的存储器设备等,其中任何一个可以被配置为执行所公开的功能中的一个或多个功能。在一个实施例中,逻辑可以包括被配置为执行所公开的功能中的一个或多个功能的一个或多个门、门组合或其他电路组件。在多个逻辑被描述的情况下,可以将所述多个逻辑合并为一个逻辑。类似地,在单个逻辑被描述的情况下,可以在多个逻辑之间分布该单个逻辑。在一个实施例中,这些逻辑中的一个或多个是与执行所公开的和/或所要求保护的功能相关联的对应结构。要实现哪种类型的逻辑的选择可以基于期望的系统条件或规范。例如,如果考虑较快的速度,则硬件将被选来实现功能。如果考虑较低的成本,则存储的指令/可执行应用将被选来实现功能。
如本文所使用的“用户”包括但不限于一个或多个人、计算机或其他设备或这些的组合。
虽然所公开的实施例已经被相当详细地例示和描述,但是并非意在制约或以任何方式限制所附权利要求的范围。当然,不可能为了描述主题的各方面而描述每一个可设想的组件或方法组合。因此,本公开不限于所示的和所描述的特定细节或说明性例子。因此,本公开意图包含落在所附权利要求的范围内的改变、修改和变化。
就术语“包括”被用在详细描述或权利要求中来说,当该术语在权利要求中用作过渡词时被解释时,它意在以类似于术语“包含”的方式是包容性的。
就术语“或”被用在详细描述或权利要求中(例如,A或B)来说,它意图意指“A或B或二者”。当申请人意图指示“只有A或B、而不是二者”时,那么短语“只有A或B,而不是二者”将被使用。因此,术语“或”在本文中的使用是包容性的、而非排他性的使用。
就短语“A、B和C中的一个或多个”被用在本文中(例如,被配置为存储A、B和C中的一个或多个的数据存储器)来说,它意图传达一组可能性A、B、C、AB、AC、BC和/或ABC(例如,数据存储器可以仅存储A、仅存储B、仅存储C、存储A和B、存储A和C、存储B和C、和/或存储A和B和C)。并非意图需要A中的一个、B中的一个和C中的一个。当申请人意图指示“A中的至少一个、B中的至少一个和C中的至少一个”时,短语“A中的至少一个、B中的至少一个和C中的至少一个”将被使用。

Claims (15)

1.一种由计算设备(110)执行的计算机实现方法(400),其中所述计算设备(110)至少包括用于执行来自存储器的指令的处理器,所述方法(400)包括:
从一组可用的计算机化的运行时环境中识别(410)选定的运行时环境(150),其中所述选定的运行时环境(150)被选来执行包括分析表达式的分析模型,其中所述分析模型为与所述选定的运行时环境(150)关于执行不兼容的格式;
产生(420)用户脚本数据结构(116),其中所述用户脚本数据结构(116)包括用于基于所述选定的运行时环境(150)的运行时规范来将所述分析模型的分析表达式映射到所述选定的运行时环境(150)的可执行表达式的指令;
产生(430)计算机化的规范对象(114),其中所述计算机化的规范对象(114)包括:
(i)前脚本数据结构(115),所述前脚本数据结构(115)指定所述选定的运行时环境(150)将如何访问要被所述分析模型操作的输入数据,
(ii)所述用户脚本数据结构(116)和所述分析模型,以及
(iii)后脚本数据结构(117),所述后脚本数据结构(117)指定如何从所述选定的运行时环境(150)输出由所述分析模型生成的结果数据;
通过计算机网络将所述计算机化的规范对象(114)发送(440)到所述选定的运行时环境(150)以供所述选定的运行时环境(150)执行所述分析模型,其中至少用于映射的指令使所述分析模型在所述选定的运行时环境(150)中关于执行兼容;以及
从所述选定的运行时环境(150)接收(450)结果数据。
2.根据权利要求1所述的方法,还包括通过所述计算机网络将计算机化的配置对象发送到所述选定的运行时环境,以便基于一组参数来与所述选定的运行时环境同步,并且以便指定在所述选定的运行时环境中所述分析模型将在何处被执行。
3.根据权利要求1所述的方法,还包括在所述选定的运行时环境中启动所述计算机化的规范对象的执行。
4.根据权利要求1所述的方法,其中所述可执行表达式包括要被所述选定的运行时环境按顺序执行的多个计算步骤。
5.根据权利要求1所述的方法,其中所述前脚本数据结构被产生为指定所述选定的运行时环境将如何连接到数据库设备以访问要被所述分析模型操作的输入数据。
6.根据权利要求1所述的方法,其中所述前脚本数据结构被产生为指定要被所述分析模型操作的输入数据将如何被所述选定的运行时环境从数据文件读取。
7.根据权利要求1所述的方法,还包括提供所述选定的运行时环境对配置文件的访问,其中所述配置文件指定所述分析模型是否将在所述选定的运行时环境的本地节点、远程节点、集群节点或者本地节点、远程节点和集群节点的组合上被执行。
8.根据权利要求1所述的方法,还包括通过所述计算机网络将计算机化的启动对象发送到所述选定的运行时环境,其中所述计算机化的启动对象指定将被所述选定的运行时环境访问的、存储有所述分析模型的输入数据的多个数据结构。
9.根据权利要求1所述的方法,其中所述用户脚本数据结构被产生为指定所述选定的运行时环境要对所述输入数据执行的分析模型的分析步骤序列。
10.一种计算系统(100),包括:
分析应用逻辑(110),所述分析应用逻辑(110)被配置为产生计算机化的规范对象(114),所述计算机化的规范对象(114)具有:
用户脚本数据结构(116),所述用户脚本数据结构(116)指定具有分析表达式的分析模型,其中所述用户脚本数据结构(116)包括用于将所述分析表达式映射到计算机化的运行时环境(150)的可执行表达式的指令,
前脚本数据结构(115),所述前脚本数据结构(115)指定所述计算机化的运行时环境(150)将如何访问要被所述分析模型操作的自变量数据,以及
后脚本数据结构(117),所述后脚本数据结构(117)指定如何输出由所述分析模型在被所述计算机化的运行时环境(150)执行时生成的结果数据;以及
用户界面逻辑(130),所述用户界面逻辑(130)被配置为促进与所述分析应用逻辑(110)的用户交互以产生所述计算机化的规范对象(114)。
11.根据权利要求10所述的计算系统,其中所述分析模型将要被所述计算机化的运行时环境按顺序执行的多个计算步骤指定为分析表达式。
12.根据权利要求10所述的计算系统,其中所述分析模型将要被所述计算机化的运行时环境按顺序执行的多个统计操作指定为分析表达式。
13.根据权利要求10所述的计算系统,还包括被配置为存储所述自变量数据和所述结果数据的数据库设备,其中,所述数据库设备能被所述计算机化的运行时环境访问。
14.根据权利要求13所述的计算系统,其中,所述前脚本数据结构指定所述计算机化的运行时环境将如何连接到所述数据库设备以访问所述自变量数据。
15.根据权利要求13所述的计算系统,其中,所述后脚本数据结构指定所述计算机化的运行时环境将如何连接到所述数据库设备以存储所述结果数据。
CN201680063016.4A 2015-10-27 2016-01-28 用于在各种运行时环境中与模型交互并执行模型的统一接口规范 Active CN108351796B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562246657P 2015-10-27 2015-10-27
US62/246,657 2015-10-27
US14/972,291 2015-12-17
US14/972,291 US9684490B2 (en) 2015-10-27 2015-12-17 Uniform interface specification for interacting with and executing models in a variety of runtime environments
PCT/IB2016/000301 WO2017072565A1 (en) 2015-10-27 2016-01-28 Uniform interface specification for interacting with and executing models in a variety of runtime environments

Publications (2)

Publication Number Publication Date
CN108351796A true CN108351796A (zh) 2018-07-31
CN108351796B CN108351796B (zh) 2022-05-13

Family

ID=58558759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680063016.4A Active CN108351796B (zh) 2015-10-27 2016-01-28 用于在各种运行时环境中与模型交互并执行模型的统一接口规范

Country Status (4)

Country Link
US (1) US9684490B2 (zh)
JP (1) JP6816136B2 (zh)
CN (1) CN108351796B (zh)
WO (1) WO2017072565A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750264A (zh) * 2019-10-16 2020-02-04 珠海格力电器股份有限公司 脚本界面的显示方法及装置
CN111460620A (zh) * 2020-03-06 2020-07-28 北京仿真中心 一种试验评估模型构建方法及系统
CN112328304A (zh) * 2020-10-12 2021-02-05 中国建设银行股份有限公司 一种脚本适配方法、系统、设备及计算机存储介质
CN113767609A (zh) * 2019-05-03 2021-12-07 微软技术许可有限责任公司 控制对边缘设备的资源的访问

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2949510T3 (es) 2015-08-05 2023-09-29 Equifax Inc Herramienta de integración de modelos
US10387798B2 (en) 2015-12-16 2019-08-20 Accenture Global Solutions Limited Machine for development of analytical models
US10438132B2 (en) 2015-12-16 2019-10-08 Accenture Global Solutions Limited Machine for development and deployment of analytical models
DE102016203855B4 (de) * 2016-03-09 2023-11-02 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Steuern eines technischen Systems anhand von Steuermodellen
US11080435B2 (en) 2016-04-29 2021-08-03 Accenture Global Solutions Limited System architecture with visual modeling tool for designing and deploying complex models to distributed computing clusters
US10871753B2 (en) 2016-07-27 2020-12-22 Accenture Global Solutions Limited Feedback loop driven end-to-end state control of complex data-analytic systems
US10831550B2 (en) * 2018-03-27 2020-11-10 Oracle Financial Services Software Limited Computerized control of execution pipelines
US20210406246A1 (en) * 2020-06-24 2021-12-30 David Mueller Management of diverse data analytics frameworks in computing systems
CN111782717A (zh) * 2020-07-21 2020-10-16 政采云有限公司 一种数据处理方法、系统及电子设备和存储介质
CN113127413B (zh) * 2021-05-12 2024-03-01 北京红山信息科技研究院有限公司 一种运营商数据处理方法、装置、服务器及存储介质
US11782888B2 (en) * 2021-09-16 2023-10-10 Bank Of America Corporation Dynamic multi-platform model generation and deployment system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071372A (zh) * 2007-03-30 2007-11-14 腾讯科技(深圳)有限公司 一种脚本内核管理方法及系统
CN101082937A (zh) * 2007-06-29 2007-12-05 中兴通讯股份有限公司 Xml数据存储系统和方法
CN103955369A (zh) * 2014-04-28 2014-07-30 中国人民解放军理工大学 一种基于扩展uml的软件模糊自适应建模工具构造方法
US20140337282A1 (en) * 2013-05-07 2014-11-13 Red Hat Israel, Ltd. Deploying database upgrades to multiple environments in a different order
CN104899046A (zh) * 2015-06-26 2015-09-09 上海斐讯数据通信技术有限公司 一种多功能脚本运行方法和系统
US20150293755A1 (en) * 2014-04-09 2015-10-15 Nice-Systems Ltd. System and automated method for configuring a predictive model and deploying it on a target platform

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10636084B2 (en) * 1996-10-31 2020-04-28 Citicorp Credit Services, Inc. (Usa) Methods and systems for implementing on-line financial institution services via a single platform
EP1107157A3 (en) 1999-12-01 2001-11-28 International Business Machines Corporation System and method for performing predictive analysis
US6873979B2 (en) 2000-02-29 2005-03-29 Marketswitch Corporation Method of building predictive models on transactional data
EP1146687A3 (en) 2000-04-12 2004-08-25 Hewlett-Packard Company, A Delaware Corporation Internet usage analysis system and method
US6928398B1 (en) 2000-11-09 2005-08-09 Spss, Inc. System and method for building a time series model
AU2002252222A1 (en) * 2001-03-08 2002-09-24 Richard M. Adler System for analyzing strategic business decisions
US20030023951A1 (en) 2001-04-05 2003-01-30 Rosenberg Philip S. MATLAB toolbox for advanced statistical modeling and data analysis
US7451065B2 (en) 2002-03-11 2008-11-11 International Business Machines Corporation Method for constructing segmentation-based predictive models
US20040030667A1 (en) 2002-08-02 2004-02-12 Capital One Financial Corporation Automated systems and methods for generating statistical models
US7079993B2 (en) 2003-04-29 2006-07-18 Daniel H. Wagner Associates, Inc. Automated generator of optimal models for the statistical analysis of data
US20060106626A1 (en) * 2004-11-16 2006-05-18 Jun-Jang Jeng Method and apparatus of model driven business solution monitoring and control
US8762193B2 (en) 2005-11-11 2014-06-24 Accenture Global Services Limited Identifying target customers for campaigns to increase average revenue per user
US7881535B1 (en) 2006-06-29 2011-02-01 Capital One Financial Corporation System and method for managing statistical models
US8046200B2 (en) 2006-09-05 2011-10-25 Colorado State University Research Foundation Nonlinear function approximation over high-dimensional domains
US8417715B1 (en) * 2007-12-19 2013-04-09 Tilmann Bruckhaus Platform independent plug-in methods and systems for data mining and analytics
US9436507B2 (en) * 2014-07-12 2016-09-06 Microsoft Technology Licensing, Llc Composing and executing workflows made up of functional pluggable building blocks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071372A (zh) * 2007-03-30 2007-11-14 腾讯科技(深圳)有限公司 一种脚本内核管理方法及系统
CN101082937A (zh) * 2007-06-29 2007-12-05 中兴通讯股份有限公司 Xml数据存储系统和方法
US20140337282A1 (en) * 2013-05-07 2014-11-13 Red Hat Israel, Ltd. Deploying database upgrades to multiple environments in a different order
US20150293755A1 (en) * 2014-04-09 2015-10-15 Nice-Systems Ltd. System and automated method for configuring a predictive model and deploying it on a target platform
CN103955369A (zh) * 2014-04-28 2014-07-30 中国人民解放军理工大学 一种基于扩展uml的软件模糊自适应建模工具构造方法
CN104899046A (zh) * 2015-06-26 2015-09-09 上海斐讯数据通信技术有限公司 一种多功能脚本运行方法和系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113767609A (zh) * 2019-05-03 2021-12-07 微软技术许可有限责任公司 控制对边缘设备的资源的访问
CN113767609B (zh) * 2019-05-03 2023-04-04 微软技术许可有限责任公司 控制对边缘设备的资源的访问
CN110750264A (zh) * 2019-10-16 2020-02-04 珠海格力电器股份有限公司 脚本界面的显示方法及装置
CN111460620A (zh) * 2020-03-06 2020-07-28 北京仿真中心 一种试验评估模型构建方法及系统
CN111460620B (zh) * 2020-03-06 2023-06-20 北京仿真中心 一种试验评估模型构建方法及系统
CN112328304A (zh) * 2020-10-12 2021-02-05 中国建设银行股份有限公司 一种脚本适配方法、系统、设备及计算机存储介质
CN112328304B (zh) * 2020-10-12 2024-04-09 中国建设银行股份有限公司 一种脚本适配方法、系统、设备及计算机存储介质

Also Published As

Publication number Publication date
CN108351796B (zh) 2022-05-13
JP2018536227A (ja) 2018-12-06
WO2017072565A1 (en) 2017-05-04
US9684490B2 (en) 2017-06-20
JP6816136B2 (ja) 2021-01-20
US20170115964A1 (en) 2017-04-27

Similar Documents

Publication Publication Date Title
CN108351796A (zh) 用于在各种运行时环境中与模型交互并执行模型的统一接口规范
US9754059B2 (en) Graphical design verification environment generator
CN112199086B (zh) 自动编程控制系统、方法、装置、电子设备及存储介质
CN112292664B (zh) 用于设计分布式异构计算和控制系统的方法和系统
CN109918607A (zh) 页面搭建方法及装置、介质和计算设备
US10185472B2 (en) Method for providing a user interface, computer system and computer program product
CN103109264A (zh) 创建配置文件模板
US10693962B1 (en) Language and mechanism for modeling and exporting storage platform topologies, attributes, and behaviors
Bonaventura et al. Graphical modeling and simulation of discrete-event systems with CD++ Builder
US11822896B2 (en) Contextual diagram-text alignment through machine learning
EP4006662A1 (en) System and method supporting graphical programming based on neuron blocks, and storage medium
US20230041718A1 (en) Automated code generation based on pseudo-code
Thalheim From Models_For_Programming to Modelling_To_Program and Towards Models_As_A_Program
US20220334834A1 (en) Automated authoring of software solutions from a data model
Shershakov Vtmine for visio: A graphical tool for modeling in process mining
Paskaleva et al. Leveraging integration facades for model-based tool interoperability
Hess et al. Generating automatically class comments in Pharo
CN113704593B (zh) 一种运营数据处理方法及相关装置
US11340918B2 (en) Knowledge engine auto-generation of guided flow experience
Kohler et al. CS 5604 INFORMATION STORAGE AND RETRIEVAL Front-End Team Fall 2016 Final Report
Piedade Visual programming language for orchestration with Docker
Mamouni et al. ZCMGenerator: Generation of ZCM Models from ZC2M Metamodel Based on MDA and ADM Approaches
Cook et al. Experience report: evolution of a web‐integrated software development and verification environment
Min The upgrade and design of remote monitor and control for climate chamber
Kumar et al. Python's Role in Accelerating Web Application Development with Django

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