(57)【要約】【課題】ソフトウェア資源を記憶する中央装置及び中間装置の処理負荷を軽減し、より確実に端末装置に対して正確なソフトウェア資源を配信することができるデータ配信システム及びデータ配信方法を提供する。【解決手段】メインサーバ装置１０に登録されたソフトウェア資源の版数を、ソフトウェア資源に対応付けて記憶する資源情報を格納する。ソフトウェア資源、及び資源情報を、サブサーバ装置２０，２０…へ送信し、ＰＣ３０，３０…へ生成したサーバリストを送信する。ＰＣ３０，３０…では、受信したサーバリストに示されるサブサーバ装置２０，２０…から、サブサーバ装置２０，２０…に記憶されている資源情報を取得する。メインサーバ装置１０及びサブサーバ装置２０，２０…から取得した資源情報とからソフトウェア資源の版数が一致する場合、同期された状態であると判定し、サブサーバ装置２０，２０…へソフトウェア資源の送信を要求する。【選択図】図７
2010204830.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア資源を記憶し、通信機能を有する中央装置と、
該中央装置と通信可能であって、前記中央装置から送信されたソフトウェア資源を受信して記憶する中間装置と、
前記中央装置及び中間装置と通信する端末装置と
を備えており、
前記中央装置は、
ソフトウェア資源の登録を受け付ける登録受付手段と、
該登録受付手段により受け付けた前記ソフトウェア資源の版数を、前記ソフトウェア資源に対応付けて記憶する資源情報を格納する資源情報格納手段と、
前記登録受付手段により受け付けた前記ソフトウェア資源、及び前記資源情報格納手段に格納される資源情報を、前記中間装置へ送信する資源転送手段と、
前記端末装置へ通知する前記中間装置のサーバリストを生成するサーバリスト生成手段と、
該サーバリスト生成手段により生成されたサーバリストと前記資源情報とを前記端末装置へ送信する端末装置送信手段と
を有し、
前記端末装置は、
前記中央装置から受信したサーバリストに示される前記中間装置から前記資源転送手段により送信され前記中間装置に記憶されている前記資源情報を取得し、前記中央装置から受信した前記資源情報と前記中間装置から取得した前記資源情報とを比較し、前記資源情報に示されるソフトウェア資源の版数が一致するか否かに基づいて、前記中間装置と前記中央装置とが同期された状態であるか否かを判定する同期判定手段と、
前記同期判定手段により同期していると判定された場合に、前記中間装置へソフトウェア資源の送信を要求する要求信号を送信する要求信号送信手段
を有するデータ配信システム。
【請求項２】
前記中間装置を複数備えており、
前記端末装置は、
前記要求信号送信手段が送信した要求信号に対するソフトウェア資源の受信に成功したか否かを判定する成否判定手段
をさらに有し、
前記要求信号送信手段は、
前記成否判定手段が成功と判定するまで、複数の前記中間装置に、所定の順序で要求信号を送信するようにしてあり、
前記中央装置は、
該同期判定手段が同期していると判定した前記中間装置のなかから、前記端末装置が要求信号を送信すべき順序を決定する順序決定手段
をさらに有し、
前記中央装置が有するサーバリスト生成手段は、
前記順序決定手段が決定した順序を含むサーバリストを生成するようにしてある
請求項１に記載のデータ配信システム。
【請求項３】
前記中央装置が有する順序決定手段は、
前記中央装置を含めた順序を決定し、
前記端末装置が有する要求信号送信手段は、
前記順序決定手段が中央装置を含めた順序を決定した場合、該順序に基づいて、前記中央装置へ要求信号を送信するようにしてあり、
前記中央装置は、
前記要求信号を受信した場合、前記要求信号に基づくソフトウェア資源を前記端末装置へ送信する中央装置側送信手段
をさらに有する請求項２に記載のデータ配信システム。
【請求項４】
前記中央装置は、
前記中間装置の処理負荷を検出する負荷検出手段
をさらに有し、
前記順序決定手段は、
前記負荷検出手段が検出した処理負荷が低い前記中間装置から順に、前記端末装置が要求信号を送信するよう順序を決定するようにしてある
請求項２又は３に記載のデータ配信システム。
【請求項５】
前記端末装置は、
無線通信によって前記中央装置及び中間装置と通信するようにしてあり、
前記端末装置の成否判定手段は、
前記無線通信に基づいてソフトウェア資源の受信に成功したか否かを判定するようにしてある
請求項２から４の何れか一つに記載のデータ配信システム。
【請求項６】
ソフトウェア資源を記憶し、通信機能を有する中央装置及び中間装置を通信可能に接続し、
前記中央装置へのソフトウェア資源の登録を受け付け、
受け付けた前記ソフトウェア資源の版数を、前記ソフトウェア資源に対応付けて記憶する資源情報を格納し、
受け付けた前記ソフトウェア資源、及び格納された資源情報を、前記中間装置へ送信し、
前記端末装置へ通知する前記中間装置のサーバリストを生成し、
生成されたサーバリストと前記資源情報とを前記端末装置へ送信し、
前記端末装置により、前記中央装置から受信したサーバリストに示される前記中間装置から、前記中央装置から送信され前記中間装置に記憶されている前記資源情報を取得し、
前記端末装置により、前記中央装置から受信した前記資源情報と前記中間装置から取得した前記資源情報とを比較し、
前記端末装置により、前記資源情報に示されるソフトウェア資源の版数が一致するか否かに基づいて、前記中間装置と前記中央装置とが同期された状態であるか否かを判定し、
前記端末装置が前記同期判定手段により同期していると判定した場合に、前記端末装置により、前記中間装置へソフトウェア資源の送信を要求する要求信号を送信する
データ配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークで接続されている中央装置及び中間装置に同じデータを記憶して、端末装置によりデータを受信するデータ配信システム及びデータ配信方法に関する。
【背景技術】
【０００２】
近年、学校、病院及び会社などでネットワークを利用したソフトウェア資源管理を行うシステムが導入されている。このシステムは、上位サーバ装置、中間サーバ装置及びクライアント装置（例えば、パーソナルコンピュータ）を含む３層構造を構成している。上位サーバ装置は、クライアント装置で必要とするソフトウェア資源を記憶しており、中間サーバ装置と接続されている。中間サーバ装置は、上位サーバ装置からそれらソフトウェア資源をダウンロードし、上位サーバ装置と同様のソフトウェア資源を記憶している。そして、クライアント装置は、中間サーバ装置からソフトウェア資源をダウンロードする。
【０００３】
このような構成のシステムでは、ユーザは、所有するクライアント装置（例えば、パーソナルコンピュータ）で、上位サーバ装置にあるソフトウェア資源を、中間サーバ装置からダウンロードすることができる。例えば、企業に導入した場合、上位サーバ装置を本社に設置し、複数の中間サーバ装置を各支社に設置することで、各支社の社員は、本社にあるソフトウェア資源を各支社に設置された中間サーバ装置から取得することができる。また、システムを管理する管理者は、上位サーバ装置にあるソフトウェア資源を最新版に更新するだけで、各クライアント装置に対して最新ソフトウェア資源を配信することができる。
【０００４】
前記システムでは、上位サーバ装置のソフトウェア資源が最新のものであるか否かはクライアント側装置では確実に把握することができない。そこで、信頼性が高いソフトウェア資源の配信を可能にするシステムなどが知られている（例えば、特許文献１）。斯かるシステムは、中間サーバ装置が上位サーバ装置が記憶するソフトウェア資源の更新状況を監視し、更新があった場合に、自身に記憶しているソフトウェア資源を更新してクライアント装置にその更新を通知する。クライアント装置は、更新の通知を受けたときに中間サーバ装置からソフトウェア資源を受信する。これにより、クライアント装置は、より確実に最新のソフトウェア資源を受け取ることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−８０１６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、中間サーバ装置がソフトウェア資源のバージョンを監視した場合、中間サーバ装置は常時上位サーバ装置を監視するだけなく、クライアント装置に対して更新を通知したか等、クライアント装置の情報も監視する必要がある。このため、クライアント装置の数が増加すれば、クライアント装置を中間サーバ装置に登録する必要があり、中間サーバ装置にかかる負荷が大きくなる。
【０００７】
本発明はかかる事情に鑑みてなされたものであり、その目的とするところは、データを記憶する中央装置及び中間装置の処理負荷を軽減し、より確実に端末装置に対して正確なデータを配信することができるデータ配信システム及びデータ配信方法を提供することにある。
【課題を解決するための手段】
【０００８】
本願に開示するデータ配信システムは、ソフトウェア資源を記憶する中央装置から送信されたソフトウェア資源を中間装置に記憶し、端末装置により、中間装置に記憶されたソフトウェア資源を受信する。中央装置では、ソフトウェア資源の登録を受け付け、ソフトウェア資源の版数を、ソフトウェア資源に対応付けて記憶する資源情報を格納する。また、受け付けたソフトウェア資源、及び資源情報を、中間装置へ送信すると共に、端末装置へ通知する中間装置のサーバリストを生成する。サーバリストは、資源情報と共に中央装置から端末装置へ送信する。端末装置では、中央装置から受信したサーバリストに示される中間装置から資源情報を取得する。斯かる資源情報は、中央装置から中間装置へ送信され、記憶されている。そして、中央装置及び中間装置それぞれから取得した資源情報とを比較し、資源情報に示されるソフトウェア資源の版数が一致するか否かに基づいて、中間装置と中央装置との同期状態を判定する。同期していると判定した場合に、中間装置へソフトウェア資源の送信を要求する要求信号を送信する。
【発明の効果】
【０００９】
本願に開示するデータ配信システムによれば、例えば中央装置では中間装置にソフトウェア資源を既に送信していることが判っているため、端末装置からソフトウェア資源の問い合わせを受けた場合、端末装置が受信すべきソフトウェア資源が中間装置にあるか否かの判定ができる。端末装置は、中央装置で判定された結果に基づいて、中間装置からデータを受信するため、中間装置に対してソフトウェア資源の有無の問い合わせをする必要がなくなる。また、本願に開示するデータ配信システムによれば、中央装置及び中間装置が記憶するソフトウェア資源の一致の判断をする必要がなく、中央装置から問い合わせ結果を受信した端末装置において、ソフトウェア資源の一致を判断する。この結果、各装置での処理負荷を軽減し、中央装置のソフトウェア資源を端末装置により確実に受信することができる。
【００１０】
また、端末装置が主体的にソフトウェア資源の転送の問合せを行うことにより、中央装置、中間装置で端末装置の細かい管理を実施する必要がなくなる。また、中央装置及び中間装置のプログラム処理が単純化され、中央装置及び中間装置の処理負荷も軽減される。端末装置がどの中間装置からソフトウェア資源を受信すればよいかを示すリストを端末装置に送ることにより、端末装置がソフトウェア資源を受信をする際の中間装置の負荷を分散し、ソフトウェア資源の受信の処理速度を適切に管理することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係るデータ配信システムの構成を模式的に示す図である。
【図２】データ配信システムが備えるメインサーバ装置の構成を模式的に示すブロック図である。
【図３】（ａ）はソフトウェア資源を管理するテーブルを示す図であり、（ｂ）はサブサーバ装置を管理するテーブルを示す図であり、（ｃ）はＰＣを管理するテーブルを示す図であり、（ｄ）はＰＣの指示状態を管理するテーブルを示す図である。
【図４】メインサーバ装置が作成するサーバリストを模式的に示す図である。
【図５】データ配信システムが備えるサブサーバ装置の構成を模式的に示すブロック図である。
【図６】データ配信システムが備えるＰＣの構成を模式的に示すブロック図である。
【図７】データ配信システムが有する機能を示すブロック図である。
【図８】ＰＣで実行される処理を示すフローチャートである。
【図９】ＰＣで実行される処理を示すフローチャートである。
【図１０】メインサーバ装置で実行される更新されたソフトウェア資源を送信する処理を示すフローチャートである。
【図１１】メインサーバ装置で実行されるソフトウェア資源配信処理を示すフローチャートである。
【図１２】メインサーバ装置で実行される要求されたソフトウェア資源を送信する処理を示すフローチャートである。
【図１３】サブサーバ装置で実行されるソフトウェア資源記憶処理を示すフローチャートである。
【図１４】サブサーバ装置で実行されるソフトウェア資源送信処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に、本願に開示するデータ配信システム及びデータ配信方法の好適な実施形態について、図面を参照しつつ詳述する。本願に開示するデータ配信システム及びデータ配信方法は、学校、病院及び会社などに導入される。以下では、本願に開示するデータ配信システムが有する端末装置をパーソナルコンピュータ（以下、ＰＣという）に適用した実施形態について説明する。
【００１３】
図１は、本実施形態に係るデータ配信システムの構成を模式的に示す図である。本実施形態のデータ配信システムは、１つのメインサーバ装置１０と、複数のサブサーバ装置２０，２０…と、複数のＰＣ３０，３０…とを備える。
【００１４】
メインサーバ装置１０は、本願に開示するデータ配信システムが有する中央装置であり、システム管理者などにより入力されたソフトウェア資源を記憶する。ソフトウェア資源は、本願に開示するデータであって、データ配信システムを導入する場所によって適宜変更可能である。例えば、ソフトウェア資源は、病院の電子カルテ、学生の成績表、プログラムのバージョンアップデータ又はウィルスのパターンファイルなどとすることができる。メインサーバ装置１０は、システム管理者などにより新たなソフトウェア資源が入力されたとき、そのソフトウェア資源をサブサーバ装置２０，２０…に送信する。また、メインサーバ装置１０は、既に記憶されているソフトウェア資源が変更（更新）されたとき、変更後のソフトウェア資源をサブサーバ装置２０，２０…に送信する。
【００１５】
サブサーバ装置２０，２０…は、本願に開示するデータ配信システムが有する中間装置であり、メインサーバ装置１０から送信されたソフトウェア資源を受信し、記憶する。換言すれば、サブサーバ装置２０，２０…は、メインサーバ装置１０と同じ内容のソフトウェア資源を記憶する。ソフトウェア資源は、メインサーバ装置１０の記憶内容に変更があった場合に送信される。従って、メインサーバ装置１０の記憶内容の変更が、サブサーバ装置２０，２０…に反映するようになっている。サブサーバ装置２０，２０…は、メインサーバ装置１０と同じ場所（建物）に設置されていてもよいし、離れた場所に設置されていてもよい。
【００１６】
ＰＣ３０，３０…は、メインサーバ装置１０及びサブサーバ装置２０，２０…それぞれとデータ通信可能に接続されている。ＰＣ３０，３０…は、メインサーバ装置１０及びサブサーバ装置２０，２０…の何れかから、記憶されているソフトウェア資源を受信する。上述のように、メインサーバ装置１０及びサブサーバ装置２０，２０…には、同じ内容のソフトウェア資源が記憶されている。このため、ＰＣ３０，３０…は、何れの装置からでも、同じソフトウェア資源を受信することができる。
【００１７】
上述の各装置を備えるデータ配信システムでは、ＰＣ３０，３０…は、電源起動時にメインサーバ装置１０に対して問い合わせ信号を送信する。問い合わせ信号を受信したメインサーバ装置１０は、最新のソフトウェア資源を記憶している場合には、ＰＣ３０，３０…に最新のソフトウェア資源を受信させる。従って、ＰＣ３０，３０…は、起動時に最新のソフトウェア資源を取得することができる。
【００１８】
また、問い合わせ信号を受信したメインサーバ装置１０は、ＰＣ３０，３０…がソフトウェア資源を受信するためにアクセスすべき装置を複数決定し、決定した複数の装置それぞれに順位付けする。ＰＣ３０，３０…は、最新のソフトウェア資源の受信が成功するまで、決定された順に装置にアクセスする。アクセスする装置を複数決定しておくことで、ＰＣ３０，３０…は、一つのアクセス先からのソフトウェア資源の受信に失敗した場合であっても、別のアクセス先から再度受信を試みることができる。以下、メインサーバ装置１０、サブサーバ装置２０，２０…及びＰＣ３０，３０…の具体的な構成及び動作について詳述する。
【００１９】
なお、メインサーバ装置１０、サブサーバ装置２０，２０…及びＰＣ３０，３０…は、有線接続であってもよいし、無線接続であってもよい。また、メインサーバ装置１０、サブサーバ装置２０，２０…及びＰＣ３０，３０…は、ＬＡＮ（Local Area Network）又はＷＡＮ（Wide Area Network）など通信環境が限定されることはない。さらに、ＰＣ３０，３０…に替えて、携帯電話機又はＰＤＡ（Personal Digital Assistants）などであってもよい。
【００２０】
図２は、データ配信システムが備えるメインサーバ装置１０の構成を模式的に示すブロック図である。
【００２１】
メインサーバ装置１０は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、大容量記憶装置１４、入力部１５及び通信部１６等のハードウェア各部を備える。これらのハードウェア各部はバスを介して相互に接続されている。入力部１５は、ソフトウェア資源を入力又は変更するためのマウス、キーボード及びスキャナ装置などである。通信部１６は、サブサーバ装置２０，２０…及びＰＣ３０，３０…とのデータ通信を可能にするモデム等である。
【００２２】
ＣＰＵ１１は、ＲＯＭ１２などに予め格納されている制御プログラムを適宜ＲＡＭ１３に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。ＲＯＭ１２は、メインサーバ装置１０を本願に開示する中央装置として動作させるために必要な種々の制御プログラムを予め格納している。ＲＡＭ１３は、例えばＳＲＡＭ（Static ＲＡＭ）、ＤＲＡＭ（Dynamic ＲＡＭ）又はフラッシュメモリ等である。ＲＡＭ１３は、ＣＰＵ１１による制御プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００２３】
大容量記憶装置１４は、例えばハードディスク（以下、ＨＤＤと言う）である。大容量記憶装置１４は、入力部１５により入力されたソフトウェア資源、並びに、ソフトウェア資源、サブサーバ装置２０，２０…及びＰＣ３０，３０…を管理するためのテーブルなどを格納する。図３（ａ）はソフトウェア資源を管理するテーブルを示す図であり、（ｂ）はサブサーバ装置２０，２０…を管理するテーブルを示す図であり、（ｃ）はＰＣ３０，３０…を管理するテーブルを示す図であり、（ｄ）はＰＣの指示状態を管理するテーブルを示す図である。
【００２４】
図３（ａ）のテーブルには、大容量記憶装置１４に格納されるソフトウェア資源の識別情報（例えば、ファイル名）が、ＩＤ（図中ではＳＩＤ）が付されて格納されている。また、識別情報に対応するソフトウェア資源が最後に更新された日付が格納されている。「ソフトウェア資源の更新」には、新たなソフトウェア資源が入力された場合も含む。ＣＰＵ１１は、ソフトウェア資源が更新された場合、このテーブルを書き替えると共に、更新されたソフトウェア資源と、図３（ａ）に示すテーブルとをサブサーバ装置２０，２０…へ送信する。
【００２５】
図３（ｂ）のテーブルには、メインサーバ装置１０に接続されているサブサーバ装置２０，２０…の識別情報（例えば、装置名又はＩＰアドレスなど）が格納されている。また、このテーブルには、識別情報に対応するサブサーバ装置２０，２０…の処理負荷、及びサブサーバ装置２０，２０…との同期状態などが格納されている。処理負荷は、例えばサブサーバ装置２０，２０…のＣＰＵ負荷率である。サブサーバ装置２０，２０…と同期されていれば、同期状態は「ＯＫ」となり、同期されていない場合は「ＮＧ」となる。ＣＰＵ１１は、定期的にサブサーバ装置２０，２０…の処理負荷を監視し、図３（ｂ）のテーブルを更新する。そして、ＣＰＵ１１は、どのサブサーバ装置２０，２０…が負荷の高い処理を行っているか等を把握する。
【００２６】
図３（ｃ）のテーブルには、ＰＣ３０，３０…の識別情報（例えば、コンピュータ名）が、ＩＤ（図中ではＰＣＩＤ）が付されて格納されている。また、このテーブルには、識別情報に対応するＰＣ３０，３０…に対して作成したサーバリストの作成日が格納されている。サーバリストは、ＰＣ３０，３０…がソフトウェア資源を受信する際に、アクセスすべきメインサーバ装置１０及びサブサーバ装置２０，２０…の順序を定義付けたデータである。サーバリストは、ＰＣ３０，３０…から問い合わせ信号を受信した際に作成される。従って、ＣＰＵ１１は、直近に問い合わせ信号を受信した日を、サーバリストの作成日から把握することができる。
【００２７】
図３（ｄ）のテーブルには、サブサーバ装置２０，２０…のＳＩＤ及びＰＣ３０，３０…のＰＣＩＤが組み合わされて格納されている。斯かる組み合わせは、サブサーバ装置２０，２０…及びＰＣ３０，３０…の接続を示し、可能な全ての組み合わせが生成されている。そして、各組み合わせに対し、指示状態及び受信完了日時が対応付けられて格納されている。指示状態は、ＰＣ３０，３０…からサブサーバ装置２０，２０…に対して行っている指示の状況を示す。指示状態の「受信中」は、ＰＣ３０，３０…がサブサーバ装置２０，２０…からソフトウェア資源を受信している状態を示す。指示状態の「受信完了」は、ＰＣ３０，３０…がサブサーバ装置２０，２０…からソフトウェア資源の受信が完了していることを示す。例えば、図３（ｄ）のＳＩＤ「１」とＰＣＩＤ「１」との組み合わせの場合について説明する。ＳＩＤ「１」のサブサーバ装置２０，２０…と、それに接続するＰＣＩＤ「１」のＰＣ３０，３０…とは、メインサーバ装置１０から指示中であることを示している。また、ＰＣＩＤ「１」のＰＣ３０，３０…は、「＊＊／＊＊／＊＊」の日時に、ＳＩＤ「１」のサブサーバ装置２０，２０…からソフトウェア資源を受信したことを示している。
【００２８】
図４は、メインサーバ装置１０が作成するサーバリストを模式的に示す図である。サーバリストには、順序が設定されたメインサーバ装置１０及びサブサーバ装置２０，２０…の識別情報（例えば、装置名）が格納されている。サーバリストの順序は、図３（ｂ）の処理負荷が小さい装置から順に設定される。図３（ｂ）の場合、処理負荷「２０％」で一番小さいサブサーバ装置Ｂが一番に順位付けられる。また、サーバリストの順序には、何れかの順位に設定されたメインサーバ装置１０が含まれる（図４では３番目の順序）。メインサーバ装置１０の順位は、予め決められていてもよいし、サブサーバ装置２０，２０…の処理負荷を基準にして決められてもよい。
【００２９】
図４のサーバリストは、メインサーバ装置１０がＰＣ３０，３０…から問い合わせ信号を受信した場合に作成され、ＰＣ３０，３０…へ送信される。このサーバリストを受信したＰＣ３０，３０…は、設定された順に従って、各装置にアクセスする。図４の場合、ＰＣ３０，３０…は、最初に「サブサーバ装置Ｂ」にアクセスし、ソフトウェア資源を受信する。このとき、「サブサーバ装置Ｂ」にソフトウェア資源が記憶されていないため、「サブサーバ装置Ｂ」からソフトウェア資源を受信できない場合、ＰＣ３０，３０…は、次に「サブサーバ装置Ａ」にアクセスする。ＰＣ３０，３０…は、ソフトウェア資源が受信できるまで、このサーバリストに従い、各装置へのアクセスを繰り返す。ＰＣ３０，３０…が受信すべきソフトウェア資源は、メインサーバ装置１０には確実に記憶されている。このため、サーバリストにメインサーバ装置１０を含めることで、ＰＣ３０，３０…は、サブサーバ装置２０，２０…からのソフトウェア資源の受信を失敗し続けても、メインサーバ装置１０からソフトウェア資源を受信することができる。
【００３０】
図５は、データ配信システムが備えるサブサーバ装置２０，２０…の構成を模式的に示すブロック図である。
【００３１】
サブサーバ装置２０，２０…は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、大容量記憶装置２４及び通信部２５等のハードウェア各部を備える。これらのハードウェア各部はバスを介して相互に接続されている。通信部２５は、メインサーバ装置１０及びＰＣ３０，３０…とのデータ通信を可能にする。
【００３２】
ＣＰＵ２１は、ＲＯＭ２２などに予め格納されている制御プログラムを適宜ＲＡＭ２３に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。ＲＯＭ２２は、サブサーバ装置２０，２０…を本願に開示する中間装置として動作させるために必要な種々の制御プログラムを予め格納している。ＲＡＭ２３は、例えばＳＲＡＭ、ＤＲＡＭ又はフラッシュメモリ等である。ＲＡＭ２３は、ＣＰＵ２１による制御プログラムの実行時に発生する種々のデータを一時的に記憶する。大容量記憶装置２４は、例えばＨＤＤである。大容量記憶装置２４は、メインサーバ装置１０から送信されたソフトウェア資源などを格納する。
【００３３】
図６は、データ配信システムが備えるＰＣ３０，３０…の構成を模式的に示すブロック図である。
【００３４】
ＰＣ３０，３０…は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ＨＤＤ３４、通信部３５、モニタ３６及び入力部３７等のハードウェア各部を備える。これらのハードウェア各部はバスを介して相互に接続されている。通信部３５は、メインサーバ装置１０及びサブサーバ装置２０，２０…とのデータ通信を可能にする。モニタ３６は、液晶ディスプレイ又はＣＲＴ（Cathode Ray Tube）ディスプレイ等である。入力部３７は、マウス及びキーボードである。
【００３５】
ＣＰＵ３１は、ＲＯＭ３２などに予め格納されている制御プログラムを適宜ＲＡＭ３３に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。ＲＯＭ３２は、ＰＣ３０，３０…を本願に開示する端末装置として動作させるために必要な種々の制御プログラムを予め格納している。ＲＡＭ３３は、例えばＳＲＡＭ、ＤＲＡＭ又はフラッシュメモリ等である。ＲＡＭ３３は、ＣＰＵ３１による制御プログラムの実行時に発生する種々のデータを一時的に記憶する。ＨＤＤ３４は、メインサーバ装置１０又はサブサーバ装置２０，２０…から受信したソフトウェア資源などを格納する。
【００３６】
次に、上述したメインサーバ装置１０、サブサーバ装置２０，２０…及びＰＣ３０，３０…それぞれが各種の制御プログラムを実行することによって実現される機能について説明する。図７は、データ配信システムが有する機能を示すブロック図である。
【００３７】
本実施形態のメインサーバ装置１０は、資源入力部５０１、資源記憶部５０２、同期命令入力部５０３、サブサーバ管理部５０４、同期判定部（同期判定手段）５０５、同期処理部（負荷検出手段）５０６、配付指示部５０７、ＰＣ管理部５０８、リスト作成部（順序決定手段）５０９、リスト送信部５１０、問い合わせ信号受信部５１１、問い合わせ判定部５１２、資源送信部（中央装置側送信手段）５１３、及び情報取得返信部５１４等の機能を有する。
【００３８】
本実施形態のサブサーバ装置２０，２０…は、資源管理部６０１、ＰＣ管理部６０２、同期処理部６０３、資源送信部（中間装置側送信手段）６０４、及び情報取得返信部６０５等の機能を有する。また、本実施形態のＰＣ３０，３０…は、問い合わせ信号送信部７０１、リスト受信部７０２、履歴保存部７０３、資源受信部７０４、履歴管理部７０５、資源管理部７０６、資源取得要求部（要求信号送信手段）７０７、サーバ判定部（成否判定手段）７０８及び資源情報取得部７０９等の機能を有する。
【００３９】
メインサーバ装置１０の資源記憶部５０２は、資源入力部５０１から入力されたソフトウェア資源、及び図３（ａ）のテーブルを記憶する。資源送信部５１３は、資源記憶部５０２に記憶されたソフトウェア資源をＰＣ３０，３０…に送信する。サブサーバ管理部５０４は、図３（ｂ）のテーブルを格納し、サブサーバ装置２０，２０…を管理する。ＰＣ管理部５０８は、図３（ｃ）及び（ｄ）のテーブルを格納し、ＰＣ３０，３０…を管理する。
【００４０】
同期命令入力部５０３は、サブサーバ装置２０，２０…との同期を開始する命令を入力する。同期判定部５０５は、図３（ｂ）のテーブルから、未同期のサブサーバ装置２０，２０…の同期状態を判定し、同期処理部５０６は、未同期のサブサーバ装置２０，２０…との同期を行う。このとき、図３（ｂ）のテーブルの同期状態が更新される。また、同期処理部５０６は、同期したサブサーバ装置２０，２０…に対して、ソフトウェア資源及び、ＰＣ管理部５０８が管理するＰＣ３０，３０…に関する情報を送信する。ＰＣ３０，３０…に関する情報は、例えば図３（ｃ）のテーブルである。さらに、同期処理部５０６は、サブサーバ装置２０，２０…の処理負荷を取得する。このとき、図３（ｂ）のテーブルの処理負荷が更新される。
【００４１】
サブサーバ装置２０，２０…の同期処理部６０３は、メインサーバ装置１０の同期処理部５０６との同期処理を行う。そして、同期処理部６０３は、同期したメインサーバ装置１０から送信されたソフトウェア資源、及びＰＣ３０，３０…に関する情報を受信する。資源管理部６０１は、同期処理部６０３が受信したソフトウェア資源を記憶する。ＰＣ管理部６０２は、同期処理部６０３が受信したＰＣ３０，３０…に関する情報を記憶する。
【００４２】
配付指示部５０７は、メインサーバ装置１０に図３（ｄ）の指示状態を変更する処理を行う。また、指示状態の変更処理後に同期処理部を呼び出し、同期処理を実施する。この操作により、ＰＣ３０，３０…のそれぞれがメインサーバに対して問い合わせを実施した際に受信すべきソフトウェア資源があるか否かの判定処理を問い合わせ判定部５１２が行う際の判断基準を作成する。
【００４３】
ＰＣ３０，３０…の電源が投入され、ハードウェア各部の起動が完了した場合、問い合わせ信号送信部７０１は、メインサーバ装置１０に対して問い合わせ信号を送信する。送信された問い合わせ信号は、メインサーバ装置１０の問い合わせ信号受信部５１１により受信される。問い合わせ判定部５１２は、ＰＣ３０，３０…が受信すべきソフトウェア資源があるか否かを判定する。
【００４４】
具体的には、問い合わせ判定部５１２は、問い合わせ信号を送信したＰＣ３０，３０…を特定し、特定したＰＣ３０，３０…に対して作成したサーバリストの作成日を図３（ｃ）から取得する。さらに、受信日がリスト作成日より後である場合、図３（ａ）の最終更新日に基づいて、受信日とリスト作成日との間に更新されたソフトウェア資源があるか否かを判定する。更新されたソフトウェア資源がある場合には、問い合わせ判定部５１１は、ＰＣ３０，３０…は受信すべきソフトウェア資源があると判定する。
【００４５】
リスト作成部５０９は、問い合わせ判定部５１２が受信すべきソフトウェア資源があると判定した場合、サーバリストを作成する。リスト作成部５０９は、図３（ｂ）に示す各テーブルから、同期状態が「ＯＫ」で、処理負荷が小さいサブサーバ装置２０，２０…から順位付けしたサーバリストを、メインサーバ装置１０を含めて作成する。ＰＣ３０，３０…は、サーバリストで定義付けられた順に装置にアクセスをする。このため、処理負荷が小さい装置からＰＣ３０，３０…がアクセスすることで、負荷が大きい装置にはＰＣ３０，３０…がなるべくアクセスしないようにすることができる。この結果、ネットワーク又は装置に掛かる負荷を分散させることができる。なお、リスト作成部５０９は、サブサーバ装置２０，２０…に予め設定した優先順位に基づいてサーバリストを作成してもよいし、ネットワークの負荷を考慮して作成してもよい。また、サブサーバ装置２０，２０…での処理待ちの状況を考慮して作成してもよく、ネットワーク又は装置に掛かる負荷が分散できる方法であれば適宜変更可能である。
【００４６】
このように、メインサーバ装置１０において、同期済みのサブサーバ装置２０，２０…を抽出し、サーバリストを生成することで、ＰＣ３０，３０…は未同期状態のサブサーバ装置２０，２０…への問い合わせを行う必要がなくなる。また、サーバリストにメインサーバ装置１０を含めることで、ＰＣ３０，３０…がサブサーバ装置２０，２０…からソフトウェア資源を受信できない場合でも、メインサーバ装置１０から必ずソフトウェア資源の受信が可能となる。
【００４７】
リスト送信部５１０は、リスト作成部５０９が作成したサーバリストを、問い合わせ信号を送信したＰＣ３０，３０…に送信する。ＰＣ３０，３０…のリスト受信部７０２は、サーバリストを受信する。資源情報取得部７０９は、受信したサーバリストにおいて１番に順位付けられたメインサーバ装置１０又はサブサーバ装置２０，２０…にアクセスし、ソフトウェア資源が記憶されているか否かを問い合わせる。
【００４８】
メインサーバ装置１０の情報取得返信部５１４、及びサブサーバ装置２０，２０…の情報取得返信部６０５は、資源情報取得部７０９からの問い合わせに対して、ソフトウェア資源があるか否かをＰＣ３０，３０…に送信する。ＰＣ３０，３０…のサーバ判定部７０８は、情報取得返信部５１４及び情報取得返信部６０５からの結果を取得し、ソフトウェア資源が記憶されているか否かを判定する。記憶されている場合、資源取得要求部７０７は、メインサーバ装置１０又はサブサーバ装置２０，２０…に対して、ソフトウェア資源を要求する。記憶していない場合、資源情報取得部７０９は、サーバリストの順番に従い、別のメインサーバ装置１０又はサブサーバ装置２０，２０…にアクセスする。
【００４９】
メインサーバ装置１０の資源送信部５１３及びサブサーバ装置２０，２０…の資源送信部６０４は、ＰＣ３０，３０…からの要求に対応するソフトウェア資源をＰＣ３０，３０…に送信する。ＰＣ３０，３０…の資源受信部７０４は、送信されたソフトウェア資源を受信し、資源管理部７０６に記憶する。履歴保存部７０３は、履歴管理部７０５にソフトウェア資源の受信履歴を記憶する。
【００５０】
また、履歴保存部７０３は、メインサーバ装置１０又はサブサーバ装置２０，２０…に対して受信履歴を送信する。受信履歴を受信したＰＣ管理部５０８，６０２は、ＰＣ３０，３０…が受信したソフトウェア資源と、自身が記憶するソフトウェア資源との整合性を判定する。これにより、ＰＣ３０，３０…に最新のソフトウェア資源が取得されたかを判定できる。
【００５１】
さらに、メインサーバ装置１０が動作不能となった場合、ＰＣ３０，３０…は、サブサーバ装置２０，２０…に受信履歴を送信する。サブサーバ装置２０，２０…は、自身が記憶するソフトウェア資源と、ＰＣ３０，３０…の受信履歴とを対比する。そして、サブサーバ装置２０，２０…は、ＰＣ３０，３０…が自身が記憶するソフトウェア資源を受信していない場合、そのソフトウェア資源をＰＣ３０，３０…に送信する。これにより、メインサーバ装置１０が動作不能であっても、ＰＣ３０，３０…は、サブサーバ装置２０，２０…からソフトウェア資源を受信できる。
【００５２】
以下に、本実施形態のデータ配信システムが備えるメインサーバ装置１０、サブサーバ装置２０，２０…及びＰＣ３０，３０…それぞれの動作について説明する。
【００５３】
図８及び図９は、ＰＣ３０，３０…で実行される処理を示すフローチャートである。以下の処理は、ＰＣ３０，３０…のＲＯＭ３２に格納してある制御プログラムに従ってＣＰＵ３１によって実行される。
【００５４】
ＣＰＵ３１は、ＰＣ３０，３０…が起動された場合、問い合わせ信号をメインサーバ装置１０へ送信する（Ｓ１）。ＣＰＵ３１は、メインサーバ装置１０との通信が可能である否かを判定する（Ｓ２）。メインサーバ装置１０との通信が可能でああって、問い合わせ信号を受信したメインサーバ装置１０では、ＰＣ３０，３０…が受信すべきソフトウェア資源の有無が確認され、ソフトウェア資源が有る場合にサーバリストが作成され、ＰＣ３０，３０…に送信される。
【００５５】
メインサーバ装置１０との通信が可能である場合（Ｓ２：ＹＥＳ）、ＣＰＵ３１は、サーバリストを受信したか否かを判定する（Ｓ３）。サーバリストを受信していない場合（Ｓ３：ＮＯ）、ＣＰＵ３１は、受信すべきソフトウェア資源はないと判定し、処理を終了する。なお、ＣＰＵ３１は、一定時間サーバリストを受信しなかった場合に、受信すべきソフトウェア資源はないと判定してもよい。また、メインサーバ装置１０でサーバリストを作成しない場合、例えばｎｕｌｌの信号をＰＣ３０，３０…に送信し、ＣＰＵ３１は、ｎｕｌｌの信号を受信した場合に、受信すべきソフトウェア資源はないと判定してもよい。
【００５６】
サーバリストを受信した場合（Ｓ３：ＹＥＳ）、ＣＰＵ３１は、サーバリストにｉ（初期値１）番目に設定されたメインサーバ装置１０又はサブサーバ装置２０，２０…へアクセスする（Ｓ４）。そして、ＣＰＵ３１は、メインサーバ装置１０又はサブサーバ装置２０，２０…へアクセスできたか否かを判定する（Ｓ５）。アクセスできた場合（Ｓ５：ＹＥＳ）、ＣＰＵ３１は、アクセスした装置に対して資源情報の取得を依頼する（Ｓ５０１）資源情報の図３（a）及び（ｄ）に示すテーブルの情報から、接続しているサブサーバ装置２０，２０…がメインサーバ装置１０の保有している図３（a）および（ｄ）の情報との整合性を確認する。そして、ＣＰＵ３１は、接続しているサブサーバ装置２０，２０…がメインサーバ装置１０に同期されている状態であるか否かを判断する（Ｓ５０２）。
【００５７】
具体的には、ＰＣ３０，３０…は、メインサーバ装置１０からサーバリストを受信する際に、メインサーバ装置１０から図３（ａ）に示すテーブルの内容を取得する。ＰＣ３０，３０…は、メインサーバ装置１０から受信した図３（ａ）に示すテーブルと、サブサーバ装置２０，２０…から受信した図３（ａ）に示すテーブルとを参照し、ダウンロードしようとするソフトウェア資源に対応する更新日付が一致する場合に同期がされている状態であると判断する。
【００５８】
サブサーバ装置２０，２０…が同期完了している状態であると判断できる場合（Ｓ５０２：ＹＥＳ）、ＣＰＵ３１は、ソフトウェア資源のダウンロードを要求する（Ｓ６）。接続しているサブサーバ装置２０，２０…が同期されていない状態であると判断した場合（Ｓ５０２：ＮＯ）、ＣＰＵ３１は、後述のＳ８に移行し、サーバリストに基づき次のサーバに接続処理を行い、Ｓ５０１の同サーバに資源情報の取得を依頼する。これらの処理を繰り返すことにより、同期済みサーバを割り出す。
【００５９】
次に、ＣＰＵ３１は、アクセスした装置からソフトウェア資源を受信できたか否かを判定する（Ｓ７）。ソフトウェア資源を受信できなかった場合（Ｓ７：ＮＯ）、換言すれば、アクセスしたサブサーバ装置２０，２０…に、要求したソフトウェア資源が記憶されていない場合、ＣＰＵ３１は、ｉに１を加算する（Ｓ８）。そして、ＣＰＵ３１は、加算後のｉの値が終値であるか否かを判定する（Ｓ９）。終値は、サーバリストで順位付けられたメインサーバ装置１０又はサブサーバ装置２０，２０…の数である。ｉの値が終値でない場合（Ｓ９：ＮＯ）、ＣＰＵ３１は、Ｓ４に処理を戻し、次に順位付けられた装置に対して同様の処理を行う。ｉの値が終値である場合（Ｓ９：ＹＥＳ）、即ち、ＣＰＵ３１は、サーバリストにある全装置に対して資源要求を試みた場合、ＣＰＵ３１は、通信環境を確認し、その結果を報知する（Ｓ１０）。
【００６０】
上述のようにサーバリストにはメインサーバ装置１０を含んでいるため、ＰＣ３０，３０…のアクセス先には、メインサーバ装置１０がある。従って、ＰＣ３０，３０…は、要求するソフトウェア資源をサブサーバ装置２０，２０…から受信できない場合であっても、メインサーバ装置１０からは必ず受信することができる。そこで、サーバリスト内の全装置に対してソフトウェア資源の受信に失敗した場合、ＣＰＵ３１は、自身の装置に、ネットワーク接続などの問題があるか否かを判定する。確認結果の報知先は、メインサーバ装置１０又はサブサーバ装置２０，２０…であってもよいし、ＰＣ３０，３０…のモニタ等に表示してもよい。また、データ配信システムにない装置、例えばシステム管理者が所有する携帯電話機などに電子メールを送信するようにしてもよい。これにより、メインサーバ装置１０及びサブサーバ装置２０，２０…の記憶内容に不整合があるのか、通信環境又はＰＣ３０，３０…に不具合があるのかが把握し易くなる。この結果、システム管理者などの以降の作業が行い易くなり、早急にソフトウェア資源の配信を確実に行えるようにできる。
【００６１】
一方、Ｓ５において、メインサーバ装置１０又はサブサーバ装置２０，２０…へアクセスできなかった場合（Ｓ５：ＮＯ）、ＣＰＵ３１は、通信環境を確認する（Ｓ１１）。そして、ＣＰＵ３１は、通信エラーが発生しているか否かを判定する（Ｓ１２）。通信エラーは、例えばＰＣ３０，３０…が無線通信を行っている場合に、無線が切断された場合などである。これにより、装置へアクセスできない原因が、ネットワークにあるのかアクセス先の装置にあるのかを把握することができる。通信エラーが発生していない場合（Ｓ１２：ＮＯ）、ＣＰＵ３１は、Ｓ８以降の処理を実行する。通信エラーが発生している場合（Ｓ１２：ＹＥＳ）、ＣＰＵ３１は、Ｓ４へ処理を移し、再度アクセスする。この場合、所定回数アクセスを行ったときに終了するようにしてもよいし、所定時間アクセスを繰り返した後に終了するようにしてもよい。また、Ｓ５では、ＰＣ３０，３０…が何れかの装置と通信中に、接続が遮断された場合を含む。
【００６２】
また、Ｓ７において、アクセスした装置からソフトウェア資源を受信した場合（Ｓ７：ＹＥＳ）、ＣＰＵ３１は、受信したソフトウェア資源をＨＤＤ３４へ記憶する（Ｓ１３）。そして、ＣＰＵ３１は、ソフトウェア資源の受信が正常に完了したことをメインサーバ装置１０へ送信する（Ｓ１４）。
【００６３】
Ｓ２において、メインサーバ装置１０との通信が可能でない場合（Ｓ２：ＮＯ）、ＣＰＵ３１は、ｊ番目のサブサーバ装置２０，２０…へのアクセスを行う（Ｓ１５）。メインサーバ装置１０との通信が可能でない場合とは、例えばメインサーバ装置１０がシステムダウンしている場合である。この場合、ＰＣ３０，３０…は、ｊ番目のサブサーバ装置２０，２０…へのアクセスを行う。ｊは、初期値が１であり、データ配信システムにあるサブサーバ装置２０，２０…に対して任意に付された番号である。
【００６４】
ＣＰＵ３１は、ｊ番目のサブサーバ装置２０，２０…へのアクセスが可能であったか否かを判定する（Ｓ１６）。アクセスできなかった場合（Ｓ１６：ＮＯ）、ＣＰＵ３１は通信環境を確認する（Ｓ２２）。そして、ＣＰＵ３１は、通信エラーが発生しているか否かを判定する（Ｓ２３）。これにより、装置へアクセスできない原因が、ネットワークにあるのかアクセス先の装置にあるのかを把握することができる。通信エラーが発生していない場合（Ｓ２３：ＮＯ）、ＣＰＵ３１は、Ｓ２０以降の処理を実行する。通信エラーが発生している場合（Ｓ２３：ＹＥＳ）、ＣＰＵ３１は、Ｓ１５へ処理を移し、再度アクセスする。この場合、所定回数アクセスを行ったときに終了するようにしてもよいし、所定時間アクセスを繰り返した後に終了するようにしてもよい。また、Ｓ１６では、ＰＣ３０，３０…が何れかの装置と通信中に、接続が遮断された場合を含む。
【００６５】
アクセスできた場合（Ｓ１６：ＹＥＳ）、ＣＰＵ３１は、アクセスしたサブサーバ装置２０，２０…に対して問い合わせ信号を送信する（Ｓ１７）。次に、ＣＰＵ３１は、サブサーバ装置２０，２０…にソフトウェア資源が記憶されていたか否かを判定する（Ｓ１８）。このとき、ＣＰＵ３１は、サブサーバ装置２０，２０…から送信された結果に基づいて、資源があるか否かを判定する。
【００６６】
ソフトウェア資源がある場合（Ｓ１８：ＹＥＳ）、ＣＰＵ３１は、アクセスしたサブサーバ装置２０，２０…に対してソフトウェア資源を要求する（Ｓ１９）。そして、ＣＰＵ３１は、受信したソフトウェア資源をＨＤＤ３４へ記憶する（Ｓ１３）。その後、ＣＰＵ３１は、ソフトウェア資源の受信が正常に完了したことをメインサーバ装置１０へ送信する（Ｓ１４）。
【００６７】
ソフトウェア資源がない場合（Ｓ１８：ＮＯ）、ＣＰＵ３１は、ｊに１を加算する（Ｓ２０）。そして、ＣＰＵ３１は、加算後のｊの値が終値であるか否かを判定する（Ｓ２１）。終値は、データ配信システムにあるサブサーバ装置２０，２０…の数である。ｊの値が終値でない場合（Ｓ２１：ＮＯ）、ＣＰＵ３１は、Ｓ１５に処理を戻し、次のサブサーバ装置２０，２０…に対して同様の処理を行う。ｊの値が終値である場合（Ｓ２１：ＹＥＳ）、即ち、ＣＰＵ３１は、全てのサブサーバ装置２０，２０…に対して資源要求を試みた場合、ＣＰＵ３１は、本処理を終了する。このように、メインサーバ装置１０が動作不能であっても、ＰＣ３０，３０…は、サブサーバ装置２０，２０…からソフトウェア資源の受信が可能となる。
【００６８】
図１０は、メインサーバ装置１０で実行される更新されたソフトウェア資源を送信する処理を示すフローチャートである。図１１は、メインサーバ装置１０で実行されるソフトウェア資源配信処理を示すフローチャートである。図１２は、メインサーバ装置１０で実行される要求されたソフトウェア資源を送信する処理を示すフローチャートである。以下のそれぞれの処理は、メインサーバ装置１０のＲＯＭ１２に格納してある制御プログラムに従ってＣＰＵ１１によって実行される。
【００６９】
図１０の処理において、ＣＰＵ１１は、ソフトウェア資源が新たに入力されたか否かを判定する（Ｓ３０）。入力されていない場合（Ｓ３０：ＮＯ）、ＣＰＵ１１は、メインサーバ装置１０が既に記憶しているソフトウェア資源に更新（変更）があったか否かを判定する（Ｓ３１）。ソフトウェア資源が新たに入力されなければ（Ｓ３１：ＮＯ）、ＣＰＵ１１は、本処理を終了する。ソフトウェア資源が新たに入力された場合（Ｓ３１：ＹＥＳ）、又は記憶しているソフトウェア資源に更新（変更）があった場合（Ｓ３０：ＹＥＳ）、ＣＰＵ１１は、サブサーバ装置２０，２０…との同期処理を実行する（Ｓ３２）。そして、ＣＰＵ１１は、同期済みのサブサーバ装置２０，２０…へソフトウェア資源を送信する（Ｓ３３）。これにより、サブサーバ装置２０，２０…に、メインサーバ装置１０の記憶内容を反映させることができる。なお、ＣＰＵ１１は、Ｓ３２で同期できなかったサブサーバ装置２０，２０…に対して所定回数同期処理を実行してもよいし、エラーを報知するようにしてもよい。
【００７０】
Ｓ３２において、ＣＰＵ１１は、メインサーバ装置１０と通信が可能なサブサーバ装置２０，２０…に対して、新たに入力された又は更新があったソフトウェア資源の送信を開始する旨の信号を示す資源配付開始信号を、通信部１６を用いて送信する。ＣＰＵ１１は、資源配付開始信号を送信する際に、送信先となるサブサーバ装置２０，２０…の、同期状況「指示中」を、図３（ｂ）に示すサブサーバテーブルの同期状態に登録又は更新する。
【００７１】
Ｓ３２において、ＣＰＵ１１は、さらに、送信した資源配付開始信号に対する応答としてサブサーバ装置２０，２０…から送信される資源配付開始応答を、通信部１６を用いて受信する。
【００７２】
Ｓ３２において、ＣＰＵ１１は、さらに、資源配付開始応答を送信したサブサーバ装置２０，２０…に対して、通信部１６を用いたソフトウェア資源の送信を開始する。その際、ＣＰＵ１１は、送信先のサブサーバ装置２０，２０…の、同期状況「受信中」を、図３（ｂ）に示すサブサーバテーブルに登録又は更新する。
【００７３】
Ｓ３２において、ＣＰＵ１１は、さらに、ソフトウェア資源の送信処理が完了した際に、その送信処理に係る送信先のサブサーバ装置２０の同期状況「同期完了（OK）」を、図３に示すサブサーバテーブルに登録又は更新する。なお、ＣＰＵ１１は、サブサーバ装置２０，２０…へ送信したデータ量の累計が送信処理に係るソフトウェア資源のデータ量に達したか否かに応じて、送信処理の完了を検出することができる。また、ＣＰＵ１１は、サブサーバ装置２０，２０…からソフトウェア資源の受信が完了したことを示す信号を通信部１６を用いて受信することにより、送信処理の完了を検知することができる。
【００７４】
図１１の処理において、ＣＰＵ１１は、ＰＣ３０，３０…から問い合わせ信号を受信したか否かを判定する（Ｓ４０）。問い合わせ言信号を受信していない場合（Ｓ４０：ＮＯ）、ＣＰＵ１１は、本処理を終了する。問い合わせ言信号を受信した場合（Ｓ４０：ＹＥＳ）、ＣＰＵ１１は、記憶内容に変更があったか否かを判定する（Ｓ４１）。具体的には、ＣＰＵ１１は、図３で説明したように、前回問い合わせ信号を受信してから、新たなソフトウェア資源の入力、又はソフトウェア資源の変更があったか否かを判定する。
【００７５】
記憶内容に変更がない場合（Ｓ４１：ＮＯ）、ＣＰＵ１１は、本処理を終了する。このとき、ＣＰＵ１１は、変更がないことをＰＣ３０，３０…に報知するため、例えばｎｕｌｌの信号を送信するようにしてもよい。記憶内容に変更がある場合（Ｓ４１：ＹＥＳ）、ＣＰＵ１１は、サーバリストを作成する（Ｓ４２）。ＣＰＵ１１は、図３（ｂ）の処理負荷が小さい装置から順に順位付けて、サーバリストを作成する。そして、ＣＰＵ１１は、作成したサーバリストをＰＣ３０，３０…に送信する（Ｓ４３）。
【００７６】
Ｓ４３において図３（ｂ）に示すサブサーバテーブルを参照し、サブサーバ装置２０，２０…のうち、同期状況に「同期完了（OK）」が設定されているサブサーバ装置２０，２０…を検出し、その検出結果に基づいてサーバリストを作成する。これにより、ソフトウェア資源の受信が完了していないサブサーバ装置２０，２０…を、サーバリストから排除することができ、その結果、より確実にＰＣ３０に対して正確なデータを配信することができる。
【００７７】
Ｓ４３において、ＣＰＵ１１は、さらに、作成したサーバリストに示されるサブサーバ装置２０，２０…を、図３（ｂ）の処理負荷が小さいサブサーバ装置２０，２０…から順に順位付けて、サーバリストを整列する。そして、ＣＰＵ１１は、整列したサーバリストをＰＣ３０，３０…に送信する。
【００７８】
ＣＰＵ１１は、サーバリストを送信したＰＣ３０，３０…から受信完了信号を受信したか否かを判定する（Ｓ４４）。受信完了信号は、ＰＣ３０，３０…がソフトウェア資源の受信が正常に完了した、図８で説明したＳ１４のタイミングでＰＣ３０，３０…から送信される。受信完了信号を受信していない場合（Ｓ４４：ＮＯ）、ＣＰＵ１１は、例えばシステム管理者などに対してエラー報知を行う（Ｓ４５）。そして、ＣＰＵ１１は、本処理を終了する。受信完了信号を受信した場合（Ｓ４４：ＹＥＳ）、ＣＰＵ１１は、正常にソフトウェア資源が受信されたと判定し、本処理を終了する。
【００７９】
図１２の処理において、ＣＰＵ１１は、ＰＣ３０，３０…からアクセスされ、ソフトウェア資源を要求されたか否かを判定する（Ｓ５０）。ソフトウェア資源が要求されていない場合（Ｓ５０：ＮＯ）、ＣＰＵ１１は、本処理を終了する。ソフトウェア資源が要求された場合（Ｓ５０：ＹＥＳ）、ＣＰＵ１１は、ＰＣ３０，３０…が要求するソフトウェア資源を必ず記憶しているため、ソフトウェア資源を要求したＰＣ３０，３０…に対象のソフトウェア資源を送信する（Ｓ５１）。そして、ＣＰＵ１１は、本処理を終了する。
【００８０】
図１３は、サブサーバ装置２０，２０…で実行されるソフトウェア資源記憶処理を示すフローチャートである。図１４は、サブサーバ装置２０，２０…で実行されるソフトウェア資源送信処理を示すフローチャートである。以下のそれぞれの処理は、サブサーバ装置２０，２０…のＲＯＭ２２に格納してある制御プログラムに従ってＣＰＵ２１によって実行される。
【００８１】
図１３の処理において、ＣＰＵ２１は、メインサーバ装置１０からソフトウェア資源を受信したか否かを判定する（Ｓ６０）。ソフトウェア資源を受信していない場合（Ｓ６０：ＮＯ）、ＣＰＵ２１は、本処理を終了する。ソフトウェア資源を受信した場合（Ｓ６０：ＹＥＳ）、ＣＰＵ２１は、受信したソフトウェア資源を大容量記憶装置２４に記憶する（Ｓ６１）。これにより、サブサーバ装置２０，２０…は、メインサーバ装置１０と同じソフトウェア資源を記憶するようになる。
【００８２】
図１４の処理において、ＣＰＵ２１は、ＰＣ３０，３０…からアクセスされ、ソフトウェア資源を要求されたか否かを判定する（Ｓ７０）。ソフトウェア資源が要求されない場合（Ｓ７０：ＮＯ）、ＣＰＵ２１は、本処理を終了する。ソフトウェア資源が要求された場合（Ｓ７０：ＹＥＳ）、ＣＰＵ２１は、要求されたソフトウェア資源が大容量記憶装置２４に記憶されているか否かを判定する（Ｓ７１）。
【００８３】
要求されたソフトウェア資源が大容量記憶装置２４に記憶されている場合（Ｓ７１：ＹＥＳ）、ＣＰＵ２１は、ソフトウェア資源を要求したＰＣ３０，３０…に対象のソフトウェア資源を送信する（Ｓ７２）。そして、ＣＰＵ３１は、本処理を終了する。一方、要求されたソフトウェア資源が大容量記憶装置２４に記憶されていない場合（Ｓ７１：ＮＯ）、ＣＰＵ２１は、要求されたソフトウェア資源を記憶していない旨の信号をＰＣ３０，３０…に送信する（Ｓ７３）。そして、ＣＰＵ３１は、本処理を終了する。
【００８４】
以上説明したように、本願に開示するデータ配信システムは、メインサーバ装置１０、サブサーバ装置２０，２０…及びＰＣ３０，３０…を備えている。メインサーバ装置１０では、サブサーバ装置２０，２０…にソフトウェア資源を送信していることが判っているため、ＰＣ３０，３０…から問い合わせ信号を受信した場合、ＰＣ３０，３０…が受信すべきソフトウェア資源がサブサーバ装置２０，２０…にあるか否かの判定ができる。ＰＣ３０，３０…は、メインサーバ装置１０で判定された結果に基づいて、サブサーバ装置２０，２０…からソフトウェア資源を受信するため、サブサーバ装置２０，２０…に対してソフトウェア資源の有無の問い合わせをする必要がなくなる。この結果、メインサーバ装置１０及びサブサーバ装置２０，２０…、並びに、サブサーバ装置２０，２０…及びＰＣ３０，３０…間において随時正確な同期がとれない場合であっても、メインサーバ装置１０に記憶されたソフトウェア資源をＰＣ３０，３０…で確実に取得することができる。
【００８５】
また、端末装置が主体的にソフトウェア資源の転送の問合せを行うことにより、中央装置、中間装置で端末装置の細かい管理を実施する必要がなくなる。また、中央装置及び中間装置のプログラム処理が単純化され、中央装置及び中間装置の処理負荷も軽減される。端末装置がどの中間装置からソフトウェア資源を受信すればよいかを示すリストを端末装置に送ることにより、端末装置がソフトウェア資源を受信をする際の中間装置の負荷を分散し、ソフトウェア資源の受信の処理速度を適切に管理することができる。
【００８６】
以上、本発明の好適な実施形態について、具体的に説明したが、各構成及び動作等は適宜変更可能であって、上述の実施形態に限定されることはない。
【００８７】
以上の実施形態を含む実施形態に関し、更に以下の付記を開示する。
【００８８】
（付記１）
ソフトウェア資源を記憶し、通信機能を有する中央装置と、
該中央装置と通信可能であって、前記中央装置から送信されたソフトウェア資源を受信して記憶する中間装置と、
前記中央装置及び中間装置と通信する端末装置と
を備えており、
前記中央装置は、
ソフトウェア資源の登録を受け付ける登録受付手段と、
該登録受付手段により受け付けた前記ソフトウェア資源の版数を、前記ソフトウェア資源に対応付けて記憶する資源情報を格納する資源情報格納手段と、
前記登録受付手段により受け付けた前記ソフトウェア資源、及び前記資源情報格納手段に格納される資源情報を、前記中間装置へ送信する資源転送手段と、
前記端末装置へ通知する前記中間装置のサーバリストを生成するサーバリスト生成手段と、
該サーバリスト生成手段により生成されたサーバリストと前記資源情報とを前記端末装置へ送信する端末装置送信手段と
を有し、
前記端末装置は、
前記中央装置から受信したサーバリストに示される前記中間装置から前記資源転送手段により送信され前記中間装置に記憶されている前記資源情報を取得し、前記中央装置から受信した前記資源情報と前記中間装置から取得した前記資源情報とを比較し、前記資源情報に示されるソフトウェア資源の版数が一致するか否かに基づいて、前記中間装置と前記中央装置とが同期された状態であるか否かを判定する同期判定手段と、
前記同期判定手段により同期していると判定された場合に、前記中間装置へソフトウェア資源の送信を要求する要求信号を送信する要求信号送信手段
を有するデータ配信システム。
（付記２）
前記中間装置を複数備えており、
前記端末装置は、
前記要求信号送信手段が送信した要求信号に対するソフトウェア資源の受信に成功したか否かを判定する成否判定手段
をさらに有し、
前記要求信号送信手段は、
前記成否判定手段が成功と判定するまで、複数の前記中間装置に、所定の順序で要求信号を送信するようにしてあり、
前記中央装置は、
該同期判定手段が同期していると判定した前記中間装置のなかから、前記端末装置が要求信号を送信すべき順序を決定する順序決定手段
をさらに有し、
前記中央装置が有するサーバリスト生成手段は、
前記順序決定手段が決定した順序を含むサーバリストを生成するようにしてある
付記１に記載のデータ配信システム。
（付記３）
前記中央装置が有する順序決定手段は、
前記中央装置を含めた順序を決定し、
前記端末装置が有する要求信号送信手段は、
前記順序決定手段が中央装置を含めた順序を決定した場合、該順序に基づいて、前記中央装置へ要求信号を送信するようにしてあり、
前記中央装置は、
前記要求信号を受信した場合、前記要求信号に基づくソフトウェア資源を前記端末装置へ送信する中央装置側送信手段
をさらに有する付記２に記載のデータ配信システム。
（付記４）
前記中央装置は、
前記中間装置の処理負荷を検出する負荷検出手段
をさらに有し、
前記順序決定手段は、
前記負荷検出手段が検出した処理負荷が低い前記中間装置から順に、前記端末装置が要求信号を送信するよう順序を決定するようにしてある
付記２又は３に記載のデータ配信システム。
（付記５）
前記端末装置は、
無線通信によって前記中央装置及び中間装置と通信するようにしてあり、
前記端末装置の成否判定手段は、
前記無線通信に基づいてソフトウェア資源の受信に成功したか否かを判定するようにしてある
付記２から４の何れか一つに記載のデータ配信システム。
（付記６）
前記中央装置が動作不能の場合において、
前記端末装置は、
自身が記憶するソフトウェア資源に関する情報を取得する端末側取得手段
をさらに有し、
前記端末装置の要求信号送信手段は、
要求信号を、前記端末側取得手段が取得した情報と共に前記中間装置に送信するようにしてあり、
前記中間装置は、
前記要求信号送信手段から要求信号及び情報を受信した場合、該情報に基づいて前記端末装置が記憶するソフトウェア資源を取得する装置側取得手段と、
該装置側取得手段が取得したソフトウェア資源、及び前記中間装置自身が記憶するソフトウェア資源を対比して、前記端末装置が前記中間装置自身から受信すべきソフトウェア資源の有無を判定する中間装置側判定手段と
該中間装置側判定手段が有ると判定した場合、前記端末装置が受信すべきソフトウェア資源を前記端末装置に送信する中間装置側送信手段と
を有する付記１から５の何れか一つに記載のデータ配信システム。
（付記７）
ソフトウェア資源を記憶し、通信機能を有する中央装置及び中間装置を通信可能に接続し、
前記中央装置へのソフトウェア資源の登録を受け付け、
受け付けた前記ソフトウェア資源の版数を、前記ソフトウェア資源に対応付けて記憶する資源情報を格納し、
受け付けた前記ソフトウェア資源、及び格納された資源情報を、前記中間装置へ送信し、
前記端末装置へ通知する前記中間装置のサーバリストを生成し、
生成されたサーバリストと前記資源情報とを前記端末装置へ送信し、
前記端末装置により、前記中央装置から受信したサーバリストに示される前記中間装置から、前記中央装置から送信され前記中間装置に記憶されている前記資源情報を取得し、
前記端末装置により、前記中央装置から受信した前記資源情報と前記中間装置から取得した前記資源情報とを比較し、
前記端末装置により、前記資源情報に示されるソフトウェア資源の版数が一致するか否かに基づいて、前記中間装置と前記中央装置とが同期された状態であるか否かを判定し、
前記端末装置が前記同期判定手段により同期していると判定した場合に、前記端末装置により、前記中間装置へソフトウェア資源の送信を要求する要求信号を送信する
データ配信方法。
【符号の説明】
【００８９】
１０  メインサーバ装置
２０  サブサーバ装置
３０  ＰＣ
５０２  資源記憶部
５０５  同期判定部
５０６  同期処理部
５１０  リスト送信部
５１１  問い合わせ信号受信部
６０１  資源管理部
７０９  資源情報取得部
７０２  リスト受信部
７０７  資源取得要求部
【図１】
2010204830.tif 000003
【図２】
2010204830.tif 000004
【図３】
2010204830.tif 000005
【図４】
2010204830.tif 000006
【図５】
2010204830.tif 000007
【図６】
2010204830.tif 000008
【図７】
2010204830.tif 000009
【図８】
2010204830.tif 000010
【図９】
2010204830.tif 000011
【図１０】
2010204830.tif 000012
【図１１】
2010204830.tif 000013
【図１２】
2010204830.tif 000014
【図１３】
2010204830.tif 000015
【図１４】
2010204830.tif 000016