(57)【特許請求の範囲】
【請求項１】
画像形成部と画像読取部との少なくとも一方を含む複数のハードウェアと、
前記複数のハードウェアを制御する複数のサービスプログラムと、前記サービスプログラムを介して前記ハードウェアを動作させることにより互いに異なる複数の機能を実現する複数のアプリケーションプログラムと、を記憶する記憶部と、
制御部と、
を備え、
前記制御部は、
前記複数の機能の中から１つの機能を選択する選択指示を取得する指示取得処理と、
前記複数の機能の内の特定の機能に対応付けられた仮想アプリケーションプログラムと、前記仮想アプリケーションプログラムに利用される仮想サービスプログラムと、を記憶する端末装置からの実行指示に応じて前記特定の機能を実行するシミュレーションモードであるか否かを判定する判定処理と、
前記シミュレーションモードではないと判定した場合に、取得された前記選択指示により選択された機能に対応する前記アプリケーションプログラムを起動し、起動された前記アプリケーションプログラムにより前記サービスプログラムを介して前記ハードウェアを動作させることによって前記選択された機能を実行する第１の機能実行処理と、
前記シミュレーションモードであると判定した場合に、前記特定の機能を選択する前記選択指示の取得に応じた前記アプリケーションプログラムの起動を禁止し、前記特定の機能に対応するＡＰＩを外部に公開し、前記端末装置の前記仮想アプリケーションプログラムから前記仮想サービスプログラムを介して発行される前記特定の機能の実行指示を前記ＡＰＩを介して取得し、取得された前記実行指示に従い前記ハードウェアを動作させることによって前記特定の機能を実行する第２の機能実行処理と、
を実行する、画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記記憶部は、外部用アプリケーションプログラムを記憶し、
前記制御部は、前記第２の機能実行処理において、取得された前記実行指示に従い前記外部用アプリケーションプログラムを起動し、起動された前記外部用アプリケーションプログラムにより前記サービスプログラムを介して前記ハードウェアを動作させることによって前記特定の機能を実行する、画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置であって、
前記制御部は、前記画像処理装置の起動時に、前記判定処理を行う、画像処理装置。
【請求項４】
請求項１または請求項２に記載の画像処理装置であって、
前記制御部は、前記画像処理装置の起動後、待機中の所定のタイミングに、前記判定処理を行う、画像処理装置。
【請求項５】
請求項１から請求項４までのいずれか一項に記載の画像処理装置であって、
前記制御部は、前記第２の機能実行処理において、前記複数の機能の内、前記特定の機能に対応するＡＰＩを外部に公開し、前記特定の機能以外の機能に対応するＡＰＩを外部に公開しない、画像処理装置。
【請求項６】
請求項１から請求項５までのいずれか一項に記載の画像処理装置であって、さらに、
通信部を備え、
前記制御部は、前記第２の機能実行処理において、前記通信部を介して管理サーバから取得した情報に基づき、前記特定の機能を特定する、画像処理装置。
【請求項７】
請求項６に記載の画像処理装置であって、
前記制御部は、
前記通信部を介して、前記画像処理装置の仕様を特定する情報を前記管理サーバに通知し、
前記画像処理装置の仕様と前記端末装置の仕様との関係に応じて前記管理サーバにより変換された前記端末装置からの前記実行指示を取得する、画像処理装置。
【請求項８】
画像形成部と画像読取部との少なくとも一方を含む複数のハードウェアを備え、前記複数のハードウェアを制御する複数のサービスプログラムと、前記サービスプログラムを介して前記ハードウェアを動作させることにより互いに異なる複数の機能を実現する複数のアプリケーションプログラムと、を記憶する画像処理装置が提供する前記複数の機能の内の特定の機能に対応付けられた仮想アプリケーションプログラムと、前記仮想アプリケーションプログラムに利用される仮想サービスプログラムと、を記憶する記憶部と、
制御部と、
を備え、
前記制御部は、
前記画像処理装置により公開されたＡＰＩのリストを取得するリスト取得処理と、
前記仮想アプリケーションプログラムを起動し、起動された前記仮想アプリケーションプログラムにより前記仮想サービスプログラムを介して前記特定の機能に対応するＡＰＩを呼び出すことによって、前記特定の機能を実行するために前記ハードウェアを動作させる特定機能実行処理と、
を実行する、端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書によって開示される技術は、画像処理装置に関する。
【背景技術】
【０００２】
画像形成部と画像読取部との少なくとも一方を含む複数のハードウェアを備える画像処理装置が知られている。このような画像処理装置が備える記憶部には、複数のハードウェアを制御する複数のサービスプログラムと、サービスプログラムを介してハードウェアを動作させることにより、例えばコピー機能やプリント機能等の互いに異なる複数の機能を実現する複数のアプリケーションプログラムとが格納されている。
【０００３】
一般に、上記画像処理装置用のアプリケーションプログラムの開発は、画像処理装置上ではなく、パーソナルコンピュータ等の端末装置上で実行されることが多い。しかし、端末装置は、画像形成部や画像読取部等のハードウェアを備えていないため、開発されたアプリケーションプログラムを端末装置において実行しても、ハードウェアが正常に動作するか否かの確認を行うことはできない。従来は、端末装置上で開発されたアプリケーションプログラムを画像処理装置に組み込み、画像処理装置において実行することによって、ハードウェアが正常に動作するか否かの確認を行っている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１７５３５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
端末装置上で開発されたアプリケーションプログラムを画像処理装置に組み込む作業は煩雑であり、アプリケーションプログラムの開発作業の効率が低下する要因となる。なお、このような課題は、アプリケーションプログラムの開発時に限られず、開発されたアプリケーションプログラムのメンテナンス時等にも共通の課題である。
【０００６】
本明細書では、上述した課題を解決することが可能な技術を開示する。
【課題を解決するための手段】
【０００７】
本明細書に開示される技術は、例えば、以下の形態として実現することが可能である。
【０００８】
本明細書に開示される画像処理装置は、画像形成部と画像読取部との少なくとも一方を含む複数のハードウェアと、前記複数のハードウェアを制御する複数のサービスプログラムと、前記サービスプログラムを介して前記ハードウェアを動作させることにより互いに異なる複数の機能を実現する複数のアプリケーションプログラムと、を記憶する記憶部と、制御部と、を備え、前記制御部は、前記複数の機能の中から１つの機能を選択する選択指示を取得する指示取得処理と、前記複数の機能の内の特定の機能に対応付けられた仮想アプリケーションプログラムと、前記仮想アプリケーションプログラムに利用される仮想サービスプログラムと、を記憶する端末装置からの実行指示に応じて前記特定の機能を実行するシミュレーションモードであるか否かを判定する判定処理と、前記シミュレーションモードではないと判定した場合に、取得された前記選択指示により選択された機能に対応する前記アプリケーションプログラムを起動し、起動された前記アプリケーションプログラムにより前記サービスプログラムを介して前記ハードウェアを動作させることによって前記選択された機能を実行する第１の機能実行処理と、前記シミュレーションモードであると判定した場合に、前記特定の機能を選択する前記選択指示の取得に応じた前記アプリケーションプログラムの起動を禁止し、前記特定の機能に対応するＡＰＩを外部に公開し、前記端末装置の前記仮想アプリケーションプログラムから前記仮想サービスプログラムを介して発行される前記特定の機能の実行指示を前記ＡＰＩを介して取得し、取得された前記実行指示に従い前記ハードウェアを動作させることによって前記特定の機能を実行する第２の機能実行処理と、を実行する。本画像処理装置によれば、端末装置上で画像処理装置用のアプリケーションプログラム（仮想アプリケーションプログラム）の開発を行う場合に、当該アプリケーションプログラムを画像処理装置に組み込まなくても、端末装置上で当該アプリケーションプログラムを実行することにより、画像処理装置が備える画像形成部や画像読取部等のハードウェアが正常に動作するか否かを確認することができるため、画像処理装置用のアプリケーションプログラムの開発等の作業効率を向上させることができる。
【０００９】
なお、本明細書に開示される技術は、種々の形態で実現することが可能であり、例えば、画像処理装置、端末装置、画像処理装置と端末装置とを備える画像処理システム、これらの装置やシステムの制御方法、その制御方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した一時的でない記録媒体等の形態で実現することが可能である。
【図面の簡単な説明】
【００１０】
【図１】本実施形態における画像処理システム１０の構成を示す説明図である。
【図２】複合機２００にインストールされた各種プログラムを示す説明図である。
【図３】ＰＣ１００にインストールされた各種プログラムを示す説明図である。
【図４】初期処理を示すフローチャートである。
【図５】シミュレーション実行処理を示す説明図である。
【図６】シミュレーション実行処理を示す説明図である。
【発明を実施するための形態】
【００１１】
Ａ．実施形態：
Ａ−１．画像処理システム１０の構成：
図１は、本実施形態における画像処理システム１０の構成を示す説明図である。画像処理システム１０は、パーソナルコンピュータ（以下、「ＰＣ」という）１００と、複合機２００と、管理サーバ３００とを備える。ＰＣ１００と複合機２００と管理サーバ３００とは、有線ＬＡＮや無線ＬＡＮ等のネットワークＮＥＴを介して互いに通信可能に接続されている。
【００１２】
複合機２００は、スキャン機能やプリント機能、コピー機能等の複数の機能を備える装置であり、画像処理装置の一例である。複合機２００は、ＣＰＵ２２０と、記憶部２３０と、表示部２４０と、操作部２５０と、通信部２６０と、画像形成部２０２と、画像読取部２０４と、ＦＡＸ送受信部２０６とを備える。
【００１３】
複合機２００の画像形成部２０２は、例えば、電子写真方式やインクジェット方式により紙等のシートに画像を形成するハードウェアである。画像読取部２０４は、イメージセンサを有し、原稿を読み取って原稿の画像を表す画像データを生成するハードウェアである。ＦＡＸ送受信部２０６は、モデムを有し、ファクシミリの送受信のための処理を行うハードウェアである。表示部２４０は、例えば液晶ディスプレイを有し、各種の設定画面や装置の動作状態等を表示する。操作部２５０は、例えば各種のボタンやスイッチを有し、ユーザによる各種の入力指示を受け付ける。なお、操作部２５０は、表示部２４０に設けられたタッチパネルを含んでもよい。本実施形態では、操作部２５０は、複合機２００の備える複数の機能（スキャン機能、プリント機能、コピー機能等）の中から１つの機能を選択する選択指示を取得可能となっている。通信部２６０は、他の機器との通信を行うインタフェースであり、例えば有線ＬＡＮインタフェースや無線ＬＡＮインタフェース、ＵＳＢインタフェース等を有する。
【００１４】
複合機２００の記憶部２３０は、ＲＯＭやＲＡＭ等により構成され、各種のデータやプログラムを記憶したり、各種のプログラムを実行する際の作業領域やデータの一時的な記憶領域として利用されたりする。ＣＰＵ２２０は、記憶部２３０から読み出したプログラムを実行することにより、複合機２００の各部を制御する。例えば、ＣＰＵ２２０は、記憶部２３０から読み出したプログラムに従って画像形成部２０２や画像読取部２０４の動作を制御することにより、画像形成部２０２に画像を形成させたり、画像読取部２０４に画像を読み取らせたりする。複合機２００のＣＰＵ２２０は、画像処理装置の制御部の一例である。
【００１５】
ＰＣ１００は、複合機２００用のアプリケーションプログラムの開発に用いられる端末装置である。ＰＣ１００は、ＣＰＵ１２０と、記憶部１３０と、表示部１４０と、操作部１５０と、通信部１６０とを備える。
【００１６】
ＰＣ１００の表示部１４０は、例えば液晶ディスプレイを有する。操作部１５０は、例えばキーボードやマウス、タッチパネル等を有する。通信部１６０は、他の機器との通信を行うインタフェースであり、例えば有線ＬＡＮインタフェースや無線ＬＡＮインタフェース、ＵＳＢインタフェース等を有する。
【００１７】
ＰＣ１００の記憶部１３０は、ＲＯＭやＲＡＭ、ＨＤＤ（ハードディスクドライブ）等により構成され、各種のデータやプログラムを記憶したり、各種のプログラムを実行する際の作業領域やデータの一時的な記憶領域として利用されたりする。記憶部１３０に記憶されるプログラムとして、本実施形態において実行されるシミュレーションプログラムを含む。ＣＰＵ１２０は、記憶部１３０から読み出したプログラムを実行することにより、ＰＣ１００の各部や複合機２００等の外部機器を制御する。ＰＣ１００のＣＰＵ１２０は、端末装置の制御部の一例である。
【００１８】
管理サーバ３００は、ＰＣ１００や複合機２００の管理に用いられるサーバ装置である。管理サーバ３００は、ＣＰＵ３２０と、記憶部３３０と、表示部３４０と、操作部３５０と、通信部３６０とを備える。
【００１９】
管理サーバ３００の表示部３４０は、例えば液晶ディスプレイを有する。操作部３５０は、例えばキーボードやマウス、タッチパネル等を有する。通信部３６０は、他の機器との通信を行うインタフェースであり、例えば有線ＬＡＮインタフェースや無線ＬＡＮインタフェース、ＵＳＢインタフェース等を有する。
【００２０】
管理サーバ３００の記憶部３３０は、ＲＯＭやＲＡＭ、ＨＤＤ（ハードディスクドライブ）等により構成され、各種のデータやプログラムを記憶したり、各種のプログラムを実行する際の作業領域やデータの一時的な記憶領域として利用されたりする。ＣＰＵ３２０は、記憶部３３０から読み出したプログラムを実行することにより、管理サーバ３００の各部を制御する。
【００２１】
複合機２００には、各種のプログラムがインストールされている。例えば図２に示すように、複合機２００には、各種のアプリケーションプログラム（以下、「アプリケーション」ともいう）２７０と、各種のサービスプログラム（以下、「サービス」ともいう）２８０と、ミドルウェア２９２と、カーネル２９４とがインストールされている。なお、ある装置にプログラムがインストールされているとは、当該プログラムを構成する各種ファイルが当該装置の記憶部に格納され、当該装置によって当該プログラムが実行可能となった状態を意味する。図２では、複合機２００に各種のプログラムがインストールされた状態を模式的に示している。以降の図も同様である。
【００２２】
カーネル２９４は、オペレーティングシステムの基本コンポーネントであり、画像形成部２０２や画像読取部２０４等のハードウェアとアプリケーション２７０やサービス２８０との間で命令や情報のやりとりを行うソフトウェアである。また、ミドルウェア２９２は、カーネル２９４を含むオペレーティングシステムとアプリケーション２７０やサービス２８０との間で命令や情報のやりとりを行うソフトウェアである。
【００２３】
サービス２８０は、ミドルウェア２９２やカーネル２９４を介して画像形成部２０２や画像読取部２０４等のハードウェアを制御するソフトウェアである。本実施形態では、サービス２８０は、各ハードウェアについて、ハードウェアを制御するドライバ層と、当該ドライバ層とアプリケーション２７０との間で命令や情報のやりとりを行うサービス層との組合せを含む。具体的には、サービス２８０は、画像形成部２０２を制御するためのプリントドライバ２８５およびプリントサービス２８１と、画像読取部２０４を制御するためのスキャンドライバ２８６およびスキャンサービス２８２と、ＦＡＸ送受信部２０６を制御するためのＦＡＸドライバ２８７およびＦＡＸサービス２８３とを含む。さらに、サービス２８０は、通信部２６０を制御するネットサービス２８４を含む。
【００２４】
アプリケーション２７０は、サービス２８０を介して各種ハードウェアを動作させることにより、複合機２００が備える各種機能を実現するソフトウェアである。本実施形態では、アプリケーション２７０は、各機能について、ＵＩを提供するアプリケーションＵＩ（Ａｐｐ  ＵＩ）と、機能を実行するアプリケーションコア（Ａｐｐ  Ｃｏｒｅ）との組合せを含む。具体的には、アプリケーション２７０は、画像読取部２０４および画像形成部２０２を用いたコピー機能に関するコピーアプリケーションＵＩ（以下、「コピーＵＩ」ともいう）２７２およびコピーアプリケーションコア（以下、「コピーコア」ともいう）２７６と、画像形成部２０２を用いたプリント機能に関するプリントアプリケーションＵＩ（以下、「プリントＵＩ」ともいう）２７３およびプリントアプリケーションコア（以下、「プリントコア」ともいう）２７７と、画像読取部２０４を用いたスキャン機能に関するスキャンアプリケーションＵＩ（以下、「スキャンＵＩ」ともいう）２７４およびスキャンアプリケーションコア（以下、「スキャンコア」ともいう）２７８とを含む。また、アプリケーション２７０は、後述の外部接続モードでの動作を実現するためのリモートアプリケーションＵＩ（以下、「リモートＵＩ」ともいう）２７５およびリモートアプリケーションコア（以下、「リモートコア」ともいう）２７９を含む。さらに、アプリケーション２７０は、各プログラムの起動や終了等の制御を行うアプリケーションマネージャ２７１を含む。
【００２５】
ＰＣ１００（図１）は、後述する外部接続モードにおいて、シミュレーションプログラムを実行することで、複合機２００のシミュレータとして機能する。ＰＣ１００が複合機２００のシミュレータとして機能しているときに、ＰＣ１００において複合機２００用の各種アプリケーションプログラムが実行されることにより、複合機２００が備える各種ハードウェアを動作させることが可能となる。
【００２６】
ＰＣ１００を複合機２００のシミュレータとして機能させるため、ＰＣ１００には、図３に示すように、複合機２００にインストールされたプログラムと同様のプログラムがインストールされている。具体的には、ＰＣ１００には、アプリケーション１７０と、サービス１８０と、ミドルウェア１９２と、カーネル１９４とがインストールされている。また、アプリケーション１７０は、アプリケーションマネージャ１７１と、コピーＵＩ１７２およびコピーコア１７６と、プリントＵＩ１７３およびプリントコア１７７と、スキャンＵＩ１７４およびスキャンコア１７８と、リモートＵＩ１７５およびリモートコア１７９とを含む。また、サービス１８０は、プリントドライバ１８５およびプリントサービス１８１と、スキャンドライバ１８６およびスキャンサービス１８２と、ＦＡＸドライバ１８７およびＦＡＸサービス１８３と、ネットサービス１８４とを含む。ＰＣ１００にインストールされたこれらのプログラムの内、サービス１８０に含まれるプリントドライバ１８５と、スキャンドライバ１８６と、ＦＡＸドライバ１８７とは、シミュレーション用に開発されたスタブである。それ以外のプログラムは、複合機２００に実装するために開発されたプログラムであり、複合機２００にインストールされている同名のプログラムと同一またはバージョンの異なる同種のプログラムである。なお、アプリケーション１７０の一部または全部は、仮想アプリケーションプログラムの一例であり、サービス１８０の一部または全部は、仮想サービスプログラムの一例である。
【００２７】
Ａ−２．シミュレーション処理：
次に、画像処理システム１０において実行されるシミュレーション処理について説明する。シミュレーション処理は、ＰＣ１００上で複合機２００用のアプリケーション１７０を実行することによって、複合機２００が備える各種ハードウェアを動作させる処理である。シミュレーション処理により、ＰＣ１００上で開発された複合機２００用のアプリケーション１７０を複合機２００に組み込むこと無く、アプリケーション１７０によって複合機２００が備える各種ハードウェアを正常に動作させることができるか否か、すなわち、アプリケーション１７０に不具合が無いか否かを検証することができる。シミュレーション処理は、初期処理と、シミュレーション実行処理とを含む。
【００２８】
Ａ−２−１．初期処理：
シミュレーション処理の初期処理は、ＰＣ１００を複合機２００のシミュレータとして機能させるための準備を行う処理である。図４に示すように、複合機２００のＣＰＵ２２０は、起動時に、外部接続モードでの起動であるか否かを判定する（Ｓ１１０）。例えば、ＣＰＵ２２０は、起動時に、操作部２５０における特定のボタンやスイッチが特定の状態にある場合には外部接続モードでの起動であると判定し、それ以外の場合には外部接続モードではない通常モードでの起動であると判定する。外部接続モードは、ＰＣ１００からの実行指示に応じて、ＰＣ１００によるシミュレーションの対象となる１つまたは複数の特定の機能（以下、「外部利用機能」という）を実行可能なモードであり、シミュレーションモードの一例である。
【００２９】
複合機２００のＣＰＵ２２０は、通常モードでの起動であると判定した場合には（Ｓ１１０：ＮＯ）、初期処理を終了する。なお、通常モードでは、ＣＰＵ２２０は、操作部２５０を介して複数の機能の内の１つを選択する選択指示が取得された場合に、取得された選択指示により選択された機能に対応するアプリケーション２７０を起動し、起動されたアプリケーション２７０によりサービス２８０を介して各ハードウェアを動作させることによって選択された機能を実行する。
【００３０】
一方、複合機２００のＣＰＵ２２０は、外部接続モードでの起動であると判定した場合には（Ｓ１１０：ＹＥＳ）、仕様情報を管理サーバ３００に送信する（Ｓ１１２）。仕様情報は、例えば、複合機２００の型番を特定する情報や各種プログラムのバージョンを特定する情報を含む。
【００３１】
同様に、ＰＣ１００のＣＰＵ１２０は、外部接続モードであるか否かを判定する（Ｓ２１０）。ＰＣ１００のＣＰＵ１２０が、シミュレーションプログラムを起動し、かつ、ＰＣ１００のユーザにより、シミュレートしたい機能についての指定を受けた場合に、外部接続モードであると判断する。ＣＰＵ１２０は、外部接続モードではないと判定した場合には（Ｓ２１０：ＮＯ）、初期処理を終了し、起動されているプログラムに関する通常の実行処理を行う。一方、ＣＰＵ１２０は、外部接続モードでの起動であると判定した場合には（Ｓ２１０：ＹＥＳ）、仕様情報を管理サーバ３００に送信する（Ｓ２１２）。仕様情報は、例えば、ＰＣ１００がシミュレートする複合機の型番を特定する情報や各種プログラムのバージョンを特定する情報を含む。仕様情報は、例えば、ＰＣ１００に記憶されているシミュレーションプログラムに予め設定されている。
【００３２】
管理サーバ３００のＣＰＵ３２０は、複合機２００やＰＣ１００から送信される仕様情報の受信を待機し（Ｓ３１０）、仕様情報が受信されると（Ｓ３１０：ＹＥＳ）、受信された仕様情報を記憶部３３０に記憶する（Ｓ３１２）。
【００３３】
次に、管理サーバ３００のＣＰＵ３２０は、外部利用一覧取得要求をＰＣ１００に送信する（Ｓ３１４）。ＰＣ１００のＣＰＵ１２０は、管理サーバ３００から送信される外部利用一覧取得要求の受信を待機し（Ｓ２１４）、外部利用一覧取得要求が受信されると（Ｓ２１４：ＹＥＳ）、外部利用一覧を作成して管理サーバ３００に送信する（Ｓ２１６）。ここで、外部利用一覧とは、複合機２００が備える機能の内、ＰＣ１００によるシミュレーションの対象となる機能（外部利用機能）を特定する情報である。ユーザにより指定のあったシミュレートしたい機能に関する情報であり、例えば、ＰＣ１００によりコピー機能のシミュレーションが行われる場合には、外部利用一覧において、外部利用機能としてコピー機能が特定される。なお、ＰＣ１００には、シミュレート可能な機能と各機能を実現するために必要なサービスの情報とを対応付けた対応表を記憶していてもよい。そして、ＰＣ１００は、外部利用一覧において、ユーザにより指定された外部利用機能に対応するサービスを対応表より特定し、そのサービスに関する情報を外部利用一覧として管理サーバ３００に送信してもよい。例えば、ＰＣ１００によりコピー機能のシミュレーションが行われる場合に、外部利用一覧において、外部利用機能としてコピー機能が特定され、コピー機能を実現するサービスとしてプリントサービスおよびスキャンサービスが特定されるとしてもよい。
【００３４】
管理サーバ３００のＣＰＵ３２０は、ＰＣ１００から送信される外部利用一覧の受信を待機し（Ｓ３１６）、外部利用一覧が受信されると（Ｓ３１６：ＹＥＳ）、外部利用一覧を複合機２００に転送する（Ｓ３１８）。複合機２００のＣＰＵ２２０は、管理サーバ３００から転送される外部利用一覧の受信を待機し（Ｓ１１４）、外部利用一覧が受信されると（Ｓ１１４：ＹＥＳ）、外部利用一覧を参照して外部利用機能を特定し、特定された外部利用機能を実現するためのアプリケーション２７０である外部利用アプリケーションが複合機２００にインストールされているか否かを判定する（Ｓ１１６）。例えば、外部利用機能としてコピー機能が特定された外部利用一覧が取得された場合には、ＣＰＵ２２０は、複合機２００にコピーＵＩ２７２やコピーコア２７６がインストールされているか否かを判定する。複合機２００のＣＰＵ２２０は、外部利用アプリケーションがインストールされていないと判定した場合には（Ｓ１１６：ＮＯ）、通常モードに移行して初期処理を終了する。なお、この際、複合機２００のＣＰＵ２２０は、外部利用アプリケーションがインストールされていない旨を、管理サーバ３００を介してＰＣ１００に伝えるとしてもよい。これにより、ＰＣ１００は、この複合機２００によっては、外部利用機能のシミュレーションを実行することができないことを把握することができる。
【００３５】
一方、複合機２００のＣＰＵ２２０は、外部利用アプリケーションがインストールされていると判定した場合には（Ｓ１１６：ＹＥＳ）、アプリケーション起動リストを更新する（Ｓ１１８）。アプリケーション起動リストは、複合機２００において、複数の機能の内の１つを選択する選択指示が取得された際に、起動するアプリケーション２７０を特定するためのリストであり、アプリケーションマネージャ２７１によって参照される。初期状態では、アプリケーション起動リストには、各機能（例えばコピー機能）と、各機能を実行するためのアプリケーション２７０（例えばコピーＵＩ２７２およびコピーコア２７６）とが対応付けられている。複合機２００のＣＰＵ２２０は、外部利用一覧により特定された外部利用機能については、当該外部利用機能と、外部利用のためのアプリケーション２７０であるリモートＵＩ２７５およびリモートコア２７９とが対応付けられるように、アプリケーション起動リストを更新する。これにより、外部利用機能を選択する選択指示の取得に応じて、外部利用機能を実行するためのアプリケーション２７０が起動されることが禁止される。例えば、外部利用機能がコピー機能である場合、コピー機能を選択する選択指示が取得されると、コピーＵＩ２７２およびコピーコア２７６の代わりに、リモートＵＩ２７５およびリモートコア２７９が起動される。
【００３６】
次に、複合機２００のＣＰＵ２２０は、外部利用機能に対応するＷｅｂＡＰＩを外部に公開し（Ｓ１２０）、ＷｅｂＡＰＩリストを管理サーバ３００に送信する（Ｓ１２２）。このとき、外部利用機能以外の機能については、ＷｅｂＡＰＩの外部への公開は行われない。例えば、外部利用機能がコピー機能である場合、ＣＰＵ２２０は、コピー機能に対応するＷｅｂＡＰＩを外部に公開し、それ以外の機能（スキャン機能等）に対応するＷｅｂＡＰＩを公開しない。
【００３７】
管理サーバ３００のＣＰＵ３２０は、複合機２００から送信されるＷｅｂＡＰＩリストの受信を待機し（Ｓ３２０）、ＷｅｂＡＰＩリストが受信されると（Ｓ３２０：ＹＥＳ）、ＷｅｂＡＰＩリストをＰＣ１００に転送する（Ｓ３２２）。ＰＣ１００のＣＰＵ１２０は、管理サーバ３００から転送されるＷｅｂＡＰＩリストの受信を待機し（Ｓ２１８）、ＷｅｂＡＰＩリストが受信されると（Ｓ２１８：ＹＥＳ）、記憶部１３０に記憶されたＷｅｂＡＰＩリストを更新する（Ｓ２２０）。これにより、ＰＣ１００は、複合機２００において公開された外部利用機能に関するＷｅｂＡＰＩを利用可能となる。
【００３８】
Ａ−２−２．シミュレーション実行処理：
次に、シミュレーション実行処理について説明する。シミュレーション実行処理は、外部接続モードで動作するＰＣ１００上で複合機２００用のアプリケーション１７０を実行することによって、外部接続モードで動作する複合機２００が備える各種ハードウェアを動作させる処理である。ここでは、外部利用機能がコピー機能である場合、すなわち、ＰＣ１００においてコピー機能に関するアプリケーション１７０（コピーＵＩ１７２およびコピーコア１７６）を実行することにより、複合機２００の画像形成部２０２や画像読取部２０４を動作させる場合を例に、シミュレーション実行処理の説明を行う。また、以降の説明では、「ＣＰＵがプログラムＸを実行することによって処理Ｙを行う」ことを、便宜的に「プログラムＸが処理Ｙを実行する」ともいう。
【００３９】
図示していないが、ＰＣ１００上のアプリケーション１７０には、複合機２００の待機画面と同じ仮想待機画面を表示するためのアプリＵＩを含む。仮想待機画面では、複数の機能の中から、実行したい機能をユーザが選択することができる。複合機２００のシミュレータとしてのＰＣ１００上で、仮想待機画面において表示される複数の機能の中から、外部利用機能であるコピー機能を選択する選択指示が取得されると、図５に示すように、コピー機能の選択指示がＰＣ１００のアプリケーションマネージャ１７１からネットサービス１８４に送られ（Ｓ１）、さらに管理サーバ３００を介して複合機２００のネットサービス２８４に送られる（Ｓ２）。ＰＣ１００のネットサービス２８４が、受信したコピー機能の選択指示をアプリケーションマネージャ２７１に送ると（Ｓ３）、アプリケーションマネージャ２７１は、図４のＳ１１８で更新されたアプリケーション起動リストに従い、コピーＵＩ２７２およびコピーコア２７６ではなく、リモートＵＩ２７５およびリモートコア２７９に実行指示を送る（Ｓ４およびＳ５）。リモートＵＩ２７５は、アプリケーションマネージャ２７１から実行指示を受け取ると、複合機２００の表示部２４０の表示画面を、待機画面から、シミュレーション実行中である旨の表示画面に切り替える。
【００４０】
また、図６に示すように、ＰＣ１００のアプリケーションマネージャ１７１は、コピーＵＩ１７２を起動する（Ｓ１１）。これにより、ユーザは、ＰＣ１００の操作部１５０から、コピー機能を実行するために必要な設定事項の入力やコピー機能の実行指示が可能となる。コピーＵＩ１７２によってコピー機能の実行指示が取得されると、アプリケーションマネージャ１７１によってコピーコア１７６が起動され（Ｓ１２およびＳ１３）、コピーコア１７６は、コピー機能の実行のために用いられるプリントサービス１８１およびスキャンサービス１８２に対してコピー実行指令を送る（Ｓ１４およびＳ１５）。
【００４１】
ここで、ＰＣ１００では、図４のＳ２２０においてＷｅｂＡＰＩリストが更新され、外部利用機能に対応するＷｅｂＡＰＩが利用可能となっている。プリントサービス１８１およびスキャンサービス１８２は、プリントドライバ１８５およびスキャンドライバ１８６を介してコピー機能に対応するＷｅｂＡＰＩの利用要求（ＨＴＴＰリクエスト）を発行する（Ｓ１６およびＳ１７）。これにより、ネットサービス１８４によってＷｅｂＡＰＩの利用要求が、管理サーバ３００を介して、複合機２００のネットサービス２８４に送信される（Ｓ１８）。
【００４２】
なお、上述したように、管理サーバ３００は、ＰＣ１００および複合機２００の仕様情報を取得して記憶している（図４のＳ３１２）。管理サーバ３００は、ＷｅｂＡＰＩの利用要求の中継の際に、ＰＣ１００と複合機２００との仕様（型番やプログラムのバージョン）の違いに基づき、ＷｅｂＡＰＩの利用要求を変換する機能を有する。なお、ＷｅｂＡＰＩの利用要求に応じて複合機２００からＰＣ１００に送られるＷｅｂＡＰＩの応答（ＨＴＴＰレスポンス）についても、同様に、必要な場合には管理サーバ３００によって変換される。管理サーバ３００の変換機能により、ＰＣ１００と複合機２００とに仕様の違いが存在しても、ＰＣ１００を複合機２００のシミュレータとして機能させることができる。
【００４３】
コピー機能に対応するＷｅｂＡＰＩの利用要求を受信した複合機２００のネットサービス２８４は、コピー実行指示を外部利用のためのリモートコア２７９に送る（Ｓ１９）。リモートコア２７９は、スキャンサービス２８２およびスキャンドライバ２８６を介して画像読取部２０４を動作させると共に、プリントサービス２８１およびプリントドライバ２８５を介して画像形成部２０２を動作させる（Ｓ２０およびＳ２１）。これにより、複合機２００において、画像読取部２０４および画像形成部２０２によるコピー機能が実行される。なお、処理結果等に関する情報は、ＷｅｂＡＰＩの応答（ＨＴＴＰレスポンス）として複合機２００のネットサービス２８４からＰＣ１００のネットサービス１８４に送信される。これにより、ＰＣ１００は、ＰＣ１００上でアプリケーション１７０を実行することにより、複合機２００が備える各ハードウェアが正常に動作するか否かの確認を行うことができる。
【００４４】
以上説明したように、本実施形態の画像処理システム１０において、複合機２００のＣＰＵ２２０は、ＰＣ１００からの実行指示に応じて特定の機能（外部利用機能）を実行する外部接続モードであるか否かを判定する判定処理を行う。複合機２００のＣＰＵ２２０は、外部接続モードではない通常モードであると判定した場合には、操作部２５０を介して複数の機能の内の１つを選択する選択指示により選択された機能に対応するアプリケーション２７０を起動し、起動されたアプリケーション２７０によりサービス２８０を介して各ハードウェアを動作させることによって選択された機能を実行する処理（以下、「第１の機能実行処理」という）を実行する。そのため、通常モードにおいて、複合機２００上でアプリケーション２７０を実行することにより、選択された機能を実行することができる。一方、複合機２００のＣＰＵ２２０は、外部接続モードであると判定した場合には、外部利用機能を選択する選択指示の取得に応じて外部利用機能を実行するためのアプリケーション２７０が起動されることを禁止する。また、複合機２００のＣＰＵ２２０は、外部利用機能に対応するＷｅｂＡＰＩを外部に公開し、ＰＣ１００のアプリケーション１７０からサービス１８０を介して発行される外部利用機能の実行指示を上記ＷｅｂＡＰＩを介して取得し、取得された実行指示に従いハードウェアを動作させることによって外部利用機能を実行する処理（以下、「第２の機能実行処理」という）を実行する。そのため、ＰＣ１００上で複合機２００用のアプリケーション１７０（仮想アプリケーションプログラム）の開発を行う場合に、当該アプリケーション１７０を複合機２００に組み込まなくても、ＰＣ１００上で当該アプリケーション１７０を実行することにより、複合機２００が備える画像形成部２０２や画像読取部２０４等のハードウェアが正常に動作するか否かを確認することができるため、複合機２００用のアプリケーションプログラムの開発等の作業効率を向上させることができる。
【００４５】
また、本実施形態の画像処理システム１０において、複合機２００の記憶部２３０には外部接続モードでの動作を実現するためのリモートＵＩ２７５およびリモートコア２７９が記憶されている（すなわち、複合機２００にはリモートＵＩ２７５およびリモートコア２７９がインストールされている）。複合機２００のＣＰＵ２２０は、外部接続モードにおいて、ＷｅｂＡＰＩを介して取得された外部利用機能の実行指示に従いリモートＵＩ２７５およびリモートコア２７９を起動し、起動されたリモートＵＩ２７５およびリモートコア２７９によりサービス２８０を介してハードウェアを動作させることによって外部利用機能を実行する。そのため、複合機２００の記憶部２３０に記憶された他のサービス２８０、例えば、プリントサービス２８１やプリントドライバ２８５等を改変することなく上記第２の機能実行処理を実現することができる。
【００４６】
また、本実施形態の画像処理システム１０において、複合機２００のＣＰＵ２２０は、複合機２００の起動時に上記判定処理を行う。そのため、複合機２００が外部接続モードではない通常モードで起動された後に、外部接続モードに切り替えられることが回避される。その結果、例えば、外部接続モードに切り替えられることによって、これまで利用可能であった機能が突然利用不可になる事態の発生を抑制することができる。
【００４７】
また、本実施形態の画像処理システム１０において、複合機２００のＣＰＵ２２０は、上記第２の機能実行処理において、複合機２００が備える複数の機能の内、外部利用機能に対応するＡＰＩを外部に公開し、外部利用機能以外の機能に対応するＡＰＩを外部に公開しない。そのため、外部接続モードにおいても、外部接続機能以外の機能については利用可能な状態が維持され、利便性の低下を抑制することができる。
【００４８】
また、本実施形態の画像処理システム１０において、複合機２００のＣＰＵ２２０は、上記第２の機能実行処理において、通信部２６０を介して管理サーバ３００から取得した外部利用一覧に基づき、外部利用機能を特定する。そのため、複合機２００のＣＰＵ２２０は、確実に外部利用機能を特定することができる。
【００４９】
また、本実施形態の画像処理システム１０において、複合機２００のＣＰＵ２２０は、通信部２６０を介して、複合機２００の仕様を特定する情報を管理サーバ３００に通知し、複合機２００の仕様とＰＣ１００の仕様との関係に応じて管理サーバ３００により変換されたＰＣ１００からの外部利用機能の実行指示を取得する。そのため、複合機２００の仕様とシミュレータとしてのＰＣ１００の仕様との間に差異が存在していても、ＰＣ１００上でアプリケーション１７０を実行することにより、複合機２００が備える画像形成部２０２や画像読取部２０４等のハードウェアを動作させることができる。
【００５０】
また、本実施形態の画像処理システム１０において、ＰＣ１００のＣＰＵ１２０は、複合機２００により公開されたＡＰＩのリストを取得する。また、ＰＣ１００のＣＰＵ１２０は、複合機２００用に開発されたアプリケーション１７０を起動し、起動されたアプリケーション１７０によりサービス１８０を介して外部利用機能に対応するＡＰＩを呼び出すことによって、外部利用機能を実行するために複合機２００が備えるハードウェアを動作させる。そのため、ＰＣ１００上で複合機２００用のアプリケーション１７０（仮想アプリケーションプログラム）の開発を行う場合に、当該アプリケーション１７０を複合機２００に組み込まなくても、ＰＣ１００上で当該アプリケーション１７０を実行することにより、複合機２００が備えるハードウェアが正常に動作するか否かを確認することができるため、複合機２００用のアプリケーションプログラムの開発等の作業効率を向上させることができる。
【００５１】
Ｂ．変形例：
本明細書で開示される技術は、上述の実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の形態に変形することができ、例えば次のような変形も可能である。
【００５２】
上記実施形態における画像処理システム１０の構成は、あくまで一例であり、種々変形可能である。例えば、上記実施形態において、複合機２００は、画像形成部２０２と画像読取部２０４との少なくとも一方を含む複数のハードウェアを備えていればよく、画像形成部２０２と画像読取部２０４とＦＡＸ送受信部２０６との少なくとも１つを備えないとしてもよいし、それら以外のハードウェアを備えるとしてもよい。
【００５３】
また、複合機２００にインストールされているアプリケーション２７０やサービス２８０は、複合機２００の備える機能に応じて種々変更可能である。また、上記実施形態では、サービス２８０はサービス層とドライバ層の２層構成であるとしているが、サービス２８０は単層構成であってもよいし、３層以上の構成であってもよい。
【００５４】
また、上記実施形態では、画像処理システム１０が管理サーバ３００を備え、複合機２００とＰＣ１００とが管理サーバ３００を介して情報のやりとりを行うとしているが、複合機２００とＰＣ１００とが管理サーバ３００を介さずに情報のやりとりを行うとしてもよい。例えば、複合機２００とＰＣ１００との間で実行指示の変換が不要である場合には、複合機２００とＰＣ１００とが管理サーバ３００を介さずに情報のやりとりを行っても、上記シミュレーション処理を実現することができる。
【００５５】
また、上記実施形態において、ハードウェアによって実現されている構成の一部をソフトウェアに置き換えるようにしてもよく、反対に、ソフトウェアによって実現されている構成の一部をハードウェアに置き換えるようにしてもよい。
【００５６】
また、上記実施形態のシミュレーション処理において、一部のステップを省略したり、内容を変更したり、他のステップと順番を入れ替えたりしてもよい。また、上記実施形態では、複合機２００のＣＰＵ２２０は、複合機２００の起動時に、外部接続モードでの起動であるか否かを判定する判定処理を行うとしているが、複合機２００の起動後、待機中の所定のタイミングに判定処理を行うとしてもよい。このようにすれば、複合機２００が外部接続モードではない通常モードで起動された後、再起動を実行することなく外部接続モードに移行して上記第２の機能実行処理を実行することができるため、複合機２００用のアプリケーションプログラムの開発等の作業効率をさらに向上させることができる。
【００５７】
なお、上記実施形態では、複合機２００用のアプリケーションプログラムを開発する場面を例に説明したが、本発明は、アプリケーションプログラムの開発後のメンテナンスを行う場面にも同様に適用可能である。
【符号の説明】
【００５８】
１０：画像処理システム  １００：パーソナルコンピュータ  １２０：ＣＰＵ  １７０：アプリケーションプログラム  １８０：サービスプログラム  ２００：複合機  ２０２：画像形成部  ２０４：画像読取部  ２２０：ＣＰＵ  ２３０：記憶部  ２５０：操作部  ２６０：通信部  ２７０：アプリケーションプログラム  ２７５：リモートアプリケーションＵＩ  ２７９：リモートアプリケーションコア  ２８０：サービスプログラム  ３００：管理サーバ
【図１】
0006455376.tif 000002
【図２】
0006455376.tif 000003
【図３】
0006455376.tif 000004
【図４】
0006455376.tif 000005
【図５】
0006455376.tif 000006
【図６】
0006455376.tif 000007