(57)【要約】      （修正有）【課題】プロセス制御システムに冗長性を提供するための方法および装置を提供する。【解決手段】方法は、第１のネットワークホストにおいて、第２のネットワークホストから第１のネットワークを通じて伝送された第１の完全性メッセージを受信することと、第１のネットワークを経由した、第１のネットワークホストの第１のネットワークインタフェースと、第２のネットワークホストの第２のネットワークインタフェースとの間の第１の通信経路にわたるネットワーク障害を、第１のネットワークホストの第１のネットワークインタフェースが、第２のネットワークホストの第１のネットワークインタフェースから予期された第１の完全性メッセージの１つを受信できない場合に、検出することと、検出されたネットワーク障害に応答して、第１のネットワークホストと第２のネットワークホストとの間に第２の通信経路を自動的に確立することと、を含む。【選択図】図１３Ａ
2020167714.tif 000002
【特許請求の範囲】
【請求項１】
第１のネットワークホストにおいて、第２のネットワークホストから第１のネットワークを通じて伝送された第１の完全性メッセージを受信することと、
前記第１のネットワークホストにおいて、前記第１のネットワークホストの第１のネットワークインタフェースと、前記第２のネットワークホストの第２のネットワークインタフェースとの間の前記第１のネットワークを通じた第１の通信経路にわたるネットワーク障害を、前記第１のネットワークホストの前記第１のネットワークインタフェースが、前記第２のネットワークホストの前記第１のネットワークインタフェースから予期された前記第１の完全性メッセージの１つを受信できない場合に、検出することと、
前記検出されたネットワーク障害に応答して、前記第１のネットワークホストの前記第１のネットワークインタフェースと前記第２のネットワークホストの前記第１のネットワークインタフェースとの間に第２の通信経路を自動的に確立することと
を含む、方法。
【請求項２】
前記第２の通信経路が、前記第１のネットワークホストの前記第２のネットワークインタフェースおよび前記第２のネットワークホストの前記第２のネットワークインタフェースを経由した前記第２のネットワークを含む、請求項１に記載の方法。
【請求項３】
データが、前記第１のネットワークホストの前記第１のネットワークインタフェースから前記第１のネットワークホストの前記第２のネットワークインタフェースにルーティングされるのを可能にするために、前記第１のネットワークホストの前記第２のネットワークインタフェースを、前記第１のネットワークホストの前記第１のネットワークインタフェースに対するゲートウェイとして定義することをさらに含む、請求項２に記載の方法。
【請求項４】
前記第２の通信経路が、前記ネットワーク障害が生じてから５秒未満で確立される、請求項１に記載の方法。
【請求項５】
第１のネットワークホストにおいて、前記第２のネットワークホストから前記第２のネットワークを通じて伝送された第２の完全性メッセージを受信することをさらに含む、請求項１に記載の方法。
【請求項６】
前記第１の完全性メッセージおよび前記第２の完全性メッセージの各々が、前記第２のネットワークホストならびに前記第２のネットワークホストの前記第１および第２のネットワークインタフェースを識別するホスト情報を含む、請求項５に記載の方法。
【請求項７】
前記第１のネットワークホストにおいて、前記第１の完全性メッセージの１つに含まれる前記ホスト情報に基づき、前記第１のネットワーク上で前記第２のネットワークホストを検出することと、
前記第１のネットワークホストの前記第１のネットワークインタフェースから前記第２のネットワークホストの前記第１のネットワークインタフェースへの前記第１の通信経路を定義するために、ルーティングテーブル内にエントリを作成することと
をさらに含む、請求項６に記載の方法。
【請求項８】
前記第１の完全性メッセージおよび前記第２の完全性メッセージの各々が、前記第２のネットワークホストと前記第１のネットワークホストとの間で判断された、前記対応する第１および第２のネットワークインタフェースを経由した、前記第１のネットワークおよび前記第２のネットワークの各々を通じた通信状態を示す完全性情報を含む、請求項５に記載の方法。
【請求項９】
前記完全性情報が、前記第２のネットワークホストと、前記第１および第２のネットワークを経由して前記第１および第２のネットワークホストに通信可能に結合された他のネットワークホストとの間で判断された通信状態をさらに示す、請求項８に記載の方法。
【請求項１０】
第３の完全性メッセージを前記第１のネットワークホストから前記第１のネットワークを通じて伝送することと、
第４の完全性メッセージを前記第１のネットワークホストから前記第２のネットワークを通じて伝送することであって、前記第３の完全性メッセージおよび前記第４の完全性メッセージの両方が、前記検出されたネットワーク障害に応答して、前記第１のネットワークホストの前記第１のネットワークインタフェースと、前記第２のネットワークホストの前記第１のネットワークインタフェースとの間の前記第１のネットワークを通じたネットワーク障害を示すことを、さらに含む、請求項５に記載の方法。
【請求項１１】
前記検出されたネットワーク障害に応答して、事象、アラート、またはアラームの少なくとも１つを生成することと、
前記事象、前記アラート、または前記アラームの前記少なくとも１つをログに記録することと
をさらに含む、請求項１に記載の方法。
【請求項１２】
前記事象、前記アラート、または前記アラームの前記少なくとも１つが、前記第１のネットワークホストの前記第１のネットワークインタフェースおよび前記第２のネットワークホストの前記第１のネットワークインタフェースを識別する情報を含む、請求項１１に記載の方法。
【請求項１３】
命令を含む有形的コンピュータ可読記憶媒体であって、前記命令が、実行される際に、第１のネットワークホストに少なくとも：
第２のネットワークホストから第１のネットワークを通じて伝送された第１の完全性メッセージを受信することと、
前記第１のネットワークホストの第１のネットワークインタフェースと、第２のネットワークホストの第１のネットワークインタフェースとの間の前記第１のネットワークを通じた第１の通信経路にわたるネットワーク障害を、前記第１のネットワークホストの前記第１のネットワークインタフェースが、前記第２のネットワークホストの前記第１のネットワークインタフェースから予期された前記第１の完全性メッセージの１つを受信できない場合に、検出することと、
前記検出されたネットワーク障害に応答して、前記第１のネットワークホストの前記第１のネットワークインタフェースと前記第２のネットワークホストの前記第１のネットワークインタフェースとの間に第２の通信経路を自動的に確立することと
を実行させる、命令を含む有形的コンピュータ可読記憶媒体。
【請求項１４】
前記第２の通信経路が、前記第１のネットワークホストの前記第２のネットワークインタフェースおよび前記第２のネットワークホストの前記第２のネットワークインタフェースを経由した前記第２のネットワークを含む、請求項１３に記載の記憶媒体。
【請求項１５】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、前記第１のネットワークホストの前記第２のネットワークインタフェースを、前記第１のネットワークホストの前記第１のネットワークインタフェースに対するゲートウェイとして定義させて、データが、前記第１のネットワークホストの前記第１のネットワークインタフェースから前記第１のネットワークホストの前記第２のネットワークインタフェースにルーティングされるのを可能にする、請求項１４に記載の記憶媒体。
【請求項１６】
前記第２の通信経路が、前記ネットワーク障害が生じてから５秒未満で確立される、請求項１３に記載の記憶媒体。
【請求項１７】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、前記第２のネットワークホストから前記第２のネットワークを通じて伝送された第２の完全性メッセージを受信させる、請求項１６に記載の記憶媒体。
【請求項１８】
前記第１の完全性メッセージおよび前記第２の完全性メッセージの各々が、前記第２のネットワークホストならびに前記第２のネットワークホストの前記第１および第２のネットワークインタフェースを識別するホスト情報を含む、請求項１７に記載の記憶媒体。
【請求項１９】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、
前記第１の完全性メッセージの１つに含まれる前記ホスト情報に基づき、前記第１のネットワーク上で前記第２のネットワークホストを検出することと、
前記第１のネットワークホストの前記第１のネットワークインタフェースから前記第２のネットワークホストの前記第１のネットワークインタフェースへの前記第１の通信経路を定義するために、ルーティングテーブル内にエントリを作成することと
を実行させる、請求項１８に記載の記憶媒体。
【請求項２０】
前記第１の完全性メッセージおよび前記第２の完全性メッセージの各々が、前記第２のネットワークホストと前記第１のネットワークホストとの間で判断された、前記対応する第１および第２のネットワークインタフェースを経由した、前記第１のネットワークおよび前記第２のネットワークの各々を通じた通信状態を示す完全性情報を含む、請求項１７に記載の記憶媒体。
【請求項２１】
前記完全性情報が、前記第２のネットワークホストと、前記第１および第２のネットワークを経由して前記第１および第２のネットワークホストに通信可能に結合された他のネットワークホストとの間で判断された通信状態をさらに示す、請求項２０に記載の記憶媒体。
【請求項２２】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、
第３の完全性メッセージを前記第１のネットワークを通じて伝送することと、
第４の完全性メッセージを前記第２のネットワークを通じて伝送することであって、前記第３の完全性メッセージおよび前記第４の完全性メッセージの両方が、前記検出されたネットワーク障害に応答して、前記第１のネットワークホストの前記第１のネットワークインタフェースと、前記第２のネットワークホストの前記第１のネットワークインタフェースとの間の前記第１のネットワークを通じたネットワーク障害を示す、
を実行させる、請求項１７に記載の記憶媒体。
【請求項２３】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、
前記検出されたネットワーク障害に応答して、事象、アラート、またはアラームの少なくとも１つを生成することと、
前記事象、前記アラート、または前記アラームの前記少なくとも１つをログに記録することと
を実行させる、請求項１３に記載の記憶媒体。
【請求項２４】
前記事象、前記アラート、または前記アラームの前記少なくとも１つが、前記第１のネットワークホストの前記第１のネットワークインタフェースおよび前記第２のネットワークホストの前記第１のネットワークインタフェースを識別する情報を含む、請求項２３に記載の記憶媒体。
【請求項２５】
プロセッサおよびメモリを含む第１のネットワークホストを備えたシステムであって、前記プロセッサが、
第２のネットワークホストから第１のネットワークを通じて伝送された第１の完全性メッセージを受信することと、
前記第１のネットワークホストの第１のネットワークインタフェースと、第２のネットワークホストの第１のネットワークインタフェースとの間の前記第１のネットワークを経由した第１の通信経路にわたるネットワーク障害を、前記第１のネットワークホストの前記第１のネットワークインタフェースが、前記第２のネットワークホストの前記第１のネットワークインタフェースから予期された前記第１の完全性メッセージの１つを受信できない場合に、検出することと、
前記検出されたネットワーク障害に応答して、前記第１のネットワークホストの前記第１のネットワークインタフェースと前記第２のネットワークホストの前記第１のネットワークインタフェースとの間に第２の通信経路を自動的に確立することと
を行うために、前記メモリ上に格納された命令を実行する、システム。
【請求項２６】
前記第２の通信経路が、前記第１のネットワークホストの前記第２のネットワークインタフェースおよび前記第２のネットワークホストの前記第２のネットワークインタフェースを経由した前記第２のネットワークを含む、請求項２５に記載のシステム。
【請求項２７】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、前記第１のネットワークホストの前記第２のネットワークインタフェースを、前記第１のネットワークホストの前記第１のネットワークインタフェースに対するゲートウェイとして定義させて、データが、前記第１のネットワークホストの前記第１のネットワークインタフェースから前記第１のネットワークホストの前記第２のネットワークインタフェースにルーティングされるのを可能にする、請求項２６に記載のシステム。
【請求項２８】
前記第２の通信経路が、前記ネットワーク障害が生じてから５秒未満で確立される、請求項２５に記載のシステム。
【請求項２９】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、前記第２のネットワークホストから前記第２のネットワークを通じて伝送された第２の完全性メッセージを受信させる、請求項２５に記載のシステム。
【請求項３０】
前記第１の完全性メッセージおよび前記第２の完全性メッセージの各々が、前記第２のネットワークホストならびに前記第２のネットワークホストの前記第１および第２のネットワークインタフェースを識別するホスト情報を含む、請求項２９に記載のシステム。
【請求項３１】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、
前記第１の完全性メッセージの１つに含まれる前記ホスト情報に基づき、前記第１のネットワーク上で前記第２のネットワークホストを検出することと、
前記第１のネットワークホストの前記第１のネットワークインタフェースから前記第２のネットワークホストの前記第１のネットワークインタフェースへの前記第１の通信経路を定義するために、ルーティングテーブル内にエントリを作成することと
を実行させる、請求項３０に記載のシステム。
【請求項３２】
前記第１の完全性メッセージおよび前記第２の完全性メッセージの各々が、前記第２のネットワークホストと前記第１のネットワークホストとの間で判断された、前記対応する第１および第２のネットワークインタフェースを経由した、前記第１のネットワークおよび前記第２のネットワークの各々を通じた通信状態を示す完全性情報を含む、請求項２９に記載のシステム。
【請求項３３】
前記完全性情報が、前記第２のネットワークホストと、前記第１および第２のネットワークを経由して前記第１および第２のネットワークホストに通信可能に結合された他のネットワークホストとの間で判断された通信状態をさらに示す、請求項３２に記載のシステム。
【請求項３４】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、
第３の完全性メッセージを前記第１のネットワークを通じて伝送することと、
第４の完全性メッセージを前記第２のネットワークを通じて伝送することであって、前記第３の完全性メッセージおよび前記第４の完全性メッセージの両方が、前記検出されたネットワーク障害に応答して、前記第１のネットワークホストの前記第１のネットワークインタフェースと、前記第２のネットワークホストの前記第１のネットワークインタフェースとの間の前記第１のネットワークを通じたネットワーク障害を示す、を実行させる、請求項２９に記載のシステム。
【請求項３５】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、
前記検出されたネットワーク障害に応答して、事象、アラート、またはアラームの少なくとも１つを生成することと、
前記事象、前記アラート、または前記アラームの前記少なくとも１つをログに記録することと
を実行させる、請求項２５に記載のシステム。
【請求項３６】
前記事象、前記アラート、または前記アラームの前記少なくとも１つが、前記第１のネットワークホストの前記第１のネットワークインタフェースおよび前記第２のネットワークホストの前記第１のネットワークインタフェースを識別する情報を含む、請求項３５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、プロセス制御システムに関し、より詳細には、プロセス制御システムに冗長性を提供するための方法および装置に関する。
【背景技術】
【０００２】
化学、石油または他のプロセスで使用されるもののような、プロセス制御システムは、通常、アナログ、デジタルまたはアナログ／デジタル結合バスを経由して１つ以上のフィールド装置に通信可能に結合された１つ以上のプロセス制御装置を含む。フィールド装置は、例えば、弁、バルブポジショナ、スイッチおよび送信機（例えば、温度、圧力および流量センサー）であり得るが、弁の開閉およびプロセス制御パラメータの測定などのプロセス制御機能をプロセス内で実行する。プロセス制御装置は、フィールド装置によって行われたプロセス測定値を示す信号を受信し、次いで、この情報を処理して制御信号の生成し、制御ルーチンの実装、他のプロセス制御判断、およびプロセス制御システムアラームの開始を行う。
【０００３】
フィールド装置および／または制御装置からの情報は、通常、データハイウェイまたは通信ネットワークを介して、オペレータワークステーション、パーソナルコンピュータ、データヒストリアン、レポートジェネレータ、集中型データベースなどの、１つ以上の他のハードウェア装置に対して利用可能にされる。かかる装置は、通常、より過酷な工場環境から遠くに離れた制御室および／または他の位置に配置される。これらのハードウェア装置は、例えば、オペレータが、プロセス制御システムのプロセスに関して、例えば、プロセスの現在の状態の表示、動作状態の変更、プロセス制御ルーチンの設定の変更、プロセス制御装置および／またはフィールド装置の動作の変更、フィールド装置および／またはプロセス制御装置によって生成されたアラームの表示、担当者のトレーニングおよび／またはプロセスの評価を目的としたプロセスの動作のシミュレーションなどの、様々な機能のいずれかを実行するのを可能にするアプリケーションを実行する。
【０００４】
コンピュータアーキテクチャ、ネットワーキング、および仮想化における技術進歩を組み合わせることにより、ある制御システムを実装できる、効率的で管理の容易な、仮想化コンピューティング環境の開発を可能にしている。すなわち、従来型の制御システムで使用される、ワークステーション、パーソナルコンピュータ、および他のハードウェア装置は、仮想プロセス制御環境内で実装された仮想マシンと置き換えられ得る。エンドユーザーは、かかる仮想マシン上で実装されたアプリケーションおよびソフトウェアに、仮想システムに接続されたシンクライアントを介してアクセスする。このようにして、従来の方法で必要とされ得る全てのハードウェア構成要素を取得、構成および保守する、相当なコストおよび複雑さが削減できる。
【図面の簡単な説明】
【０００５】
【図１】本開示の教示が実装され得るプロセス制御システム例の略図である。
【図２】図１のプロセス制御システム例の一部のネットワーク構成例の略図である。
【図３】図１および／または図２のプロセス制御システム例におけるネットワークホストの任意の１つの実施態様例のブロック図である。
【図４】２つの共通したネットワークを経由して接続されたネットワークホストのシステム例の略図である。
【図５】図４のネットワークホスト間の通信状態を表すテーブルである。
【図６】ネットワークホストの１つと関連したネットワーク障害のある図４のシステム例の略図である。
【図７】図６のネットワークホスト間の通信状態を表すテーブルである。
【図８】図６のネットワークホストおよび周囲のネットワーク障害の最初の発見中に、図４のネットワークホストの各々によって伝送される完全性メッセージに対する経時的変化の例を示すテーブルである。
【図９】ネットワークホストの最初の発見中に、図４のネットワークホストの各々によって伝送される完全性メッセージに対する経時的変化の異なる例を示すテーブルである。
【図１０】２つの共通したネットワークを経由して接続された２つのネットワークホスト例のシステム例の略図である。
【図１１】２つのネットワークの各々にネットワーク障害のある図１０のシステム例の略図である。
【図１２】２つのネットワークの各々にネットワーク障害のある図１０のシステム例の略図である。
【図１３Ａ】ネットワークホスト間に冗長性を提供するために、図１〜図４、図６、および／または図１０〜図１２のネットワークホスト例を実装する方法例を示す流れ図である。
【図１３Ｂ】ネットワークホスト間に冗長性を提供するために、図１〜図４、図６、および／または図１０〜図１２のネットワークホスト例を実装する方法例を示す流れ図である。
【図１４】図１３Ａ〜図１３Ｂの方法例を実行するため、ならびに／またはより一般的には、図１〜図４、図６、および／もしくは図１０〜図１２のネットワークホスト例を実装するために、使用され、かつ／またはプログラムされ得るプロセッサプラットフォーム例の略図である。
【発明を実施するための形態】
【０００６】
信頼性は、プロセス制御システムの実施態様における共通の懸念事項であり、特に、多数の従来型の別個のワークステーションおよび他のコンピュータ構成要素が全て、ホストサーバーのクラスタ上の仮想マシン（ＶＭ）として実装される仮想化制御システムでの懸念事項である。これらの懸念事項に対処するために、ハードウェア製造業者は、冗長ディスクアレイ、制御装置、および電力供給を備えたストレージエリアネットワーク（ＳＡＮ）装置などの、信頼性向上のためのハードウェアソリューションを提供する。複数のホストサーバーは、通常、システム全体の可用性を向上させて、物理システム全体をシャットダウンする必要なく、構成要素のアップグレードまたは交換などの、保守のための余地を持たせるために、１つの高度に冗長なＳＡＮでクラスタ化される。Ｗｉｎｄｏｗｓ  Ｓｅｒｖｅｒ  ２０１２などの最先端のオペレーティングシステムは、ＶＭの、物理システムの１つの部分（例えば、ハードドライブ）からそのシステムの別の部分への、または、外部のバックアップシステムさえへの移行を容易にし、その間、ＶＭは実行を継続し、そのＶＭ上で継続され得るアプリケーションの動作もしくは通信またはユーザーやりとりに顕著な影響を与えることがない。かかるソリューションは、シンクライアント(thin clients)などの外部コンピュータノードまたはネットワークホスト上にインストールされたソフトウェアクライアントにより、イーサネットを介してアクセスできる、電子メールサーバー、ウェブサーバーおよび他のバックエンドサーバーなどの、様々な仮想マシンの可用性を向上させる。
【０００７】
多数の従来型の（すなわち、物理的）制御システムは、オペレータインタフェースアプリケーション、資産管理アプリケーション、アラーム管理アプリケーションなどの、システムの不可欠な部分であるソフトウェア構成要素に向き合う多数のオペレータを有する。これらの構成要素は、相当な量のビジネスロジックを実行し、制御システムの他の構成要素と通信する際に高い可用性を確実にするために独自のプロトコルを使用する。例えば、操作卓は、頻繁に、制御システム内の複数の制御装置および／またはヒストリアンと通信している。かかる例では、操作卓と特定のヒストリアンとの間で接続が失われる場合、操作卓は、別のヒストリアンからの情報にアクセスすることにより、依然として任意の所望の履歴データを取得することが可能であり得る。同様に、操作卓と特定の制御装置との間で接続が失われる場合、操作卓は、依然として、制御システム内の類似した測定点を有する別の制御装置から所望の実行時データを取得することが可能であり得る。
【０００８】
前述した冗長性のいくつかは、データがオペレータに提示されるエンドユーザー端末が、提示されているデータを生成するビジネスロジックを実行しているアプリケーションと分離されているので、プロセス制御システムが仮想化されると利用できなくなる。すなわち、いくつかの仮想化制御システムでは、ビジネスロジックは、集中型ホストシステム上で実装されたＶＭによって実行されるが、他方、エンド端末は、多くの場合、遠隔表示プロトコルを使用して表示するためにＶＭからのデータにアクセスするシンクライアントである。従って、ＶＭが、一次制御装置またはヒストリアンとの接続を失った場合に、代替制御装置またはヒストリアンからデータを取得できるかどうかは、シンクライアントとＶＭとの間の接続が失敗した場合にデータがシンクライアントに表示されるかどうかには無関係である。従って、仮想化環境を実装する、ホストサーバーおよび関連ハードウェアに組み込まれた多数の冗長性があるが、システムの可用性および／または信頼性における弱点は、エンドユーザー端末ノード（例えば、シンクライアント）への接続である。
【０００９】
多くの場合、シンクライアントは、仮想制御システムと関連付けられたシンクライアントのいずれかがダウン時間を経験している場合に、その故障したシンクライアントと関連付けられたＶＭが別の端末からアクセスできることを前提として、多数の冗長機能を備えていない（結果として、多くの単一障害点となる）。いくつかのシンクライアントは、冗長ネットワークカードで実装されており、この特徴によって、ネットワーク接続が失われる場合に、シンクライアントはバックアップネットワークに切り替えることができる。これは改善点であるが、かかるソリューションはそれでもやはり、ある限界に悩まされる。例えば、認められなかったデータ伝送の配信は、通常、再伝送中に再試行され得る。しかし、ネットワーク障害がある場合、再伝送でのいずれの試行も失敗し、そのプロセスは、ネットワーク接続がタイムアウトするまで繰り返す。いくつかのかかる例では、接続がタイムアウトした後にのみ、ネットワーク障害が確認され、その時点で代替通信経路がバックアップネットワークを経由して確立され得る。通常、かかるネットワーク障害を検出して冗長ネットワーク上で接続を再確立するために、１分を優に超える時間がかかり得る。多くのプロセス制御設定において、通信のない１分間は許容できない。許容可能な遅延は、大抵５秒未満である。その上、多くのかかる状況では、エンドユーザーは、障害から再接続までの間のほとんどの時間、障害が起こっていることに気が付かず、従って、シンクライアントの画面上に表示された、期限切れの情報を見て、それを頼りにしているかもしれない。さらにその上、ネットワーク障害の後、新しい接続が確立される前に、配信を試みたいずれのデータも失われる。
【００１０】
データを失うことなく冗長ネットワークへのシームレスなフェイルオーバーを提供する１つのソリューションは、並列冗長プロトコル（ＰＲＰ）の使用を伴う。ＰＲＰは、１つのネットワークが故障している場合でさえ、データのあらゆるパケットを、少なくとも２つのネットワークの各ネットワークインタフェース上で一度の、２度伝送することにより、データ通信の良好な配信を達成する。かかるアプローチでは、障害回復における遅延がなく、データが失われないことを確実にする。しかし、かかるアプローチは、２倍多いデータが送受信されているので、ネットワークトラフィックおよびコンピュータ処理における著しい増大を伴う。
【００１１】
他の冗長方式は、冗長性を処理できる外部スイッチなどの特殊なハードウェアを使用して、かつ／またはシンクライアントでの使用のためにリンクアグリゲーションをサポートするネットワークインタフェースカードで、実装されている。しかし、追加のハードウェア装置の取得および保守に追加の費用がかかる。その上、スイッチを、ネットワークアーキテクチャに応じて、仮想ローカルエリアネットワーク（ＶＬＡＮ）および／またはリンクアグリゲーションで構成するのがさらに複雑である。さらにその上、かかるハードウェア構成要素は、大抵、仮想化ソフトウェアのプロバイダ以外の異なる製造業者によって提供される。
【００１２】
本明細書で開示する例は、データを失うことなく、かつデータ処理または帯域幅要件における著しい増大なしで、迅速な回復時間（５秒未満）を提供するために、前述の限界を克服する冗長ネットワークシステムを提供する。本明細書で開示する例は、各々が２つのネットワークインタフェースを有し、その各々が２つのネットワークの１つに接続されている、ネットワークホストの任意のグループを通じて、実装され得る。本明細書では、用語「ネットワークホスト」（または「ホスト」）は、ネットワークに接続されていて、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）プロトコルスタックを使用して通信する、任意のコンピュータまたは他の装置（仮想的に、または物理ハードウェアを介して実装されているかに関わらず）を指す。ネットワークホストの例は、仮想マシン、シンクライアント、シッククライアント、組込みコントローラ、および／または任意の他の適切なコンピューティング装置を含む。
【００１３】
本明細書で開示する例は、マルチホームのネットワークホストを伴う。すなわち、本明細書で説明する冗長方式の一部とすることを意図とした各ホストは、２つのネットワークインタフェース（例えば、ＮＩＣ）を経由して２つの独立したネットワークに接続される。さらに、同じ冗長方式に加わっている各ホストは、その方式内の他のあらゆるホストと同じ２つのネットワークに接続される。すなわち、ネットワークホストの各々は、冗長方式の一部として含まれる全てのホストに共通した２つの別個のネットワークを通じて、コネクション型通信を可能にする２つのネットワークインタフェースを含む。冗長方式の一部を形成するネットワークホストは２つの共通したネットワークを有するが、いくつかの例では、ネットワークのいずれも、他のネットワークに接続されていない１つ以上の他のホストも含み得る。かかるホストは、本明細書で説明する冗長方式に含まれていない可能性があるが、かかるホストはかかる方式を妨げない。その上、ホストの１つ以上は、本明細書で開示する教示に影響を及ぼすことなく、追加のネットワークに接続され得る。さらにその上、いくつかの例では、プロセス制御システム内に、各々が２つの共通したネットワークを含む、ネットワークホストの複数のグループがあり得る。かかる例では、ネットワークの各グループは、本明細書で開示する教示を別々に実装し得る。
【００１４】
本明細書で説明する冗長方式は、仮想プロセス制御システムのコンテキストにおいて可用性の特定の懸念事項を解決するために有益であるが、本明細書で説明する教示は、代替として、完全な物理環境（すなわち、仮想化なし）で実装され得る。すなわち、本明細書で開示する教示は、２つの共通したネットワークを共有して、ＴＣＰ／ＩＰプロトコルに基づき通信するネットワークホストの任意のセットに適用可能である。
【００１５】
本明細書で説明する冗長方式の例は、ネットワークホストに共通した２つの独立したネットワークを通じたネットワークホスト間の接続状態を監視することにより達成される。ネットワーク接続を実質的にリアルタイムで監視することにより、ネットワーク障害が素早く検出される。一旦、ネットワークの１つでネットワーク障害が検出されると、関連付けられたネットワークホストは、本明細書で開示する教示に従い、インターネットプロトコル（ＩＰ）ルーティング標準を使用して、障害の起こったネットワークを迂回する代替通信経路を自動的に確立する。より具体的には、ネットワークホストは、（障害の起こったネットワークに接続された）ネットワークインタフェースの１つからの伝送を、（動作可能なネットワークと接続された）他のネットワークインタフェースを通して再ルーティングする。
【００１６】
いくつかの開示する例では、ネットワーク障害の検出および代替通信経路の確立には、５秒もかからない。いくつかの例では、もっと短い時間（例えば、５００ミリ秒以下）も可能である。従って、本明細書で開示する例は、プロセス制御システム環境にとって、信頼できる最新のデータがオペレータおよび他のエンドユーザーに対して利用可能であること確実にするために必要な要件内で回復時間を提供する。さらに、ネットワーク障害を検出して代替通信経路を確立するために要する時間は、データ伝送に対する接続タイムアウト期間未満である。すなわち、ネットワークホストがデータ再伝送の試行をやめる前に、代替ルートが確立されるであろう。そのため、データは失われず、せいぜい数秒遅延するくらいであろう。
【００１７】
本明細書で説明するようにネットワーク障害を実質的にリアルタイムで検出して、かかる障害から迅速に回復するのを可能にすることは、ホストを接続している２つのネットワークの各々を通じたネットワークホスト間の接続性を継続して監視することにより達成される。いくつかの例では、各ネットワークホストは、ネットワークを通じて他のネットワークホストの各々に頻繁に伝送される完全性メッセージ（ｉｎｔｅｇｒｉｔｙ  ｍｅｓｓａｇｅ）を準備する。いくつかの例では、完全性メッセージは、プロセス制御システムの通常動作と関連した、ホスト間での典型的なデータ伝送とは異なる。いくつかの例では、完全性メッセージは、対応するネットワークを通じてブロードキャストされる。他の例では、完全性メッセージは、そのメッセージを受信するように構成されたネットワークホストのみに対してマルチキャストされる。いくつかの例では、各ネットワークホストからの各連続した完全性メッセージの伝送が、各ネットワークインタフェース間で交互に行われる。いくつかの例では、完全性メッセージは、後続の完全性メッセージがネットワークインタフェースのいずれかから送信される前に、接続されたホストの各々のネットワークインタフェースの各々から伝送される。すなわち、いくつかの例は、各ネットワークホストの各ネットワークインタフェースを繰り返してから、第１のネットワークホストに戻ってプロセスを繰り返す。いくつかの例では、各ネットワークホストのネットワークインタフェースの各々を繰り返すことは、一瞬のうちに起こる。このように、各ネットワークホストは完全性メッセージを、各ネットワークインタフェースを経由して、あらゆる他のネットワークホストに頻繁に伝送する。結果として、各ネットワークインタフェースを経由した各ネットワークホスト間の接続が、任意の２つのネットワークホスト間で障害を迅速に検出するために常に監視できる。
【００１８】
各完全性メッセージは、伝送側ホストの、対応するネットワークを通じた、他のホストの各々と接続性を検査する働きをする。他のネットワークホストの各々が、特定のネットワークを通じて、伝送側ホストから完全性メッセージを受信する場合、ネットワークホストの各々は、それ自身と伝送側ホストとの間のそのネットワークを通じた通信状態が良好であることを確認できる。他方、ネットワークホストの１つ以上が、特定のホストから伝送された完全性メッセージの受信に失敗した場合、完全性メッセージがないことは、ネットワーク障害を示すものである。従って、予期された完全性メッセージの受信に失敗したネットワークホストは、それ自身と、そのメッセージが予期されたホストとの間の接続状態が不良であることを確認し得る。
【００１９】
いくつかの例では、完全性メッセージは、既知の時間間隔で定期的に伝送されるために、特定のネットワークホストの特定のネットワークインタフェースから、既知の時間間隔より長期間にわたってメッセージが受信されない場合、ネットワーク障害が推測され得る。いくつかの例では、ネットワーク障害は、同じネットワークホストの同じネットワークインタフェースから送信される各連続した完全性メッセージ間の時間間隔の３倍の閾値期間を超えて、受信されている完全性メッセージがないことに基づいて検出される。いくつかの例では、閾値期間は、その間隔の３倍よりも長いこともあれば、短いこともあり得る。
【００２０】
各ホストから他の全てのホストに対して各ネットワークを通じて伝送された定期的な完全性メッセージは、各ネットワークホスト間の各ネットワークを経由した接続のチェックまたはテストとして機能する。ネットワークホストが完全性メッセージを受信する場合、そのホストと、そのメッセージを送信したネットワークホストとの間の接続または通信状態が良好であると確認される。ネットワークホストが（閾値期間の後）完全性メッセージを受信しない場合、そのホストと、メッセージが予期されたネットワークホストとの間の接続状態が悪いと判断される。このように、いくつかの例では、各ホスト間の接続または通信状態が、メッセージに含まれる内容とは関係なく、メッセージが受信されるかどうかに基づき判断される。しかし、いくつかの例では、完全性メッセージの内容が完全性情報を含んでいて、異なるホスト間の異なるネットワークを通じた接続状態を検証するために、ネットワークホストの各々に対してさらなる情報を提供する。
【００２１】
いくつかの例では、完全性メッセージは、その完全性メッセージが送信されたネットワークホストを識別するホスト情報を含む。いくつかの例では、ホスト情報は、メッセージを送信しているネットワークホストの両方のネットワークインタフェースのＩＰアドレスを含む。このように、全てのネットワークホストは、ネットワーク障害が検出された場合に代替通信経路を作成するために必要なＩＰ情報を有する。いくつかの例では、ホスト情報は、ネットワーク上の他のホストを発見するために各ネットワークホストによって使用される。
【００２２】
加えて、いくつかの例では、完全性メッセージは、そのメッセージを伝送しているネットワークホストと、他のホストの各々との間の両方のネットワークインタフェースに対する接続または通信状態を示す完全性情報を含む。いくつかの例では、この情報を生成して、他のネットワークホストの各々と関連付けられた通信状態を受信する（ネットワークホストの各々がそれらの完全性メッセージを伝送する時に）ことにより、ネットワークホストの各々が、それ自身と他の全てのホストとの間の通信状態を表す完全性テーブルを生成できる。いくつかの例では、かかる情報は、直接接続がネットワーク障害に起因して失敗した場合に、代替通信経路を定義するために頼りにされる。追加または代替として、いくつかの例では、各完全性メッセージに含まれる完全性情報は、各ホストが他のホストから完全性メッセージを受信したかどうか、およびいつ受信したかに基づき各ホストによって判断された通信状態に関する冗長検査として使用される。
【００２３】
完全性メッセージの頻繁な伝送は、ネットワークにいくらか追加の負荷を課すが、ネットワークトラフィックの総量は、ＰＲＰを使用したシステムの実装に伴うネットワークトラフィックよりも依然として大幅に少ない。例えば、ネットワークが、各々がプロセス制御システムと関連した１０００パケットのデータを毎秒受信する１０のホストを含む場合、ＰＲＰを使用する際に各ホストに伝送されるデータの総量は、秒あたり２倍の２０００データパケットになる。一方、１０のホストの各々が、本明細書で開示する教示に従って、毎秒２つの完全性メッセージパケットを伝送する場合、各ホストに転送されるデータの総量は、秒あたり１０２０データパケットになるであろう（１０００プロセス制御データパケット＋２×１０＝２０完全性メッセージデータパケット）。明らかに、開示する例で伝送された１０２０データパケットは、ＰＲＰの使用で必要とされる２０００データパケットよりも大幅に少ない。完全性メッセージによって生成されるネットワーク負荷は、ネットワークホストの数および完全性メッセージの頻度の関数であるが、ネットワークを通じて伝送されるプロセス制御データの量とは無関係である。従って、前述した例での各ネットワークホストが秒あたり５０００パケットのプロセス制御データを受信した場合、完全性パケットの量は秒あたり２０パケットのままであろう。しかし、ネットワーク障害のより迅速な検出を可能にするために、完全性メッセージがもっと頻繁に（例えば、秒あたり５メッセージ）送信される場合、完全性メッセージに起因した負荷は比例して増加する（例えば、最高で、秒あたり５×１０＝５０データパケット）であろうが、総量は依然として、ＰＲＰによって課される負荷をはるかに下回る結果となるであろう（例えば、秒あたり２０００パケットと比べて、秒あたり１０５０パケット）。同様に、ホストの数が（例えば、最大で５０まで）増加するが、完全性メッセージの頻度が秒あたり２データパケットで維持される場合、各ネットワークホストで各秒に受信される完全性データの総量は、秒あたり２×５０＝１００パケットである（計、秒あたり１１００データパケット）。従って、追加のホストおよび／またはもっと頻繁な完全性メッセージはネットワークに追加の負担を課すが、負担のレベルは、ＰＲＰを実装する場合に必要とされるような、ネットワークトラフィック量の２倍よりも依然としてはるかに少ない。
【００２４】
その上、本明細書で説明する教示は、ソフトウェアベースであるため、任意の特殊または追加のハードウェア（例えば、冗長性を提供できるネットワークスイッチ）を取得、構成、依存、および／または保守する必要がない。そのため、本明細書で開示する例は、任意の適切なネットワークに対して追加の設定なしで使用でき、それと同時に、構成およびセットアップの複雑さを削減する。
【００２５】
いくつかの例では、仮想プロセス制御システムのコンテキストにおいて、本明細書で開示する教示を実装するためのネットワーク冗長性ソフトウェアおよび関連した構成ツールが、仮想化ソフトウェア（例えば、ＤｅｌｔａＶ  Ｖｉｒｔｕａｌ  Ｓｔｕｄｉｏ（商標））内に含まれていて、そのソフトウェアを作成する仮想マシンに自動的に組み込まれる。いくつかの例では、ＩＰアドレスを仮想マシン上のネットワークインタフェースカード（ＮＩＣ）に割り当てた後、構成ツールが、任意の２つのネットワークにわたる冗長性をセットアップするために実行できる。追加または代替として、いくつかの例では、仮想化ソフトウェアは、必要なファイルおよび、冗長サービスを自動的に作成するスクリプトを含むディスクを仮想マシンにアタッチし得、そのファイルを仮想マシン上にコピーし、構成ツールを起動して、ディスクをイジェクトする。ディスクは、仮想化ソフトウェアの初期のバージョンで作成された仮想マシン上でのかかる冗長方式の作成を可能にする。
【００２６】
いくつかの例では、ネットワーク冗長性ソフトウェアおよび構成ツールの両方が、リモートデスクトップ接続インストーラ（例えば、ＤｅｌｔａＶ  Ｒｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｃｏｎｎｅｃｔｉｏｎ）に含まれる。かかる例では、リモートデスクトップ接続インストーラが、セットアップされたネットワークが既に２つあることを検出すると、それらのネットワークに対して冗長性を自動的に構成できる。そうでない場合、構成ツールは、ＩＰアドレスが各ネットワークホストに割り当てられた後、手動で実行できる。
【００２７】
本明細書で開示する例は、システムの可用性を損なうシナリオをユーザーにアラームで知らせる可用性監視システムに統合され得る。例えば、冗長ネットワーク経路の１つが利用できないか、または動作不能（アクティブか予備かに関わらず）になっている場合、アラートまたはアラームが、エンドユーザー（例えば、オペレータまたは保守技術者）にその障害を通知するために生成されて、問題に対処する機会を提供し得る。加えて、いくつかの例では、ネットワーク障害の発生は、データヒストリアンにログが取られ得る。いくつかのかかる例では、ログは、障害のタイミングならびに影響を受けるネットワークホストの識別を含む。
【００２８】
図を詳細に見ると、図１は、本開示の教示が実装され得るプロセス制御システムまたは分散制御システム（ＤＣＳ）例１００の略図である。本明細書では、句「プロセス制御システム」は、句「分散制御システム」と区別しないで使用される。図１のＤＣＳ例１００は、任意の所望の通信媒体（例えば、無線、ハードワイヤードなど）およびプロトコル（例えば、Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓ、Ｐｒｏｆｉｂｕｓ、ＨＡＲＴなど）を使用して、複数のスマートおよび／または非スマートのフィールド装置１０４に通信可能に結合されたプロセス制御装置１０２を含む。図１の制御装置例１０２は、例えば、Ｆｉｓｈｅｒ−Ｒｏｓｅｍｏｕｎｔ  Ｓｙｓｔｅｍｓ，Ｉｎｃ、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔ会社によって販売されているＤｅｌｔａＶ（商標）制御装置であり得る。本明細書で開示する教示は、ＤｅｌｔａＶ（商標）ハードウェア、ソフトウェア、および／またはファームウェアに関連して説明されるが、教示は、他の実体によって製造ならびに／または開発された他のハードウェア（例えば、他の制御装置）、ファームウェア、および／もしくはソフトウェアに適合し得る。さらに、図１には２つの制御装置１０２が示されているが、任意の所望のタイプおよび／またはタイプの組合せの追加および／または少ない制御装置および／またはプロセス制御プラットフォームが、ＤＣＳ例１００で実装できる。
【００２９】
通常、プロセス制御システム内の制御装置は、１つ以上のコンピュータと関連付けられ得る１つ以上の操作卓、アプリケーションステーション、および／または他のワークステーション（本明細書ではワークステーションと総称する）に通信可能に結合される。しかし、図示例では、制御装置１０２は、仮想プロセス制御環境例１０６に通信可能に結合されている。図１の仮想プロセス制御環境例１０６は、ドメインコントローラ例１０８、第１のホストサーバー例１１０、第２のホストサーバー例１１２、第３のホストサーバー例１１４、およびストレージエリアネットワーク（ＳＡＮ）例１１６を含む。図示例では、仮想プロセス制御環境１０６は、テーブル１１８内にリストされた複数の仮想ワークステーション１１７に対応する仮想マシンを実装する。
【００３０】
テーブル１１８に示されるように、ＤＣＳ１００に対して実装された仮想ワークステーション１１７は、８つの仮想操作卓１２０、４つのアプリケーションステーション１２２、および１つの仮想一次制御システムアプリケーションステーション１２４（例えば、ＤｅｌｔａＶ（商標）ＰｒｏＰｌｕｓワークステーション）を含む。具体的には、図示例では、第１のホストサーバー１１０は、仮想操作卓１２０の３つおよび仮想アプリケーションステーション１２２の２つを実装し、第２のホストサーバー１１２は、仮想操作卓１２０の他の３つおよび仮想アプリケーションステーション１２２の１つを実装し、そして第３のホストサーバー１１４は、仮想操作卓１２０の残りの２つ、最後の仮想アプリケーションステーション１２２、および仮想一次制御システムアプリケーションステーション１２４を実装する。仮想ワークステーション例１１７の分割例がテーブル１１８に示されているが、仮想ワークステーション例１１７は、ホストサーバー１１０、１１２、１１４の各々の要求に従い任意の組合せで、ホストサーバー１１０、１１２、１１４のいずれか１つに割り当てられ得る。追加または代替として、いくつかの例では、仮想ワークステーション１１７の１つ以上の複製が、ホストサーバー１１０、１１２、１１４の別個のものに実装され得る。
【００３１】
図示例では、ホストサーバー１１０、１１２、１１４およびＳＡＮ  １１６は、一般にクラスタと呼ばれるネットワークを形成するために、通信可能に相互接続されている。ドメインコントローラ１０８は、クラスタと通信して、クラスタを管理し、クラスタ内に格納された情報へのアクセスを制御する。図示例では、ＳＡＮ  １１６は、ホストサーバー１１０、１１２、１１４の各々がメモリの同じ論理ユニット（例えば、同じ論理ユニット番号）に対して読取り／書込み操作を実行し得る、共通または共用記憶装置（例えば、クラスタ共有ボリューム）として機能する。このように、仮想ワークステーション１１７の実施態様と関連付けられたデータが、システムに対して高可用性を提供するために、各ホストサーバー１１０、１１２、１１４内のネイティブのハードドライブとは別に格納される。例えば、ホストサーバー１１０、１１２、１１４の１つが故障すると、そのホストサーバーによって実装された仮想ワークステーション１１７が、他のホストサーバー１１０、１１２、１１４の１つ上で起動され得る。いくつかの例では、ＳＡＮ  １１６が含まれていないために、各ホストサーバー１１０、１１２、１１４はそのローカルのハードドライブに依存する。
【００３２】
図１の図示例では、仮想プロセス制御環境１０６のホストサーバー１１０、１１２、１１４の各々（および関連したＳＡＮ  １１６）は、バスおよび／またはローカルエリアネットワーク（ＬＡＮ）１２８を経由して制御装置１０２に通信可能に結合されており、それは、一般に、アプリケーション制御ネットワーク（ＡＣＮ）と呼ばれる。図１のＬＡＮ例１２８は、任意の所望の通信媒体およびプロトコルを使用して実装され得る。例えば、ＬＡＮ例１２８は、ハードワイヤードおよび／または無線のイーサネット通信方式に基づき得る。しかし、任意の他の適切な通信媒体（複数可）および／またはプロトコル（複数可）が使用できる。さらに、図１には単一のＬＡＮ  １２８が示されているが、図１の構成要素例間に冗長通信経路を提供するために、２つ以上のＬＡＮおよび／または通信ハードウェアの他の代替部品が使用され得る。
【００３３】
いくつかの例では、仮想プロセス制御環境１０６（例えば、ドメインコントローラ１０８、ホストサーバー１１０、１１２、１１４、およびＳＡＮ  １１６）は、仮想プロセス制御環境１０６内で実装された仮想ワークステーション１１７にリモートにアクセスできるシンクライアント１２６に通信可能に結合されて、オペレータ、エンジニア、および／または他のプラント担当者が、シンクライアント１２６のディスプレイ上にレンダリングされたユーザーインタフェースを介して、あたかも仮想ワークステーション１１７がそのディスプレイと関連付けられた物理コンピュータシステムおよび／または他のプロセッサプラットフォームで実装されているかのように同じ方法で、ワークステーションとやりとりするのを可能にする。
【００３４】
図１は、本明細書で開示する教示が有利に採用され得るＤＣＳ例１００を示しているが、本明細書で開示する教示は、必要に応じて、図１の図示例よりも多かれ少なかれ複雑な（例えば、２つ以上の仮想プロセス制御環境１０６を有する、もっと多くの（物理および／または仮想）ワークステーションを有する、２つ以上の地理的位置にわたる、など）他のプロセスプラントおよび／またはプロセス制御システムで有利に採用され得る。その上、本明細書で開示する教示は、完全に物理的なプロセス制御システム（例えば、仮想プロセス制御環境１０６を有していないシステム）で採用され得る。
【００３５】
図２は、図１のＤＣＳ例１００の一部のネットワーク構成例２００の略図である。図２の図示例では、シンクライアント１２６の３つが、ワークステーション１１７の３つに通信可能に結合されて示されている。図示例では、ワークステーション１１７は、仮想プロセス制御環境１０６内の仮想マシンとして実装されており、他方、シンクライアント１２６は、物理コンピューティング装置である。図２に示すように、シンクライアント１２６の各々およびワークステーション１１７の各々が、一次ネットワーク２０２および別個の二次ネットワーク２０４に接続されている。すなわち、シンクライアント１２６およびワークステーション１１７の各々は、同じ共通のネットワーク２０２、２０４に対してマルチホームである。より具体的には、いくつかの例では、シンクライアント１２６およびワークステーション１１７の各々は、一次ネットワーク２０２に接続された第１のネットワークインタフェース２０６（例えば、ネットワークインタフェースコントローラ（ＮＩＣ））を含む。さらに、いくつかの例では、シンクライアント１２６およびワークステーション１１７の各々は、二次ネットワーク２０２に接続された第２のネットワークインタフェース２０８を含む。本明細書では、用語「一次」および「二次」は、異なるネットワークホスト間で共通したネットワーク（例えば、ネットワーク２０２、２０４）を区別するために使用され、一方のネットワークが、必ず最初に使用される、デフォルト設定で使用される、より頻繁に使用される、またはより重要であると示唆することを意図していない。
【００３６】
説明のため、シンクライアント１２６およびワークステーション１１７は、それら全てが同じネットワーク２０２、２０４に接続されているという点において、本明細書では一般に、ネットワークホスト２１０と呼ばれる。いくつかの例では、図２に示すシンクライアント１２６およびワークステーション１１７に加えて、またはその代わりに、他のタイプのネットワークホスト２１０があり得る（例えば、シッククライアント、独立した物理ワークステーション、組込みコントローラ、など）。ネットワークホスト２１０は、仮想プロセス制御環境１０６を形成するために使用される、前述したホストサーバー１１０、１１２、１１４とは異なる。しかし、ホストサーバー１１０、１１２、１１４は、本明細書で開示する教示に従い上で定義したようなネットワークホストと見なされ得る、仮想マシン（例えば、ワークステーション１１７）および／または他の仮想装置を実装し得る。
【００３７】
図３は、本明細書で開示する教示に従って構築されたネットワークホスト例２１０の実施態様例である。図３の図示例では、ネットワークホスト２１０は、第１のネットワークインタフェース例３０２、第２のネットワークインタフェース例３０４、完全性メッセージアナライザー例３０６、完全性テーブル生成器例３０８、完全性メッセージ生成器例３１０、通信経路判定器例３１２、通信マネージャ例３１４、およびアラームマネージャ例３１６を含む。
【００３８】
ネットワークホスト例２１０は、図１および／または図２のＤＣＳ例１００のシンクライアント１２６またはワークステーション１１７の任意の１つを実装するために使用され得る。しかし、説明のため、ネットワークホスト２１０は、図４に示すネットワークホスト４０２、４０４、４０６の簡略化システム４００に関連して説明されるであろう。ホスト４０２、４０４、４０６の各々は、図３のネットワークホスト例２１０を使用して実装され得る。図４の図示例に示すように、ホスト４０２、４０４、４０６の各々は、一次ネットワーク４０８および二次ネットワーク４１０に接続されたマルチホームのネットワークホストである。その上、図示例に示すように、一次ネットワーク４０８および二次ネットワーク４１０は、３つのネットワークホスト４０２、４０４、４０６の各々に共通している。より具体的には、ネットワークホスト４０２、４０４、４０６の各々は、各ネットワークホスト４０２、４０４、４０６がそれを通して一次ネットワーク４０８に接続する第１のネットワークインタフェース３０２を含む。さらに、図示例では、ネットワークホスト４０２、４０４、４０６の各々は、各ネットワークホスト４０２、４０４、４０６がそれを通して二次ネットワーク４０８に接続する第２のネットワークインタフェース３０４を含む。結果として、ネットワークホスト４０２、４０４、４０６の全ては、それらの対応する第１のネットワークインタフェース３０２を経由して、一次ネットワーク４０８を通じて相互に直接通信でき、かつ／またはそれらの対応する第２のネットワークインタフェース３０４を経由して、二次ネットワーク４１０を通じて直接通信できる。いくつかの例では、ホスト４０２、４０４、４０６間のネットワーク４０８、４１０のいずれかの上に１つ以上のスイッチがあり得る。しかし、本開示のため、ネットワークホスト４０２、４０４、４０６は、伝送がいずれかのスイッチを通過するかに関わらず、対応するネットワークインタフェース３０２、３０４が、それらが接続されているネットワークを通じて通信する場合、「直接」通信するといわれる。
【００３９】
図３を再度参照すると、ネットワークホスト例２１０（図４のネットワークホスト４０２、４０４、４０６の任意の１つに対応する）は、一次ネットワーク４０８に接続するための第１のネットワークインタフェース３０２が備えられ、それにより、一次ネットワーク４０８上の他のネットワークホスト（例えば、ネットワークホスト４０２、４０４、４０６）との通信を可能にする。ネットワークホスト例２１０は、二次ネットワーク４１０に接続するための第２のネットワークインタフェース３０４が備えられ、それにより、二次ネットワーク４１０上の他のネットワークホスト（例えば、ネットワークホスト４０２、４０４、４０６）との通信を可能にする。いくつかの例では、第１および第２のネットワークインタフェース３０２、３０４は、（例えば、図１および／または図２の物理シンクライアント１２６内の）物理ネットワークインタフェースカード（ＮＩＣ）を介して実装される。他の例では、第１および第２のネットワークインタフェース３０２、３０４は、（例えば、図１および／または図２の仮想ワークステーション１１７内の）仮想マシンの仮想構成要素として実装される。いくつかの例では、第１および第２のネットワークインタフェース３０２、３０４が物理的または仮想的に実装されているかどうかに関わらず、第１および第２のネットワークインタフェース３０２、３０４の間でインターネットプロトコル（ＩＰ）ルーティングが可能にされる。このように、第２のネットワークインタフェース３０４を意図する最終的な宛先として、第１のネットワークインタフェース３０２に配信された情報は、第２のネットワークインタフェース３０４に送られ得る。かかる例では、第１のネットワークインタフェース３０２は、第２のネットワークインタフェース３０４に向かう予定の任意のデータを転送するために、第２のネットワークインタフェース３０４に対してルーターまたはゲートウェイとして定義される。同様に、図示例では、第１のネットワークインタフェース３０２を意図する最終的な宛先として、第２のネットワークインタフェース３０４に配信された情報は、第２のネットワークインタフェース３０４を経由して第１のネットワークインタフェース３０２に送られ得る。
【００４０】
図３の図示例では、ネットワークホスト２１０は、ネットワークホスト２１０と、完全性メッセージを伝送している他のネットワークホストとの間の接続または通信状態を判断するために、他のネットワークホストから受信した完全性メッセージを分析する完全性メッセージアナライザー３０６を備えている。本明細書では、通信状態は、直接通信が、２つの特定のネットワークホスト４０２、４０４、４０６の対応するネットワークインタフェース３０２、３０４間で、対応するネットワーク４０８、４１０を通じて生じ得るかどうかの指標を指す。２つのネットワークホストの２つの対応するネットワークインタフェース間で直接通信が可能な場合、通信状態は「良好」である。ネットワーク障害があるために、２つのネットワークインタフェース間で対応するネットワークを通じて、データが直接伝送できない場合、通信状態は「不良」である。ネットワーク障害の特定の性質は、本明細書で開示する教示に関係しない。従って、ケーブルのプラグが抜けているか、損傷している（例えば、切れている）かどうか、またはネットワークインタフェース３０２、３０４の１つが内部的に故障しているか、かつ／もしくは対応するインタフェース間の通信を妨げる任意の他の状況かどうかに関わらず、影響するインタフェース間で不良な通信状態が設定される。
【００４１】
各ネットワークホスト４０２、４０４、４０６が、他のネットワークホストの各々の第１のネットワークインタフェース３０２から（一次ネットワーク４０８を通じて）定期的に伝送される完全性メッセージを受信する時に、完全性メッセージアナライザー３０６は、完全性メッセージがうまく受信されたので、受信側ネットワークホストと送信側ネットワークホストとの間の一次ネットワーク４０８を通じた通信状態が良好であることを確認する。同様に、ネットワークホスト４０２、４０４、４０６の各々が、他のネットワークホストの各々の第２のネットワークインタフェース３０４から（二次ネットワーク４１０を通じて）定期的に伝送される完全性メッセージを受信する時に、完全性メッセージアナライザー３０６は、受信側ネットワークホストと送信側ネットワークホストとの間の一次ネットワーク４０８を通じた通信状態が良好であることを確認する。すなわち、いくつかの例では、メッセージの受信は、通信状態が良好であることを確認するための根拠として役立つ。従って、いくつかの例では、各完全性メッセージの特定の内容は、接続または通信状態の判断に無関係である。しかし、他の例では、完全性メッセージの内容は、第２のレベルの通信状態の確認を提供し、かつ／または本明細書で開示する教示を実装する際に有用な追加の詳細を提供する。
【００４２】
一方、例えば、ネットワークホスト４０２、４０４、４０６のうちの１つのネットワークインタフェース３０２、３０４の１つの失敗などの、ネットワーク障害がある場合には、失敗したインタフェースをもつネットワークホストが、その失敗したネットワークインタフェースを介して伝送しようと試みるいずれの完全性メッセージも配信されないであろう。完全性メッセージが、予期された時に（例えば、ネットワーク障害に起因して）受信されない場合、いくつかの例では、完全性メッセージアナライザー３０６は、ネットワーク障害があること、従って、対応するネットワークインタフェース間の通信状態が悪いと判断する。具体的には、いくつかの例では、完全性メッセージが、一次および二次ネットワーク４０８、４１０の各々を通じ、対応する第１および第２のネットワークインタフェース３０２、３０４を経由して、定期的に伝送される。いくつかの例では、特定のネットワークホストの特定のネットワークインタフェースから送信された各完全性メッセージが、同じネットワークホストの同じネットワークインタフェースから送信された以前の完全性メッセージから特定の時間間隔内に伝送される。そのため、（通信状態が良好であることを示す）完全性メッセージの受信後から始まる、時間間隔が、新しい完全性メッセージを受信することなく、超過する場合、受信側ネットワークホストの完全性メッセージアナライザー３０６は、予期された伝送が失敗したと判断し得る。予期された完全性メッセージがないことは、かかる例では、伝送側ネットワークホストの特定のネットワークインタフェースに関して、失敗したかまたは不良な通信状態を示す。いくつかの状況では、ネットワーク障害以外の要因が、特定の完全性メッセージが、連続するメッセージに対して構成された時間間隔内に伝達されるかどうかに影響を及ぼし得る。それに応じて、いくつかの例では、完全性メッセージアナライザー３０６は、閾値期間が、同じネットワークホストの同じネットワークインタフェースからの連続したメッセージ間で予期される時間間隔よりも、例えば、時間間隔の３倍など、長い後に限り、２つの異なるネットワークホストの対応するネットワークインタフェース間の通信状態が悪いと判断し得る。他の例では、時間間隔は、メッセージが送信されたネットワークインタフェースに関わらず、３つの完全性メッセージが、特定のネットワークホストから受信されることが予期される期間に対応し得る。例えば、各ホストは、配信できない、全てのネットワークホストの全てのネットワークインタフェースを繰り返す各時間間隔中に、２つの完全性メッセージを（各ネットワークインタフェースを経由して１つ）送信し得るため、次に失敗した伝送は（ネットワークインタフェースに関わらず）、不良な通信状態を示すのに十分である。いくつかの例では、完全性メッセージアナライザー３０６は、他のネットワークホスト４０２、４０４、４０６から受信した完全性メッセージの内容を分析して、以下でさらに完全に説明するように、それ自身の完全性情報を判断し、かつ／または更新する。
【００４３】
図３の図示例では、ネットワークホスト２１０は、各ネットワークホスト（例えば、ネットワークホスト４０２、４０４、４０６）間の一次および二次ネットワーク４０８、４１０の各々を通じた（例えば、第１および第２のネットワークインタフェース３０２、３０４の各々を経由した）接続または通信状態を示す完全性情報を格納する完全性テーブルまたは他のデータ構造を生成するために、完全性テーブル生成器３０８を備えている。
【００４４】
図示例では、同じネットワークに接続された他の全てのネットワークインタフェース３０２、３０４に関して、別々の通信状態が各ネットワークホストの各ネットワークインタフェース３０２、３０４に関連付けられる。従って、図４の図示例では、ネットワークホスト４０２、４０４、４０６のネットワークインタフェース３０２の各々が同じ一次ネットワーク４０８に接続されているので、第１のネットワークホスト４０２（ホストＡ）の第１のネットワークインタフェース３０２は、第２のネットワークホスト４０４（ホストＢ）および第３のネットワークホスト４０６（ホストＣ）の第１のネットワークインタフェース３０２の各々に対して別々の通信状態を有する。しかし、図示例では、第１のネットワークホスト４０２の第１のネットワークインタフェース３０２および他のネットワークホスト４０４、４０６の第２のネットワークインタフェース３０４が異なるネットワークに接続され、それ故、決して直接通信しないので、第１のネットワークホスト４０２の第１のネットワークインタフェース３０２と、第２および第３のネットワークホスト４０４、４０６の第２のネットワークインタフェース３０４のいずれかとの間で定義された通信状態はない。
【００４５】
いくつかの例では、完全性テーブルは、前述の完全性メッセージアナライザー３０６によって判断された通りの通信状態に基づいて生成される。すなわち、完全性メッセージアナライザー３０６が完全性メッセージを特定のホストから受信すると、完全性テーブル生成器３０８が特定のホストとの（そのメッセージが受信されたネットワークを通じた）通信状態を良好に設定する。完全性メッセージアナライザー３０６が、完全性メッセージが予期した通りに特定のホストから受信されなかった（例えば、メッセージを受信することなく、閾値期間が経過した）と判断する場合、完全性テーブル生成器３０８は、特定のホストとの（そのメッセージが受信されるはずだったネットワークを通じた）通信状態を不良に設定する。このように完全性メッセージが受信されるかどうかだけに依存すると、完全性メッセージアナライザー３０６は、それ自身以外の２つの異なるネットワークホスト間の通信状態を直接判断できない。その結果、いくつかの例では、完全性テーブル生成器３０８によって作成された完全性テーブルは、対応するネットワークホスト２１０と関連した通信状態情報のみを含む。他の例では、完全性メッセージアナライザー３０６は、他のホスト間の通信状態を判断するために、他のネットワークホストから受信した完全性メッセージの内容を分析する。
【００４６】
図４のシステム４００に対する完全性情報を表すテーブル例５００が図５に示されている。いくつかの例では、完全性テーブル生成器３０８は、図５のテーブル５００に含まれる情報の少なくとも一部を含めるが、必ずしもその全部ではなく、また必ずしも同様に編成されていない。図５のテーブル５００では、図４のネットワークホスト４０２、４０４、４０６の各々の（関連付けられた一次および二次ネットワーク４０８、４１０に基づく）ネットワークインタフェース３０２、３０４の各々が、テーブル５００の先頭行および左端の列に沿って識別される。ネットワークホスト４０２、４０４、４０６の任意の２つの間の対応するネットワークインタフェース３０２、３０４のいずれかを経由した直接通信リンクの状態が、対応するネットワーク４０８、４１０を通じて接続しているホスト４０２、４０４、４０６の行および列に対応するボックス内に示されている。
【００４７】
図示例に示すように、テーブル５００は、４つの象限５０２、５０４、５０６、５０８に分割されている。第１象限５０２は、ネットワークホスト４０２、４０４、４０６の間の一次ネットワーク４０８を通じた（例えば、第１のネットワークインタフェース３０２を経由した）通信状態を表す。第４象限５０８は、ネットワークホスト４０２、４０４、４０６の間の二次ネットワーク４１０を通じた（例えば、第２のネットワークインタフェース３０４を経由した）通信状態を表す。図のように、第１および第４の象限５０２、５０８を通るテーブル５００の対角線に沿ったボックスは、同じネットワークホストの同じネットワークインタフェースと関連付けられた行および列に対応する。そのため、これらのボックスは、異なる点の間の通信リンクを定義していないので、網掛けされている。
【００４８】
テーブル例５００の第２および第３の象限５０４、５０６は、対応する行および列が同じネットワーク４０８、４１０と関連付けられておらず、従って、直接通信リンクを表していないので、本明細書で説明するような通信状態を表していない。そのため、第２および第３の象限５０４、５０６内のボックスのほとんどに削除されている。しかし、同じネットワークホスト４０２、４０４、４０６の第１および第２のネットワークインタフェース３０２、３０４と関連付けられた第２および第３の象限５０４、５０６の各々内のボックスは、ラベル「ローカル」で表されて、ホストネットワーク４０２、４０４、４０６内のネットワークインタフェース３０２、３０４間のローカル通信が、前述のようにＩＰルーティングがホスト内で有効にされている場合に可能であることを示す。しかし、同じネットワークホストの２つのネットワークインタフェース間のローカル通信はネットワーク４０８、４１０のいずれも経由していないので、かかる通信は、本明細書で開示する教示に従ったネットワークに対する通信状態の定義とは無関係である。すなわち、テーブル例５００内に表されているローカル通信は、説明を目的としてのみ示されている。従って、いくつかの例では、完全性テーブル生成器３０８によって作成された完全性テーブルは、第２および第３の象限５０４、５０６内に表される情報を除外し得る。さらに、いくつかの例では、完全性テーブル生成器３０８は、完全性テーブル生成器３０８が属するネットワークホスト４０２、４０４、４０６と関連した情報のみを含め得る。例えば、ホストＡに対する完全性テーブルは、ホストＡと関連付けられた行および／または列内の情報のみを含み得る。
【００４９】
図５の図示例に示すように、ネットワークホスト４０２、４０４、４０６の各々のネットワークインタフェース３０２、３０４の各々の間の通信状態は、ネットワーク障害がないことを示す「良好」である。これに対して、図４のシステム例４００が、図６に複製されているが、第２のネットワークホスト４０４（ホストＢ）の第１のネットワークインタフェース３０２と関連したネットワーク障害６０２があり、対応する通信状態のテーブル７００が図７に示されている。図７の図示例に示されるように、第４象限５０８は、各ネットワーク接続の通信状態が良好という点において、図５のテーブル例５００内の第４象限と同一である。第４象限５０８は、二次ネットワーク４１０と関連付けられた通信状態を表しており、図６に示されたネットワーク障害６０２は一次ネットワーク４０８のみに影響するので、第４象限５０８は、図５に示されたテーブル５００と、図７に示されたテーブル７００との間で変わりがない。図示例では、図７のテーブル例７００の（一次ネットワーク４０８と関連付けられた）第１象限５０２は、第２のネットワークホスト４０４と、第１および第３のネットワークホスト４０２、４０６の両方との間の不良な通信状態を示す。しかし、第１と第３のネットワークホスト４０２、４０６の間の一次ネットワーク４０８を通じた通信状態は良好なままである。
【００５０】
図４および図６のシステム例４００のトポロジに起因して、ネットワーク障害が生じた時にはいつでも、障害は、ネットワークホスト４０２、４０４、４０６の１つが他の全てのネットワークホスト（例えば、他の２つ）との接続を失う結果となるが、他のネットワークホストは依然として通信可能である。もっと多くのネットワークホストおよび／またはもっと複雑なネットワークトポロジ（例えば、１つ以上のスイッチを備えた）を含む他の例では、関与する様々なネットワークホスト間の通信状態の異なる分割となり得る。例えば、ネットワーク障害は、１つのネットワークホストが、他のネットワークホストの一部のみとの特定のネットワークを通じた接続を失う結果となり得るが、他のネットワークホストとの同じネットワークを通じた通信は保持したままである。同様に、いくつかの例では、ネットワーク障害は、ネットワークホストの第１のグループにネットワークホストの第２のグループとの接続を失わせるが、ネットワークホストは対応するグループ内の他のネットワークホストとの接続は維持している。
【００５１】
図３を再度参照すると、ネットワークホスト例２１０は、第１および第２のネットワークインタフェース３０２、３０４と関連付けられたネットワークの各々上の他のネットワークホストに定期的に伝送される完全性メッセージを生成するために、完全性メッセージ生成器３１０を備えている。いくつかの例では、完全性メッセージは、完全性メッセージの送信元または発信元（例えば、完全性メッセージが伝送されたネットワークホスト）を識別するのに役立つホスト情報を含む。より具体的には、いくつかの例では、ホスト情報は、完全性メッセージを伝送しているネットワークホストの第１および第２のネットワークインタフェース３０２、３０４の各々に割り当てられたＩＰアドレスの表示を含む。
【００５２】
加えて、いくつかの例では、完全性メッセージは、送信側ネットワークホスト（例えば、完全性メッセージの送信元）と、一次および二次ネットワーク４０８、４１０の各々上の他のネットワークホストの各々との間の接続または通信状態を示すのに役立つ完全性情報を含む。いくつかの例では、完全性メッセージに含まれる完全性情報は、完全性テーブル生成器３０８によって生成された完全性テーブル内に含まれる情報に対応する。いくつかの例では、特定のネットワークホストの完全性メッセージ生成器３１０によって準備された各完全性メッセージで送信された完全性情報は、その特定のネットワークホストと関連付した通信状態情報のみを含む。いくつかのかかる例では、伝送された完全性メッセージは、たとえ特定の完全性メッセージが常にネットワークの１つを通じてのみ伝送されても、一次ネットワーク４０８および二次ネットワーク４１０の両方に対してネットワークホストと関連した通信状態情報を含む。
【００５３】
いくつかの例では、完全性メッセージアナライザー３０６は、完全性メッセージを分析して、他のネットワークホストの各々から受信した最初の完全性メッセージに基づき、一次および二次ネットワーク４０８、４１０の各々上で他のネットワークホストを自動的に発見する。前述のように、各完全性メッセージは、その完全性メッセージを伝送しているネットワークホストを識別するホスト情報を含む。その結果、いくつかの例では、新しいネットワークホスト（すなわち、以前の完全性メッセージが受信されていないネットワークホスト）を識別する完全性メッセージが受信された場合、受信側ネットワークホストの完全性メッセージアナライザー３０６は、受信したホスト情報（そのメッセージを伝送したネットワークホストの関連付けられたネットワークインタフェース３０２、３０４に対するＩＰアドレス）に基づきそのホストに対してＩＰルーティングテーブル内に新しいエントリを作成する。加えて、いくつかの例では、完全性メッセージアナライザー３０６は、ホスト情報を完全性テーブル生成器３０８に提供して、完全性メッセージを送信している新しく発見されたネットワークホストと、完全性メッセージを受信しているネットワークホストとの間の通信の状態を格納するために、完全性テーブルを更新および／または拡張する。新しいネットワークホストの発見および後続の完全性メッセージに対して結果として生じる変更が、以下で説明する図８に示されている。
【００５４】
図８は、ネットワークホスト４０２、４０４、４０６、および図６の周囲のネットワーク障害６０２発生の最初の発見中に図４のネットワークホスト４０２、４０４、４０６の各々によって伝送された完全性メッセージに対する経時的変化例を示すテーブル８００である。図８の図示例では、テーブル８００の各行が、第１列８０２内に示されるように、後の時点に対応する下位行をもつ異なる時点に対応する。従って、時間Ｔ１（１行目）は第１の時点であり、その後に時間Ｔ２（２行目）が続き、その後に時間Ｔ３（３行目）が続き、以下同様である。図示例では、各離散時点（例えば、Ｔ１、Ｔ２、Ｔ３など）において、ホストネットワーク４０２、４０４、４０６の１つが、一次ネットワーク４０８または二次ネットワーク４１０のいずれか１つを通じ、伝送側ホストネットワーク４０２、４０４、４０６の対応するネットワークインタフェース３０２、３０４を経由して、完全性メッセージを伝送する。図８のテーブル例８００では、任意の特定の時点において完全性メッセージを伝送しているネットワークホスト４０２、４０４、４０６が、第２列８０４内で識別され、同時に、完全性メッセージが伝送されるネットワーク４０８、４１０が第３列８０６内に示されている。図示例では、テーブル８００にリストされたネットワーク４０８、４１０に接続されたネットワークインタフェース３０２、３０４は、各対応する完全性メッセージが送信されるインタフェースである。
【００５５】
図示例に示すように、同じネットワークインタフェース３０２、３０４が後続の完全性メッセージを送信するために使用される前に、連続する時点において伝送された完全性メッセージの送信元または発信元は、各ネットワークホスト４０２、４０４、４０６のネットワークインタフェース３０２、３０４の各々を、各ネットワーク４０８、４１０を通じて繰り返している。例えば、時間Ｔ１において、第１のネットワークホスト４０２（ホストＡ）が第１の完全性メッセージを一次ネットワーク４０８を通じて（第１のネットワークインタフェース３０２を経由して）伝送する。第２および第３のネットワークホスト４０４、４０６の両方のネットワークインタフェース３０２、３０４ならびに第１のネットワークホスト４０２の第２のネットワークインタフェース３０４からの完全性メッセージが時間Ｔ２〜Ｔ６で送信されるので、同じネットワークホスト４０２の同じネットワークインタフェース３０２が、時間Ｔ７まで完全性メッセージを再度伝送することはない。いくつかの例では、テーブル例８００内に示される各時点の間の間隔はほぼ同じである。そのため、各連続する完全性メッセージのおおよそのスケジュールまたはタイミングが分かっているので、同じネットワークホストの同じネットワークインタフェースからの各連続する完全性メッセージ間の間隔も同様に分かっている。言い換えれば、いくつかの例では、完全性メッセージを送信するために、システム４００が、ネットワークノードの各々のネットワークインタフェースの各々を繰り返すための時間間隔が知られている。結果として、最後の完全性メッセージが、特定のネットワークホストの特定のネットワークインタフェースから受信されてからの期間が、同じ送信元からの次の完全性メッセージがいつ予期されるかを判断するために監視できる。いくつかの例では、予期された期間内に完全性メッセージが受信されない場合、ネットワーク障害が検出される。全てのネットワークホストの全てのネットワークインタフェースを繰り返すための期間は、関与するネットワークの特質およびサイズ、ならびに完全性メッセージが伝送される頻度に応じて、システムによって異なり得る。いくつかの例では、１サイクルの時間は１００ミリ秒であり得る。結果として、ネットワーク障害が検出でき、次いで、重要なデータが失われる前に迅速に（例えば、実質的にリアルタイムで）対応できる。例えば、５００ミリ秒のサイクル周期は、２秒未満の切替え時間となるであろう。
【００５６】
図８のテーブル例８００は、各時点において送信された各完全性メッセージの内容も示す。具体的には、第４列８０８は、各完全性メッセージで送信された識別情報を示す。前述のように、各完全性メッセージは、ネットワークホストのネットワークインタフェース３０２、３０４の各々のＩＰアドレスの表示を含むメッセージを送信しているネットワークホストを識別するホスト情報を含む。従って、図示例で時間Ｔ１およびＴ７において、完全性メッセージが第１のネットワークホスト４０２から一次ネットワーク４０８を通じて送信される間に、同じホスト情報が、時間Ｔ４において二次ネットワーク４１０を経由して、他のネットワークホスト４０４、４０６にも送信される。
【００５７】
テーブル例８００の第５列８１０には、各完全性メッセージに含まれる完全性情報が示されている。前述のように、いくつかの例では、ネットワークホスト４０２、４０４、４０６は、互いから受信した完全性メッセージに基づき、互いを発見し得る。かかる例では、ネットワークホストが発見される前は、かかる情報が知られていないので、完全性メッセージはいかなる完全性情報（例えば、ホスト間の通信状態）も含むことができない。それに応じて、図８に示すように、時間Ｔ１においてホストＡは、ホストＡに対するホスト情報を含むが、いかなる完全性情報も含んでいない、完全性メッセージを伝送する。ホストＢは、時間Ｔ１においてホストＡから伝送された完全性メッセージを受信したので、ホストＢの完全性メッセージアナライザー３０６は、（伝送されたホスト情報に基づき）ホストＡを識別し、従って、ＩＰルーティングテーブル内にホストＡ（および対応するネットワークインタフェース３０２、３０４）に対する新しいエントリを作成するのを可能にされる。加えて、ホストＢは、ホストＡから一次ネットワーク４０８を通じて伝送された完全性メッセージを受信したので、ホストＢの完全性メッセージアナライザー３０６は、通信が一次ネットワーク４０８を通じて可能であることを確認して、ホストＢの完全性テーブル生成器３０８が、通信状態を良好に設定するのを可能にする。その結果、時間Ｔ２において、ホストＢから伝送された完全性メッセージは、（ホストＢによって発見された通り）ホストＡの存在およびそれらの間の一次ネットワーク４０８を通じた通信状態が（文字「Ｇ」によって示される）良好であることを示す完全性情報を含む。
【００５８】
時間Ｔ３において、ホストＣから伝送された完全性メッセージは、それぞれ、時間Ｔ１および時間Ｔ２において各ホストから送信された以前に伝送された完全性メッセージに基づき、ホストＡおよびホストＢの両方に関する完全性情報を含む。一旦、完全性メッセージが、時間Ｔ３においてホストＣから送信されると、各ネットワークホストからのホスト情報が一度伝送されているために、各ホストは、今や他のホストに対して発見されていて、指示されたデータ通信を適切に（例えば、他のネットワークホストの各々から提供されたＩＰ情報を使用して）可能にする。
【００５９】
図８の図示例に示すように、第１の３つの完全性メッセージの各々が（時間Ｔ１、Ｔ２、およびＴ３において）一次ネットワーク４０８を通じて伝送される。そのため、各完全性メッセージで提供されるようにネットワークホスト４０２、４０４、４０６（ホストＡ、ホストＢ、ホストＣ）の各々の間で示される通信状態は、一次ネットワーク４０８に関してのみ提供される。第１の完全性メッセージがホストＡから（時間Ｔ４において）二次ネットワーク４１０を通じて送信されて初めて、ホストＢの完全性メッセージアナライザー３０６が、ホストＡとホストＢとの間で二次ネットワーク４１０を通じて通信が可能であることを確認する。かかる接続の確認は、時間Ｔ５においてホストＢから送信される後続の完全性メッセージに反映される。ホストＣも、時間Ｔ４においてホストＡから送信された完全性メッセージを受信して、それらの間の二次ネットワーク４１０を通じた通信を同様に確認する。一旦、完全性メッセージが時間Ｔ６においてホストＣから送信されると、各ネットワークホスト４０２、４０４、４０６の全てのネットワークインタフェース３０２、３０４が完全性メッセージを伝送しているために、各ネットワークホスト４０２、４０４、４０６は、システム４００内の他の全てのホストに関してその接続状態を確認できる。（時間Ｔ７から始まる）各ホストから送信された後続の完全性メッセージは、ネットワークホスト４０２、４０４、４０６が相互の間の通信状態を継続してチェックして、完全性情報に対する変更に関する更新を提供するのを可能にする。
【００６０】
各ネットワークホスト４０２、４０４、４０６のネットワークインタフェース３０２、３０４の各々が動作している接続を維持している場合、各後続の完全性メッセージの一部として伝送される完全性情報は、時間Ｔ７、Ｔ８、およびＴ９において示されるように、全ての通信状態が良好な同じままである。しかし、ネットワーク障害が起こった場合、影響を受けたネットワークホストの後続の完全性メッセージが、最終的には、影響を受けたネットワークホスト間の通信状態における変更を反映するように更新される。
【００６１】
図８の図示例では、図６のネットワーク障害６０２が時間Ｔ８とＴ９との間（例えば、時間Ｔ８．５において）に起こる。図示例に示すように、障害６０２のために、ホストＢ（第２のネットワークホスト４０４）への、またはホストＢからの通信がもはや可能でないが、時間Ｔ９およびＴ１０において（それぞれ、ホストＣおよびホストＡから）送信された完全性情報によって示される全ての接続の通信状態が、それにも関わらず、良好であると示されている。前述のように、いくつかの例では、特定のネットワークインタフェースに関した不良な接続（例えば、ネットワーク障害）の検出は、最後の（例えば、直前の）伝送が特定のネットワークインタフェースから受信された後に、新しい伝送を受信することなく、経過した閾値期間に基づく。図示例では、ホストＢから一次ネットワーク４０８を通じて（ネットワーク障害６０２の前に）うまく伝送された最後の完全性メッセージが、時間Ｔ８において生じた。繰り返すべき６つの異なるネットワークインタフェースがあるので、ホストＢから一次ネットワーク４０８を通じて伝送される次の完全性メッセージは、時間Ｔ１４まで予期されない。そのため、時間Ｔ９およびＴ１０で送信された完全性メッセージは、時間Ｔ８において受信されたメッセージに基づき、全ての通信状態を良好であると継続して示す。いくつかの例では、時間Ｔ８と時間Ｔ１４との間の時間が１秒未満であるために、通信状態におけるこのエラーは、素早く解決されるであろう。
【００６２】
図示例では、時間Ｔ１１に送信された完全性メッセージは、ホストＢ（完全性メッセージを送信しているネットワークホスト）とホストＣとの間の一次ネットワーク４０８を通じた通信状態は悪いが（文字「Ｂ」によって示される）、他方、ホストＢとホストＡとの間の通信状態は依然として良好であることを示す。ホストＡおよびホストＣに関して示される異なる通信状態は、ホストＢにおいてホストＡおよびＢの各々から一次ネットワーク４０８を経由して受信された最後の完全性メッセージのタイミングに関連した、ネットワーク障害６０２のタイミングの結果である。テーブル例８００に示すように、ホストＡから一次ネットワーク４０８を通じて伝送された最後の完全性メッセージは時間Ｔ７においてであり、それは、時間Ｔ８．５におけるネットワーク障害６０２の前である。ホストＡから一次ネットワークを通じて予期される次の完全性メッセージは、時間Ｔ１３まで予期されない。そのため、時間Ｔ１１において、ホストＡからの次に予期される完全性メッセージまでの時間間隔が経過していないために、ホストＢの完全性メッセージアナライザー３０６は、まだ、ホスト間のネットワークが失敗していることを確認していない。一方、ホストＣは時間Ｔ９において完全性メッセージを伝送したが、それは、時間Ｔ８．５におけるネットワーク障害６０２の後に生じた。結果として、時間Ｔ９においてホストＣから送信された完全性メッセージは、予期通りにホストＢに配信されないために、完全性メッセージアナライザー３０６は、ホスト間の接続が不良であると判断する。
【００６３】
前述のように、いくつかの例では、完全性メッセージアナライザー３０６は、各完全性メッセージの内容（例えば、完全性情報）を分析して、後続の完全性メッセージに示されるネットワークホスト間の通信状態を更新する。これは、ホストＣにより時間Ｔ１２に送信される完全性メッセージによって示される。前述のように、ホストＢにより時間Ｔ８に送信された完全性メッセージは、ネットワーク障害６０２がまだ起こっていなかったので、ホストＣでうまく受信された。さらに、一次ネットワーク４０８を通じたホストＢからの次の完全性メッセージは、時間Ｔ１４まで予期されない。しかし、いくつかの例では、ホストＣの完全性メッセージアナライザー３０６は、ホストＢから二次ネットワーク４１０を通じて（時間Ｔ１１に）送信された完全性情報によって示される不良な通信状態を識別する。いくつかのかかる例では、完全性メッセージアナライザー３０６は、それ自身とホストＢとの間の一次ネットワーク４０８を通じた通信状態が不良であると判断する。
【００６４】
ホストＡにより時間Ｔ１３に提供された完全性情報は、ホストＢからの次に予期される完全性メッセージがまだ将来（時間Ｔ１４において）であり、他のどの完全性メッセージも別の方法でホストＡとホストＢとの間の不良な接続を示さないので、依然として、ホストＡとホストＢとの間の通信状態が良好であると示している。しかし、ホストＡが時間Ｔ１３で完全性メッセージを送信する一方、ホストＢは、ネットワーク障害６０２のためにメッセージを受信しないであろう。従って、ホストＢの完全性メッセージアナライザー３０６は、時間Ｔ１３において、それが、ホストＡからの次の完全性メッセージが予期されたが、受信されなかった時であるので、通信状態が悪いと判断する。
【００６５】
時間Ｔ１４で、ホストＢは、ホストＡとホストＢとの間（時間Ｔ１３で判断された）およびホストＢとホストＣとの間（時間Ｔ９で判断された）の通信障害を示す完全性メッセージを伝送しようと試行し得る。しかし、ネットワーク障害６０２に起因して、ホストＢからの完全性メッセージの配信が失敗するために、ホストＡおよびホストＣには何も配信されない。いくつかのかかる例では、ホストＢは完全性メッセージを（例えば、時間Ｔ１４で）伝送しようとするとき、伝送は認められないままであり得、それにより、ホストＢに対して、伝送が他のホストから受信されてから閾値期間を超えているかどうかに関わらず、ネットワーク障害が生じていることを示す。ホストＡおよびホストＣに関して、新しいメッセージが時間Ｔ１４で予期されて、完全性メッセージがホストＢから一次ネットワーク４０８を通じて最後にうまく伝送された時間Ｔ８と、時間Ｔ１５との間の期間が、その間に別の完全性メッセージが予期される、閾値期間を超える。いくつかのかかる例では、ホストＣの完全性メッセージアナライザー３０６は、ホストＢとホストＣとの間に一次ネットワーク４０８を経由したネットワーク障害があると判断して、それに応じて（時間Ｔ１５で送信される）完全性情報を更新する。他の例では、ホストＣの完全性メッセージアナライザー３０６は、前述のようにホストＢから（時間Ｔ１１で）受信した完全性情報に基づき、障害のある通信状態を既に判断している可能性がある。その結果、かかる例では、ホストＣにより（時間Ｔ１５で）伝送された完全性メッセージに含まれる完全性情報は、悪い通信状態を反映し続ける。同様に、図示例では、ホストＡの完全性メッセージアナライザー３０６は、完全性メッセージが、時間Ｔ１４でホストＢから予期されていたので、ホストＡとホストＢとの間に一次ネットワーク４０８を経由したネットワーク障害があると判断する。そのため、時間Ｔ１６で、ホストＡによって提供された完全性情報が、悪い通信状態を反映するように更新される。従って、時間Ｔ１６までに、ネットワークホストの全てがネットワーク障害６０２を検出して、通信状態における変化を反映する完全性メッセージを伝送している。各ホストからの各後続の完全性メッセージ内の完全性情報は、別の変化が検出される（例えば、ネットワーク障害６０２が修復される、かつ／またはネットワークホストの少なくとも２つの間で別のネットワーク障害が起こる）まで、継続して同じままであろう。図示例は、単一の時間間隔（例えば、全てのネットワークインタフェースの１回の繰返し）だけの後に通信状態が更新されていると示しているが、いくつかの例では、閾値期間は、例えば、ネットワークインタフェースの２または３回の完全な繰返しの期間など、もっと長い可能性がある。
【００６６】
テーブル例８００は、ホストＡが、時間Ｔ１３およびＴ１９で一次ネットワークを経由して完全性メッセージを伝送していることを示し、ホストＣは、時間Ｔ９およびＴ１５で一次ネットワークを経由して完全性メッセージを送信していることを示しているが、ホストＢに関するネットワーク障害６０２のために、ホストＡおよびホストＣからのメッセージは互いにうまく配信されるだけである。すなわち、ホストＡおよびホストＣは、他によって伝送された完全性メッセージを受信しているであろうが、ホストＢはいずれの完全性メッセージも受信していないであろう。
【００６７】
いくつかの例では、図８のテーブル例８００に示すように、各ネットワークホスト４０２、４０４、４０６から送信される完全性メッセージは、一次ネットワーク４０８および二次ネットワーク４１０の間で交互に行われる。すなわち、ホストＡ、Ｂ、およびＣの各々が完全性メッセージを一次ネットワーク４０８を通じて送信し、続いて、ホストＡ、Ｂ、およびＣの各々は、完全性メッセージを二次ネットワーク４１０を通じて送信する。他の取決めも可能である。例えば、図９は、ネットワークホストの最初の発見中に、図４のネットワークホストの各々によって伝送された完全性メッセージに対する様々な経時的変化例を示すテーブル９００である。図９の図示例では、各ネットワークホスト４０２、４０４、４０６が完全性メッセージを各ネットワーク４０８、４１０を通じて伝送した後に、別のネットワークホストが同じことを行う。すなわち、ホストＡが第１の完全性メッセージを一次ネットワーク４０８を通じて（時間Ｔ１で）伝送し、続いて、第２の完全性メッセージを二次ネットワーク４１０を通じて（時間Ｔ２で）伝送した後に、ホストＢが任意の完全性メッセージを（時間Ｔ３から始めて）伝送する。ネットワークホストの各々が発見される際に連続する完全性メッセージ内に結果として生じる完全性情報が、図９のテーブル例９００に示されている。
【００６８】
前述のように、いくつかの例では、各ネットワークホストは、それ自身と他のネットワークホストとの間の通信状態を、他のホストからの完全性メッセージが予期された時に受信されるか否かに基づき判断し得る。そのため、いくつかの例では、各完全性メッセージ内に含まれているものがホスト情報だけである。かかる例では、第５列８１０内に示す完全性情報は、完全性テーブル生成器３０８によって作成された完全性テーブル内に格納された情報に対応する。しかし、この情報は、他のネットワークホストと共有されていない可能性がある。すなわち、いくつかの例では、各ホストは、結果として生じる完全性情報を共有することなく、それ自身の完全性テーブルを生成する。他の例では、完全性情報は、ネットワークホストの各々の間で判断された通信状態の比較を可能にするために、ホスト間で共有される。いくつかの例では、ネットワークホストにより他のネットワークホストから受信された完全性情報は、（例えば、完全性テーブルが全てのネットワーク接続の通信状態を含む場合に）完全性テーブルを更新するか、または完成するために使用される。さらに、いくつかの例では、ネットワークホストにより別のホストから受信された完全性情報は、ネットワークホストが送信すべき次の完全性メッセージに含まれる完全性情報を更新するために使用される。
【００６９】
図３を再度参照すると、ネットワークホスト例２１０は、ネットワークホスト２１０と他のネットワークホストとの間のデータ通信用の経路を判断して設定するために、通信経路判定器例３１２を備えている。いくつかの例では、特定のネットワークインタフェース（例えば、第１のネットワークインタフェース３０２）と別のネットワークホストの対応するインタフェースとの間の関連付けられたネットワーク（例えば、一次ネットワーク４０８）を通じた通信状態が良好である場合、通信経路判定器３１２は、通信経路を、接続されたネットワークインタフェースと関連付けられたネットワークを通るとして定義する。そのため、ネットワークホストは、対応するネットワークを経由して直接通信する。しかし、完全性メッセージアナライザー３０６が、ネットワークインタフェース間でネットワーク障害（例えば、不良な通信状態）を検出すると、通信経路判定器３１２は、ネットワークインタフェース間で代替経路を識別し得る。例えば、一次ネットワーク４０８を経由した２つのネットワークホスト間にネットワーク障害がある場合、通信経路判定器３１２は、２つのネットワークホストを接続する二次ネットワーク４１０を通る代替通信経路を定義し得る。通信経路例は、図１０〜図１２に関連して、以下でさらに完全に説明される。
【００７０】
いくつかの例では、通信経路判定器３１２は、不良な通信状態が検出されるとすぐに、代替通信経路を確立する。他の例では、通信経路判定器３１２は、通信経路が不良であることが閾値回、確認された後に、代替通信経路を確立する。いくつかの例では、特定のネットワークホストの通信経路判定器３１２は、特定のネットワークホストから送信された連続する完全性メッセージの閾値数が、ホスト間の通信状態が不良であることを示した後、別のホストに関して代替通信経路を確立する。例えば、不良な通信状態での完全性メッセージの閾値数は３であり得る。図８の図示例に示すように、ホストＣに関して悪い通信状態を示している、ホストＢから送信された第１の完全性メッセージは、時間Ｔ１１で二次ネットワーク４１０を通じて送信される。同じ情報（ホストＢとホストＣとの間の悪い通信状態）を有する第２の完全性メッセージが、時間Ｔ１４で一次ネットワーク４０８を経由して送信されるが、それは、ネットワーク障害６０２のために、他のホストに決して到達しない（そのため、テーブル８００に、何も配信されないと示されている）。ホストＣに関して悪い通信状態を示している、ホストＢから送信された第３の完全性メッセージが、時間Ｔ１７で二次ネットワーク４１０を通じて送信される。従って、かかる例では、ホストＢの通信経路判定器３１２は、時間Ｔ１７においてホストＢとホストＣとの間に代替通信経路を確立する。
【００７１】
一方、上の例では、ホストＢの通信経路判定器３１２は、時間Ｔ２０において、これが、ホストＢとホストＡとの間の悪い通信状態を示している、ホストＢから送信された（決して配信されないが）第３の完全性メッセージであるので、ホストＢとホストＡとの間に代替通信経路を確立する。かかる情報を有する、第１の完全性メッセージがホストＢから（一次ネットワーク４０８を経由して試行されて）送信されたのは時間Ｔ１４においてであり、第２の完全性メッセージが送信されて（かつ、二次ネットワーク４１０を経由してうまく配信された）のは時間Ｔ１７においてである。ホストＡに関して、ホストＢとの失敗した接続を示している３つの連続した完全性メッセージは、時間Ｔ１６、Ｔ１９、およびＴ２２（図示せず）においてである。それ故、ホストＡの通信経路判定器３１２は、時間Ｔ２０において、ホストＡとホストＢとの間に代替通信経路を確立する。ホストＣに関して、ホストＢとの失敗した接続を示している３つの連続した完全性メッセージは、時間Ｔ１２、Ｔ１５、およびＴ１８においてである。それ故、ホストＣの通信経路判定器３１２は、時間Ｔ１８において、ホストＣとホストＢとの間に代替通信経路を確立する。
【００７２】
図１０は、一次ネットワーク１００６および二次ネットワーク１００８を経由して接続された２つのネットワークホスト例１００２、１００４を備えたシステム例１０００の略図である。いくつかの例では、ネットワークホスト１００２、１００４は、（図１および／もしくは図２のシンクライアント１２６および／もしくはワークステーション１１７、ならびに／または図４および／もしくは図６のネットワークホスト４０２、４０４、４０６に対応する）前述のネットワークホスト２１０と同様に機能する。従って、図示例に示すように、ネットワークホスト１００２、１００４の各々は、一次ネットワーク１００６に接続された第１のネットワークインタフェース１０１０および二次ネットワーク１００８に接続された第２のネットワークインタフェース１０１２を有する。図１０の一次および二次ネットワーク１００６、１００８は、図４の一次および二次ネットワーク４０８、４１０に対応し得る。
【００７３】
図１０の図示例では、一次ネットワーク１００６が、Ｘ．Ｘ．Ｘとして表されたＩＰネットワーク番号で識別される。第１のネットワークホスト１００２および第２のネットワークホスト１００４の第１のネットワークインタフェース１０１０は、それぞれ、Ｘ．Ｘ．Ｘ．１およびＸ．Ｘ．Ｘ．２のＩＰアドレスを割り当てられた一次ネットワーク１００６に接続されている。図示例の、二次ネットワーク１００８は、Ｙ．Ｙ．Ｙとして表されたＩＰネットワーク番号で識別されて、第１のネットワークホスト１００２および第２のネットワークホスト１００４の第２のネットワークインタフェース１０１２は、それぞれ、Ｙ．Ｙ．Ｙ．１およびＹ．Ｙ．Ｙ．２のＩＰアドレスを割り当てられた二次ネットワーク１００６に接続されている。
【００７４】
図示例に示すように、第１のネットワークホスト１００２から第２のネットワークホスト１００４への２つの直接通信経路がある。両方の通信経路は、一次ネットワーク１００６を通じた第２のネットワークホスト１００２の第１のネットワークインタフェース１０１０への第１のネットワークホスト１００２の第１のネットワークインタフェース１０１０、または、二次ネットワーク１００６を通じた第２のネットワークホスト１００４の第２のネットワークインタフェース１０１２への第１のネットワークホスト１００２の第２のネットワークインタフェース１０１２のいずれかから直接である。同様に、上で概説した経路の逆である、第２のネットワークホスト１００４から第１のネットワークホスト１００２へ行く、２つの直接経路がある。これらの直接通信経路は、図１０のテーブル１０１４内に要約されている。
【００７５】
ネットワーク１００６、１００８の１つにネットワーク障害がある場合、その障害のあるネットワークに接続されたネットワークインタフェース１０１０、１０１２の間の直接通信はもう利用できない。しかし、一方のネットワークの障害は、他方のネットワークに影響しないために、直接通信は、他方の（適切に機能している）ネットワークを通じて依然として利用可能である。いくつかのかかる例では、障害のあるネットワークに関連付けられたネットワークインタフェース間の通信は、良好なネットワークを通じて間接的に達成される。例えば、図１１は、一次ネットワーク１００６内にネットワーク障害１１０２のあるシステム例１０００を示す。第１および第２のネットワークホスト１００２、１００４の第２のネットワークインタフェース１０１２は二次ネットワーク１００８を通じて直接通信できるが、第１および第２のネットワークホスト１００２、１００４の第１のネットワークインタフェース１０１０は、ネットワーク障害１１０２のために、一次ネットワーク１００６を通じて直接通信できない。
【００７６】
いくつかの例では、上のネットワーク障害１１０２は、ＩＰルーティングを可能にすることにより各ネットワークホスト１００２、１００４のネットワークインタフェース１０１０、１０１２間でネットワークホスト１００２、１００４内の内部またはローカルルーティング１１０４を使用して迂回される。ネットワークホスト内でＩＰルーティングを可能にして、いくつかの例では、不良な通信状態が、ネットワークインタフェースおよび別のネットワークホストの対応するネットワークインタフェースの１つに関して検出される場合、通信経路判定器３１２は、ネットワークホストが接続される良好なネットワークに依存する新規または代替経路を定義する。具体的には、いくつかの例では、通信経路判定器３１２は、同じネットワークホストの他のネットワークインタフェースを、不良な接続をもつネットワークインタフェースと良好な接続を有するネットワークインタフェースとの間のゲートウェイまたはルーターとして定義するエントリで、失敗したネットワークに接続されたネットワークインタフェースに対するＩＰルーティングテーブルを自動的に更新する。データを伝送しているネットワークホストおよびそのデータを受信しているネットワークホストの両方がネットワーク障害を検出するので、良好なネットワークに接続された各ホスト上のネットワークインタフェースが両方とも、データ通信が必要に応じて最終的な宛先に転送されるのを可能にするために、対応するネットワークホストの他のネットワークインタフェースに対するゲートウェイとして定義されるであろう。
【００７７】
例えば、第１のネットワークホスト１００２の第１のネットワークインタフェース１０１０は、第２のネットワークホスト１００２の第１のネットワークインタフェース１０１０にデータ（例えば、プロセス制御システムの操作と関連付けられたデータ）を伝送しようとし得る。しかし、図１１に表された状況では、かかるデータ通信は、ネットワーク障害１１０２のために失敗するであろう。しかし、前述のように、ネットワークホスト１００２、１００４は、ネットワーク障害１１０２が非常に迅速に（例えば、数秒以内に）検出できるように、他のホストから送信された完全性メッセージの頻繁な伝送を監視する。いくつかの例では、ネットワーク障害１１０２が検出されるとすぐに、第１のネットワークホスト１００２の通信経路判定器３１２は、第２のネットワークインタフェース１０１２が、通信のために第１のネットワークホスト１００２の第１のネットワークインタフェース１０１０を形成するゲートウェイとして定義される、新しい通信経路を定義する。結果として、第１のネットワークホスト１００２の第１のネットワークインタフェース１０１０から生じた通信が、第２のネットワークインタフェース１０１２に（例えば、内部ルーティング１１０４を経由して）ルーティングされて、二次ネットワーク１００８を通じて伝送される。同時に、かかる例では、第２のネットワークホスト１００４の通信経路判定器３１２は同様に、第２のネットワークインタフェース１０１２を、第２のネットワークホスト１００４の第１のネットワークインタフェース１０１０と関連した通信のためのゲートウェイとして定義する。結果として、第１のネットワークインタフェース１０１０にアドレス指定される第２のネットワークホスト１００４の第２のネットワークインタフェース１０１２で受信された伝達は、第１のネットワークインタフェース１０１０に（例えば、内部ルーティング１１０４を経由して）転送される。従って、図１１の図示例では、テーブル１１０６に要約するように、１つの直接通信経路および１つの間接通信経路がネットワークホスト１００２、１００４間にある。
【００７８】
前述のように、一旦、通信経路判定器３１２が新しい通信経路を確立すると、データ通信が、第１および第２のネットワークホスト１００２、１００４の第１のネットワークインタフェース１０１０間で再開できる。いくつかの例では、ネットワーク障害と代替通信経路の確立との間の時間は５秒未満である。いくつかの例では、その時間が２秒未満である。その結果、これは、ネットワーク障害を検出するのに１分以上かかり、その後、データ伝送が再度開始できる前に新しい通信を確立しなければならない既存の方法に比べて、著しい改善である。
【００７９】
いくつかの例では、データ通信は、通信経路判定器３１２によって定義された代替通信経路を経由して伝送されるが、第１のネットワークインタフェース１０１０から起源されている完全性メッセージは、依然として、一次ネットワーク１００６によって定義された直接経路を通じて伝送される。かかる例では、ネットワーク障害１１０２が続いている限り、完全性メッセージの伝送は成功しないであろう。そのため、かかる完全性メッセージを期待している他のホストネットワークが、対応するネットワークインタフェース間の接続に対して、通信状態が悪いことを継続して確認するであろう。しかし、一旦、ネットワーク障害が修復されると、次の完全性メッセージがうまく配信されるので、そのメッセージを受信しているネットワークホストは、接続が回復されていることを確認できる。いくつかの例では、一旦、ネットワークホストが、ネットワーク障害が修復されている（すなわち、通信状態が不良から良好に変わっている）と判断すると、通信経路判定器３１２は、現在修復されている一次ネットワーク１００６の直接経路を通じて、プロセス制御データを再度伝送するために、関連付けられたネットワークインタフェースに対するＩＰルーティングテーブルを調整し得る。
【００８０】
図１２は、二次ネットワーク１００８内にネットワーク障害１２０２のあるシステム例１０００を示す。いくつかの例では、ネットワークホスト１００２、１００４の二次ネットワークインタフェース１０１２間で代替通信経路を検出して確立することは、図１１のネットワーク障害１１０２に関して前述したのと同様に達成されるが、第２のネットワークインタフェース１０１２間の通信は、一次ネットワーク１００６を通じてルーティングされている。図１２のテーブル１２０４は、図１２のネットワーク障害１２０２に起因する直接および間接通信経路を要約する。
【００８１】
図３を再度参照すると、ネットワークホスト例２１０は、ネットワークホスト２１０からの完全性メッセージの伝送を管理するために、通信マネージャ例３１４を備えている。例えば、通信マネージャ３１４は、完全性メッセージがいつ、第１のネットワークインタフェース３０２を経由して伝送されるべきか、また、完全性メッセージがいつ、第２のネットワークインタフェース３０４を経由して伝送されるべきかを制御する。前述のように、いくつかの例では、完全性メッセージの伝送が、第１および第２のネットワークインタフェース３０２、３０４間で交互に行われる。いくつかの例では、通信マネージャ３１４は、各完全性メッセージのタイミングが、各連続するメッセージに対して設定された時間間隔内になるように制御する。
【００８２】
加えて、いくつかの例では、通信マネージャ３１４は、ネットワークホスト２１０からのいずれかのネットワーク４０８、４１０上の任意の指定アドレスへのデータ（例えば、プロセス制御データ）の伝送を管理する。例えば、通信マネージャは、正しい宛先に伝送されるための適切なルーティング情報を備えたデータパケットを用意する。いくつかの例では、ネットワーク障害が最初に検出されると、通信マネージャ３１４は、代替経路が確立される前（通常、２，３秒のみ）に伝達されるように意図された任意のデータを、再伝送のためにキューに入れさせる。一旦、代替経路が確立されると、任意のキューに入れられたデータが、任意の後続のデータと共に、再伝送できる。その結果、本明細書で開示する教示は、ネットワーク障害を、多数の既知の方法よりもずっと早く検出して解決できるだけでなく、本明細書で開示する例は、データが失われず、全てが適切に配信されることを確実にするという追加の利点も達成する。
【００８３】
（図１〜図２、図４、図６、および／または図１０〜図１２のワークステーション１１７、シンクライアント１２６、ネットワークホスト４０２、４０４、４０６、および／またはネットワークホスト１００２、１００４のいずれかに対応する）ホストネットワークホスト２１０の方法例が、図３に示されているが、図３に示す要素、プロセスおよび／または装置の１つ以上が、結合、分割、再構成、省略、除外および／または任意の他の方法で実装され得る。さらに、第１のネットワークインタフェース例３０２、第２のネットワークインタフェース例３０４、完全性メッセージアナライザー例３０６、完全性テーブル生成器例３０８、完全性メッセージ生成器例３１０、通信経路判定器例３１２、通信マネージャ例３１４、アラームマネージャ例３１６、および／または、より一般的には、図３のネットワークホスト例２１０が、ハードウェア、ソフトウェア、ファームウェアならびに／または、ハードウェア、ソフトウェア、および／もしくはファームウェアの任意の組合せによって実装され得る。従って、例えば、第１のネットワークインタフェース例３０２、第２のネットワークインタフェース例３０４、完全性メッセージアナライザー例３０６、完全性テーブル生成器例３０８、完全性メッセージ生成器例３１０、通信経路判定器例３１２、通信マネージャ例３１４、アラームマネージャ例３１６、および／または、より一般的には、ネットワークホスト例２１０のいずれも、１つ以上のアナログもしくはデジタル回路（複数可）、論理回路、プログラム可能プロセッサ（複数可）、特定用途向け集積回路（ＡＳＩＣ）（複数可）、プログラム可能論理回路（ＰＬＤ）（複数可）および／またはフィールドプログラム可能論理回路（ＦＰＬＤ）（複数可）によって実装され得る。完全にソフトウェアおよび／またはファームウェア実装を包含する本特許の任意の装置またはシステムクレームを読むと、第１のネットワークインタフェース例３０２、第２のネットワークインタフェース例３０４、完全性メッセージアナライザー例３０６、完全性テーブル生成器例３０８、完全性メッセージ生成器例３１０、通信経路判定器例３１２、通信マネージャ例３１４、および／またはアラームマネージャ例３１６の少なくとも１つが、本明細書により、そのソフトウェアおよび／またはファームウェアを格納している、メモリ、デジタル多用途ディスク（ＤＶＤ）、コンパクトディスク（ＣＤ）、Ｂｌｕ−ｒａｙディスクなどの、有形的コンピュータ可読記憶装置もしくは記憶ディスクを含むように明示的に定義される。さらにその上、図３のネットワークホスト例２１０は、図３に示されているものに加えて、またはそれらの代わりに、１つ以上の要素、プロセスおよび／もしくは装置を含み得、かつ／または示されている要素、プロセスおよび装置の一部または全部のうちの１つ以上を含み得る。
【００８４】
図３のネットワークホスト２１０を実装するための方法例を表す流れ図１３００が図１３Ａおよび図１３Ｂに示されている。この例では、本方法は、図１４に関連して以下で説明する、プロセッサプラットフォーム例１４００に示されるプロセッサ１４１２などの、プロセッサによって実行するためのプログラムを含むマシン可読命令を使用して実装され得る。プログラムは、ＣＤ−ＲＯＭ、プロッピィディスク、ハードドライブ、デジタル多用途ディスク（ＤＶＤ）、Ｂｌｕ−ｒａｙディスク、またはプロセッサ１４１２と関連付けられたメモリなどの、有形的コンピュータ可読記憶媒体上に格納されたソフトウェアで具現化され得るが、プログラム全体および／またはその一部は、プロセッサ１４１２以外の装置によって代わりに実行され、かつ／またはファームウェアもしくは専用ハードウェアで具現化され得る。さらに、プログラム例は、図１３Ａおよび図１３Ｂに示す流れ図を参照して説明されるが、ネットワークホスト例２１０を実装する多くの他の方法が代わりに使用され得る。例えば、ブロックの実行順が変更され得、かつ／または記述されたブロックの一部が変更、除外、または結合され得る。
【００８５】
前述のように、図１３Ａおよび図１３Ｂのプロセス例は、情報が任意の期間（例えば、長期間、恒久的に、短期間、一時的にバッファリングのために、および／または情報のキャッシュのために）格納される、ハードディスクドライブ、フラッシュメモリ、読取り専用メモリ（ＲＯＭ）、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）および／または任意の他の記憶装置もしくは記憶ディスクなどの、有形的コンピュータ可読記憶媒体上に格納されたコード化命令（例えば、コンピュータおよび／またはマシン可読命令）を使用して実装され得る。本明細書では、有形的コンピュータ可読記憶媒体という用語は、任意のタイプのコンピュータ可読記憶装置および／または記憶ディスクを含み、伝搬信号を除外し、伝送媒体を除外するように明示的に定義される。本明細書では、「有形的コンピュータ可読記憶媒体」および「有形的マシン可読記憶媒体」は、区別しないで使用される。追加または代替として、図１３Ａおよび図１３Ｂの方法例は、情報が任意の期間（例えば、長期間、恒久的に、短期間、一時的にバッファリングのために、および／または情報のキャッシュのために）格納される、ハードディスクドライブ、フラッシュメモリ、読取り専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリおよび／または任意の他の記憶装置もしくは記憶ディスクなどの、持続性コンピュータおよび／またはマシン可読媒体上に格納されたコード化命令（例えば、コンピュータおよび／またはマシン可読命令）を使用して実装され得る。本明細書では、持続性コンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読記憶装置および／または記憶ディスクを含み、伝搬信号を除外し、伝送媒体を除外するように明示的に定義される。本明細書では、句「少なくとも」がクレームのプリアンブル内の移行語句として使用される場合、用語「包含する（ｃｏｍｐｒｉｓｉｎｇ）」が、制限がないのと同様に、制限がない。
【００８６】
図１３Ａおよび図１３Ｂの方法例１３００は、ブロック１３０２から始まり、そこで、完全性メッセージアナライザー３０６が、（例えば、完全性メッセージアナライザー３０６と関連付けられたネットワークホスト以外の）ネットワークホストからの予期された完全性メッセージが指定されたネットワークインタフェース（例えば、第１または第２のネットワークインタフェース３０２、３０４のいずれか）を経由して受信されるかどうかを判断する。指定されたネットワークインタフェースが第１のネットワークインタフェース３０２に対応するか、第２のネットワークインタフェース３０４に対応するかは、ネットワークホストが、２つの共通したネットワークを経由して接続された各ネットワークホストのネットワークインタフェースの各々をどのように繰り返すかによって決まる。いくつかの例では、完全性メッセージは、最後の完全性メッセージが同じネットワークインタフェースから受信された時から経過した閾値期間に基づいて予期される。いくつかの例では、閾値期間は、ネットワークインタフェースの各々の単一の繰返し期間に対応する。他の例では、閾値期間は、例えば、ネットワークインタフェースの各々の３回の繰返し期間など、もっと長い。
【００８７】
完全性メッセージアナライザー３０６が、完全性メッセージが受信されている（ブロック１３０２）と判断する場合、制御は、ブロック１３０４に進み、そこで、完全性メッセージアナライザー例３０６が、その完全性メッセージが新しいネットワークホストからであるかどうかを判断する。完全性メッセージアナライザー３０６は、完全性メッセージに含まれるホスト情報に基づいてそのように判断する。ホスト情報が、メッセージアナライザー３０６が以前にそこから完全性メッセージを受信したことがないネットワークホストを識別する場合、完全性メッセージアナライザー３０６は、そのネットワークホストを新しいと判断する。完全性メッセージアナライザー３０６が、ネットワークホストが新しいと判断する（ブロック１３０４）場合、制御はブロック１３０６に進み、そこで、完全性メッセージアナライザー例３０６は新しいネットワークホストに対するエントリをＩＰルーティングテーブル内に作成する。ブロック１３０７で、完全性テーブル生成器例３０８は、新しいネットワークホストに対して完全性テーブル内にエントリを作成する。ブロック１３０８で、完全性テーブル生成器例３０８は、完全性テーブル内で、指定されたネットワークインタフェースを経由したネットワークホストとの通信状態の指標を良好に設定する。すなわち、（ブロック１３０２で判断されたように）完全性メッセージが受信されたので、完全性メッセージを伝送しているホストネットワークとの接続が良好であると確認されて、完全性テーブルがそれに応じて生成される。ブロック１３０４に戻って、完全性メッセージアナライザー３０６が、ネットワークホストが新しくないと判断する場合、制御は直接、ブロック１３０８に進む。
【００８８】
ブロック１３０９で、通信経路判定器例３１２は、通信状態が以前は悪かった（以下で説明するブロック１３３０での設定）かどうかを判断する。そうである場合、制御はブロック１３１０に進み、そこで、通信経路判定器例が、（以下で説明するブロック１３３８で確立される代替通信経路から）ネットワークホストの指定されたネットワークインタフェースへの直接通信経路を再確立する。すなわち、指定されたネットワークインタフェースとネットワークホストとの間の通信状態が悪かったが、現在は良好と示されている（すなわち、ネットワーク接続がちょうど修復された）場合、通信経路判定器３１２は、指定されたネットワークインタフェースと、完全性メッセージがそこから受信されたネットワークホストとの間の直接通信を復元し得る。いくつかの例では、通信経路判定器３１２は、指定されたネットワークインタフェースと関連付けられたＩＰルーティング情報を更新することにより直接通信経路を再確立して、他のネットワークホストとの直接伝送を可能にする。ブロック１３１１で、アラームマネージャ例３１６は、（以下で説明するブロック１３３２で生成された）アラートを除去して、ネットワーク回復をログに記録する。制御は、次いで、ブロック１３１２に進む。ブロック１３０９に戻って、通信経路判定器例３１２が、通信状態が以前は悪くなかったと判断する場合、制御は直接、ブロック１３１２に進む。
【００８９】
ブロック１３１２で、通信マネージャ例３１４は、プロセス制御データを、指定されたネットワークインタフェースを経由して、ネットワークホストに直接伝送する。すなわち、プロセス制御データは、対応するネットワークインタフェースから関連付けられたネットワークを経由して直接伝送されるが、なぜなら、その経路を通じた通信が良好であると判断されているからである。
【００９０】
ブロック１３１４で、通信マネージャ例３１４が、完全性メッセージを第１のネットワークインタフェース３０２を経由して伝送すべきかどうかを判断する。そうである場合、制御はブロック１３１６に進み、そこで、完全性メッセージ生成器例３１０が、完全性メッセージを生成する。いくつかの例では、完全性メッセージは、第１および第２のネットワークインタフェース３０２、３０４のＩＰアドレスを識別するホスト情報を含む。加えて、いくつかの例では、完全性メッセージは、ネットワークインタフェース３０２、３０４の各々と、他のネットワークホストの対応するネットワークインタフェースとの間の通信状態を示す完全性情報を含む。ブロック１３１８で、通信マネージャ例３１４が、完全性メッセージを他のネットワークホストへ第１のネットワークインタフェース３０２を経由して伝送する。制御は、ブロック１３２６に進んで、図１３Ａおよび図１３Ｂの方法例を続行するかどうかを判断する。そうである場合、制御はブロック１３０２に戻って、受信した後続の完全性メッセージでプロセスを繰り返す。そうでない場合、図１３Ａおよび図１３Ｂの方法例が終了する。
【００９１】
ブロック１３１４に戻って、通信マネージャ例３１４が、完全性メッセージを第１のネットワークインタフェース３０２を経由して伝送しないと判断する場合、制御はブロック１３２０に進む。ブロック１３２０で、通信マネージャ例３１４は、完全性メッセージを第２のネットワークインタフェース３０４を経由して伝送するかどうかを判断する。通信マネージャ例３１４が、完全性メッセージを第２のネットワークインタフェース３０４を経由して伝送しないと判断する場合、制御はブロック１３０２に進む。通信マネージャ例３１４が、完全性メッセージを第２のネットワークインタフェース３０４を経由して伝送すると判断する場合、制御はブロック１３２２に進み、そこで、完全性メッセージ生成器例３１０が完全性メッセージを生成する。ブロック１３２４で、通信マネージャ例３１４は、完全性メッセージを他のネットワークホストに第２のネットワークインタフェース３０４を経由して伝送する。制御は、次いで、ブロック１３２６に進み、ブロック１３０２に戻って方法を繰り返すか、または方法例を終了するかを判断する。
【００９２】
ブロック１３０２に戻って、完全性メッセージアナライザー３０６が、予期された完全性メッセージが受信されていないと判断する場合、制御はブロック１３２８に進み、そこで、完全性メッセージアナライザー例３０６は、最後の完全性メッセージが指定されたネットワークインタフェースから受信されてから閾値期間を超えているかどうかを判断する。閾値期間を超えていない場合、制御はブロック１３１２に戻って、プロセス制御データを伝送する。閾値期間を超えている場合、制御はブロック１３３０に進む。ブロック１３３０で、完全性テーブル生成器例３０８は、完全性テーブル内で、指定されたネットワークインタフェースを経由したネットワークホストとの通信状態の指標を不良に設定する。ブロック１３３２で、アラームマネージャ例３１６は、アラートを生成して、ネットワーク障害をログに記録する。いくつかの例では、ネットワーク障害が起こっていることを示すために、アラートがエンドユーザー（例えば、オペレータ）に提供される。
【００９３】
ブロック１３３４で、通信経路判定器例３１２は、代替通信経路が（例えば、方法例の以前の繰返し中に）確立されているかどうかを判断する。そうである場合、制御は、以下で説明するブロック１３４２に直接進む。通信経路判定器例３１２が、代替通信経路が確立されていないと判断する場合、制御はブロック１３３６に進む。ブロック１３３６で、通信マネージャ例３１４は、ネットワークホストに送信された（例えば、ブロック１３１２で）失敗したプロセス制御データ通信を、再伝送のためにキュー内に格納する。ブロック１３３８で、通信経路判定器例３１２は、ネットワークホストの指定されたネットワークインタフェースへの代替通信経路を確立する。いくつかの例では、第１および第２のネットワークインタフェース３０２、３０４の間の送信元ネットワークホストおよび宛先ネットワークホストの各々内でローカルルーティングに依存する。かかる例では、経路は、指定されたネットワークインタフェース以外のネットワークインタフェースと関連付けられたネットワークを通るように定義される。
【００９４】
一旦、代替通信経路が確立される（ブロック１３３８）と、ブロック１３４０で、通信マネージャ例３１４が、キュー内のプロセス制御データ通信をネットワークホストに代替通信経路を経由して再伝送する。ブロック１３４２で、通信マネージャ例３１４は、プロセス制御データ（例えば、以前にキューに入れられたデータ以外）をネットワークホストに代替通信経路を経由して伝送する。制御は、次いで、ブロック１３１４に進んで、前述のように方法例を続行する。
【００９５】
図１４は、図３のネットワークホスト２１０を実装するために図１３Ａおよび図１３Ｂの方法を実行する命令を実行することが可能なプロセッサプラットフォーム例１４００の略図である。プロセッサプラットフォーム１４００は、例えば、サーバー、パーソナルコンピュータ、モバイル機器（例えば、携帯電話、スマートフォン、ｉＰａｄ（商標）などのタブレット）、携帯情報端末（ＰＤＡ）、インターネット家電、ＤＶＤプレーヤー、ＣＤプレーヤー、または任意の他のタイプのコンピューティング装置であり得る。
【００９６】
図示例のプロセッサプラットフォーム１４００は、プロセッサ１４１２を含む。図示例のプロセッサ１４１２はハードウェアである。例えば、プロセッサ１４１２は、任意の所望のファミリまたは製造業者からの１つ以上の集積回路、論理回路、マイクロプロセッサまたは制御装置によって実装できる。
【００９７】
図示例のプロセッサ１４１２は、ローカルメモリ１４１３（例えば、キャッシュ）を含む。図示例のプロセッサ１４１２は、揮発性メモリ１４１４および不揮発性メモリ１４１６を含むメインメモリとバス１４１８を経由して通信する。揮発性メモリ１４１４は、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ＲＡＭＢＵＳダイナミックランダムアクセスメモリ（ＲＤＲＡＭ）および／または任意の他のタイプのランダムアクセスメモリ装置によって実装され得る。不揮発性メモリ１４１６は、フラッシュメモリおよび／または任意の他の所望のタイプのメモリ装置によって実装され得る。メインメモリ１４１４、１４１６へのアクセスは、メモリコントローラによって制御される。
【００９８】
図示例のプロセッサプラットフォーム１４００は、インタフェース回路１４２０も含む。インタフェース回路１４２０は、イーサネットインタフェース、ユニバーサルシリアルバス（ＵＳＢ）、および／またはＰＣＩ  ｅｘｐｒｅｓｓインタフェースなどの、任意のタイプのインタフェース規格によって実装され得る。
【００９９】
図示例では、１つ以上の入力装置１４２２がインタフェース回路１４２０に接続されている。入力装置（複数可）１４２２は、ユーザーがデータおよびコマンドをプロセッサ１４１２に入力するのを可能にする。入力装置（複数可）は、例えば、音声センサー、マイクロホン、カメラ（スチルまたはビデオ）、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイントおよび／または音声認識システムによって実装できる。
【０１００】
１つ以上の出力装置１４２４も図示例のインタフェース回路１４２０に接続されている。出力装置１４２４は、例えば、ディスプレイ装置（例えば、発光ダイオード（ＬＥＤ）、有機発光ダイオード（ＯＬＥＤ）、液晶ディスプレイ、ブラウン管ディスプレイ（ＣＲＴ）、タッチスクリーン、触覚出力装置、発光ダイオード（ＬＥＤ）、プリンタおよび／またはスピーカー）によって実装できる。図示例のインタフェース回路１４２０は、従って、通常、グラフィックスドライバカード、グラフィックスドライバチップまたはグラフィックスドライバプロセッサを含む。
【０１０１】
図示例のインタフェース回路１４２０は、ネットワーク１４２６（例えば、イーサネット接続、デジタル加入者回線（ＤＳＬ）、電話線、同軸ケーブル、携帯電話システムなど）を経由して外部マシン（例えば、任意の種類のコンピューティング装置）とのデータ交換を容易にするために、送信機、受信機、送受信機、モデムおよび／またはネットワークインタフェースカードなどの、通信装置も含む。
【０１０２】
図示例のプロセッサプラットフォーム１４００は、ソフトウェアおよび／またはデータを格納するための１つ以上の大容量記憶装置１４２８も含む。かかる大容量記憶装置１４２８の例は、フロッピィディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、Ｂｌｕ−ｒａｙディスクドライブ、ＲＡＩＤシステム、およびデジタル多用途ディスク（ＤＶＤ）ドライブを含む。
【０１０３】
図１３Ａおよび図１３Ｂの方法を実装するためのコード化命令１４３２は、大容量記憶装置１４２８内、揮発性メモリ１４１４内、不揮発性メモリ１４１６内、および／またはＣＤもしくはＤＶＤなどの取り外し可能有形的コンピュータ可読記憶媒体上に格納され得る。
【０１０４】
前述から、上で開示した方法、装置および製品は、プロセス制御システム（物理的および／または仮想的な実装かに関わらず）内で使用される既存の冗長システムに対していくつかの利点を提供することが理解されるであろう。具体的には、本明細書で開示する例は、冗長性を容易にするために、外部ハードウェアの取得、構成、および／または保守と関連した費用および／または複雑性に依存しない。加えて、本明細書で開示する例は、障害を検出するために通信ネットワークの完全性を継続的に監視しており、かかる障害に他の既存の方法よりもずっと迅速に応答して、代替通信経路を確立する。その上、本明細書で開示する例は、ネットワーク障害後に送信されたデータの再伝送を可能にするのに十分な時間内にネットワーク接続を復元するために、データが失われることがない。全てのデータを別個のネットワークを通じて２度送信することによりネットワーク障害に起因してデータを失うことがない、信頼できる接続を提供するいくつかの既知のアプローチがあるが、本明細書で開示する例は、かかる追加の負荷をネットワーク上に課す必要性を回避し、それによって、より多くのデータが、かつ／またはより速い速度で、伝送されるのを可能にする。
【０１０５】
ある方法、装置および製品例が本明細書で開示されているが、本特許の対象範囲はそれらに制限されない。それとは逆に、本特許は、本特許の請求項の範囲に適正に含まれる全ての方法、装置および製品を包含する。
【図１】
2020167714.tif 000003
【図２】
2020167714.tif 000004
【図３】
2020167714.tif 000005
【図４】
2020167714.tif 000006
【図５】
2020167714.tif 000007
【図６】
2020167714.tif 000008
【図７】
2020167714.tif 000009
【図８】
2020167714.tif 000010
【図９】
2020167714.tif 000011
【図１０】
2020167714.tif 000012
【図１１】
2020167714.tif 000013
【図１２】
2020167714.tif 000014
【図１３Ａ】
2020167714.tif 000015
【図１３Ｂ】
2020167714.tif 000016
【図１４】
2020167714.tif 000017
【手続補正書】
【提出日】令和2年6月17日(2020.6.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のネットワークホストにおいて、第２のネットワークホストから第１のネットワークを通じて伝送された第１の完全性メッセージを受信することであって、前記第１の完全性メッセージの連続するもののタイミングは、前記第２のネットワークホストが前記第１のネットワークホストから通信を受信するかどうかに関係なく、前記第２のネットワークホストによって決定されることを特徴とする前記第１の完全性メッセージを受信することと、
前記第１のネットワークホストにおいて、前記第１のネットワークホストの第１のネットワークインタフェースと、前記第２のネットワークホストの第２のネットワークインタフェースとの間の前記第１のネットワークを通じた第２の通信経路にわたるネットワーク障害を、前記第１のネットワークホストの前記第１のネットワークインタフェースが、前記第２のネットワークホストの前記第１のネットワークインタフェースから予期された前記第１の完全性メッセージの１つを受信できない場合に、検出することと、
前記検出されたネットワーク障害に応答して、前記第１のネットワークホストの第１のネットワークインタフェースと前記第２のネットワークホストの第１のネットワークインタフェースとの間に第２の通信経路を自動的に確立することと、
第１のネットワークホストにおいて、前記第２のネットワークホストから第２のネットワークを通じて伝送された第２の完全性メッセージを受信することと、
を含み、
前記第２の通信経路が、前記第１のネットワークホストの前記第２のネットワークインタフェースおよび前記第２のネットワークホストの前記第２のネットワークインタフェースを介して第２のネットワークをルーティングされ、
前記第１の完全性メッセージおよび前記第２の完全性メッセージの各々が、前記第２のネットワークホストと前記第１のネットワークホストとの間で判断された、対応する第１および第２のネットワークインタフェースを経由した、前記第１のネットワークおよび前記第２のネットワークの各々を通じた通信状態を示す完全性情報を含む、
プロセス制御システムで冗長性を提供する方法。
【請求項２】
データが、前記第１のネットワークホストの前記第１のネットワークインタフェースから前記第１のネットワークホストの前記第２のネットワークインタフェースにルーティングされるのを可能にするために、前記第１のネットワークホストの前記第２のネットワークインタフェースを、前記第１のネットワークホストの前記第１のネットワークインタフェースに対するゲートウェイとして定義することをさらに含む、請求項１に記載の方法。
【請求項３】
前記第１の完全性メッセージおよび前記第２の完全性メッセージの各々が、前記第２のネットワークホストならびに前記第２のネットワークホストの前記第１および第２のネットワークインタフェースを識別するホスト情報を含む、請求項１に記載の方法。
【請求項４】
前記完全性情報が、前記第２のネットワークホストと、前記第１および第２のネットワークを経由して前記第１および第２のネットワークホストに通信可能に結合された他のネットワークホストとの間で判断された通信状態をさらに示す、請求項１に記載の方法。
【請求項５】
第３の完全性メッセージを前記第１のネットワークホストから前記第１のネットワークを通じて伝送することと、
第４の完全性メッセージを前記第１のネットワークホストから前記第２のネットワークを通じて伝送することであって、前記第３の完全性メッセージおよび前記第４の完全性メッセージの両方が、前記検出されたネットワーク障害に応答して、前記第１のネットワークホストの前記第１のネットワークインタフェースと、前記第２のネットワークホストの前記第１のネットワークインタフェースとの間の前記第１のネットワークを通じたネットワーク障害を示すことを、さらに含む、請求項３に記載の方法。
【請求項６】
前記検出されたネットワーク障害に応答して、事象、アラート、またはアラームの少なくとも１つを生成することと、
前記事象、前記アラート、または前記アラームの前記少なくとも１つをログに記録することと
をさらに含む、請求項１に記載の方法。
【請求項７】
命令を含む有形的コンピュータ可読記憶媒体であって、前記命令が、実行される際に、第１のネットワークホストに少なくとも：
第２のネットワークホストから第１のネットワークを通じて伝送された第１の完全性メッセージを受信することであって、前記第１の完全性メッセージの連続するもののタイミングは、前記第２のネットワークホストが前記第１のネットワークホストから通信を受信するかどうかに関係なく、前記第２のネットワークホストによって決定されることを特徴とする前記第１の完全性メッセージを受信することと、
前記第１のネットワークホストの第１のネットワークインタフェースと、前記第２のネットワークホストの第１のネットワークインタフェースとの間の前記第１のネットワークを通じた第１の通信経路にわたるネットワーク障害を、前記第１のネットワークホストの前記第１のネットワークインタフェースが、前記第２のネットワークホストの前記第１のネットワークインタフェースから予期された前記第１の完全性メッセージの１つを受信できない場合に、検出することと、
前記検出されたネットワーク障害に応答して、前記第１のネットワークホストの第１のネットワークインタフェースと前記第２のネットワークホストの第１のネットワークインタフェースとの間に第２の通信経路を自動的に確立することと、
前記第２のネットワークホストから第２のネットワークを通じて伝送された第２の完全性メッセージを受信することと、
を実行させ、
前記第２の通信経路が、前記第１のネットワークホストの第２のネットワークインタフェースおよび前記第２のネットワークホストの第２のネットワークインタフェースを介して第２のネットワークをルーティングされ、
前記第１の完全性メッセージおよび前記第２の完全性メッセージの各々が、前記第２のネットワークホストと前記第１のネットワークホストとの間で判断された、対応する第１および第２のネットワークインタフェースを経由した、前記第１のネットワークおよび前記第２のネットワークの各々を通じて判断された通信状態を示す完全性情報を含む、
有形的コンピュータ可読記憶媒体。
【請求項８】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、
データが、前記第１のネットワークホストの前記第１のネットワークインタフェースから前記第１のネットワークホストの前記第２のネットワークインタフェースにルーティングされるのを可能にするために、前記第１のネットワークホストの前記第２のネットワークインタフェースを、前記第１のネットワークホストの前記第１のネットワークインタフェースに対するゲートウェイとして定義することを実行させる、請求項７に記載の有形的コンピュータ可読記憶媒体。
【請求項９】
前記第２の通信経路が、前記ネットワーク障害が生じてから５秒未満で確立される、請求項７に記載の有形的コンピュータ可読記憶媒体。
【請求項１０】
前記第１の完全性メッセージおよび前記第２の完全性メッセージの各々が、前記第２のネットワークホストならびに前記第２のネットワークホストの前記第１および第２のネットワークインタフェースを識別するホスト情報を含む、請求項７に記載の有形的コンピュータ可読記憶媒体。
【請求項１１】
前記完全性情報が、前記第２のネットワークホストと、前記第１および第２のネットワークを経由して前記第１および第２のネットワークホストに通信可能に結合された他のネットワークホストとの間で判断された通信状態をさらに示す、請求項７に記載の有形的コンピュータ可読記憶媒体。
【請求項１２】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、
第３の完全性メッセージを前記第１のネットワークを通じて伝送することと、
第４の完全性メッセージを前記第２のネットワークを通じて伝送することと、
を実行させ、
前記第３の完全性メッセージおよび前記第４の完全性メッセージの両方が、前記検出されたネットワーク障害に応答して、前記第１のネットワークホストの前記第１のネットワークインタフェースと、前記第２のネットワークホストの前記第１のネットワークインタフェースとの間の前記第１のネットワークを通じたネットワーク障害を示す、請求項７に記載の有形的コンピュータ可読記憶媒体。
【請求項１３】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、
前記検出されたネットワーク障害に応答して、事象、アラート、またはアラームの少なくとも１つを生成することと、
前記事象、前記アラート、または前記アラームの前記少なくとも１つをログに記録することと
を実行させる、請求項７に記載の有形的コンピュータ可読記憶媒体。
【請求項１４】
プロセッサおよびメモリを含む第１のネットワークホストを備えたシステムであって、前記プロセッサが、
第２のネットワークホストから第１のネットワークを通じて伝送された第１の完全性メッセージを受信することであって、前記第１の完全性メッセージの連続するもののタイミングは、前記第２のネットワークホストが前記第１のネットワークホストから通信を受信するかどうかに関係なく、前記第２のネットワークホストによって決定されることを特徴とする前記第１の完全性メッセージを受信することと、
前記第１のネットワークホストの第１のネットワークインタフェースと、前記第２のネットワークホストの第１のネットワークインタフェースとの間の前記第１のネットワークを経由した第１の通信経路にわたるネットワーク障害を、前記第１のネットワークホストの前記第１のネットワークインタフェースが、前記第２のネットワークホストの前記第１のネットワークインタフェースから予期された前記第１の完全性メッセージの１つを受信できない場合に、検出することと、
前記検出されたネットワーク障害に応答して、前記第１のネットワークホストの第１のネットワークインタフェースと前記第２のネットワークホストの第１のネットワークインタフェースとの間に第２の通信経路を自動的に確立することと、
前記第２のネットワークホストから第２のネットワークを通じて伝送された第２の完全性メッセージを受信することと、
を行うために、前記メモリに格納された命令を実行し、
前記第２の通信経路が、前記第１のネットワークホストの第２のネットワークインタフェースおよび前記第２のネットワークホストの第２のネットワークインタフェースを介して第２のネットワークをルーティングされ、
前記第１の完全性メッセージおよび前記第２の完全性メッセージの各々が、前記第２のネットワークホストと前記第１のネットワークホストとの間で判断された、対応する第１および第２のネットワークインタフェースを経由した、前記第１のネットワークおよび前記第２のネットワークの各々を通じて判断された通信状態を示す完全性情報を含む、
システム。
【請求項１５】
前記命令が、実行される際に、前記第１のネットワークホストにさらに、
データが、前記第１のネットワークホストの前記第１のネットワークインタフェースから前記第１のネットワークホストの前記第２のネットワークインタフェースにルーティングされるのを可能にするために、前記第１のネットワークホストの前記第２のネットワークインタフェースを、前記第１のネットワークホストの前記第１のネットワークインタフェースに対するゲートウェイとして定義させる、請求項１４に記載のシステム。
【請求項１６】
前記第１の完全性メッセージおよび前記第２の完全性メッセージの各々が、前記第２のネットワークホストならびに前記第２のネットワークホストの前記第１および第２のネットワークインタフェースを識別するホスト情報を含む、請求項１４に記載のシステム。