(57)【要約】      （修正有）【課題】複数の物理プリンタを管理する論理プリンタサーバのリソースへの負荷を軽減させること。【解決手段】論理プリンタサーバとしてのプリンタ管理装置（デバイスＡ）が、物理プリンタ（デバイスＢ，Ｃ，Ｄ）の属性情報，状態情報を管理し、ＰＣ１０５からジョブ依頼要求を受信すると、前記管理される情報に基づいて前記ジョブ依頼要求を処理する物理プリンタを選択し、該選択された物理プリンタに対して、前記ジョブ依頼要求を転送し、その応答として前記物理プリンタから返された印刷あて先（印刷ポートを示すＵＲＩ）をＰＣ１０５に転送する構成を特徴とする。【選択図】図１１
2006338582.tif 000002
【特許請求の範囲】
【請求項１】
ジョブ依頼要求を送信し該ジョブ依頼要求に応じて返信される印刷あて先に実印刷データを送信するクライアント装置、及び、受信するジョブ依頼要求に応じて印刷あて先を返信し該印刷あて先に送信される印刷データを印刷処理する複数の物理プリンタと通信可能なプリンタ管理装置において、
前記各物理プリンタの属性情報，状態情報を記憶管理する管理手段と、
前記クライアント装置からジョブ依頼要求を受信すると、前記管理手段により管理される情報に基づいて前記ジョブ依頼要求を処理する前記いずれかの物理プリンタを選択する選択手段と、
前記選択手段によって選択された物理プリンタに対して、前記ジョブ依頼要求を転送し、その応答として前記物理プリンタから返された印刷あて先を前記クライアント装置に転送する転送手段と、
を有することを特徴とするプリンタ管理装置。
【請求項２】
前記管理手段は、
通信可能な物理プリンタを検索する検索手段と、
前記検索手段により検索された物理プリンタからデバイス情報，サービス情報を取得する取得手段と、
前記検索手段により物理プリンタに対して、該物理プリンタの状態が変化した場合にはイベントを通知させるイベント登録を行うイベント登録手段と
を有することを特徴とする請求項１記載のプリンタ管理装置。
【請求項３】
前記取得手段は、プリンタ管理装置の電源投入直後に、前記物理プリンタから情報取得することを特徴とする請求項２記載のプリンタ管理装置。
【請求項４】
前記取得手段は、前記クライアント装置からジョブ依頼要求を受信した後に、前記物理プリンタから情報取得することを特徴とする請求項２記載のプリンタ管理装置。
【請求項５】
前記管理手段は、定期的に、前記各物理プリンタに対して前記各物理プリンタの状態情報を尋ねることによって、前記各物理プリンタの状態情報を取得することを特徴とする請求項１〜４のいずれかに記載のプリンタ管理装置。
【請求項６】
前記管理手段は、前記各物理プリンタから物理プリンタの状態が変化した場合に前記各物理プリンタから送信される通知を受信することによって、前記各物理プリンタの状態情報を取得することを特徴とする請求項１〜４のいずれかに記載のプリンタ管理装置。
【請求項７】
ジョブ依頼要求を送信し該ジョブ依頼要求に応じて返信される印刷あて先に実印刷データを送信するクライアント装置と、受信するジョブ依頼要求に応じて印刷あて先を返信し該印刷あて先に送信される印刷データを印刷処理する複数の物理プリンタと、プリンタ管理装置とが通信可能なプリントシステムにおいて、
前記プリンタ管理装置は、
前記各物理プリンタの属性情報，状態情報を記憶管理する管理手段と、
前記クライアント装置からジョブ依頼要求を受信すると、前記管理手段により管理される情報に基づいて前記ジョブ依頼要求を処理する前記いずれかの物理プリンタを選択する選択手段と、
前記選択手段によって選択された物理プリンタに対して、前記ジョブ依頼要求を転送し、その応答として前記物理プリンタから返された印刷あて先を前記クライアント装置に転送する転送手段と、
を有することを特徴とするプリントシステム。
【請求項８】
ジョブ依頼要求を送信し該ジョブ依頼要求に応じて返信される印刷あて先に実印刷データを送信するクライアント装置、及び、受信するジョブ依頼要求に応じて印刷あて先を返信し該印刷あて先に送信される印刷データを印刷処理する複数の物理プリンタと通信可能なプリンタ管理装置におけるプリンタ管理方法において、
前記各物理プリンタの属性情報，状態情報を取得してメモリにて記憶管理する管理ステップと、
前記クライアント装置からジョブ依頼要求を受信すると、前記メモリに記憶管理される情報に基づいて前記ジョブ依頼要求を処理する前記いずれかの物理プリンタを選択する選択ステップと、
該選択された物理プリンタに対して、前記ジョブ依頼要求を転送し、その応答として前記物理プリンタから返された印刷あて先を前記クライアント装置に転送する転送ステップと、
を有することを特徴とするプリンタ管理方法。
【請求項９】
請求項８に記載されたプリンタ管理方法の各ステップをコンピュータに実行させるためのプログラム。
【請求項１０】
請求項８に記載されたプリンタ管理方法の各ステップをコンピュータに実行させるためのプログラムをコンピュータが読み取り可能に記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の物理プリンタ、各物理プリンタを管理する論理プリンタ、および、論理プリンタに対して印刷指示するクライアント装置からなる分散プリントシステムの制御に関するものである。
【背景技術】
【０００２】
近年のＬＡＮ環境の発達により、パーソナルコンピュータのみならず、複合機やプリンタといったデバイスが対応して、ＬＡＮ内で共有して使われるようになってきている。
【０００３】
このようなＬＡＮ環境で接続されたプリンタに対して、クライアントＰＣが印刷を実行する場合、物理的なプリンタを指定して印刷を行う場合と、論理プリントサーバを指定して印刷を行う場合が考えれる。
【０００４】
特許文献１には、この論理プリントサーバとしての情報処理装置が記載されている。
【０００５】
この情報処理装置は、複数台の物理プリンタを管理し、クライアントＰＣからの印刷要求があると、そのジョブをプリントサーバ内に一度保持し、その要求に応じて、適当な物理プリンタを選択し、ジョブを配送するといった仕組みになっていた。
【特許文献１】特開平７−２１９７３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載の情報処理装置では、情報処理装置が、一度、クライアントＰＣから送信された印刷データを保持する必要がある。そのため、論理プリントサーバ機能を搭載する情報処理装置のリソースに多大な負荷をかける場合が多かった。そして、情報処理装置内のハードディスクに十分な空き容量がないと、印刷ができないという問題点があった。
【０００７】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、ジョブ依頼要求を送信し該ジョブ依頼要求に応じて返信される印刷あて先に実印刷データを送信するクライアント装置、及び、受信するジョブ依頼要求に応じて印刷あて先を返信し該印刷あて先に送信される印刷データを印刷処理する複数の物理プリンタと通信可能なプリンタ管理装置が、前記各物理プリンタの属性情報，状態情報をメモリで記憶管理し、クライアント装置からジョブ依頼要求を受信すると、前記メモリに記憶管理される情報に基づいて前記ジョブ依頼要求を処理する前記いずれかの物理プリンタを選択し、該選択された物理プリンタに対して、前記ジョブ依頼要求を転送し、その応答として前記物理プリンタから返された印刷あて先を前記クライアント装置に転送することにより、クライアント装置は物理プリンタに対して印刷データを直接送信できるため、プリンタ管理装置で印刷データを管理する必要がなくなり、そのリソースへの負荷を軽減させることができるプリンタ管理装置およびプリントシステムおよびプリンタ管理方法およびプログラムおよび記憶媒体を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、ジョブ依頼要求を送信し、該ジョブ依頼要求に応じて返信されるジョブ受付応答により特定される印刷あて先に実印刷データを送信するクライアント装置、及び、受信するジョブ依頼要求に応じて印刷あて先を返信する複数の物理プリンタと通信可能なプリンタ管理装置において、前記各物理プリンタの属性情報，状態情報を記憶管理する管理手段と、前記クライアント装置からジョブ依頼要求を受信すると、前記管理手段により管理される情報に基づいて前記ジョブ依頼要求を処理する前記いずれかの物理プリンタを選択する選択手段と、前記選択手段によって選択された物理プリンタに対して、前記ジョブ依頼要求を転送し、その応答として前記物理プリンタから返された印刷あて先を前記クライアント装置に転送する転送手段とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ジョブ依頼要求を送信し該ジョブ依頼要求に応じて返信される印刷あて先に実印刷データを送信するクライアント装置、及び、受信するジョブ依頼要求に応じて印刷あて先を返信し該印刷あて先に送信される印刷データを印刷処理する複数の物理プリンタと通信可能なプリンタ管理装置が、前記各物理プリンタの属性情報，状態情報をメモリで記憶管理し、クライアント装置からジョブ依頼要求を受信すると、前記メモリに記憶管理される情報に基づいて前記ジョブ依頼要求を処理する前記いずれかの物理プリンタを選択し、該選択された物理プリンタに対して、前記ジョブ依頼要求を転送し、その応答として前記物理プリンタから返された印刷あて先を前記クライアント装置に転送することにより、クライアント装置から印刷データが物理プリンタに直送送信され、プリンタ管理装置で印刷データを管理する必要がなくなり、そのリソースへの負荷を軽減させることができる。
【００１０】
また、プリンタ管理装置は、クライアント装置からのジョブ（印刷データ）を保持する必要がないため、ＨＤＤのような大容量の記憶装置を備えていない装置であっても論理プリントサーバ機能を実現可能となる。
【００１１】
従って、プリント管理装置において、データのスプールすることなしに、各物理プリンタへデータの配送を行うことが可能となり、論理プリントサーバ機能を有するプリント管理装置のリソースの負荷を軽減することができる等の効果を奏する。
【発明を実施するための最良の形態】
【００１２】
〔第１実施形態〕
以下、添付の図面を参照して本発明の実施形態を詳細に説明する。
【００１３】
図１は、本発明の一実施形態を示す論理プリントサーバ（プリンタ管理装置）を適用可能なプリントシステムの構成を示すシステム構成図である。なお、ここでは、論理プリントサーバを適用可能なネットワークデバイス装置の一例として、ネットワーク接続機能を持つマルチファンクションデバイス（ＭＦＰ；Multi Function peripheral）を示すが、論理プリントサーバはコンピュータ等の他の情報処理装置であってもよい。
【００１４】
図１において、１０１，１０２，１０３，１０４は、ＬＡＮ１００に接続可能なマルチファンクションデバイス装置（ＭＦＰ）である。
【００１５】
なお、ＭＦＰ１０２，１０３，１０４は、本発明における物理プリンタに対応する。また、ＭＦＰ１０１は、本発明における物理プリンタを管理して複数の物理プリンタを単独のプリンタとして扱うことができるようにする論理プリンタ既納を持つプリンタ（論理プリントサーバ（プリンタ管理装置））に対応する。なお、ＭＦＰ１０１は、物理プリンタでもある。
【００１６】
また、１０５はパーソナルコンピュータ（ＰＣ）である。このＰＣ１０５は、上述した本発明の論理プリンタ機能を持つプリンタ（ＭＦＰ１０１），物理プリンタ（ＭＦＰ１０２，１０３，１０４）とともに、ＬＡＮ１００に接続されている。
【００１７】
なお、本実施形態では、ＰＣ１０３から論理プリンタ機能を持つプリンタ（ＭＦＰ１０１）に印刷要求を行い、論理プリンタ（ＭＦＰ１０１）がその要求に応じて、適切な物理プリンタを選択し、印刷を行わせる構成となっている。
【００１８】
即ち、本実施形態のプリントシステムは、複数の物理プリンタ、各物理プリンタを管理する論理プリンタ、および、論理プリンタに対して印刷指示するクライアント装置からなる分散プリントシステムである。
【００１９】
図２は、図１に示した論理プリンタ機能を持つプリンタ（ＭＦＰ１０１）の概略構成を示すブロック図である。
【００２０】
図２において、２０１はスキャナエンジン制御部であり、スキャナエンジン２１３を制御する。２０２はＣＰＵである。このＣＰＵ２０２は、ＲＯＭ２０３又はＨＤＤ２０７に格納されるプログラムを、ブートロム（ＲＡＭ）２０４にロードして実行して、ＭＦＰ全体を統括制御する。
【００２１】
２０５は不揮発性のＲＡＭ（ＮＶＲＡＭ）であり、パネルから設定された値を保持しておくためのものである。２０６はエンジン制御部であり、プリンタエンジン２１２を制御する。
【００２２】
２０８はタイマである。２０９はＩ／Ｏ制御部であり、パネルやボタンランプといったユーザインターフェース部分２１４を制御する。２１０はネットワーク制御部であり、ＬＡＮ１００に接続するためのものである。以上、２０１〜２１０に示した各デバイスが、それぞれバス２１１に接続されている。
【００２３】
以上、図２に示したＭＦＰ１０１と同一の機能ブロックは、図１に示したＭＦＰ１０２，１０３，１０４にも備わっており、本実施形態では、そのプリント機能を用いて、物理プリンタと称している。
【００２４】
図３は、図２に示したユーザインターフェース部分２１４の一例を示す平面図である。
【００２５】
図３において、３０１は大型タッチパネルであり、ユーザはタッチパネルを操作することで、ＣＰＵ２０２の制御により各種設定を行うことが可能である。図３では、コピーの待機画面がタッチパネル３０１に表示されている場合を示している。
【００２６】
３０２はテンキーボタンであり、「１」〜「０」の数字を入力するために使用する。また、「Ｓ」ボタンはサービスボタンである。この「Ｓ」ボタンが押下されると、ＣＰＵ２０２の制御により、タッチパネル３０１上に各種サービス画面が出現し、コピー以外のサービスを行うことが可能となる。「Ｒ」ボタンは設定ボタンである。この「Ｒ」ボタンが押下されると、ＣＰＵ２０２の制御により、タッチパネル３０１上に、各種設定画面が出現し、パラメータの設定を行うことが可能となる。
【００２７】
３０３はスピーカであり、ＣＰＵ２０２の制御により、音声やブザー等をここから出力される。３０４はランプであり、印刷やコピーがジャムした場合にはＣＰＵ２０２の制御によりランプ３０４が点滅される。
【００２８】
図４は、図１に示したＭＦＰ１０１，１０２，１０３，１０４のデバイスのネットワーク周りの制御を行うモジュール構成のブロック図を示したものである。
【００２９】
図４において、４０１はEtherDriverであり、ＬＡＮ１００に接続して、Ethernet（登録商標）のパケットの送受信を行うためのドライバモジュールである。
【００３０】
４０２はＴＣＰ／ＩＰプロトコルスタックである。本発明のデバイスは、マルチプロトコルをサポートし、NetWareやAppleTalkといったプロトコルでも通信が可能であるが、ここでは記述を省略している。
【００３１】
４０３はソケットレイヤであり、ＴＣＰ／ＩＰプロトコルを用いるためのＡＰＩが定義されている。なお、ＴＣＰ／ＩＰを用いて通信を行うプログラムは全て、このソケットレイヤ４０３が提供するＡＰＩを用いてその通信を行う。
【００３２】
４０４はＨＴＴＰＤモジュールであり、ＨＴＴＰ処理機能をもち、ＵＲＬを判断して、各々の処理を行う。４０５はRemoteUIといわれるモジュールであり、ＨＴＴＰプロトコルを用いて、デバイスの参照を行うことができる。
【００３３】
４０６はＳＯＡＰモジュール、４０７はプリントサービスモジュール（PrintService）であり、ＳＯＡＰ／ＸＭＬを使ったプリントサービス（ＳＯＡＰプリントサービス）を実現するためのモジュールである。なお、このプリントサービスモジュール４０７もＨＴＴＰプロトコルを用いて機能を実現している。
【００３４】
４０８はＩＰＰモジュールであり、ＩＰＰプロトコルを使って印刷を行う機能を実現している。なお、このＩＰＰプロトコルは、ＨＴＴＰ上の印刷プロトコルであり、ＨＴＴＰ経由で印刷ジョブの送信と制御を行うためのプロトコルである。
【００３５】
４０９はＬＰＤモジュールであり、ＬＰＤプロトコルを用いて、印刷機能を実現する。４１０はPrinterAPIであり、各印刷モジュール（ＬＰＤやＩＰＰ、ＳＯＡＰプリントサービス）は受信した印刷データをこのPrinterAPI４１０を介してデータを転送する。なお、このPrinterAPI４１０から受信されたデータは、ＣＰＵ２０の制御により、デバイス内でハンドリングされ、ビットマップ展開された後、エンジン制御２０６を介してプリンタエンジン２１２に送られ、印刷されることになる。
【００３６】
以下、本実施形態のプリントシステムにおいて、クライアントＰＣからＳＯＡＰプリントサービスを用いて印刷を実行する場合について説明する。
【００３７】
本実施形態のプリントシステムにおいて、クライアントＰＣからＳＯＡＰプリントサービスを用いて印刷を実行する場合、物理的なプリンタを指定して印刷を行う方法（第１の印刷方法）と、複数の物理的なプリンタを管理する論理プリントサーバを指定して印刷を行う方法（第２の印刷方法）が可能である。
【００３８】
〔第１の印刷方法〕
以下、図５〜図１０を参照して、まず第１の印刷方法で印刷実行する場合について説明する。
【００３９】
図５は、本実施形態のプリントシステムにおけるＨＴＴＰ上のＳＯＡＰプリントサービスのプロトコルにおいて、クライアント（ＰＣ１０５）から印刷装置（ＭＦＰ１０２〜１０４）に送信される「CreateJob」と称されるパケットデータの一例を示す図である。
【００４０】
図５において、５００はCreateJobパケットを示すデータであり、ＸＭＬ形式で記述されている。このCreateJobパケット５００は、印刷装置に対し、ジョブ（印刷）の開始を指示するコマンド（ジョブ依頼要求データ）である。
【００４１】
このCreateJobパケット５００には、要求元のユーザ名（＜requesting-user-name＞タグ５０１）やジョブの処理に関する指示（＜job-instruction＞タグ５０２）等の情報が記述されている。
【００４２】
そして、＜job-instruction＞タグ５０２には、印刷部数を設定する＜copies＞タグ５０３、両面印刷を設定する＜sides＞タグ５０４、印刷の仕上げを設定する「＜finishing＞」タグ５０５などが含まれる。そして、印刷装置は、これらのタグに設定された値に基づきジョブの処理を行う。
【００４３】
さらに、＜job-instruction＞タグ５０２には、オプションとして＜notification-instruction＞タグ５０６を含めることも可能である。この＜notification-instruction＞タグ５０６には、ジョブに関する通知情報が記述される。図５に示した例では、通知情報として、通知先を設定する＜notification-recipient＞タグ５０７及び通知条件を設定する＜event＞タグ５０８が記述されている。そして、印刷装置は、これらのタグに設定された値に基づいてイベント送信処理を行う。
【００４４】
本実施形態では、＜event＞タグ５０８によって、「job-completed」及び「job-canceled」が指定されているため、「ジョブ印刷終了時」及び「ジョブキャンセル時」にイベントを通知することになる。
【００４５】
図６は、図５に示したCreateJobパケットに対して印刷装置からクライアントに応答される応答パケットデータ（CreateJob応答パケット）の一例を示す図である。
【００４６】
図６において、６００はCreateJob応答パケットを示すデータ（ジョブ受付応答データ）であり、図５に示したCreateJobパケットと同様にＸＭＬ形式で記述される。なお、本実施形態においては、このCreateJob応答パケット６００は、ＨＴＴＰ上のＳＯＡＰを用いて送受信される。
【００４７】
また、CreateJob応答パケット６００には、CreateJobコマンド対する結果コード（＜result-code＞タグ６０２）、生成されたジョブの識別子（＜job-id＞タグ６０３）、印刷用ポートのＵＲＩ（＜data-sink-uri＞タグ６０４）等の情報が含まれている。なお、図６の６０１で示した部分が、印刷用ポートのＵＲＩ（印刷あて先を特定するデータ）を示す部分である。図６の例では、この印刷用ポートのＵＲＩとして「http://192.168.1.4/job001」というＵＲＩが示されている。
【００４８】
以下、図７のフローチャートを用いて、本実施形態のプリントシステムにおいて、クライアントＰＣからＳＯＡＰプリントサービスを用いて物理的なプリンタを指定して印刷を行う場合（第１の印刷方法で印刷実行する場合）の処理の流れを詳細に説明する。
【００４９】
図７は、本発明のプリントシステムにおける第１の制御処理手順の一例を示すフローチャートである。なお、このフローチャートは、ホストコンピュータ（クライアント）から物理的なプリンタを指定して印刷を実行する場合（第１の印刷方法で印刷実行する場合）の印刷装置（物理的なプリンタ）の動作に対応する。また、図７中のＳ７０１〜Ｓ７０８は、印刷装置（図１に示したＭＦＰ１０２，１０３，１０４）で実行される各ステップに対応する。さらに、Ｓ７０１〜Ｓ７０８は、印刷装置のＣＰＵ２０２がＲＯＭ２０３又はＨＤＤ２０７等に格納されるプログラムをＲＡＭ２０４にロードして実行することにより実行される。
【００５０】
まず、ホストコンピュータ（ＰＣ１０５）から図５に示したようなCreateJobパケット５００が印刷装置に送信されると、印刷装置のＣＰＵ２０２は、ステップＳ７０１において、CreateJobパケット５００に記述されたＸＭＬデータを解析し、ステップＳ７０２において、解析結果にエラーがないか判定する。
【００５１】
ステップＳ７０２で、印刷装置のＣＰＵ２０２は、解析結果にエラーが無いと判定した場合には、ステップＳ７０３において、印刷データ受信用の印刷ポートを生成する。
【００５２】
そして、印刷装置のＣＰＵ２０２は、ステップＳ７０３の処理が終わると、ステップＳ７０５へ処理を進め、CreateJobパケット５００に対するレスポンスのＸＭＬデータ（図６に示したようなCreateJob応答パケット６００）の生成を行う。このとき、印刷装置のＣＰＵ２０２は、ステップＳ７０３で印刷データ受信用に生成したポートのＵＲＩを＜data-sink-uri＞タグ６０４の値として設定する。例えば、図６の６０１に示したようなＵＲＩがＸＭＬデータに埋め込まれる。
【００５３】
次に、印刷装置のＣＰＵ２０２は、ステップＳ７０５で示したCreateJobレスポンスデータ（CreateJob応答パケット６００）の生成が終了すると、ステップＳ７０６へ処理を進める。
【００５４】
そして、印刷装置のＣＰＵ２０２は、ステップＳ７０６において、ステップＳ７０５で生成したデータ（CreateJob応答パケット６００）をＳＯＡＰを用いてホストコンピュータに送信する。
【００５５】
ホストコンピュータは、その後、＜data-sink-uri＞タグ６０４で指定されたＵＲＩに対してＨＴＴＰのＰＯＳＴメソッドを用いて図８に示すような印刷データ８００を送信する。
【００５６】
図８は、ＨＴＴＰのＰＯＳＴメソッドによる印刷データ転送パケットの一例を示す図である。
【００５７】
そして、印刷装置のＣＰＵ２０２は、ステップＳ７０７において、印刷ポートに到着したデータを受信し、適切な処理をしながらプリンタでの印刷処理を実行する。印刷装置のＣＰＵ２０２は、ステップＳ７０７の印刷データの受信が正常に終了すると、ステップＳ７０８において、図９に示すようなＨＴＴＰレスポンスパケット９００をホストコンピュータに送信し、印刷用ポートを削除（クローズ）して、印刷動作を終了する。
【００５８】
図９は、ＨＴＴＰレスポンスパケットの一例を示す図である。
【００５９】
一方、ステップＳ７０２で、印刷装置のＣＰＵ２０２が、CreateJob５００に記述されたＸＭＬデータにエラーがあると判定した場合には、ステップＳ７０４へ処理を進める。
【００６０】
そして、ステップＳ７０４において、印刷装置のＣＰＵ２０２は、図１０に示すようなエラーレスポンスデータ１０００を生成する。
【００６１】
図１０は、図５に示したCreateJobパケット５００に対して印刷装置からクライアントに応答されるエラーレスポンスのパケットデータの一例を示す図である。
【００６２】
図１０において、１０００は、CreateJobパケット５００にエラーデータであった場合の応答パケットであるエラーレスポンスパケットを示すデータである。
【００６３】
次に、ステップＳ７０６において、印刷装置のＣＰＵ２０２は、ステップＳ７０４で生成したエラーレスポンス１０００をホストコンピュータに送信する。なお、エラーレスポンス１０００を受けたホストコンピュータは、印刷データを送信することはせず、処理を終了する。
【００６４】
以上が、本実施形態のプリントシステムにおいて、クライアントＰＣからＳＯＡＰプリントサービスを用いて印刷を実行する場合、物理的なプリンタを指定して印刷を行う方法（第１の印刷方法）に対応する。
【００６５】
〔第２の印刷方法〕
次に、図１１〜図２６を参照して、本発明のプリントシステムにおいて、ホストコンピュータ（クライアント）から複数の物理的なプリンタを管理する論理プリントサーバを指定して印刷を実行する場合（第２の印刷方法で印刷実行する場合）について説明する。
【００６６】
図１１は、本実施形態における論理プリンタによる物理プリンタの管理形態を示す模式図であり、図１と同一のものには同一の符号を付してある。
【００６７】
図１１に示すように、デバイスＡ（ＭＦＰ１０１）が、デバイスＢ，Ｃ，Ｄ（ＭＦＰ１０２，１０３，１０４）を検索し、各デバイスがサービスしているプリンタの状態を監視する。以下、ＭＦＰ１０１をデバイスＡ、ＭＦＰ１０２，１０３，１０４をデバイスＢ，Ｃ，Ｄと称して説明する。
【００６８】
図１２は、図１１に示したデバイスＡが他デバイスを検索するために送出する検索パケットのフォーマットの一例を示す図である。
【００６９】
図１２中の１２０１に示すように、検索パケット１２００は、ＨＴＴＰのＭ−ＳＥＡＲＣＨというメソッドを用いて、ネットワーク上にマルチキャストされる。
【００７０】
本実施形態では、デバイスＡが、１２図に示したようなパケット１２００を送出すると、各デバイスＢ，Ｃ，Ｄは、図１３に示すような応答パケット１３００をデバイスＡに返却する。
【００７１】
図１３は、図１２に示した検索パケット１２００に対する応答パケット１３００のフォーマットの一例を示す図である。
【００７２】
図１３に示すように、応答パケット１３００中の＜loc＞タグ１３０１で示されるＵＲＩにデバイスディスクリプションファイル（ＤＤＦ）が定義されている。
【００７３】
デバイスＡは、この応答パケット１３００から＜loc＞で始まるタグ１３０１を抽出し、ＤＤＦファイルのＵＲＩを抽出する。そしてデバイスＡは、前記抽出したＵＲＩにアクセスして、デバイスＢ，Ｃ，Ｄのロケージョン情報、及びそのデバイスＢ，Ｃ，Ｄの属性ファイル（図１４に示されるようなＤＤＦファイル１４００）が格納されているＵＲＩを取得することになる。
【００７４】
図１４は、図１３に示した＜loc＞タグ１３０１で示されるＵＲＩから取得されるＤＤＦファイルのフォーマットの一例を示す図である。
【００７５】
図１３で図示した＜loc＞タグ１３０１で始まるＵＲＩを、デバイスＡが、ＨＴＴＰのＧＥＴメソッドを用いて取得すると、デバイスＢ，Ｃ，Ｄは、図１４に示すＤＤＦファイル１４００を応答に返す。
【００７６】
図１４中の１４０１に、そのデバイスが持つ属性ファイルが格納されているＵＲＩを＜SCPDURL＞タグで示している。この例では、ＵＲＩは「/bmlinks/sdf-print.xml」となっている。１４０２では、そのデバイスの位置情報を示している。この例では、＜FL＞タグで示され、その位置は「２Ｆ-２」となっている。
【００７７】
そして、デバイスＡは、この応答パケット（ＤＤＦファイル１４００）から、＜SCPDURL＞タグ１４０１で示されたＵＲＩに対して、デバイスＢ，Ｃ，Ｄの属性ファイル（図１５〜図１６に示すようなＳＤＦファイル１５００）を取得することになる。
【００７８】
図１５〜図１６は、図１４に示した＜SCPDURL＞タグ１４０１で示されるＵＲＩから取得されるデバイスの属性ファイルであるＳＤＦファイルのフォーマットの一例を示す図である。
【００７９】
図１４で示した＜SCPDURL＞タグ１４０１で始まるＵＲＩを、デバイスＡが、ＨＴＴＰのＧＥＴメソッドを用いて、取得すると、デバイスＢ，Ｃ，Ｄはそれぞれ図１５〜図１６に示すＳＤＦファイル１５００を応答に返す。
【００８０】
ＳＤＦファイル１５００内の１５０１が、そのデバイスの名称を示す。＜name＞タグ１５０１ａで始まる属性が「service-name」であることから、ここでは、そのデバイスのサービス名称を示す。その取り得る値として、＜allowedValue＞タグ１５０１ｂで始まる値がサービス名称そのものである（ここでは「Ｂ」となっている）。これにより、このデバイスのサービス名称は「Ｂ」であることがわかる。
【００８１】
１５０２では、Ｃｏｌｏｒ印刷ができるかどうかの属性を示している。＜name＞タグ１５０２ａで始まる属性が「colors」であり、そのとりうる値＜allowedValue＞１５０２ｂが示す値が「０」である。このことから、このデバイスは、Ｃｏｌｏｒ印刷をサポートしていないということがわかる。
【００８２】
１５０３では、フィニッシングについて記述されている。＜name＞タグ１５０３ａで始まる属性が「finishings」であり、そのとりうる値＜allowedValue＞タグ１５０３ｂが示す値が「not-supported」である。このことから、このデバイスでは、フィニッシャをサポートしていないことを示す。
【００８３】
１６０１では、サポートしている紙タイプについて記述されている。＜name＞タグ１６０１ａで始まる属性が「media」であり、そのとりうる値＜allowedValue＞が「iso-A3，jis-b4，iso-A4，jis-b5」である。このことから、このデバイスがサポートしている紙サイズは、Ａ３，Ｂ４，Ａ４，Ｂ５であることを示す。
【００８４】
１６０２では、このデバイスのエンジンスピードについて記述されている。＜name＞タグ１６０２ａで始まる属性が「pages-per−minute」であり、そのとりうる値＜allowedValue＞タグ１６０２ｂが示す値が「３２」である。このことから、このデバイスがサポートしているエンジンスピードは「３２ＰＰＭ（Page-Per-Minutes）」であることがわかる。
【００８５】
図１７は、図１１に示したデバイスＡが、図１４，図１５〜図１６で図示したＤＤＦ，ＳＤＦから取得した各デバイスの属性情報を管理するデバイス管理テーブルの一例を示す図である。
【００８６】
図１７において、１７００はデバイス管理テーブルであり、デバイスＡ内のＲＡＭ２０３、又は、ＮＶＲＡＭ２０５、又は、ＨＤＤ２０７に格納される。
【００８７】
図１７に示すように、例えば、デバイスＢでは、エンジンスピード（PPM）が「３２」、カラー印刷の有無（Color）が「false」、ステイプルの有無（Staple）が「OFF」、サポートするメディアサイズ（media Size）が「Ａ４，Ａ３，Ｂ４，Ｂ５」、デバイスの位置（Locale）が「2F-1」、ステータス（Status）が「printing」（プリント中）であることを示している。
【００８８】
なお、デバイス管理テーブル１７００は、デバイス毎に各デバイスの属性情報，ジョブの実行状態等を記憶管理する（図１７では、列毎にデバイス分けされて記載される）。
【００８９】
図１８，図１９は、ＰＣ１０５が、論理プリンタサーバとしてのデバイスＡを介して、デバイスＣにデータを送る様子を模式的に記述した模式図である。
【００９０】
図１８では、ＰＣ１０５は、図５に示したようなCreateJob５００を論理プリンタサーバとしてのデバイスＡに発行する。すると、デバイスＡは、デバイス管理テーブル１７０（図１７）を参照して、CreateJobの条件に照らし合わせ、かつ、現在印刷可能な物理プリンタを選択する。ここでは、デバイスＣのみが、CreateJobの条件に合い、かつ、現在印刷可能な物理プリンタであったとすると、デバイスＣが選択される。そして、デバイスＡは、選択したデバイスＣに対して、CreateJob５００を転送する。
【００９１】
すると、デバイスＣは、＜data-sink-uri＞タグを含むCreateJob応答レスポンス６００（図６）をデバイスＡに返す。すると、デバイスＡは、デバイスＣから受け取ったCreateJob応答レスポンス６００を、ＰＣ１０５に転送する。
【００９２】
すると、ＰＣ１０５は、図１９に示すように、デバイスＡから返されたCreateJob応答レスポンス６００上の＜data-sink-uri＞タグ６０４が示すＵＲＩ（図６の６０１）に対して、印刷データ（data）をＨＴＴＰのＰＯＳＴメソッドを用いて転送する。
【００９３】
なお、デバイスＣは、印刷開始時、および、終了時に、デバイスＡに対してイベントを発行する（詳細は後述する）。
【００９４】
図２０は、図１１に示したデバイスＡに実装されたプリントサービス４０７（図４）の内部モジュール構成を示す図である。
【００９５】
図２０において、２００１はジョブ／デバイス管理モジュール、２００２はイベント受信モジュールであり、プリントサービス４０７の内部モジュールに相当する。
【００９６】
ジョブ／デバイス管理モジュール２００１は、各デバイスの属性や、ジョブを管理して、デバイス管理テーブル１７００（図１７）上に登録する。また、イベント受信モジュール２００２は、各デバイスからあげれるイベントを受信し、そのデバイスの状態をデバイス管理テーブル１７００に登録する。
【００９７】
このように、デバイスＡに実装されたプリントサービス４０７は、上記内部モジュールにより、各デバイスの属性やジョブを管理して、デバイス管理テーブル１７００（図１７）上に登録したり、各デバイスからあげれるイベントを受信し、そのデバイスの状態をデバイス管理テーブル１７００に登録したりする。
【００９８】
以下、図２１〜図２６のフローチャートを用いて、本発明のプリントシステムにおいて、ホストコンピュータ（クライアント）から複数の物理的なプリンタを管理する論理プリントサーバを指定して印刷を実行する場合（第２の印刷方法で印刷実行する場合）の処理の流れを詳細に説明する。
【００９９】
図２１は、本発明のプリントシステムにおける第２の制御処理手順の一例を示すフローチャートである。なお、このフローチャートは、図２０に示したジョブ／デバイス管理モジュール２００１が図１７に示したデバイス管理テーブル１７００を作成する処理（各デバイスの名称，属性等をデバイス管理テーブル１７００に登録する処理）の流れに対応する。また、図２１中のＳ２１０１〜Ｓ２１０６は、デバイスＡで実行される各ステップに対応する。さらに、Ｓ２１０１〜Ｓ２１０６は、デバイスＡのＣＰＵ２０２がＲＯＭ２０３又はＨＤＤ２０７等に格納されるプログラムをＲＡＭ２０４にロードして実行することにより実行される。
【０１００】
デバイスＡのジョブ／デバイス管理モジュール２００１（ＣＰＵ２０２により実行される）は、電源投入時等の所定のタイミングで本フローチャートの処理を開始し、ステップＳ２１０１において、図１２に示した検索パケット１２００をネットワーク１００上に送信する。なお、ジョブ／デバイス管理モジュール２００１は、この検索パケット１２００を、ＨＴＴＰのＭ-ＳＥＡＲＣＨメソッドを用いて、マルチキャスト宛てに送信する。
【０１０１】
次に、ステップＳ２１０２において、ジョブ／デバイス管理モジュール２００１は、各デバイスからの応答を待つ。各デバイスは、図１３に示したような応答パケット１３００をデバイスＡに返却してくる。
【０１０２】
ステップＳ２１０２で、ジョブ／デバイス管理モジュール２００１が、各デバイスからの応答を受信したと判定した場合には、ステップＳ２１０３に処理を移行させる。
【０１０３】
ステップＳ２１０３において、ジョブ／デバイス管理モジュール２００１は、各デバイスから受信した応答パケットからいずれかの応答パケットを選択する（以下、上記選択された応答パケットに対応するデバイスを、「カレントのデバイス」と称する）。そして、ジョブ／デバイス管理モジュール２００１は、上記選択した応答パケット１３００内の＜loc＞タグ１３０１で示されたＵＲＩに対してアクセスしてＤＤＦファイル１４００（図１４）をＨＴＴＰのＧＥＴメソッドを用いて要求して取得する。
【０１０４】
そして、ジョブ／デバイス管理モジュール２００１は、取得したＤＤＦファイル１４００からＳＤＦファイルのＵＲＬ（図１４に示した１４０１）、及びロケーション情報（図１４に示した１４０２）を抽出する。さらに、ジョブ／デバイス管理モジュール２００１は、抽出したロケーション情報を、カレントのデバイスの情報として、デバイス管理テーブル１７００内のLocale欄に登録する。
【０１０５】
次に、ステップＳ２１０４において、ジョブ／デバイス管理モジュール２００１は、上記抽出したＳＤＦファイルのＵＲＩに対してアクセスしてＳＤＦファイルをＨＴＴＰのＧＥＴメソッドを用いて要求して取得する。そして、ジョブ／デバイス管理モジュール２００１は、取得したＳＤＦファイル１５００から、それぞれの属性値を抽出し、カレントのデバイスの情報として、デバイス管理テーブル１７００上に登録する。
【０１０６】
詳細には、ジョブ／デバイス管理モジュール２００１は、ＳＤＦファイル１５００内の１５０１（図１５）からデバイス名を抽出して、カレントのデバイスの情報として、デバイス管理テーブル１７００内のDevice欄に登録する。また、ジョブ／デバイス管理モジュール２００１は、ＳＤＦファイル１５００内の１５０２（図１５）からカラー印刷サポートの有無の情報を抽出して、カレントのデバイスの情報として、デバイス管理テーブル１７００内のColor欄に登録する。
【０１０７】
さらに、ジョブ／デバイス管理モジュール２００１は、ＳＤＦファイル１５００内の１５０３（図１５）からフィニッシャサポートの情報を抽出して、カレントのデバイスの情報として、デバイス管理テーブル１７００内のStaple欄に登録する。また、ジョブ／デバイス管理モジュール２００１は、ＳＤＦファイル１５００内の１６０１（図１６）からサポートしている紙タイプの情報を抽出して、カレントのデバイスの情報として、デバイス管理テーブル１７００内のmediaSize欄に登録する。
【０１０８】
さらに、ジョブ／デバイス管理モジュール２００１は、ＳＤＦファイル１５００内の１６０２（図１６）からエンジンスピードについての情報を抽出して、カレントのデバイスの情報として、デバイス管理テーブル１７００内のPPM欄に登録する。
【０１０９】
次に、ステップＳ２１０５において、ジョブ／デバイス管理モジュール２００１は、カレントのデバイスに対して、イベント発行要求２７００（後述する図２２）を送信する（イベント発行処理）。
【０１１０】
図２２は、本実施形態におけるイベント発行要求のフォーマットの一例を示す図である。
【０１１１】
本実施形態では、図２２の２７０１に示すように、＜event＞タグで始まる条件でイベントを通知するよう、イベント発行要求を登録している。
【０１１２】
図２２に示す例では、「job-created」（ジョブ作成時）、「job-completed」（ジョブ正常終了時）、「job-canceled」（ジョブキャンセル時）、「device-state-changed」（デバイス状態変化時）にイベント通知するようにデバイスに対して登録を行っている。
【０１１３】
以下、図２１のフローチャートの説明に戻る。
【０１１４】
イベント発行要求の送信を完了すると、次に、ジョブ／デバイス管理モジュール２００１は、ステップＳ２１０６において、全てのデバイスに対してデバイスの情報を取得したか（ステップＳ２１０３〜Ｓ２１０５の処理を終了したか）否かを判定する。
【０１１５】
そして、ステップＳ２１０６で、ジョブ／デバイス管理モジュール２００１が、まだ全てのデバイスに対してデバイスの情報を取得していないと判定した場合には、ステップＳ２１０３に処理を戻して次のデバイスの情報を取得する。
【０１１６】
一方、ステップＳ２１０６で、ジョブ／デバイス管理モジュール２００１が、全てのデバイスに対してデバイスの情報を取得したと判定した場合には、そのまま処理を終了する。
【０１１７】
以上により、検索パケット１２００に対して、応答のあった全デバイス分の名称，属性が、デバイス管理テーブル１７００に登録される。
【０１１８】
以下、図２３のフローチャートを用いて、各デバイスから事象発生時に発行されるイベントを受信してデバイス管理テーブル１７００に登録する処理の流れについて説明する。
【０１１９】
図２３は、本発明のプリントシステムにおける第３の制御処理手順の一例を示すフローチャートである。なお、このフローチャートは、図２０に示したジョブ／デバイス管理モジュール２００１が図１７に示したデバイス管理テーブル１７００を作成する処理（各デバイスの状態をデバイス管理テーブル１７００に登録する処理）の流れに対応する。また、図２３中のＳ２２０１〜Ｓ２２０２は、デバイスＡで実行される各ステップに対応する。さらに、Ｓ２２０１〜Ｓ２２０２は、デバイスＡのＣＰＵ２０２がＲＯＭ２０３又はＨＤＤ２０７等に格納されるプログラムをＲＡＭ２０４にロードして実行することにより実行される。
【０１２０】
デバイスＡのイベント受信モジュール２００２（ＣＰＵ２０２により実行される）は、電源投入時や図２１に示した処理の終了時等の所定のタイミングで本フローチャートの処理を開始し、ステップＳ２２０１において、各デバイスからのイベント受信を待機する。
【０１２１】
そして、ステップＳ２２０１で、イベント受信モジュール２００２があるデバイスからのイベント２４００（図２４）を受信したと判定した場合には、ステップＳ２２０２に処理を移行する。
【０１２２】
そして、ステップＳ２２０２において、イベント受信モジュール２００２は、ステップＳ２２０１で受信したイベントから「ジョブが終了した」，「ジョブが開始された」等のデバイスの状態情報（例えば、図２４の＜job-state-reason＞タグ２４０１に示される「job-completed-successfully」）を抽出する。そして、イベント受信モジュール２００２は、抽出したデバイスの状態を示す情報を、イベント送信元のデバイスの情報として、図１７に示したデバイス管理テーブル１７００内のStatus欄に更新登録する。
【０１２３】
そして、イベント受信モジュール２００２は、ステップS２２０１に処理を戻し、各デバイスからのイベント受信待機状態に戻す。
【０１２４】
図２４は、本実施形態において各デバイスで発行されデバイスＡのイベント受信モジュール２００２で受信されるイベントのフォーマットの一例を示す図である。
【０１２５】
以下、図２５のフローチャートを用いて、各デバイスが事象発生時にイベントをデバイスＡに送信する処理の流れについて説明する。
【０１２６】
図２５は、本発明のプリントシステムにおける第４の制御処理手順の一例を示すフローチャートである。なお、このフローチャートは、図２１に示したステップＳ２１０５でデバイスＡから送信されたイベント発行要求を受信した各デバイスが、事象発生時にイベントを送信する処理の流れに対応する。また、図２５中のＳ２３０１〜Ｓ２３０２は、デバイスＢ，Ｃ，Ｄで実行される各ステップに対応する。さらに、Ｓ２３０１〜Ｓ２３０２は、デバイスＢ，Ｃ，ＤのＣＰＵ２０２がＲＯＭ２０３又はＨＤＤ２０７等に格納されるプログラムをＲＡＭ２０４にロードして実行することにより実行される。
【０１２７】
まず、デバイスＢ，Ｃ，Ｄ等の各デバイスのＣＰＵ２０２は、図２１に示したステップＳ２１０５でデバイスＡから状態変化があった場合にイベントを通知するよう登録されると、本フローチャートの処理を開始する。
【０１２８】
ステップＳ２３０１において、デバイスＢ，Ｃ，ＤのＣＰＵ２０２は、自デバイスでデバイスＡから通知するように登録された状態変化があったかどうかを監視し、該状態変化があるまで待機する。
【０１２９】
ステップＳ２３０１で、デバイスＢ，Ｃ，ＤのＣＰＵ２０２が、上記状態変化があったと判定した場合（例えば「ジョブの受信を開始した」，「ジョブが終了した」等の状態変化があった場合）には、ステップＳ２３０２において、デバイスＢ，Ｃ，ＤのＣＰＵ２０２は、図２４に示したようなイベントのパケットを生成して、ＨＴＴＰのＰＯＳＴメソッドを用いてデバイスＡに通知する。
【０１３０】
そして、デバイスＢ，Ｃ，ＤのＣＰＵ２０２は、ステップＳ２３０１に処理を戻し、再度、上述の状態変化があったかどうかを監視する。
【０１３１】
このようにして、論理プリントサーバとしてのデバイスＡは、物理プリンタとしての各デバイス（デバイスＢ，Ｃ，Ｄ）の属性情報を取得したり、デバイスの状態変化をイベントで監視したりする。
【０１３２】
以下、図２６のフローチャートを参照して、本発明のプリントシステムにおいて、ホストコンピュータ（クライアントＰＣ１０５）から複数の物理的なプリンタを管理する論理プリントサーバ（デバイスＡ）を指定して印刷を実行する場合（第２の印刷方法で印刷実行する場合）について説明する。
【０１３３】
図２６は、本発明のプリントシステムにおける第５の制御処理手順の一例を示すフローチャートである。なお、このフローチャートは、ホストコンピュータ（クライアント）から複数の物理的なプリンタを管理する論理プリントサーバ（デバイスＡに相当）を指定して印刷を実行する場合（第２の印刷方法で印刷実行する場合）の論理プリントサーバ（デバイスＡ）の動作に対応する。また、図２６中のＳ２５０１〜Ｓ２５０６は、デバイスＡで実行される各ステップに対応する。さらに、Ｓ２５０１〜Ｓ２５０６は、デバイスＡのＣＰＵ２０２がＲＯＭ２０３又はＨＤＤ２０７等に格納されるプログラムをＲＡＭ２０４にロードして実行することにより実行される。
【０１３４】
まず、ホストコンピュータ（ＰＣ１０５）から図５に示したようなCreateJobパケット５００が論理プリントサーバとしてのデバイスＡに送信されると、デバイスＡのＣＰＵ２０２は、これを受信して、ステップＳ２５０１において、CreateJobパケット５００に記述されたＸＭＬデータを解析して、印刷条件を抽出する。例えば、図５に示したＸＭＬデータ（CreateJobパケット５００）で印刷条件を抽出すると、＜finishing＞タグ５０５に「staple」を指定していることから、ホストコンピュータ１０５は、staple印刷を所望していることがわかる。
【０１３５】
よって、デバイスＡのＣＰＵ２０２は、図７に示したデバイス管理テーブル１７００を検索し、Stapleが「ＯＮ」で、且つ、現在のStatusが「Active」なデバイスを検索する（Ｓ２５０２）。なお、Statusが「printing」や「Error」となっているデバイスは、すぐに印刷できないため除外される。ここでは、上記条件（Stapleが「ＯＮ」で、且つ、現在のStatusが「Active」）に合致するデバイスが「Ｃ」であると判断され、デバイスＣが選択されたとする。
【０１３６】
次に、ステップＳ２５０３において、デバイスＡのＣＰＵ２０２は、上記選択されたデバイスＣに対して、ホストコンピュータ１０５から要求されたCreateJobコマンド５００を転送する。
【０１３７】
すると、このCreateJobコマンド５００を受け取ったデバイスＣは、図７に示したシーケンスを経て、印刷データ受信用の印刷ポートを生成する。さらにデバイスＣは、上記生成したポートのＵＲＩを＜data-sink-uri＞タグ６０４（図６）の値として設定したCreateJob応答レスポンス６００を生成し、デバイスＡに返す。
【０１３８】
そして、デバイスＡのＣＰＵ２０２は、デバイスＣからのCreateJob応答レスポンス６００を受信すると、ステップＳ２５０４において、デバイスＣから返信されたデバイスＣのCreateJob応答レスポンス６００を、ホストコンピュータ１０５に返却する。
【０１３９】
すると、ホストコンピュータ１０５は、図７に示したシーケンスと同様に、＜data-sink-uri＞タグ６００に示されたＵＲＩに対して、ＨＴＴＰのＰＯＳＴメソッドを用いて図８に示したような印刷データ８００を送信する（Ｓ２５１０）。この手順によって、デバイスＡは、従来のプリントサーバのようにホストコンピュータのジョブ（印刷データ）を受信してデバイスＣに転送する必要がなくなった。よって、従来のプリントサーバに比べて、デバイスＡの負荷は軽減される。
【０１４０】
なお、デバイスＣは、ホストコンピュータ１０５から印刷データを受信すると、自デバイスのステータスが変化する。そのため、デバイスＣは、デバイスＡに対して「Job-created」のイベントを発行する。なお、このイベントは、デバイスＡの電源投入時、図２１に示したステップＳ２１０５によって、デバイスＣに登録されたものである。
【０１４１】
そして、デバイスＡでは、デバイスＣからのイベントを受信すると、デバイスＡのイベント受信モジュール２００２が、ステップＳ２５０５において、デバイスＣの状態を「printing」中として、デバイス管理テーブル１７００のStatus欄に登録する。
【０１４２】
なお、デバイスＣは、ホストコンピュータ１０５からの受信が終了すると、図７に示したシーケンスと同様に、そのレスポンスをホストコンピュータ１０５に返す（Ｓ２５１１）。また、デバイスＣは、受信したデータを展開し、印刷処理を行う。
【０１４３】
そして、デバイスＣにおいて印刷処理が終了すると、デバイスＣは、「job-completed」のイベントをデバイスＡに通知する。
【０１４４】
そして、デバイスＡでは、デバイスＣからのイベントを受信すると、デバイスＡのイベント受信モジュール２００２が、ステップＳ２５０６において、デバイスＣの状態を「Active」として、デバイス管理テーブル１７００のStatus欄に登録する。
【０１４５】
さらに、図５に示したCreateJob５００には、イベント通知をホストコンピュータに通知する記述がなされているので、デバイスＣは、図７に示したシーケンスと同様に、ホストコンピュータ１０５にも「job-completed」のイベントを通知する（Ｓ２５１２）。また、デバイスＣは、印刷用ポートを削除（クローズ）して、印刷動作を終了する。
【０１４６】
以上、説明したように、本実施形態のプリントシステムによれば、論理プリントサーバ装置としてのデバイスＡが、印刷データをスプールすること無しに、ホストコンピュータ１０５から送信された印刷データを各物理プリンタへ配送させることが可能となる。よって、論理プリントサーバ機能を有するデバイスＡにおける負荷（ＨＤＤ等のリソースの負荷や、データ転送処理による負荷等）を軽減することができる。
【０１４７】
〔第２実施形態〕
上記第１実施形態では、デバイスＡの電源投入時に、デバイス管理テーブル１７００（図１７）を作成する構成について説明したが、デバイスＡがホストコンピュータよりCreateJob受信後のタイミングで、デバイス管理テーブル１７００を作成し、該当するデバイスに対してCreateJobを転送するように構成してもよい。
【０１４８】
以下、図２７のフローチャートを参照して、本発明の第２実施形態において、第２の印刷方法で印刷実行する場合について説明する。
【０１４９】
図２７は、本発明のプリントシステムにおける第６の制御処理手順の一例を示すフローチャートである。なお、このフローチャートは、ホストコンピュータ（クライアント）から複数の物理的なプリンタを管理する論理プリントサーバ（デバイスＡに相当）を指定して印刷を実行する場合（第２の印刷方法で印刷実行する場合）の論理プリントサーバ（デバイスＡ）の動作に対応する。また、図２７中のＳ２５０１，Ｓ２６０２，Ｓ２５０３〜Ｓ２５０６は、デバイスＡで実行される各ステップに対応し、図２６と同一のステップには同一のステップ番号を付してある。さらに、Ｓ２５０１，Ｓ２６０２，Ｓ２５０３〜Ｓ２５０６は、デバイスＡのＣＰＵ２０２がＲＯＭ２０３又はＨＤＤ２０７等に格納されるプログラムをＲＡＭ２０４にロードして実行することにより実行される。
【０１５０】
まず、ホストコンピュータ（ＰＣ１０５）から図５に示したようなCreateJobパケット５００がデバイスＡに送信されると、デバイスＡのＣＰＵ２０２は、これを受信して、ステップＳ２５０１において、CreateJobパケット５００に記述されたＸＭＬデータを解析して、印刷条件を抽出する。例えば、図５に示したＸＭＬデータ（CreateJobパケット５００）で印刷条件を抽出すると、＜finishing＞タグ５０５に「staple」を指定していることから、ホストコンピュータ１０５は、staple印刷を所望していることがわかる。
【０１５１】
次に、ステップＳ２６０２において、デバイスＡのＣＰＵ２０２は、図２１のＳ２１０１〜Ｓ２１０６に示したような処理を行って、デバイス管理テーブル１７００を作成する。そして、デバイスＡのＣＰＵ２０２は、デバイス管理テーブルを作成した後、印刷するデバイスを選定し、そのデバイスに対して、CreateJobを発行することになる。ステップＳ２５０３以後の処理は、図２５と同一である。
【０１５２】
本実施形態では、デバイスＡが、CreateJobを受信した後にデバイスを検索することで、その時点での最新のデバイスをネットワークから検索することができる。また、その時点での最新の属性情報を取得することができる。
【０１５３】
〔第３実施形態〕
上記第１実施形態では、デバイスＡの電源投入時に、デバイス管理テーブル１７００（図１７）を作成する構成について説明し、上記第２実施形態では、デバイスＡがホストコンピュータよりCreateJob受信後のタイミングで、デバイス管理テーブル１７００を作成する構成について説明したが、デバイスＡの電源投入時にデバイス管理テーブル１７００を作成し、さらに、緊急性の高いジョブを指定したCreateJobをホストコンピュータより受信した際には、そのタイミングで再度、デバイス管理テーブル１７００を作成するように構成してもよい。
【０１５４】
この構成により、デバイスＡが、緊急性の高いジョブを指定したCreateJobを受信した際には、その時点での最新のデバイスをネットワークから検索して、最新のデバイス管理データを生成することができる。よって、その時点で確実にジョブを処理可能なデバイスにジョブを処理させることができる。一方、緊急性の高いジョブ以外のジョブを受信した際には、予め作成されたデバイス管理データを使用するので、デバイスＡでの負荷を軽減することができる。
【０１５５】
なお、上記各実施形態では、デバイスＡは、イベント受信を用いてデバイスのステータスを監視していたが、デバイスＡが各デバイス（デバイスＢ，Ｃ，Ｄ）に対して、ポーリングの手法を用いて、各デバイスのステータスを監視するように構成してもよい。
【０１５６】
また、上記各実施形態では、論理プリントサーバ機能を持つモジュールをデバイスＡ上で動作させていたが、これをコンピュータ等のサーバコンピュータ上で動作させても同様の効果を得ることができる。
【０１５７】
さらに、上記各実施形態では、ＬＡＮ１００上に、論理プリントサーバとしてのデバイスＡと、物理プリンタとしてのデバイスＢ，Ｃ，Ｄが接続されるプリントシステムについて説明したが、本発明を、ＷＡＮを介して論理プリントサーバとしてのデバイスＡと、物理プリンタとしてのデバイスＢ，Ｃ，Ｄが接続される広域プリントサービスシステムについて適用してもよい。
【０１５８】
この場合、論理プリントサーバは、全国あらゆる場所のユーザＰＣから大量のCreateJobを受信することになるが、本発明の論理プリンタサーバは、印刷データそのものは受け取らない。そのため、大量のCreateJobを受信したとしても、論理プリンタサーバにかかる負荷を軽減することができる。
【０１５９】
また、ホストコンピュータから送信されるCreateJobは、プルプリントを指定したCreateJobであってもよい。この場合、デバイスＢ，Ｃ，Ｄ等の物理プリンタに送信された印刷データは、物理プリンタ内のＨＤＤ２０７等に保存され、ユーザが物理プリンタの操作部２１４で印刷指示することにより印刷開始される。さらに、プルプリントを指定した印刷データには暗証番号を付加することも可能とする。
【０１６０】
特に、本発明を上述したＷＡＮ環境での広域プリントサービスシステムに適用する場合、上記暗証番号が付加されたプルプリントジョブが有効となる。これにより、機密性の高いデータを安全に取得することができるプリントシステムをサーバに負荷をかけることなく実現することができる。
【０１６１】
なお、上記各実施形態では、プリンタ部（プリンタエンジン）がレーザビーム方式であっても、レーザビーム方式以外の電子写真方式（例えばＬＥＤ方式）でも、液晶シャッタ方式、インクジェット方式、熱転写方式、昇華方式でもその他のプリント方式であっても本発明は適用可能である。
【０１６２】
また、論理プリントサーバが複数の物理プリンタを管理する構成につてい説明したが、物理プリンタはプリンタ以外の情報処理装置であってもよい。例えば、ネットワークスキャナであってもよい。この場合、CreateJobパケットは、画像読み取りジョブを依頼要求に対応する。
【０１６３】
また、データ処理を行うコンピュータであってもよい。この場合、CreateJobパケットは、データ処理（例えばデータ解析）依頼要求に対応し、サーバは、データ処理依頼要求が示すデータ処理を実行可能なコンピュータを選択し、パケットを中継制御する。
【０１６４】
また、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１６５】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１６６】
なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【０１６７】
以上、説明したように、論理プリントサーバとしてのデバイスＡが、物理プリンタとしてのデバイスＢ，Ｃ，Ｄを管理し、クライアントＰＣ１０５からの印刷要求に応じて、適当な物理プリンタを選択する。選択後、その物理プリンタに対し、クライアントの印刷要求を転送し、物理プリンタから印刷あて先を受信し、そのレスポンスをクライアントに返す。そして、クライアントＰＣ１０５は、この印刷あて先に対してジョブ（印刷データ）を直接物理プリンタに転送する。このような構成により、論理プリントサーバでジョブデータを管理する必要がなくなり、複数の物理プリンタを管理する論理プリンタサーバのリソースへの負荷を軽減させることができる。
【０１６８】
また、このような構成の論理プリントサーバであれば、クライアントＰＣ１０５からのジョブをハードディスク（ＨＤＤ２０７）に保持する必要がないので、ハードディスク（ＨＤＤ２０７）を備えていないな装置でも論理プリントサーバ装置として提供することが可能となる。
【０１６９】
従って、リソースの負荷を抑えた論理プリントサーバ機能を持ったプリンタデバイスを提供することができる。
【０１７０】
以下、図２８に示すメモリマップを参照して本発明に係るプリントシステムを構成する各情報処理装置（デバイスＡ，デバイスＢ，Ｃ，Ｄ）で読み取り可能なデータ処理プログラムの構成について説明する。
【０１７１】
図２８は、本発明に係るプリントシステムを構成する各情報処理装置（デバイスＡ，デバイスＢ，Ｃ，Ｄ）で読み取り可能な各種データ処理プログラムを格納する記憶媒体（記録媒体）のメモリマップを説明する図である。
【０１７２】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１７３】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１７４】
本実施形態における図７，図２１，図２３，図２５，図２６，図２７に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１７５】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１７６】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１７７】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１７８】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１７９】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１８０】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０１８１】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１８２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１８３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１８４】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウエアによって表されるプログラムを格納した記憶媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１８５】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から排除するものではない。
【図面の簡単な説明】
【０１８６】
【図１】本発明の一実施形態を示す論理プリントサーバ（プリンタ管理装置）を適用可能なプリントシステムの構成を示すシステム構成図である。
【図２】図１に示した論理プリンタ機能を持つプリンタ（ＭＦＰ）の概略構成を示すブロック図である。
【図３】図２に示したユーザインターフェース部分の一例を示す平面図である。
【図４】図１に示したＭＦＰのデバイスのネットワーク周りの制御を行うモジュール構成のブロック図である。
【図５】本実施形態のプリントシステムにおけるＨＴＴＰ上のＳＯＡＰプリントサービスのプロトコルにおいて、クライアント（ＰＣ）から印刷装置（ＭＦＰ）に送信される「CreateJob」と称されるパケットデータの一例を示す図である。
【図６】図５に示したCreateJobパケットに対して印刷装置からクライアントに応答される応答パケットデータ（CreateJob応答パケット）の一例を示す図である。
【図７】本発明のプリントシステムにおける第１の制御処理手順の一例を示すフローチャートである。
【図８】ＨＴＴＰのＰＯＳＴメソッドによる印刷データ転送パケットの一例を示す図である。
【図９】ＨＴＴＰレスポンスパケットの一例を示す図である。
【図１０】図５に示したCreateJobパケットに対して印刷装置からクライアントに応答されるエラーレスポンスのパケットデータの一例を示す図である。
【図１１】本実施形態における論理プリンタによる物理プリンタの管理形態を示す模式図である。
【図１２】図１１に示したデバイスＡが他デバイスを検索するために送出する検索パケットのフォーマットの一例を示す図である。
【図１３】図１２に示した検索パケット１２００に対する応答パケット１３００のフォーマットの一例を示す図である。
【図１４】図１３に示した＜loc＞タグで示されるＵＲＩから取得されるＤＤＦファイルのフォーマットの一例を示す図である。
【図１５】図１４に示した＜SCPDURL＞タグで示されるＵＲＩから取得されるデバイスの属性ファイルであるＳＤＦファイルのフォーマットの一例を示す図である。
【図１６】図１４に示した＜SCPDURL＞タグで示されるＵＲＩから取得されるデバイスの属性ファイルであるＳＤＦファイルのフォーマットの一例を示す図である。
【図１７】図１１に示したデバイスＡが図１４，図１５〜図１６で図示したＤＤＦ，ＳＤＦから取得した各デバイスの属性情報を管理するデバイス管理テーブルの一例を示す図である。
【図１８】ＰＣが論理プリンタサーバとしてのデバイスＡを介してデバイスＣにデータを送る様子を模式的に記述した模式図である。
【図１９】ＰＣが論理プリンタサーバとしてのデバイスＡを介して、デバイスＣにデータを送る様子を模式的に記述した模式図である。
【図２０】図１１に示したデバイスＡに実装されたプリントサービス（図４）の内部モジュール構成を示す図である。
【図２１】本発明のプリントシステムにおける第２の制御処理手順の一例を示すフローチャートである。
【図２２】本実施形態におけるイベント発行要求のフォーマットの一例を示す図である。
【図２３】本発明のプリントシステムにおける第３の制御処理手順の一例を示すフローチャートである。
【図２４】本実施形態において各デバイスで発行されデバイスＡのイベント受信モジュールで受信されるイベントのフォーマットの一例を示す図である。
【図２５】本発明のプリントシステムにおける第４の制御処理手順の一例を示すフローチャートである。
【図２６】本発明のプリントシステムにおける第５の制御処理手順の一例を示すフローチャートである。
【図２７】本発明のプリントシステムにおける第６の制御処理手順の一例を示すフローチャートである。
【図２８】本発明に係るプリントシステムを構成する各情報処理装置（デバイスＡ，デバイスＢ，Ｃ，Ｄ）で読み取り可能な各種データ処理プログラムを格納する記憶媒体（記録媒体）のメモリマップを説明する図である。
【符号の説明】
【０１８７】
１００    ＬＡＮ
１０１    ＭＦＰ（デバイスＡ）
１０２    ＭＦＰ（デバイスＢ）
１０３    ＭＦＰ（デバイスＣ）
１０４    ＭＦＰ（デバイスＤ）
１０５    ＰＣ（ホストコンピュータ）
２０２    ＣＰＵ
２０３    ＲＯＭ
２０４    ＲＡＭ
２０５    ＮＶＲＡＭ
２０７    ＨＤＤ
２１０    ネットワーク制御部
【図１】
2006338582.tif 000003
【図２】
2006338582.tif 000004
【図３】
2006338582.tif 000005
【図４】
2006338582.tif 000006
【図５】
2006338582.tif 000007
【図６】
2006338582.tif 000008
【図７】
2006338582.tif 000009
【図８】
2006338582.tif 000010
【図９】
2006338582.tif 000011
【図１０】
2006338582.tif 000012
【図１１】
2006338582.tif 000013
【図１２】
2006338582.tif 000014
【図１３】
2006338582.tif 000015
【図１４】
2006338582.tif 000016
【図１５】
2006338582.tif 000017
【図１６】
2006338582.tif 000018
【図１７】
2006338582.tif 000019
【図１８】
2006338582.tif 000020
【図１９】
2006338582.tif 000021
【図２０】
2006338582.tif 000022
【図２１】
2006338582.tif 000023
【図２２】
2006338582.tif 000024
【図２３】
2006338582.tif 000025
【図２４】
2006338582.tif 000026
【図２５】
2006338582.tif 000027
【図２６】
2006338582.tif 000028
【図２７】
2006338582.tif 000029
【図２８】
2006338582.tif 000030