(57)【要約】【課題】ネットワーク内において所定の機能を実行する通信装置が、互いに近くに集まることがないように自律的に決定するための通信装置を提供する。【解決手段】通信装置は、第１変数と、所定機能の実行を示す第２変数を保持しており、第１変数を隣接装置に広告し、隣接装置が広告する第１変数と、自装置の第１変数及び第２変数に基づき自装置の第１変数を更新し、所定の機能を実行している場合、各隣接装置の第１変数に基づき、所定の機能の実行を移動させるか否かを判定し、移動させる場合には、さらに、移動先の隣接装置を決定し、決定した移動先の隣接装置に対して所定の機能の移動通知を行い、所定の機能の移動完了後、自装置の第２変数を所定の機能を実行していないことを示す値に更新する。【選択図】図２
2011077615.tif 000002
【特許請求の範囲】
【請求項１】
通信リンクにより直接接続している隣接通信装置のポテンシャル変数を保存し、隣接通信装置からポテンシャル変数を受信する度に、保存している該隣接通信装置のポテンシャル変数を更新する第１手段と、
自装置のポテンシャル変数及びリーダ変数を保存し、自装置のポテンシャル変数を隣接通信装置に送信する第２手段と、
各隣接通信装置のポテンシャル変数、自装置のポテンシャル変数及びリーダ変数に基づき自装置のポテンシャル変数を更新する第３手段と、
を備えており、所定の機能を実行していないときはリーダ変数を第１の値とし、前記所定の機能を実行しているときはリーダ変数を第１の値以外の値とする通信装置であって、
リーダ変数が第１の値ではない場合に、各隣接通信装置のポテンシャル変数に基づき、前記所定の機能の実行を隣接通信装置に移動させるか否かを判定し、移動させる場合には、さらに、移動先の隣接通信装置を決定する第４手段と、
第４手段が決定した移動先の隣接通信装置に対して前記所定の機能の移動通知を行い、前記所定の機能の移動完了後、第２手段が保存しているリーダ変数を第１の値に更新する第５手段と、
を備えている通信装置。
【請求項２】
第３手段は、所定の計算式により自装置のポテンシャル変数を更新し、
ポテンシャル変数の値を高さとすると、前記計算式は、複数の前記通信装置から構成されるネットワークにおけるポテンシャル変数を、リーダ変数が第１の値ではない通信装置の位置を頂点とする山の形状に分布させるものである、
請求項１に記載の通信装置。
【請求項３】
前記計算式は、自装置のポテンシャル変数に対して、隣接通信装置のポテンシャル変数から自装置のポテンシャル変数を減じた値を全隣接通信装置に渡り積算した値に基づく値を加算し、自装置のポテンシャル変数に基づく値を減じ、リーダ変数が第１の値ではない場合には、さらに、リーダ変数に基づく値を加算することで、自装置の更新後のポテンシャル変数を求める、
請求項２に記載の通信装置。
【請求項４】
第４手段は、隣接通信装置のポテンシャル変数の平均値と、隣接通信装置のポテンシャル変数の最小値との差の大小を閾値判定し、差が大きいことを、前記所定の機能の実行を隣接通信装置に移動させるための条件の１つとする、
請求項１から３のずれか１項に記載の通信装置。
【請求項５】
第４手段は、隣接通信装置の中でポテンシャル変数の最も小さい隣接通信装置を移動先に決定する、
請求項１から４のいずれか１項に記載の通信装置。
【請求項６】
第５手段は、隣接通信装置から所定の機能の移動通知を受けたときに、リーダ変数が第１の値ではない場合、前記移動通知を行った隣接通信装置に移動不可を通知し、リーダ変数が第１の値である場合、前記所定の機能の実行を開始後、リーダ変数をあらかじめ設定された第２の値に更新し、前記移動通知を行った隣接通信装置に移動完了を通知する、
請求項１から５のいずれか１項に記載の通信装置。
【請求項７】
それぞれがリーダ変数を管理する複数の通信装置を含み、各通信装置は、所定の機能を実行していないときはリーダ変数を第１の値とし、前記所定の機能を実行しているときはリーダ変数を第１の値以外の値とするシステムにおいて、前記所定の機能を実行する通信装置を変更する方法であって、
各通信装置が、通信リンクにより直接接続している隣接通信装置にポテンシャル変数を広告する第１ステップと、
各通信装置が、隣接通信装置からポテンシャル変数を受信した場合において、該隣接通信装置のポテンシャル変数を既に保存している場合には、保存している該隣接通信装置のポテンシャル変数を更新し、該隣接通信装置のポテンシャル変数を保存していない場合には、該隣接通信装置のポテンシャル変数を保存する第２ステップと、
各通信装置が、各隣接通信装置のポテンシャル変数、自装置のポテンシャル変数及び自装置のリーダ変数に基づき、自装置のポテンシャル変数を更新する第３ステップと、
を繰り返し、
前記所定の機能を実行している通信装置が、各隣接通信装置のポテンシャル変数に基づき、前記所定の機能の実行を隣接通信装置に移動させるか否かを判定し、移動させる場合には、さらに、移動先の隣接通信装置を決定する第４ステップと、
前記所定の機能を移動させると決定した通信装置が、前記移動先の隣接通信装置に対して移動通知を行い、前記移動先の隣接通信装置から移動完了を通知された場合、前記所定の機能を停止して、自装置のリーダ変数を第１の値にする第５ステップと、
を備えている方法。
【請求項８】
第３ステップにおいて、更新後のポテンシャル変数は、所定の計算式により求められ、
ポテンシャル変数の値を高さとすると、前記計算式は、前記システム内の各通信装置のポテンシャル変数を、リーダ変数が第１の値ではない通信装置の位置を頂点とする山の形状に分布させるものであり、
前記山の頂点の高さは、対応する通信装置のリーダ変数の値により異なる、
請求項７に記載の方法。
【請求項９】
各通信装置は、隣接通信装置から所定の機能の移動通知を受けたときに、自装置のリーダ変数が第１の値ではない場合、前記移動通知を行った隣接通信装置に移動不可を通知し、自装置のリーダ変数が第１の値である場合、前記所定の機能の実行を開始後、自装置のリーダ変数をあらかじめ設定された第２の値に設定して、前記移動通知を行った隣接通信装置に移動完了を通知し、
各通信装置に設定される第２の値は、その通信装置の処理能力に応じて決定された値である、
請求項７又は８に記載の方法。
【請求項１０】
請求項１から６のいずれか１項に記載の通信装置としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを構成する多数の通信装置の中から、所定の機能、例えば、サーバ機能を実行する通信装置を自律的に、かつ、これら装置が互いに近くに集まらないように決定する技術に関する。
【背景技術】
【０００２】
Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）ネットワークとは、オーバレイ・ネットワークとも呼ばれ、例えば、インターネットに接続する通信装置間で構成される仮想的なネットワークである。これら、Ｐ２Ｐネットワークでは、Ｐ２Ｐネットワークを構成する通信装置が対等の関係にあり、サーバとしての機能や、クライアントとしての機能をそれぞれの通信装置が提供している。
【０００３】
また、センサ・ネットワークとは、環境を測定するセンサ・デバイスを分散配置して、広範囲にわたる環境情報を取得するネットワークである。センサ・ネットワークには、Ｓｉｎｋノードと呼ばれるノードが存在する。Ｓｉｎｋノードとは、当該Ｓｉｎｋノードの周囲のノードが測定した測定値を収集して、測定値を処理する装置に送信するゲートウェイとしての役割を果たしている。これらセンサ・ネットワークにおけるルーティング技術が、非特許文献１及び２には記載されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｃ．Ｉｎｔａｎａｇｏｎｗｉｗａｔ、  ｅｔ  ａｌ．、“Ｄｉｒｅｃｔｅｄ  Ｄｉｆｆｕｓｉｏｎ  ｆｏｒ  Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｉｎｇ"、ＩＥＥＥ／ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｎｅｔｗｏｒｋｉｎｇ、ＶＯＬ．１１  Ｎｏ．  1、ｐｐ２、２００３年
【非特許文献２】Ｆ．Ｙｅ、ｅｔ  ａｌ．、“ＧＲＡｄｉｅｎｔ  Ｂｒｏａｄｃａｓｔ：  Ａ  Ｒｏｂｕｓｔ  Ｄａｔａ  Ｄｅｌｉｖｅｒｙ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ”、ＡＣＭ  Ｗｉｒｅｌｅｓｓ  Ｎｅｔｗｏｒｋｓ、  Ｖｏｌ．１１  Ｎｏ．３、ｐｐ．２８５−２９８（１４）、２００５年
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、Ｐ２Ｐネットワークや、センサ・ネットワークの様に、複数の通信装置から構成されるネットワークにおいて、所定の機能、例えば、サーバ機能や、Ｓｉｎｋノードとしての機能を所定の台数だけ設けたいとする。他の通信装置は、この所定の機能にアクセスするが、トラヒックを分散し、かつ、伝送遅延を小さくするためには、所定の機能を実行する装置を、他の装置からの平均的な距離が最小となる位置に設置することが理想的である。なお、ここでの距離は物理的な距離ではなく、所定の通信装置に辿り着くまでに経由する他の通信装置の数である。
【０００６】
ネットワークが固定的であり、ネットワークに新たに参加する装置や、このネットワークから離脱する装置が発生しない場合には、ネットワークの構成から、所定の機能を実行する装置を決定するのみで良い。しかしながら、通信装置間の接続関係が時間と共に変化したり、Ｐ２Ｐネットワークの様に、ネットワークに新たに参加する装置や、このネットワークから離脱する装置が発生したりする場合には、ネットワーク構成の変化に伴い、所定の機能を実行する通信装置を変更させる仕組みが必要となる。このための方法の１つとして、全ネットワークの構成を管理する管理装置を導入し、この管理装置が、ネットワーク構成の変化に伴い、所定の機能を実行する装置を決定することが考えられるが、通信装置間の接続関係の変化、新たな通信装置の参加、既存の通信装置の離脱を、総て、管理装置に通知しなければならず、処理が煩雑となる。
【０００７】
なお、上記Ｐ２Ｐネットワークにおいて、例えば、あるファイ転送に係った通信装置は、そのファイルを蓄積して、そのファイルのサーバ装置として動作するが、サーバ装置の数を制御することはできず、また、その位置も、他のサーバ装置との関係により決まるものではない。また、上記センサ・ネットワークにおいても、Ｓｉｎｋノードは固定的であり、センサの配置状況において、自律的に、その機能を担う装置を変更することはない。
【０００８】
したがって、本発明は、ネットワーク全体を管理する管理装置を設けることなく、ネットワークを構成する各通信装置の中で、所定の機能を実行する所定数の通信装置を、ネットワーク構成の変更に応じて自律的に、かつ、これら通信装置が互いに近くに集まらないように変更する方法と、そのための通信装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明における通信装置によれば、
通信リンクにより直接接続している隣接通信装置のポテンシャル変数を保存し、隣接通信装置からポテンシャル変数を受信する度に、保存している該隣接通信装置のポテンシャル変数を更新する第１手段と、自装置のポテンシャル変数及びリーダ変数を保存し、自装置のポテンシャル変数を隣接通信装置に送信する第２手段と、各隣接通信装置のポテンシャル変数、自装置のポテンシャル変数及びリーダ変数に基づき自装置のポテンシャル変数を更新する第３手段とを備えており、所定の機能を実行していないときはリーダ変数を第１の値とし、前記所定の機能を実行しているときはリーダ変数を第１の値以外の値とする通信装置であって、リーダ変数が第１の値ではない場合に、各隣接通信装置のポテンシャル変数に基づき、前記所定の機能の実行を隣接通信装置に移動させるか否かを判定し、移動させる場合には、さらに、移動先の隣接通信装置を決定する第４手段と、第４手段が決定した移動先の隣接通信装置に対して前記所定の機能の移動通知を行い、前記所定の機能の移動完了後、第２手段が保存しているリーダ変数を第１の値に更新する第５手段とを備えていることを特徴とする。
【００１０】
本発明の通信装置における他の実施形態によれば、
第３手段は、所定の計算式により自装置のポテンシャル変数を更新し、ポテンシャル変数の値を高さとすると、前記計算式は、複数の前記通信装置から構成されるネットワークにおけるポテンシャル変数を、リーダ変数が第１の値ではない通信装置の位置を頂点とする山の形状に分布させるものであることも好ましい。
【００１１】
また、本発明の通信装置における他の実施形態によれば、
前記計算式は、自装置のポテンシャル変数に対して、隣接通信装置のポテンシャル変数から自装置のポテンシャル変数を減じた値を全隣接通信装置に渡り積算した値に基づく値を加算し、自装置のポテンシャル変数に基づく値を減じ、リーダ変数が第１の値ではない場合には、さらに、リーダ変数に基づく値を加算することで、自装置の更新後のポテンシャル変数を求めることも好ましい。
【００１２】
さらに、本発明の通信装置における他の実施形態によれば、
第４手段は、隣接通信装置のポテンシャル変数の平均値と、隣接通信装置のポテンシャル変数の最小値との差の大小を閾値判定し、差が大きいことを、前記所定の機能の実行を隣接通信装置に移動させるための条件の１つとすることも好ましい。
【００１３】
さらに、本発明の通信装置における他の実施形態によれば、
第４手段は、隣接通信装置の中でポテンシャル変数の最も小さい隣接通信装置を移動先に決定することも好ましい。
【００１４】
さらに、本発明の通信装置における他の実施形態によれば、
第５手段は、隣接通信装置から所定の機能の移動通知を受けたときに、リーダ変数が第１の値ではない場合、前記移動通知を行った隣接通信装置に移動不可を通知し、リーダ変数が第１の値である場合、前記所定の機能の実行を開始後、リーダ変数をあらかじめ設定された第２の値に更新し、前記移動通知を行った隣接通信装置に移動完了を通知することも好ましい。
【００１５】
本発明における方法によれば、
それぞれがリーダ変数を管理する複数の通信装置を含み、各通信装置は、所定の機能を実行していないときはリーダ変数を第１の値とし、前記所定の機能を実行しているときはリーダ変数を第１の値以外の値とするシステムにおいて、前記所定の機能を実行する通信装置を変更する方法であって、各通信装置が、通信リンクにより直接接続している隣接通信装置にポテンシャル変数を広告する第１ステップと、各通信装置が、隣接通信装置からポテンシャル変数を受信した場合において、該隣接通信装置のポテンシャル変数を既に保存している場合には、保存している該隣接通信装置のポテンシャル変数を更新し、該隣接通信装置のポテンシャル変数を保存していない場合には、該隣接通信装置のポテンシャル変数を保存する第２ステップと、各通信装置が、各隣接通信装置のポテンシャル変数、自装置のポテンシャル変数及び自装置のリーダ変数に基づき、自装置のポテンシャル変数を更新する第３ステップとを繰り返し、前記所定の機能を実行している通信装置が、各隣接通信装置のポテンシャル変数に基づき、前記所定の機能の実行を隣接通信装置に移動させるか否かを判定し、移動させる場合には、さらに、移動先の隣接通信装置を決定する第４ステップと、前記所定の機能を移動させると決定した通信装置が、前記移動先の隣接通信装置に対して移動通知を行い、前記移動先の隣接通信装置から移動完了を通知された場合、前記所定の機能を停止して、自装置のリーダ変数を第１の値にする第５ステップとを備えていることを特徴とする。
【００１６】
本発明の方法における他の実施形態によれば、
第３ステップにおいて、更新後のポテンシャル変数は、所定の計算式により求められ、ポテンシャル変数の値を高さとすると、前記計算式は、前記システム内の各通信装置のポテンシャル変数を、リーダ変数が第１の値ではない通信装置の位置を頂点とする山の形状に分布させるものであり、前記山の頂点の高さは、対応する通信装置のリーダ変数の値により異なることも好ましい。
【００１７】
また、本発明の方法における他の実施形態によれば、
各通信装置は、隣接通信装置から所定の機能の移動通知を受けたときに、自装置のリーダ変数が第１の値ではない場合、前記移動通知を行った隣接通信装置に移動不可を通知し、自装置のリーダ変数が第１の値である場合、前記所定の機能の実行を開始後、自装置のリーダ変数をあらかじめ設定された第２の値に設定して、前記移動通知を行った隣接通信装置に移動完了を通知し、各通信装置に設定される第２の値は、その通信装置の処理能力に応じて決定された値であることも好ましい。
【００１８】
本発明におけるプログラムによれば上記通信装置としてコンピュータを機能させることを特徴とする。
【発明の効果】
【００１９】
ネットワーク全体を管理する管理装置を設けることなく、ネットワークを構成する各通信装置の中で、所定の機能を実行する所定数の通信装置を、ネットワーク構成の変更に応じて自律的に、かつ、これら通信装置が互いに近くに集まらないように決定することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明によるシステムを示す図である。
【図２】本発明による通信装置の簡略化した構成図である。
【図３】処理の流れを説明する図である。
【発明を実施するための形態】
【００２１】
本発明を実施するための形態について、以下では図面を用いて詳細に説明する。
【００２２】
図１は、本発明によるシステムを示す図であり、本システムは、図１において四角形で表されている本発明による通信装置を複数台含んでいる。なお、図１において、各通信装置を接続する線は通信リンクである。本発明の通信装置により構成されるネットワークにおいては、例えば、Ｐ２Ｐネットワークや、無線のアドホック・ネットワークの様に、ネットワーク構成、つまり、通信装置間の通信リンクや、ネットワークに参加している通信装置が、時間の経過により変化する可能性がある。なお、以下の説明において、隣接装置とは、ある通信装置から見て、通信リンクにより直接接続されている通信装置を意味するものとする。
【００２３】
また、図１において、斜線で塗り潰された四角形は、サーバ機能の様な、所定の機能を実行している通信装置を示している。本発明においては、ネットワーク全体の構成を管理する装置を設けることなく、所定の機能を実行している通信装置が互いに近くにならない様に自律的に変更を行う。また、所定の機能を実行している通信装置の数は一定に保たれる。
【００２４】
図２に、本発明による通信装置の簡略化した構成を示す。図２に示す様に、本発明による通信装置は、他装置変数管理部１と、ポテンシャル計算部２と、自装置変数管理部３と、移動判定部４と、移動処理部５とを備えている。
【００２５】
他装置変数管理部１は、隣接装置のポテンシャル変数及びリーダ変数を、当該隣接装置の識別子に関連付けて保持している。具体的には、他装置変数管理部１は、隣接装置が所定のスケジュールに基づいて広告する、当該隣接装置のポテンシャル変数及びリーダ変数を含む信号を受信する度に、保持している当該隣接装置のポテンシャル変数及びリーダ変数を受信した値に更新し、ある通信装置と通信リンクが新たに設定され、これにより当該通信装置から初めて広告を受信した場合には、広告に含まれる当該通信装置の識別子に関連付けて、広告に含まれるポテンシャル変数及びリーダ変数を保存する。ここで、ポテンシャル変数とは、各通信装置が、所定の機能の実行を移動させるか否かを判定するために使用する値であり、リーダ変数とは、所定の機能を実行している装置においては正の定数Ｑを、それ以外の装置においては０をとる変数であるが、その詳細については後述する。
【００２６】
自装置変数管理部３は、自装置のポテンシャル変数と、リーダ変数を保持しており、所定のスケジュールに基づいて自装置のポテンシャル変数及びリーダ変数を隣接装置に広告する。
【００２７】
ポテンシャル計算部２は、他装置変数管理部１が保持している各隣接装置のポテンシャル変数と、自装置変数管理部３が保持している自装置のポテンシャル変数及びリーダ変数に基づき、所定のスケジュールで指定されるタイミングにおいて、自装置のポテンシャル変数の値を新たに決定し、自装置変数管理部３は、保持している自装置のポテンシャル変数を、ポテンシャル計算部２が決定した値に更新する。
【００２８】
移動判定部４は、自装置変数管理部３が保持しているリーダ変数がＱである場合、つまり、現在、自装置が所定の機能を実行している場合、所定のスケジュールで指定されるタイミングにおいて、自装置のポテンシャル変数と、他装置変数管理部１が管理している隣接装置のポテンシャル変数から、所定の機能の実行を隣接装置に移動させるか否を判定し、移動させる場合には、さらに、移動先の隣接装置を決定する。移動処理部５は、移動判定部４が所定の機能を移動させると判定した場合、移動先の隣接装置と、所定の機能の実行を移動させるためのメッセージを交換して、所定の機能の移動処理を完了させる。
【００２９】
続いて、本発明によるシステムの動作について説明する。なお、初期状態において、所定数の通信装置を適当に選択し、選択した通信装置の自装置変数管理部３には、リーダ変数としてＱを設定し、それ以外の通信装置の自装置変数管理部３には、リーダ変数として０を設定する。つまり、所定の機能の実行を行う通信装置を、最初に、所定数だけ任意に選択する。また、総ての通信装置の自装置変数管理部３には、ポテンシャル変数として、任意の同じ値、例えば、０を設定する。
【００３０】
本実施形態において、ポテンシャル計算部２は、自装置のポテンシャル変数を、更新間隔Ｉｃのタイミングにて周期的に更新し、自装置変数管理部３は、ｍ×Ｉｃに１回、自装置のポテンシャル変数を広告し、リーダ変数がＱである通信装置の移動判定部４は、ｎ×Ｉｃに１回、所定の機能の移動判定を行う。なお、ｍ及びｎは整数である。図３に、ｍ＝２、ｎ＝４の場合における処理の流れを示す。
【００３１】
続いて、ポテンシャル計算部２における、自装置のポテンシャル変数の更新処理について説明する。ポテンシャル計算部２は、自装置変数管理部３が保持しているポテンシャル変数をｕ、リーダ変数をｓ、他装置変数管理部１が保持している隣接装置ｋのポテンシャル変数をｖｋとすると、自装置の更新後のポテンシャル変数ｕｎｅｗを、以下の式（１）により求める。
【００３２】
【数１】
2011077615.tif 000003
【００３３】
なお、式（１）において、ａ、ｂ及びｃは正の定数であり、Δｔ及びΔｘは、正の小さな定数であり、総ての通信装置のポテンシャル計算部２に対して同じ値をあらかじめ設定しておく。また、式（１）においてΣは、総ての隣接装置について足し合わせることを意味している。
【００３４】
式（１）は、ｎ次元ユークリッド空間における以下の式（２）を、時間及び空間について離散化した式と考えることができる。つまり、Δｔは偏微分方程式を数値計算する際に一般的に行われる時間を離散化するための値であり、Δｘは偏微分方程式を数値計算する際に一般的に行われる空間を離散化するための値である。なお、本発明におけるシステムは、ｎ次元ユークリッド空間と異なり、隣接する通信装置の数が一定ではないため、式（１）においては、各隣接装置のポテンシャル変数と自装置のポテンシャル変数との差を積算している。
【００３５】
【数２】
2011077615.tif 000004
であり、ａ、ｂ及びｃは、式（１）と同じく正の定数である。また、式（２）の、
【００３６】
【数３】
2011077615.tif 000005
はラプラシアンとも呼ばれ、ｎ次元ユークリッド空間では以下の様に定義される。
【００３７】
【数４】
2011077615.tif 000006
【００３８】
式（２）（よって式（１）も）は、拡散方程式と呼ばれるクラスの微分方程式を変形したものである。式（１）及び式（２）の定数ａを含む項は拡散項、定数ａは拡散係数と呼ばれることがあり、物理的には熱や化学物質が空間中を拡散していくことを表している。式（１）において、自装置のポテンシャル変数ｕが、隣接装置のポテンシャル変数ｖより平均して大きい場合、定数ａを含む項は、更新後のポテンシャル変数ｕｎｅｗを小さくする様に働き、自装置のポテンシャル変数ｕが、隣接装置のポテンシャル変数ｖより平均して小さい場合、定数ａを含む項は、更新後のポテンシャル変数ｕｎｅｗを大きくする様に働き、自装置のポテンシャル変数ｕが、隣接装置のポテンシャル変数ｖの平均とほぼ等しい場合、定数ａを含む項は、更新後のポテンシャル変数ｕｎｅｗを、あまり変化させない。つまり、定数ａを含む項は、隣接装置と自装置のポテンシャル変数との関係に応じて、更新後のポテンシャル変数ｕｎｅｗを増減させる様に作用し、変数ａの値が大きい程、更新後のポテンシャル変数ｕｎｅｗを大きく変化させる。
【００３９】
また、定数ｂを含む項は減衰項、定数ｂは減衰係数と呼ばれることがあり、物理的には様々なエネルギーが摩擦などで失われていく度合いを表す。式（１）において、定数ｂの値及び現在のポテンシャル変数ｕが大きい程、更新後のポテンシャル変数ｕｎｅｗを小さくする様に働く。さらに、定数ｃを含む項は、ポテンシャル変数ｕの時間的な増加の度合いを決定する。式（１）においては、リーダ変数ｓ＝Ｑである場合のみ、この項が働き、更新後のポテンシャル変数ｕｎｅｗを大きくする。しかしながら、定数ｂを含む項が、更新後のポテンシャル変数ｕｎｅｗが時間と共に限りなく大きくなることを抑える。
【００４０】
各通信装置が、ポテンシャル変数を更新していくと、式（１）の定数ｃを含む項の働きにより、所定の機能を実行している通信装置のポテンシャル変数ｕが、所定の機能を実行していない通信装置のポテンシャル変数ｕより大きくなる。また、所定の機能を実行していない通信装置のポテンシャル変数ｕは、所定の機能を実行している通信装置より離れるに従い小さくなる。つまり、式（１）は、ポテンシャル変数を高さとすると、ポテンシャル変数の分布を、所定の機能を実行している通信装置を頂点とする山の形状にするものであり、定数ａ、ｂ、ｃの大きさを調整することで、山の高さや、その分布の形成速度を調整することができる。一例として、ａ＝１００、ｂ＝１０、ｃ＝１であり、Δｘ＝１０−８程度のオーダ、Δｔ＝１０−３程度のオーダが利用できる。
【００４１】
続いて、リーダ変数がＱである通信装置の移動判定部４における移動判定について説明する。
【００４２】
（手順１−１）移動判定部４は、自装置変数管理部３から、自装置のポテンシャル変数ｕを取得し、他装置変数管理部１から、各隣接装置のポテンシャル変数ｖをそれぞれ取得し、ポテンシャル変数が最小の通信装置を判定する。自装置のポテンシャル変数が最小である場合には、“移動なし”と判定して処理を終了し、ポテンシャル変数が最小の通信装置が隣接装置である場合、その隣接装置を移動先装置とする。なお、ポテンシャル変数が最小の隣接装置が複数ある場合には、その中から任意の隣接装置を１つ選択し、選択した隣接装置を移動先装置とする。
【００４３】
（手順１−２）移動判定部４は、他装置変数管理部１から取得する総ての隣接装置のポテンシャル変数ｖの平均値Ｖａを計算し、さらに、選択した移動先装置のポテンシャル変数ｖｘとの差の絶対値Ｄｉｆｆ＝｜ｖｘ−Ｖａ｜を計算する。
【００４４】
（手順１−３）移動判定部４は、差の絶対値Ｄｉｆｆが、所定の閾値以下の場合には、“移動なし”と判定して処理を終了する。
【００４５】
（手順１−４）移動判定部４は、他装置変数管理部１から移動先装置のリーダ変数を読み出し、移動先装置のリーダ変数が０であれば、“移動あり”と判定し、移動処理部５に、所定の機能の移動先装置への移動処理を開始する様に指示する。一方、移動先装置のリーダ変数がＱである場合、“移動なし”と判定する。
【００４６】
本発明においては、上記処理から明らかな様に、隣接装置のポテンシャル変数の最小値が、隣接装置のポテンシャル変数の平均値から大きくずれている場合に移動を行うと判定するものであり、閾値には適当な値をあらかじめ選択しておく。なお、閾値を小さくしすぎると、所定の機能が頻繁に移動してシステムが不安定になり、閾値を大きくしすぎると、隣接装置のポテンシャル変数の差が大きいにも係わらず、所定の機能が移動しなくなり、所定の機能を実行する通信装置が固定化されることになる。
【００４７】
なお、手順１−１において、ポテンシャル変数が最小の通信装置が自装置である場合には、“移動なし”と判定するが、式（１）の説明から明らかな様に、所定の機能を実行している通信装置のポテンシャル変数が最小となるのは、この通信装置が所定の機能の実行を開始した直後のみであり、過渡状態において、さらに、所定の機能を移動させることを防ぐために行っている。なお、所定の機能の実行を開始してから最初の移動判定までに、数回ポテンシャル変数の更新を行う場合、つまり、図３におけるｎの値が、最初の移動判定までにポテンシャル変数が隣接装置のポテンシャル変数より大きくなるのに十分な値である場合には、手順１−１において、自装置のポテンシャル変数を考慮することなく、ポテンシャル変数の一番小さい装置を移動先装置とすることができる。また、手順１−４において、移動先装置のリーダ変数の値を参照して移動判定を行っているが、同様の処理を、後述する移動処理においても行うため、手順１−４については省略することができる。なお、この場合、自装置変数管理部３は、リーダ変数を広告する必要はなく、よって、他装置変数管理部１は、隣接装置のリーダ変数を管理する必要もない。
【００４８】
続いて、移動判定部４が“移動あり”と判定した場合に、移動処理部５が実行する移動処理について説明する。
【００４９】
（手順２−１）移動元装置、つまり、“移動あり”と判定した、現在所定の機能を実行している通信装置の移動処理部５は、移動先装置の移動処理部５に移動要求メッセージを送信する。移動要求メッセージには、移動元装置のリーダ変数ｓの値（つまり、Ｑ）を格納する。
【００５０】
（手順２−２）移動先装置の移動処理部５は、移動要求メッセージを受信した場合、移動先装置の自装置変数管理部３が保持しているリーダ変数の値を確認し、リーダ変数の値が既にＱであれば、つまり、移動先装置が、既に、所定の機能を実行している場合には、移動元装置に移動不可メッセージを送信する。また、リーダ変数の値が０であれば、自装置変数管理部３が保持しているリーダ変数の値をＱに設定し、所定の機能の実行を開始させ、所定の機能の実行開始後、移動完了メッセージを移動元装置に送信する。なお、所定の機能を実行するために必要なデータを、移動元装置から移動先装置に転送する必要がある場合には、移動完了メッセージを移動元装置に送信する前に、転送を完了させる。
【００５１】
（手順２−３）移動元装置の移動処理部５は、移動先装置から移動完了メッセージを受信した場合、自装置変数管理部３が保持しているリーダ変数の値を０に設定し、所定の機能の実行を停止させる。なお、移動先装置から移動不可メッセージを受信した場合には、そのまま移動処理を中止する。
【００５２】
所定の機能を実行している通信装置が互いに近い位置にある場合、この互いに近い領域内の通信装置のポテンシャル変数がその周囲の通信装置のポテンシャル変数より大変大きくなる。したがって、所定の機能を実行している通信装置の内、この領域の端にある通信装置においては、その隣接装置のポテンシャル変数に大きな差が生じ、移動判定処理により“移動あり”との判定になる。よって、所定の機能を実行する通信装置が、前記領域の周囲の通信装置の中でポテンシャル変数の一番小さい通信装置に移動し、移動先の通信装置のポテンシャル変数が増加することになる。この処理を繰り返すことで、ポテンシャル変数の分布は、それを高さにたとえると、その頂点が互いに離れた位置で安定することになる。ポテンシャル変数の頂点に対応する通信装置は、所定の機能を実行している通信装置であり、よって、自律的に、所定の機能を実行する通信装置が、互いに離れた位置となる。ただし、本発明による方法は、所定の機能を実行する通信装置を最適な位置に、つまり、各通信装置からの平均的な距離を最小にするものではない。しかしながら、総ての通信装置とその接続状態を管理することなく、所定の機能を実行している通信装置を互いに近くにならない様に配置することができる。
【００５３】
なお、本発明においては、ポテンシャル変数の分布において山の頂点となっている通信装置が所定の機能を実行しているため、この所定の機能にアクセスしたい場合、通信装置は、隣接装置の中で、ポテンシャル変数が最大の通信装置に信号を送信すれば良い。信号を受信した通信装置は、自装置が所定の機能を実行していない場合、さらに、隣接装置の中で、ポテンシャル変数が最大の通信装置に信号を転送することで、最終的には、所定の機能を実行している通信装置に信号が到達することになる。
【００５４】
また、所定の機能を実行している通信装置の数を一定に保つため、所定の機能を実行している通信装置がネットワークから離脱する場合には、上記手順に係わらず、リーダ変数がＱではない任意の隣接装置に、手順（２−１）に記載の移動要求メッセージを送信し、当該隣接装置から移動完了メッセージを受信した後に離脱を行うものとする。なお、移動要求メッセージを送信する隣接装置については、ポテンシャル変数が最小の隣接装置とすることが好ましい。
【００５５】
さらに、上述した実施形態において、所定の機能を実行している通信装置のリーダ変数ｓの値は、いずれも同じ正の定数Ｑとしていたが、各通信装置の処理能力に応じて異なる値を設定しても良い。つまり、各通信装置には、あらかじめその通信装置の処理能力に応じた値を設定しておき、各通信装置は、所定の機能を実行していない場合には、リーダ変数ｓに０を設定し、所定の機能を実行している場合には、リーダ変数ｓに、その通信装置に設定された値を設定する形態であっても良い。なお、通信装置の処理能力が高い程、このあらかじめ設定する値を大きくする。
【００５６】
Ｑの値が総ての通信装置で同一である場合、所定の機能を実行している通信装置のポテンシャル変数ｕの値はほぼ等しくなる。これに対して、各通信装置でＱの値を異なるものとすると、Ｑの値が他より大きな通信装置が所定の機能を実行している場合、この通信装置のポテンシャル変数ｕの値は、所定の機能を実行している他の通信装置のポテンシャル変数ｕより大きくなる。つまり、ポテンシャル変数ｕの分布は、所定の機能を実行している通信装置を頂点とする複数の山の形状となるが、Ｑの値を異ならせた場合、Ｑの値が大きな通信装置により生じる山は、Ｑの値が小さな通信装置により生じる山より高くなる。山が高いことは、裾野の領域が大きいことを意味し、よって、この通信装置が提供する所定の機能を利用する通信装置が、他の通信装置が提供する所定の機能を利用する通信装置より増加することになる。つまり、通信装置の処理能力に応じた負荷の振り分けが実現できる。なお、各通信装置のＱの値については、ＣＰＵのクロック数、メモリ量、利用可能な帯域、ストレージ残量のいずれか、あるいはそれらの組合せを、所定の重さで重み付けして決定する。
【００５７】
なお、本発明による通信装置は、コンピュータを図２の各部として機能させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。さらに、本発明は、ハードウェア及びソフトウェアの組合せによっても実現可能である。
【符号の説明】
【００５８】
１  他装置変数管理部
２  ポテンシャル計算部
３  自装置変数管理部
４  移動判定部
５  移動処理部
【図１】
2011077615.tif 000007
【図２】
2011077615.tif 000008
【図３】
2011077615.tif 000009