JP2018536227A - 多様なランタイム環境でモデルと対話してモデルを実行するための統一インターフェイス仕様 - Google Patents

多様なランタイム環境でモデルと対話してモデルを実行するための統一インターフェイス仕様 Download PDF

Info

Publication number
JP2018536227A
JP2018536227A JP2018521541A JP2018521541A JP2018536227A JP 2018536227 A JP2018536227 A JP 2018536227A JP 2018521541 A JP2018521541 A JP 2018521541A JP 2018521541 A JP2018521541 A JP 2018521541A JP 2018536227 A JP2018536227 A JP 2018536227A
Authority
JP
Japan
Prior art keywords
runtime environment
computerized
model
data
data structure
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
JP2018521541A
Other languages
English (en)
Other versions
JP6816136B2 (ja
JP2018536227A5 (ja
Inventor
バダパンデシワラ,ラジャラム・エヌ
シン,スレッシュ・ビィ
ラビンドラン,レンジト
パチル,レカー
シェティ,ナゲシュ
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 JP2018536227A publication Critical patent/JP2018536227A/ja
Publication of JP2018536227A5 publication Critical patent/JP2018536227A5/ja
Application granted granted Critical
Publication of JP6816136B2 publication Critical patent/JP6816136B2/ja
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

背景
今日、会社に勤務するビジネスアナリストは、ビジネスの何らかの局面を理解するのを助けるために用いられる統計モデルを開発する場合がある。モデルは計算式を含み、当該計算式は、そのようなモデルのための特殊なアプリケーションを動作させるコンピューティングシステムによって実行される必要がある。場合によっては、モデルは非常に複雑な場合があり、会社は典型的に外部のベンダ(定量分析プロバイダ)を利用してモデルを実行し得る。外部のベンダは、カスタムソフトウェアによってモデルを実行すべきランタイム環境を提供する。しかし、ランタイム環境は、ランタイム環境に特有の計算式を実行するように構成されている。ゆえに、ランタイム環境への入力はいずれも、ランタイム環境が認識する特有のコンピュータ言語/フォーマットでなければならない。たとえば、外部のベンダがMATLABである場合は、実行用に提出される統計モデルを、当該モデルがMATLABランタイム環境で実行可能であるようにMATLAB計算式を用いて作成してフォーマットしなければならない。同様に、異なるベンダを利用して統計モデルを実行する場合は、当該統計モデルをそのベンダの計算式を用いて作成してフォーマットしなければならない。そうでなければ、統計モデルは無効な入力であり、そのベンダのランタイム環境で実行されないことになる。
しかし、ビジネスアナリストは、任意の特定のランタイム環境について訓練されていない場合がある。プログラミング処理を簡略化するために、ビジネスアナリストは最初に、たとえば英語、擬似コード、またはフローチャートを用いて統計モデルを作成する場合がある。ビジネスアナリストは次に、特定のランタイム環境およびその特定のプログラミング言語について訓練されているソフトウェアプログラマと一緒に働く場合がある。ソフトウェアプログラマは次に、ランタイム環境の計算式に準拠しており当該計算式を用いるモデルのプログラムを作成する。
後日、ビジネスアナリストまたは会社が、新たな外部のベンダを利用して統計モデルを実行すべきであると決定した場合は、会社の既存の統計モデルは機能しないことになる。これは、新たな外部のベンダは、異なる言語を必要とする異なるランタイム環境(たとえばPython)を提供し、異なる計算式を必要とするモデルを実行する可能性が最も高いためである。したがって、既存の統計モデルを、異なるランタイム環境の計算式に適合するように再プログラミングしなければならない。ビジネスアナリストは同じソフトウェアプログラマまたは異なるソフトウェアプログラマと一緒に働いて、新たなランタイム環境の計算式を用いる既存のモデルの新たなプログラムを作成しなければならない場合がある。
会社は、新たな外部のベンダに切替わると再プログラミングしなければならない多くの統計モデルを所有し得る。既存のモデルを再プログラミングする処理には時間と費用がかかる。再プログラミングは多くのリソース(ビジネスアナリスト、ソフトウェアプログラマ等)も消費する。さらに、会社が新たな外部のベンダに切替えるたびに再プログラミング処理を繰返さなければならない。
概要
一実施形態において、コンピュータによって実行される方法がコンピューティングデバイスによって行なわれるとして記載され、当該コンピューティングデバイスは、少なくともメモリからの命令を実行するためのプロセッサを含む。当該方法は、利用可能なコンピュータ化されたランタイム環境のグループから選択されたランタイム環境を識別することを含み、選択されたランタイム環境は分析式を含む分析モデルを実行するように選択され、分析モデルは選択されたランタイム環境の実行と互換性がないフォーマットであり、当該方法はさらに、ユーザスクリプトデータ構造を生成することを含み、ユーザスクリプトデータ構造は、選択されたランタイム環境のランタイム仕様に基づいて、分析モデルの分析式を選択されたランタイム環境の実行可能な式にマッピングするための命令を含み、当該方法はさらに、コンピュータ化された仕様オブジェクトを生成することを含み、コンピュータ化された仕様オブジェクトは、(i)選択されたランタイム環境が、分析モデルが作用すべき入力データにどのようにアクセスすべきかを指定するプリスクリプトデータ構造と、(ii)ユーザスクリプトデータ構造および分析モデルと、(iii)分析モデルによって生成された結果データを選択されたランタイム環境からどのように出力すべきかを指定するポストスクリプトデータ構造とを含み、当該方法はさらに、分析モデルを選択されたランタイム環境によって実行するために、コンピュータ化された仕様オブジェクトをコンピュータネットワーク上で選択されたランタイム環境に送信することを含み、少なくともマッピングするための命令は、分析モデルに、選択されたランタイム環境における実行との互換性を持たせ、当該方法はさらに、選択されたランタイム環境から結果データを受信することを含む。
別の実施形態において、当該方法はさらに、コンピュータ化された構成オブジェクトをコンピュータネットワーク上で選択されたランタイム環境に送信して、パラメータのセットに基づいて選択されたランタイム環境と同期し、選択されたランタイム環境のどこで分析モデルを実行すべきかを指定することを含む。
別の実施形態において、当該方法はさらに、選択されたランタイム環境においてコンピュータ化された仕様オブジェクトの実行を開始することを含む。
別の実施形態において、実行可能な式は、選択されたランタイム環境によって順番に実行すべき複数の計算ステップを含む。
別の実施形態において、プリスクリプトデータ構造は、選択されたランタイム環境がどのようにデータベースデバイスに接続して、分析モデルが作用すべき入力データにアクセスすべきかを指定するように生成される。
別の実施形態において、プリスクリプトデータ構造は、分析モデルが作用すべき入力データを、選択されたランタイム環境によってどのようにデータファイルから読み出すべきかを指定するように生成される。
別の実施形態において、当該方法はさらに、選択されたランタイム環境による構成ファイルへのアクセスを提供することを含み、構成ファイルは、分析モデルを、選択されたランタイム環境のローカルノード上で、リモートノード上で、クラスタ化ノード上で、またはローカルノード、リモートノード、およびクラスタ化ノードの組合せ上で実行すべきであると指定する。
別の実施形態において、当該方法はさらに、コンピュータ化された開始オブジェクトをコンピュータネットワーク上で選択されたランタイム環境に送信することを含み、コンピュータ化された開始オブジェクトは、選択されたランタイム環境によってアクセスすべき分析モデルについての入力データを格納する複数のデータ構造を指定する。
別の実施形態において、ユーザスクリプトデータ構造は、選択されたランタイム環境によって入力データに対して実行すべき分析モデルの一連の分析ステップを指定するように生成される。
別の実施形態において、コンピューティングシステムが記載され、当該コンピューティングシステムは、コンピュータ化された仕様オブジェクトを生成するように構成された分析アプリケーションロジックを含み、コンピュータ化された仕様オブジェクトは、分析式を有する分析モデルを指定するユーザスクリプトデータ構造を有し、ユーザスクリプトデータ構造は、分析式をコンピュータ化されたランタイム環境の実行可能な式にマッピングするための命令を含み、コンピュータ化された仕様オブジェクトはさらに、コンピュータ化されたランタイム環境が、分析モデルが作用すべき独立変数データにどのようにアクセスすべきかを指定するプリスクリプトデータ構造と、コンピュータ化されたランタイム環境によって実行されたときに分析モデルによって生成された結果データをどのように出力すべきかを指定するポストスクリプトデータ構造とを有し、当該コンピューティングシステムはさらに、コンピュータ化された仕様オブジェクトを生成するための分析アプリケーションロジックとのユーザ対話を容易にするように構成されたユーザインターフェイスロジックを含む。
コンピューティングシステムの別の実施形態において、分析モデルは、複数の計算ステップを、コンピュータ化されたランタイム環境によって順番に実行すべき分析式として指定する。
コンピューティングシステムの別の実施形態において、分析モデルは、複数の統計演算を、コンピュータ化されたランタイム環境によって順番に実行すべき分析式として指定する。
別の実施形態において、コンピューティングシステムは、独立変数データおよび結果データを格納するように構成されたデータベースデバイスをさらに含み、データベースデバイスはコンピュータ化されたランタイム環境によってアクセス可能である。
コンピューティングシステムの別の実施形態において、プリスクリプトデータ構造は、コンピュータ化されたランタイム環境がどのようにデータベースデバイスに接続して独立変数データにアクセスすべきかを指定する。
コンピューティングシステムの別の実施形態において、ポストスクリプトデータ構造は、コンピュータ化されたランタイム環境がどのようにデータベースデバイスに接続して結果データを格納すべきかを指定する。
本明細書に組込まれてその一部を構成している添付の図面は、本開示のさまざまなシステム、方法、および他の実施形態を示す。図中に示される要素の境界(たとえばボックス、ボックスのグループ、または他の形状)は境界の一実施形態を表わしていることが認識されるであろう。いくつかの実施形態において、1つの要素は複数の要素として実現されてもよく、またはその複数の要素は1つの要素として実現されてもよい。いくつかの実施形態において、別の要素の内部構成要素として示されている要素は外部構成要素として実現されてもよく、逆もまた同様である。さらに、要素は一定の縮尺率で描かれていない場合がある。
分析モデルが多数の異なる定量分析プロバイダランタイム環境のいずれかで実行可能であるように当該分析モデルを定義できるように構成された分析アプリケーションインフラストラクチャ(AAI)を有するシステムの一実施形態を示す図である。 分析モデルが多数の異なる定量分析プロバイダランタイム環境のいずれかで実行可能であるように当該分析モデルを定義できるように構成された分析アプリケーションインフラストラクチャ(AAI)を有するシステムの別の実施形態を示す図である。 図1のシステムがデプロイメントの観点からどのように見えるかを示す、デプロイメントアーキテクチャの一実施形態を示す図である。 図1の分析アプリケーションインフラストラクチャ(AAI)によって実行可能な方法の一実施形態を示す図である。 本明細書に記載の例示的なシステムおよび方法の1つ以上、ならびに/または同等物を用いて構成されるおよび/またはプログラミングされる例示的なコンピューティングデバイスを示す図である。
詳細な説明
ユーザ(たとえばビジネスアナリスト)が統計モデル(または他の種類の分析モデル)を作成できるように構成されたコンピュータ化システムおよび方法が本明細書に記載される。分析モデルを実行するために選択される特有のランタイム環境について当該分析モデルを再生成または再構成する必要なしに当該分析モデルを複数の異なる種類のランタイム環境(たとえばMATLAB、Python、R等)で実行できるようにするインターフェイスが実現される。
「分析モデル」という用語は本明細書において総称的に用いられており、コンピューティングシステムによって読取可能であるように、かつコンピューティングシステムに入力されるように構成された数学モデル、ビジネスモデル、統計モデル、アルゴリズムモデル、またはそれらのいずれかの組合せを指し得る。たとえば、統計モデルは、拡張マークアップ言語(XML)ファイルなどの文書において一連のステートメント(たとえば分析式)を用いて定義され得る。
「コンピュータ化されたランタイム環境」、「ランタイム環境」、「実行環境」、「統計ランタイム」、「定量分析ランタイム」、および「プロバイダランタイム」という用語は本明細書において同義で用いられており、定量分析プロバイダによって提供されるコンピュータ化された計算システム(たとえばウェブサービスシステム)を指す。
本明細書で使用される「定量分析プロバイダ」または「ランタイムプロバイダ」という用語は、分析モデルを実行するためのコンピュータ化されたランタイム環境を提供するベンダを指す。
「仕様」および「コンピュータ化された仕様オブジェクト」という用語は本明細書において同義で用いられ得る。
「分析アプリケーションインフラストラクチャ」および「分析アプリケーションロジック」という用語は本明細書において同義で用いられている。
本明細書で使用される「プッシュする」という用語およびそのさまざまな形態は、別のプログラムまたはコンピュータがデータを要求していなくても当該別のプログラムまたはコンピュータにデータを送る(たとえば送信する)ことを指す。
本明細書で使用される「プルする」という用語およびそのさまざまな形態は、別のプログラムまたはコンピュータからデータを要求して当該データを受信することを指す。
全体的な概要
一実施形態において、分析アプリケーションインフラストラクチャ(analytical application infrastructure:AAI)が提供される。AAIは本明細書において分析アプリケーションロジックとも称される。AAIは、コンピュータ化されたランタイム環境(たとえばリモートサーバコンピュータシステム)の1つ以上のノード上でのスクリプト化モデルの実行を可能にする。ランタイムパラメータを用いてAAIを構成することによって、モデル実行をいずれのノード上でも行なうことができ、またはモデルを複数のノード上で実行するために分散させることができる。一実施形態に従うと、AAIの一部として、インターフェイスおよびプラグインドライバが、統計モデルをランタイム環境にプラグインできるように、かつそれについての処理ノードを宣言的に構成するために設けられる。
AAIは、任意の統計ランタイム環境を用いて分析モデルを実行できるようにするインターフェイス仕様およびプラグインモジュールを提供する。例として、分析モデルは、当該分析モデルを特定のランタイム環境(たとえばMATLAB、Scala、M−Lib等)で実行するのに特有の符号化フォーマットまたは構文に関係なく定義され得る。異なるランタイム環境には入力分析モデルのための異なる符号化フォーマットが必要である。ゆえに、分析モデルがランタイム環境によって予想されるフォーマットとは異なるフォーマットで定義されている場合は、分析モデルはランタイム環境によって認識されないことになり、実行不可能である(たとえば互換性のないフォーマット)。AAIは、あるフォーマットの分析モデルを、フォーマットに関係なくさまざまなランタイム環境のいずれかで提出および実行できるようにする。さらに一実施形態において、AAIは、分析モデルの処理をランタイム環境の特定のハードウェアインフラストラクチャ(たとえばローカルノード、リモートノード、Hadoopクラスタ)に宣言的に導く命令をランタイム環境に与える機能を提供する。
一実施形態において、AAIは、「プリスクリプト」ブロック、「ユーザスクリプト」ブロック、および「ポストスクリプト」ブロックを含む実行モデルまたは仕様を生成する。当該仕様は、一実施形態に従うと、コンピュータ化されたオブジェクト(すなわちコンピュータ化された仕様オブジェクト)として生成されて維持される。ある観点からは、3つのコンポーネントが互いに(プリスクリプトブロック、ユーザスクリプトブロック、ポストスクリプトブロック)実行可能なアーティファクトを作成し、これは特定の定量分析プロバイダの指定されたランタイム環境に宣言的に関連付けられ得、さらにローカルノードもしくはリモートノード上で、またはHadoopクラスタ上で動作するようにターゲット化され得る。一実施形態において、プリスクリプトおよびポストスクリプトプラグインは明確に指定される。プリスクリプトおよびポストスクリプトは定量分析プロバイダ(ランタイム環境−ホストサーバ側)によって、または分析アプリケーションロジックのプロバイダ(クライアント側)によって実現され得る。
一実施形態に従うと、AAIはコンピュータ化された仕様オブジェクト(仕様)内に以下の別個の部分を含む。
− モデラーがデータを所有し、データを用いて動作し、モデルを実行するためのクレデンシャルを確立する開始ブロック。
− モデル変数をデータハンドルに結合し、モデルためのワークスペースを準備し、データについて問合せるためのプロバイダ特有の構文構造を準備し、入出力データ構造を準備するプリスクリプトブロック。
− 変数/静的パラメータおよびプレースホルダへの結合とともに、ユーザスクリプトブロック内の定量分析技術の統計モデル(モデル定義)によって少なくとも部分的に表わされるコアビジネスロジック。コアビジネスロジックは、ユーザスクリプトブロックと関連付けられたメタ情報に基づいて結合すべきランタイム環境を自動的に決定する。たとえば、メタ情報は、統計モデルを実行するために(ランタイム環境のグループから)選択された特定のランタイム環境を識別する。したがって、ユーザスクリプトブロックと関連付けられたメタ情報を変更すると、モデル定義(すなわち分析/統計モデル)が変更されることなくランタイム環境(およびしたがってプロバイダ)が切替わる。
− 下流消費のための実行の出力を準備する後処理ブロック(ポストスクリプトブロック)。
− 選択されたランタイム環境内でどのハードウェア(たとえばローカルノード、リモートノード、ノードのクラスタ)を用いてモデルを実行すべきかを示す情報および他の環境パラメータを保持する構成ブロック。
本明細書中の説明のほとんどは統計モデルを参照することに関して与えられる。しかし、他の種類の分析モデルも可能である。たとえばMATLABおよびPythonベースのランタイム環境にアクセス可能であり、かつそれらの双方に対して統計モデルを実行可能なシステムが構成される。統計モデルは単一の定義モデルである。典型的に今日、アルゴリズムがMATLABに対して開発されている場合は、MATLAB特有のコードが書かれる。同様に、アルゴリズムがPythonに対して開発されている場合は、Python特有のコードが書かれる。一実施形態において、統計モデル(単一の定義モデル)がランタイム環境の特有のコードでコード化されることなく、基本となるMATLAB、Python、または他のランタイム環境と結合および実行可能な当該モデルの1つの仕様(コードではなくスクリプト)を定義することができる。
統計モデルが実行する機能は、ランタイム不可知論的に(すなわちスクリプトを介して)指定され得る。典型的に、統計モデルは1セットの独立変数(入力データ)および1セットの従属変数(結果データ)を有する。たとえば、従属変数は、住宅ローンを債務不履行する一定の人口区分の確率であってもよい。独立変数は、国内総生産(GDP)、失業率、インフレ率、および住宅ローンの残高の履歴平均であってもよい。モデルはこれら4つの独立変数に作用して債務不履行の確率を計算または決定し得る。これら4つの独立変数は、モデルによって定義されるようなさまざまな分析アルゴリズムの影響を受け得る(たとえば、多数のステップで実行されて、最終結果、すなわち債務不履行の確率を決定する線形回帰アルゴリズムまたはその他の統計アルゴリズムであり得る)。
一実施形態において、宣言的パラダイム(たとえば口語英語)に基づく宣言的仕様(コンピュータ化された仕様オブジェクト)が生成される。コンピュータ化された仕様オブジェクトにおいて、変数が選択され、これらの変数が受けることになる計算の種類が宣言され、出力結果の種類が定義される。この宣言的仕様は次に、たとえばXMLフォーマットで格納される。当該仕様は次に、仕様からの3つの異なる別個のセットの命令が定量分析プロバイダのランタイム環境に入力されるように、基本となる定量分析プロバイダ(たとえばMATLABまたはPython)に送られ得る。
一実施形態において、第1のセットの命令はプリスクリプトである。これは、定量分析プロバイダランタイム環境に、特定のデータベースに接続して一定の表および列を送信中の変数にマッピングするように命令する。第2のセットの命令はユーザスクリプトである。これは、計算すべき式、たとえば線形回帰またはその他の数学関数を提供するように定量分析プロバイダに問合せるアルゴリズムまたは統計モデルである。ランタイム環境が提供するものに基づいて、プリスクリプト内で問合せられて定義された、上記の例からの4つの独立変数がその式に入力される。第3のセットの命令はポストスクリプトである。ここでは、ランタイム環境が、出力結果を計算した後に、従属変数プレースホルダとして送信されたプレースホルダに出力結果を格納するように指示される。プリスクリプト、メインユーザスクリプト、およびポストスクリプトを有するアプローチは、定量分析プロバイダの基本となるランタイム環境(定量分析エンジン)に関して統一されている。すなわち、ユーザスクリプト内に定義された同一の分析モデル(単一定義)を有する同一の仕様構造を、分析モデルを書き直す、または仕様構造(プリスクリプト、ユーザスクリプト、ポストスクリプト)から逸脱する必要なしに、いずれの基本となるランタイム環境でも使用することができる。
一実施形態において、定量分析プロバイダのランタイム環境(たとえばMATLABまたはPython)は、分析アプリケーションインフラストラクチャ(AAI)または任意の特有のインターフェイス情報の仕様を認識するように再プログラミングされなくてもよい。スクリプトは、モデルがランタイム環境で動作することを保証する。顧客は、それらの統計モデルを実行するために1つの定量分析プロバイダに依拠しなければならないことに限定されることを望まない。本明細書に記載のメカニズムは、顧客が、既存の統計モデルをランタイム環境に特有の新たな式を用いて新たな言語に再プログラミングする必要なしに、あるランタイム環境から別のランタイム環境に移ることができるようにする。本システムおよび方法を用いると、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は、グラフィカルユーザインターフェイス(GUI)を生成して分析アプリケーションロジック110とのユーザ対話を容易にするように構成される。たとえば、ユーザインターフェイスロジック130は、実現されるインターフェイスのグラフィカル設計に基づいてグラフィカルユーザインターフェイスを生成して表示させるプログラムコードを含む。GUIを介したユーザ動作および選択に応答して、スクリプトおよびモデル定義の関連のアスペクトが操作され得る。
コンピュータ化システム100は、分析アプリケーションロジック110に動作可能に接続された表示画面140も含む。一実施形態に従うと、表示画面140は、単一の定義分析モデリングと関連付けられた情報を見て更新するためのユーザインターフェイスロジック130によって生成されたグラフィカルユーザインターフェイス(GUI)のビューを表示して当該インターフェイスとのユーザ対話を容易にするように実現される。一実施形態において、分析アプリケーションロジック110は、多くのクライアントデバイス/ユーザによってアクセスされる集中型サーバ側アプリケーションである。ゆえに、表示画面140は、ユーザがネットワーク化されたコンピュータ通信を介して分析アプリケーションロジック110からのサービスにアクセスして当該サービスを受けることができるようにする複数のコンピューティングデバイス/端末を表わし得る。
さらに、ユーザインターフェイスロジック130は、ユーザが選択可能な、利用可能なランタイム環境のリストから1つのランタイム環境を選択するための入力パラメータを用いて構成される。当該入力パラメータは、選択された分析モデルが実行のためにデプロイされることになるランタイム環境を識別する。一実施形態において、選択されたランタイム環境はメタ情報として格納される。以下の説明では、選択されたランタイム環境は、リモートコンピュータシステム上の定量分析プロバイダによってホストされるコンピュータ化されたランタイム環境150(図1参照)と称される。
ユーザインターフェイスロジック130はさらに、表示画面140上のグラフィカルユーザインターフェイスを介した結果データの出力および表示を容易にするように構成される。結果データは、実行用に提出された選択された分析モデルを実行した後に、コンピュータ化されたランタイム環境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を用いて1つ以上の統計モデルをランタイム環境上で実行するために提出するエンティティ(たとえばクライアント)である。複数の異なるランタイム環境が選択に利用可能であり、その各々が特定のフォーマットの統計モデルを実行可能であることを思い起こされたい。仕様(プリスクリプト、ユーザスクリプト、ポストスクリプト)は、選択されたランタイム環境に何を実現すべきかについて命令する。たとえば、ランタイム環境は、(たとえばホストサーバ上に生成されて実現された)プリスクリプトおよびポストスクリプトを直接実行可能である。あるいは、定量分析プロバイダは、ランタイム環境の関数の構文、フォーマット等を記述する(たとえば、データベースに接続して問合せを実行するためにはどの機能が内部で呼出されるかを記述する)ランタイム環境の仕様を公開することができる。複数の異なるランタイム環境から仕様を得ることによって、ランタイム仕様のデータベースが、識別された各ランタイム環境によってデータ構造形態で生成されて編成され得る。後述するように、ランタイム仕様を用いてユーザスクリプト116のための変換命令が生成され得る。次に、分析アプリケーションロジック110は、選択されたランタイム環境のランタイム仕様に従ってプリスクリプトおよびポストスクリプトを生成して実行するように構成される。双方のアプローチが実行可能である。
したがって、定量分析プロバイダがクライアントにプリスクリプトおよびポストスクリプトを実行してほしい場合は、定量分析プロバイダは、ランタイム環境内でどのようにデータベースに接続して問合せを実行するかを含むランタイム仕様および構文をクライアントと共有しなければならなくなる。そして、分析アプリケーションロジック110を動作させるクライアントは、定量分析プロバイダからの仕様を前提としてプリスクリプトおよびポストスクリプトを実行することができる。あるいは、定量分析プロバイダがランタイム仕様をクライアントに見せたくない場合は、定量分析プロバイダは、たとえば、特定のクライアントと動作するためのランタイム環境についてのプリスクリプトおよびポストスクリプトを内部で実行することができる。
ある実施形態は、仕様(プリスクリプト、ユーザスクリプト、ポストスクリプト)の構成と、定量分析プロバイダの指定されたランタイム環境に仕様を入力して実行を開始する能力とを提供する。スクリプトに基づく仕様は、モデルがいずれのランタイム環境でも動作可能なように当該モデルを指定するための中立のアプローチである。すなわち、各ランタイム環境がモデルの異なる式を必要とする場合でも、同一のモデルが異なるランタイム環境で実行可能である。(たとえばMATLAB等についての)基本となる統計コードは専用であることが多い。しかし、AAIのユーザは、ランタイム環境を利用して開発された統計モデルを実行するために専用のコードを知っているまたは理解している必要はない。ユーザ統計モデルは、統計モデルが実行のためにどこに入力されても(MATLAB、Python、R等)そのままであり続けるビジネスレベルモデルである。仕様(プリスクリプト、ユーザスクリプト、ポストスクリプト)は本質的にユーザインターフェイス仕様である。一実施形態において、プリスクリプトおよびポストスクリプトは、特定のランタイム環境に対して特定であるように再構成される。たとえば、ランタイム環境がどのようにデータベースに接続してデータベースに問合せるかに基づいて、スクリプトはランタイム環境のプロトコルに従ったコマンドまたはコードを含む。ゆえに、スクリプトは、統計モデルがランタイム環境で実行可能であるようにするインターフェイスを提供する。
プリスクリプトは分析アプリケーションロジック110によって生成されるブロックであり、コンピュータ化されたランタイム環境150に、分析モデル内の式によって用いられるデータ(たとえば入力変数データ)をどのように取得する/読み出すかについて命令する。一実施形態において、データは分析アプリケーションインフラストラクチャデータベースデバイス120内に存在する。すなわち、データがどのようにデータベースデバイス120から抽出されてコンピュータ化されたランタイム環境150に提供されるかは、プリスクリプトブロック内に定義されている。たとえば、一実施形態において、プリスクリプトデータ構造115は、コンピュータ化されたランタイム環境がどのようにデータベースデバイス120に接続して独立変数データにアクセスすべきかを指定する。
プリスクリプトはデータにアクセスし、外部ランタイム環境が分析モデルの一部として入力されるデータを正確に読み出して認識できるように、当該データをフォーマットに編成する。たとえば、あるランタイム環境はデータを値のリストとして読み出すように構成され得る。ゆえに、入力データが値のリストとしてフォーマットされていない場合は、入力データは正確に読み出されないことになる。別のランタイム環境は、表フォーマットのデータを読み出すように構成され得る。第3のランタイム環境は、たとえばエクセル(登録商標)フォーマットなどの特有のフォーマットのデータを読み出し得る。すなわち、各定量分析プロバイダは、それらのランタイム環境に適した異なる態様でデータを取扱い得る。したがって、プリスクリプトは、それに応じて特定の定量分析プロバイダのランタイム環境について構築または構成される。プリスクリプトはデータ環境への接続を可能にし、データの抽出を可能にし、ランタイム環境がデータを適切に観察できるようにデータを操作する。
ユーザスクリプトは仕様オブジェクト114の主要部である。ユーザスクリプトは分析(たとえば統計)モデルを指定する。当該モデルは、たとえば、数ある統計的および数学的方法の中でも特に線形回帰を用いて、4つの独立変数に基づいてあるグループの顧客についてのローンの債務不履行の確率を計算する。すなわち、ユーザスクリプトは、独立変数データに対して実行すべき一連の計算(たとえば統計)ステップまたは演算を(分析式として)指定する。定量分析プロバイダは実際の統計関数および数学関数(実行可能な式)を提供し、これがランタイム環境150において当該データに作用して結果を計算することになる。入力データはプリスクリプトによって利用可能になる。一実施形態において、ユーザスクリプトは、分析モデルを構成する分析式をコンピュータ化されたランタイム環境の対応する実行可能な式にマッピングするための命令を含む。ゆえに、ユーザスクリプトは、分析モデル自体が認識不可能な/互換性のないフォーマットを有する場合でもランタイム環境が入力される分析モデルを実行できるようにするためのメカニズムを提供する。
たとえば、線形回帰関数が3つの変数を入力して当該変数に作用する方法が1つあると仮定する。したがって、入力データがプリスクリプト手法によって処理される(アクセスされる、操作される等)と、データは周知の数学的原理によって基本となるアルゴリズムに結合され、当該アルゴリズムはユーザスクリプト内に命令された順序で呼出される。したがって、ランタイム環境は、実行時に、どのようにアルゴリズムがインスタンス化されるか、およびどのようにデータがアルゴリズムにおいてプレースホルダに提示されるかについての基本となる数学的基礎を変更することができない。
たとえば、線形回帰アルゴリズムは、括弧内のコンマによって分離された3つの変数を入力するように構成され得る。そのような数学的フォーマットは変更不可能である。データが、線形回帰アルゴリズムの値のリストとしてランタイム環境に提示され得る場合でも、アルゴリズムの名前または式もランタイム環境によっても認識されて識別可能でなければならない。たとえば、MATLABランタイム環境はアルゴリズム「線形回帰」を呼出し得、Pythonランタイム環境はアルゴリズム「LREG」を呼出し得、第3の定量分析プロバイダランタイム環境はアルゴリズム「LR」を呼出し得る。ランタイム環境の名前、フォーマット、および他の規則は、ランタイム仕様によって定義されるランタイム環境の構文と見なすことができる。上述のように、(データ構造形態の)ランタイム仕様のデータベースはさまざまな利用可能なランタイム環境から生成可能である。
したがって、一実施形態において、選択されたランタイム環境に応答して、対応するランタイム仕様がデータベースから分析され、ユーザスクリプトは、選択されたランタイム環境の構文に特有である/構文と互換性がある式を含むように生成される。したがって、一実施形態において、分析アプリケーション環境で開発された分析モデルに異なるランタイム環境との互換性を持たせるために、ユーザスクリプトは、分析モデル内のステップの名前を、ランタイム仕様に基づいて対応するステップ/動作についてランタイム環境が用いる名前および構文に再マッピングするステートメントを含む。ゆえに一実施形態において、ユーザスクリプトは、(特有のフォーマットまたは構文を有していない)分析モデルのステートメントを、選択されたランタイム環境の構文に準拠するステートメントに変換するように構成される。
一実施形態において、定量分析プロバイダからのランタイム仕様は、どのように出力結果を得てアルゴリズムから出力結果をリードバックするかについての情報またはデータを含み得る。そのような情報またはデータはポストスクリプト内で用いられてデータの出力を定義し得る。たとえば、出力が、住宅ローンを債務不履行することになるあるグループの顧客についての債務不履行の確率である場合、ランタイム環境は、値を多数の異なる方法で(たとえば数値的に、列として、数値フォーマットにデコードバックする必要がある何らかの2進値として)戻し得る。ポストスクリプトはそれに応じて、結果を分析アプリケーション環境に(たとえばデータベースデバイス120に)ライトバックするまたは出力し戻すことができるように構成される。ゆえに、ランタイム環境からどのように出力をリードバックするのかのランタイム仕様の知識を用いてポストスクリプトが正確に構成される。したがって、ここでも、ポストスクリプトを特定のランタイム環境に適合させることができる。たとえば、一実施形態において、ポストスクリプトデータ構造117は、コンピュータ化されたランタイム環境がどのようにデータベースデバイス120に接続して結果データを格納すべきかを指定する。
出力結果を分析アプリケーション環境にライトバックすることは、分析アプリケーション環境(クライアント/顧客システム)がどのように構成されているかに基づく。しかし一実施形態において、ポストスクリプト式をクライアントシステムからランタイム環境に送信してランタイム環境内で実行することができる。このように、ランタイム環境は、クライアントシステムの要件とともに動作して実行結果を出力するように構成され得る。
顧客がある定量分析プロバイダから別の定量分析プロバイダに変更することによってランタイム環境を変更したい場合は、プリスクリプトブロックおよびポストスクリプトブロックは新たなランタイム環境と互換性があるように生成される。ユーザスクリプトも、モデル内に用いられるステップまたは呼出し関数の式名を、新たなランタイム環境と互換性があるように新たなランタイム環境の対応するアルゴリズム(たとえば線形回帰、相関等)の名前/構文と再マッピングするように生成される。一実施形態において、上述のように、新たなランタイム環境のランタイム仕様がデータベースから取出され、適切な変換およびマッピング命令を決定するために用いられる。したがって、ユーザスクリプトについて、モデル内のステートメントをランタイム環境の対応するステートメントおよび構文に変換するマッピングが実行される。分析アプリケーション環境名が取られてランタイム環境名にマッピングされる。したがって、顧客が定量分析プロバイダを変更すると、新たなランタイム環境の構文に基づいて新たなマッピングが当該ユーザスクリプトについて実行されて生成される。ビジネスアナリストにはこのマッピングが見えない。したがって、ビジネスアナリストにとっては、(ユーザスクリプト内に定義されているような)統計モデルは変化しておらず、ビジネスアナリストによって再プログラミングされる必要はない。
一実施形態において、コンピュータ化された仕様オブジェクト114の一部である開始ブロック(たとえばコンピュータ化された開始オブジェクト)があり、これは、実際の実行を開始する前に分析アプリケーション環境で起こる1セットのステップを提供する。別の実施形態において、当該開始ブロックは、コンピュータ化された仕様オブジェクトとは別個のコンピュータ化された開始オブジェクトであってもよい。
開始ブロックは、どの表、列等が実際のデータを供給するかを定義する。出力結果をファイルとしてライトバックする定量分析プロバイダもある。当該プロバイダはデータベースデバイス120に対して読出/書込をまったく行なわない。したがって、定量分析プロバイダがそのファイルを分析アプリケーション環境に与えると、分析アプリケーション環境は、定量分析プロバイダがファイルにライトバックする書込み許可があるように、どのデータ構造を事前に準備すべきかを決定する。
開始ブロックは、ある意味、基本となるランタイム環境に応じて一度実行される。今日、実行はLinux(登録商標)ボックス上で行なわれ、明日、実行はクラスタ上で行なわれ、その次の日、実行は大型のUNIX(登録商標)IBMメインフレーム環境で行なわれる場合がある。したがって、基本となるデプロイメント環境に応じて、開始ブロックは分析アプリケーションインフラストラクチャ処理の開始時に一度実行される。
構成ブロック(たとえばコンピュータ化された構成オブジェクト)を用いて、システム要素の1つ以上を1セットのパラメータに同期させる。当該1セットのパラメータは、たとえば、リモートファイルの場所に関連するパラメータ(Remote_File_Location)、エッジノードの識別に関連するパラメータ(Edge_Node_Identifier)、hiveセッションに関連するパラメータ(Hive_Session_Parameters)、および関数の識別に関連するパラメータ(Function_ID)を含み得る。さらに、構成ブロックは、モデルがコンピュータ化されたランタイム環境のどこで(ローカルノード、リモートノード、クラスタ上)実行されているかを定義し得る。したがって、一実施形態において、どこで機能が実行されているか、どこでデータがハンドオフされるか、どこで結果が戻されるか、どのフォルダにアクセスすべきか等をシステムが識別するように命令されるおよび/または識別することができるように、ホスト名がシステム内で共有される。これらのパラメータおよび/または命令は構成ブロック内で設定されて定義される。コンピュータ化された構成オブジェクトは、さまざまな実施形態に従って、コンピュータ化された仕様オブジェクトの一部であってもよく、または完全に別個のオブジェクトであってもよい。
システム実行フロー
再び図1を参照して、図1の左側は、分析アプリケーションロジック110を含む分析アプリケーション環境の一実施形態を示す。メタモデルデータベースを含むデータベースデバイス120も存在し、ここに分析アプリケーションロジック110を用いて定義されるオブジェクトが格納される。図1はメタモデルデータベース120への点線接続も示している。メタモデルデータベース120はすべての定義オブジェクトを保持する保管場所である。モデル定義も、メタモデルデータベース120内にデポジットされるオブジェクトである。
一実施形態に従うと、AAIのアプリケーション層はJavaエンジン112である。アプリケーション層内の主要なフレームワークは、統計モデルが(たとえば人間のビジネスアナリストによって)構築されるモデリングフレームワークである。コアモデリングフレームワークは、ビジネスユーザ(人間のビジネスアナリスト)がモデルの意図を宣言的に定義し、これによって少なくともプリスクリプト、ユーザスクリプト、およびポストスクリプトを有するコンピュータ化された仕様オブジェクト114(仕様)が得られる場所である。
一実施形態において、コンピュータ化された仕様オブジェクト114はXMLファイルとして表わされる。XMLファイルの内容は、たとえば、英語を読み書きできる者は誰でもXMLファイルを見て当該モデル定義が意味することを理解できるように、ある意味で口語英語である。したがって、仕様(プリスクリプト、ユーザスクリプト、ポストスクリプト)は、統計的プログラミングの扱いにくく不可解な言語で従来書かれていた表記法のビジネスパーソンが理解できる表記への変換である。これは、XMLファイル118内の「モデルランタイム」ノード構成として図1に表わされている。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に接続できるようにすることによって、または、定量分析プロバイダランタイム環境がAAIデータリポジトリ120に接続しなくてもいいようにデータのファイルベースの表現(ブロック210)を提供することによって、共有され得ることを示す。その程度まで、定量分析プロバイダランタイム環境は、いずれの形態または態様の分析アプリケーションロジック110の存在に対しても完全に不可知論的であり得る。ブロック210のhdfsファイルは、定量分析プロバイダ実行環境150にデータを与えて結果データを取戻すためのルートとなる。
図3は、図1のシステム100がデプロイメントの観点からどのように見えるかを示すデプロイメントアーキテクチャの一実施形態を示す。分析アプリケーション環境310は図3の右側にあり、定量分析プロバイダ環境320は図3の左側にある。図3に示すように、仕様のプリスクリプト322およびポストスクリプト324の部分はプラグインとして分析アプリケーション環境310から定量分析プロバイダ環境320に送信(プッシュ)されており、統計モデルは分析アプリケーション環境から定量分析プロバイダ環境に入力(プッシュ)されている。
図3に示すプッシュ処理は、一実施形態に従ってどのように実行が開始されるかである。図3のブロック326では、分析モデルの複雑度および処理すべきデータ量に応じてプロバイダランタイム環境320が分析モデルを実行して多数のノードに広げられ得る。ポストスクリプト324は、ディスクまたはhdfsファイル328にライトバックするように構成される。ファイルは受信(プル)処理によってリードバックされ、図3の右側に示されるAAIデータベースデバイス312にポストされる。プル処理は、データ要求を別のコンピュータに送信することと、コンピュータが出力結果で応答した後、当該コンピュータから出力結果を受信することとを含むネットワーク通信処理である。図3の左下のHive管理セクション330は、異なる実行可能なタスクを行なっているクラスタの分散部分を示す。
図4は、図1の分析アプリケーションロジック110によって実行可能な方法400の一実施形態を示す。方法400は分析アプリケーションロジック110の動作を記述しており、図1の分析アプリケーションロジック110によって、または方法400のアルゴリズムを用いて構成されたコンピューティングデバイスによって行われるように実行される。たとえば、一実施形態において、方法400はコンピュータアプリケーションを実行するように構成されたコンピューティングデバイスによって実行される。当該コンピュータアプリケーションは、電子形態のデータを処理するように構成され、方法400の機能を果たす格納された実行可能な命令を含む。
方法400を図1の観点から説明する。図1では、分析アプリケーションロジック110は、利用可能なランタイム環境のグループから選択されたランタイム環境に分析モデルを提出するためのユーザインターフェイスおよび変換メカニズムを提供するコンピュータ化システム100の一部である。ここでも、分析モデルは数学モデル、ビジネスモデル、統計モデル、アルゴリズムモデル、またはそれらのいずれかの組合せとして記述され得る。たとえば、分析モデルは、拡張マークアップ言語(XML)ファイルなどのコンピュータ化された文書において一連のステートメント(たとえば分析式)を用いて定義され得る。分析モデルは、たとえば、分析アプリケーション環境において統一された分析式を用いるビジネスアナリストによって生成される。方法400は、ビジネスアナリストまたは他のオペレータが、分析モデルを実行するために利用可能なランタイム環境のグループからランタイム環境を選択できるようにする。ゆえに、方法400は、あるランタイム環境から異なるランタイム環境に容易に切替えて、分析モデルを修正または再プログラミングする必要なしに分析モデルを実際に実行するメカニズムを提供する。
方法400を開始して実行用の分析モデルを提出する処理を開始すると、ブロック410において、選択されたランタイム環境を識別する入力パラメータがユーザインターフェイスから読み出される。一実施形態において、識別されたランタイム環境はメタ情報として格納される。一実施形態において、利用可能なランタイム環境のリスト/グループが、ユーザが選択できるように表示され得る。次に、選択されたランタイム環境のランタイム仕様が上述のようにデータベースから取出される。ランタイム仕様は、関連付けられたランタイム環境の少なくとも構文および関数/ステートメントを定義しており、このデータはユーザスクリプトのための適切な命令を生成するために用いられる。ブロック410は、実行用に提出すべき分析モデルを既存の分析モデルのグループから識別することも含み得る。当該モデルはユーザインターフェイスを介してユーザ入力から識別され得、次に当該方法は、識別されたモデルを格納するデータベースまたは他の記憶場所から当該モデルを取出すことを含む。上記に説明したように、分析モデルは、ランタイム環境と互換性がないフォーマットを用いて定義される分析式を含む。
ブロック420において、ユーザスクリプトデータ構造が生成される。取出されたランタイム仕様を用いて、分析モデルのステートメントをランタイム環境の同等の/対応するステートメントにマッピングするための命令が生成される。たとえば、ユーザスクリプトデータ構造は、メタ情報に基づいて、分析モデルの分析式をコンピュータ化されたランタイム環境の実行可能な式にマッピングするための命令を含む。実行可能な式は、一実施形態に従うと、コンピュータ化されたランタイム環境によって順番に実行すべき複数の計算ステップを含み得る。一実施形態において、ユーザスクリプトデータ構造は、コンピュータ化されたランタイム環境によって入力データに対して実行すべき分析モデルの一連の分析ステップを指定する。ランタイム環境が認識できないフォーマットで分析モデルが定義されている場合でも、ユーザスクリプトデータ構造の命令はランタイム環境によって用いられて、分析モデルが適切に読み出されて実行される。一実施形態において、実行すべき選択された分析モデルはユーザスクリプトデータ構造に追加される/含められる。
ブロック430において、コンピュータ化された仕様オブジェクトが生成される。コンピュータ化された仕様オブジェクトは、上述のように、ユーザスクリプトデータ構造および実行すべき分析モデル、プリスクリプトデータ構造、ならびにポストスクリプトデータ構造を含む。ポストスクリプトデータ構造は、分析モデルによって生成される出力結果データをコンピュータ化されたランタイム環境からどのように出力すべきかを指定する。プリスクリプトデータ構造は、コンピュータ化されたランタイム環境が、分析モデルが作用すべき入力データ(たとえば独立変数データ)にどのようにアクセスすべきかを指定する。
たとえば、プリスクリプトデータ構造は、コンピュータ化されたランタイム環境がどのようにデータベースデバイスに接続して、分析モデルが作用すべき入力データにアクセスすべきかを指定し得る。あるいは、プリスクリプトデータ構造は、分析モデルが作用すべき入力データを、コンピュータ化されたランタイム環境によってどのようにデータファイルから読み出すべきかを指定し得る。
ブロック440において、コンピュータ化された仕様オブジェクト(分析モデルを含む)は、分析モデルをコンピュータ化されたランタイム環境によって実行するために、コンピュータネットワーク上で選択されたコンピュータ化されたランタイム環境にプッシュされる。ここでも、本明細書で使用される「プッシュされる」という用語およびそのさまざまな形態は、別のプログラムまたはコンピュータ(たとえばコンピュータ化されたランタイム環境)がデータを要求していなくてもネットワーク通信を介して当該別のプログラムまたはコンピュータにデータを送る(たとえば送信する)ことを指す。ランタイム環境におけるコンピュータ化された仕様オブジェクトの実行は、一実施形態に従うと、ランタイム環境で受信されると開始され得る。
分析モデルは、少なくともユーザスクリプトデータ構造に含まれているマッピングのための命令に従って、選択されたランタイム環境によって実行される。マッピング命令は、ランタイム環境が分析モデルを適切に読み出して実行することによって、分析モデルにランタイム環境での実行との互換性を持たせることができるようにする。ゆえに、コンピュータ化された仕様オブジェクトは、分析モデルがランタイム環境と互換性がないフォーマットで定義されている場合でも分析モデルに選択されたランタイム環境との互換性を持たせるインターフェイスとして機能する。分析モデルを実行すると、ランタイム環境は結果データを生成する。
ブロック450において、分析モデルを実行することによってコンピュータ化されたランタイム環境から生成された結果データが、コンピュータ化されたランタイム環境からプルされる。ここでも、本明細書で使用される「プルされる」という用語およびそのさまざまな形態は、ネットワーク通信を介して別のプログラムまたはコンピュータからデータを要求して当該データを受信することを指す。一実施形態において、結果データは、ランタイム環境による分析モデルの実行が完了するとポストスクリプトデータ構造に基づいてランタイム環境から分析アプリケーション環境にプルされる。
このコンピュータ化された方法400を用いると、(メタ情報を変更する)ユーザインターフェイスを介して新たなランタイム環境を選択することによって、分析モデルが、選択されたランタイム環境と互換性があるフォーマットに再プログラミングされる/書換えられる必要なしに、選択されたランタイム環境によって実行され得る。ユーザスクリプトデータ構造は、新たに選択されたランタイム環境のランタイム仕様に基づいて再生成されて、分析モデルの分析式を新たに選択されたランタイム環境の実行可能な式に再マッピングする。次に、分析モデルがユーザスクリプトデータ構造とともに実行のために新たなランタイム環境に送信される。
さらに、一実施形態において、コンピュータ化された構成オブジェクトが、コンピュータネットワーク上でコンピュータ化されたランタイム環境にプッシュされ得る。当該コンピュータ化された構成オブジェクトを用いてコンピュータ化されたランタイム環境のシステム要素と同期し、コンピュータ化されたランタイム環境のどこで分析モデルを実行すべきかを指定する。
一実施形態において、コンピュータ化されたランタイム環境による構成ファイルへのアクセスが提供される。構成ファイルは、コンピュータ化されたランタイム環境のどこで(たとえばハードウェアに関して)分析モデルを実行すべきかを指定する。たとえば、構成ファイルは、分析モデルをランタイム環境内のローカルノード、リモートノード、クラスタ化ノード上で、またはそれらの組合せ上で実行すべきであると指定し得る。
一実施形態において、コンピュータ化された開始オブジェクトが、コンピュータネットワーク上でコンピュータ化されたランタイム環境にプッシュされ得る。コンピュータ化された開始オブジェクトは、コンピュータ化されたランタイム環境によってアクセスすべき分析モデルについての入力データを格納する複数のデータ構造を指定する。
このように、ユーザ(たとえばビジネスアナリスト)は、任意の定量分析プロバイダランタイム環境で実行可能な分析モデルを生成することができる。標準化フォーマットを有するコンピュータ化された仕様オブジェクトを生成することができる。標準化フォーマットは、少なくともプリスクリプトデータ構造、ユーザスクリプトデータ構造、およびポストスクリプトデータ構造を含む。ユーザスクリプトデータ構造は分析モデルを指定し、ユーザスクリプトデータ構造が実行されると、分析モデルの分析式を選択されたランタイム環境の実行可能な式にマッピングする。
クラウドまたは企業の実施形態
一実施形態において、本システムは、企業で実行可能なアプリケーションまたは分散アプリケーションの集まりを含むコンピューティング/データ処理システムである。本分析アプリケーションインフラストラクチャ(AAI)は、当該アプリケーションの実装コンポーネント/プログラムモジュールである。当該アプリケーションおよびコンピューティングシステムは、クラウドベースのネットワーキングシステム、サービスとしてのソフトウェア(SaaS)アーキテクチャ、または他の種類のネットワーク化されたコンピューティングソリューションと動作するように構成され得るか、またはこれらとして実装され得る。一実施形態において、本システムは、少なくとも本明細書に開示された機能を提供し、かつコンピュータネットワーク上で(サーバとして機能する)コンピューティングシステムと通信するコンピューティングデバイス/端末を介して多くのユーザによってアクセスされる、集中型サーバ側アプリケーションである。
一実施形態において、(AAIを含む)本明細書に記載のコンポーネントの1つ以上は、非一時的なコンピュータ読取可能な媒体に格納されたプログラムモジュールとして構成される。プログラムモジュールは、少なくとも1つのプロセッサによって実行されると本明細書に記載の対応する機能をコンピューティングデバイスに実行させる命令を格納して構成される。
コンピューティングデバイスの実施形態
図5は、本明細書で説明した例示的なシステムおよび方法、ならびに/または均等物のうちの1つ以上を用いて構成されたおよび/またはプログラミングされた例示的なコンピューティングデバイスを示す。例示的なコンピューティングデバイスは、バス508によって動作可能に接続されたプロセッサ502、メモリ504、および入出力ポート510を含むコンピュータ500であってもよい。一例では、コンピュータ500は、上述のようにAAIの機能を容易にするように構成された、図1の分析アプリケーションロジック110と同様の分析アプリケーションロジック530を含む。他の例では、ロジック530は、ハードウェア、命令が格納された非一時的なコンピュータ読取可能な媒体、ファームウェア、および/またはこれらの組み合わせで実装されてもよい。ロジック530はバス508に装着されたハードウェアコンポーネントとして示されているが、他の実施形態において、ロジック530は、プロセッサ502内に実装されてもよく、メモリ504に格納されてもよく、またはディスク506に格納されてもよいことが理解されねばならない。
一実施形態において、ロジック530またはコンピュータは、説明した動作を実施するための手段(たとえば構造体:ハードウェア、非一時的なコンピュータ読取可能な媒体、ファームウェア)である。いくつかの実施形態において、コンピューティングデバイスは、クラウドコンピューティングシステム内で動作するサーバ、サービスとしてのソフトウェア(SaaS)アーキテクチャで構成されたサーバ、スマートフォン、ラップトップ、タブレットコンピューティングデバイス等であってもよい。
上記手段はまた、メモリ504に一時的に格納されその後プロセッサ502によって実行されるデータ516としてコンピュータ500に与えられる、格納されたコンピュータによる実行が可能な命令として、実装されてもよい。
ロジック530はまた、分析アプリケーションインフラストラクチャ(AAI)の機能を果たすための手段(たとえば、ハードウェア、実行可能な命令を格納している非一時的なコンピュータ読取可能な媒体、ファームウェア)を提供し得る。
コンピュータ500の例示的な構成を概略的に説明すると、プロセッサ502は、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを含む、多様な異なるプロセッサであってもよい。メモリ504は、揮発性メモリおよび/または不揮発性メモリを含み得る。不揮発性メモリは、たとえば、ROM、PROM等を含み得る。揮発性メモリは、たとえば、RAM、SRAM、DRAM等を含み得る。
記憶ディスク506は、たとえば入出力(I/O)インターフェイス(たとえばカード、装置)518および入出力ポート510を介して、コンピュータ500に動作可能に接続されていてもよい。ディスク506は、たとえば、磁気ディスクドライブ、ソリッドステートディスクドライブ、フロッピー(登録商標)ディスクドライブ、ジップドライブ、フラッシュメモリカード、メモリスティック等であってもよい。さらに、ディスク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に接続されていてもよい。コンピュータ500は、ネットワークデバイス520を通してネットワークと対話し得る。コンピュータ500は、ネットワークを通してリモートコンピュータに論理的に接続されていてもよい。コンピュータ500が対話し得るネットワークは、LAN、WAN、および他のネットワークを含み得るがこれらに限定されない。
定義および他の実施形態
別の実施形態において、上記方法および/またはこれらの方法の均等物は、コンピュータにより実行可能な命令を用いて実装してもよい。ゆえに、一実施形態において、非一時的なコンピュータ読取可能な/記憶媒体は、マシンによって実行されたときに上記方法をこのマシン(および/または関連するコンポーネント)に実行させる、アルゴリズム/実行可能なアプリケーションの、コンピュータにより実行可能な命令が格納されて構成されている。例示的なマシンは、プロセッサ、コンピュータ、クラウドコンピューティングシステムにおいて動作するサーバ、サービスとしてのソフトウェア(SaaS)アーキテクチャで構成されたサーバ、スマートフォン等を含むがこれらに限定されない。一実施形態において、コンピューティングデバイスは、開示されている方法のうちのいずれかを実行するように構成された1つ以上の実行可能なアルゴリズムを用いて実装される。
1つ以上の実施形態において、開示されている方法またはこれらの方法の均等物は、その方法を実行するように構成されたコンピュータハードウェアによって、または、その方法を実行するように構成された実行可能なアルゴリズムを含む非一時的なコンピュータ読取可能な媒体内に具体化されたコンピュータソフトウェアによって、実行される。
説明を簡潔にするために、図面に示されている方法論はアルゴリズムの一連のブロックとして示され説明されているが、方法論はブロックの順序によって限定されないことが、理解されねばならない。いくつかのブロックは、示され説明されたものと異なる順序で、および/または他のブロックと同時に起こり得る。また、例示的な方法論を実現するために、示されたすべてのブロックよりも少ないブロックを使用する場合もある。ブロックは組み合わせてもよく、または、複数の動作/コンポーネントに対応させて分離してもよい。さらに、追加のおよび/または代替の方法論が、ブロックに示されていない追加の動作を用いてもよい。
以下は、本明細書で使用される選択された用語の定義を含む。定義は、用語の範囲に含まれ実現のために使用し得るコンポーネントのさまざまな例および/または形態を含む。例は、限定を意図したものではない。定義は用語の単数形も複数形も含み得る。
「一実施形態」、「実施形態」、「一例」、「例」等と述べる場合、そのように説明された実施形態または例が、特定の特徴、構造、特性、性質、要素、または限定を含み得るものの、すべての実施形態または例が必ずしもその特定の特徴、構造、特性、性質、要素、または限定を含むとは限らないことを、示す。さらに、「一実施形態において」という表現を繰返し使用する場合、これは必ずしも同じ実施形態を指すとは限らないが、同じ実施形態を指す場合もある。
ASIC:特定用途向け集積回路。
CD:コンパクトディスク。
CD−R:書込可能なCD。
CD−RW:書換え可能なCD。
DVD:デジタル汎用ディスクおよび/またはデジタルビデオディスク。
LAN:ローカルエリアネットワーク。
RAM:ランダムアクセスメモリ。
DRAM:ダイナミックRAM。
SRAM:同期RAM。
ROM:読み出し専用メモリ。
PROM:プログラマブルROM。
USB:ユニバーサルシリアルバス。
WAN:ワイドエリアネットワーク
「動作可能な接続」、すなわちエンティティが「動作可能に接続される」ようにする接続は、信号、物理的通信、および/または論理的通信の送信および/または受信をなし得る接続である。動作可能な接続は、物理的インターフェイス、電気的インターフェイス、および/またはデータインターフェイスを含み得る。動作可能な接続は、動作可能な制御を可能にするのに十分なインターフェイスおよび/または接続の、異なる組み合わせを含み得る。たとえば、2つのエンティティは、動作可能に接続されることにより、信号を、直接または1つ以上の中間エンティティ(たとえばプロセッサ、オペレーティングシステム、ロジック、非一時的なコンピュータ読取可能な媒体)を通して、互いにやり取りすることができる。動作可能な接続は、データを生成して当該データをメモリに格納する1つのエンティティと、たとえば命令制御を介してメモリからそのデータを取出す別のエンティティとを含み得る。論理的および/または物理的通信チャネルを用いて動作可能な接続を構成することができる。
本明細書で使用される「データ構造」は、メモリ、記憶装置、またはその他のコンピュータ化システムに格納された、コンピューティングシステム内のデータの組織である。データ構造は、たとえば、データフィールド、データファイル、データアレイ、データ記録、データベース、データテーブル、グラフ、ツリー、リンクされたリスト等のうちのいずれか1つであればよい。データ構造は、他の多数のデータ構造から形成されこれらデータ構造を含み得る(たとえば、データベースは多数のデータ記録を含む)。他の実施形態に従うと、データ構造の他の例も同じく可能である。
本明細書で使用される「コンピュータ読取可能な媒体」または「コンピュータ記憶媒体」は、プロセッサによって実行されたときに、開示されている機能のうちの1つ以上を果たすように構成された命令および/またはデータを格納する非一時的な媒体を指す。コンピュータ読取可能な媒体は、不揮発性媒体および揮発性媒体を含むがこれらに限定されない形態であってもよい。不揮発性媒体は、たとえば、光ディスク、磁気ディスク等を含み得る。揮発性媒体は、たとえば、半導体メモリ、ダイナミックメモリ等を含み得る。コンピュータ読取可能な媒体の一般的な形態は、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス、コンパクトディスク(CD)、他の光学媒体、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、メモリチップまたはカード、メモリスティック、ソリッドステート記憶装置(SSD)、フラッシュドライブ、および、それ以外の、コンピュータ、プロセッサまたは他の電子装置が機能することが可能な媒体を含み得るが、これらに限定されない。各種媒体は、一実施形態において実装のために選択された場合、開示されているおよび/または請求項に記載の機能のうちの1つ以上を実行するように構成されたアルゴリズムの、格納された命令を含み得る。
本明細書で使用される「ロジック」は、コンピュータ、または電気的ハードウェア、実行可能なアプリケーションまたはプログラムモジュールの命令が格納された非一時的な媒体、および/またはこれらの組み合わせを用いて実装されて、本明細書に開示されている機能または動作のうちのいずれかを実行する、および/または、本明細書に開示されている別のロジック、方法および/またはシステムからの機能または動作を実行させる、コンポーネントを表わす。同等のロジックは、ファームウェア、アルゴリズムを用いてプログラミングされたマイクロプロセッサ、個別ロジック(たとえばASIC)、少なくとも1つの回路、アナログ回路、デジタル回路、プログラムドロジック装置、アルゴリズムの命令を含むメモリ装置等を含み得る。これらはいずれも開示されている機能のうちの1つ以上を実行するように構成されていてもよい。一実施形態において、ロジックは、1つ以上のゲート、ゲートの組み合わせ、または開示されている機能のうちの1つ以上を実行するように構成された他の回路部品を含み得る。複数のロジックが記載されている場合、これらの複数のロジックを1つのロジックに統合することが可能であろう。同様に、単一のロジックが記載されている場合、この単一のロジックを複数のロジック間で分散させることが可能であろう。一実施形態において、これらロジックのうちの1つ以上は、開示されているおよび/または請求項に記載の機能の実行に関係する、対応する構造である。どのタイプのロジックを実装するかという選択は、所望のシステム条件または仕様に基づき得る。たとえば、考慮すべき事項が高速化である場合は、ハードウェアが機能を実現するように選択されるであろう。考慮すべき事項が低コスト化である場合は、格納された命令/実行可能なアプリケーションが機能を実現するように選択されるであろう。
本明細書で使用される「ユーザ」は、1人以上の人間、1つ以上のコンピュータもしくはその他の装置、またはこれらの組み合わせを含むがこれらに限定されない。
開示された実施形態は図示されかなり詳細に説明されているが、以下の請求項の範囲をこのような詳細事項に限定することまたは何らかの形で制限することは意図されていない。主題のさまざまな局面を説明するために、考えられるだけのすべての構成要素または方法論の組み合わせを説明することは、当然不可能である。したがって、本開示は、具体的な詳細事項にも、図示され説明されている例示のための例にも限定されない。ゆえに、本開示は、添付の請求項の範囲内にある変更、修正、および変化を含むことが意図されている。
「含む(includesまたはincluding)」という用語は、詳細な説明または請求項において使用されている限り、請求項の移行句として用いられるときの「備える(comprising)」の解釈と同様に包括的な用語であることが意図されている。
「または」という用語は、詳細な説明または請求項において使用されている限り(たとえばAまたはB)、「AまたはBまたはAとB」を意味することが意図されている。出願人が「AとBではなくAのみまたはBのみ」を示すことを意図する場合は、「AとBではなくAのみまたはBのみ」という表現を使用する。このように、本明細書における「または」という用語の用法は、包括的用法であって排他的用法ではない。
「A、B、およびCのうちの1つ以上」という表現は、本明細書において使用されている限り(たとえばA、B、およびCのうちの1つ以上を格納するように構成されたデータ記憶装置)、一組の可能性すなわちA、B、C、AB、AC、BC、および/またはABCを意味することが意図されている(たとえば、データ記憶装置は、Aのみ、Bのみ、Cのみ、A&B、A&C、B&C、および/またはA&B&Cを格納し得る)。Aのうちの1つ、Bのうちの1つ、およびCのうちの1つを要求することは意図されていない。出願人が「Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、およびCのうちの少なくとも1つ」を示すことを意図する場合は、「Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、およびCのうちの少なくとも1つ」という表現を使用する。

Claims (15)

  1. コンピューティングデバイス(110)によって行なわれる、コンピュータによって実行される方法(400)であって、前記コンピューティングデバイス(110)はメモリからの命令を実行するための少なくとも1つのプロセッサを含み、前記方法(400)は、
    利用可能なコンピュータ化されたランタイム環境のグループから選択されたランタイム環境(150)を識別すること(410)を備え、前記選択されたランタイム環境(150)は分析式を含む分析モデルを実行するように選択され、前記分析モデルは前記選択されたランタイム環境(150)の実行と互換性がないフォーマットであり、前記方法はさらに、
    ユーザスクリプトデータ構造(116)を生成すること(420)を備え、前記ユーザスクリプトデータ構造(116)は、前記選択されたランタイム環境(150)のランタイム仕様に基づいて、前記分析モデルの前記分析式を前記選択されたランタイム環境(150)の実行可能な式にマッピングするための命令を含み、前記方法はさらに、
    コンピュータ化された仕様オブジェクト(114)を生成すること(430)を備え、前記コンピュータ化された仕様オブジェクト(114)は、
    (i) 前記選択されたランタイム環境(150)が、前記分析モデルが作用すべき入力データにどのようにアクセスすべきかを指定するプリスクリプトデータ構造(115)と、
    (ii) 前記ユーザスクリプトデータ構造(116)および前記分析モデルと、
    (iii) 前記分析モデルによって生成された結果データを前記選択されたランタイム環境(150)からどのように出力すべきかを指定するポストスクリプトデータ構造(117)とを含み、前記方法はさらに、
    前記分析モデルを前記選択されたランタイム環境(150)によって実行するために、前記コンピュータ化された仕様オブジェクト(114)をコンピュータネットワーク上で前記選択されたランタイム環境(150)に送信すること(440)を備え、少なくとも前記マッピングするための命令は、前記分析モデルに、前記選択されたランタイム環境(150)における実行との互換性を持たせ、前記方法はさらに、
    前記選択されたランタイム環境(150)から結果データを受信すること(450)を備える、方法。
  2. コンピュータ化された構成オブジェクトを前記コンピュータネットワーク上で前記選択されたランタイム環境に送信して、パラメータのセットに基づいて前記選択されたランタイム環境と同期し、前記選択されたランタイム環境のどこで前記分析モデルを実行すべきかを指定することをさらに備える、請求項1に記載の方法。
  3. 前記選択されたランタイム環境において前記コンピュータ化された仕様オブジェクトの実行を開始することをさらに備える、請求項1に記載の方法。
  4. 前記実行可能な式は、前記選択されたランタイム環境によって順番に実行すべき複数の計算ステップを含む、請求項1に記載の方法。
  5. 前記プリスクリプトデータ構造は、前記選択されたランタイム環境がどのようにデータベースデバイスに接続して、前記分析モデルが作用すべき前記入力データにアクセスすべきかを指定するように生成される、請求項1に記載の方法。
  6. 前記プリスクリプトデータ構造は、前記分析モデルが作用すべき前記入力データを、前記選択されたランタイム環境によってどのようにデータファイルから読出すべきかを指定するように生成される、請求項1に記載の方法。
  7. 前記選択されたランタイム環境による構成ファイルへのアクセスを提供することをさらに備え、前記構成ファイルは、前記分析モデルを、前記選択されたランタイム環境のローカルノード上で、リモートノード上で、クラスタ化ノード上で、または前記ローカルノード、前記リモートノード、および前記クラスタ化ノードの組合せ上で実行すべきであると指定する、請求項1に記載の方法。
  8. コンピュータ化された開始オブジェクトを前記コンピュータネットワーク上で前記選択されたランタイム環境に送信することをさらに備え、前記コンピュータ化された開始オブジェクトは、前記選択されたランタイム環境によってアクセスすべき前記分析モデルについての前記入力データを格納する複数のデータ構造を指定する、請求項1に記載の方法。
  9. 前記ユーザスクリプトデータ構造は、前記選択されたランタイム環境によって前記入力データに対して実行すべき前記分析モデルの一連の分析ステップを指定するように生成される、請求項1に記載の方法。
  10. コンピューティングシステム(100)であって、
    コンピュータ化された仕様オブジェクト(114)を生成するように構成された分析アプリケーションロジック(110)を備え、前記コンピュータ化された仕様オブジェクトは、
    分析式を有する分析モデルを指定するユーザスクリプトデータ構造(116)を有し、前記ユーザスクリプトデータ構造(116)は、前記分析式をコンピュータ化されたランタイム環境(150)の実行可能な式にマッピングするための命令を含み、前記コンピュータ化された仕様オブジェクトはさらに、
    前記コンピュータ化されたランタイム環境(150)が、前記分析モデルが作用すべき独立変数データにどのようにアクセスすべきかを指定するプリスクリプトデータ構造(115)と、
    前記コンピュータ化されたランタイム環境(150)によって実行されたときに前記分析モデルによって生成された結果データをどのように出力すべきかを指定するポストスクリプトデータ構造(117)とを有し、前記コンピューティングシステムはさらに、
    前記コンピュータ化された仕様オブジェクト(114)を生成するための前記分析アプリケーションロジック(110)とのユーザ対話を容易にするように構成されたユーザインターフェイスロジック(130)を備える、コンピューティングシステム。
  11. 前記分析モデルは、複数の計算ステップを、前記コンピュータ化されたランタイム環境によって順番に実行すべき前記分析式として指定する、請求項10に記載のコンピューティングシステム。
  12. 前記分析モデルは、複数の統計演算を、前記コンピュータ化されたランタイム環境によって順番に実行すべき前記分析式として指定する、請求項10に記載のコンピューティングシステム。
  13. 前記独立変数データおよび前記結果データを格納するように構成されたデータベースデバイスをさらに備え、前記データベースデバイスは前記コンピュータ化されたランタイム環境によってアクセス可能である、請求項10に記載のコンピューティングシステム。
  14. 前記プリスクリプトデータ構造は、前記コンピュータ化されたランタイム環境がどのように前記データベースデバイスに接続して前記独立変数データにアクセスすべきかを指定する、請求項13に記載のコンピューティングシステム。
  15. 前記ポストスクリプトデータ構造は、前記コンピュータ化されたランタイム環境がどのように前記データベースデバイスに接続して前記結果データを格納すべきかを指定する、請求項13に記載のコンピューティングシステム。
JP2018521541A 2015-10-27 2016-01-28 多様なランタイム環境でモデルと対話してモデルを実行するための統一インターフェイス仕様 Active JP6816136B2 (ja)

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 US9684490B2 (en) 2015-10-27 2015-12-17 Uniform interface specification for interacting with and executing models in a variety of runtime environments
US14/972,291 2015-12-17
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 (3)

Publication Number Publication Date
JP2018536227A true JP2018536227A (ja) 2018-12-06
JP2018536227A5 JP2018536227A5 (ja) 2019-02-28
JP6816136B2 JP6816136B2 (ja) 2021-01-20

Family

ID=58558759

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018521541A Active JP6816136B2 (ja) 2015-10-27 2016-01-28 多様なランタイム環境でモデルと対話してモデルを実行するための統一インターフェイス仕様

Country Status (4)

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

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4224309A3 (en) 2015-08-05 2023-10-25 Equifax, Inc. Model integration tool
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
US11381575B2 (en) * 2019-05-03 2022-07-05 Microsoft Technology Licensing, Llc Controlling access to resources of edge devices
CN110750264B (zh) * 2019-10-16 2021-01-05 珠海格力电器股份有限公司 脚本界面的显示方法及装置
CN111460620B (zh) * 2020-03-06 2023-06-20 北京仿真中心 一种试验评估模型构建方法及系统
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 政采云有限公司 一种数据处理方法、系统及电子设备和存储介质
CN112328304B (zh) * 2020-10-12 2024-04-09 中国建设银行股份有限公司 一种脚本适配方法、系统、设备及计算机存储介质
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
US12131139B2 (en) 2021-11-22 2024-10-29 Oracle Financial Services Software Limited Unified pipeline flow with common and phase-specific paths

Family Cites Families (22)

* 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
CN100468330C (zh) * 2007-03-30 2009-03-11 腾讯科技(深圳)有限公司 一种脚本内核管理方法及系统
CN100485692C (zh) * 2007-06-29 2009-05-06 中兴通讯股份有限公司 Xml数据存储系统和方法
US8417715B1 (en) * 2007-12-19 2013-04-09 Tilmann Bruckhaus Platform independent plug-in methods and systems for data mining and analytics
US9569468B2 (en) * 2013-05-07 2017-02-14 Red Hat Israel, Ltd. Deploying database upgrades to multiple environments in a different order
US10579396B2 (en) * 2014-04-09 2020-03-03 Nice-Systems Ltd. System and automated method for configuring a predictive model and deploying it on a target platform
CN103955369B (zh) * 2014-04-28 2017-05-17 中国人民解放军理工大学 一种基于扩展uml的软件模糊自适应建模工具构造方法
US9436507B2 (en) * 2014-07-12 2016-09-06 Microsoft Technology Licensing, Llc Composing and executing workflows made up of functional pluggable building blocks
CN104899046B (zh) * 2015-06-26 2018-01-30 上海斐讯数据通信技术有限公司 一种多功能脚本运行方法和系统

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6816136B2 (ja) 多様なランタイム環境でモデルと対話してモデルを実行するための統一インターフェイス仕様
US10606565B2 (en) Visual devops systems and methods
US10355941B2 (en) Sensor data handling for cloud-platform infrastructure layouts
AU2016259298B2 (en) Machine for development and deployment of analytical models
US10664331B2 (en) Generating an application programming interface
EP3182280B1 (en) Machine for development of analytical models
CN106067080B (zh) 提供可配置工作流能力
US9633052B2 (en) System and method for decomposition of code generation into separate physical units though execution units
US10089082B2 (en) Visual devops systems and methods
US20200311095A1 (en) System and method for automated source code generation for database conversion
US10783193B2 (en) Program, method, and system for execution of software services
US20150242476A1 (en) Updating database statistics with dynamic profiles
CN110673839A (zh) 分布式工具配置化构建生成方法及系统
US10951540B1 (en) Capture and execution of provider network tasks
US11449504B2 (en) Database partition pruning using dependency graph
Nen et al. Pigeon-table: A quick prototyping tool using twitter bootstraps and AngularJS for data-driven web application development
US11991254B1 (en) Ontology-based approach for modeling service dependencies in a provider network
CN112732704B (zh) 一种数据处理方法、装置及存储介质
US12131139B2 (en) Unified pipeline flow with common and phase-specific paths
CN116126995A (zh) 一种索引信息的生成方法、装置及计算机可读存储介质
US10496710B2 (en) Online data management system
Bassett Benchmarking Hive on Spark and SQL Server with the Real Time Data Warehousing Chain

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190117

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201007

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201223

R150 Certificate of patent or registration of utility model

Ref document number: 6816136

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250