JP6073838B2 - 条件成分を有するパラメータ化図形 - Google Patents

条件成分を有するパラメータ化図形 Download PDF

Info

Publication number
JP6073838B2
JP6073838B2 JP2014159008A JP2014159008A JP6073838B2 JP 6073838 B2 JP6073838 B2 JP 6073838B2 JP 2014159008 A JP2014159008 A JP 2014159008A JP 2014159008 A JP2014159008 A JP 2014159008A JP 6073838 B2 JP6073838 B2 JP 6073838B2
Authority
JP
Japan
Prior art keywords
component
condition
runtime
parameter
conditional
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.)
Expired - Lifetime
Application number
JP2014159008A
Other languages
English (en)
Other versions
JP2014225289A (ja
Inventor
ジョセフ スケフィントン サード ホーレイ
ジョセフ スケフィントン サード ホーレイ
ブロンド ラーソン
ブロンド ラーソン
グレン ジョン アリン
グレン ジョン アリン
ティム ウェイクリング
ティム ウェイクリング
マーティン エー セラノ
マーティン エー セラノ
クレイグ ダブリュ スタンフィル
クレイグ ダブリュ スタンフィル
Original Assignee
アビニシオ テクノロジー エルエルシー
アビニシオ テクノロジー エルエルシー
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 アビニシオ テクノロジー エルエルシー, アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2014225289A publication Critical patent/JP2014225289A/ja
Application granted granted Critical
Publication of JP6073838B2 publication Critical patent/JP6073838B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Devices For Executing Special Programs (AREA)
  • Document Processing Apparatus (AREA)

Description

本発明は、データ処理システムでの演算の制御に関し、より詳細に述べるとパラメータ化データフロー図形(parameterized data flow graph)として表されるコンピュータプログラムの作成と実行に関する。
複雑なビジネスシステムは、典型的に、データを複数のステージで処理して、一ステージで生成した結果を次のステージに送る。このようなシステムを通る情報の全体の流れは、成分(component)(データファイル又はデータプロセス)を表す図形中の頂点(vertex)及び成分間のデータの流れを示す図形中のリンク又は「エッジ」を有する有向データフロー図形によって説明することができる。
同じタイプの図形表現を利用して、並列の処理システムを説明することができる。これを考察するための並列処理システムとしては、複数の中央処理装置(CPU)すなわち局所CPU(例えばSMPコンピュータなどの多重プロセッサシステム)もしくは局所分布CPU(例えばクラスタもしくはMPPのような連結された多重プロセッサ);又は遠隔CPUもしくは遠隔分布のCPU(例えばLANネットワークもしくはWANネットワークで連結された多重プロセッサ)又はこれらの組み合わせを使用する配置構成のコンピュータシステムがある。それら図形は、やはり成分(データファイル又はデータプロセス)及びフロー(図形のエッジ又はリンク)で構成されている。図形の要素(成分とフロー)を明確に又は暗に繰り返すことによって、システムの並行処理を示すことができる。
また、図形は、演算を直接呼び出すのに使用することもできる。米国マサチューセッツ州レキシントン所在のAb Initio Software Corporation由来のGraphical
Development Environment(GDE)付きの「CO>OPERATING SYSTEM(登録商標)」はこのようなシステムを含んでいる。このシステムによってつくられる図形は、図形成分が表す個々のプロセスに情報を送りかつそのプロセスから情報を得る方法、情報をプロセス間に移動させる方法、及びプロセスに対する実行順序を定義する方法を提供する。このシステムは、プロセス間通信法を選ぶアルゴリズム及びプロセス実行をスケジュールするアルゴリズムを含み、かつ図形実行の監視も行う。
開発者らは、「ランタイム」に(すなわち図形が実行されるときに)図形コンパイラ(graph
compiler)によって実行可能な命令に変換される命令[例えばシェルスクリプト(shell script)]を生成できる環境変数又はコマンド行引き数(command-line argument)を使用することによって、どうにか制御される図形をつくることが極めて多い。したがって、環境変数及びコマンド行引き数は、ファイルネーム、データ選択表現及びキー[例えばソートキー(sort key)]などの情報を指定するad hocパラメータになり、そのアプリケーションをよりフレキシブルにする。しかし、環境変数とコマンド行引き数をこのように使用すると図形が分かりにくくなって、ヒトとプログラムの両者が理解しにくくなる。この方法の最も重大な問題は、その図形が明確に定義されたユーザインタフェースをもっていないことである。例えば、ユーザは、生成したシェルスクリプトを読み取り、そのシェルスクリプトをサーチして環境変数とコマンド行引き数を参照して、特定の図形の実行を制御するパラメータのセットを見つけなければならないかもしれない。
既存の図形の追加の問題は、これらの図形が、特定のアプリケーション又はデータセットの要求に基づいて、ランタイムに、任意に作成し直すことができないことである。したがって、二つのアプリケーションがかなり類似しているが同一でない場合、開発者は各アプリケーションに対して別々の図形をつくることが必要になることがある。
したがって、本発明の発明者らは、パラメータ化図形を提供するシステムと方法を提供することが有用であることを確認したのである。また、本発明の発明者らは、ランタイムのパラメータによって、開発者がフレキシブルなアプリケーションをつくることができるが、図形自体をパラメータ値に基づいて変えることも望ましい場合があることも確認した。したがって、本発明の発明者らは、条件成分(conditional component)を含みうる図形のシステム及び方法を提供することも有用であるということを確認した。
本発明は、ランタイムのパラメータを容認するためデータフロー図形のパラメータ化を形式化する。ランタイムのパラメータは、アプリケーションビルダーに、パラメータセッティング(例えばソート関数、ファイルネーム、レコード形式、変換関数などのキーパラメータ)の値を、ランタイム(アプリケーションがコンピュータシステムで実行される時)まで遅らさせることができる。ランタイムパラメータに対する値は、最終ユーザが送るか、又は他のランタイムパラメータの組み合わせ又はオブジェクトリポジトリに記憶されたオブジェクトから引き出すことができる。
ランタイムパラメータは、特定の大きさのフレキシビリティをアプリケーションに加える。追加のフレキシビリティは、これらのパラメータを使用し、要求に応じて、メタデータ(データ形式もしくはデータタイプ及びプログラム論理もしくはプログラム変換)を計算することによって達成される。タイプや変換は、他のタイプや変換、使用者が供給するパラメータ値、および記憶されたオブジェクトから(例えばリポジトリから)合成することができる。このことによって、任意のタイプの入力データで作動するか、またはその構造が直接又は間接的にランタイムパラメータ値を通じて制御される一連の変換によってデータを生成する「総称(generic)」アプリケーションをつくることができる。
好ましい実施態様では、ランタイムパラメータをつくるか又は編集する場合、開発者は、各パラメータに対するプロンプト及びプロンプトを表示する条件を指定することができる。その好ましい実施態様は、条件が満たされると、そのプロンプティングディレクティブ(prompting directive)が存在していると解釈して、図形ユーザインタフェース(GUI)が、パラメータ値の受け取りを制御する。
本発明の一実施態様は、パラメータ値及び計算されたメタデータに基づいて図形の構造を変えることができる条件成分機構を備えている。図形の各成分は、その成分がランタイムに図形中に現れるのか又は現れないのかを制御する条件をもっている。その条件は、ランタイムパラメータを通じて直接又は間接的に計算することができる。条件成分を使用して、図形を最適化又は特殊化することができる。
特に、一つの側面で、本発明は、ランタイムパラメータをもっている成分を有する図形を実行するための方法、システム及びコンピュータプログラムであって;図形をランタイム実行する際の図形のランタイムパラメータを検索し、そのランタイムパラメータは図形をランタイム実行する際に決定できると定義されている値を有し;そのランタイムパラメータに対する値をユーザ入力によって提供すべきかどうかを決定し;このように決定されたあらゆるランタイムパラメータのユーザ入力を受け取るためのユーザへのプロンプトを表示し;このようなプロンプトに対するユーザの応答に基づいて第一最終パラメータ値を決定し;次いで、その第一最終パラメータ値を、ランタイムパラメータに対する値として用いて図形を実行する;ことを含んでなる方法、システム及びコンピュータプログラムを含んでいる。またこのランタイムパラメータの値は、プログラムによって外部から供給することもできる。
別の側面で、本発明は、図形をランタイムに実行する際に、図形を変形する方法、システム及びコンピュータプログラムであって;図形のランタイム実行時に、図形の成分を、条件及び条件インタプリテーションを有する条件成分であると定義するかどうかを決定し;あらゆるこのような条件成分に対する条件を評価し;次いでこのような評価及びこのような条件成分の対応する条件インタプリテーションにしたがって、図形を、そのランタイム実行時に変形する;ことを含んでなる方法、システム及びコンピュータプログラムを含んでいる。該条件の一評価及びこのような条件成分の対応する条件インタプリテーションによって、条件成分及びこのような条件成分に接続されたすべてのフローが、図形を実行する前に図形から除かれる。該条件の別の評価及びこのような条件成分の対応する条件インタプリテーションによって、その条件成分は、図形を実行する前に、図形のフローで置換される。
したがって、計算をデータフロー図形として表現する基本概念は下記のように拡張された。
・ランタイムパラメータに関する図形のインタフェースが形式化された。図形のインタフェースは、システムが、どんなパラメータを供給する必要があるか、及びパラメータをどのようにプロンプトすべきかを知るのに充分によく定義された。
・成分を制御するメタデータは、ランタイムパラメータによって、直接又は間接的に指定又は計算することができる。
・図形の構造は、条件成分を制御するランタイムパラメータの値に基づいて変形することができるので、それら成分はユーザの選択に基づいて存在するか又は存在しない。
これらの特徴を組み合わせると、データを処理する実質的により強力なシステムが得られる。
図形のランタイムパラメータ化の利点は、ビジネスアナリストやスタティスティカルモデラーなどのエンドユーザが彼等の要求を満たすデータを要求できるよう充分豊富に、アプリケーションをパラメータ化できることである。現代企業のデータ環境が複雑なため、データの収集とプリアナリシスのトランスフォーメーション(pre-analysis transformation)のプロセスでヒトがかなり直接かかわる必要がある状態になっている。本発明は、各問い合わせタイプのクリチカルパス(critical path)にエキスパートのデータアナライザを必要とせずに、エンドユーザが所望のデータを定義し検索できるようにする強力なツールを、エンドユーザに提供する。
本発明の1又は2以上の実施態様の詳細を、添付図面と下記の記述で説明する。本発明の他の特徴、目的及び利点は下記説明と図面及び特許請求の範囲から明らかになるであろう。なお各種図面中の同じ参照記号は同じ要素を示す。
主な要素の相互関連を示す本発明の一実施態様のブロック図である。 指定のランタイムパラメータを有するロールアップ成分とソート成分204を備えた典型的な図形のブロック図である。 図形と関連するランタイムパラメータグリッドを表す図形ダイアログの一実施態様の線図である。 ランタイムパラメータを使用するプロセスを要約するフローチャートである。 keyプロンプトが生成する図形ダイアログの一実施態様の線図である。 filterプロンプトが生成する図形ダイアログの一実施態様の線図である。 rollupプロンプトが生成する図形ダイアログの一実施態様の線図である。 reformatプロンプトが生成する図形ダイアログの一実施態様の線図である。 MergeJoin成分が、ファイルAとBからのデータを結合してその結果を出力ファイルに出力する第一図形のブロック図である。 ロールアップ成分がファイルAからデータを集めてその結果を出力ファイルに出力する第二図形のブロック図である。 MergeJoin成分が、ファイルAとBからのデータを結合し、次にロールアップ成分が、得られたデータを集めて最終結果を出力ファイルに出力する図形のブロック図である。 条件−インタプリテーション制御を有する条件を表示する図形ダイアログの一実施態様の線図である。 汚染が起こっている状態を示す図形の線図である。 Remove Completely条件成分を含む図形のランタイムプリパレーションのプロセスを要約するフローチャートである。 本発明の特定の一実施態様のためのReplace With Flow条件成分を含む図形のランタイムプリパレーションのプロセスを要約するフローチャートである。 ランタイムパラメータなしのロールアップアプリケーションを表す図形の線図である。 図14に示すロールアップアプリケーションのランタイムパラメータ化バージョンを表す図形の線図である。 図15に示す実施例アプリケーションに対するランタイムパラメータグリッドを表す図形ダイアログの一実施態様の線図である。 図16に示すパラメータグリッドの情報から、ウェブインタフェースが生成したフォームを表す図形ダイアログの一実施態様の線図である。 ユーザがパラメータ値を埋めこんだ図17Aに示すフォームの線図である。 ランタイムパラメータ化されたロールアップと結合のアプリケーションを表す図形の線図である。 図18に示す実施例アプリケーションに対するランタイムパラメータグリッドを表す図形ダイアログの一実施態様の線図である。 図19に示すパラメータグリッドの情報から、ウェブインタフェースが生成したフォームを表す図形ダイアログの一実施態様の線図である。 ランタイムパラメータ化ロールアップ−結合−ソートアプリケーションを表す図形の線図である。 図21に示した実施例アプリケーションに対するランタイムパラメータグリッドを表す図形ダイアログの一実施態様の線図である。
概要
図1は、主な要素の相関関係を示す本発明の実施態様のブロック図である。グラフィックデベロップメントインバイロンメント(GDE)102は、実行可能な図形をつくりそして図形成分のパラメータを定義するためのユーザインタフェースを提供する。GDEとしては、例えば本発明の権利譲受人から入手できるCO>OPERATING SYSTEM(登録商標)のGDEがある。GDE102はリポジトリ104及び並列操作システム106と交信している。また、そのリポジトリ104と並列操作システム106に、ウェブインタフェース108とエグゼクティブ110が連結されている。
リポジトリ104は、好ましくは、図形ベースのアプリケーションの開発(development)と実行及び図形ベースアプリケーションと他のシステム(例えば他の操作システム)の間のメタデータの交換を支持するように設計された拡大縮小可能なオブジェクト指向データベースシステムである。リポジトリ104は、文書、レコード形式、変換関数、図形、ジョブ、及び監視情報を含む(限定されないが)すべての種類のメタデータの記憶システムである。リポジトリは当該技術分野で知られている(例えば米国特許第5,930,794号、同第6,032,158号、同第6,038,558号及び同第6,044,374号参照)。
並列操作システム106は、GDE102に生成したデータフロー図形の図形表現を受け取り、処理論理に応答するコンピュータ命令及び図形によって定義されるリソースを生成する。次に、並列操作システム106は、典型的に、それらの命令を、複数のプロセッサ(同種である必要はない)で実行する。適切な並列操作システムは、本発明の譲受人から入手できるCO>OPERATING SYSTEM(登録商標)である。
ウェブインタフェース108は、リポジトリ104の内容のウェブ・ブラウザ・ベースの表示(web-browser-based view)を提供する。ユーザは、ウェブインタフェース108を使用して、オブジェクトをブラウズし、新しいオブジェクトをつくり、既存のオブジェクトを変え、アプリケーションパラメータを指定し、ジョブを計画するなどを行うことができる。ウェブインタフェース108は、図形のランタイムパラメータの、リポジトリ104に記憶された情報に基づいて、パラメータ化された図形に対する書式ベースのユーザインタフェースを自動的につくる。
エグゼクティブ110は、ウェブインタフェース108を通じてアクセスされる任意のリポジトリベースのジョブ計画システムである。エグゼクティブ110は、ジョブとジョブ待ち行列を、リポジトリ104内のオブジェクトとして維持し、そしてウェブインタフェース108は、ジョブとジョブ待ち行列の表示、及びジョブとジョブ待ち行列を操作するためのファシリティを提供する。このような計画機能は当該技術分野では周知である(本発明を使用すると、エグゼクティブを利用する必要がないことに留意のこと)。
図2は、指定のランタイムパラメータを含むロールアップ成分202と、ソート成分204を有する典型的な図形200のブロック図である。そのランタイムパラメータ(ソート成分204のキー及びロールアップ成分202のルール)は、入力するため、インタフェース206に、ユーザに対して表示される。以下の章で、ランタイムパラメータを指定し、次に、ユーザ入力を必要とするランタイムパラメータを提供するための結合ユーザインタフェースをつくる方法を説明する。
ランタイムパラメータの指定
ランタイムパラメータは、開発者が、図形実行時間(すなわちランタイム)において、外部入力に基づいて、図形の挙動を変える機構を提供する。好ましい実施態様では、これらの外部の値は、直接ユーザ入力によって提供される。しかし、これらの外部の値は、環境変数やコマンド行パラメータを含むいくつもの異なるソースからくることがある。GDE102は、図形がGDEから直接実行されるとき、開発者を試験値に対してプロンプトするのみならず、これらの状態すべてを処理するために正しいコードを生成する。ランタイムパラメータを使用して、開発者は、例えば、入力ファイルの経路が特定のネームを有する環境変数によって提供され;その環境変数は図形インタフェースの既知の部分になる;ということを明確に宣言することができる。このように、このようなパラメータには明確に定義されたインタフェースがある。例えば、生成したシェルスクリプトを読み取って、それを、環境変数とコマンド行引き数を参照してサーチして、特定図形の実行を制御するパラメータのセットを見つける必要がない。
ランタイムパラメータは、いくつもの方法で指定又は定義することができる。一つの方法は、GDE102に表示されるランタイムパラメータグリッドを使用する方法である。図3は、図形に関連しているランタイムパラメータグリッド300を表す図形ダイアログ(graphical dialog)の一実施態様の線図である。新しいランタイムパラメータが、必要なフィールドを単に埋めることによってつくられる。各ランタイムパラメータに関連するオブジェクトは、リポジトリ104内につくられ、そのパラメータを利用するすべての図形成分にリンクされる。例えば、図形ソート成分のソートキーがランタイムパラメータとして定義されると、そのソートキーのパラメータを表すオブジェクトはリポジトリ104に記憶され、次いで関連するソート成分にリンクされる。ランタイムパラメータを定義する別の方法は、図形成分の既存のパラメータに特別にフラグを立てて、それを、他の成分に対して「見える」ようにする(エクスポートする)方法である。これらの方法の組み合わせを使用することができる。例えば、成分をつくるとき、開発者は、その成分の特定のパラメータを、ランタイムパラメータとして指定することができる。開発者は次に、パラメータグリッドを使用して、図形のすべてのランタイムパラメータのデフォルト値などの特定値を設定して、新しいランタイムパラメータを定義することができる。
図形が実行されると、そのパラメータが処理されて、各パラメータに対する値が、ユーザ入力又は外部のプログラムソース(例えばコマンド行パラメータ又は環境変数)から得られる。例示実施態様には、ランタイムパラメータグリッド300が下記フィールドを含んでいる。
ネーム302−このフィールドはランタイムパラメータのネームを含んでいる。「スコア−しきい値(score-threshold)」はネームとして示される例である。
タイプ304−このフィールドは、ランタイムパラメータに許容される値のタイプを含んでいる。「整数(Integer)」はタイプとして示される例である。例示実施態様にサポートされているタイプは次のとおりである。
・ブール(boolean)−値は真又は偽である。
・選択−値は一組の値のうちの一つの値である。
・コレータ(collator)−キーパラメータ値
・データセット−外部データファイルのネームと位置
・日付−日付値
・式−算術、論理及び/又は条件の式(例えば選択式)
・浮動小数−浮動小数点数
・整数−整数の数
・レイアウト−並列又は直列のレイアウトの定義
・レコード形式−レコード記述、又は変換記述を含むファイル
・文字列(string)−アービタリー文字列
・変換−変換記述、又は変換記述を含むファイル
ロケーション(Loc)306−このフィールドは、レコード形式と変換のタイプで使用される。それは、タイプフィールド304がファイルのロケーションを記述しているかどうか、又は埋め込み記述を含んでいるのかどうかを指定する。サポートされるロケーションは次のとおりである。
・埋め込み−パラメータはレコード記述又は変換記述を含んでいる。
・ホスト−パラメータはホスト計算器のファイルに対する参照を含んでいる。
・局所−パラメータは局所機械のファイルに対する参照を含んでいる。
・リポジトリ−パラメータは、リポジトリ変換又はレコード形式に対する参照を含んでいる。
デフォルト値308−このフィールドは、(1)他の値が外部のプログラムソースから与えられない場合に使用されるランタイムパラメータのデフォルト値、又は(2)ランタイム値をユーザ入力から引き出す方法、もしくは図形を実行するユーザから対話によってその情報を得る方法を記述するルールもしくは式を含んでいる。後者の場合、ユーザが入力値を提供しない場合、第二のデフォルト値フィールド(図示せず)を使用して、ランタイムパラメータに対する値を提供することができる。「ブール」及び「選択」のタイプの場合、このフィールドは、ユーザを、有効な選択に限定する。「レイアウト」のタイプの場合、このフィールドは読み取り専用であり、現在定義されているレイアウトの定義を表示する。その他のすべてのタイプの場合、このフィールドは、好ましくは、ユーザが有効文字列をタイプできる簡単なテキスト・エディタ(text editor)である。
エディト(edit)310−パラメータ行のエディトスペース310(又はアイコン、例えばペンシルアイコン)に対するクリッキングは、もっと前進した(more advanced)エディトウィンドウをもたらし、そのウィンドウは、デフォルト値フィールド308をエディトするため、ユーザに、各種オプションをウォークスルーさせる。例示した実施態様では、下記のエディタを、それらの関連するタイプに対して利用できる。
・単一ラインエディト−整数、浮動、日付及び文字列のタイプの場合
・選択ダイアログ−ブール及び選択のタイプの場合
・キーエディタ−コレータタイプの場合
・ファイルブラウザ−データセットタイプの場合及びロケーションが埋め込まれていないレコード形式と変換のタイプの場合
・変換エディタ−ロケーションが埋め込まれている変換タイプの場合
・レコード形式エディタ−ロケーションが埋め込まれているレコード形式タイプの場合
・式エディタ−式タイプの場合
・レイアウトエディタ−レイアウトタイプの場合
上記のエディタは、カインドフィールド値(下記参照)が「CDL」[成分記述言語(Component Description Language)]でない場合に起動する。この場合、ユーザは、図形を実行するときにパラメータ値を引き出すか又はプロンプトするためのルールを定義するCDLエディタを提供される。
記述312−これは、開発者が、ランタイムパラメータの期待値を記述する自由形式のフィールドである。それは、デフォルト値が、ユーザに入力値を要求する場合のルールを含んでいる場合、ランタイムにおけるプロンプトとして使用される。
カインド314−このフィールドは、図形実行時に関連パラメータの値を得る場所を定義する。サポートされるカインドフィールド314の値は次のとおりである。
・環境−ランタイムパラメータの値は、同じネームの環境変数中に見つかると予想される。環境変数が定義されていない場合、デフォルト値フィールド308の値が使用される。パラメータ(すなわち移出(exported)パラメータ)が必要でしかもデフォルト値フィールド308が空いている場合は、ランタイムエラーが生じて図形実行が停止する。
・位置−ランタイムパラメータの値は、アプリケーションを呼び出すコマンド行のその関連位置に予想される。例えば、ランタイムパラメータが、定義された第三の位置ランタイムパラメータの場合、そのパラメータ値は、実行スクリプトにおける第三の位置コマンド行引き数と予想される。指定の位置パラメータを提供しなければならず、さもないとランタイムエラーが生じる。
・キーワード−ランタイムパラメータの値は、キーワードコマンド行パラメータとして予想される。例示実施態様では、キーワードパラメータは下記の形態である。
-<parameter name><parameter value>
キーワードパラメータは任意なものであり、ランタイムエラーは、キーワードパラメータが提供されずそしてデフォルト値フィールド308がブランクでありかつ対応する移出パラメータが必要な場合のみランタイムエラーが生じる。
・固定−パラメータのランタイム値は常にデフォルト値である。これは2種以上のランタイムパラメータ間で一定値を共用する場合に有用である。
・CDL−ランタイムパラメータのデフォルト値は、図形実行時にインタプリートされて、ランタイムパラメータの値を他のパラメータから引き出すか又はユーザに追加の入力をプロンプトするCDL式を含んでいる。本発明の特定の実施態様で使用するために選択される成分記述言語は、公に入手できるオブジェクト指向スクリプティング言語「Python」などの適切なスクリプティング言語であればよい。このようなスクリプトは、プログラム制御下でメタデータ(タイプ及び変換)を構築して、条件試験、比較、データ変換、算術演算と論理演算、文字列とリストの操作、並びにユーザ入力、プログラムで外部から供給される入力及び他のランタイムパラメータに対するその他の機能を実施して、ランタイムパラメータの最終値をつくることができる。
例示実施態様では、ランタイムパラメータグリッド300に直接つくられたランタイムパラメータを参照するのに有用な規約は、ドルの記号「$」が先行するパラメータネームを単純に入れることである。例えば$keyはkeyというネームのランタイム変数を意味する。例示実施態様では、新しいランタイムパラメータが、「文字列」のタイプ、及び省略時ランタイムカインド(その省略時ランタイムカインドは「環境」である)に対する進んだオプション(advanced option)に基づいた省略時カインドをデフォルト値としてとる。
ランタイムパラメータ値は、ランタイムに決定することができそしてCDLスクリプトは条件試験を提供できるので、「条件」ランタイムパラメータをつくることができる。条件ランタイムパラメータは、パラメータのすべての条件(ランタイムに決定される)が操作可能になっている場合のみ、ユーザ入力に対してプロンプトを起こす。したがって、例えば、データセットを「No」でソートすべきかどうかを要求する第一プロンプトにユーザが応答する場合、ソートキーを要求する第二の条件プロンプトは表示する必要がない。
したがって、設計段階(「設計時間」)中、開発者は、図形成分の特定のパラメータを、「ランタイム」パラメータとして指定する。次に、その図形成分に関連するオブジェクトは、関連するパラメータデータ(例えば、図2に示すパラメータグリッド300からの情報のタイプ)とともに記憶される。
図4は、ランタイムパラメータを使用するプロセスを要約するフローチャートである。ランタイム中、実行されるアプリケーションに対応するパラメータオブジェクトが検索される(例えばリポジトリから)(ステップ400)。このようなオブジェクト各々について、ユーザ入力が必要かどうかについて決定される(ステップ402)。ユーザ入力が必要であれば、プロンプトを表示する条件が満たされているかどうかが確認され(ステップ403)、これには前のプロンプトに対するユーザ入力の評価が含まれていてもよい。ユーザ入力が必要でなければ、デフォルト値が使用される(ステップ408)。あるいは、パラメータ値が必要でないことがあり(例えばユーザがソート機能を付勢することを選択しない場合、ソートキーは必要でない)こうしてパラメータ値が無視されることがある。そうでなければ、ユーザ入力に対するプロンプトが生じる(ステップ404)。
ユーザが、特定のパラメータに対し値を入力しない場合(ステップ406)、そのパラメータに対しデフォルト値が選択されることがある(ステップ408)。あるいは、ユーザ入力がないことを示す誤り条件を挙げてもよい。いずれにしても(ユーザ入力がないので誤り条件がないと想定して)、パラメータの最終値を決定し、入力の変換及び他のパラメータに基づいた従属性(dependency)と条件をしんしゃくする(ステップ410)。
特定のパラメータに対しユーザ入力が必要でないと決定されたならば(ステップ402)、例えば環境変数又はコマンド行パラメータによって、パラメータ値をプログラムによって外部から供給すべきかどうか決定される(ステップ412)。パラメータ値が供給されなかったならば、パラメータに対してデフォルト値が選択される(ステップ414)。あるいは、特定タイプの利用可能な入力がないことを示す誤り条件を挙げてもよい。いずれにしても(外部からの入力がないので誤り条件がないと想定して)、パラメータの最終値を決定し、入力の変換及び他のパラメータに基づいた従属性と条件をしんしゃくする(ステップ410)。
最終パラメータ値が、任意のステップとして一旦決定されると、すべての条件成分(以下に考察する)は、指定された条件及び先に述べたルールにしたがって、完全に除くか又はフロー(すなわち図形のリンクもしくはエッジ)によって置換することができる(ステップ416)。一旦、演算図形構造が最終決定されて最終パラメータ値が決定されると、その図形は通常の方式で実行される(ステップ418)。
試験値
ランタイムパラメータで図形をつくり試験している間、開発者をサポートするため、GDE102の好ましい実施態様は、ランタイムパラメータの試験値もサポートする。開発者が、ランタイムパラメータで図形を実行するか、又は図形成分に作用するアンダーライニングコード(underlining code)を表示したい場合、GDE102は、ユーザが1又は2以上のランタイムパラメータに新しい試験値を入れることができる関連試験パラメータグリッドを表示する。使用される試験値の最後のセットは、図形によって記憶されて保管されることが好ましい。
各ランタイムパラメータに対し、開発者は、試験値コラム内の所要の試験値を入れる。エディトフィールドは、各試験値コラムに対応づけることができる。試験値フィールドとエディトフィールドは、パラメータカインドがCDLであるときを除いて、ランタイムパラメータグリッド200において、デフォルト値フィールド及びエディトフィールドと同様に振る舞う。
CDLの式が、ユーザが一つの値を特定のランタイムパラメータに対してプロンプトされるべきであることを示す場合、試験値フィールドとエディトフィールドの振る舞いは、関連するCDL式のインタプリテーションに基づいている。CDLの式が、単に、一つの値を、他の入力に基づいて引き出す場合、ランタイムパラメータは、通常のモードでは、試験値グリッド中に見えない。
ランタイムパラメータがその値を得る方法の指定
一つのパラメータがランタイムパラメータとして指定された後、対応するオブジェクトがリポジトリ104内につくられる。ランタイムパラメータが「CDL」のカインドフィールド214値を有している場合、そのパラメータに対するデフォルト値フィールド値308は、下記好ましい形態のprompt_for擬似関数(pseudo-function)を含んでいる。
prompt_for"prompt-kind[modifiers]"options
上記のように、上記prompt_for擬似関数は、プロンプトを前の入力に基づいて表示すべきかどうかを決定する条件式の一部であってもよい。
このようなオブジェクトの場合、ユーザのインタフェースが、ユーザにダイレクトエントリ(direct entry)ランタイムパラメータを提供する必要がある。好ましい実施態様では、ウェブインタフェース108がこの機能を提供する。特に、ランタイム中、各ランタイムパラメータオブジェクトの各prompt_for擬似関数は、ウェブインタフェース108によって構文解析されて、対応するユーザプロンプトを有するウェブページを(例えばHTMLに)生成する(あるいは、このようなウェブページは、ランタイムの前に生成させて、次に簡単に、ランタイムに提供することができる)。しかし、このようなウェブページがランタイムに生成すると、フレキシビリティが一層大きくなる。特に、そのページの内容は前のユーザ入力に依存することがある。ウェブインタフェース108は、このようなウェブページを表示し、ユーザ入力を受けることができる通常のウェブブラウザ(web browser)とともに使用される。
上記prompt_for擬似関数は、ウェブインタフェース108に、パラメータ値に対してプロンプトする方法を示す。特にprompt_kindパラメータ、すなわち文字列定数(string constant)は、どんな種類のユーザインタフェース(UI)要素(テキストブック、ドロップダウンリストなど)を提供すべきかを示す。前記文字列のmodifierの部分、すなわちキーワードのコンマ区切りリストは、各種プロンプトに共通のいくつかの選択肢を提供する。例示実施態様では、スペースは、modifierの文字列内で重要ではない。modifierのキーワードは以下のようにインタプリートされる。
・キーワードin placeは、その要素は、アプリケーションに対してサマリーレベルのユーザインタフェースが直接提供すべきであると宣言し、その値を、低いレベルに「ドリリング・イン(drilling in)」することなしに送ることができる。in placeが指定されない場合は、簡単な「エディト」ボタンが、ユーザを別のページに案内してパラメータ値を送るサマリーレベルインタフェースで提供される。
・キーワードのblank okは、ユーザが値を送る必要がないことを宣言する。すなわち、そのアプリケーションは、妥当な方法で、デフォルト値を処理する。blank okが指定されない場合、ユーザはある種の値を送ることなしにそのアプリケーションを実行できない。
異なるカインドのモディファイアを有するprompt_forコールのいくつかの実施例を以下に示す。
${prompt_for "text, inplace"}
${prompt_for "filter, in place", &input_type}
${prompt_for "radio, blankok, in place", $(list 1, 2, 3)}
この章の残りの部分に、各種のprompt_kindとそれらの対応する選択肢を列挙し、各々、ウェブインタフェース108が生成したウェブページにどのように現れるかを説明する。
text[size]−通常の単線テキストボックスsize文字幅(conventional single-line text box size characters wide)を提供する(sizeは、供給されない場合、テキストボックスに対して省略値として、ブラウザの省略時のサイズをとる)。
radio choice-list[description-list]−1セットのラジオボタンの形態の通常の「択一式(choose one)」プロンプト、すなわち各要素に対して前記choice-listの一つのボタンを提供する。description-listが供給されると、各choiceは対応するdescriptionでラベルされ、そうでなければ前記choiceは、choice-listからの文字列形態の対応するアイテムでラベルされる。
radioplus choice-list[description-list]−radioと同様であるが、テキストボックスの次の追加のボタンを提供して、ユーザにchoice-list内ではない「ライト−イン(write-in)」値を選択させる。
checkbox choice-list[description-list]−1セットのチェックボックスの形態の通常の「チューズゼロ以上(choose zero or more)」プロンプト、すなわちchoice-listの各要素に対する一つのボタンを提供する。description-listが供給されると、各choiceは、対応するdescriptionでラベルされ、そうでなければ、これらchoiceは、choice-listからの対応するアイテムの文字列形でラベルされる。
dropdown choice-list[description-list, size]−dropdown listの形態の通常の「択一式」プロンプトをchoice-listの要素に対して提供する。description-listが供給されると、各choiceは、対応するdescriptionでラベルされ、そうでなければchoice-listからの対応するアイテムの文字列形態でラベルされる。sizeが送られると、その多くのchoiceは同時に見えるが、そうでなければ一つしか見えない。
multidropdown
choice-list[description-list, size]−dropdown listの形態の通常の「チューズゼロ以上」プロンプトをchoice-listの要素に対して提供する。description-listが供給されると、各choiceは対応するdescriptionでラベルされ、そうでなければ、これらchoiceはchoice-listからの対応するアイテムの文字列形態でラベルされる。sizeが供給されると、その多くのchoiceは一度に見えるが、そうでなければ、アイテムのブラウザの省略時数が示される。
key type-obj[size]−与えられたtype-objからのフィールドで構成されたキー(コレータとしても知られている)に対するプロンプトを提供する。そのキーは、sizeと同じ数のパートを有していてもよく、type-objのフィールドの数をデフォルト値としてとる。図5はキープロンプトが生成する図形ダイアログ500の一実施態様の線図である。3−エントリのkeyプロンプトに対するスクリプトテキストは次のとおりであり、そのテキストでは、そのfile/datasets/fixedは、下記ドロップダウンボックス502に示す利用可能なキーを定義する。
${prompt_for"key", ${dataset_type"/datasets/fixed"}, 3}
例示実施態様では、通常の照合順序(collation order)は昇順であるが、ユーザは、関連するチェックボックス504をチェックすることによって、キーに対する昇順の照合順序を選択することができる。
filter type-obj−与えられたtype-objの各フィールドの条件で構成されているフィルタ式に対するプロンプトを提供する。blankokもモディファイアはフィルタに対して影響を与えず、ブランクフィルタは「真の」式を生成する。図6はfilterプロンプトが生成した図形ダイアログ600の一実施態様の線図である。各式のテキストエディトボックス604に関連する利用可能なフィールドネーム602はtype-objによって定義される。比較値がテキストエディトボックス604に入れられ、比較オペレータ(例えば、等しい、〜より大きい、〜より小さい又は〜に等しい)が対応するドロップダウンリストコントロール606から選択される。
flexifilter type-obj−filterプロンプトと同様であるが、各ラインのフィールドネームがドロップダウンリストから選択できる与えられたtype-objの各フィールドの条件で構成されているフィルタ式に対するプロンプトを提供する。これによって、複数の条件に対して同じフィールドを使用できる(例えばfield STATE=MA OR field STATE=CA)。
rollup type-obj key[size]−与えられたキーによってロールアップされている与えられたtype-objのフィールドに基づいてロールアップ演算に対するプロンプトを提供する。そのロールアップは、sizeと同数のルールを有していてもよく、type-objのフィールドの数をデフォルト値としてとる。blankokモディファイアはロールアップに影響を与えず、ブランクロールアップが、各グループに対してちょうどキー値を提供するパッケージを生成する。図7は、rollupプロンプトが生成した図形ダイアログ700の一実施態様の線図である。その例示実施態様では、ドロップダウンボックス702のコラムが、利用可能なロールアップ計算関数(例えば、合計、最小、最大)を定義する。各計算に関連する利用可能なフィールドネーム704は、type-objによって定義される。各ロールアップは、ユーザが所望の式を定義するための関連するテキストエディトボックス706、源値が計算に関与する基準を定義する(ブール式を通じて)ための「ウェア(where)」テキストエディトボックス708、及び計算結果を受け取るフィールドを指定するための出力フィールドテキストエディトボックス710を有している。それを明白に引き出せる場合、出力フィールドのネームは指定する必要はない。
reformat type-obj[size]−与えられたtype-objのフィールドに基づいて書式変更(reformat)計算に対するプロンプトを提供する。その書式変更はsizeと同数のルールをもっていてもよく、type-objのフィールドの数をデフォルト値としてとる。図8は、reformatプロンプトが生成する図形ダイアログ800の一実施態様の線図である。例示実施態様では、reformatプロンプトは、入力フィールドを単に同じネームの出力フィールドに複写するためのセクション802を含んでいる(チェックボックス制御を使用して個々に、又はセレクトオールもしくはセレクトノンのボタンを使用して総合的に、選択/選択取り消しを行う)。reformatプロンプトの第二のセクションは、書式変更式(例えばtotal=revemue_1−revenur_2)を定義できるテキストエディトボックス804のカラムを含んでいる。各ルールは、書式変更された結果を受け取るフィールドを指定するための、関連出力フィールドテキストエディトボックス806をもっている。
outputspec−出力データセット仕様のためのプロンプトを提供する。その表示された制御は、利用可能な書式オプションを提供するためのドロップダウン制御、及び該出力データセットの特定定数のネームを入れるためのテキストエディトボックスを含んでいる。blankokモディファイアは、出力データセットの仕様に対して影響を与えない。
fpath starting-point−ファイル経路に対するプロンプトを提供する。このプロンプトは、本来テキストボックスであるが、その隣に、ポップアップウィンドウをファイル経路に対しブラウズするために出現させる「ブラウズ」ボタンを有している。そのテキストボックスは、ノンブランク(non-blank)の場合、上記ブラウジング操作のための出発点として使用され、ブランクの場合は、starting-point引き数が使用される。
rpath starting-point−リポジトリ経路に対するプロンプトを提供する。このプロンプトは、本来テキストボックスであるが、その隣に、ポップアップウィンドウをブラウジングのために出現させる「ブラウズ」ボタンを有している。そのテキストボックスはノンブランクの場合、上記ブラウジング操作のための出発点として使用され、ブランクの場合は、starting point引き数が使用される。
radiofpath choice-list[description-list]−radioplusと同様であるが、「ライト−イン」スロットに、fpath−スタイルボックス−プラス−ブラウズ−ボタンを提供する。
radiorpath choice-list[description-list]−radioplusと同様であるが、「ライト−イン」スロットに、rpath−スタイルボックス−プラス−ブラウズ−ボタンを提供する。
条件成分
本発明の一実施態様は、図形の成分とフローの構造を、パラメータ値と計算されたメタデータに基づいて変えることができる条件成分機構を含んでいる。図形の各成分は、その成分を、ランタイムに、図形中に表示するかどうかを制御する条件を有している。その条件は、ランタイムパラメータによって、直接に又は間接的に計算することができる。条件成分は、図形を最適化又は特殊化することなどの各種の目的のために使用することができる。最適化する場合、特定のデータセットからの値が使用されないときは、オペレーションは、それらデータセットの処理を省略することができ、その結果、図形をより効率的に実行することができる。特殊化する場合、アプリケーションは、要求される詳細のレベルに基づいて、いくつもの異なる出力データセットの産生を調整することができるか、又は図形のいくつもの任意の部分の一つを実行できる。
図9Aは、MergeJoin成分900がファイルAとBからのデータを結合して、その結果を出力ファイル902に出力する第一図形のブロック図である。図9Bは、ロールアップ成分904がファイルAからのデータを集めて、その結果を出力ファイル902に出力する第二図形のブロック図である。図9Cは、MergeJoin成分906がファイルAとBからのデータを結合し、次にロールアップ成分908が、その得られたデータを集めて最終結果を出力ファイル902に出力する図形のブロック図である。条件成分を使用して、これら三つの図形は、結合させて、最初は図9Cの図形のように見える単一図形にすることができるが、その正確な構造はランタイムまで決定されない。適切な条件を設定することによって、ロールアップ成分908は、コネクション(フロー)で置換されて、図9Aの図形に類似のランタイム図形を生成することができる。同様に、適正な条件を設定することによって、MergeJoin成分906は、コネクション(フロー)でファイルAに置換されて、図9Bの図形に類似のランタイム図形を生成することができる。
例示実施態様では、条件成分は、頂点(vertex)を定義する図形成分[すなわち、入力/出力ファイルなどのデータセット成分、書式変更又はソートの成分などの処理成分、又は部分図形(subgraph)として知られているその他の図形]であってもよい。好ましい実施態様では、条件成分は、二つの特定のパラメータすなわちcondition及びcondition-interpretationで制御される。conditionは、その評価がランタイムまで延期されるブール式又はブール値である。例示実施態様では、「偽」及び「0」の値が偽の条件を指定し、他のすべての値(空を含む)は真の条件を示す。Condition-interpretationパラメータは、二つの許容される相互に排他的な値すなわちRemove Completely及びReplace With Flowを有している。
図10は、Condition-interpretation control1004を有するCondition1002を提供する図形ダイアログ1000の一実施態様の線図である。Condition-interpretation
control1004は、Remove Completelyのインタプリテーション1006又はReplace With Flowのインタプリテーション1008を選択することができる。
Remove Completely:このインタプリテーションによって、conditionが満たされると、その成分及びその成分の接続されたフローのすべて(すなわち図形のリンク又はエッジ)がその図形から除かれる。活性Remove Completely条件は、該成分及びその直接接続されたフローすべてを図形から機能的に除く。Remove Completely条件はどんな成分にも使うことができる。
図形から除かれる条件成分が、その条件成分の存在に依存している他の接続された成分を「汚染(poison)」することがあり、それら他の接続された成分が除かれることがある。図11は、このような汚染が起こる状態を示す図形1100の線図である。入力ファイル成分1102の条件が除去を示し、かつその対応する条件−インタプリテーションがRemove Completelyの場合、入力ファイル成分1102とそれに接続されたフローは図形1100から除かれる。続いて、これはソート成分1104を汚染し、そしてその入力は必要な入力ポートであるがそれに接続されるデータフローはもはやないので、ソート成分は除去される。これは順にロールアップ成分1106を汚染し、そしてその入力は必要な入力ポートであるがそれに接続されるデータフローはもはやないのでロールアップ成分は除去される。この「消失の汚染(poison of disappearance)」を停止させる唯一の方法は、下流成分の任意のポート又は計数ポートへ接続する方法である。したがって、ソート−ロールアップ図形ブランチ1108全体は、入力ファイル成分1102の条件が除去を示すとき、図形1100から効果的に除去される。図11に示す結果は、元の図形構造の、名目的に三つ入力された結合成分1100が、ランタイムには二つ入力された結合成分になることである。
好ましい実施態様では、汚染[暗示条件(implied condition)としても知られている]の詳細な意味は次のとおりである。
・成分が必要なポートを有し、かつそれに接続されたライブフロー(live flow)がない場合、その成分及びその成分に接続されたすべてのフローが図形から除かれる。
・成分が図形から完全に除かれると、そのポートに接続されたフローはすべて図形から除かれる。
・成分がフローで置換されると、その成分の指定された入力ポート及び指定された出力ポート以外のすべてのポートに接続されたフローはすべて図形から除かれる。
・必要な指標付きポート(required indexed port)にライブフローが接続されていない場合、同じ指標を有する各対応する任意の指標付きポートについては、その対応するポートに接続されたフローは図形から除かれる。
これらルールの驚くべき結果がいくつもある。例えば任意のポートしか持っていない成分は、汚染が理由で、除去されることは決してない。したがってこのような成分は、必要な場合に、明確に除かねばならない。
図12はRemove Completely条件成分を含む図形のランタイムプリパレーション(runtime preparation)のプロセスを要約するフローチャートである。condition-interpretationがRemove Completelyであり、conditionが満たされない場合(ステップ1200)、その条件成分は図形から除去されない(ステップ1202)。conditionが満たされた場合(ステップ1200)、その条件成分は、その成分に接続されたすべてのフローとともに、図形から除かれる(ステップ1204)。次に、「汚染された」成分とフローをすべて、上記ルールにしたがって、図形から除く(ステップ1206)。
Replace With Flow:このインタプリテーションによって、conditionが満たされた場合、成分はフロー(すなわち、図形エッジ)で置換される。Replace
With Flowの条件インタプリテーションは追加の情報が必要である。図10によれば、ユーザは、成分が図形から除かれるときに、接続を行う入力ポート1010(すなわち計数ポートのファミリー)及び出力ポート1012(すなわち計数ポートのファミリー)を指定する。正確に一つの必要な入力ポートもしくは計数ポート及び正確に一つの必要な出力ポートもしくは計数ポートがある場合、省略時解釈で、これらのポートは指定されたフロースルーコネクションポート(flow-through connection port)(それぞれ指定された入力ポート及び指定された出力ポートと呼ばれている)である。必要なポートは、接続すべきフローを少なくとも一つ必要とするポートである。
図13は、本発明の特定の実施態様のReplace With Flow条件成分を含む図形のランタイムプリパレーションのプロセスを要約するフローチャートである。いくつかの成分が例示実施態様[CO>OPERATING SYSTEM(登録商標)で利用可能な成分に基づいている]の特定の利用可能な入力と出力に依存しているので、いくつものルールがこの実行及びReplace With Flow条件の使用に、下記のように該当している。
・condition-interpretationがReplace
With Flowであり、かつそのconditionが満たされない場合(ステップ1300)、条件成分は図形から除去されない(ステップ1302)。
・指定された入力ポート及び指定された出力ポートを有する成分は、その指定された入力ポートに接続された正確に一つのライブストレートフロー(live straight flow)及びその指定された出力ポートに接続された正確に一つのライブストレートフローがある場合、一つだけのフローで置換できる(「ライブ」フローはランタイムに除かれなかったフローである)(ステップ1304)。そうであれば、成分自体が図形から除去され、そしてその指定された入力ポートに接続されたストレートライブフロー及びその指定された出力ポートに接続されたストレートライブフローが連結される(ステップ1306)。除かれた成分の他のポート(すなわち特に指定された入力ポートと出力ポート以外のポート)に直接連結された他のフローは図形から除かれる。除去された成分に接続された「汚染」された成分とフローは上記のように除去される(ステップ1308)。
・Replace With Flow条件を有する成分が、計数入力のファミリーの2以上の指定された入力ポートに接続されたライブフローを有している場合(ステップ1310)、該成分は、図形を有効化する必要があるので、図形から除去されない(ステップ1312)。
・必要な入力にライブファンインフロー(live fan-in flow)を有する成分は、特別のハンドリングが必要である。用語「ライブファンインフロー」は、成分が、必要な入力ポートにライブファンインフローもしくはオールツーオール(all to all)フローを接続されているか、又は単一の必要な入力ポートに2以上のライブストレートフローを接続されていることを意味する。このような成分の場合、Replace With Flow条件をインタプリートするには、該条件成分を、すべてのライブ入力フローを集合させる集合成分(gather component)で置換しなければならない(ステップ1314)。その置換された成分に接続された「汚染」フローと成分はいずれも次に、上記のように除かれる(ステップ1316)。
メタデータの伝搬
好ましい実施態様では、フローが図形成分の除去が行われた後に生成した場合、このようなフローのデータを定義するメタデータが修正された図形内でどのように伝搬すべきか選択をしなければならない。メタデータは該フローの両末端から得ることができる。本発明の好ましい実施態様では、該フローの上流の末端からのメタデータが好ましい。
該フローの上流の末端が、除去される成分である(又は集合成分で置換されている成分である)場合、GDE102は、それが除かれていない成分を見つけるまで、図形中の上流を「ウォーク(walk)する」ことによって、該フローに対するメタデータを見つける。その上流成分によって暴露されたメタデータを使用して生成したフローに対するデータの特性を定義する。
典型的な使用法
ユーザは、一般に、ウェブインタプリテーション108の前に座って、リポジトリ104内に、ユーザが実行したいアプリケーションの図形を見つける。該アプリケーションの図形に関連するすべてのオブジェクトを走査することによって、ウェブインタフェース108は、ユーザに、該アプリケーションのランタイムパラメータに対する値を指定させるウェブページフォーム(web page form)を生成する。一旦、すべてのランタイムパラメータが指定されると、該アプリケーションとパラメータ設定の結合がジョブとして行われ、そのジョブはエグゼクティブ110によって実行するように計画されている。該ジョブを実行する時点に到達すると、エグゼクティブ110は、公知の方式で、並列操作システム106によって実行するため、そのアプリケーションを待ち行列に入れる。その並列操作システム106は、トラッキング情報とジョブステータス(job status)を集め次にその情報をリポジトリ104に記憶し、その結果、ユーザと管理者はジョブの進行とパフォーマンスを追跡することができる。
実施例
図14は、ランタイムパラメータなしのロールアップアプリケーションを示す図形1400の線図である。この図形は、各種のアカウント(account)の数を計算し、次いでその結果を出力ファイルに書き込む。このアプリケーションのあらゆる側面が、図形すなわち入力ファイル成分1402のネーム、入力データのフォーマット、Hash Rollup成分1404中のデータをロールアップするために使用されるキーと変換ルール、出力フォーマット、及び出力ファイル成分1406のネームをつくった開発者によって決定されている。ユーザは、定義どおりに正確にこの図形を実行するだけでよい。
図15は、図14に示すロールアップアプリケーションのランタイムパラメータ化バージョンを示す図形1500の線図である。このアプリケーションのデータフローの図形構造は、非ランタイムパラメータ化バージョンに非常に似ているが、このアプリケーションの方がはるかにフレキシブルである。ランタイムパラメータを通じて、エンドユーザは、抽象された(abstracted)入力データセット1502[入力ファイルネームとフォーマットが引き出される保管オブジェクト(reposited object)]、Hash
Rollup成分1504のロールアップキーとロールアップルール、及び出力ファイル成分1506のネームを指定することができる。
図16は、図15に示す実施例アプリケーションのランタイムパラメータグリッド1600を示す図形ダイアログの一実施態様の線図である。これは図2に示すパラメータグリッドのバージョンに埋めこまれる。多数の省略時パラメータが、上記のように、prompt_for擬似関数を使って定義され、その結果、ウェブインタフェース108を通じてのユーザ入力が必要になる。この図形の外観は、非ランタイムパラメータ化アプリケーション図形とほとんど変わらないが、1又は2以上のパラメータグリッド(又は他の適切な制御器)によって、開発者は、該図形の実行を制御するすべてのパラメータを完全に追跡可能になる。
図17Aは、図16に示すパラメータグリッド1600内の情報からウェブインタフェース108が生成したフォーム1700を示す図形ダイアログの一実施態様の線図である。この実施例では、フォーム1700は、ユーザ入力に対する四つのランタイムパラメータ、すなわち入力データセットリポジトリ経路1702、ロールアップキー1704、ロールアップルール1706及び出力経路1708を表示する。図17Bは、ユーザがパラメータ値を埋めこんだ図17Aに示すフォーム1700の線図である。ランタイム1702〜1708に関連する直接の入力及び/又は編集又はブラウザ制御のボタンを使用して、ユーザは、対応するパラメータ値1710〜1716を提供して、関連する図形を実行する。
図18は、ランタイムパラメータ化ロールアップと結合のアプリケーションを表す図形1800の線図である。図19は、図18に示す実施例アプリケーションに対するランタイムパラメータグリッド1900を表す図形ダイアログの一実施態様の線図である。この線図では、そのアプリケーションのいくつもの側面がパラメータ化されているが、ほとんど結合キーと入力データセットを含み、固定されたままである。図20は、図19に示すパラメータグリッド1900内の情報からウェブインタフェース108が生成したフォーム2000を表す図形ダイアログの一実施態様の線図である(ロールアップに対する入力タイプは、トップレベルフォームが表示される時点に分かっているので、ロールアップルール2002はin-placeに対してプロンプトされうることに留意)。
図21は、ランタイムパラメータ化ロールアップ−結合−ソートアプリケーションを表す図形2100の線図である。図18に示す実施例に類似しているが、条件ソート成分が図形2100に加えられている。図22は、実施例21に示す実施例アプリケーションに対するランタイムパラメータグリッド2200を表す図形ダイアログの一実施態様の線図である。sort_keyランタイムパラメータ2202は、ソーティングが要望されていることをユーザが示す場合のみプロンプトされる。この効果を得るため、デベロップ(develop)は、該sort_keyランタイムパラメータ2202のデフォルト値2204に対するif条件テスト中に、prompt_for擬似関数を書き込む(put)。if条件テストは、第二ランタイムパラメータのdo_sort2206を参照する。そのdo_sortパラメータ2206のデフォルト値フィールド2208と記述フィールド2210が定義されて、テキストプロンプト「そのデータはソートすべきか?」に対する真/偽又はyes/noの回答を、ユーザに求めるradioプロンプトを生成する。do_sortパラメータ2206のために与えられた値が「真」である場合、そのソート成分2102は、ランタイムにおける図形の一部として含まれる。そうでなければ、ソート成分2102は、その指定された条件インタプリテーションに応じて、図形から完全に除かれるか又はフローで置換される。
スクリプトインプリメンテーション(script implementation)
GDE102はパラメータ化図形を構築しやすくするが、時には、フォームベースインタフェースを提供したい非図形プログラムがある。アプリケーションレベルのCDLとリポジトリ104を使用して、アービタリーシェルスクリプト(arbitrary shell script)をパラメータ化することができる。例えばアプリケーションの記述は、下記のものに類似の構造でファイルに書きこむことができる。
Figure 0006073838

汎用コンピュータによる実行
本発明はハードウェアもしくはソフトウェア又は両者の組み合わせ(例えばプログラム可能論理アレイ)で実行することができる。特に断らない限り、本発明の一部として含まれているアルゴリズムは、特定のコンピュータ又は他の装置と本来関連がない。特に、各種汎用機は、本明細書の教示内容にしたがって書きこまれたプログラムで使用できるか、又は必要な方法のステップを実行するためにより特殊化された装置を構築する方がより便利なことがある。しかし、本発明は、好ましくは、各々少なくとも一つのプロセッサ、少なくとも一つのデータ記憶システム(揮発性及び不揮発性のメモリ及び/又は記憶素子)、少なくとも一つの入力デバイス又は入力ポート、並びに少なくとも一つの出力デバイス又は出力ポートを備えた1又は2以上のプログラム可能コンピュータシステムで実行する1又は2以上のコンピュータプログラムで実行される。そのプログラムコードは、本明細書に記載の機能を実行するプロセッサで実行される。
このようなプロセッサは各々、所望のコンピュータ言語(機械言語、アセンブリ言語、高レベル手順言語、論理プログラミング言語又はオブジェクト指向プログラミング言語を含む)で実行してコンピュータシステムと交信することができる。いずれにしても、その言語はコンパイルされた言語又はインタプリートされた言語であればよい。
このようなコンピュータプログラムは各々、好ましくは、汎用又は専用のプログラマブルコンピュータが読み取り可能な記憶媒体又は記憶デバイス(例えば固体、磁気及び光の媒体)に記憶されて、その記憶媒体又は記憶デバイスがコンピュータシステムに読み取られると、コンピュータを設定し(configure)作動させて本明細書に記載の手順を実行する。また、本発明のシステムは、コンピュータプログラムで設定されたコンピュータ読み取り可能記憶媒体として実現され、そしてこのように設定された記憶媒体は、コンピュータシステムを特定で既定義の方法で作動させて本明細書に記載の機能を実行すると考えることもできる。
本発明のいくつもの実施態様を述べてきた。しかし、本発明の精神と範囲を逸脱することなく各種の変形を行うことができるものである。例えば、上記のいくつもの関数ステップは、全体の処理に実質的に影響することなしに異なる順序で実施することができる。例えば、図4に示すステップ402と412は、逆の順序で実行できる。したがって他の実施態様は本願の特許請求の範囲の範囲内にある。

Claims (13)

  1. 実行可能なコンピュータアプリケーションの表現を変形する方法であって、前記表現は、少なくとも1つのランタイムパラメータを含む成分と前記成分間のデータフローとを表すデータを有し、前記成分の一部は条件成分であり、前記方法は、
    (a)前記コンピュータアプリケーションのランタイム実行時に、前記表現の成分が、関連する条件及び対応する条件インタプリテーションによって制御される条件成分であるかどうかを、前記実行可能なコンピュータアプリケーションの前記表現を記憶するデータ記憶システムに接続されたプロセッサを含むコンピュータによって、決定することであって、前記関連する条件は前記関連する条件が評価され得る表現を含むこと、
    (b)ランタイムに決定される前記少なくとも1つのランタイムパラメータの少なくとも1つの値に基づいて、各条件成分に対する前記関連する条件を、前記コンピュータによって評価すること、
    (c)前記コンピュータアプリケーションのランタイム実行時に、条件成分に対して、前記関連する条件が真であると評価された場合、前記コンピュータによって、そのような条件成分の前記対応する条件インタプリテーションに従って、前記実行可能なコンピュータアプリケーションの前記表現を変形すること
    を含む方法。
  2. (d)前記実行可能なコンピュータアプリケーションの前記変形された表現により表される前記実行可能なコンピュータアプリケーションを、前記ランタイムパラメータに基づいて前記コンピュータによって実行することを継続することをさらに含む、請求項1に記載の方法。
  3. 条件及び条件インタプリテーションを指定する制御を含むインタフェースを前記コンピュータにより提供することをさらに含む、請求項1又は2に記載の方法。
  4. 前記表現を変形することは、前記条件の第1の評価及びそのような条件成分の前記対応する条件インタプリテーションに基づいて、前記コンピュータアプリケーションの実行の前に前記条件成分を除去することを含む、請求項1又は2に記載の方法。
  5. 前記条件成分の存在に依存する各成分を除去することをさらに含む、請求項4に記載の方法。
  6. 前記表現を変形することは、前記条件の第二の評価及びそのような条件成分の前記対応する条件インタプリテーションに基づいて、前記コンピュータアプリケーションの実行の前に、前記条件成分を、フローを表す成分に置換することを含む、請求項1又は2に記載の方法。
  7. 実行可能なコンピュータアプリケーションの表現を変形するシステムであって、前記表現は、少なくとも1つのランタイムパラメータを含む成分と前記成分間のデータフローとを表すデータを有し、前記成分の一部は条件成分であり、前記システムは、少なくとも一つのデータストレージシステムに記憶されたコンピュータプログラムコードを実行して機能を実施するプロセッサを含み、前記機能は、
    (a)前記コンピュータアプリケーションのランタイム実行時に、前記表現の成分が、関連する条件及び対応する条件インタプリテーションによって制御される条件成分であるか否かを決定することであって、前記関連する条件は前記関連する条件が評価され得る表現を含むこと、
    (b)ランタイムに決定される前記少なくとも1つのランタイムパラメータの少なくとも1つの値に基づいて、各条件成分に対する前記関連する条件を評価すること、
    (c)前記コンピュータアプリケーションのランタイム実行時に、条件成分に対して、前記関連する条件が真であると評価された場合、そのような条件成分の前記対応する条件インタプリテーションに従って、前記実行可能なコンピュータアプリケーションの前記表現を変形すること
    を含むシステム。
  8. 前記プロセッサは、前記実行可能なコンピュータアプリケーションの前記変形された表現により表される前記実行可能なコンピュータアプリケーションを、前記ランタイムパラメータに基づいて実行し続ける前記機能をさらに実施する、請求項7に記載のシステム。
  9. 条件及び条件インタプリテーションを指定する制御を含むインタフェースをさらに含む、請求項7又は8に記載のシステム。
  10. ランタイムパラメータとして成分に関連付けられたパラメータを指定することを可能にするインタフェースをさらに含む、請求項7又は8に記載のシステム。
  11. 前記表現を変形することは、前記条件の第1の評価及びそのような条件成分の前記対応する条件インタプリテーションに基づいて、前記コンピュータアプリケーションの実行の前に前記条件成分を除去することを含む、請求項7又は8に記載のシステム。
  12. 前記プロセッサは、前記条件成分の存在に依存する各成分を除去する前記機能を実施する、請求項11に記載のシステム。
  13. 前記表現を変形することは、前記条件の第二の評価及びそのような条件成分の前記対応する条件インタプリテーションに基づいて、前記コンピュータアプリケーションの実行の前に、前記条件成分を、フローを表す成分に置換することを含む、請求項7又は8に記載のシステム。
JP2014159008A 2000-07-28 2014-08-04 条件成分を有するパラメータ化図形 Expired - Lifetime JP6073838B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/627,252 2000-07-28
US09/627,252 US7164422B1 (en) 2000-07-28 2000-07-28 Parameterized graphs with conditional components

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011000948A Division JP2011086309A (ja) 2000-07-28 2011-01-06 条件成分を有するパラメータ化図形

Publications (2)

Publication Number Publication Date
JP2014225289A JP2014225289A (ja) 2014-12-04
JP6073838B2 true JP6073838B2 (ja) 2017-02-01

Family

ID=24513879

Family Applications (5)

Application Number Title Priority Date Filing Date
JP2002515753A Pending JP2004516529A (ja) 2000-07-28 2001-07-25 条件成分を有するパラメータ化図形
JP2006302306A Expired - Lifetime JP5436752B2 (ja) 2000-07-28 2006-11-08 条件成分を有するグラフ
JP2007067983A Expired - Fee Related JP4994901B2 (ja) 2000-07-28 2007-03-16 ランタイムパラメータを有するパラメータ化図形
JP2011000948A Pending JP2011086309A (ja) 2000-07-28 2011-01-06 条件成分を有するパラメータ化図形
JP2014159008A Expired - Lifetime JP6073838B2 (ja) 2000-07-28 2014-08-04 条件成分を有するパラメータ化図形

Family Applications Before (4)

Application Number Title Priority Date Filing Date
JP2002515753A Pending JP2004516529A (ja) 2000-07-28 2001-07-25 条件成分を有するパラメータ化図形
JP2006302306A Expired - Lifetime JP5436752B2 (ja) 2000-07-28 2006-11-08 条件成分を有するグラフ
JP2007067983A Expired - Fee Related JP4994901B2 (ja) 2000-07-28 2007-03-16 ランタイムパラメータを有するパラメータ化図形
JP2011000948A Pending JP2011086309A (ja) 2000-07-28 2011-01-06 条件成分を有するパラメータ化図形

Country Status (6)

Country Link
US (1) US7164422B1 (ja)
EP (2) EP2287808B1 (ja)
JP (5) JP2004516529A (ja)
AU (1) AU7802401A (ja)
CA (1) CA2417194C (ja)
WO (1) WO2002011344A2 (ja)

Families Citing this family (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) * 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19651075A1 (de) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) * 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) * 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
JP2003505753A (ja) * 1999-06-10 2003-02-12 ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング セル構造におけるシーケンス分割方法
EP2226732A3 (de) * 2000-06-13 2016-04-06 PACT XPP Technologies AG Cachehierarchie für einen Multicore-Prozessor
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9037807B2 (en) * 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7657877B2 (en) * 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US8686475B2 (en) * 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7146617B2 (en) 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US6907451B1 (en) * 2001-09-29 2005-06-14 Siebel Systems, Inc. Method, apparatus, and system for immediate posting of changes in a client server environment
US8359335B2 (en) 2001-09-29 2013-01-22 Siebel Systems, Inc. Computing system and method to implicitly commit unsaved data for a world wide web application
US7203948B2 (en) * 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US7461119B2 (en) * 2001-09-29 2008-12-02 Siebel Systems, Inc. Method, apparatus, and system for managing status of requests in a client server environment
US7885996B2 (en) * 2001-09-29 2011-02-08 Siebel Systems, Inc. Method, apparatus, and system for implementing notifications in a framework to support web-based applications
US7870492B2 (en) * 2001-10-02 2011-01-11 Siebel Systems, Inc. Method, apparatus, and system for managing commands in a client server environment
WO2003071418A2 (en) * 2002-01-18 2003-08-28 Pact Xpp Technologies Ag Method and device for partitioning large computer programs
DE10392560D2 (de) * 2002-01-19 2005-05-12 Pact Xpp Technologies Ag Reconfigurierbarer Prozessor
US20110161977A1 (en) * 2002-03-21 2011-06-30 Martin Vorbach Method and device for data processing
US8914590B2 (en) * 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US20110238948A1 (en) * 2002-08-07 2011-09-29 Martin Vorbach Method and device for coupling a data processing unit and a data processing array
US7657861B2 (en) * 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004038599A1 (de) * 2002-09-06 2004-05-06 Pact Xpp Technologies Ag Rekonfigurierbare sequenzerstruktur
EP1611528A2 (de) * 2003-04-04 2006-01-04 PACT XPP Technologies AG Verfahren und vorrichtung für die datenverarbeitung
WO2006082091A2 (en) * 2005-02-07 2006-08-10 Pact Xpp Technologies Ag Low latency massive parallel data processing device
US7568044B1 (en) * 2003-09-22 2009-07-28 Microsoft Corporation Method and apparatus for identifying the cause of an event occurring within a computer system
US7467383B2 (en) * 2004-03-08 2008-12-16 Ab Initio Software Llc System for controlling task execution using a graphical representation of task dependency
US7594227B2 (en) * 2004-03-08 2009-09-22 Ab Initio Technology Llc Dependency graph parameter scoping
US7899833B2 (en) * 2004-11-02 2011-03-01 Ab Initio Technology Llc Managing related data objects
US7434132B2 (en) * 2005-01-18 2008-10-07 Sap Ag Method and system of configuring a software program
US7822615B2 (en) 2005-06-27 2010-10-26 Ab Initio Technology Llc Translating expressions in a computing environment
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US7716630B2 (en) * 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
CN103729330B (zh) 2006-08-10 2017-04-19 起元科技有限公司 在基于图的计算中分配服务
US7844959B2 (en) 2006-09-29 2010-11-30 Microsoft Corporation Runtime optimization of distributed execution graph
US8201142B2 (en) 2006-09-29 2012-06-12 Microsoft Corporation Description language for structured graphs
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
JP2008305004A (ja) * 2007-06-05 2008-12-18 Ricoh Co Ltd 画像形成装置、アプリケーション実行方法及びアプリケーション実行プログラム
CA2697306C (en) * 2007-07-26 2017-06-20 Craig W. Stanfill Transactional graph-based computation with error handling
AU2008302144B2 (en) * 2007-09-20 2014-09-11 Ab Initio Technology Llc Managing data flows in graph-based computations
US8484611B2 (en) * 2007-10-15 2013-07-09 International Business Machines Corporation Method and system for simplified assembly of information processing applications
JP2011503733A (ja) * 2007-11-17 2011-01-27 トーマス リヒター リコンフィギュラブルな浮動小数点レベルおよびビットレベルのデータ処理ユニット
WO2009068014A2 (de) * 2007-11-28 2009-06-04 Pact Xpp Technologies Ag Über datenverarbeitung
US20110119657A1 (en) * 2007-12-07 2011-05-19 Martin Vorbach Using function calls as compiler directives
US8312426B2 (en) 2008-01-07 2012-11-13 International Business Machines Corporation Method and system for simplified service composition in web environment
US8239828B2 (en) * 2008-01-08 2012-08-07 International Business Machines Corporation Method of recovering from software failures using replanning
US8245122B2 (en) * 2008-01-08 2012-08-14 International Business Machines Corporation Method and system for modeling user requests, applications and components used in dynamic application assembly
CN101971165B (zh) 2008-02-26 2013-07-17 起元技术有限责任公司 数据关系的图形表示
US8640149B2 (en) 2008-03-26 2014-01-28 International Business Machines Corporation Method and apparatus for dynamic web service composition and invocation
US8949140B2 (en) 2008-04-21 2015-02-03 International Business Machines Corporation Method and system for dynamic software reconfiguration triggered by component- or system- initiated events
US8898624B2 (en) * 2008-05-05 2014-11-25 International Business Machines Corporation Method and apparatus for simplified assembly of parametric information processing applications
US20090282058A1 (en) * 2008-05-12 2009-11-12 Expressor Software Method and system for developing data integration applications with reusable functional rules that are managed according to their output variables
AU2009267034B2 (en) 2008-06-30 2015-12-10 Ab Initio Technology Llc Data logging in graph-based computations
JP5525541B2 (ja) 2008-12-02 2014-06-18 アビニシオ テクノロジー エルエルシー データ管理システム内のデータセットのインスタンスのマッピング
CA2749538A1 (en) * 2009-01-30 2010-08-05 Ab Initio Technology Llc Processing data using vector fields
KR101693229B1 (ko) * 2009-02-13 2017-01-05 아브 이니티오 테크놀로지 엘엘시 데이터 저장 시스템과의 통신
US9886319B2 (en) * 2009-02-13 2018-02-06 Ab Initio Technology Llc Task managing application for performing tasks based on messages received from a data processing application initiated by the task managing application
US8205113B2 (en) * 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
CA2771899C (en) * 2009-09-16 2017-08-01 Ab Initio Technology Llc Mapping dataset elements
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
WO2011081776A1 (en) * 2009-12-14 2011-07-07 Ab Initio Technology Llc Specifying user interface elements
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US8555265B2 (en) 2010-05-04 2013-10-08 Google Inc. Parallel processing of data
US8875145B2 (en) 2010-06-15 2014-10-28 Ab Initio Technology Llc Dynamically loading graph-based computations
CA2814835C (en) 2010-10-25 2019-01-08 Ab Initio Technology Llc Managing data set objects in a dataflow graph that represents a computer program
AU2012205339B2 (en) 2011-01-14 2015-12-03 Ab Initio Technology Llc Managing changes to collections of data
US8447901B2 (en) 2011-02-18 2013-05-21 Ab Initio Technology Llc Managing buffer conditions through sorting
US9116759B2 (en) 2011-02-18 2015-08-25 Ab Initio Technology Llc Restarting data processing systems
US9003084B2 (en) 2011-02-18 2015-04-07 Ab Initio Technology Llc Sorting
US9021299B2 (en) 2011-02-18 2015-04-28 Ab Initio Technology Llc Restarting processes
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
JP5982960B2 (ja) * 2012-03-30 2016-08-31 ブラザー工業株式会社 表示制御装置、表示制御方法およびプログラム
US10489360B2 (en) 2012-10-17 2019-11-26 Ab Initio Technology Llc Specifying and applying rules to data
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US9703822B2 (en) 2012-12-10 2017-07-11 Ab Initio Technology Llc System for transform generation
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
US9811233B2 (en) 2013-02-12 2017-11-07 Ab Initio Technology Llc Building applications for configuring processes
US9286032B2 (en) 2013-03-15 2016-03-15 International Business Machines Corporation Automated software composition
KR102349573B1 (ko) 2013-09-27 2022-01-10 아브 이니티오 테크놀로지 엘엘시 데이터에 적용되는 규칙 평가
CA3114544A1 (en) * 2013-12-05 2015-06-11 Ab Initio Technology Llc Managing interfaces for dataflow composed of sub-graphs
CN105793818B (zh) 2013-12-06 2019-09-17 起元科技有限公司 源代码翻译
WO2016011441A1 (en) 2014-07-18 2016-01-21 Ab Initio Technology Llc Managing parameter sets
WO2016014615A1 (en) 2014-07-24 2016-01-28 Ab Initio Technology Llc Data lineage summarization
US9760406B2 (en) 2014-09-02 2017-09-12 Ab Initio Technology Llc Controlling data processing tasks
KR102375349B1 (ko) 2014-09-02 2022-03-16 아브 이니티오 테크놀로지 엘엘시 연관된 태스크들을 제어하기 위한 그래프 기반 프로그램 명세의 구성요소들의 실행 상태 관리
US9933918B2 (en) 2014-09-02 2018-04-03 Ab Initio Technology Llc Specifying control and data connections in graph-based programs
US9626393B2 (en) 2014-09-10 2017-04-18 Ab Initio Technology Llc Conditional validation rules
US10042849B2 (en) 2014-09-22 2018-08-07 Oracle Financial Services Software Limited Simplifying invocation of import procedures to transfer data from data sources to data targets
US10055333B2 (en) 2014-11-05 2018-08-21 Ab Initio Technology Llc Debugging a graph
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
CN107251021B (zh) 2015-02-11 2021-07-02 起元科技有限公司 过滤数据沿袭图
WO2016130626A1 (en) 2015-02-11 2016-08-18 Ab Initio Technology Llc Filtering data lineage diagrams
GB2535230B (en) 2015-02-13 2019-05-08 Raptor Oil Ltd Dynamically adjustable data flow graph for digital signal processing
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
US10127264B1 (en) 2015-09-17 2018-11-13 Ab Initio Technology Llc Techniques for automated data analysis
US9990199B2 (en) 2015-09-18 2018-06-05 Axis Ab Conditional flow with hardware acceleration
AU2016377516B2 (en) * 2015-12-21 2020-01-30 Ab Initio Technology Llc Sub-graph interface generation
US10817293B2 (en) * 2017-04-28 2020-10-27 Tenstorrent Inc. Processing core with metadata actuated conditional graph execution
US10514898B2 (en) * 2017-08-10 2019-12-24 Raju Pandey Method and system to develop, deploy, test, and manage platform-independent software
US11423083B2 (en) 2017-10-27 2022-08-23 Ab Initio Technology Llc Transforming a specification into a persistent computer program
US11277455B2 (en) 2018-06-07 2022-03-15 Mellanox Technologies, Ltd. Streaming system
WO2020006571A1 (en) 2018-06-29 2020-01-02 pulseData Inc. Machine learning systems and methods for predicting risk of renal function decline
CA3113990A1 (en) 2018-09-25 2020-04-02 Ab Initio Technology Llc A dedicated audit port for implementing recoverability in outputting audit data
US11625393B2 (en) 2019-02-19 2023-04-11 Mellanox Technologies, Ltd. High performance computing system
EP3699770A1 (en) 2019-02-25 2020-08-26 Mellanox Technologies TLV Ltd. Collective communication system and methods
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
JP6802893B1 (ja) * 2019-09-11 2020-12-23 エヌ・ティ・ティ・アドバンステクノロジ株式会社 シナリオ実行装置、シナリオ実行方法及びプログラム
US20210149734A1 (en) * 2019-11-15 2021-05-20 Nvidia Corporation Techniques for modifying an executable graph to perform a workload associated with a new task graph
EP3822770A1 (en) * 2019-11-15 2021-05-19 Nvidia Corporation Techniques for modifying an executable graph to perform a workload associated with a new task graph
US11750699B2 (en) 2020-01-15 2023-09-05 Mellanox Technologies, Ltd. Small message aggregation
US11252027B2 (en) 2020-01-23 2022-02-15 Mellanox Technologies, Ltd. Network element supporting flexible data reduction operations
US11876885B2 (en) 2020-07-02 2024-01-16 Mellanox Technologies, Ltd. Clock queue with arming and/or self-arming features
US11556378B2 (en) 2020-12-14 2023-01-17 Mellanox Technologies, Ltd. Offloading execution of a multi-task parameter-dependent operation to a network device
EP4285238A1 (en) 2021-01-31 2023-12-06 Ab Initio Technology LLC Data processing system with manipulation of logical dataset groups
US11922237B1 (en) 2022-09-12 2024-03-05 Mellanox Technologies, Ltd. Single-step collective operations

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763277A (en) * 1986-01-17 1988-08-09 International Business Machines Corporation Method for obtaining information in an expert system
JPS63231613A (ja) 1987-03-20 1988-09-27 Matsushita Giken Kk コマンド設定方法
JPH0194431A (ja) * 1987-10-06 1989-04-13 Matsushita Electric Ind Co Ltd ソフトウェア部品合成装置
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
JPH05233239A (ja) 1992-02-20 1993-09-10 Fujitsu Ltd プログラム自動生成装置
JP3223933B2 (ja) * 1993-02-10 2001-10-29 日本電信電話株式会社 知識ベース推論方法およびその装置
JPH08305576A (ja) * 1995-01-12 1996-11-22 Internatl Business Mach Corp <Ibm> コンピュータ・ユーザとの対話を行うためのエキスパート・システム及びその方法
US5673369A (en) * 1995-03-02 1997-09-30 International Business Machines Corporation Authoring knowledge-based systems using interactive directed graphs
US5701400A (en) * 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US6006242A (en) * 1996-04-05 1999-12-21 Bankers Systems, Inc. Apparatus and method for dynamically creating a document
US5966072A (en) * 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US6061516A (en) 1996-08-13 2000-05-09 Hitachi, Ltd. Online application processing system
US6038558A (en) 1996-10-18 2000-03-14 Sagent Technology, Inc. Extensible database retrieval and viewing architecture
US5930794A (en) 1996-10-18 1999-07-27 Sagent Technologies, Inc. Database repository with deferred transactions
US6151531A (en) * 1996-12-12 2000-11-21 Charles Frankel Et Al System and method for managing the alteration of garments
US6088716A (en) * 1997-04-28 2000-07-11 Ab Initio Software Corporation Method for preventing buffer deadlock in dataflow computations
US6032158A (en) 1997-05-02 2000-02-29 Informatica Corporation Apparatus and method for capturing and propagating changes from an operational database to data marts
US5966532A (en) * 1997-07-10 1999-10-12 National Instruments Corporation Graphical code generation wizard for automatically creating graphical programs
US6173276B1 (en) * 1997-08-21 2001-01-09 Scicomp, Inc. System and method for financial instrument modeling and valuation
US6044374A (en) 1997-11-14 2000-03-28 Informatica Corporation Method and apparatus for sharing metadata between multiple data marts through object references
US6272650B1 (en) * 1998-02-03 2001-08-07 Amazing Media, Inc. System and method for disambiguating scene graph loads
US6208345B1 (en) * 1998-04-15 2001-03-27 Adc Telecommunications, Inc. Visual data integration system and method
JP2000099317A (ja) 1998-09-18 2000-04-07 Toshiba Corp ユーザインタフェース設計装置及び方法
US6538651B1 (en) * 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US6816825B1 (en) * 1999-06-18 2004-11-09 Nec Corporation Simulation vector generation from HDL descriptions for observability-enhanced statement coverage

Also Published As

Publication number Publication date
EP1328904A4 (en) 2010-01-06
JP2014225289A (ja) 2014-12-04
EP2287808A2 (en) 2011-02-23
JP4994901B2 (ja) 2012-08-08
EP1328904A2 (en) 2003-07-23
JP5436752B2 (ja) 2014-03-05
WO2002011344A2 (en) 2002-02-07
EP2287808B1 (en) 2017-10-11
JP2011086309A (ja) 2011-04-28
US7164422B1 (en) 2007-01-16
AU7802401A (en) 2002-02-13
CA2417194C (en) 2011-09-13
EP1328904B1 (en) 2017-09-27
JP2007066327A (ja) 2007-03-15
EP2287808A3 (en) 2012-10-03
JP2004516529A (ja) 2004-06-03
WO2002011344A3 (en) 2002-07-25
CA2417194A1 (en) 2002-02-07
JP2007213593A (ja) 2007-08-23

Similar Documents

Publication Publication Date Title
JP6073838B2 (ja) 条件成分を有するパラメータ化図形
KR101278078B1 (ko) 그래프 기반 계산을 위한 파라미터의 관리
KR101169296B1 (ko) 그래프 기반 계산을 위한 파라미터의 관리
CN107135663B (zh) 影响分析
AU2013228010A1 (en) Managing metadata for graph-based computations

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140902

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150625

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151221

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160930

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20161011

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: 20161208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170105

R150 Certificate of patent or registration of utility model

Ref document number: 6073838

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term