(58)【調査した分野】(Int.Cl.,DB名)
一又は複数のサーバ装置により構成されるサーバ手段と,複数のクライアント端末とが,通信ネットワークを介してデータの授受ができるように接続されたデータ送受信システムであって,
前記サーバ手段は,
任意のコンテンツデータを記憶するコンテンツ記憶部と,
前記コンテンツ記憶部に記憶されている前記任意のコンテンツデータを複数に分割して複数の分割データを生成するデータ分割部と,
前記データ分割部により生成された複数の分割データを前記複数のクライアント端末に対して個別的又は一括的に送信する送信部と,を有し,
前記複数のクライアント端末のそれぞれは,
前記サーバ手段に対して,前記コンテンツ記憶部に記憶されている前記任意のコンテンツデータのダウンロード要求を送信するサーバ通信部と,
前記サーバ通信部を介したダウンロード要求に応じて前記サーバ手段から送信された前記コンテンツデータの前記分割データをダウンロードする受信部と,
前記受信部によってダウンロードした前記分割データを一時的に記憶するキャッシュ領域と,を有し,
前記サーバ手段は,さらに,
各クライアント端末の前記キャッシュ領域に記憶されている前記分割データに関するメタデータを記憶するメタデータデータベースを備えており,
前記複数のクライアント端末のそれぞれは,さらに,
前記コンテンツデータのダウンロード要求をサーバ手段に送信した際,前記メタデータデータベースを参照し,前記メタデータに基づいて,当該コンテンツデータを構成する分割データを記憶している他のクライアント端末に関する情報を取得するメタデータ取得部と,
前記メタデータ取得部によって取得した前記他のクライアント端末に関する情報に基づいて,当該他のクライアント端末とP2P通信を行い,当該他のクライアント端末の前記キャッシュ領域から,当該コンテンツデータの分割データをダウンロードするP2P通信部と,
前記受信部及び前記P2P通信部の両方又はいずれか一方を介してダウンロードした複数の分割データを統合して,前記コンテンツ記憶部に記憶されている前記任意のコンテンツデータを再構築する再構築部と,
前記再構築部により再構築した前記コンテンツデータを記憶するデータ記憶部を備える
データ送受信システム。
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述した通り,従来のクライアントサーバシステムは,サーバによってコンテンツデータを一元管理し,それを適宜各クライアント端末にダウンロードして作業を行うものであるが,サーバからクライアント端末へのデータ転送の待ち時間は,コンテンツデータが大量であるほど,データを扱う処理の作業効率を低下させることとなる。特に,テラバイトクラスの動画等を含むデジタルアセットを日常的に扱うデジタルコンテンツ業界では,クライアント端末からのダウンロード要求がサーバに集中すると,データ転送に際してボトルネックが発生し,作業効率の低下を招く恐れがあった。
【0008】
また,例えば,映像制作業界やデジタルエンターテイメント業界では,一般的に,クリエイタの出社時間帯に,複数のクライアント端末からサーバに対して一斉にコンテンツデータの要求が行われる。このため,この出社時間帯においては,サーバにアクセスが集中し,サーバから各クライアント端末に対してコンテンツデータを送信するデータ転送速度が著しく低下する恐れがある。また,サーバにおいては,各種アセットやソースコードを日常的にビルドし生成する必要があるため,各クライアント端末においてコンテンツデータのレンダリング作業等が終わり,クリエイタの退社時間帯になると,複数のクライアント端末からサーバに対して一斉に編集後のコンテンツデータがアップロードされる。このため,退社時間帯においても,サーバにアクセスが集中することとなり,各クライアント端末からサーバに対してコンテンツデータを送信するデータ転送速度が著しく低下する可能性がある。このように,従来のクライアントサーバシステムにおいては,イントラネットや外部サーバにおけるトラフィックが増加し,ボトルネックが日常的に発生するというという問題があった。
【0009】
また,従来のクライアントサーバシステムにおいては,各クライアント端末間のデータ送受信の場合にも,サーバを介してデータを送る必要がある。このため,各クライアント端末間でデータが大量となる動画を転送したり,接続するクライアントの数が増加した場合において,サーバを経由するデータトラフィックが増大化して,データ送信の低速化やボトルネックが発生するという不具合があった。
【0010】
また,特許文献1に記載の通信技術は,各クライアント端末がサーバにアクセスし,サーバクライアント型通信においてコンテンツデータを取得するか,P2P通信が可能なクライアント端末を特定して,その特定したクライアント端末との間のP2P型通信において,コンテンツデータを取得するものである。しかしながら,特許文献1の技術では,クライアント端末とサーバ,又はクライアント端末とクライアント端末が,一対一の関係でコンテンツデータの送受信を行うものであるため,結局,一つの情報処理装置に対するトラフィックが増大した場合に,データ送信の低速化やボトルネックが発生する可能性があるという問題を有するものであった。すなわち,特許文献1に記載の技術は,クライアント端末同士が通信を行う場合に,サーバクライアント型通信からP2P型通信に遷移させることにより,サーバクライアント型通信においてサーバにトラフィックが集中することを回避したものに過ぎず,サーバからクライアント端末へ,又はクライアント端末からクライアント端末へデータを送信する際の通信障害を解消することはできなかった。
【0011】
このため,現在では,サーバクライアントシステムにおいて,各クライアント端末にコンテンツデータを配信する際に,サーバにトラフィックが集中し,ボトルネックが発生する不具合を解消しつつ,コンテンツデータを要求しているクライアント端末に対し,マルチパスでデータを配信することにより,データ伝送の高速化を実現することのできるデータ送受信システムが求められている。
【課題を解決するための手段】
【0012】
そこで,本発明の発明者らは,上記の従来発明の問題点を解決する手段について鋭意検討した結果,コンテンツデータを複数のデータに分割し,クライアント端末からあるコンテンツデータのダウロード要求があった際には,そのクライアント端末に対して,当該コンテンツデータを保有するサーバからだけでなく,当該コンテンツデータの分割データがキャッシュ領域に残存している他のクライアント端末から,P2P通信網を介して当該コンテンツデータの分割データを転送し,クライアント端末内にてコンテンツデータを再構築させることにより,サーバにトラフィックが集中するボトルネックを解消しつつ,マルチパスによってデータ転送速度の高速化を実現することができるという知見を得た。そして,本発明者らは,上記知見に基づけば,従来技術の課題を解決できることに想到し,本発明を完成させた。
具体的に本発明は,以下の構成を有する。
【0013】
本発明は,データ送受信システムに関する。
本発明のデータ送受信システムは,一又は複数のサーバ装置により構成されるサーバ手段と,複数のクライアント端末とを有している。サーバ手段とクライアント端末,及び複数のクライアント端末同士は,通信ネットワークを介してデータの授受ができるように接続されている。
サーバ手段は,コンテンツ記憶部と,データ分割部と,送信部を有する。
コンテンツ記憶部は,一又は複数の任意のコンテンツデータを記憶している。コンテンツデータの例は,画像データ,動画データ,音声データ,及び文字データであるが,これらのものに限定されず,クライアント端末において記憶,演算される種々のデータを含む。
データ分割部は,コンテンツ記憶部に記憶されているコンテンツデータを分割して分割データを生成するための機能を有する。
サーバの送信部は,データ分割部により生成された分割データを,クライアント端末に対して送信するための機能を有する。
一方,複数のクライアント端末のそれぞれは,サーバ通信部と,受信部と,キャッシュ領域を有する。
サーバ通信部は,サーバ手段に対して,コンテンツデータのダウンロード要求を送信するための機能を有する。
受信部は,サーバ通信部を介したダウンロード要求に応じてサーバ手段から送信されたコンテンツデータの分割データをダウンロードするための機能を有する。
キャッシュ領域は,受信部によってダウンロードした分割データを一時的に記憶するための機能を有する。
また,サーバ手段は,さらに,メタデータデータベースを備えている。このメタデータデータベースは,各クライアント端末のキャッシュ領域に記憶されている分割データに関するメタデータを記憶しており,少なくとも,分割データの種類に応じて,どの分割データが,どのクライアント端末のキャッシュ領域に記憶されているかについてのメタデータが記憶されている。
また,複数のクライアント端末のそれぞれは,さらに,メタデータ取得部と,P2P通信部,再構築部と,データ記憶部を有する。
メタデータ取得部は,コンテンツデータのダウンロード要求をサーバ手段に送信した際,メタデータデータベースを参照し,分割データに関するメタデータに基づいて,当該コンテンツデータの分割データを記憶している他のクライアント端末に関する情報を取得する機能を有する。
P2P通信部は,メタデータ取得部によって取得した他のクライアント端末に関する情報に基づいて,当該他のクライアント端末のキャッシュ領域から,コンテンツデータの分割データをダウンロードするための機能を有する。
再構築部は,受信部によってダウンロードした分割データ及びP2P通信部によってダウンロードした分割データの両方又はいずれか一方を統合して,コンテンツデータを再構築するための機能を有する。
データ記憶部は,再構築部により再構築したコンテンツデータを記憶する。
【0014】
上記のように,本発明のデータ送受信システムでは,あるクライアント端末によるコンテンツデータのダウンロード要求に応じて,コンテンツデータを保有するサーバ手段からだけでなく,当該コンテンツデータがキャッシュ領域に記憶されている他のクライアント端末からも,ダウンロード要求を行ったクライアント端末に対して,コンテンデータの一部又は全部を転送することができる。このため,複数のクライアント端末に対するデータ転送が,特定のサーバ装置に一局集中する事態を回避することができ,データ転送に際して生じるボトルネックの問題を解消することができる。また,あるクライアント端末が,サーバ手段に格納されているデータを要求するとき,そのクライアント端末の近傍の他のクライアント端末に要求データの分割データがある場合には,これを活用することでデータの全量をサーバ手段から取得せずに済むため,サーバ手段の負荷の低減と,サーバ手段との通信経路上のボトルネックの軽減が達成される。さらに,本発明のデータ送受信システムでは,あるクライアント端末に対し,コンテンツデータを,サーバ手段及び他のクライアント端末から分割データとして転送することが可能である。このように,本発明は,コンテンツデータの要求を行ったクライアント端末に対して,マルチパスで,コンテンツデータをダウンロードさせることができ,データ転送速度の高速化を実現できる。
【0015】
本発明において,サーバ手段は,複数のサーバ装置により構成されるものとし,複数のサーバ装置のそれぞれは,コンテンツ記憶部を冗長化したストレージを有することとしてもよい。この場合,サーバ手段のデータ分割部は,ストレージに記憶されているコンテンツデータを分割して分割データを生成し,サーバ手段の送信部は,クライアント端末からのダウンロード要求に応じて,データ分割部により生成された分割データをクライアント端末に対して送信する。
【0016】
このように,コンテンツデータを記憶しているコンテンツ記憶部を冗長化し,各サーバ装置のストレージに記憶させることにより,複数のサーバ装置から,コンテンツデータを要求するクライアント端末に対して,コンテンツデータの分割データを転送することができる。このように,複数のサーバ装置のストレージに冗長化され保存されているデータが,マルチパスで,クライアント端末に送信されるため,1コネクションあたりの通信速度が原因で通信完了までの速度が遅くなる問題を解決することができる。さらに,複数のストレージに冗長化され保存されている分割データ(たとえば同一ファイルの異なるブロック)が並列処理,かつ,マルチパスでクライアント端末に送信されるため,データ転送の更なる高速化を実現できる。
【0017】
本発明において,サーバ手段は,複数のサーバ装置により構成されるものとし,複数のサーバ装置のそれぞれは,データ分割部により生成された分割データを記憶するストレージを有するものであることが好ましい。この場合,サーバ手段の送信部は,クライアント端末からのダウンロード要求に応じて,分割データを記憶するストレージにより記憶されている当該分割データを,前記クライアント端末に対して送信する。
【0018】
このように,複数のサーバ装置のそれぞれが,コンテンデータの分割データを記憶するストレージを有することによっても,クライアント端末に対して,コンテンツデータをマルチパスで送信することができる。このため,サーバ手段とクライアント端末の間において通信速度が低下することを防止することができ,データ転送の更なる高速化を実現できる。また,各サーバ装置のストレージには,コンテンツデータの全てではなく,その一部(分割データ)を記憶させればよいため,ストレージの記憶容量を節約することもできる。
【0019】
本発明においては,コンテンツデータの配信処理を自動化することとしてもよい。
すなわち,まず,クライアント端末のそれぞれは,当該クライアント端末によって編集した編集後のコンテンツデータをサーバ手段のコンテンツ記憶部にアップロードするアップロード部をさらに備える。
また,サーバ手段は,各クライアント端末からアップロードされた編集後のコンテンツデータに関する情報を記憶するリポジトリストレージと,リポジトリストレージに記憶された編集後のコンテンツデータに関する情報を基に,コンテンツ記憶部に記憶されているコンテンツデータのビルド処理を行うビルド処理部をさらに備える。ビルド処理は,ソースコードファイルを独立したソフトウェア生成物に変換する処理である。
そして,クライアント端末のそれぞれは,サーバ手段のビルド処理部によってビルド処理が施されたビルド後のコンテンツデータと,編集後のコンテンツデータを比較し,ビルド後のコンテンツデータのバージョンが,編集後のコンテンツデータのバーションよりも新しい場合には,サーバ通信部を介して,サーバ手段に対し,編集後のコンテンツデータのダウンロード要求を送信する。
【0020】
上記構成を有することにより,クライアント端末においてデータの編集作業が完了し,サーバ手段においてビルド処理が行われた後,クライアント端末は,最新のバージョンのデータをサーバ手段からダウンロードすることができる。例えば,コンテンツデータの編集作業(レンダリング等)を行うクリエイタの退社後や休日においては,サーバ手段へのアクセスが緩和される。このため,退社後の時間帯や休日のうちに,サーバ手段から,各クライアント端末に対して最新バージョンのコンテンツデータを配信しておけば,クリエイタの出社時間帯にサーバ手段へアクセスが集中する問題を解消できる。また,例えば,サーバ手段において,クリエイタの退社後の時間帯にビルド処理を行い,その生成物と各クライアント端末内のコンテンツデータを比較し,クライアント端末において,コンテンツデータが最新でないと判断した場合に,最新のコンテンツデータのダウンロード要求を送信させる。このため,例えばサーバ手段のCPU使用量が低下する時間帯に,サーバ手段から,各クライアント端末に対して最新バージョンのコンテンツデータを配信しておくことが可能になる。
【0021】
また,サーバ手段は,リポジトリストレージに記憶された編集後のコンテンツデータに関する情報を基に,各コンテンツデータのバージョン管理を行う構成管理システムを,さらに備えるものであってもよい。構成管理システムは,サーバ手段が,クライアント端末から,コンテンツデータのダウンロード要求を受信した際,サーバ手段の前記コンテンツ記憶部に記憶されている当該コンテンツデータのバージョンと,当該クライアント端末のデータ記憶部に記憶されている当該コンテンツデータのバージョンを比較し,その差分データを抽出する差分抽出部を有する。そして,構成管理システムは,送信部を介して,差分抽出部において抽出した差分データを,クライアント端末に対して送信する。この場合,クライアント端末の再構築部は,サーバ手段の送信部から送信された差分データを,データ記憶部に記憶されているコンテンツデータに適用し(パッチ当てを行い),コンテンツデータを再構築する。
【0022】
このように,サーバ手段の構成管理システムにおいて,サーバ手段に格納されている最新のバージョンのデータと,各クライアント端末に記憶されているコンテンツデータを比較し,バイナリ単位での変更箇所を差分データとして抽出することにより,サーバ手段と各クライアント端末間の通信が差分データ分のみで完了するため,データの転送量を減らし,転送の際に生じるボトルネックを解消することができる。
【発明の効果】
【0023】
以上の通り,本発明のデータ転送システムによれば,各クライアント端末にコンテンツデータを配信する際に,サーバにトラフィックが集中し,ボトルネックが発生する不具合を解消しつつ,コンテンツデータを要求しているクライアント端末に対し,マルチパスでデータを配信することにより,データ伝送の高速化を実現することができる。
【発明を実施するための形態】
【0025】
以下,図面を用いて本発明を実施するための形態について説明する。本発明は,以下に説明する形態に限定されるものではなく,以下の形態から当業者が自明な範囲で適宜修正したものを含む。
【0026】
(1.データ送受信システム)
図1は,本発明に係るデータ送受信システムのシステム構成を示す概略図である。
図1に示されるように,データ送受信システム1は,複数のサーバ装置11によって構成されたサーバ手段10,及び複数のクライアント端末20が,通信ネットワークを介して相互に接続されている。すなわち,各サーバ装置11同士,サーバ装置11とクライアント端末20,及び各クライアント端末20同士は,通信ネットワークを利用して,互いにデータの送受信を行うことができる。本発明のデータ送受信システムは,インターネットを介したネットワーク網で構築されるものであってもよいし,例えば会社内のような限定された範囲に構築されたイントラネットワーク網で構築されるものであってもよい。データ送受信システム1において,サーバ手段10及び複数のクライアント端末20間における通信は,有線によるものだけでなく,公知の無線通信手段によるものであってもよい。
【0027】
図2は,サーバ手段10と各クライアント端末20を構成する要素を概念的に示したものである。
図2に示された各要素は,サーバ手段10及びクライアント端末20が保有する機能に従って分類したものである。基本的に,サーバ手段10を構成するサーバ装置11や,各クライアント端末20は,入出力装置,制御装置,演算装置,及び記憶装置等のハードウェアを有し,これらのハードウェアがバスなどによって接続されている。すなわち,入力装置から所定の情報が入力されると,制御装置は,記憶装置のメインメモリに格納されている制御プログラムを読み出す。また,制御装置は,制御プログラムの指令に従って,適宜記憶部に記憶されたデータを読み出し,演算装置にて所定の演算を行う。そして,演算結果を記憶装置に一時的に記憶して,出力部から情報を出力することができるようになっている。以下に説明するサーバ手段10と各クライアント端末20に含まれる要素は,これらの入出力装置,制御装置,演算装置,及び記憶装置等を利用して,コンピュータに所定の機能を実行させるための要素である。
【0028】
以下では,
図2を参照しながら,データ送受信システム1に含まれるサーバ手段10,及びクライント端末20の各部構成について説明する。
【0029】
(1−1.サーバ手段)
サーバ手段10は,コンテンツデータを各クライアント端末20に対して配信するための機能と,データ送受信システムの構成やコンテンツデータを管理する機能を有する。
図2に示された実施形態において,サーバ手段10は,複数のサーバ装置11により構成されている。サーバ手段10は,コンテンツ記憶部110,データ分割部120,送信部130,メタデータデータベース140,リポジトリストレージ150,ビルド処理部160,構成管理システム170,及びクライアント通信部180を含むものであることが好ましく,その他にも適宜有用な機能を付加することも可能である。サーバ手段10を構成するこれらの要素は,単一のサーバ装置11に集約されたものであってもよいし,複数のサーバ装置11に分散して機能するものであってもよい。
【0030】
サーバ手段10を構成するサーバ装置11としては,クライアント端末20からの要求に応じて,所定の処理や情報を提供することができる公知のものを採用することが可能である。例えばサーバ装置11としては,例えば,UNIXサーバ(登録商標),ミッドレンジサーバ,又はメインフレームサーバ等を必要に応じて利用することができる。
【0031】
コンテンツ記憶部110は,任意のコンテンツデータを記憶している。サーバ手段10が複数のサーバ装置11により構成される場合,コンテンツ記憶部110の実体は,ネットワーク上の複数ノードにわたって配備される複数のサーバ装置11のストレージ111により構成される。コンテンツ記憶部110に記憶されるコンテンツデータの例は,画像データ,動画データ,音声データ,及び文字データであるが,これらのものに限定されず,クライアント端末に入力,記憶,演算,又は出力される種々のデータを含む。コンテンツデータとしては,例えば,MPEG(moving pictureexperts group)方式で圧縮されたカラー動画映像ファイル,MP3(MPEG audio layer3)方式で圧縮された音声ファイル,又はJPEG(joint photographic experts group)方式で圧縮されたカラー静止画像ファイルが挙げられる。また,例えば,ゲームソフト開発現場においては,開発を行う際に用いるソースコードやその他のデジタルコンテンツが,コンテンツ記憶部110に記憶される。コンテンツ記憶部110に格納されているデータは,クライアント端末20からのダウンロード要求に応じて適宜配信される。コンテンツ記憶部110は,例えば複数のストレージノードに接続された複数の磁気記憶装置の集合により構成されているものであってもよいし,単一の磁気記憶装置により構成されているものであってもよい。
【0032】
データ分割部120は,コンテンツ記憶部110に記憶されているコンテンツデータを,データの種類やデータの容量に応じて,複数の分割データに分割する。データ分割部120は,例えば,コンテンツデータを予め定めるデータ量の分割データ(データブロック)に分割する。また,例えば,コンテンツデータをシリアル送信する順番に,予め定めるデータ量となるように分割して,分割データを生成することとしてもよい。データ分割部11には,例えばCPU内部のデータバスが接続され,このデータバスを介してコンテンツ記憶部110から所定のデータが与えられる。そして,データ分割部120は,データバス幅をデータブロックとして区切る。具体的には,CPU内部のデータバスを介してパラレルデータが伝送されると,データ分割部120は,データバス幅分のデータ量のパラレルデータを1つの分割データとして,データバッファに記憶する。また,データ120部により分割された分割データは,サーバ手段10を構成する複数のサーバ装置11のそれぞれに備えられたストレージ111に分散して格納されることとしてもよい。
【0033】
送信部130は,データ分割部120により生成された分割データを,クライアント端末20に対して送信するための出力部である。送信部130には,公知のインターフェイスを採用することができる。
【0034】
メタデータデータベース140は,各クライアント端末20のキャッシュ領域230に記憶されている分割データに関するメタデータ(以下,分割キャッシュ情報ともいう)を記憶している。メタデータは,情報を整理するために用いられる情報に関する情報であり,例えば,分割データが記憶されているキャッシュ領域230を有するクライアント端末20の所在を示す情報(IPアドレス)や,分割データの種類に関する情報等である。サーバ20の構成管理システム170は,クライアント通信部180を介して,定期的に各クライアント端末20にアクセスし,各クライアント端末20のキャッシュ領域230に記憶されている分割データから,そのメタデータを取得して,メタデータデータベース140を更新する。このため,サーバ手段10やクライアント端末20は,メタデータデータベース140に記憶されているメタデータを参酌することにより,分割データの所在を把握することができる。
【0035】
リポジトリストレージ150は,各クライアント端末からアップロードされた編集後のコンテンツデータに関する情報を記憶する。リポジトリストレージ150は,ソフトウェア開発および保守における各工程の様々な情報を一元管理する機能を有しており,ソフトウェア開発の各工程での成果物をメタ情報として記憶することができるようになっている。
このため,リポジトリストレージ150は,後述するビルド処理に際して参酌される。また,リポジトリストレージ150は,バージョン管理システムによってサーバにプログラムを溜めておくことができる。クライアント端末20は,コンテンツデータをコピーして編集作業が終わったら,コンテンツ記憶部110に編集後のコンテンツデータをアップロードすると共に,リポジトリストレージ150にコミットし,リポジトリストレージに編集後の差分情報を記憶させることができる。このため,リポジトリストレージ150を参酌することにより,各コンテンツデータのバージョン管理を行うことが可能になる。本実施の形態において,各コンテンツデータのバージョン管理は,構成管理システム170により行われる。
【0036】
ビルド処理部160は,リポジトリストレージ150を参酌して,コンテンツ記憶部110に記憶されているコンテンツデータのビルド処理を行う。ビルド処理部160は,リポジトリストレージ150で管理されているソースコードを読み出し,バイナリコードにコンパイルすることによって,独立したソフトウェア生成物に変換する。例えば,ビルド処理160には,ソースコードをバイナリコードにコンパイルした後,バイナリコードのパッケージ化や,テストの実行,生産システムの配備,文書やリリースノートの作成等の工程が含まれる。ビルド処理は,システム管理者が任意の時間帯に実行することとしてもよいし,リポジトリストレージ150にソースファイルの変更がコミットされるたびに自動的に実行することとしてもよい。特に,ビルド処理は,夜間などのCPU使用率が低下した時間帯に実行する(ナイトリービルドを行う)ことが好ましい。
【0037】
構成管理システム170は,コンテンツ記憶部110に記憶されているコンテンツデータの最新版や変更履歴といったバージョンの管理や,各クライアント端末20に記憶されている分割データのメタデータを取得しメタデータデータベース140の更新を行う等,システム全体の構成管理を行う機能を担う。構成管理システム170は,例えば,差分抽出部171を備える。差分抽出部171は,サーバ手段10がクライアント端末20から,コンテンツデータのダウンロード要求を受信した際,リポジトリストレージ150を参酌して,サーバ手段10のコンテンツ記憶部110に記憶されているコンテンツデータのバージョンと,当該クライアント端末20に記憶されている当該コンテンツデータのバージョンを比較し,その差分データを抽出することができる。差分データは,例えばバイナリ単位で取得することが好ましい。このように,構成管理システム170は,差分抽出部171によって差分データを抽出することにより,差分データによってコンテンツデータのバージョン管理を行うことができる。ただし,構成管理システム170は,各バージョンごとに,コンテンツデータの実データを生成して,この実データを記憶しておくことにより,コンテンツデータのバージョン管理を行うものであってもよい。
【0038】
クライアント通信部180は,各クライアント端末20との情報の授受に使用される。例えば,クライアント通信部180は,各クライアント端末20からのコンテンツデータのダウンロード要求を受信する等,サーバ手段10と各クライアント端末20との情報のやり取りに際して利用される。また,例えば,クライアント通信部180によって受信した各クライアント端末20からの要求は,構成管理システム170に伝えられ,構成管理システム170は,サーバ手段10の各要素に対して処理命令を伝達する。
【0039】
サーバ手段10は,トラッカーサーバ190を含むものであってもよい。トラッカーサーバ190は,クライアント端末20のP2P通信部250との間で情報の授受が可能なように接続されており,P2P通信網の新規接続者にP2P通信において使用するIPアドレスを割り振る。すなわち,クライアント端末20は,P2P通信を開始する際,トラッカーサーバ190にアクセスし,IPアドレスを受取り,他のクライアント端末との間でデータの送受信を開始する。
【0040】
また,サーバ手段10を構成する複数のサーバ装置11のそれぞれは,コンテンツデータを記憶するためのストレージ111を有することが好ましい。各ストレージ111には,コンテンツ記憶部110と同一のコンテンツデータが格納され,冗長化したものであることが好ましい。また,各ストレージ111は,コンテンツデータの分割データが分散して格納されたものであってもよい。複数のサーバ装置11のそれぞれは,各クライアント端末20と通信ネットワークを介して接続されているため,各ストレージ111に,コンテンツデータを冗長化又は分散して格納することにより,クライアント端末20からのダウンロード要求に応じて,マルチパスで,コンテンツデータを送信することができるようなる。
【0041】
(1−2.クライアント端末)
クライアント端末20は,サーバ手段10に接続され,サーバ手段10からダウンロードしたコンテンツデータの編集作業を行う機能を有する。コンテンツデータの編集作業は,クライアント端末20が有する種々のアプリケーションによって実行される。また,本発明において,複数のクライアント端末20は,P2P型の通信によってそれぞれ接続されており,データの授受が可能になっている。
図2に示された実施形態において,各クライアント端末20は,サーバ通信部210,クライアント端末20の受信部220,キャッシュ領域230,メタデータ取得部240,P2P通信部250,再構築部260,データ記憶部270,及びアップロード部280を含むことが好ましく,その他にも適宜有用な機能を付加することも可能である。
【0042】
サーバ通信部210は,サーバ手段10に対して,所望のコンテンツデータのダウンロード要求を送信する。つまり,クライアント端末20は,入力装置,制御装置,演算装置,記憶装置,及び出力装置を備え,端末のユーザが入力装置を介してコンテンツデータのダウンロード要求を入力すると,制御装置は,記憶装置のメインメモリに格納されている制御プログラムの指令に従って,演算装置にて所定の演算を行い,出力部であるサーバ通信部210を介して,ダウンロード要求をサーバ手段10に送信する。また,サーバ通信部210は,その他種々の情報をサーバ手段10に送信することが可能であり,例えば,サーバ手段10のメタデータデータベースに記憶されているメタデータのダウンロード要求を,サーバ手段10に送信することも可能である。
【0043】
クライアント端末20の受信部220は,サーバ手段10から送信されたコンテンツデータの分割データを受信することができる。なお,クライアント端末20の受信部220は,例えば,サーバ手段10から,あるコンテンツデータを構成する全ての分割データを受信するものであってもよいし,また,分割されていない状態のコンテンツデータを受信するものであってもよい。クライアント端末20の受信部220により受信されたコンテンツデータの分割データは,例えば一時的にキャッシュメモリ(図示しない)に記憶される。
【0044】
キャッシュ領域230は,サーバ手段10や他のクライアント端末20からダウンロードした,コンテンツデータの分割データを一時的に記憶する記憶装置の領域である。キャッシュ領域230は,例えば,クライアント端末20の主記憶装置とCPUなどの演算装置との間に構成され,演算装置の演算処理に必要なデータや状態,設定などの属性情報をコピーし保持することで,本来アクセスすべき主記憶装置に代わってデータが入出力される。例えば,CPUからの転送要求があり,そのデータが既にキャッシュ230に格納されている場合は,主記憶装置からの転送は行わずキャッシュが転送を代行する。このため,コンテンツデータの分割データをキャッシュ領域230に一時保存することで,他の装置から当該分割データの要求が合った際,要求された分割データをキャッシュ領域230から読み出し,迅速にデータ転送を行うことができる。
【0045】
メタデータ取得部240は,コンテンツデータのダウンロード要求をサーバ手段10に送信した際,メタデータデータベース140に記憶されているメタデータに基づいて,コンテンツデータの分割データを記憶している他のクライアント端末に関する情報(分割キャッシュ情報)を取得する。ここにいう分割キャッシュ情報には,他のクライアント端末の所在を把握するための情報が含まれ,具体的には,他のクライアント端末のP2P通信におけるIPアドレス等の情報が含まれる。メタデータ取得部20は,サーバ手段10のメタデータデータベース140に記憶されているメタデータの一部を取得して,コンテンツデータの分割データを記憶している他のクライアント端末の所在を把握するものであってもよいし,サーバ手段10のメタデータデータベース140に記憶されているメタデータの全部を取得するものであってもよい。メタデータ取得部240が,サーバ手段10のメタデータデータベース140に記憶されているメタデータの全部を取得した場合,クライアント端末20にも,メタデータデータベースを構築することとしてもよい。クライアント端末20にメタデータデータベースを構築することにより,他のクライアント端末20は,サーバ手段10にアクセスしなくても,分割キャッシュ情報を取得することができる。
【0046】
P2P通信部250は,あるクライアント端末20と,他のクライアント端末20の間において,P2P通信を可能にするための機能を有する。P2P通信は,ネットワークに接続されたクライアント端末(ピア)の各々が,あるときは他のピアに対して所定のサービスを提供してサーバのように動作し,あるときは他のピアが提供するサービスを利用してクライアントのように動作し,各ピアが対等な関係となる。P2P通信部250は,各クライアント端末20において通信を行う際,各クライアント端末20が有する共通のコミュニケーションアプリケーションを起動させ,各クライアント端末20の間に設けられた通信路を用いて,各クライアント端末20を接続する。あるクライアント端末20から,分割データのダウンロード要求を受けた他のクライアント端末20は,キャッシュ領域230から分割データを読み出し,P2P通信部250を介して,あるクライアント端末20に送信する。P2P通信の接続形態としては,クライアント端末間で一対一のコミュニケーションを行う一対一型通信であってもよいし,クライアント端末間のノード接続をカスケード状に多段階層化して,ツリー構造を形成した放送型通信であってもよい。
【0047】
このようなP2P通信網は,インターネットやイントラネットに構築することができ,各クライアント端末20に付与されたIPアドレスを用いて,端末の所在を把握する。P2P通信は,複数のクライアント端末を相互に接続することが可能であり,その場合には最短経路である通信路を介してクライアント端末同士を接続すれば良い。P2P通信部235は,メタデータ取得部240によって取得した分割キャッシュ情報に基づいて,一又は複数のクライアント端末20のキャッシュ領域230に記憶されている分割データを,P2P通信によって相互に送受信させる。P2P通信部235によって受信した分割キャッシュデータは,一時的にキャッシュ領域230に記憶される。
【0048】
再構築部260は,クライント端末20の受信部220によってサーバ手段20から受信した分割データ,及び/又は,P2P通信部250によって他のクライアント端末から受信した分割データを,キャッシュ領域230から読み出し,読み出した分割データを統合してコンテンツデータを再構築する。そして,再構築部260により再構築されたコンテンツデータは,データ記憶部270に記憶される。
【0049】
また,クライント端末20は,所定の編集作業を行った編集後のコンテンツデータを,サーバ手段10のコンテンツ記憶部110にアップロードするアップロード部280を備えている。すなわち,クライント端末20は,制御プログラムの指令に従って,適宜記憶部にデータ記憶部270に記憶されたコンテンツデータを読み出し,レンダリングアプリケーション等を起動して,コンテンツデータの編集処理を行うことができる。アップロード部280は,この編集後のコンテンツデータを,サーバ手段10のコンテンツ記憶部110にアップロードすることができるようになっている。コンテンツ記憶部110にアップロードされた編集後のコンテンツデータは,ソフトウェア開発の各工程でのメタ情報がリポジトリストレージ150に記憶され,サーバ手段10の構成管理システム170によって,コンテンツデータの最新版や変更履歴といったバージョンの管理が行われる。
【0050】
(2.データ送受信システムの処理フロー)
次に,
図3及び
図4を参照して,本発明の実施形態に係るデータ送受信システムの処理フローについて説明する。まず,
図3及び
図4は,送受信システムのある実施形態に処理フローを示したものである。
図3はデータの送受信の流れを概念的に示したものであり,
図4はシステムのフローチャートの例を示している。
【0051】
図4に示されるように,サーバ手段10は,データ分割部120によって,予めコンテンツデータを分割する(ステップS1)。分割部120によって分割された分割データは,コンテンツ記憶部110に記憶される(ステップS2)。例えば,
図3に示されるように,あるコンテンツデータは,データA,データB,及びデータCの分割データに分割されコンテンツ記憶部110に記憶されている。
【0052】
図4に示されるように,あるクライアント端末20は,サーバ通信部210を通じて,サーバ手段10に対し,コンテンツデータのダウンロード要求を送信する(ステップS3)。例えば,
図3に示された例では,複数のクライアント端末のうち,あるクライアント端末20aが,データA,データB,及びデータCから構成されるコンテンツデータのダウンロード要求を,サーバ手段10に送信している。
【0053】
図4に示されるように,あるクライアント端末20aは,コンテンツデータのダウンロード要求をサーバ手段10に送信した際,サーバ手段10のメタデータデータベース140を参照し,メタデータ取得部240によって,メタデータデータベース140に記憶されているメタデータに基づいて,分割キャッシュ情報を取得する(ステップS4)。分割キャッシュ情報は,所望のコンテンツデータの分割データを記憶している他のクライアント端末に関する情報であり,例えば,他のクライアント端末のP2P通信におけるIPアドレス等の情報が含まれる。
【0054】
図3に示された例においては,あるクライアント端末20aがダウンロード要求を行ったコンテンツデータの分割データを,サーバ手段10の他に,他のクライアント端末20b及び2cが保有している。すなわち,
図3に示された例では,他のクライアント端末20bのキャッシュ領域230にはデータBが記憶され,他のクライアント端末20cのキャッシュ領域230にはデータCが記憶されている。これらの情報は,分割キャッシュ情報として,メタデータデータベース140に記憶されている。このため,あるクライアント端末20aは,メタデータデータベース140から分割キャッシュ情報を取得することにより,データBを保有する他のクライアント端末20bの所在と,データCを保有する他のクライアント端末20cの所在とを把握することができる。
【0055】
次に,
図4に示されるように,あるクライアント端末20は,分割キャッシュ情報に基づいて,分割データの要求先を特定する(ステップS5)。そして,クライアント端末20は,特定した要求先に対して,分割データのダウンロード要求を送信する(ステップS6)。基本的に,サーバ手段10へのトラフィックが増大化することを防止するために,クライアント端末20が保有する分割データについては,当該クライアント端末に対してダウンロード要求を送信することを優先することが好ましい。このため,あるクライアント端末20は,基本的に,他のクライアント端末が分割データを保有する場合には,当該分割データについては当該他のクライアント端末に対してダウンロード要求を送信することを優先し,他のクライアント端末が保有していない分割データのみについて,サーバ手段10に対してダウンロード要求を行うことが好ましい。
【0056】
ただし,クライアント端末20は,分割キャッシュ情報に基づいて,例えば,分割データを保有する他のクライアント端末がP2P通信可能な状態にあるかどうかや,自己と他のクライアント端末の接続距離が近いかどうかを判断することができる。
図3の例を参照して説明すると,あるクライアント端末20aは,他のクライアント端末20cの電源が切れている場合等,他のクライアント端末20cとの間でP2P通信が不可能な状態にあると判断した場合には,他のクライアント端末20cが保有している分割データ(データC)については,サーバ手段10に対してダウンロード要求を送信すれば良い。また,例えば,あるクライアント端末20aは,自己と他のクライアント端末20cを接続する際に通過するノードの数などによって,自己と他のクライアント端末20c接続距離を把握し,自己と他のクライアント端末20c接続距離が所定距離以上離れていると判断した場合には,他のクライアント端末20cが保有している分割データ(データC)については,サーバ手段10に対してダウンロード要求を送信することもできる。この際,あるクライアント端末20aは,分割データ(データC)を,他のクライアント端末20cから受信するのに必要な時間と,サーバ手段10から受信するのに必要な時間を比較し,受信するための時間が短い方に対し,分割データ(データC)のダウンロード要求を送信することとしてもよい。
【0057】
図4に示されるように,あるクライアント端末20から分割データのダウンロード要求を受信したサーバ手段10及び/又は他のクライアント端末20は,ダウンロード要求された分割データを,当該クライアント端末20に対して送信する(ステップS7)。例えば,
図3の例を参照して説明すると,あるクライアント端末20aから,分割データ(データA)のダウンロードを要求されたサーバ手段10は,コンテンツ記憶部110から分割データ(データA)を読み出して,送信部130を介して,あるクライアント端末20aに送信する。また,あるクライアント端末20aから,分割データ(データB)のダウンロードを要求された他のクライアント端末20bは,キャッシュ領域230からデータBを読み出して,P2P通信部250を介して,あるクライアント端末20aに送信する。同様に,あるクライアント端末20aから,分割データ(データC)のダウンロードを要求された他のクライアント端末20cは,キャッシュ領域230からデータCを読み出して,P2P通信部250を介して,あるクライアント端末20aに送信する。なお,
図3に示された例において,あるクライアント端末20aは,サーバ手段10と他のクライアント端末20b,20cのそれぞれから,分割データ(データA,B,C)をダウンロードすることとしているが,あるクライアント端末20aは,分割データ(データA,B,C)を一括して,サーバ手段10からダウンロードすることや,他の一のクライアント端末からダウンロードすることもできる。あるクライアント端末20aは,サーバ手段10及び/又は他のクライアント端末20からダウンロードした分割データを,一時的にキャッシュ領域230に記憶する。
【0058】
次に,クライアント端末20は,再構築部260によって,サーバ手段10及び/又は他のクライアント端末20からダウンロードした分割データを統合し,コンテンツデータを再構築する(ステップS8)。そして,クライアント端末20は,再構築したコンテンツデータをデータ記憶部270記憶する(ステップS9)。このようにして,クライアント端末20は,所望のコンテンツデータを取得することが可能になる。
【0059】
以上のように,本発明のデータ送受信システムでは,あるクライアント端末によるコンテンツデータのダウンロード要求に応じて,コンテンツデータを保有するサーバ手段からだけでなく,当該コンテンツデータがキャッシュ領域に記憶されている他のクライアント端末からも,ダウンロード要求を行ったクライアント端末に対して,コンテンデータの一部又は全部を転送される。このため,複数のクライアント端末に対するデータ転送が,特定のサーバ装置に一局集中する事態を回避することができ,データ転送に際して生じるボトルネックの問題を解消することができる。また,あるクライアント端末が,サーバ手段に格納されているデータを要求するとき,そのクライアント端末の近傍の他のクライアント端末に要求データの分割データがある場合には,これを活用することでデータの全量をサーバ手段から取得せずに済むため,サーバ手段の負荷の低減と,サーバ手段との通信経路上のボトルネックの軽減が達成される。さらに,あるクライアント端末に対し,コンテンツデータを,サーバ手段及び他のクライアント端末から分割データとして転送することが可能であるため,コンテンツデータの要求を行ったクライアント端末に対して,マルチパスで,コンテンツデータをダウンロードさせることができ,データ転送速度の高速化を実現できる。
【0060】
(2−1.冗長化/分散化)
次に,データ送受信システムの好ましい形態について説明する。
図5には,サーバ手段10を構成する複数のサーバ装置11が,コンテンツ記憶部110を冗長化したストレージ111を有している形態の例を示している。
図5に示された例では,コンテンツ記憶部110にデータA,データB,及びデータCからなるコンテンツデータが含まれている。そして,コンテンツ記憶部110が冗長化され,各サーバ装置11のストレージ111にも,データA,データB,及びデータCからなるコンテンツデータが記憶されている。
【0061】
図5に示されるように,各サーバ装置11のストレージ111に記憶されているコンテンツデータは,データ分割部130によって,データA,データB,及びデータCの分割データに分割される。複数のサーバ装置11とクライアント端末20はそれぞれ通信ネットワークによって接続されている。このため,あるクライアント端末20aが,データA,データB,及びデータCからなるコンテンツデータのダウンロードを要求すると,サーバ手段10は,ダウンロード要求に従い,クライアント端末20aに対して,コンテンツデータの分割データを送信する。このとき,サーバ手段10は,複数のサーバ装置11を介して,クライアント端末20aに対し,コンテンツデータの分割データを送信することができる。例えば,
図5に示されるように,サーバ装置11aからは,クライアント端末20aに対し,データAが送信される。また,サーバ装置11bからは,クライアント端末20aに対し,データBが送信される。同様に,サーバ装置11cからはクライアント端末20aに対し,データCが送信される。このように,複数のサーバ装置11に,コンテンツ記憶部110を冗長化したストレージ111を備えることにより,ストレージ111に冗長化され保存されているコンテンツデータを,マルチパスで,クライアント端末20に送信することができるため,1コネクションあたりの通信速度が原因で通信完了までの速度が遅くなる問題を解消できる。また,並列処理かつマルチパスで,クライアント端末20にコンテンツデータの分割データを送信できるため,通信処理の更なる高速化を実現できる。
【0062】
図6は,サーバ手段10を構成する複数のサーバ装置11のストレージ111に,コンテンツ記憶部110の記憶されているコンテンツデータが,分散して格納されている例を示している。
図5に示された例では,コンテンツ記憶部110にデータA,データB,及びデータCからなるコンテンツデータが含まれている。そして,コンテンツ記憶部110のコンテンツデータが,データ分割部120により分割されて,各サーバ装置11のストレージ111に分散して記憶されている。すなわち,
図5に示された例では,データAがサーバ装置11aのストレージ111に,データBがサーバ装置11bのストレージ111に,データCがサーバ装置11cのストレージ111に,それぞれ格納されている。
【0063】
この場合において,あるクライアント端末20aが,データA,データB,及びデータCからなるコンテンツデータのダウンロードを要求すると,サーバ手段10は,ダウンロード要求に従い,クライアント端末20aに対して,コンテンツデータの分割データを送信する。このとき,サーバ手段10は,複数のサーバ装置11を介して,クライアント端末20aに対し,コンテンツデータの分割データを送信する。例えば,
図5に示されるように,サーバ装置11aからは,クライアント端末20aに対し,データAが送信される。また,サーバ装置11bからは,クライアント端末20aに対し,データBが送信される。同様に,サーバ装置11cからはクライアント端末20aに対し,データCが送信される。このように,複数のサーバ装置11のストレージ111に,コンテンツデータの分割データを分散して記憶させておくことにより,複数のサーバ装置11のストレージ111に保存されているコンテンツデータを,マルチパスで,クライアント端末20に送信することができるため,1コネクションあたりの通信速度が原因で通信完了までの速度が遅くなる問題を解消できる。また,並列処理かつマルチパスで,クライアント端末20にコンテンツデータの分割データを送信できるため,通信処理の更なる高速化を実現できる。
【0064】
上記のように,コンテンツ記憶部110におけるコンテンツデータの格納を,複数台のサーバ装置11にわたっては冗長化,及び/又は分散化させることが好ましい。コンテンツデータの格納の冗長化と分散化は互いに排他的なものではなく,コンテンツデータの格納を冗長化させたサーバ装置11と,分散化させたサーバ装置11を併存させることとしてもよい。また,コンテンツデータの格納を冗長化及び/又は分散化させた場合であっても,コンテンツデータのダウンロード要求を行ったあるクライアント端末20は,他のクライアント端末20からP2P通信網を介して,分割データを取得することができる。
【0065】
(2−2.コンテンツデータの自動配信)
次に,
図7を参照して,クライアント端末に対して,最新のコンテンツデータを自動で配信するための処理フローについて説明する。
【0066】
図7に示されるように,本システムに含まれる複数のクライアント端末は,それぞれ,データ記憶部270に記憶されているコンテンツデータ読み出した,読み出したコンテンツデータを編集する(ステップS10)。編集後のコンテンツデータは,サーバ手段10に集積され,構成管理システム170によって最新版や変更履歴といったバージョンの管理が行われる。このため,本システムに含まれる各クライアント端末は,編集後のコンテンツデータを,アップロード部280を介して,サーバ手段10にアップロードする(ステップS11)。
【0067】
各クライント端末20によってアップロードされた編集後のコンテンツデータは,サーバ手段10のコンテンツ記憶部110に記憶される(ステップS12)。また,このとき,サーバ手段10にアップロードされた編集後のコンテンツデータに関し,ソフトウェア開発の各工程で生成されたソースコード等の成果物が,リポジトリストレージ150に記憶される。また,リポジトリストレージ150にコミットされた際,リポジトリストレージに編集後のコンテンツデータの差分情報がアップデートされるため,構成管理システム170は,リポジトリストレージ150を参酌することにより,各コンテンツデータのバージョン管理を行うことが可能になる。
【0068】
次に,ビルド処理部160は,リポジトリストレージ150を参酌して,コンテンツ記憶部110に記憶されているコンテンツデータのビルド処理を行う。ビルド処理部160は,リポジトリストレージ150で管理されているソースコードを読み出し,バイナリコードにコンパイルすることによって,独立したソフトウェア生成物に変換する。例えば,ビルド処理160には,ソースコードをバイナリコードにコンパイルした後,バイナリコードのパッケージ化や,テストの実行,生産システムの配備,文書やリリースノートの作成等の工程が含まれる。ビルド処理は,システム管理者が任意の時間帯に実行することとしてもよいし,リポジトリストレージ150にソースファイルの変更がコミットされるたびに自動的に実行することとしてもよい。特に,ビルド処理は,夜間などのCPU使用率が低下した時間帯に実行する(ナイトリービルドを行う)ことが好ましい。
【0069】
構成管理システム170は,ビルド処理後のコンテンツデータを再びコンテンツ記憶部110に格納するとともに,コンテンツデータのバージョンを最新ものに更新する(ステップS14)。このとき,構成管理システム170は,差分データによってコンテンツデータのバージョン管理を行うこととしてもよいし。各バージョンごとに,コンテンツデータの実データを生成して,この実データを記憶しておくことにより,コンテンツデータのバージョン管理を行うものであってもよい。
【0070】
その後,サーバ手段は,上記ステップS1及びステップS2と同じく,データ分割部120によって,コンテンツ記憶部110に記憶されているコンテンツデータを分割して,分割データを生成し,記憶しておく(ステップS15,ステップS16)。
【0071】
次に,各クライント端末20は,自己のデータ記憶部270に記憶されている編集後のコンテンツデータのバージョンと,サーバ手段10のコンテンツ記憶部110に記憶されているビルド処理後のコンテンツデータのバージョンを比較する(ステップS17)。上述した通り,構成管理システム170によって,各コンテンツデータのバージョン管理が行われているため,各クライント端末20は,構成管理システム170にアクセスすることにより,編集後のコンテンツデータのバージョンとビルド処理後のコンテンツデータのバージョンの差分を把握できる。この比較処理は,サーバ手段10が,ビルド処理が完了したことの情報を各クライアント端末20に伝達し,この完了情報を受けったことを契機として,各クライアント端末20が自動で行うこととしてもよい。また,構成管理システム170によりクライアント端末ごとの比較処理を行う時間を管理しておき,構成管理システム170の指示に従って,クライアント端末ごとに異なる時間帯に比較処理を開始することとしてもよい。
【0072】
各クライント端末20は,上記比較処理の結果,サーバ手段10のコンテンツ記憶部110に記憶されているビルド処理後のコンテンツデータのバージョンが,自己のデータ記憶部270に記憶されている編集後のコンテンツデータのバージョンよりも新しいものであると判断した場合には,サーバ手段10に対し,最新のバージョンのコンテンツデータのダウンロード要求を行う(ステップS18)。その後,
図4に記載されたステップS4〜ステップS9と同様の処理を行う。これにより,各クライアント端末20は,編集後のコンテンツデータをアップロードした後,自動的に最新バージョンのコンテンツデータをダウンロードすることができるようになる。例えば,ビルド処理は,夜間などのCPU使用率が低下した時間帯に実行することにより,夜間のうちに,各クライアント端末20に,最新のコンテンツデータが配信される。このため,例えば,コンテンツデータの編集作業を行うクリエイタが出社したときには,すでに自己のクライアント端末に,必要なコンテンツデータの最新バージョンがダウンロードされているという状況を作ることも可能になる。
【0073】
(2−3.差分データの活用)
次に,
図8を参照して,クライアント端末に対して,コンテンツデータの差分データを配信するための処理フローについて説明する。各クライアント端末20のデータ記憶部270に格納されているコンテンツデータと,サーバ手段10のコンテンツ記憶部110に記憶されているコンテンツデータの差分データの抽出し,この差分データのみをクライアント端末に対して送信することにより,データの転送量を減らし,転送の際に生じるボトルネックを解消することができる。
【0074】
図8に示されるように,クライアント端末20は,サーバ手段10に対し,所望のコンテンツデータのダウンロード要求を行う(ステップS19)。そして,コンテンツデータのダウンロード要求を受信したサーバ手段10は,サーバ手段10のコンテンツ記憶部110に記憶されている当該コンテンツデータのバージョンと,当該クライアント端末のデータ記憶部270に記憶されている当該コンテンツデータのバージョンを比較する(ステップS20)。このとき,クライアント端末20のデータ記憶部270に,ダウンロード要求の対象となっているコンテンツデータが存在していない場合には,
図4に示された処理フローのステップS4〜ステップS9を実行する。
【0075】
一方,クライアント端末20のデータ記憶部270に,ダウンロード要求の対象となっているコンテンツデータが既に存在している場合には,サーバ手段10の構成管理システム170は,差分抽出部171によって,例えばバイナリ単位で,サーバ手段10のコンテンツ記憶部110に記憶されているコンテンツデータと,クライアント端末のデータ記憶部270に記憶されているコンテンツデータの差分データを抽出する(ステップS21)。差分抽出部171によって抽出された差分データは,一時的にキャッシュメモリ(図示しない)に記憶される。
【0076】
その後,サーバ手段10は,差分抽出部171によって抽出した差分データのみを,送信部130を介して,クライアント端末20に対して送信する(ステップS22)。
【0077】
差分データを受信したクライアント端末20は,再構築部260によって,受信した差分データを,前記データ記憶部に記憶されている前記コンテンツデータに適用する(ステップS23)。これにより,受信した差分データに基づいて,クライアント端末20が記憶するコンテンツデータの一部分を更新することができる。パッチが適用されたコンテンツデータは,クライアント端末20のデータ記憶部270に記憶される。
【0078】
このような差分データの活用したコンテンツデータ更新処理を行うことにより,コンテンツデータのダウンロードを行うに際し,CPUでの前処理や後処理にコストを掛ける代わりに,サーバ手段10とクライアント端末20間でのデータ転送量を減らすことができるため,転送のボトルネックを解消することができる。また,例えば,クライアント端末20のデータ記憶部270に,ダウンロード要求の対象となっているコンテンツデータが存在していない場合には,
図4に示された通常のダウンロード処理を実行し,一方で,ダウンロード要求の対象となっているコンテンツデータが既に存在している場合には,
図8に示された差分データのみの転送処理を実行することにより,データ転送が効率化するため,システムのユーザが意識せずともデータの転送を高速化させることができる。
【0079】
本願明細書では,本発明の内容を表現するために,図面を参照しながら発明の実施形態を通して説明を行った。ただし,本願明細書に記載された事項に基づいて当業者が実施する変更形態又は改良形態が,本発明の趣旨を逸脱するものでない限り,本発明の範囲には,当該変更形態又は当該改良形態が包含される。