(57)【要約】【課題】学習コンテンツに対応する仮想計算機を学習者に提供すること。【解決手段】  クライアント１とサーバ２とが通信ネットワーク３を介して接続される学習支援システムであって、サーバ２は、クライアント１に通信ネットワーク３を介して学習コンテンツを提供する学習コンテンツ制御部８０と、仮想計算機６１、７１を制御する仮想化制御部３０と、を備えている。学習コンテンツ制御部８０は、学習コンテンツをクライアント１に提供する場合に、学習コンテンツに対応する所定の仮想計算機７１を仮想化制御部３０により作成し、作成した仮想計算機７１により実現される演習環境をクライアント１に提供する。【選択図】図１
2014149447.tif 000002
【特許請求の範囲】
【請求項１】
クライアントとサーバとが通信ネットワークを介して接続される学習支援システムであって、
前記サーバは、
前記クライアントに前記通信ネットワークを介して学習コンテンツを提供する学習コンテンツ制御部と、
仮想計算機を制御する仮想化制御部と、
を備えており、
前記学習コンテンツ制御部は、前記学習コンテンツを前記クライアントに提供する場合に、前記学習コンテンツに対応する所定の仮想計算機を前記仮想化制御部により作成し、作成した前記仮想計算機により実現される演習環境を前記クライアントに提供する、
学習支援システム。
【請求項２】
前記仮想化制御部は、複数のマスター仮想計算機を有し、前記学習コンテンツ制御部からの指示に応じて、前記複数のマスター仮想計算機のうち前記クライアントに提供する学習コンテンツに対応するマスター仮想計算機から前記所定の仮想計算機を作成する、
請求項１に記載の学習支援システム。
【請求項３】
前記学習コンテンツ制御部は、前記クライアントに前記所定の仮想計算機を提供する場合に、前記所定の仮想計算機が作成済みであるか判定し、前記所定の仮想計算機が作成済みであると判定した場合、その旨を前記クライアントに通知する、
請求項２に記載の学習支援システム。
【請求項４】
前記学習コンテンツ制御部は、前記サーバ内に前記所定の仮想計算機を作成可能であるか判定し、前記所定の仮想計算機を作成可能であると判定した場合に前記仮想化制御部により前記所定の仮想計算機を作成させ、前記所定の仮想計算機を作成可能ではないと判定した場合にエラーメッセージを前記クライアントに送信する、
請求項３に記載の学習支援システム。
【請求項５】
前記学習コンテンツ制御部は、前記所定の仮想計算機のうち予め設定された所定時間が経過しても終了していない前記所定の仮想計算機を検出した場合、その検出された所定の仮想化計算機を前記仮想化制御部により終了させる、
請求項４に記載の学習支援システム。
【請求項６】
前記学習コンテンツ制御部は、前記所定の仮想計算機に対する前記クライアントからの操作履歴を保持しており、前記クライアントからの指示に応じて、前記所定の仮想計算機の状態を最後の操作が行われる直前の状態に復元する、
請求項１〜５のいずれかに記載の学習支援システム。
【請求項７】
前記学習コンテンツ制御部は、前記クライアントに前記学習コンテンツに対応する試験問題情報を送信し、前記クライアントからの解答に基づいて、前記解答が予め用意される正解に完全に一致するかを評価する完全一致評価と、前記解答が前記正解に部分的に一致するかを評価する部分一致評価との、いずれか又は両方を実行する、
請求項１〜５のいずれかに記載の学習支援システム。
【請求項８】
クライアントと通信ネットワークを介して接続されるサーバ上に実現される学習支援システムを制御するための学習支援システム制御方法であって、
前記サーバは、
前記クライアントに前記通信ネットワークを介して学習コンテンツを提供する学習コンテンツ制御部と、
仮想計算機を制御する仮想化制御部と、
を備えており、
前記学習コンテンツ制御部は、前記学習コンテンツを前記クライアントに提供する場合に、前記学習コンテンツに対応する所定の仮想計算機を前記仮想化制御部により作成し、作成した前記仮想計算機により実現される演習環境を前記クライアントに提供する、
学習支援システム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習支援システムおよび学習支援システム制御方法に関する。
【背景技術】
【０００２】
通信ネットワークを利用して学習するｅラーニングシステムが普及しつつある。従来のｅラーニングシステムは、文字、画像、音声などで表現されたオンライン教材をクライアント端末に表示することにより、座学中心で学習者に知識を習得させる。
【０００３】
これに対し、学習者に技能を習得させるためには、学習者が実際に演習を行うための演習環境が必要となる。そのため特許文献１では、演習内容に応じたシミュレーション情報をサーバ上に準備しておき、クライアントからの要求に応じてシミュレーション情報を送信することで、クライアントにシミュレータを提供する。特許文献２では、ｅラーニングシステムが学習対象のアプリケーションプログラムを起動し、ｅラーニングの教材とアプリケーション画面とを同時に表示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６‐２９３１０１号公報
【特許文献２】特開２００６‐３９２１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の従来技術では、演習内容に応じてシミュレータを用意する必要があり、ｅラーニングシステムの開発コストおよび運用コストが増大する。特許文献２に記載のように、学習者ごとの演習環境をｅラーニングシステムとは別に用意する場合は、ｅラーニングシステムに演習履歴が残らないため、学習者自身による振り返りやｅラーニングシステムの管理者による学習状況の管理分析が難しい。
【０００６】
本発明は上記課題に鑑みてなされたもので、その目的は、学習コンテンツに対応する演習環境をクライアントに提供することができるようにした学習支援システムおよび学習支援システム制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明に係る学習支援システムは、クライアントとサーバとが通信ネットワークを介して接続される学習支援システムであって、サーバは、クライアントに通信ネットワークを介して学習コンテンツを提供する学習コンテンツ制御部と、仮想計算機を制御する仮想化制御部と、を備えており、学習コンテンツ制御部は、学習コンテンツをクライアントに提供する場合に、学習コンテンツに対応する所定の仮想計算機を仮想化制御部により作成し、作成した仮想計算機により実現される演習環境をクライアントに提供する。
【０００８】
仮想化制御部は、複数のマスター仮想計算機を有し、学習コンテンツ制御部からの指示に応じて、複数のマスター仮想計算機のうちクライアントに提供する学習コンテンツに対応するマスター仮想計算機から所定の仮想計算機を作成することもできる。
【０００９】
学習コンテンツ制御部は、クライアントに所定の仮想計算機を提供する場合に、所定の仮想計算機が作成済みであるか判定し、所定の仮想計算機が作成済みであると判定した場合、その旨をクライアントに通知することもできる。
【００１０】
学習コンテンツ制御部は、サーバ内に所定の仮想計算機を作成可能であるか判定し、所定の仮想計算機を作成可能であると判定した場合に仮想化制御部により所定の仮想計算機を作成し、所定の仮想計算機を作成可能ではないと判定した場合にエラーメッセージをクライアントに送信することもできる。
【００１１】
学習コンテンツ制御部は、所定の仮想計算機のうち予め設定された所定時間が経過しても終了していない所定の仮想計算機を検出した場合、その検出された所定の仮想化計算機を仮想化制御部により終了させることもできる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態にかかる学習支援システムの全体構成図。
【図２】演習課題を作成する処理と演習課題を作成する画面を示す説明図。
【図３】学習者が演習課題を表示する場合のサーバ処理を示すフローチャート。
【図４】仮想計算機（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）の重複起動を判定する処理を示すフローチャート。
【図５】仮想計算機を作成するためのリソースがあるか判定する処理を示すフローチャート。
【図６】仮想計算機を作成する処理を示すフローチャート。
【図７】仮想計算機を起動する処理を示すフローチャート。
【図８】認証情報を設定する処理を示すフローチャート。
【図９】ＷＥＢターミナルアプリケーションがＷＥＢリクエストを受け取った場合の動作を示すフローチャート。
【図１０】演習課題を表示する画面の構成説明図。
【図１１】学習者がターミナル画面を操作して演習を実施する場合の動作を示すフローチャート。
【図１２】一定時間経過後に演習環境を自動終了する処理を示すフローチャート。
【図１３】演習環境を一手前の状態に戻すＵｎｄｏ処理を示すフローチャート。
【図１４】演習履歴を確認する画面の構成説明図。
【図１５】本発明の第２実施例に係り、技能試験を作成する画面の構成説明図。
【図１６】技能試験を作成する処理を示すフローチャート。
【図１７】技能試験を実施する処理を示すフローチャート。
【図１８】技能試験の結果を採点する画面の構成説明図。
【発明を実施するための形態】
【００１３】
本実施形態では、以下に詳述する通り、図１に示したサーバ２上で学習者に演習環境を提供するために、仮想マシンモニタ（Ｖｉｒｔｕａｌ Ｍａｃｈｉｎｅ Ｍｏｎｉｔｏｒ、以下ＶＭＭ）３０が導入された学習支援システムを説明する。本システムでは、学習者が通信ネットワーク３を経由して演習を開始した場合に、学習者ごとに、学習内容に合った演習環境を提供するための学習者専用仮想マシン（学習者専用ＶＭ）７１を作成して、学習者の使用するクライアント１に提供する。なお、以下仮想マシンをＶＭと称す。
【００１４】
本システムは、学習者専用ＶＭの重複起動を確認する処理と、リソースの有無を確認する処理と、学習者専用ＶＭを作成する処理と、学習者専用ＶＭを起動する処理と、認証情報を設定する処理と、ターミナル画面を表示する処理と、グラフィカルユーザインタフェース（ＧＵＩ）画面を表示する処理とを実行することができる。
【００１５】
さらに、本システムは、学習者の演習内容とその結果をサーバ内に保持する演習履歴保持処理と、学習者専用ＶＭを最後に操作される前の状態に復元するＵＮＤＯ処理と、学習者専用ＶＭを所定条件下で削除するＶＭ削除処理とを実行することができる。
【００１６】
さらに、本システムは、学習者の理解度を確認するための技能試験を実施することができ、技能試験の結果を複数の手法で自動的に採点することもできる。
【００１７】
このように本実施形態によれば、学習者の学習内容にあった演習環境を実現するための学習者専用ＶＭを自動的に作成して学習者に提供することができる。従って、本実施形態では、学習者は、クライアント端末内でアプリケーションを起動させて演習環境を用意したりする必要がなく、学習のための手間を省いて効率的に学習できる。さらに、本実施形態では、ｅラーニングシステム８０がＶＭＭ３０を介して学習者専用ＶＭ７１の作成等を管理し、学習者の演習履歴を保持する。このため、学習者および管理者は、演習結果の確認および分析などを容易に行うことができ、効率的に学習することができる。
【００１８】
本実施形態は、例えば、各種プログラム言語の習得、各種プログラムの作成、データベースの構築と操作、ＷＥＢサービスの構築、組み込み制御系のプログラム開発などの分野での学習に好適に用いることができる。しかし、本実施形態はそれらの分野に限らず、ＶＭによって実現可能な演習環境を用いることのできる種々の分野に適用できる。
【実施例１】
【００１９】
本実施例の学習支援サーバが備えるサーバ２は、学習者に演習環境を提供するためにＶＭＭ３０とｅラーニングシステム８０を備え、学習者の演習開始に伴って、学習内容に合った学習者専用ＶＭ７１を自動的に作成する。サーバ２は、学習者専用ＶＭ７１に外部の第三者がアクセスできないように、ワンタイムパスワードを用いてアクセス制限を設定する。
【００２０】
本実施例では、ターミナル画面を使用する演習環境と、ＧＵＩ画面を使用する演習環境との両方を使用可能である。ＧＵＩベースの演習環境を用いる場合、学習者の操作によって学習者専用ＶＭに特定の入力が行われた場合に、または、一定時間毎に、学習者専用ＶＭの画面を自動的に取得してサーバ２に送信する。サーバ２は、受信した画面データを解析して演習履歴情報に記録することができる。
【００２１】
以下、図１〜図１４を参照して第１実施例を説明する。なお、以下の説明では、便宜上、サーバ機器を「サーバ」と呼び、クライアント機器を「クライアント」と呼ぶ。
【００２２】
図１は、学習支援システムの全体構成とサーバ２の構成を示す。学習支援システムは、少なくとも一つのクライアント１と、クライアント１と通信ネットワーク２を介して接続される少なくとも一つのサーバ２とを備える。図示は省略するが、サーバ２に各種設定を行うための管理用端末を設けることもできる。図１では、一つのクライアント１と一つのサーバ２を示すが、実際には複数のクライアント１をサーバ２に接続できる。さらに例えば負荷分散等のために、学習支援システムは複数のサーバ２を備えることもできる。
【００２３】
クライアント１は、学習者が使用する情報処理端末であり、例えば、デスクトップ型、ノート型、タブレット型等のパーソナルコンピュータ、携帯電話、携帯情報処理装置（いわゆるスマートフォンを含む）等で構成される。
【００２４】
サーバ２の構成を説明する。サーバ２は、クライアント１にオンラインでの学習支援サービスを提供するコンピュータである。サーバ２は、例えば、ホストオペレーティングシステム（ホストＯＳ）１０、アドレス管理テーブル２０、ＶＭＭ３０、ＷＥＢサーバ４１、データベース５０、マスターＶＭ格納部６０、学習者専用ＶＭ格納部７０、ｅラーニングシステム８０を備える。
【００２５】
ホストＯＳ１０上に「仮想化制御部」の例としてのＶＭＭ３０が設けられており、ＶＭＭ３０は、マスターＶＭ格納部６０内のマスターＶＭ６１と、学習者専用ＶＭ格納部７０内の学習者専用ＶＭ７１を制御する。ＶＭ（仮想マシン）は「仮想計算機」の例であり、学習者専用ＶＭ７１は「所定の仮想計算機」の例である。学習者専用ＶＭ７１は、ｅラーニングシステム８０からの命令により、例えば演習の開始とともにＶＭＭ３０によって作成される。学習者専用ＶＭ７１の起動タイミングは、演習開始と同時でもよいし、演習開始後でもよいし、演習開始の前でもよい。
【００２６】
「学習コンテンツ制御部」の例であるｅラーニングシステム８０は、ＷＥＢサーバ４１およびデータベース（ＤＢ）５０上にて動作し、クライアント１からの要求に応じて所定の処理を実行する。所定の処理とは、ＶＭ重複起動確認処理、リソース確認処理、ＶＭ作成処理、ＶＭ起動処理、認証用設定処理、ターミナル画面表示処理、ＧＵＩ画面表示処理、ＶＭ削除処理である。ｅラーニングシステム８０が実施する各処理の詳細については後述する。
【００２７】
ｅラーニングシステム８０は、内部データ８１を備えている。内部データ８１の詳細については後述するが、例えば、ＶＭ接続情報８１１および各種設定値８１２などを含んでいる。
【００２８】
ＶＭＭ３０は、ｅラーニングシステム８０から受信した命令に基づいて、学習者専用ＶＭ７１の作成処理、起動処理、停止処理等を実行すると共に、仮想ネットワーク３１を構築する。
【００２９】
アドレス管理テーブル２０は、内部データ８１の一つであるＶＭ接続情報８１１に基づいて、クライアント１から学習者専用ＶＭ７１へのパケット転送を行う。サーバ２を経由するパケット転送を用いて学習者専用ＶＭ７１に接続することにより、外部ネットワーク上の第三者の使用する端末が学習者専用ＶＭ７１に直接接続することを制限する。
【００３０】
ＶＭ接続情報８１１は、例えば、ＶＭＭ３０で起動する学習者専用ＶＭ７１のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスと、サーバ２から学習者専用ＶＭ７１へパケットを転送するポート番号とを対応づけて構成される。
【００３１】
上述の通り、ＶＭＭ３０は、マスターＶＭ６１と学習者専用ＶＭ７１を制御し、仮想ネットワーク３１およびＶＭ定義情報３２を備えている。
【００３２】
マスターＶＭ６１は、学習コンテンツの種類毎に用意される。マスターＶＭ６１は、例えば、クライアント１に学習者専用ＶＭ７１の演習環境を表示するためのＷＥＢターミナルアプリケーションおよびＷＥＢリモートデスクトップアプリケーションや、ＷＥＢリモートデスクトップアプリケーションを動作させるためのリモートデスクトップサーバ（いずれも図示せず）と、クライアント１に提供する演習内容に合った環境、例えばＯＳイメージやアプリケーション開発用環境等とを備えている。
【００３３】
ＷＥＢサーバ４１は、ｅラーニングシステム８０を動作させるためのものである。
【００３４】
仮想ネットワーク３１は、サーバ２と学習者専用ＶＭ７１の間の通信のみを許可し、学習者専用ＶＭ７１から外部ネットワークへの通信を遮断する。従って第三者は、外部ネットワークからサーバ２内に侵入して学習者専用ＶＭ７１を使用することができないようになっている。
【００３５】
ＤＢ５０は、例えば、学習コンテンツなどを管理するためのコンテンツ情報５０１と、学習者専用ＶＭ７１を管理するためのＶＭ管理情報５０２と、演習履歴を管理する演習履歴情報５０３とを備える。ＤＢ５０は、クライアント１を特定するための情報、クライアント１を使用するユーザ（学習者）を特定するための情報なども管理している。さらに、ＤＢ５０は後述する技能試験情報も管理する。
【００３６】
図２〜図１４を用いてｅラーニングシステム８０の動作を説明する。図２は、学習支援システムの管理者が演習課題を作成する処理と、演習課題を作成するための画面Ｇ１とを示している。ここでは便宜上、学習支援システムの管理者が演習課題を作成するものとして説明するが、学習支援システムの管理者と演習課題の作成者とが異なってもよい。
【００３７】
［演習課題作成時の処理］
【００３８】
管理者がｅラーニングシステム８０に演習課題を追加する場合、管理者の使用する端末からｅラーニングシステム８０にログインし、図２の下側に示す演習課題作成画面Ｇ１を表示する。演習課題作成画面Ｇ１は、演習課題を作成するための画面であり、例えば、演習課題の名称を入力する領域ＧＰ１０、演習課題の内容を入力する領域ＧＰ１１、演習課題に対応するマスターＶＭ６１を選択する領域ＧＰ１２を備えている。
【００３９】
管理者は、演習課題の作成に際して、作成する演習課題の名称を演習課題名入力領域ＧＰ１０に入力する。管理者は、演習環境とともに表示する演習課題の内容を、演習課題内容入力領域ＧＰ１１に入力する。管理者は、演習課題の内容に合致するマスターＶＭ６１を、マスターＶＭ選択領域ＧＰ１２から選択する。
【００４０】
マスターＶＭ選択領域ＧＰ１２では、サーバ２のマスターＶＭ格納部６０に格納されているマスターＶＭ６１の名称に基づいて選択肢を生成する。マスターＶＭ格納部６０とは、管理者が作成したマスターＶＭ６１を格納する記憶領域である。
【００４１】
管理者により作成された演習課題を追加登録する処理を説明する。ｅラーニングシステム８０は、演習課題作成画面Ｇ１の各領域ＧＰ１０〜ＧＰ１２に入力された情報（演習課題名、演習課題内容、マスターＶＭ名）を取得する（Ｓ１０）。ｅラーニングシステム８０は、ステップＳ１０で取得した情報を、ＤＢ５０内のコンテンツ情報５０１に設定する（Ｓ１１）。
【００４２】
図３は、学習者がクライアント１に演習課題を表示した場合の動作を示すフローチャートである。
【００４３】
［演習課題表示時の処理］
【００４４】
クライアント１に演習課題を表示する処理は、それぞれ後述するように、ＶＭ重複起動確認処理Ｓ２０、リソース確認処理Ｓ２１、ＶＭ作成処理Ｓ２２、ＶＭ起動処理Ｓ２３、認証情報設定処理Ｓ２４を含んでいる。以下、処理の実行主体としてのｅラーニングシステム８０を、便宜上、システム８０と略記する場合がある。
【００４５】
図４は、ＶＭ重複起動確認処理Ｓ２０の詳細を示すフローチャートである。ＶＭ重複起動確認処理Ｓ２０は、学習者が演習課題をクライアント１に表示する場合に、その学習者専用ＶＭ７１が起動済みであるか否かを判定し、起動済みであるならば学習者専用ＶＭ７１を作成せず、起動済みの学習者専用ＶＭ７１を利用する処理である。
【００４６】
システム８０は、演習課題をクライアント１の画面に表示した学習者（ユーザ）を特定するユーザＩＤをＤＢ５０から取得する（Ｓ３０）。
【００４７】
システム８０は、クライアント１に表示している演習課題の設定情報（コンテンツＩＤおよびマスターＶＭ名）をＤＢ５０から取得する（Ｓ３１）。システム８０は、内部データ８１から、ＶＭ最大起動数とリトライ上限値を取得する（Ｓ３２）。
【００４８】
ＶＭ最大起動数（ＶＭｍａｘ）とは、サーバ２上で起動可能な学習者専用ＶＭ７１の上限値を示す。ＶＭ最大起動数は、例えばサーバ２のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）性能、メモリ搭載量、空きメモリ量、スレッド数、通信ネットワークの帯域等から判断できる。ＶＭ最大起動数は、固定値として予め設定してもよいし、サーバ２の負荷状態に基づいて自動的に設定する構成でもよいし、管理者が手動で設定してもよい。リトライ上限値（ＲＣｍａｘ）は、後述のＶＭ起動処理において使用される設定値であり、学習者専用ＶＭ７１の起動を確認する回数の上限値である。
【００４９】
システム８０は、ステップＳ３０、ステップＳ３１でＤＢ５０から取得した情報（ユーザＩＤ、コンテンツＩＤ、マスターＶＭ名）と一致するＶＭ管理情報５０２をＤＢ５０から取得する（Ｓ３３）。
【００５０】
ＶＭ管理情報５０２は、例えば、学習者の識別子であるユーザＩＤ、学習しているコンテンツの識別子であるコンテンツＩＤ、管理者が選択したマスターＶＭ６１の名称であるマスターＶＭ名、学習者専用ＶＭ７１を利用して学習（演習）を開始した時刻である学習開始時刻、学習者専用ＶＭ７１の利用を終了した時刻である学習終了時刻、学習者専用ＶＭ７１の認証情報であるワンタイムパスワードを対応付けて構成される。
【００５１】
システム８０は、ステップＳ３０、Ｓ３１で取得した情報と一致するＶＭ管理情報がＤＢ５０に格納されているか判断する（Ｓ３４）。
【００５２】
条件に一致するＶＭ管理情報が格納されていないと判定した場合（Ｓ３４：ＮＯ）、システム８０は、現在時刻を取得する（Ｓ３５）。システム８０は、取得した情報（ユーザＩＤ、コンテンツＩＤ、マスターＶＭ名、現在時刻）を、ＤＢ５０のＶＭ管理情報５０２に設定し（Ｓ３６）、後述のステップＳ３７に進む。
【００５３】
条件に一致するＶＭ管理情報が格納されていると判定した場合（Ｓ３４：ＹＥＳ）、システム８０は、起動している学習者専用ＶＭ７１の名称の一覧をＶＭＭ３０から取得する（Ｓ３７）。
【００５４】
システム８０は、演習課題に使用されているマスターＶＭ名、ユーザＩＤ、コンテンツＩＤを結合することで、学習者専用ＶＭ名を作成する（Ｓ３８）。システム８０は、ステップＳ３７で取得した起動中のＶＭ名の一覧の中に、ステップＳ３８で作成した学習者専用ＶＭ名が含まれているか判断する（Ｓ３９）。
【００５５】
作成した学習者専用ＶＭ７１の名称が起動中ＶＭ名一覧の中に含まれていると判定した場合（Ｓ３９：ＹＥＳ）、システム８０は、学習者専用ＶＭ７１が起動済みであることを示す情報メッセージをクライアント１に送信して表示し（Ｓ４０）、結合子１を介して後述するステップＳ８０（図８）に進む。
【００５６】
作成した学習者専用ＶＭ７１の名称が起動中ＶＭ名一覧の中に含まれていない場合（Ｓ３９：ＮＯ）、システム８０は、図５に示すリソース確認処理Ｓ２１を実施する。
【００５７】
図５は、リソース確認処理Ｓ２１の詳細を示すフローチャートである。リソース確認処理は、演習環境を作成するときに、サーバ２に学習者専用ＶＭ７１を作成するための空きリソースが存在するか判断し、リソースが有るならば学習者専用ＶＭ７１を作成し、リソースが無いならば学習者専用ＶＭ７１の作成を中止する処理である。
【００５８】
システム８０は、起動している学習者専用ＶＭ７１の数ＮｖｍをＶＭＭ３０から取得する（Ｓ５０）。システム８０は、ステップＳ５０で取得した値ＮｖｍがＶＭ最大起動数ＶＭｍａｘを超えているか判断する（Ｓ５１）。
【００５９】
システム８０は、起動中の学習者専用ＶＭ数ＮｖｍがＶＭ最大起動数ＶＭｍａｘを超えていると判定した場合（Ｓ５１：ＹＥＳ）、クライアント１にエラーメッセージを送信して表示し（Ｓ５２）、学習者専用ＶＭ７１の作成を中止する。
【００６０】
システム８０は、起動中の学習者専用ＶＭ数ＮｖｍがＶＭ最大起動数ＶＭｍａｘを超えていないと判定した場合（Ｓ５１：ＮＯ）、後述のＶＭ作成処理を実施する。
【００６１】
図６は、ＶＭ作成処理Ｓ２２の詳細を示すフローチャートである。ＶＭ作成処理は、演習環境を作成するときに、演習環境を提供する学習者専用ＶＭ７１を作成可能であるならばＶＭＭ３０に対して学習者専用ＶＭ７１の作成を命令し、作成不可であるならば演習環境の作成を中止する処理である。
【００６２】
システム８０は、演習課題に関連づけられているマスターＶＭ名と同じ名称のマスターＶＭ６１をマスターＶＭ格納部６０から選択し、そのマスターＶＭ６１の複製を学習者専用ＶＭ７１として、学習者専用ＶＭ格納部７０内に作成する（Ｓ６０）。
【００６３】
ここで、学習者専用ＶＭ７１は、マスターＶＭ６１をコピーオンライト方式で複製することにより作成される。コピーオンライト方式でマスターＶＭ６１を複製することで、学習者専用ＶＭ７１の複製時間を短縮できる。なお、例えば学習者専用ＶＭ７１の作成時間に余裕がある場合などでは、マスターＶＭ６１の全データをコピーするいわゆるフルコピー方式で学習者専用ＶＭ７１を作成してもよい。
【００６４】
システム８０は、ＶＭ管理情報のＩＤを１６進数に変換し、その変換値から学習者専用ＶＭ７１のＶＭ定義情報に使用するためのＭＡＣアドレスを生成する（Ｓ６１）。システム８０は、学習者専用ＶＭ７１とＶＭ定義情報をＶＭＭ３０に登録し、学習者専用ＶＭ７１を定義する（Ｓ６２）。ＶＭ定義情報３２は、例えば、学習者専用ＶＭ７１の名称と、ＭＡＣアドレスとを含んで構成される。システム８０は、学習者専用ＶＭ７１の作成（およびその定義）は成功したか判断する（Ｓ６３）。
【００６５】
システム８０は、学習者専用ＶＭ７１の作成または定義に失敗したと判定した場合（Ｓ６３：ＮＯ）、クライアント１にエラーメッセージを送信して表示し（Ｓ６４）、演習環境の作成を中止する。
【００６６】
システム８０は、学習者専用ＶＭ７１の作成に成功したと判定した場合（Ｓ６３：ＹＥＳ）、後述のＶＭ起動処理を実施する。
【００６７】
図７は、ＶＭ起動処理Ｓ２３の詳細を示すフローチャートである。ＶＭ起動処理は、演習環境を作成するときに、学習者専用ＶＭ７１の起動を実施し、起動に成功したならば演習環境を表示し、起動に失敗したならば演習環境の作成を中止する処理である。
【００６８】
システム８０は、図６のステップＳ６２で定義した学習者専用ＶＭ７１を起動する（Ｓ７０）。システム８０は、内部データの設定値の一つであるリトライカウンタＲＣに“０”を設定する（Ｓ７１）。リトライカウンタＲＣは、学習者専用ＶＭ７１へのパケット再送回数をカウントするためのデータである。
【００６９】
システム８０は、サーバ２から学習者専用ＶＭ７１にＩＣＭＰ（Ｉｎｔｅｒｎｅｔ Ｃｏｎｔｒｏｌ Ｍｅｓｓａｇｅ Ｐｒｏｔｏｃｏｌ）を送信する（Ｓ７２）。システム８０は、サーバ２から学習者専用ＶＭ７１に送信したＩＣＭＰのパケット数と、学習者専用VM７１からサーバ２が受信したパケット数の値とが一致するか判断する（Ｓ７３）。
【００７０】
学習者専用ＶＭ７１は、ＯＳ起動時に予め用意されたネットワーク設定スクリプトを自動的に実行する。ネットワーク設定スクリプトは、学習者専用ＶＭ７１のＭＡＣアドレスをＩＰアドレスに変換し、そのＩＰアドレスをネットワーク設定に適用する。
【００７１】
システム８０は、パケット送信数とパケット受信数とが一致しないと判定した場合（Ｓ７３：ＮＯ）、リトライカウンタＲＣに１を加算する（Ｓ７４）。システム８０は、リトライカウンタＲＣがリトライ上限値ＲＣｍａｘに達したか判断する（Ｓ７５）。
【００７２】
システム８０は、リトライカウンタＲＣがリトライ上限値ＲＣｍａｘに達したと判定した場合（Ｓ７５：ＹＥＳ）、クライアント１にエラーメッセージを送信して表示し、演習環境の作成を中止する。システム８０は、リトライカウンタＲＣがリトライ上限値ＲＣｍａｘに達していないと判定した場合（Ｓ７５：ＮＯ）、ステップＳ７２に戻る。
【００７３】
システム８０は、ステップＳ７３において、パケット送信数とパケット受信数が同一であると判定した場合（Ｓ７３：ＹＥＳ）、後述の認証情報設定処理を実施する。
【００７４】
図８は、認証情報設定処理Ｓ２４の詳細を示すフローチャートである。認証情報設定処理は、ｅラーニングシステム８０のみから学習者専用ＶＭ７１に接続できるようにするために、ｅラーニングシステム８０においてワンタイムパスワードを発行し、そのワンタイムパスワードをＶＭ管理情報に設定する処理である。
【００７５】
システム８０は、学習者専用ＶＭ７１の認証に使用するワンタイムパスワードを発行する（Ｓ８０）。システム８０は、ステップＳ８０で取得したワンタイムパスワードを、ＤＢ５０のＶＭ管理情報５０２に設定する（Ｓ８１）。
【００７６】
システム８０は、演習環境を表示する画面に、学習者専用ＶＭ７１のＷＥＢターミナルアプリケーションへのＷＥＢリクエストの結果を表示する（Ｓ８２）。ＷＥＢリクエストの結果、ｅラーニングシステム８０に学習者専用ＶＭ７１の演習環境が表示される。ＷＥＢターミナルアプリケーションの処理については後述する。
【００７７】
［ＷＥＢターミナルアプリケーションの処理］
【００７８】
図９は、学習者専用ＶＭ７１の有するＷＥＢターミナルアプリケーションがＷＥＢリクエストを受け取った場合の動作を示すフローチャートである。
【００７９】
学習者専用ＶＭ７１のＷＥＢターミナルアプリケーションは、クライアント１からのＷＥＢリクエストをサーバ２を介して受け取った場合、ターミナル画面を表示する処理を実施する。ターミナル画面表示処理は、ｅラーニングシステム８０からのＷＥＢリクエストであるかをワンタイムパスワードの照合によって判断し、認証に成功した場合はクライアント１にターミナル画面を表示する。
【００８０】
ＷＥＢターミナルアプリケーションは、表示している演習課題の情報（コンテンツＩＤ、マスターＶＭ名、ワンタイムパスワード）ＤＢ５０から取得する（Ｓ９０）。ＷＥＢターミナルアプリケーションは、演習課題のコンテンツＩＤおよびマスターＶＭ名と一致するＶＭ管理情報をＤＢ５０から取得する。ＷＥＢターミナルアプリケーションは、ステップＳ９０で取得したワインタイムパスワードと、ステップＳ９１で取得したＶＭ管理情報に登録されているワンタイムパスワードとが一致するか判断する（Ｓ９２）。
【００８１】
ＷＥＢターミナルアプリケーションは、両ワンタイムパスワードが一致すると判定した場合（Ｓ９２：ＹＥＳ）、ターミナル画面を表示する（Ｓ９３）。これに対し、ＷＥＢターミナルアプリケーションは、ワンタイムパスワードが一致しないと判定した場合（Ｓ９２：ＮＯ）、クライアント１にエラーメッセージを送信して表示する。
【００８２】
ここで、ワンタイムパスワードが一致しない理由としては、例えば以下の２つのケースが想定される。第１のケースは、ｅラーニングシステム８０において、他のユーザが作成した学習者専用ＶＭ７１を表示している場合である。第２のケースは、ｅラーニングシステム８０の外から、学習者専用ＶＭ７１のＷＥＢターミナルアプリケーションにＷＥＢアクセスを実施する場合である。第２のケースでは、ｅラーニングシステム８０の認証が行われていないため、不正な接続とみなす。
【００８３】
［ＷＥＢリモートデスクトップアプリケーションの処理］
【００８４】
ターミナル画面に代えてＧＵＩ画面をクライアント１に提供する場合を述べる。学習者専用ＶＭ７１の有するＷＥＢリモートデスクトップアプリケーションは、サーバ２を経由して、クライアント１からのＷＥＢリクエストを受け取った場合、ＧＵＩ画面を表示する処理を実施する。
【００８５】
ＧＵＩ画面表示処理は、図９で述べた処理と同様である。ＷＥＢリモートデスクトップアプリケーションは、ｅラーニングシステム８０からのＷＥＢリクエストであるかをＤＢ５０から取得したワンタイムパスワードの一致により判断し（Ｓ９０〜Ｓ９２）、クライアント１にＧＵＩ画面を表示する（Ｓ９３）。
【００８６】
［演習実施処理］
【００８７】
図１０は、クライアント１に表示される演習課題表示画面Ｇ２の構成説明図である。図１１は、学習者がターミナル画面を操作して演習を実施する場合の動作を示すフローチャートである。
【００８８】
学習者がｅラーニングシステム８０に表示された演習課題で演習を実施する場合、図１０に示す演習課題表示画面Ｇ２が使用される。演習課題を表示するための画面Ｇ２は、例えば、演習課題を表示する領域ＧＰ２０と、ＷＥＢターミナル画面またはＷＥＢリモートデスクトップ画面を表示する演習環境表示領域ＧＰ２１と、操作を一つ前の状態に戻すための戻るボタンＧＰ２２と、演習を終了するための終了ボタンＧＰ２３を備える。
【００８９】
学習者は、画面左側の演習課題表示領域ＧＰ２０に表示された演習課題内容を参照しながら、画面右側の演習環境表示領域ＧＰ２１に表示された演習環境で演習を実施する。演習環境で学習した内容は、演習履歴情報５０３としてＤＢ５０に格納される。演習履歴情報５０３は、学習者が演習を行った結果を確認するために用いられる情報である。演習履歴情報は、例えばユーザＩＤ、コンテンツＩＤ、マスターＶＭ名、演習実施時刻、演習環境への入力内容、演習環境への入力に対する結果である出力結果を含む。
【００９０】
図１１は、ｅラーニングシステム８０により実行される演習履歴を保持する処理を示すフローチャートである。演習履歴保持処理は、学習者がターミナル画面において演習を実施した場合に、その演習履歴を示す情報を演習履歴情報５０３としてサーバ２に格納する処理である。
【００９１】
システム８０は、クライアント１に演習課題を表示した学習者のユーザＩＤを取得する（Ｓ１００）。システム８０は、表示された演習課題のコンテンツＩＤおよびマスターＶＭ名をＤＢ５０から取得する（Ｓ１０１）。システム８０は、ＤＢ５０から取得したユーザＩＤとコンテンツＩＤおよびマスターＶＭ名に一致するＶＭ管理情報をＤＢ５０から取得する（Ｓ１０２）。
【００９２】
システム８０は、学習者がターミナル画面に入力するまで待機する（Ｓ１０３）。システム８０は、ターミナル画面への入力を検出すると（Ｓ１０３：ＹＥＳ）、ターミナル画面に入力された内容を取得する（Ｓ１０４）。
【００９３】
システム８０は、ステップＳ１０４で取得した入力内容を学習者専用ＶＭ７１上で実行する（Ｓ１０５）。システム８０は、学習者専用ＶＭ７１での実行結果（演習結果）を取得し（Ｓ１０６）、取得した演習結果をターミナル画面に表示する（Ｓ１０７）。
【００９４】
システム８０は、現在時刻を取得し（Ｓ１０８）、取得した情報（ユーザＩＤ、コンテンツＩＤ、マスターＶＭ名、現在時刻、演習実施時刻、入力内容、実施結果）をＤＢ５０の演習履歴情報５０３に記憶する（Ｓ１０９）。
【００９５】
［演習環境終了時の処理］
【００９６】
演習環境が終了するケースとしては以下の２つが有る。第１のケースは、学習者がｅラーニングシステム８０の演習課題表示画面Ｇ２の終了ボタンＧＰ２３を押下して終了する場合である。第２のケースは、学習者専用ＶＭ７１の起動後に、学習者が最後に操作してから一定時間が経過後に自動的に終了する場合である。演習環境の自動終了についての詳細は後述する。システム８０は、演習環境が終了するときに、ＶＭ管理情報の学習終了時刻を現在時刻で更新する。そして、システム８０は、ＶＭＭ３０に対して学習者専用ＶＭ７１を停止させるための命令を出す。
【００９７】
［演習環境の自動終了処理］
【００９８】
図１２は、演習環境を自動終了させるための処理を示すフローチャートである。自動終了処理では、一定時間経過ごとに、ＶＭＭ３０上で動作している学習者専用ＶＭ７１が一定時間以上操作されていないか判断し、その判断結果によって学習者専用ＶＭ７１を終了させる。演習環境（学習者専用ＶＭ７１）の自動終了は、サーバ２のリソースを解放するために行われる。システム８０は、ＶＭ管理情報５０２と演習履歴情報５０３、および内部データ８１の設定値８１２に含まれる自動終了時間に基づいて、学習者専用ＶＭ７１が操作されているか否かを判断する。自動終了時間は、学習者専用ＶＭ７１を自動的に終了するまでの待機時間の値である。自動終了時間は、管理者が手動で設定してもよいし、システム８０が何らかの指標に基づいて自動的に設定してもよい。例えば、起動中の学習者専用ＶＭ数が多いほど自動終了時間を短く設定したり、リソースが少なくなるほど自動終了時間を短く設定したりすることができる。
【００９９】
システム８０は、内部データ８１の設定値８１２から自動終了時間を取得する（Ｓ１２０）。システム８０は、自動終了の判定を行うまで一定時間待機する（Ｓ１２１）。一定時間が経過した場合（Ｓ１２１：ＹＥＳ）、システム８０は、現在時刻を取得する（Ｓ１２２）。
【０１００】
システム８０は、ＤＢ５０のＶＭ管理情報５０２を参照し、学習終了時刻が未だ設定されておらず、かつ、現在時刻と学習開始時刻との差が自動終了時間以上であるデータを取得する（Ｓ１２３）。学習者専用ＶＭ７１が起動中であり、かつ、起動してから自動終了時間以上経過している学習者専用ＶＭ７１は、自動終了の対象として抽出される。
【０１０１】
システム８０は、自動終了対象のＶＭ管理情報がＤＢ５０に格納されているか判断する（Ｓ１２４）。システム８０は、ＶＭ管理情報が格納されていないと判断した場合（Ｓ１２４：ＮＯ）、ステップＳ１２１に戻り、一定時間経過するまで待機する。
【０１０２】
システム８０は、自動終了対象のＶＭ管理情報がＤＢ５０に格納されていると判断した場合（Ｓ１２４：ＹＥＳ）、自動終了対象のＶＭ管理情報に対応する演習履歴情報をＤＢ５０から取得する（Ｓ１２５）。自動終了対象の学習者専用ＶＭ７１に対して、自動終了時間経過するまでの間、学習者が操作を実施していないことを確認するためである。
【０１０３】
システム８０は、自動終了対象の学習者専用ＶＭ７１のＶＭ管理情報に対応する演習履歴情報が存在するか判断する（Ｓ１２６）。システム８０は、対応する演習履歴情報が存在しないと判定した場合（Ｓ１２６：ＮＯ）、ステップＳ１２１に戻る。
【０１０４】
システム８０は、対応する演習履歴情報が格納されていると判断した場合（Ｓ１２６：ＹＥＳ）、学習者専用ＶＭ７１を停止する（Ｓ１２７）。システム８０は、学習者専用ＶＭ格納部７０から学習者専用ＶＭ７１を削除する（Ｓ１２８）。システム８０は、削除した学習者専用ＶＭ７１に対応するＶＭ管理情報が有する学習終了時刻に、現在時刻を設定する（Ｓ１２９）。
【０１０５】
［演習環境のＵｎｄｏ処理］
【０１０６】
図１０は、演習環境をＵｎｄｏ操作する場合の動作を示すフローチャートである。Ｕｎｄｏ処理は、演習環境としてのターミナル画面Ｇ２に含まれる戻るボタンＧＰ２２を押下した場合に実行されるもので、演習履歴情報を使用して学習者専用ＶＭ７１を最後の操作が行われる直前の状態に復元する。
【０１０７】
システム８０は、クライアント１に演習課題を表示している学習者のユーザＩＤを取得する（Ｓ１４０）。システム８０は、演習課題のコンテンツＩＤおよびマスターＶＭ名をＤＢ５０から取得する（Ｓ１４１）。システム８０は、ステップＳ１４０、Ｓ１４１で取得したユーザＩＤ、コンテンツＩＤ、マスターＶＭ名と一致するＶＭ管理情報、つまり、Ｕｎｄｏ処理の対象となる学習者専用ＶＭ７１に対応するＶＭ管理情報を取得する（Ｓ１４２）。システム８０は、ＶＭ管理情報に対応する演習履歴情報、つまり、Ｕｎｄｏ処理の対象となる学習者専用ＶＭ７１に関する演習履歴情報を取得する（Ｓ１４３）。
【０１０８】
システム８０は、学習者専用ＶＭ７１を停止し（Ｓ１４４）、学習者専用ＶＭ格納部７０から学習者専用ＶＭ７１を削除する（Ｓ１４５）。システム８０は、現在時刻を取得し、ＶＭ管理情報内の学習終了時刻を現在時刻で更新する（Ｓ１４６）。
【０１０９】
その後、システム８０は、図６で述べたＶＭ作成処理を実施し（Ｓ１４７）、図７で述べたＶＭ起動処理を実施し（Ｓ１４８）、図８で述べた認証情報設定処理を実施する（Ｓ１４９）。
【０１１０】
システム８０は、ＤＢ５０から取得した演習履歴情報のうち最後に挿入された履歴データを除いて、再起動した学習者専用ＶＭ７１に入力内容に実施する（Ｓ１５０）。最後にシステム８０は、演習環境を表示する画面Ｇ２の演習環境表示領域ＧＰ２１に、学習者専用ＶＭ７１のＷＥＢターミナルアプリケーションへのＷＥＢリクエスト結果を表示する（Ｓ１５１）。
【０１１１】
［演習履歴確認］
【０１１２】
図１４は、演習履歴を確認するための画面Ｇ３の構成を示す。演習履歴確認画面Ｇ３は、例えば、学習者名を表示する領域ＧＰ３０、演習実施時刻を表示する領域ＧＰ３１、入力内容を表示する領域ＧＰ３２、実施結果を表示する領域ＧＰ３３を備える。
【０１１３】
学習者または管理者は演習履歴情報を画面Ｇ３に表示することで、演習環境における演習結果を確認可能である。演習履歴情報５０３は、ｅラーニングシステム８０のコンテンツ情報５０１と関連してデータベース５０に格納されているため、コンテンツ単位で演習履歴を確認できる。
【０１１４】
このように構成される本実施例によれば、学習内容に沿った演習環境をｅラーニングシステム８０上に実現することができる。従って、本実施例によれば、図１０の演習課題表示画面Ｇ２に示すように、学習コンテンツとしての演習課題表示領域ＧＰ２０と、演習課題を解くための演習環境表示領域ＧＰ２１とをクライアント１に同時に提供することができ、学習効率を向上させることができる。
【０１１５】
本実施例では、ｅラーニングシステム８０が学習者専用ＶＭ７１を用いた演習履歴を管理保存するため、学習者および管理者は演習結果の確認、分析等を容易に行うことができる。従って学習効率が向上する。
【０１１６】
本実施例では、学習者専用ＶＭ７１の操作環境としてターミナル画面のみならずＧＵＩ画面も提供することができる。従って、ターミナル画面またはＧＵＩ画面のうち演習目的に適した方を用いて学習を進めることができ、使い勝手が高い。
【０１１７】
本実施例では、マスターＶＭ６１からコピーオンライト方式で学習者専用ＶＭ７１を複製するため、短時間で学習者専用ＶＭ７１を用意して起動することができる。従って、学習者は速やかに学習することができ、使い勝手が高い。
【０１１８】
本実施例では、学習者が起動させようとしている学習者専用ＶＭ７１が既に起動中であるか確認し、起動中である場合は新たな学習者専用ＶＭ７１を起動せずに、起動中の学習者専用ＶＭ７１を使用させる（図４）。従って、本実施例では、学習者専用ＶＭ７１が無駄に起動されてサーバ２のリソースを浪費してしまうのを防止できる。
【０１１９】
本実施例では、学習者専用ＶＭ７１を起動する前にサーバ２のリソースを確認するため、サーバ２にリソース不足が生じて学習者専用ＶＭ７１の応答性が低下するのを抑制することができる。従って、使い勝手が向上する。
【０１２０】
本実施例では、ワンタイムパスワードを用いて学習者専用ＶＭ７１の認証を行うため、外部の第三者が学習者専用ＶＭ７１に接続して使用したり、演習結果を取得したりするのを防止できる。従って、信頼性が向上する。
【０１２１】
本実施例では、使用されていない学習者専用ＶＭ７１は一定時間（自動終了時間）が経過した後に自動的に消滅させるため、サーバ２のリソースを効率的に使用することができ、より多くのクライアント１にｅラーニングサービスを提供できる。
【０１２２】
本実施例では、一手前の状態に戻すためのＵｎｄｏ処理を行えるようにしたため、学習者は自らの誤りに気づいた場合に、直ちにそれを訂正して学習を進めることができる。従って、使い勝手が向上する。
【実施例２】
【０１２３】
図１５〜図１８を用いて第２実施例を説明する。本実施例は第１実施例の変形例に該当するため、第１実施例との相違を中心に説明する。本実施例では、学習者の技能を計るための技能試験を行う。
【０１２４】
［技能試験作成時の処理］
【０１２５】
図１５は、技能試験を作成する画面Ｇ４の構成を示す。図１６は、管理者が技能試験を作成する場合の動作を示すフローチャートである。
【０１２６】
図１５に示す技能試験作成画面Ｇ４は、例えば、技能試験名入力領域ＧＰ４０、技能試験内容入力領域ＧＰ４１、マスターＶＭ選択領域ＧＰ４２、採点方法選択領域ＧＰ４３、正解入力内容設定領域ＧＰ４４、正解実施結果設定領域ＧＰ４５、配点設定領域ＧＰ４６を備えることができる。
【０１２７】
管理者は、管理者の使用する端末からｅラーニングシステム８０にログインし、技能試験名入力領域ＧＰ４０に、技能試験コンテンツの名称を入力し、演習環境と共に表示される技能試験の内容を技能試験内容入力領域ＧＰ４１に入力する。続いて管理者は、マスターＶＭ選択領域ＧＰ４２により、技能試験の内容に合致するマスターＶＭ６１を選択する。さらに、管理者は、採点方法選択領域ＧＰ４３により、技能試験の採点方法を選択する。
【０１２８】
採点方法選択領域ＧＰ４３で選択可能な項目には「自動」と「手動」がある。採点方法として「自動」を選択すると、学習者による演習環境への入力内容、または、その実施結果のいずれか一方または両方に基づいて自動的に採点することができる。
【０１２９】
演習環境への入力内容で採点する場合、正解とする入力内容を設定するための領域ＧＰ４４に、正解とする文字列を設定する。つまり、正解入力内容設定領域ＧＰ４４に設定された文字列と同じ文字列が演習環境に入力された場合に、正解とされる。
【０１３０】
演習の結果で採点を行う場合、正解とする実施結果を設定するための領域ＧＰ４５に、正解とする文字列を設定する。
【０１３１】
管理者が、正解とする入力内容（正解入力内容）と、正解とする実施結果（正解実施結果）の両方を技能試験作成画面Ｇ４に設定した場合、正解入力内容と正解実施結果を同時に満たした場合に採点を行うことができる。
【０１３２】
なお、正解とする文字列にはアスタリスク記号を使用可能である。正解文字列にアスタリスク記号を使用した場合、アスタリスク記号以外の文字列が一致する場合に正解とみなして採点できる。つまり、アスタリスク記号は、どのような文字にも一致する特殊文字（ワイルドカード）として使用されている。
【０１３３】
図１６に示す技能試験作成処理を説明する。システム８０は、技能試験作成画面Ｇ４に入力された情報（技能試験名、技能試験内容、マスターＶＭ名、採点方法、正解入力内容、正解実施結果）を取得する（Ｓ１６０）。
【０１３４】
システム８０は、ステップＳ１６０で取得した情報をＤＢ５０に技能試験情報として設定する（Ｓ１６１）。
【０１３５】
［技能試験採点時の処理］
【０１３６】
図１７は、学習者が技能試験を受けた場合の動作を示すフローチャートである。管理者は学習者の技能試験結果について、手動で確認したり、または自動的に判定したりすることができる。図１７では、技能試験の正解として、演習環境への入力内容（正解入力内容）とその入力内容を実行した結果（正解実施結果）との２つが設定されており、正解入力内容および正解実施結果の両方に基づいて採点する場合を説明する。
【０１３７】
システム８０は、技能試験の採点に使用する各種情報をＤＢ５０から取得する（Ｓ１７０）。ステップＳ１７０で取得する情報としては、技能試験を受けた学習者のユーザＩＤ、技能試験のコンテンツＩＤ、そのコンテンツＩＤと一致する技能試験情報（技能試験名、技能試験内容、マスターＶＭ名、採点方法、正解入力内容、正解実施結果）、ユーザＩＤおよびコンテンツＩＤと一致する演習履歴情報がある。演習履歴情報には、演習履歴情報のＩＤ、ユーザＩＤ、コンテンツＩＤ、マスターＶＭ名、演習実施時刻、入力内容、実施結果が含まれる。
【０１３８】
システム８０は、技能試験情報の正解入力内容の種別を判定する（Ｓ１７１）。システム８０は、正解入力内容が文字列のみで構成されていると判定した場合（Ｓ１７１：文字のみ）、取得した演習履歴情報から、学習者による演習環境への入力内容が正解入力内容と完全に一致しているＩＤ（演習履歴情報のＩＤ）を取得する（Ｓ１７２）。
【０１３９】
システム８０は、正解入力内容にアスタリスク記号が含まれていると判定した場合（Ｓ１７１：＊を含む）、取得した演習履歴情報から、学習者による演習環境への入力内容が正解入力内容と部分的に一致しているＩＤを取得する。つまり、正解となる入力内容としてキーワードが設定されており、学習者がそのキーワードを含む内容を演習環境に入力したか判定する。
【０１４０】
システム８０は、正解入力内容が文字列のみでもなく、アスタリスク記号を含むわけでもなく、その他であると判定した場合（Ｓ１７１：その他）、例外処理として、取得した演習履歴情報の全ての履歴ＩＤを取得する（Ｓ１７４）。
【０１４１】
システム８０は、正解実施結果が設定されている場合、正解実施結果の種別を判定する（Ｓ１７５）。システム８０は、正解実施結果が文字列のみで構成されていると判定した場合（Ｓ１７５：文字のみ）、取得した演習履歴情報から、学習者による演習環境での実施結果が正解実施結果と完全に一致しているＩＤを取得する（Ｓ１７６）。
【０１４２】
システム８０は、正解実施結果にアスタリスク記号が含まれていると判定した場合（Ｓ１７５：＊を含む）、取得した演習履歴情報から、学習者による演習環境での実施結果が正解実施結果と部分的に一致しているＩＤを取得する（Ｓ１７７）。
【０１４３】
システム８０は、正解実施結果が文字列のみでもなくアスタリスク記号を含むわけでもない、その他であると判定した場合（Ｓ１７５：その他）、例外処理として、取得した演習履歴情報の全てのＩＤを取得する（Ｓ１７８）。
【０１４４】
システム８０は、ステップＳ１７２、Ｓ１７３、Ｓ１７４で取得したＩＤと、ステップＳ１７６、Ｓ１７７、Ｓ１７８で取得したＩＤとを比較し、正解入力内容に関するＩＤと正解実施結果に関するＩＤの両方に共通するＩＤが有るか判定する（Ｓ１８０）。
【０１４５】
システム８０は、共通するＩＤが有ると判定した場合（Ｓ１８０：ＹＥＳ）、その共通するＩＤで特定される演習履歴情報の「採点結果」として、図１５の配点設定領域ＧＰ４６に設定された点数を格納する（Ｓ１８０）。
【０１４６】
システム８０は、共通するＩＤが無いと判定した場合（Ｓ１８０：ＮＯ）、取得した演習履歴情報の「採点結果」に”０”を格納する（Ｓ１８２）。
【０１４７】
システム８０は、取得した情報（ユーザＩＤ、コンテンツＩＤ、採点結果）を、ＤＢ５０に格納される技能試験の結果を示す情報に設定する。技能試験の結果を示す情報は、例えば、試験結果ＩＤ、ユーザＩＤ、コンテンツＩＤ、採点等から構成される。図１７の例では、入力内容と実施結果の両方が正解したら得点する場合を説明したが、これに限らず、入力内容または実施結果のいずれか一方だけが正解した場合に、配点の一部を得点として与える構成でもよい。
【０１４８】
［技能試験手動採点時の処理］
【０１４９】
図１８は、技能試験を手動で採点する画面Ｇ５の構成を示す。技能試験採点結果画面Ｇ５は、例えば、学習者名表示領域ＧＰ５０、試験実施時刻表示領域ＧＰ５１、入力内容表示領域ＧＰ５２、実施結果表示領域ＧＰ５３、点数表示領域ＧＰ５４、フィードバック表示領域ＧＰ５５、採点実行ボタンＧＰ５６を備える。
【０１５０】
学習者名表示領域ＧＰ５０は、学習者の氏名を表示する領域である。氏名に代えて、または氏名と共にユーザＩＤ等を表示してもよい。試験実施時刻表示領域ＧＰ５１は、技能試験の実施時刻を表示する領域である。入力内容表示領域ＧＰ５２は、技能試験において学習者が演習環境（学習者専用ＶＭ７１）に入力した内容を示す領域である。実施結果表示領域ＧＰ５３は、学習者が演習環境に入力した結果を示す領域である。点数表示領域ＧＰ５４は、学習者の獲得した点数を設定する領域である。フィードバック表示領域ＧＰ５５、学習者へのフィードバック（学習に対する助言など）を入力する領域である。管理者は、最後に採点実行ボタンＧＰ５６を押下すると、手動による採点が終了し、ＤＢ５０に記憶される。
【０１５１】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例では、技能試験を実施し、試験結果を自動または手動で採点できるように構成した。従って、学習者および管理者は、学習の理解度等を容易に把握することができ、学習効率が向上する。
【０１５２】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【０１５３】
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【０１５４】
さらに実施形態に開示された発明は、例えば以下のように表現できる。
（表現１）
クライアントに通信ネットワークを介して接続されるサーバを学習支援システムとして機能させるためのコンピュータプログラムであって、
仮想計算機を制御する仮想化制御部と、
前記クライアントに前記通信ネットワークを介して学習コンテンツを提供する学習コンテンツ制御部であって、前記学習コンテンツを前記クライアントに提供する場合に、前記学習コンテンツに対応する所定の仮想計算機を前記仮想化制御部により作成し、作成した前記仮想計算機により実現される演習環境を前記クライアントに提供する学習コンテンツ制御部とを、前記サーバ上に実現するためのコンピュータプログラム。
（表現２）
前記仮想化制御部は、複数のマスター仮想計算機を有し、前記学習コンテンツ制御部からの指示に応じて、前記複数のマスター仮想計算機のうち前記クライアントに提供する学習コンテンツに対応するマスター仮想計算機から前記所定の仮想計算機を作成する、
表現１に記載のコンピュータプログラム。
（表現３）
前記学習コンテンツ制御部は、前記クライアントに前記所定の仮想計算機を提供する場合に、前記所定の仮想計算機が作成済みであるか判定し、前記所定の仮想計算機が作成済みであると判定した場合、その旨を前記クライアントに通知する、
表現１または２のいずれかに記載のコンピュータプログラム。
（表現４）
前記学習コンテンツ制御部は、前記サーバ内に前記所定の仮想計算機を作成可能であるか判定し、前記所定の仮想計算機を作成可能であると判定した場合に前記仮想化制御部により前記所定の仮想計算機を作成させ、前記所定の仮想計算機を作成可能ではないと判定した場合にエラーメッセージを前記クライアントに送信する、
表現１〜３のいずれかに記載のコンピュータプログラム。
（表現５）
前記学習コンテンツ制御部は、前記所定の仮想計算機のうち予め設定された所定時間が経過しても終了していない前記所定の仮想計算機を検出した場合、その検出された所定の仮想化計算機を前記仮想化制御部により終了させる、
表現１〜４のいずれかに記載のコンピュータプログラム。
（表現６）
前記学習コンテンツ制御部は、前記所定の仮想計算機に対する前記クライアントからの演習履歴を保持しており、前記クライアントからの指示に応じて、前記所定の仮想計算機の状態を最後の操作が行われる直前の状態に復元する、
表現１〜５のいずれかに記載のコンピュータプログラム。
（表現７）
前記学習コンテンツ制御部は、前記クライアントに前記学習コンテンツに対応する試験問題情報を送信し、前記クライアントからの解答に基づいて、前記解答が予め用意される正解に完全に一致するかを評価する完全一致評価と、前記解答が前記正解に部分的に一致するかを評価する部分一致評価との、いずれか又は両方を実行する、
表現１〜６のいずれかに記載のコンピュータプログラム。
（表現８）
クライアントに通信ネットワークを介して接続され、学習支援システムとして使用されるサーバであって、
仮想計算機を制御する仮想化制御部と、
前記クライアントに前記通信ネットワークを介して学習コンテンツを提供する学習コンテンツ制御部であって、前記学習コンテンツを前記クライアントに提供する場合に、前記学習コンテンツに対応する所定の仮想計算機を前記仮想化制御部により作成し、作成した前記仮想計算機により実現される演習環境を前記クライアントに提供する学習コンテンツ制御部とを、有する学習支援システム用サーバ。
【符号の説明】
【０１５５】
１：クライアント、２：サーバ、３：通信ネットワーク、３０：ＶＭＭ、５０：データベース、６１：マスターＶＭ、７１：学習者専用ＶＭ、８０：ｅラーニングシステム
【図１】
2014149447.tif 000003
【図２】
2014149447.tif 000004
【図３】
2014149447.tif 000005
【図４】
2014149447.tif 000006
【図５】
2014149447.tif 000007
【図６】
2014149447.tif 000008
【図７】
2014149447.tif 000009
【図８】
2014149447.tif 000010
【図９】
2014149447.tif 000011
【図１０】
2014149447.tif 000012
【図１１】
2014149447.tif 000013
【図１２】
2014149447.tif 000014
【図１３】
2014149447.tif 000015
【図１４】
2014149447.tif 000016
【図１５】
2014149447.tif 000017
【図１６】
2014149447.tif 000018
【図１７】
2014149447.tif 000019
【図１８】
2014149447.tif 000020