JP3717188B2 - グラフとして表された操作の実行 - Google Patents

グラフとして表された操作の実行 Download PDF

Info

Publication number
JP3717188B2
JP3717188B2 JP50447298A JP50447298A JP3717188B2 JP 3717188 B2 JP3717188 B2 JP 3717188B2 JP 50447298 A JP50447298 A JP 50447298A JP 50447298 A JP50447298 A JP 50447298A JP 3717188 B2 JP3717188 B2 JP 3717188B2
Authority
JP
Japan
Prior art keywords
point
graph
link
file
representing
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
JP50447298A
Other languages
English (en)
Other versions
JP2000514219A (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 JP2000514219A publication Critical patent/JP2000514219A/ja
Application granted granted Critical
Publication of JP3717188B2 publication Critical patent/JP3717188B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Image Generation (AREA)
  • Stored Programmes (AREA)
  • Calculators And Similar Devices (AREA)
  • Complex Calculations (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Superconductors And Manufacturing Methods Therefor (AREA)
  • Oscillators With Electromechanical Resonators (AREA)

Description

1.発明の範囲
本発明はデータ処理システムにおける操作の制御に関するものであり、さらに詳細には、並列または分散環境でグラフとして表されたプログラムの実行に関するものである。
2.発明の背景
複合のビジネスシステムは通常、1つのステップで生じた結果が次のステップへと供給されることで、複数のステップでデータ処理が行われる。このようなシステムを介した全体の情報のフローは、点がデータファイルまたはデータ処理を示すグラフによって表され、リンクまたはグラフ内の「辺」が、1つの処理ステップで生じたデータが他のステップで使用されることを示している。
並列処理システムにも同じタイプのグラフ表現が使用される。この説明の目的として、並列処理システムは、複数の中央処理ユニット(CPUs)を使用したコンピュータシステムのあらゆる構成を含み、これにはローカル(例えば、SMPコンピュータのようなマイクロプロセッサシステム)、または構内分散(例えば、クラスタまたはMPPsとして連結した複数プロセッサ)、あるいは遠隔的、または遠隔的分散(例えば、LANやWANネットワークを介して連結した複数のプロセッサ)、またあるいはこれらを組み合わせたものが含まれる。さらに、グラフはデータ、処理、辺またはリンクによって構成される。この場合、表示は処理ステップ間のデータフローのみでなく、1つの処理ノードから他の処理ノードへのデータフローをもキャプチャする。さらに、グラフの要素(ファイル、処理、辺)を反復することにより、システム中に並列性を呈することが可能である。
しかしながら、このようなグラフは複雑なプログラムの理解には役立っても、操作を呼出すために直接使用することができない。これは以下に示す理由のためである。
(1)個々の処理の内外で情報を得る方法を示さない。
(2)処理間での情報の移動方法を示さない。
(3)どの命令で処理を実行するかを示さない。
従って、グラフとして表された操作を実行するシステムおよび方法があれば便利である。本発明はこのようなシステムと方法を提供するものである。
発明の概要
本発明によれば操作を呼出すために直接グラフを使用できる方法および装置が得られる。また本発明によれば、グラフ上に表された個々の処理へ、また個々の処理から、処理間の方法移動のため、また、処理へ下す実行命令を画定するための情報を見る方法が得られる。これによりアプリケーションライタは、処理がどのようにして必要なデータにアクセスすべきかを、本発明を採用したシステムに伝えることができる。これには内部処理通信方法を選択するアルゴリズムと、処理実行をスケジュールするアルゴリズムとが含まれる。本発明では、処理内へまた処理外から情報を得る補助をするために、「アダプタ処理」を必要に応じて追加できる。本発明はまた、グラフの実行のモニタリングも備えている。
一般に、1局面において本発明は、コンピュータシステム上で、点を接続するリンクを有する関連したグラフとして表された操作を実行するためのシステムであり、前記グラフが、各々が処理を表す処理点と、各々がファイルを表すファイル点とを有し、前記システムが、
(1)グラフをユーザ入力としてコンピュータシステムに受入れるステップと、
(2)グラフが実行可能な形になるまで、また、各リンクが、リンクによって接続された点のアクセス方法と互換性を持つ通信方法の少なくとも1つと関連するまで、グラフ変形ステップをコンピュータシステム上で実行することにより実行に備えてグラフを準備するステップと、
(3)コンピュータシステムを使用して、リンクの通信方法に適切な、通信チャンネルおよび/またはデータ記憶を作成することにより各リンクを開始するステップと、
(4)コンピュータシステム上に処理の実行を呼出すことにより各処理を開始するステップとを備えている。
本発明は数々の利点を備えている。例えば本発明により、目的のマシンで転送可能なデータの独立した方法でアプリケーションを表すことが可能である。また、本発明により、コンポーネントプログラムが必要とするデータアクセス方法の独立した方法でアプリケーションを表すことも可能である。さらに、アプリケーションライタは、本発明により、様々な操作ステップを呼出す命令を計画する必要性から解放される。アプリケーションライタはまた、本発明により、通信チャンネルと一時ファイルを作成および破棄するためのコード書込みの必要性からも解放される。
この他の利点および特徴は、後述の説明と請求の範囲から明白になるであろう。
【図面の簡単な説明】
本明細書に採用され、また本明細書の一部を構成する添付の図面は、本発明の特定の実施例を図式的に示すものであり、また、上述した一般の説明および後述する実施例の詳細な説明と共に本発明の趣旨を説明するものである。
第1a図は、従来技術の給与システムの例を示す単純化したサンプルを介したデータフローを表すグラフである。
第1b図は、本発明による、第1a図に関連したグラフである。
第2図は本発明によるドライバプログラムのブロック図である。
第3図は本発明によるグラフを実行する方法の系統線図である。
第4図は第3図に示した方法の1つのステップを示す系統線図である。
第5a図、第5b図、第5c図、第5d図、第5e図、第5f図、第5g図、そして第5h図は、第3図に示した方法の複数のステップを示す系統線図である。
第6図は、第3図に示した方法の複数のステップを示す系統線図である。
第7図は、第3図に示した方法の複数のステップを示す系統線図である。
第8図は、本発明によるソース(送信元)アダプタの挿入の複数のステップを示す系統線図である。
第9a図は実例的グラフのブロック図である。
第9b図は本発明によるソース(送信元)アダプタの挿入を示すものである。
第10図は本発明を適用した例証グラフの第1ステップである。
第11図は本発明を適用した例証グラフの第2ステップである。
第12図は本発明を適用した例証グラフの第2ステップである。
第13図は本発明を適用した例証グラフの第3ステップである。
第14図は本発明を適用した例証グラフの第4ステップである。
第15図は本発明を適用した例証グラフの第5ステップである。
第16図は本発明を適用した例証グラフの第6ステップである。
図面中で、同一の参照番号および符号は同一の要素を示す。
発明の詳細な説明
操作基構の概観
本発明による、グラフとして表された操作を実行するためのグラフ実行システムとグラフ実行方法は、通信チャンネル、データ記憶、処理制御そしてデータアクセス方法といった市販の機能を有する操作環境または基構に多く取り入れられる。この理由のため、このような参照基構を参照してグラフ実行システムとグラフ実行方法について説明するが、システムと方法はこのような基構に限定されるものではない。
通信チャンネルに関する限り、参照基構は通信チャンネルを作成および破棄する機能を提供し、また、分散環境でこのシステムあるいは方法を使用する場合には、遠隔プロセッサで同様の動作をする機能を提供する。このような通信チャンネルは、同じプロセッサ上の2処理間、あるいは、異なるプロセッサ上の2処理間におけるデータ転送を行うことができる。数種の通信チャンネルの提供も可能である。データ記憶に関する限り、参照基構は、データ記憶を作成する機能を提供し、また、分散環境でシステムあるいは方法を使用する場合には、遠隔プロセッサ上で同様の動作をする機能を提供する。データ記憶は、ジョブ間、あるいは処理のステップ間のデータを保存するメモリである。基構はまた、データ記憶のコンテンツへの読取り/書込み処理が可能な機構を提供する。場合によっては、基構は、1つの処理が遠隔ノードに配設されたデータ記憶のコンテンツから読取り/書込みを行う機構を提供するが、このような機能は本発明で必要ではない。処理制御に関する限り、基構は、処理を開始し、いつ実行が終わったかを決定し、処理が正常に終了したかどうかを決定する機能を提供する。分散環境でシステムまたは方法を使用する場合には、基構は遠隔プロセッサ上で処理を開始する機能を提供する。処理開始の動作は、実行するプログラムの名前、アクセスするファイルまたは通信チャンネル用の識別子を含むパラメータを通過させなければならない。データアクセス方法に関する限り、基構は、基構上で実行される処理を使った、データアクセス方法のための機能を提供する。
有用な基構は、様々なバージョンのあらゆるUNIXオペレーティングシステムによって提供される基構の拡張として開発される。UNIXオペレーティングシステムは、名前付きパイプ、TCP/IPストリームといった2つのタイプの通信チャンネルを提供する。名前付きパイプはPoint-to-Point通信チャンネルであり、同一ノード上の処理間のデータ転送に使用される。(「ノード」という用語は、おそらく複数のプロセッサと記憶装置またはデータ記憶を備えているが、共用メモリの単一プールを有するコンピュータのことを指す。)名前付きパイプはファイルシステム内のパスによって識別される。TCP/IPストリームは、TCP/IPネットワーク(例えばインターネット)上のあらゆる場所の2処理間でのデータ転送に使用するPoint-to-Point通信チャンネルである。TCP/IPストリームの確立には、2つの処理が接続を確立するプロトコルを使用することが必須となる。このようなプロトコルの多くは一般に使用されているが、そのほとんどがこのシステムで必要とするPeer-to-Peer接続ではなくクライアント/サーバ型接続の確立を目的としている。
拡張された基構は共用メモリと呼ばれるチャンネルのある追加タイプを提供する。共用メモリは、複数の処理からのアクセスが可能で、既知の方法でデータを転送するために使用されるメモリのプールである。共用メモリチャンネルは、同期アクセスのための機構を含む。共用メモリは同一ノード上の処理間でのデータ転送にも適用でき、また名前付きパイプ用の効率的な代用品である。
本発明と共に使用するために、拡張した基構のTCP/IP接続プロトコルはPeer-to-Peerリンクに適したものでなくてはならない。このようなプロトコルにおいて、主体は、「ストリーム識別子」を作成し、このストリーム識別子を受容する所望のストリームの両端ポイント用にアレンジする。2つの端ポイントが基構へのストリーム識別子を与え、これに応じて、TCP/IPストリームへの接続を受容する。これと類似した機構が、共用メモリ通信チャンネルの確立にも使用される。このようなプロトコルの作成は従来技術として非常によく知られている。
UNIXオペレーティングシステムは、ファイルインタフェース、ストリームインタフェース、そしてファイル記述子インタフェースの3つのデータアクセス方法を提供する。ファイルインタフェースでは、プログラムにはファイル名が付けられ、次にこれをオープンし、読取り、書込み、そのファイル内で検索を行う。ストリームインタフェースでは、プログラムはファイル名または名前付きパイプが提供され、次にオープンされ、読取り、書込みが行われる。ストリームインタフェースでは検索動作または他の動作は行えない。ファイル記述子インタフェースでは、ファイル記述子(例えば番号によって識別された)を、プログラムを呼出す前にファイル、名前付きパイプ、あるいはTCP/IPストリームに結合することができる。次にプログラムはファイル記述子からの読取り、あるいはファイル記述子への書込みを行う。ストリームインタフェースでは、プログラムが呼出される前にストリームがプログラムの外でオープンされることを除けば、これはストリームインタフェースと類似している。
本発明での使用として、拡張された基構は1つの追加アクセス方法、ストリームオブジェクト接続(SOC)を提供する。「ストリームオブジェクト」を作成するには、拡張基構に「ストリームオブジェクト識別子」(ユニーク列)、「通信方法名」、「チャンネル/ファイル識別子」を与えるが、これらはファイルまたは名前付きパイプ、あるいはTCP/IPストリームまたは共用メモリチャンネルを作成するために使用する識別子であってよい。またCallerは、ソース(送信元)と宛先がある場所でノードを一致させなければならない。
UNIXオペレーティングシステムは1タイプのデータ記憶を提供する。それはファイルである。ファイルは、通常ディスクに記憶されたバイトの連続(シーケンス)である。ファイルは、ファイルシステム内のパスによって識別され、また、識別子がそのホスト、すなわちそれが存在するノード、を識別する。
UNIXオペレーティングシステムは処理制御を提供する。処理を開始するには、実行するプログラム名、あらゆるコマンド回線引数、ファイル記述子のためのあらゆるバインディングといった情報を提供する。コマンド回線引数は、プログラムがアクセスするファイル名、名前付きパイプを備えていてもよい。ファイル記述子のための各バインディングは、ファイル記述子番号と、ファイルあるいは名前付きパイプを識別するパスまたはTCP/IPストリームを識別する補助チャンネルのいずれかから成る。さらに、コマンド回線引数は、ある資源がどこにあるかを記述するため、または実行オプションを構成するために、通常UNIXプログラムによって要求される環境変数の値を含んでいてもよい。
グラフの概観
本発明のシステムは、これから説明する1組の処理点、1組のファイル点、1組のデータリンクの状態変数における操作の状態を追跡する。これらの構成を利用したシステムの動作については後に説明する。
本発明の概念をいくつか図示するために、従来技術の例証を使用する。第1a図は、従来技術の給与システムの例を示す単純化したサンプルを介したデータフローを表すグラフである。この例証への入力は、全従業員の永久レコードを含む旧マスタファイル110と、1週間分のタイムシートとを含むアップデートファイル112である。旧マスタファイル110は従業員IDによって記憶されている。グラフは以下のデータフローを示す。
(1)アップデートファイル112がステップ114においてソートされる。
(2)ステップ116においてアップデートがチェックされ、不良レコードは不良レコードファイル118に入れられる。
(3)新規マスタファイル122と1組のペイチェック124とを作成するために、ステップ120において、ステップ116からのアップデートと旧マスタファイル110が処理される。
処理点
処理点は次の情報を含んでいる。
・処理点識別子
・プログラムテンプレート
・作業ディレクトリ(すなわちスクラッチファイルが作成されるディレクトリ)を識別する作業ディレクトリ識別子
・作業ノード(すなわち処理が実行されるノード)を識別する作業ノード識別子
・Disabled、Enabled、Runnable、Unrunnable、Done(最初はDisabled)のいずれかの値を持つ状態変数。
・点がアダプタ点(後に説明する)であるかどうかを示すフラグ
次に示す表は、第1a図に示したソース、チェック、プロセス処理(プログラム)のための3処理点のコンテンツを表すものである。
Figure 0003717188
ファイル点
ファイル点はファイルに関連し、次の情報を含む。
・ファイル点識別子
・データノード識別子
・データファイル識別子
・作業ノードを識別する作業ノード識別子であり、ファイル(これは通常データノードと一致する)へのアクセスを望むプログラムによって使用されることができる
・ファイルへのアクセスを望むプログラムが、どこでスクラッチファイル(これは通常データファイルが入っているのと同じファイルシステム内にある)を作成できるかを識別する作業ディレクトリ識別子
・Complete、Incomplete(最初はIncomplete)のいずれか1つを持つ状態変数
操作基構がファイル以外のデータ記憶を備えている場合、ファイル点内の情報は、データ記憶のタイプと、それを識別および使用するために必要とされる情報を表示するインジケータを含むように拡張される。
次の表は、第1a図のグラフで示したファイルに対する5つのファイル点である。
Figure 0003717188
データリンク
データリンク(または短く単に「リンク」)は以下の情報を含む。
・送信元点-ファイル点または処理点のいずれか
・送信元ポート識別子-送信元がファイル点の場合、Outputのみが許容される
・宛先点-ファイル点または処理点のいずれか
・宛先ポート識別子-宛先がファイル点の場合、Inputのみが許容される
・Unboundであるか、またはFile、NamedPipe、TCP/IPまたはShared Memory(最初はUnbound)といったタイプの通信チャンネル名であってよい通信方法識別子
・Unlaunched(非開始)またはLaunched(開始)(最初はUnlaunched)のいずれかであってよい状態変数
与えられたファイル点または処理点の与えられたポートに、1つ以上のデータリンクを取付けることができる。
第1a図において、接続矢印は処理点とファイル点間のリンケージを図形的に示すものである。本発明において、リンクの概念はより具体的な形になっている。
次に第1b図を参照する。グラフ130は、本発明に従って第1a図に示されたグラフ100から引出した処理点、ファイル点、データリンクを示す。
次の表は、グラフ130に示した7つのデータリンク132、134、136、138、140、142、144である。
Figure 0003717188
プログラムテンプレート
処理点はプログラムテンプレートを含む。プログラムテンプレートは次の2つの、プログラムに関するベーシックタイプの情報を含む。(1)プログラムを呼出すために必要な情報、例えばプログラム名、コマンド回線引数、環境変数。そして(2)プログラムがデータにアクセスするための手段を記述するポート記述子の列。呼出し情報の正確な形は操作基構に依る。既述のUNIXベースの基構用に、プログラム名は実行可能ファイル名と、スペースによって離間した列から成るコマンド回線引数である。これらの列のいくつかは"$portname"の形であってよく、ここで"portname"はテンプレート内の1ポートの名前であり、またここで、そのポートはファイルインタフェースあるいはストリームインタフェースデータアクセス方法を使用しなければならない。この場合、文字列"$portname"は呼出しの際に、ファイル名またはポートと接続した名前付きパイプで置換えられる。
次の表は、第1b図のグラフ130に示した3つのプログラム(処理)のための図形的プログラムテンプレートのコンテンツを示すものである。
Figure 0003717188
プログラムの呼出しに必要な情報は2つの形で供給されてもよい。情報はまず、上の表に示したプログラムテンプレートに正確に記憶されなければならない。次に、この情報は動的に生成されてもよく、この場合、情報を生成するルーチンのアドレスがプログラムテンプレートに記憶される。
プログラムテンプレート内のポート記述子は、上の表の最右端に3つの要素として示した次の情報を含む。
・ポートのポート識別子
・ポートが入力に使用されているか出力に使用されているかの表示
・どの通信方法がポートに受理可能かを示す、ReqsSFile、ReqsNamedPipe、ReqsFDまたはReqsSOC("Reqs"は"Requires"の略)といった受理可能方法コード
これらの受理可能方法コードは、操作基構により支持されるデータアクセス方法を参照する。
ドライバプログラム
次に第2図を参照する。ドライバプログラム200(または短く単に「ドライバ」)は、ユーザインタフェース204を介して受信されたユーザ202からの入力に基づいてグラフを描く手段を提供する。特定のグラフ(例えば、第1b図に示したグラフ)を表す1つまたはそれ以上のグラフデータ構造206がドライバ200によって生成される。ドライバ200のグラフ実行制御機能208は次に、外部処理212と相互作用するために、任意の命令で、要求された回数だけ、ドライバ200が下記の外部制御210機能を実行することを許容する。
・処理点を作成する
・ファイル点を作成する
・点(あらゆる種類)のあらゆる対間にデータリンクを作成する
・処理の最新状態をDisabledからEnabledへ変更する
・グラフを実行させる
最終的にドライバ200は、ユーザ202による要求に応じて、また、ユーザインタフェース204を介してユーザ202により供給された情報を使ってこれらの動作を実行する。ユーザ202は、グラフィカルユーザインタフェースを介してドライバ200に直接入力を提供する人物であってよい。また、ユーザ202は、例えばオブジェクト指向または手続インタフェースを介してドライバ200を制御する個別のプログラムであってもよい。この方法では、ユーザ202は、グラフの実行を構築するためにドライバ200を使用する。
ドライバ200は、ユーザ202が識別子、プログラムテンプレート、作業ノード、作業ディレクトリを提供した際に、グラフ用の処理点を作成する。作業ディレクトリには作業ノードに基づいたデフォルト値を与えてもよい。
ドライバ200は、ユーザ202が識別子、データノード、データファイル名、作業ノード、作業ファイル名を提供した際に、グラフ用のファイル点を作成してもよい。好ましい実施例において、作業ノードは省略値としてデータノードをとる。作業ファイル名には作業ノードおよび/またはデータファイル名に基づいたデフォルト値を与えてもよい。
ユーザ202がソース点、宛先点、ソースポート識別子、宛先ポート識別子を提供した際に、ドライバ200はグラフ点のあらゆる対間にデータリンクを作成することができる。好ましい実施例において、ソースポート識別子は省略値としてOutputをとり、宛先ポート識別子は省略値としてInputをとる。
ユーザ202に処理点のEnabled/Disabled状態の制御を可能にさせることにより、ドライバ200は、処理点のサブセットを選択的に可能にすることで、後述する処理の実行命令の制御をユーザ202が行使できるようにする。
グラフの実行
次に第3図を参照する。最初のグラフが生成された後、ドライバ200はグラフの実行を制御し、このため、グラフによって処理が描かれる。ドライバ200がグラフを実行すると、次の基本ステップA-Iを実行することによってグラフの実行が行われる。
A.処理点のいずれか1つがEnabled状態にある限り、ドライバ200は下記のステップB-Iを繰り返す。ドライバ200は場合によってステップC、D、Iを省略し、また、ステップB、C、E、Hにおいて実行された動作を混合してもよい。
B.ドライバ200は実行のためにグラフを準備する。このステップにおいて、ドライバ200はRunnable処理点を識別子、リンクの通信方法を選択し、また、後述するアダプタノードの生成を行ってもよい。
C.後にさらに詳細に説明するように、ドライバ200はデータリンクを開始する。このステップにおいて、ドライバ200は、後述する通信方法を実現するために要求される、ある操作構造を作成する。
D.ドライバ200は、操作基構によって要求されたその他のあらゆるデータ構造またはファイルを作成する。上述した拡張基構用として、ドライバ200は後述するリンクファイルを作成する。これにより、実行持にプログラムがグラフコネクティビティ情報にアクセスできるようになる。
E.ドライバ200は後述するように処理を開始する。
F.ドライバ200は処理が終了するのを待つ。このステップは全処理が正常に完了した際、あるいは異常な状態で終了した処理があった際に完了する。
G.異常状態で終了した処理があった場合、グラフの実行は放棄される。
H.そうでなければ、Runnable状態にある全ての処理点がDone状態に移行する。Runnable状態の処理点がない場合、クリーンアップステップIが実行され、制御がcaller(例えば、ドライバ200のユーザ202)へと戻り、実行が立往生していることを示す表示が出る。
I.ドライバ200は、後述するとおりにデータリンクとリンクファイルをクリーンアップする。これはステップC、Dで作成されたデータ構造のいくつかをクリーンアップする。
次に、特定のステップをさらに詳細に説明する。
ステップB:実行に備えてグラフを準備する
次に第4a図を参照する。ドライバ200は、ユーザ202によって最初に描かれたグラフにアクセスし、グラフ変形(ステップ400)を適用することにより、そのグラフを実行に備えて準備する。これらの変形の実行において、各点とあらゆる関連リンクを取出すために、最初のグラフを画定するグラフデータ構造が従来の方法でトラバースされる。好ましい実施例では、取出したデータ構造に5つのグラフ変形を使用して、グラフを実行に備えて準備している。
グラフがまだ実行可能な形でない(ステップ402)間、後述する5つのグラフ変形が選択され、任意の命令において適応され(ステップ404)、実行可能なグラフが得られるまで何度でも(全く要求されない場合も含む)要求される(ステップ416)。5つのグラフ変形は、(1)ファイルアダプタの挿入(ステップ406)、(2)通信アダプタの挿入(ステップ408)、(3)ファイル点の状態をCompleteに設定(ステップ410)、(4)処理点の状態をRunnableまたはUnrunnableに設定(ステップ412)、(5)データリンクの通信方法を設定(ステップ414)である。次に、これらの変形の各々と、その各々が実行される状態について説明する。
ファイルアダプタの挿入
この変形において、ドライバ200はリンクをファイルアダプタ(すなわち、リンク、ファイル点、その他のリンク)に置換える。これはすなわち、グラフデータ構造206(第2図)のトラバースの間にリンクを表す各グラフデータ構造が取出されるか、またはアクセスされると、オリジナルのデータ構造を変形、拡張する、またはオリジナルのデータ構造に代わる新しいデータ構造が作成される。
ソース(宛先)ファイルアダプタの場合、ファイル点のホストはソース(宛先)点のホストと同一であり、ファイル点のファイルは、ソース(宛先)点の作業ディレクトリ内に配置された新規ファイルである。この変形は下記の場合のみに実行される。
(1)ソースが、Done状態にないファイル点か処理点である。
(2)宛先が、Incomplete状態にあるファイル点か、Done状態にない処理点である。
通信アダプタの挿入
この変形において、ドライバ200はリンクを通信アダプタ(すなわちリンク、処理点、その他のリンク)と置換える。処理点は、データをその入力から出力へとコピーし、あらゆる通信チャンネルへの、または下にある基構によって支持されるデータ記憶への読み書きが可能なコピープログラムを実行する。ソース(宛先)通信アダプタの場合、処理点のホストはソース(宛先)点のホストと同一であり、また、作業ディレクトリはソース(宛先)点の作業ディレクトリと同一である。処理点はEnabled状態で作成される。この変形は下記の場合のみに実行される。
(1)ソースがDone状態以外の状態にある処理点であるか、あるいはファイル点である。
(2)宛先がDone状態以外の状態にある処理点であるか、あるいはIncomplete状態にあるファイル点である。
ファイル点状態をCompleteに設定
この変形において、ファイル点の状態はCompleteに設定される。この変形は、ファイル点状態がIncompleteであり、そして、ファイル点への全ての入力がDone状態にある処理点の場合にのみ実行される。
処理点の状態をRunnableまたはUnrunnableに設定
この変形において処理点の状態はRunnableまたはUnrunnableのいずれかに設定される。この変形は、処理点状態がEnabledである場合にのみ実行される。
データリンクの通信方法の設定
この変形において、通信方法はデータリンクに設定される。この変形は、データリンクの通信方法がUnboundである場合にのみ実行される。
以下の3特性を備えたグラフは実行可能である。
(1)全ての処理点がDone、Runnable、Unrunnable、Disabledの状態のうちの1つである。
(2)全てのデータリンクが以下の基準を満たす。
1)データリンクのソースか宛先のいずれかがRunnable処理点である場合、データリンクの通信方法は特定の通信方法に結合していなければならない。
2)データリンクの通信方法がFile以外のものである場合、そのソースと宛先の両方が処理点でなければならず、一方の処理点がRunnableである場合、良処理点がRunnableでなければならない。
3)データリンクの通信方法がFileである場合、そのソースか宛先はファイル点でなければならない。宛先がRunnable処理点である場合には、ソースはCompleteファイル点でなければならない。ソースがRunnableファイル点である場合には、宛先はIncompleteファイル点でなければならない。
(3)通信方法と結合した全てのリンクが、通信方法固有の制約を満たす。
1)通信方法は、そのソースと宛先ポート(これはプログラムテンプレートに打診することで決定される)のアクセス方法と互換性を持っていなければならない。既に説明した拡張基構の場合には、全ての通信方法がSOCアクセスと互換性を持ち、Shared Memory以外の全てはFile Descriptorアクセスと互換性を持ち、NamedPipeとFileはNamedPipeアクセスと互換性を持ち、そしてファイルのみがFileアクセスと互換性を有する。
2)ソースと宛先点のノードの一致を必要とする通信方法もある。説明した拡張基構については、これはTCP/IPを除いた全ての通信方法において正しい。
実行可能なグラフが得られるまで、グラフ変形をあらゆる命令(例えば、全ての変形が完了するまでグラフデータ構造が繰り返しトラバースされる)に適用することができる。次に第4b図を参照する。以下の順番を踏む下記のステップにおいて、グラフ変形が1実施例に適用される。(1)ファイルアダプタの挿入(ステップ450)、(2)file-to-fileリンクの置換(ステップ452)、(3)Completeファイル点の識別(ステップ454)、(4)Unrunnable処理点の識別(ステップ456)、(5)Runnable処理点の識別(ステップ458)、(6)残りのEnabled点をUnrunnableに設定(ステップ460)、(7)状態が合った場所にさらにファイルアダプタを挿入(ステップ462)、(8)通信方法の選択(ステップ464)、(9)通信アダプタの挿入(ステップ466)。次にこの実施例のステップについてさらに詳細に説明する。
(1)ファイルアダプタの挿入
第5a図を参照する。ファイルアダプタを挿入するには、グラフ内の全リンクに対して下記のステップを実行する(ステップ500)。リンクのソースポートが、ファイルの使用を要求し(ステップ502)、宛先が同一ノード上のファイルでないデータアクセス方法を有する場合には、ソースファイルアダプタを挿入する(ステップ506)。リンクの宛先ポートが、ファイルの使用を要求し(ステップ508)、ソースが同一ノード上のファイルでないデータアクセス方法を有する場合には、宛先ファイルアダプタを挿入する(ステップ512)。
リンクの宛先がDisabled状態の処理点であり(ステップ514)、ソースがEnabled状態の処理点である(ステップ516)場合、宛先ファイルアダプタを挿入する(ステップ512)。
(2)File-to-Fileリンクの置換
次に第5b図を参照する。file-to-fileリンクを置換する場合には、グラフ内の全てのリンクに対して下記のステップを実行する(ステップ520)。ソースと宛先の両方がファイル点である(ステップ522)場合には、ソース通信アダプタを挿入する(ステップ524)。(さらに、ソースと宛先が異なるノード上にある場合にも、宛先通信アダプタを挿入する。図示せず)
(3)Completeファイル点の識別
第5c図を参照する。Completeファイル点を識別するためには、グラフ内の全てのファイル点に対して下記のステップを実行する(ステップ530)。全てのアップストリーム点がDone状態の処理点である場合(ステップ532)、その状態をCompleteに設定する(ステップ534)。
(4)Unrunnable処理点の識別
次に第5d図を参照する。Unrunnable処理点を識別するには、グラフ内の全リンクに対して下記のステップを実行する(ステップ540)。"Unrunnability"テストを下記のとおり実行する(ステップ542)。リンクのソースがIncompleteファイル点であり、その宛先がEnabled状態の処理点である場合には、処理点の状態をUnrunnableに設定し(ステップ544)、ソースがEnabled以外の状態にある処理点であり、宛先がEnabled状態の処理点である場合には、宛先処理点をUnrunnableとマークする(ステップ544)。"Unrunnable"とマークされる点がなくなるまでこのテストを繰り返す。
(5)Runnable処理点の識別
次に第5e図を参照する。Runnableファイル点を識別するには、グラフ内の全処理点に対して下記のステップを実行する。"Runnability"テストは以下のように実行される(ステップ552)。点がEnabled状態にあり、全てのアップストリーム点がCompleteファイル点かRunnable処理点のいずれかである場合には、点の状態をRunnableに設定する(ステップ554)。Runnableとマークされる点がなくなるまでこのテストを繰り返す。
(6)残りのEnabled点をUnrunnableに設定する
次に第5f図を参照する。残りのEnabled点をUnrunnableに設定するには、グラフ内の全処理点に対して下記のステップを実行する。点がEnabled状態にある場合(ステップ562)、その状態をUnrunnableに設定する(ステップ564)。
(7)ファイルアダプタをさらに挿入
第5g図を参照する。ファイルアダプタをさらに挿入するには、グラフ内の全リンクに対して下記のステップを実行する。リンクのソースがRunnable処理点であり(ステップ572)、宛先がUnrunnable処理点である(ステップ574)場合には、ソースファイルアダプタを挿入する(ステップ576)。
(8)通信方法の選択
次に第5h図を参照する。通信方法を選択するには、グラフ内の全リンクに対して下記のステップを実行する(ステップ580)。このステップは、いずれかの側に実行可能処理が付いており、通信方法と結合していないリンクのみに適応する。リンクのソース(宛先)がファイル点であり(ステップ581)、またそのソース(宛先)が同一ノード上の処理点である場合には、リンクの通信方法をFile(ステップ582)に設定する。もしくは、使用可能な通信方法の1つを選び、その方法の全ての制約が満たされるようにする(ステップ583-585)。速度については、通信方法は命令Shared Memory、NamedPipe、TCP/IPの中に考慮されてもよい。上述した制約を満たす第1の方法が選択される(ステップ586)。参照基構内には、下記の規則を使用してもよい。まずリンクがSOC接続を受入れるポートと接続している場合、ソースと宛先が同一ノード上にあればそのリンクはShared Memoryを使用し、ソースと宛先が異なるノード上にあればTCP/IPを使用する。そうでなければ、ソースと宛先が同一ノード上にある場合にはNamedPipe方法を使用する。他の全ての場合において、どの単一通信方法も十分でなく、システムは通信アダプタ(下記)へと戻る。
(9)通信アダプタの挿入
前述の通信方法の選択ステップで単一通信方法が選択されておらず、全て試されている場合には(ステップ583)、ソース通信アダプタを挿入することにより、また、アダプタの2リンクに対する通信方法を選ぶ試みをする(ステップ587)ことにより続行する。これが失敗した場合は(ステップ588)、新しく挿入したソース通信アダプタを宛先通信アダプタ(ステップ589)と置換えて試してみること。もしこれも失敗した場合には(ステップ590)、ソースと宛先両方の通信アダプタを挿入し、この2つのアダプタ内で(ステップ591)3リンクに対する通信方法を選択する。参照基構において、ソースと宛先が異なるノード上にあり、リンクがファイル点またはSOC接続方法を受付けない処理点のいずれかに接続されている場合にのみ通信アダプタが要求される。この場合、アダプタは下記のとおり選択される。
・ソースがファイル点である場合、ソース通信アダプタを挿入する。ソース通信アダプタ内の2リンクは、FileとTCP/IP通信方法を交互に使用する。
・ソースが、SOC通信方法を受付けないポートである場合には、ソース通信アダプタを使用する。ソース通信アダプタ内の2リンクは、TCP/IPとFile通信方法を交互に使用する。
・宛先がファイル点である場合には、宛先通信アダプタを挿入する。アダプタ内の2リンクはTCP/IPとFile通信方法を交互に使用する。
・宛先がSOC通信方法を受付けないポートである場合には、宛先通信アダプタを挿入する。アダプタ内の2リンクは、TCP/IPとNamedPipe通信方法を交互に使用する。
ステップC:データリンクの開始
次に第6図を参照する。Unlaunched状態でデータリンクが作成され、開始されなければならない。リンクを開始するには、Unlaunched(ステップ602)であるリンクを見つけるためにリンクをスキャンし(ステップ600)、通信方法(ステップ604)と結合し、Runnableソースまたは宛先を持たせる。全てのこのようなリンクについて、様々な通信方法(ステップ608)で使用できる識別子が生成される。上述した拡張基構については、下記のとおり識別子が生成される。全リンクに、ストリームオブジェクト識別子と通信チャンネル/ファイル識別子の2つの識別子を持たせる。ストリームオブジェクト識別子はSOC機構によって使用され、またこれはリンク名と一致する。チャンネル/ファイル識別子は、リンクに採用されたファイル、名前付きパイプ、共用メモリ範囲、TCP/IP接続を識別するために使用される。さらに、処理点がNamedPipeまたはFile通信方法を要求する場合、チャンネル/ファイル識別子が使用可能になり、これによって処理点が、開始された際に、UNIXファイルシステムを使用してチャンネル/ファイルに接続可能になる。
識別子が生成された後、チャンネルまたはストリームオブジェクトを作成するために基構が呼出される。通信方法がNamedPipeである場合も、名前付きパイプを作成するために基構が呼出される。
ステップD:リンクファイルの作成
拡張基構は、各ノードに、そのノードにソースまたは宛先を有するリンクを列挙する「リンクファイル」を保持している。プログラムは実行時間において、どのリンクにアクセスするべきかをこのリンクファイルに打診する。これは、SOCインタフェースを使用するプログラムで一般に行われている。従って、拡張基構の場合には、システムはリンクファイルを作成しなければならない。これは下記のとおり行われる。操作に関係する全てのノードについて、ドライバ200は、そのノードに割当てられたRunnable処理点を識別し、このような点に接続した全てのリンクについては、リンクファイルに下記の情報を蓄積および記憶させる。
・点用の識別子
・リンクが接続しているポートの名前
・通信チャンネル用の識別子
・適用可能であれば、データ転送に使用するファイルまたは名前付きパイプ用識別子
ステップE:処理の開始
次に第7図を参照する。Runnable状態(ステップ700)にある全ての処理点に下記のステップを実行することで処理を開始する。まず、点用のプログラムテンプレートを使用して呼出し情報を生成する(ステップ702)。この情報は下記を含む。
・呼出すプログラムの名前
・コマンド回線引数(コマンド回線引数は、通信チャンネル用の識別子と、点に接続したリンクに関連するファイルとを備えてもよい)
・オプションとして、様々な環境変数値
・オプションとして、プログラムの期待「出口コード」
呼出し情報は最低2つの方法のいずれか1つにおいて生成される。ドライバ200がこういった情報をプログラムテンプレート内に事前記憶するか、または、ドライバ200がこのような情報を動的に操作するためのルーチンを含み、これらルーチンのアドレスをプログラムテンプレートに記憶できる。
次に、点の識別子と、点のノード用のリンクファイルの識別子が環境変数の設定に追加される(ステップ704)。次いで、示されたノード上で実行されているエージェントが「プログラム呼出し処理」(ステップ706)を生成する。プログラムのテンプレートが、UNIXファイル記述子と接続した入力、出力ポートを要求する場合には、プログラム呼出し処理が、入力、出力ポートに関連するファイル名、名前付きパイプまたはTCP/IPストリーム識別子と共に提供される。プルグラム呼出し処理は要求された環境変数を設定し、指示されたコマンド回線引数(ステップ708)を使用して、指示されたプログラムを実行する。
ステップF:待つ
全ての処理が開始されたら、システムが、好ましくは開始に使ったものと同じエージェントを使用して、それらの実行を監視する。システム(エージェント)は処理がエクシットしたことを定期的に注意する。これが起こると、システム(エージェント)はプロセスが「正常に」あるいは「異常に」エクシットしたかどうかを決定する。UNIXの場合、これは終了コードを介して行われる。終了コードは、プログラムエラー、演算例外、無効メモリ等のためにプログラムが打切られたことを表示することができる。このような場合は常に「異常終了」と表示される。また、「出口コード」を復帰させて、プログラムを制御形式で終了することもできる。慣例によれば、0の出口コードはプログラムが正常に終了したことを示し、その他のコードは全て異常終了を示す。上述したように、プログラムテンプレートはこの翻訳を変更してもよく、例えば、全ての出口コードを「正常」終了と翻訳してもよい。
処理が正常に終了したことをシステムが決定するとすぐに、システムはオプションで「デバッギング」ルーチンを入力し、ユーザが異常終了の理由を診断できるようにすることもできる。デバッギングが完了すると(またはスキップすると)、システムが打切り手続を開始する。これは例えば、まだ実行している全処理を停止し、部分的に書込まれたファイルを削除する等である。次にドライバプログラムが終了する。
システムは、処理が正常に終了したと決定すると、この事実を記述し、さらに処理が終了することを待つ。全ての処理が正常に終了すると、システムはクリーンアップステップIへと進む。
ステップI:クリーンアップ
全てのRunnble処理の実行が終わったら、ドライバ200は下記のステップを実行する。まず、各ノードのリンクファイルが削除される。次に、Launched状態にある全てのリンクがスキャンされる。リンクと接続した全ての処理点がDone状態にある場合には、リンクと関連するあらゆる通信チャンネルを破棄するために基構が使用される。拡張基構の場合は、リンクのストリームオブジェクト識別子を得て、基構に指定されたストリームオブジェクトを破棄するように命令することによって行われる。通信方法がNamedPipeである場合も、やはりNamedPipeを破棄する。さらに、ファイルアダプタ点がCompleteであり、そこから流れる全ての処理がDoneである場合は、そのファイルが削除される。
アダプタの挿入
リンクの代わりにアダプタを挿入する状況についていくつか説明した。アダプタはデータリンク、またはファイル、あるいは処理点(アダプタ点)であり、または、一連の通信方法を使って通信リンクを合成するために挿入された他のデータリンクである。アダプタ点が処理であるアダプタは、「通信アダプタ」と参照される。アダプタ点がファイルであるアダプタは、「ファイルアダプタ」と参照される。一般に、リンクのソースと宛先が強要する制約を満たすために通信方法組合せ(例えば、名前付きパイプとTCP/IP接続)が要求される場合に、通信アダプタが追加される。
ファイルアダプタはまた、リンクのソースと宛先が同時に実行されない場合(例えば、ソースが実行可能であるが宛先が実行不可能あるいは使用禁止である場合)、またはリンクのソースか宛先のどちらかがファイルに接続できる場合に追加される。通信アダプタの場合は、アダプタ点がその入力から出力へとコピーする、また、あらゆる種類の通信チャンネルと接続するプログラムを指定する。アダプタリンクは次に、ステップ583-585で説明した制約「通信方法の選択」に当てはまる任意の通信方法と接続され、。アダプタ点はデータを、単純にその入力から出力へコピーする。アダプタリンクは、ソースと宛先の制約に従属するあらゆる便利な通信方法を備えることができる。
次に第8図を参照する。ソースアダプタを挿入するためには、新規のアダプタ点(ステップ802)と新規のアダプタリンクを作成する(ステップ804)。ソース通信アダプタの場合には、アダプタ点は下記の特性を持つ処理点である。
・プログラムテンプレートはコピープログラム、すなわち全ての入力データをその出力へとコピーするプログラムを指定する。
・プログラムテンプレートは、あらゆる通信方法への接続が可能な入力、出力ポート記述子を指定する。
・新しい点はアダプタ点としてフラグされる。
・オリジナルのソース点の作業ディレクトリと作業ノードとが、アダプタ点の作業ディレクトリとノードとして使用される。
ソースファイルアダプタの場合には、下記の特性を持つアダプタ点はファイル点である。
・ファイルはソースプログラムによって使用されるノード上に配設されている。
・ファイルはソースプログラムの作業ディレクトリ内に配設されている。
ファイルは「アダプタ」になっているとマークされるため、宛先処理によって消費されると、このファイルは削除される。
新規のアダプタリンク(ステップ804)は下記の特性を備えている。
・アダプタリンクのソース点はオリジナルリンクのソース点と同じであり、アダプタリンクのソースポート名はオリジナルリンクのソースポート名と同じである。
・アダプタリンクの宛先点はアダプタ点であり、アダプタの宛先ポート名はオリジナルリンクである。
・アダプタリンクの通信方法は、ソースアダプタを挿入する手続が指定した値(これはしばしばUnboundである)に設定される。
最後に、オリジナルデータリンクのソースが新規アダプタ点(ステップ806)に設定され、ソースポート名がOutputに設定される。
宛先アダプタ点を挿入する手続は、「ソース」と「宛先」、「入力」と「出力」といった具合に相互に対照的であり、交換される。
第9a図、第9b図は、リンクLの代わりに、点V1のポートP1と点V2のポートP2との間に通信アダプタ900を挿入する図を示す。第9b図において、リンクLは、第1リンク902、点904、第2リンク906を含むソースアダプタ900によって置換えられている。アダプタ900がファイルアダプタの場合は、点904は、点V1のディレクトリおよびホストである、ホストH1上のディレクトリD1内のファイルのファイル点である。アダプタ900が通信アダプタである場合、点904はコピープログラムを実行する処理点である。第2リンク902は、ソース点がアダプタ点904に設定され、ソースポート名がOutputに設定されたオリジナルリンクLである。第1リンク902のソースポート名はオリジナルリンクLのオリジナルソースポート名P1への設定であり、その宛先点は新しく追加した点904のInputポートである。
新規アダプタ900が宛先アダプタである場合、点904は、ソース点V1のホストH1とディレクトリD1よりも、宛先点V2のホストH2とディレクトリD2を使用する。
グラフの入力と実行の例証
次に、本発明を、第1図に示したペイロールプログラムに適用していると考慮する。まず、アプリケーションを作成する前に、ユーザは既に、要求された全プログラム、具体的にはソートプログラムに対するテンプレート、チェッカープログラム、ペイロールプログラムをシステムに提供している。次にユーザは、上述したようにアプリケーションをグラフとして表す。そのグラフは第10図に示されており、図にあるように、ノード0、1、2で実行するステップ1000-1070を有する(様々なリンクが接続したポートの名前は省略しているが、第1b図と比較すれば明白である)。
このグラフの処理の第1ステップは、実行に備えてグラフを準備することである。まず、実行ステップ450の間、テンプレートにSortプログラム1010について打診し、入力としてファイルが必要であると見る。その結果、ステップ450が宛先ファイルアダプタ1002を挿入する(第11図)。
次に、ステップ452を実行する。我々が、ノード2上のUpdateファイル1000からノード1上のTemporaryファイル1002へのリンクを有することに注意すること。従って、ソースと宛先通信アプリケーション(コピー1004、コピー1006)の両方がこのリンクに挿入される(第12図)。
次に、ステップ454において、我々は完全ファイル点(Update 1000とOld Master 1050)を識別する。これが終わると、ステップ456において、アップストリームに不完全ファイルが存在するために実行不可能な処理点を探す。Sortプログラム1010が見つかり、この基準が満たされる。ステップ458において、我々は、アップストリームに実行可能処理点および/または完全ファイルのみを有するために実行可能な処理点を識別する。2つのコピープログラム1004、1006(すなわち、ステップ452において挿入された通信アダプタ)はこの基準を満たし、実行可能とマークされる。残りの全てのノードは実行不可能とマークされる。最後に、実行可能処理点に接続したこれらのリンクに対して通信方法を選択する。これらのファイルに対してFile方法が選択され、また、2つのコピープログラム1004、1006(それぞれ異なるノード上にある)の間のリンクに対してTCP/IPが選択される。
これにより、第13図に示した状況になる(実行可能/完全とマークされていない点は、実行不可能/不完全であり、通信方法とマークされていないリンクは接続されていない)。
現在、グラフは実行可能である。リンクファイルが作成され(図示せず)、指定されたリンクが開始され、実行可能な処理点が開始される。全ての処理が終了すると、システムは、指定されたリンクを非開始とし、処理点の状態を「実行可能」から「終了」に変更することにより「クリーンアップ」を行う。この場合の結果を第14図に示す。
次にシステムは全処理が終了していないと決定し、新たに実行を繰返す。まず、システムは前と同様にグラフを準備する。Temp File 1002が完全であることを記述することから始まる。次に、システムは実行不可能な処理点がないと決定する。最後に、実際に全ての処理点が実行可能であることを決定する。この場合の結果を第15図に示す。
次は通信方法の選択(ステップ464)である。まず、Temp File 1002、Bad 1030、Paychecks 1060がFileに設定される。これは、Temp File 1002、Bad 1030、Paychecks 1060がファイルと実行可能処理点を接続し、ノード境界を横切らないためである。次に、Check 1020に接続した残りのリンクがNamedPipeに設定される。これはCheck 1020が名前付きパイプを要求し、これらのリンクがノード境界を横切らないためである。
これにより、OldMaster 1050とNewMaster 1070とProcess 1040が接続され、ファイルと、異なるノード上で実行中の処理とが接続される。どちらの場合も、Copy 1042とCopy 1044と示したステップ466への通信アダプタの挿入が必要である。両アダプタはNode 1で実行する。ある通信方法が選択され(ファイルに接続しているリンクにはFile、ノード境界を横切るリンクにはTCP/IP)、第16図に示すグラフが得られる。
グラフは再び実行に備えて準備される。システムはリンクファイルを作成し、リンクと処理を開始し、待ち、クリーンアップする。この時点で全ての処理点は「終了」であるため、グラフの実行が終了する。
プログラム実行
本発明はハードウェアやソフトウェア、または両方の組合せにおいて実行される。しかしながら、本発明はコンピュータプログラム、データ記憶システム(揮発性および不揮発性メモリおよび/または記憶要素)、最低1つの入力装置、最低1つの出力装置で実行されることが好ましい。本明細書中で説明した機能を実行するためにプログラムコードが入力データに適用され、出力情報を生成する。出力情報は1つ以上の出力装置に従来の方法で適用される。
各プログラムは、コンピュータシステムと通信するために、高レベルの手続またはオブジェクト指向プログラミング言語において実行されることが好ましい。しかしながら、所望であれば、プログラムはアセンブリまたは機械言語において実行されてもよい。いずれの場合も、言語はコンパイルされた、または翻訳された言語であってよい。
このようなコンピュータプログラムの各々は、一般または特殊目的プログラム可能コンピュータによって読取りが可能な記憶媒体あるいは装置(例えば、ROMや磁気ディスケット)に記憶されることが好ましい。これは、本明細書中で説明した手続を実行するために記憶媒体あるいは装置がコンピュータによって読取られる際に、コンピュータを構成、操作するためである。本発明のシステムはまた、コンピュータプログラムと共に構成された、コンピュータ読取り可能記憶媒体として実行されると考慮されてもよい。ここで記憶媒体は、コンピュータを、ここで説明した機能を特定の、予め画定された方法で実行するように動作させるように構成されている。
本発明の多くの実施例を説明した。しかし、本発明の精神と範囲を逸脱しない限り様々な改良が可能であることが理解されるであろう。従って、本発明は特定の例証的実施例によってではなく、添付の請求の範囲によってのみ限定されるものであることが理解されるであろう。

Claims (18)

  1. コンピュータシステム上で、グラフとして表されたプログラムの操作を実行する方法であって、前記グラフが、前記操作の第1処理を表す第1点と、前記操作の第2処理を表す第2点と、前記第1点を前記第2点と接続し、前記第1点と前記第2点間のデータフローを表すリンクとを備え、
    前記第1点と前記第2点の各々がそれに関連した状態を有し前記第1点と前記リンク間の接続がそれに関連した第1アクセス方法を有し、前記第2点と前記リンク間の接続がそれに関連した第2アクセス方法を有し、前記方法が、
    (a)コンピュータシステム上で、グラフ変形ステップを実行するための条件が満たされていることを確認し、前記第1点と前記第2点の少なくとも一方が実行可能状態でなく、前記第1アクセス方法と前記第2アクセス方法の少なくとも一方が互換性を持つ通信方法と関連していないとき、少なくとも前記第1点と前記第2点の各々が実行可能状態になり、且つ、前記第1アクセス方法と前記第2アクセス方法が各々互換性を持つ通信方法と関連するまで、前記第1点と前記第2点と前記リンクの特徴を調べ、前記特徴に基づいて、(1)前記第1点と前記第2点の一方又は両方の状態を或る値に設定し、且つ、(2a)前記リンクを、他のリンクに接続された点に接続されたリンクを含むアダプタによって置き換えることと、(2b)前記リンクをアダプタに置き換えると共に該置き換えられたアダプタが最初に通信方法に結合していないとき、前記第1アクセス方法と前記第2アクセス方法と互換性を持つ通信方法を前記アダプタに結合させること、の一方又は両方を行うことによって、グラフ変形ステップを実行することによって行う実行に備えたグラフの準備と、
    (b)前記コンピュータシステムを使って、前記結合した通信方法と互換性を持つ通信チャンネルおよび/またはデータ記憶の組合せの作成と
    (c)前記コンピュータシステム上で前記第1処理と前記第2処理の実行を呼出すことによって行う前記第1処理および前記第2処理の開始と、
    を有することを特徴とする、コンピュータシステム上で、グラフとして表されたプログラムの操作を実行する方法。
  2. コンピュータシステム上で、グラフとして表されたプログラムの操作を実行する方法であって、前記グラフが、前記操作の第1処理を表す第1点と、前記操作の第2処理を表す第2点と、前記第1点を前記第2点と接続し、前記第1点と前記第2点間のデータフローを表すリンクとを備え、
    前記第1点と前記第2点の各々がそれに関連した状態を有し前記第1点と前記リンク間の接続がそれに関連した第1アクセス方法を有し、前記第2点と前記リンク間の接続がそれに関連した第2アクセス方法を有し、前記方法が、
    (a)コンピュータシステム上で、グラフ変形ステップを実行するための条件が満たされていることを確認し、前記第1点と前記第2点の少なくとも一方が実行可能状態でなく、前記第1アクセス方法と前記第2アクセス方法の少なくとも一方が互換性を持つ通信方法と関連していないとき、少なくとも前記第1点と前記第2点の各々が実行可能状態になり、且つ、前記第1アクセス方法と前記第2アクセス方法が互換性を持つ通信方法と関連するまで前記第1点と前記第2点と前記リンクの特徴を調べ、前記特徴に基づいて、グラフ変形ステップを選択的に実行することによって行うグラフの準備であって、
    前記グラフ変形ステップは、(1a)ファイルを表す点の状態を処理が終了したことを示す完全状態に設定することと、(1b)処理を表す点の状態を実行可能状態に設定することと、(1c)処理を表す点の状態を実行不可能状態に設定すること、のうちの少なくとも1つを実行し、且つ、(2a)挿入点に隣接した少なくとも1つのグラフの点の特徴を調べることによって決定されたグラフの点の前又は後に、前記リンクを表わすデータ構造を修正、拡張又は置換するファイルを表す点を挿入することと、(2b)挿入点に隣接した少なくとも1つのグラフの点の特徴を調べることによって決定されたグラフの点の前又は後に、データを入力から出力へコピーするコピー処理を表す点を挿入することと、(2c)挿入点が最初に通信方法に結合していないとき、前記第1アクセス方法と前記第2アクセス方法と互換性を持つ通信方法を前記挿入点に結合させること、のうちの少なくとも1つを実行することにより行うグラフの準備と、
    (b)前記コンピュータシステムを使って、前記結合した通信方法と互換性を持つ通信チャンネルおよび/またはデータ記憶の組合せの作成と
    (c)前記コンピュータシステム上で前記第1処理と前記第2処理の実行を呼出すことによって行う前記第1処理および前記第2処理の開始と、
    を有することを特徴とする、コンピュータシステム上で、グラフとして表されたプログラムの操作を実行する方法。
  3. 前記グラフがさらに、操作の処理によって使用されるファイルを表す第3点を有することを特徴とする請求項2に記載の方法。
  4. 前記第3点がファイル点であることを特徴とする請求項3に記載の方法。
  5. 前記第1点が処理点であることを特徴とする請求項2に記載の方法。
  6. 前記リンクがデータリンクであることを特徴とする請求項2に記載の方法。
  7. (a)前記第1処理と前記第2処理が、コンピュータシステムの異なるノード上で実行し、
    (b)前記結合した通信方法がプロセッサ間の通信方法であることを特徴とする請求項2に記載の方法。
  8. 前記プロセッサ間の通信方法がTCP/lPであることを特徴とする請求項7に記載の方法。
  9. コンピュータシステム上で、グラフとして表されたプログラムの操作を実行する方法であって、前記グラフが、前記操作の第1処理を表す第1点と、前記操作の第1処理によって読まれたファイルを表す第2点と、前記第2点を前記第1点と接続し、前記ファイルから前記第1処理までのデータフローを表すリンクとを備え、
    前記第1点と前記第2点の各々がそれに関連した状態を有し前記第1点と前記リンク間の接続がそれに関連した第1アクセス方法を有し、前記第2点と前記リンク間の接続がそれに関連した第2アクセス方法を有し、前記方法が、
    (a)コンピュータシステム上で、グラフ変形ステップを実行するための条件が満たされていることを確認し、前記第1点と前記第2点の少なくとも一方が実行可能状態でなく、前記第1アクセス方法と前記第2アクセス方法の少なくとも一方が互換性を持つ通信方法と関連しないとき少なくとも前記第1点と前記第2点の各々が実行可能状態になり、且つ、前記第1アクセス方法と前記第2アクセス方法が互換性を持つ通信方法と関連するまで前記第1点と前記第2点と前記リンクの特徴を調べ、前記特徴に基づいて、グラフ変形ステップを選択的に実行することによって行う実行に備えたグラフの準備であって、
    前記グラフ変形ステップは、(1a)ファイルを表す点の状態を処理が終了したことを示す完全状態に設定することと、(1b)処理を表す点の状態を実行可能状態に設定することと、及び、(1c)処理を表す点の状態を実行不可能状態に設定することと、のうちの少なくとも1つを実行し、且つ、(2a)挿入点に隣接した少なくとも1つのグラフの点の特徴を調べることによって決定されたグラフの点の前又は後に、前記リンクを表わすデータ構造を修正、拡張又は置換するファイルを表す点を挿入することと、(2b)挿入点に隣接した少なくとも1つのグラフの点の特徴を調べることによって決定されたグラフの点の前又は後に、データを入力から出力へコピーするコピー処理を表す点を挿入することと、及び、(2c)挿入点が最初に通信方法に結合していないとき、前記第1アクセス方法と前記第2アクセス方法と互換性を持つ通信方法を前記挿入点に結合させることと、のうちの少なくとも1つを実行するグラフの準備と、
    (b)前記コンピュータシステムを使って、前記結合した通信方法と互換性を持つ通信チャンネルおよび/またはデータ記憶の組合せの作成と
    (c)前記第1処理の実行を呼出すことによって行う前記第1処理の開始と、
    を有することを特徴とする、コンピュータシステム上で、グラフとして表されたプログラムの操作を実行する方法。
  10. 前記グラフがさらに、操作の処理によって使用される、ファイルを表す第3点を有することを特徴とする請求項9に記載の方法。
  11. 前記第3点がファイル点であることを特徴とする請求項10に記載の方法。
  12. 前記第1点が処理点であることを特徴とする請求項9に記載の方法。
  13. 前記リンクがデータリンクであることを特徴とする請求項9に記載の方法。
  14. (a)前記第1処理と前記第2処理が、コンピュータシステムの異なるノード上で実行し、
    (b)前記結合した通信方法がプロセッサ間の通信方法であることを特徴とする請求項9に記載の方法。
  15. 前記プロセッサ間の通信方法がTCP/lPであることを特徴とする請求項14に記載の方法。
  16. コンピュータシステム上で、グラフとして表されたプログラムの操作を実行する方法であって、前記グラフが、操作処理を表す複数の点を有し、各点が関連するアクセス方法を有し、また、複数のリンクを有し、各リンクが少なくとも2つの点互いに接続し、接続した点間のデータフローを表し、さらに、
    (a)グラフをユーザ入力としてコンピュータ内に受付け、
    (b)コンピュータシステム上で、グラフ変形ステップを実行するための条件が満たされていることを確認し、幾つかの点が実行可能状態でなく、リンクによって接続された実行可能状態の点のアクセス方法が互換性を持つ通信方法と関連しないとき、少なくとも幾つかの点が実行可能状態になり、且つ、リンクによって接続された実行可能状態の点のアクセス方法が互換性を持つ通信方法と関連するまで、各点及びリンクの特徴を調べ、前記特徴に基づいて、(1)少なくとも幾つかの点の状態を或る値に設定し、且つ、(2a)リンクを、他のリンクに接続された点に接続されたリンクを含むアダプタによって置き換えること、及び、(2b)前記リンクをアダプタに置き換えると共に該置き換えられたアダプタが最初に通信方法に結合していないとき、隣接した複数の点のアクセス方法と互換性を持つ通信方法を前記アダプタに結合させること、の一方又は両方のグラフ変形ステップを選択的に行うことによって、グラフ変形ステップを実行することによって行う実行に備えたグラフを準備し、
    (c)コンピュータシステムを使って、前記結合した通信方法と互換性を持つ通信チャンネルおよび/またはデータ記憶の組合せを作成し
    (d)コンピュータシステム上で前記処理の実行を呼出すことにより実行可能状態処理の各々を開始し、
    (e)グラフとして表されたプログラムの操作全体がコンピュータシステム上で実行されるまで、ステップ(b)〜(d)を繰返す、
    ステップを有することを特徴とするコンピュータシステム上で、グラフとして表されたプログラムの操作を実行する方法。
  17. コンピュータシステムのハードウエア資源を有し、該ハードウエア資源を使用して、グラフとして表されたプログラムの操作を実行するシステムであって、前記グラフが、点を接続するリンクを有し、各々処理を表す複数の処理点と各々ファイルを表す複数のファイル点とを有し、
    (a)幾つかの点が実行可能状態でなく、リンクによって接続された実行可能状態の点のアクセス方法が互換性を持つ通信方法と関連しないとき、少なくとも幾つかの点が実行可能状態になり、且つ、リンクによって接続された実行可能状態の点のアクセス方法が互換性を持つ通信方法と関連するまで、前記各点と前記各リンクの特徴に基づいて、(1)少なくとも幾つかの点の状態を或る値に設定し、且つ、(2a)リンクを、他のリンクに接続された点に接続されたリンクを含むアダプタによって置き換えること、及び、(2b)前記リンクをアダプタに置き換えると共に該置き換えられたアダプタが最初に通信方法に結合していないとき、隣接した複数の点のアクセス方法と互換性を持つ通信方法を前記アダプタに結合させること、の一方又は両方を行うことによって、グラフ変形ステップを実行することによって行う実行に備えたグラフの準備をするための準備手段と、
    (b)前記結合した通信方法と互換性を持つ通信チャンネルおよび/またはデータ記憶の組合せを作成する作成手段と、
    (c)前記グラフの点によって表される処理を開始する開始手段と、
    を有することを特徴とする、コンピュータシステムのハードウエア資源を使用して、グラフとして表されたプログラムの操作を実行するシステム。
  18. 前記実行に備えグラフを準備するための準備手段が、
    (a)挿入点に隣接した少なくとも1つのグラフの点の特徴を調べることによって決定されたグラフの点の前又は後に、前記リンクを表わすデータ構造を修正、拡張又は置換するファイルを表す点を最低1つ挿入するための第1の挿入手段と、
    (b)挿入点に隣接した少なくとも1つのグラフの点の特徴を調べることによって決定されたグラフの点の前又は後に、データを入力から出力へコピーするコピー処理を表す点を最低1つ挿入するための第2の挿入手段と、
    (c)ファイルを表す点の最低1つを処理が終了したことを示す完全状態に設定するための第1の設定手段と、
    (d)処理を表す点の最低1つを実行可能状態に設定するための第2の設定手段と
    (e)処理を表す点の最低1つを実行不可能状態に設定するための第3の設定手段と
    を有することを特徴とする請求項17に記載のシステム。
JP50447298A 1996-07-02 1997-07-01 グラフとして表された操作の実行 Expired - Lifetime JP3717188B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/678,411 1996-07-02
US08/678,411 US5966072A (en) 1996-07-02 1996-07-02 Executing computations expressed as graphs
PCT/US1997/011630 WO1998000791A1 (en) 1996-07-02 1997-07-01 Executing computations expressed as graphs

Publications (2)

Publication Number Publication Date
JP2000514219A JP2000514219A (ja) 2000-10-24
JP3717188B2 true JP3717188B2 (ja) 2005-11-16

Family

ID=24722673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50447298A Expired - Lifetime JP3717188B2 (ja) 1996-07-02 1997-07-01 グラフとして表された操作の実行

Country Status (11)

Country Link
US (1) US5966072A (ja)
EP (1) EP0909417B1 (ja)
JP (1) JP3717188B2 (ja)
AT (1) ATE416421T1 (ja)
AU (1) AU3514697A (ja)
CA (1) CA2259362C (ja)
DE (1) DE69739143D1 (ja)
DK (1) DK0909417T3 (ja)
ES (1) ES2318858T3 (ja)
PT (1) PT909417E (ja)
WO (1) WO1998000791A1 (ja)

Families Citing this family (154)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909681A (en) 1996-03-25 1999-06-01 Torrent Systems, Inc. Computer system and computerized method for partitioning data for parallel processing
US7047232B1 (en) 1999-01-13 2006-05-16 Ab Initio Software Corporation Parallelizing applications of script-driven tools
US6584581B1 (en) * 1999-12-06 2003-06-24 Ab Initio Software Corporation Continuous flow checkpointing data processing
US7164422B1 (en) * 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US7093243B2 (en) * 2002-10-09 2006-08-15 International Business Machines Corporation Software mechanism for efficient compiling and loading of java server pages (JSPs)
US7167850B2 (en) 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7539220B2 (en) * 2003-02-03 2009-05-26 Asustek Computer Inc. Data discard signalling procedure in a wireless communication system
AU2004252918B2 (en) 2003-06-25 2009-12-10 Ab Initio Technology Llc. Computer-aided parallelizing of computation graphs
CN102982065B (zh) * 2003-09-15 2016-09-21 起元科技有限公司 数据处理方法、数据处理装置及计算机可读存储介质
US7877350B2 (en) * 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US7822615B2 (en) * 2005-06-27 2010-10-26 Ab Initio Technology Llc Translating expressions in a computing environment
US7584205B2 (en) 2005-06-27 2009-09-01 Ab Initio Technology Llc Aggregating data with complex operations
US7716630B2 (en) * 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US7231237B2 (en) * 2005-08-31 2007-06-12 Motorola, Inc. Wireless communication device with strategically positioned antenna
US7870556B2 (en) * 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
EP2527983A3 (en) * 2006-08-10 2013-06-12 Ab Initio Technology LLC Distributing services in graph-based computations
US8332827B2 (en) * 2006-12-01 2012-12-11 Murex S.A.S. Produce graph oriented programming framework with scenario support
US8307337B2 (en) * 2006-12-01 2012-11-06 Murex S.A.S. Parallelization and instrumentation in a producer graph oriented programming framework
US8191052B2 (en) * 2006-12-01 2012-05-29 Murex S.A.S. Producer graph oriented programming and execution
US7865872B2 (en) * 2006-12-01 2011-01-04 Murex S.A.S. Producer graph oriented programming framework with undo, redo, and abort execution support
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
US8843913B2 (en) * 2007-06-05 2014-09-23 Intel Corporation Dynamic linking and loading of post-processing kernels
KR101635945B1 (ko) * 2007-07-26 2016-07-04 아브 이니티오 테크놀로지 엘엘시 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템
CA2698265C (en) * 2007-09-20 2017-08-29 Craig W. Stanfill Managing data flows in graph-based computations
JP4941365B2 (ja) * 2008-03-13 2012-05-30 オムロン株式会社 産業用コントローラ
CN102138139B (zh) * 2008-06-30 2014-12-17 起元技术有限责任公司 基于图的计算中的数据日志记录
KR101607178B1 (ko) 2008-10-23 2016-03-29 아브 이니티오 테크놀로지 엘엘시 데이터 조작 수행, 데이터 품질 측정, 또는 데이터 요소 결합을 위한 방법, 시스템, 및 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체
AU2009322602B2 (en) * 2008-12-02 2015-06-25 Ab Initio Technology Llc Mapping instances of a dataset within a data management system
EP2391938A4 (en) 2009-01-30 2016-06-08 Ab Initio Technology Llc DATA PROCESSING WITH VECTOR FIELDS
JP5430164B2 (ja) * 2009-01-30 2014-02-26 キヤノン株式会社 データ管理方法及び装置
CN102395950B (zh) * 2009-02-13 2016-03-16 起元技术有限责任公司 与数据存储系统的通信
CA2750279C (en) 2009-02-13 2019-03-26 Ab Initio Technology Llc Managing task execution
US8832156B2 (en) * 2009-06-15 2014-09-09 Microsoft Corporation Distributed computing management
WO2011005881A1 (en) * 2009-07-07 2011-01-13 Howard Robert S System and method of automatically transforming serial streaming programs into parallel streaming programs
US8205113B2 (en) * 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
EP2478433A4 (en) 2009-09-16 2016-09-21 Ab Initio Technology Llc MAPPING DATA SET ELEMENTS
US8667329B2 (en) 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
KR101862235B1 (ko) * 2009-12-14 2018-05-29 아브 이니티오 테크놀로지 엘엘시 사용자 인터페이스 요소 지정
US8782429B2 (en) 2009-12-23 2014-07-15 Ab Initio Technology Llc Securing execution of computational resources
US9665620B2 (en) * 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US8676818B2 (en) * 2010-05-03 2014-03-18 International Business Machines Corporation Dynamic storage and retrieval of process graphs representative of business processes and extraction of formal process models therefrom
US9268615B2 (en) 2010-05-28 2016-02-23 Microsoft Technology Licensing, Llc Distributed computing using communities
US8572229B2 (en) 2010-05-28 2013-10-29 Microsoft Corporation Distributed computing
EP3287896B1 (en) 2010-06-15 2023-04-26 Ab Initio Technology LLC Dynamically loading graph-based computations
US20110314075A1 (en) * 2010-06-18 2011-12-22 Nokia Corporation Method and apparatus for managing distributed computations within a computation space
US8775447B2 (en) 2010-06-22 2014-07-08 Ab Initio Technology Llc Processing related datasets
CN103069394B (zh) 2010-08-25 2016-06-22 起元技术有限责任公司 评估数据流图的特征
US8707275B2 (en) * 2010-09-14 2014-04-22 Microsoft Corporation Simulation environment for distributed programs
CN103180826B (zh) 2010-10-25 2017-04-05 起元技术有限责任公司 在代表计算机程序的数据流图中管理数据集对象
KR101872748B1 (ko) 2011-01-14 2018-06-29 아브 이니티오 테크놀로지 엘엘시 데이터 콜렉션에 대한 변경 관리 방법
KR101889120B1 (ko) 2011-01-28 2018-08-16 아브 이니티오 테크놀로지 엘엘시 데이터 패턴 정보 생성
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
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
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
EP2877943B1 (en) 2012-07-24 2021-03-03 AB Initio Technology LLC Mapping entities in data models
US8954529B2 (en) 2012-09-07 2015-02-10 Microsoft Corporation Smart data staging based on scheduling policy
US9852153B2 (en) 2012-09-28 2017-12-26 Ab Initio Technology Llc Graphically representing programming attributes
US10489360B2 (en) 2012-10-17 2019-11-26 Ab Initio Technology Llc Specifying and applying rules to data
KR102129643B1 (ko) 2012-10-22 2020-07-02 아브 이니티오 테크놀로지 엘엘시 소스 추적으로 데이터 프로파일링
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
WO2014107318A1 (en) 2013-01-03 2014-07-10 Ab Initio Technology Llc Configurable testing of computer programs
US9892026B2 (en) 2013-02-01 2018-02-13 Ab Initio Technology Llc Data records selection
US9811233B2 (en) 2013-02-12 2017-11-07 Ab Initio Technology Llc Building applications for configuring processes
CN105164639B (zh) 2013-04-23 2018-11-09 起元科技有限公司 控制由计算系统执行的任务
WO2014186673A2 (en) 2013-05-17 2014-11-20 Ab Initio Technology Llc Managing memory and storage space for a data operation
US9984482B2 (en) * 2013-08-23 2018-05-29 Ab Initio Technology Llc Graphical user interface having enhanced tool for connecting components
KR102349573B1 (ko) 2013-09-27 2022-01-10 아브 이니티오 테크놀로지 엘엘시 데이터에 적용되는 규칙 평가
US10776325B2 (en) * 2013-11-26 2020-09-15 Ab Initio Technology Llc Parallel access to data in a distributed file system
CA3128713C (en) 2013-12-05 2022-06-21 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
KR102186050B1 (ko) 2013-12-06 2020-12-03 아브 이니티오 테크놀로지 엘엘시 소스 코드 번역
CN106104468B (zh) 2013-12-13 2020-03-10 起元技术有限责任公司 动态地确定数据处理应用程序的模式
US11487732B2 (en) 2014-01-16 2022-11-01 Ab Initio Technology Llc Database key identification
US9575639B2 (en) 2014-02-27 2017-02-21 Ab Initio Technology Llc Compound controls
US9971798B2 (en) 2014-03-07 2018-05-15 Ab Initio Technology Llc Managing data profiling operations related to data type
WO2015139018A1 (en) 2014-03-14 2015-09-17 Ab Initio Technology Llc Mapping attributes of keyed entities
US9607073B2 (en) 2014-04-17 2017-03-28 Ab Initio Technology Llc Processing data from multiple sources
WO2015161236A1 (en) * 2014-04-17 2015-10-22 Ab Initio Technology Llc Integrated monitoring and control of processing environment
US10705877B2 (en) 2014-05-29 2020-07-07 Ab Initio Technology Llc Workload automation and data lineage analysis
EP3191962B1 (en) 2014-07-18 2019-12-11 AB Initio Technology LLC Managing parameter sets
CA2956078C (en) 2014-07-24 2021-12-07 Ab Initio Technology Llc Data lineage summarization
US9760406B2 (en) 2014-09-02 2017-09-12 Ab Initio Technology Llc Controlling data processing tasks
US9933918B2 (en) 2014-09-02 2018-04-03 Ab Initio Technology Llc Specifying control and data connections in graph-based programs
SG11201701651SA (en) 2014-09-02 2017-04-27 Ab Initio Technology Llc Managing execution state of components in a graph-based program specification for controlling their associated tasks
KR20170046777A (ko) 2014-09-02 2017-05-02 아브 이니티오 테크놀로지 엘엘시 데이터 처리 태스크의 제어
JP6479966B2 (ja) 2014-09-02 2019-03-06 アビニシオ テクノロジー エルエルシー ユーザインタラクションを通じたグラフに基づくプログラム内の構成要素のサブセットの視覚的な規定
JP6626497B2 (ja) 2014-09-02 2019-12-25 アビニシオ テクノロジー エルエルシー タスクの呼び出しの管理
JP6467497B2 (ja) 2014-09-02 2019-02-13 アビニシオ テクノロジー エルエルシー 特定のデータポートの接続の特定に基づいてグラフの構成要素の自動化されたクラスタリングによるグラフに基づくプログラムの仕様のコンパイル
EP3189422A1 (en) 2014-09-02 2017-07-12 AB Initio Technology LLC Executing graph-based program specifications
US9626393B2 (en) 2014-09-10 2017-04-18 Ab Initio Technology Llc Conditional validation rules
US9880818B2 (en) 2014-11-05 2018-01-30 Ab Initio Technology Llc Application testing
US10055333B2 (en) 2014-11-05 2018-08-21 Ab Initio Technology Llc Debugging a graph
US11531775B2 (en) 2014-11-05 2022-12-20 Ab Initio Technology Llc Database security
US10176234B2 (en) 2014-11-05 2019-01-08 Ab Initio Technology Llc Impact analysis
US11126598B1 (en) 2014-11-06 2021-09-21 Ab Initio Technology Llc Techniques for performing lifecycle operations on a data store
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
US20160205172A1 (en) * 2015-01-08 2016-07-14 Futurewei Technologies, Inc. Offloading graph based computations to a backend device
WO2016130615A1 (en) 2015-02-11 2016-08-18 Ab Initio Technology Llc Filtering data lineage diagrams
CA2983080C (en) 2015-02-11 2021-01-19 Ab Initio Technology Llc Filtering data lineage diagrams
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US9684526B2 (en) 2015-05-15 2017-06-20 Ab Initio Technology Llc Techniques for configuring a generic program using controls
US10409802B2 (en) 2015-06-12 2019-09-10 Ab Initio Technology Llc Data quality analysis
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
US10120744B1 (en) * 2015-11-20 2018-11-06 VCE IP Holding Company LLC Graph execution system and method for a computing environment
US10210236B2 (en) 2015-11-23 2019-02-19 Ab Initio Technology Llc Storing and retrieving data of a data cube
US10503562B2 (en) 2015-12-17 2019-12-10 Ab Initio Technology Llc Processing data using dynamic partitioning
CA3005263C (en) 2015-12-21 2021-06-15 Ab Initio Technology Llc Sub-graph interface generation
US11989096B2 (en) 2015-12-21 2024-05-21 Ab Initio Technology Llc Search and retrieval data processing system for computing near real-time data aggregations
US10579753B2 (en) * 2016-05-24 2020-03-03 Ab Initio Technology Llc Executable logic for processing keyed data in networks
US10936289B2 (en) 2016-06-03 2021-03-02 Ab Initio Technology Llc Format-specific data processing operations
WO2018089633A1 (en) 2016-11-09 2018-05-17 Ab Initio Technology Llc Systems and methods for determining relationships among data elements
US10802945B2 (en) 2016-12-07 2020-10-13 Ab Initio Technology Llc Differencing of executable dataflow graphs
AU2017373882B2 (en) 2016-12-08 2020-04-02 Ab Initio Technology Llc Computational resource allocation
JP7216654B2 (ja) 2017-03-29 2023-02-01 アビニシオ テクノロジー エルエルシー 可変レベル並列性を用いたデータ処理動作を行うためのシステム及び方法
US10379825B2 (en) 2017-05-22 2019-08-13 Ab Initio Technology Llc Automated dependency analyzer for heterogeneously programmed data processing system
CN107621934B (zh) * 2017-07-28 2020-11-03 中国人民解放军国防信息学院 基于组件化、图形化算子的评估指标计算方法及装置
US10817310B2 (en) 2017-09-01 2020-10-27 Ab Initio Technology Llc Executing graph-based program specifications
US11423083B2 (en) 2017-10-27 2022-08-23 Ab Initio Technology Llc Transforming a specification into a persistent computer program
CA3078476C (en) 2017-10-31 2022-10-18 Ab Initio Technology Llc Managing a computing cluster using durability level indicators
US11055074B2 (en) 2017-11-13 2021-07-06 Ab Initio Technology Llc Key-based logging for processing of structured data items with executable logic
US11188434B2 (en) 2017-12-08 2021-11-30 Ab Initio Technology Llc Systems and methods for monitoring execution of structured query language (SQL) queries
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
US10817406B2 (en) 2018-03-30 2020-10-27 Ab Initio Technology Llc Debugging an executable control flow graph that specifies control flow
CA3102118A1 (en) 2018-05-30 2019-12-05 Ab Initio Technology Llc Systems and methods for dataflow graph optimization
US10990364B2 (en) 2018-06-06 2021-04-27 Ab Initio Technology Llc Updating executable graphs
US10978176B2 (en) 2018-06-29 2021-04-13 pulseData Inc. Machine learning systems and methods for predicting risk of renal function decline
AU2019307745B2 (en) 2018-07-19 2024-04-04 Ab Initio Technology Llc Publishing to a data warehouse
US11561993B2 (en) 2018-08-08 2023-01-24 Ab Initio Technology Llc Generating real-time aggregates at scale for inclusion in one or more modified fields in a produced subset of data
AU2019346562B2 (en) 2018-09-25 2023-08-10 Ab Initio Technology Llc A dedicated audit port for implementing recoverability in outputting audit data
CA3127444A1 (en) 2019-01-22 2020-07-30 Ab Initio Technology Llc Finite state machines for implementing workflows for data objects managed by a data processing system
US11836505B2 (en) 2019-05-07 2023-12-05 Ab Initio Technology Llc Dynamic distribution of container images
US10996946B2 (en) 2019-05-22 2021-05-04 Ab Initio Technology Llc Static and runtime analysis of computer program ecosystems
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
US20210191845A1 (en) 2019-12-23 2021-06-24 Ab Initio Technology Llc Unit testing of components of dataflow graphs
JP2023511631A (ja) 2020-01-28 2023-03-20 アビニシオ テクノロジー エルエルシー 計算グラフを生成するためのエディタ
US11210285B2 (en) 2020-03-06 2021-12-28 Ab Initio Technology Llc Generation of optimized logic from a schema
CA3175395A1 (en) 2020-05-19 2021-11-25 Craig W. Stanfill Optimizing communication in distributed computing network
CN116018581A (zh) 2020-09-04 2023-04-25 起元技术有限责任公司 变换计算机程序的操作以供在数据库处执行
CA3206880A1 (en) 2021-01-31 2022-08-04 Ab Initio Technology Llc Systems and methods for accessing data entities managed by a data processing system
AU2022213420A1 (en) 2021-01-31 2023-07-27 Ab Initio Technology Llc Dataset multiplexer for data processing system
JP2024505238A (ja) 2021-01-31 2024-02-05 アビニシオ テクノロジー エルエルシー 論理データセットグループの操作を伴うデータ処理システム
EP4285233A1 (en) 2021-01-31 2023-12-06 Ab Initio Technology LLC Techniques for managing data in a data processing system using data entities and inheritance
DE112022001179T5 (de) 2021-02-24 2024-01-04 Ab Initio Technology Llc Systeme und Verfahren zum Verwalten von Berechtigungen in einem Datenverarbeitungssystem
US20220391257A1 (en) 2021-06-04 2022-12-08 Ab Initio Technology Llc Dynamic Computational Resource Allocation
US20230093911A1 (en) 2021-09-30 2023-03-30 Ab Initio Technology Llc Systems and methods for performing data processing operations using variable level parallelism
WO2023060170A2 (en) 2021-10-08 2023-04-13 Ab Initio Technology Llc Automated modification of computer programs
WO2023215028A1 (en) 2022-05-05 2023-11-09 Ab Initio Technology Llc Dataflow graph datasets
US20240070163A1 (en) * 2022-08-23 2024-02-29 Ab Initio Technology Llc Operationalizing metadata
WO2024044041A1 (en) 2022-08-23 2024-02-29 Ab Initio Technology Llc Operationalizing metadata

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0567699A1 (en) * 1992-04-30 1993-11-03 Hewlett-Packard Company Object based system
US5430870A (en) * 1992-10-13 1995-07-04 Sun Microsystems, Inc. Saving and restoring traversal state attributes of a directed acyclic graph structure network for a parent structure when it invokes a child structure for traversal

Also Published As

Publication number Publication date
EP0909417A1 (en) 1999-04-21
DK0909417T3 (da) 2009-02-02
JP2000514219A (ja) 2000-10-24
WO1998000791A1 (en) 1998-01-08
AU3514697A (en) 1998-01-21
DE69739143D1 (de) 2009-01-15
PT909417E (pt) 2009-02-13
CA2259362C (en) 2002-06-11
ES2318858T3 (es) 2009-05-01
EP0909417B1 (en) 2008-12-03
ATE416421T1 (de) 2008-12-15
EP0909417A4 (en) 2007-05-09
CA2259362A1 (en) 1998-01-08
US5966072A (en) 1999-10-12

Similar Documents

Publication Publication Date Title
JP3717188B2 (ja) グラフとして表された操作の実行
O'Kane A gentle introduction to ROS
US6253369B1 (en) Workflow object compiler with user interrogated information incorporated into skeleton of source code for generating executable workflow objects
US5339435A (en) Heterogenous software configuration management apparatus
US5909689A (en) Automatic update of file versions for files shared by several computers which record in respective file directories temporal information for indicating when the files have been created
US6651240B1 (en) Object-oriented software development support apparatus and development support method
JP3636744B2 (ja) 分散システムおよび分散システムの自動運転スケジュールの作成方法
JPH0744373A (ja) 原始モジュール等に加えられた変更を制御する方法と装置
JP2001511555A (ja) ソフトウエアシステムの生成
AU2002337927A1 (en) A generic connector between vitria and an EJB compliant API for an application
EP1440367A1 (en) A generic connector between vitria and an ejb compliant api for an application
JPH04229357A (ja) 異種ネットワーク環境における適用業務プログラムの統合システム
JPH09259153A (ja) バッチ実行制御プログラム作成装置及び方法
JPH0863342A (ja) プログラム管理方法および装置
US8472034B2 (en) Job control device, job control file, job control method, and job control program
US20040003383A1 (en) Stripping of unnecessary information from source code
JP2005108082A (ja) デバイスドライバのインターフェース方法
US20050108727A1 (en) Application binding in a network environment
JP5251197B2 (ja) メッセージ処理方法、メッセージ処理装置、及びプログラム
KR20010112690A (ko) 컴퓨터 프로그램 개발 자원을 네트워크 상에서 연동하는방법
WO2001071502A1 (en) Method of and system for testing software in computers
JP2000235496A (ja) コンパイル処理方法、コンパイル処理装置、記録媒体およびクライアントサーバシステム
JPH0256666A (ja) ジョブネットワーク一元管理システム生成情報動的更新方式
JP3741561B2 (ja) エージェント簡易作成装置及びエージェント簡易作成方法
JP2002014846A (ja) ジョブ検査装置、ジョブ検査方法、及びジョブ検査プログラムを記録した記録媒体

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20031219

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040324

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041029

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20041216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050111

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050408

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050708

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050830

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090909

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110909

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110909

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120909

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120909

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130909

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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