(57)【要約】ＯＰＣリダイレクションマネージャが、ターゲットＯＰＣサーバに障害が発生したときに適切な処置を取り、バッドステータスがクライアントに返されないように保証するのに必要な情報を維持する。ターゲットＯＰＣデータアクセスおよび／またはアラーム／イベントサーバ間のシームレスなフェイルオーバを必要とする任意の既存のＯＰＣクライアントが、１次サーバに接続する代わりにリダイレクションマネージャの独自に構成されるインスタンスに接続する。クライアントアプリケーションは、引き続きＯＰＣ関連のタスクを通常通り実施する。各クライアント接続は独自のものであるので、リダイレクションマネージャ自体は単一障害点ではない。構成される各リダイレクションマネージャインスタンスは、障害イベントにサブスクライブすることにより、ターゲットサーバモードおよびターゲットサーバ自体のヘルスを監視する。
2005531855.tif 000002
【特許請求の範囲】
【請求項１】
ＯＰＣリダイレクションマネージャの第１のインスタンスに対する第１の専用接続を第１のＯＰＣクライアントに付与することにより、前記第１のＯＰＣクライアントを求める第１のクライアント接続要求に応答するステップと、
前記ＯＰＣリダイレクションマネージャの第２のインスタンスに対する第２の専用接続を第２のＯＰＣクライアントに付与することにより、前記第２のＯＰＣクライアントを求める第２のクライアント接続要求に応答するステップと、
を含むリダイレクション管理方法。
【請求項２】
前記ＯＰＣリダイレクションマネージャの前記第２のインスタンスに障害が発生したとき、前記第２のＯＰＣクライアントの前記第２の専用接続を失うステップと、
前記第１のＯＰＣクライアントに対する前記第１の専用接続を維持するステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
第１のターゲットＯＰＣサーバに接続するステップと、
前記第１のターゲットＯＰＣサーバ用のＯＰＣサーバステータス変更プロバイダに接続するステップと、
前記第１のターゲットＯＰＣサーバをバックアップするように構成された第２のターゲットＯＰＣサーバを含む少なくとも１つの追加のターゲットＯＰＣサーバに接続するステップと、
をさらに含む請求項１に記載の方法。
【請求項４】
前記第１のターゲットＯＰＣサーバ用の前記ＯＰＣサーバステータス変更プロバイダからａｃｔｉｖｅ−ｓｅｒｖｅｒ−ｆａｉｌｅｄイベントを受信したとき、前記第２のターゲットＯＰＣサーバへの切換えを実行するステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記第１のターゲットＯＰＣサーバが現在利用可能であるという通知を前記ＯＰＣサーバステータス変更プロバイダから受信するステップと、
前記第１のターゲットＯＰＣサーバに接続するステップとをさらに含む、請求項４に記載の方法。
【請求項６】
前記第１のＯＰＣクライアントからＯＰＣ  ａｄｄ−ｇｒｏｕｐ要求を受信するステップと、
前記ＯＰＣ  ａｄｄ−ｇｒｏｕｐ要求を前記第１のターゲットＯＰＣサーバに転送し、前記ＯＰＣ  ａｄｄ−ｇｒｏｕｐ要求をサービスするステップと、
前記第１のターゲットＯＰＣサーバからｒｅｑｕｅｓｔ−ｃｏｍｐｌｅｔｅイベントを受信したとき、少なくとも１つのグループを作成することにより、前記ＯＰＣ  ａｄｄ−ｇｒｏｕｐ要求に関連する複数のａｄｄ−ｇｒｏｕｐインターフェースを実現するステップと、
前記ＯＰＣ  ａｄｄ−ｇｒｏｕｐ要求を前記少なくとも１つの追加のターゲットＯＰＣサーバのそれぞれに転送し、前記少なくとも１つのグループを非アクティブとして格納するステップと、
前記少なくとも１つのグループを含む、前記ＯＰＣ  ａｄｄ−ｇｒｏｕｐ要求に関係する情報を格納するステップとをさらに含む、請求項３に記載の方法。
【請求項７】
前記第１のＯＰＣクライアントからＯＰＣ  ｏｎ−ｄａｔａ−ｃｈａｎｇｅ要求を受信するステップと、
前記第１のターゲットＯＰＣサーバと第１のシンクオブジェクトとの間で接続を確立するステップと、
前記第２のターゲットＯＰＣサーバと第２のシンクオブジェクトとの間で接続を確立するステップと、
前記第１のターゲットＯＰＣサーバから前記第１のＯＰＣクライアントに第１のｏｎ−ｄａｔａ−ｃｈａｎｇｅ要求を与えるステップと、
前記少なくとも１つのグループを含む、前記ＯＰＣ  ｏｎ−ｄａｔａ−ｃｈａｎｇｅ要求に関係する情報を格納するステップとをさらに含む、請求項６に記載の方法。
【請求項８】
前記第１のターゲットＯＰＣサーバ用の前記ＯＰＣサーバステータス変更プロバイダからａｃｔｉｖｅ−ｓｅｒｖｅｒ−ｆａｉｌｅｄイベントを受信したとき、前記第２のターゲットＯＰＣサーバへの切換えを実行するステップと、
前記第２のターゲットＯＰＣサーバ上で前記少なくとも１つのグループを活動化するステップと、
前記第２のターゲットＯＰＣサーバから前記第１のＯＰＣクライアントに第２のｏｎ−ｄａｔａ−ｃｈａｎｇｅ要求を与えるステップとをさらに含む、請求項７に記載の方法。
【請求項９】
前記第１のターゲットＯＰＣサーバが現在利用可能であるという通知を前記ＯＰＣサーバステータス変更プロバイダから受信するステップと、
前記第１のターゲットＯＰＣサーバに接続するステップと、
以前に格納した情報を使用して、前記少なくとも１つのグループを前記第１のターゲットＯＰＣサーバに追加するステップとをさらに含む、請求項８に記載の方法。
【請求項１０】
ＯＰＣクライアントからのＯＰＣ  ｃｒｅａｔｅ−ｅｖｅｎｔ−ｓｕｂｓｃｒｉｐｔｉｏｎ要求に応答して、前記ＯＰＣ  ｃｒｅａｔｅ−ｅｖｅｎｔ−ｓｕｂｓｃｒｉｐｔｉｏｎ要求に関連するインターフェースを実現するステップと、
前記ＯＰＣ  ｃｒｅａｔｅ−ｅｖｅｎｔ−ｓｕｂｓｃｒｉｐｔｉｏｎ要求をサービス用の１次ターゲットＯＰＣサーバに転送するステップと、
前記ＯＰＣ  ｃｒｅａｔｅ−ｅｖｅｎｔ−ｓｕｂｓｃｒｉｐｔｉｏｎ要求を、非アクティブとして少なくとも１つの追加のターゲットＯＰＣサーバに転送するステップと、前記少なくとも１つの追加のターゲットＯＰＣサーバは、前記１次ターゲットＯＰＣサーバをバックアップするように構成された２次ターゲットＯＰＣサーバを含み、
状態情報を含む、ＯＰＣ  ｃｒｅａｔｅ−ｅｖｅｎｔ−ｓｕｂｓｃｒｉｐｔｉｏｎ要求に関係する情報を格納するステップと、
を含むリダイレクション管理方法。
【請求項１１】
前記１次ターゲットＯＰＣサーバに接続するステップと、
前記１次ターゲットＯＰＣサーバ用のＯＰＣサーバステータス変更プロバイダに接続するステップと、
前記少なくとも１つの追加のターゲットＯＰＣサーバに接続するステップとをさらに含む請求項１０に記載の方法。
【請求項１２】
前記１次ターゲットＯＰＣサーバがＯＰＣアラーム／イベントをサポートすることを判定するステップと、
ａｌａｒｍｓ−ａｎｄ−ｅｖｅｎｔｓモジュールをロードするステップと、
をさらに含む請求項１１に記載の方法。
【請求項１３】
前記１次ターゲットＯＰＣサーバから前記ＯＰＣクライアントに少なくとも１つのｏｎ−ｅｖｅｎｔ要求を与えるステップと、
前記１次ターゲットＯＰＣサーバ用の前記ＯＰＣサーバステータス変更プロバイダからａｃｔｉｖｅ−ｓｅｒｖｅｒ−ｆａｉｌｅｄイベントを受信したとき、前記２次ターゲットＯＰＣサーバへの切換えを実施するステップと、
前記ａｌａｒｍｓ−ａｎｄ−ｅｖｅｎｔｓモジュールに切換えを通知するステップとをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記２次ＯＰＣターゲットサーバからすべてのイベントを取り出し、前記イベントを前記ＯＰＣクライアントに転送して、イベントの紛失を防止するステップと、
前記２次ターゲットＯＰＣサーバから前記ＯＰＣクライアントにＯＰＣ  ｏｎ−ｅｖｅｎｔ要求を与えるステップとをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記１次ターゲットＯＰＣサーバが現在利用可能であるという通知を前記ＯＰＣサーバステータス変更プロバイダから受信するステップと、
前記１次ターゲットＯＰＣサーバに接続するステップと、
前記状態情報で前記１次ターゲットＯＰＣサーバを確立するステップとをさらに含む、請求項１３に記載の方法。
【請求項１６】
ＯＰＣ要求をサービスすることができる第１のＯＰＣサーバと、
前記第１のＯＰＣサーバをバックアップするように構成された第２のＯＰＣサーバと、
第１のＯＰＣクライアントの代わりに、前記第１のＯＰＣサーバまたは前記第２のＯＰＣサーバにＯＰＣ要求を転送することができる第１のリダイレクションマネージャとを備え、
前記第１のＯＰＣクライアントは、前記第１のＯＰＣクライアント自体の前記第１のリダイレクションマネージャとの専用接続を確立することができ、
前記第１のリダイレクションマネージャは、前記第１のＯＰＣサーバの障害時に、前記第２のＯＰＣサーバに接続してシームレスなサービスを前記第１のＯＰＣクライアントに提供することができる、
ＯＰＣリダイレクション管理システム。
【請求項１７】
前記第１のリダイレクションマネージャは、前記ＯＰＣ要求に関連する情報を格納して、前記第１のＯＰＣサーバの障害時に使用することができる、請求項１６に記載のシステム。
【請求項１８】
第３ＯＰＣサーバと、
前記第３ＯＰＣサーバをバックアップするように構成された第４ＯＰＣサーバと、
第２のリダイレクションマネージャとをさらに備え、
第２のＯＰＣクライアントは、前記第２のリダイレクションマネージャとの第２のＯＰＣクライアント自体の専用接続を確立することができ、
前記第２のリダイレクションマネージャは、前記第３ＯＰＣサーバの障害時に、前記第４ＯＰＣサーバに接続してシームレスなサービスを前記第２のＯＰＣクライアントに提供することができる、請求項１６に記載のシステム。
【請求項１９】
前記第１のＯＰＣサーバは、第３ＯＰＣサーバをバックアップするように構成可能である、請求項１６に記載のシステム。
【請求項２０】
前記ＯＰＣ要求がデータアクセス型である、請求項１６に記載のシステム。
【請求項２１】
前記ＯＰＣ要求がアラーム／イベント型である、請求項１６に記載のシステム。
【請求項２２】
前記第１のＯＰＣサーバ、１次ノードステータス変更プロバイダ、および１次ＯＰＣステータス変更プロバイダを備える１次サーバノードと、
第２のＯＰＣサーバ、２次ノードステータス変更プロバイダ、および２次ＯＰＣステータス変更プロバイダを備える２次サーバノードと、
前記第１のＯＰＣクライアント、前記第１のリダイレクションマネージャ、クライアントノードステータス変更プロバイダ、およびクライアントＯＰＣステータス変更プロバイダを備えるクライアントノードとをさらに備える、請求項１６に記載のシステム。
【請求項２３】
前記第１のリダイレクションマネージャは、
データアクセス／サブスクリプション状態データと、
切換えマネージャとを備える、請求項２２に記載のシステム。
【請求項２４】
前記第１のＯＰＣサーバがアイテムキャッシュおよび条件データベースを備える、請求項２２に記載のシステム。
【請求項２５】
前記第１のＯＰＣクライアントはプロセス制御アプリケーションである、請求項１６に記載のシステム。
【請求項２６】
前記第１のＯＰＣサーバは、装置と通信して前記ＯＰＣ要求をサービスし、前記ＯＰＣ要求の結果として、第１のＯＰＣクライアントは前記装置についての情報を受信する、請求項１６に記載のシステム。
【請求項２７】
方法を実行する実行可能命令を格納する機械可読媒体であって、前記方法は、
ＯＰＣリダイレクションマネージャの第１のインスタンスに対する第１の専用接続を第１のＯＰＣクライアントを付与することにより、前記第１のＯＰＣクライアントを求める第１のクライアント接続に応答するステップと、
前記ＯＰＣリダイレクションマネージャの第２のインスタンスに対する第２の専用接続を第２のＯＰＣクライアントを付与することにより、前記第２のＯＰＣクライアントを求める第２のクライアント接続に応答するステップと、
前記ＯＰＣリダイレクションマネージャの前記第２のインスタンスに障害が発生したときに、前記第２のＯＰＣクライアント用の前記第２の専用接続を失うステップと、
前記第１のＯＰＣクライアント用の前記第１の専用接続を維持するステップと、
を含む機械可読媒体。
【請求項２８】
第１のターゲットＯＰＣサーバに接続するステップと、
前記第１のターゲットＯＰＣサーバ用のＯＰＣサーバステータス変更プロバイダに接続するステップと、
前記第１のターゲットＯＰＣサーバをバックアップするように構成された第２のターゲットＯＰＣサーバに接続するステップと、
前記第１のターゲットＯＰＣサーバ用の前記ＯＰＣサーバステータス変更プロバイダからａｃｔｉｖｅ−ｓｅｒｖｅｒ−ｆａｉｌｅｄイベントを受信したとき、前記第２のターゲットＯＰＣサーバへの切換えを実施するステップとをさらに含む、請求項２７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、クライアントによって行われたすべてのＯＰＣコールを、データソースと通信する実際のＯＰＣサーバに転送する中間ＯＰＣサーバであるＯＰＣサーバリダイレクションマネージャに関する。詳細には、ＯＰＣサーバリダイレクションマネージャは、ターゲットＯＰＣサーバに障害が発生したときに適切な処置を取り、バッドステータスがクライアントに返されないように保証するのに必要な情報を維持する。
【背景技術】
【０００２】
本願は、２００２年６月２８日出願の「ＯＰＣ  Ｓｅｒｖｅｒ  Ｒｅｄｉｒｅｃｔｉｏｎ  Ｍａｎａｇｅｒ」という名称の米国仮特許出願第６０／３９２４９３号の優先権を主張するものである。
【０００３】
ＯＬＥ  ＦＯＲ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ（登録商標）（ＯＰＣ（登録商標））は、オートメーションシステムが情報を共有することを可能にすることによって統合を容易にする、新しく台頭しつつある業界標準であり、他の産業オートメーション、プロセス制御、ならびにプラントまたは工場向けの他のビジネスシステムと相互運用可能である。（Ｏ−Ｐ−Ｃという文字は、本来はＯｂｊｅｃｔ  Ｌｉｎｋｉｎｇ  ａｎｄ  Ｅｍｂｅｄｄｉｎｇ（ＯＬＥ）  ｆｏｒ  Ｐｒｏｃｅｓｓ  Ｃｏｎｔｒｏｌ（プロセス制御用オブジェクトリンキングおよび埋め込み）を表していたが、ＯＬＥがオブジェクト指向からオブジェクトベースに再構築され、ＡｃｔｉｖｅＸと改名された）。ＯＰＣ規格は、ＯＰＣ  Ｆｏｕｎｄａｔｉｏｎ（登録商標）によって保守される、メーカ独自ではない技術仕様である。
【０００４】
過去には、各ソフトウェアまたはアプリケーションの開発者は、ハードウェアフィールド装置とデータを交換するのにカスタムインターフェース（またはサーバ／ドライバ）を書く必要があった。ＯＰＣ規格は、この作業を１度行い、人間機械インターフェース（ＨＭＩ）、監視制御およびデータ取得（ＳＣＡＤＡ）コントロール、およびカスタムアプリケーションで容易に再利用することを可能にする共通インターフェースを与えることによってこの習慣を変えた。
【０００５】
ＯＰＣ仕様は、Ｍｉｃｒｏｓｏｆｔ（登録商標）ＯＬＥ（現在はＡｃｔｉｖｅＸ）テクノロジ、Ｃｏｍｐｏｎｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ（ＣＯＭ）テクノロジ、およびＤｉｓｔｒｉｂｕｔｅｄ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ（ＤＣＯＭ）テクノロジに基づく。ＯＰＣは、プロセス制御アプリケーション、製造アプリケーション、およびオートメーションアプリケーションで使用するための標準の１組のインターフェース、プロパティ、およびメソッドを定義する。こうしたアプリケーションには、分散制御システム、プログラマブルロジックコントローラ、入出力（ＩＯ）システム、スマートフィールド装置、およびその他のリアルタイム情報のサーバが含まれる。ＡｃｔｉｖｅＸ／ＣＯＭテクノロジは、個々のソフトウェアコンポーネントがどのように対話し、データを共有するかを定義する。Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｖｉｓｕａｌ  Ｂａｓｉｃオブジェクト指向コンポーネント、ＯＬＥオートメーションを使用することにより、ＯＰＣは、ローカルエリアネットワーク（ＬＡＮ）、リモートサイト、またはインターネットを介してオフィスアプリケーションにプラントフロアデータを提供することができる。
【０００６】
ＯＰＣは、エンドユーザおよびハードウェア／ソフトウェア製造業者に、オープンな接続性、高い性能、およびベンダ生産性の向上を含む多くの利点をもたらす。ＯＰＣはオープンな接続性を実現し、より多種多様なプラントフロア装置およびクライアントソフトウェアの中からの選択肢をユーザに与え、ベストインブリード（ｂｅｓｔ−ｉｎ−ｂｒｅｅｄ）アプリケーションのより良い利用を可能にする。ＯＰＣはオープンな規格であるので、ソフトウェア／ハードウェア製造業者が接続性の問題に充てる時間が少なくなり、アプリケーションの問題に充てる時間がより多くなり、かなりの重複する労力が不要になる。ＯＰＣは、オートメーション／制御アプリケーション、フィールド装置、ビジネス／オフィスアプリケーションの間の相互運用性を促進する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
あるリダイレクションシステムは、本発明によるリダイレクションマネージャに対して下位の機能を提供し、それは異なるアーキテクチャを有するように見える。あるリダイレクションシステムは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）サービスとして実現され、一方、本発明によるリダイレクションマネージャは、障害の影響を制限するのに専用接続手法を使用する。リダイレクションシステムはＯＰＣデータアクセスを実現し、一方、本発明によるリダイレクションマネージャは、ＯＰＣデータアクセスならびにＯＰＣアラーム／イベントを実装するリダイレクションサーバを有する。リダイレクションシステムは、ｐｉｎｇ機構を介してサーバ／ノードを実現するように見え、一方、本発明によるリダイレクションマネージャは、ネットワークトラフィックオーバヘッドがより少ない監視手法を使用する。あるＯＰＣサーバは、性能および整合性の理由で内部ＯＰＣサーバデータベースを同期する。本発明によるリダイレクションマネージャは任意選択でこの機能を提供する。
【０００８】
他のリダイレクションシステムは、すべてのクライアントが接続するサービスを提供する。そのサービスに障害が発生した場合、接続されるすべてのクライアントが影響を受ける。対照的に、本発明によるリダイレクションマネージャを使用するクライアントは専用接続を有する。専用接続に障害が発生した場合、影響を受けるのは接続されたクライアントだけである。従来のリダイレクションシステムは、検出のためにｐｉｎｇ機構を使用する。ｐｉｎｇ機構は、ターゲットノードまたはサーバに障害が発生したときに通知プロバイダを使用してリダイレクションマネージャに警報する、本発明によるリダイレクションマネージャよりも効率が低い。
【０００９】
本発明は、ターゲットＯＰＣサーバに障害が発生したときに適切な処置を取り、かつバッドステータスがクライアントに返されないように保証するのに必要な情報を維持することによってこうした問題を克服する。ターゲットＯＰＣデータアクセスおよび／またはアラーム／イベントサーバ間のシームレスなフェイルオーバを必要とする任意の既存のＯＰＣクライアントが、１次サーバに接続する代わりにリダイレクションマネージャの独自に構成されるインスタンスに接続する。クライアントアプリケーションは、引き続きＯＰＣ関連のタスクを通常通り実施する。各クライアント接続は独自のものであるので、リダイレクションマネージャ自体は単一障害点ではない。構成される各リダイレクションマネージャインスタンスは、障害イベントにサブスクライブすることにより、ターゲットサーバノードおよびターゲットサーバ自体のヘルスを監視する。（ｐｉｎｇを介する）ポーリングではなくサブスクリプションを使用することにより、ネットワークトラフィックが低減される。本発明はまた、以下に説明するように多くの追加の利点ももたらす。
【課題を解決するための手段】
【００１０】
本発明の一実施形態はリダイレクション管理方法である。第１のＯＰＣクライアントを求める第１のクライアント接続要求に応答して、第１の専用接続が、第１のＯＰＣクライアントからＯＰＣリダイレクションマネージャの第１のインスタンスに付与される。第２のＯＰＣクライアントを求める第２のクライアント接続要求に応答して、第２の専用接続が、第２のＯＰＣクライアントからＯＰＣリダイレクションマネージャの第２のインスタンスに付与される。一実施形態によれば、ＯＰＣリダイレクションマネージャの第２のインスタンスに障害が発生したときに第２のＯＰＣクライアント用の第２の専用接続が失われた場合であっても、第１のＯＰＣクライアント用の第１の専用接続が維持される。第１のターゲットＯＰＣサーバに対する接続が行われる。第１のターゲットＯＰＣサーバ用のＯＰＣサーバステータス変更プロバイダに対する別の接続が行われる。別の実施形態によれば、第１のターゲットＯＰＣサーバをバックアップするように構成された第２のターゲットＯＰＣサーバを含む少なくとも１つの追加のターゲットＯＰＣサーバに対する追加の接続が行われる。
【００１１】
第１のターゲットＯＰＣサーバ用のＯＰＣサーバステータス変更プロバイダからａｃｔｉｖｅ−ｓｅｒｖｅｒ−ｆａｉｌｅｄ（アクティブ−サーバ−故障）イベントを受信したとき、第２のターゲットＯＰＣサーバへの切換えが実行される。第１のターゲットＯＰＣサーバが現在利用可能であるという通知がＯＰＣサーバステータス変更プロバイダから受信され、第１のターゲットＯＰＣサーバに対する接続が行われる。
【００１２】
障害が発生していないと仮定すると、ＯＰＣ  ａｄｄ−ｇｒｏｕｐ（追加−グループ）要求が第１のＯＰＣクライアントから受信され、それが第１のターゲットＯＰＣサーバに転送され、サービスされる。第１のターゲットＯＰＣサーバからｒｅｑｕｅｓｔ−ｃｏｍｐｌｅｔｅ（要求―完了）イベントを受信したとき、少なくとも１つのグループを作成することにより、ＯＰＣ  ａｄｄ−ｇｒｏｕｐ要求に関連する複数のａｄｄ−ｇｒｏｕｐインターフェースが実現される。ＯＰＣａｄｄ−ｇｒｏｕｐ要求は、追加のターゲットＯＰＣサーバのそれぞれに転送され、そのグループが非アクティブとして格納される。そのグループを含む、ＯＰＣ  ａｄｄ−ｇｒｏｕｐ要求に関係する情報が格納される。
【００１３】
ＯＰＣ  ｏｎ−ｄａｔａ−ｃｈａｎｇｅ（オン−データ−変更）要求が、リダイレクションマネージャによって第１のＯＰＣクライアントから受信され、第１のターゲットＯＰＣサーバと第１のシンクオブジェクトとの間で接続が確立される。シンクオブジェクトはリダイレクションマネージャに属する。第２のターゲットＯＰＣサーバと第２のシンクオブジェクトとの間で別の接続が確立される。少なくとも１つのグループを含む、ＯＰＣ  ｏｎ−ｄａｔａ−ｃｈａｎｇｅ要求に関係する情報が格納される。リダイレクションマネージャの、第１のターゲットＯＰＣサーバからのｏｎ−ｄａｔａ−ｃｈａｎｇｅ要求の受信に続いて、第１のｏｎ−ｄａｔａ−ｃｈａｎｇｅ要求がリダイレクションマネージャから第１のＯＰＣクライアントに与えられる。第１のターゲットＯＰＣサーバ用のＯＰＣサーバステータス変更プロバイダからａｃｔｉｖｅ−ｓｅｒｖｅｒ−ｆａｉｌｅｄイベントを受信したとき、第２のターゲットＯＰＣサーバへの切換えが実行される。リダイレクションマネージャの、第２のターゲットＯＰＣサーバからのｏｎ−ｄａｔａ−ｃｈａｎｇｅ要求の受信に続いて、第２のターゲットＯＰＣサーバ上で少なくとも１つのグループが活動化され、第２のｏｎ−ｄａｔａ−ｃｈａｎｇｅ要求が、リダイレクションマネージャから第１のＯＰＣクライアントに与えられる。第１のターゲットＯＰＣサーバが現在利用可能であるという通知が、ＯＰＣサーバステータス変更プロバイダから受信され、第１のターゲットＯＰＣサーバに対して接続が行われ、以前に格納された情報が使用されてグループが第１のターゲットＯＰＣサーバに追加される。
【００１４】
本発明の別の実施形態はリダイレクション管理方法である。ＯＰＣクライアントからのＯＰＣ  ｃｒｅａｔｅ−ｅｖｅｎｔ−ｓｕｂｓｃｒｉｐｔｉｏｎ（作成−イベント−サブクリップション）要求に応答して、ＯＰＣ  ｃｒｅａｔｅ−ｅｖｅｎｔ−ｓｕｂｓｃｒｉｐｔｉｏｎ要求に関連するインターフェースが実現される。ＯＰＣ  ｃｒｅａｔｅ−ｅｖｅｎｔ−ｓｕｂｓｃｒｉｐｔｉｏｎ要求がサービス用の１次ターゲットＯＰＣサーバに転送される。ＯＰＣ  ｃｒｅａｔｅ−ｅｖｅｎｔ−ｓｕｂｓｃｒｉｐｔｉｏｎ要求は、非アクティブとして、１次ターゲットＯＰＣサーバをバックアップするように構成された２次ターゲットＯＰＣサーバを含む少なくとも１つの追加のターゲットＯＰＣサーバにも転送される。状態情報を含む、ＯＰＣ  ｃｒｅａｔｅ−ｅｖｅｎｔ−ｓｕｂｓｃｒｉｐｔｉｏｎ要求に関係する情報が格納される。
【００１５】
リダイレクションマネージャによって１次ターゲットＯＰＣサーバに対する接続が行われる。リダイレクションマネージャにより、１次ターゲットＯＰＣサーバ用のＯＰＣサーバステータス変更プロバイダおよび追加のターゲットＯＰＣサーバに対する接続が行われる。１次ターゲットＯＰＣサーバがＯＰＣアラーム／イベントをサポートすると決定された場合、ａｌａｒｍｓ−ａｎｄ−ｅｖｅｎｔｓ（アラーム−アンド−イベント）モジュールがロードされる。少なくとも１つのｏｎ−ｅｖｅｎｔ要求が、１次ターゲットＯＰＣサーバからＯＰＣクライアントに与えられる。１次ターゲットＯＰＣサーバ用のＯＰＣサーバステータス変更プロバイダからａｃｔｉｖｅ−ｓｅｒｖｅｒ−ｆａｉｌｅｄイベントを受信したとき、２次ターゲットＯＰＣサーバへの切換えが実施され、ａｌａｒｍｓ−ａｎｄ−ｅｖｅｎｔｓモジュールに切換えが通知される。データの欠落を防止するために、現在アクティブなイベントが２次ターゲットＯＰＣサーバと同期され、ＯＰＣ  ｏｎ−ｅｖｅｎｔ要求が２次ターゲットＯＰＣサーバからＯＰＣクライアントに与えられる。１次ターゲットＯＰＣサーバが現在利用可能であるという通知をＯＰＣサーバステータス変更プロバイダから受信したとき、１次ターゲットＯＰＣサーバに対して接続が行われ、状態情報で確立される。
【００１６】
本発明の別の実施形態は、第１のＯＰＣサーバ、第２のＯＰＣサーバ、および第１のリダイレクションマネージャを含むＯＰＣリダイレクション管理システムである。第１のＯＰＣサーバはＯＰＣ要求をサービスすることができる。第２のＯＰＣサーバは、第１のＯＰＣサーバをバックアップするように構成される。第１のリダイレクションマネージャは、第１のＯＰＣクライアントの代わりにＯＰＣ要求を第１のＯＰＣサーバまたは第２のＯＰＣサーバに転送することができる。第１のＯＰＣクライアントは、それ自体の第１のリダイレクションマネージャとの専用接続を確立することができる。第１のリダイレクションマネージャは、第１のＯＰＣサーバの障害時に、第２のＯＰＣサーバに接続してシームレスなサービスを第１のＯＰＣクライアントに提供することができる。第１のリダイレクションマネージャは、ＯＰＣ要求に関連する情報を格納して、第１のＯＰＣサーバの障害時に使用することができる。
【００１７】
ＯＰＣリダイレクション管理システムはまた、第３ＯＰＣサーバ、第４ＯＰＣサーバ、および第２のリダイレクションマネージャも含む。第４ＯＰＣサーバは、第３ＯＰＣサーバをバックアップするように構成される。第２のＯＰＣクライアントは、それ自体の第２のリダイレクションマネージャとの専用接続を確立することができる。第２のリダイレクションマネージャは、第３ＯＰＣサーバの障害時に、第４ＯＰＣサーバに接続して第２のＯＰＣクライアントにシームレスなサービスを提供することができる。第１のＯＰＣサーバは、第３ＯＰＣサーバをバックアップするように構成することができる。ＯＰＣ要求は、データアクセス型またはアラーム／イベント型でよい。
【００１８】
ＯＰＣリダイレクション管理システムはまた、１次サーバノード、２次サーバノード、およびクライアントノードも含むことができる。１次サーバノードは、第１のＯＰＣサーバ、１次ノードステータス変更プロバイダ、および１次ＯＰＣステータス変更プロバイダを含む。２次サーバノードは、第２のＯＰＣサーバ、２次ノードステータス変更プロバイダ、および２次ＯＰＣステータス変更プロバイダを含む。クライアントノードは、第１のＯＰＣクライアント、第１のリダイレクションマネージャ、クライアントノードステータス変更プロバイダ、およびクライアントＯＰＣステータス変更プロバイダを含む。第１のリダイレクションマネージャは、データアクセス／サブスクリプション状態データおよび切換えマネージャを含む。第１のＯＰＣサーバは、アイテムキャッシュおよび条件データベースを含む。第１のＯＰＣクライアントはプロセス制御アプリケーションである。第１のＯＰＣサーバは装置と通信してＯＰＣ要求をサービスし、ＯＰＣ要求の結果として、第１のＯＰＣクライアントは装置についての情報を受信する。
【００１９】
本発明の別の実施形態は、方法を実行する実行可能命令を格納する機械可読媒体である。第１のＯＰＣクライアントを求める第１のクライアント接続に応答して、第１のＯＰＣクライアントからＯＰＣリダイレクションマネージャの第１のインスタンスに第１の専用接続が付与される。第２のクライアント接続要求に応答して、第２のＯＰＣクライアントからＯＰＣリダイレクションマネージャの第２のインスタンスに第２の専用接続が付与される。第２のＯＰＣクライアント用のノードステータス変更プロバイダに対する接続が行われる。リダイレクションマネージャに障害が発生し、第２のＯＰＣクライアント用の専用接続が失われたとき、第１のＯＰＣクライアント用の第１の専用接続は維持される。第１のターゲットＯＰＣサーバに対する接続が行われる。第１のターゲットＯＰＣサーバ用のＯＰＣサーバステータス変更プロバイダに対する別の接続が行われる。第１のターゲットＯＰＣサーバをバックアップするように構成された第２のターゲットＯＰＣサーバに対して別の接続が行われる。第１のターゲットＯＰＣサーバ用のＯＰＣサーバステータス変更プロバイダからａｃｔｉｖｅ−ｓｅｒｖｅｒ−ｆａｉｌｅｄイベントを受信したとき、第２のターゲットＯＰＣサーバへの切換えが実現される。
【００２０】
以下の図面、説明、および添付の特許請求の範囲を参照すると、本発明の上記およびその他の特徴、態様、および利点をより良く理解できるであろう。
【発明を実施するための最良の形態】
【００２１】
以下の詳細な説明では、添付の図面を参照する。これらの図面は本明細書の一部を形成し、例示により、本発明を実施することのできる特定の好ましい実施形態を示す。こうした実施形態を、当業者が本発明を実施することができるように十分詳細に説明する。他の実施形態も使用することができる。本発明の精神および範囲から逸脱することなく、構造的変更、論理的変更、および電気的変更を行うことができる。したがって、以下の詳細な説明を限定的な意味に取るべきではなく、本発明の範囲は添付の特許請求の範囲によってのみ定義される。
【００２２】
図１に、本発明によるリダイレクションマネージャシステムアーキテクチャのための単一クライアント接続を示す。クライアントノード１００内にＯＰＣクライアント１０１があり、ＯＰＣクライアント１０１は、リダイレクションマネージャ１０２の単一インスタンスに接続され、リダイレクションマネージャ１０２は、１次ＯＰＣサーバノード１０４内部の構成要素、およびバックアップＯＰＣサーバノード１０６内部の構成要素と通信する。１次ＯＰＣサーバノード１０４およびバックアップＯＰＣサーバノード１０６内の構成要素は装置１０８と通信する。
【００２３】
ＯＰＣクライアント１０１は、１次ＯＰＣサーバノード１０４に直接接続する代わりにリダイレクションマネージャ１０２に接続する。リダイレクションマネージャ１０２は、構成ユーティリティを使用してＯＰＣクライアント１０１用に構成される。構成が完了した後、ＯＰＣクライアント１０１は、引き続きＯＰＣ関係のタスクを通常通り実行する。構成された各リダイレクションマネージャ１０２は、インストールされた実行可能命令をポイントするように登録される。クライアント接続時に、リダイレクションマネージャ１０２の新しいインスタンスが作成される。この新しいインスタンスは、固有プロセスアドレス空間で実行される。この新しいインスタンスは、ＯＰＣクライアント１０１にとって、ステータス目的で固有の識別によって識別可能である。リダイレクションマネージャ１０２のインスタンスに加えて、クライアントノード１００は、ＯＰＣサーバステータス変更プロバイダ１１０およびノードステータス変更プロバイダ１１２を有する。
【００２４】
リダイレクションマネージャ１０２は、ＯＰＣクライアント１０１によって行われたＯＰＣ要求を、装置１０８と通信する１次ＯＰＣサーバノード１０４に転送する中間ＯＰＣサーバである。リダイレクションマネージャ１０２は、１次ＯＰＣサーバノード１０４に障害が発生したときに適切な処置を取るのに必要な情報を維持し、バッドステータスがＯＰＣクライアント１０１に返されないように保証する。リダイレクションマネージャ１０２は、データアクセス／サブスクリプション状態データ１１４と、アクティブサーバを変更するための切換えマネージャ１１６とを有する。
【００２５】
１次ＯＰＣサーバノード１０４は、装置１０８、ならびにＯＰＣクライアント１０１がアクセスしてデータを読み書きすることを望むその他のデータソースと通信し、リダイレクションマネージャ１０２用の１次サーバとなるように構成される。加えて、１次ＯＰＣサーバノード１０４は、リダイレクションマネージャ１０２と異なるリダイレクションマネージャ用の２次サーバとして構成可能である（図２参照）。アクティブＯＰＣサーバは、１次ＯＰＣサーバノード１０４またはバックアップＯＰＣサーバノード１０６であり、リダイレクションマネージャ１０２を介してＯＰＣクライアント１０１に対して現在ＯＰＣ要求をサービスしているサーバである。１次ＯＰＣサーバノード１０４は、アイテムキャッシュ
および条件データベース１２２を有するＯＰＣサーバ１１８と、ノードステータス変更プロバイダ１２４と、ＯＰＣサーバステータス変更プロバイダ１２６とを有する。現データ値がアイテムキャッシュ１２０に格納され、アラーム状態が条件データベース１２２に格納される。
【００２６】
２次ＯＰＣサーバノードまたはバックアップＯＰＣサーバノード１０６は、１次ＯＰＣサーバノード１０４に障害が発生したときのアクティブＯＰＣサーバである。加えて、バックアップＯＰＣサーバノード１０６は、様々なリダイレクションマネージャ用の１次サーバとして構成可能である（図２参照）。１次ＯＰＣサーバノード１０４と同様に、バックアップＯＰＣサーバノード１０６は、アイテムキャッシュ１３０および条件データベース１３２を有するＯＰＣサーバ１２８と、ノードステータス変更プロバイダ１３４と、ＯＰＣサーバステータス変更プロバイダ１３６とを有する。
【００２７】
装置１０８は、データアクセスまたはＩＯ要求をサービスし、アラームおよびイベントをＯＰＣサーバにプッシュすることのできるデータソースである。
本発明によるリダイレクションマネージャ１０２は、ＯＰＣ  Ｄａｔａ  Ａｃｃｅｅｓｓ２．０５および１．０Ａ、ＯＰＣ  Ａｌａｒｍｓ  ａｎｄ  Ｅｖｅｎｔｓ１．０、およびＯＰＣ  Ｓｅｃｕｒｉｔｙ１．０インターフェース、ならびに他のＯＰＣデータアクセス、ＯＰＣアラーム／イベント、および現在知られている、または将来の他のＯＰＣインターフェースをサポートすることができるＯＰＣサーバである。リダイレクションマネージャ１０２は、実データソースと通信しないという意味では真のＯＰＣサーバではなく、その代わりにクライアントコールを実際のＯＰＣサーバに転送し、実際のＯＰＣサーバからクライアントコールを転送するのに使用され、状態情報を維持するのに使用され、１次サーバに障害が発生したときにバックアップサーバに切り換えることが可能となる。リダイレクションマネージャ１０２は、プロセス外．ｅｘｅサーバとして実現される（図２参照）。リダイレクションマネージャ１０２へのクライアント接続当たり１つの．ｅｘｅサーバが存在する。クライアント接続の状態を変更するがＩＯを要求しないＯＰＣ要求は、１次サーバとバックアップサーバ、例えば１次ＯＰＣサーバノード１０４とバックアップＯＰＣサーバノード１０６の両方に行われる。ＩＯ要求は１次ＯＰＣサーバ１１８だけに行われる。これにより、２次サーバがホットスタンバイモードにされる。１次ＯＰＣサーバ１１８に障害が発生した場合、リダイレクションマネージャ１０２は、バックアップＯＰＣサーバ１２８を活動化し、ＩＯ要求を発行する。ＯＰＣクライアント１０１が切換えを認識しないので、ＯＰＣクライアント１０１は、ＯＰＣクライアント１０１自体でのエラー処理のシナリオを著しく削減することができる。リダイレクションマネージャ１０２は、コールドスタンバイ冗長方式もサポートする。この場合、状態はバックアップＯＰＣサーバ１２８に複製されない。すべての状態が切換え時にセットアップされる。
【００２８】
リダイレクションマネージャ１０２はまた、任意選択のブラウジングインターフェースもサポートする。リダイレクションマネージャ１０２は、すべてのコールを１次ＯＰＣサーバ１１８またはバックアップＯＰＣサーバ１２８に、あるいはすべてのサーバに転送すると共に、リダイレクションの目的でコールに関係する状態情報を維持する。ＩＯ要求を現在サービスしているサーバはアクティブサーバと呼ばれる。現在アクティブなサーバに障害が発生した場合、切換えプロセスの一部として、リダイレクションマネージャ１０２は、バックアップサーバの１つを新しいアクティブサーバに設定する。
【００２９】
リダイレクションマネージャ１０２はＯＰＣクライアント１０１の要求の状態を保存し、１次サーバに障害が発生したとき、さらには他の様々なシナリオのために、それをバックアップサーバにリダイレクトまたは再発行する。１つの手法は、クライアントコールをＩＯ要求と非ＩＯ要求に分類することである。この分類は次のように行われる。ａｄｄ−ｇｒｏｕｐ（追加−グループ）、ａｄｄ−ｉｔｅｍ（追加−アイテム）、ｃｒｅａｔｅ−ｅｖｅｎｔ−ｓｕｂｓｃｒｉｐｔｉｏｎ（作成−イベント−サブクリップション）、ｓｅｔ−ｆｉｌｔｅｒ−ｃａｌｌｓ（セット−フィルター−コール）などの、クライアント接続の状態を変更するがＩＯを要求しないＯＰＣ要求は非ＩＯ要求と分類される。ｒｅａｄ（リード）、ｗｒｉｔｅ（ライト）、ａｃｋ−ｃｏｎｄｉｔｉｏｎ（肯定応答−条件）などのクライアントＩＯコールはＩＯ要求と分類される。
【００３０】
こうしたコールの存続状態は様々に処理される。ＯＰＣクライアント１０１が動作中である限り、非ＩＯコールは維持される。この情報が必要な１つのシナリオは、ＯＰＣクライアント１０１がａｄｄ−ｇｒｏｕｐコールおよびａｄｄ−ｉｔｅｍコールを行った後に生じるバックアップサーバのｓｙｎｃ−ｕｐである。ＩＯコール情報が存続するのは、１次サーバまたはバックアップサーバがコールをサービスするまでの間だけである。コールが首尾よく完了すると、コールについてのＩＯ情報は削除される。
【００３１】
リダイレクションマネージャ１０２は、アクティブサーバによって返されるすべてのエラーを検討する。リダイレクションマネージャ１０２とアクティブサーバの間の通信経路に沿う障害を示すエラーが、リダイレクションマネージャ１０２による切換えの開始を引き起こす。この通信経路に沿う障害を示唆しないエラーは、ＯＰＣクライアント１０２に転送される。ＯＰＣクライアント１０１は、こうしたエラーを、サーバに直接接続した場合と同様に処理する。リダイレクションマネージャ１０２は、すべての非ＩＯコールの状態を保存し、したがって再同期を試みることができる。非ＩＯと分類されるすべてのＯＰＣコールは、１次サーバとバックアップサーバの両方に送信される。コールは、要求がバックアップサーバに発行される前にアクティブサーバ上で成功しなければならない。要求がバックアップ上で失敗した場合、エラーが記録されるがエラーはクライアントに返されない。この点で、バックアップサーバは、アクティブサーバと同期していないとみなされる。リダイレクションマネージャは、切換え時にバックアップを再同期するように試みる。再同期が失敗した場合、リダイレクションマネージャは２次サーバに切り換えない。
【００３２】
初期化の間、リダイレクションマネージャ１０２は、ターゲットサーバ、例えば１次ＯＰＣサーバノード１０４やバックアップＯＰＣサーバノード１０６との接続を確立する。さらに、リダイレクションマネージャ１０２は、ＯＰＣサーバステータス変更プロバイダ１１０などのステータス変更プロバイダとの接続を確立し、切換えマネージャ１１６を起動することのできるイベントにサブスクライブする。ノードに障害が発生した場合、リダイレクションマネージャ１０２は、ノードステータス変更プロバイダ１１２に接続する。ノードステータス変更プロバイダ１１２は、ノードステータス変更プロバイダ１０６などのピアノードステータス変更プロバイダと通信し、他のノードのヘルスを監視する。同様に、リダイレクションマネージャ１０２は、１次ＯＰＣサーバノード１０４やバックアップＯＰＣサーバノード１０６などの各ターゲットＯＰＣサーバノード上のＯＰＣサーバステータス変更プロバイダ１２６や１３６などのＯＰＣサーバステータス変更プロバイダに対するリモートサブスクリプション接続を確立する。サーバ状態の変化はリダイレクションマネージャ１０２に転送される。１次ＯＰＣサーバノード１０４のＯＰＣサーバ１１８が動作状態から遷移した場合、リダイレクションマネージャ１０２は、切換えマネージャ１１６を介してバックアップＯＰＣサーバノード１０６への切換えを開始する。バックアップＯＰＣサーバ１２８が動作状態から遷移し、利用不能となった場合、後続の動作状態への遷移の結果、同期が得られる。
【００３３】
リダイレクションマネージャ１０２は、そのステータスをＯＰＣサーバステータス変更プロバイダ１１０にレポートする。これにより、ホスティングシステムステータス表示構成要素との統合が可能となる。ＯＰＣクライアント１０１からリダイレクションマネージャ１０２への接続のヘルス、ならびにターゲットＯＰＣサーバ１１８、１２８のヘルスがユーザに公開される。
【００３４】
ＯＰＣクライアント１０１は、あたかもターゲットＯＰＣサーバ１１８、１２８に直接接続されているかのように、リダイレクションサーバ１０２に対してＯＰＣ要求を行う。クライアントグループの作成ごとに、リダイレクションマネージャ１０２は、アクティブ／バックアップＯＰＣサーバ１１８、１２８に要求を転送する。グループ集合を活動化する要求は、アクティブＯＰＣサーバ上でのみ実施される。グループデータ集合は、バックアップサーバ上では非アクティブである。同様に、イベントサブスクリプションを活動化する要求は、アクティブＯＰＣサーバ上でのみ実施される。イベントサブスクリプションは、依然としてバックアップＯＰＣサーバ上では非アクティブである。
【００３５】
特定のデータソースを収集する要求は、装置１０８の名前空間内の名前への変換を必要とすることがある。装置１０８がリモートに配置される場合、この名前変換操作は、性能の点で高コストの可能性がある。したがって、リダイレクションマネージャ１０２は、装置１０８に対して複数の変換操作を要求することなく装置の名前空間処理を同期するように最適化される。
【００３６】
リダイレクションマネージャ１０２は、別々のスレッド上で、１次ＯＰＣサーバ１１８およびバックアップＯＰＣサーバ１２８に対してすべてのＯＰＣコールまたは要求を行う。これにより、サーバ障害のために失敗するＯＰＣコールをバックアップＯＰＣサーバ１２８に再発行することが可能となる。スレッドを作成した後、１次ＯＰＣサーバ１１８は、バックアップＯＰＣサーバ１２８にコールを発行するスレッドによって発信されるｒｅｑｕｅｓｔ−ｃｏｍｐｌｅｔｅ（要求-完了）イベントを待つ。イベントが発信されると、１次ＯＰＣサーバ１１８は、結果をＯＰＣクライアント１０１に返す。リダイレクションマネージャ１０２はまた、アクティブサーバに障害が発生したとき、ａｃｔｉｖｅ−ｓｅｒｖｅｒ−ｆａｉｌｅｄ（アクティブ−サーバ−障害）イベントが発信されるのも待つ。このイベントが発信された場合、リダイレクションマネージャ１０２は、代替サーバを探し、失敗した要求をそのサーバに再発行する。通知プロバイダまたはリダイレクションマネージャ１０２自体が処理することができないシナリオに配慮するために、内部タイムアウト期間がその待機に加えられる。このようにして、上記の２つのイベントのどちらかが発信されない場合に、リダイレクションマネージャ１０２が永久にハング状態のままにされることはない。タイムアウト期間は構成オプションとして提供される。
【００３７】
データアクセスならびにアラームおよびイベントの両方についてコールバックに続く手法がある。リダイレクションマネージャ１０２は、ＯＰＣクライアント１０１のすべてのコールバックを実施する。リダイレクションマネージャ１０２は、アクティブＯＰＣサーバのコールバックを代行受信し、ＯＰＣクライアント１０１のすべてのシンクインターフェースを保持し、ＯＰＣクライアント１０１にコールバックを発行する。これにより、切換え中にバッド値がＯＰＣクライアント１０１に返されないように保証される。データアクセスでは、コールバックを行うことができる前にアクティブサーバに障害が発生したとき、非同期読取り／書込みコールは欠落しない。リダイレクションマネージャ１０２は、コールバックが完了したかどうかを追跡し、切換えが行われたときに、バックアップに再びコールを再発行する。リダイレクションマネージャ１０２コールバックは、イベントをクライアントｏｎ−ｅｖｅｎｔ（オン−イベント）コールバックに転送し、またはデータ要求をｏｎ−ｄａｔａ−ｃｈａｎｇｅ（オン−データ−変更）コールバックに転送する。アクティブサーバに障害が発生したとき、リダイレクションマネージャ１０２は、２次サーバ上のクライアントサブスクリプションまたはデータアクセスグループを活動化する。リダイレクションマネージャ１０２はイベントサブスクリプションをリフレッシュし、２次サーバからのコールバックの処理を開始する。
【００３８】
図２は、本発明によるリダイレクションマネージャの複数のインスタンスに対する複数のクライアント接続のブロック図である。クライアントノード２００は、インストールされたリダイレクションマネージャバイナリ実行命令２０２を有する。構成ツールは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）レジストリ内に常駐する登録テーブル２０４内に登録されたリダイレクションマネージャについてのエントリを作成する。構成には、ターゲットＯＰＣサーバを識別することが含まれる。クライアント１  ２０６などのクライアントが、リダイレクションマネージャ１  ２０８などの登録されたリダイレクションマネージャに接続するとき、インストールされたリダイレクションマネージャバイナリ実行命令２０２の新しいインスタンスが作成される。各インスタンスは、それ自体のプロセス空間内で実行され、他の実行中のどんなインスタンスとも無関係であり、ネイティブオペレーティングシステムにとって可視である。クライアントは、リダイレクションマネージャ１、２、３、４などの様々な複数の登録されたリダイレクションマネージャに接続する。リダイレクションマネージャ１  ２０８の第１のインスタンスに障害が発生した場合、クライアント１  ２０６だけが影響を受ける。クライアント３  ２１６は、リダイレクションマネージャ１  ２１８の第２のインスタンスに対するそれ自体の専用接続を有するからである。登録されたリダイレクションマネージャは、ＯＰＣサーバ２１０などの複数のＯＰＣサーバと通信する。複数のＯＰＣサーバが、サーバノード２１２などのサーバノードに常駐する。複数のサーバノードが、ＯＰＣサーバノードクラスタ２１４などのクラスタに常駐する。任意の数のクライアント、リダイレクションマネージャ、ＯＰＣサーバ、サーバノード、およびＯＰＣサーバノードクラスタが存在することができる。
【００３９】
図３〜１０は、リダイレクションマネージャが本発明に従ってどのように動作するかについてのいくつかのシナリオに関するシーケンス図である。リダイレクションマネージャは２つ以上のターゲットＯＰＣサーバを収容するように設計されるが、このシーケンス図は２つの（すなわち１次および２次）ターゲットＯＰＣサーバだけを示す。これは、シーケンス図をより単純にし、より容易に理解できるようにするための例示目的に過ぎない。リダイレクションマネージャが首尾よく接続する第１のターゲットはアクティブサーバと呼ばれる。残りのターゲットＯＰＣサーバは代替ターゲットＯＰＣサーバと呼ばれる。本発明によるリダイレクションマネージャは、ＯＰＣデータアクセスイニシアチブとＯＰＣアラーム／イベントイニシアチブのどちらからの仕様もサポートする。以下のシナリオでは、特定のイニシアチブに言及することがあるが、本発明によるリダイレクションマネージャは、データアクセスクライアントとアラーム／イベントクライアントの両方を同時にサービスすることができる。
【００４０】
図３〜１０についての以下の各表に、対応する図中の特定のイベントを要約する。しかし、表中のイベント数と図３〜１０のステップとの間に１対１の対応はない。
図３に、リダイレクションマネージャによってクライアント接続が本発明に従ってどのように行われるかを示す。図３の上部のボックスで識別される各構成要素は、別々のプロセスで動作する。これらの構成要素は、クライアント１０１、リダイレクションマネージャ１０２、ノードステータス変更プロバイダ１１２、１次ＯＰＣサーバ１１８、１次サーバステータス変更プロバイダ１２６、２次ＯＰＣサーバ１２８、および２次サーバステータス変更プロバイダ１３６である。
【００４１】
図３では、いくつかの開始条件を仮定する。ユーザまたは管理者が構成ツールを使用してリダイレクションマネージャサーバの名前付きインスタンスを作成している。このインスタンスは、ターゲットＯＰＣサーバの識別を含む。この情報は構成ツールにより、リダイレクションマネージャランタイムにとって既知のレジストリ位置に格納される（図２参照）。すべてのターゲットＯＰＣサーバが利用可能である。
【００４２】
表１で、図３に示す特定のイベントを全体的に説明する。表１の各イベントは、図３に示す例示的方法で実現される。
【００４３】
【表１】
2005531855.tif 000003
【００４４】
図４に、リダイレクションマネージャが本発明に従ってどのようにＯＰＣ  ａｄｄ−ｇｒｏｕｐ要求に関する状態情報を維持するかを示す。このシナリオに関係する構成要素は、クライアント１０１、リダイレクションマネージャ１０２、（データアクセス／サブスクリプション状態データ１１４内の）リダイレクショングループ４００、（リダイレクションマネージャ１０２で作成された）１次ａｄｄ−ｇｒｏｕｐ（追加−グループ）スレッド４０２、（リダイレクションマネージャ１０２で作成された）２次ａｄｄ−ｇｒｏｕｐスレッド４０４、１次サーバ１１８、および２次サーバ１２８である。このシナリオでは、１次サーバ１１８と２次サーバ１２８がどちらも利用可能であると仮定する。
【００４５】
図４では、いくつかの開始条件を仮定する。管理者は、リダイレクションマネージャ構成ユーティリティを使用して必要な構成を行い、リダイレクションマネージャ１０２を登録している。さらに、ＯＰＣクライアント１０１は、リダイレクションマネージャ１０２に対する接続を行った。
【００４６】
表２で、図４に示す特定のイベントを全体的に説明する。表２の各イベントは、図４に示す例示的方法で実現される。
【００４７】
【表２】
2005531855.tif 000004
【００４８】
図５に、リダイレクションマネージャが本発明に従ってどのようにＯＰＣ  ｏｎ−ｄａｔａ−ｃｈａｎｇｅ要求を処理するかを示す。このシナリオに関係する構成要素は、クライアント１０１、リダイレクショングループ４００（これはデータアクセス／サブスクリプション状態データ１１４の一部である）、リダイレクションマネージャ（ＲＤＭ）１次シンク５０２、リダイレクションマネージャ（ＲＤＭ）２次シンク５０４、１次グループ５０６（これは１次ＯＰＣサーバ１１８の一部である）、および２次グループ５０８（これは２次ＯＰＣサーバ１２８の一部である）である。このシナリオでは、リダイレクションマネージャ１０２がどのようにＯＰＣ  ｏｎ−ｄａｔａ−ｃｈａｎｇｅ（オン−データ−変更）要求を処理するかを説明し、すべてのターゲットＯＰＣサーバが利用可能であると仮定する。
【００４９】
図５では、いくつかの開始条件を仮定する。ＯＰＣクライアント１０１はリダイレクションマネージャに接続しており、グループおよびアイテムを追加している。このグループおよびアイテムは、すべてのターゲットＯＰＣサーバに追加されている。
【００５０】
表３で、図５に示す特定のイベントを全体的に説明する。表３の各イベントは、図５に示す例示的方法で実装される。
【００５１】
【表３】
2005531855.tif 000005
【００５２】
図６に、リダイレクションマネージャが本発明に従ってどのようにアクティブターゲットＯＰＣサーバの障害を処理するかを示す。このシナリオに関係する構成要素は、ＯＰＣクライアント１０１、リダイレクショングループ４００、リダイレクションマネージャ（ＲＤＭ）１次シンク５０２、リダイレクションマネージャ（ＲＤＭ）２次シンク５０４、１次グループ５０６、１次構成要素ステータスプロバイダ１２６、および２次グループ５０８である。
【００５３】
図６では、いくつかの開始条件を仮定する。ＯＰＣクライアント１０１はリダイレクションマネージャに接続している。ＯＰＣクライアント１０１は、リダイレクションマネージャからアクティブターゲットＯＰＣサーバを介してＯｎＤａｔａＣｈａｎｇｅ（）コールを受信中である。アクティブターゲットＯＰＣサーバに障害が発生する。
【００５４】
表４で、図６に示す特定のイベントを全体的に説明する。表４の各イベントは、図６に示す例示的方法で実装される。
【００５５】
【表４】
2005531855.tif 000006
【００５６】
図７に、代替ターゲットＯＰＣサーバが利用可能となったとき、リダイレクションマネージャが本発明に従ってどのように代替ターゲットＯＰＣサーバを同期するかを示す。このシナリオに関係する構成要素は、ＯＰＣクライアント１０１、リダイレクションマネージャ１０２、１次ＯＰＣサーバ１１８、１次サーバステータス変更プロバイダ１２６、２次ＯＰＣサーバ１２８、および２次サーバステータス変更プロバイダ１３６である。
【００５７】
図７では、いくつかの開始条件を仮定する。ＯＰＣクライアント１０１は、リダイレクションマネージャ１０２に接続しており、アクティブターゲットＯＰＣサーバによってサービス中である。以前には動作していなかった代替ターゲットＯＰＣサーバが開始する。
【００５８】
表５で、図７に示す特定のイベントを全体的に説明する。表５の各イベントは、図７に示す例示的方法で実装される。
【００５９】
【表５】
2005531855.tif 000007
【００６０】
図８に、クライアントの代わりにリダイレクションマネージャが本発明に従ってどのようにＯＰＣ  ｃｒｅａｔｅ−ｅｖｅｎｔサブスクリプション要求に関する状態情報を維持するかを示す。このシナリオに関係する構成要素は、ＯＰＣアラーム／イベントクライアント１０１、リダイレクションイベントサーバ（リダイレクションマネージャ）１０２、リダイレクションサブスクリプションオブジェクト８０４（これは、データアクセス／サブスクリプション状態データ１１４の一部である）、（リダイレクションマネージャ１０２によって作成される）別々のスレッド８０６、１次イベントサーバ１１８、および２次イベントサーバ１２８である。
【００６１】
このシナリオは、ＯＰＣアラーム／イベントクライアントの代わりにリダイレクションマネージャがどのように状態情報を維持するかを説明する。具体的には、ＯＰＣ  ＣｒｅａｔｅＥｖｅｎｔＳｕｂｓｃｒｉｐｔｉｏｎ（作成イベントサブスクリップション）コールに関する状態情報についてこのことを示す。このシナリオでは、１次サーバと２次サーバがどちらも利用可能であると仮定する。ＯＰＣデータアクセスシナリオと同様に、ａｃｔｉｖｅ−ｓｅｒｖｅｒ−ｆａｉｌｅｄイベントの代わりに切換えイベントが使用される。リダイレクションマネージャのＯＰＣアラーム／イベント機能は、アラーム／イベントサポートがＯＰＣアラーム／イベントクライアント８００によって必要とされる場合にのみロードされる別々のモジュール内に含まれるので、モジュール自体は、ターゲットサーバの可用性またはヘルスを監視しない。その代わりに、リダイレクションマネージャのアラーム／イベントモジュールは、メインリダイレクションマネージャ内に含まれる機能を利用する。こうした主機能は、ターゲットサーバの障害を検出し、または代替ターゲットサーバへの手動の切換えを求める要求をサービスするが、どちらの場合にも、アラーム／イベントモジュールは単に、より包括的な切換えイベントを受信する。
【００６２】
図８では、いくつかの開始条件を仮定する。１次サーバと２次サーバはどちらも利用可能である。ＯＰＣアラーム／イベントクライアント８００が、リダイレクションマネージャへの接続を行った。リダイレクションマネージャは、ターゲットＯＰＣサーバがＯＰＣアラーム／イベントをサポートすることを検出した後、アラーム／イベントサポートモジュールをロードした。クライアントによって行われるＯＰＣアラーム／イベント要求が、このモジュールによってサービス中である。
【００６３】
表６で、図８に示す特定のイベントを全体的に説明する。表６の各イベントは、図８に示す例示的方法で実装される。
【００６４】
【表６】
2005531855.tif 000008
【００６５】
図９に、ターゲットサーバがＯＰＣアラーム／イベントをサポートするとき、リダイレクションマネージャが本発明に従ってどのようにアクティブターゲットＯＰＣサーバの障害を処理するかを示す。このシナリオに関係する構成要素は、ＯＰＣアラーム／イベントクライアント１０１、リダイレクションイベントサーバ（リダイレクションマネージャ）１０２、リダイレクションサブスクリプション９００（これは、データアクセス／サブスクリプション状態データ１１４の一部である）、（リダイレクションマネージャ１０２によって作成される）スレッド９０２、１次サーバサブスクリプション（１次ＯＰＣサーバ）１１８、および２次サーバサブスクリプション（２次ＯＰＣサーバ）１２８である。
【００６６】
図９では、いくつかの開始条件を仮定する。ターゲットＯＰＣサーバはＯＰＣアラーム／イベントをサポートする。ＯＰＣアラーム／イベントクライアント１０１は、リダイレクションマネージャに接続している。ＯＰＣアラーム／イベントクライアント１０１は、リダイレクションマネージャからアクティブターゲットＯＰＣイベントサーバを介してＯｎＥｖｅｎｔ（）コールを受信中である。アクティブターゲットＯＰＣイベントサーバに障害が発生する。
【００６７】
表７で、図９に示す特定のイベントを全体的に説明する。表７の各イベントは、図９に示す例示的方法で実装される。
【００６８】
【表７】
2005531855.tif 000009
【００６９】
図１０に、代替ターゲットＯＰＣサーバが利用可能となったときに、リダイレクションマネージャが本発明に従ってどのように代替ターゲットＯＰＣサーバを同期するかを示す。このシナリオに関係する構成要素は、ノードステータス変更プロバイダ１１２、リダイレクションイベントサーバ（リダイレクションマネージャ）１０２、リダイレクションサブスクリプション１０００（これは、データアクセス／サブスクリプション状態データ１１４の一部である）、（リダイレクションマネージャ１０２によって作成される）スレッド１００２、および２次イベントサーバ（２次ＯＰＣサーバ）１２８である。
【００７０】
図１０では、いくつかの開始条件を仮定する。ターゲットＯＰＣサーバはＯＰＣアラーム／イベントをサポートする。ＯＰＣクライアントは、リダイレクションマネージャに接続しており、アクティブターゲットＯＰＣイベントサーバによってサービス中である。以前には動作していなかった代替ターゲットＯＰＣイベントサーバが開始する。
【００７１】
表８で、図１０に示す特定のイベントを全体的に説明する。表８の各イベントは、図１０に示す例示的方法で実現される。
【００７２】
【表８】
2005531855.tif 000010
【００７３】
上記の説明は例示的であって限定的ではないことが意図されることを理解されたい。上記の説明を検討する際に、ＯＰＣ仕様への改訂に対する本発明の適合や、一部の構成要素名前付きクライアントがサーバとなるように本発明をより大規模なシステムに含めることまたはその逆など、多くの他の実施形態が当業者には明らかとなるであろう。本発明は、プロセス制御および産業オートメーション以外の分野への適用可能性を有する。したがって、本発明の範囲は、添付の特許請求の範囲を参照して、そのような特許請求の範囲が権利を有する均等物の全範囲に沿って決定されるべきである。
【図面の簡単な説明】
【００７４】
【図１】本発明によるリダイレクションマネージャシステムアーキテクチャのための単一クライアント接続のブロック図である。
【図２】本発明によるリダイレクションマネージャの複数のインスタンスに対する複数のクライアント接続のブロック図である。
【図３】リダイレクションマネージャによってクライアント接続が本発明に従ってどのように行われるかについてのシーケンス図である。
【図４】リダイレクションマネージャが本発明に従ってどのようにＯＰＣ  ａｄｄ−ｇｒｏｕｐ要求に関する状態情報を維持するかについてのシーケンス図である。
【図５】リダイレクションマネージャが本発明に従ってどのようにＯＰＣ  ｏｎ−ｄａｔａ−ｃｈａｎｇｅ要求を処理するかについてのシーケンス図である。
【図６】リダイレクションマネージャが本発明に従ってどのようにアクティブターゲットＯＰＣサーバの障害を処理するかについてのシーケンス図である。
【図７】代替ターゲットＯＰＣサーバが利用可能となったとき、リダイレクションマネージャが本発明に従ってどのように代替ターゲットＯＰＣサーバを同期するかについてのシーケンス図である。
【図８】ＯＰＣ  ｃｒｅａｔｅ−ｅｖｅｎｔサブスクリプション要求用のクライアントの代わりにリダイレクションマネージャが本発明に従ってどのように状態情報を維持するかについてのシーケンス図である。
【図９】ターゲットサーバがＯＰＣアラーム／イベントをサポートするとき、リダイレクションマネージャが本発明に従ってどのようにアクティブターゲットＯＰＣサーバの障害を処理するかについてのシーケンス図である。
【図１０】代替ターゲットＯＰＣサーバが利用可能となったときに、リダイレクションマネージャが本発明に従ってどのように代替ターゲットＯＰＣサーバを同期するかについてのシーケンス図である。
【図１】
2005531855.tif 000011
【図２】
2005531855.tif 000012
【図３】
2005531855.tif 000013
【図４】
2005531855.tif 000014
【図５】
2005531855.tif 000015
【図６】
2005531855.tif 000016
【図７】
2005531855.tif 000017
【図８】
2005531855.tif 000018
【図９】
2005531855.tif 000019
【図１０】
2005531855.tif 000020
【国際調査報告】
2005531855.tif 000021
2005531855.tif 000022
2005531855.tif 000023