(57)【特許請求の範囲】
【請求項１】
ＯＰＣ  ＵＡを用いて処理を行うシステムであって、
第１のＯＰＣ  ＵＡサーバ及び第２のＯＰＣ  ＵＡサーバを備える冗長サーバセットと、
前記冗長サーバセットと通信するエンドポイントユニフォームリソースロケータ（ＵＲＬ）を指定するＯＰＣ  ＵＡクライアントと、
前記冗長サーバセットと前記ＯＰＣ  ＵＡクライアントとの間に接続された負荷分散装置（ＬＢ）と、
を備え、
前記ＯＰＣ  ＵＡクライアントは、前記エンドポイントＵＲＬに接続要求を送信し、
前記第１のＯＰＣ  ＵＡサーバは、アクティブサーバであり、
前記第２のＯＰＣ  ＵＡサーバは、スタンバイサーバであり、
前記ＬＢは、前記第１のＯＰＣ  ＵＡサーバへの接続をプロキシし、
前記エンドポイントＵＲＬは、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバのそれぞれのＵＲＬとは異なり、
前記システムは、パブリッシャーがデータセットを含み、前記データセットを少なくとも１つのサブスクライバーに提供する、パブリッシャーサブスクライバー（Ｐｕｂ／Ｓｕｂ）通信モデルを適用し、
前記Ｐｕｂ／Ｓｕｂ通信モデルにおいて、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバは、それぞれ前記パブリッシャー及び前記少なくとも１つのサブスクライバーであり、
前記第１のＯＰＣ  ＵＡサーバは、第１のデータセットを含み、
前記第２のＯＰＣ  ＵＡサーバは、第２のデータセットを含み、
前記第１のデータセットが更新されたとき、前記第１のＯＰＣ  ＵＡサーバは、前記更新された第１のデータセットを前記少なくとも１つのサブスクライバーに提供し、
前記第２のＯＰＣ  ＵＡサーバは、前記更新された第１のデータセットを受信したとき、前記第２のデータセットを更新し、
前記第２のＯＰＣ  ＵＡサーバは、前記第２のデータセットを前記少なくとも１つのサブスクライバーに提供しない、
システム。
【請求項２】
前記ＬＢが前記接続をプロキシした後、前記ＯＰＣ  ＵＡクライアントと前記第１のＯＰＣ  ＵＡサーバとの間でＴＣＰ／ＩＰ接続が確立される、請求項１に記載のシステム。
【請求項３】
前記ＬＢは、前記第２のＯＰＣ  ＵＡサーバが前記少なくとも１つのサブスクライバーに前記第２のデータセットを提供することを阻止するファイアウォールテーブルを備える、請求項１又は２に記載のシステム。
【請求項４】
ＯＰＣ  ＵＡを用いて処理を行うシステムであって、
第１のＯＰＣ  ＵＡサーバ及び第２のＯＰＣ  ＵＡサーバを備える冗長サーバセットと、
前記冗長サーバセットと通信するエンドポイントユニフォームリソースロケータ（ＵＲＬ）を指定するＯＰＣ  ＵＡクライアントと、
前記冗長サーバセットと前記ＯＰＣ  ＵＡクライアントとの間に接続された負荷分散装置（ＬＢ）と、
を備え、
前記ＯＰＣ  ＵＡクライアントは、前記エンドポイントＵＲＬに接続要求を送信し、
前記第１のＯＰＣ  ＵＡサーバは、アクティブサーバであり、
前記第２のＯＰＣ  ＵＡサーバは、スタンバイサーバであり、
前記ＬＢは、前記第１のＯＰＣ  ＵＡサーバへの接続をプロキシし、
前記エンドポイントＵＲＬは、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバのそれぞれのＵＲＬとは異なり、
前記システムは、パブリッシャーがデータセットを含み、前記データセットを少なくとも１つのサブスクライバーに提供する、パブリッシャーサブスクライバー（Ｐｕｂ／Ｓｕｂ）通信モデルを適用し、
前記Ｐｕｂ／Ｓｕｂ通信モデルにおいて、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバは、それぞれ前記パブリッシャー及び前記少なくとも１つのサブスクライバーであり、
前記第１のＯＰＣ  ＵＡサーバは、第１のデータセットを含み、
前記第２のＯＰＣ  ＵＡサーバは、第２のデータセットを含み、
フェイルオーバー処理において、前記アクティブサーバが、前記第１のＯＰＣ  ＵＡサーバから前記第２のＯＰＣ  ＵＡサーバに切り換えられ、
前記第２のＯＰＣ  ＵＡサーバは、前記第２のデータセットを前記少なくとも１つのサブスクライバーに提供し、
前記スタンバイサーバが、前記第２のＯＰＣ  ＵＡサーバから前記第１のＯＰＣ  ＵＡサーバに切り換えられ、
前記フェイルオーバー処理の後、前記第２のＯＰＣ  ＵＡサーバは、前記第２のデータセットを前記少なくとも１つのサブスクライバーに提供し、
前記第１のＯＰＣ  ＵＡサーバは、前記第２のデータセットを受信したとき、前記第１のデータセットを更新し、
前記第１のＯＰＣ  ＵＡサーバは、前記第１のデータセットを前記少なくとも１つのサブスクライバーに提供しない、
システム。
【請求項５】
前記ＬＢは、前記第１のＯＰＣ  ＵＡサーバが前記少なくとも１つのサブスクライバーに前記第１のデータセットを提供することを阻止するファイアウォールテーブルを備える、請求項４に記載のシステム。
【請求項６】
ＯＰＣ  ＵＡを用いた通信方法であって、
ＯＰＣ  ＵＡクライアントにより、第１のＯＰＣ  ＵＡサーバ及び第２のＯＰＣ  ＵＡサーバを備える冗長サーバセットと通信するエンドポイントユニフォームリソースロケータ（ＵＲＬ）を指定するステップと、
前記ＯＰＣ  ＵＡクライアントにより、前記エンドポイントＵＲＬに接続要求を送信するステップと、
前記冗長サーバセットと前記ＯＰＣ  ＵＡクライアントとの間に接続された負荷分散装置（ＬＢ）により、前記第１のＯＰＣ  ＵＡサーバへの接続をプロキシするステップと、
を含み、
前記第１のＯＰＣ  ＵＡサーバは、アクティブサーバであり、
前記第２のＯＰＣ  ＵＡサーバは、スタンバイサーバであり、
前記エンドポイントＵＲＬは、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバのそれぞれのＵＲＬとは異なり、
パブリッシャーがデータセットを含み、前記データセットを少なくとも１つのサブスクライバーに提供する、パブリッシャーサブスクライバー（Ｐｕｂ／Ｓｕｂ）通信モデルを適用するステップ、をさらに含み、
前記Ｐｕｂ／Ｓｕｂ通信モデルにおいて、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバは、それぞれ前記パブリッシャー及び前記少なくとも１つのサブスクライバーであり、
前記第１のＯＰＣ  ＵＡサーバは、第１のデータセットを含み、
前記第２のＯＰＣ  ＵＡサーバは、第２のデータセットを含み、
前記第１のＯＰＣ  ＵＡサーバにより、前記第１のデータセットを更新するステップと、
前記第１のＯＰＣ  ＵＡサーバにより、前記更新された第１のデータセットを前記少なくとも１つのサブスクライバーに提供するステップと、
前記第２のＯＰＣ  ＵＡサーバにより、前記第２のＯＰＣ  ＵＡサーバが前記更新された第１のデータセットを受信したとき、前記第２のデータセットを更新するステップと、
をさらに含み、
前記第２のＯＰＣ  ＵＡサーバは、前記第２のデータセットを前記少なくとも１つのサブスクライバーに提供しない、
通信方法。
【請求項７】
前記ＬＢが前記接続をプロキシした後、前記ＯＰＣ  ＵＡクライアントと前記第１のＯＰＣ  ＵＡサーバとの間でＴＣＰ／ＩＰ接続が確立される、請求項６に記載の通信方法。
【請求項８】
前記ＬＢのファイアウォールテーブルにより、前記第２のＯＰＣ  ＵＡサーバが前記少なくとも１つのサブスクライバーに前記第２のデータセットを提供することを阻止するステップをさらに含む、請求項６又は７に記載の通信方法。
【請求項９】
ＯＰＣ  ＵＡを用いた通信方法であって、
ＯＰＣ  ＵＡクライアントにより、第１のＯＰＣ  ＵＡサーバ及び第２のＯＰＣ  ＵＡサーバを備える冗長サーバセットと通信するエンドポイントユニフォームリソースロケータ（ＵＲＬ）を指定するステップと、
前記ＯＰＣ  ＵＡクライアントにより、前記エンドポイントＵＲＬに接続要求を送信するステップと、
前記冗長サーバセットと前記ＯＰＣ  ＵＡクライアントとの間に接続された負荷分散装置（ＬＢ）により、前記第１のＯＰＣ  ＵＡサーバへの接続をプロキシするステップと、
を含み、
前記第１のＯＰＣ  ＵＡサーバは、アクティブサーバであり、
前記第２のＯＰＣ  ＵＡサーバは、スタンバイサーバであり、
前記エンドポイントＵＲＬは、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバのそれぞれのＵＲＬとは異なり、
パブリッシャーがデータセットを含み、前記データセットを少なくとも１つのサブスクライバーに提供する、パブリッシャーサブスクライバー（Ｐｕｂ／Ｓｕｂ）通信モデルを適用するステップ、をさらに含み、
前記Ｐｕｂ／Ｓｕｂ通信モデルにおいて、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバは、それぞれ前記パブリッシャー及び前記少なくとも１つのサブスクライバーであり、
前記第１のＯＰＣ  ＵＡサーバは、第１のデータセットを含み、
前記第２のＯＰＣ  ＵＡサーバは、第２のデータセットを含み、
フェイルオーバー処理において、前記アクティブサーバを、前記第１のＯＰＣ  ＵＡサーバから前記第２のＯＰＣ  ＵＡサーバに切り換えるステップと、
前記第２のＯＰＣ  ＵＡサーバにより、前記第２のデータセットを前記少なくとも１つのサブスクライバーに提供するステップと、
をさらに含み、
前記スタンバイサーバを、前記第２のＯＰＣ  ＵＡサーバから前記第１のＯＰＣ  ＵＡサーバに切り換えるステップと、
前記フェイルオーバー処理の後、前記第２のＯＰＣ  ＵＡサーバにより、前記第２のデータセットを前記少なくとも１つのサブスクライバーに提供するステップと、
前記第１のＯＰＣ  ＵＡサーバにより、前記第１のＯＰＣ  ＵＡサーバが前記第２のデータセットを受信したとき、前記第１のデータセットを更新するステップと、
をさらに含み、
前記第１のＯＰＣ  ＵＡサーバは、前記第１のデータセットを前記少なくとも１つのサブスクライバーに提供しない、
通信方法。
【請求項１０】
前記ＬＢのファイアウォールテーブルにより、前記第１のＯＰＣ  ＵＡサーバが前記少なくとも１つのサブスクライバーに前記第１のデータセットを提供することを阻止するステップをさらに含む、請求項９に記載の通信方法。
【請求項１１】
ＯＰＣ  ＵＡを用いて処理を行うシステムの負荷分散装置（ＬＢ）であって、
エンドポイントユニフォームリソースロケータ（ＵＲＬ）への接続要求をＯＰＣ  ＵＡクライアントから受信する送受信部と、
前記送受信部に接続されたプロセッサと、
を備え、
前記ＬＢは、冗長サーバセットと前記ＯＰＣ  ＵＡクライアントとの間に接続されており、
前記冗長サーバセットは、第１のＯＰＣ  ＵＡサーバ及び第２のＯＰＣ  ＵＡサーバを備え、
前記エンドポイントＵＲＬは、前記冗長サーバセットと通信するＯＰＣ  ＵＡクライアントにより指定され、
前記プロセッサは、前記要求に基づいて前記第１のＯＰＣ  ＵＡサーバへの接続をプロキシし、
前記第１のＯＰＣ  ＵＡサーバは、アクティブサーバであり、
前記第２のＯＰＣ  ＵＡサーバは、スタンバイサーバであり、
前記エンドポイントＵＲＬは、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバのそれぞれのＵＲＬとは異なり、
前記システムは、パブリッシャーがデータセットを含み、前記データセットを少なくとも１つのサブスクライバーに提供する、パブリッシャーサブスクライバー（Ｐｕｂ／Ｓｕｂ）通信モデルを適用し、
前記Ｐｕｂ／Ｓｕｂ通信モデルにおいて、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバは、それぞれ前記パブリッシャー及び前記少なくとも１つのサブスクライバーであり、
前記第１のＯＰＣ  ＵＡサーバは、第１のデータセットを含み、
前記第２のＯＰＣ  ＵＡサーバは、第２のデータセットを含み、
前記第１のデータセットが更新されたとき、前記第１のＯＰＣ  ＵＡサーバは、前記更新された第１のデータセットを前記少なくとも１つのサブスクライバーに提供し、
前記第２のＯＰＣ  ＵＡサーバは、前記更新された第１のデータセットを受信したとき、前記第２のデータセットを更新し、
前記第２のＯＰＣ  ＵＡサーバは、前記第２のデータセットを前記少なくとも１つのサブスクライバーに提供しない、
ＬＢ。
【請求項１２】
前記プロセッサが前記接続をプロキシした後、前記ＯＰＣ  ＵＡクライアントと前記第１のＯＰＣ  ＵＡサーバとの間でＴＣＰ／ＩＰ接続が確立される、請求項１１に記載のＬＢ。
【請求項１３】
ＯＰＣ  ＵＡを用いて処理を行うシステムの負荷分散装置（ＬＢ）であって、
エンドポイントユニフォームリソースロケータ（ＵＲＬ）への接続要求をＯＰＣ  ＵＡクライアントから受信する送受信部と、
前記送受信部に接続されたプロセッサと、
を備え、
前記ＬＢは、冗長サーバセットと前記ＯＰＣ  ＵＡクライアントとの間に接続されており、
前記冗長サーバセットは、第１のＯＰＣ  ＵＡサーバ及び第２のＯＰＣ  ＵＡサーバを備え、
前記エンドポイントＵＲＬは、前記冗長サーバセットと通信するＯＰＣ  ＵＡクライアントにより指定され、
前記プロセッサは、前記要求に基づいて前記第１のＯＰＣ  ＵＡサーバへの接続をプロキシし、
前記第１のＯＰＣ  ＵＡサーバは、アクティブサーバであり、
前記第２のＯＰＣ  ＵＡサーバは、スタンバイサーバであり、
前記エンドポイントＵＲＬは、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバのそれぞれのＵＲＬとは異なり、
前記システムは、パブリッシャーがデータセットを含み、前記データセットを少なくとも１つのサブスクライバーに提供する、パブリッシャーサブスクライバー（Ｐｕｂ／Ｓｕｂ）通信モデルを適用し、
前記Ｐｕｂ／Ｓｕｂ通信モデルにおいて、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバは、それぞれ前記パブリッシャー及び前記少なくとも１つのサブスクライバーであり、
前記第１のＯＰＣ  ＵＡサーバは、第１のデータセットを含み、
前記第２のＯＰＣ  ＵＡサーバは、第２のデータセットを含み、
フェイルオーバー処理において、前記アクティブサーバが、前記第１のＯＰＣ  ＵＡサーバから前記第２のＯＰＣ  ＵＡサーバに切り換えられ、
前記第２のＯＰＣ  ＵＡサーバは、前記第２のデータセットを前記少なくとも１つのサブスクライバーに提供し、
前記スタンバイサーバが、前記第２のＯＰＣ  ＵＡサーバから前記第１のＯＰＣ  ＵＡサーバに切り換えられ、
前記フェイルオーバー処理の後、前記第２のＯＰＣ  ＵＡサーバは、前記第２のデータセットを前記少なくとも１つのサブスクライバーに提供し、
前記第１のＯＰＣ  ＵＡサーバは、前記第２のデータセットを受信したとき、前記第１のデータセットを更新し、
前記第１のＯＰＣ  ＵＡサーバは、前記第１のデータセットを前記少なくとも１つのサブスクライバーに提供しない、
ＬＢ。
【発明の詳細な説明】
【背景技術】
【０００１】
ＯＰＣ（Open Platform Communications）  ＵＡ（Unified Architecture）は、プラットフォームから独立した、サービス中心のアーキテクチャであり、機械同士の通信、機械と企業体との通信、及び中間にある他の全てのものを含む、企業体全体での相互運用に必要な基盤を提供するアーキテクチャである。
【０００２】
ＯＰＣ  ＵＡクライアントは、冗長サーバセットを含むＯＰＣ  ＵＡサーバの、複数のエンドポイントのユニフォームリソースロケータ（ＵＲＬ）を指定することができない。その結果、ＯＰＣ  ＵＡクライアントは、冗長サーバセットにおいてＯＰＣ  ＵＡサーバと通信できない。それにもかかわらず、ユーザは、冗長サーバセットにおいてＯＰＣ  ＵＡクライアントを用いてＯＰＣ  ＵＡサーバと通信可能になることを希望している。
【発明の概要】
【０００３】
一以上の実施形態は、ＯＰＣ  ＵＡを用いたシステム処理を提供する。前記システムは、第１のＯＰＣ  ＵＡサーバ及び第２のＯＰＣ  ＵＡサーバを備える冗長サーバセットと、前記冗長サーバセットと通信するエンドポイントユニフォームリソースロケータ（ＵＲＬ）を指定するＯＰＣ  ＵＡクライアントと、前記冗長サーバセットと前記ＯＰＣ  ＵＡクライアントとの間に接続された負荷分散装置（ＬＢ）と、を備える。前記ＯＰＣ  ＵＡクライアントは、前記エンドポイントＵＲＬに接続要求を送信する。前記第１のＯＰＣ  ＵＡサーバは、アクティブサーバである。前記第２のＯＰＣ  ＵＡサーバは、スタンバイサーバである。前記ＬＢは、前記第１のＯＰＣ  ＵＡサーバへの接続をプロキシする。前記エンドポイントＵＲＬは、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバのそれぞれのＵＲＬとは異なる。
【０００４】
一以上の実施形態は、ＯＰＣ  ＵＡを用いた通信方法を提供する。前記通信方法は、ＯＰＣ  ＵＡクライアントにより、第１のＯＰＣ  ＵＡサーバ及び第２のＯＰＣ  ＵＡサーバを備える冗長サーバセットと通信するＵＲＬを指定するステップと、前記ＯＰＣ  ＵＡクライアントにより、前記エンドポイントＵＲＬに接続要求を送信するステップと、前記冗長サーバセットと前記ＯＰＣ  ＵＡクライアントとの間に接続されたＬＢにより、前記第１のＯＰＣ  ＵＡサーバへの接続をプロキシするステップと、を含む。前記第１のＯＰＣ  ＵＡサーバは、アクティブサーバである。前記第２のＯＰＣ  ＵＡサーバは、スタンバイサーバである。前記エンドポイントＵＲＬは、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバのそれぞれのＵＲＬとは異なる。
【０００５】
一以上の実施形態は、ＯＰＣ  ＵＡを用いて処理を行うシステムのＬＢを提供する。前記ＬＢは、エンドポイントユニフォームリソースロケータ（ＵＲＬ）への接続要求をＯＰＣ  ＵＡクライアントから受信する送受信部と、前記送受信部に接続されたプロセッサと、を備える。前記ＬＢは、冗長サーバセットと前記ＯＰＣ  ＵＡクライアントとの間に接続されている。前記冗長サーバセットは、第１のＯＰＣ  ＵＡサーバ及び第２のＯＰＣ  ＵＡサーバを備えている。前記エンドポイントＵＲＬは、前記冗長サーバセットと通信するＯＰＣ  ＵＡクライアントにより指定される。前記プロセッサは、前記要求に基づいて前記第１のＯＰＣ  ＵＡサーバへの接続をプロキシする。前記第１のＯＰＣ  ＵＡサーバは、アクティブサーバである。前記第２のＯＰＣ  ＵＡサーバは、スタンバイサーバである。前記エンドポイントＵＲＬは、前記第１のＯＰＣ  ＵＡサーバ及び前記第２のＯＰＣ  ＵＡサーバのそれぞれのＵＲＬとは異なる。
【０００６】
一以上の実施形態によれば、本格的な改変、負荷分散装置の導入によるＯＰＣ  ＵＡサーバの再コンパイル、及び、ＯＰＣ  ＵＡＰｕｂ／Ｓｕｂ通信モジュールと連動させたファイアウォールテーブルの操作を行うことなく、任意のＯＰＣ  ＵＡサーバから透過的な冗長サーバセットを構成することが可能である。
【図面の簡単な説明】
【０００７】
【図１】一以上の実施形態に係る、ＯＰＣ  ＵＡシステムを示す図である。
【図２】一以上の実施形態に係る、ＯＰＣ  ＵＡクライアントのハードウェアの概略図である。
【図３】一以上の実施形態に係る、エンドポイントＵＲＬを指定するための、ＯＰＣ  ＵＡクライアントに表示される管理者設定の概略図である。
【図４】一以上の実施形態に係る、負荷分散装置のハードウェアの概略図である。
【図５】一以上の実施形態に係る、ＯＰＣ  ＵＡサーバのハードウェアの概略図である。
【図６】一以上の実施形態に係る、ＯＰＣ  ＵＡシステムにおける初期化後の処理のシーケンス図である。
【図７】一以上の実施形態に係る、サーバ名及びサーバＵＲＬに関連付けられたエンドポイントＵＲＬを示す、負荷分散装置に含まれるテーブルである。
【図８】一以上の実施形態に係る、ＯＰＣ  ＵＡシステムにおけるフェイルオーバーの処理のシーケンス図である。
【図９】一以上の実施形態に係る、ＯＰＣ  ＵＡシステムの初期化後の処理のフローチャートである。
【図１０】一以上の実施形態に係る、ＯＰＣ  ＵＡシステムにおけるフェイルオーバー処理のフローチャートである。
【発明を実施するための形態】
【０００８】
本発明の実施形態について、図面を参照しながら、以下詳細に説明する。整合をとるため、複数の図面における同じ要素は、同じ参照符号で示される。
【０００９】
より完全な発明の理解のため、以下の発明の実施形態の説明において、多数の具体的な詳細について説明する。しかしながら、当業者にとって、発明がこれらの具体的な詳細以外で実施され得ることは明らかである。他の例において、発明が不明確になるのを回避するために、周知の構成については詳細に説明していない。
【００１０】
図１は、一以上の実施形態に係る、ＯＰＣ  ＵＡシステム１を示す。ＯＰＣ  ＵＡシステム１は、ＯＰＣ  ＵＡクライアント１１０と、負荷分散装置（ＬＢ）１２０と、ＯＰＣ  ＵＡサーバ１３１及び１３２を備える冗長サーバセット１３０と、ＯＰＣ  ＵＡサーバ１４１及び１４２と、を備える。ＯＰＣ  ＵＡクライアント１１０は、ＬＢ１２０に接続されており、ＬＢ１２０は、冗長サーバセット１３０のＯＰＣ  ＵＡサーバ１３１及び１３２に接続されている。
【００１１】
ＯＰＣ  ＵＡシステム１は、クライアント−サーバ型に加えてＯＰＣ  ＵＡパブリッシャー（Publisher）及びサブスクライバー（Subscriber）のメッセージ送受信型を規定する、ＯＰＣ  ＵＡパブリッシャーサブスクライバー（Ｐｕｂ／Ｓｕｂ）通信モデルを適用することにより、プラットフォームから独立し、サービス中心のアーキテクチャを適用する。
【００１２】
Ｐｕｂ／Ｓｕｂ通信モデルには、パブリッシャー及びサブスクライバーという２つの役割がある。パブリッシャー及びサブスクライバーは、変数値及びイベントフィールドを示すデータセットをそれぞれ格納している。パブリッシャーは、ユーザデータグラムプロトコル（ＵＤＰ）を用いて、データセットを含むメッセージを一以上のサブスクライバーに送信し、サブスクライバーのそれぞれは、同一のメッセージを受信する。
【００１３】
一以上の実施形態において、パブリッシャーに格納されたデータセットの値が更新された場合、パブリッシャーは、更新された値を有するデータセットを、一以上のサブスクライバーに提供する。サブスクライバーは、更新された値を有するデータセットをパブリッシャーから受信したとき、更新された値を有するデータセットに基づいて、内部に格納されたデータセットを更新する。
【００１４】
ＯＰＣ  ＵＡクライアント１１０は、ＯＰＣ  ＵＡシステム１におけるクライアントコンピュータである。ＯＰＣ  ＵＡクライアント１１０は、ＯＰＣ  ＵＡサーバ１３１及び１３２にメッセージを送信するソフトウェアアプリケーションを有する。メッセージは、ＯＰＣ  ＵＡクライアント１１０とＯＰＣ  ＵＡサーバ１３１及び１３２との間で伝送される、所定のサービス要求又は応答を示すデータユニットであってよい。
【００１５】
ＬＢ１２０は、プロキシ、ヘルスチェック、及びＵＤＰ切換え機能を実行する。プロキシは、ＯＰＣ  ＵＡクライアント１１０並びにＯＰＣ  ＵＡサーバ１３１、１３２、１４１及び１４２へのＴＣＰ／ＩＰ接続を管理する。ＬＢ１２０は、ＯＰＣ  ＵＡサーバであってよく、パブリッシャー又はサブスクライバーのいずれかであってよい。
【００１６】
冗長サーバセット１３０のＯＰＣ  ＵＡサーバ１３１及び１３２は、一組の冗長サーバである。ＯＰＣ  ＵＡシステム１は、一組又は複数組の冗長ＯＰＣ  ＵＡサーバを含んでよい。これらの冗長ＯＰＣ  ＵＡサーバにより、ＯＰＣ  ＵＡシステム１は冗長モードを使用できるようになる。
【００１７】
一以上の実施形態において、冗長モードは、メッセージがＯＰＣ  ＵＡサーバ１３１及び１３２の双方により受信される、ホットスタンバイモードであってよい。ホットスタンバイモードは、ミラーリング又はサーバミラーリングと称されうる。ホットスタンバイモードにおいて、ＯＰＣ  ＵＡサーバ１３１及び１３２の一方は、アクティブサーバとして構成され、ＯＰＣ  ＵＡサーバ１３１及び１３２の他方は、スタンバイサーバとして構成される。アクティブサーバは、メインサーバ又はマスターサーバと称され、スタンバイサーバは、マックアップサーバ又はミラーサーバと称されてよい。
【００１８】
一以上の実施形態において、ＯＰＣ  ＵＡサーバ１３１及び１３２の双方は、パブリッシャー及びサブスクライバーの双方として機能してよい（つまり、パブリッシャー及びサブスクライバーの双方の機能を含む）。
【００１９】
次に、ＯＰＣ  ＵＡサーバ１４１及び１４２について、一以上の実施形態において、ＯＰＣ  ＵＡサーバ１４１はパブリッシャーであり、ＯＰＣ  ＵＡサーバ１４２はサブスクライバーであってよく、その逆であってもよい。あるいは、ＯＰＣ  ＵＡサーバ１４１及び１４２は、双方ともパブリッシャー又はサブスクライバーであってもよい。
【００２０】
次に、ＯＰＣ  ＵＡクライアント１１０、ＬＢ１２０、ＯＰＣ  ＵＡサーバ１３１、１３２、１４１及び１４２のハードウェア構成について説明する。
【００２１】
図２は、一以上の実施形態に係る、ＯＰＣ  ＵＡクライアント１１０のハードウェアの概略図である。図２に示すように、ＯＰＣ  ＵＡクライアント１１０は、プロセッサ（例えば中央処理装置（ＣＰＵ））１１０１、プロセッサ１１０１と通信するメモリ１１０２、ストレージ１１０３、送受信部１１０４、及びディスプレイ１１０５を少なくとも備える。プロセッサ１１０１は、メモリ１１０２に格納されたプログラムを実行する。ストレージ１１０３は、非一時的なコンピュータ可読の記憶媒体である。送受信部１１０４は、メッセージ（データ、信号）を送受信し、ローカルエリアネットワーク（ＬＡＮ）インタフェース、無線ＬＡＮインタフェース、又は、例えばロングタームエヴォリューション（ＬＴＥ）及びＮｅｗ  Ｒａｄｉｏ（ＮＲ）（５Ｇ）などのセルラーネットワークインタフェースの少なくともいずれかであってよい。ディスプレイ１１０５は、プロセッサ１１０１からの指示に基づいて情報を表示する。
【００２２】
図３に示すように、ディスプレイ１１０５は、ＯＰＣ  ＵＡサーバのエンドポイントＵＲＬを指定するために使用される管理者設定を表示する。例えば、ＯＰＣ  ＵＡクライアント１１０が冗長サーバセット１３０との通信を開始する前に、冗長サーバセット１３０のエンドポイントＵＲＬが、管理者設定において指定される。
【００２３】
図４は、一以上の実施形態に係る、ＬＢ１２０のハードウェアの概略図である。図４に示すように、ＬＢ１２０は、プロセッサ（例えばＣＰＵ）１２０１、メモリ１２０２、ストレージ１２０３、及び送受信部１２０４を少なくとも備える。プロセッサ１２０１は、メモリ１２０２に格納されたプログラムを実行する。ストレージ１２０３は、非一時的なコンピュータ可読の記憶媒体である。送受信部１２０４は、メッセージを送受信し、ＬＡＮインタフェース、無線ＬＡＮインタフェース、又は、例えばＬＴＥ及びＮＲ（５Ｇ）などのセルラーネットワークインタフェースの少なくともいずれかであってよい。ＬＢ１２０は、ディスプレイ１１０５を備えていてもよい。例えば、送受信部１２０４は、ＯＰＣ  ＵＡクライアント１１０からデータ信号（例えばエンドポイントＵＲＬへの接続要求）を受信する。プロセッサ１２０１は、ＯＰＣ  ＵＡクライアント１１０からの接続要求に基づき、ＯＰＣ  ＵＡサーバ１３１への接続をプロキシする。
【００２４】
図５は、一以上の実施形態に係る、ＯＰＣ  ＵＡサーバ１３１、１３２、１４１及び１４２のハードウェアの概略図である。図５に示すように、ＯＰＣ  ＵＡサーバ１３１、１３２、１４１及び１４２のそれぞれは、プロセッサ１３０１（例えばＣＰＵ）、メモリ１３０２、ストレージ１３０３、及び送受信部１３０４を少なくとも備える。プロセッサ１３０１は、メモリ１３０２に格納されたプログラムを実行する。ストレージ１３０３は、非一時的なコンピュータ可読の記憶媒体である。送受信部１３０４は、メッセージを送受信し、ＬＡＮインタフェース、無線ＬＡＮインタフェース、又は、例えばＬＴＥ及びＮＲ（５Ｇ）などのセルラーネットワークインタフェースの少なくともいずれかであってよい。ＯＰＣ  ＵＡサーバ１３１、１３２、１４１及び１４２のそれぞれは、ディスプレイ１１０５を備えていてもよい。
【００２５】
次に、ＯＰＣ  ＵＡシステム１におけるプログラムの初期化後の一連の処理について説明する。具体的には、図６は、一以上の実施形態に係る、ＯＰＣ  ＵＡシステム１における処理のシーケンス図である。
【００２６】
図６のステップＳ１０１において、冗長サーバセット１３０のエンドポイントＵＲＬが、ＯＰＣ  ＵＡクライアント１１０において指定される。例えば、指定されたエンドポイントＵＲＬは、opc.tcp://192.168.1.150である。
【００２７】
ステップＳ１０２において、ＯＰＣ  ＵＡクライアント１１０は、指定されたエンドポイントＵＲＬへの接続要求を、ＬＢ１２０に送信する。
【００２８】
ステップＳ１０３において、ＬＢ１２０は、指定されたエンドポイントＵＲＬへの接続を、ＯＰＣ  ＵＡサーバ１３１にプロキシする。例えば、図７に示すように、ＬＢ１２０は、サーバ名及びサーバＵＲＬに関連付けられたエンドポイントＵＲＬを含むテーブルを備える。冗長サーバセット１３０のエンドポイントＵＲＬ「192.168.1.150」は、ＯＰＣ  ＵＡサーバ１３１に関連付けられている（つまり、冗長サーバセット１３０において、ＯＰＣ  ＵＡサーバ１３１はアクティブサーバとして構成され、ＯＰＣ  ＵＡサーバ１３２はスタンバイ（バックアップ）サーバとして構成されている）。
【００２９】
ステップＳ１０４において、ＬＢ１２０は、ＯＰＣ  ＵＡサーバ１３１に接続（例えばプロキシ接続）要求を送信する。
【００３０】
ステップＳ１０５において、ＯＰＣ  ＵＡクライアント１１０とＯＰＣ  ＵＡサーバ１３１との間で、ＴＣＰ／ＩＰ接続が確立される。
【００３１】
ステップＳ１０６において、ＯＰＣ  ＵＡクライアント１１０は、冗長サーバセット１３０におけるデータセットを更新するために使用される設定値（ＳＶ）を、エンドポイントＵＲＬに送信する。データセットは、指定されたデータの値のリストであり、イベントフィールド及び変数を含む。
【００３２】
ステップＳ１０７において、ＬＢ１２０は、ＳＶをＯＰＣ  ＵＡサーバ１３１に送信する。ＳＶは、冗長サーバセット１３０のエンドポイントＵＲＬに関連付けられている。
【００３３】
ステップＳ１０８において、ＯＰＣ  ＵＡサーバ１３１は、ＳＶに基づいて値を算出する。
【００３４】
ステップＳ１０９において、パブリッシャー及びサブスクライバーの双方として機能するＯＰＣ  ＵＡサーバ１３１は、算出した値を含むデータセットを提供する。
【００３５】
ステップＳ１１０において、サブスクライバーとして機能するＯＰＣ  ＵＡサーバ１４２は、ＯＰＣ  ＵＡサーバ１３１からデータセットを受信し、内部に格納されたデータセットの現在の値を、ＯＰＣ  ＵＡサーバ１３１からのデータセットに含まれる算出された値に書き換える。
【００３６】
ステップＳ１１１において、パブリッシャー及びサブスクライバーの双方として機能するＯＰＣ  ＵＡサーバ１３２は、ＯＰＣ  ＵＡサーバ１３１からデータセットを受信し、内部に格納されたＳＶを、ＯＰＣ  ＵＡサーバ１３１からのデータセットに含まれる算出された値に更新する。
【００３７】
ステップＳ１１２において、ＯＰＣ  ＵＡサーバ１３２は、ＳＶに基づいて新たな値を算出し、データセットを用いて他のサーバに新たな値を提供することを試行する。しかしながら、ＬＢ１２０は、スタンバイ（バックアップ）サーバが他のサーバにデータセットを提供することを禁止するファイアウォールテーブルを備える。言い換えると、ＯＰＣ  ＵＡサーバ１３２によるデータセットの発行は、ＬＢ１２０のファイアウォールにより阻止される。
【００３８】
次に、ＯＰＣ  ＵＡシステム１におけるプログラムの初期化後の他の一連の処理について説明する。図８は、一以上の実施形態に係る、ＯＰＣ  ＵＡシステム１におけるフェイルオーバーの処理のシーケンス図である。
【００３９】
図８に示すように、ステップＳ２０１において、ＬＢ１２０は、ハートビート信号（つまりヘルスチェック信号）をＯＰＣ  ＵＡサーバ１３１に送信することにより、ＯＰＣ  ＵＡサーバ１３１についてヘルスチェックを実行する。一以上の実施形態におけるここでの例では、ＯＰＣ  ＵＡサーバ１３１はアクティブサーバとして機能し、ＯＰＣ  ＵＡサーバ１３２は、スタンバイサーバとして機能する。
【００４０】
ステップＳ２０２において、ＯＰＣ  ＵＡサーバ１３１は、ハートビート信号に応答して、確認応答信号をＬＢ１２０に送信する。ステップＳ２０２において、ＬＢ１２０がハートビート信号を送信した後、確認応答信号を受信していなければ、ＬＢ１２０は、ステップＳ２０４において、ＯＰＣ  ＵＡサーバ１３１が応答していないと決定する（つまり、ＯＰＣ  ＵＡサーバ１３１における障害と決定する）。
【００４１】
ＯＰＣ  ＵＡサーバ１３１が応答していないと決定すると、ステップＳ２０５において、ＬＢ１２０は、冗長サーバセット１３０のエンドポイントＵＲＬを、ＯＰＣ  ＵＡサーバ１３１からＯＰＣ  ＵＡサーバ１３２に切り換える。
【００４２】
ステップＳ２０６において、ＬＢ１２０は、ＯＰＣ  ＵＡサーバ１３２のデータセットの発行をＯＰＣ  ＵＡサーバ１３２に許可するように、ファイアウォールルールを変更する。
【００４３】
ステップＳ２０７において、ＬＢ１２０は、ＯＰＣ  ＵＡサーバ１３２に接続要求を送信する。
【００４４】
ステップＳ２０８において、ＯＰＣ  ＵＡクライアント１１０とＯＰＣ  ＵＡサーバ１３２との間で、ＴＣＰ／ＩＰ接続が確立される。
【００４５】
ステップＳ２０９において、ＯＰＣ  ＵＡサーバ１３２は、他のサーバにデータセットを提供する。
【００４６】
ステップＳ２１０において、サブスクライバーとして機能するＯＰＣ  ＵＡサーバ１４２は、ＯＰＣ  ＵＡサーバ１３２のデータセットを受信し、ＯＰＣ  ＵＡサーバ１４２のデータセットに内部に格納された現在の値を、ＯＰＣ  ＵＡサーバ１３２から受信したデータセット内の値に書き換える。
【００４７】
従って、一以上の実施形態によれば、アクティブサーバとスタンバイサーバとがフェイルオーバー処理（つまり２つのサーバのうち１つが応答しないとき）により切り換えられ、切換え後の新たなアクティブサーバが、ＯＰＣ  ＵＡシステム１の他のサブスクライバーにデータセットを提供する。さらに、切換え前のアクティブサーバは、切換え後は、他のサブスクライバーにデータセットを提供しない。一以上の実施形態のさらなる利点について、以下説明する。
【００４８】
一以上の実施形態によれば、ＯＰＣ  ＵＡクライアントとＯＰＣ  ＵＡサーバとの間の直接接続は、ＬＢを使用して提供される。これにより、ＯＰＣ  ＵＡシステム１では、仮想サーバなどの仲介手段を用いる必要がなくなる。ＬＢは、接続の管理を行うが、ＯＰＣ  ＵＡサーバのそれぞれに直接向かう接続の経路の決定も行う。例えば、ＯＰＣ  ＵＡクライアントは、エンドポイントＵＲＬに接続され、ＯＰＣ  ＵＡサーバのノード値を変更し、呼出／要求は、アクティブサーバで直接行われる。
【００４９】
その結果、仲介手段を用いた場合に発生する単一点障害が防止され得る。さらに、ＬＢは、ＯＰＣ  ＵＡシステムの基盤に本格的な改変を加えることなく、容易にＯＰＣ  ＵＡシステムに組み込むことができる。
【００５０】
一以上の実施形態において、上述のＵＤＰハートビートを用いた切換時間は、約１００から２００ｍｓであり、仮想サーバ（例えば仮想サーバ方式を実装する）により要求される３０秒のスイッチ時間よりも極めて速い。すなわち、一以上の実施形態は、フェイルオーバーの速度を短縮し、その結果、切換中におけるデータの喪失を減らすことができる。
【００５１】
仮想仲介サーバでは、全てのユースケースについて、各クライアントにカスタムインストールを行うことが必要とされる。適正数量の仮想クライアントが必要であり、各仮想クライアントの規模とサーバの数量に対して要求されるハードウェアが接続されることが必要である。その一方で、ＬＢを用いる一以上の実施形態に係る発明では、インストール及び実装の自由度が高く、より多くのサーバが接続された場合に規模の変更が容易である。例えば、冗長サーバに、より多くのＯＰＣ  ＵＡサーバを追加することは、構成ファイルを変更するのと同程度に容易であり、初期実装の後に実行することができる。ウェブトラフィックに用いられるＬＢは、数百から数千の接続を円滑に処理するであろう。
【００５２】
最後に、一以上の実施形態において、複数のＯＰＣ  ＵＡクライアントは、同一のＬＢを利用することができる。ＯＰＣ  ＵＡクライアント及びＯＰＣ  ＵＡサーバは、ＬＢと相互にやり取りするために追加のソフトウェア又は改変を必要としない。全てのシステム構成は、ＬＢにより直接もたらされ、ＬＢにより実装される。
【００５３】
図９は、一以上の実施形態に係るフローチャートである。このフローチャートは、図６を参照して上記説明した処理を反映している。
【００５４】
図９のステップＳ１００１において、ＯＰＣ  ＵＡクライアント１１０は、冗長サーバセット１３０と通信するエンドポイントＵＲＬを指定する。冗長サーバセット１３０は、ＯＰＣ  ＵＡサーバ１３１（以下「第１のＯＰＣ  ＵＡサーバ」という）及びＯＰＣ  ＵＡサーバ１３２（以下「第２のＯＰＣ  ＵＡサーバ」という）を含む。第１及び第２のＯＰＣ  ＵＡサーバは、それぞれアクティブサーバ及びスタンバイサーバである。
【００５５】
ステップＳ１００２において、ＯＰＣ  ＵＡクライアント１１０は、エンドポイントＵＲＬに接続要求を送信する。
【００５６】
ステップＳ１００３において、冗長サーバセット１３０とＯＰＣ  ＵＡクライアント１１０との間に接続されたＬＢ１２０は、第１のＯＰＣ  ＵＡサーバへの接続をプロキシする。一以上の実施形態において、エンドポイントＵＲＬは、第１のＯＰＣ  ＵＡサーバ及び第２のＯＰＣ  ＵＡサーバのそれぞれのＵＲＬとは異なっていてよい。ＬＢ１２０が接続をプロキシした後、ＯＰＣ  ＵＡクライアント１１０と第１のＯＰＣ  ＵＡサーバとの間で、ＴＣＰ／ＩＰ接続が確立される。
【００５７】
Ｐｕｂ／Ｓｕｂ通信モデルでは、第１のＯＰＣ  ＵＡサーバ及び第２のＯＰＣ  ＵＡサーバは、それぞれパブリッシャー及び少なくとも１つのサブスクライバーである。第１及び第２のＯＰＣ  ＵＡサーバは、それぞれ第１のデータセット及び第２のデータセットである。
【００５８】
ステップＳ１００４において、第１のＯＰＣ  ＵＡサーバは、第１のデータセットを更新する。
【００５９】
ステップＳ１００５において、第１のＯＰＣ  ＵＡサーバは、更新された第１のデータセットを、少なくとも１つのサブスクライバーに（つまり第２のＯＰＣ  ＵＡサーバに）提供する。
【００６０】
ステップＳ１００６において、第２のＯＰＣ  ＵＡサーバは、更新された第１のデータセットを第１のＯＰＣ  ＵＡサーバから受信したとき、第２のデータセットを更新する。一以上の実施形態において、ＬＢ１２０のファイアウォールテーブルにより、第２のＯＰＣ  ＵＡサーバが前記少なくとも１つのサブスクライバー以外の他の既存のサブスクライバーに第２のデータセットを提供することが阻止される。
【００６１】
図１０は、一以上の実施形態に係るフローチャートである。このフローチャートは、図８を参照して上記説明した処理を反映している。図１０のステップＳ２００１−２００３は、図９のステップＳ１００１−１００３と同一であるため、簡略化のためここでは説明を繰り返さない。
【００６２】
ステップＳ２００４において、第１のＯＰＣ  ＵＡサーバ１３１の故障を検出すると、フェイルオーバー処理が実行され、第２のＯＰＣ  ＵＡサーバをアクティブサーバとし、第１のＯＰＣ  ＵＡサーバをスタンバイサーバとする切換えが行われる。切換え後、第２のＯＰＣ  ＵＡサーバは、パブリッシャーとなる。
【００６３】
ステップＳ２００５において、第２のＯＰＣ  ＵＡサーバは、前記少なくとも１つのサブスクライバー以外の他の既存のサブスクライバーに第２のデータセットを提供する。
【００６４】
ステップＳ２００６において、他の既存のサブスクライバーは、第２のＯＰＣ  ＵＡサーバから第２のデータセットを受信したとき、データセットをそれぞれ更新する。一以上の実施形態において、フェイルオーバー処理の結果としての切換えの後、ＬＢ１２０のファイアウォールテーブルにより、第１のＯＰＣ  ＵＡサーバがサブスクライバーに第１のデータセットを提供することが阻止される。
【００６５】
本開示につき、限られた数の実施形態に関して説明したが、当業者は、本開示を利用して、範囲を逸脱することなく、多様な他の実施形態が考案され得ることを理解できるであろう。従って、本発明の範囲は、添付された特許請求の範囲のみに限定されるものではない。
【図１】
0006988973.tif 000002
【図２】
0006988973.tif 000003
【図３】
0006988973.tif 000004
【図４】
0006988973.tif 000005
【図５】
0006988973.tif 000006
【図６】
0006988973.tif 000007
【図７】
0006988973.tif 000008
【図８】
0006988973.tif 000009
【図９】
0006988973.tif 000010
【図１０】
0006988973.tif 000011