(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024127257
(43)【公開日】2024-09-20
(54)【発明の名称】クラウドシステム、及び、クラウドサーバによるアプリケーションの実行方法
(51)【国際特許分類】
G06F 9/50 20060101AFI20240912BHJP
G06F 9/455 20180101ALI20240912BHJP
【FI】
G06F9/50 150A
G06F9/455 150
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023036286
(22)【出願日】2023-03-09
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100121382
【弁理士】
【氏名又は名称】山下 託嗣
(74)【代理人】
【識別番号】100221372
【弁理士】
【氏名又は名称】岡崎 信治
(72)【発明者】
【氏名】今竹 和彦
(72)【発明者】
【氏名】樋川 貴之
(72)【発明者】
【氏名】佐藤 一樹
(72)【発明者】
【氏名】濱名 建太郎
(72)【発明者】
【氏名】小野坂 健
(57)【要約】
【課題】クラウドサーバの効率的な運用と、幅広いユーザに仮想サーバを用いたサービスを提供可能とする。
【解決手段】クラウドシステム100は、クラウドサーバ1と、インタフェース提供サーバ3と、を備える。クラウドシステム100において、インタフェース提供サーバ3は、ユーザインタフェースUIをユーザ端末5に提供する。インタフェース提供サーバ3は、ユーザ端末5においてユーザインタフェースUIを用いて指定した第2仮想サーバ12に、ユーザインタフェースUIを用いて指定した実行対象アプリケーションAPを実行させるよう、クラウドサーバ1に指令する。クラウドサーバ1は、インタフェース提供サーバからの指令に応じて、第2仮想サーバ12を起動し、第2仮想サーバ12に実行対象アプリケーションAPを実行させ、指定した実行対象アプリケーションAPの実行が完了したら、指定した第2仮想サーバ12を停止する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
所定のアプリケーションを実行可能な第1仮想サーバと、前記アプリケーションを実行可能であり、前記第1仮想サーバよりもハイスペックである第2仮想サーバと、を内部で起動可能なクラウドサーバと、
前記クラウドサーバで起動する第2仮想サーバと、この第2仮想サーバに実行させる実行対象アプリケーションと、を指定するためのユーザインタフェースを提供するインタフェース提供サーバと、
を備え、
前記インタフェース提供サーバが、前記ユーザインタフェースをユーザ端末に提供し、
前記インタフェース提供サーバが、前記ユーザ端末において前記ユーザインタフェースを用いて指定した第2仮想サーバに、前記ユーザインタフェースを用いて指定した実行対象アプリケーションを実行させるよう、前記クラウドサーバに指令し、
前記クラウドサーバが、前記インタフェース提供サーバからの指令に応じて、前記第2仮想サーバを起動し、前記第2仮想サーバに前記実行対象アプリケーションを実行させ、前記実行対象アプリケーションの実行が完了したら前記第2仮想サーバを停止する、
クラウドシステム。
【請求項2】
前記クラウドサーバは、前記第1仮想サーバを起動し、前記第2仮想サーバが前記実行対象アプリケーションを実行するために用いる実行用データを前記第1仮想サーバに作成させる、請求項1に記載のクラウドシステム。
【請求項3】
前記クラウドサーバは、前記第1仮想サーバと前記第2仮想サーバとによりアクセス可能な仮想ストレージを有し、
前記クラウドサーバは、前記第1仮想サーバと前記仮想ストレージとを接続し、前記第1仮想サーバに前記実行用データを前記仮想ストレージに記憶させ、
その後、前記第2仮想サーバと前記仮想ストレージとを接続し、前記第2仮想サーバに、前記仮想ストレージに記憶させた前記実行用データを用いて前記実行対象アプリケーションを実行させる、請求項2に記載のクラウドシステム。
【請求項4】
前記クラウドサーバは、前記第1仮想サーバと前記第2仮想サーバとによりアクセス可能な仮想ストレージを有し、
前記クラウドサーバは、前記第2仮想サーバに、前記実行対象アプリケーションを実行することにより得られた実行結果を前記仮想ストレージに記憶させ、
その後、前記第1仮想サーバと前記仮想ストレージとを接続して、前記第1仮想サーバを用いて前記実行結果を閲覧可能とする、請求項1に記載のクラウドシステム。
【請求項5】
前記実行対象アプリケーションを実行するための複数のライセンスを管理するライセンスサーバをさらに備え、
前記インタフェース提供サーバは、前記ライセンスサーバで管理されている複数のライセンスの使用状況を確認し、
使用されていないライセンスが存在する場合に、前記第2仮想サーバにより前記実行対象アプリケーションを実行するよう前記クラウドサーバに指令する、
請求項1に記載のクラウドシステム。
【請求項6】
前記インタフェース提供サーバは、使用されていないライセンスが存在しない場合、前記第2仮想サーバによる前記実行対象アプリケーションの実行を指令しない、請求項5に記載のクラウドシステム。
【請求項7】
前記クラウドサーバは、前記第2仮想サーバによるCPUの使用率に基づいて、前記第2仮想サーバによる前記実行対象アプリケーションの実行が完了したか否かを判断する、請求項1に記載のクラウドシステム。
【請求項8】
所定のアプリケーションを実行可能な第1仮想サーバと、前記アプリケーションを実行可能であり、前記第1仮想サーバよりもハイスペックである第2仮想サーバと、を起動可能なクラウドサーバによる前記アプリケーションの実行方法であって、
前記クラウドサーバで起動する第2仮想サーバと、前記第2仮想サーバに実行させる実行対象アプリケーションと、を指定するためのユーザインタフェースを提供するステップと、
前記ユーザインタフェースを用いて、前記クラウドサーバで起動する第2仮想サーバと、当該第2仮想サーバに実行させるアプリケーションを実行対象アプリケーションとして指定するステップと、
前記ユーザインタフェースを用いて指定された第2仮想サーバに前記実行対象アプリケーションを実行するよう前記クラウドサーバに指令するステップと、
前記クラウドサーバが、前記第2仮想サーバを起動し、前記第2仮想サーバに前記実行対象アプリケーションを実行させ、前記実行対象アプリケーションの実行が完了したら前記第2仮想サーバを停止するステップと、
を備える、実行方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、仮想サーバを生成し起動可能なクラウドサーバにおいて、仮想サーバに所定のアプリケーションを実行させるシステム、及び、クラウドサーバにおいて仮想サーバに所定のアプリケーションを実行させる実行方法に関する。
【背景技術】
【0002】
各種のサービスを提供可能なクラウドサーバと、クラウドサーバにアクセスしてクラウドサーバにサービスを実行させるユーザ端末と、を備えるシステムが知られている(例えば、特許文献1を参照)。これにより、ユーザは、ユーザ端末を用いてクラウドサーバを操作することにより、高性能なクラウドサーバに所望のサービスを実行させ、サービスを実行することによるメリットを享受できる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のクラウドシステムには、クラウドサーバが、仮想的なコンピュータシステムにより構成される仮想サーバを内部で生成・起動して、この仮想サーバに各種情報処理を実行させるサービスを提供するものがある。クラウドサーバは、設定に従って、任意のスペックを有する仮想サーバを内部で起動できる。ここでいう「スペック」とは、仮想サーバのCPUの処理能力(例えば、CPUコア数、CPUコアのクロック数など)、仮想サーバのメモリ容量をいう。
【0005】
クラウドサーバにおいて、仮想サーバを利用するサービスには従量制の利用料が課金されることがある。この利用料は、仮想サーバのスペックが高いほど、仮想サーバの利用時間が多くなるほど高くなる。複雑な演算を要する解析など、演算処理のために多くのリソース(CPUの処理負荷、メモリ使用量)を必要とするアプリケーションを仮想サーバに実行させる場合、クラウドサーバの効率的な運用が重要となる。例えば、アプリケーションを高速に実行しつつ、利用料をできうる限り安くするような運用が求められる。
【0006】
また、クラウドサーバにおいて仮想サーバを生成・起動させるためには、クラウドサーバに関する高度な知識が必要である。このため、従来、仮想サーバを生成・起動させ、仮想サーバに各種アプリケーションを実行させるサービスを利用できるユーザは限られていた。
【0007】
本発明の課題は、仮想サーバを生成・起動可能なクラウドサーバを備えるクラウドシステムにおいて、クラウドサーバの効率的な運用と、幅広いユーザに仮想サーバを用いたサービスを提供可能とすることにある。
【課題を解決するための手段】
【0008】
本開示の一態様に係るクラウドシステムは、クラウドサーバと、インタフェース提供サーバと、を備える。クラウドサーバは、第1仮想サーバと第2仮想サーバとを内部で起動可能である。第1仮想サーバは、所定のアプリケーションを実行可能である。第2仮想サーバは、上記アプリケーションを実行可能であり、第1仮想サーバよりもハイスペックである。インタフェース提供サーバは、クラウドサーバで起動する第2仮想サーバと、実行対象アプリケーションと、を指定するためのユーザインタフェースを提供する。実行対象アプリケーションは、第2仮想サーバに実行させるアプリケーションである。
【0009】
上記のクラウドシステムにおいて、まず、インタフェース提供サーバが、上記のユーザインタフェースをユーザ端末に提供する。次に、インタフェース提供サーバが、ユーザ端末においてユーザインタフェースを用いて指定した第2仮想サーバに、ユーザインタフェースを用いて指定した実行対象アプリケーションを実行させるよう、クラウドサーバに指令する。クラウドサーバが、インタフェース提供サーバからの指令に応じて、第2仮想サーバを起動し、第2仮想サーバに実行対象アプリケーションを実行させ、指定した実行対象アプリケーションの実行が完了したら、指定した第2仮想サーバを停止する。
【0010】
このクラウドシステムでは、所定のアプリケーションを仮想サーバに実行させる指令に応じて、クラウドサーバにおいてハイスペックである第2仮想サーバが起動され、この第2仮想サーバにアプリケーションを実行させ、アプリケーションの実行が完了したら第2仮想サーバを停止している。このように、クラウドシステムでは、第2仮想サーバは、アプリケーションの実行時のみに起動される。また、アプリケーションをハイスペックな第2仮想サーバで実行することで、アプリケーションの実行時間が短くなる。
【0011】
このように、アプリケーションを処理速度重視のハイスペックな第2仮想サーバにより実行してアプリケーションを高速かつ短時間に実行し、それ以外の処理を実行するために第2仮想サーバを不必要に動作させないことで、最適なアプリケーションの実行速度と最適なコストでのクラウドサーバの利用を実現できる。
【0012】
また、上記のクラウドシステムでは、インタフェース提供サーバから提供されたユーザインタフェースを用いて、クラウドサーバで起動する対象の第2仮想サーバと、この第2仮想サーバで実行する実行対象アプリケーションを指定可能となっている。これにより、ユーザは、上記インタフェースを用いて所望の第2仮想サーバを指定するだけで、ユーザが所望のアプリケーションをこの第2仮想サーバに実行させることができる。この結果、クラウドサーバに関する高度な知識を有しないユーザであっても、仮想サーバを用いたサービスを利用できる。
【0013】
上記のクラウドシステムにおいて、クラウドサーバは、第1仮想サーバを起動し、第1仮想サーバに実行対象アプリケーションを実行させ、第2仮想サーバが実行対象アプリケーションを実行する際に用いる実行用データを第1仮想サーバに生成させてもよい。
【0014】
このように、実行対象アプリケーションが実行用データを用いる場合において、高速な処理を必要としない実行用データの生成をスペックが低い第1仮想サーバにより行うことで、実行用データの生成に伴う処理速度の低下を抑制しつつ、実行用データの作成のために第2仮想サーバを起動する必要がなくなる。この結果、最適なアプリケーションの実行速度と最適なコストでのクラウドサーバの利用を実現できる。
【0015】
上記のクラウドシステムにおいて、クラウドサーバは、第1仮想サーバと第2仮想サーバとによりアクセス可能な仮想ストレージを有してもよい。この場合、クラウドサーバは、第1仮想サーバと仮想ストレージとを接続し、第1仮想サーバに実行用データを仮想ストレージに記憶させ、その後、第2仮想サーバと仮想ストレージとを接続し、第2仮想サーバに、仮想ストレージに記憶させた実行用データを用いて実行対象アプリケーションを実行させてもよい。これにより、クラウドサーバに設けるストレージを節約できる。また、ストレージ間での実行用データの移動が不要となるので、実行用データの転送のために必要な時間を削減できる。
【0016】
上記のクラウドシステムにおいて、クラウドサーバは、第1仮想サーバと第2仮想サーバとによりアクセス可能な仮想ストレージを有してもよい。この場合、クラウドサーバは、第2仮想サーバに、実行対象アプリケーションを実行することにより得られた実行結果を仮想ストレージに記憶させ、その後、第1仮想サーバと仮想ストレージとを接続して、第1仮想サーバを用いて実行結果を閲覧可能としてもよい。これにより、実行結果の閲覧に伴う処理速度の低下を抑制しつつ、実行結果の閲覧のために第2仮想サーバを起動しておく必要がなくなる。この結果、最適なアプリケーションの実行速度と最適なコストでのクラウドサーバの利用を実現できる。
【0017】
上記のクラウドシステムは、実行対象アプリケーションを実行するための複数のライセンスを管理するライセンスサーバをさらに備えてもよい。この場合、インタフェース提供サーバは、ライセンスサーバで管理されている複数のライセンスの使用状況を確認し、使用されていないライセンスが存在する場合に、第2仮想サーバにより実行対象アプリケーションを実行するようクラウドサーバに指令してもよい。これにより、空きライセンス不足による実行対象アプリケーション実行時の異常を第2仮想サーバの起動前に検出できる。この結果、空きライセンスが存在するようになるまで第2仮想サーバが起動されたままとなることを防止できるので、最適なコストでのクラウドサーバの利用を実現できる。
【0018】
上記のクラウドシステムにおいて、インタフェース提供サーバは、使用されていないライセンスが存在しない場合、第2仮想サーバによる実行対象アプリケーションの実行を指令しなくてもよい。これにより、使用されていないライセンスが存在しない場合には、第2仮想サーバの起動と実行対象アプリケーションの実行が行われないので、使用されていないライセンスが存在するようになるまで第2仮想サーバが起動されたままとなることを防止できる。この結果、最適なコストでのクラウドサーバの利用を実現できる。
【0019】
上記のクラウドシステムにおいて、クラウドサーバは、第2仮想サーバによるCPUの使用率に基づいて、第2仮想サーバによる実行対象アプリケーションの実行が完了したか否かを判断してもよい。これにより、第2仮想サーバによる実行対象アプリケーションの実行の終了を適切に判断できる。また、例えば、第2仮想サーバで複数のアプリケーションが実行されている場合には、CPUの利用率により複数のアプリケーションの終了を統一的に判断できるので、実行中のアプリケーション毎の終了判定が不要になる。
【0020】
本開示の他の態様の実行方法は、クラウドサーバによる所定のアプリケーションの実行方法である。クラウドサーバは、アプリケーションを実行可能な第1仮想サーバと、アプリケーションを実行可能であり、第1仮想サーバよりもハイスペックである第2仮想サーバと、を起動可能である。アプリケーションの実行方法は、以下のステップを備える。
◎クラウドサーバで起動する第2仮想サーバと、第2仮想サーバに実行させる実行対象アプリケーションと、を指定するためのユーザインタフェースを提供するステップ。
◎ユーザインタフェースを用いて クラウドサーバで起動する第2仮想サーバと、当該第2仮想サーバに実行させるアプリケーションを実行対象アプリケーションとして指定するステップ。
◎ユーザインタフェースを用いて指定された第2仮想サーバに実行対象アプリケーションを実行するようクラウドサーバに指令するステップ。
◎クラウドサーバが、第2仮想サーバを起動し、第2仮想サーバに実行対象アプリケーションを実行させ、実行対象アプリケーションの実行が完了したら、第2仮想サーバを停止するステップ。
【0021】
このクラウドサーバによるアプリケーションの実行方法では、所定のアプリケーションを仮想サーバに実行させる指令に応じて、クラウドサーバにおいてハイスペックである第2仮想サーバが起動され、この第2仮想サーバにアプリケーションを実行させ、アプリケーションの実行が完了したら第2仮想サーバを停止している。このように、第2仮想サーバは、アプリケーションの実行時のみに起動される。また、アプリケーションをハイスペックな第2仮想サーバで実行することで、アプリケーションの実行時間が短くなる。
【0022】
このように、アプリケーションを処理速度重視のハイスペックな第2仮想サーバにより実行してアプリケーションを高速かつ短時間に実行し、それ以外の処理を実行するために第2仮想サーバを不必要に動作させないことで、最適なアプリケーションの実行速度と最適なコストでのクラウドサーバの利用を実現できる。
【0023】
また、上記のアプリケーションの実行方法では、インタフェース提供サーバから提供されたユーザインタフェースを用いて、クラウドサーバで起動する対象の第2仮想サーバと、この第2仮想サーバで実行する実行対象アプリケーションを指定可能となっている。これにより、ユーザは、上記インタフェースを用いて所望の第2仮想サーバを指定するだけで、ユーザが所望のアプリケーションをこの第2仮想サーバに実行させることができる。この結果、クラウドサーバに関する高度な知識を有しないユーザであっても、仮想サーバを用いたサービスを利用できる。
【発明の効果】
【0024】
本開示によれば、クラウドサーバにおいて、最適なアプリケーションの実行速度と最適なコストでのクラウドサーバの利用を実現して、効率よくクラウドサーバを運用できる。また、クラウドサーバに関する高度な知識を有しないユーザであっても、仮想サーバを用いたサービスを利用できる。
【図面の簡単な説明】
【0025】
【
図1】
図1は、クラウドシステムの構成を示す図である。
【
図2】
図2は、第1仮想サーバの構成を示す図である。
【
図3】
図3は、第2仮想サーバの構成を示す図である。
【
図4】
図4は、インタフェース提供サーバの構成を示す図である。
【
図5】
図5は、ユーザインタフェースの一例を示す図である。
【
図6】
図6は、アプリケーションの実行動作におけるクラウドシステムの動作を示すフロー図である。
【
図7】
図7は、アプリケーションの実行動作におけるユーザ端末の動作を示すフローチャートである。
【
図8】
図8は、アプリケーションの実行動作におけるインタフェース提供サーバの動作を示すフローチャートである。
【
図9】
図9は、アプリケーションの実行動作におけるクラウドサーバの動作を示すフローチャートである。
【
図10】
図10は、クラウドシステムの他の例を示す図である。
【発明を実施するための形態】
【0026】
(1)クラウドシステム
以下、本開示のクラウドシステム100を説明する。クラウドシステム100は、クラウドサーバ1において仮想サーバを起動し、当該仮想サーバに所定のアプリケーションAPを実行させるシステムである。クラウドシステム100で実行されるアプリケーションAPは、例えば、各種の解析、シミュレーションなどを行うプログラムである。このようなアプリケーションAPは、複雑で多くの演算処理を実行するので、実行に多くのコンピュータリソース(CPUの演算負荷、記憶容量など)を必要とする。
【0027】
次に、
図1を用いて、クラウドシステム100の構成を説明する。
図1は、クラウドシステム100の構成を示す図である。クラウドシステム100は、クラウドサーバ1と、インタフェース提供サーバ3と、ユーザ端末5と、を備える。
【0028】
クラウドサーバ1は、主に、多数のCPUと、大容量の記憶装置(RAM、ROM、SSD、HDDなどの記憶装置)と、多数のネットワークインタフェースなどにより構成された大規模コンピュータシステムである。クラウドサーバ1は、クラウドシステム100のユーザのために各種サービスを提供する。具体的には、クラウドサーバ1は、内部に生成した仮想サーバに所定のアプリケーションAPを実行させるサービスを提供できる。クラウドサーバ1において提供される各種サービスには、従量制のサービス利用料が課される。
【0029】
インタフェース提供サーバ3は、クラウドサーバ1と、ユーザ端末5に接続される。インタフェース提供サーバ3は、例えば、Webサーバである。インタフェース提供サーバ3は、ユーザ端末5にユーザインタフェースUI(
図5)を提供し、ユーザインタフェースUIを介してユーザ端末5の操作を受け付ける。
【0030】
インタフェース提供サーバ3は、ユーザインタフェースUIを介してユーザ端末5により指定されたアプリケーションAPを、ユーザ端末5により指定された第2仮想サーバ12に実行するよう、クラウドサーバ1に指令する。
【0031】
ユーザ端末5は、クラウドシステム100のユーザが使用する端末である。ユーザ端末5は、例えば、パーソナルコンピュータ、タブレット端末、携帯端末などである。ユーザは、ユーザ端末5に表示されたユーザインタフェースUIを用いて、クラウドサーバ1にて実行するアプリケーションAPと、アプリケーションAPを実行させる第2仮想サーバ12を指定する操作を行う。また、ユーザ端末5は、インタフェース提供サーバ3を介さず、クラウドサーバ1と通信可能となっている。
【0032】
クラウドシステム100は、ライセンスサーバ7をさらに備える。ライセンスサーバ7は、クラウドサーバ1においてアプリケーションAPを実行するための複数のライセンスを管理する。アプリケーションAPをクラウドサーバ1にて実行するには、複数のライセンスのうち1つが必要となる。クラウドサーバ1にアプリケーションAPの実行を指令するときに、インタフェース提供サーバ3は、ライセンスサーバ7が管理する複数のライセンスに使用されていないライセンス(空きライセンス)が存在するときに、クラウドサーバ1にアプリケーションAPの実行を指令する。クラウドサーバ1は、空きライセンスを用いて、アプリケーションAPを実行する。
【0033】
(2)クラウドサーバ
以下、クラウドサーバ1を説明する。クラウドサーバ1は、所定のアプリケーションAPを実行するサービスをユーザに提供する。クラウドサーバ1は、内部に仮想サーバを生成し起動し、当該仮想サーバにアプリケーションAPを実行させる。具体的には、クラウドサーバ1では、アプリケーションAPの実行のために、第1仮想サーバ11と、第2仮想サーバ12と、を生成し起動可能となっている。また、クラウドサーバ1は、仮想ストレージ13を、これら仮想サーバのための記憶装置として生成している。
【0034】
仮想ストレージ13は、クラウドサーバ1に備わる記憶装置の記録領域の一部を割り当てられることで生成される。仮想ストレージ13は、アプリケーションAPと、実行用データD1と、実行結果D2と、を記憶する。なお、仮想ストレージ13は、アプリケーションAPと、それに対応する実行用データD1及び実行結果D2とを、複数記憶可能である。後述するように、いずれのアプリケーションAPを実行させるかは、ユーザにより選択可能となっている。
【0035】
アプリケーションAPは、仮想サーバにより実行されるプログラムである。実行用データD1は、アプリケーションAPを実行するためのデータである。アプリケーションAPが解析、シミュレーションを実行するものである場合、実行用データD1は、例えば、解析、シミュレーション対象のモデル、各種条件を設定する。実行結果D2は、アプリケーションAPを実行した結果である。アプリケーションAPが解析、シミュレーションを実行するものである場合、実行結果D2は、解析結果、シミュレーション結果である。
【0036】
第1仮想サーバ11は、アプリケーションAPを実行可能である仮想のコンピュータシステムである。
図2に示すように、第1仮想サーバ11は、仮想CPU11aと、仮想メモリ11bと、を有する。
図2は、第1仮想サーバ11の構成を示す図である。仮想CPU11aと仮想メモリ11bは、クラウドサーバ1が有するハードウェアリソース(CPU、記憶装置)を割り当てられることで生成される。具体的には、第1仮想サーバ11でアプリケーションAPを実行するときに、クラウドサーバ1のハードウェアリソースの一部が使用される。
【0037】
第1仮想サーバ11は、仮想ストレージ13と接続可能となっている。第1仮想サーバ11は、仮想ストレージ13に記憶されたアプリケーションAPを実行する。また、第1仮想サーバ11は、ユーザ端末5と通信可能となっている。
【0038】
第2仮想サーバ12は、アプリケーションAPを実行可能である仮想のコンピュータシステムである。
図3に示すように、第2仮想サーバ12は、仮想CPU12aと、仮想メモリ12bと、を有する。
図3は、第2仮想サーバ12の構成を示す図である。第2仮想サーバ12は、第1仮想サーバ11よりもハイスペックである。すなわち、第2仮想サーバ12の情報処理能力は、第1仮想サーバ11よりも高い。具体的には、仮想CPU12aは、例えば、第1仮想サーバ11の仮想CPU11aよりも多くのCPUコアを有し、仮想CPU11aよりも高いクロックで動作する。また、仮想メモリ12bは、第1仮想サーバ11の仮想メモリ11bよりも大きな容量を有する。仮想CPU12aと仮想メモリ12bは、クラウドサーバ1が有するハードウェアリソースを割り当てられることで生成される。具体的には、第2仮想サーバ12でアプリケーションAPを実行するときに、クラウドサーバ1のハードウェアリソースの一部が使用される。
【0039】
クラウドサーバ1では、スペックの異なる複数種類の第2仮想サーバ12を生成し起動可能である。後述するように、いずれの種類の第2仮想サーバ12を生成し起動させるかは、ユーザにより指定可能となっている。
【0040】
第2仮想サーバ12は、仮想ストレージ13と接続可能となっている。このように、仮想ストレージ13は、第1仮想サーバ11と第2仮想サーバ12とで共通となっている。これにより、例えば、第1仮想サーバ11を用いて作成した実行用データD1を用いて、第2仮想サーバ12がアプリケーションAPを実行できる。また、第2仮想サーバ12がアプリケーションAPを実行することで得られた実行結果D2を、第1仮想サーバ11を用いて閲覧可能である。
【0041】
クラウドサーバ1では、サービスサーバが起動されている。具体的には、クラウドサーバ1では、監視サーバ14と、ワークフローサーバ15と、イベント処理サーバ16と、がサービスサーバとして起動される。これらサービスサーバも、クラウドサーバ1のハードウェアリソースの一部を割り当てられ生成される。
【0042】
監視サーバ14は、第2仮想サーバ12の仮想CPU12aの使用率を監視する。監視サーバ14は、仮想CPU12aの使用率がアプリケーションAPの実行中における使用率よりも低下したときに、第2仮想サーバ12でのアプリケーションAPの実行が完了したと判断する。これにより、第2仮想サーバ12によるアプリケーションAPの実行の終了を適切に判断できる。また、例えば、第2仮想サーバ12で複数のアプリケーションAPが実行されている場合には、仮想CPU12aの利用率により複数のアプリケーションAPの終了を統一的に判断できるので、実行中のアプリケーションAP毎の終了判定が不要になる。
【0043】
ワークフローサーバ15は、インタフェース提供サーバ3からの指令に従って、イベント処理サーバ16へ各種処理を実行するよう指令する。イベント処理サーバ16は、ワークフローサーバ15などからの指令に従って、仮想サーバの生成と起動、仮想サーバを用いたアプリケーションAPの実行、などの処理を実行する。
【0044】
クラウドサーバ1において、第1仮想サーバ11、第2仮想サーバ12、監視サーバ14、ワークフローサーバ15、イベント処理サーバ16は、それぞれ、個別の識別アドレス(例えば、IPアドレス)を有している。インタフェース提供サーバ3、ユーザ端末5、ライセンスサーバ7は、この識別アドレスを指定することで、これらサーバにアクセスできる。
【0045】
(3)インタフェース提供サーバ
以下、
図4を用いて、インタフェース提供サーバ3の構成を説明する。
図4は、インタフェース提供サーバ3の構成を示す図である。インタフェース提供サーバ3は、CPU31と、RAM33と、ネットワークインタフェース35と、記憶装置37と、を備えるコンピュータシステムである。CPU31は、記憶装置37に記憶されたプログラムPGを実行して、インタフェース提供サーバ3における各種情報処理を実行する。RAM33は、データ等を一時的に記憶する。
【0046】
ネットワークインタフェース35は、インターネットなどのネットワークを介して、各種装置等と通信するインタフェースである。ネットワークインタフェース35には、ネットワークを介して、クラウドサーバ1と、ユーザ端末5とが接続されている。また、ネットワークインタフェース35には、ライセンスサーバ7が接続されている。ネットワークインタフェース35は、例えば、イーサネット(登録商標)カードなどの通信回路である。
【0047】
記憶装置37は、HDD、SSDなどのデータを記憶する装置である。記憶装置37は、プログラムPGと、ユーザインタフェースUIと、を記憶する。ユーザインタフェースUIは、クラウドサーバ1で実行するアプリケーションAP(実行対象アプリケーションAPと呼ぶ)と、実行対象アプリケーションAPの実行のために使用する第2仮想サーバ12と、を指定し、アプリケーションAPの実行を指令するためのGUI(Graphical User Interface)である。
【0048】
ユーザインタフェースUIは、
図5に示すように、実行対象アプリケーション指定インタフェースIF1と、第2仮想サーバ指定インタフェースIF2と、実行ボタンB1と、を主に有する。このユーザインタフェースUIは、例えば、HTML(HyperText Markup Language)で記述されている。
図5は、ユーザインタフェースUIの一例を示す図である。
【0049】
実行対象アプリケーション指定インタフェースIF1は、クラウドサーバ1(仮想サーバ)で実行する実行対象アプリケーションAPを指定するためのインタフェースである。実行対象アプリケーション指定インタフェースIF1は、例えば、クラウドサーバ1で実行可能なアプリケーションAPをリスト表示し、当該リストから実行対象アプリケーションAPを選択可能なリストボックスである。
【0050】
第2仮想サーバ指定インタフェースIF2は、実行対象アプリケーションAPを実行させる第2仮想サーバ12を指定するためのインタフェースである。第2仮想サーバ指定インタフェースIF2は、例えば、指定したい第2仮想サーバ12の識別情報(例えば、第2仮想サーバ12の名称)を入力するテキストボックスである。その他、第2仮想サーバ指定インタフェースIF2は、例えば、クラウドサーバ1で起動可能な第2仮想サーバ12の識別情報をリスト表示し、当該リストから所望の第2仮想サーバ12の識別情報を選択可能なリストボックスであってもよい。
【0051】
実行ボタンB1は、実行対象アプリケーション指定インタフェースIF1で指定した実行対象アプリケーションAPを、第2仮想サーバ指定インタフェースIF2で指定した第2仮想サーバ12に実行させることを指令するボタンである。ユーザ端末5で実行ボタンB1を押す操作がなされると、インタフェース提供サーバ3は、実行対象アプリケーションAPを第2仮想サーバ12に実行させる指令を、クラウドサーバ1に送信する。
【0052】
また、ユーザインタフェースUIは、仮想ストレージ容量指定インタフェースIF3と、第1仮想サーバ指定インタフェースIF4と、実行時刻指定インタフェースIF5と、実行タイミング指定インタフェースIF6と、キャンセルボタンB2と、をさらに有する。
【0053】
仮想ストレージ容量指定インタフェースIF3は、仮想ストレージ13に割り当てる記録容量を指定するためのインタフェースである。仮想ストレージ容量指定インタフェースIF3は、例えば、割り当てる容量を入力するテキストボックスである。
【0054】
第1仮想サーバ指定インタフェースIF4は、クラウドサーバ1で起動する第1仮想サーバ11を指定するためのインタフェースである。第1仮想サーバ11は、実行対象アプリケーションAPを実行するための実行用データD1を作成するため、実行対象アプリケーションAPの実行結果D2を閲覧するために起動される。
【0055】
第1仮想サーバ指定インタフェースIF4は、例えば、指定したい第1仮想サーバ11の識別情報(例えば、第1仮想サーバ11の名称)を入力するテキストボックスである。その他、第1仮想サーバ指定インタフェースIF4は、例えば、クラウドサーバ1で起動可能な第1仮想サーバ11の識別情報をリスト表示し、当該リストから所望の第1仮想サーバ11の識別情報を選択可能なリストボックスであってもよい。
【0056】
実行時刻指定インタフェースIF5は、実行対象アプリケーションAPを実行する時刻を指定するためのインタフェースである。実行時刻指定インタフェースIF5は、例えば、実行対象アプリケーションAPを実行する時刻を入力するテキストボックスである。実行タイミング指定インタフェースIF6は、実行対象アプリケーションAPを実行するタイミングを指定するラジオボタンである。実行タイミング指定インタフェースIF6において「オフ(予約)」をON状態とすると、実行時刻指定インタフェースIF5で指定した時刻に実行対象アプリケーションAPを実行させる。一方、実行タイミング指定インタフェースIF6において「オン(即時実行)」をON状態とすると、実行ボタンB1が押された直後に実行対象アプリケーションAPが実行される。
【0057】
上記の実行時刻指定インタフェースIF5と、実行タイミング指定インタフェースIF6とにより、実行対象アプリケーションAPを実行するタイミングを適宜のタイミングとできる。
【0058】
キャンセルボタンB2は、クラウドサーバ1によるアプリケーションAPの実行のキャンセルをするためのボタンである。
【0059】
(4)アプリケーションの実行動作
以下、
図6~
図9を用いて、クラウドシステム100におけるアプリケーションAP(実行対象アプリケーションAP)の実行動作を説明する。
図6は、アプリケーションAPの実行動作におけるクラウドシステム100の動作を示すフロー図である。
図7は、アプリケーションAPの実行動作におけるユーザ端末5の動作を示すフローチャートである。
図8は、アプリケーションAPの実行動作におけるインタフェース提供サーバ3の動作を示すフローチャートである。
図9は、アプリケーションAPの実行動作におけるクラウドサーバ1の動作を示すフローチャートである。
【0060】
なお、
図6においては、第1仮想サーバ11が起動されている期間をドットのハッチングが付された長方形で示し、第2仮想サーバ12が生成されている期間を斜線のハッチングが付された長方形で示している。
【0061】
以下の説明では、第1仮想サーバ11は、クラウドサーバ1内に予め生成されているとする。また、初期段階では、仮想ストレージ13は第1仮想サーバ11と接続されているとする。
【0062】
まず、実行対象アプリケーションAPの実行に使用される実行用データD1が作成される。詳細には、以下のようにして実行用データD1が作成される。最初に、ユーザは、ユーザ端末5を用いて、第1仮想サーバ11の起動を、クラウドサーバ1のイベント処理サーバ16に指令する(
図6のステップS1、
図7のステップS101)。この指令を受信したイベント処理サーバ16は、第1仮想サーバ11の起動する(
図6のステップS2、
図9のステップS301)。
【0063】
第1仮想サーバ11を起動後、ユーザは、ユーザ端末5を用いて第1仮想サーバ11にアクセスし、ユーザ端末5を操作して第1仮想サーバ11上で実行用データD1を作成する(
図6のステップS3、
図7のステップS102、
図9のステップS302)。実行用データD1を作成後、ユーザは、ユーザ端末5を操作して、作成した実行用データD1を仮想ストレージ13に記憶するよう第1仮想サーバ11に指令する(
図6のステップS4)。この指令後、第1仮想サーバ11は、実行用データD1を仮想ストレージ13に記憶する(
図6のステップS5)。実行用データD1の作成は、例えば、第1仮想サーバ11において実行対象アプリケーションAPを実行し、実行対象アプリケーションAPを用いて行ってもよい。あるいは、実行用データD1を作成可能な他のアプリケーションAPによって、実行用データD1を作成してもよい。
【0064】
上記のように、実行用データD1の作成は、例えばユーザにより行われ、仮想サーバにおいて複雑で大量の情報処理を必要としない。従って、実行用データD1をスペックが低い第1仮想サーバ11により作成しても、第1仮想サーバ11の処理速度は低下しない。また、実行用データD1の作成のために第2仮想サーバ12を起動する必要がなくなる。このようにして、クラウドシステム100においては、最適なアプリケーションの実行速度と最適なコストでのクラウドサーバの利用を実現できる。
【0065】
なお、クラウドシステム100の構築後など、クラウドサーバ1にアプリケーションAP(実行対象アプリケーションAP)がインストールされていない場合には、ユーザは、ユーザ端末5を用いて、仮想ストレージ13にアプリケーションAPをインストールする作業を行ってもよい。
【0066】
実行用データD1を作成し、仮想ストレージ13に記憶後、クラウドサーバ1に、実行用データD1を用いて実行対象アプリケーションAPを実行させる。詳細には、以下のようにして実行対象アプリケーションAPが実行される。
【0067】
まず、実行対象アプリケーションAPと、第2仮想サーバ12と、を指定するために、ユーザが、ユーザ端末5を用いてインタフェース提供サーバ3にアクセスする(
図6のステップS6)。ユーザ端末5からアクセスがあった場合(
図8のステップS201で「Yes」)、インタフェース提供サーバ3は、ユーザ端末5に、記憶装置37に記憶されたユーザインタフェースUIを送信する(
図6のステップS7、
図8のステップS202)。
【0068】
インタフェース提供サーバ3からユーザインタフェースUIを受信すると、ユーザ端末5は、受信したユーザインタフェースUIを、ユーザ端末5の表示装置に表示させる(
図7のステップS103)。
【0069】
ユーザは、ユーザ端末5を操作して、ユーザ端末5に表示されたユーザインタフェースUIの実行対象アプリケーション指定インタフェースIF1において、実行対象アプリケーションAPを指定する。また、第2仮想サーバ指定インタフェースIF2において、実行対象アプリケーションAPを実行させる第2仮想サーバ12を指定する(
図7のステップS104)。インタフェース提供サーバ3は、ユーザによるユーザ端末5の操作を受け付けて、指定された実行対象アプリケーションと第2仮想サーバ12とを特定する(
図6のステップS8、
図8のステップS203)。
【0070】
実行対象アプリケーションと第2仮想サーバ12とを指定後、ユーザは、ユーザ端末5を用いて、ユーザインタフェースUIの実行ボタンB1を押す操作をする(
図6のステップS9、
図7のステップS105)。
【0071】
実行ボタンB1が押されたことを検知すると(
図8のステップS204で「Yes」)、インタフェース提供サーバ3は、ライセンスサーバ7にアクセスし、ライセンスサーバ7で管理されている、実行対象アプリケーションを実行するための複数のライセンスの使用状況を確認する(
図8のステップS205)。このように、クラウドシステム100では、第2仮想サーバ12の起動前に空きライセンスの存在を確認しているので、空きライセンス不足による実行対象アプリケーションAP実行時の異常を、第2仮想サーバ12の起動前に検出できる。
【0072】
複数のライセンスの使用状況を確認した結果、使用されていない空きライセンスがないと判断された場合(ステップS205で「No」)、そのまま待機する。すなわち、インタフェース提供サーバ3は、空きライセンスが存在しない場合、第2仮想サーバ12による実行対象アプリケーションAPの実行を指令しない。これにより、空きライセンスが存在しない場合には、第2仮想サーバ12の起動と実行対象アプリケーションAPの実行が行われないので、空きライセンスが存在するようになるまで第2仮想サーバが起動されたままとなることを防止できる。この結果、最適なコストでのクラウドサーバの利用を実現できる。
【0073】
一方、空きライセンスがあると判断された場合(ステップS205で「Yes」)、インタフェース提供サーバ3は、この空きライセンスを用いて、実行対象アプリケーションAPを実行すると決定する。このように、複数のライセンスの中に空きライセンスが存在する場合に実行対象アプリケーションを実行すると決定すること、すなわち、空きライセンスが存在して初めて第2仮想サーバ12の起動と実行対象アプリケーションAPの実行が行われることで、空きライセンスが存在するようになるまで第2仮想サーバ12が起動されたままとなることを防止できる。その結果、最適なコストでのクラウドサーバ1の利用を実現できる。
【0074】
実行対象アプリケーションAPを実行すると決定した場合、インタフェース提供サーバ3は、クラウドサーバ1のワークフローサーバ15に、実行対象アプリケーションAPの実行指令を送信する(
図6のステップS10、
図8のステップS206)。この実行指令には、ユーザインタフェースUIを用いて指定した実行対象アプリケーションAPと第2仮想サーバ12に関する情報(例えば、実行対象アプリケーションAPの名称、第2仮想サーバ12の識別情報)が含まれる。
【0075】
上記の実行指令を受信した場合(
図9のステップS303で「Yes」)、ワークフローサーバ15は、イベント処理サーバ16に、アプリケーションAPを実行する対象の仮想サーバを第1仮想サーバ11から第2仮想サーバ12に切り替える指令(切替指令)を送信する(
図6のステップS11)。この切替指令には、ユーザインタフェースUIで指定された第2仮想サーバ12に関する情報(識別情報、指定された第2仮想サーバ12のスペックに関する情報)が含まれる。
【0076】
切替指令を受信したイベント処理サーバ16は、第1仮想サーバ11に、第1仮想サーバ11から仮想ストレージ13を切り離す指令(ストレージ切り離し指令)を送信する(
図6のステップS12)。この指令を受信した第1仮想サーバ11は、接続中の仮想ストレージ13を切り離す(デタッチする)(
図9のステップS304)。
【0077】
その後、イベント処理サーバ16は、第2仮想サーバ12の生成を指令する(
図6のステップS13)。これにより、クラウドサーバ1の内部で、ユーザインタフェースUIで指定された第2仮想サーバ12のスペック(仮想CPU12aのコア数、動作クロック、仮想メモリ12bの容量など)に応じて、クラウドサーバ1のリソースの一部を割り当てることで、所望の第2仮想サーバ12が生成される(
図9のステップS305)。
【0078】
第2仮想サーバ12を生成後、イベント処理サーバ16は、第2仮想サーバ12に、第2仮想サーバ12と仮想ストレージ13とを接続する指令(ストレージ接続指令)を送信する(
図6のステップS14)。この指令を受信した第2仮想サーバ12は、第2仮想サーバ12と仮想ストレージ13とを接続する(アタッチする)(
図9のステップS306)。これにより、第2仮想サーバ12が仮想ストレージ13にアクセス可能となる。このように、クラウドサーバ1において、仮想ストレージ13に第1仮想サーバ11からアクセス可能な状態と、仮想ストレージ13に第2仮想サーバ12からアクセス可能な状態とを切り替え可能とすることで、クラウドサーバ1に設けるストレージを節約できる。
【0079】
仮想ストレージ13を第2仮想サーバ12に接続後、ワークフローサーバ15は、実行対象アプリケーションAPを実行するよう、イベント処理サーバ16に指令する(
図6のステップS15)。イベント処理サーバ16は、生成された第2仮想サーバ12を起動させ、当該第2仮想サーバに実行対象アプリケーションAPを実行させる(
図6のステップS16)。第2仮想サーバ12は、ライセンスサーバ7に存在する空きライセンスを使用し、仮想ストレージ13に記憶された実行用データD1を用いて、実行対象アプリケーションAPを実行する(
図9のステップS307)。
【0080】
また、ワークフローサーバ15は、監視サーバ14に、第2仮想サーバ12の仮想CPU12aの使用率を監視させる(
図6のステップS17、
図9のステップS308)。監視サーバ14は、実行対象アプリケーションAPを実行中に、所定の周期にて、第2仮想サーバ12の仮想CPU12aの使用率を監視する。
【0081】
実行対象アプリケーションを実行中、第2仮想サーバ12は、実行対象アプリケーションを実行することで得られた実行結果D2を、仮想ストレージ13に記憶する(
図6のステップS18)。これにより、実行対象アプリケーションの実行後に、仮想ストレージ13を第1仮想サーバ11に接続したときに、第1仮想サーバ11により実行結果D2を閲覧可能となる。
【0082】
現在の仮想CPU12aの使用率が、これまでの(すなわち、実行対象アプリケーションAPを実行中の)使用率から急激に低下したことを検知すると(
図6のステップS19、
図9のステップS308で「Yes」)、監視サーバ14は、ワークフローサーバ15に、第2仮想サーバ12において実行対象アプリケーションの実行が完了したことを通知する(
図6のステップS20)。
【0083】
このように、第2仮想サーバ12による仮想CPU12aの使用率に基づいて、第2仮想サーバ12による実行対象アプリケーションAPの実行が完了したか否かを判断することにより、第2仮想サーバ12による実行対象アプリケーションAPの実行の終了を適切に判断できる。また、例えば、第2仮想サーバ12で複数のアプリケーションAPが実行されている場合には、仮想CPU12aの利用率により複数のアプリケーションAPの終了を統一的に判断できるので、実行中のアプリケーションAP毎の終了判定が不要になる。
【0084】
上記の通知を受けたワークフローサーバ15は、イベント処理サーバ16に対して、第2仮想サーバ12の停止を指令する(
図6のステップS21)。イベント処理サーバ16は、第2仮想サーバ12に、第2仮想サーバ12から仮想ストレージ13を切り離す指令(ストレージ切り離し指令)を送信する(
図6のステップS22)。この指令を受信した第2仮想サーバ12は、接続中の仮想ストレージ13を切り離す(デタッチする)(
図9のステップS309)。
【0085】
仮想ストレージ13を第2仮想サーバ12から切り離した後、イベント処理サーバ16は、第2仮想サーバ12を停止し、第2仮想サーバ12をクラウドサーバ1内から削除するよう指令する(
図6のステップS23)。これにより、クラウドサーバ1内で第2仮想サーバ12が停止され、クラウドサーバ1内から削除される(
図9のステップS310)。
【0086】
第2仮想サーバ12が停止されると、クラウドサーバ1のワークフローサーバ15が、インタフェース提供サーバ3に、実行対象アプリケーションAPの実行が終了した旨を通知する(
図6のステップS24、
図8のステップS207、
図9のステップS311)。
【0087】
ユーザは、ユーザ端末5を用いてインタフェース提供サーバ3にアクセスすることで、実行対象アプリケーションAPの実行が終了したか否かを確認できる(
図6のステップS25、
図7のステップS106)。例えば、ユーザインタフェースUIに、実行対象アプリケーションAPの実行が終了した旨を表示することにより、ユーザは、実行対象アプリケーションAPの終了を確認できる。
【0088】
第2仮想サーバ12を停止後、イベント処理サーバ16は、第1仮想サーバ11に、第1仮想サーバ11と仮想ストレージ13とを接続する指令(ストレージ接続指令)を送信する(
図6のステップS26)。この指令を受信した第1仮想サーバ11は、第1仮想サーバ11と仮想ストレージ13とを接続する(アタッチする)(
図9のステップS312)。これにより、第1仮想サーバ11が仮想ストレージ13にアクセス可能となる。
【0089】
ユーザ端末5において実行対象アプリケーションAPの終了を確認後(
図7のステップS106で「Yes」)、ユーザは、ユーザ端末5を用いて第1仮想サーバ11にアクセスし、仮想ストレージ13に記憶された実行結果D2を第1仮想サーバ11に表示させる。具体的には、ユーザが、ユーザ端末5を用いて、第1仮想サーバ11に実行結果D2の表示させる操作を行うと(
図6のステップS27)、第1仮想サーバ11が仮想ストレージ13から実行結果D2を取得し表示させる(
図6のステップS28、
図9のステップS313)。これにより、第1仮想サーバ11にアクセスしているユーザ端末5においても実行結果D2が表示され、ユーザが実行結果D2を閲覧可能となる(
図7のステップS107)。実行結果D2は、例えば、第1仮想サーバ11において実行対象アプリケーションAPを実行し、実行対象アプリケーションAP上で表示させてもよい。あるいは、実行結果D2を表示可能な他のアプリケーションAPによって表示させてもよい。
【0090】
実行結果D2を閲覧後、ユーザは、ユーザ端末5を用いて、第1仮想サーバ11の停止を、クラウドサーバ1のイベント処理サーバ16に指令する(
図6のステップS29、
図7のステップS108)。この指令を受信したイベント処理サーバ16は、第1仮想サーバ11を停止する(
図6のステップS30、
図9のステップS314)。
【0091】
実行結果D2の閲覧(表示)は、仮想サーバにおいて複雑で大量の情報処理を必要としない。従って、第2仮想サーバ12に、実行対象アプリケーションAPを実行することにより得られた実行結果D2を仮想ストレージ13に記憶させ、その後、第1仮想サーバ11と仮想ストレージ13とを接続して、第1仮想サーバ11を用いて実行結果D2を閲覧可能としても、第1仮想サーバ11の処理速度は低下しない。また、実行結果D2の閲覧のために第2仮想サーバ12を起動しておく必要がなくなる。このようにして、クラウドシステム100においては、最適なアプリケーションの実行速度と最適なコストでのクラウドサーバの利用を実現できる。
【0092】
上記のアプリケーションAPの実行動作では、実行対象アプリケーションAPを仮想サーバに実行させる指令に応じて、クラウドサーバ1においてハイスペックである第2仮想サーバ12が生成、起動され、この第2仮想サーバ12に実行対象アプリケーションAPを実行させ、実行対象アプリケーションAPの実行が完了したら第2仮想サーバ12を停止している。
図6に示すように、第2仮想サーバ12は、実行対象アプリケーションAPの実行時のみに起動される。また、実行対象アプリケーションAPをハイスペックな第2仮想サーバ12で実行することで、実行対象アプリケーションAPの実行時間が短くなる。
【0093】
このように、アプリケーションAPを処理速度重視のハイスペックな第2仮想サーバ12により実行してアプリケーションAPを高速かつ短時間に実行し、それ以外の処理を実行するために第2仮想サーバ12を不必要に動作させないことで、最適なアプリケーションの実行速度と最適なコストでのクラウドサーバの利用を実現できる。例えば、クラウドサーバ1によるサービスの提供に従量制のサービス利用料が課される場合には、第2仮想サーバ12によりアプリケーションAPを高速かつ短時間に実行することで、アプリケーションAPの実行結果D2を高速に得られるとともに、仮想サーバに関するサービス使用料を安くできる。
【0094】
また、上記のアプリケーションAPの実行動作では、インタフェース提供サーバ3から提供されたユーザインタフェースUIを用いて、クラウドサーバ1で起動する対象の第2仮想サーバ12と、この第2仮想サーバ12で実行する実行対象アプリケーションAPを指定可能となっている。これにより、ユーザは、上記インタフェースを用いて所望の第2仮想サーバ12を指定するだけで、ユーザが所望の実行対象アプリケーションAPをこの第2仮想サーバ12に実行させることができる。この結果、クラウドサーバ1に関する高度な知識を有しないユーザであっても、仮想サーバを用いたサービスを利用できる。
【0095】
上記のクラウドシステム100では、第2仮想サーバ12が実行対象アプリケーションAPを実行している間も、第1仮想サーバ11は起動されたままとなっている。これにより、実行対象アプリケーションAPを実行しつつ、第1仮想サーバ11を用いて他の作業(例えば、他のアプリケーションAPのための実行用データD1の生成、以前のアプリケーションAPの実行により得られた実行結果D2の閲覧など)を実行できる。
【0096】
以上、本開示の一実施形態について説明したが、本開示は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。
(A)
図6のフロー図、
図7~
図9のフローチャートにおける各ステップの処理内容、及び/又は、処理順は、発明の要旨を逸脱しない範囲で変更できる。
【0097】
(B)上記の実施形態においては、ライセンスサーバ7は、クラウドサーバ1とは個別のサーバであった。しかし、これに限られず、
図10に示すように、ライセンスサーバ7をクラウドサーバ1内に生成して起動させておいてもよい。
図10は、クラウドシステム100の他の例を示す図である。
【0098】
(C)ユーザインタフェースUIは、クラウドシステム100におけるアプリケーションAPの実行履歴を表示してもよい。この実行履歴は、例えば、実行したアプリケーションAPに関する情報と、仮想ストレージ13の容量に関する情報と、アプリケーションAPの実行時に用いた第1仮想サーバ11及び第2仮想サーバ12に関する情報と、アプリケーションAPの実行(予定)時刻と、アプリケーションAPを実行したか否かに関する情報と、を含んでいてもよい。さらに、この実行履歴を選択して、同じアプリケーションAPの実行を再度実行可能となっていてもよい。
【0099】
(D)第1仮想サーバ11、第2仮想サーバ12のスペック(仮想CPU11a、12aのコア数、クロック数、仮想メモリ11b、12bの容量など)を、GUIを用いて設定可能であってもよい。また、作成した第1仮想サーバ11、第2仮想サーバ12をリスト表示可能となっていてもよい。
【0100】
(5)実施形態の特徴
上記実施形態は、以下のようにも記載できる。
(1)クラウドシステムは、クラウドサーバと、インタフェース提供サーバと、端末と、を備える。クラウドサーバは、第1仮想サーバと第2仮想サーバとを内部で起動可能である。第1仮想サーバは、所定のアプリケーションを実行可能である。第2仮想サーバは、上記アプリケーションを実行可能であり、第1仮想サーバよりもハイスペックである。インタフェース提供サーバは、クラウドサーバで起動する第2仮想サーバと、実行対象アプリケーションと、を指定するためのユーザインタフェースを提供する。実行対象アプリケーションは、第2仮想サーバに実行させるアプリケーションである。
【0101】
上記のクラウドシステムにおいて、まず、インタフェース提供サーバが、上記のユーザインタフェースをユーザ端末に提供する。次に、インタフェース提供サーバが、ユーザ端末においてユーザインタフェースを用いて指定した第2仮想サーバに、ユーザインタフェースを用いて指定した実行対象アプリケーションを実行させるよう、クラウドサーバに指令する。クラウドサーバが、インタフェース提供サーバからの指令に応じて、第2仮想サーバを起動し、第2仮想サーバに実行対象アプリケーションを実行させ、指定した実行対象アプリケーションの実行が完了したら、指定した第2仮想サーバを停止する。
【0102】
このクラウドシステムでは、所定のアプリケーションを仮想サーバに実行させる指令に応じて、クラウドサーバにおいてハイスペックである第2仮想サーバが起動され、この第2仮想サーバにアプリケーションを実行させ、アプリケーションの実行が完了したら第2仮想サーバを停止している。このように、クラウドシステムでは、第2仮想サーバは、アプリケーションの実行時のみに起動される。また、アプリケーションをハイスペックな第2仮想サーバで実行することで、アプリケーションの実行時間が短くなる。
【0103】
このように、アプリケーションを処理速度重視のハイスペックな第2仮想サーバにより実行してアプリケーションを高速かつ短時間に実行し、それ以外の処理を実行するために第2仮想サーバを不必要に動作させないことで、最適なアプリケーションの実行速度と最適なコストでのクラウドサーバの利用を実現できる。
【0104】
また、上記のクラウドシステムでは、インタフェース提供サーバから提供されたユーザインタフェースを用いて、クラウドサーバで起動する対象の第2仮想サーバと、この第2仮想サーバで実行する実行対象アプリケーションを指定可能となっている。これにより、ユーザは、上記インタフェースを用いて所望の第2仮想サーバを指定するだけで、ユーザが所望のアプリケーションをこの第2仮想サーバに実行させることができる。この結果、クラウドサーバに関する高度な知識を有しないユーザであっても、仮想サーバを用いたサービスを利用できる。
【0105】
(2)上記(1)のクラウドシステムにおいて、クラウドサーバは、第1仮想サーバを起動し、第2仮想サーバが実行対象アプリケーションを実行するために用いる実行用データを第1仮想サーバに作成させてもよい。
【0106】
このように、実行対象アプリケーションが実行用データを用いる場合において、高速な処理を必要としない実行用データの生成をスペックが低い第1仮想サーバにより行うことで、実行用データの生成に伴う処理速度の低下を抑制しつつ、実行用データの作成のために第2仮想サーバを起動する必要がなくなる。この結果、最適なアプリケーションの実行速度と最適なコストでのクラウドサーバの利用を実現できる。
【0107】
(3)上記(2)のクラウドシステムにおいて、クラウドサーバは、第1仮想サーバと第2仮想サーバとによりアクセス可能な仮想ストレージを有してもよい。この場合、クラウドサーバは、第1仮想サーバと仮想ストレージとを接続し、第1仮想サーバに実行用データを仮想ストレージに記憶させ、その後、第2仮想サーバと仮想ストレージとを接続し、第2仮想サーバに、仮想ストレージに記憶させた実行用データを用いて実行対象アプリケーションを実行させてもよい。これにより、クラウドサーバに設けるストレージを節約できる。また、ストレージ間での実行用データの移動が不要となるので、実行用データの転送のために必要な時間を削減できる。
【0108】
(4)上記(1)~(3)のいずれかのクラウドシステムにおいて、クラウドサーバは、第1仮想サーバと第2仮想サーバとによりアクセス可能な仮想ストレージを有してもよい。この場合、クラウドサーバは、第2仮想サーバに、実行対象アプリケーションを実行することにより得られた実行結果を仮想ストレージに記憶させ、その後、第1仮想サーバと仮想ストレージとを接続して、第1仮想サーバを用いて実行結果を閲覧可能としてもよい。これにより、実行結果の閲覧に伴う処理速度の低下を抑制しつつ、実行結果の閲覧のために第2仮想サーバを起動しておく必要がなくなる。この結果、最適なアプリケーションの実行速度と最適なコストでのクラウドサーバの利用を実現できる。
【0109】
(5)上記(1)~(4)のいずれかのクラウドシステムは、実行対象アプリケーションを実行するための複数のライセンスを管理するライセンスサーバをさらに備えてもよい。この場合、インタフェース提供サーバは、ライセンスサーバで管理されている複数のライセンスの使用状況を確認し、使用されていないライセンスが存在する場合に、第2仮想サーバにより実行対象アプリケーションを実行するようクラウドサーバに指令してもよい。これにより、空きライセンス不足による実行対象アプリケーション実行時の異常を第2仮想サーバの起動前に検出できる。この結果、空きライセンスが存在するようになるまで第2仮想サーバが起動されたままとなることを防止できるので、最適なコストでのクラウドサーバの利用を実現できる。
【0110】
(6)上記(5)のクラウドシステムにおいて、インタフェース提供サーバは、使用されていないライセンスが存在しない場合、第2仮想サーバによる実行対象アプリケーションの実行を指令しなくてもよい。これにより、使用されていないライセンスが存在しない場合には、第2仮想サーバの起動と実行対象アプリケーションの実行が行われないので、使用されていないライセンスが存在するようになるまで第2仮想サーバが起動されたままとなることを防止できる。この結果、最適なコストでのクラウドサーバの利用を実現できる。
【0111】
(7)上記(1)~(6)のいずれかのクラウドシステムにおいて、クラウドサーバは、第2仮想サーバによるCPUの使用率に基づいて、第2仮想サーバによる実行対象アプリケーションの実行が完了したか否かを判断してもよい。これにより、第2仮想サーバによる実行対象アプリケーションの実行の終了を適切に判断できる。また、例えば、第2仮想サーバで複数のアプリケーションが実行されている場合には、CPUの利用率により複数のアプリケーションの終了を統一的に判断できるので、実行中のアプリケーション毎の終了判定が不要になる。
【0112】
(8)アプリケーションの実行方法は、クラウドサーバによる所定のアプリケーションの実行方法である。クラウドサーバは、アプリケーションを実行可能な第1仮想サーバと、アプリケーションを実行可能であり、第1仮想サーバよりもハイスペックである第2仮想サーバと、を起動可能である。アプリケーションの実行方法は、以下のステップを備える。
◎クラウドサーバで起動する第2仮想サーバと、第2仮想サーバに実行させる実行対象アプリケーションと、を指定するためのユーザインタフェースを提供するステップ。
◎ユーザインタフェースを用いて クラウドサーバで起動する第2仮想サーバと、当該第2仮想サーバに実行させるアプリケーションを実行対象アプリケーションとして指定するステップ。
◎ユーザインタフェースを用いて指定された第2仮想サーバに実行対象アプリケーションを実行するようクラウドサーバに指令するステップ。
◎クラウドサーバが、第2仮想サーバを起動し、第2仮想サーバに実行対象アプリケーションを実行させ、実行対象アプリケーションの実行が完了したら、第2仮想サーバを停止するステップ。
【0113】
このクラウドサーバによるアプリケーションの実行方法では、所定のアプリケーションを仮想サーバに実行させる指令に応じて、クラウドサーバにおいてハイスペックである第2仮想サーバが起動され、この第2仮想サーバにアプリケーションを実行させ、アプリケーションの実行が完了したら第2仮想サーバを停止している。このように、第2仮想サーバは、アプリケーションの実行時のみに起動される。また、アプリケーションをハイスペックな第2仮想サーバで実行することで、アプリケーションの実行時間が短くなる。
【0114】
このように、アプリケーションを処理速度重視のハイスペックな第2仮想サーバにより実行してアプリケーションを高速かつ短時間に実行し、それ以外の処理を実行するために第2仮想サーバを不必要に動作させないことで、最適なアプリケーションの実行速度と最適なコストでのクラウドサーバの利用を実現できる。
【0115】
また、上記のアプリケーションの実行方法では、インタフェース提供サーバから提供されたユーザインタフェースを用いて、クラウドサーバで起動する対象の第2仮想サーバと、この第2仮想サーバで実行する実行対象アプリケーションを指定可能となっている。これにより、ユーザは、上記インタフェースを用いて所望の第2仮想サーバを指定するだけで、ユーザが所望のアプリケーションをこの第2仮想サーバに実行させることができる。この結果、クラウドサーバに関する高度な知識を有しないユーザであっても、仮想サーバを用いたサービスを利用できる。
【産業上の利用可能性】
【0116】
本開示は、仮想サーバを生成し起動可能なクラウドサーバにおいて、仮想サーバに所定のアプリケーションを実行させるシステムに広く適用できる。
【符号の説明】
【0117】
100 :クラウドシステム
1 :クラウドサーバ
11 :第1仮想サーバ
11a :仮想CPU
11b :仮想メモリ
12 :第2仮想サーバ
12a :仮想CPU
12b :仮想メモリ
13 :仮想ストレージ
D1 :実行用データ
D2 :実行結果
14 :監視サーバ
15 :ワークフローサーバ
16 :イベント処理サーバ
3 :インタフェース提供サーバ
31 :CPU
33 :RAM
35 :ネットワークインタフェース
37 :記憶装置
PG :プログラム
UI :ユーザインタフェース
IF1 :実行対象アプリケーション指定インタフェース
IF2 :第2仮想サーバ指定インタフェース
IF3 :仮想ストレージ容量指定インタフェース
IF4 :第1仮想サーバ指定インタフェース
IF5 :実行時刻指定インタフェース
IF6 :実行タイミング指定インタフェース
B1 :実行ボタン
B2 :キャンセルボタン
5 :ユーザ端末
7 :ライセンスサーバ
AP :アプリケーション、実行対象アプリケーション