(57)【要約】【課題】マルチキャストパケットを使用せず、自身の属するデータリンク以外のネットワーク上の機器を容易に発見する。【解決手段】複数の機器がネットワークを介して通信するシステムであって、当該システムに属する他の機器から発見されるために、所定時間おきに近隣のルータに対して小規模な通信を行う機能を有する被発見側機器と、上記システムに属する他の機器を発見するために、自身の近隣のルータから接続装置情報を取得し、当該接続装置情報に記載された機器と通信することで所望の機器であることを確認する機能を有する発見側機器とを備える。【選択図】図２
2009049894.tif 000002
【特許請求の範囲】
【請求項１】
複数の機器がネットワークを介して通信するシステムであって、
当該システムに属する他の機器から発見されるために、所定時間おきに近隣のルータに対して小規模な通信を行う機能を有する被発見側機器と、
上記システムに属する他の機器を発見するために、自身の近隣のルータから接続装置情報を取得し、当該接続装置情報に記載された機器と通信することで所望の機器であることを確認する機能を有する発見側機器とを備えたことを特徴とするネットワーク通信システム。
【請求項２】
請求項１に記載のネットワーク通信システムにおいて、
上記発見側機器は、上記接続装置情報に記載された機器が、所望の機器に特有のサービスを提供しているかどうかを調査することで所望の機器であることを確認することを特徴とするネットワーク通信システム。
【請求項３】
請求項１または２のいずれか一項に記載のネットワーク通信システムにおいて、
上記発見側機器は、自身の近隣のルータの先のネットワーク上に他のルータが存在することが判明した場合、当該他のルータから接続装置情報を取得し、当該接続装置情報に記載された機器と通信することで所望の機器であることを確認することを特徴とするネットワーク通信システム。
【請求項４】
複数の機器がネットワークを介して通信するシステムに接続される機器であって、
上記システムに属する他の機器から発見されるために、所定時間おきに近隣のルータに対して小規模な通信を行う機能を有することを特徴とするネットワーク通信機器。
【請求項５】
複数の機器がネットワークを介して通信するシステムに接続される機器であって、
上記システムに属する他の機器を発見するために、自身の近隣のルータから接続装置情報を取得し、当該接続装置情報に記載された機器と通信することで所望の機器であることを確認する機能を有することを特徴とするネットワーク通信機器。
【請求項６】
請求項５に記載のネットワーク通信機器において、
上記接続装置情報に記載された機器が、所望の機器に特有のサービスを提供しているかどうかを調査することで所望の機器であることを確認することを特徴とするネットワーク通信機器。
【請求項７】
請求項５または６のいずれか一項に記載のネットワーク通信機器において、
自身の近隣のルータの先のネットワーク上に他のルータが存在することが判明した場合、当該他のルータから接続装置情報を取得し、当該接続装置情報に記載された機器と通信することで所望の機器であることを確認することを特徴とするネットワーク通信機器。
【請求項８】
複数の機器がネットワークを介して通信するシステムにおける機器の発見方法であって、
上記システムに属する他の機器から発見されるために、被発見側機器が所定時間おきに近隣のルータに対して小規模な通信を行う工程と、
上記システムに属する他の機器を発見するために、発見側機器が自身の近隣のルータから接続装置情報を取得し、当該接続装置情報に記載された機器と通信することで所望の機器であることを確認する工程とを備えたことを特徴とする機器発見方法。
【請求項９】
請求項８に記載の機器発見方法において、
上記発見側機器は、上記接続装置情報に記載された機器が、所望の機器に特有のサービスを提供しているかどうかを調査することで所望の機器であることを確認することを特徴とする機器発見方法。
【請求項１０】
請求項８または９のいずれか一項に記載の機器発見方法において、
上記発見側機器は、自身の近隣のルータの先のネットワーク上に他のルータが存在することが判明した場合、当該他のルータから接続装置情報を取得し、当該接続装置情報に記載された機器と通信することで所望の機器であることを確認することを特徴とする機器発見方法。
【請求項１１】
複数の機器がネットワークを介して通信するシステムにおける機器の制御プログラムであって、
上記システムに属する他の機器から発見されるために、被発見側機器が所定時間おきに近隣のルータに対して小規模な通信を行う機能と、
上記システムに属する他の機器を発見するために、発見側機器が自身の近隣のルータから接続装置情報を取得し、当該接続装置情報に記載された機器と通信することで所望の機器であることを確認する機能とを、
コンピュータに実行させる機器発見制御プログラム。
【請求項１２】
請求項１１に記載の機器発見制御プログラムにおいて、
上記発見側機器は、上記接続装置情報に記載された機器が、所望の機器に特有のサービスを提供しているかどうかを調査することで所望の機器であることを確認する機器発見制御プログラム。
【請求項１３】
請求項１１または１２のいずれか一項に記載の機器発見制御プログラムにおいて、
上記発見側機器は、自身の近隣のルータの先のネットワーク上に他のルータが存在することが判明した場合、当該他のルータから接続装置情報を取得し、当該接続装置情報に記載された機器と通信することで所望の機器であることを確認する機器発見制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルータと協調して遠隔にある画像処理装置（ＭＦＰ：Multi Function Printer）等の機器を発見する技術に関する。
【背景技術】
【０００２】
ＩＰｖ４（Internet Protocol version 4）ないしはＩＰｖ６（Internet Protocol version 6）パケットを扱うＩＰネットワークにおいて、ネットワーク上にある機器を他の機器から発見する技法が検討されてきた。特に、コンピュータの周辺機器であってネットワークに接続可能なものについては、この技術の実用が長らく望まれていた。このようなネットワーク上の機器発見機能を実現することで、遠隔からの機器のセットアップを容易にすることができるためである。
【０００３】
その一つの解として、ＩＰｖ４ネットワークのブロードキャストパケットを利用するという手法がある。
【０００４】
図１（ａ）はＩＰｖ４ネットワークのブロードキャストパケットを利用した機器発見の動作を示す図である。
【０００５】
図１（ａ）において、パーソナルコンピュータ等の発見側機器１Ａは、ネットワーク上に周辺機器が存在するかどうかを確認するため、機器検索に対応した所定の応答条件を含むブロードキャストパケットを送信する。すると、そのパケットはネットワークＮ１の範囲（ブロードキャストパケットの配布範囲Ａ１）内である同一データリンク内のすべてのノードに配信される。
【０００６】
そして、画像処理装置等の周辺機器である被発見側機器２Ａがそのパケットを受け取ると、自身のＩＰアドレスやその他の情報をブロードキャストパケットの送り主である発見側機器１Ａに返送する。このようにして、発見側機器１Ａにおいて被発見側機器２Ａの存在を知ることができる。なお、ブロードキャストパケットは目的の周辺機器以外の機器にも配信されるが、この機器検索に対応していないノードはそのまま読み捨てることになる。
【０００７】
しかしながら、この手法には、次のような問題がある。
（１）ブロードキャストパケットの送信先はネットワークＮ１の範囲内である同一データリンク内に限られてしまい、ルータ３Ａの先に接続されるネットワークＮ２の範囲内である異なるデータリンクには適用できない。その結果、ネットワークＮ２に接続された被発見側機器２Ｂを発見することができない。
（２）ブロードキャストパケットの取り扱いは、送り主や目的の周辺機器だけでなく、ネットワーク内の全ノードに対して負担となる。
【０００８】
前者の問題は、特に機器検索範囲を広くとることができないということにつながり、可用性を低下させることにつながるため、何らかの対策が必要である。また、後者の問題は、機器本来の処理に影響するため、同様に何らかの対策が必要である。
【０００９】
このような問題を解決するため、発見用パケットにはＩＰｖ４ネットワークのブロードキャストパケットではなくマルチキャストパケットを使うという手法が提案されている。これを活用しているのがＳＬＰ（Service Location Protocol）等の機器発見プロトコルである。
【００１０】
図１（ｂ）はマルチキャストパケットを利用した機器発見の動作を示す図である。
【００１１】
図１（ｂ）において、パーソナルコンピュータ等の発見側機器１Ａは、ネットワーク上に周辺機器が存在するかどうかを確認するため、機器検索に対応した所定の応答条件を含むマルチキャストパケットを送信する。
【００１２】
ここで、ルータ３Ａが事前に適切にセットアップされていれば、発見側機器１Ａから送信されたマルチキャストパケットはルータ３Ａを越えてネットワークＮ２やネットワークＮ３に接続された被発見側機器２Ｂ〜２Ｆにも到達する。すなわち、マルチキャストパケットの配布範囲Ａ２はネットワーク全体に拡張することになる。
【００１３】
これにより、ブロードキャストセグメントを越えた、離れたネットワーク上に存在する機器を発見することが可能になる。
【００１４】
なお、出願人は出願時点までに本発明に関連する公開された先行技術文献を発見することができなかった。よって、先行技術文献情報を開示していない。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上述したマルチキャストパケットによる手法では離れたネットワーク上に存在する機器を発見することが可能になるが、この機能を現状の環境で利用するには、次のような問題がある。
（１）ルータがマルチキャスト機能に対応していなければならない。
（２）既定（well-known）ではないマルチキャストを使うとルータに設定が必要になり、ルータがそのマルチキャストパケットをルーティング（マルチキャストルーティング）できるように適切に設定されていなければならない。
（３）マルチキャストルーティングの場合は不要な場所の機器まで発見できてしまうため、マルチキャストパケットの配布範囲を制限する必要があるが、その制限はマルチキャストパケットの送信者が行なわなければならない。また、一つのマルチキャストアドレスを使用するため、配布範囲の制限をホストごとに設定することができない。
【００１６】
上記（１）は、機器検索の対象範囲内にあるルータの全てがマルチキャスト機能に対応していなければならないことを意味し、既存のネットワーク環境に適用するのは困難である。
【００１７】
上記（２）は、管理者の作業の負担を増加させ、好ましくない。また、設定内容を誤った場合、マルチキャストパケットの適切なルーティングがされず、機器検索が正常に行なえなくなる。
【００１８】
上記（３）は、送信者の操作性を悪化させ、好ましくない。例えば、現在自分のいるセグメントに隣接するネットワーク上の機器だけを発見したい場合、マルチキャストパケットのＴＴＬ（Time To Live）値（ホップ数）を正確に「２」に設定して送付しなければならない。これを誤ると、不要な場所の機器まで発見されてしまうとともに、ネットワークの負荷を上昇させる可能性もある。
【００１９】
なお、ＩＰｖ６では、マルチキャストパケットの送付範囲を指定できるエントリ（スコープ）があるが、これはかなり大まかな制御しかできない。結局のところ、マルチキャストパケットの送信者による送付先のコントロールはＴＴＬを利用するしかなく、それもルータの設定によっては思い通りにコントロールできない可能性もある。
【００２０】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、マルチキャストパケットを使用せず、自身の属するデータリンク以外のネットワーク上の機器を容易に発見することのできるネットワーク通信システム、ネットワーク通信機器、機器発見方法、および、機器発見制御プログラムを提供することにある。
【課題を解決するための手段】
【００２１】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、複数の機器がネットワークを介して通信するシステムであって、当該システムに属する他の機器から発見されるために、所定時間おきに近隣のルータに対して小規模な通信を行う機能を有する被発見側機器と、上記システムに属する他の機器を発見するために、自身の近隣のルータから接続装置情報を取得し、当該接続装置情報に記載された機器と通信することで所望の機器であることを確認する機能を有する発見側機器とを備えるネットワーク通信システムを要旨としている。
【００２２】
また、請求項２に記載されるように、請求項１に記載のネットワーク通信システムにおいて、上記発見側機器は、上記接続装置情報に記載された機器が、所望の機器に特有のサービスを提供しているかどうかを調査することで所望の機器であることを確認するようにすることができる。
【００２３】
また、請求項３に記載されるように、請求項１または２のいずれか一項に記載のネットワーク通信システムにおいて、上記発見側機器は、自身の近隣のルータの先のネットワーク上に他のルータが存在することが判明した場合、当該他のルータから接続装置情報を取得し、当該接続装置情報に記載された機器と通信することで所望の機器であることを確認するようにすることができる。
【００２４】
また、請求項４〜７に記載されるように、ネットワーク通信機器として構成することができる。
【００２５】
また、請求項８〜１０に記載されるように、機器発見方法として構成することができる。
【００２６】
また、請求項１１〜１３に記載されるように、機器発見制御プログラムとして構成することができる。
【発明の効果】
【００２７】
本発明のネットワーク通信システム、ネットワーク通信機器、機器発見方法、および、機器発見制御プログラムにあっては、ルータの持つ情報を利用することで、マルチキャストパケットを使用せず、自身の属するデータリンク以外のネットワーク上の機器を容易に発見することができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の好適な実施形態につき説明する。
【００２９】
＜第１の実施形態＞
図２は本発明の第１の実施形態にかかるシステムの構成例を示す図である。
【００３０】
図２において、ネットワークＮ１とネットワークＮ２とがルータ３Ａを介して接続されており、ネットワークＮ１にはパーソナルコンピュータ等の発見側機器１Ａが接続され、ネットワークＮ２には画像処理装置等の被発見側機器２Ｂが接続されているものとする。
【００３１】
発見側機器１Ａには、コンピュータプログラムにより実現される対象機器発見部１１と発見機器保持部１２と発見機器状況確認部１３と発見機器通知部１４とが設けられている。なお、発見側機器１ＡはＩＰおよびＳＮＭＰ（Simple Network Management Protocol）の基本的な機能を有しているものとする。
【００３２】
対象機器発見部１１は、ＳＮＭＰによりルータ３Ａから接続装置情報としてＡＲＰ（Address Resolution Protocol）テーブルもしくはＮＤ（Neighbor Discovery）キャッシュの内容を周期的に取得し、その接続装置情報に含まれるホストに対して通信を行うことで画像処理装置等の対象機器を発見する機能を有している。
【００３３】
発見機器保持部１２は、対象機器発見部１１により発見された対象機器を発見機器リストに登録して保持する機能を有している。
【００３４】
発見機器状況確認部１３は、対象機器発見部１１による対象機器の発見後に、周期的に、発見機器リストに登録されている対象機器に対して通信を行うことで、その機器が現在も存在するか、あるいは存在していても状況に変化がないか等を確認する機能を有している。
【００３５】
発見機器通知部１４は、発見側機器１Ａのユーザ、上位アプリケーションもしくは機器検索を要求してきた他の機器に発見した対象機器の情報を通知する機能を有している。
【００３６】
被発見側機器２Ｂには、コンピュータプログラムにより実現される小規模ＩＰ通信実行部２１と機器固有通信部２２とが設けられている。なお、被発見側機器２ＢはＩＰおよびＳＮＭＰの基本的な機能を有しているものとする。
【００３７】
小規模ＩＰ通信実行部２１は、ルータ３ＡのＡＲＰテーブルもしくはＮＤキャッシュに自己の存在を接続装置情報として残すために、ルータ３Ａに対して周期的にＰｉｎｇ等の小規模なＩＰ通信を行う機能を有している。小規模なＩＰ通信としているのは、ネットワークの負荷を増大させないためである。
【００３８】
機器固有通信部２２は、被発見側機器２Ｂに固有な通信を行なう機能を有している。例えば、被発見側機器２Ｂがプリンタ機能を有する画像処理装置である場合、機器固有通信部２２はプリンティングプロトコルによる通信を行う。
【００３９】
ルータ３Ａには、コンピュータプログラムにより実現されるＩＰルーティング部３１と接続装置情報通知部３２とが設けられている。なお、ルータ３ＡはＩＰおよびＳＮＭＰの基本的な機能を有しているものとする。
【００４０】
ＩＰルーティング部３１は、所定のルーティングプロトコルに従い、到来するＩＰパケットをルーティングする機能を有している。
【００４１】
接続装置情報通知部３２は、ＳＮＭＰにより接続装置情報を要求された場合に、ＡＲＰテーブルもしくはＮＤキャッシュの内容を要求元に通知する機能を有している。
【００４２】
図３は各機器の保持するデータ構造例を示す図である。
【００４３】
（ａ）および（ｂ）は発見側機器１Ａに保持される発見機器リストのデータ構造例を示しており、（ａ）は最小限の情報として「発見機器のＩＰアドレス」と「発見機器の機種情報」を保持する例を示し、（ｂ）はより豊富な情報として「発見機器のＩＰアドレス」と「ルータのＩＰアドレス」と「発見機器の機種情報」と「発見機器の健全性」と「情報取得の時刻」を保持する例を示している。
【００４４】
（ｃ）は発見側機器１Ａに保持される処理起動のための設定情報の例を示しており、「機器発見の周期データ」と「状態確認の周期データ」が含まれている。なお、状態確認の周期は機器発見の周期よりも短く設定される。
【００４５】
（ｄ）はルータ３Ａに保持されるＡＲＰテーブルもしくはＮＤキャッシュの例を示しており、「ＩＰアドレス」と「ＭＡＣ（Media Access Control）アドレス」と「エントリの種別」が含まれている。
【００４６】
（ｅ）は被発見側機器２Ｂに保持される処理起動のための設定情報の例を示しており、「小規模ＩＰ通信の周期データ」が含まれている。小規模ＩＰ通信の周期は（ｃ）の機器発見の周期よりも短く設定される。
【００４７】
図４は第１の実施形態における全体的な処理例を示すシーケンス図である。
【００４８】
図４において、被発見側機器２Ｂはルータ３Ａに対し、小規模ＩＰ通信の周期データ（図３（ｅ））の示す時間間隔で周期的にＰｉｎｇ等の小規模なＩＰ通信を行う（ステップＳ１、Ｓ２）。これにより、ルータ３Ａは被発見側機器２ＢのＩＰアドレス、ＭＡＣアドレス等を近隣ホストの情報としてＡＲＰテーブルもしくはＮＤキャッシュに記録する。図５（ａ）はこの際の機器間の通信状態を示す図であり、被発見側機器２Ｂからルータ３ＡにＰｉｎｇ等の小規模なＩＰ通信を行なうことで、ルータ３Ａに近隣ホストの情報である接続装置情報Ｈ１が記録される様子を示している。
【００４９】
一方、図４に戻り、発見側機器１Ａは機器発見の周期データ（図３（ｃ））の示す時間間隔で周期的にルータ３Ａに対して接続装置情報、すなわちＡＲＰテーブルもしくはＮＤキャッシュの要求を行ない（ステップＳ３）、ルータ３Ａは接続装置情報、すなわちＡＲＰテーブルもしくはＮＤキャッシュの内容を応答として発見側機器１Ａに返す（ステップＳ４）。図５（ｂ）はこの際の機器間の通信状態を示す図であり、発見側機器１Ａからルータ３Ａに接続装置情報の要求を行なうことで、ルータ３Ａから接続装置情報Ｈ１が発見側機器１Ａに応答として返される様子を示している。
【００５０】
次いで、図４に戻り、発見側機器１Ａは取得した接続装置情報に含まれるＩＰアドレスのホスト、ここでは被発見側機器２Ｂに対して目的としているホストかどうかの機器確認のための通信を行なう（ステップＳ５）。機器確認のための通信としては、ＳＮＭＰによる機器情報の質問による場合と、これに加えて機器固有の通信（対象機器が画像処理装置である場合にはプリンティングプロトコルによる通信等）を行なう場合とがある。
【００５１】
その結果、被発見側機器２Ｂから発見側機器１Ａに応答が返され（ステップＳ６）、発見側機器１Ａは応答内容に基づいて対象機器であるか否か判断し、対象機器である場合には発見機器リスト（図３（ａ）（ｂ））に情報を保持する（ステップＳ７）。図５（ｃ）はこの際の機器間の通信状態を示す図であり、発見側機器１Ａから被発見側機器２Ｂに機器確認のための通信を行なうことで、被発見側機器２Ｂから発見側機器１Ａに応答が返される様子を示している。ルータ３Ａから取得した接続装置情報に複数のＩＰアドレスが含まれる場合には、同様の処理を繰り返す。
【００５２】
その後、図４に戻り、発見側機器１Ａは状態確認の周期データ（図３（ｃ））の示す時間間隔で周期的に、機器発見リストに登録されたＩＰアドレスのホスト、ここでは被発見側機器２Ｂに対して状況確認のための通信を行ない（ステップＳ８）、応答を得る（ステップＳ９）。被発見側機器２Ｂが電源オフにされていたり、ネットワークから外されていたりした場合には応答は返されない。発見側機器１Ａは応答内容（応答がないことも含む）に基づいて、機器情報に変更がある場合には発見機器リスト（図３（ａ）（ｂ））の情報を更新（対象機器でなくなった場合は情報を削除）する（ステップＳ１０）。
【００５３】
図６はネットワークＮ２上に対象機器ではないパーソナルコンピュータ等の機器１Ｂが存在する場合の動作例を示している。
【００５４】
すなわち、（ａ）に示すように機器１Ｂからルータ３Ａに任意のＩＰ通信を行なうことで、ルータ３Ａに接続装置情報Ｈ２が記録され、（ｂ）に示すように発見側機器１Ａからルータ３Ａに接続装置情報の要求を行なうことで、ルータ３Ａから接続装置情報Ｈ１、Ｈ２が発見側機器１Ａに応答として返される。その後、（ｃ）に示すように発見側機器１Ａから被発見側機器２Ｂおよび機器１Ｂにそれぞれ機器確認のための通信を行なうことで、被発見側機器２Ｂおよび機器１Ｂからそれぞれ発見側機器１Ａに応答が返され、被発見側機器２Ｂについては上述したように機器発見リストに登録されるが、機器１Ｂは対象機器ではないため機器発見リストには登録されない。従って、対象機器以外のホストが対象機器であると誤解されることはなく、対象機器の捜索時にはそのホストは不要であると判断して捜索結果から排除される。
【００５５】
発見側機器１Ａは、ユーザもしくはアプリケーションから、あるいは、他の機器から機器発見の要求を受けた場合、その時点における機器発見リストの内容を提示する。これにより、自身の属するデータリンク以外のネットワーク上の機器を容易に発見することができる。この際、ブロードキャストパケットやマルチキャストパケットを使用するものではないため、従来のような問題は発生しない。
【００５６】
以下、上述した各処理につきより詳細に説明する。
【００５７】
図７は被発見側機器の処理例を示すフローチャートであり、（ａ）の処理もしくは（ｂ）の処理のいずれかを実行する。
【００５８】
図７（ａ）において、被発見側機器は小規模ＩＰ通信の周期データ（図３（ｅ））の示す時間間隔で周期的に処理を開始すると（ステップＳ２０１）、オールルータマルチキャストを使って近隣ルータを発見する（ステップＳ２０２）。
【００５９】
次いで、発見した近隣ルータのＩＰアドレスに対してｐｉｎｇ等の小規模なＩＰパケットを送信する（ステップＳ２０３）。
【００６０】
次いで、発見した全ての近隣ルータのＩＰアドレスについて処理が完了したかどうか判断し（ステップＳ２０４）、完了していない場合（ステップＳ２０４のＮｏ）はｐｉｎｇ等の小規模なＩＰパケットの送信（ステップＳ２０３）に戻り、完了した場合（ステップＳ２０４のＹｅｓ）は処理を終了する（ステップＳ２０５）。
【００６１】
図７（ｂ）において、被発見側機器は小規模ＩＰ通信の周期データ（図３（ｅ））の示す時間間隔で周期的に処理を開始すると（ステップＳ２１１）、オールルータマルチキャストアドレスに宛てて、ｐｉｎｇ等の小規模なＩＰパケットを送信し（ステップＳ２１２）、処理を終了する（ステップＳ２１３）。
【００６２】
図８は発見側機器の処理例を示すフローチャートであり、（ａ）は機器発見時の処理を、（ｂ）は状況確認時の処理を示している。
【００６３】
図８（ａ）において、発見側機器は機器発見の周期データ（図３（ｃ））の示す時間間隔で周期的に処理を開始すると（ステップＳ１０１）、近隣ルータに対してＳＮＭＰによりＡＲＰテーブルもしくはＮＤキャッシュを要求し、その結果を取得する（ステップＳ１０２）。
【００６４】
次いで、取得したＡＲＰテーブルエントリもしくはＮＤキャッシュエントリに記載されているホストが対象機器であるか否かの確認を行なう（ステップＳ１０３）。
【００６５】
次いで、対象機器である場合はその結果を発見機器リストに追加し（ステップＳ１０４）、処理を終了する（ステップＳ１０５）。
【００６６】
図８（ｂ）において、発見側機器は状態確認の周期データ（図３（ｃ））の示す時間間隔で周期的に処理を開始すると（ステップＳ１１１）、発見機器リストにある全てのＩＰアドレスに対して状況の確認を行なう（ステップＳ１１２）。
【００６７】
次いで、状況に変更がある場合は発見機器リストを更新し（ステップＳ１１３）、処理を終了する（ステップＳ１１４）。
【００６８】
図９は発見側機器の機器発見時の処理例を示すフローチャートであり、図８（ａ）をより詳しく示したものである。
【００６９】
図９において、発見側機器は機器発見の周期データ（図３（ｃ））の示す時間間隔で周期的に処理を開始すると（ステップＳ１２１）、ＳＮＭＰによるＡＲＰテーブルもしくはＮＤキャッシュの要求を行なう（ステップＳ１２２）。この処理は、次の２つの処理のいずれかにより行う。
【００７０】
第１は、オールルータマルチキャストを使って近隣ルータを発見し（ステップＳ１２３）、発見した近隣ルータのＩＰアドレスに対して、ＳＮＭＰでＡＲＰテーブルもしくはＮＤキャッシュを要求する（ステップＳ１２４）。そして、発見した全ての近隣ルータのＩＰアドレスについて処理が完了したかどうか判断し（ステップＳ１２５）、処理が完了していない場合（ステップＳ１２５のＮｏ）はＳＮＭＰによるＡＲＰテーブルもしくはＮＤキャッシュの要求（ステップＳ１２４）に戻り、処理が完了した場合（ステップＳ１２５のＹｅｓ）は次の処理に移行する。
【００７１】
第２は、オールルータマルチキャストアドレスに宛てて、ＳＮＭＰでＡＲＰテーブルもしくはＮＤキャッシュを要求し（ステップＳ１２６）、次の処理に移行する。
【００７２】
次いで、発見側機器は近隣ルータからＡＲＰテーブルもしくはＮＤキャッシュを取得し（ステップＳ１２７）、取得したＡＲＰテーブルもしくはＮＤキャッシュにある全てのＩＰアドレスに対して以下の処理をループする（ステップＳ１２８）。
【００７３】
すなわち、そのＩＰアドレスに対してＳＮＭＰにより機器情報を質問し（ステップＳ１２９）、対象機器であるか否か判断する（ステップＳ１３０）。対象機器でない場合（ステップＳ１３０のＮｏ）は次のＩＰアドレスについてのループ処理（ステップＳ１２８）に移行する。
【００７４】
対象機器である場合（ステップＳ１３０のＹｅｓ）は発見機器リストに情報を追加し（ステップＳ１３１）、全てのＩＰアドレスについて確認が完了したか否か判断する（ステップＳ１３２）。確認が完了していない場合（ステップＳ１３２のＮｏ）は次のＩＰアドレスについてのループ処理（ステップＳ１２８）に移行し、確認が完了した場合（ステップＳ１３２のＹｅｓ）は処理を終了する（ステップＳ１３３）。
【００７５】
図１０は発見側機器の機器発見時の他の処理例を示すフローチャートであり、対象機器を画像処理装置とした場合のより高度な処理を示したものである。
【００７６】
図１０において、発見側機器は機器発見の周期データ（図３（ｃ））の示す時間間隔で周期的に処理を開始すると（ステップＳ１４１）、ＳＮＭＰによるＡＲＰテーブルもしくはＮＤキャッシュの要求を行なう（ステップＳ１４２）。この処理は、次の２つの処理のいずれかにより行う。
【００７７】
第１は、オールルータマルチキャストを使って近隣ルータを発見し（ステップＳ１４３）、発見した近隣ルータのＩＰアドレスに対して、ＳＮＭＰでＡＲＰテーブルもしくはＮＤキャッシュを要求する（ステップＳ１４４）。そして、発見した全ての近隣ルータのＩＰアドレスについて処理が完了したかどうか判断し（ステップＳ１４５）、処理が完了していない場合（ステップＳ１４５のＮｏ）はＳＮＭＰによるＡＲＰテーブルもしくはＮＤキャッシュの要求（ステップＳ１４４）に戻り、処理が完了した場合（ステップＳ１４５のＹｅｓ）は次の処理に移行する。
【００７８】
第２は、オールルータマルチキャストアドレスに宛てて、ＳＮＭＰでＡＲＰテーブルもしくはＮＤキャッシュを要求し（ステップＳ１４６）、次の処理に移行する。
【００７９】
次いで、発見側機器は近隣ルータからＡＲＰテーブルもしくはＮＤキャッシュを取得し（ステップＳ１４７）、取得したＡＲＰテーブルもしくはＮＤキャッシュにある全てのＩＰアドレスに対して以下の処理をループする（ステップＳ１４８）。
【００８０】
すなわち、そのＩＰアドレスに対してプリンティングプロトコルのポート番号で接続し（ステップＳ１４９）、プリンティングプロトコルで印刷を伴わない通信を実行する（ステップＳ１５０）。そして、通信が成功したか否か判断し（ステップＳ１５１）、成功しなかった場合（ステップＳ１５１のＮｏ）は次のＩＰアドレスについてのループ処理（ステップＳ１４８）に移行する。
【００８１】
通信が成功した場合（ステップＳ１５１のＹｅｓ）は、そのＩＰアドレスに対してＳＮＭＰによりプリンタ機種名等の詳細情報を取得し（ステップＳ１５２）、発見機器リストに情報を追加し（ステップＳ１５３）、全てのＩＰアドレスについて確認が完了したか否か判断する（ステップＳ１５４）。確認が完了していない場合（ステップＳ１５４のＮｏ）は次のＩＰアドレスについてのループ処理（ステップＳ１４８）に移行し、確認が完了した場合（ステップＳ１５４のＹｅｓ）は処理を終了する（ステップＳ１５５）。
【００８２】
図１１は発見側機器の状態確認時の処理例を示すフローチャートであり、図８（ｂ）をより詳しく示したものである。
【００８３】
図１１において、発見側機器は状態確認の周期データ（図３（ｃ））の示す時間間隔で周期的に処理を開始すると（ステップＳ１６１）、発見機器リストにある全てのＩＰアドレスに対して以下の処理をループする（ステップＳ１６２）。
【００８４】
先ず、状態確認を行なうが（ステップＳ１６３）、この処理は次の３つの処理のいずれかにより行う。
【００８５】
第１は、そのＩＰアドレスに対してｐｉｎｇを送信し、応答があるか否かでホストの存在を確認し（ステップＳ１６４）、次の処理に移行する。
【００８６】
第２は、ＳＮＭＰにより発見機器の機種情報に変化がないか確認し（ステップＳ１６５）、次の処理に移行する。
【００８７】
第３は、対象機器を画像処理装置とした場合の例であり、プリンティングプロトコルにより印刷処理が可能か確認し（ステップＳ１６６）、次の処理に移行する。
【００８８】
次いで、状況に変更がある場合は発見機器リストを更新する（ステップＳ１６７）。
【００８９】
そして、発見機器リストの全てのＩＰアドレスについて確認が完了したか否か判断し（ステップＳ１６８）、確認が完了していない場合（ステップＳ１６８のＮｏ）は次のＩＰアドレスについてのループ処理（ステップＳ１６２）に移行し、確認が完了した場合（ステップＳ１６８のＹｅｓ）は処理を終了する（ステップＳ１６９）。
【００９０】
＜第２の実施形態＞
図１２は本発明の第２の実施形態にかかるシステムの構成例を示す図であり、発見側機器から見て、近隣のルータの先に、更にルータがある場合に適用した例である。
【００９１】
図１２において、ネットワークＮ１とネットワークＮ２とがルータ３Ａを介して接続されており、ネットワークＮ２とネットワークＮ３とがルータ３Ｂを介して接続されている。また、ネットワークＮ１にはパーソナルコンピュータ等の発見側機器１Ａが接続され、ネットワークＮ３には画像処理装置等の被発見側機器２Ｃが接続されているものとする。なお、発見側機器１Ａの構成は図２に示した発見側機器１Ａと同様であり、ルータ３Ａ、３Ｂの構成は図２に示したルータ３Ａと同様であり、被発見側機器２Ｃの構成は図２に示した被発見側機器２Ｂと同様である。
【００９２】
図１３は機器間の通信状態を示す図である。
【００９３】
図１３（ａ）において、被発見側機器２Ｃからルータ３ＢにＰｉｎｇ等の小規模なＩＰ通信を行なうことで、ルータ３Ｂは近隣ホストの情報である接続装置情報Ｈ３として被発見側機器２ＣのＩＰアドレス、ＭＡＣアドレス等をＡＲＰテーブルもしくはＮＤキャッシュに記録する。
【００９４】
一方、隣接するルータは相互にルーティング情報を交換するために互いに通信しており、（ｂ）に示すように、ルータ３Ａとルータ３Ｂとの間で通信が行なわれることで、ルータ３Ａは近隣ホストの情報である接続装置情報Ｈ４としてルータ３ＢのＩＰアドレス、ＭＡＣアドレス等をＡＲＰテーブルもしくはＮＤキャッシュに記録する。
【００９５】
その後、（ｃ）に示すように、発見側機器１Ａからルータ３Ａに接続装置情報の要求を行なうことで、ルータ３Ａから接続装置情報Ｈ４が発見側機器１Ａに応答として返される。
【００９６】
その後、発見側機器１Ａは得られた接続装置情報Ｈ４のエントリに記載されているホストがルータかどうかをチェックする。具体的には、ルータ特有のサービスが提供されているかどうかをネットワーク上からアクセスして調査する。
【００９７】
そして、そのホストがルータであると判明したら、そのルータに登録されているＡＲＰテーブルないしはＮＤキャッシュのエントリを取得し、その中に記載されているホストにネットワークを介してアクセスすることで、対象機器であるか否か確認する。
【００９８】
同様の処理を繰り返すことにより、更に遠隔のサブネットにあるホストを捜索することができる。
【００９９】
図１４は発見側機器の機器発見時の処理例を示すフローチャートである。
【０１００】
図１４において、発見側機器は機器発見の周期データ（図３（ｃ））の示す時間間隔で周期的に処理を開始すると（ステップＳ１７１）、ＳＮＭＰによるＡＲＰテーブルもしくはＮＤキャッシュの要求を行なう（ステップＳ１７２）。この処理は、次の２つの処理のいずれかにより行う。
【０１０１】
第１は、オールルータマルチキャストを使って近隣ルータを発見し（ステップＳ１７３）、発見した近隣ルータのＩＰアドレスに対して、ＳＮＭＰでＡＲＰテーブルもしくはＮＤキャッシュを要求する（ステップＳ１７４）。そして、発見した全ての近隣ルータのＩＰアドレスについて処理が完了したかどうか判断し（ステップＳ１７５）、処理が完了していない場合（ステップＳ１７５のＮｏ）はＳＮＭＰによるＡＲＰテーブルもしくはＮＤキャッシュの要求（ステップＳ１７４）に戻り、処理が完了した場合（ステップＳ１７５のＹｅｓ）は次の処理に移行する。
【０１０２】
第２は、オールルータマルチキャストアドレスに宛てて、ＳＮＭＰでＡＲＰテーブルもしくはＮＤキャッシュを要求し（ステップＳ１７６）、次の処理に移行する。
【０１０３】
次いで、発見側機器は近隣ルータからＡＲＰテーブルもしくはＮＤキャッシュを取得し（ステップＳ１７７）、取得したＡＲＰテーブルもしくはＮＤキャッシュにある全てのＩＰアドレスに対して以下の処理をループする（ステップＳ１７８）。
【０１０４】
すなわち、そのＩＰアドレスに対してＳＮＭＰにより機器情報を質問し（ステップＳ１７９）、対象機器であるか否か判断する（ステップＳ１８０）。
【０１０５】
対象機器である場合（ステップＳ１８０のＹｅｓ）は、発見機器リストに情報を追加する（ステップＳ１８１）。
【０１０６】
また、対象機器でない場合（ステップＳ１８０のＮｏ）、その機器はルータであるか否か判断し（ステップＳ１８２）、ルータでない場合（ステップＳ１８２のＮｏ）は次のＩＰアドレスについてのループ処理（ステップＳ１７８）に移行する。
【０１０７】
ルータである場合（ステップＳ１８２のＹｅｓ）は、そのルータに対しＡＲＰテーブルもしくはＮＤキャッシュを要求し（ステップＳ１８３）、ＡＲＰテーブルもしくはＮＤキャッシュの取得以降の処理（ステップＳ１７７〜Ｓ１８６）を再帰呼び出しする（ステップＳ１８４）。
【０１０８】
発見機器リストに情報を追加（ステップＳ１８１）した後、もしくは、再帰呼び出し（ステップＳ１８４）の後、全てのＩＰアドレスについて確認が完了したか否か判断する（ステップＳ１８５）。確認が完了していない場合（ステップＳ１８５のＮｏ）は次のＩＰアドレスについてのループ処理（ステップＳ１７８）に移行し、確認が完了した場合（ステップＳ１８５のＹｅｓ）は処理を終了する（ステップＳ１８６）。
【０１０９】
＜第３の実施形態＞
第３の実施形態は、発見する対象機器として、Ｐ２Ｐ（Peer to Peer）によるファイル交換（共有）機能を持った機器を対象としたものである。Ｐ２Ｐファイル共有システムにおいては、自機器で使用しているのと同じファイル共有システムが稼動している他の機器（ファイル共有相手）を発見しなければならず、従来はシードノードリストと呼ばれる、有名なノードのリストを直接入手して各ユーザに配布していた。しかし、この配布すべきシードノードリストは、管理者がネットワークの状況にあわせて随時更新しなければならず、煩雑であった。この実施形態では、そのような手作業による既知リストの設定をやめ、ネットワーク上から同一サービスを持っているホストを発見するという形式をとることで、作業負担を軽減することができる。
【０１１０】
図１５は本発明の第３の実施形態にかかる発見側機器および被発見側機器の構成例を示す図である。発見側機器１Ａと被発見側機器２Ａは対等な関係にあるため、基本的な機能は同じになっている。なお、ネットワーク構成は図２もしくは図１２に示したものと同様であり、発見側機器１Ａと被発見側機器２Ａはルータ３Ａ等を介して接続されている。
【０１１１】
図１５において、  発見側機器１Ａおよび被発見側機器２Ａには、コンピュータプログラムにより実現される対象機器発見部１１と発見機器保持部１２と発見機器状況確認部１３と発見機器通知部１４とファイル交換部１５と小規模ＩＰ通信実行部１６が設けられている。なお、発見側機器１Ａおよび被発見側機器２ＡはＩＰおよびＳＮＭＰの基本的な機能を有しているものとする。
【０１１２】
対象機器発見部１１、発見機器保持部１２、発見機器状況確認部１３および発見機器通知部１４は、図２において説明したのと同様の機能を有している。
【０１１３】
ファイル交換部１５は、発見された対象機器との間でファイル交換を行なう機能を有している。
【０１１４】
小規模ＩＰ通信実行部１６は、近隣のルータのＡＲＰテーブルもしくはＮＤキャッシュに自己の存在を接続装置情報として残すために、近隣のルータに対して周期的にＰｉｎｇ等の小規模なＩＰ通信を行う機能を有している。
【０１１５】
動作にあたり、全体的な処理例は図４に示したものと同様であり、対象機器確認のための通信（ステップＳ５）がファイル交換システムに特有のものとなる点が異なる。
【０１１６】
被発見側機器としての動作は、図７に示したものと同様である。
【０１１７】
発見側機器としての動作は、図８に示したものと同様である。
【０１１８】
図１６は発見側機器の機器発見時の処理例を示すフローチャートである。
【０１１９】
図１６において、発見側機器は機器発見の周期データ（図３（ｃ））の示す時間間隔で周期的に処理を開始すると（ステップＳ３０１）、ＳＮＭＰによるＡＲＰテーブルもしくはＮＤキャッシュの要求を行なう（ステップＳ３０２）。この処理は、次の２つの処理のいずれかにより行う。
【０１２０】
第１は、オールルータマルチキャストを使って近隣ルータを発見し（ステップＳ３０３）、発見した近隣ルータのＩＰアドレスに対して、ＳＮＭＰでＡＲＰテーブルもしくはＮＤキャッシュを要求する（ステップＳ３０４）。そして、発見した全ての近隣ルータのＩＰアドレスについて処理が完了したかどうか判断し（ステップＳ３０５）、処理が完了していない場合（ステップＳ３０５のＮｏ）はＳＮＭＰによるＡＲＰテーブルもしくはＮＤキャッシュの要求（ステップＳ３０４）に戻り、処理が完了した場合（ステップＳ３０５のＹｅｓ）は次の処理に移行する。
【０１２１】
第２は、オールルータマルチキャストアドレスに宛てて、ＳＮＭＰでＡＲＰテーブルもしくはＮＤキャッシュを要求し（ステップＳ３０６）、次の処理に移行する。
【０１２２】
次いで、発見側機器は近隣ルータからＡＲＰテーブルもしくはＮＤキャッシュを取得し（ステップＳ３０７）、取得したＡＲＰテーブルもしくはＮＤキャッシュにある全てのＩＰアドレスに対して以下の処理をループする（ステップＳ３０８）。
【０１２３】
すなわち、そのＩＰアドレスに対してファイル交換プロトコルで接続を行い（ステップＳ３０９）、接続が成功したか否か判断する（ステップＳ３１０）。接続が成功しなかった場合（ステップＳ３１０のＮｏ）は次のＩＰアドレスについてのループ処理（ステップＳ３０８）に移行する。
【０１２４】
接続が成功した場合（ステップＳ３１０のＹｅｓ）は発見機器リストに情報を追加し（ステップＳ３１１）、全てのＩＰアドレスについて確認が完了したか否か判断する（ステップＳ３１２）。確認が完了していない場合（ステップＳ３１２のＮｏ）は次のＩＰアドレスについてのループ処理（ステップＳ３０８）に移行し、確認が完了した場合（ステップＳ３１２のＹｅｓ）は処理を終了する（ステップＳ３１３）。
【０１２５】
＜総括＞
以上説明したように、本発明の実施形態によれば、次のような利点がある。
（１）自身を発見してほしい機器は一定時間おきにルータとの通信を行う機能を持つことで、その機器のＩＰアドレスとＭＡＣアドレスがルータのＡＲＰテーブルないしはＮＤキャッシュに常に記録され続ける。そして、そのような機能を持つ機器を発見したい機器は、ルータのＡＲＰエントリないしはＭＡＣアドレスを参照する機能を持つことで、そのサブネット内にある上記の機能を持ったホストが存在することを発見することができる。
（２）発見する側の機器は、得られたＡＲＰテーブルないしはＮＤキャッシュに書かれているホストに対して、どのような機器なのか問い合わせるパケットを送信し、相手の機器が適切な応答を返して目的の機器であると判断できた場合、その機器が発見対象であったと判断する。これによって、ＡＲＰテーブルやＮＤキャッシュに書かれたホストの中から、検索する目的の機器を正確に発見することができる。
（３）近隣ルータから得られるＡＲＰテーブルないしはＮＤキャッシュに記載されているホストからルータを発見する機能を持つことで、近隣ルータの先にいるルータを発見し、そのルータからＡＲＰテーブルないしはＮＤキャッシュを取得することでそのルータに接続された機器を発見することができる。そして、これらの処理を繰り返し適用することで、更に遠いネットワークにいる機器を捜索することができる。
【０１２６】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【０１２７】
【図１】従来のシステムにおける機器発見の動作を示す図である。
【図２】本発明の第１の実施形態にかかるシステムの構成例を示す図である。
【図３】各機器の保持するデータ構造例を示す図である。
【図４】全体的な処理例を示すシーケンス図である。
【図５】機器間の通信状態を示す図（その１）である。
【図６】機器間の通信状態を示す図（その２）である。
【図７】被発見側機器の処理例を示すフローチャートである。
【図８】発見側機器の処理例を示すフローチャートである。
【図９】発見側機器の機器発見時の処理例を示すフローチャート（その１）である。
【図１０】発見側機器の機器発見時の処理例を示すフローチャート（その２）である。
【図１１】発見側機器の状態確認時の処理例を示すフローチャートである。
【図１２】本発明の第２の実施形態にかかるシステムの構成例を示す図である。
【図１３】機器間の通信状態を示す図である。
【図１４】発見側機器の機器発見時の処理例を示すフローチャートである。
【図１５】本発明の第３の実施形態にかかる発見側機器および被発見側機器の構成例を示す図である。
【図１６】発見側機器の機器発見時の処理例を示すフローチャートである。
【符号の説明】
【０１２８】
１Ａ          発見側機器
１Ｂ          機器
１１          対象機器発見部
１２          発見機器保持部
１３          発見機器状況確認部
１４          発見機器通知部
１５          ファイル交換部
１６          小規模ＩＰ通信実行部
２Ａ〜２Ｃ    被発見側機器
２１          小規模ＩＰ通信実行部
２２          機器固有通信部
３Ａ、３Ｂ    ルータ
３１          ＩＰルーティング部
３２          接続装置情報通知部
Ｎ１〜Ｎ３    ネットワーク
【図１】
2009049894.tif 000003
【図２】
2009049894.tif 000004
【図３】
2009049894.tif 000005
【図４】
2009049894.tif 000006
【図５】
2009049894.tif 000007
【図６】
2009049894.tif 000008
【図７】
2009049894.tif 000009
【図８】
2009049894.tif 000010
【図９】
2009049894.tif 000011
【図１０】
2009049894.tif 000012
【図１１】
2009049894.tif 000013
【図１２】
2009049894.tif 000014
【図１３】
2009049894.tif 000015
【図１４】
2009049894.tif 000016
【図１５】
2009049894.tif 000017
【図１６】
2009049894.tif 000018