説明

通信装置、ヘルスチェック間隔調整方法およびヘルスチェック間隔調整プログラム

【課題】通信装置の負荷の変化に対応して、柔軟にヘルスチェックの間隔を変更することが可能な通信装置を提供する。
【解決手段】本発明に係る通信装置100は、通信における優先度を指定するアプリケーション110と、アプリケーションをネットワーク上の他の通信装置と接続して通信を行う通信手段120と、通信手段が通信を行っている間にプロセッサの負荷を測定する負荷計測手段132と、プロセッサの負荷および優先度に基づいてヘルスチェックを行う間隔を調整するヘルスチェック間隔調整手段131と、ヘルスチェック間隔調整手段が調整した間隔でヘルスチェックを実行するヘルスチェック実行手段134とを有することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信網においてヘルスチェックを行う技術に関し、特に通信機器に過大な負荷をかけずにヘルスチェックを行う技術に関する。
【背景技術】
【0002】
ネットワークが普及し、またその中でも映像や音声などのようなリッチコンテンツの利用が増えているので、ネットワークを介して交換されるデータの量は増大する一方である。そのようなネットワークにおいて、通信機器、回線、端末などの異常を検出する技術が重要性を増しているのは言うまでもない。特に、リッチコンテンツを利用した通信においては、現在行われている通信の品質を劣化させることなく、異常を検出することが求められる。
【0003】
異常を検出する方法で一般的に行われているのが、ヘルスチェックと呼ばれる方法である。ヘルスチェックは、専用のパケット(以後ヘルスパケットという)を現在行われている通信のパケットの中に交えて送信し、チェックの対象となるコンピュータやネットワーク機器(以後チェック対象装置という)からの返信を受信して、チェック対象装置の正常な動作を確認するという手法である。
【0004】
ヘルスチェックによって、ネットワークや装置の異常を外部の監視装置から検出することが可能である。また、ヘルスパケットで送信するコマンドの種類によって、チェック対象装置のどの部分で異常が生じているかを特定することもできる。たとえばPingコマンドをチェックすることによって、レイヤ3の動作を確認できる。ポートをチェックすることによって、レイヤ4の動作を確認できる。HTTPなどのようなプロトコルをチェックして、アプリケーションの動作を確認できる…などのように、異常の発生要因を特定することができる。
【0005】
ヘルスチェックを短い間隔で行えば行うほど、より迅速にチェック対象装置の異常を特定して対応することができる。しかし、現在行われている通信のパケットにヘルスパケットが加わるので、ヘルスチェックを短い間隔で行うと、通信機器や回線などの負荷を増すこととなる。このため、通信機器や回線などの負荷を増大させることなく、かつ高精度に障害の発生箇所を特定できる技術が求められる。
【0006】
ネットワークの異常の検出に係る負荷を分散する方法として、たとえば以下のような技術が開示されている。特許文献1には、各装置固有の処理に合わせたヘルスチェックを行うことを可能とするため、各装置の応答時間を最初にネゴシエーションをして、各装置に適したヘルスチェックの応答待ち時間を設定するという技術が開示されている。特許文献2には、ヘルスチェックの種類に応じて通信可否確認用の短期ヘルスチェック、機能障害検出用の長期ヘルスチェックを使い分けることで、負荷を抑制しつつ、被監視対象の異常を早期に検出するという技術が開示されている。特許文献3には、変更可能な周期でヘルスパケットを送信して、対象ノードの系ごとに正常・異常を判定して結果を保存して伝送路を選択する技術が開示されている。
【0007】
【特許文献1】特開平08−223191号公報
【特許文献2】特開2002−330191号公報
【特許文献3】特開2003−018217号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
負荷が比較的安定しているテキストベースなどの通信に比べて、リッチコンテンツを利用した通信においては、通信機器や回線などに対する負荷が急激に変動することが多い。しかしながら、特許文献1および2に示した従来技術では最初にヘルスチェックの間隔を決定したら、その後での負荷の変動に対応してヘルスチェックの間隔を変更することができない。また、自らの装置にかかる負荷を検出する手段もない。特許文献3の技術ではヘルスチェックの間隔を変更することは可能だが、装置にかかる負荷に応じて間隔を変更するものではない。
【0009】
そのため、事前にヘルスチェックの間隔を固定化してしまうと、短い間隔でヘルスチェックを行っているときに負荷が急激に増大して、通信機器や回線などが過負荷となってしまうことがある。このことは、通信品質の急激な低下を招くこととなる。逆に、長い間隔でヘルスチェックを行っている状態では、障害の検出に時間がかかり、障害の発生箇所の特定も難しくなる。
【0010】
さらに、通信の相手となる通信機器の負荷を検出することもできない。このため、障害の発生箇所を高精度に特定しようとして自らの装置において短い間隔でヘルスチェックを行うと、通信相手を過負荷としてしまうこともある。
【0011】
本発明の目的は、自らの装置および通信相手の装置を含んだ通信装置の負荷の変化に対応して、柔軟にヘルスチェックの間隔を変更することが可能な通信装置、ヘルスチェック間隔調整方法およびヘルスチェック間隔調整プログラムを提供することにある。
【課題を解決するための手段】
【0012】
上記目的を達成するため、本発明に係る通信装置は、プロセッサを有し、ネットワークを構成する通信装置であって、プロセッサの制御によって動作し、通信における優先度を指定するアプリケーションと、アプリケーションをネットワーク上の他の通信装置と接続して通信を行う通信手段と、通信手段が通信を行っている間にプロセッサの負荷を測定する負荷計測手段と、プロセッサの負荷および優先度に基づいてヘルスチェックを行う間隔を調整するヘルスチェック間隔調整手段と、ヘルスチェック間隔調整手段が調整した間隔でヘルスチェックを実行するヘルスチェック実行手段とを有することを特徴とする。
【0013】
上記目的を達成するため、本発明に係るヘルスチェック間隔調整方法は、アプリケーションを実行するプロセッサを有し、ネットワークを構成する通信装置においてヘルスチェックを行う間隔を調整する方法であって、アプリケーションが通信における優先度を指定する優先度指定工程と、アプリケーションをネットワーク上の他の通信装置と接続して通信を行う通信工程と、通信工程の間にプロセッサの負荷を測定する負荷計測工程と、プロセッサの負荷および優先度に基づいてヘルスチェックを行う間隔を調整するヘルスチェック間隔調整工程と、ヘルスチェック間隔調整工程で調整された間隔でヘルスチェックを実行するヘルスチェック工程とを有することを特徴とする。
【0014】
上記目的を達成するため、本発明に係るヘルスチェック間隔調整プログラムは、アプリケーションを実行するプロセッサを有し、ネットワークを構成する通信装置を構成するコンピュータに、アプリケーションが通信における優先度を指定する処理と、アプリケーションをネットワーク上の他の通信装置と接続して通信を行う通信処理と、通信処理の間にプロセッサの負荷を測定する処理と、プロセッサの負荷および優先度に基づいてヘルスチェックを行う間隔を調整するヘルスチェック間隔調整処理と、ヘルスチェック間隔調整工程で調整された間隔でヘルスチェックを実行する処理とを実行させることを特徴とする。
【発明の効果】
【0015】
本発明は、上記したようにプロセッサの負荷および優先度に基づいてヘルスチェックを行う間隔を調整するように構成したので、プロセッサの負荷が変化してもそれに対応してヘルスチェックの間隔を変更することができる。これによって、自らの装置および通信相手の装置を含んだ通信装置の負荷の変化に対応して、柔軟にヘルスチェックの間隔を変更することが可能であるという、従来にない優れた通信装置、ヘルスチェック間隔調整方法およびヘルスチェック間隔調整プログラムを提供することができる。
【発明を実施するための最良の形態】
【0016】
図1は、本発明の実施の形態に係るネットワーク1の構成例について示すブロック図である。ネットワーク1はクライアント−サーバシステムであり、相互に接続された複数のサーバ装置101および複数の端末装置102によって構成される。以後、端末装置とサーバ装置の総称として通信装置100という。それぞれの通信装置上にはAP(アプリケーション)が稼働し、端末装置102上の端末用AP112はサーバ装置101上のサーバ用AP111と通信している。
【0017】
図1に示した例では、サーバ装置101a上のサーバ用AP111aに対して、端末装置102a上の端末用AP112a、端末装置102b上の端末用AP112b、端末装置102c上の端末用AP112cが通信を行っている。またサーバ装置101b上のサーバ用AP111bに対して、端末装置102a上の端末用AP112dが通信を行っている。このように、それぞれの通信装置には複数のAPが存在しており、各々のAPが複数の通信装置上のAPとの間で通信を行うことができる。
【0018】
図2は、図1で示した通信装置100(サーバ装置101および端末装置102)の内部構成を示すブロック図である。通信装置100はAP110、通信手段120、障害検出負荷調整手段130、記憶手段140、およびCPU150から構成される。CPU150は、AP110、通信手段120、障害検出負荷調整手段130の各機能を実行する。記憶手段140は、AP110および障害検出負荷調整手段130から読み書き可能であり、後述の通信情報210、状態変数220と進行度マトリックス230を記憶する。
【0019】
AP110はサーバ用AP111と端末用AP112とを総称していう。AP110や通信手段120が切り替わることにより、通信装置100がサーバ装置101と端末装置102のうちのどちらであるかが決定される。1台の通信装置100において、複数のAP110が動作しうる。
【0020】
AP110は、たとえば音声通話、映像通話、資料共有、アプリケーション共有、Web共有、チャット、掲示板などである。AP110は一つのあるいは複数の通信手段120を所有しており、相手の通信装置100上のAP110との間で通信手段120を介して任意のフォーマットとプロトコルで通信が行われる。また、サーバ装置101が複数の端末装置102との通信を行うまたは中継する場合には、サーバ用AP111が複数の通信手段120を介して、複数の端末装置102上の端末用AP112と通信を行う。
【0021】
通信手段120は、他の通信装置100上の通信手段120との間で通信を行う。AP110からの任意のプロトコルでの通信と、障害検出負荷調整手段130にあるヘルスチェック実行手段134で発生して転送されるヘルスパケットの送信と、別の通信装置100から送信されたヘルスパケットの受信およびヘルスチェック実行手段134への転送を行う。1台の通信装置100において複数のAP110が動作する場合、各々のAP110に対応した複数の通信手段120が用意される。
【0022】
障害検出負荷調整手段130は、AP間のヘルスチェック間隔調整手段131(以後間隔調整手段131という)、負荷計測手段132、通信相手状況取得手段133、ヘルスチェック実行手段134から構成される。各々の動作の詳細は後述する。
【0023】
間隔調整手段131は、負荷計測手段132から送られてくる現在の通信装置100の負荷と、通信相手状態取得手段133から送られる通信相手の負荷状況と、AP110が記憶手段140に登録した通信情報210(後述)に基づいて、状態変数220(後述)と進行度マトリックス230(後述)で計算されるヘルスチェック間隔を各通信に割り当てる。
【0024】
図3は、図2で示した記憶手段140に記憶される通信情報210および状態変数220のデータ構成を示す概念図である。図4は、図2で示した記憶手段140に記憶される進行度マトリックス230の構成を示す概念図である。
【0025】
通信情報210は、ヘルスチェックを行う間隔の最大値と最小値を示す最大間隔211と最小間隔212、実際にヘルスチェックを行う間隔である実行間隔213、および現在の通信状態を表す優先度214、調整段階215、通信相手の負荷216とで構成される。
【0026】
このうち、最大間隔211と最小間隔212、優先度214はAP110が指定した値であり、実行間隔213、現在の調整段階215、通信相手の負荷216は障害検出負荷調整手段130が随時書き換える値である。最大間隔211および最小間隔212は、本実施の形態では優先度214に応じて決定されるが、これ以外の要素によって決定することも可能である。
【0027】
状態変数220には現在の通信において設定された進行度を表す進行度221と、CPU150の負荷を表す自身の負荷222が記憶される。
【0028】
進行度マトリックス230は横軸を優先度214、縦軸を調整段階215として、これらに対応する進行度221の値を決定するマトリックスである。通信装置100が起動されるとき、進行度マトリックス230には進行度221の値として初期化された定数が入る。すなわち、優先度=「1」かつ調整段階=「1」のグリッドが進行度の最大値が記入される。そこから優先度を+1、調整段階を−1したグリッドに、進行度を−1した値が記入される。ただし、優先度を+1、調整段階を−1した所にグリッドが存在しない(グリッドの枠外である)場合は、まだ進行度が記入されていないグリッドの中で最も優先度の高いグリッドに進行度を−1した値が記入される。進行度マトリックス230では、優先度1〜4、調整段階1〜4の16マスのグリッドを、上記の原則で記入している。進行度221の最大値は16、最小値は1である。
【0029】
進行度マトリックス230は、優先度214および調整段階215に対応する進行度221の値を決定する。優先度214は、数値が小さいほど優先度が高いと定義する。調整段階215はヘルスチェックの間隔を決定する変数であり、この数値に応じて、以下の式によってヘルスチェックの間隔(実行間隔213)が決定される。なお、最高調整段階および最低調整段階は、調整段階215の設計上とりうる最大値および最小値である。前述の図4に示された例では最高調整段階=4、最低調整段階=1となる。
【0030】
[数1]
実行間隔213 = 最小間隔212+(最大間隔211−最小間隔212)*(最高調整段階−調整段階215)÷(最高調整段階−最低調整段階)
【0031】
調整段階215の数値が高いほど、ヘルスチェック間隔が小さくなり、障害発生箇所を高い精度で検出できるようになるが、ヘルスチェック回数の増加に伴い通信装置100に対する負荷も増加することになる。そのため、通信実行時には進行度221が負荷の状況に応じて変動し、進行度221の数値を超えない範囲で、間隔調整手段131が優先度214における調整段階215を選択し、最大間隔211および最小間隔212の間の範囲で実行間隔213を決定する。
【0032】
進行度221は負荷状況と比例しており、負荷が高いほど進行度221の数値は大きくなる。進行度221の数値が大きくなるのは負荷が増加したときであり、優先度214の低い通信から各通信のヘルスチェックの間隔が広がっていく。逆に進行度221の数値が小さくなるのは負荷が減少したときであり、優先度214の高い通信から各通信のヘルスチェック間隔が縮まっていく。進行度マトリックス230を使うことで、各通信の最大間隔211と最小間隔212の間の実行間隔213の変動を、優先度214の違いによってスムーズに遷移させることが可能となる。
【0033】
間隔調整手段131は、通信実行中は負荷計測手段132から通信装置100の負荷を受け取り、そこから逆算される許容負荷範囲に収まるように各通信のヘルスチェックの間隔を調整する。閾値判定によって、高負荷あるいは低負荷になったら、実行間隔213の調整を開始する。
【0034】
ヘルスチェック間隔の調整は、まず現在の進行度221に基づいて、進行度マトリックス230によって調整段階215の値を決定する。各優先度214のチャネルにおいて、進行度マトリックス230から進行度221の値を越えない一番大きな調整段階215を選択する。ただし、「進行度221の値を越えない一番大きな調整段階215」が存在しない(すべての調整段階において、進行度221の値を越える)場合は、最高調整段階(この場合は調整段階4)を選択する。
【0035】
例えば、進行度221=9の場合は、図4の進行度マトリックス230から、優先度1では調整段階4、優先度2では調整段階3、優先度3では調整段階2、優先度4では調整段階1となり、進行度が5の場合は、優先度1では調整段階4、優先度2では調整段階4、優先度3では調整段階3、優先度4では調整段階2が選択される。つまり、進行度221の数値が大きいほど、低優先度の通信の調整段階が小さくなることになる。
【0036】
通信情報210には、行われている各通信の現在の調整段階215が記憶されている。ここに記憶された調整段階215と、進行度マトリックス230から算出された調整段階が異なる場合に、各通信の調整段階を算出された調整段階の値に修正し、数1の式によって正しい間隔を設定して、ヘルスチェックの実行間隔を変更する。このように、調整段階215が異なる通信だけを選択することで、全通信を再計算しなくてもよいので、ヘルスチェックの間隔の変更に伴う計算量を削減することができる。
【0037】
ただし、通信相手の負荷216に記憶された状況によって、相手が過負荷であると判断される場合には、その通信の調整段階の上昇は取りやめ、通信相手の負荷の上昇を防止し、ほかの通信の調整段階の変更を優先させる。そして、記憶された調整段階215と、進行度マトリックス230から算出された調整段階がすべて一致する場合には、負荷計測手段132が測定した通信装置100の負荷が低負荷状態の場合には進行度221を加算し、高負荷状態の場合には進行度221を減算する。
【0038】
進行度221が加算されると調整段階215が減少し、ヘルスチェックの間隔(実行間隔213)が増加して、負荷を低減する。逆に、進行度が減算されると調整段階215が増加して、ヘルスチェックの間隔(実行間隔213)が減少して一定範囲で負荷は増えるが、ヘルスチェックの精度が向上する。この一連の動作を、前述の許容負荷範囲に収まるところまで繰り返す。
【0039】
間隔調整手段131は、ヘルスチェック実行手段134にヘルスチェック間隔(実行間隔213)の変更と、自身のCPU150の負荷(以後CPU負荷という)についての情報を送付する。そして自身の通信装置100にCPU負荷の増加を許容する余地がない、つまり進行度221の数値が設定値よりも大きい場合には、高負荷状態であることをヘルスチェック実行手段134によって通信相手に通達させる。
【0040】
負荷計測手段132は自身のCPU150の負荷を測定し、現状のCPU負荷を間隔調整手段131に送付し、また自身の負荷222として記憶装置140に記憶する。CPU負荷を測定する方法は、公知の技術を適用することができる。通信相手状況取得手段133は通信相手のヘルスチェック実行手段134から受け取った通信相手の負荷状況を取得し、通信情報210の通信相手の負荷216に記憶する。
【0041】
ヘルスチェック実行手段134は、間隔調整手段131が決定した実行間隔213によって、通信相手に対してヘルスチェックを行う。ヘルスチェックは一方向でも双方向でも可能であり、通信相手から相互にヘルスチェックが行われる。ヘルスチェック実行手段134はまた、自身のCPU負荷をヘルスパケットに記載して通信相手に送付し、相手から受け取ったCPU負荷は通信相手状況取得手段133に渡す。
【0042】
図5は、図1で示したネットワーク1における通信の流れを書き表したフローチャートである。通信装置100が通信を開始すると(ステップS300)、まずは通信装置100同士が所定のプロトコルに基づいて接続される(ステップS301)。すると、開始された通信について進行度221に応じた初期値設定を行う(ステップS302)。何も通信がない状態から開始した場合は、通信負荷がないので、進行度の値は1から始まる。他の通信が既に行われている状態で開始した場合は、その時点での進行度221が設定される。
【0043】
通信が定常状態に入ると(ステップS303)、一定間隔あるいは、AP110の実行や通信回線の追加などのイベントをトリガーとして、負荷検出(ステップS304)に移行する。検出された負荷が許容される負荷の範囲にあるか否かどうかの判定を行い(ステップS305)、範囲外にあると判断される場合は後述の図6に示すAP間負荷調整を行う(ステップS306)。
【0044】
定常状態のステップS303から通信が切断されると、切断処理に移り(ステップS307)、該通信は状態記憶手段140から削除されて(ステップS308)終了する(ステップS309)。通信切断によっては通信に係る負荷が軽減されるので、その後の負荷検出時にはほかの通信のヘルスチェックの精度が向上する可能性がある。逆に、定常状態のときに他の通信が接続された場合には、ステップ301からのフローで通信が増やされる。すると、通信に係る負荷が増加するので、その後の負荷検出時には他の通信のヘルスチェックの精度が低下する可能性がある。
【0045】
図6〜8は、図5のステップS306で示した、間隔調整手段131が行うAP間負荷調整の処理をより詳細に書き表したフローチャートである。錯綜を避けてわかりやすくするため、図6〜8の3枚に分けて描かれている。AP間負荷調整の処理が開始されると(ステップS400)、負荷計測手段132が自身の通信装置100の現状のCPU負荷を測定して取得し(ステップS401)、間隔調整手段131は取得されたCPU負荷を所定の低負荷閾値および高負荷閾値と比較する(ステップS402〜S403)。ちなみに低負荷閾値<高負荷閾値である。
【0046】
間隔調整手段131は、現状のCPU負荷が低負荷閾値未満であれば、図7のステップS510に進み、ヘルスチェック間隔を縮める動作に入る。現状のCPU負荷が高負荷閾値以上であれば、図8のステップS620に進み、ヘルスチェック間隔を広げる動作に入る。現状のCPU負荷が低負荷閾値以上高負荷閾値未満であれば、AP間負荷調整の必要はないと判断し、ステップS404に進んで処理を終了する。
【0047】
低負荷時にヘルスチェック間隔を縮める動作に進んだ場合、まず進行度221に基づいて通信を選択する(ステップS510)。各優先度214の通信ごとに、進行度マトリックス230を参照して、該当の進行度221の値を超えない調整段階215を算出し、各通信の現在の調整段階215と、進行度マトリックス230から算出された調整段階が異なる通信を選択する。
【0048】
ステップS510で「調整段階が異なる通信」に該当する通信があるか否かを判断し(ステップS511)、該当の通信がない場合には進行度221を減算して(ステップS512)ステップS510に戻る。進行度221を減算すると、ヘルスチェックの間隔をより小さくする調整段階215が指定されるので、ヘルスチェックの精度を向上することができる。
【0049】
ステップS511で該当する通信が存在する場合、通信相手の負荷216を参照して、該通信の相手の通信装置100が高負荷かどうかを判定する(ステップS513)。通信相手が高負荷の場合には、相手の負荷をこれ以上増やさないように、該通信を選択から除外してステップS510に戻り、別の通信の選択を行う。
【0050】
通信相手が高負荷でなければ、間隔調整手段131は、実行間隔213を調整段階215に対応したヘルスチェック間隔に設定し(ステップS514)、ヘルスチェック間隔の変更情報をヘルスパケットに含めて相手の通信装置100に対して送信する(ステップS515)。該ヘルスパケットを受信した相手の通信装置100は、受け取ったヘルスチェック間隔を通信相手の負荷216として記憶する。
【0051】
そして、自身の通信装置100においても、現状の進行度221、調整段階215、ヘルスチェック間隔(実行間隔213)などを記憶装置140に記憶して(ステップS516)、他の通信に対して判定するため図6のステップS400に戻る。
【0052】
負荷時にヘルスチェック間隔を広げる動作に進んだ場合、まず進行度221に基づいて通信を選択する(ステップS620)。各優先度214の通信ごとに、進行度マトリックス230を参照して、該当の進行度221の値を超えない調整段階215を算出し、各通信の現在の調整段階215と、進行度マトリックス230から算出された調整段階が異なる通信を選択する。
【0053】
ステップS620で「調整段階が異なる通信」に該当する通信があるか否かを判断し(ステップS621)、該当の通信がない場合には進行度221を加算して(ステップS622)ステップS620に戻る。進行度221を加算すると、ヘルスチェックの間隔をより大きくする調整段階215が指定されるので、ヘルスチェックの精度は低下するが、CPU負荷を軽減することができる。
【0054】
ステップS621で該当する通信が存在する場合、間隔調整手段131は、実行間隔213を調整段階215に対応したヘルスチェック間隔に設定し(ステップS623)、ヘルスチェック間隔の変更情報をヘルスパケットに含めて相手の通信装置100に対して送信する(ステップS624)。該ヘルスパケットを受信した相手の通信装置100は、受け取ったヘルスチェック間隔を通信相手の負荷216として記憶する。
【0055】
そして、自身の通信装置100においても、現状の進行度221、調整段階215、ヘルスチェック間隔(実行間隔213)などを記憶装置140に記憶して(ステップS625)、他の通信に対して判定するため図6のステップS400に戻る。
【0056】
図9は、図5〜8に示された動作で実際に設定されるヘルスチェック間隔の例を示す表である。ここでは3つの通信が行われており、それぞれの通信に対して優先度214が1〜3の3段階が付与されている。優先度214と調整段階215はそれぞれ1〜4の4段階が指定可能であるが、優先度214=4はここでは使用しない。図9においては、通信装置100の進行度221が16、12、8、1の4通りの場合に、各々の通信においてどのようなヘルスチェック間隔(実行間隔213)が設定されるかを示している。
【0057】
進行度221=16の場合、進行度マトリックス230では優先度214=1〜3のすべてにおいて調整段階215=1となる。これは、通信装置100の負荷が最も大きくなっている状態を表す。そこから数1に基づいて、各々の優先度214において設定可能なヘルスチェック間隔の中で最大の値、つまり最大間隔211に等しい値が実行間隔213として選択される。これによって、ヘルスチェックに係る負荷がこれ以上増大しないように制御されることになる。
【0058】
進行度221=12の場合、通信1は優先度214=1であるから調整段階215=4、通信2は優先度214=2であるから調整段階215=2、通信3は優先度214=3であるから調整段階215=1が選択される。そこから数1に基づいて、通信1は最小間隔212に等しい10ms、通信2は20+(100−20)*(4−2)÷(4−1)=73ms、通信3は最大間隔211に等しい1000msが実行間隔213として選択される。
【0059】
進行度221=8の場合、通信1は優先度214=1であるから調整段階215=4、通信2は優先度214=2であるから調整段階215=4、通信3は優先度214=3であるから調整段階215=3が選択される。そこから数1に基づいて、通信1は最小間隔212に等しい10ms、通信2も最小間隔212に等しい20ms、通信3は20+(100−20)*(4−2)÷(4−1)=73ms、通信3は30+(1000−30)*(4−3)÷(4−1)=353msが実行間隔213として選択される。
【0060】
進行度221=1の場合、進行度マトリックス230では優先度214=1〜3のすべてにおいて調整段階215=4となる。これは、通信装置100の負荷が最も小さくなっている状態を表す。そこから数1に基づいて、各々の優先度214において設定可能なヘルスチェック間隔の中で最小の値、つまり最小間隔212に等しい値が実行間隔213として選択され、実施可能な最高の精度でヘルスチェックを行う。
【0061】
以上のように、本実施の形態では、通信装置100上にあるAP110が指定した優先度214およびヘルスチェック間隔の範囲と、通信装置の現在の負荷に応じて、各AP110間のバランスをとってヘルスチェックの間隔を決定することができる。これによって、通信装置110に過大な負荷をかけない範囲で、負荷の変動に対応して高精度なヘルスチェックができる。さらに相手の負荷の状況によってはヘルスチェックの精度を向上しないように制御するので、相手の端末が過負荷にならないようにヘルスチェックの間隔を設定できる。
【0062】
上記で説明した本実施の形態では、優先度214および調整段階215を各々1〜4の整数、進行度221を1〜16の整数とした。しかしながら、これらの数値の最大値、最小値、および段階数は、設計者が必要に応じて任意に変更しうる事項である。
【0063】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
【産業上の利用可能性】
【0064】
本発明は、複数の通信装置がネットワークを介して通信を行うシステムに適用できる。特に、負荷が急激に変動することが多い、映像や音声などのようなリッチコンテンツを利用するシステム、たとえばIP電話やWEB会議などのようなシステムに好適である。また、クライアント−サーバシステムに限らず、エンドトゥエンドの通信システムなどにも適用できる。
【図面の簡単な説明】
【0065】
【図1】本発明の実施の形態に係るネットワークの構成例について示すブロック図である。
【図2】図1で示した通信装置(サーバ装置および端末装置)の内部構成を示すブロック図である。
【図3】図2で示した記憶手段に記憶される通信情報および状態変数のデータ構成を示す概念図である。
【図4】図2で示した記憶手段に記憶される進行度マトリックスの構成を示す概念図である。
【図5】図1で示したネットワークにおける通信の流れを書き表したフローチャートである。
【図6】図5で示した、間隔調整手段が行うAP間負荷調整の処理をより詳細に書き表したフローチャートである。
【図7】図6の続きである。
【図8】図6および図7の続きである。
【図9】図5〜8に示された動作で実際に設定されるヘルスチェック間隔の例を示す表である。
【符号の説明】
【0066】
1 ネットワーク(クライアント−サーバシステム)
100 通信装置
101 サーバ装置
102 端末装置
110 AP(アプリケーション)
111 サーバ用AP
112 端末用AP
120 通信手段
130 障害検出負荷調整手段
131 間隔調整手段(ヘルスチェック間隔調整手段)
132 負荷計測手段
133 通信相手状況取得手段
134 ヘルスチェック実行手段
140 記憶手段
150 CPU(プロセッサ)
210 通信情報
211 最大間隔
212 最小間隔
213 実行間隔(ヘルスチェックを行う間隔)
214 優先度
215 調整段階
216 通信相手の負荷(他の通信装置のプロセッサの負荷に関する情報)
220 状態変数
221 進行度
222 自身の負荷(プロセッサの負荷に関する情報)
230 進行度マトリックス

【特許請求の範囲】
【請求項1】
プロセッサを有し、ネットワークを構成する通信装置であって、
前記プロセッサ上で動作し通信における優先度を指定するアプリケーションと、
前記アプリケーションを前記ネットワーク上の他の通信装置と接続して通信を行う通信手段と、
前記通信手段が通信を行っている間に前記プロセッサの負荷を測定する負荷計測手段と、
前記プロセッサの負荷および前記優先度に基づいてヘルスチェックを行う間隔を調整するヘルスチェック間隔調整手段と、
前記ヘルスチェック間隔調整手段が調整した間隔でヘルスチェックを実行するヘルスチェック実行手段と
を有することを特徴とする通信装置。
【請求項2】
前記ヘルスチェック間隔調整手段が、前記プロセッサの負荷が過負荷とならない所定の範囲内になるように前記ヘルスチェックを行う間隔を調整することを特徴とする、請求項1に記載の通信装置。
【請求項3】
前記ヘルスチェック実行手段が、前記プロセッサの負荷に関する情報を前記ヘルスチェックにおいて送信するヘルスチェックパケットに含めることを特徴とする、請求項2に記載の通信装置。
【請求項4】
前記ネットワーク上の他の通信装置から受信したヘルスチェックパケットに含まれる情報の中から前記他の通信装置が有するプロセッサの負荷に関する情報を取得する通信相手状況取得手段を有し、
前記ヘルスチェック間隔調整手段が、前記通信相手状況取得手段が取得した他の通信装置のプロセッサの負荷が高負荷を示していれば該通信装置に対するヘルスチェックの間隔を短縮しないことを特徴とする、請求項3に記載の通信装置。
【請求項5】
前記ヘルスチェック間隔調整手段に、数値が大きいほど前記プロセッサの負荷が高い状態を表す進行度と前記優先度および前記進行度に対応して調整段階を決定する進行度マトリックスとを記憶する記憶手段を併設すると共に、
前記ヘルスチェック間隔調整手段が、前記進行度マトリックスによって決定される調整段階に応じて前記ヘルスチェックを行う間隔を調整することを特徴とする、請求項2に記載の通信装置。
【請求項6】
前記ヘルスチェック間隔調整手段が、前記ヘルスチェックを行う間隔のとりうる最大値および最小値をそれぞれ最大間隔および最小間隔とし、前記調整段階のとりうる最大値および最小値をそれぞれ最高調整段階および最低調整段階とすると、前記ヘルスチェックを行う間隔を最小間隔+(最大間隔−最小間隔)*(最高調整段階−調整段階)÷(最高調整段階−最低調整段階)の式によって決定することを特徴とする、請求項5に記載の通信装置。
【請求項7】
前記アプリケーションが、前記最大間隔および最小間隔を前記優先度に応じて決定することを特徴とする、請求項6に記載の通信装置。
【請求項8】
前記ヘルスチェック間隔調整手段が、前記進行度マトリックスによって決定される調整段階が現在行われている通信における調整段階と異なる通信に対して前記ヘルスチェックを行う間隔を調整することを特徴とする、請求項5に記載の通信装置。
【請求項9】
前記進行度マトリックスによって決定される調整段階が現在行われている通信における調整段階と異なる通信が存在せずかつ前記プロセッサの負荷が前記所定の範囲より高い場合に前記進行度を加算し、前記進行度マトリックスによって決定される調整段階が現在行われている通信における調整段階と異なる通信が存在せずかつ前記プロセッサの負荷が前記所定の範囲より低い場合に前記進行度を減算することを特徴とする、請求項8に記載の通信装置。
【請求項10】
前記通信装置が、クライアント−サーバシステムにおいて相互に接続されるサーバもしくは端末を構成する通信装置であることを特徴とする、請求項1ないし請求項9のうちいずれか1項に記載の通信装置。
【請求項11】
アプリケーションを実行するプロセッサと記憶手段とを有し、ネットワークを構成する通信装置においてヘルスチェックを行う間隔を調整する方法であって、
前記アプリケーションが通信における優先度を指定する優先度指定工程と、
前記アプリケーションを前記ネットワーク上の他の通信装置と接続して通信を行う通信工程と、
前記通信工程の間に前記プロセッサの負荷を測定する負荷計測工程と、
前記プロセッサの負荷および前記優先度に基づいてヘルスチェックを行う間隔を調整するヘルスチェック間隔調整工程と、
前記ヘルスチェック間隔調整工程で調整された間隔でヘルスチェックを実行するヘルスチェック工程と
を有することを特徴とするヘルスチェック間隔調整方法。
【請求項12】
前記ヘルスチェック間隔調整工程が、前記プロセッサの負荷が過負荷とならない所定の範囲内になるように前記ヘルスチェックを行う間隔を調整することを特徴とする、請求項11に記載のヘルスチェック間隔調整方法。
【請求項13】
前記ヘルスチェック工程が、前記プロセッサの負荷に関する情報を前記ヘルスチェックにおいて送信するヘルスチェックパケットに含めることを特徴とする、請求項12に記載のヘルスチェック間隔調整方法。
【請求項14】
前記ネットワーク上の他の通信装置からヘルスチェックパケットを受信して、該ヘルスチェックパケットに含まれる情報の中から前記他の通信装置が有するプロセッサの負荷に関する情報を取得する通信相手状況取得工程を有し、
前記ヘルスチェック間隔調整工程が、前記通信相手状況取得工程で取得された他の通信装置のプロセッサの負荷が高負荷を示していれば該通信装置に対するヘルスチェックの間隔を短縮しないことを特徴とする、請求項13に記載のヘルスチェック間隔調整方法。
【請求項15】
前記ヘルスチェック間隔調整工程が、数値が大きいほど前記プロセッサの負荷が高い状態を表す進行度と前記優先度および前記進行度に対応して調整段階を決定する進行度マトリックスとを前記記憶手段から読み取り、前記進行度マトリックスによって決定される調整段階に応じて前記ヘルスチェックを行う間隔を調整することを特徴とする、請求項12に記載のヘルスチェック間隔調整方法。
【請求項16】
前記ヘルスチェック間隔調整工程が、前記ヘルスチェックを行う間隔のとりうる最大値および最小値をそれぞれ最大間隔および最小間隔とし、前記調整段階のとりうる最大値および最小値をそれぞれ最高調整段階および最低調整段階とすると、前記ヘルスチェックを行う間隔を最小間隔+(最大間隔−最小間隔)*(最高調整段階−調整段階)÷(最高調整段階−最低調整段階)の式によって決定することを特徴とする、請求項15に記載のヘルスチェック間隔調整方法。
【請求項17】
アプリケーションを実行するプロセッサを有し、ネットワークを構成する通信装置を構成するコンピュータに、
前記アプリケーションが通信における優先度を指定する処理と、
前記アプリケーションを前記ネットワーク上の他の通信装置と接続して通信を行う通信処理と、
前記通信処理の間に前記プロセッサの負荷を測定する処理と、
前記プロセッサの負荷および前記優先度に基づいてヘルスチェックを行う間隔を調整するヘルスチェック間隔調整処理と、
前記ヘルスチェック間隔調整工程で調整された間隔でヘルスチェックを実行する処理と
を実行させることを特徴とするヘルスチェック間隔調整プログラム。
【請求項18】
前記ヘルスチェック間隔調整処理が、前記プロセッサの負荷が所定の範囲内になるように前記ヘルスチェックを行う間隔を調整することを特徴とする、請求項17に記載のヘルスチェック間隔調整プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2009−117915(P2009−117915A)
【公開日】平成21年5月28日(2009.5.28)
【国際特許分類】
【出願番号】特願2007−285385(P2007−285385)
【出願日】平成19年11月1日(2007.11.1)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】