(57)【特許請求の範囲】
【請求項１】
実行端末上に、少なくとも１つ以上のソフトウェアリソースで構成される実行環境を構築する実行環境構築装置であって、
各前記実行環境に係る環境構成データを格納する環境構成データベースと、
各ユーザ端末から取得したユーザ環境情報を格納するユーザ環境情報データベースと、
各前記環境構成データの各前記ソフトウェアリソースについて、前記ユーザ環境情報データベースにおける相対的出現頻度を算出することにより、各前記環境構成データの需要度を算出し、前記需要度に基づいて各前記環境構成データによる前記実行環境を構築する前記実行端末の数を決定する環境構成データ作成部と、
前記実行環境を構築した前記実行端末から、前記ユーザ環境情報と環境類似度が近い前記環境構成データを有するものを選択する環境構成データ選択部と、
を有することを特徴とする実行環境構築装置。
【請求項２】
前記ソフトウェアリソースは、オペレーティングシステムのリソースであり、
前記環境構成データは、前記環境構成データ作成部が指定したオペレーティングシステムおよび当該オペレーティングシステムのバージョン情報を具備し、
前記ユーザ環境情報は、オペレーティングシステムの種別および当該オペレーティングシステムのバージョン情報を具備すること
を特徴とする請求項１に記載の実行環境構築装置。
【請求項３】
前記ソフトウェアリソースは更に、アプリケーションのリソースを含み、
前記環境構成データは更に、前記環境構成データ作成部が指定したアプリケーションおよび当該アプリケーションのバージョン情報を具備し、
前記ユーザ環境情報は更に、アプリケーションの種別および当該アプリケーションのバージョン情報を具備すること
を特徴とする請求項２に記載の実行環境構築装置。
【請求項４】
前記環境構成データ作成部は、過去に取得したユーザ環境情報ログに基づいて前記需要度を算出すること
を特徴とする請求項１ないし請求項３のいずれか１項に記載の実行環境構築装置。
【請求項５】
前記環境構成データ作成部は、過去に取得したユーザ環境情報ログと前記ソフトウェアリソースの脆弱性情報とに基づいて前記需要度を算出すること
を特徴とする請求項１ないし請求項３のいずれか１項に記載の実行環境構築装置。
【請求項６】
前記環境構成データ作成部は、前記ソフトウェアリソースをそれぞれ保管する記憶装置を用いて、前記実行環境を構築すること
を特徴とする請求項４または請求項５に記載の実行環境構築装置。
【請求項７】
前記環境構成データ作成部は、前記ソフトウェアリソースの前記ユーザ環境情報ログにおける出現頻度に基づき、前記需要度を算出すること
を特徴とする請求項４または請求項５に記載の実行環境構築装置。
【請求項８】
前記環境構成データ作成部は更に、前記ソフトウェアリソースの種類に応じた重み付けを行って前記需要度を算出すること
を特徴とする請求項７に記載の実行環境構築装置。
【請求項９】
前記環境構成データ選択部は、ソフトウェアリソース間の機能の類似性に基づき、前記ユーザ環境情報と前記環境構成データ間の前記環境類似度を評価すること
を特徴とする請求項１ないし請求項８のいずれか１項に記載の実行環境構築装置。
【請求項１０】
前記環境構成データ選択部は、前記ソフトウェアリソース間の機能の前記類似性を数値で評価する
ことを特徴とする、請求項９に記載の実行環境構築装置。
【請求項１１】
前記環境構成データ選択部は、ユーザが前記実行環境を使用した後のフィードバック情報に基づいて、前記ソフトウェアリソース間の前記類似性の評価を変更すること
を特徴とする請求項１０に記載の実行環境構築装置。
【請求項１２】
前記フィードバック情報は、少なくとも肯定値と否定値の２値が選択可能である
ことを特徴とする請求項１１に記載の実行環境構築装置。
【請求項１３】
前記フィードバック情報の値が前記肯定値であった場合、前記環境構成データと前記ユーザ環境情報とで異なる前記ソフトウェアリソース間の前記類似性の値を増加させること
を特徴とする、請求項１２に記載の実行環境構築装置。
【請求項１４】
前記フィードバック情報の値が前記否定値であった場合、前記環境構成データと前記ユーザ環境情報とで異なる前記ソフトウェアリソース間の前記類似性の値を減少させること
を特徴とする、請求項１２に記載の実行環境構築装置。
【請求項１５】
前記環境構成データ選択部は、前記実行環境を構築した前記実行端末から、前記ユーザ環境情報と前記環境類似度が一定以上である前記環境構成データを有するものを複数選択すること
を特徴とする請求項１ないし請求項１４のいずれか１項に記載の実行環境構築装置。
【請求項１６】
請求項１ないし請求項１５のいずれか１項に記載の実行環境構築装置と、前記実行端末からなる実行環境構築システムであって、
前記実行端末は、書き込み専用記憶装置と、ソフトウェアリソース保管用記憶装置とを有し、
タスク実行中に発生した記録装置への変更は前記ソフトウェアリソース保管用記憶装置には記録せず、代わりに前記書き込み専用記憶装置に記録する
ことを特徴とする実行環境構築システム。
【請求項１７】
請求項１ないし請求項１５のいずれか１項に記載の実行環境構築装置と、前記実行端末からなる実行環境構築システムであって、
前記実行端末は、１台の物理構成からなる計算機の上で実行される複数の仮想マシンであること
を特徴とする実行環境構築システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの動作確認やマルウェアの解析などに於いて、ユーザに計算機環境を提供する実行環境構築装置および実行環境構築システムに関する。
【背景技術】
【０００２】
ソフトウェアの挙動や性能は、ソフトウェアが実行される計算機環境に依存する。そのため、開発したソフトウェアをリリースする前に、ソフトウェアの利用が想定される様々な計算機環境上で挙動をテストする必要がある。また、このソフトウェアをリリースした後では、ソフトウェアベンダのサポートデスクを介して、ユーザからソフトウェアの動作の不具合の問い合わせを多く受ける。この不具合の原因の特定には、ユーザＰＣと同等の計算機環境で、このソフトウェアを実行させる必要がある。
【０００３】
一方、特許文献１には、ネットワーク上で他のコンピュータに対して不正処理を行う第１のソフトウェアの処理結果から得られる第１の挙動情報と、検査対象の第２のソフトウェアの処理結果から得られる第２の挙動情報とを比較し、両者の類似性を検査するマルウェアの類似性検査方法を提供する技術が開示されている。
特許文献２には、対象コンピュータ上の不正プログラムを検査サーバにより検査する技術が開示されている。
【０００４】
これら特許文献１や特許文献２に示されているように、コンピュータウイルス、スパイウェア、ワームなどに代表されるマルウェアの検知や解析を目的とした、マルウェア解析システムの研究が進んでいる。ここでマルウェアとは、不正かつ有害な動作を行う意図で作成されたソフトウェアプログラムのことを言う。
【０００５】
これらマルウェア解析システムは、ユーザＰＣ上で発見された、マルウェアの可能性がある実行ファイル（擬陽性ファイル）を、システム上の計算機環境で実行し、その挙動から、実行ファイルがマルウェアであるか否かを判定するものである。マルウェアの挙動は、実行される計算機環境に依存する。このため、マルウェアに、ユーザＰＣ上と同等の振る舞いをさせるには、ユーザＰＣと同等の計算機環境を用意する必要がある。
このように、ソフトウェア開発・サポートやマルウェア解析においては、様々なユーザＰＣと同等の計算機環境でプログラムを実行させることが要求される。
【０００６】
非特許文献１には、この問題を解決する際に、マルウェア解析環境上で、マルウェアが環境依存の関数を呼び出した場合に、ユーザＰＣ上で当該関数を実行して結果をマルウェアに返し、マルウェアにユーザＰＣ上と同じ計算機環境で実行されているように見せかける技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−０３７５４５号公報
【特許文献２】特開２０１０−１９８０５４号公報
【非特許文献】
【０００８】
【非特許文献１】"A framework for behavior-based malware analysis in the cloud",2009,  Proc. of 5th International Conference on Information Systems Security
【発明の概要】
【発明が解決しようとする課題】
【０００９】
非特許文献１の発明は、マルウェアからの関数呼び出しに基づき、このマルウェアの挙動を解析する際には有効である。しかし、非特許文献１の発明で扱えるのは関数呼び出しのみであり、厳密な正確性は期し難い。よって、ソフトウェア開発・サポートやマルウェア解析において、正確な評価や解析を行なう為には、ユーザＰＣと同等の計算機環境でプログラムを実行することが必要である。しかし、要求が発生してから、任意の計算機環境を構成するのは時間がかかり、ソフトウェア開発や、ソフトウェアのサポートや、マルウェアの解析には大きなコストが掛っていた。
【００１０】
そこで、本発明は、様々なユーザＰＣと同等の計算機環境を構築し、これら計算機環境でプログラムを実行させることを可能とする実行環境構築装置、および、実行環境構築システムを提供することを課題とする。
【課題を解決するための手段】
【００１１】
前記課題を解決し、本発明の目的を達成するために、以下のように構成した。
すなわち、本発明の実行環境構築装置は、実行端末上に、少なくとも１つ以上のソフトウェアリソースで構成される実行環境を構築する実行環境構築装置であって、各前記実行環境に係る環境構成データを格納する環境構成データベースと、各ユーザ端末から取得したユーザ環境情報を格納するユーザ環境情報データベースと、各前記環境構成データの各前記ソフトウェアリソースについて、前記ユーザ環境情報データベースにおける相対的出現頻度を算出することにより、各前記環境構成データの需要度を算出し、前記需要度に基づいて各前記環境構成データによる前記実行環境を構築する前記実行端末の数を決定する環境構成データ作成部と、前記実行環境を構築した前記実行端末から、前記ユーザ環境情報と環境類似度が近い前記環境構成データを有するものを選択する環境構成データ選択部とを有することを特徴とする。
その他の手段については、発明を実施するための形態のなかで説明する。
【発明の効果】
【００１２】
本発明によれば、様々なユーザＰＣと同等の計算機環境を構築し、これら計算機環境でプログラムを実行させることが可能となる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態に於ける実行環境構築システムを示す概略の構成図である。
【図２】第１の実施形態に於ける実行環境構築装置を示す概略の構成図である。
【図３】第１の実施形態に於ける実行端末を示す概略の構成図である。
【図４】第１の実施形態に於けるユーザＰＣを示す概略の構成図である。
【図５】第１の実施形態に於ける環境構成リソース管理装置を示す概略の構成図である。
【図６】第１の実施形態に於ける実行端末のディレクトリを示す図である。
【図７】第１の実施形態に於けるリソースＤＢを示す図である。
【図８】第１の実施形態に於ける環境構成データＤＢを示す図である。
【図９】第１の実施形態に於ける実行端末ＤＢを示す図である。
【図１０】第１の実施形態に於けるユーザ環境情報ＤＢを示す図である。
【図１１】第１の実施形態に於ける類似度ＤＢを示す図である。
【図１２】第１の実施形態に於ける環境構成データ作成処理と実行環境構築処理を示すフローチャートである。
【図１３】第１の実施形態に於ける構成需要度算出処理を示すフローチャートである。
【図１４】第１の実施形態に於ける実行端末選択処理を示すフローチャートである。
【図１５】第１の実施形態に於ける環境類似度算出処理を示すフローチャートである。
【図１６】第１の実施形態に於けるタスク終了処理を示すフローチャートである。
【図１７】第１の実施形態に於ける類似度更新処理を示すフローチャートである。
【図１８】第２の実施形態に於ける実行環境構築装置を示す概略の構成図である。
【図１９】第２の実施形態に於ける脆弱性情報ＤＢを示す図である。
【図２０】第２の実施形態に於ける構成需要度算出処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以降、本発明を実施するための形態（「本実施形態」という）を、図等を参照して詳細に説明する。第１の実施形態として、本発明をソフトウェア動作確認システムに適用した例を示す。第２の実施形態として、本発明をマルウェア解析システムに適用した例を示す。
【００１５】
ソフトウェア動作確認システムは、ソフトウェアベンダなどが開発したソフトウェアプログラムを、指定されたオペレーティングシステムとアプリケーションの下で動作確認するシステムである。
【００１６】
マルウェア解析システムは、ソフトウェアプログラムを指定されたオペレーティングシステムやアプリケーションの下で実行し、その挙動をもとに、当該ソフトウェアプログラムがマルウェアであるか否かを判定するシステムである。
【００１７】
第１の実施形態の構成と、第２の実施形態の構成には共通点が多い。このため、まず、ソフトウェア動作確認システムに適用した実施形態について説明し、その後にマルウェア解析システムに適用した実施形態の固有の構成について説明する。
【００１８】
（第１の実施形態の構成）
図１は、第１の実施形態に於ける実行環境構築システムを示す概略の構成図である。
実行環境構築システム１０には、通信ネットワーク１００−１を介して、ユーザＰＣ２００（＝２００−１〜２００−３）が接続されている。
実行環境構築システム１０の各要素は、パーソナルコンピュータやワークステーション等の計算機により構成されている。本実施形態の実行環境構築システム１０は、ユーザＰＣ２００に対して、指定された環境構成を持つ実行端末５０−ｎ（ｎは１から５の自然数）の利用権限を提供する機能を有している。本実施形態では、実行端末５０の数は５台であるが、これに限られず、任意の台数でも良い。
【００１９】
ユーザＰＣ２００は、パーソナルコンピュータなどの計算機である。ユーザＰＣ２００は、通信ネットワーク１００−１を介して実行環境構築システム１０と接続されている。ユーザＰＣ２００は、実行環境構築システム１０が有している特定の環境構成を持つ実行端末５０の利用権限が付与される。本実施形態の通信ネットワーク１００−１は、ＬＡＮ（Local Area Network:ローカルエリアネットワーク）である。しかし、これに限定されず、ＷＡＮ（Wide Area Network:ワイドエリアネットワーク）や、携帯電話（またはＰＨＳ（Personal Handyphone System））などの公衆回線網や、専用回線網でも良い。
【００２０】
実行環境構築システム１０は、ゲートウェイ１１と、実行環境構築装置２０と、実行端末５０（＝５０−１〜５０−５）と、環境構成リソース管理装置８０と、通信ネットワーク１００−２とを有している。
【００２１】
通信ネットワーク１００−２は、実行環境構築システム１０内の装置間の通信を可能にする機能を有し、ゲートウェイ１１と、実行環境構築装置２０と、実行端末５０（＝５０−１〜５０−５）と、環境構成リソース管理装置８０とを接続している。本実施形態の通信ネットワーク１００−２は、前述した通信ネットワーク１００−１と同様にＬＡＮ（ローカルエリアネットワーク）である。しかし、これに限定されず、ＷＡＮや、携帯電話（またはＰＨＳ）などの公衆回線網や、専用回線網でも良い。
【００２２】
また、本実施形態では、実行環境構築システム１０内の全ての装置が１つの通信ネットワーク１００−２により接続されている。しかし、これに限定されず、実行環境構築システム１０内の各装置が、ゲートウェイによって相互に通信可能に接続されている複数の通信ネットワークを介して接続されても良い。
【００２３】
ゲートウェイ１１は、パーソナルコンピュータやワークステーションなどの計算機によって構成されている。ゲートウェイ１１は、通信ネットワーク１００−１と通信ネットワーク１００−２との間に接続され、実行環境構築システム１０内の実行環境構築装置２０および実行端末５０（＝５０−１〜５０−５）と、ユーザＰＣ２００との通信を中継する機能を有している。ゲートウェイ１１は、ユーザＰＣ２００が実行環境構築システム１０にアクセスする際の認証を行う機能を有している。この認証には、パスワード、生体認証、公開鍵、秘密鍵など、任意の公知の認証方式を用いて良い。ゲートウェイ１１は、認証を行ったユーザＰＣ２００のＩＰ（インターネットプロトコル）アドレスを送信元ＩＰアドレスまたは送信先ＩＰアドレスとして持つＩＰパケットのみを、通信ネットワーク１００−１と通信ネットワーク１００−２間で中継する機能を有している。
【００２４】
実行環境構築装置２０は、パーソナルコンピュータやワークステーションなどの計算機で構成されている。実行環境構築装置２０は、各実行端末５０−ｎに設定する環境構成データを作成し、少なくとも１つ以上のソフトウェアリソースで構成される実行環境を構築する機能を有している。実行環境構築装置２０は更に、ユーザＰＣ２００から取得したユーザ環境情報に類似する環境構成データを持つ実行端末５０−ｎを決定する。
【００２５】
ここで、少なくとも１つ以上のソフトウェアは、少なくともオペレーティングシステムのリソースを有している。環境構成データとは、実行端末５０−ｎを構成するオペレーティングシステム、アプリケーションなどのソフトウェアの一覧であり、少なくともオペレーティングシステムの種別および当該オペレーティングシステムのバージョン情報を具備している。ユーザ環境情報は、ユーザが利用を希望するオペレーティングシステムやアプリケーションの一覧であり、少なくともオペレーティングシステムの種別および当該オペレーティングシステムのバージョン情報を具備している。
このソフトウェアリソースは更に、アプリケーションのリソースを含む場合がある。環境構成データＤＢ４２（図２）は更に、環境構成データ作成部３４（図２）が指定したアプリケーションおよび当該アプリケーションのバージョン情報を具備する場合がある。ユーザ環境情報ＤＢ４４（図２）は更に、ユーザが要求するアプリケーションの種別および当該アプリケーションのバージョン情報を具備する場合がある。
「環境構成データとユーザ環境情報が類似する」とは、実行端末５０−ｎの構成とユーザが希望する構成のオペレーティングシステムやアプリケーションが、同一または類似した機能を持つことである。
【００２６】
実行環境構築システム１０内には１つ以上の実行端末５０が含まれている。本実施形態の実行環境構築システム１０は、５台の実行端末５０（＝５０−１〜５０−５）を含んでいる。実行端末５０（＝５０−１〜５０−５）は、パーソナルコンピュータやワークステーションなどの計算機で構成されている。実行端末５０（＝５０−１〜５０−５）は、それぞれ実行環境構築装置２０から指定された環境構成データに基づいて、オペレーティングシステムやアプリケーションを構成する。オペレーティングシステムやアプリケーションを構成する際は、環境構成リソース管理装置８０が管理するオペレーティングシステムやアプリケーションの資源を用いる。実行端末５０は、実行環境構築装置２０によってユーザＰＣ２００に割り当てられ、ユーザＰＣ２００が要求する処理を実行する。実行環境構築システム１０で扱う実行端末５０の台数の決定は、実行環境構築システム１０の管理者が行う。本実施形態の実行端末５０（＝５０−１〜５０−５）は、それぞれ物理構成や機能に差異は存在しない。後述する図３に於いて実行端末５０−１を例に、実行端末５０の機能の詳細について説明する。
【００２７】
環境構成リソース管理装置８０は、パーソナルコンピュータやワークステーションなどの計算機と、１つ以上の外部記憶装置から構成される。環境構成リソース管理装置８０内では複数のオペレーティングシステムやアプリケーションが管理され、要求に応じて実行端末５０に提供される。
【００２８】
図２は、第１の実施形態に於ける実行環境構築装置を示す概略の構成図である。
実行環境構築装置２０は、ＣＰＵ（Central Processing Unit）２１と、インタフェース２２と、バス２３と、メモリ３０と、外部記憶装置４０と、入出力装置２４とを備えている。
ＣＰＵ２１は、処理を実行するための演算装置である。
インタフェース２２は、実行環境構築装置２０を通信ネットワーク１００−２に接続するＬＡＮカードなどの通信装置である。
バス２３は、ＣＰＵ２１と、メモリ３０と、インタフェース２２と、外部記憶装置４０、入出力装置２４とを接続するデータ経路である。
【００２９】
メモリ３０は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）などで構成され、ＣＰＵ２１で実行する命令のセットがプログラムとして記述されたデータを含む記憶媒体である。メモリ３０は、環境構成管理プログラム３１を有している。そして、この環境構成管理プログラム３１がＣＰＵ２１で実行されることによって、環境構成データの作成と、ユーザ環境情報に類似する環境構成データを持つ実行端末５０−ｎ（ｎは端末番号）の決定とを行う。
【００３０】
外部記憶装置４０は、ＨＤＤ(Hard Disk Drive)やフラッシュメモリなどから構成され、リソースＤＢ４１と、環境構成データＤＢ４２と、実行端末ＤＢ４３と、ユーザ環境情報ＤＢ４４と、類似度ＤＢ４５とを格納している。
【００３１】
入出力装置２４は、キーボード２５と、マウス２６と、ディスプレイ２７とを有している。入出力装置２４は、管理者が実行環境構築装置２０にデータの入力や出力を行う。
【００３２】
環境構成管理プログラム３１は、タスク終了部３２と、環境構成データ選択部３３と、環境構成データ作成部３４とを有している。ＣＰＵ２１が環境構成管理プログラム３１を実行することによって、これらの各部の機能が具現化される。
【００３３】
環境構成データ作成部３４は、今後、ユーザＰＣ２００の操作者であるユーザからの需要が多くなると考えられる環境構成を作成する構成需要度算出処理と、環境構成データ作成処理を行う。
【００３４】
環境構成データ選択部３３は、ユーザ環境情報に類似する環境構成データを算出する環境類似度算出処理と、高い類似度を持つ実行端末５０を決定してユーザに割り当てる実行端末選択処理とを行う機能を有している。実行端末選択処理において、環境構成データ選択部３３は、実行環境を構築した実行端末５０から、ユーザ環境情報と環境類似度が近い環境構成データを有するものを選択する。環境構成データ選択部３３は、ソフトウェアリソース間の機能の類似性を数値で評価することによって、ユーザ環境情報と実行端末５０の実行環境の環境類似度を評価する。更に環境構成データ選択部３３は、ユーザが実行環境を使用した後のフィードバック情報に基づいて、ソフトウェアリソース間の類似性の評価を変更する。
タスク終了部３２は、ユーザに割り当てられている実行端末５０を終了させるタスク終了処理を行う。
【００３５】
図３は、第１の実施形態に於ける実行端末を示す概略の構成図である。図２に示す実行環境構築装置２０と同様の要素には同一の符号を付与している。
実行端末５０は、図２に示す実行環境構築装置２０と同様に、ＣＰＵ２１と、インタフェース２２と、バス２３と、入出力装置２４とを有し、図２に示す実行環境構築装置２０とは異なるメモリ６０と、ルート記憶装置７０ａと、書き込み用記憶装置７０ｂとを有している。
【００３６】
メモリ６０は、ＲＡＭやＲＯＭなどで構成され、環境構築プログラム６１と、タスク実行プログラム６２と、タスク終了プログラム６３とを格納している。環境構築プログラム６１は、この実行端末５０に、環境構成データに従った実行環境の構築を行う。タスク実行プログラム６２は、この実行端末５０上の実行環境に於いて、ユーザが指定するタスクを実行する。タスク終了プログラム６３は、このタスクの終了処理を行う。
【００３７】
ルート記憶装置７０ａと書き込み用記憶装置７０ｂは、後述する図５に示す環境構成リソース管理装置８０内のＯＳ記憶装置９０−１〜９０−３、ＡＰ１記憶装置９１−１〜９１−３、ＡＰ２記憶装置９２−１〜９２−３と連携して、実行環境構築装置２０からの環境構成データに従った、実行端末５０（＝５０−１〜５０−５）の環境を構成する。
【００３８】
このように、実行端末５０（＝５０−１〜５０−５）は、環境構成リソース管理装置８０と連携して、指示された環境を構成し、ユーザタスクを実行する。
【００３９】
図４は、第１の実施形態に於けるユーザＰＣを示す概略の構成図である。図２に示す実行環境構築装置２０と同様の要素には同一の符号を付与している。
ユーザＰＣ２００は、図２に示す実行環境構築装置２０と同様に、ＣＰＵ２１と、インタフェース２２と、バス２３と、入出力装置２４とを有し、図２に示す実行環境構築装置２０とは異なるメモリ２１０と、記憶装置２２０とを有している。
【００４０】
メモリ２１０は、実行端末制御プログラム２１１を格納している。実行端末制御プログラム２１１は、環境構成データに従った実行環境の構築を実行端末５０（＝５０−１〜５０−ｎ）に指示し、構築した実行環境に係る実行端末５０を制御する機能を有している。
記憶装置２２０は、ユーザが使用する任意のデータやプログラムを格納する機能を有している。
【００４１】
図５は、第１の実施形態に於ける環境構成リソース管理装置を示す概略の構成図である。
環境構成リソース管理装置８０は、ＯＳ記憶装置９０−１〜９０−３と、ＡＰ１記憶装置９１−１〜９１−３と、ＡＰ２記憶装置９２−１〜９２−３と、バス８２と、リソース提供装置８１とを有している。リソース提供装置８１は、通信ネットワーク１００−２に接続されると共に、ＯＳ記憶装置９０−１〜９０−３と、ＡＰ１記憶装置９１−１〜９１−３と、ＡＰ２記憶装置９２−１〜９２−３とに、バス８２を介して接続されている。
【００４２】
環境構成リソース管理装置８０は、実行端末５０−１〜５０−５に対してオペレーティングシステムやアプリケーションに代表されるソフトウェアリソースの提供を行う機能を有している。このためリソース提供装置８１は、通信ネットワーク１００−２を介して、環境構成リソース管理装置８０内のリソースを提供する機能を有している。このリソースの提供にあたって、ＮＦＳ（Network File System）やＣＩＦＳ（Common Internet File System）など、任意のファイル共有技術を利用して良い。
【００４３】
ＯＳ記憶装置９０−１〜９０−３、ＡＰ１記憶装置９１−１〜９１−３、ＡＰ２記憶装置９２−１〜９２−３は、それぞれＨＤＤやフラッシュメモリなどから構成されている。
ＯＳ記憶装置９０−１は、オペレーティングシステムＯＳ−１（図７）のデータを保存する。ＯＳ記憶装置９０−２は、オペレーティングシステムＯＳ−２（図７）のデータを保存する。ＯＳ記憶装置９０−３は、オペレーティングシステムＯＳ−３（図７）のデータを保存する。
【００４４】
ＡＰ１記憶装置９１−１は、第１のアプリケーションＡＰ１−１（図７）のデータを保存する。ＡＰ１記憶装置９１−２は、第１のアプリケーションＡＰ１−２（図７）のデータを保存する。ＡＰ１記憶装置９１−３は、第１のアプリケーションＡＰ１−３（図７）のデータを保存する。
【００４５】
ＡＰ２記憶装置９２−１は、第２のアプリケーションＡＰ２−１（図７）のデータを保存する。ＡＰ２記憶装置９２−２は、第２のアプリケーションＡＰ２−２（図７）のデータを保存する。ＡＰ２記憶装置９２−３は、第２のアプリケーションＡＰ２−３（図７）のデータを保存する。
【００４６】
バス２３は、ＯＳ記憶装置９０−１〜９０−３、ＡＰ１記憶装置９１−１〜９１−３、ＡＰ２記憶装置９２−１〜９２−３と、リソース提供装置８１とを通信可能に接続する。
【００４７】
本実施形態では、各リソースを、それぞれ異なった物理的な記憶装置に保存している。しかし、これに限定されず、複数のリソースを１つの物理的な記憶装置に保存しても良い。このように、環境構成リソース管理装置８０によって、オペレーティングシステムやアプリケーションなどのリソースを、一元的に保管することが可能になる。
【００４８】
図６は、第１の実施形態に於ける実行端末のディレクトリを示す図である。
実行端末５０のディレクトリ構造は、実行環境構築装置２０から指示される環境構成データに基づいて構築される。図６においては、後述する図８の環境構成データＤＢ４２に格納されている環境構成データ１に従い、オペレーティングシステムとしてＯＳ−１が選択（設定）され、第１のアプリケーションとしてＡＰ１−１が選択（設定）され、第２のアプリケーションとしてＡＰ２−１が選択（設定）されている。
ルートディレクトリ７１は、ディレクトリ構造の最上位であり、ＯＳディレクトリ７２と、ＡＰ１ディレクトリ７３と、ＡＰ２ディレクトリ７４と、書き込み用ディレクトリ７５の上位に位置している。このルートディレクトリ７１は、ルート記憶装置７０ａ内に存在する。
【００４９】
ＯＳディレクトリ７２は、オペレーティングシステムＯＳ−１を保管するディレクトリである。実際のＯＳ−１のデータは、環境構成リソース管理装置８０内のＯＳ記憶装置９０−１内に格納されている。このため、ＯＳディレクトリ７２は、ライン７２ａに示すとおり、ＮＦＳやＣＩＦＳなどのファイル共有システムを利用して、リソース提供装置８１を介して、ＯＳ記憶装置９０−１に接続される。これにより、オペレーティングシステムＯＳ−１を利用するユーザからみると、ＯＳディレクトリ７２内に、ＯＳ記憶装置９０−１内のオペレーティングシステムＯＳ−１が、仮想的に存在することとなる。
【００５０】
ＡＰ１ディレクトリ７３は、第１のアプリケーションＡＰ１−１を保管するディレクトリである。実際の第１のアプリケーションＡＰ１−１のデータは、環境構成リソース管理装置８０内のＡＰ１記憶装置９１−１内に格納されている。このため、ＡＰ１ディレクトリ７３は、ライン７３ａに示すとおり、ＮＦＳやＣＩＦＳなどのファイル共有システムを利用して、リソース提供装置８１を介して、ＡＰ１記憶装置９１−１に接続される。これにより、第１のアプリケーションＡＰ１−１を利用するユーザからみると、ＡＰ１ディレクトリ７３内に、ＡＰ１記憶装置９１−１内の第１のアプリケーションＡＰ１−１が、仮想的に存在することとなる。
【００５１】
ＡＰ２ディレクトリ７４は、第２のアプリケーションＡＰ２−１を保管するディレクトリである。実際の第２のアプリケーションＡＰ２−１のデータは、環境構成リソース管理装置８０内のＡＰ２記憶装置９２−１内に格納されている。このため、ＡＰ２ディレクトリ７４は、ライン７４ａに示すとおり、ＮＦＳやＣＩＦＳなどの公知のファイル共有システムを利用して、リソース提供装置８１を介して、ＡＰ２記憶装置９２−１に接続される。これにより、第２のアプリケーションＡＰ２−２を利用するユーザからみると、ＡＰ２ディレクトリ７４内に、ＡＰ２記憶装置９２−１内の第２のアプリケーションＡＰ２−１が、仮想的に存在することとなる。
【００５２】
書き込み用ディレクトリ７５は、ライン７５ａを介して、実行端末５０−１内の書き込み用記憶装置７０ｂに接続される。ライン７５ａには、Ultra ATA（Ultra Advanced Technology Attachment）やSerial ATA（Serial Advanced Technology Attachment）など、通常のＰＣがローカルドライブに接続するための技術が用いられる。
【００５３】
書き込み用ディレクトリ７５は、ユーザやプログラムによる、ＯＳディレクトリ７２、ＡＰ１ディレクトリ７３、ＡＰ２ディレクトリ７４に対する変更内容を記録する機能を有している。例えば、ＯＳディレクトリ７２内に、新しいファイルが書かれた場合、この新しいファイルはＯＳ記憶装置９０−１に書かれるのではなく、書き込み用ディレクトリ７５を通じて、書き込み用記憶装置７０ｂ内に作成される。このように、書き込み先の記憶装置の変更は、ＮＦＳやＣＩＦＳなどのファイル共有システムを利用することで行われる。ＯＳディレクトリ７２、ＡＰ１ディレクトリ７３、ＡＰ２ディレクトリ７４に対する変更内容は全て、書き込み用記憶装置７０ｂに行われる。従って、タスク終了後に、書き込み用記憶装置７０ｂ内のデータを全て消去することにより、実行端末５０をタスク実行前の状態に復旧可能である。
【００５４】
図７は、第１の実施形態に於けるリソースＤＢを示す図である。
リソースＤＢ４１は、リソースＩＤ４１ａの項目と、リソースタイプ４１ｂの項目と、
重み付け４１ｃの項目とを有している。
リソースＤＢ４１に於けるリソースＩＤ４１ａの項目は、環境構成リソース管理装置８０に保管されるソフトウェアリソースを一意に識別する識別子が格納される。図７の例では、ＯＳ−１，ＯＳ−２，ＯＳ−３，ＡＰ１−１，ＡＰ１−２，ＡＰ１−３，ＡＰ２−１，ＡＰ２−２，ＡＰ２−３の種類のリソースの識別子が格納されている。環境構成リソース管理装置８０、および、リソースＤＢ４１で管理するソフトウェアリソースの種類は、実行環境構築システム１０の管理者が決定する。
【００５５】
リソースタイプ４１ｂの項目は、実行環境構築システム１０で扱うソフトウェアリソースのタイプを示している。図７の例では、ＯＳの他に、ＡＰ１、ＡＰ２の、計３つのソフトウェアリソースのタイプがある。ＯＳは、オペレーティングシステムに係るリソースであることを示している。ＡＰ１は、第１のアプリケーションであることを示しており、例えば、メールクライアント・アプリケーションである。ＡＰ２は、第２のアプリケーションであることを示しており、例えばＷｅｂブラウザのアプリケーションである。
環境構成リソース管理装置８０、および、リソースＤＢ４１で扱うリソースタイプは、実行環境構築システム１０の管理者が決定する。
【００５６】
重み付け４１ｃの項目は、環境を構成する際の、各リソースタイプ４１ｂの重要度を示している。重要度が高いほど、環境構成に対する影響が大きいことを意味する。リソースＩＤ４１ａの値が異なっていても、リソースタイプ４１ｂの値が同一であれば、重み付け４１ｃの値は同一となる。本実施形態では、重み付け４１ｃの項目を１〜１００の１００段階で表現しており、オペレーティングシステムＯＳの重み付け４１ｃの値は１００、第１のアプリケーションＡＰ１の重み付け４１ｃの値は５０、第２のアプリケーションＡＰ２の重み付け４１ｃの値は２０としている。このため、環境構成に対する各リソースタイプの影響度は、オペレーティングシステムＯＳが最も高く、第１のアプリケーションＡＰ１の影響度が次に高く、第２のアプリケーションＡＰ２の影響度が最も低くなる。重み付け４１ｃの項目には、１〜１００の他に、０．０〜１．０など、任意の数値範囲を指定して良い。但し、重み付け４１ｃの値は、環境構成データ作成部３４、環境構成データ選択部３３で行われる数値計算で用いられるため、記号など、数値に換算できないものは利用できない。各リソースタイプ４１ｂの値に対する重み付け４１ｃの値の決定は、外部からの情報などを基に、実行環境構築システム１０の管理者が行う。
このように、リソースＤＢ４１により、環境構成リソース管理装置８０で管理されるリソースと、それらの重要度とを一元的に管理できる。
【００５７】
図８は、第１の実施形態に於ける環境構成データＤＢを示す図である。
環境構成データＤＢ４２は、実行環境構築装置２０が作成した環境構成データを管理する機能を有している。環境構成データＤＢ４２の各レコードは、リソースタイプ４１ｂごとに、１つ以上のリソースを設定している。環境構成データＤＢ４２のいずれかのレコードに従って、実行端末５０は構成される。このため、環境構成データＤＢ４２には、リソースタイプごとの設定項目が存在する。図８の例では、オペレーティングシステムＯＳのリソースタイプに対応したＯＳ設定４２ｂの項目と、第１のアプリケーションＡＰ１のリソースタイプに対応したＡＰ１設定４２ｃの項目と、第２のアプリケーションＡＰ２のリソースタイプに対応したＡＰ２設定４２ｄの項目とが設けられている。
【００５８】
環境構成データＩＤ４２ａの項目は、各環境構成データを一意に識別する識別子が格納される。図８の例では、環境構成データ１から環境構成データ４まで、４つの環境構成データが格納されている。
【００５９】
ＯＳ設定４２ｂの項目は、各環境構成データに含まれるオペレーティングシステムＯＳの種類を示す値が格納される。同様に、ＡＰ１設定４２ｃの項目は、各環境構成データに含まれる第１のアプリケーションＡＰ１の種類を示す値が格納され、ＡＰ２設定４２ｄの項目は、各環境構成データに含まれる第２のアプリケーションＡＰ２の種類を示す値が格納される。図８の例では、環境構成データ１は、ＯＳ設定４２ｂの値としてＯＳ−１が、ＡＰ１設定４２ｃの値としてＡＰ１−１が、ＡＰ２設定４２ｄの値としてＡＰ２−１が設定されている。環境構成データ２には、ＯＳ設定４２ｂの値としてＯＳ−２が、ＡＰ１設定４２ｃの値としてＡＰ１−２が、ＡＰ２設定４２ｄの値としてＡＰ２−１が構成されている。環境構成データ３には、ＯＳ設定４２ｂの値としてＯＳ−２が、ＡＰ１設定４２ｃの値としてＡＰ１−１が、ＡＰ２設定４２ｄの値として、ＡＰ２−２が設定されている。
【００６０】
ＯＳ設定４２ｂの項目には、少なくとも１つのリソースが設定されている必要がある。オペレーティングシステムが設定されていない実行端末５０は、アプリケーションを起動できないためである。ＡＰ１設定４２ｃの項目とＡＰ２設定４２ｄの項目は、必ずしもリソースが設定されていなくても良い。例えば、環境構成データ４は、ＯＳ設定４２ｂの値にＯＳ−２を設定し、ＡＰ２設定４２ｄの値にＡＰ２−１を設定しているが、ＡＰ１設定４２ｃは、”Ｎ／Ａ”（Not Available）であり、リソースが格納されていない。
このように、環境構成データＤＢ４２により、実行環境構築装置２０が作成した環境構成データの一元的な管理が可能となる。
【００６１】
図９は、第１の実施形態に於ける実行端末ＤＢを示す図である。
実行端末ＤＢ４３は、実行環境構築システム１０に設定されている環境構成データと、実行環境構築システム１０内の各実行端末５０の使用状況とを管理する機能を有している。実行端末ＤＢ４３は、実行端末ＩＤ４３ａの項目と、適用環境構成データ４３ｂの項目と、状態４３ｃの項目とを有している。
実行端末ＩＤ４３ａの項目は、各実行端末５０を一意に認識する機能を有している。
【００６２】
適用環境構成データ４３ｂの項目は、各実行端末５０に割り当てられている環境構成データＩＤ４２ａを示す識別子が格納されている。各実行端末５０への環境構成データの割当ては、実行環境構築装置２０により行われる。
【００６３】
状態４３ｃの項目は、実行端末５０の現在の利用状況を示す値が格納される。実行端末５０がユーザに割り当てられ、何らかのタスクを実行中の場合は「使用中」となり、そうでない場合は、「未使用」となる。状態４３ｃの値の設定は、実行環境構築装置２０が行う。
本実施形態では、実行端末５０−１には、環境構成データ１が設定され、状態４３ｃの値は、「未使用」である。
【００６４】
複数の実行端末５０に対して、単一の適用環境構成データ４３ｂが設定されていても良い。本実施形態では、実行端末５０−２、および、実行端末５０−４に環境構成データ２が設定されている。また、環境構成データＤＢ４２にある環境構成データは、１つ以上の実行端末５０に適用される。本実施形態では、図８に示すとおり４種類の環境構成データが、環境構成データＤＢ４２に存在し、いずれも１つ以上の実行端末５０に適用されている。
このように、実行端末ＤＢ４３により、各実行端末５０の使用状況、および、設定されている環境構成データの一元的な管理が可能となる。
【００６５】
図１０は、第１の実施形態に於けるユーザ環境情報ＤＢを示す図である。
ユーザ環境情報ＤＢ４４は、ユーザ環境情報ＩＤ４４ａの項目と、ＯＳ設定４４ｂの項目と、ＡＰ１設定４４ｃの項目と、ＡＰ２設定４４ｄの項目と、取得時間４４ｅの項目とを有している。
ユーザ環境情報ＩＤ４４ａの項目は、ユーザ環境情報を一意に識別する識別子が格納されている。
以降の項目は、リソースタイプごとのユーザが希望する構成を示す識別子が格納されている。ＯＳ設定４４ｂの項目は、ユーザが使用を希望するオペレーティングシステムＯＳの種類を示す値が格納されている。ＡＰ１設定４４ｃの項目は、ユーザが使用を希望する第１のアプリケーションＡＰ１の種類を示す値が格納されている。ＡＰ２設定４４ｄの項目は、ユーザが使用を希望する第２のアプリケーションＡＰ２の種類を示す値が格納されている。取得時間４４ｅの項目は、環境構成データ選択部３３がユーザからユーザ環境情報を取得した日時が格納されている。
【００６６】
本実施形態では、ユーザ環境情報１において、ＯＳ設定４４ｂの項目はＯＳ−１、ＡＰ１設定４４ｃの項目はＡＰ１−３、ＡＰ２設定４４ｄの項目はＡＰ２−２、取得時間４４ｅの項目は、「2010/12/20 12:00:00」である。環境構成データと同様に、ユーザ環境情報においても、リソースが設定されていないリソースタイプが存在して良い。例えば、ユーザ環境情報２の例では、ユーザが、第１のアプリケーションＡＰ１が含まれない実行環境を望むため、ＡＰ１設定４４ｃの項目には”Ｎ／Ａ”（Not Available）が設定されている。
本実施形態では、ユーザ環境情報ＤＢ４４により、ユーザＰＣ２００から取得したユーザ環境情報の一元的な管理が可能となる。
【００６７】
ユーザ環境情報ＤＢ４４の第１の利用方法は、ユーザが希望する構成に近い構成を持つ実行端末５０を選択する場合であり、実行環境構築装置２０内の環境構成データ選択部３３によって利用される。ユーザ環境情報ＤＢ４４の第２の利用方法は、今後需要が増えると考えられる環境構成データ、即ち希望ユーザ数が増えると考えられる環境構成データを推定する場合であり、実行環境構築装置２０内の環境構成データ作成部３４によって利用される。
【００６８】
本実施形態のユーザ環境情報は、各ユーザがユーザＰＣ２００（＝２００−１〜２００−３）において、手作業で希望する設定を記述し、環境構成データ選択部３３に送信することによって、ユーザ環境情報ＤＢ４４に保存される。例えば、サポートデスクが、不具合発生に遭遇されたお客様からＰＣ環境を聞き取って、この環境を手作業でファイルに記述し、環境構成データ選択部３３に送信する動作などである。
しかし、これに限られず、専用のコンピュータプログラムを用いて、各ユーザの環境情報を自動生成し、環境構成データ選択部３３に送信することによって、ユーザ環境情報ＤＢ４４に保存される構成としても良い。
【００６９】
図１１は、第１の実施形態に於ける類似度ＤＢを示す図である。
類似度ＤＢ４５は、第１比較項目４５ａの項目と、第２比較項目４５ｂの項目と、類似度４５ｃの項目とを有している。
類似度ＤＢ４５は、リソースタイプが同じである２つのリソース間の「類似度」を管理している。ここでいう「類似度」は、２つのリソースを比較して、振る舞いや機能の違いの程度を、定量的に評価したものである。２つのリソースの類似度が高いほど、お互いを、代替手段として用いることができる可能性が高くなる。例えば、リソースＡとリソースＢの類似度が高い場合を考える。この場合、リソースＡが含まれる機能構成を要求するユーザに対し、リソースＡの代わりにリソースＢを含む機能構成を提供しても、リソースＡを含む機能構成を提供した場合と同等、若しくは近い結果を得ることができる。
【００７０】
類似度ＤＢ４５の第１比較項目４５ａの項目と、第２比較項目４５ｂの項目とは、比較対象となるリソースを示す値が格納されている。類似度４５ｃの項目は、第１比較項目４５ａと第２比較項目４５ｂの間の類似度を示す値が格納されている。本実施形態では、類似度４５ｃの項目に格納される値は、０．０〜１．０の数値範囲である。このとき、類似度４５ｃに格納される値が大きいほど、第１比較項目４５ａが示すリソースと、第２比較項目４５ｂが示すリソースとは類似している。同一リソース間の類似度４５ｃは、１．０である。リソースと、当該リソースと同一リソースタイプに属するリソースが無い状態（Ｎ／Ａ）との間の類似度４５ｃは、０．０である。各リソース間の類似度４５ｃの具体的数値は、実行環境構築システム１０の管理者が、外部からの情報などを参考して、決定する。本実施形態では、第１比較項目４５ａが示すリソースがＯＳ−１，第２比較項目４５ｂが示すリソースがＯＳ−２のとき、ＯＳ−１リソースとＯＳ−２リソースの類似度４５ｃは、０．９である。
【００７１】
本実施形態では、類似度４５ｃの項目に格納される値は、０．０〜１．０の数値範囲とした。しかし、これに限定されず、類似度４５ｃは、０〜１００，０〜１００００，−１００〜０、−１０００〜＋１０００など、任意の範囲を指定しても良い。但し、本実施形態では、類似度４５ｃは、数値ではない記号などは指定しない。
【００７２】
第１比較項目４５ａの項目と第２比較項目４５ｂの項目とが、逆に設定されていた場合であっても、類似度４５ｃは変わらない。本実施形態では、第１比較項目４５ａが示すリソースがＯＳ−２で、第２比較項目４５ｂが示すリソースがＯＳ−１の場合も、第１比較項目４５ａが示すリソースがＯＳ−１で、第２比較項目４５ｂが示すリソースがＯＳ−２の場合と同様に類似度４５ｃは、０．９となる。
【００７３】
すなわち、或るリソースタイプに属するリソースがｎ種類の場合、類似度ＤＢ４５には、少なくとも（ｎ×（ｎ−１）／２）通りのレコードが必要となる。
或るリソースと、このリソースと同一のリソースとの間の類似度４５ｃの項目は、常に１．０の値である。或るリソースと”Ｎ／Ａ”（Not Available）との間の類似度４５ｃの項目は、常に０．０の値となる。本実施形態では、同一のリソースとの類似度４５ｃと、”Ｎ／Ａ”（Not Available）との類似度４５ｃは、類似度ＤＢ４５に格納していないが、これらの値を示すレコードを類似度ＤＢ４５に格納しても良い。
このように、類似度ＤＢ４５により、同一リソースタイプに属するリソース間の類似度の一元的な管理が可能となる。
（第１の実施形態の動作）
【００７４】
図１２は、第１の実施形態に於ける環境構成データ作成処理と実行環境構築処理を示すフローチャートである。
処理が開始すると、ステップＳ１０において、実行環境構築装置２０は、環境構成データＤＢ４２に基づき、オペレーティングシステムＯＳ、第１のアプリケーションＡＰ１、第２のアプリケーションＡＰ２の組合せである環境構成データを全て抽出する。
ステップＳ１１〜Ｓ１３において、実行環境構築装置２０は、全ての環境構成データについて処理を繰り返す。
ステップＳ１２において、実行環境構築装置２０は、当該環境構成データの構成需要度算出処理（図１３）を呼び出す。
ステップＳ１３において、実行環境構築装置２０は、全ての環境構成データについて処理を繰り返していなかったならば、ステップＳ１１の処理に戻る。
ステップＳ１４において、実行環境構築装置２０は、構成需要度の比率に基づき、各環境構成データを割り当てる実行端末５０の数を決定する。
ステップＳ１５において、実行環境構築装置２０は、各実行端末５０に、環境構成命令を送信する。
ステップＳ１６において、実行環境構築装置２０は、実行端末ＤＢ４３の適用環境構成データ４３ｂを設定する。
ステップＳ１７において、実行環境構築装置２０は、作成した環境構成データを、環境構成データＤＢ４２に書き込み、図１２の処理を終了する。
ステップＳ２０において、各実行端末５０は、実行環境構築装置２０から環境構成命令を受信する。
【００７５】
ステップＳ２１において、各実行端末５０は、受信した構成命令に含まれている環境情報データに基づき、ＯＳディレクトリ７２、ＡＰ１ディレクトリ７３、ＡＰ２ディレクトリ７４、書き込み用ディレクトリ７５を構成し、図１２の処理を終了する。
【００７６】
図１３は、第１の実施形態に於ける構成需要度算出処理を示すフローチャートである。図１３のフローチャートは、図１２のステップＳ１３の具体的処理内容を示している。
処理が開始すると、ステップＳ３０において、実行環境構築装置２０は、環境構成データ内のオペレーティングシステムＯＳをＯＳ−ｉとし、環境構成データ内の第１のアプリケーションＡＰ１をＡＰ１−ｊとし、環境構成データ内の第２のアプリケーションＡＰ２をＡＰ２−ｋとする。
ステップＳ３１において、実行環境構築装置２０は、ユーザ環境情報ＤＢ４４に基づき、ＯＳ−ｉの相対出現頻度Ｆ（ＯＳ−ｉ）を算出する。
ステップＳ３２において、実行環境構築装置２０は、ユーザ環境情報ＤＢ４４に基づき、ＡＰ１−ｊの相対出現頻度Ｆ（ＡＰ１−ｊ）を算出する。
ステップＳ３３において、実行環境構築装置２０は、ユーザ環境情報ＤＢ４４に基づき、ＡＰ２−ｋの相対出現頻度Ｆ（ＡＰ２−ｋ）を算出する。
【００７７】
ステップＳ３４において、実行環境構築装置２０は、この環境構成データに係るオペレーティングシステムＯＳ、第１のアプリケーションＡＰ１、第２のアプリケーションＡＰ２の相対出現頻度に、それぞれ重み付け４１ｃの値を掛けて加算し、構成需要度を算出し、図１３の処理を終了する。
例として、オペレーティングシステムＯＳ−１と、第１のアプリケーションＡＰ１−３と、第２のアプリケーションＡＰ２−２とである環境構成データの場合を考える。図７から、オペレーティングシステムＯＳの重み付け４１ｃの値は１００、第１のアプリケーションＡＰ１の重み付け４１ｃの値は５０、第２のアプリケーションＡＰ２の重み付け４１ｃの値は２０である。ＯＳ−１の相対出現頻度Ｆは、０．６７である。第１のアプリケーションＡＰ１−３の相対出現頻度Ｆは、０．３３である。第２のアプリケーションＡＰ２−２の相対出現頻度Ｆは、０．６７である。
当該環境構成データの構成需要度は、各リソースの相対出現頻度に重み付け４１ｃの値を掛けて加算したものであり、０．６７×１００＋０．３３×５０＋０．６７×２０＝９６．９となる。
【００７８】
図１４は、第１の実施形態に於ける実行端末選択処理を示すフローチャートである。
処理が開始すると、ステップＳ４０において、ユーザＰＣ２００は、実行環境構築装置２０に、ユーザ環境情報を送信する。
ステップＳ４１において、ユーザＰＣ２００は、実行環境構築装置２０から「実行端末割り当て通知」を受信し、図１４の処理を終了する。
ステップＳ６０において、実行環境構築装置２０は、ユーザＰＣ２００から、ユーザ環境情報を受信する。
ステップＳ６１において、実行環境構築装置２０は、実行端末ＤＢ４３の状態が「未使用」である実行端末５０の一覧を取得する。
ステップＳ６２〜Ｓ６４において、実行環境構築装置２０は、取得した実行端末分の処理を繰返す。
ステップＳ６３において、実行環境構築装置２０は、ユーザ環境情報と当実行端末５０の環境構成データとの環境類似度算出処理（図１５）を呼び出す。
ステップＳ６４において、実行環境構築装置２０は、取得した実行端末分の処理を繰返していなかったならば、ステップＳ６２の処理に戻る。
ステップＳ６５において、実行環境構築装置２０は、環境類似度が最大の実行端末５０の状態を「使用中」に変更する。
ステップＳ６６において、実行環境構築装置２０は、ユーザＰＣ２００に、「実行端末割り当て通知」を送信する。
ステップＳ６７において、実行環境構築装置２０は、実行端末５０に、タスク実行命令を送信し、図１４の処理を終了する。
ステップＳ５０において、実行端末５０は、実行環境構築装置２０からタスク実行命令を受信し、図１４の処理を終了する。
【００７９】
図１５は、第１の実施形態に於ける環境類似度算出処理を示すフローチャートである。図１５に示すフローチャートは、図１４のステップＳ６３の処理の詳細を示すものである。
処理が開始すると、ステップＳ７０において、実行環境構築装置２０は、
ステップＳ７０において、実行環境構築装置２０は、類似度ＤＢ４５に基づき、環境構成データ内のＯＳ−ｉと、ユーザ環境情報内のＯＳ−ａの類似度を取得する。
【００８０】
ステップＳ７１において、実行環境構築装置２０は、類似度ＤＢ４５に基づき、環境構成データ内のＡＰ１−ｊと、ユーザ環境情報内のＡＰ１−ｂの類似度を取得する。
【００８１】
ステップＳ７２において、実行環境構築装置２０は、類似度ＤＢ４５に基づき、環境構成データ内のＡＰ２−ｋと、ユーザ環境情報内のＡＰ２−ｃの類似度を取得する。
【００８２】
ステップＳ７３において、実行環境構築装置２０は、両者のオペレーティングシステムＯＳの類似度４５ｃの値、第１のアプリケーションＡＰ１の類似度４５ｃの値、第２のアプリケーションＡＰ２の類似度４５ｃの値に、それぞれ重み付け４１ｃの値を掛けて加算し、両者の環境類似度を得て、図１５の処理を終了する。
【００８３】
例として、図８の環境構成データ１と、図１０のユーザ環境情報１とが入力として与えられた場合を考える。この場合、ステップＳ７０において取得されるＯＳ−１同志の類似度は、１．０である。ステップＳ７１において取得されるＡＰ１−１とＡＰ１−３との間の類似度は、０．１である。ステップＳ７２において取得されるＡＰ２−１とＡＰ２−２との間の類似度は、０．９である。ＯＳ−１〜ＯＳ−３の重み付けは１００である。ＡＰ１−１〜ＡＰ１−３の重み付けは５０である。ＡＰ２−１〜ＡＰ２−３の重み付けは２０である。ステップＳ７３において算出される環境類似度は、それぞれの類似度に重み付けを掛けた総和であり、１．０×１００＋０．１×５０＋０．９×２０＝１２３である。
【００８４】
図１６は、第１の実施形態に於けるタスク終了処理を示すフローチャートである。
処理が開始すると、ステップＳ８０において、ユーザＰＣ２００は、実行環境構築装置２０に終了通知とフィードバックとを送信し、図１６の処理を終了する。フィードバックには、使用した実行端末５０の環境が、ユーザが期待していた環境に充分に近かったかどうかの情報が含まれる。実行端末５０の環境が、ユーザが期待した環境に充分に近かった場合、フィードバックには肯定値である“ＧＯＯＤ”が設定される。実行端末５０の環境が、ユーザが期待した環境に近くなかった場合には、フィードバックには否定値である“ＢＡＤ”が設定される。フィードバックとして肯定値である“ＧＯＯＤ”、否定値である“ＢＡＤ”の何れかを送信するかは、実行端末５０を利用したユーザの判断に依る。
ステップＳ１００において、実行環境構築装置２０は、ユーザＰＣ２００から終了通知・フィードバックを受信する。
ステップＳ１０１において、実行環境構築装置２０は、フィードバックに基づき、類似度更新処理（図１７）を呼び出す。
ステップＳ１０２において、実行環境構築装置２０は、実行端末ＤＢ４３の当該実行端末の状態を「未使用」に設定する。
ステップＳ１０３において、実行環境構築装置２０は、当該実行端末５０に、「終了命令」を送信し、図１６の処理を終了する。
ステップＳ９０において、実行端末５０は、実行環境構築装置２０から、「終了命令」を受信する。
ステップＳ９１において、実行端末５０は、書き込み用ディレクトリ７５をクリアする。
ステップＳ９２において、実行端末５０は、当該実行端末５０自身を再起動し、図１６の処理を終了する。
【００８５】
図１７は、第１の実施形態に於ける類似度更新処理を示すフローチャートである。
処理が開始すると、ステップＳ１１０において、実行環境構築装置２０は、環境構成データ内のオペレーティングシステムＯＳをＯＳ−ｉ（図７参照）とし、ユーザ環境情報のオペレーティングシステムＯＳをＯＳ−ａ（図７参照）とする。
【００８６】
ステップＳ１１１において、実行環境構築装置２０は、ＯＳ−ｉとＯＳ−ａが異なるか否かを判断する。ＯＳ−ｉとＯＳ−ａが異なるならば（Ｙｅｓ）、ステップＳ１１２の処理を行う。ＯＳ−ｉとＯＳ−ａが異ならないならば（Ｎｏ）、ステップＳ１１５の処理を行う。
【００８７】
ステップＳ１１２において、実行環境構築装置２０は、フィードバックは肯定値である“ＧＯＯＤ”であるか否かを判断する。フィードバックが“ＧＯＯＤ”であったならば（Ｙｅｓ）、ステップＳ１１３の処理において、類似度ＤＢ４５のＯＳ−ｉとＯＳ−ａの類似度４５ｃの値をα加算する。フィードバックが“ＧＯＯＤ”でなかったならば（Ｎｏ）、ステップＳ１１４の処理において、類似度ＤＢ４５のＯＳ−ｉとＯＳ−ａの類似度４５ｃの値をβ減算する。
【００８８】
ステップＳ１１５において、実行環境構築装置２０は、環境構成データ内の第１のアプリケーションＡＰ１をＡＰ１−ｊ（図７参照）とし、ユーザ環境情報の第１のアプリケーションＡＰ１をＡＰ１−ｂ（図７参照）とする。
【００８９】
ステップＳ１１６において、実行環境構築装置２０は、ＡＰ１−ｊとＡＰ１−ｂが異なるか否かを判断する。ＡＰ１−ｊとＡＰ１−ｂが異なるならば（Ｙｅｓ）、ステップＳ１１７の処理を行う。ＡＰ１−ｊとＡＰ１−ｂが異ならないならば（Ｎｏ）、ステップＳ１２０の処理を行う。
【００９０】
ステップＳ１１７において、実行環境構築装置２０は、フィードバックは肯定値である“ＧＯＯＤ”であるか否かを判断する。フィードバックが“ＧＯＯＤ”であったならば（Ｙｅｓ）、ステップＳ１１８の処理において、類似度ＤＢ４５のＡＰ１−ｊとＡＰ１−ｂの類似度４５ｃの値をα加算する。フィードバックが“ＧＯＯＤ”でなかったならば（Ｎｏ）、ステップＳ１１９の処理において、類似度ＤＢ４５のＡＰ１−ｊとＡＰ１−ｂの類似度４５ｃの値をβ減算する。
【００９１】
ステップＳ１２０において、実行環境構築装置２０は、環境構成データ内の第２のアプリケーションＡＰ２をＡＰ２−ｋ（図７参照）とし、ユーザ環境情報の第２のアプリケーションＡＰ２をＡＰ２−ｃ（図７参照）とする。
【００９２】
ステップＳ１２１において、実行環境構築装置２０は、ＡＰ２−ｋとＡＰ２−ｃが異なるか否かを判断する。ＡＰ２−ｋとＡＰ２−ｃが異なるならば（Ｙｅｓ）、ステップＳ１２２の処理を行う。ＡＰ２−ｋとＡＰ２−ｃが異ならないならば（Ｎｏ）、図１７の処理を終了する。
ステップＳ１２２において、実行環境構築装置２０は、フィードバックは肯定値である“ＧＯＯＤ”であるか否かを判断する。フィードバックが“ＧＯＯＤ”であったならば（Ｙｅｓ）、ステップＳ１２３の処理において、類似度ＤＢ４５のＡＰ２−ｋとＡＰ２−ｃの類似度４５ｃの値をα加算する。フィードバックが“ＧＯＯＤ”でなかったならば（Ｎｏ）、ステップＳ１２４の処理において、類似度ＤＢ４５のＡＰ２−ｋとＡＰ２−ｃの類似度４５ｃの値をβ減算する。
【００９３】
ユーザからのフィードバックが“ＧＯＯＤ”である場合に、異なるリソース間の類似度４５ｃの値を増加するのは、両リソース間で機能の類似性が高いために、“ＧＯＯＤ”のフィードバックを得たと判断するからである。反対にユーザからのフィードバックが“ＢＡＤ”である場合に、異なるリソース間の類似度４５ｃの値を減少するのは、両リソース間で機能の類似性が低いために、“ＢＡＤ”のフィードバックを得たと判断するからである。
例えば、ユーザが、Ｗｅｂブラウザの所定バージョンとオペレーティングシステムの所定バージョンの組合せである計算機環境に於いて不具合が発生した場合を考える。実行環境構築装置２０は、実行端末５０（＝５０−１〜５０−５）に計算機環境を構築し、そのユーザの環境と最も近い計算機環境を有する実行端末５０を選択してユーザＰＣ２００に通知する。ユーザは、選択された実行端末５０を操作して、不具合が再現したならば、“ＧＯＯＤ”のフィードバックを返し、不具合が再現しなかったならば、“ＢＡＤ”のフィードバックを返す。
【００９４】
（第１の実施形態の効果）
以上説明した第１の実施形態では、次の（Ａ）〜（Ｄ）のような効果がある。
【００９５】
（Ａ）  環境構成データＤＢ４２に格納されているオペレーティングシステムやアプリケーションの割合を反映した複数の実行端末５０の計算機環境を自動で構築し、これら計算機環境で評価用プログラムを自動で実行させることが可能となる。これにより、市場における計算機環境のシミュレーションを、複数の実行端末５０にて容易に行うことができ、手作業による計算機環境の構築と、手作業による評価の工数を大幅に削減可能である。
【００９６】
（Ｂ）  ユーザ環境情報に近く、かつ、「未使用」である実行端末５０から順に選択して、タスクを実行するように構成している。これにより、市場に於ける計算機環境をシミュレーションした実行端末５０の計算機環境を、ユーザ環境情報に近いものから順番に選択して、ソフトウェアの評価を行うことが可能となる。これにより、市場に於いて発生しやすい不具合を、実行端末５０の計算機環境で迅速に再現することが可能となる。
【００９７】
（Ｃ）  ユーザのフィードバックに基づいて、異なるリソース間の類似度を増減している。これにより、初期状態において、誤ったリソースの類似度が付与されたとしても、所望の結果が得られた場合のユーザからのフィードバックにより、リソース間の類似度を補正することが可能である。
【００９８】
（Ｄ）  実行端末５０は、ファイル書込みの際には、ＯＳリソース、ＡＰ１リソース、ＡＰ２リソースなどとは異なる、書き込み用ディレクトリ７５に書き込んでいる。更に、この実行端末５０が終了通知を受けたならば、書き込み用ディレクトリ７５に書き込まれた全てのファイルを削除している。これにより、直前に行われたソフトウェアの評価に影響されず、常に同じ初期条件からソフトウェアの評価を開始できる。
【００９９】
（第２の実施形態の構成）
図１８は、第２の実施形態に於ける実行環境構築装置を示す概略の構成図である。第１の実施形態を示す図２中の要素と共通の要素には共通の符号が付されている。
本実施形態の実行環境構築装置２０Ａは、第１の実施形態の実行環境構築装置２０とは異なる外部記憶装置４０Ａを有している他は、第１の実施形態の実行環境構築装置２０と同様の構成を有している。本実施形態の外部記憶装置４０Ａは、第１の実施形態の外部記憶装置４０と同様の構成に加えて、更に脆弱性情報ＤＢ４６を有している。
【０１００】
図１９は、第２の実施形態に於ける脆弱性情報ＤＢを示す図である。
脆弱性情報ＤＢ４６は、脆弱性ＩＤ４６ａの項目と、対象リソース４６ｂの項目と、深刻度４６ｃの項目と、公開日４６ｄの項目とを有している。
脆弱性情報ＤＢ４６は、一定期間内に発見された、脆弱性に関する情報を管理する機能を有している。ここで、脆弱性とは、オペレーティングシステムやアプリケーションなどのリソースの欠陥や仕様上の問題点のうち、特に、攻撃に悪用される可能性があるものを言う。一般的に、リソースの脆弱性が発見された場合、その脆弱性を狙った攻撃が急増する傾向にある。このため、あるリソースに脆弱性が発見されると、当該リソースを含むユーザ環境情報が、ユーザＰＣ２００から送られる頻度が高くなる。本実施形態において脆弱性情報ＤＢ４６は、環境構成データ作成部３４において、今後の需要が増えると推定される環境構成データを算出する際に用いられる。
【０１０１】
脆弱性ＩＤ４６ａの項目は、各脆弱性情報を一意に識別する値が格納されている。対象リソース４６ｂの項目は、脆弱性が存在するリソースを指定する値が格納されている。深刻度４６ｃの項目は、脆弱性の危険度合いを定量的に示す値が格納されている。本実施形態では、深刻度４６ｃの項目には、０．０〜１．０の数値範囲の値が格納されている。危険性が高い脆弱性ほど、深刻度４６ｃに格納された値が高くなる。公開日４６ｄの項目は、脆弱性情報が一般に公開された日付を示す情報が格納されている。
【０１０２】
図１９の例では、脆弱性ＩＤ４６ａの値が１で識別される脆弱性は、対象リソース４６ｂの値がＯＳ−２、深刻度４６ｃの値が０．９、公開日４６ｄの値が「2010/12/19」である。同様に、脆弱性ＩＤ４６ａの値が２で識別される脆弱性は、対象リソース４６ｂの値がＡＰ１−２、深刻度４６ｃの値が１．０、公開日４６ｄの値が「2010/12/21」である。脆弱性ＩＤ４６ａの値が３で識別される脆弱性は、対象リソース４６ｂの値がＡＰ２−２、深刻度４６ｃの値が０．２、公開日４６ｄの値が「2010/12/22」である。
本実施形態では、深刻度４６ｃの値は、０．０〜１．０の数値範囲に限らず、０〜１００など、任意の数値範囲を指定しても良い。但し、深刻度４６ｃの値は、環境構成データ作成部３４で行われる数値計算で用いられるため、数値換算できない記号などは利用できない。
【０１０３】
（第２の実施形態の動作）
図２０は、第２の実施形態に於ける構成需要度算出処理を示すフローチャートである。図２０のフローチャートは、図１２のステップＳ１３の具体的処理内容を示している。
本実施形態は、ソフトウェア動作確認システムに適用した場合と異なり、構成需要度の算出に、脆弱性情報ＤＢ４６を利用する。
処理が開始したのち、ステップＳ３０〜Ｓ３４の処理は、図１３に示すステップＳ３０〜Ｓ３４の処理と同様である。
ステップＳ１４０において、実行環境構築装置２０は、脆弱性情報ＤＢ４６に基づき、ＯＳ−ｉに関する脆弱性の深刻度の総和Ｖ（ＯＳ−ｉ）を算出する。
ステップＳ１４１において、実行環境構築装置２０は、脆弱性情報ＤＢ４６に基づき、ＡＰ１−ｊに関する脆弱性の深刻度の総和Ｖ（ＡＰ１−ｊ）を算出する。
ステップＳ１４２において、実行環境構築装置２０は、脆弱性情報ＤＢ４６に基づき、ＡＰ２−ｋに関する脆弱性の深刻度の総和Ｖ（ＡＰ２−ｋ）を算出する。
【０１０４】
ステップＳ１４３において、実行環境構築装置２０は、ＯＳ−ｉ，ＡＰ１−ｊ，ＡＰ２−ｋそれぞれの相対出現頻度と脆弱性の深刻度の総和とを加算して、重み付けを掛け、これらの総和を算出して構成需要度とし、図２０の処理を終了する。
【０１０５】
例として、ＯＳ−ｉ＝ＯＳ−１，ＡＰ１−ｊ＝ＡＰ１−３，ＡＰ２−ｋ＝ＡＰ２−２である環境構成データを考える。この場合、ステップＳ１４０における脆弱性の深刻度の総和Ｖ（ＯＳ−ｉ）＝０．０、ステップＳ１４１における脆弱性の深刻度の総和Ｖ（ＡＰ１−３）＝０．０、ステップＳ１４１における脆弱性の深刻度の総和Ｖ（ＡＰ２−２）＝０．２である。
ＯＳ−ｉの相対出現頻度は０．６７であり、重み付けは１００である。ＡＰ１−ｊの相対出現頻度は０．３３であり、重み付けは５０である。ＡＰ２−ｋの相対出現頻度は０．６７であり、重み付けは２０である。
このときの構成需要度は、それぞれの相対出現頻度と脆弱性の深刻度の総和とを加算して重み付けを掛け、これらの総和によって算出するので、（０．６７＋０．０）×１００＋（０．３３＋０．０）×５０＋（０．６７＋０．２）×２０＝１００．９となる。
【０１０６】
（第２の実施形態の効果）
以上説明した第２の実施形態では、次の（Ｅ）〜（Ｇ）のような効果がある。
（Ｅ）  脆弱性情報ＤＢ４６に基づき、各リソースの組合せの構成需要度を算出している。これにより、今後の需要が増えると推定される環境構成データを算出することが可能である。
【０１０７】
（Ｆ）  脆弱性の深刻度の高い計算機環境を構築し、その脆弱性に係るマルウェアの影響を重点的に評価可能となる。
（Ｇ）  脆弱性情報ＤＢ４６に基づき、各リソースの出現頻度と脆弱性の深刻度の総和とを加算して、重み付けを掛け、これらの総和を算出して構成需要度としている。これにより、脆弱性の深刻度の高い計算機環境を、より高い頻度で評価することが可能である。
【０１０８】
（変形例）
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能である。この利用形態や変形例としては、例えば、次の（ａ）〜（ｄ）のようなものがある。
【０１０９】
（ａ）  第１および第２の実施形態では、環境構成データ選択部３３は、ユーザ環境情報と最も環境類似度が高い環境構成を持つ実行端末５０を選択している。しかし、これに限られず、ユーザ環境情報との環境類似度が一定値以上（例えば、１００以上）である実行端末５０を複数個選択しても良い。この場合、タスクは複数の実行端末５０上で実行される。タスクの実行結果は、個別にユーザに返信されても良いし、各実行端末５０における実行結果をサーバに纏めた上でユーザに返信しても良い。これにより、環境類似度が一定値以上である複数の実行端末５０上で同一タスクを実行することで、ユーザは、１度の評価で更に多くの情報を得ることができる。
【０１１０】
（ｂ）  第１および第２の実施形態では、フィードバックが取りうる値は肯定値の“ＧＯＯＤ”と、否定値の“ＢＡＤ”の２値であった。しかし、これに限られず、肯定値と否定値を示す他の単語や記号、例えば“ＯＫ”と“ＮＧ”、“良好”と“不良”、“○”と“×”などを用いても良く、限定されない。
【０１１１】
（ｃ）  第１および第２の実施形態では、フィードバックが取りうる値は肯定値の“ＧＯＯＤ”と、否定値の“ＢＡＤ”の２値であった。しかし、これに限られず、３値以上の値を設定し、より詳細なフィードバックを実現しても良い。例えば、フィードバックが、“ＧＯＯＤ”，“ＮＯＲＭＡＬ”，“ＢＡＤ”の３値を取るようにして、“ＮＯＲＭＡＬ”の場合は、類似度の変更を行わないこととしても良い。これにより、類似度の変更値の粒度が細かくなるため、より精度が高い類似度の設定が可能となる。
【０１１２】
（ｄ）  第１および第２の実施形態では、オペレーティングシステムＯＳに加えて、第１のアプリケーションＡＰ１と、第２のアプリケーションＡＰ２を取り扱っている。しかし、これに限られず、オペレーティングシステムＯＳのみを取り扱っても良い。更に、２以外の個数のアプリケーションを取り扱っても良い。
【符号の説明】
【０１１３】
１０  実行環境構築システム
１１  ゲートウェイ
２０  実行環境構築装置
３１  環境構成管理プログラム
３２  タスク終了部
３３  環境構成データ選択部
３４  環境構成データ作成部
４０  外部記憶装置
４１  リソースＤＢ
４２  環境構成データＤＢ（ユーザ環境情報）
４３  実行端末ＤＢ
４４  ユーザ環境情報ＤＢ（環境構成データ、ユーザ環境情報ログ）
４５  類似度ＤＢ（ソフトウェアリソース間の機能の類似性）
４６  脆弱性情報ＤＢ（ソフトウェアリソースの脆弱性情報）
５０  実行端末
６０  メモリ
６１  環境構築プログラム
６２  タスク実行プログラム
６３  タスク終了プログラム
７０ａ  ルート記憶装置（ソフトウェアリソース保管用記憶装置）
７０ｂ  書き込み用記憶装置
７１  ルートディレクトリ
７２  ＯＳディレクトリ
７３  ＡＰ１ディレクトリ
７４  ＡＰ２ディレクトリ
７５  書き込み用ディレクトリ
８０  環境構成リソース管理装置
８１  リソース提供装置
９０−１〜９０−３  ＯＳ記憶装置
９１−１〜９１−３  ＡＰ１記憶装置
９２−１〜９２−３  ＡＰ２記憶装置
１００−１，１００−２  通信ネットワーク
２００  ユーザＰＣ
【図１】
0005592303.tif 000002
【図２】
0005592303.tif 000003
【図３】
0005592303.tif 000004
【図４】
0005592303.tif 000005
【図５】
0005592303.tif 000006
【図６】
0005592303.tif 000007
【図７】
0005592303.tif 000008
【図８】
0005592303.tif 000009
【図９】
0005592303.tif 000010
【図１０】
0005592303.tif 000011
【図１１】
0005592303.tif 000012
【図１２】
0005592303.tif 000013
【図１３】
0005592303.tif 000014
【図１４】
0005592303.tif 000015
【図１５】
0005592303.tif 000016
【図１６】
0005592303.tif 000017
【図１７】
0005592303.tif 000018
【図１８】
0005592303.tif 000019
【図１９】
0005592303.tif 000020
【図２０】
0005592303.tif 000021