(57)【要約】【課題】印刷ジョブのステータスを適切に管理することにより、分散処理型の印刷システムにおける印刷キャンセルリクエスト時に、印刷キャンセルを通知すべき対象を特定し、印刷キャンセル処理の迅速化を実現する仕組みを提供すること。【解決手段】印刷システム１０１は、負担分散装置３０２から印刷に関するリクエストを受け付けて印刷ジョブの実行ステータスを監視し、印刷に関するリクエストに応じて印刷ジョブに対する制御を行う。印刷システム１０１は、印刷ジョブの実行ステータスが、第１のステータスであれば印刷ジョブの印刷キャンセルを実行し、第２のステータスであれば印刷ジョブを実行する画像形成装置１０６に印刷キャンセルリクエストを送信し、第３のステータスであれば、印刷キャンセルリクエストの要求元に印刷キャンセルができないことを示すエラー通知を行う、ように制御する。【選択図】  図１１
2015204077.tif 000002
【特許請求の範囲】
【請求項１】
複数のプリントサーバが負担分散装置を介して印刷に関する処理を分散処理する印刷システムであって、
前記負担分散装置から印刷に関するリクエストを受け付けて印刷ジョブの実行ステータスを監視する監視手段と、
前記印刷に関するリクエストに応じて前記印刷ジョブに対する制御を行う制御手段とを備え、
前記制御手段は、前記監視手段により前記印刷ジョブの実行ステータスが、
第１のステータスであれば前記印刷ジョブの印刷キャンセルを実行し、
第２のステータスであれば前記印刷ジョブを実行する画像形成装置に印刷キャンセルリクエストを送信し、
第３のステータスであれば、前記印刷キャンセルリクエストの要求元に印刷キャンセルができないことを示すエラー通知を行う、ように制御する
ことを特徴とする印刷システム。
【請求項２】
前記制御手段は、前記印刷キャンセルリクエストを受け付けた際に前記印刷ジョブの実行ステータスが前記第１のステータスであれば、前記印刷ジョブの処理主体を特定し、該印刷ジョブの処理主体が自サーバ以外のサーバであれば前記処理主体のプリントサーバに前記印刷キャンセルリクエストを転送する、ように制御する
ことを特徴とする請求項１に記載の印刷システム。
【請求項３】
前記第１のステータスは前記印刷ジョブに対する処理が待機中である状態を示し、前記第２のステータスは前記プリントサーバから前記画像形成装置への前記印刷ジョブに係る印刷データの送信が送信中または完了した状態を示し、前記第３のステータスは前記画像形成装置による前記印刷ジョブの印刷中または印刷完了の状態を示す
ことを特徴とする請求項１または２に記載の印刷システム。
【請求項４】
前記監視手段は、前記印刷リクエストを受け付けて前記印刷ジョブにキャンセルフラグが設定されているかをさらに監視し、
前記制御手段は、前記キャンセルフラグが設定されていなければ前記画像形成装置との通信を確立するように制御する
ことを特徴とする請求項１乃至３のいずれか一項に記載の印刷システム。
【請求項５】
前記監視手段は、前記印刷ジョブのスケジュール管理をプリントサーバが行うサーバモードか画像形成装置が行うデバイスモードかをさらに監視する
ことを特徴とする請求項１乃至４のいずれか一項に記載の印刷システム。
【請求項６】
前記制御手段は、
前記デバイスモードであれば、前記印刷ジョブのスケジュールを前記画像形成装置から取得し、前記スケジュールに含まれる印刷ジョブの印刷データが要求された際に該印刷データを要求元の前記画像形成装置に送信し、
前記サーバモードであれば、自サーバが管理するスケジュールに従って前記印刷データを前記画像形成装置に送信する、ように制御する
ことを特徴とする請求項５に記載の印刷システム。
【請求項７】
前記制御手段は、前記印刷キャンセルリクエストを受け付けた際に、前記デバイスモードであって、前記画像形成装置が管理するスケジュールに従って前記印刷データの送信を待機している場合は、前記第２のステータスとして前記画像形成装置に前記印刷キャンセルリクエストを送信するように制御する
ことを特徴とする請求項６に記載の印刷システム。
【請求項８】
複数のプリントサーバが負担分散装置を介して印刷に関する処理を分散処理する印刷システムと該印刷システムを利用して印刷を実行する画像形成装置とを備える情報処理システムであって、
前記印刷システムは、
前記負担分散装置から印刷に関するリクエストを受け付けて印刷ジョブの実行ステータスを監視する監視手段と、
前記印刷に関するリクエストに応じて前記印刷ジョブに対する制御を行う制御手段とを備え、
前記画像形成装置は、前記印刷システムからの通知に従って前記印刷ジョブに関する処理を行う処理手段を備え、
前記制御手段は、前記監視手段により前記印刷ジョブの実行ステータスが、
第１のステータスであれば前記印刷ジョブの印刷キャンセルを実行し、
第２のステータスであれば前記印刷ジョブを実行する画像形成装置に印刷キャンセルリクエストを送信し、
第３のステータスであれば、前記印刷キャンセルリクエストの要求元に印刷キャンセルができないことを示すエラー通知を行う、ように制御する
ことを特徴とする情報処理システム。
【請求項９】
複数のプリントサーバが負担分散装置を介して印刷に関する処理を分散処理する印刷システムの制御方法であって、
前記負担分散装置から印刷に関するリクエストを受け付けて印刷ジョブの実行ステータスを監視する監視工程と、
前記印刷に関するリクエストに応じて前記印刷ジョブに対する制御を行う制御工程とを備え、
前記制御工程では、前記印刷ジョブの実行ステータスが、
第１のステータスであれば前記印刷ジョブの印刷キャンセルが実行され、
第２のステータスであれば前記印刷ジョブを実行する画像形成装置に印刷キャンセルリクエストが送信され、
第３のステータスであれば、前記印刷キャンセルリクエストの要求元に印刷キャンセルができないことを示すエラー通知が行われる、ように制御する
ことを特徴とする制御方法。
【請求項１０】
請求項９に記載の制御方法をコンピュータにより実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷に係る処理を分散処理する印刷システム、情報処理システム、制御方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
クライアントから印刷リクエストを受けてプリントサーバが印刷データを生成し、この印刷データを画像形成装置が受信して印刷を実行する印刷システムが提供されている。このような印刷システムでは、例えばクライアントから印刷キャンセルリクエストが行われた場合に、プリントサーバは迅速に印刷キャンセルを実行することが望ましい。しかしながら、プリントサーバがファイアウォール越しのインターネット上に存在する場合、プリントサーバから画像形成装置に印刷キャンセルを通知することができない。そこで、特許文献１は、印刷データの生成、転送の状態によって印刷キャンセル処理の判断を切り替え適切に印刷キャンセルを行う技術を開示している。
【０００３】
上記のような印刷システムの普及に伴い、多数のプリントデバイスを複数のプリントサーバで管理し、印刷ジョブを分散処理する印刷システムが提案されている。この印刷システムでは、一般的な負荷分散装置であるロードバランサを用いて印刷リクエストが各プリントサーバに分散される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２２７６２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記分散処理型の印刷システムでは、印刷キャンセルリクエストも印刷リクエスト同様にロードバランサにより分散させる構成を採用することが考えられる。印刷キャンセルリクエストを受け付けたプリントサーバは、印刷キャンセルリクエストされた印刷ジョブの処理を実行するプリントサーバに印刷キャンセルリクエストを転送する必要がある。しかしながら、先行技術文献１が開示する技術では、分散処理型の印刷システムが考慮されておらず、印刷キャンセルを実施できない。また、ロードバランサは高速にリクエストを割り振ることができるが、印刷順序の制御や印刷キャンセルリクエストされた印刷ジョブの処理主体サーバの特定など高度なリクエスト分散はできない。
【０００６】
本発明は、印刷ジョブのステータスを適切に管理することにより、分散処理型の印刷システムにおける印刷キャンセルリクエスト時に、印刷キャンセルを通知すべき対象を特定し、印刷キャンセル処理の迅速化を実現する仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一実施形態の印刷システムは、複数のプリントサーバが負担分散装置を介して印刷に関する処理を分散処理する。前記印刷システムは、前記負担分散装置から印刷に関するリクエストを受け付けて印刷ジョブの実行ステータスを監視する監視手段と、前記印刷に関するリクエストに応じて前記印刷ジョブに対する制御を行う制御手段とを備える。前記制御手段は、前記監視手段により前記印刷ジョブの実行ステータスが、第１のステータスであれば前記印刷ジョブの印刷キャンセルを実行し、第２のステータスであれば前記印刷ジョブを実行する画像形成装置に印刷キャンセルリクエストを送信し、第３のステータスであれば、前記印刷キャンセルリクエストの要求元に印刷キャンセルができないことを示すエラー通知を行う、ように制御する。
【発明の効果】
【０００８】
本発明によれば、印刷ジョブのステータスを適切に管理することにより、分散処理型の印刷システムにおける印刷キャンセルリクエスト時に、印刷キャンセルを通知すべき対象を特定し、印刷キャンセル処理の迅速化を実現することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】情報処理システムの全体構成を示す図である。
【図２】各装置のハードウェア構成を示す図である。
【図３】プリントサーバのモジュール構成を示す図である
【図４】ＤＢＭＳにて管理される各種情報を示す図である。
【図５】プリントデバイスの構成を階層的に示した図である。
【図６】スケジュールアプリケーションのモジュール構成とスケジュール情報を示す。
【図７】プリントサーバの印刷リクエスト受付時の処理フローである。
【図８】プリントサーバの印刷処理フローである。
【図９】ＳｅｒｖｅｒＳｃｈｅｄｕｌｉｎｇモードでの印刷シーケンス図である。
【図１０】ＤｅｖｉｃｅＳｃｈｅｄｕｌｉｎｇモードでの印刷シーケンス図である。
【図１１】プリントサーバの印刷キャンセルリクエスト受付時の処理フローである。
【図１２】プリントサーバの印刷キャンセル失敗時の処理フローである。
【発明を実施するための形態】
【００１０】
（実施例１）
＜システム構成＞
以下、本発明の実施形態について図面に基づいて説明する。図１は、本発明の情報処理システムの全体構成例を示すブロック図である。図１に示すように、情報処理システムは、情報処理システムを制御するサーバコンピュータシステムと、プリントデバイスおよびクライアントコンピュータとを備える。サーバコンピュータシステムと、プリントデバイスおよびクライアントコンピュータとは、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ  １０９（以下ＷＡＮと呼ぶ）を介して広域に接続されている。
【００１１】
サーバコンピュータシステムは、プリントサーバシステム１０１、Ｗｅｂサーバシステム１０２、ディレクトリサーバ１０３、ＤＢＭＳ１０４、ストレージ１０５から構成される。プリントサーバシステム１０１は、情報処理システムにおけるプリントデバイスの監視や管理、印刷ジョブの制御や監視、プリントデバイスへの印刷ジョブの転送を司るサーバコンピュータシステムである。プリントサーバシステム１０１は、大規模な情報処理システムの場合は負荷分散するためのクラスタ構成もしくは冗長性を持たせたクラスタ構成を備える。すなわち、プリントサーバシステム１０１は、複数のプリントサーバから構成される印刷システムとして機能する。またＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ  １０８Ａ（以下ＬＡＮと呼ぶ）を介してＤＢＭＳ１０４やＷｅｂサーバシステム１０２と接続し、印刷ジョブデータや印刷制御指示、管理している印刷ジョブの情報等を交換する。
【００１２】
Ｗｅｂサーバシステム１０２は、プリントサーバシステム１０１が管理している印刷ジョブの情報やＤＢＭＳ１０４が管理しているドキュメント情報を、ＷＡＮを介して各フロントエンドのクライアント１０７に送信する。Ｗｅｂサーバシステム１０２は、大規模な情報処理システムの場合は負荷分散のためのクラスタ構成や冗長構成となることが通例である。また、クライアント１０７からの印刷指示、印刷キャンセル指示などの印刷ジョブの操作を受け付けプリントサーバシステム１０１へ指示を転送する。また、Ｗｅｂサーバシステム１０２は、ディレクトリサーバ１０３と連携してクライアント１０７からのログインの認証管理を行う。
【００１３】
ディレクトリサーバ１０３は、ユーザ名およびパスワードの組み合わせによってユーザの認証管理を行うサーバである。各ユーザ情報はそれぞれドメイングループに参加するような構成も可能であり、例えば、ドメイングループ内のユーザ同士での権限をユーザ単体の権限とは違う範囲で設定することも出来る。ユーザ情報は複数のドメイングループに参加するように設計することも可能である。
【００１４】
ＤＢＭＳ１０４（ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）は、ストレージ１０５に保存されているドキュメントテーブル４００、ジョブテーブル４１０やデバイステーブル４２０といったデータ（図４を用いて後述）を管理する。他サーバから各種データの更新、取得、追加、削除といったオペレーションを受け付け実行する。また大規模な情報処理システムの場合は負荷分散するためのクラスタ構成や障害発生に備え冗長性を持たせたシステム構成をとることも考えられる。またストレージ１０５はＤＢＭＳ１０４とＤＡＳ（Ｄｉｒｅｃｔ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）として直接接続する形態をとっても良いし、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）としてネットワークを介して接続する形態をとっても良い。
【００１５】
プリントデバイス１０６Ａ，１０６Ｂ，１０６Ｃおよび１０６Ｄは、プリントサーバから受信した印刷データを印刷する画像形成装置であり、以下ではプリントデバイス１０６と呼ぶ。各印刷デバイスは、不図示のネットワークインタフェースを介しＬＡＮ１０８ＢまたはＬＡＮ１０８Ｃに接続されている。また、ＬＡＮ１０８ＢまたはＬＡＮ１０８ＣはＷＡＮ１０９と接続しており、プリントデバイス１０６はこのＬＡＮおよびＷＡＮを介して先述したプリントサーバシステム１０１と通信することが出来る。このプリントデバイス１０６としては電子写真方式を採用したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタ等を適宜適用することができる。また、プリントデバイス１０６は、後述する印刷スケジュールを管理するスケジュールアプリケーション５０１備える。
【００１６】
クライアント１０７Ａ，１０７Ｂ，１０７Ｃおよび１０７Ｄは情報処理を行うためのクライアントコンピュータであり、以下ではクライアント１０７と呼ぶ。各クライアント１０７は、不図示のネットワークインタフェースを介しＬＡＮ１０８ＢまたはＬＡＮ１０８Ｃに接続されており、ＷＡＮ１０９を介して各種サーバシステムと通信することが出来る。クライアント１０７はＷｅｂブラウザを備え、Ｗｅｂサーバシステム１０２で生成されるＷｅｂ画面を表示可能である。ユーザはＷｅｂブラウザ上に表示されるＷｅｂ画面を操作することでサーバシステムへの認証、印刷リクエスト、印刷キャンセルなどの操作を行う。
【００１７】
＜ハードウェア構成＞
本実施形態に係る情報処理システムは、図２に示すような構成のサーバおよびプリントデバイスから構成されるシステム上に実現される。図２は、プリントサーバシステム１０１を構成するプリントサーバ３０１とプリントデバイス１０６がＷＡＮ１０９およびＬＡＮ１０８を介して通信可能に接続されている様子を示す。
【００１８】
まず、プリントサーバ３０１のハードウェア構成２００について説明する。尚、図２に示されるハードウェアブロック図は一般的な情報処理装置のハードウェアブロック図に相当するものとし、本実施形態のプリントサーバ３０１には一般的な情報処理装置のハードウェア構成を適用できる。また、プリントサーバ３０１だけでなく、Ｗｅｂサーバシステム１０２を構成するＷｅｂサーバやクライアント１０７についても同様である。
【００１９】
プリントサーバ３０１のハードウェア構成２００は、ＣＰＵ２３１乃至外部メモリ２４１を備える。ＣＰＵ２３１は、ＲＯＭ２３３のプログラム用ＲＯＭに記憶、またはハードディスク（ＨＤ）等の外部メモリ２４１からＲＡＭ２３２にロードされたＯＳやアプリケーション等のプログラムを実行し、システムバス２３４に接続される各ブロックを制御する。ＯＳとは、コンピュータ上で稼動するオペレーティングシステムの略語である。なお、ＣＰＵ、ＲＯＭ、ＲＡＭはそれぞれ、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略称である。本発明の各種処理は、上述の各種プログラムの実行により実現される。
【００２０】
ＲＡＭ２３２は、ＣＰＵ２３１の主メモリ、ワークエリア等として機能する。ＲＯＭ２３３内のプログラムＲＯＭには、ＣＰＵ２３１の制御プログラム等を記憶している。ＲＯＭ２３３内のフォント用ＲＯＭには、出力情報を生成する際に使用するフォントデータ等を記憶している。ＲＯＭ２３３内のデータ用ＲＯＭには、ハードディスク等の外部メモリ２０３がない場合、プリントデバイス１０６と送受信を行う情報等を記憶している。キーボードコントローラ（ＫＢＣ）２３５は、キーボード２３９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）２３６は、ＣＲＴディスプレイ２４０の表示を制御する。ディスクコントローラ（ＤＫＣ）２３７は、各種データを記憶するハードディスク（ＨＤ）等の外部メモリ２４１におけるデータアクセスを制御する。ネットワークコントローラ（ＮＣ）２３８は、ＷＡＮ１０９もしくはＬＡＮ１０８を介して接続されたプリントデバイス１０６や他の機器との通信制御処理を実行する。
【００２１】
尚、後述の全ての説明においては、特に断りのない限りサーバにおける実行のハード上の主体はＣＰＵ２３１であり、ソフトウェア上の主体は外部メモリ２４１にインストールされたアプリケーションプログラムである。
【００２２】
次に、プリントデバイス１０６のハードウェア構成２５０について説明する。プリントデバイス１０６のハードウェア構成２５０は、ＣＰＵ２０１乃至スキャナ部２１３から構成される。ＣＰＵ２０１は、ＲＯＭ２０２や、外部メモリ２０３に記憶された制御プログラムを実行し、システムバス２０４に接続される各ブロックを制御する。ＣＰＵ２０１の処理により生成された画像信号が、印刷部Ｉ／Ｆ２０５を介して、印刷部２０６に出力情報として出力される。
【００２３】
スキャナ部は原稿画像を光学的に読み取ってスキャナ部Ｉ／Ｆ２１２を介して読み込み情報を制御プログラムに入力する。また、ＣＰＵ２０１は、入力部２０７とネットワーク部２１０を介してプリントサーバ３０１との通信処理が可能となっており、プリントデバイス１０６内の情報等をプリントサーバ３０１に通知できる。
【００２４】
ＲＯＭ２０２内のプログラムＲＯＭは、ＣＰＵ２０１の制御プログラム等を記憶している。ＲＯＭ２０２内のフォント用ＲＯＭには、出力情報を生成する際に使用するフォントデータ等を記憶している。ＲＯＭ２０２内のデータ用ＲＯＭには、ハードディスク等の外部メモリ２０３がない場合、プリントサーバ３０１と送受信を行う情報等を記憶している。
【００２５】
ＲＡＭ２０８は、ＣＰＵ２０１の主メモリや、ワークエリア等として機能するＲＡＭであり、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。また、ＲＡＭ２０８は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。
【００２６】
外部メモリ２０３は、メモリコントローラ（ＭＣ）２０９によりアクセスを制御される。外部メモリ２０３は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、操作部２１１は操作のためのスイッチ及びＬＥＤ表示器等で構成されている。
【００２７】
尚、後述の全ての説明においては、特に断りのない限り画像形成装置における実行のハード上の主体はＣＰＵ２０１であり、ソフトウェア上の主体は外部メモリ２０３にインストールされたアプリケーションプログラムである。
【００２８】
＜プリントサーバシステム＞
図３は、プリントサーバシステム１０１の構成を示すブロック図である。図３に示すように、プリントサーバシステム１０１は、複数のプリントサーバ３０１とロードバランサ３０２から構成される。プリントサーバシステム１０１では、大規模な印刷システムに対応するために負荷分散構成がとられており、複数台のプリントサーバ３０１がＬＡＮ１０８Ａと負荷分散するためのスイッチ機構であるロードバランサ３０２を介して接続している。ロードバランサ３０２は、複数台のプリントサーバ３０１の負荷状況を把握し、負荷の少ないサーバに対して各種リクエストを優先的に発行するように分散処理を行う負担分散装置である。分散処理方法としては、限定されるものではないが、単純にリクエストを順次各サーバに回していくラウンドロビン方式や、規定のリクエストを定期的に各プリントサーバ３０１に送出し、リプライの早いサーバにリクエストする方法などが用いられる。
【００２９】
プリントサーバ３０１の構成について説明する。プリントサーバ３０１はＡＰＩ３０３、ジョブマネージャ３０４、デバイスマネージャ３０５から構成される。ＡＰＩ３０３は、Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅである。ＡＰＩ３０３は、Ｗｅｂサーバシステム１０２からのドキュメント登録、ドキュメントの印刷リクエストや印刷キャンセルリクエストなどの印刷ジョブの制御リクエストを受け付ける。また、ＡＰＩ３０３は、ＤＢＭＳ１０４へドキュメントを登録する場合や、印刷リクエストを受けてＤＢＭＳ１０４のジョブ情報を更新する場合など、ＤＢＭＳ１０４との通信も行う。
【００３０】
ジョブマネージャ３０４は、ＡＰＩ３０３が受け付けたドキュメント情報を、ＡＰＩ３０３を介してＤＢＭＳ１０４のドキュメントテーブル４００に登録し管理する。ジョブマネージャ３０４は、ＡＰＩ３０３が印刷リクエストを受け付けると、ＡＰＩ３０３を介してＤＢＭＳ１０４から印刷するドキュメント情報とデバイス情報を取得し、ジョブテーブル４１０にジョブ情報を登録しジョブ管理する。また、ジョブマネージャ３０４は、取得したドキュメントを印刷すべきプリンタとデバイス１０６へ印刷するようデバイスマネージャ３０５へ指示する。
【００３１】
デバイスマネージャ３０５は、ジョブマネージャ３０４から印刷データの送信リクエストを受け付けると、プリントデバイス１０６と通信を開始し、順次、印刷に係る処理を実行する。この印刷処理の詳細については後述する。デバイスマネージャ３０５はＡＰＩ３０３を介してＤＢＭＳ１０４が保持するデバイステーブル４２０を管理する。
【００３２】
図４は、ＤＢＭＳ１０４に格納されるドキュメントテーブル４００、ジョブテーブル４１０、デバイステーブル４２０を示す。ジョブマネージャ３０４が管理するドキュメントテーブル４００は、ドキュメントＩＤ４０１、ドキュメント名４０２、ユーザ名４０３、データパス４０４から構成される。プリントサーバ３０１はクライアント１０７などからドキュメントを受信すると、ドキュメントをユニークに識別可能なドキュメントＩＤ４０１を発行し、データパス４０４にドキュメントデータを保存する。ドキュメント名４０２とユーザ名４０３はドキュメント受信時に指定された値が保存される。
【００３３】
ジョブマネージャ３０４が管理するジョブテーブル４１０は、ジョブＩＤ４１１、ユーザ名４１２、ドキュメントＩＤ４１３、ステータス４１４、デバイスジョブＩＤ４１５、デバイスＩＤ４１６、キャンセルフラグ４１７から構成される。プリントサーバ３０１は、印刷リクエストを受信すると印刷ジョブをユニークに識別可能なジョブＩＤ４１１を発行する。ユーザ名４１２、ドキュメントＩＤ４１３、デバイスＩＤ４１６には、印刷リクエスト時に指定された値が保存される。また、ドキュメントＩＤ４１３はドキュメントテーブル４００のドキュメントＩＤ４０１と関連づいており、互いに参照可能となっている。
【００３４】
デバイスＩＤ４１６は、デバイステーブル４２０のデバイスＩＤ４１６と関連づいており、互いに参照可能となっている。ステータス４１４は印刷ジョブの状態を表し、印刷待ち、スケジュール待機中、送信中、送信済、印刷中、印刷完了、エラー終了などの実行ステータスが格納される。ステータス４１４の遷移については後述する。デバイスジョブＩＤ４１５は、プリントデバイス１０６内のスケジュールアプリケーション５０１により発行されるジョブの識別子である。プリントサーバ３０１はデバイスジョブＩＤ４１５を用いてデバイス内のジョブ制御を行うことができる。キャンセルフラグ４１６は、印刷ジョブがキャンセルされたことを示すフラグである。プリントサーバ３０１は、キャンセルフラグが有効（フラグ＝１）な場合に印刷処理を進めずに印刷ジョブをキャンセルする。
【００３５】
デバイスマネージャ３０５が管理するデバイステーブル４２０は、デバイスＩＤ４２１、デバイス名４２２、ＩＰアドレス４２３、ポート番号４２４、スケジュールモード４２５、担当プリントサーバ４２６から構成される。デバイスＩＤ４２１は、デバイスをユニークに識別可能なＩＤである。デバイス名４２２はプリントデバイスの名称である。ＩＰアドレス４２３とポート番号４２４はデバイス接続先情報であり、プリントサーバ３０１はＩＰアドレス４２３とポート番号４２４に対して印刷データを送信する。
【００３６】
スケジュールモード４２５は、プリントサーバ３０１の印刷データ送信のスケジュール管理方法を示し、ＳｅｒｖｅｒＳｃｈｅｄｕｌｉｎｇモードとＤｅｖｉｃｅＳｃｈｅｄｕｌｉｎｇモードがある。ＳｅｒｖｅｒＳｃｈｅｄｕｌｉｎｇモード（サーバモード）は、プリントサーバ３０１が印刷データのプリントデバイスへの送信を管理する。ＤｅｖｉｃｅＳｃｈｅｄｕｌｉｎｇモード（デバイスモード）は、スケジュールアプリケーション５０１の指示によりプリントサーバ３０１が印刷データをプリントデバイスへ送信する。
【００３７】
スケジュールモードの違いによる印刷処理の詳細については後述する。担当プリントサーバ４２６は、プリントデバイスへの印刷処理を担当しているプリントサーバ３０１のホスト名である。複数のプリントサーバ３０１が１台のプリントデバイス１０６に対して印刷を行うと印刷順序を制御することができない。そのため担当プリントサーバ４２６にホスト名が登録されている１台のプリントサーバ３０１がプリントデバイスへの印刷を担当することによって印刷順序を守ることができる。
【００３８】
＜Ｗｅｂサーバシステム＞
Ｗｅｂサーバシステム１０２は前述したとおり、負荷分散するためのクラスタ構成が通例であり、複数のＷｅｂサーバから構成される。ＷｅｂサーバはＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムにおいて情報通信を行うサーバであり、ソフトウェアである。Ｗｅｂサーバシステム１０２は以下の機能を備える。Ｗｅｂサーバシステム１０２は、フロントエンドのクライアント１０７からのログインによってユーザアカウント情報及びパスワードを得て、ディレクトリサーバ１０３へ認証を依頼する。Ｗｅｂサーバシステム１０２は、ログイン認証に成功するとＤＢＭＳ１０４からドキュメントテーブル４００、ジョブテーブル４１０、デバイステーブル４２０の情報を取得し、ログインしているクライアント１０７やプリントデバイス１０６へ情報を送信する。また、Ｗｅｂサーバシステム１０２は、クライアント１０７からのドキュメントの印刷指示を得て、ドキュメントＩＤを付与した印刷指示をプリントサーバシステム１０１へ送信する。Ｗｅｂサーバシステム１０２は、クライアント１０７からの印刷キャンセル指示を得て、ジョブＩＤを付与した印刷キャンセル指示をプリントサーバシステム１０１へ送信する。
【００３９】
＜ＤＢＭＳ＞
ＤＢＭＳ１０４は、先述したドキュメントテーブル４００、ジョブテーブル４１０、デバイステーブル４２０をテーブル情報として保持している。ＤＢＭＳ１０４は例えば、Ｗｅｂサーバシステム１０２から指定したユーザ名と一致する全てのドキュメント情報の取得のために利用される。また、ＤＢＭＳ１０４は、プリントサーバ３０１からドキュメントＩＤの指定によって一致するドキュメント情報の取得や、プリントサーバ３０１からの新規ドキュメントの登録等を行う。プリントサーバ３０１のドキュメントテーブル４００、ジョブテーブル４１０、デバイステーブル４２０の参照や更新処理は全てＤＢＭＳ１０４を介して行うが以下ＤＢＭＳ１０４の説明は省略する。
【００４０】
＜プリントデバイス＞
図５は、プリントデバイスのソフトウェア構成を階層的に示す図である。図５に示すように、画像形成部５１３は、紙のハンドリングや画像転写・定着等の一連の画像形成プロセスを実行して、記録紙等の記録媒体上への画像形成を制御する。画像読み取り部５１７は、スキャナを用いた原稿画像を光学的に読み取ってディジタル画像情報への変換を制御する。また、画像読み取り部５１７は、前記ディジタル画像情報を画像形成部５１３に出力して画像を形成したり、又はファックス部５１２やネットワークインタフェース部５１４等に渡して回線を介して伝送したりする。
【００４１】
デバイスコントローラ５１０は、画像形成部５１３と、画像読み取り部５１７とのそれぞれの動作を制御し、例えば画像読み取り部５１７で読み取った原稿情報を画像形成部５１３が複写するよう制御する。また、デバイスコントローラ５１０は、ネットワークインタフェース部５１４、プリント処理部５１５、ファックス部５１２、操作制御部５１１を有し、これら各部の間での情報のやり取りも制御する。
【００４２】
ファックス部５１２は、ファクシミリ画像の送受信、即ち、画像読み取り部５１７で読み取ったディジタル画像情報を送信したり、また逆に、受信したファクシミリ信号を復号し、画像形成部５１３で記録したりする等の処理を実行する。
【００４３】
操作制御部５１１は、プリントデバイスが備える操作パネル（または表示部）を使用したユーザの操作に応じて信号を発生したり、操作パネル等に各種データやメッセージ等を表示したりするよう、制御を行う。プリント処理部５１５は、例えばネットワークインタフェース部５１４を介して入力された印刷データを処理して画像形成部５１３に出力し、印刷する等の制御を行う。ネットワークインタフェース部５１４は、通信回線を介して他の通信端末との間のデータの送受信を制御する。
【００４４】
仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）５０５は、デバイスコントローラ５１０の上位に位置し、この仮想マシン５０５からデバイスコントローラ５１０を制御できるように構成されている。また、ネットワークインタフェース部５１４は、デバイスコントローラ５１０と、仮想マシン５０５との双方から直接利用でき、それぞれ独立して外部ネットワークにアクセスすることができるよう構成されている。
【００４５】
更に、仮想マシン５０５の上位には、仮想マシン５０５が提供するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）に対応したプログラミング言語で記述されたアプリケーションが存在している。これらのアプリケーションは、仮想マシン５０５を介して間接的にデバイスコントローラ５１０に働きかけることができ、また画像形成部５１３や画像読み取り部５１７を動作させることができる。
【００４６】
本実施形態では、プリントデバイス１０６は、アプリケーションとしてスケジュールアプリケーション５０１を備える。このようなアプリケーションは、仮想マシン５０５上からアンインストールしたり、更に新たにアプリケーション５０４としてインストールしたりするといった事が可能なように構成されている。
【００４７】
また、上述したアプリケーションは、本実施形態ではプリントデバイス１０６にインストールされるアプリケーションとして説明したが、ハードウェアとして備えられていても良い。また、外部装置としてプリントデバイス１０６と通信可能に接続されたコンピュータ上のアプリケーションとして備えていても良い。
【００４８】
外部メモリ制御部５１６は、画像読み取り部５１７で読み取った画像を画像形成部５１３で外部記憶装置に保存可能なデータフォーマットに変換し、外部記憶装置に保存する。また、外部メモリ制御部５１６は、外部メモリに保存したデータを読み出し、画像形成部５１３を介して印刷処理を行ったり、ネットワークインタフェース部５１４を介して外部にネットワーク送信したりする。
【００４９】
＜スケジュールアプリケーション＞
図６は、スケジュールアプリケーション５０１の構成を示すブロック図とスケジュールアプリケーション５０１が保持するスケジュール情報６１０を示す図である。図６（Ａ）に示すスケジュールアプリケーション５０１は、通信マネージャ６０１、ジョブマネージャ６０２、デバイスマネージャ６０３から構成される。通信マネージャ６０１は、プリントサーバ３０１からの接続やリクエストの受け付け、デバイスコントローラ５１０から通知される印刷ジョブのステータス変化の通知を行う。印刷のシーケンスについての詳細は後述する。
【００５０】
ジョブマネージャ６０２は、プリントサーバ３０１から受け付けた印刷ジョブのスケジューリングや印刷ジョブの管理を行うモジュールであり、スケジュール通りに印刷が順次行われるよう制御する。なお、印刷ジョブのスケジューリングは、ユーザ操作により設定を変更することができる。また、プリントサーバ３０１からの印刷キャンセルなどの印刷ジョブの制御指示を受け付け、印刷ジョブをコントロールする。デバイスマネージャ６０３は、デバイスコントローラ５１０との通信を行うモジュールであり、印刷ジョブの削除を行ったり、印刷ジョブの状態の変化をキャッチしたりするドライバである。
【００５１】
図６（Ｂ）に示すスケジュール情報６１０は、印刷ジョブのデバイスジョブＩＤ６１１、印刷ジョブのステータス６１２から構成される。デバイスジョブＩＤ６１１は、スケジュールアプリケーション５０１が印刷ジョブのスケジュール要求を受け付けた際に発行されるジョブ識別子である。ステータス６１２は印刷ジョブの状態であり、ステータス遷移に伴ってプリントサーバ３０１にイベント通知される。ステータス６１２には、限定されるものではないが、スケジュール待機中、送信中、送信済、印刷中、印刷完了、エラー終了などの状態がある。
【００５２】
＜プリントサーバの印刷処理＞
以下、図７乃至図１２を参照し、本実施形態における印刷及び印刷ジョブの操作フローについて図面を参照して説明する。図７は、プリントサーバ３０１がＷｅｂサーバシステム１０２からの印刷リクエストを受け付けた際の処理フローである。プリントサーバ３０１は、ユーザ名、印刷するドキュメントのドキュメントＩＤ、プリントデバイスのデバイスＩＤをパラメータとして印刷リクエストを受け付ける（Ｓ７０１）。次に、プリントサーバ３０１は、印刷リクエストで受け付けたデバイスＩＤが一致するデバイス情報をデバイステーブル４２０から取得する。そして、プリントサーバ３０１は、担当プリントサーバ４２６より印刷リクエストされたプリントデバイスの担当プリントサーバのホスト名を特定する（Ｓ７０２）。
【００５３】
Ｓ７０３で、プリントサーバ３０１は、プリントデバイスを他のプリントサーバ３０１が担当しているかどうか判断する。プリントサーバ３０１は、担当プリントサーバ４２６のホスト名が自ホスト名以外のホスト名または空でない場合に他のプリントサーバが担当していると判断する。例えば、担当プリントサーバ４２６が空の場合、プリントサーバ３０１は、担当プリントサーバ４２６を自プリントサーバ３０１のホスト名を用いて更新する（Ｓ７０４）。そしてプリントサーバ３０１は、新たなジョブＩＤ４１１を発行しジョブ情報をジョブテーブル４１０に新規登録する（Ｓ７０４）。
【００５４】
ここで登録するジョブ情報におけるユーザ名４１２、ドキュメントＩＤ４１３、デバイスＩＤ４１６は印刷リクエストを受け付けた際に該リクエストに含まれるユーザ名、ドキュメントＩＤ、デバイスＩＤである。また、プリントサーバ３０１はステータス４１４を印刷待ち、キャンセルフラグを０に設定する。Ｓ７０３において他のプリントサーバ３０１がプリントデバイスを担当している場合、プリントサーバ３０１は、担当プリントサーバ４２６に登録されているホスト名に対してＳ７０１で受け付けた印刷リクエストを転送する。
【００５５】
図８は、プリントデバイスの印刷を担当するプリントサーバ３０１が行う印刷処理フローである。先述のＳ７０３〜Ｓ７０５において担当プリントサーバ４２６が空だった場合、すなわちプリントデバイスへの印刷を開始していない場合に、プリントサーバ３０１はＳ７０５で生成されたジョブ情報を用いて印刷処理を開始する（Ｓ８０１）。
【００５６】
Ｓ８０２で、プリントサーバ３０１は、キャンセルフラグが立っているかを判断する。キャンセルフラグ４１６が１の場合、プリントサーバ３０１は印刷を行わずにステータス４１４をキャンセル終了にする（Ｓ８０４）。キャンセルフラグ４１６が０の場合、プリントサーバ３０１はステータス４１４をスケジュール待機中に更新し印刷処理を進める（Ｓ８０３）。つまり、スケジュール待機中は、印刷処理が開始され、キャンセルフラグが０の場合における、スケジュールに沿って印刷の実行を待っているステータスを示す。なお、印刷処理の詳細はスケジュールモードによって異なるため後述する。
【００５７】
次に、プリントサーバ３０１は、ジョブテーブル４１０に印刷待ちのジョブが存在するかどうか確認し（Ｓ８０５）、新たな印刷ジョブが投入されている場合にＳ８０１から印刷処理を開始する。Ｓ８０５において新たな印刷ジョブがない場合、プリントサーバ３０１はデバイステーブル４２０の担当プリントサーバ４２６を空にし、プリントデバイスの担当を外れる（Ｓ８０６）。
【００５８】
＜印刷シーケンス（ＳｅｒｖｅｒＳｃｈｅｄｕｌｉｎｇモード）＞
プリントサーバ３０１のＳｅｒｖｅｒＳｃｈｅｄｕｌｉｎｇモードでの印刷シーケンスについて説明する。図９はプリントサーバ３０１とデバイスコントローラ５１０が行う処理のシーケンスを示す図である。図示省略してあるが、プリントサーバ３０１に通知される印刷リクエストには、ドキュメントＩＤおよびデバイスＩＤが含まれる。プリントサーバ３０１は、通知されたドキュメントＩＤを元にＤＢＭＳ１０４のドキュメントテーブル４００からドキュメント情報とデータパス４０４に保存されたドキュメントデータを取得する。また、プリントサーバ３０１はデバイスＩＤより印刷対象のプリントデバイス１０６を特定し、以下のシーケンスで印刷を行う。
【００５９】
まずＳ９０１において、プリントサーバ３０１は、デバイスコントローラ５１０との通信のセッションを確立する。通信セッションはＴＣＰ／ＩＰやＨＴＴＰといった通信プロトコルによって確立される。Ｓ９０２で、プリントサーバ３０１は、デバイスコントローラ５１０に対して接続要求を行う。次に、Ｓ９０３においてプリントサーバ３０１は印刷ジョブおよびプリントデバイスのステータスが変化した場合に通知を受けるべくデバイスコントローラ５１０に対してイベント登録を行う。
【００６０】
次に、Ｓ９０４で、プリントサーバ３０１は、デバイスコントローラ５１０からデバイス状態を要求・取得する。デバイス状態が印刷可能を示す場合に、プリントサーバ３０１はステータス４１４をスケジュール待機中から送信中に更新し、印刷データの転送を開始する（Ｓ９０５）。プリントサーバ３０１は印刷データの転送が完了するとジョブテーブル４１０のステータス４１４を送信済に更新する。
【００６１】
一方、デバイスコントローラ５１０は、受信した印刷データを順次解析し、印刷を開始する（Ｓ９０６）。また、デバイスコントローラ５１０は、イベント登録を行っているプリントサーバ３０１に対し、プリントデバイス１０６のステータスが印刷開始に変更されたことを通知する（Ｓ９０８）。印刷開始通知を受け付けたプリントサーバ３０１は、ジョブテーブル４１０のステータス４１４を印刷中に更新する。ここで、デバイスコントローラ５１０に送信する印刷データにはプリントサーバ３０１が発行したジョブＩＤ４１１が埋め込まれている。ジョブＩＤ４１１は、デバイスコントローラ５１０からの通知時にジョブハンドルと共に通知される。プリントサーバ３０１はジョブＩＤ４１１を用いて印刷ジョブの状態を監視することができる。また、プリントサーバ３０１は、デバイスコントローラ５１０から通知されたジョブハンドルをデバイスジョブＩＤ４１５に保存する。プリントサーバ３０１は、デバイスジョブハンドルを用いることでデバイスコントローラ５１０に対して印刷キャンセルなどの印刷ジョブの制御を行うことができる。
【００６２】
プリントデバイス１０６が印刷を終了（Ｓ９０９）すると、デバイスコントローラ５１０は印刷開始と同様にプリントサーバ３０１に対して印刷終了を通知する（Ｓ９１０）。印刷終了を受けたプリントサーバ３０１は、ジョブテーブル４１０のステータス４１４を印刷完了に更新する。さらにプリントサーバ３０１は、予定していた全ての印刷リクエストの印刷ジョブが完了した場合は、Ｓ９１１においてデバイスコントローラ５１０に対してイベントの解除を行い、続いてＳ９１２において切断要求を行う。イベントの解除および切断要求をうけたデバイスコントローラ５１０は、プリントサーバ３０１との通信の終了処理を行う。最後にＳ９０１で確立させたセッションをＳ９１３において終了する。
【００６３】
以上のように、ＳｅｒｖｅｒＳｃｈｅｄｕｌｉｎｇモードでの印刷はプリントサーバ３０１が印刷ジョブのスケジューリングや印刷ジョブの監視を行い、プリントサーバ３０１の判断によって印刷データの送信を行う。
【００６４】
＜印刷シーケンス（ＤｅｖｉｃｅＳｃｈｅｄｕｌｉｎｇモード）＞
プリントサーバ３０１およびスケジュールアプリケーション５０１間で行われるＤｅｖｉｃｅＳｃｈｅｄｕｌｉｎｇモードでの印刷シーケンスについて説明する。図１０は、プリントサーバ３０１とスケジュールアプリケーション５０１およびデバイスコントローラ５１０が行う処理のシーケンスを示す図である。図示省略してあるが、スケジュールアプリケーション５０１は、起動時にデバイスコントローラ５１０に対してイベント登録を行っている。従って、デバイスコントローラ５１０が管理する印刷ジョブやデバイス状態が変化すると、デバイスコントローラ５１０はスケジュールアプリケーション５０１にステータスを通知する。
【００６５】
またプリントサーバ３０１に通知される印刷リクエストはドキュメントＩＤおよびデバイスＩＤが通知される。プリントサーバ３０１は、通知されたドキュメントＩＤを元にＤＢＭＳ１０４のドキュメントテーブル４００からドキュメント情報とデータパス４０４に保存されたドキュメントデータを取得する。次にプリントサーバ３０１はデバイスＩＤより印刷対象のプリントデバイス１０６を特定し、以下のシーケンスで印刷を行う。
【００６６】
まず、Ｓ１００１で、プリントサーバ３０１はスケジュールアプリケーション５０１との通信セッションを確立する。通信セッションはＴＣＰ／ＩＰやＨＴＴＰといった通信プロトコルによって確立される。Ｓ１００２で、プリントサーバ３０１は、スケジュールアプリケーション５０１に対して接続要求を行う。スケジュールアプリケーション５０１は、通信マネージャ６０１にて接続要求を受け付ける。Ｓ１００３で、プリントサーバ３０１は、印刷ジョブおよびプリントデバイスのステータスが変化した場合に通知を受けるべくスケジュールアプリケーション５０１に対してイベント登録を行う。
【００６７】
次に、Ｓ１００４で、プリントサーバ３０１は、現在スケジュールアプリケーション５０１のジョブマネージャ６０２が管理しているスケジュール情報６１０のリストを要求・取得する。Ｓ１００５で、プリントサーバ３０１は、スケジュールアプリケーション５０１に対して印刷ジョブのスケジュール要求を発行する。スケジュール要求には、ジョブテーブル４１０うち印刷対象の印刷ジョブのジョブ情報が含まれる。
【００６８】
スケジュール要求を受けたスケジュールアプリケーション５０１は、デバイスジョブＩＤ６１１を発行し、スケジュール情報６１０のステータス６１２をスケジュール待機中に設定する（Ｓ１００６）。Ｓ１００５におけるスケジュール要求に成功したプリントサーバ３０１は、スケジュールアプリケーション５０１からデバイスジョブＩＤ６１１を受け取り、ジョブテーブル４１０のデバイスジョブＩＤ４１５に保存する。また、プリントサーバ３０１は、ステータス４１４をスケジュール待機中に更新する。
【００６９】
スケジュールアプリケーション５０１は、スケジュール情報６１０に登録された順に印刷順序を制御する。スケジュールアプリケーション５０１は、デバイスジョブＩＤ６１１をパラメータとして、当該デバイスジョブＩＤ６１１により特定される印刷ジョブの印刷許可をプリントサーバ３０１に通知する（Ｓ１００７）。印刷許可通知を受け付けたプリントサーバ３０１は、印刷許可通知で受け付けたデバイスジョブＩＤ６１１と一致するデバイスジョブＩＤ６１１を持つジョブ情報をジョブテーブル４１０から特定する。プリントサーバ３０１は、特定されたジョブ情報に基づいて、スケジュールアプリケーション５０１に転送開始通知を行う（Ｓ１００８）。そして、プリントサーバ３０１はステータス４１４を送信中に更新し、印刷データ転送を開始する（Ｓ１００９）。また、Ｓ１００８で転送開始通知を受け付けたスケジュールアプリケーション５０１もスケジュール情報６１０のステータス６１２を送信中に変更する。
【００７０】
デバイスコントローラ５１０は、受信した印刷データを順次解析し、印刷を開始する（Ｓ１０１０）。また自身で管理している印刷ジョブのステータスを印刷中に変更するため、イベント登録を行っているスケジュールアプリケーション５０１に対し印刷開始にステータスが変更されたことを通知する（Ｓ１０１１）。デバイスマネージャ６０３を介して印刷開始通知を受けたスケジュールアプリケーション５０１は、イベント登録しているプリントサーバ３０１に対して印刷開始通知を行う（Ｓ１０１２）。印刷開始通知を受け付けたプリントサーバ３０１は、ジョブテーブル４１０のステータス４１４を印刷中に更新する。このように、プリントサーバ３０１は自身が印刷した印刷ジョブの状態を把握することができる。
【００７１】
プリントサーバ３０１は印刷データの転送が完了すると、Ｓ１０１３で転送終了をスケジュールアプリケーション５０１に通知する。通知を受けたスケジュールアプリケーション５０１は転送開始と同様に当該印刷ジョブのスケジュール情報６１０のステータス６１２を送信済に変更する。ここでプリントサーバ３０１はジョブテーブル４１０のステータス４１４はすでに印刷中となっているので更新しない。
【００７２】
プリントデバイス１０６が印刷を終了すると、Ｓ１０１４でデバイスコントローラ５１０は、印刷開始と同様にスケジュールアプリケーション５０１に対して印刷終了を通知する（Ｓ１０１５）。完了の通知を受けたスケジュールアプリケーション５０１はプリントサーバ３０１に同様に印刷終了を通知する（Ｓ１０１６）。印刷終了を受けたプリントサーバ３０１はジョブテーブル４１０のステータス４１４を印刷完了に更新する。さらにプリントサーバ３０１は、予定していた全ての印刷リクエストの印刷ジョブが完了した場合は、Ｓ１０１７においてスケジュールアプリケーション５０１に対してイベントの解除を行い、続いてＳ１０１８において切断要求を行う。イベントの解除および切断要求をうけたスケジュールアプリケーション５０１はプリントサーバ３０１との通信の終了処理を行う。最後にＳ１００１で確立させたセッションをＳ１０１９において終了する。
【００７３】
以上のように、ＤｅｖｉｃｅＳｃｈｅｄｕｌｉｎｇモードでの印刷はスケジュールアプリケーション５０１が印刷ジョブのスケジューリングや印刷ジョブ監視を行う。そしてスケジュールアプリケーション５０１からの通知でプリントサーバ３０１は印刷データの送信を開始する。
【００７４】
＜印刷キャンセル＞
図１１は、プリントサーバ３０１がＷｅｂサーバシステム１０２からの印刷キャンセルリクエストを受け付けた際に行う処理フローである。プリントサーバ３０１は、印刷キャンセルする印刷ジョブのジョブＩＤをパラメータとして印刷キャンセルリクエストを受け付ける（Ｓ１１０１）。次にプリントサーバ３０１は、印刷キャンセルリクエストで受け付けたジョブＩＤをもとにジョブテーブル４１０からジョブ情報を取得する。さらにプリントサーバ３０１は、ジョブ情報のデバイスＩＤをもとにデバイステーブル４２０からデバイス情報を取得する（Ｓ１１０２）。
【００７５】
次に、プリントサーバ３０１は、Ｓ１１０２において取得したデバイス情報のスケジュールモード４２５の確認を行う（Ｓ１１０３）。Ｓ１１０３においてスケジュールモード４２５がＳｅｒｖｅｒＳｃｈｅｄｕｌｉｎｇモード（サーバモード）だった場合、プリントサーバ３０１はＳ１１０２で取得したジョブ情報のステータス４１４を確認する（Ｓ１１０４）。Ｓ１１０４においてステータス４１４が印刷中または印刷完了だった場合、プリントサーバ３０１は印刷キャンセルできないので印刷キャンセルリクエストをエラーとして処理を終了する（Ｓ１１０５）。この場合、プリントサーバ３０１は、印刷キャンセルリクエストの要求元にエラー通知を行ってもよい。
【００７６】
Ｓ１１０４においてステータス４１４が印刷待ち、スケジュール待機中、送信中である場合、プリントサーバ３０１は担当プリントサーバ４２６を参照してプリントデバイスを担当しているプリントサーバ３０１を特定する（Ｓ１１０６）。プリントサーバ３０１は、担当プリントサーバ４２６が自プリントサーバ３０１のホスト名と一致する場合には印刷キャンセル処理を実行する（Ｓ１１０８）。
【００７７】
Ｓ１１０８における印刷キャンセル処理において、印刷データが未送信の場合、プリントサーバ３０１はジョブテーブル４１０のステータス４１４をキャンセル終了にする。印刷データを送信中の場合、プリントサーバ３０１は送信を中断しジョブテーブル４１０のステータス４１４をキャンセル終了にする。印刷データが送信済みの場合、プリントサーバ３０１はデバイスコントローラ５１０にデバイスジョブＩＤ４１５に保存したジョブハンドルをもって印刷キャンセルリクエストする。
【００７８】
Ｓ１１０７で、プリントサーバ３０１は担当プリントサーバ４２６が自プリントサーバ３０１のホスト名と一致しない場合、担当プリントサーバ４２６に対して印刷キャンセルリクエストを転送する（Ｓ１１０９）。換言すれば、プリントサーバ３０１は、印刷ジョブの処理主体が自サーバ以外のサーバであれば処理主体のプリントサーバに印刷キャンセルリクエストを転送する。Ｓ１１０４においてステータス４１４が送信済または印刷中だった場合、プリントサーバ３０１はデバイスコントローラ５１０にデバイスジョブＩＤ４１５に保存したジョブハンドルをもって印刷キャンセルリクエストする（Ｓ１１１０）。このように、プリントサーバ３０１は、印刷ジョブのステータスを適切に管理することにより、印刷キャンセルを通知すべき対象を特定し、印刷キャンセル処理の迅速化を実現することができる。
【００７９】
Ｓ１１０３においてスケジュールモード４２５がＤｅｖｉｃｅＳｃｈｅｄｕｌｉｎｇモード（サーバモード）だった場合、プリントサーバ３０１はＳ１１０２で取得したジョブ情報のステータス４１４を確認する（Ｓ１１１１）。Ｓ１１１１においてステータス４１４が印刷中または印刷完了だった場合、プリントサーバ３０１は印刷キャンセルできないので印刷キャンセルリクエストをエラーとして処理を終了する（Ｓ１１１２）。Ｓ１１１１においてステータス４１４が印刷待ちだった場合、プリントサーバ３０１は担当プリントサーバ４２６を参照してプリントデバイスを担当しているプリントサーバ３０１を特定する（Ｓ１１１３）。プリントサーバ３０１は担当プリントサーバ４２６が自プリントサーバ３０１のホスト名と一致する場合には印刷キャンセル処理を実行する（Ｓ１１１５）。
【００８０】
Ｓ１１０８におけるプリントサーバ３０１の印刷キャンセル処理はジョブテーブル４１０のステータス４１４をキャンセル終了にする。Ｓ１１１４においてプリントサーバ３０１は担当プリントサーバ４２６が自プリントサーバ３０１のホスト名と一致しない場合、担当プリントサーバ４２６に対して印刷キャンセルリクエストを転送する（Ｓ１１１６）。Ｓ１１１１においてステータス４１４がスケジュール待機中、送信中、送信済だった場合、プリントサーバ３０１はスケジュールアプリケーション５０１にデバイスジョブＩＤ４１５をもって印刷キャンセルリクエストする（Ｓ１１１７）。
【００８１】
以上のように、スケジューリングモードの違いや印刷ジョブのステータスの違いによってプリントサーバ３０１、スケジュールアプリケーション５０１、デバイスコントローラ５１０に適切に印刷キャンセルを行うことができ、すぐに印刷キャンセルされる。
【００８２】
＜印刷キャンセル失敗＞
図１２はプリントサーバ３０１が先述のＳ１１０９、Ｓ１１１０、Ｓ１１１６、Ｓ１１１７においてプリントサーバ３０１、スケジュールアプリケーション５０１、デバイスコントローラ５１０への印刷キャンセルリクエストに失敗した場合の処理フローである。印刷キャンセルに失敗した場合（Ｓ１２０２、Ｓ１２０３）、プリントサーバ３０１はジョブテーブル４１０のキャンセルフラグ４１６を１に更新する。印刷キャンセルに失敗した場合であってもプリントサーバ３０１の印刷処理における図８のＳ８０２、Ｓ８０４のキャンセルフラグ４１６の確認処理により印刷キャンセルすることができる。
【００８３】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そしてそのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
2015204077.tif 000003
【図２】
2015204077.tif 000004
【図３】
2015204077.tif 000005
【図４】
2015204077.tif 000006
【図５】
2015204077.tif 000007
【図６】
2015204077.tif 000008
【図７】
2015204077.tif 000009
【図８】
2015204077.tif 000010
【図９】
2015204077.tif 000011
【図１０】
2015204077.tif 000012
【図１１】
2015204077.tif 000013
【図１２】
2015204077.tif 000014