(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述のように、ソフトウェアの更新にネットワークを利用することは今日では一般的に行われていることであり、かつ効率的なシステム運用に必須であるといえる。
【0006】
しかしながら、ネットワークの混雑時にソフトウェア更新のためのデータの送信を実行すれば、ネットワーク負荷が上昇し、業務トラフィックがひっ迫する。また、機器が高負荷状態にもかかわらずデータを受信させ、ソフトウェアの更新処理をさせることで、機器にさらに負荷をかけてしまい、処理効率低下を招く。
【0007】
本発明は、上記事情に鑑みてなされたものであり、管理者の手を煩わせることなく、ネットワークの混雑や機器の高負荷時間帯を避けてデータの送受信や機器の更新をすることで、上記問題を極小化することを目的とする。
【課題を解決するための手段】
【0008】
本発明にかかる配信システムは、第1のサーバ10、第2のサーバ20、および1以上の機器31ないし3nがネットワーク40で接続され、第1のサーバ10は、第2のサーバ20および前記機器31ないし3nとの間の通信状況をそれぞれ任意の時間間隔で取得する取得部12と、取得部12が取得した通信状況の履歴情報を格納する記憶部11と、第2のサーバ20および前記機器31ないし3nについてそれぞれ前記通信状況の履歴情報から通信閾値を導出する導出部13と、第2のサーバおよび前記機器31ないし3nについてそれぞれ現在の通信状況が前記通信閾値を満たすか否か判定する判定部14と、第2のサーバ20の現在の通信状況が前記通信閾値を満たす場合には前記第2のサーバ20からデータを取得し、前記機器31ないし3nの現在の通信状況が前記通信閾値を満たす場合には前記データを前記機器31ないし3nに送信する送受信部15と、を有することを特徴とする。
【0009】
本発明にかかる配信方法は、第1のサーバ10、第2のサーバ20、および1以上の機器31ないし3nがネットワーク40で接続され、第1のサーバ10は、第2のサーバ20および前記機器31ないし3nとの間の通信状況をそれぞれ任意の時間間隔で取得し、取得した通信状況の履歴情報を格納し、第2のサーバ20および前記機器31ないし3nについてそれぞれ前記通信状況の履歴情報から通信閾値を導出し、第2のサーバ20および前記機器31ないし3nについてそれぞれ現在の通信状況が前記通信閾値を満たすか否か判定し、第2のサーバ20の現在の通信状況が前記通信閾値を満たす場合には前記第2のサーバ20からデータを取得し、前記機器31ないし3nの現在の通信状況が前記通信閾値を満たす場合には前記データを前記機器31ないし3nに送信することを特徴とする。
【0010】
本発明にかかるプログラムは、第1のサーバ10、第2のサーバ20、および1以上の機器31ないし3nがネットワーク40で接続された配信システムにおいて、コンピュータに、前記第2のサーバ20および前記機器31ないし3nとの間の通信状況をそれぞれ任意の時間間隔で取得させ、取得した通信状況の履歴情報を格納させ、前記第2のサーバ20および前記機器31ないし3nについてそれぞれ前記通信状況の履歴情報から通信閾値を導出させ、前記第2のサーバ20および前記機器についてそれぞれ現在の通信状況が前記通信閾値を満たすか否か判定させ、前記第2のサーバ20の現在の通信状況が前記通信閾値を満たす場合には前記第2のサーバ20からデータを取得させ、前記機器31ないし3nの現在の通信状況が前記通信閾値を満たす場合には前記データを前記機器31ないし3nに送信させることを特徴とする。
【発明の効果】
【0011】
第1の効果は、ネットワーク40の負荷を抑制できることにある。その理由は、導出部13が現在のネットワーク40の通信状況を過去の通信状況の履歴情報から判定するための閾値を生成し、判定部14がその閾値によりデータを送受信するのに好適であると判定したときに、送受信部15がデータを自動で送受信するからである。
【0012】
第2の効果は、機器31ないし3nの負荷を抑制できることにある。その理由は、判定部14が機器31ないし3nの負荷を閾値判定し、送受信部15が機器31ないし3nの負荷に応じて更新データの転送すること、および適用指示部17が適用を指示することの、それぞれのタイミングを制御するからである。
【発明を実施するための形態】
【0013】
(第1の実施の形態)
図1に、本発明の第1の実施形態の配信システムの構成を示す。第1のサーバ10、第2のサーバ20、機器31ないし機器3nが、ネットワーク40に接続されている。ネットワーク40は、ローカルネットワークであってもインターネットであっても、あるいはそれらが混在していてもよい。ネットワーク40は、図示しない有線または無線のネットワークスイッチ等により構成される。
【0014】
本発明における機器について説明する。機器とは例えば、通信機能を持つネットワーク機器、サーバ機器、モバイル機器および組み込み機器等である。これらは、ソフトウェアで動作するものとする。本発明のソフトウェアは、ファームウェア、OS(Operating System)、アプリケーション等を意味する。機器のソフトウェアは、更新プログラムを実行したり、ファイルを置換したりすることにより更新されることが可能であるとする。さらに機器の更新に必要なファイル等であるデータはネットワークを介して当該機器に送信することができるものとする。
【0015】
第1のサーバ10について説明する。第1のサーバ10とは、第2のサーバ20からデータを受信し、さらに当該データを機器31ないし3nに送信するための、管理サーバである。第1のサーバ10は、記憶部11、取得部12、導出部13、判定部14、送受信部15、およびデータ格納部16を備える。
【0016】
第2のサーバ20について説明する。第2のサーバ20とは、第1のサーバ10にデータを送信するための、更新プログラム配信サーバである。第2のサーバ20は、送受信部21、データ格納部22を備える。第2のサーバ20は第1のサーバ10と通信可能であるものとする。好適な例では、第2のサーバ20はインターネットに配備されネットワーク40を介して第1のサーバ10に公開されている。第2のサーバ20はデータ格納部22にデータを格納しているものとする。但し、第2のサーバ20が自らデータを格納せずに他のサーバが格納するデータを中継して提供する手段を有してもよく、そうであっても本願発明の本質に何ら影響を与えない。
【0017】
第2のサーバ20が保持するデータについて説明する。データはその実体としてビット列を有するほか、属性情報を有する。属性情報の具体例を
図2に示す。属性情報は少なくとも名前を有する。名前は可読文字列であってもよいし、情報を表す非可読ビット列であってもよい。属性情報はさらに重要度を有する。本実施形態において重要度は「大」または「小」である。本実施形態において重要度は第2のサーバ20が決定する。但し第1のサーバ10がデータの名前に基づいて重要度を判断する構成にしても構わない。
【0018】
なお一般的に、異なる種類の機器は、異なるソフトウェアを有する。従って、本願発明の配信システムが複数の種類の機器を包含する場合には、属性情報は機器を特定する情報を有し、送受信部15はその情報により特定される機器に対してのみデータを送信するようにしても構わない。
【0019】
処理の全体の流れを
図3のフローチャートF100を用いて説明する。F101では、取得部12が一定の間隔で取得した通信状況を、記憶部11が時系列の情報として蓄積する。F102では、導出部13が、F101で記憶部11が蓄積した時系列の通信状況から、任意の通信状況を判定する閾値を導出する。F103では、判定部14がF102で導出した閾値を使いF101で取得している現在の通信状況を判定し、送受信部15は通信状況が判定基準を満たしたならば第2のサーバ20からデータを受信する。F104では、送受信部15が機器それぞれへF103において受信したデータを送信する。
【0020】
以下に、この流れに沿ってそれぞれのステップを詳細に説明する。
図3のF101を、
図4のフローチャートF200を用いて詳細に説明する。
【0021】
取得部12は、測定対象である第2のサーバ20と機器31ないし3nそれぞれについて、通信状況を任意の一定時間間隔で取得する(F201)。本実施形態において通信状況とは、第1のサーバ10と測定対象の間の、エンドツーエンドのネットワークの実効通信速度[バイト毎秒]である。計測方法は例えば次の通りである。第1のサーバ10の取得部12がpingコマンドを実行して測定対象にICMP(Internet Control Message Protocol)ECHOパケットを送出する。その後、測定対象が対応していれば、取得部12は当該測定対象からのICMP ECHO REPLYパケットを受信する。ICMPパケットはデータサイズを任意に変更可能である。送信開始から受信完了までの時刻の差を計測して所要時間とし、式(1)に当てはめることで、サーバ1と当該測定対象の間のネットワークの実効通信速度を大まかに推測することができる。
【0022】
実効通信速度≒(データサイズ×2)÷所要時間[バイト毎秒] ・・・(1)
例えば、データサイズが100キロバイト、所要時間が10ミリ秒の場合、20メガバイト毎秒の実効通信速度であることが大まかに推測できる。本実施形態では、取得部12は1時間間隔で実行通信速度を取得するものとする。なお実行速度は計測を実施したときの実測値であり、計測するたびに変化するものと考える。
【0023】
なお、通信状況の取得の方法は、前述のICMPパケットによる方法に限られない。例えば通信状況の取得には、SNMP(Simple Network Management Protocol)等を利用可能である。
【0024】
また、測定対象の通信状況の取得の別の手段として、当該測定対象と第1のサーバ10の経路上の、それらいずれでもない中間のネットワーク機器の通信状況を代替で取得して利用することも可能である。そうすることにより、測定対象がICMP ECHO REPLYを返却することができない場合などにおいても、通信状況を近似的に求めることが可能である。
【0025】
取得部12は次に、取得した通信状況を記憶部11に格納し、記憶部11は前記測定対象毎に、時系列の通信状況を保持する(F202)。本実施形態では、記憶部11は機器それぞれについて過去1週間分の通信状況の情報を保持する。したがって、測定対象毎に168個(7日×24時間)の通信状況の情報を保持することになる。なお通信状況は、逐次更新するものとする。
【0026】
図5に記憶部11が保持する通信状況の情報を例示する。記憶部11は、テーブル11aを有する。テーブル11aは、測定対象である第2のサーバ20と機器31ないし機器3nを有する。時刻は2012年2月6日0時0分から開始し1時間間隔で取得部12が通信状況を測定対象それぞれについて1週間分を取得し、記憶部11がそれを保持している。
【0027】
記憶部11には異なる実施形態がありうる。機器の通信状況には閑散期と繁忙期が存在する可能性がある。閑散期とは、その機器がほとんど処理リクエストを受けることがない時期ないし期間を意味する。後述する導出部13は通信状況を判定する閾値を導出する際に、閑散期のみを含む期間の情報から閾値を導出すると、その閾値は閑散期に適したものにはなるが、繁忙期には適するとは言えない。繁忙期の通信状況は全体的に閑散期のそれを上回り、閑散期で導出した閾値は繁忙期の判定には低すぎて適さず、その結果としてデータの送信が適切に行われないからである。そこで、記憶部11は機器それぞれに、異なる時期における一定の期間の情報を別々に保持し、状況に応じて好適なものを提供できるようにしてもよい。
【0028】
図3のF102を、
図6のフローチャートF300を用いて詳細に説明する。
【0029】
導出部13は記憶部11に格納された通信状況の情報を読み取る(F301)。
【0030】
次に1段階以上の閾値を導出する(F302)。本実施形態では閾値は2段階である。但し2以上に段階を増やしても構わない。
導出部13は、2段階の閾値として、低い方をT1、高い方をT2として、T1とT2を決定する。その具体的方法は次の通りである。測定対象毎に、記憶部11に蓄積されている過去の1週間分の通信状況の値を降順ソートし、168個の値を3等分すべく、56番目のデータと57番目のデータの中間がT2、112番目と113番目のデータの中間がT1となる。
図7に具体例を示す。表11bは、1週間の通信状況である11aを導出部13の処理に従い降順ソートした結果である。第2のサーバ20、機器31および機器3nについての結果はそれぞれ、11b(1)、11b(2)、11b(3)である。
【0031】
図8に導出部13が導出した閾値14aを例示する。第2のサーバ20について、T1は(32+25)/2=28.5、T2は(50+50)/2=50となる。また、閾値を手動で決めたい場合は通信状況のデータをユーザが直接確認して手動で設定してもよい。この処理で決定された第1のサーバ10と各機器間の通信状況の閾値T1、T2は判定部14が記憶する(F403)。
【0032】
図3のF103を、
図9のフローチャートF400を用いて詳細に説明する。
【0033】
送受信部15は、第2のサーバ20を定期的にポーリングするか、若しくは第2のサーバから通知を受信する等により、第2のサーバ20に受信すべきデータが存在していることを知ると、F400が開始する。そのダウンロードすべきデータの重要度を調べ、重要度が大であるときは、送受信部15は第2のサーバ20と通信を行い、第2のサーバ20が保持するデータを受信し(F401およびF405)、重要度が大ではない場合は、F402に進む。
【0034】
また判定部14は、受信可否判定条件を有する。受信可否判定条件とはネットワーク40が、第1のサーバ10が第2のサーバ20からデータを受信できる状態であるか否かを判定する基準である。初期の受信可否判定条件は「A判定以上」とする(F402)。つまり通信状況がA判定である場合に受信を行う。なお、A判定とは通信状況がT1未満であることを意味し、B判定とは通信状況がT1以上T2未満であることを意味し、C判定とは通信状況がT2以上であることを意味する。
【0035】
取得部12は、一定時間間隔で現在の第2のサーバとの間の測定対象の通信状況を取得する(F403)。
【0036】
判定部14は取得した通信状況を、閾値を用いて受信可否判定条件を満たすか否か判定する(F404)。ここで通信状況がA判定であった場合には、送受信部15は第2のサーバ20と通信を行い、第2のサーバ20が保持するデータを受信する(F405)。ダウンロードしたデータは、データ格納部16に格納する。
【0037】
判定結果がA判定ではなかった場合には、1分間隔で5回を上限としてF406、F407およびF408を繰り返し、1分毎の通信状況を閾値と受信可否判定条件を用いて判定する。繰り返しの途中で一度でもA判定が得られた場合にはデータを受信する。5回連続でA判定が得られなかった場合には、タイムアウト時間の経過が開始する(F406)。なお、タイムアウト時間は、F406における最初のYESが実行された場合に開始するものとする。
【0038】
上記に引き続き、第2タイムアウトが経過したか否かを判定する(F408)。経過した場合には、たとえその時点で受信可否判定条件を満たしているか否かにかかわらず、データ受信が実行される(F405)。第2タイムアウトが経過していない場合には、第1タイムアウトが経過しているか否かを判定する(F409)。第1タイムアウトが経過していた場合には、受信可否判定条件を「AまたはB判定以上」と設定してF403から開始する。第1タイムアウトが経過していない場合には、受信可否判定条件を変更することなくF403に戻る。再度通信状況が受信可否判定条件を満たさず、F406が実行されるときには、新たに5回を上限とするF406、F407およびF408が実行される。
【0039】
判定部14と送受信部15は、第2のサーバ20から受信すべきデータが無くなるまで上記処理を継続するものとする。
【0040】
図3のF104を、
図10のフローチャートF500を用いて詳細に説明する。
F103においてデータを受信すると、そのデータを機器31ないし3nそれぞれに送信するために、それぞれの送信ごとにF500が開始される。
【0041】
送受信部15は、第2のサーバ20から受信したデータを確認し、データの重要度が大であるときは、通信状況によらず当該データを当該機器に送信する(F501およびF505)。データの重要度が大ではない場合は、F502に進む。
【0042】
取得部12は、一定時間間隔で機器31ないし3nそれぞれとの間の測定対象の現在の通信状況を取得する(F503)。
【0043】
判定部14は、送信可否判定条件を有している。送信可否判定条件とは、ネットワーク40が、送信対象である機器に対して第1のサーバ10がデータを送信できる状態であるか否かを判定する基準である。初期の送信可否判定条件は「A判定以上」とする(F402)。つまり機器の通信状況がA判定である場合に送信を行う。判定部14は送信対象の機器についてその機器の通信状況を、その機器に対応する閾値を用いて送信可否判定条件を満たすか否か判定する(F504)。なお判定AないしCの定義は、前述のとおりである。
送信可否判定条件がA判定であった場合には、送受信部15は当該機器と通信を行い、データを当該機器に送信する(F505)。
【0044】
判定結果であるA判定ではなかった場合には、1分間隔で5回を上限としてF506、F507およびF508を繰り返し、1分毎の通信状況を閾値と送信可否判定条件を用いて判定する。繰り返しの途中で一度でもA判定が得られた場合にはデータを送信する。5回連続でA判定が得られなかった場合には、タイムアウト時間の経過が開始する(F506)。なお、タイムアウト時間は、F506における最初のYESが実行された場合に開始するものとする。
【0045】
上記に引き続き、第2タイムアウトが経過したか否かを判定する(F508)。経過した場合には、たとえその時点で送信可否判定条件を満たしているか否かにかかわらず、データ送信実行がなされる(F505)。第2タイムアウトが経過していない場合には、第1タイムアウトが経過しているか否かを判定する(F509)。第1タイムアウトが経過していた場合には、送信可否判定条件を「AまたはB判定以上」と設定して、F503から開始する(F509およびF510)。第1タイムアウトが経過していない場合には、送信可否判定条件を変更することなくF503に戻る。
【0046】
当該機器に送信するデータは、過去に送信したことがあるか否かを、送信したデータを記録する送信履歴表を確認し、過去に送信したことが無い場合に限り送信するとしてもよい。
【0047】
(第1の実施の形態の効果)
ネットワーク40の負荷を抑制できることにある。その理由は、導出部13が現在のネットワーク40の通信状況を過去の通信状況の履歴情報から判定するための閾値を生成し、判定部14がその閾値によりデータを送受信するのに好適であると判定したときに、送受信部15がデータを自動で送受信するからである。
【0048】
(第2の実施の形態)
機器には、処理リクエストに応じ負荷が発生する。負荷とは例えばCPU(Central Processing Unit)の使用率(%)、メモリの使用率(%)、ディスクI/O数(IOPS)、ネットワークインタフェースの単位時間当たりの転送量(Bytes毎秒)、電力消費量(W)などを意味する。
【0049】
このような負荷は、前述のデータ送信にも伴い上昇する。従ってデータの送信により、本来業務処理に処理効率の低下などの影響を及ぼす。ソフトウェアの更新は緊急性等を鑑みて必ずしも即時実施をしなくてもよいものもある。かかる更新は機器への処理リクエストが減ってから実施しても遅くはない。そこで本実施形態では機器の負荷が高い場合には、負荷が低くなるまでソフトウェアの送信を待ち合わせることをする。
【0050】
第2の実施例では、
図10における分岐F504は、通信状況が判定条件を満たすことに加え、機器の負荷が一定の閾値を満たすことを条件とすることを特徴とする。機器の負荷は手動で設定してもよい。
【0051】
(第2の実施の形態の効果)
機器31ないし3nの負荷を抑制できることにある。その理由は、判定部14が、機器31ないし3nの負荷を閾値判定し、送受信部15が機器31ないし3nの負荷に応じて更新データの転送することを制御するからである。
【0052】
(第3の実施の形態)
図11に、本発明の第3の実施形態の配信システムの構成を示す。
【0053】
図11に示すように、本実施形態の配信システムは、
図1に示した第1の実施形態と比較して、第1のサーバ10に適用指示部17を設けている点が異なっている。他の構成要素については、第1の実施形態と同様であるため、
図1と同様の符号を付し説明を省略する。
機器に送信したデータを当該機器に適用させるには、具体的には、例えば、Telnet(Telecommunication network)やSSH(Secure Shell)で機器にログインして、当該データを適用するコマンドを実行する。これにより、機器のソフトウェアやファームウェアが更新され、機能の追加や更新、セキュリティホールの修正がなされる。しかし、データの適用に伴う処理がそのホストの負荷を増大させることが考えられる。そこで、適用指示部17は機器の負荷をなるべく増大させないようにしつつデータの適用の指示を実行する。
【0054】
図12を用いて処理の流れを説明する。適用指示部17は、機器が未適用データを保持していることを把握する(F600)。適用指示部17は次に、当該未適用データが、データ重要度が大であるか否かを判断する(F601)。大である場合には、機器の負荷によらず前述の方法によりデータ適用の指示を実行する(F602)。大ではない場合、機器の負荷が負荷閾値を満たすか否かを判断する(F603)。
【0055】
閾値を満たさない場合には、所定の時間待ち合わせる(F604)。本実施形態では1分間としているが、これに限らない。負荷閾値を満たすまで、判断(F603)と待ち合わせ(F604)を繰り返す。
【0056】
以上により、機器の負荷が低いときにデータを適用することで、負荷の増大を抑え、処理効率の低下が発生することを低減することができる。
【0057】
(第3の実施の効果)
機器31ないし3nの負荷を抑制できることにある。その理由は、送受信部15が、機器31ないし3nの負荷を閾値判定し、送受信部15が機器31ないし3nの負荷に応じて更新することのタイミングを制御するからである。
【図面の簡単な説明】
【0058】
【
図1】本発明の第1の実施形態の構成を示すブロック図である。
【
図2】本発明の第1の実施形態のデータの属性情報を示す図である。
【
図3】本発明の第1の実施形態の処理の流れを示すフローチャートである。
【
図4】本発明の第1の実施形態の取得部12が一定の間隔で取得した通信状況を、記憶部11が時系列の情報として蓄積する処理の流れを示すフローチャートである。
【
図5】本発明の第1の実施形態の記憶部11が保持する通信状況の情報を例示する図である。
【
図6】本発明の第1の実施形態の導出部13が、F101で記憶部11が蓄積した時系列の通信状況から、任意の通信状況を判定する閾値を導出する処理の流れを示すフローチャートである。
【
図7】本発明の第1の実施形態の記憶部11に蓄積されている過去の1週間分の通信状況の値の降順ソートを例示する図である。
【
図8】本発明の第1の実施形態の導出部13が導出した閾値14aを例示する図である。
【
図9】本発明の第1の実施形態の判定部14が、F102で導出した閾値を使い、F101で取得している現在の通信状況を判定し、通信状況が判定基準を満たしたならば、送受信部15が第2のサーバ20からデータを受信する処理の流れを示すフローチャートである。
【
図10】本発明の第1の実施形態の送受信部15が機器それぞれへF103において受信したデータを送信する処理の流れを示すフローチャートである。
【
図11】本発明の第3の実施形態の構成を示すブロック図である。
【
図12】本発明の第3の実施形態の処理の流れを示すフローチャートである。