(57)【要約】【課題】クライアント端末の負荷分散を行いつつ、アプリケーションの実行にあたり、ユーザのポリシーを考慮したアプリケーションの実行制御を行う。【解決手段】ルックアップサーバ１０では、クライアント端末２０のユーザにより指定されたアプリケーションの実行環境に関するポリシー情報を受信し、受信されたポリシー情報に応じて、アプリケーションに関する処理を実行させるサーバ３０を選択する。そして、ルックアップサーバ１０は、選択されたサーバ３０とクライアント端末２０との接続を制御する。【選択図】図１
2015022457.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末のユーザにより指定されたアプリケーションの実行環境に関する環境情報を受信する受信部と、
前記受信部に受信された環境情報に応じて、前記アプリケーションに関する処理を実行させるサーバを選択する選択部と、
前記選択部によって選択されたサーバと前記クライアント端末との接続を制御する接続制御部と、
を有することを特徴とするアプリケーション実行制御装置。
【請求項２】
前記受信部は、前記環境情報として、前記アプリケーションに関する処理を実行可能なサーバにより使用される電力源に関する情報を受信し、
前記選択部は、受信された電力源に関する情報に基づいて、前記アプリケーションに関する処理を実行させるサーバを選択することを特徴とする請求項１に記載のアプリケーション実行制御装置。
【請求項３】
前記受信部は、前記環境情報として、前記アプリケーションを実行するサーバの運営元に関する情報を受信し、
前記選択部は、受信されたサーバの運営元に関する情報に基づいて、前記アプリケーションに関する処理を実行させるサーバを選択することを特徴とする請求項１に記載のアプリケーション実行制御装置。
【請求項４】
前記選択部によって選択されたサーバが正常に稼動しているか否かの確認を該サーバに対して要求する要求部をさらに有し、
前記接続制御部は、前記選択部によって選択されたサーバが正常に稼動している旨の確認があった場合には、該サーバと前記クライアント端末との接続を制御することを特徴とする請求項１乃至３のいずれか一つに記載のアプリケーション実行制御装置。
【請求項５】
前記接続制御部は、前記クライアント端末を一意に識別する識別情報と、前記選択部によって選択されたサーバのアドレス情報とともに、該識別情報およびアドレス情報を用いて前記サーバと接続する旨の指示を前記クライアント端末に送信することにより、前記選択されたサーバと前記クライアント端末との接続を制御することを特徴とする請求項１乃至４のいずれか一つに記載のアプリケーション実行制御装置。
【請求項６】
アプリケーション実行制御装置において実行されるアプリケーション実行制御方法であって、
クライアント端末のユーザにより指定されたアプリケーションの実行環境に関する環境情報を受信する受信工程と、
前記受信工程に受信された環境情報に応じて、前記アプリケーションに関する処理を実行させるサーバを選択する選択工程と、
前記選択工程によって選択されたサーバと前記クライアント端末との接続を制御する接続制御工程と、
を含んだことを特徴とするアプリケーション実行制御方法。
【請求項７】
クライアント端末のユーザにより指定されたアプリケーションの実行環境に関する環境情報を受信する受信ステップと、
前記受信ステップに受信された環境情報に応じて、前記アプリケーションに関する処理を実行させるサーバを選択する選択ステップと、
前記選択ステップによって選択されたサーバと前記クライアント端末との接続を制御する接続制御ステップと、
をコンピュータに実行させることを特徴とするアプリケーション実行制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション実行制御装置、アプリケーション実行制御方法およびアプリケーション実行制御プログラムに関する。
【背景技術】
【０００２】
近年、クラウドサービスの需要が高まり、様々なアプリケーションがクライアント・サーバ型のシステムで提供されている。このようなクラウドサービスでは、利用者がクライアント端末をネットにさえつなげれば、どこでも自分のデータを引き出したり、アプリケーションを利用したりすることができる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】富田千智、外山将司、赤間浩樹  “モバイルクラウド環境におけるリソース最適化のためのＴＣＰスループット予測”、電子情報通信学会技術研究報告、ＩＮ２０１２−２００（２０１３−０３）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
クラウドサービスでは、クラウドサービス等の分散システムの普及に伴い様々なアプリケーションがクライアント・サーバ型のシステムで提供されてきている。また、システムの利便性や効率性を高めるために、サーバ装置の処理能力や処理負荷、ネットワークトラフィックの状況などに応じて処理を切り替える方法や、また、上記のように、クライアント側の端末装置がおかれている環境や状況に応じて動的に処理を分散する研究開発も進められている。
【０００５】
しかしながら、上記のクラウドサービスでは、アプリケーションの実行にあたり、ユーザのポリシーを考慮したアプリケーションの実行制御を行うことができないという課題があった。例えば、クラウドサービスでは、サーバ側の実行環境がユーザにとってブラックボックスになっていることや、クライアントがアプリケーションを実行するサーバの信頼性等のセキュリティに対するユーザの意向が反映されにくい。
【０００６】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、クライアント端末の負荷分散を行いつつ、アプリケーションの実行にあたり、ユーザのポリシーを考慮したアプリケーションの実行制御を行うことを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明に係るアプリケーション実行制御装置は、クライアント端末のユーザにより指定されたアプリケーションの実行環境に関する環境情報を受信する受信部と、前記受信部に受信された環境情報に応じて、前記アプリケーションに関する処理を実行させるサーバを選択する選択部と、前記選択部によって選択されたサーバと前記クライアント端末との接続を制御する接続制御部と、を有することを特徴とする。
【０００８】
また、本発明に係るアプリケーション実行制御方法は、アプリケーション実行制御装置において実行されるアプリケーション実行制御方法であって、クライアント端末のユーザにより指定されたアプリケーションの実行環境に関する環境情報を受信する受信工程と、前記受信工程に受信された環境情報に応じて、前記アプリケーションに関する処理を実行させるサーバを選択する選択工程と、前記選択工程によって選択されたサーバと前記クライアント端末との接続を制御する接続制御工程と、を含んだことを特徴とする。
【０００９】
また、本発明に係るアプリケーション実行制御プログラムは、クライアント端末のユーザにより指定されたアプリケーションの実行環境に関する環境情報を受信する受信ステップと、前記受信ステップに受信された環境情報に応じて、前記アプリケーションに関する処理を実行させるサーバを選択する選択ステップと、前記選択ステップによって選択されたサーバと前記クライアント端末との接続を制御する接続制御ステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１０】
実施形態に係るアプリケーション実行制御装置、アプリケーション実行制御方法およびアプリケーション実行制御プログラムは、クライアント端末の負荷分散を行いつつ、アプリケーションの実行にあたり、ユーザのポリシーを考慮したアプリケーションの実行制御を行うことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】図１は、第一の実施形態に係るシステムの構成の一例を示す図である。
【図２】図２は、第一の実施形態に係るルックアップサーバの構成を示すブロック図である。
【図３】図３は、ポリシー情報記憶部に記憶された情報の一例を示す図である。
【図４】図４は、サーバ資源情報記憶部に記憶された情報の一例を示す図である。
【図５】図５は、ユーザがアプリケーション処理に使用する実行環境をポリシーに応じて選択できることを説明する図である。
【図６】図６は、ポリシー判定処理について説明する図である。
【図７】図７は、第一の実施形態に係るクライアント端末の構成を示すブロック図である。
【図８】図８は、ポリシー情報記憶部に記憶された情報の一例を示す図である。
【図９】図９は、第一の実施形態に係るサーバの構成を示すブロック図である。
【図１０】図１０は、サーバ資源情報記憶部に記憶された情報の一例を示す図である。
【図１１】図１１は、クライアント端末およびサーバによる分散処理を説明するための図である。
【図１２】図１２は、第一の実施形態に係るシステムの処理手順を示すシーケンス図である。
【図１３】図１３は、第一の実施形態に係るクライアント端末の動作判定処理の処理手順を示すフローチャートである。
【図１４】図１４は、第一の実施形態に係るルックアップサーバのポリシー判定処理の処理手順を示すフローチャートである。
【図１５】図１５は、第一の実施形態に係るサーバのインスタンス生成処理の処理手順を示すフローチャートである。
【図１６】図１６は、第一の実施形態に係るルックアップサーバの接続先指示処理の処理手順を示すフローチャートである。
【図１７】図１７は、アプリケーション実行制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
以下に図面を参照して、この発明に係るアプリケーション実行制御装置、アプリケーション実行制御方法およびアプリケーション実行制御プログラムの実施形態を詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１３】
［第一の実施形態］
まず、図１を用いて、第一の実施の形態に係るシステムの概要について説明する。図１は、本実施形態に係るシステムの構成を示すブロック図である。同図に示すように、本実施形態に係るシステムは、ルックアップサーバ１０、クライアント端末２０、サーバ３０を有する。また、ルックアップサーバ１０、クライアント端末２０およびサーバ３０は、ネットワーク４０を介して、それぞれ接続されている。ここでネットワーク４０とは、例えば、３Ｇ（3rd  Generation）や、ＬＴＥ（Long  Term  Evolution）、ＷｉＦｉ（Wireless  Fidelity）などである。なお、ルックアップサーバ１０、クライアント端末２０およびサーバ３０における通信は、無線通信に限定されるものではなく、有線通信であってもよい。また、図１の例では、各装置が１台ずつ存在する場合を例示しているが、これに限定されるものではなく、各装置が複数台存在していてもよい。
【００１４】
また、以下の説明では、クライアント端末２０が分散実行環境を有するサーバ３０と協調してアプリケーションを実行するシステムについて説明するが、このシステムは、このような実施形態に限定されるものではない。例えば、クライアント端末２０同士やサーバ３０同士で協調してアプリケーションを実行するシステムであってもよい。また、このシステムでは、クライアント端末２０およびサーバ３０等の実行環境の種類や、実行するアプリケーションの種別が同一であってもよい。
【００１５】
ルックアップサーバ１０は、クライアント端末２０のユーザにより指定されたアプリケーションの実行環境に関する情報であるポリシー情報をクライアント端末２０から受信する。そして、ルックアップサーバ１０は、受信されたポリシー情報に応じて、アプリケーションに関する処理を実行させるサーバ３０を選択する。そして、ルックアップサーバ１０は、選択されたサーバ３０とクライアント端末２０とを接続するように制御する。
【００１６】
クライアント端末２０は、各種アプリケーションを実行する情報処理装置である。クライアント端末２０は、サーバ３０と協調してアプリケーションを実行する。例えば、クライアント端末２０は、携帯電話、ＰＨＳ（Personal  Handyphone  System）、ＰＤＡ（Personal  Digital  Assistant）、タブレットＰＣ（Personal  Computer）等、インターネットに接続して、サーバ３０や他のクライアント端末との間で情報を送受信できるものであれば、任意の装置であってよい。また、クライアント端末２０は、モバイル端末に限定されず、家庭またはオフィスに設置されたコンピュータを使用してもよい。
【００１７】
サーバ３０は、クライアント端末２０におけるアプリケーションに関する演算処理を実行し、クライアント端末２０に実行結果を送信する。また、図１の例では、サーバ３０は、火力＋太陽光発電、地熱発電または原子力発電のいずれか一つを電力源として利用しているものとする。
【００１８】
［ルックアップサーバの構成］
次に、図２を用いて、ルックアップサーバ１０の構成を説明する。図２は、第一の実施形態に係るルックアップサーバの構成を示すブロック図である。図２に示すように、ルックアップサーバ１０は、通信処理部１１、制御部１２および記憶部１３を有する。
【００１９】
通信処理部１１は、接続されるクライアント端末２０、サーバ３０等との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部１１は、クライアント端末２０からポリシー情報を受信し、また、クライアント端末２０を一意に識別可能なＩＤと接続先のサーバ３０のＩＰアドレスをクライアント端末２０に送信する。また、通信処理部１１は、稼動チェック要求やインスタンス生成要求をサーバ３０に送信し、また、稼動チェック結果やインスタンス生成結果をサーバ３０から受信する。
【００２０】
記憶部１３は、図２に示すように、ポリシー情報記憶部１３ａと、サーバ資源情報記憶部１３ｂとを有する。記憶部１３は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
【００２１】
ポリシー情報記憶部１３ａは、クライアント端末２０のユーザにより指定されたアプリケーションの実行環境に関するポリシー情報を記憶する。なお、ポリシー情報記憶部１３ａに記憶されるポリシー情報は、後述する受信部１２ａによりクライアント端末２０から受信した情報である。
【００２２】
例えば、ポリシー情報記憶部１３ａは、図３に例示するように、クライアント端末２０を一意に識別する「端末ＩＤ」と、アプリケーションに関する処理を実行させるサーバ３０が利用するエネルギーについてユーザが再生エネルギーを指定しているか否かを示す「エネルギー」と、ユーザがフェアトレードに賛同しているか否かを示す「フェアトレード」とを対応付けて記憶する。
【００２３】
サーバ資源情報記憶部１３ｂは、各サーバ３０の資源に関する情報として、各サーバ３０により使用される電力源に関する情報を記憶する。なお、サーバ資源情報記憶部１３ｂに記憶されている情報は、事前に記憶されているものとする。
【００２４】
例えば、サーバ資源情報記憶部１３ｂは、図４に例示するように、サーバを一意に識別する「サーバＩＤ」と、サーバが利用するエネルギーが再生エネルギーであるか否かを示す「エネルギー」と、サーバがフェアトレードを実施していることにより供給されているエネルギーを利用しているか否かを示す「フェアトレード」とを対応付けて記憶する。
【００２５】
図２に戻って、制御部１２は、受信部１２ａと、選択部１２ｂと、要求部１２ｃと、接続制御部１２ｄとを有する。ここで、制御部１２は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路やＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路である。
【００２６】
受信部１２ａは、クライアント端末２０のユーザにより指定されたアプリケーションの実行環境に関するポリシー情報を受信する。具体的には、受信部１２ａは、ポリシー情報として、アプリケーションに関する処理を実行可能なサーバ３０により使用される電力源に関する情報や、アプリケーションを実行するサーバの運営元に関する情報を受信する。例えば、受信部１２ａは、電力源に関する情報として、サーバ３０が利用するエネルギーを再生エネルギーに指定する旨の情報や、原子力発電によるエネルギーを利用するサーバ３０を除外する旨の情報や、フェアトレードに賛同する旨の情報を受信する。また、例えば、受信部１２ａは、アプリケーションを実行するサーバの運営元に関する情報として、サーバの運営元である企業名や、第三者機関による認定評価が高いサーバ運営事業者名等を受信してもよい。
【００２７】
選択部１２ｂは、受信部１２ａに受信されたポリシー情報に応じて、アプリケーションに関する処理を実行させるサーバ３０を選択する。具体的には、選択部１２ｂは、受信された電力源に関する情報またはアプリケーションを実行するサーバの運営元に関する情報に基づいて、アプリケーションに関する処理を実行させるサーバを選択する。例えば、アプリケーションを実行するサーバの運営元に関する情報として、サーバの運営元である企業名「Ａ社」が指定された場合には、選択部１２ｂは、「Ａ社」が運営するサーバを選択する。また、以下では、電力源に関する情報を受信した場合において、サーバを選択する処理について説明する。
【００２８】
ここで、図５の例を用いて、ユーザがアプリケーション処理に使用する実行環境をポリシー情報に応じて選択する処理を説明する。図５は、ユーザがアプリケーション処理に使用する実行環境をポリシーに応じて選択できることを説明する図である。例えば、図５の例では、サーバ３０Ａは、火力＋太陽光発電によるエネルギーを電力源としており、朝夕などの時間帯は発電稼働率が低いが、再生可能エネルギーを利用するサーバである。また、サーバ３０Ｂは、地熱発電によるエネルギーを電力源としており、また、フェアトレードを実施して地域貢献可能なサーバである。また、サーバ３０Ｃは、原子力発電によるエネルギーを電力源としており、有事にリスクが存在する場合があるエネルギーを利用しているサーバである。
【００２９】
また、クライアント端末２０は、ポリシー情報として、「○エコ（再生可能エネルギー）」、「×原子力」、「○フェアトレード賛同」、「現在時刻  ２０：２５」が設定されている。ここで、「○エコ（再生可能エネルギー）」とは、ユーザが、エコなサーバとして再生可能エネルギーを利用するサーバを、アプリケーション実行環境の対象サーバに指定していることを意味する。また、「×原子力」とは、ユーザが、原子力を利用するサーバをアプリケーション実行環境の対象外としていることを意味している。また、「○フェアトレード賛同」とは、ユーザがフェアトレードに賛同していることを意味する。
【００３０】
この場合に、ルックアップサーバ１０の選択部１２ｂは、再生可能エネルギーを利用しており、かつ、フェアトレードの実施により供給されたエネルギーを利用しているサーバ３０Ｂを選択する。そして、後述する接続制御部１２ｄが、サーバ３０Ｂとクライアント端末２０とを接続するように制御する。これにより、クライアント端末２０のオフローダが、ユーザ所望のサーバにオフロードすることとなり、ユーザがアプリケーション処理に使用する電力源を自ら選択できる。
【００３１】
ここで、ポリシーに応じたサーバを選択するポリシー判定処理の具体的な処理の流れについて図６の例を用いて説明する。図６は、ポリシー判定処理について説明する図である。図６に示すように、選択部１２ｂは、ポリシー情報をクライアント端末２０から取得する（ステップＳ１）。ここで、選択部１２ｂは、取得したポリシー情報をポリシー情報記憶部１３ａに記憶する。
【００３２】
そして、選択部１２ｂは、サーバ資源情報記憶部１３ｂから資源情報を抽出し（ステップＳ２）、ポリシー判定処理に移る。まず、選択部１２ｂは、ポリシー判定処理として、ポリシー情報が「再生可能エネルギー」を指定した場合には、各サーバの資源情報のエネルギーの項目におけるデータが「再生可能エネルギー」と一致するか判定する（ステップＳ３）。この結果、選択部１２ｂが不一致であると判定した場合には、すなわち、再生可能エネルギーを利用するサーバが存在しない場合には、後述する要求部１２ｃが最寄りのサーバ３０Ｃに稼動チェックを要求する（ステップＳ４）。
【００３３】
また、選択部１２ｂが一致したと判定した場合には、すなわち、再生可能エネルギーを利用するサーバが存在した場合には、ポリシー判定処理として、ポリシー情報がフェアトレードを賛同しているか判定する（ステップＳ５）。この結果、フェアトレードに賛同していない場合には、ポリシー判定処理として、現在時刻がサーバ３０Ａを利用できる時間帯であるかを判定する（ステップＳ６）、この結果、選択部１２ｂは、サーバ３０Ａを利用できる時間であると判定した場合には、サーバ３０Ａを選択する。また、選択部１２ｂは、サーバ３０Ａを利用できる時間でないと判定した場合には、ステップＳ４に進み、要求部１２ｃが最寄りのサーバ３０Ｃに稼動チェックを要求する。
【００３４】
また、フェアトレードに賛同している場合には、ポリシー判定処理として、現在時刻がサーバ３０Ｂを利用できる時間帯であるかを判定する（ステップＳ７）。この結果、選択部１２ｂは、サーバ３０Ｂを利用できる時間であると判定した場合には、サーバ３０Ｂを選択する。また、選択部１２ｂは、サーバ３０Ｂを利用できる時間でないと判定した場合には、ステップＳ４に進み、要求部１２ｃが最寄りのサーバ３０Ｃに稼動チェックを要求する。
【００３５】
要求部１２ｃは、選択部１２ｂによって選択されたサーバ３０が正常に稼動しているか否かの確認を該サーバ３０に対して要求する。例えば、要求部１２ｃは、ポリシー情報と条件が一致するサーバ３０に稼動チェック要求を送信する。そして、要求部１２ｃは、稼動チェック結果を受信したか判定し、稼動チェック結果を受信すると、稼動チェック結果内容を確認する。そして、要求部１２ｃは、サーバ３０が正常に稼動している場合には、インスタンス生成要求をサーバ３０に送信する。
【００３６】
接続制御部１２ｄは、選択部１２ｂによって選択されたサーバ３０とクライアント端末２０との接続を制御する。具体的には、接続制御部１２ｄは、選択部１２ｂによって選択されたサーバ３０が正常に稼動している旨の確認があり、インスタンス生成結果を受信した場合には、該サーバ３０とクライアント端末２０との接続を制御する。
【００３７】
例えば、接続制御部１２ｄは、クライアント端末２０を一意に識別するＩＤと、選択部１２ｂによって選択されたサーバ３０のＩＰアドレスとともに、該ＩＤおよびＩＰアドレスを用いてサーバ３０と接続する旨の指示をクライアント端末２０に送信することにより、選択されたサーバ３０とクライアント端末２０との接続を制御する。
【００３８】
［クライアント端末の構成］
次に、図７を用いて、クライアント端末２０の構成を説明する。図７は、第一の実施形態に係るクライアント端末の構成を示すブロック図である。図７に示すように、クライアント端末２０は、通信処理部２１、制御部２２および記憶部２３を有する。
【００３９】
通信処理部２１は、接続されるルックアップサーバ１０、サーバ３０等との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部２１は、ルックアップサーバ１０へポリシー情報を送信し、また、クライアント端末２０を一意に識別可能なＩＤと接続先のサーバ３０のＩＰアドレスをルックアップサーバ１０から受信する。
【００４０】
記憶部２３は、図７に示すように、ポリシー情報記憶部２３ａを有する。記憶部２３は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
【００４１】
ポリシー情報記憶部２３ａは、クライアント端末２０のユーザにより指定されたアプリケーションの実行環境に関するポリシー情報を記憶する。例えば、ポリシー情報記憶部２３ａは、図８に例示するように、自装置であるクライアント端末２０を一意に識別する「端末ＩＤ」と、アプリケーションに関する処理を実行させるサーバが利用するエネルギーについてユーザが再生エネルギーを指定しているか否かを示す「エネルギー」と、ユーザがフェアトレードに賛同しているか否かを示す「フェアトレード」とを対応付けて記憶する。
【００４２】
図７に戻って、制御部２２は、受付部２２ａと、判定部２２ｂと、切替部２２ｃとを有する。ここで、制御部２２は、ＣＰＵやＭＰＵなどの電子回路やＡＳＩＣやＦＰＧＡなどの集積回路である。
【００４３】
受付部２２ａは、ユーザの入力操作に応じて、ポリシー情報を受け付ける。また、受付部２２ａは、ポリシー情報を受け付けると、受け付けたポリシー情報をポリシー情報記憶部２３ａに格納する。例えば、受付部２２ａは、ポリシー情報として、サーバの外部条件であるサーバ資源情報である、サーバ３０が利用するエネルギーを再生エネルギーに指定する旨の情報や、原子力発電によるエネルギーを利用するサーバ３０を除外する旨の情報や、フェアトレードに賛同する旨の情報を受信する。なお、ここで受け付けるポリシー情報として、例えば、個人情報を扱うアプリケーションの場合は第三者機関による認定評価が高いサーバ運営事業者に処理を委ねたいというポリシーを鑑み、セキュリティ上の観点からアプリケーションを実行させるサーバの企業を特定してもよい。
【００４４】
判定部２２ｂは、起動したアプリケーションを自装置内のローカルで処理するのか、サーバにオフロードするかを判定する。具体的には、判定部２２ｂは、アプリケーションが起動した場合には、自装置がオフロード可能な状態、および、オフロードが可能なアプリケーションであるか判定する。この結果、判定部２２ｂは、オフロードが可能でない場合には、起動したアプリケーションを自装置内のローカルで処理する。また、判定部２２ｂは、オフロードが可能である場合には、ユーザが所望するサーバを選択させるために、ルックアップサーバ１０にポリシー情報を送信する。
【００４５】
切替部２２ｃは、呼出し先（及び通信先）を動的に切り替える。つまり、判定部２２ｂによりサーバ３０側でアプリケーションの処理を実行すると決定した場合には、切替部２２ｃは、呼出し先をサーバ３０側のアプリケーションのモデルに指定し、サーバ３０側で処理させる。
【００４６】
また、判定部２２ｂによりクライアント端末２０側でプリケーションの処理をローカルに実行すると決定した場合には、切替部２２ｃは、呼出し先をクライアント端末２０側のモデルのコンポーネントに指定し、ローカルで処理させる。これにより、例えば、クライアント端末２０がサーバ３０からオフラインの状態にあるときでも、アプリケーションの実行が可能になる。
【００４７】
［サーバの構成］
次に、図９を用いて、サーバ３０の構成を説明する。図９は、第一の実施形態に係るサーバの構成を示すブロック図である。図９に示すように、サーバ３０は、通信処理部３１、制御部３２および記憶部３３を有する。
【００４８】
通信処理部３１は、接続されるクライアント端末２０、サーバ３０等との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部３１は、稼動チェック要求やインスタンス生成要求をルックアップサーバ１０から受信し、また、稼動チェック結果やインスタンス生成結果をルックアップサーバ１０に送信する。
【００４９】
記憶部３３は、図９に示すように、サーバ資源情報記憶部３３ａを有する。記憶部３３は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
【００５０】
サーバ資源情報記憶部３３ａは、各サーバ３０の資源に関する情報として、自サーバ３０により使用される電力源に関する情報を記憶する。例えば、サーバ資源情報記憶部３３ａは、図１０に例示するように、自サーバを一意に識別する「サーバＩＤ」と、自サーバが利用するエネルギーが再生エネルギーであるか否かを示す「エネルギー」と、自サーバがフェアトレードを実施していることにより供給されているエネルギーを利用しているか否かを示す「フェアトレード」とを対応付けて記憶する。
【００５１】
図９に戻って、制御部３２は、稼動チェック部３２ａと、生成部３２ｂと、送信部３２ｃと、起動部３２ｄとを有する。ここで、制御部３２は、ＣＰＵやＭＰＵなどの電子回路やＡＳＩＣやＦＰＧＡなどの集積回路である。
【００５２】
稼動チェック部３２ａは、自サーバ３０が正常に稼動しているかをチェックする。例えば、稼動チェック部３２ａは、ルックアップサーバ１０から稼動チェック要求を受信した場合には、稼動チェックを実施する。そして、稼動チェック部３２ａは、稼動チェックを行った結果である稼動チェック結果を送信部３２ｃに通知する。
【００５３】
生成部３２ｂは、稼動チェック部３２ａによる稼動チェック後に、クライアント端末２０と一対一に対応するインスタンスを生成する。例えば、生成部３２ｂは、ルックアップサーバ１０からインスタンス生成要求を受信した場合には、インスタンスを生成し、生成したインスタンス生成結果を送信部３２ｃに通知する。
【００５４】
送信部３２ｃは、稼動チェック部３２ａが稼動チェックを行った結果である稼動チェック結果をルックアップサーバ１０に送信する。また、送信部３２ｃは、生成部３２ｂにより生成されたインスタンスを、インスタンス生成結果としてルックアップサーバ１０に送信する。
【００５５】
起動部３２ｄは、クライアント端末２０からアプリケーションの処理を依頼された場合に、アプリケーションを起動し、アプリケーションに関する処理を実行する。ここで、図１１を用いて、クライアント端末２０およびサーバ３０による分散処理を説明する。図１１は、クライアント端末およびサーバによる分散処理を説明するための図である。
【００５６】
また、図１１は、本実施形態におけるクライアント端末２０とサーバ３０の論理的な構成を示している。クライアント端末２０において、モバイルＯＳによって実現される実行環境２１０が設けられており、実行環境２１０の上位にアプリケーション２２０が位置する。アプリケーション２２０は、ＭＶＣのデザインパターンによるものであって、ビュー及びコントロールのコンポーネントとモデルのコンポーネントから構成されている。
【００５７】
また、実行環境２１０の下位には、ハードウェアコンポーネントとして、ＧＰＳ（全地球測位システム；Global  Positioning  System）センサや電池残量計、加速度センサなどの各種のセンサ２３０と、アプリケーション２２０の実行に関連したデータ等を格納するストレージ（記憶装置）２４０とが設けられている。ストレージ２４０は、例えば、フラッシュメモリを有するメモリカードなどによって構成される。
【００５８】
同様にサーバ３０には、そのＯＳによって実現される実行環境３１０が設けられており、実行環境３１０の上位に、クライアント端末２０のアプリケーション２２０と同等のアプリケーション３２０が位置する。実行環境３１０の下位には、ハードウェアコンポーネントとしてセンサをシミュレートする仮想センサ３３０と、アプリケーション３２０の実行に関連したデータ等を格納するストレージ（記憶装置）３４０とが設けられている。ストレージ３４０は、例えば、ＨＤＤ（ハードディスク装置）によって構成される。
【００５９】
クライアント端末２０の実行環境２１０におけるこの機能に、呼出し先（及び通信先）を動的に切り替える仕組みである切替部２５０（図７の切替部２２ｃに相当）が設けられている。呼出し先（及び通信先）を動的に切り替える切替部２５０は、サーバ３０側でアプリケーションの処理を実行すると決定した場合には、呼出し先をサーバ３０側のアプリケーション３２０のモデルに指定し、サーバ３０側で処理させる（図１１に記載の「オフロード処理」）。
【００６０】
また、呼出し先（及び通信先）を動的に切り替える切替部２５０は、クライアント端末２０側でプリケーションの処理をローカルに実行すると決定した場合には、切替部２５０は、呼出し先をクライアント端末２０側のモデルのコンポーネントに指定し、ローカルで処理させる（図１１に記載の「ローカル処理」）。
【００６１】
［システムによる処理］
次に、図１２を用いて、第一の実施形態に係るシステムによる処理を説明する。図１２は、第一の実施形態に係るシステムの処理手順を示すシーケンス図である。
【００６２】
図１２に示すように、クライアント端末２０は、アプリ起動時に、動作モードに応じて、アプリケーションに関する処理をローカルで処理するか、オフロードで処理するかを判定する動作モード判定処理（図１３参照）を行う（ステップＳ１０１）。そして、クライアント端末２０は、オフロードで処理すると判定した場合には、ポリシー情報をルックアップサーバ１０に送信する（ステップＳ１０２）。
【００６３】
続いて、ルックアップサーバ１０は、ポリシーに条件が一致するサーバを選択するポリシー判定処理（図１４参照）を行う（ステップＳ１０３）。そして、ルックアップサーバ１０は、ユーザ所望のサーバ３０に稼動チェック要求およびインスタンス生成要求を送信する（ステップＳ１０４）。
【００６４】
そして、ルックアップサーバ１０は、クライアントと一対一に対応するインスタンスを生成するインスタンス生成処理（図１５参照）を実行し（ステップＳ１０５）、稼動チェック結果およびインスタンス生成結果をルックアップサーバ１０に送信する（ステップＳ１０６）。そして、ルックアップサーバ１０は、クライアント端末２０を一意に識別可能なＩＤと、接続先サーバ３０のＩＰアドレスをクライアントに送信する接続指示処理（図１６参照）を実行する（ステップＳ１０７）。
【００６５】
続いて、ルックアップサーバ１０は、上記のＩＤおよびＩＰアドレスとともに、サーバ３０と接続する旨を指示する接続先指示をクライアント端末２０に送信する（ステップＳ１０８）。その後、クライアント端末２０は、ルックアップサーバ１０から受信したＩＤおよびＩＰアドレスを用いて、オフロード処理を実行し（ステップＳ１０９）、サーバ３０と接続を行う（ステップＳ１１０）。また、サーバ３０は、クライアント端末２０と接続した後に、アプリケーションを起動し（ステップＳ１１１）、アプリケーションに関する処理を実行する。
【００６６】
［クライアント端末による動作モード判定処理］
次に、図１３を用いて、クライアント端末２０による動作モード判定処理の一例について説明する。図１３は、第一の実施形態に係るクライアント端末の動作判定処理の処理手順を示すフローチャートである。
【００６７】
図１３に示すように、クライアント端末２０の判定部２２ｂは、アプリケーションが起動した場合には（ステップＳ２０１肯定）、自装置がオフロード可能な状態、および、オフロードが可能なアプリケーションであるか判定する（ステップＳ２０２）。例えば、判定部２２ｂは、クライアント端末２０の動作モードがローカルモードであるかクラウドモードであるか判定する。クライアント端末２０は、アプリケーションに関する処理について、動作モードがローカルモードである場合には、ローカルで処理し、クラウドモードである場合には、サーバで処理する。
【００６８】
この結果、判定部２２ｂは、オフロードが可能でない場合には（ステップＳ２０２否定）、起動したアプリケーションを自装置内のローカルで処理する（ステップＳ２０４）。また、判定部２２ｂは、オフロードが可能である場合には（ステップＳ２０２肯定）、ユーザが所望するサーバを選択させるために、ルックアップサーバ１０にポリシー情報を送信する（ステップＳ２０３）。
【００６９】
［ルックアップサーバによるポリシー判定処理］
次に、図１４を用いて、ルックアップサーバ１０によるポリシー判定処理の一例について説明する。図１４は、第一の実施形態に係るルックアップサーバのポリシー判定処理の処理手順を示すフローチャートである。
【００７０】
図１４に示すように、ルックアップサーバ１０の受信部１２ａがクライアント端末２０からポリシー情報を受信すると（ステップＳ３０１肯定）、選択部１２ｂは、ポリシー情報と条件が一致するサーバ資源情報があるか判定する（ステップＳ３０２）。この結果、選択部１２ｂがポリシー情報と条件が一致するサーバ資源情報があると判定した場合には（ステップＳ３０２肯定）、要求部１２ｃは、ポリシー情報と条件が一致するサーバ３０に稼動チェック要求を送信する（ステップＳ３０３）。一方、選択部１２ｂがポリシー情報と条件が一致するサーバ資源情報があると判定した場合には（ステップＳ３０２否定）、要求部１２ｃは、最寄りのサーバ３０に稼動チェック要求を送信する（ステップＳ３０４）。
【００７１】
その後、要求部１２ｃは、稼動チェック結果を受信したか判定し（ステップＳ３０５）、稼動チェック結果を受信すると（ステップＳ３０５肯定）、サーバ正常に稼動しているか判定し（ステップＳ３０６）、サーバ正常に稼動している場合には（ステップＳ３０６肯定）、インスタンス生成要求をサーバ３０に送信する（ステップＳ３０７）。また、サーバ正常に稼動していない場合には（ステップＳ３０６否定）、アプリケーションに関する処理をローカルで処理するものとして判定する（ステップＳ３０８）。
【００７２】
［サーバのインスタンス生成処理］
次に、図１５を用いて、サーバ３０によるインスタンス生成処理の一例について説明する。図１５は、第一の実施形態に係るサーバのインスタンス生成処理の処理手順を示すフローチャートである。
【００７３】
図１５に示すように、サーバ３０の稼動チェック部３２ａは、ルックアップサーバ１０から稼動チェック要求を受信した場合には（ステップＳ４０１肯定）、稼動チェックを実施する（ステップＳ４０２）。そして、送信部３２ｃは、稼動チェックを行った結果である稼動チェック結果を送信する（ステップＳ４０３）。
【００７４】
そして、生成部３２ｂは、ルックアップサーバ１０からインスタンス生成要求を受信した場合には（ステップＳ４０４肯定）、インスタンスを生成する（ステップＳ４０５）。そして、送信部３２ｃは、生成部３２ｂにより生成されたインスタンスを、インスタンス生成結果としてルックアップサーバ１０に送信する（ステップＳ４０６）。
【００７５】
［ルックアップサーバの接続先指示処理］
次に、図１６を用いて、ルックアップサーバ１０による接続先指示処理の一例について説明する。図１６は、第一の実施形態に係るルックアップサーバの接続先指示処理の処理手順を示すフローチャートである。
【００７６】
図１６に示すように、稼動チェック部３２ａは、インスタンス生成結果をサーバ３０から受信した場合には（ステップＳ５０１肯定）、クライアント端末２０を一意に識別するＩＤと、選択部１２ｂによって選択されたサーバ３０のＩＰアドレスとともに、該ＩＤおよびＩＰアドレスを用いてサーバ３０と接続する旨の指示をクライアント端末２０に送信する（ステップＳ５０２）。
【００７７】
[第一の実施形態の効果]
上述してきたように、ルックアップサーバ１０では、クライアント端末２０のユーザにより指定されたアプリケーションの実行環境に関するポリシー情報を受信し、受信されたポリシー情報に応じて、アプリケーションに関する処理を実行させるサーバ３０を選択する。そして、ルックアップサーバ１０は、選択されたサーバ３０とクライアント端末２０との接続を制御する。これにより、ルックアップサーバ１０は、クライアント端末２０の負荷分散を行いつつ、アプリケーションの実行にあたり、ユーザのポリシーを考慮したアプリケーションの実行制御を行う。
【００７８】
つまり、ルックアップサーバ１０では、ユーザ自身の価値観を反映するという観点から、ユーザのポリシーとサーバ３０の情報をオフロード判断に用いることで所望のサーバ３０にオフロードする仕組みを提供し、ユーザが積極的にアプリケーションの実行環境を自らの意思(ポリシー)に従って選択することができる。
【００７９】
また、第一の実施形態によれば、ユーザのポリシーに応じたアプリケーション実行環境の動的変更が可能となり、例えば、グリーン電力供給の観点を重視するポリシーに対しては、ユーザが積極的に環境保全への具体策をとる手段として、環境負荷の小さいサーバを選択することが可能である。
【００８０】
また、第一の実施形態によれば、ルックアップサーバ１０が、ポリシー情報として、アプリケーションに関する処理を実行可能なサーバ３０により使用される電力源に関する情報を受信し、受信された電力源に関する情報に基づいて、アプリケーションに関する処理を実行させるサーバを選択する。このため、ユーザは、アプリケーション処理に使用する電力源を自ら選択することが可能である。
【００８１】
また、第一の実施形態によれば、ルックアップサーバ１０が、選択されたサーバ３０が正常に稼動しているか否かの確認を該サーバ３０に対して要求する。そして、ルックアップサーバ１０が、サーバ３０が正常に稼動している旨の確認があった場合には、該サーバ３０とクライアント端末２０との接続を制御する。このため、正常に動作していることを確認した後に、サーバ３０とクライアント端末２０とを適切に接続させることが可能である。
【００８２】
また、第一の実施形態によれば、ルックアップサーバ１０が、クライアント端末２０を一意に識別するＩＤと、選択されたサーバ３０のＩＰアドレスとともに、該ＩＤおよびＩＰアドレスを用いてサーバ３０と接続する旨の指示をクライアント端末２０に送信することにより、選択されたサーバ３０とクライアント端末２０との接続を制御する。このため、サーバ３０とクライアント端末２０とを適切に接続させることが可能である。
【００８３】
［システム構成］
また、本実施形態において説明した各処理の内、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００８５】
［プログラム］
図１７は、開示の技術に係るアプリケーション実行制御プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図１７に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。コンピュータ１０００の各部はバス１０８０によって接続される。
【００８６】
メモリ１０１０は、図１７に例示するように、ＲＯＭ１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図１７に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図１７に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１０４１に挿入される。シリアルポートインタフェース１０５０は、図１７に例示するように、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、図１７に例示するように、例えばディスプレイ１０６１に接続される。
【００８７】
ここで、図１７に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、開示の技術に係るアプリケーション実行制御プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール１０９３として、例えばハードディスクドライブ１０３１に記憶される。具体的には、上記実施形態で説明した制御部１２の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュールが、ハードディスクドライブ１０３１に記憶される。
【００８８】
また、アプリケーション実行制御プログラムによる情報処理に用いられるデータは、プログラムデータ１０９４として、例えばハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、各種の手順を実行する。
【００８９】
なお、アプリケーション実行制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られない。例えば、プログラムモジュール１０９３やプログラムデータ１０９４は、着脱可能な記憶媒体に記憶されても良い。この場合、ＣＰＵ１０２０は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、アプリケーション実行制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されても良い。この場合、ＣＰＵ１０２０は、ネットワークインタフェースを介して他のコンピュータにアクセスすることで各種データを読み出す。
【００９０】
［その他］
なお、本実施形態で説明したアプリケーション実行制御プログラムは、インターネットなどのネットワークを介して配布することができる。また、制御プログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【００９１】
１０  ルックアップサーバ
１１  通信処理部
１２  制御部
１２ａ  受信部
１２ｂ  選択部
１２ｃ  要求部
１２ｄ  接続制御部
２０  クライアント端末
３０  サーバ
４０  ネットワーク
【図１】
2015022457.tif 000003
【図２】
2015022457.tif 000004
【図３】
2015022457.tif 000005
【図４】
2015022457.tif 000006
【図５】
2015022457.tif 000007
【図６】
2015022457.tif 000008
【図７】
2015022457.tif 000009
【図８】
2015022457.tif 000010
【図９】
2015022457.tif 000011
【図１０】
2015022457.tif 000012
【図１１】
2015022457.tif 000013
【図１２】
2015022457.tif 000014
【図１３】
2015022457.tif 000015
【図１４】
2015022457.tif 000016
【図１５】
2015022457.tif 000017
【図１６】
2015022457.tif 000018
【図１７】
2015022457.tif 000019