説明

アドレス可能な冗長ゲートウェイを介して他のシステムにアクセスするシステムにおける接続確立の簡略化

本発明の一態様によれば、アクティブなゲートウェイとして動作するように選択された冗長ゲートウェイのどれもが事前に指定されたアドレスによってアクセス可能なように構成される。その結果、ゲートウェイを介して他のシステムと通信するどのシステムも、どの冗長ゲートウェイがアクティブなゲートウェイとして動作しているかに関係なく、事前に指定された同一のアドレスを使用して残りのシステムにアクセスしてよい。その結果、システムの実装が簡略化される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にネットワーク通信に関し、より詳細にはアドレス可能な冗長ゲートウェイを介して他のシステムにアクセスするシステムにおける接続確立を簡略化するための方法および装置に関する。
【背景技術】
【0002】
ゲートウェイは、一般に雑多な環境で動作するシステム間で接続が確立されることを可能にする装置を指す。ゲートウェイは、多くの場合、異種のネットワーク(例えばトークンリング対イーサネット(登録商標))間、異種のアプリケーション(例えば、異なるプロトコルを使用して実施されるファイル転送)間などでの通信を可能にするために設けられる。
【0003】
ゲートウェイは、多くの場合、アドレス可能である(すなわち、アドレスによってアクセスされ得る)ように実装される。関連技術でよく知られているように、ゲートウェイの一方の側にあるシステムが、ゲートウェイを介してそのゲートウェイのアドレスを用いて別のシステムにデータを送ることが出来る。
【0004】
環境は、多くの場合、主に信頼性のために複数の冗長ゲートウェイを含む。すなわち、ゲートウェイの1つが非動作(non−operational)(アクセス不可能(non−accessible))になった場合でも、残りの(冗長)ゲートウェイを使用してシステムが互いに通信できるようにする冗長性が提供され得る。
【0005】
従来の一アプローチでは、冗長ゲートウェイのそれぞれに異なるアドレス(例えば異なるIPアドレス)が与えられ、システムは、冗長ゲートウェイのうちの利用可能(使用可能)なゲートウェイにデータを送ることを余儀なくされる。かかるアプローチでは、システムがゲートウェイのうちの第1のゲートウェイと目下通信していて、その第1のゲートウェイが非動作になった場合、システムは、それ以降、対応する異なるアドレスを使用して残りのゲートウェイにデータを送らなければならない。
【0006】
かかるアプローチの問題の1つは、あるゲートウェイが使用可能であるかどうかを判断し、使用可能なゲートウェイを介してデータを転送する「インテリジェンス」をもつことが各システムに必要になることである。言い換えると、目下使用可能なゲートウェイの1つが非動作になった場合、かかるゲートウェイを介して転送しているシステムは、動的に、そのゲートウェイがアクセス不可能であることを認識し、残りの冗長ゲートウェイの1つを使用することが必要になることがある。
【発明の開示】
【発明が解決しようとする課題】
【0007】
いくつかのシステムでの実装の複雑さ、および動的な判断に関連するオーバーヘッドが、少なくとも一部の環境では受け入れがたいことがある。したがって望ましいのは、アドレス可能な冗長ゲートウェイを介して他のシステムにアクセスするシステムにおける接続確立を簡略化する方法および装置である。
【課題を解決するための手段】
【0008】
本発明の一態様は、アクティブなゲートウェイを介して他のシステムにアクセスする第1のシステムの実装を簡略化する。この場合、アクティブなゲートウェイは、複数の冗長ゲートウェイの任意の1つに対応する。一実施形態では、第1のシステムが、事前に指定されたアドレスを使用してアクティブなゲートウェイと通信するように構成され、アクティブなゲートウェイとして動作するように選択された特定のゲートウェイが、事前に指定されたアドレスによってアクセス可能なように構成される。その結果、第1のシステムが、どのアクティブなゲートウェイを介しても、事前に指定された同一アドレスを使用して残りのシステムにアクセスすることができる。
【0009】
本発明の他の態様によれば、アクティブなゲートウェイが非動作になった場合、冗長ゲートウェイの他の1つが、事前に指定された同一アドレスによってアクセス可能になるように動的に構成される。その結果、第1のシステムが、事前に指定された同一アドレスを使用して残りのシステムにアクセスし続けることができる。
【0010】
本発明のさらなる特徴および利点、ならびに本発明の様々な実施形態の構造および動作が、添付の図面を参照しながら以下に詳細に説明される。図面において、同様な参照番号は全体的に、同一であり機能的に類似である、かつ/または構造的に類似である諸要素を示す。ある要素が初めて登場する図面は、対応する参照番号の一番左の桁によって示される。
【0011】
本発明は、以下に簡潔に説明される添付の図面を参照しながら説明される。
【発明を実施するための最良の形態】
【0012】
1.概観
本発明の一態様によれば、通信が冗長ゲートウェイ間で実施されて、ゲートウェイのうちの1つがアクティブなゲートウェイとして決定されることが可能になる。アクティブなゲートウェイは、事前に指定されたアドレスによってアクセス可能なように構成される。理由はどうあれアクティブなゲートウェイが非動作になると、冗長ゲートウェイのうちの別の1つがアクティブなゲートウェイであると決定され、(事前に指定されたアドレスが、非動作になったアクティブなゲートウェイによって放棄された後)事前に指定されたアドレスで設定される。その結果、冗長ゲートウェイのうちの1つを介して通信するように設計されたすべてのシステムが、単一の(事前に指定された)アドレスを使用して通信するように実装されてよく、したがってシステムの実装が簡略化され得る。
【0013】
本発明のいくつかの態様が、例示を目的とした例を参照しながら以下に説明される。数多くの特定の詳細、関係、および方法は、本発明の十分な理解をもたらすために述べられるのであることを理解されたい。しかし、本発明が、1つまたは複数の特定の詳細なしで、あるいは他の方法などを用いて実施されてよいことは、当業者なら容易に理解されよう。言い換えると、本発明を曖昧にしないために、周知の構造または動作は詳細に示されていない。
【0014】
2.例示的な環境
図1は、本発明のいくつかの態様が実施され得る例示的な生産環境(manufacturing environment)のブロック図である。フィールド装置110A〜110X、入出力ブロック120A〜120C、制御ボックス130A〜130C、トラフィックコントローラ140、処理システム150および160、クライアントシステム180A〜180K、ならびにサーバ190Aおよび190Bを含む、環境100が示されている。各ブロックが、以下にさらに詳細に説明される。
【0015】
例示が目的であり、簡潔にするため、わずかなクライアントシステム、ゲートウェイとして動作可能な2つの処理システム150および160を含む、例示的な環境100が示されている。しかし、典型的な環境では、上記のタイプならびに他のタイプのそれぞれにおいていくつかのブロックを含んでよい。本発明のいくつかの態様が他の環境で実施されてもよい。
【0016】
フィールド装置110A〜110Xは、(温度、流れ、圧力など様々な変数を測定する)センサ、制御要素(例えばバルブ、スイッチ)、および伝送器などの構成要素の全体を表す。煩雑にならないように、各フィールド装置がゲートウェイの1つを介してクライアントシステムから受け取られた問合せに応答するというシナリオで、本発明の様々な態様が説明される。しかし、フィールド装置が生産プロセスをサポートする他のタスクを実施してもよいし、かかるタスクにおいて本発明の様々な態様が適用可能であってもよい。フィールド装置110A〜110Xは、周知の方法で実装されてよい。
【0017】
入出力ブロック120A〜120Dのそれぞれが、トラフィックコントローラ140またはデータが転送されるべき対象であるターゲットアドレスを利用する対応するフィールド装置の1つにデータを転送する。(クライアントシステムからの)コマンドが、対応するフィールド装置110D〜110Xに転送され、それに応じてフィールド装置から受け取られたデータが、トラフィックコントローラ140に送られ得る。
【0018】
制御ボックス130A〜130Dのそれぞれが、対応するフィールド装置(例えばセンサ)からデータを受け取り、そのデータを所定の方法で(例えばある制御アルゴリズムに従って)処理し、制御信号を生成する。次いで、その制御信号が使用されて別のフィールド装置(例えば開閉制御バルブ)を操作する。
【0019】
トラフィックコントローラ140が、処理システムの1つからデータを受け取り、データに通常含まれているターゲット/宛先アドレスを利用して、対応する入出力ボックスまたは制御ボックスにそのデータを転送する。入出力ボックスまたは制御ボックスから受け取られたデータは、ゲートウェイとして動作する対応する処理システムに転送され得る。入出力ブロック、制御ボックス、トラフィックコントローラは、プロセスネットワーク(process network)125に接続される。入出力ブロック120A〜120D、制御ボックス130A〜130D、およびトラフィックコントローラ140は、周知の方法で実装され得る。
【0020】
サーバ190Aおよび190Bが、ゲートウェイによって使用されるべきIPアドレス(以下にさらに詳細に説明される)、プロセスパラメータ(様々な制御ループを構成するのに使用される)、およびフィールド装置から受け取られる様々なデータ(例えばアラーム)などの様々な構成データを格納および供給するリポジトリ(repository)を提供する。通信ネットワーク175(例えばイーサネット(登録商標))に接続されたサーバ190Aおよび190Bが示されている。サーバ190Aおよび190Bは、周知の方法で実装され得る。
【0021】
クライアントシステム180A〜180Kは、他のシステム/装置と通信してよいアプリケーション(例えば、実施されるプロセスの構成、動作、および制御に関する)をサポートするデジタル処理システムを表す。(ネットワーク175に接続された)クライアントシステム180A〜180Kのそれぞれが、ゲートウェイ150および160の1つを介してフィールド装置110A〜110Xと通信する。
【0022】
ゲートウェイ150および160が冗長さを提供するために実装され、このゲートウェイの1つだけが任意の時刻にアクティブなゲートウェイであってよい。実施形態では、ゲートウェイが、異なるネットワークプロトコルおよび媒体を用いて動作するネットワーク同士を接続するように動作し、したがって、なんら修正なしにパケットペイロードが転送される。本発明の態様では、以下にさらに詳細に説明されるように、クライアントシステム180A〜180Kのそれぞれが単一のアドレスをもつように構成され、ゲートウェイ150/160のどちらが目下アクティブなゲートウェイであるかに関係なくフィールド装置と通信することが可能になる。
【0023】
3.システムの実装を簡略化
図2は、本発明の態様に従って、冗長アドレス可能なゲートウェイを介して他のシステムにアクセスするシステムにおいて接続確立が簡略化されることができる方法を示す流れ図である。例示が目的なので、流れ図は図1を参照しながら説明される。しかし本発明のいくつかの態様が他の環境で使用され得る。この方法はステップ201から始まるが、制御はすぐにステップ210に渡る。
【0024】
ステップ210で、ユーザが、各システム(例えばクライアントシステム180A〜180K、サーバシステム190Aおよび190B)を事前に指定されたアドレスと等しいゲートウェイアドレスをもつように構成する。この設定は一般にシステムの実装によって変わり、周知の方法で実施され得る。ステップ220で、複数のゲートウェイが与えられ、各ゲートウェイはアクティブなゲートウェイとして動作する能力をもつ。例えば、以下にさらに詳細に説明されるように、ゲートウェイ150および160のそれぞれが、所与の時点でアクティブなゲートウェイとして動作し得る。
【0025】
ステップ230で、アクティブなゲートウェイとして動作することになる特定のゲートウェイが選択される。一般に、使用可能/アクセス可能であるゲートウェイの1つが、アクティブなゲートウェイとして選択される必要がある。アクティブなゲートウェイを選択する例示的アプローチ、およびアクティブなゲートウェイが故障した場合にそのアクティブなゲートウェイが交換され得る方法が、以下で説明される。例示のために、ゲートウェイ150がアクティブなゲートウェイとして動作するように選択されると仮定する。
【0026】
ステップ240で、アクティブなゲートウェイとして動作するように決定された特定のゲートウェイ(例示を目的とした例では、150)が、(ステップ210で構成された)ゲートウェイアドレスによってアクセス可能なように構成される。いくつかのシステムで、ネットワークに接続するインターフェースが、対応するアドレスでパケットを受け取るように構成される。インターフェースの構成もまた、そのシステムで実行する特定の環境(例えばオペレーティングシステム)によって変わり、周知の方法で実装され得る。
【0027】
ステップ280で、各システムが、ステップ210および240での構成によって、(中間にゲートウェイが必要な場合に)アクティブなゲートウェイを介して他のシステムにデータを送る。当業者には明らかなように、このデータが接続を確立する基礎を形成する。制御がステップ299に渡り、この方法は終了する。
【0028】
したがって、上記の例では、ゲートウェイ150がアクティブなゲートウェイとして動作するように説明されている。本発明の他の態様によれば、理由はどうあれ目下アクティブなゲートウェイが非動作(アクセス不可能)になると、冗長ゲートウェイの他の1つがアクティブなゲートウェイになる。その説明は、目下アクティブなゲートウェイ150がアクセス不可能あるいは非動作になったときに、ゲートウェイ160が本発明の態様に従ってアクティブなゲートウェイとして動作を開始する方法を参照しながら続けられる。
【0029】
4.目下アクティブなゲートウェイが非動作になる
図3は、目下アクティブなゲートウェイが非動作になった場合に、別のゲートウェイが自動的にアクティブなゲートウェイの役割を引き受ける方法を示す流れ図である。例示が目的なので、流れ図は図1および図2を参照しながら説明される。しかし、この流れ図は他の環境で使用され得る。この方法はステップ301から始まるが、制御はすぐにステップ310に渡る。
【0030】
ステップ340で、目下アクティブなゲートウェイが動作できるかどうか決定される。様々なアプローチ(例えば、アクティブなゲートウェイを介して接続を試みる外部のシステムによる、あるいは様々なハードウェア/ソフトウェア構成要素の状態(status)を検査する内部で生成されるコマンドによる)が、目下アクティブなゲートウェイが動作できるかどうか決定するのに利用され得る。接続が失われた場合にはステップ350に、そうでなければステップ340に、制御が渡る。
【0031】
ステップ350で、アクティブなゲートウェイとして動作できる特定の冗長(バックアップ)ゲートウェイが決定/選択される。一般に、動作できる冗長ゲートウェイのうちのどれがアクティブなゲートウェイとして選択され得る。ステップ340および350を実施する例示的アプローチが、以下にさらに詳細に説明される。
【0032】
ステップ360で、ステップ350で選択されたゲートウェイが、その選択されたゲートウェイに事前に指定されたアドレスで到達できるように、(ステップ210で言及された)事前に指定されたアドレスをもつように構成される。その結果、ゲートウェイを介して他のシステムと接触するシステムは、そのシステムにおけるいかなる変更も必要とせずに、選択されたゲートウェイを使用して通信するはずである。この方法はステップ399で終了する。
【0033】
したがって、目下アクティブなゲートウェイが非動作になった場合に、図3のアプローチを使用して、アクティブなゲートウェイが冗長システムのうちのもう1つに変更され得る。冗長システムのどれもがアクティブなゲートウェイとして動作できる場合、環境全体が初期化されるときにゲートウェイのうちの1つをアクティブなゲートウェイとして選択することが望ましいであろう。かかる選択が実施され得る方法は、図4を参照しながら以下に説明される。
【0034】
5.初期化中にアクティブなゲートウェイを選択
本発明の態様によれば、2つのゲートウェイのうちの一方が、デフォルトのアクティブな(主)ゲートウェイとして構成され、もう一方のゲートウェイが副ゲートウェイとして構成される。一般に、最初に初期化する特定のゲートウェイが、(事前に指定されたゲートウェイアドレスをもつように構成されることによって)アクティブなゲートウェイの役割を引き受けるように設計され、残りのゲートウェイはデータ転送に使用されなくてよい。さらに、以下に図4を参照しながら説明されるように、主ゲートウェイおよび副ゲートウェイが、いくつかの条件下でアドレススワッピング(address swapping)に携ることができる。
【0035】
図4は、本発明の一実施形態における、主(すなわちデフォルトでアクティブな)ゲートウェイが、初期化されるときにアクティブなゲートウェイの役割を引き受けることができる方法を示す流れ図である。例示が目的なので、ゲートウェイ150および160がそれぞれ主ゲートウェイおよび冗長ゲートウェイと指定される。
【0036】
(関連技術で周知の)Bootpプロトコルに関連して実装される一仕様(convention)に従って、主ゲートウェイは奇数の装置番号(device number)をもつように構成され、副ゲートウェイがその次に大きな偶数の装置番号をもつように構成される。デバイス番号は、一般にbootpサーバ(例えば、190B)から受け取られる基準アドレス(base address)(偶数)に加えられて、ゲートウェイのIPアドレスを形成する。ゲートウェイ150および160がそれぞれ、主および副ゲートウェイの仕様に一致する、奇数(例えば3)およびその次に大きな偶数(例えば4)の装置インデックス番号をもつように構成される。この方法はステップ401から始まるが、制御はすぐにステップ410に渡る。
【0037】
ステップ410で、主ゲートウェイとして動作するように指定されたゲートウェイが、初期化され得る。例示を目的とした例では、ゲートウェイ150(主)が初期化されるとき、装置インデックス番号が、内部記憶装置から、例えばマイクロソフト(登録商標)製品ファミリの場合であればWindows(登録商標)サービスルーチンを使用するレジストリから、読み取られ得る。したがって、ゲートウェイ150は、対応する装置インデックス番号として3を読み取ることができる。
【0038】
ステップ430で、主ゲートウェイ(150)が、セルフアドレス(self address)を決定する。例えば、ゲートウェイ150は、Bootp要求をサーバ190Bに送ることが出来、それに応答した基準アドレスを受け取ることが出来る。主ゲートウェイのセルフアドレスは、(基準アドレス+装置番号)と等しくなるように計算され得る。装置番号および基準アドレスは、主ゲートウェイ150のセルフアドレスが、各クライアントシステム180A〜180Kで構成される事前に指定されたゲートウェイアドレスと等しくなるように構成される。
【0039】
ステップ440で、主ゲートウェイ(150)が、事前に指定されたゲートウェイアドレスがネットワーク上の別のゲートウェイによってすでに使用されているかどうか判定する。かかる判定を行うために、例えば、ゲートウェイ150は、事前に指定されたアドレスに対しピングコマンド(ping command)(関連技術で周知のICMPエコー要求)を実行し得る。応答が受け取られた場合、事前に指定されたアドレスがすでに使用中であると判定され得る。あるいは、カスタムプロトコルがパス156に実施されて(例えば、RS232シリアルプロトコルを使用して)、副ゲートウェイが事前に指定されたゲートウェイアドレスをすでに使用中であるかどうか判定し得る。
【0040】
事前に指定されたゲートウェイアドレスがすでに使用中である場合にはステップ460に、そうでなければステップ480に、制御が渡る。ステップ460で、ゲートウェイ150が、アドレスがスワップされ得るかどうか判定する。実施形態では、冗長(副)ゲートウェイに構成された事前に指定されたアドレスは、他のアプリケーション(以下に図6を参照しながら説明される)がゲートウェイ160で初期化されない場合にだけスワップされ得る。アドレスがスワップされてよい場合にはステップ470に、そうでなければステップ490に、制御が渡される。
【0041】
ステップ470で、主ゲートウェイ(150)が、事前に指定されたアドレスをもつように構成し、必要な状態情報(アプリケーションに関する)がすべて転送され得る。一実施形態では、冗長ゲートウェイ(160)が、事前に指定されたアドレスを放棄し、装置番号に対応するアドレス(すなわち装置番号4に対応するIPアドレス)を獲得する。アクティブなゲートウェイとしての動作に起因する、冗長ゲートウェイ(160)に含まれるどのようなデータ構造も、主ゲートウェイ(150)によって送られる要求に応答して転送され得る。ステップ480で、主ゲートウェイ(150)がアクティブなゲートウェイとして動作し、ステップ499に制御が渡る。
【0042】
ステップ490で、主ゲートウェイ(150)が遊休状態を続ける。言い換えると、事前に指定されたアドレスが副ゲートウェイ(160)によって使用されているので、副ゲートウェイ(160)がアクティブなゲートウェイとして動作し続ける。制御がステップ499に渡り、この方法は終了する。
【0043】
したがって、主ゲートウェイ150は、様々なシステム間で接続を提供するアクティブなゲートウェイとして動作を開始することができる。その説明は、ゲートウェイ160が、初期化されるときにアクティブなゲートウェイとして動作できる方法を参照しながら続けられる。
【0044】
図5は、本発明の一実施形態における、副(すなわちデフォルトで副)ゲートウェイが、初期化されるときにアクティブなゲートウェイとしての役割を引き受けることの出来る方法を示す流れ図である。この方法はステップ501から始まるが、制御はすぐにステップ510に渡る。
【0045】
ステップ520で、副ゲートウェイ(160)として動作するように指定されたゲートウェイが(主ゲートウェイとして指定されたゲートウェイ150に先だって)初期化され得る。ステップ530で、副ゲートウェイ160が、基準アドレスおよび対応する装置番号の合計を計算することによって、セルフアドレスを決定する。基準アドレスは、(送られた要求に応答して)サーバシステム190Bから受け取られ得る。セルフアドレスは、ゲートウェイ150を参照しながらステップ430で説明された計算に類似の方法で決定される。
【0046】
ステップ540で、副ゲートウェイ(160)が、事前に指定されたアドレスがネットワーク上の別のゲートウェイによってすでに使用されているかどうかを判定する。かかる判定を行うために、例えば、ゲートウェイ160は、ステップ440と同様に、事前に指定されたアドレスに対しピングコマンド(関連技術で周知のICMPエコー要求)を実行してよいし、あるいはカスタムプロトコルが使用されてよい。事前に指定されたアドレスを別のシステムがすでに使用している場合にはステップ590に、そうでなければステップ570に、制御が渡る。
【0047】
ステップ590で、副ゲートウェイ160が遊休状態を続けてよい(すなわち、ゲートウェイ160がユーザに望まれて副システムとして動作を継続してよい)。制御がステップ490に渡り、この方法は終了する。
【0048】
ステップ570で、副ゲートウェイ(160)が、事前に指定されたアドレスでアクセス可能なように構成した。ゲートウェイ160が、装置番号(4)に対応するセルフアドレスを放棄し、事前に指定されたアドレスをもつように構成する。アドレスの構成および放棄は、一般に当該のゲートウェイで使用される具体的なオペレーティングシステムによって変わり、周知の方法で実装されてよい。ステップ580で、副ゲートウェイ(160)がアクティブなゲートウェイとして動作する。制御がステップ599に渡り、この方法は終了する。
【0049】
したがって、ゲートウェイ160は、アクティブなゲートウェイとして動作することができる。その説明は、ゲートウェイ150および160が通信してアクティブなゲートウェイの役割を決定する実施形態を参照しながら続けられる。
6.ゲートウェイの実施形態
図6は、一実施形態におけるゲートウェイ150および160の詳細を示すブロック図である。インバウンドポート(inbound port)610、パーサ(parser)620、データアクセスブロック(data access block)630、冗長マネージャ(redundancy manager)640、アプリケーションブロック(application block)645、およびアウトバウンドインターフェース(outbound interface)649を含む、ゲートウェイ150が示されている。インバウンドポート660、パーサ670、データアクセスブロック680、冗長マネージャ690、アプリケーションブロック695、およびアウトバウンドインターフェース699を含む、ゲートウェイ160が示されている。ゲートウェイ160の様々なブロックは、ゲートウェイ150に含まれる対応するブロックと同様に実装されてよく、煩雑にならないように、ゲートウェイ150に含まれるブロックだけが以下に説明される。
【0050】
インバウンドインターフェース(Inbound interface)610は、電気インターフェース、物理インターフェース、およびプロトコルインターフェースを提供して、異なるクライアントシステム(パス157を介して)およびトラフィックコントローラ140(パス154を介して)からパケットを受け取る。受け取られたパケットはパーサ620に転送される。同様に、アウトバウンドインターフェース649は、電気インターフェース、物理インターフェース、およびプロトコルインターフェースを提供して、様々なクライアントシステムおよびトラフィックコントローラ140へパケットを送る。インバウンドインターフェース610およびアウトバウンドインターフェース649はどちらも、周知の方法で実装されてよい。
【0051】
パーサ620は、受け取られた各パケットを検査し、その受け取られたパケットをデータアクセスブロック630、冗長マネージャ640、およびアプリケーションブロック645のうちの1つに転送する。転送先となる特定のブロックは、一般に、受け取られた各パケットのヘッダコンテンツ(header contents)(例えばプロトコル、ポート番号など)によって変わる。パーサ620は、周知の方法で実装されてよい。
【0052】
データアクセスブロック630は、様々なポートでコマンドを待ち受け、アプリケーションブロック645を開始(その実行を開始)して、そのコマンドを処理する。また、(クライアントシステムから送られた)コマンドがアプリケーションブロック645に転送され、アプリケーションブロック645から受け取られた(フィールド装置から収集された)データが、アウトバウンドインターフェース649に送られ得る。例えば、フィールド装置110Aの入力パラメータ値を求める(クライアントシステム180Bを使用するオペレータからの)コマンドがアプリケーションブロック645に転送され得、(アプリケーションブロック645から受け取られた)対応する応答がアウトバウンドインターフェース649を使用するクライアントシステム180Bに転送され得る。
【0053】
アプリケーションブロック645が、データアクセスブロック630からのコマンドを受け取るのに応答して、制御ブロック(例えば、130A)および入出力ブロック(例えば、120A)を介してフィールド装置と通信し、プロセスパラメータを表すデータパケットを受け取る。そのデータパケットが、データアクセスブロック630に転送され得る。対応する装置からの特定のデータが、データアクセスブロック630から受け取られるコマンド/要求に基づいて受け取られ/収集され得る。アプリケーションブロック645はまた、冗長マネージャ640によって周期的に送られ得る(動作状態を示す)メッセージに応答(acknowledge)し得る。アプリケーションブロック645は、様々なタスクを実施して生産プロセスをサポートし得、特定の環境の要件に応じて周知の方法で実装され得る。
【0054】
冗長マネージャ640は、ステップ230で言及されたように、ゲートウェイ150が主ゲートウェイとして動作することができるかどうか決定する。かかる決定は、セルフアドレスの決定と、ステップ430および440で説明された、同じアドレスをもつ別のシステムがすでにネットワーク175に接続されているかどうかの検査とに基づいている。冗長マネージャが、ゲートウェイ150がゲートウェイとして動作することができると決定すると、ステップ470で述べたように、事前に指定されたアドレスが構成され得る。
【0055】
主ゲートウェイとして動作していない場合、冗長マネージャ640が、冗長マネージャ690とインターフェースして(主ゲートウェイとして動作しているはずの)ゲートウェイ160が動作できるかどうか決定してよい。動作状態(operational status)は、心拍タイプ(heartbeat type)のメッセージを周期的に交換することによって判定され得る。かかるメッセージは、シリアル通信パス(156)あるいは当業者には明らかであろう他の任意の適切な通信アプローチを使用して交換され得る。ゲートウェイ160が動作できない場合、冗長マネージャ640が動作してゲートウェイ150が適切な再構成(例えば、事前に指定されたゲートウェイアドレスとのインターフェースを構成し、アプリケーションブロック情報を可能なかぎり転送すること)によって主ゲートウェイとなるようにし得る。
【0056】
主ゲートウェイとして動作している場合、冗長マネージャ640が、パス156を介して周期的に、ゲートウェイ150の動作状態を示す心拍メッセージを送ることが出来る。同様にして、もう一方のシステムの冗長マネージャから心拍が受け取られ得る。冗長マネージャ640はさらに、心拍メッセージを送る前に、アプリケーションブロック645およびデータアクセスブロック630が動作できるかどうかを検査し得る。冗長マネージャ640と690との間で、様々なタイプのプロトコルが実装されてゲートウェイの動作状態を通信/検査し得、このことは当業者には本明細書で提供される開示を読むことで明らかとなろう。
【0057】
したがって、本発明のいくつかの態様を実施するのに協調して動作するように、様々なブロックが設計され得る。その説明は、実質上ソフトウェアの形態で実装されたゲートウェイ150および160の実施態様を参照しながら続けられる。
【0058】
7.ソフトウェア実装
図7は、本発明の実施形態における、実質上ソフトウェアの形態で実装されたゲートウェイ150および/または160を表すデジタル・ゲートウェイ700の詳細を示すブロック図である。システム700は、中央演算処理装置(CPU)710などの1つまたは複数のプロセッサ、ランダムアクセスメモリ(RAM)720、2次メモリ730、グラフィックコントローラ760、表示ユニット770、ネットワークインターフェース780、および入力インターフェース790を含んでよい。表示ユニット770を除くすべての構成要素が、通信パス750を介して互いに通信し得、通信パス750は関連技術で周知のいくつかのバスを含み得る。図7の構成要素が、以下にさらに詳細に説明される。
【0059】
CPU710が、RAM720に格納された命令を実行して本発明のいくつかの特徴を実現し得る。CPU710は複数の処理ユニットを含み得、各処理ユニットは潜在的に特定のタスクに合わせて設計されている。あるいは、CPU710が単一の汎用処理ユニットを含み得る。RAM720は、通信パス750を使用して2次メモリ730から命令を受け取ることが出来る。その命令が、上記のセクションで説明されたように、アクティブなゲートウェイとして動作することができるゲートウェイを決定したり、(アクティブな)ゲートウェイを事前に指定されたアドレスでアクセス可能なように構成出来る。
【0060】
グラフィックコントローラ760は、CPU710から受け取ったデータ/命令に基づいて、表示ユニット770への表示信号(例えばRGBフォーマットで)を生成する。表示ユニット770は、表示信号によって定義された画像を表示する表示画面を含む。入力インターフェース790は、キーボードおよび/またはマウスに対応し得る。
【0061】
2次メモリ730は、ハードドライブ735、フラッシュメモリ736、およびリムーバブル記憶ドライブ737を含み得る。2次メモリ730は、システム700が本発明によるいくつかの特徴を実現できるようにするデータおよびソフトウェア命令(例えば、事前に指定されたアドレス、APIなど)を格納し得る。一部またはすべてのデータおよび命令が、リムーバブル記憶ユニット740に与えられ得、そのデータおよび命令がリムーバブル記憶ドライブ737によって読み取られCPU710に提供され得る。フロッピドライブ、磁気テープドライブ、CD_ROMドライブ、DVDドライブ、フラッシュメモリ、リムーバブルメモリチップ(PCMCIAカード、EPROM)が、かかるリムーバブル記憶ドライブ737の例である。
【0062】
リムーバブル記憶ユニット740は、リムーバブル記憶ドライブ737がデータおよび命令を読み取れるように、リムーバブル記憶ドライブ737とフォーマット互換の媒体および記憶装置を使用して実装され得る。したがって、リムーバブル記憶ユニット740は、その中にコンピュータソフトウェアおよび/またはデータを格納しているコンピュータ可読記憶媒体を含む。
【0063】
この文書では、用語「コンピュータプログラム製品」は一般にリムーバブル記憶ユニット740またはハードドライブ735にインストールされたハードディスクを指して用いられる。これらのコンピュータプログラム製品は、ソフトウェアをシステム700に供給する手段であり、CPU710がソフトウェア命令を引き出し、その命令を実行して上記の本発明の様々な特徴を実現し得る。
【0064】
8.結論
以上、本発明の様々な実施形態が説明されてきたが、それらの実施形態が例として提示されているに過ぎず、限定するものではないことを理解されたい。したがって、本発明の広さと範囲は、上記のいかなる例示的な実施形態によっても限定されるべきでなく、添付の特許請求の範囲およびその均等物にのみ従って定義されるべきである。
【図面の簡単な説明】
【0065】
【図1】本発明のいくつかの態様が実施されてよい例示的な環境のブロック図である。
【図2】本発明の一態様に従って、システムが冗長ゲートウェイのうちの任意のゲートウェイを使用して事前に指定されたアドレスを使用して他のシステムと通信出来る方法を示す流れ図である。
【図3】本発明の実施形態における、目下アクティブなゲートウェイが非動作になった場合に、別の冗長ゲートウェイがアクティブなゲートウェイの役割をする方法を示す流れ図である。
【図4】一実施形態における、主ゲートウェイが(副ゲートウェイに先だって初期化され)アクティブなゲートウェイの役割を引き受け得る方法を示す流れ図である。
【図5】一実施形態における、副ゲートウェイが(主ゲートウェイに先だって初期化され)アクティブなゲートウェイとしての役割をし得る方法を示す流れ図である。
【図6】一実施形態で実装される主および副ゲートウェイの詳細を示すブロック図である。
【図7】一実施形態における、ゲートウェイのソフトウェア実装を示すブロック図である。

【特許請求の範囲】
【請求項1】
アクティブなゲートウェイを介して複数のシステムにアクセスする第1のシステムの実装を簡略化する方法であって、前記アクティブなゲートウェイが複数の冗長ゲートウェイの任意の1つに対応し、前記方法が、
前記第1のシステムを事前に指定されたアドレスを使用して前記アクティブなゲートウェイと通信するように構成するステップと、
前記複数の冗長ゲートウェイから前記アクティブなゲートウェイとして動作する特定のゲートウェイを選択するステップと、
前記特定のゲートウェイを前記事前に指定されたアドレスによってアクセス可能なように構成するステップとを含む方法。
【請求項2】
前記特定のゲートウェイが動作できるかどうかを決定するステップと、
前記特定のゲートウェイが動作できない場合に前記複数の冗長ゲートウェイのうちの他の1つを前記アクティブなゲートウェイとして選択するステップと、
前記複数の冗長ゲートウェイのうちの前記他の1つを前記事前に指定されたアドレスによってアクセス可能なように構成するステップとをさらに含む請求項1に記載の方法。
【請求項3】
前記決定ステップが、前記特定のゲートウェイに周期的に心拍メッセージを送るステップと、前記心拍メッセージに対する応答が受け取られた場合に前記特定のゲートウェイが動作できると決定するステップとを含む請求項2に記載の方法。
【請求項4】
前記選択ステップが、
前記複数の冗長ゲートウェイそれぞれの初期化時に前記事前に指定されたアドレスがすでに使用中であるかどうかを検査するステップと、
前記事前に指定されたアドレスがまだ使用されていない場合には前記アクティブなゲートウェイとして、そうでなければ遊休状態を続けるように冗長ゲートウェイを構成するステップとを含む請求項1に記載の方法。
【請求項5】
前記複数のゲートウェイのそれぞれが初期化されるときに、対応する装置番号を読み取るステップと、
サーバに送られた要求に応答して基準アドレスを受け取るステップと、
前記基準アドレスに前記装置番号を加算したのと等しくなるようにセルフアドレスを計算するステップとをさらに含む請求項4に記載の方法。
【請求項6】
前記検査ステップが、
前記事前に指定されたアドレスに対しピングコマンドを実行するステップと、
前記ピングコマンドへの応答を検査するステップと、
前記応答が事前に指定されたアドレスを含む場合には前記事前に指定されたアドレスがすでに使用されていると判定し、そうでなければ事前に指定されたアドレスは使用されていないと判定するステップとを含む請求項4に記載の方法。
【請求項7】
前記複数の冗長ゲートウェイが、デフォルトでアクティブなゲートウェイとして動作するように指定された主ゲートウェイと、デフォルトで冗長ゲートウェイとして動作するように指定された副ゲートウェイとを含み、前記検査ステップが前記主ゲートウェイで実施されて前記事前に指定されたアドレスがすでに使用中であると判定され、前記方法が、
前記事前に指定されたアドレスがスワップされてよいかどうか判定するステップと、
前記事前に指定されたアドレスがスワップされてよい場合には前記主ゲートウェイを前記事前に指定されたアドレスによってアクセス可能なように構成するステップとをさらに含む請求項4に記載の方法。
【請求項8】
前記方法が生産プランで実施され、前記第1のシステムがクライアントシステムを含み、前記複数のシステムのそれぞれがフィールド装置および制御装置のうちの1つを含む請求項7に記載の方法。
【請求項9】
複数のシステムと、
事前に指定されたアドレスを使用して前記複数のシステムのそれぞれと通信するアクティブなゲートウェイと通信する第1のシステムと、
複数の冗長ゲートウェイであって、前記アクティブなゲートウェイとして動作するように選択された前記複数の冗長ゲートウェイのどれもが前記事前に指定されたアドレスによってアクセス可能なように構成される複数の冗長ゲートウェイとを含むネットワーク環境。
【請求項10】
前記複数のゲートウェイが、
前記アクティブなゲートウェイが動作できるかどうかを決定し、
前記アクティブなゲートウェイが動作できない場合に前記複数の冗長ゲートウェイのうちの他の1つを前記アクティブなゲートウェイとして選択し、
前記複数の冗長ゲートウェイのうちの前記他の1つを前記事前に指定されたアドレスによってアクセス可能なように構成するように動作可能である請求項9に記載のネットワーク環境。
【請求項11】
前記決定が、前記アクティブなゲートウェイに周期的に心拍メッセージを送り、前記心拍メッセージに対する応答が受け取られた場合に前記アクティブなゲートウェイが動作できると結論を下すことによって実施される請求項10に記載のネットワーク環境。
【請求項12】
前記選択が、
前記複数の冗長ゲートウェイそれぞれの初期化時に前記事前に指定されたアドレスがすでに使用中であるかどうかを検査することと、
前記事前に指定されたアドレスがまだ使用されていない場合には前記アクティブなゲートウェイとして、そうでなければ遊休状態を続けるように冗長ゲートウェイを構成することとによって実施される請求項9に記載のネットワーク環境。
【請求項13】
前記複数の冗長ゲートウェイが、デフォルトでアクティブなゲートウェイとして動作するように指定された主ゲートウェイと、デフォルトで冗長ゲートウェイとして動作するように指定された副ゲートウェイとを含み、前記検査が前記主ゲートウェイで実施されて前記事前に指定されたアドレスがすでに使用中であると判定され、前記主ゲートウェイが、
前記事前に指定されたアドレスがスワップされてよいかどうか判定し、
前記事前に指定されたアドレスがスワップされてよい場合に前記主ゲートウェイを前記事前に指定されたアドレスによってアクセス可能なように構成するように動作可能である請求項12に記載のネットワーク環境。
【請求項14】
前記第1のシステムがクライアントシステムを含み、前記複数のシステムのそれぞれがフィールド装置および制御装置のうちの1つを含む請求項13に記載のネットワーク環境。
【請求項15】
複数の冗長ゲートウェイのそれぞれに、アクティブなゲートウェイを介して複数のシステムにアクセスする第1のシステムの実装を簡略化させる、1つまたは複数の命令シーケンスをもつコンピュータ可読媒体であって、前記アクティブなゲートウェイが複数の冗長ゲートウェイのうちの任意の1つに対応し、前記1つまたは複数の命令シーケンスの1つまたは複数のプロセッサによる実行が、前記1つまたは複数のプロセッサに、
前記アクティブなゲートウェイとして選択された前記複数の冗長ゲートウェイのうちの任意の冗長ゲートウェイを前記事前に指定されたアドレスによってアクセス可能なように構成させる行為を実施させて、
前記第1のシステムが前記アクティブなゲートウェイを介して通信する前記事前に指定されたアドレスだけを使用することによって前記複数のシステムにアクセスできるコンピュータ可読媒体。
【請求項16】
前記アクティブなゲートウェイが動作できるかどうかを決定することと、
前記アクティブなゲートウェイが動作できない場合に前記複数の冗長ゲートウェイのうちの他の1つを前記アクティブなゲートウェイとして選択することと、
前記複数の冗長ゲートウェイのうちの前記他の1つを前記事前に指定されたアドレスによってアクセス可能なように構成することとをさらに含む請求項15に記載のコンピュータ可読媒体。
【請求項17】
前記決定が、前記アクティブなゲートウェイに周期的に心拍メッセージを送ることと、前記心拍メッセージに対する応答が受け取られた場合に前記アクティブなゲートウェイが動作できると決定することとを含む請求項16に記載のコンピュータ可読媒体。
【請求項18】
前記選択が、
前記複数の冗長ゲートウェイそれぞれの初期化時に前記事前に指定されたアドレスがすでに使用中であるかどうかを検査することと、
前記事前に指定されたアドレスがまだ使用されていない場合には前記アクティブなゲートウェイとして、そうでなければ遊休状態を続けるように冗長ゲートウェイを構成することとを含む請求項15に記載のコンピュータ可読媒体。
【請求項19】
前記複数のゲートウェイのそれぞれが初期化されるときに、対応する装置番号を読み取ることと、
サーバに送られた要求に応答して基準アドレスを受け取ることと、
前記基準アドレスに前記装置番号を加算したのと等しくなるようにセルフアドレスを計算することとをさらに含む請求項18に記載のコンピュータ可読媒体。
【請求項20】
前記検査が、
前記事前に指定されたアドレスに対しピングコマンドを実行することと、
前記ピングコマンドへの応答を検査することと、
前記応答が事前に指定されたアドレスを含む場合には前記事前に指定されたアドレスがすでに使用されていると判定し、そうでなければ事前に指定されたアドレスは使用されていないと判定することとを含む請求項18に記載のコンピュータ可読媒体。
【請求項21】
前記複数の冗長ゲートウェイが、デフォルトでアクティブなゲートウェイとして動作するように指定された主ゲートウェイと、デフォルトで冗長ゲートウェイとして動作するように指定された副ゲートウェイとを含み、前記検査が前記主ゲートウェイで実施されて前記事前に指定されたアドレスがすでに使用中であると判定され、
前記事前に指定されたアドレスがスワップされてよいかどうか判定することと、
前記事前に指定されたアドレスがスワップされてよい場合には前記主ゲートウェイを前記事前に指定されたアドレスによってアクセス可能なように構成することとをさらに含む請求項18に記載のコンピュータ可読媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2008−502216(P2008−502216A)
【公表日】平成20年1月24日(2008.1.24)
【国際特許分類】
【出願番号】特願2007−515545(P2007−515545)
【出願日】平成17年6月2日(2005.6.2)
【国際出願番号】PCT/US2005/019332
【国際公開番号】WO2005/122533
【国際公開日】平成17年12月22日(2005.12.22)
【出願人】(500575824)ハネウェル・インターナショナル・インコーポレーテッド (1,504)
【Fターム(参考)】