図1は、本発明の第1の実施形態の印刷システムの構成例を示す図である。図1に示す印刷システムは、画像出力装置A(102a)乃至C(102c)と、クライアント装置101と、プリントサービスサーバ装置103とを備える。以下の説明では、各々の画像出力装置を画像出力装置102とも記述する。
クライアント装置101と画像出力装置102とは、ネットワーク104上に設けられている。ネットワーク104は、例えばEthernet(登録商標)である。また、プリントサービスサーバ装置103は、インターネット106上に設けられている。
クライアント装置101は、ユーザが操作する情報処理装置である。クライアント装置101は、インターネット106を介して、プリントサービスサーバ装置103に印刷ジョブを投入する。クライアント装置101は、プリントサービスサーバ装置103に印刷ジョブを投入した後、印刷ジョブ送信マルチキャストを行う。
印刷ジョブ送信マルチキャストは、クライアント装置101が印刷ジョブを送信(投入)したことをネットワーク104上にマルチキャストすることである。印刷ジョブ送信マルチキャストは、印刷ジョブに関する情報を含む。印刷ジョブに関する情報は、少なくとも出力先画像出力装置に関する情報と代行画像出力装置に関する情報とを含む。出力先画像出力装置は、印刷処理を実行する画像出力装置、すなわち、クライアント装置101のユーザが印刷処理を実行させたい画像出力装置(実行装置)である。代行画像出力装置は、出力先画像出力装置を管理しているプリントサービスサーバ装置103が管理する画像出力装置のうち、出力先画像出力装置に代行して印刷処理を実行する画像出力装置(代行装置)である。
印刷ジョブ送信マルチキャストを受信した画像出力装置102は、印刷ジョブ送信マルチキャストが含む印刷ジョブに関する情報に基づいて、自装置が印刷処理を実行するか否かを判断する。自装置が印刷処理を実行すると判断した画像出力装置102は、インターネット106を介して、プリントサービスサーバ装置103に対して印刷ジョブの取得要求を送信する。印刷ジョブの取得要求は、印刷ジョブの送信を求める要求である。そして、画像出力装置102は、この印刷ジョブの取得要求に応じたプリントサービスサーバ装置103から印刷ジョブを受信して実行する。すなわち、クライアント装置101は、印刷ジョブ送信マルチキャストを行うことを通じて、画像出力装置102に対して、プリントサービスサーバ装置103から印刷ジョブを受信して実行する印刷処理を指示する。
プリントサービスサーバ装置103は、画像出力装置102を印刷ジョブの送信先として管理するサーバ装置である。プリントサービスサーバ装置103は、インターネット106を介して、クライアント装置101から印刷ジョブの投入を受ける。プリントサービスサーバ装置103は、クライアント装置101から受けた印刷ジョブを、所定のフォーマットに変換して保持する。プリントサービスサーバ装置103は、画像出力装置102から印刷ジョブの取得要求を受ける。そして、プリントサービスサーバ装置103は、この印刷ジョブの取得要求に応じて、この画像出力装置102に対して印刷ジョブを投入する。
図1に示す印刷システムにおいては、インターネット106とネットワーク104との間に、ゲートウェイ装置105が設けられている。従って、プリントサービスサーバ装置103が自律的にネットワーク104上のクライアント装置101および画像出力装置102にアクセスすることはできない。プリントサービスサーバ装置103は、例えば、画像出力装置102から印刷ジョブの取得要求を受け、この要求への応答として印刷ジョブを返す。本実施形態の印刷制御方法は、図1中に示す印刷システムが備える各装置の機能によって実現される。
図2は、図1に示すクライアント装置と画像出力装置の構成例を示す図である。クライアント装置101は、CPU111、RAM112、ROM113、表示部I/F115、キーボードI/F116、外部メモリI/F117を備える。CPUは、Central Processing Unitの略称である。RAMは、Random Access Memoryの略称である。I/Fは、Interfaceの略称である。また、クライアント装置101は、ネットワークI/F118、表示部119、キーボード120、外部メモリ131を備える。
CPU111は、RAM112に記憶されている制御プログラムに従って、システムバス121に接続されている各デバイスを総括的に制御する。RAM112は、CPU111の主メモリ、ワークエリアとしても機能する。
ROM113は、各種プログラム及びデータを格納している。表示部I/F115は、表示部119による表示処理を制御する。キーボードI/F116は、キーボード120や不図示のポインティングデバイス(タッチパネル等)からの入力を制御する。
外部メモリI/F117は、例えば、フラッシュメモリ、SSD(Solid State Disk)等の外部メモリ131とのアクセスを制御する。外部メモリ131は、クライアント装置101が保存または読み取り可能な記憶媒体として機能する。具体的には、外部メモリ131は、OS132、各種アプリケーション133、プリンタドライバ134、画像出力装置情報保存領域135、プリンタドライバインストーラ136を保持する。OSは、オペレーティングシステム(Operating System)である。また、各種アプリケーション133は、例えば、ブラウザアプリケーションを含む。
プリンタドライバ134は、クライアント装置101からの印刷指示に関する情報の出力先(例えば、画像出力装置102またはプリントサービスサーバ装置103)を管理する。画像出力装置情報保存領域135には、画像出力装置情報が保存される。画像出力装置情報は、画像出力装置102に関する情報である。画像出力装置情報は、少なくとも、画像出力装置ID、画像出力装置名、印刷処理速度を含む。画像出力装置IDは、画像出力装置102を一意に識別する識別情報である。画像出力装置名は、画像出力装置102の名称である。印刷処理速度は、画像出力装置102の名称である。プリンタドライバインストーラ136は、クライアント装置101へのプリンタドライバ134のインストールを実行する。
ネットワークI/F118は、ネットワークの制御部である。具体的には、ネットワークI/F118は、ネットワーク端子を通じて、ネットワーク104への接続を可能にする。
画像出力装置102は、CPU142、RAM143、ROM144、ネットワークI/F145、操作部I/F146、プリンタI/F148、外部メモリI/F152、操作部147、プリンタ部149、外部メモリ151を備える。
CPU142は、画像出力装置102の全体の動作を制御する。具体的には、CPU242は、システムバス141に接続されている各デバイスを総括的に制御する。RAM143は、CPU142の主メモリ、ワークエリア等として機能する。また、RAM143は、画像情報展開領域、環境データ格納領域としても用いられる。また、RAM143は、NVRAM(Non-volatile Random Access Memory)領域も備えている。そして、RAM143は、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
CPU142は、ネットワークI/F145を介して、クライアント装置101と通信する。また、CPU142は、画像出力装置102内の情報等を、ネットワーク105を介してクライアント装置101に通知することができる。また、CPU142は、ネットワークI/F145およびインターネット106を介して、プリントサービスサーバ装置103に対して、印刷ジョブの取得要求を行う。また、CPU142は、ネットワークI/F145およびインターネット106を介して、プリントサービスサーバ装置103から印刷ジョブを受信する。
本実施形態では、ネットワークI/F145は、サービスプロトコルを実装している。また、ネットワークI/F145は、印刷ジョブを受信するプロトコルとして複数のプロトコルを実装している。例えば、ネットワークI/F145は、ローカルネットワークでの印刷ジョブ受信が可能なLPR(Line Printer Daemon Protocol)やPort9100を実装している。また、例えば、ネットワークI/F145は、インターネット経由の印刷ジョブの受信に適しているIPP(Internet Printing Protocol)を実装している。
また、CPU142は、ROM144に記憶された制御プログラム等に基づいて、プリンタI/F148を介して、プリンタ部149に画像データを送信し、印刷処理を実行する。
ROM144は、各種フォント、CPU142により実行される制御プログラム等、各種データを記憶している。ネットワークI/F145は、クライアント装置101との間でデータの送受信を行なう。プリンタI/F148は、プリンタエンジンであるプリンタ部149との間のインターフェースを制御している。
外部メモリ151は、外部メモリI/F152によって、アクセスが制御されている。外部メモリ151は、例えば、ハードディスク、フラッシュメモリ、SSD等を備えている。外部メモリ151は、ハードウェア情報153、印刷制御プログラム154、マルチキャストデータ保存領域155を保持する。ハードウェア情報153は、画像出力装置102が備えるハードウェアに関する情報である。
印刷制御プログラムは、画像出力装置102の動作処理を制御する制御プログラムである。マルチキャストデータ保存領域155には、画像出力装置102がネットワーク104を介して受信するマルチキャストが含む情報が保存される。画像出力装置102に外部メモリ151が接続されていない場合には、ROM144に、クライアント装置101が利用する情報等を記憶するようにしてもよい。
操作部I/F146は、画像入力装置102が実行する処理(例えば、スキャン処理)を設定する操作部147とのインターフェースを制御する。操作部147には、ユーザによる操作を受け付ける操作パネルが設けられている。操作パネルには、操作のためのスイッチ及びLED(Light Emitting Diode)表示器等が配されている。操作パネルから入力される印刷設定情報を不図示のNVRAMが記憶するようにしてもよい。
図3は、プリントサービスサーバ装置の構成例を示す図である。プリントサービスサーバ装置103は、CPU171、RAM172、ROM173、表示部I/F174、キーボードI/F175、外部メモリI/F176を備える。また、プリントサービスサーバ装置103は、ネットワークI/F177、表示部178、キーボード179、外部メモリ181を備える。
CPU171は、RAM172に記憶されているプログラムに従って、システムバス180に接続される各デバイスを総括的に制御する。RAM172は、CPU171の主メモリ、ワークエリア等としても機能する。
ROM173は、各種プログラム及びデータを格納する。キーボードI/F175は、キーボード179や不図示のポインティングデバイス(例えば、マウス)からの入力を制御する。表示部I/F174は、表示部178による表示処理を制御する。
外部メモリI/F176は、例えばHD、SSD等の外部メモリ181とのアクセスを制御する。外部メモリ181は、OS182、ウェブサービスライブラリ183、プリントサービスプログラム184を記憶している。
プリントサービスプログラム184は、例えば、画像出力装置登録プログラム185、ユーザ認証プログラム186、印刷ジョブ受信プログラム187、印刷データ送信プログラム188、レンダリングプログラム189を含む。また、プリントサービスプログラム184は、データベース190、印刷ジョブスプール領域191を含む。
画像出力装置登録プログラム185は、画像出力装置102から画像出力装置情報を取得してデータベース190に登録するプログラムである。ユーザ登録プログラムは、ユーザ登録を行うプログラムである。
印刷ジョブ受信プログラム187は、クライアント装置101から印刷ジョブを受信するプログラムである。印刷データ送信プログラム188は、印刷ジョブの取得要求元の画像出力装置102に対して印刷データ(を含む印刷ジョブ)を送信するプログラムである。レンダリングプログラム189は、レンダリング処理を行うプログラムである。
レンダリングプログラム189は、例えば、クライアント装置101から受信した印刷ジョブに応じたレンダリング処理を行って、画像出力装置102に送信する印刷データを生成する。データベース190は、画像出力装置情報を記憶する。また、データベース190は、ユーザファイル、その他設定ファイル等を記憶するための各種プログラムを記憶する。印刷ジョブスプール領域191は、クライアント装置101から受信された印刷ジョブを一時的に記憶する。
ネットワークI/F177は、インターネット106およびネットワーク104を介して、画像出力装置102に接続されている。これにより、ネットワークI/F177は、画像出力装置102に対するデータ転送(例えば、印刷ジョブの投入)が可能である。
図4乃至図7は、印刷システムの動作処理例を説明するシーケンス図である。前提として、既にクライアント装置101が、ネットワーク104を介して画像出力装置102にアクセス可能な状態であるものとする。また、クライアント装置101および画像出力装置102は、ゲートウェイ装置105およびインターネット106を介して、プリントサービスサーバ装置103にアクセス可能な状態であるものとする。図5中の符号1000が示す点線で囲った処理可変部分は、条件により処理が変わる部分である。処理可変部分1000は、条件によって、図6を参照して説明する処理または図7を参照して説明する処理に置き換わる。
図4および図5に示す動作処理例では、出力先画像出力装置102aが、印刷代行依頼判定を行った結果、自装置が印刷処理を実行すると判断する。印刷代行依頼判定は、自装置が印刷処理を実行するか、代行画像出力装置102bに対して印刷処理の代行を依頼するかのいずれにするかを判断する処理である。
図4において、ユーザが、クライアント装置101にプリンタドライバ134をインストールするために、プリンタドライバインストーラ136を起動する(ステップS201)。起動されたプリンタドライバインストーラ136が、プリンタドライバ134のインストールを実行する(ステップS202)。続いて、プリンタドライバインストーラ136が、インストールが完了した旨の通知をユーザに行う(ステップS203)。
次に、ユーザが、プリントキューの作成指示を行う(ステップS204)。プリントキューは、印刷ジョブを格納して出力するキューであって、印刷ジョブを実行する画像出力装置毎に作成される。プリントキューの作成指示に基づいて、クライアント装置101が備えるプリンタドライバ134がプリントキューを作成する(ステップS205)。
次に、ユーザが、ドキュメントを印刷するために、アプリケーション133でそのドキュメントを開き、プリントメニューを選択する(ステップS206)。続いて、アプリケーション133が、印刷設定ダイアログを表示する(ステップS207)。
印刷設定ダイアログは、印刷属性を設定するためのダイアログである。ユーザは、印刷設定ダイアログ上で、出力先画像出力装置102aとその印刷属性を設定するとともに、代行画像出力装置102bを設定する。この設定操作に従って、CPU111が、出力先画像出力装置102aと代行画像出力装置102bとを選択する選択手段として機能する。選択される代行画像出力装置102bは、出力先画像出力装置102aを管理するプリントサービスサーバ装置103が管理する画像出力装置のうち、出力先画像出力装置102aに代行して印刷処理を実行する画像出力装置である。
次に、ユーザが、印刷設定ダイアログをクローズして、印刷設定を完了させる。続いて、クライアント装置101のOS132が、設定された印刷属性をOS132の設定保存領域に保存する(ステップS209)。続いて、ユーザが、印刷を実行するために、アプリケーション133から印刷指示を行う(ステップS210)。この印刷指示に従って、プリンタドライバ134が印刷ジョブを生成する(ステップS211)。そして、プリンタドライバ134が、CPU111の指示に従って、印刷ジョブを、ジョブID、印刷属性設定、出力先画像出力装置ID、代行画像出力先IDとともに、プリントサービスサーバ装置103に送信する(ステップS212)。すなわち、プリンタドライバ134は、プリントサービスサーバ装置103に対して印刷ジョブを投入するジョブ投入手段として機能する。
ジョブIDは、印刷ジョブを一意に識別する識別情報である。印刷属性設定は、設定された印刷属性である。出力先画像出力装置IDは、出力先画像出力装置102aを一意に識別する識別情報である。代行画像出力装置IDは、代行画像出力装置102bを一意に識別する識別情報である。
次に、図5に進んで、クライアント装置101のプリンタドライバ134が、印刷ジョブに関する情報をネットワーク104上にマルチキャストする(ステップS213)。つまり、プリンタドライバ134が、印刷ジョブ送信マルチキャストを行う。印刷ジョブに関する情報は、印刷処理の実行を指示する情報(印刷指示情報)として機能し、ジョブID、出力先画像出力装置情報、代行画像出力先情報、印刷ジョブの量(ページ数)、プリントサービスサーバ装置のアドレス情報を含む。
出力先画像出力装置情報は、前述した出力先画像出力装置IDの他、出力先画像出力装置の印刷処理速度に関する情報を含む。代行画像出力装置情報は、前述した代行画像出力装置IDの他、代行画像出力装置の印刷処理速度に関する情報を含む。すなわち、プリンタドライバ134は、印刷処理の実行を指示する情報であって、少なくとも選択した出力先画像出力装置102aと代行画像出力装置102bに関する情報を含む印刷指示情報をネットワーク104上に同報する同報手段として機能する。
なお、この例では、プリンタドライバ134は印刷ジョブに関する情報をマルチキャストするが、プリンタドライバ134が、マルチキャスト以外の通信手法(例えば、ブロードキャスト)でネットワーク上に印刷ジョブに関する情報を送信するようにしてもよい。
ステップS214の処理以降の処理は、画像出力装置102が実行する処理である。まず、出力先画像出力装置102aと代行画像出力装置102bとが、プリンタドライバ134が送信した印刷ジョブ送信マルチキャストを受信する。具体的には、出力先画像出力装置102a、代行画像出力装置102bの各々のCPUが、印刷ジョブ送信マルチキャストが含む印刷指示情報を受信する指示受信手段として機能する。
出力先画像出力装置102が、印刷ジョブ送信マルチキャストに含まれるメッセージに基づいて、自装置が出力先画像出力装置として選択されているかを判断する。このメッセージが含む出力先画像出力装置情報が自装置を示す場合、出力先画像出力装置102aは、自装置が出力先画像出力装置として選択されていると判断する。図5に示す例では、出力先画像出力装置102aは、自装置が出力先画像出力装置として選択されていると判断する。
一方、代行画像出力装置102bは、印刷ジョブ送信マルチキャストに含まれるメッセージに基づいて、自装置が代行画像出力装置として選択されているかを判断する。このメッセージが含む代行画像出力装置情報が自装置を示す場合、代行画像出力装置102bは、自装置が代行画像出力装置102bとして選択されていると判断する。図5に示す例では、代行画像出力装置102bは、自装置が出力先画像出力装置として選択されていると判断する。
そして、代行画像出力装置102bは、出力画像出力装置102aから送信されるマルチキャストが含むメッセージ(マルチキャストメッセージ)を、予め決められた期間、監視する(ステップS214)。このマルチキャストメッセージは、例えば、後述するジョブ取得マルチキャストが含むメッセージ、または代行印刷依頼マルチキャストが含むメッセージである。後述するように、代行画像出力装置102bは、監視期間がタイムアウトしたかを判断し、監視期間がタイムアウトした場合は、マルチキャストメッセージの監視を中止する。図5に示す例では、監視期間がタイムアウトしないものとする(図6においても同様である)。
次に、出力先画像出力装置102aが、印刷ジョブ送信マルチキャストが含む代行画像出力装置情報に基づいて、当該代行画像出力装置情報に対応する代行画像出力装置に対して、装置ステータスの問い合わせを行う(ステップS215)。続いて、代行画像出力装置102bが、自装置の装置ステータスを示す情報を出力先画像出力装置102aに対して返信する(ステップS216)。
また、出力先画像出力装置102aは、プリントサービスサーバ装置103に対して、ジョブ取得が可能になる時間(ジョブ取得可能時間)を問い合わせする(ステップS217)。この問い合わせには、ジョブ取得可能時間に対応するジョブのジョブIDが含まれる。プリントサービスサーバ装置103は上記問い合わせが含むジョブIDに基づいて、対象となるジョブを特定する。
プリントサービスサーバ装置103は、特定したジョブの処理内容と、プリントサービスサーバ装置103内の印刷ジョブスプール領域191の状況とに基づいて、ジョブ取得可能時間を算出する。そして、プリントサービスサーバ装置103が、算出したジョブ取得可能時間を出力先画像出力装置102aに返信する(ステップS218)。
次に、出力先画像出力装置102aが、印刷代行依頼判定を実行する(ステップS219)。印刷代行依頼判定は、自装置が印刷処理を実行するか、代行画像出力装置102bに印刷処理の代行を依頼するかのいずれにするかを判断する処理である。出力先画像出力装置102aは、代行画像出力装置102bから受信した装置ステータスを示す情報と、プリントサービスサーバ装置103から受信したジョブ取得可能時間と、自装置のステータスを示す情報とに基づいて、自装置が印刷処理を実行するかを判断する。図4(A)に示す例では、出力先画像出力装置102aは、自装置が印刷処理を実行すると判断する。
次に、出力先画像出力装置102aが、プリントサービスサーバ装置103に対して、印刷ジョブの取得要求を送信する(ステップS220)。この印刷ジョブの取得要求は、対象となる印刷ジョブのジョブIDを含む。続いて、プリントサービスサーバ装置103が、印刷ジョブの取得要求が含むジョブIDに対応する印刷ジョブを、出力先画像出力装置102aに対して送信する(ステップS222)。
出力先画像出力装置102aは、プリントサービスサーバ装置103に対して印刷ジョブの取得要求を送信した後、ネットワーク104上に、ジョブ取得マルチキャストを行う(ステップS221)。ジョブ取得マルチキャストは、自装置が印刷ジョブを取得した(する)ことを示す情報を含むメッセージを有する。
代行画像出力装置102bが、ジョブ取得マルチキャストを受信する。代行画像出力装置102bは、ジョブ取得マルチキャストが含むメッセージに基づいて、出力先画像出力装置102aが印刷ジョブを取得したことを認識する。そして、代行画像出力装置102bが、マルチキャストメッセージの監視を停止する。出力先画像出力装置102aは、ステップS222においてプリントサービスサーバ装置103から受信した印刷ジョブを実行して(ステップS223)、印刷出力する(ステップS226)。
一方、プリントサービスサーバ装置103は、ステップS222において出力先画像出力装置102aに対して印刷ジョブを送信した後、印刷先メールをクライアント装置101に通知する(ステップS224)。印刷先メールは、どの画像出力装置が印刷ジョブを取得したかを通知する電子メールである。この例では、プリントサービスサーバ装置103は、出力先画像出力装置102aが印刷ジョブを取得したことを通知する印刷先メールをクライアント装置101に通知する。
クライアント装置101は、印刷先メールをユーザに通知する(ステップS225)。これにより、ユーザは、印刷処理を実際に実行する画像出力装置102を知ることができる。続いて、出力先画像装置102aは、印刷処理を完了した時点で、ジョブIDを指定して印刷ジョブ削除依頼をプリントサービスサーバ装置103に送信する(ステップS227)。プリントサービスサーバ装置103は、当該印刷ジョブ削除依頼において指定されたジョブIDを持つ印刷ジョブを削除する(ステップS228)。
図6に示す動作処理例では、出力先画像出力装置102aのCPU142が、印刷代行依頼判定を行った結果、代行画像出力装置102bに印刷処理の代行を依頼すると判断する。図6のステップS251乃至S256は、図5のステップS213乃至218と同様である。また、ステップS262乃至S266は、図5のステップS224乃至S228と同様である。
ステップS257において、出力先画像出力装置102aは、印刷代行依頼判定を行う。この印刷代行依頼判定において、出力先画像出力装置102aのCPU142は、例えば、当面自装置が復旧しないので、代行画像出力装置102bに印刷処理の代行を依頼すると判断する。
次に、出力先画像出力装置102aのCPU142が、ネットワーク104上に、代行印刷依頼マルチキャストを行う(ステップS258)。代行印刷依頼マルチキャストは、代行画像出力装置102bに対して出力先画像出力装置102aに代行して印刷処理を行うことを依頼するマルチキャストである。代行印刷依頼マルチキャストのメッセージは、印刷ジョブ送信マルチキャストが含む代行画像出力装置情報と、印刷処理の代行を指示する制御情報を含む。すなわち、CPU142は、代行画像出力装置102bに対して印刷処理の代行を依頼するメッセージをネットワーク104上に同報する代行依頼手段として機能する。
次に、代行画像出力装置102bが、代行印刷依頼マルチキャストを受け取る。代行画像出力装置102bは、受け取った代行印刷依頼マルチキャストが含む代行画像出力装置情報と、印刷処理の代行を指示する制御情報とに基づいて、自装置が印刷処理を実行すると判断する。続いて、代行画像出力装置102bが、当該印刷処理に対応する印刷ジョブの取得要求をプリントサービスサーバ装置103に対して行う(ステップS259)。続いて、プリントサービスサーバ装置103が、印刷ジョブの取得要求に対応する印刷ジョブを、代行画像出力装置102bに対して送信する(ステップS260)。そして、代行画像出力装置102bが、プリントサービスサーバ装置103から受信した印刷ジョブを実行して(ステップS261)、印刷出力する(ステップS264)。
図7に示す動作処理例では、出力先画像出力装置102aが、例えば故障による電源OFFなどの理由でネットワーク応答できない場合に、代行画像出力装置102bが印刷処理を実行する。図7のステップS283乃至S290は、図6のステップS259乃至S266と同様である。ステップS282において、代行画像出力装置102bが、出力先画像出力装置102aからのマルチキャストメッセージを監視する。この例では、監視期間がタイムアウトするものとする。従って、代行画像出力装置102bが、マルチキャストメッセージの監視を中止し、自装置が印刷処理を実行すると判断する。そして、代行画像出力装置102bが、プリントサービスサーバ装置103に対して印刷ジョブの取得要求を行う(ステップS283)。
図8は、プリントサービスサーバ装置への画像出力装置情報の登録処理の例を説明するフローチャートである。まず、クライアント装置101が備えるブラウザアプリケーションが、ユーザの指示に従って、プリントサービスサーバ装置103の設定ページを開く(ステップS301)。このために、ユーザは,ブラウザアプリケーション上で、プリントサービスサーバ装置103のURL(Uniform Resource Locator)のアドレスを入力し、プリントサービスサーバ装置103のサイトページを開く。この時、プリントサービスサーバ装置103のOS182が、ウェブサービスライブラリ183をRAM172にロードして実行する。これにより、OS182は、予め用意されているサイトページのデータを、ネットワークI/F177を介してクライアント装置101のブラウザアプリケーションに送信する。
続いて、ユーザが、プリントサービスサーバ装置103のサイトページからユーザ登録ページを開き、プリントサービスを利用するためのユーザIDとパスワードを入力して、プリントサービスサーバ装置103に送信する(ステップS302)。プリントサービスサーバ装置103のOS182は、このユーザIDとパスワードをユーザ登録情報として登録するために、ユーザ登録プログラム186をRAM172にロード、実行する。具体的には、OS182は、ユーザ登録情報をデータベース190に保存する。これにより、ユーザ登録(ユーザIDとパスワードの登録)が行われる。
次に、ユーザが、自分が操作する画像出力装置をプリントサービスサーバ装置103に登録する処理を行う。すなわち、クライアント装置101のブラウザアプリケーションが、ユーザの指示に従って、プリントサービスサーバ装置103の画像出力装置登録サイトページを開く。この時、プリントサービスサーバ装置103は、画像出力装置登録プログラム185に含まれるプラグインモジュールをクライアント装置101のブラウザアプリケーションに送信する。このプラグインモジュールは、これからユーザが入力する、画像出力装置を特定する情報を元に、当該画像出力装置から画像出力装置情報を取得するためのモジュールである。
続いて、ユーザが、画像出力装置登録サイトページにおいて、画像出力装置を特定する情報を入力する。この例では、ユーザは画像出力装置のIPアドレスを入力する。続いて、ブラウザアプリケーションによって受信されたプラグインモジュールが、ユーザが入力したIPアドレスを有する画像出力装置から、当該画像出力装置に対応する画像出力装置情報を取得する(ステップS303)。この画像出力装置情報は、例えば、画像出力装置ID、画像出力装置名、印刷処理速度(例えばページ/分)を含む。画像出力装置IDは、例えば、UUID(Universal Unique ID )である。
プラグインモジュールは、取得した画像出力装置情報をプリントサービスサーバ装置103に送信する(ステップS304)。プリントサービスサーバ装置103の画像出力装置登録プログラム185が、プラグインモジュールから受信した画像出力装置情報をデータベース190に登録する。ユーザが、複数台の画像出力装置の画像出力装置情報をプリントサービスサーバ装置103に登録したい場合は、ステップS303およびS304の処理が、当該複数台数分繰り返される。
なお、本実施形態では、プラグインモジュールが画像出力装置情報を取得するようにしたが、ユーザが手動で画像出力装置情報を入力して、ブラウザアプリケーションが入力された画像出力装置情報をプリントサービスサーバ装置103に送信するようにしてもよい。
図9は、プリントキューの作成処理の例を説明するフローチャートである。具体的には、図9は、図4のステップS201のプリンタドライバ134のインストールからステップS205のプリントキュー作成までの処理を示す。
クライアント装置101にインストールされるプリンタドライバ134は、特定のプリントサービスサーバ装置103を出力先とするプリンタドライバである。従って、このプリンタドライバ134を使用して作成されたプリントキューに対応する印刷ジョブの出力先は、当該特定のプリントサービスサーバ装置103となる。プリントキューの作成時に、ユーザが、使用するプリントサービスサーバ装置のアドレスを入力し、プリンタドライバ134が、このアドレスに対応するプリントサービスサーバ装置を印刷ジョブの出力先とするようにしてもよい。
まず、ユーザの指示に従って、クライアント装置101上でプリンタドライバインストーラ136が立ち上がる。続いて、クライアント装置101のCPU111が、外部メモリ131に保存されているプリンタドライバインストーラ136をRAM112にロードして実行する。これにより、プリンタドライバインストーラ136が、プリントキュー作成を行うために必要なファイルをクライアント装置101の外部メモリ131内のプリンタドライバ格納領域134に格納する(ステップS311)。これにより、プリントキュー作成のために必要なプリンタドライバ134がクライアント装置101にインストールされる。
次に、上記インストールされたプリンタドライバ134が、プリントキューダイアログを表示する。プリントキューダイアログは、プリントキューを作成するためのUI(User Interface)である。
図15は、プリントキューダイアログの例を説明する図である。図15(A)に示すプリントキューダイアログ401は、プリンタの追加ボタン402を有する。プリンタの追加ボタン402は、プリントキューを追加するためのボタンである。図15(A)に示す符号403は、既に作成されたプリントキューを示す。この例では、プリンタBに対応するプリントキューと、プリンタCに対応するプリントキューとが表示されている。プリンタBは、画像出力装置B(102b)を示す。また、プリンタCは、画像出力装置C(102c)を示す。
ユーザは、プリントキューを追加するために、プリンタの追加ボタン402をクリックする。このクリック操作に従って、クライアント装置101のOS132が、プリンタドライバファイルをRAM112にロードし、CPU111に実行させる。これにより、図9のステップS312において、プリンタドライバ134が、プリントサービスID入力ダイアログを表示する。プリントサービスID入力ダイアログは、プリンタドライバ134がプリントサービスサーバ装置103に接続するために必要なユーザIDとパスワード(図8のステップS302において登録されたユーザIDとパスワード)とを入力するためのUIである。
図9に戻って、プリンタドライバ134が、プリントサービスID入力ダイアログ上において入力されたユーザIDとパスワードを受け付ける(ステップS313)。
図16は、プリントサービスID入力ダイアログと、画像出力装置リストダイアログと、代行プリンタ選択ダイアログの例を示す図である。図16(A)は、プリントサービスID入力ダイアログの例を示す。プリントサービスID入力ダイアログ501は、ユーザID入力ボックス502、パスワード入力ボックス503、OKボタン504を備える。ユーザID入力ボックス502には、ユーザIDが入力される。パスワード入力ボックス503には、パスワードが入力される。OKボタン504がクリックされると、ユーザIDとパスワードとがプリンタドライバ134に入力される。
図9に戻って、プリンタドライバ134が、入力されたユーザIDとパスワードとをプリントサービスサーバ装置103に送信する。プリントサービスサーバ装置103が、プリンタドライバ134から送信されたユーザIDとパスワードとを受信する。
そして、画像出力装置登録プログラム185が、当該ユーザIDに対応するユーザが登録した画像出力装置情報をデータベース190から取得し、プリンタドライバ134に返信する。これにより、プリンタドライバ134が、当該ユーザに対応する画像出力装置情報を取得する(ステップS314)。この例では、プリンタドライバ134が複数台の画像出力装置の画像出力装置情報を取得するものとする。従って、ステップS315において、プリンタドライバ134は、画像出力装置リストダイアログを表示する。画像出力装置リストダイアログは、取得した画像出力装置情報が示す画像出力装置のうち、どの画像出力装置に対応するプリントキューを作成するかを選択するためのUIである。
図16(B)は、画像出力装置リストダイアログの例を示す。画像出力装置リストダイアログ511は、画像出力装置選択ダイアログ512とOKボタン513を有する。画像出力装置選択ダイアログ512には、図9のステップS314においてプリンタドライバ134が取得した画像出力装置情報に対応する画像出力装置のリストが選択可能に表示される。ユーザが、画像出力装置選択ダイアログ512上で画像出力装置を選択してOKボタン513をクリックすると、当該画像出力装置が選択されたことがプリンタドライバ134に通知される。
図9に戻って、プリンタドライバ134が、ユーザが選択した画像出力装置に対応するプリントキューを作成する(ステップS316)。例えば、ユーザが、プリンタAを選択した場合を想定する。プリンタAは、画像出力装置A(102a)に実行させる印刷ジョブを出力するプリントキューである。すなわち、この例では、ユーザは、画像出力装置Aを選択したことになる。
ユーザが、OKボタン513をクリックすると、プリンタドライバ134に対して、プリンタAが選択されたことが通知される。この通知を受けたプリンタドライバ134が、プリンタAを作成する。プリンタドライバ134は、作成したプリントキューに関する情報を画像出力装置情報保存領域135に記憶する。プリントキューに関する情報は、少なくとも、当該プリントキューが印刷ジョブの出力先とするプリントサービスサーバ装置103を示す情報と、当該プリントキューが出力する印刷ジョブを実行する画像出力装置を示す情報とを含む。プリントキューが印刷ジョブの出力先とするプリントサービスサーバ装置103は、当該プリンタドライバ134が出力先として設定しているプリントサービスサーバ装置103である。
図15(B)は、プリンタAが作成された時のプリンタダイアログを示す。符号404は、プリントキューとしてのプリンタAを示す。プリンタBは、画像出力装置B(102b)に実行させる印刷ジョブを出力するプリントキューである。プリンタCは、画像出力装置C(102c)に実行させる印刷ジョブを出力するプリントキューである。なお、プリンタAとプリンタBとは、同じプリントサービスサーバ装置103を出力先にしているものとする。また、プリンタCは、プリンタA、Bが出力先にしているプリントサービスサーバ装置103とは異なるプリントサービスサーバ装置を出力先にしているものとする。
図9に戻って、プリンタドライバ134が、ステップS314で取得した画像出力装置情報のうち、画像出力装置リストダイアログ511上でユーザが選択した画像出力装置の画像出力装置情報を画像出力装置情報保存領域135に保存する(ステップS317)。例えば、プリンタドライバ134は、画像出力装置A、B、Cの各々の画像出力装置情報を画像出力装置情報保存領域135に保存する。
ここまでの手順で、プリンタA、B、Cというプリントキューが作成された。以下では、ユーザが、代行画像出力装置を選択した上で、印刷ジョブを出力先画像出力装置に対して出力する印刷処理の例について説明する。この印刷処理においては、ユーザは,アプリケーションからドキュメントを印刷する際に、プリンタAを指定して印刷設定を行う。すなわち、ユーザは、画像出力装置Aを出力先画像出力装置102aとして指定する。また、ユーザは、画像出力装置Aが出力先とするプリントサービスサーバ装置と同じプリントサービスサーバ装置を出力先とする画像出力装置である画像出力装置Bを代行画像出力装置102bとして指定する。
なお、画像出力装置Aの画像出力装置IDは、”c4aa5f44−4ae5−48e5−8f2a−7ddf46d30c49”であるものとする。また、画像出力装置Bの画像出力装置IDは、”178ae8c1−e341−43a5−94ad−b47856b748be”であるものとする。これらの画像出力装置IDは、画像出力装置情報保存領域135に保存されている画像出力装置情報に含まれる。また、ユーザが印刷指示を行った際にプリンタドライバ134が生成する印刷ジョブのジョブIDは、”6bdd1fc6−810f−11d0−bec7−08002be2092f”であるものとする。
図10は、印刷ジョブ送信マルチキャストの実行処理の例を説明するフローチャートである。まず、ユーザが、印刷を行うためにクライアント装置101上でアプリケーションを立ち上げ、印刷するドキュメントを開く。その後、ユーザが、アプリケーションのメニューからプリントメニューを選択する。
この選択操作により、クライアント装置101のOS132が、プリンタドライバ134をRAM112にロードし、CPU111に実行させる。これにより、プリンタドライバ134が、印刷設定ダイアログ(不図示)を表示する。印刷設定ダイアログは、印刷ジョブに対応する印刷設定をするためのUIである。この印刷設定ダイアログ上で、ユーザが、出力プリンタすなわち印刷ジョブを出力するプリントキューとしてプリンタAを選択する。また、ユーザは、印刷設定ダイアログ上で、出力プリンタに対応する印刷ジョブの印刷設定を行う。これにより、プリンタAに対応する画像出力装置Aが出力先画像出力装置102aとして選択されるとともに、プリンタAが出力する印刷ジョブの印刷設定がされる。
プリンタドライバ134が、ユーザが行った印刷設定を受け付ける(ステップS331)。ステップS331においては、プリンタドライバ134が、代行プリンタ選択ダイアログを表示する。代行プリンタ選択ダイアログは、代行プリンタを選択するためのUIである。代行プリンタは、代行画像出力装置102bに実行させる印刷ジョブを出力するプリントキューである。従って、代行プリンタ選択ダイアログは、代行画像出力装置102bを選択する機能を有する。プリンタドライバ134が、代行プリンタ選択ダイアログ上でのユーザの操作に従って、代行プリンタの入力を受け付ける。この例では、プリンタBが代行プリンタとして選択されるものとする。つまり、画像出力装置Bが代行画像出力装置102bとして選択される。
図16(C)は、代行プリンタ選択ダイアログの例である。代行プリンタ選択ダイアログ601は、チェックボックス602、代行プリンタ選択リスト603、OKボタン604、キャンセルボタン605を有する。
チェックボックス602は、代行プリンタを選択するか否かを示す。チェックが入った状態のチェックボックス602は、代行プリンタを選択することを示す。代行プリンタ選択リスト603には、代行プリンタの候補のリストが選択可能に表示される。OKボタン604は、クリックされることによって、代行プリンタ選択ダイアログの設定を有効にして閉じるボタンである。キャンセルボタン605は、代行プリンタ選択ダイアログの設定を無効にして閉じるボタンである。
プリンタドライバ134は、上述した代行プリンタの候補を以下のようにして決定る。プリンタドライバ134は、代行プリンタ選択ダイアログ601を表示する際に、画像出力装置情報保存領域135に記憶されているプリントキューに関する情報を参照して、以下の処理を実行する。プリンタドライバ134は、プリンタA以外のプリントキューのうち、プリンタAが出力先とするプリントサービスサーバ装置103を出力先とするプリントキューを代行プリンタの候補として決定する。そして、プリンタドライバ134は、決定した代行プリンタの候補を代行プリンタ選択リスト603に表示する。
図10に戻って、ユーザが印刷指示を行う。この指示に従って、クライアント装置101のプリンタドライバ134が、印刷ジョブを生成して、出力プリンタに格納する。。そして、プリンタドライバ134が、出力プリンタに格納した当該印刷ジョブをプリントサービスサーバ装置103に送信する(ステップS332)。なお、プリンタドライバ134は、印刷ジョブ以外に、ジョブID、出力先画像出力装置ID、代行画像出力装置ID、ジョブチケットをプリントサービスサーバ装置103に送信する。
ジョブIDは、印刷ジョブを一意に識別する識別情報である。プリンタドライバ134が印刷ジョブを生成する時に、この印刷ジョブのジョブいDを生成する。ジョブIDは、例えばUUIDである。ジョブIDとして、他の任意のIDを用いてもよい。出力先画像出力装置IDは、画像出力装置情報保存領域135に保存されている画像出力装置IDのうち、出力先画像出力装置102aに対応する画像出力装置IDである。代行画像出力装置IDは、画像出力装置情報保存領域135に保存されている画像出力装置IDのうち、代行画像出力装置102bに対応する画像出力装置IDである。ジョブチケットは、ユーザが印刷設定ダイアログ上で設定した印刷設定を含む。ジョブチケットは、印刷属性を記述できる任意のフォーマットとすることができる。
図10のステップS333において、プリンタドライバ134が、ネットワーク104上に、印刷ジョブ送信マルチキャストを行って、処理を終了する。印刷ジョブ送信マルチキャストは、印刷ジョブを送信したことをネットワーク104上にマルチキャストすることである。印刷ジョブ送信マルチキャストは、印刷ジョブが送信されたことを示す情報、ジョブID、出力先画像出力装置ID、代行画像出力装置ID、出力先画像出力装置の印刷処理速度、代行画像出力装置の印刷処理速度を含む。出力先画像出力装置IDは、画像出力装置情報保存領域135に保存されている画像出力装置の印刷処理速度のうち、出力先画像出力装置102aに対応する画像出力装置の印刷処理速度である。代行画像出力装置の印刷処理速度は、画像出力装置情報保存領域135に保存されている画像出力装置の印刷処理速度のうち、代行画像出力装置102bに対応する画像出力装置の印刷処理速度である。
図17は、ネットワーク上に送信されるメッセージの例を示す図である。図17(A)は、印刷ジョブ送信マルチキャストが含むメッセージ(マルチキャストメッセージ)700を示す。マルチキャストメッセージ700は、キーと値とを有する。キーは、英数文字最後に「:」(コロン)を付与し、その後にそのキーに対応する値を記述するフォーマットを有する。また、キーと値との組の最後には改行が入る。このフォーマットは一例であり、キーと値とが対応づけられるフォーマットであれば他のフォーマットでもよい。
図17(A)に示すマルチキャストメッセージ700において、符号701は、このマルチキャストの種類を識別するメッセージキーである。この例では、”Sent Print Job”という値がメッセージキーとして設定されている。”Sent Print Job”は、印刷ジョブが送信されたこと、すなわち、このメッセージが印刷ジョブ送信マルチキャストのメッセージであることを示す。
符号702は、ジョブIDを示す。このジョブIDは、このマルチキャストメッセージ700の送信元のプリンタドライバ134が送信した印刷ジョブのジョブIDである。符号703は、出力先画像出力装置IDである。この例では、出力先画像出力装置は、画像出力装置AのIDを示す。送信元のプリンタドライバ134が、画像出力装置情報格納領域135から当該出力先画像出力装置IDを取得し、このマルチキャストメッセージ700に設定する。マルチキャストメッセージ700を受信した画像出力装置がマルチキャストメッセージを解析することにより、自装置が出力先画像出力装置に指定されているか否かを判断する。
符号704は、代行画像出力装置IDである。この例では、代行画像出力装置IDは、画像出力装置BのIDを示す。送信元のプリンタドライバ134が、画像出力装置情報格納領域135から当該代行画像出力装置IDを取得し、マルチキャストメッセージ700に設定する。このマルチキャストメッセージを受信した画像出力装置がマルチキャストメッセージ700を解析することにより、自装置が代行画像出力装置に指定されているか否かを判断する。
符号705は、出力先画像出力装置102aの印刷処理速度を示す。この例では、出力先画像出力装置102aの印刷処理速度は、60ページ/分である。符号706は、代行画像出力装置102bの印刷処理速度を示す。この例では、代行画像出力装置102bの印刷処理速度は、30ページ/分である。
符号707は、プリンタドライバ134が生成した印刷ジョブのページ数である。この例では、印刷ジョブのページ数は35ページである。符号708は、印刷ジョブの取得先アドレスである。印刷ジョブの取得先アドレスは、自装置が印刷処理を実行すると判断した画像出力装置が印刷ジョブの取得要求先とするプリントサービスサーバ装置のアドレスである。この例では、印刷ジョブの取得先アドレスは、http://pservice.abc.jp/ipp/である。
なお、画像出力装置がプリントサービスサーバ装置103から印刷ジョブを取得する際には、例えば、上述したhttp://pservice.abc.jp/ipp/に接続し、自装置の画像出力装置IDと取得する印刷ジョブのジョブIDとを送信する。一方、プリントサービスサーバ装置103は、画像出力装置IDが登録されているか確認し、登録されていれば、その画像出力装置用の印刷ジョブのうち、画像出力装置から受信したジョブIDに対応する印刷ジョブを画像出力装置に送信する。
図11は、図5中の処理可変部分1000に対応する画像出力装置の処理の例を説明するフローチャートである。以降の説明において言及するジョブID、出力先画像出力装置ID、代行画像出力装置IDは、図17(A)に示すマルチキャストメッセージ700が含むジョブID、出力先画像出力装置ID、代行画像出力装置IDと同じであるものとする。
まず、画像出力装置102が、ネットワーク104上に送信されるパケットを監視して受信する(ステップS341)。ステップS341においては、画像出力装置102が備えるCPU142が、外部メモリ151に保存されている印刷制御プログラム154をRAM143にロードし、実行する。印刷制御プログラム154が、ネットワークI/F145を監視して、パケットを受信する。
次に、画像出力装置102が、受信したパケットの種類を確認して、当該パケットが含むメッセージが、印刷ジョブ送信マルチキャストのメッセージであるかを判断する(ステップS342)。画像出力装置102は、当該メッセージが含むメッセージキーを参照し、このメッセージキーの値として”Sent Print Job”が設定されている場合、このメッセージが印刷ジョブ送信マルチキャストのメッセージであると判断する。そして、処理がステップS344に進む。
パケットが含むメッセージが、印刷ジョブ送信マルチキャストのメッセージでない場合、画像出力装置102は、当該パケットに応じた処理を実行して(ステップS343)、ステップS341に進む。例えば、パケットが印刷ジョブを含む場合、画像出力装置102は、当該印刷ジョブを実行する。また、パケットが画像出力装置102の構成情報の送信を求める要求である場合、画像出力装置102は、要求元に構成情報を返信する。
ステップS344において、画像出力装置102内で動作している印刷制御プログラム154が、印刷ジョブ送信マルチキャストのメッセージ内容を抽出する。受信されたパケットが含むメッセージが、例えば図17(A)に示すメッセージ700である場合、印刷制御プログラム154は、このメッセージが含む情報を抽出する。例えば、印刷制御プログラム154は、ジョブIDとして、”6bdd1fc6−810f−11d0−bec7−08002be2092f”を抽出する。
また、印刷制御プログラム154は、出力先画像出力装置IDとして”c4aa5f44−4ae5−48e5−8f2a−7ddf46d30c49”を抽出する。また、印刷制御プログラム154は、代行画像出力装置IDとして、”178ae8c1−e341−43a5−94ad−b47856b748be”を抽出する。また、印刷制御プログラム154は、このメッセージから、印刷ジョブの取得先アドレスとして”http://pservice.abc.jp/ipp/”を抽出する。
上記抽出された情報によれば、出力先画像出力装置102aは、画像出力装置A(102a)、代行画像出力装置は画像出力装置B(102b)であることがわかる。印刷制御プログラム154は、上記抽出された情報を外部メモリ151内のマルチキャストデータ保存領域155に保存する。
次に、画像出力装置102のCPUが、自装置が出力先画像出力装置102aであるか、代行画像出力装置102bであるか、いずれでもないかを判断する(ステップS345)。すなわち、画像出力装置102のCPU142は、上記メッセージから抽出された情報が含む出力先画像出力装置IDと代行画像出力装置IDとに基づいて、ステップS345の判断処理を実行する第1の判断手段として機能する。
画像出力装置102は、自装置の画像出力装置IDが上記メッセージから抽出された情報が含む出力先画像出力装置IDと一致する場合、自装置が出力先画像出力装置102aであると判断して、ステップS347に進む。そして、画像出力装置102が、印刷代行依頼判定を行う(ステップS347)。
画像出力装置102は、自装置の画像出力装置IDが上記メッセージから抽出された情報が含む代行画像出力装置IDと一致する場合、自装置が代行画像出力装置102bであると判断して、ステップS346に進む。そして、画像出力装置102が、代行画像出力装置処理を実行する(ステップS346)。この例では、画像出力装置Bが代行画像出力装置処理を実行する。
画像出力装置102は、自装置の画像出力装置IDが出力先画像出力装置IDと代行画像出力装置IDとのいずれとも一致しない場合、自装置が出力先画像出力装置102a、代行画像出力装置102bのいずれでもないと判断する。そして、処理がステップS341に戻る。
次に、画像出力装置102が、印刷代行依頼判定の結果に基づいて、自装置が印刷処理を実行するかを判断する(ステップS348)。画像出力装置102が、自装置が印刷処理を実行すると判断した場合は、ステップS350に進む。そして、画像出力装置102のCPU142が、プリントサービスサーバ装置103から印刷ジョブを取得し、この印刷ジョブを実行する(ステップS350)。すなわち、CPU142は、印刷処理に対応する印刷ジョブをプリントサービスサーバ装置103から取得して実行するジョブ実行手段として機能する。
ステップS350における処理について説明する。まず、画像出力装置102が、マルチキャストデータ保存領域155に保存されているジョブIDを取得する。例えば、画像出力装置102は、ジョブIDとして”6bdd1fc6−810f−11d0−bec7−08002be2092f”を取得する。次に、画像出力装置102は、マルチキャストデータ保存領域155に保存されている、印刷ジョブの取得先アドレスを取得する。画像出力装置102は、取得した印刷ジョブの取得先アドレスが示すプリントサービスサーバ装置103に対して、ジョブIDと自身の画像出力装置IDを含む印刷ジョブの取得要求を行う。そして、画像出力装置102が、プリントサービスサーバ装置103から印刷ジョブの取得要求に対する応答として印刷ジョブを取得する。
次に、画像出力装置102のCPU142が、ジョブ取得マルチキャストをネットワーク104に同報する(ステップS351)。すなわち、CPU142は、以下の処理を実行するジョブ取得同報手段として機能する。CPU142は、自装置が印刷処理を実行すると判断し(S348でYes)、印刷ジョブをプリントサービスサーバ装置103から取得した場合に、自装置が印刷ジョブを取得したことを示すメッセージをネットワーク104上に同報する。
図17(B)は、ジョブ取得マルチキャストが含むメッセージ720の例を示す。符号721は、このマルチキャストの種類を識別するメッセージキーである。この例では、”Destination Printer Pulled Print Job”という値がメッセージキーとして設定されている。”Destination Printer Pulled Print Job”は、このメッセージの送信元の画像出力装置が印刷ジョブを取得したことを示す。
図11に戻って、画像出力装置102が、プリントサービスサーバ装置103に対して、印刷ジョブの削除要求を行って(ステップS352)、ステップS341に戻る。
上記ステップS348における判断処理によって、画像出力装置102が、自装置が印刷処理を実行しないと判断した場合、画像出力装置102は、代行印刷依頼マルチキャストをネットワーク104上に同報して(ステップS349)、ステップS341に戻る。
図17(C)は、代行印刷依頼マルチキャストのメッセージ740の例を示す。符号741は、このマルチキャストの種類を識別するメッセージキーである。この例では、”Destination Printer Cannot Pull Print Job”という値がメッセージキーとして設定されている。メッセージキーの値”Destination Printer Cannot Pull Print Job”は、このメッセージが代行印刷依頼マルチキャストのメッセージであることを示す。
すなわち、このメッセージキーの値は、印刷処理の代行を、符号744が示す代行画像出力装置IDに対応する代行画像出力装置に対して指示する制御情報として機能する。符号744は、代行画像出力装置IDを示す。この代行画像出力装置IDは、図17(A)に示す印刷ジョブ送信マルチキャストのメッセージが含む代行画像出力装置IDである。この代行画像出力装置IDに対応する代行画像出力装置が、図17(C)に示す代行印刷依頼マルチキャストを受信すると、以下の処理を実行する。代行画像出力装置は、出力先画像出力装置102aの代わりに、印刷ジョブをプリントサービスサーバ装置103から取得し、実行する。
図12は、図11のステップS347における印刷代行依頼判定の例を説明するフローチャートである。本実施形態では、画像出力装置A(102a)が出力先画像出力装置であり、画像出力装置B(102b)が代行画像出力装置であると想定している。従って、図12の説明においては、処理の主体を画像出力装置Aと記述する。
まず、画像出力装置Aが、自装置が印刷可能状態(レディー状態)であるかを確認する(ステップS361)。続いて、画像出力装置Aが、ステップS361における確認結果に基づいて、自装置が印刷可能であるかを判断する(ステップS362)。
画像出力装置Aが、自装置が印刷可能であると判断した場合は、ステップS370に進む。画像出力装置Aが、自装置が印刷可能でないと判断した場合は、ステップS363に進む。
次に、画像出力装置AのCPU142が、代行画像出力装置である画像出力装置Bが印刷可能状態(レディー状態)であるかを確認する(ステップS363)。ステップS363における処理について説明する。画像出力装置Aが、ステータス要求マルチキャストをネットワーク104上に同報する。ステータス要求マルチキャストは、代行画像出力装置の印刷状態の送信を求める情報を含む。
図17(D)は、ステータス要求マルチキャストのメッセージ760の例を示す。符号761は、このマルチキャストの種類を識別するメッセージキーである。この例では、”Request Status”という値がメッセージキーとして設定されている。このメッセージキーの値”Request Status”は、このメッセージがステータス要求マルチキャストのメッセージであることを示す。具体的には、このメッセージは、符号763が示す代行画像出力装置IDに対応する代行画像出力装置の印刷状態の送信を求めるメッセージである。
画像出力装置AのCPU142は、この代行画像出力装置IDとして、印刷ジョブ送信マルチキャストのメッセージが含む代行画像出力装置IDを用いる。符号762は、このメッセージの送信元の画像出力装置(画像出力装置A)の画像出力装置IDである。このステータス要求マルチキャストを画像出力装置Bが受信して、自装置の印刷状態を画像出力装置Aに返信する(ステータス応答マルチキャストを同報する)。
すなわち、CPU142は、自装置が出力先画像出力装置102aであると判断した場合に、印刷ジョブ送信マルチキャストのメッセージが含む代行画像出力装置IDに基づいて、該代行画像出力装置から装置状態を取得する取得手段として機能する。
図17(E)は、ステータス応答マルチキャストのメッセージ780の例を示す。符号781は、このマルチキャストの種類を識別するメッセージキーである。この例では、”Reply Status”という値がメッセージキーとして設定されている。このメッセージキーの値”Reply Status”は、このメッセージがステータス応答マルチキャストのメッセージであることを示す。具体的には、このメッセージは、符号783が示す代行画像出力装置IDに対応する代行画像出力装置が、符号784が示す自装置の印刷状態を符号782が示す画像出力装置に対して応答するメッセージである。
この例では、符号784が示すStatusキーの値として、”Ready to Print”が設定されている。従って、代行画像出力装置(画像出力装置B)が印刷可能状態である。なお、画像出力装置Bが印刷可能状態でない場合、Statusキーの値として、”Busy”が設定される。
図12に戻って、画像出力装置Aが、画像出力装置Bからステータス応答マルチキャストを受信する。画像出力装置Aは、受信したステータス応答マルチキャストのメッセージ内容に基づいて、画像出力装置Bが印刷可能状態であるかを判断する(ステップS364)。画像出力装置Bが印刷可能状態でない場合は、ステップS370に進む。画像出力装置Bが印刷可能状態である場合は、ステップS365に進む。
なお、画像出力装置Bが何らかの理由で応答できない場合、ステータス応答マルチキャストは送信されない。この場合には、画像出力装置Aは、予め決められた期間が経過したか(タイムアウトしたか)を判断する。画像出力装置Aが、タイムアウトしたと判断した場合、画像出力装置Aは、画像出力装置Bが印刷可能状態でないと判断して、ステップS370に進む。
ステップS365において、画像出力装置Aが、自装置の状態を確認する(ステップS365)。そして、画像出力装置Aが、確認した自装置の状態に基づいて、自装置の復旧時間を算出できるかを判断する(ステップS366)。具体的には、画像出力装置Aが、自装置の状態が、外部要因により復旧することができる状態、内部要因により復旧することができる状態のいずれであるかを判断する。
外部要因により復旧することができる状態は、例えば、出力用紙なし、トナーなし、あるいはサービスパーソンメンテナンス中などの状態である。内部要因により復旧することができる状態は、例えば、スリープ中、画質調整のためのキャリブレーション中、ジョブキューにジョブがある状態である。
自装置の状態が、内部要因により復旧することができる状態である場合、画像出力装置Aは、自装置の復旧時間を算出できると判断して、ステップS367に進む。自装置の状態が、外部要因により復旧することができる状態である場合、画像出力装置Aは、自装置の復旧時間を算出できないと判断して、ステップS371に進む。
ステップS367において、画像出力装置Aが、プリントサービスサーバ装置103に対して、印刷ジョブの取得可能時間を問い合わせて、印刷ジョブの取得可能時間を取得する(ステップS367)。問い合わせ対象となる印刷ジョブは、印刷ジョブ送信マルチキャストのメッセージ(図17(A))によって指示される印刷処理に対応する印刷ジョブである。
印刷ジョブの取得可能時間は、印刷ジョブの印刷属性設定と印刷ジョブの量とに依存している。すなわち、プリントサービスサーバ装置103は、印刷ジョブを受信した後、順次ページ処理していくが、例えば、通常の印刷設定の場合は、1ページ目の処理が終わった段階で画像出力装置へ印刷ジョブを送信することが可能となる。
また、例えば、製本印刷設定の場合は、プリントサービスサーバ装置103は、全ページの処理が終わり製本レイアウトを行う面付けが終わってからはじめて画像出力装置へ印刷ジョブを送信することが可能となる。また、プリントサービスサーバ装置103の印刷ジョブキューに保持している印刷ジョブの量が多い場合には、画像出力装置が印刷ジョブを取得する時間が長くなる。従って、プリントサービスサーバ装置103は、印刷ジョブの印刷属性設定と印刷ジョブの量とに基づいて、印刷ジョブの取得可能時間を算出して画像出力装置Aに送信する。
次に、画像出力装置AのCPU142が、自装置が印刷処理を実行した場合の印刷出力時間と、画像出力装置Bが印刷処理した場合の印刷出力時間とを算出する(ステップS368)。すなわち、CPU142は、自装置装置の状態が印刷可能状態でなく、かつ画像出力装置Bが印刷可能状態である場合に(S362でNo,S364でYes)以下の処理を実行する。CPU142は、画像出力装置Aの印刷出力時間(第1の印刷処理時間)と、画像出力装置Bの印刷出力時間(第2の印刷処理時間)とを算出する。
以下に、ステップS368における処理について説明する。まず、画像出力装置AのCPU142は、自装置の復旧時間を算出する。そして、CPU142は、下記の式(1)に従って、画像出力装置Aの印刷出力時間を算出する。
画像出力装置Aの印刷出力時間=MAX(復旧時間,印刷ジョブの取得可能時間)+ジョブキュー印刷ジョブの印刷時間+プリントサービスサーバ装置から取得する印刷ジョブの印刷時間・・・式(1)
式(1)において、MAX(復旧時間,印刷ジョブの取得可能時間)は、復旧時間と印刷ジョブの取得可能時間のいずれか大きいほうを示す。ジョブキュー印刷ジョブの印刷時間は、画像出力装置Aが備えるジョブキューに格納されている印刷ジョブを実行するのにかかる時間である。プリントサービスサーバ装置から取得する印刷ジョブの印刷時間(以下、印刷時間A)は、画像出力装置Aがプリントサービスサーバ装置103から取得する印刷ジョブの実行にかかる時間である。
また、画像出力装置Aは、下記の式(2)に従って、画像出力装置Bの印刷出力時間を算出する。
画像出力装置Bの印刷出力時間=印刷ジョブの取得可能時間+プリントサービスサーバ装置から取得する印刷ジョブの印刷時間
式(2)において、プリントサービスサーバ装置から取得する印刷ジョブの印刷時間(以下、印刷時間B)は、画像出力装置Bがプリントサービスサーバ装置103から取得する印刷ジョブの実行にかかる時間である。
画像出力装置Aは、印刷時間A,Bを、印刷ジョブ送信マルチキャスト(図17(A))に設定されている印刷ジョブのページ数(707)と印刷処理速度(705,706)に基づいて算出する。
例えば、ユーザが印刷するドキュメントは60ページであり、画像出力装置Aの印刷処理速度は60ページ/分、画像出力装置Bの印刷処理速度は30ページ/分であるものとする。画像出力装置Aは、60ページを画像出力装置Aの印刷処理速度で除算する。これにより、画像出力装置Aは、印刷処理速度Aとして、1分を算出する。画像出力装置Aは、60ページを画像出力装置Bの印刷処理速度で除算する。これにより、画像出力装置Aは、印刷処理速度Bとして、2分を算出する。
ここで、印刷ジョブの取得可能時間が100秒後、画像出力装置Aの復旧時間が250秒後であるものとする。また、画像出力装置Aのジョブキューには印刷ジョブがないものとする。この場合、画像出力装置A,Bの印刷出力時間は、以下のようになる。
画像出力装置Aの印刷出力時間=MAX(250秒,100秒)+0+60/60分=310秒
画像出力装置Bの印刷出力時間=100秒+60/30分=220秒
すなわち、CPU142は、少なくとも、画像形成装置Aの印刷処理速度と、印刷ジョブの量と、印刷ジョブの取得可能時間とに基づいて、画像形成装置Aに対応する印刷出力時間を算出する。また、CPU142は、少なくとも、画像形成装置Bの印刷処理速度と、印刷ジョブの量と、印刷ジョブの取得可能時間とに基づいて、画像形成装置Bに対応する印刷出力時間を算出する。
次に、画像出力装置Aは、画像出力装置Aの印刷出力時間と画像出力装置Bの印刷出力時間とを比較して、画像出力装置Aの印刷出力時間のほうが短いかを判断する(ステップS369)。画像出力装置Aの印刷出力時間のほうが短い場合、画像出力装置Aは、自装置が印刷処理を実行すると判断する(ステップS370)。
画像出力装置Aの印刷出力時間のほうが長い場合、画像出力装置Aは、自装置が印刷処理を実行しないと判断する(ステップS371)。具体的には、画像出力装置AのCPU142が、画像出力装置Bに印刷処理の代行を依頼すると判断する。画像出力装置Aが上記ステップS369の判断処理をすることによって、自装置または画像出力装置Bのうち、トータルで印刷出力時間が短いほうを、印刷処理を実行する画像出力装置として決定することができる。
上記のステップS363乃至S370の処理に関する説明から、画像出力装置AのCPU142は、画像出力装置Aの装置状態と、画像出力装置Bの装置状態とに基づいて、以下の判断処理を実行する(第2の判断手段である)。CPU142は、画像出力装置Aがクライアント装置101が同報した印刷ジョブマルチキャストが指示する印刷処理を実行するか、または画像出力装置Bに該印刷処理の代行を依頼するかを判断する。
また、画像出力装置AのCPU142は、自装置の装置状態が印刷可能状態である場合(S362でYes)に、画像出力装置Aが印刷処理を実行すると判断する(S370)。また、CPU142は、自装置装置の状態が印刷可能状態でなく、かつ画像出力装置Bが印刷可能状態でない場合(S362でNo,S364でYes)に、画像出力装置Aが印刷処理を実行すると判断する(S370)。
図13は、図11のステップS346における代行画像出力装置処理の例を説明するフローチャートである。まず、代行画像出力装置102bである画像出力装置BのCPU142が、ネットワーク104上に同報される、出力先画像出力装置102aである画像出力装置Aからのマルチキャストのメッセージを監視する(ステップS381)。すなわち、CPU142は、ネットワーク104上に同報されるメッセージを監視して受信するメッセージ受信手段として機能する。
次に、画像出力装置Bが、監視時間が予め決められた時間を経過したか、すなわち、タイムアウトが発生したかを判断する(ステップS382)。タイムアウトが発生していない場合は、ステップS383に進む。タイムアウトが発生した場合、画像出力装置Bは、出力先画像出力装置102aである画像出力装置Aが印刷できない状態であると判断し、ステップS386に進む。
ステップS386において、画像出力装置BのCPU142が、プリントサービスサーバ装置103から印刷ジョブを取得し、印刷出力する。つまり、画像出力装置Bが、画像出力装置Aに代行して印刷処理を実行する。
すなわち、CPU142は、自装置が代行画像出力装置102bであると判断してから予め決められた期間、ネットワーク104上に同報されるメッセージを監視する。そして、CPU142は、ネットワーク104上に同報されるメッセージの監視期間が予め決められた期間を超えた場合に、印刷ジョブをプリントサービスサーバ装置103から取得して実行する。
ステップS383において、画像出力装置Bが、画像出力装置Aからのマルチキャストを受信したかを判断する(ステップS383)。画像出力装置Bが、画像出力装置Aからのマルチキャストを受信していないと判断した場合は、ステップS381に戻る。画像出力装置Bが、画像出力装置Aからのマルチキャストを受信したと判断した場合は、ステップS384に進む。
次に、画像出力装置Bが、受信したマルチキャストのメッセージを解析する(ステップS384)。そして、画像出力装置BのCPU142が、受信したメッセージが、代行印刷依頼マルチキャストのメッセージであるかを判断する(ステップS385)。ここで、画像出力装置Bが受信したマルチキャストのメッセージは、ジョブ取得マルチキャストのメッセージ(図17(B))か、または代行印刷依頼マルチキャストのメッセージ(図17(C))である。
受信したメッセージが、代行印刷依頼マルチキャストのメッセージでない、すなわち、ジョブ取得マルチキャストのメッセージである場合は、画像出力装置BのCPU142は、ネットワーク104上に同報されるメッセージの監視を中止して、処理を終了する。
受信したメッセージが、代行印刷依頼マルチキャストのメッセージである場合は、ステップS386に進み、画像出力装置BのCPU142が、画像出力装置Aに代行して印刷処理を実行する。すなわち、CPU142は、自装置が代行画像出力装置102bであると判断し、かつ、受信したマルチキャストのメッセージが代行印刷依頼マルチキャストのメッセージである場合に、印刷ジョブをプリントサービスサーバ装置103から取得して実行する。次に、画像出力装置Bが、印刷処理完了後、プリントサービスサーバ装置103に対して、印刷ジョブの削除要求を行い(ステップS387)、処理を終了する。
図14は、プリントサービスサーバ装置の動作処理例を説明するフローチャートである。なお、プリントサービスサーバ装置103は、サーバとして常にサービスを提供するため、各種プリントサービスプログラム184が、予めCPU171によってRAM172にロードされ、実行状態にある。
ステップS391において、プリントサービスサーバ装置103が、ネットワークパケットを受信する(ステップS391)。続いて、プリントサービスサーバ装置103が、受信したネットワークパケットが、自分宛であるかを判断する(ステップS392)。プリントサービスサーバ装置103が、受信したネットワークパケットが、自分宛でないと判断した場合は、ステップS391に戻る。プリントサービスサーバ装置103が、受信したネットワークパケットが、自分宛であると判断した場合は、ステップS393に進む。
次に、プリントサービスサーバ装置103が、受信したネットワークパケットの種類を判定することによって、パケットが指示する処理内容を決定する(ステップS393)。次に、プリントサービスサーバ装置103が、処理内容が、印刷ジョブの受信、印刷ジョブの送信・削除、プリンタ・ユーザ登録のいずれであるかを判断する(ステップS394)。
印刷ジョブの受信は、プリントサービスサーバ装置103が、クライアント装置101がプリントサービスサーバ装置103に対して投入した印刷ジョブを受信する処理を示す。印刷ジョブの送信・削除は、プリントサービスサーバ装置103が、印刷ジョブの取得要求の送信元の画像出力装置(出力先画像出力装置102aまたは代行画像出力装置102b)に対して印刷ジョブを投入する処理、または印刷ジョブを削除する処理を示す。プリンタ・ユーザ登録は、クライアント装置101のユーザについてのユーザ登録処理(図8のS302)と、画像出力装置情報の登録処理(図8のS304)を示す。
処理内容が印刷ジョブの受信である場合は、ステップS395に進む。そして、プリントサービスサーバ装置103の印刷ジョブ受信プログラム187が、クライアント装置101のプリンタドライバ134から出力される印刷ジョブを受信する。印刷ジョブ受信プログラム187は、受信した印刷ジョブをプリントサービスサーバ装置103内の印刷ジョブスプール領域191に保存する(ステップS395)。具体的には、印刷ジョブ受信プログラム187は、印刷ジョブからジョブID、出力先画像出力装置ID、代行画像出力装置IDを抽出する。印刷ジョブ受信プログラム187は、抽出したこれらの情報を印刷ジョブと関連付けて、印刷ジョブスプール領域191に保存する。ステップS395の処理の後、ステップS391に戻る。
処理内容が印刷ジョブの送信・削除である場合は、ステップS396に進む。プリントサービスサーバ装置103の印刷データ送信プログラム188が、印刷ジョブの取得要求の送信元の画像出力装置102に対して印刷ジョブを送信する処理、または印刷ジョブの削除要求に応じて印刷ジョブを削除する処理を行う(ステップS396)。
ステップS396においては、印刷データ送信プログラム188は、印刷ジョブの取得要求の送信元の画像出力装置102がデータベース190に登録されているかを判断する。印刷データ送信プログラム188は、画像出力装置102がデータベース190に登録されている場合に、該該画像出力装置102に印刷ジョブを送信する。ステップS396の処理の後、ステップS391に戻る。
処理内容が、プリンタ・ユーザ登録である場合は、ステップS397に進む。そして、プリントサービスサーバ装置103が、ユーザ登録と画像出力装置情報の登録を行う(ステップS397)。そして、処理がステップS391に戻る。
第1の実施形態の印刷システムによれば、プリントサービスサーバ装置103を介した印刷処理を実行する場合に、以下の効果を奏することができる。すなわち、この印刷処理システムによれば、出力先画像出力装置102aが印刷処理を実行できないとき、出力先画像出力装置102aを管理するプリントサービスサーバ装置103により管理される代行画像出力装置102bが印刷処理を実行することができる。
次に、本発明の第2の実施形態について説明する。第2の実施形態の印刷システムの構成は、図1に示す第1の実施形態の印刷システムの構成と同様である。前述した第1の実施形態においては、プリントサービスサーバ装置103が、クライアント装置101に対して、どの画像出力装置が印刷ジョブを取得したかを示す情報を含む電子メール(印刷先メール)を通知する(図5のステップS224)。しかし、メールアプリケーションは、一般に、一定時間間隔でPOPサーバ(Post Office Protocolサーバ)にメールの配信がないか問い合わせをする。従って、メールの送信タイミングによっては、印刷ジョブを取得した画像出力装置(印刷出力先)の通知が遅くなる可能性がある。
そこで、第2の実施形態においては、プリントサービスサーバ装置103が、以下の手順で印刷出力先を通知する。まず、クライアント装置101のプリンタドライバ134が、印刷ジョブをプリントサービスサーバ装置103に送信した後、印刷完了のマルチキャストを受信するためのデーモンサービスを立ち上げる。このデーモンサービスは、印刷出力先の画像出力装置102から送信される、ジョブ取得マルチキャストを受信するプログラムである。
すなわち、デーモンサービスは、プリントサービスサーバ装置103に対して印刷ジョブが投入された場合に、以下の処理を実行する受信手段として機能する。デーモンサービスは、上記投入された印刷ジョブをプリントサービスサーバ装置103から取得して実行する画像出力装置102からネットワーク104上に同報される、該画像出力装置102が印刷ジョブを取得することを示すメッセージを受信する。
第2の実施形態では、出力先画像出力装置102aおよび代行画像出力装置102bのうち、印刷出力先となる画像出力装置102は、ジョブ取得マルチキャストをネットワークに同報する。出力先画像出力装置102aが同報するジョブ取得マルチキャストのメッセージは、前述した図17(B)に示すメッセージである。代行画像出力装置102bが同報するジョブ取得マルチキャストのメッセージは、前述した図17(B)に示すメッセージのメッセージキーの値が、”Proxy Printer Pulled Print Job”という値に置き換わった構成を有する。
クライアント装置101のデーモンサービスは、ジョブ取得マルチキャストを受信し、ジョブ取得マルチキャストのメッセージ内容に基づいて、印刷出力先となる画像出力装置102を判断する。具体的には、デーモンサービスが、ジョブ取得マルチキャストが含む、印刷出力先となる画像出力装置のIDを取得する。そして、デーモンサービスが、画像出力装置情報保存領域135に保存されている情報から、取得された画像出力装置のIDに一致するレコードを取得し、このレコードが含む画像出力装置名を表示する。これにより、ユーザが、印刷出力先となる画像出力装置を知ることができる。第2の実施形態の印刷システムによれば、プリントサービスサーバ装置103が、クライアント装置101に対して、印刷先メールを通知する必要がなくなる。
次に、本発明の第3の実施形態について説明する。前述した第1の実施形態においては、クライアント装置101にプリンタドライバ134がインストールされている。しかし、スマートフォンに代表される携帯端末では、搭載しているオペレーティングシステムの構造上、プリンタドライバ134がインストールできない場合がある。従って、第3の実施形態では、クライアント装置が備える、ユーザドキュメントを印刷するアプリケーションが、第1の実施形態で説明したプリンタドライバ134の機能を備える。
図18は、第3の実施形態におけるクライアント装置の構成例を示す図である。第3の実施形態の印刷システムは、図1のクライアント装置101に代えて、図18のクライアント装置801を備える。
クライアント装置801は、無線で通信を行う。クライアント装置801が備えるCPU811乃至メモリI/F817は、図2中のCPU111乃至外部メモリI/F117と同様の機能を有する。また、システムバス821は、図2中のシステムバス121と同様の機能を有する。また、表示部819、操作部820は、それぞれ、図2中の表示部119、キーボードと同様の機能を有する。
クライアント装置801が備える無線ネットワーク通信部818は、無線通信を実行する処理部である。無銭ネットワーク通信部818には、メモリが内蔵されていてもよい。メモリ831には、無線経由、あるいはメンテナンス用の有線ケーブル経由で、OSやアプリケーションのインストール、アップデートを行うことができる。メモリ831にはOS832、アプリケーション833がインストールされる。また、アプリケーション833には、各モジュールが含まれている。
第3の実施形態においては、画像出力装置探索モジュール834が、ネットワーク104上の画像出力装置102を探索し、探索結果を、表示部819が備える操作画面上にリストして表示する。
また、画像出力装置探索モジュール834は、探索した画像出力装置の画像出力装置情報を取得し、画像出力装置情報保存領域835に保存する。画像出力装置情報の内容は、第1の実施形態における画像出力装置情報の内容と同様である。
すなわち、画像出力装置探索モジュール834は、ネットワーク104上に設けられている画像出力装置の画像出力装置情報を探索して取得する探索手段として機能する。また、画像出力装置探索モジュール834は、取得された画像出力装置情報を表示する表示手段として機能する。
クライアント装置801のユーザは、操作画面上に表示された画像出力装置情報を参照して、出力先画像出力装置102aと代行画像出力装置102bとを指定する。クライアント装置801のCPU811は、当該ユーザの指定操作に基づいて、出力先画像出力装置102aと代行画像出力装置102bとを選択する。
ユーザが印刷指示を行うと、印刷ジョブ送信モジュール836が印刷ジョブの生成を行い、プリントサービスサーバ装置103に送信する。印刷ジョブの送信の後、印刷ジョブ送信モジュール836が、マルチキャスト送信モジュール837に指示して、ネットワーク104上に印刷ジョブ送信マルチキャストを同報させる。第3の実施形態では、クライアント装置801が備える、ユーザドキュメントを印刷するアプリケーションが、第1の実施形態で説明したプリンタドライバ134の機能を備える。
第3の実施形態の印刷システムによれば、クライアント装置801が、プリンタドライバ134の機能を備える画像出力装置探索モジュール834を用いて、画像出力装置情報を取得することができる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。