(57)【要約】【課題】デバイスが直ちに応答を返さない状況下でも、提供先へデバイス情報を迅速に提供可能な情報処理装置、および情報処理方法を提供すること。【解決手段】ＰＣ上で機能する情報分配部は、デバイスからデバイス情報を取得して、取得したデバイス情報を情報処理部へ提供する処理を実行する。デバイス情報を取得した際、情報分配部はデバイス情報をキャッシュに保存する。その後、情報処理部からデバイス情報の提供を要求された場合、デバイスから最新のデバイス情報を取得できれば（Ｓ２２０：ＹＥＳ）、そのデバイス情報を情報処理部へ提供する（Ｓ２２５）。一方、最新のデバイス情報を取得できない時（Ｓ２２０：ＮＯ）、過去のデバイス情報がキャッシュにあれば（Ｓ２３０：ＹＥＳ）、キャッシュ内にある過去のデバイス情報を情報処理部へ提供する（Ｓ２３５）。【選択図】図３
2008217777.tif 000002
【特許請求の範囲】
【請求項１】
コマンド要求を受け付け、該コマンド要求に対応するコマンドをデバイスに送信するコマンド送信手段と、
前記コマンドに対する応答として前記デバイスに関するデバイス情報を前記デバイスから取得する取得手段と、
前記取得手段によって取得された前記デバイス情報を記憶する記憶手段と、
前記取得手段によって取得された最新のデバイス情報と、前記記憶手段に記憶された過去のデバイス情報とのどちらを提供先に提供すべきかを判定する判定手段と、
前記判定手段の判定結果に従って前記最新のデバイス情報と前記過去のデバイス情報のいずれかを前記提供先に提供する提供手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記判定手段は、前記取得手段によるデバイス情報の取得が前記コマンドの送信から所定時間内に完了した場合には、前記最新のデバイス情報を提供先に対して提供すべきと判定する一方、前記取得手段によるデバイス情報の取得が前記コマンドの送信から所定時間内に完了しなかった場合、前記記憶手段に前記過去のデバイス情報が記憶されていれば、当該過去のデバイス情報を提供先に対して提供すべきと判定すること、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記提供手段は、前記過去のデバイス情報を提供先に対して提供する場合に、前記過去のデバイス情報であることを提供先側で識別可能とするための識別情報を提供先に対して提供する
ことを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記取得手段によって取得された前記デバイス情報が、前記過去のデバイス情報として提供しないデバイス情報である場合に、前記提供手段によって前記過去のデバイス情報の提供が実行されるのを阻止する阻止手段
を備えたことを特徴とする請求項１〜請求項３のいずれかに記載の情報処理装置。
【請求項５】
前記阻止手段は、前記記憶手段に記憶された前記デバイス情報が、前記過去のデバイス情報として提供しないデバイス情報である場合に、前記記憶手段から前記デバイス情報を消去する消去手段を備える
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記消去手段は、複数種あるデバイス情報の内、最新のデバイス情報を提供先に提供することが規定されたデバイス情報を、前記過去のデバイス情報として提供しないデバイス情報であると判断し、前記記憶手段から前記デバイス情報を消去する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記消去手段は、通信が確立できないデバイスに関するデバイス情報について、前記過去のデバイス情報として提供しないデバイス情報であると判断し、前記記憶手段から前記デバイス情報を消去する
ことを特徴とする請求項５または請求項６に記載の情報処理装置。
【請求項８】
前記消去手段は、前記デバイスから最後にデバイス情報を取得してから経過した時間が第１の所定時間以上に達し、且つ、提供先から最後に前記コマンド要求を受けてから経過した時間が第２の所定時間以上に達した時点で、前記記憶手段に記憶されているデバイス情報について、前記過去のデバイス情報として提供しないデバイス情報であると判断し、前記記憶手段から前記デバイス情報を消去する
ことを特徴とする請求項５〜請求項７のいずれかに記載の情報処理装置。
【請求項９】
前記取得手段は、当該取得手段の起動を契機に、前記デバイス情報を前記デバイスから取得し、
前記記憶手段は、前記取得手段の起動を契機に取得された前記デバイス情報を記憶することを特徴とする請求項１〜請求項８のいずれかに記載の情報処理装置。
【請求項１０】
前記取得手段は、複数種あるデバイス情報の内、過去に取得した履歴のある少なくとも一部のデバイス情報を取得対象として、当該取得手段の起動を契機に、取得対象となる前記少なくとも一部のデバイス情報を前記デバイスから取得する
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記取得手段は、前記デバイスの状態が変化するたびに前記デバイスから提供される前記デバイス情報を、前記デバイスから取得し、
前記記憶手段は、前記取得手段が新たな前記デバイス情報を取得するたびに、取得された前記デバイス情報を記憶する
ことを特徴とする請求項１〜請求項１０のいずれかに記載の情報処理装置。
【請求項１２】
前記記憶手段は、前記デバイス情報を前記コマンドと対応付けて記憶することを特徴とする請求項１から請求項１１のいずれかに記載の情報処理装置。
【請求項１３】
前記コマンド送信部により送信されるコマンドが、一度の送信によって複数回にわたってデバイス情報が取得可能となる所定のコマンドである場合に、前記記憶手段には、前記デバイス情報は、前記所定のコマンドと対応付けて記憶されると共に、前記所定のコマンドと同種情報を取得する為のコマンドにも対応付けて記憶されること、を特徴とする請求項１から請求項１２のいずれかに記載の情報処理装置。
【請求項１４】
コマンド要求を受け付け該コマンド要求をデバイスに送信するコマンド送信手順と、
前記コマンドに対する応答として前記デバイスに関するデバイス情報を前記デバイスから取得する取得手順と、
前記取得手順において取得された前記デバイス情報を記憶手段に記憶させる記憶制御手順と、
前記取得手順によって取得された最新のデバイス情報と、前記記憶手段に記憶された過去のデバイス情報とのどちらを提供先に提供すべきかを判定する判定手順と、
前記判定手順の判定結果に従って前記最新のデバイス情報と前記過去のデバイス情報のいずれかを前記提供先に提供する提供手順と、  を備えたことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、および情報処理方法に関する。
【背景技術】
【０００２】
従来、デバイスに関するデバイス情報をインターフェースを通じてデバイスから取得するとともに、そのデバイス情報を利用した情報処理を実施する技術が知られている（例えば、下記特許文献１参照）。
【特許文献１】特開２０００−２９３３２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記特許文献１に開示されているような技術においては、デバイスに情報の提供要求を出力しても、デバイスが直ちに応答を返すとは限らず、デバイス情報の取得が完了するまでに長時間を要することがあった。
【０００４】
この場合、デバイス情報の提供先（例えば、アプリケーションのプロセス）によっては、デバイス情報を取得できないままタイムアウトエラーなどのエラー処理に移行してしまうことがある。そのため、デバイス情報を正常に取得できた場合と同等な処理が実行できなくなるなど、その後の処理に支障を来す可能性があった。
【０００５】
本発明は、上記問題を解決するためになされたものであり、その目的は、デバイスが直ちに応答を返さない状況下でも、提供先へデバイス情報を迅速に提供可能な情報処理装置、および情報処理方法を提供することにある。
【課題を解決するための手段】
【０００６】
以下、本発明の構成について説明する。
請求項１に記載の情報処理装置は、コマンド要求を受け付け、該コマンド要求に対応するコマンドをデバイスに送信するコマンド送信手段と、前記コマンドに対する応答として前記デバイスに関するデバイス情報を前記デバイスから取得する取得手段と、前記取得手段によって取得された前記デバイス情報を記憶する記憶手段と、前記取得手段によって取得された最新のデバイス情報と、前記記憶手段に記憶された過去のデバイス情報とのどちらを提供先に提供すべきかを判定する判定手段と、前記判定手段の判定結果に従って前記最新のデバイス情報と前記過去のデバイス情報のいずれかを前記提供先に提供する提供手段とを備えたことを特徴とする。
【０００７】
上記のように構成された情報処理装置によれば、最新のデバイス情報の提供以外に、過去のデバイス情報の提供を実行することができる。したがって、何らかの事情でデバイスからデバイス情報を取得することが困難な状況にある場合には、過去のデバイス情報を提供先へ提供することができ、これにより、提供先に対して迅速にデバイス情報を提供することができる。
【０００８】
請求項２に記載の情報処理装置は、請求項１に記載の情報処理装置において、前記判定手段は、前記取得手段によるデバイス情報の取得が前記コマンドの送信から所定時間内に完了した場合には、前記最新のデバイス情報を提供先に対して提供すべきと判定する一方、前記取得手段によるデバイス情報の取得が前記コマンドの送信から所定時間内に完了しなかった場合、前記記憶手段に前記過去のデバイス情報が記憶されていれば、当該過去のデバイス情報を提供先に対して提供すべきと判定することを特徴とする。
【０００９】
上記のように構成された情報処理装置によれば、デバイス情報が迅速に取得できれば、最新の情報を迅速に提供先へと提供できる。また、デバイス情報の取得に時間がかかっているときは、過去のデバイス情報を代用することで、情報を迅速に提供先へと提供できる。
【００１０】
請求項３に記載の情報処理装置は、請求項１または２に記載の情報処理装置において、前記提供手段は、前記過去のデバイス情報を提供先に対して提供する場合に、前記過去のデバイス情報であることを提供先側で識別可能とするための識別情報を提供先に対して提供することを特徴とする。
【００１１】
上記のように構成された情報処理装置によれば、識別情報を提供先に対して提供するので、提供先側では、提供されたデバイス情報が過去のものであるのか否かを判別できる。
請求項４に記載の情報処理装置は、請求項１〜請求項３のいずれかに記載の情報処理装置において、前記取得手段によって取得された前記デバイス情報が、前記過去のデバイス情報として提供しないデバイス情報である場合に、前記提供手段によって前記過去のデバイス情報の提供が実行されるのを阻止する阻止手段を備えたことを特徴とする。
【００１２】
上記のように構成された情報処理装置によれば、過去のデバイス情報として提供しないデバイス情報に関しては、提供手段によってデバイス情報の提供が実行されるのを阻止手段が阻止するので、提供手段によって過去のデバイス情報が提供されてしまうのを防止できる。
【００１３】
請求項５に記載の情報処理装置は、請求項４に記載の情報処理装置において、前記阻止手段は、前記記憶手段に記憶された前記デバイス情報が、前記過去のデバイス情報として提供しないデバイス情報である場合に、前記記憶手段から前記デバイス情報を消去する消去手段を備えることを特徴とする。
【００１４】
上記のように構成された情報処理装置によれば、過去のデバイス情報として提供しないデバイス情報については、記憶手段から消去されるので、提供手段によって過去のデバイス情報が提供されてしまうのを防止できる。
【００１５】
請求項６に記載の情報処理装置は、請求項５に記載の情報処理装置において、前記消去手段は、複数種あるデバイス情報の内、最新のデバイス情報を提供先に提供することが規定されたデバイス情報を、前記過去のデバイス情報として提供しないデバイス情報であると判断し、前記記憶手段から前記デバイス情報を消去することを特徴とする。
【００１６】
上記のように構成された情報処理装置によれば、最新のデバイス情報を提供先に対して提供することが規定されたデバイス情報が、過去のデバイス情報として提供しないデバイス情報であると判断され、記憶手段から消去される。したがって、提供手段によって過去のデバイス情報が提供されてしまうのを防止できる。
【００１７】
請求項７に記載の情報処理装置は、請求項５または請求項６に記載の情報処理装置において、前記消去手段は、通信が確立できないデバイスに関するデバイス情報について、前記過去のデバイス情報として提供しないデバイス情報であると判断し、前記記憶手段から前記デバイス情報を消去することを特徴とする。
【００１８】
上記のように構成された情報処理装置によれば、通信が確立できないデバイスに関するデバイス情報については、記憶手段からデバイス情報が消去される。したがって、通信が確立できないにもかかわらず、提供手段によって過去のデバイス情報が提供されてしまうのを防止できる。
【００１９】
請求項８に記載の情報処理装置は、請求項５〜請求項７のいずれかに記載の情報処理装置において、前記消去手段は、前記デバイスから最後にデバイス情報を取得してから経過した時間が第１の所定時間以上に達し、且つ、提供先から最後に前記コマンド要求を受けてから経過した時間が第２の所定時間以上に達した時点で、前記記憶手段に記憶されているデバイス情報について、前記過去のデバイス情報として提供しないデバイス情報であると判断し、前記記憶手段から前記デバイス情報を消去することを特徴とする。
【００２０】
上記のように構成された情報処理装置によれば、しばらくデバイスから最新情報を取得しておらず、且つ、しばらく提供先からの要求も到来していない場合に、記憶手段からデバイス情報が消去される。したがって、長期にわたって更新されなかった過去のデバイス情報が、提供手段によって提供されてしまうのを防止できる。
【００２１】
請求項９に記載の情報処理装置は、請求項１〜請求項８のいずれかに記載の情報処理装置において、前記取得手段は、当該取得手段の起動を契機に、前記デバイス情報を前記デバイスから取得し、前記記憶手段は、前記取得手段の起動を契機に取得された前記デバイス情報を記憶することを特徴とする。
【００２２】
上記のように構成された情報処理装置によれば、取得手段の起動を契機にデバイス情報が取得されて記憶手段に記憶される。したがって、その後、提供先へのデバイス情報の提供が必要となった時点において、デバイスから最新のデバイス情報を取得できない状況となっても、過去のデバイス情報を提供できる。
【００２３】
請求項１０に記載の情報処理装置は、請求項９に記載の情報処理装置において、前記取得手段は、複数種あるデバイス情報の内、過去に取得した履歴のある少なくとも一部のデバイス情報を取得対象として、当該取得手段の起動を契機に、取得対象となる前記少なくとも一部のデバイス情報を前記デバイスから取得することを特徴とする。
【００２４】
上記のように構成された情報処理装置によれば、過去に取得した履歴のある少なくとも一部のデバイス情報が、取得手段の起動を契機に取得されて記憶手段に記憶される。したがって、提供先へ提供される可能性が高いデバイス情報に絞って、デバイス情報の取得および記憶を行うことができる。
【００２５】
請求項１１に記載の情報処理装置は、請求項１〜請求項１０のいずれかに記載の情報処理装置において、前記取得手段は、前記デバイスの状態が変化するたびに前記デバイスから提供される前記デバイス情報を、前記デバイスから取得し、前記記憶手段は、前記取得手段が新たな前記デバイス情報を取得するたびに、取得された前記デバイス情報を記憶することを特徴とする。
【００２６】
上記のように構成された情報処理装置によれば、デバイス側の状態が変化するたびにデバイスから提供されるデバイス情報により、記憶手段に記憶されたデバイス情報を更新することができる。
【００２７】
記憶手段は、デバイス情報をコマンドと対応付けて記憶するように構成されていても良い（請求項１２）。
【００２８】
コマンド送信部により送信されるコマンドが、一度の送信によって複数回にわたってデバイス情報が取得可能となる所定のコマンドである場合に、記憶手段には、デバイス情報は、所定のコマンドと対応付けて記憶されると共に、所定のコマンドと同種情報を取得する為のコマンドにも対応付けて記憶されても良い（請求項１３）。
【００２９】
このような構成によれば、上記所定のコマンドを送信することによって、この所定のコマンドについてのみでなく、この所定のコマンドと同種情報を取得する為のコマンドについても最新の情報を取得することができる。
【００３０】
請求項１４に記載の情報処理方法は、コマンド要求を受け付け該コマンド要求をデバイスに送信するコマンド送信手順と、前記コマンドに対する応答として前記デバイスに関するデバイス情報を前記デバイスから取得する取得手順と、前記取得手順において取得された前記デバイス情報を記憶手段に記憶させる記憶制御手順と、前記取得手順によって取得された最新のデバイス情報と、前記記憶手段に記憶された過去のデバイス情報とのどちらを提供先に提供すべきかを判定する判定手順と、前記判定手順の判定結果に従って前記最新のデバイス情報と前記過去のデバイス情報のいずれかを前記提供先に提供する提供手順と、を備えたことを特徴とする。
【００３１】
上記のような情報処理方法によれば、最新のデバイス情報の提供以外に、過去のデバイス情報の提供を実行することができる。したがって、何らかの事情でデバイスからデバイス情報を取得することが困難な状況にある場合には、過去のデバイス情報を提供先へ提供することができ、これにより、提供先に対して迅速にデバイス情報を提供することができるようになる。
【発明を実施するための最良の形態】
【００３２】
次に、本発明の実施形態について一例を挙げて説明する。
［システム全体の構成］
図１は、パーソナルコンピュータ１（本発明でいう情報処理装置の一例に相当；以下、ＰＣ１という）とデバイス２とを備えてなるシステム全体の構成を示した概略構成図である。なお、本実施形態において例示するデバイス２は、プリンタである。
【００３３】
本実施形態において、ＰＣ１にはマルチタスク機能を備えたＯＳが搭載され、ＰＣ１が備えるＣＰＵは、ＯＳのマルチタスク機能により、複数のソフトウェアに基づく処理を時分割で並列に実行することができる。
【００３４】
そして、このマルチタスク機能を利用して、ＰＣ１上では、本発明に関連するソフトウェアとして、後から詳述する情報分配部１１や情報処理部１３Ａ〜１３Ｃ（本発明でいう提供先の一例に相当）などが機能するようになっている。
【００３５】
また、ＰＣ１上では、ＯＳが備える標準機能として、デバイス２との通信を行う機能を実現するデバイスコントローラや、デバイス２へ出力する印刷データを印刷ジョブとして管理する印刷スプーラなどが機能するようになっている。
【００３６】
なお、ＯＳによって提供されるこれらの各種機能そのものは公知なので、ここでの詳細な説明は省略するが、以下の説明においては、ＰＣ１が、Ｗｉｎｄｏｗｓ（登録商標）によって提供される各種機能を有するとの前提で説明を続ける。
【００３７】
ＰＣ１上で機能するソフトウェアのうち、情報分配部１１はサーバーとして機能し、複数の情報処理部１３Ａ〜１３Ｃはクライアントとして機能する。
より詳しくは、情報分配部１１は、各情報処理部１３Ａ〜１３Ｃからの要求に応じて、デバイス２からデバイス情報を取得する。そして、取得したデバイス情報を、各情報処理部１３Ａ〜１３Ｃからの要求に応じて、情報分配部１１が各情報処理部１３Ａ〜１３Ｃへ提供する。
【００３８】
情報処理部１３Ａ〜１３Ｃは、それぞれがデバイス情報を利用して各種情報処理を行っている。情報処理部１３Ａ〜１３Ｃが行う情報処理の具体例としては、例えば、取得したデバイス情報に基づいてデバイス２の状態をほぼリアルタイムでＰＣ１の表示部に表示するステータスモニターとしての処理を挙げることができる。あるいは、取得したデバイス情報に基づいてデバイス２のシリアル番号やファームウェアヴァージョン等の情報を表示する処理などを挙げることができる。
【００３９】
これらの情報処理部１３Ａ〜１３Ｃは、それぞれ独立したアプリケーションであり、情報処理部同士が互いに通信することはない。そのため、情報分配部１１が存在せず、複数の情報処理部１３Ａ〜１３Ｃが存在するようなシステムにおいては、特定の情報処理部（例えば、情報処理部１３Ａ）が他の情報処理部（例えば、情報処理部１３Ｂ、１３Ｃ）用に用意されたデータを吸い上げてしまい、本来データが渡るべき情報処理部に正しいデータが送られない場合がある。情報分配部１１は、このような問題を解決するために設けられたものであり、デバイス２からのデータを必要とする情報処理部１３Ａ〜１３Ｃにデータを分配する装置として働くものである。
【００４０】
なお、本実施形態では、３つの情報処理部１３Ａ〜１３Ｃが例示してあるが、情報処理部は並列にいくつ機能してもよい。また、各情報処理部が処理を開始するタイミングや処理を終了するタイミング等は任意であり、情報処理部毎に独立したタイミングで構わない。
【００４１】
一方、デバイス２は、ＰＣ１側からの要求に応じて、デバイス２に関する情報であるデバイス情報をＰＣ１に対して提供する機能を備えている。
本実施形態の場合、デバイス情報としては、例えば、オンライン、オフラインといった「デバイスの状態に関する情報」、用紙サイズ毎の印刷枚数あるいは総印刷枚数といった「使用頻度に関する情報」が提供される。
【００４２】
また、ドラム交換時期などの「交換部品の使用度合に関する情報」、トナーないしインク残量や記録用紙残量といった「消耗品の消耗度合に関する情報」、紙詰まり回数といった「異常の発生回数に関する情報」なども提供される。これらのデバイス情報のうち、どれを提供するかは、ＰＣ１側から送信されてくるコマンドにより指定される。
【００４３】
本実施形態において、ＰＣ１がデバイス２に対してデバイス情報を要求する際には、ＰＣ１からデバイス２に対してＰＪＬコマンドを送信する。ＰＪＬ（Printer Job Language；プリンタジョブ言語）は、プリンタが備える各種機能を制御するために用意されたコマンド言語で、Hewlett-Packard社において開発され、その後他社でも採用された周知のものである。
【００４４】
ＰＣ１からデバイス２へＰＪＬコマンドを送信する際には、ＰＣ１からデバイス２へ印刷データを出力する場合と同等の処理がＰＣ１において実行される。具体的には、ＰＣ１上で機能する情報処理部１３Ａ〜１３Ｃが、情報分配部１１に対してコマンド送信要求を送信すると、このコマンド送信要求に応じて情報分配部１１がＰＪＬコマンドを出力する。
【００４５】
情報分配部１１が出力したＰＪＬコマンドは、プリンタドライバ経由で印刷スプーラに引き渡され、印刷スプーラは、受け取ったＰＪＬコマンドを印刷ジョブとして処理する。その結果、ＰＪＬコマンドはデバイス２へと出力されることになる。
【００４６】
デバイス２では、通常の印刷データと同様にＰＪＬコマンドを受信するが、受信したデータのヘッダ情報からＰＪＬコマンドであることを認識し、その内容を解析する。その解析の結果、デバイス２が応答可能なＰＪＬコマンドであった場合は、デバイス２が内蔵するメモリに蓄積されているデバイス情報を読み出して、そのデバイス情報をＰＣ１へと送信する。
【００４７】
ＰＣ１では、情報分配部１１がデバイス２から返されるデバイス情報を取得する。このとき、どのような方法でデバイス情報を取得するかは、ＰＣ１−デバイス２間の通信インターフェースによっても変わり得るが、本実施形態において、ＰＣ１−デバイス２間はＵＳＢインターフェースを介して接続されている。
【００４８】
そのため、デバイス情報を取得する際には、情報分配部１１が情報の受信を行い、受信した情報量が０（ゼロ）であった場合には再び情報の受信を繰り返し、その繰り返し処理によって情報を取得する、という方法がとられる。
【００４９】
そして、何らかのデータを受信した場合は、そのデータが所期のデバイス情報であるかどうかをチェックし、所期のデバイス情報でない場合は、さらに受信処理をやり直し、最終的に所期のデバイス情報を取得することになる。
【００５０】
デバイス情報を取得した情報分配部１１は、キャッシュ１５にデバイス情報を格納する。このキャッシュ１５は、情報分配部１１が稼働を開始した際にメモリ上に確保される記憶領域で、キャッシュ１５内には、複数のＰＪＬコマンドそれぞれに対応する複数組分の記憶領域が確保されている。１組分の記憶領域には、対応付けられたＰＪＬコマンドに対する応答として返されるデバイス情報と、ＰＪＬコマンドの送信を要求したクライアント（情報処理部）のＩＤが記憶される。
【００５１】
次に、上記キャッシュ１５の利用方法を、図１を参照しながら具体例を交えて説明する。
情報処理部１３Ａが、“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”というＰＪＬコマンドの送信を、情報分配部１１に対して要求した場合、情報分配部１１は、そのコマンドをデバイス２に対して送信する。
【００５２】
そして、“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”に対する応答として返されるデバイス情報をデバイス２から取得した際には、そのデバイス情報とクライアントＩＤが、キャッシュ１５内にある“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”に対応する１組分の記憶領域に格納される。
【００５３】
例えば、デバイス２からデバイス情報“ＢＵＳＹ”が取得された場合、このデバイス情報は、キャッシュ１５内にある“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”に対応する１組分の記憶領域に格納される。
【００５４】
また、“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”の送信を要求したクライアント（情報処理部１３Ａ）のＩＤが“ＡＰ１”であれば、このＩＤが、キャッシュ１５内にある“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”に対応する１組分の記憶領域に格納される。
【００５５】
その後、情報処理部１３Ｂが、同じく“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”というＰＪＬコマンドの送信を、情報分配部１１に対して要求することがある。
この場合、情報分配部１１が、“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”に対する応答として返されるデバイス情報をデバイス２から取得した際には、そのデバイス情報とクライアントＩＤが、上記同様にキャッシュ１５内に格納される。例えば、“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”の送信を要求したクライアント（情報処理部１３Ｂ）のＩＤが“ＡＰ２”であれば、これがキャッシュ１５内に追加登録される。
【００５６】
一方、情報処理部１３Ａが、“＠ＰＪＬ２  ＩＮＦＯ  ＰＡＧＥ”というＰＪＬコマンドの送信を、情報分配部１１に対して要求した場合、情報分配部１１は、そのコマンドをデバイス２に対して送信する。
【００５７】
そして、“＠ＰＪＬ２  ＩＮＦＯ  ＰＡＧＥ”に対する応答として返されるデバイス情報をデバイス２から取得した際には、そのデバイス情報とクライアントのＩＤ（情報処理部１３Ａであれば“ＡＰ１”）が、キャッシュ１５内にある“＠ＰＪＬ２  ＩＮＦＯ  ＰＡＧＥ”に対応する１組分の記憶領域に格納される。
【００５８】
つまり、同じクライアントからコマンドの送信が要求された場合でも、そのコマンドが異なるコマンドである場合には、キャッシュ１５内の別の記憶領域に情報が保存される。
このようにして、デバイス情報がコマンド毎にキャッシュ１５に格納されるとともに、ＩＤがキャッシュ１５に格納される結果、キャッシュ１５には、図１に示すように、デバイス情報とＩＤとを１組とする複数組の情報が格納されることになる。
【００５９】
その後、クライアントからのリード要求を受けると、情報分配部１１は、リード要求の要求元に対応するＩＤを検索キーにして、キャッシュ１５内をサーチする。例えば、情報処理部１３Ａからのリード要求を受けた場合、ＩＤ：ＡＰ１を検索キーにしてキャッシュ１５内がサーチされる。
【００６０】
この場合、“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”と“＠ＰＪＬ２  ＩＮＦＯ  ＰＡＧＥ”に対応する記憶領域が検出されることになる。そして、検出された２組の記憶領域からデバイス情報が読み出され、それら２組分のデバイス情報が情報処理部１３Ａに対して提供されることになる。
【００６１】
なお、図１においては、理解しやすくするため、便宜的にキャッシュ１５内にコマンド種別を図示してあるが、コマンド種別そのものをキャッシュ１５内に記憶するか否かは任意である。
【００６２】
例えば、上述の例では、キャッシュ１５内におけるデバイス情報やＩＤの格納位置が、コマンド種別毎にあらかじめ決まっているので、コマンド種別に基づいて、デバイス情報やＩＤのキャッシュ１５への保存、キャッシュ１５からの読み出しが可能となる。したがって、この場合、コマンド種別をあえてキャッシュ１５内に記憶する必要はない。
【００６３】
［情報分配部における主処理］
次に、上記のような情報分配部１１の機能を実現するため、情報分配部１１において実行される主処理について、図２および図３のフローチャートに基づいて説明する。この処理は、情報分配部１１を機能させたい時点で開始されていればよい処理であり、例えば、ＰＣ１の起動に伴って開始される処理となっていればよい。
【００６４】
この処理を開始すると、情報分配部１１は、図２に示すように、過去に送信要求のあった情報要求コマンドを全機種に出力する（Ｓ１０５）。ここで「過去に送信要求のあった情報要求コマンド」は、情報分配部１１がクライアントから過去に受け取ったことがあるすべてのコマンド（ただし、情報要求を伴わない設定コマンド等は除く）であるが、これらのコマンドは、後述するＳ１５５の処理により、ＰＣ１が備えるデータベース（ファイル）に登録されている。
【００６５】
したがって、Ｓ１０５の処理では、データベースに登録された全てのコマンドを読み出して、読み出したコマンドをデバイス２へと出力する。また、ＰＣ１から複数のデバイス２を利用できる場合、それら複数のデバイス２全機種がコマンドの出力対象となる。
【００６６】
続いて、情報分配部１１は、クライアントとなる情報処理部１３Ａ〜１３Ｃからの要求待ちになる（Ｓ１１０）。ここで、情報処理部１３Ａ〜１３Ｃのいずれかから何らかの要求があるとＳ１１０の処理を抜け、続いて、情報分配部１１は、新規クライアント追加要求か否かを判断する（Ｓ１１５）。
【００６７】
Ｓ１１５の処理において、新規クライアント追加要求であった場合（Ｓ１１５：ＹＥＳ）、情報分配部１１は、要求元となったクライアントのＩＤを記憶する（Ｓ１２０）。
【００６８】
図１に示すように、クライアントである情報処理部１３Ａ〜１３Ｃには、それぞれユニークなＩＤ（図１に示した例では、ＡＰ１〜ＡＰ３）が付与されており、このＩＤがキャッシュ１５に記憶される。
【００６９】
続いて、情報分配部１１は、過去に送信要求のあった情報要求コマンドを全機種に出力する（Ｓ１２５）。この処理は、上述したＳ１０５の処理と同等な処理であり、この処理により、キャッシュ１５に記憶されたデバイス情報が、最新の情報（つまり、デバイス２に設定されている現在の情報）に更新されることになる。そして、Ｓ１２５の処理を終えたら、Ｓ１１０の処理へと戻り、再びＳ１１０以降の処理を繰り返す。
【００７０】
一方、上記Ｓ１１５の処理において、新規クライアント追加要求ではなかった場合（Ｓ１１５：ＮＯ）、続いて、情報分配部１１は、クライアント削除要求か否かを判断する（Ｓ１３０）。
【００７１】
Ｓ１３０の処理において、クライアント削除要求であった場合（Ｓ１３０：ＹＥＳ）、情報分配部１１は、要求元となったクライアントに対応するＩＤを削除する（Ｓ１３５）。また、削除対象となったクライアントからのみ要求されていたデバイス情報をキャッシュ１５から削除する（Ｓ１４０）。そして、Ｓ１４０の処理を終えたら、Ｓ１１０の処理へと戻り、再びＳ１１０以降の処理を繰り返す。
【００７２】
一方、上記Ｓ１３０の処理において、クライアント削除要求ではなかった場合（Ｓ１３０：ＮＯ）、情報分配部１１は、新規コマンド送信要求であるか否かを判断する（Ｓ１４５）。本実施形態においては、各情報処理部１３Ａ〜１３ＣからＰＪＬコマンドを含むコマンド送信要求が送信されてくる可能性がある。
【００７３】
Ｓ１４５の処理において、新規コマンド送信要求であった場合（Ｓ１４５：ＹＥＳ）、情報分配部１１は、送信要求されたＰＪＬコマンドと送信要求時刻をキャッシュ１５に記憶させる（Ｓ１５０）。なお、Ｓ１５０の処理でキャッシュ１５に記憶させたＰＪＬコマンドは、後述するＳ３１５の判断処理において参照されることになる。
【００７４】
続いて、情報分配部１１は、送信要求されたＰＪＬコマンドを、過去に送信要求があった情報要求コマンドとして登録する（Ｓ１５５）。このＳ１５５の処理により、送信要求されたＰＪＬコマンドはＰＣ１が備えるデータベース（ファイル）に登録されるので、既に説明したＳ１０５、Ｓ１２５の処理において、過去に送信要求があったコマンドを参照できることになる。
【００７５】
そして、情報分配部１１は、送信要求されたＰＪＬコマンドをスプーラ経由でデバイス２へ送信する（Ｓ１６０）。このＳ１６０の処理を終えたら、Ｓ１１０の処理へと戻り、再びＳ１１０以降の処理を繰り返す。
【００７６】
一方、Ｓ１４５の処理において、新規コマンド送信要求ではなかった場合（Ｓ１４５：ＮＯ）、本実施形態においては、クライアントからデバイス情報のリード要求を受けたものと判断する。なお、さらに「リード要求を受けた場合とは別の処理」に分岐する可能性があれば、Ｓ１４５の処理で否定判断がなされた後、リード要求を受けたか否かの判断を行ってもよいのはもちろんである。
【００７７】
リード要求を受けた場合、情報分配部１１は、要求元となったクライアントに対応するＩＤを取得して（Ｓ１６５）、以下、図３に示すように、そのＩＤを検索キーにしてキャッシュ１５の検索を行う（Ｓ２０５）。
【００７８】
Ｓ２０５の処理において、「検索キーにしたＩＤが登録された記憶領域」が１組もキャッシュ１５内から検出されないた場合には（Ｓ２１０：ＮＯ）、要求したコマンドに対応するデバイス情報が存在しないことになる。したがって、その場合は、Ｓ１１０の処理へと戻り、再びＳ１１０以降の処理を繰り返す。
【００７９】
一方、Ｓ２１０の処理において、要求したコマンドに対応するデバイス情報が１組分以上存在する場合には（Ｓ２１０：ＹＥＳ）、最新のデバイス情報取得まで最大２秒待つ（Ｓ２１５）。このＳ２１０の処理は、２秒待つまでもなく最新のデバイス情報を取得できた時点、または、最新のデバイス情報を取得できないまま２秒が経過した時点、いずれかの時点で終えることになる。
【００８０】
なお、最新のデバイス情報は、本処理と並列に実行されるキャッシュ管理常駐スレッド処理によりデバイス２から読み出されてキャッシュ１５に格納されるが、このキャッシュ管理常駐スレッド処理の詳細については後述する。
【００８１】
Ｓ２１５の処理を終えた場合、情報分配部１１は、最新のデバイス情報を受信したか否かを判断する（Ｓ２２０）。上述の通り、最新のデバイス情報はキャッシュ管理常駐スレッド処理（後述）によりキャッシュ１５に格納されるので、Ｓ２２０の処理では、最新のデバイス情報がキャッシュ１５に格納されているか否かを判断する。
【００８２】
ここで、最新のデバイス情報を受信していれば（Ｓ２２０：ＹＥＳ）、キャッシュ１５から検出した１組分以上のデバイス情報を、要求元となったクライアントに送信する（Ｓ２２５）。一方、最新のデバイス情報を受信していなければ（Ｓ２２０：ＮＯ）、情報分配部１１は、過去のデバイス情報がキャッシュ１５にあるか否かを判断する（Ｓ２３０）。
【００８３】
過去のデバイス情報がキャッシュ１５にある場合（Ｓ２３０：ＹＥＳ）、キャッシュ１５から検出した１組分以上のデバイス情報を、要求元となったクライアントに送信する（Ｓ２３５）。
【００８４】
このＳ２３５の処理により、キャッシュ１５にあるデバイス情報をクライアントに送信する際、本実施形態においては、キャッシュ１５に格納されていた過去のデバイス情報であることがクライアント側で認識できるように、デバイス情報を加工する。
【００８５】
具体例を交えて説明すると、デバイス情報の取得直後であれば、Ｓ２２５の処理により、クライアントへは、“デバイスへ送信したＰＪＬコマンド”＋“デバイスからの返り値”という形式を持つテキストデータが送信される。
【００８６】
例えば“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”というコマンドに対応するデバイス情報の場合、クライアントへは、“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”＋“デバイスからの返り値”という形式のテキストデータが返される。
【００８７】
一方、Ｓ２３５の処理により、キャッシュ１５から読み出したデータをクライアントに送信する場合は、“デバイスへ送信したＰＪＬコマンド”＋“デバイスからの返り値”という形式を持つテキストデータの内、データ中にある２番目のキーワードが加工される。
【００８８】
具体的には、デバイス情報が“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”＋“デバイスからの返り値”という形式になっている場合、２番目のキーワード“ＩＮＦＯ”に、キャッシュ１５からの取得を示す文字“Ｃ”を付加する加工が行われる。すなわち、加工後のデバイス情報は“＠ＰＪＬ１  ＣＩＮＦＯ  ＤＥＶＩＣＥ”＋“デバイスからの返り値”という形式になる。
【００８９】
そして、この加工後のデバイス情報がクライアントに送信される。したがって、クライアント側では、必要があれば、２番目のキーワードが“ＣＩＮＦＯ”であることに基づいて、キャッシュ１５に格納されていた過去のデバイス情報であることを認識できることになる。上記文字“Ｃ”は、本発明でいう「過去のデバイス情報であることを提供先側で識別可能とするための識別情報」の一例に相当する。なお、過去のデバイス情報がキャッシュ１５にない場合（Ｓ２３０：ＮＯ）、Ｓ２３５の処理はスキップされる。
【００９０】
以上説明したＳ２２０〜Ｓ２３５の処理は、ＰＣ１を本発明でいう提供手段として機能させる処理の一例に相当する。上記Ｓ２２０〜Ｓ２３５の処理は、いくつかに分岐するものの、いずれに分岐した場合ともＳ２４０の処理へと移行する。このＳ２４０の処理では、全要求の処理後もキャッシュを残すモードか否かが判定される（Ｓ２４０）。
【００９１】
本実施形態においては、「全要求の処理後もキャッシュを残すモード」と「全要求の処理後はキャッシュを削除するモード」のいずれかを、利用者が任意に選択して、選択したモードで処理が行われるように事前に設定しておくことができる。
【００９２】
「全要求の処理後もキャッシュを残すモード」が選択されていない場合、これは、全てのクライアントからの全ての送信要求に対してデバイス情報の送信が完了すれば、キャッシュ１５内にあるデバイス情報を利用しない、という主旨の設定がなされていることになる。そこで、この場合は（Ｓ２４０：ＮＯ）、全要求処理済みであればデバイス情報をキャッシュ１５から削除して（Ｓ２４５）、Ｓ１１０の処理へと戻る。
【００９３】
すなわち、対象となるＰＪＬ応答が単一のクライアント（例えば、情報処理部１３Ａ）のみから要求されたものであるならば、単一のクライアントに対する送信の後に、Ｓ２４５においてキャッシュ１５内のデータは消去される。また、対象となるＰＪＬ応答が複数のクライアント（例えば、情報処理部１３Ａ、１３Ｂ）から要求されたものであるならば、複数のクライアントすべて（例えば、情報処理部１３Ａ、１３Ｂの両方）に対する送信の後に、Ｓ２４５においてキャッシュ１５内のデータは消去される。
【００９４】
一方、「全要求の処理後もキャッシュを残すモード」が選択されている場合、これは、デバイス情報の送信が完了しても、その後、クライアントからの送信要求があれば、キャッシュ１５内にあるデバイス情報を利用する可能性がある、という主旨の設定となる。そこで、この場合は（Ｓ２４０：ＹＥＳ）、Ｓ２４５の処理を実行することなく、Ｓ１１０の処理へと戻る。
【００９５】
［情報分配部におけるキャッシュ管理常駐スレッド処理］
次に、情報分配部１１において主処理と並列に実行されるキャッシュ管理常駐スレッド処理について、図４および図５のフローチャートに基づいて説明する。
【００９６】
この処理を開始すると、情報分配部１１は、デバイス２からデバイス情報を取得する（Ｓ３０５）。なお、このＳ３０５の処理、ないしＳ３０５の処理を含むキャッシュ管理常駐スレッド処理は、ＰＣ１を本発明でいう取得手段として機能させる処理の一例に相当する。
【００９７】
続いて、情報分配部１１は、デバイス情報を取得できたか否かを判断する（Ｓ３１０）。ここで、まだデバイス２に対してＰＪＬコマンドが送信されていない場合など、デバイス２側がデバイス情報を送信できる状態にない場合は、デバイス情報を取得できないので（Ｓ３１０：ＮＯ）、Ｓ４０５の処理（図５参照）へと進む。
【００９８】
一方、何らかのデバイス情報を取得できた場合は（Ｓ３１０：ＹＥＳ）、Ｓ３０５の処理で取得した情報が、クライアントから送信要求されたコマンドに対する応答として返されたデバイス情報か否かを判断する（Ｓ３１５）。
【００９９】
クライアントから送信要求されたコマンドは、上述したＳ１５０の処理によりキャッシュ１５に記憶されている。したがって、Ｓ３１５の処理では、Ｓ１５０の処理でキャッシュ１５に記憶されたコマンドと、Ｓ３０５の処理で取得した情報とを対比することにより、所期のデバイス情報であるかどうかを判断することができる。
【０１００】
Ｓ３１５の処理において、クライアントから送信要求されたコマンドに応じたデバイス情報であった場合は（Ｓ３１５：ＹＥＳ）、デバイス情報の格納先となるキャッシュ内の領域をサーチする（Ｓ３２０）。
【０１０１】
そして、取得したデバイス情報が、ＵＳＴＡＴＵＳ系コマンドに対するデバイス情報であるか否かを判断する（Ｓ３２５）。ここで言う「ＵＳＴＡＴＵＳ系コマンド」とは、ＰＪＬコマンド中に含まれる２番目のキーワードが“ＵＳＴＡＴＵＳ”となっているコマンドのことである。図１中に示した例で言えば、“＠ＰＪＬ  ＵＳＴＡＴＵＳ  ＤＥＶＩＣＥ”が、ＵＳＴＡＴＵＳ系コマンドに該当する。
【０１０２】
したがって、Ｓ３２５の処理では、取得したデバイス情報に対応するＰＪＬコマンド中に、どのような文字列が含まれているのかを解析し、２番目のキーワードが“ＵＳＴＡＴＵＳ”であるか否かが判断されることになる。
【０１０３】
この判断の結果、ＵＳＴＡＴＵＳ系コマンドであった場合（Ｓ３２５：ＹＥＳ）、続いて、そのＵＳＴＡＴＵＳ系コマンドと同種情報を取得するためのＩＮＦＯ系コマンドに対応するキャッシュに、デバイス情報を記憶する（Ｓ３３０）。
【０１０４】
ここで言う「ＩＮＦＯ系コマンド」とは、ＰＪＬコマンド中に含まれる２番目のキーワードが“ＩＮＦＯ”となっているコマンドのことである。図１中に示した例で言えば、“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”、“＠ＰＪＬ  ＩＮＦＯ  ＰＡＧＥ”、“＠ＰＪＬ  ＩＮＦＯ  ＤＲＵＭ”が、ＩＮＦＯ系コマンドに該当する。
【０１０５】
また、ＵＳＴＡＴＵＳ系コマンドと同種情報を取得するためのＩＮＦＯ系コマンドであるか否かは、ＰＪＬコマンド中に含まれる３番目のキーワードが一致すれば同種、一致しなければ異種と判断する。
【０１０６】
したがって、図１中に示した例で言えば、“＠ＰＪＬ１  ＩＮＦＯ  ＤＥＶＩＣＥ”は、“＠ＰＪＬ  ＵＳＴＡＴＵＳ  ＤＥＶＩＣＥ”と同種情報を取得するためのＩＮＦＯ系コマンドに該当する。また、“＠ＰＪＬ  ＩＮＦＯ  ＰＡＧＥ”、“＠ＰＪＬ  ＩＮＦＯ
ＤＲＵＭ”は、“＠ＰＪＬ  ＵＳＴＡＴＵＳ  ＤＥＶＩＣＥ”と同種情報を取得するためのＩＮＦＯ系コマンドには該当しない。
【０１０７】
以上のようなコマンドの内、ＵＳＴＡＴＵＳＵ系コマンドは、デバイス２に対して１度送信すると、その後は、デバイス２側での状態変化が発生する毎に、新たなデバイス情報の提供がなされることになるコマンドである。一方、ＩＮＦＯ系コマンドは、デバイス２に対して１度送信すると、その送信に対する応答として１度だけデバイス情報の提供がなされることになるコマンドである。
【０１０８】
ただし、ＵＳＴＡＴＵＳＵ系コマンドとＩＮＦＯ系コマンドで、３番目のキーワードが同一になる場合、取得できるデバイス情報は同一になる。そこで、Ｓ３０５の処理でデバイス情報が取得でき、且つ、そのデバイス情報がＵＳＴＡＴＵＳ系コマンドに対応したものであれば、Ｓ３３０の処理を実行するようにしている。
【０１０９】
これにより、ＵＳＴＡＴＵＳ系コマンドに対応したデバイス情報を取得した場合には、ＵＳＴＡＴＵＳ系コマンドと同種情報を取得するためのＩＮＦＯ系コマンドに対応するキャッシュにもデバイス情報が記憶される。
【０１１０】
つまり、一度の送信によって複数回にわたってデバイス情報を取得可能となるコマンド（ＵＳＴＡＴＵＳ系コマンド）と一度の送信によって一度だけ情報を取得可能なコマンド（ＩＮＦＯ系コマンド）について、いずれか一方のコマンドによってデバイス情報を取得した場合に、双方に対応するキャッシュを更新することで、他方のコマンドを送信していないにもかかわらず、他方のコマンドに対応するキャッシュも最新情報に更新可能に構成してあるのである。
【０１１１】
こうしてＳ３２５またはＳ３３０の処理を終えたら、続いて、Ｓ３０５の処理で取得したデバイス情報とＳ３２０の処理で検出したＩＤとを組にして、コマンドに対応するキャッシュ１５に記憶させる（Ｓ３３５）。ちなみに、上記Ｓ３３０およびＳ３３５の処理によってデバイス情報が格納されるキャッシュ１５は、本発明でいう記憶手段の一例に相当する。
【０１１２】
なお、Ｓ３１５の処理において、クライアントから送信要求されたコマンドに応じたデバイス情報ではなかった場合は（Ｓ３１５：ＮＯ）、上記Ｓ３２０〜Ｓ３３５の処理をスキップする。
【０１１３】
こうして、Ｓ３１５〜Ｓ３３５の処理を終えたら、引き続いて、デバイス情報をキャッシュ１５から削除するかどうかの判定を行う（Ｓ４０３〜Ｓ４２５）。Ｓ４０３では、判定対象となるデバイス情報が一つキャッシュ１５から取り出される。なお、具体的な判定条件はいくつかあるが、まず第１に、判定対象となるデバイス情報が送信済みか否かを判断する（Ｓ４０５）。
【０１１４】
Ｓ４０５の処理で、判定対象となるデバイス情報がすべての要求クライアントに対し送信済みと判定されるのは、既に説明した別スレッドでの処理の中で、Ｓ２２５またはＳ２３５の処理が実行されている場合である。ここで、判定対象となるデバイス情報がまだ未送信であれば（Ｓ４０５：ＮＯ）、後述するＳ４３５の処理へと進む。
【０１１５】
一方、判定対象となるデバイス情報が送信済みであった場合は（Ｓ４０５：ＮＯ）、第２に、判定対象となるデバイス情報が即時性の高いデバイス情報か否かを判断する（Ｓ４１０）。ここで言う「即時性の高いデバイス情報」とは、キャッシュから取り出した情報では有用性が低く、利用者が常に最新の情報を得たいと考える情報のことである。
【０１１６】
即時性の高いデバイス情報か否かは、あらかじめＰＪＬコマンド毎に決められて、データベース（ファイル）に登録されている。また、このデータベースは、専用ツールやエディタを利用して利用者が任意に書き換えることができる。
【０１１７】
したがって、通常は、データベースに初期値として登録されたＰＪＬコマンドに対応するデバイス情報について、即時性が高いと判断されることになり、また、そのような判断の一部または全部を変更したい利用者は、任意に判断基準を変更することもできる。
【０１１８】
Ｓ４１０の処理では、判定対象となるデバイス情報に対応するコマンドが、データベースに登録されたコマンドか否かを判定することになる。この判定の結果、即時性の高いデバイス情報であれば（Ｓ４１０：ＹＥＳ）、後述するＳ４３０の処理へと進む。
【０１１９】
一方、即時性の高いデバイス情報でなかった場合は（Ｓ４１０：ＮＯ）、第３に、デバイス２と通信が確立できるか否かを判断する（Ｓ４１５）。デバイス２と通信が確立できない状態とは、例えば、デバイス２の電源スイッチがオフにされた場合、デバイス２との接続に使われているケーブルが外された場合などである。この判定の結果、デバイス２と通信が確立できなければ（Ｓ４１５：ＮＯ）、後述するＳ４３０の処理へと進む。
【０１２０】
また、デバイス２と通信が確立できた場合は（Ｓ４１５：ＹＥＳ）、第４に、判定対象となるデバイス情報の受信から５分以上経過した情報か否かを判断する（Ｓ４２０）。この判定の結果、判定対象となるデバイス情報の受信から５分以上経過していなければ（Ｓ４２０：ＮＯ）、後述するＳ４３５の処理へと進む。
【０１２１】
さらに、判定対象となるデバイス情報の受信から５分以上経過していた場合は（Ｓ４２０：ＮＯ）、第５に、判定対象となるデバイス情報について、最後の送信要求から５分以上経過した情報か否かを判断する（Ｓ４２５）。
【０１２２】
この判定の結果、最後の送信要求から５分以上経過していれば（Ｓ４２５：ＹＥＳ）、後述するＳ４３０の処理へと進む。また、最後の送信要求から５分以上経過していなければ（Ｓ４２５：ＮＯ）、後述するＳ４３５の処理へと進む。
【０１２３】
以上のようなＳ４１０〜Ｓ４２５の処理による判定の結果、Ｓ４３０の処理へと進んだ場合、判定対象となったデバイス情報を、キャッシュ１５から削除する（Ｓ４３０）。すなわち、Ｓ４０５〜Ｓ４３０の処理によってデバイス情報の提供が実行されるのを阻止する。なお、Ｓ４３０の処理は、ＰＣ１を本発明でいう阻止手段ないし消去手段として機能させる処理の一例に相当する。
【０１２４】
さて、Ｓ４３０の処理を終えた場合、もしくは、Ｓ４１０〜Ｓ４２５の処理による判定の結果、Ｓ４３５の処理へと進んだ場合、全てのデバイス情報を処理済みか否かを判断する（Ｓ４３５）。
【０１２５】
キャッシュ１５には、複数のコマンド種別と同数分のデバイス情報が保存されているので、Ｓ４３５の処理では、これらのデバイス情報すべてを処理済みか否かが判断される。そして、処理を終えていない場合は（Ｓ４３５：ＮＯ）、Ｓ４０３の処理へと戻ることにより、Ｓ４０３〜Ｓ４３０の処理を繰り返す。この繰り返し処理により、キャッシュ１５内にあるすべてのデバイス情報が処理対象とされることになる。
【０１２６】
そして、キャッシュ１５内にあるすべてのデバイス情報が処理済みとなった場合には（Ｓ４３５：ＹＥＳ）、１秒待機して（Ｓ４４０）、Ｓ３０５の処理へと戻り、Ｓ３０５以降の処理を繰り返す。
【０１２７】
以上のような常駐スレッド処理が情報分配部１１において実行されることにより、Ｓ３０５の処理でデバイス２からデバイス情報を取得する毎に、Ｓ３１５以降の処理が実行される。この処理により、キャッシュ１５には、異なるコマンド毎に各コマンドに対応するデバイス情報が格納されることになる。
【０１２８】
また、キャッシュ１５に格納されたデバイス情報は、一部（場合によっては全部）が、Ｓ４０５〜Ｓ４２５の処理による判断結果に応じてキャッシュ１５から削除されることになる。
【０１２９】
［上記実施形態の効果］
以上説明した通り、上記ＰＣ１によれば、上記Ｓ２２５の処理により、最新のデバイス情報を提供でき、しかも、上記Ｓ２３５の処理により、過去のデバイス情報を提供することもできる。
【０１３０】
したがって、デバイス情報の取得に時間がかかっている等、何らかの事情でデバイス２からデバイス情報を取得することが困難な状況にある場合には、過去のデバイス情報を情報処理部１３Ａ〜１３Ｃへ提供できる。よって、情報処理部１３Ａ〜１３Ｃに対して迅速にデバイス情報を提供できるようになる。
【０１３１】
また、上記ＰＣ１によれば、過去のデバイス情報を提供する際には、Ｓ２３５の処理において、識別情報（上記実施形態では文字“Ｃ”）をデバイス情報に付加し、この情報を情報処理部１３Ａ〜１３Ｃに対して提供する。したがって、情報処理部１３Ａ〜１３Ｃでは、提供されたデバイス情報が過去のものであるのか否かを判別できる。
【０１３２】
また、上記ＰＣ１、過去のデバイス情報として提供しないデバイス情報に関しては、Ｓ４０５〜Ｓ４３０の処理によってデバイス情報の提供が実行されるのを阻止する。したがって、過去のデバイス情報を提供したくないケースに関し、上記Ｓ２３５の処理によって過去のデバイス情報が提供されてしまうのを防止できる。
【０１３３】
また、上記ＰＣ１によれば、情報分配部１１ないしキャッシュ管理常駐スレッド処理の起動を契機にＳ１０５の処理が実行され、それに対応して提供されるデバイス情報がＳ３０５の処理によって取得されてキャッシュ１５に記憶される。
【０１３４】
したがって、その後、情報処理部１３Ａ〜１３Ｃへのデバイス情報の提供が必要となった時点において、デバイスから最新のデバイス情報を取得できない状況となっても、過去のデバイス情報を提供できる。
【０１３５】
しかも、Ｓ１０５の処理においては、過去に取得した履歴のあるデバイス情報が取得対象になるので、情報処理部１３Ａ〜１３Ｃへ提供される可能性が高いデバイス情報に絞って、デバイス情報の取得および記憶を行うことができる。
【０１３６】
さらに、上記ＰＣ１によれば、ＵＳＴＡＴＵＳ系コマンドをデバイス２へ送信した後、キャッシュ管理常駐スレッド処理により、デバイス２の状態が変化するたびにデバイス２から提供されるデバイス情報を取得して、キャッシュ１５を更新することができる。
【０１３７】
［変形例等］
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【０１３８】
例えば、上記実施形態では、デバイスの例としてプリンタを示したが、プリンタ機能を有する複合機（ＭＦＰ；Multifunction Peripheral）、プリンタ機能を有するファクシミリ装置など、各種プリンタ系デバイスを対象とすることができるのはもちろんである。
【０１３９】
また、これらプリンタ系デバイス以外のデバイスであっても本発明の構成を採用することができる。また、ＰＪＬコマンドは、一般にプリンタ系デバイスを制御するためのコマンドとして採用されているものなので、プリンタ系デバイス以外のデバイスにおいて本発明の構成を採用する場合には、ＰＪＬコマンドとは異なる体系のコマンドを使用してもよい。
【０１４０】
また、上記実施形態では、情報処理部１３Ａ〜１３Ｃから情報分配部１１への要求を契機として、デバイス情報が情報処理部１３Ａ〜１３Ｃへ提供されるようになっていたが、これに限らない。例えば、情報分配部１１側が能動的に情報処理部１３Ａ〜１３Ｃへ情報を提供するように構成してもよい。
【０１４１】
加えて、上記実施形態では、所定時間だけ待ってもデバイス２から応答が得られない場合に、情報分配部１１がキャッシュ１５内の情報を情報処理部１３Ａ〜１３Ｃへ提供するように構成してあったが、これに限らない。例えば、所定時間内にデバイス２から応答が得られたものの、その応答がエラーであったような場合に、情報分配部１１がキャッシュ１５内の情報を情報処理部１３Ａ〜１３Ｃへ提供するように構成してもよい。
【０１４２】
さらに、デバイス２から取得したデバイス情報を記憶するための記憶手段は、デバイス２から受信したデータを全クライアントに送信（分配）するまで記憶する主記憶領域と、受信した後に一定時間データを保持するキャッシュ領域とを分けて管理する構成にしてもよい。
【０１４３】
この場合、デバイス２から送られてきたＰＪＬ受信データは、主記憶領域に無条件でコピーされる。一方、キャッシュ領域には、上記Ｓ２４０とＳ４１０と同等の判断を行い、選択的にデータが記憶される。すなわち、キャッシュにデータを残すモードであって、且つ、即時性の低いＰＪＬ受信データを受信した場合のみ、キャッシュ領域にデータを残す。
【０１４４】
このように構成した場合にあっては、上記即時性判断による選択的なキャッシュ領域への記憶と、クライアントへの送信後に実施される主記憶領域の消去処理の組み合わせにより、本発明でいう阻止手段ないし消去手段を構成することになる。
【０１４５】
図３のＳ２３５では、過去の情報であることを示す識別情報としての文字“Ｃ”がデバイス情報に付加される。しかしながら、Ｓ２３５の処理は、デバイス情報に対してこのような文字“Ｃ”が付加されないように構成されていても良い。このように構成することで、汎用的なクライアントであっても情報分配部１１と協働して動作することが可能となる。或いは、Ｓ２３５の処理は、デバイス情報に文字“Ｃ”を付加する動作モードとデバイス情報に文字“Ｃ”を付加しない動作モードとを切替え可能に構成されていても良い。
【図面の簡単な説明】
【０１４６】
【図１】システム全体の概略構成図。
【図２】情報分配部において実行される主処理のフローチャート（その１）。
【図３】情報分配部において実行される主処理のフローチャート（その２）。
【図４】情報分配部において実行されるキャッシュ管理常駐スレッド処理のフローチャート（その１）。
【図５】情報分配部において実行されるキャッシュ管理常駐スレッド処理のフローチャート（その２）。
【符号の説明】
【０１４７】
１・・・パーソナルコンピュータ、２・・・デバイス、１１・・・情報分配部、１３Ａ〜１３Ｃ・・・情報処理部、１５・・・キャッシュ。
【図２】
2008217777.tif 000003
【図３】
2008217777.tif 000004
【図４】
2008217777.tif 000005
【図５】
2008217777.tif 000006
【図１】
2008217777.tif 000007