(57)【特許請求の範囲】
【請求項１】
サーバー装置から提供された印刷ジョブを実行して印刷する画像形成装置であって、
前記サーバー装置に対して、ログインしたユーザーの情報の通知を行う通知手段と、
前記サーバー装置から前記通知に応じて前記ログインしたユーザーが選択できる印刷データと当該印刷データの状態を示すリストに関するリスト情報を受信する受信手段と、
前記受信したリスト情報を用いて、前記ログインしたユーザーが選択できる印刷データと当該印刷データの状態を示すリストを表示する表示手段と、
前記リストから選択された印刷データに関する要求を行う要求手段と、
前記要求に応じて、外部から受信した前記印刷データに係る印刷ジョブの処理を実行し、前記印刷ジョブの処理が終了するとその旨を前記サーバー装置に送信する実行手段とを有し、
前記表示手段は、前記印刷データの状態として、当該印刷データを他の画像形成装置で処理中であることを示す表示を行い、
前記他の画像形成装置で処理中の印刷データが選択された場合に、前記要求手段による要求に応じて受信した印刷ジョブを前記実行手段が実行することにより、自装置及び前記他の画像形成装置で前記選択された印刷データに係る印刷ジョブが処理されることを特徴とする画像形成装置。
【請求項２】
前記表示手段は、前記リスト情報を用いて、前記印刷データの状態として、前記他の画像形成装置の識別情報と、当該他の画像形成装置で処理中であることを示す表示を行うことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記他の画像形成装置で処理中の印刷データが前記サーバー装置において分割されている際に、前記表示手段により表示される前記リストから、前記他の画像形成装置で処理中である印刷データを選択できることを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
前記実行手段は、前記要求に応じて前記サーバー装置から受信した前記他の画像形成装置の識別子を用いて、当該他の画像形成装置より前記選択された印刷データに係る印刷ジョブを受信し、当該印刷ジョブの処理を実行することを特徴とする請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項５】
前記画像形成装置と前記サーバー装置とはインターネットを介して接続されることを特徴とする請求項１乃至４のいずれか１項に記載の画像形成装置。
【請求項６】
サーバー装置から提供された印刷ジョブを実行して印刷する画像形成装置における方法であって、
前記サーバー装置に対して、ログインしたユーザーの情報の通知を行う通知工程と、
前記サーバー装置から前記通知に応じて前記ログインしたユーザーが選択できる印刷データと当該印刷データの状態を示すリストに関するリスト情報を受信する受信工程と、
前記受信したリスト情報を用いて、前記ログインしたユーザーが選択できる印刷データと当該印刷データの状態を示すリストを表示する表示工程と、
前記リストから選択された印刷データに関する要求を行う要求工程と、
前記要求に応じて、外部から受信した前記印刷データに係る印刷ジョブの処理を実行し、前記印刷ジョブの処理が終了するとその旨を前記サーバー装置に送信する実行工程とを有し、
前記表示工程においては、前記印刷データの状態として、当該印刷データを他の画像形成装置で処理中であることを示す表示を行い、
前記他の画像形成装置で処理中の印刷データが選択された場合に、前記要求工程での要求に応じて受信した印刷ジョブを前記実行工程で実行されることにより、自装置及び前記他の画像形成装置で前記選択された印刷データに係る印刷ジョブが処理されることを特徴とする方法。
【請求項７】
請求項１乃至５のいずれか１項に記載の画像形成装置としてコンピューターを機能させるためのプログラム。
【請求項８】
印刷データを管理するサーバー装置と、該サーバー装置から提供された印刷ジョブを処理する複数の画像形成装置とを接続して構成される画像形成システムであって、
前記サーバー装置は、
印刷データが分割されていない場合には、当該印刷データをその処理時間の指標値に応じて複数の印刷ジョブに分割する分割手段と、
前記複数の画像形成装置から印刷データの要求を受信した際に、当該印刷データに係る複数の印刷ジョブのひとつを、前記印刷データを要求した画像形成装置に対して送信する送信手段とを有し、
前記複数の画像形成装置は、
前記サーバー装置に対して印刷データを要求する要求手段と、
前記印刷データの要求に応じて受信した印刷ジョブの処理を実行し、前記印刷ジョブの処理が終了するとその旨を前記サーバー装置に送信する実行手段とを有し、
前記送信手段は、前記画像形成装置から印刷ジョブの処理の終了の通知を受信するごとに、前記複数の印刷ジョブのうち未処理の印刷ジョブを前記画像形成装置に対して前記印刷データの処理が終了するまで送信し、
前記サーバー装置は、前記画像形成装置からログインしたユーザーの情報の通知を受信した際に、当該ユーザーが選択できる印刷データと当該印刷データの状態を示すリストに関するリスト情報を前記画像形成装置に送信するリスト送信手段を更に有し、
前記画像形成装置は、前記サーバー装置から受信したリスト情報を用いて、前記ログインしたユーザーが選択できる印刷データと当該印刷データの状態を示すリストを表示する表示手段を更に有し、
前記要求手段は、前記リストから選択された印刷データに関する要求を行い、
前記表示手段は、前記リスト情報を用いて、前記印刷データの状態として、他の画像形成装置の識別情報と、当該他の画像形成装置で処理中であることを示す表示を行うことを特徴とする画像形成システム。
【請求項９】
前記画像形成装置においては、前記他の画像形成装置で処理中の印刷データが前記サーバー装置において分割されている際に、前記表示手段により表示される前記リストから、前記他の画像形成装置で処理中である印刷データを選択できることを特徴とする請求項８に記載の画像形成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえばサーバー等からデータ受信して画像形成を行う画像形成システム及び画像形成装置とそれらの制御方法に関する。
【背景技術】
【０００２】
近年、インターネット上のサーバーに印刷データをためおき、ＭＦＰ（Ｍｕｌｔｉ Ｆｕｎｃｔｉｏｎ Ｐｅｒｉｐｈｅｒａｌ、多機能周辺装置）などの画像形成装置から、そのサーバーにある印刷データを取得してプルプリントすることができるサービスが提供されている。ここで印刷データとは、画像データと印刷設定が記載されたジョブスクリプトやジョブチケット等を含むデータのことである。このようなクラウドサービスのメリットの１つとして、印刷するＭＦＰを特に限定しなくてもよい点がある。ユーザーはインターネットに接続された任意のＭＦＰで印刷を指示することが可能である。
【０００３】
しかしながら、ユーザーが任意の画像形成装置で印刷処理を指示するため、例えば、印刷処理の開始後、印刷指示した画像形成装置の処理能力が低いことや大量印刷であったことに気づくことがある。その場合、想定していた以上の時間がかかるため、ユーザーの監視負担の増大や画像形成装置の占有などが生じ、ユーザにとっては負荷が高かった。
【０００４】
このように1台の画像形成装置で処理を行うと時間がかかるような場合、従来においては、処理開始前に、予め複数台で処理するモードをユーザーに提示するように施したものがある（例えば、特許文献１参照）。特許文献１では、ユーザーにより複数台で処理するモードが選択された場合に、画像形成装置が複数台で処理を並行して行うことで、処理時間の短縮を図ることができる。また、他の従来技術においては、ある画像形成装置上のＵＩに、他の画像形成装置のジョブも含めた形で、残部数や残処理時間などを計算して、ジョブのステータスとして表示するように施したものがある（例えば、特許文献２参照）。特許文献２では、他の画像形成装置と並行処理しているジョブのステータスが表示されるため、ユーザーは残りの時間等を確認することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2001-298565号公報
【特許文献２】特許第4270046号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術にはどちらも課題がある。特許文献１では、ユーザーが、印刷処理を開始する前に、複数台で処理を行うかと、行う場合はどの画像形成装置と並行処理を行うかを決定して指示しなければならない。いったん開始された印刷処理は開始前の指示の通りに進む。そのため、印刷処理が開始された後に処理の終了が遅いことに気付いたとしても、処理の途中から他の画像形成装置と並行して処理を行わせることができない。また、特許文献２では、他の画像形成装置も含めたジョブのステータスを確認することはできるが、処理の途中から並行処理を開始することはできない。
【０００７】
本発明はこのような事情に鑑みてなされたものであり、印刷処理の開始前に予め並行して印刷処理を行うことや、どの画像形成装置と並行処理するかを指定しておかなくても、印刷処理開始後に並行処理の指定や、並行処理を行う画像形成装置の指定が可能な画像形成システム及び画像形成装置とそれらの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明は以下の構成を備える。すなわち、
サーバー装置から提供された印刷ジョブを実行して印刷する画像形成装置であって、
前記サーバー装置に対して、ログインしたユーザーの情報の通知を行う通知手段と、
前記サーバー装置から前記通知に応じて前記ログインしたユーザーが選択できる印刷データと当該印刷データの状態を示すリストに関するリスト情報を受信する受信手段と、
前記受信したリスト情報を用いて、前記ログインしたユーザーが選択できる印刷データと当該印刷データの状態を示すリストを表示する表示手段と、
前記リストから選択された印刷データに関する要求を行う要求手段と、
前記要求に応じて、外部から受信した前記印刷データに係る印刷ジョブの処理を実行し、前記印刷ジョブの処理が終了するとその旨を前記サーバー装置に送信する実行手段とを有し、
前記表示手段は、前記印刷データの状態として、当該印刷データを他の画像形成装置で処理中であることを示す表示を行い、
前記他の画像形成装置で処理中の印刷データが選択された場合に、前記要求手段による要求に応じて受信した印刷ジョブを前記実行手段が実行することにより、自装置及び前記他の画像形成装置で前記選択された印刷データに係る印刷ジョブが処理される。
【００１０】
あるいは本発明の他の側面によれば、印刷データを管理するサーバー装置と、該サーバー装置から提供された印刷ジョブを処理する複数の画像形成装置とを接続して構成される画像形成システムであって、
前記サーバー装置は、
印刷データが分割されていない場合には、当該印刷データをその処理時間の指標値に応じて複数の印刷ジョブに分割する分割手段と、
前記複数の画像形成装置から印刷データの要求を受信した際に、当該印刷データに係る複数の印刷ジョブのひとつを、前記印刷データを要求した画像形成装置に対して送信する送信手段と、
前記複数の画像形成装置は、
前記サーバー装置に対して印刷データを要求する要求手段と、
前記印刷データの要求に応じて受信した印刷ジョブの処理を実行し、前記印刷ジョブの処理が終了するとその旨を前記サーバー装置に送信する実行手段とを有し、
前記送信手段は、前記画像形成装置から印刷ジョブの処理の終了の通知を受信するごとに、前記複数の印刷ジョブのうち未処理の印刷ジョブを前記画像形成装置に対して前記印刷データの処理が終了するまで送信し、
前記サーバー装置は、前記画像形成装置からログインしたユーザーの情報の通知を受信した際に、当該ユーザーが選択できる印刷データと当該印刷データの状態を示すリストに関するリスト情報を前記画像形成装置に送信するリスト送信手段を更に有し、
前記画像形成装置は、前記サーバー装置から受信したリスト情報を用いて、前記ログインしたユーザーが選択できる印刷データと当該印刷データの状態を示すリストを表示する表示手段を更に有し、
前記要求手段は、前記リストから選択された印刷データに関する要求を行い、
前記表示手段は、前記リスト情報を用いて、前記印刷データの状態として、他の画像形成装置の識別情報と、当該他の画像形成装置で処理中であることを示す表示を行う。
【発明の効果】
【００１１】
本発明によれば、印刷の処理内容に応じて予め印刷データを分割することで、印刷開始後にユーザーが任意の画像形成装置で並行印刷の開始の指示を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態における画像形成システムの全体図
【図２】本発明の実施形態におけるＭＦＰのハードウェア構成を示すブロック図
【図３】本発明の実施形態におけるサーバーのハードウェア構成を示すブロック図
【図４】本発明の実施形態におけるＭＦＰのソフトウェア構成を示すブロック図
【図５】本発明の実施形態におけるサーバーのソフトウェア構成を示すブロック図
【図６】本発明の実施形態におけるサーバーで管理する各リストの例を示す図
【図７】本発明の実施形態におけるＭＦＰ１１０とサーバーの通信処理の第１のシーケンス図
【図８】本発明の実施形態における各ＭＦＰのプルプリントの設定画面の一例
【図９】本発明の実施形態におけるサーバー１３０の分割判断処理のフローチャート
【図１０】本発明の実施形態における分割前後のジョブスクリプトの一例を示す図
【図１１】本発明の実施形態におけるＭＦＰ１１０の印刷中の画面の一例
【図１２】本発明の実施形態におけるサーバーの印刷終了判断処理のフローチャート
【図１３】本発明の実施形態におけるＭＦＰ１１０とサーバーの通信処理の第２のシーケンス図
【図１４】本発明の実施形態におけるサーバーで管理するステータスリストの一例
【図１５】本発明の第１の実施形態におけるＭＦＰ１２０とサーバーの通信処理のシーケンス図
【図１６】本発明の第２の実施形態におけるＭＦＰ１２０とサーバーの通信処理のシーケンス図
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１４】
［第１の実施形態］
まず、本発明に係る第１の実施形態について説明する。第１の実施形態では、ユーザーからの指示により、画像形成装置の一例であるＭＦＰでプルプリントを開始した後、さらに同じユーザーからの指示により他のＭＦＰから並行してプルプリントを行う画像形成システムの例を記載する。プルプリントとは、たとえばＰＤＨ形式などの印刷用のデータをプリンタが主導的に外部ストレージに対して要求することで取得し、当該プリンタで印刷する印刷手法である。
【００１５】
＜システム構成図＞
図１は、本発明を適用可能なシステムの全体構成を示すブロック図である。図１に示すように、ＭＦＰ１１０、ＭＦＰ１２０及びＰＣ１９０は、イーサネット（登録商標）などからなるＬＡＮ１４０に接続されている。ＭＦＰ１１０とＭＦＰ１２０は、プリント機能やコピー機能を有する。それとともに、原稿画像を読み取り、読み取って得られた画像データを、ＦＴＰプロトコルやＳＭＢプロトコル等を用いてＬＡＮ１４０上の指定した装置に送信するデータ送信機能を有する。また、インターネット１８０を経由して指定された装置、例えばサーバー１３０からの印刷データを受信する機能を有する。なお、本例では、ＭＦＰ１１０とＭＦＰ１２０を特に区別しなくてもよい場合は、単にＭＦＰと記載する。なお本実施形態では、印刷データとは、後述する図６に示す印刷データリスト６００の各項目と、対応する画像データの組を指すものとする。したがって印刷データがアップロードされた時点では、ひとまとまりの印刷データがひとつの印刷ジョブを構成する。なお印刷ジョブとは印刷処理の処理単位であり、ある印刷データを印刷するための印刷ジョブを、その印刷データに係る印刷ジョブということにする。また印刷ジョブはその印刷ジョブのジョブスクリプト（後述）なるデータにより定義され、本例ではそのジョブスクリプトを印刷ジョブとして扱う。たとえばジョブスクリプトの送信を印刷ジョブの送信、ジョブスクリプトの保持を印刷ジョブの保持、ジョブスクリプトの削除を印刷ジョブの削除とも呼ぶ。
【００１６】
ＰＣ１９０は、ユーザーからの指示で、インターネット１８０を経由してサーバー１３０に印刷データをアップロードすることが可能である。ルータ１６０と１７０は、インターネット１８０とＬＡＮ１４０，１５０それぞれとの間にあるルータである。サーバー１３０は、ＬＡＮ１５０に接続されている。なお、ＭＦＰ、サーバー、ＰＣの構成は図１に限られず、それぞれ１または複数でよい。また、インターネット１８０を経由せず、サーバー１３０がＬＡＮ１４０に接続されている構成でもよいし、ＭＦＰ１１０、ＭＦＰ１２０、サーバー１３０、ＰＣ１９０がそれぞれ異なるＬＡＮに接続されていてもよい。
【００１７】
＜ＭＦＰのハードウェア構成＞
ＭＦＰ１１０とＭＦＰ１２０は同じハードウェア構成であり、図２に示すように次の構成要素から成る。画像入力デバイスであるスキャナー部２１２、画像出力デバイスであるプリンター部２１３、ＭＦＰの制御を司るコントローラー２００、および操作部２１１である。
【００１８】
スキャナー部２１２は、原稿上の画像を読み取って画像データを生成するデバイスである。なお原稿は原稿フィーダにセットされ、コントローラー２００からスキャナー部２１２に原稿読み取り指示が与えられる。スキャナー部２１２は、この指示を受けると原稿フィーダから原稿を１枚ずつフィードして、原稿の読み取り動作を行う。なお、原稿の読み取り方法は原稿フィーダによる自動送り方式ではなく、原稿を不図示のガラス面上に載置し露光部を移動させることで原稿の走査を行う方法であってもよい。
【００１９】
プリンター部２１３は、コントローラー２００から受け取った画像データを用紙上に画像として形成する画像形成デバイスである。なお、本実施形態において画像形成方式は感光体ドラムや感光体ベルトを用いた電子写真方式以外にも、インクジェット方式などでも適用可能である。
【００２０】
コントローラー２００は操作部２１１、スキャナー部２１２、プリンター部２１３と電気的に接続されている一方、ＬＡＮ１４０にもネットワークインターフェース２０６を介して接続されている。すなわち、ＬＡＮ１４０を経由して他の機器と接続されている。これによりＨＴＴＰプロトコルによる通信が可能となっている。
【００２１】
ＣＰＵ２０１は、ＲＯＭ２０２に記憶された制御プログラム等に基づいて、接続中の各種デバイスへのアクセス及び他のデバイスからのアクセスを統括的に制御する。それと共に、コントローラー２００内部で行われる各種処理についても統括的に制御する。この制御には、後述のフローチャートを実現するためのプログラムの実行も含む。
【００２２】
ＲＯＭ２０２には装置のブートプログラムが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するためのメモリでもある。ＲＡＭ２０３は、電源のバックアップ等により記憶した内容を装置本体の電源オフ後も保持しておく領域と、電源オフ後には記憶した内容が消去されてしまう領域により構成されている。後者の領域にはプログラムがロードされてＣＰＵ２０１により実行される。
【００２３】
ＨＤＤ２０４はハードディスクドライブであり、システムソフトウェア（プログラムやデータ）や画像データを格納することが可能となっている。
【００２４】
操作部Ｉ／Ｆ２０５は、システムバス２１４と操作部２１１とを接続するためのインターフェース部である。操作部Ｉ／Ｆ２０５は、操作部２１１に表示するための画像データをシステムバス２１４から受け取り操作部２１１に出力すると共に、操作部２１１から入力された情報をシステムバス２１４へと出力する。操作部２１１はタッチパネルやキーボード等で構成され、複写や印刷、例えばプルプリントの指示や、印刷状況の表示等がその上で行われる。また、本実施形態にかかる並列処理の追加的指示等も操作部２１１上でユーザが行うことができる。
【００２５】
ＮｅｔｗｏｒｋＩ／Ｆ２０６はＬＡＮ１４０及びシステムバス２１４に接続し、情報の入出力を行う。スキャナーＩ／Ｆ２０７は、スキャナー部２１２から受け取った画像データに対して、補正、加工、及び編集を行う。なお、スキャナーＩ／Ｆ２０７は、受け取った画像データがカラー原稿か白黒原稿か、文字原稿か写真原稿かなどを判定する機能を持つ。画像処理部２０８は画像データの方向変換、画像圧縮、伸張処理などをおこなう。また、ＨＤＤ２０４に保存されている画像同士を合成して一枚の画像にすることが可能である。プリンターＩ／Ｆ２０９は、画像形成部２０８から送られた画像データを受け取り、この画像データに付随させられている印刷設定を参照しながら画像データに画像形成を施す。画像形成後の画像データは、プリンター部２１３に出力される。
【００２６】
なお、本実施形態では、ＭＦＰがＵＩ表示を実行するネットワークＭＦＰであるが、汎用プリンターなどを接続した汎用コンピューター等、これ以外のプリント機能を有する画像形成装置であってもよい。
【００２７】
＜サーバー１３０のハードウェア構成＞
図３は、図１に示したサーバー１３０のハードウェア構成を示すブロック図である。図３において、ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３、ＮｅｔｗｏｒｋＩ／Ｆ３０５、ハードディスクドライブ（ＨＤＤ）３０６がシステムバス３１０を介して互いに通信可能に接続されている。また、ＣＲＴ等の表示装置３０７、キーボード等の入力装置３０４、及びマウス等のポインティングデバイス３０８が、システムバス３０９を介して互いに通信可能に接続されている。
【００２８】
ＲＯＭ３０３或いはＨＤＤ３０６には、オペレーティングシステムやＷｅｂアプリケーションなどの制御プログラムや本実施形態の印刷データが格納されている。ＣＰＵ３０１は、当該制御プログラムを必要に応じてＲＯＭ３０３或いはＨＤＤ３０６からＲＡＭ３０２上へ読み出して実行することで、コンピューターとしての機能を発揮する。
【００２９】
また、ＣＰＵ３０１は、表示装置３０７を介して各種情報の表示を行うと共に、入力装置３０４やポインティングデバイス３０８からユーザー指示等を受け付ける。さらに、ＮｅｔｗｏｒｋＩ／Ｆ３０５を介してＬＡＮ１５０上の他の装置との通信を行う。またＭＦＰによるプルプリント時には、ＭＦＰからの要求に応じて印刷データを提供するサービス（プログラム）を実行する。
【００３０】
＜ＭＦＰのソフトウェア構成＞
ＭＦＰ１１０とＭＦＰ１２０は、同じソフトウェア構成であり、図４に示すように次の構成要素から成る。これらのソフトウェアモジュールは、ＨＤＤ２０４に格納され、ＣＰＵ２０１が実行する。
【００３１】
ＵＩ部４０１は、プルプリント機能のＵＩ、画像データ送信機能のＵＩ、及びＭＦＰ本体の設定を行うための設定用ＵＩなどの内部機能を使用させるためのＵＩを、操作部２１１に表示するソフトウェアモジュールである。
【００３２】
ＨＴＴＰ通信部４０２はネットワークＩ／Ｆ２０６を操作してＨＴＴＰプロトコルにより通信を行うソフトウェアモジュールである。
【００３３】
送受信データ処理部４０３は、ＨＴＴＰ通信部４０２を介して受け取った印刷データなどを解析し、機能制御部４０５に印刷処理の指示を行うことや、ＵＩ部４０１に表示を指示するソフトウェアモジュールである。また、受け取った印刷データに含まれる画像データを画像データ管理部４０４に保存する。さらにＵＩ部４０１から受け取った入力情報を、ＨＴＴＰ通信部４０２を介して外部に送信する。
【００３４】
画像データ管理部４０４は、送受信データ処理部４０３から受け取った画像データを管理するソフトウェアモジュールである。
【００３５】
機能制御部４０５は、プルプリントや画像データ送信などの機能を制御するソフトウェアモジュールである。例えば、送受信データ処理部４０３から受け取った印刷データに含まれるジョブスクリプトの印刷設定に従って、プリンター部２１３を操作して印刷処理を行う。
【００３６】
＜サーバー１３０のソフトウェア構成＞
図５は、本実施形態でのサーバー１３０のソフトウェアの構成を示した図である。これらの図５に示すソフトウェアモジュールは、ＨＤＤ３０６に格納され、ＣＰＵ３０１が実行する。ＵＩ部５０１は、サーバー１３０のプルプリント機能の設定を行うＵＩを表示装置３０７に表示するソフトウェアモジュールである。プルプリント機能の設定を行うＵＩでは、例えば印刷データを分割する際の判断基準となる印刷所要時間をしきい値として設定することなどが可能である。なお本実施形態では、しきい値を２分として設定されたものとして記載する。つまり、印刷の処理に要する時間が２分を超えるようである場合に分割を行う。またしきい値としては印刷データのデータ量やページ数を用いることもできる。
【００３７】
ＨＴＴＰ通信部５０２は、ネットワークＩ／Ｆ３０５を操作して、ＨＴＴＰプロトコルにより通信を行うソフトウェアモジュールである。送受信データ処理部５０３は、ＨＴＴＰ通信部５０２を介して受け取ったデータを、そのデータの内容に応じた処理を行うソフトウェアモジュールである。例えば、ＰＣ１９０などからアップロードされた印刷データであれば、印刷データ管理部５０５に格納する。
【００３８】
印刷データ分割部５０４は、送受信データ処理部５０３から受け取った印刷データを分割するソフトウェアモジュールである。
【００３９】
印刷データ管理部５０５は、送受信データ処理部５０３からの指示により、印刷データの格納や、格納している印刷データを送受信データ処理部５０３に渡すことを行うソフトウェアモジュールである。印刷データ管理部５０５で管理するデータについては後述する。
【００４０】
ステータス管理部５０６は、ＭＦＰ１１０やＭＦＰ１２０が処理している印刷データのステータスを管理するモジュールである。送受信データ処理部５０３からの指示により、ステータス管理部がステータスの書き換えを行う。ステータス管理部５０６で管理するデータについては後述する。
【００４１】
＜印刷データ管理部５０５とステータス管理部５０６で管理するデータ＞
図６は、サーバー１３０の印刷データ管理部５０５で管理する印刷データのリスト６００を模式的に表したものである。これらの印刷データは、ユーザーの指示により、ＰＣ１９０からアップロードされたものである。なお、本実施形態では印刷データのリスト６００は、サーバー１３０のＨＤＤ３０６に保存されているものとする。また、本実施形態では、模式的な図としてテーブル形式を用いているが、ＣＳＶ（Ｃｏｍｍａ Ｓｅｐａｒａｔｅｄ Ｖａｌｕｅｓ）形式や、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ Ｍａｒｋｕｐ Ｌａｎｇｕａｇｅ）などでのテキストファイルでもよい。リストは情報であり、そのことを明示するためリスト情報と呼ぶこともある。
【００４２】
印刷データリスト６００は、カラム６０１からカラム６０７から成る。カラム６０１は、印刷データＩＤを表している。印刷データＩＤは、印刷データを一意に識別するためのＩＤである。本実施形態では、'１'からの連番で記載しているが、ＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ Ｕｎｉｑｕｅ Ｉｄｅｎｔｉｆｉｅｒ）など、一意に識別できるものが望ましい。
【００４３】
カラム６０２は、印刷データの名称を表している。印刷データの名称は、ユーザーがどのような印刷データであるかを識別するためのものである。ＰＣ１９０から印刷データをサーバー１３０にアップロードする際に、ユーザーの入力によりつけられるものである。本実施例では印刷データの名称はユーザーがつけるものとしたが、ユーザーが識別できればよく、画像データのファイル名などでもよい。
【００４４】
カラム６０３は、印刷データをアップロードしたユーザーを識別するユーザー名を表している。カラム６０４は、画像データを何部印刷するかを表している。カラム６０５は、画像データのページ数を表している。カラム６０６は、画像データを表している。本実施形態では画像データを印刷データとして保持しているが、例えば、画像データのパスなど、画像データを特定できるデータだけを印刷データに保持し、画像データは別の場所に保存されているような構成でもよい。もちろん画像データといっても、ビットマップ形式やベクタ形式など種々の形式の画像データを本実施形態に適用できる。たとえばＰＤＦ形式なども画像データの一形式である。カラム６０７は、印刷設定が記載されたジョブスクリプトである。印刷設定には、たとえばレイアウトなどの設定が含まれている。
【００４５】
図６はまた、サーバー１３０のステータス管理部５０６で管理する印刷データのステータスのリスト６５０を模式的に表している。なお、本実施形態では印刷データのステータスのリスト６５０は、サーバー１３０のＨＤＤ３０６に保存されているものとする。また、本実施例では、模式的な図としてテーブル形式を用いているが、ＣＳＶ（Ｃｏｍｍａ Ｓｅｐａｒａｔｅｄ Ｖａｌｕｅｓ）形式や、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ Ｍａｒｋｕｐ Ｌａｎｇｕａｇｅ）などでのテキストファイルでもよい。
【００４６】
ステータスリスト６５０は、カラム６５１からカラム６５６から成る、印刷データの処理の状態を示す情報である。なお、ステータスリストのステータスは、サーバー１３０の送受信データ処理部５３０の指示により書き換えられる。
【００４７】
カラム６５１は、印刷データＩＤを表している。印刷データＩＤは、印刷データを一意に識別するためのＩＤである。印刷データＩＤにより、このステータスがどの印刷データのステータスを表しているかを特定することができる。これは印刷データリスト６００の印刷データＩＤ６０１と対応している。
【００４８】
カラム６５２は、印刷データの処理状況を表している。印刷データの処理状況は、"未処理"、"処理中"、"完了"がある。ＭＦＰからプルプリントが開始されると、処理状況が"処理中"となる。また、ＭＦＰでプルプリントが終了すると、処理状況は、"完了"となる。
【００４９】
カラム６５３は、印刷データの分割状況を表している。印刷データが分割されると"ｔｒｕｅ"となり、分割されていない場合は"ｆａｌｓｅ"となる。カラム６５４は、ＭＦＰが印刷を終了した部数を表している。カラム６５５は、印刷データを分割した後のジョブスクリプトを表している。分割した場合には、分割した数だけのジョブスクリプトが格納される。カラム６５６は、印刷データがどのＭＦＰで処理されているかを表している。
【００５０】
印刷データリスト６００およびステータスリスト６５０は、たとえばユーザがサーバー１３０に印刷データをアップロードした際にサーバー１３０により生成され格納される。ステータスリスト６５０については、処理状況の初期値は「未処理」、分割状況の初期値は「ｆａｌｓｅ」となる。
【００５１】
＜ＭＦＰ１１０でのプルプリント処理（ジョブ分割あり）＞
まず、ユーザーはＭＦＰ１１０からプルプリントの開始を指示する。その際のＭＦＰ１１０とサーバー１３０の処理を、図７乃至図１３を用いて説明する。
【００５２】
図７は、ＭＦＰ１１０とサーバー１３０の通信処理にかかるシーケンス図である。特に印刷データがしきい値（本例では２分）を超えているために、印刷データの分割を行う場合の例である。
【００５３】
まず、ユーザーは、ＭＦＰ１１０の操作部２１１を操作してＭＦＰ１１０へのログイン操作を行う。例えば、操作部２１１に表示されるログイン用のＵＩ（不図示）でユーザー名とパスワードの入力を行うことでログイン操作を行う。または、不図示のカードリーダーなどに、ユーザー名やパスワードが記録されたログイン用のカードをかざす。これらのログイン操作をＭＦＰ１１０が受け付けることで、ＭＦＰ１１０はログイン処理を行う。ログイン処理は、ＭＦＰ１１０が保持するユーザー名とパスワードとを、入力されたユーザ名とパスワードのそれぞれと照合して行う構成でもよいし、別途認証用のサーバー（不図示）があり、認証用サーバーで照合を行う構成でもよい。または、サーバー１３０が認証用サーバーを兼ねている構成でもよい。ログイン処理が成功すると、ステップ７０１に遷移する。
【００５４】
ステップ７０１で、送受信データ処理部４０３は、サーバー１３０に対してＨＴＴＰのＧＥＴコマンドによるサーバー１３０が有する印刷データリストの要求を行う。具体的には、送受信データ処理部４０３がＨＴＴＰ通信部４０２に、ログインユーザーの情報（ユーザー名等）とサーバー１３０のアドレスを渡す。それに応じて、ＨＴＴＰ通信部４０２がＨＴＴＰプロトコルによりサーバー１３０のＨＴＴＰ通信部５０２と通信を行う。以下、ＨＴＴＰ通信部４０２とＨＴＴＰ通信部５０２の動作は省略して説明する。
【００５５】
ステップ７０２で、サーバー１３０は、要求に応じて、ログインユーザーの印刷データリスト６００の一部の情報と、ステータスリスト６５０の一部の情報をＭＦＰ１１０に送信する。具体的な処理としては、送受信データ処理部５０３が、ステップ７０１で受け取ったユーザー名に関連した印刷データの情報を、印刷データ管理部５０５から取得する。関連する印刷データとは、たとえばログインユーザがアップロードした印刷データや、ログインユーザに対してアクセスが許可されている印刷データなどである。印刷データに対してアクセスを許可する場合には、印刷データリストに含まれる項目や他のデータとして、アクセス権限を有するユーザ名を登録しておく。ただし本例では、印刷データの印刷権限はそれをアップロードしたユーザに対してだけ付与されているものとして説明する。したがって本例ではログインユーザー名に該当するユーザ名を印刷データリスト６００のユーザ名カラム６０３から探し、該当するユーザに関するデータを読む。例えば、ログインユーザー名が'Ａ'である場合には、該当するデータとして印刷データリストの１行目と２行目のデータを取得する。その後、取得した印刷データに関連したステータスの情報をステータス管理部５０６から取得する。この場合の関連は、印刷データＩＤで判定できる。すなわち取得した印刷データＩＤと同一のＩＤを持つステータスリストを印刷データリストとともにＭＦＰ１２０に送信する。ここでＭＦＰ１１０に送信する一部の情報とは、印刷データリスト６００の印刷データＩＤ６０１、印刷データ名６０２、ユーザー名６０３、ステータスリスト６５０の印刷データＩＤ６５１、処理状況６５２、分割状況６５３などの属性情報である。データサイズが大きい画像データ６０６などはこの時点では送信しない。
【００５６】
ステップ７０３で、ＭＦＰ１１０の操作部２１１に、ＵＩ部４０１が印刷データの選択を受け付けるためのＵＩを表示する。このとき表示する印刷データの情報は、ステップ７０２で受け取った情報を使用する。
【００５７】
図８のＵＩ８００は、ステップ７０３でＭＦＰ１１０のＵＩ部４０１が表示するＵＩの一例である。本ＵＩ８００は、印刷データリスト６００とステータスリスト６５０が、図６の状態のときに、ユーザー'Ａ'がログインしたときのものである。
【００５８】
ボタン８０１は、プルプリントの設定画面に切り替えるためのボタンである。ＵＩ８００は、プルプリントの設定画面が表示されている状態である。他の切り替えボタンを押下することで、"コピー"や"送信／ファクス"等の設定画面に切り替えることが可能である。
【００５９】
リスト８０２は、印刷データの情報（本例ではステータスリストの一部）を表示し、印刷データの選択を受け付けるものである。ユーザー'Ａ'でログインしているため、ユーザＡによりアクセスできる印刷データ１と印刷データ２とが表示されている。また、印刷データはどのＭＦＰでも処理されていないため、どちらも処理状況は"未処理"となっている。
【００６０】
ボタン８０３は、プルプリントの開始を受け付けるためのボタンである。ボタン８０３が押下されると、リスト８０２で選択されている印刷データのプルプリントを開始する。
図７に戻り、ステップ７０４で、ＭＦＰ１１０は、サーバー１３０に選択された印刷ジョブの要求を送信する。具体的には、ステップ７０３でＵＩ部４０１が受け付けた印刷データの例えば印刷データＩＤを送受信データ処理部４０３に渡す。送受信データ処理部４０３がサーバー１３０に対してＨＴＴＰ通信部４０２を介して、選択された印刷データの要求を行う。この際、印刷データの要求メッセージには、ＭＦＰ１１０の印刷処理能力を示す情報が含まれる。例えば、ＭＦＰ１１０の印刷速度が５０ｐｐｍ（ページ／分）であれば、印刷能力が５０ｐｐｍであることを示す情報を含める。
【００６１】
ステップ７０５で、サーバー１３０は要求を受けた印刷データを部数で分割すべきかを判断し、分割すべきであると判断されれば、印刷データを分割する。なお印刷データの分割では、データを分割する訳ではなく、この印刷データに基づく印刷ジョブを分割する。印刷データの分割により、分割後の印刷データに相当する数のジョブスクリプトが生成され、ステータスリストのカラム６５５に格納される。各ジョブスクリプトには分割後の印刷データを印刷すべき部数が書き込まれる。ジョブスクリプトはその名の通りジョブを定義しており、ジョブスクリプトに定義された印刷ジョブが実行される。すなわちジョブスクリプトの複製及び書き換えは、印刷ジョブの分割を意味している。印刷ジョブの分割は、本例では、分割後の各印刷ジョブを、しきい値として指定された時間内で完了できるよう行われる。ステップ７０５の詳細な処理は、図９を用いて後で説明する。  ＜ジョブスクリプトの分割例＞
図１０は、分割を行う前後の"印刷データ１"のジョブスクリプトの一例である。分割前のジョブスクリプト１０００は、ＸＭＬで記述され、印刷データリスト６００のジョブスクリプト６０７に格納されている。ジョブスクリプトは、本例のような構成ではなく、ＪＤＦ（Ｊｏｂ Ｄｅｆｉｎｉｔｉｏｎ Ｆｏｒｍａｔ）に則ったジョブチケットでもよい。また、本例ではＸＭＬでスクリプトを表現するが、スクリプトはＭＦＰが処理できる形式であればそのフォーマットは問わない。ジョブスクリプトは印刷データのアップロードに伴ってサーバにより生成され保存される。
【００６２】
属性１００１は、印刷データＩＤを示している。属性１００２は、印刷データが分割されているかを表す分割属性である。値が"ｆａｌｓｅ"であるため、分割されていないことを示している。印刷設定タグ１００３は、そのタグ以降に印刷設定があることを示すタグで、その子要素に印刷設定が記述される。部数タグ１００４は、印刷する部数設定を表している。つまり"印刷データ1"は、１５０部を印刷する設定である。
【００６３】
ジョブスクリプト１０５０は、ジョブスクリプト１０００を分割して得られたジョブスクリプトの一つであり、分割後の"印刷データ１"のジョブスクリプトの一例である。ジョブスクリプト１０５０は、ステータスリスト６５０の分割後のジョブスクリプト６５５に格納される。
【００６４】
属性１０５１は、印刷データＩＤを示している。この印刷データＩＤは、分割前と同じ印刷データＩＤである。属性１０５２は、印刷データが分割されているかを表す分割属性である。値が"ｔｒｕｅ"であるため、分割されていることを示している。部数タグ１０５３は、印刷する部数を表している。この値がジョブスクリプト１０００を分割した値に書き換えられている。部数タグの値が"２０"であるため、２０部を印刷する設定となっている。
【００６５】
なお、"印刷データ１"は、１５０部の印刷であるため、分割後はジョブスクリプト１０５０が７つと、タグ１０５３の値が"１０"であるジョブスクリプトの計８つのジョブスクリプトになる。これら８つのジョブスクリプトは、ステータスリスト６５０のカラム６５５に格納される。ひとつのジョブスクリプトが一つの印刷ジョブに対応する。また各
ジョブスクリプトに関連付けて、ジョブスクリプト毎の処理ステータスを持つ。アップロード時や分割時にジョブスクリプトが生成された際にはその処理ステータスには「未処理」を示す値がセットされる。この処理ステータスは、ステータスリスト６５０に含まれる処理状況カラムを、分割後のジョブスクリプト毎に対応付けて分割することで実現することもできる。さらに、ジョブスクリプトの再送信を行う場合に備えて、分割後のジョブスクリプトにシーケンス番号を付し、ジョブスクリプトに関連付けて記憶しておくのが望ましい。ジョブスクリプトの再送信を行わないならば特に必要はない。
【００６６】
図７に戻り、ステップ７０５で印刷ジョブが分割された場合、ステップ７０６に進む。繰り返しになるが、図７は印刷データの分割を行う場合のシーケンス図であるため、このステップ以降では印刷ジョブを分割するものとして説明する。
【００６７】
ステップ７０６でサーバー１３０は、ＭＦＰ１１０に、分割を行った印刷データを送信する。具体的にはサーバー１３０の送受信データ処理部４３０が、印刷データリスト６００の画像データとステータスリスト６５０の分割後のジョブスクリプトを取得し、ＨＴＴＰ通信部５０２を介してＭＦＰ１１０に送信する。このとき、送受信データ処理部５３０は、送信した印刷データのカラム６５２の処理状況を"未処理"から"処理中"を示す値に書き換える。さらに、カラム６５６の処理中ＭＦＰに印刷ジョブを実行する画像形成装置のＩＤ(すなわち識別情報)、この例では"ＭＦＰ１１０"を書き込む。また、ここで送信されたジョブスクリプトはステータスリスト６５０から削除される。それとともに印刷済み部数６５４に、送信したジョブスクリプトで印刷される部数が加算される。
【００６８】
なおジョブスクリプトの削除および印刷部数の加算は、印刷完了通知の受信時であってもよい。受信時に行えば通信エラーが生じた場合でもジョブスクリプトの再送信を行うことができる。ただしこのためにはジョブスクリプトとその処理結果との対応をサーバー１３０でとり、処理が完了した印刷ジョブのジョブスクリプトを削除し、印刷済みページ数を加算しなければならない。そのため、ジョブスクリプトに固有のＩＤが、ジョブ分割時に付与される必要があり、印刷データや印刷完了通知にはそのＩＤも含めるべきである。
【００６９】
ステップ７０７で、ＭＦＰ１１０は、ステップ７０６で受け取った印刷データを解析し、当該印刷ジョブが分割されていれば画像データを保存する。具体的には、送受信データ処理部４０３は受け取った印刷データのジョブスクリプトを解析し、ジョブが分割されているかを判断する。分割されているかは、ジョブスクリプト１０５０の属性１０５２の値で判断する。分割されている場合は、印刷データに含まれる画像データを画像データ管理部４０４に格納する。その際、印刷データＩＤも画像データに関連付けて保存する。
【００７０】
ステップ７０８で、送受信データ処理部４０３は、ステップ７０６で受け取った印刷データの印刷を機能制御部４０５に指示する。機能制御部４０５は、受け取った印刷データに含まれる画像データを印刷データに含まれるジョブスクリプトに記載された処理に従って、印刷を行う。印刷を開始すると、ＵＩ部４０１は、印刷中の画面を表示する。
【００７１】
図１１は、ステップ７０８で、印刷を開始した後にＭＦＰ１１０のＵＩ部４０１が操作部２１１に表示するＵＩの一例である。
【００７２】
テキスト１１０１は、印刷中であることを表示するとともに、現在印刷中である印刷データが、他のＭＦＰからも並行して印刷が可能であることを示している。これにより、印刷の開始後に、他のＭＦＰで並行して印刷するようにユーザーに促すことができる。
【００７３】
ボタン１１０２は、本ＵＩを閉じるためのボタンである。ボタン１１０２が押下されると、ＵＩ部４０１は、図８（ａ）の印刷データの一覧を表示するＵＩに切り替える。
【００７４】
ボタン１１０３は、印刷を中止するためのボタンである。ボタン１１０３が押下されると、機能制御部４０５は印刷の中止を行う。
【００７５】
なお図１１の画面は無条件に表示せず、たとえばジョブスクリプトの分割属性で分割された印刷ジョブ（分割ジョブとも呼ぶ）であるか判定し、分割ジョブである場合に限って表示しても良い。
【００７６】
再び、図７に戻り、印刷が完了すると、ステップ７０９で、ＭＦＰ１１０は印刷が完了したことをサーバー１３０に通知する。完了の通知には印刷データＩＤを含む。  ステップ７１０で、印刷の完了通知を受け取ったサーバー１３０は、通知に含まれる印刷データＩＤを持つ印刷データの印刷が完了したかを判断する。具体的な処理は、図１２を用いて説明する。完了していなければ分割後のジョブスクリプトのうち未処理の一つを読んで（取得して）ステップ７１１に進み、完了していればステップ７１４に進む。
【００７７】
ステップ７１１で、送受信データ処理部５０３は、取得した分割後のジョブスクリプトのうち未処理のひとつをＭＦＰ１１０に送信する。ここで、送信されたジョブスクリプトはステータスリスト６５０から削除される。それとともに印刷済み部数６５４に、送信したジョブスクリプトで印刷される部数が加算される。なおジョブスクリプトの削除および印刷部数の加算は、前述したように印刷完了通知の受信時であってもよい。
【００７８】
ステップ７１２で、ＭＦＰ１１０は、ステップ７１１で受け取ったジョブスクリプトの設定に従って印刷を行う。具体的には、送受信データ処理部４０３は、受けとった分割後のジョブスクリプトと同じ印刷ＩＤである画像データを、画像データ管理部４０４から取得する。その後、送受信データ処理部４０３は、分割後のジョブスクリプトと取得した画像データを機能制御部４０５に渡す。機能制御部４０６は、分割後のジョブスクリプトに記載された処理に従って、画像データの印刷を行う。本実施形態では、ネットワーク負荷やＭＦＰ１１０のデータの受信の時間を考慮し、ＭＦＰ１１０に画像データ管理部４０４を設けている。ＭＦＰ１１０は、ステップ７０６で受信した印刷データに含まれる画像データを画像データ管理部４０４に保存しているので、ステップ７１１では、サーバー１３０は、ＭＦＰ１１０に対して、分割後のジョブスクリプトのみを送ればよい。但し、これらの構成に限られることはない。例えば、ＭＦＰ１１０に画像データ管理部４０４を設けずに、サーバー１３０は、毎回、画像データと分割後のジョブスクリプトを含む印刷データを送信するような構成でもよい。この様にすればＭＦＰが画像データを保存するための記憶容量を持つ必要はなくなる。
【００７９】
ステップ７１３で、送受信データ処理部４３０は、印刷の完了通知をサーバー１３０に送信する。このあと、サーバー１３０は、ステップ７１０の処理から繰り返す。
【００８０】
一方、ステップ７１０で印刷が完了したと判定した場合には、ステップ７１４で、サーバー１３０は、ＭＦＰ１１０に印刷の終了通知を送信する。ステップ７１４は、分割後のジョブスクリプトの印刷がすべて完了したあとのサーバー１３０の処理であり、ステップ７１０からステップ７１３の繰り返しの処理を抜けたあとの処理となる。このとき、サーバー１３０は、印刷データリスト６００とステータスリスト６５０から、印刷が完了した印刷データＩＤで特定される印刷データの情報を削除してもよい。ただし、これはアップロードされた印刷データの印刷を１回に限り許している場合であり、複数回の印刷が許されていれば印刷データはそのまま残される。
【００８１】
ステップ７１５で、ＭＦＰ１１０の送受信データ処理部４３０は、画像データ管理部４０４に格納されている画像データを削除する。具体的には送受信データ処理部４０３は、ステップ７１４で受けとった印刷の終了通知に含まれる印刷データＩＤを画像データ管理部に渡すとともに、画像データの削除を指示する。画像データ管理部４０４は、印刷データＩＤで特定される画像データを削除する。
【００８２】
以上までが、印刷データがしきい値（本例では２分）を超えており、印刷データの分割を行った場合のプルプリントの手順の例である。
【００８３】
＜印刷ジョブの分割処理＞
図９は、本実施形態におけるサーバー１３０が、部数での分割の判断を行い、分割すると判断した場合には印刷ジョブを分割するステップ７０５の処理のフローチャートである。以下ではソフトウェアモジュールを主体として説明しているが、実際の実行主体はソフトウェアモジュールを実行しているＣＰＵであり、図９はその手順を示す。これは図７でもあるいは他のフローチャートやシーケンス図でも同様である。
【００８４】
ステップＳ９０１で、送受信データ処理部５０３が、要求された印刷データが処理中であるかの判断を行う。具体的には要求を受け付けた印刷データの印刷データＩＤと、ステータスリスト６５０のカラム６５１の印刷データＩＤから印刷データのステータスを特定し、カラム６５２の処理状況を取得する。この処理状況を参照して判断を行う。処理状況が"処理中"であれば、ステップＳ９０２に遷移する。"未処理"であればステップＳ９０３に遷移する。
【００８５】
ステップＳ９０２で、送受信データ処理部５０３は、要求された印刷データが分割されているかを判断する。分割されているかは、ステータスリスト６５０の分割状況カラム６５３を参照して判断する。"ｆａｌｓｅ"であれば、ステップＳ９０５に遷移する。"ｔｒｕｅ"であれば、すでに分割済みであるので終了する。
【００８６】
ステップＳ９０５で、送受信データ処理部５０３は、エラーを生成する。すでに実行が開始された印刷ジョブは分割できず、その旨のエラーとする。エラーを生成したら終了する。エラーを生成するとは、たとえば対応するエラーコードを所定の領域に格納することなどを含む。
【００８７】
一方ステップＳ９０３では、送受信データ処理部５０３は、印刷所要時間がしきい値を超えているかを判断する。しきい値を超えているか否かの判定は、印刷データリスト６００のカラム６０４の部数とカラム６０５のページ数を用いて印刷すべきページ数を計算し、ステップ７０４で受け取った印刷処理能力で印刷所要時間を推定して、その値に基づいて行う。もちろん処理時間の指標値であれば他の値でも良い。印刷所要時間がしきい値を越えていれば当該印刷ジョブは分割対象と判断する。例えば、要求された印刷データが"印刷データ１"である場合、カラム６０４の部数は１５０で、カラム６０５のページ数は、５ページである。そのため、印刷するページ数は７５０ページとなる。ＭＦＰ１１０の印刷処理能力が５０ｐｐｍであれば、印刷にかかる時間は１５分となる。そのため、しきい値である２分を超えており、当該印刷ジョブは分割対象であると判断する。また、要求された印刷データが"印刷データ２"である場合、印刷するページ数は１５ページとなり、印刷所要時間は１５／５０分となってしきい値（２分）以下であるため、分割対象としないと判断する。なお、本実施形態では、ＭＦＰ１１０から印刷処理能力を取得してしきい値を超えているかを判断したが、印刷処理能力を取得しない構成でもよい。例えば、しきい値をページ数とし、印刷すべきページ数がしきい値を超えているかを判断してもよい。また、両面印刷であるか、レイアウトの設定（たとえば２ｉｎ１）設定がされているかなどもしきい値を超えているかの判断に使用するように構成してもよい。たとえばレイアウト等の印刷設定があっても、レイアウト処理は印刷処理と並行に行われてそのための処理時間は第２ページ以降では吸収されてしまう。そのため、Ｎｉｎ１などのレイアウトの指定があれば印刷すべきページ数を用紙の面の数、すなわちページ数のＮ分の１としてしきい値と比較する。また両面印刷の場合には、たとえば１枚の印刷用紙の反転のために要する平均時間を両面１枚ごとの印刷所要時間に加算し、これに印刷枚数を乗じて両面印刷用の印刷所要時間としても良い。その場合この反転時間は、ＭＦＰから処理能力情報の一部として受け取ればよい。いずれにしても推定された印刷所要時間が設定されたしきい値を超えている場合は、ステップＳ９０４に遷移する。しきい値を超えていない場合は終了する。
【００８８】
ステップＳ９０４で、印刷データ分割部５０４は、印刷データのジョブスクリプトの分割を行う。ジョブスクリプトの分割とは、具体的には、分割前のジョブスクリプトを分割後のジョブスクリプトの数となるよう複製し、各ジョブスクリプトに含まれた部数タグの値を分割後の各印刷ジョブの部数の値に書き換えることで実現される。分割後のジョブスクリプトの数及び各ジョブスクリプトの部数は以下の要領で決定される。
【００８９】
ジョブスクリプトの分割は、しきい値を基準にして決定した部数ごとに行う。すなわち、分割された部数の印刷データの印刷処理がしきい値の時間内で完了するよう分割は行われる。例えば、要求された印刷データが"印刷データ１"である場合、２０部ごとに印刷を行うように、印刷データ１を８つの印刷データに分割する。この結果２０部の印刷を行う７つの印刷ジョブと、１０部の印刷を行うひとつの印刷ジョブに分割される。このように分割するのは、本例では印刷能力が５０ｐｐｍでありしきい値（２分）以内で印刷できるページ数は１００ページ以内だからである。"印刷データ１"のページ数は５ページであり、２０部であると印刷すべきページ数は１００ページとなり、しきい値の２分を超えない。印刷ジョブの分割はまた印刷データの分割と呼ぶこともある。分割後の印刷ジョブは、その印刷データＩＤは共通である。なお、１部の印刷の所要時間がしきい値を越えてしまう場合には、１部毎にひとつの印刷ジョブを形成するようにジョブスクリプトを生成する。
【００９０】
印刷データの分割を行ったあと、送受信データ処理部５０３は、ステータスリスト６５０のカラム６５３の分割状況を"ｔｒｕｅ"に書き換える。さらに、分割後のジョブスクリプトをステータスリスト６５０のカラム６５５に格納する。
【００９１】
分割前のジョブスクリプトと分割後のジョブスクリプトは、図１０を用いて説明したとおりである。印刷データを条件に適う１部単位で分割することで、複数のＭＦＰで並行して印刷した場合にも１部ずつまとめて印刷できる。分割が完了したら終了する。
【００９２】
＜印刷完了の判定＞
図１２は、ステップ７１０のサーバー１３０の印刷が完了したか判断処理のフローチャートである。ステップＳ１２０１で、送受信データ処理部５０３は、ステータスリスト６５０の処理状況カラム６５２を参照する。"処理中"である場合は、ステップＳ１２０２に遷移する。"完了"である場合は、ステップＳ１２０６に遷移する。
【００９３】
ステップＳ１２０２では、送受信データ処理部５０３は、分割後のジョブスクリプトがまだ存在するかを判断する。具体的には送受信データ処理部５０３は、ステータス管理部５０６に、該当する印刷データの分割後のジョブスクリプトが存在しているか問い合わせる。ステータス管理部５０６は、ステータスリスト６５０のカラム６５５にデータが存在するかを判定する。その結果ジョブスクリプトの有無を示す情報を送受信データ処理部５０３に渡す。送受信データ処理部５０３はその結果から、分割後のジョブスクリプトの存在有無を判断し、分割されたジョブスクリプトを取得可能である場合は、ステップＳ１２０３に遷移する。存在しない場合は、ステップＳ１２０５に遷移する。
【００９４】
ステップＳ１２０３で、送受信データ処理部５０３は、ステータス管理部５０６から分割後のジョブスクリプトを１つ取得し、ステップＳ７１１に遷移する。
【００９５】
ステップＳ１２０５で、送受信データ処理部５０３は、ステータスリスト６５０のからむ６５２の処理状況を"処理中"から"完了"に書き換える。具体的には、送受信データ処理部５０３がステータス管理部５０６に指示し、ステータス管理部５０６が書き換えを行う。
【００９６】
ステップＳ１２０６で、送受信データ処理部５０３は、ステータスリスト６５０のカラム６５６の処理中ＭＦＰから、印刷完了通知を送信してきたＭＦＰを削除する。ＭＦＰ1１０であれば、ＭＦＰ１１０を削除し、ステップＳ７１４に遷移する。  ＜ＭＦＰ１１０でのプルプリント処理（ジョブ分割なし）＞  次に、印刷データがしきい値（２分）を超えていないため、印刷データの分割を行わない場合の例を説明する。図１３は、ＭＦＰ１１０とサーバー１３０の通信処理のシーケンス図である。特に印刷データがしきい値（２分）を超えていない場合である。図７で説明した印刷データがしきい値（２分）を超えている処理と同じ部分については説明を省略し、差分のみを説明する。
【００９７】
ステップ１３０１からステップ１３０４までは、ステップ７０１からステップ７０４とそれぞれ同じ処理であるため、省略する。
【００９８】
ステップ１３０５で、サーバー１３０は要求を受けた印刷データを分割すべきかを判断する。この判断処理は図９を用いて説明した処理である。図１３は、印刷データがしきい値（２分）を超えていない場合のシーケンスであるため、ステップＳ９０３でしきい値を超えていないと判断された場合となる。
【００９９】
ステップ１３０６で、サーバー１３０は、ＭＦＰ１１０に、要求された印刷データを送信する。具体的にはサーバー１３０の送受信データ処理部４３０が、印刷データリスト６００の画像データと印刷設定が記載されたジョブスクリプトを取得し、ＨＴＴＰ通信部５０２を介して送信する。ここで、取得したジョブスクリプトは印刷データリスト６００から取得しているため、分割されていないものである。"印刷データ１"であれば、図１０のジョブスクリプト１０００となる。このとき、送受信データ処理部は、送信した印刷データのカラム６５２の処理状況を"未処理"から"処理中"に書き換える。また、カラム６５５の処理中ＭＦＰに"ＭＦＰ１１０"を書き込む。ここで、分割されていない元のジョブスクリプトは削除されることはない。これは図７と同様である。
【０１００】
ステップ１３０７で、ＭＦＰ１１０は、ステップ１３０６で受け取った印刷データを解析し、印刷を行う。送受信データ処理部４０３は受け取った印刷データを解析し、分割されていないかを判断する。分割されていないため、機能制御部４０５に印刷を指示する。機能制御部４０５は受け取った画像データをジョブスクリプトに記載された処理に従って、印刷を行う。
【０１０１】
ステップ１３０８で、ＭＦＰ１１０は印刷が完了したことをサーバー１３０に通知する。通知を受け取ったサーバー１３０は、印刷データリスト６００とステータスリスト６５０から、通知に含まれている印刷データＩＤで特定される印刷データの情報を削除する。ただし、これはアップロードされた印刷データの印刷を１回に限り許している場合であり、複数回の印刷が許されていれば印刷データを削除しなくとも良い。
【０１０２】
以上が、印刷データの分割を行わない場合の例の説明である。印刷する枚数が少なく、印刷時間があまりかからないような場合には分割せずに印刷データをそのまま扱うため、サーバー１３０とＭＦＰ１１０の印刷データなどのデータのやりとりが１度で済む。
【０１０３】
＜ＭＦＰ１２０でのプルプリント処理＞
ユーザーは、ＭＦＰ１１０で印刷を開始した後にＭＦＰ１２０の前で操作を行う。以降では、ＭＦＰ１１０で"印刷データ１"の印刷を開始し、印刷データが分割されている例について記載する。その際のＭＦＰ１２０とサーバー１３０の処理を図１４乃至図１６を用いて説明する。ＭＦＰ１１０でのプルプリントと同じ処理である部分の説明は、省略する。ＭＦＰ１１０とサーバー１３０は、ステップ７１０からステップ７１３の処理を繰り返している状態で、ＭＦＰ１１０では印刷が行われている。
【０１０４】
図１４は、ユーザーがＭＦＰ１２０の前で操作を行ったときの、サーバー１３０のステータス管理部６５０で管理するステータスリスト６５０である。すなわち図１４のステータスリスト６５０は、図７の手順で分割された印刷データ１に係る印刷ジョブの処理が進み、そのうち２つの印刷ジョブが完了または処理中であることを示す。図６のステータスリスト６５０各カラムについては図６のステータスリスト６５０と同じであるため、説明を省略し、差分のみ説明する。また、印刷データリストは、図６に示したものと同じである。
【０１０５】
フィールド１４５１は、印刷データＩＤが"１"である印刷データが"処理中"であることを表している。
【０１０６】
フィールド１４５２は、"ｔｒｕｅ"であり、印刷データＩＤが"１"である印刷データが分割されていることを表している。
【０１０７】
フィールド１４５３は、"４０"であり、印刷データＩＤが"１"である印刷データに含まれる画像データが、４０部印刷済みであることを表している。
【０１０８】
フィールド１４５４は、印刷データＩＤが"１"である印刷データに含まれるジョブスクリプトを分割した後のジョブスクリプトが格納されている。
【０１０９】
フィールド１４５５は、"ＭＦＰ１１０"であり、印刷データＩＤが"１"である印刷データを処理しているＭＦＰが"ＭＦＰ１１０"であることを表している。すなわち印刷データ１は、ＭＦＰ１１０により、総部数１５０部のうち既に４０部分の印刷が済んでいる。
【０１１０】
＜ＭＦＰ１２０によるプルプリントシーケンス＞
図１５は、ＭＦＰ１２０とサーバー１３０の通信処理を示すシーケンス図である。特に、ＭＦＰ１１０で、"印刷データ１"の印刷が開始されており、印刷中である場合のシーケンスである。印刷データ１に係る印刷ジョブはＭＦＰ１１０での実行に先立ってサーバー１３０により既に分割されているものとする。サーバー１３０の処理は、図７で説明したＭＦＰ１１０との通信処理と同じであるため、差分のみを記載する。また、ＭＦＰ１２０は、ＭＦＰ１１０と同じハードウェア構成、ソフトウェア構成であるため、ＭＦＰ１１０についても図７と同じ処理である部分については内部的な説明を省略する。図１５の各装置の制御主体も図７と同様に各装置のＣＰＵである。
【０１１１】
ステップ１５０１で、ＭＦＰ１２０は、ログインユーザーの情報（ユーザー名等）をサーバー１３０に送信する。
【０１１２】
ステップ１５０２で、サーバー１３０はログインユーザーの印刷データリスト６００の一部の情報と、ステータスリスト６５０の一部の情報をＭＦＰ１２０に送信する。このとき、ステータスリスト６５０は図１４の状態となっている。
【０１１３】
ステップ１５０３で、ＭＦＰ１２０は、操作部２１１に、ＵＩ部４０１が印刷データの選択を受け付けるためのＵＩを表示する。このとき表示する印刷データの情報は、ステップ１５０２で受け取った情報を使用する。
【０１１４】
図８のＵＩ８５０は、ステップ１５０３で、ＭＦＰ１２０のＵＩ部４０１が操作部２１１に表示するＵＩの一例である。
【０１１５】
フィールド８５１は、"処理中"と表示しており、"印刷データ１"が印刷中であることを示している。
【０１１６】
フィールド８５２は、"ＭＦＰ１１０"と表示しており、"印刷データ１"を印刷中であるＭＦＰが、"ＭＦＰ１１０"であることを示している。
【０１１７】
フィールド８５３は、"並行印刷可"と表示しており、"印刷データ１"をＭＦＰ１２０からも印刷を開始することができることを示している。印刷データ名、処理状況、処理中ＭＦＰには、それぞれ受信したステータスリスト６５０の印刷データＩＤ６５１、処理状況６５２、処理中ＭＦＰ６５６の内容が表示される。またＭＦＰ１２０は、たとえばステータスリスト６５０に含まれた分割後のジョブスクリプト６５５を参照する。そして、当該印刷データの分割状況６５３が「ｔｒｕｅ」であり、分割されたジョブスクリプトがあれば、すなわち分割された未処理の印刷ジョブが残っていれば、並行印刷可と判断してその旨を備考欄に表示する。逆に残ってなければ並行印刷不可と表示する。
【０１１８】
ボタン８５４は、印刷開始の指示を受け付けるためのボタンである。ここでユーザーは表示された印刷データのリストから、未処理または並行印刷可の印刷データを選択し、印刷実行ボタン８５４で印刷を指示することができる。ここで並行印刷可の印刷データたとえば"印刷データ１"が選択された状態でボタン８５４が押下されると、ＭＦＰ１２０でも"印刷データ１"の印刷の開始指示を受け付け、ステップ１５０４に遷移する。
【０１１９】
図１５に戻り、ステップ１５０４で、ＭＦＰ１２０は、サーバー１３０に印刷データの要求を送信する。ここで要求する印刷データは、図８のＵＩ８５０で指示を受け付けた印刷データすなわち本例では"印刷データ１"である。
【０１２０】
ステップ１５０５で、サーバー１３０は、分割できるか否かの判断処理を行う。詳細については、図９で説明した処理と同じであるため省略する。"印刷データ１"はすでに印刷が開始されており、印刷データは分割されているため、ステップＳ９０２で分割されていると判断される。  ステップ１５０６で、サーバー１３０は、ＭＦＰ１２０に、分割を行った印刷データを送信する。具体的にはサーバー１３０の送受信データ処理部４３０が、印刷データリスト６００の画像データとステータスリスト６５０の分割後のジョブスクリプトのひとつを取得し送信する。このとき、送受信データ処理部５３０は、カラム６５６の処理中ＭＦＰに"ＭＦＰ１２０"を追加する。送信したジョブスクリプトはステータスリスト６５０から削除される。
【０１２１】
ステップ１５０７で、ＭＦＰ１２０の送受信データ処理部４０３は、ステップ１５０６で受け取った印刷データを解析し、画像データを画像データ管理部４０４に保存する。この際、印刷データＩＤも保存する。
【０１２２】
ステップ１５０８で、送受信データ処理部４０３は、ステップ１５０６で受け取った印刷データの印刷を機能制御部４０５に指示する。機能制御部４０５は、受け取った印刷データに含まれる画像データを、印刷データに含まれるジョブスクリプトに記載された処理に従って、印刷を行う。印刷を開始すると、ＵＩ部４０１は、印刷中の画面を表示する。ここで表示する印刷中の画面は不図示であるが、図１１のＵＩのように、さらに並行印刷を促す画面である。本実施形態では、ＭＦＰ１１０、ＭＦＰ１２０での並行印刷の処理を記載しているが、特に２台に限られず、さらに他のＭＦＰからでも並行して印刷することが可能である。
【０１２３】
ステップ１５０９で、ＭＦＰ１２０は印刷が完了したことをサーバー１３０に通知する。完了の通知には印刷データＩＤを含む。
【０１２４】
ステップ１５１０で、印刷の完了通知を受け取ったサーバー１３０は、通知に含まれる印刷データＩＤの印刷が完了したかを判断する。ステップ１５１０でのサーバー１３０の詳細な処理は、図１２とほぼ同じであるが、２点のみ異なる。１点目はステップＳ１２０３の後で図１５のステップ１５１１に分岐する。２点目は、ステップＳ１２０６の後で、図１５のステップ１５１４の処理に分岐する。ステップ１５１４は、ステップ１５１０からステップ１５１３の繰り返しを抜けたことを意味する。ステップ１５１４の処理は後述する。
【０１２５】
ステップ１５１１で、送受信データ処理部５０３は、図１２のステップＳ１２０３で取得した分割後のジョブスクリプトを、ＭＦＰ１２０に送信する。
【０１２６】
ステップ１５１２で、ＭＦＰ１２０は、ステップ１５１１で受け取ったジョブスクリプトの設定に従って印刷を行う。具体的には、送受信データ処理部４０３は、受けとった分割後のジョブスクリプトと同じ印刷ＩＤである画像データを、画像データ管理部４０４から取得する。その後、送受信データ処理部４０３は、分割後のジョブスクリプトと取得した画像データを機能制御部４０５に渡す。機能制御部４０６は、分割後のジョブスクリプトに記載された処理に従って、画像データの印刷を行う。ここで、印刷でジャムなどのエラーが発生した場合には、その旨をサーバー１３０に通知するように構成してもよい。その場合、以降は、サーバー１３０は、分割後のジョブスクリプトをＭＦＰ１２０には送信せずにＭＦＰ１１０にのみ送信する。
【０１２７】
ステップ１５１３で、送受信データ処理部５３０は、印刷の完了通知をサーバー１３０に送信する。このあと、サーバー１３０は、ステップ１５１０の処理を行う。
【０１２８】
この通知を受けたサーバ１３０はステップ１５１０から繰り返し処理を行う。
【０１２９】
一方、ステップ１５１０で印刷終了と判断された場合にはステップ１５１４に分岐する。ステップ１５１４は、分割後のジョブスクリプトの印刷が完了したあとのサーバー１３０の処理であり、ステッ１５１０からステップ１５１３の繰り返しの処理を抜けたあとの処理となる。ステップ１５１４で、サーバー１３０は、ＭＦＰ１２０に印刷の終了通知を送信する。
【０１３０】
ステップ１５１５で、ＭＦＰ１３０の送受信データ処理部４３０は、画像データ管理部４０４に格納されている画像データを削除する。
【０１３１】
以上のように、印刷の設定内容に応じて印刷データを印刷の実行に先立って分割しておくことで、ある画像形成装置で印刷を開始した後でも、同一のネットワークに接続された他のＭＦＰで並行印刷を行うことが可能となる。また、本実施形態では印刷物の１部を単位としてジョブを分割するために、各画像形成装置による印刷物の内容は、部数を別にすればおなじものとなる。そのため、分割後の印刷ジョブの管理が容易であり、サーバやＭＦＰに実装される本発明にかかる印刷システムを実現するためのプログラムも簡素化することができる。
【０１３２】
なお本実施形態では１部を単位として印刷ジョブを分割した。しかしよりジョブの管理が複雑化するものの、１部の印刷物を複数の部分に分割してそれらを並列に印刷することもできる。この場合には、並行印刷を行う各画像形成装置による出力物が異なるため、印刷ジョブの内容とその完了をより厳密に管理する必要がある。すなわち本実施形態でもオプション的に説明したが、ジョブスクリプト毎（すなわち印刷ジョブ毎）に固有のＩＤを付与し、ＭＦＰから印刷ジョブの完了通知があるごとに、サーバーは当該ジョブスクリプトを削除し、印刷済みの範囲を記録する。このようにして１部の印刷物が完了して初めて印刷完了とする。  ［第２の実施形態］
次に、本発明に係る第２の実施形態について、図１６を用いて説明する。第１の実施形態と異なるのは、ＭＦＰ１２０でＭＦＰ１１０と並行して印刷を開始した際の画像データの取得元となる装置である。つまり、第１の実施形態では、印刷データを、画像データも含めてサーバー１３０から取得していた。第２の実施形態では、印刷データに含まれる画像データをＭＦＰ１１０から取得する。システム構成やＭＦＰ、サーバー１３０のハードウェア構成、ソフトウェア構成などは第１の実施形態と同じである。
【０１３３】
図１６は、ＭＦＰ１１０で印刷途中の印刷データを、ＭＦＰ１２０から並行印刷する際の、ＭＦＰ１１０、ＭＦＰ１２０、サーバー１３０の通信処理を示したシーケンス図である。図１５と同じ処理である部分については説明を省く。
【０１３４】
ステップ１６０１からステップ１６０５までは、図１５のステップ１５０１からステップ１５０５までの処理とそれぞれ同じであるため、説明を省略する。
【０１３５】
ステップ１６０６で、サーバー１３０は、ＭＦＰ１２０に分割後のジョブスクリプトと、通信を行うために必要なＭＦＰ１１０の識別子を送信する。具体的には、サーバー１３０の送受信データ処理部５３０が、ステータス管理部５０６に処理中ＭＦＰの情報の取得を指示する。ステータス管理部５０６は、ステータスリスト６５０のカラム６５６から処理対象の印刷データ（印刷データ１）を処理中のＭＦＰ（本実施形態では、"ＭＦＰ１１０"）を取得し、送受信データ処理部５０３に渡す。送受信データ処理部は、ステップ１６０５で取得した分割後のジョブスクリプトと、取得した処理中ＭＦＰの情報を、ＨＴＴP通信部５０２を介して、ＭＦＰ１２０に送信する。
【０１３６】
ステップ１６０７で、ＭＦＰ１２０はＭＦＰ１１０に画像データの要求を行う。具体的には、ＭＦＰ１２０の送受信データ処理部４３０は、ステップ１６０６で受けとった分割後のジョブスクリプトを解析する。ＭＦＰ１２０の送受信データ処理部４０３は、解析して得られた印刷データＩＤの画像データを、当該印刷データを処理中の画像形成装置である"ＭＦＰ１１０"に対して要求する。要求の宛先はステップ１６０６で受信した識別子となる。
【０１３７】
ステップ１６０８で、ＭＦＰ１１０の送受信データ取得部４０３は、画像データ管理部４０４から、ステップ１６０７で受け取った印刷ＩＤの画像データを取得する。
【０１３８】
ステップ１６０９で、ＭＦＰ１１０の送受信データ処理部４０３は、ステップ１６０８で取得した画像データをＭＦＰ１２０に送信する。
【０１３９】
ステップ１６１０で、ＭＦＰ１２０の送受信データ処理部４０３は、ステップ１６０９で受け取った画像データを画像データ管理部４０４に保存する。この際、印刷データＩＤも保存する。
【０１４０】
ステップ１６１１で、送受信データ処理部４０３は、ステップ１６０６で受け取った時分割後のジョブスクリプトとステップ１６０９で受け取った画像データを印刷データとして、機能制御部４０５に印刷を指示する。機能制御部４０５は、受け取った印刷データに含まれる画像データを印刷データに含まれるジョブスクリプトに記載された処理に従って、印刷を行う。
【０１４１】
以降のステップ１６１２からステップ１６１８の処理は、それぞれ図１５のステップ１５０９からステップ１５１５までの処理と同じであるため、説明を省略する。
【０１４２】
以上のように、同じＬＡＮ内にある他のＭＦＰから、サイズの大きい画像データを取得することで、インターネットなどの外部にあるサーバーから取得するよりも、プルプリントの時間が少なくて済む。
【０１４３】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005618773.tif 000002
【図２】
0005618773.tif 000003
【図３】
0005618773.tif 000004
【図４】
0005618773.tif 000005
【図５】
0005618773.tif 000006
【図６】
0005618773.tif 000007
【図７】
0005618773.tif 000008
【図８】
0005618773.tif 000009
【図９】
0005618773.tif 000010
【図１０】
0005618773.tif 000011
【図１１】
0005618773.tif 000012
【図１２】
0005618773.tif 000013
【図１３】
0005618773.tif 000014
【図１４】
0005618773.tif 000015
【図１５】
0005618773.tif 000016
【図１６】
0005618773.tif 000017