以下に添付図面を参照して、この発明にかかる通信装置の最良な実施の形態を詳細に説明する。
(第1の実施の形態)
第1の実施の形態にかかる通信システムは、ネットワークを介してサービスを提供する通信装置がサービスの処理状態の変化を検知し、処理状態が変化した場合にサービスに関する関連情報をサービスの提供を受けるクライアント装置(情報処理装置)に通知するものである。
なお、本実施の形態では、サービスに関する関連情報として、通信装置の装置名、ハードウェア構成を表す情報、各ハードウェア構成部の状態を表す情報、警告を表す情報、指定された処理の単位であるジョブの状態を表す状態などを取得する。以下では、これらの関連情報を機器情報という。例えば、通信装置のモデル情報、給紙トレイ情報、排紙トレイ情報、トナー情報、機器状態情報などが機器情報に該当する。
また、以下では、印刷機能を提供するプリンタ装置を通信装置とし、指定された印刷処理の単位である印刷ジョブの状態を追跡するジョブ追跡システムとして本実施の形態の通信システムを実現した例について説明する。
このようなジョブ追跡システムでは、上述のように、従来は情報処理装置からポーリングすることによってジョブの状態を監視していた。そして、プリンタ装置の印刷性能向上により、ポーリングする時間より印刷状態の変化のほうが速くなり、印刷状態の変化を適切に監視できない場合が生じていた。
例えば、印刷状態は、以下のように幾つかの段階に分けられる。
(1)印刷データの受信開始
(2)印刷データの受信終了
(3)印刷データの印刷開始前
(4)印刷データの印刷開始
(5)印刷データの印刷中(印刷中のページの情報を含む)
(6)印刷データの印刷終了
通常は、ポーリングにより(1)から(6)の各段階の状態を順番に取得する。しかし、印刷性能の向上により、(1)の状態を受け取り、一定時間後にポーリングしたときには、既に印刷状態が(6)に遷移している場合がある。ポーリングする時間間隔を短くすることによって対応可能であるが、SNMPで印刷状態を頻繁に問い合わせると、プリンタ装置の処理性能の悪化を招くという問題が生じる。
また、印刷状態を記憶するためのRAM(Random Access Memory)などの記憶媒体の記憶容量が制限されることに起因する問題も存在する。容量制限のため、印刷が完了した古い印刷ジョブの情報は逐次記憶媒体から消去される。記憶容量が少ないほど、ジョブ情報が消去される可能性が高くなる。このようにジョブ情報が消去されるため、ジョブの処理状態の追跡ができない場合が生じうる。これに対し、メモリ増設などで対応することが可能だが、コストの増大を招くという問題が生じる。
本実施の形態によれば、以下に説明するように、プリンタ装置自身が、装置性能に応じて予め定めた一定時間間隔で、ジョブの処理状態を監視し、処理状態の変化あった場合のみ、情報処理装置に対して処理状態を通知する。これにより、状態把握の即時性を図り、印刷状態の監視を容易かつ適切に実行可能となる。また、処理状態に関する情報は、記憶容量が大きいHDD(Hard Disk Drive)等の記憶媒体に記憶することができるため、記憶容量の制限の問題も解消可能である。
なお、適用可能な通信システムは印刷ジョブのジョブ追跡システムに限られるものではなく、ネットワークを介してサービスを提供する通信装置と、当該サービスを利用し、サービスに関連する関連情報を監視する情報処理装置とを備えた通信システムであれば、あらゆる構成のシステムに対して本実施の形態の方法を適用できる。
図1は、第1の実施の形態にかかる通信システムの構成を示すブロック図である。図1に示すように、本実施の形態にかかる通信システムは、情報処理装置としてPC(Personal computer)200aおよび200bと、通信装置としてデバイス100a、100b、100c、および100dとがLANなどのネットワーク300を介して接続された構成となっている。
なお、PC200a、200bは同様の構成を有するため、以下では単にPC200という場合がある。同様に、デバイス100a、100b、100c、および100dを単にデバイス100という場合がある。
PC200は、デバイス100が提供するサービスを利用するアプリケーションなどを実行する装置である。デバイス100は、プリンタ、コピー機などのネットワークでサービスを提供する装置である。
図1のような構成の場合、従来は、PC200からデバイス100に対してポーリングを行うことによりデバイス100の処理状態を監視していた。これに対し、本実施の形態では、同図に示すように、処理状態の変化などの事由の変化が発生したときに、デバイス100側からPC200に対して処理状態を通知する。これにより、ポーリングの間隔より状態変化の間隔が短い場合であっても適切に処理状態を監視することができる。すなわち、状態監視の即時性を実現することができる。
図2は、第1の実施の形態にかかるデバイス100およびPC200の詳細な構成を示すブロック図である。なお、図2では、PC200およびデバイス100をそれぞれ1つのみ記載しているが、図1と同様に複数のPC200およびデバイス100を相互に接続するように構成することができる。
まず、デバイス100の構成について説明する。図2に示すように、本実施の形態にかかるデバイス100は、通信I/F(インターフェース)130と、記憶部140と、デバイス制御部120と、監視部111と、クライアント管理部112と、情報取得部113と、キャッシュ管理部114とを備えている。
通信I/F130は、PC200等の外部機器との間で通信を行うインターフェースである。
記憶部140は、デバイス制御部120から取得した機器情報など各種情報を記憶するものであり、HDD、光ディスク、メモリカードなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
デバイス制御部120は、デバイス100の動作を制御するものである。デバイス100がプリンタ装置である場合は、デバイス制御部120は、印刷機構やI/O制御などを行う。また、デバイス制御部120は、機器情報の取得機能によってデバイス100の機器情報を提供可能な情報提供部121を備えている。なお、情報提供部121は、機器情報の取得機能の他に、機器情報を設定する機能も備えている。
監視部111は、通信I/F130を介してPC200から機器情報の監視要求を受信し、監視要求にしたがって後述する情報取得部113が取得した機器情報をPC200に通知するものである。
キャッシュ管理部114は、記憶部140の管理に関する処理を行うものである。例えば、キャッシュ管理部114は、情報を格納する領域を初期化する処理や、取得した機器情報およびPC200から送信されたアドレス情報などを記憶部140に対して登録する処理を行う。
また、キャッシュ管理部114は、後述する情報取得部113の要求に応じて、情報取得部113がデバイス制御部120から取得した最新の機器情報と、既に記憶部140に記憶されている機器情報とを比較し、機器情報が変化しているか否かを判断する。なお、上述の監視部111は、機器情報が変化したと判断された場合に、PC200に取得した機器情報を通知する。
クライアント管理部112は、PC200のアドレス情報などのPC200に関する情報(以下、クライアント情報という。)を管理するものである。具体的には、クライアント管理部112は、PC200から取得したクライアント情報をキャッシュ管理部114によって記憶部140に保存する。
図3は、記憶部140に保存されるクライアント情報のデータ構造の一例を示す説明図である。図3に示すように、クライアント情報として、PC200のIPアドレスと、PC200上のアプリケーションが利用するポート番号と、監視開始フラグとが対応づけてられて記憶部140に保存される。監視開始フラグとは、機器情報の監視要求を受信したか否かを表す情報であり、監視要求を受信した場合に「1」、受信していない場合に「0」が設定される。
図2に戻り、情報取得部113は、情報提供部121を用いてデバイス制御部120の機器情報を取得し、後述するキャッシュ管理部114によって記憶部140に記憶するものである。
図4は、記憶部140に保存される機器情報のデータ構造の一例を示す説明図である。図4に示すように、機器情報は、Category、Function、およびPropertyによって階層化された階層構造で表される。そして、取得された機器情報の値は、Valueフィールドに保存される。なお、Category、Function、およびPropertyによって機器情報が識別される。
同図では、デバイス100のシステム構成に関する情報(System)、印刷するトレイに関する情報(Input Tray)、デバイス100の状態に関する情報(Status)、警告に関する情報(Alert)、および印刷ジョブに関する情報(Job)などが機器情報として保存される例が示されている。
なお、監視部111、クライアント管理部112、情報取得部113、およびキャッシュ管理部114は、本実施の形態の監視処理のために追加される構成部であり、例えば、SDK(Software Development Kit)などのようなプログラムとして提供され、デバイス100内にインストールされるように構成することができる。
次に、PC200の構成について説明する。図2に示すように、PC200は、アプリケーション201と、監視制御部202と、通信I/F203とを備えている。
アプリケーション201は、デバイス100の監視を行う機器管理機能、またはデバイス100に対する印刷指示機能などを備えたアプリケーションである。アプリケーション201は、次に説明する監視制御部202を用いて、デバイス100の機器情報を監視する。
監視制御部202は、デバイス100の監視部111と通信することによりデバイス100の状態監視処理を制御するものである。具体的には、監視制御部202は、PC200を機器情報の通知対象としてデバイス100に登録するためのクライアント登録要求、機器情報の取得要求、および取得した機器情報の変更を監視するための監視開始要求をデバイス100に送信する。また、監視制御部202は、各要求に応じてデバイス100から送信された処理結果や機器情報をアプリケーション201に通知する。
通信I/F203は、デバイス100等の外部機器との間で通信を行うインターフェースである。
なお、監視制御部202が、本実施の形態の監視処理のためにPC200に追加される構成部であり、SDK(Software Development Kit)などのようなプログラムとして提供され、PC200内にインストールされるように構成することができる。
次に、このように構成された第1の実施の形態にかかる通信システムの処理シーケンスについて説明する。本実施の形態の通信システムでは、記憶部140の初期化を行う初期化処理、およびPC200からの監視要求を受けて機器情報を監視する監視処理が実行される。
最初に、初期化処理の処理シーケンスについて図5を用いて説明する。図5は、第1の実施の形態における初期化処理の全体の流れを示すシーケンス図である。初期化処理は、デバイス100の電源が投入されたときに実行される処理である。
まず、デバイス100の電源が投入されると、監視部111は、クライアント管理部112に対して初期化を要求する(ステップS501)。クライアント管理部112は、記憶部140にクライアント情報の格納領域を確保するため、キャッシュ管理部114に対して、必要な領域の初期化を要求する(ステップS502)。キャッシュ管理部114は、必要な領域の初期化を行い、クライアント管理部112に処理結果を通知する(ステップS503)。
次に、クライアント管理部112は、情報取得部113に対して初期化を要求する(ステップS504)。情報取得部113は、記憶部140に機器情報の格納領域を確保するため、キャッシュ管理部114に対して、必要な領域の初期化を要求する(ステップS505)。キャッシュ管理部114は、必要な領域の初期化を行い、情報取得部113に処理結果を通知する(ステップS506)。
このステップでは、キャッシュ管理部114は、図4に示すような機器情報を格納するための領域を記憶部140内に確保する。なお、領域を確保する機器情報を定めた定義情報は、予め記憶部140などの記憶媒体に保存しておき、このステップで参照するものとする。
次に、情報取得部113は、受信した処理結果をクライアント管理部112に通知する(ステップS507)。最後に、クライアント管理部112は、監視部111に処理結果を通知して(ステップS508)、初期化処理を終了する。
次に、監視処理のシーケンスについて図6および図7を用いて説明する。図6および図7は、第1の実施の形態における監視処理の全体の流れを示すシーケンス図である。
監視処理は、初期化処理が終了後、PC200のアプリケーション201からの要求を契機として開始される。例えば、アプリケーション201がデバイス100に対して印刷要求を送信後、開始した印刷ジョブの状態を監視することを要求する場合などが該当する。
まず、アプリケーション201からデバイス100の監視要求を受けた監視制御部202は、PC200を機器情報の通知対象として登録するためのクライアント登録要求を、デバイス100の監視部111に送信する(ステップS601)。クライアント登録要求には、PC200のIPアドレスとポート番号とが含まれる。
次に、監視部111は、クライアント管理部112に対して、受信したクライアント登録要求を通知する(ステップS602)。クライアント管理部112は、クライアント登録要求に含まれるIPアドレスとポート番号とを対応づけたクライアント情報を記憶部140へ保存することを、キャッシュ管理部114に要求する(ステップS603)。なお、この時点では、クライアント情報の監視開始フラグは「0(監視要求を受信していない)」を設定する。
次に、キャッシュ管理部114が、クライアント情報の保存結果をクライアント管理部112に通知する(ステップS604)。続いて、クライアント管理部112は、保存結果を監視部111に送信する(ステップS605)。また、監視部111は、受信した保存結果をさらにPC200の監視制御部202に送信する(ステップS606)。
クライアント情報の保存が正常に実行された場合は、監視制御部202は、さらに機器情報を取得して記憶部140に保存するために、機器情報の取得要求をデバイス100の監視部111に送信する(ステップS607)。
次に、監視部111は、機器情報の取得要求をクライアント管理部112に通知する(ステップS608)。続いて、クライアント管理部112は、機器情報の取得要求を情報取得部113に通知する(ステップS609)。
情報取得部113は、情報提供部121が提供する機器情報の取得機能を用いて、デバイス制御部120の機器情報の取得を要求する(ステップS610)。情報提供部121は、デバイス制御部120から取得した機器情報を情報取得部113に通知する(ステップS611)。
次に、情報取得部113は、取得した機器情報を記憶部140に保存することをキャッシュ管理部114に対して要求する(ステップS612)。キャッシュ管理部114は、要求に応じて機器情報を記憶部140に保存し、保存結果を情報取得部113に通知する(ステップS613)。
保存が正常に実行された場合は、情報取得部113は、取得した機器情報をクライアント管理部112に通知する(ステップS614)。クライアント管理部112は、通知された機器情報を監視部111に通知する(ステップS615)。さらに、監視部111は、通知された機器情報を、PC200の監視制御部202に送信する(ステップS616)。
機器情報を受信した監視制御部202は、機器情報の監視開始を監視部111に要求する(ステップS617)。監視部111は、クライアント管理部112に対して、機器情報の監視開始を要求する(ステップS618)。
次に、クライアント管理部112は、キャッシュ管理部114に対して、保存しているクライアント情報の監視開始フラグを更新することを要求する(ステップS619)。具体的には、クライアント管理部112は、監視開始フラグを「1(監視要求を受信)」に更新することを要求する。
このような監視開始フラグを利用することにより、クライアント情報を登録しているすべてのPC200に機器情報を通知するのでなく、通知を必要としているPC200にのみ機器情報を通知することができる。
キャッシュ管理部114は、クライアント情報の監視開始フラグを「1」に更新し、更新結果をクライアント管理部112に通知する(ステップS620)。
更新が正常に実行された場合は、クライアント管理部112は、情報取得部113に対して、監視開始を要求する(ステップS621)。さらに、クライアント管理部112は、監視部111に対して、監視が開始されたことを通知する(ステップS622)。そして、監視部111は、PC200の監視制御部202に対して、監視が開始されたことを通知する(ステップS623)。
一方、監視開始を要求された情報取得部113は、情報提供部121が提供する機器情報の取得機能を用いて、デバイス制御部120の機器情報の取得を要求する(ステップS624)。情報提供部121は、デバイス制御部120から取得した機器情報を情報取得部113に通知する(ステップS625)。
次に、情報取得部113は、取得した最新の機器情報をキャッシュ管理部114に通知するとともに、最新の機器情報と保存済みの機器情報との比較を要求する(ステップS626)。キャッシュ管理部114は、保存済みの機器情報を記憶部140から取得し、通知された最新の機器情報と比較する。そして、キャッシュ管理部114は、比較結果を情報取得部113に通知する(ステップS627)。本実施の形態では、少なくとも1つの機器情報が変更されれば、機器情報が変化されたと判断してその旨を比較結果として通知する。また、キャッシュ管理部114は、機器情報が変更されていると判断した場合は、変更された機器情報を記憶部140に保存する。
次に、情報取得部113は、比較結果を参照して機器情報が変化されたか否かを判断する(ステップS628)。
機器情報が変化しない場合は(ステップS628:NO)、情報取得部113は、所定の時間経過後にステップS624に戻り、機器情報の取得処理を繰り返す。
機器情報が変化された場合は(ステップS628:YES)、情報取得部113は、取得した機器情報をクライアント管理部112に通知する(ステップS629)。クライアント管理部112は、キャッシュ管理部114に対して、監視開始フラグが「1」であるクライアント情報の取得を要求する(ステップS630)。
次に、キャッシュ管理部114は、監視開始フラグが「1」であるすべてのクライアント情報を記憶部140から取得して、取得したクライアント情報をクライアント管理部112に通知する(ステップS631)。
クライアント管理部112は、通知されたクライアント情報と、ステップS629で通知された機器情報とを、監視部111に通知する(ステップS632)。次に、監視部111は、通知されたクライアント情報それぞれに対して、クライアント情報に含まれるIPアドレスおよびポート番号を取得し、取得したIPアドレスおよびポート番号で識別されるPC200の監視制御部202を宛先として、通知された機器情報を送信する(ステップS633)。
なお、ステップS624からステップS633までの処理は、予め定められた時間間隔ごとに繰り返し実行される。また、同図には図示していないが、例えば、PC200から監視の終了要求が送信されたときに、監視部111は監視処理を終了する。
このような処理により、ポーリングによりPC200が定期的に機器情報を取得するのではなく、デバイス100側で機器情報の変化を判断し、変化した場合にのみPC200に機器情報を通知することができる。これにより、機器情報の変化を即時的に把握できるようになる。
なお、監視部111から監視制御部202に対して、何らかの理由で機器情報等の通知ができなかった場合に、再通知を可能とするように構成してもよい。例えば、クライアント登録要求に再通知の条件を追加するとともに、記憶部140に記憶するクライアント情報にも再通知の条件を追加するように構成する。そして、クライアント情報の登録時に再通知の条件も記憶部140に記憶する。再通知の条件としては、例えば、所定の時間が経過することなどを指定する。
監視部111から監視制御部202に対して機器情報等を送信したときにエラーが発生し、機器情報等を送信できなかった場合は、監視部111は記憶部140から再通知の条件を取得し、条件を満たしたときに機器情報等を再通知する。
(変形例)
以上の説明では、デバイス100内に監視処理に関わる監視部111、クライアント管理部112、情報取得部113、およびキャッシュ管理部114を備える構成を前提としていた。これに対し、デバイス100とは異なる外部装置内にこれらの構成部を備え、当該外部装置がデバイス100と通信して機器情報を監視するように構成してもよい。
図8は、このような外部装置であるデバイス監視装置801を含むように構成された、第1の実施の形態の変形例にかかる通信システムの構成を示すブロック図である。図8に示すように、本変形例にかかる通信システムは、通信装置としてのデバイス802が、デバイス監視装置801を介してPC200と接続された構成となっている。
まず、デバイス監視装置801について説明する。デバイス監視装置801は、通信I/F130と、記憶部140と、監視部111と、クライアント管理部112と、情報取得部813と、キャッシュ管理部114と、入出力I/F850とを備えている。
通信I/F130と、記憶部140と、監視部111と、クライアント管理部112と、キャッシュ管理部114とは、図2でデバイス100内に備えられていたものと同様の機能を有するため、同一の符号を付し説明は省略する。
入出力I/F850は、デバイス802との間でデータを送受信するインターフェースであり、USB(Universal Serial Bus)、IEEE(Institute of Electrical and Electronic Engineers)1394などのあらゆる通信インターフェースを適用できる。また、インターフェースは有線に限られず、無線によりデータを送受信するインターフェースを用いてもよい。
情報取得部813は、入出力I/F850を介して、デバイス802の情報提供部121と通信して機器情報を取得する点が、図2の情報取得部113と異なっている。
次に、デバイス802について説明する。デバイス802は、デバイス制御部120と、入出力I/F822とを備えている。デバイス制御部120は、図2のデバイス制御部120と同様の機能を有するため、同一の符号を付し説明は省略する。
入出力I/F822は、デバイス監視装置801の入出力I/F850と同様にデータを送受信するためのインターフェースである。
このような構成の場合、PC200からの監視要求等は、デバイス監視装置801の監視部111に対して送信される。また、デバイス監視装置801の情報取得部813は、入出力I/F850を介して、デバイス802から機器情報を取得する。それ以外の監視処理の全体の流れは図6と同様である。
このように監視機能を備えた装置をデバイス802の外部に備え、USBなどの汎用のインターフェースによって接続する構成とすることにより、デバイス100内に監視機能を導入できない場合であっても本実施の形態と同様の機器情報の監視機能を実現することができる。
以上のように、第1の実施の形態にかかる通信システムでは、サービスを提供する通信装置がサービスの処理状態の変化を検知し、処理状態が変化した場合にサービスに関する機器情報をサービスの提供を受ける情報処理装置に通知することができる。このため、ネットワークを介して提供される処理の処理状態の変化を適切に監視することができる。
(第2の実施の形態)
第2の実施の形態にかかる通信システムは、第1の実施の形態の方法により取得した機器情報に不足がある場合に、不足する機器情報をSNMPによって取得するものである。
図9は、第2の実施の形態にかかるデバイス900およびPC200の詳細な構成を示すブロック図である。図9に示すように、本実施の形態にかかるデバイス900は、通信I/F130と、記憶部140と、デバイス制御部120と、監視部111と、クライアント管理部112と、情報取得部913と、キャッシュ管理部114と、SNMP制御部915と、を備えている。
第2の実施の形態では、SNMP制御部915を追加したこと、および情報取得部913の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかるデバイス100の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
SNMP制御部915は、SNMPによるデバイス900の管理を制御するものである。例えば、SNMP制御部915は、SNMPによってデバイス制御部120から機器情報を取得する。すなわち、SNMP制御部915は、従来と同様にSNMPを用いたポーリングによって機器情報を取得する。このとき、SNMP制御部915は、通信I/F130に設定されたデバイス900のループバックアドレスを指定してSNMPにより機器情報を取得する。
情報取得部913は、情報提供部121を用いて取得した機器情報に不足がある場合に、SNMP制御部915を用いて、不足する機器情報をデバイス制御部120から取得する点が、第1の実施の形態の情報取得部113と異なっている。なお、機器情報が不足するか否かは、例えば、事前に記憶部140等に記憶された取得すべき機器情報のリストと照合することにより判断する。また、情報取得部913は、情報提供部121によって得られた機器情報とSNMP制御部915で得られた機器情報を1つにまとめて以降の処理で利用する。
次に、このように構成された第2の実施の形態にかかる通信システムの監視処理について図10および図11を用いて説明する。なお、初期化処理は第1の実施の形態と同様であるため説明を省略する。図10および図11は、第2の実施の形態における監視処理の全体の流れを示すシーケンス図である。
ステップS1001からステップS1011までの、クライアント登録処理、情報提供部121による機器情報取得処理は、第1の実施の形態にかかる通信システムにおけるステップS601からステップS611までと同様の処理なので、その説明を省略する。
ステップS1011で情報提供部121を用いて機器情報を取得した後、情報取得部913は、事前に記憶した取得すべき機器情報のリストと、取得した機器情報とを比較することにより、不足する機器情報が存在するか否かを判断する(ステップS1012)。そして、不足する機器情報が存在する場合は(ステップS1012:YES)、SNMP制御部915を用いてデバイス制御部120から不足する機器情報を取得する(ステップS1013)。SNMP制御部915は、SNMPの規定にしたがいデバイス制御部120から機器情報を取得し、取得した機器情報を情報取得部913に通知する(ステップS1014)。不足する機器情報が存在しない場合は(ステップS1012:NO)、SNMP制御部915による機器情報の取得処理は実行しない。
なお、情報提供部121が提供できない機器情報が予め判明している場合は、不足の判定をせずに、判明している機器情報をSNMP制御部915により取得するように構成してもよい。
ステップS1015からステップS1019までの、機器情報保存処理、および機器情報通知処理は、第1の実施の形態にかかる通信システムにおけるステップS612からステップS616までと同様の処理なので、その説明を省略する。
また、図11では、ステップS1029〜ステップS1031が追加された点が、第1の実施の形態にかかる通信システムにおける図7と異なっている。ステップS1029〜ステップS1031は、図10のステップS1012〜ステップS1014と同様に、SNMP制御部915を用いて不足する機器情報をデバイス制御部120から取得するものである。
なお、SNMP制御部915を利用するときは、通常、機器情報ごとに定められたMIB(Management Information Base)取得方法にしたがって機器情報を取得する。MIB取得方法とは、機器情報として取得する情報を、いずれのMIBから、どのような優先順位で取得するかを定めたものをいう。
例えば、機器情報「TrayName」に対しては、第1優先として標準MIB(Printer-MIB)から「prtInputName」を取得し、第2優先として自社の拡張MIB(MyCompanyのPrivate-MIB)から「MyCompanyInputName」を取得し、第3優先として他社の拡張MIB(OtherCompanyのPrivate-MIB)から「OtherCompanyInputName」を取得する取得方法が定められているとする。
従来の手法によれば、この例で機器情報「TrayName」を取得する場合、最初に「prtInputName」の取得を試し、取得できなかった場合は、「MyCompanyInputName」の取得を試す。それでも取得できなかった場合は、さらに「OtherComanyInputName」の取得を試す。このように、従来の方法では、機器情報の取得効率が悪いという問題があった。例えば、機器情報「TrayName」は、「MyCompanyInputName」から取得することが事前に判明している場合であっても、従来の方法によれば、必ず標準MIBからの取得を試す必要があった。
そこで、機器情報ごとに取得するMIBおよび取得項目を定めた定義情報を記憶部140等に保存し、保存した定義情報を参照して機器情報を取得する方法を決定するように構成してもよい。
図12は、このように構成された場合に記憶部140に保存される定義情報のデータ構造の一例を示す説明図である。同図に示すように、機器情報ごとに、機器情報として取得する取得項目と取得元のMIBを対応づけた定義情報が記憶部140に保存される。
情報取得部913は、SNMP制御部915を用いて機器情報を取得するとき、図12のような定義情報を参照して機器情報に対応する取得項目を決定し、決定した取得項目をSNMPによって取得する。
同図では、例えば、機器情報「TrayName」は、「MyCompanyInputName」から取得することが定められている。このため、情報取得部913は、標準MIBからの取得を試みることなく、最初から自社の拡張MIBを参照して機器情報「TrayName」を取得することができる。
(変形例)
第2の実施の形態に対しても、第1の実施の形態と同様に、デバイス900とは異なる外部装置内に監視処理に関連する構成部を備え、当該外部装置がデバイス900と通信して機器情報を監視するように構成することができる。
図13は、このような外部装置であるデバイス監視装置1301を含むように構成された、第2の実施の形態の変形例にかかる通信システムの構成を示すブロック図である。図13に示すように、本変形例にかかる通信システムは、通信装置としてのデバイス1302が、デバイス監視装置1301を介してPC200と接続された構成となっている。
まず、デバイス監視装置1301について説明する。デバイス監視装置1301は、通信I/F130と、記憶部140と、監視部111と、クライアント管理部112と、情報取得部1313と、キャッシュ管理部114と、SNMP制御部1315と、入出力I/F850と、通信I/F1331とを備えている。
通信I/F130、記憶部140、監視部111、クライアント管理部112、キャッシュ管理部114、および入出力I/F850は、図9のデバイス900内、または図8のデバイス802内に備えられていたものと同様の機能を有するため、同一の符号を付し説明は省略する。
通信I/F1331は、デバイス1302との間で通信を行うインターフェースである。情報取得部1313は、入出力I/F850を介して、デバイス1302の情報提供部121と通信して機器情報を取得する点が、図9の情報取得部913と異なっている。SNMP制御部1315は、通信I/F1331を介してSNMPにより機器情報を取得するものである。
次に、デバイス1302について説明する。デバイス1302は、デバイス制御部120と、入出力I/F822と、通信I/F1332とを備えている。デバイス制御部120および入出力I/F822は、図9のデバイス900内、または図8のデバイス802内に備えられていたものと同様の機能を有するため、同一の符号を付し説明は省略する。
通信I/F1332は、デバイス監視装置1301との間で通信を行うインターフェースである。
このような構成により、第1の実施の形態の変形例と同様に、デバイス900内に監視機能を導入できない場合であっても本実施の形態と同様の機器情報の監視機能を実現することができる。
以上のように、第2の実施の形態にかかる通信システムでは、取得した機器情報に不足がある場合に、不足する機器情報をSNMPによって取得することができる。すなわち、標準的なプロトコルを用いた処理状態の取得を併用することにより、ネットワークを介して提供される処理の処理状態の変化を適切に監視することができる。また、SNMPによって機器情報を取得するときの取得方法を事前に定めることができるため、機器情報の取得処理をさらに効率化することができる。
(第3の実施の形態)
上記実施の形態では、図4のように階層化された全機器情報を取得していた。これに対し、第3の実施の形態にかかる通信システムは、情報処理装置から指定された機器情報のみを取得することにより、情報取得処理を効率的に実行するものである。
図14は、第3の実施の形態にかかるデバイス1410およびPC1420の詳細な構成を示すブロック図である。
まず、デバイス1410の構成について説明する。図14に示すように、本実施の形態にかかるデバイス1410は、通信I/F130と、記憶部140と、デバイス制御部120と、監視部111と、クライアント管理部1412と、情報取得部1413と、キャッシュ管理部1414とを備えている。
第3の実施の形態では、クライアント管理部1412、情報取得部1413、およびキャッシュ管理部1414の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかるデバイス100の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
クライアント管理部1412は、監視対象となる機器情報をさらに含むクライアント情報を管理するものである。具体的には、クライアント管理部1412は、PC1420から送信された、監視対象となる機器情報を含むクライアント情報をキャッシュ管理部1414によって記憶部140に保存する。
図15は、第3の実施の形態で記憶部140に保存されるクライアント情報のデータ構造の一例を示す説明図である。図15に示すように、クライアント情報として、PC1420のIPアドレスと、PC1420上のアプリケーション1401が利用するポート番号と、監視開始フラグと、監視対象となる機器情報とが対応づけてられて記憶部140に保存される。
監視対象は、図4のように階層化された機器情報の各階層の名称を記号「:」で区切ることにより指定する。また、ある階層下のすべての機器情報を監視対象とする場合は、当該階層の名称のみを指定する。図15では、監視対象としてSystemカテゴリ(Category)のModelInformationファンクション(Function)以下のすべての機器情報を監視対象の1つとする場合の指定例が示されている。
なお、監視対象の指定方法はこれに限られるものではなく、すべての機器情報のうち、監視対象とする機器情報を特定可能な方法であればあらゆる方法を適用できる。
図14に戻り、情報取得部1413は、機器情報を取得するときに、機器情報を通知するPC1420ごとに監視対象となる機器情報を記憶部140から取得し、取得した機器情報のみを情報提供部121を用いて取得するものである。
キャッシュ管理部1414は、クライアント管理部1412の要求に応じて、監視対象を含むクライアント情報を記憶部140に登録するものである。また、キャッシュ管理部1414は、情報取得部1413の要求に応じて、通知先となるPC1420に対応する監視対象を記憶部140から取得する。その他の機能は、第1の実施の形態のキャッシュ管理部114と同様である。
次に、PC1420の構成について説明する。図14に示すように、PC1420は、アプリケーション1401と、監視制御部1402と、通信I/F203とを備えている。
第3の実施の形態では、アプリケーション1401および監視制御部1402の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかるPC200の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
アプリケーション1401は、デバイス1410の機器情報を監視するときに、監視対象とする機器情報を指定する機能を有する点が、第1の実施の形態と異なっている。
監視制御部1402は、監視対象とする機器情報の指定を含む監視開始要求をデバイス1410に送信する点が、第1の実施の形態の監視制御部202と異なっている。なお、監視制御部1402は、アプリケーション1401が指定した監視対象とする機器情報を監視開始要求に含める。
次に、このように構成された第3の実施の形態にかかる通信システムの監視処理について図16を用いて説明する。なお、初期化処理は第1の実施の形態と同様であるため説明を省略する。図16は、第3の実施の形態における監視処理の全体の流れを示すシーケンス図である。
なお、同図は、第1の実施の形態の図7に相当する部分の処理(監視開始要求に対する機器情報取得処理)を表すシーケンス図である。第1の実施の形態の図6に相当する部分の処理、すなわち、クライアント登録処理および機器情報取得要求に対する機器情報取得処理は、第1の実施の形態と同様であるため図示および説明を省略する。
まず、監視制御部1402は、アプリケーション1401から指定された監視対象とする機器情報を含む監視開始要求をデバイス1410の監視部111に通知する(ステップS1601)。監視部111は、クライアント管理部1412に対して、機器情報の監視開始を要求する(ステップS1602)。
次に、クライアント管理部1412は、キャッシュ管理部1414に対して、保存しているクライアント情報の監視開始フラグの更新、および監視対象の登録を要求する(ステップS1603)。具体的には、クライアント管理部1412は、監視開始フラグを「1」に更新すること、および監視開始要求から取得した監視対象を登録することを要求する。
キャッシュ管理部1414は、クライアント情報の監視開始フラグを「1」に更新するとともに、指定された監視対象を記憶部140に保存し、処理結果をクライアント管理部1412に通知する(ステップS1604)。
ステップS1605からステップS1607までの、情報取得部1413に対する監視開始要求処理、および監視開始通知処理は、第1の実施の形態にかかる通信システムにおけるステップS621からステップS623までと同様の処理なので、その説明を省略する。
監視開始を要求された情報取得部1413は、監視開始を要求したPC1410ごとに、監視対象とする機器情報の取得をキャッシュ管理部1414に要求する(ステップS1608)。キャッシュ管理部1414は、該当する監視対象を記憶部140から取得し、取得した監視対象を情報取得部1413に通知する(ステップS1609)。
以降、情報取得部1413は、監視対象として指定された機器情報について、情報提供部121を用いた機器情報の取得処理を繰り返す(ステップS1610〜ステップS1619)。このステップS1610からステップS1619までの処理は、第1の実施の形態にかかる通信システムにおけるステップS624からステップS633までと同様の処理なので、その説明を省略する。
このように、第3の実施の形態にかかる通信システムでは、情報処理装置から指定された機器情報のみを取得することができるため、情報取得処理を効率的に実行することができる。
(第4の実施の形態)
第4の実施の形態にかかる通信システムは、サービスを利用するアプリケーションごとに予め定められた機器情報のみを取得するものである。また、機器情報を通知する条件を満たす場合にのみ取得した機器情報を通知するものである。
図17は、第4の実施の形態にかかるデバイス1710およびPC1720の詳細な構成を示すブロック図である。
まず、デバイス1710の構成について説明する。図17に示すように、本実施の形態にかかるデバイス1710は、通信I/F130と、記憶部1740と、デバイス制御部120と、監視部111と、クライアント管理部112と、情報取得部1713と、キャッシュ管理部1714とを備えている。
第4の実施の形態では、記憶部1740に新規情報が記憶されることと、情報取得部1713およびキャッシュ管理部1714の機能とが第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかるデバイス100の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
記憶部1740は、PC1720上で実行されるアプリケーション201ごとに監視対象とする機器情報を定義した定義情報をさらに記憶する点が、第1の実施の形態の記憶部140と異なっている。
図18は、記憶部1740に新たに追加される定義情報のデータ構造の一例を示す説明図である。図18に示すように、記憶部1740には、アプリケーション201を識別するためのアプリケーション名(Application Name)と、アプリケーション201が管理する機器情報の機能名(Function)と、機能名に対応して取得する各機器情報を特定する属性(Property)と、機器情報を通知するときの通知条件(Condition)とを対応づけた定義情報が事前に格納される。
同図では、例えば、アプリケーション201側で管理する機器情報の機能名「Status Information」に対し、デバイス1710側で管理する図4のような階層化された機器情報のうち、「System information」下の「Status ID」および「Printer Information」下の「Status ID」等を取得する定義情報が示されている。
また、通知条件としては、上記実施の形態のように変動があれば必ず通知する条件以外の多様な条件を指定できる。例えば同図では、トナーの状態(Toner Status)に関して、トナー残量が所定の閾値(10%)以下になったときに通知する通知条件が指定されている。また、例えば、状態が変動した場合に必ず通知するのではなく、所定の状態に変化したときにのみ通知する通知条件を指定してもよい。なお、通知条件の指定方法はこれらに限られるものではなく、機器情報の変化態様に応じて通知するか否かを指定可能な方法であればあらゆる方法を適用できる。
図17に戻り、情報取得部1713は、機器情報を取得するときに、監視開始を要求したアプリケーション201に対応する機器情報を記憶部1740から取得し、取得した機器情報のみを情報提供部121を用いて取得するものである。なお、アプリケーション名は、PC1720の監視制御部1702(後述)によって監視開始要求に含められ、デバイス1710に送信される。
このような機能により、例えば、複数のPC1720に同じアプリケーションが導入され、同時に機器情報の監視を要求している場合は、PC1720それぞれについて機器情報を取得するのではなく、同じアプリケーションについて1度だけ機器情報を取得することが可能となる。これにより、機器情報の取得処理を効率化することができる。
また、情報取得部1713は、取得した機器情報の通知条件を記憶部1740から取得するとともに、取得した機器情報が通知条件を満たすか否かを判定し、満たす場合にのみ、取得した機器情報をPC1720に通知する。
キャッシュ管理部1714は、情報取得部1713の要求に応じて、アプリケーション名に対応する機器情報を記憶部1740から取得する。その他の機能は、第1の実施の形態のキャッシュ管理部114と同様である。
次に、PC1720の構成について説明する。図17に示すように、PC1720は、アプリケーション201と、監視制御部1702と、通信I/F203とを備えている。
第4の実施の形態では、監視制御部1702の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかるPC200の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
監視制御部1702は、監視を要求したアプリケーション201のアプリケーション名を含む監視開始要求をデバイス1710に送信する点が、第1の実施の形態の監視制御部202と異なっている。
次に、このように構成された第4の実施の形態にかかる通信システムの監視処理について図19を用いて説明する。なお、初期化処理は第1の実施の形態と同様であるため説明を省略する。図19は、第4の実施の形態における監視処理の全体の流れを示すシーケンス図である。
なお、同図は、第1の実施の形態の図7に相当する部分の処理(監視開始要求に対する機器情報取得処理)を表すシーケンス図である。第1の実施の形態の図6に相当する部分の処理、すなわち、クライアント登録処理および機器情報取得要求に対する機器情報取得処理は、第1の実施の形態と同様であるため図示および説明を省略する。
まず、監視制御部1702は、監視を要求したアプリケーション201のアプリケーション名を含む監視開始要求をデバイス1710の監視部111に通知する(ステップS1901)。監視部111は、クライアント管理部112に対して、機器情報の監視開始を要求する(ステップS1902)。
次に、クライアント管理部112は、キャッシュ管理部1714に対して、保存しているクライアント情報の監視開始フラグの更新を要求する(ステップS1903)。キャッシュ管理部1714は、クライアント情報の監視開始フラグを「1」に更新し、処理結果をクライアント管理部112に通知する(ステップS1904)。
ステップS1905からステップS1907までの、情報取得部1713に対する監視開始要求処理、および監視開始通知処理は、第1の実施の形態にかかる通信システムにおけるステップS621からステップS623までと同様の処理なので、その説明を省略する。
監視開始を要求された情報取得部1713は、要求に含まれるアプリケーション名を抽出し、抽出したアプリケーション名に対応する機器情報および通知条件の取得をキャッシュ管理部1714に対して要求する(ステップS1908)。キャッシュ管理部1714は、該当する機器情報および通知条件を記憶部1740から取得し、取得結果を情報取得部1713に通知する(ステップS1909)。
ステップS1910からステップS1914までの、情報提供部121による機器情報取得処理および機器情報比較処理は、第1の実施の形態にかかる通信システムにおけるステップS624からステップS628までと同様の処理なので、その説明を省略する。
機器情報が変化した場合は(ステップS1914:YES)、情報取得部1713は、取得した機器情報が通知条件を満たすか否かを判断する(ステップS1915)。通知条件を満たさない場合は(ステップS1915:NO)、情報取得部1713は、所定の時間経過後にステップS1910に戻り、機器情報の取得処理を繰り返す。
通知条件を満たす場合は(ステップS1915:YES)、情報取得部1713は、取得した機器情報をクライアント管理部112に通知する(ステップS1916)。
ステップS1917からステップS1920までの、クライアント情報取得処理および機器情報送信処理は、第1の実施の形態にかかる通信システムにおけるステップS630からステップS633までと同様の処理なので、その説明を省略する。
このように、第4の実施の形態にかかる通信システムでは、サービスを利用するアプリケーションごとに予め定められた機器情報のみを取得することができる。また、機器情報を通知する条件を満たす場合にのみ取得した機器情報を通知することができる。このため、処理状態の取得処理を効率化することが可能となる。
(第5の実施の形態)
第5の実施の形態にかかる通信システムは、機器情報のうち、処理状況に応じて内容が変化する機器情報のみを取得するものである。
図20は、第5の実施の形態にかかるデバイス2000およびPC200の詳細な構成を示すブロック図である。
まず、デバイス2000の構成について説明する。図20に示すように、本実施の形態にかかるデバイス2000は、通信I/F130と、記憶部2040と、デバイス制御部120と、監視部111と、クライアント管理部112と、情報取得部2013と、キャッシュ管理部2014とを備えている。
第5の実施の形態では、記憶部2040に新規情報が記憶されることと、情報取得部2013およびキャッシュ管理部2014の機能とが第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかるデバイス100の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
記憶部2040は、監視対象となる機器情報が、値が変化しない固定の機器情報であるか、値が変化する機器情報であるかを表す変動情報を定義情報としてさらに記憶するものである。また、記憶部2040は、機器情報を取得したとき、機器情報ごとに変動情報を対応づけて記憶する。
図21は、記憶部2040に新たに追加される定義情報のデータ構造の一例を示す説明図である。図21に示すように、記憶部2040には、機器情報を識別する識別情報(Property)と、機器情報が変動するか否かを表す変動情報(Update)とが対応づけられた定義情報が事前に格納される。
図22は、記憶部2040に保存される機器情報のデータ構造の一例を示す説明図である。本実施の形態では、第1の実施の形態で保存される機器情報のデータ構造を表す図4と比較すると、変動情報を格納するフィールド(Update)が追加された点が異なっている。
なお、図22のようなUpdateフィールドを含む機器情報の記憶領域は、初期化処理時にキャッシュ管理部2014によって記憶部2040内に確保される。また、Updateフィールドに設定する変動情報は、最初に機器情報を取得するときに、図21のような定義情報を参照して設定される。
図20に戻り、情報取得部2013は、機器情報を取得するときに、値が変化することを表す変動情報(変動)が設定された機器情報を記憶部2040から取得し、取得した機器情報のみを情報提供部121を用いて取得するものである。
キャッシュ管理部2014は、情報取得部2013の要求に応じて、値が変化することを表す変動情報が設定された機器情報を記憶部2040から取得する。その他の機能は、第1の実施の形態のキャッシュ管理部114と同様である。
PC200の構成および機能は、第1の実施の形態と同様であるので、同一符号を付し、ここでの説明は省略する。
次に、このように構成された第5の実施の形態にかかる通信システムの監視処理について図23を用いて説明する。なお、初期化処理は第1の実施の形態と同様であるため説明を省略する。図23は、第5の実施の形態における監視処理の全体の流れを示すシーケンス図である。
なお、同図は、第1の実施の形態の図7に相当する部分の処理(監視開始要求に対する機器情報取得処理)を表すシーケンス図である。第1の実施の形態の図6に相当する部分の処理、すなわち、クライアント登録処理および機器情報取得要求に対する機器情報取得処理は、第1の実施の形態と同様であるため図示および説明を省略する。
ステップS2301からステップS2307までの、監視開始フラグ更新処理、および監視開始通知処理は、第1の実施の形態にかかる通信システムにおけるステップS617からステップS623までと同様の処理なので、その説明を省略する。
監視開始を要求された情報取得部2013は、値が変化することを表す変動情報が設定された機器情報の識別情報(機器情報名)の取得をキャッシュ管理部2014に対して要求する(ステップS2308)。キャッシュ管理部2014は、変動する機器情報の機器情報名を記憶部2040から取得し、情報取得部2013に通知する(ステップS2309)。
以降、情報取得部2013は、値が変動する機器情報を監視対象として、情報提供部121を用いた機器情報の取得処理を繰り返す(ステップS2310〜ステップS2319)。このステップS2310からステップS2319までの処理は、第1の実施の形態にかかる通信システムにおけるステップS624からステップS633までと同様の処理なので、その説明を省略する。
このように、第5の実施の形態にかかる通信システムでは、機器情報のうち、処理状況に応じて内容が変化する機器情報のみを取得することができる。このため、処理状態の取得処理を効率化することができる。
(第6の実施の形態)
第6の実施の形態にかかる通信システムは、監視処理で利用する各種定義情報を、外部で作成された定義ファイルから取得するものである。定義情報としては、上述の各実施の形態で利用される各定義情報が対象となる。例えば、取得対象となる機器情報、アプリケーションごとの取得する機器情報、通知条件、機器情報が変化するか否かを表す情報などが該当する。
また、本実施の形態では、機器情報を情報処理装置から設定するとともに、機器情報の設定が完了したことを情報処理装置に通知することができる。
図24は、第6の実施の形態にかかるデバイス2410およびPC2420の詳細な構成を示すブロック図である。なお、同図では、ルータ400、インターネットなどのネットワーク500、およびサーバ600が追加されている。
ルータ400は、ネットワーク300とネットワーク500との間の通信を中継するものである。ネットワーク500はインターネットに限らずあらゆる形態のネットワークによって構成できる。
サーバ600は、デバイス2410を含む通信装置の種類ごとに、定義ファイル、ファームウェアを更新するためのファームウェアファイルを管理するサーバ装置である。定義ファイルの形式は問わないが、例えば、XML(eXtensible Markup Language)形式のファイルなどを利用できる。
なお、各PC2420は、利用するデバイス2410の種類を判別し、デバイス2410の種類に応じた定義ファイル等をサーバ600から取得した上で、取得したファイルによってデバイス2410の定義情報または機器情報の更新を行う。
次に、デバイス2410の構成について説明する。図24に示すように、本実施の形態にかかるデバイス2410は、通信I/F130と、記憶部140と、デバイス制御部120と、監視部2411と、クライアント管理部112と、情報取得部113と、キャッシュ管理部114と、SNMP制御部915と、情報設定部2416とを備えている。
第6の実施の形態では、監視部2411の機能と、SNMP制御部915および情報設定部2416を追加したことが、第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかるデバイス100の構成を表すブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。
監視部2411は、定義ファイルによる定義情報の更新機能、および情報設定部2416を用いて機器情報を設定する機能が追加された点が、第1の実施の形態の監視部111と異なっている。
SNMP制御部915は、第2の実施の形態のSNMP制御部915と同様にSNMPによるデバイス2410の管理を制御するものである。
情報設定部2416は、PC2420からの要求に応じてデバイス制御部120に対して機器情報を設定するものである。
次に、PC2420の構成について説明する。図24に示すように、PC2420は、アプリケーション2401と、監視制御部2402と、通信I/F203とを備えている。
第6の実施の形態では、アプリケーション2401および監視制御部2402の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかるPC200の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
アプリケーション2401は、デバイス2410の定義ファイルの更新要求をさらに送信する点が、第1の実施の形態のアプリケーション201と異なっている。
監視制御部2402は、アプリケーション2401が要求した定義ファイルの更新要求に応じて、定義ファイルを外部のサーバ600から取得する処理、および定義ファイルの更新要求をデバイス2410に送信する処理が追加された点が、第1の実施の形態の監視制御部202と異なっている。
次に、このように構成された第6の実施の形態にかかる通信システムによる定義ファイル更新処理について説明する。なお、初期化処理は第1の実施の形態と同様であるため説明を省略する。図25は、第6の実施の形態における定義ファイル更新処理の全体の流れを示すシーケンス図である。
まず、アプリケーション2401は、定義ファイルの更新要求を監視制御部2402に対して通知する(ステップS2501)。次に、監視制御部2402は、デバイス2410の種類を特定するためにデバイス2410のモデル名の取得要求をデバイス2410の監視部2411に送信する(ステップS2502)。
次に、監視部2411は、記憶部140から機器情報に含まれるモデル名(図4のSystem:Model Information:Model Name)を取得し、監視制御部2402に通知する(ステップS2503)。なお、モデル名を取得する処理は、上述した各実施の形態と同様の処理によって実現可能であるため詳細は省略する。
次に、監視制御部2402は、通知されたモデル名に対応する定義ファイルの取得要求をサーバ600に対して送信する(ステップS2504)。サーバ600は、モデル名に対応する定義ファイルを自装置内の記憶部等から取得し、監視制御部2402に通知する(ステップS2505)。
次に、監視制御部2402は、監視部2411に対して、定義ファイルとともに定義ファイルの更新要求を送信する(ステップS2506)。監視部2411は、送信された定義ファイルの内容を読み出し、記憶部140に記憶する。そして、監視部2411は処理結果を監視制御部2402に通知する(ステップS2507)。
次に、監視制御部2402は、通知された処理結果をさらにアプリケーション2401に通知し(ステップS2508)、定義ファイル更新処理を終了する。
このような処理により、監視処理に必要な定義情報を外部で作成された定義ファイルを元に更新することが可能となり、定義情報のメンテナンス性を高めることができる。
なお、定義ファイルはサーバ600から取得したファイルに限られるものではない。例えば、他の方法によりPC2420が取得済みの定義ファイルをデバイス2410に送信するように構成してもよい。また、更新要求のみをPC2420から送信し、定義ファイルはデバイス2410がサーバ600から取得するように構成してもよい。
さらに、CD−ROM、フロッピーディスク(登録商標:FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録された定義ファイルを、記録媒体の種類に応じたインターフェースを介して取得するように構成してもよい。
また、デバイス2410のファームウェアを更新するためのファームウェアファイル内に定義ファイルを含め、ファームウェアの更新処理時に定義ファイルを取り出して、上述のような定義ファイルの更新処理を行うように構成してもよい。
次に、デバイス2410の機器情報をPC2420から設定する機器情報設定処理について説明する。外部から機器情報を設定する場合、設定したこと(第1の事由の変化)を通知するだけではなく、設定が有効になったこと(第2の事由の変化)を通知しなければならない場合がある。
例えば、デバイス2410のIPアドレスを更新する場合、単に新たなIPアドレスを通知してIPアドレスを設定するだけでは、新たなIPアドレスが有効にならない。有効にするためには、デバイス2410を再起動する必要がある。このため、デバイス2410が再起動した後に、IPアドレスが有効になったことをさらに通知する必要が生じる。
また、例えば、デバイス2410のファームウェアを更新する場合、FTPプロトコル等によってファームウェアファイルを転送しただけでは、ファームウェアを更新することができない。デバイス2410は、転送完了をアプリケーション2401に通知した後(第1の事由の変化)、受信したファームウェアファイルを元にファームウェアの更新処理を実行し、更新を有効にするために再起動する必要がある。そして、デバイス2410が再起動した後に、ファームウェアが有効になったことをアプリケーション2401に通知する必要が生じる。
図26は、機器情報設定処理の全体の流れを示すシーケンス図である。まず、監視制御部2402は、機器情報設定要求を監視部2411に対して通知する(ステップS2601)。監視部2411は、機器情報設定要求をクライアント管理部112に通知する(ステップS2602)。クライアント管理部112は、通知された機器情報設定要求を情報設定部2416に通知する(ステップS2603)。
情報設定部2416は、情報提供部121が提供する機器情報の設定機能を用いて、機器情報の設定を要求する(ステップS2604)。情報提供部121は、要求された機器情報をデバイス制御部120に設定し、設定結果を情報設定部2416に通知する(ステップS2605)。
また、情報設定部2416は、SNMPを用いて設定する機器情報の場合は、SNMP制御部915に対して機器情報の設定を要求する(ステップS2606)。SNMP制御部915は、要求された機器情報をデバイス制御部120に設定し、設定結果を情報設定部2416に通知する(ステップS2607)。
次に、情報設定部2416は、機器情報の設定結果をクライアント管理部112に通知する(ステップS2608)。また、クライアント管理部112は、設定結果を監視部2411に通知する(ステップS2609)。さらに、監視部2411は、設定結果をPC2420の監視制御部2402に通知する(ステップS2610)。
機器情報の設定が正常に実行され、デバイス2410の再起動が必要な場合は、情報設定部2416は、SNMP制御部915に対して再起動を要求する(ステップS2611)。次に、SNMP制御部915は、デバイス2410を再起動する(ステップS2612)。
デバイス制御部120は、再起動の完了した場合、完了通知をSNMP制御部915に通知する(ステップS2613)。具体的には、SNMP制御部915は、SNMP Trap機能によって再起動を検出する。
次に、SNMP制御部915は、再起動の完了を情報設定部2416に通知する(ステップS2614)。また、情報設定部2416は、クライアント管理部112に再起動の完了を通知する(ステップS2615)。
次に、クライアント管理部112は、キャッシュ管理部114にクライアント情報の取得を要求する(ステップS2616)。キャッシュ管理部114は、記憶部140からクライアント情報を取り出し、クライアント管理部112に送信する(ステップS2617)。クライアント管理部112は、再起動の完了とクライアント情報を監視部2411に通知する(ステップS2618)。
最後に、監視部2411は、通知されたクライアント情報それぞれに対して、クライアント情報に含まれるIPアドレスおよびポート番号を取得し、取得したIPアドレスおよびポート番号で識別されるPC2420の監視制御部2402を宛先として、再起動の完了を通知する(ステップS2619)。
このように、第6の実施の形態にかかる通信システムでは、定義情報を外部で作成された定義ファイルから取得することができるため、定義情報の変更が容易となり、通信装置のメンテナンス性を向上させることができる。
(第7の実施の形態)
第7の実施の形態にかかる通信システムは、通信装置が上記各実施の形態の機能に対応しているか否かを判定し、判定結果に応じて情報処理装置側の監視処理を制御するものである。また、判定結果に応じて通信装置に上記各実施の形態の機能をインストールするものである。
図27は、第7の実施の形態にかかるデバイス100、デバイス2710およびPC2720の詳細な構成を示すブロック図である。
デバイス100は、第1の実施の形態のデバイス100を表す図2と同様の構成であるため、同一の符号を付し説明を省略する。
デバイス2710は、第1の実施の形態の監視処理に関連する構成部である監視部111、クライアント管理部112、情報取得部113、およびキャッシュ管理部114を備えない構成の通信装置である。すなわち、デバイス2710は、従来と同様に、例えばSNMPによる機器情報の監視機能のみを有する通信装置を表している。
PC2720は、アプリケーション201と、監視制御部2702と、通信I/F203とを備えている。
第7の実施の形態では、監視制御部2702の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかるPC200の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
監視制御部2702は、利用する通信装置の種類を判定し、判定結果に応じて機器情報を監視する方法を切り替える機能を有する。具体的には、監視制御部2702は、第1の実施の形態のステップS601(図6)のように、クライアント登録要求を通信装置に送信し、所定時間内に応答が得られるか否かによって、通信装置が第1の実施の形態のような監視機能を備えたデバイス100であるか否かを判断する。
送信先がデバイス100であれば、監視制御部2702は、図6のステップS606のように、クライアント登録の結果を受信できる。これにより、監視制御部2702は、デバイス100は第1の実施の形態と同様の監視機能を備えると判断し、以降は第1の実施の形態と同様の手順で、機器情報取得処理および監視開始要求処理(図6、図7)を実行する。
一方、送信先がデバイス2710の場合、監視制御部2702は、クライアント登録の結果を受信できない。このため、監視制御部2702は、デバイス2710は第1の実施の形態と同様の監視機能を備えていないと判断する。この場合、監視制御部2702は、SNMPを用いたポーリングなどの従来と同様の手法によって、デバイス2710の機器情報の監視処理を行う。
(変形例)
なお、通信装置が第1の実施の形態と同様の監視機能を備えていないと判断した場合に、監視機能を通信装置にインストールするように構成してもよい。図28は、このように構成された第7の実施の形態の変形例にかかるPC2820の詳細な構成を示すブロック図である。
PC2820は、アプリケーション201と、監視制御部2802と、通信I/F203と、インストール部2804とを備えている。
監視制御部2802は、上述の監視制御部2702と同様の方法で通信装置が第1の実施の形態のような監視機能を備えたデバイス100であるか否かを判断する。そして、監視制御部2802は、当該監視機能を備えていないと判断した場合に、インストール部2804を用いて当該監視機能をデバイス2710にインストールする処理を制御する。
インストール部2804は、監視制御部2802の要求に応じて、監視機能をデバイス2710にインストールするものである。監視機能に必要な構成部(監視部111、クライアント管理部112、情報取得部113、およびキャッシュ管理部114)が上述のようなSDKとして提供されることを前提とすると、インストール部2804は、例えば、デバイス制御部120に予め備えられたSDK等のプログラムのインストール機能を用いて、当該SDKに対応する監視機能をインストールする。
このように、第7の実施の形態にかかる通信システムでは、通信装置が上記各実施の形態の機能に対応しているか否かを判定し、判定結果に応じて情報処理装置側の監視処理を制御することができる。また、第7の実施の形態にかかる通信システムでは、通信装置が上記各実施の形態の機能に対応していない場合に、上記各実施の形態の機能を通信装置にインストールすることができる。このため、ネットワークを介して提供される処理の処理状態の変化を適切に監視することができる。
次に、第1〜第7の実施の形態にかかる通信装置のハードウェア構成について図29を用いて説明する。図29は、第1〜第7の実施の形態にかかる通信装置のハードウェア構成を示す説明図である。
第1〜第7の実施の形態にかかる通信装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
第1〜第7の実施の形態にかかる通信装置で実行される通信プログラムは、ROM52等に予め組み込まれて提供される。
第1〜第7の実施の形態にかかる通信装置で実行される通信プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、FD、CD−R(Compact Disk Recordable)、DVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、第1〜第7の実施の形態にかかる通信装置で実行される通信プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1〜第7の実施の形態にかかる通信装置で実行される通信プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
第1〜第7の実施の形態にかかる通信装置で実行される通信プログラムは、上述した各部(監視部、クライアント管理部、情報取得部、キャッシュ管理部、デバイス制御部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU51が上記ROM52から通信プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成されるようになっている。
なお、第1〜第7の実施の形態にかかる情報処理装置は、CPU51などの制御装置と、ROM52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、HDD、CDドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス61を備えた、通常のコンピュータを利用したハードウェア構成となっている。