(57)【要約】【課題】配信サーバが複数存在する場合に、特定の配信サーバの負荷が増大するような状況を無くしクライアントの接続を分散させる技術を提供することを目的とする。【解決手段】クライアントが配信サーバに接続して配信情報を受ける際、配信サーバがクライアントの接続先を配信サーバの稼働状況（管理しているクライアントの数や障害等で稼働できない状況になっているかどうかなど）に合わせて動的に変更させる。これにより、配信サーバの負荷を低減する。具体的には、各配信サーバには、各クライアントに配信する配信情報と配信サーバリストを設け、各配信サーバは、所定時間毎に他の各配信サーバと通信を行い、他の各配信サーバの負荷状況を取得し、配信サーバリストに記憶する。クライアントから配信情報取得要求があったとき、自機の負荷が高ければ、配信サーバリストを参照して負荷の低い配信サーバに再接続する指示を出す。【選択図】図１
2010072894.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアントと複数の配信サーバとをネットワークに接続した情報配信システムであって、
前記各配信サーバは、
クライアントに配信するための配信情報を記憶する手段と、
全配信サーバに関する接続先アドレス、稼働状態、および現在の負荷状況を格納する配信サーバリストを記憶する手段と、
クライアントから送信された配信情報取得要求を受信した場合、自機の負荷状況が所定の負荷レベルに達しているか否か判定する手段と、
前記所定の負荷レベルに達していたときは、前記配信サーバリストを参照して負荷が低い配信サーバを特定し、前記配信情報取得要求の送信元のクライアントに対して、前記特定した配信サーバへ再接続するように指示する接続先変更の指示を送信するとともに、他の配信サーバに自機の負荷状況が前記所定の負荷レベルに達している旨を通知する手段と、
前記所定の負荷レベルに達していないときは、当該クライアントの配信情報取得要求を受けて、前記配信情報を当該クライアントに送信する手段と、
所定時間毎に他の配信サーバの稼働状況を取得し、取得した稼働状況を前記配信サーバリストに格納する手段と、
所定時間毎に自機の負荷状況が所定の負荷レベルに達しているか否か判定し、達していたときは、自機の負荷状況が所定の負荷レベルに達している旨を他の配信サーバに通知し、達していなかったときは、自機の稼働状況を他の配信サーバに通知する手段と、
他の配信サーバから前記負荷状況が所定の負荷レベルに達している旨の通知または前記稼働状況の通知を受けたとき、前記配信サーバリストの当該配信サーバに対応するエントリにそれらの情報を設定する手段と
を備え、
前記クライアントは、
前記配信サーバに配信情報取得要求を送信する手段と、
前記配信情報取得要求の送信先の配信サーバから接続先変更の指示があったときは、指示された接続先に再接続して配信情報取得要求を送信する手段と、
前記配信情報取得要求の送信先の配信サーバから配信情報が送信されてきたときは、該配信情報を受信する手段と
を備えることを特徴とする情報配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば配信サーバよりクライアントの動作を制御するための設定情報を取得し反映させるクライアントを含むクライアントサーバ型セキュリティシステムにおいて、配信サーバからクライアントの動作を制御する設定情報などを配信する技術に関するものである。
【背景技術】
【０００２】
従来、クライアントの動作を規定するための各種の設定情報は、クライアントの設定情報を一元的に管理している配信サーバに格納されている。各クライアントは、配信サーバに接続し、設定情報を取得し、取得した設定情報に基づいて動作していた。
【０００３】
しかし、基本的に配信サーバは一つであるため、管理するクライアントの数が増加すると配信サーバへの接続要求も増加し、配信サーバの負荷が増大する。特に、クライアントの設定情報は、高いセキュリティを確保するために常に最新のものにしておくべきものであるので、設定情報が更新されたときには、迅速に全クライアントにその設定情報を設定させたい。そのため、設定情報の更新があったときには、その設定情報のデータ容量は小さかったとしても、多くのクライアントからの配信要求が一時的に集中し、配信サーバの負荷が増大することがある。また、配信サーバに障害が発生した場合、クライアントは、配信サーバから設定情報を取得することができなくなる。
【０００４】
サーバの負荷増大やサーバでの障害発生時の配信処理の停止に対する解決策としては、例えば下記特許文献１のような、サーバを複数設置するという方式が一般的に知られている。
【特許文献１】特開２００６−１１３７３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、複数のサーバが存在する環境では、クライアントがどのサーバに接続するかが問題となる。すなわち、複数のサーバが存在する環境であっても、ある特定のサーバの負荷が増大するという不都合は起こり得る。
【０００６】
本発明の目的は、配信サーバが複数存在する場合に、特定の配信サーバの負荷が増大するような状況を無くしクライアントの接続を分散させる技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明は、クライアントが配信サーバに接続して配信情報を受ける際、配信サーバがクライアントの接続先を配信サーバの稼働状況（管理しているクライアントの数や障害等で稼働できない状況になっているかどうかなど）に合わせて動的に変更させることにより、配信サーバの負荷を低減することを特徴とする。すなわち、本発明では、所定の配信情報をクライアントへ送付する複数の配信サーバと、これらの配信サーバから配信情報を受信する複数のクライアントを備え、各配信サーバには、各クライアントに配信する配信情報と全ての配信サーバのリストを設ける。この配信サーバリストには、全配信サーバの接続先アドレス、稼働状態、および現在の負荷状況を格納する。現在の負荷状況としては、例えば各配信サーバが管理しているクライアントの数を利用すれば良いが、他の指標で負荷状況を表しても良い。
【０００８】
各配信サーバは、所定時間毎に他の各配信サーバと通信を行い、他の各配信サーバの負荷状況を取得し、配信サーバリストに記憶しておく。通信ができなかった配信サーバは稼働していないものとし、稼働していないことを示す情報を配信サーバリストの当該配信サーバのエントリに格納する。また、各配信サーバは、所定時間毎に自機の負荷状況が所定の負荷レベルに達しているか否か判定し、達していたときは、自機の負荷状況が所定の負荷レベルに達している旨を他の配信サーバに通知し、達していなかったときは、自機の稼働状況を他の配信サーバに通知する。これにより、通信ができない状態となっていた配信サーバは、通信可能な状態になった際に、他の配信サーバに自機の稼働状況を通知するので、通信可能になったことを他の配信サーバに知らせることができる。全く新規の配信サーバを追加した場合も同様である。
【０００９】
各クライアントでは、初期値としてあらかじめいずれかの配信サーバが接続先として設定されており、起動時には設定されている配信サーバに接続するものとする。配信サーバは、クライアントからの配信情報取得要求を受け取ると、自機の負荷状況が所定の負荷レベルに達しているか否か判定する。例えば、現在管理しているクライアントの数を調べればよい。配信サーバは、自機の負荷状況が所定の負荷レベルに達している場合、配信サーバリストを参照して負荷が低い配信サーバを特定し、クライアントに対して前記特定した配信サーバへ再接続するように指示する。また、他の配信サーバに自機の負荷状況が前記所定の負荷レベルに達している旨を通知する。通知を受けた他の配信サーバは、配信サーバリストの当該配信サーバを示すエントリにその旨を記憶しておく。クライアントは、配信サーバから接続先の変更を指示されたら、変更した接続先配信サーバに接続する。
【発明の効果】
【００１０】
本発明の方式によれば、次のような効果がある。
（１）特定の配信サーバの負荷が増大（例えば、管理するクライアントの数の増大）した場合、負荷が低い（例えば、管理しているクライアントの数が少ない）配信サーバに管理させるようにクライアントからの接続を動的に切り替えるので、一部の配信サーバに負荷が集中することが無く、負荷が複数の配信サーバに分散されることになる。
（２）障害の発生などにより稼働していない配信サーバは、自動的に接続対象から除外されるので、クライアントが稼働していない配信サーバに接続要求を出すという無駄がなくなる。
（３）稼働していなかった配信サーバが稼働し始めたときに他の配信サーバに通知を出すことにより、自動的に接続可能な配信サーバとしてクライアントに認識される。このため、配信サーバ追加時の手間が軽減される。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を適用したクライアントサーバシステムの実施の一形態について説明する。
【００１２】
図１は、本発明の一実施形態であるクライアントサーバシステムのシステム構成を示している。１０１−１，１０１−２，…，１０１−ｎはそれぞれ配信サーバを示す。各配信サーバは、１０２−１，１０２−２，…，１０２−ｎに示すように記憶手段を備えており、ここに、本システムに接続されている全クライアントのリスト、全配信サーバの稼働状況を示す配信サーバリスト、および各クライアントに配信する配信情報を記憶している。各配信サーバは、矢印１０５に示すように、所定の時間間隔で他の配信サーバと通信を行い、通信の結果得られた情報から配信サーバリストを随時参照・更新する。これにより、各配信サーバは、本システムに接続されている全ての配信サーバの稼働状況を把握し、配信サーバリストとして保持していることになる。なお、矢印１０５に示す各配信サーバ同士の通信は、ネットワーク１０４を用いて行えばよい。
【００１３】
１０３−１，１０３−２，…，１０３−ｍはそれぞれ本システムに接続されているクライアントを示す。各クライアントは、本システムに接続するとき、まず所定の配信サーバに接続要求を送信する。各クライアントが初めに接続する配信サーバは、予め各クライアント毎に設定されているものとする。一旦、前記所定の配信サーバへ接続するが、その配信サーバの負荷が高い（大きい）場合などは接続先変更の指示があるので、クライアントは、その配信サーバからの指示に応じて接続先の配信サーバを切り換える。各配信サーバは、クライアントから接続要求が来た場合、自サーバの負荷の状態に応じて、必要であればそのクライアントに接続先変更の指示を出す。すなわち、自サーバの負荷が高い状態の場合、配信サーバは、配信サーバリストを参照して負荷が低い（小さい）状態にある配信サーバを見つけ、クライアントにその配信サーバへ接続先を変更するように指示を出す。
【００１４】
図２は、配信サーバリストに格納される内容例を示す。「サーバ名」は本システムに接続されている配信サーバの名称、「接続先」は各配信サーバのＩＰアドレス、「管理可能なクライアントの上限数」はその配信サーバのリソースに基づき接続を受け付けることができるクライアントの上限を示す値である。これらの項目は、予め各サーバ毎に決められているものとする。ただし、ＩＰアドレスを動的に決定したり、管理可能なクライアントの上限数を別途設定変更できるようにしたり動的に変更できるようにしてもよい。「稼働状態」は、各配信サーバの現在の稼働／停止状態を格納する欄である。「稼働状態」が「稼働」である配信サーバについては、「現在の管理しているクライアントの数」の欄に、その配信サーバに現在接続しているクライアントの数を格納する。「稼働状態」が「停止」であるサーバの「現在の管理しているクライアントの数」は意味を持たないので、図２では「−」としている。
【００１５】
図３は、クライアントの配信サーバ接続処理のフローである。本処理は、クライアントにおいて配信要求（何れかの配信サーバから配信情報を取得せよ、との指示）の操作が為された場合などの種々の契機で実行される。クライアントは、ステップ３０１で、一番初めに接続すべきものと予め設定されている配信サーバに対して接続要求を送信する。次に、ステップ３０２で、配信情報の取得要求を送信する。ステップ３０３で、配信サーバから接続先変更の指示があったか否か判定する。接続先変更の指示が無いときは、ステップ３０６で当該配信サーバから配信情報を取得し、ステップ３０７で当該配信サーバとの接続を解除する。ステップ３０３で、当該配信サーバから接続先変更の指示があった場合は、ステップ３０４で接続すべき配信サーバを指示された配信サーバに変更し、ステップ３０５で今接続している配信サーバ（接続先変更の指示を送信した配信サーバ）との接続を解除し、ステップ３０１に戻って、新たな配信サーバの接続から処理をやり直す。なお、クライアントは、取得した配信情報を、自クライアントの動作を制御する設定情報として設定する。
【００１６】
図４は、配信サーバの配信サーバリスト更新処理のフローである。本処理は、各配信サーバが、所定時間毎に実行するものとする。ステップ４０１で、他の配信サーバの稼働状況（「現在の管理しているクライアントの数」を含む）を取得する。取得した稼働状況は、自配信サーバ内の配信サーバリスト（図２）の「稼働状態」と「現在の管理しているクライアントの数」の欄に記載しておく。ステップ４０２で、自身の管理しているクライアントの数が上限に達しているか判定する。上限に達している場合は、ステップ４０３で、自身の稼働状況と管理しているクライアントの数が上限に達したことを他の全ての配信サーバに通知する。上限に達していない場合は、ステップ４０４で、自身の稼働状況を他の全ての配信サーバに通知する。なお、ステップ４０３，４０４での通知を受信した他の配信サーバでは、通知された情報に基づいて、自配信サーバ内の配信サーバリストの「現在の管理しているクライアントの数」および「稼働状態」の欄を更新するものとする。
【００１７】
なお、ステップ４０１の稼働状況の取得は、図２で説明した配信サーバリストに登録されている全配信サーバに稼働状況を問合せることにより行う。問合せ先の配信サーバから応答が無かったときは、その配信サーバは停止しているものとする。本システムに新規に配信サーバを接続したときには、その配信サーバにおいて図４の処理が実行され、その配信サーバが自身の稼働状況（サーバ名や接続先や管理可能なクライアントの上限数を含む）を他の全ての配信サーバに通知することになる。配信サーバは、他の配信サーバから稼働状況の通知が送信されてきた場合、その送信元の配信サーバが配信サーバリストに登録されていないときには、新たにその配信サーバに対応するエントリを配信サーバリストに登録し、稼働状況などの情報を設定する。これにより、新規に接続した配信サーバが、各配信サーバの配信サーバリストで管理可能になる。通信ができない状態となっていた配信サーバが通信可能な状態になった場合も同様である。
【００１８】
また、ステップ４０１で他の配信サーバの稼働状況を取得して配信サーバリストを更新する処理と、ステップ４０２〜４０４で自機の状況を他の配信サーバに通知する処理とを、別タスクで実行するようにしても良い。
【００１９】
図５は、配信サーバのクライアントからの接続要求に対する処理のフローである。本処理は、図３のステップ３０１，３０２で接続し配信情報取得要求がクライアントから送られてきたとき、それを受信した配信サーバの処理である。ステップ５０１で、クライアントからの接続要求（ステップ３０２の要求）を受信する。ステップ５０２で、現在自配信サーバで管理しているクライアントの数が上限に達しているか否か判定する。上限に達しているときは、ステップ５０３で、配信サーバリストを参照し、現時点で負荷が低い配信サーバを特定する。次に、ステップ５０４で、接続してきたクライアントに対して、負荷が低い配信サーバを特定してそのサーバへ再接続するように指示する。この再接続の指示が、図３のステップ３０３で説明した接続先変更の指示となる。次に、ステップ５０５で、他の全ての配信サーバに対して、管理しているクライアントの数が上限に達したことを通知する。この通知を受けた配信サーバは、自配信サーバ内の配信サーバリストの当該配信サーバに関する「現在の管理しているクライアントの数」の欄を上限の値に変更するものとする。
【００２０】
ステップ５０２で現在管理しているクライアントの数が上限に達していない場合は、ステップ５０６で、当該クライアントからの接続要求を受ける。この場合は、配信情報を当該クライアントに送信することになるので、その配信情報が図３のステップ３０６でクライアントで取得されることになる。
【００２１】
なお、上記図３のクライアントの配信サーバ接続処理において、当該クライアントの最初の接続先の配信サーバが（電源オフや障害発生などで）システムダウンしている場合は、最初から接続することができなくなってしまう。そこで、これを避けるため、各クライアントは、最初の接続先だけでなく、その最初の接続先に接続できなかった場合に次に接続すべき第２、第３、…の配信サーバのアドレスを保持しておき、最初の接続先に接続できなかった場合に、第２、第３、…の配信サーバに順に接続を試みるようにすると良い。
【００２２】
上記実施形態では、クライアントの設定情報を配信する例で説明したが、本発明は、その他の情報（例えばマルチメディアの各種のコンテンツ）の配信に適用することも可能である。ただし、上記実施形態で例に挙げたクライアントの設定情報は、クライアントの動作を制御するための情報であり、セキュリティ上は各クライアントで最新の設定情報としておくことは非常に重要である。本発明によれば、配信すべき設定情報が変更され、各クライアントからの配信要求が短い時間に集中的に発生したとしても、設定情報を迅速に各クライアントに配信することができる。
【００２３】
上記実施形態において、設定情報は、クライアント別あるいはクライアントの種別ごとに異なる設定情報を配信するようにしても良い。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施の形態例を示すシステム構成図である。
【図２】配信サーバリストの概略を示す図である。
【図３】クライアントの配信サーバ接続処理のフローである。
【図４】配信サーバの配信サーバリスト更新処理のフローである。
【図５】配信サーバのクライアントからの接続要求に対する処理のフローである。
【符号の説明】
【００２５】
１０１−１〜１０１−ｎ…配信サーバ、１０２−１〜１０２−ｎ…記憶手段、１０３−１〜１０３−ｍ…クライアント、１０４…ネットワーク。
【図１】
2010072894.tif 000003
【図２】
2010072894.tif 000004
【図３】
2010072894.tif 000005
【図４】
2010072894.tif 000006
【図５】
2010072894.tif 000007