情報処理装置、情報処理方法及びプログラム
【課題】APPの動作品質や、レスポンスタイムを含んだサービスレベルに関する品質を保証する技術を提供することを目的とする。
【解決手段】実行要求に係るアプリケーションに対応する、アプリケーションの動作に関する動作情報を読み込む読み込み手段と、読み込み手段で読み込まれた動作情報に基づいて、アプリケーションを動作させる実行環境を構築する構築手段と、を有することによって課題を解決する。
【解決手段】実行要求に係るアプリケーションに対応する、アプリケーションの動作に関する動作情報を読み込む読み込み手段と、読み込み手段で読み込まれた動作情報に基づいて、アプリケーションを動作させる実行環境を構築する構築手段と、を有することによって課題を解決する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、システムインフラストラクチャーリソースの有効活用を目指すために、システムインフラストラクチャーのユーティリティ化やクラウド化が進んでいる。その結果、従来の、アプリケーション(以下、APPという)が特定のシステムインフラストラクチャーで実行されているシステムと違い、APPが実行される環境をユニークに特定できないことはもとより、APPがどこで実行されているのかもインフラストラクチャーの空き状況により異なるシステムが存在する。
【0003】
一方、APPは、複雑化しており、APPが使用される使用環境を考慮しないでシステム構築等がなされることもある。つまり本来であれば、実使用環境下でAPPの連携テスト等を行うべきであるが、そのようなテスト環境を設定することも容易ではなく、APPの単体テストだけを行ってシステム構築されることも少なくない。また、あるAPPを性能Xのサーバ10台で実行することを想定して開発した場合であっても、そのAPPを実行するときには性能Xより高性能なサーバが開発され、このようなサーバが投入され、リソースが余ってしまうこともあれば、サーバの性能の向上に伴い、サーバの数が8台に減らされる場合もある。しかも、システムインフラストラクチャーのユーティリティ化によって、APPがいつどのサーバに割り当てられるかも分からないし、どこのどのようなストレージにデータが格納されてしまうかもシステムインフラストラクチャーのクラウド化によって分からなくなってきている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第2521020号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述したように、APPの開発時と異なる実行環境でAPPが動作する可能性がある。つまり、APPの実行環境が開発環境と異なった場合のAPPの動作に関する品質が保証されていない問題があった。例えば、実行環境においてレスポンスタイムの低下やシステムのサービスレベルの低下が発生してしまうという問題があった。
【0006】
本発明はこのような問題点に鑑みなされたもので、APPの動作品質や、レスポンスタイムを含んだサービスレベルに関する品質を保証する技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
そこで、本発明の情報処理装置は、実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込み手段と、前記読み込み手段で読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築手段と、を有する。
【0008】
本発明の情報処理装置は、実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込み手段と、前記読み込み手段で読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築手段と、を有することにより、例えば、APPの実行環境等の情報を含む動作情報に基づいて、構築された実行環境でAPPを動作させることが可能なので、APPの実行環境が開発環境と異なった場合でもAPPの動作に関する品質を保証する技術を提供することができる。
【0009】
なお、情報処理装置とは、例えば、後述するサーバ装置2、又はクライアント装置1等に対応する。より具体的に説明すると、後述する実施形態1のように本発明を、ユーティリティシステムを含むシステムに適用する場合、情報処理装置は、例えば後述するサーバ装置2に対応する。また、後述する実施形態5のように本発明を、PC、単体に適用する場合、情報処理装置は、例えば後述するクライアント装置(PC)に対応する。
また、動作情報とは、例えば、後述するTag情報に対応する。
【0010】
また、本発明の情報処理方法は、情報処理装置が、実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込みステップと、前記情報処理装置が、前記読み込みステップで読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築ステップと、を含む。
【0011】
また、本発明のプログラムは、コンピュータを、実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込み手段と、前記読み込み手段で読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築手段と、して機能させる。
【発明の効果】
【0012】
本発明によれば、APPの動作品質や、レスポンスタイムを含んだサービスレベルに関する品質を保証する技術を提供することができる。
【図面の簡単な説明】
【0013】
【図1】本実施形態で説明するシステムのシステム構成の一例を示す図である。
【図2】サーバ装置のハードウェア構成の一例を示す図である。
【図3】サーバ装置の機能構成の一例を示す図(その1)である。
【図4】APPプロビジョニングエンジンの処理の一例を示すフローチャート(その1)である。
【図5】APPプロビジョニングエンジンの処理を説明するための図である。
【図6】Tag情報の一例を示す図である。
【図7】アプリケーションAのTag情報の一例を示す図である。
【図8】アプリケーションBのTag情報の一例を示す図である。
【図9】アプリケーションCのTag情報の一例を示す図である。
【図10】APPプロビジョニングエンジンにおける実行環境の構築を説明するための図である。
【図11】サーバ装置の機能構成の一例を示す図(その2)である。
【図12】APPプロビジョニングエンジンの処理の一例を示すフローチャート(その2)である。
【図13】ユーザごとの利用可能なAPP及び選択可能な処理性能を格納したテーブルを示す図である。
【図14】アプリケーションの性能情報と動作環境とが対応付けられて記述されたTag情報を示す図である。
【図15】クライアント装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について図面に基づいて説明する。
【0015】
なお、本明細書中では、ユーティリティシステムとは、CPUや記憶装置(記憶媒体)等のシステムリソースを自由に追加/削除できるシステムのことをいう。また、クラウドシステムとは、インターネット上に分散した各種リソースを使ってサービスを提供する(又は、サービスの提供を受ける)システムのこという。クラウドシステムでは、ユーザはクライアントコンピュータ(PC)だけを持っていればよく、アプリケーションはネットの向こう側(クラウドシステム側)から提供され、情報も向こう側(クラウドシステム側)が管理する。
【0016】
<実施形態1>
図1は、本実施形態で説明するシステムのシステム構成の一例を示す図である。
図1に示されるように、クライアント装置1は、ユーティリティシステム(又は、ユーティリティシステム+クラウドシステム等)とネットワークを介して通信可能に接続されている。なお、図1では説明の簡略化のためクライアント装置1は、1つのみとしているが複数のクライアント装置がネットワークに接続されていてもよい。また、説明の簡略化のため、以下に示す実施形態ではクライアント装置1は、ユーティリティシステムとネットワークを介して通信可能に接続されているものとする。
ユーティリティシステムは、後述するように複数の物理ソース(ハードウェア等)を含み、これらを管理している。なお、ユーティリティシステム全体の制御は、サーバ装置2が行っているものとする。サーバ装置2は単体の場合もあるが、クラウドシステム中に複数存在し、それぞれが互いに通信しながら制御を行ってもよい。また、本明細書では、クライアント装置、サーバ装置、或いはユーティリティシステムなど、ハードウェアの形態についていくつかの表現を用いているが、これはあくまでも理解を助けるものであり、APPの利用を要求する側をクライアント装置、APPの機能を提供する側をサーバ装置と仮に呼ぶこととする。ある装置が物理的にクライアント装置とサーバ装置を兼ねていたり、更にその装置がユーティリティシステムを構成する装置のうちの一つとして存在していたりしてもよい。
【0017】
図2は、サーバ装置のハードウェア構成の一例を示す図である。図2に示されるようにサーバ装置2は、ハードウェア構成として、CPU11を含む。
CPU11が、記憶装置12に記憶されている、プログラム(例えば、APPプロビジョニングエンジンプログラム)に基づき処理を行うことによって、サーバ装置2の機能、又は後述するフローチャートに係る処理を実現する。
【0018】
また、CPU11には、バスを介して、記憶装置12が接続されている。記憶装置12は、例えば、ROM、RAM、ハードディスク装置等からなり、上述した各プログラム以外に、プログラムに基づく処理で用いられるデータを記憶する。
【0019】
図3は、サーバ装置の機能構成の一例を示す図(その1)である。図3に示されるように、サーバ装置2は、CPU11が、プログラムを実行することによって実現されるAPPプロビジョニングエンジン21を機能構成として含む。
また、APPプロビジョニングエンジン21は、機能として、読み込み部31と、構築部32と、を含む。
【0020】
読み込み部31は、クライアント装置1等から実行要求されたAPPに対応する、Tag情報を読み込む。なお、本実施形態では、Tag情報は、APPの特定の位置に格納されているものとする。
ここで、Tag情報は、例えば、以下のような情報を含む
・APP識別子(単体動作 or SOAモジュール or ライブラリ等)
・オブジェクトの種類(機械語 or インタープリター使用[OS依存 or 非依存])
−機械語の場合は、CPUの種類(IA−86 or Itanium or Sparc or IBM−P等)
・動作OS情報(OS識別子 and Ver識別子 and パッチ識別子等)
・コード形式
・インタープリターの種類
・動作Middleware情報1(DBの種類 and APP実行環境の種類等)
・動作Middleware情報2(Ver識別子 and パッチ識別子)
・サービスレベル情報1(レスポンスタイム or アベイラビリティタイム等)
・サービスレベル情報2(使用CPUリソース量 or メモリー使用量等)
・バックアップアーカイブ情報
・関連Tag(当該Tagに関連する別のTag)
なお、Tag情報は、上記全ての情報を含まなくてもよく、上記情報の一部のみを含んでもよい。
【0021】
構築部32は、読み込み部31が読み込んだTag情報に基づいて、断片化された仮想化リソースを組み合わせ、APPを動作させる実行環境を構築する。また、構築部32は、読み込み部31が読み込んだTag情報に基づいて、断片化された仮想化リソースを組み合わせ、APPを動作させる実行環境を構築することができなかった場合は、例えばAPPが動作可能な実行環境を構築することができないためAPPを動作させることができない旨の情報等を、APPの実行要求を行ったクライアント装置1等に出力(又は返信)する。
【0022】
図4は、APPプロビジョニングエンジンの処理の一例を示すフローチャート(その1)である。
ステップS10において、読み込み部31は、クライアント装置1等から実行要求されたAPPからTag情報を読み込む。
ステップS11において、構築部32は、ステップS10で読み込み部31が読み込んだTag情報と、図5に示されるような断片化された仮想化リソースのうち、現在使用可能(又は実行要求を行ったクライアント装置1のユーザが使用可能)な仮想化リソースと、に基づいて、前記APPが動作可能な実行環境(例えば図5に示されるようなプロビジョニングリソースセット)を構築可能か否か判定する。
【0023】
構築部32は、APPが動作可能な実行環境を構築可能であると判定するとステップS13に進み、APPが動作可能な実行環境を構築可能でないと判定するとステップS12に進む。
ステップS12において、構築部32は、APPが動作可能な実行環境を構築することができないためAPPを動作させることができない旨の情報等を、APPの実行要求を行ったクライアント装置1等に出力(又は返信)する。
【0024】
一方、ステップS13において、構築部32は、ステップS10で読み込み部31が読み込んだTag情報に基づいて、APPを動作させる実行環境を構築する。
【0025】
図5は、APPプロビジョニングエンジンの処理を説明するための図である。
図5に示される物理リソースは、ユーティリティシステムが管理している複数の物理リソースである。ユーティリティシステムは、これらの物理リソースを仮想化して管理している。APPプロビジョニングエンジン21は、Tag情報を読み込み、読み込んだTag情報に基づいて、これら仮想化して管理されている仮想化リソースを組み合わせて実行環境を構築し、この実行環境上でAPPを実行させる。
【0026】
以下、より具体的な例を用いてAPPプロビジョニングエンジン21の処理を説明する。まず、APPの一例として、勤怠情報管理アプリケーションを例に説明を行う。勤怠情報管理アプリケーションは、
1.営業日に社員各自から就業開示時間、就業終了時間の入力を受け付ける。
2.月末に社員それぞれの就労情報(休暇、欠勤、残業、休日出勤等の情報)を給与システムに送信する。
機能を有するものとする。
また、勤怠情報管理アプリケーションは、
1.社員個々の就労状況を管理するアプリケーションA(社員が入力を行うための入力インタフェース)
2.月末時点でその月の就労情報をバッチ処理するアプリケーションB
3.アプリケーションAとアプリケーションBとで使う社員就労情報を管理するアプリケーションC
で構成され、
それぞれのアプリケーションは、
1.IA−86のアーキテクチャーが搭載されたサーバ
2.LinuxOS Ver○、パッチ○○
3.WebLogicアプリケーションサーバVer.○、パッチ○○
4.Oracle(登録商標) 10G DB PSR○○
で動作するものとする。
【0027】
また、アプリケーションAは、24時間365日ノンストップの可用性を要求され、アプリケーションBは、毎月末処理2時間での確実な実行を要求されるものとする。
また、アプリケーションAのサービスレベルを維持するためには、4CPU、メモリー2GB、ストレージ5GBを必要とするものとする。また、アプリケーションBのサービスレベルを維持するためには、10CPU、メモリー4GB、ストレージ5GBを必要とするものとする。また、アプリケーションCは、アプリケーションA実行時に、2CPU、メモリー2GB、アプリケーションB実行時に、16CPU、メモリー4GBと、それぞれのアプリケーションのサービスレベルを維持する演算能力と、社員DBが既に構成されている300GBのストレージの特定エリアと、を必要とするものとする。
【0028】
また、Tag情報は、図6に示されるような順に従って格納されているものとする。図6は、Tag情報の一例を示す図である。図7は、アプリケーションAのTag情報の一例を示す図である。図8は、アプリケーションBのTag情報の一例を示す図である。図9は、アプリケーションCのTag情報の一例を示す図である。
また、図10は、APPプロビジョニングエンジンにおける実行環境の構築を説明するための図である。APPプロビジョニングエンジン21は、図7、図8、図9で示されるアプリケーションAのTag情報、アプリケーションBのTag情報、アプリケーションCのTag情報を読み込み、これらのTag情報に基づいて、図10に示されるように、各アプリケーションを動作させる実行環境を構築する。
より具体的に説明すると、APPプロビジョニングエンジン21は、図7、図8、図9で示されるアプリケーションAのTag情報、アプリケーションBのTag情報、アプリケーションCのTag情報を読み込み、これらのTag情報に基づいて、図10の41、42に示される実行環境を構築する。図10の41は、アプリケーションAを稼動させるための実行環境であり、APPプロビジョニングエンジン21は、サーバプールから4つのCPU等を確保し、また、アプリケーションCの実行環境も構築している。
この実行環境によって、ユーザは、クライアント装置1を介して就労状況の入力を、アプリケーションAを用いて行うことができる。なお、図10の42は、アプリケーションBを稼動させるための実行環境である。
【0029】
以上、上述したように本実施形態によれば、Tag情報に基づいて、構築された実行環境でAPPを動作させることが可能なので、APPの実行環境が開発環境と異なった場合でもAPPの動作に関する品質を保証する技術を提供することができる。
【0030】
<実施形態2>
実施形態1では、Tag情報はAPPの特定位置に格納されているものとして説明を行った。しかしながら、Tag情報は、APPとは別に、DB等でAPPと対応付けて格納されていてもよい。
このような構成の場合、読み込み部31は、APP識別子等に基づいて、APPに対応するTag情報をDBから取得し、読み込む。
このような構成とすることによって既に存在するAPPに対してもAPPプロビジョニングエンジン21は、APPの動作に関する品質を保証する技術を提供することができる。
【0031】
<実施形態3>
また、Tag情報は、ユーティリティシステムのファイルシステム上に存在するAPPごとのヘッダー情報に格納(記載)されていてもよい。
このような構成の場合、読み込み部31は、APP識別子等に基づいて、APPに対応するTag情報をファイルシステム上のヘッダー情報から取得し、読み込む。
【0032】
<実施形態4>
また、Tag情報の格納場所に関して、上述した各実施形態を組み合わせて実施してもよい。つまり、Tag情報は、上述した格納場所の何れか1つに限られず、例えばAPPに応じて格納場所が異なっていてもよい。
【0033】
<実施形態5>
Tag情報に含まれる情報は、上述した実施形態に示したものに限られない。本実施形態では、Tag情報に課金に関する基本情報が含まれている場合を例に説明を行う。
ここで、課金に関する基本情報とは、例えば、利用時間あたりの料金、トランザクション数あたりの料金、記憶容量あたりの料金、ユーザ識別子あたりの料金、課金に関するオプション情報(前記単位でのディスカウント率等が含まれるものとする。
【0034】
図11は、サーバ装置の機能構成の一例を示す図(その2)である。図11に示されるように、サーバ装置2は、CPU11が、プログラムを実行することによって実現されるAPPプロビジョニングエンジン21を機能構成として含む。
本実施形態のAPPプロビジョニングエンジン21は、機能として、上述した実施形態1の機能に加えて、計数部33を更に含む。
【0035】
計数部33は、APPが実行された場合、Tag情報に含まれる課金に関する基本情報及びAPPの実行に関する情報に基づいて、前記APPの実行に伴う課金情報(つまり、APPの利用に伴う料金)を計数する。例えば、課金に関する情報として利用時間あたりの料金が含まれていた場合、計数部33は、前記利用時間あたりの料金と、APPの実行時間の情報と、に基づいて、APPの利用に伴う料金を計数する。
そして、計数部33は、計数した課金情報を例えば、ユーティリティシステムとネットワークを介して通信可能な課金サーバ等に送信し、課金サーバ等に課金情報を格納させる。
【0036】
図12は、APPプロビジョニングエンジンの処理の一例を示すフローチャート(その2)である。
図12のフローチャートは、図4のフローチャートに比べて、ステップS14〜ステップS16の処理が新たに加わっている。
ステップS14において、計数部33は、APPの実行が終了したか否かを判定する。計数部33は、APPの実行が終了した場合は、ステップS15に進み、APPの実行が終了していない場合は、ステップS14の処理を繰り返す。
【0037】
ステップS15において、計数部33は、Tag情報に含まれる課金に関する基本情報及びAPPの実行に関する情報に基づいて、前記APPの実行に伴う課金情報を計数する。
ステップS16において、計数部33は、ステップS15で計数した課金情報を課金サーバ等に出力する。
【0038】
以上、本実施形態によれば、APPの動作に関する品質を保証する共に、APPの利用に伴う課金の処理を速やかに行うことができる。
【0039】
<実施形態6>
上述した実施形態では、Tag情報に、対応するAPPが一定の品質で動作するために必要な情報(例えば、CPUの種類や、OSの種類、パッチの情報、サービスレベルを維持するためのリソース量等)が含まれている例を説明した。しかしながら、Tag情報に、APPが一定の品質で動作するための禁止情報(例えば、APPが一定の品質で動作するためにOSの種類としてLinux Ver xx.xは駄目な場合はLinux Ver xx.x−NO等の記述)が含まれていてもよい。
【0040】
構築部32は、読み込み部31が読み込んだTag情報に上述したような禁止情報が含まれている場合は、このような構成は含まないように、断片化された仮想化リソースを組み合わせ、APPを動作させる実行環境を構築する。
また、Tag情報には、APPを実行するために最低限必要となる動作環境の情報だけでなく、APPを実行可能な複数の動作環境の情報と、各動作環境において提供可能な処理性能を表す性能情報(レスポンスタイム、スループットなど)とが対応付けられて記述されていてもよい。この場合、Tag情報には、例えば、「動作環境−x(CPU−x、OS−x、パッチ−x)では、レスポンスタイムはx(s)、スループットはx(bps)」等の記述が含まれることになる。
これにより、例えば、高速な応答性が要求される場合、ユーザは、必要とするAPPの処理性能(例えばレスポンスタイムやスループットなど)を指定する。構築部32は、Tag情報を参照して、ユーザによって指定された処理性能のレスポンスタイムやスループットなどを満たす動作環境を構築することが可能となる。
さらには、Tag情報に含まれる課金に関する基本情報において、利用する処理性能に応じた料金の設定(例えば、提供される処理性能が高いほど、利用料金も高くするなど)がなされてもよい。この構成によれば、例えば高速な処理が要求されない場合には、ユーザは、スループットは低いものの低料金のサービスを選択することができ、構築部32は、Tag情報を参照して、ユーザによって選択された処理性能を提供可能な動作環境を構築することが可能となる。
【0041】
ここで、ユーザがサービスの提供を受ける仕組みの一例について、より詳細に説明する。ユーザは、はじめに、サービスを提供する会社(以下ではサービス会社と称する)との間でAPPの利用について契約を交わす。ユーザは、一つのAPPだけでなく、複数のAPPを利用することや、各APPについて、複数の処理性能で利用することができる。そして、サービス会社は、各ユーザが利用可能なAPP及びAPPごとの処理性能をユーザ情報管理用のサーバに登録する。
【0042】
図13は、ユーザごとの利用可能なAPP及び選択可能な処理性能を格納したテーブルを示す図である。図13に示す例では、ユーザ001は、APP−x及びAPP−yを利用することができ、ユーザ002は、APP−zのみを利用することができる。また、ユーザ001は、サービス会社との契約により、APP−xを利用する場合、処理性能a(レスポンスタイム1ms以内で動作)又は処理性能b(レスポンスタイム1s以内で動作)の何れかを選択することができる。この処理性能a及び処理性能bは、例えば、最低限保証されるレスポンスタイムやスループットを表している。この場合、処理性能に応じた料金設定(つまり、処理性能が高いほど高額な料金設定)がなされることになる。
【0043】
ユーザ001は、サービスを利用する場合、端末装置からサービス会社の認証用のサーバにアクセスし、ログイン要求を送信する。認証用のサーバは、ユーザ001からのログイン要求を受け付け、認証が完了すると、ユーザ情報管理用のサーバから、ユーザ001の情報を取得し、端末装置にユーザ001のメニュー画面用の情報を送信する。そして、ユーザ001の端末装置は、メニュー画面において、APP−xとAPP−yとのいずれを利用するかをユーザに確認するメッセージを提示する。ユーザ001がAPP−xを選択すると、端末装置は、メニュー画面において、処理性能aと処理性能bとのいずれの処理性能で利用するかを確認するメッセージを提示する。ユーザ001が処理性能aを選択すると、端末装置は、サーバ装置2に対して、処理性能aでのAPP−xの利用を要求する。そして、サーバ装置2では、APPプロビジョニングエンジン21の構築部32がAPP−xのTag情報を参照し、処理性能aを満たすAPP−xの動作環境の情報を検索して、該当する動作環境の情報に基づいてAPP−xの動作環境を構築する。
【0044】
以下に、構築部32がTag情報を参照して処理性能aを満たす動作環境を構築する場合の処理について、より詳細に説明する。図14は、APP−xの性能情報と動作環境とが対応付けられて記述されたTag情報を示す図である。図14の(a)は0.5msのレスポンスタイムを保証する動作環境が記述されたTag情報1を示す図であり、図14の(b)は0.5sのレスポンスタイムを保証する動作環境が記述されたTag情報2を示す図である。Tag情報1は、0.5ms以内のレスポンスタイムを保証する動作環境がCPU−1、OS−1、DB−1によって構成されることを示しており、Tag情報2は、0.5s以内のレスポンスタイムを保証する動作環境がCPU−2、OS−2、DB−2によって構成されることを示している。なお、図14に示すAPP−xのTag情報1及びTag情報2は、それぞれ個別のTag情報として管理される構成であってもよいし、APPごとに1つのTag情報に含めて管理される構成であってもよい。
【0045】
ユーザの端末装置から処理性能a(レスポンスタイム1ms以内)でAPP−xを利用する要求があった場合、構築部32は、図14に示すAPP−xのTag情報1及びTag情報2を参照し、各Tag情報の動作環境が要求される処理性能a(即ち、レスポンスタイム1ms以内)を満たすことができるか否かを判定する。図14に示す例では、Tag情報1には、レスポンスタイム0.5ms以内を保証する動作環境が記述されており、構築部32は、Tag情報1の動作環境が処理性能a(レスポンスタイム1ms以内)を満たしていると判定する。一方、Tag情報2には、レスポンスタイム0.5s以内を保証する動作環境が記述されており、構築部32は、Tag情報2の動作環境が処理性能a(レスポンスタイム1ms以内)を満たしていないと判定する。したがって、この場合、構築部32は、Tag情報1を用いて、CPU−1、OS−1、DB−1によって構成される動作環境を構築する。なお、処理性能aを満たすTag情報が複数存在する場合には、予めTag情報に優先順位を設定しておくことにより、構築部32は、設定された優先順位に基づいてTag情報を選択し、動作環境を構築することができる。
【0046】
また、図14に示す例では、Tag情報としてユーザ識別子及び処理性能ごとの課金情報が含まれており、Tag情報1の動作環境の場合、1000円/時間で課金されることが示されている。そして、処理性能aでAPPが利用される場合、計数部33は、1000円/時間で利用料金を計算する。
これにより、ユーザは、状況に応じてAPPの処理性能を選択することができるようになる。したがって、高速な応答性を必要とする場合には高度な処理性能でAPPを利用することができる一方、必ずしも高度な処理性能を必要としない場合には、低い処理性能でAPPを利用することにより料金を節約することがきるため、利便性が向上する。
【0047】
なお、図13に示す例では、ユーザは利用可能な処理性能をメニュー画面から選択する構成であるが、処理性能について予め契約することなく、利用の都度、ユーザが必要とする処理性能を直接入力し、入力された処理性能を満たす動作環境での単位時間あたりの利用料金がTag情報に基づいてサーバ装置2で見積もられ、その見積もり結果をユーザが確認した上で利用を開始(或いは、他の処理性能に変更)する構成であってもよい。また、図13に示す例では、ユーザは処理性能を選択することになるが、APPのTag情報において複数のSLA情報(例えば、24時間365日稼動など)が設定されている場合、ユーザがログイン時にSLAを選択可能な構成であってもよい。また、ログイン用のサーバやユーザ情報管理用のサーバは、独立したサーバ装置として設けられる構成であってもよいし、サーバ装置2の機能として一体的に備えられた構成であってもよく、特に限定はされない。
本実施形態によっても、APPの動作に関する品質を保証する技術を提供することができる。
【0048】
<実施形態7>
上述した各実施形態では、クライアント装置1と、ユーティリティシステム(又は、ユーティリティシステム+クラウドシステム等)と、がネットワークを介して通信可能に接続されているシステムを例に説明を行った。しかしながら、本実施形態のシステムは、クライアント装置1のみを含むものとする。つまり、上述したように、APPの利用を要求する側であるクライアント装置と、APPの機能を提供する側であるサーバ装置とが一つの装置に実装されている形態で実現される例である。
【0049】
図15は、クライアント装置のハードウェア構成の一例を示す図である。図15に示されるようにクライアント装置1は、ハードウェア構成として、CPU51を含む。
CPU51が、記憶装置53に記憶されている、プログラム(例えば、APPプロビジョニングエンジンプログラム)に基づき処理を行うことによって、クライアント装置1の機能(前述した図3のAPPプロビジョニングエンジン21の機能)、又は前述した図4のフローチャートに係る処理を実現する。
【0050】
また、CPU51には、バスを介して、入力装置52、記憶装置53及び表示装置54が接続されている。記憶装置53は、例えば、ROM、RAM、ハードディスク装置等からなり、上述した各プログラム以外に、プログラムに基づく処理で用いられるデータを記憶する。表示装置54は、情報を表示する例えばディスプレイ等である。入力装置52は、情報を入力する例えば操作キー等である。
【0051】
上述したように、本実施形態のAPPプロビジョニングエンジン21は、実施形態1に示した機能と同様であるが、本実施形態のようにクライアント装置1に実装されている場合、クライアント装置1にインストール等されているAPPを動作させるのに必要な実行環境を構築する。例えば、複数のAPPがクライアント装置1に実行されており、複数のAPPを動作させるよう要求があった場合、APPプロビジョニングエンジン21は、各APPに対応するTag情報を読み込み、各APPを動作させるのに必要な実行環境をクライアント装置1の物理ソースを用いて構築する。そして、APPプロビジョニングエンジン21は、あるAPPを動作させるのに必要な実行環境を構築することができなかった場合は、例えばAPPが動作可能な実行環境を構築することができないためAPPを動作させることができない旨の情報等を、表示装置54等に出力する。
【0052】
以上、本実施形態によれば、単体の装置内で動作するAPPの動作に関する品質も保証することができる。
【0053】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
また、上述した各実施形態を任意に組み合わせてもよい。
【符号の説明】
【0054】
1 クライアント装置
2 サーバ装置
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、システムインフラストラクチャーリソースの有効活用を目指すために、システムインフラストラクチャーのユーティリティ化やクラウド化が進んでいる。その結果、従来の、アプリケーション(以下、APPという)が特定のシステムインフラストラクチャーで実行されているシステムと違い、APPが実行される環境をユニークに特定できないことはもとより、APPがどこで実行されているのかもインフラストラクチャーの空き状況により異なるシステムが存在する。
【0003】
一方、APPは、複雑化しており、APPが使用される使用環境を考慮しないでシステム構築等がなされることもある。つまり本来であれば、実使用環境下でAPPの連携テスト等を行うべきであるが、そのようなテスト環境を設定することも容易ではなく、APPの単体テストだけを行ってシステム構築されることも少なくない。また、あるAPPを性能Xのサーバ10台で実行することを想定して開発した場合であっても、そのAPPを実行するときには性能Xより高性能なサーバが開発され、このようなサーバが投入され、リソースが余ってしまうこともあれば、サーバの性能の向上に伴い、サーバの数が8台に減らされる場合もある。しかも、システムインフラストラクチャーのユーティリティ化によって、APPがいつどのサーバに割り当てられるかも分からないし、どこのどのようなストレージにデータが格納されてしまうかもシステムインフラストラクチャーのクラウド化によって分からなくなってきている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第2521020号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述したように、APPの開発時と異なる実行環境でAPPが動作する可能性がある。つまり、APPの実行環境が開発環境と異なった場合のAPPの動作に関する品質が保証されていない問題があった。例えば、実行環境においてレスポンスタイムの低下やシステムのサービスレベルの低下が発生してしまうという問題があった。
【0006】
本発明はこのような問題点に鑑みなされたもので、APPの動作品質や、レスポンスタイムを含んだサービスレベルに関する品質を保証する技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
そこで、本発明の情報処理装置は、実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込み手段と、前記読み込み手段で読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築手段と、を有する。
【0008】
本発明の情報処理装置は、実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込み手段と、前記読み込み手段で読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築手段と、を有することにより、例えば、APPの実行環境等の情報を含む動作情報に基づいて、構築された実行環境でAPPを動作させることが可能なので、APPの実行環境が開発環境と異なった場合でもAPPの動作に関する品質を保証する技術を提供することができる。
【0009】
なお、情報処理装置とは、例えば、後述するサーバ装置2、又はクライアント装置1等に対応する。より具体的に説明すると、後述する実施形態1のように本発明を、ユーティリティシステムを含むシステムに適用する場合、情報処理装置は、例えば後述するサーバ装置2に対応する。また、後述する実施形態5のように本発明を、PC、単体に適用する場合、情報処理装置は、例えば後述するクライアント装置(PC)に対応する。
また、動作情報とは、例えば、後述するTag情報に対応する。
【0010】
また、本発明の情報処理方法は、情報処理装置が、実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込みステップと、前記情報処理装置が、前記読み込みステップで読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築ステップと、を含む。
【0011】
また、本発明のプログラムは、コンピュータを、実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込み手段と、前記読み込み手段で読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築手段と、して機能させる。
【発明の効果】
【0012】
本発明によれば、APPの動作品質や、レスポンスタイムを含んだサービスレベルに関する品質を保証する技術を提供することができる。
【図面の簡単な説明】
【0013】
【図1】本実施形態で説明するシステムのシステム構成の一例を示す図である。
【図2】サーバ装置のハードウェア構成の一例を示す図である。
【図3】サーバ装置の機能構成の一例を示す図(その1)である。
【図4】APPプロビジョニングエンジンの処理の一例を示すフローチャート(その1)である。
【図5】APPプロビジョニングエンジンの処理を説明するための図である。
【図6】Tag情報の一例を示す図である。
【図7】アプリケーションAのTag情報の一例を示す図である。
【図8】アプリケーションBのTag情報の一例を示す図である。
【図9】アプリケーションCのTag情報の一例を示す図である。
【図10】APPプロビジョニングエンジンにおける実行環境の構築を説明するための図である。
【図11】サーバ装置の機能構成の一例を示す図(その2)である。
【図12】APPプロビジョニングエンジンの処理の一例を示すフローチャート(その2)である。
【図13】ユーザごとの利用可能なAPP及び選択可能な処理性能を格納したテーブルを示す図である。
【図14】アプリケーションの性能情報と動作環境とが対応付けられて記述されたTag情報を示す図である。
【図15】クライアント装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について図面に基づいて説明する。
【0015】
なお、本明細書中では、ユーティリティシステムとは、CPUや記憶装置(記憶媒体)等のシステムリソースを自由に追加/削除できるシステムのことをいう。また、クラウドシステムとは、インターネット上に分散した各種リソースを使ってサービスを提供する(又は、サービスの提供を受ける)システムのこという。クラウドシステムでは、ユーザはクライアントコンピュータ(PC)だけを持っていればよく、アプリケーションはネットの向こう側(クラウドシステム側)から提供され、情報も向こう側(クラウドシステム側)が管理する。
【0016】
<実施形態1>
図1は、本実施形態で説明するシステムのシステム構成の一例を示す図である。
図1に示されるように、クライアント装置1は、ユーティリティシステム(又は、ユーティリティシステム+クラウドシステム等)とネットワークを介して通信可能に接続されている。なお、図1では説明の簡略化のためクライアント装置1は、1つのみとしているが複数のクライアント装置がネットワークに接続されていてもよい。また、説明の簡略化のため、以下に示す実施形態ではクライアント装置1は、ユーティリティシステムとネットワークを介して通信可能に接続されているものとする。
ユーティリティシステムは、後述するように複数の物理ソース(ハードウェア等)を含み、これらを管理している。なお、ユーティリティシステム全体の制御は、サーバ装置2が行っているものとする。サーバ装置2は単体の場合もあるが、クラウドシステム中に複数存在し、それぞれが互いに通信しながら制御を行ってもよい。また、本明細書では、クライアント装置、サーバ装置、或いはユーティリティシステムなど、ハードウェアの形態についていくつかの表現を用いているが、これはあくまでも理解を助けるものであり、APPの利用を要求する側をクライアント装置、APPの機能を提供する側をサーバ装置と仮に呼ぶこととする。ある装置が物理的にクライアント装置とサーバ装置を兼ねていたり、更にその装置がユーティリティシステムを構成する装置のうちの一つとして存在していたりしてもよい。
【0017】
図2は、サーバ装置のハードウェア構成の一例を示す図である。図2に示されるようにサーバ装置2は、ハードウェア構成として、CPU11を含む。
CPU11が、記憶装置12に記憶されている、プログラム(例えば、APPプロビジョニングエンジンプログラム)に基づき処理を行うことによって、サーバ装置2の機能、又は後述するフローチャートに係る処理を実現する。
【0018】
また、CPU11には、バスを介して、記憶装置12が接続されている。記憶装置12は、例えば、ROM、RAM、ハードディスク装置等からなり、上述した各プログラム以外に、プログラムに基づく処理で用いられるデータを記憶する。
【0019】
図3は、サーバ装置の機能構成の一例を示す図(その1)である。図3に示されるように、サーバ装置2は、CPU11が、プログラムを実行することによって実現されるAPPプロビジョニングエンジン21を機能構成として含む。
また、APPプロビジョニングエンジン21は、機能として、読み込み部31と、構築部32と、を含む。
【0020】
読み込み部31は、クライアント装置1等から実行要求されたAPPに対応する、Tag情報を読み込む。なお、本実施形態では、Tag情報は、APPの特定の位置に格納されているものとする。
ここで、Tag情報は、例えば、以下のような情報を含む
・APP識別子(単体動作 or SOAモジュール or ライブラリ等)
・オブジェクトの種類(機械語 or インタープリター使用[OS依存 or 非依存])
−機械語の場合は、CPUの種類(IA−86 or Itanium or Sparc or IBM−P等)
・動作OS情報(OS識別子 and Ver識別子 and パッチ識別子等)
・コード形式
・インタープリターの種類
・動作Middleware情報1(DBの種類 and APP実行環境の種類等)
・動作Middleware情報2(Ver識別子 and パッチ識別子)
・サービスレベル情報1(レスポンスタイム or アベイラビリティタイム等)
・サービスレベル情報2(使用CPUリソース量 or メモリー使用量等)
・バックアップアーカイブ情報
・関連Tag(当該Tagに関連する別のTag)
なお、Tag情報は、上記全ての情報を含まなくてもよく、上記情報の一部のみを含んでもよい。
【0021】
構築部32は、読み込み部31が読み込んだTag情報に基づいて、断片化された仮想化リソースを組み合わせ、APPを動作させる実行環境を構築する。また、構築部32は、読み込み部31が読み込んだTag情報に基づいて、断片化された仮想化リソースを組み合わせ、APPを動作させる実行環境を構築することができなかった場合は、例えばAPPが動作可能な実行環境を構築することができないためAPPを動作させることができない旨の情報等を、APPの実行要求を行ったクライアント装置1等に出力(又は返信)する。
【0022】
図4は、APPプロビジョニングエンジンの処理の一例を示すフローチャート(その1)である。
ステップS10において、読み込み部31は、クライアント装置1等から実行要求されたAPPからTag情報を読み込む。
ステップS11において、構築部32は、ステップS10で読み込み部31が読み込んだTag情報と、図5に示されるような断片化された仮想化リソースのうち、現在使用可能(又は実行要求を行ったクライアント装置1のユーザが使用可能)な仮想化リソースと、に基づいて、前記APPが動作可能な実行環境(例えば図5に示されるようなプロビジョニングリソースセット)を構築可能か否か判定する。
【0023】
構築部32は、APPが動作可能な実行環境を構築可能であると判定するとステップS13に進み、APPが動作可能な実行環境を構築可能でないと判定するとステップS12に進む。
ステップS12において、構築部32は、APPが動作可能な実行環境を構築することができないためAPPを動作させることができない旨の情報等を、APPの実行要求を行ったクライアント装置1等に出力(又は返信)する。
【0024】
一方、ステップS13において、構築部32は、ステップS10で読み込み部31が読み込んだTag情報に基づいて、APPを動作させる実行環境を構築する。
【0025】
図5は、APPプロビジョニングエンジンの処理を説明するための図である。
図5に示される物理リソースは、ユーティリティシステムが管理している複数の物理リソースである。ユーティリティシステムは、これらの物理リソースを仮想化して管理している。APPプロビジョニングエンジン21は、Tag情報を読み込み、読み込んだTag情報に基づいて、これら仮想化して管理されている仮想化リソースを組み合わせて実行環境を構築し、この実行環境上でAPPを実行させる。
【0026】
以下、より具体的な例を用いてAPPプロビジョニングエンジン21の処理を説明する。まず、APPの一例として、勤怠情報管理アプリケーションを例に説明を行う。勤怠情報管理アプリケーションは、
1.営業日に社員各自から就業開示時間、就業終了時間の入力を受け付ける。
2.月末に社員それぞれの就労情報(休暇、欠勤、残業、休日出勤等の情報)を給与システムに送信する。
機能を有するものとする。
また、勤怠情報管理アプリケーションは、
1.社員個々の就労状況を管理するアプリケーションA(社員が入力を行うための入力インタフェース)
2.月末時点でその月の就労情報をバッチ処理するアプリケーションB
3.アプリケーションAとアプリケーションBとで使う社員就労情報を管理するアプリケーションC
で構成され、
それぞれのアプリケーションは、
1.IA−86のアーキテクチャーが搭載されたサーバ
2.LinuxOS Ver○、パッチ○○
3.WebLogicアプリケーションサーバVer.○、パッチ○○
4.Oracle(登録商標) 10G DB PSR○○
で動作するものとする。
【0027】
また、アプリケーションAは、24時間365日ノンストップの可用性を要求され、アプリケーションBは、毎月末処理2時間での確実な実行を要求されるものとする。
また、アプリケーションAのサービスレベルを維持するためには、4CPU、メモリー2GB、ストレージ5GBを必要とするものとする。また、アプリケーションBのサービスレベルを維持するためには、10CPU、メモリー4GB、ストレージ5GBを必要とするものとする。また、アプリケーションCは、アプリケーションA実行時に、2CPU、メモリー2GB、アプリケーションB実行時に、16CPU、メモリー4GBと、それぞれのアプリケーションのサービスレベルを維持する演算能力と、社員DBが既に構成されている300GBのストレージの特定エリアと、を必要とするものとする。
【0028】
また、Tag情報は、図6に示されるような順に従って格納されているものとする。図6は、Tag情報の一例を示す図である。図7は、アプリケーションAのTag情報の一例を示す図である。図8は、アプリケーションBのTag情報の一例を示す図である。図9は、アプリケーションCのTag情報の一例を示す図である。
また、図10は、APPプロビジョニングエンジンにおける実行環境の構築を説明するための図である。APPプロビジョニングエンジン21は、図7、図8、図9で示されるアプリケーションAのTag情報、アプリケーションBのTag情報、アプリケーションCのTag情報を読み込み、これらのTag情報に基づいて、図10に示されるように、各アプリケーションを動作させる実行環境を構築する。
より具体的に説明すると、APPプロビジョニングエンジン21は、図7、図8、図9で示されるアプリケーションAのTag情報、アプリケーションBのTag情報、アプリケーションCのTag情報を読み込み、これらのTag情報に基づいて、図10の41、42に示される実行環境を構築する。図10の41は、アプリケーションAを稼動させるための実行環境であり、APPプロビジョニングエンジン21は、サーバプールから4つのCPU等を確保し、また、アプリケーションCの実行環境も構築している。
この実行環境によって、ユーザは、クライアント装置1を介して就労状況の入力を、アプリケーションAを用いて行うことができる。なお、図10の42は、アプリケーションBを稼動させるための実行環境である。
【0029】
以上、上述したように本実施形態によれば、Tag情報に基づいて、構築された実行環境でAPPを動作させることが可能なので、APPの実行環境が開発環境と異なった場合でもAPPの動作に関する品質を保証する技術を提供することができる。
【0030】
<実施形態2>
実施形態1では、Tag情報はAPPの特定位置に格納されているものとして説明を行った。しかしながら、Tag情報は、APPとは別に、DB等でAPPと対応付けて格納されていてもよい。
このような構成の場合、読み込み部31は、APP識別子等に基づいて、APPに対応するTag情報をDBから取得し、読み込む。
このような構成とすることによって既に存在するAPPに対してもAPPプロビジョニングエンジン21は、APPの動作に関する品質を保証する技術を提供することができる。
【0031】
<実施形態3>
また、Tag情報は、ユーティリティシステムのファイルシステム上に存在するAPPごとのヘッダー情報に格納(記載)されていてもよい。
このような構成の場合、読み込み部31は、APP識別子等に基づいて、APPに対応するTag情報をファイルシステム上のヘッダー情報から取得し、読み込む。
【0032】
<実施形態4>
また、Tag情報の格納場所に関して、上述した各実施形態を組み合わせて実施してもよい。つまり、Tag情報は、上述した格納場所の何れか1つに限られず、例えばAPPに応じて格納場所が異なっていてもよい。
【0033】
<実施形態5>
Tag情報に含まれる情報は、上述した実施形態に示したものに限られない。本実施形態では、Tag情報に課金に関する基本情報が含まれている場合を例に説明を行う。
ここで、課金に関する基本情報とは、例えば、利用時間あたりの料金、トランザクション数あたりの料金、記憶容量あたりの料金、ユーザ識別子あたりの料金、課金に関するオプション情報(前記単位でのディスカウント率等が含まれるものとする。
【0034】
図11は、サーバ装置の機能構成の一例を示す図(その2)である。図11に示されるように、サーバ装置2は、CPU11が、プログラムを実行することによって実現されるAPPプロビジョニングエンジン21を機能構成として含む。
本実施形態のAPPプロビジョニングエンジン21は、機能として、上述した実施形態1の機能に加えて、計数部33を更に含む。
【0035】
計数部33は、APPが実行された場合、Tag情報に含まれる課金に関する基本情報及びAPPの実行に関する情報に基づいて、前記APPの実行に伴う課金情報(つまり、APPの利用に伴う料金)を計数する。例えば、課金に関する情報として利用時間あたりの料金が含まれていた場合、計数部33は、前記利用時間あたりの料金と、APPの実行時間の情報と、に基づいて、APPの利用に伴う料金を計数する。
そして、計数部33は、計数した課金情報を例えば、ユーティリティシステムとネットワークを介して通信可能な課金サーバ等に送信し、課金サーバ等に課金情報を格納させる。
【0036】
図12は、APPプロビジョニングエンジンの処理の一例を示すフローチャート(その2)である。
図12のフローチャートは、図4のフローチャートに比べて、ステップS14〜ステップS16の処理が新たに加わっている。
ステップS14において、計数部33は、APPの実行が終了したか否かを判定する。計数部33は、APPの実行が終了した場合は、ステップS15に進み、APPの実行が終了していない場合は、ステップS14の処理を繰り返す。
【0037】
ステップS15において、計数部33は、Tag情報に含まれる課金に関する基本情報及びAPPの実行に関する情報に基づいて、前記APPの実行に伴う課金情報を計数する。
ステップS16において、計数部33は、ステップS15で計数した課金情報を課金サーバ等に出力する。
【0038】
以上、本実施形態によれば、APPの動作に関する品質を保証する共に、APPの利用に伴う課金の処理を速やかに行うことができる。
【0039】
<実施形態6>
上述した実施形態では、Tag情報に、対応するAPPが一定の品質で動作するために必要な情報(例えば、CPUの種類や、OSの種類、パッチの情報、サービスレベルを維持するためのリソース量等)が含まれている例を説明した。しかしながら、Tag情報に、APPが一定の品質で動作するための禁止情報(例えば、APPが一定の品質で動作するためにOSの種類としてLinux Ver xx.xは駄目な場合はLinux Ver xx.x−NO等の記述)が含まれていてもよい。
【0040】
構築部32は、読み込み部31が読み込んだTag情報に上述したような禁止情報が含まれている場合は、このような構成は含まないように、断片化された仮想化リソースを組み合わせ、APPを動作させる実行環境を構築する。
また、Tag情報には、APPを実行するために最低限必要となる動作環境の情報だけでなく、APPを実行可能な複数の動作環境の情報と、各動作環境において提供可能な処理性能を表す性能情報(レスポンスタイム、スループットなど)とが対応付けられて記述されていてもよい。この場合、Tag情報には、例えば、「動作環境−x(CPU−x、OS−x、パッチ−x)では、レスポンスタイムはx(s)、スループットはx(bps)」等の記述が含まれることになる。
これにより、例えば、高速な応答性が要求される場合、ユーザは、必要とするAPPの処理性能(例えばレスポンスタイムやスループットなど)を指定する。構築部32は、Tag情報を参照して、ユーザによって指定された処理性能のレスポンスタイムやスループットなどを満たす動作環境を構築することが可能となる。
さらには、Tag情報に含まれる課金に関する基本情報において、利用する処理性能に応じた料金の設定(例えば、提供される処理性能が高いほど、利用料金も高くするなど)がなされてもよい。この構成によれば、例えば高速な処理が要求されない場合には、ユーザは、スループットは低いものの低料金のサービスを選択することができ、構築部32は、Tag情報を参照して、ユーザによって選択された処理性能を提供可能な動作環境を構築することが可能となる。
【0041】
ここで、ユーザがサービスの提供を受ける仕組みの一例について、より詳細に説明する。ユーザは、はじめに、サービスを提供する会社(以下ではサービス会社と称する)との間でAPPの利用について契約を交わす。ユーザは、一つのAPPだけでなく、複数のAPPを利用することや、各APPについて、複数の処理性能で利用することができる。そして、サービス会社は、各ユーザが利用可能なAPP及びAPPごとの処理性能をユーザ情報管理用のサーバに登録する。
【0042】
図13は、ユーザごとの利用可能なAPP及び選択可能な処理性能を格納したテーブルを示す図である。図13に示す例では、ユーザ001は、APP−x及びAPP−yを利用することができ、ユーザ002は、APP−zのみを利用することができる。また、ユーザ001は、サービス会社との契約により、APP−xを利用する場合、処理性能a(レスポンスタイム1ms以内で動作)又は処理性能b(レスポンスタイム1s以内で動作)の何れかを選択することができる。この処理性能a及び処理性能bは、例えば、最低限保証されるレスポンスタイムやスループットを表している。この場合、処理性能に応じた料金設定(つまり、処理性能が高いほど高額な料金設定)がなされることになる。
【0043】
ユーザ001は、サービスを利用する場合、端末装置からサービス会社の認証用のサーバにアクセスし、ログイン要求を送信する。認証用のサーバは、ユーザ001からのログイン要求を受け付け、認証が完了すると、ユーザ情報管理用のサーバから、ユーザ001の情報を取得し、端末装置にユーザ001のメニュー画面用の情報を送信する。そして、ユーザ001の端末装置は、メニュー画面において、APP−xとAPP−yとのいずれを利用するかをユーザに確認するメッセージを提示する。ユーザ001がAPP−xを選択すると、端末装置は、メニュー画面において、処理性能aと処理性能bとのいずれの処理性能で利用するかを確認するメッセージを提示する。ユーザ001が処理性能aを選択すると、端末装置は、サーバ装置2に対して、処理性能aでのAPP−xの利用を要求する。そして、サーバ装置2では、APPプロビジョニングエンジン21の構築部32がAPP−xのTag情報を参照し、処理性能aを満たすAPP−xの動作環境の情報を検索して、該当する動作環境の情報に基づいてAPP−xの動作環境を構築する。
【0044】
以下に、構築部32がTag情報を参照して処理性能aを満たす動作環境を構築する場合の処理について、より詳細に説明する。図14は、APP−xの性能情報と動作環境とが対応付けられて記述されたTag情報を示す図である。図14の(a)は0.5msのレスポンスタイムを保証する動作環境が記述されたTag情報1を示す図であり、図14の(b)は0.5sのレスポンスタイムを保証する動作環境が記述されたTag情報2を示す図である。Tag情報1は、0.5ms以内のレスポンスタイムを保証する動作環境がCPU−1、OS−1、DB−1によって構成されることを示しており、Tag情報2は、0.5s以内のレスポンスタイムを保証する動作環境がCPU−2、OS−2、DB−2によって構成されることを示している。なお、図14に示すAPP−xのTag情報1及びTag情報2は、それぞれ個別のTag情報として管理される構成であってもよいし、APPごとに1つのTag情報に含めて管理される構成であってもよい。
【0045】
ユーザの端末装置から処理性能a(レスポンスタイム1ms以内)でAPP−xを利用する要求があった場合、構築部32は、図14に示すAPP−xのTag情報1及びTag情報2を参照し、各Tag情報の動作環境が要求される処理性能a(即ち、レスポンスタイム1ms以内)を満たすことができるか否かを判定する。図14に示す例では、Tag情報1には、レスポンスタイム0.5ms以内を保証する動作環境が記述されており、構築部32は、Tag情報1の動作環境が処理性能a(レスポンスタイム1ms以内)を満たしていると判定する。一方、Tag情報2には、レスポンスタイム0.5s以内を保証する動作環境が記述されており、構築部32は、Tag情報2の動作環境が処理性能a(レスポンスタイム1ms以内)を満たしていないと判定する。したがって、この場合、構築部32は、Tag情報1を用いて、CPU−1、OS−1、DB−1によって構成される動作環境を構築する。なお、処理性能aを満たすTag情報が複数存在する場合には、予めTag情報に優先順位を設定しておくことにより、構築部32は、設定された優先順位に基づいてTag情報を選択し、動作環境を構築することができる。
【0046】
また、図14に示す例では、Tag情報としてユーザ識別子及び処理性能ごとの課金情報が含まれており、Tag情報1の動作環境の場合、1000円/時間で課金されることが示されている。そして、処理性能aでAPPが利用される場合、計数部33は、1000円/時間で利用料金を計算する。
これにより、ユーザは、状況に応じてAPPの処理性能を選択することができるようになる。したがって、高速な応答性を必要とする場合には高度な処理性能でAPPを利用することができる一方、必ずしも高度な処理性能を必要としない場合には、低い処理性能でAPPを利用することにより料金を節約することがきるため、利便性が向上する。
【0047】
なお、図13に示す例では、ユーザは利用可能な処理性能をメニュー画面から選択する構成であるが、処理性能について予め契約することなく、利用の都度、ユーザが必要とする処理性能を直接入力し、入力された処理性能を満たす動作環境での単位時間あたりの利用料金がTag情報に基づいてサーバ装置2で見積もられ、その見積もり結果をユーザが確認した上で利用を開始(或いは、他の処理性能に変更)する構成であってもよい。また、図13に示す例では、ユーザは処理性能を選択することになるが、APPのTag情報において複数のSLA情報(例えば、24時間365日稼動など)が設定されている場合、ユーザがログイン時にSLAを選択可能な構成であってもよい。また、ログイン用のサーバやユーザ情報管理用のサーバは、独立したサーバ装置として設けられる構成であってもよいし、サーバ装置2の機能として一体的に備えられた構成であってもよく、特に限定はされない。
本実施形態によっても、APPの動作に関する品質を保証する技術を提供することができる。
【0048】
<実施形態7>
上述した各実施形態では、クライアント装置1と、ユーティリティシステム(又は、ユーティリティシステム+クラウドシステム等)と、がネットワークを介して通信可能に接続されているシステムを例に説明を行った。しかしながら、本実施形態のシステムは、クライアント装置1のみを含むものとする。つまり、上述したように、APPの利用を要求する側であるクライアント装置と、APPの機能を提供する側であるサーバ装置とが一つの装置に実装されている形態で実現される例である。
【0049】
図15は、クライアント装置のハードウェア構成の一例を示す図である。図15に示されるようにクライアント装置1は、ハードウェア構成として、CPU51を含む。
CPU51が、記憶装置53に記憶されている、プログラム(例えば、APPプロビジョニングエンジンプログラム)に基づき処理を行うことによって、クライアント装置1の機能(前述した図3のAPPプロビジョニングエンジン21の機能)、又は前述した図4のフローチャートに係る処理を実現する。
【0050】
また、CPU51には、バスを介して、入力装置52、記憶装置53及び表示装置54が接続されている。記憶装置53は、例えば、ROM、RAM、ハードディスク装置等からなり、上述した各プログラム以外に、プログラムに基づく処理で用いられるデータを記憶する。表示装置54は、情報を表示する例えばディスプレイ等である。入力装置52は、情報を入力する例えば操作キー等である。
【0051】
上述したように、本実施形態のAPPプロビジョニングエンジン21は、実施形態1に示した機能と同様であるが、本実施形態のようにクライアント装置1に実装されている場合、クライアント装置1にインストール等されているAPPを動作させるのに必要な実行環境を構築する。例えば、複数のAPPがクライアント装置1に実行されており、複数のAPPを動作させるよう要求があった場合、APPプロビジョニングエンジン21は、各APPに対応するTag情報を読み込み、各APPを動作させるのに必要な実行環境をクライアント装置1の物理ソースを用いて構築する。そして、APPプロビジョニングエンジン21は、あるAPPを動作させるのに必要な実行環境を構築することができなかった場合は、例えばAPPが動作可能な実行環境を構築することができないためAPPを動作させることができない旨の情報等を、表示装置54等に出力する。
【0052】
以上、本実施形態によれば、単体の装置内で動作するAPPの動作に関する品質も保証することができる。
【0053】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
また、上述した各実施形態を任意に組み合わせてもよい。
【符号の説明】
【0054】
1 クライアント装置
2 サーバ装置
【特許請求の範囲】
【請求項1】
実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込み手段と、
前記読み込み手段で読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築手段と、
を有する情報処理装置。
【請求項2】
前記構築手段は、前記動作情報に基づいて、断片化された仮想化リソースを組み合わせ、前記アプリケーションを動作させる実行環境を構築する請求項1記載の情報処理装置。
【請求項3】
前記構築手段は、前記読み込み手段で読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築することができなかった場合、前記アプリケーションを動作させることができない旨の情報を出力する請求項1又は2記載の情報処理装置。
【請求項4】
前記動作情報には、前記アプリケーションの実行に伴う課金に関する基本情報が含まれ、
前記アプリケーションが実行された場合、前記基本情報及び前記実行に関する情報に基づいて、前記アプリケーションの実行に伴う課金情報を計数する計数手段を更に有する請求項1乃至3の何れか1項記載の情報処理装置。
【請求項5】
前記動作情報には、前記アプリケーションの動作環境ごとの性能を表す性能情報が含まれ、
前記構築手段は、前記読み込み手段で読み込まれた前記動作情報に含まれる性能情報に基づいて、前記アプリケーションを動作させる実行環境を構築する請求項1乃至4の何れか1項記載の情報処理装置。
【請求項6】
前記動作情報は、前記アプリケーションに付加されており、
前記読み込み手段は、前記アプリケーションに付加された前記動作情報を読み込む請求項1乃至5の何れか1項記載の情報処理装置。
【請求項7】
前記動作情報は、前記アプリケーションと対応付けられて記憶装置に記憶されており、
前記読み込み手段は、前記アプリケーションと対応付けられた前記動作情報を前記記憶装置から読み込む請求項1乃至5の何れか1項記載の情報処理装置。
【請求項8】
前記動作情報は、ファイルシステム上のアプリケーションごとのヘッダー情報に含まれており、
前記読み込み手段は、前記ヘッダー情報から前記アプリケーションの前記動作情報を読み込む請求項1乃至5の何れか1項記載の情報処理装置。
【請求項9】
情報処理装置が、実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込みステップと、
前記情報処理装置が、前記読み込みステップで読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築ステップと、
を含む情報処理方法。
【請求項10】
コンピュータを、
実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込み手段と、
前記読み込み手段で読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築手段と、
して機能させるプログラム。
【請求項1】
実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込み手段と、
前記読み込み手段で読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築手段と、
を有する情報処理装置。
【請求項2】
前記構築手段は、前記動作情報に基づいて、断片化された仮想化リソースを組み合わせ、前記アプリケーションを動作させる実行環境を構築する請求項1記載の情報処理装置。
【請求項3】
前記構築手段は、前記読み込み手段で読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築することができなかった場合、前記アプリケーションを動作させることができない旨の情報を出力する請求項1又は2記載の情報処理装置。
【請求項4】
前記動作情報には、前記アプリケーションの実行に伴う課金に関する基本情報が含まれ、
前記アプリケーションが実行された場合、前記基本情報及び前記実行に関する情報に基づいて、前記アプリケーションの実行に伴う課金情報を計数する計数手段を更に有する請求項1乃至3の何れか1項記載の情報処理装置。
【請求項5】
前記動作情報には、前記アプリケーションの動作環境ごとの性能を表す性能情報が含まれ、
前記構築手段は、前記読み込み手段で読み込まれた前記動作情報に含まれる性能情報に基づいて、前記アプリケーションを動作させる実行環境を構築する請求項1乃至4の何れか1項記載の情報処理装置。
【請求項6】
前記動作情報は、前記アプリケーションに付加されており、
前記読み込み手段は、前記アプリケーションに付加された前記動作情報を読み込む請求項1乃至5の何れか1項記載の情報処理装置。
【請求項7】
前記動作情報は、前記アプリケーションと対応付けられて記憶装置に記憶されており、
前記読み込み手段は、前記アプリケーションと対応付けられた前記動作情報を前記記憶装置から読み込む請求項1乃至5の何れか1項記載の情報処理装置。
【請求項8】
前記動作情報は、ファイルシステム上のアプリケーションごとのヘッダー情報に含まれており、
前記読み込み手段は、前記ヘッダー情報から前記アプリケーションの前記動作情報を読み込む請求項1乃至5の何れか1項記載の情報処理装置。
【請求項9】
情報処理装置が、実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込みステップと、
前記情報処理装置が、前記読み込みステップで読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築ステップと、
を含む情報処理方法。
【請求項10】
コンピュータを、
実行要求に係るアプリケーションに対応する、前記アプリケーションの動作に関する動作情報を読み込む読み込み手段と、
前記読み込み手段で読み込まれた前記動作情報に基づいて、前記アプリケーションを動作させる実行環境を構築する構築手段と、
して機能させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2010−218049(P2010−218049A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2009−61905(P2009−61905)
【出願日】平成21年3月13日(2009.3.13)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000191076)新日鉄ソリューションズ株式会社 (136)
【Fターム(参考)】
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願日】平成21年3月13日(2009.3.13)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000191076)新日鉄ソリューションズ株式会社 (136)
【Fターム(参考)】
[ Back to top ]