(57)【要約】【課題】従量課金により算出されるソフトウェアの使用に関する課金額がユーザによる実際のソフトウェアの使用状況から乖離することを抑制すること。【解決手段】利用者ＶＭ１のチェック部３０は、ミドルウェアの実行によるリソースの使用時間又はミドルウェアの通信実績を基にしたミドルウェアの動作時間に基づいてミドルウェアの稼働時間を特定する。そして、ソフト従量課金サービス２が、ミドルウェアの稼働時間に基づいてミドルウェアの使用時間を特定する。そして、ＰａａＳ課金管理サービス４が、ミドルウェアの使用時間に基づいてミドルウェアの従量課金を行う。【選択図】図１
2020201524.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの実行によるリソースの使用時間又は通信実績を基にした該ソフトウェアの動作時間に基づいて前記ソフトウェアの稼働時間を算出し、
算出した稼働時間に基づいて前記ソフトウェアの使用に関する対価を決定する
処理をコンピュータが実行することを特徴とする決定方法。
【請求項２】
前記ソフトウェアの起動に応じて生成されたプロセスの実行によるリソースの使用時間を特定し、
特定した使用時間に基づき、前記ソフトウェアの実行によるリソースの使用時間を算出することを特徴とする請求項１に記載の決定方法。
【請求項３】
前記ソフトウェアの起動に応じて生成されたプロセスにより出力された通信パケットの有無に基づいて該プロセスの動作時間を特定し、
特定した動作時間に基づき、通信実績を基にした前記ソフトウェアの動作時間を算出することを特徴とする請求項１に記載の決定方法。
【請求項４】
プロセスの実行によるリソースの使用時間を特定するか否かをプロセス毎に示す情報に基づいて、該使用時間を特定することを特徴とする請求項２に記載の決定方法。
【請求項５】
プロセスにより出力された通信パケットの有無に基づいて該プロセスの動作時間を特定するか否かをプロセス毎に示す情報に基づいて、該動作時間を特定することを特徴とする請求項３に記載の決定方法。
【請求項６】
前記リソースの使用量に変化があるか否かを一定時間間隔で判定し、変化がある場合に、前記一定時間に基づいて前記プロセスの実行によるリソースの使用時間を特定することを特徴とする請求項２又は４に記載の決定方法。
【請求項７】
ソフトウェアの実行によるプロセッサの動作時間と、前記ソフトウェアとの間の通信実績とに基づき、前記ソフトウェアの使用に関する対価を決定する、
処理をコンピュータが実行することを特徴とする決定方法。
【請求項８】
ソフトウェアの実行によるリソースの使用時間又は通信実績を基にした該ソフトウェアの動作時間に基づいて前記ソフトウェアの稼働時間を算出し、
算出した稼働時間に基づいて前記ソフトウェアの使用に関する対価を決定する
処理をコンピュータに実行させることを特徴とする決定プログラム。
【請求項９】
ソフトウェアの実行によるリソースの使用時間又は通信実績を基にした該ソフトウェアの動作時間に基づいて前記ソフトウェアの稼働時間を算出する算出部と、
算出部により算出された稼働時間に基づいて前記ソフトウェアの使用に関する対価を決定する決定部と
を有することを特徴とする情報処理装置。
【請求項１０】
ソフトウェアの実行によるプロセッサの動作時間と、前記ソフトウェアとの間の通信実績とに基づき、前記ソフトウェアの使用に関する対価を決定する、
処理をコンピュータに実行させることを特徴とする決定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、決定方法、決定プログラム及び情報処理装置に関する。
【背景技術】
【０００２】
クラウドシステムのＰａａＳ（Platform  as  ａ  Service）で提供されるミドルウェア等のソフトウェアに対しては従量課金が行われる。従量課金は、顧客に提供されたＶＭ（Virtual  Machine：仮想マシン）にソフトウェアがインストールされた日時からアンインストールされた日時までの期間内で、かつ、ＶＭが稼働した時間に基づいて行われる。
【０００３】
なお、従量課金に関する従来技術として、ソフトウェアに対して機能の作りこみを要することなく、かつ正確で詳細な従量課金の設定を行うことができる課金方法がある。この課金方法は、ソフトウェア毎又は該ソフトウェアの特定の機能毎の、課金のためのルールと、該ルールを用いた価格計算式とを取得し、取得されたルールに応じた、ソフトウェアまたはソフトウェアの特定の機能の使用量を計測する。そして、この課金方法は、計測された使用量と、ルールを用いた価格計算式とに基づく課金情報を出力する。
【０００４】
また、従来技術として、仮想マシン上で動作するソフトウェアの動作状況を把握する監視装置がある。この監視装置は、監視部と、発行部と、取得部とを有する。監視部は、仮想マシンの仮想プロセッサの負荷情報をモニタする。発行部は、仮想マシン上の特定のソフトウェアの動作に応じて当該仮想マシンの特定の仮想プロセッサに処理リクエストを発行する。取得部は、監視部でモニタされた特定の仮想プロセッサの負荷情報に基づき、当該仮想マシン上の特定のソフトウェアの稼働状況を取得する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１８−５５１７０号公報
【特許文献２】特開２０１７−１７４３４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＶＭが稼働した時間に基づく従来の従量課金は、正確でないという問題がある。例えば、ＶＭにソフトウェアがインストールされた場合でも、ソフトウェアの保守等で、ＶＭの稼働中にソフトウェアが実行されない場合、従来の従量課金では、課金が実際より多くなる。
【０００７】
本発明は、１つの側面では、従量課金により算出されるソフトウェアの使用に関する課金額がユーザによる実際のソフトウェアの使用状況から乖離することを抑制することを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、決定方法では、ソフトウェアの実行によるリソースの使用時間又は通信実績を基にした該ソフトウェアの動作時間に基づいて前記ソフトウェアの稼働時間を算出する処理をコンピュータが実行する。そして、算出した稼働時間に基づいて前記ソフトウェアの使用に関する対価を決定する処理をコンピュータが実行する。
【発明の効果】
【０００９】
１つの側面では、本発明は、従量課金により算出されるソフトウェアの使用に関する課金額がユーザによる実際のソフトウェアの使用状況から乖離することを抑制できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例に係るミドルウェア課金の方法を説明するための図である。
【図２】図２は、稼働情報ファイルの一例を示す図である。
【図３】図３は、稼働記録ファイルの一例を示す図である。
【図４】図４は、ソフト課金ログの一例を示す図である。
【図５】図５は、チェック部の機能構成を示す図である。
【図６】図６は、監視中情報の一例を示す図である。
【図７】図７は、チェックＡ部によるチェックＡ処理のフローを示すフローチャートである。
【図８】図８は、チェックＢ部によるチェックＢ処理のフローを示すフローチャートである。
【図９】図９は、プロセスチェック部によるプロセスチェック処理のフローを示すフローチャートである。
【図１０】図１０は、リソースチェック部によるリソースチェック処理のフローを示すフローチャートである。
【図１１】図１１は、パケットチェック部によるパケットチェック処理のフローを示すフローチャートである。
【図１２】図１２は、実施例に係る決定プログラムを実行するコンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する決定方法、決定プログラム及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１２】
まず、実施例に係るミドルウェア課金の方法について説明する。図１は、実施例に係るミドルウェア課金の方法を説明するための図である。図１に示すように、実施例に係るミドルウェア課金は、利用者ＶＭ１が有する機能とソフト従量課金サービス２が提供する機能とＰａａＳ課金管理サービス４が提供する機能により実現される。
【００１３】
利用者ＶＭ１は、利用者に提供されるＶＭであり、ミドルウェアが実行される。ソフト従量課金サービス２は、ミドルウェアの提供及び従量課金に用いられる使用時間を計算するサービスである。ＰａａＳ課金管理サービス４は、ミドルウェアの使用時間に基づいて従量課金を行うサービスである。利用者ＶＭ１はクラウドシステム上で動作し、ソフト従量課金サービス２とＰａａＳ課金管理サービス４は、クラウドシステム上で提供されるサービスである。
【００１４】
利用者ＶＭ１は、ＶＭ内ソフト管理部１１と、稼働記録ファイル１２と、ＶＭ内ソフト情報ファイル１３とを有する。ＶＭ内ソフト管理部１１は、利用者ＶＭ１で実行されるソフトウェアを管理する。ＶＭ内ソフト管理部１１は、利用者からの指示を受け付けて、ミドルウェアのインストール及びアンインストールを行う。稼働記録ファイル１２は、ミドルウェアの稼働時間に関する記録を記憶する。ＶＭ内ソフト情報ファイル１３は、利用者ＶＭ１で実行されるソフトウェアの情報を記憶する。
【００１５】
ＶＭ内ソフト管理部１１は、チェック部３０と、ＶＭ内ソフト情報通知部１１ａとを有する。チェック部３０は、ＶＭで実行されるミドルウェアの稼働状況をチェックする。ＶＭ内ソフト情報通知部１１ａは、利用者ＶＭ１に関する情報をソフト従量課金サービス２に通知する。
【００１６】
チェック部３０は、定期的に動作し、利用者ＶＭ１にインストールされたミドルウェアの稼働情報ファイル２１をソフト従量課金サービス２から取得する（ｔ１）。稼働情報ファイル２１は、ミドルウェアの稼働に関する情報を記憶する。図２は、稼働情報ファイル２１の一例を示す図である。図２に示すように、稼働情報ファイル２１は、ｎａｍｅ、ｖｅｒｓｉｏｎ、ｓｅｒｉａｌ、ｐｒｏｃｅｓｓｅｓ、ｐａｃｋｅｔｓ＿ｍｏｎｉｔｏｒｉｎｇ、ｒｅｓｏｕｒｃｅｓ＿ｍｏｎｉｔｏｒを記憶する。
【００１７】
ｎａｍｅは、ミドルウェアの名前であり、例えば、「ＭＩＤＤＬＥＷＡＲＥ＿Ａ」である。ｖｅｒｓｉｏｎは、ミドルウェアのバージョンであり、例えば、「ｖ１．４．２」である。ｓｅｒｉａｌは、ミドルウェアを識別する番号であり、例えば、「Ｂ５１４０６ＳＤＢ」である。ｐｒｏｃｅｓｓｅｓは、ミドルウェアの実行に応じて生成されるプロセスの名前であり、例えば、「ｏｍｓｓｅｒｖｄ」、「ｅｘｔｐ＿ｉｓ」、・・・、「ｉｓｊｍｘｍａｎａｇｅ」である。
【００１８】
ｐａｃｋｅｔｓ＿ｍｏｎｉｔｏｒｉｎｇは、ミドルウェアの実行に応じて生成されるプロセスのうち、従量課金のために通信が監視されるプロセスの名前である。ｒｅｓｏｕｒｃｅｓ＿ｍｏｎｉｔｏｒは、ミドルウェアの実行に応じて生成されるプロセスのうち、従量課金のためにリソースが監視されるプロセスの名前である。リソースには、例えば、ＣＰＵ、仮想メモリ、スレッド等がある。
【００１９】
チェック部３０は、ミドルウェアの実行に応じて生成されるプロセスを稼働情報ファイル２１に基づいて特定し、特定したプロセスの実行時間に基づいてミドルウェアの稼働時間を特定する。そして、チェック部３０は、特定した稼働時間を稼働記録ファイル１２に記録する（ｔ２）。
【００２０】
図３は、稼働記録ファイル１２の一例を示す図である。図３に示すように、稼働記録ファイル１２は、ｓｅｒｉａｌとｓｔａｒｔとｅｎｄを記憶する。ｓｔａｒｔは、稼働開始時刻であり単位は秒である。ｅｎｄは、稼働終了時刻であり単位は秒である。
【００２１】
ＶＭ内ソフト情報通知部１１ａは、稼働記録ファイル１２とＶＭ内ソフト情報ファイル１３を１日１回オブジェクトストレージ３に格納する（ｔ３）。
【００２２】
ソフト従量課金サービス２のソフト利用情報管理機能２２は、利用者毎に格納された稼働記録ファイル１２とＶＭ内ソフト情報ファイル１３をオブジェクトストレージ３から１日１回取得して（ｔ４）、ソフト利用情報２３として管理する。
【００２３】
ソフト従量課金サービス２のソフト課金諸元情報通知機能２５は、１日１回ソフト利用情報管理機能２２のＡＰＩ（Application  Programming  Interface）２４を呼び出してソフト利用情報２３を取得する。そして、ソフト課金諸元情報通知機能２５は、ミドルウェアの稼働時間に基づいて前日分の課金情報を作成し、ソフト課金ログ２６として管理する（ｔ５）。また、ソフト課金諸元情報通知機能２５は、ＰａａＳの課金管理を行うＰａａＳ課金管理サービス４に使用時間を含むソフト利用実績を通知する（ｔ６）。そして、ＰａａＳ課金管理サービス４は、使用時間に基づいてミドルウェアの従量課金を行う（ｔ７）。
【００２４】
図４は、ソフト課金ログ２６の一例を示す図である。図４に示すように、稼働記録ファイル１２の情報とＶＭ内ソフト情報ファイル１３の情報に基づいて作成される。ソフト課金ログ２６は、ソフト課金ログ２６には、ｖｍ＿ｉｄと、ｂｃｏｄｅと、ｓｔａｒｔ＿ｄａｔｅｔｉｍｅと、ｅｎｄ＿ｄａｔｅｔｉｍｅと、ｂｉｌｌｉｎｇ＿ｔｙｐｅと、ｖｃｐｕｓと、ｓｅｒｖｉｃｅ＿ｉｄと、ｔｅｎａｎｔ＿ｉｄとが含まれる。
【００２５】
ｖｍ＿ｉｄは、ＶＭを識別する番号であり、例えば、「ａ５４４０ｃａｅ−０００ａ−４４ｄ４−８ｆ２ｅ−３６ｄ９７ｅａ２９２ａｂ」である。ｂｃｏｄｅは、ミドルウェアを識別する番号であり、例えば、「Ｂ５１４０６ＳＤＢ」である。ｓｔａｒｔ＿ｄａｔｅｔｉｍｅは、稼働開始時刻であり、例えば、「２０１８−１２−０７  ０８：００：００」である。ｅｎｄ＿ｄａｔｅｔｉｍｅは、稼働終了時刻であり、例えば、「２０１８−１２−０７  １１：３２：００」である。
【００２６】
ｂｉｌｌｉｎｇ＿ｔｙｐｅは、従量課金の種別を示す。例えば、「ＨＡ０１」は時間単位で課金されることを示す。ｖｃｐｕｓは、使用した仮想ＣＰＵの数であり、例えば、「１」である。ｓｅｒｖｉｃｅ＿ｉｄは、ＰａａＳ課金管理サービス４によって課金されるサービスを識別する番号であり、例えば「０００００００００００２１８８」である。ｔｅｎａｎｔ＿ｉｄは、課金されるテナントを識別する識別子であり、例えば、「ｆａｂ３０８８ｅ５８ｄ９４８５３９ｅ３４０６９ａｃ７６ｄ７３５ｅ」である。
【００２７】
図４では、「ＭＩＤＤＬＥＷＡＲＥ＿Ａ」の稼働時間が３時間３２分（１４９９２０−１３７２００秒）＋３時間３６分（１６９９９０−１５７０３０秒）＝７時間８分であり、時間単位の課金である。したがって、８時間の仮想ＣＰＵ（ｖＣＰＵ）の使用がＰａａＳ課金管理サービス４に通知される。
【００２８】
次に、チェック部３０の機能構成について説明する。図５は、チェック部３０の機能構成を示す図である。図５に示すように、チェック部３０は、チェックＡ部３１と、チェックＢ部３２と、プロセスチェック部３３と、リソースチェック部３４と、パケットチェック部３５とを有する。
【００２９】
チェックＡ部３１は、インストール済みのミドルウェアについて稼働情報ファイル２１を取得し、インストール済みのミドルウェア毎に、ミドルウェアの起動に応じて生成されたプロセスを監視中か否かを監視中情報に基づいて判定する。ここで、監視中情報は、プロセスが動作しているか否かを監視する方法を示す情報である。監視中情報は、例えば、メインメモリに記憶される。図６は、監視中情報の一例を示す図である。図６に示すように、監視中情報には、ｂｃｏｄｅと、ｂｏｔｈと、ｒｅｓｏｕｒｃｅｓと、ｐａｃｋｅｔと、ｎｅｉｔｈｅｒとが含まれる。
【００３０】
ｂｃｏｄｅは、監視中のミドルウェアを識別する識別子である。ｒｅｓｏｕｒｃｅｓは、使用リソースの変化の監視によって動作中であるか否かが監視されるプロセスを識別するプロセスＩＤである。ｐａｃｋｅｔは、通信パケットの監視によって動作中であるか否かが監視されるプロセスを識別するプロセスＩＤである。ｎｅｉｔｈｅｒは、使用リソースの変化の監視も通信パケットの監視も行われないプロセスを識別するプロセスＩＤである。ｂｏｔｈは、通信パケットの監視と使用リソースの変化の監視によって動作中であるか否かが監視されるプロセスを識別するプロセスＩＤである。
【００３１】
チェックＡ部３１は、監視中情報があるミドルウェアについては、ミドルウェアの起動に応じて生成されたプロセスを監視中であると判定し、監視中情報がないミドルウェアについては、ミドルウェアの起動に応じて生成されたプロセスを監視中でないと判定する。
【００３２】
チェックＡ部３１は、ミドルウェアの起動に応じて生成されたプロセスを監視中でないと判定すると、実行中のプロセスＩＤを取得し、取得したプロセスＩＤと稼働情報ファイル２１に基づいて監視中情報を作成して記憶するとともにチェックＢ部３２を起動する。チェックＡ部３１は、例えば、ｐｓコマンドを用いて、実行中のプロセスＩＤを取得する。チェックＡ部３１は、例えば１時間等の一定時間毎に起動される。
【００３３】
チェックＢ部３２は、例えば１分等の一定時間毎にプロセスチェック部３３を起動することによって、ミドルウェアの起動に応じて生成されたプロセスを監視する。チェックＢ部３２は、ミドルウェアの起動に応じて生成されたプロセスのうちの１つでも存在しない又は異常である場合に、監視中情報を削除し、ミドルウェアの起動に応じて生成されたプロセスの監視を終了する。
【００３４】
プロセスチェック部３３は、監視中情報に基づいて、リソースチェック部３４とパケットチェック部３５を起動する。具体的には、プロセスチェック部３３は、監視中情報のｂｏｔｈに属するプロセスについては、パケットチェック部３５を起動し、パケットチェック部３５によるチェック結果に基づいてリソースチェック部３４を起動する。プロセスチェック部３３は、監視中情報のｐａｃｋｅｔに属するプロセスについては、パケットチェック部３５を起動する。プロセスチェック部３３は、監視中情報のｒｅｓｏｕｒｃｅｓに属するプロセスについては、リソースチェック部３４を起動する。プロセスチェック部３３は、監視中情報のｎｅｉｔｈｅｒに属するプロセスについては、リソースチェック部３４もパケットチェック部３５も起動しない。
【００３５】
そして、プロセスチェック部３３は、プロセスのリソース状態に変化があるとリソースチェック部３４により判定された場合には、プロセスを生成したミドルウェアが稼働中であると判定し、稼働時間を累積する。リソース状態には、例えば、ＣＰＵ使用量、仮想メモリ使用量、スレッド数、プロセスの状態等がある。ＣＰＵ使用量は、ユーザによるＣＰＵ使用量とシステムによるＣＰＵ使用量に分けられる場合もある。あるいは、プロセスチェック部３３は、プロセスが通信パケットを出力したとパケットチェック部３５により判定された場合にも、プロセスを生成したミドルウェアが稼働中であると判定し、稼働時間を累積する。
【００３６】
リソースチェック部３４は、プロセスのリソース状態を取得し、リソース状態に変化があるか否かを判定する。リソースチェック部３４は、例えば、ｐｒｏｃｆｓを用いてプロセスのリソース状態を取得する。リソースチェック部３４は、例えば、スレッドとして実行される。
【００３７】
パケットチェック部３５は、プロセスが一定時間内に通信パケットを出力したか否かを判定する。パケットチェック部３５は、例えば、ｔｃｐｄｕｍｐを用いて、プロセスが一定時間内に通信パケットを出力したか否かを判定する。パケットチェック部３５は、例えば、スレッドとして実行される。
【００３８】
次に、チェック部３０によるチェック処理のフローについて説明する。図７は、チェックＡ部３１によるチェックＡ処理のフローを示すフローチャートである。図７に示すように、チェックＡ部３１は、インストール済みミドルウェアをチェックし（ステップＳ１）、対象のミドルウェアに関する稼働情報ファイル２１を取得する（ステップＳ２）。
【００３９】
そして、チェックＡ部３１は、以下のステップＳ３〜ステップＳ６の処理を各インストール済みミドルウェアについて行う。ステップＳ３〜ステップＳ６では、チェックＡ部３１は、ミドルウェアを監視中か否かを判定し（ステップＳ３）、監視中である場合には、次のミドルウェアを処理する。
【００４０】
一方、ミドルウェアを監視中でない場合には、チェックＡ部３１は、ｐｓコマンドを実行し（ステップＳ４）、監視中情報を作成して記憶する（ステップＳ５）。そして、チェックＡ部３１は、ミドルウェア毎にチェックＢ部３２を起動する（ステップＳ６）。
【００４１】
このように、チェックＡ部３１は、ミドルウェア毎にチェックＢ部３２を起動することで、ミドルウェアの実行に応じて生成されたプロセスを監視することができる。
【００４２】
図８は、チェックＢ部３２によるチェックＢ処理のフローを示すフローチャートである。図８に示すように、チェックＢ部３２は、ステップＳ１１〜ステップＳ１５の処理を実行後、一定時間スリープする（ステップＳ１６）ことを繰り返す。
【００４３】
ステップＳ１１〜ステップＳ１５では、チェックＢ部３２は、全ての対象プロセスについてステップＳ１１〜ステップＳ１３の処理を実行する。ここで、対象プロセスは、対象のミドルウェアの起動に応じて生成されたプロセスである。
【００４４】
ステップＳ１１〜ステップＳ１３では、チェックＢ部３２は、プロセスが存在するか否かを判定し（ステップＳ１１）、プロセスが存在しない場合には、監視中情報を削除し（ステップＳ１７）、チェックＢ処理を終了する。
【００４５】
一方、プロセスが存在する場合には、チェックＢ部３２は、プロセスチェック部３３に指示してプロセスチェックを行い（ステップＳ１２）、正常動作中か否かを判定する（ステップＳ１３）。そして、チェックＢ部３２は、正常動作中でない場合には、監視中情報を削除し（ステップＳ１７）、チェックＢ処理を終了し、正常動作中である場合には、次のプロセスを処理する。
【００４６】
そして、全ての対象プロセスについてステップＳ１１〜ステップＳ１３の処理を終了すると、チェックＢ部３２は、累積時間に変更があるか否かを判定する（ステップＳ１４）。そして、累積時間に変更がない場合には、チェックＢ部３２は、稼働記録ファイル１２に稼働時間を記録する（ステップＳ１５）。なお、累積時間については後述する。チェックＢ部３２は、稼働記録ファイル１２に、ミドルウェアを識別する番号と、稼働開始時刻と稼働終了時刻を記録する。
【００４７】
このように、チェックＢ部３２は、ミドルウェアにより生成されるプロセスのうち１つでも存在しなくなるか又は異常となったことを検出することで、チェックＢ処理を終了することができる。
【００４８】
図９は、プロセスチェック部３３によるプロセスチェック処理のフローを示すフローチャートである。図９の処理は、図８に示したステップＳ１２の処理に対応する。図９に示すように、プロセスチェック部３３は、監視中情報に基づいて、対象プロセスがｎｅｉｔｈｅｒに属するか否かを判定し（ステップＳ２１）、対象プロセスがｎｅｉｔｈｅｒに属する場合には、プロセスチェック処理を終了する。
【００４９】
一方、対象プロセスがｎｅｉｔｈｅｒに属さない場合には、プロセスチェック部３３は、対象プロセスがｂｏｔｈに属するか否かを判定し（ステップＳ２２）、ｂｏｔｈに属さない場合には、ｐａｃｋｅｔに属するか否かを判定する（ステップＳ２３）。そして、対象プロセスがｐａｃｋｅｔに属さない場合には、対象プロセスはｒｅｓｏｕｒｃｅｓに属するので、プロセスチェック部３３は、リソースチェック部３４に指示してリソースチェックを実行する（ステップＳ２４）。
【００５０】
そして、プロセスチェック部３３は、リソース変化あり又は通信パケットの出力ありか否かを判定し（ステップＳ２５）、リソース変化あり又は通信パケットの出力ありの場合には、ミドルウェアの稼働時間を累積する（ステップＳ２６）。
【００５１】
プロセスチェック部３３は、ミドルウェアの稼働時間を最初に累積する場合には、稼働開始時刻を記憶して累積時間を０として記憶し、２回目以降に累積する場合には、図８のステップＳ１６に示した一定時間を累積時間に加える。図８のステップＳ１５では、プロセスチェック部３３により記憶された稼働開始時刻と累積時間に基づいて、チェックＢ部３２は、稼働記録ファイル１２に、稼働開始時刻と稼働終了時刻を記録する。なお、プロセスチェック部３３は、図８に示したステップＳ１１〜ステップＳ１３の繰り返しにおいて、累積時間の更新は１回だけ行う。
【００５２】
また、ステップＳ２３において、対象プロセスがｐａｃｋｅｔに属する場合には、プロセスチェック部３３は、パケットチェック部３５に指示してパケットチェックを実行し（ステップＳ２７）、ステップＳ２５へ移動する。
【００５３】
また、ステップＳ２２において、対象プロセスがｂｏｔｈに属する場合には、プロセスチェック部３３は、パケットチェック部３５に指示してパケットチェックを実行し（ステップＳ２８）、通信パケットの出力があるか否かを判定する（ステップＳ２９）。そして、プロセスチェック部３３は、通信パケットの出力がある場合には、ステップＳ２５へ移動し、通信パケットの出力がない場合には、リソースチェック部３４に指示してリソースチェックを実行し（ステップＳ３０）、ステップＳ２５へ移動する。
【００５４】
このように、プロセスチェック部３３が、リソース変化あり又は通信パケットの出力ありの場合に、ミドルウェアの稼働時間を累積することで、チェック部３０は、ミドルウェアの稼働時間を稼働記録ファイル１２に記録することができる。
【００５５】
図１０は、リソースチェック部３４によるリソースチェック処理のフローを示すフローチャートである。図１０の処理は、図９に示したステップＳ２４及びステップＳ３０の処理に対応する。図１０に示すように、リソースチェック部３４は、ｐｒｏｃｆｓを用いてリソース状態を取得し（ステップＳ４１）、前回データがあるか否かを判定する（ステップＳ４２）。
【００５６】
そして、前回データがある場合には、リソースチェック部３４は、今回のデータと前回データとの間に差分があるか否かを判定し（ステップＳ４３）、差分がない場合には、リソース変化なしを返却する（ステップＳ４４）。リソースチェック部３４は、特定のリソースについて差分があるか否かを判定してもよく、複数のリソースについて差分があるか否かを判定してもよい。複数のリソースについて差分があるか否かを判定する場合には、例えば、１つでも差分があるリソースがあれば、差分があると判定する。
【００５７】
今回のデータと前回データとの間に差分がある場合には、リソースチェック部３４は、リソース変化ありを返却し（ステップＳ４５）、今回のデータを前回データとして記憶する（ステップＳ４６）。また、ステップＳ４２において、前回データがない場合にも、今回のデータを前回データとして記憶する（ステップＳ４６）。
【００５８】
このように、リソースチェック部３４がプロセスのリソース状態の変化の有無を判定することで、プロセスチェック部３３は、プロセスが動作しているか否かを判定することができる。
【００５９】
図１１は、パケットチェック部３５によるパケットチェック処理のフローを示すフローチャートである。図１１の処理は、図９に示したステップＳ２７及びステップＳ２８の処理に対応する。図１１に示すように、パケットチェック部３５は、ｔｃｐｄｕｍｐプロセスを実行し（ステップＳ５１）、Ｎ秒経過後停止し、通信パケットの出力を確認する（ステップＳ５２）。Ｎは例えば５である。そして、パケットチェック部３５は、確認結果に基づいて、通信パケットの出力あり、又は、通信パケットの出力なしを返却する（ステップＳ５３）。
【００６０】
このように、パケットチェック部３５が通信パケットの出力を確認することで、プロセスチェック部３３は、プロセスが動作しているか否かを判定することができる。
【００６１】
上述してきたように、実施例では、チェック部３０は、ミドルウェアの実行によるリソースの使用時間又はミドルウェアの通信実績を基にしたミドルウェアの動作時間に基づいてミドルウェアの稼働時間を特定する。そして、ソフト従量課金サービス２が、ミドルウェアの稼働時間に基づいてミドルウェアの使用時間を特定する。そして、ＰａａＳ課金管理サービス４が、ミドルウェアの使用時間に基づいてミドルウェアの従量課金を行う。したがって、ＰａａＳ課金管理サービス４は、従量課金により算出されるミドルウェアの使用に関する課金額がユーザによる実際のミドルウェアの使用状況から乖離することを抑制できる。
【００６２】
また、実施例では、チェック部３０は、ミドルウェアの起動に応じて生成されたプロセスによるリソースの使用時間を特定し、特定した使用時間に基づき、ミドルウェアの実行によるリソースの使用時間を算出する。したがって、チェック部３０は、ミドルウェアの実行によるリソースの使用時間を正確に算出することができる。
【００６３】
また、実施例では、チェック部３０は、ミドルウェアの起動に応じて生成されたプロセスにより出力された通信パケットの有無に基づいてプロセスの動作時間を特定し、特定した動作時間に基づき、通信実績を基にしたミドルウェアの動作時間を算出する。したがって、チェック部３０は、ミドルウェアの通信実績を基にした動作時間を正確に算出することができる。
【００６４】
また、実施例では、チェック部３０は、稼働情報ファイル２１に基づいて、ミドルウェアの起動に応じて生成されたプロセス毎にリソースの使用時間を特定するか否かを判定する。したがって、チェック部３０は、リソースの使用監視に適したプロセスを用いてリソースの使用時間を特定することができる。
【００６５】
また、実施例では、チェック部３０は、稼働情報ファイル２１に基づいて、ミドルウェアの起動に応じて生成されたプロセス毎に、プロセスにより出力された通信パケットの有無に基づいてプロセスの動作時間を特定するか否かを判定する。したがって、チェック部３０は、通信パケットの出力監視に適したプロセスを用いてプロセスの動作時間を特定することができる。
【００６６】
また、実施例では、チェック部３０は、プロセスのリソースの使用量に変化があるか否かを一定時間間隔で判定し、変化がある場合に、当該一定時間を累積することでリソースの使用時間を特定するので、リソースの使用時間を正確に特定することができる。
【００６７】
なお、実施例では、クラウドシステム上で動作する利用者ＶＭ１が有するチェック部３０、クラウドシステム上で提供されるソフト従量課金サービス２及びＰａａＳ課金管理サービス４について説明した。しかしながら、チェック部３０が動作するコンピュータ（物理マシン）でソフト従量課金サービス２及びＰａａＳ課金管理サービス４を提供するソフトウェアが動作してもよい。そこで、チェック部３０とソフト従量課金サービス２及びＰａａＳ課金管理サービス４を提供するソフトウェアとを決定プログラムとして実行するコンピュータについて説明する。
【００６８】
図１２は、実施例に係る決定プログラムを実行するコンピュータのハードウェア構成を示す図である。図１２に示すように、コンピュータ５０は、メインメモリ５１と、ＣＰＵ（Central  Processing  Unit）５２と、ＬＡＮ（Local  Area  Network）インタフェース５３と、ＨＤＤ（Hard  Disk  Drive）５４とを有する。また、コンピュータ５０は、スーパーＩＯ（Input  Output）５５と、ＤＶＩ（Digital  Visual  Interface）５６と、ＯＤＤ（Optical  Disk  Drive）５７とを有する。
【００６９】
メインメモリ５１は、プログラムやプログラムの実行途中結果等を記憶するメモリである。ＣＰＵ５２は、メインメモリ５１からプログラムを読み出して実行する中央処理装置である。ＣＰＵ５２は、メモリコントローラを有するチップセットを含む。
【００７０】
ＬＡＮインタフェース５３は、コンピュータ５０をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。ＨＤＤ５４は、プログラムやデータを格納するディスク装置であり、スーパーＩＯ５５は、マウスやキーボード等の入力装置を接続するためのインタフェースである。ＤＶＩ５６は、液晶表示装置を接続するインタフェースであり、ＯＤＤ５７は、ＤＶＤの読み書きを行う装置である。
【００７１】
ＬＡＮインタフェース５３は、ＰＣＩエクスプレス（ＰＣＩｅ）によりＣＰＵ５２に接続され、ＨＤＤ５４及びＯＤＤ５７は、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）によりＣＰＵ５２に接続される。スーパーＩＯ５５は、ＬＰＣ（Low  Pin  Count）によりＣＰＵ５２に接続される。
【００７２】
そして、コンピュータ５０において実行される決定プログラムは、コンピュータ５０により読み出し可能な記録媒体の一例であるＤＶＤに記憶され、ＯＤＤ５７によってＤＶＤから読み出されてコンピュータ５０にインストールされる。あるいは、決定プログラムは、ＬＡＮインタフェース５３を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてコンピュータ５０にインストールされる。そして、インストールされた決定プログラムは、ＨＤＤ５４に記憶され、メインメモリ５１に読み出されてＣＰＵ５２によって実行される。
【００７３】
また、実施例では、ミドルウェアの従量課金について説明したが、本発明はこれに限定されるものではなく、他のソフトウェアの従量課金にも同様に適用することができる。
【符号の説明】
【００７４】
１    利用者ＶＭ
２    ソフト従量課金サービス
３    オブジェクトストレージ
４    ＰａａＳ課金管理サービス
１１    ＶＭ内ソフト管理部
１１ａ    ＶＭ内ソフト情報通知部
１２    稼働記録ファイル
１３    ＶＭ内ソフト情報ファイル
２１    稼働情報ファイル
２２    ソフト利用情報管理機能
２３    ソフト利用情報
２４    ＡＰＩ
２５    ソフト課金諸元情報通知機能
２６    ソフト課金ログ
３０    チェック部
３１    チェックＡ部
３２    チェックＢ部
３３    プロセスチェック部
３４    リソースチェック部
３５    パケットチェック部
５０    コンピュータ
５１    メインメモリ
５２    ＣＰＵ
５３    ＬＡＮインタフェース
５４    ＨＤＤ
５５    スーパーＩＯ
５６    ＤＶＩ
５７    ＯＤＤ
【図１】
2020201524.tif 000003
【図２】
2020201524.tif 000004
【図３】
2020201524.tif 000005
【図４】
2020201524.tif 000006
【図５】
2020201524.tif 000007
【図６】
2020201524.tif 000008
【図７】
2020201524.tif 000009
【図８】
2020201524.tif 000010
【図９】
2020201524.tif 000011
【図１０】
2020201524.tif 000012
【図１１】
2020201524.tif 000013
【図１２】
2020201524.tif 000014