(57)【要約】【課題】複数のオペレーシングシステムにおけるエミュレーション結果を容易に確認可能な情報処理装置、情報処理システム、情報処理方法、情報処理プログラムを提供する。【解決手段】サーバ装置１０は、複数のオペレーティングシステムをエミュレートするエミュレーションプログラムを読み出して記憶部１２の複数の作業領域１２ｉのそれぞれに展開するエミュレーション実行部１３３と、少なくとも２つ以上の作業領域１２ｉにおけるエミュレーション結果を端末装置に送信する結果送信部１３５と、を備える。これにより、端末装置において、複数のオペレーティングシステムでのエミュレーション結果を容易に確認することができる。【選択図】図２
2018195203.tif 000002
【特許請求の範囲】
【請求項１】
端末装置と通信可能に接続される情報処理装置であって、
オペレーティングシステムをエミュレートするエミュレーションプログラムを読み出して記憶部の複数の作業領域のそれぞれに展開する実行部と、
少なくとも２つ以上の前記作業領域におけるエミュレーション結果を前記端末装置に送信する結果送信部と、
を備えることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記実行部は、エミュレートされた複数の前記オペレーティングシステム上でアプリケーションプログラムを実行する
ことを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置において、
前記端末装置から実行する前記アプリケーションプログラムを指定するアプリケーション指令情報を受信する指令受信部を備え、
前記実行部は、前記アプリケーション指令情報に対応する前記アプリケーションプログラムを実行する
ことを特徴とする情報処理装置。
【請求項４】
請求項３に記載の情報処理装置において、
前記アプリケーション指令情報は、複数の前記アプリケーションプログラムの実行を指令する旨の情報を含み、
前記実行部は、複数の前記アプリケーションプログラムを、それぞれ異なる前記作業領域に展開された前記オペレーティングシステムに振り分けて実行する
ことを特徴とする情報処理装置。
【請求項５】
請求項３に記載の情報処理装置において、
前記アプリケーション指令情報は、エミュレートされた複数の前記オペレーティングシステムのうちのいずれか１つ上での前記アプリケーションプログラムの実行を指令する情報であり、
前記実行部は、前記アプリケーション指令情報により指定された前記アプリケーションプログラムを、それぞれ異なる前記作業領域に展開された前記オペレーティングシステムで実行する
ことを特徴とする情報処理装置。
【請求項６】
請求項１から請求項５のいずれか１項に記載の情報処理装置において、
前記実行部は、それぞれバージョンが異なる複数の前記オペレーティングシステムのエミュレーションプログラムを、それぞれ異なる前記作業領域に展開する
ことを特徴とする情報処理装置。
【請求項７】
請求項１から請求項６のいずれか１項に記載の情報処理装置において、
前記結果送信部は、少なくとも２つ以上の前記エミュレーション結果を、前記端末装置の表示領域内に並べて配置させる表示位置情報を更に送信する
ことを特徴とする情報処理装置。
【請求項８】
請求項７に記載の情報処理装置において、
前記結果送信部は、同一解像度の少なくとも２つ以上の前記エミュレーション結果を前記端末装置に送信する
ことを特徴とする情報処理装置。
【請求項９】
請求項１から請求項６のいずれか１項に記載の情報処理装置において、
前記結果送信部は、前記端末装置において前記エミュレーション結果を切り替える切替指令が入力された際に、前記端末装置の表示領域に表示させる前記エミュレーション結果を切り替えさせる切替条件情報を更に送信する
ことを特徴とする情報処理装置。
【請求項１０】
請求項１から請求項９のいずれか１項に記載の情報処理装置において、
前記結果送信部は、複数の前記端末装置に前記エミュレーション結果を送信する
ことを特徴とする情報処理装置。
【請求項１１】
請求項１０に記載の情報処理装置において、
前記端末装置から実行するアプリケーションプログラムを指定するアプリケーション指令情報を受信する指令受信部を備え、
前記実行部は、エミュレートされた複数の前記オペレーティングシステム上で前記アプリケーションプログラムを実行し、
前記結果送信部は、前記エミュレーション結果とともに、前記アプリケーション指令情報を送信した前記端末装置を識別する端末識別情報を、複数の前記端末装置に更に送信する
ことを特徴とする情報処理装置。
【請求項１２】
オペレーティングシステムをエミュレートするエミュレーションプログラムを読み出して記憶部の複数の作業領域のそれぞれに展開する実行部と、
少なくとも２つ以上の前記作業領域におけるエミュレーション結果を表示領域に出力する出力制御部と、
を備えることを特徴とする情報処理装置。
【請求項１３】
請求項１から請求項１１のいずれか１項に記載の情報処理装置と、
前記情報処理装置とネットワークを介して通信可能に接続された端末装置と、
を備えることを特徴とする情報処理システム。
【請求項１４】
端末装置と通信可能に接続されるコンピュータにおける情報処理方法であって、
前記コンピュータは、実行部と、結果送信部と、を備え、
前記実行部により、複数のオペレーティングシステムをエミュレートするエミュレーションプログラムを読み出して記憶部の複数の作業領域のそれぞれに展開し、
前記結果送信部により、前記端末装置に少なくとも２つ以上の前記作業領域におけるエミュレーション結果を送信する
ことを特徴とする情報処理方法。
【請求項１５】
コンピュータにより読み込み実行される情報処理プログラムであって、
前記コンピュータを、請求項１から請求項１２のいずれか１項に記載の情報処理装置として機能させる
ことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法、情報処理プログラムに関する。
【背景技術】
【０００２】
従来、インターネット等のネットワーク上で、アプリケーションをエミュレートするシステムが知られている（例えば、特許文献１参照）。
特許文献１に記載のシステムは、サーバコンピュータ（サーバ）と、クライアントとを備えたシステムである。このシステムでは、サーバは、クライアントからアプリケーションエミュレーションセッションを開始するリクエストを受信すると、エミュレーションサーバアプリケーションがクライアントから指定されたエミュレートされたコンピュータデバイスのモデルを判定し、カスタマイズされたデバイスインターフェースを含むインターフェースを生成してクライアントに返信する。また、サーバは、クライアントから入力コマンドを受信すると、ラッパ内のアプリケーションに提供し、アプリケーションでの実行内容（メディアストリーム）をラッパからキャプチャして、カスタマイズされたデバイスインターフェースで表示可能にクライアントに送信する。
これにより、例えば第１のオペレーティングシステム（例えばｉＯＳ（登録商標））上で各種プログラムを実行するクライアントから、サーバに実行される第２のオペレーティングシステム（例えばＡｎｄｒｏｉｄ（登録商標））の各種プログラムを遠隔操作して実行させ、その結果をクライアントで表示させることが可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−４８５６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、例えばアプリケーションプログラムを開発する開発現場では、当該アプリケーションを実行させるオペレーティングシステム（以降、ＯＳと略す）で実行可能なプログラムを開発する。この際、通常、現在リリースされている最新バーションのＯＳで実行可能なアプリケーションプログラムを開発することが多く、それ以前にリリースされた古いＯＳとの比較が困難となる。例えば、上記特許文献１に記載のシステムにおいて、最新バージョンのＯＳと、古いバーションのＯＳとにおけるアプリケーションプログラムの動作結果を確認するためには、サーバに最新バージョンのＯＳ上でアプリケーションプログラムを実行させた際の動作結果をクライアントに表示させた後、サーバでエミュレートするＯＳを古いバージョンのＯＳに切り替えて、アプリケーションプログラムを再度実行させて動作結果をクライアントに表示させる必要がある。
【０００５】
本発明は、複数のオペレーシングシステムにおけるエミュレーション結果を容易に確認可能な情報処理装置、情報処理システム、情報処理方法、情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の情報処理装置は、端末装置と通信可能に接続される情報処理装置であって、オペレーティングシステムをエミュレートするエミュレーションプログラムを読み出して記憶部の複数の作業領域のそれぞれに展開する実行部と、少なくとも２つ以上の前記作業領域におけるエミュレーション結果を前記端末装置に送信する結果送信部と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明では、複数の作業領域においてそれぞれオペレーティングシステムが展開される。そして、これらのオペレーティングシステムにおける少なくとも２つ以上のエミュレーション結果が端末装置に送信される。これにより、端末装置において、複数のオペレーティングシステムでのエミュレーション結果を容易に確認することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の情報処理装置であるサーバ装置を含む情報処理システムの概略構成を示すブロック図。
【図２】本実施形態のサーバ装置の概略構成を示すブロック図。
【図３】本実施形態の端末装置の概略構成を示すブロック図。
【図４】本実施形態の情報処理方法における端末装置の処理を示すフローチャート。
【図５】本実施形態の情報処理方法におけるサーバ装置の処理を示すフローチャート。
【図６】本実施形態の案内コンテンツの一例を示す図。
【図７】本実施形態における同時表示形式のエミュレーション結果の表示例を示す図。
【図８】本実施形態における切替表示形式のエミュレーション結果の表示例を示す図。
【図９】本実施形態における複数タブ表示形式のエミュレーション結果の表示例を示す図。
【図１０】本実施形態におけるＡｐｒ同時実行モードのエミュレーション結果の表示例を示す図。
【発明を実施するための形態】
【０００９】
以下、本発明に係る一実施形態の情報処理装置について説明する。
図１は、本発明の情報処理装置であるサーバ装置１０を含む情報処理システム１の概略構成を示すブロック図である。
図１に示すように、情報処理システム１は、サーバ装置１０と、サーバ装置１０にネットワーク（例えばインターネット等）を介して通信可能に接続される複数の端末装置２０とにより構築されている。
【００１０】
この情報処理システム１では、サーバ装置１０は、端末装置２０から送信された指令情報に基づいて、複数のオペレーティングシステムをエミュレートし、各オペレーティングシステムのエミュレーション結果を端末装置２０に送信する。本実施形態では、サーバ装置１０が、端末装置２０から複数のオペレーティングシステムを指定する情報を受信し、当該オペレーティングシステムをエミュレートする例を説明する。
【００１１】
［サーバ装置１０の構成］
図２は、本実施形態のサーバ装置１０の概略構成を示すブロック図である。
本実施形態のサーバ装置１０は、コンピュータにより構成され、通信部１１と、記憶部１２と、制御部１３と、等を含んで構成されている。
通信部１１は、ネットワークに接続されており、ネットワークを介して端末装置２０や、ネットワーク上のその他の装置と通信する。
【００１２】
記憶部１２は、例えばメモリ、ハードディスク等により構成された情報記録装置（副記憶装置）である。この記憶部１２には、サーバ装置１０を制御するためのオペレーティングシステム（Operating System：以降ＯＳと略す）や、アプリケーションプログラム（以降、Ａｐｒと略す）、各種情報が記録される。なお、本実施形態では、サーバ装置１０の記憶部１２に、各エミュレーションプログラムや、各Ａｐｒ、各種情報が記憶される例を示すが、これに限定されず、サーバ装置１０と通信可能に接続されるデータサーバに、これらの各種プログラムや各種情報が記録されていてもよい。
ここで、以降の説明にあたり、サーバ装置１０を制御するＯＳを主ＯＳ、エミュレートされる各ＯＳを副ＯＳとする。
【００１３】
本実施形態におけるアプリケーションプログラム（Ａｐｒ）は、ＯＳ上で所定の処理を実施させるソフトウェアであり、所定の機能を実現するためのプログラムの集合体の他、ＯＳに組み込まれる基本ソフトウェアを含むものである。つまり、例えば表示領域内の位置を示すカーソルを移動させる旨のコマンドや、インターネットを介して情報を送受信させるコマンド等の入力キーに従って、サーバ装置１０を動作させるものも、本実施形態におけるアプリケーションプログラムに含む。
また、記憶部１２に記憶されるＡｐｒには、本発明における情報処理プログラムも含まれる。この情報処理プログラムは、少なくとも主ＯＳ上で実行可能な（すなわち、主ＯＳが提供するＡＰＩやＡＢＩを使用することで機能する）プログラムである。
【００１４】
このＡｐｒには、エミュレーションプログラムが含まれる。エミュレーションプログラムは、複数種の副ＯＳ、及びバージョンが異なる副ＯＳ等に対応して複数記憶されている。これらのエミュレーションプログラムは、それぞれ、エミュレートさせる副ＯＳに加え、ラッパープログラム、キャプチャプログラム等が含まれる。
【００１５】
ラッパープログラムは、主ＯＳと副ＯＳとの間のデータの受け渡し又は拡張を行う。例えば、主ＯＳがネットワークを介して受け取った指令情報等に基づく情報を、副ＯＳにて処理可能な情報に変換又は拡張して副ＯＳに出力し、副ＯＳから入力された情報を主ＯＳにて処理可能な情報に変換または拡張して出力する。
キャプチャプログラムは、エミュレートされた副ＯＳのエミュレーション結果をキャプチャする。すなわち、キャプチャプログラムは、副ＯＳが出力するビデオ信号（動画及び音声を含む）や、副ＯＳ上で実行されたＡｐｒが出力するビデオ信号をキャプチャする。
【００１６】
また、記憶部１２には、ユーザ管理情報が記憶されている。ユーザ管理情報としては、例えば、ユーザＩＤ、ＯＳ履歴、共有ユーザＩＤ等を含む。
ユーザＩＤは、サーバ装置１０に副ＯＳのエミュレーションを指令したユーザを識別する情報である。
ＯＳ履歴は、ユーザＩＤにて識別されるユーザの過去のエミュレーション実行履歴である。ＯＳ履歴としては、エミュレートされた副ＯＳ上で実行されたＡｐｒを含んでもよい。
共有ユーザＩＤは、ユーザＩＤにて識別されるユーザがサーバ装置１０にてエミュレートさせている副ＯＳを共有するユーザを識別する情報である。
なお、ユーザ管理情報として、ユーザＩＤにて識別されるユーザが現在サーバ装置１０にエミュレートさせている副ＯＳに関する実行ＯＳ情報や、副ＯＳ上で実行されているＡｐｒに関する実行Ａｐｒ情報が記録されていてもよい。
【００１７】
更に、記憶部１２には、副ＯＳをエミュレートするための作業領域１２ｉ（作業領域１２１，１２２…１２Ｎ）が設けられる。これらの作業領域１２ｉは、例えば、主ＯＳにより、記憶部１２の副記憶装置に対して割り当てられる仮想記憶領域（仮想メモリ）により構成される。本実施形態では、各作業領域１２ｉに対してそれぞれ１つの副ＯＳがエミュレートされる。
【００１８】
制御部１３は、ＣＰＵ（Central Processing Unit）等の演算回路、ＲＡＭ（Random Access Memory）等の記憶回路により構成される。制御部１３は、記憶部１２等に記憶されているプログラムをＲＡＭに展開し、ＲＡＭに展開されたプログラムとの協働で、各種処理を実行する。そして、制御部１３は、記憶部１２に記憶された情報処理プログラムを読み込んで実行することで、図２に示すように、指令取得部１３１、ユーザ管理部１３２、エミュレーション実行部１３３、キャプチャ部１３４、及び結果送信部１３５として機能する。
【００１９】
指令取得部１３１は、端末装置２０からの指令情報を取得する。この指令情報としては、例えばエミュレートする副ＯＳを指定するＯＳ指令情報、当該副ＯＳ上で実行するＡｐｒを指定するアプリケーション指令情報（Ａｐｒ指令情報）等が挙げられる。
ユーザ管理部１３２は、副ＯＳのエミュレートを指令したユーザやエミュレーション結果を送信するユーザを管理し、ユーザ管理情報を更新する。
【００２０】
エミュレーション実行部１３３は、記憶部１２に記憶されるエミュレーションプログラムを読み出して記憶部１２における複数の作業領域１２ｉに展開し、副ＯＳをエミュレートする。各作業領域１２ｉでエミュレートされる副ＯＳは、それぞれ異なる種別の副ＯＳであってもよく、同種であるがバージョンが異なる副ＯＳであってもよく、同一の副ＯＳであってもよい。副ＯＳの個数は、例えば端末装置２０から送信される指令情報に基づいて設定される。例えば、指令情報として受信したＯＳ指令情報に、３つの副ＯＳをエミュレートする旨が記録されている場合、エミュレーション実行部１３３は、記憶部１２に、作業領域１２１〜１２３を確保し、各作業領域１２１〜１２３のそれぞれで副ＯＳをエミュレートする。
また、エミュレーション実行部１３３は、エミュレートした副ＯＳ上で、例えばユーザにより指定されたＡｐｒを実行させる。
【００２１】
キャプチャ部１３４は、エミュレーションプログラムに含まれるキャプチャプログラムにより機能され、エミュレートされた副ＯＳのビデオ信号（エミュレーション結果）をキャプチャする。
【００２２】
結果送信部１３５は、キャプチャ部１３４によりキャプチャされたエミュレーション結果を端末装置２０に送信する。この際、結果送信部１３５は、ユーザ管理情報に基づいて、エミュレーション結果の送信先の端末装置２０を特定し、当該端末装置２０にエミュレーション結果を送信する。また、結果送信部１３５は、エミュレーション結果を端末装置２０で表示する際に、表示方法を規定する表示条件情報等を送信する。
【００２３】
［端末装置２０の構成］
図３は、端末装置２０の概略構成を示すブロック図である。
端末装置２０は、上述のように、ユーザが保有するコンピュータであり、例えばスマートフォンやタブレット端末、パーソナルコンピュータ等により構成される。この端末装置２０は、例えば、図３に示すように、表示部２１、入力操作部２２、端末通信部２３、端末記憶部２４、及び端末制御部２５等を含んで構成される。
表示部２１は、例えば液晶ディスプレイ等により構成され、端末制御部２５の制御の下、所定の画像を表示させる。
入力操作部２２は、例えば表示部２１と一体に設けられたタッチパネルにより構成されてもよく、キーボードやマウス等の入力装置により構成されていてもよい。この入力操作部２２は、ユーザにより操作されることで、操作に応じた操作信号を端末制御部２５に出力する。
端末通信部２３は、サーバ装置１０やネットワーク上の所定の装置と通信する。
【００２４】
端末記憶部２４は、例えばメモリやハードディスク等のデータ記録装置により構成されている。端末記憶部２４には、端末装置２０を制御するための各種プログラム等が記憶される。
【００２５】
端末制御部２５は、ＣＰＵ（Central Processing Unit）等の演算回路、ＲＡＭ（Random Access Memory）等の記憶回路により構成され、端末装置２０の各部を制御する。端末制御部２５は、端末記憶部２４等に記憶されているプログラム（ソフトウェア）をＲＡＭに展開し、ＲＡＭに展開されたプログラムとの協働で、各種処理を実行する。具体的には、端末制御部２５は、上記プログラムを読み込み実行することで、要求取得部２５１、指令送信部２５２、結果受信部２５３、及び表示制御部２５４として機能する。
【００２６】
要求取得部２５１は、ユーザの入力操作部２２の操作により入力された操作信号に基づいて、各種情報を取得する。各種情報としては、例えば、ＯＳやＡｐｒを指定する旨の情報、表示形式の指定する旨の情報等が挙げられる。
指令送信部２５２は、要求取得部２５１により取得された各種情報に基づいて、サーバ装置１０にてエミュレートさせる副ＯＳに関するＯＳ指令情報や、副ＯＳ上で実行するＡｐｒに関するＡｐｒ指令情報を生成し、サーバ装置１０に送信する。
【００２７】
結果受信部２５３は、サーバ装置１０から送信されたエミュレーション結果を受信する。
表示制御部２５４は、表示部２１の表示を制御する。例えば、表示制御部２５４は、表示部２１の表示領域に、受信したエミュレーション結果を表示させる。
また、エミュレーション結果と同時に、エミュレーション結果の表示条件を指定する表示条件情報が受信された場合、表示制御部２５４は、当該表示条件に従って、エミュレーション結果を表示させる。例えば、複数の副ＯＳにおけるエミュレーション結果を、表示部２１の表示領域に並列配置させて表示させたり、表示されているエミュレーション結果を入力操作部２２の操作に応じて切り替えたりする。
【００２８】
［情報処理システムの動作］
次に、本実施形態における情報処理システム１における情報処理方法について説明する。
図４及び図５は、本実施形態における情報処理方法を示すフローチャートであり、図４は、端末装置２０における処理、図５は、サーバ装置１０における処理を示す。
【００２９】
（エミュレーション処理における初期設定）
本実施形態の情報処理システム１では、ユーザが端末装置２０を操作し、サーバ装置１０にアクセスすると、サーバ装置１０は、端末装置２０に対してＯＳエミュレーションを案内する案内コンテンツを送信する。この案内コンテンツは、端末装置２０において例えばブラウザ等のＡｐｒを実行することで閲覧及び操作することが可能なコンテンツである。端末装置２０は、案内コンテンツを受信すると、当該案内コンテンツを表示部２１に表示させ、ユーザにＯＳやバージョン、表示形式等の選択を促す（ステップＳ１０１）。
【００３０】
図６は、案内コンテンツ３０の一例を示す図である。
図６に示すように、案内コンテンツ３０は、ＯＳ指定部３１、表示形式指定部３２、共有ユーザ指定部３３、連動指定部３４、及び決定ボタン３５等を含む。
ＯＳ指定部３１は、エミュレーションの対象となるＯＳ（副ＯＳ）を選択する部分であり、ＯＳ選択欄３１Ａ、及びバージョン選択欄３１Ｂ等を含む。
ＯＳ選択欄３１Ａは、ＯＳを選択する部分であり、例えばボタンを選択（クリック）することで選択可能なＯＳの一覧が表示される（所謂プルダウン式）。ユーザが入力操作部２２を操作することで、一覧表示されたＯＳのいずれかが選択されると、当該ＯＳがエミュレーション対象として選択される。
図６に示すように、ＯＳ選択欄３１Ａは、ＯＳ指定部３１に複数設けられており、それぞれのＯＳ選択欄３１Ａで異なる種別のＯＳを選択することが可能となる。
【００３１】
バージョン選択欄３１Ｂは、ＯＳ選択欄３１Ａの近傍（例えばＯＳ選択欄３１Ａの直下）に配置される。バージョン選択欄３１Ｂは、ＯＳ選択欄３１Ａに対してユーザがＯＳを選択することで、当該選択されたＯＳのバージョンが表示される部分である。このバージョン選択欄３１Ｂは、例えばリスト形式で選択可能なバージョンが表示される。そして、ユーザが入力操作部２２を操作することで、一覧表示されたＯＳからエミュレーション対象となるバージョンを複数選択することが可能となる。
【００３２】
表示形式指定部３２は、エミュレーション結果の表示方法を指定する部分であり、複数の表示形式から１つを選択することが可能となる。選択可能な表示形式としては、例えば、「同時表示形式」「切替表示形式」「複数タブ形式」等が挙げられる。
ここで、同時表示形式は、複数のエミュレーション結果を同一の表示領域内に複数並べて表示させる形式である。また、切替表示形式は、入力操作部２２からの所定の操作を受け付けることで、エミュレーション結果を切り替えて表示させる形式である。複数タブ形式は、複数のエミュレーション結果をそれぞれ異なる領域（異なるウィンドウ）若しくはそれぞれ異なるタブで表示させる形式である。
【００３３】
共有ユーザ指定部３３は、エミュレーション結果を送信するユーザＩＤを選択又は入力する入力欄である。
【００３４】
連動指定部３４は、エミュレートされた各ＯＳを連動動作させるか否かを指定する入力欄である。例えば、本実施形態では、「連動有り」と「連動無し」とを指定可能となっており、「連動有り」の場合、さらに連動させるＯＳが選択可能となる。
さらに、「連動無し」の場合、「Ａｐｒ単独実行モード」と、「Ａｐｒ同時実行モード」とを選択可能となる。「Ａｐｒ単独実行モード」は、ユーザが副ＯＳへのＡｐｒの実行を指令した際に、即座にサーバ装置１０にＡｐｒ指令情報に送信され、その結果がエミュレーション結果に反映されるモードである。一方、「Ａｐｒ同時実行モード」は、複数の副ＯＳに対するＡｐｒの実行を一括でサーバ装置１０に送信し、複数の副ＯＳにてＡｐｒを同時に実行させるモードである。
【００３５】
決定ボタン３５は、上記ＯＳ指定部３１及び表示形式指定部３２に対するユーザの入力操作が完了した後に、ユーザにより選択される。この決定ボタン３５が選択されることで、エミュレーション対象のＯＳや表示形式が決定される。
なお、案内コンテンツ３０としては、例えばユーザ管理情報に基づいて、各項目の初期値が予め選択されていてもよい。この場合、サーバ装置１０は、端末装置２０からのアクセスがあった際にユーザＩＤを取得し、当該ユーザＩＤに対応するユーザ管理情報に記録されるＯＳ履歴に基づいて、前回エミュレートした副ＯＳやそのバージョン等を検出する。そして、サーバ装置１０は、当該副ＯＳやバージョン、表示形式等が選択された状態で、端末装置２０に案内コンテンツ３０を送信すればよい。
また、図６に示す案内コンテンツは一例であって、これに限定されるものではない。例えば、ＯＳやバージョンの情報をテキスト入力により入力可能な画面構成としてもよく、ＯＳ指定部３１、表示形式指定部３２、共有ユーザ指定部３３、及び連動指定部３４がそれぞれ独立した案内コンテンツとして順次設定項目を指定するものであってもよい。
【００３６】
ステップＳ１０１の後、ユーザにより、ＯＳ指定部３１及び表示形式指定部３２が入力され、決定ボタン３５が選択されると、端末装置２０の要求取得部２５１は、選択されたＯＳ及びバージョンを含むＯＳ指令情報や、表示形式を指定する表示指令情報を含む指令情報を生成して、ユーザＩＤとともに、サーバ装置１０に送信する（ステップＳ１０２）。
【００３７】
（ＯＳのエミュレーション処理）
一方、サーバ装置１０では、指令取得部１３１は、端末装置２０から送信される指令情報を取得（受信）する（ステップＳ２０１）。
そして、ユーザ管理部１３２は、ステップＳ２０１において指令情報と共に受信したユーザＩＤに基づいて、対応するユーザ管理情報を抽出し、指令情報に記録された共有ユーザＩＤを記録する。すなわち、ユーザ管理部１３２は、得られた指令情報に基づいてユーザ管理情報を更新する（ステップＳ２０２）。
【００３８】
次に、エミュレーション実行部１３３は、指令情報に含まれるＯＳ指令情報に基づいて、エミュレーション対象の副ＯＳに対応するエミュレーションプログラムを記憶部１２から読み出して実行する（ステップＳ２０３）。これにより、記憶部１２の作業領域１２ｉに指定された副ＯＳが展開されて起動される。
例えば、ＯＳ情報として、「Ａ」ＯＳのバージョン１．０と、「Ｂ」ＯＳのバージョン３．０が選択されている場合、エミュレーション実行部１３３は、記憶部１２に作業領域１２１と、作業領域１２２とを確保する。そして、作業領域１２１に「Ａ」ＯＳを展開してエミュレートし、作業領域１２２に「Ｂ」ＯＳを展開してエミュレートする。
【００３９】
なお、上記は、種別が異なるＯＳであるが、同一種別のＯＳで、バージョンがそれぞれ異なるＯＳを各作業領域１２ｉに展開してもよい。例えば、ＯＳ情報として、「Ａ」ＯＳのバージョン１．０と、「Ａ」ＯＳのバージョン２．０が選択されている場合、エミュレーション実行部１３３は、作業領域１２１に「Ａ」ＯＳのバージョン１．０を展開してエミュレートし、作業領域１２２に「Ａ」ＯＳのバージョン２．０を展開してエミュレートする。
さらに、エミュレーション実行部１３３は、同一種別で同一バージョンのＯＳを複数エミュレートさせてもよい。例えば、複数の作業領域１２ｉに対してそれぞれ、「Ａ」ＯＳのバージョン３．０を展開してエミュレートさせてもよい。
ここで、エミュレーション実行部１３３は、各作業領域１２ｉにおいて副ＯＳを同時に起動させることが好ましい。すなわち、各作業領域１２ｉにおけるエミュレーション処理は、並列処理により実施される。
【００４０】
また、このステップＳ２０３では、ユーザ管理部１３２は、各作業領域１２ｉでエミュレートされる副ＯＳと、ユーザとを関連付けて、ユーザ管理情報に記録する。これにより、複数の作業領域１２ｉと各ユーザとが関連付けられることになる。
【００４１】
そして、キャプチャ部１３４は、ステップＳ２０３でエミュレートされた各副ＯＳから出力されるビデオ信号（エミュレーション結果）をキャプチャする（ステップＳ２０４）。また、キャプチャ部１３４は、各副ＯＳから出力されるエミュレーション結果の解像度を比較し、異なる解像度である場合、それぞれのエミュレーション結果の解像度を揃える画像処理を実施する（例えば、最も解像度が高いエミュレーション結果に揃える）。
【００４２】
この後、結果送信部１３５は、ユーザ管理情報に基づいて、キャプチャされたエミュレーション結果の送信先のユーザ（指令元ユーザ及び共有ユーザ）を特定して、対応する端末装置２０にエミュレーション結果を送信する（ステップＳ２０５）。
本実施形態におけるエミュレーション結果は、キャプチャ部１３４により所定のフレームレートで取得される動画であり、ステップＳ２０３で処理されたエミュレーション結果の画像が、ステップＳ２０４にて順次キャプチャされ、ステップＳ２０５で順次送信される。すなわち、ステップＳ２０５において、結果送信部１３５は、端末装置２０において各エミュレーション結果をストリーミング再生可能に送信する。
【００４３】
また、ステップＳ２０５では、結果送信部１３５は、指令情報に含まれる表示形式指定情報に基づいて、各エミュレーション結果の表示形式を指定した表示条件情報を生成し、エミュレーション結果とともに送信する。なお、表示形式指定情報に「複数タブ表示形式」が含まれる場合は、エミュレーション結果を含む結果表示コンテンツを生成して送信する。
【００４４】
例えば、表示形式指定情報として、「同時表示形式」が指定されている場合、結果送信部１３５は、各エミュレーション結果の表示位置座標を含む表示条件情報を生成する。
すなわち、「同時表示形式」では、複数のエミュレーション結果を、同一表示領域内（例えばブラウザの表示領域内）に並列配置して表示させるため、各エミュレーション結果の前記表示領域内における表示位置座標を指定する表示条件情報を生成する。
【００４５】
また、表示形式指定情報として、「切替表示形式」が指定されている場合、結果送信部１３５は、複数のエミュレーション結果の表示位置を示す位置座標に加え、所定の操作信号が入力された場合に、表示領域に表示するエミュレーション結果を切り替える旨の切替タイミング情報等を含む表示条件情報を生成する。
ここで、各エミュレーション結果の表示位置は、それぞれ表示領域における同一位置であることが好ましい。例えば、（ｘ、ｙ）座標において、「Ａ」ＯＳのエミュレーション結果を（ｘ１、ｙ１）〜（ｘ２、ｙ２）に表示させる場合、「Ｂ」ＯＳのエミュレーション結果も（ｘ１、ｙ１）〜（ｘ２、ｙ２）に表示させるように、表示位置座標の設定、及び各エミュレーション結果の画像サイズの調整を行う。
【００４６】
表示形式指定情報として、「複数タブ表示形式」が指定されている場合、結果送信部１３５は、エミュレーション結果を所定の表示位置に表示させた結果表示コンテンツを、各エミュレーション結果に応じて生成して端末装置２０に送信する。この際、切替表示形式と同様、各エミュレーション結果の表示位置は、それぞれ表示領域における同じ位置であることが好ましい。
【００４７】
これに加え、結果送信部１３５では、各エミュレーション結果とともに、当該エミュレーション結果を識別するエミュレーションＩＤ、エミュレーション処理を指令したユーザに関する情報、共有ユーザに関する情報をさらに送信する。エミュレーション処理を指令したユーザに関する情報、及び共有ユーザに関する情報としては、例えば、ユーザＩＤや、ユーザＩＤに関連付けられたユーザ名、端末装置２０の識別情報（例えばＩＰアドレス等）等が例示できる。また、エミュレーションＩＤは、エミュレーション結果が、どの作業領域１２ｉにてエミュレートされている副ＯＳのエミュレーション結果であるかを識別するための情報である。
さらに、結果送信部１３５は、表示指令情報として、連動指定部３４で「Ａｐｒ同時実行モード」が選択されている場合、Ａｐｒの実行タイミングを指定するＡｐｒ実行アイコンを表示させる旨の情報（実行アイコン表示情報）を送信する。
【００４８】
端末装置２０において、結果受信部２５３によりステップＳ２０４で送信されたエミュレーション結果を受信すると（ステップＳ１０３）、表示制御部２５４は、例えばブラウザ等の表示領域において、エミュレーション結果を表示させる（ステップＳ１０４）。
ステップＳ１０４では、表示制御部２５４は、エミュレーション結果とともに送信された表示条件情報に基づいた表示を行う。
図７は、同時表示形式において表示されるエミュレーション結果の表示例、図８は、切替表示形式において表示されるエミュレーション結果の表示例、図９は、複数タブ表示形式において表示されるエミュレーション結果の表示例である。
【００４９】
同時表示形式での表示では、表示条件情報として、各エミュレーション結果４１の表示位置座標が記録されている。
この場合、表示制御部２５４は、例えば図７に示すように、表示位置座標に基づいて、表示領域４０内に、各エミュレーション結果４１を横方向（Ｘ方向）に並べた並列表示を行う。なお、図７の例に限られず、表示位置座標に基づいて縦方向（Ｙ方向）に各エミュレーション結果４１を並べた表示を行ってもよい。
【００５０】
また、表示制御部２５４は、各エミュレーション結果４１の近傍にエミュレートされている副ＯＳに関する表示ＯＳ情報４２（例えば、ＯＳ名やバージョン）を表示させることが好ましい。表示ＯＳ情報４２の表示位置は、図７に示すように各エミュレーション結果４１の下方であってもよく、上方であってもよい。また、各エミュレーション結果４１に重畳させて表示ＯＳ情報４２を表示してもよい。
さらに、各エミュレーション結果４１は、それぞれ同一解像度でキャプチャされている、又はキャプチャ部１３４同一解像度となるように画像処理されている。したがって、各エミュレーション結果４１における画像サイズ（アスペクト比）が同一となる。これにより、ユーザは、各エミュレーション結果４１の違いを容易に視認可能となる。
【００５１】
さらに、表示制御部２５４は、エミュレーションを指令したユーザに関する指令元ユーザ情報４４、及び共有ユーザを示す共有ユーザ情報４５を、表示領域４０に表示させてもよい。
【００５２】
一方、切替表示形式が選択されている場合、表示条件情報として、各エミュレーション結果４１の表示位置座標に加え、切替タイミング情報が含まれている。
この場合、表示制御部２５４は、図８（Ａ）に示すように、表示領域４０内において、表示位置座標に基づく座標位置に、１つ（又は所定数）のエミュレーション結果４１Ａを表示させる。そして、ユーザの入力操作部２２の操作により、予めされた操作キーが入力されると、表示制御部２５４は、図８（Ｂ）に示すように、エミュレーション結果４１Ｂに表示を切り替える。この際、先に表示していたエミュレーション結果４１Ａと同じ位置に、次のエミュレーション結果４１Ｂを表示させる。これにより、ユーザは、エミュレーション結果４１Ａを、エミュレーション結果４１Ｂに切り替えた際に、どの位置が異なっているか等を容易に視認することが可能となる。
また、同時表示形式と同様、表示制御部２５４は、表示ＯＳ情報４２、指令元ユーザ情報４４、及び共有ユーザを示す共有ユーザ情報４５を、表示領域４０に表示させてもよい。
なお、図８に示す例は、ＰＣ（パーソナルコンピュータ）等に接続される比較的画面サイズが大きい表示ディスプレイにおける表示例であるが、例えば、スマートフォン等の画面サイズが小さい表示ディスプレイにおいては、エミュレーション結果４１Ａ，４１Ｂが全画面表示されてもよい。
【００５３】
さらに、複数タブ表示形式が選択されている場合、各エミュレーション結果４１（４１Ａ，４１Ｂ）に対応した複数の結果表示コンテンツがサーバ装置１０から送信される。したがって、表示制御部２５４は、受信した各結果表示コンテンツをそれぞれ個別に表示する。
この際、端末装置２０において、図９に示すように、表示領域４０にさせる表示内容を、タブＴ１〜Ｔ３を選択することで切り替え可能なブラウザ（所謂タブブラウザ等）を用いている場合、各結果表示コンテンツは、タブを切り替えることでそれぞれ切り替えることが可能となる。
例えば、図９（Ａ）に示すように、タブＴ１が選択されている場合、表示領域４０の所定位置に、エミュレーション結果４１Ａが配置された結果表示コンテンツが表示される。そして、ユーザの入力操作部２２の操作により、例えばタブＴ２が選択されると、図９（Ｂ）に示すように、同一の表示位置にエミュレーション結果４１Ｂが配置された結果表示コンテンツが表示される。この場合、タブを切り替えることで、上記切替表示形式と同様に、複数のエミュレーション結果を同じ位置で切り替えて表示させることが可能となる。
また、同時表示形式と同様、表示制御部２５４は、表示ＯＳ情報４２、指令元ユーザ情報４４、及び共有ユーザを示す共有ユーザ情報４５を、表示領域４０に表示させてもよい。
なお、図９の例は、タブブラウザでの表示例であるが、複数のウィンドウにそれぞれの結果表示コンテンツを表示させた上で、これらのウィンドウを重ねて表示させたり、並列させて表示させたりしてもよい。
【００５４】
また、図１０は、ステップＳ２０４において、実行アイコン表示情報が送信された際のＡｐｒ同時実行モードにおけるエミュレーション結果の表示例である。
ステップＳ１０２で端末装置２０からサーバ装置１０に、Ａｐｒ同時実行モードを選択する旨の表示指令情報が送信された場合、サーバ装置１０は、上述したように、実行アイコン表示情報を端末装置２０に送信する。
この場合、端末装置２０の表示制御部２５４は、図１０に示すように、実行アイコン４６を更に表示させる。この実行アイコン４６は、Ａｐｒの実行開始を指令する旨のアイコンである。すなわち、ユーザは、各エミュレーション結果４１のうちの１つ以上に対して、Ａｐｒの実行を指令する操作を行った後、当該実行アイコン４６を選択する。これにより、端末装置２０は、ユーザにより入力された各エミュレーション結果４１に対するＡｐｒの実行指令を、一括してサーバ装置１０に送信する。
なお、図１０に示す例は、「同時表示形式」における表示例であるが、他の表示形式においても同様に、実行アイコン４６を表示させてもよい。
【００５５】
（Ａｐｒのエミュレーション処理）
次に、端末装置２０は、実行アイコン表示情報を受信したか否かを判定する（ステップＳ１０５）。ステップＳ１０５において、Ｎｏと判定された場合はＡｐｒ単独実行モードであることを意味し、Ｙｅｓと判定された場合はＡｐｒ同時実行モードであることを意味する。
【００５６】
ステップＳ１０５において、Ｎｏと判定された場合、端末装置２０は、ユーザの入力操作部２２の操作により、各エミュレーション結果４１に対する操作が受け付けられたか否か（Ａｐｒの実行指令を受け付けたか否か）を判定する（ステップＳ１０６）。つまり、要求取得部２５１は、表示領域４０に表示された各エミュレーション結果４１に対して、所定のＡｐｒを実施する旨の要求情報を取得する。
一方、ステップＳ１０５において、Ｙｅｓと判定された場合、端末装置２０は、ユーザの入力操作部２２の操作により、各エミュレーション結果４１に対する操作が受け付けられ、かつ、実行アイコン４６が選択されたか否かを判定する（ステップＳ１０７）。
【００５７】
なお、本発明では、上述したように、Ａｐｒとして、ＯＳ（副ＯＳ）が有する基本プログラムを含む。例えば、スマートフォンやタブレット端末等を制御するＯＳ（例えばＡｎｄｒｏｉｄ等）では、表示画面（タッチパネル）にタッチした指を所定方向に移動させる操作（所謂フリック操作）を行うことで、表示される内容を遷移させる基本プログラムを有する。この場合、ユーザは、表示領域４０に表示されたエミュレーション結果に対して、フリック操作又はマウス等の入力デバイスを用いた擬似フリック操作を行う。これにより、要求取得部２５１は、当該基本プログラムの実行を要求する要求情報を受け付ける。
【００５８】
そして、ステップＳ１０６やステップＳ１０７においてＹｅｓと判定された場合、指令送信部２５２は、Ａｐｒの実行を指令するＡｐｒ指令情報を含む指令情報をサーバ装置１０に送信する（ステップＳ１０８）。
ステップＳ１０６においてＹｅｓと判定された場合では、１つのエミュレーション結果４１（４１Ａ，４１Ｂ）に対して、Ａｐｒの実行要求を行う操作が入力された場合に、指令送信部２５２により、即座にＡｐｒ指令情報がサーバ装置１０に送信される。このＡｐｒ指令情報は、エミュレートされた複数の副ＯＳのうちのいずれか１つ上でのＡｐｒの実行を指令する情報となる。
一方、ステップＳ１０７においてＹｅｓと判定された場合では、少なくとも１つのエミュレーション結果４１（又はエミュレーション結果４１Ａやエミュレーション結果４１Ｂ）に対して、Ａｐｒの実行要求を行う操作が入力され、その後、ユーザの入力操作によって実行アイコン４６が選択された場合に、Ａｐｒ指令情報がサーバ装置１０に送信される。この場合、Ａｐｒの実行指令の対象（エミュレーション結果４１）は複数であってもよい。また、１つのエミュレーション結果に対して複数のＡｐｒの実行指令が入力されていてもよい。
【００５９】
また、指令送信部２５２は、Ａｐｒ指令情報とともに、Ａｐｒの実行要求が入力されたエミュレーション結果４１に対応するエミュレーションＩＤや、ユーザＩＤを送信する。
【００６０】
サーバ装置１０において、ステップＳ１０８で送信された指令情報を受信すると（ステップＳ２０６）、エミュレーション実行部１３３は、受信したＡｐｒ指令情報が複数あるか否かを判定する（ステップＳ２０７）。
ステップＳ２０７でＹｅｓと判定される場合は、端末装置２０において、複数のＡｐｒの実行要求が受け付けられ、実行アイコン４６が選択された際に生成された（ステップＳ１０７でＹｅｓと判定された際に生成された）Ａｐｒ指令情報である。この場合、エミュレーション実行部１３３は、ステップＳ１０８でＡｐｒ指令情報とともに受信したエミュレーションＩＤに基づいて、Ａｐｒの実行対象となる複数の副ＯＳ（作業領域１２ｉ）を実行対象領域として特定する。また、エミュレーション実行部１３３は、各実行対象領域で実行させるそれぞれのＡｐｒを、Ａｐｒ指令情報に基づいて特定する（ステップＳ２０８）。すなわち、エミュレーション実行部１３３は、複数のＡｐｒを、それぞれ異なる作業領域１２ｉに展開された副ＯＳに振り分ける。
なお、Ａｐｒ同時実行モードであっても、１つのエミュレーション結果に対するＡｐｒ指令情報のみを受信した場合では、ステップＳ２０７において、Ｎｏと判定される。
【００６１】
ステップＳ２０７でＮｏと判定された場合、端末装置２０において、ステップＳ２０１で受信した指令情報に含まれる連動指定が、「連動有り」であるか否かを判定する（ステップＳ２０９）。
ステップＳ２０９において、Ｙｅｓと判定された場合（つまり、連動有りの場合）、ステップＳ２０１で受信した指令情報に含まれる、連動対象として選択された副ＯＳに、ステップＳ２０６で受信したエミュレーションＩＤに対応する副ＯＳが有るか否かを判定する（ステップＳ２１０）。つまり、Ａｐｒの実行対象の副ＯＳが連動対象のＯＳであるか否かを判定する。
ステップＳ２１０において、Ｙｅｓと判定された場合、連動対象に対応する各副ＯＳが実行されている各作業領域１２ｉを、Ａｐｒの実行対象領域として特定し、Ａｐｒ指令情報に基づいて実行させるＡｐｒを特定する（ステップＳ２１１）。
また、ステップＳ２０９又はステップＳ２１０において、Ｎｏと判定された場合（つまり、Ａｐｒの実行対象の副ＯＳが連動対象のＯＳでない場合）、ステップＳ２０６で受信したエミュレーションＩＤに対応する１つの副ＯＳ（つまり、作業領域１２ｉ）を実行対象領域として特定し、Ａｐｒ指令情報に基づいて実行させるＡｐｒを特定する（ステップＳ２１２）。
【００６２】
この後、エミュレーション実行部１３３は、ステップＳ２０８、ステップＳ２１１、及びステップＳ２１２のいずれかにおいて特定された実行対象領域でエミュレートされている副ＯＳ上で、特定されたＡｐｒを実行させる（ステップＳ２１３）。この際、エミュレーション実行部１３３は、Ａｐｒの実行対象領域が複数ある場合、これらの複数の実行対象領域に対して、同時にＡｐｒを実行（並列処理）させる。例えば、Ａｐｒ指令情報として、エミュレートされた複数の副ＯＳのうちのいずれか１つ上でのＡｐｒの実行を指令する情報を受信した場合で、かつ、指定された副ＯＳが連動対象に対応する副ＯＳである場合、連動対象となる全ての副ＯＳに対して、指定されたＡｐｒを同時に実行させる。
また、複数の副ＯＳのそれぞれに対して個別にＡｐｒの実行を指令するＡｐｒ指令情報を受信した場合では、各副ＯＳで対応するＡｐｒを実行させることになるが、この際も、各副ＯＳでのＡｐｒの実行タイミングを同一にする。
そして、ステップＳ２０４と同様に、キャプチャ部１３４は、ステップＳ２１３でエミュレートされた各副ＯＳから出力されるビデオ信号（エミュレーション結果）をキャプチャし（ステップＳ２１４）、ステップＳ２０５と同様、端末装置２０に対して当該キャプチャしたエミュレーション結果を送信する（ステップＳ２１５）。この場合、エミュレーション処理を指令したユーザは、Ａｐｒ指令情報を送信した端末装置２０に対応するユーザとなる。
【００６３】
端末装置２０は、ステップＳ２１５で送信されたエミュレーション結果を受信すると（ステップＳ１０９）、表示制御部２５４は、ステップＳ１０４と同様に、受信したエミュレーション結果を表示領域４０に表示させる（ステップＳ１１０）。つまり、表示領域４０に表示されているエミュレーション結果を更新する。この際、指令元ユーザは、Ａｐｒ指令情報を送信した端末装置２０のユーザに更新される。
以上のような処理により、連動させるＯＳが複数存在する場合は、これらのＯＳのエミュレーション結果４１が同時に更新され、連動させるＯＳの対象となっていない場合や、連動無しの場合は、１つのＯＳのエミュレーション結果４１のみが更新される。また、Ａｐｒ同時実行モードが選択されている場合では、複数のエミュレーション結果４１に対して、それぞれ異なるＡｐｒを起動させた際のエミュレーション結果４１が同時に更新されることになる。
また、本実施形態では、上述のように、各エミュレーション結果４１が同一解像度で表示される。このため、Ａｐｒの実行を指令したエミュレーション結果４１におけるＡｐｒの処理動作と、連動されるＯＳに対応するエミュレーション結果４１におけるＡｐｒ処理動作とが、同一解像度で表示されることになる。例えば、画面をフリック操作した際の画面の遷移速度が、各エミュレーション結果４１において忠実に再現されることになる。
さらに、本実施形態では、表示制御部２５４は、サーバ装置１０から送信されるエミュレーション結果をストリーミング再生により表示する。したがって、各ＯＳにおけるＡｐｒの実行状況がリアルタイムで更新される。
以上により、ユーザは、各ＯＳにおけるＡｐｒの実行結果だけでなく、その実行速度等も容易に比較及び確認することが可能となる。
【００６４】
ステップＳ１１０の後、又はステップＳ１０６やステップＳ１０７においてＮｏと判定された場合、端末装置２０は、エミュレーション処理を継続するか否かを判定する（ステップＳ１１１）。ステップＳ１１１において、Ｎｏと判定された場合、例えば、ユーザが入力操作部２２を操作することで「セッションを閉じる」旨を選択した場合、エミュレーション結果の受信を終了させる。ステップＳ１１１においてＹｅｓと判定された場合は、ステップＳ１０５に戻る。
【００６５】
また、サーバ装置１０は、端末装置２０から処理を終了させる旨の指令が送信された場合、当該ユーザによりエミュレートされていた副ＯＳを終了させ、エミュレーション処理を終了し、確保していた作業領域１２ｉを開放する。なお、終了時の各ＯＳの設定内容を、ユーザＩＤ（例えばＯＳのエミュレートを指令したユーザのユーザＩＤ）と関連付けて記憶部１２に記憶しておいてもよい。この場合、次にユーザがＯＳをエミュレートする際に、前回の設定内容を読み込むことができ、前回の作業を継続することができる。
また、端末装置２０から処理を終了させる旨の指令が送信された場合、当該端末装置２０のユーザが、副ＯＳのエミュレーション処理を指令したユーザである場合に、上記のように、エミュレーション処理を終了させてもよい。この場合、当該端末装置２０のユーザが、副ＯＳのエミュレーション処理を指令したユーザでない場合に、当該ユーザを共有ユーザから外す。したがって、他の共有ユーザ（処理を終了させる旨の指令を送信していないユーザ）の端末装置２０では、エミュレーション結果４１の表示が継続される。
【００６６】
（本実施形態の作用効果）
本実施形態のサーバ装置１０では、エミュレーション実行部１３３は、エミュレーションプログラムを読み出して複数の作業領域１２ｉに展開することで、各作業領域１２ｉのそれぞれでＯＳをエミュレートし、少なくとも２つ以上のエミュレーション結果を端末装置２０に送信する。
このような構成では、ユーザが操作する端末装置２０において、同時進行する（並列処理されている）複数のＯＳのエミュレーション結果をそれぞれ確認することができる。
【００６７】
また、エミュレーション実行部１３３は、各作業領域１２ｉにおいてエミュレートされている各副ＯＳ上でＡｐｒを実行し、当該Ａｐｒの実行時のエミュレーション結果が端末装置２０に送信される。これにより、ユーザは、各副ＯＳにおけるＡｐｒの動作状況を容易に見比べることができる。
【００６８】
この際、サーバ装置１０は、指令取得部１３１により、端末装置２０から送信されたＡｐｒ指令情報を取得し、エミュレーション実行部１３３は、当該Ａｐｒ情報にて指定されたＡｐｒを各作業領域１２ｉでエミュレートされている副ＯＳ上で実行させる。
これにより、ユーザが指定したＡｐｒの動作状況を容易に確認することができる。
例えば、ユーザが「Ａ」ＯＳ及び「Ｂ」ＯＳに対応したＡｐｒを開発する際、サーバ装置１０は、第１の作業領域１２１に「Ａ」ＯＳをエミュレートし、第２の作業領域１２２に「Ｂ」ＯＳにエミュレートする。そして、ユーザが開発した「Ａ」ＯＳ用のＡｐｒを第１の作業領域１２１に、「Ｂ」ＯＳ用のＡｐｒを第２の作業領域１２２に導入し、各環境にてＡｐｒを実行させることができる。この場合、それぞれの作業領域１２１，１２２におけるＡｐｒのエミュレーション結果が端末装置２０に送信されることになり、各ＯＳにおいてＡｐｒを動作させた際の動作を見比べることができる。
【００６９】
また、Ａｐｒ同時実行モードが選択されている場合では、サーバ装置１０は、指令取得部１３１により、複数の作業領域１２ｉにてＡｐｒを同時に実行させることができる。例えば、上記の例では、「Ａ」ＯＳをエミュレートする第１の作業領域１２１における「Ａ」ＯＳ用のＡｐｒと、「Ｂ」ＯＳをエミュレートする第２の作業領域１２２における「Ｂ」ＯＳ用のＡｐｒと、を同時に実行することができる。これにより、各ＯＳでのＡｐｒの動作確認や処理速度を容易に見比べることができる。
さらには、複数の作業領域１２ｉに対して同一のＯＳ（例えば「Ａ」ＯＳのバージョン３．０）をエミュレートさせ、それぞれの作業領域１２ｉで、それぞれ異なるＡｐｒを実行することもできる。この場合、例えば、Ａｐｒの開発等において、バージョンアップ前のＡｐｒと、バージョンアップ後のＡｐｒとの比較を行うことができる。
【００７０】
さらに、本実施形態では、端末装置２０において、エミュレートさせる複数の副ＯＳにおいて、連動させる副ＯＳを選択することが可能となる。そして、端末装置２０において、これらの連動対象の副ＯＳのうちの１つのエミュレーション結果に対して、所定のＡｐｒを実行する旨が入力され、当該Ａｐｒの実行を指定するＡｐｒ指令情報がサーバ装置１０にて受信されると、エミュレーション実行部１３３は、対象となる副ＯＳがエミュレートされている各作業領域１２ｉにて、当該Ａｐｒを同時に実行させ、そのエミュレーション結果を端末装置２０に送信する。
これにより、ユーザは、１つの副ＯＳに対するＡｐｒの実行を指令するだけで、複数の副ＯＳにおける当該Ａｐｒの動作状況を容易に確認することができる。例えば、「Ａ」ＯＳのバージョン２．０と、「Ａ」ＯＳのバージョン３．０とにおける、１つのＡｐｒの動作状態（例えば、バージョンアップ後のＯＳにおいて、Ａｐｒが起動するか、起動速度に問題ないか等）を確認することができる。
【００７１】
また、キャプチャ部１３４は、各エミュレーション結果を同一解像度でキャプチャする、又は、各エミュレーション結果を同一の解像度となるように画像処理し、結果送信部１３５は、同一解像度のエミュレーション結果を端末装置２０に送信する。
この場合、各副ＯＳに対するエミュレーション結果の比較をより適正に行うことができる。例えば、上記のように、複数の副ＯＳの１つに対してＡｐｒの実行を指令して、サーバ装置１０でエミュレートされる他の副ＯＳで当該Ａｐｒを同時に実行させる場合、各副ＯＳでの動作状況を適正に比較することができる。
具体例として、画面をフリックして、画面を遷移させた際の各副ＯＳでの画面の遷移速度を比べる場合を例示する。この場合、各エミュレーション結果の解像度がそれぞれ異なると、画面の遷移速度が同じであっても、解像度が高いエミュレーション結果では、滑らかに画面が遷移するのに対し、解像度が低いエミュレーション結果では、いわゆるカクツキが生じる。これに対して、上記のように解像度を同一とすることで、画面遷移の遷移速度に加え、画面遷移時の滑らかさをも、適正に比較することができる。
【００７２】
本実施形態では、端末装置２０から「同時表示形式」の表示形式でエミュレーション結果を表示させる旨の指令情報が送信された場合、結果送信部１３５は、各エミュレーション結果を、端末装置２０の表示領域４０に並列に配置させるための表示位置座標を含む表示条件情報を送信する。
これにより、端末装置２０では、表示領域４０内に、各エミュレーション結果４１が並列表示されることになる。これによって、ユーザは、並列表示されたエミュレーション結果を同時に視認することができ、各エミュレーション結果の動作状況等を容易に確認することができる。
【００７３】
本実施形態では、端末装置２０から「切替表示形式」の表示形式でエミュレーション結果を表示させる旨の指令情報が送信された場合、結果送信部１３５は、各エミュレーション結果の表示位置座標と、切替タイミング情報とを含む表示条件情報を送信する。
これにより、端末装置２０では、ユーザによる入力操作部２２の操作によって所定の操作信号が入力されることで、表示領域４０内に表示されたエミュレーション結果４１Ａを、他のエミュレーション結果４１Ｂに切り替えることができる。この場合、エミュレーション結果を順次切り替えることで、ユーザは、各エミュレーション結果における相違部分を容易に確認することができる。
【００７４】
また、本実施形態では、結果送信部１３５は、ＯＳのエミュレーションを指令した端末装置２０のみならず、共有ユーザとして登録されているユーザが保有する他の端末装置２０に対しても、複数のエミュレーション結果を送信する。
これにより、複数のユーザが、エミュレーション結果を容易に確認することができる。例えば、複数のユーザでＡｐｒの開発を行う場合に、１人のユーザによるＡｐｒの開発状況を、他のユーザが容易に確認することができる。
【００７５】
［変形例］
なお、本発明は、上述した実施形態に限定されるものではなく、本発明の目的を達成できる範囲で、以下に示される変形をも含むものである。
【００７６】
（変形例１）
上記実施形態において、ステップＳ２０１において、受信した指令情報により各エミュレーション結果の表示形式が決定される例を示したが、これに限定されない。
すなわち、各エミュレーション結果の表示形式（同時表示形式、切替表示形式、複数タブ表示形式等）は、一連のエミュレーション処理の間で変更可能としてもよい。例えば、端末装置２０は、各エミュレーション結果を表示している間、ユーザの入力操作部２２の操作により表示形式を変更する旨の操作信号を受け付けることができる構成としてもよい。この場合、端末装置２０は、当該操作信号を受信すると、サーバ装置１０に、表示形式の変更要求を送信する。これにより、サーバ装置１０は、変更要求に応じた表示形式に対応した表示条件情報を生成して、端末装置２０に送信する。
【００７７】
また、各共有ユーザの端末装置２０のそれぞれにおいて、表示形式を異ならせてもよい。例えば、エミュレーション結果が表示される共有ユーザの端末装置２０のうちの１つにおいて、上述のような変更要求を受け付けた場合、当該ユーザに対応する端末装置２０に対してのみ、上記のように表示条件情報を新たに生成してもよい。
これにより、各ユーザの表示デバイス（表示部２１）がそれぞれ異なる場合でも、それぞれの表示デバイスに応じたエミュレーション結果の表示を行うことができる。例えば、ＰＣを操作するユーザの端末装置２０では、同時表示形式によるエミュレーション結果４１の表示を行い、スマートフォンを操作するユーザの端末装置２０では、切替形式によるエミュレーション結果４１の表示を行うことができる。
【００７８】
（変形例２）
切替表示形式において、複数のエミュレーション結果を表示させてもよい。
例えば、５つのエミュレーション結果が送信される場合に、表示制御部２５４は、２つのエミュレーション結果４１Ａ，４１Ｂを同一の表示領域に並列に表示させる。そして、入力操作部２２の操作により、表示された２つのエミュレーション結果４１のうちのいずれか（例えばエミュレーション結果４１Ｂ）が選択され、当該選択されたエミュレーション結果４１Ｂを切り替える旨の操作信号が入力されると、当該エミュレーション結果４１Ｂを表示されていない他のエミュレーション結果に切り替える。
この場合、１つのエミュレーション結果と、複数の他のエミュレーション結果とを順次比較することが可能となる。
【００７９】
（変形例３）
上記実施形態では、端末装置２０においてユーザにより副ＯＳが指定され、端末装置２０から送信されるＯＳ指令情報に基づいた複数の副ＯＳを作業領域１２ｉに展開する例を示したが、これに限定されない。エミュレーション実行部１３３は、予め設定された幾つかの副ＯＳを、それぞれ異なる作業領域１２ｉでエミュレートしてもよい。
Ａｐｒにおいても同様であり、エミュレーション実行部１３３は、予め設定された幾つかのＡｐｒを、それぞれ異なる作業領域１２ｉで実行してもよい。
【００８０】
（変形例４）
上記実施形態において、サーバ装置１０は、ユーザが指定した複数の副ＯＳのそれぞれのエミュレーション結果を端末装置２０に送信する例を示したが、これらの複数の副ＯＳのうちの幾つかを端末装置２０に送信してもよい。この場合、端末装置２０から、エミュレートさせる複数の副ＯＳと、そのうちのエミュレーション結果として送信させる副ＯＳとを選択可能な構成とする。そして、端末装置２０から他の副ＯＳのエミュレーション結果の要求があった場合に、当該副ＯＳのエミュレーション結果を送信する。
この場合、エミュレーション結果が送信されない副ＯＳに関しても、サーバ装置１０の作業領域１２ｉにてエミュレーションが起動されている。したがって、ユーザが任意のタイミングで、エミュレーション結果を送信していない副ＯＳのエミュレーション結果の送信要求を新たにサーバ装置１０に送信した場合でも、即座にそのエミュレーション結果を送信することができる。すなわち、ユーザが必要としたタイミングで、ユーザが希望するＯＳのエミュレーション結果を表示させることが可能となる。
【００８１】
（変形例５）
上記実施形態において、サーバ装置１０は、各エミュレーション結果において、共通する共通部、相違する相違部を検出する特徴検出部を備える構成としてもよい。
この場合、結果送信部１３５は、１つ目のエミュレーション結果に対して、他のエミュレーション結果における相違部又は共通部を強調表示させる旨の表示条件情報を生成してもよい。
【００８２】
（変形例６）
上記実施形態では、案内コンテンツ３０において、「連動無し」が選択された場合に、「Ａｐｒ同時実行モード」と「Ａｐｒ単独実行モード」とを選択可能としたが、「連動有り」が選択された場合においても、「Ａｐｒ同時実行モード」と「Ａｐｒ単独実行モード」とを選択可能としてもよい。この場合、連動有りとされた連動対象ＯＳ以外の副ＯＳに対して異なるＡｐｒを実行させることができ、連動対象ＯＳと、連動していない他の副ＯＳでのＡｐｒの実行結果（エミュレーション結果）を同期して処理することができる。
【００８３】
（変形例７）
上記実施形態では、サーバ装置１０の結果送信部１３５が、端末装置２０にて指定された表示形式に対応する表示条件情報を生成する例を示したが、これに限定されない。
例えば、サーバ装置１０の結果送信部１３５は、表示条件情報の生成を実施せず、複数のエミュレーション結果のみを端末装置２０に送信し、端末装置２０の表示制御部２５４が、取得された複数のエミュレーション結果を表示部２１に適宜配置して表示する構成としてもよい。
例えば、ユーザにより「同時表示形式」が設定されている場合には、表示制御部２５４が、サーバ装置１０から送信された複数のエミュレーション結果４１を、表示領域４０内に並列配置して表示させる。
また、ユーザにより「切替表示形式」が設定されている場合には、表示制御部２５４が、サーバ装置１０から送信された複数のエミュレーション結果４１の内の１つを表示領域４０内に配置して表示させる。そして、ユーザにより入力操作部２２が操作されて、表示するエミュレーション結果を切り替える旨の操作信号が入力されると、表示制御部２５４は、他のエミュレーション結果に表示を切り替える。
この場合、表示制御部２５４は、例えば表示部２１における表示領域のサイズに応じて、表示形式の初期値を予め設定しておいてもよい。例えば、ＰＣ等の大画面を有する表示部２１を有する端末装置２０においては、同時表示形式を初期値とし、スマートフォン等の表示領域が小さい表示部２１を有する端末装置２０においては、切替表示形式を初期値としてもよい。
【００８４】
（変形例８）
上記実施形態では、サーバ装置１０は、端末装置２０から送信された指令情報に基づいて、複数のＯＳをエミュレートする構成を例示したが、これに限定されない。例えば、端末装置を、本発明の情報処理装置として機能させることもできる。
すなわち、従来、端末装置において、所定のＯＳをエミュレーションする場合、当該ＯＳをエミュレートするプログラムを実行することで、当該ＯＳのエミュレーション結果が端末装置の表示部に表示される。よって、複数のＯＳのエミュレーション結果を比較したい場合等では、各ＯＳのエミュレートするプログラムを順次切り替える必要がある（例えば、Ｗｉｎｄｏｗｓ（登録商標）においては、「Ａｌｔ」キーと「ｔａｂ」キーとを同時に押下する）。この場合、各エミュレーション結果を表示するための操作が煩雑であり、また、複数のエミュレーション結果を比較することが困難である。
【００８５】
これに対して、端末装置２０が、エミュレーション実行部１３３やキャプチャ部１３４を備える構成とする。この場合、エミュレーション実行部１３３は、端末記憶部２４に複数の作業領域１２ｉを確保し、それぞれの作業領域１２ｉで指定された副ＯＳを実行してエミュレートさせる。また、キャプチャ部１３４は、それぞれのエミュレーション結果をキャプチャする。そして、表示制御部２５４（出力制御部）は、少なくとも２つ以上の前記作業領域におけるエミュレーション結果を表示領域に出力する。すなわち、キャプチャされたそれぞれのエミュレーション結果を、例えばブラウザ等の１つの表示領域４０内に表示させる。
この際、エミュレーション実行部１３３は、上記実施形態と同様の処理を実施する。すなわち、連動対象ＯＳが複数ある場合や、Ａｐｒ同時実行モードにより複数の副ＯＳでのＡｐｒの同時実行を要求する情報が、入力操作部２２により入力された場合には、エミュレーション実行部１３３は、対象となる各作業領域１２ｉでのエミュレーション処理を同時に実施（並列処理）する。これにより、同時表示形式、切替表示形式、複数タブ表示形式等で、各エミュレーション結果を表示させた際に、各エミュレーション結果の動作状況を容易に比較することができる。
【００８６】
その他、本発明の実施の際の具体的な構造及び手順は、本発明の目的を達成できる範囲で他の構造などに適宜変更できる。
【符号の説明】
【００８７】
１…情報処理システム、１０…サーバ装置（情報処理装置）、１１…通信部、１２…記憶部、１２ｉ…作業領域、１３…制御部、２０…端末装置、２１…表示部、２２…入力操作部、２３…端末通信部、２４…端末記憶部、２５…端末制御部、３０…案内コンテンツ、３１…ＯＳ指定部、３１Ａ…ＯＳ選択欄、３１Ｂ…バージョン選択欄、３２…表示形式指定部、３３…共有ユーザ指定部、３４…連動指定部、３５…決定ボタン、４０…表示領域、４１，４１Ａ，４１Ｂ…エミュレーション結果、４２…表示ＯＳ情報、４４…指令元ユーザ情報、４５…共有ユーザ情報、４６…実行アイコン、１３１…指令取得部、１３２…ユーザ管理部、１３３…エミュレーション実行部、１３４…キャプチャ部、１３５…結果送信部、２５１…要求取得部、２５２…指令送信部、２５３…結果受信部、２５４…表示制御部。
【図１】
2018195203.tif 000003
【図２】
2018195203.tif 000004
【図３】
2018195203.tif 000005
【図４】
2018195203.tif 000006
【図５】
2018195203.tif 000007
【図６】
2018195203.tif 000008
【図７】
2018195203.tif 000009
【図８】
2018195203.tif 000010
【図９】
2018195203.tif 000011
【図１０】
2018195203.tif 000012