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

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

Info

Publication number
JP2000514219A
JP2000514219A JP10504472A JP50447298A JP2000514219A JP 2000514219 A JP2000514219 A JP 2000514219A JP 10504472 A JP10504472 A JP 10504472A JP 50447298 A JP50447298 A JP 50447298A JP 2000514219 A JP2000514219 A JP 2000514219A
Authority
JP
Japan
Prior art keywords
point
link
graph
file
computer system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP10504472A
Other languages
English (en)
Other versions
JP3717188B2 (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

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)
  • Stored Programmes (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Image Generation (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)

Abstract

(57)【要約】 操作を直接呼出すためにグラフを使用する方法および装置(200)である。本発明は、処理(1040)間で情報の移動のために、グラフ上の個々の処理(1040)に、また個々の処理から情報を得る方法を提供する。これによりアプリケーションライタは、処理(1040)がどのようにして必要なデータにアクセスすべきかを、本発明を採用したシステム(110、122)に伝えることができる。本発明では、処理に、また処理からの情報獲得を補助するために、必要に応じて「アダプタ処理」を追加する。

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処理間でのデータ転送に使用するP oint-to-Point通信チャンネルである。TCP/IPストリームの確立には、2つの処理 が接続を確立するプロトコルを使用することが必須となる。このようなプロトコ ルの多くは一般に使用されているが、そのほとんどがこのシステムで必要とする Peer-to-Peer接続ではなくクライアント/サーバ型接続の確立を目的としている 。 拡張された基構は共用メモリと呼ばれるチャンネルのある追加タイプを提供す る。共用メモリは、複数の処理からのアクセスが可能で、既知の方法でデータを 転送するために使用されるメモリのプールである。共用メモリチャンネルは、同 期アクセスのための機構を含む。共用メモリは同一ノード上の処理間でのデータ 転送にも適用でき、また名前付きパイプ用の効率的な代用品である。 本発明と共に使用するために、拡張した基構のTCP/IP接続プロトコルはPeer-t o-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週間分のタイムシートとを含むアップデートファイル11 2である。旧マスタファイル110は従業員IDによって記憶されている。グラフは以 下のデータフローを示す。 (1)アップデートファイル112がステップ114においてソートされる。 (2)ステップ116においてアップデートがチェックされ、不良レコードは不良レコ ードファイル118に入れられる。 (3)新規マスタファイル122と1組のペイチェック124とを作成するために、ステッ プ120において、ステップ116からのアップデートと旧マスタファイル110が処理 される。 処理点 処理点は次の情報を含んでいる。 ・処理点識別子 ・プログラムテンプレート ・作業ディレクトリ(すなわちスクラッチファイルが作成されるディレクトリ) を識別する作業ディレクトリ識別子 ・作業ノード(すなわち処理が実行されるノード)を識別する作業ノード識別子 ・Disabled、Enabled、Runnable、Unrunnable、Done(最初はDisabled)のいず れかの値を持つ状態変数。 ・点がアダプタ点(後に説明する)であるかどうかを示すフラグ 次に示す表は、第1a図に示したソース、チェック、プロセス処理(プログラム )のための3処理点のコンテンツを表すものである。 ファイル点 ファイル点はファイルに関連し、次の情報を含む。 ・ファイル点識別子 ・データノード識別子 ・データファイル識別子 ・作業ノードを識別する作業ノード識別子であり、ファイル(これは通常データ ノードと一致する)へのアクセスを望むプログラムによって使用されることがで きる ・ファイルへのアクセスを望むプログラムが、どこでスクラッチファイル(これ は通常データファイルが入っているのと同じファイルシステム内にある)を作成 できるかを識別する作業ディレクトリ識別子 ・Complete、Incomplete(最初はIncomplete)のいずれか1つを持つ状態変数 操作基構がファイル以外のデータ記憶を備えている場合、ファイル点内の情報 は、データ記憶のタイプと、それを識別および使用するために必要とされる情報 を表示するインジケータを含むように拡張される。 次の表は、第1a図のグラフで示したファイルに対する5つのファイル点である 。 データリンク データリンク(または短く単に「リンク」)は以下の情報を含む。 ・送信元点-ファイル点または処理点のいずれか ・送信元ポート識別子-送信元がファイル点の場合、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、1 42、144である。 プログラムテンプレート 処理点はプログラムテンプレートを含む。プログラムテンプレートは次の2つ の、プログラムに関するベーシックタイプの情報を含む。(1)プログラムを呼出 すために必要な情報、例えばプログラム名、コマンド回線引数、環境変数。そし て(2)プログラムがデータにアクセスするための手段を記述するポート記述子の 列。呼出し情報の正確な形は操作基構に依る。既述のUNIXベースの基構用に、プ ログラム名は実行可能ファイル名と、スペースによって離間した列から成るコマ ンド回線引数である。これらの列のいくつかは”$portname”の形であってよく 、ここで”portname”はテンプレート内の1ポートの名前であり、またここで、 そのポートはファイルインタフェースあるいはストリームインタフェースデータ アクセス方法を使用しなければならない。この場合、文字列”$portname”は呼 出しの際に、ファイル名またはポートと接続した名前付きパイプで置換えられる 。 次の表は、第1b図のグラフ130に示した3つのプログラム(処理)のための図形的 プログラムテンプレートのコンテンツを示すものである。 プログラムの呼出しに必要な情報は2つの形で供給されてもよい。情報はまず 、上の表に示したプログラムテンプレートに正確に記憶されなければならない。 次に、この情報は動的に生成されてもよく、この場合、情報を生成するルーチン のアドレスがプログラムテンプレートに記憶される。 プログラムテンプレート内のポート記述子は、上の表の最右端に3つの要素と して示した次の情報を含む。 ・ポートのポート識別子 ・ポートが入力に使用されているか出力に使用されているかの表示 ・どの通信方法がポートに受理可能かを示す、ReqsSFile、ReqsNamedPipe、Reqs FDまたは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はグラフ点のあらゆる対間にデータリンクを作成する ことができる。好ましい実施例において、ソースポート識別子は省略値としてOu tputをとり、宛先ポート識別子は省略値として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状態に移行する。Ru nnable状態の処理点がない場合、クリーンアップステップIが実行され、制御がc aller(例えば、ドライバ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アクセスと互換性を持ち、Name dPipeと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)、その状態をCompl eteに設定する(ステップ534)。 (4)Unrunnable処理点の識別 次に第5d図を参照する。Unrunnable処理点を識別するには、グラフ内の全リン クに対して下記のステップを実行する(ステップ540)。”Unrunnability”テス トを下記のとおり実行する(ステップ542)。リンクのソースがIncompleteファ イル点であり、その宛先がEnabled状態の処理点である場合には、処理点の状態 をUnrunnableに設定し(ステップ544)、ソースがEnabled以外の状態にある処理 点であり、宛先がEnabled状態の処理点である場合には、宛先処理点をUnrunnabl eとマークする(ステップ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の中に考慮されてもよい。上 述した制約を満たす第lの方法が選択される(ステップ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に ついて打診し、入力としてファイルが必要であると見る。その結果、ステップ45 0が宛先ファイルアダプタ1002を挿入する(第11図)。 次に、ステップ452を実行する。我々が、ノード2上のUpdateファイル1000 からノード1上のTemporaryファイル1002へのリンクを有することに注意すること 。従って、ソースと宛先通信アプリケーション(コピー1004、コピー1006)の両 方がこのリンクに挿入される(第12図)。 次に、ステップ454において、我々は完全ファイル点(Update 1000とOld Mast er 1050)を識別する。これが終わると、ステップ456において、アップストリー ムに不完全ファイルが存在するために実行不可能な処理点を探す。Sortプログラ ム1010が見つかり、この基準が満たされる。ステップ458において、我々は、ア ップストリームに実行可能処理点および/または完全ファイルのみを有するため に実行可能な処理点を識別する。2つのコピープログラム1004、1006(すなわち 、ステップ452において挿入された通信アダプタ)はこの基準を満たし、実行可 能とマークされる。残りの全てのノードは実行不可能とマークされる。最後に、 実行可能処理点に接続したこれらのリンクに対して通信方法を選択する。これら のファイルに対してFile方法が選択され、また、2つのコピープログラム1004、1 006(それぞれ異なるノード上にある)の間のリンクに対してTCP/IPが選択され る。 これにより、第13図に示した状況になる(実行可能/完全とマークされていな い点は、実行不可能/不完全であり、通信方法とマークされていないリンクは接 続されていない)。 現在、グラフは実行可能である。リンクファイルが作成され(図示せず)、指 定されたリンクが開始され、実行可能な処理点が開始される。全ての処理が終了 すると、システムは、指定されたリンクを非開始とし、処理点の状態を「実行可 能」から「終了」に変更することにより「クリーンアップ」を行う。この場合の 結果を第14図に示す。 次にシステムは全処理が終了していないと決定し、新たに実行を繰返す。まず 、システムは前と同様にグラフを準備する。Temp File 1002が完全であることを 記述することから始まる。次に、システムは実行不可能な処理点がないと決定す る。最後に、実際に全ての処理点が実行可能であることを決定する。この場合の 結果を第15図に示す。 次は通信方法の選択(ステップ464)である。まず、Temp File 1002、Bad 103 0、Paychecks 1060がFileに設定される。これは、Temp File 1002、Bad 1030、P aychecks 1060がファイルと実行可能処理点を接続し、ノード境界を横切らない ためである。次に、Check 1020に接続した残りのリンクがNamedPipeに設定され る。これはCheck 1020が名前付きパイプを要求し、これらのリンクがノード境界 を横切らないためである。 これにより、OldMaster 1050とNewMaster 1070とProcess 1040が接続され、フ ァイルと、異なるノード上で実行中の処理とが接続される。どちらの場合も、Co py 1042とCopy 1044と示したステップ466への通信アダプタの挿入が必要である 。両アダプタはNode 1で実行する。ある通信方法が選択され(ファイルに接続し ているリンクにはFile、ノード境界を横切るリンクにはTCP/IP)、第16図に示す グラフが得られる。 グラフは再び実行に備えて準備される。システムはリンクファイルを作成し、 リンクと処理を開始し、待ち、クリーンアップする。この時点で全ての処理点は 「終了」であるため、グラフの実行が終了する。 プログラム実行 本発明はハードウェアやソフトウェア、または両方の組合せにおいて実行され る。しかしながら、本発明はコンピュータプログラム、データ記憶システム(揮 発性および不揮発性メモリおよび/または記憶要素)、最低1つの入力装置、最低 1つの出力装置で実行されることが好ましい。本明細書中で説明した機能を実行 するためにプログラムコードが入力データに適用され、出力情報を生成する。出 力情報は1つ以上の出力装置に従来の方法で適用される。 各プログラムは、コンピュータシステムと通信するために、高レベルの手続ま たはオブジェクト指向プログラミング言語において実行されることが好ましい。 しかしながら、所望であれば、プログラムはアセンブリまたは機械言語において 実行されてもよい。いずれの場合も、言語はコンパイルされた、または翻訳され た言語であってよい。 このようなコンピュータプログラムの各々は、一般または特殊目的プログラム 可能コンピュータによって読取りが可能な記憶媒体あるいは装置(例えば、ROM や磁気ディスケット)に記憶されることが好ましい。これは、本明細書中で説明 した手続を実行するために記憶媒体あるいは装置がコンピュータによって読取ら れる際に、コンピュータを構成、操作するためである。本発明のシステムはまた 、コンピュータプログラムと共に構成された、コンピュータ読取り可能記憶媒体 として実行されると考慮されてもよい。ここで記憶媒体は、コンピュータを、こ こで説明した機能を特定の、予め画定された方法で実行するように動作させるよ うに構成されている。 本発明の多くの実施例を説明した。しかし、本発明の精神と範囲を逸脱しない 限り様々な改良が可能であることが理解されるであろう。従って、本発明は特定 の例証的実施例によってではなく、添付の請求の範囲によってのみ限定されるも のであることが理解されるであろう。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(GH,KE,LS,MW,S D,SZ,UG,ZW),EA(AM,AZ,BY,KG ,KZ,MD,RU,TJ,TM),AL,AM,AT ,AU,AZ,BA,BB,BG,BR,BY,CA, CH,CN,CU,CZ,DE,DK,EE,ES,F I,GB,GE,GH,HU,IL,IS,JP,KE ,KG,KP,KR,KZ,LC,LK,LR,LS, LT,LU,LV,MD,MG,MK,MN,MW,M X,NO,NZ,PL,PT,RO,RU,SD,SE ,SG,SI,SK,SL,TJ,TM,TR,TT, UA,UG,UZ,VN,YU,ZW (72)発明者 ラッサー,クリフォード,エー. アメリカ合衆国 02138 マサチューセッ ツ州,ケンブリッジ,アテンズ ストリー ト 6 (72)発明者 ローディ,ロバート,ディー. アメリカ合衆国 01778 マサチューセッ ツ州,ウェイランド,バウ ロード 33

Claims (1)

  1. 【特許請求の範囲】 1. コンピュータシステム上で、グラフとして表された操作を実行する方法で あって、前記グラフが、前記操作の第1処理を表す第1点と、前記操作の第2処理 を表す第2点と、前記第1点を前記第2点と接続し、前記第1点と前記第2点間のデ ータフローを表すリンクとを備え、 前記第1点と前記第2点の各々がそれに関連した状態を有し、前記リンクがそれ に関連した通信方法を有し、前記第1点と前記リンク間の接続がそれに関連した 第1アクセス方法を有し、前記第2点と前記リンク間の接続がそれに関連した第2 アクセス方法を有し、前記方法が、 (a)コンピュータシステム上で、少なくとも前記第1点と前記第2点の各々が実行 可能状態になり、前記リンクが、前記第1アクセス方法と前記第2アクセス方法と 互換性を持つ特定の通信方法と関連するまで、グラフ変形ステップを実行するこ とによって行う実行に備えたグラフの準備と、 (b)前記コンピュータシステムを使って、前記リンクの前記通信方法と互換性を 持つ通信チャンネルおよび/またはデータ記憶の組合せを作成することによって 行うリンクの開始と、 (c)前記コンピュータシステム上で前記第1処理と前記第2処理の実行を呼出すこ とによって行う前記第1処理および前記第2処理の開始と、 を有することを特徴とする、コンピュータシステム上で、グラフとして表された 操作を実行する方法。 2. コンピュータシステム上で、グラフとして表された操作を実行する方法で あって、前記グラフが、前記操作の第1処理を表す第1点と、前記操作の第2処理 を表す第2点と、前記第1点を前記第2点と接続し、前記第1点と前記第2点間のデ ータフローを表すリンクとを備え、 前記第1点と前記第2点の各々がそれに関連した状態を有し、前記リンクがそれ に関連した通信方法を有し、前記第1点と前記リンク間の接続がそれに関連した 第lアクセス方法を有し、前記第2点と前記リンク間の接続がそれに関連した第2 アクセス方法を有し、前記方法が、 (a)ステップのグループから選択したステップを含むグラフ変形ステップを実行 することによって実行に備えたグラフの準備であって、前記ステップのグループ が、ファイルを表す点を挿入し、コピー処理を表す点を挿入し、ファイルを表す 点の状態を完全状態へ設定し、処理を表す点の状態を実行可能状態に設定し、リ ンクの通信方法を、少なくとも前記第1点と前記第2点の各々が実行可能状態にな り、前記リンクが、前記第1アクセス方法および前記第2アクセス方法と互換性を 持つ特定の通信方法と関連するまで設定し、 (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/IPであることを特徴とする請求の範囲 7に記載の方法。 9. コンピュータシステム上で、グラフとして表された操作を実行する方法で あって、前記グラフが、前記操作の第1処理を表す第1点と、前記操作の第2処理 を表す第2点と、前記第1点を前記第2点と接続し、前記第1点と前記第2点間のデ ータフローを表すリンクとを備え、 前記第1点と前記第2点の各々がそれに関連した状態を有し、前記リンクがそれ に関連した通信方法を有し、前記第1点と前記リンク間の接続がそれに関連した 第1アクセス方法を有し、前記第2点と前記リンク間の接続がそれに関連した第2 アクセス方法を有し、前記方法が、 (a)ステップのグループから選択したステップを含むグラフ変形ステップを実行 することによって実行に備えたグラフの準備であって、前記ステップのグループ が、ファイルを表す点を挿入し、コピー処理を表す点を挿入し、ファイルを表す 点の状態を完全状態へ設定し、処理を表す点の状態を実行可能状態に設定し、リ ンクの通信方法を、少なくとも前記第1点実行可能状態になり、前記第2点が完全 状態になり、前記リンクが、前記第1アクセス方法および前記第2アクセス方法と 互換性を持つ特定の通信方法と関連するまで設定し、 (b)前記コンピュータシステムを使って、前記リンクの前記通信方法と互換性を 持つ通信チャンネルおよび/またはデータ記憶の組合せを作成することによって 行うリンクの開始と、 (c)前記コンピュータシステム上で前記第l処理の実行を呼出すことによって行う 前記第1処理の開始と、 を有することを特徴とする、コンピュータシステム上で、グラフとして表された 操作を実行する方法。 10. 前記グラフがさらに、操作の処理によって使用される、ファイルを表す第 3点を有することを特徴とする請求の範囲9に記載の方法。 11. 前記第3点がファイル点であることを特徴とする請求の範囲10に記載の方 法。 12. 前記第1点が処理点であることを特徴とする請求の範囲9に記載の方法。 13. 前記リンクがデータリンクであることを特徴とする請求の範囲9に記載の 方法。 14.(a)前記第1処理と前記第2処理が、コンピュータシステムの異なるノード 上で実行し、 (b) 前記特定の通信方法がプロセッサ間の通信方法であることを特徴とする 請求の範囲9に記載の方法。 15. 前記プロセッサ間の通信方法がTCP/IPであることを特徴とする請求の範囲 14に記載の方法。 16. コンピュータシステム上で、グラフとして表された操作を実行する方法で あって、前記グラフが、操作処理を表す複数の点を有し、各点が関連するアクセ ス方法を有し、また、複数のリンクを有し、各リンクが少なくとも2つの点と互 いに接続し、接続した点間のデータフローを表し、さらに、 (a)グラフをユーザ入力としてコンピュータ内に受付け、 (b)コンピュータシステム上で、少なくとも点のいくつかが実行可能状態にな り、このような実行可能状態の点を接続する各リンクが、前記リンクによって接 続された実行可能状態の点の前期アクセス方法と互換性を持つ通信方法と関連す るまで、グラフ変形ステップを実行することによって実行に備えてグラフを準備 し、 (c)コンピュータシステムを使って、前記リンクの前記通信方法と互換性を持 つ通信チャンネルおよび/またはデータ記憶を作成することによって関連する通 信方法を有する各リンクを開始し、 (d)コンピュータシステム上で処理の実行を呼出すことにより実行可能状態点 の各々を開始し、 (e)グラフとして表された操作全体がコンピュータシステム上で実行されるま で、ステップ(b)〜(d)を繰返す、 ステップを有することを特徴とするコンピュータシステム上で、グラフとして表 された操作を実行する方法。 17. コンピュータシステム上で、点を接続するリンクを有する関連したグラフ として表された操作を実行するためのシステムであり、前記グラフが、各々が処 理を表す処理点と、各々がファイルを表すファイル点とを有し、前記システムが 、 (a)実行に備えてグラフを準備する手段と、 (b)前記グラフのリンクを開始するための手段と、 (c)前記グラフの点によって表された処理を開始するための手段と、 を有することを特徴とするシステム。 18.前記実行に備えてグラフを準備するための手段が、 (a)ファイルを表す点を最低1つ挿入するための手段と、 (b)コピー処理を表す点を最低1つ挿入するための手段と、 (c)ファイルを表す点の最低1つを完全状態に設定するための手段と、 (d)処理を表す点の最低1つを実行可能状態に設定するための手段と (e)処理を表す点の最低1つを実行不可能状態に設定するための手段と、 (f)リンクの通信方法を設定するための手段と、 を有することを特徴とする請求の範囲10に記載のシステム。
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 US5966072A (en) 1996-07-02 1996-07-02 Executing computations expressed as graphs
US08/678,411 1996-07-02
PCT/US1997/011630 WO1998000791A1 (en) 1996-07-02 1997-07-01 Executing computations expressed as graphs

Publications (2)

Publication Number Publication Date
JP2000514219A true JP2000514219A (ja) 2000-10-24
JP3717188B2 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)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007066327A (ja) * 2000-07-28 2007-03-15 Ab Initio Software Corp 条件成分を有するパラメータ化図形
JP2008305398A (ja) * 2007-06-05 2008-12-18 Intel Corp 後処理カーネルのダイナミックリンキングおよびダイナミックローディング
JP2009223398A (ja) * 2008-03-13 2009-10-01 Omron Corp 産業用コントローラ
JP2010511235A (ja) * 2006-12-01 2010-04-08 マーレックス ソシエテ パール アクシオン サンプリフィエ シナリオサポートを伴うプロデューサグラフ指向のプログラミングフレームワーク
JP2010511233A (ja) * 2006-12-01 2010-04-08 マーレックス ソシエテ パール アクシオン サンプリフィエ プロデューサグラフ指向のプログラミングフレームワークにおけるパラレル化及びインスツルメンテーション
JP2010511234A (ja) * 2006-12-01 2010-04-08 マーレックス ソシエテ パール アクシオン サンプリフィエ プロデューサグラフ指向のプログラミング及び実行
JP2012533796A (ja) * 2009-07-14 2012-12-27 アビニシオ テクノロジー エルエルシー フォールトトレラントバッチ処理
JP2014130647A (ja) * 2007-07-26 2014-07-10 Ab Initio Technology Llc エラーハンドリングをもつトランザクションのグラフ型計算
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US9753751B2 (en) 2010-06-15 2017-09-05 Ab Initio Technology Llc Dynamically loading graph-based computations
JP2017529609A (ja) * 2014-09-02 2017-10-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
US9886241B2 (en) 2013-12-05 2018-02-06 Ab Initio Technology Llc Managing interfaces for sub-graphs
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
JP2019521421A (ja) * 2016-05-24 2019-07-25 アビニシオ テクノロジー エルエルシー ネットワーク内のキー付きデータを処理するための実行可能ロジック
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data

Families Citing this family (137)

* 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
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
CA2529925C (en) * 2003-06-25 2016-08-23 Ab Initio Software Corporation Computer-aided parallelizing of computation graphs
CA2538568C (en) 2003-09-15 2009-05-19 Ab Initio Software Corporation Data profiling
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
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata 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
CN101501678B (zh) * 2006-08-10 2013-10-16 起元科技有限公司 在基于图的计算中分配服务
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
EP2191362B1 (en) * 2007-09-20 2015-08-19 Ab Initio Technology LLC Managing data flows in graph-based computations
US9547638B2 (en) * 2008-06-30 2017-01-17 Ab Initio Technology Llc Data logging for rule specifications
CN107273977A (zh) 2008-10-23 2017-10-20 起元技术有限责任公司 用于标识匹配的方法、系统和机器可读硬件存储装置
KR101661532B1 (ko) * 2008-12-02 2016-09-30 아브 이니티오 테크놀로지 엘엘시 데이터 관리 시스템 내의 데이터 집합의 맵핑 인스턴스
JP5430164B2 (ja) * 2009-01-30 2014-02-26 キヤノン株式会社 データ管理方法及び装置
JP5490824B2 (ja) * 2009-01-30 2014-05-14 アビニシオ テクノロジー エルエルシー ベクトルフィールドを用いるデータ処理
AU2010213583A1 (en) * 2009-02-13 2011-08-11 Ab Initio Technology Llc Communicating with data storage systems
US8832156B2 (en) * 2009-06-15 2014-09-09 Microsoft Corporation Distributed computing management
US20110010690A1 (en) * 2009-07-07 2011-01-13 Howard Robert S System and Method of Automatically Transforming Serial Streaming Programs Into Parallel Streaming Programs
KR101656813B1 (ko) 2009-09-16 2016-09-12 아브 이니티오 테크놀로지 엘엘시 데이터세트 요소의 매핑
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
CN102754072B (zh) * 2009-12-14 2016-10-19 起元技术有限责任公司 规定用户界面元素
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
US8572229B2 (en) 2010-05-28 2013-10-29 Microsoft Corporation Distributed computing
US9268615B2 (en) 2010-05-28 2016-02-23 Microsoft Technology Licensing, Llc Distributed computing using communities
US20110314075A1 (en) * 2010-06-18 2011-12-22 Nokia Corporation Method and apparatus for managing distributed computations within a computation space
CN106294853B (zh) 2010-06-22 2019-10-11 起元技术有限责任公司 用于处理相关数据集的方法及数据处理系统
EP2609507B1 (en) 2010-08-25 2019-05-15 Ab Initio Technology LLC Evaluating dataflow graph characteristics
US8707275B2 (en) * 2010-09-14 2014-04-22 Microsoft Corporation Simulation environment for distributed programs
KR101911793B1 (ko) 2010-10-25 2018-10-25 아브 이니티오 테크놀로지 엘엘시 컴퓨터 프로그램을 나타내는 데이터플로우 그래프 내의 데이터세트 객체의 관리
CN103329130B (zh) 2011-01-14 2016-12-07 起元技术有限责任公司 管理数据集合的更改
WO2012103438A1 (en) 2011-01-28 2012-08-02 Ab Initio Technology Llc Generating data pattern information
US8447901B2 (en) 2011-02-18 2013-05-21 Ab Initio Technology Llc Managing buffer conditions through sorting
US9003084B2 (en) 2011-02-18 2015-04-07 Ab Initio Technology Llc Sorting
US9116759B2 (en) 2011-02-18 2015-08-25 Ab Initio Technology Llc Restarting data processing systems
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
JP6338579B2 (ja) 2012-07-24 2018-06-06 アビニシオ テクノロジー エルエルシー データモデルにおけるエンティティのマッピング
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 아브 이니티오 테크놀로지 엘엘시 소스 추적으로 데이터 프로파일링
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
EP2941705B1 (en) 2013-01-03 2023-02-22 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
EP2989540B1 (en) 2013-04-23 2021-06-23 AB Initio Technology LLC Controlling tasks performed by a computing system
US9235505B2 (en) * 2013-05-17 2016-01-12 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
AU2014326734B2 (en) 2013-09-27 2018-09-27 Ab Initio Technology Llc Evaluating rules applied to data
US10776325B2 (en) 2013-11-26 2020-09-15 Ab Initio Technology Llc Parallel access to data in a distributed file system
CA2929716C (en) 2013-12-06 2021-08-31 Ab Initio Technology Llc Source code translation
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
EP3594821B1 (en) 2014-03-07 2023-08-16 AB Initio Technology LLC Managing data profiling operations related to data type
EP4280135A3 (en) 2014-03-14 2024-02-21 AB Initio Technology LLC Mapping attributes of keyed entities
SG10201913041VA (en) 2014-04-17 2020-03-30 Ab Initio Technology Llc Integrated monitoring and control of processing environment
US9607073B2 (en) 2014-04-17 2017-03-28 Ab Initio Technology Llc Processing data from multiple sources
US10705877B2 (en) 2014-05-29 2020-07-07 Ab Initio Technology Llc Workload automation and data lineage analysis
AU2015289442B2 (en) 2014-07-18 2019-07-11 Ab Initio Technology Llc Managing lineage information
KR102410723B1 (ko) 2014-07-24 2022-06-17 아브 이니티오 테크놀로지 엘엘시 데이터 계통 요약
SG11201701652QA (en) 2014-09-02 2017-04-27 Ab Initio Technology Llc Compilation of graph-based program specifications with automated clustering of graph components based on the identification of particular data port connections
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
AU2015311999B2 (en) 2014-09-02 2019-09-19 Ab Initio Technology Llc Controlling data processing tasks
CN106687921B (zh) 2014-09-02 2021-02-02 起元科技有限公司 在基于图的程序中指定组件
US9785419B2 (en) 2014-09-02 2017-10-10 Ab Initio Technology Llc Executing graph-based program specifications
CN106687920B (zh) 2014-09-02 2020-07-03 起元科技有限公司 管理任务的调用
US9626393B2 (en) 2014-09-10 2017-04-18 Ab Initio Technology Llc Conditional validation rules
US10055333B2 (en) 2014-11-05 2018-08-21 Ab Initio Technology Llc Debugging a graph
SG11201703004XA (en) 2014-11-05 2017-05-30 Ab Initio Technology Llc Database security
US10176234B2 (en) 2014-11-05 2019-01-08 Ab Initio Technology Llc Impact analysis
US9880818B2 (en) 2014-11-05 2018-01-30 Ab Initio Technology Llc Application testing
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
SG11201706195YA (en) 2015-02-11 2017-08-30 Ab Initio Technology Llc Filtering data lineage diagrams
JP6463845B2 (ja) 2015-02-11 2019-02-06 アビニシオ テクノロジー エルエルシー データ系統図のフィルタリング
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
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
SG11201803928UA (en) 2015-12-17 2018-06-28 Ab Initio Technology Llc Processing data using dynamic partitioning
AU2016377516B2 (en) 2015-12-21 2020-01-30 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
US10936289B2 (en) 2016-06-03 2021-03-02 Ab Initio Technology Llc Format-specific data processing operations
CN110140118B (zh) 2016-11-09 2024-02-02 起元技术有限责任公司 用于确定数据元素之间的关系的系统和方法
US10802945B2 (en) 2016-12-07 2020-10-13 Ab Initio Technology Llc Differencing of executable dataflow graphs
US10445137B2 (en) 2016-12-08 2019-10-15 Ab Initio Technology Llc Computational resource allocation
CN110612513B (zh) * 2017-03-29 2024-01-30 起元技术有限责任公司 用于使用可变级并行执行数据处理操作的系统和方法
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
US20190370407A1 (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
WO2020006571A1 (en) 2018-06-29 2020-01-02 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
WO2020068927A2 (en) 2018-09-25 2020-04-02 Ab Initio Technology Llc A dedicated audit port for implementing recoverability in outputting audit data
JP7427677B2 (ja) 2019-01-22 2024-02-05 アビニシオ テクノロジー エルエルシー データ処理システムによって管理されるデータオブジェクトのワークフローを実施するための有限状態機械
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
US11593380B2 (en) 2020-01-28 2023-02-28 Ab Initio Technology Llc Editor for generating computational graphs
US11210285B2 (en) 2020-03-06 2021-12-28 Ab Initio Technology Llc Generation of optimized logic from a schema
KR20220167391A (ko) 2020-05-19 2022-12-20 아브 이니티오 테크놀로지 엘엘시 분산 컴퓨팅 네트워크에서 통신 최적화
US20220075778A1 (en) 2020-09-04 2022-03-10 Ab Initio Technology Llc Transforming operations of a computer program for execution at a database
CA3209125A1 (en) 2021-01-31 2022-08-04 Ab Initio Technology Llc Data processing system with manipulation of logical dataset groups
WO2022165123A1 (en) 2021-01-31 2022-08-04 Ab Initio Technology Llc Techniques for managing data in a data processing system using data entities and inheritance
BR112023015241A2 (pt) 2021-01-31 2023-11-21 Ab Initio Technology Llc Multiplexador de conjunto de dados para sistema de processamento de dados
AU2022214314A1 (en) 2021-01-31 2023-06-29 Ab Initio Technology Llc Systems and methods for accessing data entities managed by a data processing system
US20240146769A1 (en) 2021-02-24 2024-05-02 Ab Initio Technology Llc Systems and methods for managing privileges in a data processing system
CA3217116A1 (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
US20230359668A1 (en) 2022-05-05 2023-11-09 Ab Initio Technology Llc Dataflow graph datasets
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

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007066327A (ja) * 2000-07-28 2007-03-15 Ab Initio Software Corp 条件成分を有するパラメータ化図形
JP2007213593A (ja) * 2000-07-28 2007-08-23 Ab Initio Software Corp 条件成分を有するパラメータ化図形
JP2010511235A (ja) * 2006-12-01 2010-04-08 マーレックス ソシエテ パール アクシオン サンプリフィエ シナリオサポートを伴うプロデューサグラフ指向のプログラミングフレームワーク
US9201766B2 (en) 2006-12-01 2015-12-01 Murex S.A.S. Producer graph oriented programming framework with scenario support
US10083013B2 (en) 2006-12-01 2018-09-25 Murex S.A.S. Producer graph oriented programming and execution
JP2010511233A (ja) * 2006-12-01 2010-04-08 マーレックス ソシエテ パール アクシオン サンプリフィエ プロデューサグラフ指向のプログラミングフレームワークにおけるパラレル化及びインスツルメンテーション
JP2010511234A (ja) * 2006-12-01 2010-04-08 マーレックス ソシエテ パール アクシオン サンプリフィエ プロデューサグラフ指向のプログラミング及び実行
US10481877B2 (en) 2006-12-01 2019-11-19 Murex S.A.S. Producer graph oriented programming and execution
US9424050B2 (en) 2006-12-01 2016-08-23 Murex S.A.S. Parallelization and instrumentation in a producer graph oriented programming framework
JP2008305398A (ja) * 2007-06-05 2008-12-18 Intel Corp 後処理カーネルのダイナミックリンキングおよびダイナミックローディング
JP2014130647A (ja) * 2007-07-26 2014-07-10 Ab Initio Technology Llc エラーハンドリングをもつトランザクションのグラフ型計算
JP2009223398A (ja) * 2008-03-13 2009-10-01 Omron Corp 産業用コントローラ
US10528395B2 (en) 2009-02-13 2020-01-07 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
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
JP2015143999A (ja) * 2009-07-14 2015-08-06 アビニシオ テクノロジー エルエルシー フォールトトレラントバッチ処理
JP2012533796A (ja) * 2009-07-14 2012-12-27 アビニシオ テクノロジー エルエルシー フォールトトレラントバッチ処理
US9753751B2 (en) 2010-06-15 2017-09-05 Ab Initio Technology Llc Dynamically loading graph-based computations
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US10180821B2 (en) 2013-12-05 2019-01-15 Ab Initio Technology Llc Managing interfaces for sub-graphs
US10318252B2 (en) 2013-12-05 2019-06-11 Ab Initio Technology Llc Managing interfaces for sub-graphs
US9886241B2 (en) 2013-12-05 2018-02-06 Ab Initio Technology Llc Managing interfaces for sub-graphs
US10901702B2 (en) 2013-12-05 2021-01-26 Ab Initio Technology Llc Managing interfaces for sub-graphs
JP2017529609A (ja) * 2014-09-02 2017-10-05 アビニシオ テクノロジー エルエルシー グラフに基づくプログラムの仕様内の構成要素の関連するタスクを制御するための、それらの構成要素の実行状態の管理
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
JP2019521421A (ja) * 2016-05-24 2019-07-25 アビニシオ テクノロジー エルエルシー ネットワーク内のキー付きデータを処理するための実行可能ロジック
US11295049B2 (en) 2016-05-24 2022-04-05 Ab Initio Technology Llc Executable logic for processing keyed data in networks

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2000514219A (ja) グラフとして表された操作の実行
US6253369B1 (en) Workflow object compiler with user interrogated information incorporated into skeleton of source code for generating executable workflow objects
US5734905A (en) User interface in object oriented computer system for performing intuitive object transformations
Carzaniga et al. Designing distributed applications with mobile code paradigms
US7007096B1 (en) Efficient splitting and mixing of streaming-data frames for processing through multiple processing modules
US4782442A (en) Time-sharing computer system operable in a host TSS mode and a terminal TSS mode
US8234620B1 (en) Method and system for software development using distributed computing resources
US8429611B2 (en) Method and system for generating a source code for a computer program
JPH04657A (ja) トランザクション処理装置用の対話の流れの管理装置
JPH09512358A (ja) インタフェース装置及び方法
US7095718B1 (en) Client/server scan software architecture
JP5350026B2 (ja) ワークフロー処理システム、ワークフロー処理装置、及びワークフロー処理方法
JP3942877B2 (ja) Cadデータを管理するためのプログラムを記録したコンピュータ読み取り可能な記録媒体およびcadデータを管理するためのプログラム
US6442572B2 (en) Method of and computer system for performing a transaction on a database
US20070006121A1 (en) Development activity recipe
CN101599010A (zh) 流程处理方法和装置
JP2003331043A (ja) サービス提供システム、サービス提供方法及びソフトウェアプログラム
JP2005092544A (ja) ワークフロー世代管理処理方法,ワークフロー処理システムおよびワークフロー制御プログラム
Baum et al. Driving the composition of runtime platforms by architectural knowledge
JP2002543518A (ja) 分散型ソフトウェア開発環境
US7543307B2 (en) Interface method and device having interface for circuit comprising logical operation element
KR20010112690A (ko) 컴퓨터 프로그램 개발 자원을 네트워크 상에서 연동하는방법
US5479623A (en) Starting system for multiple resident processes under DOS
JP2002014846A (ja) ジョブ検査装置、ジョブ検査方法、及びジョブ検査プログラムを記録した記録媒体
EP1190302B1 (en) Splitting and mixing streaming-data frames

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