(57)【特許請求の範囲】
【請求項１】
周辺機器管理装置と接続され、更新可能なリソースデータを保持し、印刷ジョブを受け付ける印刷ジョブポート及び処理すべき印刷ジョブを蓄積するバッファ領域を備えた印刷装置であって、
前記周辺機器管理装置から、前記印刷ジョブの処理時に使用されるリソースデータを、前記印刷ジョブポートとは異なるポートであるリソースポートを用いて受信する受信手段と、
前記受信手段によるリソースデータの受信に際して、前記印刷ジョブポートによる新たな印刷ジョブの受け付けを停止し、前記バッファ領域に処理すべき印刷ジョブが蓄積されていないときに、前記受信手段により前記リソースポートを用いて受信したリソースデータにより、保持されているリソースデータを更新する更新手段とを備え、
前記更新手段による更新が行われる前に、すでに受信され前記バッファ領域に蓄積されていた印刷ジョブは、更新前の保持されたリソースデータを用いて処理され、
前記更新手段による更新が行われた後に、前記印刷ジョブポートにより印刷ジョブの受け付けを再開することを特徴とする印刷装置。
【請求項２】
前記リソースデータにはフォント及びフォームの少なくとも何れかが含まれることを特徴とする請求項１に記載の印刷装置。
【請求項３】
更新可能なリソースデータを保持する印刷装置と接続され、印刷ジョブを受け付ける印刷ジョブポート及び処理すべき印刷ジョブを蓄積するバッファ領域を備え、前記バッファ領域に蓄積された印刷ジョブの処理の要求を前記印刷装置に対して順次行う情報処理装置であって、
前記印刷ジョブの処理時に使用されるリソースデータを、前記印刷ジョブポートとは異なるポートであるリソースポートを用いて受信する受信手段と、
前記受信手段によりリソースデータを受信した後の前記印刷ジョブポートによる印刷ジョブの受け付けを停止し、すでに受信されている印刷ジョブの処理が完了したと判定したなら、前記受信手段により前記リソースポートを用いて受信したリソースデータにより、前記印刷装置により保持されているリソースデータを更新する更新手段とを備え、
前記印刷装置は印刷ジョブを管理するためのバッファ領域を持たず、
前記更新手段による更新が行われた後に、前記印刷ジョブポートにより印刷ジョブの受け付けを再開することを特徴とする情報処理装置。
【請求項４】
前記更新手段は、前記受信手段によりリソースデータを受信した場合に、すでに受信されて前記バッファ領域に蓄積されている印刷ジョブを削除し、当該印刷ジョブの処理の完了と判定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記更新手段は、前記受信手段によりリソースデータを受信した場合に、すでに受信されて前記バッファ領域に蓄積されている印刷ジョブについて、更新前の保持されたリソースデータを用いてイメージデータを生成してそれを退避領域に格納したなら、当該印刷ジョブの処理の完了と判定することを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記リソースデータにはフォント及びフォームの少なくとも何れかが含まれることを特徴とする請求項３に記載の情報処理装置。
【請求項７】
前記印刷ジョブは、出力のために有権者の認証を要する印刷ジョブ含み、
前記更新手段は、認証を要する印刷ジョブについては、イメージデータとともに当該イメージデータの出力を許可するための認証情報を格納することを特徴とする前記請求項５に記載の情報処理装置。
【請求項８】
前記更新手段は、前記受信手段によりリソースデータを受信した場合に、すでに受信されて前記バッファ領域に蓄積されている複数の印刷ジョブについて、各印刷ジョブに指定された宛先に対して、リソースデータの更新を行う旨の通知を発行する発行手段をさらに有することを特徴とする請求項３に記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばコンピュータとプリンタもしくは機能複合型複写機等が接続され、装置間においてマルチチャネルで非同期にデータの送受信が可能な環境における、周辺機器管理装置および方法と印刷装置及びその制御方法に関するものである。
【０００２】
【従来の技術】
従来、フォント等のリソースを出力機器にダウンロードするシステムにおいては、ダウンロードはシステム管理者により行なわれるべきものとし、ダウンロードの際には、ダウンロード対象となる出力機器への管理者以外からの接続を物理的に遮断し、管理者が出力機器を占有する第１の方法と、管理者が出力機器へのダウンロードを行う一方で、その出力機器に、他の使用者による印刷データを受け付けさせ、出力とダウンロードとを同時進行させる第２の方法とがあった。
【０００３】
また、特開２０００−３５８６０では、マルチチャネル環境で、ある出力機器により印刷中の印刷データで使用するリソースのダウンロード時、その出力機器による印刷を一時休止してダウンロードを優先的に行い、その後印刷を再開する第３の方法が示されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、管理者が出力機器を物理的に占有する第１の方法は、LANやインターネットに接続された大規模なネットワーク環境においては事実上不可能である。
【０００５】
また、印刷とダウンロードとを同時進行させる第２の方法においては、印刷イメージの生成に用いるリソースが印刷イメージの生成と同時に変更されるため、文字化けなどの予期せぬ出力が成されたり、さらには、データの破壊により復旧不可能な状態を招くこともあった。
【０００６】
また、ダウンロードを優先させる第３の方法は、出力時に、その出力において使用するリソースのダウンロードに関してのみ、出力機器の有するリソースと出力との調整を図ったものであり、リソースデータのダウンロードと出力とが同期しない環境、すなわちプリンタが例えばネットワークに接続されており、多くのユーザがそれを出力機器として利用し、リソースのダウンロードは管理者が行なうといった環境においては、リソースのダウンロード作業により多くの利用者の出力結果に予期せぬ影響をもたらすことを回避できなかった。
【０００７】
以上のように、従来とられていたいずれの方法においても、ネットワークに接続されて共有される出力機器に対するリソースのダウンロードとその出力機器の使用とを、不測の結果を招くことなく実現することは困難であった。
【０００８】
本発明は上記従来例に鑑みてなされたもので、リソースのダウンロードと本来の出力動作との競合を防止し、出力結果に対して予期しない影響をもたらさずにリソースのダウンロードを実現する周辺機器管理装置および方法と印刷装置及びその制御方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、本発明は次のような構成から成る。
【００１０】
周辺機器管理装置と接続され、更新可能なリソースデータを保持し、印刷ジョブを受け付ける印刷ジョブポート及び処理すべき印刷ジョブを蓄積するバッファ領域を備えた印刷装置であって、
前記周辺機器管理装置から、前記印刷ジョブの処理時に使用されるリソースデータを、前記印刷ジョブポートとは異なるポートであるリソースポートを用いて受信する受信手段と、
前記受信手段によるリソースデータの受信に際して、前記印刷ジョブポートによる新たな印刷ジョブの受け付けを停止し、前記バッファ領域に処理すべき印刷ジョブが蓄積されていないときに、前記受信手段により前記リソースポートを用いて受信したリソースデータにより、保持されているリソースデータを更新する更新手段とを備え、
前記更新手段による更新が行われる前に、すでに受信され前記バッファ領域に蓄積されていた印刷ジョブは、更新前の保持されたリソースデータを用いて処理され、
前記更新手段による更新が行われた後に、前記印刷ジョブポートにより印刷ジョブの受け付けを再開する。
【００１８】
あるいは、更新可能なリソースデータを保持する印刷装置と接続され、印刷ジョブを受け付ける印刷ジョブポート及び処理すべき印刷ジョブを蓄積するバッファ領域を備え、前記バッファ領域に蓄積された印刷ジョブの処理の要求を前記印刷装置に対して順次行う情報処理装置であって、
前記印刷ジョブの処理時に使用されるリソースデータを、前記印刷ジョブポートとは異なるポートであるリソースポートを用いて受信する受信手段と、
前記受信手段によりリソースデータを受信した後の前記印刷ジョブポートによる印刷ジョブの受け付けを停止し、すでに受信されている印刷ジョブの処理が完了したと判定したなら、前記受信手段により前記リソースポートを用いて受信したリソースデータにより、前記印刷装置により保持されているリソースデータを更新する更新手段とを備え、
前記印刷装置は印刷ジョブを管理するためのバッファ領域を持たず、
前記更新手段による更新が行われた後に、前記印刷ジョブポートにより印刷ジョブの受け付けを再開する。
【００１９】
【発明の実施の形態】
［第１の実施の形態］
＜システム構成＞
図1は、本発明の特徴を最も良く表した図であり、同図を用いて本発明の実施形態である印刷システムの構成を説明する。同図において、1はネットワークであり、通常はEthernetを使用する。Ethernet以外にも、LocalTalkなどがある。なお、本実施形態における「ネットワーク」という言葉は、物理的なケーブルと、ケーブル上を通る電気的な信号と、電気的な信号の組みあわせで実現される情報交換を実現するもの（プロトコル）の内の一つもしくは複数を指し、通常は、これらの総称を指す。2は、サーバコンピュータであり、ファイルサーバ、Webサーバなどの機能を有し、本システムの中核を成すものである。3は管理者用パーソナルコンピュータ（以下パーソナルコンピュータをPCと表記）であり、サーバに対する指示や周辺機器への指示等を行う。4および5はクライアントPCであり、ネットワークに接続された一般ユーザが使用するPCである。なお、管理者用PCであっても、クライアントPCとしても使用されることもありうる。6および7はプリンタであり、ネットワーク1に接続され、クライアントPC4および5からの印刷命令を受けつけ、命令に従い印刷処理を行う。8および9は、機能複合型複写機であり、画像スキャナ機能、プリンタ機能、ファクシミリ機能を備え、一つまたは複数の機能を組み合わせることにより、複写機、プリンタ、スキャナ、ファクシミリとして利用可能である。
【００２０】
次に、同図を用いて、本システムの動作を説明する。サーバ2は、定期的にプリンタ6、同7、機能複合型複写機8、同9と通信を行い、機器の状態やソフトウェアの設定をモニタする。管理者用PC3から機器に対し設定の変更やソフトウェア、ソフトウェアで使用するリソースの変更を行う。管理者用PC  3から与えられた指示の結果は、サーバ2の内部に情報として集められ、クライアントPC4および5は、サーバ2から情報を受け取る。また、サーバ2はhttpプロトコルを用いた通信手段を備え、管理者用PC3、クライアントPC4、および5はWebBrowserを使用してサーバ2の情報を取得し、またサーバ2に対して指示を与えることが可能である。サーバ2は、管理者用PC3、クライアントPC4もしくは5から指示があると、サーバに貯えられた情報を用いて、管理者用PC3、クライアントPC4もしくは5に情報を返す。また、情報の内容によっては、プリンタ6、同7、機能複合型複写機8、同9から情報を取得し、管理者用PC3、クライアントPC4もしくは5に情報を返すか、プリンタ6、同7、機能複合型複写機8、同9に対して設定等の処理を行う。管理者用PC3には、ダウンローダを備え、プリンタ6、同7、機能複合型複写機8、同9に対しソフトウェアもしくはソフトウェアが使用するリソースのダウンロードを行う。ソフトウェアは、機器の印刷制御ファームウェア、ネットワーク制御ファームウェア、また機能複合型複写機8、同9においては、前記ファームウェアに加え、スキャナ制御ファームウェア、ファクシミリ制御ファームウェア、複写機ファームウェア、パネル操作ファームウェア、画像管理ソフトウェア、アドレス管理ソフトウェアなどがある。また、ソフトウェアが使用するリソースとしては、フォント、外字、オーバレイフォーム、キャリブレーションテーブル、アドレス管理ソフトウェアが使用するアドレス情報、ファクシミリ番号などがある。クライアントPC4および5は、プリンタ6、同7、機能複合型複写機8、同9をアクセスして使用するためのソフトウェア（ドライバ等）およびソフトウェアが使用するリソース（クライアントPC用リソース）を保持する。ソフトウェアは、プリンタを使用するためのプリンタドライバ、スキャナを使用するためのスキャナドライバ、ファクシミリを使用するためのファクシミリドライバ、複写機を制御するための複写機ユーティリティソフトウェア、ネットワークを利用するためのネットワークドライバ、WebBrowser、アプリケーションソフトウェアなどがあり、ソフトウェアが使用するリソースについては、プリンタフォントに対応したクライアントPC用フォント、ファクシミリドライバが利用するアドレス情報、カラーキャリブレーションを行う際の印刷データ、プレビューで利用するオーバレイイメージ等がある。
【００２１】
上記の機能に加え、プリンタ6の設定内容やソフトウェア、ソフトウェアが使用するリソースをプリンタ7、機能複合型複写機8、同9に反映させることが可能である。また同様に機能複合型複写機8の設定内容やソフトウェア、ソフトウェアが使用するリソースを機能複合型複写機9、プリンタ6、同7に反映させることが可能である。機種間で機能の違いがあるときは、両機種に共通の機能についてのみ反映されるが、変換が可能なリソースなどの情報については変換された後反映される。同様に、これらの機種に関するクライアントPC4上の情報をクライアントPC5に反映させることも可能である。これらの処理は、サーバ2を通して情報の交換を行うことにより実現される。
【００２２】
プリンタ6、同7、機能複合型複写機8、同9の設定内容は、管理者用PC3からの指示だけでなくパネルからの設定やクライアントPCからの設定によっても変更される場合がある。この情報を正確にクライアントPCに渡す必要があるものは、クライアントPCから表示等の指示があった場合、常にプリンタ6、同7、機能複合型複写機8、同9に問い合わせを行い、問い合わせ時点での情報をクライアントPCに返す。正確さが、さほど厳密に要求されないものについては、サーバ内に保持した情報を用いる。
【００２３】
図2は、図1のシステムにおける各機器の主なハードウェアモジュールを表した図である。同図を用いて、各機器のハードウェアモジュールの機能を説明する。同図において、201は、ネットワークラインである。ネットワークラインは、各機器間のネットワークを構成する物理的なラインであり、通常はツイストペアケーブル、同軸ケーブルや光ファイバなどが使われる。サーバ2を構成するハードウェアモジュールとしては、ネットワークボード202、CPUボード203、Videoインタフェイス204、I/Oインタフェイス205、SCSIインタフェイス206と、それらに接続されたCRT207、キーボード208、マウス209、ハードディスクドライブ210である。ハードディスクドライブ210は、複数のハードディスクユニットが並列に接続されており、データ転送の高速化と高信頼性を確保している。管理者用PC3、クライアントPC4、同5を構成するハードウェアモジュールとしては、ネットワークボード202、CPUボード203、Videoインタフェイス204、I/Oインタフェイス205、IDEインタフェイス211と、それらに接続されたCRT207、キーボード208、マウス209、ハードディスクドライブ210である。サーバとはハードディスクの構成が異なる。プリンタ6、同7のハードウェアモジュールとしては、周辺機器に対応したネットワークボード212、プリンタコントローラ213、プリントエンジン214を備える。機能複合型複写機8、同9のハードウェアモジュールとしては、周辺機器に対応したネットワークボード212、機能複合型複写機コントローラ215、プリントエンジン214、操作パネルコントローラ216、操作パネル217、スキャナコントローラ218、スキャナユニット219、モデム220、ハードディスクIF221、ハードディスク222を備える。
【００２４】
図3は、サーバ２のソフトウェア構成を表した図である。同図において、301はOS（オペレーティングシステム）、302はライブラリ、303はWebサーバ、304はアプリケーションであり、アプリケーションの一部として305周辺機器管理プログラムを含む。306はハードウェア制御プログラムであり、ハードウェア制御プログラムの一部としてネットワークボード制御プログラム307、ハードディスク制御プログラム308を含む。
【００２５】
図4は、サーバ２の周辺機器管理プログラム305の構成を表した図である。周辺機器管理プログラム305は、サーバ2上のアプリケーションの一つとして実現される。401は管理プログラムのメイン部分であり、管理プログラムの全体を制御する。402はGUI用CGIプログラムであり、Webブラウザ303に対してhtml形式で表現された画面のデータを渡す。Webブラウザ303は、CGI402のデータをhttp形式で管理者用PC3もしくはクライアントPC4、同5に送出し、管理者用PC3もしくはクライアントPC4、同5からの指示を管理プログラム401に伝える。デバイス通信プログラム403は、ネットワークプログラム307を利用して周辺機器とサーバの間での通信を行い、デバイスからの情報等の取得とデバイスの設定、ソフトウェアやソフトウェアが利用するリソースのダウンロード等を行う。また、デバイス通信プログラム403は周辺機器情報取得モジュール4031を含む。IPC404は、プロセス間通信を行うプログラムであり、ネットワークプログラム307を利用して他のPC、特に管理者用PC3との間での通信を行う。ファイル管理プログラム405は、HD制御プログラム308を利用し、ファイルサーバ機能を実現する。
【００２６】
図5は、管理者用PC3のソフトウェア構成を表した図である。同図において、501はOSであり、管理者用PCの全般的な処理を行う。502はダウンローダのメインプログラムであり、周辺機器に対しソフトウェアやソフトウェアが利用するリソースのダウンロードを行う。503はGUIプログラムであり、表示やユーザからの指示のダウンローダへの伝達などのユーザインタフェイス機能を実現する。504はIPCプログラムであり、サーバのIPC404との間で通信を行う。505はファイル管理プログラムであり、通常はOS501の一部として実装され、ファイルをハードディスクやCD-ROMの内容を読み込み、ダウンローダ502を通して周辺機器にダウンロードする際の、ファイル管理を行う。506はネットワークプログラムであり、通常はOS501の一部として実装され、ファイルをハードディスクやCD-ROMの内容を読み込み、ダウンローダ502を通して周辺機器にダウンロードする際の、ネットワーク通信を行う。
【００２７】
図6は、クライアントPC4、同5のソフトウェア構成を表した図である。同図において、601はOSであり、クライアントPCの全般的な処理を行う。602はWebBrowserであり、サーバ2のWebServer303からhtml形式で表現されたデータを受け取り、画面に表示するとともに、ユーザの指示をhttpプロトコルを通してサーバ2に伝える。603はクライアントモジュールであり、WebBrowser602で受信したデータのうち、WebBrowser602が処理できないデータの一部に関して処理を行う。ここでWebBrowser602が処理出来ないデータとは、クライアントPC用のプリンタドライバ等のソフトウェア、クライアントPC用フォントなどのリソースであり、それぞれ決められた方法でクライアントPCにインストールする必要がある。604はネットワークプログラムであり、通常はOS601の一部として実装され、httpプロトコルを利用してWebServer303と通信を行う。
【００２８】
図7は、管理者用PC3のダウンローダ502の構成を表した図である。同図において、701はメインモジュールであり、各モジュールの呼び出しやパラメータの処理等を行う。702はファイル管理モジュールであり、ファイル管理プログラム505を利用してダウンロードするファイルのOpenやReadを行う。703はデバイス探索モジュールであり、ダウンロード可能な周辺機器デバイスを探索し、通信可能なプロトコル、デバイスのアドレス等を取得する。704はファイル変換モジュールであり、ソフトウェアが用いるリソースにおいて、プリンタ用リソースとクライアントPC用リソースのフォーマットが異なる場合に、変換を行う。ファイル変換モジュール704は、内部にプリンタ用ファイル変換モジュール705と、クライアントPC用ファイル変換モジュール706を含む。リソースのフォーマットの違いとは、例えばプリンタが3次曲線で表現されたフォントを使い、クライアントPCが2次曲線で表現されたフォントを使う場合や、プリンタとクライアントPCでオーバレイイメージの表現形式が異なるということである。ダウンロードモジュール707は、ネットワークプログラム506を利用してダウンロードを行うモジュールである。通信モジュール708は、サーバ2と通信を行い、クライアントPC用リソースなどをサーバに送出するモジュールである。IPCモジュール709は、プロセス間通信を行うためのモジュールであり、504のIPCプログラムを用いてプロセス間通信を実現する。
【００２９】
図8は、図7のダウンローダ502の動作を表すフローチャートであり、同図を用いて、ダウンローダの動作を説明する。例として、フォントのダウンロードについて説明するが、他のソフトウェアやソフトウェアが用いるリソースについても同様である。前提として、ダウンローダとサーバ2は常時通信しており、ファイル名やデバイス名などの取得は可能だが、ファイルサーバ内で管理されているファイルの取得には、別途コネクションを確立してファイルを読み出すものとする。
【００３０】
ステップS801では、ダウンロードするファイルの指定をする。ダウンローダのユーザは、ファイル名を入力することで、ファイルの指定を行う。ステップS802では、ファイルがサーバ2上のファイルかどうかを判定し、サーバ2上のファイルであればステップS803に進み、サーバ2上のファイルでなければステップS807に進む。
【００３１】
ステップS803では、ネットワークのコネクションを確立する。ステップS804では、ファイルの読み出しを行う。ステップS805ではServerFlagをONにする。ステップS806では、ネットワークのコネクションを切断する。ステップS807では、ファイルをOpenする。ステップS808では、ファイルをReadする。ステップS809では、ServerFlagをOFFにする。ステップS810では、ファイルをCloseする。すなわち、ステップS806もしくはステップS810の時点で、ダウンロードすべきファイルがダウンローダに読み込まれている。
【００３２】
ステップS811ではプリンタの選択を行う。ステップS812では、ステップS811で選択されたプリンタがダウンロード可能かどうかを判定する。ダウンロード可能かどうかは、機種および装着されている記憶デバイス（RAM、FlashMemory、HardDisk等）により判定される。すなわち、ダウンロード可能な機種であって、ダウンロード可能な記憶デバイスがその機種内に存在すれば、ダウンロード可能と判定される。
【００３３】
ステップS812でダウンロード可能と判定された場合は、ステップS813に進み、ダウンロード不可能と判定された場合はステップS820に進む。ステップS813では、フォントファイルを、プリンタにダウンロード可能な形式に変換する。ただし、フォントファイルが既にダウンロード可能な形態であれば、何も行わない。
【００３４】
ステップS814では、ダウンロード可能な形態となったフォントファイルをプリンタに転送する。ステップS815はServerFlagがONかどうかを判定し、ONであれば、既にクライアント用ファイルもサーバにあるとみなして処理を終了する。ServerFlagがONでなければ（すなわちOFFならば）、ステップS816に進む。ステップS816では、フォントファイルをクライアントPCが使用可能な形式に変換する。ただし、フォントファイルが既にクライアントPCで使用可能な形態であれば、何も行わない。
【００３５】
ステップS817はサーバ2とのネットワークのコネクションを確立する。ステップS818では、クライアントPC用のフォントファイルをサーバ2に書き込む。ステップS819では、コネクションを切断し、ネットワークのクローズ処理を行った後、処理を終了する。ステップS820では、プリンタにダウンロードすることが出来ない旨のメッセージを表示し、処理を終了する。
【００３６】
以上述べた処理により、プリンタにダウンロードしたフォントファイルに対応したクライアントPC用フォントファイルは、必ずサーバ2に存在することになる。フォントファイルの変換では、フォントファイルフォーマットそのものの変換を行う場合と、ヘダー情報などを付加する場合とがある。例えば、TrueType（登録商標）形式のフォントファイルを、TrueTypeラスタライザが搭載されたプリンタにダウンロードするときは、プリンタのためのヘダー情報などを付加してダウンロードする必要があるため、ファイル変換処理では、プリンタのためのヘダー情報などを付加する。また、このフォントをMacOS上で使用する場合は、付加情報としてFONDリソースと呼ばれる情報を付加する。
【００３７】
図9は、サーバ2の周辺機器情報取得モジュール4031の構成を表した図である。
同図において、901は、周辺機器情報取得モジュールのメイン処理であり、全体の制御や通信、管理、割り込みがかかった場合の処理、周辺機器へのダウンロードデータの受け渡しなどを行う。902はIPC処理であり、他のモジュールとプロセス間通信を行うことで、情報の交換をおこなう。903はタイマーモジュールであり、一定間隔で割り込みを発生させ、901メイン処理は割り込みのタイミングで周辺機器の情報を取得するよう動作する。904はキャッシュ管理処理であり、タイマーによる割り込みで取得した周辺機器情報を、一時的に記憶し、IPCからデータ送出の指示があると、キャッシュ内の情報を、IPCを通して他のモジュールに送出する。905は、TCP/IPのモジュールであり、TCP/IPで情報を取得したりデータをダウンロードすることが出来る周辺機器とデータ交換を行う。906は、AppleTalkのモジュールであり、AppleTalkで情報を取得したりデータをダウンロードすることが出来る周辺機器とデータ交換を行う。906は、IPX/SPXのモジュールであり、IPX/SPXで情報を取得したりデータをダウンロードすることが出来る周辺機器とデータ交換を行う。これ以外のプロトコルに対応することももちろん可能である。
【００３８】
図10（A）は、周辺機器情報取得モジュール4031において、タイマ903の割り込みによる周辺機器情報取得の処理手順を表したフローチャートである。割り込みが発生すると、本処理が実行される。ステップS1011では、対象となる全部の周辺機器から情報を取得する。取得する情報は、ソフトウェアやソフトウェアが使用するリソースのバージョン、ファイルサイズ、日付、フォントであれば書体名など、ソフトウェアやソフトウェアが使用するリソースが変更されていないかどうか確認するための情報である。ステップS1012では、取得した情報をキャッシュ904に書き込む。
【００３９】
図10（B）は、周辺機器情報取得モジュール4031において、通常処理、すなわち、ユーザからデータ送出の指示があった場合における処理手順を表したフローチャートである。通常処理では、ユーザIFを持つモジュールが受け取ったユーザからの指示に従い、情報取得やダウンロードを行う。ステップS1021では、ユーザIFモジュールの指示をIPCを通して受け取る。指示で受け取る内容としては、処理内容、ダウンロードの場合のデータ、周辺機器のアドレス等である。ステップS1022では、ダウンロードかどうかを判定し、ダウンロードであればステップS1023に進み、ダウンロードでなければステップS1024に進む。ステップS1023では、送られたデータを指定された周辺機器にダウンロードし、処理を終了する。ステップS1024では、必要とされる情報の種類を特定する。情報の種類は、例えば書体名やフォームのサイズ、ソフトウェアのバージョンなどである。ステップS1025では、要求された情報がキャッシュ904中に存在するかどうかを判定し、存在すればステップS1026に進み、存在しなければステップS1027に進む。ステップS1026では、キャッシュ904からIPC902を通してデータ送出を行う。ステップS1027では、周辺機器からデータを取得する。ステップS1028では、取得したデータをIPC902を通して送出し、処理を終了する。
【００４０】
図11は、サーバ2の周辺機器管理プログラム305のメインモジュールの構成を表した図である。同図において、1101は全体の動作管理、処理の振り分けなどのメイン処理を行う。1102はGUIとの間で表示する情報の送出やGUIからの処理やデータの受信等の情報交換を行う。1103はネットワーク処理で、ネットワークを通してのファイルや情報の入出力を行う。1104はファイルサーバモジュールで、ファイルの読み出し、書き込み、管理を行う。1105はIPC処理で、プロセス間通信で902のIPCとの間でデータや情報の交換を行う。すなわち、本プログラムは、周辺機器とGUI、ネットワークとファイルサーバのそれぞれにアクセスすることが可能な位置にあり、全体の動作をコントロールする。
【００４１】
図12は、図11の周辺機器管理プログラム305により処理を表したフローチャートであり、同図を用いてプログラムの動作を説明する。
【００４２】
ステップS1201では、指示を受け取る。ステップS1202では、指示がダウンロードかどうかを判定し、ダウンロードであればステップS1203に進み、ダウンロードでなければステップS1205に進む。ダウンロードと判定された場合、本モジュールでは、ダウンロードすべきファイルをファイルサーバから取り出し、ダウンローダに送出する。
【００４３】
ステップS1203では、ファイルサーバ上のファイルをオープンする。ステップS1204ではネットワークモジュール1103を通してダウンローダにファイルを送出し、次の処理を行うためにステップS1201に戻る。ステップS1205では、情報表示かどうかを判定する。情報表示と判定された場合はステップS1206に進み、情報表示でないと判定された場合はステップS1208に進む。情報表示の場合は、1102GUIとの通信モジュールから受けた指示に従い周辺機器内の情報を送出する。
【００４４】
ステップS1206では902のIPCと1105のIPC間で情報交換を行い、周辺機器の情報を取得する。ステップS1207では、表示すべき情報を1102を通してGUIモジュールに出力した後、次の処理を行うためにステップS1201に戻る。
【００４５】
ステップS1208では、サーバへのファイルの保存かどうかを判定し、サーバへのファイルの保存と判定された場合はステップS1209へ進み、サーバへのファイルの保存ではないと判定された場合はステップS1210へ進む。サーバへのファイルの保存は、ダウンローダからの指示により行われ、ネットワークを通してファイルが送られてくる。ステップS1209では、ファイルをファイルサーバへ保存した後、次の処理を行うためにステップS1201に戻る。ステップS1210では、GUIを通してのファイル出力を行う。これは、クライアントPC用リソース等の出力であり、GUIがクライアントPCと通信を行っているプロトコルであるhttpプロトコルを用いてファイル等をクライアントPCへ出力した後、次の処理を行うためにステップS1201に戻る。
【００４６】
これら一連の処理により、本システム内の情報およびデータ送受信が行われる。
【００４７】
図13は、管理者用PCのGUIモジュール503であり、同図において、1301は管理プログラムとの通信を行い、管理プログラムからの指示やファイル、情報を受け取り1302html出力モジュールに渡すとともに1303指示入力モジュールから受けた指示やファイルを管理プログラムに渡す。1302はhtml出力モジュールであり、管理プログラムから受け取った情報や指示を基にhtml規約に基づいたGUI画面ファイルを作成し、1304Webサーバとの通信手段に渡す。1303は指示入力モジュールであり、Webサーバから指示を受け取り、またはアーカイブされたりエンコードされたファイルを受け取り、指示は管理プログラムへの命令として送出し、ファイルはアーカイブされたファイルを分離し、エンコードされたファイルをデコードした後に管理プログラムへ送出する。1304はWebサーバとの通信手段であり、html情報をWebサーバ303に送出し、Webサーバ303からの指示を1303指示入力モジュールに渡す。
【００４８】
図14は、クライアントモジュール603の構成を表した図である。本モジュールはクライアントPC上にインストールされ、Webブラウザで受け取ったファイルを処理する。1401は入力手段で、Webブラウザからデータを受け取る。受け取ったデータは、通常管理情報とファイル実体がアーカイブされている。1402は判定手段で、受け取ったファイルの管理情報とファイル実体を分離するとともに、管理情報を基にファイルの種類を判定する。管理情報とは、ファイルの種類、ファイル名やファイルサイズ等である。ファイルの種類がフォントであれば、1403のモジュールを呼び出す。ファイルの種類がオーバレイフォームであれば、1404のモジュールを呼び出す。ファイルの種類がアドレス帳であれば、1405のモジュールを呼び出す。ファイルの種類がColor Calibration Tableであれば1406のモジュールを呼び出す。1403は、フォント登録モジュールであり、受け取ったフォントクライアントPCに登録する。1404はオーバレイフォーム登録モジュールであり、受け取ったファイルをオーバレイフォーム処理アプリケーションに登録する。オーバレイ処理アプリケーションがインストールされていない場合は、処理を行わない。1405はアドレス帳登録モジュールであり、受け取ったアドレス帳を電子メール管理ソフトやFAXドライバ等、登録する先のフォーマットに変換した後、登録を行う。1406はColor Calibration Table登録モジュールであり、受け取ったファイルをイメージ処理を行うプリンタドライバに登録する。
【００４９】
＜リソースの送受信のバリエーション＞
図15は、フォントをダウンロードする際のデータの流れを表した図である。同図において、管理者がCDから管理者用PC3に読み込んだフォントを(1)でプリンタ6にダウンロードする。次に、(2)でフォントをサーバ2に登録する。(3)で、クライアントPC4とクライアントPC5は、ウエブブラウザ602を使用し、サーバ2からクライアントPC用フォントファイルを読み込み、クライアントモジュール603でシステムに登録する。別のプリンタにダウンロードを行う場合は、(4)で、管理者PC3はサーバ2に登録されたフォントを読み込み、そのままプリンタ7にダウンロードする。PCからオーバレイフォームを登録する場合も同様の動作である。
【００５０】
図16は、カラーキャリブレーションテーブルをクライアントPCが取得する際のデータの流れを表した図である。プリンタ6、プリンタ7、機能複合型複写機8、機能複合型複写機9内では、機器内の様々な環境変化に伴い、あるタイミングでカラーキャリブレーションテーブルを生成・更新するように動作している。クライアントPC4上のプリンタドライバはプリンタ7を使用する場合、プリンタ7内で生成されたカラーキャリブレーションテーブルの取得を必要に応じて要求し、(1)で受け取る。
【００５１】
また、クライアントPC5上のプリンタドライバは機能複合型複写機9を使用する場合、機能複合型複写機9内で生成されたカラーキャリブレーションテーブルの取得を必要に応じて要求し、(2)で受け取る。
【００５２】
(3)は、管理者用PC3からカラーキャリブレーションテーブルをダウンロードする場合のデータの流れを表す。すなわち管理者用PC3で測色ソフトウェアなどを使いカラーキャリブレーションテーブルを作成した場合は、管理者用PC3からダウンロードされる。プリンタ6内では、ダウンロードされたデータを保持する。そして、プリンタ6では、カラーキャリブレーションテーブルの生成・更新の際に、測色ソフトウェアなどを使い生成しダウンロードされたカラーキャリブレーションテーブル、即ち(3)により保持したカラーキャリブレーションテーブルをも参照するようになる。
【００５３】
クライアントPC4上のプリンタドライバはプリンタ6を使用する場合、前記方法を用いてプリンタ6内で生成されたカラーキャリブレーションテーブルの取得を要求し、(4)で受け取る。
【００５４】
図17は、アドレス帳のデータを機能複合型複写機から取得する際のデータの流れを表した図である。(1)では、機能複合型複写機内のアドレス帳データがサーバに送出される。(2)では、クライアントPCはサーバのデータを受信し、クライアントモジュール603は、クライアントPC内のアドレス帳データに追加もしくは上書きする。
【００５５】
図18は、クライアントPC上のアドレス帳データを機能複合型複写機にダウンロードする際のデータの流れを表す。ウエブブラウザを用いてサーバ2に送られたアドレス帳データは、そのまま機能複合型複写機8に書き込まれる。(2)は、機能複合型複写機のアドレス帳を複写する際のデータの流れを表す。機能複合型複写機8のデータは、一旦サーバ2に送られ、そのまま機能複合型複写機9に書き込まれる。
【００５６】
図19は、プリンタもしくは機能複合型複写機の記憶装置の内容をバックアップするときのデータの流れを表す。この処理は、通常ウエブブラウザで指示され起動されるが、機能複合型複写機の操作パネルから指示され起動されても良い。またこの処理は、サーバ2上で動作する管理プログラム401により、自動的かつ定期的に行われても良い。また、プリンタもしくは機能複合型複写機からサーバに対してリソースの変更を通知する機能がある場合、その通知をきっかけに、管理プログラム401が自動的にバックアップ処理を行なう事も可能である。(1)のようにプリンタもしくは機能複合型複写機の記憶装置の内容がサーバ2に送出され、サーバ内のファイルサーバに記憶される。
【００５７】
図20は、バックアップされたプリンタもしくは機能複合型複写機の記憶装置の内容をリストアするときのデータの流れを表す。この処理は、通常ウエブブラウザで指示され起動されるが、機能複合型複写機の操作パネルから指示され起動されても良い。またこの処理は、サーバ２上で動作する管理プログラム４０１により、自動的に行われても良い。(1)で、サーバ2のファイルサーバ内にバックアップされたデータがバックアップ元のプリンタもしくは機能複合型複写機の記憶装置（図では機能複合型複写機）に送出される。
【００５８】
図21は、クライアントPC4もしくはPC5がサーバ2からソフトウェアの取得をする際のデータの流れである。(1)のように、PC4はサーバ2からデータを取得し、PC4のクライアントモジュール603はデータをデコードしインストールする。
【００５９】
図22は、クライアントPC4もしくは5がサーバ2からプリンタドライバ、ファクシミリドライバ、スキャナドライバなど周辺機器のドライバを取得するときのデータの流れである。(1)のようにサーバからデータ（ドライバプログラム）を取得するが、サーバはデータを送出する際、周辺機器との対応づけを行うために、対象となる周辺機器を参照する。すなわち、ネットワークアドレス、機種名、機能等を一緒にクライアントPC5もしくは6に送出し、クライアントモジュール603は、サーバ2から送出された情報を基にドライバをインストールする。
【００６０】
＜送信データ形式＞
図23は、サーバ2からクライアントPC4もしくは5にデータを送出する際のデータ構造を表した図である。同図からわかるように、先頭に、内部にアーカイブされて保持されているファイル数Nが入る。次にN個分のアドレスの配列、さらに各アドレスで示された位置にヘダーとともに保持されたファイルの実体が存在する。ヘダーには、ヘダー長、ファイルの種類、実体のサイズが含まれ、付加情報がある場合は、ヘダーの後部に付加される。すなわち、ヘダーの先頭からヘダー長分後ろにはファイルの実体が存在する。
【００６１】
図24は、フォントファイルをクライアントPCに送出する際の、図23のヘダー情報を表したものである。同図から分かる通り、バージョン、ファイル名、フォントの形式が付加情報として付加される。
【００６２】
図25は、オーバレイフォームをクライアントPCに送出する際の、図23のヘダー情報を表したものである。同図から分かる通り、PDLの種類、用紙サイズ、解像度、フォーム番号が付加情報として付加される。
【００６３】
図26は、アドレス帳をクライアントPCに送出する際の、図23のヘダー情報を表したものである。同図から分かる通り、アドレス帳が更新された日時が付加情報として付加される。これにより、クライアントPC内のアドレス帳に、取得したアドレス帳を上書きすべきか否かを判断する事が可能である。
【００６４】
図27は、スキャナでスキャンしたイメージをオーバレイする際にプリンタドライバで使われる情報をクライアントPCに送出する際の、図23のヘダー情報を表したものである。同図から分かる通り、用紙サイズ、解像度、オーバレイ番号が付加情報として付加される。
【００６５】
図28は、ソフトウェアをクライアントPCに送出する際の、図23のヘダー情報を表したものである。同図から分かる通り、ソフトウェアのバージョンとファイルのチェックサムが付加情報として付加される。また、ファイル実体は自己解凍形式のインストーラとなっており、クライアントモジュール603は、ダウンロードされた自己解凍形式のインストーラを起動する。
【００６６】
図29は、ドライバをクライアントPCに送出する際の、図23のヘダー情報を表したものである。同図から分かる通り、周辺機器の機種名、周辺機器にアクセスるためのアドレス（例えば、TCP/IP接続であればIPアドレス）、ドライバのバージョンとファイルのチェックサムが付加情報として付加される。また、ファイル実体は自己解凍形式のインストーラとなっており、クライアントモジュール603は、機種名とアドレスを引数としてダウンロードされた自己解凍形式のインストーラを起動する。
【００６７】
＜データパケットの形式＞
図37は、サーバ2、管理者用PC3、クライアントPC4,5、プリンタ6,7、機能複合型複写機8,9が互いにデータをやり取りする際に、ネットワークライン201や各モジュール間の接続線上を流れるデータパケットの形式を示した図である。3701はポート識別情報であり、受け手側がどのポートで受け取り、処理すべきかを判別可能なように、送り手が指定する。本実施形態においては、ポート識別情報3701により、マルチチャネル方式を実現している。3702はデータ識別情報であり、データが複数パケットに分かれる場合に、同種のデータを識別するための情報である。3703はフラグ情報であり、データが複数パケットに分かれているか或いは分かれていないか、また、何番目のデータかを示す情報である。3704はデータ本体部分であり、受け手側はこの部分のみを抜きだし、必要に応じて結合をして、送り手が送ったデータを復元する。
【００６８】
図24〜図29のデータは、図37のパケットのデータ部３７０４として送受信される。データが所定のサイズを超えている場合には、複数のパケットに分割されて送信される。
【００６９】
＜ダウンロードシーケンス＞
図34は、印刷処理にかかわるフォントやフォームを、プリンタ6、7、機能複合型複写機8、9にダウンロードする際の処理シーケンス図である。3410は印刷ジョブポート、3411はリソースポートである。これらポートは、図37に示すように、データパケットに含まれるポート識別情報3701において指定されている。例えば、リソースポートは、ダウンロードを行う管理者PC3により指定されており、また、印刷ジョブポートは、印刷を行うクライアントPCなどによって指定されている。
【００７０】
印刷データは印刷ジョブと呼ばれ、印刷ジョブポート3410宛に送信される。印刷ジョブポート3410では通常、受け取った印刷ジョブをバファリング3422において印刷待ちバッファ3415に蓄積して印刷待ち状態とし、印刷処理3423において印刷待ちバッファ3415から取り出して順次印刷している。なお本実施形態においては、印刷ジョブは印刷イメージ形成のためのコマンド群および文字データおよび画像データから成り、そのままの形態で印刷待ちバッファ3415に格納され、印刷処理3423においてイメージ形成のためのコマンド群が解釈され、イメージが形成される。また、前記印刷イメージ形成のためのコマンド群には、プリンタ上に資源として保管されているフォントやフォームデータを利用してイメージを形成するコマンドも含まれている。
【００７１】
一方、ダウンロードデータはリソースポート3411宛に送信される。リソースポートの処理プログラムでは、タイミング3412においてダウンロードデータを受け付けると、タイミング3414において印刷ジョブポートでの印刷ジョブの受付の停止を指示し、印刷ジョブポートはタイミング3413において印刷ジョブの受け付けを停止する。本実施形態においては、印刷ジョブの受付の停止は、印刷ジョブの送り手が印刷ジョブの送信前に必ず印刷ジョブポートの状態を確認し、印刷ジョブポートの状態が使用不可能な状態（受付停止状態）であることを確認したならジョブの送信を行わないようにすることで行なう。または、印刷ジョブの送り手と受け手が双方向で通信可能な場合には、双方向印刷ジョブポートに、印刷ジョブが送られて来た時に印刷ジョブの受付拒否を印刷ジョブの送り手に通知する機能を持ち、印刷ジョブポートに対し印刷ジョブの受付拒否を行なう様に指示する事で行なうことも可能である。
【００７２】
タイミング3413で印刷ジョブの受け付けが停止されると、それ以降印刷待ちバッファ3415に印刷ジョブが格納されなくなる。次にリソースポート3411側では、タイミング3416において印刷待ちバッファ3415の監視を開始する。一方、印刷処理3423は続行され、印刷待ちバッファ3415内のジョブは順次処理されて行く。リソースポート3411側では、印刷待ちバッファ3415が空になったことを確認できた時点3417で、次の処理3418に移行する。タイミング3417における印刷待ちバッファ3415が空になったことの確認は、リソースポート3411側からの積極的なポーリングによる監視、または、印刷待ちバッファ側3415側からリソースポート3411側への通知により為される。タイミング3418において、タイミング3412で受け付けたダウンロードデータを然るべき格納領域3419に格納する。ここで、然るべき格納場所とは、プリンタ6、7、機能複合型複写機8、9内のFlashROMやハードディスクなどの記憶機器を指す。最後にタイミング3420において、印刷ジョブポートでの印刷ジョブの受け付け再開を指示しする。印刷ジョブポート側は、受け付け再開の指示を受けた時点3421から、再び印刷ジョブを受け付け、バファリング処理3422によって印刷待ちバッファ3415に印刷ジョブをバファリングし、印刷処理3423を遂行するという通常の処理を行なう。なお、タイミング3420における印刷ジョブの受け付けを再開は、タイミング3413において印刷ジョブの受け付けを停止した時と同様の仕組みで実現している。
【００７３】
＜ダウンロード手順＞
図35は、図34におけるリソースポート3411を制御するプログラムのフローチャートである。
【００７４】
図2に示すように、プリンタ6、7や機能複合型複写機8、9がHD222のような記憶領域を持っている場合は、印刷待ちバッファ3415はそのプリンタや機能複合型複写機側に用意されるため、図35のプログラムはそれらプリンタあるいは機能複合型複写機で実行される。
【００７５】
一方、プリンタ6、7が記憶領域を持たない場合は、印刷待ちバッファ3415をプリンタ側に持てないため、いわゆるプリンタサーバと呼ばれるPCに印刷待ちバッファ3415は用意される。この場合には、印刷要求やダウンロードはプリンタサーバであるPCに対して発行され、リソースポートや印刷ジョブポートもそのプリンタサーバPCに用意される。したがって図35の手順はプリンタではなくプリンタの印刷待ちバッファ3415が用意されたプリンタサーバPCによって実行される。ただし、図34でいうところのリソースデータの格納3418や、印刷処理3423は、プリンタサーバPCからプリンタに対して要求される処理となる。
【００７６】
S3511において、リソースポートに送信されてきたデータが、リソースのダウンロードデータかそれ以外かを判定する。この判定は、図37のポート識別情報3701により、指定ポートがリソースポートである場合に、その内容すなわち図24〜図29に示したいずれかのデータのダウンロードであるか否かに応じて判定される。図24〜29のデータは、複数のパケットに分割されていることもあるため、図37のデータ3704を必要に応じて送信されたデータを再構成した結果得られる。そして、得られた図24乃至図29の構造のデータの種類を判定材料として、ダウンロードであるか否かを判定させる。この場合、データの種類として「ダウンロード」であることの表示子を含めても良い。なお、リソースのダウンロードのためのポートを用意し、ダウンロード時にはそのポートを指定させれば、ポート識別子のみでS3511の判定を実現できる。
【００７７】
S3511において、リソースのダウンロードを目的とするデータではない場合、S3517において適当な処理を行ない処理を終了する。S3511において、リソースのダウンロードを目的としたデータと判断した場合は、S3512に進む。
【００７８】
S3512において、図34のタイミング3414について説明した方法により、印刷ジョブの受け付け停止を指示する。次にS3513で印刷待ちバッファ3415内に印刷ジョブが存在しているかどうかを監視し、この監視はS3514で印刷待ちジョブが印刷待ちバッファ3415内になくなるまで繰り返し行なう。S3514において、印刷待ちバッファ3415内に印刷ジョブが存在しないことを確認したら、S3515に進みリソースデータを然るべき格納領域3419に格納する。最後にS3516において、図34のタイミング3420で説明した方法により、印刷ジョブの受け付け停止解除、すなわち再開を指示し、処理を終了する。
【００７９】
以上説明したように、リソースのダウンロード時には新たな印刷ジョブをプリンタ等の出力機器が受け付けないように制御すること、および、印刷待ち状態にある印刷ジョブの印刷完了を待ってダウンロードデータを然るべき格納場所に格納することにより、出力データ作成中のリソースデータ変更による文字化けなどの影響を防ぐことが可能となり、リソースのダウンロード開始前に送信済みで、リソースのダウンロード開始時に印刷待ち状態にある印刷ジョブが、安全に、すなわち予期しない出力を防止し、期待通りの結果を出力することが可能となった。
【００８０】
なお、上記のようにプリンタサーバとして機能するＰＣを設ける方法もあるが、プリンタサーバを設けないの環境では、各ＰＣが上記動作をする。
【００８１】
また、デバイス側に印刷ジョブを貯め込む領域がない場合には、ＰＣ側に印刷待ちバッファ領域（ユーザが印刷を指示し、ドライバが印刷ジョブを生成し、後はプリンタに送信するだけの状態のデータを貯める領域）を用意する。そのような場合、プリンタは送られてきたデータを順次処理するだけなので、PC側の処理として、図36に示した印刷待ちバッファの監視をして、空である事を確認し、ダウンロードを開始する（ダウンロードデータを送信し始める）処理を行なうことになる。
【００８２】
PC3005とプリンタ3006間の印刷およびダウンロード処理では、PC3005に印刷待ちバッファを持つ。また、プリンタ3006はPC3005を介して共有プリンタとして存在し、他のＰＣから印刷およびダウンロードを行なう処理においては、印刷待ちバッファは印刷を行なう（データを送信する）「他のＰＣ」それぞれにあってもよいし、各ＰＣからのプリンタ3006への印刷データを蓄積する印刷待ちバッファをPC3005上に用意することもできる。
【００８３】
［第2実施形態］
図30は、第２実施形態のシステムの特徴をもっともよく表した図である。本実施形態のシステムでは、ネットワークプリンタではなく、PCを介して接続されるプリンタに対して、第１実施例と同様、リソースのダウンロードを行う際に、新たな印刷ジョブの受付を中止し、すでに発行済みで待機状態にある印刷ジョブの処理の終了をまって、リソースのダウンロードを行う。
【００８４】
図30において、3001はネットワークであり、通常はEthernetを使用する。Ethernet以外にも、LocalTalkなどがある。なお、本実施形態における「ネットワーク」という言葉は、物理的なケーブルと、ケーブル上を通る電気的な信号と、電気的な信号の組みあわせで実現される情報交換を実現するもの（プロトコル）の内の一つもしくは複数を指し、通常は、これらの総称を指す。
【００８５】
3002は、サーバコンピュータであり、Webサーバなどの機能を有し、本発明の中核を成すものである。3005は管理者用パーソナルコンピュータ（以下パーソナルコンピュータをPCと表記）であり、サーバに対する指示や本発明で扱う周辺機器への指示等を行う。3003および3004はクライアントPCであり、ネットワークに接続された一般ユーザが使用するPCである。なお、管理者用PCであっても、クライアントPCとしても使用されることもありうる。
【００８６】
3006は管理者用PC3005にセントロケーブルなどの双方向通信可能なケーブルで接続されたプリンタである。通常はクライアントPC3005専用のプリンタであるが、管理者用PC3005がプリンタ3006を共有プリンタとして公開する事により、ネットワーク1に接続されたクライアントPC3004を始めとする他のPCからも利用可能となる。
【００８７】
3007はプリンタであり、ネットワーク3001に接続され、管理者用PC3005、クライアントPC3003および3004からの印刷命令を受けつけ、命令に従い印刷処理を行う。3008および3009は、機能複合型複写機であり、画像スキャナ機能、プリンタ機能、ファクシミリ機能を備え、一つまたは複数の機能を組み合わせることにより、複写機、プリンタ、スキャナ、ファクシミリとして利用可能である。
【００８８】
次に、同図を用いて、本システムの動作を説明する。サーバ3002は、定期的にプリンタ3006、同3007、機能複合型複写機3008、同3009と通信を行い、機器の状態やソフトウェアの設定をモニタする。サーバ3002は、管理者用PC3005から機器に対し設定の変更やソフトウェア、ソフトウェアで使用するリソースの変更を行う。管理者用PC3005から与えられた指示の結果は、サーバ3002の内部に情報として集められ、クライアントPC3003および3004は、サーバ3002から情報を受け取る。また、サーバ3002はhttpプロトコルを用いた通信手段を備え、管理者用PC3005、クライアントPC3003、および3004はウエブブラウザを使用してサーバ3002の情報を取得し、またサーバ3002に対して指示を与えることが可能である。サーバ3002は、管理者用PC3005、クライアントPC3003もしくは3004から指示があると、同3007、機能複合型複写機3008、同3009から情報を取得し、管理者用PC3005、クライアントPC3003もしくは3004に情報を返すか、プリンタ3007、機能複合型複写機3008、同3009に対して設定等の処理を行う。また共有プリンタとして公開されているプリンタ3006に対して同様の処理を行なう場合には、プリンタ3006が接続されている管理者用PC3005上の周辺機器管理プログラムが指示を受け取り，プリンタ3006と通信して処理を行なった結果を管理者用PC3005自身で処理するか、クライアントPC3003もしくは3004に返す。
【００８９】
また、クライアントPC3003および3004は、ネットワーク1を介して、プリンタ7および機能複合型複写機3008および機能複合型複写機3009と直接通信して情報をやり取りする。管理者用PC3005に接続されたプリンタ3006との情報のやり取りの際は、管理者用PC3005がプリンタ3006と通信をし、管理者用PC3005上の周辺機器管理プログラムが仲介し、クライアントPC3003およびクライアントPC3004と通信する。
【００９０】
管理者用PC3005には、ダウンローダを備え、プリンタ3006、同3007、機能複合型複写機3008、同3009に対しソフトウェアもしくはソフトウェアが使用するリソースのダウンロードを行う。ソフトウェアは、機器の印刷制御ファームウェア、ネットワーク制御ファームウェア、また機能複合型複写機3008、同3009においては、前記ファームウェアに加え、スキャナ制御ファームウェア、ファクシミリ制御ファームウェア、複写機ファームウェア、パネル操作ファームウェア、画像管理ソフトウェア、アドレス管理ソフトウェアなどがある。また、ソフトウェアが使用するリソースとしては、フォント、外字、オーバレイフォーム、キャリブレーションテーブル、アドレス管理ソフトウェアが使用するアドレス情報、ファクシミリ番号などがある。
【００９１】
クライアントPC3003および3004は、プリンタ3006、同3007、機能複合型複写機3008、同3009にアクセスして使用するためのソフトウェア（ドライバ等）およびソフトウェアが使用するリソース（クライアントPC用リソース）を保持する。ソフトウェアは、プリンタを使用するためのプリンタドライバ、スキャナを使用するためのスキャナドライバ、ファクシミリを使用するためのファクシミリドライバ、複写機を制御するための複写機ユーティリティソフトウェア、ネットワークを利用するためのネットワークドライバ、ウエブブラウザ、アプリケーションソフトウェアなどがあり、ソフトウェアが使用するリソースについては、プリンタフォントに対応したクライアントPC用フォント、ファクシミリドライバが利用するアドレス情報、カラーキャリブレーションを行う際のカラーキャリブレーションテーブル、プレビューで利用するオーバレイイメージ等がある。
【００９２】
上記の機能に加え、プリンタ3006の設定内容やソフトウェア、ソフトウェアが使用するリソースをプリンタ3007、機能複合型複写機3008、同3009に反映させることが可能である。また同様に機能複合型複写機3008の設定内容やソフトウェア、ソフトウェアが使用するリソースを機能複合型複写機3009、プリンタ3006、同3007に反映させることが可能である。機種間で機能の違いがあるときは、両機種に共通の機能についてのみ反映されるが、変換が可能なリソースなどの情報については変換された後反映される。同様に、これらの機種に関するクライアントPC3003上の情報をクライアントPC3004に反映させることも可能である。これらの処理は、サーバ3002を通して情報の交換を行うことにより実現される。
【００９３】
プリンタ3006、同3007、機能複合型複写機3008、同3009の設定内容は、管理者用PC3005からの指示だけでなくパネルからの設定やクライアントPC3003もしくは3004からの設定によっても変更される場合がある。この設定情報は、クライアントPCから要求時に、プリンタ3006、同3007、機能複合型複写機3008、同3009に問い合わせを行い、問い合わせ時点での情報をクライアントPCに返す。また、管理者用PC3005とプリンタ3006の間の接続においても、図37に示す形式のパケットデータによりマルチチャネル方式が実現されている。本発明にかかわるフォントリソースやフォームリソースのダウンロードに関しても、管理者用PC3005とプリンタ3006の間で、図34に示すシーケンスの様にマルチチャネル方式でデータのやり取りが為される。
【００９４】
図36は、本実施形態の図34におけるリソースポート3411を制御するプログラムのフローチャートである。
【００９５】
図30に示すように、プリンタ3006、3007や機能複合型複写機3008、3009がHD222のような記憶領域を持っている場合は、図34の印刷待ちバッファ3415はそのプリンタや機能複合型複写機側に用意されるため、図36のプログラムはそれらプリンタあるいは機能複合型複写機で実行される。
【００９６】
一方、プリンタ3006、3007が記憶領域を持たない場合は、印刷待ちバッファ3415をプリンタ側に持てないため、管理者PC3005に印刷待ちバッファ3415は用意される。この場合には、印刷要求やダウンロードはプリンタサーバであるPCに対して発行され、リソースポートや印刷ジョブポートも管理者用PC3005に用意される。したがって図36の手順はプリンタではなくプリンタの印刷待ちバッファ3415が用意された管理者用PC3005によって実行される。ただし、図34でいうところのリソースデータの格納3418や、印刷処理3423は管理者用PC3005からプリンタ3006に対して要求される処理となる。
【００９７】
図36において、まず、S3611において、リソースポートに送信されてきたデータが、リソースのダウンロードデータかそれ以外かを判定する。この判定は、図37のポート識別情報3701により、指定ポートがリソースポートである場合に、その内容すなわち図24〜図29に示したいずれかのデータのダウンロードであるか否かに応じて判定される。図24〜29のデータは、複数のパケットに分割されていることもあるため、図37のデータ3704を必要に応じて送信されたデータを再構成した結果得られる。そして、得られた図24乃至図29の構造のデータの種類を判定材料として、ダウンロードであるか否かを判定させる。この場合、データの種類として「ダウンロード」であることの表示子を含めても良い。なお、リソースのダウンロードのためのポートを用意し、ダウンロード時にはそのポートを指定させれば、ポート識別子のみでS3611の判定を実現できる。
【００９８】
S3611において、リソースのダウンロードを目的とするデータではない場合、S3617において適当な処理を行ない処理を終了する。S3611において、リソースのダウンロードを目的としたデータと判断した場合は、S3612に進む。
【００９９】
S3612において、図34のタイミング3414で説明した方法により、印刷ジョブの受け付け停止を指示する。次にS3613で印刷待ちバッファ3415内に印刷ジョブが存在しているかどうかを調べる。
【０１００】
S3613で印刷待ちバッファ3415内に印刷ジョブが存在した場合、S3614においてその印刷ジョブ1つをキャンセル、すなわち印刷待ちバッファ3415内から印刷することなく削除する。印刷待ちバッファ3415に印刷ジョブが存在しなくなるまで（図34ではＪＯＢ1からＪＯＢ4まで全てをキャンセルし終えるまで）、S3613およびS3614を繰り返す。
【０１０１】
一方、S3613において、印刷待ちバッファ3415内に印刷ジョブが存在しないことを確認したら、S3615に進みリソースデータを然るべき格納領域3419に格納する。最後にS3616において、図34のタイミング3420で説明した方法により、印刷ジョブの受け付け停止解除、すなわち再開を指示し、処理を終了する。
【０１０２】
以上説明したように、PCに直接接続されたプリンタへのダウンロードにおいても、リソースのダウンロード時に印刷ジョブを受け付けないように制御することで、出力データ作成中のリソースデータ変更による文字化けなどの不正印刷の防止が可能となった。さらに本実施形態においては、ダウンロードデータを受け付けた時点で印刷待ちジョブを強制キャンセルすることで、通常管理者が行ないクライアント全員に影響するような処理を優先的にスムーズに行なうことが可能となった。
【０１０３】
［第３実施形態］
上記第１及び第２実施形態によれば、プリンタ等の出力機器において待機状態にある印刷ジョブに関して、その出力を待つか、あるいは、強制的に削除することで、待機中のジョブを一掃してからダウンロードを行っている。
【０１０４】
しかしながら、パスワードなど認証情報により出力が保護された印刷ジョブが印刷待ちとなっている場合、権限を付与された者（出力権限者）がパスワードを入力して認証が行われるまではその印刷ジョブは出力されず、そのジョブは待機状態のまま印刷待ちバッファにとどまるためダウンロード処理の妨げとなっていた。
【０１０５】
また、印刷待ち状態にあるジョブを強制的に削除する方法に関しても、保護されたジョブに関しては削除できないし、また、保護されていないジョブであっても、その印刷ジョブを発行したユーザにとっては不合理なものであった。
【０１０６】
本実施形態では、リソースデータがダウンロードされる際に待ち状態にある印刷ジョブについては、リソースを使用してイメージデータを生成し、その状態で出力待ちとすることで、出力権限者の認証が必要な印刷ジョブについても印刷待ちバッファから排出することができ、また、印刷ジョブを強制的に削除しなくとも迅速に出力待ちの印刷ジョブを処理することを可能としている。これにより、待ち状態にある印刷ジョブを処理した後、リソースデータをダウンロードする事が可能とする。
【０１０７】
本実施形態のシステムは、図１乃至図３３までの構成において第１及び第２の実施形態と共通している。そこで、ここでは相違点を中心にして説明する。
【０１０８】
図41は本実施形態において、図１の管理者用PC3、クライアントPC4、5からプリンタ6、7、機能複合型複写機8、9に送られる印刷データの構造を示す図である。図41のデータ全体は、図37のデータ部3704に含まれる。
【０１０９】
図41において、送信者情報3801はデータの送信者の氏名、PCのIPアドレス、電子メールアドレスなどの情報を含んでいる。出力権限者情報3802には、この印刷データの出力をプリンタ6、7、機能複合型複写機8、9から取り出す権限を持つ者の情報として、氏名またはグループ名、パスワード、電子メールアドレスなどの情報を含んでいる。なお、印刷データと、出力権限者が同一人物でも構わない。データ3803は、出力物を形成する文字データ、画像データおよびイメージ形成のためのコマンド群であり、実際に出力物を出力する場合には、プリンタ6、7、機能複合型複写機8、9においてそのコマンドを解釈し、印刷イメージの形成を行なう。出力権限者は、送信した印刷データによる出力物を得たい場合、その印刷データが格納されている出力機器のパネルを操作するか、ネットワーク経由でその印刷データが格納されている出力機器に指示を通知してパスワードを入力して、認証処理を受ける。パスワードが入力されると、出力機器は認証された印刷ジョブ出力する。
【０１１０】
なお本実施形態においては、管理者用PC3、クライアントPC4、5からプリンタ6、7、機能複合型複写機8、9に対して送信された印刷データは、特別なもの以外は通常、展開後のイメージに比較してデータ量の少ない図41に示す構造のまま印刷待ちバッファおよびジョブ保管用の領域に格納される。
【０１１１】
図38は、印刷処理にかかわるフォントやフォームを、プリンタ6、7、機能複合型複写機8、9にダウンロードする処理のシーケンス図である。3410はジョブポート、3411はリソースポートである。印刷データは印刷ジョブと呼ばれ、印刷ジョブポート3410宛に送信される。ジョブポート3410では通常、受け取った印刷ジョブをバファリング処理3422で印刷待ちバッファ3415に蓄積し、印刷待ち状態とし、出力処理3423において順次印刷している。なお本実施形態においては、印刷ジョブは印刷イメージ形成のためのコマンド群および文字データおよび画像データから成り、そのままの形態で印刷待ちバッファ3415に格納され、出力処理3423の印刷時においてイメージ形成のためのコマンド群が解釈され、イメージが形成される。
【０１１２】
また、前記印刷イメージ形成のためのコマンド群には、プリンタに資源として保管されているフォントやフォームデータを利用してイメージを形成するコマンドも含まれている。なお、印刷待ちバッファ3415内の印刷ジョブが出力権限者の認証を要するジョブである場合、出力処理3423を行なうためには、出力権限者による認証手続きが必要である。
【０１１３】
一方、ダウンロードデータはリソースポート3411宛に送信される。リソースポートの処理プログラムでは、タイミング3412においてダウンロードデータを受け付けると、タイミング3414において印刷ジョブポートでの印刷ジョブの受付の停止を指示し、印刷ジョブポートはタイミング3413において印刷ジョブの受け付けを停止する。本実施形態においては、印刷ジョブの受付の停止は、印刷ジョブの送り手が印刷ジョブの送信前に必ず印刷ジョブポートの状態を確認し、印刷ジョブポートの状態が使用不可能な状態（受付停止状態）であることを確認したならジョブの送信を行わないようにすることで行なう。または、印刷ジョブの送り手と受け手が双方向で通信可能な場合には、双方向印刷ジョブポートに、印刷ジョブが送られて来た時に印刷ジョブの受付拒否を印刷ジョブの送り手に通知する機能を持ち、印刷ジョブポートに対し印刷ジョブの受付拒否を行なう様に指示することで行なうことも可能である。
【０１１４】
タイミング3413で印刷ジョブの受け付けが停止されると、それ以降印刷待ちバッファ3415に印刷ジョブが格納されなくなる。次にリソースポート3411側では、タイミング3416において印刷待ちバッファ3415の監視を開始する。
【０１１５】
一方、印刷待ちバッファ3415内のジョブには、出力のために認証が必要なジョブであるため、順次印刷していくことが不可能なジョブもある。そこで、レンダリング処理3425によって印刷データ3803部をイメージ展開し、そのイメージデータを送信者情報3801および出力権限者情報3802と共に印刷待ちデータ退避領域3424に格納する。あるいは、第４実施形態において詳述するが、メール送信処理3426によって送信者情報3801および出力権限者情報3802を利用して電子メールの送信を行なう。
【０１１６】
リソースポート3411側では、印刷待ちバッファ3415が空になったことを確認できた時点3417で、次の処理3418に移行する。タイミング3417における印刷待ちバッファ3415が空になったことの確認は、リソースポート3411側からの積極的なボーリングによる監視、または、印刷待ちバッファ側3415側からリソースポート3411側への通知によりなされる。
【０１１７】
印刷待ちジョブバッファ（ジョブキュー）が空になったなら、タイミング3418において、タイミング3412で受け付けたダウンロードデータを然るべき格納領域3419に格納する。ここで、然るべき格納場所とは、プリンタ6、7、機能複合型複写機8、9内のFlashROMやハードディスクなどの記憶機器を指す。
【０１１８】
最後にタイミング3420において、印刷ジョブポート3410での印刷ジョブの受け付け再開を指示する。印刷ジョブポート3410では、受け付け再開の指示を受けた時点3421から再び印刷ジョブを受け付け、バファリング処理3422によって印刷待ちバッファ3415に印刷ジョブを格納し、出力処理3423で印刷する通常の処理を行なう。なお、タイミング3420における印刷ジョブの受け付けを再開は、3413において印刷ジョブの受け付けを停止した時と同様の仕組みで実現している。
【０１１９】
図39は、図38におけるリソースポート3411および印刷ジョブポート3410を制御するプログラムのフローチャートである。
【０１２０】
図2に示すように、プリンタ6、7や機能複合型複写機8、9がHD222のような記憶領域を持っている場合は、印刷待ちバッファ3415はそのプリンタや機能複合型複写機側に用意されるため、図39のプログラムはそれらプリンタあるいは機能複合型複写機で実行される。
【０１２１】
一方、プリンタ6、7が記憶領域を持たない場合は、印刷待ちバッファ3415をプリンタ側に持てないため、いわゆるプリンタサーバと呼ばれるPCに印刷待ちバッファ3415は用意される。この場合には、印刷要求やダウンロードはプリンタサーバであるPCに対して発行され、リソースポートや印刷ジョブポートもそのプリンタサーバPCに用意される。したがって図39の手順はプリンタではなくプリンタの印刷待ちバッファ3415が用意されたプリンタサーバPCによって実行される。ただし、図38でいうところのリソースデータの格納3418や、印刷処理3423は、プリンタサーバPCからプリンタに対して要求される処理となる。
【０１２２】
なお、図39において図35と共通の処理ステップには共通の参照番号を付した。
【０１２３】
図39のS3511において、リソースポートに送信されてきたデータが、リソースのダウンロードデータかそれ以外かを判定する。この判定は、図37のポート識別情報3701により、指定ポートがリソースポートである場合に、その内容すなわち図24〜図29に示したいずれかのデータのダウンロードであるか否かに応じて判定される。図24〜29のデータは、複数のパケットに分割されていることもあるため、図37のデータ3704を必要に応じて送信されたデータを再構成した結果得られる。そして、得られた図24乃至図29の構造のデータの種類を判定材料として、ダウンロードであるか否かを判定させる。この場合、データの種類として「ダウンロード」であることの表示子を含めても良い。なお、リソースのダウンロードのためのポートを用意し、ダウンロード時にはそのポートを指定させれば、ポート識別子のみでS3511の判定を実現できる。
【０１２４】
S3511において、リソースのダウンロードを目的としたデータと判断した場合は、S3512に進む。
【０１２５】
S3512において、図38のタイミング3414で説明した方法により、印刷ジョブの受け付け停止を指示する。次にS3513で印刷待ちバッファ3415内に印刷ジョブが存在しているかどうかを監視し、この監視はS3514で印刷待ちジョブが印刷待ちバッファ3415内になくなるまで繰り返し行なう。
【０１２６】
S3514において印刷待ちバッファ3415内に印刷ジョブが存在する場合は、S3518においてそのジョブのデータ部3803を印刷イメージに展開し、S3519において、そのイメージを送信者情報3801および出力権限者情報3802と共に印刷待ちデータ退避領域3424に格納する。S3518およびS3519の処理により、処理対象であった印刷ジョブは印刷待ちバッファ3415内から消える。このようにして、印刷待ちバッファ3415内の印刷ジョブ全てに関してS3518およびS3519の処理を施す。
【０１２７】
S3514において、印刷待ちバッファ3415内に印刷ジョブが存在しないことを確認したら、S3515に進みリソースデータを然るべき格納領域3419に格納する。最後にS3516において、図34のタイミング3420で説明した方法により、印刷ジョブの受け付け停止解除、すなわち再開を指示し、処理を終了する。
【０１２８】
以上説明したように、リソースのダウンロード時に受け付けないように制御すること、および、印刷待ち状態にある印刷ジョブを印刷イメージに展開して退避した後、ダウンロードデータを然るべき格納場所に格納することにより、出力データ作成中のリソースデータ変更による文字化けなどの影響を受けることを防ぐことが可能となり、リソースのダウンロード開始前に送信済みで、リソースのダウンロード開始時に印刷待ちの印刷ジョブも削除することなく印刷可能となった。さらに、上記利点を出力に出力権限者の認証を要する印刷ジョブに関しても適用可能となった。
【０１２９】
［第４実施形態］
第４の実施形態は、ダウンロード時に待機中の印刷ジョブがあれば、出力が行われる旨を印刷ジョブにより指定された電子メールアドレスへと送信し、印刷ジョブの要求者や出力権限者の注意を促すというものである。本実施形態におけるシステムの構成は第３実施形態と同様であることからその説明を省略する。
【０１３０】
図40は、図38におけるリソースポート3411および印刷ジョブポート3410を制御するプログラムのフローチャートである。
【０１３１】
図2に示すように、プリンタ6、7や機能複合型複写機8、9がHD222のような記憶領域を持っている場合は、印刷待ちバッファ3415はそのプリンタや機能複合型複写機側に用意されるため、図39のプログラムはそれらプリンタあるいは機能複合型複写機で実行される。
【０１３２】
一方、プリンタ6、7が記憶領域を持たない場合は、印刷待ちバッファ3415をプリンタ側に持てないため、いわゆるプリンタサーバと呼ばれるPCに印刷待ちバッファ3415は用意される。この場合には、印刷要求やダウンロードはプリンタサーバであるPCに対して発行され、リソースポートや印刷ジョブポートもそのプリンタサーバPCに用意される。したがって図39の手順はプリンタではなくプリンタの印刷待ちバッファ3415が用意されたプリンタサーバPCによって実行される。ただし、図38でいうところのリソースデータの格納3418や、印刷処理3423は、プリンタサーバPCからプリンタに対して要求される処理となる。
【０１３３】
なお、図40において図36と共通の処理ステップには共通の参照番号を付した。
【０１３４】
図40のS3611において、リソースポートに送信されてきたデータが、リソースのダウンロードデータかそれ以外かを判定する。この判定は、図37のポート識別情報3701により、指定ポートがリソースポートである場合に、その内容すなわち図24〜図29に示したいずれかのデータのダウンロードであるか否かに応じて判定される。図24〜29のデータは、複数のパケットに分割されていることもあるため、図37のデータ3704を必要に応じて送信されたデータを再構成した結果得られる。そして、得られた図24乃至図29の構造のデータの種類を判定材料として、ダウンロードであるか否かを判定させる。この場合、データの種類として「ダウンロード」であることの表示子を含めても良い。なお、リソースのダウンロードのためのポートを用意し、ダウンロード時にはそのポートを指定させれば、ポート識別子のみでS3511の判定を実現できる。この判定は、図37のポート識別情報3701により、指定ポートがリソースポートである場合に、その内容すなわち図24〜図29に示したいずれかのデータのダウンロードであるか否かに応じて判定される。図24〜29のデータは、複数のパケットに分割されていることもあるため、図37のデータ3704を必要に応じて送信されたデータを再構成した結果得られる。そして、得られた図24乃至図29の構造のデータの種類を判定材料として、ダウンロードであるか否かを判定させる。この場合、データの種類として「ダウンロード」であることの表示子を含めても良い。なお、リソースのダウンロードのためのポートを用意し、ダウンロード時にはそのポートを指定させれば、ポート識別子のみでS3511の判定を実現できる。
【０１３５】
S3611において、リソースのダウンロードを目的とするデータではない場合、S3617において適当な処理を行ない処理を終了する。
【０１３６】
S3611において、リソースのダウンロードを目的としたデータと判断した場合は、S3612に進む。S3612において、図34のタイミング3414で説明した方法により、印刷ジョブの受け付け停止を指示する。次にS4001で印刷待ちバッファ3415内に印刷ジョブが存在しているかどうかを調べる。
【０１３７】
S4001で印刷待ちバッファ3415内に印刷ジョブが存在しなかった場合、S3615に進む。
【０１３８】
S4001で印刷待ちバッファ3415内に印刷ジョブが存在した場合、S4002において印刷待ちバッファ3415内の全てのジョブに関し、出力権限者情報3802（図３８）内のメールアドレスに対し、リソースのダウンロードが行なわれる旨の電子メールを送信する。なお、本実施形態においては、出力権限者を対象としたが、印刷データの送信者にも出力権限が与えられている場合には、送信者情報3801を利用し、送信者を対象としてもよい。
【０１３９】
また、電子メールには、出力または削除を促す旨、およびダウンロードデータ送信時にシステム管理者が決めたダウンロード開始までの時間、あるいは本実施形態のシステムで予め決めているダウンロード開始までの時間に関する情報を含めることも可能である。
【０１４０】
S4003において、前記時間に関する情報として説明した一定時間が経過するのを待つ。印刷待ちバッファ3415内の各ジョブの出力権限者は、S4002による電子メールを受け、この一定時間内にジョブの出力または削除を行なう事が可能となる。一定時間経過後、S3613において、再び印刷待ちバッファ3415内に印刷ジョブが存在しているかどうかを調べる。
【０１４１】
S3613で、印刷待ちバッファ3415内にまだ印刷ジョブが存在した場合、S3614において、その印刷ジョブ1つを管理者権限でキャンセル、すなわち印刷待ちバッファ3415内から印刷することなく削除する。印刷待ちバッファ3415に印刷ジョブが存在しなくなるまで（図38ではJOBlからJOB4まで全てをキャンセルし終えるまで）、S3613およびS3614を繰り返す。
【０１４２】
S3613において、印刷待ちバッファ3415内に印刷ジョブが存在しないことを確認したら、S3615に進みリソースデータを然るべき格納領域3419に格納する。
【０１４３】
最後にS3616において、図34のタイミング3420で説明した方法により、印刷ジョブの受け付け停止解除、すなわち再開を指示し、処理を終了する。
【０１４４】
以上説明したように、PCに直接接続されたプリンタへのダウンロードにおいても、リソースのダウンロード時に印刷ジョブを受け付けないように制御することで、出力データ作成中のリソースデータ変更による文字化けなどの不正印刷を防ぐことが可能となった。さらに本発明においては、ダウンロードデータを受け付けた時点で印刷待ちジョブを強制キャンセルすることで、通常管理者が行ないクライアント全員に影響するような処理を優先的にスムーズに行なうことが可能となった。さらに、電子メールによる通知により、管理者のダウンロード作業に先立って、出力権限者による印刷待ちジョブの救出の機会を与えることが可能となった。
【０１４５】
［第５実施形態］
図33は、本発明を実施したプログラムを記憶した記憶媒体の図である。
図32は、本発明のプログラムモジュールを表した図である。
図33は、本発明のプログラムを記憶した記憶媒体をサーバ、管理者用パーソナルコンピュータ、もしくはユーザ用パーソナルコンピュータにロードする処理をあらわした図である。
【０１４６】
これらからわかるとおり、本発明は、各実施例にフローチャートとして示したコンピュータプログラムを可搬性のある記憶媒体に格納し、ワークステーションやパーソナルコンピュータ等のコンピュータに供給して実行させることが可能である。また印刷装置の制御するプログラムに関しても、印刷装置に記憶媒体を読み込む手段があれば図33の記憶媒体を印刷装置に直接読み込ませる事により、または第1実施形態乃至第4実施形態に示したように管理者用PCからダウンロードする事により、印刷装置上で実行させる事が可能である。
【０１４７】
【発明の効果】
以上説明したように、本発明によれば、出力ジョブと該出力ジョブの処理時に使用されるリソースデータとを非同期に受信可能な印刷装置または情報処理装置において、リソースデータを受信した場合に、それ以降の新たな出力ジョブの受信を停止し、すでに受信されて待機状態にある印刷ジョブの処理が完了したと判定したなら、受信したリソースデータにより保持されているリソースデータを更新することにより、出力要求とリソースのダウンロードとの競合を調整し、リソースのダウンロードを安全に行なえるようになった。
【０１４８】
また、すでに受信されて待機状態にある印刷ジョブの印刷出力がし終えたなら、当該印刷ジョブの処理の完了と判定することで、上記効果に加えてダウンロード前のジョブを完了させることができる。
【０１４９】
また、すでに受信されて待機状態にある印刷ジョブを削除し、当該印刷ジョブの処理の完了と判定することで、上記効果に加えて迅速にリソースのダウンロードを行うことができる。
【０１５０】
また、すでに受信されて待機状態にある印刷ジョブについて、保持されているリソースデータを使用してデータを変換し、変換したデータを退避領域に格納したなら当該印刷ジョブの処理の完了と判定することで、上記効果に加えて、認証が必要なジョブを認証無しに処理し、リソースのダウンロードを迅速に行うことができる。
【０１５１】
また、すでに受信されて待機状態にある印刷ジョブについて、各印刷ジョブごとに指定された宛先に対してリソースの更新を行う旨の通知を発行することで、上記効果に加えて、印刷ジョブの発行元に確実に通知を行える。
【図面の簡単な説明】
【図１】第１実施形態の発明における機器の構成を示す図である。
【図２】本発明における各機器の主なハードウェアモジュールを示す図である。
【図３】サーバのソフトウェア構成を示す図である。
【図４】周辺機器管理プログラムの構成を示す図である。
【図５】管理者用PCのソフトウェア構成を示す図である。
【図６】クライアントPCのソフトウェア構成を示す図である。
【図７】ダウンローダの構成を示す図である。
【図８】ダウンローダの動作を示すフローチャートである。
【図９】周辺機器情報取得モジュールの構成を示す図である。
【図１０】（A）は、割り込みによる周辺機器情報取得処理のフローチャートである。（B）は、通常処理のフローチャートである。
【図１１】管理プログラムのメインモジュールの構成を示す図である。
【図１２】管理プログラムの処理を示すフローチャートである。
【図１３】GUIを構築するためのモジュールの構成を示す図である。
【図１４】クライアント上で動作するモジュールの構成を示す図である。
【図１５】フォントをダウンロードする際のデータの流れを示す図である。
【図１６】クライアントPCがカラーキャリブレーションテーブルを取得する際のデータの流れを示す図である。
【図１７】アドレス帳データを機能複合型複写機から取得する際のデータの流れを示す図である。
【図１８】クライアントPC上のアドレス帳データを、機能複合型複写機にダウンロードする際のデータの流れを示す図である。
【図１９】プリンタもしくは機能複合型複写機の記憶装置の内容をバックアップする際のデータの流れを示す図である。
【図２０】バックアップされたプリンタもしくは機能複合型複写機の記憶装置の内容をリストアする際のデータの流れを示す図である。
【図２１】クライアントPCが、サーバからソウトウェアを取得する際のデータの流れを示す図である。
【図２２】クライアントPCが、サーバからドライバを取得する際のデータの流れを示す図である。
【図２３】サーバが、クライアントにデータを送出する際のデータ構造を示す図である。
【図２４】フォントファイルを、クライアントPCに送出する際のデータ構造内のヘッダー情報を示す図である。
【図２５】オーバーレイフォームを、クライアントPCに送出する際のデータ構造内のヘッダー情報を示す図である。
【図２６】カラーキャリブレーションテーブルを、クライアントPCに送出する際のデータ構造内のヘッダー情報を示す図である。
【図２７】スキャンイメージをオーバーレイする際にプリンタドライバで使われる情報を、クライアントPCに送出する際のデータ構造内のヘッダー情報を示す図である。
【図２８】ソフトウェアを、クライアントPCに送出する際のデータ構造内のヘッダー情報を示す図である。
【図２９】ドライバを、クライアントPCに送出する際のデータ構造内のヘッダー情報を示す図である。
【図３０】第２実施形態の発明における機器の構成を示す図である。
【図３１】本発明を実施したプログラムを記憶した記憶媒体の図である。
【図３２】本発明のプログラムモジュールを表した図である。
【図３３】本発明のプログラムを記憶した記憶媒体をサーバ、管理者用パーソナルコンピュータ、もしくはユーザ用パーソナルコンピュータにロードする処理を表わした図である。
【図３４】第１実施形態および第２実施形態の処理における各ポートの処理を時系列で示すシーケンス図である。
【図３５】第１実施形態のリソースポートにおける処理のフローチャートである。
【図３６】第２実施形態のリソースポートにおける処理のフローチャートである。
【図３７】第１実施形態および第２実施形態におけるマルチチャネルを実現するためのデータパケットを説明する図である。
【図３８】第３実施形態及び第４実施形態の処理における各ポートの処理を時系列で示すシーケンス図である。
【図３９】第３実施形態の処理のフローチャートである。
【図４０】第４実施形態の処理のフローチャートである。
【図４１】印刷データ（印刷ジョブ）の構造を示す図である。
【符号の説明】
１  ネットワーク
２  サーバコンピュータ
３  管理者用パーソナルコンピュータ
４  クライアントPC
５  クライアントPC
６  プリンタ
７  プリンタ
８  機能複合型複写機
９  機能複合型複写機
【図１】
0004596696.tif 000002
【図２】
0004596696.tif 000003
【図３】
0004596696.tif 000004
【図４】
0004596696.tif 000005
【図５】
0004596696.tif 000006
【図６】
0004596696.tif 000007
【図７】
0004596696.tif 000008
【図８】
0004596696.tif 000009
【図９】
0004596696.tif 000010
【図１０】
0004596696.tif 000011
【図１１】
0004596696.tif 000012
【図１２】
0004596696.tif 000013
【図１３】
0004596696.tif 000014
【図１４】
0004596696.tif 000015
【図１５】
0004596696.tif 000016
【図１６】
0004596696.tif 000017
【図１７】
0004596696.tif 000018
【図１８】
0004596696.tif 000019
【図１９】
0004596696.tif 000020
【図２０】
0004596696.tif 000021
【図２１】
0004596696.tif 000022
【図２２】
0004596696.tif 000023
【図２３】
0004596696.tif 000024
【図２４】
0004596696.tif 000025
【図２５】
0004596696.tif 000026
【図２６】
0004596696.tif 000027
【図２７】
0004596696.tif 000028
【図２８】
0004596696.tif 000029
【図２９】
0004596696.tif 000030
【図３０】
0004596696.tif 000031
【図３１】
0004596696.tif 000032
【図３２】
0004596696.tif 000033
【図３３】
0004596696.tif 000034
【図３４】
0004596696.tif 000035
【図３５】
0004596696.tif 000036
【図３６】
0004596696.tif 000037
【図３７】
0004596696.tif 000038
【図３８】
0004596696.tif 000039
【図３９】
0004596696.tif 000040
【図４０】
0004596696.tif 000041
【図４１】
0004596696.tif 000042