説明

実行環境構築装置および実行環境構築システム

【課題】マルウェアの解析環境として、様々なユーザPCと同等の計算機環境を構築し、これらの計算機環境でプログラムを実行させることができるようにする。
【解決手段】実行環境構築装置20は、ユーザが要求するユーザ環境情報DBに近い環境構成データの需要度を算出し、この需要度に基づいて実行端末50上に実行環境を構築する環境構成データ作成部と、この実行環境を構築した実行端末50から、ユーザ環境情報と環境類似度が近い環境構成データを有するものを選択する環境構成データ選択部とを有している。実行環境構築装置20は、実行端末50上に、少なくとも1つのオペレーティングシステムからなるソフトウェアリソースで構成される実行環境を構築する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアの動作確認やマルウェアの解析などに於いて、ユーザに計算機環境を提供する実行環境構築装置および実行環境構築システムに関する。
【背景技術】
【0002】
ソフトウェアの挙動や性能は、ソフトウェアが実行される計算機環境に依存する。そのため、開発したソフトウェアをリリースする前に、ソフトウェアの利用が想定される様々な計算機環境上で挙動をテストする必要がある。また、このソフトウェアをリリースした後では、ソフトウェアベンダのサポートデスクを介して、ユーザからソフトウェアの動作の不具合の問い合わせを多く受ける。この不具合の原因の特定には、ユーザPCと同等の計算機環境で、このソフトウェアを実行させる必要がある。
【0003】
一方、特許文献1には、ネットワーク上で他のコンピュータに対して不正処理を行う第1のソフトウェアの処理結果から得られる第1の挙動情報と、検査対象の第2のソフトウェアの処理結果から得られる第2の挙動情報とを比較し、両者の類似性を検査するマルウェアの類似性検査方法を提供する技術が開示されている。
特許文献2には、対象コンピュータ上の不正プログラムを検査サーバにより検査する技術が開示されている。
【0004】
これら特許文献1や特許文献2に示されているように、コンピュータウイルス、スパイウェア、ワームなどに代表されるマルウェアの検知や解析を目的とした、マルウェア解析システムの研究が進んでいる。ここでマルウェアとは、不正かつ有害な動作を行う意図で作成されたソフトウェアプログラムのことを言う。
【0005】
これらマルウェア解析システムは、ユーザPC上で発見された、マルウェアの可能性がある実行ファイル(擬陽性ファイル)を、システム上の計算機環境で実行し、その挙動から、実行ファイルがマルウェアであるか否かを判定するものである。マルウェアの挙動は、実行される計算機環境に依存する。このため、マルウェアに、ユーザPC上と同等の振る舞いをさせるには、ユーザPCと同等の計算機環境を用意する必要がある。
このように、ソフトウェア開発・サポートやマルウェア解析においては、様々なユーザPCと同等の計算機環境でプログラムを実行させることが要求される。
【0006】
非特許文献1には、この問題を解決する際に、マルウェア解析環境上で、マルウェアが環境依存の関数を呼び出した場合に、ユーザPC上で当該関数を実行して結果をマルウェアに返し、マルウェアにユーザPC上と同じ計算機環境で実行されているように見せかける技術が開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2009−037545号公報
【特許文献2】特開2010−198054号公報
【非特許文献】
【0008】
【非特許文献1】"A framework for behavior-based malware analysis in the cloud",2009, Proc. of 5th International Conference on Information Systems Security
【発明の概要】
【発明が解決しようとする課題】
【0009】
非特許文献1の発明は、マルウェアからの関数呼び出しに基づき、このマルウェアの挙動を解析する際には有効である。しかし、非特許文献1の発明で扱えるのは関数呼び出しのみであり、厳密な正確性は期し難い。よって、ソフトウェア開発・サポートやマルウェア解析において、正確な評価や解析を行なう為には、ユーザPCと同等の計算機環境でプログラムを実行することが必要である。しかし、要求が発生してから、任意の計算機環境を構成するのは時間がかかり、ソフトウェア開発や、ソフトウェアのサポートや、マルウェアの解析には大きなコストが掛っていた。
【0010】
そこで、本発明は、様々なユーザPCと同等の計算機環境を構築し、これら計算機環境でプログラムを実行させることを可能とする実行環境構築装置、および、実行環境構築システムを提供することを課題とする。
【課題を解決するための手段】
【0011】
前記課題を解決し、本発明の目的を達成するために、以下のように構成した。
すなわち、本発明の実行環境構築装置は、実行端末上に、少なくとも1つ以上のソフトウェアリソースで構成される実行環境を構築する実行環境構築装置であって、ユーザが要求するユーザ環境情報に近い環境構成データの需要度を算出し、前記需要度に基づいて前記実行端末上に前記実行環境を構築する環境構成データ作成部と、前記実行環境を構築した前記実行端末から、前記ユーザ環境情報と環境類似度が近い前記環境構成データを有するものを選択する環境構成データ選択部とを有することを特徴とする。
その他の手段については、発明を実施するための形態のなかで説明する。
【発明の効果】
【0012】
本発明によれば、様々なユーザPCと同等の計算機環境を構築し、これら計算機環境でプログラムを実行させることが可能となる。
【図面の簡単な説明】
【0013】
【図1】第1の実施形態に於ける実行環境構築システムを示す概略の構成図である。
【図2】第1の実施形態に於ける実行環境構築装置を示す概略の構成図である。
【図3】第1の実施形態に於ける実行端末を示す概略の構成図である。
【図4】第1の実施形態に於けるユーザPCを示す概略の構成図である。
【図5】第1の実施形態に於ける環境構成リソース管理装置を示す概略の構成図である。
【図6】第1の実施形態に於ける実行端末のディレクトリを示す図である。
【図7】第1の実施形態に於けるリソースDBを示す図である。
【図8】第1の実施形態に於ける環境構成データDBを示す図である。
【図9】第1の実施形態に於ける実行端末DBを示す図である。
【図10】第1の実施形態に於けるユーザ環境情報DBを示す図である。
【図11】第1の実施形態に於ける類似度DBを示す図である。
【図12】第1の実施形態に於ける環境構成データ作成処理と実行環境構築処理を示すフローチャートである。
【図13】第1の実施形態に於ける構成需要度算出処理を示すフローチャートである。
【図14】第1の実施形態に於ける実行端末選択処理を示すフローチャートである。
【図15】第1の実施形態に於ける環境類似度算出処理を示すフローチャートである。
【図16】第1の実施形態に於けるタスク終了処理を示すフローチャートである。
【図17】第1の実施形態に於ける類似度更新処理を示すフローチャートである。
【図18】第2の実施形態に於ける実行環境構築装置を示す概略の構成図である。
【図19】第2の実施形態に於ける脆弱性情報DBを示す図である。
【図20】第2の実施形態に於ける構成需要度算出処理を示すフローチャートである。
【発明を実施するための形態】
【0014】
以降、本発明を実施するための形態(「本実施形態」という)を、図等を参照して詳細に説明する。第1の実施形態として、本発明をソフトウェア動作確認システムに適用した例を示す。第2の実施形態として、本発明をマルウェア解析システムに適用した例を示す。
【0015】
ソフトウェア動作確認システムは、ソフトウェアベンダなどが開発したソフトウェアプログラムを、指定されたオペレーティングシステムとアプリケーションの下で動作確認するシステムである。
【0016】
マルウェア解析システムは、ソフトウェアプログラムを指定されたオペレーティングシステムやアプリケーションの下で実行し、その挙動をもとに、当該ソフトウェアプログラムがマルウェアであるか否かを判定するシステムである。
【0017】
第1の実施形態の構成と、第2の実施形態の構成には共通点が多い。このため、まず、ソフトウェア動作確認システムに適用した実施形態について説明し、その後にマルウェア解析システムに適用した実施形態の固有の構成について説明する。
【0018】
(第1の実施形態の構成)
図1は、第1の実施形態に於ける実行環境構築システムを示す概略の構成図である。
実行環境構築システム10には、通信ネットワーク100−1を介して、ユーザPC200(=200−1〜200−3)が接続されている。
実行環境構築システム10の各要素は、パーソナルコンピュータやワークステーション等の計算機により構成されている。本実施形態の実行環境構築システム10は、ユーザPC200に対して、指定された環境構成を持つ実行端末50−n(nは1から5の自然数)の利用権限を提供する機能を有している。本実施形態では、実行端末50の数は5台であるが、これに限られず、任意の台数でも良い。
【0019】
ユーザPC200は、パーソナルコンピュータなどの計算機である。ユーザPC200は、通信ネットワーク100−1を介して実行環境構築システム10と接続されている。ユーザPC200は、実行環境構築システム10が有している特定の環境構成を持つ実行端末50の利用権限が付与される。本実施形態の通信ネットワーク100−1は、LAN(Local Area Network:ローカルエリアネットワーク)である。しかし、これに限定されず、WAN(Wide Area Network:ワイドエリアネットワーク)や、携帯電話(またはPHS(Personal Handyphone System))などの公衆回線網や、専用回線網でも良い。
【0020】
実行環境構築システム10は、ゲートウェイ11と、実行環境構築装置20と、実行端末50(=50−1〜50−5)と、環境構成リソース管理装置80と、通信ネットワーク100−2とを有している。
【0021】
通信ネットワーク100−2は、実行環境構築システム10内の装置間の通信を可能にする機能を有し、ゲートウェイ11と、実行環境構築装置20と、実行端末50(=50−1〜50−5)と、環境構成リソース管理装置80とを接続している。本実施形態の通信ネットワーク100−2は、前述した通信ネットワーク100−1と同様にLAN(ローカルエリアネットワーク)である。しかし、これに限定されず、WANや、携帯電話(またはPHS)などの公衆回線網や、専用回線網でも良い。
【0022】
また、本実施形態では、実行環境構築システム10内の全ての装置が1つの通信ネットワーク100−2により接続されている。しかし、これに限定されず、実行環境構築システム10内の各装置が、ゲートウェイによって相互に通信可能に接続されている複数の通信ネットワークを介して接続されても良い。
【0023】
ゲートウェイ11は、パーソナルコンピュータやワークステーションなどの計算機によって構成されている。ゲートウェイ11は、通信ネットワーク100−1と通信ネットワーク100−2との間に接続され、実行環境構築システム10内の実行環境構築装置20および実行端末50(=50−1〜50−5)と、ユーザPC200との通信を中継する機能を有している。ゲートウェイ11は、ユーザPC200が実行環境構築システム10にアクセスする際の認証を行う機能を有している。この認証には、パスワード、生体認証、公開鍵、秘密鍵など、任意の公知の認証方式を用いて良い。ゲートウェイ11は、認証を行ったユーザPC200のIP(インターネットプロトコル)アドレスを送信元IPアドレスまたは送信先IPアドレスとして持つIPパケットのみを、通信ネットワーク100−1と通信ネットワーク100−2間で中継する機能を有している。
【0024】
実行環境構築装置20は、パーソナルコンピュータやワークステーションなどの計算機で構成されている。実行環境構築装置20は、各実行端末50−nに設定する環境構成データを作成し、少なくとも1つ以上のソフトウェアリソースで構成される実行環境を構築する機能を有している。実行環境構築装置20は更に、ユーザPC200から取得したユーザ環境情報に類似する環境構成データを持つ実行端末50−nを決定する。
【0025】
ここで、少なくとも1つ以上のソフトウェアは、少なくともオペレーティングシステムのリソースを有している。環境構成データとは、実行端末50−nを構成するオペレーティングシステム、アプリケーションなどのソフトウェアの一覧であり、少なくともオペレーティングシステムの種別および当該オペレーティングシステムのバージョン情報を具備している。ユーザ環境情報は、ユーザが利用を希望するオペレーティングシステムやアプリケーションの一覧であり、少なくともオペレーティングシステムの種別および当該オペレーティングシステムのバージョン情報を具備している。
このソフトウェアリソースは更に、アプリケーションのリソースを含む場合がある。環境構成データDB42(図2)は更に、環境構成データ作成部34(図2)が指定したアプリケーションおよび当該アプリケーションのバージョン情報を具備する場合がある。ユーザ環境情報DB44(図2)は更に、ユーザが要求するアプリケーションの種別および当該アプリケーションのバージョン情報を具備する場合がある。
「環境構成データとユーザ環境情報が類似する」とは、実行端末50−nの構成とユーザが希望する構成のオペレーティングシステムやアプリケーションが、同一または類似した機能を持つことである。
【0026】
実行環境構築システム10内には1つ以上の実行端末50が含まれている。本実施形態の実行環境構築システム10は、5台の実行端末50(=50−1〜50−5)を含んでいる。実行端末50(=50−1〜50−5)は、パーソナルコンピュータやワークステーションなどの計算機で構成されている。実行端末50(=50−1〜50−5)は、それぞれ実行環境構築装置20から指定された環境構成データに基づいて、オペレーティングシステムやアプリケーションを構成する。オペレーティングシステムやアプリケーションを構成する際は、環境構成リソース管理装置80が管理するオペレーティングシステムやアプリケーションの資源を用いる。実行端末50は、実行環境構築装置20によってユーザPC200に割り当てられ、ユーザPC200が要求する処理を実行する。実行環境構築システム10で扱う実行端末50の台数の決定は、実行環境構築システム10の管理者が行う。本実施形態の実行端末50(=50−1〜50−5)は、それぞれ物理構成や機能に差異は存在しない。後述する図3に於いて実行端末50−1を例に、実行端末50の機能の詳細について説明する。
【0027】
環境構成リソース管理装置80は、パーソナルコンピュータやワークステーションなどの計算機と、1つ以上の外部記憶装置から構成される。環境構成リソース管理装置80内では複数のオペレーティングシステムやアプリケーションが管理され、要求に応じて実行端末50に提供される。
【0028】
図2は、第1の実施形態に於ける実行環境構築装置を示す概略の構成図である。
実行環境構築装置20は、CPU(Central Processing Unit)21と、インタフェース22と、バス23と、メモリ30と、外部記憶装置40と、入出力装置24とを備えている。
CPU21は、処理を実行するための演算装置である。
インタフェース22は、実行環境構築装置20を通信ネットワーク100−2に接続するLANカードなどの通信装置である。
バス23は、CPU21と、メモリ30と、インタフェース22と、外部記憶装置40、入出力装置24とを接続するデータ経路である。
【0029】
メモリ30は、RAM(Random Access Memory)やROM(Read Only Memory)などで構成され、CPU21で実行する命令のセットがプログラムとして記述されたデータを含む記憶媒体である。メモリ30は、環境構成管理プログラム31を有している。そして、この環境構成管理プログラム31がCPU21で実行されることによって、環境構成データの作成と、ユーザ環境情報に類似する環境構成データを持つ実行端末50−n(nは端末番号)の決定とを行う。
【0030】
外部記憶装置40は、HDD(Hard Disk Drive)やフラッシュメモリなどから構成され、リソースDB41と、環境構成データDB42と、実行端末DB43と、ユーザ環境情報DB44と、類似度DB45とを格納している。
【0031】
入出力装置24は、キーボード25と、マウス26と、ディスプレイ27とを有している。入出力装置24は、管理者が実行環境構築装置20にデータの入力や出力を行う。
【0032】
環境構成管理プログラム31は、タスク終了部32と、環境構成データ選択部33と、環境構成データ作成部34とを有している。CPU21が環境構成管理プログラム31を実行することによって、これらの各部の機能が具現化される。
【0033】
環境構成データ作成部34は、今後、ユーザPC200の操作者であるユーザからの需要が多くなると考えられる環境構成を作成する構成需要度算出処理と、環境構成データ作成処理を行う。
【0034】
環境構成データ選択部33は、ユーザ環境情報に類似する環境構成データを算出する環境類似度算出処理と、高い類似度を持つ実行端末50を決定してユーザに割り当てる実行端末選択処理とを行う機能を有している。実行端末選択処理において、環境構成データ選択部33は、実行環境を構築した実行端末50から、ユーザ環境情報と環境類似度が近い環境構成データを有するものを選択する。環境構成データ選択部33は、ソフトウェアリソース間の機能の類似性を数値で評価することによって、ユーザ環境情報と実行端末50の実行環境の環境類似度を評価する。更に環境構成データ選択部33は、ユーザが実行環境を使用した後のフィードバック情報に基づいて、ソフトウェアリソース間の類似性の評価を変更する。
タスク終了部32は、ユーザに割り当てられている実行端末50を終了させるタスク終了処理を行う。
【0035】
図3は、第1の実施形態に於ける実行端末を示す概略の構成図である。図2に示す実行環境構築装置20と同様の要素には同一の符号を付与している。
実行端末50は、図2に示す実行環境構築装置20と同様に、CPU21と、インタフェース22と、バス23と、入出力装置24とを有し、図2に示す実行環境構築装置20とは異なるメモリ60と、ルート記憶装置70aと、書き込み用記憶装置70bとを有している。
【0036】
メモリ60は、RAMやROMなどで構成され、環境構築プログラム61と、タスク実行プログラム62と、タスク終了プログラム63とを格納している。環境構築プログラム61は、この実行端末50に、環境構成データに従った実行環境の構築を行う。タスク実行プログラム62は、この実行端末50上の実行環境に於いて、ユーザが指定するタスクを実行する。タスク終了プログラム63は、このタスクの終了処理を行う。
【0037】
ルート記憶装置70aと書き込み用記憶装置70bは、後述する図5に示す環境構成リソース管理装置80内のOS記憶装置90−1〜90−3、AP1記憶装置91−1〜91−3、AP2記憶装置92−1〜92−3と連携して、実行環境構築装置20からの環境構成データに従った、実行端末50(=50−1〜50−5)の環境を構成する。
【0038】
このように、実行端末50(=50−1〜50−5)は、環境構成リソース管理装置80と連携して、指示された環境を構成し、ユーザタスクを実行する。
【0039】
図4は、第1の実施形態に於けるユーザPCを示す概略の構成図である。図2に示す実行環境構築装置20と同様の要素には同一の符号を付与している。
ユーザPC200は、図2に示す実行環境構築装置20と同様に、CPU21と、インタフェース22と、バス23と、入出力装置24とを有し、図2に示す実行環境構築装置20とは異なるメモリ210と、記憶装置220とを有している。
【0040】
メモリ210は、実行端末制御プログラム211を格納している。実行端末制御プログラム211は、環境構成データに従った実行環境の構築を実行端末50(=50−1〜50−n)に指示し、構築した実行環境に係る実行端末50を制御する機能を有している。
記憶装置220は、ユーザが使用する任意のデータやプログラムを格納する機能を有している。
【0041】
図5は、第1の実施形態に於ける環境構成リソース管理装置を示す概略の構成図である。
環境構成リソース管理装置80は、OS記憶装置90−1〜90−3と、AP1記憶装置91−1〜91−3と、AP2記憶装置92−1〜92−3と、バス82と、リソース提供装置81とを有している。リソース提供装置81は、通信ネットワーク100−2に接続されると共に、OS記憶装置90−1〜90−3と、AP1記憶装置91−1〜91−3と、AP2記憶装置92−1〜92−3とに、バス82を介して接続されている。
【0042】
環境構成リソース管理装置80は、実行端末50−1〜50−5に対してオペレーティングシステムやアプリケーションに代表されるソフトウェアリソースの提供を行う機能を有している。このためリソース提供装置81は、通信ネットワーク100−2を介して、環境構成リソース管理装置80内のリソースを提供する機能を有している。このリソースの提供にあたって、NFS(Network File System)やCIFS(Common Internet File System)など、任意のファイル共有技術を利用して良い。
【0043】
OS記憶装置90−1〜90−3、AP1記憶装置91−1〜91−3、AP2記憶装置92−1〜92−3は、それぞれHDDやフラッシュメモリなどから構成されている。
OS記憶装置90−1は、オペレーティングシステムOS−1(図7)のデータを保存する。OS記憶装置90−2は、オペレーティングシステムOS−2(図7)のデータを保存する。OS記憶装置90−3は、オペレーティングシステムOS−3(図7)のデータを保存する。
【0044】
AP1記憶装置91−1は、第1のアプリケーションAP1−1(図7)のデータを保存する。AP1記憶装置91−2は、第1のアプリケーションAP1−2(図7)のデータを保存する。AP1記憶装置91−3は、第1のアプリケーションAP1−3(図7)のデータを保存する。
【0045】
AP2記憶装置92−1は、第2のアプリケーションAP2−1(図7)のデータを保存する。AP2記憶装置92−2は、第2のアプリケーションAP2−2(図7)のデータを保存する。AP2記憶装置92−3は、第2のアプリケーションAP2−3(図7)のデータを保存する。
【0046】
バス23は、OS記憶装置90−1〜90−3、AP1記憶装置91−1〜91−3、AP2記憶装置92−1〜92−3と、リソース提供装置81とを通信可能に接続する。
【0047】
本実施形態では、各リソースを、それぞれ異なった物理的な記憶装置に保存している。しかし、これに限定されず、複数のリソースを1つの物理的な記憶装置に保存しても良い。このように、環境構成リソース管理装置80によって、オペレーティングシステムやアプリケーションなどのリソースを、一元的に保管することが可能になる。
【0048】
図6は、第1の実施形態に於ける実行端末のディレクトリを示す図である。
実行端末50のディレクトリ構造は、実行環境構築装置20から指示される環境構成データに基づいて構築される。図6においては、後述する図8の環境構成データDB42に格納されている環境構成データ1に従い、オペレーティングシステムとしてOS−1が選択(設定)され、第1のアプリケーションとしてAP1−1が選択(設定)され、第2のアプリケーションとしてAP2−1が選択(設定)されている。
ルートディレクトリ71は、ディレクトリ構造の最上位であり、OSディレクトリ72と、AP1ディレクトリ73と、AP2ディレクトリ74と、書き込み用ディレクトリ75の上位に位置している。このルートディレクトリ71は、ルート記憶装置70a内に存在する。
【0049】
OSディレクトリ72は、オペレーティングシステムOS−1を保管するディレクトリである。実際のOS−1のデータは、環境構成リソース管理装置80内のOS記憶装置90−1内に格納されている。このため、OSディレクトリ72は、ライン72aに示すとおり、NFSやCIFSなどのファイル共有システムを利用して、リソース提供装置81を介して、OS記憶装置90−1に接続される。これにより、オペレーティングシステムOS−1を利用するユーザからみると、OSディレクトリ72内に、OS記憶装置90−1内のオペレーティングシステムOS−1が、仮想的に存在することとなる。
【0050】
AP1ディレクトリ73は、第1のアプリケーションAP1−1を保管するディレクトリである。実際の第1のアプリケーションAP1−1のデータは、環境構成リソース管理装置80内のAP1記憶装置91−1内に格納されている。このため、AP1ディレクトリ73は、ライン73aに示すとおり、NFSやCIFSなどのファイル共有システムを利用して、リソース提供装置81を介して、AP1記憶装置91−1に接続される。これにより、第1のアプリケーションAP1−1を利用するユーザからみると、AP1ディレクトリ73内に、AP1記憶装置91−1内の第1のアプリケーションAP1−1が、仮想的に存在することとなる。
【0051】
AP2ディレクトリ74は、第2のアプリケーションAP2−1を保管するディレクトリである。実際の第2のアプリケーションAP2−1のデータは、環境構成リソース管理装置80内のAP2記憶装置92−1内に格納されている。このため、AP2ディレクトリ74は、ライン74aに示すとおり、NFSやCIFSなどの公知のファイル共有システムを利用して、リソース提供装置81を介して、AP2記憶装置92−1に接続される。これにより、第2のアプリケーションAP2−2を利用するユーザからみると、AP2ディレクトリ74内に、AP2記憶装置92−1内の第2のアプリケーションAP2−1が、仮想的に存在することとなる。
【0052】
書き込み用ディレクトリ75は、ライン75aを介して、実行端末50−1内の書き込み用記憶装置70bに接続される。ライン75aには、Ultra ATA(Ultra Advanced Technology Attachment)やSerial ATA(Serial Advanced Technology Attachment)など、通常のPCがローカルドライブに接続するための技術が用いられる。
【0053】
書き込み用ディレクトリ75は、ユーザやプログラムによる、OSディレクトリ72、AP1ディレクトリ73、AP2ディレクトリ74に対する変更内容を記録する機能を有している。例えば、OSディレクトリ72内に、新しいファイルが書かれた場合、この新しいファイルはOS記憶装置90−1に書かれるのではなく、書き込み用ディレクトリ75を通じて、書き込み用記憶装置70b内に作成される。このように、書き込み先の記憶装置の変更は、NFSやCIFSなどのファイル共有システムを利用することで行われる。OSディレクトリ72、AP1ディレクトリ73、AP2ディレクトリ74に対する変更内容は全て、書き込み用記憶装置70bに行われる。従って、タスク終了後に、書き込み用記憶装置70b内のデータを全て消去することにより、実行端末50をタスク実行前の状態に復旧可能である。
【0054】
図7は、第1の実施形態に於けるリソースDBを示す図である。
リソースDB41は、リソースID41aの項目と、リソースタイプ41bの項目と、
重み付け41cの項目とを有している。
リソースDB41に於けるリソースID41aの項目は、環境構成リソース管理装置80に保管されるソフトウェアリソースを一意に識別する識別子が格納される。図7の例では、OS−1,OS−2,OS−3,AP1−1,AP1−2,AP1−3,AP2−1,AP2−2,AP2−3の種類のリソースの識別子が格納されている。環境構成リソース管理装置80、および、リソースDB41で管理するソフトウェアリソースの種類は、実行環境構築システム10の管理者が決定する。
【0055】
リソースタイプ41bの項目は、実行環境構築システム10で扱うソフトウェアリソースのタイプを示している。図7の例では、OSの他に、AP1、AP2の、計3つのソフトウェアリソースのタイプがある。OSは、オペレーティングシステムに係るリソースであることを示している。AP1は、第1のアプリケーションであることを示しており、例えば、メールクライアント・アプリケーションである。AP2は、第2のアプリケーションであることを示しており、例えばWebブラウザのアプリケーションである。
環境構成リソース管理装置80、および、リソースDB41で扱うリソースタイプは、実行環境構築システム10の管理者が決定する。
【0056】
重み付け41cの項目は、環境を構成する際の、各リソースタイプ41bの重要度を示している。重要度が高いほど、環境構成に対する影響が大きいことを意味する。リソースID41aの値が異なっていても、リソースタイプ41bの値が同一であれば、重み付け41cの値は同一となる。本実施形態では、重み付け41cの項目を1〜100の100段階で表現しており、オペレーティングシステムOSの重み付け41cの値は100、第1のアプリケーションAP1の重み付け41cの値は50、第2のアプリケーションAP2の重み付け41cの値は20としている。このため、環境構成に対する各リソースタイプの影響度は、オペレーティングシステムOSが最も高く、第1のアプリケーションAP1の影響度が次に高く、第2のアプリケーションAP2の影響度が最も低くなる。重み付け41cの項目には、1〜100の他に、0.0〜1.0など、任意の数値範囲を指定して良い。但し、重み付け41cの値は、環境構成データ作成部34、環境構成データ選択部33で行われる数値計算で用いられるため、記号など、数値に換算できないものは利用できない。各リソースタイプ41bの値に対する重み付け41cの値の決定は、外部からの情報などを基に、実行環境構築システム10の管理者が行う。
このように、リソースDB41により、環境構成リソース管理装置80で管理されるリソースと、それらの重要度とを一元的に管理できる。
【0057】
図8は、第1の実施形態に於ける環境構成データDBを示す図である。
環境構成データDB42は、実行環境構築装置20が作成した環境構成データを管理する機能を有している。環境構成データDB42の各レコードは、リソースタイプ41bごとに、1つ以上のリソースを設定している。環境構成データDB42のいずれかのレコードに従って、実行端末50は構成される。このため、環境構成データDB42には、リソースタイプごとの設定項目が存在する。図8の例では、オペレーティングシステムOSのリソースタイプに対応したOS設定42bの項目と、第1のアプリケーションAP1のリソースタイプに対応したAP1設定42cの項目と、第2のアプリケーションAP2のリソースタイプに対応したAP2設定42dの項目とが設けられている。
【0058】
環境構成データID42aの項目は、各環境構成データを一意に識別する識別子が格納される。図8の例では、環境構成データ1から環境構成データ4まで、4つの環境構成データが格納されている。
【0059】
OS設定42bの項目は、各環境構成データに含まれるオペレーティングシステムOSの種類を示す値が格納される。同様に、AP1設定42cの項目は、各環境構成データに含まれる第1のアプリケーションAP1の種類を示す値が格納され、AP2設定42dの項目は、各環境構成データに含まれる第2のアプリケーションAP2の種類を示す値が格納される。図8の例では、環境構成データ1は、OS設定42bの値としてOS−1が、AP1設定42cの値としてAP1−1が、AP2設定42dの値としてAP2−1が設定されている。環境構成データ2には、OS設定42bの値としてOS−2が、AP1設定42cの値としてAP1−2が、AP2設定42dの値としてAP2−1が構成されている。環境構成データ3には、OS設定42bの値としてOS−2が、AP1設定42cの値としてAP1−1が、AP2設定42dの値として、AP2−2が設定されている。
【0060】
OS設定42bの項目には、少なくとも1つのリソースが設定されている必要がある。オペレーティングシステムが設定されていない実行端末50は、アプリケーションを起動できないためである。AP1設定42cの項目とAP2設定42dの項目は、必ずしもリソースが設定されていなくても良い。例えば、環境構成データ4は、OS設定42bの値にOS−2を設定し、AP2設定42dの値にAP2−1を設定しているが、AP1設定42cは、”N/A”(Not Available)であり、リソースが格納されていない。
このように、環境構成データDB42により、実行環境構築装置20が作成した環境構成データの一元的な管理が可能となる。
【0061】
図9は、第1の実施形態に於ける実行端末DBを示す図である。
実行端末DB43は、実行環境構築システム10に設定されている環境構成データと、実行環境構築システム10内の各実行端末50の使用状況とを管理する機能を有している。実行端末DB43は、実行端末ID43aの項目と、適用環境構成データ43bの項目と、状態43cの項目とを有している。
実行端末ID43aの項目は、各実行端末50を一意に認識する機能を有している。
【0062】
適用環境構成データ43bの項目は、各実行端末50に割り当てられている環境構成データID42aを示す識別子が格納されている。各実行端末50への環境構成データの割当ては、実行環境構築装置20により行われる。
【0063】
状態43cの項目は、実行端末50の現在の利用状況を示す値が格納される。実行端末50がユーザに割り当てられ、何らかのタスクを実行中の場合は「使用中」となり、そうでない場合は、「未使用」となる。状態43cの値の設定は、実行環境構築装置20が行う。
本実施形態では、実行端末50−1には、環境構成データ1が設定され、状態43cの値は、「未使用」である。
【0064】
複数の実行端末50に対して、単一の適用環境構成データ43bが設定されていても良い。本実施形態では、実行端末50−2、および、実行端末50−4に環境構成データ2が設定されている。また、環境構成データDB42にある環境構成データは、1つ以上の実行端末50に適用される。本実施形態では、図8に示すとおり4種類の環境構成データが、環境構成データDB42に存在し、いずれも1つ以上の実行端末50に適用されている。
このように、実行端末DB43により、各実行端末50の使用状況、および、設定されている環境構成データの一元的な管理が可能となる。
【0065】
図10は、第1の実施形態に於けるユーザ環境情報DBを示す図である。
ユーザ環境情報DB44は、ユーザ環境情報ID44aの項目と、OS設定44bの項目と、AP1設定44cの項目と、AP2設定44dの項目と、取得時間44eの項目とを有している。
ユーザ環境情報ID44aの項目は、ユーザ環境情報を一意に識別する識別子が格納されている。
以降の項目は、リソースタイプごとのユーザが希望する構成を示す識別子が格納されている。OS設定44bの項目は、ユーザが使用を希望するオペレーティングシステムOSの種類を示す値が格納されている。AP1設定44cの項目は、ユーザが使用を希望する第1のアプリケーションAP1の種類を示す値が格納されている。AP2設定44dの項目は、ユーザが使用を希望する第2のアプリケーションAP2の種類を示す値が格納されている。取得時間44eの項目は、環境構成データ選択部33がユーザからユーザ環境情報を取得した日時が格納されている。
【0066】
本実施形態では、ユーザ環境情報1において、OS設定44bの項目はOS−1、AP1設定44cの項目はAP1−3、AP2設定44dの項目はAP2−2、取得時間44eの項目は、「2010/12/20 12:00:00」である。環境構成データと同様に、ユーザ環境情報においても、リソースが設定されていないリソースタイプが存在して良い。例えば、ユーザ環境情報2の例では、ユーザが、第1のアプリケーションAP1が含まれない実行環境を望むため、AP1設定44cの項目には”N/A”(Not Available)が設定されている。
本実施形態では、ユーザ環境情報DB44により、ユーザPC200から取得したユーザ環境情報の一元的な管理が可能となる。
【0067】
ユーザ環境情報DB44の第1の利用方法は、ユーザが希望する構成に近い構成を持つ実行端末50を選択する場合であり、実行環境構築装置20内の環境構成データ選択部33によって利用される。ユーザ環境情報DB44の第2の利用方法は、今後需要が増えると考えられる環境構成データ、即ち希望ユーザ数が増えると考えられる環境構成データを推定する場合であり、実行環境構築装置20内の環境構成データ作成部34によって利用される。
【0068】
本実施形態のユーザ環境情報は、各ユーザがユーザPC200(=200−1〜200−3)において、手作業で希望する設定を記述し、環境構成データ選択部33に送信することによって、ユーザ環境情報DB44に保存される。例えば、サポートデスクが、不具合発生に遭遇されたお客様からPC環境を聞き取って、この環境を手作業でファイルに記述し、環境構成データ選択部33に送信する動作などである。
しかし、これに限られず、専用のコンピュータプログラムを用いて、各ユーザの環境情報を自動生成し、環境構成データ選択部33に送信することによって、ユーザ環境情報DB44に保存される構成としても良い。
【0069】
図11は、第1の実施形態に於ける類似度DBを示す図である。
類似度DB45は、第1比較項目45aの項目と、第2比較項目45bの項目と、類似度45cの項目とを有している。
類似度DB45は、リソースタイプが同じである2つのリソース間の「類似度」を管理している。ここでいう「類似度」は、2つのリソースを比較して、振る舞いや機能の違いの程度を、定量的に評価したものである。2つのリソースの類似度が高いほど、お互いを、代替手段として用いることができる可能性が高くなる。例えば、リソースAとリソースBの類似度が高い場合を考える。この場合、リソースAが含まれる機能構成を要求するユーザに対し、リソースAの代わりにリソースBを含む機能構成を提供しても、リソースAを含む機能構成を提供した場合と同等、若しくは近い結果を得ることができる。
【0070】
類似度DB45の第1比較項目45aの項目と、第2比較項目45bの項目とは、比較対象となるリソースを示す値が格納されている。類似度45cの項目は、第1比較項目45aと第2比較項目45bの間の類似度を示す値が格納されている。本実施形態では、類似度45cの項目に格納される値は、0.0〜1.0の数値範囲である。このとき、類似度45cに格納される値が大きいほど、第1比較項目45aが示すリソースと、第2比較項目45bが示すリソースとは類似している。同一リソース間の類似度45cは、1.0である。リソースと、当該リソースと同一リソースタイプに属するリソースが無い状態(N/A)との間の類似度45cは、0.0である。各リソース間の類似度45cの具体的数値は、実行環境構築システム10の管理者が、外部からの情報などを参考して、決定する。本実施形態では、第1比較項目45aが示すリソースがOS−1,第2比較項目45bが示すリソースがOS−2のとき、OS−1リソースとOS−2リソースの類似度45cは、0.9である。
【0071】
本実施形態では、類似度45cの項目に格納される値は、0.0〜1.0の数値範囲とした。しかし、これに限定されず、類似度45cは、0〜100,0〜10000,−100〜0、−1000〜+1000など、任意の範囲を指定しても良い。但し、本実施形態では、類似度45cは、数値ではない記号などは指定しない。
【0072】
第1比較項目45aの項目と第2比較項目45bの項目とが、逆に設定されていた場合であっても、類似度45cは変わらない。本実施形態では、第1比較項目45aが示すリソースがOS−2で、第2比較項目45bが示すリソースがOS−1の場合も、第1比較項目45aが示すリソースがOS−1で、第2比較項目45bが示すリソースがOS−2の場合と同様に類似度45cは、0.9となる。
【0073】
すなわち、或るリソースタイプに属するリソースがn種類の場合、類似度DB45には、少なくとも(n×(n−1)/2)通りのレコードが必要となる。
或るリソースと、このリソースと同一のリソースとの間の類似度45cの項目は、常に1.0の値である。或るリソースと”N/A”(Not Available)との間の類似度45cの項目は、常に0.0の値となる。本実施形態では、同一のリソースとの類似度45cと、”N/A”(Not Available)との類似度45cは、類似度DB45に格納していないが、これらの値を示すレコードを類似度DB45に格納しても良い。
このように、類似度DB45により、同一リソースタイプに属するリソース間の類似度の一元的な管理が可能となる。
(第1の実施形態の動作)
【0074】
図12は、第1の実施形態に於ける環境構成データ作成処理と実行環境構築処理を示すフローチャートである。
処理が開始すると、ステップS10において、実行環境構築装置20は、環境構成データDB42に基づき、オペレーティングシステムOS、第1のアプリケーションAP1、第2のアプリケーションAP2の組合せである環境構成データを全て抽出する。
ステップS11〜S13において、実行環境構築装置20は、全ての環境構成データについて処理を繰り返す。
ステップS12において、実行環境構築装置20は、当該環境構成データの構成需要度算出処理(図13)を呼び出す。
ステップS13において、実行環境構築装置20は、全ての環境構成データについて処理を繰り返していなかったならば、ステップS11の処理に戻る。
ステップS14において、実行環境構築装置20は、構成需要度の比率に基づき、各環境構成データを割り当てる実行端末50の数を決定する。
ステップS15において、実行環境構築装置20は、各実行端末50に、環境構成命令を送信する。
ステップS16において、実行環境構築装置20は、実行端末DB43の適用環境構成データ43bを設定する。
ステップS17において、実行環境構築装置20は、作成した環境構成データを、環境構成データDB42に書き込み、図12の処理を終了する。
ステップS20において、各実行端末50は、実行環境構築装置20から環境構成命令を受信する。
【0075】
ステップS21において、各実行端末50は、受信した構成命令に含まれている環境情報データに基づき、OSディレクトリ72、AP1ディレクトリ73、AP2ディレクトリ74、書き込み用ディレクトリ75を構成し、図12の処理を終了する。
【0076】
図13は、第1の実施形態に於ける構成需要度算出処理を示すフローチャートである。図13のフローチャートは、図12のステップS13の具体的処理内容を示している。
処理が開始すると、ステップS30において、実行環境構築装置20は、環境構成データ内のオペレーティングシステムOSをOS−iとし、環境構成データ内の第1のアプリケーションAP1をAP1−jとし、環境構成データ内の第2のアプリケーションAP2をAP2−kとする。
ステップS31において、実行環境構築装置20は、ユーザ環境情報DB44に基づき、OS−iの相対出現頻度F(OS−i)を算出する。
ステップS32において、実行環境構築装置20は、ユーザ環境情報DB44に基づき、AP1−jの相対出現頻度F(AP1−j)を算出する。
ステップS33において、実行環境構築装置20は、ユーザ環境情報DB44に基づき、AP2−kの相対出現頻度F(AP2−k)を算出する。
【0077】
ステップS34において、実行環境構築装置20は、この環境構成データに係るオペレーティングシステムOS、第1のアプリケーションAP1、第2のアプリケーションAP2の相対出現頻度に、それぞれ重み付け41cの値を掛けて加算し、構成需要度を算出し、図13の処理を終了する。
例として、オペレーティングシステムOS−1と、第1のアプリケーションAP1−3と、第2のアプリケーションAP2−2とである環境構成データの場合を考える。図7から、オペレーティングシステムOSの重み付け41cの値は100、第1のアプリケーションAP1の重み付け41cの値は50、第2のアプリケーションAP2の重み付け41cの値は20である。OS−1の相対出現頻度Fは、0.67である。第1のアプリケーションAP1−3の相対出現頻度Fは、0.33である。第2のアプリケーションAP2−2の相対出現頻度Fは、0.67である。
当該環境構成データの構成需要度は、各リソースの相対出現頻度に重み付け41cの値を掛けて加算したものであり、0.67×100+0.33×50+0.67×20=96.9となる。
【0078】
図14は、第1の実施形態に於ける実行端末選択処理を示すフローチャートである。
処理が開始すると、ステップS40において、ユーザPC200は、実行環境構築装置20に、ユーザ環境情報を送信する。
ステップS41において、ユーザPC200は、実行環境構築装置20から「実行端末割り当て通知」を受信し、図14の処理を終了する。
ステップS60において、実行環境構築装置20は、ユーザPC200から、ユーザ環境情報を受信する。
ステップS61において、実行環境構築装置20は、実行端末DB43の状態が「未使用」である実行端末50の一覧を取得する。
ステップS62〜S64において、実行環境構築装置20は、取得した実行端末分の処理を繰返す。
ステップS63において、実行環境構築装置20は、ユーザ環境情報と当実行端末50の環境構成データとの環境類似度算出処理(図15)を呼び出す。
ステップS64において、実行環境構築装置20は、取得した実行端末分の処理を繰返していなかったならば、ステップS62の処理に戻る。
ステップS65において、実行環境構築装置20は、環境類似度が最大の実行端末50の状態を「使用中」に変更する。
ステップS66において、実行環境構築装置20は、ユーザPC200に、「実行端末割り当て通知」を送信する。
ステップS67において、実行環境構築装置20は、実行端末50に、タスク実行命令を送信し、図14の処理を終了する。
ステップS50において、実行端末50は、実行環境構築装置20からタスク実行命令を受信し、図14の処理を終了する。
【0079】
図15は、第1の実施形態に於ける環境類似度算出処理を示すフローチャートである。図15に示すフローチャートは、図14のステップS63の処理の詳細を示すものである。
処理が開始すると、ステップS70において、実行環境構築装置20は、
ステップS70において、実行環境構築装置20は、類似度DB45に基づき、環境構成データ内のOS−iと、ユーザ環境情報内のOS−aの類似度を取得する。
【0080】
ステップS71において、実行環境構築装置20は、類似度DB45に基づき、環境構成データ内のAP1−jと、ユーザ環境情報内のAP1−bの類似度を取得する。
【0081】
ステップS72において、実行環境構築装置20は、類似度DB45に基づき、環境構成データ内のAP2−kと、ユーザ環境情報内のAP2−cの類似度を取得する。
【0082】
ステップS73において、実行環境構築装置20は、両者のオペレーティングシステムOSの類似度45cの値、第1のアプリケーションAP1の類似度45cの値、第2のアプリケーションAP2の類似度45cの値に、それぞれ重み付け41cの値を掛けて加算し、両者の環境類似度を得て、図15の処理を終了する。
【0083】
例として、図8の環境構成データ1と、図10のユーザ環境情報1とが入力として与えられた場合を考える。この場合、ステップS70において取得されるOS−1同志の類似度は、1.0である。ステップS71において取得されるAP1−1とAP1−3との間の類似度は、0.1である。ステップS72において取得されるAP2−1とAP2−2との間の類似度は、0.9である。OS−1〜OS−3の重み付けは100である。AP1−1〜AP1−3の重み付けは50である。AP2−1〜AP2−3の重み付けは20である。ステップS73において算出される環境類似度は、それぞれの類似度に重み付けを掛けた総和であり、1.0×100+0.1×50+0.9×20=123である。
【0084】
図16は、第1の実施形態に於けるタスク終了処理を示すフローチャートである。
処理が開始すると、ステップS80において、ユーザPC200は、実行環境構築装置20に終了通知とフィードバックとを送信し、図16の処理を終了する。フィードバックには、使用した実行端末50の環境が、ユーザが期待していた環境に充分に近かったかどうかの情報が含まれる。実行端末50の環境が、ユーザが期待した環境に充分に近かった場合、フィードバックには肯定値である“GOOD”が設定される。実行端末50の環境が、ユーザが期待した環境に近くなかった場合には、フィードバックには否定値である“BAD”が設定される。フィードバックとして肯定値である“GOOD”、否定値である“BAD”の何れかを送信するかは、実行端末50を利用したユーザの判断に依る。
ステップS100において、実行環境構築装置20は、ユーザPC200から終了通知・フィードバックを受信する。
ステップS101において、実行環境構築装置20は、フィードバックに基づき、類似度更新処理(図17)を呼び出す。
ステップS102において、実行環境構築装置20は、実行端末DB43の当該実行端末の状態を「未使用」に設定する。
ステップS103において、実行環境構築装置20は、当該実行端末50に、「終了命令」を送信し、図16の処理を終了する。
ステップS90において、実行端末50は、実行環境構築装置20から、「終了命令」を受信する。
ステップS91において、実行端末50は、書き込み用ディレクトリ75をクリアする。
ステップS92において、実行端末50は、当該実行端末50自身を再起動し、図16の処理を終了する。
【0085】
図17は、第1の実施形態に於ける類似度更新処理を示すフローチャートである。
処理が開始すると、ステップS110において、実行環境構築装置20は、環境構成データ内のオペレーティングシステムOSをOS−i(図7参照)とし、ユーザ環境情報のオペレーティングシステムOSをOS−a(図7参照)とする。
【0086】
ステップS111において、実行環境構築装置20は、OS−iとOS−aが異なるか否かを判断する。OS−iとOS−aが異なるならば(Yes)、ステップS112の処理を行う。OS−iとOS−aが異ならないならば(No)、ステップS115の処理を行う。
【0087】
ステップS112において、実行環境構築装置20は、フィードバックは肯定値である“GOOD”であるか否かを判断する。フィードバックが“GOOD”であったならば(Yes)、ステップS113の処理において、類似度DB45のOS−iとOS−aの類似度45cの値をα加算する。フィードバックが“GOOD”でなかったならば(No)、ステップS114の処理において、類似度DB45のOS−iとOS−aの類似度45cの値をβ減算する。
【0088】
ステップS115において、実行環境構築装置20は、環境構成データ内の第1のアプリケーションAP1をAP1−j(図7参照)とし、ユーザ環境情報の第1のアプリケーションAP1をAP1−b(図7参照)とする。
【0089】
ステップS116において、実行環境構築装置20は、AP1−jとAP1−bが異なるか否かを判断する。AP1−jとAP1−bが異なるならば(Yes)、ステップS117の処理を行う。AP1−jとAP1−bが異ならないならば(No)、ステップS120の処理を行う。
【0090】
ステップS117において、実行環境構築装置20は、フィードバックは肯定値である“GOOD”であるか否かを判断する。フィードバックが“GOOD”であったならば(Yes)、ステップS118の処理において、類似度DB45のAP1−jとAP1−bの類似度45cの値をα加算する。フィードバックが“GOOD”でなかったならば(No)、ステップS119の処理において、類似度DB45のAP1−jとAP1−bの類似度45cの値をβ減算する。
【0091】
ステップS120において、実行環境構築装置20は、環境構成データ内の第2のアプリケーションAP2をAP2−k(図7参照)とし、ユーザ環境情報の第2のアプリケーションAP2をAP2−c(図7参照)とする。
【0092】
ステップS121において、実行環境構築装置20は、AP2−kとAP2−cが異なるか否かを判断する。AP2−kとAP2−cが異なるならば(Yes)、ステップS122の処理を行う。AP2−kとAP2−cが異ならないならば(No)、図17の処理を終了する。
ステップS122において、実行環境構築装置20は、フィードバックは肯定値である“GOOD”であるか否かを判断する。フィードバックが“GOOD”であったならば(Yes)、ステップS123の処理において、類似度DB45のAP2−kとAP2−cの類似度45cの値をα加算する。フィードバックが“GOOD”でなかったならば(No)、ステップS124の処理において、類似度DB45のAP2−kとAP2−cの類似度45cの値をβ減算する。
【0093】
ユーザからのフィードバックが“GOOD”である場合に、異なるリソース間の類似度45cの値を増加するのは、両リソース間で機能の類似性が高いために、“GOOD”のフィードバックを得たと判断するからである。反対にユーザからのフィードバックが“BAD”である場合に、異なるリソース間の類似度45cの値を減少するのは、両リソース間で機能の類似性が低いために、“BAD”のフィードバックを得たと判断するからである。
例えば、ユーザが、Webブラウザの所定バージョンとオペレーティングシステムの所定バージョンの組合せである計算機環境に於いて不具合が発生した場合を考える。実行環境構築装置20は、実行端末50(=50−1〜50−5)に計算機環境を構築し、そのユーザの環境と最も近い計算機環境を有する実行端末50を選択してユーザPC200に通知する。ユーザは、選択された実行端末50を操作して、不具合が再現したならば、“GOOD”のフィードバックを返し、不具合が再現しなかったならば、“BAD”のフィードバックを返す。
【0094】
(第1の実施形態の効果)
以上説明した第1の実施形態では、次の(A)〜(D)のような効果がある。
【0095】
(A) 環境構成データDB42に格納されているオペレーティングシステムやアプリケーションの割合を反映した複数の実行端末50の計算機環境を自動で構築し、これら計算機環境で評価用プログラムを自動で実行させることが可能となる。これにより、市場における計算機環境のシミュレーションを、複数の実行端末50にて容易に行うことができ、手作業による計算機環境の構築と、手作業による評価の工数を大幅に削減可能である。
【0096】
(B) ユーザ環境情報に近く、かつ、「未使用」である実行端末50から順に選択して、タスクを実行するように構成している。これにより、市場に於ける計算機環境をシミュレーションした実行端末50の計算機環境を、ユーザ環境情報に近いものから順番に選択して、ソフトウェアの評価を行うことが可能となる。これにより、市場に於いて発生しやすい不具合を、実行端末50の計算機環境で迅速に再現することが可能となる。
【0097】
(C) ユーザのフィードバックに基づいて、異なるリソース間の類似度を増減している。これにより、初期状態において、誤ったリソースの類似度が付与されたとしても、所望の結果が得られた場合のユーザからのフィードバックにより、リソース間の類似度を補正することが可能である。
【0098】
(D) 実行端末50は、ファイル書込みの際には、OSリソース、AP1リソース、AP2リソースなどとは異なる、書き込み用ディレクトリ75に書き込んでいる。更に、この実行端末50が終了通知を受けたならば、書き込み用ディレクトリ75に書き込まれた全てのファイルを削除している。これにより、直前に行われたソフトウェアの評価に影響されず、常に同じ初期条件からソフトウェアの評価を開始できる。
【0099】
(第2の実施形態の構成)
図18は、第2の実施形態に於ける実行環境構築装置を示す概略の構成図である。第1の実施形態を示す図2中の要素と共通の要素には共通の符号が付されている。
本実施形態の実行環境構築装置20Aは、第1の実施形態の実行環境構築装置20とは異なる外部記憶装置40Aを有している他は、第1の実施形態の実行環境構築装置20と同様の構成を有している。本実施形態の外部記憶装置40Aは、第1の実施形態の外部記憶装置40と同様の構成に加えて、更に脆弱性情報DB46を有している。
【0100】
図19は、第2の実施形態に於ける脆弱性情報DBを示す図である。
脆弱性情報DB46は、脆弱性ID46aの項目と、対象リソース46bの項目と、深刻度46cの項目と、公開日46dの項目とを有している。
脆弱性情報DB46は、一定期間内に発見された、脆弱性に関する情報を管理する機能を有している。ここで、脆弱性とは、オペレーティングシステムやアプリケーションなどのリソースの欠陥や仕様上の問題点のうち、特に、攻撃に悪用される可能性があるものを言う。一般的に、リソースの脆弱性が発見された場合、その脆弱性を狙った攻撃が急増する傾向にある。このため、あるリソースに脆弱性が発見されると、当該リソースを含むユーザ環境情報が、ユーザPC200から送られる頻度が高くなる。本実施形態において脆弱性情報DB46は、環境構成データ作成部34において、今後の需要が増えると推定される環境構成データを算出する際に用いられる。
【0101】
脆弱性ID46aの項目は、各脆弱性情報を一意に識別する値が格納されている。対象リソース46bの項目は、脆弱性が存在するリソースを指定する値が格納されている。深刻度46cの項目は、脆弱性の危険度合いを定量的に示す値が格納されている。本実施形態では、深刻度46cの項目には、0.0〜1.0の数値範囲の値が格納されている。危険性が高い脆弱性ほど、深刻度46cに格納された値が高くなる。公開日46dの項目は、脆弱性情報が一般に公開された日付を示す情報が格納されている。
【0102】
図19の例では、脆弱性ID46aの値が1で識別される脆弱性は、対象リソース46bの値がOS−2、深刻度46cの値が0.9、公開日46dの値が「2010/12/19」である。同様に、脆弱性ID46aの値が2で識別される脆弱性は、対象リソース46bの値がAP1−2、深刻度46cの値が1.0、公開日46dの値が「2010/12/21」である。脆弱性ID46aの値が3で識別される脆弱性は、対象リソース46bの値がAP2−2、深刻度46cの値が0.2、公開日46dの値が「2010/12/22」である。
本実施形態では、深刻度46cの値は、0.0〜1.0の数値範囲に限らず、0〜100など、任意の数値範囲を指定しても良い。但し、深刻度46cの値は、環境構成データ作成部34で行われる数値計算で用いられるため、数値換算できない記号などは利用できない。
【0103】
(第2の実施形態の動作)
図20は、第2の実施形態に於ける構成需要度算出処理を示すフローチャートである。図20のフローチャートは、図12のステップS13の具体的処理内容を示している。
本実施形態は、ソフトウェア動作確認システムに適用した場合と異なり、構成需要度の算出に、脆弱性情報DB46を利用する。
処理が開始したのち、ステップS30〜S34の処理は、図13に示すステップS30〜S34の処理と同様である。
ステップS140において、実行環境構築装置20は、脆弱性情報DB46に基づき、OS−iに関する脆弱性の深刻度の総和V(OS−i)を算出する。
ステップS141において、実行環境構築装置20は、脆弱性情報DB46に基づき、AP1−jに関する脆弱性の深刻度の総和V(AP1−j)を算出する。
ステップS142において、実行環境構築装置20は、脆弱性情報DB46に基づき、AP2−kに関する脆弱性の深刻度の総和V(AP2−k)を算出する。
【0104】
ステップS143において、実行環境構築装置20は、OS−i,AP1−j,AP2−kそれぞれの相対出現頻度と脆弱性の深刻度の総和とを加算して、重み付けを掛け、これらの総和を算出して構成需要度とし、図20の処理を終了する。
【0105】
例として、OS−i=OS−1,AP1−j=AP1−3,AP2−k=AP2−2である環境構成データを考える。この場合、ステップS140における脆弱性の深刻度の総和V(OS−i)=0.0、ステップS141における脆弱性の深刻度の総和V(AP1−3)=0.0、ステップS141における脆弱性の深刻度の総和V(AP2−2)=0.2である。
OS−iの相対出現頻度は0.67であり、重み付けは100である。AP1−jの相対出現頻度は0.33であり、重み付けは50である。AP2−kの相対出現頻度は0.67であり、重み付けは20である。
このときの構成需要度は、それぞれの相対出現頻度と脆弱性の深刻度の総和とを加算して重み付けを掛け、これらの総和によって算出するので、(0.67+0.0)×100+(0.33+0.0)×50+(0.67+0.2)×20=100.9となる。
【0106】
(第2の実施形態の効果)
以上説明した第2の実施形態では、次の(E)〜(G)のような効果がある。
(E) 脆弱性情報DB46に基づき、各リソースの組合せの構成需要度を算出している。これにより、今後の需要が増えると推定される環境構成データを算出することが可能である。
【0107】
(F) 脆弱性の深刻度の高い計算機環境を構築し、その脆弱性に係るマルウェアの影響を重点的に評価可能となる。
(G) 脆弱性情報DB46に基づき、各リソースの出現頻度と脆弱性の深刻度の総和とを加算して、重み付けを掛け、これらの総和を算出して構成需要度としている。これにより、脆弱性の深刻度の高い計算機環境を、より高い頻度で評価することが可能である。
【0108】
(変形例)
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能である。この利用形態や変形例としては、例えば、次の(a)〜(d)のようなものがある。
【0109】
(a) 第1および第2の実施形態では、環境構成データ選択部33は、ユーザ環境情報と最も環境類似度が高い環境構成を持つ実行端末50を選択している。しかし、これに限られず、ユーザ環境情報との環境類似度が一定値以上(例えば、100以上)である実行端末50を複数個選択しても良い。この場合、タスクは複数の実行端末50上で実行される。タスクの実行結果は、個別にユーザに返信されても良いし、各実行端末50における実行結果をサーバに纏めた上でユーザに返信しても良い。これにより、環境類似度が一定値以上である複数の実行端末50上で同一タスクを実行することで、ユーザは、1度の評価で更に多くの情報を得ることができる。
【0110】
(b) 第1および第2の実施形態では、フィードバックが取りうる値は肯定値の“GOOD”と、否定値の“BAD”の2値であった。しかし、これに限られず、肯定値と否定値を示す他の単語や記号、例えば“OK”と“NG”、“良好”と“不良”、“○”と“×”などを用いても良く、限定されない。
【0111】
(c) 第1および第2の実施形態では、フィードバックが取りうる値は肯定値の“GOOD”と、否定値の“BAD”の2値であった。しかし、これに限られず、3値以上の値を設定し、より詳細なフィードバックを実現しても良い。例えば、フィードバックが、“GOOD”,“NORMAL”,“BAD”の3値を取るようにして、“NORMAL”の場合は、類似度の変更を行わないこととしても良い。これにより、類似度の変更値の粒度が細かくなるため、より精度が高い類似度の設定が可能となる。
【0112】
(d) 第1および第2の実施形態では、オペレーティングシステムOSに加えて、第1のアプリケーションAP1と、第2のアプリケーションAP2を取り扱っている。しかし、これに限られず、オペレーティングシステムOSのみを取り扱っても良い。更に、2以外の個数のアプリケーションを取り扱っても良い。
【符号の説明】
【0113】
10 実行環境構築システム
11 ゲートウェイ
20 実行環境構築装置
31 環境構成管理プログラム
32 タスク終了部
33 環境構成データ選択部
34 環境構成データ作成部
40 外部記憶装置
41 リソースDB
42 環境構成データDB(ユーザ環境情報)
43 実行端末DB
44 ユーザ環境情報DB(環境構成データ、ユーザ環境情報ログ)
45 類似度DB(ソフトウェアリソース間の機能の類似性)
46 脆弱性情報DB(ソフトウェアリソースの脆弱性情報)
50 実行端末
60 メモリ
61 環境構築プログラム
62 タスク実行プログラム
63 タスク終了プログラム
70a ルート記憶装置(ソフトウェアリソース保管用記憶装置)
70b 書き込み用記憶装置
71 ルートディレクトリ
72 OSディレクトリ
73 AP1ディレクトリ
74 AP2ディレクトリ
75 書き込み用ディレクトリ
80 環境構成リソース管理装置
81 リソース提供装置
90−1〜90−3 OS記憶装置
91−1〜91−3 AP1記憶装置
92−1〜92−3 AP2記憶装置
100−1,100−2 通信ネットワーク
200 ユーザPC

【特許請求の範囲】
【請求項1】
実行端末上に、少なくとも1つ以上のソフトウェアリソースで構成される実行環境を構築する実行環境構築装置であって、
ユーザが要求するユーザ環境情報に近い環境構成データの需要度を算出し、前記需要度に基づいて前記実行端末上に前記実行環境を構築する環境構成データ作成部と、
前記実行環境を構築した前記実行端末から、前記ユーザ環境情報と環境類似度が近い前記環境構成データを有するものを選択する環境構成データ選択部と、
を有することを特徴とする実行環境構築装置。
【請求項2】
前記ソフトウェアリソースは、オペレーティングシステムのリソースであり、
前記環境構成データは、前記環境構成データ作成部が指定したオペレーティングシステムおよび当該オペレーティングシステムのバージョン情報を具備し、
前記ユーザ環境情報は、ユーザが要求するオペレーティングシステムの種別および当該オペレーティングシステムのバージョン情報を具備すること
を特徴とする請求項1に記載の実行環境構築装置。
【請求項3】
前記ソフトウェアリソースは更に、アプリケーションのリソースを含み、
前記環境構成データは更に、前記環境構成データ作成部が指定したアプリケーションおよび当該アプリケーションのバージョン情報を具備し、
前記ユーザ環境情報は更に、ユーザが要求するアプリケーションの種別および当該アプリケーションのバージョン情報を具備すること
を特徴とする請求項2に記載の実行環境構築装置。
【請求項4】
前記環境構成データ作成部は、過去に取得したユーザ環境情報ログに基づいて前記需要度を算出すること
を特徴とする請求項1ないし請求項3のいずれか1項に記載の実行環境構築装置。
【請求項5】
前記環境構成データ作成部は、過去に取得したユーザ環境情報ログと前記ソフトウェアリソースの脆弱性情報とに基づいて前記需要度を算出すること
を特徴とする請求項1ないし請求項3のいずれか1項に記載の実行環境構築装置。
【請求項6】
前記環境構成データ作成部は、前記ソフトウェアリソースをそれぞれ保管する記憶装置を用いて、前記実行環境を構築すること
を特徴とする請求項4または請求項5に記載の実行環境構築装置。
【請求項7】
前記環境構成データ作成部は、前記ソフトウェアリソースの前記ユーザ環境情報ログにおける出現頻度に基づき、前記需要度を算出すること
を特徴とする請求項4または請求項5に記載の実行環境構築装置。
【請求項8】
前記環境構成データ作成部は更に、前記ソフトウェアリソースの種類に応じた重み付けを行って前記需要度を算出すること
を特徴とする請求項7に記載の実行環境構築装置。
【請求項9】
前記環境構成データ選択部は、ソフトウェアリソース間の機能の類似性に基づき、前記ユーザ環境情報と前記環境構成データ間の前記環境類似度を評価すること
を特徴とする請求項1ないし請求項8のいずれか1項に記載の実行環境構築装置。
【請求項10】
前記環境構成データ選択部は、前記ソフトウェアリソース間の機能の前記類似性を数値で評価する
ことを特徴とする、請求項9に記載の実行環境構築装置。
【請求項11】
前記環境構成データ選択部は、ユーザが前記実行環境を使用した後のフィードバック情報に基づいて、前記ソフトウェアリソース間の前記類似性の評価を変更すること
を特徴とする請求項10に記載の実行環境構築装置。
【請求項12】
前記フィードバック情報は、少なくとも肯定値と否定値の2値が選択可能である
ことを特徴とする請求項11に記載の実行環境構築装置。
【請求項13】
前記フィードバック情報の値が前記肯定値であった場合、前記環境構成データと前記ユーザ環境情報とで異なる前記ソフトウェアリソース間の前記類似性の値を増加させること
を特徴とする、請求項12に記載の実行環境構築装置。
【請求項14】
前記フィードバックが前記否定値であった場合、前記環境構成データと前記ユーザ環境情報とで異なる前記ソフトウェアリソース間の前記類似性の値を減少させること
を特徴とする、請求項12に記載の実行環境構築装置。
【請求項15】
前記環境構成データ選択部は、前記実行環境を構築した前記実行端末から、前記ユーザ環境情報と前記環境類似度が一定以上である前記環境構成データを有するものを複数選択すること
を特徴とする請求項1ないし請求項14のいずれか1項に記載の実行環境構築装置。
【請求項16】
請求項1ないし請求項15のいずれか1項に記載の実行環境構築装置と、前記実行端末からなる実行環境構築システムであって、
前記実行端末は、書き込み専用記憶装置と、ソフトウェアリソース保管用記憶装置とを有し、
タスク実行中に発生した記録装置への変更は前記ソフトウェアリソース保管用記憶装置には記録せず、代わりに前記書き込み専用記憶装置に記録する
ことを特徴とする実行環境構築システム。
【請求項17】
請求項1ないし請求項15のいずれか1項に記載の実行環境構築装置と、前記実行端末からなる実行環境構築システムであって、
前記実行端末は、1台の物理構成からなる計算機の上で実行される複数の仮想マシンであること
を特徴とする実行環境構築システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2012−221170(P2012−221170A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−85637(P2011−85637)
【出願日】平成23年4月7日(2011.4.7)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願 (平成22年度 独立行政法人情報通信研究機構「マルウェア対策ユーザサポートシステムの研究開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】