(57)【要約】【課題】機器上で動作するプログラムの動作確認のための環境構築の作業負担を軽減すること。【解決手段】１以上のコンピュータを含む情報処理システムは、ネットワークを介してプログラムを受信する受信部と、機器の操作部に対する入力に対応する要求を、ネットワークを介して受信し、該入力に応じて前記プログラムが前記機器に実行させる処理を模倣する模倣部とを有し、前記模倣部は、ネットワークを介して受信される、当該模倣部の状態の変更要求に応じ、当該模倣部の状態を変更し、変更後の状態において、前記機器が実行する処理を模倣する。【選択図】図４
2015056108.tif 000002
【特許請求の範囲】
【請求項１】
１以上のコンピュータを含む情報処理システムであって、
ネットワークを介してプログラムを受信する受信部と、
機器の操作部に対する入力に対応する要求を、ネットワークを介して受信し、該入力に応じて前記プログラムが前記機器に実行させる処理を模倣する模倣部とを有し、
前記模倣部は、ネットワークを介して受信される、当該模倣部の状態の変更要求に応じ、当該模倣部の状態を変更し、変更後の状態において、前記機器が実行する処理を模倣する情報処理システム。
【請求項２】
ネットワークを介した機器構成を示す情報の受信に応じ、前記機器構成に係る機器が実行する処理を模倣する前記模倣部として当該情報処理システムを機能させる仮想マシンを起動させる起動部を有することを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記起動部は、当該情報処理システムにネットワークを介して前記プログラムを送信するクライアント装置ごとに、前記仮想マシンを起動させることを特徴とする請求項２記載の情報処理システム。
【請求項４】
前記模倣部は、前記機器の操作部の動作を模倣する第一の模倣部、前記機器に固有のハードウェアの動作を模倣する第二の模倣部、及び前記プログラムの実行環境として前記機器を機能させるソフトウェアを模倣する第三の模倣部を含み、
前記起動部は、当該情報処理システムを前記第一の模倣部として機能させる第一の仮想マシン、当該情報処理システムを前記第二の模倣部として機能させる第二の仮想マシン、及び前記当該情報処理システムを前記第三の模倣部として機能させる第三の仮想マシンを起動させる請求項２又は３記載の情報処理システム。
【請求項５】
クライアント装置と、１以上のコンピュータを含む情報処理システムであって、
前記情報処理システムは、
前記クライアント装置からネットワークを介してプログラムを受信する受信部と、
前記クライアント装置から送信される、機器の操作部に対する入力に対応する要求を、ネットワークを介して受信し、該入力に応じて前記プログラムが前記機器に実行させる処理を模倣する模倣部とを有し、
前記模倣部は、前記クライアント装置から送信される、当該模倣部の状態の変更要求がネットワークを介して受信されると、当該模倣部の状態を変更し、変更後の状態において、前記機器が実行する処理を模倣する情報処理システム。
【請求項６】
前記クライアント装置は、
前記操作部を示す画面を表示させ、当該画面に対する入力に応じた要求を、前記情報処理システムに送信する第一の送信部と、
前記模倣部の状態の変更指示を受け付けるための画面を表示させ、当該画面を介して入力された変更指示に応じた前記変更要求を、前記情報処理システムに送信する第二の送信部とを有する請求項５記載の情報処理システム。
【請求項７】
１以上のコンピュータを含む情報処理システムにおける模倣方法であって、
前記情報処理システムの受信部が、ネットワークを介してプログラムを受信する受信手順と、
前記情報処理システムの模倣部が、機器の操作部に対する入力に対応する要求を、ネットワークを介して受信し、該入力に応じて前記プログラムが前記機器に実行させる処理を模倣する模倣手順とを実行し、
前記模倣部は、ネットワークを介して受信される、当該模倣部の状態の変更要求に応じ、当該模倣部の状態を変更し、変更後の状態において、前記機器が実行する処理を模倣する模倣方法。
【請求項８】
コンピュータを、
ネットワークを介してプログラムを受信する受信部と、
機器の操作部に対する入力に対応する要求を、ネットワークを介して受信し、該入力に応じて前記プログラムが前記機器に実行させる処理を模倣する模倣部として機能させ、
前記模倣部は、ネットワークを介して受信される、当該模倣部の状態の変更要求に応じ、当該模倣部の状態を変更し、変更後の状態において、前記機器が実行する処理を模倣する模倣プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、模倣方法、及び模倣プログラムに関する。
【背景技術】
【０００２】
ＡＰＩ（Application Program Interface）が公開されたアプリケーションプラットフォームを有し、サードベンダ等によっても、アプリケーションプログラム（以下、「アプリケーション」という。）を開発可能な画像形成装置が有る。一般的に、アプリケーションの開発作業においては、アプリケーションのバグを除去するために動作確認が行われる。斯かる動作確認においては、アプリケーションの動作環境、すなわち、当該アプリケーションが動作するアプリケーションプラットフォームを備えた画像形成装置が必要とされる。
【０００３】
画像形成装置には、複数の機種が存在するところ、各機種においてアプリケーションの動作が保証されるためには、ソフトウェアベンダにおいて、複数の機種の画像形成装置が用意される必要がある。しかし、画像形成装置の中には、高価な機種も存在し、また、維持コストや故障のリスク等も発生する。したがって、画像形成装置の所有は、ソフトウェアベンダにとって、経済的に大きな負担となる。
【０００４】
そこで、画像形成装置のエミュレータ又はシミュレータ等（以下、「エミュレータ」で統一する）を作成し、当該エミュレータを各ソフトウェアベンダに利用させることが考えられる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、エミュレータは、各開発者等のＰＣ（Personal Computer）等にインストールされる必要が有る。したがって、多数の開発者が存在する場合、アプリケーションの動作確認用の環境構築の作業負担が大きくなる可能性が有る。また、画像形成装置の機種ごとに異なるエミュレータが必要となるため、斯かる観点からも、アプリケーションの動作確認用の環境構築の作業負担が大きくなる可能性が有る。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、機器上で動作するプログラムの動作確認のための環境構築の作業負担を軽減することを目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、１以上のコンピュータを含む情報処理システムは、ネットワークを介してプログラムを受信する受信部と、機器の操作部に対する入力に対応する要求を、ネットワークを介して受信し、該入力に応じて前記プログラムが前記機器に実行させる処理を模倣する模倣部とを有し、前記模倣部は、ネットワークを介して受信される、当該模倣部の状態の変更要求に応じ、当該模倣部の状態を変更し、変更後の状態において、前記機器が実行する処理を模倣する。
【発明の効果】
【０００８】
機器上で動作するプログラムの動作確認のための環境構築の作業負担を軽減することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態における開発支援システムの構成例を示す図である。
【図２】本発明の実施の形態におけるサーバ装置のハードウェア構成例を示す図である。
【図３】本発明の実施の形態におけるサーバ装置がエミュレートする複合機のハードウェア構成例を示す図である。
【図４】本発明の実施の形態におけるサーバ装置及びクライアント装置の機能構成例を示す図である。
【図５】仮想ＭＦＰの生成処理の処理手順の一例を説明するためのシーケンス図である。
【図６】仮想ＭＦＰへのアプリケーションのインストール処理の処理手順の一例を説明するためのシーケンス図である。
【図７】仮想ＭＦＰにインストールされたアプリケーションの動作確認において実行される処理手順の一例を説明するためのシーケンス図である。
【図８】仮想ＭＦＰにインストールされたアプリケーションの動作確認において仮想エンジン部の状態を任意に変更させる場合に実行される処理手順の一例を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。本発明の実施の形態における開発支援システムの構成例を示す図である。図１に示される開発支援システム１において、サーバ装置１０と、１以上のクライアント装置２０とは、インターネット又はＬＡＮ（Local Area Network）等のネットワークを介して接続されている。
【００１１】
サーバ装置１０は、複合機（ＭＦＰ：Multifunction Peripheral）のハードウェアや、複合機のソフトウェア等の動作をエミュレート（模倣）するコンピュータである。なお、本実施の形態において、エミュレート又は模倣は、シミュレートの意味も包含するものとする。サーバ装置１０は、斯かるエミュレートの機能を、ネットワークを介して提供する。ネットワークを介した当該機能の提供は、例えば、クラウドサービス、Ｗｅｂサービス、又は他の形態のサービスとして実現されてもよい。
【００１２】
クライアント装置２０は、例えば、複合機にインストールされるアプリケーションプログラム（以下、「アプリケーション」という。）の開発者が利用する、ＰＣ（Personal Computer）等のコンピュータである。開発者は、クライアント装置２０を利用して作成したアプリケーションについて、サーバ装置１０を利用して動作確認をすることができる。
【００１３】
図２は、本発明の実施の形態におけるサーバ装置のハードウェア構成例を示す図である。図２のサーバ装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１４】
サーバ装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１５】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってサーバ装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１６】
なお、サーバ装置１０は、例えば、図２に示される複数のコンピュータによって構成されてもよい。
【００１７】
図３は、本発明の実施の形態におけるサーバ装置がエミュレートする複合機のハードウェア構成例を示す図である。図３において、複合機３０は、コントローラ３１、スキャナ３２、プリンタ３３、モデム３４、ネットワークインタフェース３６、及びＳＤカードスロット３７等のハードウェアを有する。
【００１８】
コントローラ３１は、ＣＰＵ３１１、ＲＡＭ３１２、ＲＯＭ３１３、ＨＤＤ３１４、及びＮＶＲＡＭ３１５等を有する。ＲＯＭ３１３には、各種のプログラムやプログラムによって利用されるデータ等が記憶されている。ＲＡＭ３１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ３１１は、ＲＡＭ３１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ３１４には、プログラムやプログラムが利用する各種のデータ等が記憶される。ＮＶＲＡＭ３１５には、各種の設定情報等が記憶される。
【００１９】
スキャナ３２は、原稿より画像データを読み取るためのハードウェア（画像読取手段）である。プリンタ３３は、印刷データを印刷用紙に印刷するためのハードウェア（印刷手段）である。モデム３４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。ネットワークインタフェース３６は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。ＳＤカードスロット３７は、ＳＤカード８０に記憶されたプログラムを読み取るために利用される。すなわち、複合機３０では、ＲＯＭ３１３に記憶されたプログラムだけでなく、ＳＤカード８０に記憶されたプログラムもＲＡＭ３１２にロードされ、実行されうる。なお、他の記録媒体（例えば、ＣＤ−ＲＯＭ又はＵＳＢ（Universal Serial Bus）メモリ等）によってＳＤカード８０が代替されてもよい。すなわち、ＳＤカード８０の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、ＳＤカードスロット３７は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【００２０】
複合機３０には、また、情報処理端末４０が通信可能に接続される。複合機３０と情報処理端末４０との通信は、例えば、ＵＳＢ（Universal Serial Bus）、Ｂｌｕｅｔｏｏｔｈ（登録商標）若しくは赤外線通信等の近距離無線通信、又はＬＡＮ（有線又は無線の別は問わない）等のネットワークを介して行われる。情報処理端末４０は、例えば、スマートフォンやタブレット型端末等、単独で完結した情報処理を実行可能な電子機器である。本実施の形態において、情報処理端末４０は、複合機３０の操作パネル（操作部）として機能する。情報処理端末４０は、例えば、複合機３０の所定の位置に固定されて設置される。したがって、情報処理端末４０及び複合機３０とは、一台の装置として把握されてもよい。または、情報処理端末４０は、複合機３０から取り外し可能（分離可能）であってもよい。
【００２１】
図４は、本発明の実施の形態におけるサーバ装置及びクライアント装置の機能構成例を示す図である。図４において、サーバ装置１０は、ユーザ認証部１１、マシン管理部１２、環境構築部１３、パネルＵＩ管理部１４、エンジンＵＩ管理部１５、デバイスＵＩ管理部１６、仮想ＭＦＰ１７、及び仮想デバイス部１８等を有する。これら各部は、サーバ装置１０にインストールされたプログラムが、ＣＰＵ１０４に実行させる処理により実現される。
【００２２】
ユーザ認証部１１は、サーバ装置１０にログインするユーザの認証を行い、サーバ装置１０への各ログインユーザの情報を管理する。ユーザ認証部１１は、ログインユーザが利用可能なリソース量や、ログインユーザに対してエミュレート可能な複合機３０の機器構成をも管理する。機器構成は、例えば、複合機３０の機種、複合機３０にインストールされているソフトウェアの一覧、各ソフトウェアのバージョン、複合機３０に増設されているデバイス情報等を含む。
【００２３】
マシン管理部１２は、サーバ装置１０において構築又は生成される仮想ＭＦＰ１７を管理する。仮想ＭＦＰ１７は、例えば、複合機３０の動作をエミュレート（模倣）する仮想的な複合機３０である。クライアント装置２０からの要求に応じて、複数の仮想ＭＦＰ１７が生成されうる。基本的に、１つのクライアント装置２０に対して、１つの仮想ＭＦＰ１７が対応する。そうすることにより、各開発者は、相互に干渉することなく、アプリケーションの動作確認等を行うことができる。
【００２４】
一つの仮想ＭＦＰ１７は、仮想パネル部１７１、仮想コントローラ部１７２、及び仮想エンジン部１７３等を含む。換言すれば、仮想ＭＦＰ１７とは、仮想パネル部１７１、仮想コントローラ部１７２、及び仮想エンジン部１７３の集合に対する概念である。
【００２５】
仮想パネル部１７１は、複合機３０の操作部（すなわち、情報処理端末４０）の動作をエミュレートする。複合機３０において、アプリケーションは、情報処理端末４０にインストールされる。したがって、動作確認の対象とされるアプリケーションは、仮想パネル部１７１上にインストールされる。
【００２６】
仮想コントローラ部１７２は、複合機３０のコントローラ３１の動作をエミュレートする。コントローラ３１の動作とは、厳密には、コントローラ３１上において動作するソフトウェア群の動作をいう。当該ソフトウェア群には、複合機３０をアプリケーションの実行環境として機能させるソフトウェアが含まれる。例えば、当該ソフトウェア群には、情報処理端末４０にインストールされるアプリケーションに対して提供されるＡＰＩ（Application Program Interface）や、当該ＡＰＩの呼び出しに応じて複合機３０を制御する制御部等が含まれる。
【００２７】
仮想エンジン部１７３は、複合機３０に固有のハードウェア（以下、「エンジン部分」という。）の動作をエミュレートする。例えば、スキャナ３２、プリンタ３３、及びモデム３４等は、エンジン部分に含まれる。
【００２８】
なお、本実施の形態において、仮想パネル部１７１、仮想コントローラ部１７２、及び仮想エンジン部１７３は、それぞれ一つの仮想マシン上において実現される。すなわち、一つの仮想ＭＦＰ１７は、少なくとも三つの仮想マシンによって実現される。ここでいう「仮想マシン」とは、仮想化技術によって実現される仮想的なコンピュータをいう。仮想ＭＦＰ１７が、仮想マシンによって実現されることにより、ログインユーザごとに異なる仮想ＭＦＰ１７の構築を容易化することができる。なお、一つの仮想ＭＦＰ１７は、一つの仮想マシンによって実現されてもよい。
【００２９】
環境構築部１３は、ログインユーザから要求された機器構成に対応する仮想ＭＦＰ１７を、サーバ装置１０上に生成し、起動させる。
【００３０】
パネルＵＩ管理部１４は、クライアント装置２０が有するパネルＵＩ部２２に対するサーバとして機能する。具体的には、パネルＵＩ管理部１４は、ログインユーザから要求された機器構成に対応する操作部（すなわち、情報処理端末４０）を表現する画面を表示させる画面データをパネルＵＩ部２２に提供したり、当該画面の表示内容の変化をパネルＵＩ部２２に通知したり、パネルＵＩ部２２からの要求を、仮想パネル部１７１に通知したりする。また、パネルＵＩ管理部１４は、仮想パネル部１７１にインストールされるアプリケーションを、クライアント装置２０から受信する。なお、パネルＵＩ管理部１４は、クライアント装置２０から直接操作させたくない仮想パネル部１７１の機能を隠蔽する役割を有してもよい。
【００３１】
エンジンＵＩ管理部１５は、クライアント装置２０が有するエンジンＵＩ部２３に対するサーバとして機能する。具体的には、エンジンＵＩ管理部１５は、仮想エンジン部１７３の構成又は状態（設定値等を含む。）等を示す情報を、エンジンＵＩ部２３に通知したり、エンジンＵＩ部２３からの仮想エンジン部１７３の状態の変更要求に応じた処理を実行したりする。なお、エンジンＵＩ管理部１５は、クライアント装置２０から直接操作させたくない仮想エンジン部１７３の機能を隠蔽する役割を有してもよい。
【００３２】
仮想デバイス部１８は、複合機３０にセット又は接続等されるデバイスをエミュレートする。斯かるデバイスの一例として、ＳＤカード８０、非図示のＩＣカード、ＵＳＢメモリ等が挙げられる。一つの仮想デバイス部１８は、一つの仮想マシンによって実現される。
【００３３】
デバイスＵＩ管理部１６は、クライアント装置２０が有するデバイスＵＩ部２４に対するサーバとして機能する。具体的には、デバイスＵＩ管理部１６は、デバイスＵＩ部２４からの要求に応じた操作を、仮想デバイス部１８に対して行う。
【００３４】
一方、各クライアント装置２０は、クライアント管理部２１、パネルＵＩ部２２、エンジンＵＩ部２３、及びデバイスＵＩ部２４等を有する。これら各部は、クライアント装置２０にインストールされたプログラムが、クライアント装置２０のＣＰＵに実行させる処理により実現される。
【００３５】
クライアント管理部２１は、仮想ＭＦＰ１７を操作するための環境をクライアント装置２０上に構築するための処理を実行する。例えば、クライアント管理部２１は、ログイン画面を表示させ、ログイン画面を介して入力されたユーザ情報（ユーザ名及びパスワード等）の認証要求を、サーバ装置１０のユーザ認証部１１に送信する。認証に成功した場合、クライアント管理部２１は、ユーザが所望する機器構成に対応した仮想ＭＦＰ１７の生成要求を、サーバ装置１０に送信する。
【００３６】
パネルＵＩ部２２は、情報処理端末４０の外観を示す画面（すなわち、仮想的な情報処理端末４０）を、クライアント装置２０に表示させる。パネルＵＩ部２２は、当該画面（以下、「パネル操作画面」という。）に対するユーザの操作を示す情報（当該画面に対する入力に応じた要求）を、パネルＵＩ管理部１４に送信する。
【００３７】
エンジンＵＩ部２３は、仮想エンジン部１７３を、ユーザに操作させるための画面（以下、「エンジン操作画面」という。）を、クライアント装置２０に表示させる。エンジンＵＩ部２３は、エンジン操作画面を介して、仮想エンジン部１７３の状態の変更指示を受け付ける。すなわち、ユーザは、エンジン操作画面を介して、仮想エンジン部１７３の状態を任意のタイミングで変更することができる。例えば、ユーザは、仮想エンジン部１７３を、ジャムの発生状態、トナー切れの状態、用紙切れの状態等に移行させるができる。そうすることにより、ユーザは、複合機３０の様々な状態におけるアプリケーションの動作確認を、仮想ＭＦＰ１７を用いて、擬似的又は仮想的に実行することができる。
【００３８】
デバイスＵＩ部２４は、仮想デバイス部１８を、ユーザに操作させるための画面（以下、「デバイス操作画面」という。）を、クライアント装置２０に表示させる。
【００３９】
なお、パネル操作画面、エンジン操作画面、及びデバイス操作画面は、例えば、マルチウィンドウシステム上においては、それぞれ一つのウィンドウとして表示されてもよい。各ウィンドウは、相互に重畳されて表示されてもよいし、重畳しないように配列されて表示されてもよい。
【００４０】
以下、開発支援システム１において実行される処理手順について説明する。図５は、仮想ＭＦＰの生成処理の処理手順の一例を説明するためのシーケンス図である。仮想マシンの生成処理とは、或るユーザにとって専用の仮想的な動作確認環境を構築するための処理である。以降の説明において、クライアント装置２０を利用するユーザを、「ユーザＡ」という。
【００４１】
ステップＳ１０１において、クライアント管理部２１は、サーバ装置１０へのログイン画面を介してユーザＡによって入力されたユーザ名及びパスワード等を含む認証要求を、サーバ装置１０のユーザ認証部１１に送信する。なお、ユーザ名及びパスワードは、例えば、同一の企業ユーザに属する各開発者等、複数の開発者の間で、共通の値であってもよい。
【００４２】
ユーザ認証部１１は、認証要求に含まれているユーザ名及びパスワードが、予め登録されている値に一致するか否かを判定する。ユーザ名及びパスワードが予め登録されている値に一致する場合、ユーザ認証部１１は、認証要求元のユーザに関して、ログインの許否を判定する。例えば、当該ユーザが属する企業ユーザに関して、既にログインしているユーザの数が、ライセンス数（同時に利用可能な数）に到達していなければ、ログインが許可される。ログインが許可された場合、ユーザ認証部１１は、ログインの許可を示す応答を、クライアント管理部２１に返信する（Ｓ１０２）。なお、ログインが許可された場合、当該クライアント装置２０に関して、例えば、一般的なセッション管理が行われる。したがって、サーバ装置１０は、各クライアント装置２０を区別することができる。
【００４３】
クライアント管理部２１は、ログインの許可を示す応答を受信すると、利用可能な機器構成の一覧の取得要求を、マシン管理部１２に送信する（Ｓ１０３）。例えば、サーバ装置１０の補助記憶装置１０２には、企業ユーザごとに、利用可能な機器構成の一覧が記憶されている。利用可能な機器構成は、例えば、サーバ装置１０が提供するサービスの利用契約時において、企業ユーザから指定されてもよい。利用可能な機器構成には、或る複合機３０のユーザにとって固有の、特注の機器構成が含まれてもよい。利用可能の機器構成に応じて、サーバ装置１０が提供するサービスの利用に対する課金額が異なるようにしてもよい。マシン管理部１２は、ユーザＡが属する企業ユーザに対して記憶されている、利用可能な機器構成の一覧を、クライアント管理部２１に返信する（Ｓ１０４）。
【００４４】
クライアント管理部２１は、受信された機器構成の一覧を表示させる。ユーザＡによって、当該一覧の中から所望の機器構成（以下、「対象機器構成」という。）が選択されると、クライアント管理部２１は、対象機器構成を示す情報（以下、「対象機器構成情報」という。）を含む、仮想ＭＦＰ１７の生成要求を、マシン管理部１２に送信する（Ｓ１０５）。マシン管理部１２は、当該生成要求を、環境構築部１３に転送する（Ｓ１０６）。
【００４５】
続いて、環境構築部１３は、対象機器構成情報を指定して、パネルＵＩ管理部１４に対して、仮想パネル部１７１の生成を要求する（Ｓ１０７）。パネルＵＩ管理部１４は、対象機器構成情報に対応する仮想パネル部１７１としてサーバ装置１０を機能させる仮想マシンを生成し（Ｓ１０８）、当該仮想マシンを起動させる（Ｓ１０９）。なお、対象機器構成情報に対応する仮想パネル部１７１としてサーバ装置１０を機能させる仮想マシンの生成は、例えば、対象機器構成情報に基づいて特定される情報処理端末４０に対応する、仮想マシンのイメージファイルに基づいて行われる。
【００４６】
続いて、環境構築部１３は、対象機器構成情報を指定して、エンジンＵＩ管理部１５に対して、仮想エンジン部１７３の生成を要求する（Ｓ１１０）。エンジンＵＩ管理部１５は、対象機器構成情報に対応する仮想エンジン部１７３としてサーバ装置１０を機能させる仮想マシンを生成し（Ｓ１１１）、当該仮想マシンを起動させる（Ｓ１１２）。なお、対象機器構成情報に対応する仮想エンジン部１７３としてサーバ装置１０を機能させる仮想マシンの生成は、例えば、対象機器構成情報に基づいて特定される複合機３０のエンジン部分に対応する、仮想マシンのイメージファイルに基づいて行われる。
【００４７】
続いて、環境構築部１３は、対象機器構成情報に対応する仮想コントローラ部１７２としてサーバ装置１０を機能させる仮想マシンを生成し（Ｓ１１３）、当該仮想マシンを起動させる（Ｓ１１４）。なお、対象機器構成情報に対応する仮想コントローラ部１７２としサーバ装置１０を機能させる仮想マシンの生成は、例えば、対象機器構成情報に基づいて特定される複合機３０のコントローラ３１上で動作するソフトウェアに対応する、仮想マシンのイメージファイルに基づいて行われる。なお、仮想コントローラ部１７２の起動時において、環境構築部１３は、既に起動されている、仮想パネル部１７１及び仮想エンジン部１７３に関する情報を、仮想コントローラ部１７２に通知する。
【００４８】
仮想コントローラ部１７２は、通知された情報に基づいて、仮想エンジン部１７３及び仮想パネル部１７１のそれぞれとの通信用の接続を確立する（Ｓ１１５、Ｓ１１６）。その結果、仮想コントローラ部１７２と仮想エンジン部１７３、及び仮想コントローラ部１７２と仮想パネル部１７１とは、相互作用が可能となる。また、相互作用が可能な、一組の仮想パネル部１７１、仮想エンジン部１７３、及び仮想コントローラ部１７２が起動されることで、ユーザＡ用の仮想ＭＦＰ１７が起動されたことになる。
【００４９】
続いて、パネルＵＩ管理部１４は、対象機器構成情報に対応した情報処理端末４０の表示状態を示す情報（以下、「パネル情報」という。）を、クライアント管理部２１に送信する（Ｓ１１７）。ここで送信されるパネル情報は、対象機器構成情報に対応した複合機３０の起動後における、情報処理端末４０の初期状態の外観を示す情報である。クライアント管理部２１は、当該パネル情報を、パネルＵＩ部２２に送信する（Ｓ１１８）、パネルＵＩ部２２は、当該パネル情報に基づいて、パネル操作画面を表示させる。
【００５０】
続いて、エンジンＵＩ管理部１５は、対象機器構成情報に対応したエンジン部分に関する情報（以下、「エンジン情報」という。）を、クライアント管理部２１に送信する（Ｓ１１９）。クライアント管理部２１は、当該エンジン情報を、エンジンＵＩ部２３に送信する（Ｓ１２０）、エンジンＵＩ部２３は、当該エンジン情報に基づいて、エンジン操作画面を表示させる。例えば、エンジン情報に応じて、エンジン操作画面において入力可能な操作が異なってもよい。
【００５１】
一方、デバイスＵＩ部２４は、デバイス操作画面をクライアント装置２０に表示させる。デバイス操作画面は、各種のデバイス（ＳＤカード８０、ＩＣカード、ＵＳＢメモリ等）に関する操作（例えば、ＳＤカードスロット３７への挿入、ＩＣカードの挿入、ＵＳＢメモリの接続等）に関する指示を受け付けることができる。
【００５２】
例えば、ＳＤカード８０について、ＳＤカードスロット３７への挿入指示がデバイス操作画面を介して入力されると（Ｓ１２１）、デバイスＵＩ部２４は、クライアント管理部２１を介して、デバイスＵＩ管理部１６にデバイスの接続通知を送信する（Ｓ１２２、Ｓ１２３）。ここでのデバイスの接続通知は、ＳＤカード８０の挿入の通知である。なお、ＳＤカード８０の挿入指示において、例えば、クライアント装置２０の補助記憶装置における所定のフォルダが、仮想的なＳＤカード８０として指定される。すなわち、当該フォルダに格納されているファイルが、仮想的なＳＤカード８０に格納されているファイルとして扱われる。
【００５３】
デバイスＵＩ管理部１６は、仮想コントローラ部１７２に対して、擬似的又は仮想的なデバイス接続処理（例えば、ＳＤカード８０を、／ｍｎｔ／ｓｄ１又は／ｍｎｔ／ｓｄ２にマウントする等）を行う（Ｓ１２４）。その結果、仮想ＭＦＰ１７は、ＳＤカード８０がＳＤカードスロット３７に挿入された状態を、擬似的又は仮想的に実現することができる。
【００５４】
なお、仮想ＭＦＰ１７を構成する各仮想マシンは、クライアント管理部２１からの要求により、シャットダウンする。または、ユーザＡのログアウトに応じて、仮想ＭＦＰ１７を構成する各仮想マシンがシャットダウンするようにしてもよい。
【００５５】
また、例えば、ユーザＡによって選択された機器構成に対応する複合機３０の実機が、ユーザＡのオフィス等において利用可能である場合、当該実機の存在が、ユーザＡに通知されるようにしてもよい。具体的には、各ユーザ、又は管理者等の特定のユーザによって、予め、マシン管理部１２に対して、当該企業ユーザにおいて利用可能な実機の機器構成を示す情報が登録される。マシン管理部１２は、ステップＳ１０５における仮想ＭＦＰ１７の生成要求の受信に応じ、当該生成要求に含まれている対象機器構成情報に合致する、実機の機器構成を示す情報の有無を検索する。ここで、検索対象とされる実機の機器構成を示す情報は、ログインユーザが属する企業ユーザに対して登録されている情報に限定される。対象機器構成情報に合致する情報が有る場合、マシン管理部１２は、クライアント管理部２１に対して、当該情報に係る実機の存在を示す情報を返信する。クライアント管理部２１は、当該情報を示す画面を表示させる。そうすることで、ユーザに対して、所望の機器構成に対応する実機が存在することを認識させることができる。ユーザは、斯かる認識に基づいて、実機を利用してアプリケーションの動作確認を行うこともできる。
【００５６】
なお、ユーザが、実機ではなく、やはり、仮想ＭＦＰ１７を利用したい場合のことを考慮して、その旨の要求を受け付けることが可能な画面が、クライアント管理部２１によって表示されてもよい。改めて仮想ＭＦＰ１７の利用がユーザによって要求された場合、クライアント管理部２１は、ステップＳ１０５を再実行する。この場合、所望の機器構成に対応する実機の存在を示す情報がマシン管理部１２から再び返信されないようにするために、対応機器構成情報に対応する実機の検索は不要であることを示す情報が、再実行されるステップＳ１０５において、仮想ＭＦＰ１７の生成要求に含まれるのが望ましい。
【００５７】
続いて、クライアント装置２０において作成されたアプリケーションを、仮想ＭＦＰ１７にインストールするための処理について説明する。
【００５８】
図６は、仮想ＭＦＰへのアプリケーションのインストール処理の処理手順の一例を説明するためのシーケンス図である。
【００５９】
仮想ＭＦＰ１７へのアプリケーションのインストールは、実際の複合機３０に対するアプリケーションと同様の操作感によって行われる。例えば、複合機３０には、ＳＤカード８０からアプリケーションをインストールすることができる。したがって、開発支援システム１においても、擬似的又は仮想的なＳＤカード８０から、仮想ＭＦＰに対してアプリケーションをインストールすることができる。具体的には、ユーザＡによって作成されたアプリケーションが格納されたフォルダを仮想的なＳＤカード８０として、図５のステップＳ１２１〜Ｓ１２４が実行された後、図６の処理が実行されることにより、仮想ＭＦＰ１７に対して、アプリケーションをインストールすることができる。
【００６０】
パネルＵＩ部２２が表示させているパネル操作画面を介して、ユーザＡによって、ＳＤカード８０からのアプリケーションのインストール指示が入力されると、パネルＵＩ部２２は、ＳＤカード８０にマッピングされているフォルダに格納されているアプリケーションを含むインストール要求を、クライアント管理部２１を介して、パネルＵＩ管理部１４に送信する（Ｓ２０１、Ｓ２０２）。パネルＵＩ管理部１４は、当該インストール要求を、仮想パネル部１７１に転送する（Ｓ２０３）。仮想パネル部１７１は、当該インストール要求に含まれているアプリケーションを、仮想パネル部１７１上にインストールする（Ｓ２０４）。その結果、情報処理端末４０へのアプリケーションのインストールが、擬似的又は仮想的に実行されたことになる。
【００６１】
続いて、インストール結果を示す情報を表示した状態の情報処理端末４０を示すパネル情報が、パネルＵＩ管理部１４及びクライアント管理部２１を介して、パネルＵＩ部２２に返信される（Ｓ２０５〜Ｓ２０７）。パネルＵＩ管理部１４は、当該パネル情報に基づいて、パネル操作画面を更新する。その結果、情報処理端末４０にインストール結果が表示されている状態を示す画像がクライアント装置２０に表示される。
【００６２】
続いて、仮想ＭＦＰ１７にインストールされたアプリケーションの動作確認において実行される処理について説明する。
【００６３】
図７は、仮想ＭＦＰにインストールされたアプリケーションの動作確認において実行される処理手順の一例を説明するためのシーケンス図である。図７において動作確認の対象とされるアプリケーションを、「アプリＡ」という。
【００６４】
パネル操作画面がユーザによって操作されるたびに、ステップＳ３０１〜Ｓ３０３が実行される。すなわち、パネル操作画面に対するユーザによる、仮想的な情報処理端末４０の操作に対応する要求が、仮想パネル部１７１に送信される。また、操作に応じて変化する情報処理端末４０の表示状態を示すパネル情報が、仮想パネル部１７１から返信される（Ｓ３０４〜Ｓ３０６）。このようにして、パネル操作画面の表示状態と、仮想パネル部１７１の状態とは同期がとられる。なお、パネルＵＩ部２２と仮想パネル部１７１との表示状態の同期は、ＶＮＣ（Virtual Network Computing）等の技術が利用されてもよい。
【００６５】
例えば、パネル操作画面において、アプリＡの利用指示が入力されると、ステップＳ３０１〜Ｓ３０６が実行され、アプリＡの操作画面が、パネル操作画面内（パネル操作画面において、情報処理端末４０のタッチパネルに対応する領域内）に表示される。ユーザＡが、当該操作画面を介して、アプリＡに対する設定情報の設定を行うたびに、ステップＳ３０１〜Ｓ３０６が実行され、アプリＡに対する設定情報は、仮想パネル部１７１におけるアプリＡに反映される。
【００６６】
ユーザＡが、当該操作画面を介して、アプリＡの実行指示を入力すると、当該実行指示は、クライアント管理部２１及びパネルＵＩ管理部１４を介して仮想パネル部１７１におけるアプリＡに通知される（Ｓ３１１〜Ｓ３１３）。アプリＡは、当該通知に応じて、設定情報に従った処理を仮想パネル部１７１に実行させる。仮想パネル部１７１は、アプリＡが実行させる処理の過程において、仮想コントローラ部１７２によって提供されるＡＰＩを呼び出す（Ｓ３１４）。例えば、印刷要求又はスキャン要求等に対応したＡＰＩが呼び出される。
【００６７】
仮想コントローラ部１７２は、呼び出されたＡＰＩに対応する処理を実行する。当該処理の過程において、仮想エンジン部１７３を制御する必要が生じると、仮想コントローラ部１７２は、仮想エンジン部１７３に対して制御命令を送信する（Ｓ３１５）。仮想エンジン部１７３は、制御命令に応じた処理を実行し、実行結果を仮想コントローラ部１７２に返信する（Ｓ３１６）。例えば、仮想エンジン部１７３は、印刷又はスキャン等の実行をエミュレートする。
【００６８】
続いて、仮想コントローラ部１７２は、呼び出されたＡＰＩに対する応答を、仮想パネル部１７１に返信する（Ｓ３１７）。仮想パネル部１７１は、当該応答に応じて、仮想的な情報処理端末４０の表示状態を変更し、変更後の表示状態を示すパネル情報を、パネル管理部に返信する（Ｓ３１８）。当該パネル情報は、クライアント管理部２１を介してパネルＵＩ部２２に返信される（Ｓ３１９、Ｓ３２０）。パネルＵＩ部２２は、パネル情報に基づいて、パネル操作画面の表示状態を変化させる。
【００６９】
このように、ユーザは、ネットワークを介した仮想ＭＦＰ１７上において、アプリケーションの動作確認を行うことができる。
【００７０】
続いて、仮想ＭＦＰ１７にインストールされたアプリケーションの動作確認において仮想エンジン部１７３の状態を任意に変更させる場合に実行される処理について説明する。
【００７１】
図８は、仮想ＭＦＰにインストールされたアプリケーションの動作確認において仮想エンジン部の状態を任意に変更させる場合に実行される処理手順の一例を説明するためのシーケンス図である。
【００７２】
例えば、ユーザＡが、複合機３０がトナー切れの状態におけるアプリＡの動作確認を行いたい場合、ユーザＡは、エンジン操作画面を介して、仮想エンジン部１７３をトナー切れ状態に移行させるための操作指示を入力する。当該操作指示に応じ、エンジンＵＩ部２３は、トナー切れ状態への移行要求を、クライアント管理部２１を介して、エンジンＵＩ管理部１５に送信する（Ｓ４０１、Ｓ４０２）。続いて、エンジンＵＩ管理部１５は、仮想エンジン部１７３に対して、トナー切れ状態への移行要求を送信する（Ｓ４０３）。仮想エンジン部１７３は、当該要求に応じ、擬似的又は仮想的にトナー切れ状態となる。擬似的又は仮想的なトナー切れ状態は、例えば、仮想エンジン部１７３が有する所定のパラメータの値を変更することにより行われてもよい。例えば、トナーの残量を示すパラメータの値が「０（ゼロ）」とされることにより、擬似的又は仮想的なトナー切れ状態が実現されてもよい。
【００７３】
その後、ユーザＡによって、アプリＡに対する操作が行われると、図７のステップＳ３０１〜Ｓ３２０と同様の処理手順が実行される。ここで、アプリＡが、印刷等、トナーを利用するジョブを複合機３０に実行させるアプリケーションである場合、仮想エンジン部１７３は、ステップＳ３１５に対する制御命令（例えば、印刷命令）に対して、エラーを示す応答を、仮想コントローラ部１７２に返信する（Ｓ３１６）。当該応答には、エラーの原因であるトナー切れを示す情報が含まれてもよい。続く、ステップＳ３１７〜Ｓ３２０の実行に応じて、パネル操作画面には、エラーの発生（例えば、トナー切れの発生）を示す画面が表示される。
【００７４】
続いて、ユーザＡが、トナー切れの状態を解除したい場合、ユーザＡは、エンジン操作画面を介して、トナーの交換等による、トナーの充填指示を入力する。当該操作指示に応じ、エンジンＵＩ部２３は、トナーの充填要求を、クライアント管理部２１を介して、エンジンＵＩ管理部１５に送信する（Ｓ４１１、Ｓ４１２）。続いて、エンジンＵＩ管理部１５は、仮想エンジン部１７３に対して、トナーの充填要求を送信する（Ｓ４０３）。仮想エンジン部１７３は、当該要求に応じ、擬似的又は仮想的にトナーを充填する。例えば、トナーの残量を示すパラメータの値が、最大値又は０以外とされることにより、擬似的又は仮想的なトナー切れ状態が実現されてもよい。
【００７５】
その後、ユーザＡによって、アプリＡに対する操作が行われると、図７のステップＳ３０１〜Ｓ３２０と同様の処理手順が実行される。ここで、仮想エンジン部１７３において、用紙切れやジャム等の、トナー切れ以外のエラー要因が発生していなければ、ステップＳ３１５に応じた仮想エンジン部１７３の処理は、正常に行われる。
【００７６】
なお、上記では、仮想エンジン部１７３をトナー切れ状態に移行させる例について説明したが、ジャム状態、用紙切れ状態、省電力状態等、複合機３０において発生する各種の事象の発生指示が、エンジン操作画面を介して入力可能とされてもよい。
【００７７】
上述したように、本実施の形態によれば、各クライアント装置２０には、エミュレータの実体はインストールされる必要はなく、クライアント装置２０を、クライアント管理部２１、パネルＵＩ部２２、エンジンＵＩ部２３、及びデバイスＵＩ部２４として機能させるプログラムがインストールされればよい。これらのプログラムは、複合機３０の機種や、複合機３０のソフトウェアのバージョン等に対する依存度は低いため、当該機種等ごとにインストールされる必要性を低い。また、クライアント管理部２１、パネルＵＩ部２２、エンジンＵＩ部２３、及びデバイスＵＩ部２４は、Ｗｅｂページ及びスクリプトプログラムによって実現されてもよい。この場合、クライアント装置２０には、汎用的なＷｅｂブラウザがインストールされていればよい。したがって、本実施の形態によれば、アプリケーションの動作確認用の環境構築の作業負担を軽減することができる。
【００７８】
また、一般的に、エミュレータには、アプリケーションプラットフォーム等を構成するオブジェクトファイル等が含まれうる。オブジェクトファイルには、複合機３０の製造者にとって、技術的なノウハウや機密情報等が含まれている可能性が有り、当該製造業者の外部に提供されるのは望ましくはない。オブジェクトファイルはバイナリデータであるため、オブジェクトファイルを直接参照しただけでは、ノウハウ等の流出の可能性は低いが、逆アセンブリ等によって、オブジェクトファイルの内容が解読可能となる可能性が有るからである。
【００７９】
本実施の形態によれば、エミュレータが、外部に配布される可能性を低下させることができるため、エミュレータに含まれる技術的なノウハウ等が流出する危険性を低下させることができる。
【００８０】
なお、本実施の形態では、サーバ装置１０がエミュレートする機器が、複合機３０である例を説明したが、複合機３０以外の画像形成装置が、エミュレートの対象とされてもよい。また、プロジェクタ、デジタルカメラ、又はテレビ会議システム等、画像形成装置以外の機器が、エミュレートの対象とされてもよい。
【００８１】
なお、本実施の形態において、サーバ装置１０は、情報処理システム又は情報処理装置の一例である。仮想ＭＦＰ１７は、模倣部の一例である。パネルＵＩ管理部１４は、受信部の一例である。環境構築部１３は、起動部の一例である。仮想パネル部１７１、仮想エンジン部１７３、仮想コントローラ部１７２は、それぞれ、第一の模倣部、第二の模倣部、第三の模倣部の一例である。パネルＵＩ部２２、エンジンＵＩ部２３は、それぞれ、第一の送信部、第二の送信部の一例である。
【００８２】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００８３】
１            開発支援システム
１０          サーバ装置
１１          ユーザ認証部
１２          マシン管理部
１３          環境構築部
１４          パネルＵＩ管理部
１５          エンジンＵＩ管理部
１６          デバイスＵＩ管理部
１７          仮想ＭＦＰ
１８          仮想デバイス部
２０          クライアント装置
２１          クライアント管理部
２２          パネルＵＩ部
２３          エンジンＵＩ部
２４          デバイスＵＩ部
３０          複合機
３１          コントローラ
３２          スキャナ
３３          プリンタ
３４          モデム
３６          ネットワークインタフェース
３７          ＳＤカードスロット
４０          情報処理端末
８０          ＳＤカード
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１７１        仮想パネル部
１７２        仮想コントローラ部
１７３        仮想エンジン部
３１１        ＣＰＵ
３１２        ＲＡＭ
３１３        ＲＯＭ
３１４        ＨＤＤ
３１５        ＮＶＲＡＭ
Ｂ            バス
【先行技術文献】
【特許文献】
【００８４】
【特許文献１】特表２００８−５３３５４９号公報
【図１】
2015056108.tif 000003
【図２】
2015056108.tif 000004
【図３】
2015056108.tif 000005
【図４】
2015056108.tif 000006
【図５】
2015056108.tif 000007
【図６】
2015056108.tif 000008
【図７】
2015056108.tif 000009
【図８】
2015056108.tif 000010