(57)【要約】      （修正有）【課題】ＰＣをＭＦＰにおける操作画面の確認のために用いることができるようにするプログラム開発支援装置を提供する。【解決手段】プログラム開発支援装置は、複数のブラウザーの中から、特定のＭＦＰが有するブラウザー機能を含むブラウザーが存在するか否かを判定し、当該ＭＦＰが有するブラウザー機能を含むブラウザーを選択するブラウザー判定部と、選択されたブラウザーにより、制御プログラムに従って描画させることにより、画像データを生成させるブラウザー制御部６０８と、生成した前記画像データを送信する通信部６０５とを備える。【選択図】図１０
2015041260.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置の操作パネルにおける表示動作を規定する制御プログラムの、情報処理装置による開発を支援するプログラム開発支援装置であって、
前記情報処理装置から、前記画像形成装置の機種を示す機種識別子及び前記制御プログラムを取得する取得手段と、
前記制御プログラムに従って前記操作パネルに表示されるべき画像を描画し、異なる仕様のブラウザー機能をそれぞれ有する複数のブラウザー手段と、
複数の前記ブラウザー手段の中から、前記機種識別子により示される画像形成装置が有するブラウザー機能と同一仕様のブラウザー機能を有するブラウザー手段が存在するか否かを判定するブラウザー判定手段と、
前記ブラウザー判定手段により存在すると判定される場合、前記画像形成装置が有するブラウザー機能と同一仕様のブラウザー機能を有する前記ブラウザー手段により、前記制御プログラムに従って描画させることにより、画像データを生成させる制御手段と、
生成した前記画像データを、表示させるため前記情報処理装置に送信する送信手段と
を備えることを特徴とするプログラム開発支援装置。
【請求項２】
前記プログラム開発支援装置は、さらに、
前記制御プログラム中に、前記画像形成装置に固有の動作を要求する内部コマンドが含まれるか否かを判定する内部コマンド判定手段と、
前記内部コマンドが含まれると判定される場合に、当該内部コマンドに従って、前記画像形成装置の動作をシミュレートし、当該動作直後の前記操作パネルにおける表示動作を規定する第２制御プログラムを生成するシミュレート手段を含み、
前記制御手段は、さらに、前記ブラウザー手段により、前記第２制御プログラムに従って描画させることにより、第２画像データを生成させ、
前記送信手段は、さらに、生成した前記第２画像データを、表示させるために前記情報処理装置に送信する
ことを特徴とする請求項１に記載のプログラム開発支援装置。
【請求項３】
前記取得手段は、さらに、前記情報処理装置から、前記制御プログラムに含まれる表示項目の使用許否を示すライセンス情報を取得し、
前記プログラム開発支援装置は、さらに、
取得した前記ライセンス情報により、前記制御プログラムに含まれる表示項目について、使用許可がされているか否かを判定する許可判定手段と、
使用許可がされていないと判定される場合、代替表示項目を取得する代替表示項目取得手段と、
前記表示項目を取得した前記代替表示項目に差し替える差替手段とを含み、
前記制御手段は、前記差替手段により、前記表示項目を取得した前記代替表示項目に差し替えさせ、前記ブラウザー手段により、前記代替表示項目を含む前記画像データを生成させる
ことを特徴とする請求項１に記載のプログラム開発支援装置。
【請求項４】
当該プログラム開発支援装置又は外部のサーバー装置は、前記代替表示項目を保持し、
前記代替表示項目取得手段は、当該プログラム開発支援装置又は外部のサーバー装置から、前記代替表示項目を取得する
ことを特徴とする請求項３に記載のプログラム開発支援装置。
【請求項５】
前記ブラウザー判定手段は、複数の前記ブラウザー手段に対応付けて、それぞれ、複数の画像形成装置の機種を示す機種識別子を記憶しており、取得した前記機種識別子が記憶している前記機種識別子のいずれかと一致するか否かを判定することにより、前記ブラウザー手段が存在するか否かを判定する
ことを特徴とする請求項１に記載のプログラム開発支援装置。
【請求項６】
前記取得手段は、前記機種識別子として、前記画像形成装置が有するブラウザーの種類及び版数を示すブラウザー識別子を取得し、
前記ブラウザー判定手段は、複数の前記ブラウザー手段に対応付けて、それぞれ、複数の機種の画像形成装置が有するブラウザーの種類及び版数を示すブラウザー識別子を記憶しており、取得した前記ブラウザー識別子が記憶している前記ブラウザー識別子のいずれかと一致するか否かを判定することにより、前記ブラウザー手段が存在するか否かを判定する
ことを特徴とする請求項１に記載のプログラム開発支援装置。
【請求項７】
前記プログラム開発支援装置は、コンピュータープログラムを記憶している記憶手段と、前記コンピュータープログラムを実行するプロセッサーとを含むコンピューターシステムであり、
前記プログラム開発支援装置は、前記プロセッサーが前記コンピュータープログラムを実行することにより、前記取得手段、複数の前記ブラウザー手段、前記ブラウザー判定手段、前記制御手段及び前記送信手段を動作させ、
前記記憶手段は、複数の前記ブラウザー手段に対応して、複数の異なる仕様のブラウザープログラムをそれぞれ含む複数の仮想クライアントプログラムを記憶しており、
前記ブラウザー判定手段は、複数の仮想クライアントプログラムの中から、前記機種識別子により示される画像形成装置が有するブラウザープログラムを含む仮想クライアントプログラムが存在するか判定し、
前記制御手段は、前記画像形成装置が有するブラウザープログラムを含む前記仮想クライアントプログラムを実行状態にし、実行状態の前記仮想クライアントプログラムに含まれるブラウザープログラムを用いて、前記制御プログラムに従って描画させる
ことを特徴とする請求項２に記載のプログラム開発支援装置。
【請求項８】
前記プログラム開発支援装置は、前記プロセッサーが前記コンピュータープログラムを実行することにより、さらに、前記内部コマンド判定手段及び前記シミュレート手段を動作させ、
前記記憶手段は、仮想シミュレートプログラムを、前記シミュレート手段に対応して、記憶しており、
前記仮想シミュレートプログラムは、前記内部コマンドが含まれると判定される場合に、当該内部コマンドに従って、前記画像形成装置の動作をシミュレートし、当該動作直後の前記操作パネルにおける表示動作を規定する第２制御プログラムを生成するプログラムであり、
前記制御手段は、前記シミュレート手段として、仮想シミュレートプログラムを実行状態にする
ことを特徴とする請求項７に記載のプログラム開発支援装置。
【請求項９】
画像形成装置の操作パネルにおける表示動作を規定する制御プログラムの、情報処理装置による開発を支援するプログラム開発支援装置において用いられるプログラム開発支援方法であって、
前記情報処理装置から、前記画像形成装置の機種を示す機種識別子及び前記制御プログラムを取得する取得ステップと、
前記制御プログラムに従って前記操作パネルに表示されるべき画像を描画し、異なる仕様のブラウザー機能をそれぞれ有する複数のブラウザーステップと、
複数の前記ブラウザーステップの中から、前記機種識別子により示される画像形成装置が有するブラウザー機能と同一仕様のブラウザー機能を有するブラウザーステップが存在するか否かを判定するブラウザー判定ステップと、
前記ブラウザー判定ステップにより存在すると判定される場合、前記画像形成装置が有するブラウザー機能と同一仕様のブラウザー機能を有する前記ブラウザーステップにより、前記制御プログラムに従って描画させることにより、画像データを生成させる制御ステップと、
生成した前記画像データを、表示させるため前記情報処理装置に送信する送信ステップと
を含むことを特徴とするプログラム開発支援方法。
【請求項１０】
画像形成装置の操作パネルにおける表示動作を規定する制御プログラムの、情報処理装置による開発を支援するプログラム開発支援装置において用いられるコンピュータープログラムを記録しているコンピューター読み取り可能な記録媒体であって、
コンピューターである前記プログラム開発支援装置に、
前記情報処理装置から、前記画像形成装置の機種を示す機種識別子及び前記制御プログラムを取得する取得ステップと、
前記制御プログラムに従って前記操作パネルに表示されるべき画像を描画し、異なる仕様のブラウザー機能をそれぞれ有する複数のブラウザーステップと、
複数の前記ブラウザーステップの中から、前記機種識別子により示される画像形成装置が有するブラウザー機能と同一仕様のブラウザー機能を有するブラウザーステップが存在するか否かを判定するブラウザー判定ステップと、
前記ブラウザー判定ステップにより存在すると判定される場合、前記画像形成装置が有するブラウザー機能と同一仕様のブラウザー機能を有する前記ブラウザーステップにより、前記制御プログラムに従って描画させることにより、画像データを生成させる制御ステップと、
生成した前記画像データを、表示させるため前記情報処理装置に送信する送信ステップと
を実行させるためのコンピュータープログラムを記録している記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置の操作パネルにおける表示動作を規定する制御プログラムの、情報処理装置による開発を支援する技術に関し、特に、操作パネルにおいて表示されるべき操作画面の確認を支援する技術に関する。
【背景技術】
【０００２】
特許文献１によると、画像形成装置は、ブラウザー機能を有し、ブラウザー機能により、画面データを画像形成装置の操作パネルに表示する。
また、特許文献２によると、画像形成装置において、様々なアプリケーションプログラムが用いられる。このようなアプリケーションプログラムの開発においては、実際の画像形成装置ではなく、画像形成装置の動作をソフトウェアを用いて模擬的に実行するシミュレーターにより、アプリケーションプログラムに関する各種の動作確認テストが行われる。
【０００３】
このような先行技術を用いて、画像形成装置のブラウザー機能により操作パネルに表示される画像の確認テストを行う際に、実際の画像形成装置に代えて、パーソナルコンピューター（以下、ＰＣ）等の情報処理装置により、操作パネルに表示されるべき画像の確認が行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−３７１０５号公報
【特許文献２】特開２０１３−４００７号公報
【特許文献３】特開２０１０−３９８１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、情報処理装置が有するブラウザー機能と画像形成装置が有するブラウザー機能とが異なる種類や異なる版数のものである場合には、それぞれのブラウザー機能により表示される画面のレイアウトが異なることがある。例えば、情報処理装置が有するブラウザー機能を用いて画像が設計通り表示されることが確認された場合であっても、実際に画像形成装置のブラウザー機能を用いて操作パネルに表示すると、画像が操作パネルからはみ出したり、文字を囲むべき枠が文字に重なったりすることがある。このため、情報処理装置を画像形成装置における操作画面の確認のために用いることができないという問題がある。
【０００６】
上記の問題を解決するため、本発明は、情報処理装置を画像形成装置における操作画面の確認のために用いることができるようにするプログラム開発支援装置、プログラム開発支援方法及びコンピュータープログラムを記録している記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一態様は、画像形成装置の操作パネルにおける表示動作を規定する制御プログラムの、情報処理装置による開発を支援するプログラム開発支援装置であって、前記情報処理装置から、前記画像形成装置の機種を示す機種識別子及び前記制御プログラムを取得する取得手段と、前記制御プログラムに従って前記操作パネルに表示されるべき画像を描画し、異なる仕様のブラウザー機能をそれぞれ有する複数のブラウザー手段と、複数の前記ブラウザー手段の中から、前記機種識別子により示される画像形成装置が有するブラウザー機能と同一仕様のブラウザー機能を有するブラウザー手段が存在するか否かを判定するブラウザー判定手段と、前記ブラウザー判定手段により存在すると判定される場合、前記画像形成装置が有するブラウザー機能と同一仕様のブラウザー機能を有する前記ブラウザー手段により、前記制御プログラムに従って描画させることにより、画像データを生成させる制御手段と、生成した前記画像データを、表示させるため前記情報処理装置に送信する送信手段とを備えることを特徴とする。
【発明の効果】
【０００８】
この態様によると、制御プログラムに従って描画され生成された画像データが情報処理装置に送信されるので、情報処理装置において、画像形成装置の操作パネルにおいて表示されるべき画像と同一の画像を表示できる。このため、情報処理装置を画像形成装置の操作パネルにおける操作画面の確認のために用いることができるという優れた効果を奏する。
【０００９】
ここで、前記プログラム開発支援装置は、さらに、前記制御プログラム中に、前記画像形成装置に固有の動作を要求する内部コマンドが含まれるか否かを判定する内部コマンド判定手段と、前記内部コマンドが含まれると判定される場合に、当該内部コマンドに従って、前記画像形成装置の動作をシミュレートし、当該動作直後の前記操作パネルにおける表示動作を規定する第２制御プログラムを生成するシミュレート手段を含み、前記制御手段は、さらに、前記ブラウザー手段により、前記第２制御プログラムに従って描画させることにより、第２画像データを生成させ、前記送信手段は、さらに、生成した前記第２画像データを、表示させるために前記情報処理装置に送信してもよい。
【００１０】
この態様によると、制御プログラムに含まれる内部コマンドに従って、前記画像形成装置の動作をシミュレートして得られた第２画像データが前記情報処理装置に送信される。この結果、情報処理装置において、画像形成装置の操作パネルにおいて表示されるべき画像と同一の画像を表示できる。このため、制御プログラムに内部コマンドが含まれる場合においても、情報処理装置を画像形成装置の操作パネルにおける操作画面の確認のために用いることができるという優れた効果を奏する。
【００１１】
ここで、前記取得手段は、さらに、前記情報処理装置から、前記制御プログラムに含まれる表示項目の使用許否を示すライセンス情報を取得し、前記プログラム開発支援装置は、さらに、取得した前記ライセンス情報により、前記制御プログラムに含まれる表示項目について、使用許可がされているか否かを判定する許可判定手段と、使用許可がされていないと判定される場合、代替表示項目を取得する代替表示項目取得手段と、前記表示項目を取得した前記代替表示項目に差し替える差替手段とを含み、前記制御手段は、前記差替手段により、前記表示項目を取得した前記代替表示項目に差し替えさせ、前記ブラウザー手段により、前記代替表示項目を含む前記画像データを生成させるとしてもよい。
【００１２】
この態様によると、制御プログラムに含まれる表示項目について、使用許可がされていない場合、表示項目を代替表示項目に差し替える。この結果、表示項目のライセンスに違反することがない。
ここで、当該プログラム開発支援装置又は外部のサーバー装置は、前記代替表示項目を保持し、前記代替表示項目取得手段は、当該プログラム開発支援装置又は外部のサーバー装置から、前記代替表示項目を取得してもよい。
【００１３】
ここで、前記ブラウザー判定手段は、複数の前記ブラウザー手段に対応付けて、それぞれ、複数の画像形成装置の機種を示す機種識別子を記憶しており、取得した前記機種識別子が記憶している前記機種識別子のいずれかと一致するか否かを判定することにより、前記ブラウザー手段が存在するか否かを判定してもよい。また、前記取得手段は、前記機種識別子として、前記画像形成装置が有するブラウザーの種類及び版数を示すブラウザー識別子を取得し、前記ブラウザー判定手段は、複数の前記ブラウザー手段に対応付けて、それぞれ、複数の機種の画像形成装置が有するブラウザーの種類及び版数を示すブラウザー識別子を記憶しており、取得した前記ブラウザー識別子が記憶している前記ブラウザー識別子のいずれかと一致するか否かを判定することにより、前記ブラウザー手段が存在するか否かを判定してもよい。
【００１４】
これらの態様によると、画像形成装置が有するブラウザー機能と同一仕様のブラウザー機能を有するブラウザー手段が存在するか否かを判定することができる。
ここで、前記プログラム開発支援装置は、コンピュータープログラムを記憶している記憶手段と、前記コンピュータープログラムを実行するプロセッサーとを含むコンピューターシステムであり、前記プログラム開発支援装置は、前記プロセッサーが前記コンピュータープログラムを実行することにより、前記取得手段、複数の前記ブラウザー手段、前記ブラウザー判定手段、前記制御手段及び前記送信手段を動作させ、前記記憶手段は、複数の前記ブラウザー手段に対応して、複数の異なる仕様のブラウザープログラムをそれぞれ含む複数の仮想クライアントプログラムを記憶しており、前記ブラウザー判定手段は、複数の仮想クライアントプログラムの中から、前記機種識別子により示される画像形成装置が有するブラウザープログラムを含む仮想クライアントプログラムが存在するか判定し、前記制御手段は、前記画像形成装置が有するブラウザープログラムを含む前記仮想クライアントプログラムを実行状態にし、実行状態の前記仮想クライアントプログラムに含まれるブラウザープログラムを用いて、前記制御プログラムに従って描画させるとしてもよい。
【００１５】
この態様によると、前記ブラウザー手段を、実行状態のブラウザープログラムにより実現できる。
ここで、前記プログラム開発支援装置は、前記プロセッサーが前記コンピュータープログラムを実行することにより、さらに、前記内部コマンド判定手段及び前記シミュレート手段を動作させ、前記記憶手段は、仮想シミュレートプログラムを、前記シミュレート手段に対応して、記憶しており、前記仮想シミュレートプログラムは、前記内部コマンドが含まれると判定される場合に、当該内部コマンドに従って、前記画像形成装置の動作をシミュレートし、当該動作直後の前記操作パネルにおける表示動作を規定する第２制御プログラムを生成するプログラムであり、前記制御手段は、前記シミュレート手段として、仮想シミュレートプログラムを実行状態にしてもよい。
【００１６】
この態様によると、前記シミュレート手段を、実行状態の仮想シミュレートプログラムにより実現できる。
また、本発明の一態様は、画像形成装置の操作パネルにおける表示動作を規定する制御プログラムの、情報処理装置による開発を支援するプログラム開発支援装置において用いられるプログラム開発支援方法であって、前記情報処理装置から、前記画像形成装置の機種を示す機種識別子及び前記制御プログラムを取得する取得ステップと、前記制御プログラムに従って前記操作パネルに表示されるべき画像を描画し、異なる仕様のブラウザー機能をそれぞれ有する複数のブラウザーステップと、複数の前記ブラウザーステップの中から、前記機種識別子により示される画像形成装置が有するブラウザー機能と同一仕様のブラウザー機能を有するブラウザーステップが存在するか否かを判定するブラウザー判定ステップと、前記ブラウザー判定ステップにより存在すると判定される場合、前記画像形成装置が有するブラウザー機能と同一仕様のブラウザー機能を有する前記ブラウザーステップにより、前記制御プログラムに従って描画させることにより、画像データを生成させる制御ステップと、生成した前記画像データを、表示させるため前記情報処理装置に送信する送信ステップとを含むことを特徴とする。
【００１７】
この方法をプログラム開発支援装置において用いることにより、制御プログラムに従って描画され生成された画像データが情報処理装置に送信される。この結果、情報処理装置において、画像形成装置の操作パネルにおいて表示されるべき画像と同一の画像を表示できる。このため、情報処理装置を画像形成装置の操作パネルにおける操作画面の確認のために用いることができるという優れた効果を奏する。
【００１８】
また、本発明の一態様は、画像形成装置の操作パネルにおける表示動作を規定する制御プログラムの、情報処理装置による開発を支援するプログラム開発支援装置において用いられるコンピュータープログラムを記録しているコンピューター読み取り可能な記録媒体であって、コンピューターである前記プログラム開発支援装置に、前記情報処理装置から、前記画像形成装置の機種を示す機種識別子及び前記制御プログラムを取得する取得ステップと、前記制御プログラムに従って前記操作パネルに表示されるべき画像を描画し、異なる仕様のブラウザー機能をそれぞれ有する複数のブラウザーステップと、複数の前記ブラウザーステップの中から、前記機種識別子により示される画像形成装置が有するブラウザー機能と同一仕様のブラウザー機能を有するブラウザーステップが存在するか否かを判定するブラウザー判定ステップと、前記ブラウザー判定ステップにより存在すると判定される場合、前記画像形成装置が有するブラウザー機能と同一仕様のブラウザー機能を有する前記ブラウザーステップにより、前記制御プログラムに従って描画させることにより、画像データを生成させる制御ステップと、生成した前記画像データを、表示させるため前記情報処理装置に送信する送信ステップとを実行させるためのコンピュータープログラムを記録していることを特徴とする。
【００１９】
このプログラムを、コンピューターであるプログラム開発支援装置において用いることにより、制御プログラムに従って描画され生成された画像データが情報処理装置に送信される。この結果、情報処理装置において、画像形成装置の操作パネルにおいて表示されるべき画像と同一の画像を表示できる。このため、情報処理装置を画像形成装置の操作パネルにおける操作画面の確認のために用いることができるという優れた効果を奏する。
【図面の簡単な説明】
【００２０】
【図１】プログラム開発支援システム１０の全体構成を示す。
【図２】クライアントＰＣ（１００）の構成を示すブロック図である。
【図３】プログラム作成サーバー装置２００の構成を示すブロック図である。
【図４】プログラム作成サーバー装置２００により生成される制御プログラム２２１を示す。
【図５】制御プログラム２２１に基づいて表示される画面イメージを示す。
【図６】プログラム開発支援装置３００の構成を示すブロック図である。
【図７】仮想制御装置４００の構成を示すブロック図である。
【図８】対応表４２１のデータ構造の一例を示す。
【図９】仮想サーバー装置５００の構成を示すブロック図である。
【図１０】仮想クライアント装置６００の構成を示すブロック図である。
【図１１】仮想シミュレーター７００の構成を示すブロック図である。
【図１２】仮想シミュレーター７００により生成されるメッセージを表示する画面７４１を示す。
【図１３】外部サーバー装置８００の構成を示すブロック図である。
【図１４】プログラム開発支援システム１０の動作を示すシーケンス図（その１）である。図１５へ続く。
【図１５】プログラム開発支援システム１０の動作を示すシーケンス図（その２）である。図１６へ続く。
【図１６】プログラム開発支援システム１０の動作を示すシーケンス図（その３）である。
【発明を実施するための形態】
【００２１】
１．実施の形態
本発明に係る一の実施の形態としてのプログラム開発支援システム１０について、説明する。
１．１  プログラム開発支援システム１０
プログラム開発支援システム１０は、図１に示すように、クライアントＰＣ（１００）、クラウドシステム３０及び外部サーバー装置８００から構成されている。また、クラウドシステム３０は、プログラム作成サーバー装置２００及びプログラム開発支援装置３００から構成されている。クライアントＰＣ（１００）、外部サーバー装置８００、プログラム作成サーバー装置２００及びプログラム開発支援装置３００は、インターネットを代表とするネットワーク２０を介して、接続されている。
【００２２】
ユーザーは、クライアントＰＣ（１００）を用いて、ネットワーク２０を介して、プログラム作成サーバー装置２００に接続して、制御プログラムを作成する。ここで、制御プログラムは、複合機（ＭＦＰ：Multi-Functional Peripheral、以下、ＭＦＰと呼ぶ。）が有する操作パネルにおける表示動作及びＭＦＰの内部処理を規定し、マークアップ言語であるＨＴＭＬ（HyperText Markup Language ）により記述されたプログラムである。また、ＭＦＰは、プリンター、コピー機、ファクシミリ及びスキャナー等の各装置の機能を一体化した装置である。
【００２３】
制御プログラムの作成が終了すると、ユーザーは、クライアントＰＣ（１００）を用いて、プログラム作成サーバー装置２００からプログラム開発支援装置３００に対して、制御プログラムのプレビュー画像の生成を依頼する。
プログラム開発支援装置３００は、図１に示すように、仮想的に、仮想制御装置４００、仮想サーバー装置５００、仮想クライアント装置６００及び仮想シミュレーター７００から構成される。仮想制御装置４００、仮想サーバー装置５００、仮想クライアント装置６００及び仮想シミュレーター７００は、プログラム開発支援サービス４０を提供する。
【００２４】
仮想制御装置４００は、仮想サーバー装置５００、仮想クライアント装置６００及び仮想シミュレーター７００を制御する。仮想クライアント装置６００は、制御プログラムに従って、ＭＦＰに表示されるべき画像を描画し、描画された画像から、画像データを生成する。また、仮想シミュレーター７００により、実際のＭＦＰの動作をシミュレートして、ＭＦＰの操作パネルにおける表示動作を規定する制御プログラムを生成する。プログラム開発支援装置３００は、画像データをクライアントＰＣ（１００）に送信する。クライアントＰＣ（１００）は、画像データを受信し、受信した画像データを表示する。
【００２５】
１．２  クライアントＰＣ（１００）
クライアントＰＣ（１００）は、図２に示すように、マイクロプロセッサー１０１、ＲＯＭ（１０２）、ＲＡＭ（１０３）、ハードディスクデバイス１０４、通信部１０５及び入出力制御部１０６から構成されている。入出力制御部１０６には、モニター１０７及びキーボード１０８が接続されている。マイクロプロセッサー１０１、ＲＯＭ（１０２）、ＲＡＭ（１０３）、ハードディスクデバイス１０４、通信部１０５及び入出力制御部１０６は、バス１０９を介して、接続されている。
【００２６】
（１）ハードディスクデバイス１０４、ＲＯＭ（１０２）及びＲＡＭ（１０３）
ハードディスクデバイス１０４は、ブラウザーアプリケーションプログラム（以下、ブラウザーアプリと称する。）１２１及びその他のコンピュータープログラムを記憶している。ブラウザーアプリ１２１は、ＨＴＭＬにより記述された制御プログラムに従って表示動作をするためのコンピュータープログラムである。その他のコンピュータープログラムは、オペレーティングシステム、ネットワークへ接続し他の端末装置と通信を行うためのコンピュータープログラム等である。
【００２７】
また、ハードディスクデバイス１０４は、制御プログラムに含まれる表示項目の使用許否を示すライセンス情報１２２を記憶している。ライセンス情報１２２が表示項目の使用許可を示す場合、表示項目を使用することができる。一方、ライセンス情報１２２が表示項目の使用禁止を示す場合、表示項目を使用することができない。
表示項目の一例は、フォントである。一例として、ライセンス情報１２２は、フォントを識別するフォント識別名称を含む。制御プログラムにより表示を行う際に、ライセンス情報に含まれるフォント識別情報により識別されるフォントの使用が許可される。ライセンス情報に含まれないフォント識別情報により識別されるフォントの使用は、許可されない。
【００２８】
表示項目は、静止画及び動画であるとしてもよい。一例として、ライセンス情報１２２がこれらの静止画又は動画を識別する識別情報を含むとき、これらの静止画又は動画の使用が許可される。
ライセンス情報は、ライセンス番号、フォント識別情報、ライセンス発行日、有効期限及び署名データを含むとしてもよい。ライセンス番号は、当該ライセンス情報を一意に識別する識別番号である。フォント識別情報については、上述した通りである。有効期限は、当該ライセンス情報を用いることができる期限を示す。例えば、２０１５年１０月３１日までなどと指定される。署名データは、当該フォントのライセンスの発行者に割り当てられた私有鍵（秘密鍵）を用いて、ライセンス番号、フォント識別情報、ライセンス発行日及び有効期限の結合体に対して、公開鍵暗号方式によるデジタル署名を施して、生成した署名データである。なお、ライセンスの正当性を確認する装置、例えば、後述する仮想クライアント装置６００は、前記私有鍵に対応する公開鍵を用いて、ライセンス情報の正当性を検証する。検証に成功した場合に、ライセンスが正しいと判定する。検証に失敗した場合に、ライセンスは不正と判定する。
【００２９】
ＲＯＭ（１０２）及びＲＡＭ（１０３）は、データやプログラムを記憶するための、半導体メモリである。
（２）マイクロプロセッサー１０１
マイクロプロセッサー１０１は、コンピュータープログラムに従って、動作する。特に、マイクロプロセッサー１０１は、ユーザーによるブラウザーアプリ１２１の起動の指示により、ブラウザーアプリ１２１を実行させる。これにより、マイクロプロセッサー１０１は、ブラウザーを実行状態にする。
【００３０】
（３）通信部１０５
通信部１０５は、ネットワーク２０を介して、他の装置との間で情報の送受信を行う。
具体的には、通信部１０５は、ユーザーから受け付けたプログラム作成のリクエスト及びプログラム作成のための情報を、ネットワーク２０を介して、プログラム作成サーバー装置２００に対して、送信する。また、通信部１０５は、ユーザーの指示により、制御プログラムのプレビュー要求を、ネットワーク２０を介して、プログラム作成サーバー装置２００に対して送信する。また、通信部１０５は、ＵＲＬを指定して、ＭＰＦ機種ＩＤ及びライセンス情報を、プログラム開発支援装置３００に対して、送信する。
【００３１】
また、通信部１０５は、プログラム作成サーバー装置２００から、プログラム作成のための情報及び制御プログラムの作成が完了したことを示す完了通知を受け取る。また、通信部１０５は、プログラム作成サーバー装置２００から、ネットワーク２０を介して、プログラム開発支援装置３００のネットワーク２０上における存在位置を示すＵＲＬを受け取る。また、通信部１０５は、プログラム開発支援装置３００から、メッセージ、フレーム及び画像データを受け取る。
【００３２】
（４）入出力制御部１０６、モニター１０７及びキーボード１０８
入出力制御部１０６は、モニター１０７及びキーボード１０８に接続されている。
モニター１０７は、様々な情報を表示する。
キーボード１０８は、操作者による入力を受け付ける。具体的には、キーボード１０８は、ユーザーから、ブラウザーアプリ１２１を起動する指示、プログラム作成のリクエスト、プログラム作成のための情報、制御プログラムのプレビュー要求を受け付ける。また、キーボード１０８は、ユーザーからＵＲＬの指定とともに、ＭＰＦ機種ＩＤ及びライセンス情報の送信の指示を受け付ける。
【００３３】
（５）実行状態にあるブラウザー
キーボード１０８がユーザーからブラウザーアプリ１２１を起動する指示を受け付け、次に、マイクロプロセッサー１０１がハードディスクデバイス１０４に記憶されているブラウザーアプリ１２１を実行する。これにより、クライアントＰＣ（１００）において、ブラウザーが実行状態となる。
【００３４】
実行状態にあるブラウザー（以下、ＰＣのブラウザーと呼ぶ。）と、プログラム作成サーバー装置２００とは、ネットワーク２０を介して、情報を送受信する。これにより、プログラム作成サーバー装置２００において、制御プログラムが作成される。
また、ＰＣのブラウザーは、通信部１０５から、ネットワーク２０を介して、制御プログラムの作成が完了したことを示す完了通知を受け取る。完了通知を受け取ると、ＰＣのブラウザーは、ユーザーの指示により、制御プログラムのプレビュー要求を、通信部１０５及びネットワーク２０を介して、プログラム作成サーバー装置２００に対して送信する。
【００３５】
また、ＰＣのブラウザーは、プログラム作成サーバー装置２００から、ネットワーク２０及び通信部１０５を介して、プログラム開発支援装置３００のネットワーク２０における存在位置を示すＵＲＬを受け取る。
また、ＰＣのブラウザーは、ユーザーからＭＦＰの機種を示すＭＦＰ機種ＩＤの入力を受け付ける。また、制御プログラムに含まれる表示項目の使用許否を示すライセンス情報１２２をハードディスクデバイス１０４から読み出す。また、ＰＣのブラウザーは、受け取ったＵＲＬを指定して、入力を受け付けたＭＦＰ機種ＩＤ及び読み出したライセンス情報を、通信部１０５及びネットワーク２０を介して、プログラム開発支援装置３００に対して送信する。
【００３６】
また、ＰＣのブラウザーは、プログラム開発支援装置３００から、ネットワーク２０及び通信部１０５を介して、ＭＦＰ機種が対応表４２１に含まれていないことを示すメッセージを受信する。次に、ＰＣのブラウザーは、受信したメッセージを表示する。
また、ＰＣのブラウザーは、プログラム開発支援装置３００から、通信部１０５を介して、フレームを受信する。ここで、フレームは、ＰＣのブラウザーにおいて、表示されるべき画像のフレームである。次に、ＰＣのブラウザーは、フレームを、入出力制御部１０６を介して、モニター１０７に出力することにより、フレームを表示する。
【００３７】
また、ＰＣのブラウザーは、仮想クライアント装置６００から、仮想制御装置４００を介して、画像データを受信する。次に、ＰＣのブラウザーは、画像データを、入出力制御部１０６を介して、モニター１０７に出力することにより、画像データを表示する。
１．３  プログラム作成サーバー装置２００
プログラム作成サーバー装置２００は、図３に示すように、ウェブサービスインタフェース部２０１、サービスユーザーインタフェース部２０２、プレビュー制御部２０３、記憶部２０４、通信部２０５、ＨＴＭＬエディタ部２０６及びＩＷＳコマンド生成部２０７から構成されている。
【００３８】
プログラム作成サーバー装置２００は、具体的には、マイクロプロセッサー、ＲＯＭ、ＲＡＭ、ハードディスクデバイスなどから構成されるコンピューターシステムである。前記ハードディスクデバイスには、コンピュータープログラムが記憶されている。前記マイクロプロセッサーが、前記コンピュータープログラムに従って動作することにより、プログラム作成サーバー装置２００は、その機能を達成する。
【００３９】
（１）記憶部２０４
記憶部２０４は、一例として、ハードディスクデバイスから構成され、制御プログラム２２１を記憶するための領域を備えている。制御プログラム２２１は、クライアントＰＣ（１００）のユーザーにより、クライアントＰＣ（１００）とプログラム作成サーバー装置２００とを用いて、作成されたプログラムである。
【００４０】
（２）ウェブサービスインタフェース部２０１、サービスユーザーインタフェース部２０２及び通信部２０５
通信部２０５は、ネットワーク２０を介して、他の装置との間で情報の送受信を行う。
ウェブサービスインタフェース部２０１は、通信部２０５及びネットワーク２０を介して、他の装置との間で、World Wide Web関連技術を用いて、プログラム作成サーバー装置２００が有する機能を利用できるようにする。
【００４１】
サービスユーザーインタフェース部２０２は、ＨＴＭＬエディタ部２０６及びプレビュー制御部２０３に対して、ユーザーインタフェースを提供する。
（３）ＨＴＭＬエディタ部２０６及びＩＷＳコマンド生成部２０７
ＨＴＭＬエディタ部２０６は、サービスユーザーインタフェース部２０２、ウェブサービスインタフェース部２０１、通信部２０５及びネットワーク２０を介して、クライアントＰＣ（１００）のユーザーに対して、ＨＴＭＬに基づいて記述される制御プログラムの作成、更新、編集、削除などのエディタ機能を提供する。
【００４２】
ＨＴＭＬエディタ部２０６は、通信部２０５、ウェブサービスインタフェース部２０１及びサービスユーザーインタフェース部２０２を介して、プログラム作成のリクエストを受け付ける。リクエストを受け付けると、ＨＴＭＬエディタ部２０６は、クライアントＰＣ（１００）との間で、情報を送受信して、制御プログラムの作成を開始する。
ＨＴＭＬエディタ部２０６は、作成、更新、編集、削除などの操作がされた制御プログラムを、記憶部２０４に記憶する。
【００４３】
制御プログラムの作成が完了すると、ＨＴＭＬエディタ部２０６は、制御プログラムの作成が完了したことを示す完了通知を生成する。次に、ＨＴＭＬエディタ部２０６は、制御プログラムの作成が完了したことを示す完了通知を、ネットワーク２０を介して、クライアントＰＣ（１００）に対して送信する。
ＩＷＳコマンド生成部２０７は、制御プログラムに含まれるＩＷＳ（Internal Web Service）コマンドを生成する。
【００４４】
制御プログラムの一例を図４に示す。図４に示す制御プログラム２２１は、ＨＴＭＬにより記述されたものである。スキャン条件を設定するための複数の入力フィールドとスキャン操作のための操作ボタンを含む画面の表示動作を規定している。この図に示すように、制御プログラム２２１は、複数のタグを含んでいる。
これらのタグのうち、タグ２２２は、後述する内部コマンドとして、「ｓｃａｎ．ｐｙ」を含んでいる。「ｓｃａｎ．ｐｙ」は、ＭＦＰに対して、スキャンをするよう要求する命令である。
【００４５】
制御プログラム２２１は、表示されるべき文字のフォントの種類の指定を含むとしてもよい。フォントには、使用する際に対価を要求される有償フォントと、対価を要求されない無償フォントが存在する。フォントとして、有償フォントが指定されている場合には、当該有償フォントを使用するための許可を必要とする。上述したライセンス情報により、有償フォントの使用が許可される。すなわち、ライセンス情報に、当該有償フォントを識別するフォント識別情報が含まれる場合には、当該有償フォントの使用が許可される。
【００４６】
制御プログラム２２１は、表示されるべき静止画や動画の指定を含むとしてもよい。静止画や動画にも、フォントと同様に、使用する際に対価を要求されるものと、対価を要求されないものが存在する。対価を要求される静止画や動画を使用する場合には、フォントと同様に、ライセンス情報によりその許可が示される。
また、制御プログラム２２１に基づいて、ＭＦＰの操作パネルに表示される画面のイメージを図５に示す。図５に示す画面２６１は、スキャンのための条件を設定するための入力フィールド２６２、２６３、２６４、２６５とスキャン操作のための操作ボタン２６６を含んでいる。
【００４７】
入力フィールド２６２は、電子メールアドレスを入力するためのフィールドである。入力フィールド２６３は、スキャンを行う際の解像度を設定するためのフィールドである。入力フィールド２６４は、スキャンされた原稿をファイルするときのファイルタイプを設定するためフィールドである。入力フィールド２６５は、原稿のスキャン面を設定するためのフィールドである。片面又は両面が設定される。
【００４８】
（４）プレビュー制御部２０３
プレビュー制御部２０３は、クライアントＰＣ（１００）から、ネットワーク２０、通信部２０５、ウェブサービスインタフェース部２０１及びサービスユーザーインタフェース部２０２を介して、プレビュー要求を受け取る。
プレビュー要求を受け取ると、プレビュー制御部２０３は、記憶部２０４から作成が完了した制御プログラム２２１を読み出す。次に、プレビュー制御部２０３は、サービスユーザーインタフェース部２０２、ウェブサービスインタフェース部２０１、通信部２０５及びネットワーク２０を介して、読み出した制御プログラムを、制御プログラムのプレビュー画面の生成の指示とともに、プログラム開発支援装置３００に対して、送信する。
【００４９】
プレビュー要求を受け取ると、プレビュー制御部２０３は、プログラム開発支援装置３００のネットワーク２０における存在位置を示すＵＲＬを内部から読み出す。次に、読み出したＵＲＬを、サービスユーザーインタフェース部２０２、ウェブサービスインタフェース部２０１、通信部２０５及びネットワーク２０を介して、クライアントＰＣ（１００）に対して送信する。
【００５０】
１．４  プログラム開発支援装置３００
プログラム開発支援装置３００は、図６に示すように、マイクロプロセッサー３０１、ＲＯＭ（３０２）、ＲＡＭ（３０３）、ハードディスクデバイス３０４及び通信部３０５から構成されている。マイクロプロセッサー３０１、ＲＯＭ（３０２）、ＲＡＭ（３０３）、ハードディスクデバイス３０４及び通信部３０５は、バス３０９を介して、接続されている。
【００５１】
（１）ハードディスクデバイス３０４、ＲＯＭ（３０２）及びＲＡＭ（３０３）
ハードディスクデバイス３０４は、仮想サーバーアプリケーションプログラム（以下、仮想サーバーアプリと称する。）３３１、仮想制御アプリケーションプログラム（以下、仮想制御アプリと称する。）３３３、仮想シミュレーターアプリケーションプログラム（以下、仮想シミュレーターアプリと称する。）３３４及びその他のコンピュータープログラムを記憶している。仮想サーバーアプリ３３１、仮想制御アプリ３３３及び仮想シミュレーターアプリ３３４については、後述する。
【００５２】
その他のコンピュータープログラムは、オペレーティングシステム、ネットワークへ接続し他の端末装置と通信を行うためのコンピュータープログラム等である。
ＲＯＭ（３０２）及びＲＡＭ（３０３）は、データやプログラムを記憶するための、半導体メモリである。
（２）マイクロプロセッサー３０１
マイクロプロセッサー３０１は、それぞれのコンピュータープログラムに従って、動作する。
【００５３】
仮想サーバーアプリ３３１、仮想制御アプリ３３３及び仮想シミュレーターアプリ３３４が、それぞれ、マイクロプロセッサー３０１により、実行状態になることにより、仮想的に、仮想サーバー装置５００、仮想制御装置４００及び仮想シミュレーター７００を実現する。仮想サーバー装置５００、仮想制御装置４００及び仮想シミュレーター７００については、後述する。
【００５４】
なお、プログラム開発支援装置３００に対して、電源の投入がされた直後に、仮想サーバーアプリ３３１、仮想制御アプリ３３３及び仮想シミュレーターアプリ３３４が実行され、仮想サーバー装置５００、仮想制御装置４００及び仮想シミュレーター７００が実行状態となる。
（３）通信部３０５
通信部３０５は、ネットワーク２０を介して、他の装置との間で情報の送受信を行う。
【００５５】
１．５  仮想制御装置４００
仮想制御装置４００は、上述したように、プログラム開発支援装置３００において、仮想制御アプリ３３３が実行状態になることにより、仮想的に実現される装置である。
仮想制御装置４００は、図７に示すように、制御部４０１、ブラウザー判定部４０２、記憶部４０４、通信部４０５及び実行部４０６から構成されている。
【００５６】
制御部４０１、ブラウザー判定部４０２、通信部４０５及び実行部４０６は、マイクロプロセッサー３０１が仮想制御アプリ３３３を実行することにより、仮想的に実現される。
（１）記憶部４０４
記憶部４０４は、ハードディスクデバイス３０４により、実現される。
【００５７】
記憶部４０４は、図７に示すように、対応表４２１、仮想クライアントアプリケーションプログラム（以下、仮想クライアントアプリと称する。）４３１、４３２、・・・を記憶している。
仮想クライアントアプリ４３１、４３２、・・・のいずれか一つが、マイクロプロセッサー３０１により、実行状態になることにより、仮想的に、仮想クライアント装置６００、・・・のいずれか１台を実現する。仮想クライアント装置６００、・・・については、後述する。
【００５８】
対応表４２１は、図８に示すように、複数の対応データを含んでいる。各対応データは、仮想クライアントＩＤ及び１個以上のＭＦＰ機種ＩＤから構成される。仮想クライアントＩＤは、仮想クライアントアプリを識別する識別子である。ＭＦＰ機種ＩＤは、ＭＦＰの機種を識別する識別子である。
対応表４２１は、図７に示すように、対応データ４２４を含む。対応データ４２４は、仮想クライアントＩＤ（４２２）「１」及びＭＦＰ機種ＩＤ（４２３）「１００１」を含む。対応データ４２４は、仮想クライアント装置に含まれるブラウザープログラムと同一仕様のブラウザープログラムが、ＭＦＰ機種ＩＤ（４２３）「１００１」により識別されるＭＦＰに含まれていることを示している。言い換えると、対応データ４２４は、仮想クライアント装置に含まれるブラウザー機能と同一仕様のブラウザー機能が、ＭＦＰ機種ＩＤ（４２３）「１００１」により識別されるＭＦＰに含まれていることを示している。当該仮想クライアント装置は、仮想クライアントＩＤ（４２２）「１」により識別される仮想クライアントアプリが実行されることにより仮想的に実現される。
【００５９】
（２）ブラウザー判定部４０２
ブラウザー判定部４０２は、以下に示すようにして、複数のブラウザーの中から、ＭＦＰ機種ＩＤにより示されるＭＦＰが有するブラウザーと同一仕様のブラウザーが存在するか否かを判定する。
ブラウザー判定部４０２は、制御部４０１からＭＦＰ機種ＩＤを受け取る。
【００６０】
次に、ブラウザー判定部４０２は、受け取ったＭＦＰ機種ＩＤと同一のＭＦＰ機種ＩＤが、対応表４２１に含まれているか否かを判定する。
受け取ったＭＦＰ機種ＩＤと同一のＭＦＰ機種ＩＤが、対応表４２１に含まれていないと判定する場合、ブラウザー判定部４０２は、通信部４０５及びネットワーク２０を介して、ＭＦＰ機種ＩＤが対応表４２１に含まれていないことを示すメッセージを、クライアントＰＣ（１００）に対して、送信する。
【００６１】
受け取ったＭＦＰ機種ＩＤと同一のＭＦＰ機種ＩＤが、対応表４２１に含まれていると判定する場合、ブラウザー判定部４０２は、対応表４２１から、受け取ったＭＦＰ機種ＩＤと同一のＭＦＰ機種ＩＤと対応する仮想クライアントＩＤを読み出す。これにより、仮想クライアントアプリが選択される。次に、ブラウザー判定部４０２は、読み出した仮想クライアントＩＤを実行部４０６に対して、出力する。
【００６２】
（３）実行部４０６
実行部４０６は、ブラウザー判定部４０２から、仮想クライアントＩＤを受け取る。次に、実行部４０６は、記憶部４０４に記憶されている仮想クライアントアプリ４３１、４３２、・・・のうち、受け取った仮想クライアントＩＤにより識別される前記仮想クライアントアプリを読み出す。次に、読み出した仮想クライアントアプリを起動して実行状態とする。これにより、仮想クライアント装置６００が実行状態となる。こうして、仮想クライアント装置６００が仮想的に実現される。
【００６３】
（４）通信部４０５
通信部４０５は、クライアントＰＣ（１００）との間で、情報の送受信を行い、プログラム作成サーバー装置２００との間で、情報の送受信を行う。また、通信部４０５は、仮想サーバー装置５００との間で、情報の送受信を行い、また、仮想クライアント装置６００との間で、情報の送受信を行う。
【００６４】
（５）制御部４０１
制御部４０１は、プログラム作成サーバー装置２００から、制御プログラムのプレビュー画面の生成の指示とともに、制御プログラムを受信する。次に、制御部４０１は、受信した制御プログラムを仮想サーバー装置５００に対して送信する。
制御部４０１は、クライアントＰＣ（１００）から、ＭＦＰ機種ＩＤ及びライセンス情報を受信する。次に、制御部４０１は、ＭＦＰ機種ＩＤをブラウザー判定部４０２に対して出力する。
【００６５】
ブラウザー判定部４０２により、受け取ったＭＦＰ機種ＩＤと同一のＭＦＰ機種ＩＤが、対応表４２１に含まれていると判定される場合、制御部４０１は、通信部４０５及びネットワーク２０を介して、クライアントＰＣ（１００）に対して、フレームを送信する。ここで、フレームは、クライアントＰＣ（１００）で実行状態のブラウザーにおいて、表示されるべき画像のフレームである。
【００６６】
制御部４０１は、仮想クライアント装置６００に対して、制御プログラムを識別するプログラム識別番号を出力することにより、制御プログラムを指定する。また、制御部４０１は、仮想クライアント装置６００に対して、ＭＦＰ機種ＩＤ及びライセンス情報を出力する。
制御部４０１は、実行状態の前記仮想クライアントアプリ、つまり、仮想クライアント装置６００に対して、仮想クライアント装置６００が有するブラウザープログラムを用いて、前記制御プログラムに従って描画させ、画像データを生成させる。
【００６７】
１．６  仮想サーバー装置５００
仮想サーバー装置５００は、上述したように、プログラム開発支援装置３００において、仮想サーバーアプリ３３１が実行状態になることにより、仮想的に実現される装置である。
仮想サーバー装置５００は、図９に示すように、制御部５０１、記憶部５０４及び通信部５０５から構成されている。
【００６８】
制御部５０１及び通信部５０５は、マイクロプロセッサー３０１が仮想サーバーアプリ３３１を実行することにより、仮想的に実現される。
（１）記憶部５０４
記憶部５０４は、ハードディスクデバイス３０４から構成されている。記憶部５０４は、制御プログラム５２１を記憶するための領域を備えている。
【００６９】
（２）制御部５０１
制御部５０１は、通信部５０５を介して、仮想制御装置４００から制御プログラムを受け取る。次に、受け取った制御プログラムを、制御プログラム５２１として、記憶部５０４に書き込む。
また、制御部５０１は、仮想クライアント装置６００から、通信部５０５を介して、制御プログラムを識別するプログラム識別番号を受信する。次に、制御部５０１は、記憶部５０４から、受信したプログラム識別番号により識別される制御プログラムを読み出す。次に、読み出した制御プログラムを、通信部５０５を介して、仮想クライアント装置６００に対して送信する。
【００７０】
（３）通信部５０５
通信部５０５は、仮想制御装置４００との間で、また、仮想クライアント装置との間で、情報の送受信を行う。
１．７  仮想クライアント装置６００
仮想クライアント装置６００は、上述したように、プログラム開発支援装置３００において、仮想クライアントアプリ４３１、４３２、・・・のいずれか一つが実行状態になることにより、仮想的に実現される装置である。
【００７１】
仮想クライアント装置６００は、図１０に示すように、制御部６０１、画像データ生成部６０２、シミュレーター制御部６０３、記憶部６０４、通信部６０５、差替判定部６０６、画像差替部６０７及びブラウザー制御部６０８から構成されている。シミュレーター制御部６０３は、内部コマンド判定部６１１を含む。
制御部６０１、画像データ生成部６０２、シミュレーター制御部６０３、通信部６０５、差替判定部６０６、画像差替部６０７、ブラウザー制御部６０８及び内部コマンド判定部６１１は、マイクロプロセッサー３０１が仮想クライアントアプリ４３１、４３２、・・・のいずれか一つを実行することにより、仮想的に実現される。
【００７２】
（１）記憶部６０４
記憶部６０４は、ハードディスクデバイス３０４から構成されている。記憶部６０４は、制御プログラム６３１、ブラウザーアプリ６３２及び画像データ６３４を記憶するための領域を備えている。
制御プログラム６３１は、仮想サーバー装置５００から受け取った制御プログラムである。
【００７３】
ブラウザーアプリ６３２は、マークアップ言語により記述された制御プログラムに従って、表示動作をするブラウザーアプリケーションプログラムである。
画像データ６３４は、ブラウザーアプリ６３２を実行状態としたブラウザーにより描画された画像を表すデータである。
（２）シミュレーター制御部６０３
シミュレーター制御部６０３は、内部コマンド判定部６１１を含む。
【００７４】
内部コマンド判定部６１１は、以下に示すようにして、記憶部６０４に記憶されている制御プログラムの中に、ＭＦＰに固有の動作を要求する内部コマンドが含まれるか否かを判定する。
内部コマンドには、例えば、印刷を要求するコマンド、スキャンを要求するコマンド、ファクシミリによる送信を要求するコマンドがある。また、内部コマンドの別の一例は、ＭＦＰが保持するトナーの残量を取得するコマンドであり、さらに、別の一例は、ＭＦＰにセットされた用紙の残り枚数を取得するコマンドである。
【００７５】
内部コマンド判定部６１１は、あらかじめ、これらの内部コマンドを記載したコマンドリスト６５１を保持している。
内部コマンド判定部６１１は、制御プログラムに含まれるコマンドが、コマンドリスト６５１に記載されている内部コマンドと一致するか否かを確認する。これにより、制御プログラムの中に内部コマンドが含まれるか否かを判定する。
【００７６】
制御プログラムの中に、ＭＦＰに固有の動作を要求する内部コマンドが含まれると判定される場合、シミュレーター制御部６０３は、シミュレートのリクエストを、通信部６０５を介して、仮想シミュレーター７００に対して送信する。また、シミュレーター制御部６０３は、制御プログラムのうち、内部コマンドを含むタグを、ブラウザー制御部６０８が受信したＭＦＰ機種ＩＤとともに、通信部６０５を介して、仮想シミュレーター７００に対して送信する。なお、制御プログラムが内部コマンドを含む場合、当該制御プログラムを仮想シミュレーター７００に対して送信してもよい。
【００７７】
制御プログラムの中に、ＭＦＰの状態に応じた動作をする内部コマンドが含まれないと判定される場合、シミュレーター制御部６０３は、シミュレートのリクエストを仮想シミュレーター７００に対して送信しない。
差替判定部６０６により、前記制御プログラム内に差替領域が存在すると判定される場合、シミュレーター制御部６０３は、以下のようにして、仮想シミュレーター７００が差替画像を保持しているか否かを判定する。
【００７８】
シミュレーター制御部６０３は、あらかじめ、表示項目を示す表示項目識別子と、仮想シミュレーター７００に保持されている差替画像を示す差替画像識別子とを対応付けて含むリストを保持している。シミュレーター制御部６０３は、このリストを用いて、前記制御プログラムに含まれる表示項目を示す表示項目識別子が、このリストに含まれるか否かを判定する。前記制御プログラムに含まれる表示項目を示す表示項目識別子が、このリストに含まれる場合、シミュレーター制御部６０３は、仮想シミュレーター７００が差替画像を保持していると判定する。
【００７９】
シミュレーター制御部６０３は、仮想シミュレーター７００が差替画像を保持していると判定する場合、差替画像のリクエストを、通信部６０５を介して、仮想シミュレーター７００に対して送信する。
シミュレーター制御部６０３は、仮想シミュレーター７００が差替画像を保持していないと判定する場合、差替画像のリクエストを、通信部６０５及びネットワーク２０を介して、外部サーバー装置８００に対して送信する。
【００８０】
差替判定部６０６により、前記制御プログラム内に差替領域が存在しないと判定される場合、シミュレーター制御部６０３は、上記の差替画像の取得を行わない。
（３）差替判定部６０６
差替判定部６０６は、仮想制御装置４００から仮想クライアント装置６００に対して、ライセンス情報が送信された場合、ブラウザー制御部６０８から当該ライセンス情報を受け取る。
【００８１】
差替判定部６０６は、以下に示すようにして、受け取ったライセンス情報を用いて、記憶部６０４に記憶されている制御プログラム６３１内に差替領域が存在するか否かを、判定する。
差替判定部６０６は、記憶部６０４に記憶されている制御プログラム６３１から、フォント識別名称を抽出する。次に、抽出したフォント識別名称がライセンス情報に含まれているか否かを判定する。
【００８２】
抽出したフォント識別名称がライセンス情報に含まれていないと判定する場合、又は、差替判定部６０６がライセンス情報を受け取っていない場合、差替判定部６０６は、差替領域が存在すると判定する。言い換えると、差替判定部６０６は、前記制御プログラムに含まれる表示項目について、ライセンス情報を取得できていない場合、又は、取得した前記ライセンス情報により、使用許可がされていないと判定する場合、前記制御プログラム内に差替領域が存在すると判定する。
【００８３】
抽出したフォント識別名称がライセンス情報に含まれていると判定される場合、差替判定部６０６は、差替領域が存在しないと判定する。言い換えると、差替判定部６０６は、前記制御プログラムに含まれる表示項目について、取得した前記ライセンス情報により、使用許可がされていると判定する場合、前記制御プログラム内に差替領域が存在しないと判定する。
【００８４】
（４）画像差替部６０７
画像差替部６０７は、仮想シミュレーター７００から、又は、外部サーバー装置８００から、差替画像を受信する。仮想シミュレーター７００から、又は、外部サーバー装置８００から、差替画像を受信した場合、画像差替部６０７は、制御プログラムにより含まれる表示項目について、受信した差替画像に差し替える。
【００８５】
（５）ブラウザー制御部６０８
ブラウザー制御部６０８は、以下に示すようにして、仮想制御装置４０１のブラウザー判定部４０２により、複数のブラウザーの中から、ＭＦＰ機種ＩＤにより示されるＭＦＰが有するブラウザーと同一仕様のブラウザーが存在すると判定される場合、前記ＭＦＰが有するブラウザー機能と同一仕様のブラウザー機能を有する仮想クライアント装置６００により、前記制御プログラムに従って描画させることにより、画像データを生成させる。
【００８６】
ブラウザー制御部６０８は、記憶部６０４に記憶されているブラウザーアプリ６３２を起動し、実行状態にする。
また、ブラウザー制御部６０８は、仮想制御装置４００から、制御プログラムを識別するプログラム識別番号を受信する。次に、制御部６０１の制御により、受信したプログラム識別番号を仮想サーバー装置５００に送信する。また、ブラウザー制御部６０８は、仮想制御装置４００から、ＭＦＰ機種ＩＤ及びライセンス情報を受信する。受信したライセンス情報を差替判定部６０６に対して出力し、受信したＭＦＰ機種ＩＤをシミュレーター制御部６０３に対して出力する。
【００８７】
また、ブラウザー制御部６０８は、仮想サーバー装置５００から、通信部６０５を介して、制御プログラムを受信する。次に、受信した制御プログラムを記憶部６０４に書き込む。
また、ブラウザー制御部６０８は、仮想シミュレーター７００から、通信部６０５を介して、状態表示のための制御プログラムを受信する
さらに、ブラウザー制御部６０８は、実行状態のブラウザーに対して、記憶部６０４に記憶されている制御プログラム６３１及び仮想シミュレーター７００から受信した制御プログラムに従って、ＭＰＦの操作パネルに表示されるべき画像を描画するように、制御する。
【００８８】
（６）画像データ生成部６０２
画像データ生成部６０２は、ブラウザーにより描画される画像から、画像データを生成する。次に、通信部６０５は、画像データを仮想制御装置４００を介して、クライアントＰＣ（１００）に対して、送信する。
（７）制御部６０１
制御部６０１は、仮想サーバー装置５００に対して、通信部６０５を介して、制御プログラムを識別するプログラム識別番号を出力することにより、制御プログラムを指定する。
【００８９】
（８）通信部６０５
通信部６０５は、仮想制御装置４００との間で、仮想サーバー装置５００との間で、仮想シミュレーター７００との間で、及び、外部サーバー装置８００との間で、情報の送受信を行う。
通信部６０５は、画像データ生成部６０２により生成された画像データを仮想制御装置４００を介して、クライアントＰＣ（１００）に対して、送信する。
【００９０】
１．８  仮想シミュレーター７００
仮想シミュレーター７００は、上述したように、プログラム開発支援装置３００において、仮想シミュレーターアプリ３３４が実行状態になることにより、仮想的に実現される装置である。
仮想シミュレーター７００は、図１１に示すように、制御部７０１、ＭＦＰシミュレート部７０２、記憶部７０４及び通信部７０５から構成されている。制御部７０１、ＭＦＰシミュレート部７０２及び通信部７０５は、マイクロプロセッサー３０１が仮想シミュレーターアプリ３３４を実行することにより、仮想的に実現される。
【００９１】
（１）記憶部７０４
記憶部７０４は、ハードディスクデバイス３０４から構成されている。記憶部７０４は、タグ７３１及び差替画像７３２を記憶するための領域を備えている。
タグ７３１は、仮想クライアント装置６００が仮想サーバー装置５００から受け取った制御プログラムのうちの一部分であり、内部コマンドを含む。
【００９２】
差替画像７３２は、制御プログラムに含まれる表示項目について、差し替えられるべき画像である。
（２）ＭＦＰシミュレート部７０２
ＭＦＰシミュレート部７０２は、仮想クライアント装置６００から、通信部７０５を介して、リクエスト、ＭＦＰ機種ＩＤ及びタグを受信する。次に、ＭＦＰシミュレート部７０２は、受信したタグに含まれる内部コマンドに従って、ＭＦＰ機種ＩＤにより示されるＭＦＰにおける動作を、模擬的に行う。なお、ＭＦＰに対して、現実の動作を要求するのではなく、また、ＭＦＰが現実に動作するのではないことに、注意を要する。
【００９３】
ＭＦＰシミュレート部７０２は、図１１に示すように、プロトコル制御部７１１、ＭＦＰ機能制御部７１２、Ｆａｘ部７１３、Ｓｃａｎ部７１４及びＰｒｉｎｔ部７１５を含む。
プロトコル制御部７１１は、受け取ったタグをプロトコルに従って処理する。ＭＦＰ機能制御部７１２は、Ｆａｘ部７１３、Ｓｃａｎ部７１４及びＰｒｉｎｔ部７１５を制御する。Ｆａｘ部７１３は、ＭＦＰのファクシミリ機能をシミュレートし、Ｓｃａｎ部７１４は、ＭＦＰのスキャン機能をシミュレートし、Ｐｒｉｎｔ部７１５は、ＭＦＰの印刷機能をシミュレートする。
【００９４】
一例として、内部コマンドが、原稿のスキャンを要求するコマンドである場合、当該内部コマンドに従って、Ｓｃａｎ部７１４は、模擬的に原稿のスキャンを行う。このとき、Ｓｃａｎ部７１４は、スキャンの際の設定項目のチェックを行う。例えば、設定された解像度が、設定されたファイル形式のタイプにおいて存在しないものである場合には、セッティングの不正であると判定し、セッティングの不正を示すメッセージを表示する制御プログラムを生成する。この制御プログラムは、当該内部コマンドによる動作直後のＭＦＰの操作パネルにおける表示動作を規定し、マークアップ言語により記述された状態表示のための制御プログラムである。
【００９５】
こうして生成された制御プログラムにより表示される画面の一例を図１２に示す。
図１２に示す画面７４１は、セッティングが不正であることを示すメッセージを含んでいる。
また、例えば、Ｓｃａｎ部７１４は、一例として、模擬的にスキャンされたデータを格納するメモリの不足を検出し、メモリ不足を示すメッセージを表示する制御プログラムを生成する。この制御プログラムは、マークアップ言語により記述される。
【００９６】
また、例えば、ＭＦＰ機種ＩＤにより示されるＭＦＰが、１００ｄｐｉ×１００ｄｐｉ、２００ｄｐｉ×２００ｄｐｉ及び４００ｄｐｉ×４００ｄｐｉの解像度によるスキャン機能を有している場合に、１００ｄｐｉ×１００ｄｐｉ、２００ｄｐｉ×２００ｄｐｉ、３００ｄｐｉ×３００ｄｐｉ及び４００ｄｐｉ×４００ｄｐｉの解像度の選択肢が設定されている場合、Ｓｃａｎ部７１４は、スキャンの際の設定項目のチェックを行い、セッティングの不正であると判定し、セッティングの不正を示すメッセージを表示する制御プログラムを生成する。この制御プログラムは、マークアップ言語により記述される。
【００９７】
別の一例として、内部コマンドが、印刷を要求するコマンドである場合、当該内部コマンドに従って、Ｐｒｉｎｔ部７１５は、模擬的に印刷を行う。次に、Ｐｒｉｎｔ部７１５は、一例として、模擬的に用紙切れを検出し、用紙切れを示すメッセージを表示する制御プログラムを生成する。この制御プログラムは、マークアップ言語により記述される。
別の一例として、内部コマンドが、原稿のファクシミリによる送信を要求するコマンドである場合、当該内部コマンドに従って、Ｆａｘ部７１３は、模擬的に原稿の送信を試みる。次に、Ｆａｘ部７１３は、一例として、模擬的に、送信先が通話中であることを検出し、通話中を示すメッセージを表示する制御プログラムを生成する。この制御プログラムは、マークアップ言語により記述される。
【００９８】
別の一例として、内部コマンドが、ＭＦＰが保持するトナーの残量を取得するコマンドである場合、当該内部コマンドに従って、Ｐｒｉｎｔ部７１５は、模擬的にＭＦＰのトナーの残量を取得する。例えば、Ｐｒｉｎｔ部７１５は、乱数を生成し、生成した乱数に基づいて、トナーの残量を算出する。次に、Ｐｒｉｎｔ部７１５は、取得したトナーの残量が２０パーセント未満であれば、その旨を示すメッセージを表示する制御プログラムを生成する。この制御プログラムは、マークアップ言語により記述される。
【００９９】
別の一例として、内部コマンドがＭＦＰにセットされた用紙の残り枚数を取得するコマンドである場合、当該内部コマンドに従って、Ｐｒｉｎｔ部７１５は、模擬的に用紙の残り枚数を取得する。例えば、Ｐｒｉｎｔ部７１５は、乱数を生成し、生成した乱数に基づいて、残り枚数を算出する。次に、Ｐｒｉｎｔ部７１５は、取得した用紙の残り枚数が１０パーセント未満であれば、その旨を示すメッセージを表示する制御プログラムを生成する。この制御プログラムは、マークアップ言語により記述される。
【０１００】
次に、ＭＦＰシミュレート部７０２は、生成した制御プログラムを、通信部７０５を介して、仮想クライアント装置６００に対して送信する。
（３）制御部７０１
制御部７０１は、通信部７０５を介して、仮想クライアント装置６００から、差替画像のリクエストを受信する。次に、リクエストを受信すると、制御部７０１は、リクエストに応じて、記憶部７０４から差替画像７３２を読み出す。次に、制御部７０１は、読み出した差替画像を、通信部７０５を介して、仮想クライアント装置６００に対して、送信する。
【０１０１】
（４）通信部７０５
通信部７０５は、仮想制御装置４００との間で、及び、仮想クライアント装置６００との間で、情報の送受信を行う。
１．９  外部サーバー装置８００
外部サーバー装置８００は、図１３に示すように、制御部８０１、記憶部８０４及び通信部８０５から構成されている。
【０１０２】
外部サーバー装置８００は、具体的には、マイクロプロセッサー、ＲＯＭ、ＲＡＭ、ハードディスクデバイスなどから構成されるコンピューターシステムである。前記ハードディスクデバイスには、コンピュータープログラムが記憶されている。前記マイクロプロセッサーが、前記コンピュータープログラムに従って動作することにより、外部サーバー装置８００は、その機能を達成する。
【０１０３】
（１）記憶部８０４
記憶部８０４は、一例として、ハードディスクデバイスから構成されている。記憶部８０４は、差替画像８３１を記憶している。差替画像８３１は、制御プログラムに含まれる表示項目について、差し替えられるべき画像である。
（２）制御部８０１
制御部８０１は、通信部８０５を介して、仮想クライアント装置６００から、差替画像のリクエストを受信する。
【０１０４】
次に、リクエストを受信すると、制御部８０１は、リクエストに応じて、記憶部８０４から差替画像８３１を読み出す。次に、制御部８０１は、読み出した差替画像を、通信部８０５を介して、仮想クライアント装置６００に対して、送信する。
（３）通信部８０５
通信部８０５は、ネットワーク２０を介して、仮想クライアント装置６００との間で、情報の送受信を行う。
【０１０５】
１．１０  プログラム開発支援システム１０の動作
プログラム開発支援システム１０の動作について、図１４〜図１６に示すシーケンス図を用いて、説明する。
クライアントＰＣ（１００）のキーボード１０８は、ユーザーからブラウザーアプリ１２１を起動する指示を受け付ける。次に、マイクロプロセッサー１０１は、ブラウザーアプリ１２１を実行する。これにより、クライアントＰＣ（１００）において、ブラウザーが実行状態となる（ステップＳ１０１）。
【０１０６】
次に、キーボード１０８は、ユーザーから制御プログラムの作成のリクエストを受け付ける。次に、通信部１０５は、受け付けたリクエストを、ネットワーク２０を介して、プログラム作成サーバー装置２００に対して、送信する（ステップＳ１０２）。プログラム作成サーバー装置２００のＨＴＭＬエディタ部２０６は、クライアントＰＣ（１００）から、ネットワーク２０、通信部２０５、ウェブサービスインタフェース部２０１及びサービスユーザーインタフェース部２０２を介して、プログラム作成のリクエストを受け取る（ステップＳ１０２）。
【０１０７】
次に、クライアントＰＣ（１００）とプログラム作成サーバー装置２００とは、ネットワーク２０を介して、情報を送受信し、プログラム作成サーバー装置２００のＨＴＭＬエディタ部２０６は、制御プログラムを作成する（ステップＳ１０３、Ｓ１０４、Ｓ１０５、Ｓ１０６、・・・）。
制御プログラムの作成が完了すると、ＨＴＭＬエディタ部２０６は、制御プログラムの作成が完了したことを示す完了通知を生成する。次に、生成した完了通知を、ネットワーク２０を介して、クライアントＰＣ（１００）に対して送信する（ステップＳ１０７）。通信部１０５は、ネットワーク２０を介して、完了通知を受け取る（ステップＳ１０７）。
【０１０８】
完了通知を受け取ると、クライアントＰＣ（１００）の実行状態のブラウザーは、ユーザーの指示により、制御プログラムのプレビュー要求を、通信部１０５及びネットワーク２０を介して、プログラム作成サーバー装置２００に対して送信する（ステップＳ１０８）。プログラム作成サーバー装置２００のプレビュー制御部２０３は、クライアントＰＣ（１００）から、ネットワーク２０、通信部２０５、ウェブサービスインタフェース部２０１及びサービスユーザーインタフェース部２０２を介して、プレビュー要求を受け取る（ステップＳ１０８）。
【０１０９】
次に、プレビュー要求を受け取ると、プログラム作成サーバー装置２００のプレビュー制御部２０３は、サービスユーザーインタフェース部２０２、ウェブサービスインタフェース部２０１及び通信部２０５を介して、作成が完了した制御プログラムを、プログラム開発支援装置３００に対して、送信する（ステップＳ１０９）。仮想制御装置４００の制御部４０１は、通信部４０５を介して、制御プログラムを受信する（ステップＳ１０９）。次に、制御部４０１は、受信した制御プログラムを仮想サーバー装置５００に対して送信する（ステップＳ１１０）。仮想サーバー装置５００の通信部５０５は、仮想制御装置４００から制御プログラムを受信し（ステップＳ１１０）、受信した制御プログラムを記憶部５０４に書き込む（ステップＳ１１１）。
【０１１０】
次に、プレビュー要求を受け取ると、プログラム作成サーバー装置２００のプレビュー制御部２０３は、プログラム開発支援装置３００のネットワーク２０における存在位置を示すＵＲＬを内部から読み出す。次に、読み出したＵＲＬを、サービスユーザーインタフェース部２０２、ウェブサービスインタフェース部２０１及び通信部２０５を介して、クライアントＰＣ（１００）に対して送信する（ステップＳ１１２）。クライアントＰＣ（１００）で実行状態にあるブラウザーは、プログラム作成サーバー装置２００から、ネットワーク２０及び通信部１０５を介して、ＵＲＬを受け取る（ステップＳ１１２）。
【０１１１】
次に、クライアントＰＣ（１００）で実行状態にあるブラウザーは、ユーザーからＭＦＰの機種を示すＭＦＰ機種ＩＤの入力を受け付ける。また、制御プログラムに含まれる表示項目について、使用許否を示すライセンス情報１２２をハードディスクデバイス１０４から読み出す。次に、クライアントＰＣ（１００）で実行状態にあるブラウザーは、受け取ったＵＲＬを指定して、入力を受け付けたＭＦＰ機種ＩＤ及び読み出したライセンス情報を、通信部１０５及びネットワーク２０を介して、プログラム開発支援装置３００に対して送信する（ステップＳ１１３）。仮想制御装置４００のブラウザー判定部４０２は、クライアントＰＣ（１００）から、ネットワーク２０及び通信部４０５を介して、ＭＦＰ機種ＩＤ及びライセンス情報を受け取る（ステップＳ１１３）。
【０１１２】
ブラウザー判定部４０２は、受け取ったＭＦＰ機種ＩＤと同一のＭＦＰ機種ＩＤが、対応表４２１に含まれているか否かを判定する（ステップＳ１１４）。受け取ったＭＦＰ機種ＩＤと同一のＭＦＰ機種ＩＤが、対応表４２１に含まれていないと判定する場合（ステップＳ１１５で「無し」）、ブラウザー判定部４０２は、通信部４０５及びネットワーク２０を介して、ＭＦＰ機種ＩＤが対応表４２１に含まれていないことを示すメッセージを、クライアントＰＣ（１００）に対して、送信する（ステップＳ１１６）。クライアントＰＣ（１００）で実行状態にあるブラウザーは、プログラム開発支援装置３００から、ネットワーク２０及び通信部１０５を介して、メッセージを受信する（ステップＳ１１６）。次に、クライアントＰＣ（１００）で実行中のブラウザーは、受信したメッセージを表示する（ステップＳ１１７）。次に、クライアントＰＣ（１００）で実行中のブラウザーは、処理を終了する。
【０１１３】
受け取ったＭＦＰ機種ＩＤと同一のＭＦＰ機種ＩＤが、記憶部４０４に記憶されている対応表４２１に含まれていると判定する場合（ステップＳ１１５で「有り」）、制御部４０１は、通信部４０５及びネットワーク２０を介して、クライアントＰＣ（１００）に対して、フレームを送信する（ステップＳ１１８）。フレームは、クライアントＰＣ（１００）で実行状態のブラウザーにおいて、表示されるべき画像のフレームである。クライアントＰＣ（１００）で実行状態のブラウザーは、プログラム開発支援装置３００から、通信部１０５を介して、フレームを受信する（ステップＳ１１８）。次に、ブラウザーは、フレームを表示する（ステップＳ１１９）。
【０１１４】
受け取ったＭＦＰ機種ＩＤと同一のＭＦＰ機種ＩＤが、記憶部４０４に記憶されている対応表４２１に含まれていると判定する場合（ステップＳ１１５で「有り」）、ブラウザー判定部４０２は、対応表４２１から、受け取ったＭＦＰ機種ＩＤと同一のＭＦＰ機種ＩＤと対応する仮想クライアントＩＤを読み出す。これにより、仮想クライアントアプリを選択する（ステップＳ１２０）。次に、ブラウザー判定部４０２は、読み出した仮想クライアントＩＤを実行部４０６に対して、出力する。実行部４０６は、仮想クライアントＩＤを受け取り、受け取った仮想クライアントＩＤにより識別される仮想クライアントアプリを、記憶部４０４から読み出し、読み出した仮想クライアントアプリを起動して実行状態とする（ステップＳ１２１）。これにより、仮想クライアント装置６００が実行状態となる。
【０１１５】
次に、制御部４０１は、仮想クライアント装置６００に対して、制御プログラムを識別するプログラム識別番号を出力することにより、制御プログラムを指定する（ステップＳ１２２）。仮想クライアント装置６００のブラウザー制御部６０８は、仮想制御装置４００から、プログラム識別番号を受信する（ステップＳ１２２）。次に、制御部４０１は、仮想クライアント装置６００に対して、ＭＦＰ機種ＩＤ及びライセンス情報を出力する（ステップＳ１２３）。仮想クライアント装置６００のブラウザー制御部６０８は、仮想制御装置４００から、ＭＦＰ機種ＩＤ及びライセンス情報を受信する（ステップＳ１２３）。
【０１１６】
次に、仮想クライアント装置６００の制御部６０１は、仮想サーバー装置５００に対して、通信部６０５を介して、制御プログラムを識別するプログラム識別番号を出力することにより、制御プログラムを指定する（ステップＳ１２４）。次に、制御部５０１は、仮想クライアント装置６００から、通信部５０５を介して、プログラム識別番号を受信する（ステップＳ１２４）。次に、制御部５０１は、記憶部５０４から受信したプログラム識別番号により識別される制御プログラムを読み出す（ステップＳ１２５）。次に、読み出した制御プログラムを、通信部５０５を介して、仮想クライアント装置６００に対して送信する（ステップＳ１２６）。次に、仮想クライアント装置６００のブラウザー制御部６０８は、仮想サーバー装置５００から、通信部６０５を介して、制御プログラムを受信する（ステップＳ１２６）。
【０１１７】
シミュレーター制御部６０３の内部コマンド判定部６１１は、制御プログラムの中に、ＭＦＰに固有の動作を要求する内部コマンドが含まれるか否かを判定する（ステップＳ１２７）。
制御プログラムの中に、ＭＦＰに固有の動作を要求する内部コマンドが含まれると判定される場合（ステップＳ１２７で「有り」）、シミュレーター制御部６０３は、シミュレートのリクエスト、ＭＦＰ機種ＩＤ及び制御プログラムのうち内部コマンドを含むタグを、通信部６０５を介して、仮想シミュレーター７００に対して送信する（ステップＳ１２８）。仮想シミュレーター７００のＭＦＰシミュレート部７０２は、仮想クライアント装置６００から、通信部７０５を介して、リクエスト、ＭＦＰ機種ＩＤ及びタグを受信する（ステップＳ１２８）。
【０１１８】
次に、ＭＦＰシミュレート部７０２は、受信したタグに含まれる内部コマンドに従って、ＭＦＰ機種ＩＤにより示されるＭＦＰを模擬的に動作させる。次に、当該内部コマンドによる動作直後のＭＦＰの操作パネルにおける表示動作を規定し、マークアップ言語により記述された状態表示のための制御プログラムを生成する（ステップＳ１２９）。
次に、ＭＦＰシミュレート部７０２は、生成した状態表示のための制御プログラムを、通信部７０５を介して、仮想クライアント装置６００に対して送信する（ステップＳ１３０）。仮想クライアント装置６００のブラウザー制御部６０８は、仮想シミュレーター７００から、通信部６０５を介して、状態表示のための制御プログラムを受信する（ステップＳ１３０）。
【０１１９】
制御プログラムの中に、ＭＦＰに固有の動作を要求する内部コマンドが含まれないと判定される場合（ステップＳ１２７で「無し」）、シミュレーター制御部６０３は、シミュレートのリクエストを仮想シミュレーター７００に対して送信しない。
次に、差替判定部６０６は、前記制御プログラム内に差替領域が存在するか否かを判定する（ステップＳ１３１）。
【０１２０】
前記制御プログラム内に差替領域が存在すると判定される場合（ステップＳ１３１で「有り」）、シミュレーター制御部６０３は、仮想シミュレーター７００に差替画像が存在するか否かを判定する（ステップＳ１３２）。シミュレーター制御部６０３は、仮想シミュレーター７００に差替画像が存在すると判定する場合（ステップＳ１３２で「有り」）、差替画像のリクエストを、通信部６０５を介して、仮想シミュレーター７００に対して送信する（ステップＳ１３３）。仮想シミュレーター７００の制御部７０１は、通信部７０５を介して、仮想クライアント装置６００から、差替画像のリクエストを受信する（ステップＳ１３３）。
【０１２１】
次に、リクエストを受信すると、制御部７０１は、リクエストに応じて、記憶部７０４から差替画像７３２を読み出す（ステップＳ１３４）。次に、制御部７０１は、読み出した差替画像を、通信部７０５を介して、仮想クライアント装置６００に対して、送信する（ステップＳ１３５）。次に、仮想クライアント装置６００の画像差替部６０７は、仮想シミュレーター７００から、通信部６０５を介して、差替画像を受信する（ステップＳ１３５）。
【０１２２】
シミュレーター制御部６０３は、仮想シミュレーター７００に差替画像が存在しないと判定する場合（ステップＳ１３２で「無し」）、差替画像のリクエストを、通信部６０５及びネットワーク２０を介して、外部サーバー装置８００に対して送信する（ステップＳ１３６）。外部サーバー装置８００の制御部８０１は、通信部８０５を介して、仮想クライアント装置６００から、差替画像のリクエストを受信する（ステップＳ１３６）。
【０１２３】
次に、リクエストを受信すると、制御部８０１は、リクエストに応じて、記憶部８０４から差替画像８３１を読み出す（ステップＳ１３７）。次に、制御部８０１は、読み出した差替画像を、通信部８０５を介して、仮想クライアント装置６００に対して、送信する（ステップＳ１３８）。次に、仮想クライアント装置６００の画像差替部６０７は、外部サーバー装置８００から、通信部６０５を介して、差替画像を受信する（ステップＳ１３８）。
【０１２４】
仮想シミュレーター７００から、又は、外部サーバー装置８００から、差替画像を受信した場合、画像差替部６０７は、制御プログラムに含まれる表示項目について、受信した差替画像に差し替える（ステップＳ１３９）。
仮想クライアント装置６００の差替判定部６０６により、前記制御プログラム内に差替領域が存在しないと判定される場合（ステップＳ１３１で「無し」）、シミュレーター制御部６０３は、上記の差替画像の取得を行わない。
【０１２５】
次に、仮想クライアント装置６００の画像データ生成部６０２は、ブラウザーにより描画される画像から、画像データを生成する（ステップＳ１４０）。次に、通信部６０５は、画像データを仮想制御装置４００を介して、クライアントＰＣ（１００）に対して、送信する（ステップＳ１４１〜Ｓ１４２）。
クライアントＰＣ（１００）は、仮想クライアント装置６００から、仮想制御装置４００を介して、画像データを受信する（ステップＳ１４１〜Ｓ１４２）。次に、クライアントＰＣ（１００）で実行状態にあるブラウザーは、画像データを、入出力制御部１０６を介して、モニター１０７に出力することにより、画像データを表示する（ステップＳ１４３）。
【０１２６】
２．その他の変形例
本発明について、上記の実施の形態に基づいて説明しているが、上記の実施の形態に限定されない。以下に示すようにしてもよい。
（１）上記のプログラム開発支援システム１０においては、クライアントＰＣ（１００）とプログラム作成サーバー装置２００とは、別々の装置により構成されている。しかし、このような構成には、限定されない。
【０１２７】
クライアントＰＣ（１００）とプログラム作成サーバー装置２００とは、一体として、一台の装置により構成されているとしてもよい。
（２）上記のプログラム開発支援システム１０においては、仮想制御装置４００は、図８に示す対応表４２１を保持している。ブラウザー判定部４０２は、クライアントＰＣ（１００）から、ＭＦＰ機種ＩＤを受け取る。次に、ブラウザー判定部４０２は、受け取ったＭＦＰ機種ＩＤと同一のＭＦＰ機種ＩＤが、対応表４２１に含まれているか否かを判定する。これにより、ＭＦＰが有するブラウザー機能と同一のブラウザー機能を有する仮想クライアントアプリが存在するか否かを判定する。
【０１２８】
しかし、このような構成には、限定されない。
対応表４２１に記憶されている対応データは、仮想クライアントＩＤ及びＭＦＰ機種ＩＤに代えて、仮想クライアントＩＤ、ブラウザーの種類及び版数を含むとしてもよい。
ここで、仮想クライアントＩＤは、仮想クライアントアプリを識別する識別情報である。また、ブラウザーの種類及び版数は、仮想クライアントアプリが有するブラウザーの種類及び版数を示す。
【０１２９】
ブラウザー判定部４０２は、クライアントＰＣ（１００）から、ＭＦＰが有するブラウザーの種類及び版数を受け取る。次に、ブラウザー判定部４０２は、受け取ったブラウザーの種類及び版数と同一の種類及び版数が、対応表４２１に含まれているか否かを判定する。これにより、ＭＦＰが有するブラウザーの種類と版数と同一のブラウザーの種類と版数を有する仮想クライアントアプリが存在するか否かを判定する。
【０１３０】
（３）上記の実施の形態においては、仮想クライアント装置６００において、画像データが生成される。生成された画像データは、仮想制御装置４００を介して、クライアントＰＣ（１００）に送信される。クライアントＰＣ（１００）は、画像データを表示する。
しかし、このような構成には、限定されない。
仮想クライアント装置６００は、画像データを生成し、生成した画像データを高効率に圧縮してもよい。こうして、仮想クライアント装置６００は、圧縮画像データを生成する。圧縮画像データは、一例として、ＪＰＥＧ（Joint Photographic Experts Group）に基づいて生成される。生成された圧縮画像データは、仮想制御装置４００を介して、クライアントＰＣ（１００）に送信される。クライアントＰＣ（１００）は、圧縮画像データを伸張して、元の画像データを生成し、生成した画像データを表示する。
【０１３１】
（４）上記の実施の形態においては、プログラム開発支援装置３００において、仮想的に、仮想制御装置４００、仮想サーバー装置５００、仮想クライアント装置６００及び仮想シミュレーター７００が生成される。しかし、このような構成には、限定されない。
クラウドシステム３０は、プログラム開発支援装置３００に代えて、制御装置４００ａ、サーバー装置５００ａ、クライアント装置６００ａ及びシミュレーター７００ａを含むとしてもよい。
【０１３２】
制御装置４００ａ、サーバー装置５００ａ、クライアント装置６００ａ及びシミュレーター７００ａは、それぞれ、プログラム開発支援装置３００上で動作するコンピュータープログラムではない。制御装置４００ａ、サーバー装置５００ａ、クライアント装置６００ａ及びシミュレーター７００ａは、それぞれ、図７、図９、図１０及び図１１に示すように、実体のある要素から構成される装置である。
【０１３３】
また、制御装置４００ａ、サーバー装置５００ａ、クライアント装置６００ａ及びシミュレーター７００ａは、それぞれ、コンピュータープログラムを記憶している記憶手段と、前記コンピュータープログラムを実行するプロセッサーとを含むコンピューターシステムである。
（５）上述したように、プログラム開発支援装置は、情報処理装置をＭＦＰにおける操作画面の確認のために用いることができる。しかし、これには限定されない。プログラム開発支援装置は、プリンター、コピー機、ファクシミリ及びスキャナー等における操作画面の確認のために用いることができるとしてもよい。
【０１３４】
（６）上述したように、各装置は、マイクロプロセッサーとメモリとを備えたコンピューターシステムである。前記メモリは、コンピュータープログラムを記憶しており、前記マイクロプロセッサーは、前記コンピュータープログラムに従って動作するとしてもよい。
ここで、コンピュータープログラムは、所定の機能を達成するために、コンピューターに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１３５】
また、前記コンピュータープログラムは、コンピューター読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ブルーレィディスク、半導体メモリなどに記録されているとしてもよい。
また、前記コンピュータープログラムを、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するとしてもよい。
【０１３６】
また、前記コンピュータープログラムを前記記録媒体に記録して移送することにより、又は前記コンピュータープログラムをネットワーク等を経由して移送することにより、独立した他のコンピューターシステムにより実行するとしてもよい。
（７）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０１３７】
本発明にかかるプログラム開発支援装置は、情報処理装置を画像形成装置における操作画面の確認のために用いることができるという優れた効果を奏し、画像形成装置の操作パネルにおける表示動作を規定する制御プログラムの、情報処理装置による開発を支援する技術、特に、操作パネルにおいて表示されるべき操作画面の確認を支援する技術として有用である。
【符号の説明】
【０１３８】
１０    プログラム開発支援システム
２０    ネットワーク
３０    クラウドシステム
１００    クライアントＰＣ
１０１    マイクロプロセッサー
１０２    ＲＯＭ
１０３    ＲＡＭ
１０４    ハードディスクデバイス
１０５    通信部
１０６    入出力制御部
１０７    モニター
１０８    キーボード
２００    プログラム作成サーバー装置
２０１    ウェブサービスインタフェース部
２０２    サービスユーザーインタフェース部
２０３    プレビュー制御部
２０４    記憶部
２０５    通信部
２０６    ＨＴＭＬエディタ部
２０７    ＩＷＳコマンド生成部
３００    プログラム開発支援装置
３０１    マイクロプロセッサー
３０２    ＲＯＭ
３０３    ＲＡＭ
３０４    ハードディスクデバイス
３０５    通信部
４００    仮想制御装置
４０１    制御部
４０２    ブラウザー判定部
４０４    記憶部
４０５    通信部
４０６    実行部
５００    仮想サーバー装置
５０１    制御部
５０４    記憶部
５０５    通信部
６００    仮想クライアント装置
６０１    制御部
６０２    画像データ生成部
６０３    シミュレーター制御部
６０４    記憶部
６０５    通信部
６０６    差替判定部
６０７    画像差替部
６０８    ブラウザー制御部
６１１    内部コマンド判定部
７００    仮想シミュレーター
７０１    制御部
７０２    ＭＦＰシミュレート部
７０４    記憶部
７０５    通信部
７１１    プロトコル制御部
７１２    ＭＦＰ機能制御部
７１３    Ｆａｘ部
７１４    Ｓｃａｎ部
７１５    Ｐｒｉｎｔ部
８００    外部サーバー装置
８０１    制御部
８０４    記憶部
８０５    通信部
【図１】
2015041260.tif 000003
【図２】
2015041260.tif 000004
【図３】
2015041260.tif 000005
【図４】
2015041260.tif 000006
【図５】
2015041260.tif 000007
【図６】
2015041260.tif 000008
【図７】
2015041260.tif 000009
【図８】
2015041260.tif 000010
【図９】
2015041260.tif 000011
【図１０】
2015041260.tif 000012
【図１１】
2015041260.tif 000013
【図１２】
2015041260.tif 000014
【図１３】
2015041260.tif 000015
【図１４】
2015041260.tif 000016
【図１５】
2015041260.tif 000017
【図１６】
2015041260.tif 000018