(57)【要約】  本発明は、様々なシステム状態（Ｓ０，Ｓ１）に従う正しいデータ処理を保証するための方法、コンピューティングデバイス、データ処理システム（１０）及びコンピュータプログラムに関する。本システムは、古い状態（Ｓ０）から新しい状態（Ｓ１）への変更を示す状態メッセージ（Ｓ）が受信されている入力チャネル（２６，２８）上でのデータの受信をブロックし、モジュール（１２）が接続されており古い状態（Ｓ０）が適用されているデータ処理ループ（Ｌ）のセット中のそれぞれのループにループチェックメッセージ（Ｃ）を送信する状態制御ユニット（２２）を有する第１のデータ処理モジュール（１２）を含む。状態制御ユニット（２２）はまた、セット中のそれぞれのループについて、モジュール（１２）においてループチェックメッセージ（Ｃ）が受信されるか又は結びつけられた入力チャネルが新しい状態を受信しており、他の全ての入力チャネル（２６，２８）が新しい状態を受信している場合に、ブロックを除去する。
2011501283.tif 000002
【特許請求の範囲】
【請求項１】
いくつかの入力チャネル（２６，２８，３０）及び出力チャネル（３２，３４）を用いて、データ処理システム（１０）内のいくつかの他のデータ処理モジュール（１４，１６；７０，７２，７４；６８，７２，７６）と通信することが可能な第１のデータ処理モジュール（１２；６８；７４）における、様々なシステム状態（Ｓ０，Ｓ１）に従う正しいデータ処理を保証する方法であって、
少なくとも１つの入力チャネル（２６，２８）上で、古い状態（Ｓ０）から新しい状態（Ｓ１）への変更を示す状態メッセージ（Ｓ）を受信する工程（３６）と、
前記新しい状態を有する全ての入力チャネル（２６，２８）上でのデータの受信をブロックする工程（３８）と、
データ処理ループ（Ｌ）のセット中のそれぞれのループに少なくとも１つのループチェックメッセージ（Ｃ）を送信する工程であって、前記セットは、結びつけられた入力チャネル（３０）及び出力チャネル（３２）を介して前記第１のデータ処理モジュール（１２；６８；７４）が接続されている全てのループを含み、当該入力チャネル（３０）には前記古い状態（Ｓ０）が適用されている工程と、
前記セット中のそれぞれのループについて、前記第１のデータ処理モジュール（１２）において前記ループチェックメッセージ（Ｃ）が受信されるか又は前記結びつけられた入力チャネルが前記新しい状態を示す状態メッセージを受信しており、かつ前記第１のデータ処理モジュール（１２；６８；７４）の他の全ての入力チャネル（２６，２８）が前記新しい状態を示す状態メッセージ（Ｓ）を受信している場合に、前記ブロックを除去する工程（４４）と、
を含むことを特徴とする方法。
【請求項２】
前記第１のデータ処理モジュール（１２；６８；７４）の前記入力チャネルと前記出力チャネルとの少なくとも一方（２６，２８，３０，３２，３４）が接続されているエンティティを示す、前記第１のモジュールに関連するシステム設定データを読み取る工程（４８）と、
前記第１のデータ処理モジュールから発するデータ処理経路を判定するために、他のデータ処理モジュール（１４；７２；６８）につながるいくつかの出力チャネルを判定する工程（５０）と、
データ処理経路において後続するデータ処理モジュール（１２）につながる出力チャネル（３２）について、
前記後続するデータ処理モジュール（１４）に関連するシステム設定データを読み取るさらなる工程（５４）と、
前記経路において前記後続するデータ処理モジュール（１４）の次のデータ処理モジュール（１６）が存在するか否かを判定するさらなる工程（５６）と、
前記次のデータ処理モジュールを前記後続するデータ処理モジュールとするさらなる工程（６０）と、
前記次のデータ処理モジュールが前記第１のデータ処理モジュールとなる（６０）か、又は次のデータ処理モジュールが存在しなくなる（５６）まで、前記経路に次のデータ処理モジュールが存在するか否かを判定する工程（５６）を繰り返すさらなる工程と、
前記経路において遭遇した前記モジュールの１つが前記第１のデータ処理モジュール（６０）である場合に、前記第１の処理モジュール（１２）と関連するループが存在すると判定するさらなる工程（６４）と、
前記第１のデータ処理モジュール（１２）と関連する前記ループに関するデータを格納するさらなる工程（６６）と、
を実行する工程（５２）と、
によって、前記第１のデータ処理モジュール（１２；６８；７４）が接続されているそれぞれのデータ処理ループ（Ｌ）を判定する工程をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項３】
データ処理経路は分岐を含んでもよく、
前記方法は、分岐のデータ処理モジュール（７０，６８）を含むデータ処理モジュールの順序（６８，７２，７０，６８）が、前記経路において同じ順序で以前に通過されている場合に、分岐点（７２）より後の前記分岐を除去する工程をさらに含むことを特徴とする、請求項２に記載の方法。
【請求項４】
前記ループチェックメッセージが、前記ループにおいて通過するそれぞれのデータ処理モジュールを示すことを特徴とする、請求項１乃至３の何れか１項に記載の方法。
【請求項５】
前記第１のデータ処理モジュール（１２）と関連する前記ループに備えられた他のデータ処理モジュール（１４，１６）に関するループデータを収集及び格納する工程と、
それぞれのデータ処理モジュールが、前記格納されたループデータに基づいて、全てのループ内の次のデータ処理モジュールに対して前記ループチェックメッセージを与える又は転送する工程と、をさらに含み、
前記ループデータは、前記他のデータ処理モジュールが備えられているループに関するデータを含み、
ループ内のそれぞれのデータ処理モジュールは、他のデータ処理モジュールが備えられている前記ループに関する前記ループデータを含む
ことを特徴とする、請求項１乃至３の何れか１項に記載の方法。
【請求項６】
それぞれのループに対して１つの前記ループチェックメッセージ（Ｃ）が送られることを特徴とする、請求項１乃至５の何れか１項に記載の方法。
【請求項７】
それぞれのループに対してＮ個の前記ループチェックメッセージが送られ、当該Ｎはループに接続された前記データ処理モジュールへの入力の数、又は前記ループに接続された前記データ処理モジュールの出力の数、に依存することを特徴とする、請求項１乃至５の何れか１項に記載の方法。
【請求項８】
ループに接続された前記データ処理モジュールへの入力の数、又は前記ループに接続された前記データ処理モジュールの出力の数＋１、のうち最小のほうに前記Ｎが等しいことを特徴とする、請求項７に記載の方法。
【請求項９】
Ｋ＋１回のループチェックが行われ、当該Ｋは必須のセットにおけるリンクの数であり、当該Ｋはループに接続された前記データ処理モジュールへの入力チャネルの数よりも小さく、当該Ｋは当該ループに接続された前記データ処理モジュールの出力チャネルの数よりも小さいことを特徴とする、請求項１乃至５の何れか１項に記載の方法。
【請求項１０】
全ての出力チャネル上で新しい状態を示す状態メッセージを送信する工程をさらに含むことを特徴とする、請求項１乃至９の何れか１項に記載の方法。
【請求項１１】
様々なシステム状態（Ｓ０，Ｓ１）に従う正しいデータ処理を保証するための、データ処理システム（１０）に備えられる第１のデータ処理モジュール（１２）を含むコンピューティングデバイスであって、
前記第１のデータ処理モジュール（１２）は、
いくつかの入力チャネル（２６，２８，３０）へのアクセスと、
いくつかの出力チャネル（３２，３４）へのアクセスと、
状態制御ユニット（２２）とを備え、
前記状態制御ユニット（２２）は、
古い状態（Ｓ０）から新しい状態（Ｓ１）への変更を示す状態メッセージ（Ｓ）が受信されている全ての入力チャネル（２６，２８）上でのデータの受信をブロックし、
データ処理ループ（Ｌ）のセット中のそれぞれのループに少なくとも１つのループチェックメッセージ（Ｃ）を送信し、ここで前記セットは、結びつけられた入力チャネル（３０）及び出力チャネル（３２）を介して前記第１のデータ処理モジュール（１２）が接続されている全てのループを含み、当該入力チャネル（３０）には前記古い状態（Ｓ０）が適用されており、
前記セット中のそれぞれのループについて、前記第１のデータ処理モジュール（１２）において前記ループチェックメッセージ（Ｃ）が受信されるか又は前記結びつけられた入力チャネルが前記新しい状態を示す状態メッセージを受信しており、かつ前記第１のデータ処理モジュール（１２）の他の全ての入力チャネル（２６，２８）が前記新しい状態を示す状態メッセージ（Ｓ）を受信している場合に、前記ブロックを除去する
ように構成されていることを特徴とする、コンピューティングデバイス。
【請求項１２】
ループ判定ユニット（２３）をさらに備え、
前記ループ判定ユニット（２３）は、
前記第１のデータ処理モジュール（１２；６８；７４）の前記入力チャネルと前記出力チャネルとの少なくとも一方（２６，２８，３０，３２，３４）が接続されているエンティティを示す、前記第１のモジュールに関連するシステム設定データを読み取る工程と、
前記第１のデータ処理モジュールから発するデータ処理経路を判定するために、他のデータ処理モジュール（１４）につながるいくつかの出力チャネルを判定する工程と、
データ処理経路において後続するデータ処理モジュール（１２）につながる出力チャネル（３２）について、
前記後続するデータ処理モジュール（１４）に関連するシステム設定データを読み取るさらなる工程と、
前記経路において前記後続するデータ処理モジュール（１４）の次のデータ処理モジュール（１６）が存在するか否かを判定するさらなる工程と、
前記次のデータ処理モジュールを前記後続するデータ処理モジュールとするさらなる工程と、
前記次のデータ処理モジュールが前記第１のデータ処理モジュールとなる（６０）か、又は次のデータ処理モジュールが存在しなくなるまで、前記経路に次のデータ処理モジュールが存在するか否かを判定する工程を繰り返すさらなる工程と、
前記経路において遭遇した前記モジュールの１つが前記第１のデータ処理モジュールである場合に、前記第１の処理モジュール（１２）と関連するループが存在すると判定するさらなる工程と、
前記第１のデータ処理モジュール（１２）と関連する前記ループに関するデータを格納するさらなる工程と、
を実行する工程と、
によって、前記第１のモジュールが接続されているそれぞれのデータ処理ループ（Ｌ）を判定するように構成されていることを特徴とする、請求項１１に記載のコンピューティングデバイス。
【請求項１３】
データ処理経路は分岐を含んでもよく、
前記ループ判定ユニット（２３）は、分岐のデータ処理モジュール（７０，６８）を含むデータ処理モジュールの順序（６８，７２，７０，６８）が、前記経路において同じ順序で以前に通過されている場合に、分岐点（７２）より後の前記分岐を除去するようにさらに構成されていることを特徴とする、請求項１２に記載のコンピューティングデバイス。
【請求項１４】
前記ループチェックメッセージが、前記ループにおいて通過するそれぞれのデータ処理モジュールを示すことを特徴とする、請求項１１乃至１３の何れか１項に記載のコンピューティングデバイス。
【請求項１５】
前記第１のデータ処理モジュール（１２）は、
前記第１のデータ処理モジュール（１２）と関連する前記ループに備えられた他のデータ処理モジュール（１４，１６）に関するループデータを収集及び格納し、
前記格納されたループデータに基づいて、全てのループ内の次のデータ処理モジュールに対して前記ループチェックメッセージを与える
ようにさらに構成されており、
前記ループデータは、前記他のデータ処理モジュールが備えられているループに関するデータを含み、
ループ内のそれぞれのデータ処理モジュールは、前記ループチェックメッセージの送信を行うために、他のデータ処理モジュールが備えられている前記ループに関する前記ループデータを含む
ことを特徴とする、請求項１１乃至１３の何れか１項に記載のコンピューティングデバイス。
【請求項１６】
前記状態制御ユニット（２２）は、それぞれのループに対して１つの前記ループチェックメッセージ（Ｃ）を送るように構成されていることを特徴とする、請求項１１乃至１５の何れか１項に記載のコンピューティングデバイス。
【請求項１７】
前記状態制御ユニット（２２）は、それぞれのループに対してＮ個の前記ループチェックメッセージを送るように構成され、当該Ｎはループに接続された前記データ処理モジュールへの入力の数、又は前記ループに接続された前記データ処理モジュールの出力の数、に依存することを特徴とする、請求項１１乃至１５の何れか１項に記載のコンピューティングデバイス。
【請求項１８】
ループに接続された前記データ処理モジュールへの入力の数、又は前記ループに接続された前記データ処理モジュールの出力の数＋１、のうち最小のほうに前記Ｎが等しいことを特徴とする、請求項１７に記載のコンピューティングデバイス。
【請求項１９】
Ｋ＋１回のループチェックが行われ、当該Ｋは必須のセットにおけるリンクの数であり、当該Ｋはループに接続された前記データ処理モジュールへの入力チャネルの数よりも小さく、当該Ｋは当該ループに接続された前記データ処理モジュールの出力チャネルの数よりも小さいことを特徴とする、請求項１１乃至１５の何れか１項に記載のコンピューティングデバイス。
【請求項２０】
前記状態制御ユニット（２２）は、全ての出力チャネル上で新しい状態を示す状態メッセージを送信するようにさらに構成されていることを特徴とする、請求項１１乃至１９の何れか１項に記載のコンピューティングデバイス。
【請求項２１】
様々なシステム状態（Ｓ０，Ｓ１）に従う正しいデータ処理を保証するためのデータ処理システム（１０）であって、
いくつかのデータ処理モジュール（１２，１４，１６）を備え、
少なくとも１つの前記データ処理モジュール（１２）は、請求項１１乃至２０の何れか１項に従うコンピューティングデバイスに備えられていることを特徴とする、データ処理システム。
【請求項２２】
取引システムであることを特徴とする、請求項２１に記載のデータ処理システム（１０）。
【請求項２３】
データ処理システム（１０）内の第１のデータ処理モジュール（１２）の状態制御ユニット（２２）を提供することによって、様々なシステム状態（Ｓ０，Ｓ１）に従う正しいデータ処理を保証するためのコンピュータプログラムであって、
前記コンピュータプログラムは、データ媒体上のプログラムコードを含み、
前記プログラムコードは、前記データ媒体がコンピュータへと入れられたときに、
古い状態（Ｓ０）から新しい状態（Ｓ１）への変更を示す状態メッセージ（Ｓ）が受信されている全ての入力チャネル（２６，２８）上でのデータの受信をブロックし、
データ処理ループ（Ｌ）のセット中のそれぞれのループに少なくとも１つのループチェックメッセージ（Ｃ）を送信し、ここで前記セットは、結びつけられた入力チャネル（３０）及び出力チャネル（３２）を介して前記第１のデータ処理モジュール（１２）が接続されている全てのループを含み、当該入力チャネル（３０）には前記古い状態（Ｓ０）が適用されており、
前記セット中のそれぞれのループについて、前記第１のデータ処理モジュール（１２）において前記ループチェックメッセージ（Ｃ）が受信されるか又は前記結びつけられた入力チャネルが前記新しい状態を示す状態メッセージを受信しており、かつ前記第１のデータ処理モジュール（１２）の他の全ての入力チャネル（２６，２８）が前記新しい状態を示す状態メッセージ（Ｓ）を受信している場合に、前記ブロックを除去する
ように構成されていることを特徴とする、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータシステムに関する。本発明は、特に、種々のシステム状態に従ってデータを適切に処理することを保証する方法、演算装置、データ処理システム及びコンピュータプログラムコードに関する。
【背景技術】
【０００２】
取引システム等の複雑なコンピュータシステムにおいて、種々の機能性を提供する種々のデータ処理モジュールがデータを処理し且つそのような処理済みデータを互いに配信することは周知である。その後、そのようなモジュールは、データを処理して別のモジュールに配信し、且つ他のモジュールが処理した別のデータを受信してもよい。
【０００３】
そのようなシステムにおいて、システムが動作される方法の変化又は１つ以上のモジュールの構成変化のいずれかのために、種々の状態を提供することは更に周知である。取引システムにおいて、ある状態は取引の終了を知らせ、別の状態は構成変化を知らせる状態であってもよい。新しい状態が導入される際、新しい状態は、新しい状態に先行する状態で発生した旧データ上ではなく、新データに適用されることが重要である。これが考慮されない場合、システムの操作性は妨害される可能性がある。状態の更新は、高速であると同時にデータ損失があってはならない。
【０００４】
特に、データ処理システムが複雑であり且つ処理済みデータを互いに提供する複数の相互接続モジュールを有する場合、これはそれほど容易に実現できない。
【発明の概要】
【０００５】
本発明の第１の態様は、いくつかの入力チャネル及び出力チャネルを用いて、データ処理システム内のいくつかの他のデータ処理モジュールと通信することが可能な第１のデータ処理モジュールにおける、様々なシステム状態に従う正しいデータ処理を保証する方法であって、
少なくとも１つの入力チャネル上で、古い状態から新しい状態への変更を示す状態メッセージを受信する工程と、
前記新しい状態を有する全ての入力チャネル上でのデータの受信をブロックする工程と、
データ処理ループのセット中のそれぞれのループに少なくとも１つのループチェックメッセージを送信する工程であって、前記セットは、結びつけられた入力チャネル及び出力チャネルを介して第１のデータ処理モジュールが接続されている全てのループを含み、当該入力チャネルには前記古い状態が適用されている工程と、
前記セット中のそれぞれのループについて、前記第１のデータ処理モジュールにおいて前記ループチェックメッセージが受信されるか又は前記結びつけられた入力チャネルが前記新しい状態を示す状態メッセージを受信しており、かつ前記第１のデータ処理モジュールの他の全ての入力チャネルが前記新しい状態を示す状態メッセージを受信している場合に、前記ブロックを除去する工程と、
を含む方法に関する。
【０００６】
本発明の第２の態様は、様々なシステム状態に従う正しいデータ処理を保証するための、データ処理システムに備えられる第１のデータ処理モジュールを含むコンピューティングデバイスであって、
前記第１のデータ処理モジュールは、
いくつかの入力チャネルへのアクセスと、
いくつかの出力チャネルへのアクセスと、
状態制御ユニットとを備え、
前記状態制御ユニットは、
古い状態から新しい状態への変更を示す状態メッセージが受信されている全ての入力チャネル上でのデータの受信をブロックし、
データ処理ループのセット中のそれぞれのループに少なくとも１つのループチェックメッセージを送信し、ここで前記セットは、結びつけられた入力チャネル及び出力チャネルを介して前記第１のデータ処理モジュールが接続されている全てのループを含み、当該入力チャネルには前記古い状態が適用されており、
前記セット中のそれぞれのループについて、前記第１のデータ処理モジュールにおいて前記ループチェックメッセージが受信されるか又は前記結びつけられた入力チャネルが前記新しい状態を示す状態メッセージを受信しており、かつ前記第１のデータ処理モジュールの他の全ての入力チャネルが前記新しい状態を示す状態メッセージを受信している場合に、前記ブロックを除去する
ように構成されているコンピューティングデバイスに関する。
【０００７】
本発明の第３の態様は、第２の態様に係るコンピューティングデバイスを含むデータ処理システムに関する。
【０００８】
本発明の第４の態様は、データ処理システム内の第１のデータ処理モジュールの状態制御ユニットを提供することによって、様々なシステム状態に従う正しいデータ処理を保証するためのコンピュータプログラムであって、
前記コンピュータプログラムは、データ媒体上のプログラムコードを含み、
前記プログラムコードは、前記データ媒体がコンピュータへと入れられたときに、
古い状態から新しい状態への変更を示す状態メッセージが受信されている全ての入力チャネル上でのデータの受信をブロックし、
データ処理ループのセット中のそれぞれのループに少なくとも１つのループチェックメッセージを送信し、ここで前記セットは、結びつけられた入力チャネル及び出力チャネルを介して前記第１のデータ処理モジュールが接続されている全てのループを含み、当該入力チャネルには前記古い状態が適用されており、
前記セット中のそれぞれのループについて、前記第１のデータ処理モジュールにおいて前記ループチェックメッセージが受信されるか又は前記結びつけられた入力チャネルが前記新しい状態を示す状態メッセージを受信しており、かつ前記第１のデータ処理モジュールの他の全ての入力チャネルが前記新しい状態を示す状態メッセージを受信している場合に、前記ブロックを除去する
ように構成されているコンピュータプログラムに関する。
【０００９】
データ処理経路という表現は、複数のノードを含む経路を範囲に含むことを意図する。このとき、データはノードにおいて処理され、処理される経路において後続するノードへと送られる。またこのようなノードは、データ処理モジュールの形で提供される。
【００１０】
データ処理経路との表現は、ループを形成する、上述の種類の経路を範囲に含むことを意図する。
【００１１】
本発明の１つの利点は、状態変化がデータ処理モジュールを介して確定的且つ制御された方法で伝播することである。本発明によると、損失するか又は誤った状態で処理されるデータはないことが保証される。状態の更新は更に高速である。また、本発明により、動作中に競合状態のリスクを冒すことなく、システムが非線形データ処理のために設計されることが可能となる。
【００１２】
尚、本明細書中で使用される場合の用語「備える(comprises/comprising)」は、記載される特徴、ステップ又は構成要素の存在を特定するものとして解釈され、１つ以上の他の特徴、ステップ、構成要素又はそれらの集合の存在又は追加を除外するものではない。
【００１３】
次に、添付の図面に関連して本発明を更に詳細に説明する。
【図面の簡単な説明】
【００１４】
【図１】複数のデータ処理モジュールを含み、有利な取引システムである本発明に係るコンピュータシステムを概略的に示す図である。
【図２】種々のシステム状態に従ってデータの適切な処理を保証する方法における複数の方法ステップを示すフローチャートである。
【図３】本発明に従ってデータ処理ループを判定する複数の方法ステップを示すフローチャートである。
【図４】本発明の１つの変形例の原理に従って送出される複数のループチェックメッセージを例示するために使用される複数の相互接続ノードの第１の例を概略的に示す図である。
【図５】データ処理ループの判定を例示するために使用される複数の相互接続ノードの第２の例を概略的に示す図である。
【図６】第１のノードから開始するデータ処理ループを判定するために第２の例のノードがどのように処理されるかを例示する木を概略的に示す図である。
【図７】第４のノードから開始するデータ処理ループを判定するために第２の例のノードがどのように処理されるかを例示する木を概略的に示す図である。
【図８】本発明に係る方法がどのように実行されるかを例示するために、第２の例の相互接続ノードと、そのノードのうちの２つに新しい状態メッセージを送出するメッセージルータと、を概略的に示す図である。
【発明を実施するための形態】
【００１５】
以下の説明において、本発明を完全に理解するために、限定するためではなく説明する目的で特定のアーキテクチャ、インタフェース、技術等の特定の詳細について説明する。しかし、これらの特定の詳細から逸脱する他の実施形態において本発明が実施されてもよいことは、当業者には明らかだろう。他の例において、周知の装置、回路及び方法の詳細な説明は、不必要な詳細で本発明の説明を不明確にすることがないよう省略される。
【００１６】
図１は、本発明に係る簡略コンピュータシステム１０を概略的に示す図である。以下、システム１０は取引システムに関連して説明される。しかし、本発明は取引システムに限定されず、任意の種類のコンピュータシステムにおいて使用されてもよいことが理解されるべきである。
【００１７】
システム１０において、複数のデータ処理モジュール１２、１４及び１６が存在する。各モジュールは、システムに関連する複数の関係者に対して複数の処理アクティビティを提供する異なる種類のモジュールである。取引システムにおける関係者は、例えば取引業者、証券取引所、取引機器が備えられた会社、当局、情報供給業者等のエンティティであってもよい。図１において３つのモジュールが示される。第１のモジュール１２は市場モジュールであってもよく、第２のモジュール１４は情報処理モジュールであってもよく、第３のモジュール１６はトランザクションモジュールであってもよい。これらのモジュールは、実行されるいくつかの計算について、論理的な意味で、破線の円で示されるループL内で互いに接続されているかもしれない。これは、モジュールの実際の相互接続は別の方法で、例えばバスを使用して提供されてもよいが、処理されるデータは、ループが形成される順序でこれらのモジュールを通過することを意味する。
【００１８】
これらのモジュールは本発明に従って提供されうるモジュールの例にすぎず、更に多くのモジュールがあってもよいことが理解されるべきである。種々の関係者に対してアクティビティを実行する場合、これらのモジュールは、データを処理し且つ更なる処理のためにそのような処理済みデータを更に転送する。
【００１９】
第１のモジュール１２は、複数の入力チャネル２６、２８及び３０へアクセスできる。本明細書において、第１の入力チャネル２６及び第２の入力チャネル２８はメッセージルータ１８に接続される。これらのチャネルは、種々の取引命令及び他の金融ビジネス命令であってもよい、システム１０の外部からのデータを受信するために提供される。従って、システム外部で発生するデータは、本発明のこの変形例においてメッセージルータ１８を通過する。第１のモジュール１２が第３のモジュール１６からの処理済みデータを受信する第３のチャネル３０が更に存在する。第１のモジュール１２は、複数の出力チャネル３２及び３４へ更にアクセスできる。処理が行なわれない場合、あるいは状態に依存する処理が行なわれない場合、第１の出力チャネルは第２の処理モジュール１４につながり、第２の出力チャネル３４は別のモジュール又は別のエンティティにつながってもよい。更に第２のモジュール１４及び第３のモジュール１６は、同様に入力チャネル及び出力チャネルを提供されてもよいことが本明細書において理解されるべきである。しかし、それらのうちの殆どは、本明細書をより良く説明するために本明細書では省略されている。しかし、図１において、第３のモジュール１６の入力チャネルに接続される第２のモジュール１４上の１つの出力チャネルと、第１のモジュール１２の第３の入力チャネル３０に接続される第３のモジュール１６の１つの出力チャネルとが存在する。
【００２０】
第１のモジュール１２は、入力チャネル２６、２８及び３０に接続されるデータ処理部２０を更に含み、例えば第１の出力チャネル３２及び第２の出力チャネル３４上に出力するためにデータを処理するように構成される。第１のモジュール１２は、データ処理部２０に接続されている状態制御部２２を更に含む。この状態制御部２２は、システム全体に対するシステム構成データ即ち種々のモジュールに対するシステム構成データを含むシステム構成データ記憶装置２４に更に接続される。第２のモジュール１４及び第３のモジュール１６もまた、通常、システム構成データ記憶装置２４からのデータを受信できるような状態制御部を含むことが本明細書において理解されるべきである。また、第１のデータ処理モジュール１２に提供されるループ判定部２３が存在する。ループ処理判定部２３は、システム構成データ記憶装置２４に更に接続される。
【００２１】
モジュールは、コンピュータ、サーバ又は任意の他の演算デバイス等のような演算デバイスに提供される。システムの大きさに依存して、１つ以上のモジュールが同一のコンピュータに存在してもよいし、１つ以上のモジュールが異なるコンピュータに提供されてもよい。
【００２２】
図１において、古い状態から新しい状態への変化を示す状態メッセージSが示される。これは、図１においてS=S1として示され、S1は新しい状態である。更にメッセージSは、メッセージルータ１８から第１のモジュール１２に提供されるものとして示される。また、第１のモジュール１２から第２のモジュール１４に送出されるものとして示されるループチェックメッセージCが存在する。これらのメッセージが処理される方法はすぐに説明される。最後に、第３のモジュール１６と第１のモジュール１２との接続は、古い状態S0にあるものとして示される（破線で示される）。
【００２３】
取引システムのようなシステム１０は種々の状態を有する。ある状態は取引が進行中であることを示す状態であってもよく、別の状態は取引が終了していることを示す状態であってもよい。更に、取引される証券の定義、特定の証券の定義、証券に対する種々の制限等であってもよい、種々のモジュールにより使用される参照データが更新されたことを、別の状態は示してもよい。全てのそれらの状態は、データ処理に対して異なる影響を有する。これは、ある状態におけるデータ処理が、通常、別の状態におけるデータ処理とは異なることを意味する。図１のループLが示すように、第１の処理モジュール１２により処理されたデータは処理のために第２のモジュール１４に送出されてもよく、引き続いて第２のモジュール１４は更なる処理済みデータを第３のモジュール１６に供給する。最後に、第３のモジュールは、第２のモジュール１４からのデータを処理し、処理のために第１のモジュール１２に供給する。従って、これらの種々の種類の処理は互いにリンクされる。ここで第１の処理部１２が新しい状態S1を受信する場合、第３の処理モジュール１６により供給される「旧データ」は、何かがなされない限り、適用されるべき古い状態S0に従ってではなく、新しい状態に従って処理されるだろう。本発明の目的はこの問題を解決することである。
【００２４】
取引システム等のシステムに提供される複数の種類のデータ処理ループが存在し、データ処理モジュールはそのようなループにおいてノードとして動作する。
【００２５】
ループの１つの種類は、データフローにおける強いループ（ＳＬＤＦ）である。そのようなループにおいて、データは、出力チャネル上で第１のノードを出発し、複数のノードを通過し、ここでデータは処理されてもよく、かつデータは第１のノードに再入し、ここでデータは再び処理されてもよく、最終的に同じ出力チャネル上でこのノードを出発する。
【００２６】
データフローにおける弱いループ（ＷＬＤＦ）は、データが、出力チャネル上で第１のノードを出発し、複数のノードを通過し、ここでデータは処理されてもよく、かつデータは第１のノードに再入する場合のループである。しかしながらこの場合、データは、第１のノードを同じ出力チャネル上で出発する必要はない。
【００２７】
以下、ＳＬＤＦは図１のシステムに存在しないと仮定する。
【００２８】
次に、種々のシステム状態に従ってデータの適切な処理を保証する方法における複数の方法ステップを示すフローチャートである図２を更に参照して、本発明の原理に係るシステム１０の基本的な機能性を説明する。
【００２９】
最初に、システム全体は古い状態S0にしたがってデータを処理しているものと仮定する。次に、周知の原理に従って、種々のモジュール１２、１４、１６において処理が実行される。しかし、ある特定の時点において、新しい状態である状態S1がメッセージルータ１８により導入される。この状態は、システム１０の外部からデータを受信する全てのデータ処理モジュールに対して送出される、新しい状態メッセージS1を使用することにより知らされる。図１の例から分かるように、このメッセージを受信する唯一のモジュール、即ち第１のデータ処理モジュール１２が存在する。そのような状態メッセージは、図１に提供される例において、第１の入力チャネル２６及び第２の入力チャネル２８から状態制御部２２に転送される。そのような状態メッセージは、１つの入力チャネル上のみで、又はさらに多くの入力チャネル上で受信されてもよいことが本明細書において理解されるべきである。従って、本発明に係る方法は、第１のデータ処理モジュール１２が、第１の入力チャネル２６及び第２の入力チャネル２８を介して新しい状態S1を示す１つ以上の状態メッセージSを受信するステップ３６から開始する。ステップ３８において、これらの状態メッセージは状態制御部２２に転送される。第１のデータ処理モジュールは最初には、新しい状態S1を有する入力チャネル２６、２８上のデータをブロックする。そして第１のデータ処理モジュールは、旧データを空にするよう、すなわち内部に有するあらゆるデータを古い状態S0に従って処理及び出力するようデータ処理部２０に指示する。本発明の第１の変形例に従って、状態制御部２２は、ループチェックメッセージCを第１のデータ処理部が接続されている複数のループに送出する。第１のデータ処理モジュール１２は、関連する入力チャネル及び出力チャネルでそのようなループに接続されている。第１のデータ処理モジュール１２が接続されるデータ処理ループが判定される方法は、すぐに説明される。状態制御部２２はそして、ステップ４０において、少なくとも１つのループチェックメッセージCをそのようなデータ処理ループの集合に送出する。本発明に従うとここでこの集合は、第１のデータ処理モジュール１２の関連する入力チャネルが古い状態S0を有するループのみを含む。従って、これらのループに関連する入力チャネルに対しては依然として古い状態S0が適用されている。図１の例から分かるように、状態制御部２２は、メッセージCをそのようなループLの一部である第１の出力チャネル３２に送出するのみである。このメッセージCは、本発明の１つの変形例においてC(S1, loop, 1)として送出される。ここで、S1は新しい状態を示し、ループは該当するループを示し、１は、ループ内で通過されたリンクの数を示すループカウンタであり、どのモジュールが次にメッセージを受信するのかを判定するために使用される。本明細書において、このメッセージCは、開始ノードで開始し開始ノードで終了するループに属する全てのモジュール又は全てのノードのリストを更に含み、ここでは開始ノードは第１のモジュールである。メッセージCは第２のモジュール１４である次のノードにより処理され、第２のモジュール１４は同様に旧データを空にした後ループチェッ��メッセージCを転送する。リンクカウンタは、メッセージがC(S1, loop, 2)と見えるように増分される。このように、ループの全ノードはループチェックメッセージCを処理し、最終的にループチェックメッセージCは、通常は第３の入力チャネル３０を介して再び第１のモジュール１２に到達するだろう。状態制御部２２は、ステップ４２においてループチェック条件が満たされることを待つ。この待機中、データ処理部２０は、旧データを空にしている、即ち古い状態S0に従ってデータを処理及び出力しているはずである。ループチェック条件は、ループに関連する入力チャネルのそれぞれについて、ループチェックメッセージC、又は新しい状態S1を示す状態メッセージSのいずれかが受け取られたことである。その後状態制御部２２は、全ての他の入力チャネル上で新しい状態を示す状態メッセージが存在するのを待つようデータ処理部２０に指示してもよい。これが行なわれるとステップ４４において状態制御部２２は、第１のモジュール１２について状態を新しい状態S1に変化させ、入力チャネルのブロックを除去する。その後状態制御部２２は、ステップ４６において、全ての出力チャネル上で新しい状態を示す状態メッセージを送出する。上述のように、第１のモジュール１２が、チェック中に全ての入力チャネル上で、即ち第３のチャネル３０上でも新しい状態を示す状態メッセージを受信する場合、状態制御部２２は、状態を直接変化させてループチェックを中断してもよい。
【００３０】
チェックを開始したモジュールが入力チャネル上で新しい状態を示す状態メッセージを受信する場合、そのモジュールは、状態を変化させる準備ができていないとしても新しいチェック手順を開始するべきではない。そのモジュールは、それに到達できる旧データがそれ以上ないことを保証するために、ループから十分なチェックメッセージが受信されてくるまで単に待機する必要がある。これと同一の手順は、システム内の他のモジュールにより更に実行される。
【００３１】
新しい状態を有し、且つ別のノードで発生するループチェックメッセージを入力チャネル上で別のノードから受信するモジュールは、このメッセージを削除する必要がある。
【００３２】
ＷＬＤＦが可能である場合に適用される本発明の第２の変形例に従うと、状態制御部は、全ての入力チャネル上で新しい状態が存在することを示す状態メッセージが、第１のモジュールとループを全く共有しないモジュールからやってくるまで、ループチェックメッセージを送出して待機する。その後状態制御部は、旧データを空にしてループチェックメッセージを送出する。従って、図１の例において、新しい状態が第１の入力チャネル２６及び第２の入力チャネル２８上で同時に送出されなかった場合に待機が生じる。同様に、ループの他のモジュールは、ループのループチェックメッセージを転送する前に、ループの一部ではない全ての入力チャネルが新しい状態を受信するのを待つ必要がある。ＷＬＤＦの場合、第１のモジュールが属し且つこれを介して新しい状態を示す状態メッセージがまだ全く受信されていない全てのループは、N回チェックされる必要があることが更に不可欠である。ここで、NはL又はM+1の最小値であり、Lはループが考慮されるモジュールに対する入力チャネルの数であり、Mは同じループに属するこのモジュールの出力チャネルの数である。また、新しいチェックの集合は、前のチェックの集合が完了するまでさらに実行されることができない。この場合、第１のモジュールは、入力チャネル上の新しい状態を待つ必要はなく、十分なループチェックメッセージを受信次第、旧データを空にして新しい状態に入ってもよい。
【００３３】
ループ内のノードのデータを含む伝達されるループメッセージの代わりとして、全てのノード、即ちノードにおけるデータ処理モジュールが、ループ内の他のノードが一部をなすループの知識を有することが可能である。すると上述のループチェックメッセージは、伝達される必要があるノードの情報を全く含む必要がない。その代わりに、受信ノードは、この事前記憶された情報に基づいてループにおいて次のノードを判定する。また、この判定はシステムがセットアップされる際に１回だけ行なわれてもよく、その結果は状態が実際に変化する際に使用される。
【００３４】
次に、本発明に従ってデータ処理ループを判定するための、第１の処理モジュール１２のループ判定部２３において実行される複数のステップを示すフローチャートを示す図３に関連して、ループにおけるノードとして存在する他のデータ処理モジュールについての判定がどのように判定されるかを説明する。本発明のいくつかの変形例において、このループ判定部２３は状態制御部２２と組み合わされてもよい。更に他のデータ処理モジュールもまた、このノード判定機能を搭載してもよいことが本明細書において理解されるべきである。システム全体に対して１つのループ判定部が中枢として提供されてもよいことが更に理解されるべきである。
【００３５】
ループ判定は、システムがセットアップされている際に有利に提供される。実際のループ判定は、ステップ４８においてループ判定部２３が第１のモジュール１２のシステム構成データを読み取ることから開始する。そのようなシステム構成データは、システム構成記憶装置２４において有利に提供される。通常、全てのモジュールはこの記憶装置２４へアクセスでき、するとこの記憶装置２４は全てのモジュールのシステム構成データを含む。ここで、システム構成データは、第１のモジュールに対する全ての入力チャネル及び第１のモジュールからの全ての出力チャネル、並びに他のデータ処理モジュール等のような他のどのエンティティにこれらのチャネルが接続されるのかに関するデータを含む。このデータからループ判定部２３は、ステップ５０において最初に他のデータ処理モジュールに対してどの接続が存在するのかを判定する。そのようなデータは、ノード間の接続を示す複数の要素を含むいわゆる隣接行列Aとして提供されてもよい。そのような行列の列及び行の双方は、システム内のノードと、２つのノード間に接続が存在するか否かとを示す。そのような接続が存在しない場合は要素a(i,j)=0であり、存在する場合はa(i,j)=1である。ループを検出するために、ループ判定部２３は、ステップ５０において接続行列Aを調査することにより第１のモジュールが接続される全ての他のモジュールを検出する。これらの接続は、ループであってもよいが、終端を有する経路のような他の種類の経路であってもよい、複数の経路を構成する。ステップ５２において作成されるそのような経路毎に、ループ判定部２３は、ステップ５４において経路において後続するモジュールのシステム構成データを読み取る。ステップ５６においてこの経路がそれ以上データ処理モジュールを有さない場合経路は終了しており、ステップ５８において経路はループがないものとして判定される。しかし、次のモジュールに後続するモジュールへの接続が経路に存在する場合、即ちステップ５６において経路が終了しない場合、ループ判定部２３はこの後続モジュールを調査する。ステップ６０においてこの後続モジュールが第１のモジュールである場合、ループ判定部２３は、ステップ６４において経路が実際にループであることを判定し、ステップ６６においてループデータを格納する。ループデータは、一般に、そのようなループに含まれるデータ処理モジュール及びデータ処理モジュールのチャネル、及びどのモジュールでそのループが始まるかに関するデータを含む。このデータは、システム構成データ記憶装置２４に有利に格納されてもよい。また、このデータは、第１のデータ処理モジュールにローカルに格納されてもよい。ステップ６０において後続モジュールが第１のモジュールではなかった場合、ステップ６２において次のモジュールは後続モジュールにされ、ステップ５４においてこのモジュールのシステム構成データがチェックされる。これは、経路がループであると判定されるか又はループではないと判定されるまで繰り返される。従って、ループチェックメッセージを送出する状態制御部は、このモジュールがどのループに接続されているのかを学習するために、システム構成データ記憶装置２４を介して、対応するデータ処理モジュールのループを識別する適用可能なループデータの場所を探し出す。
【００３６】
分岐が存在すること、即ち１つのノードは２つ以上の他のノードに接続することが更に可能であることが本明細書において理解されるべきである。従って、経路は、分岐点において別の経路から分岐される部分を含んでもよい。
【００３７】
本発明に係るデータ処理モジュールとして提供される複数の相互接続ノードの第１の例を概略的に示す図４を参照して、ループ毎にいくつかのループチェックメッセージが必要なことを示す一例を説明する。
【００３８】
図４において、第１のノード６８は、第２のノード７０の入力チャネルに接続する出力チャネルを有し、さらに第２のノード７０は第３のノード７２の入力チャネルに接続される出力チャネルを有する。第３のノード７２は２つの出力チャネルを有し、第１の出力チャネルは第１のノード６８の第１の入力チャネルに接続され、第２の出力チャネルは第４のノード７４の入力チャネルに接続される。最後に第４のノード７４は、第１のノード６８の第２の入力チャネルに接続される出力チャネルを有する。本明細書において、第１のノード６８で発生する２つの経路が存在する。従って、動作する１つのループは、第１のノード６８、第２のノード７０、第３のノード７２及び第１のノード６８から構成される。動作する第２のループは、第１のノード６８、第２のノード７０、第３のノード７２、第４のノード７４及び第１のノード６８から構成される。本明細書において、これら双方のループがチェックされる。しかし、旧データは、第２のノード７０へのリンク上を第１のノード６８から出発し、第３のノード７２と第１のノード６８との間のリンクを介して戻っているかもしれない。（ＳＬＤＦが存在しないという仮定の下）旧データは第４のノード７４に再入力できず且つこの第４のノード７４と第１のノード６８とのリンクを介して通り過ぎることができないため、第１のループ上でもう１度チェックが行なわれるか又は２つのループの第３のノード７２において旧データが存在するかもしれないという疑いが存在すれば十分である。
【００３９】
一般的な例において、ＷＬＤＦが除外できない場合、チェックされる回数は上述のようにN回である。ここで上述のようにN = min(L, M+1)である。これは、最初にループがチェックされる時に、旧データはどちらのループからも来ることができ、且つ旧データが最後にノードを通過した時に使用したのと同一の出力チャネルを介して第１のノード、即ち開始ノードから出ていくことができるためである。２回目に回る時は、旧データは同一の出力チャネルを通って第１のノードを出ることができない。従って、M回通過した後には、旧データは１つの出力チャネルを通って第１のノードから出ることだけができ、旧データが再び第１のノードに戻らないことを保証するために更にチェックする必要がある。入力チャネルLの数がM+1未満である場合、第１のチェックが行なわれた際に１つの入力チャネルを通って旧データが到着したならば旧データは他の時には同一チャネルを通って入ることはできないため、同様の推論によりL回チェックすれば十分である。
【００４０】
非常に多くのチェックが必要な理由は、ネットワーク個別メッセージが通過する経路を認識する方法がないからである。しかし、特定の例において、「ボトルネック」を識別することにより、設定されるチェックの集合が実行される回数を減らすことが可能であり、最小限の必須の集合は１つ又は少数のリンクを含む。この場合、集合に存在するリンクの数Kに比べてもう１回多く必須の集合をチェックする必要がある。しかし、殆ど接続を有さないネットワークの場合、一般に第１の方法が好まれる。
【００４１】
次に、図５、図６及び図７を参照して、ループの識別方法の一例を説明する。図５は、データ処理ループの判定を例示するために使用される複数の相互接続ノードの第２の例を概略的に示す図である。図６は、第１のノードから開始するデータ処理ループを判定するために第２の例のノードがどのように処理されるかを例示する木を概略的に示す図である。図７は、第４のノードから開始するデータ処理ループを判定するために第２の例のノードがどのように処理されるかを例示する木を概略的に示す図である。
【００４２】
図５の相互接続されたノードは図４の相互接続されたノードに類似する。ここでの差異は、第４のノード７４の入力チャネルに接続される出力チャネルを有する第５のノード７６が存在すること、第１のノード６８がその出力チャネルを第３のノード７２の入力チャネルに接続させること、第３のノード７２が第２のノード７０の入力チャネルに接続される第１の出力チャネルを有すること、並びに第２のノード７０が第１のノード６８の第１の入力チャネルに接続される出力チャネルを有することである。その他の全ての点において、図５は図４と同一である。
【００４３】
図５のノードに対する隣接行列Aは、以下のように見える。
【数１】
2011501283.tif 000003
【００４４】
本明細書において、第１の行は第１のノードがデータを送出する他のノードを示し、第２の行は第２のノードがデータを送出する他のノードを示し、第３の行は第３のノードがデータを送出する他のノードを示し、第４の行は第４のノードがデータを送出する他のノードを示し、第５の行は第５のノードがデータを送出する他のノードを示す。第１の列は第１のノードがデータを受信する他のノードを示し、第２の列は第２のノードがデータを受信する他のノードを示し、第２の列は第２のノードがデータを受信する他のノードを示し、第３の列は第３のノードがデータを受信する他のノードを示し、第４の列は第４のノードがデータを受信する他のノードを示し、第５の列は第５のノードがデータを受信する他のノードを示す。これは、図５のノードの場合、第１の行には第３の列に対する設定が１つのみ存在することを意味し、これは第１のノードが第３のノードにデータを送出することを示す。第２の行には第１の列に対する設定のみが存在し、これは第２のノードが第１のノードにデータを送出することを示す。第３の行には第２の列及び第４の列に対する設定のみが存在し、これは第３のノードが第２のノード及び第４のノードにデータを送出することを示す。第４の行には第１の列に対する設定のみが存在し、これは第４のノードが第１のノードにデータを送出することを示す。最後に、第５の行には第４の列に対する設定のみが存在し、これは第５のノードが第４のノードにデータを送出することを示す。
【００４５】
本明細書において、ループ検出方法は、最初に、第１のノード６８から開始する全てのノードを検出するように適用される。図５のノードからは図６に示す木が取得される。第１のノード６８はループ検出が開始される開始ノードであるため、図６において右手側に示される。この第１のノード６８からは第３のノード７２へのリンクが１つ存在する。第３のノード７２から２つのリンクが存在する。１つ目のリンクは第２のノード７０にリンクし、引き続いて第１のノード６８につながる。２つ目のリンクは第４のノード７４にリンクし、引き続いて第１のノード６８につながる。この木を作成するために、第１のノード６８から開始し、第３のノード７２への唯一の可能な経路に沿って進む。この第３のノード７２からは２つの選択が可能である。即ち、第２のノード７０に進むか又は第４のノード７４に進むかのいずれかである。第２のノード７０からは第１のノード６８にのみ進むことができ、開始点に戻ることにより第１のループが識別された。従って、分岐はここで終了する。代わりに第４のノード７４に進む場合、この場合も第１のノード６８にのみ進むことができ、第２のループが識別される。未完の分岐が存在しないため、探索が終了し且つ第１のノード６８から開始する全ての可能なループを示す木が取得される。
【００４６】
同一のループ検出方法は、第４のノード７４から開始する全てのループ上に適用される、こうして図７の木が取得される。この木を作成するために、第４のノード７４から開始し、そこから第１のノード６８への唯一の可能な経路を進む。第１のノード６８からは第３のノード７２で終了することのみが可能である。第３のノード７２からは２つの経路が可能である。即ち、１つ目の分岐は第４のノード７４につながり、２つ目の分岐は第２のノード７０につながる。第４のノード７４が開始点であるため、第１の分岐は第３のループを識別する。他の分岐から、第２のノード７０は第１のノード６８につながり、且つ第１のノード６８は第３のノード７２につながることが分かる。第３のノードにおいて、第２のノード７０への第３の分岐及び第４のノード７４への第４の分岐の可能性が存在する。第３の分岐において、第２のノード７２からは第１のノード６８にのみ進むことができることが明らかである。しかし、第１のノード６８に到達するために、第１のノード６８、第３のノード７２、第２のノード７０及び第１のノード６８という順番は２回現れる。これは、同一のサブループを２回通過したことを意味する。従って、本発明に従って、木の最後の分岐点の後、即ち第３のノード７２と第２のノード７４との間でこの分岐を切断できる。第４の分岐は開始点である第４のノード７４につながり、こうして第４のループが検出される。更なる分岐は存在しないため、探索が終了して木が完成する。
【００４７】
また、より大きなループ、即ち第４のループには、第４のノード７４、第１のノード６８、第３のノード７２及び第４のノード７４から構成される第３のループと同一であるサブループを構成するリンクが存在することに留意する。従ってより小さな第３のループは別個にチェックされる必要はない。これは、第４のノード７４、第１のノード６８、第３のノード７２、第２のノード７０、第１のノード６８、第３のノード７２及び第４のノード７４から構成されるより大きな第４のループがチェックされる際にチェックされるためである。
【００４８】
同一のループチェック原理が同様に全ての他のノードに適用されるが、本明細書では更に詳細には説明しない。
【００４９】
第２の例の相互接続ノード、並びに第１のノード６８及び第５のノード７６に接続されるメッセージルータ１８を概略的に示す図８に関連して、新しい状態が導入される際に起こることについて説明する。本明細書において、メッセージルータ１８は、新しい状態S1を示すメッセージを第１のノード６８及び第５のノード７６に送出する。ここでは、システムにＷＬＤＦが存在しないことが更に仮定される。本発明の基本原理は、第１のノード６８が全ての入力チャネル上に新しい状態メッセージを有するかを、第１のノード６８がまずチェックすることである。第１のノード６８は、自身が新しい状態メッセージを有さないことと、新しい状態を示す状態メッセージが欠けている入力チャネルが、第１のノード６８がループを共有するノードからやってきていることとに気付くと、第１のノード６８は自身の旧データを空にしてこれらのループの各々に対してループチェックメッセージを送出する。この場合、第１のノード６８は、ループチェックメッセージC(S1, loop1, 1)を第３のノード７２に送出し、別のループチェックメッセージC(S1, loop2, 1)を更に第３のノード７２に送出する。これらのメッセージのうちの１つ目は第１のループに送出され、２つ目は第２のループに送出される。これらのループは上記のように識別された。第５のノード７６は、自身が全ての入力チャネル上に新しい状態メッセージS1を有するかをチェックして、有することを認識する。その後第５のノード７６は、状態を新しい状態S1に変化させ、新しい状態メッセージを第４のノード７４に送出する。第１のノード６８からループチェックメッセージC(S1, loop1, 1)及びC(S1, loop2, 1)を受信した第３のノード７２は、第３のノード７２がループを全く共有しないノードからやってくる入力チャネルを全く有さない。従って、第５のノード７６はどんな新しい状態メッセージをも待つ必要はない。従って、第３のノード７２は、ループチェックメッセージの１つであるC(S1, loop1, 2)を第２のノードに転送し、他のループチェックメッセージC(S1, loop2, 2)を第４のノードに転送する。ここで、ループカウンタは双方のループチェックメッセージにおいて増分されている。一方、第４のノード７４は入力チャネルのうちの１つのチャネル上に存在する新しい状態メッセージを有するため、第４のノード７４は全ての入力チャネル上に新しい状態メッセージを有するかをチェックする。第４のノード７４は新しい状態メッセージを全ての入力チャネル上には有さないが、残りの入力チャネルが第４のノード７４とループを共有するノードからやってくるため、第４のノード７４はループチェックメッセージC(S1, loop4, 1)を第１のノード６８に送出する。また、第２のノード７０は、ループカウンタを増分させてC(S1, loop1, 3)メッセージを第１のノード６８に転送する。第４のノード７４が第３のノード７２からループチェックメッセージC(S1, loop2, 2)を取得すると、第４のノード７４は、第４のノードがループを全く共有しないノードからやってくる全ての入力チャネル上に新しい状態メッセージを有することを認識する。その後第４のノード７４は、ループチェックメッセージC(S1, loop2, 3)を第１のノード６８に送出する。第１のノード６８は、第４のノード７４で発生するループチェックメッセージを更に受信し、そのメッセージをC(S1, loop4, 2)として第３のノード７２に転送する。第１のノード６８は、第２のノード７０からのループチェックメッセージC(S1, loop1, 3)を更に受信し、第１のループがチェックされたことを確認する。次に第１のノード６８は、第４のノード７４からループチェックメッセージC(S1, loop2, 3)を受信し、第２のループがチェックされたことを更に確認する。従って、第１のノード６８は全てのノードのチェックを完了し、第１のノード６８がループを全く共有しないノードからやってくる全ての入力チャネル上に新しい状態メッセージを有することを認識する。そしてＷＬＤＦが存在しないため、ここでこのノードについてのチェックを完了する。従って、第１のノード６８は新しい状態S1を身につけ、新しい状態S1を示す新しい状態メッセージを第３のノード７２に送出する。第３のノード７２は、C(S1, loop4, 3)ループチェックメッセージを第２のノード７０に更に転送し、そして新しい状態メッセージを受信すると新しい状態S1を身につけ、新しい状態S1を示す新しい状態メッセージを第２のノード７０及び第４のノード７４に送出する。第２のノード７０は、ループチェックメッセージ(S1, loop4, 4)を第１のノード６８に転送する。このメッセージが第１のノード６８に到達すると、第１のノード６８は既に新しい状態S1にあるため、このメッセージは削除される。第２のノード７０は、第３のノード７２から新しい状態メッセージを受信し、さらにこの新しい状態S1を身につけ、新しい状態メッセージを第１のノード６８に送出する。第１のノード６８は既に新しい状態S1を身につけているため、この新しい状態メッセージを削除する。第４のノード７４は、第３のノード７２から新しい状態メッセージを受信し、新しい状態S1を身につけ、新しい状態メッセージを第１のノード６８に送出する。その後第１のノード６８は、既に問題の状態を身につけているため、この状態メッセージを削除する。
【００５０】
その後、それ以上メッセージは送出されず、ネットワークは更新された。
【００５１】
代わりとしては、ループの一部ではない全ての入力チャネルがノードが新しい状態を受信することを待つ必要がある。これは、ＷＬＤＦが存在しない場合に当てはまる。するとノードは迅速に進行し、自身の旧データを空にし、ループチェックメッセージを送出する。この場合、各ループに送出されるただ１つのループチェックメッセージが更に存在する。
【００５２】
本発明は複数の利点を有する。本発明によると、状態変化は、データ処理モジュールを介して確定的且つ制御された方法で伝播する。本発明によると、損失されるか又は誤った状態で処理されるデータはないことが保証される。状態の更新は更に高速である。また、本発明はさらに、動作中に競合状態のリスクを冒すことなく、システムを非線形データ処理のために設計することを可能とする。
【００５３】
上述されたように、データ処理部、状態制御部及び判定部を含む本発明のデータ処理モジュールは、コンピュータ技術を使用して実現される。従って、それらは、機能を実行するコンピュータプログラムコードと共に１つ以上のプロセッサによって実現されてもよい。
【００５４】
現在最も実用的かつ好適であると考えられる実施形態に関連して本発明を説明したが、本発明は開示される実施形態に限定されず、逆に種々の変形例及び均等な構成を範囲に含むことを意図することが理解されるべきである。例えばメッセージルータは、入力チャネルに提供されることに限定されず、状態変化を知らせる他の方法が備えられてもよい。また、ループチェック部及びループ判定部は同一部に提供されてもよい。上述のように、システム全体に対して１つのループ判定部が代わりに提供されてもよく、この１つのループ判定部はシステム全体のループ判定を担う。従って、本発明は以下の請求の範囲によってのみ限定される。
【図１】
2011501283.tif 000004
【図２】
2011501283.tif 000005
【図３】
2011501283.tif 000006
【図４】
2011501283.tif 000007
【図５】
2011501283.tif 000008
【図６】
2011501283.tif 000009
【図７】
2011501283.tif 000010
【図８】
2011501283.tif 000011
【国際調査報告】
2011501283.tif 000012
2011501283.tif 000013