JPH0683689A - 長時間運転トランザクション管理システムおよび長時間運転トランザクションを実行する方法 - Google Patents
長時間運転トランザクション管理システムおよび長時間運転トランザクションを実行する方法Info
- Publication number
- JPH0683689A JPH0683689A JP5017298A JP1729893A JPH0683689A JP H0683689 A JPH0683689 A JP H0683689A JP 5017298 A JP5017298 A JP 5017298A JP 1729893 A JP1729893 A JP 1729893A JP H0683689 A JPH0683689 A JP H0683689A
- Authority
- JP
- Japan
- Prior art keywords
- long
- running
- transaction
- output
- flow
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/87—Monitoring of transactions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/964—Database arrangement
- Y10S707/966—Distributed
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【目的】 分散型計算機システムによる長時間運転トラ
ンザクション管理装置と長時間運転トランザクションを
実行する方法を改善する。 【構成】 フローコントローラ130 が長時間運転トラン
ザクションの各ステップの処理を制御するT1からT5の5
つのプロセスを使用し、このフローコントローラ130 に
関連する同時に走行するプロセスの数が、任意の一時点
で実行される長時間運転トランザクションの数にかかわ
らず、一定に留まる。各フローとステップ事例とがフロ
ーコントローラにより特定のシステムリソース(典型的
にはシステムのプロセッサの一つ)の実行に割り当てら
れる。 【効果】 大多数のトランザクションを処理するように
システムをスケールアップするためには、フローコント
ローラが作業を割り当てできるプロセッサの数を増大す
ることのみを必要とする。
ンザクション管理装置と長時間運転トランザクションを
実行する方法を改善する。 【構成】 フローコントローラ130 が長時間運転トラン
ザクションの各ステップの処理を制御するT1からT5の5
つのプロセスを使用し、このフローコントローラ130 に
関連する同時に走行するプロセスの数が、任意の一時点
で実行される長時間運転トランザクションの数にかかわ
らず、一定に留まる。各フローとステップ事例とがフロ
ーコントローラにより特定のシステムリソース(典型的
にはシステムのプロセッサの一つ)の実行に割り当てら
れる。 【効果】 大多数のトランザクションを処理するように
システムをスケールアップするためには、フローコント
ローラが作業を割り当てできるプロセッサの数を増大す
ることのみを必要とする。
Description
【0001】
【技術分野】本発明は一般に分散型計算機システムによ
るトランザクション処理、特に長時間運転トランザクシ
ョン(long running transaction)および他のタイプの
長時間運転計算を処理するシステムと方法に関連してい
る。本発明はまた計算機化された作業フロー管理と、多
重主体(multiple principals )により協働的な参加を
要求するタスクの処理にも関連している。
るトランザクション処理、特に長時間運転トランザクシ
ョン(long running transaction)および他のタイプの
長時間運転計算を処理するシステムと方法に関連してい
る。本発明はまた計算機化された作業フロー管理と、多
重主体(multiple principals )により協働的な参加を
要求するタスクの処理にも関連している。
【0002】
【背景技術】トランザクション処理の分野では、トラン
ザクションは典型的にはよく定義された開始と終了を有
する短期間計算(short lived computation )である。
種々のプロトコルはトランザクションのすべての関係者
がいかにしてトランザクションを終了させるかに同意す
ることを保証するために導入され、その大部分はいわゆ
る2相コミット(2PC:two phase commit)プロトコ
ルに基づいている。
ザクションは典型的にはよく定義された開始と終了を有
する短期間計算(short lived computation )である。
種々のプロトコルはトランザクションのすべての関係者
がいかにしてトランザクションを終了させるかに同意す
ることを保証するために導入され、その大部分はいわゆ
る2相コミット(2PC:two phase commit)プロトコ
ルに基づいている。
【0003】例えば、多重計算機と多重プロセスは事務
員あるいは旅行代理人が航空路予約システムに航空座席
予約を入れる場合に開始された計算に参加しよう。分散
型航空路予約システムの必要なデータ記録は創成される
か、あるいはアップデートされ、かつすべての関連計算
と入力/出力操作がすべて完了した後で、すべてのトラ
ンザクションの参加者(すなわち、トランザクションに
作業する種々の計算機プロセス)は、トランザクション
がうまく完了し、かつ固定的に蓄積できることを同意す
ることを保証する「コミット(commit)」プロトコルを
使用して終了する。銀行の金銭出納員が出納員の作業席
で預金あるいは引出に入る場合に同様な組の事象(even
t )が生起する。そのようなトランザクションの期間は
典型的には非常に短かく(秒のオーダーの期間を意味
し)、かつ多分1秒よりずっと短いであろう。
員あるいは旅行代理人が航空路予約システムに航空座席
予約を入れる場合に開始された計算に参加しよう。分散
型航空路予約システムの必要なデータ記録は創成される
か、あるいはアップデートされ、かつすべての関連計算
と入力/出力操作がすべて完了した後で、すべてのトラ
ンザクションの参加者(すなわち、トランザクションに
作業する種々の計算機プロセス)は、トランザクション
がうまく完了し、かつ固定的に蓄積できることを同意す
ることを保証する「コミット(commit)」プロトコルを
使用して終了する。銀行の金銭出納員が出納員の作業席
で預金あるいは引出に入る場合に同様な組の事象(even
t )が生起する。そのようなトランザクションの期間は
典型的には非常に短かく(秒のオーダーの期間を意味
し)、かつ多分1秒よりずっと短いであろう。
【0004】この文書は長期間のトランザクションと計
算に関している。そのような計算の一例は、大多数のソ
ースからデータを収集し、次にそのデータをあるやり方
で統合するものである。データ収集プロセスはハードウ
エアの種々の断片による多数の相互作用を含み、かつ計
算の期間はすべての必要な参加計算機とハードウエアの
他の断片の利用度に依存して実行できる。長時間運転計
算の他の例は鉄鋼工場の種々のバッチ部分を形成する進
行制御プロセスであろう。もし各バッチ部分を処理する
プロセスが単一計算と考えられるなら、その計算の期間
は製鋼所の物理的処理ステップの期間によって表されよ
う。
算に関している。そのような計算の一例は、大多数のソ
ースからデータを収集し、次にそのデータをあるやり方
で統合するものである。データ収集プロセスはハードウ
エアの種々の断片による多数の相互作用を含み、かつ計
算の期間はすべての必要な参加計算機とハードウエアの
他の断片の利用度に依存して実行できる。長時間運転計
算の他の例は鉄鋼工場の種々のバッチ部分を形成する進
行制御プロセスであろう。もし各バッチ部分を処理する
プロセスが単一計算と考えられるなら、その計算の期間
は製鋼所の物理的処理ステップの期間によって表されよ
う。
【0005】短時間および長時間計算双方に対するすべ
てのトランザクション処理システムにおいて、重要な考
察はシステム障害からの回復である。一度システムがオ
ンラインに戻されると、任意のシステム障害から実効的
に自動回復できることがすべての近代のトランザクショ
ン処理システムで本質的なことである。このことはその
状態がシステム障害の丁度前にどうであったかを決定
し、かつできる限りわずかなバックトラッキングにより
すべての中断トランザクションの処理を再開するのに十
分なデータをシステムが蓄積すべきであることを意味し
ている。
てのトランザクション処理システムにおいて、重要な考
察はシステム障害からの回復である。一度システムがオ
ンラインに戻されると、任意のシステム障害から実効的
に自動回復できることがすべての近代のトランザクショ
ン処理システムで本質的なことである。このことはその
状態がシステム障害の丁度前にどうであったかを決定
し、かつできる限りわずかなバックトラッキングにより
すべての中断トランザクションの処理を再開するのに十
分なデータをシステムが蓄積すべきであることを意味し
ている。
【0006】典型的には、たいていのトランザクション
処理システムにおいて、システム回復はそれらのトラン
ザクションの開始ですべての中断トランザクションを再
スタートすることにより実現される。ログ記録はそのよ
うな各トランザクションの始めと終りで蓄積され、どの
トランザクションが完了し、かつシステム障害が生起し
た場合にどれが中間プロセスにあるかをシステム障害回
復ルーチンは決定できる。この解決法は長時間運転計算
を処理するシステムには適していない。というのは、そ
の回復方法が多数の貴重な作業(ワーク)の再行を意味
するからである。長時間運転作業フローと短期間トラン
ザクションを区別する付加的な問題は各トランザクショ
ンのステータスに関する十分な記録を保持するという問
題である。短期間トランザクションに対して、それは一
般的に、(A)各トランザクションの開始をマークし、
そのトランザクションの再スタートに十分なデータを記
録し、(B)必要なら変化が反転できるように種々のデ
ータ構造に行われた変化を記録し、かつ(C)一度トラ
ンザクションの結果が固定的に蓄積されると、トランザ
クションの結論をマークするログ記録を発生し蓄積する
ことで十分である。長時間運転トランザクションに対し
て、システム障害点までトランザクションにより遂行さ
れたすべての作業を取り消すようシステムのバックアッ
プをすることは典型的にはずっと複雑であろうし、ある
場合には実効的に不可能であろう。
処理システムにおいて、システム回復はそれらのトラン
ザクションの開始ですべての中断トランザクションを再
スタートすることにより実現される。ログ記録はそのよ
うな各トランザクションの始めと終りで蓄積され、どの
トランザクションが完了し、かつシステム障害が生起し
た場合にどれが中間プロセスにあるかをシステム障害回
復ルーチンは決定できる。この解決法は長時間運転計算
を処理するシステムには適していない。というのは、そ
の回復方法が多数の貴重な作業(ワーク)の再行を意味
するからである。長時間運転作業フローと短期間トラン
ザクションを区別する付加的な問題は各トランザクショ
ンのステータスに関する十分な記録を保持するという問
題である。短期間トランザクションに対して、それは一
般的に、(A)各トランザクションの開始をマークし、
そのトランザクションの再スタートに十分なデータを記
録し、(B)必要なら変化が反転できるように種々のデ
ータ構造に行われた変化を記録し、かつ(C)一度トラ
ンザクションの結果が固定的に蓄積されると、トランザ
クションの結論をマークするログ記録を発生し蓄積する
ことで十分である。長時間運転トランザクションに対し
て、システム障害点までトランザクションにより遂行さ
れたすべての作業を取り消すようシステムのバックアッ
プをすることは典型的にはずっと複雑であろうし、ある
場合には実効的に不可能であろう。
【0007】長期間トランザクションに関連した他の問
題はデータインターロック機構の使用に関連している。
データベースの記録あるいは任意の他の規定された対象
とは一致しない変化をアクセスかつ実行することを2つ
の異なるトランザクションあるいは計算から防ぐため
に、たいていの多重タスク計算機システムはトランザク
ションが対象のロックを完了するかあるいは明白に解放
するまで1つのトランザクションが規定された対象の排
他的使用を許容するインターロック機構を備えている。
たいていの場合、トランザクションがコミットし、その
結果が固定的に蓄積されるか、あるいはトランザクショ
ンスが打ち切られ、任意の暫定的変化が逆転されるまで
トランザクションはこのトランザクションにより使用さ
れた各対象にロックを維持する。長期間トランザクショ
ンに関連する問題は、長期間の各トランザクションによ
り使用された対象のロックがシステムデッドロックとな
り得ることであり、ここで多数のトランザクションは、
他の長期間トランザクションが、ブロックされたトラン
ザクションにより必要とされた対象にロックするという
理由で進行できない。明らかに、デッドロック問題の範
囲は各トランザクションにより使用された対象の平均数
およびそれらのトランザクションにより使用された対象
についてのトランザクション間のオーバーラップの平均
の量に関連している。それにもかかわらず、長期間トラ
ンザクションの期間はリソースと競合するトランザクシ
ョンが有意な期間だけ遅延されるチャンスを大いに増大
する。
題はデータインターロック機構の使用に関連している。
データベースの記録あるいは任意の他の規定された対象
とは一致しない変化をアクセスかつ実行することを2つ
の異なるトランザクションあるいは計算から防ぐため
に、たいていの多重タスク計算機システムはトランザク
ションが対象のロックを完了するかあるいは明白に解放
するまで1つのトランザクションが規定された対象の排
他的使用を許容するインターロック機構を備えている。
たいていの場合、トランザクションがコミットし、その
結果が固定的に蓄積されるか、あるいはトランザクショ
ンスが打ち切られ、任意の暫定的変化が逆転されるまで
トランザクションはこのトランザクションにより使用さ
れた各対象にロックを維持する。長期間トランザクショ
ンに関連する問題は、長期間の各トランザクションによ
り使用された対象のロックがシステムデッドロックとな
り得ることであり、ここで多数のトランザクションは、
他の長期間トランザクションが、ブロックされたトラン
ザクションにより必要とされた対象にロックするという
理由で進行できない。明らかに、デッドロック問題の範
囲は各トランザクションにより使用された対象の平均数
およびそれらのトランザクションにより使用された対象
についてのトランザクション間のオーバーラップの平均
の量に関連している。それにもかかわらず、長期間トラ
ンザクションの期間はリソースと競合するトランザクシ
ョンが有意な期間だけ遅延されるチャンスを大いに増大
する。
【0008】短期間トランザクションによる問題ではな
い長期間トランザクションに関連する付加的な1つの問
題はそれらのトランザクションのトラッキングに関連す
る。短期間トランザクションに対して、各トランザクシ
ョンが処理中か、処理中ではあるが所要のリソースが利
用可能でないために進行がブロックされているか、打ち
切られるか、あるいは完了するかのいずれかであること
を知ることは一般に十分である。しかし、長期間トラン
ザクションに対して、ずっと詳細なレベルで各トランザ
クションのステータスを監視することは重要である。
い長期間トランザクションに関連する付加的な1つの問
題はそれらのトランザクションのトラッキングに関連す
る。短期間トランザクションに対して、各トランザクシ
ョンが処理中か、処理中ではあるが所要のリソースが利
用可能でないために進行がブロックされているか、打ち
切られるか、あるいは完了するかのいずれかであること
を知ることは一般に十分である。しかし、長期間トラン
ザクションに対して、ずっと詳細なレベルで各トランザ
クションのステータスを監視することは重要である。
【0009】要約すると、短期間トランザクションから
長期間トランザクションを区別する問題は、中断トラン
ザクション、データインターロックにより生起したデッ
ドロックの回復であり、かつ処理中のトランザクション
のステータスをトラックするかあるいは監視できる必要
性のあることである。
長期間トランザクションを区別する問題は、中断トラン
ザクション、データインターロックにより生起したデッ
ドロックの回復であり、かつ処理中のトランザクション
のステータスをトラックするかあるいは監視できる必要
性のあることである。
【0010】
【発明の開示】本発明はその広義の形で請求項1に引用
された分散型計算機システムと請求項5に引用されたそ
の方法に属している。
された分散型計算機システムと請求項5に引用されたそ
の方法に属している。
【0011】今後記載されるもののは、長時間運転計算
のプロセスを実行かつトラックし、かつ長時間運転計算
の実行の間にシステム障害からの回復の作業フロー管理
システムと方法とである。特定のシステムで使用される
長時間運転計算の各タイプはその間にデータフローを持
つ一組の計算ステップとしてフロー記述データベース
(flow description database )で表されている。各ス
テップは応用プログラム(application program )を実
行し、かつその計算結果の蓄積を持続的に蓄積する個別
計算として取り扱われる。ステップ間のデータフローは
ステップ間のアークとして記述データベースに表されて
いる。
のプロセスを実行かつトラックし、かつ長時間運転計算
の実行の間にシステム障害からの回復の作業フロー管理
システムと方法とである。特定のシステムで使用される
長時間運転計算の各タイプはその間にデータフローを持
つ一組の計算ステップとしてフロー記述データベース
(flow description database )で表されている。各ス
テップは応用プログラム(application program )を実
行し、かつその計算結果の蓄積を持続的に蓄積する個別
計算として取り扱われる。ステップ間のデータフローは
ステップ間のアークとして記述データベースに表されて
いる。
【0012】フローコントローラは定義された各タイプ
の長時間運転トランザクションの事例(insatance )を
実行するプロセスを制御する。外部的に発生された入力
事象信号の対応する組がフローコントローラにより受信
された場合に長時間運転トランザクションの実行が始ま
る。長時間運転トランザクションの実行の間に、入力信
号の十分な組がそのステップを実行するよう受信された
場合にのみトランザクションの各ステップは例示(inst
antiate )される。その点で所要のタイプのステップの
事例が創成され、かつ実行される。ステップの終了の
後、ステップからの出力信号はトランザクション記述デ
ータベースに蓄積された「アーク」データに従って長時
間運転トランザクションの他のステップに対する入力事
象信号に変換される。
の長時間運転トランザクションの事例(insatance )を
実行するプロセスを制御する。外部的に発生された入力
事象信号の対応する組がフローコントローラにより受信
された場合に長時間運転トランザクションの実行が始ま
る。長時間運転トランザクションの実行の間に、入力信
号の十分な組がそのステップを実行するよう受信された
場合にのみトランザクションの各ステップは例示(inst
antiate )される。その点で所要のタイプのステップの
事例が創成され、かつ実行される。ステップの終了の
後、ステップからの出力信号はトランザクション記述デ
ータベースに蓄積された「アーク」データに従って長時
間運転トランザクションの他のステップに対する入力事
象信号に変換される。
【0013】その上、ログ記録は、長時間運転トランザ
クションの各ステップの例示と実行と終了に基づいて持
続的に蓄積され、かつ出力事象信号もまたログされ、そ
れによりシステム障害の前に完成した作業(ワーク)の
実効的な損失なしに長時間運転トランザクションの回復
に十分なデータを持続的に蓄積する。
クションの各ステップの例示と実行と終了に基づいて持
続的に蓄積され、かつ出力事象信号もまたログされ、そ
れによりシステム障害の前に完成した作業(ワーク)の
実効的な損失なしに長時間運転トランザクションの回復
に十分なデータを持続的に蓄積する。
【0014】本発明のさらに詳しい理解は、実例により
かつ添付図面と共に理解される以下の好ましい実施例の
記述により行うことができる。
かつ添付図面と共に理解される以下の好ましい実施例の
記述により行うことができる。
【0015】
【実施例】図1を参照すると、本発明の好ましい実施例
は、ローカルもしくは広域回線網112 あるいは他のある
通信媒体により相互接続された一組の計算機102 −110
を有する分散型計算機システム100 のコンテキストで典
型的に動作するトランザクション処理システムとその方
法である。これらの各計算機102 −110 は分散型計算機
システム100 の個別ノードに位置されている。
は、ローカルもしくは広域回線網112 あるいは他のある
通信媒体により相互接続された一組の計算機102 −110
を有する分散型計算機システム100 のコンテキストで典
型的に動作するトランザクション処理システムとその方
法である。これらの各計算機102 −110 は分散型計算機
システム100 の個別ノードに位置されている。
【0016】各計算機102 −110 はデータ処理ユニッ
ト、システムバス、ランダムアクセスメモリRAM 、読み
取り専用メモリ(ROM )、大容量メモリ(例えば磁気デ
ィスクあるいは光学的ディスク)、ユーザーインタフェ
ース(例えばキーボード、モニター、プリンタ)、およ
び通信ポートを含む標準計算機システム成分を含んでい
る。これらの物理的計算機成分(示されていない)は本
発明により変更されず、従ってここで詳細に記述されな
い。
ト、システムバス、ランダムアクセスメモリRAM 、読み
取り専用メモリ(ROM )、大容量メモリ(例えば磁気デ
ィスクあるいは光学的ディスク)、ユーザーインタフェ
ース(例えばキーボード、モニター、プリンタ)、およ
び通信ポートを含む標準計算機システム成分を含んでい
る。これらの物理的計算機成分(示されていない)は本
発明により変更されず、従ってここで詳細に記述されな
い。
【0017】少なくとも1つのネットワーク化された計
算機110 はトランザクション記述データベース114 を維
持し、かつシステム中の同じ計算機あるいは他の計算機
はトランザクション履歴データベース(transaction hi
story database)116 を維持する。以下に詳細に記述さ
れるように、トランザクション記述データベース114は
システムに対して定義された長期トランザクションの各
タイプを表すデータを蓄積する。履歴データベース116
は本質的に、任意の長期トランザクション(long term
transaction )のステータスを決定し、かつシステム障
害から回復する場合に進行トランザクション(ongoing
transaction )を再構成するために検査できるログ記録
データベースである。
算機110 はトランザクション記述データベース114 を維
持し、かつシステム中の同じ計算機あるいは他の計算機
はトランザクション履歴データベース(transaction hi
story database)116 を維持する。以下に詳細に記述さ
れるように、トランザクション記述データベース114は
システムに対して定義された長期トランザクションの各
タイプを表すデータを蓄積する。履歴データベース116
は本質的に、任意の長期トランザクション(long term
transaction )のステータスを決定し、かつシステム障
害から回復する場合に進行トランザクション(ongoing
transaction )を再構成するために検査できるログ記録
データベースである。
【0018】フロー管理システム成分 図2を参照すると、本発明の好ましい実施例は長時間運
転トランザクションの実行を制御する一組のソフトウエ
アモジュールからなるフロー管理システム120を使用す
る。記述マネージャーモジュール122 はトランザクショ
ン記述データベース114 のトランザクションの各タイプ
を表すデータを蓄積する。記述マネージャーモジュール
122 とトランザクション記述データベース114 の構造は
図3−5を参照して以下に詳細に記述されよう。
転トランザクションの実行を制御する一組のソフトウエ
アモジュールからなるフロー管理システム120を使用す
る。記述マネージャーモジュール122 はトランザクショ
ン記述データベース114 のトランザクションの各タイプ
を表すデータを蓄積する。記述マネージャーモジュール
122 とトランザクション記述データベース114 の構造は
図3−5を参照して以下に詳細に記述されよう。
【0019】好ましい実施例において、フローエディタ
モジュール124 は長時間運転トランザクションを定義す
るプロセスを促進する図形インターフェースを備えてい
る。しかし、標準データベース編集ツールは本発明に従
って長時間運転トランザクションを定義するために使用
できる。
モジュール124 は長時間運転トランザクションを定義す
るプロセスを促進する図形インターフェースを備えてい
る。しかし、標準データベース編集ツールは本発明に従
って長時間運転トランザクションを定義するために使用
できる。
【0020】履歴マネージャーモジュール126 は長時間
運転トランザクションの実行の間に発生されたログ記録
を蓄積する。ログ記録は各実行長時間運転トランザクシ
ョンの各ステップのステータスの決定が可能であるよう
に定義されかつ蓄積される。事実、好ましい実施例で使
用されたログ記録は長時間運転トランザクションの各ス
テップの実行の正確な点の決定を許容し、かつシステム
障害と回復の場合に種々の中間ステップ段の各ステップ
の再スタートを許容するのに十分である。履歴検査子モ
ジュール128 は長時間運転トランザクションの実行のス
テータスをチェックするユーザーインターフェースを備
えている。ログ記録もまた完了したトランザクションの
レビューを許容する。好ましい実施例で使用されたログ
記録のフォーマットと、各長時間運転トランザクション
の現行ステータスの決定を助けるのに使用されたログ記
録間の連結は「ログ記録データベースとシステム障害回
復」と標記されたセクションで図19−21を参照して以下
に議論される。
運転トランザクションの実行の間に発生されたログ記録
を蓄積する。ログ記録は各実行長時間運転トランザクシ
ョンの各ステップのステータスの決定が可能であるよう
に定義されかつ蓄積される。事実、好ましい実施例で使
用されたログ記録は長時間運転トランザクションの各ス
テップの実行の正確な点の決定を許容し、かつシステム
障害と回復の場合に種々の中間ステップ段の各ステップ
の再スタートを許容するのに十分である。履歴検査子モ
ジュール128 は長時間運転トランザクションの実行のス
テータスをチェックするユーザーインターフェースを備
えている。ログ記録もまた完了したトランザクションの
レビューを許容する。好ましい実施例で使用されたログ
記録のフォーマットと、各長時間運転トランザクション
の現行ステータスの決定を助けるのに使用されたログ記
録間の連結は「ログ記録データベースとシステム障害回
復」と標記されたセクションで図19−21を参照して以下
に議論される。
【0021】フローコントローラ130 は好ましい実施例
の主要機関(エンジン)である。それはあらかじめ定義
された長期トランザクションの新しい事例の創成を含
み、トランザクションのステップ間のデータフローを処
理し、各トランザクションステップの結果を持続的に蓄
積し、システムクラッシュ回復とステータス監視に使用
されたログ記録を創成する等々の各長時間運転トランザ
クションの実行を制御する。フローコントローラ130 と
その内在するデータ構造は以下に徹底的に議論される。
の主要機関(エンジン)である。それはあらかじめ定義
された長期トランザクションの新しい事例の創成を含
み、トランザクションのステップ間のデータフローを処
理し、各トランザクションステップの結果を持続的に蓄
積し、システムクラッシュ回復とステータス監視に使用
されたログ記録を創成する等々の各長時間運転トランザ
クションの実行を制御する。フローコントローラ130 と
その内在するデータ構造は以下に徹底的に議論される。
【0022】フローデバッガー(flow debugger )132
とフローシミュレータ134 は定義されたトランザクショ
ンのチエックとデバッグを行うと同時にプログラマーを
援助するために長期トランザクションを定義するプロセ
スの間に使用されるソフトウエアモジュールである。
とフローシミュレータ134 は定義されたトランザクショ
ンのチエックとデバッグを行うと同時にプログラマーを
援助するために長期トランザクションを定義するプロセ
スの間に使用されるソフトウエアモジュールである。
【0023】長時間運転トランザクションの成分 図3を参照すると、長時間運転トランザクションの各タ
イプは「フロー」150としてモデル化されている。フロ
ー150 はアークと呼ばれたデータ信号パス154により相
互接続された一組の計算ステップ152 を具えている。フ
ロー150 はサブフロー156 を含むことができ、それはフ
ローが組み込み(nest)できることを意味している。作
業フローの各ステップ152 は入力ポート158 を有し、か
つ通常は少なくとも1つの出力ポートを有している。さ
らに、フロー150 と外界との間の入力事象と出力事象を
写像するために、フロー150 は特殊入力制御ステップ16
0と出力制御ステップ162 を有している。
イプは「フロー」150としてモデル化されている。フロ
ー150 はアークと呼ばれたデータ信号パス154により相
互接続された一組の計算ステップ152 を具えている。フ
ロー150 はサブフロー156 を含むことができ、それはフ
ローが組み込み(nest)できることを意味している。作
業フローの各ステップ152 は入力ポート158 を有し、か
つ通常は少なくとも1つの出力ポートを有している。さ
らに、フロー150 と外界との間の入力事象と出力事象を
写像するために、フロー150 は特殊入力制御ステップ16
0と出力制御ステップ162 を有している。
【0024】図3に示されたアーク154 の組は非常に簡
単であるが、ある環境のステップ間のデータパス連結は
非常に複雑であり、かつ一組のステップが特殊条件の下
で再度繰り返しできる状態のループもしくはフィードバ
ックパスさえ含むことを理解すべきである(入力条件と
出力条件の以下の議論を見よ)。
単であるが、ある環境のステップ間のデータパス連結は
非常に複雑であり、かつ一組のステップが特殊条件の下
で再度繰り返しできる状態のループもしくはフィードバ
ックパスさえ含むことを理解すべきである(入力条件と
出力条件の以下の議論を見よ)。
【0025】好ましい実施例を使用して任意の長期トラ
ンザクションを定義する場合に、どれだけ多くのトラン
ザクションが各ステップ152 に含まれるべきかについて
のかなりの量の許容範囲が存在する。これは長期トラン
ザクションを定義する個人の部分の選択プログラミング
事項である。一般の判定規準は、各ステップにより遂行
された計算が、(1)有用でありかつ全トランザクショ
ンが中間ストリームを失敗するなら節約に値する作業単
位を遂行すべきであり、かつ(2)拡張期間に対するシ
ステムリソースと連合しない期間で十分短くなくてはな
らないことである。各ステップ152 あるいはサブフロー
156 が既に実行を始める場合に、どんな入力を必要とす
るか、そしてどこでそれらの入力が到来するか、かつど
こにその出力を送るべきかの明らかな判定規準でなけれ
ばならない。
ンザクションを定義する場合に、どれだけ多くのトラン
ザクションが各ステップ152 に含まれるべきかについて
のかなりの量の許容範囲が存在する。これは長期トラン
ザクションを定義する個人の部分の選択プログラミング
事項である。一般の判定規準は、各ステップにより遂行
された計算が、(1)有用でありかつ全トランザクショ
ンが中間ストリームを失敗するなら節約に値する作業単
位を遂行すべきであり、かつ(2)拡張期間に対するシ
ステムリソースと連合しない期間で十分短くなくてはな
らないことである。各ステップ152 あるいはサブフロー
156 が既に実行を始める場合に、どんな入力を必要とす
るか、そしてどこでそれらの入力が到来するか、かつど
こにその出力を送るべきかの明らかな判定規準でなけれ
ばならない。
【0026】図3に示されるように、長時間運転トラン
ザクションは並列計算パスを含むことができる。ステッ
プが直列的に実行される必要ない時はいつでも並列パス
で長時間運転トランザクションを定義するのは有益であ
る。というのは、もし十分なシステムリソース(例えば
プロセッサ)が利用可能であるなら、並列パスは同時に
実行できるからである。このことはシステムのリソース
を効率的に使用し、かつまたトランザクションの完了に
必要な時間の量を低減できる。
ザクションは並列計算パスを含むことができる。ステッ
プが直列的に実行される必要ない時はいつでも並列パス
で長時間運転トランザクションを定義するのは有益であ
る。というのは、もし十分なシステムリソース(例えば
プロセッサ)が利用可能であるなら、並列パスは同時に
実行できるからである。このことはシステムのリソース
を効率的に使用し、かつまたトランザクションの完了に
必要な時間の量を低減できる。
【0027】図4を参照すると、フロー中の各ステップ
152 はその各々がステップの実行に関連されたサブステ
ップを遂行するいくつかの成分を有する好ましい実施例
でモデル化される。入力条件評価モジュール170 はステ
ップ152 の事例が創成され、かつ実行されることを要求
するため何時十分な入力事象が受信されたかを決定す
る。入力データ写像モジュール(input data mapping m
odule )172 は入力事象から受信されたデータを、規定
された応用ルーチン174 の実行に必要な順序に写像す
る。応用ルーチン174 はステップにより遂行される実際
の計算ルーチンである。ルーチン174 はトランザクショ
ンを設定するプログラマーにより定義されるのに従って
複雑あるいは簡単であり得る。出力データ写像モジュー
ル176 は応用ルーチン174 からの出力値を規定された順
序に写像し、かつ出力条件評価モジュール178 は1つ以
上の出力ポート180 を通して出力事象メッセージを発出
する。
152 はその各々がステップの実行に関連されたサブステ
ップを遂行するいくつかの成分を有する好ましい実施例
でモデル化される。入力条件評価モジュール170 はステ
ップ152 の事例が創成され、かつ実行されることを要求
するため何時十分な入力事象が受信されたかを決定す
る。入力データ写像モジュール(input data mapping m
odule )172 は入力事象から受信されたデータを、規定
された応用ルーチン174 の実行に必要な順序に写像す
る。応用ルーチン174 はステップにより遂行される実際
の計算ルーチンである。ルーチン174 はトランザクショ
ンを設定するプログラマーにより定義されるのに従って
複雑あるいは簡単であり得る。出力データ写像モジュー
ル176 は応用ルーチン174 からの出力値を規定された順
序に写像し、かつ出力条件評価モジュール178 は1つ以
上の出力ポート180 を通して出力事象メッセージを発出
する。
【0028】トランザクション記述データベース 図2と図5を参照すると、特定の分散型計算機システム
で定義された長時間運転トランザクションの各タイプの
「モデル」は、ここでトランザクション記述データベー
ス114 と呼ばれる一組のテーブルの形で蓄積される。換
言すると、トランザクションのステップ152 の間のすべ
ての関係、ならびに長時間運転トランザクションの定義
と実行に必要なすべての他の情報は一組のデータベース
テーブルの形に蓄積される。
で定義された長時間運転トランザクションの各タイプの
「モデル」は、ここでトランザクション記述データベー
ス114 と呼ばれる一組のテーブルの形で蓄積される。換
言すると、トランザクションのステップ152 の間のすべ
ての関係、ならびに長時間運転トランザクションの定義
と実行に必要なすべての他の情報は一組のデータベース
テーブルの形に蓄積される。
【0029】以下の記述を理解するために、「フロータ
イプ」とそのフロータイプの事例との間を区別すること
が重要である。フロータイプは何回も遂行できる長時間
運転トランザクションのタイプを表している。フロータ
イプが呼び出される度毎に、そのフロータイプの事例が
分散型計算機システムで発生され、かつそれがトラック
されるそのフローの事例の振る舞いである。同様に、ス
テップタイプは特定の計算ステップのモデルであり、一
方、ステップの事例はフローのそのステップタイプの1
つの計算ステップを表している。
イプ」とそのフロータイプの事例との間を区別すること
が重要である。フロータイプは何回も遂行できる長時間
運転トランザクションのタイプを表している。フロータ
イプが呼び出される度毎に、そのフロータイプの事例が
分散型計算機システムで発生され、かつそれがトラック
されるそのフローの事例の振る舞いである。同様に、ス
テップタイプは特定の計算ステップのモデルであり、一
方、ステップの事例はフローのそのステップタイプの1
つの計算ステップを表している。
【0030】− フローテーブル 図6を参照すると、フローテーブル200 は定義された各
フロータイプの1つの記録201 を含んでいる。各フロー
テーブル記録は各フロータイプに割り当てられた独自の
値であるフロータイプID 202、このフロータイプのフ
ローへの入力に関するテキストストリングを指摘する入
力スクリプトポインタ204 、出力スクリプトポインタ20
6 、例外ハンドラースクリプトポインタ208 、フローの
表現を表示する場合に使用された図形情報のファイルを
指摘する図形情報ポインタ210 、およびシステムユーザ
ーとプログラマーに示されたフロー名を含むテキストス
トリングであるフロータイプ名212 を含んでいる。スク
リプトポインタ204 ,206,208 はすべて「スクリプ
ト」テーブル(”script”table )の記録を指摘し、そ
の各記録は記述テキストを含むテキストストリングを含
んでいる。
フロータイプの1つの記録201 を含んでいる。各フロー
テーブル記録は各フロータイプに割り当てられた独自の
値であるフロータイプID 202、このフロータイプのフ
ローへの入力に関するテキストストリングを指摘する入
力スクリプトポインタ204 、出力スクリプトポインタ20
6 、例外ハンドラースクリプトポインタ208 、フローの
表現を表示する場合に使用された図形情報のファイルを
指摘する図形情報ポインタ210 、およびシステムユーザ
ーとプログラマーに示されたフロー名を含むテキストス
トリングであるフロータイプ名212 を含んでいる。スク
リプトポインタ204 ,206,208 はすべて「スクリプ
ト」テーブル(”script”table )の記録を指摘し、そ
の各記録は記述テキストを含むテキストストリングを含
んでいる。
【0031】− タイプ参照テーブル タイプ参照テーブル220 は各フロータイプの各ステップ
とフロー要素の記録221 を含んでいる。各タイプ参照記
録は、もし定義されたフロータイプなら、各フローとス
テップ要素に割り当てられた独自の値であるタイプ参照
ID 222、このフローのフローテーブル200 の対応記録
のポインタ(しばしば外的キー[foreign key ]と呼ば
れている)であるフロータイプID 224、特定のステッ
プに対応するステップタイプテーブルの記録を指摘する
フロー/ステップID 226、プロログ(Prolog)ID 2
28、エピログ(Epilog)ID 230、補償ルーチンポイン
タ232 、分画値(demarcation value )234 、リソース
分解関数ID 236、タイムアウト期間237 、および応用
フラグ238 を含んでいる。分画値234 はステップがフロ
ーの開始であるか、終了であるかあるいは中間位置にあ
るかを示している。
とフロー要素の記録221 を含んでいる。各タイプ参照記
録は、もし定義されたフロータイプなら、各フローとス
テップ要素に割り当てられた独自の値であるタイプ参照
ID 222、このフローのフローテーブル200 の対応記録
のポインタ(しばしば外的キー[foreign key ]と呼ば
れている)であるフロータイプID 224、特定のステッ
プに対応するステップタイプテーブルの記録を指摘する
フロー/ステップID 226、プロログ(Prolog)ID 2
28、エピログ(Epilog)ID 230、補償ルーチンポイン
タ232 、分画値(demarcation value )234 、リソース
分解関数ID 236、タイムアウト期間237 、および応用
フラグ238 を含んでいる。分画値234 はステップがフロ
ーの開始であるか、終了であるかあるいは中間位置にあ
るかを示している。
【0032】補償ルーチンポインタ232 は(タイムアウ
トのような)例外がステップあるいはフローの実行の間
に生起する場合に呼び出せる「補償ルーチン」を参照す
る。このように、ステップの各タイプは注文された補償
手順を有することができる。典型的には、フロー中の任
意のステップが実行に失敗すると、長時間運転トランザ
クションの放棄の判定となり、失敗したステップの補償
ルーチンが実行され、次に前に実行されたフローのすべ
てのステップの補償ルーチンが走行するが、しかしそれ
はステップの逆順で行われる。フローで既に実行された
ステップの連鎖はシステムにより維持されたログ記録か
ら決定され、それについては後で記述されよう。補償ル
ーチンはこのように長時間運転トランザクションあるい
はフローが打ち切られた後の「クリーンアップ」に使用
される。好ましい実施例では、補償ルーチンの使用は自
動的ではないが、人間システムオペレータにより(例え
ばオペレータが試みたが失敗した後で、長時間運転トラ
ンザクションの実行を再スタートする)行われる。
トのような)例外がステップあるいはフローの実行の間
に生起する場合に呼び出せる「補償ルーチン」を参照す
る。このように、ステップの各タイプは注文された補償
手順を有することができる。典型的には、フロー中の任
意のステップが実行に失敗すると、長時間運転トランザ
クションの放棄の判定となり、失敗したステップの補償
ルーチンが実行され、次に前に実行されたフローのすべ
てのステップの補償ルーチンが走行するが、しかしそれ
はステップの逆順で行われる。フローで既に実行された
ステップの連鎖はシステムにより維持されたログ記録か
ら決定され、それについては後で記述されよう。補償ル
ーチンはこのように長時間運転トランザクションあるい
はフローが打ち切られた後の「クリーンアップ」に使用
される。好ましい実施例では、補償ルーチンの使用は自
動的ではないが、人間システムオペレータにより(例え
ばオペレータが試みたが失敗した後で、長時間運転トラ
ンザクションの実行を再スタートする)行われる。
【0033】リソース分解関数ID 236は、「リソー
ス」(すなわち、計算機あるいは選択された個人のよう
な代理人)をステップの実行するために選択するリソー
ス分解関数240 と呼ばれるソフトウエアルーチンを直接
的あるいは間接的に指摘する。リソースはしばしばここ
では「主体」と呼ばれている。ステップが例示される度
毎に、フローコントローラはステップ事例を実行するた
めに定義されたリソースのリスト242 から1つのリソー
スあるいは主体を選択するため規定されたリソース分解
関数を呼び出す。このように例示された各ステップの実
行に使用すべきリソースは実行の時点で動的に選択され
る。システムは多数のリソース分解関数を含むことがで
き、その各々は特定の事例の実行に使用すべきリソース
を選択する別々の判定規準を使用する。ある場合には、
リソースは長時間運転計算の以前のステップを実行する
ために前に選択された同じリソースを選択すべきであろ
う。リソース選択の他の判定規準はステップにより演じ
られた役割、ジョブが遂行される「顧客」あるいは「注
文主」、この点までのトランザクションの履歴等々を含
むことができる。
ス」(すなわち、計算機あるいは選択された個人のよう
な代理人)をステップの実行するために選択するリソー
ス分解関数240 と呼ばれるソフトウエアルーチンを直接
的あるいは間接的に指摘する。リソースはしばしばここ
では「主体」と呼ばれている。ステップが例示される度
毎に、フローコントローラはステップ事例を実行するた
めに定義されたリソースのリスト242 から1つのリソー
スあるいは主体を選択するため規定されたリソース分解
関数を呼び出す。このように例示された各ステップの実
行に使用すべきリソースは実行の時点で動的に選択され
る。システムは多数のリソース分解関数を含むことがで
き、その各々は特定の事例の実行に使用すべきリソース
を選択する別々の判定規準を使用する。ある場合には、
リソースは長時間運転計算の以前のステップを実行する
ために前に選択された同じリソースを選択すべきであろ
う。リソース選択の他の判定規準はステップにより演じ
られた役割、ジョブが遂行される「顧客」あるいは「注
文主」、この点までのトランザクションの履歴等々を含
むことができる。
【0034】タイムアウト期間237 の値は関連フローあ
るいはステップの実行に割り付けるべき時間の最大量を
示している。
るいはステップの実行に割り付けるべき時間の最大量を
示している。
【0035】APフラグ238 はもし記録221 に関連する
ステップが応用プログラムを実行するなら真であり、も
しステップが応用プログラムを実行しない制御ステップ
であるなら偽である。
ステップが応用プログラムを実行するなら真であり、も
しステップが応用プログラムを実行しない制御ステップ
であるなら偽である。
【0036】図6,7,8および9は長時間運転トラン
ザクションの規定された各タイプを表すためにトランザ
クション記述データベースで使用された1次テーブルの
配列を表していることは注意すべきである。
ザクションの規定された各タイプを表すためにトランザ
クション記述データベースで使用された1次テーブルの
配列を表していることは注意すべきである。
【0037】− アークテーブル アークテーブル250 はフロー内の各データパスに対して
情報を与える記録251を含んでいる。各記録はフロータ
イプの各アークに対する独自のアークID 252、アーク
が見いだされるフロータイプを示すフロータイプID 2
54、データ信号がそのアークにより受信される成分のタ
イプとポートを規定する「フロムタイプ参照ID(From
Type Ref ID)」256 および「フロムポートID(From
Port ID)」258 、およびデータ信号が送られる成分の
タイプとポートを規定する「ツータイプ参照ID(To T
ype Ref ID)」260 と「ツーポートID(To Port I
D)」262 を有している。アーク名264 はアークに与え
られたラベルあるいはテキストストリング名であり、典
型的には「フロー X アーク 21」のような値を有し
ている。
情報を与える記録251を含んでいる。各記録はフロータ
イプの各アークに対する独自のアークID 252、アーク
が見いだされるフロータイプを示すフロータイプID 2
54、データ信号がそのアークにより受信される成分のタ
イプとポートを規定する「フロムタイプ参照ID(From
Type Ref ID)」256 および「フロムポートID(From
Port ID)」258 、およびデータ信号が送られる成分の
タイプとポートを規定する「ツータイプ参照ID(To T
ype Ref ID)」260 と「ツーポートID(To Port I
D)」262 を有している。アーク名264 はアークに与え
られたラベルあるいはテキストストリング名であり、典
型的には「フロー X アーク 21」のような値を有し
ている。
【0038】− ステップタイプテーブル ステップタイプテーブル270 は定義された各フロータイ
プの各ステップに対し1つの記録271 を含んでいる。ス
テップタイプテーブル記録271 は独自のステップタイプ
ID 272、このステップにより(あるならば)実行され
た応用プログラムを識別する応用ID 274、入力スクリ
プトポインター276 と出力スクリプトポインター278 、
ステップに与えられたテキストストリング名であるステ
ップ名280 、および(あるなら)このステップにより実
行された応用プログラムの名前を識別するテキストスト
リングである応用名282 を割り当てられる。
プの各ステップに対し1つの記録271 を含んでいる。ス
テップタイプテーブル記録271 は独自のステップタイプ
ID 272、このステップにより(あるならば)実行され
た応用プログラムを識別する応用ID 274、入力スクリ
プトポインター276 と出力スクリプトポインター278 、
ステップに与えられたテキストストリング名であるステ
ップ名280 、および(あるなら)このステップにより実
行された応用プログラムの名前を識別するテキストスト
リングである応用名282 を割り当てられる。
【0039】− ポートテーブル 図7を参照すると、ポートテーブル300 は定義された各
フローの各ステップの各入力ポートと各出力ポートを定
義する。1つのポートのポートテーブル記録301 は独自
のポートID 302、ポートが定義されているフローある
いはステップを識別するフロー/ステップID 304、事
象タイプテーブル320 (以下に議論する)の記録321 を
参照する事象タイプID 306、ポートが入力ポートであ
るか出力ポートであるかを定義するポートタイプ308 、
および「出力ポートA」あるいは「Q1」のようにポー
トに与えられたテキストストリング名であるポート名31
0を有している。
フローの各ステップの各入力ポートと各出力ポートを定
義する。1つのポートのポートテーブル記録301 は独自
のポートID 302、ポートが定義されているフローある
いはステップを識別するフロー/ステップID 304、事
象タイプテーブル320 (以下に議論する)の記録321 を
参照する事象タイプID 306、ポートが入力ポートであ
るか出力ポートであるかを定義するポートタイプ308 、
および「出力ポートA」あるいは「Q1」のようにポー
トに与えられたテキストストリング名であるポート名31
0を有している。
【0040】入力条件と入力データ写像 概念的に、「事象」はデータ信号を発生する何物かの生
起である。この文書の目的に対して、事象信号(しばし
ば「事象」と呼ばれる)は事象を表すデータ信号であ
る。
起である。この文書の目的に対して、事象信号(しばし
ば「事象」と呼ばれる)は事象を表すデータ信号であ
る。
【0041】入力条件の目的はトランザクション記述デ
ータベースで定義された計算ステップの各タイプの実行
を始めるのに十分な入力事象信号の1つ以上の組を規定
することである。特定のフローあるいはステップタイプ
は多重入力条件を有し、その各々は入力事象信号の異な
る組合せを規定している。特定のステップタイプの任意
の入力条件に整合する入力事象信号をフローコントロー
ラが受信する場合に、ステップの事例が創成され、かつ
実行に対して予定(スケジュール)される。ステップ事
例を創成するプロセスは「例示」あるいは「ステップの
例示化(instantiating a step)」と呼ばれる。
ータベースで定義された計算ステップの各タイプの実行
を始めるのに十分な入力事象信号の1つ以上の組を規定
することである。特定のフローあるいはステップタイプ
は多重入力条件を有し、その各々は入力事象信号の異な
る組合せを規定している。特定のステップタイプの任意
の入力条件に整合する入力事象信号をフローコントロー
ラが受信する場合に、ステップの事例が創成され、かつ
実行に対して予定(スケジュール)される。ステップ事
例を創成するプロセスは「例示」あるいは「ステップの
例示化(instantiating a step)」と呼ばれる。
【0042】ポート、事象タイプ、入力データ写像、入
力条件およびAPIテーブル300 ,320 ,340 ,360 お
よび380 は各ステップタイプの入力条件を定義し、また
各ステップタイプにより実行された応用プログラムによ
り必要とされたパラメータに事象信号に含まれたデータ
を写像する柔軟性のある機構を備えることである。
力条件およびAPIテーブル300 ,320 ,340 ,360 お
よび380 は各ステップタイプの入力条件を定義し、また
各ステップタイプにより実行された応用プログラムによ
り必要とされたパラメータに事象信号に含まれたデータ
を写像する柔軟性のある機構を備えることである。
【0043】− 事象タイプテーブル 事象の各タイプは事象により運ばれたデータの関連フォ
ーマットあるいはテンプレートを有し、かつ事象タイプ
テーブル320 は事象信号の各タイプのフォーマットを定
義する。各事象タイプ記録321 は事象信号の1データフ
ィールドを定義し、かつ独自の事象フィールドID 32
2、ならびにフィールドが定義されている事象のタイプ
を識別する事象タイプID 324を有している。例えば、
2つのデータフィールドを持つ事象信号は事象タイプテ
ーブル320 に2つの記録を有するであろう。記録321 は
このフィールドのデータが整数、浮動小数点数、ストリ
ング等々であるかどうかを示すデータタイプ値326 も有
している。サイズ328 はフィールドにより占有されたメ
モリの総量を示し、フィールド名330 はフィールドの名
前のテキストストリングである。
ーマットあるいはテンプレートを有し、かつ事象タイプ
テーブル320 は事象信号の各タイプのフォーマットを定
義する。各事象タイプ記録321 は事象信号の1データフ
ィールドを定義し、かつ独自の事象フィールドID 32
2、ならびにフィールドが定義されている事象のタイプ
を識別する事象タイプID 324を有している。例えば、
2つのデータフィールドを持つ事象信号は事象タイプテ
ーブル320 に2つの記録を有するであろう。記録321 は
このフィールドのデータが整数、浮動小数点数、ストリ
ング等々であるかどうかを示すデータタイプ値326 も有
している。サイズ328 はフィールドにより占有されたメ
モリの総量を示し、フィールド名330 はフィールドの名
前のテキストストリングである。
【0044】−入力データ写像テーブル 入力データ写像テーブル340 の目的はステップの応用プ
ログラムにより必要とされた各パラメータにどの入力事
象信号が写像されるかを規定することである。テーブル
340 の各記録341 は特定ステップにより受信できる1つ
の入力事象を表し、かつ条件ID 342(これは以下に議
論する)、事象信号を受信するステップを識別するステ
ップタイプID 344、事象信号が受信されるポートを識
別するポートID 346、事象タイプテーブル320 の1つ
の記録を参照することにより事象信号のフォーマットを
定義する事象フィールドID 348、およびその値が事象
信号により与えられる応用プログラムのパラメータを識
別するパラメータID 350を含んでいる。
ログラムにより必要とされた各パラメータにどの入力事
象信号が写像されるかを規定することである。テーブル
340 の各記録341 は特定ステップにより受信できる1つ
の入力事象を表し、かつ条件ID 342(これは以下に議
論する)、事象信号を受信するステップを識別するステ
ップタイプID 344、事象信号が受信されるポートを識
別するポートID 346、事象タイプテーブル320 の1つ
の記録を参照することにより事象信号のフォーマットを
定義する事象フィールドID 348、およびその値が事象
信号により与えられる応用プログラムのパラメータを識
別するパラメータID 350を含んでいる。
【0045】− 入力条件テーブル 入力条件テーブル360 はいつ事象信号の正しい組合せが
長時間運転トランザクションのステップの計算を開始す
るために受信されるかを規定する。上に説明したよう
に、任意の1つのステップに対して、2つ以上の入力条
件を有することが可能である。各入力条件は1つ以上の
入力ポートの論理的連結であり、それは事象信号がその
入力条件により規定されたすべてのポートに事象信号が
受信される場合に入力条件が満足されることを意味して
いる。任意の1つの入力条件の満足はステップの例示化
に対して十分である。
長時間運転トランザクションのステップの計算を開始す
るために受信されるかを規定する。上に説明したよう
に、任意の1つのステップに対して、2つ以上の入力条
件を有することが可能である。各入力条件は1つ以上の
入力ポートの論理的連結であり、それは事象信号がその
入力条件により規定されたすべてのポートに事象信号が
受信される場合に入力条件が満足されることを意味して
いる。任意の1つの入力条件の満足はステップの例示化
に対して十分である。
【0046】入力条件テーブル360 は各ステップの各入
力条件の一組の記録を有している。各記録361 は所属す
るステップのステップID 362、特定の入力条件を識別
する条件ID 364、事象信号が受信できるポートを識別
するポートID 366、フラグ値368 、および位置値(Po
sition Value)370 を含んでいる。入力条件テーブルの
記録は1つのステップIDのすべての記録361 が一緒に
クラスター化されるように順序付けられ、ステップの各
入力条件のすべての記録は位置値370 が各入力条件の記
録のクラスター内で値を増大するように一緒にクラスタ
ー化されかつ順序付けられた。フラグ値368 は特定入力
条件の最後の入力事象信号に対応する記録に対してのみ
「イエス」に等しく、さもなければ「ノー」に等しい。
このようにフラグ368 は入力信号の対応する組が例示に
必要かつ十分である場合にのみ「イエス」に等しい。
力条件の一組の記録を有している。各記録361 は所属す
るステップのステップID 362、特定の入力条件を識別
する条件ID 364、事象信号が受信できるポートを識別
するポートID 366、フラグ値368 、および位置値(Po
sition Value)370 を含んでいる。入力条件テーブルの
記録は1つのステップIDのすべての記録361 が一緒に
クラスター化されるように順序付けられ、ステップの各
入力条件のすべての記録は位置値370 が各入力条件の記
録のクラスター内で値を増大するように一緒にクラスタ
ー化されかつ順序付けられた。フラグ値368 は特定入力
条件の最後の入力事象信号に対応する記録に対してのみ
「イエス」に等しく、さもなければ「ノー」に等しい。
このようにフラグ368 は入力信号の対応する組が例示に
必要かつ十分である場合にのみ「イエス」に等しい。
【0047】図8を参照すると、入力条件テーブル360
の使用は実例により最も容易に説明される。3つの入力
ポートP,Q,Rと2つの入力条件C1 とC2 とを有す
るステップStp 71を考察する。入力条件C1 は「Pと
Q」であり、入力条件C2 は「QとR」である。このこ
とは、もしも事象信号がポートPとQ、あるいはポート
QとRで受信されるなら、ステップStp 71は例示化され
よう。以下に説明されるように、分散型計算機システム
のすべての事象信号はFIE(フロー入力事象:flow i
nput event)キューと呼ばれるキューに蓄積される。そ
のキューの事象は事象信号が送られステップのステップ
IDにより、次に入力ポートIDにより分類される。フ
ラグ368 と位置370 の値は各入力条件を満足するために
受信すべき入力事象信号の数のトラックを保持する単に
便宜的な方法である。
の使用は実例により最も容易に説明される。3つの入力
ポートP,Q,Rと2つの入力条件C1 とC2 とを有す
るステップStp 71を考察する。入力条件C1 は「Pと
Q」であり、入力条件C2 は「QとR」である。このこ
とは、もしも事象信号がポートPとQ、あるいはポート
QとRで受信されるなら、ステップStp 71は例示化され
よう。以下に説明されるように、分散型計算機システム
のすべての事象信号はFIE(フロー入力事象:flow i
nput event)キューと呼ばれるキューに蓄積される。そ
のキューの事象は事象信号が送られステップのステップ
IDにより、次に入力ポートIDにより分類される。フ
ラグ368 と位置370 の値は各入力条件を満足するために
受信すべき入力事象信号の数のトラックを保持する単に
便宜的な方法である。
【0048】− APIテーブル API(応用パラメータ入力:application parameter
input )テーブル380の目的は応用プログラムに関連す
る各入力および出力パラメータを定義することにある。
テーブル380 の各行381 は1つの応用プログラムに対し
1つのパラメータを定義する。各行381 の成分は定義さ
れたパラメータの独自パラメータID 382とパラメータ
名384 、定義されたパラメータに関連する応用プログラ
ムの応用ID 386、パラメータタイプ388 (すなわち入
力、出力、あるいは入力/出力)、パラメータが整数、
浮動小数点数かどうかを示すデータタイプ指示子(Data
Type Specifier )390 等々、および応用プログラムの
コールストリングのパラメータの位置を示す位置値392
である。
input )テーブル380の目的は応用プログラムに関連す
る各入力および出力パラメータを定義することにある。
テーブル380 の各行381 は1つの応用プログラムに対し
1つのパラメータを定義する。各行381 の成分は定義さ
れたパラメータの独自パラメータID 382とパラメータ
名384 、定義されたパラメータに関連する応用プログラ
ムの応用ID 386、パラメータタイプ388 (すなわち入
力、出力、あるいは入力/出力)、パラメータが整数、
浮動小数点数かどうかを示すデータタイプ指示子(Data
Type Specifier )390 等々、および応用プログラムの
コールストリングのパラメータの位置を示す位置値392
である。
【0049】出力条件評価および出力データ写像 出力データ写像に関する基本概念は以下の通りである。
多数のステップ(すなわち応用プログラム)は同じ組の
事象信号(例えば出力ポートQ1 とQ2 の事象信号)を
それらが走行する度毎に出力するが、あるステップでは
同じ制御パラメータに基づく出力事象信号の異なる組を
発生できることが重要である。制御パラメータの個別の
各値は出力条件と呼ばれ、かつ出力事象信号の対応する
規定された組が発生される。
多数のステップ(すなわち応用プログラム)は同じ組の
事象信号(例えば出力ポートQ1 とQ2 の事象信号)を
それらが走行する度毎に出力するが、あるステップでは
同じ制御パラメータに基づく出力事象信号の異なる組を
発生できることが重要である。制御パラメータの個別の
各値は出力条件と呼ばれ、かつ出力事象信号の対応する
規定された組が発生される。
【0050】好ましい実施例の図10と11を参照すると、
出力条件評価テーブル400 はどんな制御パラメータが出
力事象信号の選択を支配するか各プログラムを規定す
る。テーブル400 は、ステップタイプID402 を規定す
る各ステップタイプに対する1つの記録401 、および制
御パラメータが応用プログラムか、入力事象フィールド
か、あるいはステップの例示となる入力条件により発生
された出力パラメータであるかどうかを示すタイプ値40
4 を有している。2つの別のパラメータ406 と408 は出
力パラメータID、入力ポートと入力事象フィールド、
あるいは入力条件をタイプ値404 に依存して示してい
る。
出力条件評価テーブル400 はどんな制御パラメータが出
力事象信号の選択を支配するか各プログラムを規定す
る。テーブル400 は、ステップタイプID402 を規定す
る各ステップタイプに対する1つの記録401 、および制
御パラメータが応用プログラムか、入力事象フィールド
か、あるいはステップの例示となる入力条件により発生
された出力パラメータであるかどうかを示すタイプ値40
4 を有している。2つの別のパラメータ406 と408 は出
力パラメータID、入力ポートと入力事象フィールド、
あるいは入力条件をタイプ値404 に依存して示してい
る。
【0051】次に出力条件評価テーブル400 から得られ
た情報は使用すべき出力条件を選択するために値アウト
条件マップテーブル(Value OutCondition Map Table)
420の探索に使用される。値アウト条件マップテーブル4
20 は各ステップタイプに関連した各出力条件に対し1
つの記録421 を含んでいる。所与のステップタイプに対
して、ステップタイプID 422とテーブル420 のタイプ
値424 はテーブル400のものと同じである。所与のステ
ップタイプの各記録421 は異なる出力条件ID426を有
し、それはそのステップの例示入力条件を持つ入力条件
IDフィールド428 を整合するか、あるいは規定された
出力パラメータあるいは入力事象フィールドの値で値フ
ィールドを整合するかのいずれかでそのような1つの記
録421 が選択される。テーブル400 と420 を使用する最
終結果は出力条件IDの選択である。
た情報は使用すべき出力条件を選択するために値アウト
条件マップテーブル(Value OutCondition Map Table)
420の探索に使用される。値アウト条件マップテーブル4
20 は各ステップタイプに関連した各出力条件に対し1
つの記録421 を含んでいる。所与のステップタイプに対
して、ステップタイプID 422とテーブル420 のタイプ
値424 はテーブル400のものと同じである。所与のステ
ップタイプの各記録421 は異なる出力条件ID426を有
し、それはそのステップの例示入力条件を持つ入力条件
IDフィールド428 を整合するか、あるいは規定された
出力パラメータあるいは入力事象フィールドの値で値フ
ィールドを整合するかのいずれかでそのような1つの記
録421 が選択される。テーブル400 と420 を使用する最
終結果は出力条件IDの選択である。
【0052】所与のステップタイプの各個別の出力条件
IDに対して、出力条件テーブル440 は出力事象信号を
発生すべき各出力ポートに対し1つの記録441 を含んで
いる。このように、各記録441 は出力条件ID442 、ス
テップタイプID 444、および出力ポートID 446を含
んでいる。例えば、所与のステップに対して、出力ポー
トQ1 とQ2 は出力条件OC1が選択される場合に使用
され、一方、出力ポートQ2 とQ3 は出力条件OC2が
選択される場合に使用される。この例では、このステッ
プタイプに4つの出力条件テーブル記録441 が存在しよ
う。
IDに対して、出力条件テーブル440 は出力事象信号を
発生すべき各出力ポートに対し1つの記録441 を含んで
いる。このように、各記録441 は出力条件ID442 、ス
テップタイプID 444、および出力ポートID 446を含
んでいる。例えば、所与のステップに対して、出力ポー
トQ1 とQ2 は出力条件OC1が選択される場合に使用
され、一方、出力ポートQ2 とQ3 は出力条件OC2が
選択される場合に使用される。この例では、このステッ
プタイプに4つの出力条件テーブル記録441 が存在しよ
う。
【0053】出力データ写像テーブル460 の目的は出力
事象信号の各データフィールドに入力すべき情報のソー
スを規定することである。データフィールドを有しない
事象を有することが可能であると注意すべきである。そ
のような事象信号はそれらが長時間運転トランザクショ
ンの特定のステップの完了を示すことで有用である。兎
に角、テーブル460 は選択された出力条件に関連する各
出力事象の各データフィールドに対し1つの記録461 を
有している。各記録461 は条件ID 462と、ステップタ
イプを規定するステップタイプID 464と、記録を適用
する出力条件を含んでいる。1つの出力事象フィールド
のデータのソースは入力ポートID 466と入力フィール
ドID 468によるか、あるいは出力パラメータID(フ
ィールドID 468に蓄積されている)によるかのいずれ
かで規定され、そして対応する出力事象フィールドは出
力ポートID 470と出力フィールドID 472により規定
されている。
事象信号の各データフィールドに入力すべき情報のソー
スを規定することである。データフィールドを有しない
事象を有することが可能であると注意すべきである。そ
のような事象信号はそれらが長時間運転トランザクショ
ンの特定のステップの完了を示すことで有用である。兎
に角、テーブル460 は選択された出力条件に関連する各
出力事象の各データフィールドに対し1つの記録461 を
有している。各記録461 は条件ID 462と、ステップタ
イプを規定するステップタイプID 464と、記録を適用
する出力条件を含んでいる。1つの出力事象フィールド
のデータのソースは入力ポートID 466と入力フィール
ドID 468によるか、あるいは出力パラメータID(フ
ィールドID 468に蓄積されている)によるかのいずれ
かで規定され、そして対応する出力事象フィールドは出
力ポートID 470と出力フィールドID 472により規定
されている。
【0054】選択された出力条件IDと出力ポートID
の組が一度知られるなら、ポートテーブル300 は発生す
る必要のある各出力事象信号の事象タイプIDのルック
アップに使用され、次にそれらの事象タイプIDは発生
すべき出力事象の各データフィールドのデータタイプと
サイズを事象タイプテーブル320 でルックアップするの
に使用されることに注意されたい。
の組が一度知られるなら、ポートテーブル300 は発生す
る必要のある各出力事象信号の事象タイプIDのルック
アップに使用され、次にそれらの事象タイプIDは発生
すべき出力事象の各データフィールドのデータタイプと
サイズを事象タイプテーブル320 でルックアップするの
に使用されることに注意されたい。
【0055】選択的出力条件としてのループ ある種のコンテキストで、一組の1つ以上のステップが
繰り返される必要がある。図12に示された作業フロー47
0 の事例では、ステップ472 の役割はフロー中で以前の
ステップ152-1 から152-5 により遂行された作業をレビ
ューし、かつジョブがステップ474 に既に進行したかど
うか、あるいはその代わりにステップ476 に送り返され
るべきかを決定することである。例えば、図12に示され
たステップ476 と152-1 から152-5 はマシンの特定のタ
イプの修復に関連するタスクであり、かつステップ472
はいくつかの後続するステップ(マシンが修復したこと
を顧客に通知するような)にジョブを伝える前に遂行さ
れる品質レビューを表すであろう。
繰り返される必要がある。図12に示された作業フロー47
0 の事例では、ステップ472 の役割はフロー中で以前の
ステップ152-1 から152-5 により遂行された作業をレビ
ューし、かつジョブがステップ474 に既に進行したかど
うか、あるいはその代わりにステップ476 に送り返され
るべきかを決定することである。例えば、図12に示され
たステップ476 と152-1 から152-5 はマシンの特定のタ
イプの修復に関連するタスクであり、かつステップ472
はいくつかの後続するステップ(マシンが修復したこと
を顧客に通知するような)にジョブを伝える前に遂行さ
れる品質レビューを表すであろう。
【0056】図12に示された選択的ループパスは上記の
出力条件定義を使用して容易に実現される。特に、ステ
ップ472 は出力条件がステップ472 により発生された出
力パラメータに基づいて選択されることによる2つの出
力条件を有するよう定義されよう。このように、図11を
参照すると、ステップ472 に関連した出力条件評価テー
ブル400 の記録401 は評価パラメータのタイプが出力パ
ラメータであり、かつ使用すべき特定の出力パラメータ
をフィールド406 が規定する(例えば「品質」と呼ばれ
た出力パラメータ)ことをフィールド404 で規定しよ
う。値アウト条件マップテーブルはステップ472 に関連
する2つの記録を有し、それは例えば、品質=1の値が
第1出力条件IDにまず関連することを規定する1つの
記録と、品質の任意の他の値が第2の出力条件IDに関
連することを規定する第2の記録である。出力条件テー
ブル440 はこれら2つの各出力条件IDに使用すべき出
力ポート480 あるいは482 を規定する。最後に、出力デ
ータ写像テーブル460 は発生できる2つのタイプの出力
事象信号の各フィールドの内容を規定する。
出力条件定義を使用して容易に実現される。特に、ステ
ップ472 は出力条件がステップ472 により発生された出
力パラメータに基づいて選択されることによる2つの出
力条件を有するよう定義されよう。このように、図11を
参照すると、ステップ472 に関連した出力条件評価テー
ブル400 の記録401 は評価パラメータのタイプが出力パ
ラメータであり、かつ使用すべき特定の出力パラメータ
をフィールド406 が規定する(例えば「品質」と呼ばれ
た出力パラメータ)ことをフィールド404 で規定しよ
う。値アウト条件マップテーブルはステップ472 に関連
する2つの記録を有し、それは例えば、品質=1の値が
第1出力条件IDにまず関連することを規定する1つの
記録と、品質の任意の他の値が第2の出力条件IDに関
連することを規定する第2の記録である。出力条件テー
ブル440 はこれら2つの各出力条件IDに使用すべき出
力ポート480 あるいは482 を規定する。最後に、出力デ
ータ写像テーブル460 は発生できる2つのタイプの出力
事象信号の各フィールドの内容を規定する。
【0057】フローコントローラー 要約すると、上の記述はいかに長期トランザクションが
成分に分解できる(ここではステップとフローと呼ばれ
る)ことを示し、かついかに長期トランザクションによ
り遂行すべき計算と、ステップ間のデータフローの完全
な記述が一組のデータベーステーブルに蓄積できるかを
示している。
成分に分解できる(ここではステップとフローと呼ばれ
る)ことを示し、かついかに長期トランザクションによ
り遂行すべき計算と、ステップ間のデータフローの完全
な記述が一組のデータベーステーブルに蓄積できるかを
示している。
【0058】トランザクション記述データベース114 に
蓄積されたデータが一組の「トランザクションタイプ」
を表し、その各々は本質的に制限のない回数だけ使用で
きるテンプレートであることを理解すべきである。例え
ば、長時間運転トランザクションの1つのタイプが計算
機あるいは計算機の組の下で機関の自動化集合であると
仮定する。そのトランザクションタイプに関連するステ
ップとフローはトランザクション記述データベース114
に蓄積されよう。追加機関の集合プロセスが開始される
度毎に、このトランザクションタイプの新しい事例は制
御計算機に創成されよう。このように、特定のトランザ
クションタイプの事例の1ダースあるいは数百あるいは
数千さえも同時に計算機システムで実行されるかあるい
は少なくとも処理中であることは全くあり得ることであ
る。
蓄積されたデータが一組の「トランザクションタイプ」
を表し、その各々は本質的に制限のない回数だけ使用で
きるテンプレートであることを理解すべきである。例え
ば、長時間運転トランザクションの1つのタイプが計算
機あるいは計算機の組の下で機関の自動化集合であると
仮定する。そのトランザクションタイプに関連するステ
ップとフローはトランザクション記述データベース114
に蓄積されよう。追加機関の集合プロセスが開始される
度毎に、このトランザクションタイプの新しい事例は制
御計算機に創成されよう。このように、特定のトランザ
クションタイプの事例の1ダースあるいは数百あるいは
数千さえも同時に計算機システムで実行されるかあるい
は少なくとも処理中であることは全くあり得ることであ
る。
【0059】さらに特定すると、新しいトランザクショ
ンが開始されるといつでも、トランザクションの初期ス
テップの1つの事例が創成されかつ実行される。初期ス
テップから下流の各ステップとフローは、十分な組の入
力事象信号が存在する場合にのみ創成されるかあるいは
例示される。フローの各事例は独自のフロー事例IDな
らびにそのフロータイプIDにより識別される。ステッ
プの各事例は独自のステップ事例IDならびにそのステ
ップタイプIDにより識別される。
ンが開始されるといつでも、トランザクションの初期ス
テップの1つの事例が創成されかつ実行される。初期ス
テップから下流の各ステップとフローは、十分な組の入
力事象信号が存在する場合にのみ創成されるかあるいは
例示される。フローの各事例は独自のフロー事例IDな
らびにそのフロータイプIDにより識別される。ステッ
プの各事例は独自のステップ事例IDならびにそのステ
ップタイプIDにより識別される。
【0060】以下はいかに長時間運転トランザクション
の実際の実行が処理されるかの説明である。図13はフロ
ーコントローラー130 の構成要素を表している。フロー
コントローラー130 は長時間運転トランザクションの各
ステップの処理を制御するT1 からT5 の5つのプロセ
スを使用している。これらの各プロセスは対応する入力
キューを有している。図14から図19はこれらのキューの
データ構造を示している。FIEキューは入力データ事
象を蓄積する。入力データ事象は以前に実行されたステ
ップにより発生された事象信号と外部的に発生された事
象信号の双方を含んでいる。典型的に新しい長時間運転
トランザクションの開始の要求を表している外部的に発
生された事象信号はポストサーバー500 と呼ばれたプロ
セスによりFIEキューに挿入される。
の実際の実行が処理されるかの説明である。図13はフロ
ーコントローラー130 の構成要素を表している。フロー
コントローラー130 は長時間運転トランザクションの各
ステップの処理を制御するT1 からT5 の5つのプロセ
スを使用している。これらの各プロセスは対応する入力
キューを有している。図14から図19はこれらのキューの
データ構造を示している。FIEキューは入力データ事
象を蓄積する。入力データ事象は以前に実行されたステ
ップにより発生された事象信号と外部的に発生された事
象信号の双方を含んでいる。典型的に新しい長時間運転
トランザクションの開始の要求を表している外部的に発
生された事象信号はポストサーバー500 と呼ばれたプロ
セスによりFIEキューに挿入される。
【0061】フローコントローラー130 の重要な態様
は、フローコントローラー130 に関連した同時に走行す
るプロセスの数が、任意の1時点で実行される長時間運
転トランザクションの数にかかわらず、一定に留まるこ
とである。以下に説明されるように、各フローとステッ
プ事例はフローコントローラーにより特定のシステムリ
ソース(典型的にはシステムのプロセッサの1つ)の実
行に割り当てられる。フローコントローラーのジョブは
トランザクションとそれらのデータフローの実行に協調
すべきであるが、しかし各ステップの実際の実行はどこ
か別に処理される。作業のこの分割を使用して、フロー
コントローラー130 は、非常に広い範囲の作業負荷を処
理できることで「比例可能(scaleable )」である。大
多数のトランザクションを処理するようシステムをスケ
ールアップするために、システムマネジャーはフローコ
ントローラーが作業を割り当てできるプロセッサの数を
増大することのみを必要とする。システムの種々のプロ
セッサによりシステムで同時に実行される計算あるいは
応用プログラムの数は、現在実行するトランザクション
の数とそれらのトランザクションのサービスに役立つ計
算パワーの量の双方に依存する。
は、フローコントローラー130 に関連した同時に走行す
るプロセスの数が、任意の1時点で実行される長時間運
転トランザクションの数にかかわらず、一定に留まるこ
とである。以下に説明されるように、各フローとステッ
プ事例はフローコントローラーにより特定のシステムリ
ソース(典型的にはシステムのプロセッサの1つ)の実
行に割り当てられる。フローコントローラーのジョブは
トランザクションとそれらのデータフローの実行に協調
すべきであるが、しかし各ステップの実際の実行はどこ
か別に処理される。作業のこの分割を使用して、フロー
コントローラー130 は、非常に広い範囲の作業負荷を処
理できることで「比例可能(scaleable )」である。大
多数のトランザクションを処理するようシステムをスケ
ールアップするために、システムマネジャーはフローコ
ントローラーが作業を割り当てできるプロセッサの数を
増大することのみを必要とする。システムの種々のプロ
セッサによりシステムで同時に実行される計算あるいは
応用プログラムの数は、現在実行するトランザクション
の数とそれらのトランザクションのサービスに役立つ計
算パワーの量の双方に依存する。
【0062】プロセスT1 プロセスT1 はFIEキュー510 の事象信号が対応フロ
ータイプあるいはステップタイプに規定された入力条件
に十分適合する時にはいつでもフローとステップの新し
い事例を創成する。図7と図8を参照して上に議論され
たように、FIEキューで待機する事象信号がステップ
タイプの入力条件を満足する時はいつでも、そのステッ
プタイプの事例が創成される。図14を参照すると、FI
Eキュー510 の各入力事象信号511 は、信号のアークが
位置されている閉じ込めフロー事例(enclosing Flow I
nstant)512 、ならびにステップタイプ514 、および入
力事象信号が向けられているステップタイプのポートI
D 516を規定する。
ータイプあるいはステップタイプに規定された入力条件
に十分適合する時にはいつでもフローとステップの新し
い事例を創成する。図7と図8を参照して上に議論され
たように、FIEキューで待機する事象信号がステップ
タイプの入力条件を満足する時はいつでも、そのステッ
プタイプの事例が創成される。図14を参照すると、FI
Eキュー510 の各入力事象信号511 は、信号のアークが
位置されている閉じ込めフロー事例(enclosing Flow I
nstant)512 、ならびにステップタイプ514 、および入
力事象信号が向けられているステップタイプのポートI
D 516を規定する。
【0063】各入力事象信号511 の他の情報は対応ログ
記録のポインタであるログ参照518フィールド、閉じ込
めフローのフロータイプ520 とフローリソース522 、お
よび事象信号を発生するステップと事象信号が送られる
ステップとを接続するアークのアークID 524を含んで
いる。また事象信号には、事象信号を発生するステップ
に関するリソースデータ526 、いつ事象が発生されたか
を示すタイムスタンプ(Timestamp )530 、システムが
FIE記録にFOE記録を変換しようと試みた回数を示
すリトライパラメータ532 、および事象信号のすべての
データフィールドが蓄積されているメモリの領域を指摘
する作業空間記述子(Workspace Descriptor)534 が存
在する。
記録のポインタであるログ参照518フィールド、閉じ込
めフローのフロータイプ520 とフローリソース522 、お
よび事象信号を発生するステップと事象信号が送られる
ステップとを接続するアークのアークID 524を含んで
いる。また事象信号には、事象信号を発生するステップ
に関するリソースデータ526 、いつ事象が発生されたか
を示すタイムスタンプ(Timestamp )530 、システムが
FIE記録にFOE記録を変換しようと試みた回数を示
すリトライパラメータ532 、および事象信号のすべての
データフィールドが蓄積されているメモリの領域を指摘
する作業空間記述子(Workspace Descriptor)534 が存
在する。
【0064】T1 プロセスが新しいステップ事例IDを
割り当てかつ新しい記録541 をΦ5キュー540 に蓄積す
ることによりステップの「事例を創成」する。本質的
に、新しいステップ事例はΦ5キュー540 の新しい記録
541 としてのみこの点に存在する。
割り当てかつ新しい記録541 をΦ5キュー540 に蓄積す
ることによりステップの「事例を創成」する。本質的
に、新しいステップ事例はΦ5キュー540 の新しい記録
541 としてのみこの点に存在する。
【0065】図15に示されたように、Φ5キュー記録54
1 のいくつかのフィールドはFIEキュー記録と同じで
ある。規定されたフロー事例ID、フロータイプIDお
よびフローリソースIDは創成されたステップ事例が位
置されるフロー事例に対応することに注意されたい。も
しステップ事例が入力制御ステップであるなら、T1プ
ロセスはΦ5キュー記録541 の発生の前に、まず新しい
フロー事例IDと対応ログ記録を割り付ける。
1 のいくつかのフィールドはFIEキュー記録と同じで
ある。規定されたフロー事例ID、フロータイプIDお
よびフローリソースIDは創成されたステップ事例が位
置されるフロー事例に対応することに注意されたい。も
しステップ事例が入力制御ステップであるなら、T1プ
ロセスはΦ5キュー記録541 の発生の前に、まず新しい
フロー事例IDと対応ログ記録を割り付ける。
【0066】いくつかの事象信号が新しい1つのステッ
プ事例の創成に使用されるから、Φ5キュー記録541 の
作業空間記述子542 により指摘された事象データフィー
ルドはいくつかの入力事象からのデータを含むことがで
きる。各Φ5キュー記録541の新しい情報はステップ事
例ID 544、ステップの実行が割り当てられた計算機や
マシンもしくは個人を識別するステップリソースID 5
48を含んでいる。ステップリソースID 548は規定され
たステップタイプのタイプ参照テーブル220 (図6を見
よ)によるリソース分解関数参照を使用して選択され
る。
プ事例の創成に使用されるから、Φ5キュー記録541 の
作業空間記述子542 により指摘された事象データフィー
ルドはいくつかの入力事象からのデータを含むことがで
きる。各Φ5キュー記録541の新しい情報はステップ事
例ID 544、ステップの実行が割り当てられた計算機や
マシンもしくは個人を識別するステップリソースID 5
48を含んでいる。ステップリソースID 548は規定され
たステップタイプのタイプ参照テーブル220 (図6を見
よ)によるリソース分解関数参照を使用して選択され
る。
【0067】プロセスT2 プロセスT2 は入力データ写像とリソース写像を遂行す
る。入力データ写像とリソース写像のいずれも入力およ
び出力制御ステップにより遂行されない。
る。入力データ写像とリソース写像のいずれも入力およ
び出力制御ステップにより遂行されない。
【0068】リソース割り付けは特定のステップあるい
はフローを実行できる計算機、マシンあるいは他の主体
のタイプもしくはクラスを決定するプロセスである。リ
ソース割り付けはタイプ参照テーブルで規定されたよう
なステップあるいはフローのリソース分解関数IDに基
づいている。
はフローを実行できる計算機、マシンあるいは他の主体
のタイプもしくはクラスを決定するプロセスである。リ
ソース割り付けはタイプ参照テーブルで規定されたよう
なステップあるいはフローのリソース分解関数IDに基
づいている。
【0069】入力制御ステップと出力制御ステップの双
方に対して、T2 は制御ステップがT3 プロセスにより
既に処理されることを示すSTQ2 570キューに小さい記録
を入れる。T2 プロセスもまた制御ステップの記録をS
R2作業動作リスト(Work ToDo List )580 に付加す
る。STQ1キュー560 とSTQ2キュー570 の記録のデータ構
造は図16に示されている。
方に対して、T2 は制御ステップがT3 プロセスにより
既に処理されることを示すSTQ2 570キューに小さい記録
を入れる。T2 プロセスもまた制御ステップの記録をS
R2作業動作リスト(Work ToDo List )580 に付加す
る。STQ1キュー560 とSTQ2キュー570 の記録のデータ構
造は図16に示されている。
【0070】出力制御ステップは出力データ写像を要求
し、かつ制御ステップのS R2リスト580 に付加された記
録は、制御ステップが既に処理しているT3 プロセスを
通知する。S R2リスト580 の記録のデータ構造は図17に
示されている。S R2リストの記録のデータ構造は、状態
フィールド584 、時間設定586 、累積時間588 、および
現行位置590 の付加により、Φ5キューの記録のデータ
構造と同じであることに注意されたい。状態フィールド
584 は「スタートの待機」、「実行」あるいは「完了」
のようなステップのステータスを示している。その実行
が完了したことをステップのS R2記録が示す場合、プロ
セスT3 はそのステップの処理を引き継ぐ。もしステッ
プの実行がまだ完了せず、かつステップの開始時間にプ
ラスするステップのタイムアウト期間としてT2 プロセ
スにより計算されるなら、時間設定586 はステップがタ
イムアウトになる時間に等しい。
し、かつ制御ステップのS R2リスト580 に付加された記
録は、制御ステップが既に処理しているT3 プロセスを
通知する。S R2リスト580 の記録のデータ構造は図17に
示されている。S R2リストの記録のデータ構造は、状態
フィールド584 、時間設定586 、累積時間588 、および
現行位置590 の付加により、Φ5キューの記録のデータ
構造と同じであることに注意されたい。状態フィールド
584 は「スタートの待機」、「実行」あるいは「完了」
のようなステップのステータスを示している。その実行
が完了したことをステップのS R2記録が示す場合、プロ
セスT3 はそのステップの処理を引き継ぐ。もしステッ
プの実行がまだ完了せず、かつステップの開始時間にプ
ラスするステップのタイムアウト期間としてT2 プロセ
スにより計算されるなら、時間設定586 はステップがタ
イムアウトになる時間に等しい。
【0071】無制御ステップに対して、T2 プロセスは
入力写像を遂行し、次いでステップがT3 プロセスによ
り実行と処理の用意ができていることを示すSTQ1キュー
560に小さい記録を入れる。T2 プロセスはまたS R2作
業動作リストに各計算ステップの記録を付加する。入力
データ写像を遂行するプロセスは上に述べられている。
入力データ写像プロセスの結果全体は応用プログラムを
呼び出すのに必要な順序で直列配列されたパラメータの
リストである。写像された入力データはS R2記録の作業
空間記述子582 により参照されたメモリ領域に蓄積され
る。
入力写像を遂行し、次いでステップがT3 プロセスによ
り実行と処理の用意ができていることを示すSTQ1キュー
560に小さい記録を入れる。T2 プロセスはまたS R2作
業動作リストに各計算ステップの記録を付加する。入力
データ写像を遂行するプロセスは上に述べられている。
入力データ写像プロセスの結果全体は応用プログラムを
呼び出すのに必要な順序で直列配列されたパラメータの
リストである。写像された入力データはS R2記録の作業
空間記述子582 により参照されたメモリ領域に蓄積され
る。
【0072】T2 プロセスにより遂行された第2関数は
各ステップとフロー事例のタイムアウト限界を監視して
いる。
各ステップとフロー事例のタイムアウト限界を監視して
いる。
【0073】セッションマネジャー,T3 プロセスおよ
び応用実行 図13を参照すると、セッションマネジャープロセス600
の役割はSTQ1キュー560 の項目を読み取り、それらをキ
ュー560 から除外し、かつセッションマネジャー600 に
内部的に蓄積されたステータスリスト602 にそれらの項
目を付加することである。STQ1キュー560 の項目は各ス
テップが実行すべきリソース(すなわち、計算機)を示
していることに注意されたい。分散型計算システムの種
々の計算機で走行する顧客プロセス610 はその顧客に属
するステータスリスト602 ですべての項目のリストを得
るようにセッションマネジャー600 にログされる。顧客
プロセス610 が新しい応用プログラムの実行に用意され
ている場合、それは項目をリスト602 に選び取る(もし
そのプロセスが待機されているなら)。
び応用実行 図13を参照すると、セッションマネジャープロセス600
の役割はSTQ1キュー560 の項目を読み取り、それらをキ
ュー560 から除外し、かつセッションマネジャー600 に
内部的に蓄積されたステータスリスト602 にそれらの項
目を付加することである。STQ1キュー560 の項目は各ス
テップが実行すべきリソース(すなわち、計算機)を示
していることに注意されたい。分散型計算システムの種
々の計算機で走行する顧客プロセス610 はその顧客に属
するステータスリスト602 ですべての項目のリストを得
るようにセッションマネジャー600 にログされる。顧客
プロセス610 が新しい応用プログラムの実行に用意され
ている場合、それは項目をリスト602 に選び取る(もし
そのプロセスが待機されているなら)。
【0074】顧客プロセスは以下のように応用プログラ
ム620 をそれから実行する。まず、顧客は応用マネジャ
ープロセスT3 を呼び出し、それを実行すべきステップ
のステップ事例ID(STQ1キュー記録から得られた)に
伝え、かつ応用の入力パラメータのリストにそれを送る
ようプロセスT3 に要求する。応用マネジャープロセス
T3 は規定されたステップ事例IDに対応するS R2リス
ト580 の記録を見いだす。するとそれはT3 プロセスと
顧客610 との間の「トランザクション」を開始し、かつ
走行すべき応用プログラム(ステップタイプテーブルか
ら得られた)の名前と、応用プログラムの入力パラメー
タ(規定されたステップ事例IDに対応するS R2リスト
の記録から得られた)を顧客に送る。顧客は応用プログ
ラムを実行し、かつ得られた出力パラメータを応用マネ
ジャープロセスT3 に送る。プロセスT3 は実行される
ステップ事例のS R2記録の作業空間記述子582 により参
照された作業空間の出力パラメータを蓄積し、次に計算
結果を持続的に蓄積する顧客プロセスによりトランザク
ションを終了する。
ム620 をそれから実行する。まず、顧客は応用マネジャ
ープロセスT3 を呼び出し、それを実行すべきステップ
のステップ事例ID(STQ1キュー記録から得られた)に
伝え、かつ応用の入力パラメータのリストにそれを送る
ようプロセスT3 に要求する。応用マネジャープロセス
T3 は規定されたステップ事例IDに対応するS R2リス
ト580 の記録を見いだす。するとそれはT3 プロセスと
顧客610 との間の「トランザクション」を開始し、かつ
走行すべき応用プログラム(ステップタイプテーブルか
ら得られた)の名前と、応用プログラムの入力パラメー
タ(規定されたステップ事例IDに対応するS R2リスト
の記録から得られた)を顧客に送る。顧客は応用プログ
ラムを実行し、かつ得られた出力パラメータを応用マネ
ジャープロセスT3 に送る。プロセスT3 は実行される
ステップ事例のS R2記録の作業空間記述子582 により参
照された作業空間の出力パラメータを蓄積し、次に計算
結果を持続的に蓄積する顧客プロセスによりトランザク
ションを終了する。
【0075】この点で、応用マネジャープロセスT3 は
応用プログラムの実行が完了したことを示すSTQ1キュー
560 に記録を追加する。セッションマネジャー600 はそ
の内部リスト602 をアップデートするためにこの情報を
使用し、すなわちその内部リスト602 からのステップ事
例に対応する記録を削除する。
応用プログラムの実行が完了したことを示すSTQ1キュー
560 に記録を追加する。セッションマネジャー600 はそ
の内部リスト602 をアップデートするためにこの情報を
使用し、すなわちその内部リスト602 からのステップ事
例に対応する記録を削除する。
【0076】次に、応用マネジャープロセスT3 は出力
写像、ステップの入力および出力パラメータの出力事象
信号のフィールドへの写像を遂行する。出力写像プロセ
スは図10を参照して上に説明された。
写像、ステップの入力および出力パラメータの出力事象
信号のフィールドへの写像を遂行する。出力写像プロセ
スは図10を参照して上に説明された。
【0077】各フローの終わりの最後のステップである
出力制御ステップもまた出力写像を受ける。各出力制御
ステップはSTQ2キューの記録ならびにS R2リストの項目
により表される。これらの記録は応用マネジャープロセ
スT3 により取り上げられ、かつ制御ステップへの入力
信号は入力信号データを位置するために対応S R2記録か
らの作業空間記述子を使用して出力信号に写像される。
出力制御ステップもまた出力写像を受ける。各出力制御
ステップはSTQ2キューの記録ならびにS R2リストの項目
により表される。これらの記録は応用マネジャープロセ
スT3 により取り上げられ、かつ制御ステップへの入力
信号は入力信号データを位置するために対応S R2記録か
らの作業空間記述子を使用して出力信号に写像される。
【0078】応用マネジャープロセスT3 はステップを
実行するためにΦ7キュー630 に1つの記録を発生す
る。Φ7キュー630 のフォーマットは図18に示されてい
る。各出力事象記録は対応ログ記録632 を識別するフィ
ールド、フロー事例634 −638および出力事象を発生す
るステップ事例640 −644 、ステップ事例を例示する入
力条件650 および出力信号発生を選択する出力条件652
、それにプラスして、ステップに関連したすべての出
力事象データフィールドが蓄積されるメモリの領域を指
摘する作業空間記述子656 を有している。
実行するためにΦ7キュー630 に1つの記録を発生す
る。Φ7キュー630 のフォーマットは図18に示されてい
る。各出力事象記録は対応ログ記録632 を識別するフィ
ールド、フロー事例634 −638および出力事象を発生す
るステップ事例640 −644 、ステップ事例を例示する入
力条件650 および出力信号発生を選択する出力条件652
、それにプラスして、ステップに関連したすべての出
力事象データフィールドが蓄積されるメモリの領域を指
摘する作業空間記述子656 を有している。
【0079】次に、ステップ終了プロセスT4 (図13を
見よ)が各出力事象信号のFOEキュー660 の別々の出
力事象記録を発生する。ステップT4 は以下の「ログ記
録データベース」と名付けられたこの文書のセクション
で議論されるようなステップのログ記録も処理する。F
OEキュー660 のフォーマットは図19に示されている。
各出力事象記録は対応するログ記録662 、フロー事例66
4 −668 、および出力事例を発生する発生ステップ事例
670 −678 、それにプラスして、出力事象信号のデータ
フィールドが蓄積されるメモリ領域を指摘する作業空間
記述子686 を識別するフィールドを有している。
見よ)が各出力事象信号のFOEキュー660 の別々の出
力事象記録を発生する。ステップT4 は以下の「ログ記
録データベース」と名付けられたこの文書のセクション
で議論されるようなステップのログ記録も処理する。F
OEキュー660 のフォーマットは図19に示されている。
各出力事象記録は対応するログ記録662 、フロー事例66
4 −668 、および出力事例を発生する発生ステップ事例
670 −678 、それにプラスして、出力事象信号のデータ
フィールドが蓄積されるメモリ領域を指摘する作業空間
記述子686 を識別するフィールドを有している。
【0080】最後に、アーク分解プロセスT5 はFOE
キュー660 の各記録を調べ、アークテーブル250 (図6
を見よ)の対応記録をルックアツプし、次にFIEキュ
ー510 の対応FIE記録を創成する。FIEキューの記
録の構造は図14に関して上に議論された。まだ発生され
なかった新しいフローにその出力事象信号が送られる出
力制御ステップに対して、T1 プロセスはアークテーブ
ル250 で規定されたフロータイプの新しい事例を表す新
しいフロー事例IDを発生する。
キュー660 の各記録を調べ、アークテーブル250 (図6
を見よ)の対応記録をルックアツプし、次にFIEキュ
ー510 の対応FIE記録を創成する。FIEキューの記
録の構造は図14に関して上に議論された。まだ発生され
なかった新しいフローにその出力事象信号が送られる出
力制御ステップに対して、T1 プロセスはアークテーブ
ル250 で規定されたフロータイプの新しい事例を表す新
しいフロー事例IDを発生する。
【0081】このように、ステップの実行の処理の全サ
イクルを完了した。典型的なシステムでは、多数の異な
るフローからの多数のステップは同時に処理され、かつ
処理を待機する任意の1時点で各キューの多数の項目が
存在し得る。各ステップはT1 からT5 ループを通して
そのやり方で実行され、以前のキューのその記録は削除
され、かつ新しい記録はこのループに沿って次のキュー
で記録される。ログ記録はシステム障害により中断され
たステップの回復を許容するようプロセスT1からT5
の各々により発生される。ログ記録発生と保全について
は以下に議論される。
イクルを完了した。典型的なシステムでは、多数の異な
るフローからの多数のステップは同時に処理され、かつ
処理を待機する任意の1時点で各キューの多数の項目が
存在し得る。各ステップはT1 からT5 ループを通して
そのやり方で実行され、以前のキューのその記録は削除
され、かつ新しい記録はこのループに沿って次のキュー
で記録される。ログ記録はシステム障害により中断され
たステップの回復を許容するようプロセスT1からT5
の各々により発生される。ログ記録発生と保全について
は以下に議論される。
【0082】プロセスT1 からT5 の間の動作の特定の
分割は本発明のただ1つの可能な実施例を表しているこ
とに注意すべきである。例えば、T3 プロセスとT4 プ
ロセスは容易に結合できる。しかし、発明者は計算ステ
ップをできる限り迅速に閉塞しかつ引き渡すのが望まし
いと見いだした。従って、プロセスT3 は計算を完了
し、かつ持続的にその結果を蓄積する可能な限り僅かな
作業を行い、次にプロセスT4 は出力事象信号発生のプ
ロセスを完了する。
分割は本発明のただ1つの可能な実施例を表しているこ
とに注意すべきである。例えば、T3 プロセスとT4 プ
ロセスは容易に結合できる。しかし、発明者は計算ステ
ップをできる限り迅速に閉塞しかつ引き渡すのが望まし
いと見いだした。従って、プロセスT3 は計算を完了
し、かつ持続的にその結果を蓄積する可能な限り僅かな
作業を行い、次にプロセスT4 は出力事象信号発生のプ
ロセスを完了する。
【0083】通知ステップ 図3と図13を参照すると、定義されたフローのステップ
152 は自動化ステップ(計算機あるいは他のマシンによ
り自動的に遂行された)ならびに個人あるいは他の独立
主体(すなわちフローコントローラの観点から自律であ
る主体)によりあるいはその制御の下で遂行される「手
動」ステップの双方を含むことができる。この展望か
ら、本発明の目的は定義されたプロジェクトと一緒に作
業をする多数の主体により遂行されたアクティビティと
協調すべきである。本発明の特定の応用に依存して、
「主体」は多数の人間代理人(human agent )を含むこ
とができ、その各々にプロジェクトが次の段階に進める
前に定義された種々のタスクを遂行する必要があり、か
つまた定義されたプロジェクトが一度特定点に達したな
ら定義されたタスクを遂行する多数の計算機とマシンも
含むことができる。
152 は自動化ステップ(計算機あるいは他のマシンによ
り自動的に遂行された)ならびに個人あるいは他の独立
主体(すなわちフローコントローラの観点から自律であ
る主体)によりあるいはその制御の下で遂行される「手
動」ステップの双方を含むことができる。この展望か
ら、本発明の目的は定義されたプロジェクトと一緒に作
業をする多数の主体により遂行されたアクティビティと
協調すべきである。本発明の特定の応用に依存して、
「主体」は多数の人間代理人(human agent )を含むこ
とができ、その各々にプロジェクトが次の段階に進める
前に定義された種々のタスクを遂行する必要があり、か
つまた定義されたプロジェクトが一度特定点に達したな
ら定義されたタスクを遂行する多数の計算機とマシンも
含むことができる。
【0084】人間主体を含む定義されたプロジェクトの
タイプは著しく変化する。実例は自動車エンジンあるい
は時計の製造プロセス、あるいは新聞の編集の準備と組
立のプロセスさえも含んでいる。フロー仕様はタスク
(すなわちステップ)が遂行される必要のある順序を示
し、また各ステップを実行する必要のある主体のタイプ
を規定する。
タイプは著しく変化する。実例は自動車エンジンあるい
は時計の製造プロセス、あるいは新聞の編集の準備と組
立のプロセスさえも含んでいる。フロー仕様はタスク
(すなわちステップ)が遂行される必要のある順序を示
し、また各ステップを実行する必要のある主体のタイプ
を規定する。
【0085】タイプ参照テーブルの各エントリー(図6
を見よ)はステップを実行するために「リソース」(す
なわち、計算機あるいは選ばれた人間のような他の代理
人)を選択するソフトウエアルーチンを直接的あるいは
間接的に指摘するリソース分解関数ID 236を含むこと
に注意されたい。リソース分解関数がステップを遂行す
るために人間主体を選択する場合、選択規準は典型的に
は選択すべき個人の所要の能力を示すジョブタイトルを
規定し、ならびに人間の実在作業負荷あるいは遂行され
ているジョブに対する個人の関係のような他の規準も規
定しよう。
を見よ)はステップを実行するために「リソース」(す
なわち、計算機あるいは選ばれた人間のような他の代理
人)を選択するソフトウエアルーチンを直接的あるいは
間接的に指摘するリソース分解関数ID 236を含むこと
に注意されたい。リソース分解関数がステップを遂行す
るために人間主体を選択する場合、選択規準は典型的に
は選択すべき個人の所要の能力を示すジョブタイトルを
規定し、ならびに人間の実在作業負荷あるいは遂行され
ているジョブに対する個人の関係のような他の規準も規
定しよう。
【0086】図13を参照すると、人間主体により実行す
べき「手動」ステップに関連する応用プログラムは典型
的には特定の個人、あるいは規定された「役割」(例え
ば特定のジョブタイトルあるいは記述)に適合する任意
の利用可能な個人に通知を送ることをそのただ1つのタ
スクとして有するであろう。典型的には、この通知は
(A)特定のジョブが既に作業していること、および
(B)プロジェクトがその次の位相に進めるようにプロ
ジェクトの個人の作業が完了する場合に特定の指令が計
算機システムに入らなければならないことを述べるであ
ろう。
べき「手動」ステップに関連する応用プログラムは典型
的には特定の個人、あるいは規定された「役割」(例え
ば特定のジョブタイトルあるいは記述)に適合する任意
の利用可能な個人に通知を送ることをそのただ1つのタ
スクとして有するであろう。典型的には、この通知は
(A)特定のジョブが既に作業していること、および
(B)プロジェクトがその次の位相に進めるようにプロ
ジェクトの個人の作業が完了する場合に特定の指令が計
算機システムに入らなければならないことを述べるであ
ろう。
【0087】上にも議論したように、ステップが自動化
計算あるいは手動ステップであるかどうかにかかわら
ず、T2 プロセスはSTQ1キュー560 を介してセッション
マネジャー600 にメッセージを送る。セッションマネジ
ャー600 はステータスリスト602 にステップを記入す
る。人間主体により遂行すべき手動ステップさえも計算
機により名目的に実行され、選択された計算機プロセッ
サは人間主体に通知する応用プログラムを実行する必要
がある。
計算あるいは手動ステップであるかどうかにかかわら
ず、T2 プロセスはSTQ1キュー560 を介してセッション
マネジャー600 にメッセージを送る。セッションマネジ
ャー600 はステータスリスト602 にステップを記入す
る。人間主体により遂行すべき手動ステップさえも計算
機により名目的に実行され、選択された計算機プロセッ
サは人間主体に通知する応用プログラムを実行する必要
がある。
【0088】この通知ステップは実行中の他のステップ
と同じ基本ステップにより進行する。このように、T3
プロセスを介して入力パラメータを取り上げる。通知ス
テップの入力パラメータは特定ステップを遂行する人間
主体により必要とされた情報を含むであろう。その情報
は実行すべきタスクを単に識別するか、あるいはそれは
1つ以上の関連ファイルのようなものを含むことができ
る。情報はまたステップ間のアークに関連するデータフ
ローの外部の機構を使用して主体に伝えられる。例え
ば、プロジェクトに関係する情報は2次メモリの種々の
ファイルに蓄積される。通知メッセージが人間あるいは
プロジェクトで作業する自動化された主体にさえも送ら
れる場合、通知メッセージは入力パラメータとしてファ
イルのコピーに実際に伝えるよりもむしろファイルの名
前を単に示すであろう。
と同じ基本ステップにより進行する。このように、T3
プロセスを介して入力パラメータを取り上げる。通知ス
テップの入力パラメータは特定ステップを遂行する人間
主体により必要とされた情報を含むであろう。その情報
は実行すべきタスクを単に識別するか、あるいはそれは
1つ以上の関連ファイルのようなものを含むことができ
る。情報はまたステップ間のアークに関連するデータフ
ローの外部の機構を使用して主体に伝えられる。例え
ば、プロジェクトに関係する情報は2次メモリの種々の
ファイルに蓄積される。通知メッセージが人間あるいは
プロジェクトで作業する自動化された主体にさえも送ら
れる場合、通知メッセージは入力パラメータとしてファ
イルのコピーに実際に伝えるよりもむしろファイルの名
前を単に示すであろう。
【0089】同様に間接的な情報伝達機構は、他のもの
によりアクセス可能なあらかじめ定義された場所(ディ
スクファイルのようなもの)に情報を読み取るか書き込
むかのいずれかのステップを各作業フローに含むことに
より、別々の作業フロー事例間の情報(それは通常お互
いに通信できない)を通信するのに使用できる。
によりアクセス可能なあらかじめ定義された場所(ディ
スクファイルのようなもの)に情報を読み取るか書き込
むかのいずれかのステップを各作業フローに含むことに
より、別々の作業フロー事例間の情報(それは通常お互
いに通信できない)を通信するのに使用できる。
【0090】人間主体により遂行すべき長時間を要する
ステップに対して、応用プログラム620 は実際には多数
のプログラムからなっている。例えば、1つのプログラ
ムが通知を送り、第2プログラムは(しばしば代理人と
呼ばれた)人間主体への残りのメッセージの周期的フォ
ローアップを送るのに使用でき、そして第3プログラム
はステップが完了したことを示すため人間代理人により
使用できる。この例では、第3プログラムは「応用プロ
グラム」が行われたことをプロセスT3 に通知し、かつ
発生された任意の出力へのポインタをT3 に伝え、その
後でシステムの履歴データベースのステップの実行結果
を表すデータを持続的に蓄積する。
ステップに対して、応用プログラム620 は実際には多数
のプログラムからなっている。例えば、1つのプログラ
ムが通知を送り、第2プログラムは(しばしば代理人と
呼ばれた)人間主体への残りのメッセージの周期的フォ
ローアップを送るのに使用でき、そして第3プログラム
はステップが完了したことを示すため人間代理人により
使用できる。この例では、第3プログラムは「応用プロ
グラム」が行われたことをプロセスT3 に通知し、かつ
発生された任意の出力へのポインタをT3 に伝え、その
後でシステムの履歴データベースのステップの実行結果
を表すデータを持続的に蓄積する。
【0091】通知ステップの応用プログラムは通知が送
られる主体から「タスクが完了された」という指令の受
信が戻されるまでその実行を完了しない。多くの実例で
は、ファイルあるいは他のデータの組はフローの引き続
くステップに進むシステムに特定のステップを完了する
主体により運ばれるであろう。例えば、もし人間主体の
ジョブが規定された数の新聞「コラムインチ(column i
nches )」に適合するよう新聞記事を編集したなら、こ
のステップに関連する応用プログラムからの出力は編集
された新聞記事を含むファイルであろう。
られる主体から「タスクが完了された」という指令の受
信が戻されるまでその実行を完了しない。多くの実例で
は、ファイルあるいは他のデータの組はフローの引き続
くステップに進むシステムに特定のステップを完了する
主体により運ばれるであろう。例えば、もし人間主体の
ジョブが規定された数の新聞「コラムインチ(column i
nches )」に適合するよう新聞記事を編集したなら、こ
のステップに関連する応用プログラムからの出力は編集
された新聞記事を含むファイルであろう。
【0092】代案として、人間主体により遂行されたス
テップの結果は引き続くステップにより使用されるディ
スク上のファイルにステップの結果を蓄積することによ
りフローコントローラに関連するデータフローの外部の
機構を使用して運ぶことができる。このシナリオでは、
ファイルは以前に同意したファイル名に割り当てられる
か(その場合にはステップは完了したことの指示の外は
どんな出力も生成しない)、あるいはファイル名は1つ
以上の出力事象信号の出力パラメータとして引き続くス
テップに伝えることができるかのいずれかであり得る。
テップの結果は引き続くステップにより使用されるディ
スク上のファイルにステップの結果を蓄積することによ
りフローコントローラに関連するデータフローの外部の
機構を使用して運ぶことができる。このシナリオでは、
ファイルは以前に同意したファイル名に割り当てられる
か(その場合にはステップは完了したことの指示の外は
どんな出力も生成しない)、あるいはファイル名は1つ
以上の出力事象信号の出力パラメータとして引き続くス
テップに伝えることができるかのいずれかであり得る。
【0093】ログ記録データベースとシステム障害回復 すべてのトランザクション処理システムの重要な態様は
システム障害の信頼性ある回復である。長時間運転計算
に対して、中間結果の回復はそのごく初期においてその
ような計算の不必要な再スタートを回避することで重要
である。
システム障害の信頼性ある回復である。長時間運転計算
に対して、中間結果の回復はそのごく初期においてその
ような計算の不必要な再スタートを回避することで重要
である。
【0094】図20を参照すると、好ましい実施例で、ロ
グ記録のいくつかのタイプが発生されている。ログ記録
の主要なタイプは図20にリストされている。それから分
かるように、FIE,FOE,IFS(例示フローステ
ップ:instantiate flow step )およびTFS(終了フ
ローステップ:terminate flow step )ログ記録はFI
E,FOE,Φ5キューおよびΦ7キューからの記録の
コピーを含んでいる。FIEログ記録はT5 アーク分解
プロセスとポストサーバーにより発生され、FOE記録
はT4 終了プロセスにより発生され、IFS記録はT1
入力データ写像プロセスにより発生され、そしてTFS
記録はT3 応用マネジャープロセスにより発生される。
グ記録のいくつかのタイプが発生されている。ログ記録
の主要なタイプは図20にリストされている。それから分
かるように、FIE,FOE,IFS(例示フローステ
ップ:instantiate flow step )およびTFS(終了フ
ローステップ:terminate flow step )ログ記録はFI
E,FOE,Φ5キューおよびΦ7キューからの記録の
コピーを含んでいる。FIEログ記録はT5 アーク分解
プロセスとポストサーバーにより発生され、FOE記録
はT4 終了プロセスにより発生され、IFS記録はT1
入力データ写像プロセスにより発生され、そしてTFS
記録はT3 応用マネジャープロセスにより発生される。
【0095】IFP(例示フロープロセス:instantiat
e flow process)およびTFP(終了フロープロセス:
terminate flow process)ログ記録はT1 およびT4 プ
ロセスによりそれぞれ発生される。WSPログ記録は種
々のキュー記録の作業空間記述子により参照されたデー
タ値を含んでいる。WSPログ記述は各データのデータ
タイプと関連事象フィールドがWSPログ記録により規
定されるように自己記録フォーマット(self-documenti
ng format )にこのデータを蓄積する。さらに、FI
E、FOEおよび他のログ記録参照は、それらの記録の
終わりで作業空間記述子フィールドによるWSPログ記
録の1つに対応し、それによりシステム障害からの回復
に必要な事象フィールドデータ値にアクセスする。
e flow process)およびTFP(終了フロープロセス:
terminate flow process)ログ記録はT1 およびT4 プ
ロセスによりそれぞれ発生される。WSPログ記録は種
々のキュー記録の作業空間記述子により参照されたデー
タ値を含んでいる。WSPログ記述は各データのデータ
タイプと関連事象フィールドがWSPログ記録により規
定されるように自己記録フォーマット(self-documenti
ng format )にこのデータを蓄積する。さらに、FI
E、FOEおよび他のログ記録参照は、それらの記録の
終わりで作業空間記述子フィールドによるWSPログ記
録の1つに対応し、それによりシステム障害からの回復
に必要な事象フィールドデータ値にアクセスする。
【0096】STQ1キュー、STQ2キューおよびS R2作業動
作リストに対応するどんなログ記録も存在しない。しか
し、STQ1キュー、STQ2キューおよびS R2作業動作リスト
の各々は、これらのエントリーデータ構造がシステム障
害の事象で再構成されるように独立に持続的に蓄積され
る。
作リストに対応するどんなログ記録も存在しない。しか
し、STQ1キュー、STQ2キューおよびS R2作業動作リスト
の各々は、これらのエントリーデータ構造がシステム障
害の事象で再構成されるように独立に持続的に蓄積され
る。
【0097】ここでログ記録データベースとも呼ばれる
履歴データベース116 の構造は2つのテーブル700 と72
0 を含んでいる。第1のテーブル700 はログ記録を含
み、その各々はログ記録のタイプを示す「記録タイプ」
フィールド702 、規定されたログ記録の迅速なアクセス
を備える独自キー値704 (キー値はその特定の記録タイ
プに対して独自あることのみが必要である)、ログ記録
がシステム回復に必要であるかどうかを示す忘却フラグ
(Forgotten Flag)706 、ログ記録の全サイズを示すバ
ッファサイズ値708 、およびログ記録のすべてのデータ
フィールドが蓄積されているデータバッファ710 を含ん
でいる。
履歴データベース116 の構造は2つのテーブル700 と72
0 を含んでいる。第1のテーブル700 はログ記録を含
み、その各々はログ記録のタイプを示す「記録タイプ」
フィールド702 、規定されたログ記録の迅速なアクセス
を備える独自キー値704 (キー値はその特定の記録タイ
プに対して独自あることのみが必要である)、ログ記録
がシステム回復に必要であるかどうかを示す忘却フラグ
(Forgotten Flag)706 、ログ記録の全サイズを示すバ
ッファサイズ値708 、およびログ記録のすべてのデータ
フィールドが蓄積されているデータバッファ710 を含ん
でいる。
【0098】第2のテーブル720 は各ログ記録の「先行
者(predecessor )」の発見に使用され、それはフロー
の処理の事象の連鎖の再現を可能とする。このテーブル
720の各記録は第1のテーブル700 にあるのと同じ記録
タイプとキー値、それにプラスして、ログ記録の先行者
の記録タイプとキー値を含んでいる。
者(predecessor )」の発見に使用され、それはフロー
の処理の事象の連鎖の再現を可能とする。このテーブル
720の各記録は第1のテーブル700 にあるのと同じ記録
タイプとキー値、それにプラスして、ログ記録の先行者
の記録タイプとキー値を含んでいる。
【0099】図21と図22を参照すると、先行者ログ記録
の概念は実例により説明される。図21において、4つの
ステップS1 ,S2 ,S3 ,S4 を持つフローが示され
ている。4つのステップは入力ポートと出力ポートを有
し、ここではP1 からP9 とラベルされている。フロー
は外部的に導かれた2つの入力事象信号の受信により開
始される。
の概念は実例により説明される。図21において、4つの
ステップS1 ,S2 ,S3 ,S4 を持つフローが示され
ている。4つのステップは入力ポートと出力ポートを有
し、ここではP1 からP9 とラベルされている。フロー
は外部的に導かれた2つの入力事象信号の受信により開
始される。
【0100】フロー750 の実行の間に発生されたログ記
録の組を理解するために、図13, 21, 22を参照して、図
13の処理ループを眺めるのは有用である。図22の時間ラ
インは左から右に進み、かつ図22の頂上の行は各ログ記
録を発生するプロセスを示している。各ボツクスの各説
明文は発生されたログ記録の記録タイプならびにログ記
録に関連したステップあるいは入力/出力ポートを示し
ている。時間の逆向きを示す矢印はどのログ記録が他の
各ログ記録の先行者であるかを示している。
録の組を理解するために、図13, 21, 22を参照して、図
13の処理ループを眺めるのは有用である。図22の時間ラ
インは左から右に進み、かつ図22の頂上の行は各ログ記
録を発生するプロセスを示している。各ボツクスの各説
明文は発生されたログ記録の記録タイプならびにログ記
録に関連したステップあるいは入力/出力ポートを示し
ている。時間の逆向きを示す矢印はどのログ記録が他の
各ログ記録の先行者であるかを示している。
【0101】図22の左側より開始して、最初の2つのF
IEログ記録は外部的に導かれた入力信号を反映してい
る。次に、T1 プロセスはフローを例示し、IFPログ
記録とフローのステップS1 の創成がまた例示され、I
FS記録の創成が例示される。ステップS1 の実行の後
で、T3 プロセスはTFSログ記録を発生し、そしてT
4 プロセスはポートP1 とP2 に発生された出力事象信
号に対応する2つのFOEログ記録を発生する。各ログ
記録が計算プロセスのその先行者を指摘するやり方に沿
ってログ記録を発生するプロセスT1 ,T3 ,T4 ,T
5 により、フローのステップS4 が完了するまで事象の
この連鎖は継続する。
IEログ記録は外部的に導かれた入力信号を反映してい
る。次に、T1 プロセスはフローを例示し、IFPログ
記録とフローのステップS1 の創成がまた例示され、I
FS記録の創成が例示される。ステップS1 の実行の後
で、T3 プロセスはTFSログ記録を発生し、そしてT
4 プロセスはポートP1 とP2 に発生された出力事象信
号に対応する2つのFOEログ記録を発生する。各ログ
記録が計算プロセスのその先行者を指摘するやり方に沿
ってログ記録を発生するプロセスT1 ,T3 ,T4 ,T
5 により、フローのステップS4 が完了するまで事象の
この連鎖は継続する。
【0102】すべての進行長時間運転トランザクション
のすべてのログ記録は典型的にはディスク蓄積デバイス
に通常簡単な時間直列順序で持続的に蓄積される。フロ
ーが完了するといつでも、T4 プロセスは終了フロー
(TFP)ログ記録ならびに各出力事象のFOEログ記
録を発生する。次にT4 プロセスは図20に示されたログ
記録の忘却フラグフィールドを使用して「忘却」された
ものとしてシステム回復に不必要なフローのすべてのロ
グ記録をマークする。特に、IFP、TFPログ記録、
およびフローにより出力された出力事象のFOEログ記
録のみがシステム回復の目的に保持する必要がある。完
了したフローのすべてのログ記録を通すトレースは第2
履歴データベーステーブル720 により備えられた先行者
ポインタを使用して遂行される。
のすべてのログ記録は典型的にはディスク蓄積デバイス
に通常簡単な時間直列順序で持続的に蓄積される。フロ
ーが完了するといつでも、T4 プロセスは終了フロー
(TFP)ログ記録ならびに各出力事象のFOEログ記
録を発生する。次にT4 プロセスは図20に示されたログ
記録の忘却フラグフィールドを使用して「忘却」された
ものとしてシステム回復に不必要なフローのすべてのロ
グ記録をマークする。特に、IFP、TFPログ記録、
およびフローにより出力された出力事象のFOEログ記
録のみがシステム回復の目的に保持する必要がある。完
了したフローのすべてのログ記録を通すトレースは第2
履歴データベーステーブル720 により備えられた先行者
ポインタを使用して遂行される。
【0103】システム障害の事象において、履歴データ
ベースのログ記録はFIE、FOE、Φ5キューおよび
Φ7キューに属するすべての項目を再生するように検査
される。これは各長時間運転トランザクションのログ記
録のレビュー、システム障害により各フローとステップ
が中断された点の発見、ログ記録のデータから対応キュ
ー記録の再生、およびT1 プロセスからT5 プロセスの
再スタートにより行われる。
ベースのログ記録はFIE、FOE、Φ5キューおよび
Φ7キューに属するすべての項目を再生するように検査
される。これは各長時間運転トランザクションのログ記
録のレビュー、システム障害により各フローとステップ
が中断された点の発見、ログ記録のデータから対応キュ
ー記録の再生、およびT1 プロセスからT5 プロセスの
再スタートにより行われる。
【0104】本発明は特定の僅かな実施例を参照して記
述されているが、この記述は本発明の例示的なもので、
かつ本発明を制限するものと解釈すべきでない。本発明
の真の精神と範囲を逸脱することなく当業者にとって種
々の修正が可能であろう。
述されているが、この記述は本発明の例示的なもので、
かつ本発明を制限するものと解釈すべきでない。本発明
の真の精神と範囲を逸脱することなく当業者にとって種
々の修正が可能であろう。
【図1】図1は作業フローの遂行に使用された分散型計
算機システムのブロック線図である。
算機システムのブロック線図である。
【図2】図2は作業フロー処理システムの1次ソフトウ
エア成分のブロック線図である。
エア成分のブロック線図である。
【図3】図3は作業フローを図式的に描いている。
【図4】図4は単一ステップの成分のブロック線図であ
る。
る。
【図5】図5は作業フロー記述データベースに使用され
た1次テーブルのブロック線図である。
た1次テーブルのブロック線図である。
【図6】図6は作業フロー記述データベーステーブルの
記録のデータ構造の1つを描いている。
記録のデータ構造の1つを描いている。
【図7】図7は作業フロー記述データベーステーブルの
記録のデータ構造の別の1つを描いている。
記録のデータ構造の別の1つを描いている。
【図8】図8は特定ステップを例示化する代案の入力条
件を表す一組の入力条件テーブルエントリのブロック線
図である。
件を表す一組の入力条件テーブルエントリのブロック線
図である。
【図9】図9は好ましい実施例の作業フロー記述データ
ベースの応用パラメータ識別テーブルのデータ構造を描
いている。
ベースの応用パラメータ識別テーブルのデータ構造を描
いている。
【図10】図10は一組の出力事象信号に応用プログラ
ムにより発生された出力パラメータを写像するプロセス
のフロー線図である。
ムにより発生された出力パラメータを写像するプロセス
のフロー線図である。
【図11】図11は出力パラメータの写像に使用された
好ましい実施例の作業フロー記述データベースのテーブ
ルのデータ構造を描いている。
好ましい実施例の作業フロー記述データベースのテーブ
ルのデータ構造を描いている。
【図12】図12は一組のステップが繰り返されるフロ
ーを図式的に表している。
ーを図式的に表している。
【図13】図13は作業フローのステップの例示と実行
を制御する好ましい実施例で使用されたプロセスとデー
タ構造を表すフロー管理システムのブロック線図であ
る。
を制御する好ましい実施例で使用されたプロセスとデー
タ構造を表すフロー管理システムのブロック線図であ
る。
【図14】図14は入力ならびに出力事象信号を表し、
かつ実行されているプロセスのステップを表す図13の
フロー管理システムにより使用されたキューのデータ構
造を表している。
かつ実行されているプロセスのステップを表す図13の
フロー管理システムにより使用されたキューのデータ構
造を表している。
【図15】図15は入力ならびに出力事象信号を表し、
かつ実行されているプロセスのステップを表す図13の
フロー管理システムにより使用されたキューのデータ構
造を表している。
かつ実行されているプロセスのステップを表す図13の
フロー管理システムにより使用されたキューのデータ構
造を表している。
【図16】図16は入力ならびに出力事象信号を表し、
かつ実行されているプロセスのステップを表す図13の
フロー管理システムにより使用されたキューのデータ構
造を表している。
かつ実行されているプロセスのステップを表す図13の
フロー管理システムにより使用されたキューのデータ構
造を表している。
【図17】図17は入力ならびに出力事象信号を表し、
かつ実行されているプロセスのステップを表す図13の
フロー管理システムにより使用されたキューのデータ構
造を表している。
かつ実行されているプロセスのステップを表す図13の
フロー管理システムにより使用されたキューのデータ構
造を表している。
【図18】図18は入力ならびに出力事象信号を表し、
かつ実行されているプロセスのステップを表す図13の
フロー管理システムにより使用されたキューのデータ構
造を表している。
かつ実行されているプロセスのステップを表す図13の
フロー管理システムにより使用されたキューのデータ構
造を表している。
【図19】図19は入力ならびに出力事象信号を表し、
かつ実行されているプロセスのステップを表す図13の
フロー管理システムにより使用されたキューのデータ構
造を表している。
かつ実行されているプロセスのステップを表す図13の
フロー管理システムにより使用されたキューのデータ構
造を表している。
【図20】図20は好ましい実施例に使用された履歴デ
ータベースの構造を描いている。
ータベースの構造を描いている。
【図21】図21は好ましい実施例の計算フローを表し
ている。
ている。
【図22】図22は好ましい実施例の履歴データベース
に蓄積されたログ記録の図21に対応する組を表してい
る。
に蓄積されたログ記録の図21に対応する組を表してい
る。
100 分散型計算機システム 102 計算機 104 計算機 106 計算機 108 計算機 110 計算機 112 ローカルもしくは広域通信網 114 作業フロー記述データベース 116 作業フロー履歴データベース 118 表示装置 120 フロー管理システム 122 記述マネジャーモジュール 124 フローエディター 126 履歴マネジャー 128 履歴検査子モジュール 130 フローコントローラ 132 フローデバッガー 134 フローシミュレータ 150 フロー 152 ステップ 154 データ信号パスあるいはアーク 156 サプフロー 158 入力ポート 160 入力制御ステップ 162 出力制御ステップ 170 入力条件評価モジュール 172 入力データ写像モジュール 174 応用ルーチンあるいは応用プログラム 176 出力データ写像モジュール 178 出力条件評価モジュール 180 出力ポート 200 フローテーブル 201 記録 202 フロータイプID 204 入力スクリプトポインタ 206 出力スクリプトポインタ 208 例外ハンドラスクリプトポインタ 210 図形情報ポインタ 212 フロータイプ名 221 記録 220 タイプ参照テーブル 222 タイプ参照ID 224 フロータイプID 226 フロー/ステップID 228 プロログID 230 エピログID 232 補償ルーチンポインタ 234 分画値 236 リソース分解関数ID 237 タイムアウト期間 238 応用フラグあるいはAPフラグ 240 リソース分解関数 242 リソースのリスト 250 アークテーブル 251 記録 252 アークID 254 フロータイプID 256 フロムタイプ参照ID 258 フロムポートID 260 ツータイプ参照ID 262 ツーポートID 264 アーク名 270 ステップタイプテーブル 271 記録 272 ステップタイプID 274 応用ID 276 入力スクリプトポインタ 278 出力スクリプトポインタ 280 ステップ名 282 応用名 300 ポートテーブルあるいはAPIテーブル 301 ポートテーブル記録 302 ポートID 304 フロー/ステップID 306 事象タイプID 308 ポートタイプ 310 ポート名 320 事象タイプテーブルあるいはAPIテーブル 321 記録 322 事象フィールドID 324 事象タイプID 326 データタイプ値 328 サイズ 330 フィールド名 340 APIテーブルあるいは入力データ写像テーブル 341 記録 342 条件ID 344 ステップタイプID 346 ポートID 348 事象フィールドID 350 パラメータID 360 APIテーブルあるいは入力条件テーブル 361 記録 362 ステップID 364 条件ID 366 ポートID 368 フラグ値 370 位置値 380 APIテーブルあるいは応用インタフェーステー
ブル 381 行 382 パラメータID 384 パラメータ名 386 応用ID 388 パラメータタイプ 390 データタイプ指示子 392 位置値 400 出力条件評価テーブル 401 記録 402 ステップタイプID 404 評価パラメータのタイプ値あるいはフィールド 406 パラメータあるいはフィールドあるいは入力条件
ID 408 入力事象フィールドID 420 値アウト条件マップテーブル 421 記録 422 ステップタイプID 424 タイプ値 426 出力条件ID 428 入力条件ID/ヌル 430 値 440 出力条件テーブル 441 記録 442 出力条件ID 444 ステップタイプID 446 出力ポートID 460 出力データ写像テーブル 461 記録 462 条件ID 464 ステップタイプID 466 入力ポートIDあるいはヌル 468 入力フィールドIDあるいは出力パラメータID 470 作業フローあるいは出力ポートID 472 ステップあるいは出力フィールドID 474 ステップ 476 ステップ 480 出力ポート 482 出力ポート 500 ポストサーバー 510 FIEキュー 511 入力事象信号 512 閉じ込めフロー事例ID 514 ステップタイプID 516 入力ポートID 518 ログ参照 520 閉じ込めフローフロータイプID 522 フローリソース 524 アークID 526 リソースデータ 530 タイムスタンプ 532 リトライパラメータ 534 作業空間記述子 540 Φ5キュー 541 Φ5キュー記録 542 作業空間記述子 544 ステップ事例ID 548 ステップリソースID 560 STQ1キュー 561 記録 570 STQ2キュー 580 S R2作業動作リスト 581 記録 582 作業空間記述子 584 状態フィールド 586 時間設定 588 累積時間 590 現行位置 600 セッションマネジャー 602 ステータスリストあるいは内部リスト 610 顧客プロセス 620 応用プログラム 630 Φ7キュー 631 記録 632 ログ参照 634 フロー事例ID 636 フロー事例あるいはフロータイプID 638 フロー事例あるいはフローリソースID 640 ステップ事例ID 642 ステップ事例あるいはステップタイプID 644 ステップ事例あるいはステップリソースID/ヌ
ル 650 入力条件ID 652 出力条件ID 656 作業空間記述子 660 FOEキュー 661 記録 662 ログ参照 664 フロー事例ID 666 フロー事例あるいはフロータイプID 668 フロー事例あるいはフローリソースID 670 ステップ事例 674 ステップ事例 676 ステップ事例 678 ステップ事例 686 作業空間記述子 700 第1テーブル 702 「記録タイプ」フィールド 704 キー値 706 忘却フラグ 708 バッファサイズ値 710 データバッファ 720 第2履歴データベーステーブル 750 フロー
ブル 381 行 382 パラメータID 384 パラメータ名 386 応用ID 388 パラメータタイプ 390 データタイプ指示子 392 位置値 400 出力条件評価テーブル 401 記録 402 ステップタイプID 404 評価パラメータのタイプ値あるいはフィールド 406 パラメータあるいはフィールドあるいは入力条件
ID 408 入力事象フィールドID 420 値アウト条件マップテーブル 421 記録 422 ステップタイプID 424 タイプ値 426 出力条件ID 428 入力条件ID/ヌル 430 値 440 出力条件テーブル 441 記録 442 出力条件ID 444 ステップタイプID 446 出力ポートID 460 出力データ写像テーブル 461 記録 462 条件ID 464 ステップタイプID 466 入力ポートIDあるいはヌル 468 入力フィールドIDあるいは出力パラメータID 470 作業フローあるいは出力ポートID 472 ステップあるいは出力フィールドID 474 ステップ 476 ステップ 480 出力ポート 482 出力ポート 500 ポストサーバー 510 FIEキュー 511 入力事象信号 512 閉じ込めフロー事例ID 514 ステップタイプID 516 入力ポートID 518 ログ参照 520 閉じ込めフローフロータイプID 522 フローリソース 524 アークID 526 リソースデータ 530 タイムスタンプ 532 リトライパラメータ 534 作業空間記述子 540 Φ5キュー 541 Φ5キュー記録 542 作業空間記述子 544 ステップ事例ID 548 ステップリソースID 560 STQ1キュー 561 記録 570 STQ2キュー 580 S R2作業動作リスト 581 記録 582 作業空間記述子 584 状態フィールド 586 時間設定 588 累積時間 590 現行位置 600 セッションマネジャー 602 ステータスリストあるいは内部リスト 610 顧客プロセス 620 応用プログラム 630 Φ7キュー 631 記録 632 ログ参照 634 フロー事例ID 636 フロー事例あるいはフロータイプID 638 フロー事例あるいはフローリソースID 640 ステップ事例ID 642 ステップ事例あるいはステップタイプID 644 ステップ事例あるいはステップリソースID/ヌ
ル 650 入力条件ID 652 出力条件ID 656 作業空間記述子 660 FOEキュー 661 記録 662 ログ参照 664 フロー事例ID 666 フロー事例あるいはフロータイプID 668 フロー事例あるいはフローリソースID 670 ステップ事例 674 ステップ事例 676 ステップ事例 678 ステップ事例 686 作業空間記述子 700 第1テーブル 702 「記録タイプ」フィールド 704 キー値 706 忘却フラグ 708 バッファサイズ値 710 データバッファ 720 第2履歴データベーステーブル 750 フロー
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイチュン スー アメリカ合衆国 カリフォルニア州 94022 ロス アルトス ヒルズ リアン ダー ドライブ 12717 (72)発明者 カール クレイスナー アメリカ合衆国 カリフォルニア州 95032 ロス ガトーズ プレサー オー ク ロード 316897
Claims (9)
- 【請求項1】 多数の相互接続された計算機を有する分
散型計算機システムにおいて、 長時間運転トランザクション管理装置が、 長時間運転トランザクションの間のデータフローを有す
る一組のステップとして多数の長時間運転トランザクシ
ョンの各々を表すフロー記述データを蓄積し、前記各ス
テップに出入りするデータフローを表す手段を含んでい
るフロー記述手段と、 対応する入力事象が受信された場合に前記多数の長時間
運転トランザクションの一つの事例を創成しかつ長時間
運転トランザクションの前記創成された事例の実行を制
御するフローコントローラ手段であって、前記フロー記
述データにより表される長時間運転トランザクションの
各創成された事例に対するステップの組の実行を開始す
ることにより長時間運転トランザクションの前記創成さ
れた事例を実行し、各実行されたステップからの結果を
継続的に蓄積する手段を含んでいいる、前記フロー記述
手段へ結合されたフローコントローラ手段、および、 それの実行の間前記長時間運転トランザクションの前記
のものの前記創成された事例に関するステータスデータ
を蓄積し検索する手段を含み、そこで前記ステータスデ
ータが前記長時間運転トランザクションの前記のものの
前記創成された事例の前記各ステップに対するステータ
ス情報を含んでいる履歴管理手段、を具えており、 それにより長時間運転トランザクションがステップのユ
ニットで実行され、各長時間運転トランザクションのス
テータスが前記各長時間運転トランザクションに関連す
るステップの実行に関するステータスデータの蓄積によ
りトラックされる長時間運転トランザクション管理シス
テム。 - 【請求項2】 請求項1記載の長時間運転トランザクシ
ョン管理システムであって前記フロー記述手段が各長時
間運転トランザクションの各ステップにより発生した出
力事象信号を定義する出力事象テーブル手段と、各長時
間運転トランザクションの各ステップに対して入力ポー
トを定義するポートテーブル手段、および宛先ステップ
と前記出力事象信号が送られるべき前記宛先ステップの
入力ポートとを定義された各出力事象信号に対して示す
データを蓄積するアークテーブル手段を含んでおり、 前記フローコントローラ手段が、(A)前記多数の長時
間運転トランザクションの前記創成された事例の実行さ
れたステップにより発生した出力パラメータを受信し、
かつ前記出力事象テーブル手段に従って一組の対応する
出力事象信号を発生するステップ終了手段と、(B)前
記アークテーブル手段に従って前記多数の長時間運転ト
ランザクションの前記創成された事例の対応するステッ
プ入力ポートへ前記出力事象信号を経路指定するアーク
分解手段を含んでいる、長時間運転トランザクション管
理システム。 - 【請求項3】 請求項1記載の長時間運転トランザクシ
ョン管理システムであって前記フローコントローラ手段
が、(A)一つの前記多数の長時間運転トランザクショ
ンの創成された各事例と、(B)一つの前記多数の長時
間運転トランザクションの創成された各事例の実行の終
了と、(C)一つの前記多数の長時間運転トランザクシ
ョンのステップの創成された各事例、および(D)一つ
の前記多数の長時間運転トランザクションのステップの
創成された各事例の終了、に対応する持続的なログ記録
を発生する手段を含み、かつ前記長時間運転トランザク
ション管理システムが前記持続的ログ記録をレビューす
ることによりシステム障害によって中断された長時間運
転トランザクションを再スタートし、かつ既に終了され
たそれのステップを再実行することを回避するように前
記中断された長時間運転トランザクションの実行を再ス
タートするトランザクション再スタート手段を含み、 前記フロー記述手段は任意の特定された一つの前記ステ
ップに対して、(A)複数の出力条件、(B)前記ステ
ップを実行した後に一つの前記出力条件を選択する判定
基準、(C)各事象信号に含まれるべきパラメータの仕
様を含んで、前記ステップの実行の後に発生されるべ
き、定義された各出力条件に関する事象信号、および
(D)前記出力事象信号が送られるべき宛先ステップを
定義された各出力事象信号に対して示すデータ、を定義
する出力事象定義手段を含み、 前記フローコントローラ手段が、(A)前記各ステップ
を実行した後に一つの前記出力条件を選択するために前
記判定基準を評価し、(B)前記ステップを実行した後
に選択された出力条件に従って事象信号を発生し、かつ
(C)前記フロー記述手段により定義された対応する宛
先ステップへ前記発生された出力事象信号を送る手段を
含み、 それにより、前記ステップの特定されたものが、前記ス
テップの前記特定されたものの実行の後に評価される定
義された判定基準に従って異なる宛先ステップへ異なる
出力事象信号を送ることができる、長時間運転トランザ
クション管理システム。 - 【請求項4】 請求項1記載の長時間運転トランザクシ
ョン管理システムであって該システムは複数のリソース
分解関数を含んでおり、各リソース分解関数は特定され
たステップが例示された場合に前記特定されたステップ
を実行するためにリソースを選択する判定基準を定義
し、 前記フロー記述手段が、前記リソース分解関数の一つを
前記定義されたステップの各々一つに関連させる手段も
含み、 前記フローコントローラ手段が、ステップが例示される
度毎に、前記例示されたステップに関連するリソース分
解関数を実行し、かつそれにより前記例示されたステッ
プを実行するリソースを選択する手段を含み、 前記フローコントローラ手段が、長時間運転トランザク
ションの創成された前記事例の前記ステップを例示し、
例示された各ステップを実行するためのリソースを選択
し、実行されたステップにより発生された出力事象信号
を受信し、かつ長時間運転トランザクションの創成され
た前記事例の他のステップへ前記出力事象信号を送る、
ための複数の同時実行プロセスを含み、ここで前記フロ
ーコントローラ手段の前記複数の同時実行プロセスの数
はこのシステム内の現存する例示されたステップの数に
無関係に一定のままである、長時間運転トランザクショ
ン管理システム。 - 【請求項5】 多数の相互接続された計算機を有する分
散型計算機システムにおける長時間運転トランザクショ
ンを実行する方法において、 この方法のステップが、 前記各ステップの出入りのデータフローを表す手段を含
めて、その間のデータフローにより一組のステップとし
て多数の長時間運転トランザクションの各々を表すフロ
ー記述データを計算機メモリに蓄積すること、 対応する入力事象が受信された場合でかつ長時間運転ト
ランザクションの創成された前記事例の実行を制御する
ために前記多数の長時間運転トランザクションの一つの
事例を創成すること、および前記フロー記述データによ
り表される長時間運転トランザクションの創成された各
事例に対するステップの組の実行を開始すること、 実行された各ステップからの結果を持続的に蓄積するこ
と、およびそれの実行の間に前記長時間運転トランザク
ションの前記のものの創成された前記事例に関するステ
ータスデータを蓄積し、そこで前記ステータスデータは
前記長時間運転トランザクションの前記のものの創成さ
れた前記事例の前記各ステップに対するステータス情報
をを含むこと、および前記長時間運転トランザクション
のステータスをレビューする場合、およびシステム障害
により前記長時間運転トランザクションのものの中断か
ら回復する場合に、前記ステータスデータを検索するこ
と、を含んでいる長時間運転トランザクションを実行す
る方法。 - 【請求項6】 前記フロー記述データが、各長時間運転
トランザクションの各ステップにより発生される出力事
象信号を定義する出力事象データ、各長時間運転トラン
ザクションの各ステップに対し入力ポートを定義するポ
ートデータ、および宛先ステップと前記出力事象信号が
送られるべき前記宛先ステップの入力ポートとを定義さ
れた各出力事象信号に対し示すアークデータを含み、 前記方法が、(A)前記多数の長時間運転トランザクシ
ョンの創成された前記事例の実行されたステップにより
発生された出力パラメータの受信、前記出力事象データ
に従って一組の対応する出力事象信号の発生、および
(B)前記アークデータに従って前記多数の長時間運転
トランザクションの創成された前記事例の対応するステ
ップの入力ポートへの前記出力事象信号の経路設定を含
む、請求項5記載の長時間運転トランザクションを実行
する方法。 - 【請求項7】 (A)前記多数の長時間運転トランザク
ションの一つの創成された各事例、(B)前記多数の長
時間運転トランザクションの一つの創成された各事例の
実行の終了、(C)前記多数の長時間運転トランザクシ
ョンの一つのステップの創成された各事例、および
(D)前記多数の長時間運転トランザクションの一つの
ステップの創成された各事例の終了、に対応する持続的
なログ記録の発生、および前記持続的なログ記録のレビ
ューによるシステム障害によって中断された一つの前記
長時間運転トランザクションの再スタート、および既に
終了されたステップの再実行を回避するように前記中断
された長時間運転トランザクションの実行の再スタート
を含み、 前記フロー記述データは、前記ステップの任意の特定さ
れた一つに対して、(A)複数の出力条件、(B)前記
ステップを実行した後に前記出力条件の一つを選択する
判定基準、(C)各事象信号に含まれるべきパラメータ
の仕様を含んで、前記ステップの実行後に発生されるべ
き、定義された各出力条件に関連する事象信号、および
(D)前記出力事象信号が送られるべき宛先ステップを
定義された各出力事象信号に対して示すデータ、を定義
する出力事象データを含む、請求項5記載の長時間運転
トランザクションを実行する方法であって、 該方法は(A)前記各ステップを実行後前記出力条件の
一つを選択するための前記判断基準の評価、(B)前記
ステップを実行後選択された出力条件に従った事象信号
の発生、および(C)前記フロー記述データにより定義
された対応する宛先ステップへの前記発生された出力事
象信号の送付を含み、 それにより、前記ステップの特定されたステップは、前
記ステップの前記特定されたステップの実行の後評価さ
れた定義された判断基準に従って異なる宛先ステップへ
異なる出力事象信号を送ることができる、長時間運転ト
ランザクションを実行する方法。 - 【請求項8】 前記長時間運転トランザクション管理シ
ステムが複数のリソース分解関数を含み、各リソース分
解関数が、特定されたステップが例示された場合に前記
特定されたステップを実行するためにリソースを選択す
る判断基準を定義し、 前記フロー記述データが前記リソース分解関数の一つを
前記定義されたステップの各一つと関連させるデータを
含む、請求項5記載の長時間運転トランザクションを実
行する方法であって、 該方法は、ステップが例示される度毎に、前記例示され
たステップに関連するリソース分解関数を実行し、それ
により前記例示されたステップを実行するためのリソー
スを選択することを含み、 該方法は、長時間運転トランザクションの創成された前
記事例の前記ステップを例示し、例示された各ステップ
を実行するためにリソースを選択し、実行されたステッ
プにより発生された出力事象信号を受信し、かつ長時間
運転トランザクションの創成された前記事例の他のステ
ップへの前記出力事象信号を送る、ための同時実行プロ
セスを含み、ここで前記複数の同時実行プロセス数はこ
のシステムに現存する例示されたステップの数と無関係
に一定のままである、長時間運転トランザクションを実
行する方法。 - 【請求項9】 (A)長時間運転トランザクションの創
成された前記事例の各ステップを例示すること、(B)
選択されたリソースにより各ステップの実行後、前記リ
ソースから出力事象信号を受信すること、および(C)
他のステップに対する入力事象信号へ前記受信された出
力事象信号を写像すること、に対する複数の個別の、持
続的に蓄積されるサブトランザクションを実行すること
を含んでいる請求項5記載の長時間運転トランザクショ
ンを実行する方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US83111492A | 1992-02-04 | 1992-02-04 | |
US07/831114 | 1992-02-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0683689A true JPH0683689A (ja) | 1994-03-25 |
Family
ID=25258304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5017298A Pending JPH0683689A (ja) | 1992-02-04 | 1993-02-04 | 長時間運転トランザクション管理システムおよび長時間運転トランザクションを実行する方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5524241A (ja) |
EP (1) | EP0554854A3 (ja) |
JP (1) | JPH0683689A (ja) |
Families Citing this family (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0697652A1 (en) * | 1994-08-16 | 1996-02-21 | International Business Machines Corporation | Method for re-executing a process on a computer system for fault correction |
US5634127A (en) * | 1994-11-30 | 1997-05-27 | International Business Machines Corporation | Methods and apparatus for implementing a message driven processor in a client-server environment |
US5902352A (en) * | 1995-03-06 | 1999-05-11 | Intel Corporation | Method and apparatus for task scheduling across multiple execution sessions |
WO1996027827A1 (en) * | 1995-03-06 | 1996-09-12 | Intel Corporation | A computer system with unattended on-demand availability |
JP3647512B2 (ja) * | 1995-08-04 | 2005-05-11 | 富士通株式会社 | 広域ワークフローシステムの保守方式 |
US7415466B2 (en) * | 1996-03-19 | 2008-08-19 | Oracle International Corporation | Parallel transaction recovery |
US5850507A (en) | 1996-03-19 | 1998-12-15 | Oracle Corporation | Method and apparatus for improved transaction recovery |
US6647510B1 (en) * | 1996-03-19 | 2003-11-11 | Oracle International Corporation | Method and apparatus for making available data that was locked by a dead transaction before rolling back the entire dead transaction |
US5862327A (en) * | 1996-06-10 | 1999-01-19 | Tactica Corporation | Activity based long-lived transaction system |
US6094528A (en) * | 1996-10-24 | 2000-07-25 | Sun Microsystems, Inc. | Method and apparatus for system building with a transactional interpreter |
US6014673A (en) * | 1996-12-05 | 2000-01-11 | Hewlett-Packard Company | Simultaneous use of database and durable store in work flow and process flow systems |
DE69811790T2 (de) * | 1997-08-01 | 2003-11-20 | International Business Machines Corp., Armonk | Ableitung von Prozessmodellen aus Rechnungsprüfvorgängen für Systeme zur Verwaltung von Arbeitsflüssen |
US6732123B1 (en) * | 1998-02-23 | 2004-05-04 | International Business Machines Corporation | Database recovery to any point in time in an online environment utilizing disaster recovery technology |
JPH11306244A (ja) * | 1998-04-16 | 1999-11-05 | Hitachi Ltd | ワーク管理システム |
US6199070B1 (en) * | 1998-06-18 | 2001-03-06 | International Business Machines Corporation | Using a database for program logs |
US6295610B1 (en) | 1998-09-17 | 2001-09-25 | Oracle Corporation | Recovering resources in parallel |
GB2343020A (en) * | 1998-10-19 | 2000-04-26 | Ibm | Handling transaction failures in a transaction processing system |
US6424948B1 (en) * | 1999-02-19 | 2002-07-23 | Guozhu Dong | Declarative workflow system supporting side-effects |
EP1279095A2 (en) * | 1999-08-16 | 2003-01-29 | Z-Force Corporation | System of reusable software parts and methods of use |
GB0006413D0 (en) * | 2000-03-17 | 2000-05-03 | Ibm | A dynamic shortcut to reverse autonomous computer program actions |
US7503033B2 (en) * | 2000-04-28 | 2009-03-10 | Microsoft Corporation | Model for business workflow processes |
US6625602B1 (en) | 2000-04-28 | 2003-09-23 | Microsoft Corporation | Method and system for hierarchical transactions and compensation |
US7774219B1 (en) * | 2000-04-28 | 2010-08-10 | Microsoft Corporation | Long running transaction integration with selective dehydration and selective compensation |
US7467371B1 (en) | 2000-04-28 | 2008-12-16 | Microsoft Corporation | Binding for business workflow processes |
US6918053B1 (en) * | 2000-04-28 | 2005-07-12 | Microsoft Corporation | Compensation framework for long running transactions |
US6516322B1 (en) | 2000-04-28 | 2003-02-04 | Microsoft Corporation | XML-based representation of mobile process calculi |
US7409671B1 (en) | 2000-04-28 | 2008-08-05 | Microsoft Corporation | Model for business workflow processes |
US6883170B1 (en) * | 2000-08-30 | 2005-04-19 | Aspect Communication Corporation | Method and system to maintain a hierarchy of instantiated application objects and to enable recovery from an applications failure |
JP2002183104A (ja) * | 2000-12-11 | 2002-06-28 | Hitachi Ltd | ワークフローシステムの案件割当方法、ワークフローシステムおよび前記方法を実現するプログラム並びに前記プログラムを格納した計算機読み取り可能な記録媒体 |
US6901405B1 (en) | 2000-12-20 | 2005-05-31 | Microsoft Corporation | Method for persisting a schedule and database schema |
US7184967B1 (en) | 2001-03-06 | 2007-02-27 | Microsoft Corporation | System and method utilizing a graphical user interface of a business process workflow scheduling program |
US7392282B2 (en) * | 2001-03-14 | 2008-06-24 | International Business Machines Corporation | Method for ensuring client access to messages from a server |
US7120699B2 (en) * | 2001-09-20 | 2006-10-10 | Ricoh Company, Ltd. | Document controlled workflow systems and methods |
US7107589B1 (en) * | 2001-09-28 | 2006-09-12 | Siebel Systems, Inc. | Infrastructure for the automation of the assembly of schema maintenance scripts |
US6898600B2 (en) * | 2002-05-16 | 2005-05-24 | International Business Machines Corporation | Method, system, and program for managing database operations |
US7827212B2 (en) * | 2003-05-22 | 2010-11-02 | International Business Machines Corporation | System and method for improved clearing of JAVA object's variables |
US7296043B2 (en) * | 2003-05-30 | 2007-11-13 | Microsoft Corporation | Memory file size adjustment |
US7457829B2 (en) * | 2003-06-23 | 2008-11-25 | Microsoft Corporation | Resynchronization of multiple copies of a database after a divergence in transaction history |
US20060059209A1 (en) * | 2004-09-14 | 2006-03-16 | Lashley Scott D | Crash recovery by logging extra data |
US7716249B2 (en) * | 2005-09-16 | 2010-05-11 | Microsoft Corporation | Transaction and task scheduler |
JP4785489B2 (ja) * | 2005-10-14 | 2011-10-05 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
US7681133B2 (en) * | 2005-10-14 | 2010-03-16 | Oracle International Corporation | Declarative task-based user interfaces |
US8112394B2 (en) * | 2005-10-14 | 2012-02-07 | Oracle International Corporation | Long-lived data transactions |
US8296727B2 (en) * | 2005-10-14 | 2012-10-23 | Oracle Corporation | Sub-task mechanism for development of task-based user interfaces |
US7640242B2 (en) * | 2006-03-24 | 2009-12-29 | Oracle International Corp. | Light weight locking model in the database for supporting long duration transactions |
US7747591B2 (en) * | 2006-03-24 | 2010-06-29 | Oracle International Corp. | Web feature service (WFS) locking support based on light-weight locking model in the database |
US9208241B2 (en) * | 2008-03-07 | 2015-12-08 | Oracle International Corporation | User interface task flow component |
US20090260011A1 (en) * | 2008-04-14 | 2009-10-15 | Microsoft Corporation | Command line transactions |
US8205113B2 (en) * | 2009-07-14 | 2012-06-19 | Ab Initio Technology Llc | Fault tolerant batch processing |
US8732143B2 (en) | 2010-08-27 | 2014-05-20 | Microsoft Corporation | Reducing locking during database transactions |
US8839033B2 (en) * | 2012-02-29 | 2014-09-16 | Oracle International Corporation | Data summarization recovery |
US10936591B2 (en) | 2012-05-15 | 2021-03-02 | Microsoft Technology Licensing, Llc | Idempotent command execution |
US9239868B2 (en) | 2012-06-19 | 2016-01-19 | Microsoft Technology Licensing, Llc | Virtual session management and reestablishment |
US9251194B2 (en) | 2012-07-26 | 2016-02-02 | Microsoft Technology Licensing, Llc | Automatic data request recovery after session failure |
US8898109B2 (en) | 2012-07-27 | 2014-11-25 | Microsoft Corporation | Automatic transaction retry after session failure |
US9235464B2 (en) | 2012-10-16 | 2016-01-12 | Microsoft Technology Licensing, Llc | Smart error recovery for database applications |
US9098359B2 (en) | 2013-10-10 | 2015-08-04 | Microsoft Technology Licensing, Llc | Durable execution of long running applications |
US9524195B2 (en) | 2014-02-27 | 2016-12-20 | International Business Machines Corporation | Adaptive process for data sharing with selection of lock elision and locking |
US9336097B2 (en) | 2014-02-27 | 2016-05-10 | International Business Machines Corporation | Salvaging hardware transactions |
US9442853B2 (en) | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging lock elision transactions with instructions to change execution type |
US9262206B2 (en) | 2014-02-27 | 2016-02-16 | International Business Machines Corporation | Using the transaction-begin instruction to manage transactional aborts in transactional memory computing environments |
US9329946B2 (en) | 2014-02-27 | 2016-05-03 | International Business Machines Corporation | Salvaging hardware transactions |
US9471371B2 (en) | 2014-02-27 | 2016-10-18 | International Business Machines Corporation | Dynamic prediction of concurrent hardware transactions resource requirements and allocation |
US9465673B2 (en) | 2014-02-27 | 2016-10-11 | International Business Machines Corporation | Deferral instruction for managing transactional aborts in transactional memory computing environments to complete transaction by deferring disruptive events handling |
US9361041B2 (en) | 2014-02-27 | 2016-06-07 | International Business Machines Corporation | Hint instruction for managing transactional aborts in transactional memory computing environments |
US9411729B2 (en) | 2014-02-27 | 2016-08-09 | International Business Machines Corporation | Salvaging lock elision transactions |
US9430273B2 (en) | 2014-02-27 | 2016-08-30 | International Business Machines Corporation | Suppressing aborting a transaction beyond a threshold execution duration based on the predicted duration |
US9442775B2 (en) | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging hardware transactions with instructions to transfer transaction execution control |
US9311178B2 (en) | 2014-02-27 | 2016-04-12 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
US9575890B2 (en) | 2014-02-27 | 2017-02-21 | International Business Machines Corporation | Supporting atomic accumulation with an addressable accumulator |
US9424072B2 (en) | 2014-02-27 | 2016-08-23 | International Business Machines Corporation | Alerting hardware transactions that are about to run out of space |
US9645879B2 (en) | 2014-02-27 | 2017-05-09 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
US20150242216A1 (en) | 2014-02-27 | 2015-08-27 | International Business Machines Corporation | Committing hardware transactions that are about to run out of resource |
US9524187B2 (en) | 2014-03-02 | 2016-12-20 | International Business Machines Corporation | Executing instruction with threshold indicating nearing of completion of transaction |
US20220391368A1 (en) * | 2014-05-05 | 2022-12-08 | Aveva Software, Llc | Cryptography system for using associated values stored in different locations to encode and decode data |
WO2017132417A1 (en) * | 2016-01-26 | 2017-08-03 | Enterpriseweb Llc | Unified operating system for distributed computing |
US10552408B2 (en) * | 2016-11-02 | 2020-02-04 | Oracle International Corporation | Automatic linearizability checking of operations on concurrent data structures |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5760411A (en) * | 1980-09-29 | 1982-04-12 | Toyoda Mach Works Ltd | Status display device of sequence controller |
US4868744A (en) * | 1986-03-03 | 1989-09-19 | International Business Machines Corporation | Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log |
JPH0682336B2 (ja) * | 1986-04-28 | 1994-10-19 | 日本電気株式会社 | ブロック閉塞を用いたロールバックリカバリシステム |
US4912628A (en) * | 1988-03-15 | 1990-03-27 | International Business Machines Corp. | Suspending and resuming processing of tasks running in a virtual machine data processing system |
DE69119222T2 (de) * | 1991-06-04 | 1996-11-21 | Ibm | Datensicherung und Beseitigung in einem Datenverarbeitungssystem |
-
1993
- 1993-02-03 EP EP93101660A patent/EP0554854A3/en not_active Withdrawn
- 1993-02-04 JP JP5017298A patent/JPH0683689A/ja active Pending
-
1995
- 1995-04-18 US US08/426,415 patent/US5524241A/en not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
PROC. OF THE 17TH INT. CONF. OF VERY LARGE DATABASE=1991 * |
Also Published As
Publication number | Publication date |
---|---|
EP0554854A3 (en) | 1996-02-28 |
US5524241A (en) | 1996-06-04 |
EP0554854A2 (en) | 1993-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0683689A (ja) | 長時間運転トランザクション管理システムおよび長時間運転トランザクションを実行する方法 | |
US5581691A (en) | Work flow management system and method | |
Dayal et al. | A transactional model for long-running activities | |
US5151987A (en) | Recovery objects in an object oriented computing environment | |
Georgakopoulos et al. | An overview of workflow management: From process modeling to workflow automation infrastructure | |
EP0250847B1 (en) | Managing log data in a transaction-oriented system | |
US8265979B2 (en) | Automatic generation of process models | |
US7752172B2 (en) | Transaction processing | |
JPS633341B2 (ja) | ||
JPH0784815A (ja) | フォールト・トレラント・トランザクション指向データ処理システムおよび方法 | |
Spector et al. | Camelot: A distributed transaction facility for Mach and the Internet-an interim report | |
US20090100434A1 (en) | Transaction management | |
Cicekli et al. | Formalizing workflows using the event calculus | |
CN112148436B (zh) | 去中心化的tcc事务管理方法、装置、设备及系统 | |
Kamath et al. | Modeling, correctness & systems issues in supporting advanced database applications using workflow management systems | |
JP2000348111A (ja) | ワークフロー管理方法及びその実施装置並びにその処理プログラムを記録した記録媒体 | |
Tang et al. | A scheme to specify and implement ad-hoc recovery in workflow systems | |
Busetta et al. | A reliable computational model for BDI agents | |
Salzberg et al. | DSDT: Durable scripts containing database transactions | |
EP0817019B1 (en) | Method of stratified transaction processing | |
Eder et al. | Workflow Management and Databases | |
Ramamohanarao et al. | Transaction oriented computational models for multi-agent systems | |
Zukunft | Recovering active databases | |
Mühlberger et al. | Backward Step: the Right Direction for Production Workflow Systems. | |
Vossen | Transactional workflows |