(57)【要約】【課題】デバイス探索用のモジュールの構成に依らず、ネットワーク・トラフィックを増大させずに広範囲なデバイス探索が行え、且つエージェントなどのネットワーク上の管理対象を効率的に管理することができるネットワークデバイス管理システムを提供する。【解決手段】サブネットワーク上にデバイス探索用のブローカが複数存在する場合であっても、そのうちの１つのブローカ例えばブローカ４２２は、起動時、或いはマネージャからの要求により、サブネットワーク内の他のブローカを探索して、その中からマスタ・ブローカを決定し（例えばブローカ４３２）、これをマネージャ４１３に登録する。マネージャは、登録されたマスタ・ブローカに対してエージェントの探索要求を発行し、その探索結果がマスタ・ブローカからマネージャ４１３に返信される。そして、マネージャ４１３は、探索された各エージェントに対して、エージェント情報の取得を行う。【選択図】図１
2007122636.tif 000002
【特許請求の範囲】
【請求項１】
自身の状態に関するデータを保持する第一のデバイスと、前記第一のデバイスの管理を行う情報処理装置と、前記第一のデバイスの探索を行うと共に前記第一のデバイスの保持情報を取得可能な第二のデバイスとを有するネットワークデバイス管理システムにおいて、
前記ネットワーク上に存在する複数の第二のデバイスそれぞれの能力を比較し、その結果に基づいて特定の第二のデバイスを決定する決定手段と、
前記決定手段で決定された特定の第二のデバイスを前記情報処理装置に登録する登録手段とを有し、
前記情報処理装置から、前記特定の第二のデバイスを経由して、前記第一のデバイスに対して所定の処理を行うことを特徴とするネットワークデバイス管理システム。
【請求項２】
前記所定の処理は、
前記ネットワーク内に存在する前記第一のデバイスを探索する探索処理であることを特徴とする請求項１に記載のネットワークデバイス管理システム。
【請求項３】
前記所定の処理は、
前記探索処理で探索された第一のデバイスの保持情報を取得する情報取得処理であることを特徴とする請求項２に記載のネットワークデバイス管理システム。
【請求項４】
前記第二のデバイスの能力とは、前記ネットワーク上に存在する複数の第二のデバイスの優先順位を決定するための属性であり、
前記決定手段は、最も優先順位の高い属性値を有する第二のデバイスを前記特定の第二のデバイスとして決定することを特徴とする請求項１乃至３の何れかに記載のネットワークデバイス管理システム。
【請求項５】
前記ネットワーク上に存在する複数の第二のデバイスのうちの前記特定の第二のデバイス以外の第二のデバイスは、前記特定の第二のデバイスの処理が停止したことを検出する検出手段と、
前記検出手段が前記特定の第二のデバイスの処理停止を検出したときに、前記ネットワーク上に存在する第二のデバイスの優先順位を再決定する再決定手段とを有することを特徴とする請求項４に記載のネットワークデバイス管理システム。
【請求項６】
前記情報処理装置と前記第二のデバイス及び前記第一のデバイスとはルータを経由して接続され、
前記情報処理装置が前記ルータを経由して前記第二のデバイスと通信を行うときはマルチキャストアドレスを用い、前記決定手段によって決定された特定の第二のデバイスが前記探索処理を行うときはブロードキャストアドレスを用いることを特徴とする請求項２乃至５のいずれかに記載のネットワークデバイス管理システム。
【請求項７】
前記第二のデバイスは、プリンタ、スキャナ、複写機、複合機又はコンピュータの何れかであることを特徴とする請求項１乃至６のいずれかに記載のネットワーク管理システム。
【請求項８】
自身の状態に関するデータを保持する第一のデバイスと、前記第一のデバイスの管理を行う情報処理装置と、前記第一のデバイスの探索を行うと共に前記第一のデバイスの保持情報を取得可能な第二のデバイスとを有するネットワークデバイス管理システムの処理方法であって、
前記ネットワーク上に存在する第二のデバイスのうちの特定の第二のデバイスを決定する決定工程と、
前記決定工程で決定された特定の第二のデバイスを前記情報処理装置に登録する登録工程と、
前記情報処理装置から、前記特定の第二のデバイスを経由して、前記第一のデバイスに対して所定の処理を行う処理工程とを実行することを特徴とするネットワークデバイス管理システムの処理方法。
【請求項９】
ネットワーク上のデバイスの状態に関するデータを保持する第一のデバイスと、前記第一のデバイスの管理を行う情報処理装置と、前記デバイスの探索を行うと共に前記第一のデバイスの保持情報を提供可能な第二のデバイスとを有するネットワークデバイス管理システムの処理方法を実行するための、コンピュータで読み取り可能な処理プログラムであって、
前記ネットワーク上に存在する第二のデバイスのうちの特定の第二のデバイスを決定する決定ステップと、
前記決定ステップで決定された特定の第二のデバイスを前記情報処理装置に登録する登録ステップと、
前記情報処理装置から、前記特定の第二のデバイスを経由して、前記第一のデバイスに対して所定の処理を行う処理ステップとを備えたことを特徴とする処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上のデバイスを管理するネットワークデバイス管理システム及びその処理方法、並びに前記処理方法を実現するための処理プログラムに関する。
【背景技術】
【０００２】
従来、コンピュータネットワークに接続される機器であるネットワークデバイスを管理する方法として、ＳＮＭＰ／ＭＩＢ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ／Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）を使用した方法がある（「ＴＣＰ／ＩＰネットワーク管理入門実用的な管理をめざして」Ｍ．Ｔ．ローズ＝著／西田竹志＝訳（株）トッパン発行１９９２年８月２０日初版を参照）。例えば、特許文献１には、ＳＮＭＰを用いてデバイスの情報を収集し、ネットワークデバイスの管理を行うシステムが開示されている。
【０００３】
ＳＮＭＰネットワーク管理技術によれば、ネットワーク管理システムには、少なくとも１つのネットワーク管理ステーション（ＮＭＳ）と、各々がエージェントを含むいくつかの管理対象ノードと、管理ステーションやエージェントが管理情報を交換するために使用するネットワーク管理プロトコルとが含まれている。ユーザは、ＮＭＳ上でネットワーク管理ソフトウェアを用いて管理対象ノード上のエージェントソフトウェアと通信することにより、ネットワーク上のデータを得たり、またデータを変更したりすることができる。
【０００４】
ここでエージェントについて説明する。ユーザがネットワーク上の機器に対して管理データを要求すると、管理ソフトウェアはオブジェクト識別情報を管理パケットまたはフレームに入れてターゲットエージェントへ送り出す。エージェントは、そのオブジェクト識別情報を解釈して、そのオブジェクト識別情報に対応するデータを取り出し、そのデータをパケットに入れてユーザに送り返す。また、エージェントは、自分のデバイスの状態に関するデータをデータベースの形式で保持している。このデータベースのことを、ＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）と呼ぶ。
【０００５】
このようなネットワーク管理ソフトウェアを分散環境で使用する場合、ネットワーク管理機能を持つサーバアプリケーションと、端末で起動されるＧＵＩ部分であるクライアントアプリケーションとによる構成を採ることが一般的である。
【０００６】
図９は、ネットワーク管理の対象となり得る従来のコンピュータネットワークの構成例を示すブロック図である。
【０００７】
このコンピュータネットワークは、２つのサブネットワークを構成するＬＡＮ５００と５２０が、ルータ５３０によって相互接続された構成を有する。そして、ＬＡＮ５００には、マネージャが動作するコンピュータ装置５０３と、ブローカが動作する通信装置５０４と、エージェントが動作するネットワークプリンタ等のデバイス５０５，５０６とが接続されている。また、ＬＡＮ５２０には、ブローカが動作する通信装置５２１と、エージェントが動作するネットワークプリンタ等のデバイス５２２，５２３とが接続されている。
【０００８】
同図におけるＬＡＮ５００及び５２０について、ＬＡＮ５００に接続されたコンピュータ装置５０３がクライアントＰＣとして動作し、通信装置５２１がサーバ装置として動作することを想定して説明する。
【０００９】
クライアントＰＣ５０３上でクライアントアプリケーションのプロセスＡが、通信装置５２１上のサーバアプリケーションのプロセスＢにアクセスしてデバイスを探索する場合、クライアントアプリケーションは、プロセス間通信の機能を使用してサーバアプリケーションと通信を行う。そして、サーバアプリケーションは、ＳＮＭＰプロトコルのブロードキャストを使用してデバイス探索を行う。
【００１０】
デバイス探索は、２段階のステップで行われる。初めのステップは、ブロードキャストにより、デバイスのアドレス情報の取得を行う。次のステップは、ブロードキャストで見つかった各デバイスに対して、デバイス名やロケーション等のデバイス基本情報のＭＩＢ値を取得する。
【００１１】
デバイス探索を行うために、各クライアントアプリケーションはプロキシを用いてプロセス間通信を行い、サーバアプリケーションにデバイス探索を依頼する。サーバアプリケーションは、プロキシ（スタブ）から送信された情報を受け取り、ＳＮＭＰプロトコル等のブロードキャストを用いてデバイス探索を行う。デフォルト設定では、サーバアプリケーションが存在しているサブネットＬＡＮ５００に存在するデバイスのみ探索を行う。
【００１２】
しかし、クライアントアプリケーションからサブネットを超えた探索範囲が指定された場合、例えばＬＡＮ５２０のデバイス探索を行うことが指定された場合は、サブネットブロードキャストを行ってデバイスを探索する（サブネットブロードキャスト探索）。
【００１３】
探索されたデバイスリスト情報は、サーバアプリケーションのスタブからプロセス間通信を使用してプロキシへ送信され、プロキシからクライアントアプリケーションにコールバック通知される。クライアントアプリケーションは、サーバアプリケーションからコールバック通知された情報を基にビットマップ表示等を行ってデバイスリスト情報を表示する。
【特許文献１】特開２０００−３５３１４１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上記従来のシステムでは、次のような問題点があった。
【００１５】
ルータなどのネットワーク機器の制限によりサブネットブロードキャストによる探索が使用できない場合や、デバイスの仕様によりマルチキャストアドレスを用いた探索が使用できない場合は、探索サービスモジュールをサブネットワーク毎に分散して配置する。
【００１６】
このように同一サブネットワーク上に複数の探索サービスモジュールを配置した場合、それらの複数の探索サービスモジュールに命令を出すと、そのネットワーク上には、ブロードキャストパケットなどが多数発生し、トラフィックが増加する。さらに、同一ネットワーク内に複数の探索サービスモジュールが存在する場合に、探索サービスモジュールが管理するネットワーク内や、複数の探索サービスモジュールとマネージャとの間でトラフィックが増大するといった問題があった。
【００１７】
また、ホップ数の離れたＬＡＮ上のデバイス探索の方法として、マルチキャストアドレスを用いた探索を使用しようとしても、デバイスの仕様により使えない場合がある。このような場合には、マネージャは、管理対象サブネットのアドレスなどのＬＡＮ情報を事前に知っておく必要があった。
【００１８】
これらの問題のために、従来技術では、エージェント等の管理対象を効率的に管理するネットワーク管理システムが構築できなかった。
【００１９】
本発明は上記従来の問題点に鑑み、デバイス探索用のモジュールの構成に依らず、ネットワーク・トラフィックを増大させずに広範囲なデバイス探索が行えるネットワークデバイス管理システム及びその処理方法、並びに処理プログラムを提供することを目的とする。また、エージェントなどのネットワーク上の管理対象を効率的に管理することができるネットワークデバイス管理システム及びその処理方法、並びに処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記目的を達成するために、本発明は、自身の状態に関するデータを保持する第一のデバイスと、前記第一のデバイスの管理を行う情報処理装置と、前記第一のデバイスの探索を行うと共に前記第一のデバイスの保持情報を取得可能な第二のデバイスとを有するネットワークデバイス管理システムにおいて、前記ネットワーク上に存在する複数の第二のデバイスそれぞれの能力を比較し、その結果に基づいて特定の第二のデバイスを決定する決定手段と、前記決定手段で決定された特定の第二のデバイスを前記情報処理装置に登録する登録手段とを有し、前記情報処理装置から、前記特定の第二のデバイスを経由して、前記第一のデバイスに対して所定の処理を行うことを特徴とする。
【００２１】
また、本発明は、自身の状態に関するデータを保持する第一のデバイスと、前記第一のデバイスの管理を行う情報処理装置と、前記第一のデバイスの探索を行うと共に前記第一のデバイスの保持情報を取得可能な第二のデバイスとを有するネットワークデバイス管理システムの処理方法であって、前記ネットワーク上に存在する第二のデバイスのうちの特定の第二のデバイスを決定する決定工程と、前記決定工程で決定された特定の第二のデバイスを前記情報処理装置に登録する登録工程と、前記情報処理装置から、前記特定の第二のデバイスを経由して、前記第一のデバイスに対して所定の処理を行う処理工程とを実行することを特徴とする。
【００２２】
また、本発明は、ネットワーク上のデバイスの状態に関するデータを保持する第一のデバイスと、前記第一のデバイスの管理を行う情報処理装置と、前記デバイスの探索を行うと共に前記第一のデバイスの保持情報を提供可能な第二のデバイスとを有するネットワークデバイス管理システムの処理方法を実行するための、コンピュータで読み取り可能な処理プログラムであって、前記ネットワーク上に存在する第二のデバイスのうちの特定の第二のデバイスを決定する決定ステップと、前記決定ステップで決定された特定の第二のデバイスを前記情報処理装置に登録する登録ステップと、前記情報処理装置から、前記特定の第二のデバイスを経由して、前記第一のデバイスに対して所定の処理を行う処理ステップとを備えたことを特徴とする。
【発明の効果】
【００２３】
本発明によれば、デバイス探索用のブローカの構成に依らず、ネットワーク・トラフィックを増大させずに広範囲なデバイス探索を行うことができ、且つエージェントなどのネットワーク上の管理対象を効率的に管理することが可能になる。
【発明を実施するための最良の形態】
【００２４】
本発明の実施の形態について、図面を参照しながら説明する。
【００２５】
［第一の実施の形態］
＜ネットワーク構成＞
図１は、本発明の第一の実施の形態に係るネットワーク管理システムの構成を示すブロック図である。
【００２６】
このネットワーク管理システムは、ネットワーク１００上に、情報処理装置としてのホストコンピュータ４１０と、デバイスとしての複数のプリンタ４２０，４３０，４４０とが接続されて成る。ホストコンピュータ４１０上では、これらネットワークデバイスの管理ソフトウェアであるマネージャ４１３が起動している。
【００２７】
また、プリンタ４２０には、エージェント４２１とブローカ４２２が起動し、プリンタ４３０には、エージェント４３１とブローカ４３２が起動し、さらにプリンタ４４０には、エージェント４４１が起動している。ここで、各エージェント４２１，４３１，４４１は、それぞれプリンタ４２０，４３０，４４０自身の状態や構成をマネージャ４１３へ通知するための通知情報を作成する機能を有するソフトウェアである。ブローカ４２２，４３２は、マネージャ４１３の命令をエージェント４２１，４３１に実行し、これらエージェントを管理する働きをするソフトウェアである。
【００２８】
各ブローカ４２２，４３２は、具体的には、指定されたネットワークアドレスのエージェントからの情報を収集してマネージャ４１３へ提供する情報取得機能や、サブネットワーク内のエージェントのアドレス探索を行うデバイス探索機能などがある。
【００２９】
そして、ホストコンピュータ４１０は、マネージャ４１３が各ブローカ４２２，４３２の優先順位を決定するためのブローカ決定属性を登録するための機能を有し、ブローカ決定属性の属性値が最も優れているブローカをマスタ・ブローカと呼ぶ。
【００３０】
ここで、ブローカ決定属性としては、ブローカが提供できるサービスの処理速度、ブローカが提供できるサービスのメモリサイズ、ブローカのバージョン、及びブローカとエージェント間の通信プロトコルが挙げられる。また、ブローカが提供できるサービスの過去のサービス提供実績、ブローカが提供できるサービスの保持しているエージェントの情報量、ブローカが提供できるサービスのネットワークカードの数も挙げられる。さらに、ブローカが提供できるサービスのデバイスの最大ホップ数、及びブローカが提供できるサービスの保持しているエージェント情報の更新時刻等も挙げることができる。
【００３１】
このように、図１の構成のネットワーク管理システムは、サブネットワーク１００上に、マネージャと、２つのブローカと、３つのエージェントが存在する場合の構成を示している。
【００３２】
＜ネットワークデバイスの詳細な構成＞
図２は、図１に示したネットワークデバイスの詳細な構成を示すブロック図である。
【００３３】
図１に示した、管理対象であるデバイスのエージェント４２１，４３１，４４１は、それぞれプリンタ４２０，４３０，４４０のネットワークインタフェースである入出力部１８に接続されるエージェント部１５０１である。ブローカ４２２，４３２は、ブローカ部１５０２で動作するＥｍｂｅｄｄｅｄ  Ｊａｖａ（登録商標）環境のプログラムである。また、ブローカは、プリンタ上のＣＰＵ１２、ＲＡＭ１９、ＲＯＭ１３で、Ｅｍｂｅｄｄｅｄ  Ｊａｖａ（登録商標）環境のプログラムとしても動作させることが可能である。なお、本実施の形態では、ブローカをプリンタ上で動作させるが、ネットワークに接続されているコンピュータ上で動作させることも可能である。
【００３４】
第一の実施形態に係るネットワークデバイス管理システムは、ホストコンピュータ４１０とプリンタ４２０，４３０とから構成されている。ホストコンピュータ４１０は、ＣＰＵ１、ＲＡＭ２、ＲＯＭ３、キーボードコントローラ（ＫＢＣ）５、及びＣＲＴコントローラ（ＣＲＴＣ）６を備えている。さらに、ディスクコントローラ（ＤＫＣ）７、プリンタコントローラ（ＰＲＴＣ）８、キーボード（ＫＢ）９、ＣＲＴディスプレイ（ＣＲＴ）１０、及び外部メモリ１１も備えている。
【００３５】
まず、ホストコンピュータ４１０各部の構成を詳述すると、ＣＰＵ１は、システムバスに接続された各デバイスを統括的に制御する中央処理装置である。このＣＰＵ１は、ＲＯＭ３のプログラム用ＲＯＭ３ｂ（後述）或いは外部メモリ１１に記憶された文書処理プログラム等に基づいて、図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行する。
【００３６】
ＲＡＭ２はＣＰＵ１の主メモリやワークエリア等として機能する。ＲＯＭ３は、フォント用ＲＯＭ３ａと、プログラム用ＲＯＭ３ｂと、データ用ＲＯＭ３ｃとを備えている。フォント用ＲＯＭ３ａ或いは外部メモリ１１は、上記文書処理の際に使用するフォントデータなどを記憶する。プログラム用ＲＯＭ３ｂ或いは外部メモリ１１は、ＣＰＵ１の制御プログラムであるオペレーティングシステム（以下、ＯＳ）等を記憶する。データ用ＲＯＭ３ｃ或いは外部メモリ１１は、上記文書処理等を行う際に使用する各種データを記憶する。
【００３７】
キーボードコントローラ（ＫＢＣ）５は、キーボード９やポインティングデバイス（図示略）からのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。ディスクコントローラ（ＤＫＣ）７は、外部メモリ１１とのアクセスを制御する。プリンタコントローラ（ＰＲＴＣ）８は、ネットワーク１００を介してプリンタ４２０，４３０に接続されて、プリンタ４２０，４３０との通信制御処理を実行する。キーボード９は、各種キーを備えている。
【００３８】
ＣＲＴディスプレイ（ＣＲＴ）１０は、図形やイメージ文字、表等を表示する。外部メモリ１１は、ハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）等から構成されている。そして、外部メモリ１１は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、及びプリンタ制御コマンド生成プログラム（以下、プリンタドライバ）等を記憶する。
【００３９】
上述したＣＰＵ１、ＲＡＭ２、ＲＯＭ３、キーボードコントローラ（ＫＢＣ）５、ＣＲＴコントローラ（ＣＲＴＣ）６、ディスクコントローラ（ＤＫＣ）７、及びプリンタコントローラ（ＰＲＴＣ）８は、コンピュータ制御ユニット２０００上に配設されている。
【００４０】
次に、プリンタ４２０，４３０各部の構成を詳述すると、ＣＰＵ１２は、システムバス１５に接続された各デバイスを統括的に制脚する中央処理装置である。このＣＰＵ１２は、ＲＯＭ１３のプログラム用ＲＯＭ１３ｂ（後述）に記憶された制御プログラム等或いは外部メモリ１４に記憶された制御プログラム等に基づいて印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。また、ＣＰＵ１２は、入出力部１８を介してホストコンピュータ４１０との通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ４１０に通知できる構成となっている。
【００４１】
ＲＡＭ１９は、ＣＰＵ１２の主メモリや、ワークエリア等として機能する。ＲＯＭ１３は、フォント用ＲＯＭ１３ａと、プログラム用ＲＯＭ１３ｂと、データ用ＲＯＭ１３ｃとを備えている。フォント用ＲＯＭ１３ａは、上記出力情報を生成する際に使用するフォントデータなどを記憶する。プログラム用ＲＯＭ１３ｂは、ＣＰＵ１２の制御プログラム等を記憶する。データ用ＲＯＭ１３ｃは、プリンタ４２０，４３０にハードディスク等の外部メモリ１４が接続されていない場合には、ホストコンピュータ４１０上で利用される情報等を記憶する。
【００４２】
ネットワークカード等の入出力部１８は、ネットワーク１００を介してプリンタ４２０，４３０とホストコンピュータ４１０との間におけるデータの送受を行う。また、入出力部１８に接続されたエージェント部１５０１は、ホストコンピュータ４１０やブローカ部１５０２と、ネットワーク１００またはシステムバス１５を介して通信を行う。印刷部インタフェース（Ｉ／Ｆ）１６は、ＣＰＵ１２と印刷部１７との間におけるデータの送受を行う。メモリコントローラ（ＭＣ）２０は、外部メモリ１４のアクセスを制御する。印刷部１７は、ＣＰＵ１２の制御に基づき印刷動作を行う。操作部２１は、各種操作のためのスイッチや表示手段（例えばＬＥＤ表示器）等を備えている。
【００４３】
上述したＣＰＵ１２、ＲＡＭ１９、ＲＯＭ１３、入出力部１８、印刷部インタフェース（Ｉ／Ｆ）１６、及びメモリコントローラ（ＭＣ）２０は、プリンタ制御ユニット１０００上に配設されている。
【００４４】
なお、本発明の機能が実行されるのであれば、ホストコンピュータ４１０でのプログラムの動作を、プリンタ４２０，４３０上のＣＰＵ、ＲＡＭ、ＲＯＭで動作しても、本発明を適用できることは言うまでもない。また、ホストコンピュータ４１０とプリンタ４２０，４３０間の接続方式がＬＡＮや、ＷＡＮ以外のネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用できることは言うまでもない。なお、ＬＡＮは、ローカルエリアネットワーク（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）の略称であり、ＷＡＮは広域ネットワーク（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）の略称である。
【００４５】
＜マスタ・ブローカ決定方法＞
次に、上記構成を有するネットワークデバイス管理システムにおける、マスタ・ブローカの決定方法について説明する。
【００４６】
（Ａ）ブローカ起動時のマスタ・ブローカ決定処理
図３は、ブローカ起動時のマスタ・ブローカ決定処理を示すフローチャートであり、この処理は、例えばブローカ４２２によって実行されるものとして説明する。
【００４７】
複数のブローカ４２２，４３２のうち例えばブローカ４２２がサービスを開始すると、マネージャの探索を行う（ステップＳ５０１）。マネージャの探索方法としては、予めマネージャのアドレスを登録しておく方法が考えられる。さらには、ブロードキャストアドレスやマルチキャストアドレスなどによりＳＬＰ（サービス  Ｌｏｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）で探索する方法、或いはポート番号を固定した独自プロトコルによりマネージャの存在を確認する方法なども考えられる。
【００４８】
ここで、複数のマネージャが探索された場合は、以下のフローをマネージャ毎に繰り返し、ブローカ４２２ではマネージャ毎のデータを保持することになる。
【００４９】
次のステップＳ５０２では、マネージャの存在が確認されたか否かを判定し、マネージャの存在が確認された場合には、ステップＳ５０３へ進む。ステップＳ５０３では、マネージャ４１３から前述したブローカ決定属性を少なくとも１つ以上取得する。前記ステップＳ５０２において、マネージャの存在が確認されなかった場合には、ステップＳ５０４へ進んで、当該ブローカ４２２自身が保持しているデフォルトのブローカ決定属性を取得する。
【００５０】
以下のステップでは、前記ステップＳ５０２において例えばマネージャ４１３の存在が確認されたものとして説明する。
【００５１】
続くステップＳ５０５において、ブローカ４２２は、前記ステップＳ５０３で取得したブローカ決定属性を持つ、サブネットワーク内のブローカの探索を行う。ここで、ブローカの探索方法としては、予めサブネットワーク上の他のブローカのアドレスを登録しておく方法が考えられる。さらには、ブロードキャストアドレスやマルチキャストアドレスなどによりＳＬＰで探索する方法、或いはポート番号を固定した独自プロトコルによりブローカの存在を確認する方法なども考えられる。
【００５２】
次のステップＳ５０６では、ブローカ４２２は、前記ステップＳ５０５でのブローカの探索結果を受けて、探索されたブローカの中に、サブネットワークを代表するマスタ・ブローカが存在するか否かの判定を行う。マスタ・ブローカが探索された場合はステップＳ５０７へ進む。ステップＳ５０７では、現在のマスタ・ブローカからブローカ決定属性の属性値の取得を行い、次のステップＳ５０８では、その属性値と、サービスを開始したブローカ４２２自身のブローカ決定属性の属性値とを比較する。その結果、ブローカ４２２自身のブローカ決定属性の属性値が、現在のマスタ・ブローカのそれよりも優れている場合はステップＳ５１２へ進む。
【００５３】
ステップＳ５１２では、マネージャ４１３に対してブローカ４２２自身を新たなマスタ・ブローカとして登録する。さらに、ステップＳ５１４において、サブネットワーク内の他のブローカ４３２に対して、新たなマスタ・ブローカを通知する。また、前記ステップＳ５０８において、ブローカ４２２自身のブローカ決定属性の属性値が前記現在のマスタ・ブローカのそれよりも劣っている場合は、ステップＳ５１２をスキップしてステップＳ５１４へ進む。ステップＳ５１４では、サブネットワーク内の他のブローカ４３２に対して、現在のマスタ・ブローカを通知する。
【００５４】
一方、前記ステップＳ５０６において、マスタ・ブローカがサブネットワーク上に存在しないと判定された場合には、ステップＳ５０９へ進む。ステップＳ５０９では、前記ステップＳ５０５のブローカの探索結果から他のブローカが存在するかの確認を行い、他のブローカが存在しない場合は、ステップＳ５１２により、マネージャ４１３に対して、当該ブローカ４２２自身をマスタ・ブローカとして登録する。さらに、ステップＳ５１４において、サブネットワーク内のブローカに対してマスタ・ブローカの変更を通知する。
【００５５】
また、ステップＳ５０９において、サブネットワーク内に他のブローカが存在すると判定された場合は、ステップＳ５１０へ進んで、他のブローカからブローカ決定属性の属性値を取得する。さらに、ステップＳ５１１において、取得した他のブローカの属性値と当該ブローカ４２２自身のブローカ決定属性の属性値とを比較し、ブローカ４２２自身が優れている場合は、ステップＳ５１２へ進む。そして、ステップＳ５１２では、マネージャ４１３に対して、ブローカ４２２自身をマスタ・ブローカとして登録し、続くステップＳ５１４において、サブネットワーク内の他のブローカにマスタ・ブローカを通知する。
【００５６】
一方、前記ステップＳ５１１において、他のブローカの属性値の方が優れている場合は、ステップＳ５１３へ進んで、ブローカ決定属性の属性値が最も優れているブローカをマスタ・ブローカとして決定する。その後、ステップＳ５１４において、サブネットワーク内の他のブローカに対して、マスタ・ブローカの変更を通知する。
【００５７】
以上の処理により、ブローカ起動時にマスタ・ブローカを決定する。
【００５８】
（Ｂ）マネージャ要求時のマスタ・ブローカ決定処理
次に、マネージャ４１３の要求による、マスタ・ブローカの決定処理について、図４を参照して説明する。
【００５９】
図４は、マネージャ要求時のマスタ・ブローカ決定処理を示すフローチャートである。
【００６０】
まずステップＳ６０１において、複数のブローカ４２２，４３２のうち例えばブローカ４２２は、マネージャ４１３が発行した、マスタ・ブローカを探索するための探索要求と、少なくとも１つ以上のブローカ決定属性の通知とを受け取る。この時、マネージャ４１３は、ブローカ決定属性の通知だけ発行し、必ずしも前記探索要求を発行する必要はない。
【００６１】
その後のステップＳ５０５以降の処理フローは、図３で説明の処理フローと同じであるので省略する。
【００６２】
＜第一の実施の形態に係るシーケンス＞
次に、図４で示した、マネージャ要求時のマスタ・ブローカ決定処理に対応したシーケンスを説明する。
【００６３】
図５は、第一の実施の形態に係る処理を示すシーケンス図である。
【００６４】
同図に示すように、まずマネージャ４１３は、例えばブローカ４２２に対して、サブネットワーク内のマスタブローカの探索要求とブローカ決定属性の通知とを発行する（図５のＴ１、図４のステップＳ６０１に相当）。これを受けたブローカ４２２は、サブネットワーク内の他のブローカを探索し（Ｔ２、ステップＳ５０５に相当）、探索された他のブローカの能力調査をブロードキャストにより行う（Ｔ３、ステップＳ５０７）。
【００６５】
その後、他のブローカ、つまり本例ではブローカ４３２から応答があり（Ｔ４）、これを基にマスタブローカをブローカ４３２に決定する（Ｔ５、ステップＳ５０８）。そして、ブローカ４２２は、マネージャ４１３に対して、決定したマスタ・ブローカを登録する（Ｔ６、ステップＳ５１２）と共に、他のブローカ４３２に対してマスタブローカを通知する（Ｔ７、ステップＳ５１４）。
【００６６】
マネージャ４１３は、マスタ・ブローカがブローカ４３２に決定すると、ブローカ４３２に対して、エージェントの探索要求を発行し（Ｔ８）、エージェント４２１，４３１が探索される（Ｔ９、Ｔ１０）。そして、その結果がマスタブローカ４３２からマネージャ４１３へ返信された後（Ｔ１１）、マネージャ４１３は、各エージェントに対して、エージェント情報の取得を行う（Ｔ１２〜Ｔ１５）。
【００６７】
＜第一の実施の形態の利点＞
本実施の形態によれば、ブローカの起動時（サービス開始時）、或いはマネージャからブローカへの要求によって、サブネットワークを代表するブローカ（つまり、優先順位の最も高いブローカ）であるマスタ・ブローカが決定される。即ち、サブネットワーク上にデバイス探索用のブローカが複数存在する場合であっても、そのうちの１つのブローカ例えばブローカ４２２は、起動時、或いはマネージャからの要求により、サブネットワーク内の他のブローカを探索する。そして、その中からマスタ・ブローカを決定し（例えばブローカ４３２）、これをマネージャに登録する。マネージャは、登録されたマスタ・ブローカに対してエージェントの探索要求を発行し、その探索結果がマスタ・ブローカからマネージャ４１３に返信される。そして、マネージャ４１３は、探索された各エージェントに対して、エージェント情報の取得を行う。
【００６８】
このような処理により、サブネットワーク内にデバイス探索用のブローカが複数存在する場合であっても、マネージャから、特定のブローカ（マスタ・ブローカ）を経由して、エージェントの探索及びエージェントの情報取得を行うシステムが実現される。これにより、複数のデバイス探索用ブローカとマネージャとの間で通信を行うのに比べてネットワーク・トラフィックが低減し、効率的なエージェントやブローカの管理が可能となる。
【００６９】
［第２の実施の形態］
上記第一の実施の形態では、マスタ・ブローカが決定した後に、マスタ・ブローカでエラーが発生してサービスを正常に提供できない場合は、マネージャがマスタ・ブローカのエラーを検出し、マスタ・ブローカを再選出することが可能である。しかし、本実施の形態では、マネージャでのブローカ管理を容易にするために、サブネットワーク内のマスタ・ブローカ以外のブローカ（バックアップブローカ）が、マスタ・ブローカのエラーを検出するように処理する。
【００７０】
なお、本実施の形態の構成は、前述した図１及び図２の構成と同じである。
【００７１】
＜第２の実施の形態のシーケンス＞
図６は、第２の実施の形態に係る処理を示すシーケンス図である。
【００７２】
サブネットワーク上に複数のブローカが存在する場合に、例えばブローカ４２２がサービスを開始すると（Ｔ２１）、上記第一の実施の形態で説明した処理と同様に、まずブローカ４２２は、サブネットワーク内の他のブローカを探索する。そして、他のブローカの能力調査を行う（Ｔ２２）。
【００７３】
その後、他のブローカ、つまり本例ではブローカ４３２から応答があり（Ｔ２３）、これを基にマスタブローカをブローカ４２２自身に決定する（Ｔ２４）。そして、ブローカ４２２は、他のブローカ４３２に対してマスタブローカを通知すると共に（Ｔ２５、Ｔ２６）、マネージャ４１３に対して、決定したマスタ・ブローカを登録する（Ｔ２７、Ｔ２８）。
【００７４】
その後、バックアップブローカであるブローカ４３２がマスタ・ブローカ４２２の生存確認を行うと（Ｔ２９）、マスタ・ブローカ４２２が正常であれば、マスタ・ブローカ４２２から応答がある（Ｔ３０）。マスタ・ブローカ４２２でエラーが発生し処理が停止すると（Ｔ３１）、ブローカ４３２がマスタ・ブローカ４２２の生存確認を行っても（Ｔ３２）、ブローカ４３２は、マスタ・ブローカ４２２からの応答を受けることができない。この応答待ちがタイムアウトになると、バックアップブローカ４３２は、マスタブローカ４２２がサービスを停止したものと判断する（Ｔ３３）。
【００７５】
その結果、前述と同様の方法でサブネットワーク内のブローカの探索を行い（Ｔ３４）、さらにブローカの能力調査を行い（Ｔ３５）、マスタ・ブローカをブローカ４３２自身に決定する（Ｔ３６）。そして、マスタブローカとなったブローカ４３２は、他のブローカ４３２に対してマスタブローカを通知し（Ｔ３７）、さらにマネージャ４１３に対して、決定したマスタ・ブローカの登録を行う（Ｔ３８）。
【００７６】
＜第２の実施の形態の利点＞
第２の実施の形態によれば、サブネットワーク上にデバイス探索用のブローカが複数存在する場合において、バックアップブローカによってマスタ・ブローカのエラーを検出するようにした。さらに、バックアップブローカが、マスタ・ブローカのエラーを検出した場合には、ブローカの再選出を行い、決定したマスタ・ブローカをマネージャに登録する。これにより、マネージャがブローカのエラー検出を行う必要がないので、マネージャでのブローカ管理が容易となり、しかもネットワーク・トラフィックの少ない効率的な管理が可能となる。
【００７７】
［第３の実施の形態］
マネージャがブローカやエージェントを探索する場合や、ブローカがマネージやエージェントを探索する場合に、ユニキャストアドレスによる探索では、対象となるアドレスを事前に知っておく必要ある。また、ブロードキャストによる探索では、サブネットワークのアドレスを事前に知っておく必要がある。これに対して、マルチキャストアドレスによる探索では、事前に対象となる個別のアドレスを知っておく必要がない。そのため、対象アドレスの管理が不要になり、効率的な管理を行える。しかし、管理対象がマルチキャストアドレスをサポートしていない場合は、直接、マルチキャストアドレスで通信することができないために、エージェントの探索や、エージェントからの情報取得ができない。本実施の形態は、このような環境において、ネットワークデバイスを効率的に管理するためのネットワークデバイス管理システムを提供するものである。
【００７８】
＜第３の実施の形態の構成＞
図７は、本発明の第３の実施の形態に係るネットワーク管理システムの構成を示すブロック図である。
【００７９】
このネットワーク管理システムは、図１に示したものと同様に、ネットワーク１００上に、ホストコンピュータ４１０が接続され、ホストコンピュータ４１０上では、マネージャ４１３が起動している。そして、ネットワーク１００は、ルータ１３０を介してネットワーク２００に接続され、ネットワーク２００上には、プリンタ９１０，９２０，９３０が接続されている。
【００８０】
ここで、プリンタ９１０には、エージェント９１１とブローカ９１２が起動し、プリンタ９２０には、エージェント９２１とブローカ９２２が起動し、さらにプリンタ９３０には、エージェント９３１が起動している。
【００８１】
マネージャ４１３と、エージェント９１１，９２１，９３１及びブローカ９１２，９２２との間には、ルータ１３０が介在している。そのため、ブロードキャストによる探索を行うには、エージェント９１１，９２１，９３１の存在するネットワーク２００のサブネットアドレスを知っている必要がある。このサブネットアドレスが分からない場合は、マネージャ４１３、ブローカ９１２，９２２、及びエージェント９１１，９２１，９３１が同一のマルチキャストアドレスを利用することにより、ルータ１３０を経由したエージェントの探索が容易に可能である。
【００８２】
しかし、複数のエージェントの中には、マルチキャストアドレスをサポートしていないエージェントもある。本実施の形態においては、エージェント９３１がマルチキャストアドレスをサポートしていないエージェントであり、従ってエージェント９３１は、マルチキャストアドレスによる探索に応答することができない。そのため、本実施の形態のブローカ９２２は、エージェントの探索を行うために、ブロードキャストアドレスによる探索を行う。以下、本実施の形態のシーケンスについて、図８を用いて説明する。
【００８３】
＜第３の実施の形態に係るシーケンス＞
図８は、第３の実施の形態に係る処理を示すシーケンス図である。
【００８４】
同図に示すように、まずマネージャ４１３は、マルチキャストアドレスによる探索により、例えばブローカ９１２に対して、サブネットワーク内のマスタブローカの探索要求とブローカ決定属性の通知とを発行する（Ｔ４１）。これを受けたブローカ９１２は、サブネットワーク内の他のブローカを探索し（Ｔ４２）、探索された他のブローカの能力調査をブロードキャストにより行う（Ｔ４３）。
【００８５】
他のブローカ９２２から応答があると（Ｔ４４）、これを基にマスタブローカをブローカ９２２に決定する（Ｔ４５）。そして、ブローカ９１２は、マネージャ４１３に対して、決定したマスタ・ブローカを登録する（Ｔ４６）と共に、他のブローカ９２２に対してマスタブローカを通知する（Ｔ４７）。
【００８６】
その後は、図５のシーケンスと同様の処理が行われる。即ち、マネージャ４１３からの探索リクエストに対して（Ｔ４８）、マスタブローカ９２２は、ブロードキャストアドレスによるエージェントの探索を行う（Ｔ４９〜Ｔ５１）。これによって、マルチキャストアドレスに対応していないエージェント９３１の探索も可能になる。
【００８７】
また、探索結果がマスタブローカ９２２からマネージャ４１３へ返信され（Ｔ５２）、その後、マネージャ４１３は、各エージェントに対して、エージェント情報の取得を行う（Ｔ５３〜Ｔ５８）。これによって、マルチキャストアドレスに対応していないエージェント９３１からの情報取得も可能になる。
【００８８】
＜第３の実施の形態の利点＞
本実施の形態によれば、マネージャ４１３がルータ１３０を経由してブローカ４２２と通信を行う際には、マルチキャストアドレスを利用する。これによって、ルータを越えた広域ネットワークでのデバイス探索が容易に行える。その後、マスタ・ブローカとなったブローカ９２２は、マネージャ４１３からの探索リクエストを受けて、ブロードキャストアドレスによるエージェント探索を行う。これによって、マルチキャストアドレスに対応していないエージェント９３１の探索が可能となる。
【００８９】
このような処理により、ルータを越えた広域ネットワーク上に、マルチキャストアドレスをサポートしないエージェントが存在する場合でも、効率的なエージェントの探索が可能となり、マネージャは該エージェントからの情報取得を行うことができる。また、マネージャは、マルチキャストアドレスを利用するので、管理対象となるサブネットワークのエージェントのアドレスなどのＬＡＮ情報を事前に知っておく必要がないため、マネージャでのエージェントの管理が容易となる。
【００９０】
上記各実施の形態におけるブローカの探索方法は、例えば、ブロードキャストパケット、サブネット指定ブロードキャスト、マルチキャストパケット、またはディレクトリサービスによる探索とする。さらには、指定ネットワーク内の探索、或いはユーザが規定したユニキャストアドレスによる探索でもよい。
【００９１】
また、上記各実施の形態では、デバイスであるプリンタにおいてブローカが起動している例を示したが、情報処理装置であるサーバなどのコンピュータにおいて起動させるように構成してもよい。また、マネージャが起動している情報処理装置であるホストコンピュータにおいてブローカを起動させてもよい。つまり、図１においてホストコンピュータ４１０がマネージャとブローカを起動するように構成してもよい。また、上記各実施の形態では、デバイスの一例としてプリンタである場合を例にあげたが、デバイスとしてスキャナや複写機、複合機やファクリミリ等の装置であってもよい。
【００９２】
また、上記したサブネットワークは、例えば、ブロードキャストパケットの到達範囲、マルチキャストパケットの到達範囲、またはユーザが規定したネットワークを単位とする。
【００９３】
また、本発明の目的は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給する場合にも達成される。この場合は、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出し実行する。
【００９４】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した各実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９５】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷを用いることができる。さらには、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ等の光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等も用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００９６】
また、本発明は、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけではない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【００９７】
さらに、本発明は、次のような場合も含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００９８】
【図１】第一の実施の形態に係るネットワーク管理システムの構成を示すブロック図である。
【図２】図１に示したネットワークデバイスの詳細な構成を示すブロック図である。
【図３】ブローカ起動時のマスタ・ブローカ決定処理を示すフローチャートである。
【図４】ブローカに対するリクエスト時のマスタ・ブローカ決定処理を示すフローチャートである。
【図５】第一の実施の形態に係る処理を示すシーケンス図である。
【図６】第２の実施の形態に係る処理を示すシーケンス図である。
【図７】第３の実施の形態に係るネットワーク管理システムの構成を示すブロック図である。
【図８】第３の実施の形態に係る処理を示すシーケンス図である。
【図９】従来のコンピュータネットワークの構成例を示すブロック図である。
【符号の説明】
【００９９】
１００，２００  ネットワーク
１３０  ルータ
４１０  ホストコンピュータ
４２０，４３０，４４０  プリンタ
４１３  マネージャ
４２１，４３１，４４１  エージェント
４２２，４３２  ブローカ
９１０，９２０，９３０  プリンタ
９１１，９２１，９３１  エージェント
９１２，９２２  ブローカ
【図１】
2007122636.tif 000003
【図２】
2007122636.tif 000004
【図３】
2007122636.tif 000005
【図４】
2007122636.tif 000006
【図５】
2007122636.tif 000007
【図６】
2007122636.tif 000008
【図７】
2007122636.tif 000009
【図８】
2007122636.tif 000010
【図９】
2007122636.tif 000011