(57)【特許請求の範囲】
【請求項１】
親機器と前記親機器に接続される子機器とを含み、前記親機器を頂点とする階層構造のサーバを有しないネットワークシステムを構成するネットワーク機器であって、
処理部と、
記憶部と、
通信インタフェースと、
を備え、
前記処理部は、
自機器が前記子機器である場合に、前記記憶部に記憶されている第１の共有情報を、前記親機器を頂点とする階層構造のネットワーク設計図データにおける１つ上の階層の機器に送信する際に、前記ネットワーク設計図データにおける１つ下の階層の機器から第２の共有情報を前記通信インタフェースを介して受信した場合に、受信した前記第２の共有情報を前記第１の共有情報とマージしてマージ共有情報を作成し、作成した前記マージ共有情報を前記ネットワーク設計図データにおける１つ上の階層の機器に前記通信インタフェースを介して送信し、
自機器が前記親機器である場合に、他の機器から送信された全ての共有情報を前記記憶部に記憶されている第３の共有情報とマージしてネットワーク共有情報を作成し、作成した前記ネットワーク共有情報を他の機器に前記通信インタフェースを介して送信する
ことを特徴とするネットワーク機器。
【請求項２】
請求項１記載のネットワーク機器において、
前記処理部は、
自機器が前記子機器である場合に、前記記憶部に記憶されているスキーム情報に基づいて、前記マージ共有情報が正しいか否かを判断し、前記マージ共有情報が正しいと判断した場合に、前記マージ共有情報を前記ネットワーク設計図データにおける１つ上の階層の機器に前記通信インタフェースを介して送信し、
自機器が前記親機器である場合に、前記記憶部に記憶されている前記スキーム情報に基づいて、前記ネットワーク共有情報が正しいか否かを判断し、前記ネットワーク共有情報が正しいと判断した場合に、前記ネットワーク共有情報を他の機器に前記通信インタフェースを介して送信する
ことを特徴とするネットワーク機器。
【請求項３】
請求項２に記載のネットワーク機器において、
前記処理部は、
自機器が前記子機器である場合に、前記記憶部に記憶されている前記第１の共有情報及び前記スキーム情報を、前記ネットワーク設計図データにおける１つ上の階層の機器に送信する際に、前記ネットワーク設計図データにおける１つ下の階層の機器から前記第２の共有情報及び前記スキーム情報を前記通信インタフェースを介して受信した場合に、受信した前記スキーム情報と前記記憶部に記憶されている前記スキーム情報とのうち、新しいバージョンの前記スキーム情報と、前記マージ共有情報と、を前記ネットワーク設計図データにおける１つ上の階層の機器に前記通信インタフェースを介して送信し、
自機器が前記親機器である場合に、受信した前記スキーム情報と前記記憶部に記憶されている前記スキーム情報とのうち、新しいバージョンの前記スキーム情報と前記ネットワーク共有情報を他の機器に前記通信インタフェースを介して送信する
ことを特徴とするネットワーク機器。
【請求項４】
請求項１〜３のいずれかに記載のネットワーク機器において、
前記処理部は、
前記記憶部に記憶された、ネットワークに接続された機器の機器リストに基づき自機器が前記親機器として適当であるか否かを判断し、自機器が前記親機器として適当であると判断した場合は、自機器が前記親機器であると判断して、その旨のメッセージを、前記ネットワークに接続された他の機器に前記通信インタフェースを介して送信し、
自機器が前記親機器として適当でないと判断した場合であって、前記メッセージを前記通信インタフェースを介して受信した場合に、自機器が前記子機器であると判断する
ことを特徴とするネットワーク機器。
【請求項５】
請求項４に記載のネットワーク機器において、
前記処理部は、
自機器が前記親機器であると判断した場合に、前記ネットワーク設計図データを作成し、作成した前記ネットワーク設計図データを、前記ネットワーク設計図データにおける１つ下の階層の機器に前記通信インタフェースを介して送信し、作成した前記ネットワーク設計図データにおける１つ下の階層の機器と自機器を接続し、
自機器が前記子機器であると判断した場合に、前記ネットワーク設計図データを前記通信インタフェースを介して受信し、受信した前記ネットワーク設計図データを、前記ネットワーク設計図データにおける１つ下の階層の機器に前記通信インタフェースを介して送信し、受信した前記ネットワーク設計図データにおける１つ下の階層の機器と自機器を接続する
ことを特徴とするネットワーク機器。
【請求項６】
請求項４又は５に記載のネットワーク機器において、
前記機器リストは、ネットワークに接続された機器の機器番号及びネットワークシステムにおける強度値を含み、
前記処理部は、前記機器リストにおける前記強度値が最も大きい機器を前記親機器として適当であると判断し、前記強度値が互いに等しい場合には前記機器番号が最も大きい若しくは最も小さい機器を前記親機器として適当であると判断する
ことを特徴とするネットワーク機器。
【請求項７】
請求項４〜６のいずれかに記載のネットワーク機器において、
前記処理部は、初期状態において前記親機器でも前記子機器でもないことを示す第１状態に自機器を移行させ、自機器が前記親機器であると判断した場合に前記第１状態から前記親機器であることを示す第２状態に自機器を移行させて前記メッセージを送信するとともに、一定時間毎にエコー要求メッセージを他の機器に送信し、自機器が前記子機器であると判断した場合に前記第１状態から前記子機器であることを示す第３状態に自機器を移行させるとともに、一定時間毎に前記エコー要求メッセージを受信しない場合に前記第３状態から再び前記第１状態に自機器を移行させる
ことを特徴とするネットワーク機器。
【請求項８】
請求項１記載のネットワーク機器において、
前記処理部は、自機器が前記親機器である場合であって前記ネットワーク共有情報に変更が生じた場合に、変更前の前記ネットワーク共有情報と変更後の前記ネットワーク共有情報との差分情報を作成し、作成した前記差分情報を他の機器に前記通信インタフェースを介して送信し、自機器が前記子機器である場合であって前記ネットワーク共有情報に変更が生じた場合に、前記差分情報を作成し、作成した前記差分情報を前記ネットワーク設計図データにおける１つ上の階層の機器に前記通信インタフェースを介して送信し、自機器が前記子機器である場合であって前記ネットワーク設計図データにおける１つ上の階層の機器から前記差分情報を前記通信インタフェースを介して受信したときには、前記差分情報を用いて前記記憶部に記憶されている前記ネットワーク共有情報を更新するとともに、前記差分情報を前記ネットワーク設計図データにおける１つ下の階層の機器に前記通信インタフェースを介して送信する
ことを特徴とするネットワーク機器。
【請求項９】
請求項８記載のネットワーク機器において、
前記ネットワーク共有情報は、ネットワークに接続された機器全てに共通する共通情報と、前記ネットワークに接続された機器固有の固有情報から構成され、
前記処理部は、前記ネットワークに接続された機器のうち任意の機器が前記ネットワークから遮断された後に前記固有情報に変更が生じた場合に、前記ネットワークに接続された機器の固有情報を前記差分情報を用いて更新するとともに、固有情報の更新と整合させるべく前記共通情報を更新し、かつ、前記任意の機器が前記ネットワークに再び接続された場合に前記任意の機器の共通情報及び固有情報を前記更新された共通情報と整合させるべく更新する
ことを特徴とするネットワーク機器。
【請求項１０】
請求項８記載のネットワーク機器において、
前記処理部は、自機器が前記親機器である場合であって前記差分情報を作成して他の機器に送信する際に、他の機器が以前の差分情報を用いて更新中である場合には更新が完了するまで送信を待機し、かつ、待機中に新たな差分情報を作成した場合に待機中の差分情報と新たな差分情報とをマージして、他の機器の更新完了後にマージした差分情報を送信する
ことを特徴とするネットワーク機器。
【請求項１１】
請求項４、６、９のいずれかに記載のネットワーク機器において、
前記処理部は、前記ネットワークに接続された機器のいずれかの機器との接続が遮断された場合に、前記ネットワーク設計図データにおける１つ上の階層における他の機器との接続及び１つ下の階層における他の機器との接続を全て遮断する
ことを特徴とするネットワーク機器。
【請求項１２】
請求項６に記載のネットワーク機器において、
前記ネットワーク設計図データは、Ｎ分木構造（Ｎは２以上の自然数）の設計図データであり、前記強度値の大きい順序で機器を並べたリストデータである
ことを特徴とするネットワーク機器。
【請求項１３】
請求項１〜１２のいずれかに記載のネットワーク機器において、さらに、
音声信号を処理する音声信号処理部
を備えることを特徴とするネットワーク機器。
【請求項１４】
親機器と前記親機器に接続される子機器とを含み、前記親機器を頂点とする階層構造のサーバを有しない情報共有システムであって、
複数のネットワーク機器を備え、
前記複数のネットワーク機器の各々は、
処理部と、
記憶部と、
通信インタフェースと、
を備え、
前記処理部は、
自機器が前記子機器である場合に、前記記憶部に記憶されている第１の共有情報を、前記親機器を頂点とする階層構造のネットワーク設計図データにおける１つ上の階層のネットワーク機器に送信する際に、前記ネットワーク設計図データにおける１つ下の階層の機器から第２の共有情報を前記通信インタフェースを介して受信した場合に、受信した前記第２の共有情報を前記第１の共有情報とマージして前記ネットワーク設計図データにおける１つ上の階層のネットワーク機器に前記通信インタフェースを介して送信し、
自機器が前記親機器である場合に、他のネットワーク機器から送信された全ての共有情報を前記記憶部に記憶されている第３の共有情報とマージしてネットワーク共有情報を作成し、作成したネットワーク共有情報を他のネットワーク機器に前記通信インタフェースを介して送信し、
前記処理部は、前記子機器である場合に、送信された前記ネットワーク共有情報を受信して前記記憶部に記憶することで同一の共有情報を前記複数のネットワーク機器間で共有する
ことを特徴とする情報共有システム。
【請求項１５】
請求項１４に記載の情報共有システムにおいて、
前記子機器である第１のネットワーク機器において前記ネットワーク共有情報の変更が生じた場合に、前記第１のネットワーク機器の前記処理部は、変更前の前記ネットワーク共有情報と変更後の前記ネットワーク共有情報との差分情報を作成し、作成した前記差分情報を前記親機器であるネットワーク機器に送信し、前記親機器であるネットワーク機器の前記処理部は、前記差分情報を前記第１のネットワーク機器を含む、前記子機器である全てのネットワーク機器に送信し、前記第１のネットワーク機器を含む、前記子機器である全てのネットワーク機器の前記処理部は、前記差分情報を用いて前記記憶部に記憶された前記ネットワーク共有情報を更新する
ことを特徴とする情報共有システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク機器及び情報共有システムに関し、特に、サーバを必要としない情報共有システムに関する。
【背景技術】
【０００２】
複数の機器間で同一の情報を共有するシステムとして、サーバシステムに代表されるホスト・クライアントシステムが一般的である。このシステムは、複数の機器の中に親（ホスト）となる機器を用意し、この機器が全て、若しくは一部データの保持・管理を行い、その他の子（クライアント）機器からコマンド操作を行うことで統一したネットワーク保守を行うシステムである。
【０００３】
ホスト・クライアントシステムを実現するためには、ホストとなる機器が必ず１台以上必要となり、当該機器に全ての負荷が集中することになる。また、何らかの理由によりホストがダウン、若しくはホストとの間の通信に障害が生じると、その障害が取り除かれるまでシステムが使用不可となる問題がある。
【０００４】
下記の特許文献１には、サーバを必要とせずに情報の検索を速く、効率的に行って情報を取得することを目的として、Ｐ２Ｐネットワークにおいて、Ｐ２Ｐネットワークを構成するＰＣが、自己の情報テーブルの内容を他のＰＣに配信する配信手段と、他のＰＣの持つ情報テーブルの内容を収集する収集手段と、全てのＰＣの情報テーブルが同一の内容になるように情報を更新する更新手段と、その情報テーブルにおいて選択した情報・データを他のＰＣから取得する取得手段と、を有することが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１９２１０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来技術では、他のＰＣの持つ情報テーブルの内容を収集して全てのＰＣの情報テーブルが同一の内容になるように情報を更新しているが、他のＰＣの持つ情報テーブルの内容を同時に収集する際には通信トラフィックが増大するとともに収集した情報テーブルを処理する負荷が増大してしまう。従って、ＰＣのＣＰＵ性能が低い場合には処理に時間を要する、あるいは収集自体が不能になるおそれもある。また、情報テーブルを全てのＰＣにおいて共有したとしても、その後に当該情報テーブルの内容に変更が生じた場合、効率的にその変更内容を全ての情報テーブルに反映させることが必要である。
【０００７】
本発明の目的は、サーバを有しないネットワークにおいて、効率的かつ確実に全ての機器において情報を共有することにある。また、本発明の目的は、共有している情報に変更が生じた場合でも、この変更を効率的かつ確実に全ての機器に反映させることにある。
【課題を解決するための手段】
【０００８】
本発明は、親機器と前記親機器に接続される子機器とを含み、前記親機器を頂点とする階層構造のサーバを有しないネットワークシステムを構成するネットワーク機器であって、処理部と、記憶部と、通信インタフェースと、を備え、前記処理部は、自機器が前記子機器である場合に、前記記憶部に記憶されている第１の共有情報を、前記親機器を頂点とする階層構造のネットワーク設計図データにおける１つ上の階層の機器に送信する際に、前記ネットワーク設計図データにおける１つ下の階層の機器から第２の共有情報を前記通信インタフェースを介して受信した場合に、受信した前記第２の共有情報を前記第１の共有情報とマージしてマージ共有情報を作成し、作成した前記マージ共有情報を前記ネットワーク設計図データにおける１つ上の階層の機器に前記通信インタフェースを介して送信し、自機器が前記親機器である場合に、他の機器から送信された全ての共有情報を前記記憶部に記憶されている第３の共有情報とマージしてネットワーク共有情報を作成し、作成した前記ネットワーク共有情報を他の機器に前記通信インタフェースを介して送信することを特徴とする。
【０００９】
本発明では、下の階層の機器から上の階層の機器に送信された共有情報（第２の共有情報）が、上の階層の機器が記憶部に記憶している共有情報（第１の共有情報）とマージされ、さらに上の階層の機器に送信される。最終的には、全ての機器の記憶部に記憶されている共有情報がマージされ、親機器に送信される。そして、親機器の処理部により、全ての機器の記憶部に記憶されている共有情報がマージされた共有情報（ネットワーク共有情報）が子機器に送信される。従って、親機器が、他の全ての機器の記憶部に記憶されている共有情報を収集しないため、通信トラフィックが増大することがない。また、親機器の処理部の負荷が増大することがない。このため、機器の処理部の性能が低い場合であっても、共有情報の収集処理に時間を要せず、また、共有情報の収集自体が不能になるおそれもない。すなわち、本発明によれば、効率的かつ確実に全ての機器において情報を共有することができる。
【００１０】
本発明の１つの実施形態では、前記処理部は、自機器が前記子機器である場合に、前記記憶部に記憶されているスキーム情報に基づいて、前記マージ共有情報が正しいか否かを判断し、前記マージ共有情報が正しいと判断した場合に、前記マージ共有情報を前記ネットワーク設計図データにおける１つ上の階層の機器に前記通信インタフェースを介して送信し、自機器が前記親機器である場合に、前記記憶部に記憶されている前記スキーム情報に基づいて、前記ネットワーク共有情報が正しいか否かを判断し、前記ネットワーク共有情報が正しいと判断した場合に、前記ネットワーク共有情報を他の機器に前記通信インタフェースを介して送信することを特徴とする。
【００１１】
本実施形態では、処理部により、マージ共有情報、ネットワーク共有情報が正しいか否か判断される。そして、処理部により、正しいマージ共有情報、ネットワーク共有情報が機器に送信される。従って、正しい共有情報が機器により保持される。
【００１２】
本発明の他の実施形態では、前記処理部は、自機器が前記子機器である場合に、前記記憶部に記憶されている前記第１の共有情報及び前記スキーム情報を、前記ネットワーク設計図データにおける１つ上の階層の機器に送信する際に、前記ネットワーク設計図データにおける１つ下の階層の機器から前記第２の共有情報及び前記スキーム情報を前記通信インタフェースを介して受信した場合に、受信した前記スキーム情報と前記記憶部に記憶されている前記スキーム情報とのうち、新しいバージョンの前記スキーム情報と、前記マージ共有情報と、を前記ネットワーク設計図データにおける１つ上の階層の機器に前記通信インタフェースを介して送信し、自機器が前記親機器である場合に、受信した前記スキーム情報と前記記憶部に記憶されている前記スキーム情報とのうち、新しいバージョンの前記スキーム情報と前記ネットワーク共有情報を他の機器に前記通信インタフェースを介して送信することを特徴とする。
【００１３】
本実施形態では、処理部により、より新しいバージョンのスキーム情報に基づいて、マージ共有情報、ネットワーク共有情報が正しいか否か判断される。そして、処理部により、正しいマージ共有情報、ネットワーク共有情報が機器に送信される。従って、新しいスキーム情報に従って判断された、正しい共有情報が機器により保持される。
【００１４】
本発明のさらに他の実施形態では、前記処理部は、前記記憶部に記憶された、ネットワークに接続された機器の機器リストに基づき自機器が前記親機器として適当であるか否かを判断し、自機器が前記親機器として適当であると判断した場合は、自機器が前記親機器であると判断して、その旨のメッセージを、前記ネットワークに接続された他の機器に前記通信インタフェースを介して送信し、自機器が前記親機器として適当でないと判断した場合であって、前記メッセージを前記通信インタフェースを介して受信した場合に、自機器が前記子機器であると判断することを特徴とする。
【００１５】
本実施形態では、処理部により、自機器が親機器であるか、子機器であるかが判断される。このため、親機器と子機器とを含むネットワークシステムを構成することができる。
【００１６】
本発明のさらに他の実施形態では、前記処理部は、自機器が前記親機器であると判断した場合に、前記ネットワーク設計図データを作成し、作成した前記ネットワーク設計図データを、前記ネットワーク設計図データにおける１つ下の階層の機器に前記通信インタフェースを介して送信し、作成した前記ネットワーク設計図における１つ下の階層の機器と自機器を接続し、自機器が前記子機器であると判断した場合に、前記ネットワーク設計図データを前記通信インタフェースを介して受信し、受信した前記ネットワーク設計図データを、前記ネットワーク設計図データにおける１つ下の階層の機器に前記通信インタフェースを介して送信し、受信した前記ネットワーク設計図データにおける１つ下の階層の機器と自機器を接続することを特徴とする。
【００１７】
本実施形態では、親機器の処理部により作成されたネットワーク設計図データに従って、ネットワーク設計図データが親機器から子機器、子機器から１つ下の階層の子機器に順次送信される。そして、ネットワーク設計図データに従って、親機器から子機器、子機器から１つ下の階層の子機器に順次接続が行われる。このため、親機器と子機器とを含む、親機器を頂点とする階層構造のネットワークシステムを構成することができる。
【００１８】
本発明のさらに他の実施形態では、前記機器リストは、ネットワークに接続された機器の機器番号及びネットワークシステムにおける強度値を含み、前記処理部は、前記機器リストにおける前記強度値が最も大きい機器を前記親機器として適当であると判断し、前記強度値が互いに等しい場合には前記機器番号が最も大きい若しくは最も小さい機器を前記親機器として適当であると判断する。ここで、ネットワークの強度値は、当該機器の処理部（ＣＰＵ）の性能や接続の確実性、データ速度等、機器の性能と接続関係を総合的に定量評価したパラメータである。
【００１９】
本実施形態では、処理部により、ネットワーク上の強度値が最も大きい機器が親機器と判断される。そして、ネットワーク上の強度値が最も大きい、例えば、高性能の親機器の処理部により、共有情報の収集処理、他の機器への送信が行われる。従って、共有情報の収集処理に時間を要せず、また、共有情報の収集自体が不能になるおそれもない。このため、より効率的かつ確実に全ての機器において情報を共有することができる。
【００２０】
本発明のさらに他の実施形態では、前記処理部は、初期状態において前記親機器でも前記子機器でもないことを示す第１状態に自機器を移行させ、自機器が前記親機器であると判断した場合に前記第１状態から前記親機器であることを示す第２状態に自機器を移行させて前記メッセージを送信するとともに、一定時間毎にエコー要求メッセージを他の機器に送信し、自機器が前記子機器であると判断した場合に前記第１状態から前記子機器であることを示す第３状態に自機器を移行させるとともに、一定時間毎に前記エコー要求メッセージを受信しない場合に前記第３状態から再び前記第１状態に自機器を移行させることを特徴とする。
【００２１】
本実施形態では、子機器において一定時間毎にエコー要求メッセージを受信しない、すなわち、親機器がいなくなった場合に、処理部により、第３状態（子機器）から第１状態（親機器でも子機器でもない）に自機器が移行される。このため、親機器がいなくなった場合に、子機器は、親機器、又は、子機器となることができる。
【００２２】
本発明のさらに他の実施形態では、前記処理部は、自機器が前記親機器である場合であって前記ネットワーク共有情報に変更が生じた場合に、変更前の前記ネットワーク共有情報と変更後の前記ネットワーク共有情報との差分情報を作成し、作成した前記差分情報を他の機器に前記通信インタフェースを介して送信し、自機器が前記子機器である場合であって前記ネットワーク共有情報に変更が生じた場合に、前記差分情報を作成し、作成した前記差分情報を前記ネットワーク設計図データにおける１つ上の階層の機器に前記通信インタフェースを介して送信し、自機器が前記子機器である場合であって前記ネットワーク設計図データにおける１つ上の階層の機器から前記差分情報を前記通信インタフェースを介して受信したときには、前記差分情報を用いて前記記憶部に記憶されている前記ネットワーク共有情報を更新するとともに、前記差分情報を前記ネットワーク設計図データにおける１つ下の階層の機器に前記通信インタフェースを介して送信することを特徴とする。
【００２３】
本実施形態では、共有情報（ネットワーク共有情報）に変更が生じた場合に、親機器の処理部により、変更後の共有情報と変更前の共有情報との差分が作成され、作成された差分情報が子機器に送信される。そして、子機器の処理部により、順次１つ下の階層の子機器に差分情報が送信される。従って、親機器が、他の全ての機器に共有情報（あるいは差分情報）を送信しないため、通信トラフィックが増大することがない。また、親機器の処理部の負荷が増大することがない。このため、機器の処理部の性能が低い場合であっても、差分情報の送信処理に時間を要せず、また、差分情報の送信自体が不能になるおそれもない。すなわち、共有している共有情報に変更が生じた場合でも、差分情報の親機器から子機器、子機器から１つの下の階層の子機器への送信により、前記変更を効率的かつ確実に全ての機器に反映させることができる。
【００２４】
本発明のさらに他の実施形態では、前記ネットワーク共有情報は、ネットワークに接続された機器全てに共通する共通情報と、前記ネットワークに接続された機器固有の固有情報から構成され、前記処理部は、前記ネットワークに接続された機器のうち任意の機器が前記ネットワークから遮断された後に前記固有情報に変更が生じた場合に、前記ネットワークに接続された機器の固有情報を前記差分情報を用いて更新するとともに、固有情報の更新と整合させるべく前記共通情報を更新し、かつ、前記任意の機器が前記ネットワークに再び接続された場合に前記任意の機器の共通情報及び固有情報を前記更新された共通情報と整合させるべく更新することを特徴とする。
【００２５】
本実施形態では、処理部により、固有情報の更新と整合させるべく共通情報が更新される。また、処理部により、任意の機器がネットワークに再び接続された場合に任意の機器の共通情報及び固有情報を更新された共通情報と整合させるべく更新される。従って、ネットワークから遮断された機器が再度ネットワークに接続されても、その機器の記憶部に記憶されている固有情報に、他の機器の記憶部に記憶されている固有情報が書き換えられることがない。
【００２６】
本発明のさらに他の実施形態では、前記処理部は、自機器が前記親機器である場合であって前記差分情報を作成して他の機器に送信する際に、他の機器が以前の差分情報を用いて更新中である場合には更新が完了するまで送信を待機し、かつ、待機中に新たな差分情報を作成した場合に待機中の差分情報と新たな差分情報とをマージして、他の機器の更新完了後にマージした差分情報を送信することを特徴とする。
【００２７】
本実施形態では、親機器の処理部により、他の機器が以前の差分情報を用いて更新中である場合には更新が完了するまで送信が待機される。そして、親機器の処理部により、待機中に新たな差分情報が作成された場合に、待機中の差分情報と新たな差分情報とがマージされ、他の機器の更新完了後に、マージされた差分情報が送信される。従って、親機器の処理部は、新たな差分情報を作成する毎に差分情報を子機器に送信しないため、通信トラフィックが増大することがない。また、親機器の処理部の負荷が増大することがない。
【００２８】
本発明のさらに他の実施形態では、前記処理部は、前記ネットワークに接続された機器のいずれかの機器との接続が遮断された場合に、前記ネットワーク設計図データにおける１つ上の階層における他の機器との接続及び１つ下の階層における他の機器との接続を全て遮断することを特徴とする。
【００２９】
本実施形態では、ネットワークに接続された機器のいずれかの機器との接続が遮断された場合に、処理部により、ネットワーク設計図データにおける１つ上の階層における他の機器との接続及び１つ下の階層における他の機器との接続が全て遮断される。従って、ネットワークシステムを構成していた全ての機器の接続が遮断され、新たなネットワークシステムが構成される。このため、遮断された機器に接続されていた機器をどの機器に再度接続するかを決定する必要がないため、ネットワークシステムの再構成の処理が複雑とならない。
【００３０】
本発明のさらに他の実施形態では、前記ネットワーク設計図データは、Ｎ分木構造（Ｎは２以上の自然数）の設計図データであり、前記強度値の大きい順序で機器を並べたリストデータであることを特徴とする。
【００３１】
本発明では、処理部により、ネットワークシステムにおける強度値が最も大きい順にネットワークシステムが構成される。従って、処理部の負荷が大きい上の階層の機器が、強度値が大きい、例えば、処理部が高性能である機器となるため、共有情報（差分情報）の収集、送信がより効率的、かつ、確実となる。
【００３２】
本発明のさらに他の実施形態では、さらに、音声信号を処理する音声信号処理部を備えることを特徴とする。
【００３３】
本実施形態では、共有情報により、例えば、各機器のボリューム値を共有することで、ある機器に接続された外部のコントローラからの指示により、ある機器が共有情報の他の機器のボリューム値を書き換えることにより、他の機器から再生される音声のボリュームを変更すること等が可能となる。
【００３４】
また、本発明は、親機器と前記親機器に接続される子機器とを含み、前記親機器を頂点とする階層構造のサーバを有しない情報共有システムであって、複数のネットワーク機器を備え、前記複数のネットワーク機器の各々は、処理部と、記憶部と、通信インタフェースと、を備え、前記処理部は、自機器が前記子機器である場合に、前記記憶部に記憶されている第１の共有情報を、前記親機器を頂点とする階層構造のネットワーク設計図データにおける１つ上の階層のネットワーク機器に送信する際に、前記ネットワーク設計図データにおける１つ下の階層の機器から第２の共有情報を前記通信インタフェースを介して受信した場合に、受信した前記第２の共有情報を前記第１の共有情報とマージして前記ネットワーク設計図データにおける１つ上の階層のネットワーク機器に前記通信インタフェースを介して送信し、自機器が前記親機器である場合に、他のネットワーク機器から送信された全ての共有情報を前記記憶部に記憶されている第３の共有情報とマージしてネットワーク共有情報を作成し、作成したネットワーク共有情報を他のネットワーク機器に前記通信インタフェースを介して送信し、前記処理部は、前記子機器である場合に、送信された前記ネットワーク共有情報を受信して前記記憶部に記憶することで同一の共有情報を前記複数のネットワーク機器間で共有することを特徴とする。
【００３５】
本発明の１つの実施形態では、前記子機器である第１のネットワーク機器において前記ネットワーク共有情報の変更が生じた場合に、前記第１のネットワーク機器の前記処理部は、変更前の前記ネットワーク共有情報と変更後の前記ネットワーク共有情報との差分情報を作成し、作成した前記差分情報を前記親機器であるネットワーク機器に送信し、前記親機器であるネットワーク機器の前記処理部は、前記差分情報を前記第１のネットワーク機器を含む、前記子機器である全てのネットワーク機器に送信し、前記第１のネットワーク機器を含む、前記子機器である全てのネットワーク機器の前記処理部は、前記差分情報を用いて前記記憶部に記憶された前記ネットワーク共有情報を更新することを特徴とする。
【発明の効果】
【００３６】
本発明によれば、サーバを用いることなく効率的かつ確実に機器間で情報を共有することができる。また、共有した情報に変更が生じても、この変更を効率的に他の機器の共有情報に反映させて更新することができる。
【図面の簡単な説明】
【００３７】
【図１】実施形態のシステム構成図である。
【図２】ＵＤＰブロードキャスト機能を用いた機器リスト作成説明図である。
【図３】親機器設定後の説明図である。
【図４】設計図データの配信説明図である。
【図５】共有情報（仮共有情報）の収集説明図である。
【図６】共有情報（仮共有情報）の収集説明図である。
【図７】親以外の機器におけるマージ後の共有情報が正しいか否かを判断する処理動作を示すフローチャートである。
【図８】親機器による共有情報の収集処理を示すフローチャートである。
【図９】共有情報の配信説明図である。
【図１０】共有情報の変更説明図である。
【図１１】差分情報の配信説明図である。
【図１２】通信障害説明図である。
【図１３】ネットワークからの遮断説明図（その１）である。
【図１４】ネットワークからの遮断説明図（その２）である。
【図１５】ネットワークからの遮断説明図（その３）である。
【図１６】機器の状態移行図である。
【図１７】リージョン説明図である。
【図１８】親機器設定処理説明図（その１）である。
【図１９】親機器設定処理説明図（その２）である。
【図２０】親機器設定処理説明図（その３）である。
【図２１】親機器設定処理説明図（その４）である。
【図２２】親機器設定処理説明図（その５）である。
【図２３】機器の状態移行図である。
【図２４】２分木構造の説明図（その１）である。
【図２５】２分木構造の説明図（その２）である。
【図２６】２分木構造の接続関係説明図である。
【図２７】２分木構造の遮断説明図である。
【図２８】設計図データ説明図である。
【図２９】２分木構造のデータ送信説明図である。
【図３０】２分木構造の深度説明図である。
【図３１】２分木構造のブロードキャスト説明図である。
【図３２】共有情報の変更説明図（その１）である。
【図３３】共有情報の変更説明図（その２）である。
【図３４】共有情報の変更説明図（その３）である。
【図３５】共有情報の変更説明図（その４）である。
【図３６】共有情報の変更説明図（その５）である。
【図３７】共有情報の変更説明図（その６）である。
【図３８】共有情報の変更説明図（その７）である。
【図３９】差分情報のマージ説明図（その１）である。
【図４０】差分情報のマージ説明図（その２）である。
【図４１】差分情報のマージ説明図（その３）である。
【図４２】差分情報のマージ説明図（その４）である。
【図４３】差分情報のマージ説明図（その５）である。
【図４４】差分情報のマージ説明図（その６）である。
【図４５】差分情報のマージ説明図（その７）である。
【発明を実施するための形態】
【００３８】
以下、図面に基づき本発明の実施形態について説明する。
【００３９】
＜第１実施形態＞
図１に、本実施形態におけるネットワークシステムの全体構成図を示す。複数のネットワーク機器１，２，３，４，５，６がネットワーク１０に接続される。図では、合計６個の機器が例示されているが、これに限定されない。各機器は、全て同一構成であってもよく、あるいは互いに異なった構成であってもよい。ネットワーク機器とは、通信回線（ネットワーク１０）を介して相互に接続してネットワークシステムを構成し、データを送受し得る機器を意味し、通信回線は有線、無線を問わない。また、ネットワーク機器の典型例はコンピュータ、パーソナルコンピュータ、タブレット端末、携帯電話等の情報機器であるが、通信回線を介して相互に接続し得るＡＶ機器あるいは音響機器も含まれる。図１では、機器１〜６として、音声を再生する音響機器を例示している。上述のように、各機器は、互いに異なった構成であってもよいが、本実施形態では、同一の構成であるものとして、以下、機器１についてのみその構成を説明する。
【００４０】
機器１は、ＣＰＵ１１（処理部）、メモリ１２（記憶部）、通信インタフェース（Ｉ／Ｆ）１３及び音声信号処理部１４を備える。
【００４１】
メモリ１２は、プログラムメモリ及びワーキングメモリを含む。プログラムメモリには、ＣＰＵ１１で実行されるプログラムが記憶される。ワーキングメモリには、後述する機器リスト等が記憶される。
【００４２】
ＣＰＵ１１は、プログラムメモリに記憶されたプログラムに従い、後述する処理を実行して複数の機器１〜６の中から親機器（以下、単に「親」ともいう。）（ホスト）となるべき機器を特定する処理を実行する。また、ＣＰＵ１１は、親機器を設定した後、複数の機器１〜６でネットワークシステムを構築し、必要な情報を共有するための一連の処理を実行する。
【００４３】
通信Ｉ／Ｆ１３は、各種データ、例えば機器１が保持する機器リスト等を、ネットワーク１０を介して送受する。なお、ＣＰＵ１１は、通信Ｉ／Ｆ１３を介して、各種データの送受を行うが、説明の簡単のため、以下では、「ＣＰＵ１１は、機器リストを送信する」というように、「通信Ｉ／Ｆ１３を介して」の文言を省略している。
【００４４】
音声信号処理部１４は、入力された音声信号に対し復調、増幅等の所定の処理を施す。機器１がスピーカである場合、音声信号処理部は、音声信号を出力するためのドライバ回路を含む。機器１がアンプ及びスピーカである場合、音声信号処理部１４は、復調回路、増幅回路、ドライバ回路を含む。
【００４５】
機器１には、他の機器、例えばＣＤプレーヤやＤＶＤプレーヤ等が接続されていてもよい。
【００４６】
また、ネットワーク１０は、典型的にはＬＡＮ（ローカルエリアネットワーク）であるが、このネットワーク１０は、ＷＡＮ（ワイドエリアネットワーク）に接続され、ＷＡＮ経由で特定のサービス機器に接続されていてもよい。ネットワーク１０は、有線ネットワークあるいは無線ネットワークのいずれでもよい。
【００４７】
図１において、初期状態では複数の機器１〜６のいずれも親（ホスト）として機能しておらず、親が存在していない。この初期状態では、機器１〜６は、ネットワーク１０に接続されてはいるが、機器１〜６どうしは接続されていない。すなわち、機器１〜６によりネットワークシステムが構成されていない状態である。このような状態から、各機器１〜６は、機器１〜６間でデータを送受することで、自律的に、いずれかの機器を親（ホスト）として設定し、設定した親を中心としたネットワークシステムを構成する。そして、ネットワークシステムを構成する機器１〜６は、情報を共有する。
【００４８】
以下、親機器が設定されていない初期状態から、親機器を自律的に設定する処理について説明する。
【００４９】
＜親機器の設定＞
図２に、各機器１〜６が通信Ｉ／Ｆ１３〜６３によりネットワーク１０に接続された状態を示す。各機器１〜６のＣＰＵ１１〜６１は、各機器１〜６の電源がオンされると、ＵＤＰ（User Datagram Protocol）ブロードキャスト機能を用いてほぼ同一内容の機器リストを取得し、取得した機器リストをそれぞれのメモリ１２〜６２に記憶する。ここで、「ほぼ同一内容」とは、完全に一致する内容であることを要しない趣旨であり、通信状態が不安定でエコーが返らない場合もあり得ることを考慮したものである。
【００５０】
このブロードキャスト機能により、各機器１〜６は、それぞれの共有情報及びスキーム情報とともに、ネットワーク１０に接続されている機器リストを保持することになる。例えば、機器１は、メモリ１２に共有情報１及びスキーム情報を記憶するとともに、機器リスト（機器１，機器２，・・・）を記憶する。また、機器２は、メモリ２２に共有情報２及びスキーム情報を記憶するとともに、機器リスト（機器１，２，・・・）を記憶する。初期状態では、各機器１〜６が保持する共有情報、スキーム情報及び機器リストは同一である保証はなく、共有情報１と共有情報２が同一である保証はない（「共有情報」であるものの、初期状態では必ずしも全ての機器１〜６で共有されている保証はないので、この意味で仮共有情報といえる）。ここで、共有情報とは、各機器間で共有される情報である。また、スキーム情報とは、共有情報が正しい形式、書式、数値であるかどうかを判断するためのスキーム（枠組み）の情報である。共有情報とスキーム情報とは、常にセットで送受信される。
【００５１】
なお、ＵＤＰとは、Internet Protocol (IP) ネットワーク上の他のコンピュータへ「データグラム」と呼ばれるメッセージを送るのに使われるプロトコルであり、事前に転送チャネルやデータ経路といった特別な設定をする必要がない利点がある。
【００５２】
各機器１〜６のＣＰＵ１１〜６１は、機器リストを取得すると、メモリ１２〜６２に記憶されている機器リストに基づいて、自機器が機器１〜６の中で親として適当であるか否かを判断する。なお、初期状態では上述したように親は存在していないが、仮に親が存在していた場合、各機器１〜６のＣＰＵ１１〜６１は、判断を行わずに既存の親を親とみなす。また、各機器１〜６のＣＰＵ１１〜６１は、判断の結果、自機器が親として適当であると判断したにもかかわらず、エコーを返してきた他の機器も親である場合（親の衝突）、自機器と他の機器のいずれが親として適当であるかを判断し、自機器が親として適当であると判断すれば既に親が存在することを知らせるメッセージを他の機器に送信する。判断の詳細については後述する。
【００５３】
図３に、各機器１〜６のＣＰＵ１１〜６１が、自機器が親として適当であるか否かを判断した結果、機器２のＣＰＵ２１が親として適当であると判断した場合を示す。機器２が親として設定されると、親である機器２のＣＰＵ２１は、メモリ２２に記憶されている機器リストを読み出し、読み出した機器リストをエコーメッセージに添付して他の機器１、３〜６に送信する。親以外の機器１，３〜６のＣＰＵ１１、３１〜６１は、エコーによる探索を中断し、機器２のエコーメッセージに含まれる機器リストを受信し、受信した機器リストをそれぞれのメモリ１２、３２〜６２に記憶する。すなわち、図３に示すように、親である機器２のみがブロードキャストして、保持している機器リストを他の機器１、３〜６に配信する。これにより、機器１〜６の全てが、同一の機器リストを保持することになる。
【００５４】
なお、親である機器２から一定時間エコーがなくなると、親以外の機器１，３〜６のＣＰＵ１１、３１〜６１は、エコー探索を再開する。また、さらに一定時間が経過すると、次の親が再設定される。
【００５５】
＜設計図データの作成及び配信＞
親である機器２のＣＰＵ２１は、図３に示すように、メモリ２２に記憶されている機器リストを他の機器１，３〜６に配信する。ＣＰＵ２１は、これと並行して、メモリ２２に記憶されている（つまり全ての機器１〜６が保持している）機器リストを用いて、ネットワークシステムの設計図データであるネットワーク設計図データ（以下、単に「設計図データ」ともいう。）を作成する。ＣＰＵ２１は、作成した設計図データにおける１つ下の階層（直近の子）の機器に自機器２を接続するとともに、作成した設計図データを送信する。
【００５６】
図４に、ネットワーク設計図データとして、親を頂点として複数の機器１〜６が２分木状に接続される構成を示す。親である機器２が頂点となり、その下に機器１及び機器３が接続される。機器１にはその下に機器４及び機器５が接続され、機器３にはその下に機器６が接続される。設計図データは、このような接続関係を記述したデータ列である。各機器１〜６は、作成された設計図データに従って必要な機器と接続してネットワークシステムを構築する。図４に示すように、本実施形態のネットワークシステムは、親機器と親機器に接続される子機器（以下、単に「子」ともいう。）とを含み、親機器を頂点とする階層構造となっている。
【００５７】
親である機器２のＣＰＵ２１は、設計図データに従って子である機器１及び機器３に自機器をそれぞれ接続し、作成した設計図データを送信する。機器１のＣＰＵ１１は、機器２からの設計図データを受信し、受信した設計図データをメモリ１２に記憶する。ＣＰＵ１１は、この設計図データに従って機器４及び機器５にそれぞれ自機器を接続し、受信した設計図データを送信する。機器４のＣＰＵ４１及び機器５のＣＰＵ５１は、受信した設計図データをそれぞれメモリ４２、５２に記憶する。また、機器３のＣＰＵ３１は、機器２からの設計図データを受信し、受信した設計図データをメモリ３２に記憶する。ＣＰＵ３１は、この設計図データに従って機器６に自機器を接続し、受信した設計図データを送信する。機器６のＣＰＵ６１は、受信した設計図データをメモリ６２に記憶する。機器４〜６のＣＰＵ４１〜６１は、受信した設計図データに従って、自機器がそれぞれネットワークシステムの最下位（末端）であると判断する。
【００５８】
＜共有情報の収集及び配信＞
親である機器が作成した設計図データに従って機器が接続され、ネットワークシステムが構築された後、親である機器２は、他の機器１,３〜６がそれぞれ保持している共有情報（仮共有情報）を収集する。
【００５９】
図５に、共有情報の収集処理を示す。親である機器２のＣＰＵ２１は、他の機器１,３〜６に対して共有情報の収集命令を送信する。具体的には、機器２のＣＰＵ２１は、子である機器１及び機器３に対して収集命令を送信する。機器１のＣＰＵ１１は、当該収集命令を子である機器４及び機器５に送信する。機器３のＣＰＵ３１は、当該収集命令を子である機器６に送信する。
【００６０】
各機器のＣＰＵは、収集命令を受信すると、その命令に従ってメモリに記憶されている（自機器が保持している）共有情報を読み出し、読み出した共有情報を１つ上の階層の機器に送信する。そして、子から共有情報を受信した１つ上の階層の機器のＣＰＵは、その１つ上の階層の機器に受信した共有情報を送信する。この際に、共有情報がメモリに記憶されていれば、ＣＰＵは、メモリに記憶されている共有情報と子から受信した共有情報とをマージ（合成）して１つ上の階層の機器に送信する。
【００６１】
すなわち、機器４のＣＰＵ４１は、メモリ４２に記憶されている共有情報４を機器１に送信する。また、機器５のＣＰＵ５１は、メモリ５２に記憶されている共有情報５を機器１に送信する。機器１のＣＰＵ１１は、共有情報４と共有情報５をマージするとともに、メモリ１２に記憶されている共有情報１もさらにマージして、共有情報１＋共有情報４＋共有情報５として機器２に送信する。また、機器６のＰＵ６１は、メモリ６２に記憶されている共有情報６を機器３に送信する。機器３のＣＰＵ３１は、メモリ３２に記憶されている共有情報３と共有情報６をマージし、共有情報３＋共有情報６として機器２に送信する。
【００６２】
ここで、１つ下の階層の機器から送信される共有情報とメモリに記憶されている共有情報とをマージし、マージした共有情報（マージ共有情報）を１つ上の階層の機器に送信する機器のＣＰＵは、共有情報をマージした後、スキーム情報に基づいて、マージ後の共有情報（仮共有情報）が正しいか否か、すなわち、マージ後の共有情報とスキーム情報とが一致しているか否かを判断する。機器のＣＰＵは、スキーム情報に基づいて、マージ後の共有情報（仮共有情報）が正しい、すなわち、マージ後の共有情報とスキーム情報とが一致していると判断した場合、マージ後の共有情報を１つ上の階層の機器に送信する。一方、機器のＣＰＵは、マージ後の共有情報が正しくない、すなわち、マージ後の共有情報とスキーム情報とが一致していないと判断した場合、マージ後の共有情報を破棄する。例えば、機器１のＣＰＵ１１は、共有情報４、共有情報５、共有情報１をマージした後、スキーム情報に基づいて、マージ後の共有情報（仮共有情報）が正しいか否かを判断する。機器１のＣＰＵ１１は、スキーム情報に基づいて、マージ後の共有情報（仮共有情報）が正しいと判断すると、機器２にマージ後の共有情報を送信する。なお、マージ後の共有情報が正しいとは、共有情報のマージに成功したことを意味する。また、マージ後の共有情報が正しくないとは、共有情報のマージに失敗したことを意味する。
【００６３】
また、各機器のＣＰＵは、共有情報とセットでスキーム情報を送信する。例えば、図６に示すように、機器４のＣＰＵ４１は、メモリ４２に記憶されている共有情報４とバージョン１のスキーム情報とを機器１に送信する。機器５のＣＰＵ５１は、共有情報５とバージョン２のスキーム情報とを機器１に送信する。また、機器のＣＰＵは、メモリに記憶されているスキーム情報よりも受信したスキーム情報のバージョンが新しい場合、その新しいバージョンのスキーム情報を１つ上の階層の機器に送信する。例えば、図６に示すように、機器１のＣＰＵ１１は、メモリ１２に記憶されているバージョン１よりも新しいバージョン２のスキーム情報を１つ上の階層の機器２に送信する。
【００６４】
図７は、親以外の機器におけるマージ後の共有情報が正しいか否かを判断する処理動作を示すフローチャートである。機器のＣＰＵは、１つ下の階層の機器から送信される共有情報を受信すると（Ｓ１）、受信した共有情報とメモリに記憶されている共有情報とをマージする（Ｓ２）。次に、ＣＰＵは、マージ後の共有情報とスキーム情報とが一致しているか否かを判断する（Ｓ３）。ＣＰＵは、マージ後の共有情報とスキーム情報とが一致していると判断した場合（Ｓ３：Ｙｅｓ）、マージ後の共有情報及びスキーム情報を１つ上の階層の機器に送信する（Ｓ４）。ＣＰＵは、マージ後の共有情報とスキーム情報とが一致していないと判断した場合（Ｓ３：Ｎｏ）、マージ後の共有情報を破棄する（Ｓ５）。
【００６５】
親である機器２のＣＰＵ２１は、機器１からの共有情報１＋共有情報４＋共有情報５と、機器３からの共有情報３＋共有情報６を受信し、これらをマージするとともに、メモリ２２に記憶されている共有情報２もさらにマージして、
共有情報＝共有情報１＋共有情報２＋共有情報３＋共有情報４＋共有情報５＋共有情報６
を作成する。ここで、機器２のＣＰＵ２１は、スキーム情報に基づいて、マージ後の共有情報（仮共有情報）が正しいか否か、すなわち、マージ後の共有情報とスキーム情報とが一致しているか否かを判断する。機器２のＣＰＵ２１は、スキーム情報に基づいて、マージ後の共有情報（仮共有情報）が正しい、すなわち、マージ後の共有情報とスキーム情報とが一致していると判断した場合、マージ後の共有情報をメモリ２２に記憶する。従って、機器２のメモリ２２においては、共有情報２から新たな共有情報に更新される。機器２のＣＰＵ２１は、スキーム情報に基づいて、マージ後の共有情報（仮共有情報）が正しくない、すなわち、マージ後の共有情報とスキーム情報とが一致していないと判断した場合、マージ後の共有情報を破棄する。
【００６６】
図８は、親機器による共有情報の収集処理を示すフローチャートである。親機器のＣＰＵは、１つ下の階層の機器に共有情報の収集命令を送信する（Ｓ１１）。この後、ＣＰＵは、１つ下の階層の機器から共有情報及びスキーム情報を受信する（Ｓ１２）。次に、ＣＰＵは、受信したスキーム情報のバージョンが、メモリに記憶されているスキーム情報のバージョンよりも新しいか否かを判断する（Ｓ１３）。ＣＰＵは、受信したスキーム情報のバージョンが、メモリに記憶されているスキーム情報のバージョンよりも新しいと判断した場合（Ｓ１３：Ｙｅｓ）、受信したスキーム情報をメモリに記憶する（Ｓ１４）。ＣＰＵは、受信したスキーム情報のバージョンが、メモリに記憶されているスキーム情報のバージョンよりも新しくないと判断した場合（Ｓ１３：Ｎｏ）、又は、Ｓ１４の処理の後、受信した共有情報とメモリに記憶されている共有情報とをマージする（Ｓ１５）。次に、ＣＰＵは、マージ後の共有情報とスキーム情報とが一致しているか否かを判断する（Ｓ１６）。ＣＰＵは、マージ後の共有情報とスキーム情報とが一致していないと判断した場合（Ｓ１６：Ｎｏ）、マージ後の共有情報を破棄する（Ｓ１７）。このとき、ＣＰＵは、マージ後の共有情報が正しくない、すなわち、マージに失敗したことを１つ下の階層の機器に通知する。１つ下の階層の機器のＣＰＵは、再度、受信した共有情報とメモリに記憶されている共有情報とのマージを行う。そして、１つ下の階層の機器のＣＰＵは、マージ後の共有情報が正しければ、再度、１つ上の階層の機器にマージ後の共有情報を送信する。一方、１つ下の階層の機器のＣＰＵは、マージ後の共有情報が正しくなければ、１つ下の階層の機器にマージ後の共有情報が正しくない、すなわち、マージに失敗したことを通知する。このようにして、各機器において、共有情報のマージがやり直され、最終的には、親機器にマージされた共有情報が送信される。
【００６７】
親機器のＣＰＵは、Ｓ１７の処理の後、Ｓ１２〜１６の処理を再度行う。また、ＣＰＵは、マージ後の共有情報とスキーム情報とが一致していると判断した場合（Ｓ１６：Ｙｅｓ）、処理を終了する。
【００６８】
各機器１，３〜６がそれぞれ自己の保持する共有情報を個別に親である機器２に送信するのでは、通信トラフィックが増大するだけでなく、親である機器２のＣＰＵ２１の負担が増大する。特に、各機器１〜６がコンピュータではなくアンプやスピーカ等の音響機器であるため、搭載されているＣＰＵ１１〜６１の処理能力には制限があり、大量のデータを一度に処理することは困難である。本実施形態のように、ネットワークシステムを構成する各機器のＣＰＵが、子である機器からの共有情報をマージし、さらに自機器が保持する共有情報をマージした上で、まとめて機器２に送信することで、機器２のＣＰＵは、２つの機器１，３から送信された共有情報を受信して自己の共有情報とマージするだけでよく、効率的な収集処理が可能となる。
【００６９】
親である機器２のＣＰＵ２１は、共有情報（全ての機器に共通の真の共有情報）を作成してメモリ２２に記憶した後、メモリ２２から共有情報（ネットワーク共有情報）及びスキーム情報を読み出して他の機器１,３〜６に送信する。本実施形態では、機器２のＣＰＵ２１は、１つ下の階層の機器１及び機器３にのみ、共有情報及びスキーム情報を送信する。
【００７０】
図９に、共有情報（ネットワーク共有情報）の配信処理を示す。機器２のＣＰＵ２１は、作成した共有情報及び最も新しいバージョンのスキーム情報を子である機器１及び機器３に送信する。機器１のＣＰＵ１１は、受信した共有情報及びスキーム情報をメモリ１２に記憶するとともに、子である機器４及び機器５に送信する。機器４のＣＰＵ４１及び機器５のＣＰＵ５１は、受信した共有情報及びスキーム情報をそれぞれメモリ４２、５２に記憶する。また、機器３のＣＰＵ３１は、受信した共有情報及びスキーム情報をメモリ３２に記憶するとともに、子である機器６に送信する。機器６のＣＰＵ６１は、受信した共有情報をメモリ６２に記憶する。これにより、全ての機器１〜６は、同一の共有情報（これを共有情報７とする）及びスキーム情報を保持することになる。
【００７１】
＜共有情報の変更＞
以上のようにして特定の機器を予め親として決めることなく、ネットワークシステムを構成する全ての機器１〜６が同一の共有情報を保持することができるが、その後に、任意の機器が共有情報を変更する場合があり得る。次に、このような共有情報の変更処理について説明する。
【００７２】
図１０に、機器１〜６のうち、機器６の共有情報に変更が生じた場合を示す。共有情報の変更とは、例えば機器６のプログラムのバージョンアップ等である。
【００７３】
この場合、機器６のＣＰＵ６１は、既にメモリ６２に記憶されている共有情報（共有情報７）と変更後の情報との差分情報、すなわち変更部分に関する情報を作成して１つ上の階層の機器３に送信する。
【００７４】
機器３のＣＰＵ３１は、子である機器６からの差分情報を受信すると、当該差分情報を１つ上の階層の機器２に送信する。
【００７５】
親である機器２のＣＰＵ２１は、差分情報を受信すると、その差分情報に従ってメモリ２２に記憶されている共有情報（共有情報７）を書き換えて新たな共有情報としてメモリ２２に記憶する。このとき、ＣＰＵ２１は、新たな共有情報とスキーム情報とが一致するか否かを判断する。ＣＰＵ２１は、新たな共有情報とスキーム情報とが一致しないと判断した場合は、新たな共有情報を破棄する。ＣＰＵ２１は、新たな共有情報とスキーム情報とが一致すると判断した場合、子である機器１及び機器３に当該差分情報を送信し、この差分情報に従って共有情報を書き換える命令を送信する。機器１のＣＰＵ１１及び機器３のＣＰＵ３１は、差分情報を受信すると、これに従いメモリ１２、３２に記憶されている共有情報を書き換える。このとき、ＣＰＵ１１、３１は、新たな共有情報とスキーム情報とが一致するか否かを判断する。ＣＰＵ１１、３１は、新たな共有情報とスキーム情報とが一致しないと判断した場合は、新たな共有情報を破棄する。ＣＰＵ１１は、新たな共有情報とスキーム情報とが一致すると判断した場合、子である機器４及び機器５に当該差分情報を送信する。ＣＰＵ３１は、新たな共有情報とスキーム情報とが一致すると判断した場合、子である機器６に当該差分情報を送信する。機器４〜６のＣＰＵ４１〜６１は、差分情報を受信すると、これに従いメモリ４２〜６２に記憶されている共有情報を書き換える。このとき、このとき、ＣＰＵ４１〜６１は、新たな共有情報とスキーム情報とが一致するか否かを判断する。ＣＰＵ４１〜６１は、新たな共有情報とスキーム情報とが一致しないと判断した場合は、新たな共有情報を破棄する。
【００７６】
ここで、変更元である機器６においても、親である機器２から差分情報を受信した後に自機器の共有情報を書き換えている点に留意されたい。これにより、図１１に示すように、全ての機器１〜６は、変更後の共有情報（これを共有情報８とする）を保持することになる。
【００７７】
なお、親である機器２のＣＰＵ２１は、差分情報を配信するのではなく、変更後の共有情報（共有情報８）を他の機器１，３〜６に配信してもよい。
【００７８】
＜通信障害が生じた場合＞
次に、通信障害が生じた場合の処理について説明する。
【００７９】
ネットワーク１０に接続された機器１〜６のうち、任意の機器、例えば機器５に異常が生じ、機器５がネットワーク１０に未接続となったとする。そうすると、図１２に示すように、機器１と機器５との接続が遮断される。この場合、親である機器２において作成し他の機器にも配信した設計図データが不正確なものとなるため、ネットワークシステムの再構築が必要となる。
【００８０】
そこで、本実施形態では、遮断された機器に接続されていた機器は、他の全ての接続を遮断する。この遮断は順次機器を伝播していき、やがてネットワークシステムを構成する機器同士の全ての接続が遮断される。
【００８１】
すなわち、機器１のＣＰＵ１１は、機器５との接続が遮断されると、図１３に示すように、機器５との接続が遮断されたことを検知して他の接続である機器４との接続、及び機器２との接続を遮断する。機器２ＣＰＵ２１は、図１４に示すように、機器１との接続が遮断されたことを検知して他の接続である機器３との接続を遮断する。機器３のＣＰＵ３１は、図１５に示すように、機器２との接続が遮断されたことを検知して他の接続である機器６との接続を遮断する。これにより、ネットワークシステムを構成する全ての機器１〜６の接続が遮断される。
【００８２】
その後、再び親の設定、設計図の作成及び配信、共有情報の収集及び配信の各処理を実行して、ネットワークシステムを再構築する。
【００８３】
次に、本実施形態の各処理について、より詳細に説明する。
【００８４】
＜親機器の設定の詳細＞
まず、親機器の設定の詳細について説明する。
【００８５】
ネットワーク１０に接続された各機器１〜６は、図１に示すように、ＣＰＵ１１〜６１及びメモリ１２〜６２を備えている。各機器１〜６のメモリ１２〜６２は、自機器の機器番号と、強度を表すパラメータであるネットワーク強度（ネットワークシステムにおける強度値）と、を記憶する。機器番号は、ネットワークシステムにおいてユニーク（一意）であれば任意であり、例えばＩＰアドレス、ＭＡＣアドレス、出荷前に機器に割り振った番号等である。ネットワーク強度は、自機器のネットワークシステムにおける性能の指標であり、ＣＰＵ性能等、機器間相互で比較できる任意の物理量を用いることができる。ネットワーク強度は、例えば有線接続の場合に＋１０、無線接続の場合に０、ルータとのpingに対するレスポンスが１ｍｓ以下の場合に＋３、エコーを送信してから返信されるまでの時間が短ければ短いほど大きくなる値等である。ネットワーク強度は、当該機器のＣＰＵの性能や接続の確実性、データ速度等、機器の性能と接続関係を総合的に定量評価したパラメータと定義し得る。
【００８６】
図１６に、各機器１〜６の状態移行（状態遷移）の様子を示す。全ての機器１〜６は、初期状態、すなわち電源投入直後においてＢＵＳＹ状態（第１状態）にある。ＢＵＳＹ状態にある機器のＣＰＵは、エコー要求メッセージをブロードキャストし、自機器の周囲の機器を把握する。ＣＰＵは、自機器が親に不適当であると判断すると、ＢＵＳＹ状態を維持する。他方、自機器が親として適当であると判断した機器のＣＰＵは、ＢＵＳＹ状態からＭＡＳＴＥＲ状態（第２状態）に自機器を移行させ、一定時間おきにエコー要求を送信する。また、ＭＡＳＴＥＲ状態にある機器のＣＰＵは、何らかの原因で親を自発的に辞める、あるいはリセットメッセージを受信して親を辞める場合、ＭＡＳＴＥＲ状態からＢＵＳＹ状態に自機器を移行させる。さらに、ＣＰＵは、ＢＵＳＹ状態において親から送信されたエコー要求を受け取ると、ＢＵＳＹ状態からＳＬＡＶＥ状態（第３状態）に自機器を移行させる。一定時間毎に親から送信されるエコー要求を受信していれば、ＣＰＵは、ＳＬＡＶＥ状態を維持する。一定時間毎に親から送信されるエコー要求が途絶えた場合、ＣＰＵは、ＳＬＡＶＥ状態からＢＵＳＹ状態に自機器を移行させる。
【００８７】
従って、初期状態においては全ての機器１〜６がＢＵＳＹ状態にある。自機器が親機器であると判断した親機器のＣＰＵは、ＢＵＳＹ状態からＭＡＳＴＥＲ状態に自機器を移行させて一定時間毎にエコー要求を送信し続ける。親機器からエコー要求を受信した機器のＣＰＵは、ＢＵＳＹ状態からＳＬＡＶＥ状態に自機器を移行させて、一定時間毎にエコー要求を受信している限りＳＬＡＶＥ状態を維持する。ＳＬＡＶＥ状態に移行した機器のＣＰＵは、他の機器からのエコー要求に答えるだけであり、エコー探索を実行しない。ＳＬＡＶＥ状態に移行した機器のＣＰＵは、親機器からのエコー要求メッセージに添付された機器リストを受信することで周囲の機器を把握する。
【００８８】
本実施形態において、ネットワーク１０に接続された各機器１〜６で送受されるメッセージには、少なくとも
送信機器のＩＰアドレス
自機器が親であるか否か
コマンド
リージョンコード
プロトコルバージョン
が含まれる。
【００８９】
また、コマンドには以下のものがある。
（１）コマンド名：初期化要求
付属データ：なし
内容：相手にリセット状態から開始したとのメッセージ
（２）コマンド名：初期化応答
付属データ：なし
内容：初期化したことを親が認知したとのメッセージ
（３）コマンド名：エコー要求
付属データ：（親のみ）親が把握している機器のＩＰアドレスのリスト
内容：このメッセージを受け取った機器（ノード）のＣＰＵは、自機器が親であるかどうかによらず、送信機器にエコー結果メッセージを送り返す。
（４）コマンド名：エコー結果
付属データ：なし
内容：エコー要求メッセージに対する応答
（５）コマンド名：リセット
付属データ：なし
内容：既に親が決まっている場合に、親を辞めてもらいたい場合に送信する
（６）コマンド名：遮断
付属データ：なし
内容：今からネットワーク１０から遮断することがわかっている機器から送信するメッセージであり、このメッセージを受信した機器（ノード）のＣＰＵは、メモリに記憶されている機器リストから当該機器を削除する。
【００９０】
リージョンコードは、共通のリージョンであるか否かを識別するコードである。リージョンが自機器と異なるメッセージを受信した機器のＣＰＵは、そのメッセージを無視するため、実質的にメッセージが届かなかったものとして扱う。また、リージョンが異なる機器同士は、システムのプロトコルが異なり誤動作のおそれがあるため無視される。すなわち、リージョンが異なる機器同士は、同じネットワークシステムを構成しない。
【００９１】
図１７に、リージョン１に属する機器Ａ，Ｃと、異なるリージョン２に属する機器Ｂを示す。機器Ａから機器Ｃへのメッセージは、同一リージョンであるため受信され解釈される。他方、機器Ａと機器Ｂの間のメッセージは、異なるリージョンであるため互いに無視される。従って、機器ＡのＣＰＵは機器Ｂを認識せず、機器ＢのＣＰＵも機器Ａを認識しない。
【００９２】
次に、親機器を設定する具体的な処理について説明する。
【００９３】
各機器１〜６の電源が投入されて起動すると、まず、各機器のＣＰＵは、上述したようにＢＵＳＹ状態に自機器を移行させる。そして、このＢＵＳＹ状態において、ＣＰＵは、初期化要求メッセージと、エコー要求メッセージをブロードキャストする。
【００９４】
何らかのメッセージを受け取った機器のＣＰＵは、メモリに記憶されている機器リストにエコーを送信した機器を追加し、自機器が親として適当であるか否かを判断する。ＣＰＵは、自機器が親として適当であると判断すれば、ＢＵＳＹ状態からＭＡＳＴＥＲ状態に自機器を移行させる。ここで、エコーを送信した機器も親の場合（親として適当であると判断している場合）、ＣＰＵは、どちらが親として適当であるかを判断する。ＣＰＵは、自機器が親として適当であると判断すれば、自機器にエコーを送信した機器に再度エコー要求を送信する。ＣＰＵは、エコーを送信した機器が親として適当であると判断すれば、親を辞める。この場合、ＣＰＵは、ＭＡＳＴＥＲ状態からＢＵＳＹ状態に自機器を移行させる。
【００９５】
エコー要求を受け取った機器のＣＰＵは、エコーを送信した機器にエコー結果メッセージを返す。親からのメッセージであれば、ＣＰＵは、そのメッセージに添付されている機器リストに記載されている機器を、メモリに記憶されている機器リストに追加して更新する。また、親からのメッセージであれば、ＣＰＵは、ＢＵＳＹ状態からＳＬＡＶＥ状態に自機器を移行させる。
【００９６】
ＣＰＵは、一定時間毎に、初期化結果メッセージを受け取っていない場合、初期化要求を再送する。また、ＣＰＵは、機器リストに記載されている機器のうち、機器リストに登録した際に設定された寿命が尽きている機器があれば機器リストから削除する。ＣＰＵは、機器リストから親がいなくなったら、ＳＬＡＶＥ状態からＢＵＳＹ状態に自機器を移行させる。ＣＰＵは、機器リストに親が存在せず、機器リストの中で自機器が親として適当であると判断すれば、ＳＬＡＶＥ状態からＭＡＳＴＥＲ状態に自機器を移行させる。ＣＰＵは、自機器が親となりＭＡＳＴＥＲ状態に自機器を移行させると、一定時間毎にメモリに記憶されている機器リストを添付したエコー要求メッセージを送信する。
【００９７】
親として適当であるか否かの判断は、以下のように実行される。すなわち、各機器１〜６には機器番号とネットワーク強度とが付与されており、機器リストにその機器番号とネットワーク強度とが含まれる。各機器１〜６のＣＰＵ１１〜６１は、自機器のメモリ１２〜６２に記憶されている機器リストのネットワーク強度を参照し、ネットワーク強度が強い方（パラメータが大きい方）を優先的に親に設定する。また、ネットワーク強度が等しい場合、各機器１〜６のＣＰＵ１１〜６１は、機器番号に基づいて親を決定する。
【００９８】
図１８に、ネットワーク強度の比較例を示す。図１８（ａ）において、機器Ａのネットワーク強度が２、機器Ｂのネットワーク強度が１の場合、機器Ａを親として設定する。図１８（ｂ）において、機器Ａのネットワーク強度が１、機器Ｂのネットワーク強度が１の場合、互いにネットワーク強度が等しいので、機器番号（この場合はＩＰアドレス）の大きい機器Ｂを親として設定する。
【００９９】
図１９に、ネットワーク１０に接続された機器が１台のみの場合を示す。起動したときに機器Ａのみが存在する場合、起動後に機器ＡのＣＰＵは、ＢＵＳＹ状態に自機器を移行させ、エコー要求を送信する。このとき、ネットワーク１０に他の機器が接続されていないため、応答がないまま一定時間が経過することになる。そこで、機器ＡのＣＰＵは、メモリに記憶されている機器リストの中から自機器を親として設定し、ＭＡＳＴＥＲ状態に自機器を移行させる。
【０１００】
図２０に、ネットワーク１０に接続された機器が複数の場合であって、起動したときに既に親が存在している場合を示す。機器ＢがＭＡＳＴＥＲ状態に移行しており、機器ＣがＳＬＡＶＥ状態に移行しているものとする。機器Ａが起動すると、機器ＡのＣＰＵは、ＢＵＳＹ状態に自機器を移行させ、親である機器Ｂから送信されるエコー要求を受け取ってＢＵＳＹ状態からＳＬＡＶＥ状態に自機器を移行させる。
【０１０１】
図２１に、ネットワーク１０に接続された機器が複数の場合であって、これら複数の機器が同時に起動した場合を示す。機器Ａ，Ｂ，ＣのＣＰＵは、それぞれ起動後にＢＵＳＹ状態に自機器を移行させる。機器Ａ，Ｂ，ＣのＣＰＵは、それぞれ、メモリに記憶されている機器リストのネットワーク強度（ネットワーク強度が等しければ機器番号の大小）を参照し、自機器が親として適当であるか否かを判断する。図において、機器Ａ,Ｂ，Ｃのネットワーク強度がそれぞれ１，２，１であるとすると、機器ＢのＣＰＵは、自機器が最も親として適当であると判断し、ＢＵＳＹ状態からＭＡＳＴＥＲ状態に自機器を移行させる。また、機器ＢのＣＰＵは、エコー要求メッセージを他の機器に送信する。親からのエコー要求メッセージを受け取った機器Ａ,ＣのＣＰＵは、それぞれＢＵＳＹ状態からＳＬＡＶＥ状態に自機器を移行させる。
【０１０２】
図２２に、図２１の状態から何らかの原因により親からの応答が途絶えた場合を示す。親である機器Ｂからの応答が途絶えると、各機器Ａ，ＣのＣＰＵは、一定時間経過後に親からの応答が途絶えたことを検知してＳＬＡＶＥ状態からＢＵＳＹ状態に自機器を移行させる。そして、さらに一定時間が経過すると、機器Ａ，ＣのＣＰＵは、それぞれ自機器が親として適当であるか否かを判断する。ネットワーク強度が同じであるものの機器番号が大きい機器ＣのＣＰＵは、自機器が親として適当であると判断し、ＢＵＳＹ状態からＭＡＳＴＥＲ状態に自機器を移行させる。そして、機器ＣのＣＰＵは、他の機器（ここでは機器Ａ）に対してエコー要求メッセージを送信する。このエコー要求メッセージを受け取った機器ＡのＣＰＵは、ＢＵＳＹ状態からＳＬＡＶＥ状態に自機器を移行させる。
【０１０３】
本実施形態において、ネットワーク強度が互いに等しい場合には機器番号の大きい機器を親機器として決定しているが、機器番号の最も小さい機器を親機器として決定することもできる。
【０１０４】
＜設計図データの作成及び配信の詳細＞
次に、設計図データの作成及び配信の詳細について説明する。
【０１０５】
親が存在するネットワークシステムにおいて送受されるメッセージは以下の通りである。
（１）コマンド名：構築
付属データ：設計図データ
内容：ネットワークシステムを構築するときに親が送信するメッセージ
（２）コマンド名：ダイレクトキャスト
付属データ：データ
内容：直接相手機器に接続し、データ送信が完了すると遮断するデータ送受信時に使用されるメッセージ
（３）コマンド名：ユニキャスト
付属データ：宛先、データ
内容：ネットワークシステムを使用して、特定の機器にデータを送る場合に使用されるメッセージ
（４）コマンド名：ブロードキャスト
付属データ：データ
内容：ネットワークシステムを使用して、特定の機器にデータを送る場合に使用されるメッセージ
（５）コマンド名：マルチキャスト
付属データ：宛先リスト、データ
内容：ネットワークシステムにおける複数の機器にデータを送る場合に使用されるメッセージ
【０１０６】
図２３に、ネットワーク１０に接続された各機器の状態移行（状態遷移）を示す。ネットワーク１０に接続された各機器は、ＳＩＮＧＬＥ状態かＮＥＴＷＯＲＫ状態かのいずれかの状態をとる。ＮＥＴＷＯＲＫ状態は、ネットワークシステムを構成している全ての接続が正常の場合の状態である。ＳＩＮＧＬＥ状態は、ネットワークシステムが構築されていないスタンドアローンな状態であり、初期状態である。構築メッセージが来ない場合、各機器のＣＰＵは、ＳＩＮＧＬＥ状態を維持する。構築メッセージを受け取ると、各機器のＣＰＵは、ＳＩＮＧＬＥ状態からＮＥＴＷＯＲＫ状態に自機器を移行させる。
【０１０７】
図２４に、ネットワークシステムの具体的な接続関係を示す。図４等に示すものと同様に、親を頂点とし、複数の機器が２分木状に接続したものである。各機器には、その接続場所によって図に示すように番号が割り当てられる。すなわち、親の番号を１とし、子はその親の番号を２倍した値、若しくはそれに１を足した値のいずれかが割り当てられる。従って、親を１とすると、その子の番号は２と３、番号２の子は４と５、番号３の子は６と７、番号４の子は８と９、番号５の子は１０と１１、番号６の子は１２と１３、番号７の子は１４と１５となる。
【０１０８】
図２５に、図２４に示す番号の２進数表記を示す。番号２は「１０」、番号３は「１１」となり、以下同様に、番号８は「１０００」、番号１５は「１１１１」となる。
【０１０９】
子に割り当てられる番号は、必ず親の番号を１ビット左にシフトした番号、若しくはそれに１を足した値になる。例えば、「１００」は親である「１０」を１ビット左にシフトした値であり、「１０１」は親である「１０」を１ビット左にシフトさせて１を足した値である。同様に、「１１１０」は親である「１１１」を１ビット左にシフトした値である。
【０１１０】
本実施形態では、番号を２進数で表記したが、Ｎ進数（Ｎは２以上の自然数）とすることで、Ｎ分木で同様に番号を割り当てることができる。機器数がある一定数以上を越えて信号負荷よりも信号遅延の懸念がある場合、２分木を３分木あるいはそれ以上として遅延抑制を図るのが好適である。
【０１１１】
図２６に、図２５に示すネットワークシステムにおける任意の１つの機器を示す。ある機器は、親への接続と、子への接続と、を有する。２分木の場合、２つの子への接続がある。
【０１１２】
図２７に、いずれかの接続が遮断された場合を示す。親への接続、及び子への接続のうち、図２７（ａ）のようにいずれかの接続（図では子への接続のうちの１つ）が遮断された場合、当該機器のＣＰＵは、これを検知して図２７（ｂ）に示すように他の全ての接続（図では親への接続及び他の子への接続）を遮断する。遮断された機器のＣＰＵも、当該機器と同様に他の接続を遮断するから、即座にネットワークシステムを構築する全ての機器に遮断が伝播していき、ネットワークシステムが破壊される。
【０１１３】
図２８に、親で作成される設計図データの一例を示す。親を先頭に、ネットワーク１０に接続された機器をそのネットワーク強度が大きい順番に並べた機器リストデータである。一番上が親で、そこから順番に１，２，３，４、・・・と番号を割り当てていくと、それがネットワークシステム上の位置となる。すなわち、２分木構成において、番号２，３の機器はそれぞれ親１の子であり、番号４，５の機器はそれぞれ子２を親とする子である。ネットワーク強度の大きい機器を優先的に親の近くに配置することで、親から送信されるメッセージがネットワークシステム全体（全ての機器）に送信される可能性が高くなる。
【０１１４】
親機器のＣＰＵは、ネットワークシステム構築命令を受けた場合、機器リストをネットワーク強度が大きい順にソートして、機器リストの先頭に自機器を追加する。これにより図２８に示すような設計図データが作成される。親機器のＣＰＵは、設計図データを作成した後、設計図データの２番目、３番目の機器に自機器を接続して構築メッセージを送信する。構築メッセージを送信した親機器のＣＰＵは、ＳＩＮＧＬＥ状態からＮＥＴＷＯＲＫ状態に自機器を移行させる。
【０１１５】
親から構築メッセージを受け取ると、機器のＣＰＵは、設計図データから自機器が何番目に位置しているかを設計図データの機器番号と自機器の機器番号を照合することで判断する。例えば、自己の機器番号が「１９２．１６８．２９．１」である場合、設計図データを参照することで親を頂点として２番目に位置していると分かる（子２）。同様に、自己の機器番号が「１９２．１６８．２９．３」である場合、設計図データを参照することで親を頂点として３番目に位置していることが分かる。子機器２のＣＰＵ及び子機器３のＣＰＵは、それぞれ、自機器の番号を２倍した番号と、それに１を足した番号の機器に自機器を接続し、構築コマンドを送信する。構築コマンドを送信した子機器２のＣＰＵ及び子３のＣＰＵは、ＳＩＮＧＬＥ状態からＮＥＴＷＯＲＫ状態に自機器を移行させる。以下、同様にして、ネットワーク１０に接続された全ての機器に設計図データが配信され、全ての機器がＮＥＴＷＯＲＫ状態に遷移する。
【０１１６】
また、ダイレクトキャストメッセージを受け取った場合、機器のＣＰＵは、後に続くデータを最後まで受信し、ダイレクトキャストメッセージを送信した機器との接続を遮断する。
【０１１７】
ユニキャストメッセージあるいはマルチキャストメッセージを受け取った場合、機器のＣＰＵは、メッセージに記載された宛先のＩＰアドレスを取得し、設計図データからＩＰアドレスに対応する番号（宛先の番号）を参照する。さらに、ＣＰＵは、宛先の番号の最上位ビットが何ビット目に存在しているかを判断する。例えば、ＣＰＵは、宛先の番号が「０００１」であれば１ビット目に存在しており、宛先の番号が「１０００」であれば４ビット目に存在していると判断する。そして、
（ａ）もし、宛先の番号の深度（図２２等に示すネットワークシステムの階層構造における深度であり、頂点を深度１として順次深度２，３，４、・・とする）と同じか、自機器よりも深い深度であれば、ＣＰＵは、親の機器にユニキャストメッセージを送信する。
（ｂ）もし、（ａ）以外の場合、自機器と同じ深度となるまで、宛先の番号を２で割り、その値が自機器の番号と異なる場合には、ＣＰＵは、親の機器にユニキャストメッセージを送信する。
（ｃ）（ａ）、（ｂ）以外の場合、ＣＰＵは、自機器より深度が１つ深い値になるまで宛先の番号を２で割り、自機器の子のどちらに接続しているかを判断し、接続している側の機器にユニキャスメッセージを送信する。
【０１１８】
図２９に、ユニキャストメッセージの場合の処理を示し、図３０にネットワークの深度を示す。
【０１１９】
図２９（ａ）において、自機器が「０１０１」であり、宛先の番号が「０１１１」の場合、図３０に示すように、自機器の深度が深度３で、宛先の番号の深度も深度３であるので、機器のＣＰＵは、親の機器にユニキャストメッセージを送信する。深度が自機器と同じ場合には、その機器には、親しかメッセージを届けることができないからである。
【０１２０】
図２９（ｂ）において、自機器が「０１０１」であり、宛先の番号が「１００１」の場合、図３０に示すように、宛先の番号の深度は深度４である。この「１００１」の深度３の値は「１００」であるが、これは自己の番号と異なる。そこで、この場合も、機器のＣＰＵは、メッセージを親に送信する。
【０１２１】
図２９（ｃ）において、自機器が「０１０１」であり、宛先の番号が「１０１０１」の場合、図３０に示すように、宛先の番号の深度は深度６である。この「１０１０１」の深度３の値は「１０１」であり、自機器と一致するので、この宛先の機器は、自機器の子に接続されていることになる。そこで、２つの接続のうちいずれに接続されているかを判断するため、深度４としたときの宛先の番号を参照すると「１０１０」となる。従って、機器のＣＰＵは、「１０１０」の子にメッセージを送信する。
【０１２２】
このようにして、ユニキャストコマンドを受け取ると、機器のＣＰＵは、このメッセージを宛先の機器に確実かつ効率的に送信する。なお、マルチキャストメッセージの場合は、ユニキャストメッセージの宛先が複数存在する場合であるため、それぞれの宛先についてユニキャストメッセージと同様に処理すればよい。
【０１２３】
ブロードキャストメッセージを受け取った場合、そのデータは自機器宛のものでもあるため、機器のＣＰＵは、メッセージを受け取り処理する。そして、機器のＣＰＵは、メッセージを送送信した機器以外の、自機器に接続されている機器にブロードキャストメッセージをそのまま転送する。
【０１２４】
図３１に、ブロードキャストメッセージの場合の処理を示す。自機器が「０１０１」であり、図３１（ａ）のように、自機器に接続されている子の一方からブロードキャストメッセージを受け取ると、機器のＣＰＵは、図３１（ｂ）のように、メッセージを送信した機器以外の、自機器に接続されている子及び親にともにブロードキャストメッセージを送信する。他の機器でも同様の処理が行われるため、ブロードキャストメッセージは速やかにネットワークシステム全体に伝播していく。
【０１２５】
以上のように、本実施形態では、親（ホスト）が存在していない状態から、自律的に親を設定してネットワークシステムを構築することができる。そして、構築されたネットワークシステムを用いて、ネットワークシステムを構成する全ての機器に同一の共有情報を配信することができる。共有情報を配信する際には、親において他の子が有している共有情報（仮共有情報）を収集して最終的な共有情報を作成することが必要であるが、本実施形態では、それぞれの機器が受け取った共有情報及び自機器の共有情報をマージ（合成）しつつ親に送信するので、親において共有情報を収集する際の負荷が著しく軽減される。
【０１２６】
＜第２実施形態＞
第１実施形態では、親において共有情報が作成されて他の機器に配信されるが、共有情報は各機器が保持していた共有情報（仮共有情報）をマージして作成されるものである。各機器の保持している共有情報に変更が生じると、この変更により更新された共有情報が最新の共有情報として他の機器に配信される。このため、ある機器がネットワーク１０から遮断されてオフライン状態となった場合に問題が生じ得る。
【０１２７】
すなわち、もしある機器がオフライン状態の間に、ネットワーク１０に接続された他の機器においてオフライン状態にある機器の情報が外部から変更されたとしても、オフライン状態にある当該機器が再びネットワーク１０に接続してオン状態となった場合に、当該機器の保持する共有情報がそのまま反映されてネットワークシステムにおける最新の共有情報として配信される。このため、外部から変更された情報が再び元の情報に意図せず復元されてしまう。
【０１２８】
そこで、本実施形態では、このような場合にも情報を正しく変更するための処理について説明する。
【０１２９】
図３２に、本実施形態における共有情報を示す。上述したように、ネットワークシステムにおける全ての機器（図では機器Ｘ，Ｙ，Ｚとする）は同一の共有情報Ａをそれぞれメモリに記憶している。ここで、共有情報Ａは、共通情報Ｆと固有情報Ｇから構成されるものとする。共通情報Ｆは、機器固有でない情報であり、具体的には各機器がネットワークシステムに登録されているか否かのbool情報（真（true）か偽（false）か）である。また、固有情報Ｇは、各機器固有の情報である。
【０１３０】
共通情報Ｆが、例えば
Ｅ−Ｘ＝false
Ｅ−Ｙ＝false
Ｅ−Ｚ＝false
であり、固有情報Ｇが、例えば
Ｄ−Ｘ＝on
Ｄ−Ｙ＝on
Ｄ−Ｚ＝on
とする。ここで、共通情報のfalseは登録されていることを示し、trueは登録されていないことを意味するものとする。
【０１３１】
図３３に、図３２の状態から機器Ｘがネットワーク１０から遮断された場合を示す。図において、ハッチングは遮断を示すものとする。そして、この遮断状態において、図３４に示すように、外部から固有情報Ｇのうち、Ｄ−Ｘがonからoffに書き換えられたものとする。外部とは、機器の動作や設定を制御するコントローラを意味し、ユーザがコントローラを操作して機器Ｙ及び機器ＺのＤ−Ｘをoffに書き換えた場合である。Ｄ−Ｘをonからoffに書き換えることは、ネットワーク１０から遮断されオフライン状態にある機器の登録を解除（unregister）することを意味する。
【０１３２】
機器Ｙ及び機器Ｚの固有情報ＧがＤ−Ｘ＝onからＤ−Ｘ＝offに書き換えられたことをトリガとして、機器Ｙ及び機器Ｚの共通情報Ｆも、Ｅ−Ｘ＝falseからＥ−Ｘ＝trueに変更される。図３５に、共通情報Ｆが変更された状態を示す。
【０１３３】
次に、図３５の状態において、機器Ｘが再びネットワーク１０に接続されオンライン状態になったものとする。この場合、図３６に示すように、ネットワークシステムに復帰した機器Ｘは、固有情報としてＤ−Ｘ＝on をメモリに記憶したままである。この固有情報Ｇが優先的に処理され、親を介して機器Ｙ及び機器Ｚに配信される。そうすると、機器ＹのＣＰＵ及び機器ＺのＣＰＵは、固有情報Ｇのうち、Ｄ−Ｘ＝offをＤ−Ｘ＝onに再び更新してしまう。
【０１３４】
他方、機器Ｙ及び機器Ｚの共通情報Ｆに関しては、機器Ｘがネットワーク１０から遮断されオフライン状態となっている間に外部から書き換えられたＥ−Ｘ＝trueとなっているため、機器Ｘの共通情報Ｆに関しては、図３７に示すように、Ｅ−Ｘ＝trueが配信され更新される。すると、機器ＸのＣＰＵは、共有情報Ａの中の、全ての機器に共通する共通情報ＦがＥ−Ｘ＝trueとなっているため、これをトリガとして固有情報ＧのＤ−Ｘ＝onをＥ−Ｘ＝trueと整合させるべく、Ｄ−Ｘ=offに書き換える。そして、この固有情報Ｇの変更は、機器Ｙ及び機器Ｚにも配信され、機器ＹのＣＰＵは及び機器ＺのＣＰＵは、固有情報ＧのＤ−Ｘ＝onをＤ−Ｘ＝offに変更する。
【０１３５】
固有情報Ｇの変更及び配信が完了した後、図３８に示すように、機器ＸのＣＰＵは、共通情報ＦのＥ−Ｘ＝trueをＥ−Ｘ＝falseに戻し、他の機器ＹのＣＰＵ及び機器ＺのＣＰＵも同様にtrueをfalseに変更する。
【０１３６】
このように、本実施形態では、共有情報Ａを共通情報Ｆと固有情報Ｇに分け、共通情報Ｆを用いて固有情報Ｇの値を調整することで、ある機器がネットワーク１０から遮断された状態において外部から設定が変更されても、この変更をネットワークシステムに復帰した機器を含めて正しく配信し反映することができる。
【０１３７】
＜第３実施形態＞
第１実施形態では、図１０に示すように、ネットワークシステムにおける任意の機器において共有情報に変更が生じた場合、この変更は順次１つ上の階層の機器に送信される。最終的に親まで共有情報が送信され、親において差分情報を作成して全ての子に配信している。差分情報を配信された各機器においてその差分情報を共有情報に反映させるのに時間を要する場合、この間にさらに特定の機器の共有情報に変更が生じる場合もあり得る。
【０１３８】
本実施形態では、共有情報の変更が連続的に生じた場合の処理について説明する。
【０１３９】
図３９に、ネットワーク上の機器(機器Ｘ，Ｙ，Ｚ)が存在し、それぞれ同一の共有情報をメモリに記憶しているものとする。この共有情報のバージョンをバージョン１とする。
【０１４０】
この状態で、図４０に示すように、機器Ｘに外部から共有情報のバージョン１をバージョン２にバージョンアップする要求が入力されたものとする。ここで、外部とは、第２実施形態と同様に、機器の動作や設定を制御するコントローラを意味し、ユーザがコントローラを操作してバージョンの変更要求を機器に入力した場合である。機器Ｘが親である場合、第１実施形態で説明したように、機器ＸのＣＰＵはバージョン１とバージョン２の差分情報を作成し、差分情報を機器Ｙ及び機器Ｚに配信する。機器ＹのＣＰＵ及び機器ＺのＣＰＵは、受け取った差分情報を用いてメモリに記憶されている共有情報をバージョン１からバージョン２にバージョンアップする。
【０１４１】
図４１に、機器Ｙ及び機器Ｚで差分情報を自機器の共有情報に適用している間に、機器Ｘに再び外部からバージョン２をバージョン３にバージョンアップする要求が入力された場合を示す。この場合、機器ＸのＣＰＵは、バージョン２とバージョン３の差分情報を作成する。機器ＸのＣＰＵは、機器Ｙ及び機器Ｚでは未だ差分情報を適用中であることを検知すると、作成した差分情報を機器Ｙ及び機器Ｚに配信することなく、メモリに記憶しておく。
【０１４２】
図４２に、機器Ｘにおいてバージョン２とバージョン３の差分情報をメモリに記憶しており、機器Ｙ及び機器Ｚにおいてバージョン１とバージョン２の差分情報を適用している間に、さらに外部からバージョン３からバージョン４にバージョンアップする要求が入力された場合を示す。この場合、機器ＸのＣＰＵは、バージョン３とバージョン４の差分情報を作成する。機器ＸのＣＰＵは、バージョン２とバージョン３の差分情報が未だ配信されずメモリに記憶していることを検知して、作成したバージョン３とバージョン４の差分情報を、メモリに記憶しており未だ配信されていないバージョン２とバージョン３の差分情報にマージ（合成）してメモリに記憶する。すなわち、機器ＸのＣＰＵは、これら２つの差分情報をマージして、バージョン２とバージョン４の差分情報を作成し、これをメモリに記憶する。
【０１４３】
図４３に、機器Ｙ及び機器Ｚにおいて差分情報の適用が完了し、機器Ｙ及び機器Ｚの共有情報がバージョン２に更新された場合を示す。機器ＹのＣＰＵ及び機器ＺのＣＰＵは、差分適用完了の応答メッセージを親である機器Ｘに返信する。
【０１４４】
すると、機器ＸのＣＰＵは、図４４に示すように、メモリに記憶したバージョン２とバージョン４の差分情報を機器Ｙ及び機器Ｚに配信する。機器ＹのＣＰＵ及び機器ＺのＣＰＵは、この差分情報を受け取ってメモリに記憶されている共有情報を再び更新する。
【０１４５】
図４５に、機器Ｙ及び機器Ｚにおいて差分情報の適用が完了した状態を示す。全ての機器Ｘ，Ｙ，Ｚにおいて、共有情報はバージョン４にバージョンアップされている。機器Ｙ及び機器Ｚにおいては、
バージョン１→バージョン２→バージョン４
とバージョンアップされており、バージョン３はスキップされている、あるいはバージョン３のバージョンアップはバージョン４に統合されているといえ、効率的な変更処理が可能となる。
【０１４６】
なお、本実施形態において、機器Ｘを親として説明したが、他の機器が親であっても同様であり、差分情報を作成して親に送信し、親において差分情報を配信する際に、子において以前の差分情報の適用が完了するまで作成した差分情報を保持し、新たな差分情報が生じればメモリに保持している差分情報とマージして更新し、子において差分情報の適用が完了したタイミングでマージ済みの差分情報を子に配信すればよい。
【０１４７】
以上、本発明の実施形態について説明したが、本発明はこれに限定されず種々の変更が可能である。
【０１４８】
上述の実施形態においては、機器間で親が決定され、決定された親が作成した設計図データに従って、ネットワークシステムが構成されるようになっている。これに限らず、例えば、あらかじめ親機器のメモリに、親であることの情報及び設計図データが記憶されており、親機器から配信される設計図データに従って、ネットワークシステムが構成されるようになっていてもよい。
【符号の説明】
【０１４９】
１〜６  機器、１０  ネットワーク、１１〜６１  ＣＰＵ（処理部）、１２〜６２  メモリ（記憶部）、１３〜６３  通信インタフェース、１４〜６４  音声信号処理部。
【図１】
0005858028.tif 000002
【図２】
0005858028.tif 000003
【図３】
0005858028.tif 000004
【図４】
0005858028.tif 000005
【図５】
0005858028.tif 000006
【図６】
0005858028.tif 000007
【図７】
0005858028.tif 000008
【図８】
0005858028.tif 000009
【図９】
0005858028.tif 000010
【図１０】
0005858028.tif 000011
【図１１】
0005858028.tif 000012
【図１２】
0005858028.tif 000013
【図１３】
0005858028.tif 000014
【図１４】
0005858028.tif 000015
【図１５】
0005858028.tif 000016
【図１６】
0005858028.tif 000017
【図１７】
0005858028.tif 000018
【図１８】
0005858028.tif 000019
【図１９】
0005858028.tif 000020
【図２０】
0005858028.tif 000021
【図２１】
0005858028.tif 000022
【図２２】
0005858028.tif 000023
【図２３】
0005858028.tif 000024
【図２４】
0005858028.tif 000025
【図２５】
0005858028.tif 000026
【図２６】
0005858028.tif 000027
【図２７】
0005858028.tif 000028
【図２８】
0005858028.tif 000029
【図２９】
0005858028.tif 000030
【図３０】
0005858028.tif 000031
【図３１】
0005858028.tif 000032
【図３２】
0005858028.tif 000033
【図３３】
0005858028.tif 000034
【図３４】
0005858028.tif 000035
【図３５】
0005858028.tif 000036
【図３６】
0005858028.tif 000037
【図３７】
0005858028.tif 000038
【図３８】
0005858028.tif 000039
【図３９】
0005858028.tif 000040
【図４０】
0005858028.tif 000041
【図４１】
0005858028.tif 000042
【図４２】
0005858028.tif 000043
【図４３】
0005858028.tif 000044
【図４４】
0005858028.tif 000045
【図４５】
0005858028.tif 000046