(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、上記の技術は、パーソナルコンピュータから画像形成装置にリモート接続するものであるが、或る画像形成装置に対して別の画像形成装置からリモート接続することも考えられる。
【0008】
たとえば、MFP10aに対して別のMFP10bからリモート接続し、MFP10bによるリモート操作に応じて、MFP10aに実装されたアプリケーション(たとえばメニュー画面操作アプリケーション)を実行することが可能である。
【0009】
このとき、上記の技術を用いると、当該アプリケーションに関する実行対象コマンドに対応する処理は、MFP10aにおいて実行される。たとえば、当該アプリケーションにおいて印刷出力指示が付与されたときには、当該印刷出力指示に応じて実行対象コマンド(印刷出力コマンド)が生成され、印刷出力コマンドに対応する処理(印刷出力処理)は、MFP10aのハードウエア(印刷出力部)を用いて行われる。このように、MFP10aを別のMFP10bからリモート操作している場合において、MFP10aのアプリケーションが実行されるときには、MFP10aのリソース(ハードウエア資源を含む)を用いて各種処理(実行対象コマンドに対応する処理)が実行される。
【0010】
しかしながら、当該アプリケーションに関する実行対象コマンドに対応する処理がMFP10a(リモート接続先装置)で常に実行されること(換言すれば、硬直した処理が実行されること)は、必ずしも適切ではない。
【0011】
たとえば、ユーザから比較的遠く離れて配置されたMFP10aを、当該ユーザの比較的近傍に配置されたMFP10bを用いてリモート操作する場合を想定する。上記の技術を利用するときには、このようなリモート操作において、MFP10bからのリモート操作指示に応じて、MFP10aにおけるアプリケーションが動作し、当該アプリケーションに関する全ての処理はMFP10aにて実行される。上述のように、そのような処理の中には、印刷出力などのハードウエア動作を伴うものも含まれ得る。このような印刷出力処理がMFP10aで実行されると、比較的近傍のMFP10bを操作しているユーザは、比較的遠方のMFP10aまで印刷出力物を取りに行くことを求められる。その結果、ユーザの利便性は低下する。
【0012】
このように、特定のハードウエアを用いる処理(印刷出力処理等)が常にリモート接続先装置で実行され、ユーザの利便性を考慮せずにハードウエア利用処理が行われてしまうなどの問題が存在する。
【0013】
そこで、この発明は、リモート接続によるアプリケーション実行時において、ハードウエアを用いる処理が常にリモート接続先装置で実行されることに起因する問題を解消することが可能な技術を提供することを課題とする。
【課題を解決するための手段】
【0014】
上記課題を解決すべく、請求項1の発明は、外部装置からのリモート接続に応じてアプリケーションを実行することが可能な画像形成装置であって、前記外部装置からのリモート接続において、前記画像形成装置に実装された前記アプリケーションに関する複数のコマンドのうちの実行対象コマンドの実行指示を
前記外部装置から受け付ける受付手段と、ハードウエアの動作を伴う予め定められた種類の第1の種類のコマンドと前記第1の種類のコマンド以外の種類のコマンドである第2の種類のコマンドとのいずれに
、前記外部装置からの前記実行対象コマンドが属するかを判定する判定手段と、前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定する処理制御手段と、を備え、前記処理制御手段は、
前記外部装置からの前記実行対象コマンドが前記第2の種類のコマンドであると判定される場合に、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を許可し、
前記外部装置からの前記実行対象コマンドが前記第1の種類のコマンドである場合に、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を禁止することを特徴とする。
【0015】
請求項2の発明は、請求項1の発明に係る画像形成装置において、前記処理制御手段は、前記実行対象コマンドが前記第1の種類のコマンドである場合に、前記実行対象コマンドに対応する処理を前記外部装置で実行すべき旨を、前記外部装置に送信することを特徴とする。
【0016】
請求項3の発明は、
外部装置からのリモート接続に応じてアプリケーションを実行することが可能な画像形成装置であって、前記外部装置からのリモート接続において、前記画像形成装置に実装された前記アプリケーションに関する複数のコマンドのうちの実行対象コマンドの実行指示を受け付ける受付手段と、ハードウエアの動作を伴う予め定められた種類の第1の種類のコマンドと前記第1の種類のコマンド以外の種類のコマンドである第2の種類のコマンドとのいずれに前記実行対象コマンドが属するかを判定する判定手段と、前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定する処理制御手段と、を備え、前記処理制御手段は、前記実行対象コマンドが前記第2の種類のコマンドであると判定される場合に、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を許可し、前記実行対象コマンドが前記第1の種類のコマンドである場合に、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を禁止し、前記画像形成装置は、前記外部装置で実行可能なコマンドである実行可能コマンドに関するリスト情報を取得する取得手段、をさらに備え、前記処理制御手段は、前記実行対象コマンドが前記第1の種類のコマンドであり且つ前記実行対象コマンドが前記実行可能コマンドであると判定される場合には、前記実行対象コマンドに対応する処理を前記外部装置で実行すべき旨を、前記外部装置に送信することを特徴とする。
【0017】
請求項4の発明は、請求項3の発明に係る画像形成装置において、前記処理制御手段は、前記実行対象コマンドが前記実行可能コマンドとして前記リスト情報に含まれる場合には、前記実行対象コマンドをそのまま前記外部装置に送信して、前記実行対象コマンドに対応する処理を前記外部装置で実行させることを特徴とする。
【0018】
請求項5の発明は、請求項3の発明に係る画像形成装置において、前記処理制御手段は、前記実行対象コマンドが前記第1の種類のコマンドである場合において、前記実行対象コマンドが前記実行可能コマンドではないが前記実行対象コマンドと同等の処理が前記外部装置で実行可能であると判定される場合には、前記実行対象コマンドと同等の処理を実行する代替コマンドを生成して、当該代替コマンドを前記外部装置に送信して、前記実行対象コマンドに対応する処理を前記外部装置で実行させることを特徴とする。
【0019】
請求項6の発明は、請求項5の発明に係る画像形成装置において、前記代替コマンドは、前記実行対象コマンドに含まれる設定情報を有することを特徴とする。
【0020】
請求項7の発明は、
外部装置からのリモート接続に応じてアプリケーションを実行することが可能な画像形成装置であって、前記外部装置からのリモート接続において、前記画像形成装置に実装された前記アプリケーションに関する複数のコマンドのうちの実行対象コマンドの実行指示を受け付ける受付手段と、ハードウエアの動作を伴う予め定められた種類の第1の種類のコマンドと前記第1の種類のコマンド以外の種類のコマンドである第2の種類のコマンドとのいずれに前記実行対象コマンドが属するかを判定する判定手段と、前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定する処理制御手段と、を備え、前記処理制御手段は、前記実行対象コマンドが前記第2の種類のコマンドであると判定される場合に、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を許可し、前記実行対象コマンドが前記第1の種類のコマンドである場合には、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を一旦禁止し、前記実行対象コマンドに対応する処理を前記画像形成装置と前記外部装置とのいずれで実行すべきかに関するユーザ指示を受け付けるための確認用情報を前記外部装置に送信し、前記確認用情報の送信に対して前記外部装置から返信されてきたユーザ指示情報に基づいて、前記実行対象コマンドに対応する処理を前記画像形成装置で実行するか前記外部装置で実行するかを決定することを特徴とする。
【0021】
請求項8の発明は、
外部装置からのリモート接続に応じてアプリケーションを実行することが可能な画像形成装置であって、前記外部装置からのリモート接続において、前記画像形成装置に実装された前記アプリケーションに関する複数のコマンドのうちの実行対象コマンドの実行指示を受け付ける受付手段と、ハードウエアの動作を伴う予め定められた種類の第1の種類のコマンドと前記第1の種類のコマンド以外の種類のコマンドである第2の種類のコマンドとのいずれに前記実行対象コマンドが属するかを判定する判定手段と、前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定する処理制御手段と、を備え、前記処理制御手段は、前記実行対象コマンドが前記第2の種類のコマンドであると判定される場合に、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を許可し、前記実行対象コマンドが前記第1の種類のコマンドである場合に、前記実行対象コマンドに対応する処理の前記画像形成装置での実行を禁止し、前記受付手段、前記判定手段および前記処理制御手段は、前記アプリケーションとオペレーションシステムソフトウエアとを媒介するミドルウエアとして設けられ、前記ミドルウエアは、前記受付手段を含む第1のミドルウエアと、前記第1のミドルウエアとは別に構成される第2のミドルウエアとを有し、前記第2のミドルウエアは、前記第1のミドルウエアと前記オペレーションシステムソフトウエアとの間に設けられ、前記判定手段および前記処理制御手段は、前記第2のミドルウエアに設けられることを特徴とする。
【0022】
請求項9の発明は、
請求項1から請求項8のいずれかの発明に係る画像形成装置において、前記外部装置は、ウエブブラウザを有し、前記画像形成装置は、ウエブサーバを有し、前記外部装置の前記ウエブブラウザから前記画像形成装置の前記ウエブサーバへのアクセスに応じて、前記画像形成装置に実装された前記アプリケーションが実行されることを特徴とする。
【0023】
請求項10の発明は、
請求項1から請求項9のいずれかの発明に係る画像形成装置において、前記第1の種類のコマンドは、印刷出力用ハードウエアを用いた印刷出力動作を行うべき旨を示す印刷出力コマンドを含むことを特徴とする。
【0024】
請求項11の発明は、
請求項1から請求項9のいずれかの発明に係る画像形成装置において、前記第1の種類のコマンドは、画像スキャン用のハードウエアを用いた画像スキャン動作を行うべき旨を示す画像スキャンコマンドを含むことを特徴とする。
【0025】
請求項12の発明は、画像形成装置に実装されたアプリケーションを外部装置からのリモート接続に応じて実行することが可能な前記画像形成装置に内蔵されたコンピュータに、
a)前記外部装置からのリモート接続において、前記画像形成装置に実装された前記アプリケーションに関する複数のコマンドのうちの実行対象コマンドの実行指示を前記外部装置から受け付けるステップと、b)ハードウエアの動作を伴う予め定められた種類の第1の種類のコマンドと前記第1の種類のコマンド以外の種類のコマンドである第2の種類のコマンドとのいずれに、前記外部装置からの前記実行対象コマンドが属するかを判定するステップと、c)前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定するステップと、を実行させるためのプログラムであって、前記ステップ
c)においては、
前記外部装置からの前記実行対象コマンドが前記第2の種類のコマンドであると判定される場合には、前記実行対象コマンドに対応する処理の前記画像形成装置での実行が許可され、
前記外部装置からの前記実行対象コマンドが前記第1の種類のコマンドである場合には、前記実行対象コマンドに対応する処理の前記画像形成装置での実行が禁止されることを特徴とする。
請求項13の発明は、請求項12の発明に係るプログラムにおいて、前記ステップc)において、前記実行対象コマンドが前記第1の種類のコマンドである場合、前記実行対象コマンドに対応する処理を前記外部装置で実行すべき旨が、前記外部装置に送信されることを特徴とする。
請求項14の発明は、画像形成装置に実装されたアプリケーションを外部装置からのリモート接続に応じて実行することが可能な前記画像形成装置に内蔵されたコンピュータに、a)前記外部装置からのリモート接続において、前記画像形成装置に実装された前記アプリケーションに関する複数のコマンドのうちの実行対象コマンドの実行指示を受け付けるステップと、b)ハードウエアの動作を伴う予め定められた種類の第1の種類のコマンドと前記第1の種類のコマンド以外の種類のコマンドである第2の種類のコマンドとのいずれに、前記実行対象コマンドが属するかを判定するステップと、c)前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定するステップと、を実行させるためのプログラムであって、前記ステップc)においては、前記実行対象コマンドが前記第2の種類のコマンドであると判定される場合、前記実行対象コマンドに対応する処理の前記画像形成装置での実行が許可され、前記実行対象コマンドが前記第1の種類のコマンドである場合、前記実行対象コマンドに対応する処理の前記画像形成装置での実行が禁止され、前記プログラムは、d)前記外部装置で実行可能なコマンドである実行可能コマンドに関するリスト情報を取得するステップ、を前記コンピュータにさらに実行させ、前記ステップc)において、前記実行対象コマンドが前記第1の種類のコマンドであり且つ前記実行対象コマンドが前記実行可能コマンドであると判定される場合、前記実行対象コマンドに対応する処理を前記外部装置で実行すべき旨が、前記外部装置に送信されることを特徴とする。
請求項15の発明は、請求項14の発明に係るプログラムにおいて、前記ステップc)において、前記実行対象コマンドが前記実行可能コマンドとして前記リスト情報に含まれる場合、前記実行対象コマンドがそのまま前記外部装置に送信されて、前記実行対象コマンドに対応する処理を前記外部装置で実行させることを特徴とする。
請求項16の発明は、請求項14の発明に係るプログラムにおいて、前記ステップc)において、前記実行対象コマンドが前記第1の種類のコマンドである場合、前記実行対象コマンドが前記実行可能コマンドではないが前記実行対象コマンドと同等の処理が前記外部装置で実行可能であると判定されるときには、前記実行対象コマンドと同等の処理を実行する代替コマンドが生成され、当該代替コマンドが前記外部装置に送信されて、前記実行対象コマンドに対応する処理を前記外部装置で実行させることを特徴とする。
請求項17の発明は、請求項16の発明に係るプログラムにおいて、前記代替コマンドは、前記実行対象コマンドに含まれる設定情報を有することを特徴とする。
請求項18の発明は、画像形成装置に実装されたアプリケーションを外部装置からのリモート接続に応じて実行することが可能な前記画像形成装置に内蔵されたコンピュータに、a)前記外部装置からのリモート接続において、前記画像形成装置に実装された前記アプリケーションに関する複数のコマンドのうちの実行対象コマンドの実行指示を受け付けるステップと、b)ハードウエアの動作を伴う予め定められた種類の第1の種類のコマンドと前記第1の種類のコマンド以外の種類のコマンドである第2の種類のコマンドとのいずれに、前記実行対象コマンドが属するかを判定するステップと、c)前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定するステップと、を実行させるためのプログラムであって、前記ステップc)においては、前記実行対象コマンドが前記第2の種類のコマンドであると判定される場合、前記実行対象コマンドに対応する処理の前記画像形成装置での実行が許可され、前記実行対象コマンドが前記第1の種類のコマンドである場合、前記実行対象コマンドに対応する処理の前記画像形成装置での実行が一旦禁止され、前記実行対象コマンドに対応する処理を前記画像形成装置と前記外部装置とのいずれで実行すべきかに関するユーザ指示を受け付けるための確認用情報が前記外部装置に送信され、前記確認用情報の送信に対して前記外部装置から返信されてきたユーザ指示情報に基づいて、前記実行対象コマンドに対応する処理を前記画像形成装置で実行するか前記外部装置で実行するかが決定されることを特徴とする。
請求項19の発明は、画像形成装置に実装されたアプリケーションを外部装置からのリモート接続に応じて実行することが可能な前記画像形成装置に内蔵されたコンピュータに、a)前記外部装置からのリモート接続において、前記画像形成装置に実装された前記アプリケーションに関する複数のコマンドのうちの実行対象コマンドの実行指示を受け付けるステップと、b)ハードウエアの動作を伴う予め定められた種類の第1の種類のコマンドと前記第1の種類のコマンド以外の種類のコマンドである第2の種類のコマンドとのいずれに、前記実行対象コマンドが属するかを判定するステップと、c)前記実行対象コマンドに対応する処理を前記画像形成装置で実行することの許否を、前記実行対象コマンドの種類に基づいて決定するステップと、を実行させるためのプログラムであって、前記ステップc)においては、前記実行対象コマンドが前記第2の種類のコマンドであると判定される場合、前記実行対象コマンドに対応する処理の前記画像形成装置での実行が許可され、前記実行対象コマンドが前記第1の種類のコマンドである場合、前記実行対象コマンドに対応する処理の前記画像形成装置での実行が禁止され、前記ステップa),b),c)は、前記アプリケーションとオペレーションシステムソフトウエアとを媒介するミドルウエアにて実行され、前記ミドルウエアは、前記ステップa)を含む処理を実行する第1のミドルウエアと、前記第1のミドルウエアとは別に構成される第2のミドルウエアとを有し、前記第2のミドルウエアは、前記第1のミドルウエアと前記オペレーションシステムソフトウエアとの間に設けられ、前記ステップb),c)は、前記第2のミドルウエアにて実行されることを特徴とする。
請求項20の発明は、請求項12から請求項19のいずれかの発明に係るプログラムにおいて、前記外部装置のウエブブラウザから前記画像形成装置のウエブサーバへのアクセスに応じて、前記画像形成装置に実装された前記アプリケーションが実行されることを特徴とする。
請求項21の発明は、請求項12から請求項20のいずれかの発明に係るプログラムにおいて、前記第1の種類のコマンドは、印刷出力用ハードウエアを用いた印刷出力動作を行うべき旨を示す印刷出力コマンドを含むことを特徴とする。
請求項22の発明は、請求項12から請求項20のいずれかの発明に係るプログラムにおいて、前記第1の種類のコマンドは、画像スキャン用のハードウエアを用いた画像スキャン動作を行うべき旨を示す画像スキャンコマンドを含むことを特徴とする。
【0026】
請求項23の発明は、画像形成システムであって、請求項1ないし請求項11のいずれかの発明に係る画像形成装置と、前記画像形成装置に対してリモート接続し、前記画像形成装置に実装された前記アプリケーションを実行させることが可能な前記外部装置と、を備えることを特徴とする。
【発明の効果】
【0027】
請求項1ないし
請求項23に記載の発明によれば、画像形成装置に実装されたアプリケーションが外部装置からのリモート接続に応じて実行される際に、当該アプリケーションに関する複数のコマンドのうちの実行対象コマンドが第1の種類のコマンドである場合には、当該実行対象コマンドに対応するハードウエア処理の画像形成装置での実行が禁止されるので、実行対象コマンドに対応する処理が常に画像形成装置で実行されることに起因する問題を解消することが可能である。
【発明を実施するための形態】
【0029】
以下、本発明の実施形態を図面に基づいて説明する。
【0030】
<1.構成>
図1は、画像形成システム1を示す図である。
図1に示すように、この画像形成システム1は、複数の画像形成装置10(詳細には、10a,10b)を備える。
【0031】
本システム1における各要素10は、それぞれ、ネットワーク101を介して互いに通信可能に接続される。ネットワーク101は、LAN(Local Area Network)およびインターネットなどによって構成される。また、ネットワーク101に対する接続態様は、有線接続であってもよく、或いは無線接続であってもよい。
【0032】
この実施形態では、画像形成装置10として、MFP(マルチ・ファンクション・ペリフェラル(Multi-Functional Peripheral))を例示する。
【0033】
図2は、MFP10の概略構成を示す機能ブロック図である。
図2においては、MFP10の基本的構成が示されている。MFP10a,10bは、いずれも、
図2に示すような基本的構成を備えている。
【0034】
MFP10は、スキャン機能、コピー機能、ファクシミリ機能およびボックス格納機能などを備える装置(複合機とも称する)である。具体的には、MFP10は、
図2の機能ブロック図に示すように、画像読取部2、印刷出力部3、通信部4、格納部5、入出力部6およびコントローラ9等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
【0035】
画像読取部2は、MFP10の所定の位置に載置された原稿を光学的に読み取って(すなわちスキャンして)、当該原稿の画像データ(原稿画像ないしスキャン画像とも称する)を生成する処理部である。この画像読取部2は、スキャン部であるとも称される。
【0036】
印刷出力部3は、印刷対象に関するデータに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。
【0037】
通信部4は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。さらに、通信部4は、ネットワーク101を介したネットワーク通信を行うことも可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、MFP10は、所望の相手先との間で各種のデータを授受することが可能である。
【0038】
格納部5は、ハードディスクドライブ(HDD)等の記憶装置で構成される。格納部5には、画像データ等が記憶される。また、格納部5には、各ユーザ向けに複数のボックス(フォルダ)が設けられており、各ボックスには、電子文書データ(文書ファイル)等が保存される。
【0039】
入出力部6は、MFP10に対する入力を受け付ける操作入力部6aと、各種情報の表示出力を行う表示部6bとを備えている。このMFP10においては、略板状の操作パネル部6c(
図1参照)が設けられ、当該操作パネル部6cは、その正面側にタッチパネル25(
図1参照)を有している。タッチパネル25は、液晶表示パネルに圧電センサ等が埋め込まれて構成され、各種情報を表示するとともに操作者からの操作入力を受け付けることが可能である。たとえば、タッチパネル25においては、メニュー画面等の各種の画面(ボタン画像等を含む)等が表示される。操作者は、タッチパネル25内に仮想的に配置されるボタン(ボタン画像で表現されるボタン)を押下することによって、MFP10の各種動作内容を設定することなどが可能である。タッチパネル25は、操作入力部6aの一部としても機能するとともに、表示部6bの一部としても機能する。
【0040】
コントローラ9は、MFP10に内蔵され、MFP10を統括的に制御する制御装置である。コントローラ9は、CPUおよび各種の半導体メモリ(RAMおよびROM)等を備えるコンピュータシステムとして構成される。コントローラ9は、CPUにおいて、ROM(例えば、EEPROM)内に格納されている所定のソフトウエアプログラム(より詳細には、プログラムモジュール群)を実行することによって、各種の処理部を実現する。なお、当該ソフトウエアプログラム(以下、単にプログラムとも称する)は、USBメモリなどの可搬性の記録媒体に記録され、当該記録媒体を介してMFP10にインストールされるようにしてもよい。あるいは当該プログラムは、ネットワーク101等を介してダウンロードされてMFP10にインストールされるようにしてもよい。
【0041】
この実施形態では、MFP10aはMFP10bよりも新しい機種の装置(あるいは高機能を有する装置)であるものとする。プログラムに関しても、MFP10aはMFP10bとは異なる構成を有している。
【0042】
図3は、MFP10aにおけるプログラム構成等を示す図であり、
図4は、MFP10bにおけるプログラム構成等を示す図である。なお、これらの図におけるハードウエア220は、上述の各種のハードウエア(画像読取部2および印刷出力部3等)を概念的に纏めて示すものである。
【0043】
まず、
図3を参照しながら、MFP10aのプログラム構成等について説明する。
図3に示されるように、MFP10aには、幾つかの階層に分類されるプログラムモジュール群が実装されている。
【0044】
MFP10aには、所定のオペレーションシステムソフトウエア(OS)201が実装されている。また、当該OS201の上には、ファームウエア202(詳細には、ミドルウエアとして機能するプログラムモジュール群)がさらに実装されている。ファームウエア202は、アプリケーションプラットフォーム203とラッパー204とに分類される。また、ファームウエア202の上には、ウエブブラウザ207およびその他の各種のアプリケーションプログラム(以下、単にアプリケーションとも称する)208がさらに実装されている。
【0045】
アプリケーション208としては、たとえば、MFP10のメニュー操作画面をタッチパネル25に表示してユーザからの操作を受け付けるアプリケーション(メニュー操作アプリケーションとも称する)が例示される。アプリケーション208は、ウエブサーバ205(後述)に対するアクセスに応じて動作するサーバアプリケーションであるとも表現される。なお、ウエブブラウザ207は、MFP10の外部のサーバに対するアクセスが可能であるとともに、MFP10の内部のサーバ205に対するアクセスも可能である。
【0046】
アプリケーションプラットフォーム203は、内部ウエブサーバ(単に内部サーバとも称する)205を有している。内部サーバ205は、自装置内に設けられるウエブサーバであり、受付部11を有している。受付部11は、自装置(MFP10a)のウエブブラウザ207および/または他のMFP10(たとえば10b)のウエブブラウザからのアクセスを受け付ける。また、受付部11は、外部装置(MFP10b等)からのリモート接続において、MFP10aに実装されたアプリケーション208に関する複数のコマンドのうちの実行対象コマンドの実行指示を受け付ける。
【0047】
このアプリケーションプラットフォーム203は、アプリケーション208をOS201上で実行するためのプラットフォームとして機能する。端的に言えば、アプリケーションプラットフォーム203は、アプリケーション208の実行機能を有する。MFP10aにおいては、OS201上で直接動作するアプリケーション(たとえばウエブブラウザ207)が実行されるとともに、アプリケーションプラットフォーム203の存在を前提とする適宜のアプリケーション208も実行される。
【0048】
ラッパー204は、アプリケーションプラットフォーム203とOS201とを媒介する機能等を有するプログラムである。具体的には、ラッパー204は、判定部15、取得部16および処理制御部17等の各処理部を備えている。判定部15は、受付部11によって受け付けられた実行対象コマンドが第1および第2の種類のコマンド(後述)のいずれに属するか等を判定する。取得部16は、MFP10bで実行可能なコマンド(実行可能コマンド)に関するリスト情報L1(後述)をMFP10bから取得する。処理制御部17は、当該実行対象コマンドに対応する処理をMFP10aで実行することの許否等を決定する。これらの各処理部の動作については後に詳述する。
【0049】
なお、アプリケーションプラットフォーム203は第1のミドルウエアであるとも称され、ラッパー204は第2のミドルウエアであるとも称される。
【0050】
また、上述のメニュー操作アプリケーション(208)は、内部連携アプリケーションとも表現される。内部連携アプリケーションは、MFP10の内部に設けられた内部サーバ205(
図3)と連携するアプリケーションであり、内部サーバ連携アプリケーションとも称される。
【0051】
内部連携アプリケーションは、ウエブブラウザ(単にブラウザとも称する)を介して内部サーバ205と通信する。内部連携アプリケーションは、HTTP(HyperText Transfer Protocol)およびスクリプト(PYTHON等のスクリプト言語で記述されたスクリプト)等を用いることによって、内部サーバ205と連携しつつ各種の処理を実行する。なお、内部サーバ205はIWS(インターネットウエブサーバないしインターナルウエブサーバ)等とも称され、内部連携アプリケーション208はIWSアプリケーション等とも称される。
【0052】
つぎにMFP10bのプログラム構成等について
図4を参照しながら説明する。
【0053】
図4に示すように、MFP10bには、OS201およびウエブブラウザ207がMFP10aと同様に設けられているものの、MFP10bは、MFP10aが有する上述のプログラム構成のうち、幾つかの構成を有していない。たとえば、MFP10bは、ラッパー204を有していない。また、MFP10bにはファームウエア202bが設けられてはいるものの、当該ファームウエア202bは、アプリケーションプラットフォーム203の一部の機能(ファームウエアとしての基本機能(他装置との通信動作の実行機能等))のみを有するものであり、アプリケーションの実行機能を有していない。MFP10bにおいては、OS201上で直接動作するアプリケーション(たとえばウエブブラウザ207)は実行され得るが、アプリケーションプラットフォーム203の存在を前提とするアプリケーションは実行できない。
【0054】
なお、この実施形態では、MFP10bが内部サーバを有しない場合(
図3参照)を例示しているが、これに限定されない。たとえば、MFP10bがラッパー204およびアプリケーションプラットフォーム203を有しない一方で、MFP10b(ファームウエア202b)が内部サーバ205を有していてもよい。さらには、MFP10bがアプリケーションプラットフォーム203を有していてもよい(
図10参照)。また、MFP10bがラッパー204をも有しており、MFP10bがMFP10aと同等のプログラム構成を有していても良い。
【0055】
<2.動作>
つぎに、本システム1における動作について説明する。
【0056】
ここでは、アプリケーション208として内部連携アプリケーション(詳細にはメニュー操作アプリケーション)が実行される場合について説明する。
【0057】
このメニュー操作アプリケーション208は、内部サーバ205と連携して動作する。メニュー操作アプリケーション208は、MFP10の操作画面を表示し、当該操作画面を介して各種の操作入力を受け付け、当該操作入力に応じた動作を実行する。
【0058】
より詳細には、MFP10a内の或るアドレス(たとえば、https://10.123.456.1/iws/app1/index.html)へのアクセスに応じて、メニュー操作アプリケーション208の実行が開始される。ここでは、MFP10aのIPアドレスが「10.123.456.1」であり、MFP10bのIPアドレスが「10.123.456.2」であるものとする。当該アクセスに応じて、メニュー操作アプリケーション208は、内部サーバ205と連携し、当該メニュー操作アプリケーション208内にて予め登録された更に別の特定アドレス(MFP10a内の特定アドレス)にアクセスする。そして、メニュー操作アプリケーション208は、当該特定アドレスに格納された表示用データ(HTML(HyperText Markup Language)等で記述された表示用データ)に基づき、最初の操作画面(メインメニュー画面)の表示用データをアクセス元のウエブブラウザ207に返信する。これにより、アクセス元のウエブブラウザ207に最初の操作画面が表示される。
【0059】
また、その後においても同様にして、ユーザの操作に応じて、メニュー操作アプリケーション208は、当該メニュー操作アプリケーション208内に格納されているアクセス先(詳細には、当該アクセス先のURL(Uniform Resource Locator))(最初のアクセス先とは異なるアクセス先)の情報等に基づいて、次動作を実行する。たとえば、アクセス先のURLの情報に基づいて、新たな操作画面(メニュー画面)の表示用データが要求元のウエブブラウザ207に送信される。これにより、新たな操作画面がウエブブラウザ207に表示されるとともに、当該新たな操作画面による各種のメニュー操作(ボックスメニューの表示指示操作等)がさらに受け付けられる。また、アクセス先のURLの情報に基づいて、当該メニューの詳細動作(ボックス内に格納されたファイルの閲覧動作および印刷動作等)が行われる。
【0060】
このようなメニュー操作アプリケーション208の操作は、自装置(MFP10a)のウエブブラウザ207を用いて行うことが可能であるのみならず、他装置(MFP10b等)のウエブブラウザ207を用いて行うことも可能である。換言すれば、ユーザはMFP10b(接続元装置とも称する)を用いてMFP10a(接続先装置とも称する)に対してリモート接続し、MFP10aに実装されたメニュー操作アプリケーション208を実行することが可能である。たとえば、MFP10bのウエブブラウザ207からMFP10a(詳細には、MFP10aの特定アドレス(たとえば、https://10.123.456.1/iws/app1/index.html))にアクセスし、MFP10aを操作すること(すなわちリモート操作を行うこと)も可能である。
【0061】
具体的には、MFP10b(IPアドレス=「10.123.456.2」)のウエブブラウザ207は、ユーザの操作に応じて、MFP10a(IPアドレス=「10.123.456.1」)の内部サーバ205にアクセスする。詳細には、MFP10aのメニュー操作アプリケーション208へのアクセス、より具体的には、当該メニュー操作アプリケーション208に対応する特定アドレス(たとえば、https://10.123.456.1/iws/app1/index.html)へのアクセスが行われる。そして、当該アクセスに応じて、MFP10aに実装されたメニュー操作アプリケーション208が実行され得る。MFP10aは、これに応じて、メニュー画面の表示用データをMFP10bのウエブブラウザ207に送信する。MFP10bのウエブブラウザ207は、当該表示用データに基づきメニュー画面をMFP10bのタッチパネル25に表示(リモート表示)する。
【0062】
また、MFP10bのウエブブラウザ207に表示されたメニュー画面において「ボックス一覧表示」ボタンが押下されると、MFP10bのウエブブラウザ207は、MFP10aの内部サーバ205を介してMFP10aのメニュー操作アプリケーション208にアクセスする。具体的には、当該メニュー操作アプリケーション208に対応する特定アドレス(たとえば、https://10.123.456.1/iws/app1/view.lt?id=1001)へのアクセスが行われる。これに応じて、MFP10aは、MFP10aのボックス内の文書の一覧リストの表示用データを、MFP10bのウエブブラウザ207に送信する。MFP10bのウエブブラウザ207は、当該表示用データに基づき、MFP10aのボックス内の文書の一覧リストをMFP10bのタッチパネル25に表示(リモート表示)する。
【0063】
さらに、MFP10bのウエブブラウザ207に表示されたメニュー画面において「印刷」ボタンが押下されると、MFP10bのウエブブラウザ207は、MFP10aのメニュー操作アプリケーション208へとアクセスする。具体的には、当該メニュー操作アプリケーション208に対応する特定アドレス(たとえば、https://10.123.456.1/iws/app1/ptint.py?id=0001)へのアクセスが行われる。なお、「id=0001」は、予め設定されているプリントパラメータセット(設定情報)であり、このプリントパラメータセットには、印刷対象データ、印刷枚数および印刷詳細設定等が含まれる。
【0064】
このようにして、リモート接続元のMFP10bのブラウザによって表示されたメニュー操作画面において、MFP10aのボックスに格納されている特定の文書ファイルを印刷出力すべき旨の指示がユーザによって付与される。当該指示に従って、特定の文書ファイルの印刷出力が行われる。
【0065】
ここにおいて、通常のリモート操作においては、当該指示に応じた動作が全てMFP10a(リモート接続先の装置)で行われる。換言すれば、本発明を適用しない場合には、特定の文書ファイルの印刷出力は、常にMFP10aで実行される。このような技術を比較例に係る技術とも称するものとする。すなわち、この比較例に係る技術では、メニュー操作アプリケーション208で実行されるべき処理のうちMFP10のハードウエアを利用する処理は、常に、自装置(MFP10a)のハードウエアを利用して実行される。
【0066】
しかしながら、MFP10のハードウエアを利用する処理が常にMFP10aで実行されると、次のような不都合が生じることがある。
【0067】
たとえば、MFP10aに対して若干離れて配置されたMFP10bをユーザが操作し、MFP10bからMFP10aへのリモートアクセスが行われる状況を想定する。この状況において、比較例に係る技術が用いられると、リモート操作による印刷出力処理が常にMFP10aのハードウエアを利用して実行される。そのため、MFP10bの操作ユーザは、若干離れたMFP10aの配置位置にまで移動して、MFP10aによる印刷出力物を取りに行くことを求められ、不便を強いられる、との問題が存在する。
【0068】
そこで、この実施形態においては、MFP10a(接続先装置)ではなくMFP10b(接続元装置)にて文書ファイルを印刷出力させることも可能な技術について説明する。この実施形態においては、文書ファイルの印刷出力指示(リモート印刷出力指示)に対して、印刷出力部3を用いた印刷出力動作(特定のハードウエア動作)自体は、MFP10aではなくMFP10bで行われる。すなわち、当該印刷出力動作は、MFP10bの印刷出力部3(MFP10bのハードウエア220(
図4)のうち印刷出力用のハードウエア)を用いて行われる。これによれば、ユーザがリモート操作に利用しているMFP10bによって、MFP10aのボックスに格納されている文書ファイルを印刷出力されることが可能である。比較的近傍のMFP10bによって印刷出力物が出力されるので、ユーザは比較的遠方のMFP10aにまで移動することを強いられずに済む。
【0069】
まず、上述のように、MFP10aに対するMFP10b(外部装置)からのリモート接続において、当該メニュー操作アプリケーション208に対応する特定アドレス(たとえば、https://10.123.456.1/iws/app1/ptint.py?id=0001)へのアクセスが行われ、MFP10aのボックス内の文書の印刷指示が付与されるものとする。
【0070】
なお、メニュー操作アプリケーション208(「app1」)は、複数のモジュールプログラム(印刷出力用プログラムモジュールおよび文書一覧リスト表示用プログラムモジュール等)で構成される。たとえば、「https://10.123.456.1/iws/app1/view.lt?id=1001」へのアクセスが行われるときには、文書一覧リスト表示用プログラムモジュールが動作する。また、「https://10.123.456.1/iws/app1/ptint.py?id=0001」へのアクセスが行われるときには、印刷出力用プログラムモジュールが動作する。
【0071】
ボックス内文書の印刷指示に応じて、MFP10aにおいては、MFP10aに実装されているメニュー操作アプリケーション208に関する複数のコマンドのうちの実行対象コマンドの実行指示が受け付けられる。詳細には、MFP10aに対するMFP10b(外部装置)からのリモート接続において、MFP10aに実装されたメニュー操作アプリケーション208に関する複数のコマンドのうちの実行対象コマンドの実行指示をMFP10aの内部サーバ205(詳細には、受付部11)が受け付ける。
【0072】
詳細には、MFP10bからのアクセス情報「https://10.123.456.1/iws/app1/ptint.py?id=0001」が受付部11により受信されると、当該アクセス情報に基づき、アプリケーションプラットフォーム203は、メニュー操作アプリケーション208に関する複数のコマンドのうち、次の2つの実行対象コマンドが受け付けられたものとして解釈する。なお、これらの実行対象コマンドは、各種のAPI(Application Programming Interface)等を用いて実現される。
【0073】
1つは、ボックスデータを取得するコマンド(tmp_doc=mfp_get_boxdata(box_id=5,doc_id=1))である。「mfp_get_boxdata」は、ボックスから文書データを取得すべき旨を示す関数(コマンド)である。「mfp_get_boxdata(box_id=5,doc_id=1)」は、ボックス番号「5」(box_id=5)のボックスから文書番号「1」(doc_id=1)の文書データを取得すべき旨を示すコマンドである。
【0074】
他の1つは、印刷出力を指示するコマンド(ng=mfp_print_document(tmp_doc,n=2))である。「mfp_print_document」は、文書データを印刷出力すべき旨を示す関数(コマンド)である。「mfp_print_document(tmp_doc,n=2)」は、1つ目のコマンドで取得されたボックス内文書(tmp_doc)を2部(n=2)印刷すべき旨を示すコマンドである。
【0075】
これらの2つの実行対象コマンドは、通常(上記比較例においては)、アプリケーションプラットフォーム203(
図3参照)で解釈されその解釈結果がOS201に渡されてOS201にて実行される。ただし、ここでは、2つの実行対象コマンドは、(OS201に直接渡されるのではなく、)アプリケーションプラットフォーム203からラッパー204へと渡され、ステップS11,S12の処理が行われる(
図5参照)。
【0076】
図5は、この実施形態に係るMFP10aの動作を示すフローチャートである。また、
図6および
図7は、実施形態に係る本システム1の動作の一例を示すタイミングチャートである。
図6は、実行対象コマンドが第2の種類のコマンド(後述)である場合における動作を示すタイミングチャートである。
図7は、実行対象コマンドが第1の種類のコマンド(後述)である場合における動作を示すタイミングチャートである。以下、
図5〜
図7等を参照しながら、説明を続ける。
【0077】
ステップS11においては、MFP10a(詳細には、判定部15)は、実行対象コマンドの実行指示が外部装置からのものであるか否かを判定する。送信元装置のIPアドレスに基づき、実行対象コマンドの実行指示が外部装置からのものであるか否かが判定される。
【0078】
実行対象コマンドの実行指示が外部装置からのものでない(MFP10a自身のウエブブラウザ207からのものである)場合には、ステップS30に進み、通常の動作が行われる。すなわち、実行対象コマンドは、アプリケーションプラットフォーム203(
図3参照)で解釈され、その解釈結果がOS201に渡されてOS201にて実行される。たとえば、印刷出力コマンドに基づく印刷出力物が常にMFP10aの印刷出力部を用いて印刷出力される。
【0079】
一方、実行対象コマンドの実行指示が外部装置からのものである場合には、ステップS12に進む。ここでは、送信元装置のIPアドレス(10.123.456.2)に基づき、当該実行指示が外部装置(MFP10b)からの指示であると判定されたものとして説明を続ける。
【0080】
次のステップS12において、MFP10a(詳細には、判定部15)は、実行対象コマンドの種類を判定する。
【0081】
ここにおいて、MFP10aで実行され得る複数のコマンドは次の2つの種類のコマンドに予め分類されている。
【0082】
第1の種類のコマンドは、MFPのハードウエアの動作を伴う予め定められた1または複数の特定のコマンドである。たとえば、第1の種類のコマンドには、印刷出力コマンド(mfp_print_document)等が含まれる。印刷出力コマンドは、印刷出力部(印刷出力エンジン(印刷出力用ハードウエア))によって印刷出力動作を行うべき旨のコマンド(指令)である。
【0083】
第2の種類のコマンドは、第1の種類のコマンド以外の種類のコマンドである。たとえば、第2の種類のコマンドには、ボックスから文書データを取得するコマンド(mfp_get_boxdata)等が含まれる。
【0084】
ステップS12では、各実行対象コマンドが第1の種類のコマンドと第2の種類のコマンドとのいずれに属するかが判定され、その判定結果に基づく分岐処理が行われる。換言すれば、実行対象コマンドに対応する処理(特定のハードウエア処理)をMFP10aで実行することの許否を、当該実行対象コマンドの種類に基づいて決定する処理が行われる。
【0085】
実行対象コマンドが第2の種類のコマンドである場合には、ステップS12からステップS13に進む(
図6も参照)。ステップS13では、当該実行対象コマンドに対応する処理を自装置(MFP10a)で実行することが処理制御部17によって許可される。そして、ステップS14において、MFP10aにて当該実行対象コマンドが実行される。詳細には、当該実行対象コマンドのアプリケーションプラットフォーム203による解釈結果がそのままOS201に渡され、当該実行対象コマンドに対応する処理がOS201によって実行される。たとえば、文書データをボックスから取得するコマンド(mfp_get_boxdata)のアプリケーションプラットフォーム203による解釈結果がそのまま、ラッパー204を経由してOS201に渡され、OS201は、指定文書データをMFP10a内の指定ボックスから抽出して取得する。取得結果(指定文書データ)は、ラッパー204に渡され(戻され)、必要に応じてアプリケーションプラットフォーム203およびアプリケーション208に渡される(戻される)。このようにして、実行対象コマンド(mfp_get_boxdata)は、MFP10aにて処理される(
図6も参照)。
【0086】
一方、実行対象コマンドが第1の種類のコマンドである場合には、ステップS12からステップS21に進む(
図5参照)。
【0087】
ステップS21では、当該実行対象コマンドに対応する処理をMFP10aで実行することが処理制御部17によって禁止される(
図7も参照)。
【0088】
次のステップS22では、外部装置(MFP10b)で実行可能なコマンドである実行可能コマンドに関するリスト情報L1(
図8参照)を当該外部装置(MFP10b)から取得する処理が取得部16によって行われる。ここでは、MFP10bが当該リスト情報L1を内部に有しており、MFP10aからの問合せに対して、当該リスト情報L1がMFP10bからMFP10aへと送信されるものとする。また、MFP10bのファームウエア202bは、他装置との通信動作の実行機能を有しており、MFP10aからの問合せを受信する機能と、当該問合せに対する結果(リスト情報L1等)をMFP10bからMFP10aへと送信(返信)する機能とを有しているものとする。
【0089】
たとえば、MFP10aからMFP10bの特定アドレスに対するアクセス(「http://10.123.456.2/active」)により、MFP10aからMFP10bへの問合せが行われ、当該リスト情報L1が返信される。リスト情報L1には、外部装置(MFP10b)で実行可能なコマンド(実行可能コマンド)(「mfp_print_document」等)が列挙されている。当該外部装置(MFP10b)が解釈(実行)できないコマンドは、リスト情報L1には含まれない。たとえば、MFP10bがコマンド「mfp_print_document」を解釈(実行)できない場合には、当該コマンドはリスト情報L1には含まれない。
【0090】
ステップS23では、当該実行対象コマンド(第1の種類のコマンド)に対応する処理を外部装置(MFP10b)で実行すべき旨の実行指示が、MFP10a(処理制御部17)からMFP10bに送信される。
【0091】
具体的には、まず、ステップS22で取得されたリスト情報L1に基づき実行対象コマンドがMFP10bの実行可能コマンドであると判定される場合には、当該実行指示コマンドがそのままMFP10bに送信される。より詳細には、実行対象コマンド(印刷出力コマンド(mfp_print_document))が上記リスト情報L1に実行可能コマンドとして含まれる場合には、当該実行対象コマンド(mfp_print_document)がそのままMFP10bに転送される。また、印刷パラメータに関する情報も併せてMFP10bに送信される。この実行指示に応じて、MFP10bにおいては、当該実行対象コマンドに対応する処理(印刷出力処理)が実行される。
【0092】
また、実行対象コマンドはリスト情報L1に記載されていない(実行対象コマンド自体は実行可能コマンドではない)ものの、実行対象コマンドと同等の処理は外部装置(MFP10b)で実行可能であると判定される場合には、MFP10aの処理制御部17は、「代替コマンド」(実行対象コマンドと同等の処理を実行するコマンド)を生成して、当該代替コマンドをMFP10bに送信する。このような代替コマンドによる実行指示に応じて、実行対象コマンドに対応する処理がMFP10bにて実行される。
【0093】
たとえば、実行対象コマンドである印刷出力コマンド(mfp_print_document)がリスト情報L1に記載されていない(当該印刷出力コマンドがMFP10bによる実行可能コマンドではない)と判定される場合には、実行対象コマンドと同等の処理がMFP10bで実行可能であるか否かがMFP10aの処理変換リスト情報L2(
図8参照)に基づいて判定される。そして、実行対象コマンドと同等の処理がMFP10bで実行可能であると判定されるときには、処理変換リスト情報L2に基づいて、印刷出力コマンドと同等の処理を実行する代替コマンドが生成される。
【0094】
ここで、MFP10aの処理変換リスト情報L2は、実行対象コマンドと基本コマンド(たとえば、ファームウエアにおける一般的なコマンド(多数の機種に共通する基本的なコマンド))との対応関係を規定するリスト情報である。処理変換リスト情報L2は、MFP10aの格納部5に予め格納されている。処理変換リスト情報L2には、たとえば、印刷出力コマンド「mfp_print_document」に対して、PCプリントコマンドに関する2つの基本コマンド(「create_pcprintjob」および「send_pcjob」)が対応付けられて記載されている。なお、「PCプリントコマンド」は、外部のパーソナルコンピュータ(PC)等からMFP10に対して送出される印刷出力外部指示コマンドである。
【0095】
処理制御部17は、処理変換リスト情報L2に基づき、実行対象コマンドと同等の処理がMFP10bで実行可能である旨を判定するときには、処理変換リスト情報L2に基づき、印刷出力コマンド「mfp_print_document(tmp_doc,n=2)」に関する代替コマンドを生成する。代替コマンドとしては、PCプリントコマンド等が利用される。たとえば、処理変換リスト情報L2に基づき、「job=create_pcprintjob(tmp_doc,n=2)」と「send_pcjob("10.123.456.2",job)」との2つのサブコマンドが代替コマンドとして生成される。前者のサブコマンド(create_pcprintjob)は、PCプリントジョブを生成するコマンドであり、後者のサブコマンド(send_pcjob)は、前者のサブコマンドにより生成されたPCプリントジョブを送信するコマンドである。前者のサブコマンドにおいては、2つの引数(PCプリントジョブの対象文書を示すパラメータ、および印刷枚数を示すパラメータ)が指定される。また、後者のサブコマンドにおいては、2つの引数(MFP10bのIPアドレスを示すパラメータ、およびPCプリントジョブの対象特定用パラメータ)が指定される。
【0096】
そして、処理制御部17は、当該2つのサブコマンドをMFP10bに送信する。また、指定されたパラメータ(データ)も代替コマンドの一部として送信される。たとえば、指定パラメータ「tmp_doc」の実体データも送信される。この指定パラメータ「tmp_doc」には、印刷対象データおよび印刷枚数に関するデータが含まれる。なお、必要に応じて、印刷設定等も送信される。
【0097】
このようにして、元の実行対象コマンドに含まれていた設定情報(印刷対象データ、印刷枚数および印刷詳細設定等)をも有する代替コマンド等が、MFP10bに送信される。このような送信動作に応じて、実行対象コマンドに対応する処理がMFP10bにて実行される。
【0098】
なお、実行対象コマンドがリスト情報L1に記載されておらず且つ処理変換リスト情報L2に基づく代替コマンドの作成を行うこともできない場合には、MFP10a(処理制御部17等)は、要求元のウエブブラウザ(ここではMFP10bのウエブブラウザ207)に対して、エラーメッセージの表示用データを送信する。MFP10bのウエブブラウザ207は、当該表示用データを受信すると、当該表示用データに基づくエラーメッセージ(ユーザ指示内容(印刷指示)を実行することができない旨を示すメッセージ等)を表示する。
【0099】
以上のような動作によれば、MFP10aに実装されたメニュー操作アプリケーション208がMFP10b(外部装置)からのリモート接続(ユーザによるリモート操作)に応じて実行(リモート実行)される際に、メニュー操作アプリケーション208に関する複数のコマンドのうちの実行対象コマンドに対応する処理をMFP10aで実行することの許否が、実行対象コマンドの種類に基づいて決定される。詳細には、実行対象コマンドが第2の種類のコマンドである場合には、当該実行対象コマンドに対応する処理のMFP10aでの実行が許可される。一方、実行対象コマンドが第1の種類のコマンド(印刷出力コマンド等)である場合には、当該実行対象コマンドに対応する処理(ハードウエア処理)のMFP10aでの実行が禁止される。したがって、実行対象コマンドに対応する処理が常にMFP10a(リモート接続先の装置)で実行されることに起因する弊害を排除することが可能である。換言すれば、リモート操作において、MFPのハードウエアを用いる処理が常にMFP10a(リモート接続先の装置)で実行されることに起因する問題が解消され得る。より詳細には、ユーザによる直接的接触の比較的困難な装置(リモート接続先装置)が常に用いられて特定のハードウエア処理が行われること、に起因する問題が解消され得る。
【0100】
たとえば、実行対象コマンドが印刷出力コマンド(第1の種類のコマンド)である場合には、当該印刷出力コマンドに対応するハードウエア処理(印刷出力処理)のMFP10a(リモート接続先装置)での実行が禁止される。これによれば、ユーザの利便性を向上させることができる。詳細には、ユーザは、比較的遠くのMFP10aの配置場所にまで印刷出力物を取りに行かなくても済む。ユーザから非常に遠く離れた場所(たとえば、自社の他の事業所)に配置されているMFP10aをユーザ近傍のMFP10bを用いてリモート操作する場合には、当該効果は特に顕著である。また、MFP10a(不本意な装置)における意図しない印刷出力が行われないことによって、MFP10aにて出力された印刷出力物から機密情報が漏洩してしまうことを回避することも可能である。
【0101】
また、特定のハードウエア(印刷出力エンジン等)を利用する処理をそのままMFP10aで実行するのではなく、操作元(接続元)の外部装置(MFP10b)における対応ハードウエア(印刷出力エンジン等)を用いて実行することが可能である。したがって、リモート操作において、リモート操作を行う側の装置(MFP10b)のハードウエアを用いることによる利点を得ることができる。
【0102】
たとえば、実行対象コマンド(印刷出力コマンド)に対応する処理(印刷出力処理)をMFP10bで実行すべき旨がMFP10bに送信され、当該実行対象コマンドに対応する処理がMFP10bで実行される。これによれば、ユーザは、MFP10aの配置場所に移動することなく、操作対象のMFP10b(ユーザ近傍のMFP10b)にて印刷出力物を受け取ることができるので、高い利便性を得ることができる。
【0103】
また、上記実施形態においては、MFP10aにおいて実行対象コマンドが受信された後(リモート処理の実行が開始された後)は、MFP10aにおける処理のみによって、実行対象コマンドに対応する処理のMFP10aでの実行の許否が決定されている。換言すれば、実行対象コマンドの対応処理のMFP10aでの実行の許否は、MFP10bとの通信を行うことなく、決定されている。これによれば、当該許否がMFP10aとMFP10bとの間での通信処理を伴って決定される場合に比べて、MFP10bのプログラム構成等に対する変更を最小限に抑制すること(より好適には、当該変更を行わなわずに済ませること)ができる。
【0104】
また特に、上記実施形態においては、ファームウエア(ミドルウエア)202が第1のミドルウエア203と第2のミドルウエア204との2階層で構成されており、第2のミドルウエア204が第1のミドルウエア203とオペレーションシステムソフトウエア201との間に設けられている。そして、判定部15および処理制御部17等は、第1のミドルウエア(受付部11を含む)203とは別の第2のミドルウエア(ラッパー)204において(付加的に)設けられている。したがって、第1のミドルウエア203に大きな変更を加えることなく、第1のミドルウエアに対する拡張機能を有するソフトウエアシステムを容易に構成することが可能である。
【0105】
なお、上記実施形態においては、MFP10aがリスト情報L1をMFP10bから取得し、MFP10bにて印刷出力処理が可能であることをリスト情報L1に基づいてMFP10aが確認した後に、印刷出力コマンドがMFP10aからMFP10bへと送信される態様が例示されているが、これに限定されない。たとえば、リスト情報L1に基づく確認処理が行われることなく、第1の種類のコマンド(印刷出力コマンド等)が無条件でMFP10aからMFP10bへと送信されるようにしてもよい。あるいは、リスト情報L1に基づく確認処理が行われることなく、リスト情報L2に基づく代替コマンドがMFP10aからMFP10bへと送信されるようにしてもよい。
【0106】
また、上記実施形態においては、アプリケーション208としてメニュー操作アプリケーション(内部連携アプリケーション)を中心に例示したが、これに限定されない。たとえば、アプリケーション208は、クラウド印刷アプリケーション(たとえば、クラウド上に格納された電子文書(文書データ)をダウンロードして印刷出力するアプリケーション)などであってもよい。
【0107】
<3.変形例等>
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
【0108】
たとえば、上記実施形態においては、特定ハードウエアに関するコマンド(第1の種類のコマンド)がMFP10bからのリモート操作に応じて実行対象コマンドとしてMFP10aにて実行される場合には、当該実行対象コマンドに対応する処理のMFP10aでの実行が無条件に(常に)禁止される態様が例示されているがこれに限定されない。具体的には、当該実行対象コマンドに対応する処理をMFP10aとMFP10bとのいずれで実行するかがユーザに問い合わせられ、その問い合わせに対するユーザの指示に応じた処理が実行されるようにしてもよい。
【0109】
より詳細には、処理制御部17は、実行対象コマンドが第1の種類のコマンドである場合には、実行対象コマンドに対応する処理(実行対象コマンドの対応処理)のMFP10aでの実行をまず一旦禁止する。そして、処理制御部17は、実行対象コマンドの対応処理をMFP10aとMFP10bとのいずれで実行すべきかに関するユーザ指示を受け付けるための確認用画面の表示用データ(確認用情報)をMFP10bのウエブブラウザ207に送信する。MFP10bは、この確認用情報に基づいて、確認用画面をMFP10bのウエブブラウザ207を用いて表示する。
【0110】
図9は、このような確認用画面を示す図である。当該確認用画面には、「この処理(印刷出力処理)を接続先装置(MFP10a)で実行しますか、それとも、本装置(MFP10b)で実行しますか?」との2つの選択肢の存在を示す文言が表示されているともに、当該2つの選択肢に応じた2つのボタン31,32が表示されている。ユーザは、2つのボタン31,32(「接続先装置」および「本装置(接続元装置)」)のうち、所望の選択肢に対応するボタンを押下することによって、ユーザ指示を付与する。
【0111】
そして、当該確認用画面に対して入力されたユーザ指示に基づく情報(ユーザ指示情報)がMFP10bからMFP10aへと送信される。MFP10a(処理制御部17)は、MFP10aから返信(送信)されてきたユーザ指示情報に基づいて、実行対象コマンドの対応処理をMFP10aで実行するかMFP10bで実行するかを決定する。
【0112】
実行対象コマンドの対応処理をMFP10b(操作元装置)で実行すべき旨のユーザ指示情報が受信される場合には、実行対象コマンドの対応処理をMFP10bで実行すべき旨が決定され、上述のステップS22,S23と同様の動作が実行される。
【0113】
一方、実行対象コマンドの対応処理をMFP10a(操作先装置)で実行すべき旨のユーザ指示情報が受信される場合には、実行対象コマンドの対応処理をMFP10aで実行すべき旨が決定され、実行対象コマンドの対応処理のMFP10aでの実行禁止が解除される。そして、MFP10aにて実行対象コマンドの対応処理が実行される。たとえば、MFP10aの印刷出力部3を用いた印刷出力処理等が実行される。
【0114】
このような動作によれば、MFP10aでの特定ハードウエア動作(たとえば印刷出力動作)が常に禁止される場合に比べても、より柔軟な対応を行うことが可能である。たとえば、MFP10aとMFP10bとのいずれもがユーザの近傍に存在し、MFP10aが他ユーザによって使用中であったためにMFP10bを用いてリモート操作を開始したが、当該リモート操作の途中でMFP10aの当該他ユーザによる使用が終了した状況が想定される。このような状況において、より好適な所望の装置(たとえばMFP10a)を用いて印刷出力を行うことが可能である。たとえば、比較的高速なMFP10aを用いて、比較的高速に印刷出力を行うことが可能である。
【0115】
また、このような問合せ動作を行うか否かは、MFP10aにおけるユーザ設定によって切り換えられるようにしてもよい。
【0116】
また、上記実施形態等においては、ハードウエアの動作を伴う予め定められた第1の種類のコマンドとして、印刷出力コマンドを主に例示したが、これに限定されない。
【0117】
たとえば、画像スキャンコマンドに関しても上記の思想を適用することが可能であり、第1の種類のコマンドには画像スキャンコマンドも含まれ得る。画像スキャンコマンドは、画像読取部(スキャンエンジン(画像スキャン用ハードウエア))を用いて画像スキャン動作を行うべき旨(画像スキャン動作によって原稿の画像データを生成すべき旨)のコマンドである。
【0118】
より詳細には、MFP10bのブラウザを用いてMFP10aをリモート操作して、スキャン動作の実行コマンドがMFP10aにて実行される態様において、MFP10a(接続先装置)での当該スキャン動作を禁止することが可能である。これによれば、ユーザによる直接的接触の比較的困難な装置(リモート接続先装置)が常に用いられて特定のハードウエア処理(スキャン処理)が行われること、に起因する問題が解消され得る。たとえば、ユーザは、比較的遠くのMFP10aの配置場所にまでスキャン動作を行うために移動せずに済み、ユーザの利便性を向上させることが可能である。換言すれば、MFP10bを操作しているユーザから離れた場所にMFP10aが配置されている状況において、ユーザの意図とは無関係に、当該MFP10aがスキャン操作待ちになってしまうことを回避することが可能である。
【0119】
また、特定のハードウエア(画像スキャンエンジン)を利用する処理をそのままMFP10aで実行するのではなく、操作元(接続元)の外部装置(MFP10b)における対応ハードウエア(画像スキャンエンジン等)を用いて実行することが可能である。これによれば、リモート操作において、リモート操作を行う側の装置(MFP10b)のハードウエアを用いることによる利点を得ることができる。たとえば、ユーザは、MFP10aの配置場所に移動することなく、操作対象のMFP10b(ユーザ近傍のMFP10b)にてスキャン処理を行うことができるので、高い利便性を得ることができる。
【0120】
また、認証用ハードウエア(各種の認証装置(指紋認証装置およびカード式認証装置等))の認証動作に関する各種のコマンド、および、課金用ハードウエア(コイン投入式課金装置)の課金動作に関する各種のコマンドなども、ハードウエアの動作を伴う予め定められた第1の種類のコマンドとして例示される。