(57)【特許請求の範囲】
【請求項１】
アプリケーションを実行するサーバと、データを記録するストレージを有するファイルサーバと、前記サーバと前記ファイルサーバとを管理する管理サーバと、を備える拠点が複数、ネットワークを介して接続される情報処理システムであって、
第１の拠点の第１の前記管理サーバは、
アプリケーションの実行をネットワークを介して指示する機器の位置情報を取得し、
複数の前記サーバの位置情報と取得した前記機器の前記位置情報とに基づいて、前記アプリケーションを実行するサーバを第１のサーバから第２の拠点の第２のサーバへ変更することを決定し、
前記第２のサーバを管理する第２の前記管理サーバへ、前記第１のサーバから前記第２のサーバへの前記アプリケーション及びデータの移行の指示を送信し、
前記第２の管理サーバは、
前記第１の管理サーバへ前記第２のサーバを特定する情報を送信し、
前記第２のサーバへ、前記移行の指示を送信し、
前記第１の管理サーバは、前記第２のサーバを特定する前記情報を前記第１のサーバへ送信し、
前記第２のサーバは、
前記第１のサーバから、前記アプリケーションの実行に用いる情報及び前記データを受信し、
前記アプリケーションを実行し、
受信した前記データを前記第２の拠点の第２のファイルサーバへ格納し、
前記第１の管理サーバは、前記第２のサーバ上で前記アプリケーションが実行され、及び前記データを移行すると、前記機器から指示される前記アプリケーションを実行させるサーバを、前記第１のサーバから前記第２のサーバへ変更する指示を、前記ネットワークを構成するネットワーク機器へ送信する
ことを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記第１の管理サーバは、前記データに対する演算処理を行う第２のアプリケーションの実行の指示を受け取ると、前記第２のサーバを管理する前記第２の管理サーバへ、前記第２のアプリケーションの移行の指示を送信し、
前記第２のサーバは、前記データを入力とした前記第２のアプリケーションの演算結果を前記第１のサーバへ送信する
ことを特徴とする情報処理システム。
【請求項３】
アプリケーションを実行するサーバと、データを記録するストレージを有するファイルサーバと、前記サーバと前記ファイルサーバとを管理する管理サーバと、を備える拠点が複数、ネットワークを介して接続される情報処理システムであって、
第一の拠点の第１の前記管理サーバは、
前記ネットワークの情報を取得し、
複数の前記サーバとアプリケーションの実行を指示する機器との前記ネットワーク上のホップ数情報に基づいて、前記アプリケーションを実行するサーバを第１のサーバから第２の拠点の第２のサーバへ変更することを決定し、
前記第２のサーバを管理する第２の前記管理サーバへ、前記第１のサーバから前記第２のサーバへの前記アプリケーション及びデータの移行の指示を送信し、
前記第２の管理サーバは、
前記第１の管理サーバへ前記第２のサーバを特定する情報を送信し、
前記第２のサーバへ、前記移行の指示を送信し、
前記第１の管理サーバは、前記第２のサーバを特定する前記情報を前記第１のサーバへ送信し、
前記第２のサーバは、
前記第１のサーバから、前記アプリケーションの実行に用いる情報及び前記データを受信し、
前記アプリケーションを実行し、
受信した前記データを前記第２の拠点の第２のファイルサーバへ格納し、
前記第１の管理サーバは、前記第２のサーバ上で前記アプリケーションが実行され、及び前記データを移行すると、前記機器から指示される前記アプリケーションを実行させるサーバを、前記第１のサーバから前記第２のサーバへ変更する指示を、前記ネットワークを構成するネットワーク機器へ送信する
ことを特徴とする情報処理システム。
【請求項４】
請求項３に記載の情報処理システムであって、
前記第１の管理サーバは、前記データに対する演算処理を行う第２のアプリケーションの実行の指示を受け取ると、前記第２のサーバを管理する前記第２の管理サーバへ、前記第２のアプリケーションの移行の指示を送信し、
前記第２のサーバは、前記データを入力とした前記第２のアプリケーションの演算結果を前記第１のサーバへ送信する
ことを特徴とする情報処理システム。
【請求項５】
ネットワークを介して接続されたアプリケーションを実行する複数のサーバと、データを記録するためのストレージを有する複数のファイルサーバと、を管理する管理サーバ群であって、
前記管理サーバ群の第１の管理サーバは、
アプリケーションへの処理要求を送信する機器の位置情報を取得し、
前記管理サーバ群が有する複数の前記サーバの位置情報と、取得した前記機器の前記位置情報と、に基づいて、前記アプリケーションを実行するサーバを第１の前記サーバから第２の前記サーバへ変更することを決定し、
前記第２のサーバを管理する前記管理サーバ群の第２の管理サーバへ、前記第１のサーバから前記第２のサーバへの前記アプリケーション及びデータの移行の指示を送信し、
前記第２の管理サーバは、
前記第１の管理サーバへ前記第２のサーバを特定する情報を送信し、
前記第２のサーバへ、前記移行の指示を送信し、
前記第１の管理サーバは、前記第２のサーバを特定する前記情報を前記第１のサーバへ送信し、
前記第２のサーバは、
前記第１のサーバから、前記アプリケーションの実行に用いる情報及び前記データを受信し、
前記アプリケーションを実行し、
受信した前記データを前記第２の拠点の第２のファイルサーバへ格納し、
前記第１の管理サーバは、前記第２のサーバ上で前記アプリケーションが実行され、及び前記データを移行すると、前記機器による前記アプリケーションへの処理要求の送信先を、前記第１のサーバから前記第２のサーバへ変更する指示を、前記ネットワークを構成するネットワーク機器へ送信する
ことを特徴とする管理サーバ群。
【請求項６】
請求項５に記載の管理サーバ群であって、
前記第１の管理サーバは、前記データに対する演算処理を行う第２のアプリケーションの実行の指示を受け取ると、前記第２のサーバを管理する前記第２の管理サーバへ、前記第２のアプリケーションの移行の指示を送信し、
前記第２のサーバは、前記データを入力とした前記第２のアプリケーションの演算結果を前記第１のサーバへ送信する
ことを特徴とする管理サーバ群。
【請求項７】
ネットワークを介して接続されたアプリケーションを実行する複数のサーバと、データを記録するためのストレージを有する複数のファイルサーバと、を管理する管理サーバ群であって、
前記管理サーバ群の第１の管理サーバは、
前記ネットワークの情報を取得し、
複数の前記サーバとアプリケーションの実行を指示する機器との前記ネットワーク上のホップ数情報に基づいて、前記アプリケーションを実行するサーバを第１の前記サーバから第２の前記サーバへ変更することを決定し、
前記第２のサーバを管理する前記管理サーバ群の第２の管理サーバへ、前記第１のサーバから前記第２のサーバへの前記アプリケーション及びデータの移行の指示を送信し、
前記第２の管理サーバは、
前記第１の管理サーバへ前記第２のサーバを特定する情報を送信し、
前記第２のサーバへ、前記移行の指示を送信し、
前記第１の管理サーバは、前記第２のサーバを特定する前記情報を前記第１のサーバへ送信し、
前記第２のサーバは、
前記第１のサーバから、前記アプリケーションの実行に用いる情報及び前記データを受信し、
前記アプリケーションを実行し、
受信した前記データを前記第２の拠点の第２のファイルサーバへ格納し、
前記第１の管理サーバは、前記第２のサーバ上で前記アプリケーションが実行され、及び前記データを移行すると、前記機器による前記アプリケーションへの処理要求の送信先を、前記第１のサーバから前記第２のサーバへ変更する指示を、前記ネットワークを構成するネットワーク機器へ送信する
ことを特徴とする管理サーバ群。
【請求項８】
請求項７に記載の管理サーバ群であって、
前記第１の管理サーバは、前記データに対する演算処理を行う第２のアプリケーションの実行の指示を受け取ると、前記第２のサーバを管理する前記第２の管理サーバへ、前記第２のアプリケーションの移行の指示を送信し、
前記第２のサーバは、前記データを入力とした前記第２のアプリケーションの演算結果を前記第１のサーバへ送信する
ことを特徴とする管理サーバ群。
【請求項９】
複数の計算機上で実行されることにより管理サーバ群を実現するサーバ管理プログラムであって、
前記管理サーバ群は、ネットワークを介して接続されたアプリケーションを実行する複数のサーバと、データを記録するためのストレージを有する複数のファイルサーバと、を管理し、
前記管理サーバ群の第１の管理サーバは、
アプリケーションへの処理要求を送信する機器の位置情報を取得し、
前記管理サーバ群が有する複数の前記サーバの位置情報と、取得した前記機器の前記位置情報と、に基づいて、前記アプリケーションを実行するサーバを第１の前記サーバから第２の前記サーバへ変更することを決定し、
前記第２のサーバを管理する前記管理サーバ群の第２の管理サーバへ、前記第１のサーバから前記第２のサーバへの前記アプリケーション及びデータの移行の指示を送信し、
前記第２の管理サーバは、
前記第１の管理サーバへ前記第２のサーバを特定する情報を送信し、
前記第２のサーバへ、前記移行の指示を送信し、
前記第１の管理サーバは、前記第２のサーバを特定する前記情報を前記第１のサーバへ送信し、
前記第２のサーバは、
前記第１のサーバから、前記アプリケーションの実行に用いる情報及び前記データを受信し、
前記アプリケーションを実行し、
受信した前記データを前記第２の拠点の第２のファイルサーバへ格納し、
前記第１の管理サーバは、前記第２のサーバ上で前記アプリケーションが実行され、及び前記データを移行すると、前記機器による前記アプリケーションへの処理要求の送信先を、前記第１のサーバから前記第２のサーバへ変更する指示を、前記ネットワークを構成するネットワーク機器へ送信する
ことを特徴とするサーバ管理プログラム。
【請求項１０】
請求項９に記載のサーバ管理プログラムであって、
前記サーバ管理プログラムにより実現される前記第１の管理サーバは、前記データに対する演算処理を行う第２のアプリケーションの実行の指示を受け取ると、前記第２のサーバを管理する前記第２の管理サーバへ、前記第２のアプリケーションの移行の指示を送信し、
前記サーバ管理プログラムにより実現される前記第２のサーバは、前記データを入力とした前記第２のアプリケーションの演算結果を前記第１のサーバへ送信する
ことを特徴とするサーバ管理プログラム。
【請求項１１】
複数の計算機上で実行されることにより管理サーバ群を実現するサーバ管理プログラムであって、
前記管理サーバ群は、ネットワークを介して接続されたアプリケーションを実行する複数のサーバと、データを記録するためのストレージを有する複数のファイルサーバと、を管理し、
前記管理サーバ群の第１の管理サーバは、
前記ネットワークの情報を取得し、
複数の前記サーバとアプリケーションの実行を指示する機器との前記ネットワーク上のホップ数情報に基づいて、前記アプリケーションを実行するサーバを第１の前記サーバから第２の前記サーバへ変更することを決定し、
前記第２のサーバを管理する前記管理サーバ群の第２の管理サーバへ、前記第１のサーバから前記第２のサーバへの前記アプリケーション及びデータの移行の指示を送信し、
前記第２の管理サーバは、
前記第１の管理サーバへ前記第２のサーバを特定する情報を送信し、
前記第２のサーバへ、前記移行の指示を送信し、
前記第１の管理サーバは、前記第２のサーバを特定する前記情報を前記第１のサーバへ送信し、
前記第２のサーバは、
前記第１のサーバから、前記アプリケーションの実行に用いる情報及び前記データを受信し、
前記アプリケーションを実行し、
受信した前記データを前記第２の拠点の第２のファイルサーバへ格納し、
前記第１の管理サーバは、前記第２のサーバ上で前記アプリケーションが実行され、及び前記データを移行すると、前記機器による前記アプリケーションへの処理要求の送信先を、前記第１のサーバから前記第２のサーバへ変更する指示を、前記ネットワークを構成するネットワーク機器へ送信する
ことを特徴とするサーバ管理プログラム。
【請求項１２】
請求項１１に記載のサーバ管理プログラムであって、
前記サーバ管理プログラムにより実現される前記第１の管理サーバは、前記データに対する演算処理を行う第２のアプリケーションの実行の指示を受け取ると、前記第２のサーバを管理する前記第２の管理サーバへ、前記第２のアプリケーションの移行の指示を送信し、
前記サーバ管理プログラムにより実現される前記第２のサーバは、前記データを入力とした前記第２のアプリケーションの演算結果を前記第１のサーバへ送信する
ことを特徴とするサーバ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示する技術は、広域のコンピュータネットワークに接続された情報処理システムでのアプリケーションおよびデータ利用方法に関する。
【背景技術】
【０００２】
広域のコンピュータネットワークに接続された情報処理システムでは、中央のデータセンタに配置された情報処理装置の処理機能を利用して、端末装置に対して処理結果を送信する形態が一般的になっている。特にクラウドコンピューティングと呼ばれる情報処理システムの利用形態では、データセンタ上のサーバやストレージなどの情報処理装置へ処理を集中させ、利用者が、データセンタとネットワークで接続された外部から、情報処理装置を利用するのが一般的である。クラウドコンピューティングにより、データセンタ上へ情報処理装置を集中させることにより、システム構築コストやランニングコストの極小化が可能となる。【０００３】
クラウドコンピューティングとよばれる利用形態では、利用者が、ホスティングを行う業者から、サーバ及びストレージの提供を受け、サーバ上でアプリケーションプログラム（アプリケーションまたはＡＰという）を動作させ、ストレージ上にデータを保存することにより、遠隔地から、サーバ及びストレージを利用した情報処理機能を利用する。このようにアプリケーションを動作させたり、ストレージ上にデータを保存し活用する形態を、それぞれ、アプリケーションホスティング、データホスティングと言う。【０００４】
クラウドコンピューティングでは、データセンタ上の情報処理装置に処理を集中させるため、システムの利用者が増加し、多数の端末から、データセンタ上の情報処理装置に対して、情報処理の要求があると、情報処理要求への返答の品質（転送データのスループットと応答時間）が低下する。この要求に対する返答の品質を保持するため、接続回線の増強が必要となる。データセンタ上にて情報処理装置を提供する企業としては、この回線増強のコスト増が事業運営上での課題となる。特に、近年では、これまで、利用者の端末の処理性能が高くないか、もしくは、利用者の端末が基幹ネットワークへ接続するための無線アクセス網のアクセススピードが遅いなどの条件のため大きな問題とならなかった、処理時間に対する品質の要求が高まっており、さらなる接続回線の増強（回線品質の確保）が課題となっている。【０００５】
このため、データセンタ事業者やデータセンタ事業者から設備を借り入れ、ホスティング事業に利用したり、自社利用している事業者は、広域のネットワーク上に分散して配置された情報処理装置上に、アプリケーションやデータの複製を配付し、中央のデータセンタの情報処理装置の利用頻度を下げるなどの負荷分散措置を取ることにより、情報処理要求への返答の品質の維持を行っている。このような負荷分散技術の一つとしてコンテンツデリバリーネットワーク（ＣＤＮ)が挙げられる。ＣＤＮ技術は、例えば、特許文献１及び特許文献２に開示されている。【０００６】
また、特許文献３には、情報処理機能と任意の宛先変更機能を備えたインテリジェントノードを用いて、情報処理位置を変更し、低遅延の情報処理システムを提供することが可能なシステムが述べられている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第８０７３９６１号
【特許文献２】米国特許第７７３４８１５号
【特許文献３】米国公開特許公報ＵＳ２０１１／０２０２６５８号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１及び特許文献２に記載されているＣＤＮ技術では、主に、音楽や動画といったデジタルコンテンツのようなデータを配付対象としている。ネットワーク上のさまざまな場所にデータの配付点を用意して利用者のネットワーク位置に応じて適切な配付点へのアクセスを指示することにより、大量のコンテンツをスムーズに利用者に配信できるようにする。こうして、配付対象のデータを中央のデータセンタから配信すると、ネットワークに大きな負荷がかかるという問題を解決している。【０００９】
一般のＣＤＮ技術では、データ種別によって、配信方法を分けている。データベース（ＤＢ）に格納されている利用者毎に異なる情報を利用する処理や逐次更新すべき情報を利用する処理などの動的生成が必要な処理では、利用する情報は配付点に存在するサーバへ配付されない。そのため、動的生成が必要な処理では、端末から、情報処理の中心となる中央のデータセンタのサーバ（オリジンサーバ）への通信が発生する。このように、処理の結果が毎回異なるような場合、中央のデータセンタでの処理量は膨大になり、中央のデータセンタの回線品質の確保が事業運営上の課題となる。【００１０】
つまり、ＣＤＮ技術では、デジタルコンテンツなどの静的コンテンツ配信に好適なデータ配信方法は示されているが、毎回処理が異なるような情報処理を行う情報処理システムに対する適用は、効果が少なく、回線品質の維持にコストがかかる。動的生成が必要な処理でも、あらかじめ処理を行い、配付点に配付しておくことができる処理については、配付により、課題を解消できるが、際限なく配付点であるエッジのデータセンタへ処理済みのデータのキャッシュを行うと、エッジのデータセンタのストレージや転送時のネットワークのリソースを消費してしまうため、コスト増が事業運営上の課題となる。【００１１】
特許文献３に記載されているデータセンタ集約型情報システムでは、既存のデータセンタなどの情報システムとの整合性を取りながらシームレスに移行できる仕組みを持つプラットフォームにおいて、情報処理位置を端末に近いノードに移行することで低遅延化を行う。しかし、ネットワークノードなどの動的生成処理を行うアプリケーションを配付点にアプリケーションやデータを配置し配付点における特にストレージリソースに関わるリソース使用量を抑える方法について詳細な開示が無い。【００１２】
上記のように、既存の分散アプリケーション及びデータホスティングを行う情報処理システムにおいては、端末などのネットワークに接続される末端の機器からのアクセスによる処理集中を代替のデータセンタのサーバやストレージで代替する際、ネットワークの転送量とストレージ使用量を抑えながら、中央のデータセンタへのネットワークアクセスにかかる負荷を軽減しないと、ネットワーク増強にかかるコスト増が事業運営上の課題となる。
【課題を解決するための手段】
【００１３】
開示されるのは、公知の技術では解決できない、動的生成処理を行うアプリケーションを配付点に配付する分散アプリケーション及びデータホスティングを行う情報処理システムにおいて、アプリケーションやデータのキャッシュに必要な配付点のリソース使用量を抑えながら、オリジンサーバのある中央のデータセンタへのネットワークアクセスにかかる負荷を軽減する方法である。【００１４】
本明細書にて開示するのは、アプリケーションを実行し、実行結果を端末などのネットワークに接続された機器に送信するアプリケーションサーバと、アプリケーションサーバ及びストレージ上に、それぞれ、アプリケーション及びデータを配置する管理サーバとを含み、管理サーバは、アプリケーションサーバを経由して、機器から機器の位置情報を入手し、位置情報からアプリケーションの移行（migration）先となるアプリケーションサーバを選定する手順と、移行元のアプリケーションサーバへ、移行先のアプリケーションサーバを指示する手順と、アプリケーションサーバ間でアプリケーションとデータとを移行する手順と、により、アプリケーション実行場所の再配置を行うことを特徴とする分散アプリケーション及びデータホスティング方法と当該方法を実現する情報処理システムである。【００１５】
上記方法により、分散した情報処理装置上へ、アプリケーションやデータのキャッシュに必要な情報処理装置のリソース使用量を抑えながら、特定の情報処理装置やアプリケーションやデータの提供元の情報処理装置のネットワークアクセスにかかる負荷を軽減する広域分散型アプリケーション及びデータホスティング方法を提供可能になる。【００１６】
上記態様によれば、ネットワーク上に分散して配置された情報処理装置が、連携して動作することにより、広域の配付点にアプリケーション及びデータを配付するシステムにおいて、アプリケーションやデータの配付に必要な配付点のリソース使用量を抑えながら、特定のデータセンタへのネットワーク負荷を集中させない広域分散型の情報処理システムを提供できる。【００１７】
また、上記態様によれば、データセンタ集約型情報システムでのシステムの応答時間を改善したシステムを提供することにより、システムの利用者が情報処理サービスを受ける際の応答時間を短縮し、利用者の体感品質を向上する効果がある。【００１８】
また、上記態様によれば、同等の品質を持つデータセンタ集約型情報システムと比較し、特定のデータセンタへのネットワーク負荷を集中させないため、データセンタへ接続するネットワークの転送量や帯域などを抑えることが可能となり、コストを低減した情報システムを提供できるという効果がある。【００１９】
他の特徴及び利点は、添付図面に関する以下の実施例の開示から明らかになるであろう。
【発明の効果】
【００２０】
開示によれば、利用者の体感品質を向上させた情報システムを低コストで提供できるという効果を奏する。
【図面の簡単な説明】
【００２１】
【図１】第一の実施形態の情報処理システムのシステム構成を例示する図。
【図２】第一の実施形態の情報処理システムのサーバ及び管理サーバのハードウェア構成を例示する図。
【図３】第一の実施形態の情報処理システムにおいて、アプリケーション及びデータを分散した情報処理装置上へ移動する際の動作を例示するシーケンス図。
【図４】第一の実施形態の情報処理システムにおける、サーバの機能を例示する図。
【図５】第二の実施形態の情報処理システムにおける、ストレージに格納されるメタデータを例示する図。
【図６】第二の実施形態のメタデータの詳細を例示する図。
【図７】第二の実施形態の情報処理システムにおいて、アプリケーション及びデータを分散した情報処理装置上へ移動する際の動作を例示するシーケンス図。
【図８】第一の実施形態の情報処理システムの機器の構成を例示する図。
【図９】第一の実施形態の情報処理システムにおける、アプリケーションの移行の判定に利用する、拠点情報管理テーブルを例示する図。
【図１０】第一の実施形態の機器が送信する処理要求の例を示す図。
【図１１】第一の実施形態の管理サーバがリソースと稼働条件を管理する管理テーブルを例示する図。
【図１２】第一の実施形態の情報処理システムにおけるサービス情報テーブルを例示する図。
【図１３】第一の実施形態の情報処理システムにおけるアプリケーションやデータの配付される拠点の変化を例示する第１の図。
【図１４】第一の実施形態の情報処理システムにおけるアプリケーションやデータの配付される拠点の変化を例示する第２の図。
【図１５】第一の実施形態の情報処理システムにおけるアプリケーションやデータの配付される拠点の変化を例示する第３の図。
【図１６】第一の実施形態の情報処理システムにおけるアプリケーションやデータの配付される拠点の変化を例示する第４の図。
【発明を実施するための形態】
【００２２】
以下、実記形態について図面を参照して説明する。各図における同一符号は、同一のものを示す。
【００２３】
第一の実施形態の情報処理システムの構成の概略を図１に示す。本実施形態の情報処理システムは、管理拠点、拠点Ｂ、拠点Ｃ、拠点Ｄ、拠点Ｅ内に設置されたサーバおよび管理サーバと、端末やセンサのような機器が基幹ネットワークやアクセスネットワークを介して接続しているものである。
【００２４】
拠点Ｂ１１０は、基幹ネットワークに接続された、利用者が要求する情報処理を行う情報処理拠点であり、一般的に、データセンタや、データセンタ内に設置されたあらかじめ定められた領域である。
【００２５】
本実施形態において拠点と表記されるのは、データセンタや、データセンタ内に設置されたあらかじめ定められた領域において、あらかじめ定められた範囲のネットワークセグメント内に、サーバや管理サーバやストレージや機器が接続されているものである。
【００２６】
例えば、拠点とは、データセンタ全体であったり、データセンタのある区画だったり、データセンタのあるラックだったり、ビル内に設置された装置だったり、ネットワーク基地局に設置された機器だったり、小売店に設置されたキオスク端末機器であったり、現金自動払機、または自動販売機、または携帯電話や固定電話の通信機器や電柱などの設備に付随し設置される機器であったり、センサや車載器から無線にて情報を取得する路側無線機器（ＲＳＵ：Ｒｏａｄ  Ｓｉｄｅ  Ｕｎｉｔ）を含む一設備であったりする。
【００２７】
拠点Ｂ１１０の中には、管理サーバＢ１１１及びアプリケーションサーバＢ１１２及びストレージ１１３が設置されており、それぞれが基幹ネットワークやアクセスネットワークなどのネットワークを介して以降に説明するサーバ及び端末及び機器などの情報処理機器に接続している。拠点Ｂには、管理サーバ及びサーバは、１台もしくは２台以上の複数台設置される。すべてのアプリケーションサーバは、いずれかの管理サーバの管理対象とされ、アプリケーションサーバ上でのアプリケーション実行やストレージの利用を管理される。なお、以下の説明では、アプリケーションサーバを単にサーバと称す。
【００２８】
管理拠点１００は、本実施形態の情報処理システムの情報処理の制御を中心的行うサーバ（管理サーバＡ１０１）、および管理用のストレージであるストレージ１０３が設置されており、利用者が要求する情報処理を提供する（ホスティングする）事業者による情報処理の管理を行う拠点を示す。管理サーバＡ１０１は、基幹ネットワーク、アクセスネットワークなどのネットワークを介して管理サーバＢ１１１やサーバＢ１１２、ストレージ１１３、以降に説明する情報処理機器に接続している。管理サーバＡ１０１は、管理サーバＢ１１１等の管理サーバを集中的に管理する管理サーバで、各拠点のアプリケーションの実行とストレージのへのデータ格納について、各管理サーバへ指示を行う。
【００２９】
拠点Ｃ１２０及び拠点Ｄ１３０は、基幹ネットワーク１６０に接続している、前述した情報処理を分散実行するための設備を設置してある情報処理拠点である。一般的に、拠点Ｃ１２０及び拠点Ｄ１３０は、ホスティング事業者のデータセンタもしくはデータセンタ内に設置されたあらかじめ定められた領域である。
【００３０】
拠点Ｃ１２０の中には、管理サーバＣ１２１及びサーバＣ１２２及びストレージ１２３が設置されており、拠点Ｄ１３０の中には、管理サーバＤ１３１及びサーバＤ１３２及びストレージ１３３が設置されている。それぞれの管理サーバとサーバは、基幹ネットワーク１６０などのネットワークを介して管理サーバＡ１０１及び管理サーバＢ１１１及びサーバＢ１１２及び、以降に説明する情報処理機器に接続している。拠点Ｃ１２０、拠点Ｄ１３０内には、管理サーバ及びサーバは、１もしくは２以上の複数台設置される。すべてのサーバは、いずれかの管理サーバの管理対象とされ、サーバ上でのアプリケーション実行やストレージの利用を管理される。
【００３１】
また、拠点Ｃ１２０及び拠点Ｄ１３０のそれぞれの管理サーバとサーバは、アクセスネットワーク１６２にも接続している。アクセスネットワーク１６２は、後述する端末や、拠点Ｅ１４０が接続するためのローカルネットワークである。拠点Ｃ１２０や拠点Ｄ１３０に設置された図示しないネットワーク機器により、アクセスネットワーク１６２に接続された機器から基幹ネットワーク１６０への通信は行われ、基幹ネットワーク１６０からアクセスネットワーク１６２に接続された機器への通信も、逆方向に行われる。アクセスネットワーク１６２は、例えば、有線ローカルエリアネットワーク（ＬＡＮ）または無線ＬＡＮ、または近距離無線通信などである。
【００３２】
拠点Ｅ１４０は、アクセスネットワーク１６２に接続している、前述した情報処理を分散実行するための設備を設置してある情報処理拠点である。一般的に、  拠点Ｅ１４０は、ホスティング事業者のデータセンタもしくはデータセンタ内に設置されたあらかじめ定められた領域や、ホスティング事業者が、地域の拠点や街中に情報処理を行う設備として設置する領域である。
【００３３】
拠点Ｅ１４０の中には、管理サーバＥ１４１及びサーバＥ１４２及びストレージ１４３が設置されている。それぞれの管理サーバとサーバは、アクセスネットワーク１６２を介して他の拠点と接続しており、図示しないネットワーク装置によって、基幹ネットワーク１６０を介して、管理サーバＡ１０１及び管理サーバＢ１１１及びサーバＢ１１２など、すでに説明した、また、以降に説明する情報処理機器に接続している。拠点Ｅ１４０内には、管理サーバ及びサーバが、１台もしくは複数台設置される。すべてのサーバは、いずれかの管理サーバの管理対象となり、サーバ上でのアプリケーション実行やストレージの利用を管理される。
【００３４】
機器（１５１〜１５４）は、アクセスネットワーク１６２や、アクセスネットワーク１６１を介して基幹ネットワーク１６０に接続する本実施形態の情報処理システムを利用するために利用者が操作、もしくは設置する端末、もしくはセンサ等の制御用機器である。機器１５１〜１５４は、例えば、カーナビ、またはＰＣ、またはスマートフォン、または携帯電話、または家電機器、のいずれか一種類以上の、ユーザインタフェースを持つ端末機器や、センサ（例えば、メータ機器、または温度計、または電力計などの計器）、人流解析器、または監視カメラ、または認証機器などの制御用機器である。
【００３５】
機器１５１〜１５４は、サーバにネットワークで接続され、サーバ上で行わせようとする情報処理要求および／または情報処理のためのデータをサーバへ送信し、該情報処理をサーバに実施させる機器のことである。
【００３６】
本実施例の情報処理システムでは、機器１５１〜１５４などの機器が、情報処理を行うサーバへ情報処理要求を送信する際に、管理サーバが、機器の利用状況に応じて、利用者の要求する情報処理を分散した情報処理装置上へ移動し、情報処理に必要なリソース使用量を抑えながら特定の情報処理装置の接続しているネットワークアクセスにかかる負荷を軽減し、かつ、情報処理装置の応答性能を向上する。
【００３７】
ここで、拠点内のストレージは、サーバと独立の装置のように記載しているが、各サーバに搭載されたフラッシュメモリやハードディスクのようなストレージでもよいし、仮想的にサーバ上のストレージを集合させた仮想ストレージでもよい。
【００３８】
図２に、上述の、各管理サーバ、各アプリケーションサーバを実現する計算機のハードウェア構成を例示する。
【００３９】
また、図４に、各アプリケーションサーバの機能構成を例示する。これらの機能は、図２のストレージ２０３に格納されたプログラムをＣＰＵ２０１が読み出し、メモリ２０２上で実行することにより、実現されるものである。各プログラムは、あらかじめ、上記計算機内のストレージ２０３に格納されていても良いし、必要なときに、入出力装置２０５やＮＩＣ２０４と、上記計算機が利用可能な媒体を介して、他の装置から上記ストレージ２０３に導入されてもよい。媒体とは、たとえば、入出力装置２０５に着脱可能な記憶媒体、またはＮＩＣ２０４に接続可能な通信媒体（すなわち有線、無線、光などのネットワーク）または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。
【００４０】
アプリケーション実行部４０２は、アプリケーション４０１−１ないしアプリケーション４０１−ｎの実行の管理を行う機能である。アプリケーション実行部４０２は、他のサーバのアプリケーション実行部及び管理サーバと通信を行い、アプリケーションの移動を行う。また、アプリケーション実行部４０２は、管理サーバの指示に従い、アプリケーション４０１−１ないしアプリケーション４０１−ｎの実行、停止を行う。メタデータ管理部４０３は、ストレージ２０３上のデータの作成や更新、追加、削除が行われると、データオブジェクトのメタデータを作成し、それぞれの拠点の管理サーバへメタデータを送付する。
【００４１】
分散データ制御部４０５は、他のサーバの分散データ制御部間で相互に通信を行い、管理サーバの指示に従い、サーバ内、もしくは、同一拠点内のストレージ上のデータの作成や更新、追加、削除などを行う。また、分散データ制御部４０５は、管理サーバの指示により、更新や、追加を行ったデータオブジェクトの複製を別のサーバへ作成する。このデータの複製の作成方法は、後述する。
【００４２】
図３は、本実施例の情報処理システムにおいて、機器からの情報処理要求に対して、情報処理を行うサーバなどの情報処理機器を分散した情報処理装置上へ移動する際の動作を示したシーケンス図である。
【００４３】
以下では、機器は、機器１５１であるものとして説明を行うが、他の機器であっても同様である。機器１５１は、まず、情報処理装置（サーバ）に行わせたい、情報処理要求を作成する（３０１）。この情報処理要求とは、例えば、機器１５１がＰＣであれば、ＰＣ（機器１５１）上のブラウザアプリケーションで表示させたいＵＲＩの指示や、ドキュメント表示アプリケーションで表示させたいコンテンツのパス名やファイル名の指示などである。例えば、機器１５１がセンサや監視カメラであれば、拠点Ｂ１１０のサーバ上で情報処理を行わせたい測定データおよび／または記録データ（例えば、測定した温度、消費電力量、記録音声、記録映像などのいずれか一種類以上）とそれらに対する処理の指示と、を含む送信内容である。
【００４４】
機器１５１は、サーバＢ１１２へ情報処理要求３０１で作成した内容の情報処理を実施させるため、処理要求送信（３０２）において、サーバＢ１１２へ処理要求を送信する。ここで、機器１５１は、自身が作成した処理要求をどのサーバ（この場合、サーバＢ１１２とする）へ送信すべきかの情報は、サーバＢ１１２の名称とＩＰアドレスなどのネットワーク上の所在などを、あらかじめ機器１５１に登録するか、利用者が利用の際に入力するなどして、すでに保持している。たとえば、利用者が行いたい情報処理が、あるＵＲＩと紐付けられている場合、機器上のリゾルバと呼ばれるクライアントプログラムからＤＮＳサーバへの問合を行うことにより、情報処理を行うサーバのネットワークアドレスが明らかとなり、機器が、利用者が行いたい情報処理を提供するサーバに対してアクセス可能となる。
【００４５】
機器１５１からサーバＢ１１２への通信は、機器１５１上に記録されている後述するメモリ上で動作する図示しない通信プログラムが行う。サーバＢ１１２のネットワーク上でのアドレスは、前述したように通信プログラムによりネットワーク上のＤＮＳサーバに問い合わせることにより入手し、通信プログラムがサーバＢ１１２上の通信プログラムと機器１５１との間の通信を行う。サーバＢ１１２は、処理要求送信（３０２）において受け取った処理要求の内容を処理するアプリケーションの決定を、処理要求確認ステップ（３０３）において行う。処理要求を行うアプリケーションがサーバに存在し、動作可能かを確認する。
【００４６】
一般的に、データセンタ内では、あるサーバと同様の機能を有するサーバを複数設置し、サーバ群の直前にロードバランサ等の付加分散機器を設置し、サーバへ通信してくる機器ごとに情報処理を行うサーバへの接続を分散する処理が行われる。本実施例では、簡便のため、機器からの接続をすべてサーバＢ１１２が処理するように記載するが、情報処理が機器ごとにサーバＢ１１２と同等の機能を有するサーバ群において、付加分散され実行していても同様である。
【００４７】
サーバＢ１１２上での処理要求確認（３０３）が終了し、受け取った処理要求の内容を処理するアプリケーションが動作しない状態であれば、図示しない手順で、サーバＢ１１２は、機器１５１に対してアプリケーションが動作しておらず、情報処理要求が実行できない旨のエラーを返信する。処理要求を行うアプリケーションが動作しており、情報処理要求の処理が可能であれば、サーバＢ１１２は、管理サーバＢ１１１に処理要求確認を依頼（３０４）する。
【００４８】
この処理要求確認３０４のステップは、機器１５１から処理要求が送信された際に、毎回行ってもよいし、処理がある定められた期間内において最初に行われた際のみに行ってもよいし、ある定められた期間において定められた頻度で行ってもよい。処理要求確認を依頼するステップ３０４では、機器１５１が送信した処理要求の内容がステップ３０４で送信される情報に含まれるため、管理サーバＢ１１１は、機器１５１の情報を取得している。
【００４９】
ここで、図１０を用いて、機器１５１が送信する処理要求の例を示す。処理要求１０００は、機器１５１がＨＴＴＰサーバであるサーバＢ１１２に対し、ＨＴＴＰリクエストを処理要求として送付した際の要求の内容を説明するものである。処理要求１０００は、リクエスト１００１、ヘッダ１００２、メッセージボディ１００３より構成される。リクエスト１００１は、ＨＴＴＰのリクエストの要求内容の主体である。リクエスト１００１は、例えばサーバに対するコマンドや、ＵＲＩなどのリクエスト対象となるデータ情報やパス名を含み、サーバＢ１１２はこのリクエスト内容に応じた情報処理を行う。
【００５０】
ヘッダ１００２は、ＨＴＴＰのリクエストの詳細部分をサーバに認識させるための情報である。ヘッダ１００２は、例えば、送信側のアプリケーションでサポートするデータタイプやデータの圧縮方法、アプリケーションの種別などを含む。ボディ１００３は、サーバへデータを送るために使う領域で、送信したいテキストデータなどを含む。本実施例の処理要求では、必要に応じてあらかじめ定められたフォーマットで、位置情報や経路情報、機器情報を処理要求１０００内に含めて送信する。
【００５１】
図１０では、ボディ１００３の中に、位置、経路、機器情報１００４を挿入して送信を行っている例を示している。位置、経路、機器情報１００４は、機器１５１の位置情報、機器１５１から情報処理を行うサーバや管理サーバへの経路情報、機器１５１の種別情報のいずれか一種類以上を含んだ情報である。
【００５２】
位置情報は、例えば、機器１５１の現在の（機器の測定機能から提供される）緯度、経度、高度等の情報やあらかじめ設定した地域のＩＤ番号や端末が通信しているアクセスネットワークの種別や端末が最も近い拠点の情報である。また、経路情報は、端末のＩＰアドレスや、端末から特定のサーバへの経路情報などである。端末の種別情報は、端末の動作している機器の種別、端末で動作しているＯＳ、アプリケーションの種別、バージョン、サポートしている送受信プロトコルの種別、バージョン等である。また、機器情報は、実行を要求する情報処理のかつての実行履歴、及び実行所要時間、及び品質を含んでいる。これらの位置、経路、機器情報１００４を機器１５１がサーバＢ１１２に送信することにより、後述するように、アプリケーションの移行の判断を管理サーバ（１０１，１１１）にて実施する。
【００５３】
このような位置、経路、機器情報が、機器１５１からサーバＢ１１２及び管理サーバＢ１１１に送信されることにより、情報処理システムにおいて、機器１５１の情報処理の速度を向上させたり、情報処理コストを低減する情報処理を行うアプリケーションやデータの配置を管理サーバがサーバへ指示し、構成することができる。
【００５４】
次に、図８を用いて、機器１５１〜１５４の構成について説明する。機器1５１〜１５４は、図８に示すようにＣＰＵ８０１、メモリ８０２、ストレージ８０３、ＮＩＣ（ネットワークインターフェースカード）８０４、入出力装置８０５で構成される。機器１５１〜１５４は、ストレージ８０３上に、図示しないサーバとの通信プログラムを保存しており、メモリ８０２に読み込んだ通信プログラムを利用して、ＣＰＵ８０１がＮＩＣ８０４を介してネットワーク上のサーバと通信を行う。
【００５５】
ストレージ８０３は、位置、経路、機器情報８０６を保存している。この機器情報８０６は、機器の位置情報や、端末から情報処理を行うサーバや管理サーバへの経路情報、機器の種別情報を含んだ情報である。位置、経路、機器情報８０６のうち、位置情報は、機器１５１〜１５４の持つＧＰＳ等の位置および／または高度の測定機能を利用して利用者が端末を利用したり、端末が動作する際に作成されるか、あらかじめ利用者が設定する。また、経路情報は、前記の通信プログラムが与えられたアドレス情報やサーバへの経路情報から作成する。また、機器情報は、端末の出荷時やあらかじめ利用者が端末の種別、動作しているＯＳ、アプリケーションの種別、バージョン、サポートしている送受信プロトコルの種別、バージョン等が記録されたものである。また、機器情報は、実行を要求する情報処理のかつての実行履歴、実行所要時間、品質のいずれか一種類以上を含んでいる。
【００５６】
ストレージ８０３に保存されている位置、経路、機器情報８０６は、機器１５１〜１５４が動作中にメモリ８０２に読み込まれ、前述した位置、経路、機器情報１００４として、サーバへ全部もしくはその一部が送信される。この位置、経路、機器情報１００４をサーバ及び管理サーバが利用することにより、アプリケーション、及びデータの配付場所が管理サーバからサーバへ指示される。サーバへ向けて送信される機器情報は、位置、経路、機器情報８０６に保存されている情報の最新値や平均値である。
【００５７】
ここで、図３を用いた、処理の説明に戻る。サーバＢ１１２から送信されてきた処理要求確認（３０４）により、サーバＢ１１２上で動作する、機器１５１からの要求のあった情報処理を行うアプリケーションが、サーバＢ１１２以外で動作させるか否かの移行の判定を行う。この移行判定の方法は、後述する。
【００５８】
後述する移行判定結果により、移行が必要と判断された場合、管理サーバＢ１１１は、管理サーバＡ１０１へ移行判定要求（３０５）を送信する。管理サーバＡ１０１は、管理サーバＢ１１１の上位の管理サーバである。本実施例の管理サーバは、あらかじめ登録された階層構造に従って、管理を制御されている。本実施例では、管理サーバＡ１０１が、管理サーバＢ１１１、及び管理サーバＣ１２１、及び管理サーバＤ１３１を管理する上位の管理サーバとなっている。管理サーバは、上位の管理サーバの指示でアプリケーションの実行、移動、停止、消去などの管理を行う。管理サーバＡ１０１は、ネットワークに接続された機器が、どのアプリケーションをどのサーバで実行し、情報処理を行っているかを管理している。この記録管理方法については、後述する。
【００５９】
移行判定要求（３０５）において、管理サーバＢ１１１は、機器１５１からステップ３０２で受信した要求（位置、経路、機器情報１００４を含む）と管理サーバＢ１１１でのアプリケーションの実行状況を管理サーバＡ１０１に送信する。管理サーバＡ１０１は、管理サーバＢ１１１と同様にアプリケーションの移行判定を行う。管理サーバＡ１０１上で移行判定が行われた後、管理サーバＡ１０１は、移行判定結果を管理サーバＢ１１１に送信する（３０６）。
【００６０】
移行判定結果には、アプリケーションを移行するサーバに関する情報（例えば、移行先は拠点Ｃ上のサーバである）が含まる。ここで、管理サーバＡ１０１と管理サーバＢ１１１上で行われた移行判定が共に移行必要であれば、管理サーバＢ１１１は、該当するアプリケーションの移行を行う。何れかの判定も移行不可であれば、管理サーバＢ１１１は、アプリケーションの移行を指示しない。ここで、移行不可とは、アプリケーションの移行ができないか、移行しても端末との通信の品質が低下したり、通信コストなどのコスト増があると管理サーバが判断することを言う。
【００６１】
ここで、管理サーバＢ１１１は、処理要求情報確認が行われたという情報をサーバＢ１１２へ送信する（確認結果送信（３０７））。サーバＢ１１２は、送信された処理要求に対応した処理結果の生成を行う（３０８）。サーバＢ１１２は、生成された処理結果を機器１５１に送信する（３０９）。ここで、これらの処理結果生成のプロセス（３０１〜３０９）は、処理要求をサーバＢ１１２が確認してから、確認結果送信（３０７）までを待って行われるように説明しているが、３０８及び３０９の処理を非同期に（先行して）行ってもよい。
【００６２】
上述した管理サーバＡ１０１と管理サーバＢ１１１上での移行判定がともに「移行必要」であれば、管理サーバＢ１１１及びサーバＢ１１２は、これから述べるＡＰ移行準備３１０から移行完了通知３２３の手順において、アプリケーションの移行を行う。ここで、アプリケーションの移行先は、拠点Ｃ１２０のサーバであると管理サーバＡ１０１もしくは、管理サーバＢ１１１が決定したものとして、説明を進める。
【００６３】
ＡＰ移行準備３１０において、管理サーバＢ１１１は、アプリケーションを拠点Ｃのサーバへ移行するための準備を行う。上述したように、管理サーバＢ１１１は、アプリケーションの移行先が、拠点Ｃのサーバであり、管轄する管理サーバは、管理サーバＣ１２１であることをあらかじめ管理サーバＡ１０１から通知されている。管理サーバＢ１１１は、管理サーバＣ１２１に対して、アプリケーションの移行を要求するためのアプリケーション情報を作成する。作成したアプリケーション情報は、管理サーバＣ１２１に送信される（ＡＰ移行要求（３１１））。管理サーバＣ１２１は、ＡＰ移行要求（３１１）を受信し、移行すべきサーバを決定する。決定には拠点Ｃ１２０において、管理サーバＣ１２１が管理するサーバにおいて、ＡＰ移行要求に含まれるアプリケーションの情報から、管理サーバＣ１２１の管理するサーバ群の中で、それぞれのサーバのメモリ容量、及びＣＰＵ性能、及びストレージ容量、及び動作可能なＶＭ（仮想マシン）の種別、及び動作可能なアプリケーションの種別といった、リソースや稼働条件を判断し、すべての条件において、稼働可能であるサーバ群を選定する。
【００６４】
ここで、図１１を用いて、管理サーバＣ１２１が拠点Ｃ内でアプリケーションを移行するサーバを選定の判断を行う際の情報を管理する管理テーブルの説明をする。図１１は、管理サーバＣ１２１が管理するサーバにおいてアプリケーションを動作させるためのリソースと稼働条件を管理する管理テーブル１１００である。管理テーブル１１００は、管理サーバＣ１２１上のメモリやストレージ上に記録され、常に管理サーバＣ１２１の管理テーブル管理機能により更新される。管理テーブル管理機能は、管理サーバＣ１２１の管理対象、及び、拠点Ｃ内のサーバの後述するリソースや情報を管理し、他の管理サーバからのアプリケーション実行の要求に対するリソース割り当てを行う。
【００６５】
管理テーブル１１００には、サーバＩＤ１１０１、及びサーバ名１１０２、及びアドレス１１０３、及び割り当て可能メモリ量１１０４、及び割り当て可能ストレージ量１１０５、及びＣＰＵ情報１１０６、及び動作可能ＶＭ種別１１０７、及び動作可能アプリケーション種別１１０８、及び動作アプリケーション情報１１０９、及びアプリケーション稼働実績１１１０、及びコスト１１１１が記載されている。管理テーブル１１００は、拠点内の管理サーバ同士の通信により、拠点内で共有され、随時更新される。
【００６６】
サーバＩＤ１１０１、サーバ名１１０２は、それぞれ管理サーバＣ１２１が管理するサーバにつけられたＩＤ及び名称である。アドレス１１０３は、各サーバに付与されたネットワークアドレスが記録される。割り当て可能メモリ量１１０４、割り当て可能ストレージ量１１０５は、それぞれ、空きメモリ、ストレージの空き容量に関し、アプリケーションの移行を受け入れられる、残りのリソースを示している。この空リソース量は、管理サーバＣ１２１から管理される各サーバに要求を出し、常に更新される。管理サーバは、空リソース量を比較し、リソース割り当てを行う。
【００６７】
ＣＰＵ情報１１０６は、各サーバの持つＣＰＵのスペック情報であり、動作周波数やソケット数、コア数が記録される。動作可能ＶＭ種別１１０７及び動作可能アプリケーション種別１１０８は、それぞれサーバ上で動作可能なＶＭ及びバージョンを含むアプリケーションの種別が記録されたものである。アプリケーションが動作する際に、依存関係のある必要なライブラリがインストール済かがチェックされ、記録されている。動作アプリケーション情報１１０９は、現在動作しているアプリケーションの情報である。アプリケーション稼働実績１１１０は該当するサーバにてどのようなアプリケーションの稼働実績があるかが記載されている。
【００６８】
コスト１１１１は、単位時間当たり、サーバ及びストレージを利用する際にかかる電力の費用やスペースなどについての利用者が負担する賃料などの、サーバ利用に係り利用者が負担する費用を、サーバ台数もしくはＣＰＵ数もしくはＣＰＵのコア数もしくは、ストレージ容量あたりで乗算したコストの指標である。
【００６９】
管理サーバＢ１１１が、移行に必要なサーバのアドレスやスペック情報を管理サーバＣ１２１に通知すると、管理サーバＣ１２１は、通知された条件で動作させることができるサーバを選定する。この選定には、割り当て可能メモリ量１１０４、及び割り当て可能ストレージ量１１０５、及びＣＰＵ情報１１０６が参照され、必要なリソースが確保できるサーバが選定される。選定したサーバの中で、すでに要求のあったアプリケーションが稼働しているサーバがあれば、管理サーバＣ１２１は、そのサーバを選定する。
【００７０】
要求のあったアプリケーションが稼働しているサーバがない場合は、アプリケーション稼働実績１１１０を参照し、選定したサーバの中から、稼働実績のあるサーバを優先し、かつ動作可能ＶＭ種別１１０７もしくはアプリケーション種別１１０８に記載される条件を満たし、かつ、コスト１１１１に記載されているコスト（複数台の場合はコストの総量）が最も小さいサーバを選び出す。
【００７１】
上記のように管理サーバＣ１２１が選定したサーバに対して、アプリケーションを移行することにより、機器１５１に対して、応答品質が良く、コストの安いサービス提供を可能となる。
【００７２】
次に、先ほど述べた、サーバＢ１１２上で動作する機器１５１からの要求のあった情報処理を行うアプリケーションをサーバＢ１１２以外で動作させるか否かという移行の判定を行う方法について述べる。
【００７３】
管理サーバＢ１１１、及び管理サーバＡ１０１の管理者は、あらかじめ、機器１５１が特定の情報処理を行う際の、情報処理の配付について、ポリシーを決定し、管理サーバＡ１０１の中に格納し、管理サーバ群で共有させる。管理サーバＡ１０１は、ポリシーの共有のため、管理サーバＢ１１１の問い合わせに応じて、ポリシーを回答する。ポリシーとは、機器１５１と情報処理の内容の組み合わせそれぞれに対し、許容する応答時間、及び許容する距離、及び通信時に許容するネットワーク機器の数を定義する。
【００７４】
管理サーバＢ１１１は、ポリシーの中に許容する応答時間が含まれている場合、要求に含まれる応答時間の内容を調査し、ポリシーにおいて、アプリケーションとデータの移動が必要と判断される場合は、アプリケーションとデータの移行が必要と判断する。例えば、管理サーバＢ１１１は、ポリシーの中に許容する位置情報の最大値が含まれている場合、ステップ３０２の要求に含まれる機器の位置情報と、拠点Ｂの距離の大きさを計算し、アプリケーションとデータの移行が必要と判断される場合は、アプリケーションとデータの移動が必要と判断する。
【００７５】
例えば、管理サーバＢ１１１は、ポリシーの中に許容する経由するネットワーク機器（ホップ数）の最大値が含まれている場合、ステップ３０２の要求に含まれる機器の経路情報から、経由するネットワーク機器（ホップ数）の大きさを計算し、アプリケーションとデータの移行が必要と判断される場合は、アプリケーションとデータの移動が必要と判断する。
【００７６】
以上の判断が管理サーバＢ１１１において行われた場合、管理サーバＡ１０１において、同様の判定が行われる。管理サーバＢ１１１，管理サーバＡ１０１共に、移行必要と判断された場合、管理サーバＡ１０１において、移行先の拠点の検討が行われる。管理サーバＡ１０１は、ステップ３０５において、機器１５１の位置、経路、機器情報を入手する。拠点Ｂ１１０と比較し、移行による機器１５１の情報処理について品質が向上する拠点を管理サーバＡ１０１は選定し、ステップ３０６において管理サーバＢ１１１に送付する。
【００７７】
上述した管理サーバＡ１０１と管理サーバＢ１１１上での移行判定がともに「移行必要」であれば、管理サーバＢ１１１、及びサーバＢ１１２、及び移行先の管理サーバ及びサーバは、これから述べるＡＰ移行準備３１０から移行完了通知３２３の手順において、アプリケーションの移行を行う。ここで、アプリケーションとデータの移行先は、拠点Ｃのサーバであると管理サーバＡ１０１もしくは、管理サーバＢ１１１が決定したものとして、説明を進める。
【００７８】
ここで、管理サーバＣ１２１は、管理テーブル１１００を参照し、管理サーバＣ１２１の管理対象であるサーバから、アプリケーションを動作させるサーバを決定する。まず、管理サーバＡ１０１、管理サーバＢ１１１から入手したアプリケーションのメモリやストレージに関するリソース使用情報とデータのストレージに関するリソース使用量を確認し、データ格納とアプリケーションの条件を満たすサーバを選出する。
【００７９】
また、配付されるアプリケーションが、アプリケーション形式であれば、動作可能なＡＰ種別を確認し、動作可能であるサーバを選出する。すでに稼働実績があるサーバは優先し、実際に現在アプリケーションが稼働中であれば、アプリケーションの移行は行わず、データのみの移行を行う。
【００８０】
アプリケーションの配付は、パッケージ化されたアプリケーションを準備し、実行するアプリケーションに送信し、実行するとして説明を行うが、仮想マシン（ＶＭ）を準備し、実行するサーバは仮想マシンを送信し、仮想マシンを動作することで、アプリケーションの実行を行ってもよい。以降は、前者の例を示す。
【００８１】
以降、本実施例では、アプリケーションやデータを移行するサーバがサーバＣ１２２であると管理サーバＣ１２１が決定したとして説明する。管理サーバＣ１２１は、移行するサーバＣ１２２のアドレスやスペック情報（移行情報）を管理サーバＢ１１１へ送信する（３１２）。この移行情報は、アプリケーションを受け入れるための認証情報を含む。管理サーバＢ１１１は、受け取った移行情報をサーバＢ１１２に送信する。このことにより、サーバＢ１１２は、認証情報を含む移行情報をサーバＢ１１２に送信する（３１４）。
【００８２】
サーバＣ１２２は、管理サーバＣ１２１より、事前に移行受け入れ要求（３１３）を受け取っている。サーバＢ１１２は、移行情報を受け取ると、移行情報の中に存在する認証情報を送付し、サーバＣ１２２と通信を開始する。サーバＣ１２２は、移行受け入れ要求３１３により受理した認証情報と、送付された認証情報を確認し、通信相手がサーバＢ１１２と確認された場合、送付されたアプリケーションプログラムをサーバＣ１２２上で動作させるためのアプリケーションパッケージと、データを受信し（３１５、３１６）、サーバＣ１２２上でアプリケーションが動作するようにアプリケーション及びデータの格納（３１７）を行う。
【００８３】
アプリケーション及びデータの格納とは、サーバＢ１１２で動作していたアプリケーションがサーバＣ１２２にて動作するよう、サーバＣ１２２へサーバアプリケーションのインストール、及びＷｅｂアプリケーションのインストール、及びアプリケーションへの設定、及び環境設定、及びユーザデータの格納を行うことである。アプリケーション及びデータの格納の作業に必要な情報は、ＡＰ移行３１５、及びデータ送信３１６のステップにて、サーバＢ１１２がサーバＣ１２２に送信する。
【００８４】
ここで、ＡＰ移行３１５、及びデータ送信３１６のステップでは、サーバＢ１１２がサーバＣ１２２に直接情報を送信するように記載している。拠点Ｂ１１０及び拠点Ｃ１２０の環境によっては、サーバＢ１１２からサーバＣ１２２に直接通信を行えない場合がある。その際は、ＡＰ移行３１５、及びデータ送信３１６のステップは、サーバＢ１１２及びサーバＣ１２２の一方もしくは両方がサーバＢ１１２とサーバＣ１２２間の通信を、制御用の通信路を用いて、仲介する。
【００８５】
アプリケーションの移行に伴い、機器１５１に関するデータがサーバＣ１２２に送信される。サーバＣ１２２は、サーバＣ１２２のストレージもしくはストレージ１１３に機器１５１に関するデータを格納し、ステップ３１７で動作するアプリケーションから機器１５１に関するデータを利用可能にし、アプリケーションを実行する（３１７）。機器１５１に関するデータの利用に際し、ＤＢＭＳなどのミドルウェアの配備が必要な場合、サーバＣ１２２上で動作するよう管理サーバＣ１２１がサーバＣ１２２へ指示する。
【００８６】
サーバＣ１２２は、アプリケーションの格納が完了した際、格納完了を管理サーバＣ１２１に通知する（３１８）。管理サーバＣ１２１は、自らの持つ管理テーブル１１０１の更新を行う。管理サーバＣ１２１は、格納完了通知をサーバＢ１１２に行う（３１９）。管理サーバＢ１１１は、移行完了処理要求をサーバＢ１１２及び管理サーバＡ１０１に行う（３２０、３２１）。
【００８７】
移行完了処理３２２は、管理サーバＡ１０１、及び管理サーバＢ１１１にて、機器１５１からの処理要求がサーバＣ１２２で処理されるように、ロードバランサ、ＤＮＳサーバ、ネットワーク機器のいずれか一種類以上の関連する機器に、設定変更の指示を行う。例えば、ＤＮＳサーバへ情報処理に対応した名前解決の情報変更を依頼する要求を行う。この移行完了処理３２２により、機器１５１からアプリケーションへのアクセス経路が変更され、サーバＣ１２２に到達する。サーバＢ１１２は、サーバＣ１２２に対し、移行完了処理が完了したことを通知し、移行のためのサーバＢ１１２とサーバＣ１２２間の通信を終了する（３２３）。
【００８８】
上記の手順を実行することにより、管理サーバＡ１０１、及び管理サーバＢ１１１、及び管理サーバＣ１２１が連携し、サーバＢ１１２で動作していたアプリケーションを、機器１５１が送信した位置、経路、機器情報１００４を用いて、機器１５１でサーバから情報処理結果を受信する際の応答品質を損なうことなく、サーバＣ１２２でアプリケーションを実行させることにより、情報処理を行うコストを低減することができる。
【００８９】
上記手順では、拠点Ｂ１１０における管理サーバＢ１１１がサーバＢ１１２上のアプリケーションの移行を拠点Ｃ１２０に対して行ったが、拠点Ｂ１１０、及び拠点Ｃ１２０、及び拠点Ｄ１３０は同一の機能を持つため、拠点間で同様にアプリケーションとデータの移行を行うことができる。また、拠点Ｅ１４０は、ネットワーク接続が、他の拠点と異なるが、拠点Ｅ１４０における管理サーバＥ１４１、サーバＥ１４２、ストレージ１４３は、拠点Ｂ１１０における管理サーバＢ１１１、及びサーバＢ１１２、及びストレージ１１３と同様の機能を持つため、同様の移行を行うことができる。
【００９０】
ただし、管理サーバＥ１４１は、直接、管理サーバＡ１０１と通信を行わず、管理サーバＥ１４１を管理対象とする管理サーバＣ１２１に対して移行の許可などの管理の指示を受け、必要に応じて管理サーバＣ１２１は上位の管理サーバである管理サーバＡ１０１に対し、管理の指示を受けるよう通信を行う。
【００９１】
ここで、前述した、機器１５１から要求のあった情報処理を行うアプリケーションをサーバＢ１１２以外で動作させるか否かの移行の判定を行う方法について、詳細を述べる。図１２は、アプリケーションの移行の判定に利用する、サービス情報テーブル１２００の詳細を説明する図である。サービス情報テーブル１２００は、アプリケーションＩＤ１２０１、アプリケーション名称１２０２、配付先１２０３、稼働状況１２０４、利用機器１２０５、配付条件１２０６が記録されている。
【００９２】
管理サーバＡ１０１は、管理サーバＡ１０１が管理する管理サーバＢ１１１、及び管理サーバＣ１２１、及び管理サーバＤ１３１が管理対象とするサーバ（サーバＢ１１２、及びサーバＣ１２２、及びサーバＤ１３２等）における、稼働アプリケーションと稼働条件をサービス情報テーブル１２００で管理している。サービス情報テーブル１２００は、ストレージ、またはストレージ１０３上に保存され、メモリ２０２上に読み込まれて更新、管理される。アプリケーションＩＤ１２０１は、それぞれアプリケーションのＩＤで、アプリケーションごとに一意に設定されている。アプリケーション名称１２０２は、アプリケーションの名称、サイズ、実行ファイルやパッケージの保管パスが記録されている。配付先１２０３は、アプリケーションがどのサーバへ配付されているのかを示し、稼働状況１２０４は、拠点内でどのサーバで稼働しているかの情報が格納されている。
【００９３】
利用機器１２０５は、配付されたアプリケーションを利用している利用機器のリストである。配付先１２０３及び稼働状況１２０４は、利用機器１２０５の各機器毎に対応づけられる。配付条件１２０６は、アプリケーションを拠点上のサーバに移行する際に、必要な条件（サーバでの動作ＯＳ、及び必要な依存関係のあるプログラムとライブラリ、及び必要リソース（メモリ、及びストレージ、及びネットワーク）等）が記載されている。管理サーバＡ１０１は、移行の判定を行う際に、サービス情報テーブル１２００を参照し、アプリケーションを移行する必要があるか、判定する。まず、管理サーバＡ１０１は、アプリケーションＩＤ１２０１、及び稼働状況１２０４、及び利用機器１２０５から、当該機器及び当該アプリケーションが稼働している拠点を調査する。
【００９４】
すでに管理サーバＡ１０１に機器１５１から送信されている位置、経路、機器情報１００４の中から、位置情報を用いて、アプリケーションが稼働している拠点と、現在、機器１５１がアプリケーションを利用している拠点Ｂ１１０との距離の一覧を算出する。その中で、最も距離の近い拠点（この場合、拠点Ｃとする）を算出し、現在アプリケーションを利用している拠点Ｂ１１０との距離の差があらかじめ定められた値以上か、距離の比があらかじめ定められた値未満の場合、移行は可能で、移行先は拠点Ｃ１２０とすることを判定結果とする。
【００９５】
前述で稼働中の拠点を選出できなかった場合、当該アプリケーションが稼働していない拠点で、配付条件１２０６に記載された条件を満たす拠点を選出し、前述の位置情報を用いて、選出された拠点と、現在、機器１５１がアプリケーションを利用している拠点Ｂ１１０との距離の一覧を算出する。その中で、最も距離の近い拠点（この場合、拠点Ｃ１２０とする）を算出し、現在アプリケーションを利用している拠点Ｂとの距離の差があらかじめ定められた値以上か、距離の比があらかじめ定められた値未満の場合、移行は可能で、移行先は拠点Ｃ１２０とすることを判定結果とする。以上は、位置情報を利用した拠点の判定方法であったが、位置情報の他に、経路情報や機器情報に含まれる各拠点間のＲＴＴ（応答時間）や、ルータホップ数を利用してもよい。その際は、応答時間やルータホップ数があらかじめ定められた差や比以上に改善されれば、移行可能として、拠点を選出する。
【００９６】
また、アプリケーションが利用するデータは、複数の拠点上のストレージに分散されている。この分散の方法は、後述する。拠点の選定時に、すでに、アプリケーションが機器１５１から利用するデータの複製が存在する拠点については、距離や経路による算出に優先して、データの複製が存在する拠点を優先する。データの複製が存在する拠点が、拠点Ｂ１１０と比較し、機器１５１に対して距離が近い場合、データの複製が存在する拠点に優先してアプリケーションの移動を行う。
【００９７】
この際、データの移動は必要ないため、ステップ３１６のデータ送信は行われない。ステップ３２２の移行完了処理において、データの消去やアプリケーションの停止も行われない。
【００９８】
上記のように、管理サーバＡ１０１は、管理サーバＡ１０１が統括する管理サーバ群の設置されている拠点の中から、アプリケーションが動作可能な拠点を選別し、判定結果と合わせて、管理サーバＢ１１１に通知する。
【００９９】
図３において、移行完了通知３２３のステップが終了すると、機器１５１におけるアプリケーションの実行は、拠点Ｃ１２０における、サーバＣ１２２において行われる準備が完了している。その後、機器１５１が、情報処理装置（サーバ）に行わせたい、情報処理要求を作成し（３０１）、情報処理要求をサーバＣ１２２へ送信すると、前述した処理要求確認（３０３）から処理結果送信（３０８）までの手順が、管理サーバＣ１２１、及びサーバＣ１２２、及び管理サーバＡ１０１にて行われるため。機器１５１では、引き続き、情報処理を続けることができる。
【０１００】
次に、機器１５１に関するデータを本実施例の情報処理システムが多重化し、可用性を向上させる方法について、説明する。データの複製の管理は、各サーバ間の分散データ制御部４０５が通信を行い実施する。初めに、機器１５１に関するデータが拠点Ｂ１１０のストレージ１１３上に生成されると、拠点Ｂ１１０のサーバ１１２上の分散データ制御部４０５は、管理サーバ１２１に問い合わせを行い、機器１５１に関するデータの複製の生成先（配付先）を決定し、配付先へデータを送信する。配付先の選定は、拠点内の配付先は、管理サーバＢ１１１が決定する。すでにデータの複製の生成先が決まっており、複製が存在しているデータは、そのデータ複製先を引き継ぐため、新たな拠点へのデータの複製は作られない。
【０１０１】
拠点外へのデータの配付（複製）先は、管理サーバＢ１１１が、管理サーバＡ１０１に問い合わせて決定する。管理サーバＢ１１１は、管理サーバＡ１０１より、機器１５１に関するデータの可用性をどのように保つ必要があるかのポリシーについての情報を提供する（ステップ３０６）。このポリシーとは、例えば、同一拠点内に一つの複製と、拠点外に二つの複製を含むなどである。この拠点外の複製を作成する際に、管理サーバＡ１０１及び管理サーバＢ１１１は、ともに後述するような地域情報管理テーブルを持っており、条件に合った配付先を決定する。
【０１０２】
図９は、拠点情報管理テーブルを説明する図である。拠点情報管理テーブル９００には、各拠点の位置情報などが記載されている。拠点情報管理テーブルには、拠点ＩＤ９０１、拠点名９０２、拠点位置（緯度、経度）９０３、接続ネットワーク情報９０４、拠点形態９０５、拠点のセキュリティレベル９０６、拠点の被災、停電リスク９０７のいずれか一種類以上が記載されている。拠点情報管理テーブル９００は、管理サーバＡ１０１が管理し、管理サーバＢ１１１などの管理サーバと共有する。
【０１０３】
管理サーバＢ１１１は、機器１５１に関するデータの複製をどの程度作成するかを決定するために、管理サーバＡ１０１に問い合わせを行う。管理サーバＡ１０１は、あらかじめ、機器１５１の所有者が決めたポリシーに従ってストレージ上のデータの冗長化の指示を送る。このポリシーとは、例えば、「常にデータの複製を２つ持ち、一つは同一拠点内、一つは１００Ｋｍ以上離れた拠点に作成する。」のようなものである。
【０１０４】
この場合、管理サーバＢ１１１は、拠点情報管理テーブルの拠点ＩＤ９０１、及び拠点位置９０３などから、距離を判断し、複製を作成する拠点を決定する。また、例えば、ポリシーが、「接続ネットワークの異なる３拠点に作成する。」であれば、管理サーバＢ１１１は、拠点情報管理テーブルの接続ネットワーク情報９０４から、接続ネットワークを判断し、拠点を決定する。また、例えば、ポリシーが、「拠点のグレードを示す拠点形態、セキュリティレベル、被災、停電リスクのいずれか一種類以上が一定の値以上である３拠点に作成する。」であれば、管理サーバＢ１１１は、拠点情報管理テーブルの拠点形態９０５、拠点のセキュリティレベル９０６、拠点の被災、停電リスク９０７のいずれか一種類以上とそれらの値から、拠点の選別と拠点の決定を行う。
【０１０５】
例えば、ポリシーが、「常にデータの複製を１つ持ち、データを参照するアプリケーションの稼働している拠点」である場合、管理サーバＢ１１１は、動作アプリケーション情報１１０９を調査し、稼働している拠点を複製を作成する拠点として決定する。
【０１０６】
アプリケーション種別が、利用者及び利用機器毎に区別して管理されているとすると、アプリケーションを利用者が利用する毎に、アプリケーションの稼働する拠点は、利用機器から物理的に近い拠点もしくは、利用機器とのネットワーク上の応答が短い拠点上で動作することになる。
【０１０７】
本実施例のシステムが、動作を続けると、あるデータに対する複製は、いったん決められたポリシーに従って、同一の拠点に作成されるが、上記、「データを参照するアプリケーションの稼働している拠点」とする場合、アプリケーションの稼働拠点が移行することが頻繁に起こる。その際、管理サーバＢ１１１は、複製の作成先の拠点をアプリケーションの稼働している拠点へ変更する。以前複製の作成先とされていた拠点上のデータは消去され、新たに選択された拠点上に複製が作成される。
【０１０８】
上記のように複製の作成先を変更することによって、あるデータを作成もしくは参照もしくは更新するアプリケーションやそのアプリケーションを利用する機器が複数ある場合、アプリケーションを利用する利用者や利用機器にとって、応答性能やスループットの良い拠点上でアプリケーションが実施されるうえ、データやデータの複製が前記の拠点上に作成されるようになるため、アプリケーションの処理時間を含めた、アプリケーションの利用効率が向上し、利用者のアプリケーションを利用する体感品質が向上するという効果がある。
【０１０９】
以下、「常にデータの複製を２つ持ち、一つは同一拠点内、一つは１００Ｋｍ以上離れた拠点に作成する。」というポリシーが、機器１５１に関するデータに対して設定されていたものとする。
【０１１０】
管理サーバＢ１１１の指示により、分散データ制御部４０５は、機器１５１に関するデータの複製を拠点内と、１００Ｋｍ以上離れた拠点Ｄ１３０に作るよう動作する。分散データ制御部４０５は、管理サーバＢ１１１の指示したストレージ１１３と、拠点Ｄ１３０のサーバ上の分散データ制御部４０５と接続を行い、機器１５１に関するデータの複製を作成する。機器１５１に関するデータが更新されるたびに、分散データ制御部４０５がそれぞれの複製を更新する。
【０１１１】
ここで、分散データ制御部４０５が、データの複製を作成するように記載したが、データのコピー（バックアップ）である複製を作るのではなく、分散データ・ガーディングのような、データとパリティの集合をいくつかのストレージで分担するような冗長化を実施してもよい。
【０１１２】
次に、図１３から図１６を用いて、機器１５１及び機器１５２が、図示しないアクセスネットワーク及び基幹ネットワーク１６０を介して、アプリケーションとデータを利用する際、アプリケーションやデータが拠点間で移動されたり、複製されたりする手順を説明する。
【０１１３】
図１３に、機器１５１が利用するアプリケーション１３０１、及びデータ１３０２がそれぞれサーバＢ１１２上で動作し、ストレージ１３０３上に保存されているものとする。すでに説明したアプリケーションとデータの拠点移動のステップにより、ステップ３１５でアプリケーション１３０１がサーバＢ１１２上からサーバＣ１２２上に、ステップ３１６で、データ１３０２がストレージ１１３からストレージ１２３に移動する。移行完了処理３３２において、サーバＢ１１２上のアプリケーション１３０１が停止され、データ１３０２が消去される。（図１４）
ここで、データの複製が、拠点Ｄ１３０に作られるとすると、図１５に示すように、管理サーバＤ１３１は、ストレージ１３３上にデータの複製１３０３を作成するよう指示する。その後、機器１５１が移動し、機器１５１の位置、またはネットワーク上のアドレスが変わると、サーバＣ１２２上で動作しているアプリケーション１３０１の移動先が管理サーバＣ１２１において判定される。この際、拠点Ｄ１３０内にはすでに、ストレージ上にデータの複製が存在しており、拠点Ｄ１３０は、アプリケーションの移動先として、優先的に管理サーバＣ１２１に選択される。この際、すでに述べたアプリケーションの移行は行われるが、データの移行は必要ないため、ステップ３１６でのデータの移行は行われない。また、ステップ３２２での移行完了処理におけるデータの消去は行われない。
【０１１４】
上記のようにアプリケーションの移行が行われると、図１６に示すように、アプリケーション１３０１が、それぞれ拠点Ｃ１２０及び拠点Ｄ１３０において動作し、データ１３０２及びデータの複製１３０３がそれぞれ、拠点Ｃ１２０及び拠点Ｄ１３０に配付される。機器１５１の位置が、拠点Ｄ１３０に比較し、拠点Ｃ１２０に近いか、機器１５１から拠点Ｃ１２０のネットワーク上の距離が拠点Ｄ１３０に比べて近い場合、機器１５１から利用されるアプリケーション及びデータは、アプリケーション１３０１及びデータ１３０２となる。また、機器１５１の位置が、拠点Ｃ１２０に比較し、拠点Ｄ１３０に近いか、機器１５１から拠点Ｄ１３０のネットワーク上の距離が拠点Ｃ１２０に比べて近い場合、機器１５１から利用されるアプリケーション及びデータは、アプリケーション１３０１及びデータの複製１３０３となる。
【０１１５】
ここで、機器１５１からアプリケーション１３０１を介してデータの複製１３０３に更新が加えられた場合、各々のサーバ上の分散データ制御部４０５は、データの複製１３０３に加えられた更新の情報を共有し、更新情報をデータ１３０２に反映する。上記の更新の反映により、機器１５１は、サーバＣ１２２及びサーバＤ１３２上のどちらのアプリケーション１３０１を利用しても、同じアプリケーションを介してデータを利用することができ、アプリケーションの応答性能を向上出来たり、データの参照、記録（更新）の速度が向上される効果がある。
【０１１６】
上記では、機器１５１に依存してデータの移行及びアプリケーションの移行及びデータの複製の作成が行われるように説明しているが、機器が利用者毎にグループ化されて管理されていてもよい。このようにすることにより、図１６で示す例で利用者が利用する機器が１５１でなく、機器１５２であったとしても、同様の効果が得られる。このようにすることにより、機器１５１が生成したセンサ情報をアプリケーション１３０１経由でデータ１３０２に付加し、機器１５２がその付加されたデータを参照する際にアプリケーション１３０１経由でデータ１３０３にアクセスするということができる。このようにすることにより、効率良く、機器１５２からのアプリケーションの応答性能を向上させたり、データの参照の速度が向上させたりすることができる。
【０１１７】
この利用者毎に機器を管理するのは、サービス情報テーブル１２００の利用機器１２０５において、利用する機器を利用者に応じてグループ化しておくことにより、実現する。例えば、機器１５１と機器１５２を利用する利用者は同様であるとするなら、サービス情報テーブル１２００の利用機器１２０５において、機器１５１と機器１５２を同様にみなす。
【０１１８】
以上のように、利用者の端末などの機器と各拠点に設置した、サーバ、管理サーバが連携することにより、動的な生成結果を出力するようなアプリケーションを本来稼働しているオリジンサーバのある中央のデータセンタから、分散した末端のデータセンタへ移動することにより、中央のデータセンタのネットワークアクセスにかかる負荷を軽減することが可能になる。
【０１１９】
このことにより、本実施例の情報処理システムは、データセンタのコストを低減することができ、機器を利用し、データセンタ内のアプリケーションやデータによる情報処理を利用する利用者が負担するコストを下げることができるという効果を奏する。
【０１２０】
また、本実施形態の情報処理システムは、毎回処理が異なるような情報処理を行う情報処理システムに対する適用は、効果が高く、回線品質の維持にかかるコストを低減することができる。あらかじめ動的生成処理を行い、配付点に配付する方式ではなく、アプリケーションを配付するため、配付により多量のデータを生成し、ストレージを消費し、コスト増が発生するという課題も解消できる。
【０１２１】
本実施形態の情報処理システムにおいて、例えば、機器が、カーナビやＰＣ、携帯電話のような利用者が持つ端末機器である場合、利用者が利用するアプリケーションが、利用者と物理的に近い位置もしくは、ネットワーク上で近い位置に存在する拠点（データセンタ）に実行するアプリケーションが配置される。このため、一か所の拠点（データセンタ）へ処理が集中し、端末機器を利用する利用者への、アプリケーションを実行する際の、アプリケーションの応答時間が長くなったり、データを送受信する時間が長くなるといった課題が解消でき、利用者のシステム利用時の体感品質を向上できる。
【０１２２】
また、上記の機器は、場所を移動して利用されることが多いが、機器の場所が移動しても、機器からサーバもしくは管理サーバへ送信される位置情報や経路情報や機器情報を管理サーバが利用することにより、アプリケーションとデータが配置される拠点（データセンタ）は利用者の体感品質を高めることができる拠点が選別される。
【０１２３】
また、例えば、機器が、メータ機器や温度計、電力計などの計器のようなセンサや人流解析器、監視カメラ、認証機器などの制御用機器である場合、センサや制御用機器からの要求を受けて動作するアプリケーションが、センサと物理的に近い位置もしくは、ネットワーク上で近い位置に存在する拠点（データセンタ）に実行するアプリケーションが配置される。
【０１２４】
このため、一か所の拠点（データセンタ）へデータや処理が集中し、拠点（データセンタ）のネットワーク帯域が不足し、センサや制御用機器からの要求にたいする情報処理が滞ることがなく、センサや制御用機器を利用して情報処理を行う事業者が、拠点（データセンタ）の設備を増強したり、帯域不足に対する追加のコスト負担をする必要がなくなるという効果がある。
【０１２５】
また、例えば、拠点が、ＲＳＵであり、機器が車載器である場合、車載器から送信される、データセンタから情報を求めるための位置情報、運行情報、燃費情報などのいずれか一種類以上を含んだ処理要求や、車載器に搭載された映像、音声、温度などの測定結果などのいずれか一種類以上を含んだ処理要求がＲＳＵに送信され、拠点において情報処理されるか、もしくは、ＲＳＵ上に蓄積された情報がＲＳＵ上で処理され、車載器で表示される。本実施形態で示す配付方法を利用すれば、車載器に対し物理的距離が近い拠点やネットワーク上での通信遅延が少ない拠点上で情報処理が行われるため、車載器で情報処理結果が早く表示され、ユーザの体感品質が上がる。
【０１２６】
ＲＳＵと車載器の通信距離が短い場合、情報処理を行う時間が短いことで、対応できる車載器の搭載された車の車速を向上できたり、送信する情報の量を増やしたりすることができる。また、車載器が拠点に送信する情報が大きい場合、一か所の拠点（データセンタ）へデータや処理が集中し、拠点（データセンタ）のネットワーク帯域が不足し、車載機器からの要求に対する情報処理が滞る割合を減らし、センサや制御用機器を利用して情報処理を行う事業者が、拠点（データセンタ）の設備を増強したり、帯域不足に対する追加のコスト負担を事業者がする必要が少なくなるという効果がある。
【０１２７】
また、例えば、拠点が、監視カメラ用のネットワーク送信の中継設備であり、機器が監視カメラである場合、監視カメラから送信される映像及び音声の情報は、本実施例で示す配付方法に従えば、監視カメラの設置位置に対し物理的距離が近い拠点やネットワーク上での通信遅延が少ない拠点上で情報処理が行われる。また、監視カメラによる監視結果を確認するＰＣなどの別の機器が存在する場合、監視カメラでの監視結果の複製は、別の機器に対し物理的距離が近い拠点やネットワーク上での通信遅延が少ない拠点上にデータの複製が作成される。
【０１２８】
よって、上記の別の機器が監視結果を参照する際の処理時間が短くなるため、ユーザの体感品質が向上する。また、複製を作成する拠点は、監視結果を生成する機器（監視カメラ）から物理的距離が近い拠点やネットワーク上での通信遅延が少ない拠点と、上記別の機器に対し物理的距離が近い拠点やネットワーク上での通信遅延が少ない拠点に設置されるため、効率よいデータの複製が実現でき、システム全体として、各拠点のストレージ容量を増強するというコスト負担を事業者がする必要が少なくなるという効果がある。
【０１２９】
次に、第２の実施形態を図面を参照しながら説明する。第２の実施形態に示す情報処理システムは、第１の実施例に示す情報処理システムと同様であるが、分散されている「機器に関するデータ」のメタデータを管理サーバＡ１０１が収集し、ストレージ１０３に記憶するところが異なる。
【０１３０】
図５に、第２の実施形態の情報システムにおける、管理サーバＡ１０１及びストレージ５０３の構成図を示す。管理サーバＡ１０１は、ストレージ５０３上に管理サーバＡ１０１の管理対象とする管理サーバがそれぞれ管理対象としているストレージに記憶されるデータのメタデータを管理し、保存する。メタデータの管理は、メタデータ管理部４０３が行う。
【０１３１】
メタデータとは、あるデータについて、そのデータが付随して持っているデータの内容を抽象化したデータのことを意味する。主に、検索時に、データ本体を検索せずに、データの内容や性質を高速に知ることができる手段として利用される。管理サーバＡ１０１上のストレージ５０３に集積される利用されるメタデータの詳細を図６に示す。メタデータ６００を構成する各要素は、図示する通り、ファイルオブジェクトの名前６０１、ＩＤ６０２、サイズ６０３、パス名６０４、レプリケーション６０５、所有者６０６、パーミッション６０７、利用するアプリケーション６０８、そのほかのパラメータ６０９のいずれか一種類以上である。
【０１３２】
ファイルオブジェクトの名前６０１は、ファイルオブジェクトの名前である。ＩＤ６０２は、ファイルオブジェクトに一意につけられたＩＤである。サイズ６０３は、ファイルオブジェクトのサイズである。パス名６０４は、ファイルオブジェクトは、格納されているサーバやディレクトリなどのファイルにアクセスするためのアクセス情報である。レプリケーション６０５とは、ファイルオブジェクトの複製が作成された個数と、その格納場所を示す。
【０１３３】
所有者６０６は、そのファイルオブジェクトを作成した、ファイルオブジェクトの改変や移動や削除の権限を持つ利用者の識別子である。パーミッション６０７は、ファイルオブジェクトの所有者やそのほかの利用者がファイルオブジェクトに対してどのようなアクセス権限を持つのかである。利用するアプリケーション６０８は、ファイルオブジェクトを利用するサーバ上のアプリケーションの種別やＩＤやバージョン情報である。そのほかのパラメータ６０９は、ファイルオブジェクトの種別に依存した、データに付帯した情報である。
【０１３４】
例えば、データの種別が画像であれば、メタデータは、作成日時、位置情報、カメラパラメータ、サムネールなどのいずれか一種類以上が各要素である。また、例えば、データの種別がドキュメントであれば、メタデータは、サイズ、ページ数、文字数、タイトルなどのいずれか一種類以上が各要素である。また、例えば、データの種別が動画であれば、メタデータは、フレームレート、ビットデート、サイズ、コーデックのIDなどのいずれか一種類以上が各要素である。また、データの種別に寄らず、メタデータは、ファイルの場所、サイズ、パス名、ファイル名、キーワード、更新日時、ファイル種別、著作権情報、作者、レーティング、アクセスパーミッション、コメントなどのいずれか一種類以上が各要素である。また、例えば、データ内容の分析結果や、検索のためのインデックス情報等をメタデータの要素として含めてもよい。
【０１３５】
拠点Ｂ〜Ｄ内の管理サーバは、自らの管理対象である、管理サーバの設置された拠点のストレージ（ストレージ１１３、またはストレージ１２３，またはストレージ１３３，またはストレージ１４３のいずれか一つ）にデータが書き込まれると、後述する方法で、データのメタデータを取得し、管理サーバＡ１０１に送信する。管理サーバＡ１０１は、ストレージ１０３にメタデータ５０４を記録する。
【０１３６】
拠点Ｂ〜Ｄ内のサーバ（サーバＢ１１２，サーバＣ１２２，サーバＤ１３２）は、サーバの設置された拠点のストレージ（それぞれストレージ１１３、１２３，１３３）上のストレージへアクセスするための分散データ制御部４０５を持つ。サーバＢ１１２，サーバＣ１２２，サーバＤ１３２上で実行されるアプリケーションからストレージ上のデータに対するアクセス要求を仲介して、ストレージ１１３，及びストレージ１２３，及びストレージ１３３上のデータにアクセスし、データの作成や更新、追記、削除などを行う。
【０１３７】
データ管理部４０５は、相互に通信を行い、それぞれ、管理サーバＢ１１１，及び管理サーバＣ１２１，及び管理サーバＤ１３１の指示に従い、ストレージ１１３，及びストレージ１２３，及びストレージ１３３上のデータの作成や更新、追記、削除などを行う。ストレージ１１３、及びストレージ１２３，及びストレージ１３３上のデータの作成や更新、追記、削除が行われると、メタデータ管理部４０３は、データオブジェクトのメタデータを作成し、それぞれの拠点の管理サーバへメタデータを送付する。
【０１３８】
管理サーバ（１１１，１２１，１３１）の取得したメタデータは、管理サーバＡ１０１へ送付され、それぞれのファイルオブジェクトごとにストレージ１０３上に管理（メタデータ３０４に対して、作成時は追加、更新、追記時は更新、削除時は削除）される。
【０１３９】
今、機器１５１が、サーバＢ１１２上で動作するアプリケーションを利用して情報処理を行っているとする。この場合、サーバＢ１１２上のアプリケーションが参照もしくは作成するデータは、分散データ制御部４０５を経由してストレージ１１３にそれぞれ読み出しもしくは記録される。この際、分散データ制御部４０５は、通信可能なその他のサーバ上のデータ制御部と通信し、あらかじめ定められた数のデータのレプリケーション（複製）を作成する。このレプリケーションの作成は、データの可用性や耐災害性を高めるために行う。
【０１４０】
分散データ制御部４０５は、管理サーバＢ１１１が決定したレプリケーション記録先に、あらかじめ定められた数のレプリケーションを作成しながら、データの作成、更新、削除を行う。
【０１４１】
管理サーバＡ１０１は、ある機器に紐付けられたデータ（ある機器が情報処理で利用するデータ）とその複製がどの拠点のストレージに格納されているかを、メタデータ５０４により、管理している。管理サーバＡ１０１は、移行判定３０４のステップで、アプリケーションの稼働する拠点を選択する際に、データが記録されている拠点を優先し、次にデータの複製が記録されている拠点を優先する。以上の判定によって、ある機器に紐付けられたデータの拠点間の移動が抑制され、機器を利用する事業者が負担するコストを低減することができる。
【０１４２】
以下では、具体的に、センサからデータをサーバ上に蓄積し、演算処理をするような情報処理を例にとり、本実施形態の情報処理システムが、データとメタデータを管理する方法について、説明する。図７は、本実施形態の情報処理システムにおいて、センサのような機器が、サーバに対し、データの送信を伴った情報処理を行う際のシーケンス図を示したものである。
【０１４３】
機器１５１は、センサ機能を持つ機器であり、センサ部分で入手した情報を拠点Ｂのサーバもしくは、サーバの記録領域であるストレージ１１３に情報を記録させる役割を持つものである。機器１５１は、サーバＢ１１２に対して処理を行わせたい、情報処理要求を作成する（３０１）。この情報処理要求とは、機器１５１がセンサであるので、測定した温度や消費電力量、記録音声、記録映像などの測定データとその内容の記録の指示である。本例では、機器１５１が消費電力量を量る電力計であるとして説明する。
【０１４４】
機器１５１は、サーバＢ１１２へ情報処理要求３０１で作成した内容の情報処理を実施させるため、処理要求送信（３０２）において、サーバＢ１１２へ処理要求を送信する。その後、サーバＢ１１２、管理サーバＢ１１１、管理サーバＡ１０１のそれぞれの間で前述した処理要求確認（３０４）、移行判定要求（３０５）、移行判定結果送信（３０６）、確認結果送信（３０７）を行う。
【０１４５】
次に、サーバＢ１１２は、情報処理結果を生成すなわち、情報処理要求に含まれるデータに対する指示された処理（例えば、項目の総和や平均を求めたり、測定結果から、課金情報や統計情報を求める）を行い、測定データと処理済のデータをサーバＢ１１２もしくはストレージ１１３への格納を行う。次にサーバＢ１１２は、格納した測定データと処理済のデータについて、メタデータを算出し、管理サーバＢ１１１を経由して、管理サーバＡ１０１へ送信する（７０１，７０２）。管理サーバＡ１０１は、受け取ったメタデータをストレージ５０３に格納する。
【０１４６】
ここで、サーバＢ１１２は、データの記録を行った成否の情報などの生成された処理結果を機器１５１に送信する（３０９）。上述のプロセスにおいて、情報処理を行うアプリケーションの移行が必要であれば、前述した手順でアプリケーションの移行を行う。管理サーバＡ１０１は、受け取ったメタデータをメタデータ５０４に追記、更新し、ストレージ１０３上で管理する。メタデータ５０４を管理サーバＡ１０１が参照することにより、拠点のストレージ上のデータとして何が存在し、どのような付帯情報を持っているかが把握できる。このため、管理拠点において、そのほかの拠点群で管理されたデータについて、情報処理の要求が利用者からあれば、第一の実施形態で説明したアプリケーションの移行を利用することにより、データの存在する場所へアプリケーションを移行し、情報処理を行うことができる。
【０１４７】
図７で図示しない別の機器（機器１５２とする）から、ストレージ１１３に保存されたデータ（以降データＢと呼ぶ）に対する情報処理の要求がサーバＣ１２２に送信されたとする。ステップ７５０にて、サーバＣ１２２は、処理要求を受信する。
【０１４８】
ここで、機器１５２は、機器１５１をはじめとするその他のセンサを管理している利用者が利用する端末で、機器１５１を含む機器からのデータを集約する情報処理を統括する処理をサーバに実行依頼する端末である。例えば、電力計に対する処理は、計測結果の集約や表示や集計結果から算出される、課金情報や統計情報の表示である。
【０１４９】
サーバＣ１２２は、処理要求の確認を行う（３０３）。サーバＣ１２２は、管理サーバＢ１１１に処理要求確認を依頼（３０４）する。この処理要求確認３０４のステップは、機器１５２から処理要求が送信された際に、毎回行ってもよいし、処理がある定められた期間内において最初に行われた際のみに行ってもよいし、ある定められた期間において定められた頻度で行ってもよい。処理要求３０３のステップで、処理要求が、データＢに対する集計処理（例えば、データ全体（電力使用量の時系列）の平均を求めるであったり、データ（電力使用量）から課金情報を求めたりするような処理）であるとすると、移行判定要求３０５に対する管理サーバＡ１０１の回答（判定結果）は、データＢの記録されている拠点においてアプリケーションを実行するよう、アプリケーション及びデータの移行の指示を含むものとなる。
【０１５０】
管理サーバＣ１２１及びサーバＣ１２２は、ＡＰ移行準備３１０から移行完了通知３２３の手順において、アプリケーションの移行を行う。ここで、アプリケーションの移行先は、拠点Ｂのサーバであると管理サーバＡ１０１もしくは、管理サーバＢ１１１が決定したものとして、説明を進める。
【０１５１】
ＡＰ移行がステップ３２３により終了すると、サーバＣ１２２は、機器１５２から受け取った処理要求をサーバＢ１１２に送信し（７０３）、処理要求の確認（７０４）と処理結果作成（７０５）を行う。作成された処理結果は、サーバＢ１１２から、ステップ７０６においてサーバＣ１２２に送信される。サーバＣ１２２は受け取った処理結果を利用し、機器１５２に処理結果を通知する。
【０１５２】
ここで、機器１５２が、データＢに対する集計処理を要求してきたとして説明を行ったが、機器１５２が、複数のデータに対する集計処理を要求した場合、管理サーバＡ１０１は、複数の拠点に対するアプリケーション移行の指示をサーバＣ１２２に行い、複数のアプリケーションの移行を実施する。ステップ７０６で送信される処理結果は複数集まるため、サーバＣ１２２は、複数の処理結果を最終の処理結果とし、機器１５２に通知する。
【０１５３】
以上のように処理することにより、データＢが記録されている拠点のサーバ上で、機器から要求された処理を実行し、処理結果を機器に送信することができる。
【０１５４】
このことにより、機器から収集されたデータ（データＢ）を機器に近い拠点に記録し、情報処理に利用することができるので、管理拠点１００や拠点Ｂ１１０などの特定の拠点のデータ通信が集中するようなことが起きず、各拠点の情報処理機器を効率的に利用することができる。また、管理拠点１００などの特定の拠点のストレージ保管コストが高い場合、機器から収集されたデータを機器に近い拠点に記録することにより、データ記録のストレージ保管コストを低減することが可能となる。
【符号の説明】
【０１５５】
１００：管理拠点、１０１：管理サーバＡ、１０２：サーバＡ、１０３：ストレージ、１１１：管理サーバB、１１２：サーバＢ、１１３：ストレージ、１２１：管理サーバＣ、１２２：サーバＣ、１２３：ストレージ、１３１：管理サーバＤ、１３２：サーバＤ、１３３：ストレージ、１４１：管理サーバＥ、１４２：サーバＥ、１４３：ストレージ、１５１〜１５４：機器、１６０：基幹ネットワーク、１６１、１６２：アクセスネットワーク、４０３：メタデータ管理部、４０５：分散データ制御部、５０３：ストレージ、５０４：メタデータ、６００：メタデータ、９００：拠点情報管理テーブル、９０１：拠点ＩＤ、９０２：拠点名、９０３：拠点位置、９０４：接続ネットワーク情報、９０５：拠点形態、９０６：セキュリティレベル、９０７：停電リスク、１１００：管理テーブル、１１０１：サーバＩＤ、１１０２：サーバ名、１１０３：アドレス、１１０４：可能メモリ量、１１０５：可能ストレージ量、１１０６：ＣＰＵ情報、１１０７：動作可能ＶＭ種別、１１０８：動作可能アプリケーション種別、１１０９：動作アプリケーション情報、１１１０：アプリケーション稼働実績、１１１１：コスト、１２００：サービス情報テーブル、１２０１：アプリケーションＩＤ、１２０２：アプリケーション名称、１２０３：配付先、１２０４：稼働状況、１２０５：利用機器、１２０６：配付条件。
【図１】
0005970541.tif 000002
【図２】
0005970541.tif 000003
【図３】
0005970541.tif 000004
【図４】
0005970541.tif 000005
【図５】
0005970541.tif 000006
【図６】
0005970541.tif 000007
【図７】
0005970541.tif 000008
【図８】
0005970541.tif 000009
【図９】
0005970541.tif 000010
【図１０】
0005970541.tif 000011
【図１１】
0005970541.tif 000012
【図１２】
0005970541.tif 000013
【図１３】
0005970541.tif 000014
【図１４】
0005970541.tif 000015
【図１５】
0005970541.tif 000016
【図１６】
0005970541.tif 000017