(57)【要約】【課題】リモート接続によるアプリケーション実行時において、硬直した処理による弊害を排除することが可能な技術を提供する。【解決手段】ＭＦＰ１０ａは、ＭＦＰ１０ｂからのリモート接続に応じてＭＦＰ１０ａのアプリケーションを実行する際に、当該アプリケーションに関する複数のコマンドのうちの実行対象コマンドの実行指示を受け付ける。ＭＦＰ１０ａは、ハードウエアの動作を伴う予め定められた第１の種類のコマンド（印刷出力コマンド等）と当該第１の種類のコマンド以外の種類のコマンドである第２の種類のコマンドとのいずれに実行対象コマンドが属するかを判定する。実行対象コマンドが第２の種類のコマンドであると判定される場合には実行対象コマンドの対応処理のＭＦＰ１０ａでの実行が許可され、実行対象コマンドが第１の種類のコマンドであると判定される場合には実行対象コマンドの対応処理のＭＦＰ１０ａでの実行が禁止される（Ｓ２１）。【選択図】図８
2015139150.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からのリモート接続に応じてアプリケーションを実行することが可能な画像形成装置であって、
前記外部装置からのリモート接続において、前記画像形成装置に実装された前記アプリケーションに関する複数のコマンドのうちの実行対象コマンドの実行指示を受け付ける受付手段と、
ハードウエアの動作を伴う予め定められた種類の第１の種類のコマンドと前記第１の種類のコマンド以外の種類のコマンドである第２の種類のコマンドとのいずれに前記実行対象コマンドが属するかを判定する判定手段と、
前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定する処理制御手段と、
を備え、
前記処理制御手段は、
前記実行対象コマンドが前記第２の種類のコマンドであると判定される場合に、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を許可し、
前記実行対象コマンドが前記第１の種類のコマンドである場合に、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を禁止することを特徴とする画像形成装置。
【請求項２】
請求項１に記載の画像形成装置において、
前記処理制御手段は、前記実行対象コマンドが前記第１の種類のコマンドである場合に、前記実行対象コマンドに対応する処理を前記外部装置で実行すべき旨を、前記外部装置に送信することを特徴とする画像形成装置。
【請求項３】
請求項２に記載の画像形成装置において、
前記外部装置で実行可能なコマンドである実行可能コマンドに関するリスト情報を取得する取得手段、
をさらに備え、
前記処理制御手段は、前記実行対象コマンドが前記第１の種類のコマンドであり且つ前記実行対象コマンドが前記実行可能コマンドであると判定される場合には、前記実行対象コマンドに対応する処理を前記外部装置で実行すべき旨を、前記外部装置に送信することを特徴とする画像形成装置。
【請求項４】
請求項３に記載の画像形成装置において、
前記処理制御手段は、前記実行対象コマンドが前記実行可能コマンドとして前記リスト情報に含まれる場合には、前記実行対象コマンドをそのまま前記外部装置に送信して、前記実行対象コマンドに対応する処理を前記外部装置で実行させることを特徴とする画像形成装置。
【請求項５】
請求項３に記載の画像形成装置において、
前記処理制御手段は、前記実行対象コマンドが前記第１の種類のコマンドである場合において、前記実行対象コマンドが前記実行可能コマンドではないが前記実行対象コマンドと同等の処理が前記外部装置で実行可能であると判定される場合には、前記実行対象コマンドと同等の処理を実行する代替コマンドを生成して、当該代替コマンドを前記外部装置に送信して、前記実行対象コマンドに対応する処理を前記外部装置で実行させることを特徴とする画像形成装置。
【請求項６】
請求項５に記載の画像形成装置において、
前記代替コマンドは、前記実行対象コマンドに含まれる設定情報を有することを特徴とする画像形成装置。
【請求項７】
請求項１に記載の画像形成装置において、
前記処理制御手段は、前記実行対象コマンドが前記第１の種類のコマンドである場合には、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を一旦禁止し、前記実行対象コマンドに対応する処理を前記画像形成装置と前記外部装置とのいずれで実行すべきかに関するユーザ指示を受け付けるための確認用情報を前記外部装置に送信し、前記確認用情報の送信に対して前記外部装置から返信されてきたユーザ指示情報に基づいて、前記実行対象コマンドに対応する処理を前記画像形成装置で実行するか前記外部装置で実行するかを決定することを特徴とする画像形成装置。
【請求項８】
請求項１に記載の画像形成装置において、
前記受付手段、前記判定手段および前記処理制御手段は、前記アプリケーションとオペレーションシステムソフトウエアとを媒介するミドルウエアとして設けられ、
前記ミドルウエアは、前記受付手段を含む第１のミドルウエアと、前記第１のミドルウエアとは別に構成される第２のミドルウエアとを有し、
前記第２のミドルウエアは、前記第１のミドルウエアと前記オペレーションシステムソフトウエアとの間に設けられ、
前記判定手段および前記処理制御手段は、前記第２のミドルウエアに設けられることを特徴とする画像形成装置。
【請求項９】
請求項１に記載の画像形成装置において、
前記外部装置は、ウエブブラウザを有し、
前記画像形成装置は、ウエブサーバを有し、
前記外部装置の前記ウエブブラウザから前記画像形成装置の前記ウエブサーバへのアクセスに応じて、前記画像形成装置に実装された前記アプリケーションが実行されることを特徴とする画像形成装置。
【請求項１０】
請求項１に記載の画像形成装置において、
前記第１の種類のコマンドは、印刷出力用ハードウエアを用いた印刷出力動作を行うべき旨を示す印刷出力コマンドを含むことを特徴とする画像形成装置。
【請求項１１】
請求項１に記載の画像形成装置において、
前記第１の種類のコマンドは、画像スキャン用のハードウエアを用いた画像スキャン動作を行うべき旨を示す画像スキャンコマンドを含むことを特徴とする画像形成装置。
【請求項１２】
画像形成装置に実装されたアプリケーションを外部装置からのリモート接続に応じて実行することが可能な前記画像形成装置に内蔵されたコンピュータに、
ａ）ハードウエアの動作を伴う予め定められた種類の第１の種類のコマンドと前記第１の種類のコマンド以外の種類のコマンドである第２の種類のコマンドとのいずれに、前記アプリケーションに関する複数のコマンドのうち前記画像形成装置にて受け付けられた実行対象コマンドが属するかを判定するステップと、
ｂ）前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定するステップと、
を実行させるためのプログラムであって、
前記ステップｂ）においては、
前記実行対象コマンドが前記第２の種類のコマンドであると判定される場合には、前記実行対象コマンドに対応する処理の前記画像形成装置での実行が許可され、
前記実行対象コマンドが前記第１の種類のコマンドである場合には、前記実行対象コマンドに対応する処理の前記画像形成装置での実行が禁止されることを特徴とするプログラム。
【請求項１３】
画像形成システムであって、
画像形成装置と、
前記画像形成装置に対してリモート接続し、前記画像形成装置に実装されたアプリケーションを実行させることが可能な外部装置と、
を備え、
前記画像形成装置は、
前記外部装置からのリモート接続に応じて、前記画像形成装置に実装された前記アプリケーションに関する複数のコマンドのうちの実行対象コマンドの実行指示を受け付ける手段と、
前記画像形成装置のハードウエアの動作を伴う予め定められた種類の第１の種類のコマンドと前記第１の種類のコマンド以外の種類のコマンドである第２の種類のコマンドとのいずれに前記実行対象コマンドが属するかを判定する判定手段と、
前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定する処理制御手段と、
を備え、
前記処理制御手段は、
前記実行対象コマンドが前記第２の種類のコマンドであると判定される場合には、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を許可し、
前記実行対象コマンドが前記第１の種類のコマンドである場合には、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を禁止することを特徴とする画像形成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＦＰ（マルチ・ファンクション・ペリフェラル（Multi-Functional Peripheral））などの画像形成装置およびそれに関連する技術に関する。
【背景技術】
【０００２】
ＭＦＰの中には、その内部にウエブサーバ（内部サーバとも称する）を備え、当該内部サーバを介してアプリケーションソフトウエアプログラム（以下、単にアプリケーションとも称する）を実行できるものが存在する（特許文献１参照）。
【０００３】
そのようなアプリケーションとしては、ＭＦＰのメニュー操作画面を当該ＭＦＰのタッチパネルに表示してユーザからの操作を受け付けるアプリケーション（メニュー操作アプリケーションとも称する）などが存在する。
【０００４】
このようなアプリケーションは、ＭＦＰにインストールされたウエブブラウザ（ＭＦＰ内部のウエブブラウザ）からＭＦＰの内部サーバにアクセスすることなどによって実行される。当該アプリケーションは、ＭＦＰの外部の装置（たとえばパーソナルコンピュータ）のウエブブラウザからＭＦＰの内部サーバにアクセスすることなどによっても実行され得る。
【０００５】
また、このようなアプリケーションは、ＭＦＰのリソースを用いて実行される。たとえば、ＭＦＰ内のボックス（フォルダ）に格納されている電子文書の印刷指示がメニュー操作に応じて付与されると、当該ＭＦＰの印刷出力部（ハードウエア）を用いて当該電子文書が印刷出力される。特に、電子文書の印刷指示がＭＦＰの外部装置から付与される場合においても、当該ＭＦＰの印刷出力部（ハードウエア）を用いて印刷出力処理が行われる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−５７１８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、上記の技術は、パーソナルコンピュータから画像形成装置にリモート接続するものであるが、或る画像形成装置に対して別の画像形成装置からリモート接続することも考えられる。
【０００８】
たとえば、ＭＦＰ１０ａに対して別のＭＦＰ１０ｂからリモート接続し、ＭＦＰ１０ｂによるリモート操作に応じて、ＭＦＰ１０ａに実装されたアプリケーション（たとえばメニュー画面操作アプリケーション）を実行することが可能である。
【０００９】
このとき、上記の技術を用いると、当該アプリケーションに関する実行対象コマンドに対応する処理は、ＭＦＰ１０ａにおいて実行される。たとえば、当該アプリケーションにおいて印刷出力指示が付与されたときには、当該印刷出力指示に応じて実行対象コマンド（印刷出力コマンド）が生成され、印刷出力コマンドに対応する処理（印刷出力処理）は、ＭＦＰ１０ａのハードウエア（印刷出力部）を用いて行われる。このように、ＭＦＰ１０ａを別のＭＦＰ１０ｂからリモート操作している場合において、ＭＦＰ１０ａのアプリケーションが実行されるときには、ＭＦＰ１０ａのリソース（ハードウエア資源を含む）を用いて各種処理（実行対象コマンドに対応する処理）が実行される。
【００１０】
しかしながら、当該アプリケーションに関する実行対象コマンドに対応する処理がＭＦＰ１０ａ（リモート接続先装置）で常に実行されること（換言すれば、硬直した処理が実行されること）は、必ずしも適切ではない。
【００１１】
たとえば、ユーザから比較的遠く離れて配置されたＭＦＰ１０ａを、当該ユーザの比較的近傍に配置されたＭＦＰ１０ｂを用いてリモート操作する場合を想定する。上記の技術を利用するときには、このようなリモート操作において、ＭＦＰ１０ｂからのリモート操作指示に応じて、ＭＦＰ１０ａにおけるアプリケーションが動作し、当該アプリケーションに関する全ての処理はＭＦＰ１０ａにて実行される。上述のように、そのような処理の中には、印刷出力などのハードウエア動作を伴うものも含まれ得る。このような印刷出力処理がＭＦＰ１０ａで実行されると、比較的近傍のＭＦＰ１０ｂを操作しているユーザは、比較的遠方のＭＦＰ１０ａまで印刷出力物を取りに行くことを求められる。その結果、ユーザの利便性は低下する。
【００１２】
このように、特定のハードウエアを用いる処理（印刷出力処理等）が常にリモート接続先装置で実行され、ユーザの利便性を考慮せずにハードウエア利用処理が行われてしまうなどの問題が存在する。
【００１３】
そこで、この発明は、リモート接続によるアプリケーション実行時において、ハードウエアを用いる処理が常にリモート接続先装置で実行されることに起因する問題を解消することが可能な技術を提供することを課題とする。
【課題を解決するための手段】
【００１４】
上記課題を解決すべく、請求項１の発明は、外部装置からのリモート接続に応じてアプリケーションを実行することが可能な画像形成装置であって、前記外部装置からのリモート接続において、前記画像形成装置に実装された前記アプリケーションに関する複数のコマンドのうちの実行対象コマンドの実行指示を受け付ける受付手段と、ハードウエアの動作を伴う予め定められた種類の第１の種類のコマンドと前記第１の種類のコマンド以外の種類のコマンドである第２の種類のコマンドとのいずれに前記実行対象コマンドが属するかを判定する判定手段と、前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定する処理制御手段と、を備え、前記処理制御手段は、前記実行対象コマンドが前記第２の種類のコマンドであると判定される場合に、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を許可し、前記実行対象コマンドが前記第１の種類のコマンドである場合に、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を禁止することを特徴とする。
【００１５】
請求項２の発明は、請求項１の発明に係る画像形成装置において、前記処理制御手段は、前記実行対象コマンドが前記第１の種類のコマンドである場合に、前記実行対象コマンドに対応する処理を前記外部装置で実行すべき旨を、前記外部装置に送信することを特徴とする。
【００１６】
請求項３の発明は、請求項２の発明に係る画像形成装置において、前記外部装置で実行可能なコマンドである実行可能コマンドに関するリスト情報を取得する取得手段、をさらに備え、前記処理制御手段は、前記実行対象コマンドが前記第１の種類のコマンドであり且つ前記実行対象コマンドが前記実行可能コマンドであると判定される場合には、前記実行対象コマンドに対応する処理を前記外部装置で実行すべき旨を、前記外部装置に送信することを特徴とする。
【００１７】
請求項４の発明は、請求項３の発明に係る画像形成装置において、前記処理制御手段は、前記実行対象コマンドが前記実行可能コマンドとして前記リスト情報に含まれる場合には、前記実行対象コマンドをそのまま前記外部装置に送信して、前記実行対象コマンドに対応する処理を前記外部装置で実行させることを特徴とする。
【００１８】
請求項５の発明は、請求項３の発明に係る画像形成装置において、前記処理制御手段は、前記実行対象コマンドが前記第１の種類のコマンドである場合において、前記実行対象コマンドが前記実行可能コマンドではないが前記実行対象コマンドと同等の処理が前記外部装置で実行可能であると判定される場合には、前記実行対象コマンドと同等の処理を実行する代替コマンドを生成して、当該代替コマンドを前記外部装置に送信して、前記実行対象コマンドに対応する処理を前記外部装置で実行させることを特徴とする。
【００１９】
請求項６の発明は、請求項５の発明に係る画像形成装置において、前記代替コマンドは、前記実行対象コマンドに含まれる設定情報を有することを特徴とする。
【００２０】
請求項７の発明は、請求項１の発明に係る画像形成装置において、前記処理制御手段は、前記実行対象コマンドが前記第１の種類のコマンドである場合には、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を一旦禁止し、前記実行対象コマンドに対応する処理を前記画像形成装置と前記外部装置とのいずれで実行すべきかに関するユーザ指示を受け付けるための確認用情報を前記外部装置に送信し、前記確認用情報の送信に対して前記外部装置から返信されてきたユーザ指示情報に基づいて、前記実行対象コマンドに対応する処理を前記画像形成装置で実行するか前記外部装置で実行するかを決定することを特徴とする。
【００２１】
請求項８の発明は、請求項１の発明に係る画像形成装置において、前記受付手段、前記判定手段および前記処理制御手段は、前記アプリケーションとオペレーションシステムソフトウエアとを媒介するミドルウエアとして設けられ、前記ミドルウエアは、前記受付手段を含む第１のミドルウエアと、前記第１のミドルウエアとは別に構成される第２のミドルウエアとを有し、前記第２のミドルウエアは、前記第１のミドルウエアと前記オペレーションシステムソフトウエアとの間に設けられ、前記判定手段および前記処理制御手段は、前記第２のミドルウエアに設けられることを特徴とする。
【００２２】
請求項９の発明は、請求項１の発明に係る画像形成装置において、前記外部装置は、ウエブブラウザを有し、前記画像形成装置は、ウエブサーバを有し、前記外部装置の前記ウエブブラウザから前記画像形成装置の前記ウエブサーバへのアクセスに応じて、前記画像形成装置に実装された前記アプリケーションが実行されることを特徴とする。
【００２３】
請求項１０の発明は、請求項１の発明に係る画像形成装置において、前記第１の種類のコマンドは、印刷出力用ハードウエアを用いた印刷出力動作を行うべき旨を示す印刷出力コマンドを含むことを特徴とする。
【００２４】
請求項１１の発明は、請求項１の発明に係る画像形成装置において、前記第１の種類のコマンドは、画像スキャン用のハードウエアを用いた画像スキャン動作を行うべき旨を示す画像スキャンコマンドを含むことを特徴とする。
【００２５】
請求項１２の発明は、画像形成装置に実装されたアプリケーションを外部装置からのリモート接続に応じて実行することが可能な前記画像形成装置に内蔵されたコンピュータに、ａ）ハードウエアの動作を伴う予め定められた種類の第１の種類のコマンドと前記第１の種類のコマンド以外の種類のコマンドである第２の種類のコマンドとのいずれに、前記アプリケーションに関する複数のコマンドのうち前記画像形成装置にて受け付けられた実行対象コマンドが属するかを判定するステップと、ｂ）前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定するステップと、を実行させるためのプログラムであって、前記ステップｂ）においては、前記実行対象コマンドが前記第２の種類のコマンドであると判定される場合には、前記実行対象コマンドに対応する処理の前記画像形成装置での実行が許可され、前記実行対象コマンドが前記第１の種類のコマンドである場合には、前記実行対象コマンドに対応する処理の前記画像形成装置での実行が禁止されることを特徴とする。
【００２６】
請求項１３の発明は、画像形成システムであって、画像形成装置と、前記画像形成装置に対してリモート接続し、前記画像形成装置に実装されたアプリケーションを実行させることが可能な外部装置と、を備え、前記画像形成装置は、前記外部装置からのリモート接続に応じて、前記画像形成装置に実装された前記アプリケーションに関する複数のコマンドのうちの実行対象コマンドの実行指示を受け付ける手段と、前記画像形成装置のハードウエアの動作を伴う予め定められた種類の第１の種類のコマンドと前記第１の種類のコマンド以外の種類のコマンドである第２の種類のコマンドとのいずれに前記実行対象コマンドが属するかを判定する判定手段と、前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定する処理制御手段と、を備え、前記処理制御手段は、前記実行対象コマンドが前記第２の種類のコマンドであると判定される場合には、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を許可し、前記実行対象コマンドが前記第１の種類のコマンドである場合には、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を禁止することを特徴とする。
【発明の効果】
【００２７】
請求項１ないし請求項１３に記載の発明によれば、画像形成装置に実装されたアプリケーションが外部装置からのリモート接続に応じて実行される際に、当該アプリケーションに関する複数のコマンドのうちの実行対象コマンドが第１の種類のコマンドである場合には、当該実行対象コマンドに対応するハードウエア処理の画像形成装置での実行が禁止されるので、実行対象コマンドに対応する処理が常に画像形成装置で実行されることに起因する問題を解消することが可能である。
【図面の簡単な説明】
【００２８】
【図１】画像形成システムを示す図である。
【図２】ＭＦＰの概略構成を示す機能ブロック図である。
【図３】接続先のＭＦＰにおけるプログラム構成等を示す図である。
【図４】接続元のＭＦＰ（外部装置）におけるプログラム構成等を示す図である。
【図５】接続先のＭＦＰの動作を示すフローチャートである。
【図６】実行対象コマンドが第１の種類のコマンドである場合における動作を示すタイミングチャートである。
【図７】実行対象コマンドが第２の種類のコマンドである場合における動作を示すタイミングチャートである。
【図８】本システムにおける概略処理を示す概念図である。
【図９】確認用画面を示す図である。
【図１０】接続元のＭＦＰ（外部装置）における他のプログラム構成等を示す図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態を図面に基づいて説明する。
【００３０】
＜１．構成＞
図１は、画像形成システム１を示す図である。図１に示すように、この画像形成システム１は、複数の画像形成装置１０（詳細には、１０ａ，１０ｂ）を備える。
【００３１】
本システム１における各要素１０は、それぞれ、ネットワーク１０１を介して互いに通信可能に接続される。ネットワーク１０１は、ＬＡＮ（Local Area Network）およびインターネットなどによって構成される。また、ネットワーク１０１に対する接続態様は、有線接続であってもよく、或いは無線接続であってもよい。
【００３２】
この実施形態では、画像形成装置１０として、ＭＦＰ（マルチ・ファンクション・ペリフェラル（Multi-Functional Peripheral））を例示する。
【００３３】
図２は、ＭＦＰ１０の概略構成を示す機能ブロック図である。図２においては、ＭＦＰ１０の基本的構成が示されている。ＭＦＰ１０ａ，１０ｂは、いずれも、図２に示すような基本的構成を備えている。
【００３４】
ＭＦＰ１０は、スキャン機能、コピー機能、ファクシミリ機能およびボックス格納機能などを備える装置（複合機とも称する）である。具体的には、ＭＦＰ１０は、図２の機能ブロック図に示すように、画像読取部２、印刷出力部３、通信部４、格納部５、入出力部６およびコントローラ９等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
【００３５】
画像読取部２は、ＭＦＰ１０の所定の位置に載置された原稿を光学的に読み取って（すなわちスキャンして）、当該原稿の画像データ（原稿画像ないしスキャン画像とも称する）を生成する処理部である。この画像読取部２は、スキャン部であるとも称される。
【００３６】
印刷出力部３は、印刷対象に関するデータに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。
【００３７】
通信部４は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。さらに、通信部４は、ネットワーク１０１を介したネットワーク通信を行うことも可能である。このネットワーク通信では、たとえば、ＴＣＰ／ＩＰ（Transmission Control Protocol / Internet Protocol）等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、ＭＦＰ１０は、所望の相手先との間で各種のデータを授受することが可能である。
【００３８】
格納部５は、ハードディスクドライブ（ＨＤＤ）等の記憶装置で構成される。格納部５には、画像データ等が記憶される。また、格納部５には、各ユーザ向けに複数のボックス（フォルダ）が設けられており、各ボックスには、電子文書データ（文書ファイル）等が保存される。
【００３９】
入出力部６は、ＭＦＰ１０に対する入力を受け付ける操作入力部６ａと、各種情報の表示出力を行う表示部６ｂとを備えている。このＭＦＰ１０においては、略板状の操作パネル部６ｃ（図１参照）が設けられ、当該操作パネル部６ｃは、その正面側にタッチパネル２５（図１参照）を有している。タッチパネル２５は、液晶表示パネルに圧電センサ等が埋め込まれて構成され、各種情報を表示するとともに操作者からの操作入力を受け付けることが可能である。たとえば、タッチパネル２５においては、メニュー画面等の各種の画面（ボタン画像等を含む）等が表示される。操作者は、タッチパネル２５内に仮想的に配置されるボタン（ボタン画像で表現されるボタン）を押下することによって、ＭＦＰ１０の各種動作内容を設定することなどが可能である。タッチパネル２５は、操作入力部６ａの一部としても機能するとともに、表示部６ｂの一部としても機能する。
【００４０】
コントローラ９は、ＭＦＰ１０に内蔵され、ＭＦＰ１０を統括的に制御する制御装置である。コントローラ９は、ＣＰＵおよび各種の半導体メモリ（ＲＡＭおよびＲＯＭ）等を備えるコンピュータシステムとして構成される。コントローラ９は、ＣＰＵにおいて、ＲＯＭ（例えば、ＥＥＰＲＯＭ）内に格納されている所定のソフトウエアプログラム（より詳細には、プログラムモジュール群）を実行することによって、各種の処理部を実現する。なお、当該ソフトウエアプログラム（以下、単にプログラムとも称する）は、ＵＳＢメモリなどの可搬性の記録媒体に記録され、当該記録媒体を介してＭＦＰ１０にインストールされるようにしてもよい。あるいは当該プログラムは、ネットワーク１０１等を介してダウンロードされてＭＦＰ１０にインストールされるようにしてもよい。
【００４１】
この実施形態では、ＭＦＰ１０ａはＭＦＰ１０ｂよりも新しい機種の装置（あるいは高機能を有する装置）であるものとする。プログラムに関しても、ＭＦＰ１０ａはＭＦＰ１０ｂとは異なる構成を有している。
【００４２】
図３は、ＭＦＰ１０ａにおけるプログラム構成等を示す図であり、図４は、ＭＦＰ１０ｂにおけるプログラム構成等を示す図である。なお、これらの図におけるハードウエア２２０は、上述の各種のハードウエア（画像読取部２および印刷出力部３等）を概念的に纏めて示すものである。
【００４３】
まず、図３を参照しながら、ＭＦＰ１０ａのプログラム構成等について説明する。図３に示されるように、ＭＦＰ１０ａには、幾つかの階層に分類されるプログラムモジュール群が実装されている。
【００４４】
ＭＦＰ１０ａには、所定のオペレーションシステムソフトウエア（ＯＳ）２０１が実装されている。また、当該ＯＳ２０１の上には、ファームウエア２０２（詳細には、ミドルウエアとして機能するプログラムモジュール群）がさらに実装されている。ファームウエア２０２は、アプリケーションプラットフォーム２０３とラッパー２０４とに分類される。また、ファームウエア２０２の上には、ウエブブラウザ２０７およびその他の各種のアプリケーションプログラム（以下、単にアプリケーションとも称する）２０８がさらに実装されている。
【００４５】
アプリケーション２０８としては、たとえば、ＭＦＰ１０のメニュー操作画面をタッチパネル２５に表示してユーザからの操作を受け付けるアプリケーション（メニュー操作アプリケーションとも称する）が例示される。アプリケーション２０８は、ウエブサーバ２０５（後述）に対するアクセスに応じて動作するサーバアプリケーションであるとも表現される。なお、ウエブブラウザ２０７は、ＭＦＰ１０の外部のサーバに対するアクセスが可能であるとともに、ＭＦＰ１０の内部のサーバ２０５に対するアクセスも可能である。
【００４６】
アプリケーションプラットフォーム２０３は、内部ウエブサーバ（単に内部サーバとも称する）２０５を有している。内部サーバ２０５は、自装置内に設けられるウエブサーバであり、受付部１１を有している。受付部１１は、自装置（ＭＦＰ１０ａ）のウエブブラウザ２０７および／または他のＭＦＰ１０（たとえば１０ｂ）のウエブブラウザからのアクセスを受け付ける。また、受付部１１は、外部装置（ＭＦＰ１０ｂ等）からのリモート接続において、ＭＦＰ１０ａに実装されたアプリケーション２０８に関する複数のコマンドのうちの実行対象コマンドの実行指示を受け付ける。
【００４７】
このアプリケーションプラットフォーム２０３は、アプリケーション２０８をＯＳ２０１上で実行するためのプラットフォームとして機能する。端的に言えば、アプリケーションプラットフォーム２０３は、アプリケーション２０８の実行機能を有する。ＭＦＰ１０ａにおいては、ＯＳ２０１上で直接動作するアプリケーション（たとえばウエブブラウザ２０７）が実行されるとともに、アプリケーションプラットフォーム２０３の存在を前提とする適宜のアプリケーション２０８も実行される。
【００４８】
ラッパー２０４は、アプリケーションプラットフォーム２０３とＯＳ２０１とを媒介する機能等を有するプログラムである。具体的には、ラッパー２０４は、判定部１５、取得部１６および処理制御部１７等の各処理部を備えている。判定部１５は、受付部１１によって受け付けられた実行対象コマンドが第１および第２の種類のコマンド（後述）のいずれに属するか等を判定する。取得部１６は、ＭＦＰ１０ｂで実行可能なコマンド（実行可能コマンド）に関するリスト情報Ｌ１（後述）をＭＦＰ１０ｂから取得する。処理制御部１７は、当該実行対象コマンドに対応する処理をＭＦＰ１０ａで実行することの許否等を決定する。これらの各処理部の動作については後に詳述する。
【００４９】
なお、アプリケーションプラットフォーム２０３は第１のミドルウエアであるとも称され、ラッパー２０４は第２のミドルウエアであるとも称される。
【００５０】
また、上述のメニュー操作アプリケーション（２０８）は、内部連携アプリケーションとも表現される。内部連携アプリケーションは、ＭＦＰ１０の内部に設けられた内部サーバ２０５（図３）と連携するアプリケーションであり、内部サーバ連携アプリケーションとも称される。
【００５１】
内部連携アプリケーションは、ウエブブラウザ（単にブラウザとも称する）を介して内部サーバ２０５と通信する。内部連携アプリケーションは、ＨＴＴＰ（HyperText Transfer Protocol）およびスクリプト（PYTHON等のスクリプト言語で記述されたスクリプト）等を用いることによって、内部サーバ２０５と連携しつつ各種の処理を実行する。なお、内部サーバ２０５はＩＷＳ（インターネットウエブサーバないしインターナルウエブサーバ）等とも称され、内部連携アプリケーション２０８はＩＷＳアプリケーション等とも称される。
【００５２】
つぎにＭＦＰ１０ｂのプログラム構成等について図４を参照しながら説明する。
【００５３】
図４に示すように、ＭＦＰ１０ｂには、ＯＳ２０１およびウエブブラウザ２０７がＭＦＰ１０ａと同様に設けられているものの、ＭＦＰ１０ｂは、ＭＦＰ１０ａが有する上述のプログラム構成のうち、幾つかの構成を有していない。たとえば、ＭＦＰ１０ｂは、ラッパー２０４を有していない。また、ＭＦＰ１０ｂにはファームウエア２０２ｂが設けられてはいるものの、当該ファームウエア２０２ｂは、アプリケーションプラットフォーム２０３の一部の機能（ファームウエアとしての基本機能（他装置との通信動作の実行機能等））のみを有するものであり、アプリケーションの実行機能を有していない。ＭＦＰ１０ｂにおいては、ＯＳ２０１上で直接動作するアプリケーション（たとえばウエブブラウザ２０７）は実行され得るが、アプリケーションプラットフォーム２０３の存在を前提とするアプリケーションは実行できない。
【００５４】
なお、この実施形態では、ＭＦＰ１０ｂが内部サーバを有しない場合（図３参照）を例示しているが、これに限定されない。たとえば、ＭＦＰ１０ｂがラッパー２０４およびアプリケーションプラットフォーム２０３を有しない一方で、ＭＦＰ１０ｂ（ファームウエア２０２ｂ）が内部サーバ２０５を有していてもよい。さらには、ＭＦＰ１０ｂがアプリケーションプラットフォーム２０３を有していてもよい（図１０参照）。また、ＭＦＰ１０ｂがラッパー２０４をも有しており、ＭＦＰ１０ｂがＭＦＰ１０ａと同等のプログラム構成を有していても良い。
【００５５】
＜２．動作＞
つぎに、本システム１における動作について説明する。
【００５６】
ここでは、アプリケーション２０８として内部連携アプリケーション（詳細にはメニュー操作アプリケーション）が実行される場合について説明する。
【００５７】
このメニュー操作アプリケーション２０８は、内部サーバ２０５と連携して動作する。メニュー操作アプリケーション２０８は、ＭＦＰ１０の操作画面を表示し、当該操作画面を介して各種の操作入力を受け付け、当該操作入力に応じた動作を実行する。
【００５８】
より詳細には、ＭＦＰ１０ａ内の或るアドレス（たとえば、https://10.123.456.1/iws/app1/index.html）へのアクセスに応じて、メニュー操作アプリケーション２０８の実行が開始される。ここでは、ＭＦＰ１０ａのＩＰアドレスが「10.123.456.1」であり、ＭＦＰ１０ｂのＩＰアドレスが「10.123.456.2」であるものとする。当該アクセスに応じて、メニュー操作アプリケーション２０８は、内部サーバ２０５と連携し、当該メニュー操作アプリケーション２０８内にて予め登録された更に別の特定アドレス（ＭＦＰ１０ａ内の特定アドレス）にアクセスする。そして、メニュー操作アプリケーション２０８は、当該特定アドレスに格納された表示用データ（ＨＴＭＬ（HyperText Markup Language）等で記述された表示用データ）に基づき、最初の操作画面（メインメニュー画面）の表示用データをアクセス元のウエブブラウザ２０７に返信する。これにより、アクセス元のウエブブラウザ２０７に最初の操作画面が表示される。
【００５９】
また、その後においても同様にして、ユーザの操作に応じて、メニュー操作アプリケーション２０８は、当該メニュー操作アプリケーション２０８内に格納されているアクセス先（詳細には、当該アクセス先のＵＲＬ（Uniform Resource Locator））（最初のアクセス先とは異なるアクセス先）の情報等に基づいて、次動作を実行する。たとえば、アクセス先のＵＲＬの情報に基づいて、新たな操作画面（メニュー画面）の表示用データが要求元のウエブブラウザ２０７に送信される。これにより、新たな操作画面がウエブブラウザ２０７に表示されるとともに、当該新たな操作画面による各種のメニュー操作（ボックスメニューの表示指示操作等）がさらに受け付けられる。また、アクセス先のＵＲＬの情報に基づいて、当該メニューの詳細動作（ボックス内に格納されたファイルの閲覧動作および印刷動作等）が行われる。
【００６０】
このようなメニュー操作アプリケーション２０８の操作は、自装置（ＭＦＰ１０ａ）のウエブブラウザ２０７を用いて行うことが可能であるのみならず、他装置（ＭＦＰ１０ｂ等）のウエブブラウザ２０７を用いて行うことも可能である。換言すれば、ユーザはＭＦＰ１０ｂ（接続元装置とも称する）を用いてＭＦＰ１０ａ（接続先装置とも称する）に対してリモート接続し、ＭＦＰ１０ａに実装されたメニュー操作アプリケーション２０８を実行することが可能である。たとえば、ＭＦＰ１０ｂのウエブブラウザ２０７からＭＦＰ１０ａ（詳細には、ＭＦＰ１０ａの特定アドレス（たとえば、https://10.123.456.1/iws/app1/index.html））にアクセスし、ＭＦＰ１０ａを操作すること（すなわちリモート操作を行うこと）も可能である。
【００６１】
具体的には、ＭＦＰ１０ｂ（ＩＰアドレス＝「10.123.456.2」）のウエブブラウザ２０７は、ユーザの操作に応じて、ＭＦＰ１０ａ（ＩＰアドレス＝「10.123.456.1」）の内部サーバ２０５にアクセスする。詳細には、ＭＦＰ１０ａのメニュー操作アプリケーション２０８へのアクセス、より具体的には、当該メニュー操作アプリケーション２０８に対応する特定アドレス（たとえば、https://10.123.456.1/iws/app1/index.html）へのアクセスが行われる。そして、当該アクセスに応じて、ＭＦＰ１０ａに実装されたメニュー操作アプリケーション２０８が実行され得る。ＭＦＰ１０ａは、これに応じて、メニュー画面の表示用データをＭＦＰ１０ｂのウエブブラウザ２０７に送信する。ＭＦＰ１０ｂのウエブブラウザ２０７は、当該表示用データに基づきメニュー画面をＭＦＰ１０ｂのタッチパネル２５に表示（リモート表示）する。
【００６２】
また、ＭＦＰ１０ｂのウエブブラウザ２０７に表示されたメニュー画面において「ボックス一覧表示」ボタンが押下されると、ＭＦＰ１０ｂのウエブブラウザ２０７は、ＭＦＰ１０ａの内部サーバ２０５を介してＭＦＰ１０ａのメニュー操作アプリケーション２０８にアクセスする。具体的には、当該メニュー操作アプリケーション２０８に対応する特定アドレス（たとえば、https://10.123.456.1/iws/app1/view.lt?id=1001）へのアクセスが行われる。これに応じて、ＭＦＰ１０ａは、ＭＦＰ１０ａのボックス内の文書の一覧リストの表示用データを、ＭＦＰ１０ｂのウエブブラウザ２０７に送信する。ＭＦＰ１０ｂのウエブブラウザ２０７は、当該表示用データに基づき、ＭＦＰ１０ａのボックス内の文書の一覧リストをＭＦＰ１０ｂのタッチパネル２５に表示（リモート表示）する。
【００６３】
さらに、ＭＦＰ１０ｂのウエブブラウザ２０７に表示されたメニュー画面において「印刷」ボタンが押下されると、ＭＦＰ１０ｂのウエブブラウザ２０７は、ＭＦＰ１０ａのメニュー操作アプリケーション２０８へとアクセスする。具体的には、当該メニュー操作アプリケーション２０８に対応する特定アドレス（たとえば、https://10.123.456.1/iws/app1/ptint.py?id=0001）へのアクセスが行われる。なお、「id=0001」は、予め設定されているプリントパラメータセット（設定情報）であり、このプリントパラメータセットには、印刷対象データ、印刷枚数および印刷詳細設定等が含まれる。
【００６４】
このようにして、リモート接続元のＭＦＰ１０ｂのブラウザによって表示されたメニュー操作画面において、ＭＦＰ１０ａのボックスに格納されている特定の文書ファイルを印刷出力すべき旨の指示がユーザによって付与される。当該指示に従って、特定の文書ファイルの印刷出力が行われる。
【００６５】
ここにおいて、通常のリモート操作においては、当該指示に応じた動作が全てＭＦＰ１０ａ（リモート接続先の装置）で行われる。換言すれば、本発明を適用しない場合には、特定の文書ファイルの印刷出力は、常にＭＦＰ１０ａで実行される。このような技術を比較例に係る技術とも称するものとする。すなわち、この比較例に係る技術では、メニュー操作アプリケーション２０８で実行されるべき処理のうちＭＦＰ１０のハードウエアを利用する処理は、常に、自装置（ＭＦＰ１０ａ）のハードウエアを利用して実行される。
【００６６】
しかしながら、ＭＦＰ１０のハードウエアを利用する処理が常にＭＦＰ１０ａで実行されると、次のような不都合が生じることがある。
【００６７】
たとえば、ＭＦＰ１０ａに対して若干離れて配置されたＭＦＰ１０ｂをユーザが操作し、ＭＦＰ１０ｂからＭＦＰ１０ａへのリモートアクセスが行われる状況を想定する。この状況において、比較例に係る技術が用いられると、リモート操作による印刷出力処理が常にＭＦＰ１０ａのハードウエアを利用して実行される。そのため、ＭＦＰ１０ｂの操作ユーザは、若干離れたＭＦＰ１０ａの配置位置にまで移動して、ＭＦＰ１０ａによる印刷出力物を取りに行くことを求められ、不便を強いられる、との問題が存在する。
【００６８】
そこで、この実施形態においては、ＭＦＰ１０ａ（接続先装置）ではなくＭＦＰ１０ｂ（接続元装置）にて文書ファイルを印刷出力させることも可能な技術について説明する。この実施形態においては、文書ファイルの印刷出力指示（リモート印刷出力指示）に対して、印刷出力部３を用いた印刷出力動作（特定のハードウエア動作）自体は、ＭＦＰ１０ａではなくＭＦＰ１０ｂで行われる。すなわち、当該印刷出力動作は、ＭＦＰ１０ｂの印刷出力部３（ＭＦＰ１０ｂのハードウエア２２０（図４）のうち印刷出力用のハードウエア）を用いて行われる。これによれば、ユーザがリモート操作に利用しているＭＦＰ１０ｂによって、ＭＦＰ１０ａのボックスに格納されている文書ファイルを印刷出力されることが可能である。比較的近傍のＭＦＰ１０ｂによって印刷出力物が出力されるので、ユーザは比較的遠方のＭＦＰ１０ａにまで移動することを強いられずに済む。
【００６９】
まず、上述のように、ＭＦＰ１０ａに対するＭＦＰ１０ｂ（外部装置）からのリモート接続において、当該メニュー操作アプリケーション２０８に対応する特定アドレス（たとえば、https://10.123.456.1/iws/app1/ptint.py?id=0001）へのアクセスが行われ、ＭＦＰ１０ａのボックス内の文書の印刷指示が付与されるものとする。
【００７０】
なお、メニュー操作アプリケーション２０８（「ａｐｐ１」）は、複数のモジュールプログラム（印刷出力用プログラムモジュールおよび文書一覧リスト表示用プログラムモジュール等）で構成される。たとえば、「https://10.123.456.1/iws/app1/view.lt?id=1001」へのアクセスが行われるときには、文書一覧リスト表示用プログラムモジュールが動作する。また、「https://10.123.456.1/iws/app1/ptint.py?id=0001」へのアクセスが行われるときには、印刷出力用プログラムモジュールが動作する。
【００７１】
ボックス内文書の印刷指示に応じて、ＭＦＰ１０ａにおいては、ＭＦＰ１０ａに実装されているメニュー操作アプリケーション２０８に関する複数のコマンドのうちの実行対象コマンドの実行指示が受け付けられる。詳細には、ＭＦＰ１０ａに対するＭＦＰ１０ｂ（外部装置）からのリモート接続において、ＭＦＰ１０ａに実装されたメニュー操作アプリケーション２０８に関する複数のコマンドのうちの実行対象コマンドの実行指示をＭＦＰ１０ａの内部サーバ２０５（詳細には、受付部１１）が受け付ける。
【００７２】
詳細には、ＭＦＰ１０ｂからのアクセス情報「https://10.123.456.1/iws/app1/ptint.py?id=0001」が受付部１１により受信されると、当該アクセス情報に基づき、アプリケーションプラットフォーム２０３は、メニュー操作アプリケーション２０８に関する複数のコマンドのうち、次の２つの実行対象コマンドが受け付けられたものとして解釈する。なお、これらの実行対象コマンドは、各種のＡＰＩ（Application Programming Interface）等を用いて実現される。
【００７３】
１つは、ボックスデータを取得するコマンド（tmp_doc=mfp_get_boxdata(box_id=5,doc_id=1)）である。「mfp_get_boxdata」は、ボックスから文書データを取得すべき旨を示す関数（コマンド）である。「mfp_get_boxdata(box_id=5,doc_id=1)」は、ボックス番号「５」（box_id=5）のボックスから文書番号「１」（doc_id=1）の文書データを取得すべき旨を示すコマンドである。
【００７４】
他の１つは、印刷出力を指示するコマンド（ng=mfp_print_document(tmp_doc,n=2)）である。「mfp_print_document」は、文書データを印刷出力すべき旨を示す関数（コマンド）である。「mfp_print_document(tmp_doc,n=2)」は、１つ目のコマンドで取得されたボックス内文書（tmp_doc）を２部（n=2）印刷すべき旨を示すコマンドである。
【００７５】
これらの２つの実行対象コマンドは、通常（上記比較例においては）、アプリケーションプラットフォーム２０３（図３参照）で解釈されその解釈結果がＯＳ２０１に渡されてＯＳ２０１にて実行される。ただし、ここでは、２つの実行対象コマンドは、（ＯＳ２０１に直接渡されるのではなく、）アプリケーションプラットフォーム２０３からラッパー２０４へと渡され、ステップＳ１１，Ｓ１２の処理が行われる（図５参照）。
【００７６】
図５は、この実施形態に係るＭＦＰ１０ａの動作を示すフローチャートである。また、図６および図７は、実施形態に係る本システム１の動作の一例を示すタイミングチャートである。図６は、実行対象コマンドが第２の種類のコマンド（後述）である場合における動作を示すタイミングチャートである。図７は、実行対象コマンドが第１の種類のコマンド（後述）である場合における動作を示すタイミングチャートである。以下、図５〜図７等を参照しながら、説明を続ける。
【００７７】
ステップＳ１１においては、ＭＦＰ１０ａ（詳細には、判定部１５）は、実行対象コマンドの実行指示が外部装置からのものであるか否かを判定する。送信元装置のＩＰアドレスに基づき、実行対象コマンドの実行指示が外部装置からのものであるか否かが判定される。
【００７８】
実行対象コマンドの実行指示が外部装置からのものでない（ＭＦＰ１０ａ自身のウエブブラウザ２０７からのものである）場合には、ステップＳ３０に進み、通常の動作が行われる。すなわち、実行対象コマンドは、アプリケーションプラットフォーム２０３（図３参照）で解釈され、その解釈結果がＯＳ２０１に渡されてＯＳ２０１にて実行される。たとえば、印刷出力コマンドに基づく印刷出力物が常にＭＦＰ１０ａの印刷出力部を用いて印刷出力される。
【００７９】
一方、実行対象コマンドの実行指示が外部装置からのものである場合には、ステップＳ１２に進む。ここでは、送信元装置のＩＰアドレス（10.123.456.2）に基づき、当該実行指示が外部装置（ＭＦＰ１０ｂ）からの指示であると判定されたものとして説明を続ける。
【００８０】
次のステップＳ１２において、ＭＦＰ１０ａ（詳細には、判定部１５）は、実行対象コマンドの種類を判定する。
【００８１】
ここにおいて、ＭＦＰ１０ａで実行され得る複数のコマンドは次の２つの種類のコマンドに予め分類されている。
【００８２】
第１の種類のコマンドは、ＭＦＰのハードウエアの動作を伴う予め定められた１または複数の特定のコマンドである。たとえば、第１の種類のコマンドには、印刷出力コマンド（mfp_print_document）等が含まれる。印刷出力コマンドは、印刷出力部（印刷出力エンジン（印刷出力用ハードウエア））によって印刷出力動作を行うべき旨のコマンド（指令）である。
【００８３】
第２の種類のコマンドは、第１の種類のコマンド以外の種類のコマンドである。たとえば、第２の種類のコマンドには、ボックスから文書データを取得するコマンド（mfp_get_boxdata）等が含まれる。
【００８４】
ステップＳ１２では、各実行対象コマンドが第１の種類のコマンドと第２の種類のコマンドとのいずれに属するかが判定され、その判定結果に基づく分岐処理が行われる。換言すれば、実行対象コマンドに対応する処理（特定のハードウエア処理）をＭＦＰ１０ａで実行することの許否を、当該実行対象コマンドの種類に基づいて決定する処理が行われる。
【００８５】
実行対象コマンドが第２の種類のコマンドである場合には、ステップＳ１２からステップＳ１３に進む（図６も参照）。ステップＳ１３では、当該実行対象コマンドに対応する処理を自装置（ＭＦＰ１０ａ）で実行することが処理制御部１７によって許可される。そして、ステップＳ１４において、ＭＦＰ１０ａにて当該実行対象コマンドが実行される。詳細には、当該実行対象コマンドのアプリケーションプラットフォーム２０３による解釈結果がそのままＯＳ２０１に渡され、当該実行対象コマンドに対応する処理がＯＳ２０１によって実行される。たとえば、文書データをボックスから取得するコマンド（mfp_get_boxdata）のアプリケーションプラットフォーム２０３による解釈結果がそのまま、ラッパー２０４を経由してＯＳ２０１に渡され、ＯＳ２０１は、指定文書データをＭＦＰ１０ａ内の指定ボックスから抽出して取得する。取得結果（指定文書データ）は、ラッパー２０４に渡され（戻され）、必要に応じてアプリケーションプラットフォーム２０３およびアプリケーション２０８に渡される（戻される）。このようにして、実行対象コマンド（mfp_get_boxdata）は、ＭＦＰ１０ａにて処理される（図６も参照）。
【００８６】
一方、実行対象コマンドが第１の種類のコマンドである場合には、ステップＳ１２からステップＳ２１に進む（図５参照）。
【００８７】
ステップＳ２１では、当該実行対象コマンドに対応する処理をＭＦＰ１０ａで実行することが処理制御部１７によって禁止される（図７も参照）。
【００８８】
次のステップＳ２２では、外部装置（ＭＦＰ１０ｂ）で実行可能なコマンドである実行可能コマンドに関するリスト情報Ｌ１（図８参照）を当該外部装置（ＭＦＰ１０ｂ）から取得する処理が取得部１６によって行われる。ここでは、ＭＦＰ１０ｂが当該リスト情報Ｌ１を内部に有しており、ＭＦＰ１０ａからの問合せに対して、当該リスト情報Ｌ１がＭＦＰ１０ｂからＭＦＰ１０ａへと送信されるものとする。また、ＭＦＰ１０ｂのファームウエア２０２ｂは、他装置との通信動作の実行機能を有しており、ＭＦＰ１０ａからの問合せを受信する機能と、当該問合せに対する結果（リスト情報Ｌ１等）をＭＦＰ１０ｂからＭＦＰ１０ａへと送信（返信）する機能とを有しているものとする。
【００８９】
たとえば、ＭＦＰ１０ａからＭＦＰ１０ｂの特定アドレスに対するアクセス（「http://10.123.456.2/active」）により、ＭＦＰ１０ａからＭＦＰ１０ｂへの問合せが行われ、当該リスト情報Ｌ１が返信される。リスト情報Ｌ１には、外部装置（ＭＦＰ１０ｂ）で実行可能なコマンド（実行可能コマンド）（「mfp_print_document」等）が列挙されている。当該外部装置（ＭＦＰ１０ｂ）が解釈（実行）できないコマンドは、リスト情報Ｌ１には含まれない。たとえば、ＭＦＰ１０ｂがコマンド「mfp_print_document」を解釈（実行）できない場合には、当該コマンドはリスト情報Ｌ１には含まれない。
【００９０】
ステップＳ２３では、当該実行対象コマンド（第１の種類のコマンド）に対応する処理を外部装置（ＭＦＰ１０ｂ）で実行すべき旨の実行指示が、ＭＦＰ１０ａ（処理制御部１７）からＭＦＰ１０ｂに送信される。
【００９１】
具体的には、まず、ステップＳ２２で取得されたリスト情報Ｌ１に基づき実行対象コマンドがＭＦＰ１０ｂの実行可能コマンドであると判定される場合には、当該実行指示コマンドがそのままＭＦＰ１０ｂに送信される。より詳細には、実行対象コマンド（印刷出力コマンド（mfp_print_document））が上記リスト情報Ｌ１に実行可能コマンドとして含まれる場合には、当該実行対象コマンド（mfp_print_document）がそのままＭＦＰ１０ｂに転送される。また、印刷パラメータに関する情報も併せてＭＦＰ１０ｂに送信される。この実行指示に応じて、ＭＦＰ１０ｂにおいては、当該実行対象コマンドに対応する処理（印刷出力処理）が実行される。
【００９２】
また、実行対象コマンドはリスト情報Ｌ１に記載されていない（実行対象コマンド自体は実行可能コマンドではない）ものの、実行対象コマンドと同等の処理は外部装置（ＭＦＰ１０ｂ）で実行可能であると判定される場合には、ＭＦＰ１０ａの処理制御部１７は、「代替コマンド」（実行対象コマンドと同等の処理を実行するコマンド）を生成して、当該代替コマンドをＭＦＰ１０ｂに送信する。このような代替コマンドによる実行指示に応じて、実行対象コマンドに対応する処理がＭＦＰ１０ｂにて実行される。
【００９３】
たとえば、実行対象コマンドである印刷出力コマンド（mfp_print_document）がリスト情報Ｌ１に記載されていない（当該印刷出力コマンドがＭＦＰ１０ｂによる実行可能コマンドではない）と判定される場合には、実行対象コマンドと同等の処理がＭＦＰ１０ｂで実行可能であるか否かがＭＦＰ１０ａの処理変換リスト情報Ｌ２（図８参照）に基づいて判定される。そして、実行対象コマンドと同等の処理がＭＦＰ１０ｂで実行可能であると判定されるときには、処理変換リスト情報Ｌ２に基づいて、印刷出力コマンドと同等の処理を実行する代替コマンドが生成される。
【００９４】
ここで、ＭＦＰ１０ａの処理変換リスト情報Ｌ２は、実行対象コマンドと基本コマンド（たとえば、ファームウエアにおける一般的なコマンド（多数の機種に共通する基本的なコマンド））との対応関係を規定するリスト情報である。処理変換リスト情報Ｌ２は、ＭＦＰ１０ａの格納部５に予め格納されている。処理変換リスト情報Ｌ２には、たとえば、印刷出力コマンド「mfp_print_document」に対して、ＰＣプリントコマンドに関する２つの基本コマンド（「create_pcprintjob」および「send_pcjob」）が対応付けられて記載されている。なお、「ＰＣプリントコマンド」は、外部のパーソナルコンピュータ（ＰＣ）等からＭＦＰ１０に対して送出される印刷出力外部指示コマンドである。
【００９５】
処理制御部１７は、処理変換リスト情報Ｌ２に基づき、実行対象コマンドと同等の処理がＭＦＰ１０ｂで実行可能である旨を判定するときには、処理変換リスト情報Ｌ２に基づき、印刷出力コマンド「mfp_print_document(tmp_doc,n=2)」に関する代替コマンドを生成する。代替コマンドとしては、ＰＣプリントコマンド等が利用される。たとえば、処理変換リスト情報Ｌ２に基づき、「job=create_pcprintjob(tmp_doc,n=2)」と「send_pcjob("10.123.456.2",job)」との２つのサブコマンドが代替コマンドとして生成される。前者のサブコマンド（create_pcprintjob）は、ＰＣプリントジョブを生成するコマンドであり、後者のサブコマンド（send_pcjob）は、前者のサブコマンドにより生成されたＰＣプリントジョブを送信するコマンドである。前者のサブコマンドにおいては、２つの引数（ＰＣプリントジョブの対象文書を示すパラメータ、および印刷枚数を示すパラメータ）が指定される。また、後者のサブコマンドにおいては、２つの引数（ＭＦＰ１０ｂのＩＰアドレスを示すパラメータ、およびＰＣプリントジョブの対象特定用パラメータ）が指定される。
【００９６】
そして、処理制御部１７は、当該２つのサブコマンドをＭＦＰ１０ｂに送信する。また、指定されたパラメータ（データ）も代替コマンドの一部として送信される。たとえば、指定パラメータ「tmp_doc」の実体データも送信される。この指定パラメータ「tmp_doc」には、印刷対象データおよび印刷枚数に関するデータが含まれる。なお、必要に応じて、印刷設定等も送信される。
【００９７】
このようにして、元の実行対象コマンドに含まれていた設定情報（印刷対象データ、印刷枚数および印刷詳細設定等）をも有する代替コマンド等が、ＭＦＰ１０ｂに送信される。このような送信動作に応じて、実行対象コマンドに対応する処理がＭＦＰ１０ｂにて実行される。
【００９８】
なお、実行対象コマンドがリスト情報Ｌ１に記載されておらず且つ処理変換リスト情報Ｌ２に基づく代替コマンドの作成を行うこともできない場合には、ＭＦＰ１０ａ（処理制御部１７等）は、要求元のウエブブラウザ（ここではＭＦＰ１０ｂのウエブブラウザ２０７）に対して、エラーメッセージの表示用データを送信する。ＭＦＰ１０ｂのウエブブラウザ２０７は、当該表示用データを受信すると、当該表示用データに基づくエラーメッセージ（ユーザ指示内容（印刷指示）を実行することができない旨を示すメッセージ等）を表示する。
【００９９】
以上のような動作によれば、ＭＦＰ１０ａに実装されたメニュー操作アプリケーション２０８がＭＦＰ１０ｂ（外部装置）からのリモート接続（ユーザによるリモート操作）に応じて実行（リモート実行）される際に、メニュー操作アプリケーション２０８に関する複数のコマンドのうちの実行対象コマンドに対応する処理をＭＦＰ１０ａで実行することの許否が、実行対象コマンドの種類に基づいて決定される。詳細には、実行対象コマンドが第２の種類のコマンドである場合には、当該実行対象コマンドに対応する処理のＭＦＰ１０ａでの実行が許可される。一方、実行対象コマンドが第１の種類のコマンド（印刷出力コマンド等）である場合には、当該実行対象コマンドに対応する処理（ハードウエア処理）のＭＦＰ１０ａでの実行が禁止される。したがって、実行対象コマンドに対応する処理が常にＭＦＰ１０ａ（リモート接続先の装置）で実行されることに起因する弊害を排除することが可能である。換言すれば、リモート操作において、ＭＦＰのハードウエアを用いる処理が常にＭＦＰ１０ａ（リモート接続先の装置）で実行されることに起因する問題が解消され得る。より詳細には、ユーザによる直接的接触の比較的困難な装置（リモート接続先装置）が常に用いられて特定のハードウエア処理が行われること、に起因する問題が解消され得る。
【０１００】
たとえば、実行対象コマンドが印刷出力コマンド（第１の種類のコマンド）である場合には、当該印刷出力コマンドに対応するハードウエア処理（印刷出力処理）のＭＦＰ１０ａ（リモート接続先装置）での実行が禁止される。これによれば、ユーザの利便性を向上させることができる。詳細には、ユーザは、比較的遠くのＭＦＰ１０ａの配置場所にまで印刷出力物を取りに行かなくても済む。ユーザから非常に遠く離れた場所（たとえば、自社の他の事業所）に配置されているＭＦＰ１０ａをユーザ近傍のＭＦＰ１０ｂを用いてリモート操作する場合には、当該効果は特に顕著である。また、ＭＦＰ１０ａ（不本意な装置）における意図しない印刷出力が行われないことによって、ＭＦＰ１０ａにて出力された印刷出力物から機密情報が漏洩してしまうことを回避することも可能である。
【０１０１】
また、特定のハードウエア（印刷出力エンジン等）を利用する処理をそのままＭＦＰ１０ａで実行するのではなく、操作元（接続元）の外部装置（ＭＦＰ１０ｂ）における対応ハードウエア（印刷出力エンジン等）を用いて実行することが可能である。したがって、リモート操作において、リモート操作を行う側の装置（ＭＦＰ１０ｂ）のハードウエアを用いることによる利点を得ることができる。
【０１０２】
たとえば、実行対象コマンド（印刷出力コマンド）に対応する処理（印刷出力処理）をＭＦＰ１０ｂで実行すべき旨がＭＦＰ１０ｂに送信され、当該実行対象コマンドに対応する処理がＭＦＰ１０ｂで実行される。これによれば、ユーザは、ＭＦＰ１０ａの配置場所に移動することなく、操作対象のＭＦＰ１０ｂ（ユーザ近傍のＭＦＰ１０ｂ）にて印刷出力物を受け取ることができるので、高い利便性を得ることができる。
【０１０３】
また、上記実施形態においては、ＭＦＰ１０ａにおいて実行対象コマンドが受信された後（リモート処理の実行が開始された後）は、ＭＦＰ１０ａにおける処理のみによって、実行対象コマンドに対応する処理のＭＦＰ１０ａでの実行の許否が決定されている。換言すれば、実行対象コマンドの対応処理のＭＦＰ１０ａでの実行の許否は、ＭＦＰ１０ｂとの通信を行うことなく、決定されている。これによれば、当該許否がＭＦＰ１０ａとＭＦＰ１０ｂとの間での通信処理を伴って決定される場合に比べて、ＭＦＰ１０ｂのプログラム構成等に対する変更を最小限に抑制すること（より好適には、当該変更を行わなわずに済ませること）ができる。
【０１０４】
また特に、上記実施形態においては、ファームウエア（ミドルウエア）２０２が第１のミドルウエア２０３と第２のミドルウエア２０４との２階層で構成されており、第２のミドルウエア２０４が第１のミドルウエア２０３とオペレーションシステムソフトウエア２０１との間に設けられている。そして、判定部１５および処理制御部１７等は、第１のミドルウエア（受付部１１を含む）２０３とは別の第２のミドルウエア（ラッパー）２０４において（付加的に）設けられている。したがって、第１のミドルウエア２０３に大きな変更を加えることなく、第１のミドルウエアに対する拡張機能を有するソフトウエアシステムを容易に構成することが可能である。
【０１０５】
なお、上記実施形態においては、ＭＦＰ１０ａがリスト情報Ｌ１をＭＦＰ１０ｂから取得し、ＭＦＰ１０ｂにて印刷出力処理が可能であることをリスト情報Ｌ１に基づいてＭＦＰ１０ａが確認した後に、印刷出力コマンドがＭＦＰ１０ａからＭＦＰ１０ｂへと送信される態様が例示されているが、これに限定されない。たとえば、リスト情報Ｌ１に基づく確認処理が行われることなく、第１の種類のコマンド（印刷出力コマンド等）が無条件でＭＦＰ１０ａからＭＦＰ１０ｂへと送信されるようにしてもよい。あるいは、リスト情報Ｌ１に基づく確認処理が行われることなく、リスト情報Ｌ２に基づく代替コマンドがＭＦＰ１０ａからＭＦＰ１０ｂへと送信されるようにしてもよい。
【０１０６】
また、上記実施形態においては、アプリケーション２０８としてメニュー操作アプリケーション（内部連携アプリケーション）を中心に例示したが、これに限定されない。たとえば、アプリケーション２０８は、クラウド印刷アプリケーション（たとえば、クラウド上に格納された電子文書（文書データ）をダウンロードして印刷出力するアプリケーション）などであってもよい。
【０１０７】
＜３．変形例等＞
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
【０１０８】
たとえば、上記実施形態においては、特定ハードウエアに関するコマンド（第１の種類のコマンド）がＭＦＰ１０ｂからのリモート操作に応じて実行対象コマンドとしてＭＦＰ１０ａにて実行される場合には、当該実行対象コマンドに対応する処理のＭＦＰ１０ａでの実行が無条件に（常に）禁止される態様が例示されているがこれに限定されない。具体的には、当該実行対象コマンドに対応する処理をＭＦＰ１０ａとＭＦＰ１０ｂとのいずれで実行するかがユーザに問い合わせられ、その問い合わせに対するユーザの指示に応じた処理が実行されるようにしてもよい。
【０１０９】
より詳細には、処理制御部１７は、実行対象コマンドが第１の種類のコマンドである場合には、実行対象コマンドに対応する処理（実行対象コマンドの対応処理）のＭＦＰ１０ａでの実行をまず一旦禁止する。そして、処理制御部１７は、実行対象コマンドの対応処理をＭＦＰ１０ａとＭＦＰ１０ｂとのいずれで実行すべきかに関するユーザ指示を受け付けるための確認用画面の表示用データ（確認用情報）をＭＦＰ１０ｂのウエブブラウザ２０７に送信する。ＭＦＰ１０ｂは、この確認用情報に基づいて、確認用画面をＭＦＰ１０ｂのウエブブラウザ２０７を用いて表示する。
【０１１０】
図９は、このような確認用画面を示す図である。当該確認用画面には、「この処理（印刷出力処理）を接続先装置（ＭＦＰ１０ａ）で実行しますか、それとも、本装置（ＭＦＰ１０ｂ）で実行しますか？」との２つの選択肢の存在を示す文言が表示されているともに、当該２つの選択肢に応じた２つのボタン３１，３２が表示されている。ユーザは、２つのボタン３１，３２（「接続先装置」および「本装置（接続元装置）」）のうち、所望の選択肢に対応するボタンを押下することによって、ユーザ指示を付与する。
【０１１１】
そして、当該確認用画面に対して入力されたユーザ指示に基づく情報（ユーザ指示情報）がＭＦＰ１０ｂからＭＦＰ１０ａへと送信される。ＭＦＰ１０ａ（処理制御部１７）は、ＭＦＰ１０ａから返信（送信）されてきたユーザ指示情報に基づいて、実行対象コマンドの対応処理をＭＦＰ１０ａで実行するかＭＦＰ１０ｂで実行するかを決定する。
【０１１２】
実行対象コマンドの対応処理をＭＦＰ１０ｂ（操作元装置）で実行すべき旨のユーザ指示情報が受信される場合には、実行対象コマンドの対応処理をＭＦＰ１０ｂで実行すべき旨が決定され、上述のステップＳ２２，Ｓ２３と同様の動作が実行される。
【０１１３】
一方、実行対象コマンドの対応処理をＭＦＰ１０ａ（操作先装置）で実行すべき旨のユーザ指示情報が受信される場合には、実行対象コマンドの対応処理をＭＦＰ１０ａで実行すべき旨が決定され、実行対象コマンドの対応処理のＭＦＰ１０ａでの実行禁止が解除される。そして、ＭＦＰ１０ａにて実行対象コマンドの対応処理が実行される。たとえば、ＭＦＰ１０ａの印刷出力部３を用いた印刷出力処理等が実行される。
【０１１４】
このような動作によれば、ＭＦＰ１０ａでの特定ハードウエア動作（たとえば印刷出力動作）が常に禁止される場合に比べても、より柔軟な対応を行うことが可能である。たとえば、ＭＦＰ１０ａとＭＦＰ１０ｂとのいずれもがユーザの近傍に存在し、ＭＦＰ１０ａが他ユーザによって使用中であったためにＭＦＰ１０ｂを用いてリモート操作を開始したが、当該リモート操作の途中でＭＦＰ１０ａの当該他ユーザによる使用が終了した状況が想定される。このような状況において、より好適な所望の装置（たとえばＭＦＰ１０ａ）を用いて印刷出力を行うことが可能である。たとえば、比較的高速なＭＦＰ１０ａを用いて、比較的高速に印刷出力を行うことが可能である。
【０１１５】
また、このような問合せ動作を行うか否かは、ＭＦＰ１０ａにおけるユーザ設定によって切り換えられるようにしてもよい。
【０１１６】
また、上記実施形態等においては、ハードウエアの動作を伴う予め定められた第１の種類のコマンドとして、印刷出力コマンドを主に例示したが、これに限定されない。
【０１１７】
たとえば、画像スキャンコマンドに関しても上記の思想を適用することが可能であり、第１の種類のコマンドには画像スキャンコマンドも含まれ得る。画像スキャンコマンドは、画像読取部（スキャンエンジン（画像スキャン用ハードウエア））を用いて画像スキャン動作を行うべき旨（画像スキャン動作によって原稿の画像データを生成すべき旨）のコマンドである。
【０１１８】
より詳細には、ＭＦＰ１０ｂのブラウザを用いてＭＦＰ１０ａをリモート操作して、スキャン動作の実行コマンドがＭＦＰ１０ａにて実行される態様において、ＭＦＰ１０ａ（接続先装置）での当該スキャン動作を禁止することが可能である。これによれば、ユーザによる直接的接触の比較的困難な装置（リモート接続先装置）が常に用いられて特定のハードウエア処理（スキャン処理）が行われること、に起因する問題が解消され得る。たとえば、ユーザは、比較的遠くのＭＦＰ１０ａの配置場所にまでスキャン動作を行うために移動せずに済み、ユーザの利便性を向上させることが可能である。換言すれば、ＭＦＰ１０ｂを操作しているユーザから離れた場所にＭＦＰ１０ａが配置されている状況において、ユーザの意図とは無関係に、当該ＭＦＰ１０ａがスキャン操作待ちになってしまうことを回避することが可能である。
【０１１９】
また、特定のハードウエア（画像スキャンエンジン）を利用する処理をそのままＭＦＰ１０ａで実行するのではなく、操作元（接続元）の外部装置（ＭＦＰ１０ｂ）における対応ハードウエア（画像スキャンエンジン等）を用いて実行することが可能である。これによれば、リモート操作において、リモート操作を行う側の装置（ＭＦＰ１０ｂ）のハードウエアを用いることによる利点を得ることができる。たとえば、ユーザは、ＭＦＰ１０ａの配置場所に移動することなく、操作対象のＭＦＰ１０ｂ（ユーザ近傍のＭＦＰ１０ｂ）にてスキャン処理を行うことができるので、高い利便性を得ることができる。
【０１２０】
また、認証用ハードウエア（各種の認証装置（指紋認証装置およびカード式認証装置等））の認証動作に関する各種のコマンド、および、課金用ハードウエア（コイン投入式課金装置）の課金動作に関する各種のコマンドなども、ハードウエアの動作を伴う予め定められた第１の種類のコマンドとして例示される。
【符号の説明】
【０１２１】
１  画像形成システム
６ｃ  操作パネル部
１０  ＭＦＰ（画像形成装置）
２５  タッチパネル
１０１  ネットワーク
２０１  オペレーションシステムソフトウエア（ＯＳ）
２０２  ファームウエア
２０３  アプリケーションプラットフォーム
２０４  ラッパー
２０５  内部サーバ
２０７  ウエブブラウザ
２０８  アプリケーション
【図１】
2015139150.tif 000003
【図２】
2015139150.tif 000004
【図３】
2015139150.tif 000005
【図４】
2015139150.tif 000006
【図５】
2015139150.tif 000007
【図６】
2015139150.tif 000008
【図７】
2015139150.tif 000009
【図８】
2015139150.tif 000010
【図９】
2015139150.tif 000011
【図１０】
2015139150.tif 000012