(57)【要約】【課題】  計算機の処理能力を提供し利用者のプログラムを実行するサービスにおいて、小さな設備投資で、処理性能を定量的に保証すること。【解決手段】  本発明は、計算機等のデータ処理能力を調達可能であることを前提に、利用者の計算機プログラムを受け入れ、実行するサービスを提供方法に関する。より詳細には、本発明は、プログラム実行サービスの利用者が、プログラム実行のために必要とする処理能力を定義しサービス提供者に指定することによって、サービス提供者が常にピーク時性能を満足するだけの処理能力を保有せずとも、処理能力をネットワークから動的に調達し、利用者に指定された処理能力の提供を保証するプログラム実行サービスの提供方法を提案する。【選択図】  図１
2005250818.tif 000002
【特許請求の範囲】
【請求項１】
利用者が保持するプログラムに対し実行環境を提供するサービス方法であって、
利用者がプログラムの必要とする処理能力を実行環境に対して通知する手段と、
サービス提供者が利用者に対し実行環境が十分な処理能力を提供可能か確認する手段と、
利用者のプログラムを実行環境に配備する手段と、
利用者が要求する処理能力が刻々と変化する場合に実行環境が動的に処理能力をネットワークで結ばれた計算機から調達し必要十分な処理能力の提供を保証する手段と、
を提供していることを特徴とするサービス方法。
【請求項２】
利用者を認証し、権限のない者が実行環境を利用することを抑止する手段を備えた、請求項１に記載の方法。
【請求項３】
利用者に対し、プログラムが使用した処理能力に応じた課金を行う手段を備えた、請求項１に記載の方法。
【請求項４】
実行したプログラムに対し、そのプログラムが利用した処理能力と、プログラムが発揮した性能を計測し、利用者に通知する手段を備えた、請求項１に記載の方法。
【請求項５】
一定の時間、または一定の処理能力を消費したプログラムを実行環境から削除する手段を備えた、請求項１に記載の方法。
【請求項６】
請求項１に記載の方法で実行されるプログラムおよび、例としての処理能力定義を、コンピュータ使用可能記録媒体または通信手段により、有償もしくは無償で配布するサービス方法。
【請求項７】
請求項１に記載の方法で行うサービスであって、サービス提供者が、実行環境が必要とする処理能力を、第３者から必要時に調達することによって動的に構成するサービス方法。
【請求項８】
請求項１から請求項７までの請求項に記載の方法を組み合わせて提供するサービス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機等のデータ処理能力を調達可能であることを前提に、利用者の計算機プログラムを受け入れ、実行するサービスを提供方法に関する。より詳細には、本発明は、プログラム実行サービスの利用者が、プログラム実行のために必要とする処理能力を、簡易にサービス提供者に指定する方法と、その情報に基づいてサービス提供者が処理能力をネットワークから動的に調達することによって、常にピーク時性能を満足するだけの処理能力を予め待機させておく必要なく、利用者に指定された処理能力の提供を保証できることを特徴とするプログラム実行サービスの提供方法に関する。
【背景技術】
【０００２】
本発明は、計算処理を行うにあたって複数の計算機を動的に割り当て／解除する機能を有する、リソース構成技術を背景とする。特許文献１によれば、プログラムが必要とする処理能力を、プログラム提供者の要求定義に従ってサービス提供者が割り当てる技術は存在するが、リソース構成は主にサービス提供者側の判断でプログラムの配備時行われており、プログラムの動作中に刻々と変化する必要処理能力量を利用者が直接に定義し、またサービス提供者が処理能力について保証することのできるサービス方法は開発されていなかった。
【０００３】
【特許文献１】特開２００１−２２２４３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、利用者が必要とする計算タスクの実行品質を性能面で保証するサービスを、必要最小限の設備投資で提供する上で障害となる下記の課題を解決する。利用者が必要とする計算タスクの性能は常に一定とは限らず、時々刻々変化することを想定しなくてはならない。その需要に応えるには、従来は、ピーク性能を実現可能な計算力をプログラム提供者が予測し、サービス提供者はその計算力を満たすリソースを常に用意しておくことで性能を保証する方法が一般的であったが、この場合ピーク時以外には使われることのない余剰計算力が生じ、設備の稼働率に無駄が発生する。本発明は、その時々で必要とされる計算力を動的に調達し、設備稼働率の無駄が最小限となるサービスの提供を実現する。
【０００５】
本発明が解決するもう一つの課題は、計算サービス提供者の責任範囲を明確にする手段の提供である。既存の技術では、処理能力が不足した場合に、それが実行したプログラムの不具合によるものなのか、計算サービス提供者が適切な量の処理能力を割り当てなかったためなのかを区別し、プログラム作成者と計算サービス提供者との間で適切な責任分担をすることができなかった。本発明によれば、プログラム作成者は、所定の実行性能を得るために必要な処理能力を定義し、利用者に提供することができる。利用者は、その定義に従い、計算サービス提供者に対して要求処理性能とその実現に必要な計算リソースの具体値を提示し、提供の保証を受けることができる。サービス提供者は、要求された計算リソースを割り当てているにもかかわらず処理性能が不足した場合に、追加計算リソースの購入を勧める、あるいはプログラムの不具合として利用者に通知するなどの、責任を明確にした対応をとることができる。
【課題を解決するための手段】
【０００６】
課題を解決するための手段となる機器およびその構成を説明する。
【０００７】
サービス提供者は、プログラムを実行可能な環境として、プログラム実行基盤を備えた計算機と、プログラムの実行を制御する手段を備えた実行環境マネージャとを用意する。実行環境マネージャは、プログラムの実行を制御する手段として、サービス利用者の認証手段、プログラムの送受信手段、プログラム配備手段、プログラムが必要とする処理能力の定義を受け取りリソースを調達してプログラムに割り当て調整する手段、プログラム実行状況を監視する手段、サービス利用者に処理結果を提供する手段を備える。
【０００８】
サービス利用者は、プログラムおよび処理能力定義を、媒体または通信手段を通じてサービス提供者に委託し、処理結果を得るためのプログラム実行委託手段を備える。
【０００９】
プログラムは、サービス提供者が備えるプログラム実行基盤上で動作するように設計する。
【００１０】
サービス利用者は、プログラム実行委託手段を用いて、プログラムと、プログラムが動作するために必要な処理能力定義をサービス提供者に提示する。サービス提供者は、実行環境マネージャの機能によって、プログラム実行委託の受け入れ可否を決定する。実行環境マネージャは、サービス利用者を認証し、リソース調整手段が調達可能な処理能力を使って、処理能力定義が要求する処理能力を満足することができるかどうかを判断する。この判断には、ある時点での静的な処理能力だけでなく、スケジューリング情報も加味される。必要な処理能力が割当可能な場合、実行環境マネージャは、利用者のプログラム実行委託を受け入れ、プログラム受信手段によりプログラムを受け入れ、プログラム配備手段によりプログラム実行環境に配備した後、リソース調整手段により調達した処理能力を割り当てる。実行環境マネージャはプログラムをプログラム実行基盤上に配備すると同時に、処理能力を設定する。プログラム実行基盤は、実行状況の監視手段を使って、プログラムがどの程度のCPUサイクル、記憶容量などのリソースを使用しているかを把握する。実行環境マネージャは、処理能力定義に従い、プログラムの現状の処理能力使用状況を満たすために十分な処理能力をスケジューリングすると共に、より多くの処理能力が必要となる事態に備えて、未割り当て処理能力を準備する。準備する処理能力の上限は、実行中のプログラムが定義した最大処理能力の総和である。基本的には、実行環境マネージャはいつでもこの上限処理能力を調達・提供できなければならない。しかし、利用者とのサービス契約によって、上限処理能力を調達できない場合にはサービス品質の低下を許容することも可能である。あるいは、臨時の処理能力を提供するサービスを利用して処理能力を増強することも考えられる。他のサービス提供者に対して、臨時の処理能力提供サービスを提供することも可能である。プログラムの動作が活発化し、CPU利用量が増大するなど処理能力がより多く必要になると、未割り当て処理能力を追加投入してプログラムの実行性能を確保する。ここで、処理能力定義の最大値まで処理能力を投入していてなおかつ処理能力が不足している場合は、サービス提供者はそれ以上の処理能力を投入しない。この状態で性能上の問題が起きている場合は、処理サービスの提供者ではなく、プログラムの不良もしくは仕様不良としてサービス利用者に通知する。
【発明の効果】
【００１１】
本発明によれば、次の効果が得られる。
（１）サービスの利用者があらかじめ必要な処理能力を定義して要求できるため、サービスの性能に関して定量的な保証をサービス提供者から受けることが可能となる。
（２）利用者の要求に応じて、処理能力をサービス中に動的に変更するため、処理能力を余分に保有することなく、常に必要最小限に抑えることができ、運用コストを小さく保つことができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態を図面を参照して説明する。
【００１３】
図１は本発明に関する機能コンポーネントを図示したものである。サービス利用者１０１は、処理能力定義１０２を伴うプログラム１０３を保有し、プログラム実行委託手段１０４を用いてサービス提供者に実行を委託し、その結果を得る。サービス提供者１０５は、サービス利用者を認証する認証手段１０６、プログラム送受信手段１０７、プログラム配備手段１０８、リソース調整手段１０９、監視手段１１０、結果提供手段１１１、課金手段１１２を備えた実行環境マネージャ１１３と、プログラム実行基盤１１５を備えた計算機１１４とを備え、サービス利用者に対して処理サービスを提供する。
【００１４】
図１に示した機能コンポーネントを用いて、サービス利用者１０１が、プログラムの実行をサービス提供者１０５に委託し、結果を得るまでの処理フローを図５に示す。サービス利用者１０１は、プログラム実行委託手段１０４を用いて、サービス提供者１０５の実行環境マネージャ１１３に接続する（ステップ６１）。そこでまず認証手段１０６による認証（ステップ６２）を受けた後、リソース調整手段１０９に対し、処理能力定義を送信する（ステップ６３）。ここでリソース調整手段１０９から、処理能力提供が可能であると返答があった場合（ステップ６４）、プログラム送受信手段１０７に対して、プログラム１０３を送信し、実行を要求する（ステップ６５）。プログラム実行委託手段１０４は、結果提供手段１１１から実行結果を受信するまで待機し、結果を受信した後（ステップ６６）、実行環境マネージャとの接続を切断し（ステップ６７）、サービス利用を終了する。ステップ６２で認証が失敗した場合、またはステップ６４で処理能力提供が不可能であった場合には、その時点で実行環境マネージャとの接続が切断され（ステップ６７）、サービス利用が終了する。
【００１５】
図１に示した機能コンポーネントを用いて、サービス提供者１０５が、サービス利用者１０１からの処理委託を受けて処理を実行し、終了するまでの処理フローを図６に示す。実行環境マネージャ１１３は、サービス利用者からの接続を待ち（ステップ７０１）、接続があった場合、認証手段１０６を用いてサービス利用者の権限を確認する（ステップ７０２）。権限に問題がない場合は、リソース調整手段１０９が処理能力定義を受信し（ステップ７０３）、要求された処理能力を満たすだけのリソースが調達可能かどうかを確認する（ステップ７０４）。リソースが提供可能な場合、プログラム送受信手段１０７がプログラムを受信する（ステップ７０５）。ユーザ認証に失敗した、あるいは十分なリソースが調達不可能、つまりエラーの場合は、利用者にエラーを返信して（ステップ７１８）、初期状態に戻る。エラーがない場合、リソース調整手段１０９は、処理を実行可能な計算機を起動するなどの方法で処理リソースを調達し（ステップ７０６）、プログラム配備手段１０８を用いてプログラムを配備し（ステップ７０７）、実行する（ステップ７０８）。プログラム実行中は、監視手段１１０を通じて実行状態を監視し（ステップ７０９）、処理能力定義が要求する処理性能が満たされているかを確認する（ステップ７１０）。処理能力が不足の場合、リソース調整手段１０９を用いて処理リソースの調達を行い（ステップ７１１）、可能な範囲で処理リソースを追加配備する（ステップ７１２）。処理の実行が終了すると（ステップ７１３）、結果提供手段１１１を用いて結果をサービス利用者に送信し（ステップ７１４）、課金手段１１２を用いて課金処理を行った後（ステップ７１５）、プログラムを終了し（ステップ７１６）、リソースを解放して（ステップ７１７）、初期状態に戻る。ステップ７１３で処理の実行が未終了の場合は、連続してプログラム実行（ステップ７０８）を継続する。
【００１６】
図２は利用者のプログラムを実行するサービスを提供する大学などの計算機センタネットワークシステムの説明図である。計算機センタ内には、利用者がプログラムを入力するネットワーク端末装置２１、計算機センタ内の計算機を接続するネットワーク２２、ネットワークに接続された計算機からなるプログラム実行環境２３を管理する実行環境マネージャ２４、処理を実行する計算機群２５を配置する。利用者は端末装置２１を通してサービス提供者である計算機センタのプログラム実行環境２３に接続しプログラム実行を委託する。この場合の処理能力定義は、例えば下記のような、属性と値のセットの集合体として与えられる。
<Objective Type=”Response” Measure=”ms”>100</Objective>
<Required Type=”MemoryMax” Measure=”MB”>28</Required>
<Required Type=”StorageMax” Measure=”MB”>256</Required>
<Required Type=”CTIME” Measure=”ms”>10<Required>
Objective項目は、目標性能を定義する。Measureを単位としてTypeで指定された指標について、値として指定された性能水準を下回ることのないレベルの性能が要求される。実行性能を監視した結果、実測値がこれを下回った場合には、より多いリソースを割り当てて実行性能を改善する、サービスに対する課金を割り引く、エラーとして処理を中止するなど、サービス条件に応じた方法で対応する。Requiredは、必要なリソースを定義する。Required条件を満たすリソースを割り当てたにも関わらず、Objective項目が未達の場合は、処理能力定義が不適切であるか、プログラム不良の可能性があると判断する。
【００１７】
実行環境マネージャは、利用可能な計算機リソースのうち、処理能力定義でRequiredと指定された処理能力を提供可能な計算機リソースを予約することで、処理能力を調達する。このとき、計算機リソースが起動していない場合は、起動処理を行う。全ての利用可能な計算機リソースを割り当ててもRequired条件が満たせない場合、プログラム実行不可能として実行要求は却下される。利用者は、処理能力が調達可能であるという回答を実行環境マネージャから受け取ると、実行したいプログラムを実行環境マネージャに送信し、実行を要求する。実行環境マネージャは、受信した利用者のプログラムを予約した計算機リソースに配備し、起動する。上記の処理能力定義の例では、一時に必要な最大メモリ量を定義するMemoryMaxの値として28MBが、一時に必要な最大ストレージ量を定義するStorageMaxの値として256MBが指定されているため、最低でも28MBのメモリと、256MBのストレージが調達可能であることが必須条件となる。また、Objectiveとして指定されたレスポンスタイムが100msと指定されていることから、この間にリソースの割り当てと処理の実行が可能であることが求められる。実行環境マネージャはその要求を満たすよう、計算機リソースを動的に追加／切り離しし、処理能力を増減する。計算機リソースの追加／切り離しは、従来技術におけるグリッドコンピューティングのような、計算機リソースを仮想化するプログラム実行基盤の機能を用いて処理する。プログラム実行基盤は、起動していないときにも常に待機状態であり、実行環境マネージャからの要求を受けて起動する。プログラムの実行が終了すると、プログラムに割り当てた計算機リソースを解放し、端末装置に処理結果を送信する。このとき、実行環境マネージャは、プログラムが利用した処理能力について、監視情報を元に量を算定し、従量課金を行う。プログラムが利用したリソース量、およびプログラムの実測性能は、処理結果とともにサービス利用者に提供される。
【００１８】
この実施例により、計算機の従来は利用者数が変動すると計算機の負荷が変動し、処理速度が予測不能な状態になるという問題が回避でき、できる限り多くの利用者が計算機センタを同時に使いながら、必要な時間内に演算処理を終わらせるだけの処理能力を利用できるようになる。
【００１９】
図３は、本発明を、携帯端末に対して処理能力を提供するシステムに適用した例である。携帯端末３１は、無線通信によりシステムの無線ゲートウェイ３２に接続することで、システム内のネットワーク３３を介して実行環境マネージャ３５に接続する。携帯端末を扱う利用者が、プログラムを実行環境３４で動かし、結果を得る手順は図２、図５、図６と同様である。この例では、ごく小さなデータ処理能力と、ディスプレイやイヤホンといったユーザインタフェース装置を備えた小型の携帯端末を持ち歩き、必要な場所で大きな処理能力を提供するプログラム実行サービスと無線接続することで、大きな計算装置を運搬することなく、大規模処理能力をいつでも利用可能とすることができる。たとえば、３次元画像処理プログラムを使い、バーチャルリアリティ型のユーザインタフェースを利用するチャットシステムなどは、必要とする処理能力が大きいことから、携帯電話程度のサイズの装置で十分な品質を実現することは困難であった。本実施例を利用すれば、処理能力は必要に応じて無線ネットワーク経由でサービス提供者から提供されるため、利用者が大きな計算装置を持ち運ばずとも、ユーザインタフェース装置を備えた簡単な形態端末でも十分な品質のサービスを受けることができる。
【００２０】
図４は、本発明を、有線で繋がれた他のプログラム実行環境に対する追加処理能力提供サービスとして適用した例である。他のプログラム実行環境４１は、ネットワーク４２によりシステムのゲートウェイ４３に接続し、さらにネットワーク４４を経由して実行環境マネージャ４６に接続する。他のプログラム実行環境４１を管理する利用者が、プログラムを実行環境４５で動かし、結果を得る手順は図２、図５、図６と同様である。この例では、実行環境４１は、常に必要最大量の処理能力を保持せずとも、処理能力の不足が生じることが予想されている場合には本サービスを利用することで、回転率の低い計算機資産の保有量を削減することができる。本サービスの提供者は、ある利用者が予約している時間帯と別の時間帯に、別の利用者にサービスを提供することで、計算機資産の回転率を上げることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明に関する機能コンポーネント構成図である。
【図２】第１の実施例のネットワークシステム構成図である。
【図３】第２の実施例のネットワークシステム構成図である。
【図４】第３の実施例のネットワークシステム構成図である。
【図５】第１、第２、第３の実施例でのサービス利用者の処理フローである。
【図６】第１、第２、第３の実施例でのサービス提供者の処理フローである。
【符号の説明】
【００２２】
１０１…サービス利用者、１０２…処理能力定義、１０３…プログラム、１０４…プログラム実行委託手段、１０５…サービス提供者、１０６…認証手段、１０７…プログラム送受信手段、１０８…プログラム配備手段、１０９…リソース調整手段、１１０…監視手段、１１１…結果提供手段、１１３…実行環境マネージャ、１１４…処理を実行する計算機、１１５…プログラム実行基盤、２１…利用者がプログラムを入力するネットワーク端末装置、２２…計算機センタ内の計算機を接続するネットワーク、２３…ネットワークに接続された計算機からなるプログラム実行環境、２４…実行環境マネージャ、２５…処理を実行する計算機、３１…利用者がプログラムを入力する携帯端末装置、３２…無線ゲートウェイ、３３…計算機センタ内の計算機を接続するネットワーク、３４…ネットワークに接続された計算機からなるプログラム実行環境、３５…実行環境マネージャ、３６…処理を実行する計算機、４１…他のプログラム実行環境、４２…他のプログラム実行環境と接続するネットワーク、４３…ネットワークゲートウェイ、４４…計算機センタ内の計算機を接続するネットワーク、４５…ネットワークに接続された計算機からなるプログラム実行環境、４６…実行環境マネージャ、４７…処理を実行する計算機。
【図１】
2005250818.tif 000003
【図２】
2005250818.tif 000004
【図３】
2005250818.tif 000005
【図４】
2005250818.tif 000006
【図５】
2005250818.tif 000007
【図６】
2005250818.tif 000008