(57)【要約】【課題】複数の異なる印刷制御装置が同時に同一の印刷装置に対して複数の印刷処理の依頼をした際に、ジョブの削除やジョブの保留に伴う処理順の変更などによる印刷データの矛盾を発生させず保持でき、且つ印刷速度低下を招かないシステムの提供を目的とする。【解決手段】本発明は、印刷装置に接続された情報処理装置であって、ジョブの状態及びデータ及び制御方法を管理する管理手段と、前記印刷装置へ前記ジョブを送信する前に、前記管理手段に前記ジョブの制御方法を問い合わせるジョブ制御問い合わせ手段と、前記ジョブ制御問い合わせ手段によって受信した前記ジョブの制御方法に基づいて、前記ジョブのデータを保存するタイミングを制御するジョブ制御手段とを有する。【選択図】図２
2010204746.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置に接続された情報処理装置であって、
ジョブの状態及びデータ及び制御方法を管理する管理手段と、
前記印刷装置へ前記ジョブを送信する前に、前記管理手段に前記ジョブの制御方法を問い合わせるジョブ制御問い合わせ手段と、
前記ジョブ制御問い合わせ手段によって受信した前記ジョブの制御方法に基づいて、前記ジョブのデータを保存するタイミングを制御するジョブ制御手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記ジョブ制御手段は、前記ジョブ制御問い合わせ手段により受信した前記ジョブの制御方法が削除である場合、前記印刷装置へ前記ジョブを送信せず前記ジョブのデータを保存し、前記ジョブのデータの保存が終了した後に前記ジョブを削除することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ジョブ制御手段は、前記ジョブ制御問い合わせ手段により受信した前記ジョブの制御方法が保留である場合、前記印刷装置へ前記ジョブを送信せず前記ジョブのデータを保存し、前記ジョブのデータの保存が終了した後にジョブの実行を保留することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記ジョブ制御手段は、前記ジョブ制御問い合わせ手段により受信した前記ジョブの制御方法が属性変更である場合、前記ジョブに対し属性変更の後のデータを保存することを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
印刷装置に接続された情報処理装置の制御方法であって、
前記情報処理装置の管理手段が、ジョブの状態及びデータ及び制御方法を管理する管理工程と、
前記情報処理装置のジョブ制御問い合わせ手段が、前記印刷装置へ前記ジョブを送信する前に、前記管理手段に前記ジョブの制御方法を問い合わせるジョブ制御問い合わせ工程と、
前記情報処理装置のジョブ制御手段が、前記ジョブ制御問い合わせ工程によって受信した前記ジョブの制御方法に基づいて、前記ジョブのデータを保存するタイミングを制御するジョブ制御工程と
を有することを特徴とする制御方法。
【請求項６】
コンピュータを、
ジョブの状態及びデータ及び制御方法を管理する管理手段と、
印刷装置へ前記ジョブを送信する前に、前記管理手段に前記ジョブの制御方法を問い合わせるジョブ制御問い合わせ手段と、
前記ジョブ制御問い合わせ手段によって受信した前記ジョブの制御方法に基づいて、前記ジョブのデータを保存するタイミングを制御するジョブ制御手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、印刷制御装置及び制御方法及びプログラムに関する。特にスプールしたジョブにおけるジョブデータの保存に関する。
【背景技術】
【０００２】
近年、企業のオフィス等に複写装置、印刷装置が普及し、誰でも簡単に複写、印刷ができるようになった。こういった状況に伴って、社内文書の印刷物の流出を代表とするセキュリティ上の問題、無駄なプリント、誰が出力したかわからない放置プリントなどの問題が発生している。これらの問題を解決するために、ユーザ毎に各印刷処理に対する印刷文書名、印刷日時、用紙、部数、カラー／モノクロ等を集計する印刷履歴管理システムを実現している。
【０００３】
印刷履歴管理システムでは、管理情報（例えば、顧客情報や印刷単価）をジョブに紐付け、印刷ログ（履歴）の一部として集計している。集計結果から、ユーザやグループ毎に設定した印刷上限を超えた場合はジョブを削除する等、高度なジョブ制御をするシステムが実現されている。例えば、特許文献１においては、画像処理装置の出力枚数を利用者毎に集計するためのシステムが開示されている。このシステムでは、複合機、プリントサーバ、クライアントＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）および管理装置がネットワークに接続されている。そして、複合機の複写機能を利用した場合の利用者毎の出力枚数が当該複合機において管理されるとともに、複写機のプリンタ機能を利用した場合の利用者毎の出力枚数がプリンタサーバで管理されるようになっている。
【０００４】
このような印刷履歴管理システムによって、印刷ジョブ（印刷を指示するコマンド、描画命令、印刷属性、及び実行時刻等の付属情報を含む一連のデータストリームを指す。以下「ジョブ」と略すことがある）に含まれる描画命令や印刷属性（以下これらを総称して「印刷データ」と呼ぶ）を解析し、カラー印刷ジョブ等のジョブ削除や、強制的に両面印刷する等のジョブ制限を行うジョブ制御システムを実現している。その他に印刷ログを集計する方法として、特許文献２には、印刷装置が印刷ログ（履歴）を作成し、集計サーバが印刷装置固有のコマンドを定期的に発行する。そして、その時点の印刷ログを取得する方法、および印刷装置が自ら印刷ログを集計サーバに通知する方法が開示されている。
【０００５】
また、特許文献３には、印刷指示した情報処理装置（クライアントＰＣ）が、印刷属性を元に印刷ログを作成し、集計サーバに通知する方法が開示されている。
【０００６】
一方、ジョブのＰＤＬ（ページ記述言語）データや、ＰＤＬデータから印刷イメージ画像をビットマップに展開したデータ、またＰＤＬデータとビットマップの中間データ（以下、これらデータを総称してアーカイブデータと呼ぶ）を保存し、情報漏洩が発生した場合、流出経路を速やかに特定するジョブアーカイブシステムが実現している。印刷データや印刷イメージを保存することをユーザに告知することで、ユーザの情報管理の意識を高め、不正印刷の防止に役立っている。特許文献４では、プリントサーバが印刷データを受信し、印刷データからビットマップを生成し、印刷ログとして保存する方法が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−２０５４９８号公報
【特許文献２】特開２００２−２６８９６６号公報
【特許文献３】特開２０００−１１２７０６号公報
【特許文献４】特開２００２−１４９３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した印刷履歴システムとジョブアーカイブシステムは、それぞれ別個のシステムとして印刷制御システムに適用される場合は問題ないが、両者が同時に一つの印刷制御システムに単純に適用されると、不具合が発生する場合がある。例えば、ジョブの削除や保留が行われると、印刷履歴システムとジョブアーカイブシステムの実行タイミングによって、そのジョブのデータがアーカイブされないといったことが挙げられる。
【０００９】
また、印刷データの保存はファイルを作成し、ファイルに印刷データを複製することにより実現する。一般的に、ファイルサイズが大きくなると、複製には時間を要することとなる。例えば、ポートモニタが印刷データの複製機能を持ち、印刷データ送信時に複製処理及び保存処理を行うとすると、印刷データの複製が終了するまで印刷データの送信を完了できず、印刷処理の速度低下の一因となりうる。
【００１０】
本発明は、上記問題に鑑みてなされたもので、複数の異なる印刷制御装置が同時に同一の印刷装置に対して複数の印刷処理の依頼をした際に、ジョブの削除やジョブの保留に伴う処理順の変更などに影響されずジョブデータを保持し、且つ印刷速度低下を招かないシステムの提供を目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明は以下の構成を特徴とする。印刷装置に接続された情報処理装置であって、ジョブの状態及びデータ及び制御方法を管理する管理手段と、前記印刷装置へ前記ジョブを送信する前に、前記管理手段に前記ジョブの制御方法を問い合わせるジョブ制御問い合わせ手段と、前記ジョブ制御問い合わせ手段によって受信した前記ジョブの制御方法に基づいて、前記ジョブのデータを保存するタイミングを制御するジョブ制御手段とを有する。
【発明の効果】
【００１２】
上記構成によれば、クライアントコンピュータでジョブを削除し、印刷装置において印刷を行わない場合においても印刷データを保存することが可能になる。
【００１３】
また、ジョブの送信を保留する場合において、ジョブの送信を待たず、印刷データの保存が可能になる。これにより、ジョブ保留後、印刷が実行された場合、再アーカイブすることがなく、利便性が向上する。また、ジョブの送信を再開後におけるジョブの送信時は、ジョブの送信速度の低下を招かない。
【００１４】
また、予めアーカイブしていたジョブの印刷データに対し、属性変更が発生した場合においては、属性変更後のジョブを保存することが可能になり、最終的に印刷を行ったデータに対するジョブアーカイブを実現可能となる。
【００１５】
以上により、複数の異なる目的をもった印刷制御装置を同時に稼動し、同一の印刷装置に対して印刷処理を依頼したとしても、印刷制御装置の仕様上の制限を発生させず、保持データを漏れなく保持し、且つ印刷速度低下を招かないシステムの提供するという目的を達成することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態にかかる印刷システムの構成の一例を示すブロック図である。
【図２】本発明の実施形態にかかる印刷システムの詳細な構成の一例を示すブロック図である。
【図３】本発明の実施形態にかかる印刷装置の管理情報の表示に関する一例である。
【図４】実施形態にかかる印刷履歴管理システムを構成するクライアントコンピュータ上で動作するモジュール及びジョブの流れの一例を示す図である。
【図５】実施形態にかかるジョブアーカイブシステムを構成するクライアントコンピュータ上で動作するモジュール及びジョブの流れの一例を示す図である。
【図６】印刷履歴管理システムにおけるジョブ削除のシーケンスを示す一例である。
【図７】印刷履歴管理システムにおけるジョブ保留のシーケンスを示す一例である。
【図８】ジョブアーカイブシステムにおけるジョブアーカイブのシーケンスを示す一例である。
【図９】実施形態にかかるポートモニタの基本動作を示すフローの一例である。
【図１０】第一の実施形態にかかるジョブ開始時における、ポートモニタの基本動作を示すフローの一例である。
【図１１】第一の実施形態にかかるジョブ送信時における、ポートモニタの基本動作を示すフローの一例である。
【図１２】第一の実施形態にかかるジョブ終了時における、ポートモニタの基本動作を示すフローの一例である。
【図１３】実施形態にかかるジョブアーカイブシステムにおけるアーカイブモジュールの基本フローを示す一例である。
【図１４】実施形態にかかる印刷履歴管理システムにおけるスプーラ監視モジュールの基本フローを示す一例である。
【図１５】実施形態にかかる情報入力ＵＩの基本動作を示すフローの一例である。
【図１６】第二の実施形態にかかるジョブ開始時における、ポートモニタの基本動作を示すフローの一例である。
【図１７】第二の実施形態にかかるジョブ送信時における、ポートモニタの基本動作を示すフローの一例である。
【図１８】第二の実施形態にかかるジョブ終了時における、ポートモニタの基本動作を示すフローの一例である。
【図１９】第三の実施形態にかかるジョブ開始時における、ポートモニタの基本動作を示すフローの一例である。
【図２０】第三の実施形態にかかるジョブ送信時における、ポートモニタの基本動作を示すフローの一例である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して、本発明の好適な実施形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。まず、各実施形態に共通の構成を、図１乃至図８を参照して説明する。
【００１８】
＜システム構成＞
図１は、本発明の実施形態にかかる印刷システムの構成を示すブロック図である。情報処理装置１０１〜１０４は、イーサネット（登録商標）などのネットワークケーブルによって、ネットワーク１０６に接続されている。さらに、各情報処理装置は、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。また、ネットワーク１０６に接続されている他の機器と双方向に通信可能な通信装置を備えている。  プリンタドライバは複数のプリンタをサポートするものである。また、プリンタ（印刷装置）は、電子写真方式を採用したレーザービームプリンタ、インクジェット方式を採用したインクジェットプリンタ、熱転写方式を利用したプリンタ等の様々な方式のもののうち何れであってもよい。
【００１９】
情報処理装置１０１はホストコンピュータであるサーバ（以下、管理サーバと呼ぶ）としての機能を有する。情報処理装置１０２はホストコンピュータであるサーバ（以下、プリントサーバと呼ぶ）としての機能を有する。管理サーバ１０１およびプリントサーバ１０２はネットワークケーブルによってネットワーク１０６に接続されており、ネットワーク１０６に接続された各機器で使用されるファイルを蓄積したり、ネットワーク１０６に接続された機器の使用状態を監視したりする。また、管理サーバ１０１およびプリントサーバ１０２は、ネットワーク１０６に接続されている他の機器と双方向に通信可能な通信装置を備えており、情報処理装置の他、複数のプリンタの管理も行っている。
【００２０】
クライアントコンピュータ１０３、１０４、管理サーバ１０１、及びプリントサーバ１０２は一般的な情報処理装置である。管理サーバ１０１、およびプリントサーバ１０２は、クライアントコンピュータ１０３、１０４としての機能を併せて持つこともできる。（以降、管理サーバ、プリントサーバをクライアントと呼ぶこともある）、クライアントコンピュータ１０３、１０４、管理サーバ１０１、及びプリントサーバ１０２には、それぞれ異なる制御を行う印刷制御プログラムが実行可能に格納されている。
【００２１】
管理サーバ１０１は、印刷装置１０５の情報を管理し、印刷装置の印刷ログ、動作ログ等を集計し保持する機能を備えている。さらに、管理サーバ１０１はクライアントコンピュータ１０３、１０４、及びプリントサーバ１０２から印刷ログやアーカイブデータを収集し保持する機能を有している。さらに、管理サーバ１０１はユーザ情報、ネットワーク機器の情報を管理している。プリントサーバ１０２は、クライアントコンピュータ１０３、１０４から印刷要求が出された印刷データを含むジョブを格納し、印刷装置に送信する。印刷データとは、印刷装置がサポートしているＰＤＬで記載された描画命令や、ビットマップ等の印刷されるデータのことである。
【００２２】
また、プリントサーバ１０２は、クライアントコンピュータ１０３、１０４から印刷データを含まないジョブ情報（例えば、オーナー名、ジョブＩＤ等の印刷物に印字されない情報）のみを受け取ってクライアントコンピュータ１０３、１０４の印刷順序を管理する。そして、印刷の順番が来たクライアントコンピュータに対して印刷データを含むジョブの送信許可を通知する。さらに、印刷装置１０５のステータスやジョブの各種情報を取得してクライアントコンピュータ１０３、１０４に通知する機能を揃えている。ネットワークプリンタ１０５は印刷装置であり、ネットワークインタフェース（不図示）を介してネットワーク１０６に接続されている。さらに、クライアントコンピュータ１０２、１０３、１０４から送信される印刷データを含むジョブを解析して１ページずつイメージに変換して、１ページ毎に印刷する。ネットワーク１０６にはクライアントコンピュータ１０３、１０４、サーバ１０１、１０２、ネットワークプリンタ１０５等が接続されている。
【００２３】
図２を用いて、情報処理装置及び印刷装置の内部構成を説明する。ＣＰＵ２００はクライアントコンピュータ１０２、１０３、１０４の制御手段である。ＣＰＵ２００は、ハードディスク装置（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや本発明のネットワークプリンタ制御プログラム等を実行する。さらに、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ＲＯＭ２０１は記憶手段であり、内部には基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データが記憶される。一時記憶手段であるＲＡＭ２０２は、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。ＦＤドライブ２０３は記憶媒体読み込み手段及び書き込み手段である。
【００２４】
後述する図５に示すように、ＦＤドライブ２０３を介して、記憶媒体としてのフロッピー（登録商標）ディスク（ＦＤ）２０４に記憶されたプログラム等をクライアントである本コンピュータシステムにロードすることができる。なお、記憶媒体読み込み手段はＦＤドライブに限定するものではなく、記憶媒体もまたＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。ＦＤ２０４には、コンピュータによって読み取り可能なプログラムが格納されている。ＨＤ２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク装置であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等が格納されている。さらにスプーラがここに保持される。スプーラは、クライアントコンピュータにおいてはクライアントスプーラであり、プリントサーバ１０２ではサーバスプーラである。また、プリントサーバ１０２では、クライアントコンピュータから受けたジョブ情報を格納し、順序制御を行うためのテーブルも生成された後、この外部記憶手段であるＨＤ２０５に格納される。キーボード（ＫＢＤ）２０６は、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力する手段である。表示部（ＣＲＴ）２０７は、キーボード２０６から入力されたコマンドや、プリンタの状態等をユーザに対し表示するものである。システムバス２０８、クライアントコンピュータ内のデータの流れを司るものである。情報処理装置１の構成要素はシステムバス２０８によって互いに接続している。ポインティングデバイス（ＰＤ）２０９は、ポインティングデバイス２０９を介してクライアントコンピュータは外部装置とのデータのやり取りを行う。接続部２１０は、前述の双方向インタフェース２１１を介して後述する印刷装置２の接続部２２６に接続し、印刷制御コマンド（送信データ）を受信や、印刷装置内部の状態等を通知する事も可能である。
【００２５】
本実施形態では、ＦＤ２０４からネットワークプリンタ制御プログラム及び関連データを直接にＲＡＭ２０２にロードして実行する例を示す。その他、ＦＤ２０４からネットワークプリンタ制御プログラムを動作させる際に、既にＨＤ２０５にインストールされているネットワークプリンタ制御プログラムをＲＡＭ２０２にロードするようにしてもよい。プログラム及び関連データを実行する際の呼び出し方法はここで示したものに限定するわけではなく、これ以外の方法で実行しても良い。なお、ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカード等であってもよい。さらに、ネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接にＣＰＵ２００で実行することも可能である。
【００２６】
次に印刷装置の詳細構成を説明する。印刷装置２は、詳細を後述する接続部２２６、データ制御部（プリンタエンジン）２２５、操作部２２４、外部メモリ２２３、ＰＣＰＵ２２０、ＰＲＡＭ２２２、及びＰＲＯＭ２２１を主要な構成要素する。これらの構成要素がシステムバス２２７を介して互いに接続されている。プリンタＣＰＵ（ＰＣＰＵ）２２０は、印刷装置２の全体制御を司るものである。ＰＣＰＵ２２０は、後述するＰＲＯＭ２２１或いは外部メモリ２２３に記憶された制御プログラムに基づいて、接続部２２６で受信したプリンタ制御コマンド（送信データ）より、画像信号をデータ制御部２２５に送信する。ＰＲＡＭ２２２は、ＰＣＰＵ２２０の主メモリとして、ＰＣＰＵ２２０による制御実行時、ワークデータエリアとして使用される各種データの一時記憶領域を備えている。外部メモリ２２３は、オプションとしても接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。ＰＲＯＭ２２１はプリンタ内部メモリであり、外部メモリと同様に、各種データや本印刷装置を制御するプリンタ制御プログラム等を記憶している。
【００２７】
データ制御部２２５はプリンタエンジンであり、ＰＣＰＵ２２０により制御され、ＰＲＯＭ２２１、或いは外部メモリ２２３に記憶された制御プログラムよりシステムバス２２７を介して出力された画像信号を受け、実際の印刷処理を行う。操作部２２４は、操作パネルや操作スイッチ等の入力部、及びＬＥＤ、液晶パネル等の表示部等から構成され、オペレータの操作を受け、結果を表示するものである。オペレータは操作部２２４を介して本実施形態における印刷装置２の設定を指示や、確認することが可能である。接続部２２６は、前述の双方向インタフェース２１１を介して情報処理装置１の接続部２１０に接続し、印刷制御コマンド（送信データ）を受信や、印刷装置内部の状態等を通知する事も可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。ジョブを作成するクライアントコンピュータ、ジョブを送信するプリントサーバ、システムを管理する管理サーバは、同一の情報処理装置であっても、別の情報処理装置であっても本発明は適用することが可能である。
【００２８】
図３は、実施の形態にかかる情報入力画面の一例である。このダイアログは、後述する図４に記載のスプーラ監視モジュールによって、クライアントコンピュータの表示部２０７に表示され、ユーザからキーボード２０６等の入力装置による入力を受け付ける。課金コード入力領域３０１、入力確定ボタン３０２、ジョブ操作ボタン（一時停止３０３、再開３０４、削除３０５）、表示の更新ボタン３０６、ジョブリスト表示部３０７を持つ。ジョブリスト表示部３０７では、ジョブリストを、ジョブ毎にジョブＩＤ、ドキュメント名、ジョブオナー、課金コード、状態の項目を一覧表示することができる。ユーザの指示により、ジョブを複数選択可能である。選択されたジョブは反転表示される。ジョブが選択されると、課金コード入力領域３０１が有効になり、任意の文字列を入力すること可能になる。
【００２９】
＜ジョブの流れ＞
図４は、本実施形態にかかる印刷履歴管理システムを構成するクライアントコンピュータ上で動作するモジュール、印刷装置の関係および、ジョブの流れの一例を示す図である。クライアントコンピュータでは、例えば一般的に普及しているパーソナルコンピュータ（本発明の情報処理装置に相当する）にＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）をＯＳとして使用する。さらに、印刷処理機能を有するＭｉｃｒｏｓｏｆｔ社製のＷｏｒｄ（登録商標）等のアプリケーション４０１を起動する。ユーザは、キーボード２０６やポインティングデバイス２０９等の指示装置を用いて、ドキュメントを作成し、アプリケーションに用意された印刷指示手段によって、印刷指示をする。アプリケーション４０１は、印刷データをプリンタドライバ４０２に渡し、ジョブを作成する。プリンタドライバ４０２は作成したジョブをスプーラ４０３に渡す。スプーラ４０３は複数のドライバから渡されたジョブを、ユーザ指定のプリンタ毎にジョブをスケジューリングし、プリンタが接続されているポートに対応するポートモニタ４０４にジョブを渡す。ポートモニタ４０４は、ポート（例えばＵＳＢポートやネットワークポート）に対応するデバイスドライバ４０５を適宜呼び出し、デバイスドライバ４０５にジョブを渡す。デバイスドライバ４０５は、所定の方法に基づき、接続部２１０を介し、印刷装置４０６とコネクションを確立し、印刷装置４０６にジョブを渡す。スプーラ監視モジュール４０７は、クライアントコンピュータ起動時に自動的に動作開始し、ＯＳにおいて利用可能なスプーラ機能を用い、スプーラ４０３を監視する。プリンタドライバの追加、削除、変更ならびに、プリンタドライバ毎のジョブの生成、状態を監視する。スプーラにジョブが生成されたと判定されたときは、利用可能なジョブリスト４０８の記憶領域に、ジョブを状態やサイズ、プリンタドライバ名、オーナー名、ドキュメント名、日時等の付属情報とともに格納する。同時に情報入力ＵＩ４１０表示する。情報入力ＵＩ４１０は、クライアントコンピュータの表示部２０７に、図３に図示する情報入力ダイアログを表示する。情報入力ＵＩ４１０はユーザからの入力を受け取ったら、ＨＤ２０５に格納されているジョブリスト４０８に記憶されているジョブ情報に、入力情報を反映する。さらに、スプーラ監視モジュール４０７は、所定のログ通知時刻になるとログをサーバ通知モジュール４０９に渡す。サーバ通知モジュール４０９は所定の方法に基づき、接続部２１０を介し図示していないログ種集サーバとコネクションを確立し、ログをログ種集サーバに通知する。
【００３０】
図５は、本実施形態にかかるジョブアーカイブシステムを構成するクライアントコンピュータ上で動作するモジュール、印刷装置の関係および、ジョブの流れの一例を示す図である。クライアントコンピュータでは、例えば一般的に普及しているパーソナルコンピュータ（本発明の情報処理装置に相当する）にＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）をＯＳとして使用する。さらに、印刷処理機能を有するＭｉｃｒｏｓｏｆｔ社製Ｗｏｒｄ（登録商標）等のアプリケーション５０１を起動する。ユーザは、キーボード２０６やポインティングデバイス２０９等の入力装置を用いて、ドキュメントを作成し、アプリケーションに用意された印刷指示手段によって、印刷指示をする。アプリケーション５０１は、印刷データをプリンタドライバ５０２に渡し、ジョブを作成する。プリンタドライバ５０２は作成したジョブをスプーラ５０３に渡す。スプーラ５０３は複数のドライバから渡されたジョブを、ユーザ指定のプリンタ毎にジョブをスケジューリングし、プリンタが接続されているポートに対応するポートモニタ５０４にジョブを渡す。
【００３１】
ポートモニタ５０４は、ポート（例えばＵＳＢポートやネットワークポート）に対応するデバイスドライバ５０５を適宜呼び出し、デバイスドライバ５０５にジョブを渡す。デバイスドライバ５０５は、所定の方法に基づき、接続部２１０を介し、印刷装置５０６とコネクションを確立し、印刷装置５０６にジョブを渡す。アーカイブモジュール５０７は、クライアントコンピュータ起動時に自動的に動作開始する。さらに、ポートモニタ５０４からジョブのジョブデータを受け取り、アーカイブデータを生成し、ＨＤ２０５に格納されているアーカイブデータ５０８に保存する。さらに、アーカイブモジュール５０７は、所定のアーカイブデータ送信時刻になると、アーカイブデータ５０８からアーカイブデータを取得し、サーバ通知モジュール５０９に渡す。サーバ通知モジュール５０９は所定の方法に基づき、接続部２１０を介しアーカイブデータ種集サーバ（不図示）とコネクションを確立し、アーカイブデータをアーカイブデータ種集サーバに通知する。
【００３２】
＜ジョブ削除のシーケンス＞
図６は、印刷履歴管理システムにおけるジョブ削除のシーケンスを示す一例である。スプーラシステムは、スプール済みのジョブ一覧からプリンタ毎にジョブを順番に取り出し、ポートモニタの公開関数を適宜呼び出し、印刷装置にジョブを送信する。最初に、ジョブの開始時にポートモニタの公開関数であるＳｔａｒｔＤｏｃＰｏｒｔ（）を呼ぶ。ＳｔａｒｔＤｏｃＰｏｒｔ（）が呼び出されたポートモニタは、スプーラ監視モジュールにジョブの開始を通知し、スプーラ監視モジュールからジョブ制御結果を受け取る。スプーラ監視モジュールは、印刷実行者が印刷権限を有する上限値を超えて印刷を実施する印刷上限超過や、印刷制限（例えば、カラー禁止）など印刷を許可しない条件を満たす場合は、ジョブ制御結果として「ジョブ削除」を通知する。ジョブ制御結果が「ジョブ削除」の場合、ポートモニタは、該当ジョブの削除をスプーラに依頼し、ＳｔａｒｔＤｏｃＰｏｒｔ（）を終了する。ジョブの削除を依頼されたスプーラシステムは、ポートモニタの公開関数ＷｒｉｔｅＰｏｒｔ（）を呼び出さず、ポートモニタの公開関数のＥｎｄＤｏｃＰｏｒｔ（）を呼び出す。ＥｎｄＤｏｃＰｏｒｔ（）が呼び出されたポートモニタは、スプーラ監視モジュールにジョブの終了を通知し、ＥｎｄＤｏｃＰｏｒｔ（）を終了する。ＥｎｄＤｏｃＰｏｒｔ（）の呼び出しが終了したスプーラシステムは、該当ジョブをスプーラから削除する。
【００３３】
従来例においては、以上のような流れでジョブ削除の処理を行うが、この手法では削除対象となるジョブのアーカイブができないこととなる。
【００３４】
＜ジョブ保留のシーケンス＞
図７は、印刷履歴管理システムにおけるジョブ保留のシーケンスを示す一例である。スプーラシステムは、スプール済みのジョブ一覧からプリンタ毎にジョブを順番に取り出し、ポートモニタの公開関数を適宜呼び出し、印刷装置にジョブを送信する。最初に、ジョブの開始時にポートモニタの公開関数であるＳｔａｒｔＤｏｃＰｏｒｔ（）を呼ぶ。ＳｔａｒｔＤｏｃＰｏｒｔ（）が呼び出されたポートモニタは、スプーラ監視モジュールにジョブの開始を通知し、スプーラ監視モジュールからジョブ制御結果を受け取る。スプーラ監視モジュールは、課金コードが設定されていない、指定期間内の印刷上限超過等、印刷の即時実行を許可しない条件を満たす場合は、ジョブ制御結果に「ジョブ保留」を通知する。ジョブ制御結果が「ジョブ保留」の場合、ポートモニタは、該当ジョブのリスタートと一時停止をスプーラに依頼し、ＳｔａｒｔＤｏｃＰｏｒｔ（）を終了する。ジョブのリスタートと一時停止を依頼されたスプーラシステムは、ポートモニタの公開関数ＷｒｉｔｅＰｏｒｔ（）を呼び出さず、ポートモニタの公開関数のＥｎｄＤｏｃＰｏｒｔ（）を呼び出す。ＥｎｄＤｏｃＰｏｒｔ（）が呼び出されたポートモニタは、スプーラ監視モジュールにジョブの終了を通知し、ＥｎｄＤｏｃＰｏｒｔ（）を終了する。
【００３５】
一定時間が経過後、ユーザによって課金コードが入力されたなど、ジョブの保留条件が解除された場合、スプーラ監視モジュールは該当ジョブの再開をスプーラシステムに依頼する。ジョブの再開を依頼されたスプーラシステムは、ポートモニタの公開関数であるＳｔａｒｔＤｏｃＰｏｒｔ（）を呼ぶ。ＳｔａｒｔＤｏｃＰｏｒｔ（）が呼び出されたポートモニタは、スプーラ監視モジュールにジョブの開始を通知し、スプーラ監視モジュールからジョブ制御結果としてジョブ実行許可を受け取る。ジョブ制御結果が「ジョブ実行許可」を受け取ったポートモニタは、ＳｔａｒｔＤｏｃＰｏｒｔ（）を終了する。次に、スプーラシステムは、ポートモニタの公開関数ＷｒｉｔｅＰｏｒｔ（）を呼び出し、該当ジョブをポートモニタに渡す。ジョブサイズが大きい場合は、必要に応じて分割し、ＷｒｉｔｅＰｏｒｔ（）呼び出しを複数回実行する。ＷｒｉｔｅＰｏｒｔ（）を呼ばれたポートモニタは、渡されたジョブを印刷装置に送付し、送付成功サイズをスプーラシステムに返す。スプーラシステムは、１回のＷｒｉｔｅＰｏｒｔ（）呼び出しで返された送付成功サイズが、渡したジョブサイズ未満の場合は、残りのサイズのジョブを次のＷｒｉｔｅＰｏｒｔ（）呼び出しで渡す。該当ジョブの全データを送信終了するまで繰り返す。全データの送付が終わるとスプーラシステムは、ポートモニタの公開関数のＥｎｄＤｏｃＰｏｒｔ（）を呼び出す。ＥｎｄＤｏｃＰｏｒｔ（）が呼び出されたポートモニタは、スプーラ監視モジュールにジョブの終了を通知し、ＥｎｄＤｏｃＰｏｒｔ（）を終了する。ＥｎｄＤｏｃＰｏｒｔ（）の呼び出しが終了したスプーラシステムは、該当ジョブをスプーラから削除する。印刷装置からジョブの終了を通知されたポートモニタは、ジョブの結果をスプーラ監視モジュールに通知する。
【００３６】
以上のような流れでジョブ保留の処理を行うが、この手法では保留対象となるジョブのアーカイブは処理再開時に行うこととなり、送信処理の際の負荷が増大してしまう。また、当該ジョブに対するアーカイブができないこととなる。
【００３７】
＜ジョブアーカイブのシーケンス＞
図８は、のジョブアーカイブシステムにおけるジョブアーカイブのシーケンスを示す一例である。スプーラシステムは、スプール済みのジョブ一覧からプリンタ毎にジョブを順番に取り出し、ポートモニタの公開関数を適宜呼び出し、印刷装置にジョブを送信する。最初に、ジョブの開始時にポートモニタの公開関数であるＳｔａｒｔＤｏｃＰｏｒｔ（）を呼ぶ。ＳｔａｒｔＤｏｃＰｏｒｔ（）が呼び出されたポートモニタは、アーカイブモジュールにジョブの開始を通知し、アーカイブモジュールからジョブ制御結果を受け取る。アーカイブモジュールは、アーカイブが必要と判断した場合は、ジョブ制御結果に「アーカイブ必要」を通知する。
【００３８】
ジョブ制御結果が「アーカイブ必要」の場合、ポートモニタは、ＳｔａｒｔＤｏｃＰｏｒｔ（）を終了する。次に、スプーラシステムは、ポートモニタの公開関数ＷｒｉｔｅＰｏｒｔ（）を呼び出し、該当ジョブをポートモニタに渡す。ジョブサイズが大きい場合は、必要に応じて分割し、ＷｒｉｔｅＰｏｒｔ（）呼び出しを複数回実行する。ＷｒｉｔｅＰｏｒｔ（）を呼ばれたポートモニタは、渡されたジョブを印刷装置に送付する。さらにポートモニタは、印刷装置への送付成功サイズのジョブをアーカイブモジュールに渡す。ジョブを受け取ったアーカイブモジュールは、アーカイブデータを作成し保持する。スプーラシステムは、１回のＷｒｉｔｅＰｏｒｔ（）呼び出しで返された送付成功サイズが、渡したジョブサイズ未満の場合は、残りのサイズのジョブを次のＷｒｉｔｅＰｏｒｔ（）呼び出しで渡す。該当ジョブの全データを送信終了するまで繰り返す。全データの送付が終わるとスプーラシステムは、ポートモニタの公開関数のＥｎｄＤｏｃＰｏｒｔ（）を呼び出す。ＥｎｄＤｏｃＰｏｒｔ（）が呼び出されたポートモニタは、アーカイブモジュールにジョブの終了を通知し、ＥｎｄＤｏｃＰｏｒｔ（）を終了する。ＥｎｄＤｏｃＰｏｒｔ（）の呼び出しが終了したスプーラシステムは、該当ジョブをスプーラから削除する。
【００３９】
＜第一の実施形態＞
以下に第一の実施形態を、図９、図１０、図１１、図１２、図１３、図１４、図１５を用いて説明する。図９〜図１２までは一連のフローを分割したものである。また、図６〜図８における処理の主体（スプーラ、ポートモニタ、印刷装置、スプーラ監視モジュール、アーカイブモジュール）はそれぞれ図９〜図１５に対応している。
【００４０】
図９は、本実施形態にかかるポートモニタの基本動作を示すフローの一例である。説明の簡便のため、ポートモニタは、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）上のスプーラシステム起動時に自動で起動され、スプーラシステム終了時に自動で終了するものとする。また、ＭＳＤＮ（Ｍｉｃｒｏｓｏｆｔ  Ｄｅｖｅｌｏｐｅｒ  Ｎｅｔｗｏｒｋ）（登録商標）で公開されているプリントモニタ関数を実装しているものとする。Ｓ９０１で、スプーラからの呼び出された関数を判定し、公開関数ＳｔａｒｔＤｏｃ()である場合は、図１０（Ａ）に示すフローに進み、ジョブ開始時の処理を行う。Ｓ９０１でＳｔａｒｔＤｏｃ()と判定しなかった場合は、Ｓ９０２へ進み、スプーラからの呼び出された関数を判定し、公開関数ＷｒｉｔｅＰｏｒｔ（）である場合は、図１１（Ｂ）に示すフローに進み、ジョブ送信処理を行う。Ｓ９０２でＳｔａｒｔＤｏｃ()と判定しなかった場合は、Ｓ９０３へ進み、スプーラからの呼び出された関数を判定し、公開関数ＥｎｄＤｏｃＰｏｒｔ（）である場合は、図１２（Ｃ）に示すフローに進み、ジョブ終了処理を行う。Ｓ９０３において、公開関数ＥｎｄＤｏｃＰｏｒｔ（）でないと判定された場合は、Ｓ９０１へ戻る。この場合、他の関数の処理を行っても良いが、本実施形態ではそれらに関する説明は省略する。
【００４１】
図１０は、第一の実施形態にかかるジョブ開始時における、ポートモニタの基本動作を示すフローの一例である。Ｓ１００１で、フラグを初期化する。ここでのフラグとは、処理対象のジョブについて、ジョブを削除するか否かを決定する「削除フラグ」、ジョブをアーカイブするか否かを決定する「アーカイブフラグ」、ジョブがアーカイブ済みか示す「アーカイブ済みフラグ」の３つを指す。ＣＰＵ２００を用い、ＲＡＭ２０２等の記憶装置のワーク領域にジョブ毎に領域を確保し、各フラグに初期値「０」として設定し、保存する。ここでの初期値“０”は全て「否」を示す値とする。次にＳ１００２で、ジョブ制御の問い合わせをする。すなわち、利用可能な通信手段を用い、スプーラ監視モジュールおよびアーカイブモジュールに、ジョブの制御方法を問い合わせる。これがジョブ制御問い合わせ手段としての役割を有することとなる。次にＳ１００３で、ＣＰＵ２００を用いてＳ１００２の問い合わせ結果からジョブの削除が必要か否かを判定する。Ｓ１００３で、ジョブの削除が必要と判定したときはＳ１００４へ進み、ＣＰＵ２００を用いて、ＲＡＭ２０２等の記憶領域に確保した削除フラグに１をセットし、保存する。その後、図９のＳ９０１へ戻る（Ｄ）。Ｓ１００３で、ジョブの削除が必要であると判定しなかったときは、Ｓ１００５へ進み、ＣＰＵ２００を用いてＳ１００２の問い合わせ結果が、ジョブのアーカイブが必要か否かを判定する。Ｓ１００５で、ジョブのアーカイブが必要と判定したときは、Ｓ１００６でＣＰＵ２００を用いて、ＲＡＭ２０２等の記憶領域に確保したアーカイブフラグに１をセットし、保存する。その後、図９のＳ９０１へ戻る（Ｄ）。Ｓ１００５で、ジョブのアーカイブが必要と判定しなかったときは、図９のＳ９０１へ戻る（Ｄ）。
【００４２】
図１１は、第一の実施形態にかかるジョブ送信時における、ポートモニタの基本動作を示すフローの一例である。Ｓ１１０１で、該当ジョブがアーカイブ必要で、且つアーカイブ済みでないか判定する。すなわちＣＰＵ２００を用い、ＲＡＭ２０２等の記憶領域に確保したワーク領域に確保されたフラグを検索し、該当ジョブのアーカイブフラグが１で、且つアーカイブ済みフラグが０のときは、該当ジョブにおいてアーカイブが必要で、且つ既にアーカイブ済みでないと判定する。Ｓ１１０１で該当ジョブがアーカイブ必要で、且つアーカイブ済みでないと判定した場合はＳ１１０２へ進み、ジョブをアーカイブする。すなわち、利用可能な通信手段により、ジョブをアーカイブモジュールに渡す。アーカイブモジュールは、受け取ったジョブを利用可能な方法によりアーカイブし、ＨＤ２０５等の記憶装置に確保した領域にアーカイブデータを保存する。Ｓ１１０１で該当ジョブにおいてアーカイブが必要でない、または、アーカイブ済みであると判定した場合はＳ１１０３へ進み、該当ジョブを送信するか否かを判定する。すなわち、ＣＰＵ２００を用い、ＲＡＭ２０２等の記憶領域に確保したワーク領域に確保されたフラグを検索し、該当ジョブの削除フラグが１になっている場合は、送信の必要がないと判定し、図９のＳ９０１へ戻る（Ｄ）。Ｓ１１０３で、ジョブ送信が必要と判定した場合は、Ｓ１１０４へ進み、利用可能な方法によりジョブを、デバイスドライバ４０５を介して印刷装置に送信する。続いて、図９のＳ９０１へ戻る（Ｄ）。
【００４３】
図１２は、第一の実施形態にかかるジョブ終了時における、ポートモニタの基本動作を示すフローの一例である。Ｓ１２０１でジョブの削除が必要か判定する。すなわち、ＣＰＵ２００を用い、ＲＡＭ２０２等の記憶領域に確保したワーク領域に確保されたフラグを検索し、該当ジョブのジョブ削除フラグが１になっている場合は、ジョブの削除が必要と判定する。Ｓ１２０１でジョブの削除が必要と判定した場合は、Ｓ１２０２へ進み、ジョブの削除を実行する。ポートモニタは、スプーラシステムにて利用可能な手段により、該当ジョブの削除を依頼する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているスプーラ関数ＳｅｔＪｏｂ（）にパラメータとして、該当ジョブのジョブハンドルコマンドＪＯＢ＿ＣＯＮＴＲＯＬ＿ＣＡＮＣＥＬを渡す等の方法により実現する。その後、Ｓ１２０３へ進む。Ｓ１２０１でジョブの削除が必要でないと判定したときは、Ｓ１２０３へ進む。Ｓ１２０３では、ジョブがアーカイブ済みか否かを判定する。すなわち、ＣＰＵ２００を用い、ＲＡＭ２０２等の記憶領域に確保したワーク領域に確保されたフラグを検索し、該当ジョブのアーカイブフラグが１になっている場合は、ジョブのアーカイブが終了したと判定する。その後、Ｓ１２０５へ進む。Ｓ１２０３でジョブがアーカイブ済みであると判定したときは、Ｓ１２０４でアーカイブ済みフラグに１をセットする。すなわち、ＣＰＵ２００を用いて、ＲＡＭ２０２等の記憶領域に確保したアーカイブ済みフラグに１をセットし、保存する。その後、Ｓ１２０５へ進む。Ｓ１２０５では、スプーラ監視モジュールに対しジョブ結果通知を行う。その後、図９のＳ９０１へ戻る（Ｄ）。
【００４４】
＜アーカイブモジュールの基本フロー＞
図１３は、本実施形態にかかるジョブアーカイブシステムにおけるアーカイブモジュールの基本フローを示す一例である。説明の簡便のため、アーカイブモジュールは、クライアントコンピュータに搭載されたＯＳ起動とともに起動し、また、予めポートモニタとの間に通信経路が開かれているものとする。Ｓ１３０１で、ポートモニタからジョブ制御の問い合わせを受信したか否かを判定する。Ｓ１３０１でポートモニタからジョブ制御の問い合わせと判定した場合は、Ｓ１３０２へ進み、ポートモニタへの応答処理を実行する。すなわち、予めアーカイブモジュールに備えられた応答処理の方法に基づき、ポートモニタにアーカイブが必要である旨を通知する。その後、Ｓ１３０１へ戻る。ここでの応答処理の方法は従来技術のものを利用してかまわないため、ここでは特に明記しない。Ｓ１３０１でポートモニタからジョブ制御の問い合わせでないと判定した場合、Ｓ１３０３へ進み、ジョブデータを受信したか否かを判定する。Ｓ１３０３でジョブデータを受信したと判定した場合は、Ｓ１３０４へ進み、予め備えられたアーカイブ処理の方法に基づき、ＣＰＵ２００を用い、アーカイブデータを作成し、ＨＤ２０５等の記憶装置に保持する。ここでのアーカイブ処理の方法は従来技術のものを利用してよいため、ここでは特に明記しない。その後、Ｓ１３０１に進む。Ｓ１３０３でジョブデータを受信していないと判定した場合は、Ｓ１３０５へ進み、ジョブ終了通知を受信したか否かを判定する。Ｓ１３０５でジョブデータを受信したと判定した場合は、Ｓ１３０６へ進み、所定のアーカイブ処理の方法に基づきＳ１３０４で作成したアーカイブデータを、アーカイブ収集サーバに通知するためにサーバ通知モジュール５０９を介して送信する。その後、Ｓ１３０１へ戻る。Ｓ１３０５でジョブデータを受信していないと判定した場合は、Ｓ１３０１へ戻る。
【００４５】
＜スプーラ監視モジュールの基本フロー＞
図１４は、本実施形態にかかる印刷履歴管理システムにおけるスプーラ監視モジュールの基本フローを示す一例である。説明の簡便のため、スプーラ監視モジュールは、クライアントコンピュータに搭載されたＯＳ起動とともに起動し、予めポートモニタとの間に通信経路が開かれているものとする。Ｓ１４０１で、ポートモニタからジョブ制御の問い合わせを受信したか判定する。Ｓ１４０１でポートモニタからジョブ制御の問い合わせと判定した場合は、Ｓ１４０２へ進み、ポートモニタへの応答処理を実行する。すなわち、予めスプーラ監視モジュールに備えられた応答処理の方法に基づき、ポートモニタにジョブ削除が必要と通知する。ただし、応答処理はジョブ削除に限定するものではなく、前に述べたジョブ保留やその他の内容であっても良い。その後、Ｓ１４０１へ戻る。ここでの応答処理の方法は従来技術のものを利用してかまわないため、ここでは特に明記しない。Ｓ１４０１でジョブ制御の問い合わせとして判定されなかった場合は、Ｓ１４０３へ進む。Ｓ１４０３では、ジョブ一覧を取得する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＥｎｕｍＪｏｂ（）を呼び出し、印刷ジョブの一覧を取得し、予めＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保されているワーク領域に保存する。続いてＳ１４０４へ進み、Ｓ１４０３で取得したジョブ一覧の中に、新規ジョブが発生したか否かを判定する。すなわち、ＣＰＵ２００を用い、印刷履歴管理システムが保持するジョブリストと比較し、新しいジョブＩＤのジョブが追加されている場合は、新規のジョブが発生したと判定する。ジョブリストに関しては後述する。Ｓ１４０４にて新規ジョブが発生していないと判定された場合は、Ｓ１４０９へ進む。Ｓ１４０４にて、新規ジョブが発生したと判定された場合はＳ１４０５へ進み、Ｓ１４０３で取得した新規ジョブと新規ジョブに付属する情報をジョブ一覧から抽出し、ジョブリストに追加する。
【００４６】
ここでのジョブリストとは、ジョブ毎に、ジョブＩＤおよび、ドキュメント名等のジョブに付属する情報を持ち、さらに、ジョブ毎に、課金コード等の印刷システムが付加する追加情報を合わせて持つ。また、ジョブリストはスプーラ監視モジュールが起動時にＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保した所定の場所に保存される。ジョブに付属する情報は、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＧｅｔＪｏｂ（）や、印刷システム独自の手段などで取得する。
【００４７】
その後、Ｓ１４０６へ進む。次に、Ｓ１４０６で、Ｓ１４０５で作成したジョブリストにジョブが１件以上あるか否かを判定する。すなわち、ＣＰＵ２００を用い、ＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保した所定の場所に保存されているジョブリスト４０８を検索し、ジョブのレコード数を計算する。ジョブリスト中のジョブが０件であると判断したときは、Ｓ１４０１へ戻る。Ｓ１４０６で、ジョブが１件以上であると判定したときはＳ１４０７へ進み、情報入力ＵＩ４１０が表示済か否かを判定する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＦｉｎｄＷｉｎｄｏｗ（）を呼び出し、情報入力ＵＩ４１０が使用するウィンドウが存在する場合は、既に情報入力ＵＩ４１０が表示済と判定する。
【００４８】
情報入力ＵＩが表示済の場合は、Ｓ１４０１へ戻る。Ｓ１４０７で情報入力ＵＩ４１０が表示していないと判定した場合はＳ１４０８へ進み、所定の手続きに基づき、情報入力ＵＩ４１０を表示部２０７等の表示装置に表示する。その後、Ｓ１４０１へ戻る。Ｓ１４０４で新規ジョブが発生していないと判定したときは、Ｓ１４０９へ進み、ジョブが終了したか否かを判定する。すなわち、ＣＰＵ２００を用いて、Ｓ１４０３で取得したジョブ一覧とＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保した所定の場所に保存されているジョブリスト４０８を比較する。ジョブ一覧からジョブリストに含まれているジョブがなくなっていれば、ジョブリストに保持していたジョブが終了したと判定する。Ｓ１４０９でジョブが終了したと判定したときはＳ１４１０へ進み、ログをログ収集サーバに通知するために送付する。すなわち、ＣＰＵ２００を用いて、ＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保した所定の場所に保存されているジョブリスト４０８から終了ジョブのレコードを取り出し、ログを作成し、サーバ通知モジュール４０９にログを渡す。その後、ジョブリスト４０８からは該当レコードを削除し、ＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保した所定の場所に保存する。サーバ通知モジュール４０９は、所定の手続きによりログをログ収集サーバに通知する。その後、Ｓ１４０１へ戻り、以降の処理を繰り返す。Ｓ１４０９にてジョブが終了していないと判定した場合は、Ｓ１４０５へ進み、以降の処理を実行する。
【００４９】
＜情報入力ＵＩの基本フロー＞
図１５は、本実施形態にかかる情報入力ＵＩの基本動作を示すフローの一例である。Ｓ１５０１で、ボタンクリック等のイベントが発生したか否かを判定する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＭＳＤＮ  Ｌｉｂｒａｒｙ（登録商標）で開示されている方法では、マウスによるクリックやキーボード入力等の操作と、ウィンドウ内のボタンやリストボックス等の各リソースを一意に決定するＩＤが、イベントとして通知される。イベントが発生するまでＳ１５０１を繰り返す。Ｓ１５０１でイベント発生したと判定した場合はＳ１５０２へ進み、イベントがジョブ選択か否かを判定する。すなわち、Ｓ１５０１で取得したイベントに、図３におけるジョブリスト領域のレコードの示すＩＤと、マウスの左ボタン操作が含まれるときは、ジョブ選択と判定する。Ｓ１５０２でジョブ選択と判定した場合はＳ１５０３へ進み、該当レコードを利用可能な方法で反転表示する。その後、Ｓ１５０１へ戻り、以降の処理を繰り返す。Ｓ１５０２でジョブ選択と判定しなかった場合はＳ１５０４へ進み、「入力」ボタンがクリックされたか否かを判定する。すなわち、Ｓ１５０１で取得したイベントに、図３における「入力」ボタンを示すＩＤと、マウスの左ボタン操作が含まれるときは、「入力」ボタンクリックと判定する。
【００５０】
Ｓ１５０４で「入力」ボタンクリックと判定した場合はＳ１５０５で、ジョブリストに課金コードを設定する。ＣＰＵ２００を用い、利用可能な方法により、図３ジョブリスト領域の反転表示されているレコードを検索し、見つかったレコードからジョブＩＤを取得する。ＲＡＭ２０２やＨＤ２０５等の記憶装置に保存されているジョブリストのうち、該当ＩＤを持つレコードの課金コード領域に、図３における第一コード、第２コード、第３コードのそれぞれの値を設定する。その後、Ｓ１５０１へ進み、以降の処理を繰り返す。Ｓ１５０４で「入力」ボタンクリックと判定しなかった場合はＳ１５０６で、「一時停止」ボタンがクリックされたか否かの判定をする。すなわち、Ｓ１５０１で取得したイベントに、図３における「一時停止」ボタンを示すＩＤと、マウスの左ボタン操作が含まれるときは、「一時停止」ボタンクリックと判定する。Ｓ１５０６で「一時停止」ボタンクリックと判定した場合はＳ１５０７へ進み、ＣＰＵ２００を用い、利用可能な方法により、図３においてジョブリスト領域の反転表示されているレコードを検索し、見つかったレコードからジョブＩＤを取得する。次に、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で該当ジョブを指定し、ジョブの一時停止処理（ｐａｕｓｅ）を行う。その後、Ｓ１５０１へ戻り、以降の処理を繰り返す。
【００５１】
Ｓ１５０６で「一時停止」ボタンクリックと判定しなかった場合はＳ１５０８へ進み、「再開」ボタンがクリックされたか否かを判定する。すなわち、Ｓ１５０１で取得したイベントに、図３における「再開」ボタンを示すＩＤと、マウスの左ボタン操作が含まれるときは、「再開」ボタンクリックと判定する。Ｓ１５０８で「再開」ボタンクリックと判定した場合はＳ１５０９へ進み、ＣＰＵ２００を用い、利用可能な方法により、図３におけるジョブリスト領域の反転表示されているレコードを検索し、見つかったレコードからジョブＩＤを取得する。次に、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で該当ジョブを指定し、ジョブの再開（Ｒｅｓｕｍｅ）を行う。その後、Ｓ１５０１へ戻り、以降の処理を繰り返す。Ｓ１５０８で「再開」ボタンクリックと判定しなかった場合はＳ９１０へ進み、「削除」ボタンがクリックされたか否かを判定する。すなわち、Ｓ１５０１で取得したイベントに、図３における「削除」ボタンを示すＩＤと、マウスの左ボタン操作が含まれるときは、「削除」ボタンクリックと判定する。Ｓ１５１０で「削除」ボタンクリックと判定した場合はＳ１５１１へ進み、ＣＰＵ２００を用い、予め用意されている方法により、図３におけるジョブリスト領域の反転表示されているレコードを検索し、見つかったレコードからジョブＩＤを取得する。
【００５２】
次に、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で該当ジョブを指定し、ジョブの削除（Ｄｅｌｅｔｅ）を行う。その後、Ｓ１５０１へ戻り、以降の処理を繰り返す。Ｓ１５１０で「削除」ボタンクリックと判定しなかった場合はＳ１５１２へ進み、「更新」ボタンがクリックされたか否かを判定するする。すなわち、Ｓ１５０１で取得したイベントに、図３における「更新」ボタンを示すＩＤと、マウスの左ボタン操作が含まれるときは、「更新」ボタンクリックと判定する。Ｓ１５１２で「更新」ボタンクリックと判定した場合はＳ１５１３へ進み、ジョブ一覧を再取得する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＥｎｕｍＪｏｂ（）、Ｗｉｎ３２関数ＧｅｔＪｏｂ（）等や、印刷システム独自の手段を呼び出し、印刷ジョブおよび付属情報の一覧を取得する。取得したジョブ情報で、予めＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保されているジョブリストの情報を更新する。続いて、Ｓ１５１４へ進み、Ｓ１５１３で更新したジョブリスト情報を元に、図３におけるジョブリスト領域の表示を更新する。その後、Ｓ１５０１へ戻り、以降の処理を繰り返す。Ｓ１５１２において、「更新」ボタンクリックと判定しなかった場合は、Ｓ１５０１へ進み、以降の処理を繰り返す。
【００５３】
以上説明した方法によれば、印刷履歴管理システムがジョブを削除する場合でも、削除の処理のタイミングよりも前にアーカイブを行うこととなる。よって、ジョブアーカイブシステムは削除の処理に影響されること無く、ジョブをアーカイブすることが可能になる。
【００５４】
＜第二の実施形態＞
以下に第二の実施形態について図９、図１３、図１４、図１５、図１６、図１７、図１８を用いて説明する。第一の実施形態では、ジョブを削除する印刷履歴管理システムについて説明したが、第二の実施形態では、あるユーザにおける処理可能なジョブの上限値を超えたときにジョブを削除せず実行を停止するシステムへの適用を考える。ここでは、第一の実施形態と共通点も存在するため、異なる点のみ説明する。図１６、図１７、図１８のフローが第一の実施形態と異なる。また、第一の実施形態と同様、図６〜図８における処理の主体（スプーラ、ポートモニタ、印刷装置、スプーラ監視モジュール、アーカイブモジュール）はそれぞれ図１６〜図１８にも対応している。
【００５５】
図１６は、第二の実施形態にかかるジョブ開始時における、ポートモニタの基本動作を示すフローの一例である。第一の実施形態で述べた図１０に対応するフローとなっている。Ｓ１６０１で、フラグを初期化する。ここでのフラグとは、ジョブを保留するか否かを決定する「保留フラグ」、ジョブをアーカイブするか否かを決定する「アーカイブフラグ」、ジョブがアーカイブ済みか示す「アーカイブ済みフラグ」である。ＣＰＵ２００を用い、ＲＡＭ２０２等の記憶装置のワーク領域にジョブ毎に領域を確保し、各フラグに初期値「０」を設定し保存する。
【００５６】
次にＳ１６０２で、ジョブ制御の問い合わせをする。すなわち、利用可能な通信手段を用い、スプーラ監視モジュールおよびアーカイブモジュールに、ジョブの制御方法を問い合わせる。続いて、Ｓ１６０３で、ＣＰＵ２００を用いてＳ１６０２の問い合わせ結果に基づいてジョブの保留が必要か否かを判定する。Ｓ１６０３で、ジョブの保留が必要と判定したときはＳ１６０４へ進み、ＣＰＵ２００を用いて、ＲＡＭ２０２等の記憶領域に確保した保留フラグに１をセットし、保存する。その後、図９のＳ９０１へ戻る（Ｄ）。Ｓ１６０３で、ジョブの削除が必要と判定しなかったときは、Ｓ１６０５へ進み、ＣＰＵ２００を用いてＳ１６０２の問い合わせ結果に基づいて、ジョブのアーカイブが必要か否かを判定する。Ｓ１６０５で、ジョブのアーカイブが必要と判定したときは、Ｓ１６０６へ進み、ＣＰＵ２００を用いて、ＲＡＭ２０２等の記憶領域に確保したアーカイブフラグに１をセットし、保存する。その後、図９のＳ９０１へ戻る（Ｄ）。Ｓ１６０５で、ジョブのアーカイブが必要と判定しなかったときは、図９のＳ９０１へ戻る（Ｄ）。
【００５７】
図１７は、第二の実施形態にかかるジョブ送信時における、ポートモニタの基本動作を示すフローの一例である。第一の実施形態で述べた図１１に対応するフローとなっている。Ｓ１７０１で、該当ジョブに対しアーカイブが必要で、且つアーカイブ済みでないかを判定する。すなわちＣＰＵ２００を用い、ＲＡＭ２０２等の記憶領域に確保したワーク領域に確保されたフラグを検索し、該当ジョブのアーカイブフラグが「１」で、且つアーカイブ済みフラグが「０」ときは、該当ジョブに対しアーカイブが必要で、且つアーカイブ済みでないと判定する。Ｓ１７０１で該当ジョブがアーカイブ必要で、且つアーカイブ済みでないと判定した場合はＳ１７０２へ進み、ジョブをアーカイブする。すなわち、利用可能な通信手段により、ジョブをアーカイブモジュールに渡す。アーカイブモジュールは、受け取ったジョブを利用可能な方法によりアーカイブし、ＨＤ２０５等の記憶装置に確保した領域にアーカイブデータを保存する。Ｓ１７０１で該当ジョブに対しアーカイブ必要でない、または、アーカイブ済みと判定した場合はＳ１７０３へ進み、該当ジョブを送信せずに保留するか送信するかを判定する。すなわち、ＣＰＵ２００を用い、ＲＡＭ２０２等の記憶領域に確保したワーク領域に確保されたフラグを検索し、該当ジョブの保留フラグが１になっている場合は、送信の必要がなく保留すると判定し、図９のＳ９０１へ進む（Ｄ）。Ｓ１７０３で、保留せず、ジョブ送信が必要と判定した場合は、Ｓ１７０４へ進み、利用可能な方法によりジョブを印刷装置に送信する。次に、図９のＳ９０１へ進む（Ｄ）。
【００５８】
図１８は、第二の実施形態にかかるジョブ終了時における、ポートモニタの基本動作を示すフローの一例である。これは第一の実施形態における図１２に対応するフローである。Ｓ１８０１でジョブの保留が必要か否かを判定する。すなわちＣＰＵ２００を用い、ＲＡＭ２０２等の記憶領域に確保したワーク領域に確保されたフラグを検索し、該当ジョブのジョブ保留フラグが１になっている場合は、ジョブの保留が必要と判定する。Ｓ１８０１でジョブの保留が必要と判定した場合は、Ｓ１８０２へ進み、ジョブの保留を実行する。ポートモニタは、スプーラシステムにおいて利用可能な手段により、該当ジョブの一時停止、及び、リスタートを依頼する。例えば、Mｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているスプーラ関数ＳｅｔＪｏｂ（）にパラメータとして、該当ジョブのジョブハンドル用コマンドＪＯＢ＿ＣＯＮＴＲＯＬ＿ＰＡＵＳＥ、ＪＯＢ＿ＣＯＮＴＲＯＬ＿ＲＥＳＴＡＲＴを渡す等の方法により実現する。リスタートの後、Ｓ１８０３に進む。Ｓ１８０１でジョブの保留が必要でないと判定したときは、Ｓ１８０３へ進む。Ｓ１８０３では、ジョブがアーカイブ済みか否かを判定する。すなわち、ＣＰＵ２００を用い、ＲＡＭ２０２等の記憶領域に確保したワーク領域に確保されたフラグを検索し、該当ジョブのアーカイブフラグが１になっている場合は、ジョブのアーカイブが終了したと判定する。Ｓ１８０３でジョブがアーカイブ済みと判定したときは、Ｓ１８０４へ進み、アーカイブ済みフラグを１にセットする。すなわち、ＣＰＵ２００を用いて、ＲＡＭ２０２等の記憶領域に確保したアーカイブ済みフラグに１をセットし、保存する。その後、Ｓ１８０５へ進む。Ｓ１８０５においてアーカイブ済みで無いと判定したときは、Ｓ１８０５へ進む。Ｓ１８０５ではジョブ結果通知をスプーラ監視モジュールに対し行う。その後、図９のＳ９０１へ戻る（Ｄ）。
【００５９】
以上説明した方法によれば、ジョブの印刷を保留する場合においても、アーカイブシステムは保留の制御指示を受けたタイミングでジョブをアーカイブすることが可能になる。また、ジョブ保留後に印刷が実行された場合、再アーカイブする必要がなく、利便性が向上する。また、ジョブ処理再開後の印刷では、アーカイブすることがないので、アーカイブによる負荷が発生せず、印刷パフォーマンスの劣化が発生しない。
【００６０】
＜第三の実施形態＞
以下に第三の実施形態について図９、図１３、図１４、図１５、図１８、図１９、図２０を用いて説明する。第二の実施形態では、ジョブを保留する印刷履歴管理システムについて説明したが、第三の実施形態においては、ジョブデータを修正し片面印刷を強制的に両面印刷に変更する等、属性変更をするシステムへの適用を考える。第二の実施形態との共通点もあるため、ここでは第二の実施形態と異なる点のみ説明する。図１９、図２０のフローが第二の実施形態と異なる。また、第二の実施形態と同様、図６〜図８における処理の主体（スプーラ、ポートモニタ、印刷装置、スプーラ監視モジュール、アーカイブモジュール）はそれぞれ図１９、図２０にも対応している。
【００６１】
図１９は、第三の実施形態にかかるジョブ開始時における、ポートモニタの基本動作を示すフローの一例である。Ｓ１９０１で、フラグを初期化する。ここでのフラグとは、ジョブを保留するか否かを決定する「保留フラグ」、ジョブの属性変更を行うか否かを決定する「変更フラグ」、ジョブの属性変更済みかを示す「変更済みフラグ」、ジョブをアーカイブするか否かを決定する「アーカイブフラグ」、ジョブがアーカイブ済みか示す「アーカイブ済みフラグ」である。ＣＰＵ２００を用い、ＲＡＭ２０２等の記憶装置のワーク領域にジョブ毎に領域を確保し、各フラグに初期値「０」を設定し、保存する。次にＳ１９０２で、ジョブ制御の問い合わせをする。すなわち、利用可能な通信手段を用い、スプーラ監視モジュールおよびアーカイブモジュールに、ジョブの制御方法を問い合わせる。
【００６２】
次にＳ１９０３で、ＣＰＵ２００を用いてＳ１９０２の問い合わせ結果に基づいてジョブの保留が必要か否かを判定する。Ｓ１９０３で、ジョブの保留が必要と判定したときはＳ１９０４へ進み、ＣＰＵ２００を用いてＲＡＭ２０２等の記憶領域に確保した保留フラグに１をセットし、保存する。その後、図９のＳ９０１へ戻る（Ｄ）。Ｓ１９０３で、ジョブの保留が必要と判定しなかったときは、Ｓ１９０５へ進み、ＣＰＵ２００を用いてＳ１９０２の問い合わせ結果に基づいて、ジョブのアーカイブが必要か否かを判定する。Ｓ１９０５で、ジョブのアーカイブが必要と判定したときは、Ｓ１９０６へ進み、ＣＰＵ２００を用いてＲＡＭ２０２等の記憶領域に確保したアーカイブフラグに１をセットし、保存する。その後、図９のＳ９０１へ戻る（Ｄ）。Ｓ１９０５で、ジョブのアーカイブが必要と判定しなかったときは、Ｓ１９０７へ進み、ＣＰＵ２００を用いてＳ１９０２の問い合わせ結果に基づいて、ジョブの属性変更が必要か否かを判定する。Ｓ１９０７で、ジョブの属性変更が必要と判断したときは、Ｓ１９０８へ進み、ＣＰＵ２００を用いて、ＲＡＭ２０２等の記憶領域に確保した変更フラグに１をセットし、保存する。その後、図９のＳ９０１へ戻る（Ｄ）。Ｓ１９０７で、ジョブのアーカイブが必要と判定しなかったときは、図９のＳ９０１へ戻る（Ｄ）。
【００６３】
図２０は、第三の実施形態にかかるジョブ送信時における、ポートモニタの基本動作を示すフローの一例である。Ｓ２００１で、該当ジョブがジョブの属性変更が必要か否かを判定する。すなわちＣＰＵ２００を用い、ＲＡＭ２０２等の記憶領域に確保したワーク領域に確保されたフラグを検索し、該当ジョブの変更フラグが１になっているときは、該当ジョブの属性変更が必要であると判定する。Ｓ２００１で該当ジョブに対し属性変更が必要と判定した場合はＳ２００２で、ジョブの属性変更をする。すなわち、利用可能な通信手段により、ジョブの変更指示をスプーラ監視モジュール４０７から受ける。受けた変更指示に基づいて、スプーラ４０３から渡されたジョブに属性変更を実施する。例えば、ＣＰＵ２００を用い、スプーラ４０３から渡されたジョブ、または分割された一部のジョブを解析し、変更対象となる属性を検索し、必要に応じて更新する。属性変更をしたならば、ＲＡＭ２０２等の記憶領域に確保したワーク領域に確保された該当ジョブの変更済みフラグを「１」にセットする。その後、Ｓ２００３へ進む。Ｓ２００１で該当ジョブに対し属性変更が必要ないと判定した場合はＳ２００３へ進む。
【００６４】
Ｓ２００３では、該当ジョブに対しアーカイブが必要か否かを判定する。すなわちＣＰＵ２００を用い、ＲＡＭ２０２等の記憶領域に確保したワーク領域に確保されたフラグを検索し、該当ジョブのアーカイブフラグが「１」且つ、変更済みフラグが「１」またはアーカイブ済みフラグが「０」ときは、該当ジョブに対しアーカイブが必要であると判定する。Ｓ２００３で該当ジョブがアーカイブ必要と判定した場合はＳ２００４へ進み、ジョブをアーカイブする。すなわち、利用可能な通信手段により、ジョブをアーカイブモジュール５０７に渡す。アーカイブモジュール５０７は、受け取ったジョブを利用可能な方法によりアーカイブし、ＨＤ２０５等の記憶装置に確保した領域にアーカイブデータを保存する。Ｓ２００３で該当ジョブに対しアーカイブが必要でない、またはアーカイブ済みと判定した場合はＳ２００５で、該当ジョブを印刷装置へ送信するか、ジョブを保留して送信しないかを判定する。すなわち、ＣＰＵ２００を用い、ＲＡＭ２０２等の記憶領域に確保したワーク領域に確保されたフラグを検索し、該当ジョブの保留フラグが１になっている場合は、ジョブを保留し送信の必要がないと判定して、図９のＳ９０１へ戻る（Ｄ）。Ｓ２００５で、ジョブ送信が必要と判定した場合は、Ｓ２００６で利用可能な方法によりジョブを印刷装置に送信する。その後、図９のＳ９０１へ戻る（Ｄ）。
【００６５】
以上説明した方法によれば、ジョブ保留後にジョブ属性を変更した場合、ジョブ属性変更後の印刷データで再度アーカイブすることが可能になり、より実印刷を反映したジョブアーカイブを実現可能となる。
【００６６】
第一の実施形態では、印刷履歴管理システムがジョブを削除する場合でも、ジョブアーカイブシステムはジョブをアーカイブすることが可能になる。
【００６７】
第二の実施形態では、ジョブの印刷を保留する場合においても、アーカイブシステムは保留時にジョブをアーカイブすることが可能になる。また、ジョブ再開後に印刷が実行された場合、再アーカイブすることがなく、利便性が向上する。また、ジョブ再開後の印刷では、アーカイブすることがないので、アーカイブの負荷による印刷パフォーマンスの劣化が発生しない。
【００６８】
第三の実施形態では、ジョブ保留に伴ってジョブ属性を変更した場合、ジョブ属性変更後の印刷データを、再度アーカイブすることが可能になり、最終的に印刷した設定におけるジョブアーカイブを実現可能となる。
【００６９】
以上により、同一の印刷装置に対して複数の印刷処理を依頼したとしても、印刷制御装置の仕様上の制限を発生させず、保持データを漏れなく、且つ印刷速度低下を招かないシステムの提供するという目的を達成することが可能となる。
【００７０】
＜その他の実施形態＞
なお本発明は、複数の機器（例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００７１】
本発明の各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア（プログラム）をパソコン等の処理装置（ＣＰＵ、プロセッサ）にて実行することでも実現できる。
【図１】
2010204746.tif 000003
【図２】
2010204746.tif 000004
【図３】
2010204746.tif 000005
【図４】
2010204746.tif 000006
【図５】
2010204746.tif 000007
【図６】
2010204746.tif 000008
【図７】
2010204746.tif 000009
【図８】
2010204746.tif 000010
【図９】
2010204746.tif 000011
【図１０】
2010204746.tif 000012
【図１１】
2010204746.tif 000013
【図１２】
2010204746.tif 000014
【図１３】
2010204746.tif 000015
【図１４】
2010204746.tif 000016
【図１５】
2010204746.tif 000017
【図１６】
2010204746.tif 000018
【図１７】
2010204746.tif 000019
【図１８】
2010204746.tif 000020
【図１９】
2010204746.tif 000021
【図２０】
2010204746.tif 000022