(57)【要約】【課題】クライアントに適切な情報処理装置を選択する際に、情報処理装置とクライアントの間でのＲＴＴの計測によってクライアントに多大な負荷をかけずに、不正確なＲＴＴ計測を抑制する。【解決手段】情報処理を行う複数の情報処理装置と、前記情報処理を依頼するクライアントと、情報処理装置とクライアントを管理する管理装置をネットワークで接続し、クライアント計算機が、管理装置に要求通信遅延ＲＴＴｒとして含む情報処理を要求し、管理装置が、当該管理装置と情報処理装置との間の通信遅延ＲＴＴａと、管理装置とクライアントとの間の通信遅延ＲＴＴｂと、を計測し、管理装置がＲＴＴａとＲＴＴｂの差分の絶対値が所定の閾値以下の情報処理装置に対して、クライアントとの間の通信遅延ＲＴＴｃを計測させ、ＲＴＴｃが要求ＲＴＴｒ以下となる情報処理装置にクライアントの情報処理を割り当てる。【選択図】図２
2014153854.tif 000002
【特許請求の範囲】
【請求項１】
情報処理を行う複数の情報処理装置と、前記情報処理を依頼する１つ以上のクライアント計算機と、前記情報処理装置と前記クライアント計算機を管理する管理装置をネットワークで接続した分散処理システムであって、
前記クライアント計算機は、
前記管理装置に、往復通信遅延の要求値を要求往復通信遅延として含む情報処理を要求し、
前記管理装置は、
前記クライアント計算機からの情報処理の要求を前記複数の情報処理装置から選択して割り当てる管理部と、
前記ネットワークを介した通信遅延を計測する通信遅延計測部と、を有し、
前記通信遅延計測部は、
前記管理装置と前記情報処理装置との間の第１の往復通信遅延と、前記管理装置と前記クライアント計算機との間の第２の往復通信遅延と、を計測し、前記第１の往復通信遅延と第２の往復通信遅延の差分の絶対値が所定の閾値以下の前記情報処理装置に対して、前記情報処理装置と前記クライアント計算機との間の第３の往復通信遅延を計測するよう要求し、
前記情報処理装置は、
前記管理装置からの要求に基づいて、前記クライアント計算機との間の第３の往復通信遅延を計測して、前記管理装置に応答し、
前記管理部は、
前記情報処理装置から受信した前記第３の往復通信遅延が、前記クライアント計算機の前記要求往復通信遅延以下となる前記情報処理装置に前記クライアント計算機の情報処理を割り当てることを特徴とする分散処理システム。
【請求項２】
請求項１に記載の分散処理システムであって、
前記管理部は、
前記情報処理装置の計算機資源を管理する管理情報を保持し、
前記通信遅延計測部は、
前記情報処理装置と前記クライアント計算機との間の第３の往復通信遅延を計測するように要求する際に、前記管理情報を参照して、利用可能な計算機資源を有する前記情報処理装置のみを前記第３の往復通信遅延の計測対象とすることを特徴とする分散処理システム。
【請求項３】
請求項２に記載の分散処理システムであって、
前記管理部は、
前記情報処理装置が所属する属性をグループとし、前記管理情報でグループ毎に前記情報処理装置を管理し、
前記通信遅延計測部は、
前記情報処理装置と前記クライアント計算機との間の第３の往復通信遅延を計測するように要求する際に、前記グループ毎に第１の所定数以内で、かつ、前記第１の往復通信遅延と第２の往復通信遅延の差分の絶対値が所定の閾値以下となる前記情報処理装置から選択して、前記第３の往復通信遅延を計測させ、
前記管理部は、
前記グループ毎に第１の所定数以内で選択した前記情報処理装置から受信した前記第３の往復通信遅延が、前記クライアント計算機の前記要求往復通信遅延以下となる前記情報処理装置に前記クライアント計算機の情報処理を割り当てることを特徴とする分散処理システム。
【請求項４】
請求項３に記載の分散処理システムであって、
前記通信遅延計測部は、
前記グループ毎に第１の所定数以内で選択した情報処理装置の前記第３の往復通信遅延が、前記クライアント計算機の前記要求往復通信遅延以下となる前記情報処理装置が無い場合には、前記第３の往復通信遅延が最小となる前記グループの中から、前記第１の往復通信遅延と第２の往復通信遅延の差分の絶対値が所定の閾値以下となる情報処理装置を、第２の所定数以内で選択し、前記第３の往復通信遅延を計測させ、
前記管理部は、
前記第２の所定数以内で選択した前記情報処理装置から受信した前記第３の往復通信遅延が、前記クライアント計算機の前記要求往復通信遅延以下となる前記情報処理装置に前記クライアント計算機の情報処理を割り当てることを特徴とする分散処理システム。
【請求項５】
請求項４に記載の分散処理システムであって、
前記通信遅延計測部は、
前記第３の往復通信遅延が最小となる前記グループの中から、前記第１の往復通信遅延と第２の往復通信遅延の差分の絶対値が所定の閾値以下となる情報処理装置を、第２の所定数以内で選択する際に、前記管理情報を参照して利用可能な計算機資源が残っている前記情報処理装置のみを前記第３の往復通信遅延の計測対象とし、前記第３の往復通信遅延の計測結果と前記要求往復通信遅延との比較を所定の上限数まで繰り返すことを特徴とする分散処理システム。
【請求項６】
請求項３に記載の分散処理システムであって、
前記グループの属性は、前記情報処理装置を配置した地域名であって、
前記管理情報は、
前記情報処理装置が属する地域名と、予め計測した前記情報処理装置の前記第１の往復通信遅延と、前記情報処理装置で利用可能な計算機資源量を保持することを特徴とする分散処理システム。
【請求項７】
請求項１に記載の分散処理システムであって、
前記第１の往復通信遅延を、前記情報処理装置を前記管理装置に登録する際に計測し、
前記第２の往復通信遅延を、前記クライアント計算機を前記管理装置に登録する際に計測することを特徴とする分散処理システム。
【請求項８】
請求項１または請求項７に記載の分散処理システムであって、
前記管理装置が、前記第１の往復通信遅延と前記第２の往復通信遅延を能動的に計測し、
前記情報処理装置が、前記第３の往復通信遅延を能動的に計測することを特徴とする分散処理システム。
【請求項９】
請求項１または請求項７に記載の分散処理システムであって、
前記第１の往復通信遅延を、前記情報処理装置が能動的に計測し
前記第２の往復通信遅延を前記クライアント計算機が能動的に計測し、
前記第３の往復通信遅延を前記クライアント計算機が能動的に計測することを特徴とする分散処理システム。
【請求項１０】
請求項３に記載の分散処理システムであって、
前記管理装置は、
分散処理システム全体を管理する第１の管理装置と、
前記グループ毎の第２の管理装置と、を備えて、
前記クライアント計算機からの要求受け付けと前記グループの特定は前記第１の管理装置が実施し、
前記グループ内の前記情報処理装置への前記クライアント計算機の情報処理を割り当てることを前記第２の管理装置が実施することを特徴とする分散処理システム。
【請求項１１】
請求項１に記載の分散処理システムにおいて、
前記管理装置は、
ユーザが複数の前記クライアント計算機を利用する際に、前記クライアント計算機に対する前記第３の往復通信遅延が、前記クライアント計算機の前記要求往復通信遅延以下、かつ、複数の前記第３の往復通信遅延が同程度となる前記情報処理装置を選択することを特徴とする分散処理システム。
【請求項１２】
情報処理を行う複数の情報処理装置と、前記情報処理を依頼する１つ以上のクライアント計算機と、前記情報処理装置と前記クライアント計算機を管理する管理装置をネットワークで接続し、前記管理装置が前記情報処理装置に前記クライアント計算機からの情報処理を割り当てる分散処理システムの管理方法であって、
前記クライアント計算機が、前記管理装置に、往復通信遅延の要求値を要求往復通信遅延として含む情報処理を要求する第１のステップと、
前記管理装置が、当該管理装置と前記情報処理装置との間の第１の往復通信遅延と、前記管理装置と前記クライアント計算機との間の第２の往復通信遅延と、を計測する第２のステップと、
前記管理装置が、前記第１の往復通信遅延と第２の往復通信遅延の差分の絶対値が所定の閾値以下の前記情報処理装置に対して、前記情報処理装置と前記クライアント計算機との間の第３の往復通信遅延を計測するよう要求する第３のステップと、
前記情報処理装置が、前記管理装置からの要求に基づいて、前記クライアント計算機との間の第３の往復通信遅延を計測して、前記管理装置に応答する第４のステップと、
前記管理装置が、前記情報処理装置から受信した前記第３の往復通信遅延が、前記クライアント計算機の前記要求往復通信遅延以下となる前記情報処理装置に前記クライアント計算機の情報処理を割り当てる第５のステップと、
を含むことを特徴とする分散処理システムの管理方法。
【請求項１３】
請求項１２に記載の分散処理システムの管理方法であって、
前記管理装置は、前記情報処理装置の計算機資源を管理する管理情報を保持し、
前記第３のステップは、
前記管理装置が、前記情報処理装置と前記クライアント計算機との間の第３の往復通信遅延を計測するように要求する際に、前記管理情報を参照して、利用可能な計算機資源を有する前記情報処理装置のみを前記第３の往復通信遅延の計測対象とすることを特徴とする分散処理システムの管理方法。
【請求項１４】
請求項１３に記載の分散処理システムの管理方法であって、
前記管理装置は、前記情報処理装置が所属する属性をグループとし、前記管理情報でグループ毎に前記情報処理装置を管理し、
前記第３のステップは、
前記管理装置が、前記情報処理装置と前記クライアント計算機との間の第３の往復通信遅延を計測するように要求する際に、前記グループ毎に第１の所定数以内で、かつ、前記第１の往復通信遅延と第２の往復通信遅延の差分の絶対値が所定の閾値以下となる前記情報処理装置から選択して、前記第３の往復通信遅延を計測させ、
前記第５のステップは、
前記管理装置は、前記グループ毎に第１の所定数以内で選択した前記情報処理装置から受信した前記第３の往復通信遅延が、前記クライアント計算機の前記要求往復通信遅延以下となる前記情報処理装置に前記クライアント計算機の情報処理を割り当てることを特徴とする分散処理システムの管理方法。
【請求項１５】
請求項１４に記載の分散処理システムの管理方法であって、
前記第３のステップは、
前記管理装置は、前記グループ毎に第１の所定数以内で選択した情報処理装置の前記第３の往復通信遅延が、前記クライアント計算機の前記要求往復通信遅延以下となる前記情報処理装置が無い場合には、前記第３の往復通信遅延が最小となる前記グループの中から、前記第１の往復通信遅延と第２の往復通信遅延の差分の絶対値が所定の閾値以下となる情報処理装置を、第２の所定数以内で選択し、前記第３の往復通信遅延を計測させ、
前記第５のステップは、
前記管理装置が、前記第２の所定数以内で選択した前記情報処理装置から受信した前記第３の往復通信遅延が、前記クライアント計算機の前記要求往復通信遅延以下となる前記情報処理装置に前記クライアント計算機の情報処理を割り当てることを特徴とする分散処理システムの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに情報処理装置を分散して配置した分散処理システムに関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングの台頭により、情報処理機器の所有から利用への流れが加速している。クラウドコンピューティングは、データセンタなどに配備されるサーバやストレージ等の情報通信機器の物理的な構成や所在を意識することなしに、ネットワーク経由でこれらの情報通信機器が提供するサービスを利用する情報処理の形態である。クラウドコンピューティングは、従来の情報通信機器によるシステム（オンプレミスシステム）に対して、柔軟かつ迅速なシステム構築と、運用コストの低減といったメリットを有し、メールサービスやネットショッピングなどのコンシューマ用途を中心に認知度が高まり、現在では、企業の基幹業務にも適用範囲が広がりつつある。今後は、電力制御や交通制御などの社会インフラ分野への適用も期待される。
【０００３】
このような社会インフラ分野では、クラウドコンピューティングシステムへのアクセス対象はコンピュータ端末を介した人間のケースだけでなく、センサや制御対象（アクチュエータ）などの機器も含まれる。
【０００４】
センサや制御対象などの機器では、所定時間内にセンサによる情報に基づいて制御内容を決定することを要求されるケースがあり、従来では、専用のオンプレミスなシステムが構築されてきた。つまり、このようなセンサや制御対象などの機器の制御にクラウドシステムを利用する場合、機器とデータセンタの間の通信遅延が問題となりうる。
【０００５】
このような問題を解消するためには、遠方のデータセンタだけを使うのではなく、各地に分散配置した情報処理装置も利用し、その情報処理装置の中から、要求される所定時間を満たす情報処理装置を選択して利用することが望ましい。
【０００６】
適切な情報処理装置を選択する方法として、特許文献１では、課題として「コンテンツ配送システムのユーザから見た全応答時間を最も短くする割当てを使用して要求を行っているユーザと同じ領域内のミラー・サーバにエンドユーザを再度割り当てるためのシステムおよび方法を提供する。」と記載されている。
【０００７】
特許文献１では解決手段として、「ＴＣＰログを使用してあるサーバからデータを検索しながら、ある地理的位置にいて、要求を行っている構成要素が観察した、バイト当りのネットワーク遅延αを推定するための方法において、ＴＣＰログ内に記憶している情報から、前記サーバと前記要求を行っている構成要素との間の直接往復遅延を計算するステップと、バイト当りのネットワーク遅延αを決定するステップとを含むことを特徴とする方法」と記載されている。
【０００８】
また、特許文献２では、課題として「読み込みや書き込みの応答時間が短く、ネットワークの輻輳を発生させることが少ないデータアクセスシステムを提供する。」と記載されている。
【０００９】
特許文献２では解決手段として、「データアクセスシステムは、分散されたデータを記憶する各データ処理装置の座標を記憶する座標記憶手段８５を備える。各データ処理装置７１は、所定の装置との通信遅延の計測結果から自装置のコンピュータネットワークにおける座標を決定する座標決定手段８１と、分散されたデータを記憶するデータ記憶手段８２とを備える。また、データアクセスシステムは、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込み先または書き込み先となるデータ処理装置を決定するアクセス先決定手段８３を備える。」と記載されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００２−７７２７０号公報
【特許文献２】特開２０１０−７４６０４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
センサや制御対象をクラウドコンピューティングシステムのクライアントとしたとき、クライアントとの通信遅延が所定時間内である情報処理装置を割り当てるためには、クライアントと情報処理装置の間で通信遅延（Ｒｏｕｎｄ Ｔｒｉｐ Ｔｉｍｅ：ＲＴＴ）の計測が必要である。ここで、複数の地域に配置した情報処理装置の何れかがクライアントの通信遅延要求を満たすためには、例えば、１０００台以上などの規模となる多数の情報処理装置を各地域に分散して設置する必要がある。すべての情報処理装置とクライアントの間でＲＴＴ計測を行うと、クライアントへの計測要求が集中し、クライアントがダウンしたり、処理負荷の増大によって正しいＲＴＴを計測できなかったりするという問題があった。
【００１２】
また、ＲＴＴ要求を満たす結果として選択される情報処理装置は一つであるため、全情報処理装置との間でＲＴＴ計測を実施することにより無駄なネットワークトラフィックを生じる。
【００１３】
すなわち、クライアントに適切な情報処理装置を選択する際に、情報処理装置とクライアントの間でのＲＴＴの計測によってクライアントに多大な負荷をかけずに、不正確なＲＴＴ計測を抑制することが課題であった。また、無駄なＲＴＴ計測のトラフィックを極力生成しないことも課題であった。
【課題を解決するための手段】
【００１４】
本発明は、情報処理を行う複数の情報処理装置と、前記情報処理を依頼する１つ以上のクライアント計算機と、前記情報処理装置と前記クライアント計算機を管理する管理装置をネットワークで接続した分散処理システムであって、前記クライアント計算機は、前記管理装置に、往復通信遅延の要求値を要求往復通信遅延として含む情報処理を要求し、前記管理装置は、前記クライアント計算機からの情報処理の要求を前記複数の情報処理装置から選択して割り当てる管理部と、前記ネットワークを介した通信遅延を計測する通信遅延計測部と、を有し、前記通信遅延計測部は、前記管理装置と前記情報処理装置との間の第１の往復通信遅延と、前記管理装置と前記クライアントとの間の第２の往復通信遅延と、を計測し、前記第１の往復通信遅延と第２の往復通信遅延の差分の絶対値が所定の閾値以下の前記情報処理装置に対して、前記情報処理装置と前記クライアント計算機との間の第３の往復通信遅延を計測するよう要求し、前記情報処理装置は、前記管理装置からの要求に基づいて、前記クライアント計算機との間の第３の往復通信遅延を計測して、前記管理装置に応答し、前記管理部は、前記情報処理装置から受信した前記第３の往復通信遅延が、前記クライアント計算機の前記要求往復通信遅延以下となる前記情報処理装置に前記クライアント計算機の情報処理を割り当てる。
【発明の効果】
【００１５】
本発明によれば、情報処理装置とクライアントの間での往復通信遅延の計測によるクライアント計算機の負荷を最小限にし、また、正確な往復通信遅延の計測を実現することができる。また、無駄なＲＴＴ計測のトラフィックを極力生成せず、クライアント計算機のＲＴＴ要求を満たす情報処理装置を選択することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施例を示し、分散処理システムの一例を示すブロック図である。
【図２】本発明の第１の実施例を示し、通信遅延測定の概念図である。
【図３】本発明の第１の実施例を示し、分散処理システムで実行される処理の一例を示すシーケンス図である。
【図４】本発明の第１の実施例を示し、分散処理システムで行われる処理のうち、クライアントと通信兼情報処理装置及びＤＮＳサーバとの間で行われる処理の一例を示すシーケンス図である。
【図５】本発明の第１の実施例を示し、通信兼情報処理装置を分散処理システムへ登録する処理の一例を示すシーケンス図である。
【図６】本発明の第１の実施例を示し、分散処理システムで通信兼情報処理装置を選択する処理の一例を示すシーケンス図である。
【図７】本発明の第１の実施例を示し、管理装置で通信兼情報処理装置を選択する処理の一例を示すフローチャートである。
【図８】本発明の第１の実施例を示し、通信兼情報処理装置の構成の一例を示すブロック図である。
【図９】本発明の第１の実施例を示し、管理装置の構成の一例を示すブロック図である。
【図１０】本発明の第１の実施例を示し、情報処理装置管理テーブルの一例を示す図である。
【図１１】本発明の第３の実施例を示し、分散処理システムの一例を示すブロック図である。
【図１２】本発明の第３の実施例を示し、通信兼情報処理装置を分散処理システムへ登録する処理の一例を示すシーケンス図である。
【図１３】本発明の第３の実施例を示し、分散処理システムで通信兼情報処理装置を選択する処理の一例を示すシーケンス図である。
【図１４】本発明の第４の実施例を示し、通信兼情報処理装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の一実施形態の例を添付図面に基づき説明する。各図における同一符号は同一物あるいは相当物を示す。説明の都合上、符号に添え字を追加して区別することがある。
【実施例１】
【００１８】
本実施例では、図１に示す広域網（Ｗｉｄｅ Ａｒｅａ Ｎｅｔｗｏｒｋ：ＷＡＮ）に接続されたデータセンタ３、管理装置２０、ＤＮＳサーバ２１、各地域１−１−〜１−３に分散配置された複数の通信兼情報処理装置１０、センサまたは制御対象５０を集約するクライアント（計算機）４０で構成したシステムを例にして、クライアント４０に適切な通信兼情報処理装置１０を選択して割り当てる方法に関して説明する。なお、各地域１−１−〜１−３の総称を「−」以下を省略した符号１で示す。他の構成要素についても同様である。
【００１９】
図１は、分散処理システムの一例を示すブロック図である。本発明の分散処理システムでは、各地域１には、広域網２に接続された複数の通信兼情報処理装置１０が配置される。管理装置２０は、後述するように、複数の通信兼情報処理装置１０のうちのひとつに、クライアント４０が要求した情報処理を割り当てる。クライアント４０は、センサやアクチュエータなどの制御対象（以下、センサ／制御対象）５０−１〜５０−Ｎを有し、これらを制御する処理を管理装置２０に依頼する。管理装置２０は、クライアント４０からの要求を満たす最適な通信兼情報処理装置１０を選択し、上記処理を割り当てる。
【００２０】
地域１−１（地域Ａ）では、通信兼情報処理装置１０−Ａ１〜１０−ＡＮが配置され、地域１−２（地域Ｂ）では、通信兼情報処理装置１０−Ｂ１〜１０−ＢＮが配置され、地域１−３（地域Ｃ）では、通信兼情報処理装置１０−Ｃ１〜１０−ＣＮが配置される。各地域１内では、複数の通信兼情報処理装置１０が相互に接続されている。なお、各地域１内に通信兼情報処理装置１０を相互に接続するネットワーク（地域網）を備えても良い。
【００２１】
管理装置２０は、クライアント４０からの処理要求を、まず、データセンタ３で受け付けてから、各地域１の通信兼情報処理装置１０のうち最適な装置を選択してクライアント４０の処理を割り当てる。なお、データセンタ３は、複数のサーバ３０−１〜３０−Ｎを備える。
【００２２】
なお、図１では、広域網２を用いた例を示したが、有線または無線に係わらず通信を行うネットワークであればよい。また、図１では、クライアント４０がひとつの例を示したが、複数のクライアント４０が広域網２に接続されてもよい。
【００２３】
図２は、管理装置２０、通信兼情報処理装置１０及びクライアント４０間で計測する通信遅延の概念を示す図である。
【００２４】
本発明では、図２に示すように、３種類の往復通信遅延（Ｒｏｕｎｄ Ｔｒｉｐ Ｔｉｍｅ：ＲＴＴ）を用いる。まず、管理装置２０と通信兼情報処理装置１０の間の往復通信遅延（以下、ＲＴＴ）としてＲＴＴａ７１を第１の通信遅延とする。次に、管理装置２０とクライアント４０の間のＲＴＴとしてＲＴＴｂ７２を第２の通信遅延とする。そして、通信兼情報処理装置１０とクライアント４０の間のＲＴＴとしてＲＴＴｃ７３を第３の通信遅延とする。
【００２５】
＜処理装置の構成例＞
まず、本発明の分散処理システムを構成する各装置に関して以下に説明する。図８は、通信兼情報処理装置１０の構成の一例を示すブロック図である。
【００２６】
通信兼情報処理装置１０は、通信機能部１００と情報処理機能部２００で構成する。通信機能部１００は、ネットワークアドレス変換機能を備えたレイヤ３スイッチとして実現することができる。通信機能部１００は、複数のインタフェース１０１を備え、図８の例では、広域網２（ネットワーク）へのインタフェース１０１−１、１０１−２、１０１−３、１０１−４と情報処理機能部へのインタフェース１０１−６、ネットワークアドレス変換部１４０へのインタフェース１０１−５を備える。これらのインタフェース１０１は、スイッチ部１１０を介して検索部１２０に接続されている。検索部１２０は、受信したパケットの転送先をメモリ１３０上のルーティングテーブル１３１を用いて検索し、検索結果に基づいて該当するインタフェース１０１からパケットを転送する。
【００２７】
インタフェース１０１−１〜１０１−４で受信したパケットの転送先を通信兼情報処理装置１０の情報処理機能部２００とする場合、例えば、ネットワークアドレス変換部１４０を利用することで転送を実現できる。
【００２８】
本発明の分散処理システムでは、クライアント４０が管理装置２０へ処理の実行を依頼すると、管理装置２０は、ユーザの所望のプログラムを受け付ける。そして、管理装置２０は、ユーザの所望のプログラムを実行する通信兼情報処理装置１０に仮想のＩＰアドレスを割り当て、クライアント４０に通知する。クライアント４０は、通知されたＩＰアドレスで通信兼情報処理装置１０と通信を行う。
【００２９】
ユーザのプログラムが使用する仮想的なＩＰアドレスをネットワークアドレス変換部１４０が保持する予め設定されたＩＰアドレスに変換し、該当するユーザのクライアント４０からのパケットを受信した場合、検索部１２０の検索結果によって、ネットワークアドレス変換部１４０に転送される。
【００３０】
ネットワークアドレス変換部１４０は、該当するクライアント４０からのパケットの宛先ＩＰアドレスを情報処理機能部２００に割り当てたＩＰアドレスへ変換してスイッチ部１１０へ転送することで、再度、検索部１２０によるパケットの宛先検索が行われ、結果として、情報処理機能部２００にクライアント４０のパケットは転送され、ユーザのプログラムによって処理される。
【００３１】
情報処理機能部２００は、汎用的なサーバを用いて実現することができる。情報処理機能部２００は、インタフェース２０１を備え、ＣＰＵ２１０、メモリ２２０、ストレージ２３０を内部バス２０２によって接続する構成が代表的な例である。なお、各インタフェース１０１−１〜１０１−４、１０１−６、２０１は、ネットワークインタフェースで構成することができる。
【００３２】
ＣＰＵ２１０では、通信兼情報処理装置１０の資源を管理するための管理用プログラム２１１と、少なくともクライアント４０とのＲＴＴであるＲＴＴｃ７３を計測するためのＲＴＴ計測プログラム２１２と、クライアント４０に対するサーバプログラムとして機能するユーザプログラム２１３を稼働させる。
【００３３】
ＣＰＵ２１０の管理用プログラム２１１が利用する資源管理テーブル２２１と、ユーザプログラム２１３が利用するユーザデータ２２２及び上記管理用プログラム２１１、ＲＴＴ計測プログラム２１２、ユーザプログラム２１３はメモリ２２０に格納される。また、図中では省略しているが、ＣＰＵ２１０上で実行するＯＳ、また、メモリ２２０上で利用されるテーブルやデータ、各プログラムは、情報処理機能部２００の起動時にストレージ２３０からロードされたものである。なお、ユーザデータ２２２は一部がメモリ２２０に保持されていれば良い。
【００３４】
ＣＰＵ２１０は、各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、ＣＰＵ２１０は、ＲＴＴ計測プログラム２１２に従って動作することでＲＴＴ計測部として機能する。他のプログラムについても同様である。さらに、ＣＰＵ２１０は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００３５】
情報処理機能部２００の各機能を実現するプログラム、テーブル等の情報は、ストレージ２３０や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００３６】
図８では、情報処理機能部２００を一つしか記載していないが、通信兼情報処理装置１０内に複数の情報処理機能部２００を配置してもよい。また、図８では、情報処理機能部２００内に一つのＣＰＵ２１０しか記載していないが、複数のＣＰＵを利用してもよい。
【００３７】
＜管理装置の構成＞
図９は、管理装置２０の構成の一例を示すブロック図である。管理装置２０は、情報処理機能部２００と同様に、汎用的なサーバを用いて実現することができる。管理装置２０は、広域網２に接続されるインタフェース６０１を備え、ＣＰＵ６１０、メモリ６２０、ストレージ６３０を内部バス６０２によって接続する構成が代表的な例である。
【００３８】
ＣＰＵ６１０では、分散処理システム内の全ての通信兼情報処理装置１０の資源を管理し、クライアント４０の処理要求を通信兼情報処理装置１０（またはデータセンタ３）に割り当てる管理用プログラム６１１と、少なくとも通信兼情報処理装置１０とのＲＴＴであるＲＴＴａ７１、クライアント４０との通信遅延であるＲＴＴｂ７２を計測するためのＲＴＴ計測プログラム６１２を稼働させる。ＣＰＵ６１０の管理用プログラム６１１が利用する通信兼情報処理装置管理テーブル６２１と、管理用プログラム６１１と、ＲＴＴ計測プログラム６１２は、メモリ６２０に格納される。また、図中では省略しているが、ＣＰＵ６１０上で稼動するプログラムやＯＳ、また、メモリ６２０上で利用されるテーブルやデータは、管理装置２０の起動時にはストレージ６３０からメモリ６２０上にロード格納される。
【００３９】
ＣＰＵ６１０は、各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、ＣＰＵ６１０は、ＲＴＴ計測プログラム６１２に従って動作することでＲＴＴ計測部（通信遅延計測部）として機能する。また、ＣＰＵ６１０は、管理用プログラム６１１に従って動作することで管理部として機能する。他のプログラムについても同様である。さらに、ＣＰＵ６１０は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００４０】
管理装置２０の各機能を実現するプログラム、テーブル等の情報は、ストレージ６３０や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００４１】
なお、クライアント４０やデータセンタ３のサーバ３０またはＤＮＳサーバ２１も、上記管理装置２０と同様の計算機で構成される。
【００４２】
＜管理テーブルの構成＞
図１０に管理装置２０上の、通信兼情報処理装置管理テーブル６２１の構成例を示す。通信兼情報処理装置管理テーブル６２１は、実装方法によって様々なバリエーションがありうるが、通信兼情報処理装置１０と管理装置２０のＲＴＴであるＲＴＴａ７１と、通信兼情報処理装置１０の総保有資源量と未使用状態の資源量（乃至は、利用状態の資源量）を識別できるものであればよい。なお、資源量は情報処理機能部２００の計算機資源の量を示す。
【００４３】
例えば、通信兼情報処理装置管理テーブル６２１は、複数の通信兼情報処理装置１０を識別するための通信兼情報処理装置番号フィールド７０１と、通信兼情報処理装置１０が設置された地域を識別するための地域フィールド７０２と、通信兼情報処理装置１０と管理装置２０のＲＴＴであるＲＴＴａ７１を識別するためのＲＴＴａフィールド７０３と、通信兼情報処理装置１０の搭載する総資源量を示す保有資源量フィールド７０４と、通信兼情報処理装置１０の未使用状態の資源量を示す未使用資源量フィールド７０５と、を含んでひとつのエントリ（またはレコード）が構成される。
【００４４】
地域フィールド７０２は、分散処理システムの管理者が通信兼情報処理装置１０を管理しやすい粒度が例として挙げられる。例えば、日本であれば、北海道、東北、関東、甲信越、関西、中国、九州、沖縄のような８ブロックに分ける例が挙げられる。もちろん、都道府県レベルや市町村などに更に細分化してもよい。あるいは、通信兼情報処理装置１０が所属する属性でグループ分けを行い、管理装置２０がグループ単位で通信兼情報処理装置１０を管理するようにしても良い。属性としては、地理的や行政的なグループに代わって、通信兼情報処理装置１０が接続されているネットワークを、通信兼情報処理装置１０を管理するグループとしても良く、例えば、地域ＩＰ網等をひとつのグループとして管理してもよい。
【００４５】
この通信兼情報処理装置管理テーブル６２１で、各通信兼情報処理装置１０に関するＲＴＴや計算機資源を一括管理する。図１０の例では、例えば、番号１の通信兼情報処理装置１０は、地域Ａに属し、管理装置２０とのＲＴＴａは１１ミリ秒、計算機の総資源として６４コア、１２８ＧＢのメモリ、１ＴＢのハードディスドライブを保有し、現在未使用の計算機資源として３２コア、７０ＧＢのメモリ、５１２ＧＢのハードディスドライブがあることを示している。
【００４６】
＜クライアント登録処理＞
次に、本発明を適用した分散処理システムへ、クライアント４０を登録する処理の一例に関して、図３のシーケンス図を用いて説明する。
【００４７】
クライアント４０は、管理装置２０へ登録要求と共に、処理に必要な情報を転送する（ステップＳ３１０）。処理に必要な情報としては、少なくとも、クライアント４０が分散処理システムに要求するＲＴＴ（要求ＲＴＴｒ＝要求往復通信遅延：例えば、５ミリ秒以内等）、クライアント４０のＩＰアドレス、分散処理システム上で利用するサーバプログラム（ユーザプログラム２１３）、分散処理システムに要求するメモリ量等の計算機資源量が挙げられる。また、ユーザプログラム２１３としては、センサの計測結果をクライアント４０が分散処理システムに送信し、駆動する制御対象と駆動量を分散処理システムで演算し、クライアント４０が受信して制御対象を制御するプログラムなどで構成することができる。
【００４８】
管理装置２０は、クライアント４０からの登録要求を受信すると、データセンタ３のサーバ３０の計算機資源を確保し（ステップＳ３２０）、クライアント４０から受信したユーザプログラム２１３を、上記確保したサーバ３０へ転送する（ステップＳ３２１）。
【００４９】
続いて管理装置２０は、クライアント４０の要求ＲＴＴｒを満たす情報処理装置（データセンタ３のサーバ３０、乃至は、いずれかの通信兼情報処理装置１０）を本発明の手順を用いて選択する（ステップＳ３２２）。この手順の詳細に関しては、後述する。図示の例では、複数の通信兼情報処理装置１０のうち１０−Ａ２を選択した例を示す。
【００５０】
また、管理装置２０は、選択してクライアント４０の処理を割り当てる通信兼情報処理装置１０−Ａ２のＣＰＵやメモリなどの計算機資源に関する情報を更新する（ステップＳ３２３）。すなわち、管理装置２０は、ユーザプログラム２１３を実行するための計算機資源を、当該ユーザプログラム２１３を割り当てた通信兼情報処理装置１０−Ａ２の未使用資源量７０５から差し引いて更新する。
【００５１】
いずれかの通信兼情報処理装置１０が選択された場合、該当する通信兼情報処理装置１０−Ａ２は、データセンタ３のサーバ３０からユーザプログラム２１３等の情報を取得する（ステップＳ３３０）。
【００５２】
そして、前記選択された通信兼情報処理装置１０−Ａ２は、自身の情報処理機能部２００に対して、受信したユーザプログラム２１３を利用可能な状態に設定し（ステップＳ３３１）、更に自身の通信機能部１００に対してクライアント４０との通信を該当ユーザプログラム２１３へ転送するためにルーティングなどの設定を行う（ステップＳ３３２）。
【００５３】
前記選択した通信兼情報処理装置１０−Ａ２は、ステップ３３２までの設定を完了すると、管理装置２０へ、受信したユーザプログラム２１３に対する広域網２上での仮想的なＩＰアドレスをＤＮＳサーバ２１へ登録するよう管理装置２０へ要求を出す（ステップＳ３３３）。仮想的なＩＰアドレスは、後述するようにクライアント４０が宛先アドレスとして用いるアドレスである。
【００５４】
管理装置２０は、通信兼情報処理装置１０からＤＮＳサーバ２１への登録要求を受信するとＤＮＳサーバ２１に対して、仮想的なＩＰアドレスに関するＤＮＳの登録要求を送信する（ステップＳ３４０）。
【００５５】
ＤＮＳサーバ２１は、管理装置２０からＤＮＳの登録要求を受信すると、前記のユーザプログラム２１３に対する仮想的なＩＰアドレスと紐付けるためのＵＲＬを作成し、管理装置２０へ通知する（ステップＳ３４１）。通常、ＤＮＳサーバ２１は、複数の階層的なサーバにより構成されているが、本実施例では説明の簡易化のため、単階層のＤＮＳサーバ２１としている。
【００５６】
管理装置２０は、ＤＮＳサーバ２１からＵＲＬを含む登録完了通知を受信すると、該当する通信兼情報処理装置１０−Ａ２とクライアント４０に対して前記の仮想的なＩＰアドレスに対するＵＲＬを通知し、クライアント４０の分散処理システムへの登録を終える（ステップＳ３４２）。
【００５７】
尚、管理装置２０は、ステップＳ３４２では、クライアント４０が、ＵＲＬではなく仮想的なＩＰアドレスに直接アクセスできるように、ＵＲＬと一緒に前記仮想的なＩＰアドレスを通知してもよい。また、クライアント４０が、ＵＲＬを利用しないのであれば、管理装置２０は、ステップＳ３４０とステップＳ３４１を省き、前記の仮想的なＩＰアドレスだけをクライアント４０へ通知してもよい。
【００５８】
以上の処理により、管理装置２０は、分散処理システムへクライアント４０を登録し、ユーザプログラム２１３を実行する通信兼情報処理装置１０−Ａ２をクライアント４０に割り当てることができる。
【００５９】
次に、本発明を適用した分散処理システムにおいて、クライアント４０が分散処理システムを用いて情報処理を行う手順に関して、図４のフローチャート例を用いて説明する。
【００６０】
図４は、分散処理システムで行われる処理のうち、クライアント４０と通信兼情報処理装置１０−Ａ２及びＤＮＳサーバ２１との間で行われる処理の一例を示すシーケンス図である。
【００６１】
クライアント４０は、分散処理システムに登録したユーザプログラム２１３に対する仮想的なＩＰアドレスを取得していない場合、管理装置２０から割り当てられたＵＲＬを用いてＤＮＳサーバ２１へＤＮＳ検索要求を出す（ステップＳ５００）。
【００６２】
ＤＮＳサーバ２１は、クライアント４０からＤＮＳ検索要求を受け付けると、該当ＵＲＬに対するＩＰアドレスを検索し、クライアント４０へ前記ＩＰアドレス（仮想ＩＰアドレス）を通知する（ステップＳ５０１）。
【００６３】
クライアント４０は、ＤＮＳサーバ２１からＤＮＳ検索結果を受信すると、前記ＵＲＬに対するＩＰアドレスを取得した状態となる（ステップＳ５０２）。尚、管理装置２０からＵＲＬと一緒に、もしくは単独で、仮想的なＩＰアドレス通知されている場合は、ステップＳ５００、ステップＳ５０１、ステップＳ５０２は省略することができる。
【００６４】
以後、クライアント４０は、センサ／制御対象５０からセンサ情報を受信すると、前記の仮想的なＩＰアドレスを宛先ＩＰアドレスとして分散処理システムにセンサデータを転送する（ステップＳ５１０）。
【００６５】
分散処理システムの前記の仮想的なＩＰアドレスを割り当てられた通信兼情報処理装置１０−Ａ２は、センサデータを受信すると、自身の通信機能部１００を利用して実行先（例えば、自身の情報処理機能部２００）へセンサデータを転送し、処理を行って制御情報を生成し、当該結果を逆の経路でクライアント４０へ返信する（ステップＳ５１１）。
【００６６】
クライアント４０は、通信兼情報処理装置１０から制御情報を受信すると、制御情報をもとにセンサ／制御対象５０に対して制御を実施する（ステップＳ５１２）。
【００６７】
＜通信兼情報処理装置の選択処理＞
次に、図３のステップＳ３２２における、クライアント４０の要求ＲＴＴｒを満たす通信兼情報処理装置１０を選択するための処理の詳細に関して図５と図６を用いて説明する。なお、要求ＲＴＴｒはクライアント４０毎に設定され、クライアント４０の処理を実行する通信兼情報処理装置１０またはサーバ３０との通信遅延ＲＴＴｃ７３と比較する際の閾値とする。
【００６８】
図５は、通信兼情報処理装置を分散処理システムへ登録する処理の一例を示すシーケンス図である。図６は、分散処理システムで通信兼情報処理装置を選択する処理の一例を示すシーケンス図である。
【００６９】
まず、図５を用いて、通信兼情報処理装置１０を新規に分散処理システムへ登録する手順に関して説明する。
【００７０】
通信兼情報処理装置１０は、自身の各種情報（例えば、自身が所属する地域名、自身が保有するＣＰＵコア数やメモリ量、ハードディスク量などの情報処理資源量、必要に応じてＯＳ等の種類）と共に、管理装置２０へ、登録要求を送信する（ステップＳ３００）。
【００７１】
管理装置２０は、通信兼情報処理装置１０から登録要求を受信すると、前記通信兼情報処理装置１０との間でＲＴＴを計測し（ステップＳ３０１）、ＲＴＴａとして通信兼情報処理装置管理テーブル６２１のＲＴＴａフィールド７０３に登録する。また、管理装置２０は、通信兼情報処理装置１０の各種情報を地域フィールド７０２、保有資源量フィールド７０４へ登録する（ステップＳ３０２）。登録後、管理装置２０は、前記通信兼情報処理装置１０に登録許可を送信する（ステップＳ３０３）。
【００７２】
図５のステップＳ３００からステップＳ３０３の処理を繰り返した分だけ、通信兼情報処理装置１０を分散処理システムに登録することができる。オペレータが所望の数量の通信兼情報処理装置１０を分散処理システムに登録し終えると、分散処理システムとしてクライアント４０を運用するユーザにサービスの提供を開始できる状態になる。
【００７３】
図６は、分散処理システムで通信兼情報処理装置を選択する処理の一例を示すシーケンス図である。次に、図６を用いて、ユーザに提供可能状態になった分散処理システムで、クライアント４０の要求ＲＴＴｒを満たす通信兼情報処理装置１０を選択するための処理の詳細に関して説明する。
【００７４】
管理装置２０は、クライアント４０から登録要求を受信すると、まず、データセンタ３のサーバ３０に対してクライアント４０とのＲＴＴであるＲＴＴｃ７３を計測するよう要求を出す（ステップＳ４００）。
【００７５】
データセンタ３のサーバ３０は、管理装置２０からＲＴＴｃ７３計測要求を受信すると、クライアント４０に対してｐｉｎｇコマンドなどでＲＴＴｃ７３を計測する（ステップＳ４０１）。そして、データセンタ３のサーバ３０は、管理装置２０へＲＴＴｃ７３の計測結果を通知する（ステップＳ４０２）。
【００７６】
ここまでの手順で、管理装置２０はクライアント４０と、データセンタ３のサーバ３０の間のＲＴＴを把握できる。このＲＴＴがクライアント４０の要求ＲＴＴｒを満たしている場合は、クライアント４０には、従来のクラウド同様にデータセンタ３のサーバ３０を割り当ててしまえばよい。
【００７７】
一方で、クライアント４０とデータセンタ３のサーバ３０の間のＲＴＴがクライアント４０の要求ＲＴＴｒを満たしていない場合、クライアント４０に要求ＲＴＴｒを満たす通信兼情報処理装置１０を割り当てる必要がある。
【００７８】
そこで、管理装置２０は、管理装置２０からクライアント４０に対するＲＴＴであるＲＴＴｂ７２を計測する（ステップＳ４１０）。
【００７９】
管理装置２０は、通信兼情報処理装置管理テーブル６２１のＲＴＴａフィールド７０３を検索し、前記ＲＴＴｂ７２と近い値を持ち、地域フィールド７０２が異なり、未使用資源量フィールド７０５にクライアント４０が要求する分の未使用資源のある通信兼情報処理装置１０を所定のＫａ（第１の所定数）台ずつ各地域１から選択し、クライアント４０とのＲＴＴであるＲＴＴｃ７３を計測するように要求する（ステップＳ４１１）。
【００８０】
ここで、管理装置２０からクライアント４０に対するＲＴＴｂ７２に近いＲＴＴａを有する通信兼情報処理装置管理テーブル６２１の通信兼情報処理装置１０とは、管理装置２０からの通信遅延時間が、クライアント４０に対するＲＴＴｂ７２と通信兼情報処理装置１０に対するＲＴＴａの差分ΔＲＴＴが所定の範囲内にあることを示し、
ΔＲＴＴ＝｜ＲＴＴａ−ＲＴＴｂ｜≦ΔＴｈ
で表す。
【００８１】
ここで、ΔＴｈは差分ΔＲＴＴの所定の範囲を示す閾値で、例えば、３０ミリ秒などの値に設定される。閾値ΔＴｈは、分散処理システムの固定値としても良いし、クライアント４０毎に異なる値を設定するようにしてもよい。また、閾値ΔＴｈの値は、地域の数や、通信兼情報処理装置１０の総数などに応じて適宜変更すれば良い。
【００８２】
すなわち、管理装置２０は、クライアント４０に対する通信遅延と同等の通信遅延となる通信兼情報処理装置１０を、各地域１からそれぞれ所定のＫａ台ずつ選択する。つまり、管理装置２０からの遅延時間がほぼ同じ、換言すれば時間的に等距離の通信兼情報処理装置１０を各地域１の代表としてＫａ台ずつ選択して、ＲＴＴｃ７３を計測する。なお、各地域１から選択する通信兼情報処理装置１０の数Ｋａは、地域１の数や通信兼情報処理装置１０の数に基づいて予め設定された値であり、例えば、１〜数台の値に設定する。図６では、Ｋａ＝１台とした例を示す。
【００８３】
管理装置２０からＲＴＴｃ７３の計測を要求された通信兼情報処理装置１０は、指定されたクライアント４０との間のＲＴＴであるＲＴＴｃ７３を計測し（ステップＳ４２０）、管理装置２０へＲＴＴｃ７３計測結果を通知する（ステップＳ４２１）。
【００８４】
管理装置２０は、選択した全ての通信兼情報処理装置１０からＲＴＴｃ７３を受信すると、クライアント４０の要求ＲＴＴｒを満たすＲＴＴｃ７３があるか否かを判定する。要求ＲＴＴｒを満たすＲＴＴｃ７３が一つであれば、管理装置２０は、クライアント４０へ該当する通信兼情報処理装置１０を割り当てる（ステップＳ４５０）。あるいは、要求ＲＴＴｒを満たすＲＴＴｃ７３が複数ある場合、管理装置２０は、クライアント４０へＲＴＴｃ７３が最小となる通信兼情報処理装置１０を選択し、クライアント４０の処理を割り当てる（ステップＳ４５０）。
【００８５】
要求ＲＴＴｒを満たすＲＴＴｃ７３がない場合、管理装置２０は、通信兼情報処理装置管理テーブル６２１のＲＴＴａフィールド７０３を検索し、ＲＴＴｃ７３が最も小さかった地域、かつ、ＲＴＴａが前記ＲＴＴｂ７２に近い値（差分ΔＲＴＴの絶対値が閾値ΔＴｈ以下）で、未使用資源量フィールド７０５にクライアント４０が要求する分の未使用資源のある通信兼情報処理装置１０をオペレータが指定した台数（例えばＫｂ台）まで最大で選択する。ここで、指定された台数であるＫｂ（第２の所定数）の値は、例えば、１０未満の数で、通常は３程度に設定する。そして、選択されたＫｂ台の通信兼情報処理装置１０に対して、クライアント４０とのＲＴＴｃ７３を計測するよう要求する（ステップＳ４３０）。
【００８６】
尚、ステップＳ４３０へ至る厳密な制御方法は、図７で示すように管理装置２０の視点でのフローチャートのステップＳ４１４以降を用いて後ほど説明する。
【００８７】
通信兼情報処理装置１０は、管理装置２０からＲＴＴｃ７３の計測要求を受信すると、指定されたクライアント４０との間でＲＴＴｃ７３を計測し（ステップＳ４４０）、管理装置２０へＲＴＴｃ７３の計測結果を通知する（ステップＳ４４１）。
【００８８】
管理装置２０は、選択した全ての通信兼情報処理装置１０からＲＴＴｃ７３を受信すると、クライアント４０の要求ＲＴＴｒを満たすＲＴＴｃ７３があるか否かを判定する。要求ＲＴＴｒを満たすＲＴＴｃ７３が一つであると判定した場合、クライアント４０へ該当する通信兼情報処理装置１０を割り当てる。要求ＲＴＴｒを満たすＲＴＴｃ７３が複数あると判定した場合、クライアント４０へＲＴＴｃ７３が最小となる通信兼情報処理装置１０を割り当てる（ステップＳ４５０）。
【００８９】
以上の処理によって、管理装置２０は、まず、管理装置２０とクライアント４０間の通信遅延ＲＴＴｂを計測してから、予め計測しておいた通信兼情報処理装置１０と管理装置２０の通信遅延ＲＴＴａのうち通信遅延ＲＴＴｂに近似する通信兼情報処理装置１０を各地域からそれぞれＫａ台選択する。そして、選択したＫａ台の通信兼情報処理装置１０だけにクライアント４０との通信遅延ＲＴＴｃ７３を計測させ、通信遅延ＲＴＴｃ７３がクライアント４０の要求ＲＴＴｒを満たす通信兼情報処理装置１０を選択し、クライアント４０に割り当てることを実現する。
【００９０】
尚、前記のステップＳ４５０までの処理で要求ＲＴＴｒを満たす通信兼情報処理装置１０を抽出できていないケースもある。その場合は、これまで未選択の通信兼情報処理装置１０に対して、ステップＳ４３０、ステップＳ４４０、ステップＳ４４１を所定の回数繰り返すことで、要求ＲＴＴｒを満たす通信兼情報処理装置１０を抽出する。それでも要求ＲＴＴｒを満たす通信兼情報処理装置１０を抽出できない場合は、クライアント４０の要求ＲＴＴｒを満たせないものとして、クライアント４０へ割当不可を通知する。これらの動作が理解できるよう、図７のフローチャートを用いて、管理装置２０の視点で、再度、前記の処理について説明する。
【００９１】
図７は、管理装置２０が行う通信兼情報処理装置１０を選択する処理の一例を示すフローチャートである。
【００９２】
管理装置２０は、クライアント４０から分散処理システムへの登録要求を待つ。管理装置２０は、クライアント４０から登録要求を受信すると（図６のステップＳ３１０からＹＥＳへ遷移）、データセンタ３のサーバ３０に対してクライアント４０との通信遅延であるＲＴＴｃ７３を計測するよう要求を出し（ステップＳ４００）、ＲＴＴｃ７３の計測結果を待つ（ステップＳ４０２）。
【００９３】
管理装置２０は、データセンタ３のサーバ３０からＲＴＴｃ７３の計測結果を受信すると（ステップＳ４０２でＹＥＳに遷移）、前記ＲＴＴｃ７３が、クライアント４０の要求ＲＴＴｒを満たすか否かを判定する（ステップＳ４０４）。
【００９４】
ステップＳ４０４で、前記ＲＴＴｃ７３がクライアント４０の要求ＲＴＴｒを満たす場合（Ｓ４０４でＮＯへ遷移）、管理装置２０は、クライアント４０へデータセンタ３のサーバ３０を割り当て、割当処理を終える（ステップＳ４５０に相当）。
【００９５】
ステップＳ４０４で、前記ＲＴＴｃ７３がクライアントの要求ＲＴＴｒを満たさない場合（Ｓ４０４でＹＥＳに遷移）、管理装置２０は、クライアント４０に要求ＲＴＴｒを満たす通信兼情報処理装置１０を割り当てる必要がある。そこで、管理装置２０は、クライアント４０に対する通信遅延であるＲＴＴｂを計測する（ステップＳ４１０）。
【００９６】
そして、管理装置２０は、通信兼情報処理装置管理テーブル６２１のＲＴＴａフィールド７０３を検索し、前記ＲＴＴｂと近い値を持ち、地域フィールド７０２の値が異なり、未使用資源量フィールド７０５にクライアント４０が要求する分の未使用資源のある通信兼情報処理装置１０をＫａ台ずつ各地域１から選択し、クライアント４０との通信遅延であるＲＴＴｃ７３を計測するように要求する（ステップＳ４１１）。
【００９７】
管理装置２０は、ＲＴＴｃ７３の計測を要求した全ての通信兼情報処理装置１０からＲＴＴｃ７３の計測結果を受信すると（ステップＳ４１２でＹＥＳへ遷移）、ＲＴＴｃ７３の計測結果の中に、クライアント４０の要求ＲＴＴｒを満たすＲＴＴｃ７３があるか否かを判定する（ステップＳ４１３）。
【００９８】
要求ＲＴＴｒを満たすＲＴＴｃ７３が一つであれば、ステップＳ４１３からＹＥＳへ遷移し、管理装置２０は、クライアント４０へ該当する通信兼情報処理装置１０を割り当てる。また、要求ＲＴＴｒを満たすＲＴＴｃ７３が複数ある場合も、ステップＳ４１３からＹＥＳへ遷移し、管理装置２０は、クライアント４０へＲＴＴｃ７３が最小となる通信兼情報処理装置１０を割り当てる（ステップＳ４５０）。
【００９９】
尚、ステップＳ４１３は、フローチャート上で、複数回通過するステップとなる。初回の通過時では、計測結果であるＲＴＴｃ７３が要求ＲＴＴｒ以下であっても、更に値の小さいＲＴＴｃ７３が存在する可能性があるため、ステップＳ４１４からステップＳ４３１の遷移を所定の上限回数に達しない範囲で複数回繰り返してもよい。そして、その繰り返し上限回数内で、最も小さい計測結果ＲＴＴｃ７３であった通信兼情報処理装置１０を選択してもよい。
【０１００】
要求ＲＴＴｒを満たすＲＴＴｃ７３がない場合、ステップＳ４１３からＮＯへ遷移する。この段階で、ステップＳ４１３の処理の繰り返し回数が前記所定の上限回数に達していれば、ここで処理を打ち切り（ステップＳ４１４でＮＯへ遷移）、クライアント４０へ要求ＲＴＴｒを満たすことができない旨を通知して終了する。
【０１０１】
一方で、ステップＳ４１３におけるＲＴＴｃ７３の判定回数が前記所定の上限回数に達していなければ（ステップＳ４１４でＹＥＳへ遷移）、管理装置２０は、通信兼情報処理装置管理テーブル６２１のＲＴＴａフィールド７０３を検索し、ＲＴＴｃ７３が最も小さかった地域１で、かつ、前記ＲＴＴｂと近い値を持ち、未使用資源量フィールド７０５にクライアント４０が要求する分の未使用資源のある通信兼情報処理装置１０をオペレータが指定したＫｂ台まで最大で選択する。そして、Ｋｂ台以内の通信兼情報処理装置１０に対して、クライアント４０とのＲＴＴｃ７３を計測するよう要求する（ステップＳ４３０）。
【０１０２】
管理装置２０は、ＲＴＴｃ７３の計測を要求した全ての通信兼情報処理装置１０から、ＲＴＴｃ７３の計測結果を受信すると（ステップＳ４３１でＹＥＳへ遷移）、再び、ステップＳ４１３に戻って、ＲＴＴｃ７３の計測結果の中にクライアントの要求ＲＴＴｒを満たすＲＴＴｃ７３があるか否かを判定する。以後、ステップＳ４１３、Ｓ４１４、Ｓ４３０、Ｓ４３１のフローを繰り返し、指定した回数以内でクライアントの要求ＲＴＴｒを満たす通信兼情報処理装置１０を抽出できれば、その通信兼情報処理装置１０をクライアント４０へ割り当てて割当処理を終了する（Ｓ４５０）。また、前記所定の回数以内でクライアント４０の要求ＲＴＴｒを満たす通信兼情報処理装置１０を抽出できなければ、クライアント４０へ要求ＲＴＴｒを満たすことができない旨を通知して終了する（Ｓ４１５）。
【０１０３】
ここで一例として、東京都に管理装置２０が置かれており、沖縄にデータセンタ３が、日本全国に複数の通信兼情報処理装置１０が配置されており、東北地方のクライアント４０が、要求ＲＴＴｒを３ミリ秒として、本分散処理システムへ登録要求を出したと仮定する。この場合、ステップＳ４１１で、東北地方の通信兼情報処理装置１０と近畿地方の通信兼情報処理装置１０が、管理装置２０とクライアント４０の間のＲＴＴｂ７２に近いＲＴＴを持つ通信兼情報処理装置１０として選択される可能性がある。そして、図６のステップＳ４２０、ステップＳ４２１の処理を経て、東北地方の通信兼情報処理装置１０が選択される。
【０１０４】
次いで、ステップＳ４３０で東北地方の通信兼情報処理装置１０の中から、管理装置２０とのＲＴＴａ７１が、管理装置２０とクライアント４０のＲＴＴｂに近い通信兼情報処理装置１０が選択され、ステップＳ４４０、ステップＳ４４１の処理を経て、東北地方の通信兼情報処理装置１０の中から、クライアント４０とのＲＴＴｃ７３がＲＴＴ要求を満たす装置が選択される。
【０１０５】
尚、本実施例１では、管理装置２０と通信兼情報処理装置１０の間のＲＴＴであるＲＴＴａ７１の計測、及び、管理装置２０とクライアント４０の間のＲＴＴであるＲＴＴｂ７２の計測は管理装置２０が能動的に行う例を示した。同様に、通信兼情報処理装置１０とクライアント４０の間のＲＴＴであるＲＴＴｃ７３の計測は通信兼情報処理装置１０が能動的に行う例を示した。これは、管理装置２０と通信兼情報処理装置１０を分散処理システムのオペレータ側が提供し、クライアント４０をユーザ側が提供することを前提としたためである。この場合、管理装置２０と通信兼情報処理装置１０が主体となって、能動的に通信遅延を計測することで、クライアント４０の負担を低減することができる。
【０１０６】
しかしながら、必ずしも、ＲＴＴ計測の方向を限定する必要はない。すなわち、ＲＴＴａ７１を通信兼情報処理装置１０が計測してもよい。また、ＲＴＴｂ７２、ＲＴＴｃ７３をクライアント４０が計測してもよい。
【０１０７】
以上、本発明について第１の実施例の説明を行った。本発明によれば、クライアント４０のＲＴＴ要求を満たす通信兼情報処理装置１０を選択することを実現しつつ、クライアント４０には、各地域１の通信兼情報処理装置１０から一度に最大でもＫａ個の（Ｋａは１０未満の数で、通常は３程度に設定する）ＲＴＴｃ７３の計測要求しか届かないため、クライアント４０の負荷の増大を最小限にすることが可能となる。その際、クライアント４０はＲＴＴｃ７３を計測するための処理負荷が小さいので、正確なＲＴＴ計測を実現することができる。すなわち、前記従来例で述べたようにクライアント４０が過負荷状態でＲＴＴの計測を行うと不正確な値となる場合があるが、本発明では、クライアント４０に対する処理負荷を抑制することが可能となる。
【０１０８】
また、分散処理システム全体でみると、ＲＴＴｃ７３を計測のするトラフィックを最大でもＫａ×地域数あるいはＫｂ×上限回数しか生成しない。これは、通信兼情報処理装置１０の分散処理システム上での総数を１０００台程度と想定する場合、十分小さな数となる。これにより、クライアント４０の登録時に発生するＲＴＴ計測のためのトラフィックが過大になるのを抑制できる。
【実施例２】
【０１０９】
実施例１では、説明を単純化するために、あるユーザが一度に分散処理システムへ登録するクライアント４０の数を１個だけとしていたが、実際には、複数のクライアント４０を登録するケースも多い。そこで、実施例２では、特定のユーザのクライアント４０が複数個である場合に関して説明する。
【０１１０】
実施例２の場合のシステム構成イメージは、図１に対してクライアント４０が複数登場するものと考えてよい。それらのクライアント４０へ通信兼情報処理装置１０を選択して割り当てる基本的な考え方は実施例１に準拠する。
【０１１１】
すなわち、複数のクライアント４０、それぞれに対して、実施例１に示した手順で、各クライアント４０へ、通信兼情報処理装置１０を割り当てる処理を行えばよい。この処理によって、各クライアント４０へは、それぞれ、要求ＲＴＴｒを満たす通信兼情報処理装置１０が割り当てられる。
【０１１２】
また、複数のクライアント４０からの情報を同一の通信兼情報処理装置１０上で処理させたいケースもある。その場合、管理装置２０は、複数のクライアント４０に対して、実施例１の通信兼情報処理装置１０の選択及び割当処理を個別に実施するのではなく、同時に、各通信兼情報処理装置１０に、複数のクライアント４０に対するＲＴＴｃ７３の計測を実施するよう要求を送信すればよい。
【０１１３】
この場合、通信兼情報処理装置１０は、複数のクライアント４０全てからのＲＴＴｃ７３の計測結果を管理装置２０へ通知する。
【０１１４】
単にクライアント４０の要求ＲＴＴｒを満たすだけでよければ、管理装置２０は、全てのクライアント４０に対して要求ＲＴＴｒを満たす通信兼情報処理装置１０を抽出し、かつ、全てのＲＴＴｃ７３の中から一番大きい値のＲＴＴｃ７３が要求ＲＴＴｒを満たした場合に、図７のステップＳ４１３からＹＥＳの遷移を行うようにすればよい。
【０１１５】
また、全てのクライアント４０から同等の通信遅延であることを重視する場合には、管理装置２０は、全てのクライアント４０に対して要求ＲＴＴｒを満たす通信兼情報処理装置１０を抽出し、かつ、全てのＲＴＴｃ７３が平均的に同じ値である場合に、図７のステップＳ４１３からＹＥＳの遷移を行うようにすればよい。
【実施例３】
【０１１６】
上記実施例１では、管理装置２０を単一の装置として説明したが、管理装置２０を階層化して配置してもよい。図１１は、第３の実施例を示し、分散処理システムの一例を示すブロック図である。
【０１１７】
図１１において、管理装置２０を最上位の管理装置とし、各地域１−１〜１−３に下位の管理装置２０Ａ〜２０Ｃを配置してもよい。管理装置２０Ａは、地域１−１内の通信兼情報処理装置１０−Ａ１〜１０−ＡＮを管理し、管理装置２０Ｂは、地域１−２内の通信兼情報処理装置１０−Ｂ１〜１０−ＢＮを管理し、管理装置２０Ｃは、地域１−３内の通信兼情報処理装置１０−Ｃ１〜１０−ＣＮを管理する。そして、管理装置２０は、各地域１の管理装置２０Ａ〜２０Ｃを階層的に管理する。その他の構成は、前記第１実施例と同様である。
【０１１８】
この実施例３では、図５のフローチャートにおいて、最上位の管理装置２０が、各地域１の下位の管理装置２０Ａに、自身の通信兼情報処理装置管理テーブル６２１の内容を通知するステップが追加される。
【０１１９】
具体的には、図１２のフローチャートで、最上位の管理装置２０はステップＳ３０２のあと、該当地域の下位の管理装置２０Ａへ通信兼情報処理装置１０の情報（例えば、自身が保有するＣＰＵコア数やメモリ量、ハードディスク量などの情報処理資源量、必要に応じてＯＳ等の種類）と最上位の管理装置２０が通信兼情報処理装置１０との間で計測したＲＴＴであるＲＴＴａ７１を通知する（ステップＳ３０４）。
【０１２０】
下位の管理装置２０は、前記の情報とＲＴＴａ７１を自身の通信兼情報処理装置管理テーブル６２１へ登録する（ステップＳ３０２Ａ）。
【０１２１】
そののち、上位の管理装置２０が、実施例１と同様に通信兼情報処理装置１０へ登録許可を出し、登録を終える。
【０１２２】
また、この実施例３では、図６のフローチャートにおけるステップＳ４００から、ステップＳ４３０で地域を選択するまでの処理を最上位の管理装置で行い、ステップ４３０の各地域内の通信兼情報処理装置１０を選択する処理以降を各地域１の管理装置２０Ａ〜２０Ｃでそれぞれ行えばよい。
【０１２３】
具体的には、図１３のフローチャートに示すように、ステップＳ４２２において、最上位の管理装置２０は、最小のＲＴＴｃ７３のクライアントの属する地域の管理装置（この例では、地域Ａの管理装置２０Ａ）に、選択権限を移譲する。これが、図６のフローチャートのステップＳ４３０で地位を選択するまでの処理に相当する。
【０１２４】
選択権限を委譲された下位の管理装置２０Ａは、自身の持つ通信兼情報処理装置管理テーブル６２１のＲＴＴａフィールド７０３を検索し、ＲＴＴａが実施例１で記載したＲＴＴｂ７２に近い値（差分ΔＲＴＴの絶対値が閾値ΔＴｈ以下）で、未使用資源量フィールド７０５にクライアント４０が要求する分の未使用資源のある通信兼情報処理装置１０をオペレータが指定した台数（例えばＫｂ台）まで最大で選択する。ここで、指定された台数であるＫｂ（第２の所定数）の値は、例えば、１０未満の数で、通常は３程度に設定する。そして、選択されたＫｂ台の通信兼情報処理装置１０に対して、クライアント４０とのＲＴＴｃ７３を計測するよう要求する（ステップＳ４２３）。これが、図６のフローチャートのステップＳ４３０の各地域内の通信兼情報処理装置１０を選択する処理移行に相当する。
【０１２５】
下位の管理装置２０ＡからＲＴＴｃ７３の計測を要求された通信兼情報処理装置１０は、指定されたクライアント４０との間のＲＴＴであるＲＴＴｃ７３を計測し（ステップＳ４２０）、下位の管理装置２０ＡへＲＴＴｃ７３計測結果を通知する（ステップＳ４２１）。
【０１２６】
下位の管理装置２０Ａは、選択した全ての通信兼情報処理装置１０からＲＴＴｃ７３を受信すると、クライアント４０の要求ＲＴＴｒを満たすＲＴＴｃ７３があるか否かを判定する。要求ＲＴＴｒを満たすＲＴＴｃ７３が一つであれば、下位の管理装置２０Ａは、クライアント４０へ該当する通信兼情報処理装置１０を割り当てる（ステップＳ４５０）。あるいは、要求ＲＴＴｒを満たすＲＴＴｃ７３が複数ある場合、下位の管理装置２０Ａは、クライアント４０へＲＴＴｃ７３が最小となる通信兼情報処理装置１０を選択し、クライアント４０の処理を割り当てる（ステップＳ４５０）。
【０１２７】
第３の実施例では、各地域内の通信兼情報処理装置１０を選択する処理以降を各地域１の管理装置２０Ａ〜２０Ｃで分散して処理するため、最上位の管理装置２０の負荷を低減することができる。
【実施例４】
【０１２８】
上記実施例１では、通信兼情報処理装置１０の情報処理機能部２００が物理計算機上で、管理用プログラム２１１と、ＲＴＴ計測プログラム２１２と、ユーザプログラム２１３を実行する例を示した。第４の実施例では、仮想計算機システムに本発明を適用した例を示す。
【０１２９】
図１４に、仮想計算機システムに本発明を適用した場合の通信兼情報処理装置１０の情報処理機能部２００の構成例を示す。
【０１３０】
情報処理機能部２００のＣＰＵ２１０は、メモリ２２０にロードしたハイパーバイザ２６０を実行する。ハイパーバイザ２６０は、情報処理機能部２００の物理的な計算機資源を仮想化した仮想計算機資源を仮想計算機２７０−１〜２７０−ｎに割り当てる。仮想計算機資源としては、ＣＰＵ２１０を仮想化した仮想ＣＰＵ２１０ｖ−１〜２１０ｖ−ｎや、インタフェース２０１を仮想化した仮想ＮＩＣ２０１ｖ−１〜２０１ｖ−ｎ等が各仮想計算機２７０に割り当てられる。
【０１３１】
各仮想計算機２７０では、ゲストＯＳ２６０上で、管理用プログラム２１１と、ＲＴＴ計測プログラム２１２と、ユーザプログラム２１３が実行される。これらのプログラム２１１〜２１３は前記第１の実施例と同様である。ここで、ＲＴＴ計測プログラム２１２は、仮想ＮＩＣ２０１ｖからインタフェース２０１と、図８に示した通信機能部１００及び広域網２を介して管理装置２０やクライアント４０と通信を行う。
【０１３２】
このため、図２に示したように、管理装置２０が計測する第１の通信遅延ＲＴＴａ７１は、管理装置２０のインタフェース（通信インタフェース）２０１から仮想計算機２７０の仮想ＮＩＣ２０１までの通信遅延となる。同様に、仮想計算機２７０上のＲＴＴ計測プログラム２１２が計測する第３の通信遅延ＲＴＴｃ７３は、仮想ＮＩＣ２０１ｖからクライアント４０の通信インタフェース（図示省略）までの通信遅延となる。その他につては、前記第１の実施例と同様であり、仮想計算機システムにも本発明を適用することが可能である。
【０１３３】
なお、上記各実施例では、通信兼情報処理装置１０内に通信機能部１００と情報処理機能部２００を含む例を示したが、各地域１内に、通信機能部１００を含む１以上の通信装置と、情報処理機能部２００を含む情報処理装置を１以上配置するようにしても良い。
【０１３４】
なお、本発明において説明した計算機等の構成、処理部及び処理手段等は、それらの一部又は全部を、専用のハードウェアによって実現してもよい。
【０１３５】
なお、上記各実施例では、管理装置２０と各地域１を広域網２で接続する例を示したが、広域網２をインターネット等のネットワークで構成してもよい。
【０１３６】
また、本実施例で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体（例えば、非一時的な記憶媒体）に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
【０１３７】
また、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【符号の説明】
【０１３８】
２  広域網
３  データセンタ
１０−Ａ１〜１０−ＣＮ  通信兼情報処理装置
２０  管理装置
３０−１〜３０−Ｎ  サーバ
４０  クライアント
７１  通信遅延ＲＴＴａ
７２  通信遅延ＲＴＴｂ
７３  通信遅延ＲＴＴｃ
２１０、６１０  ＣＰＵ
２２０、６２０  メモリ
２１１、６１１  管理プログラム
２１２、６１２  ＲＴＴ計測プログラム
２１３  ユーザプログラム
６２１  通信兼情報処理装置管理テーブル
【図１】
2014153854.tif 000003
【図３】
2014153854.tif 000004
【図４】
2014153854.tif 000005
【図５】
2014153854.tif 000006
【図６】
2014153854.tif 000007
【図８】
2014153854.tif 000008
【図９】
2014153854.tif 000009
【図１０】
2014153854.tif 000010
【図１１】
2014153854.tif 000011
【図１２】
2014153854.tif 000012
【図１３】
2014153854.tif 000013
【図１４】
2014153854.tif 000014
【図２】
2014153854.tif 000015
【図７】
2014153854.tif 000016