(57)【要約】【課題】マスタ／スレーブの設定を変更することなく、システム全体のプログラム更新時間を短縮する。【解決手段】実施形態によれば、通信システムは、第１のサーバ装置を備える。第１のサーバ装置は、記憶手段と、決定手段と、送信手段とを備える。記憶手段は、残りの複数のサーバ装置を複数のグループに分け、当該グループと、サーバ装置とを対応付けたグループ管理テーブルを記憶する。決定手段は、予め設定された条件に基づいて、各グループごとに代表とする第２のサーバ装置を決定する。送信手段は、グループ管理テーブルを参照し、この参照結果に基づいて、更新用プログラム、及びグループに属するサーバ装置を示すサーバ情報を含むプログラム更新指示を各グループの第２のサーバ装置へ送信する。第２のサーバ装置は、プログラム更新後、サーバ情報に基づいて、同一グループ内の複数のサーバ装置へ更新用プログラムを送信して更新用プログラムに更新させる。【選択図】図１０
2013223094.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信端末間の交換処理に係るプログラムが設定可能で、設定されたプログラムによる処理を実行するプログラム設定部を有する複数のサーバ装置を備え、前記複数のサーバ装置間を通信ネットワークを介して接続する通信システムにおいて、
前記複数のサーバ装置のうち少なくとも１つとなる第１のサーバ装置は、
残りの複数のサーバ装置を複数のグループに分け、当該グループと、前記サーバ装置とを対応付けたグループ管理テーブルを記憶する記憶手段と、
予め設定された条件に基づいて、前記グループ管理テーブル中の各グループごとに代表とする第２のサーバ装置を決定し、前記グループに対応付けて前記グループ管理テーブルに記憶する決定手段と、
前記プログラムを更新するとき、前記グループ管理テーブルを参照し、この参照結果に基づいて、更新用プログラム、及びグループに属するサーバ装置を示すサーバ情報を含むプログラム更新指示を各グループの第２のサーバ装置へ送信する送信手段とを具備し、
前記第２のサーバ装置は、
前記第１のサーバ装置から前記プログラム更新指示を受信する時、前記プログラム設定部に設定されているプログラムを前記プログラム更新指示に含まれる更新用プログラムに更新した後、前記サーバ情報に基づいて、同一グループ内の複数のサーバ装置へ更新用プログラムを送信して前記プログラム設定部のプログラムを更新用プログラムに更新させる更新制御手段を備える通信システム。
【請求項２】
前記複数のサーバ装置は、使用可能なハードウェア回路またはメモリ容量に関するハードウェア種別情報を記憶し、
前記決定手段は、前記条件として、各グループごとの複数のサーバ装置からハードウェア種別情報を収集し、これら複数のハードウェア種別情報のうち最も性能の高いハードウェア種別情報に対応するサーバ装置を第２のサーバ装置に決定する請求項１記載の通信システム。
【請求項３】
前記決定手段は、前記条件として、各グループごとに、各サーバ装置のプログラム更新処理の時間情報を蓄積し、各グループにおいて最も更新処理時間が短いサーバ装置を、次回のプログラム更新時の第２のサーバ装置に決定する請求項１記載の通信システム。
【請求項４】
前記第１のサーバ装置は、予め設定された条件に基づいて、前記グループ管理テーブルの生成または更新を実行するグループ生成手段をさらに備える請求項１記載の通信システム。
【請求項５】
前記グループ生成手段は、前記条件の判断に、測位衛星信号及び前記複数のサーバ装置にそれぞれ割り当てられるＩＰ(Internet Protocol)アドレスの少なくとも１つを用いる請求項４記載の通信システム。
【請求項６】
前記グループ生成手段は、前記条件として、前記複数のサーバ装置にそれぞれ割り当てられるＩＰ(Internet Protocol)アドレス及びサブネットマスク情報に基づいて、同一サブネットの複数のサーバ装置が同じグループとなるように、前記グループ管理テーブルの生成または更新を実行する請求項４記載の通信システム。
【請求項７】
前記グループ生成手段は、前記条件として、各グループごとの前記プログラムの更新完了時間情報を保持し、前記更新完了時間情報が予め設定された閾値を超えたグループを複数グループに分割し、
前記決定手段は、予め設定された条件に基づいて、分割グループごとに代表とする第２のサーバ装置を決定し、
前記送信手段は、前記プログラムを更新するとき、前記グループ管理テーブルを参照し、この参照結果に基づいて、前記プログラム更新指示を各分割グループの第２のサーバ装置へ送信する請求項４記載の通信システム。
【請求項８】
前記グループ生成手段は、前記条件として、前記プログラムの更新指示の送出時から前記プログラムの更新完了時までの時間が最も長いサーバ装置を検出し、当該サーバ装置を１つのグループに対応付けるように、前記グループ管理テーブルの生成または更新を実行する請求項４記載の通信システム。
【請求項９】
複数の通信端末が登録される管理サーバ装置において、
複数の通信端末間の交換処理に係るプログラムが設定可能で、設定されたプログラムによる処理を実行する複数のサーバ装置を複数のグループに分け、当該グループと、前記サーバ装置とを対応付けたグループ管理テーブルを記憶する記憶手段と、
予め設定された条件に基づいて、前記グループ管理テーブル中の各グループごとに代表のサーバ装置を決定し、前記グループに対応付けて前記グループ管理テーブルに記憶する決定手段と、
前記プログラムを更新するとき、前記グループ管理テーブルを参照し、この参照結果に基づいて、更新用プログラム、及びグループに属するサーバ装置を示すサーバ情報を含むプログラム更新指示を各グループの代表のサーバ装置へ送信する送信手段とを具備する管理サーバ装置。
【請求項１０】
前記決定手段は、前記条件として、各グループごとの複数のサーバ装置から使用可能なハードウェア回路またはメモリ容量に関するハードウェア種別情報を収集し、これら複数のハードウェア種別情報のうち最も性能の高いハードウェア種別情報に対応するサーバ装置を代表のサーバ装置に決定する請求項９記載の管理サーバ装置。
【請求項１１】
前記決定手段は、前記条件として、各グループごとに、各サーバ装置のプログラム更新処理の時間情報を蓄積し、各グループにおいて最も更新処理時間が短いサーバ装置を、次回のプログラム更新時の代表のサーバ装置に決定する請求項９記載の管理サーバ装置。
【請求項１２】
予め設定された条件に基づいて、前記グループ管理テーブルの生成または更新を実行するグループ生成手段をさらに備える請求項９記載の管理サーバ装置。
【請求項１３】
前記グループ生成手段は、前記条件の判断に、測位衛星信号及び前記複数のサーバ装置にそれぞれ割り当てられるＩＰ(Internet Protocol)アドレスの少なくとも１つを用いる請求項１２記載の管理サーバ装置。
【請求項１４】
前記グループ生成手段は、前記条件として、前記複数のサーバ装置にそれぞれ割り当てられるＩＰ(Internet Protocol)アドレス及びサブネットマスク情報に基づいて、同一サブネットの複数のサーバ装置が同じグループとなるように、前記グループ管理テーブルの生成または更新を実行する請求項１２記載の管理サーバ装置。
【請求項１５】
前記グループ生成手段は、前記条件として、各グループごとの前記プログラムの更新完了時間情報を保持し、前記更新完了時間情報が予め設定された閾値を超えたグループを複数グループに分割し、
前記決定手段は、予め設定された条件に基づいて、分割グループごとに代表のサーバ装置を決定し、
前記送信手段は、前記プログラムを更新するとき、前記グループ管理テーブルを参照し、この参照結果に基づいて、前記プログラム更新指示を各分割グループの代表のサーバ装置へ送信する請求項１２記載の管理サーバ装置。
【請求項１６】
前記グループ生成手段は、前記条件として、前記プログラムの更新指示の送出時から前記プログラムの更新完了時までの時間が最も長いサーバ装置を検出し、当該サーバ装置を１つのグループに対応付けるように、前記グループ管理テーブルの生成または更新を実行する請求項１２記載の管理サーバ装置。
【請求項１７】
複数の通信端末間の交換処理に係るプログラムが設定可能で、設定されたプログラムによる処理を実行するプログラム設定部を有する複数のサーバ装置を備え、前記複数のサーバ装置間を通信ネットワークを介して接続する通信システムで使用されるプログラム更新制御方法において、
前記複数のサーバ装置のうち少なくとも１つとなる第１のサーバ装置は、
残りの複数のサーバ装置を複数のグループに分け、当該グループと、前記サーバ装置とを対応付けたグループ管理テーブルをメモリに記憶し、
予め設定された条件に基づいて、前記グループ管理テーブル中の各グループごとに代表とする第２のサーバ装置を決定し、前記グループに対応付けて前記グループ管理テーブルに記憶し、
前記プログラムを更新するとき、前記グループ管理テーブルを参照し、この参照結果に基づいて、更新用プログラム、及びグループに属するサーバ装置を示すサーバ情報を含むプログラム更新指示を各グループの第２のサーバ装置へ送信し、
前記第２のサーバ装置は、
前記第１のサーバ装置から前記プログラム更新指示を受信する時、前記プログラム設定部に設定されているプログラムを前記プログラム更新指示に含まれる更新用プログラムに更新した後、前記サーバ情報に基づいて、同一グループ内の複数のサーバ装置へ更新用プログラムを送信して前記プログラム設定部のプログラムを更新用プログラムに更新させるプログラム更新制御方法。
【請求項１８】
前記複数のサーバ装置は、使用可能なハードウェア回路またはメモリ容量に関するハードウェア種別情報を記憶し、
前記決定することは、前記条件として、各グループごとの複数のサーバ装置からハードウェア種別情報を収集し、これら複数のハードウェア種別情報のうち最も性能の高いハードウェア種別情報に対応するサーバ装置を第２のサーバ装置に決定する請求項１７記載のプログラム更新制御方法。
【請求項１９】
前記決定することは、前記条件として、各グループごとに、各サーバ装置のプログラム更新処理の時間情報を蓄積し、各グループにおいて最も更新処理時間が短いサーバ装置を、次回のプログラム更新時の第２のサーバ装置に決定する請求項１７記載のプログラム更新制御方法。
【請求項２０】
前記第１のサーバ装置は、予め設定された条件に基づいて、前記グループ管理テーブルの生成または更新を実行することをさらに備える請求項１７記載のプログラム更新制御方法。
【請求項２１】
前記生成することは、前記条件の判断に、測位衛星信号及び前記複数のサーバ装置にそれぞれ割り当てられるＩＰ(Internet Protocol)アドレスの少なくとも１つを用いる請求項２０記載のプログラム更新制御方法。
【請求項２２】
前記生成することは、前記条件として、前記複数のサーバ装置にそれぞれ割り当てられるＩＰ(Internet Protocol)アドレス及びサブネットマスク情報に基づいて、同一サブネットの複数のサーバ装置が同じグループとなるように、前記グループ管理テーブルの生成または更新を実行する請求項２０記載のプログラム更新制御方法。
【請求項２３】
前記生成することは、前記条件として、各グループごとの前記プログラムの更新完了時間情報を保持し、前記更新完了時間情報が予め設定された閾値を超えたグループを複数グループに分割し、
前記決定することは、予め設定された条件に基づいて、分割グループごとに代表とする第２のサーバ装置を決定し、
前記送信することは、前記プログラムを更新するとき、前記グループ管理テーブルを参照し、この参照結果に基づいて、前記プログラム更新指示を各分割グループの第２のサーバ装置へ送信する請求項２０記載のプログラム更新制御方法。
【請求項２４】
前記生成することは、前記条件として、前記プログラムの更新指示の送出時から前記プログラムの更新完了時までの時間が最も長いサーバ装置を検出し、当該サーバ装置を１つのグループに対応付けるように、前記グループ管理テーブルの生成または更新を実行する請求項２０記載のプログラム更新制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、例えばＩＰ(Internet Protocol)電話システムといった通信システム、管理サーバ装置及びプログラム更新制御方法に関する。
【背景技術】
【０００２】
近年、ＬＡＮ（Local Area Network）やインターネットといったＩＰ(Internet Protocol)網を介して、双方向に画像や音声をパケットデータとして、リアルタイムに送受信するＩＰ電話システムが普及している。このＩＰ電話システムでは、ＩＰ網に複数のサーバ装置が接続され、各サーバ装置ごとにＩＰ電話端末を登録できるようになっている。このようなＩＰ電話システムでは、内線間通信や外線発着信を行えることは勿論のこと、ＩＰ網を経由したサーバ装置間での内線通信や外線発着信を行うことができる。
【０００３】
ところで、上記ＩＰ電話システムでは、各サーバ装置にプログラムを予め記憶しておき、プログラムに基づいて個々の交換動作及びシステム全体の動作を実行するように構成されている。このため、サーバ装置の増設やシステムのバージョンアップなどを行う場合には、プログラムの更新を行う必要がある。ここで、近年では、各サーバ装置のプログラムを更新する場合、ある１台をマスタ、その他のサーバ装置をスレーブとして構成し、マスタが更新された後、その配下にある各スレーブはマスタから更新プログラムをダウンロードし、自サーバ装置のプログラムを更新する方法が採られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−１８７５２０号公報
【特許文献２】特開２００８−２７６５５３号公報
【特許文献３】特開２０１０−６１５５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記ＩＰ電話システムでは、マスタサーバ装置に対し、複数のスレーブサーバ装置からのダウンロード要求が同一時間帯に集中すると、マスタサーバの処理負荷が大きくなり、全体としてプログラム更新に多くの時間を必要とする。特に、システムの規模が大きくなればなるほど顕著となる。
【０００６】
また、負荷を分散するために、マスタサーバ装置の数を増やすとしても、その分マスタサーバ装置、スレーブサーバ装置それぞれに対して保守者が設定変更を行う必要があるため、保守者には大きな負担となる。
【０００７】
本発明の目的は、マスタ／スレーブの設定を変更することなく、システム全体のプログラム更新時間を短縮し得る通信システム、管理サーバ装置及びプログラム更新制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
実施形態によれば、通信システムは、複数の通信端末間の交換処理に係るプログラムが設定可能で、設定されたプログラムによる処理を実行するプログラム設定部を有する複数のサーバ装置を備え、前記複数のサーバ装置間を通信ネットワークを介して接続する通信システムを対象とし、複数のサーバ装置のうち少なくとも１つとなる第１のサーバ装置を備える。第１のサーバ装置は、記憶手段と、決定手段と、送信手段とを備える。記憶手段は、残りの複数のサーバ装置を複数のグループに分け、当該グループと、サーバ装置とを対応付けたグループ管理テーブルを記憶する。決定手段は、予め設定された条件に基づいて、グループ管理テーブル中の各グループごとに代表とする第２のサーバ装置を決定し、グループに対応付けてグループ管理テーブルに記憶する。送信手段は、プログラムを更新するとき、グループ管理テーブルを参照し、この参照結果に基づいて、更新用プログラム、及びグループに属するサーバ装置を示すサーバ情報を含むプログラム更新指示を各グループの第２のサーバ装置へ送信する。第２のサーバ装置は、更新制御手段を備える。更新制御手段は、第１のサーバ装置からプログラム更新指示を受信する時、プログラム設定部に設定されているプログラムをプログラム更新指示に含まれる更新用プログラムに更新した後、サーバ情報に基づいて、同一グループ内の複数のサーバ装置へ更新用プログラムを送信してプログラム設定部のプログラムを更新用プログラムに更新させる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係るＩＰ電話システムの概略構成図。
【図２】上記図１に示したマスタサーバ（Ｍ１）の構成を示すブロック図。
【図３】上記図２に示したプログラム設定テーブルの記憶内容の一例を示す図。
【図４】上記図２に示したハードウェア種別情報記憶部の記憶内容の一例を示す図。
【図５】上記図２に示したグループ管理テーブルの記憶内容の一例を示す図。
【図６】上記図２に示したサーバ−ハードウェア管理テーブルの記憶内容の一例を示す図。
【図７】上記図１に示したスレーブサーバの構成を示すブロック図。
【図８】第１の実施形態において、マスタサーバ（Ｍ１）におけるスレーブサーバのＩＰアドレス及びハードウェア種別情報の取得手順を示すフローチャート。
【図９】第１の実施形態において、マスタサーバ（Ｍ１）から各スレーブへ更新プログラムの配信を行うシーケンス図。
【図１０】第１の実施形態において、プログラム更新における保守端末と、マスタサーバ（Ｍ１）と、サブマスタサーバと、スレーブサーバとの間の情報の送受信動作を示すシーケンス図。
【図１１】第２の実施形態に係るマスタサーバ（Ｍ１）の制御部及びＨＤＤそれぞれの要部構成を示すブロック図。
【図１２】第３の実施形態に係るマスタサーバ（Ｍ１）の制御部及びＨＤＤそれぞれの要部構成を示すブロック図。
【図１３】第３の実施形態の変形例に係るマスタサーバ（Ｍ１）の制御部及びＨＤＤそれぞれの要部構成、及び各スレーブサーバにＧＰＳ受信機を備えた例を示すブロック図。
【図１４】第４の実施形態に係るマスタサーバ（Ｍ１）の制御部及びＨＤＤそれぞれの要部構成を示すブロック図。
【発明を実施するための形態】
【００１０】
以下、実施の形態について、図面を参照して説明する。
【００１１】
（第１の実施形態）  
第１の実施形態は、マスタサーバ装置において、各スレーブサーバ装置に保持されているハードウェア種別情報を利用して、グループ単位でサブマスタを決定するようにしている。
【００１２】
図１は、本第１の実施形態に係るＩＰ電話システムの概略構成図である。
【００１３】
このシステムは、通信ネットワークとしてＩＰ網１を有する。ＩＰ網１には、複数のサーバＳＶ１〜ＳＶｎ（ｎは自然数）が接続されている。また、サーバＳＶ１〜ＳＶｎには、ＩＰ電話端末Ｔ１１〜Ｔ１ｉ（ｉは自然数），Ｔ２１〜Ｔ２ｍ（ｍは自然数），Ｔ３１〜Ｔ３ｐ（ｐは自然数），Ｔｎ１〜Ｔｎｋ（ｋは自然数）が登録されている。なお、ＩＰ電話端末Ｔ１１〜Ｔ１ｉ，Ｔ２１〜Ｔ２ｍ，Ｔ３１〜Ｔ３ｐ，Ｔｎ１〜Ｔｎｋは、通話処理機能と映像等のメディア情報処理機能とを備えている。
【００１４】
また、サーバＳＶ１には、ゲートウェイＧＷ１が登録される。ゲートウェイＧＷ１は、公衆網ＮＷ１とＩＰ網１との間を接続するもので、公衆網ＮＷ１とＩＰ網１との間における通信プロトコル及び信号フォーマットの変換機能を備えている。
【００１５】
また、サーバＳＶｎには、ゲートウェイＧＷ２が接続される。ゲートウェイＧＷ２は、公衆網ＮＷ２とＩＰ網１との間を接続するもので、公衆網ＮＷ２とＩＰ網１との間における通信プロトコル及び信号フォーマットの変換機能を備えている。
【００１６】
サーバＳＶ１〜ＳＶｎは、複数のＩＰ電話端末Ｔ１１〜Ｔ１ｉ，Ｔ２１〜Ｔ２ｍ，Ｔ３１〜Ｔ３ｐ，Ｔｎ１〜Ｔｎｋ間または呼制御サーバＳＶ１〜ＳＶｎ間またはＩＰ電話端末Ｔ１１〜Ｔ１ｉ，Ｔ２１〜Ｔ２ｍ，Ｔ３１〜Ｔ３ｐ，Ｔｎ１〜Ｔｎｋと公衆網ＮＷ１，ＮＷ２との間で、例えばＳＩＰに従ってセッションを確立する交換制御機能を備える。そして、セッション確立後は、発信側と着信側の電話端末間でピアツーピア接続でＲＴＰパケットを送受信することで、音声通信を行なう。
【００１７】
また、サーバＳＶ１〜ＳＶｎは、交換制御機能の他に、交換接続処理に関係する複数のオプションサービス機能を有する。これら複数のオプションサービス機能としては、例えばコールピックアップ機能やコールフォワード機能、マルチアピアランス機能等がある。
【００１８】
ところで、上記サーバＳＶ１〜ＳＶｎのうちサーバＳＶ１はマスタサーバ（Ｍ１）に設定され、残りのサーバＳＶ２〜ＳＶｎはスレーブサーバに設定される。  
図２はマスタサーバ（Ｍ１）ＳＶ１の構成を示すブロック図である。
【００１９】
マスタサーバ（Ｍ１）ＳＶ１は、制御部２１、ノースブリッジ２２、主メモリ２３、サウスブリッジ２６、ＨＤＤ（Hard Disk Drive）２７、マルチドライブ２８、ＬＡＮコントローラ２９、インタフェース部３０、ＰＣカードコントローラ３１、ＢＩＯＳ−ＲＯＭ（Basic Input/Output System ROM）３３、ＥＣ／ＫＢＣ（Embedded Controller/Keyboard Controller）３４、電源コントローラ（ＰＳＣ）３５、電源部３６、インタフェース（Ｉ／Ｆ）３８、Ｉ／Ｏコントローラ４０などを備える。
【００２０】
制御部２１は、（ＣＰＵ：Central Processing Unit）を主体としてマスタサーバＳＶ１全体の制御を司るものであり、主メモリ２３をワークエリアとして使用し、ＨＤＤ２７から主メモリ２３にロードされる、オペレーティングシステム（ＯＳ）２３ａ、ドライバ２３ｂ、交換プログラム２３ｃなどを実行する。  
ノースブリッジ２２は、制御部２１とサウスブリッジ２６との間のブリッジ処理、主メモリ２３の制御などを行う各種コントローラを備えている。  
サウスブリッジ２６は、ハブリンクを介してノースブリッジ２２に接続されており、ＬＰＣ（Low Pin Count）バス上の各種デバイス（ＥＣ／ＫＢＣ３４、Ｉ／Ｏコントローラなど）や、ＰＣＩ（Peripheral Component Interconnect）バス上の各種ＰＣＩデバイス（ＬＡＮコントローラ２９、インタフェース部３０、ＰＣカードコントローラ３１など）や、ＩＤＥ（Integrated Drive Electronics）対応のディスクドライブや、ＵＳＢデバイスなどの制御を行う各種コントローラを備える。
【００２１】
ＨＤＤ２７は、プライマリＩＤＥに対応するデバイスとしてサウスブリッジ２６に接続されており、ＯＳや交換プログラム等の各種プログラム、各種データ２３ｄなどを記憶する内蔵のハードディスクである。マルチドライブ２８は、セカンダリＩＤＥに対応するデバイスとしてサウスブリッジ２６に接続されており、リムーバブルな記録媒体であるＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷを駆動する。
【００２２】
ＬＡＮコントローラ２９は、ＰＣＩデバイスとしてサウスブリッジ２６に接続されており、有線ＬＡＮの仕様に準拠する通信機能を備え、同じ通信機能を備えた通信装置との間で通信を行うものである。  
インタフェース部３０は、ＰＣＩデバイスとしてサウスブリッジ２６に接続されており、ＩＰ網１の仕様に準拠する通信機能を備え、ＩＰパケットの授受に係わる処理を行う。  
ＰＣカードコントローラ３１は、ＰＣＩデバイスとしてサウスブリッジ２６に接続されており、ＰＣＭＣＩＡ(Personal Computer Memory Card International Association)の仕様に準拠し、各種のＰＣカードを制御するものである。ＢＩＯＳ−ＲＯＭ３３は、ＬＰＣバスに接続されており、電源が投入された際に主にマスタサーバＳＶ１内のハードウェアに対する設定処理などを行うＢＩＯＳ（Basic Input/Output System）を格納している。ＥＣ／ＫＢＣ３４は、ＬＰＣバスに接続されており、電源コントローラ３５の制御などを行う。このＥＣ／ＫＢＣ３４は、組み込みコントローラであるＥＣ（Embedded Controller）とキーボードコントローラとを一体化したものである。
【００２３】
電源コントローラ３５は、Ｉ2Ｃバスを介してＥＣ／ＫＢＣ３４に接続されており、呼制御サーバＳＶ内の各部に供給する電圧を制御する。電源部３６は駆動電力を生成し、呼制御サーバＳＶ内の各部に供給する。インタフェース３８は、入力装置等が接続可能で、ＥＣ／ＫＢＣ３４との間の信号のインタフェースを行うものである。Ｉ／Ｏコントローラ４０は、ＬＰＣバスに接続されており、外部とシリアル信号やパラレル信号の入出力制御を行う。
【００２４】
このマスタサーバ（Ｍ１）ＳＶ１においては、制御部２１の制御のもとで、主メモリ２３上に展開した交換プログラム２３ｃがＬＡＮコントローラ２９などと協働して所定の交換処理機能を実現する。マスタサーバＳＶ１は汎用のコンピュータサーバに交換プログラム２３ｃをロードし、このプログラムを実行させることで電話端末間の交換機能を実現する。マスタサーバＳＶ１は、汎用コンピュータと同様に、データが記憶された領域が物理的には不連続なメモリ領域であっても、ソフトウェア（プロセスなど）から見て連続になるように見せかける仮想記憶システムを採用する。
【００２５】
ところで、ＨＤＤ２７には、プログラム設定テーブル２７１と、ハードウェア種別情報記憶部２７２と、グループ管理テーブル２７３と、サーバ−ハードウェア管理テーブル２７４とが設けられている。
【００２６】
プログラム設定テーブル２７１は、図３に示すように、交換プログラム２３ｃの内容で、ＩＰ電話端末間の交換処理に係るオプションサービス機能の設定状態を管理するためのテーブルである。プログラム設定テーブル２７１は、図３に示すように、各オプションサービス機能に対応付けて使用の可否を表すフラグが記憶されている。この使用可不可フラグが「使用可」に設定されている場合にはその機能は実行可能で、一方「使用不可」に設定されている場合にはその機能は実行不可能となる。
【００２７】
ハードウェア種別情報記憶部２７２は、図４に示すように、使用可能なハードウェア回路またはメモリ容量に関するハードウェア種別情報を記憶するものである。ハードウェア種別情報記憶部２７２は、図４に示すように、メモリ使用制限「５０％」や各ハードウェア回路に対応付けて使用の可否を表すフラグが記憶されている。図４では、Ｍｅｄｉｕｍ型であるので、メモリ使用制限が「５０％」であり、会議装置が「使用可」であり、ボイスメール装置が「使用可」である。他に、Ｍｅｄｉｕｍ型より性能が劣るＳｍａｌｌ型は、回線数が「１００」であり、メモリ使用制限が「２５％」であり、ボイスメール装置のみが「使用可」である。さらに、Ｍｅｄｉｕｍ型より高性能なＨｉｇｈｅｎｄ型は、回線数が「３０２」であり、メモリ使用制限が「７５％」であり、会議装置、ボイスメール装置、中継台を含む全てのハードウェア回路が「使用可」である。
【００２８】
グループ管理テーブル２７３は、マスタサーバＳＶ１以外のサーバＳＶ２〜ＳＶｎを複数のグループに分割し、各グループごとに決定された代表のサブマスタを管理するテーブルである。グループ管理テーブル２７３は、図５に示すように、グループを識別するためのグループＩＤと、各グループに属するサーバＳＶ２〜ＳＶｎを識別するためのサーバＩＤと、サブマスタを識別するサーバＩＤとの対応関係を表すデータを記憶している。
【００２９】
サーバ−ハードウェア管理テーブル２７４は、マスタサーバＳＶ１を除く各サーバＳＶ２〜ＳＶｎから収集したハードウェア種別情報を保持するテーブルである。サーバ−ハードウェア管理テーブル２７４は、図６に示すように、サーバＳＶ２〜ＳＶｎを識別するためのサーバＩＤと、ハードウェア種別との対応関係を表すデータを記憶している。
【００３０】
また、制御部２１は、能力問い合わせ部２１ａと、登録制御部２１ｂと、サブマスタ決定部２１ｃと、配信対象判定部２１ｄと、配信処理部２１ｅと、プログラム設定制御部２１ｆとを備えている。
【００３１】
能力問い合わせ部２１ａは、起動中のサーバＳＶ２〜ＳＶｎに対しハードウェア種別情報の各サーバＳＶ２〜ＳＶｎへの例えばＳＩＰのＯＰＴＩＯＮメッセージに挿入して送信する。
【００３２】
登録制御部２１ｂは、問い合わせに対し返送されてくるＡＣＫの中のＳＤＰに含まれるハードウェア種別情報を取得し、このハードウェア種別情報を返送元のサーバＳＶ２〜ＳＶｎのサーバＩＤに対応付けてサーバ−ハードウェア管理テーブル２７４に登録する。
【００３３】
サブマスタ決定部２１ｃは、サーバ−ハードウェア管理テーブル２７４に登録された各サーバＳＶ２〜ＳＶｎのハードウェア種別情報を参照し、この参照結果から例えばＨｉｇｈｅｎｄ型のサーバＳＶ３をグループＧ１のサブマスタに決定し、サーバＳＶ３のサーバＩＤ（Ａ２）をグループＧ１に対応付けてグループ管理テーブル２７３に登録する。
【００３４】
配信対象判定部２１ｄは、保守端末ＭＴ１からプログラム更新指示を受信する時、グループ管理テーブル２７３を参照し、この参照結果に基づいて、各グループごとのサブマスタを判定する。
【００３５】
配信処理部２１ｅは、上記配信対象判定部２１ｄにより判定された各グループのサブマスタへ、更新プログラム、及びグループに属するサーバを示すスレーブサーバ情報を含むプログラム更新指示を配信する。
【００３６】
プログラム設定制御部２１ｆは、主メモリ２３の交換プログラム２３ｃが設定され、この設定された交換プログラム２３ｃに従って、例えばコールピックアップ機能やＡＣＤログイン機能等を実行する。また、プログラム設定制御部２１ｆは、保守端末ＭＴ１からプログラム更新指示を受信する時、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ２７のプログラム設定テーブル２７１を更新する。
【００３７】
図７は、スレーブサーバＳＶ２〜ＳＶｎの構成を示すブロック図である。図７において、上記図２と同一部分には同一符号を付し、詳細な説明を省略する。
【００３８】
制御部４１は、情報返送部４１ａと、プログラム更新制御部４１ｂと、配信対象判定部４１ｃと、配信処理部４１ｄとを備えている。ＨＤＤ４２は、プログラム設定テーブル４２１と、ハードウェア種別情報記憶部４２２とを備えている。
【００３９】
情報返送部４１ａは、マスタサーバ（Ｍ１）ＳＶ１から例えばＯＰＴＩＯＮＳが到来したとき、ハードウェア種別情報記憶部４２２に記憶されているハードウェア種別情報を読み出してマスタサーバ（Ｍ１）ＳＶ１へ返送する。
【００４０】
プログラム設定制御部４１ｂは、主メモリ２３の交換プログラム２３ｃが設定され、この設定された交換プログラム２３ｃに従って、例えばコールピックアップ機能やＡＣＤログイン機能等を実行する。また、プログラム設定制御部４１ｂは、マスタサーバ（Ｍ１）ＳＶ１もしくはサブマスタから更新プログラムを受信した時、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ４２のプログラム設定テーブル４２１を更新する。
【００４１】
配信対象判定部４１ｃは、マスタサーバ（Ｍ１）ＳＶ１からスレーブサーバ情報を受信する時、スレーブサーバ情報に基づいて、例えば自グループＧ１に属するスレーブのサーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４を判定する。
【００４２】
配信処理部４１ｄは、上記プログラム設定制御部４１ｂによるプログラム更新完了時に、上記配信対象判定部４１ｃにより判定されたスレーブへ、更新プログラムを含むプログラム更新指示を配信する。
【００４３】
次に、上記構成による動作について説明する。  
（グループ管理テーブルの作成）  
保守者は、まずマスタとなるサーバＳＶ１を決定し、保守端末ＭＴ１を通じてマスタサーバ（Ｍ１）ＳＶ１内にスレーブとなるサーバＳＶ２〜ＳＶｎのサーバ情報登録を行う。その際、保守者は、保守端末ＭＴ１を通じて、物理的な設置情報をもとに、スレーブサーバ群をグループ分けし、グループ管理テーブル２７３を作成する。また、保守者は、保守端末ＭＴ１を通じて、各スレーブのサーバＳＶ２〜ＳＶｎに対し、マスタサーバ（Ｍ１）ＳＶ１のサーバ情報登録を行う。
【００４４】
（サブマスタの決定）  
図８は、マスタサーバ（Ｍ１）ＳＶ１におけるサーバＳＶ２〜ＳＶｎのＩＰアドレス及びハードウェア種別情報の取得手順を示すフローチャートである。
【００４５】
ここで、例えばＳＩＰの場合、起動時に各スレーブのサーバＳＶ２〜ＳＶｎからマスタサーバ（Ｍ１）ＳＶ１に対し一定周期でＲＥＧＩＳＴＥＲメッセージが送信され、ＲＥＧＩＳＴＥＲメッセージを受信したマスタサーバ（Ｍ１）ＳＶ１は、サーバＩＤをＨＤＤ２７のサーバ−ハードウェア管理テーブル２７４に登録する。なお、例えばサーバＳＶ４が一定周期でＲＥＧＩＳＴＥＲメッセージを送信しない場合には、マスタサーバ（Ｍ１）ＳＶ１はサーバＳＶ４が存在しないものと認識し、これによりサーバＳＶ４は通信できないものとなる。
【００４６】
例えばサーバＳＶ２からＲＥＧＩＳＴＥＲメッセージを受信したとする（ステップＳＴ８ａ）。そうするとマスタサーバ（Ｍ１）ＳＶ１は、サーバ−ハードウェア管理テーブル２７４へのＲＥＧＩＳＴＥＲ処理を行い、ＲＥＧＩＳＴＥＲがＯＫであれば、サーバＳＶ２にＡＣＫ（登録ＯＫ）を返送する（ステップＳＴ８ｂ）。
【００４７】
さらに、マスタサーバ（Ｍ１）ＳＶ１は、サーバＳＶ２の能力を問い合わせるためにＯＰＴＩＯＮＳをＲＥＧＩＳＴＥＲしたサーバＳＶ２に送信する（ステップＳＴ８ｃ）。そうするとマスタサーバ（Ｍ１）ＳＶ１は、ＯＰＴＩＯＮＳに対する応答を受信し（ステップＳＴ８ｄ）、そのなかのＳＤＰのハードウェア種別情報を取り出し、サーバ−ハードウェア管理テーブル２７４に登録する（ステップＳＴ８ｅ）。
【００４８】
マスタサーバ（Ｍ１）ＳＶ１は、全てのスレーブのサーバＳＶ２〜ＳＶｎについてサーバ−ハードウェア管理テーブル２７４へのハードウェア種別情報の登録が完了すると、サーバ−ハードウェア管理テーブル２７４に登録された各サーバＳＶ２〜ＳＶｎのハードウェア種別情報を参照し、この参照結果から例えばＨｉｇｈｅｎｄ型のサーバＳＶ３をグループＧ１のサブマスタに決定し、サーバＳＶ３のサーバＩＤ（Ａ２）をグループＧ１に対応付けてグループ管理テーブル２７３に登録する（ステップＳＴ８ｆ）。
【００４９】
（プログラムの更新処理）  
図９は、マスタサーバ（Ｍ１）ＳＶ１から各スレーブへ更新プログラムの配信を行うシーケンス図である。図１０は、プログラム更新における保守端末ＭＴと、マスタサーバ（Ｍ１）ＳＶ１と、サブマスタサーバと、スレーブサーバとの間の情報の送受信動作を示すシーケンスである。
【００５０】
保守者が保守端末ＭＴ１を通じ、マスタサーバＳＶ１に対してプログラム更新指示を入力したとする（ステップＳＴ１０１ａ）。そうすると、保守端末ＭＴ１は、交換プログラム２３ｃのバージョン番号及び交換プログラム２３ｃ中のどの機能を「使用可」または「使用不可」にするかを入力するためのメッセージを表示器（図示せず）に表示する。この状態で、保守者が保守端末ＭＴ１のキーボードを操作して交換プログラム２３ｃのバージョン番号を入力し、「コールフォワード機能」を「使用可」に設定し、「テレビ会議機能」を「使用可」に設定したとする。そうすると、保守端末ＭＴ１は、更新プログラムを含む更新指示をマスタサーバ（Ｍ１）ＳＶ１に通知する（図９（１））。
【００５１】
マスタサーバ（Ｍ１）ＳＶ１は、保守端末ＭＴ１からプログラム更新指示を受信する時、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ２７のプログラム設定テーブル２７１を更新する（ステップＳＴ１０２ａ）。
【００５２】
そして、マスタサーバ（Ｍ１）ＳＶ１は、プログラム更新完了後、グループ管理テーブル２７３を参照し（図９（２））、各グループにサブマスタが存在するか否かの判定を行う（ステップＳＴ１０２ｂ）。ここで、サブマスタが存在しないグループについて（Ｎｏ）、マスタサーバ（Ｍ１）ＳＶ１は、スレーブが存在するか否かの判定を行う（ステップＳＴ１０２ｃ）。ここで、スレーブが存在しなければ（Ｎｏ）、マスタサーバ（Ｍ１）ＳＶ１はサブマスタが存在しないグループについてプログラム更新を完了する（ステップＳＴ１０２ｄ）。
【００５３】
一方、スレーブが存在すれば（Ｙｅｓ）、マスタサーバ（Ｍ１）ＳＶ１は例えばスレーブとなるサーバＳＶ９に対し更新プログラムを含むプログラム更新指示を送信する（図１０（１））。サーバＳＶ９は、プログラム更新指示を受信する時、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ４２のプログラム設定テーブル４２１を更新する（ステップＳＴ１０４ａ）。そして、サーバＳＶ９は、プログラムの更新が完了すると、更新完了メッセージをマスタサーバＳＶ１に通知する（ステップＳＴ１０４ｂ）。
【００５４】
一方、上記ステップＳＴ１０２ｂにおいて、サブマスタが存在する場合（Ｙｅｓ）、マスタサーバ（Ｍ１）ＳＶ１は例えば各グループＧ１〜Ｇ３のサブマスタ（Ａ２，Ｂ２，Ｃ１）へ、更新プログラム、及びグループに属するサーバを示すスレーブサーバ情報を含むプログラム更新指示を配信する（図９（３）、ステップＳＴ１０２ｅ）。
【００５５】
ここで、サブマスタとなるサーバＳＶ３は、マスタサーバ（Ｍ１）ＳＶ１から更新プログラムを受信した時、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ４２のプログラム設定テーブル４２１を更新する（ステップＳＴ１０３ａ）。
【００５６】
そして、サーバＳＶ３は、プログラム更新完了後、スレーブサーバ情報に基づいて、例えば自グループＧ１に属するスレーブのサーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４へ、更新プログラムを含むプログラム更新指示を配信する（図９（４）、ステップＳＴ１０３ｂ）。
【００５７】
サーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４は、プログラム更新指示を受信する時、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ４２のプログラム設定テーブル４２１を更新する（ステップＳＴ１０４ｃ）。そして、サーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４は、プログラムの更新が完了すると、更新完了メッセージをサブマスタのサーバＳＶ３に通知する（ステップＳＴ１０４ｄ）。
【００５８】
すると、サブマスタのサーバＳＶ３は、自グループＧ１に属するスレーブのサーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４のプログラム更新処理が全て完了すると、更新完了メッセージをマスタサーバＳＶ１に通知する（ステップＳＴ１０３ｃ）。
【００５９】
マスタサーバ（Ｍ１）ＳＶ１は、グループ管理テーブル２７３中の全スレーブのプログラム更新が正常に完了した場合に、保守端末ＭＴ１に対し更新完了通知を行う（ステップＳＴ１０２ｆ）。
【００６０】
かくして、各サーバＳＶ１〜ＳＶｎに新たな機能が使用可能な状態に設定され、以後各サーバＳＶ１〜ＳＶｎでは新たなオプションサービス機能「コールフォワード機能」、「テレビ会議機能」を使用できるようになる。
【００６１】
以上のように上記第１の実施形態では、マスタサーバ（Ｍ１）ＳＶ１において、残りの複数のサーバＳＶ２〜ＳＶｎをグループ化して複数のグループと複数のサーバＳＶ２〜ＳＶｎとを対応付けたグループ管理テーブル２７３をＨＤＤ２７に記憶しておくようにし、各グループの中からサブマスタを決定し、マスタサーバ（Ｍ１）ＳＶ１は、プログラム更新時に、グループ管理テーブル２７３を参照することで、各グループのサブマスタのサーバＳＶ３，ＳＶ６，ＳＶ７にのみ、更新プログラム及びスレーブサーバ情報を含むプログラム更新指示を送信するだけでよく、残りの複数のサーバＳＶ２，ＳＶ４，ＳＶ５，ＳＶ８については、各グループごとにサブマスタのサーバＳＶ３，ＳＶ６，ＳＶ７にて更新プログラムが配信され更新処理が行われることになる。
【００６２】
従って、マスタ／スレーブの設定を変更することなく、システム全体のプログラム更新時間を短縮することができ、また、プログラム更新のためにマスタサーバ（Ｍ１）ＳＶ１がＩＰ網１を占有することなく、これによりＩＰ網１上のトラフィックを低減できる。
【００６３】
また、上記第１の実施形態によれば、マスタサーバ（Ｍ１）ＳＶ１は、複数のサーバＳＶ２〜ＳＶｎから各自のハードウェア種別情報を収集し、これらハードウェア種別情報に基づいて各グループごとに最高の処理能力を有するサブマスタを効率良く決定できる。また、各グループごとに、サーバの交換が行われたとしても、マスタサーバ（Ｍ１）ＳＶ１では、各サーバＳＶ２〜ＳＶｎから収集したハードウェア種別情報を利用して、次回のサブマスタの決定を自動的に行うことができ、これにより、システム更新に関連した設定の手間を省くことができ、保守者の負荷が軽減される。
【００６４】
（第２の実施形態）  
第２の実施形態は、マスタサーバ装置において、各スレーブサーバ装置のプログラムの更新処理時間を利用して、グループ単位でサブマスタを決定するようにしている。
【００６５】
図１１は、第２の実施形態に係るマスタサーバ（Ｍ１）ＳＶ１の制御部２１及びＨＤＤ２７それぞれの要部構成を示すブロック図である。図１１において、上記図９と同一部分には同一符号を付して詳細な説明を省略する。
【００６６】
ＨＤＤ２７には、更新時間管理テーブル２７５が設けられている。更新時間管理テーブル２７５は、各スレーブのサーバＳＶ２〜ＳＶｎのプログラム更新時間を管理するためのテーブルである。更新時間管理テーブル２７５は、図１１に示すように、サーバＳＶ２〜ＳＶｎを識別するためのサーバＩＤと、ハードウェア種別と、プログラムの更新処理時間との対応関係を表すデータを記憶している。
【００６７】
サブマスタ決定部２１ｃは、更新時間管理テーブル２７５に登録された各サーバＳＶ２〜ＳＶｎの更新時間情報を参照し、この参照結果から例えば更新処理時間が９００（ｓｅｃ）と最も短いサーバＳＶ４をグループＧ１のサブマスタに決定し、サーバＳＶ４のサーバＩＤ（Ａ３）をグループＧ１に対応付けてグループ管理テーブル２７３に登録する。
【００６８】
配信対象判定部２１ｄは、保守端末ＭＴ１からプログラム更新指示を受信する時、グループ管理テーブル２７３を参照し、この参照結果に基づいて、各グループごとのサブマスタを判定する。
【００６９】
配信処理部２１ｅは、上記配信対象判定部２１ｄにより判定された各グループのサブマスタへ、更新プログラム、及びグループに属するサーバを示すスレーブサーバ情報を含むプログラム更新指示を配信する。
【００７０】
次に、上記構成における動作について説明する。  
（グループ管理テーブルの作成）  
保守者は、まずマスタとなるサーバＳＶ１を決定し、保守端末ＭＴ１を通じてマスタサーバ（Ｍ１）ＳＶ１内にスレーブとなるサーバＳＶ２〜ＳＶｎのサーバ情報登録を行う。その際、保守者は、保守端末ＭＴ１を通じて、物理的な設置情報をもとに、スレーブサーバ群をグループ分けし、グループ管理テーブル２７３を作成する。また、保守者は、保守端末ＭＴ１を通じて、各スレーブのサーバＳＶ２〜ＳＶｎに対し、マスタサーバ（Ｍ１）ＳＶ１のサーバ情報登録を行う。
【００７１】
（サブマスタの決定）  
ここで、例えばＳＩＰの場合、起動時に各スレーブのサーバＳＶ２〜ＳＶｎからマスタサーバ（Ｍ１）ＳＶ１に対し一定周期でＲＥＧＩＳＴＥＲメッセージが送信され、ＲＥＧＩＳＴＥＲメッセージを受信したマスタサーバ（Ｍ１）ＳＶ１は、サーバＩＤをＨＤＤ２７の更新時間情報管理テーブル２７５に登録する。
【００７２】
例えばサーバＳＶ２からＲＥＧＩＳＴＥＲメッセージを受信したとする。そうするとマスタサーバ（Ｍ１）ＳＶ１は、更新時間情報管理テーブル２７５へのＲＥＧＩＳＴＥＲ処理を行い、ＲＥＧＩＳＴＥＲがＯＫであれば、サーバＳＶ２にＡＣＫ（登録ＯＫ）を返送する。
【００７３】
さらに、マスタサーバ（Ｍ１）ＳＶ１は、サーバＳＶ２の能力を問い合わせるためにＯＰＴＩＯＮＳをＲＥＧＩＳＴＥＲしたサーバＳＶ２に送信する。そうするとマスタサーバ（Ｍ１）ＳＶ１は、ＯＰＴＩＯＮＳに対する応答を受信し、そのなかのＳＤＰのハードウェア種別情報を取り出し、更新時間情報管理テーブル２７５に登録する。
【００７４】
マスタサーバ（Ｍ１）ＳＶ１は、全てのスレーブのサーバＳＶ２〜ＳＶｎについて更新時間情報管理テーブル２７５へのハードウェア種別情報の登録が完了すると、更新時間情報管理テーブル２７５に登録された各サーバＳＶ２〜ＳＶｎのハードウェア種別情報を参照し、この参照結果から例えばＨｉｇｈｅｎｄ型のサーバＳＶ３をグループＧ１のサブマスタに決定し、サーバＳＶ３のサーバＩＤ（Ａ２）をグループＧ１に対応付けてグループ管理テーブル２７３に登録する。
【００７５】
（プログラムの更新処理）  
保守者が保守端末ＭＴ１を通じ、マスタサーバＳＶ１に対してプログラム更新指示を入力したとする。そうすると、保守端末ＭＴ１は、交換プログラム２３ｃのバージョン番号及び交換プログラム２３ｃ中のどの機能を「使用可」または「使用不可」にするかを入力するためのメッセージを表示器（図示せず）に表示する。この状態で、保守者が保守端末ＭＴ１のキーボードを操作して交換プログラム２３ｃのバージョン番号を入力し、「コールフォワード機能」を「使用可」に設定し、「テレビ会議機能」を「使用可」に設定したとする。そうすると、保守端末ＭＴ１は、更新プログラムを含む更新指示をマスタサーバ（Ｍ１）ＳＶ１に通知する。
【００７６】
マスタサーバ（Ｍ１）ＳＶ１は、保守端末ＭＴ１からプログラム更新指示を受信する時、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ２７のプログラム設定テーブル２７１を更新する。
【００７７】
そして、マスタサーバ（Ｍ１）ＳＶ１は、プログラム更新完了後、グループ管理テーブル２７３を参照し、各グループにサブマスタが存在するか否かの判定を行う。ここで、サブマスタが存在する場合、マスタサーバ（Ｍ１）ＳＶ１は例えば各グループＧ１〜Ｇ３のサブマスタ（Ａ２，Ｂ２，Ｃ１）へ、更新プログラム、及びグループに属するサーバを示すスレーブサーバ情報を含むプログラム更新指示を配信する。
【００７８】
ここで、サブマスタとなるサーバＳＶ３は、マスタサーバ（Ｍ１）ＳＶ１から更新プログラムを受信した時、図示しないタイマを起動し、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ４２のプログラム設定テーブル４２１を更新する。
【００７９】
そして、サーバＳＶ３は、プログラム更新完了後、タイマで計時された更新処理時間をＨＤＤ４２に保持し、スレーブサーバ情報に基づいて、例えば自グループＧ１に属するスレーブのサーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４へ、更新プログラムを含むプログラム更新指示を配信する。
【００８０】
サーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４は、プログラム更新指示を受信する時、図示しないタイマを起動し、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ４２のプログラム設定テーブル４２１を更新する。そして、サーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４は、プログラムの更新が完了すると、更新処理時間情報を含めた更新完了メッセージをサブマスタのサーバＳＶ３に通知する。
【００８１】
すると、サブマスタのサーバＳＶ３は、自グループＧ１に属するスレーブのサーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４のプログラム更新処理が全て完了すると、ＨＤＤ４２に保持された更新処理時間情報を更新完了メッセージに含めて、当該更新完了メッセージを、スレーブのサーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４の更新完了メッセージとともにマスタサーバＳＶ１に通知する。
【００８２】
マスタサーバ（Ｍ１）ＳＶ１は、各サブマスタから更新完了メッセージを受信すると、更新完了メッセージに含まれる更新処理時間情報をサーバＩＤに対応付けて更新時間情報管理テーブル２７５に登録する。
【００８３】
マスタサーバ（Ｍ１）ＳＶ１は、全てのスレーブのサーバＳＶ２〜ＳＶｎについて更新時間情報管理テーブル２７５への更新処理時間情報の登録が完了すると、更新時間情報管理テーブル２７５に登録された各サーバＳＶ２〜ＳＶｎの更新時間情報を参照し、この参照結果から例えば更新処理時間が最も短いサーバＳＶ４をグループＧ１のサブマスタに決定し、グループ管理テーブル２７３中のサブマスタを「Ａ２」から「Ａ３」に更新する。
【００８４】
次回、マスタサーバ（Ｍ１）ＳＶ１は、保守端末ＭＴ１からプログラム更新指示を受信する時、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ２７のプログラム設定テーブル２７１を更新し、プログラム更新完了後、グループ管理テーブル２７３を参照し、各グループＧ１〜Ｇ３のサブマスタ（Ａ３，Ｂ２，Ｃ１）へ、更新プログラム、及びグループに属するサーバを示すスレーブサーバ情報を含むプログラム更新指示を配信する。
【００８５】
以上のように上記第２の実施形態によれば、マスタサーバ（Ｍ１）ＳＶ１は、スレーブのサーバＳＶ２〜ＳＶｎから収集した各自のプログラム更新処理の時間情報を更新時間管理テーブル２７５に登録し、これら時間情報に基づいて各グループごとに最も更新処理時間が短いサーバ（Ａ３）ＳＶ４を、次回のプログラム更新時のサブマスタとして効率良く決定できる。これにより、ハードウェア種別情報のみでなく、プログラムの更新処理時間も考慮してサブマスタを決定することで、例えば日時や通信トラフィック等に応じた最適なサブマスタを決定することができる。
【００８６】
（第３の実施形態）  
第３の実施形態は、複数のサーバ装置にそれぞれ割り当てられるＩＰ(Internet Protocol)アドレス及びサブネットマスク情報に基づいて、同一サブネットの複数のサーバ装置が同じグループとなるように、グループ管理テーブルの生成または更新を実行する。
【００８７】
図１２は、第３の実施形態に係るマスタサーバ（Ｍ１）ＳＶ１の制御部２１及びＨＤＤ２７それぞれの要部構成を示すブロック図である。図１２において、上記図９と同一部分には同一符号を付して詳細な説明を省略する。
【００８８】
ＨＤＤ２７には、場所管理テーブル２７６が設けられている。場所管理テーブル２７６は、各サーバＳＶ２〜ＳＶｎのハードウェア種別情報及び設置場所を管理するためのテーブルである。場所管理テーブル２７６は、図１２に示すように、サーバＳＶ２〜ＳＶｎを識別するためのサーバＩＤと、ハードウェア種別と、ＩＰアドレスと、サブネットとの対応関係を表すデータを記憶している。なお、サブネットマスク情報について、例えば同じ地区の複数のサーバまたは同じ建造物内の複数のサーバに対しては、同一のサブネットマスク情報が割り当てられる。
【００８９】
また、制御部２１は、能力問い合わせ部２１ａ、登録制御部２１ｂ、サブマスタ決定部２１ｃ、配信対象判定部２１ｄ、配信処理部２１ｅ及びプログラム設定制御部２１ｆの他に、グループ構築処理部２１ｇをさらに備えている。
【００９０】
能力問い合わせ部２１ａは、起動中のサーバＳＶ２〜ＳＶｎに対しハードウェア種別情報及びＩＰアドレス及びサブネット情報を、各サーバＳＶ２〜ＳＶｎへの例えばＳＩＰのＯＰＴＩＯＮメッセージに挿入して送信する。
【００９１】
登録制御部２１ｂは、問い合わせに対し返送されてくるＡＣＫの中のＳＤＰに含まれるハードウェア種別情報及びＩＰアドレス及びサブネットマスク情報を取得し、これらハードウェア種別情報及びＩＰアドレス及びサブネットマスク情報を返送元のサーバＳＶ２〜ＳＶｎのサーバＩＤに対応付けて場所管理テーブル２７６に登録する。
【００９２】
サブマスタ決定部２１ｃは、場所管理テーブル２７６に登録された各サーバＳＶ２〜ＳＶｎのハードウェア種別情報を参照し、この参照結果から例えばＨｉｇｈｅｎｄ型のサーバＳＶ３をグループＧ１のサブマスタに決定し、サーバＳＶ３のサーバＩＤ（Ａ２）をグループＧ１に対応付けてグループ管理テーブル２７３に登録する。
【００９３】
配信対象判定部２１ｄは、保守端末ＭＴ１からプログラム更新指示を受信する時、グループ管理テーブル２７３を参照し、この参照結果に基づいて、各グループごとのサブマスタを判定する。
【００９４】
配信処理部２１ｅは、上記配信対象判定部２１ｄにより判定された各グループのサブマスタへ、更新プログラム及びスレーブサーバ情報を含むプログラム更新指示を配信する。
【００９５】
プログラム設定制御部２１ｆは、主メモリ２３の交換プログラム２３ｃが設定され、この設定された交換プログラム２３ｃに従って、例えばコールピックアップ機能やＡＣＤログイン機能等を実行する。また、プログラム設定制御部２１ｆは、保守端末ＭＴ１からプログラム更新指示を受信する時、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ２７のプログラム設定テーブル２７１を更新する。
【００９６】
グループ構築処理部２１ｇは、場所管理テーブル２７６に登録された各サーバＳＶ２〜ＳＶｎのＩＰアドレス及びサブネットマスク情報に基づいて、同一サブネット「255．255.248.0」の複数のサーバ（Ａ１，Ａ２，Ａ３）ＳＶ２、ＳＶ３，ＳＶ４が同じグループＧ１となるように、グループ管理テーブル２７３の登録処理を行う。
【００９７】
次に、上記構成における動作について説明する。  
（グループ管理テーブルの作成）  
保守者は、まずマスタとなるサーバＳＶ１を決定し、保守端末ＭＴ１を通じてマスタサーバ（Ｍ１）ＳＶ１内にスレーブとなるサーバＳＶ２〜ＳＶｎのサーバ情報登録のみを行う。
【００９８】
（グループの生成及びサブマスタの決定）  
ここで、例えばＳＩＰの場合、マスタサーバ（Ｍ１）ＳＶ１は、例えばサーバＳＶ２の能力を問い合わせるためにＯＰＴＩＯＮＳをサーバＳＶ２に送信する。そうするとマスタサーバ（Ｍ１）ＳＶ１は、ＯＰＴＩＯＮＳに対する応答を受信し、そのなかのＳＤＰのハードウェア種別情報及びＩＰアドレス及びサブネットマスク情報を取り出し、場所管理テーブル２７６に登録する。
【００９９】
マスタサーバ（Ｍ１）ＳＶ１は、全てのスレーブのサーバＳＶ２〜ＳＶｎについて場所管理テーブル２７６への情報の登録が完了すると、場所管理テーブル２７６に登録された各サーバＳＶ２〜ＳＶｎのＩＰアドレス及びサブネットマスク情報を参照し、この参照結果から同一サブネット「255．255.248.0」の複数のサーバ（Ａ１，Ａ２，Ａ３）ＳＶ２、ＳＶ３，ＳＶ４をグループＧ１に対応付けてグループ管理テーブル２７３に登録し、同一サブネット「255．255.0.0」の複数のサーバ（Ｂ１，Ｂ２）ＳＶ５，ＳＶ６をグループＧ２に対応付けてグループ管理テーブル２７３に登録する。
【０１００】
また、マスタサーバ（Ｍ１）ＳＶ１は、場所管理テーブル２７６に登録された各サーバＳＶ２〜ＳＶｎのハードウェア種別情報を参照し、この参照結果から例えばＨｉｇｈｅｎｄ型のサーバＳＶ３をグループＧ１のサブマスタに決定し、サーバＳＶ３のサーバＩＤ（Ａ２）をグループＧ１に対応付けてグループ管理テーブル２７３に登録する。
【０１０１】
（プログラムの更新処理）  
保守者が保守端末ＭＴ１を通じ、マスタサーバＳＶ１に対してプログラム更新指示を入力したとする。そうすると、保守端末ＭＴ１は、交換プログラム２３ｃのバージョン番号及び交換プログラム２３ｃ中のどの機能を「使用可」または「使用不可」にするかを入力するためのメッセージを表示器（図示せず）に表示する。この状態で、保守者が保守端末ＭＴ１のキーボードを操作して交換プログラム２３ｃのバージョン番号を入力し、「コールフォワード機能」を「使用可」に設定し、「テレビ会議機能」を「使用可」に設定したとする。そうすると、保守端末ＭＴ１は、更新プログラムを含む更新指示をマスタサーバ（Ｍ１）ＳＶ１に通知する。
【０１０２】
マスタサーバ（Ｍ１）ＳＶ１は、保守端末ＭＴ１からプログラム更新指示を受信する時、主メモリ２３の交換プログラム２３ｃを更新用プログラムに更新し、ＨＤＤ２７のプログラム設定テーブル２７１を更新する。
【０１０３】
そして、マスタサーバ（Ｍ１）ＳＶ１は、プログラム更新完了後、グループ管理テーブル２７３を参照し、各グループにサブマスタが存在するか否かの判定を行う。ここで、サブマスタが存在する場合、マスタサーバ（Ｍ１）ＳＶ１は例えば各グループＧ１〜Ｇ３のサブマスタ（Ａ２，Ｂ２，Ｃ１）へ、更新プログラム及びスレーブサーバ情報を含むプログラム更新指示を配信する。
【０１０４】
ここで、サブマスタとなるサーバＳＶ３は、マスタサーバ（Ｍ１）ＳＶ１から更新プログラムを受信した時、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ４２のプログラム設定テーブル４２１を更新する。
【０１０５】
そして、サーバＳＶ３は、プログラム更新完了後、スレーブサーバ情報に基づいて、例えば自グループＧ１に属するスレーブのサーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４へ、更新プログラムを含むプログラム更新指示を配信する。
【０１０６】
サーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４は、プログラム更新指示を受信する時、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ４２のプログラム設定テーブル４２１を更新する。そして、サーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４は、プログラムの更新が完了すると、更新完了メッセージをサブマスタのサーバＳＶ３に通知する。
【０１０７】
すると、サブマスタのサーバＳＶ３は、自グループＧ１に属するスレーブのサーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４のプログラム更新処理が全て完了すると、更新完了メッセージをマスタサーバＳＶ１に通知する。
【０１０８】
マスタサーバ（Ｍ１）ＳＶ１は、グループ管理テーブル２７３中の全スレーブのプログラム更新が正常に完了した場合に、保守端末ＭＴ１に対し更新完了通知を行う。
【０１０９】
以上のように上記第３の実施形態によれば、マスタサーバＳＶ１は、スレーブのサーバＳＶ２〜ＳＶｎにそれぞれ割り当てられるＩＰアドレス及びサブネットマスク情報を利用して、同一サブネットのサーバＳＶ２，ＳＶ３，ＳＶ４が同じグループＧ１となるように、自動的にグループ化することができ、これにより設定上における保守者の負担をさらに軽減できる。
【０１１０】
なお、第３の実施形態では、ＩＰアドレス及びサブネットマスク情報を利用する例について説明したが、例えばＩＰアドレスのみでサーバＳＶ２〜ＳＶｎの設置場所を特定できる場合に、ＩＰアドレスを利用して、スレーブのサーバＳＶ２〜ＳＶｎをグループ化するようにしてもよい。
【０１１１】
（第３の実施形態の変形例）  
第３の実施形態の変形例は、各スレーブサーバ装置にＧＰＳ受信機を備える場合に、各スレーブサーバ装置の位置情報を利用してグループ化するものである。
【０１１２】
図１３は、第３の実施形態の変形例に係るマスタサーバ（Ｍ１）ＳＶ１の制御部２１及びＨＤＤ２７それぞれの要部構成、及び各サーバＳＶ２〜ＳＶｎにＧＰＳ受信機を備えた例を示すブロック図である。図１３において、上記図９と同一部分には同一符号を付して詳細な説明を省略する。
【０１１３】
ＨＤＤ２７には、位置情報管理テーブル２７７が設けられている。位置情報管理テーブル２７７は、各サーバＳＶ２〜ＳＶｎのハードウェア種別情報及び設置場所を管理するためのテーブルである。位置情報管理テーブル２７７は、図１２に示すように、サーバＳＶ２〜ＳＶｎを識別するためのサーバＩＤと、ハードウェア種別と、位置情報（緯度経度）との対応関係を表すデータを記憶している。
【０１１４】
各サーバＳＶ２〜ＳＶｎには、ＧＰＳ受信機Ｒ２〜Ｒｎが備えられている。ＧＰＳ受信機Ｒ２〜Ｒｎは、ＧＰＳ衛星ＳＴからの信号を受信できた場合に、受信信号から位置情報を生成し、この位置情報をＨＤＤ４２に記憶する。
【０１１５】
次に、上記構成における動作について説明する。  
（グループ管理テーブルの作成）  
保守者は、まずマスタとなるサーバＳＶ１を決定し、保守端末ＭＴ１を通じてマスタサーバ（Ｍ１）ＳＶ１内にスレーブとなるサーバＳＶ２〜ＳＶｎのサーバ情報登録のみを行う。
【０１１６】
（グループの生成及びサブマスタの決定）  
ここで、例えばＳＩＰの場合、マスタサーバ（Ｍ１）ＳＶ１は、例えばサーバＳＶ２の能力を問い合わせるためにＯＰＴＩＯＮＳをサーバＳＶ２に送信する。そうするとマスタサーバ（Ｍ１）ＳＶ１は、ＯＰＴＩＯＮＳに対する応答を受信し、そのなかのＳＤＰのハードウェア種別情報及びＧＰＳによる位置情報を取り出し、位置情報管理テーブル２７７に登録する。
【０１１７】
マスタサーバ（Ｍ１）ＳＶ１は、全てのスレーブのサーバＳＶ２〜ＳＶｎについて位置情報管理テーブル２７７への情報の登録が完了すると、位置情報管理テーブル２７７に登録された各サーバＳＶ２〜ＳＶｎの位置情報（緯度経度）を参照し、この参照結果から例えばマスタサーバ（Ｍ１）ＳＶ１を中心に５００ｍ範囲内の複数のサーバ（Ａ１，Ａ２，Ａ３）ＳＶ２、ＳＶ３，ＳＶ４をグループＧ１に対応付けてグループ管理テーブル２７３に登録し、マスタサーバ（Ｍ１）ＳＶ１を中心に１ｋｍ範囲内の複数のサーバ（Ｂ１，Ｂ２）ＳＶ５，ＳＶ６をグループＧ２に対応付けてグループ管理テーブル２７３に登録する。
【０１１８】
また、マスタサーバ（Ｍ１）ＳＶ１は、位置情報管理テーブル２７７に登録された各サーバＳＶ２〜ＳＶｎのハードウェア種別情報を参照し、この参照結果から例えばＨｉｇｈｅｎｄ型のサーバＳＶ３をグループＧ１のサブマスタに決定し、サーバＳＶ３のサーバＩＤ（Ａ２）をグループＧ１に対応付けてグループ管理テーブル２７３に登録する。
【０１１９】
このように第３の実施形態の変形例であっても、マスタサーバＳＶ１は、スレーブのサーバＳＶ２〜ＳＶｎにそれぞれの位置情報を利用して、複数のサーバＳＶ２〜ＳＶｎを自動的にグループ化することができ、これにより設定上における保守者の負担をさらに軽減できる。
【０１２０】
（第４の実施形態）  
第４の実施形態は、各グループごとのプログラムの更新完了時間情報を保持し、更新完了時間情報が予め設定された閾値を超えたグループを２つのグループに分割したものである。
【０１２１】
図１４は、第４の実施形態に係るマスタサーバ（Ｍ１）ＳＶ１の制御部２１及びＨＤＤ２７それぞれの要部構成を示すブロック図である。
【０１２２】
ＨＤＤ２７には、処理能力管理テーブル２７８及び新たに再構築可能なグループ管理テーブル２７９が設けられている。処理能力管理テーブル２７８は、各サーバＳＶ２〜ＳＶｎのハードウェア種別情報及びプログラムの更新に要する時間を管理するためのテーブルである。処理能力管理テーブル２７８は、図１４に示すように、サーバＳＶ２〜ＳＶｎを識別するためのサーバＩＤと、ハードウェア種別と、プログラムのダウンロード時間と、更新処理時間との対応関係を表すデータを記憶している。なお、ダウンロード時間は、マスタサーバＳＶ１からのプログラムの配信時からスレーブへの到達時までに要する時間である。
【０１２３】
また、制御部２１は、能力問い合わせ部２１ａ、登録制御部２１ｂ、サブマスタ決定部２１ｃ、配信対象判定部２１ｄ、配信処理部２１ｅ及びプログラム設定制御部２１ｆの他に、グループ再構築処理部２１ｈをさらに備えている。
【０１２４】
サブマスタ決定部２１ｃは、処理能力管理テーブル２７８に登録された各サーバＳＶ２〜ＳＶｎのハードウェア種別情報を参照し、この参照結果から例えばＨｉｇｈｅｎｄ型のサーバＳＶ３をグループＧ１のサブマスタに決定し、サーバＳＶ３のサーバＩＤ（Ａ２）をグループＧ１に対応付けてグループ管理テーブル２７９に登録する。
【０１２５】
グループ構築処理部２１ｇは、処理能力管理テーブル２７８に登録された各サーバＳＶ２〜ＳＶｎのダウンロード時間及び更新処理時間を参照し、各グループの総更新処理時間情報を算出し、グループ管理テーブル２７９に登録する。その後、グループ構築処理部２１ｇは、全グループの平均総更新処理時間を算出し、その平均時間に対して保守者が設定した閾値を超えて乖離したグループが存在するか否かを判定する。そして、閾値を超えて処理時間を要したグループが存在した場合、そのグループに属するスレーブサーバ群をさらに２分割し、別々のグループとして再構築し、グループ管理テーブル２７９を更新する。
【０１２６】
さらに、サブマスタ決定部２１ｃは、処理能力管理テーブル２７８に登録された各サーバＳＶ２〜ＳＶｎのハードウェア種別情報を参照し、再構築されたグループのサブマスタを決定し、グループ管理テーブル２７９を更新する。
【０１２７】
次に、上記構成における動作について説明する。  
（グループ管理テーブルの作成）  
保守者は、まずマスタとなるサーバＳＶ１を決定し、保守端末ＭＴ１を通じてマスタサーバ（Ｍ１）ＳＶ１内にスレーブとなるサーバＳＶ２〜ＳＶｎのサーバ情報登録を行う。その際、保守者は、保守端末ＭＴ１を通じて、物理的な設置情報をもとに、スレーブサーバ群をグループ分けし、グループ管理テーブル２７９を作成する。また、保守者は、保守端末ＭＴ１を通じて、各スレーブのサーバＳＶ２〜ＳＶｎに対し、マスタサーバ（Ｍ１）ＳＶ１のサーバ情報登録を行う。
【０１２８】
（サブマスタの決定）  
ここで、例えばＳＩＰの場合、起動時に各スレーブのサーバＳＶ２〜ＳＶｎからマスタサーバ（Ｍ１）ＳＶ１に対し一定周期でＲＥＧＩＳＴＥＲメッセージが送信され、ＲＥＧＩＳＴＥＲメッセージを受信したマスタサーバ（Ｍ１）ＳＶ１は、サーバＩＤをＨＤＤ２７の処理能力管理テーブル２７８に登録する。
【０１２９】
例えばサーバＳＶ２からＲＥＧＩＳＴＥＲメッセージを受信したとする。そうするとマスタサーバ（Ｍ１）ＳＶ１は、更新時間情報管理テーブル２７５へのＲＥＧＩＳＴＥＲ処理を行い、ＲＥＧＩＳＴＥＲがＯＫであれば、サーバＳＶ２にＡＣＫ（登録ＯＫ）を返送する。
【０１３０】
さらに、マスタサーバ（Ｍ１）ＳＶ１は、サーバＳＶ２の能力を問い合わせるためにＯＰＴＩＯＮＳをＲＥＧＩＳＴＥＲしたサーバＳＶ２に送信する。そうするとマスタサーバ（Ｍ１）ＳＶ１は、ＯＰＴＩＯＮＳに対する応答を受信し、そのなかのＳＤＰのハードウェア種別情報を取り出し、処理能力管理テーブル２７８に登録する。
【０１３１】
マスタサーバ（Ｍ１）ＳＶ１は、全てのスレーブのサーバＳＶ２〜ＳＶｎについて処理能力管理テーブル２７８へのハードウェア種別情報の登録が完了すると、処理能力管理テーブル２７８に登録された各サーバＳＶ２〜ＳＶｎのハードウェア種別情報を参照し、この参照結果から例えばＨｉｇｈｅｎｄ型のサーバＳＶ３をグループＧ１のサブマスタに決定し、サーバＳＶ３のサーバＩＤ（Ａ２）をグループＧ１に対応付けてグループ管理テーブル２７９に登録する。
【０１３２】
（プログラムの更新処理）  
保守者が保守端末ＭＴ１を通じ、マスタサーバＳＶ１に対してプログラム更新指示を入力したとする。そうすると、保守端末ＭＴ１は、交換プログラム２３ｃのバージョン番号及び交換プログラム２３ｃ中のどの機能を「使用可」または「使用不可」にするかを入力するためのメッセージを表示器（図示せず）に表示する。この状態で、保守者が保守端末ＭＴ１のキーボードを操作して交換プログラム２３ｃのバージョン番号を入力し、「コールフォワード機能」を「使用可」に設定し、「テレビ会議機能」を「使用可」に設定したとする。そうすると、保守端末ＭＴ１は、更新プログラムを含む更新指示をマスタサーバ（Ｍ１）ＳＶ１に通知する。
【０１３３】
マスタサーバ（Ｍ１）ＳＶ１は、保守端末ＭＴ１からプログラム更新指示を受信する時、主メモリ２３の交換プログラム２３ｃを更新用プログラムに更新し、ＨＤＤ２７のプログラム設定テーブル２７１を更新する。
【０１３４】
そして、マスタサーバ（Ｍ１）ＳＶ１は、プログラム更新完了後、グループ管理テーブル２７９を参照し、各グループにサブマスタが存在するか否かの判定を行う。ここで、サブマスタが存在する場合、マスタサーバ（Ｍ１）ＳＶ１は例えば各グループＧ１〜Ｇ３のサブマスタ（Ａ２，Ｂ２，Ｃ１）へ、更新プログラム及びスレーブサーバ情報を含むプログラム更新指示を配信する。
【０１３５】
ここで、サブマスタとなるサーバＳＶ３は、マスタサーバ（Ｍ１）ＳＶ１から更新プログラムを受信した時、図示しないタイマを起動し、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ４２のプログラム設定テーブル４２１を更新する。
【０１３６】
そして、サーバＳＶ３は、プログラム更新完了後、マスタサーバＳＶ１からの配信時から到達時までのダウンロード時間とタイマで計時された更新処理時間をＨＤＤ４２に保持し、スレーブサーバ情報に基づいて、例えば自グループＧ１に属するスレーブのサーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４及びサーバ（Ａ４）ＳＶ１０へ、更新プログラムを含むプログラム更新指示を配信する。
【０１３７】
サーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４及びサーバ（Ａ４）ＳＶ１０は、プログラム更新指示を受信する時、図示しないタイマを起動し、主メモリ２３の交換プログラム２３ｃを更新プログラムに更新し、ＨＤＤ４２のプログラム設定テーブル４２１を更新する。そして、サーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４及びサーバ（Ａ４）ＳＶ１０は、プログラムの更新が完了すると、マスタサーバＳＶ１からのプログラム配信時から到達時までのダウンロード時間と更新処理時間情報を含めた更新完了メッセージをサブマスタのサーバ（Ａ２）ＳＶ３に通知する。
【０１３８】
すると、サブマスタのサーバＳＶ３は、自グループＧ１に属するスレーブのサーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４及びサーバ（Ａ４）ＳＶ１０のプログラム更新処理が全て完了すると、ＨＤＤ４２に保持された更新処理時間情報を更新完了メッセージに含めて、当該更新完了メッセージを、スレーブのサーバ（Ａ１）ＳＶ２及びサーバ（Ａ３）ＳＶ４及びサーバ（Ａ４）ＳＶ１０の更新完了メッセージとともにマスタサーバＳＶ１に通知する。
【０１３９】
マスタサーバ（Ｍ１）ＳＶ１は、各サブマスタから更新完了メッセージを受信すると、更新完了メッセージに含まれるダウンロード時間及び更新処理時間情報をサーバＩＤに対応付けて処理能力管理テーブル２７８に登録する。
【０１４０】
マスタサーバ（Ｍ１）ＳＶ１は、全てのスレーブのサーバＳＶ２〜ＳＶｎについて処理能力管理テーブル２７８へのダウンロード時間及び更新処理時間情報の登録が完了すると、処理能力管理テーブル２７８に登録された各サーバＳＶ２〜ＳＶｎのダウンロード時間及び更新処理時間を参照し、各グループの総更新処理時間情報を算出し、グループ管理テーブル２７９に登録する。
【０１４１】
その後、マスタサーバ（Ｍ１）ＳＶ１は、グループ構築処理部２１ｇにより、全グループの平均総更新処理時間を算出し、その平均時間に対して保守者が設定した閾値を超えて乖離したグループが存在するか否かを判定する。そして、閾値を超えて処理時間を要したグループＧ１が存在した場合、そのグループに属するスレーブサーバ群をさらに２分割し、別々のグループ（Ｇ１，Ｇ２）として再構築し、グループＧ１にサーバ（Ａ１，Ａ２）ＳＶ２，ＳＶ３が属し、グループＧ２にサーバ（Ａ３，Ａ４）ＳＶ４，ＳＶ１０が属するように、グループ管理テーブル２７９を更新する。
【０１４２】
さらに、マスタサーバ（Ｍ１）ＳＶ１は、サブマスタ決定部２１ｃにより、処理能力管理テーブル２７８に登録された各サーバＳＶ２〜ＳＶｎのハードウェア種別情報を参照し、再構築されたグループＧ１のサブマスタを「Ａ２」に決定するとともに、グループＧ２のサブマスタを「Ａ３」に決定し、グループ管理テーブル２７９を更新する。
【０１４３】
次回、マスタサーバ（Ｍ１）ＳＶ１は、保守端末ＭＴ１からプログラム更新指示を受信する時、主メモリ２３の交換プログラム２３ｃを更新用プログラムに更新し、ＨＤＤ２７のプログラム設定テーブル２７１を更新し、プログラム更新完了後、グループ管理テーブル２７９を参照し、各グループＧ１〜Ｇ４のサブマスタ（Ａ２，Ａ３，Ｂ２，Ｃ１）へ、更新プログラム及びスレーブサーバ情報を含むプログラム更新指示を配信する。
【０１４４】
以上のように上記第４の実施形態によれば、マスタサーバ（Ｍ１）ＳＶ１は、更新完了時間情報が予め設定された閾値を超えたグループＧ１を２つのグループ（Ｇ１，Ｇ２）に分割するようにしているので、プログラムの更新完了時間が長時間に及ぶグループについては、分割グループＧ１，Ｇ２間でプログラム更新処理を並行して行うことができ、これにより比較的短時間でプログラム更新処理を完了することができる。
【０１４５】
（第４の実施形態の変形例）  
第４の実施形態の変形例は、各グループごとのプログラムの更新完了時間情報を保持し、更新完了時間情報が予め設定された閾値を超えたスレーブサーバ装置を別の１グループに属させるようにしたものである。
【０１４６】
グループ構築処理部２１ｇは、処理能力管理テーブル２７８に登録された各サーバＳＶ２〜ＳＶｎのダウンロード時間及び更新処理時間を参照し、ダウンロード時間及び更新処理時間が保守者が設定した閾値を超えたか否かを判定する。そして、閾値を超えて処理時間を要したサーバが存在した場合、当該サーバを別のグループに属させる。
【０１４７】
次に、上記構成における動作について説明する。  
マスタサーバ（Ｍ１）ＳＶ１は、グループ構築処理部２１ｇにより、ダウンロード時間及び更新処理時間が閾値を超えるか否かを判定する。そして、閾値を超えて処理時間を要したサーバ（Ｐ１）ＳＶ１２が存在した場合、新たなグループＧｘｘを構築し、グループＧｘｘにサーバＳＶ１２が属するように、グループ管理テーブル２７９を更新する。
【０１４８】
次回、マスタサーバ（Ｍ１）ＳＶ１は、保守端末ＭＴ１からプログラム更新指示を受信する時、主メモリ２３の交換プログラム２３ｃを更新用プログラムに更新し、ＨＤＤ２７のプログラム設定テーブル２７１を更新し、プログラム更新完了後、グループ管理テーブル２７９を参照し、各グループＧ１〜Ｇ４，Ｇｘｘのサブマスタ（Ａ２，Ａ３，Ｂ２，Ｃ１，Ｐ１）へ、更新プログラム、及びグループに属するサーバを示すスレーブサーバ情報を含むプログラム更新指示を配信する。
【０１４９】
このように上記第４の実施形態の変形例によれば、プログラムの更新指示の送出時からプログラムの更新完了時までの時間が最も長いサーバＳＶ１２を他のサーバとは別に１つのグループＧｘｘに属させて、マスタサーバ（Ｍ１）ＳＶ１から各グループのサブマスタ（Ａ２，Ａ３，Ｂ２，Ｃ１，Ｐ１）へプログラム更新指示を並行に転送することで、プログラムの更新処理を比較的短時間で完了することができるとともに、サーバＳＶ１〜ＳＶｎをグループ化する際のグループの決定を効率良く行うことができる。
【０１５０】
（その他の実施形態）  
上記第１及び第２の実施形態では、ハードウェア種別情報またはプログラムの更新処理時間を利用して、サブマスタを決定する例について説明したが、日時や通信トラフィック等の他の条件を用いて、サブマスタを決定するようにしてもよい。
【０１５１】
また、上記第３の実施形態では、ＩＰアドレス及びサブネットマスク情報を利用して、グループを構築する例について説明したが、日時や通信トラフィック等の他の条件を用いて、グループを構築するようにしてもよい。
【０１５２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１５３】
１…ＩＰ網、２１…制御部、２２…ノースブリッジ、２３…主メモリ、２４…ビデオコントローラ、２５…表示部、２６…サウスブリッジ、２７…ＨＤＤ（Hard Disk Drive）、２８…マルチドライブ、２９…ＬＡＮコントローラ、３０…インタフェース部、３１…ＰＣカードコントローラ、３３…ＢＩＯＳ−ＲＯＭ（Basic Input/Output System ROM）、２１ａ…能力問い合わせ部、２１ｂ…登録制御部、２１ｃ…サブマスタ決定部、２１ｄ…配信対象判定部、２１ｅ…配信処理部、２１ｆ…プログラム設定制御部、２７１…プログラム設定テーブル、２７２…ハードウェア種別情報記憶部、２７３…グループ管理テーブル、２７４…サーバ−ハードウェア管理テーブル、４１ａ…情報返送部、４１ｂ…プログラム更新制御部、４１ｃ…配信対象判定部、４１ｄ…配信処理部、Ｔ１１〜Ｔ１ｉ，Ｔ２１〜Ｔ２ｍ，Ｔｎ１〜Ｔｎｋ…ＩＰ電話端末、ＳＶ１〜ＳＶｎ…サーバ、ＮＷ１，ＮＷ２…公衆網、ＧＷ１，ＧＷ２…ゲートウェイ。
【図１】
2013223094.tif 000003
【図２】
2013223094.tif 000004
【図３】
2013223094.tif 000005
【図４】
2013223094.tif 000006
【図５】
2013223094.tif 000007
【図６】
2013223094.tif 000008
【図７】
2013223094.tif 000009
【図８】
2013223094.tif 000010
【図９】
2013223094.tif 000011
【図１０】
2013223094.tif 000012
【図１１】
2013223094.tif 000013
【図１２】
2013223094.tif 000014
【図１３】
2013223094.tif 000015
【図１４】
2013223094.tif 000016