(57)【要約】      （修正有）【課題】サーバ装置クライアント装置間で常時接続を維持して双方向通信を実現するシステムにおいて、中継するサーバが一時的に使用できなくなる場合においてもサービスの可用性を維持するネットワーク制御装置およびネットワーク制御システムを提供する。【解決手段】ネットワーク制御システムにおいて、ネットワークを介して１つ以上の機器と接続する。第１の中継サーバ２ａ、第２の中継サーバ２ｂ及びネットワークを介して接続する制御サーバを有する。制御サーバは、第１の中継サーバの動作を停止させる停止要求に基づき、新たな接続先を、第２の中継サーバに決定する移行先決定部を有する。【選択図】図２
2020096229.tif 000002
【特許請求の範囲】
【請求項１】
第１の中継サーバはネットワークを介して１つ以上の機器と接続し、前記第１の中継サーバおよび第２の中継サーバと、前記ネットワークを介して接続するネットワーク制御装置において、
前記第１の中継サーバの動作を停止させる停止要求を受け付ける受付部と、
前記第１の中継サーバに接続中の前記機器の識別子情報を取得する識別情報取得部と、
前記停止要求に基づき、取得した前記識別子情報で識別される前記機器の各々に対応する新たな接続先を、前記第２の中継サーバに決定する移行先決定部と、
前記機器と前記第２の中継サーバとを接続させるために、前記機器ごとの認証情報を生成する生成部と、
前記機器の前記第２の中継サーバとの接続を指示する移行指示とともに前記認証情報を、前記機器各々に送信して移行を制御する制御部と、
を有するネットワーク制御装置。
【請求項２】
さらに前記中継サーバの動作状態に関する中継サーバ情報を取得する中継サーバ情報取得部を持ち、前記移行先決定部は、前記中継サーバ情報取得部が取得した前記中継サーバ情報をもとに、前記新たな接続先を決定する請求項１に記載のネットワーク制御装置。
【請求項３】
前記移行先決定部は、前記第１の中継サーバを中継して通信する第１の機器と第２の機器との前記新たな接続先を、前記第２の中継サーバに決定する請求項２に記載のネットワーク制御装置。
【請求項４】
前記制御部は、前記認証情報を中継サーバ情報データベースに登録する請求項１に記載のネットワーク制御装置。
【請求項５】
前記制御部は、前記移行指示とともに前記認証情報を送信する前記機器に対して、前記認証情報を使用して前記第２の中継サーバと接続確立するように指示する請求項１に記載のネットワーク制御装置。
【請求項６】
第１の中継サーバはネットワークを介して１つ以上の機器と接続しており、前記第１の中継サーバおよび第２の中継サーバと、前記ネットワークを介して接続するネットワーク制御装置において、
前記第１の中継サーバの動作を停止させる停止要求を受け付けるステップと、
前記第１の中継サーバに接続中の前記機器の識別子情報を取得するステップと、
前記停止要求に基づき、取得した前記識別子情報で識別される前記機器の各々に対応する新たな接続先を、前記第２の中継サーバに決定するステップと、
前記機器と前記第２の中継サーバとを接続させるために、前記機器ごとの認証情報を生成するステップと、
前記機器の前記第２の中継サーバとの接続を指示する移行指示とともに前記認証情報を、前記機器各々に送信して移行を制御するステップと、
を有するネットワーク制御方法。
【請求項７】
コンピュータに、
第１の中継サーバの動作を停止させる停止要求を受け付けるステップと、
前記第１の中継サーバに接続中の１つまたは複数の機器の識別子情報を取得するステップと、
前記停止要求に基づき、取得した前記識別子情報で識別される前記機器の各々に対応する新たな接続先を、第２の中継サーバに決定するステップと、
前記機器と前記第２の中継サーバとを接続させるために、前記機器ごとの認証情報を生成するステップと、
前記機器の前記第２の中継サーバとの接続を指示する移行指示とともに前記認証情報を、前記機器各々に送信して移行を制御するステップと、
を実行させるためのプログラム。
【請求項８】
ネットワークを介して１つ以上の機器と接続する第１の中継サーバ、第２の中継サーバおよびネットワーク制御装置を含み、前記第１の中継サーバおよび前記第２の中継サーバは、前記ネットワークを介して前記ネットワーク制御装置と接続するネットワーク制御システムにおいて、
前記ネットワーク制御装置は
前記第１の中継サーバの動作を停止させる停止要求を受け付ける受付部と、
前記第１の中継サーバに接続中の前記機器の識別子情報を取得する識別情報取得部と、
前記停止要求に基づき、取得した前記識別子情報で識別される前記機器の各々に対応する新たな接続先を、前記第２の中継サーバに決定する移行先決定部と、
前記機器と前記第２の中継サーバとを接続させるために、前記機器ごとの認証情報を生成する生成部と、
前記機器の前記第２の中継サーバとの接続を指示する移行指示とともに前記認証情報を、前記機器各々に送信して移行を制御する制御部とを有し、
前記機器は、前記移行指示と前記認証情報をもとに、前記第２の中継サーバとの接続を行う接続確立部を有する
ネットワーク制御システム。
【請求項９】
第１の中継サーバはネットワークを介して１つ以上の機器と接続し、前記第１の中継サーバおよび前記第１の中継サーバを含む複数の中継サーバと、前記ネットワークを介して接続するネットワーク制御装置において、
前記第１の中継サーバの動作を停止させる停止要求を受け付ける受付部と、
前記第１の中継サーバに接続中の前記機器の識別子情報を取得する識別情報取得部と、
前記停止要求に基づき、取得した前記識別子情報で識別される前記機器の各々に対応する新たな接続先を、前記第１の中継サーバを除く前記中継サーバの中から決定する移行先決定部と、
前記機器と前記機器の各々に対応する前記新たな接続先とを接続させるために、前記機器ごとの認証情報を生成する生成部と、
前記機器の各々に対応する前記新たな接続先との接続を指示する移行指示とともに前記認証情報を、前記機器各々に送信して移行を制御する制御部と、
を有するネットワーク制御装置。
【請求項１０】
前記移行先決定部は、前記機器の各々に対応する前記新たな接続先を決定する際に、前記中継サーバに接続する前記機器の接続数が均等になるように決定する請求項９に記載のネットワーク制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ネットワーク制御装置、ネットワーク制御方法およびネットワーク制御システムに関する。
【背景技術】
【０００２】
サーバ装置とクライアント装置との間で常時接続を維持することにより、サーバ装置とクライアント装置との間の双方向通信を実現するシステム、あるいは同一サーバ装置に接続する複数のクライアント装置との間の双方向通信を、サーバ装置を通信の中継役として機能させることにより実現するシステムが存在している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１３５６１１号公報
【特許文献２】特許第５９４０５６６号公報
【非特許文献】
【０００４】
【非特許文献１】ＲＦＣ  ６４５５  Ｔｈｅ  ＷｅｂＳｏｃｋｅｔ  Ｐｒｏｔｏｃｏｌ（http://tools.ietf.org/html/rfc6455）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、サーバ装置とクライアント装置との間で常時接続を維持して双方向通信を実現するシステムにおいて、中継するサーバのソフトウェア更新・再起動を行う場合や中継するサーバのスケールインを実施するために中継するサーバが一時的に使用できなくなる場合においても、サービスの可用性を維持するネットワーク制御装置およびネットワーク制御システムを提案することである。
【課題を解決するための手段】
【０００６】
本発明の実施形態に係るネットワーク制御装置は、
第１の中継サーバはネットワークを介して１つ以上の機器と接続し、前記第１の中継サーバおよび第２の中継サーバと、前記ネットワークを介して接続するネットワーク制御装置において、
前記第１の中継サーバの動作を停止させる停止要求を受け付ける受付部と、
前記第１の中継サーバに接続中の前記機器の識別子情報を取得する識別情報取得部と、
前記停止要求に基づき、取得した前記識別子情報で識別される前記機器の各々に対応する新たな接続先を、前記第２の中継サーバに決定する移行先決定部と、
前記機器と前記第２の中継サーバとを接続させるために、前記機器ごとの認証情報を生成する生成部と、
前記機器の前記第２の中継サーバとの接続を指示する移行指示とともに前記認証情報を、前記機器各々に送信して移行を制御する制御部と、
を有するネットワーク制御装置である。
【図面の簡単な説明】
【０００７】
【図１】図１は、本発明の第１の実施形態に係るネットワーク制御装置を含むネットワーク制御システムの構成例を示す図である。
【図２】図２は、第１の実施形態に係る制御サーバ１を含むネットワーク制御システムにおける制御サーバ１、ブローカサーバ（＃１）、ブローカサーバ（＃２）、調停サーバ、クライアント（ＰＣ）、認証情報データベース、ブローカサーバ情報データベースの構成の一例を示した図である。
【図３】図３は、第１の実施形態に係る制御サーバ１を含むネットワーク制御システムにおける図２の構成に基づいて、クライアント（ＰＣ）が、ブローカサーバ（＃１）と常時接続を確立するまでの処理シーケンスの一例を示す図である。
【図４】図４は、ブローカサーバ情報データベース１０に含まれるブローカサーバ情報の一例である。
【図５】図５は、認証情報データベース９に登録されている認証情報の一例である。
【図６Ａ】図６Ａは、クライアント（ＰＣ）の接続先をブローカサーバ（＃１）からブローカサーバ（＃２）に切り替える処理をする制御サーバの処理の全体像を示す図である。
【図６Ｂ】図６Ｂは、クライアント（ＰＣ）の接続先をブローカサーバ（＃１）からブローカサーバ（＃２）に切り替える処理をする制御サーバの処理フローの例を示した図である。
【図６Ｃ】図６Ｃは、図６ＢのＳ６１６の処理において移行指示通信部から移行指示を受信したブローカサーバ（＃１）が、接続しているクライアント（ＰＣ）に移行処理を行った場合のクライアント（ＰＣ）の処理フローの例を示した図である。
【図７】図７は、クライアントＩＤ一覧の一例を示す図である。
【図８】図８は、移行先情報の一例を示す図である。
【図９】図９は、制御サーバ１に含まれる認証情報生成部が、認証情報データベースの認証情報を更新する様子を示す一例である。
【図１０】図１０は、第１の実施形態に係るネットワーク制御装置（制御サーバ１）を含むネットワーク制御システムが、認証サーバを含む場合のネットワーク制御システムの構成例を示す図である。
【図１１】図１１は、第１の実施形態に係る制御サーバを含むネットワーク制御システムにおいて、図１０の構成に基づいて、クライアント（ＰＣ）が、ブローカサーバ（＃１）と常時接続を確立するまでの処理シーケンスの一例を示す図である。
【図１２】図１２は、本発明の第２の実施形態に係るネットワーク制御装置（制御サーバ）を含むネットワーク制御システムの構成例を示す図である。
【図１３】図１３は、本発明の第２の実施形態に係る制御サーバを含むネットワーク制御システムにおいて、図１２の構成に基づいて、クライアント（ＰＣ）が、ブローカサーバ（＃１）と常時接続を確立するまでの処理シーケンスの一例を示す図である。
【図１４】図１４は、クライアント（ＰＣ）４の接続先をブローカサーバ（＃１）２ａからブローカサーバ（＃２）２ｂに切り替える処理をする制御サーバ１の処理フローの例を示した図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態に係るネットワーク制御装置について、図面を参照して説明する。
（第１の実施形態）
図１は、本発明の第１の実施形態に係るネットワーク制御装置を含むネットワーク制御システムの構成例を示す図である。
本ネットワーク制御システムは、クライアント（ＰＣ）４、クライアント（デバイス）５、クラウド上のサーバ群２０を含み、クライアント（ＰＣ）４は、サーバ群２０を介してクライアント（デバイス）５を制御可能である。
【０００９】
クラウド上のサーバ群２０は、クライアント（ＰＣ）４とクライアント（デバイス）５との双方向通信を中継するブローカサーバ（＃１）２ａ、ブローカサーバ（＃２）２ｂおよびブローカサーバ（＃３）２ｃ、複数存在するブローカサーバの中からクライアント（ＰＣ）４とクライアント（デバイス）５との通信を中継するブローカサーバを振分ける（調停する）調停サーバ３、クライアント（ＰＣ）４とクライアント（デバイス）５との通信を中継するブローカサーバが一時的に使用できなくなった場合に、クライアント（ＰＣ）４とクライアント（デバイス）５を別のブローカサーバに再度振分ける（再度調停する）制御を行うネットワーク制御装置１、認証情報データベース９、ブローカサーバ情報データベース１０を含む。ネットワーク制御装置１は、制御サーバ１とも呼ぶ。以下ネットワーク制御装置１を、制御サーバ１として説明する。
【００１０】
図１の例は、クラウド上のサーバ群２０が、ブローカサーバとしてブローカサーバ（＃１）２ａ、ブローカサーバ（＃２）２ｂ、ブローカサーバ（＃３）２ｃの３つのブローカサーバを含む例である。また図１の例は、クライアント（ＰＣ）４とクライアント（デバイス）とは、ブローカサーバ（＃２）を中継して双方向通信を行っている例である。ブローカサーバと接続する機器は、クライアント（ＰＣ）４とクライアント（デバイス）５の２つ以外にいくつあってもよい。
【００１１】
制御サーバ１は、クライアント（ＰＣ）４とクライアント（デバイス）５との通信を中継するブローカサーバが、例えばソフトウェアの更新等で一時的に使用が出来なくなる場合に、クライアント（ＰＣ）４とクライアント（デバイス）５を別のブローカサーバに再度振分ける処理を行うサーバである。制御サーバ１の処理については、図６Ａ、図６Ｂ、図６Ｃを用いて説明する。
【００１２】
ブローカサーバ（＃１）２ａ、ブローカサーバ（＃２）２ｂ、ブローカサーバ（＃３）２ｃは、クライアント（ＰＣ）４とクライアント（デバイス）５とが常時接続の双方向通信を行うための中継サーバである。
調停サーバ３は、クライアント（ＰＣ）４とクライアント（デバイス）５とが常時接続の双方向通信を開始するときに、複数存在するブローカサーバ（＃１）２ａ、ブローカサーバ（＃２）２ｂ、ブローカサーバ（＃３）２ｃの中からクライアント（ＰＣ）４とクライアント（デバイス）５との通信を中継するブローカサーバを振分けるサーバである。図１の例は、調停サーバ３が、クライアント（ＰＣ）４とクライアント（デバイス）５との通信を中継するブローカサーバとしてブローカサーバ（＃１）２ａを振分けた（調停した）例である。
【００１３】
クライアント（ＰＣ）４は、調停サーバ３により振分けられた（調停された）ブローカサーバ（＃１）２ａを介してクライアント（デバイス）５と通信することで、クライアント（デバイス）５の動作を制御するＰＣ（パーソナルコンピュータ）である。
クライアント（デバイス）５は、クライアント（ＰＣ）４により制御されるデバイスである。クライアント（デバイス）５は、クライアント（ＰＣ）４に制御された動作の例えば動作状況の通知や動作完了の通知を、ブローカサーバ（＃１）２ａを介してクライアント（ＰＣ）４に送信する。
【００１４】
認証情報データベース９は、制御サーバ１あるいは調停サーバ３により、クライアント（ＰＣ）４とクライアント（デバイス）５との通信を中継するサーバとして振分けられた（調停された）ブローカサーバの情報を登録するデータベースである。
ブローカサーバ情報データベース１０は、調停サーバ３が管理するブローカサーバであるブローカサーバ（＃１）２ａ、ブローカサーバ（＃２）２ｂ、ブローカサーバ（＃３）２ｃが、クライアント（ＰＣ）４やクライアント（デバイス）５と接続できる接続数の上限や現在の接続している接続数の情報、クライアント（ＰＣ）４やクライアント（デバイス）５がブローカサーバ（＃１）２ａ、ブローカサーバ（＃２）２ｂ、ブローカサーバ（＃３）２ｃにアクセスするためのＵＲＬの情報等が保存されているデータベースである。保存されている情報は、ブローカサーバ情報と呼ばれる。なお、ブローカサーバ（＃１）２ａ、ブローカサーバ（＃２）２ｂ、ブローカサーバ（＃３）２ｃがクライアント（ＰＣ）４やクライアント（デバイス）５と常時接続するためのプロトコルは、例えばＷｅｂＳｏｃｋｅｔである。
【００１５】
図１の例は、ブローカサーバを経由してクライアント（ＰＣ）４とクライアント（デバイス）５が常時接続している例であるが、例えばブローカサーバを経由してクライアント（ＰＣ）４とＷｅｂサーバが常時接続していてもよい。
図２は、第１の実施形態に係る制御サーバ１を含むネットワーク制御システムにおける制御サーバ１、ブローカサーバ（＃１）２ａ、ブローカサーバ（＃２）２ｂ、調停サーバ３、クライアント（ＰＣ）４、認証情報データベース９、ブローカサーバ情報データベース１０の構成の一例を示した図である。
【００１６】
制御サーバ１は、停止要求受付部１０１、制御部１０２、移行指示通信部１０３、クライアント一覧取得部１０４、移行先決定部１０５、ブローカサーバ情報取得部１０６、認証情報生成部１０７を含む。
調停サーバ３は、振分部３０１および振分要求通信部３０２を含む。
【００１７】
ブローカサーバ（＃１）２ａは、移行指示通信部２０１ａ、接続管理部２０２ａ、接続確立部２０３ａを含む。
ブローカサーバ（＃２）２ｂは同様に、移行指示通信部２０１ｂ、接続管理部２０２ｂ、接続確立部２０３ｂを含む。
クライアント（ＰＣ）４は、メッセージ通信部４０１、移行部４０２、振分要求通信部４０３、接続確立部４０４を含む。
【００１８】
図３は、第１の実施形態に係る制御サーバ１を含むネットワーク制御システムにおける図２の構成に基づいて、クライアント（ＰＣ）４が、ブローカサーバ（＃１）２ａと常時接続を確立するまでの処理シーケンスの一例を示す図である。
クライアント（ＰＣ）４は、例えば電源が投入されたタイミングで、ブローカサーバとの常時接続の確立を行うための処理を開始する。クライアント（ＰＣ）４が行うブローカサーバとの常時接続を確立するための処理は、例えばクライアント（ＰＣ）４のユーザの指示があったタイミングであってもよい。
【００１９】
ブローカサーバとの常時接続を確立するためにクライアント（ＰＣ）４の振分要求通信部４０３は、調停サーバ３の振分要求通信部３０２に対してネットワークを介して、自身を特定するための識別子（クライアントＩＤと呼ぶ）を含む振分要求を送信する（Ｓ３０１）。クライアント（ＰＣ）４の振分要求通信部４０３が振分要求に含めるクライアントＩＤは、「００００１」とする。
【００２０】
振分要求を受信（Ｓ３０１）した調停サーバ３の振分要求通信部３０２は、その旨を振分部３０１に通知する（Ｓ３０２）。
通知を受けた振分部３０１は、現在稼働中のブローカサーバの動作状態などの情報であるブローカサーバ情報を取得するために、ブローカサーバ情報取得要求をブローカサーバ情報データベース１０に送信する（Ｓ３０３）することで、ブローカサーバ情報を取得する（Ｓ３０４）。
【００２１】
ブローカサーバ情報を取得（Ｓ３０４）した調停サーバ３の振分部３０１は、ブローカサーバ情報の内容を確認し、管理している各ブローカサーバの中から振分先のブローカサーバを任意の方法で決定する（Ｓ３０５）。
振分部３０１が振分先のブローカサーバを決定する方法は、例えばブローカサーバ（＃１）２ａ、ブローカサーバ（＃２）２ｂ、ブローカサーバ（＃３）２ｃの中から現状の使用率が小さいブローカサーバを振分先のブローカサーバとして決定してもよいし、接続数が小さいブローカサーバを振分先のブローカサーバとして決定してもよい。また振分部３０１が振分先のブローカサーバを決定する方法は、例えばブローカサーバ（＃１）２ａ、ブローカサーバ（＃２）２ｂ、ブローカサーバ（＃３）２ｃの接続数が均等になるよう振分先のブローカサーバを決定してもよい。図３の例では、振分部３０１が、ブローカサーバ（＃１）２ａを、クライアント（ＰＣ）４の振分先のブローカサーバとして決定したものとする。またブローカ情報の一例を、図４に示す。
【００２２】
振分部３０１は、クライアント（ＰＣ）４の振分先のブローカサーバを決定すると、認証情報データベース９に認証情報の登録を行う（Ｓ３０６）。認証情報は、クライアント（ＰＣ）４のクライアントＩＤと振分先のブローカサーバのＩＤ（ブローカサーバＩＤ）との対の情報を含む。認証情報データベース９に登録されている認証情報の例を、図５に示す。
【００２３】
振分部３０１は、認証情報の登録が完了する（Ｓ３０７）と、振分要求通信部３０２を通じて（Ｓ３０８）クライアント（ＰＣ）４の振分要求通信部４０３に、振分先のブローカサーバであるブローカサーバ（＃１）２ａのＵＲＬを通知する（Ｓ３０９）。
調停サーバ３の振分要求通信部３０２からＵＲＬを含む通知を受信した（Ｓ３０９）クライアント（ＰＣ）４の振分要求通信部４０３は、受信した振分先のブローカサーバのＵＲＬを、接続確立部４０４に通知する（Ｓ３１０）。
【００２４】
通知を受け取った（Ｓ３１０）接続確立部４０４は、通知されたＵＲＬ情報をもとにブローカサーバ（＃１）２ａとの接続確立のための処理を行う（Ｓ３１１）。確立部４０４とブローカサーバ（＃１）２ａとの接続確立は、たとえばＷｅｂＳｏｃｋｅｔ接続の確立である。
【００２５】
接続確立部４０４は、通知されたＵＲＬにアクセスし、ブローカサーバ（＃１）２ａと例えばＷｅｂＳｏｃｋｅｔ接続の確立要求を行う（Ｓ３１１）。接続確立部４０４が行う接続確立要求は、クライアント（ＰＣ）４のクライアントＩＤを含む。
確立要求を受信した（Ｓ３１１）ブローカサーバ（＃１）２ａの接続確立部２０３ａは、認証情報データベース９に問い合わせを行い（Ｓ３１２）、クライアント（ＰＣ）４の振分先のブローカサーバがブローカサーバ（＃１）２ａであることを示すクライアント（ＰＣ）４のクライアントＩＤとブローカサーバ（＃１）２ａのブローカサーバＩＤとの対の情報を含む認証情報が登録されているかの確認を行う（Ｓ３１２）。
【００２６】
確認の結果認証情報データベースに登録されていることが判明する（Ｓ３１３）と、接続確立部２０３ａは、クライアント（ＰＣ）４と例えばＷｅｂＳｏｃｋｅｔ接続確立を行い、接続確立完了の通知をクライアント（ＰＣ）４の接続確立部４０４に通知する（Ｓ３１４）。
【００２７】
以降クライアント（ＰＣ）４の接続確立部４０４とブローカサーバ（＃１）２ａとの間で、例えばＷｅｂＳｏｃｋｅｔ接続を維持しておくことでクライアント（ＰＣ）４とブローカサーバ（＃１）２ａとの間で双方向の通信が可能な状態となる（Ｓ３１５）。
【００２８】
図４は、ブローカサーバ情報データベース１０に含まれるブローカサーバ情報の一例である。
ブローカサーバ情報は、ブローカサーバＩＤ４０１、ブローカサーバにアクセスするためのＵＲＬ４０２、ブローカサーバに現在接続している接続数４０３、ブローカサーバの接続可能な上限４０４の情報を含む。図４の４１０は、ブローカサーバＩＤがａのブローカサーバにおいて、アクセス先のＵＲＬがws://broker_a.example.com/であり、現在のクライアントとの接続数が４５００であり、クライアントとの接続可能な上限が１００００であることを示している。
【００２９】
このようにブローカサーバ情報は、ブローカサーバの現在の接続数の情報を含むため、振分部３０１は、振分先のブローカサーバを決定する際に、ブローカサーバ情報を参照することで、ブローカサーバの接続可能な上限に対する現在接続している接続数の比である使用率を用いることが可能である。
図５は、認証情報データベース９に登録されている認証情報の一例である。認証情報は、クライアント（ＰＣ）４やクライアント（デバイス）５等のクライアントのＩＤであるクライアントＩＤ５０１と、クライアント（ＰＣ）４やクライアント（デバイス）５等にクライアントが接続しているブローカサーバのＩＤであるブローカサーバＩＤ５０２とを含む。図５の５１０は、クライアントＩＤが「００００１」のクライアントがブローカサーバＩＤ「＃１」のブローカサーバと接続していることを示している。
【００３０】
先に説明したようにブローカサーバは、例えばソフトウェアの更新やスケールインが行われる等により一時的に使用が出来なくなる場合がある。例えば図３で説明した手順でＷｅｂＳｏｃｋｅｔ接続を確立したクライアント（ＰＣ）４とブローカサーバ（＃１）２ａにおいて、ブローカサーバ（＃１）２ａが一時的に使用できなくなった場合、クライアント（ＰＣ）４は、新たなブローカサーバをブローカサーバ（＃２）２ｂおよびブローカサーバ（＃３）２ｃの中から割り当て直してもらう必要がある。
【００３１】
そこで第１の実施形態に係るネットワーク制御装置１（制御サーバ１）は、ブローカサーバ（＃１）２ａが一時的に使用できなくなる場合、調停サーバ３の高負荷を回避しつつクライアント（ＰＣ）４に新たなブローカサーバを割り当てる処理を行うことが出来る。
【００３２】
以下制御サーバ１が行う、クライアント（ＰＣ）４に新たなブローカサーバを割り当てる処理について説明する。
図６Ａは、クライアント（ＰＣ）４の接続先をブローカサーバ（＃１）２ａからブローカサーバ（＃２）２ｂに切り替える処理をする制御サーバ１の処理の全体像を示す図である。
【００３３】
クライアント（ＰＣ）４の接続先をブローカサーバ（＃１）２ａからブローカサーバ（＃２）２ｂに切り替えるために、制御サーバ１は、
（１）クライアント（ＰＣ）４の移行先のブローカサーバを決定（ブローカサーバ（＃２）２ｂに移行を決定）して、認証情報データベースを更新
（２）移行前（接続中）のブローカサーバ（＃１）２ａを介して、クライアント（ＰＣ）４に、ブローカサーバ（＃２）２ｂに移行するように指示
の処理を行う。
【００３４】
以降、移行するように要求を受けたクライアント（ＰＣ）４は、以下の処理を行い、移行先のブローカサーバであるブローカサーバ（＃２）２ｂとの接続確立を行う。
（３）指示を受けたクライアント（ＰＣ）４は、移行先のブローカサーバ（＃２）２ｂに接続確立を要求。
（３−１）接続確立の要求を受けたブローカサーバ（＃２）２ｂは、認証情報データベース９に問い合わせ、接続確立要求が正当かを検証。
（３−２）ブローカサーバ（＃２）２ｂは、接続確立要求が正当であることを確認すると、クライアント（ＰＣ）４との接続確立を完了
図６Ｂは、クライアント（ＰＣ）４の接続先をブローカサーバ（＃１）２ａからブローカサーバ（＃２）２ｂに切り替える処理をする制御サーバ１の処理フローの例を示した図である。
【００３５】
制御サーバ１は、例えば保守担当者により新たなブローカサーバの割り当ての処理の実行を指示（入力）された場合に、クライアント（ＰＣ）４の接続先をブローカサーバ（＃１）２ａからブローカサーバ（＃２）２ｂに切り替える処理を開始する。
保守担当者は、制御サーバ１の停止要求受付部１０１に対して停止対象のブローカサーバであるブローカサーバ（＃１）２ａのブローカサーバＩＤを入力し停止を要求する（Ｓ６０１）。
【００３６】
停止要求受付部１０１から入力された停止要求を受け付けた（Ｓ６０１）制御部１０２は、停止対象のブローカサーバ（＃１）２aのブローカサーバＩＤをクライアント一覧取得部１０４に通知し、クライアントＩＤ一覧の取得要求を行う（Ｓ６０２）。
クライアント一覧取得部１０４は、例えば接続中のブローカサーバであるブローカサーバ（＃１）２ａに問い合わせを行い、クライアントＩＤ一覧を取得してもよい。あるいはクライアント一覧取得部１０４は、認証情報データベース９に問い合わせを行い認証情報を取得して、クライアントＩＤ一覧を生成してもよい。図７に、制御部１０２が取得するクライアントＩＤ一覧の例を示す。
【００３７】
クライアント一覧取得部１０４は、クライアントＩＤ一覧を取得すると、取得したクライアントＩＤ一覧を制御部１０２に送信する（Ｓ６０３）。
制御部１０２は、クライアントＩＤ一覧を受信する（Ｓ６０３）と、取得したクラインとＩＤ一覧を移行先決定部１０５に通知（Ｓ６０４）する。
【００３８】
通知を受けた（Ｓ６０４）移行先決定部１０５は、クライアントＩＤ一覧に含まれるすべてのクライアントに対して、ブローカサーバ（＃１）２aとの間で接続が確立されているＷｅｂＳｏｃｋｅｔ接続を切り替えて、新たなＷｅｂＳｏｃｋｅｔ接続を行う移行先のブローカサーバを決定する。
【００３９】
以降一例として、クライアントＩＤ一覧に含まれるクライアント（ＰＣ）４がブローカサーバ（＃１）２aとの間で接続が確立されているＷｅｂＳｏｃｋｅｔ接続を、移行先のブローカサーバとのＷｅｂＳｏｃｋｅｔ接続に切り替える処理の流れについて説明する。
【００４０】
移行先決定部１０５は、ブローカサーバ情報取得部１０６にブローカサーバ情報の取得要求を送信する（Ｓ６０５）。
取得要求を受信した（Ｓ６０５）ブローカサーバ情報取得部１０６は、ブローカサーバ情報を取得するために、ブローカサーバ情報取得要求をブローカサーバ情報データベース１０に送信する（Ｓ６０６）ことで、ブローカサーバ情報を取得する（Ｓ６０７）。
【００４１】
ブローカサーバ情報を取得（Ｓ６０７）したブローカサーバ情報取得部１０６は、受信したブローカサーバ情報を移行先決定部１０５に送信する（Ｓ６０８）。
ブローカサーバ情報を受信（Ｓ６０８）した移行先決定部１０５は、ブローカサーバ情報の内容を確認し、管理している各ブローカサーバの中から移行先のブローカサーバを任意の方法で決定する（Ｓ６０９）。
【００４２】
移行先決定部１０５が移行先のブローカサーバを決定する方法は、例えばブローカサーバ（＃１）２ａ、ブローカサーバ（＃２）２ｂ、ブローカサーバ（＃３）２ｃの中から現状の使用率が小さいブローカサーバを振分先のブローカサーバとして決定してもよい。
【００４３】
移行先決定部１０５は、決定した移行先情報を制御部１０２に通知する（Ｓ６１０）。
移行先決定部１０５が制御部１０２に通知する移行先情報の内容は、例えばクライアントＩＤ、クライアントＩＤのクライアントが現在接続しているブローカサーバ（移行元のブローカサーバ）のブローカサーバＩＤ、移行先ブローカサーバＩＤおよび移行先のブローカサーバのＵＲＬを含む。移行先決定部１０５が制御部１０２に通知する移行先情報の例を、図８に示す。
【００４４】
制御部１０２は、受信した（Ｓ６１０）移行先情報を認証情報生成部１０７に送信する（Ｓ６１１）。移行先情報を受信した（Ｓ６１１）認証情報生成部１０７は、受信した移行先情報をもとに認証情報データベース９の更新を行う（Ｓ６１２）。認証情報生成部１０７により更新された認証情報データベース９の認証情報の様子を、図９に示す。
【００４５】
認証情報生成部１０７は、認証情報の更新が完了する（Ｓ６１３）と、その旨を制御部１０２に通知する（Ｓ６１４）。
通知を受信した制御部１０２は、移行指示通信部１０３に、Ｓ６１０で受信した移行先情報に記載されている移行先ブローカサーバへの移行を指示する移行指示を送信する（Ｓ６１５）。
【００４６】
移行指示を受信した移行指示通信部１０３は、移行元のブローカサーバであるブローカサーバ（＃１）２ａに対して、移行先のブローカサーバの情報を含んだ移行指示を送出する（Ｓ６１６）。移行先のブローカサーバの情報は、移行先のブローカサーバのアクセス先であるＵＲＬを含む。
【００４７】
移行指示通信部１０３は、移行指示の送出（Ｓ６１６）が完了すると、その旨を制御部１０２に送信する（Ｓ６１７）
移行指示の送出が完了した旨を受信した（Ｓ６１７）制御部１０２は、停止要求受付部１０１にその旨を通知し（Ｓ６１８）、移行処理終了する。
【００４８】
移行指示の送出が完了した旨を受信した（Ｓ６１８）停止要求受付部１０１は、移行が完了したことを例えば保守担当者が認識できるように表示装置（図示せず）に、その旨を表示してもよい。
図６Ｂの例は、保守担当者により新たなブローカサーバの割り当ての処理の実行を指示（入力）された場合の例であるが、例えば制御部１０２が、ある条件を判断して移行処理を開始してもよい。ある条件とは、例えば特定の時間や各ブローカサーバの混雑度等などの条件であってもよい。
【００４９】
図６Ｃは、図６ＢのＳ６１６の処理において移行指示通信部１０３から移行指示を受信したブローカサーバ（＃１）２ａが、接続しているクライアント（ＰＣ）４に移行処理を行った場合のクライアント（ＰＣ）４の処理フローの例を示した図である。
クライアント（ＰＣ）４のメッセージ通信部４０１は、制御サーバ１の移行指示通信部１０３が送信した（Ｓ６１６）移行指示をブローカサーバ（＃１）２ａとの間で確立されている例えばＷｅｂＳｏｃｋｅｔ接続を通じて受信する（Ｓ６２１）と、受信した移行指示を移行部４０２に通知する（Ｓ６２２）。
【００５０】
メッセージ通信部４０１から送られてきた移行指示を受信した（Ｓ６２２）移行部４０２は、移行指示に含まれている移行先のブローカサーバであるブローカサーバ（＃２）２ｂのＵＲＬを抽出し、抽出したＵＲＬの情報を接続確立部４０４に送信する（Ｓ６２３）。
【００５１】
接続確立部４０４は、受信した（Ｓ６２３）ＵＲＬにアクセスし、移行先のブローカサーバであるブローカサーバ（＃２）２ｂと例えばＷｅｂＳｏｃｋｅｔ接続確立の要求を行う（Ｓ６２４）。接続確立部４０４が行う確立要求は、確立要求の要求元であるクライアント（ＰＣ）４のクライアントＩＤを含む。
【００５２】
接続確立の要求を受けた（Ｓ６２４）ブローカサーバ（＃２）２ｂの接続確立部２０３ｂは、認証情報データベース９に問い合わせを行い（Ｓ６２５）、クライアント（ＰＣ）４の移行先のブローカサーバがブローカサーバ（＃２）２ｂであることを示すクライアント（ＰＣ）４のクライアントＩＤとブローカサーバ（＃２）２ｂのＩＤとの対の情報を含む認証情報が登録されているかの確認を行う。
【００５３】
接続確立部２０３ｂは、クライアント（ＰＣ）４のライアントＩＤとブローカサーバ（＃２）２ｂのブローカサーバＩＤとの対の情報を含む認証情報が認証情報データベースに登録されていることを確認すると（Ｓ６２６）、クライアント（ＰＣ）４との例えばＷｅｂＳｏｃｋｅｔ接続確立を行い、接続確立完了の通知をクライアント（ＰＣ）４の接続確立部４０４に通知する（Ｓ６２７）。これにより、ブローカサーバ（＃２）２ｂは、許可されたクライアント（ＰＣ）４から接続要求が送信されてきたと判断し、以降クライアント（ＰＣ）４との間で確立された例えばＷｅｂＳｏｃｋｅｔ接続を維持しておくことで、クライアント（ＰＣ）４との間で双方向の通信が可能な状態（Ｓ６２８）となる。
【００５４】
上記の例は、クライアント（ＰＣ）４が接続中のブローカサーバ（＃１）２ａを、ブローカサーバ（＃２）２ｂに移行させる場合を中心に説明したが、制御サーバ１の制御部１０２は、Ｓ６０３で取得したクライアントＩＤ一覧に含まれるすべのクライアントに対して同様の処理を実施して、接続中のブローカサーバ（＃１）２ａから他のブローカサーバに移行させる処理を行う。
【００５５】
またクライアントＩＤ一覧に含まれる特定の２つのクライアントがブローカサーバ（＃１）２ａを介して通信している場合、制御サーバ１の制御部１０２は、特定の２つのクライアントは、同一のブローカサーバに移行させることが望ましい。例えば、図１に示したクライアント（ＰＣ）４は、ブローカサーバ（＃１）２ａを経由してクライアント（デバイス）５と双方向通信を行っている。この場合、制御サーバ１の制御部１０２は、クライアント（ＰＣ）４とクライアント（デバイス）５が中継するブローカサーバを、ブローカサーバ（＃１）２ａから同一のブローカサーバ、例えばブローカサーバ（＃２）２ｂに移動させることが望ましい。
【００５６】
以上のように本実施形態に係るネットワーク制御装置１（制御サーバ１）は、ブローカサーバが一時停止する場合において、調停サーバ３の高負荷を回避しつつクライアント（ＰＣ）４に新たなブローカサーバを割り当てる処理を行うことが出来る。特に制御サーバ１は、ブローカサーバが一時停止する場合において、一時停止するブローカサーバに接続しているクライアント各々に対して新たなブローカサーバへの移行指示を直接出すため、調停サーバの高負荷を回避することが可能となる。
【００５７】
本発明の第１の実施形態に係るネットワーク制御装置を含むネットワーク制御システムは、認証サーバを含んでもよい。
図７は、クライアントＩＤ一覧の一例を示す図である。クライアントＩＤ一覧は、クライアントＩＤとブローカサーバＩＤとを含む。図７の例は、ブローカサーバＩＤが＃１であるブローカサーバ（＃１）２ａに接続しているクライアントＩＤ一覧の一例である。図７の７１０は、クライアントＩＤが００００１のクライアントは、ブローカサーバ（＃１）２ａと接続していることを示している。
【００５８】
図８は、移行先情報の一例を示す図である。移行先情報は、クライアントＩＤ８０１、クライアントＩＤのクライアントが現在接続しているブローカサーバ（移行元のブローカサーバ）のブローカサーバＩＤ８０２、移行先のブローカサーバのブローカサーバＩＤ８０３および移行先のブローカサーバのＵＲＬ８０４を含む。図８の８１０は、クライアントＩＤが００００１のクライアントの現在接続しているブローカサーバのブローカサーバＩＤが＃１であり、移行先のブローカサーバのブローカサーバＩＤが＃２であり、移行先のブローカサーバのＵＲＬがws://broker_b.example.com/であることを示している。
【００５９】
図９は、制御サーバ１に含まれる認証情報生成部１０７が、認証情報データベース９の認証情報を更新する様子を示す一例である。９１０に示すように、クライアントＩＤが「００００１」のクライアントは、接続先のブローカサーバのブローカサーバＩＤが＃１のブローカサーバから＃２のブローカサーバに移行したことを示している。
【００６０】
本発明の実施形態に係るネットワーク制御装置１（制御サーバ１）を含むネットワーク制御システムは、他の形態であってもよい。
図１０は、第１の実施形態に係るネットワーク制御装置１（制御サーバ１）を含むネットワーク制御システムが、認証サーバ７を含む場合のネットワーク制御システムの構成例を示す図である。
【００６１】
本発明の第１の実施形態に係るネットワーク制御装置１を含むネットワーク制御システムは、制御サーバ１、ブローカサーバ（＃１）２ａ、ブローカサーバ（＃２）２ｂ、調停サーバ３、クライアント（ＰＣ）４、認証サーバ７、認証情報データベース９、ブローカサーバ情報データベース１０を含んでもよい。
【００６２】
認証サーバ７は、クライアント（ＰＣ）４が、本発明の実施形態に係るネットワーク制御装置１（制御サーバ１）を含むネットワーク制御システムにアクセスを開始する際のログイン処理を行うサーバである。
図１１は、第１の実施形態に係る制御サーバ１を含むネットワーク制御システムにおいて、図１０の構成に基づいて、クライアント（ＰＣ）４が、ブローカサーバ（＃１）２ａと常時接続を確立するまでの処理シーケンスの一例を示す図である。
【００６３】
クライアント（ＰＣ）４の利用者が、本発明の第１の実施形態に係る制御サーバ１を含むネットワーク制御システムにアクセスを開始するために自身のユーザＩＤとパスワードを入力すると、クライアント（ＰＣ）４は、入力されたユーザＩＤとパスワードを含むログイン要求を認証サーバ７に送出する（Ｓ１１０１）。
【００６４】
認証サーバ７は、クライアント（ＰＣ）４から送られてきたユーザＩＤとパスワードを含むログイン要求を受信する（Ｓ１１０１）と、認証情報データベースに問い合わせを行い（Ｓ１１０２）、受信したユーザＩＤとパスワードが正当なものかの確認を行う。
【００６５】
確認の結果Ｓ１１０１におけるログイン要求は、正当なユーザからのログイン要求であると判明した場合（Ｓ１１０３）、認証サーバ７は、クライアント（ＰＣ）４のセッションを開始するためにセッションＩＤを新規に払い出しする（Ｓ１１０４）。認証サーバ７は、払い出したセッションＩＤを認証情報データベース９に登録し（Ｓ１１０５）、登録が完了すると（Ｓ１１０６）、クライアント（ＰＣ）４に、払い出したセッションＩＤを通知し（Ｓ１１０７）、ログイン処理を終了する。
【００６６】
以降図３で示したクライアント（ＰＣ）４とブローカサーバ（＃１）２ａとのＷｅｂＳｏｃｋｅｔ接続の確立による双方向通信の実現同様に、クライアント（ＰＣ）４とブローカサーバ（＃１）２ａとの双方向通信の実現のための処理を行う。
クライアント（ＰＣ）４は、調停サーバ３に対してネットワークを介して、Ｓ１１０７で受信したセッションＩＤを含む振分要求を送信する（Ｓ１１０８）。
【００６７】
振分要求を受信（Ｓ１１０８）した調停サーバ３は、振分要求に含まれるセッションＩＤが存在しているかを認証情報データベース９に確認する（Ｓ１１０９）。
確認の結果振分要求に含まれるセッションＩＤが存在していれば、調停サーバ３は、クライアント（ＰＣ）４がログイン中であると判断し、双方向通信を実現するための処理を継続する。
【００６８】
次に調停サーバ３は、現在稼働中のブローカサーバの動作状態などの情報であるブローカサーバ情報を取得するために、ブローカサーバ情報取得要求をブローカサーバ情報データベース１０に送信する（Ｓ１１１１）ことで、ブローカサーバ情報を取得する（Ｓ１１１２）。
【００６９】
ブローカサーバ情報を取得（Ｓ１１１２）した調停サーバ３は、ブローカサーバ情報の内容を確認し、管理している各ブローカサーバの中から振分先のブローカサーバを任意の方法で決定する（Ｓ１１１３）。
調停サーバ３は、クライアント（ＰＣ）４の振分先のブローカサーバを決定（Ｓ１１１３）すると、認証情報データベース９に認証情報の登録を行う（Ｓ１１１４）。
【００７０】
調停サーバ３は、認証情報の登録が完了する（Ｓ１１１５）と、クライアント（ＰＣ）４に、振分先のブローカサーバであるブローカサーバ（＃１）２ａのＵＲＬを通知する（Ｓ１１１６）。
調停サーバ３からの振分先のブローカサーバのＵＲＬを含む通知を受信した（Ｓ１１１６）クライアント（ＰＣ）４は、受信した振分先のブローカサーバのＵＲＬをもとにブローカサーバ（＃１）２ａとの接続確立のための処理を行う（Ｓ１１１７）。この接続確立は、たとえばＷｅｂＳｏｃｋｅｔ接続の確立である。
【００７１】
クライアント（ＰＣ）４は、通知されたＵＲＬにアクセスし、例えばＷｅｂＳｏｃｋｅｔ接続の確立要求を行う（Ｓ１１１７）。
確立要求を受信した（Ｓ１１１７）ブローカサーバ（＃１）２ａは、認証情報データベース９に問い合わせを行い（Ｓ１１１８）、クライアント（ＰＣ）４の振分先のブローカサーバがブローカサーバ（＃１）２ａであることを示すクライアント（ＰＣ）４のクライアントＩＤとブローカサーバ（＃１）２ａのブローカサーバＩＤとの対の情報を含む認証情報が登録されているかの確認を行う（Ｓ１１１８）。
【００７２】
確認の結果認証情報データベースに登録されていることが判明する（Ｓ１１１９）と、ブローカサーバ（＃１）２ａは、クライアント（ＰＣ）４と例えばＷｅｂＳｏｃｋｅｔ接続確立を行い、接続確立完了の通知をクライアント（ＰＣ）４に通知する（Ｓ１１２０）。
【００７３】
以降クライアント（ＰＣ）４の接続確立部４０４とブローカサーバ（＃１）２ａとの間で例えばＷｅｂＳｏｃｋｅｔ接続を維持しておくことでクライアント（ＰＣ）４とブローカサーバ（＃１）２ａとの間で双方向の通信が可能な状態となる（Ｓ１１２１）。
【００７４】
ブローカサーバ（＃１）２ａが一時的に使用できなくなる場合の処理は、認証サーバ７を含む本発明の実施形態に係るネットワーク制御装置を含むネットワーク制御システムにおいても、図６Ｂ、図６Ｃと同様の処理となる。
（第２の実施形態）
更に本発明の実施形態に係るネットワーク制御装置１（制御サーバ１）は、認証トークンを制御可能であってもよい。
【００７５】
図１２は、本発明の第２の実施形態に係るネットワーク制御装置１（制御サーバ１）を含むネットワーク制御システムの構成例を示す図である。
本発明の第２の実施形態に係るネットワーク制御装置１を含むネットワーク制御システムは、制御サーバ１、ブローカサーバ（＃１）２ａ、ブローカサーバ（＃２）２ｂ、調停サーバ３、クライアント（ＰＣ）４、認証情報データベース９、ブローカサーバ情報データベース１０を含んでもよい。
【００７６】
制御サーバ１は、認証トークンを生成する機能を持つ。制御サーバ１の制御によりクライアント（ＰＣ）４の接続先のブローカサーバが切り替わるとき、生成された認証トークンは、クライアント（ＰＣ）４と新たな接続先の例えばブローカサーバ（＃２）２ｂと例えばＷｅｂＳｏｃｋｅｔ接続を確立する際に、ブローカサーバ（＃２）２ｂに渡す認証用の情報である。
【００７７】
図１３は、本発明の第２の実施形態に係る制御サーバ１を含むネットワーク制御システムにおいて、図１２の構成に基づいて、クライアント（ＰＣ）４が、ブローカサーバ（＃１）２ａと常時接続を確立するまでの処理シーケンスの一例を示す図である。
クライアント（ＰＣ）４は、例えば電源が投入されたタイミングで、ブローカサーバとの常時接続の確立を行うための処理を開始する。クライアント（ＰＣ）４が行うブローカサーバとの常時接続を確立するための処理は、例えばクライアント（ＰＣ）４のユーザの指示があったタイミングであってもよい。
【００７８】
ブローカサーバとの常時接続を確立するためにクライアント（ＰＣ）４は、調停サーバ３に対してネットワークを介して、自身を特定するための識別子（クライアントＩＤと呼ぶ）を含む振分要求を送信する（Ｓ１４０１）。
振分要求を受信（Ｓ１４０１）した調停サーバ３は、現在稼働中のブローカサーバの動作状態などの情報であるブローカサーバ情報を取得するために、ブローカサーバ情報取得要求をブローカサーバ情報データベース１０に送信する（Ｓ１４０２）することで、ブローカサーバ情報を取得する（Ｓ１４０３）。
【００７９】
ブローカサーバ情報を取得（Ｓ１４０３）した調停サーバ３は、ブローカサーバ情報の内容を確認し、管理している各ブローカサーバの中から振分先のブローカサーバを任意の方法で決定する（Ｓ１４０４）。図１４の例では、調停サーバ３が、ブローカサーバ（＃１）２ａを、クライアント（ＰＣ）４の振分先のブローカサーバとして決定したものとする。
【００８０】
さらに調停サーバ３は、認証トークンの生成を行う（Ｓ１４０５）。認証トークンは、例えば、クライアント（ＰＣ）４のクライアントＩＤ、Ｓ１４０４で決定した振分先のブローカサーバであるブローカサーバ（＃１）２ａのブローカサーバＩＤ、さらに認証トークンの有効期限をつなげた文字列を暗号化処理して生成された文字列であってもよい。
【００８１】
調停サーバ３は、生成した認証トークンと振分先のブローカサーバであるブローカサーバ（＃１）２ａのＵＲＬを、クライアント（ＰＣ）４に通知する（Ｓ１４０６）。
通知を受けたクライアント（ＰＣ）４は、通知に含まれるＵＲＬ情報をもとにブローカサーバ（＃１）２ａとの接続確立のための処理を行う（Ｓ１４０７）。クライアント（ＰＣ）４とブローカサーバ（＃１）２ａとの接続確立は、たとえばＷｅｂＳｏｃｋｅｔ接続の確立である。
【００８２】
クライアント（ＰＣ）４は、通知されたＵＲＬにアクセスし、例えばＷｅｂＳｏｃｋｅｔ接続の確立要求を行う（Ｓ１４０７）。クライアント（ＰＣ）４が行う接続確立要求は、Ｓ１４０６で受信した認証トークンを含む。
確立要求を受信したブローカサーバ（＃１）２ａは、認証トークンの復号処理を行い、認証トークンに含まれるクライアント（ＰＣ）４のクライアントＩＤ、および振分先のブローカサーバＩＤ、認証トークンの有効期限を確認し、確立要求の送信元であるクライアント（ＰＣ）４のクライアントＩＤが認証トークンに含まれるクライアントＩＤと一致していること、自身のブローカサーバＩＤが認証トークンに含まれるブローカサーバＩＤと一致していること、現在時刻が認証トークンの有効期限内であることを確認して、クライアント（ＰＣ）４を正当な確立要求の送信元と判断し（Ｓ１４０８）、クライアント（ＰＣ）４と例えばＷｅｂＳｏｃｋｅｔ接続確立を行い、接続確立完了の通知をクライアント（ＰＣ）４に通知する（Ｓ１４０９）。
【００８３】
以降クライアント（ＰＣ）４とブローカサーバ（＃１）２ａとの間で例えばＷｅｂＳｏｃｋｅｔ接続を維持しておくことでクライアント（ＰＣ）４とブローカサーバ（＃１）２ａとの間で双方向の通信が可能な状態となる（Ｓ１４１０）。
先に説明したようにブローカサーバは、例えばソフトウェアの更新やスケールインが行われる等により一時的に使用が出来なくなる場合、図６Ｂ、図６Ｃで説明したのと同様に、クライアント（ＰＣ）４は、新たなブローカサーバをブローカサーバ（＃２）２ｂおよびブローカサーバ（＃３）２ｃの中から割り当て直してもらう必要がある。
【００８４】
図１４は、クライアント（ＰＣ）４の接続先をブローカサーバ（＃１）２ａからブローカサーバ（＃２）２ｂに切り替える処理をする制御サーバ１の処理フローの例を示した図である。
制御サーバ１は、例えば保守担当者により新たなブローカサーバの割り当ての処理の実行を指示（入力）された場合に、クライアント（ＰＣ）４の接続先をブローカサーバ（＃１）２ａからブローカサーバ（＃２）２ｂに切り替える処理を開始する。
【００８５】
保守担当者は、制御サーバ１の停止要求受付部１０１に対して停止対象のブローカサーバであるブローカサーバ（＃１）２ａのブローカサーバＩＤを入力し停止を要求する（Ｓ１５０１）。
停止要求受付部１０１から入力された停止要求を受け付けた（Ｓ１５０１）制御部１０２は、停止対象のブローカサーバ（＃１）２aのブローカサーバＩＤをクライアント一覧取得部１０４に通知し、クライアントＩＤ一覧の取得要求を行う（Ｓ１５０２）。
【００８６】
クライアント一覧取得部１０４は、例えば接続中のブローカサーバであるブローカサーバ（＃１）２ａに問い合わせを行い、クライアントＩＤ一覧を取得してもよい。あるいはクライアント一覧取得部１０４は、認証情報データベース９に問い合わせを行い認証情報を取得して、クライアントＩＤ一覧を生成してもよい。クライアントＩＤ一覧の一例を図７に示す。
【００８７】
クライアント一覧取得部１０４は、クライアントＩＤ一覧を取得すると、取得したクライアントＩＤ一覧を制御部１０２に送信する（Ｓ１５０３）。
制御部１０２は、クライアントＩＤ一覧を受信する（Ｓ１５０３）と、取得したクラインとＩＤ一覧を移行先決定部１０５に通知（Ｓ１５０４）する。
【００８８】
通知を受けた（Ｓ１５０４）移行先決定部１０５は、ブローカサーバ（＃１）２aとクライアント（ＰＣ）４の間で接続が確立されているＷｅｂＳｏｃｋｅｔ接続を切り替えるべきブローカサーバを決定する。
移行先決定部１０５は、ブローカサーバ情報取得部１０６にブローカサーバ情報の取得要求を送信する（Ｓ１５０５）。
【００８９】
取得要求を受信した（Ｓ１５０５）ブローカサーバ情報取得部１０６は、ブローカサーバ情報を取得するために、ブローカサーバ情報取得要求をブローカサーバ情報データベース１０に送信する（Ｓ１５０６）ことで、ブローカサーバ情報を取得する（Ｓ１５０７）。
ブローカサーバ情報取得要求をブローカサーバ情報データベース１０に送信する（Ｓ１５０６）。
【００９０】
ブローカサーバ情報取得要求を受信した（Ｓ６０６）ブローカサーバ情報データベース１０は、ブローカサーバ情報を制御サーバ１のブローカサーバ情報取得部１０６に送信する（Ｓ１５０７）。
ブローカサーバ情報を取得（Ｓ１５０７）したブローカサーバ情報取得部１０６は、受信したブローカサーバ情報を移行先決定部１０５に送信する（Ｓ１５０８）。
【００９１】
ブローカサーバ情報を受信（Ｓ１５０８）した移行先決定部１０５は、ブローカサーバ情報の内容を確認し、管理している各ブローカサーバの中から移行先のブローカサーバを任意の方法で決定する（Ｓ１５０９）。
移行先決定部１０５は、決定した移行先情報を制御部１０２に通知する（Ｓ１５１０）。
【００９２】
移行先決定部１０５が制御部１０２に通知する移行先情報の内容は、例えばクライアントＩＤとそのクライアントＩＤの移行前のブローカサーバＩＤおよび移行先のブローカサーバＩＤを含む。
制御部１０２は、受信した（Ｓ１５１０）移行先情報を認証情報生成部１０７に送信して認証トークン生成の依頼を行う（Ｓ１５１１）。認証トークン生成の依頼を受信した（Ｓ１５１１）認証情報生成部１０７は、受信した移行先情報をもとに認証トークンの生成を行い、生成した認証トークンを制御部１０２に送信する（Ｓ１５１２）。生成する認証トークンは、Ｓ１４０５の処理同様に、例えばクライアント（ＰＣ）４のクライアントＩＤ、Ｓ１５０９で決定した移行先のブローカサーバであるブローカサーバ（＃１）２ａのブローカサーバＩＤ、さらに認証トークンの有効期限をつなげた文字列を暗号化処理して生成された文字列であってもよい。
【００９３】
認証トークンを受信した制御部１０２は、移行指示通信部１０３に、Ｓ１５１０で受信した移行先情報に記載されている移行先ブローカサーバへの移行を指示する移行指示を送信する（Ｓ１５１３）。
移行指示を受信した移行指示通信部１０３は、移行元のブローカサーバであるブローカサーバ（＃１）２ａに対して、移行先のブローカサーバの情報を含んだ移行指示を送出する（Ｓ１５１４）。移行先のブローカサーバの情報は、移行先のブローカサーバのアクセス先であるＵＲＬを含む。
【００９４】
移行指示通信部１０３は、移行指示の送出（Ｓ１５１４）が完了すると、その旨を制御部１０２に送信する（Ｓ１５１５）
移行指示の送出が完了した旨を受信した（Ｓ１５１５）制御部１０２は、停止要求受付部１０１にその旨を通知し（Ｓ１５１６）、移行処理終了する。
【００９５】
図１５のＳ１５１４の処理において移行指示通信部１０３から移行指示を受信したブローカサーバ（＃１）２ａは、図６ＣのＳ６１６からＳ６２３の処理と同様に接続しているクラインと（ＰＣ）４に対して移行処理を行う。移行処理を要求されたクライアント（ＰＣ）４は、移行先のブローカサーバであるブローカサーバ（＃２）２ｂと認証トークンによる検証を行い、ＷｅｂＳｏｃｋｅｔ接続確立を行う。
【００９６】
上記の例も、図６Ｂ、図６Ｃの場合同様にクライアント（ＰＣ）４が接続中のブローカサーバ（＃１）２ａを、ブローカサーバ（＃２）２ｂに移行させる場合を中心に説明したが、制御サーバ１の制御部１０２は、Ｓ１５０３で取得したクライアントＩＤ一覧に含まれるすべのクライアントに対して同様の処理を実施して、接続中のブローカサーバ（＃１）２ａから他のブローカサーバに移行させる処理を行う。
【００９７】
以上のように本実施形態に係るネットワーク制御装置１（制御サーバ１）は、認証トークンを生成する機能を有してもよく、この場合でもブローカサーバが一時停止する場合において、調停サーバ３の高負荷を回避しつつクライアント（ＰＣ）４に新たなブローカサーバを割り当てる処理を行うことが出来る。
【００９８】
以上のように、本実施形態に係るネットワーク制御装置１（金）制御サーバ１）を含むネットワーク制御システムは、いろいろな形態のネットワーク制御システムにおいて、ブローカサーバが一時停止する場合に、調停サーバ３の高負荷を回避しつつクライアント（ＰＣ）４に新たなブローカサーバを割り当てる処理を行うことが出来る。
【００９９】
上記説明では、制御サーバ１を、ブローカサーバ２や調停サーバ３と異なるサーバとして実現していたが、必ずしもその構成に限定されない。例えば制御サーバ１の構成要素の一部または全部を、ブローカサーバまたは調停サーバ３に含んでもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。さらにまた、請求項の各構成要素において、構成要素を分割して表現した場合、或いは複数を合わせて表現した場合、或いはこれらを組み合わせて表現した場合であっても本発明の範疇である。また請求項を制御ロジックとして表現した場合、コンピュータを実行させるインストラクションを含むプログラムとして表現した場合、及び前記インストラクションを記載したコンピュータ読み取り可能な記録媒体として表現した場合でも本発明の装置を適用したものである。また、使用している名称や用語についても限定されるものではなく、他の表現であっても実質的に同一内容、同趣旨であれば、本発明に含まれるものである。
【符号の説明】
【０１００】
１・・・制御サーバ、２ａ・・・ブローカサーバ（＃１）、２ｂ・・・ブローカサーバ（＃２）、２ｃ・・・ブローカサーバ（＃３）、３・・・調停サーバ、４・・・クライアント（ＰＣ）、５・・・クライアント（デバイス）。
【図１】
2020096229.tif 000003
【図２】
2020096229.tif 000004
【図３】
2020096229.tif 000005
【図４】
2020096229.tif 000006
【図５】
2020096229.tif 000007
【図６Ａ】
2020096229.tif 000008
【図６Ｂ】
2020096229.tif 000009
【図６Ｃ】
2020096229.tif 000010
【図７】
2020096229.tif 000011
【図８】
2020096229.tif 000012
【図９】
2020096229.tif 000013
【図１０】
2020096229.tif 000014
【図１１】
2020096229.tif 000015
【図１２】
2020096229.tif 000016
【図１３】
2020096229.tif 000017
【図１４】
2020096229.tif 000018