以下、本発明の実施形態を図面に基づいて説明する。
<1.第1実施形態>
<1−1.システム構成>
図1は、画像形成システム1の構成を示す概略図である。
図1に示すように画像形成システム1は、MFP10とコンピュータ50とを備えて構成されている。MFP10は、コンピュータ50からの印刷出力要求をネットワーク108を介して受け付け、印刷出力を行う。ここでは、画像形成装置として、MFP(マルチ・ファンクション・ペリフェラル(Multi-Functional Peripheral))10が例示され、画像形成装置に対して当該画像形成装置による印刷出力を要求する印刷出力要求装置として、コンピュータ(より詳細にはパーソナルコンピュータ)50が例示される。
MFP10とコンピュータ50とは、ネットワーク(通信ネットワーク)108を介して互いに接続される。ネットワーク108は、LAN(Local Area Network)などによって構成される。また、ネットワーク108に対する接続態様は、有線接続であってもよく、或いは無線接続であってもよい。たとえば、MFP10はネットワーク108に対して有線接続され、コンピュータ50はネットワーク108に対して無線接続される。
画像形成システム1においては、MFP10に対する印刷出力要求をコンピュータ50を用いて行うことが可能である。すなわち、コンピュータ50は、所望の文書をMFP10に印刷出力させることが可能である。たとえば、コンピュータ50bにはMFP10(10a)用のプリンタドライバがインストールされており、当該プリンタドライバを利用してMFP10aにて所望の文書を印刷出力させることができる。ただし、この実施形態では、コンピュータ50aにはMFP10(10a)用のプリンタドライバはインストールされていない。後述するように、コンピュータ50a内のウエブブラウザからMFP10内のウエブサーバへと文書データが直接的に送信されることによって、MFP10における印刷出力が実行される。
MFP10は、ウエブサーバ30(図4参照)の機能を有している。また、コンピュータ50においてはウエブブラウザ80(図4参照)(後述)がインストールされている。ウエブブラウザ80は、ウエブサーバ30から受信した各種の情報を表示することが可能である。また、ウエブブラウザ80は、操作者からの各種の操作入力を受け付け、当該操作入力に応じた設定内容等をウエブサーバ30に送信し、MFP10の設定内容等を変更することも可能である。さらに、ウエブブラウザ80は、MFP10のウエブサーバ30に対して印刷出力対象の文書データ自体を送信し、MFP10によって文書を印刷出力させることが可能である。このように、ウエブブラウザ80は、当該ウエブサーバ30との間で各種の情報を授受することが可能である。
この画像形成システム1は、ウエブサーバ30とウエブブラウザ80とを用いて構築されるシステムであることから、ウエブアプリケーションシステムとも称される。
<1−2.MFP10の構成>
図2は、MFP10の概略構成を示す機能ブロック図である。MFP10は、スキャン機能、コピー機能、ファクシミリ機能およびプリント機能などを備える装置(複合機とも称する)である。
上述のように、MFP10は、ウエブサーバ30としても機能する。ウエブサーバ30の各種のウエブページデータ(詳細には、当該ウエブサーバ30からウエブブラウザ80に送信される各種のウエブページデータ(画面の表示用データ120等))は、格納部5に格納されている。各ウエブページデータは、各種のページ記述言語(HTML(HyperText Markup Language)等)およびスクリプト言語(JavaScript(登録商標)等)によって記述されている。
図2の機能ブロック図に示すように、MFP10は、画像読取部2、印刷出力部3、通信部4、格納部5、操作部6およびコントローラ9等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
画像読取部2は、MFP10の所定の位置に載置された原稿を光学的に読み取って(すなわちスキャンして)、当該原稿の画像データ(原稿画像ないしスキャン画像とも称する)を生成する処理部である。この画像読取部2は、スキャン部であるとも称される。
印刷出力部3は、印刷対象に関するデータに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。なお、印刷出力部3は、各種の媒体上に画像を形成する画像形成部とも称される。
通信部4は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。さらに、通信部4は、ネットワーク108を介したネットワーク通信を行うことも可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、MFP10は、所望の相手先(たとえば、コンピュータ50)との間で各種のデータを授受することが可能である。通信部4は、各種データを送信する送信部4aと各種データを受信する受信部4bとを有する。
格納部5は、ハードディスクドライブ(HDD)等の記憶装置で構成される。格納部5は、各操作画面の表示用データ等を記憶する。格納部5には、メニュー画面の表示用データ120およびスクリプト150(後述)等が格納されている。
操作部6は、MFP10に対する操作入力を受け付ける操作入力部6aと、各種情報の表示出力を行う表示部6bとを備えている。
このMFP10においては、略板状の操作パネル6c(図1参照)が設けられている。また、操作パネル6cは、その正面側にタッチパネル25(図1参照)を有している。タッチパネル25は、操作入力部6aの一部としても機能するとともに、表示部6bの一部としても機能する。タッチパネル25は、液晶表示パネルに各種センサ等が埋め込まれて構成され、各種情報を表示するとともに操作者からの各種の操作入力を受け付けることが可能である。
コントローラ9は、MFP10に内蔵され、MFP10を統括的に制御する制御装置である。コントローラ9は、CPUおよび各種の半導体メモリ(RAMおよびROM)等を備えるコンピュータシステム(コンピュータ)として構成される。コントローラ9は、CPUにおいて、ROM(例えば、EEPROM)内に格納されている所定のソフトウエアプログラム(以下、単にプログラムとも称する)を実行することによって、各種の処理部を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)は、USBメモリなどの可搬性の記録媒体、あるいはネットワーク108等を介してMFP10にインストールされてもよい。
図2に示すように、コントローラ9は、上記プログラムの実行により、通信制御部11と入力制御部12と表示制御部13とサーバ処理制御部14とタスク管理制御部15とジョブ実行制御部16とを含む各種の処理部を実現する。
通信制御部11は、他の装置(コンピュータ50等)との間の通信動作を制御する処理部である。
入力制御部12は、操作入力部6a(タッチパネル25等)に対する操作入力動作を制御する制御部である。たとえば、入力制御部12は、タッチパネル25に表示された操作画面に対する操作入力を受け付ける動作を制御する。
表示制御部13は、表示部6b(タッチパネル25等)における表示動作を制御する処理部である。表示制御部13は、MFP10を操作するための操作画面等をタッチパネル25に表示させる。
サーバ処理制御部14は、コンピュータ50のウエブブラウザ80との通信を伴うウエブサーバ30の処理を実行する処理部である。サーバ処理制御部14(ウエブサーバ30)は、ウエブブラウザ80からの文書データ等を受信するとともに、当該文書データに関する印刷出力処理を実行する制御等をも制御する。
タスク管理制御部15は、MFP10で実行される複数のタスクの優先順位を管理する処理部である。MFP10においては、マルチタスクOS上で複数のタスクが並列的に動作することが可能である。ただし、当該複数のタスクのそれぞれには優先順位が規定されており、当該各優先順位に基づいて各タスクに対するCPU割当時間(換言すれば、各タスクに対する優先度合い)等が制御される。
具体的には、タスク管理制御部15は、通常状態においては、ウエブサーバ30のタスクである「サーバタスク」の優先順位を、MFP10のジョブ(詳細には印刷出力に関するジョブ)のタスクであるジョブタスク(印刷出力ジョブタスクとも称する)の優先順位よりも低く設定する。これにより、比較的高い緊急性を有する可能性が高いジョブタスクが、原則として、(サーバタスクよりも)優先的に実行される。
一方、コンピュータ50からのダイレクトプリント指示が受け付けられ、且つ、MFP10用のプリンタドライバが当該コンピュータ50にインストールされていない、と判定されることを条件として、タスク管理制御部15は、サーバタスクの優先順位を変更する。詳細には、当該サーバタスクの優先順位は、印刷出力ジョブのタスクの優先順位と同一以上の順位(この実施形態では同一順位)に変更される。これによれば、例外的にサーバタスクの優先順位が上昇し、サーバタスクが比較的短時間で実行され得る。
ジョブ実行制御部16は、各種のジョブを実行する処理部である。たとえば、ジョブ実行制御部16は、印刷出力に関するジョブ(コピージョブ、ファクシミリ受信ジョブ、プリントジョブ等)を実行する。
<1−3.コンピュータ50の構成>
つぎに、コンピュータ50の構成について説明する。
コンピュータ50は、他の装置との間でのネットワーク通信が可能な情報処理装置である。ここでは、コンピュータ50として、パーソナルコンピュータを例示する。コンピュータ50は、携帯式の装置であってもよく、据置型の装置であってもよい。
コンピュータ50は、図3に示すように、CPU52、半導体メモリ(RAM等)53、ハードディスクドライブ54、表示部(液晶表示部等)55、入力部(キーボード、マウス等)56、および通信部57を備えて構成される。コンピュータ50は、そのCPU52等を用いて各種のプログラムを実行することによって様々な機能を実現する。図3は、コンピュータ(印刷制御装置とも称される)50のハードウエア構成を示す概略図である。
CPU52において、ハードディスクドライブ54および/または半導体メモリ53に格納されている所定のソフトウエアプログラム(以下、単にプログラムとも称する)を実行することによって、各種の処理部が実現する。なお、当該プログラムは、USBメモリなどの可搬性の記録媒体、あるいはネットワーク108等を介してコンピュータ50にインストールされるようにしてもよい。
当該プログラムには、たとえば、ウエブブラウザアプリケーションプログラム(以下、単に「ウエブブラウザ」あるいは「ブラウザ」とも称する)80が含まれる。当該ウエブブラウザ80は、各種のウエブサーバ(MFP10に内蔵されたウエブサーバ30を含む)との間で各種のデータを授受することが可能である。
当該ウエブブラウザ80は、レンダリングエンジンおよびスクリプトエンジンを備えており、ウエブサーバから送信されてきたデータに基づいて、各種の画面等をコンピュータ50の表示部55に表示するとともに各種の処理を実行することが可能である。なお、ウエブサーバから送信されてくる当該データは、ページ記述言語(HTML等)およびスクリプト(JavaScript(登録商標)等)によって記述されている。
通信部57は、ネットワーク108を介したネットワーク通信を行うことが可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、コンピュータ50は、所望の相手先(MFP10等)との間で各種のデータを授受することが可能である。通信部57は、各種データを送信する送信部と各種データを受信する受信部とを有する。
<1−4.動作>
図5はコンピュータ50の動作を示すフローチャートであり、図6はMFP10の動作を示すフローチャートである。また、図7は、MFP10およびコンピュータ50の動作例を示すタイミングチャートである。これらの図等を参照しながら、本システム1における動作について説明する。
図5に示すように、まず、コンピュータ50(50a)のユーザ(たとえばU1(図1参照))は、コンピュータ50にてウエブブラウザ80を起動し、当該ウエブブラウザ80にてMFP10内のウエブサーバ30のアドレス(特定URL(Uniform Resource Locator))をアクセス先アドレスとして指定する。このような操作に応じて、コンピュータ50(詳細にはウエブブラウザ80)は、MFP10(詳細にはウエブサーバ30)にアクセスする(ステップS11)。より詳細には、HTTPリクエストがウエブブラウザ80からウエブサーバ30に対して送信される。
MFP10(ウエブサーバ30)は、コンピュータ50(ウエブブラウザ80)からのアクセス(HTTPリクエスト)を受け付ける(ステップS31)と、ステップS32に進む。ステップS32では、MFP10にてジョブ(詳細には、印刷出力に関するジョブ)が現在実行中であるか否かに応じて分岐処理が行われる。当該印刷出力に関するジョブとしては、コピージョブ、ファクシミリ受信ジョブ、およびプリントジョブなどが例示される。なお、プリントジョブは、「PCプリントジョブ」と「ダイレクトプリントジョブ」とに大別される。「PCプリントジョブ」は、コンピュータ50にインストールされたプリンタドライバによって生成された印刷出力用データに基づいて行われる印刷出力ジョブである。ダイレクトプリントジョブは、プリンタドライバを用いることなく、MFPに直接送信された文書データに基づいて行われる印刷出力ジョブである。「ダイレクトプリントジョブ」は、MFP10内のウエブサーバ30を経由して実行されるジョブであることから、サーバタスクに基づく印刷出力ジョブであるとも表現される。
MFP10にてジョブが現在実行中ではない場合には、ステップS50に進み、通常の処理が実行される。具体的には、HTTPリクエストに応答して、メニュー画面の表示用データ(より詳細には、表示コンテンツを記述したHTMLデータ)がHTTPレスポンスとしてコンピュータ50に送信される。その後、メニュー画面に対する操作に応じた適宜の処理が実行される。なお、ステップS50においては、スクリプト150(後述)の送受信は行われず、サーバタスクの優先順位の変更(ステップS37)(後述)等も行われない。ここでは、MFP10にてジョブが現在実行中ではない場合には、サーバタスクの優先順位を上昇させなくてもサーバタスクの処理遅延の発生可能性はそれ程高くない、と判断し、サーバタスクの優先順位の変更(ステップS37)等を行わないものとする。ただし、これに限定されず、MFP10にてジョブが現在実行中ではない場合にも、ステップS33以降の処理(サーバタスクの優先順位の変更等)を行うようにしてもよい。
一方、MFP10にてジョブが現在実行中である場合には、ステップS33以降に進む。ステップS33以降においては、所定条件の充足を条件にサーバタスクの優先順位の変更処理等が行われる。
具体的には、まず、ステップS33では、MFP10は、コンピュータ50に対してHTTPレスポンスを送信する。具体的には、メニュー画面等の表示用データ120(より詳細には、表示コンテンツを記述したHTMLデータ)とスクリプト150との双方を含むデータがHTTPレスポンスとしてコンピュータ50に送信される。
スクリプト150は、コンピュータ50にMFP10用のプリンタドライバがインストールされているか否か等を判定するプログラムである。端的に言えば、スクリプト150は、コンピュータ50内での当該プリンタドライバの存否を判定するプログラムである。MFP10は、このようなスクリプト150をコンピュータ50に送信することによって、後述するように、当該スクリプト150をコンピュータ50に実行させるとともに、スクリプト150による処理結果を受信する。
コンピュータ50は、HTTPレスポンスのHTMLデータに基づいて、メニュー画面210(図8)を表示部55に表示する(ステップS12)。メニュー画面210には、MFP設定ボタン211、MFP状態確認ボタン212およびダイレクトプリントボタン213等を含む複数の機能ボタン(複数の機能のいずれを実行するかを選択するためのボタン)が配置されている。ユーザがこれらの機能ボタンの中から所望の機能ボタンを押下すると、押下されたボタンに対応する処理が実行される。ここでは、ダイレクトプリントボタン213が押下されるものとして説明を続ける。
機能ボタンが押下された旨がステップS13にて判定され、且つ、当該押下された機能ボタンがダイレクトプリントボタン213である旨がステップS14にて判定されると、ステップS15に進む。なお、ダイレクトプリントボタン213以外の機能ボタンが押下される場合には、押下されたボタンの情報がMFP10に送信され(ステップS20)、その後、適宜の処理が実行される。
ステップS15においては、スクリプト150がコンピュータ50にて実行される。コンピュータ50にて受信されたHTMLデータには、ダイレクトプリントボタン213が押下されたときにはスクリプト150が実行されるべき旨が記述されている。ダイレクトプリントボタン213が押下されると、当該記述に基づいて、スクリプト150がコンピュータ50によって実行される。スクリプト150の実行に伴って、コンピュータ50内におけるプリンタドライバの存否に関する情報が取得される。
そして、次のステップS16において、当該スクリプト150の処理結果(プリンタドライバの存否情報(MFP10a用のプリンタドライバがインストールされているか否かに関する情報))がMFP10に送信される。また、ダイレクトプリントボタン213が押下されたことに基づいて、その指示内容(ダイレクトプリント指示が受け付けられたこと)もMFP10に送信される。
MFP10は、スクリプト150の処理結果(プリンタドライバの存否情報)とユーザによる指示内容(ここではダイレクトプリント指示)とを受信する(ステップS34)と、ステップS35に進む。ステップS35において、ダイレクトプリント指示が受け付けられたことが確認されると、ステップS36に進む。なお、ダイレクトプリント指示以外の指示が受け付けられた場合には、ステップS35からステップS40に進み、押下されたボタンに応じた適宜の処理が実行される。
ステップS36(S36a)においては、所定の条件が充足されるか否かが判定される。ここでは、スクリプト150の処理結果として「MFP10用のプリンタドライバがコンピュータ50にインストールされていない旨(プリンタドライバが存在しない旨)」が受信されたか否かが判定される。当該プリンタドライバが存在しない旨が受信される場合には当該所定の条件が充足されると判定され、当該プリンタドライバが存在する旨が受信される場合には当該所定の条件が充足されないと判定される。
所定の条件が充足されると判定される場合には、スクリプト150による処理結果に基づき、コンピュータ50にMFP10用のプリンタドライバがインストールされていない旨を判定し、ステップS37に進む。一方、所定の条件が充足されないと判定される場合には、コンピュータ50にMFP10用のプリンタドライバがインストールされている旨が判定され、ステップS37は実行されずにステップS38に進む。
ステップS37においては、ウエブサーバ30のタスクの優先順位が変更される。
上述のように、通常状態においては、ウエブサーバ30のタスクであるサーバタスクの優先順位は、印刷出力に関するジョブのタスク(「ジョブタスク」とも称する)の優先順位よりも低く設定されている。
これに対して、このステップS37においては、サーバタスクの優先順位は、ジョブタスクの優先順位と同一の順位にまで上昇(変更)される。その後、ステップS37からステップS38に進む。
ステップS38においては、MFP10は、次の送信用画面230(図9参照)の表示用データをコンピュータ50に送信する。送信用画面230は、印刷対象の文書(文書データ)を選択してMFP10に送信するための画面であり、文書データの送信用画面とも称される。
コンピュータ50は、送信用画面230の表示用データに基づき、文書データの送信用画面230(図9)を表示部55に表示する。送信用画面230は、文書名称表示欄231とファイルツリー表示ボタン232とを備えている。ファイルツリー表示ボタン232の押下に応じて表示されるファイルツリーを用いることによって、コンピュータ50のユーザは、所望の印刷対象文書を選択することが可能である。
コンピュータ50のユーザは、当該送信用画面230を用いて、印刷対象の文書(文書データ)を選択した後に、決定ボタン235を押下する(ステップS17)。これに応じて、当該印刷対象文書が決定され、当該印刷対象文書の文書データがコンピュータ50からMFP10に送信される(ステップS18)。
MFP10は、印刷対象文書の文書データをコンピュータ50から受信する(ステップS39)。
ここにおいて、文書データの受信処理は、ウエブサーバ30のタスク(サーバタスク)の一部として実行される。上述のように、サーバタスクの優先順位は、印刷出力ジョブのタスクの優先順位と同一の順位にまで上げられている(ステップS37)ので、サーバタスクの一部として実行される文書データの通信処理は、優先順位の変更前に比べて、比較的短い時間で終了する。
このように、サーバタスクの優先順位の変更後に、MFP10は、サーバタスクの一部として文書データ(印刷対象文書の文書データ)の受信処理を実行する。
さらに、MFP10は、サーバタスクの一部として次のような処理を実行する。具体的には、MFP10は、当該文書データに関する印刷出力用データの生成処理等を実行し、プリントジョブ(ダイレクトプリントジョブ)を新たな印刷出力ジョブとして生成し、当該ダイレクトプリントジョブを未処理ジョブ(待機中ジョブ)の待ち行列に投入する。
その後、MFP10は、ジョブタスクの一部として、実際に当該ダイレクトプリントジョブに関する印刷出力処理を開始する(ステップS39)。すなわち、ダイレクトプリントジョブの実行が開始される。そして、ダイレクトプリントジョブが完了すると、印刷対象文書が印刷出力される。
以上のような動作によれば、ダイレクトプリント指示がコンピュータ50から受け付けられ且つMFP10用のプリンタドライバが当該コンピュータ50にインストールされていないと判定されることを条件として、サーバタスクの優先順位がジョブタスクの優先順位と同一の順位に変更される。その結果、優先順位の変更前に比べて、サーバタスク(文書データの受信処理、および/または当該文書データに基づく印刷出力用データの生成処理の生成処理)が短時間で終了し、ダイレクトプリントジョブが比較的早期に開始され得る。ひいては、文書データに関する印刷出力開始の遅延を抑制することが可能である。特に、当該サーバタスクの優先順位の変更後に印刷対象の文書データがサーバタスクにより受信されることによれば、サーバタスクの一部として実行される文書データの通信処理が優先順位の変更前に比べて特に短時間で終了する。その結果、文書データに関する印刷出力開始の遅延を一層抑制することが可能である。
仮に、サーバタスクの優先順位がジョブタスクの優先順位よりも低いままである場合には、複数のタスクのうち、ジョブタスクがサーバタスクよりも優先的に実行され、サーバタスクには比較的小さなCPU時間が割り当てられる。その結果、「サーバタスク」としてサーバによって実行される処理(具体的には、文書データの受信処理、および/または当該文書データに基づく印刷出力用データの生成処理等)に比較的長い時間を要する。
一方、上記のように、サーバタスクの優先順位が上げられる(たとえば、ジョブタスク(特に印刷出力ジョブ)の優先順位と同一の順位に変更される)と、複数のタスクのうち、当該サーバタスクに対して比較的大きなCPU時間が割り当てられる。その結果、(現在実行中の「ジョブタスク」に要する時間が若干増大することもあるが、)「サーバタスク」としてサーバによって実行される処理に要する時間を短縮することが可能である。たとえば、文書データの受信処理に要する時間が短縮され、当該文書データに基づく印刷出力用データの生成処理に要する時間も短縮される。したがって、文書データに関する印刷出力開始の遅延を抑制することが可能である。ひいては、ダイレクトプリントによる印刷出力物を比較的早期に得ることが可能である。
また、ダイレクトプリント指示の後にPCプリントジョブなどのジョブが追加投入される場合において、仮にサーバタスクの優先順位が低いままであるときには、ダイレクトプリント指示に基づく印刷出力ジョブは、当該追加投入されたジョブ(追加ジョブ)にも追い抜かれることがある。上記のような実施形態によれば、このような追加ジョブに起因するダイレクトプリントの遅延をも抑制することが可能である。このような処理例についてさらに説明する。
図10は、3つの処理P1,P2,P3に関する処理順序等を表形式で示す図である。図10に示すように、たとえば、コピージョブP1が既に実行されているときに或るユーザ(たとえばU1)によってダイレクトプリントP2の指示が付与され、さらに暫く後に別のユーザ(たとえばU2)によって、プリンタドライバを介したプリントジョブ(いわゆるPCプリントジョブ)P3の実行指示が付与される状況を想定する。すなわち、コピージョブP1の実行指示、ダイレクトプリントP2の実行指示、PCプリントジョブP3の実行指示がこの順序で受け付けられる状況を想定する(図10の左端の欄を参照)。
この状況においては、2つ目のダイレクトプリントP2の指示が付与された時点で最初のコピージョブP1が実行中である。通常状態(優先順位の変更前)においては、サーバタスクの優先順位は、印刷出力ジョブ(コピージョブを含む)の優先順位よりも低く設定されている。そのため、サーバタスク(ダイレクトプリントの対象文書の受信処理および印刷出力用データの生成処理等)の処理時間は長大化し、当該対象文書に関する印刷出力用データの生成完了が遅延する。その結果、ダイレクトプリントの対象文書に関する印刷出力用データの生成処理の完了の待機中(換言すれば、ダイレクトプリントジョブの待ち行列への投入前)に、次のPCプリントジョブP3が受け付けられることがある。この場合、PCプリントジョブP3の実行順位は、現在実行中のコピージョブP1(第1順位)に次ぐ第2順位に設定される(図10の左端から2つ目の欄を参照)。すなわち、ダイレクトプリントに関するサーバタスク(印刷対象の文書データの転送処理等)に比較的長い時間を要するために、本来は2番目に指示されたダイレクトプリントP2と3番目に指示されたPCプリントジョブP3との実行順序が逆転し、ダイレクトプリントP2に係る印刷出力完了がさらに遅延する。
これに対して、上記実施形態のように、サーバタスクの優先順位をジョブタスクの優先順位と同一の順位にまで上げることによれば、サーバタスク(文書データの受信処理の処理時間、および/または文書データに基づく印刷出力用データの生成処理等)に要する時間が短縮される。その結果、サーバタスクによって、ダイレクトプリントに係る印刷出力用データが生成され当該印刷出力用データに基づく印刷出力ジョブ(ダイレクトプリントジョブ)がジョブの待ち行列に投入されるまでの期間が短縮される。そして、2番目に指示されたダイレクトプリントP2が、3番目に指示されたPCプリントジョブP3よりも先にジョブの待ち行列に投入され、ダイレクトプリントP2とPCプリントジョブP3とがこの順序(指示順序と同一の順序)で実行され得る。すなわち、上述のような実行順序の逆転、すなわち、2番目に指示されたダイレクトプリントP2と3番目に指示されたPCプリントジブP3とがこの順序とは逆の順序で実行されることなどが回避され得る。
また、この実施形態においては、MFP10a用のプリンタドライバがインストールされているコンピュータ(たとえば50b)から、MFP10aに向けてダイレクトプリントの指示が付与された場合には、サーバタスクの優先度は変更されない(ステップS36でNO→ステップS38)。当該コンピュータ50bのユーザは、ダイレクトプリントのサーバタスク(文書データの送信処理等)に比較的長い時間を要していることを察知すると、プリンタドライバを用いた印刷出力要求に切り替えることが可能である。一方、MFP10a用のプリンタドライバがインストールされていないコンピュータ(たとえば50a)からは、当該プリンタドライバを利用できないため、上記のようなサーバタスクの優先順位の上昇処理等が特に有用である。
なお、上記実施形態においては、MFP10a用のプリンタドライバがコンピュータ50にインストールされていると判定される場合には、ステップS36から直ちにステップS38に進んでいる(図6参照)が、これに限定されない。
たとえば、MFP10a用のプリンタドライバがコンピュータ50にインストールされていると判定される場合には、MFP10aのプリンタドライバを利用した印刷出力を行うことを促す画面の表示用データをコンピュータ50に送信し、当該画面をコンピュータ50に表示させるようにしてもよい。当該画面には、「暫くお待ち下さい。なお、このコンピュータにはMFP10a用のプリンタドライバがインストールされています。お急ぎの場合には、MFP10aのプリンタドライバを利用した印刷出力を行うことをお勧めします。」などのメッセージが表示される。当該画面内のOKボタン(不図示)が押下されると、その押下情報がコンピュータ50からMFP10に送信され、処理はステップS38に進む。
このような動作によれば、MFP10a用のプリンタドライバがインストールされているコンピュータ(50b等)のユーザを、当該プリンタドライバを用いた印刷出力要求操作へと適切に誘導することが可能である。
<2.第2実施形態>
第2実施形態は、第1実施形態の変形例である。以下、第1実施形態との相違点を中心に説明する。
上記第1実施形態においては、プリンタドライバがコンピュータ50にインストールされていないと判定されること等を条件として(ステップS36)、サーバタスクの優先順位が上げられている(ステップS37)。
この第2実施形態においては、MFP10における未完了ジョブの残り実行時間が所定の閾値(たとえば、10秒)よりも大きいことをも条件として、サーバタスクの優先順位が上げられる。換言すれば、MFP10用のプリンタドライバがコンピュータ50にインストールされていないと判定される場合であっても、MFP10における未完了ジョブの残り実行時間が所定の閾値よりも小さいときには、サーバタスクの優先順位はジョブタスクの優先順位よりも低い状態で維持される。
図11は、第2実施形態に係るMFPの動作を示すフローチャートである。図11と図6とを比較すると判るように、第2実施形態のステップS36(S36b)の判定処理は、第1実施形態のステップS36(S36a)の判定処理と異なっている。ステップS36bにおいては、「プリンタドライバ無し」且つ「MFP10における未完了ジョブの残り実行時間が所定の閾値(たとえば、10秒)以上であること」との双方が判定されるとを条件として、ステップS37に進み、サーバタスクの優先順位が変更される。換言すれば、「プリンタドライバ無し」(MFP10用のプリンタドライバがコンピュータ50にインストールされていない)と判定される場合であっても、MFP10における未完了ジョブの残り実行時間が所定の閾値よりも小さいときには、ステップS37の処理(サーバタスクの優先順位の変更処理)は実行されない。未完了ジョブの残り実行時間が短い場合には、サーバタスクの優先順位を上昇させる必要性が小さいと考えられ、サーバタスクの優先順位はジョブタスクの優先順位よりも低い状態で維持される。
このような動作によれば、或る条件が充足される場合に、サーバタスクの優先順位が上げられる。したがって、上記第1実施形態と同様に、文書データに関する印刷出力開始の遅延を抑制することが可能である。
また、「MFP10における未完了ジョブの残り実行時間が所定の閾値以上であること」をも条件として、サーバタスクの優先順位が変更されるので、サーバタスクの優先順位が変更され難くなる。したがって、サーバタスクの優先順位が変更される場面を出来るだけ限定しつつ、ダイレクトプリントに係る印刷出力開始の遅延を抑制することが可能である。
なお、未完了ジョブは、単一のジョブであってもよく複数のジョブであってもよい。複数のジョブである場合には、当該複数のジョブの残り実行時間の合計値が所定の閾値よりも小さいか否かに基づいて、未完了ジョブの残り実行時間が所定の閾値よりも小さいか否かが判定されればよい。
また、残り実行時間が所定の閾値に等しい場合には、上記とは逆の動作が実行されるようにしてもよい。
<3.第3実施形態>
第3実施形態は、第1実施形態の変形例である。以下、第1実施形態との相違点を中心に説明する。
この第3実施形態においては、MFP10にて割込ジョブが実行されていないことをも条件として、サーバタスクの優先順位が上げられる態様を例示する。「割込ジョブ」は、操作パネル6c等に設けられた割込ボタン(不図示)の押下に応じてユーザにより投入されるジョブであり、他のジョブよりも優先して実行されるジョブである。第3実施形態においては、MFP10用のプリンタドライバがコンピュータ50にインストールされていないと判定される場合であっても、MFP10にて割込ジョブが実行されているときには、サーバタスクの優先順位はジョブタスクの優先順位よりも低い状態で維持される。
図12は、第3実施形態に係るMFPの動作を示すフローチャートである。図12と図6とを比較すると判るように、第3実施形態のステップS36(S36c)の判定処理は、第1実施形態のステップS36(S36a)の判定処理と異なっている。ステップS36cにおいては、「プリンタドライバ無し」且つ「MFP10にて割込ジョブが実行されていないこと」との双方が判定されるとを条件として、ステップS37に進み、サーバタスクの優先順位が変更される。換言すれば、「プリンタドライバ無し」と判定される場合であっても、MFP10にて割込ジョブが実行されているときには、ステップS37の処理(サーバタスクの優先順位の変更処理)は実行されない。このときには、サーバタスクの優先順位はジョブタスクの優先順位よりも低い状態で維持される。
このような動作によれば、或る条件が充足される場合に、サーバタスクの優先順位が上げられる。したがって、上記第1実施形態と同様に、文書データに関する印刷出力開始の遅延を抑制することが可能である。
また、「MFP10にて割込ジョブが実行されていないこと」をも条件として、サーバタスクの優先順位が変更されるので、サーバタスクの優先順位が変更され難くなる。したがって、サーバタスクの優先順位が変更される場面を出来るだけ限定しつつ、ダイレクトプリントに係る印刷出力開始の遅延を抑制することが可能である。特に、割込ジョブが実行されているときには、当該割込ジョブが非常に高い緊急性を有するものである可能性が高い。このような状況においては、サーバタスクの優先順位が維持されることが好ましい。サーバタスクの優先順位が維持されることによれば、サーバタスクの優先順位の上昇に起因するジョブ(割込ジョブ)の処理時間の増大、を回避することが可能である。
<4.第4実施形態>
第4実施形態は、第1実施形態の変形例である。以下、第1実施形態との相違点を中心に説明する。
第4実施形態においては、図13に示すように、社内等に設けられた複数のサブネットワークのうち、MFP10aの所属するサブネットワーク109a内に、複数のMFP10(ここでは3台のMFP10a,10b,10c)が存在する状況を想定する。また、当該複数のMFP10の中には、ダイレクトプリントの対象装置であるMFP10aとは別の少なくとも1つのMFP10(ここでは2台のMFP10b,10cの双方)において、自装置用のプリンタドライバがインストールされているものとする。
図13では、破線内の複数のネットワーク機器10a〜10c,50a,50bが同一のサブネットワークに接続されている様子が示されている。
ここで、上述の複数のサブネットワークは、社内等において互いに異なるネットワークとして管理される。複数のサブネットワークは、各ホストのIPアドレスのネットワークアドレス部等によって互いに識別される。たとえば、各ホストのIPアドレス(詳細にはプライベートIPアドレス)の上位24ビット(第1オクテットから第3オクテットまで)がネットワークアドレス部を示し、下位8ビット(第4オクテット)がホストアドレス部を示す。ネットワークアドレス部には、複数のサブネットワークのそれぞれに固有のアドレス(サブネットアドレス)が設定され、複数のサブネットワークは当該サブネットアドレスによって互いに識別される。また、ホストアドレス部は、サブネットワーク内において個々のホストを識別するために用いられる。
また、コンピュータ50(50a)には、MFP10a用のプリンタドライバはインストールされていないが、MFP10b用のプリンタドライバとMFP10c用のプリンタドライバとはコンピュータ50(50a)にインストールされているものとする。
そして、MFP10a以外のMFP(たとえば10b,10c)においては指定不可能であり且つMFP10aにおいては指定可能な印刷設定内容が、MFP10aに対するダイレクトプリント指示に際して設定されることをも条件として、サーバタスクの優先順位が上げられるものとする。換言すれば、MFP10a用のプリンタドライバがコンピュータ50にインストールされていないと判定される場合であっても、MFP10aへのダイレクトプリント指示にて指定された印刷設定内容が他のMFP(たとえば10b,10c)でも指定可能であるときには、サーバタスクの優先順位は上昇されない。このときには、他のMFP(たとえば10bあるいは10c)での印刷出力を促す表示が行われる。具体的には、他のMFP10b用プリンタドライバあるいはMFP10c用プリンタドライバがコンピュータ50にインストールされていることをも条件として、「コンピュータ50にインストール済みのプリンタドライバ」に対応するMFP10(10bあるいは10c)における印刷出力が促される。
図14は、第4実施形態に係るコンピュータ50(50a)の動作を示すフローチャートであり、図15は、第4実施形態に係るMFP10(10a)の動作を示すフローチャートである。また、図16は、MFP10aおよびコンピュータ50aの動作例を示すタイミングチャートである。これらの図等を参照しながら、第4実施形態における動作についてさらに詳細に説明する。
図14〜図16に示すように、ステップS11〜S16,S31〜34の動作が第1実施形態と同様に実行される。ただし、スクリプト150は、MFP10a用のプリンタドライバがインストールされているか否かを判定するとともに、同一サブネット内の他のMFP10b,10c用の各プリンタドライバがインストールされているか否かをも判定する(ステップS15)。そして、それらの判定結果がコンピュータ50からMFP10に送信される(ステップS34)。
その後、第4実施形態においては、文書データの送信処理等(ステップS17,18,S39)に先立って、印刷設定が変更されるものとする(ステップS60,S70)。なお、簡単化のため、図14および図15においては、ステップS60,S70は、それぞれ、その幾つかのサブステップ(S61〜S64,S71〜S73(不図示)等)を纏めた工程として示されている。
具体的には、ステップS34の後、ステップS35とステップS36との間において、MFP10は、印刷設定変更用画面240(図17参照)の表示用データをコンピュータ50に送信する(ステップS70(S71))。また、コンピュータ50は、ステップS16とステップS17との間において当該印刷設定変更用画面240の表示用データを受信すると、当該表示用データに基づき、印刷設定変更用画面240(図17参照)を表示部55に表示する(ステップS60(S61))。
図17に示すように、印刷設定変更用画面240は、印刷設定ボタン241を有している。印刷設定変更用画面240において印刷設定ボタン241が押下されると、印刷設定ボタン241が押下された旨がコンピュータ50からMFP10に送信される(ステップS60(S62))。また、これに応答して、印刷設定画面(不図示)の表示用データがMFP10からコンピュータ50に送信される(ステップS70(S72))。そして、コンピュータ50において当該印刷設定画面が表示される(ステップS60(S63))。この印刷設定画面を用いて、コンピュータ50のユーザは、各種の印刷設定を変更することが可能である。印刷設定画面を用いて変更された印刷設定内容は、ネットワークを介してコンピュータ50からMFP10に送信され(ステップS60(S64))、MFP10において記憶される(ステップS70(S73))。最後に、OKボタン245が押下されると、印刷設定が完了した旨がコンピュータ50からMFP10に通知される。
たとえば、MFP10aの設定内容として、印刷出力の解像度に関する設定として、高解像度「2400dpi」が設定され得る。ここでは、他のMFP10b,10cにおいては、「1200dpi」までの解像度を設定することが可能であるものの、高解像度「2400dpi」は設定され得ないものとする。すなわち、高解像度「2400dpi」は、MFP10aにおいてのみ指定可能な印刷設定内容であり、MFP10b,10cにおいては指定不可能な印刷設定内容である。換言すれば、高解像度「2400dpi」は、同一サブネットワークに所属する複数のMFP10のうちMFP10aでのみ指定可能な印刷設定内容である。
その後、MFP10aは、ステップS36(S36d)の処理を実行する。ただし、この第4実施形態のステップS36(S36d)においては、「(MFP10a用の)プリンタドライバ無し」且つ「MFP10aでは指定可能且つ他のMFP10b,10cにて指定不可能な印刷設定内容が設定される」旨の条件が充足されているか否かが判定される。より詳細には、MFP10aの所属サブネットワークと同じサブネットワークに所属する全てのMFP(10a,10b,10c)のうち、MFP10a以外のMFPであって自装置用のプリンタドライバがコンピュータ50にインストールされているMFP(ここでは、10b,10cの双方)のいずれかにおいても指定可能な印刷設定内容が、MFP10aでのダイレクトプリントの印刷設定において設定されているか否かも判定される。なお、各MFP10a,10b,10c用の各プリンタドライバがコンピュータ50(50a)にインストールされているか否かは、上述のように、スクリプト150による処理結果に基づいて判断されればよい。ここでは、MFP10b用のプリンタドライバとMFP10c用のプリンタドライバとの双方がコンピュータ50(50a)にインストールされている旨がスクリプト150によって判定されるものとする。
そして、「(MFP10a用の)プリンタドライバ無し」且つ「MFP10aでは指定可能且つ他のMFP10b,10cにて指定不可能な印刷設定内容(たとえば、高解像度「2400dpi」)が設定されること」をも条件として、ステップS36dからステップS37に進み、サーバタスクの優先順位が変更される。
一方、「(MFP10a用の)プリンタドライバ無し」と判定される場合であっても、MFP10a以外のMFP(10bあるいは10c)にて指定可能な印刷設定内容(たとえば、高解像度「1200dpi」)がMFP10aによるダイレクトプリント指示に際して設定されるときには、ステップS80に進む。このときには、ステップS37の処理(サーバタスクの優先順位の変更処理)は実行されず、サーバタスクの優先順位はジョブタスクの優先順位よりも低い状態で維持される。ステップS80においては、複数のMFP10のうちMFP10aに代えて用いるべきMFP(詳細には、MFP10a向けに指定されていた印刷設定内容を指定することが可能な代替装置(ここではMFP10b,10c))による印刷出力(プリンタドライバを利用した印刷出力)を行うことを促す画面の表示用データがコンピュータ50に送信される。そして、コンピュータ50においては、当該表示用データに基づいて、当該画面が表示される。当該画面には、「印刷指定装置であるMFP(10a)は、現在他のジョブを実行中です。暫くお待ち下さい。お急ぎの場合には、お近くの別のMFP(10b,10c)をご利用ください。これらのMFP(10b,10c)には、MFP10a用のプリンタドライバがインストールされています。」などのメッセージが表示される。当該画面内のOKボタン(不図示)が押下されると、その押下情報がコンピュータ50からMFP10に送信され、処理はステップS38に進む。
その後、第1実施形態と同様の動作が実行される。
以上のような動作によれば、MFP10a用のプリンタドライバがコンピュータ50にインストールされていないと判定される場合において、MFP10aと同じサブネットワークに所属する他の少なくとも1つのMFP(ここでは2台のMFP10b,10c)用のプリンタドライバがコンピュータ50にインストールされている、と判定されるときには、MFP10aでは指定可能且つ他のMFP10b,10cでは指定不可能な設定内容がダイレクトプリント指示に際して設定されることをも条件として、サーバタスクの優先度が変更される。したがって、上記第1実施形態と同様に、文書データに関する印刷出力開始の遅延を抑制することが可能である。
特に、この実施形態では、「MFP10aでは指定可能且つ他のMFP10b,10cでは指定不可能な印刷設定内容が設定されること」をも条件として、サーバタスクの優先順位が変更されるので、サーバタスクの優先順位が変更され難くなる。したがって、サーバタスクの優先順位が変更される場面を出来るだけ限定しつつ、ダイレクトプリントに係る印刷出力開始の遅延を抑制することが可能である。
さらに、コンピュータ50にMFP10a用のプリンタドライバがインストールされていないと判定される場合において、他のMFP10b,10c(代替装置)においても指定可能な印刷設定内容が、MFP10a向けのダイレクトプリント指示に際して設定されるときには、MFP10aに代えて代替装置による印刷出力を行うことを促す画面の表示用データがコンピュータ50に送信され、当該画面がコンピュータ50に表示される。したがって、ユーザに対して代替的な印刷手法が提示されるので、ユーザは、より適切な対応策を採用することが可能である。たとえば、ユーザは、コンピュータ50にインストールされているMFP10b用(あるいはMFP10c用)のプリンタドライバを用いて、コンピュータ50から代替装置(MFP10bあるいはMFP10b)に対する印刷出力要求を行うことが可能である。この場合、当該代替装置において、当該印刷出力要求に基づくジョブ(PCプリントジョブ)が、サーバタスクを経由せずに実行される。したがって、当該代替装置において、PCプリントジョブはサーバタスクの優先順位に依拠することなく実行され、PCプリントジョブによる印刷出力物を比較的早期に得ることが可能である。
なお、上記第4実施形態においては、同一サブネットワークに所属する複数のMFP10のうちMFP10aでのみ指定可能な印刷設定内容として、解像度に関する設定内容「2400dpi」が例示されているが、これに限定されない。たとえば、同一サブネットワークに所属する複数のMFP10のうちMFP10aでのみ指定可能な印刷設定内容は、印刷出力色に関する設定内容「フルカラー」であってもよい。また、当該印刷設定内容は、出力ページ構成(ページ集約)に関する設定内容「4in1」、印刷倍率に関する設定内容「25%」、あるいは、印刷倍率に関する設定内容「400%」などであってもよい。さらに、当該印刷設定内容は、用紙種類に関する設定内容「ハガキ」、用紙種類に関する設定内容「厚紙」、用紙サイズに関する設定内容「A3」、あるいはフィニッシャに関する設定内容「ステープル有り」などであってもよい。
<5.変形例等>
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
たとえば、上記各実施形態においては、MFP10a用の本来のプリンタドライバ自体がコンピュータ50にインストールされていないことを条件として、サーバタスクの優先順位が上昇される。ただし、MFP10a用のプリンタドライバとの間に互換性を有するプリンタドライバ(互換プリンタドライバとも称する)の存否(コンピュータ50内での存否)は考慮されていない。たとえば、MFP10a用のプリンタドライバ自体がコンピュータ50にインストールされていない場合には、「互換プリンタドライバ」がコンピュータ50にインストールされているときであっても、サーバタスクの優先順位が上昇され得る。なお、「互換プリンタドライバ」としては、MFP10aと同じサブネットワーク内に存在する他のMFP(10b,10c)用のプリンタドライバなどが例示される。
しかしながら、本発明はこれに限定されず、「互換プリンタドライバ」がコンピュータ50にインストールされているときには、サーバタスクの優先順位が変更されないようにしてもよい。換言すれば、互換プリンタドライバがコンピュータ50にインストールされているときには、MFP10aに対して使用可能なプリンタドライバがコンピュータ50にインストールされていると判定されるようにしてもよい。謂わば、互換プリンタドライバがコンピュータ50にインストールされているときには、MFP10a用のプリンタドライバがコンピュータ50にインストールされているものとみなす旨が判定されるようにしてもよい。
なお、互換プリンタドライバがコンピュータ50にインストールされているか否かは、スクリプト150等を用いて判定されればよい。当該スクリプト150は、MFP10a用のプリンタドライバがコンピュータ50にインストールされているか否かを判定するとともに、互換プリンタドライバ(より詳細には、MFP10aに対しても利用可能なプリンタドライバ)がコンピュータ50にインストールされているか否かをも判定すればよい。
そして、互換プリンタドライバがコンピュータ50にインストールされているときには、MFP10用のプリンタドライバがコンピュータ50にインストールされているときと同様の動作が行われるようにすればよい。
具体的には、MFP10a用のプリンタドライバはコンピュータ50にインストールされていないものの、互換プリンタドライバがコンピュータ50にインストールされていると判定されるときには、ステップS37の処理(サーバタスクの優先順位の変更処理)は実行されない。具体的には、ステップS36からステップS38に進む前に、上述のステップS80(図15参照)に類似する処理が行われる。ただし、ステップS80に類似する当該処理においては、互換プリンタドライバを用いてMFP10aでの印刷出力を行うことを促す画面の表示用データがコンピュータ50に送信される。そして、コンピュータ50においては、当該表示用データに基づいて、当該画面が表示される。当該画面には、「コンピュータ50には、印刷対象のMFP(10a)専用のプリンタドライバはインストールされていませんが、互換プリンタドライバがインストールされています。互換プリンタドライバを利用してMFP10aによる印刷出力を行うことも可能です。お急ぎの場合には、そのような印刷出力もご検討ください。」などのメッセージが表示される。当該画面内のOKボタン(不図示)が押下されると、その押下情報がコンピュータ50からMFP10に送信され、処理はステップS38に進む。なお、ユーザが、実際に、互換プリンタドライバを利用してMFP10aによる印刷出力を行う場合には、サーバタスクによる印刷出力のキャンセル後に、コンピュータ50にて起動した当該互換プリンタドライバの設定画面において、印刷対象プリンタとして「MFP10a」を選択すればよい。そして、互換プリンタドライバを利用したプリントジョブが投入されればよい。
このような動作によれば、互換プリンタドライバがインストールされているコンピュータのユーザを、当該互換プリンタドライバを用いた印刷出力要求操作へと適切に誘導することが可能である。
また、上記各実施形態等においては、サーバタスクの優先順位は、印刷出力ジョブのタスクの優先順位と同一の順位に変更されているが、これに限定されない。たとえば、サーバタスクの優先順位は、印刷出力ジョブのタスクの優先順位よりも高い順位に変更されるようにしてもよい。