(57)【要約】【課題】  多種多様なコマンドの中から適切なコマンドを選択してデバイスに与える処理を、コンピュータが実行できるようにすること。【解決手段】  被管理ＰＣ１は、プリンタ３の１２８４ＩＤを、プリンタ３から取得して、そのプリンタ３の機種を識別しておく。そして、それぞれにＰＪＬコマンドが格納された複数のレコードを持つテーブルの中から、１つのレコードを選択し（Ｓ３３１）、識別された機種に対応づけられたＰＪＬコマンドが格納されているか否かを調べ（Ｓ３３５〜Ｓ３３７）、格納されていれば（Ｓ３３７：ＹＥＳ）、そのレコードからＰＪＬコマンドを構成するためのコマンドとデータを読み出し（Ｓ３３９）、ＰＪＬコマンドとなる送信文字列を生成する（Ｓ３４１）。その結果、プリンタに送信されるＰＪＬコマンドは、プリンタに対応する適切なＰＪＬコマンドのみとなる。【選択図】  図７
2005190407.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータと該コンピュータに接続されたデバイスとを備え、前記デバイスが、該デバイスに関する情報であるデバイス情報を記憶する記憶手段と、前記デバイスの作動に伴って前記デバイス側で前記デバイス情報を更新する更新手段とを備えたシステムにおいて、前記コンピュータが前記デバイスから前記デバイス情報を取得する処理を、前記コンピュータに実行させるためのプログラムであって、
前記デバイスの機種を示す情報を、前記デバイスから取得して、該デバイスの機種を識別する識別手順と、
複数のコマンドの中から、前記識別手順によって識別された機種に対応づけられたコマンドを選択するコマンド選択手順と、
該コマンド選択手順によって選択されたコマンドを前記デバイスに送信することにより、前記デバイスに対して前記デバイス情報の提供を要求する情報要求手順と、
該情報要求手順によって送信されたコマンドに対する応答を受信することにより、前記デバイス情報を取得する情報取得手順と
を含むことを特徴とする情報取得処理プログラム。
【請求項２】
前記コマンドは、前記デバイス情報を特定する情報を含む
ことを特徴とする請求項１に記載の情報取得処理プログラム。
【請求項３】
前記デバイス情報は、前記デバイスの交換部品の使用度合に関する情報を含む
ことを特徴とする請求項１または請求項２に記載の情報取得処理プログラム。
【請求項４】
前記デバイス情報は、前記デバイスの消耗品の消耗度合に関する情報を含む
ことを特徴とする請求項１〜請求項３のいずれかに記載の情報取得処理プログラム。
【請求項５】
前記デバイス情報は、前記デバイスにおける異常の発生回数に関する情報を含む
ことを特徴とする請求項１〜請求項４のいずれかに記載の情報取得処理プログラム。
【請求項６】
前記コンピュータは、
複数のコマンドと、各コマンドに対する応答が可能な前記デバイスの機種を示す応答可能機種情報とを関連づけて格納するコマンド記憶手段を備えており、
前記コマンド選択手順は、
前記コマンド記憶手段内に格納されている前記応答可能機種情報を参照して、前記コマンド記憶手段内に格納されている複数のコマンドの中から、前記識別手順によって識別された機種に対応づけられたコマンドを選択する手順である
ことを特徴とする請求項１〜請求項５のいずれかに記載の情報取得処理プログラム。
【請求項７】
前記コマンド記憶手段は、
コマンド毎に前記応答可能機種情報を対応づけて格納したファイルであり、
前記コマンド選択手順は、
前記コマンド記憶手段内に格納されている複数のコマンドの中から、各コマンドおよび各コマンドに対応づけて格納された前記応答可能機種情報を抽出する抽出手順と、
該抽出手順で抽出された前記応答可能機種情報を参照して、前記抽出手順で抽出されたコマンドが、前記識別手順によって識別された機種による応答が可能なコマンドであるか否かを判定する判定手順と、
該判定手順により、前記抽出手順で抽出されたコマンドが、前記識別手順によって識別された機種による応答が可能なコマンドであると判定された場合に、当該コマンドを選択する選択手順と
を有する手順であることを特徴とする請求項６に記載の情報取得処理プログラム。
【請求項８】
前記コンピュータは、
複数のコマンドと、各コマンドに対する応答が不能な前記デバイスの機種を示す応答不能機種情報とを関連づけて格納するコマンド記憶手段を備えており、
前記コマンド選択手順は、
前記コマンド記憶手段内に格納されている前記応答不能機種情報を参照して、前記コマンド記憶手段内に格納されている複数のコマンドの中から、前記識別手順によって識別された機種に対応づけられたコマンドを選択する手順である
ことを特徴とする請求項１〜請求項５のいずれかに記載の情報取得処理プログラム。
【請求項９】
前記コマンド記憶手段は、
コマンド毎に前記応答不能機種情報を対応づけて格納したファイルであり、
前記コマンド選択手順は、
前記コマンド記憶手段内に格納されている複数のコマンドの中から、各コマンドおよび各コマンドに対応づけて格納された前記応答不能機種情報を抽出する抽出手順と、
該抽出手順で抽出された前記応答不能機種情報を参照して、前記抽出手順で抽出されたコマンドが、前記識別手順によって識別された機種による応答が不能な対応づけられたコマンドであるか否かを判定する判定手順と、
該判定手順により、前記抽出手順で抽出されたコマンドが、前記識別手順によって識別された機種による応答が不能なコマンドであると判定されなかった場合に、当該コマンドを選択する選択手順と
を有する手順であることを特徴とする請求項８に記載の情報取得処理プログラム。
【請求項１０】
コンピュータと該コンピュータに接続されたデバイスとを備え、前記デバイスが、該デバイスに関する情報であるデバイス情報を記憶する記憶手段と、前記デバイスの作動に伴って前記デバイス側で前記デバイス情報を更新する更新手段とを備えたシステムにおいて、前記コンピュータが前記デバイスから前記デバイス情報を取得する処理を、前記コンピュータに実行させるためのプログラムであって、
前記デバイスの機種を示す情報を、前記デバイスから取得して、該デバイスの機種を識別する識別手順と、
コマンドを前記デバイスに送信することにより、前記デバイスに対して前記デバイス情報の提供を要求する情報要求手順と、
該情報要求手順によって送信されたコマンドに対する応答を受信することにより、前記デバイス情報を取得する情報取得手順と、
前記識別手順において取得した前記デバイスの機種を示す情報と、前記コンピュータと前記デバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報と、前記情報取得手順において取得した前記デバイス情報とを、関連づけて格納するデバイス情報格納手順と
を含むことを特徴とする情報取得処理プログラム。
【請求項１１】
前記識別手順において、前記デバイスに対するアクセスができなかった場合に、該アクセスができなかった旨を示す情報と、前記コンピュータと前記デバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報とを、関連づけて格納するアクセスエラー情報格納手順
を含むことを特徴とする請求項１０に記載の情報取得処理プログラム。
【請求項１２】
前記情報要求手順において、コマンドを前記デバイスに送信できなかった場合に、該送信ができなかった旨を示す情報と、前記識別手順において取得した前記デバイスの機種を示す情報と、前記コンピュータと前記デバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報とを、関連づけて格納する送信エラー情報格納手順
を含むことを特徴とする請求項１０または請求項１１に記載の情報取得処理プログラム。
【請求項１３】
前記情報取得手順において、前記デバイスからの応答を受信できなかった場合に、該受信できなかった旨を示す情報と、前記識別手順において取得した前記デバイスの機種を示す情報と、前記コンピュータと前記デバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報とを、関連づけて格納する受信エラー情報格納手順
を含むことを特徴とする請求項１０〜請求項１２のいずれかに記載の情報取得処理プログラム。
【請求項１４】
デバイスが接続されており、前記デバイスが、該デバイスに関する情報であるデバイス情報を記憶する記憶手段と、前記デバイスの作動に伴って前記デバイス側で前記デバイス情報を更新する更新手段とを備えており、前記デバイスから前記デバイス情報を取得する処理を実行するコンピュータであって、
前記デバイスの機種を示す情報を、前記デバイスから取得して、該デバイスの機種を識別する識別手段と、
複数のコマンドの中から、前記識別手段によって識別された機種に対応づけられたコマンドを選択するコマンド選択手段と、
該コマンド選択手段によって選択されたコマンドを前記デバイスに送信することにより、前記デバイスに対して前記デバイス情報の提供を要求する情報要求手段と、
該情報要求手段によって送信されたコマンドに対する応答を受信することにより、前記デバイス情報を取得する情報取得手段と
を備えていることを特徴とするコンピュータ。
【請求項１５】
デバイスが接続されており、前記デバイスが、該デバイスに関する情報であるデバイス情報を記憶する記憶手段と、前記デバイスの作動に伴って前記デバイス側で前記デバイス情報を更新する更新手段とを備えており、前記デバイスから前記デバイス情報を取得する処理を実行するコンピュータであって、
前記デバイスの機種を示す情報を、前記デバイスから取得して、該デバイスの機種を識別する識別手段と、
コマンドを前記デバイスに送信することにより、前記デバイスに対して前記デバイス情報の提供を要求する情報要求手段と、
該情報要求手段によって送信されたコマンドに対する応答を受信することにより、前記デバイス情報を取得する情報取得手段と、
前記識別手段において取得した前記デバイスの機種を示す情報と、前記コンピュータと前記デバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報と、前記情報取得手段において取得した前記デバイス情報とを、関連づけて格納するデバイス情報格納手段と
を備えていることを特徴とするコンピュータ。
【請求項１６】
コンピュータと該コンピュータに接続されたデバイスとを備え、前記デバイスが、該デバイスに関する情報であるデバイス情報を記憶する記憶手段と、前記デバイスの作動に伴って前記デバイス側で前記デバイス情報を更新する更新手段とを備えており、前記コンピュータが前記デバイスから前記デバイス情報を取得する処理を実行するように構成されたシステムであって、
前記コンピュータは、
前記デバイスの機種を示す情報を、前記デバイスから取得して、該デバイスの機種を識別する識別手段と、
複数のコマンドの中から、前記識別手段によって識別された機種に対応づけられたコマンドを選択するコマンド選択手段と、
該コマンド選択手段によって選択されたコマンドを前記デバイスに送信することにより、前記デバイスに対して前記デバイス情報の提供を要求する情報要求手段と、
該情報要求手段によって送信されたコマンドに対する応答を受信することにより、前記デバイス情報を取得する情報取得手段と
を備えていることを特徴とする情報取得処理システム。
【請求項１７】
コンピュータと該コンピュータに接続されたデバイスとを備え、前記デバイスが、該デバイスに関する情報であるデバイス情報を記憶する記憶手段と、前記デバイスの作動に伴って前記デバイス側で前記デバイス情報を更新する更新手段とを備えており、前記コンピュータが前記デバイスから前記デバイス情報を取得する処理を実行するように構成されたシステムであって、
前記コンピュータは、
前記デバイスの機種を示す情報を、前記デバイスから取得して、該デバイスの機種を識別する識別手段と、
コマンドを前記デバイスに送信することにより、前記デバイスに対して前記デバイス情報の提供を要求する情報要求手段と、
該情報要求手段によって送信されたコマンドに対する応答を受信することにより、前記デバイス情報を取得する情報取得手段と、
前記識別手段において取得した前記デバイスの機種を示す情報と、前記コンピュータと前記デバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報と、前記情報取得手段において取得した前記デバイス情報とを、関連づけて格納するデバイス情報格納手段と
を備えていることを特徴とする情報取得処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータが、コンピュータに接続されたデバイスから、デバイス側で更新されるデバイス情報を取得する情報取得処理を、コンピュータに実行させるための情報取得処理プログラム、前記情報取得処理を実行するコンピュータ、および前記情報取得処理を実行するコンピュータと当該コンピュータに接続されたデバイスとを備えた情報取得処理システムに関する。
【背景技術】
【０００２】
従来、コンピュータが、当該コンピュータに接続されたデバイスから、当該デバイス側で管理、更新されるデバイス情報を取得する技術が知られている（例えば、下記特許文献１参照）。
【０００３】
下記特許文献１に記載の技術は、コンピュータが、当該コンピュータに接続された画像形成装置から、当該画像形成装置内で管理、更新される画像形成装置の状態に関する情報（＝デバイス情報）を取得し、取得した情報をネットワークを介して管理コンピュータに対して提供し、この情報の提供を受けた管理コンピュータが、ネットワーク上のコンピュータに接続された画像形成装置に関する情報を統括的に管理する、というものである。
【０００４】
また、コンピュータが、当該コンピュータに接続されたデバイスから、当該デバイスの機種を識別するための機種識別情報を取得する技術も知られている（例えば、下記特許文献２参照）。
【０００５】
下記特許文献２に記載の技術は、コンピュータが、当該コンピュータに接続された画像形成装置から、当該画像形成装置の機種を識別するための機種識別情報を取得し、取得した機種識別情報等をネットワークを介してサーバに送信し、この機種識別情報等の提供を受けたサーバが、画像形成装置の機種等に応じた最適なデバイスドライバを、コンピュータにダウンロードさせる、というものである。
【０００６】
なお、上記機種識別情報は、機種毎に決められている不変の情報なので、デバイス側で管理、更新されるデバイス情報には該当しない情報である。
【特許文献１】特開２０００−２９３３２４号公報
【特許文献２】特開２００２−２２９７５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上記特許文献１に記載の如き技術において利用される手法として、コンピュータが画像形成装置から情報を取得する際、コンピュータ側から画像形成装置側へプリンタジョブ言語（ＰＪＬ；Printer Job Language）で記述されたコマンド（以下、ＰＪＬコマンドともいう）を与え、画像形成装置側から返される情報をコンピュータ側でリードバックする、という手法が知られている。ＰＪＬは、画像形成装置が備える各種機能の制御を可能とするコマンド言語で、Hewlett-Packard社において開発され、その後他社でも採用された周知のものである。
【０００８】
ただし、このＰＪＬコマンドには、画像形成装置のメーカーや機種の違いに応じて独自拡張されて多種多様な仕様があり、すべての画像形成装置が、同一形式のＰＪＬコマンドに対応している訳ではない。
【０００９】
そのため、上記特許文献１に記載の技術において、ＰＪＬコマンドを利用する際、コンピュータが画像形成装置から所期の情報を取得するには、画像形成装置が情報を返すことができるような適切なＰＪＬコマンドを用いる必要性があるが、数多くのＰＪＬコマンドの中から適切なＰＪＬコマンドを選択する技術について、上記特許文献１には開示されていない。
【００１０】
また、上記特許文献２には、コンピュータが機種識別情報を取得する点が開示されているが、数多くのＰＪＬコマンドの中から適切なＰＪＬコマンドを選択する技術については、上記特許文献２にも記載されていない。
【００１１】
さらに、コンピュータが画像形成装置から所期の情報を取得できた場合、最終的には、その情報が表示ないし印刷されるなどして利用者に提供されるが、その際、システム内に同一機種である画像形成装置が複数存在していると、ある画像形成装置に関する情報として、その画像形成装置の機種および画像形成装置側で更新されるデバイス情報を提供するだけでは、複数存在する同一機種の画像形成装置のうち、どの画像形成装置についての情報なのかを、利用者が特定できなくなるという問題もある。
【００１２】
本発明は、上記諸問題を解決するためになされたものであり、その目的の一つは、多種多様なコマンドの中から適切なコマンドを選択してデバイスに与える処理を、コンピュータが実行できるようにすることにある。また、本発明の別の目的は、同一機種であるデバイスが複数存在していても、それら複数のデバイスに対応する情報がどれなのかを、利用者が容易に把握できるような情報を、利用者に対して提供することにある。
【課題を解決するための手段】
【００１３】
以下、本発明において採用した特徴的構成について説明する。
本発明の情報取得処理プログラムは、
コンピュータと該コンピュータに接続されたデバイスとを備え、前記デバイスが、該デバイスに関する情報であるデバイス情報を記憶する記憶手段と、前記デバイスの作動に伴って前記デバイス側で前記デバイス情報を更新する更新手段とを備えたシステムにおいて、前記コンピュータが前記デバイスから前記デバイス情報を取得する処理を、前記コンピュータに実行させるためのプログラムであって、
前記デバイスの機種を示す情報を、前記デバイスから取得して、該デバイスの機種を識別する識別手順と、
複数のコマンドの中から、前記識別手順によって識別された機種に対応づけられたコマンドを選択するコマンド選択手順と、
該コマンド選択手順によって選択されたコマンドを前記デバイスに送信することにより、前記デバイスに対して前記デバイス情報の提供を要求する情報要求手順と、
該情報要求手順によって送信されたコマンドに対する応答を受信することにより、前記デバイス情報を取得する情報取得手順と
を含むことを特徴とする。
【００１４】
この情報取得処理プログラムに従ってコンピュータが上記各手順を実行すると、コンピュータは、デバイスの機種を示す情報を、デバイスから取得して、そのデバイスの機種を識別し、識別された機種に対応づけられたコマンドを、複数のコマンドの中から選択する。そのため、複数のコマンド中に、あるデバイスに対応するコマンドと対応しないコマンドとが混在していても、そのデバイスに対応するコマンドだけが選択される。その結果、デバイスに送信されるコマンドは、デバイスに対応するコマンドのみとなり、送信したコマンドに対する応答を受信することで、所期のデバイス情報を取得することができる。
【００１５】
したがって、送信したコマンドについては、所期のデバイス情報を確実に取得することができる。また、デバイスに対応しないコマンドまでコンピュータが送信してしまうものとは異なり、コンピュータが無駄なデータ送信処理を行う必要が無い。さらに、デバイスに対応しないコマンドを送信した後、それに対する応答をコンピュータが受信するものとは異なり、コンピュータが無駄なデータ受信処理を行う必要が無い。
【００１６】
なお、以上説明した情報取得処理プログラムは、さらに次のような特徴を有するものであると望ましい。
まず、前記コマンドは、前記デバイス情報を特定する情報を含むものであるとよい。
【００１７】
このようなコマンドを送信する手順を備えた情報取得処理プログラムであれば、そのコマンドの送信先となるデバイスが、複数種のデバイス情報を返すことができるデバイスであっても、複数種のデバイス情報のうちの一つを特定することで、所期のデバイス情報のみを確実に取得することができる。したがって、コンピュータが、複数種のデバイス情報すべてをデバイスから取得した後で、その中から必要なデバイス情報と不要なデバイス情報とを取捨選択するような無駄な処理を行わなくてもよくなる。
【００１８】
また、前記デバイス情報は、前記デバイスの交換部品の使用度合に関する情報を含むものであるとよい。
このようなデバイス情報を取得する手順を備えた情報取得処理プログラムであれば、デバイスの交換部品の使用度合に関する情報が取得できるので、利用者が参照してメンテナンスの必要性を判断することができる。
【００１９】
また、前記デバイス情報は、前記デバイスの消耗品の消耗度合に関する情報を含むものであるとよい。
このようなデバイス情報を取得する手順を備えた情報取得処理プログラムであれば、デバイスの消耗品の消耗度合に関する情報が取得できるので、これも利用者が参照してメンテナンスの必要性を判断することができる。
【００２０】
また、前記デバイス情報は、前記デバイスにおける異常の発生回数に関する情報を含むものであるとよい。
このようなデバイス情報を取得する手順を備えた情報取得処理プログラムであれば、デバイスにおける異常の発生回数に関する情報が取得できるので、利用者が参照して、異常の発生原因の除去や修理の必要性の判断などを行うことができる。
【００２１】
また、前記コンピュータが、複数のコマンドと、各コマンドに対する応答が可能な前記デバイスの機種を示す応答可能機種情報とを関連づけて格納するコマンド記憶手段を備えている場合、前記コマンド選択手順は、前記コマンド記憶手段内に格納されている前記応答可能機種情報を参照して、前記コマンド記憶手段内に格納されている複数のコマンドの中から、前記識別手順によって識別された機種に対応づけられたコマンドを選択する手順であるとよい。
【００２２】
より具体的には、例えば、前記コマンド記憶手段が、コマンド毎に前記応答可能機種情報を対応づけて格納したファイルである場合、前記コマンド選択手順は、前記コマンド記憶手段内に格納されている複数のコマンドの中から、各コマンドおよび各コマンドに対応づけて格納された前記応答可能機種情報を抽出する抽出手順と、該抽出手順で抽出された前記応答可能機種情報を参照して、前記抽出手順で抽出されたコマンドが、前記識別手順によって識別された機種による応答が可能なコマンドであるか否かを判定する判定手順と、該判定手順により、前記抽出手順で抽出されたコマンドが、前記識別手順によって識別された機種による応答が可能なコマンドであると判定された場合に、当該コマンドを選択する選択手順とを有する手順であるとよい。
【００２３】
このようなコマンド選択手順を備えた情報取得処理プログラムであれば、新たなデバイスの発売や従来からあるデバイスの改良が行われたことに伴い、本情報取得処理プログラムの対象とする応答可能機種が増減した場合には、情報取得処理プログラムそのものを改良しなくても、情報取得処理プログラムとは別に用意されているコマンド記憶手段の内容を、増減した応答可能機種に合わせて更新することにより、応答可能機種の増減に対処することができる。なお、本構成は、応答可能機種が事前に把握できている場合に有益である。
【００２４】
一方、前記コンピュータが、複数のコマンドと、各コマンドに対する応答が不能な前記デバイスの機種を示す応答不能機種情報とを関連づけて格納するコマンド記憶手段を備えている場合、前記コマンド選択手順は、前記コマンド記憶手段内に格納されている前記応答不能機種情報を参照して、前記コマンド記憶手段内に格納されている複数のコマンドの中から、前記識別手順によって識別された機種に対応づけられたコマンドを選択する手順であるとよい。
【００２５】
より具体的には、例えば、前記コマンド記憶手段が、コマンド毎に前記応答不能機種情報を対応づけて格納したファイルである場合、前記コマンド選択手順は、前記コマンド記憶手段内に格納されている複数のコマンドの中から、各コマンドおよび各コマンドに対応づけて格納された前記応答不能機種情報を抽出する抽出手順と、該抽出手順で抽出された前記応答不能機種情報を参照して、前記抽出手順で抽出されたコマンドが、前記識別手順によって識別された機種による応答が不能な対応づけられたコマンドであるか否かを判定する判定手順と、該判定手順により、前記抽出手順で抽出されたコマンドが、前記識別手順によって識別された機種による応答が不能なコマンドであると判定されなかった場合に、当該コマンドを選択する選択手順とを有する手順であるとよい。
【００２６】
このようなコマンド選択手順を備えた情報取得処理プログラムであれば、新たなデバイスの発売や従来からあるデバイスの改良が行われたことに伴い、本情報取得処理プログラムの対象とする応答不能機種が増減した場合には、情報取得処理プログラムそのものを改良しなくても、情報取得処理プログラムとは別に用意されているコマンド記憶手段の内容を、増減した応答可能機種に合わせて更新することにより、応答不能機種の増減に対処することができる。特に、新たに発売されるデバイスの仕様に合わせたコマンドが考案された場合、そのコマンドに応答不能なデバイスが旧い特定の機種のみとなることは多々ある。したがって、そうした旧い特定の機種のみを指定したい場合に、本方式は有効である。なお、本構成は、上記のような旧い特定の機種のみを指定する場合も含め、応答不能機種が事前に把握できている場合に有益である。
【００２７】
また、本発明の情報取得処理プログラムは、
コンピュータと該コンピュータに接続されたデバイスとを備え、前記デバイスが、該デバイスに関する情報であるデバイス情報を記憶する記憶手段と、前記デバイスの作動に伴って前記デバイス側で前記デバイス情報を更新する更新手段とを備えたシステムにおいて、前記コンピュータが前記デバイスから前記デバイス情報を取得する処理を、前記コンピュータに実行させるためのプログラムであって、
前記デバイスの機種を示す情報を、前記デバイスから取得して、該デバイスの機種を識別する識別手順と、
コマンドを前記デバイスに送信することにより、前記デバイスに対して前記デバイス情報の提供を要求する情報要求手順と、
該情報要求手順によって送信されたコマンドに対する応答を受信することにより、前記デバイス情報を取得する情報取得手順と、
前記識別手順において取得した前記デバイスの機種を示す情報と、前記コンピュータと前記デバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報と、前記情報取得手順において取得した前記デバイス情報とを、関連づけて格納するデバイス情報格納手順と
を含むことを特徴とする。
【００２８】
この情報取得処理プログラムに従ってコンピュータが上記各手順を実行すると、コンピュータは、デバイスの機種を示す情報を、デバイスから取得して、そのデバイスの機種を識別し、また、コマンドをデバイスに送信することにより、デバイスに対してデバイス情報の提供を要求し、送信されたコマンドに対する応答を受信することにより、デバイス情報を取得する。そして、デバイスの機種を示す情報と、コンピュータとデバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報と、デバイス情報とを、関連づけて格納する。そのため、利用者は、格納されたデバイス情報を参照する際に、そのデバイス情報に関連づけられたデバイスの機種を示す情報および入出力Ｉ／Ｆを示す情報をも併せて参照することができる。
【００２９】
したがって、１台のコンピュータに接続された複数のデバイスの中に同じ機種が複数存在する場合であっても、あるデバイス情報がどのデバイスから取得した情報なのかを知りたい場合、利用者はデバイスの機種を示す情報および入出力Ｉ／Ｆを示す情報に基づいて、１つのデバイスを容易に特定することができる。
【００３０】
なお、以上説明した情報取得処理プログラムは、さらに次のような特徴を有するものであると望ましい。
まず、前記識別手順において、前記デバイスに対するアクセスができなかった場合に、該アクセスができなかった旨を示す情報と、前記コンピュータと前記デバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報とを、関連づけて格納するアクセスエラー情報格納手順を含むとよい。
【００３１】
この場合、利用者は、格納された情報を参照して、デバイスに対するアクセスができなかったことを知ることができ、特に、１台のコンピュータに接続された複数のデバイスが接続されている場合であっても、利用者は入出力Ｉ／Ｆを示す情報に基づいて、どの入出力Ｉ／Ｆに接続されているデバイスに対するアクセスができなかったのかを、容易に特定することができる。
【００３２】
また、前記情報要求手順において、コマンドを前記デバイスに送信できなかった場合に、該送信ができなかった旨を示す情報と、前記識別手順において取得した前記デバイスの機種を示す情報と、前記コンピュータと前記デバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報とを、関連づけて格納する送信エラー情報格納手順を含むとよい。
【００３３】
この場合、利用者は、格納された情報を参照して、コマンドをデバイスに送信できなかったことを知ることができ、特に、１台のコンピュータに接続された複数のデバイスの中に同じ機種が複数存在する場合であっても、利用者はデバイスの機種を示す情報および入出力Ｉ／Ｆを示す情報に基づいて、どの入出力Ｉ／Ｆに接続されているデバイスに対し、コマンドを送信できなかったのかを、容易に特定することができる。
【００３４】
また、前記情報取得手順において、前記デバイスからの応答を受信できなかった場合に、該受信できなかった旨を示す情報と、前記識別手順において取得した前記デバイスの機種を示す情報と、前記コンピュータと前記デバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報とを、関連づけて格納する受信エラー情報格納手順を含むとよい。
【００３５】
この場合、利用者は、格納された情報を参照して、デバイスからの応答を受信できなかったことを知ることができ、特に、１台のコンピュータに接続された複数のデバイスの中に同じ機種が複数存在する場合であっても、利用者はデバイスの機種を示す情報および入出力Ｉ／Ｆを示す情報に基づいて、どの入出力Ｉ／Ｆに接続されているデバイスからの応答を受信できなかったのかを、容易に特定することができる。
【００３６】
次に、本発明のコンピュータは、
デバイスが接続されており、前記デバイスが、該デバイスに関する情報であるデバイス情報を記憶する記憶手段と、前記デバイスの作動に伴って前記デバイス側で前記デバイス情報を更新する更新手段とを備えており、前記デバイスから前記デバイス情報を取得する処理を実行するコンピュータであって、
前記デバイスの機種を示す情報を、前記デバイスから取得して、該デバイスの機種を識別する識別手段と、
複数のコマンドの中から、前記識別手段によって識別された機種に対応づけられたコマンドを選択するコマンド選択手段と、
該コマンド選択手段によって選択されたコマンドを前記デバイスに送信することにより、前記デバイスに対して前記デバイス情報の提供を要求する情報要求手段と、
該情報要求手段によって送信されたコマンドに対する応答を受信することにより、前記デバイス情報を取得する情報取得手段と
を備えていることを特徴とする。
【００３７】
このコンピュータにおいて、識別手段は、デバイスの機種を示す情報を、デバイスから取得して、そのデバイスの機種を識別し、コマンド選択手段は、識別手段によって識別された機種に対応づけられたコマンドを、複数のコマンドの中から選択する。そのため、複数のコマンド中に、あるデバイスに対応するコマンドと対応しないコマンドとが混在していても、そのデバイスに対応するコマンドだけが選択される。その結果、情報要求手段によって、デバイスに送信されるコマンドは、デバイスに対応するコマンドのみとなり、情報取得手段が、送信したコマンドに対する応答を受信することで、所期のデバイス情報を取得することができる。
【００３８】
したがって、送信したコマンドについては、所期のデバイス情報を確実に取得することができる。また、デバイスに対応しないコマンドまでコンピュータが送信してしまうものとは異なり、コンピュータが無駄なデータ送信処理を行う必要が無い。さらに、デバイスに対応しないコマンドを送信した後、それに対する応答をコンピュータが受信するものとは異なり、コンピュータが無駄なデータ受信処理を行う必要が無い。
【００３９】
また、本発明のコンピュータは、
デバイスが接続されており、前記デバイスが、該デバイスに関する情報であるデバイス情報を記憶する記憶手段と、前記デバイスの作動に伴って前記デバイス側で前記デバイス情報を更新する更新手段とを備えており、前記デバイスから前記デバイス情報を取得する処理を実行するコンピュータであって、
前記デバイスの機種を示す情報を、前記デバイスから取得して、該デバイスの機種を識別する識別手段と、
コマンドを前記デバイスに送信することにより、前記デバイスに対して前記デバイス情報の提供を要求する情報要求手段と、
該情報要求手段によって送信されたコマンドに対する応答を受信することにより、前記デバイス情報を取得する情報取得手段と、
前記識別手段において取得した前記デバイスの機種を示す情報と、前記コンピュータと前記デバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報と、前記情報取得手段において取得した前記デバイス情報とを、関連づけて格納するデバイス情報格納手段と
を備えていることを特徴とする。
【００４０】
このコンピュータにおいて、識別手段は、デバイスの機種を示す情報を、デバイスから取得して、そのデバイスの機種を識別し、また、情報要求手段は、コマンドをデバイスに送信することにより、デバイスに対してデバイス情報の提供を要求し、情報取得手段が、送信されたコマンドに対する応答を受信することにより、デバイス情報を取得する。そして、情報格納手段が、デバイスの機種を示す情報と、コンピュータとデバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報と、デバイス情報とを、関連づけて格納する。そのため、利用者は、格納されたデバイス情報を参照する際に、そのデバイス情報に関連づけられたデバイスの機種を示す情報および入出力Ｉ／Ｆを示す情報をも併せて参照することができる。
【００４１】
したがって、１台のコンピュータに接続された複数のデバイスの中に同じ機種が複数存在する場合であっても、あるデバイス情報がどのデバイスから取得した情報なのかを知りたい場合、利用者はデバイスの機種を示す情報および入出力Ｉ／Ｆを示す情報に基づいて、１つのデバイスを容易に特定することができる。
【００４２】
さらに、本発明の情報取得処理システムは、
コンピュータと該コンピュータに接続されたデバイスとを備え、前記デバイスが、該デバイスに関する情報であるデバイス情報を記憶する記憶手段と、前記デバイスの作動に伴って前記デバイス側で前記デバイス情報を更新する更新手段とを備えており、前記コンピュータが前記デバイスから前記デバイス情報を取得する処理を実行するように構成されたシステムであって、
前記コンピュータは、
前記デバイスの機種を示す情報を、前記デバイスから取得して、該デバイスの機種を識別する識別手段と、
複数のコマンドの中から、前記識別手段によって識別された機種に対応づけられたコマンドを選択するコマンド選択手段と、
該コマンド選択手段によって選択されたコマンドを前記デバイスに送信することにより、前記デバイスに対して前記デバイス情報の提供を要求する情報要求手段と、
該情報要求手段によって送信されたコマンドに対する応答を受信することにより、前記デバイス情報を取得する情報取得手段と
を備えていることを特徴とする。
【００４３】
この情報取得処理システムにおいて、コンピュータは上記各手段を備えており、それら各手段のうち、識別手段は、デバイスの機種を示す情報を、デバイスから取得して、そのデバイスの機種を識別し、コマンド選択手段は、識別手段によって識別された機種に対応づけられたコマンドを、複数のコマンドの中から選択する。そのため、複数のコマンド中に、あるデバイスに対応するコマンドと対応しないコマンドとが混在していても、そのデバイスに対応するコマンドだけが選択される。その結果、情報要求手段によって、デバイスに送信されるコマンドは、デバイスに対応するコマンドのみとなり、情報取得手段が、送信したコマンドに対する応答を受信することで、所期のデバイス情報を取得することができる。
【００４４】
したがって、送信したコマンドについては、所期のデバイス情報を確実に取得することができる。また、デバイスに対応しないコマンドまでコンピュータが送信してしまうものとは異なり、コンピュータが無駄なデータ送信処理を行う必要が無い。さらに、デバイスに対応しないコマンドを送信した後、それに対する応答をコンピュータが受信するものとは異なり、コンピュータが無駄なデータ受信処理を行う必要が無い。
【００４５】
また、本発明の情報取得処理システムは、
コンピュータと該コンピュータに接続されたデバイスとを備え、前記デバイスが、該デバイスに関する情報であるデバイス情報を記憶する記憶手段と、前記デバイスの作動に伴って前記デバイス側で前記デバイス情報を更新する更新手段とを備えており、前記コンピュータが前記デバイスから前記デバイス情報を取得する処理を実行するように構成されたシステムであって、
前記コンピュータは、
前記デバイスの機種を示す情報を、前記デバイスから取得して、該デバイスの機種を識別する識別手段と、
コマンドを前記デバイスに送信することにより、前記デバイスに対して前記デバイス情報の提供を要求する情報要求手段と、
該情報要求手段によって送信されたコマンドに対する応答を受信することにより、前記デバイス情報を取得する情報取得手段と、
前記識別手段において取得した前記デバイスの機種を示す情報と、前記コンピュータと前記デバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報と、前記情報取得手段において取得した前記デバイス情報とを、関連づけて格納するデバイス情報格納手段と
を備えていることを特徴とする。
【００４６】
この情報取得処理システムにおいて、コンピュータは上記各手段を備えており、それら各手段のうち、識別手段は、デバイスの機種を示す情報を、デバイスから取得して、そのデバイスの機種を識別し、また、情報要求手段は、コマンドをデバイスに送信することにより、デバイスに対してデバイス情報の提供を要求し、情報取得手段が、送信されたコマンドに対する応答を受信することにより、デバイス情報を取得する。そして、情報格納手段が、デバイスの機種を示す情報と、コンピュータとデバイスとの接続に用いられている入出力Ｉ／Ｆを示す情報と、デバイス情報とを、関連づけて格納する。そのため、利用者は、格納されたデバイス情報を参照する際に、そのデバイス情報に関連づけられたデバイスの機種を示す情報および入出力Ｉ／Ｆを示す情報をも併せて参照することができる。
【００４７】
したがって、１台のコンピュータに接続された複数のデバイスの中に同じ機種が複数存在する場合であっても、あるデバイス情報がどのデバイスから取得した情報なのかを知りたい場合、利用者はデバイスの機種を示す情報および入出力Ｉ／Ｆを示す情報に基づいて、１つのデバイスを容易に特定することができる。
【発明の効果】
【００４８】
以上説明したとおり、本発明によれば、多種多様なコマンドの中から適切なコマンドを選択してデバイスに与える処理を、コンピュータが実行できるようにすることが可能である。
【００４９】
また、本発明によれば、同一機種であるデバイスが複数存在していても、それら複数のデバイスに対応する情報がどれなのかを、利用者が容易に把握できるような情報を、利用者に対して提供することができる。
【発明を実施するための最良の形態】
【００５０】
次に、本発明の実施形態について一例を挙げて説明する。
図１は、複数のパーソナルコンピュータを、ＬＡＮ（Local Area Network）を介して相互に接続したネットワークシステムを示すブロック図である。
【００５１】
本発明の実施形態として例示する情報取得処理システムは、パーソナルコンピュータ１、１’、１”…上において作動するシステムとして構成され、パーソナルコンピュータ１、１’、１”…に接続されたデバイスであるプリンタ３、３’、３”…から、各３、３’、３”…において管理、更新されているプリンタ情報（本発明でいうデバイス情報）を取得する処理を行うようになっている。
【００５２】
また、本実施形態において、パーソナルコンピュータ１、１’、１”…は、パーソナルコンピュータ２からの要求に応じて、プリンタ３、３’、３”…から取得したプリンタ情報を、パーソナルコンピュータ２に対して提供するようになっている。そして、パーソナルコンピュータ２は、パーソナルコンピュータ１、１’、１”…から提供されるプリンタ情報を取得し、ネットワーク上のパーソナルコンピュータ１、１’、１”…に接続されたプリンタ３、３’、３”…のプリンタ情報を管理する。
【００５３】
なお、以下の説明においては、プリンタ情報を管理するパーソナルコンピュータ２を管理ＰＣ２、管理ＰＣ２によって管理されるパーソナルコンピュータ１、１’、１”…を被管理ＰＣ１、１’、１”…と称する。
【００５４】
被管理ＰＣ１は、図２に示すように、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３等を中心に構成された制御部１０１と当該制御部１０１と各種デバイスとを接続するためのＩ／Ｆ部１０２とを備えてなる本体部１１、キーボードやポインティングデバイスなどの入力部１２、ディスプレイなどの表示部１３、およびハードディスクなどの補助記憶部１４を備えている。
【００５５】
本体部１１には、ＯＳ（Operating System）としてＷｉｎｄｏｗｓ（登録商標）が搭載され、プリンタＩ／Ｆ機能部１２１、ＬＡＮＩ／Ｆ機能部１２２、印刷スプーラ１２３など、アプリケーションから共通して利用される機能は、ＯＳの一部として実装されたソフトウェアモジュールによって構成されている。また、この他、キーボード入力、画面出力といった入出力機能やハードディスクやメモリの管理などの機能もＯＳによって提供される。なお、同等の機能を実現できれば、被管理ＰＣ１には、他のＯＳ（例えば、Ｌｉｎｕｘ（登録商標）、ＭａｃＯＳ（登録商標）等）が搭載されていても構わないが、以下の説明においては、被管理ＰＣ１が、Ｗｉｎｄｏｗｓ（登録商標）によって提供される各種機能を有するとの前提で説明を続ける。
【００５６】
本体部１１のＩ／Ｆ部１０２としては、上述の入力部１２、表示部１３、および補助記憶部１４とのＩ／Ｆの他、ＬＡＮカードなどのＬＡＮ  Ｉ／Ｆ１１４、ＵＳＢ（Universal Serial Bus）ポートあるいはパラレルポートなどのプリンタＩ／Ｆ１１５が設けられ、ＬＡＮ  Ｉ／Ｆ１１４に接続されたＬＡＮケーブルを介して被管理ＰＣ１はＬＡＮに接続され、プリンタＩ／Ｆ１１５に接続されたプリンタケーブルを介して被管理ＰＣ１とプリンタ３とが接続されている。
【００５７】
この被管理ＰＣ１には、被管理ＰＣ１に接続されたプリンタ３からプリンタ情報を取得し、そのプリンタ情報を管理ＰＣ２に対して提供する機能を実現するためのソフトウェアがインストールされ、このソフトウェアがＣＰＵ１１１上で動作することにより、プリンタ情報取得部１２４として機能するように構成されている。
【００５８】
なお、被管理ＰＣ１’、１”…は、被管理ＰＣ１と同様に構成され、被管理ＰＣ１と同等の機能を有するものなので、詳細な説明を省略する。
管理ＰＣ２も、基本的には被管理ＰＣ１と同様に構成されたものであり、本体部２１、入力部２２、表示部２３、補助記憶部２４等を備え、本体部２１には、ＯＳとしてＷｉｎｄｏｗｓ（登録商標）が搭載されている。管理ＰＣ２についても、同等の機能を実現できれば、他のＯＳ（例えば、Ｌｉｎｕｘ（登録商標）、ＭａｃＯＳ（登録商標）等）が搭載されていても構わないが、以下の説明においては、管理ＰＣ２が、Ｗｉｎｄｏｗｓ（登録商標）によって提供される各種機能を有するとの前提で説明を続ける。
【００５９】
この管理ＰＣ２には、被管理ＰＣ１、１’、１”…等のネットワーク上のコンピュータに対し、それら各コンピュータに接続されたプリンタ３、３’、３”…に関する情報の提供を要求するとともに、その要求に応じて他のコンピュータから提供されるプリンタ情報を一括して管理する機能を実現するためのソフトウェアがインストールされている。
【００６０】
プリンタ３、３’、３”…は、管理ＰＣ２による管理対象となる被管理プリンタである。これらプリンタ３、３’、３”…は、いずれもプリンタジョブ言語（ＰＪＬ；Printer Job Language）に対応したものである。
【００６１】
また、このプリンタ３、３’、３”…は、前記プリンタＩ／Ｆ１１５を介して、IEEE1284デバイスＩＤ（以下、１２８４ＩＤと称す）を、被管理ＰＣ１、１’、１”…に返すことができる。この１２８４ＩＤは、Ｉ／Ｆがパラレルの場合には、IEEE1284規格により規定されており、また、Ｉ／ＦがＵＳＢの場合には、ＵＳＢプリンタクラス仕様により規定されている公知のものである。
【００６２】
次に、被管理ＰＣ１において実行されるプリンタ情報取得部１２４の処理について、図３のフローチャートに基づいて説明する。この処理は、被管理ＰＣ１の起動に伴って開始される処理である。なお、この処理は、被管理ＰＣ１’、１”…においても同様に実行されるが、ここでは被管理ＰＣ１において実行される処理を例に挙げながら説明を続ける。
【００６３】
本処理を開始すると、被管理ＰＣ１は、まず、プリンタが接続されているローカルポートのリストを作成する（Ｓ１０１）。この処理では、被管理ＰＣ１に接続されているすべてのプリンタ（本実施形態の場合、プリンタ３）に対応するすべてのローカルポートがリストに登録される。続いて、Ｓ１０１の処理で作成されたリストから、１つのローカルポートを抽出して（Ｓ１０３）、抽出されたローカルポートに対応する処理スレッドを作成する（Ｓ１０５）。これらＳ１０３およびＳ１０５の処理は、上記リストに登録されたローカルポートの総数に対応する回数だけ繰り返される（Ｓ１０７：ＮＯ）。その結果、本処理の他に、ローカルポート総数と同数の処理スレッドにおける処理が並列に実行される状態になる。なお、新たに作成された処理スレッドでは、各処理スレッドの対象ローカルポートを介して接続されたプリンタからプリンタ情報（例えば、ドラム交換時期など、交換部品の使用度合に関する情報、トナーないしインク残量、記録用紙残量など、消耗品の消耗度合に関する情報、紙詰まり回数など、異常の発生回数に関する情報、その他プリンタ３側において管理、更新される各種情報）を取得して、データベース（以下、ＤＢと略称する）である補助記憶部１４内の結果ファイル１３３に記録する処理などが行われるが、詳しい処理内容については後述する。
【００６４】
さて、ローカルポート総数と同数の処理スレッドを作成したら（Ｓ１０７：ＹＥＳ）、続いて、設定ファイル１３４から設定時刻を読み取って、設定時刻までの時間を計算し（Ｓ１０９）、Ｓ１０９の処理で算出した時間をタイマーにセットする（Ｓ１１１）。設定ファイル１３４は、補助記憶部１４内に記憶されているファイルであり、この設定ファイル１３４には、管理者が任意に設定する設定時刻が記録されている。このタイマーは、Ｓ１１１の処理後、Ｓ１０９の処理で算出した時間が経過するとタイマーイベントを発生させる。
【００６５】
続いて、被管理ＰＣ１は、関連イベントの発生を待ち（Ｓ１１３）、発生したイベントがプリンタ追加イベントであれば（Ｓ１１５：ＹＥＳ）、ローカルポートをリストに追加して（Ｓ１１７）、追加されたローカルポートに対応する処理スレッドを作成する（Ｓ１１９）。プリンタ追加イベントは、例えば周知のプラグアンドプレイ機能等により、プリンタの電源ＯＮやケーブルの挿し込みを検出した場合に発生するイベントである。このプリンタ追加イベントの発生により、新たに利用可能なプリンタが追加されたことがわかり、そのプリンタが接続されているローカルポートもわかる。そこで、Ｓ１１７およびＳ１１９の処理により、リストを更新するとともに、リストに追加されたローカルポートに対応する処理スレッドを作成することにより、Ｓ１０５の処理において作成した処理スレッドと同等の処理を行う処理スレッドを追加する。なお、Ｓ１１９の処理を終えたらＳ１１３の処理へと戻る。
【００６６】
一方、Ｓ１１５の処理による判定の結果、発生したイベントがプリンタ追加イベントでなかった場合（Ｓ１１５：ＮＯ）、発生したイベントがタイマーイベントであれば（Ｓ１２１：ＹＥＳ）、読み込み／ＤＢ化処理２を実行する（Ｓ１２３）。ここで発生するタイマーイベントは、先に説明したＳ１０９およびＳ１１１の処理によるものである。Ｓ１２３の読み込み／ＤＢ化処理２では、被管理ＰＣ１に接続されているすべてのプリンタから状態を取得してデータベース（ＤＢ）に記録する処理などが行われるが、詳しい処理内容については後述する。そして、タイマーに２４時間をセットして（Ｓ１２５）、２４時間後に再びタイマーイベントが発生する状態とし、Ｓ１１３の処理へと戻る。
【００６７】
また、Ｓ１２１の処理による判定の結果、発生したイベントがタイマーイベントでなかった場合（Ｓ１２１：ＮＯ）、発生したイベントが終了指示イベントであれば（Ｓ１２７：ＹＥＳ）、本処理を終了する。終了指示イベントは、利用者が入力部１２を利用して所定の終了操作を行った際に発生するイベントである。一方、終了指示イベントでなければ（Ｓ１２７：ＮＯ）、Ｓ１１３の処理へと戻り、再び関連イベントの発生を待つ状態になる。すなわち、被管理ＰＣ１が作動状態にある場合、利用者が終了操作を行わない限り、本処理が終了することはなく、本処理は被管理ＰＣ１上の常駐プロセスとして実行され続けることになる。
【００６８】
さて、次に上記Ｓ１０５およびＳ１１９の各処理において作成される処理スレッドの処理（以下、スレッド処理という）について、図４のフローチャートに基づいて説明する。このスレッド処理は、上述の通り、プリンタが接続されているローカルポートの総数と同数が並列に実行され、それら複数のスレッド処理は、それぞれが一つのローカルポートに対応するスレッド処理となっている。
【００６９】
このスレッド処理を開始すると、被管理ＰＣ１は、プリンタ関連イベントの発生を待ち（Ｓ２０１）、発生したイベントが印字終了イベントであれば（Ｓ２０３：ＹＥＳ）、本スレッド処理に対応するプリンタを出力先とする印字ジョブを列挙する（Ｓ２０５）。具体的には、プリンタ情報取得部１２４が印刷スプーラ１２３（図２参照）から情報を取得し、Ｓ２０５の処理時点においてキュー１３１に入れられている印字ジョブに関する情報（印字ジョブ情報）がリストアップされる。キュー１３１は、１つのプリンタに対してリクエストされた印字ジョブが補助記憶部１４（あるいはＲＡＭ１１３）に記憶され、ＯＳによって順序づけて管理された集合体である。そして、リストアップされた印字ジョブ情報を参照してジョブ数を計数し（Ｓ２０７）、そのジョブ数が設定値Ｎ以下かどうかをチェックする（Ｓ２０９）。
【００７０】
本実施形態においては、設定値Ｎ＝０とされており、Ｓ２０９の処理ではジョブ数が０かどうかがチェックされることになる。ジョブ数が０かどうかをチェックするための具体的な手順は、最も基本的には、Ｓ２０５の処理によってリストアップされた印字ジョブ情報の数が０であるかどうかを調べるだけでもよい。ただし、本実施形態の場合、Ｓ２０５の処理によってリストアップされる印字ジョブ情報内には、ジョブステータスという項目があり、一つの印字ジョブにおいて出力データの送信が完了すると、まずジョブステータスに「送信済み」という情報がセットされ、その後、ＯＳ側で管理する所定のタイミングで印字ジョブ情報そのものが消去されるようになっている。そのため、Ｓ２０５の処理によってリストアップされた印字ジョブ情報が１つだけ存在する場合でも、その印字ジョブ情報内のジョブステータスに「送信済み」という情報がセットされていれば、該当するジョブは既に存在しないものと見なすことができる。そこで、本実施形態におけるＳ２０９の処理では、リストアップされた印字ジョブ情報の数が０の場合はもちろんのこと、印字ジョブ情報の数が１の場合でも、印字ジョブ情報内のジョブステータスが「送信済み」となっていれば、ジョブ数が０であると判定する。
【００７１】
Ｓ２０９の処理において、ジョブ数が設定値Ｎ以下の場合（Ｓ２０９：ＹＥＳ）、被管理ＰＣ１は、機種判定・ＤＢ書込処理を実行する（Ｓ２１１）。このＳ２１１の機種判定・ＤＢ書込処理は、詳しくは図５のフローチャートに示すような処理になる。
【００７２】
機種判定・ＤＢ書込処理を開始すると、被管理ＰＣ１は、まず、先に説明した１２８４ＩＤを対象プリンタから取得する（Ｓ２３１）。このＳ２３１の処理では、対象プリンタがデバイスＩＤをサポートしているプリンタであれば、そのプリンタから１２８４ＩＤを取得することができる。一方、IEEE1284規格に準拠していないプリンタや、IEEE1284規格に準拠していてもデバイスＩＤをサポートしていないプリンタの場合、そのプリンタから１２８４ＩＤを取得することはできない。
【００７３】
そこで、被管理ＰＣ１は、１２８４ＩＤの取得に失敗したかどうかをチェックし（Ｓ２３３）、失敗していなければ（Ｓ２３３：ＮＯ）、非対象プリンタかどうかをチェックする（Ｓ２３５）。被管理ＰＣ１は、本システムによる管理対象として想定しているプリンタの機種すべてについての１２８４ＩＤを登録したリストを備えており、取得した１２８４ＩＤがリスト中に登録されていれば、対象プリンタであると判定し、取得した１２８４ＩＤがリスト中に登録されていなければ、非対象プリンタであると判定する。
【００７４】
Ｓ２３５の処理において、対象プリンタであった場合は（Ｓ２３５：ＮＯ）、読み取り／ＤＢ化処理１を実行する（Ｓ２３７）。このＳ２３７の読み取り／ＤＢ化処理１は、詳しくは図６のフローチャートに示すような処理になる。
【００７５】
読み取り／ＤＢ化処理１を開始すると、被管理ＰＣ１は、まず、対象プリンタをオープンする（Ｓ３０１）。この際に、ＵＥＬコマンドが印刷スプーラ１２３を介して対象プリンタに送られる。この処理により、対象プリンタは、ＰＪＬコマンドを処理可能となる。そして、被管理ＰＣ１は、コマンドファイル１３２からのコマンド取り出し処理を実行する（Ｓ３０５）。このＳ３０５のコマンド取り出し処理は、詳しくは図７のフローチャートに示すような処理になる。
【００７６】
コマンド取り出し処理を開始すると、被管理ＰＣ１は、まず、テーブルの次行を選択する（Ｓ３３１）。Ｓ３３１の処理において読み出し対象となるテーブルは、コマンドファイル１３２に格納されているテーブルである。コマンドファイル１３２には、図８に示すようなデータ形式のテーブルが格納されており、このテーブルの１行は、機種項、コマンド項、キー項、ラベル項によって構成されている。
【００７７】
機種項は、同じ行内のコマンド項およびキー項に格納された文字列から生成されるＰＪＬコマンドについて、当該ＰＪＬコマンドに対する応答を返すことができる機種（以下、対応機種という）の情報を格納する領域である。より具体的には、機種項には、“＊”、“￥”、“−”、および「機種名を示す文字列」の組み合わせにより、対応機種に関する情報が格納されている。これらのうち、“＊”はすべての機種を表し、“￥”は「機種名を示す文字列」を複数列挙する際に用いるデリミタとして用いられ、“−”は後続する「機種名を示す文字列」が、その前に挙げられた対応機種から除外される機種であることを示す。例えば、図８に示すテーブルの１行目にある“Ｄｅｖｉｃｅ１￥Ｄｅｖｉｃｅ２”は、機種“Ｄｅｖｉｃｅ１”と機種“Ｄｅｖｉｃｅ２”が対応機種であることを示している。また、同図に示すテーブルの２行目にある“＊−Ｄｅｖｉｃｅ１￥Ｄｅｖｉｃｅ２”は、すべての機種から機種“Ｄｅｖｉｃｅ１”と機種“Ｄｅｖｉｃｅ２”を除外したものが対応機種であることを示している。さらに、同図に示すテーブルの３、４行目にある“＊”は、すべての機種が対応機種であることを示している。なお、“＊”と“−”に後続しない「機種名を示す文字列」が、本発明でいう応答可能機種情報に相当し、“−”に後続する「機種名を示す文字列」が、本発明でいう応答不能機種情報に相当する。
【００７８】
コマンド項およびキー項は、ＰＪＬコマンドを生成するために使われる文字列を格納する領域である。ＰＪＬコマンドを生成する際には、“＠ＰＪＬ  「コマンド項の文字列」  「キー項の文字列」”という形式でＰＪＬコマンドを生成することになる。例えば、図８に示すテーブルの１行目にあるデータからＰＪＬコマンドを生成する場合であれば、“＠ＰＪＬ  ＩＮＦＯ  ＰＡＧＥＳ”というＰＪＬコマンドが生成される。
【００７９】
ラベル項は、同じ行内のコマンド項およびキー項に格納された文字列から生成されるＰＪＬコマンドについて、当該ＰＪＬコマンドによって取得されるプリンタ情報の内容を表す文字列を格納する領域である。なお、このラベル項に格納された文字列は、後述するＳ３５３〜Ｓ３５５の処理において利用される。
【００８０】
なお、図８に示すようなデータ形式のテーブルは、多くの場合、ＣＳＶ（Comma Separated Values）形式などの汎用性が高いデータ構造を持つファイルとして格納されるが、実質的に同等のデータを読み書きできるものであれば、データを格納したファイルの物理的構造や論理的構造については任意である。
【００８１】
上記Ｓ３３１の処理では、テーブルから１行もデータが読み出されていなければ、テーブルの１行目が次行として選択され、既にテーブルのｎ行目までデータが読み出されていれば、テーブルのｎ＋１行目が次行として選択され、既にテーブルの最終行までデータが読み出されていれば、全行終了ということになる。
【００８２】
全行終了でない場合（Ｓ３３３：ＮＯ）、選択された１行を対象にしてテーブルから機種項を読み出す（Ｓ３３５）。そして、機種項に格納されていた文字列を解析し、先にＳ２３１の処理で取得した１２８４ＩＤの示す機種を含むか否かをチェックする（Ｓ３３７）。例えば、図８に示すテーブルの１行目を対象とする場合、Ｓ３３５の処理では、文字列“Ｄｅｖｉｃｅ１￥Ｄｅｖｉｃｅ２”が読み出されるので、先に取得した１２８４ＩＤの示す機種が、“Ｄｅｖｉｃｅ１”または“Ｄｅｖｉｃｅ２”であれば、Ｓ３３７の処理では、１２８４ＩＤの示す機種を含むとの判定がなされる。
【００８３】
Ｓ３３７の処理において、１２８４ＩＤの示す機種を含む場合（Ｓ３３７：ＹＥＳ）、選択された１行を対象にして順次コマンド（＝コマンド項に格納された文字列）とデータ（キー項に格納された文字列）とを読み出し（Ｓ３３９）、送信文字列を生成する（Ｓ３４１）。例えば、図８に示すテーブルの１行目を対象とする場合、Ｓ３３９の処理では、文字列“ＩＮＦＯ”と文字列“ＰＡＧＥＳ”が読み出され、Ｓ３４１の処理では“＠ＰＪＬ  ＩＮＦＯ  ＰＡＧＥＳ”という送信文字列（ＰＪＬコマンド）が生成される。
【００８４】
また、Ｓ３３７の処理において、１２８４ＩＤの示す機種を含まない場合は（Ｓ３３７：ＮＯ）、Ｓ３３１の処理へと戻り、再びＳ３３１〜Ｓ３３７の処理が繰り返されることになる。そして、この繰り返し処理の中で何回か実行されるＳ３３７の処理において、１２８４ＩＤの示す機種を含むと判定された場合も（Ｓ３３７：ＹＥＳ）、上記Ｓ３３９およびＳ３４１の処理を実行する。
【００８５】
そして、上記Ｓ３３９およびＳ３４１の処理を実行した場合か、もしくは、Ｓ３３１〜Ｓ３３７の処理を何回か繰り返した結果、Ｓ３３３の処理において全行終了となった場合は（Ｓ３３３：ＹＥＳ）、本処理を終了する。
【００８６】
こうしてＳ３３１〜Ｓ３４１の処理を終えると、図６に示したＳ３０３の処理を終えたことになるので、続いて、被管理ＰＣ１は、全コマンド終了か否かをチェックする（Ｓ３０５）。ここで全コマンド終了と判定されるのは、上記Ｓ３３３の処理において全行終了（Ｓ３３３：ＹＥＳ）となった場合であり、これ以外の場合は、上記Ｓ３３９およびＳ３４１の処理により、送信文字列（ＰＪＬコマンド）が生成されている。
【００８７】
そこで、全コマンド終了でない場合は（Ｓ３０５：ＮＯ）、生成した送信文字列（ＰＪＬコマンド）をプリンタに送信する（Ｓ３０７）。このＳ３０７の処理で送信されるデータは、プリンタ情報取得部１２４により印刷スプーラ１２３に渡され、一つの印字ジョブとしてキュー１３１に入れられ、後は通常の印字ジョブと同様に処理されて、印刷スプーラ１２３によりプリンタＩ／Ｆ機能部１２１（図２参照）に渡され、プリンタ側へと出力される。
【００８８】
続いて、送信が成功したか否かをチェックし（Ｓ３０９）、送信成功であれば（Ｓ３０９：ＹＥＳ）、対象プリンタから送信されてくる情報（プリンタ情報）を受信する（Ｓ３１１）。このＳ３１１の処理は、被管理ＰＣ１側においてプリンタ側から返されるプリンタ情報をリードバックする処理であるが、より具体的な処理方法は対象プリンタによっても異なる。例えば、対象プリンタがパラレルＩ／Ｆを介して接続されている場合は、プリンタ情報取得部１２４がＯＳのプリンタＩ／Ｆ機能部１２１を通じて、まず被管理ＰＣ１側へ返される情報の有無をチェックした後、情報が存在する場合にその情報の受信を行う。また、対象プリンタがＵＳＢ  Ｉ／Ｆを介して接続されている場合は、プリンタ情報取得部１２４がＯＳのプリンタＩ／Ｆ機能部１２１を通じて、まず情報の受信を行った後、情報量が０であった場合に再び情報の受信を繰り返す、といった処理になる。
【００８９】
ただし、いずれの場合とも、受信後は、受信が成功したか否かをチェックし（Ｓ３１３）、受信成功であれば（Ｓ３１３：ＹＥＳ）、何らかのデータを受信するので、そのデータが有効データであるかどうかをチェックし（Ｓ３１５）、有効データでない場合は（Ｓ３１５：ＮＯ）、Ｓ３１１以降の処理をやり直し、有効データであった場合は（Ｓ３１５：ＹＥＳ）、ＤＢ（結果ファイル）書き込み処理を実行する（Ｓ３１７）。このＳ３１７のＤＢ（結果ファイル）書き込み処理は、詳しくは図９のフローチャートに示すような処理になる。
【００９０】
ＤＢ（結果ファイル）書き込み処理を開始すると、被管理ＰＣ１は、まず、リードバックデータを解析し、キーと値の分割を行う（Ｓ３５１）。このＳ３５１処理について、具体例を挙げながら説明すると、例えば、図８に示すテーブルの２行目に基づき、ＰＪＬコマンドである送信文字列“＠ＰＪＬ  ＩＮＦＯ  ＰＡＧＥＣＯＵＮＴ”を生成し、プリンタへと送信した場合、リードバックデータとしては、例えば、文字列“＠ＰＪＬ  ＩＮＦＯ  ＰＡＧＥＣＯＵＮＴ<CR>ＰＡＧＥＣＯＵＮＴ＝２０９８<CR><FF>”を受信する。この受信文字列中、前半部分は送信したＰＪＬコマンドそのものであり、その後ろの“<CR>”は改行コード、“ＰＡＧＥＣＯＵＮＴ＝”はＰＪＬコマンドに応じて付加される文字列、“２０９８”がデバイス内で管理されていた値（この場合は、印刷枚数）、その後ろの“<CR>”も改行コード、その後ろの“<FF>”は改ページコードである。Ｓ３５１の処理では、この受信文字列を解析し、キーである“ＰＡＧＥＣＯＵＮＴ”と、値である“２０９８”を、受信文字列中から切り出す処理が行われる。
【００９１】
続いて、被管理ＰＣ１は、Ｓ３５１の処理によって得たキーに対応するラベルをコマンドファイル１３２より読み出す（Ｓ３５３）。コマンドファイル１３２には、先に説明した通り、図８に示すようなデータ形式のテーブルが格納されているので、このテーブルのラベル項からラベルとなる文字列を読み出す。
【００９２】
そして、“機種，ポート，ラベル，値<CR>”の形式を持つカンマ区切りの文字列を作成する（Ｓ３５５）。このＳ３５５の処理で作成する文字列中、“機種”は、先に説明したＳ２３１の処理で取得した１２８４ＩＤに対応する機種名を表す文字列（例えば、“Ｄｅｖｉｃｅ１”）、“ポート”は、本処理が対象としているローカルポート（注：本処理は、ローカルポート毎に作成されるスレッドの中で呼ばれる処理であり、特定のローカルポートのみが処理対象となっている）を表す文字列（例えば、“ＬＰＴ１”）、“ラベル”は、上記Ｓ３５３の処理で読み出した文字列（例えば“Ｐａｇｅｓ”）、“値”は、上記Ｓ３５１の処理で取り出された値を示す文字列（例えば、“２０９８”）である。これらの文字列をカンマで区切るとともに、末尾に改行コード<CR>を付加してなる文字列が、Ｓ３５５の処理によって作成される。
【００９３】
その後、Ｓ３５５の処理によって作成された文字列をＤＢ（結果ファイル１３３）に書き出して（Ｓ３５７）、本処理を終える。
こうしてＳ３５１〜Ｓ３５７の処理を終えると、図６に示したＳ３１７の処理を終えたことになる。このＳ３１７の処理により、補助記憶部１４内に確保されたＤＢ（結果ファイル１３３）には、Ｓ３０７の処理によって対象プリンタに対して要求した１コマンド分の要求に対応する応答情報が記録されることになる。
【００９４】
これらＳ３０３〜Ｓ３１７の処理は、途中でエラーが発生しない限り、全コマンド終了まで繰り返し実行される（Ｓ３０５：ＮＯ）。この繰り返し処理において、Ｓ３０３の処理では、コマンドファイル１３２に記録された複数のコマンドが順に取り出されることになる。そして、それら複数のコマンドすべてが処理（プリンタ側へ送信）されると、全コマンド終了となる（Ｓ３０５：ＹＥＳ）。その結果、補助記憶部１４内に確保されたＤＢ（結果ファイル１３３）には、対象プリンタに対して要求した全コマンド分の要求に対応する応答情報が記録されることになる。その後は、対象プリンタをクローズして（Ｓ３１９）、本処理を終える。
【００９５】
なお、Ｓ３０３〜Ｓ３１７の処理途中でエラーが発生する場合もある。
具体的には、まず、Ｓ３０９の処理において送信失敗と判定される場合がある（Ｓ３０９：ＮＯ）。この場合、被管理ＰＣ１は、プリンタのステータスを取得し（Ｓ３２１）、ＤＢ（結果ファイル１３３）にプリンタのステータスを書き込み（Ｓ３２３）、対象プリンタをクローズして（Ｓ３１９）、本処理を終える。Ｓ３２３の処理では、“機種，ポート，エラー原因，<CR>”の形式を持つカンマ区切りの文字列を作成し、この文字列をＤＢ（結果ファイル１３３）に書き出す。この文字列中、“機種”および“ポート”は、上記Ｓ３５５の処理で利用した文字列と同様のものであり、“エラー原因”は、Ｓ３２１の処理で取得したステータスによっても変わり得る文字列であるが、例えば、紙切れが原因でＰＪＬコマンドが受け付けられない状態になっている場合であれば、Ｓ３２１の処理で紙切れを示すステータスが得られるので、文字列“ＰＥ  エラー”などが使われる。
【００９６】
また、Ｓ３１３の処理において受信失敗と判定される場合がある（Ｓ３１３：ＮＯ）。この場合、被管理ＰＣ１は、ＤＢ（結果ファイル１３３）に受信失敗を示すエラー情報を書き込む（Ｓ３２５）。このＳ３２５の処理でも、“機種，ポート，エラー原因，<CR>”の形式を持つカンマ区切りの文字列を作成し、この文字列をＤＢ（結果ファイル１３３）に書き出す。この文字列中、“機種”および“ポート”は、上記Ｓ３５５またはＳ３２３の処理で利用した文字列と同様のものである。“エラー原因”は、プリンタからの応答が無かったことを示すため、例えば、文字列“ＮｏｔＲｅｓｐｏｎｓｅ”などが使われる。そして、対象プリンタをクローズして（Ｓ３１９）、本処理を終える。なお、対象プリンタをクローズする際には、クローズに先立ち、プリンタにＵＥＬが送られ、ＰＪＬコマンドモードが解除される。
【００９７】
以上のようにして、Ｓ３０１〜Ｓ３１９の処理を終えると、図５に示したＳ２３７の処理（読み取り／ＤＢ化処理１）を終えたことになる（この場合、正常終了）。
なお、上記Ｓ２３３またはＳ２３５の処理でエラーが発生する場合もある。
【００９８】
具体的には、まず、上記Ｓ２３３の処理において、１２８４ＩＤの取得に失敗する場合がある（Ｓ２３３：ＹＥＳ）。この場合、１０回まではＳ２３１の処理へと戻ることにより（Ｓ２４１：ＮＯ）、１２８４ＩＤの再取得を試みる。そして、Ｓ２３４の処理へ１０回戻ったにもかかわらず、１２８４ＩＤの取得に失敗した場合（Ｓ２４１：ＹＥＳ）、被管理ＰＣ１は、電源／ケーブル確認のメッセージを表示部１３に表示する（Ｓ２４３）。
【００９９】
ここで、利用者は、入力部１２を利用して、ＯＫ／Ｃａｎｃｅｌのいずれかの指示を入力する操作を行うことができる。利用者がプリンタの電源やケーブルを確認し、その結果、エラー原因を解消することができ、本処理を継続したいと考えた場合、利用者はＯＫの指示を入力すればよい。また、利用者が本処理を中断してもよいと考えた場合、利用者はＣａｎｃｅｌの指示を入力すればよい。
【０１００】
ＯＫの指示が入力された場合（Ｓ２４５：ＹＥＳ）、Ｓ２３１の処理へと戻り、被管理ＰＣ１は、本処理を最初からやり直す。一方、Ｃａｎｃｅｌの指示が入力された場合（Ｓ２４５：ＮＯ）、被管理ＰＣ１は、プリンタが準備できていない旨をＤＢ（結果ファイル１３３）に書き込んで（Ｓ２４７）、本処理を終える（この場合、エラー終了）。なお、Ｓ２４７の処理では、“  ，ポート，エラー原因，<CR>”の形式を持つカンマ区切りの文字列を作成し、この文字列をＤＢ（結果ファイル１３３）に書き出す。この文字列中、ポート”は、上記Ｓ３５５、Ｓ３２３、Ｓ３２５の処理で利用した文字列と同様のものである。“エラー原因”は、適切な１２８４ＩＤを取得できていないことを示すため、例えば、文字列“１２８４ＩＤ  エラー”などが使われる。また、上記Ｓ３５５、Ｓ３２３、Ｓ３２５の処理とは異なり、適切な１２８４ＩＤを取得できていないことから、作成する文字列中に“機種名”を入れることができないので、“機種名”に相当する部分はブランクとされる。
【０１０１】
また、上記Ｓ２３５の処理において、非対象プリンタであった場合（Ｓ２３５：ＹＥＳ）、被管理ＰＣ１は、機種確認のメッセージを表示部１３に表示する（Ｓ２４９）。
ここで、利用者は、入力部１２を利用して、ＯＫ／Ｃａｎｃｅｌのいずれかの指示を入力する操作を行うことができる。利用者が機種を確認し、その結果、本処理を継続したいと考えた場合、利用者はＯＫの指示を入力すればよい。また、利用者が本処理を中断してもよいと考えた場合、利用者はＣａｎｃｅｌの指示を入力すればよい。
【０１０２】
以降は、先に説明したＳ２４５の処理へと移行し、ＯＫの指示が入力された場合（Ｓ２４５：ＹＥＳ）、Ｓ２３１の処理へと戻り、被管理ＰＣ１は、本処理を最初からやり直す。一方、Ｃａｎｃｅｌの指示が入力された場合（Ｓ２４５：ＮＯ）、被管理ＰＣ１は、プリンタが準備できていない旨をＤＢ（結果ファイル１３３）に書き込んで（Ｓ２４７）、本処理を終える（この場合、エラー終了）。なお、上記Ｓ２４５〜Ｓ２４７の処理は、上記Ｓ２４３の処理を終えた場合と上記Ｓ２４９の処理を終えた場合、これら２つのケースで別になっていてもよく、その場合、いずれのケースであったのかがわかるようなエラー情報を残すことができる。また、上記Ｓ２４７の処理の中で、上記２つのケースのいずれであったのかを判定した上で、いずれのケースであったのかがわかるようなエラー情報を残してもよい。
【０１０３】
以上のようにしてＳ２３１〜Ｓ２４７の処理を終えると、図４に示したＳ２１１の処理を終えたことになるので、その後は、Ｓ２１１の処理を正常終了した場合は（Ｓ２１３：ＹＥＳ）、Ｓ２０１の処理へと戻る一方、Ｓ２１１の処理をエラー終了した場合は、本スレッド処理を終了する。また、Ｓ２０７の処理で計数したジョブ数が設定値Ｎを超える場合も（Ｓ２０９：ＮＯ）、そのままＳ２０１の処理へと戻る。さらに、Ｓ２０３の処理において、印字終了イベントでないと判定した場合も（Ｓ２０３：ＮＯ）、そのままＳ２０１の処理へと戻る。
【０１０４】
したがって、以上説明したスレッド処理は、プリンタが接続されたローカルポートが存在する場合に、処理スレッドが作成されるのに伴って処理を開始し、以後は、エラーが発生しない限り、処理を継続することになる。そして、その処理の中で、印字終了イベントが発生するたびに印字ジョブ数を調べ、印字ジョブ数が設定値Ｎ以下であれば、ローカルポートを介して接続されたプリンタからプリンタ情報を取得、そのプリンタ情報を補助記憶部１４内に確保されたＤＢ（結果ファイル１３３）に書き込むのである。また、エラー情報についても、プリンタ情報を書き込む場合と互換性のあるレコード形式（本実施形態の場合、１行４項目のカンマ区切り形式（ＣＳＶ形式））でＤＢ（結果ファイル１３３）に書き込む。その結果、ＤＢ（結果ファイル１３３）には、図１０に例示するようなデータ群が保存されることになる。
【０１０５】
なお、上記処理のように印字終了イベントが発生するたびに印字ジョブ数を調べれば、印字終了イベントの発生とは無関係に印字ジョブ数を調べるのに比べ、印字ジョブ数が設定値Ｎ以下とるタイミングを見逃しにくくなり、対象プリンタからプリンタ情報を取得する機会が増えることになる。また、本実施形態の場合、設定値Ｎ＝０となっているので、印字ジョブ数が０となった時にだけ、Ｓ２１１の処理により対象プリンタからプリンタ情報を取得する。そのため、印字処理完了までに時間を要する印字ジョブが先にキュー１３１に入れられていることが原因で、対象プリンタからプリンタ情報を取得するまでに時間を要することはない。
【０１０６】
ところで、上記スレッド処理によるＤＢ（結果ファイル１３３）への情報記録は、上述の通り、印字ジョブ数が０となった時にのみ実施されるので、理論的には、絶え間なく印字ジョブが発生しているような環境下では、なかなか印字ジョブ数が０とならず、その結果、上記スレッド処理だけでは、ＤＢ（結果ファイル１３３）への情報記録がなされないということも起こり得る。しかし、本システムにおいては、このスレッド処理に加え、上記Ｓ１０９〜Ｓ１１１、およびＳ１２１〜Ｓ１２５の処理も実行することにより、事前に設定された設置時刻となった場合には、ＤＢ（結果ファイル１３３）への情報記録を実施するようになっている。
【０１０７】
より詳しく説明すると、先に説明した通り、本システムでは、Ｓ１０９およびＳ１１１の処理により、設定時刻が到来するとタイマーイベントが発生するようになっており、タイマーイベントが発生した場合は、Ｓ１２３の処理（読み込み／ＤＢ化処理２）を実行するようになっている。このＳ１２３の処理は、詳しくは図１１のフローチャートに示すような処理になる。
【０１０８】
読み込み／ＤＢ化処理２を開始すると、被管理ＰＣ１は、まずリストより１つのローカルポートを抽出し（Ｓ４０１）、抽出したローカルポートを出力先とする印字ジョブを計数し（Ｓ４０３）、そのジョブ数が０かどうかをチェックする（Ｓ４０５）。このＳ４０３およびＳ４０５の処理は、先に説明したＳ２０７およびＳ２０９の処理と同等の方法で実施するとよい。
【０１０９】
Ｓ４０５の処理による判定の結果、ジョブ数が０でない場合は（Ｓ４０５：ＮＯ）、機種判定・ＤＢ書込処理を実行してから（Ｓ４０７）、Ｓ４０９の処理へと進み、一方、ジョブ数が０であった場合は（Ｓ４０５：ＹＥＳ）、Ｓ４０７の機種判定・ＤＢ書込処理を実行することなく、Ｓ４０９の処理へと進む。
【０１１０】
このＳ４０７の機種判定・ＤＢ書込処理は、先に説明したＳ２１１の処理（詳しくは図５および図６に示した処理）と同様の処理なので、ここでの詳細な説明は省略するが、Ｓ２１１の処理と同様に、対象プリンタからプリンタ情報を取得、そのプリンタ情報を補助記憶部１４内に確保されたＤＢ（結果ファイル１３３）に書き込む処理が実行される。以上のようにジョブ数が０でない場合に機種判定・ＤＢ書込処理を実行するのは、印字ジョブ数が０とならない環境下でも、本処理によってＤＢ（結果ファイル１３３）への情報記録を行うためである。一方、ジョブ数が０であった場合に機種判定・ＤＢ書込処理を実行しないのは、ジョブ数が０となった時点で、先に説明したスレッド処理による情報記録がなされているはずであり、その後、対象プリンタの状態には変化がないと考えられるためである。
【０１１１】
ここでの機種判定・ＤＢ書込処理は、印字ジョブがある状態にて実行されるため、ＰＪＬコマンドを送信した場合、それに伴って生成される印字ジョブは、先にキュー１３１に入っていた印字ジョブの最後に付加される。そのため、その後のリードバックデータに関しても、先にキュー１３１に溜まっていた印字ジョブがすべて終了するまでは返されることがない。
【０１１２】
なお、Ｓ４０９の処理へと進んだ際に、リスト上の全ローカルポートに対する処理が終了していなければ（Ｓ４０９：ＮＯ）、Ｓ４０１への処理へと戻る。これにより、Ｓ４０１〜Ｓ４０９の処理が、被管理ＰＣ１においてプリンタが接続されているローカルポートの総数と同数回分だけ繰り返され、その後、リスト上の全ローカルポートに対する処理が終了するので（Ｓ４０９：ＹＥＳ）、本処理を終了する。
【０１１３】
このように、被管理ＰＣ１においては、印字終了イベントが発生した際、印字ジョブ数がＮ以下（本実施形態では０）となった場合には、Ｓ２１１の処理が実行されて、対象プリンタから迅速にプリンタ情報が取得される一方、設定時刻が到来する毎に、印字ジョブ数がＮ以下（本実施形態では０）とならなくても、Ｓ４０７の処理が実行されて、対象プリンタから確実にプリンタ情報が取得される。
【０１１４】
次に、管理ＰＣ２おいて実行される処理について、図１２のフローチャートに基づいて説明する。この処理は、管理ＰＣ２の起動に伴って開始される処理である。
本処理を開始すると、管理ＰＣ２は、まずデータ処理を実行する（Ｓ６０１）。このデータ処理は、先に説明した被管理ＰＣ１での処理により被管理ＰＣ１がプリンタ３から取得・ＤＢに記録したプリンタ情報を、管理ＰＣ２側で利用するための処理で、詳しくは図１３のフローチャートに示すような処理になる。
【０１１５】
この処理では、まず、管理ＰＣ２が、被管理ＰＣの抽出を行う（Ｓ７０１）。Ｓ７０１の処理では、複数の被管理ＰＣ１、１’、１”…の中から、処理対象となる一つの被管理ＰＣが抽出される。ここでは、被管理ＰＣ１が抽出されたものとして、以降の説明を続ける。続いて、管理ＰＣ２が、ネットワーク越しに被管理ＰＣからファイルの読み込みを行う（Ｓ７０３）。ここで読み込まれるファイルは、先に説明した被管理ＰＣ１によるＳ３１３の処理において、プリンタから受信したプリンタ情報を書き込んだＤＢ（結果ファイル１３３）であり、このファイルは、他のＰＣからのネットワーク越しの読み取りを許可する属性が、被管理ＰＣ１側において付与されている。すなわち、被管理ＰＣ１は、管理ＰＣ２から要求があった場合に、補助記憶部１４のＤＢから読み取ったプリンタ情報を管理ＰＣ２に対して提供できるように構成されている。
【０１１６】
続いて、読み取ったファイル中に含まれていたプリンタ情報に対し、さらに管理ＰＣ２側で管理する情報（例えば、本処理の開始時刻やファイルアクセス時刻などのログ情報）を付加するなど、後述する出力／表示処理において必要となる情報を補うためのデータ処理を施す（Ｓ７０５）。次に、全ての被管理ＰＣに対し上記処理を行ったか判断し（Ｓ７０７）、上記処理を行っていない他の被管理ＰＣ（例えば被管理ＰＣ１’、１”…）が残っていれば（Ｓ７０７：ＮＯ）、Ｓ７０１の処理へと戻り、他の被管理ＰＣに対しても同様の処理を行う。
【０１１７】
こうして全ての被管理ＰＣに対し、上記Ｓ７０１〜Ｓ７０５の処理を行う結果、管理ＰＣ２側において、全ての被管理ＰＣから取得したプリンタ情報を含む結果ファイルが作成されることになる。そして、この管理ＰＣ２側の結果ファイルに基づいて、管理ＰＣ２は、出力／表示処理を実行する（Ｓ７０９）。このＳ７０９の出力／表示処理は、詳しくは図１４のフローチャートに示すような処理になる。
【０１１８】
出力／表示処理を開始すると、管理ＰＣ２は、管理ＰＣ２側の結果ファイルについて解析／整形を行う（Ｓ７２１）。具体的には、ＬＯＧファイルへの出力を行うための整形として、見出しとなる文字列を加えたり、後からＬＯＧの表示や印刷等を行った際に１行分の情報が予期しない位置で折り返されてしまうのを防止するため、適切な箇所に改行コードを加えるなどの整形が行なわれる。また、画面表示用の整形として、ＬＯＧ出力用の整形と同等の整形に加え、ＨＴＭＬ（HyperText Markup Language）による記述（例えば、タグと呼ばれる所定の制御文字列など）を加える箇所の解析、およびその記述を追加する整形などが行なわれる。
【０１１９】
続いて、管理ＰＣ２は、Ｓ７２１の処理で作成した画面表示用データの表示を行い（Ｓ７２３）、ＬＯＧ出力用データのＬＯＧファイルへの出力を行う（Ｓ７２５）。Ｓ７２５の処理によって作成されるＬＯＧファイルには、図１５に例示するようなテキストデータが格納される。
【０１２０】
このテキストデータ中には、被管理ＰＣの名称（図１５に例示したデータの場合、“ＰＣ１”、“ＰＣ２”）、プリンタの機種名（図１５に例示したデータの場合、“Ｄｅｖｉｃｅ１”、“Ｄｅｖｉｃｅ２”）、ローカルポート名（図１５に例示したデータの場合、“ＬＰＴ１”、“ＵＳＢ００１”）、および各種プリンタ情報（図１５に例示したデータの場合、“Ｐａｇｅｓ＝２０９８”、“Ｄｒｕｍ  Ｌｉｆｅ＝４０３９”、…など）が記述されている。特に、被管理ＰＣの名称を１つ記述する毎に、その被管理ＰＣに接続されているすべてのプリンタについて、“プリンタの機種名  ｏｎ  ローカルポート名”の形式を持つ記述を加え、この記述を行う毎に、各プリンタから取得したプリンタ情報を列挙してある。そのため、系内に同じ機種のプリンタが多数存在している場合であっても、利用者は、ある被管理ＰＣに接続されているプリンタの機種が何であるか、ある被管理ＰＣに接続されている複数のプリンタについて、どの機種がどのローカルポートに接続されているかなどを容易に理解できる。すなわち、被管理ＰＣの名称、その被管理ＰＣに接続されたプリンタの機種名、およびそのプリンタと被管理ＰＣとの接続に利用されているローカルポート名、これら三者の対応関係が記述されているので、同一のプリンタ機種名や同一のローカルポート名がいくつか存在する場合でも、利用者は各プリンタ情報がどのプリンタのものなのかを簡単に把握できるのである。
【０１２１】
さて、以上説明した表示およびログ出力においては、原則として、被管理ＰＣから取得したすべてのプリンタ情報が出力されることになるが、プリンタ情報の中には、プリンタのメンテナンス（例えば、ドラム交換、トナーカートリッジ交換、クリーニングなど）を行うべき状況になっていることを示す情報が含まれていることもある。そこで、以降の処理では、メンテナンスを行うべき状況になっていると思われるプリンタ情報について、利用者に電子メールで通知する処理を行う。
【０１２２】
具体的には、管理ＰＣ２は、Ｓ７２５の処理を終えた後、すべての被管理ＰＣから取得した個々のプリンタ情報すべての中から、まだ評価していないプリンタ情報を１つ選び出し、そのプリンタ情報について、あらかじめ決められている評価基準に従い、メンテナンスの必要性について評価を行う（Ｓ７２７）。具体例を挙げれば、例えば、選び出したプリンタ情報が“Ｐａｇｅｓ＝２０９８”であれば、２０９８枚という値が、あらかじめ決められている枚数より多いかどうかを評価し、多い場合はメンテナンス必要あり、少ない場合はメンテナンス必要なしとの評価を行う。
【０１２３】
そして、メンテナンスの必要ありと評価した場合は（Ｓ７２９：ＹＥＳ）、評価対象となったプリンタ情報の取得元である被管理ＰＣの名称をキーにして、あらかじめ用意されているアドレス帳ファイルを検索し、キーにした被管理ＰＣの名称に対応づけて記録されているメールアドレス（＝被管理ＰＣを管理している使用者のメールアドレス）を取得する（Ｓ７３１）。
【０１２４】
続いて、評価対象となったプリンタ情報中のラベル名（例えば、“Ｐａｇｅｓ”）をキーにして、あらかじめ用意されている警告メッセージファイルを検索し、キーにしたラベル名に対応づけられている警告フォーマット（警告メッセージのひな形）を１つ選択する（Ｓ７３３）。警告メッセージファイルは、図１６に例示するように、ラベル名と警告フォーマットとを組み合わせたものを１つのレコードとして、複数のレコードを記録したものであり、管理ＰＣ２は、評価対象となったプリンタ情報中のラベル名が決まれば、それに対応する警告フォーマットを、警告メッセージファイルの中から選び出すことができる。
【０１２５】
警告フォーマットを選び出したら、管理ＰＣ２は、警告フォーマット中の“％ｓ”にポート名、機種名をいれ警告文を作成する（Ｓ７３５）。警告フォーマットは、図１６に例示するように、例えば“％ｓに接続されている％ｓのドラムを交換してください。トナーを交換してください。”といった文字列であり、２カ所に“％ｓ”という記述が含まれている。これら２カ所の“％ｓ”の部分に、評価対象となったプリンタ情報に対応する“ローカルポート名”と“機種名”とを埋め込む。例えば、ローカルポート名“ＬＰＴ１”、機種名“Ｄｅｖｉｃｅ１”の場合、“ＬＰＴ１に接続されているＤｅｖｉｃｅ１のドラムを交換してください。トナーを交換してください。”という警告文が作成されることになる。
【０１２６】
そして、Ｓ３７５の処理で作成した警告文を本文とする電子メールを、Ｓ７３１の処理で取得したメールアドレス宛に送信する（Ｓ７３７）。このようにすることで、プリンタの状態を集中管理し、異常があれば即時に管理者に連絡することができる。
【０１２７】
以上のようにして上記Ｓ７３１〜Ｓ７３７の処理を終えるか、あるいは、Ｓ７２９の処理においてメンテナンスの必要なしと評価した場合は（Ｓ７２９：ＹＥＳ）、評価対象となった１つのプリンタ情報について処理を終えたことになるので、すべての被管理ＰＣから取得した個々のプリンタ情報すべての中に、まだ評価していないプリンタ情報が残っているかどうかをチェックし（Ｓ７３９）、全プリンタ情報に対する処理を終えていなければ（Ｓ７３９：ＮＯ）、Ｓ７２７の処理へと戻る。その結果、すべての被管理ＰＣから取得した個々のプリンタ情報すべてと同数分、上記Ｓ７２７〜Ｓ７３９の処理が繰り返されることになる。この繰り返し処理の結果、全プリンタ情報に対する処理を終えたら（Ｓ７３９：ＹＥＳ）、本処理を終了する。
【０１２８】
こうしてＳ７２１〜Ｓ７３９の処理を終えると、図１３に示したＳ７０９の処理を終えたことになり、その結果、Ｓ７０１〜Ｓ７０９の処理も終えたことになるので、図１２におけるＳ６０１の処理を終えたことになり、引き続いて管理ＰＣ２は、設定ファイルから調査設定時刻を読み込んで（Ｓ６０３）、次に調査設定時刻が到来するまでの時間を計算、算出した時間をタイマーにセットする（Ｓ６０５）。設定ファイルは、補助記憶部２４内に記憶されているファイルであり、この設定ファイルには、管理者が任意に設定する調査設定時刻が記録されている。タイマーは、Ｓ６０５の処理後、Ｓ６０５の処理で算出した時間が経過するとタイマーイベントを発生させるものである。
【０１２９】
続いて、管理ＰＣ２は、関連イベントの発生を待ち（Ｓ６０７）、発生したイベントがタイマーイベントであれば（Ｓ６０９：ＹＥＳ）、タイマーに２４時間をセットして（Ｓ６１１）、２４時間後に再びタイマーイベントが発生する状態とし、データ処理を実行する（Ｓ６１３）。このデータ処理は、先に説明したＳ６０１の処理と同様の処理で、詳しくは図１３のフローチャートに示すような処理になるが、この処理については既に説明したので、ここでは説明を省略する。
【０１３０】
また、Ｓ６０９の処理による判定の結果、発生したイベントがタイマーイベントでなかった場合（Ｓ６０９：ＮＯ）、利用者が入力部２２を利用して所定の操作を行うことにより、データ処理の起動を手動で指示したのであれば（Ｓ６１５：ＹＥＳ）、この場合も上記データ処理を実行する（Ｓ６１３）。
【０１３１】
さらに、Ｓ６１５の処理による判定の結果、利用者による手動起動ではなかった場合（Ｓ６１５：ＮＯ）、あるいは、上記Ｓ６１３のデータ処理を終えた場合、発生したイベントが終了指示イベントであれば（Ｓ６１７：ＹＥＳ）、本処理を終了する。終了指示イベントは、利用者が入力部２２を利用して所定の終了操作を行った際に発生するイベントである。一方、終了指示イベントでなければ（Ｓ６１７：ＮＯ）、Ｓ６０７の処理へと戻り、再び関連イベントの発生を待つ状態になる。すなわち、管理ＰＣ２が作動状態にある場合、利用者が終了操作を行わない限り、本処理が終了することはなく、本処理は管理ＰＣ２上の常駐プロセスとして実行され続けることになる。
【０１３２】
なお、本実施形態において、Ｓ６０５の処理によってセットされる調査設定時刻は、先に説明したＳ１１１の処理によって被管理ＰＣ１、１’、１”…においてセットされる時刻よりも１０分程度遅い時刻とされている。このような時刻を管理ＰＣ２側で設定すると、被管理ＰＣ１、１’、１”…側でタイマーイベントが発生した後、１０分程度遅れて管理ＰＣ２側でタイマーイベントが発生するため、この１０分の間に被管理ＰＣ１、１’、１”…側でプリンタ情報が最新の状態に更新されている可能性が高くなるものと期待できる。すなわち、被管理ＰＣ１、１’、１”…側と管理ＰＣ２側とでほぼ同時にタイマーイベントが発生するような設定にした場合、もしくは管理ＰＣ２側で被管理ＰＣ１、１’、１”…側よりも早くタイマーイベントが発生するような設定にした場合、管理ＰＣ２側から被管理ＰＣ１、１’、１”…側のファイルを読み取った後に、被管理ＰＣ１、１’、１”…側のファイルが更新されることがある。この場合、管理ＰＣ２側で取得したプリンタ情報は、必ずしも最新の状態ではない可能性が高くなるが、これに対し、本実施形態の如く構成すれば、被管理ＰＣ１、１’、１”…側のファイルが更新された後に、管理ＰＣ２側から被管理ＰＣ１、１’、１”…側のファイルを読み取るので、管理ＰＣ２側で取得したプリンタ情報は、最新の状態になっている可能性が高いのである。
【０１３３】
以上説明した通り、本実施形態において、被管理ＰＣ１は、プリンタ３の１２８４ＩＤ（本発明でいうデバイスの機種を示す情報）を、プリンタ３から取得して、そのプリンタ３の機種を識別し、Ｓ３３１〜Ｓ３４１の処理により、識別された機種に対応づけられたＰＪＬコマンドを、複数のＰＪＬコマンドの中から選択する。そのため、複数のＰＪＬコマンド中に、プリンタ３に対応するＰＪＬコマンドと対応しないＰＪＬコマンドとが混在していても、プリンタ３に対応するＰＪＬコマンドだけが選択される。その結果、プリンタ３に送信されるＰＪＬコマンドは、プリンタ３に対応するＰＪＬコマンドのみとなり、送信したＰＪＬコマンドに対する応答を受信することで、所期のプリンタ情報を取得することができる。
【０１３４】
したがって、送信したＰＪＬコマンドについては、所期のプリンタ情報を確実に取得することができる。また、プリンタに対応しないＰＪＬコマンドまで被管理ＰＣが送信してしまうものとは異なり、被管理ＰＣ１が無駄なデータ送信処理を行う必要が無い。さらに、プリンタに対応しないＰＪＬコマンドを送信した後、それに対する応答を被管理ＰＣが受信して対処する（例えば、データを破棄する）ものとは異なり、被管理ＰＣ１が無駄なデータ受信処理を行う必要が無い。
【０１３５】
また、本実施形態において、被管理ＰＣ１は、プリンタ３の１２８４ＩＤを、プリンタ３から取得して、そのプリンタ３の機種を識別し、また、ＰＪＬコマンドをプリンタ３に送信することにより、プリンタ３に対してプリンタ情報の提供を要求し、送信されたＰＪＬコマンドに対する応答を受信することにより、プリンタ情報を取得する。そして、プリンタ３の１２８４ＩＤに応じて決まるプリンタ３の機種名と、被管理ＰＣ１とプリンタ３との接続に用いられているローカルポート名と、プリンタ情報とを、関連づけて格納する。そのため、利用者は、格納されたプリンタ情報を参照する際に、そのプリンタ情報に関連づけられたプリンタ３の機種名と、被管理ＰＣ１−プリンタ３の接続に使っているローカルポート名とを、併せて参照することができる。
【０１３６】
したがって、１台の被管理ＰＣ１に接続されたプリンタ３が複数接続され、その複数のプリンタの中に同じ機種が複数存在する場合であっても、あるプリンタ情報がどのプリンタから取得した情報なのかを知りたい場合、利用者はプリンタの機種名およびローカルポート名に基づいて、１つのプリンタ３を容易に特定することができる。
【０１３７】
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
例えば、上記実施形態では、コンピュータに接続されるデバイスの例として、ＰＪＬコマンドに対応した単機能のプリンタ３を例示したが、他のデバイスであってもよい。
【０１３８】
具体例を挙げれば、ＰＪＬコマンドに対応したデバイスとしては、プリンタ機能に加えて、ファクシミリ機能、コピー機能、イメージスキャナ機能などを兼ね備えた複合機が知られており、このような複合機も本発明でいうデバイスに含まれる。
【０１３９】
また、これらプリンタ３や上記複合機のような、プリンタ機能を有するデバイスである必要もなく、その場合、コマンドとしては、ＰＪＬに準拠したコマンドである必要はなく、コマンドを印刷スプーラ経由でデバイスに送信する必要もない。すなわち、ＰＪＬコマンド非対応の各種デバイスであっても、コンピュータ側との入出力Ｉ／Ｆを介して、コンピュータ側からデバイス側へコマンドを送信でき、そのコマンドに応じてデバイス側からコンピュータ側へ応答を返すことができ、その応答中にデバイス側で管理、更新されるデバイス情報が含まれているのであれば、そのようなデバイスを対象にして、本発明を適用することができる。そのようなデバイスとしては、例えば、イメージスキャナ、デジタルカメラ、ＵＳＢカメラ、各種ストレージデバイス、ラベルプリンタなどを考えることができる。
【０１４０】
また、上記実施形態では、被管理ＰＣ１においてプリンタ３から取得したプリンタ情報を管理ＰＣ２側に提供し、管理ＰＣ２側において、すべての被管理ＰＣ１、１’、１”…から集めたプリンタ情報を管理する例を示したが、被管理ＰＣ１においてプリンタ３から取得したプリンタ情報を、被管理ＰＣ１自身で管理する場合にも、本発明の構成を採用することができる。
【図面の簡単な説明】
【０１４１】
【図１】上記実施形態において例示したハードウェアの構成を示すブロック図である。
【図２】被管理ＰＣの構成を示すブロック図である。
【図３】被管理ＰＣにおける主処理のフローチャートである。
【図４】被管理ＰＣにおけるスレッド処理のフローチャートである。
【図５】被管理ＰＣにおける機種判定・ＤＢ書込処理のフローチャートである。
【図６】被管理ＰＣにおける読み込み／ＤＢ化処理１のフローチャートである。
【図７】被管理ＰＣにおけるコマンド取り出し処理のフローチャートである。
【図８】コマンドファイルに格納されたデータを示す図である。
【図９】被管理ＰＣにおけるＤＢ（結果ファイル）書き込み処理のフローチャートである。
【図１０】ＤＢ（結果ファイル）に格納されたデータを示す図である。
【図１１】被管理ＰＣにおける読み込み／ＤＢ化処理２のフローチャートである。
【図１２】管理ＰＣにおける主処理のフローチャートである。
【図１３】管理ＰＣにおけるデータ処理のフローチャートである。
【図１４】管理ＰＣにおける出力／表示処理のフローチャートである。
【図１５】ＬＯＧファイルに格納されたテキストデータを示す図である。
【図１６】警告メッセージファイルに格納されたデータを示す図である。
【符号の説明】
【０１４２】
１、１’、１”・・・被管理ＰＣ（パーソナルコンピュータ）、２・・・管理ＰＣ（パーソナルコンピュータ）、３、３’、３”・・・プリンタ、１１，２１・・・本体部、１２，２２・・・入力部、１３，２３・・・表示部、１４，２４・・・補助記憶部、１０１・・・制御部、１０２・・・Ｉ／Ｆ部、１１１・・・ＣＰＵ、１１２・・・ＲＯＭ、１１３・・・ＲＡＭ、１２１・・・プリンタＩ／Ｆ機能部、１２２・・・ＬＡＮ  Ｉ／Ｆ機能部、１２３・・・印刷スプーラ、１２４・・・プリンタ情報取得部、１３１・・・キュー、１３２・・・コマンドファイル、１３３・・・結果ファイル（データベース）、１３４・・・設定ファイル。
【図１】
2005190407.tif 000003
【図２】
2005190407.tif 000004
【図３】
2005190407.tif 000005
【図４】
2005190407.tif 000006
【図５】
2005190407.tif 000007
【図６】
2005190407.tif 000008
【図７】
2005190407.tif 000009
【図８】
2005190407.tif 000010
【図９】
2005190407.tif 000011
【図１０】
2005190407.tif 000012
【図１１】
2005190407.tif 000013
【図１２】
2005190407.tif 000014
【図１３】
2005190407.tif 000015
【図１４】
2005190407.tif 000016
【図１５】
2005190407.tif 000017
【図１６】
2005190407.tif 000018