IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヤフー株式会社の特許一覧

特許7085311情報処理装置、情報処理システム、情報処理方法、情報処理プログラム
<>
  • 特許-情報処理装置、情報処理システム、情報処理方法、情報処理プログラム 図1
  • 特許-情報処理装置、情報処理システム、情報処理方法、情報処理プログラム 図2
  • 特許-情報処理装置、情報処理システム、情報処理方法、情報処理プログラム 図3
  • 特許-情報処理装置、情報処理システム、情報処理方法、情報処理プログラム 図4
  • 特許-情報処理装置、情報処理システム、情報処理方法、情報処理プログラム 図5
  • 特許-情報処理装置、情報処理システム、情報処理方法、情報処理プログラム 図6
  • 特許-情報処理装置、情報処理システム、情報処理方法、情報処理プログラム 図7
  • 特許-情報処理装置、情報処理システム、情報処理方法、情報処理プログラム 図8
  • 特許-情報処理装置、情報処理システム、情報処理方法、情報処理プログラム 図9
  • 特許-情報処理装置、情報処理システム、情報処理方法、情報処理プログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-08
(45)【発行日】2022-06-16
(54)【発明の名称】情報処理装置、情報処理システム、情報処理方法、情報処理プログラム
(51)【国際特許分類】
   G06F 11/36 20060101AFI20220609BHJP
   G06F 9/455 20060101ALI20220609BHJP
【FI】
G06F11/36 196
G06F9/455
【請求項の数】 10
(21)【出願番号】P 2017100270
(22)【出願日】2017-05-19
(65)【公開番号】P2018195203
(43)【公開日】2018-12-06
【審査請求日】2020-03-02
(73)【特許権者】
【識別番号】319013263
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】110000637
【氏名又は名称】特許業務法人樹之下知的財産事務所
(72)【発明者】
【氏名】鈴木 太一郎
【審査官】金木 陽一
(56)【参考文献】
【文献】特開2014-035744(JP,A)
【文献】特開2006-293515(JP,A)
【文献】特開2011-028438(JP,A)
【文献】特開2010-170354(JP,A)
【文献】特開2014-038390(JP,A)
【文献】特開2010-237787(JP,A)
【文献】米国特許第08856748(US,B1)
【文献】米国特許出願公開第2014/0298335(US,A1)
【文献】VILLANES ROJAS, I.K., et al.,Cloud-Based Mobile App Testing Framework: Architecture, Implementation and Execution,Proceedings of the 1st Brazilian Symposium on Systematic and Automated Software Testing (SAST),Association for Computing Machinery,2016年09月16日,pp. 1-10,Retrieved from the Internet: <URL: https://dl.acm.org/doi/10.1145/2993288.2993301> [Retrieved on 2021-09-02],DOI: 10.1145/2993288.2993301
【文献】VILLANES, I.K., et al.,Automated Mobile Testing as a Service (AM-TaaS),Proceedings of 2015 IEEE World Congress on Services,2015年06月27日,pp. 79-86,Retrieved from the Internet: <URL: https://ieeexplore.ieee.org/document/7196507> [Retrieved on 2021-09-02],DOI: 10.1109/SERVICES.2015.20
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/36
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
端末装置と通信可能に接続される情報処理装置であって、
オペレーティングシステムをエミュレートするエミュレーションプログラムを読み出して記憶部の複数の作業領域のそれぞれに展開する実行部と、
少なくとも2つ以上の前記作業領域におけるエミュレーション結果を前記端末装置に送信する結果送信部と、
前記端末装置から実行するアプリケーションプログラムを指定するアプリケーション指令情報を受信する指令受信部と、
を備え、
前記アプリケーション指令情報は、複数の前記アプリケーションプログラムの実行を指令する旨の情報と、各前記アプリケーションプログラムを実行させる前記オペレーティングシステムを示す情報とを含み、
前記実行部は、前記アプリケーション指令情報に基づいて、複数の前記アプリケーションプログラムを、当該アプリケーションプログラムを実行させる前記オペレーティングシステムに振り分け、それぞれの前記オペレーティングシステム上で、振り分けられた前記アプリケーションプログラムを実行し、かつ、各前記オペレーションシステムに振り分けられた前記アプリケーションプログラムを実行させる実行タイミングを同一にする、
ことを特徴とする情報処理装置。
【請求項2】
請求項1に記載の情報処理装置において、
前記実行部は、それぞれバージョンが異なる複数の前記オペレーティングシステムのエミュレーションプログラムを、それぞれ異なる前記作業領域に展開する
ことを特徴とする情報処理装置。
【請求項3】
請求項1または請求項2に記載の情報処理装置において、
前記結果送信部は、少なくとも2つ以上の前記エミュレーション結果を、前記端末装置の表示領域内に並べて配置させる表示位置情報を更に送信する
ことを特徴とする情報処理装置。
【請求項4】
請求項3に記載の情報処理装置において、
前記結果送信部は、同一解像度の少なくとも2つ以上の前記エミュレーション結果を前
記端末装置に送信する
ことを特徴とする情報処理装置。
【請求項5】
請求項1または請求項2に記載の情報処理装置において、
前記結果送信部は、前記端末装置において前記エミュレーション結果を切り替える切替指令が入力された際に、前記端末装置の表示領域に表示させる前記エミュレーション結果を切り替えさせる切替条件情報を更に送信する
ことを特徴とする情報処理装置。
【請求項6】
請求項1から請求項5のいずれか1項に記載の情報処理装置において、
前記結果送信部は、複数の前記端末装置に前記エミュレーション結果を送信する
ことを特徴とする情報処理装置。
【請求項7】
請求項6に記載の情報処理装置において、
前記結果送信部は、前記エミュレーション結果とともに、前記アプリケーション指令情報を送信した前記端末装置を識別する端末識別情報を、複数の前記端末装置に更に送信する
ことを特徴とする情報処理装置。
【請求項8】
請求項1から請求項7のいずれか1項に記載の情報処理装置と、
前記情報処理装置とネットワークを介して通信可能に接続された端末装置と、
を備えることを特徴とする情報処理システム。
【請求項9】
端末装置と通信可能に接続されるコンピュータにおける情報処理方法であって、
前記コンピュータは、実行部と、結果送信部と、指令受信部と、を備え、
前記実行部により、複数のオペレーティングシステムをエミュレートするエミュレーションプログラムを読み出して記憶部の複数の作業領域のそれぞれに展開する実行ステップと、
前記結果送信部により、前記端末装置に少なくとも2つ以上の前記作業領域におけるエミュレーション結果を送信する結果表示ステップと、
前記指令受信部により、前記端末装置から実行するアプリケーションプログラムを指定するアプリケーション指令情報を受信する指令受信ステップと、を実施し、
前記アプリケーション指令情報は、複数の前記アプリケーションプログラムの実行を指令する旨の情報と、各前記アプリケーションプログラムを実行させる前記オペレーティングシステムを示す情報とを含み、
前記実行ステップでは、前記アプリケーション指令情報に基づいて、複数の前記アプリケーションプログラムを、当該アプリケーションプログラムを実行させる前記オペレーティングシステムに振り分け、それぞれの前記オペレーティングシステム上で、降り分けられた前記アプリケーションプログラムを実行し、かつ、各前記オペレーションシステムに振り分けられた前記アプリケーションプログラムを実行させる実行タイミングを同一にする、
ことを特徴とする情報処理方法。
【請求項10】
コンピュータにより読み込み実行される情報処理プログラムであって、
前記コンピュータを、請求項1から請求項7のいずれか1項に記載の情報処理装置として機能させる
ことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、情報処理方法、情報処理プログラムに関する。
【背景技術】
【0002】
従来、インターネット等のネットワーク上で、アプリケーションをエミュレートするシステムが知られている(例えば、特許文献1参照)。
特許文献1に記載のシステムは、サーバコンピュータ(サーバ)と、クライアントとを備えたシステムである。このシステムでは、サーバは、クライアントからアプリケーションエミュレーションセッションを開始するリクエストを受信すると、エミュレーションサーバアプリケーションがクライアントから指定されたエミュレートされたコンピュータデバイスのモデルを判定し、カスタマイズされたデバイスインターフェースを含むインターフェースを生成してクライアントに返信する。また、サーバは、クライアントから入力コマンドを受信すると、ラッパ内のアプリケーションに提供し、アプリケーションでの実行内容(メディアストリーム)をラッパからキャプチャして、カスタマイズされたデバイスインターフェースで表示可能にクライアントに送信する。
これにより、例えば第1のオペレーティングシステム(例えばiOS(登録商標))上で各種プログラムを実行するクライアントから、サーバに実行される第2のオペレーティングシステム(例えばAndroid(登録商標))の各種プログラムを遠隔操作して実行させ、その結果をクライアントで表示させることが可能となる。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2016-48561号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、例えばアプリケーションプログラムを開発する開発現場では、当該アプリケーションを実行させるオペレーティングシステム(以降、OSと略す)で実行可能なプログラムを開発する。この際、通常、現在リリースされている最新バーションのOSで実行可能なアプリケーションプログラムを開発することが多く、それ以前にリリースされた古いOSとの比較が困難となる。例えば、上記特許文献1に記載のシステムにおいて、最新バージョンのOSと、古いバーションのOSとにおけるアプリケーションプログラムの動作結果を確認するためには、サーバに最新バージョンのOS上でアプリケーションプログラムを実行させた際の動作結果をクライアントに表示させた後、サーバでエミュレートするOSを古いバージョンのOSに切り替えて、アプリケーションプログラムを再度実行させて動作結果をクライアントに表示させる必要がある。
【0005】
本発明は、複数のオペレーシングシステムにおけるエミュレーション結果を容易に確認可能な情報処理装置、情報処理システム、情報処理方法、情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の情報処理装置は、端末装置と通信可能に接続される情報処理装置であって、オペレーティングシステムをエミュレートするエミュレーションプログラムを読み出して記憶部の複数の作業領域のそれぞれに展開する実行部と、少なくとも2つ以上の前記作業領域におけるエミュレーション結果を前記端末装置に送信する結果送信部と、を備えることを特徴とする。
【発明の効果】
【0007】
本発明では、複数の作業領域においてそれぞれオペレーティングシステムが展開される。そして、これらのオペレーティングシステムにおける少なくとも2つ以上のエミュレーション結果が端末装置に送信される。これにより、端末装置において、複数のオペレーティングシステムでのエミュレーション結果を容易に確認することができる。
【図面の簡単な説明】
【0008】
図1】本発明の情報処理装置であるサーバ装置を含む情報処理システムの概略構成を示すブロック図。
図2】本実施形態のサーバ装置の概略構成を示すブロック図。
図3】本実施形態の端末装置の概略構成を示すブロック図。
図4】本実施形態の情報処理方法における端末装置の処理を示すフローチャート。
図5】本実施形態の情報処理方法におけるサーバ装置の処理を示すフローチャート。
図6】本実施形態の案内コンテンツの一例を示す図。
図7】本実施形態における同時表示形式のエミュレーション結果の表示例を示す図。
図8】本実施形態における切替表示形式のエミュレーション結果の表示例を示す図。
図9】本実施形態における複数タブ表示形式のエミュレーション結果の表示例を示す図。
図10】本実施形態におけるApr同時実行モードのエミュレーション結果の表示例を示す図。
【発明を実施するための形態】
【0009】
以下、本発明に係る一実施形態の情報処理装置について説明する。
図1は、本発明の情報処理装置であるサーバ装置10を含む情報処理システム1の概略構成を示すブロック図である。
図1に示すように、情報処理システム1は、サーバ装置10と、サーバ装置10にネットワーク(例えばインターネット等)を介して通信可能に接続される複数の端末装置20とにより構築されている。
【0010】
この情報処理システム1では、サーバ装置10は、端末装置20から送信された指令情報に基づいて、複数のオペレーティングシステムをエミュレートし、各オペレーティングシステムのエミュレーション結果を端末装置20に送信する。本実施形態では、サーバ装置10が、端末装置20から複数のオペレーティングシステムを指定する情報を受信し、当該オペレーティングシステムをエミュレートする例を説明する。
【0011】
[サーバ装置10の構成]
図2は、本実施形態のサーバ装置10の概略構成を示すブロック図である。
本実施形態のサーバ装置10は、コンピュータにより構成され、通信部11と、記憶部12と、制御部13と、等を含んで構成されている。
通信部11は、ネットワークに接続されており、ネットワークを介して端末装置20や、ネットワーク上のその他の装置と通信する。
【0012】
記憶部12は、例えばメモリ、ハードディスク等により構成された情報記録装置(副記憶装置)である。この記憶部12には、サーバ装置10を制御するためのオペレーティングシステム(Operating System:以降OSと略す)や、アプリケーションプログラム(以降、Aprと略す)、各種情報が記録される。なお、本実施形態では、サーバ装置10の記憶部12に、各エミュレーションプログラムや、各Apr、各種情報が記憶される例を示すが、これに限定されず、サーバ装置10と通信可能に接続されるデータサーバに、これらの各種プログラムや各種情報が記録されていてもよい。
ここで、以降の説明にあたり、サーバ装置10を制御するOSを主OS、エミュレートされる各OSを副OSとする。
【0013】
本実施形態におけるアプリケーションプログラム(Apr)は、OS上で所定の処理を実施させるソフトウェアであり、所定の機能を実現するためのプログラムの集合体の他、OSに組み込まれる基本ソフトウェアを含むものである。つまり、例えば表示領域内の位置を示すカーソルを移動させる旨のコマンドや、インターネットを介して情報を送受信させるコマンド等の入力キーに従って、サーバ装置10を動作させるものも、本実施形態におけるアプリケーションプログラムに含む。
また、記憶部12に記憶されるAprには、本発明における情報処理プログラムも含まれる。この情報処理プログラムは、少なくとも主OS上で実行可能な(すなわち、主OSが提供するAPIやABIを使用することで機能する)プログラムである。
【0014】
このAprには、エミュレーションプログラムが含まれる。エミュレーションプログラムは、複数種の副OS、及びバージョンが異なる副OS等に対応して複数記憶されている。これらのエミュレーションプログラムは、それぞれ、エミュレートさせる副OSに加え、ラッパープログラム、キャプチャプログラム等が含まれる。
【0015】
ラッパープログラムは、主OSと副OSとの間のデータの受け渡し又は拡張を行う。例えば、主OSがネットワークを介して受け取った指令情報等に基づく情報を、副OSにて処理可能な情報に変換又は拡張して副OSに出力し、副OSから入力された情報を主OSにて処理可能な情報に変換または拡張して出力する。
キャプチャプログラムは、エミュレートされた副OSのエミュレーション結果をキャプチャする。すなわち、キャプチャプログラムは、副OSが出力するビデオ信号(動画及び音声を含む)や、副OS上で実行されたAprが出力するビデオ信号をキャプチャする。
【0016】
また、記憶部12には、ユーザ管理情報が記憶されている。ユーザ管理情報としては、例えば、ユーザID、OS履歴、共有ユーザID等を含む。
ユーザIDは、サーバ装置10に副OSのエミュレーションを指令したユーザを識別する情報である。
OS履歴は、ユーザIDにて識別されるユーザの過去のエミュレーション実行履歴である。OS履歴としては、エミュレートされた副OS上で実行されたAprを含んでもよい。
共有ユーザIDは、ユーザIDにて識別されるユーザがサーバ装置10にてエミュレートさせている副OSを共有するユーザを識別する情報である。
なお、ユーザ管理情報として、ユーザIDにて識別されるユーザが現在サーバ装置10にエミュレートさせている副OSに関する実行OS情報や、副OS上で実行されているAprに関する実行Apr情報が記録されていてもよい。
【0017】
更に、記憶部12には、副OSをエミュレートするための作業領域12(作業領域12,12…12)が設けられる。これらの作業領域12は、例えば、主OSにより、記憶部12の副記憶装置に対して割り当てられる仮想記憶領域(仮想メモリ)により構成される。本実施形態では、各作業領域12に対してそれぞれ1つの副OSがエミュレートされる。
【0018】
制御部13は、CPU(Central Processing Unit)等の演算回路、RAM(Random Access Memory)等の記憶回路により構成される。制御部13は、記憶部12等に記憶されているプログラムをRAMに展開し、RAMに展開されたプログラムとの協働で、各種処理を実行する。そして、制御部13は、記憶部12に記憶された情報処理プログラムを読み込んで実行することで、図2に示すように、指令取得部131、ユーザ管理部132、エミュレーション実行部133、キャプチャ部134、及び結果送信部135として機能する。
【0019】
指令取得部131は、端末装置20からの指令情報を取得する。この指令情報としては、例えばエミュレートする副OSを指定するOS指令情報、当該副OS上で実行するAprを指定するアプリケーション指令情報(Apr指令情報)等が挙げられる。
ユーザ管理部132は、副OSのエミュレートを指令したユーザやエミュレーション結果を送信するユーザを管理し、ユーザ管理情報を更新する。
【0020】
エミュレーション実行部133は、記憶部12に記憶されるエミュレーションプログラムを読み出して記憶部12における複数の作業領域12に展開し、副OSをエミュレートする。各作業領域12でエミュレートされる副OSは、それぞれ異なる種別の副OSであってもよく、同種であるがバージョンが異なる副OSであってもよく、同一の副OSであってもよい。副OSの個数は、例えば端末装置20から送信される指令情報に基づいて設定される。例えば、指令情報として受信したOS指令情報に、3つの副OSをエミュレートする旨が記録されている場合、エミュレーション実行部133は、記憶部12に、作業領域12~12を確保し、各作業領域12~12のそれぞれで副OSをエミュレートする。
また、エミュレーション実行部133は、エミュレートした副OS上で、例えばユーザにより指定されたAprを実行させる。
【0021】
キャプチャ部134は、エミュレーションプログラムに含まれるキャプチャプログラムにより機能され、エミュレートされた副OSのビデオ信号(エミュレーション結果)をキャプチャする。
【0022】
結果送信部135は、キャプチャ部134によりキャプチャされたエミュレーション結果を端末装置20に送信する。この際、結果送信部135は、ユーザ管理情報に基づいて、エミュレーション結果の送信先の端末装置20を特定し、当該端末装置20にエミュレーション結果を送信する。また、結果送信部135は、エミュレーション結果を端末装置20で表示する際に、表示方法を規定する表示条件情報等を送信する。
【0023】
[端末装置20の構成]
図3は、端末装置20の概略構成を示すブロック図である。
端末装置20は、上述のように、ユーザが保有するコンピュータであり、例えばスマートフォンやタブレット端末、パーソナルコンピュータ等により構成される。この端末装置20は、例えば、図3に示すように、表示部21、入力操作部22、端末通信部23、端末記憶部24、及び端末制御部25等を含んで構成される。
表示部21は、例えば液晶ディスプレイ等により構成され、端末制御部25の制御の下、所定の画像を表示させる。
入力操作部22は、例えば表示部21と一体に設けられたタッチパネルにより構成されてもよく、キーボードやマウス等の入力装置により構成されていてもよい。この入力操作部22は、ユーザにより操作されることで、操作に応じた操作信号を端末制御部25に出力する。
端末通信部23は、サーバ装置10やネットワーク上の所定の装置と通信する。
【0024】
端末記憶部24は、例えばメモリやハードディスク等のデータ記録装置により構成されている。端末記憶部24には、端末装置20を制御するための各種プログラム等が記憶される。
【0025】
端末制御部25は、CPU(Central Processing Unit)等の演算回路、RAM(Random Access Memory)等の記憶回路により構成され、端末装置20の各部を制御する。端末制御部25は、端末記憶部24等に記憶されているプログラム(ソフトウェア)をRAMに展開し、RAMに展開されたプログラムとの協働で、各種処理を実行する。具体的には、端末制御部25は、上記プログラムを読み込み実行することで、要求取得部251、指令送信部252、結果受信部253、及び表示制御部254として機能する。
【0026】
要求取得部251は、ユーザの入力操作部22の操作により入力された操作信号に基づいて、各種情報を取得する。各種情報としては、例えば、OSやAprを指定する旨の情報、表示形式の指定する旨の情報等が挙げられる。
指令送信部252は、要求取得部251により取得された各種情報に基づいて、サーバ装置10にてエミュレートさせる副OSに関するOS指令情報や、副OS上で実行するAprに関するApr指令情報を生成し、サーバ装置10に送信する。
【0027】
結果受信部253は、サーバ装置10から送信されたエミュレーション結果を受信する。
表示制御部254は、表示部21の表示を制御する。例えば、表示制御部254は、表示部21の表示領域に、受信したエミュレーション結果を表示させる。
また、エミュレーション結果と同時に、エミュレーション結果の表示条件を指定する表示条件情報が受信された場合、表示制御部254は、当該表示条件に従って、エミュレーション結果を表示させる。例えば、複数の副OSにおけるエミュレーション結果を、表示部21の表示領域に並列配置させて表示させたり、表示されているエミュレーション結果を入力操作部22の操作に応じて切り替えたりする。
【0028】
[情報処理システムの動作]
次に、本実施形態における情報処理システム1における情報処理方法について説明する。
図4及び図5は、本実施形態における情報処理方法を示すフローチャートであり、図4は、端末装置20における処理、図5は、サーバ装置10における処理を示す。
【0029】
(エミュレーション処理における初期設定)
本実施形態の情報処理システム1では、ユーザが端末装置20を操作し、サーバ装置10にアクセスすると、サーバ装置10は、端末装置20に対してOSエミュレーションを案内する案内コンテンツを送信する。この案内コンテンツは、端末装置20において例えばブラウザ等のAprを実行することで閲覧及び操作することが可能なコンテンツである。端末装置20は、案内コンテンツを受信すると、当該案内コンテンツを表示部21に表示させ、ユーザにOSやバージョン、表示形式等の選択を促す(ステップS101)。
【0030】
図6は、案内コンテンツ30の一例を示す図である。
図6に示すように、案内コンテンツ30は、OS指定部31、表示形式指定部32、共有ユーザ指定部33、連動指定部34、及び決定ボタン35等を含む。
OS指定部31は、エミュレーションの対象となるOS(副OS)を選択する部分であり、OS選択欄31A、及びバージョン選択欄31B等を含む。
OS選択欄31Aは、OSを選択する部分であり、例えばボタンを選択(クリック)することで選択可能なOSの一覧が表示される(所謂プルダウン式)。ユーザが入力操作部22を操作することで、一覧表示されたOSのいずれかが選択されると、当該OSがエミュレーション対象として選択される。
図6に示すように、OS選択欄31Aは、OS指定部31に複数設けられており、それぞれのOS選択欄31Aで異なる種別のOSを選択することが可能となる。
【0031】
バージョン選択欄31Bは、OS選択欄31Aの近傍(例えばOS選択欄31Aの直下)に配置される。バージョン選択欄31Bは、OS選択欄31Aに対してユーザがOSを選択することで、当該選択されたOSのバージョンが表示される部分である。このバージョン選択欄31Bは、例えばリスト形式で選択可能なバージョンが表示される。そして、ユーザが入力操作部22を操作することで、一覧表示されたOSからエミュレーション対象となるバージョンを複数選択することが可能となる。
【0032】
表示形式指定部32は、エミュレーション結果の表示方法を指定する部分であり、複数の表示形式から1つを選択することが可能となる。選択可能な表示形式としては、例えば、「同時表示形式」「切替表示形式」「複数タブ形式」等が挙げられる。
ここで、同時表示形式は、複数のエミュレーション結果を同一の表示領域内に複数並べて表示させる形式である。また、切替表示形式は、入力操作部22からの所定の操作を受け付けることで、エミュレーション結果を切り替えて表示させる形式である。複数タブ形式は、複数のエミュレーション結果をそれぞれ異なる領域(異なるウィンドウ)若しくはそれぞれ異なるタブで表示させる形式である。
【0033】
共有ユーザ指定部33は、エミュレーション結果を送信するユーザIDを選択又は入力する入力欄である。
【0034】
連動指定部34は、エミュレートされた各OSを連動動作させるか否かを指定する入力欄である。例えば、本実施形態では、「連動有り」と「連動無し」とを指定可能となっており、「連動有り」の場合、さらに連動させるOSが選択可能となる。
さらに、「連動無し」の場合、「Apr単独実行モード」と、「Apr同時実行モード」とを選択可能となる。「Apr単独実行モード」は、ユーザが副OSへのAprの実行を指令した際に、即座にサーバ装置10にApr指令情報に送信され、その結果がエミュレーション結果に反映されるモードである。一方、「Apr同時実行モード」は、複数の副OSに対するAprの実行を一括でサーバ装置10に送信し、複数の副OSにてAprを同時に実行させるモードである。
【0035】
決定ボタン35は、上記OS指定部31及び表示形式指定部32に対するユーザの入力操作が完了した後に、ユーザにより選択される。この決定ボタン35が選択されることで、エミュレーション対象のOSや表示形式が決定される。
なお、案内コンテンツ30としては、例えばユーザ管理情報に基づいて、各項目の初期値が予め選択されていてもよい。この場合、サーバ装置10は、端末装置20からのアクセスがあった際にユーザIDを取得し、当該ユーザIDに対応するユーザ管理情報に記録されるOS履歴に基づいて、前回エミュレートした副OSやそのバージョン等を検出する。そして、サーバ装置10は、当該副OSやバージョン、表示形式等が選択された状態で、端末装置20に案内コンテンツ30を送信すればよい。
また、図6に示す案内コンテンツは一例であって、これに限定されるものではない。例えば、OSやバージョンの情報をテキスト入力により入力可能な画面構成としてもよく、OS指定部31、表示形式指定部32、共有ユーザ指定部33、及び連動指定部34がそれぞれ独立した案内コンテンツとして順次設定項目を指定するものであってもよい。
【0036】
ステップS101の後、ユーザにより、OS指定部31及び表示形式指定部32が入力され、決定ボタン35が選択されると、端末装置20の要求取得部251は、選択されたOS及びバージョンを含むOS指令情報や、表示形式を指定する表示指令情報を含む指令情報を生成して、ユーザIDとともに、サーバ装置10に送信する(ステップS102)。
【0037】
(OSのエミュレーション処理)
一方、サーバ装置10では、指令取得部131は、端末装置20から送信される指令情報を取得(受信)する(ステップS201)。
そして、ユーザ管理部132は、ステップS201において指令情報と共に受信したユーザIDに基づいて、対応するユーザ管理情報を抽出し、指令情報に記録された共有ユーザIDを記録する。すなわち、ユーザ管理部132は、得られた指令情報に基づいてユーザ管理情報を更新する(ステップS202)。
【0038】
次に、エミュレーション実行部133は、指令情報に含まれるOS指令情報に基づいて、エミュレーション対象の副OSに対応するエミュレーションプログラムを記憶部12から読み出して実行する(ステップS203)。これにより、記憶部12の作業領域12に指定された副OSが展開されて起動される。
例えば、OS情報として、「A」OSのバージョン1.0と、「B」OSのバージョン3.0が選択されている場合、エミュレーション実行部133は、記憶部12に作業領域12と、作業領域12とを確保する。そして、作業領域12に「A」OSを展開してエミュレートし、作業領域12に「B」OSを展開してエミュレートする。
【0039】
なお、上記は、種別が異なるOSであるが、同一種別のOSで、バージョンがそれぞれ異なるOSを各作業領域12に展開してもよい。例えば、OS情報として、「A」OSのバージョン1.0と、「A」OSのバージョン2.0が選択されている場合、エミュレーション実行部133は、作業領域12に「A」OSのバージョン1.0を展開してエミュレートし、作業領域12に「A」OSのバージョン2.0を展開してエミュレートする。
さらに、エミュレーション実行部133は、同一種別で同一バージョンのOSを複数エミュレートさせてもよい。例えば、複数の作業領域12に対してそれぞれ、「A」OSのバージョン3.0を展開してエミュレートさせてもよい。
ここで、エミュレーション実行部133は、各作業領域12において副OSを同時に起動させることが好ましい。すなわち、各作業領域12におけるエミュレーション処理は、並列処理により実施される。
【0040】
また、このステップS203では、ユーザ管理部132は、各作業領域12でエミュレートされる副OSと、ユーザとを関連付けて、ユーザ管理情報に記録する。これにより、複数の作業領域12と各ユーザとが関連付けられることになる。
【0041】
そして、キャプチャ部134は、ステップS203でエミュレートされた各副OSから出力されるビデオ信号(エミュレーション結果)をキャプチャする(ステップS204)。また、キャプチャ部134は、各副OSから出力されるエミュレーション結果の解像度を比較し、異なる解像度である場合、それぞれのエミュレーション結果の解像度を揃える画像処理を実施する(例えば、最も解像度が高いエミュレーション結果に揃える)。
【0042】
この後、結果送信部135は、ユーザ管理情報に基づいて、キャプチャされたエミュレーション結果の送信先のユーザ(指令元ユーザ及び共有ユーザ)を特定して、対応する端末装置20にエミュレーション結果を送信する(ステップS205)。
本実施形態におけるエミュレーション結果は、キャプチャ部134により所定のフレームレートで取得される動画であり、ステップS203で処理されたエミュレーション結果の画像が、ステップS204にて順次キャプチャされ、ステップS205で順次送信される。すなわち、ステップS205において、結果送信部135は、端末装置20において各エミュレーション結果をストリーミング再生可能に送信する。
【0043】
また、ステップS205では、結果送信部135は、指令情報に含まれる表示形式指定情報に基づいて、各エミュレーション結果の表示形式を指定した表示条件情報を生成し、エミュレーション結果とともに送信する。なお、表示形式指定情報に「複数タブ表示形式」が含まれる場合は、エミュレーション結果を含む結果表示コンテンツを生成して送信する。
【0044】
例えば、表示形式指定情報として、「同時表示形式」が指定されている場合、結果送信部135は、各エミュレーション結果の表示位置座標を含む表示条件情報を生成する。
すなわち、「同時表示形式」では、複数のエミュレーション結果を、同一表示領域内(例えばブラウザの表示領域内)に並列配置して表示させるため、各エミュレーション結果の前記表示領域内における表示位置座標を指定する表示条件情報を生成する。
【0045】
また、表示形式指定情報として、「切替表示形式」が指定されている場合、結果送信部135は、複数のエミュレーション結果の表示位置を示す位置座標に加え、所定の操作信号が入力された場合に、表示領域に表示するエミュレーション結果を切り替える旨の切替タイミング情報等を含む表示条件情報を生成する。
ここで、各エミュレーション結果の表示位置は、それぞれ表示領域における同一位置であることが好ましい。例えば、(x、y)座標において、「A」OSのエミュレーション結果を(x1、y1)~(x2、y2)に表示させる場合、「B」OSのエミュレーション結果も(x1、y1)~(x2、y2)に表示させるように、表示位置座標の設定、及び各エミュレーション結果の画像サイズの調整を行う。
【0046】
表示形式指定情報として、「複数タブ表示形式」が指定されている場合、結果送信部135は、エミュレーション結果を所定の表示位置に表示させた結果表示コンテンツを、各エミュレーション結果に応じて生成して端末装置20に送信する。この際、切替表示形式と同様、各エミュレーション結果の表示位置は、それぞれ表示領域における同じ位置であることが好ましい。
【0047】
これに加え、結果送信部135では、各エミュレーション結果とともに、当該エミュレーション結果を識別するエミュレーションID、エミュレーション処理を指令したユーザに関する情報、共有ユーザに関する情報をさらに送信する。エミュレーション処理を指令したユーザに関する情報、及び共有ユーザに関する情報としては、例えば、ユーザIDや、ユーザIDに関連付けられたユーザ名、端末装置20の識別情報(例えばIPアドレス等)等が例示できる。また、エミュレーションIDは、エミュレーション結果が、どの作業領域12にてエミュレートされている副OSのエミュレーション結果であるかを識別するための情報である。
さらに、結果送信部135は、表示指令情報として、連動指定部34で「Apr同時実行モード」が選択されている場合、Aprの実行タイミングを指定するApr実行アイコンを表示させる旨の情報(実行アイコン表示情報)を送信する。
【0048】
端末装置20において、結果受信部253によりステップS204で送信されたエミュレーション結果を受信すると(ステップS103)、表示制御部254は、例えばブラウザ等の表示領域において、エミュレーション結果を表示させる(ステップS104)。
ステップS104では、表示制御部254は、エミュレーション結果とともに送信された表示条件情報に基づいた表示を行う。
図7は、同時表示形式において表示されるエミュレーション結果の表示例、図8は、切替表示形式において表示されるエミュレーション結果の表示例、図9は、複数タブ表示形式において表示されるエミュレーション結果の表示例である。
【0049】
同時表示形式での表示では、表示条件情報として、各エミュレーション結果41の表示位置座標が記録されている。
この場合、表示制御部254は、例えば図7に示すように、表示位置座標に基づいて、表示領域40内に、各エミュレーション結果41を横方向(X方向)に並べた並列表示を行う。なお、図7の例に限られず、表示位置座標に基づいて縦方向(Y方向)に各エミュレーション結果41を並べた表示を行ってもよい。
【0050】
また、表示制御部254は、各エミュレーション結果41の近傍にエミュレートされている副OSに関する表示OS情報42(例えば、OS名やバージョン)を表示させることが好ましい。表示OS情報42の表示位置は、図7に示すように各エミュレーション結果41の下方であってもよく、上方であってもよい。また、各エミュレーション結果41に重畳させて表示OS情報42を表示してもよい。
さらに、各エミュレーション結果41は、それぞれ同一解像度でキャプチャされている、又はキャプチャ部134同一解像度となるように画像処理されている。したがって、各エミュレーション結果41における画像サイズ(アスペクト比)が同一となる。これにより、ユーザは、各エミュレーション結果41の違いを容易に視認可能となる。
【0051】
さらに、表示制御部254は、エミュレーションを指令したユーザに関する指令元ユーザ情報44、及び共有ユーザを示す共有ユーザ情報45を、表示領域40に表示させてもよい。
【0052】
一方、切替表示形式が選択されている場合、表示条件情報として、各エミュレーション結果41の表示位置座標に加え、切替タイミング情報が含まれている。
この場合、表示制御部254は、図8(A)に示すように、表示領域40内において、表示位置座標に基づく座標位置に、1つ(又は所定数)のエミュレーション結果41Aを表示させる。そして、ユーザの入力操作部22の操作により、予めされた操作キーが入力されると、表示制御部254は、図8(B)に示すように、エミュレーション結果41Bに表示を切り替える。この際、先に表示していたエミュレーション結果41Aと同じ位置に、次のエミュレーション結果41Bを表示させる。これにより、ユーザは、エミュレーション結果41Aを、エミュレーション結果41Bに切り替えた際に、どの位置が異なっているか等を容易に視認することが可能となる。
また、同時表示形式と同様、表示制御部254は、表示OS情報42、指令元ユーザ情報44、及び共有ユーザを示す共有ユーザ情報45を、表示領域40に表示させてもよい。
なお、図8に示す例は、PC(パーソナルコンピュータ)等に接続される比較的画面サイズが大きい表示ディスプレイにおける表示例であるが、例えば、スマートフォン等の画面サイズが小さい表示ディスプレイにおいては、エミュレーション結果41A,41Bが全画面表示されてもよい。
【0053】
さらに、複数タブ表示形式が選択されている場合、各エミュレーション結果41(41A,41B)に対応した複数の結果表示コンテンツがサーバ装置10から送信される。したがって、表示制御部254は、受信した各結果表示コンテンツをそれぞれ個別に表示する。
この際、端末装置20において、図9に示すように、表示領域40にさせる表示内容を、タブT1~T3を選択することで切り替え可能なブラウザ(所謂タブブラウザ等)を用いている場合、各結果表示コンテンツは、タブを切り替えることでそれぞれ切り替えることが可能となる。
例えば、図9(A)に示すように、タブT1が選択されている場合、表示領域40の所定位置に、エミュレーション結果41Aが配置された結果表示コンテンツが表示される。そして、ユーザの入力操作部22の操作により、例えばタブT2が選択されると、図9(B)に示すように、同一の表示位置にエミュレーション結果41Bが配置された結果表示コンテンツが表示される。この場合、タブを切り替えることで、上記切替表示形式と同様に、複数のエミュレーション結果を同じ位置で切り替えて表示させることが可能となる。
また、同時表示形式と同様、表示制御部254は、表示OS情報42、指令元ユーザ情報44、及び共有ユーザを示す共有ユーザ情報45を、表示領域40に表示させてもよい。
なお、図9の例は、タブブラウザでの表示例であるが、複数のウィンドウにそれぞれの結果表示コンテンツを表示させた上で、これらのウィンドウを重ねて表示させたり、並列させて表示させたりしてもよい。
【0054】
また、図10は、ステップS204において、実行アイコン表示情報が送信された際のApr同時実行モードにおけるエミュレーション結果の表示例である。
ステップS102で端末装置20からサーバ装置10に、Apr同時実行モードを選択する旨の表示指令情報が送信された場合、サーバ装置10は、上述したように、実行アイコン表示情報を端末装置20に送信する。
この場合、端末装置20の表示制御部254は、図10に示すように、実行アイコン46を更に表示させる。この実行アイコン46は、Aprの実行開始を指令する旨のアイコンである。すなわち、ユーザは、各エミュレーション結果41のうちの1つ以上に対して、Aprの実行を指令する操作を行った後、当該実行アイコン46を選択する。これにより、端末装置20は、ユーザにより入力された各エミュレーション結果41に対するAprの実行指令を、一括してサーバ装置10に送信する。
なお、図10に示す例は、「同時表示形式」における表示例であるが、他の表示形式においても同様に、実行アイコン46を表示させてもよい。
【0055】
(Aprのエミュレーション処理)
次に、端末装置20は、実行アイコン表示情報を受信したか否かを判定する(ステップS105)。ステップS105において、Noと判定された場合はApr単独実行モードであることを意味し、Yesと判定された場合はApr同時実行モードであることを意味する。
【0056】
ステップS105において、Noと判定された場合、端末装置20は、ユーザの入力操作部22の操作により、各エミュレーション結果41に対する操作が受け付けられたか否か(Aprの実行指令を受け付けたか否か)を判定する(ステップS106)。つまり、要求取得部251は、表示領域40に表示された各エミュレーション結果41に対して、所定のAprを実施する旨の要求情報を取得する。
一方、ステップS105において、Yesと判定された場合、端末装置20は、ユーザの入力操作部22の操作により、各エミュレーション結果41に対する操作が受け付けられ、かつ、実行アイコン46が選択されたか否かを判定する(ステップS107)。
【0057】
なお、本発明では、上述したように、Aprとして、OS(副OS)が有する基本プログラムを含む。例えば、スマートフォンやタブレット端末等を制御するOS(例えばAndroid等)では、表示画面(タッチパネル)にタッチした指を所定方向に移動させる操作(所謂フリック操作)を行うことで、表示される内容を遷移させる基本プログラムを有する。この場合、ユーザは、表示領域40に表示されたエミュレーション結果に対して、フリック操作又はマウス等の入力デバイスを用いた擬似フリック操作を行う。これにより、要求取得部251は、当該基本プログラムの実行を要求する要求情報を受け付ける。
【0058】
そして、ステップS106やステップS107においてYesと判定された場合、指令送信部252は、Aprの実行を指令するApr指令情報を含む指令情報をサーバ装置10に送信する(ステップS108)。
ステップS106においてYesと判定された場合では、1つのエミュレーション結果41(41A,41B)に対して、Aprの実行要求を行う操作が入力された場合に、指令送信部252により、即座にApr指令情報がサーバ装置10に送信される。このApr指令情報は、エミュレートされた複数の副OSのうちのいずれか1つ上でのAprの実行を指令する情報となる。
一方、ステップS107においてYesと判定された場合では、少なくとも1つのエミュレーション結果41(又はエミュレーション結果41Aやエミュレーション結果41B)に対して、Aprの実行要求を行う操作が入力され、その後、ユーザの入力操作によって実行アイコン46が選択された場合に、Apr指令情報がサーバ装置10に送信される。この場合、Aprの実行指令の対象(エミュレーション結果41)は複数であってもよい。また、1つのエミュレーション結果に対して複数のAprの実行指令が入力されていてもよい。
【0059】
また、指令送信部252は、Apr指令情報とともに、Aprの実行要求が入力されたエミュレーション結果41に対応するエミュレーションIDや、ユーザIDを送信する。
【0060】
サーバ装置10において、ステップS108で送信された指令情報を受信すると(ステップS206)、エミュレーション実行部133は、受信したApr指令情報が複数あるか否かを判定する(ステップS207)。
ステップS207でYesと判定される場合は、端末装置20において、複数のAprの実行要求が受け付けられ、実行アイコン46が選択された際に生成された(ステップS107でYesと判定された際に生成された)Apr指令情報である。この場合、エミュレーション実行部133は、ステップS108でApr指令情報とともに受信したエミュレーションIDに基づいて、Aprの実行対象となる複数の副OS(作業領域12)を実行対象領域として特定する。また、エミュレーション実行部133は、各実行対象領域で実行させるそれぞれのAprを、Apr指令情報に基づいて特定する(ステップS208)。すなわち、エミュレーション実行部133は、複数のAprを、それぞれ異なる作業領域12に展開された副OSに振り分ける。
なお、Apr同時実行モードであっても、1つのエミュレーション結果に対するApr指令情報のみを受信した場合では、ステップS207において、Noと判定される。
【0061】
ステップS207でNoと判定された場合、端末装置20において、ステップS201で受信した指令情報に含まれる連動指定が、「連動有り」であるか否かを判定する(ステップS209)。
ステップS209において、Yesと判定された場合(つまり、連動有りの場合)、ステップS201で受信した指令情報に含まれる、連動対象として選択された副OSに、ステップS206で受信したエミュレーションIDに対応する副OSが有るか否かを判定する(ステップS210)。つまり、Aprの実行対象の副OSが連動対象のOSであるか否かを判定する。
ステップS210において、Yesと判定された場合、連動対象に対応する各副OSが実行されている各作業領域12を、Aprの実行対象領域として特定し、Apr指令情報に基づいて実行させるAprを特定する(ステップS211)。
また、ステップS209又はステップS210において、Noと判定された場合(つまり、Aprの実行対象の副OSが連動対象のOSでない場合)、ステップS206で受信したエミュレーションIDに対応する1つの副OS(つまり、作業領域12)を実行対象領域として特定し、Apr指令情報に基づいて実行させるAprを特定する(ステップS212)。
【0062】
この後、エミュレーション実行部133は、ステップS208、ステップS211、及びステップS212のいずれかにおいて特定された実行対象領域でエミュレートされている副OS上で、特定されたAprを実行させる(ステップS213)。この際、エミュレーション実行部133は、Aprの実行対象領域が複数ある場合、これらの複数の実行対象領域に対して、同時にAprを実行(並列処理)させる。例えば、Apr指令情報として、エミュレートされた複数の副OSのうちのいずれか1つ上でのAprの実行を指令する情報を受信した場合で、かつ、指定された副OSが連動対象に対応する副OSである場合、連動対象となる全ての副OSに対して、指定されたAprを同時に実行させる。
また、複数の副OSのそれぞれに対して個別にAprの実行を指令するApr指令情報を受信した場合では、各副OSで対応するAprを実行させることになるが、この際も、各副OSでのAprの実行タイミングを同一にする。
そして、ステップS204と同様に、キャプチャ部134は、ステップS213でエミュレートされた各副OSから出力されるビデオ信号(エミュレーション結果)をキャプチャし(ステップS214)、ステップS205と同様、端末装置20に対して当該キャプチャしたエミュレーション結果を送信する(ステップS215)。この場合、エミュレーション処理を指令したユーザは、Apr指令情報を送信した端末装置20に対応するユーザとなる。
【0063】
端末装置20は、ステップS215で送信されたエミュレーション結果を受信すると(ステップS109)、表示制御部254は、ステップS104と同様に、受信したエミュレーション結果を表示領域40に表示させる(ステップS110)。つまり、表示領域40に表示されているエミュレーション結果を更新する。この際、指令元ユーザは、Apr指令情報を送信した端末装置20のユーザに更新される。
以上のような処理により、連動させるOSが複数存在する場合は、これらのOSのエミュレーション結果41が同時に更新され、連動させるOSの対象となっていない場合や、連動無しの場合は、1つのOSのエミュレーション結果41のみが更新される。また、Apr同時実行モードが選択されている場合では、複数のエミュレーション結果41に対して、それぞれ異なるAprを起動させた際のエミュレーション結果41が同時に更新されることになる。
また、本実施形態では、上述のように、各エミュレーション結果41が同一解像度で表示される。このため、Aprの実行を指令したエミュレーション結果41におけるAprの処理動作と、連動されるOSに対応するエミュレーション結果41におけるApr処理動作とが、同一解像度で表示されることになる。例えば、画面をフリック操作した際の画面の遷移速度が、各エミュレーション結果41において忠実に再現されることになる。
さらに、本実施形態では、表示制御部254は、サーバ装置10から送信されるエミュレーション結果をストリーミング再生により表示する。したがって、各OSにおけるAprの実行状況がリアルタイムで更新される。
以上により、ユーザは、各OSにおけるAprの実行結果だけでなく、その実行速度等も容易に比較及び確認することが可能となる。
【0064】
ステップS110の後、又はステップS106やステップS107においてNoと判定された場合、端末装置20は、エミュレーション処理を継続するか否かを判定する(ステップS111)。ステップS111において、Noと判定された場合、例えば、ユーザが入力操作部22を操作することで「セッションを閉じる」旨を選択した場合、エミュレーション結果の受信を終了させる。ステップS111においてYesと判定された場合は、ステップS105に戻る。
【0065】
また、サーバ装置10は、端末装置20から処理を終了させる旨の指令が送信された場合、当該ユーザによりエミュレートされていた副OSを終了させ、エミュレーション処理を終了し、確保していた作業領域12を開放する。なお、終了時の各OSの設定内容を、ユーザID(例えばOSのエミュレートを指令したユーザのユーザID)と関連付けて記憶部12に記憶しておいてもよい。この場合、次にユーザがOSをエミュレートする際に、前回の設定内容を読み込むことができ、前回の作業を継続することができる。
また、端末装置20から処理を終了させる旨の指令が送信された場合、当該端末装置20のユーザが、副OSのエミュレーション処理を指令したユーザである場合に、上記のように、エミュレーション処理を終了させてもよい。この場合、当該端末装置20のユーザが、副OSのエミュレーション処理を指令したユーザでない場合に、当該ユーザを共有ユーザから外す。したがって、他の共有ユーザ(処理を終了させる旨の指令を送信していないユーザ)の端末装置20では、エミュレーション結果41の表示が継続される。
【0066】
(本実施形態の作用効果)
本実施形態のサーバ装置10では、エミュレーション実行部133は、エミュレーションプログラムを読み出して複数の作業領域12に展開することで、各作業領域12のそれぞれでOSをエミュレートし、少なくとも2つ以上のエミュレーション結果を端末装置20に送信する。
このような構成では、ユーザが操作する端末装置20において、同時進行する(並列処理されている)複数のOSのエミュレーション結果をそれぞれ確認することができる。
【0067】
また、エミュレーション実行部133は、各作業領域12においてエミュレートされている各副OS上でAprを実行し、当該Aprの実行時のエミュレーション結果が端末装置20に送信される。これにより、ユーザは、各副OSにおけるAprの動作状況を容易に見比べることができる。
【0068】
この際、サーバ装置10は、指令取得部131により、端末装置20から送信されたApr指令情報を取得し、エミュレーション実行部133は、当該Apr情報にて指定されたAprを各作業領域12でエミュレートされている副OS上で実行させる。
これにより、ユーザが指定したAprの動作状況を容易に確認することができる。
例えば、ユーザが「A」OS及び「B」OSに対応したAprを開発する際、サーバ装置10は、第1の作業領域12に「A」OSをエミュレートし、第2の作業領域12に「B」OSにエミュレートする。そして、ユーザが開発した「A」OS用のAprを第1の作業領域12に、「B」OS用のAprを第2の作業領域12に導入し、各環境にてAprを実行させることができる。この場合、それぞれの作業領域12,12におけるAprのエミュレーション結果が端末装置20に送信されることになり、各OSにおいてAprを動作させた際の動作を見比べることができる。
【0069】
また、Apr同時実行モードが選択されている場合では、サーバ装置10は、指令取得部131により、複数の作業領域12にてAprを同時に実行させることができる。例えば、上記の例では、「A」OSをエミュレートする第1の作業領域12における「A」OS用のAprと、「B」OSをエミュレートする第2の作業領域12における「B」OS用のAprと、を同時に実行することができる。これにより、各OSでのAprの動作確認や処理速度を容易に見比べることができる。
さらには、複数の作業領域12に対して同一のOS(例えば「A」OSのバージョン3.0)をエミュレートさせ、それぞれの作業領域12で、それぞれ異なるAprを実行することもできる。この場合、例えば、Aprの開発等において、バージョンアップ前のAprと、バージョンアップ後のAprとの比較を行うことができる。
【0070】
さらに、本実施形態では、端末装置20において、エミュレートさせる複数の副OSにおいて、連動させる副OSを選択することが可能となる。そして、端末装置20において、これらの連動対象の副OSのうちの1つのエミュレーション結果に対して、所定のAprを実行する旨が入力され、当該Aprの実行を指定するApr指令情報がサーバ装置10にて受信されると、エミュレーション実行部133は、対象となる副OSがエミュレートされている各作業領域12にて、当該Aprを同時に実行させ、そのエミュレーション結果を端末装置20に送信する。
これにより、ユーザは、1つの副OSに対するAprの実行を指令するだけで、複数の副OSにおける当該Aprの動作状況を容易に確認することができる。例えば、「A」OSのバージョン2.0と、「A」OSのバージョン3.0とにおける、1つのAprの動作状態(例えば、バージョンアップ後のOSにおいて、Aprが起動するか、起動速度に問題ないか等)を確認することができる。
【0071】
また、キャプチャ部134は、各エミュレーション結果を同一解像度でキャプチャする、又は、各エミュレーション結果を同一の解像度となるように画像処理し、結果送信部135は、同一解像度のエミュレーション結果を端末装置20に送信する。
この場合、各副OSに対するエミュレーション結果の比較をより適正に行うことができる。例えば、上記のように、複数の副OSの1つに対してAprの実行を指令して、サーバ装置10でエミュレートされる他の副OSで当該Aprを同時に実行させる場合、各副OSでの動作状況を適正に比較することができる。
具体例として、画面をフリックして、画面を遷移させた際の各副OSでの画面の遷移速度を比べる場合を例示する。この場合、各エミュレーション結果の解像度がそれぞれ異なると、画面の遷移速度が同じであっても、解像度が高いエミュレーション結果では、滑らかに画面が遷移するのに対し、解像度が低いエミュレーション結果では、いわゆるカクツキが生じる。これに対して、上記のように解像度を同一とすることで、画面遷移の遷移速度に加え、画面遷移時の滑らかさをも、適正に比較することができる。
【0072】
本実施形態では、端末装置20から「同時表示形式」の表示形式でエミュレーション結果を表示させる旨の指令情報が送信された場合、結果送信部135は、各エミュレーション結果を、端末装置20の表示領域40に並列に配置させるための表示位置座標を含む表示条件情報を送信する。
これにより、端末装置20では、表示領域40内に、各エミュレーション結果41が並列表示されることになる。これによって、ユーザは、並列表示されたエミュレーション結果を同時に視認することができ、各エミュレーション結果の動作状況等を容易に確認することができる。
【0073】
本実施形態では、端末装置20から「切替表示形式」の表示形式でエミュレーション結果を表示させる旨の指令情報が送信された場合、結果送信部135は、各エミュレーション結果の表示位置座標と、切替タイミング情報とを含む表示条件情報を送信する。
これにより、端末装置20では、ユーザによる入力操作部22の操作によって所定の操作信号が入力されることで、表示領域40内に表示されたエミュレーション結果41Aを、他のエミュレーション結果41Bに切り替えることができる。この場合、エミュレーション結果を順次切り替えることで、ユーザは、各エミュレーション結果における相違部分を容易に確認することができる。
【0074】
また、本実施形態では、結果送信部135は、OSのエミュレーションを指令した端末装置20のみならず、共有ユーザとして登録されているユーザが保有する他の端末装置20に対しても、複数のエミュレーション結果を送信する。
これにより、複数のユーザが、エミュレーション結果を容易に確認することができる。例えば、複数のユーザでAprの開発を行う場合に、1人のユーザによるAprの開発状況を、他のユーザが容易に確認することができる。
【0075】
[変形例]
なお、本発明は、上述した実施形態に限定されるものではなく、本発明の目的を達成できる範囲で、以下に示される変形をも含むものである。
【0076】
(変形例1)
上記実施形態において、ステップS201において、受信した指令情報により各エミュレーション結果の表示形式が決定される例を示したが、これに限定されない。
すなわち、各エミュレーション結果の表示形式(同時表示形式、切替表示形式、複数タブ表示形式等)は、一連のエミュレーション処理の間で変更可能としてもよい。例えば、端末装置20は、各エミュレーション結果を表示している間、ユーザの入力操作部22の操作により表示形式を変更する旨の操作信号を受け付けることができる構成としてもよい。この場合、端末装置20は、当該操作信号を受信すると、サーバ装置10に、表示形式の変更要求を送信する。これにより、サーバ装置10は、変更要求に応じた表示形式に対応した表示条件情報を生成して、端末装置20に送信する。
【0077】
また、各共有ユーザの端末装置20のそれぞれにおいて、表示形式を異ならせてもよい。例えば、エミュレーション結果が表示される共有ユーザの端末装置20のうちの1つにおいて、上述のような変更要求を受け付けた場合、当該ユーザに対応する端末装置20に対してのみ、上記のように表示条件情報を新たに生成してもよい。
これにより、各ユーザの表示デバイス(表示部21)がそれぞれ異なる場合でも、それぞれの表示デバイスに応じたエミュレーション結果の表示を行うことができる。例えば、PCを操作するユーザの端末装置20では、同時表示形式によるエミュレーション結果41の表示を行い、スマートフォンを操作するユーザの端末装置20では、切替形式によるエミュレーション結果41の表示を行うことができる。
【0078】
(変形例2)
切替表示形式において、複数のエミュレーション結果を表示させてもよい。
例えば、5つのエミュレーション結果が送信される場合に、表示制御部254は、2つのエミュレーション結果41A,41Bを同一の表示領域に並列に表示させる。そして、入力操作部22の操作により、表示された2つのエミュレーション結果41のうちのいずれか(例えばエミュレーション結果41B)が選択され、当該選択されたエミュレーション結果41Bを切り替える旨の操作信号が入力されると、当該エミュレーション結果41Bを表示されていない他のエミュレーション結果に切り替える。
この場合、1つのエミュレーション結果と、複数の他のエミュレーション結果とを順次比較することが可能となる。
【0079】
(変形例3)
上記実施形態では、端末装置20においてユーザにより副OSが指定され、端末装置20から送信されるOS指令情報に基づいた複数の副OSを作業領域12に展開する例を示したが、これに限定されない。エミュレーション実行部133は、予め設定された幾つかの副OSを、それぞれ異なる作業領域12でエミュレートしてもよい。
Aprにおいても同様であり、エミュレーション実行部133は、予め設定された幾つかのAprを、それぞれ異なる作業領域12で実行してもよい。
【0080】
(変形例4)
上記実施形態において、サーバ装置10は、ユーザが指定した複数の副OSのそれぞれのエミュレーション結果を端末装置20に送信する例を示したが、これらの複数の副OSのうちの幾つかを端末装置20に送信してもよい。この場合、端末装置20から、エミュレートさせる複数の副OSと、そのうちのエミュレーション結果として送信させる副OSとを選択可能な構成とする。そして、端末装置20から他の副OSのエミュレーション結果の要求があった場合に、当該副OSのエミュレーション結果を送信する。
この場合、エミュレーション結果が送信されない副OSに関しても、サーバ装置10の作業領域12にてエミュレーションが起動されている。したがって、ユーザが任意のタイミングで、エミュレーション結果を送信していない副OSのエミュレーション結果の送信要求を新たにサーバ装置10に送信した場合でも、即座にそのエミュレーション結果を送信することができる。すなわち、ユーザが必要としたタイミングで、ユーザが希望するOSのエミュレーション結果を表示させることが可能となる。
【0081】
(変形例5)
上記実施形態において、サーバ装置10は、各エミュレーション結果において、共通する共通部、相違する相違部を検出する特徴検出部を備える構成としてもよい。
この場合、結果送信部135は、1つ目のエミュレーション結果に対して、他のエミュレーション結果における相違部又は共通部を強調表示させる旨の表示条件情報を生成してもよい。
【0082】
(変形例6)
上記実施形態では、案内コンテンツ30において、「連動無し」が選択された場合に、「Apr同時実行モード」と「Apr単独実行モード」とを選択可能としたが、「連動有り」が選択された場合においても、「Apr同時実行モード」と「Apr単独実行モード」とを選択可能としてもよい。この場合、連動有りとされた連動対象OS以外の副OSに対して異なるAprを実行させることができ、連動対象OSと、連動していない他の副OSでのAprの実行結果(エミュレーション結果)を同期して処理することができる。
【0083】
(変形例7)
上記実施形態では、サーバ装置10の結果送信部135が、端末装置20にて指定された表示形式に対応する表示条件情報を生成する例を示したが、これに限定されない。
例えば、サーバ装置10の結果送信部135は、表示条件情報の生成を実施せず、複数のエミュレーション結果のみを端末装置20に送信し、端末装置20の表示制御部254が、取得された複数のエミュレーション結果を表示部21に適宜配置して表示する構成としてもよい。
例えば、ユーザにより「同時表示形式」が設定されている場合には、表示制御部254が、サーバ装置10から送信された複数のエミュレーション結果41を、表示領域40内に並列配置して表示させる。
また、ユーザにより「切替表示形式」が設定されている場合には、表示制御部254が、サーバ装置10から送信された複数のエミュレーション結果41の内の1つを表示領域40内に配置して表示させる。そして、ユーザにより入力操作部22が操作されて、表示するエミュレーション結果を切り替える旨の操作信号が入力されると、表示制御部254は、他のエミュレーション結果に表示を切り替える。
この場合、表示制御部254は、例えば表示部21における表示領域のサイズに応じて、表示形式の初期値を予め設定しておいてもよい。例えば、PC等の大画面を有する表示部21を有する端末装置20においては、同時表示形式を初期値とし、スマートフォン等の表示領域が小さい表示部21を有する端末装置20においては、切替表示形式を初期値としてもよい。
【0084】
(変形例8)
上記実施形態では、サーバ装置10は、端末装置20から送信された指令情報に基づいて、複数のOSをエミュレートする構成を例示したが、これに限定されない。例えば、端末装置を、本発明の情報処理装置として機能させることもできる。
すなわち、従来、端末装置において、所定のOSをエミュレーションする場合、当該OSをエミュレートするプログラムを実行することで、当該OSのエミュレーション結果が端末装置の表示部に表示される。よって、複数のOSのエミュレーション結果を比較したい場合等では、各OSのエミュレートするプログラムを順次切り替える必要がある(例えば、Windows(登録商標)においては、「Alt」キーと「tab」キーとを同時に押下する)。この場合、各エミュレーション結果を表示するための操作が煩雑であり、また、複数のエミュレーション結果を比較することが困難である。
【0085】
これに対して、端末装置20が、エミュレーション実行部133やキャプチャ部134を備える構成とする。この場合、エミュレーション実行部133は、端末記憶部24に複数の作業領域12を確保し、それぞれの作業領域12で指定された副OSを実行してエミュレートさせる。また、キャプチャ部134は、それぞれのエミュレーション結果をキャプチャする。そして、表示制御部254(出力制御部)は、少なくとも2つ以上の前記作業領域におけるエミュレーション結果を表示領域に出力する。すなわち、キャプチャされたそれぞれのエミュレーション結果を、例えばブラウザ等の1つの表示領域40内に表示させる。
この際、エミュレーション実行部133は、上記実施形態と同様の処理を実施する。すなわち、連動対象OSが複数ある場合や、Apr同時実行モードにより複数の副OSでのAprの同時実行を要求する情報が、入力操作部22により入力された場合には、エミュレーション実行部133は、対象となる各作業領域12でのエミュレーション処理を同時に実施(並列処理)する。これにより、同時表示形式、切替表示形式、複数タブ表示形式等で、各エミュレーション結果を表示させた際に、各エミュレーション結果の動作状況を容易に比較することができる。
【0086】
その他、本発明の実施の際の具体的な構造及び手順は、本発明の目的を達成できる範囲で他の構造などに適宜変更できる。
【符号の説明】
【0087】
1…情報処理システム、10…サーバ装置(情報処理装置)、11…通信部、12…記憶部、12…作業領域、13…制御部、20…端末装置、21…表示部、22…入力操作部、23…端末通信部、24…端末記憶部、25…端末制御部、30…案内コンテンツ、31…OS指定部、31A…OS選択欄、31B…バージョン選択欄、32…表示形式指定部、33…共有ユーザ指定部、34…連動指定部、35…決定ボタン、40…表示領域、41,41A,41B…エミュレーション結果、42…表示OS情報、44…指令元ユーザ情報、45…共有ユーザ情報、46…実行アイコン、131…指令取得部、132…ユーザ管理部、133…エミュレーション実行部、134…キャプチャ部、135…結果送信部、251…要求取得部、252…指令送信部、253…結果受信部、254…表示制御部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10