(57)【要約】  本発明の一態様によれば、アクティブなゲートウェイとして動作するように選択された冗長ゲートウェイのどれもが事前に指定されたアドレスによってアクセス可能なように構成される。その結果、ゲートウェイを介して他のシステムと通信するどのシステムも、どの冗長ゲートウェイがアクティブなゲートウェイとして動作しているかに関係なく、事前に指定された同一のアドレスを使用して残りのシステムにアクセスしてよい。その結果、システムの実装が簡略化される。
2008502216.tif 000002
【特許請求の範囲】
【請求項１】
アクティブなゲートウェイを介して複数のシステムにアクセスする第１のシステムの実装を簡略化する方法であって、前記アクティブなゲートウェイが複数の冗長ゲートウェイの任意の１つに対応し、前記方法が、
前記第１のシステムを事前に指定されたアドレスを使用して前記アクティブなゲートウェイと通信するように構成するステップと、
前記複数の冗長ゲートウェイから前記アクティブなゲートウェイとして動作する特定のゲートウェイを選択するステップと、
前記特定のゲートウェイを前記事前に指定されたアドレスによってアクセス可能なように構成するステップとを含む方法。
【請求項２】
前記特定のゲートウェイが動作できるかどうかを決定するステップと、
前記特定のゲートウェイが動作できない場合に前記複数の冗長ゲートウェイのうちの他の１つを前記アクティブなゲートウェイとして選択するステップと、
前記複数の冗長ゲートウェイのうちの前記他の１つを前記事前に指定されたアドレスによってアクセス可能なように構成するステップとをさらに含む請求項１に記載の方法。
【請求項３】
前記決定ステップが、前記特定のゲートウェイに周期的に心拍メッセージを送るステップと、前記心拍メッセージに対する応答が受け取られた場合に前記特定のゲートウェイが動作できると決定するステップとを含む請求項２に記載の方法。
【請求項４】
前記選択ステップが、
前記複数の冗長ゲートウェイそれぞれの初期化時に前記事前に指定されたアドレスがすでに使用中であるかどうかを検査するステップと、
前記事前に指定されたアドレスがまだ使用されていない場合には前記アクティブなゲートウェイとして、そうでなければ遊休状態を続けるように冗長ゲートウェイを構成するステップとを含む請求項１に記載の方法。
【請求項５】
前記複数のゲートウェイのそれぞれが初期化されるときに、対応する装置番号を読み取るステップと、
サーバに送られた要求に応答して基準アドレスを受け取るステップと、
前記基準アドレスに前記装置番号を加算したのと等しくなるようにセルフアドレスを計算するステップとをさらに含む請求項４に記載の方法。
【請求項６】
前記検査ステップが、
前記事前に指定されたアドレスに対しピングコマンドを実行するステップと、
前記ピングコマンドへの応答を検査するステップと、
前記応答が事前に指定されたアドレスを含む場合には前記事前に指定されたアドレスがすでに使用されていると判定し、そうでなければ事前に指定されたアドレスは使用されていないと判定するステップとを含む請求項４に記載の方法。
【請求項７】
前記複数の冗長ゲートウェイが、デフォルトでアクティブなゲートウェイとして動作するように指定された主ゲートウェイと、デフォルトで冗長ゲートウェイとして動作するように指定された副ゲートウェイとを含み、前記検査ステップが前記主ゲートウェイで実施されて前記事前に指定されたアドレスがすでに使用中であると判定され、前記方法が、
前記事前に指定されたアドレスがスワップされてよいかどうか判定するステップと、
前記事前に指定されたアドレスがスワップされてよい場合には前記主ゲートウェイを前記事前に指定されたアドレスによってアクセス可能なように構成するステップとをさらに含む請求項４に記載の方法。
【請求項８】
前記方法が生産プランで実施され、前記第１のシステムがクライアントシステムを含み、前記複数のシステムのそれぞれがフィールド装置および制御装置のうちの１つを含む請求項７に記載の方法。
【請求項９】
複数のシステムと、
事前に指定されたアドレスを使用して前記複数のシステムのそれぞれと通信するアクティブなゲートウェイと通信する第１のシステムと、
複数の冗長ゲートウェイであって、前記アクティブなゲートウェイとして動作するように選択された前記複数の冗長ゲートウェイのどれもが前記事前に指定されたアドレスによってアクセス可能なように構成される複数の冗長ゲートウェイとを含むネットワーク環境。
【請求項１０】
前記複数のゲートウェイが、
前記アクティブなゲートウェイが動作できるかどうかを決定し、
前記アクティブなゲートウェイが動作できない場合に前記複数の冗長ゲートウェイのうちの他の１つを前記アクティブなゲートウェイとして選択し、
前記複数の冗長ゲートウェイのうちの前記他の１つを前記事前に指定されたアドレスによってアクセス可能なように構成するように動作可能である請求項９に記載のネットワーク環境。
【請求項１１】
前記決定が、前記アクティブなゲートウェイに周期的に心拍メッセージを送り、前記心拍メッセージに対する応答が受け取られた場合に前記アクティブなゲートウェイが動作できると結論を下すことによって実施される請求項１０に記載のネットワーク環境。
【請求項１２】
前記選択が、
前記複数の冗長ゲートウェイそれぞれの初期化時に前記事前に指定されたアドレスがすでに使用中であるかどうかを検査することと、
前記事前に指定されたアドレスがまだ使用されていない場合には前記アクティブなゲートウェイとして、そうでなければ遊休状態を続けるように冗長ゲートウェイを構成することとによって実施される請求項９に記載のネットワーク環境。
【請求項１３】
前記複数の冗長ゲートウェイが、デフォルトでアクティブなゲートウェイとして動作するように指定された主ゲートウェイと、デフォルトで冗長ゲートウェイとして動作するように指定された副ゲートウェイとを含み、前記検査が前記主ゲートウェイで実施されて前記事前に指定されたアドレスがすでに使用中であると判定され、前記主ゲートウェイが、
前記事前に指定されたアドレスがスワップされてよいかどうか判定し、
前記事前に指定されたアドレスがスワップされてよい場合に前記主ゲートウェイを前記事前に指定されたアドレスによってアクセス可能なように構成するように動作可能である請求項１２に記載のネットワーク環境。
【請求項１４】
前記第１のシステムがクライアントシステムを含み、前記複数のシステムのそれぞれがフィールド装置および制御装置のうちの１つを含む請求項１３に記載のネットワーク環境。
【請求項１５】
複数の冗長ゲートウェイのそれぞれに、アクティブなゲートウェイを介して複数のシステムにアクセスする第１のシステムの実装を簡略化させる、１つまたは複数の命令シーケンスをもつコンピュータ可読媒体であって、前記アクティブなゲートウェイが複数の冗長ゲートウェイのうちの任意の１つに対応し、前記１つまたは複数の命令シーケンスの１つまたは複数のプロセッサによる実行が、前記１つまたは複数のプロセッサに、
前記アクティブなゲートウェイとして選択された前記複数の冗長ゲートウェイのうちの任意の冗長ゲートウェイを前記事前に指定されたアドレスによってアクセス可能なように構成させる行為を実施させて、
前記第１のシステムが前記アクティブなゲートウェイを介して通信する前記事前に指定されたアドレスだけを使用することによって前記複数のシステムにアクセスできるコンピュータ可読媒体。
【請求項１６】
前記アクティブなゲートウェイが動作できるかどうかを決定することと、
前記アクティブなゲートウェイが動作できない場合に前記複数の冗長ゲートウェイのうちの他の１つを前記アクティブなゲートウェイとして選択することと、
前記複数の冗長ゲートウェイのうちの前記他の１つを前記事前に指定されたアドレスによってアクセス可能なように構成することとをさらに含む請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記決定が、前記アクティブなゲートウェイに周期的に心拍メッセージを送ることと、前記心拍メッセージに対する応答が受け取られた場合に前記アクティブなゲートウェイが動作できると決定することとを含む請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記選択が、
前記複数の冗長ゲートウェイそれぞれの初期化時に前記事前に指定されたアドレスがすでに使用中であるかどうかを検査することと、
前記事前に指定されたアドレスがまだ使用されていない場合には前記アクティブなゲートウェイとして、そうでなければ遊休状態を続けるように冗長ゲートウェイを構成することとを含む請求項１５に記載のコンピュータ可読媒体。
【請求項１９】
前記複数のゲートウェイのそれぞれが初期化されるときに、対応する装置番号を読み取ることと、
サーバに送られた要求に応答して基準アドレスを受け取ることと、
前記基準アドレスに前記装置番号を加算したのと等しくなるようにセルフアドレスを計算することとをさらに含む請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
前記検査が、
前記事前に指定されたアドレスに対しピングコマンドを実行することと、
前記ピングコマンドへの応答を検査することと、
前記応答が事前に指定されたアドレスを含む場合には前記事前に指定されたアドレスがすでに使用されていると判定し、そうでなければ事前に指定されたアドレスは使用されていないと判定することとを含む請求項１８に記載のコンピュータ可読媒体。
【請求項２１】
前記複数の冗長ゲートウェイが、デフォルトでアクティブなゲートウェイとして動作するように指定された主ゲートウェイと、デフォルトで冗長ゲートウェイとして動作するように指定された副ゲートウェイとを含み、前記検査が前記主ゲートウェイで実施されて前記事前に指定されたアドレスがすでに使用中であると判定され、
前記事前に指定されたアドレスがスワップされてよいかどうか判定することと、
前記事前に指定されたアドレスがスワップされてよい場合には前記主ゲートウェイを前記事前に指定されたアドレスによってアクセス可能なように構成することとをさらに含む請求項１８に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にネットワーク通信に関し、より詳細にはアドレス可能な冗長ゲートウェイを介して他のシステムにアクセスするシステムにおける接続確立を簡略化するための方法および装置に関する。
【背景技術】
【０００２】
ゲートウェイは、一般に雑多な環境で動作するシステム間で接続が確立されることを可能にする装置を指す。ゲートウェイは、多くの場合、異種のネットワーク（例えばトークンリング対イーサネット(登録商標)）間、異種のアプリケーション（例えば、異なるプロトコルを使用して実施されるファイル転送）間などでの通信を可能にするために設けられる。
【０００３】
ゲートウェイは、多くの場合、アドレス可能である（すなわち、アドレスによってアクセスされ得る）ように実装される。関連技術でよく知られているように、ゲートウェイの一方の側にあるシステムが、ゲートウェイを介してそのゲートウェイのアドレスを用いて別のシステムにデータを送ることが出来る。
【０００４】
環境は、多くの場合、主に信頼性のために複数の冗長ゲートウェイを含む。すなわち、ゲートウェイの１つが非動作（ｎｏｎ−ｏｐｅｒａｔｉｏｎａｌ）（アクセス不可能（ｎｏｎ−ａｃｃｅｓｓｉｂｌｅ））になった場合でも、残りの（冗長）ゲートウェイを使用してシステムが互いに通信できるようにする冗長性が提供され得る。
【０００５】
従来の一アプローチでは、冗長ゲートウェイのそれぞれに異なるアドレス（例えば異なるＩＰアドレス）が与えられ、システムは、冗長ゲートウェイのうちの利用可能（使用可能）なゲートウェイにデータを送ることを余儀なくされる。かかるアプローチでは、システムがゲートウェイのうちの第１のゲートウェイと目下通信していて、その第１のゲートウェイが非動作になった場合、システムは、それ以降、対応する異なるアドレスを使用して残りのゲートウェイにデータを送らなければならない。
【０００６】
かかるアプローチの問題の１つは、あるゲートウェイが使用可能であるかどうかを判断し、使用可能なゲートウェイを介してデータを転送する「インテリジェンス」をもつことが各システムに必要になることである。言い換えると、目下使用可能なゲートウェイの１つが非動作になった場合、かかるゲートウェイを介して転送しているシステムは、動的に、そのゲートウェイがアクセス不可能であることを認識し、残りの冗長ゲートウェイの１つを使用することが必要になることがある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
いくつかのシステムでの実装の複雑さ、および動的な判断に関連するオーバーヘッドが、少なくとも一部の環境では受け入れがたいことがある。したがって望ましいのは、アドレス可能な冗長ゲートウェイを介して他のシステムにアクセスするシステムにおける接続確立を簡略化する方法および装置である。
【課題を解決するための手段】
【０００８】
本発明の一態様は、アクティブなゲートウェイを介して他のシステムにアクセスする第１のシステムの実装を簡略化する。この場合、アクティブなゲートウェイは、複数の冗長ゲートウェイの任意の１つに対応する。一実施形態では、第１のシステムが、事前に指定されたアドレスを使用してアクティブなゲートウェイと通信するように構成され、アクティブなゲートウェイとして動作するように選択された特定のゲートウェイが、事前に指定されたアドレスによってアクセス可能なように構成される。その結果、第１のシステムが、どのアクティブなゲートウェイを介しても、事前に指定された同一アドレスを使用して残りのシステムにアクセスすることができる。
【０００９】
本発明の他の態様によれば、アクティブなゲートウェイが非動作になった場合、冗長ゲートウェイの他の１つが、事前に指定された同一アドレスによってアクセス可能になるように動的に構成される。その結果、第１のシステムが、事前に指定された同一アドレスを使用して残りのシステムにアクセスし続けることができる。
【００１０】
本発明のさらなる特徴および利点、ならびに本発明の様々な実施形態の構造および動作が、添付の図面を参照しながら以下に詳細に説明される。図面において、同様な参照番号は全体的に、同一であり機能的に類似である、かつ／または構造的に類似である諸要素を示す。ある要素が初めて登場する図面は、対応する参照番号の一番左の桁によって示される。
【００１１】
本発明は、以下に簡潔に説明される添付の図面を参照しながら説明される。
【発明を実施するための最良の形態】
【００１２】
１．概観
本発明の一態様によれば、通信が冗長ゲートウェイ間で実施されて、ゲートウェイのうちの１つがアクティブなゲートウェイとして決定されることが可能になる。アクティブなゲートウェイは、事前に指定されたアドレスによってアクセス可能なように構成される。理由はどうあれアクティブなゲートウェイが非動作になると、冗長ゲートウェイのうちの別の１つがアクティブなゲートウェイであると決定され、（事前に指定されたアドレスが、非動作になったアクティブなゲートウェイによって放棄された後）事前に指定されたアドレスで設定される。その結果、冗長ゲートウェイのうちの１つを介して通信するように設計されたすべてのシステムが、単一の（事前に指定された）アドレスを使用して通信するように実装されてよく、したがってシステムの実装が簡略化され得る。
【００１３】
本発明のいくつかの態様が、例示を目的とした例を参照しながら以下に説明される。数多くの特定の詳細、関係、および方法は、本発明の十分な理解をもたらすために述べられるのであることを理解されたい。しかし、本発明が、１つまたは複数の特定の詳細なしで、あるいは他の方法などを用いて実施されてよいことは、当業者なら容易に理解されよう。言い換えると、本発明を曖昧にしないために、周知の構造または動作は詳細に示されていない。
【００１４】
２．例示的な環境
図１は、本発明のいくつかの態様が実施され得る例示的な生産環境（ｍａｎｕｆａｃｔｕｒｉｎｇ  ｅｎｖｉｒｏｎｍｅｎｔ）のブロック図である。フィールド装置１１０Ａ〜１１０Ｘ、入出力ブロック１２０Ａ〜１２０Ｃ、制御ボックス１３０Ａ〜１３０Ｃ、トラフィックコントローラ１４０、処理システム１５０および１６０、クライアントシステム１８０Ａ〜１８０Ｋ、ならびにサーバ１９０Ａおよび１９０Ｂを含む、環境１００が示されている。各ブロックが、以下にさらに詳細に説明される。
【００１５】
例示が目的であり、簡潔にするため、わずかなクライアントシステム、ゲートウェイとして動作可能な２つの処理システム１５０および１６０を含む、例示的な環境１００が示されている。しかし、典型的な環境では、上記のタイプならびに他のタイプのそれぞれにおいていくつかのブロックを含んでよい。本発明のいくつかの態様が他の環境で実施されてもよい。
【００１６】
フィールド装置１１０Ａ〜１１０Ｘは、（温度、流れ、圧力など様々な変数を測定する）センサ、制御要素（例えばバルブ、スイッチ）、および伝送器などの構成要素の全体を表す。煩雑にならないように、各フィールド装置がゲートウェイの１つを介してクライアントシステムから受け取られた問合せに応答するというシナリオで、本発明の様々な態様が説明される。しかし、フィールド装置が生産プロセスをサポートする他のタスクを実施してもよいし、かかるタスクにおいて本発明の様々な態様が適用可能であってもよい。フィールド装置１１０Ａ〜１１０Ｘは、周知の方法で実装されてよい。
【００１７】
入出力ブロック１２０Ａ〜１２０Ｄのそれぞれが、トラフィックコントローラ１４０またはデータが転送されるべき対象であるターゲットアドレスを利用する対応するフィールド装置の１つにデータを転送する。（クライアントシステムからの）コマンドが、対応するフィールド装置１１０Ｄ〜１１０Ｘに転送され、それに応じてフィールド装置から受け取られたデータが、トラフィックコントローラ１４０に送られ得る。
【００１８】
制御ボックス１３０Ａ〜１３０Ｄのそれぞれが、対応するフィールド装置（例えばセンサ）からデータを受け取り、そのデータを所定の方法で（例えばある制御アルゴリズムに従って）処理し、制御信号を生成する。次いで、その制御信号が使用されて別のフィールド装置（例えば開閉制御バルブ）を操作する。
【００１９】
トラフィックコントローラ１４０が、処理システムの１つからデータを受け取り、データに通常含まれているターゲット／宛先アドレスを利用して、対応する入出力ボックスまたは制御ボックスにそのデータを転送する。入出力ボックスまたは制御ボックスから受け取られたデータは、ゲートウェイとして動作する対応する処理システムに転送され得る。入出力ブロック、制御ボックス、トラフィックコントローラは、プロセスネットワーク（ｐｒｏｃｅｓｓ  ｎｅｔｗｏｒｋ）１２５に接続される。入出力ブロック１２０Ａ〜１２０Ｄ、制御ボックス１３０Ａ〜１３０Ｄ、およびトラフィックコントローラ１４０は、周知の方法で実装され得る。
【００２０】
サーバ１９０Ａおよび１９０Ｂが、ゲートウェイによって使用されるべきＩＰアドレス（以下にさらに詳細に説明される）、プロセスパラメータ（様々な制御ループを構成するのに使用される）、およびフィールド装置から受け取られる様々なデータ（例えばアラーム）などの様々な構成データを格納および供給するリポジトリ（ｒｅｐｏｓｉｔｏｒｙ）を提供する。通信ネットワーク１７５（例えばイーサネット(登録商標)）に接続されたサーバ１９０Ａおよび１９０Ｂが示されている。サーバ１９０Ａおよび１９０Ｂは、周知の方法で実装され得る。
【００２１】
クライアントシステム１８０Ａ〜１８０Ｋは、他のシステム／装置と通信してよいアプリケーション（例えば、実施されるプロセスの構成、動作、および制御に関する）をサポートするデジタル処理システムを表す。（ネットワーク１７５に接続された）クライアントシステム１８０Ａ〜１８０Ｋのそれぞれが、ゲートウェイ１５０および１６０の１つを介してフィールド装置１１０Ａ〜１１０Ｘと通信する。
【００２２】
ゲートウェイ１５０および１６０が冗長さを提供するために実装され、このゲートウェイの１つだけが任意の時刻にアクティブなゲートウェイであってよい。実施形態では、ゲートウェイが、異なるネットワークプロトコルおよび媒体を用いて動作するネットワーク同士を接続するように動作し、したがって、なんら修正なしにパケットペイロードが転送される。本発明の態様では、以下にさらに詳細に説明されるように、クライアントシステム１８０Ａ〜１８０Ｋのそれぞれが単一のアドレスをもつように構成され、ゲートウェイ１５０／１６０のどちらが目下アクティブなゲートウェイであるかに関係なくフィールド装置と通信することが可能になる。
【００２３】
３．システムの実装を簡略化
図２は、本発明の態様に従って、冗長アドレス可能なゲートウェイを介して他のシステムにアクセスするシステムにおいて接続確立が簡略化されることができる方法を示す流れ図である。例示が目的なので、流れ図は図１を参照しながら説明される。しかし本発明のいくつかの態様が他の環境で使用され得る。この方法はステップ２０１から始まるが、制御はすぐにステップ２１０に渡る。
【００２４】
ステップ２１０で、ユーザが、各システム（例えばクライアントシステム１８０Ａ〜１８０Ｋ、サーバシステム１９０Ａおよび１９０Ｂ）を事前に指定されたアドレスと等しいゲートウェイアドレスをもつように構成する。この設定は一般にシステムの実装によって変わり、周知の方法で実施され得る。ステップ２２０で、複数のゲートウェイが与えられ、各ゲートウェイはアクティブなゲートウェイとして動作する能力をもつ。例えば、以下にさらに詳細に説明されるように、ゲートウェイ１５０および１６０のそれぞれが、所与の時点でアクティブなゲートウェイとして動作し得る。
【００２５】
ステップ２３０で、アクティブなゲートウェイとして動作することになる特定のゲートウェイが選択される。一般に、使用可能／アクセス可能であるゲートウェイの１つが、アクティブなゲートウェイとして選択される必要がある。アクティブなゲートウェイを選択する例示的アプローチ、およびアクティブなゲートウェイが故障した場合にそのアクティブなゲートウェイが交換され得る方法が、以下で説明される。例示のために、ゲートウェイ１５０がアクティブなゲートウェイとして動作するように選択されると仮定する。
【００２６】
ステップ２４０で、アクティブなゲートウェイとして動作するように決定された特定のゲートウェイ（例示を目的とした例では、１５０）が、（ステップ２１０で構成された）ゲートウェイアドレスによってアクセス可能なように構成される。いくつかのシステムで、ネットワークに接続するインターフェースが、対応するアドレスでパケットを受け取るように構成される。インターフェースの構成もまた、そのシステムで実行する特定の環境（例えばオペレーティングシステム）によって変わり、周知の方法で実装され得る。
【００２７】
ステップ２８０で、各システムが、ステップ２１０および２４０での構成によって、（中間にゲートウェイが必要な場合に）アクティブなゲートウェイを介して他のシステムにデータを送る。当業者には明らかなように、このデータが接続を確立する基礎を形成する。制御がステップ２９９に渡り、この方法は終了する。
【００２８】
したがって、上記の例では、ゲートウェイ１５０がアクティブなゲートウェイとして動作するように説明されている。本発明の他の態様によれば、理由はどうあれ目下アクティブなゲートウェイが非動作（アクセス不可能）になると、冗長ゲートウェイの他の１つがアクティブなゲートウェイになる。その説明は、目下アクティブなゲートウェイ１５０がアクセス不可能あるいは非動作になったときに、ゲートウェイ１６０が本発明の態様に従ってアクティブなゲートウェイとして動作を開始する方法を参照しながら続けられる。
【００２９】
４．目下アクティブなゲートウェイが非動作になる
図３は、目下アクティブなゲートウェイが非動作になった場合に、別のゲートウェイが自動的にアクティブなゲートウェイの役割を引き受ける方法を示す流れ図である。例示が目的なので、流れ図は図１および図２を参照しながら説明される。しかし、この流れ図は他の環境で使用され得る。この方法はステップ３０１から始まるが、制御はすぐにステップ３１０に渡る。
【００３０】
ステップ３４０で、目下アクティブなゲートウェイが動作できるかどうか決定される。様々なアプローチ（例えば、アクティブなゲートウェイを介して接続を試みる外部のシステムによる、あるいは様々なハードウェア／ソフトウェア構成要素の状態（ｓｔａｔｕｓ）を検査する内部で生成されるコマンドによる）が、目下アクティブなゲートウェイが動作できるかどうか決定するのに利用され得る。接続が失われた場合にはステップ３５０に、そうでなければステップ３４０に、制御が渡る。
【００３１】
ステップ３５０で、アクティブなゲートウェイとして動作できる特定の冗長（バックアップ）ゲートウェイが決定／選択される。一般に、動作できる冗長ゲートウェイのうちのどれがアクティブなゲートウェイとして選択され得る。ステップ３４０および３５０を実施する例示的アプローチが、以下にさらに詳細に説明される。
【００３２】
ステップ３６０で、ステップ３５０で選択されたゲートウェイが、その選択されたゲートウェイに事前に指定されたアドレスで到達できるように、（ステップ２１０で言及された）事前に指定されたアドレスをもつように構成される。その結果、ゲートウェイを介して他のシステムと接触するシステムは、そのシステムにおけるいかなる変更も必要とせずに、選択されたゲートウェイを使用して通信するはずである。この方法はステップ３９９で終了する。
【００３３】
したがって、目下アクティブなゲートウェイが非動作になった場合に、図３のアプローチを使用して、アクティブなゲートウェイが冗長システムのうちのもう１つに変更され得る。冗長システムのどれもがアクティブなゲートウェイとして動作できる場合、環境全体が初期化されるときにゲートウェイのうちの１つをアクティブなゲートウェイとして選択することが望ましいであろう。かかる選択が実施され得る方法は、図４を参照しながら以下に説明される。
【００３４】
５．初期化中にアクティブなゲートウェイを選択
本発明の態様によれば、２つのゲートウェイのうちの一方が、デフォルトのアクティブな（主）ゲートウェイとして構成され、もう一方のゲートウェイが副ゲートウェイとして構成される。一般に、最初に初期化する特定のゲートウェイが、（事前に指定されたゲートウェイアドレスをもつように構成されることによって）アクティブなゲートウェイの役割を引き受けるように設計され、残りのゲートウェイはデータ転送に使用されなくてよい。さらに、以下に図４を参照しながら説明されるように、主ゲートウェイおよび副ゲートウェイが、いくつかの条件下でアドレススワッピング（ａｄｄｒｅｓｓ  ｓｗａｐｐｉｎｇ）に携ることができる。
【００３５】
図４は、本発明の一実施形態における、主（すなわちデフォルトでアクティブな）ゲートウェイが、初期化されるときにアクティブなゲートウェイの役割を引き受けることができる方法を示す流れ図である。例示が目的なので、ゲートウェイ１５０および１６０がそれぞれ主ゲートウェイおよび冗長ゲートウェイと指定される。
【００３６】
（関連技術で周知の）Ｂｏｏｔｐプロトコルに関連して実装される一仕様（ｃｏｎｖｅｎｔｉｏｎ）に従って、主ゲートウェイは奇数の装置番号（ｄｅｖｉｃｅ  ｎｕｍｂｅｒ）をもつように構成され、副ゲートウェイがその次に大きな偶数の装置番号をもつように構成される。デバイス番号は、一般にｂｏｏｔｐサーバ（例えば、１９０Ｂ）から受け取られる基準アドレス（ｂａｓｅ  ａｄｄｒｅｓｓ）（偶数）に加えられて、ゲートウェイのＩＰアドレスを形成する。ゲートウェイ１５０および１６０がそれぞれ、主および副ゲートウェイの仕様に一致する、奇数（例えば３）およびその次に大きな偶数（例えば４）の装置インデックス番号をもつように構成される。この方法はステップ４０１から始まるが、制御はすぐにステップ４１０に渡る。
【００３７】
ステップ４１０で、主ゲートウェイとして動作するように指定されたゲートウェイが、初期化され得る。例示を目的とした例では、ゲートウェイ１５０（主）が初期化されるとき、装置インデックス番号が、内部記憶装置から、例えばマイクロソフト（登録商標）製品ファミリの場合であればＷｉｎｄｏｗｓ（登録商標）サービスルーチンを使用するレジストリから、読み取られ得る。したがって、ゲートウェイ１５０は、対応する装置インデックス番号として３を読み取ることができる。
【００３８】
ステップ４３０で、主ゲートウェイ（１５０）が、セルフアドレス（ｓｅｌｆ  ａｄｄｒｅｓｓ）を決定する。例えば、ゲートウェイ１５０は、Ｂｏｏｔｐ要求をサーバ１９０Ｂに送ることが出来、それに応答した基準アドレスを受け取ることが出来る。主ゲートウェイのセルフアドレスは、（基準アドレス＋装置番号）と等しくなるように計算され得る。装置番号および基準アドレスは、主ゲートウェイ１５０のセルフアドレスが、各クライアントシステム１８０Ａ〜１８０Ｋで構成される事前に指定されたゲートウェイアドレスと等しくなるように構成される。
【００３９】
ステップ４４０で、主ゲートウェイ（１５０）が、事前に指定されたゲートウェイアドレスがネットワーク上の別のゲートウェイによってすでに使用されているかどうか判定する。かかる判定を行うために、例えば、ゲートウェイ１５０は、事前に指定されたアドレスに対しピングコマンド（ｐｉｎｇ  ｃｏｍｍａｎｄ）（関連技術で周知のＩＣＭＰエコー要求）を実行し得る。応答が受け取られた場合、事前に指定されたアドレスがすでに使用中であると判定され得る。あるいは、カスタムプロトコルがパス１５６に実施されて（例えば、ＲＳ２３２シリアルプロトコルを使用して）、副ゲートウェイが事前に指定されたゲートウェイアドレスをすでに使用中であるかどうか判定し得る。
【００４０】
事前に指定されたゲートウェイアドレスがすでに使用中である場合にはステップ４６０に、そうでなければステップ４８０に、制御が渡る。ステップ４６０で、ゲートウェイ１５０が、アドレスがスワップされ得るかどうか判定する。実施形態では、冗長（副）ゲートウェイに構成された事前に指定されたアドレスは、他のアプリケーション（以下に図６を参照しながら説明される）がゲートウェイ１６０で初期化されない場合にだけスワップされ得る。アドレスがスワップされてよい場合にはステップ４７０に、そうでなければステップ４９０に、制御が渡される。
【００４１】
ステップ４７０で、主ゲートウェイ（１５０）が、事前に指定されたアドレスをもつように構成し、必要な状態情報（アプリケーションに関する）がすべて転送され得る。一実施形態では、冗長ゲートウェイ（１６０）が、事前に指定されたアドレスを放棄し、装置番号に対応するアドレス（すなわち装置番号４に対応するＩＰアドレス）を獲得する。アクティブなゲートウェイとしての動作に起因する、冗長ゲートウェイ（１６０）に含まれるどのようなデータ構造も、主ゲートウェイ（１５０）によって送られる要求に応答して転送され得る。ステップ４８０で、主ゲートウェイ（１５０）がアクティブなゲートウェイとして動作し、ステップ４９９に制御が渡る。
【００４２】
ステップ４９０で、主ゲートウェイ（１５０）が遊休状態を続ける。言い換えると、事前に指定されたアドレスが副ゲートウェイ（１６０）によって使用されているので、副ゲートウェイ（１６０）がアクティブなゲートウェイとして動作し続ける。制御がステップ４９９に渡り、この方法は終了する。
【００４３】
したがって、主ゲートウェイ１５０は、様々なシステム間で接続を提供するアクティブなゲートウェイとして動作を開始することができる。その説明は、ゲートウェイ１６０が、初期化されるときにアクティブなゲートウェイとして動作できる方法を参照しながら続けられる。
【００４４】
図５は、本発明の一実施形態における、副（すなわちデフォルトで副）ゲートウェイが、初期化されるときにアクティブなゲートウェイとしての役割を引き受けることの出来る方法を示す流れ図である。この方法はステップ５０１から始まるが、制御はすぐにステップ５１０に渡る。
【００４５】
ステップ５２０で、副ゲートウェイ（１６０）として動作するように指定されたゲートウェイが（主ゲートウェイとして指定されたゲートウェイ１５０に先だって）初期化され得る。ステップ５３０で、副ゲートウェイ１６０が、基準アドレスおよび対応する装置番号の合計を計算することによって、セルフアドレスを決定する。基準アドレスは、（送られた要求に応答して）サーバシステム１９０Ｂから受け取られ得る。セルフアドレスは、ゲートウェイ１５０を参照しながらステップ４３０で説明された計算に類似の方法で決定される。
【００４６】
ステップ５４０で、副ゲートウェイ（１６０）が、事前に指定されたアドレスがネットワーク上の別のゲートウェイによってすでに使用されているかどうかを判定する。かかる判定を行うために、例えば、ゲートウェイ１６０は、ステップ４４０と同様に、事前に指定されたアドレスに対しピングコマンド（関連技術で周知のＩＣＭＰエコー要求）を実行してよいし、あるいはカスタムプロトコルが使用されてよい。事前に指定されたアドレスを別のシステムがすでに使用している場合にはステップ５９０に、そうでなければステップ５７０に、制御が渡る。
【００４７】
ステップ５９０で、副ゲートウェイ１６０が遊休状態を続けてよい（すなわち、ゲートウェイ１６０がユーザに望まれて副システムとして動作を継続してよい）。制御がステップ４９０に渡り、この方法は終了する。
【００４８】
ステップ５７０で、副ゲートウェイ（１６０）が、事前に指定されたアドレスでアクセス可能なように構成した。ゲートウェイ１６０が、装置番号（４）に対応するセルフアドレスを放棄し、事前に指定されたアドレスをもつように構成する。アドレスの構成および放棄は、一般に当該のゲートウェイで使用される具体的なオペレーティングシステムによって変わり、周知の方法で実装されてよい。ステップ５８０で、副ゲートウェイ（１６０）がアクティブなゲートウェイとして動作する。制御がステップ５９９に渡り、この方法は終了する。
【００４９】
したがって、ゲートウェイ１６０は、アクティブなゲートウェイとして動作することができる。その説明は、ゲートウェイ１５０および１６０が通信してアクティブなゲートウェイの役割を決定する実施形態を参照しながら続けられる。
６．ゲートウェイの実施形態
図６は、一実施形態におけるゲートウェイ１５０および１６０の詳細を示すブロック図である。インバウンドポート（ｉｎｂｏｕｎｄ  ｐｏｒｔ）６１０、パーサ（ｐａｒｓｅｒ）６２０、データアクセスブロック（ｄａｔａ  ａｃｃｅｓｓ  ｂｌｏｃｋ）６３０、冗長マネージャ（ｒｅｄｕｎｄａｎｃｙ  ｍａｎａｇｅｒ）６４０、アプリケーションブロック（ａｐｐｌｉｃａｔｉｏｎ  ｂｌｏｃｋ）６４５、およびアウトバウンドインターフェース（ｏｕｔｂｏｕｎｄ  ｉｎｔｅｒｆａｃｅ）６４９を含む、ゲートウェイ１５０が示されている。インバウンドポート６６０、パーサ６７０、データアクセスブロック６８０、冗長マネージャ６９０、アプリケーションブロック６９５、およびアウトバウンドインターフェース６９９を含む、ゲートウェイ１６０が示されている。ゲートウェイ１６０の様々なブロックは、ゲートウェイ１５０に含まれる対応するブロックと同様に実装されてよく、煩雑にならないように、ゲートウェイ１５０に含まれるブロックだけが以下に説明される。
【００５０】
インバウンドインターフェース（Ｉｎｂｏｕｎｄ  ｉｎｔｅｒｆａｃｅ）６１０は、電気インターフェース、物理インターフェース、およびプロトコルインターフェースを提供して、異なるクライアントシステム（パス１５７を介して）およびトラフィックコントローラ１４０（パス１５４を介して）からパケットを受け取る。受け取られたパケットはパーサ６２０に転送される。同様に、アウトバウンドインターフェース６４９は、電気インターフェース、物理インターフェース、およびプロトコルインターフェースを提供して、様々なクライアントシステムおよびトラフィックコントローラ１４０へパケットを送る。インバウンドインターフェース６１０およびアウトバウンドインターフェース６４９はどちらも、周知の方法で実装されてよい。
【００５１】
パーサ６２０は、受け取られた各パケットを検査し、その受け取られたパケットをデータアクセスブロック６３０、冗長マネージャ６４０、およびアプリケーションブロック６４５のうちの１つに転送する。転送先となる特定のブロックは、一般に、受け取られた各パケットのヘッダコンテンツ（ｈｅａｄｅｒ  ｃｏｎｔｅｎｔｓ）（例えばプロトコル、ポート番号など）によって変わる。パーサ６２０は、周知の方法で実装されてよい。
【００５２】
データアクセスブロック６３０は、様々なポートでコマンドを待ち受け、アプリケーションブロック６４５を開始（その実行を開始）して、そのコマンドを処理する。また、（クライアントシステムから送られた）コマンドがアプリケーションブロック６４５に転送され、アプリケーションブロック６４５から受け取られた（フィールド装置から収集された）データが、アウトバウンドインターフェース６４９に送られ得る。例えば、フィールド装置１１０Ａの入力パラメータ値を求める（クライアントシステム１８０Ｂを使用するオペレータからの）コマンドがアプリケーションブロック６４５に転送され得、（アプリケーションブロック６４５から受け取られた）対応する応答がアウトバウンドインターフェース６４９を使用するクライアントシステム１８０Ｂに転送され得る。
【００５３】
アプリケーションブロック６４５が、データアクセスブロック６３０からのコマンドを受け取るのに応答して、制御ブロック（例えば、１３０Ａ）および入出力ブロック（例えば、１２０Ａ）を介してフィールド装置と通信し、プロセスパラメータを表すデータパケットを受け取る。そのデータパケットが、データアクセスブロック６３０に転送され得る。対応する装置からの特定のデータが、データアクセスブロック６３０から受け取られるコマンド／要求に基づいて受け取られ／収集され得る。アプリケーションブロック６４５はまた、冗長マネージャ６４０によって周期的に送られ得る（動作状態を示す）メッセージに応答（ａｃｋｎｏｗｌｅｄｇｅ）し得る。アプリケーションブロック６４５は、様々なタスクを実施して生産プロセスをサポートし得、特定の環境の要件に応じて周知の方法で実装され得る。
【００５４】
冗長マネージャ６４０は、ステップ２３０で言及されたように、ゲートウェイ１５０が主ゲートウェイとして動作することができるかどうか決定する。かかる決定は、セルフアドレスの決定と、ステップ４３０および４４０で説明された、同じアドレスをもつ別のシステムがすでにネットワーク１７５に接続されているかどうかの検査とに基づいている。冗長マネージャが、ゲートウェイ１５０がゲートウェイとして動作することができると決定すると、ステップ４７０で述べたように、事前に指定されたアドレスが構成され得る。
【００５５】
主ゲートウェイとして動作していない場合、冗長マネージャ６４０が、冗長マネージャ６９０とインターフェースして（主ゲートウェイとして動作しているはずの）ゲートウェイ１６０が動作できるかどうか決定してよい。動作状態（ｏｐｅｒａｔｉｏｎａｌ  ｓｔａｔｕｓ）は、心拍タイプ（ｈｅａｒｔｂｅａｔ  ｔｙｐｅ）のメッセージを周期的に交換することによって判定され得る。かかるメッセージは、シリアル通信パス（１５６）あるいは当業者には明らかであろう他の任意の適切な通信アプローチを使用して交換され得る。ゲートウェイ１６０が動作できない場合、冗長マネージャ６４０が動作してゲートウェイ１５０が適切な再構成（例えば、事前に指定されたゲートウェイアドレスとのインターフェースを構成し、アプリケーションブロック情報を可能なかぎり転送すること）によって主ゲートウェイとなるようにし得る。
【００５６】
主ゲートウェイとして動作している場合、冗長マネージャ６４０が、パス１５６を介して周期的に、ゲートウェイ１５０の動作状態を示す心拍メッセージを送ることが出来る。同様にして、もう一方のシステムの冗長マネージャから心拍が受け取られ得る。冗長マネージャ６４０はさらに、心拍メッセージを送る前に、アプリケーションブロック６４５およびデータアクセスブロック６３０が動作できるかどうかを検査し得る。冗長マネージャ６４０と６９０との間で、様々なタイプのプロトコルが実装されてゲートウェイの動作状態を通信／検査し得、このことは当業者には本明細書で提供される開示を読むことで明らかとなろう。
【００５７】
したがって、本発明のいくつかの態様を実施するのに協調して動作するように、様々なブロックが設計され得る。その説明は、実質上ソフトウェアの形態で実装されたゲートウェイ１５０および１６０の実施態様を参照しながら続けられる。
【００５８】
７．ソフトウェア実装
図７は、本発明の実施形態における、実質上ソフトウェアの形態で実装されたゲートウェイ１５０および／または１６０を表すデジタル・ゲートウェイ７００の詳細を示すブロック図である。システム７００は、中央演算処理装置（ＣＰＵ）７１０などの１つまたは複数のプロセッサ、ランダムアクセスメモリ（ＲＡＭ）７２０、２次メモリ７３０、グラフィックコントローラ７６０、表示ユニット７７０、ネットワークインターフェース７８０、および入力インターフェース７９０を含んでよい。表示ユニット７７０を除くすべての構成要素が、通信パス７５０を介して互いに通信し得、通信パス７５０は関連技術で周知のいくつかのバスを含み得る。図７の構成要素が、以下にさらに詳細に説明される。
【００５９】
ＣＰＵ７１０が、ＲＡＭ７２０に格納された命令を実行して本発明のいくつかの特徴を実現し得る。ＣＰＵ７１０は複数の処理ユニットを含み得、各処理ユニットは潜在的に特定のタスクに合わせて設計されている。あるいは、ＣＰＵ７１０が単一の汎用処理ユニットを含み得る。ＲＡＭ７２０は、通信パス７５０を使用して２次メモリ７３０から命令を受け取ることが出来る。その命令が、上記のセクションで説明されたように、アクティブなゲートウェイとして動作することができるゲートウェイを決定したり、（アクティブな）ゲートウェイを事前に指定されたアドレスでアクセス可能なように構成出来る。
【００６０】
グラフィックコントローラ７６０は、ＣＰＵ７１０から受け取ったデータ／命令に基づいて、表示ユニット７７０への表示信号（例えばＲＧＢフォーマットで）を生成する。表示ユニット７７０は、表示信号によって定義された画像を表示する表示画面を含む。入力インターフェース７９０は、キーボードおよび／またはマウスに対応し得る。
【００６１】
２次メモリ７３０は、ハードドライブ７３５、フラッシュメモリ７３６、およびリムーバブル記憶ドライブ７３７を含み得る。２次メモリ７３０は、システム７００が本発明によるいくつかの特徴を実現できるようにするデータおよびソフトウェア命令（例えば、事前に指定されたアドレス、ＡＰＩなど）を格納し得る。一部またはすべてのデータおよび命令が、リムーバブル記憶ユニット７４０に与えられ得、そのデータおよび命令がリムーバブル記憶ドライブ７３７によって読み取られＣＰＵ７１０に提供され得る。フロッピドライブ、磁気テープドライブ、ＣＤ＿ＲＯＭドライブ、ＤＶＤドライブ、フラッシュメモリ、リムーバブルメモリチップ（ＰＣＭＣＩＡカード、ＥＰＲＯＭ）が、かかるリムーバブル記憶ドライブ７３７の例である。
【００６２】
リムーバブル記憶ユニット７４０は、リムーバブル記憶ドライブ７３７がデータおよび命令を読み取れるように、リムーバブル記憶ドライブ７３７とフォーマット互換の媒体および記憶装置を使用して実装され得る。したがって、リムーバブル記憶ユニット７４０は、その中にコンピュータソフトウェアおよび／またはデータを格納しているコンピュータ可読記憶媒体を含む。
【００６３】
この文書では、用語「コンピュータプログラム製品」は一般にリムーバブル記憶ユニット７４０またはハードドライブ７３５にインストールされたハードディスクを指して用いられる。これらのコンピュータプログラム製品は、ソフトウェアをシステム７００に供給する手段であり、ＣＰＵ７１０がソフトウェア命令を引き出し、その命令を実行して上記の本発明の様々な特徴を実現し得る。
【００６４】
８．結論
以上、本発明の様々な実施形態が説明されてきたが、それらの実施形態が例として提示されているに過ぎず、限定するものではないことを理解されたい。したがって、本発明の広さと範囲は、上記のいかなる例示的な実施形態によっても限定されるべきでなく、添付の特許請求の範囲およびその均等物にのみ従って定義されるべきである。
【図面の簡単な説明】
【００６５】
【図１】本発明のいくつかの態様が実施されてよい例示的な環境のブロック図である。
【図２】本発明の一態様に従って、システムが冗長ゲートウェイのうちの任意のゲートウェイを使用して事前に指定されたアドレスを使用して他のシステムと通信出来る方法を示す流れ図である。
【図３】本発明の実施形態における、目下アクティブなゲートウェイが非動作になった場合に、別の冗長ゲートウェイがアクティブなゲートウェイの役割をする方法を示す流れ図である。
【図４】一実施形態における、主ゲートウェイが（副ゲートウェイに先だって初期化され）アクティブなゲートウェイの役割を引き受け得る方法を示す流れ図である。
【図５】一実施形態における、副ゲートウェイが（主ゲートウェイに先だって初期化され）アクティブなゲートウェイとしての役割をし得る方法を示す流れ図である。
【図６】一実施形態で実装される主および副ゲートウェイの詳細を示すブロック図である。
【図７】一実施形態における、ゲートウェイのソフトウェア実装を示すブロック図である。
【図１】
2008502216.tif 000003
【図２】
2008502216.tif 000004
【図３】
2008502216.tif 000005
【図４】
2008502216.tif 000006
【図５】
2008502216.tif 000007
【図６】
2008502216.tif 000008
【図７】
2008502216.tif 000009
【国際調査報告】
2008502216.tif 000010
2008502216.tif 000011
2008502216.tif 000012