(57)【特許請求の範囲】
【請求項１】
サーバ装置と、当該サーバ装置と通信可能に接続される複数の端末装置と、を有する配信システムであって、
（ａ）前記サーバ装置は、
端末識別名と、データ識別名と、が指定される接続情報が記憶される記憶部、
前記複数の端末装置のいずれかから、データ識別名を指定する要求メッセージを受信する要求受信部、
前記要求メッセージが受信されると、当該要求メッセージの送信元の端末装置の端末識別名と、当該要求メッセージに指定されたデータ識別名と、を指定する接続情報を、前記記憶部に追加する追加部、
前記記憶部に接続情報が記憶されている間、当該記憶されている接続情報のそれぞれに指定されているデータ識別名を重複なく取得し、当該重複なく取得されたデータ識別名毎に、当該データ識別名に対応付けられるデータを分割することにより得られる断片を、所定の巡回順序で取得する取得部、
前記断片が取得されると、当該断片と、当該断片の分割元のデータ内において、当該断片が配置されていた位置と、を指定する断片メッセージを、当該断片が取得される起因となった接続情報に指定されている端末識別名を有する端末装置のそれぞれへ、送信する断片送信部、
前記複数の端末装置のいずれかから、データ識別名を指定する完了メッセージを受信する完了受信部、
前記完了メッセージが受信されると、当該完了メッセージの送信元の端末装置の端末識別名と、当該要求メッセージに指定されたデータ識別名と、が指定されている接続情報を、前記記憶部から削除する削除部
を備え、
（ｂ）前記複数の端末装置のそれぞれは、
前記サーバ装置へ、所望のデータのデータ識別名を指定する要求メッセージを送信する要求送信部、
前記所望のデータが復元されるまで、前記サーバ装置から、断片メッセージを受信する断片受信部、
前記受信された断片メッセージに指定される断片と、当該断片が当該所望のデータにおいて配置されていた位置と、を、対応付けて蓄積する蓄積部、
前記所望のデータを分割することにより得られるすべての断片が蓄積されると、当該蓄積された断片のそれぞれと、当該蓄積された断片のそれぞれに対応付けて蓄積された位置と、から、当該所望のデータを復元する復元部、
前記所望のデータが復元されると、前記サーバ装置へ、当該所望のデータのデータ識別名を指定する完了メッセージを送信する完了送信部
を備え、
前記複数の端末装置のそれぞれは、所定期間内における前記サーバ装置との通信状況に基づいて、通信の信頼性が高いプロトコルによる未だ受信されていない断片の再送を、前記サーバ装置へ指示し、
前記サーバ装置は、前記複数の端末装置のいずれかから、断片の再送が指示されると、当該指示された断片を指定する再送メッセージを、前記通信の信頼性が高いプロトコルにより、当該指示をした端末装置へ送信し、
前記複数の端末装置のそれぞれは、前記サーバ装置から前記通信の信頼性が高いプロトコルにより送信された再送メッセージを受信すると、前記受信された再送メッセージに指定される断片と、当該断片が当該所望のデータにおいて配置されていた位置と、を、対応付けて蓄積する
ことを特徴とする配信システム。
【請求項２】
請求項１に記載の配信システムであって、
前記複数の端末装置のそれぞれは、前記所定期間内において受信された断片メッセージに係る断片個数と位置情報とから、受信確率を求め、当該求められた受信確率から当該所定期間内における前記サーバ装置との通信状況を求め、前記求められた通信状況が良好であれば、前記再送を前記サーバ装置へ指示する
ことを特徴とする配信システム。
【請求項３】
請求項２に記載の配信システムであって、
前記要求受信部ならびに前記完了受信部は、それぞれ、前記要求メッセージならびに前記完了メッセージを、コネクション型プロトコルにより受信し、
前記断片送信部は、前記断片メッセージを、コネクションレス型プロトコルにより送信し、
前記再送メッセージは、前記コネクション型プロトコルにより送信される
ことを特徴とする配信システム。
【請求項４】
請求項３に記載の配信システムであって、
前記コネクション型プロトコルは、ＴＣＰ（Transmission Control Protocol）であり、
前記コネクションレス型プロトコルは、ＵＤＰ（User Datagram Protocol）である
ことを特徴とする配信システム。
【請求項５】
請求項２から４のいずれか１項に記載の配信システムであって、
前記複数の端末装置のいずれかから、接続メッセージを受信する接続受信部
をさらに備え、
前記削除部は、前記記憶部に記憶される接続情報のそれぞれについて、当該接続情報に指定された端末識別名を有する端末装置から送信される接続メッセージが、所定の閾値時間以上受信されなかった場合、当該接続情報を、前記記憶部から削除する
ことを特徴とする配信システム。
【請求項６】
サーバ装置と通信可能に接続される端末装置であって、
前記サーバ装置へ、所望のデータのデータ識別名を指定する要求メッセージを送信する要求送信部、
前記所望のデータが復元されるまで、前記サーバ装置から、断片メッセージを受信する断片受信部、
前記受信された断片メッセージに指定される断片と、当該断片が当該所望のデータにおいて配置されていた位置と、を、対応付けて蓄積する蓄積部、
前記所望のデータを分割することにより得られるすべての断片が蓄積されると、当該蓄積された断片のそれぞれと、当該蓄積された断片のそれぞれに対応付けて蓄積された位置と、から、当該所望のデータを復元する復元部、
前記所望のデータが復元されると、前記サーバ装置へ、当該所望のデータのデータ識別名を指定する完了メッセージを送信する完了送信部
を備え、
所定期間内における前記サーバ装置との通信状況に基づいて、通信の信頼性が高いプロトコルによる未だ受信されていない断片の再送を、前記サーバ装置へ指示し、
前記サーバ装置から前記通信の信頼性が高いプロトコルにより送信された再送メッセージを受信すると、前記受信された再送メッセージに指定される断片と、当該断片が当該所望のデータにおいて配置されていた位置と、を、対応付けて蓄積する
ことを特徴とする端末装置。
【請求項７】
請求項６に記載の端末装置であって、
前記要求メッセージを送信した後、前記所望のデータが復元されるまで、所定の時間間隔で、前記サーバ装置へ、接続メッセージを送信する接続送信部
をさらに備えることを特徴とする端末装置。
【請求項８】
サーバ装置と、複数の端末装置と、が、実行する配信方法であって、前記サーバ装置は、記憶部、要求受信部、追加部、取得部、断片送信部、完了受信部、削除部を有し、
記憶部には、端末識別名と、データ識別名と、が指定される接続情報が記憶され、
前記複数の端末装置のそれぞれは、要求送信部、断片受信部、蓄積部、復元部、完了送信部を有し、
（ａ）前記サーバ装置において、
前記要求受信部が、前記複数の端末装置のいずれかから、データ識別名を指定する要求メッセージを受信する要求受信工程、
前記追加部が、前記要求メッセージが受信されると、当該要求メッセージの送信元の端末装置の端末識別名と、当該要求メッセージに指定されたデータ識別名と、を指定する接続情報を、前記記憶部に追加する追加工程、
前記取得部が、前記記憶部に接続情報が記憶されている間、当該記憶されている接続情報のそれぞれに指定されているデータ識別名を重複なく取得し、当該重複なく取得されたデータ識別名毎に、当該データ識別名に対応付けられるデータを分割することにより得られる断片を、所定の巡回順序で取得する取得工程、
前記断片送信部が、前記断片が取得されると、当該断片と、当該断片の分割元のデータ内において、当該断片が配置されていた位置と、を指定する断片メッセージを、当該断片が取得される起因となった接続情報に指定されている端末識別名を有する端末装置のそれぞれへ、送信する断片送信送工程、
前記完了受信部が、前記複数の端末装置のいずれかから、データ識別名を指定する完了メッセージを受信する完了受信工程、
前記削除部が、前記完了メッセージが受信されると、当該完了メッセージの送信元の端末装置の端末識別名と、当該要求メッセージに指定されたデータ識別名と、が指定されている接続情報を、前記記憶部から削除する削除工程
を備え、
（ｂ）前記複数の端末装置のそれぞれにおいて、
前記要求送信部が、前記サーバ装置へ、所望のデータのデータ識別名を指定する要求メッセージを送信する要求送信工程、
前記断片受信部が、前記所望のデータが復元されるまで、前記サーバ装置から、断片メッセージを受信する断片受信工程、
前記蓄積部が、前記受信された断片メッセージに指定される断片と、当該断片が当該所望のデータにおいて配置されていた位置と、を、対応付けて蓄積する蓄積工程、
前記復元部が、前記所望のデータを分割することにより得られるすべての断片が蓄積されると、当該蓄積された断片のそれぞれと、当該蓄積された断片のそれぞれに対応付けて蓄積された位置と、から、当該所望のデータを復元する復元部、
前記完了送信部が、前記所望のデータが復元されると、前記サーバ装置へ、当該所望のデータのデータ識別名を指定する完了メッセージを送信する完了送信工程、
を備え、
前記複数の端末装置のそれぞれは、所定期間内における前記サーバ装置との通信状況に基づいて、通信の信頼性が高いプロトコルによる未だ受信されていない断片の再送を、前記サーバ装置へ指示し、
前記サーバ装置は、前記複数の端末装置のいずれかから、断片の再送が指示されると、当該指示された断片を指定する再送メッセージを、前記通信の信頼性が高いプロトコルにより、当該指示をした端末装置へ送信し、
前記複数の端末装置のそれぞれは、前記サーバ装置から前記通信の信頼性が高いプロトコルにより送信された再送メッセージを受信すると、前記受信された再送メッセージに指定される断片と、当該断片が当該所望のデータにおいて配置されていた位置と、を、対応付けて蓄積する
ことを特徴とする配信方法。
【請求項９】
サーバ装置と通信可能に接続される端末装置が実行する端末方法であって、前記端末装置は、要求送信部、断片受信部、蓄積部、復元部、完了送信部を有し、
前記要求送信部が、前記サーバ装置へ、所望のデータのデータ識別名を指定する要求メッセージを送信する要求送信工程と、
前記断片受信部が、前記所望のデータが復元されるまで、前記サーバ装置から、断片メッセージを受信する断片受信工程と、
前記蓄積部が、前記受信された断片メッセージに指定される断片と、当該断片が当該所望のデータにおいて配置されていた位置と、を、対応付けて蓄積する蓄積工程と、
前記復元部が、前記所望のデータを分割することにより得られるすべての断片が蓄積されると、当該蓄積された断片のそれぞれと、当該蓄積された断片のそれぞれに対応付けて蓄積された位置と、から、当該所望のデータを復元する復元工程と、
前記完了送信部が、前記所望のデータが復元されると、前記サーバ装置へ、当該所望のデータのデータ識別名を指定する完了メッセージを送信する完了送信工程と
を備え、
所定期間内における前記サーバ装置との通信状況に基づいて、通信の信頼性が高いプロトコルによる未だ受信されていない断片の再送を、前記サーバ装置へ指示し、
前記サーバ装置から前記通信の信頼性が高いプロトコルにより送信された再送メッセージを受信すると、前記受信された再送メッセージに指定される断片と、当該断片が当該所望のデータにおいて配置されていた位置と、を、対応付けて蓄積する
ことを特徴とする端末方法。
【請求項１０】
コンピュータを、サーバ装置と通信可能に接続される端末装置として機能させるプログラムであって、前記プログラムは、前記コンピュータを
前記サーバ装置へ、所望のデータのデータ識別名を指定する要求メッセージを送信する要求送信部、
前記所望のデータが復元されるまで、前記サーバ装置から、断片メッセージを受信する断片受信部、
前記受信された断片メッセージに指定される断片と、当該断片が当該所望のデータにおいて配置されていた位置と、を、対応付けて蓄積する蓄積部、
前記所望のデータを分割することにより得られるすべての断片が蓄積されると、当該蓄積された断片のそれぞれと、当該蓄積された断片のそれぞれに対応付けて蓄積された位置と、から、当該所望のデータを復元する復元部、
前記所望のデータが復元されると、前記サーバ装置へ、当該所望のデータのデータ識別名を指定する完了メッセージを送信する完了送信部
として機能させ、
所定期間内における前記サーバ装置との通信状況に基づいて、通信の信頼性が高いプロトコルによる未だ受信されていない断片の再送を、前記サーバ装置へ指示し、
前記サーバ装置から前記通信の信頼性が高いプロトコルにより送信された再送メッセージを受信すると、前記受信された再送メッセージに指定される断片と、当該断片が当該所望のデータにおいて配置されていた位置と、を、対応付けて蓄積する
ように機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク経由で複数の端末が同一のデータを取得する際に、サーバの負担を軽減でき、データの伝送効率を向上させることができる配信システム、サーバ装置、端末装置、サービス方法、端末方法、並びにこれらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、ネットワーク経由でデータを取得する際に、一つの装置にアクセスが集中することをできるだけ防止するのに好適なデータ処理システムが提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２０９３４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方で、ネットワーク経由で複数の端末が同一のデータを取得する際に、サーバの負担を少なくし、データの伝送効率を高くするようなシステムが要望されている。
【０００５】
本発明は、上記のような課題を解決するもので、ネットワーク経由で複数の端末が同一のデータを取得する際に、サーバの負担を軽減でき、データの伝送効率を向上させることができる配信システム、サーバ装置、端末装置、サービス方法、端末方法、並びにこれらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の第１の観点に係る配信システムは、サーバ装置と、サーバ装置と通信可能に接続される複数の端末装置とを備える。
サーバ装置は、例えば、情報のアップデート・新たなコンテンツの提供等を行う装置であり、端末装置は、例えば、ゲーム装置が該当する。当該システムを使用することにより、例えば、新規コンテンツ提供直後におけるサーバ装置へのアクセス集中によるサーバ負荷を軽減できるものである。
【０００７】
まず、サーバ装置は、記憶部、要求受信部、追加部、取得部、断片送信部、完了受信部、削除部を備える。
ここで、記憶部は、端末識別名と、データ識別名と、が指定される接続情報を記憶し、要求受信部は、複数の端末装置のいずれかから、データ識別名を指定する要求メッセージを受信し、追加部は、要求メッセージを受信すると、要求メッセージの送信元の端末装置の端末識別名と、要求メッセージに指定されたデータ識別名と、を指定する接続情報を、記憶部に追加する。
【０００８】
すなわち、記憶部は、ＩＰアドレス等で特定される端末識別名とゲームコンテンツ等の種類を特定するデータ識別名が指定される接続情報を記憶する。
複数の端末装置のうちのひとつから、その端末装置がダウンロードを希望するゲームコンテンツ等のデータ識別名が指定された要求メッセージが送信されると、追加部は、送信元の端末装置が指定するデータ識別名及び送信元の端末識別名からなる接続情報を、記憶部に追加して記憶する。
【０００９】
取得部は、記憶部に接続情報が記憶されている間、記憶されている接続情報のそれぞれに指定されているデータ識別名を重複なく取得し、重複なく取得されたデータ識別名毎に、データ識別名に対応付けられるデータを分割することにより得られる断片を、所定の巡回順序で取得し、断片送信部は、断片が取得されると、断片と、断片の分割元データ内において、断片が配置されていた位置とを指定する断片メッセージを、断片が取得される起因となった接続情報に指定されている端末識別名を有する端末装置のそれぞれへ、送信する。
【００１０】
すなわち、取得部では、記憶部に既に記憶されたデータ識別名は、取得せずに、記憶部にはないデータ識別名を取得する。例えば、端末装置Ｘでは、データ識別名Ａを指定し、端末装置Ｙでは、データ識別名Ａを指定し、端末装置Ｚでは、データ識別名Ａを指定し、端末装置Ｗでは、データ識別名Ｂを指定する場合、取得部では、重複するデータ識別名は取得せずに、Ａ、Ｂ各々２つのみ取得することになる。
【００１１】
そして、データ識別名に対応付けられたデータ、例えばＡは、複数の断片ａ１〜ａ６に分割される。これらの断片は、所定の順序で巡回する形式、例えば、ａ１→ａ２→ａ３→ａ４→ａ５→ａ６→ａ１→ａ２…という形式で、取得部において、取得される。
【００１２】
さらに、各断片には、データ内で断片が配置されていた位置の情報が付与される。例えば、任意のデータ識別名のデータを６つの断片に分割した場合、３番目の位置に配置された断片には、３／６という位置情報が付与される。断片内容の情報と、位置情報とは、併せて断片メッセージとして、断片送信部より、データ要求元の端末に送信される。
【００１３】
完了受信部は、複数の端末装置のいずれかから、データ識別名を指定する完了メッセージを受信し、削除部は、完了メッセージを受信すると、完了メッセージの送信元の端末装置の端末識別名と、要求メッセージに指定されたデータ識別名と、が指定されている接続情報を記憶部から削除する。
【００１４】
すなわち、データ要求元の端末装置において、要求したデータ識別名に対応する全ての断片を取得した場合には、完了メッセージが送信され、サーバ装置は、送信メッセージを受信すると、削除部が、記憶部に記憶された端末識別名とデータ識別名からなる接続情報を削除する。
【００１５】
一方、複数の端末装置は、それぞれ、要求送信部、断片受信部、蓄積部、復元部、完了送信部を備える。
ここで、要求送信部は、サーバ装置へ、所望のデータのデータ識別名を指定する要求メッセージを送信し、断片受信部は、所望のデータが復元されるまで、サーバ装置から断片メッセージを受信し、蓄積部は、受信された断片メッセージに指定される断片と、当該断片が所望のデータにおいて配置されていた位置とを対応付けて蓄積する。
【００１６】
すなわち、各端末装置は、例えば、ゲームプレイヤが要求するコンテンツを特定するデータ識別名を指定した要求メッセージを送信する。
要求したデータ識別名のデータは、複数の断片に分割されたデータの形で、断片メッセージとして断片受信部において受信され、蓄積される。
【００１７】
そして、復元部は、所望のデータを分割することにより得られるすべての断片が蓄積されると、蓄積された断片のそれぞれと、蓄積された断片のそれぞれに対応付けて蓄積された位置とから所望のデータを復元し、完了送信部は、所望のデータが復元されると、サーバ装置へ、所望のデータのデータ識別名を指定する完了メッセージを送信する。
【００１８】
すなわち、要求元の端末装置において、要求したデータのすべての断片が蓄積されると、断片の位置情報に基づいて、データが復元される。
データが復元されると、完了メッセージが完了送信部よりサーバ装置へ送信される。
【００１９】
本発明によれば、複数の端末装置から要求されたデータ識別名に対応するデータを、複数の断片に分け、所定の順序で巡回的に送信して、端末装置側で復元することで、通信によるサーバ装置の負荷を低減できる配信システムを提供することができる。
【００２０】
本発明のその他の観点に係るサーバ装置は、上記配信システムにおけるサーバ装置である。
【００２１】
すなわち、サーバ装置は、記憶部、要求受信部、追加部、取得部、断片送信部、完了受信部、削除部を備える。
ここで、記憶部は、端末識別名と、データ識別名と、が指定される接続情報を記憶し、要求受信部は、複数の端末装置のいずれかから、データ識別名を指定する要求メッセージを受信し、追加部は、要求メッセージを受信すると、要求メッセージの送信元の端末装置の端末識別名と、要求メッセージに指定されたデータ識別名と、を指定する接続情報を記憶部に追加する。
【００２２】
取得部は、記憶部に接続情報が記憶されている間、記憶されている接続情報のそれぞれに指定されているデータ識別名を重複なく取得し、重複なく取得されたデータ識別名毎に、データ識別名に対応付けられるデータを分割することにより得られる断片を、所定の巡回順序で取得し、断片送信部は、断片が取得されると、断片と、断片の分割元データ内において、断片が配置されていた位置とを指定する断片メッセージを、断片が取得される起因となった接続情報に指定されている端末識別名を有する端末装置のそれぞれへ、送信する。
【００２３】
完了受信部は、複数の端末装置のいずれかから、データ識別名を指定する完了メッセージを受信し、削除部は、完了メッセージを受信すると、完了メッセージの送信元の端末装置の端末識別名と、要求メッセージに指定されたデータ識別名とが指定されている接続情報を記憶部から削除する。
【００２４】
また、サーバ装置において、要求受信部ならびに完了受信部は、それぞれ、要求メッセージと完了メッセージを、コネクション型プロトコルにより受信し、断片送信部は、断片メッセージをコネクションレス型プロトコルにより送信する。
【００２５】
コネクション型プロトコルは、通信を開始するときにデータを送受信する端末間にデータ伝送に先立ってコネクションを確立し、通信が終わるまで接続関係を保持する通信形態で使用されるプロトコルである。コネクションレス型プロトコルは、送受信する端末間にデータの伝送に先立ってコネクションの確立を行わず、宛先アドレスを明示したパケットを送る通信形態で使用されるプロトコルである。
【００２６】
本発明によれば、通信を確実に行いたい送受信形態である、要求メッセージと完了メッセージはコネクション型プロトコルを使用し、接続よりも送受信の負荷を減少させたい送信形態である断片メッセージは、コネクションレスプロトコルを使用することができる。
また、通信負荷が高いコネクションの使用を押さえて、通信の大半をコネクションレスで行うことで、オーバ負荷を減らすことができる。
【００２７】
さらに、本発明のサーバ装置において、コネクション型プロトコルは、ＴＣＰ(Transmission Control Protocol)であり、コネクションレス型プロトコルは、ＵＤＰ(User Datagram Protocol)である。
本発明によれば、コネクション型またはコネクションレス型に対応して、適切なトランスポート層のプロトコルを使用することができる。
【００２８】
また、本発明のサーバ装置において、サーバー装置は、接続受信部をさらに備える。
ここで、削除部は、記憶部に記憶される接続情報のそれぞれについて、接続情報に接続する端末識別名を有する端末装置から送信される接続メッセージが、所定の閾値時間以上受信されなかった場合、接続情報を、記憶部から削除する。
【００２９】
すなわち、端末装置から送信される接続メッセージが、一定期間受信されない場合には、通信が切断されたと判断して、その接続メッセージに対応する接続情報を記憶部から削除する。
本発明によれば、接続メッセージの有無を確認することにより、無駄な送信を省くことができ、通信負荷を抑制することができる。
【００３０】
本発明のその他の観点に係る端末装置は、上記配信システムにおける端末装置である。
【００３１】
すなわち、端末装置は、要求送信部、断片受信部、蓄積部、復元部、完了送信部を備える。
ここで、要求送信部は、サーバ装置へ、所望のデータのデータ識別名を指定する要求メッセージを送信し、断片受信部は、所望のデータが復元されるまで、サーバ装置から、断片メッセージを受信する、蓄積部は、受信された断片メッセージに指定される断片と、当該断片が当該所望のデータにおいて配置されていた位置と、を、対応付けて蓄積する。
【００３２】
復元部は、所望のデータを分割することにより得られるすべての断片が蓄積されると、当該蓄積された断片のそれぞれと、当該蓄積された断片のそれぞれに対応付けて蓄積された位置と、から、当該所望のデータを復元し、完了送信部は、所望のデータが復元されると、サーバ装置へ、当該所望のデータのデータ識別名を指定する完了メッセージを送信する。
【００３３】
本発明の端末装置は、接続送信部をさらに備える。
ここで、接続送信部は、要求メッセージを送信した後、所望のデータが復元されるまで、所定の時間間隔で、サーバ装置へ接続メッセージを送信する。
【００３４】
すなわち、接続送信部は、一定の時間間隔で、接続メッセージを送信することで、サーバ装置側が接続の確認を行うことができる。
【００３５】
本発明のその他の観点に係るサービス方法は、サーバ装置にて、実行されるサービス方法であって、サーバ装置は、記憶部、要求受信部、追加部、取得部、断片送信部、完了受信部、削除部を有し、要求受信工程、追加工程、取得工程、断片送信工程、完了受信工程、削除工程を備え、以下のように構成する。
【００３６】
すなわち、要求受信工程では、要求受信部が、複数の端末装置のいずれかから、データ識別名を指名する要求メッセージを受信する。
【００３７】
追加工程では、追加部が、要求メッセージが受信されると、要求メッセージの送信元の端末装置の端末識別名と、要求メッセージに指定されたデータ識別名と、を指定する接続情報を、記憶部に追加する。
【００３８】
取得工程では、取得部が、記憶部に接続情報が記憶されている間、記憶されている接続情報のそれぞれに指定されているデータ識別名を重複なく取得し、重複なく取得されたデータ識別名毎に、データ識別名に対応付けられるデータを分割することにより得られる断片を、所定の巡回順序で取得する。
【００３９】
断片送信工程では、断片送信部が、断片が取得されると、当該断片と、当該断片の分割元のデータ内において、当該断片が配置されていた位置と、を指定する断片メッセージを、当該断片が取得される起因となった接続情報に指定されている端末識別名を有する端末装置のそれぞれへ、送信する。
【００４０】
完了受信工程では、完了受信部が、複数の端末装置のいずれかから、データ識別名を指定する完了メッセージを受信する。
【００４１】
削除工程では、削除部が、完了メッセージが受信されると、当該完了メッセージの送信元の端末装置の端末識別名と、当該要求メッセージに指定されたデータ識別名と、が指定されている接続情報を、記憶部から削除する。
【００４２】
本発明のその他の観点に係る端末方法は、サーバ装置と通信可能に接続される端末装置において実行される端末方法であって、端末装置は、要求送信部、断片受信部、蓄積部、復元部、完了送信部を有し、要求送信工程、断片受信工程、蓄積工程、復元工程、完了送信工程を備え、以下のように構成する。
【００４３】
すなわち、要求送信工程では、要求送信部が、サーバ装置へ、所望のデータのデータ識別名を指定する要求メッセージを送信する。
【００４４】
断片受信工程では、断片受信部が、所望のデータが復元されるまで、サーバ装置から、断片メッセージを受信する。
【００４５】
蓄積工程では、蓄積部が、受信された断片メッセージに指定される断片と、当該断片が当該所望のデータにおいて配置されていた位置と、を、対応付けて蓄積する。
【００４６】
復元工程では、復元部が、所望のデータを分割することにより得られるすべての断片が蓄積されると、当該蓄積された断片のそれぞれと、当該蓄積された断片のそれぞれに対応付けて蓄積された位置と、から、当該所望のデータを復元する。
【００４７】
完了送信工程では、完了送信部が、所望のデータが復元されると、サーバ装置へ、当該所望のデータのデータ識別名を指定する完了メッセージを送信する。
【００４８】
本発明のその他の観点に係るプログラムは、コンピュータをサーバ装置として機能させ、コンピュータにサービス方法を実行させるように構成し、サーバ装置は、要求受信部、追加部、取得部、断片送信部、完了受信部、削除部を備える。
【００４９】
ここで、記憶部は、端末識別名と、データ識別名とが指定される接続情報を記憶し、要求受信部は、複数の端末装置のいずれかから、データ識別名を指定する要求メッセージを受信し、追加部は、要求メッセージを受信すると、要求メッセージの送信元の端末装置の端末識別名と、要求メッセージに指定されたデータ識別名とを指定する接続情報を記憶部に追加する。
【００５０】
取得部は、記憶部に接続情報が記憶されている間、記憶されている接続情報のそれぞれに指定されているデータ識別名を重複なく取得し、重複なく取得されたデータ識別名毎に、データ識別名に対応付けられるデータを分割することにより得られる断片を、所定の巡回順序で取得し、断片送信部は、断片が取得されると、断片と、断片の分割元データ内において、断片が配置されていた位置とを指定する断片メッセージを、断片が取得される起因となった接続情報に指定されている端末識別名を有する端末装置のそれぞれへ、送信する。
【００５１】
完了受信部は、複数の端末装置のいずれかから、データ識別名を指定する完了メッセージを受信し、削除部は、完了メッセージを受信すると、完了メッセージの送信元の端末装置の端末識別名と、要求メッセージに指定されたデータ識別名とが指定されている接続情報を、記憶部から削除する。
【００５２】
本発明のその他の観点に係るプログラムは、コンピュータを端末装置として機能させ、コンピュータに端末方法を実行させるように構成し、端末装置は、要求送信部、断片受信部、蓄積部、復元部、完了送信部を備える。
【００５３】
ここで、要求送信部は、サーバ装置へ、所望のデータのデータ識別名を指定する要求メッセージを送信し、断片受信部は、所望のデータが復元されるまで、サーバ装置から断片メッセージを受信し、蓄積部は、受信された断片メッセージに指定される断片と、当該断片が所望のデータにおいて配置されていた位置と、を、対応付けて蓄積する。
【００５４】
そして、復元部は、所望のデータを分割することにより得られるすべての断片が蓄積されると、蓄積された断片のそれぞれと、蓄積された断片のそれぞれに対応付けて蓄積された位置と、から、所望のデータを復元し、完了送信部は、所望のデータが復元されると、サーバ装置へ、所望のデータのデータ識別名を指定する完了メッセージを送信する。
【００５５】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータと独立して、コンピュータ通信網を介して配布、販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布、販売することができる。
【発明の効果】
【００５６】
本発明によれば、ネットワーク経由で複数の端末で同一のデータを取得する際に、サーバの負担を軽減でき、データの伝送効率を向上させることができる配信システム、サーバ装置、端末装置、サービス方法、端末方法、並びにこれらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施形態に係る配信システムが実現される典型的な情報処理装置の概要構成を示す模式図である。
【図２】本発明の実施形態の１つに係る配信システムの概要構成を示す説明図である。
【図３】本実施形態における各種の通信のやりとりの様子を示すシーケンス図である。
【図４】本実施形態における各種の通信のやりとりの様子を示すシーケンス図である。
【図５】本実施形態に係るサーバ装置の概要構成を示す模式図である。
【図６】本実施形態に係るサーバ装置にて実行されるサービス方法のサービス処理の制御の流れを示すフローチャートである。
【図７】本実施形態に係るサーバ装置にて実行されるサービス方法の受信処理の制御の流れを示すフローチャートである。
【図８】本実施形態に係るサーバ装置にて実行されるサービス方法の送信処理の制御の流れを示すフローチャートである。
【図９】本実施態様に係るサーバ装置の記憶部におけるデータ蓄積状況を示す図である。
【図１０】本実施形態に係る端末装置の概要構成を示す模式図である。
【図１１】本実施形態に係る端末装置にて実行される端末方法の端末処理の制御の流れを示すフローチャートである。
【発明を実施するための形態】
【００５８】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素を均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００５９】
（実施形態１）
図１は、本発明の実施形態に係る配信システムが実現される典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００６０】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェース１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、を備える。
【００６１】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態の配信システム等が実現される。
【００６２】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００６３】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００６４】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行う、また、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００６５】
インターフェース１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【００６６】
インターフェース１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００６７】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００６８】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００６９】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００７０】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００７１】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画したりすることが可能である。フォント情報は、ＲＯＭ  １０２に記録されているが、ＤＶＤ−ＲＯＭに記録された専用のフォント情報を利用することも可能である。
【００７２】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００７３】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００７４】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００７５】
さらに、情報処理装置１００には、インターフェース１０４を介してマイク（図示せず）を接続することができる。この場合、マイクからのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【００７６】
情報処理装置１００をカラオケ装置として利用する場合には、ＤＶＤ−ＲＯＭから読み出した音声データ、もしくは、ＮＩＣ  １０９を介してコンピュータ通信網から取得した音声データを伴奏データとし、マイクから入力された音声データを歌唱データとして、伴奏データと歌唱データを音声処理部１１０がミキシングし、スピーカから出力する。また、スピーカにかえて、ヘッドホン（図示せず）やイヤフォン（図示せず）を用いて、音声を出力させることもできる。
【００７７】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００７８】
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態の情報処理装置１００にかえて、汎用のパーソナルコンピュータを利用することもできる。
【００７９】
以上で説明した情報処理装置１００は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【００８０】
例えば、一般的なコンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、及び、ＮＩＣを備え、情報処理装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ１０５ではなく、キーボードやマウスなどを入力装置として利用する。
【００８１】
図２は、本発明の実施形態の１つに係る配信システムの概要構成を示す説明図である。以下、本図を参照して説明する。
【００８２】
配信システム２００は、サーバ装置２０１と、複数の端末装置２０２（２０２ａ、２０２ｂ、２０２ｃ、２０２ｄ、・・２０２ｎ）とからなり、サーバ装置２０１と複数の端末装置２０２は、インターネット２０３を介して接続されている。サーバ装置２０１は、データの提供者が維持管理するデータサーバ機器である。サーバ装置２０１のメモリとして、キャッシュメモリ（cache memory)を使用することも可能であり、メインメモリの一部のデータをコピーしておくことで、高速アクセスを図ることができる。複数の端末装置２０２は、データの利用者が維持管理する端末機器である。
【００８３】
端末装置２０２からの送信信号に応じて、サーバ装置２０１は、端末装置２０２が要求するコンテンツを端末装置毎に送信する。
【００８４】
図３、図４は、本実施形態における各種の通信のやりとりの様子を示すシーケンス図である。
以下、図面を参照して説明する。
【００８５】
サーバ装置２０１は、端末装置２０２に提供すべきデータを記憶している。各データには、データ毎に、例えばＡ、Ｂ、Ｃ・・というデータ識別名が付与される。各データは、データ識別名毎に、複数の断片に分割されている。そして、その断片には当該データ中で当該断片が配置されていた位置を示す位置情報が付与されている。例えば、Ａというデータ識別名を有するデータを６つの断片に分割した場合には、ａ１〜ａ６という断片が形成され、その配置順に、（1/6)、(2/6）、(3/6)、(4/6)、(5/6)、(6/6)という位置情報が各断片に付与される。
【００８６】
各断片は、それぞれ同程度の大きさであり、データ全体の大きさにより、例えばコンテンツＡは、ａ１〜ａ６という６つの断片に分割され、コンテンツＢは、ｂ１〜ｂ８という８つの断片に分割される。
【００８７】
なお、データは、「ファイル」と呼ばれる形式で提供されることが最も多いが、いわゆるバイト列やビット列として構成されるものであれば、どのようなものであっても良い。
また、「識別名」としては、ファイル名を使用するものが最も一般的である。データがある大きなデータ内の一部を構成するものである場合（例えば、プログラム内のオーバーレイモジュールの場合等）、当該大きなデータベースによって検索された位置情報とサイズ情報の組合せが「識別名」となる。また、データベースによって検索された結果を「データ」とする場合には、検索に用いる検索式（ＳＱＬ式など）を「識別名」としても良い。
【００８８】
ここで、端末装置２０２ａが、コンテンツＡをサーバ装置２０１に要求した場合、サーバ装置２０１は、分割された断片ａ１〜ａ６をａ１から巡回的に送信することになる。そして、端末装置２０２ａが、コンテンツＡに関して、全ての断片を受信した場合には、端末装置２０２ａは、データを復元した後、完了メッセージをサーバ装置２０１に送信する。これによって、サーバ装置２０１からの断片送信は終了する。
【００８９】
次に、複数の端末装置２０２が、同一のコンテンツデータを時間を異にして、要求した場合のコンテンツデータの送信方法について、図面を参照して説明する。
【００９０】
サーバ装置２０１が、端末装置２０２ｂから、コンテンツＢを要求する信号を受信した場合、８つの断片ｂ１〜ｂ８に分割されたコンテンツＢのデータを、断片ｂ１から順次、端末装置２０２ｂに送り始める。
【００９１】
サーバ装置２０１が、端末装置２０２ｂへコンテンツＢの断片ｂ１，ｂ２まで送信したときに、端末装置２０２ｃから、同一のコンテンツＢを要求する信号を受信する。この場合、サーバ装置２０１は、端末装置２０２ｂに対して、既に断片ｂ１，ｂ２まで断片を送信しているので、端末装置２０２ｂ、２０２ｃに対して、断片ｂ３を送信する。
【００９２】
端末装置２０２ｂは、コンテンツＢのデータを断片ｂ１から受信しているので、最後の断片ｂ８を受信したところで、コンテンツＢを復元し、サーバ装置２０１に対して完了メッセージを送信して、断片の受信を終了する。
【００９３】
一方、端末装置２０２ｃは、断片ｂ３から受信を開始しているので、断片ｂ８まで受信した後、更に断片ｂ１，ｂ２ まで受信した時点で、コンテンツＢを復元し、サーバ装置２０１に対して、完了メッセージを送信して、断片の受信を終了する。
【００９４】
また、端末装置２０２ｄは、サーバ装置２０１に対して、サーバ装置２０１が端末装置２０２ｂ,２０２ｃに対して、断片ｂ４まで送信した時点で、Ｂコンテンツの要求をする。
その場合、サーバ装置２０１は、端末装置２０２ｄに対して、断片ｂ５から送信することになる。
【００９５】
通信障害等の原因から、断片ｂ６を受信できなくとも、端末装置２０２ｄは、その後も続けて断片ｂ７、ｂ８を受信する。そして、図３及び図４に示すように、端末装置２０２ｄは、最初に受信したｂ５より前に配信された断片ｂ１〜ｂ４を続けて受信する。
【００９６】
更に、端末装置２０２ｄは、ｂ６を取得できなかったので、ｂ５，ｂ６まで受信する。端末装置２０２ｄは、断片ｂ５については、重複して受信することになる。本システムは、重複受信することより、サーバ装置２０１の負荷を軽くすることを優先したシステムである。
尚、重複して受信された断片ｂ５は、端末装置２０２ｄにおいて、廃棄される。
【００９７】
端末装置２０２ｄは、断片ｂ６まで取得した時点で、コンテンツＢについて全ての断片を取得したことになるので、コンテンツＢを復元した後、サーバ装置２０１に対して、完了メッセージを送信する。
【００９８】
このような処理手順に従って、複数の端末装置２０２は、サーバ装置２０１からのデータの提供を受けることになる。この場合、データを複数の断片に分けて、巡回的に端末装置２０２に送信することにより、サーバ装置２０１は、コンテンツ全データを個別に端末装置に送信するときと比べて、負荷を受けずに処理を継続することができる。
【００９９】
また、各断片は、ＵＤＰという通信プロトコルを使用して送信する。ＵＤＰを使用すると宛先に到達したか否かを判定しないため、高速な通信が可能となる。
【０１００】
図５は、本実施形態に係るサーバ装置の概要構成を示す模式図である。図６は、本実施形態に係るサーバ装置にて実行されるサービス方法のサービス処理の制御の流れを示すフローチャートである。図７は、本実施形態に係るサーバ装置にて実行されるサービス方法の受信処理の制御の流れを示すフローチャートである。図８は、本実施形態に係るサーバ装置にて実行されるサービス方法の送信処理の制御の流れを示すフローチャートである。  以下、本図を参照して説明する。なお、以下の説明では、サーバ装置２０１が上記の情報処理装置１００上に実現されている場合を例にあげて説明する。
【０１０１】
サーバ装置２０１は、要求受信部５０１、追加部５０２、記憶部５０３、取得部５０４、断片送信部５０５、完了受信部５０６、接続受信部５０７、削除部５０８を備える。
【０１０２】
ここで、記憶部５０３は、データをデータ識別名に対応付けて記憶する。当該データは、将来端末装置２０２にダウンロードされるであろうデータである。
【０１０３】
図６に示すように、本サービス処理は、サーバ装置２０１が初期化（ステップＳ６０１）され、受信処理と（ステップＳ６０２）、送信処理（ステップＳ６０３）とを並列に開始する。
【０１０４】
図７に示すように、受信処理が開始すると、サーバ装置２０１は、端末装置２０２からメッセージを受信し（ステップＳ７０１）、そのメッセージの種類を判断する（ステップＳ７０２）。
メッセージが、要求メッセージである場合は、そのメッセージは、要求受信部５０１において、受信される。要求メッセージは、要求を送信した送信元の端末装置の端末識別名と、要求したコンテンツ等のデータ識別名とを指定するメッセージである。
【０１０５】
要求受信部５０１で、要求メッセージが受信されると、当該データ識別名と当該端末識別名とが、接続情報として、追加部５０２により記憶部５０３に追加される（ステップＳ７０３）。
【０１０６】
一方、メッセージが、端末装置２０２が要求したデータを復元したときに送信される完了メッセージである場合、削除部５０８は、その端末装置２０２の端末識別名と要求メッセージで指定されたデータ識別名を記録部５０３から削除する（ステップＳ７０４）。
【０１０７】
また、メッセージが、端末装置２０２からの接続メッセージであり、当該メッセージが接続受信部５０７で受信された場合には、その時刻を記録する（ステップＳ７０５）。
【０１０８】
サーバ装置２０１が、その他のメッセージを受信した場合には、そのメッセージに従った処理を行うことになる（ステップＳ７０６）。
【０１０９】
それぞれのメッセージに応じた処理が完了した後、記憶部５０３において、記録された時刻がかなり前であるか否かが判断され、記録された時刻がかなり前である場合には（ステップＳ７０７；ＹＥＳ）、対応するメッセージに応じたデータは、記憶部５０３から削除される（ステップＳ７０８）。記録された時刻がかなり前でない場合には（ステップＳ７０７；ＮＯ）、データは削除されない。この一連の処理は、全端末装置２０２について、繰り返される（ステップＳ７０９）。
【０１１０】
追加部５０２によって記憶部５０３に記憶された端末識別名とデータ識別名は、接続情報として、記憶部５０３に記憶されている。取得部５０４では、複数の端末装置２０２から受信したデータ識別名を重複なく取得する。例えば、データ識別名Ａ、Ｂ、Ｃという３種類のデータを、時系列的に、ＡＡＢＡＣＣＡＢという順序で取得した場合、取得部５０４では、Ａ、Ｂ、Ｃ各々ひとつづつのデータ識別名を取得する。
【０１１１】
そして、取得されたデータ識別名毎に、データを分割して断片を取得する。例えば、データ識別名Ａを６つに分割して、６個の断片を取得する。
【０１１２】
各断片の大きさは、ＵＤＰ通信のパケットとして伝送するのに適したサイズとすることが望ましい。これは、ネットワークの状況によって変化するが、過去の通信履歴から統計的にサイズを求めることができる。
【０１１３】
更に、取得された各断片は、元のデータで配置されていた位置を指定される。例えば、分割総数○○個の断片のうち当該断片は先頭から数えて○○番目の断片である、という情報を、所定のフォーマットで指定するものとする。
より具体的には、データ識別名Ａを６つに分割して出来た６個の断片は、元のデータで配置されていた順番で、（1/6）、（2/6）、（3/6）、（4/6）、（5/6）、（6/6）という位置情報が与えられる。
【０１１４】
元のデータ識別名は、上述の例のように適当な文字列の形式を定めてこれによって表現しても良いし、整数により識別番号形式で表現しても良い。
【０１１５】
断片そのものを指定する際には、通信路の途中での通信障害によりデータが壊れたり、第三者の妨害によってデータが改変されたりしたことを検出するため、チェックサムなどを合わせて指定しても良い。                        
【０１１６】
従って、記憶部５０３には、データ要求元の端末識別名、それに対応するデータ識別名、データ自身、断片自身、断片の位置情報が記憶されることになる。
【０１１７】
そして、断片は、断片の位置情報とともに、断片メッセージとして、断片送信部５０５から要求元の端末装置２０２へ送信されることになる。
断片の送信（ステップＳ８０４）は、図８に示すように、各端末装置２０２について（ステップＳ８０１）、断片ごと（ステップＳ８０２）に、各データ識別名について（ステップＳ８０３）繰り返し行われることになる。
【０１１８】
ここで、記憶部５０３におけるデータの記憶状況を、図３及び図４の流れに沿って、図９図により説明する。
【０１１９】
図９の表９００には、記憶部５０３の接続情報の蓄積状況がどのように推移していくかを、システム起動時、各端末装置２０２ａ〜２０２ｄがコンテンツ要求信号送信時及び完了メッセージ送信時を基準に時系列として示したものである。
【０１２０】
システムに立ち上がった時点（t0）では、記憶部５０３は、接続情報のデータは空の状態である。まず、端末装置２０２ａからコンテンツＡのデータを要求するメッセージが送信された場合（t1)、追加部５０２によって、記憶部５０３には、端末装置２０２ａの端末識別名Ｘとデータ識別名Ａが追加される。すなわち、記憶部５０３には、接続情報である（端末装置名、データ識別名）が（Ｘ、Ａ）という形式で記憶される。サーバ装置２０１は、データ識別名Ａに対応する断片ａ１〜ａ６を端末装置２０２ａに巡回的に送信する。
【０１２１】
次に、端末装置２０２ｂからコンテンツＢのデータを要求するメッセージが送信された場合（t2）、追加部５０２によって、記憶部５０３には、端末装置２０２ｂの端末識別名Ｙとデータ識別名Ｂが追加される。この時点で、記憶部５０３には、接続情報として（Ｘ、Ａ）、（Ｙ、Ｂ）が記憶されている。サーバ装置２０１は、データ識別名Ｂに該当する断片ｂ１〜ｂ８を端末装置２０２ｂに巡回的に送信する。
【０１２２】
更に、 端末装置２０２ｃからコンテンツＢのデータを要求するメッセージが送信された場合（t3）、追加部５０２によって、記憶部５０３には、端末装置２０２ｃの端末識別名Ｚとデータ識別名Ｂが追加される。この時点で、記憶部５０３には、接続情報として（Ｘ、Ａ）、（Ｙ、Ｂ）、（Ｚ、Ｂ）が記憶されている。サーバ装置２０１は、データ識別名Ｂに該当する断片ｂ１〜ｂ８を端末装置２０２ｃに巡回的に送信する。
【０１２３】
そして、端末装置２０２ｄからコンテンツＢのデータを要求するメッセージが送信された場合（t4）、追加部５０２によって、記憶部５０３には、端末装置２０２ｄの端末識別名Ｗとデータ識別名Ｂが追加される。サーバ装置２０１は、データ識別名Ｂに該当する断片ｂ１〜ｂ８を端末装置２０２ｄに巡回的に送信する。
【０１２４】
この時点で、記憶部５０３には、接続情報として、（Ｘ、Ａ）、（Ｙ、Ｂ）、（Ｚ、Ｂ）、（Ｗ、Ｂ）が記憶されていることになる。
【０１２５】
その後、端末装置２０２ａが全ての断片を受信して、完了メッセージをサーバ装置２０１に送信すると（t5)、記憶部５０３に記憶された端末装置２０２ａの接続情報である（Ｘ、Ａ）は、削除部５０８によって削除されることになる。従って、記憶部５０３には接続情報として（Ｙ、Ｂ）、（Ｚ、Ｂ）、（Ｗ、Ｂ）が残る。
【０１２６】
同様に、端末装置２０２ｂが完了メッセージをサーバ装置２０１に送信すると（t6)、記憶部５０３の接続情報（Ｙ、Ｂ）が、削除されるので、記憶部５０３には、接続情報として（Ｚ、Ｂ）、（Ｗ、Ｂ）が残る。
【０１２７】
更に、端末装置２０２ｃが完了メッセージを送信すると（t7)、接続情報（Ｚ、Ｂ）が、記憶部５０３から、削除部５０８によって削除されるので、接続情報としては、（Ｗ、Ｂ）が記憶部５０３に残ることになる。
【０１２８】
最後に、端末装置２０２ｄが完了メッセージを送信すると（t8）、接続情報（Ｗ、Ｂ）が、記憶部５０３から削除され、この時点で記憶部５０３の接続情報は空の状態となる。
【０１２９】
これらの一連の処理において、サーバ装置２０１は、どの端末装置２０２がどの断片を入手したかは管理していないため、サーバ装置２０１での計算処理の負荷は少なく、効率のよいサーバ処理を行うことができる。
【０１３０】
なお、サーバ装置２０１で受信される要求メッセージ及び完了メッセージは、コネクション型プロトコルにより受信される。
【０１３１】
コネクション型プロトコルは、通信を開始するときに、送信側から接続要求を出し、相手方からは接続応答があり、コネクションを確立してからデータを送信することを特徴としている。送信側からデータが送信されると、受信側では確認応答（Acknowledgment::ACK）を送って、確実に受信したことを伝える。
【０１３２】
コネクション型プロトコルは、通信効率は優先せずに、信頼性の高いデータ伝送を望む場合に使用されることが多い。本実施態様においても、要求メッセージ及び完了メッセージは、確実に送受信することが望まれるので、コネクション型プロトコルを使用することが好ましい。
【０１３３】
インターネットのトランスポート層では、ＴＣＰ（Transmission Control Protocol)が使用される。
【０１３４】
一方、サーバ装置から送信される断片メッセージには、コネクションレス型プロトコルを使用することが好ましい。
【０１３５】
コネクションレス型プロトコルは、データ伝送を始める前にコネクションを確立しない通信プロトコルである。コネクションレス型プロトコルは、宛先のみを指定してデータを送信するので、コネクションの確立やＡＣＫなどの通信データの送信等の処理がないため、通信効率がよい。
【０１３６】
本実施形態においても、断片送受信については、通信の信頼性はある程度犠牲にしても、通信効率を求められるので、コネクションレス型プロトコルを使用することが好適である。
【０１３７】
インターネットのトランスポート層では、ＵＤＰ(User Datagram Protocol)が採用される。ＵＤＰは、ポート番号以外のＴＣＰの機能を全て削除した通信プロトコルである。
【０１３８】
このように、本実施形態では、送信元から要求されたデータを、複数の断片に分割して、巡回的に送信することにより、サーバ装置の負荷を軽減することができる。
【０１３９】
また、サーバ装置におけるデータの送受信において、受信するメッセージである受信メッセージと完了メッセージは、信頼性の高いコネクション型プロトコルを使用するとともに、送信するメッセージであるデータの断片については、コネクションレス型プロトコルを使用することにより、サーバ装置の負荷を更に軽減することができる。
【０１４０】
図１０は、本実施形態に係る端末装置の概要構成を示す模式図である。図１１は、本実施形態に係る端末装置にて実行される端末方法の端末処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。なお、以下の説明では、端末装置２０２が上記の情報処理装置１００上に実現されている場合を例にあげて説明する。
【０１４１】
複数の端末装置２０２は、それぞれ、要求送信部１００１、接続送信部１００２、断片受信部１００３、蓄積部１００４、復元部１００５、完了送信部１００６を備える。
【０１４２】
本処理が開始されると、各端末装置２０２の要求送信部１００１は、サーバ装置２０１へ要求メッセージを送信する。（ステップＳ１１０１）要求メッセージには、要求するデータのデータ識別名と、送信元である端末識別名とが含まれる。
【０１４３】
各端末装置２０２では、サーバ装置２０１から断片メッセージが到着したか否かが判断され、断片メッセージが到着した場合（ステップＳ１１０２；ＹＥＳ）には、ＮＩＣ１０９を介して、サーバ装置２０１で生成されたデータの断片を、断片受信部１００３において巡回的に受信する（ステップＳ１１０３）。
【０１４４】
受信された断片が、初めて受信した断片であった場合（ステップＳ１１０４；ＹＥＳ）、蓄積部１００４において、断片メッセージにより指定される断片のデータ内容と、当該断片が元のデータにおいてどの位置に配置されていたかを示す位置情報とが、対応付けられて蓄積される（ステップＳ１１０５）。
【０１４５】
受信された断片が、既に受信した断片であった場合（ステップＳ１１０４；ＮＯ）、その断片は削除され（ステップＳ１１０６）、新しい断片が到着したかを判断する（ステップＳ１１０２）。
【０１４６】
断片メッセージが到着していない場合（ステップＳ１１０２；ＮＯ）には、一定時間が経過したか否かを判断し、一定時間が経過していれば（ステップＳ１１０７；ＹＥＳ）、接続送信部１００２から接続メッセージが送信され（ステップＳ１１０８）、断片メッセージの到着に備える（ステップＳ１１０２）。一定時間が経過していなければ（ステップＳ１１０７；ＮＯ）、接続メッセージは送信されず、断片メッセージの到着に備える（ステップＳ１１０２）。
【０１４７】
蓄積部１００４において、断片とその位置情報を蓄積した場合には、更に、要求した全ての断片を蓄積したかを判断し（ステップＳ１１０９）、要求したデータの全ての断片を蓄積した場合には（ステップＳ１１０９；ＹＥＳ）、位置情報に基づいて、復元部１００５にてデータを復元する（ステップＳ１０１０）。そして、完了送信部１００６が、完了メッセージをサーバ装置２０１に送信して（ステップ１０１１）、処理を終了する。
【０１４８】
一方、全ての断片を蓄積していない場合（ステップ１１０９；ＮＯ）には、一定時間が経過したか否かを判断し（ステップＳ１１０７）、一定時間が経過している場合には（ステップＳ１１０７；ＹＥＳ）、接続送信部１００２からサーバ装置２０１へ接続メッセージを送信し（ステップＳ１１０８）、断片メッセージの到着に備える（ステップＳ１１０２）。
一定時間が経過していない場合には（ステップＳ１１０７；ＮＯ）、接続メッセージは送信せず、断片メッセージの到着に備える（ステップＳ１１０２）。
そして、全ての断片を取得するまで、この処理は繰り返される。
【０１４９】
ここで、端末装置２０２において、断片が蓄積していく過程を、図３、図４における端末装置２０２ｄでの処理フローを例に、以下説明する。
【０１５０】
端末装置２０２ｄがＢコンテンツを要求する要求メッセージを送信した場合、サーバ装置２０１は、既にコンテンツＢの断片ｂ４まで送信しているので、断片ｂ５を端末２０２ｄに送信する。
【０１５１】
サーバ装置２０１は、断片を送信する際には、断片メッセージとして、その断片自身と断片の分割元の配置位置情報とを含めて送信する。従って、端末装置２０２ｄで断片ｂ５を受信する際には、断片自体ｂ５と断片の位置情報、すなわち（ｂ５，5/8）というデータを受信し、蓄積部１００４に蓄積する。
【０１５２】
断片ｂ６は、受信ミスで、受信できないので、蓄積部１００４にはデータは蓄積されない。断片ｂ７は受信されるので、蓄積部９０４に、（ｂ７、7/8）というデータとして蓄積される。この時点は、蓄積部１００４には、（ｂ５、5/8）、（ｂ７、7/8)というデータが蓄積される。
【０１５３】
断片ｂ８も受信され、蓄積部１００４に、（ｂ８、8/8）というデータが蓄積される。
従って、蓄積部１００４には、（ｂ５，5/8）、（ｂ７，7/8）、（ｂ８，8/8）というデータが蓄積されることになる。
【０１５４】
断片は巡回的に送信されているので、続いて、断片ｂ１、断片ｂ２、断片ｂ３、断片ｂ４の順で断片メッセージが端末装置２０２ｄで受信されるので、この時点で蓄積部９０４には、（ｂ５，5/8）、（ｂ７，7/8）、（ｂ８，8/8）、（ｂ１，1/8）、（ｂ２、2/8）、（ｂ３、3/8）、（ｂ４、4/8）というデータが蓄積されることになる。
【０１５５】
端末装置２０２ｄは、受信ミスをしていなければ、この段階で全ての断片が揃うことになるが、断片ｂ６を受信していないので、更に受信を継続する。
すなわち、端末装置２０２ｄは、断片ｂ５，断片ｂ６の順で断片メッセージを受信するが、断片ｂ５は既に受信しているために蓄積部１００４には蓄積されず、断片ｂ６の断片メッセージ（ｂ６，6/8）のみが蓄積部１００４に蓄積される。
【０１５６】
この時点でコンテンツＢの断片は、全て揃うことになり、蓄積部１００４には、（ｂ５，5/8）、（ｂ７，7/8）、（ｂ８，8/8）、（ｂ１，1/8）、（ｂ２、2/8）、（ｂ３，3/8）、（ｂ４，4/8）、（ｂ６，6/8）というデータが蓄積されることになる。
【０１５７】
そして、蓄積部１００４に蓄積された各データは、断片それぞれに付与された位置情報に基づいて正式な順番に並び替えられる。すなわち、（ｂ１，1/8）、（ｂ２，2/8）、（ｂ３，3/8）、（ｂ４、4/8）、（ｂ５，5/8）、（ｂ６，6/8）、（ｂ７，7/8）、（ｂ８，8/8）と並び替えられ、コンテンツＢが復元される。
【０１５８】
尚、本実施形態では、端末装置２０２ｄを例に、蓄積部１００４におけるデータ蓄積過程を説明したが、他の端末装置２０２ａ、２０２ｂ、２０２ｃにおいても同様な処理が行われる。
【０１５９】
このように、端末装置２０２で、要求したデータを断片の状態で巡回的に受信することになるので、サーバ装置２０１の負担を軽減することができる。さらに、サーバ装置２０１が、端末装置２０２から送信される接続信号に基づいて、接続状況を常時確認できるので、両者間で無駄な通信を行うこと回避することができる。
【０１６０】
（変形例１）
通信状態が悪い等の原因で、断片を受信できなかった場合、上記の実施形態では、巡回的に送信される断片を繰り返し取得することで、未取得の断片を取得しているが、本変形例によれば、未取得の断片のみを個別に受信することもできる。以下に、その断片受信方法を説明する。
【０１６１】
端末装置２０２では、蓄積部１００４で断片の位置情報を蓄積しているので、一定期間内における断片受信個数と位置情報を確認することができる。例えば、コンテンツＢの断片をｂ１からｂ８まで取得した場合、全ての断片を取得していれば位置情報は1/8〜8/8まで揃い、端末装置２０２は、１００％の確率で断片を受信していることになる。
【０１６２】
一方、断片ｂ１からｂ８まで取得する間、断片ｂ３，ｂ５を受信できなかった場合には、位置情報3/8,5/8がないことがわかり、端末装置２０２は、３／４の確率で断片を受信していることがわかる。
【０１６３】
このように、一定期間内における断片個数と位置情報を確認することにより、その期間における通信状況が良好か否かを判断することができる。
従って、端末装置２０２は、一定値の受信確率以上であれば、通信状況が良好と判断して、サーバ装置２０１に対して、受信できなかった断片の再送を指示する。
指示を受信したサーバ装置２０１は、当該断片を個別に送信することになる。
【０１６４】
サーバ装置２０１が、当該断片を送信する際には、確実に送信する必要があるためコネクション型の通信プロトコルを使用することが望ましい。
【０１６５】
一方、受信確率が一定値以下である場合には、通信状況が良好ではないと判断され、端末装置２０２からの再送指示は行わない。この場合には、上記実施形態における送信方法であるＵＤＰ形式での断片送信を行うことになる。
【０１６６】
このように、本変形例によれば、サーバ装置と端末装置との間の通信状態が良好であれば、個別に未受信の断片を取得することができ、端末装置でのデータ復元を速やかに実行することができる。
【産業上の利用可能性】
【０１６７】
以上説明したように、ネットワーク経由で複数の端末で同一のデータを取得する際に、サーバの負担を軽減でき、データの伝送効率を向上させることができる配信システム、サーバ装置、端末装置、サービス方法、端末方法、並びにこれらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【０１６８】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
２００  配信システム
２０１  サーバ装置
２０２  端末装置
２０３  ネットワーク
５０１  要求受信部
５０２  追加部
５０３  記憶部
５０４  取得部
５０５  断片送信部
５０６  完了受信部
５０７  接続受信部
５０８  削除部
１００１  要求送信部
１００２  接続送信部
１００３  断片受信部
１００４  蓄積部
１００５  復元部
１００６  完了送信部
【図１】
0005250065.tif 000002
【図２】
0005250065.tif 000003
【図３】
0005250065.tif 000004
【図４】
0005250065.tif 000005
【図５】
0005250065.tif 000006
【図６】
0005250065.tif 000007
【図７】
0005250065.tif 000008
【図８】
0005250065.tif 000009
【図９】
0005250065.tif 000010
【図１０】
0005250065.tif 000011
【図１１】
0005250065.tif 000012