(57)【要約】  端末Ａの論理アドレス空間（ＬＳａ）の空きアドレスには、端末（Ｂ）の端末ＩＤおよび担当データ（Ｄｂ）へのファイルパス（ｆｐｂ）が設定される。これにより、端末（Ｂ）のファイルシステム（ＦＳｂ）が端末（Ａ）にマウントされることとなる。同様に、端末（Ｂ）の論理アドレス空間（ＬＳｂ）の空きアドレスには、端末（Ａ）の端末ＩＤおよび担当データ（Ｄａ）へのファイルパス（ｆｐａ）が設定される。これにより、端末（Ａ）のファイルシステム（ＦＳａ）が端末（Ｂ）にマウントされることとなる。
2012035665.tif 000002
【特許請求の範囲】
【請求項１】
アドホックネットワーク内で通信可能に接続されている第１の端末と第２の端末との間の通信帯域を検出する検出工程と、
前記検出工程によって検出された通信帯域と前記第１の端末の記憶装置に関する帯域とを比較する比較工程と、
前記比較工程によって比較された比較結果に基づいて、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
前記決定工程によって決定された運用方式を前記第１の端末から前記第２の端末に通知する通知工程と、
前記決定工程によって決定された運用方式に基づいて、前記第２の端末から前記第１の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第１の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
【請求項２】
前記比較工程は、
前記通信帯域と前記第１の端末の記憶装置のうち主記憶装置に関する帯域とを比較し、
前記決定工程は、
前記通信帯域が前記主記憶装置に関する帯域以上である場合、前記データ共有に関する運用方式を、前記第２の端末から前記第１の端末の主記憶装置へのアクセスを可能にし、かつ、前記第１の端末から前記第２の端末の主記憶装置へのアクセスする密結合方式に決定し、
前記設定工程は、
前記決定工程によって密結合方式に決定された場合、前記第２の端末から前記第１の端末の主記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする請求項１に記載のデータ共有プログラム。
【請求項３】
前記決定工程は、
前記通信帯域が前記主記憶装置に関する帯域以上でない場合、前記データ共有に関する運用方式を、前記第２の端末から前記第１の端末の補助記憶装置へのアクセスを可能にし、かつ、前記第１の端末から前記第２の端末の補助記憶装置へのアクセスする疎結合方式に決定し、
前記設定工程は、
前記決定工程によって疎結合方式に決定された場合、前記第２の端末から前記第１の端末の補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする請求項２に記載のデータ共有プログラム。
【請求項４】
前記比較工程は、
前記通信帯域と前記第１の端末の記憶装置のうち補助記憶装置に関する帯域とを比較して、前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲外で、かつ、前記通信帯域が前記補助記憶装置に関する帯域よりも大きかった場合、さらに、前記通信帯域と前記第１の端末の記憶装置のうち主記憶装置に関する帯域とを比較することを特徴とする請求項２または３に記載のデータ共有プログラム。
【請求項５】
前記第１の端末と前記第２の端末との相対距離を取得する取得工程と、
前記取得工程によって取得された相対距離が所定距離以内であるか否かを判断する判断工程を前記第１の端末のプロセッサに実行させ、
前記比較工程は、
前記判断工程によって前記所定距離以内であると判断された場合、前記通信帯域と前記第１の端末の記憶装置のうち主記憶装置に関する帯域とを比較することを特徴とする請求項２または３に記載のデータ共有プログラム。
【請求項６】
前記比較工程は、
前記通信帯域と前記第１の端末の記憶装置のうち補助記憶装置に関する帯域とを比較し、
前記決定工程は、
前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲内である場合、前記データ共有に関する運用方式を、前記第２の端末から前記第１の端末の補助記憶装置へのアクセスを可能にし、かつ、前記第１の端末から前記第２の端末の補助記憶装置へのアクセスする疎結合方式に決定し、
前記設定工程は、
前記決定工程によって疎結合方式に決定された場合、前記第２の端末から前記第１の端末の補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする請求項１に記載のデータ共有プログラム。
【請求項７】
前記比較工程は、
前記通信帯域と前記第１の端末の記憶装置のうち補助記憶装置に関する帯域とを比較し、
前記決定工程は、
前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲外で、かつ、前記通信帯域が前記補助記憶装置に関する帯域よりも大きい場合、前記データ共有に関する運用方式を、前記第２の端末から前記第１の端末の主記憶装置へのアクセスを可能にし、かつ、前記第１の端末から前記第２の端末の主記憶装置へのアクセスする密結合方式に決定し、
前記設定工程は、
前記決定工程によって密結合方式に決定された場合、前記第２の端末から前記第１の端末の主記憶装置および補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする請求項６に記載のデータ共有プログラム。
【請求項８】
前記決定工程は、
前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲外で、かつ、前記通信帯域が前記補助記憶装置に関する帯域よりも小さい場合、前記データ共有に関する運用方式を、前記第１および第２の端末が前記第１および第２の端末の記憶装置内のデータの取得元サーバにアクセスする分散方式に決定し、
前記設定工程は、
前記取得元サーバにアクセスして前記第２の記憶装置内のデータと同一のデータをダウンロード可能なプログラムを起動することを特徴とする請求項５または６に記載のデータ共有プログラム。
【請求項９】
前記第１の端末と前記第２の端末との相対距離を取得する取得工程と、
前記取得工程によって取得された相対距離が所定距離以内であるか否かを判断する判断工程を前記第１の端末のプロセッサに実行させ、
前記比較工程は、
前記判断工程によって前記所定距離以内であると判断された場合、前記通信帯域と前記第１の端末の記憶装置のうち補助記憶装置に関する帯域とを比較することを特徴とする請求項６または７に記載のデータ共有プログラム。
【請求項１０】
前記第１の端末と前記第２の端末との相対距離を取得する取得工程と、
前記取得工程によって取得された相対距離が所定距離以内であるか否かを判断する判断工程を前記第１の端末のプロセッサに実行させ、
前記決定工程は、
前記判断工程によって前記所定距離以内でないと判断された場合、前記比較工程を実行せずに、または、前記比較工程によって比較された比較結果にかかわらず、前記データ共有に関する運用方式を、前記第１および第２の端末が前記第１および第２の端末の記憶装置内のデータの取得元サーバにアクセスする分散方式に決定し、
前記設定工程は、
前記取得元サーバにアクセスして前記第２の記憶装置内のデータと同一のデータをダウンロード可能なプログラムを起動することを特徴とする請求項１〜３，６または７に記載のデータ共有プログラム。
【請求項１１】
アドホックネットワーク内で通信可能に接続されている第１および第２の端末のうち前記第１の端末から、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付工程と、
前記受付工程によって受け付けられた運用方式に基づいて、前記第１の端末から前記第２の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第２の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
【請求項１２】
前記設定工程は、
前記受付工程によって、前記第２の端末から前記第１の端末の主記憶装置へのアクセスを可能にし、かつ、前記第１の端末から前記第２の端末の主記憶装置へのアクセスする密結合方式が受け付けられた場合、前記第１の端末から前記第２の端末の主記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする請求項１１に記載のデータ共有プログラム。
【請求項１３】
前記設定工程は、
前記受付工程によって、前記第２の端末から前記第１の端末の補助記憶装置へのアクセスを可能にし、かつ、前記第１の端末から前記第２の端末の補助記憶装置へのアクセスする疎結合方式が受け付けられた場合、前記第１の端末から前記第２の端末の補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする請求項１１に記載のデータ共有プログラム。
【請求項１４】
前記設定工程は、
前記受付工程によって、前記第１および第２の端末が前記第１および第２の端末の記憶装置内のデータの取得元サーバにアクセスする分散方式が受け付けられた場合、前記取得元サーバにアクセスして前記第１の記憶装置内のデータと同一のデータをダウンロード可能なプログラムを起動することを特徴とする請求項１１に記載のデータ共有プログラム。
【請求項１５】
第１の端末とコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報をアドホック通信により前記第２の端末から取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記特定工程によって特定された前記第２の区間をアドホック通信により前記第２の端末に送信するとともに、前記第１の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第１の区間内のデータを前記サーバから受信する受信工程と、
前記受信工程によって受信された前記第１の区間内のデータを前記第１の端末の記憶装置に格納する格納工程と、
を前記第１の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
【請求項１６】
前記第１の端末とコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第２の端末と前記サーバとの第２の通信速度情報をアドホック通信により前記第２の端末から取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記特定工程によって特定された前記第２の区間をアドホック通信により前記第２の端末に送信するとともに、前記第１の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第１の区間内のデータを前記サーバから受信する受信工程と、
前記受信工程によって受信された前記第１の区間内のデータを前記第１の端末の記憶装置に格納する格納工程と、を前記第１の端末のプロセッサに実行させ、
前記決定工程は、
前記比較工程によって比較された比較結果に基づいて、前記格納工程によって前記第１の端末の記憶装置に格納された第１の区間内のデータと前記第２の端末の記憶装置に格納された前記第２の区間内のデータとのデータ共有に関する運用方式を決定することを特徴とする請求項１〜３，６または７に記載のデータ共有プログラム。
【請求項１７】
第１の端末とコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報を取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記第１の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第１の区間内のデータを前記第１の端末に送信するとともに、前記第２の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第２の区間内のデータを前記第２の端末に送信する送信工程と、
を前記サーバのプロセッサに実行させることを特徴とするデータ配信プログラム。
【請求項１８】
アドホックネットワーク内で通信可能に接続されている自端末と他端末との間の通信帯域を検出する検出手段と、
前記検出手段によって検出された通信帯域と前記自端末の記憶装置に関する帯域とを比較する比較手段と、
前記比較手段によって比較された比較結果に基づいて、前記自端末の記憶装置内のデータと前記他端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定手段と、
前記決定手段によって決定された運用方式を前記自端末から前記他端末に通知する通知手段と、
前記決定手段によって決定された運用方式に基づいて、前記他端末から前記自端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定手段と、
を備えることを特徴とする端末。
【請求項１９】
アドホックネットワーク内で自端末と通信可能に接続されている他端末から、前記他端末の記憶装置内のデータと前記自端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付手段と、
前記受付手段によって受け付けられた運用方式に基づいて、前記他端末から前記自端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定手段と、
を備えることを特徴とする端末。
【請求項２０】
コンテンツを選択する選択手段と、
自端末と前記選択手段によって選択されたコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記自端末とアドホック通信される他端末と前記サーバとの第２の通信速度情報をアドホック通信により前記他端末から取得する取得手段と、
前記取得手段によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記自端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記他端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定手段と、
前記特定手段によって特定された前記第２の区間をアドホック通信により前記他端末に送信するとともに、前記第１の区間を含むダウンロード要求を前記サーバに送信する送信手段と、
前記送信手段によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第１の区間内のデータを前記サーバから受信する受信手段と、
前記受信手段によって受信された前記第１の区間内のデータを前記自端末の記憶装置に格納する格納手段と、
を備えることを特徴とする端末。
【請求項２１】
第１の端末との第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末との第２の通信速度情報を取得する取得手段と、
前記取得手段によって取得された第１および第２の通信速度情報に基づいて、コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定手段と、
前記第１の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定手段によって特定された前記第１の区間内のデータを前記第１の端末に送信するとともに、前記第２の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定手段によって特定された前記第２の区間内のデータを前記第２の端末に送信する送信手段と、
を備えることを特徴とするサーバ。
【請求項２２】
アドホックネットワーク内で通信可能に接続されている第１の端末と第２の端末との間の通信帯域を検出する検出工程と、
前記検出工程によって検出された通信帯域と前記第１の端末の記憶装置に関する帯域とを比較する比較工程と、
前記比較工程によって比較された比較結果に基づいて、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
前記決定工程によって決定された運用方式を前記第１の端末から前記第２の端末に通知する通知工程と、
前記決定工程によって決定された運用方式に基づいて、前記第２の端末から前記第１の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第１の端末が実行することを特徴とするデータ共有方法。
【請求項２３】
アドホックネットワーク内で通信可能に接続されている第１および第２の端末のうち前記第１の端末から、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付工程と、
前記受付工程によって受け付けられた運用方式に基づいて、前記第１の端末から前記第２の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第２の端末が実行することを特徴とするデータ共有方法。
【請求項２４】
コンテンツを選択する選択工程と、
第１の端末と前記選択工程によって選択されたコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報をアドホック通信により前記第２の端末から取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記特定工程によって特定された前記第２の区間をアドホック通信により前記第２の端末に送信するとともに、前記第１の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第１の区間内のデータを前記サーバから受信する受信工程と、
前記受信工程によって受信された前記第１の区間内のデータを前記第１の端末の記憶装置に格納する格納工程と、
を前記第１の端末が実行することを特徴とするデータ共有方法。
【請求項２５】
第１の端末とコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報を取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記第１の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第１の区間内のデータを前記第１の端末に送信するとともに、前記第２の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第２の区間内のデータを前記第２の端末に送信する送信工程と、
を前記サーバが実行することを特徴とするデータ配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを共有、配信するデータ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法に関する。
【背景技術】
【０００２】
従来、デジタルカメラのデータをサーバへ転送する時に複数のデジタルカメラにデータを分割して割り当て各デジタルカメラがサーバに担当部分のデータを転送する技術が開示されている（たとえば、下記特許文献１を参照。）。【０００３】
また、分散メモリ型計算機における並列データベースへの問い合わせ並列処理において、他ノードのデータベースへのアクセスが生じた際にノード間のデータ転送量を削減する技術が開示されている（たとえば、下記特許文献２を参照。）。【０００４】
また、アドホック通信しか使用できない状況で離れた端末へデータ通信を実現する技術や、要求しているデータを持つ携帯端末が複数存在する場合に、最も距離の近い端末からデータ転送を可能にする技術が開示されている（たとえば、下記特許文献３，４を参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−６６０６１号公報
【特許文献２】特開２００７−５３１０８７号公報
【特許文献３】特開２００７−３３６３６０号公報
【特許文献４】特開２００４−６４６４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術を用いて、複数の携帯端末（たとえば、携帯端末Ａ〜Ｃ）間でデータ共有を行う場合、携帯端末Ａは、携帯端末Ｂが有するデータＤｂを利用したいときは、端末Ｂから端末ＡにデータＤｂを送信する必要がある。同様に、携帯端末Ａは、携帯端末Ｃが有するデータＤｃを利用したいときは、携帯端末Ｃから携帯端末ＡにデータＤｃを送信する必要がある。【０００７】
したがって、携帯端末Ａのユーザは、データＤｂ，Ｄｃを利用したいときでも、携帯端末Ａから携帯端末Ｂ，ＣのデータＤｂ，Ｄｃにアクセスすることができず、データ共有について使い勝手が悪いというという問題があった。【０００８】
このようなデータ共有についての使い勝手の悪さは、携帯端末Ａが有するデータＤａや携帯端末Ｃが有するデータＤｃを携帯端末Ｂが利用する場合や、携帯端末Ａが有するデータＤａや携帯端末Ｂが有するデータＤｂを携帯端末Ｃが利用する場合についても同様である。【０００９】
また、データＤａ〜Ｄｃがサーバに存在する場合、携帯電話網を介してサーバにアクセスすることで、携帯端末Ａ〜ＣはデータＤａ〜Ｄｃをダウンロードすることができる。【００１０】
しかしながら、携帯電話網における基地局の帯域は決まっており、基地局に接続されている携帯端末でシェアすることになる。そのため、基地局に接続している携帯端末が増加するほど、携帯端末１台当たりの使用帯域が減少してしまうこととなる。したがって、携帯端末Ａ〜Ｃごとに、全データＤａ〜Ｄｃをダウンロードする場合、ダウンロード時間が長くなってしまうという問題があった。【００１１】
また、各携帯端末Ａ〜Ｃが全データＤａ〜Ｄｃをダウンロードするため、データＤａ〜Ｄｃの総データ量が巨大な場合、メモリ不足によりダウンロードできなくなるという問題があった。【００１２】
本発明は、上述した従来技術による問題点を解消するため、複数の端末間で効率的なデータ共有を実現することができるデータ共有プログラム、端末、およびデータ共有方法を提供することを目的とする。また、複数の端末間でデータ共有を実現するために、各端末の担当分のデータを効率的にダウンロードすることができるデータ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、アドホックネットワーク内で通信可能に接続されている第１の端末と第２の端末との間の通信帯域を検出し、検出された通信帯域と前記第１の端末の記憶装置に関する帯域とを比較し、比較結果に基づいて、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定し、決定された運用方式を前記第１の端末から前記第２の端末に通知し、決定された運用方式に基づいて、前記第２の端末から前記第１の端末の記憶装置へのアクセスを可能にするマウント処理を実行するデータ共有プログラム、端末、およびデータ共有方法が、一例として提案される。【００１４】
また、第１の端末とコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報を取得し、取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定し、前記第１の端末からのダウンロード要求があった場合、前記コンテンツのうち特定された前記第１の区間内のデータを前記第１の端末に送信するとともに、前記第２の端末からのダウンロード要求があった場合、前記コンテンツのうち特定された前記第２の区間内のデータを前記第２の端末に送信するデータ配信プログラム、サーバ、およびデータ配信方法が、一例として提案される。
【発明の効果】
【００１５】
上記データ共有プログラム、端末、およびデータ共有方法によれば、複数の端末間で効率的なデータ共有を実現することができるという効果を奏する。また、上記データ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法によれば、複数の端末間でデータ共有を実現するために、各端末の担当分のデータを効率的にダウンロードすることができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態にかかるデータ共有システムのシステム構成例を示す説明図である。
【図２】サーバのハードウェア構成例を示すブロック図である。
【図３】端末のハードウェア構成例を示すブロック図である。
【図４】アドホック通信の接続処理のシーケンスを示す説明図である。
【図５】図４に示した接続処理（ステップＳ４０２、Ｓ４０３、Ｓ４０７）の詳細な処理手順を示す説明図である。
【図６】マスタ端末Ａでのダウンロード画面を示す説明図である。
【図７】ダウンロード処理のシーケンスを示す説明図である。
【図８】担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。
【図９】ダウンロード区間算出処理（ステップＳ８０４）の詳細な処理手順を示すフローチャートである。
【図１０】運用方式設定シーケンスを示す説明図である。
【図１１】図１０に示した運用方式決定処理（ステップＳ１００６）の詳細な処理手順を示すフローチャートである。
【図１２】図１０に示した接続元端末での運用方式設定処理（ステップＳ１００８）の詳細な処理手順を示すフローチャートである。
【図１３】図１０に示した接続先端末での運用方式設定処理（ステップＳ１００９）の詳細な処理手順を示すフローチャートである。
【図１４】端末Ａおよび端末Ｂにおいてそれぞれ担当データＤａ，Ｄｂをダウンロードした状態を示す説明図である。
【図１５】図１４に示した状態から、端末Ａを接続元端末、端末Ｂを接続先端末として疎結合した状態を示す説明図である。
【図１６】図１５による疎結合設定後におけるデータアクセスを示す説明図（その１）である。
【図１７】図１５による疎結合設定後におけるデータアクセスを示す説明図（その２）である。
【図１８】端末Ａおよび端末Ｂにおいてそれぞれ担当データＤａ，Ｄｂをダウンロードした状態を示す説明図である。
【図１９】図１８に示した状態から、端末Ａを接続元端末、端末Ｂを接続先端末として密結合した状態を示す説明図である。
【図２０】図１９による密結合設定後におけるデータアクセスを示す説明図（その１）である。
【図２１】図１９による密結合設定後におけるデータアクセスを示す説明図（その２）である。
【図２２】端末間のデータアクセス処理のシーケンスを示す説明図である。
【図２３】図２２に示した端末間データアクセス処理（ステップＳ２２０８）の詳細な処理手順を示すシーケンス図（その１）である。
【図２４】図２２に示した端末間データアクセス処理（ステップＳ２２０８）の詳細な処理手順を示すシーケンス図（その２）である。
【図２５】担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。
【図２６】図２５に示したダウンロード区間算出処理（ステップＳ２５０５）の詳細な処理手順を示すフローチャートである。
【図２７】担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。
【図２８】図２７に示したダウンロード区間算出処理（ステップＳ２７０４）の詳細な処理手順を示すフローチャートである。
【図２９】担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。
【図３０】図２９に示したダウンロード区間算出処理（ステップＳ２９０５）の詳細な処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照して、本発明の実施の形態を詳細に説明する。
【００１８】
＜システム構成例＞
図１は、本発明の実施の形態にかかるデータ共有システムのシステム構成例を示す説明図である。図１のデータ共有システム１００では、複数（例として３台）の端末Ａ〜Ｃが、基地局１０１およびネットワーク１０３を介してサーバ１０２と交信可能に接続されている。端末Ａ〜Ｃは、無線通信可能な携帯型のコンピュータであり、たとえば、携帯電話機、スマートフォン、電子辞書、タブレット型端末、携帯ゲーム機などがある。
【００１９】
また、各端末Ａ〜Ｃは、サーバ１０２がネットワーク１０３内の携帯電話網にある場合は、基地局１０１および携帯電話網を介してサーバ１０２にアクセスすることとなる。サーバ１０２がネットワーク１０３内のインターネット網にある場合は、各端末Ａ〜Ｃは、基地局１０１、携帯電話網、インターネット網を介して、サーバ１０２にアクセスすることとなる。各端末Ａ〜Ｃは、端末間でアドホック通信可能である。また、各端末Ａ〜Ｃは、ＧＰＳ衛星１０４からの信号を受信することで、現在位置情報を取得することもできる。
【００２０】
サーバ１０２は、映像、ゲーム、地図といったデータＤを記憶しており、端末Ａ〜Ｃからのダウンロード要求に応じて、ダウンロード要求元の端末にダウンロードする。なお、図１では、サーバ１０２はダウンロード要求の受付処理と、データを記憶しダウンロードする処理とを実行するが、ダウンロード要求の受付処理と、データを記憶しダウンロードする処理とを、異なるサーバ１０２で実行してもよい。
【００２１】
この場合、ダウンロード要求の受付処理を実行する第１のサーバは、データＤを記憶しダウンロードする処理を実行する第２のサーバに、受け付けたダウンロード要求を送信する。第２のサーバは、受信したダウンロード要求によりダウンロード要求元とダウンロード対象となるデータを特定して、ダウンロード要求元の端末にダウンロードする。
【００２２】
このようなデータ共有システム１００において、各端末Ａ〜Ｃは、サーバ１０２からデータＤを分割ダウンロードする。各端末Ａ〜Ｃがダウンロードした分割データを担当データと称す。担当データＤａ〜Ｄｃは、それぞれ異なるデータである。各端末Ａ〜Ｃは、アドホック通信により、データＤのうち自端末でダウンロードしなかった他端末の担当データにアクセスすることができる。たとえば、端末Ａは、アドホック通信により担当データＤｂ，Ｄｃにアクセスすることができる。
【００２３】
これにより、各端末Ａ〜Ｃは、相互にアドホック通信により接続されているため、他端末に記憶されている担当データに自端末からアクセスすることができる。また、各端末Ａ〜Ｃは全データＤａ〜Ｄｃをダウンロードする必要がないため、ダウンロード時間の短縮化を図ることができ、メモリ不足に陥ることも低減されることとなる。
【００２４】
＜ハードウェア構成＞
図２は、サーバ１０２のハードウェア構成例を示すブロック図である。図２において、サーバ１０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、磁気ディスクドライブ２０４と、磁気ディスク２０５と、光ディスクドライブ２０６と、光ディスク２０７と、ディスプレイ２０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００２５】
ここで、ＣＰＵ２０１は、サーバ１０２の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。磁気ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがって磁気ディスク２０５に対するデータのリード／ライトを制御する。磁気ディスク２０５は、磁気ディスクドライブ２０４の制御で書き込まれたデータを記憶する。
【００２６】
光ディスクドライブ２０６は、ＣＰＵ２０１の制御にしたがって光ディスク２０７に対するデータのリード／ライトを制御する。光ディスク２０７は、光ディスクドライブ２０６の制御で書き込まれたデータを記憶したり、光ディスク２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２７】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２８】
インターフェース（以下、「Ｉ／Ｆ」と略する。）２０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１４に接続され、このネットワーク２１４を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２９】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３０】
スキャナ２１２は、画像を光学的に読み取り、サーバ１０２内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３１】
図３は、端末のハードウェア構成例を示すブロック図である。図３において、端末Ａ〜Ｃは、プロセッサ３０１と、メモリ３０２と、ストレージ３０３と、表示装置３０４と、入力装置３０５と、ＧＰＳレシーバ３０６と、通信Ｉ／Ｆ３０７と、複数（図３では２個）の通信モジュール３０８と、を備える。また、各構成部はバス３０９によってそれぞれ接続されている。
【００３２】
ここで、プロセッサ３０１は、端末の全体の制御を司る。メモリ３０２は、ＣＰＵ２０１のワークエリアとして使用される主記憶装置である。メモリ３０２としては、揮発性メモリまたは不揮発性メモリを採用することができる。ストレージ３０３は、ＯＳやアプリケーションその他プログラムや、各種データ、ファイルシステムを保存する補助記憶装置である。ストレージ３０３としては、不揮発性メモリやハードディスクを採用することができる。
【００３３】
表示装置３０４は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示するディスプレイである。入力装置３０５は、ユーザ操作により文字、数字、各種指示などを入力する。入力装置３０５としては、キーボード、テンキー、タッチパネルなどが採用される。
【００３４】
ＧＰＳレシーバ３０６は、ＧＰＳ衛星１０４からの信号を受信して、自端末の現在位置情報を取得する。通信Ｉ／Ｆ３０７は、基地局１０１を介して携帯電話網に接続するインターフェースであり、図１に示したネットワーク１０３を介してサーバ１０２と通信可能に接続する。通信モジュール３０８は、他の端末とアドホック通信をおこなうインターフェースである。図３では、例として２個用意されているため、最大で２台の端末と同時にアドホック通信をおこなうことができる。
【００３５】
なお、通信モジュール３０８の個数は、３個以上でもよい。なお、複数の端末間で相互にアドホック通信をおこなう場合は、各端末には、（端末数−１）個の通信モジュール３０８が必要となる。たとえば、５台の端末間で相互にアドホック通信をおこなう場合は、各端末には、４（＝５−１）個の通信モジュール３０８が必要となる。
【００３６】
＜端末間の相互接続処理＞
つぎに、端末間の相互接続について説明する。本実施の形態では、データを共有しあう複数の端末のうちある端末がマスタ宣言をおこなう。マスタ宣言をおこなった端末（マスタ端末）は、他の端末とそれぞれアドホック通信の接続処理をおこなう。マスタ端末を除く残余の端末間では、アドホック通信の接続処理が完了していないため、マスタ端末からの指示により、残余の端末間でアドホック通信の接続処理をおこなうこととなる。
【００３７】
図４は、アドホック通信の接続処理のシーケンスを示す説明図である。図４では、例として端末Ａをマスタ端末とするが、端末Ｂや端末Ｃがマスタ端末になってもよい。まず、端末Ａは、マスタ宣言処理をする（ステップＳ４０１）。マスタ宣言処理によりマスタ端末となった端末Ａ（マスタ端末Ａ）は、端末Ｂ，Ｃとの接続処理を実行する（ステップＳ４０２、Ｓ４０３）。端末Ｂ，Ｃとの接続処理（ステップＳ４０２、Ｓ４０３）の詳細については後述する。
【００３８】
このあと、マスタ端末Ａは、グループ内端末を特定する（ステップＳ４０４）。グループとは、データ共有しあう端末群であり、具体的には、図４の例では、マスタ端末Ａとマスタ端末Ａがアドホック通信の接続処理ができた端末Ｂ，Ｃからなる。
【００３９】
すなわち、マスタ端末Ａは、接続処理による接続先の端末Ｂ，Ｃを特定する。この特定は、接続先の端末Ｂ，Ｃどうしでアドホック通信の接続処理を実行させるためである。このあと、マスタ端末Ａは、接続先の端末Ｂ，Ｃのうち端末Ｂに対して端末Ｃとのアドホック通信の接続指示を通知する（ステップＳ４０５）。
【００４０】
そして、接続指示の通知を受けた端末Ｂは、接続要求先を特定する（ステップＳ４０６）。この場合は、接続要求先は端末Ｃのみとなるため、端末Ｂは、端末Ｃとの接続処理を実行する（ステップＳ４０７）。この接続処理（ステップＳ４０７）の詳細についても後述する。
【００４１】
また、仮に、端末Ｄ（不図示）がグループ内端末として特定されていたとすると、Ｓ４０６での接続要求先端末は端末Ｃ、Ｄとなり、端末Ｂは、端末Ｃとの接続処理と、端末Ｄとの接続処理を実行することとなる。この場合、端末Ａは、端末Ｃに対しても、接続指示を通知し（ステップＳ４０５）、端末Ｃは、要求先特定（ステップＳ４０６）をして接続要求先として端末Ｄを特定する。そして、端末Ｃは、端末Ｄとの接続処理を実行することとなる（ステップＳ４０７）。
【００４２】
端末Ｂが端末Ｃとの接続処理を完了させると、端末Ｂは、マスタ端末Ａに完了通知を送信する（ステップＳ４０８）。完了通知を受け取ると、マスタ端末Ａは、グループ内端末の端末ＩＤを設定する（ステップＳ４０９）。端末ＩＤは、グループ内端末に対して割り当てられる固有の識別情報である。たとえば、マスタ端末Ａの端末ＩＤは０、端末Ｂは１、端末Ｃは２というように、マスタ端末を０として０から始まる連続番号とする。
【００４３】
そして、マスタ端末Ａは、アドホック通信により、端末Ｂ，Ｃに、端末ＩＤおよび端末総数を送信する（ステップＳ４１０）。端末総数とは、グループ内端末の総数である。この場合は、端末Ａ〜Ｃであるため、端末総数は３である。したがって、端末Ｂには、端末ＩＤ：１および端末総数：３を送信する。また、端末Ｃには、端末ＩＤ：２および端末総数：３を送信することとなる。
【００４４】
図５は、図４に示した接続処理（ステップＳ４０２、Ｓ４０３、Ｓ４０７）の詳細な処理手順を示す説明図である。図５では、接続要求する端末を「要求元端末」、接続要求先となる端末を「要求先端末」とする。したがって、ステップＳ４０２では、要求元端末がマスタ端末Ａ、要求先端末が端末Ｂとなる。また、ステップＳ４０３では、要求元端末がマスタ端末Ａ、要求先端末が端末Ｃとなる。さらに、ステップＳ４０７では、要求元端末が端末Ｂ、要求先端末が端末Ｃとなる。
【００４５】
まず、要求元端末は、接続要求を要求先端末に送信する（ステップＳ５０１）。ステップＳ４０２、Ｓ４０３の場合は、マスタ端末Ａのマスタ宣言処理（ステップＳ４０１）が接続要求のトリガとなる。ステップＳ４０７の場合は、要求先特定（ステップＳ４０６）が接続要求のトリガとなる。
【００４６】
要求先端末は、接続要求を受信すると、応答処理を実行する（ステップＳ５０２）。そして、要求先端末は、要求元端末に対し、アドホック通信の接続許可／不許可通知を送信する。
【００４７】
要求元端末は、要求先端末からの接続許可／不許可通知を受信して、アドホック通信の接続が許可であるか不許可であるかを判断する（ステップＳ５０３）。許可である場合（ステップＳ５０３：Ｙｅｓ）、セッション確立となり（ステップＳ５０４）、接続元端末と接続先端末との間でアドホック通信が可能となる。一方、不許可である場合（ステップＳ５０３：Ｎｏ）、セッションが確立しない。この場合、再度同じ要求先端末に対してリトライするか、要求先端末を変えてリトライすることとなる。
【００４８】
＜各端末でのダウンロード処理＞
つぎに、各端末でのダウンロード処理について説明する。本実施の形態では、対象となるデータを端末総数で分割してダウンロードする。各端末でダウンロードされるデータを「担当データ」と称す。どのデータをダウンロードするかは、マスタ端末Ａがサーバ１０２にアクセスして決めることとする。
【００４９】
図６は、マスタ端末Ａでのダウンロード画面を示す説明図である。（Ａ）は、ダウンロード対象となるコンテンツのジャンルを指定する画面である。ここで、たとえば、「映画」を選択したとする。（Ｂ）は、（Ａ）において「映画」を選択した場合の遷移画面である。「映画」を選択すると、つぎは、各種コンテンツの中からダウンロードしたいコンテンツを選択する。ここでは、例として、「７７人の侍」を選択したとする。
【００５０】
つぎに、ダウンロード画面は、（Ｃ）に遷移する。（Ｃ）では、マスタ端末Ａの担当データがダウンロードされる。ダウンロードが完了すると、（Ｄ）に遷移する。なお、マスタ端末Ａ以外の端末Ｂ，Ｃについては、（Ｂ）で指定されたコンテンツ「７７人の侍」が保存されているＵＲＬがマスタ端末Ａから通知され、コンテンツ「７７人の侍」の中の担当データがダウンロードされることとなる。
【００５１】
図７は、ダウンロード処理のシーケンスを示す説明図である。まず、マスタ端末Ａは、サーバ１０２にアクセスして、図６の（Ｂ）のように選択したコンテンツに関するファイル（対象ファイル）のＵＲＬを取得する（ステップＳ７０１）。
【００５２】
そして、マスタ端末Ａは、取得したＵＲＬを端末Ｂ，Ｃにアドホック通信により通知する（ステップＳ７０２）。このあと、マスタ端末Ａは、サーバ１０２にアクセスして、マスタ端末Ａの担当データのダウンロード処理を実行する（ステップＳ７０３）。
【００５３】
また、ステップＳ７０２でＵＲＬの通知を受けた端末Ｂは、サーバ１０２にアクセスして、端末Ｂの担当データのダウンロード処理を実行する（ステップＳ７０４）。そして、端末Ｂは、ダウンロード完了後に、担当データのダウンロードの完了通知をマスタ端末Ａに送信する（ステップＳ７０５）。
【００５４】
また、ステップＳ７０２でＵＲＬの通知を受けた端末Ｃは、サーバ１０２にアクセスして、端末Ｃの担当データのダウンロード処理を実行する（ステップＳ７０６）。そして、端末Ｃは、ダウンロード完了後に、担当データのダウンロードの完了通知をマスタ端末Ａに送信する（ステップＳ７０７）。
【００５５】
図８は、担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。図８において、サーバ１０２にアクセスして担当データをダウンロードする端末を「担当端末」と称す。したがって、マスタ端末Ａも端末Ｂ，Ｃも担当端末である。
【００５６】
担当端末は、まず、取得または通知を受けたサーバ１０２のＵＲＬにしたがって、サーバ１０２に対しＷｅｂページ要求を送信する（ステップＳ８０１）。サーバ１０２は、Ｗｅｂページ要求を受け付けると、担当端末に対し、Ｗｅｂページを送信する（ステップＳ８０２）。そして、担当端末は、Ｗｅｂページから対象ファイルを選択する（ステップＳ８０３）。具体的には、たとえば、マスタ端末Ａの場合、図６に示した（Ａ）、（Ｂ）のように対象ファイル（コンテンツ：「７７人の侍」）を選択する。一方、端末Ｂ，Ｃの場合、マスタ端末Ａにより対象ファイルが決められているため、対象ファイルは選択しない。
【００５７】
このあと、担当端末は、ダウンロード区間算出処理を実行する（ステップＳ８０４）。ダウンロード区間算出処理（ステップＳ８０４）の詳細については後述する。ダウンロード区間算出処理（ステップＳ８０４）によりダウンロード区間が算出されると、担当端末は、サーバ１０２に対しダウンロード要求およびダウンロード区間Ｉ（ｋ）を送信する。
【００５８】
サーバ１０２は、担当端末からダウンロード要求およびダウンロード区間Ｉ（ｋ）を受信すると、受信したダウンロード区間Ｉ（ｋ）の担当データが対象ファイルの中に存在するか否かを判断する（ステップＳ８０５）。存在する場合（ステップＳ８０５：Ｙｅｓ）、サーバ１０２は、ダウンロード区間Ｉ（ｋ）で規定される担当データを担当端末に送信する（ステップＳ８０６）。担当端末は、サーバ１０２から送信されてくる担当データを内部の記憶装置（メモリ３０２またはファイルシステム）に格納する（ステップＳ８０７）。
【００５９】
一方、ステップＳ８０５において、受信したダウンロード区間Ｉ（ｋ）の担当データが対象ファイルの中に存在しない場合（ステップＳ８０５：Ｎｏ）、サーバ１０２は、完了通知を担当端末に送信する（ステップＳ８０８）。これにより、担当データのダウンロード処理を終了する。
【００６０】
図９は、ダウンロード区間算出処理（ステップＳ８０４）の詳細な処理手順を示すフローチャートである。まず、担当端末は、ダウンロード区間Ｉ（ｋ）のダウンロード開始位置ｓｔａｒｔ（ｋ）をｓｔａｒｔ（ｋ）＝ｋ×Ｓとする（ステップＳ９０１）。また、担当端末は、ダウンロード区間Ｉ（ｋ）のダウンロード終了位置ｅｎｄ（ｋ）をｅｎｄ（ｋ）＝ｓｔａｒｔ（ｋ）＋Ｓ−１とする（ステップＳ９０２）。
【００６１】
ここで、ｋの初期値は、担当端末の端末ＩＤである。Ｓはシークサイズである。シークサイズＳはあらかじめ決めておく。そして、担当端末は、ダウンロード要求およびダウンロード区間Ｉ（ｋ）をサーバ１０２に送信する（ステップＳ９０３）。このあと、ｋにｎ(端末数)を加算してｋを更新し（ステップＳ９０４）、ステップＳ９０１に戻る。
【００６２】
＜運用方式設定処理＞
つぎに、運用方式設定処理について説明する。運用方式とは、各端末にダウンロードされたデータを共有しあう方式である。運用方式には、分散方式、疎結合方式、密結合方式の３種類ある。分散方式とは、各端末が、サーバ１０２に対し担当データ以外のデータについてダウンロード要求をして、担当データ以外のデータをダウンロードする方式である。
【００６３】
疎結合方式および密結合方式は、ともに、アドホック通信により他端末がダウンロードした担当データにアクセスする方式である。特に、疎結合方式は、アドホック通信により他端末がダウンロードした担当データを記憶する他端末のファイルシステムにアクセスする方式である。
【００６４】
具体的には、自端末から他端末の担当データを指定する論理アドレスを、他端末のファイルシステムでのファイルパスで指定される担当データの物理アドレスに変換（論物変換）することで、他端末の担当データにアクセスする方式である。
【００６５】
また、密結合方式は、担当データ以外のデータ（他端末から見れば担当データ）をダウンロードした端末内のメモリ３０２にアクセスする方式である。具体的には、自端末から他端末の担当データを指定する論理アドレスを、他端末のメモリ３０２上の担当データを指定する論理アドレスに変換（論論変換）することで、他端末の担当データにアクセスする方式である。この場合、他端末では、変換された論理アドレスを担当データの物理アドレスに変換（論物変換）することで、担当データにアクセスすることとなる。
【００６６】
図１０は、運用方式設定シーケンスを示す説明図である。アドホック通信の接続元端末および接続先端末ともに、一定時間経過するのを待ち受け（ステップＳ１００１：Ｎｏ）、一定時間経過した場合（ステップＳ１００１：Ｙｅｓ）、ＧＰＳレシーバ３０６で受信したデータを用いて自端末の現在位置を示す座標情報を更新して（ステップＳ１００２）、ステップＳ１００１に戻る。
【００６７】
このように接続元端末および接続先端末の現在位置を示す座標情報がリアルタイムで更新される状況下で、接続元端末は、接続先端末の座標情報取得要求を接続先端末に送信する（ステップＳ１００３）。接続先端末は、座標情報取得要求を受信すると、接続先端末の最新の座標情報を接続元端末に送信する（ステップＳ１００４）。
【００６８】
接続元端末は、接続先端末の座標情報を受信すると、接続先端末との相対距離を算出する（ステップＳ１００５）。そして、接続元端末は、運用方式決定処理を実行する（ステップＳ１００６）。運用方式決定処理（ステップＳ１００６）の詳細については後述する。そして、接続元端末は、決定された運用方式を接続先端末に通知する（ステップＳ１００７）。
【００６９】
その後、接続元端末は、接続元端末での運用方式設定処理を実行し（ステップＳ１００８）、接続先端末は、接続先端末での運用方式設定処理を実行する（ステップＳ１００９）。各運用方式設定処理（ステップＳ１００８、Ｓ１００９）の詳細については後述するが、接続元端末および接続先端末の現在位置を示す座標情報がリアルタイムで更新される。したがって、運用方式は動的に変更されることとなり、状況に応じて最適な運用方式に決定されることとなる。
【００７０】
図１１は、図１０に示した運用方式決定処理（ステップＳ１００６）の詳細な処理手順を示すフローチャートである。まず、この運用方式決定処理（ステップＳ１００６）では、端末間の相対距離や通信帯域Ｒｔとストレージ帯域Ｒｓ／メモリ帯域Ｒｍとの比較結果に応じて接続元端末と接続先端末との運用方式が決定される。なお、通信帯域Ｒｔの比較においては、ある程度のレンジ（本例では±ΔＲｔ）を持たせることとする。また、ストレージ帯域Ｒｓ／メモリ帯域Ｒｍは、自端末内のメモリ３０２またはストレージ３０３に記憶されているものとする。
【００７１】
まず、接続元端末は、座標情報取得期間の通信帯域Ｒｔを検出する（ステップＳ１１０１）。そして、接続元端末は、接続元端末の座標情報と接続先端末の座標情報とで求められる相対距離が所定距離以内か否かを判断する（ステップＳ１１０２）。
【００７２】
所定距離以内でない場合（ステップＳ１１０２：Ｎｏ）、接続元端末は、接続元端末と接続先端末との間の運用方式を分散方式に決定する（ステップＳ１１０３）。そして、接続元端末は、決定された運用方式を接続先端末に通知する（ステップＳ１１０４）。
【００７３】
一方、ステップＳ１１０２において、相対距離が所定距離以内である場合（ステップＳ１１０２：Ｙｅｓ）、接続元端末は、通信帯域Ｒｔとストレージ帯域Ｒｓとを比較する（ステップＳ１１０５）。そして、通信帯域Ｒｔとストレージ帯域Ｒｓとの比較結果が、Ｒｔ＜Ｒｓ−ΔＲｓである場合（ステップＳ１１０５：Ｒｔ＜Ｒｓ−ΔＲｓ）、接続元端末は、接続元端末と接続先端末との間の運用方式を分散方式に決定する（ステップＳ１１０３）。そして、接続元端末は、決定された運用方式を接続先端末に通知する（ステップＳ１１０４）。
【００７４】
一方、通信帯域Ｒｔとストレージ帯域Ｒｓとの比較結果が、Ｒｓ−ΔＲｓ≦Ｒｔ≦Ｒｓ＋ΔＲｓである場合（ステップＳ１１０５：Ｒｓ−ΔＲｓ≦Ｒｔ≦Ｒｓ＋ΔＲｓ）、接続元端末は、接続元端末と接続先端末との間の運用方式を疎結合方式に決定する（ステップＳ１１０６）。そして、接続元端末は、決定された運用方式を接続先端末に通知する（ステップＳ１１０４）。
【００７５】
また、通信帯域Ｒｔとストレージ帯域Ｒｓとの比較結果が、Ｒｔ＞Ｒｓ＋ΔＲｓである場合（ステップＳ１１０５：Ｒｔ＞Ｒｓ＋ΔＲｓ）、接続元端末は、通信帯域Ｒｔとメモリ帯域Ｒｍとを比較する（ステップＳ１１０７）。そして、通信帯域Ｒｔとメモリ帯域Ｒｍとの比較結果が、Ｒｔ＜Ｒｍである場合（ステップＳ１１０７：Ｒｔ＜Ｒｍ）、接続元端末は、接続元端末と接続先端末との間の運用方式を疎結合方式に決定する（ステップＳ１１０６）。そして、接続元端末は、決定された運用方式を接続先端末に通知する（ステップＳ１１０４）。
【００７６】
一方、通信帯域Ｒｔとメモリ帯域Ｒｍとの比較結果が、Ｒｔ≧Ｒｍである場合（ステップＳ１１０７：Ｒｔ≧Ｒｍ）、接続元端末は、接続元端末と接続先端末との間の運用方式を密結合方式に決定する（ステップＳ１１０８）。そして、接続元端末は、決定された運用方式を接続先端末に通知する（ステップＳ１１０４）。
【００７７】
このように、端末間の相対距離や通信帯域Ｒｔの大きさに応じて接続元端末と接続先端末との間の運用方式が決定されることとなる。なお、ステップＳ１１０２において、相対距離が所定距離以内である場合（ステップＳ１１０２：Ｙｅｓ）、通信帯域Ｒｔとストレージ帯域Ｒｓとを比較（ステップＳ１１０５）するまでもなく、疎結合方式に決定してもよい。
【００７８】
また、ステップＳ１１０２において、相対距離が所定距離以内である場合（ステップＳ１１０２：Ｙｅｓ）、通信帯域Ｒｔとストレージ帯域Ｒｓとを比較（ステップＳ１１０５）や通信帯域Ｒｔとメモリ帯域Ｒｍとを比較（ステップＳ１１０７）するまでもなく、密結合方式に決定してもよい。
【００７９】
また、ステップＳ１１０５において、通信帯域Ｒｔとストレージ帯域Ｒｓとの比較結果が、Ｒｔ＞Ｒｓ＋ΔＲｓである場合（ステップＳ１１０５：Ｒｔ＞Ｒｓ＋ΔＲｓ）、通信帯域Ｒｔとメモリ帯域Ｒｍとを比較（ステップＳ１１０７）するまでもなく、疎結合方式または密結合方式のいずれか一方の方式に決定してもよい。
【００８０】
図１２は、図１０に示した接続元端末での運用方式設定処理（ステップＳ１００８）の詳細な処理手順を示すフローチャートである。まず、接続元端末は、決定された運用方式を確認する（ステップＳ１２０１）。分散方式である場合（ステップＳ１２０１：分散）、接続元端末での運用方式設定処理（ステップＳ１００８）を終了する。
【００８１】
一方、疎結合方式である場合（ステップＳ１２０１：疎結合）、接続元端末は、接続先端末にダウンロードされた担当データのファイルパスを接続先端末から取得する（ステップＳ１２０２）。つぎに、接続元端末は、接続先端末にダウンロードされた担当データを指定する論理アドレスをアプリケーションが参照可能な論理アドレス空間に設定する（ステップＳ１２０３）。
【００８２】
そして、接続元端末は、ステップＳ１２０２で取得したファイルパスを、ステップＳ１２０３での指定論理アドレスに書き込む。このあと、接続元端末は、論論変換停止設定をおこなう（ステップＳ１２０５）。これにより、接続元端末での運用方式設定処理（ステップＳ１００８）を終了する。
【００８３】
また、ステップＳ１２０１において、密結合方式である場合（ステップＳ１２０１：密結合）、接続元端末は、接続先端末でダウンロードされた担当データの接続元端末での論理アドレス（変換元論理アドレス）を論理アドレス空間に設定する（ステップＳ１２０６）。つぎに、接続元端末は、接続先端末でダウンロードされた担当データの接続先端末での論理アドレス（変換先論理アドレス）を接続先端末から取得する（ステップＳ１２０７）。
【００８４】
そして、接続元端末は、論論変換テーブルを生成する（ステップＳ１２０８）。論論変換テーブルとは、変換元論理アドレスと変換先論理アドレスと変換先となる接続先端末の端末ＩＤとを対応付けたテーブルである。このあと、接続元端末は、論論変換起動設定をおこなう（ステップＳ１２０９）。論論変換起動設定とは、論論変換テーブルへのアクセスを可能にする設定である。
【００８５】
これにより、接続元端末での運用方式設定処理（ステップＳ１００８）を終了する。このように、接続元端末での運用方式設定処理（ステップＳ１００８）では、疎結合または密結合に応じて接続先端末とのマウントをおこなうことができる。
【００８６】
図１３は、図１０に示した接続先端末での運用方式設定処理（ステップＳ１００９）の詳細な処理手順を示すフローチャートである。接続先端末は、接続元端末からの運用方式を待ち受け（ステップＳ１３０１：Ｎｏ）、運用方式が受信された場合（ステップＳ１３０１：Ｙｅｓ）、接続先端末は、受信された運用方式を確認する（ステップＳ１３０２）。分散方式である場合（ステップＳ１３０２：分散）、接続先端末での運用方式設定処理（ステップＳ１００９）を終了する。
【００８７】
一方、疎結合方式である場合（ステップＳ１３０２：疎結合）、接続先端末は、接続元端末にダウンロードされた担当データのファイルパスを接続元端末から取得する（ステップＳ１３０３）。つぎに、接続先端末は、接続元端末にダウンロードされた担当データを指定する論理アドレスをアプリケーションが参照可能な論理アドレス空間に設定する（ステップＳ１３０４）。
【００８８】
そして、接続先端末は、ステップＳ１３０３で取得したファイルパスを、ステップＳ１３０４での指定論理アドレスに書き込む。このあと、接続先端末は、論論変換停止設定をおこなう（ステップＳ１３０６）。これにより、接続先端末での運用方式設定処理（ステップＳ１００９）を終了する。
【００８９】
また、ステップＳ１３０２において、密結合方式である場合（ステップＳ１３０２：密結合）、接続先端末は、接続元端末でダウンロードされた担当データの接続先端末での論理アドレス（変換元論理アドレス）を論理アドレス空間に設定する（ステップＳ１３０７）。つぎに、接続先端末は、接続元端末でダウンロードされた担当データの接続元端末での論理アドレス（変換先論理アドレス）を接続元端末から取得する（ステップＳ１３０８）。
【００９０】
そして、接続先端末は、論論変換テーブルを生成する（ステップＳ１３０９）。論論変換テーブルとは、変換元論理アドレスと変換先論理アドレスと変換先となる接続元端末の端末ＩＤとを対応付けたテーブルである。このあと、接続先端末は、論論変換起動設定をおこなう（ステップＳ１３１０）。論論変換起動設定とは、論論変換テーブルへのアクセスを可能にする設定である。これにより、接続先端末での運用方式設定処理（ステップＳ１００９）を終了する。このように、接続先端末での運用方式設定処理（ステップＳ１００９）では、疎結合または密結合に応じて接続元端末とのマウントをおこなうことができる。
【００９１】
すなわち、接続元端末での運用方式設定処理（ステップＳ１００８）と接続先端末での運用方式設定処理（ステップＳ１００９）とが実行されることで、接続元端末と接続先端末との間でクロスマウントが実現されることとなる。
【００９２】
＜疎結合の具体例＞
つぎに、疎結合の具体例について図１４〜図１７を用いて説明する。
【００９３】
図１４は、端末Ａおよび端末Ｂにおいてそれぞれ担当データＤａ，Ｄｂをダウンロードした状態を示す説明図である。図１４において、端末Ａの担当データＤａのファイルシステムＦＳａでのファイルパスをｆｐａ、端末Ｂの担当データＤｂのファイルシステムＦＳｂでのファイルパスをｆｐｂとする。
【００９４】
また、端末Ａの担当データＤａは、端末Ａのアプリケーションから見える論理アドレス空間ＬＳａ内では、論理アドレス［０ｘ０１５０，０ｘ０２４９］に保存されているものとする。また、端末Ｂの担当データＤｂは、端末Ｂのアプリケーションから見える論理アドレス空間ＬＳｂ内では、論理アドレス［０ｘ０２００，０ｘ０２９９］に保存されているものとする。
【００９５】
図１５は、図１４に示した状態から、端末Ａを接続元端末、端末Ｂを接続先端末として疎結合した状態を示す説明図である。具体的には、端末Ａの論理アドレス空間ＬＳａの空きアドレスには、端末Ｂの端末ＩＤおよび担当データＤｂへのファイルパスｆｐｂが設定される。これにより、端末ＢのファイルシステムＦＳｂが端末Ａにマウントされることとなる。同様に、端末Ｂの論理アドレス空間ＬＳｂの空きアドレスには、端末Ａの端末ＩＤおよび担当データＤａへのファイルパスｆｐａが設定される。これにより、端末ＡのファイルシステムＦＳａが端末Ｂにマウントされることとなる。
【００９６】
図１６は、図１５による疎結合設定後におけるデータアクセスを示す説明図（その１）である。図１６では、端末Ａが担当データＤａ，Ｄｂにアクセスする例である。端末Ａが担当データＤａにアクセスする場合は、端末Ａのアプリケーションが論理アドレス空間ＬＳａの担当データＤａの論理アドレスを指定することで、端末Ａのストレージ３０３のコントローラが担当データＤａへのファイルパスｆｐａを参照して論物変換する。そして、論物変換された物理アドレスを指定することで、端末Ａは、担当データＤａにアクセスすることができる。
【００９７】
また、端末Ａが担当データＤｂにアクセスする場合は、端末Ａのアプリケーションが論理アドレス空間ＬＳａの端末Ｂの端末ＩＤおよびファイルパスｆｐｂを有する論理アドレスを指定し、通信ドライバを起動する。そして、端末Ａは通信ドライバを介して、端末Ｂに対しファイルパスｆｐｂを送信する。端末Ｂでは、端末Ａからのファイルパスｆｐｂを参照して、端末Ｂのストレージ３０３内の担当データＤｂにアクセスする。
【００９８】
そして、リードアクセスの場合は、端末Ｂは担当データＤｂを端末Ａに送信する。端末Ａは端末Ｂからの担当データＤｂを受信する。また、ライトアクセスの場合は、端末Ｂはライト完了通知を端末Ａに送信する。このように、端末Ａは、担当データＤｂにアクセスすることができる。
【００９９】
図１７は、図１５による疎結合設定後におけるデータアクセスを示す説明図（その２）である。図１７では、端末Ｂが担当データＤａ，Ｄｂにアクセスする例である。端末Ｂが担当データＤｂにアクセスする場合は、端末Ｂのアプリケーションが論理アドレス空間ＬＳｂの担当データＤｂの論理アドレスを指定することで、端末Ｂ内のストレージ３０３のコントローラが担当データＤｂへのファイルパスｆｐｂを参照して論物変換する。そして、論物変換された物理アドレスを指定することで、端末Ｂは、担当データＤｂにアクセスすることができる。
【０１００】
また、端末Ｂが担当データＤａにアクセスする場合は、端末Ｂのアプリケーションが論理アドレス空間ＬＳｂの端末Ａの端末ＩＤおよびファイルパスｆｐａを有する論理アドレスを指定し、通信ドライバを起動する。そして、端末Ｂは通信ドライバを介して、端末Ａに対しファイルパスｆｐａを送信する。端末Ａでは、端末Ｂからのファイルパスｆｐａを参照して、端末Ａのストレージ３０３内の担当データＤａにアクセスする。
【０１０１】
そして、リードアクセスの場合は、端末Ａは担当データＤａを端末Ｂに送信する。端末Ｂは端末Ａからの担当データＤａを受信する。また、ライトアクセスの場合は、端末Ａはライト完了通知を端末Ｂに送信する。このように、端末Ｂは、担当データＤａにアクセスすることができる。
【０１０２】
＜密結合の具体例＞
つぎに、密結合の具体例について図１８〜図２１を用いて説明する。
【０１０３】
図１８は、端末Ａおよび端末Ｂにおいてそれぞれ担当データＤａ，Ｄｂをダウンロードした状態を示す説明図である。図１８において、端末Ａの担当データＤａのファイルシステムＦＳａでのファイルパスをｆｐａ、端末Ｂの担当データＤｂのファイルシステムＦＳｂでのファイルパスをｆｐｂとする。
【０１０４】
また、端末Ａの担当データＤａは、端末Ａのアプリケーションから見える論理アドレス空間ＬＳａ内では、論理アドレス［０ｘ０１５０，０ｘ０２４９］に保存されているものとする。また、端末Ｂの担当データＤｂは、端末Ｂのアプリケーションから見える論理アドレス空間ＬＳｂ内では、論理アドレス［０ｘ０２００，０ｘ０２９９］に保存されているものとする。
【０１０５】
また、端末Ａは、密結合状態になると、担当データＤａを端末Ａのストレージ３０３内のファイルシステムＦＳａから端末Ａのメモリ３０２（以下、メモリＭａ）に読み出す。すでに読み出されている場合は不要である。担当データＤａのメモリＭａ上の物理アドレス［０ｘ１１００，０ｘ１１９９］は、論理アドレス空間ＬＳａの論理アドレス［０ｘ０１５０，０ｘ０２４９］に対応づけされる。これにより、メモリＭａのコントローラは、論理アドレス［０ｘ０１５０，０ｘ０２４９］が指定されると、メモリＭａ上の物理アドレス［０ｘ１１００，０ｘ１１９９］に論物変換する。
【０１０６】
同様に、端末Ｂは、密結合状態になると、担当データＤｂを端末Ｂのストレージ３０３内のファイルシステムＦＳｂから端末Ｂのメモリ３０２（以下、メモリＭｂ）に読み出す。すでに読み出されている場合は不要である。担当データＤｂのメモリ３０２上の物理アドレス［０ｘ１１５０，０ｘ１２４９］は、論理アドレス空間ＬＳｂの論理アドレス［０ｘ０２００，０ｘ０２９９］に対応づけされる。これにより、メモリＭｂのコントローラは、論理アドレス［０ｘ１１５０，０ｘ１２４９］が指定されると、メモリＭｂ上の物理アドレス［０ｘ０２００，０ｘ０２９９］に論物変換する。
【０１０７】
図１９は、図１８に示した状態から、端末Ａを接続元端末、端末Ｂを接続先端末として密結合した状態を示す説明図である。具体的には、端末Ａは、担当データＤｂの論理アドレス（変換先論理アドレス）を端末Ｂから取得し、端末Ａの論理アドレス空間に担当データＤｂの変換元論理アドレスを割り当てる。そして、端末Ａは、変換元論理アドレスと変換先端末ＩＤと変換先論理アドレスとを対応付けした論論変換テーブルＬＬＴａを生成する。これにより、端末ＢのメモリＭｂが端末Ａにマウントされることとなる。
【０１０８】
同様に、端末Ｂは、担当データＤａの論理アドレス（変換先論理アドレス）を端末Ａから取得し、端末Ｂの論理アドレス空間に担当データＤａの変換元論理アドレスを割り当てる。そして、端末Ｂは、変換元論理アドレスと変換先端末ＩＤと変換先論理アドレスとを対応付けした論論変換テーブルＬＬＴｂを生成する。これにより、端末ＡのメモリＭａが端末Ｂにマウントされることとなる。
【０１０９】
図２０は、図１９による密結合設定後におけるデータアクセスを示す説明図（その１）である。図２０では、端末Ａが担当データＤａ，Ｄｂにアクセスする例である。端末Ａが担当データＤａにアクセスする場合は、端末Ａのアプリケーションが論理アドレス空間ＬＳａの担当データＤａの論理アドレスを指定することで、メモリＭａのコントローラが担当データＤａの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Ａは、メモリＭａ上の担当データＤａにアクセスすることができる。
【０１１０】
また、端末Ａが担当データＤｂにアクセスする場合は、端末Ａのアプリケーションが論理アドレス空間ＬＳａの担当データＤｂの論理アドレスを指定し、指定した論理アドレスを変換元論理アドレスとして論論変換テーブルＬＬＴａを参照する。論論変換テーブルＬＬＴａでは、変換先の端末ＩＤと変換先論理アドレスが特定される。
【０１１１】
したがって、端末Ａは、通信ドライバを起動して、変換先である端末Ｂに対し、変換先論理アドレスを送信する。端末Ｂでは、端末Ａからの変換先論理アドレスを参照して、メモリ３０２のコントローラが担当データＤｂの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Ｂは、メモリＭｂ上の担当データＤｂにアクセスすることができる。
【０１１２】
このあと、リードアクセスの場合は、端末Ｂは担当データＤｂを端末Ａに送信する。端末Ａは端末Ｂからの担当データＤｂを受信する。また、ライトアクセスの場合は、端末Ｂはライト完了通知を端末Ａに送信する。このように、端末Ａは、担当データＤｂにアクセスすることができる。
【０１１３】
図２１は、図１９による密結合設定後におけるデータアクセスを示す説明図（その２）である。図２１では、端末Ｂが担当データＤａ，Ｄｂにアクセスする例である。端末Ｂが担当データＤｂにアクセスする場合は、端末Ｂのアプリケーションが論理アドレス空間ＬＳｂの担当データＤｂの論理アドレスを指定することで、メモリＭｂのコントローラが担当データＤｂの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Ｂは、メモリＭｂ上の担当データＤｂにアクセスすることができる。
【０１１４】
また、端末Ｂが担当データＤａにアクセスする場合は、端末Ｂのアプリケーションが論理アドレス空間ＬＳｂの担当データＤａの論理アドレスを指定し、指定した論理アドレスを変換元論理アドレスとして論論変換テーブルＬＬＴｂを参照する。論論変換テーブルＬＬＴｂでは、変換先の端末ＩＤと変換先論理アドレスが特定される。
【０１１５】
したがって、端末Ｂは、通信ドライバを起動して、変換先である端末Ａに対し、変換先論理アドレスを送信する。端末Ａでは、端末Ｂからの変換先論理アドレスを参照して、メモリＭａのコントローラが担当データＤａの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Ａは、メモリＭａ上の担当データＤａにアクセスすることができる。
【０１１６】
このあと、リードアクセスの場合は、端末Ａは担当データＤａを端末Ｂに送信する。端末Ｂは端末Ａからの担当データＤａを受信する。また、ライトアクセスの場合は、端末Ａはライト完了通知を端末Ｂに送信する。このように、端末Ｂは、担当データＤａにアクセスすることができる。
【０１１７】
図２２は、端末間のデータアクセス処理のシーケンスを示す説明図である。まずアクセス元端末は、データアクセス（リード／ライト）要求があるまで待ち受け（ステップＳ２２０１：Ｎｏ）、データアクセス要求があった場合（ステップＳ２２０１：Ｙｅｓ）、アクセス元端末は、論論変換が起動しているか否かを判断する（ステップＳ２２０２）。起動している場合（ステップＳ２２０２：Ｙｅｓ）、アクセス元端末は、論論変換テーブルを参照して論論変換を実行する（ステップＳ２２０３）。
【０１１８】
一方、論論変換が起動していない場合（ステップＳ２２０２：Ｎｏ）、ステップＳ２２０４に移行する。ステップＳ２２０４では、アクセス先端末は、アクセス先が自端末（アクセス元端末）であるか否かを判断する（ステップＳ２２０４）。具体的には、たとえば、疎結合においては端末ＩＤおよびファイルパスが指定されている場合は、端末ＩＤで指定された端末がアクセス先端末となる。密結合の場合は、論論変換テーブルを参照した場合に端末ＩＤで指定された端末がアクセス先端末となる。
【０１１９】
アクセス先が自端末である場合（ステップＳ２２０４：Ｙｅｓ）、アクセス元端末は、アクセス要求で指定された論理アドレスを物理アドレスに論物変換する（ステップＳ２２０５）。そして、アクセス元端末は、自端末内の変換された物理アドレスにアクセスする（ステップＳ２２０６）。これにより、データアクセスが終了する。
【０１２０】
一方、ステップＳ２２０４において、アクセス先が他端末である場合（ステップＳ２２０４：Ｎｏ）、アクセス元端末は、通信ドライバを起動して（ステップＳ２２０７）、端末間データアクセス処理を実行する（ステップＳ２２０８）。これにより、アドホック通信でアクセス先端末へのデータアクセスが可能となる。
【０１２１】
図２３は、図２２に示した端末間データアクセス処理（ステップＳ２２０８）の詳細な処理手順を示すシーケンス図（その１）である。図２３は、データアクセスがリードである場合を示している。まず、アクセス元端末が、アドホック通信により、アクセス先端末にリード要求を送信する（ステップＳ２３０１）。アクセス先端末は、リード要求を受信すると、リード要求を解析する（ステップＳ２３０２）。具体的には、たとえば、アクセス先端末は、リード要求に含まれている情報を取り出す。疎結合の場合はファイルパス、密結合の場合は変換先論理アドレスを取り出す。
【０１２２】
そして、アクセス先端末は、解析で得られた情報に基づいて、リード先となる物理アドレスを特定する（ステップＳ２３０３）。具体的には、たとえば、ファイルパスが取り出された場合は、アクセス先端末は、ファイルパスを参照して物理アドレスを特定する。変換先論理アドレスが取り出された場合は、変換先論理アドレスを論物変換して物理アドレスを特定する。
【０１２３】
このあと、アクセス先端末は、特定された物理アドレスにアクセスして対象データを読み出す（ステップＳ２３０４）。そして、アクセス先端末は、リード要求の送信元であるアクセス元端末に、読み出した対象データを送信する（ステップＳ２３０５）。アクセス元端末は、アクセス先端末から送信されてくる対象データを受信する（ステップＳ２３０６）。これにより、リード時の端末間データアクセス処理（ステップＳ２２０８）を終了する。
【０１２４】
図２４は、図２２に示した端末間データアクセス処理（ステップＳ２２０８）の詳細な処理手順を示すシーケンス図（その２）である。図２４は、データアクセスがライトである場合を示している。まず、アクセス元端末が、アドホック通信により、アクセス先端末にライト要求および対象データを送信する（ステップＳ２４０１）。アクセス先端末は、ライト要求を受信すると、ライト要求を解析する（ステップＳ２４０２）。具体的には、たとえば、アクセス先端末は、ライト要求に含まれている情報を取り出す。疎結合の場合はファイルパスおよび対象データ、密結合の場合は変換先論理アドレスおよび対象データを取り出す。
【０１２５】
そして、アクセス先端末は、解析で得られた情報に基づいて、リード先となる物理アドレスを特定する（ステップＳ２４０３）。具体的には、たとえば、ファイルパスが取り出された場合は、アクセス先端末は、ファイルパスを参照して物理アドレスを特定する。変換先論理アドレスが取り出された場合は、変換先論理アドレスを論物変換して物理アドレスを特定する。
【０１２６】
このあと、アクセス先端末は、特定された物理アドレスにアクセスして対象データを書き込む（ステップＳ２４０４）。そして、アクセス先端末は、ライト要求の送信元であるアクセス元端末に、ライト完了通知を送信する（ステップＳ２４０５）。これにより、ライト時の端末間データアクセス処理（ステップＳ２２０８）を終了する。このように、端末間においてクロスマウントをしておくことで、端末間でのデータアクセスが可能となる。
【０１２７】
＜担当データのダウンロード処理の他の例１＞
図２５は、担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。図８では、担当端末が主体となって担当データをダウンロードする処理について説明したが、図２５では、サーバ１０２が主体となって担当データをダウンロードする処理について説明する。なお、図８と同一処理については同一ステップ番号を付し、その説明を省略する。
【０１２８】
ステップＳ８０３において対象ファイルを選択したあと、担当端末は、サーバ１０２に対し、ダウンロード要求と端末ＩＤ（＝ｋ）と端末総数ｎとを送信する（ステップＳ２５０４）。そして、サーバ１０２は、ダウンロード区間算出処理を実行する（ステップＳ２５０５）。ダウンロード区間算出処理（ステップＳ２５０５）については後述する。このあと、サーバ１０２は、ダウンロード区間で指定された担当データを担当端末に送信する（ステップＳ２５０６）。
【０１２９】
担当端末は、受信した担当データをメモリ３０２またはストレージ３０３に格納する（ステップＳ２５０７）。このあと、すべての担当データをダウンロードした場合、サーバ１０２は、担当端末に完了通知を送信する（ステップＳ２５０８）。これにより、担当データのダウンロード処理を終了する。
【０１３０】
図２６は、図２５に示したダウンロード区間算出処理（ステップＳ２５０５）の詳細な処理手順を示すフローチャートである。まず、サーバ１０２は、ダウンロード区間Ｉ（ｋ）のダウンロード開始位置ｓｔａｒｔ（ｋ）をｓｔａｒｔ（ｋ）＝ｋ×Ｓとする（ステップＳ２６０１）。また、サーバ１０２は、ダウンロード区間Ｉ（ｋ）のダウンロード終了位置ｅｎｄ（ｋ）をｅｎｄ（ｋ）＝ｓｔａｒｔ（ｋ）＋Ｓ−１とする（ステップＳ２６０２）。
【０１３１】
サーバ１０２は、受信したダウンロード区間Ｉ（ｋ）で指定される担当データが対象ファイルの中に存在するか否かを判断する（ステップＳ２６０３）。存在する場合（ステップＳ２６０３：Ｙｅｓ）、サーバ１０２は、ダウンロード区間Ｉ（ｋ）で指定される担当データを担当端末に送信する（ステップＳ２６０４）。
【０１３２】
なお、担当端末は、サーバ１０２から送信されてくる担当データを内部の記憶装置（メモリ３０２またはストレージ３０３）に格納することとなる（ステップＳ２５０７）。このあと、サーバ１０２は、ｋにｎを加算して更新し（ステップＳ２６０５）、ステップＳ２６０１に戻る。これにより、ダウンロード開始位置およびダウンロード終了位置が更新されることとなる。
【０１３３】
一方、ステップＳ２６０３において、受信したダウンロード区間Ｉ（ｋ）で指定される担当データが対象ファイルの中に存在しない場合（ステップＳ２６０３：Ｎｏ）、サーバ１０２は、完了通知を担当端末に送信する（ステップＳ２６０６）。これにより、担当データのダウンロード処理を終了する。
【０１３４】
＜担当データのダウンロード処理の他の例２＞
図２７は、担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。図８では、担当端末が主体となって担当データをダウンロードする処理について説明したが、図２７では、担当端末が主体となって性能差を考慮して担当データをダウンロードする処理について説明する。なお、図８と同一処理については同一ステップ番号を付し、その説明を省略する。また、マスタ端末以外の担当端末を「スレーブ端末」と称す。
【０１３５】
ステップＳ８０３において対象ファイルを選択したあと、マスタ端末は、ダウンロード区間算出処理を実行する（ステップＳ２７０４）。ダウンロード区間算出処理（ステップＳ２７０４）の詳細については後述する。
【０１３６】
ダウンロード区間算出処理（ステップＳ２７０４）では、マスタ端末は、サーバ１０２に対し、ダウンロード要求およびマスタ端末のダウンロード区間Ｉ（ｊ）を送信することとなる（ステップＳ２７０５）。また、マスタ端末は、ダウンロード区間算出処理（ステップＳ２７０４）において、スレーブ端末に対し、スレーブ端末のダウンロード区間Ｉ（ｊ）を送信することとなる（ステップＳ２７０６）。
【０１３７】
このあと、スレーブ端末は、サーバ１０２に対し、ダウンロード要求およびスレーブ端末のダウンロード区間Ｉ（ｊ）を送信する（ステップＳ２７０７）。サーバ１０２は、ダウンロード要求およびダウンロード区間Ｉ（ｊ）を受信すると、受信したダウンロード区間Ｉ（ｊ）の担当データが対象ファイルの中に存在するか否かを判断する（ステップＳ２７０８）。存在する場合（ステップＳ２７０８：Ｙｅｓ）、サーバ１０２は、ダウンロード区間Ｉ（ｊ）で規定される担当データをダウンロード区間Ｉ（ｊ）の送信元の端末（マスタ端末またはスレーブ端末）に送信する（ステップＳ２７０９）。
【０１３８】
マスタ端末は、サーバ１０２から送信されてくる担当データを内部の記憶装置（メモリ３０２またはファイルシステム）に格納する（ステップＳ２７１０）。スレーブ端末は、サーバ１０２から送信されてくる担当データを内部の記憶装置（メモリ３０２またはストレージ３０３）に格納する（ステップＳ２７１１）。
【０１３９】
一方、ステップＳ２７０８において、受信したダウンロード区間Ｉ（ｊ）の担当データが対象ファイルの中に存在しない場合（ステップＳ２７０８：Ｎｏ）、サーバ１０２は、完了通知をダウンロード区間Ｉ（ｊ）の送信元の端末（マスタ端末またはスレーブ端末）に送信する（ステップＳ２７１２）。
【０１４０】
図２８は、図２７に示したダウンロード区間算出処理（ステップＳ２７０４）の詳細な処理手順を示すフローチャートである。まず、マスタ端末は、端末ＩＤであるｋをｋ＝０、端末ＩＤ＝ｋの端末（ｋ＝０ならマスタ端末Ａ、ｋ＝１、２ならスレーブ端末Ｂ，Ｃ）のシークサイズＳ（ｋ）を、Ｓ（ｋ）＝Ｓ×｛ｂ（ｋ）／Σｂ（ｋ）｝に設定する（ステップＳ２８０１）。
【０１４１】
Ｓは固定のシークサイズ、ｂ（ｋ）は端末ＩＤ＝ｋの端末の通信回線速度、Σｂ（ｋ）は、データ共有しあう全端末（端末Ａ〜Ｃ）の通信回線速度の総和である。すなわち、シークサイズＳ（ｋ）は、端末の性能差を考慮したシークサイズとなる。なお、スレーブ端末の通信回線速度ｂ（ｋ）は定期的に取得するものとする。
【０１４２】
つぎに、マスタ端末は、変数ｊをｊ＝ｋとし（ステップＳ２８０２）、ｊ＝０であるか否かを判断する（ステップＳ２８０３）。ｊ＝０である場合（ステップＳ２８０３：Ｙｅｓ）、マスタ端末Ａは、対象ファイルのダウンロード区間Ｉ（ｊ）のダウンロード開始位置ｓｔａｒｔ（ｊ）をｓｔａｒｔ（ｊ）＝０とし（ステップＳ２８０４）、ステップＳ２８０６に移行する。一方、ｊ＝０でない場合（ステップＳ２８０３：Ｎｏ）、マスタ端末Ａは、対象ファイルのダウンロード開始位置ｓｔａｒｔ（ｊ）をｓｔａｒｔ（ｊ）＝ｅｎｄ（ｊ−１）＋１とし（ステップＳ２８０４）、ステップＳ２８０６に移行する。
【０１４３】
ステップＳ２８０６では、マスタ端末は、ダウンロード区間Ｉ（ｊ）のダウンロード終了位置ｅｎｄ（ｊ）をｅｎｄ（ｊ）＝ｓｔａｒｔ（ｊ）＋Ｓ（ｋ）−１に設定する（ステップＳ２８０６）。そして、マスタ端末Ａは、端末ＩＤであるｋがｋ＝０であるか否かを判断する（ステップＳ２８０７）。ｋ＝０である場合（ステップＳ２８０７：Ｙｅｓ）、マスタ端末Ａは、マスタ端末Ａ（ｋ＝０）からのダウンロード要求およびダウンロード区間Ｉ（ｊ）をサーバ１０２に送信し（ステップＳ２８０８）、ステップＳ２８１０に移行する。
【０１４４】
一方、ｋ＝０でない場合（ステップＳ２８０７：Ｎｏ）、マスタ端末は、端末ＩＤ＝ｋ（ｋ≠０）のスレーブ端末に対し、そのダウンロード区間Ｉ（ｊ）を送信して（ステップＳ２８０９）、ステップＳ２８１０に移行する。
【０１４５】
ステップＳ２８１０では、マスタ端末は、変数ｊをインクリメントし（ステップＳ２８１０）、端末ＩＤであるｋもインクリメントする（ステップＳ２８１１）。そして、マスタ端末Ａは、ｋ＝ｎであるか否かを判断する（ステップＳ２８１２）。ｎは端末総数である。ｋ＝ｎでない場合（ステップＳ２８１２：Ｎｏ）、ステップＳ２８０３に戻る。一方、ｋ＝ｎである場合（ステップＳ２８１２：Ｙｅｓ）、マスタ端末は、ｋ＝０に戻して（ステップＳ２８１３）、ステップＳ２８０３に戻る。
【０１４６】
これにより、担当端末の性能、すなわち、シークサイズＳ（ｋ）に応じて、ダウンロード区間Ｉ（ｋ）の区間幅が変動するため、性能がよい担当端末ほどダウンロードするファイルサイズが大きくなることとなる。
【０１４７】
＜担当データのダウンロード処理の他の例３＞
図２９は、担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。図２７では、担当端末が主体となって性能差を考慮して担当データをダウンロードする処理について説明したが、図２９では、サーバ１０２が主体となって担当端末の性能差を考慮して担当データをダウンロードする処理について説明する。なお、図８と同一処理については同一ステップ番号を付し、その説明を省略する。
【０１４８】
ステップＳ８０３において対象ファイルを選択したあと、担当端末は、サーバ１０２に対し、ダウンロード要求、端末ＩＤ（＝ｋ）、回線速度ｂ（ｋ）を送信する（ステップＳ２９０４）。サーバ１０２は、担当端末からのダウンロード要求を受信すると、ダウンロード区間算出処理を実行する（ステップＳ２９０５）。ダウンロード区間算出処理（ステップＳ２９０５）の詳細については後述する。
【０１４９】
サーバ１０２は、ダウンロード区間Ｉ（ｋ）を算出すると、対象ファイルのうちダウンロード区間Ｉ（ｋ）で指定される担当データを担当端末に送信する（ステップＳ２９０６）。担当端末は、担当データを受信すると、担当データを記憶装置（メモリ３０２またはファイルシステム）に格納する（ステップＳ２９０７）。なお、サーバ１０２は、ダウンロード区間算出処理（ステップＳ２９０５）において、ダウンロード区間Ｉ（ｋ）で指定される担当データがない場合は、担当端末に対し完了通知を送信する（ステップＳ２９０８）。
【０１５０】
図３０は、図２９に示したダウンロード区間算出処理（ステップＳ２９０５）の詳細な処理手順を示すフローチャートである。まず、サーバ１０２は、端末ＩＤであるｋをｋ＝０、端末ＩＤ＝ｋの担当端末のシークサイズＳ（ｋ）を、Ｓ（ｋ）＝Ｓ×｛ｂ（ｋ）／Σｂ（ｋ）｝に設定する（ステップＳ３００１）。
【０１５１】
Ｓは固定のシークサイズ、ｂ（ｋ）は端末ＩＤ＝ｋの担当端末の通信回線速度、Σｂ（ｋ）は、データ共有しあう全端末（担当端末Ａ〜Ｃ）の通信回線速度の総和である。すなわち、シークサイズＳ（ｋ）は、担当端末の性能差を考慮したシークサイズとなる。なお、ダウンロード区間算出処理（ステップＳ２９０５）は、すべての担当端末の通信回線速度ｂ（ｋ）がないと実行できないため、ある担当端末からダウンロード要求があった場合に、残りの担当端末の通信回線速度を取得してもよい。また、定期的にすべての担当端末の通信回線速度を取得し、最新の通信回線速度を用いることとしてもよい。
【０１５２】
つぎに、サーバ１０２は、変数ｊをｊ＝ｋとし（ステップＳ３００２）、ｊ＝０であるか否かを判断する（ステップＳ３００３）。ｊ＝０である場合（ステップＳ３００３：Ｙｅｓ）、サーバ１０２は、対象ファイルのダウンロード区間Ｉ（ｊ）のダウンロード開始位置ｓｔａｒｔ（ｊ）をｓｔａｒｔ（ｊ）＝０とし（ステップＳ３００４）、ステップＳ３００６に移行する。一方、ｊ＝０でない場合（ステップＳ３００３：Ｎｏ）、サーバ１０２は、対象ファイルのダウンロード開始位置ｓｔａｒｔ（ｊ）をｓｔａｒｔ（ｊ）＝ｅｎｄ（ｊ−１）＋１とし（ステップＳ３００５）、ステップＳ３００６に移行する。
【０１５３】
ステップＳ３００６では、サーバ１０２は、ダウンロード区間Ｉ（ｊ）のダウンロード終了位置ｅｎｄ（ｊ）をｅｎｄ（ｊ）＝ｓｔａｒｔ（ｊ）＋Ｓ（ｋ）−１に設定する（ステップＳ３００６）。そして、サーバ１０２は、ダウンロード区間Ｉ（ｊ）で指定される担当データがあるか否かを判断する（ステップＳ３００７）。
【０１５４】
ダウンロード区間Ｉ（ｊ）で指定される担当データがある場合（ステップＳ３００７：Ｙｅｓ）、サーバ１０２は、ダウンロード区間Ｉ（ｊ）で指定される担当データを端末ＩＤ＝ｋの担当端末に送信する（ステップＳ３００８）。このあと、変数ｊをインクリメントし（ステップＳ３００９）、端末ＩＤであるｋもインクリメントする（ステップＳ３０１０）。
【０１５５】
そして、サーバ１０２は、ｋ＝ｎであるか否かを判断する（ステップＳ３０１１）。ｎは端末総数である。ｋ＝ｎでない場合（ステップＳ３０１１：Ｎｏ）、ステップＳ３００３に戻る。一方、ｋ＝ｎである場合（ステップＳ３０１１：Ｙｅｓ）、サーバ１０２は、ｋ＝０に戻して（ステップＳ３０１２）、ステップＳ３００３に戻る。
【０１５６】
また、ステップＳ３００７において、ダウンロード区間Ｉ（ｊ）で指定される担当データがない場合（ステップＳ３００７：Ｎｏ）、サーバ１０２は、端末ＩＤ＝ｋの担当端末に対し、完了通知を送信する（ステップＳ３０１３）。これにより、ダウンロード区間算出処理（ステップＳ２９０５）を終了する。
【０１５７】
これにより、担当端末の性能、すなわち、シークサイズＳ（ｋ）に応じて、ダウンロード区間Ｉ（ｋ）の区間幅が変動するため、性能がよい担当端末ほどダウンロードするファイルサイズが大きくなることとなる。
【０１５８】
以上説明したように、本実施の形態によれば、複数の端末間で効率的なデータ共有を実現することができる。また、接続先端末との通信帯域の大きさや相対距離に応じて運用方式を動的に切り替えることができる。したがって、端末間で効率のよいデータ共有を実現することができる。さらに、サーバ１０２からのダウンロードを各端末の性能差を考慮しておこなうことができるため、ダウンロードによる端末への負荷を端末の性能に応じて分散させることができる。
【０１５９】
なお、上述したフローチャートは、実行主体がサーバ１０２の場合は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより実現されることとなる。実行主体が端末の場合は、具体的には、たとえば、図３に示したメモリ３０２、ストレージ３０３などの記憶装置に記憶されたプログラムをプロセッサ３０１に実行させることにより実現されることとなる。
【符号の説明】
【０１６０】
１００  データ共有システム
１０１  基地局
１０３  ネットワーク
１０２  サーバ
３０２  メモリ
３０３  ストレージ
Ｒｔ  通信帯域
Ｒｓ  ストレージ帯域
Ｒｍ  メモリ帯域
ＦＳａ  ファイルシステム
ＦＳｂ  ファイルシステム
ＬＳａ  論理アドレス空間
ＬＳｂ  論理アドレス空間
ＬＬＴａ  論論変換テーブル
ＬＬＴｂ  論論変換テーブル
【図１】
2012035665.tif 000003
【図２】
2012035665.tif 000004
【図３】
2012035665.tif 000005
【図４】
2012035665.tif 000006
【図５】
2012035665.tif 000007
【図６】
2012035665.tif 000008
【図７】
2012035665.tif 000009
【図８】
2012035665.tif 000010
【図９】
2012035665.tif 000011
【図１０】
2012035665.tif 000012
【図１１】
2012035665.tif 000013
【図１２】
2012035665.tif 000014
【図１３】
2012035665.tif 000015
【図１４】
2012035665.tif 000016
【図１５】
2012035665.tif 000017
【図１６】
2012035665.tif 000018
【図１７】
2012035665.tif 000019
【図１８】
2012035665.tif 000020
【図１９】
2012035665.tif 000021
【図２０】
2012035665.tif 000022
【図２１】
2012035665.tif 000023
【図２２】
2012035665.tif 000024
【図２３】
2012035665.tif 000025
【図２４】
2012035665.tif 000026
【図２５】
2012035665.tif 000027
【図２６】
2012035665.tif 000028
【図２７】
2012035665.tif 000029
【図２８】
2012035665.tif 000030
【図２９】
2012035665.tif 000031
【図３０】
2012035665.tif 000032
【手続補正書】
【提出日】平成25年3月28日(2013.3.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アドホックネットワーク内で通信可能に接続されている第１の端末と第２の端末との間の通信帯域を検出する検出工程と、
前記検出工程によって検出された通信帯域と前記第１の端末の記憶装置に関する帯域とを比較する比較工程と、
前記比較工程によって比較された比較結果に基づいて、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
前記決定工程によって決定された運用方式を前記第１の端末から前記第２の端末に通知する通知工程と、
前記決定工程によって決定された運用方式に基づいて、前記第２の端末から前記第１の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第１の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
【請求項２】
アドホックネットワーク内で通信可能に接続されている第１および第２の端末のうち前記第１の端末から、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付工程と、
前記受付工程によって受け付けられた運用方式に基づいて、前記第１の端末から前記第２の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第２の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
【請求項３】
第１の端末とコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報をアドホック通信により前記第２の端末から取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記特定工程によって特定された前記第２の区間をアドホック通信により前記第２の端末に送信するとともに、前記第１の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第１の区間内のデータを前記サーバから受信する受信工程と、
前記受信工程によって受信された前記第１の区間内のデータを前記第１の端末の記憶装置に格納する格納工程と、
を前記第１の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
【請求項４】
第１の端末とコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報を取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記第１の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第１の区間内のデータを前記第１の端末に送信するとともに、前記第２の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第２の区間内のデータを前記第２の端末に送信する送信工程と、
を前記サーバのプロセッサに実行させることを特徴とするデータ配信プログラム。
【請求項５】
アドホックネットワーク内で通信可能に接続されている自端末と他端末との間の通信帯域を検出する検出手段と、
前記検出手段によって検出された通信帯域と前記自端末の記憶装置に関する帯域とを比較する比較手段と、
前記比較手段によって比較された比較結果に基づいて、前記自端末の記憶装置内のデータと前記他端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定手段と、
前記決定手段によって決定された運用方式を前記自端末から前記他端末に通知する通知手段と、
前記決定手段によって決定された運用方式に基づいて、前記他端末から前記自端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定手段と、
を備えることを特徴とする端末。
【請求項６】
アドホックネットワーク内で自端末と通信可能に接続されている他端末から、前記他端末の記憶装置内のデータと前記自端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付手段と、
前記受付手段によって受け付けられた運用方式に基づいて、前記他端末から前記自端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定手段と、
を備えることを特徴とする端末。
【請求項７】
コンテンツを選択する選択手段と、
自端末と前記選択手段によって選択されたコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記自端末とアドホック通信される他端末と前記サーバとの第２の通信速度情報をアドホック通信により前記他端末から取得する取得手段と、
前記取得手段によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記自端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記他端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定手段と、
前記特定手段によって特定された前記第２の区間をアドホック通信により前記他端末に送信するとともに、前記第１の区間を含むダウンロード要求を前記サーバに送信する送信手段と、
前記送信手段によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第１の区間内のデータを前記サーバから受信する受信手段と、
前記受信手段によって受信された前記第１の区間内のデータを前記自端末の記憶装置に格納する格納手段と、
を備えることを特徴とする端末。
【請求項８】
第１の端末との第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末との第２の通信速度情報を取得する取得手段と、
前記取得手段によって取得された第１および第２の通信速度情報に基づいて、コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定手段と、
前記第１の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定手段によって特定された前記第１の区間内のデータを前記第１の端末に送信するとともに、前記第２の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定手段によって特定された前記第２の区間内のデータを前記第２の端末に送信する送信手段と、
を備えることを特徴とするサーバ。
【請求項９】
アドホックネットワーク内で通信可能に接続されている第１の端末と第２の端末との間の通信帯域を検出する検出工程と、
前記検出工程によって検出された通信帯域と前記第１の端末の記憶装置に関する帯域とを比較する比較工程と、
前記比較工程によって比較された比較結果に基づいて、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
前記決定工程によって決定された運用方式を前記第１の端末から前記第２の端末に通知する通知工程と、
前記決定工程によって決定された運用方式に基づいて、前記第２の端末から前記第１の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第１の端末が実行することを特徴とするデータ共有方法。
【請求項１０】
アドホックネットワーク内で通信可能に接続されている第１および第２の端末のうち前記第１の端末から、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付工程と、
前記受付工程によって受け付けられた運用方式に基づいて、前記第１の端末から前記第２の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第２の端末が実行することを特徴とするデータ共有方法。
【請求項１１】
コンテンツを選択する選択工程と、
第１の端末と前記選択工程によって選択されたコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報をアドホック通信により前記第２の端末から取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記特定工程によって特定された前記第２の区間をアドホック通信により前記第２の端末に送信するとともに、前記第１の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第１の区間内のデータを前記サーバから受信する受信工程と、
前記受信工程によって受信された前記第１の区間内のデータを前記第１の端末の記憶装置に格納する格納工程と、
を前記第１の端末が実行することを特徴とするデータ共有方法。
【請求項１２】
第１の端末とコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報を取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記第１の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第１の区間内のデータを前記第１の端末に送信するとともに、前記第２の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第２の区間内のデータを前記第２の端末に送信する送信工程と、
を前記サーバが実行することを特徴とするデータ配信方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを共有、配信するデータ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法に関する。
【背景技術】
【０００２】
従来、デジタルカメラのデータをサーバへ転送する時に複数のデジタルカメラにデータを分割して割り当て各デジタルカメラがサーバに担当部分のデータを転送する技術が開示されている（たとえば、下記特許文献１を参照。）。
【０００３】
また、分散メモリ型計算機における並列データベースへの問い合わせ並列処理において、他ノードのデータベースへのアクセスが生じた際にノード間のデータ転送量を削減する技術が開示されている（たとえば、下記特許文献２を参照。）。
【０００４】
また、アドホック通信しか使用できない状況で離れた端末へデータ通信を実現する技術や、要求しているデータを持つ携帯端末が複数存在する場合に、最も距離の近い端末からデータ転送を可能にする技術が開示されている（たとえば、下記特許文献３，４を参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−６６０６１号公報
【特許文献２】特開２００７−５３１０８７号公報
【特許文献３】特開２００７−３３６３６０号公報
【特許文献４】特開２００４−６４６４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術を用いて、複数の携帯端末（たとえば、携帯端末Ａ〜Ｃ）間でデータ共有を行う場合、携帯端末Ａは、携帯端末Ｂが有するデータＤｂを利用したいときは、端末Ｂから端末ＡにデータＤｂを送信する必要がある。同様に、携帯端末Ａは、携帯端末Ｃが有するデータＤｃを利用したいときは、携帯端末Ｃから携帯端末ＡにデータＤｃを送信する必要がある。
【０００７】
したがって、携帯端末Ａのユーザは、データＤｂ，Ｄｃを利用したいときでも、携帯端末Ａから携帯端末Ｂ，ＣのデータＤｂ，Ｄｃにアクセスすることができず、データ共有について使い勝手が悪いという問題があった。
【０００８】
このようなデータ共有についての使い勝手の悪さは、携帯端末Ａが有するデータＤａや携帯端末Ｃが有するデータＤｃを携帯端末Ｂが利用する場合や、携帯端末Ａが有するデータＤａや携帯端末Ｂが有するデータＤｂを携帯端末Ｃが利用する場合についても同様である。
【０００９】
また、データＤａ〜Ｄｃがサーバに存在する場合、携帯電話網を介してサーバにアクセスすることで、携帯端末Ａ〜ＣはデータＤａ〜Ｄｃをダウンロードすることができる。
【００１０】
しかしながら、携帯電話網における基地局の帯域は決まっており、基地局に接続されている携帯端末でシェアすることになる。そのため、基地局に接続している携帯端末が増加するほど、携帯端末１台当たりの使用帯域が減少してしまうこととなる。したがって、携帯端末Ａ〜Ｃごとに、全データＤａ〜Ｄｃをダウンロードする場合、ダウンロード時間が長くなってしまうという問題があった。
【００１１】
また、各携帯端末Ａ〜Ｃが全データＤａ〜Ｄｃをダウンロードするため、データＤａ〜Ｄｃの総データ量が巨大な場合、メモリ不足によりダウンロードできなくなるという問題があった。
【００１２】
本発明は、上述した従来技術による問題点を解消するため、複数の端末間で効率的なデータ共有を実現することができるデータ共有プログラム、端末、およびデータ共有方法を提供することを目的とする。また、複数の端末間でデータ共有を実現するために、各端末の担当分のデータを効率的にダウンロードすることができるデータ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、アドホックネットワーク内で通信可能に接続されている第１の端末と第２の端末との間の通信帯域を検出し、検出された通信帯域と前記第１の端末の記憶装置に関する帯域とを比較し、比較結果に基づいて、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定し、決定された運用方式を前記第１の端末から前記第２の端末に通知し、決定された運用方式に基づいて、前記第２の端末から前記第１の端末の記憶装置へのアクセスを可能にするマウント処理を実行するデータ共有プログラム、端末、およびデータ共有方法が、一例として提案される。
【００１４】
また、第１の端末とコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報を取得し、取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定し、前記第１の端末からのダウンロード要求があった場合、前記コンテンツのうち特定された前記第１の区間内のデータを前記第１の端末に送信するとともに、前記第２の端末からのダウンロード要求があった場合、前記コンテンツのうち特定された前記第２の区間内のデータを前記第２の端末に送信するデータ配信プログラム、サーバ、およびデータ配信方法が、一例として提案される。
【発明の効果】
【００１５】
上記データ共有プログラム、端末、およびデータ共有方法によれば、複数の端末間で効率的なデータ共有を実現することができるという効果を奏する。また、上記データ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法によれば、複数の端末間でデータ共有を実現するために、各端末の担当分のデータを効率的にダウンロードすることができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態にかかるデータ共有システムのシステム構成例を示す説明図である。
【図２】サーバのハードウェア構成例を示すブロック図である。
【図３】端末のハードウェア構成例を示すブロック図である。
【図４】アドホック通信の接続処理のシーケンスを示す説明図である。
【図５】図４に示した接続処理（ステップＳ４０２、Ｓ４０３、Ｓ４０７）の詳細な処理手順を示す説明図である。
【図６】マスタ端末Ａでのダウンロード画面を示す説明図である。
【図７】ダウンロード処理のシーケンスを示す説明図である。
【図８】担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。
【図９】ダウンロード区間算出処理（ステップＳ８０４）の詳細な処理手順を示すフローチャートである。
【図１０】運用方式設定シーケンスを示す説明図である。
【図１１】図１０に示した運用方式決定処理（ステップＳ１００６）の詳細な処理手順を示すフローチャートである。
【図１２】図１０に示した接続元端末での運用方式設定処理（ステップＳ１００８）の詳細な処理手順を示すフローチャートである。
【図１３】図１０に示した接続先端末での運用方式設定処理（ステップＳ１００９）の詳細な処理手順を示すフローチャートである。
【図１４】端末Ａおよび端末Ｂにおいてそれぞれ担当データＤａ，Ｄｂをダウンロードした状態を示す説明図である。
【図１５】図１４に示した状態から、端末Ａを接続元端末、端末Ｂを接続先端末として疎結合した状態を示す説明図である。
【図１６】図１５による疎結合設定後におけるデータアクセスを示す説明図（その１）である。
【図１７】図１５による疎結合設定後におけるデータアクセスを示す説明図（その２）である。
【図１８】端末Ａおよび端末Ｂにおいてそれぞれ担当データＤａ，Ｄｂをダウンロードした状態を示す説明図である。
【図１９】図１８に示した状態から、端末Ａを接続元端末、端末Ｂを接続先端末として密結合した状態を示す説明図である。
【図２０】図１９による密結合設定後におけるデータアクセスを示す説明図（その１）である。
【図２１】図１９による密結合設定後におけるデータアクセスを示す説明図（その２）である。
【図２２】端末間のデータアクセス処理のシーケンスを示す説明図である。
【図２３】図２２に示した端末間データアクセス処理（ステップＳ２２０８）の詳細な処理手順を示すシーケンス図（その１）である。
【図２４】図２２に示した端末間データアクセス処理（ステップＳ２２０８）の詳細な処理手順を示すシーケンス図（その２）である。
【図２５】担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。
【図２６】図２５に示したダウンロード区間算出処理（ステップＳ２５０５）の詳細な処理手順を示すフローチャートである。
【図２７】担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。
【図２８】図２７に示したダウンロード区間算出処理（ステップＳ２７０４）の詳細な処理手順を示すフローチャートである。
【図２９】担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。
【図３０】図２９に示したダウンロード区間算出処理（ステップＳ２９０５）の詳細な処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照して、本発明の実施の形態を詳細に説明する。
【００１８】
＜システム構成例＞
図１は、本発明の実施の形態にかかるデータ共有システムのシステム構成例を示す説明図である。図１のデータ共有システム１００では、複数（例として３台）の端末Ａ〜Ｃが、基地局１０１およびネットワーク１０３を介してサーバ１０２と交信可能に接続されている。端末Ａ〜Ｃは、無線通信可能な携帯型のコンピュータであり、たとえば、携帯電話機、スマートフォン、電子辞書、タブレット型端末、携帯ゲーム機などがある。
【００１９】
また、各端末Ａ〜Ｃは、サーバ１０２がネットワーク１０３内の携帯電話網にある場合は、基地局１０１および携帯電話網を介してサーバ１０２にアクセスすることとなる。サーバ１０２がネットワーク１０３内のインターネット網にある場合は、各端末Ａ〜Ｃは、基地局１０１、携帯電話網、インターネット網を介して、サーバ１０２にアクセスすることとなる。各端末Ａ〜Ｃは、端末間でアドホック通信可能である。また、各端末Ａ〜Ｃは、ＧＰＳ衛星１０４からの信号を受信することで、現在位置情報を取得することもできる。
【００２０】
サーバ１０２は、映像、ゲーム、地図といったデータＤを記憶しており、端末Ａ〜Ｃからのダウンロード要求に応じて、ダウンロード要求元の端末にダウンロードする。なお、図１では、サーバ１０２はダウンロード要求の受付処理と、データを記憶しダウンロードする処理とを実行するが、ダウンロード要求の受付処理と、データを記憶しダウンロードする処理とを、異なるサーバ１０２で実行してもよい。
【００２１】
この場合、ダウンロード要求の受付処理を実行する第１のサーバは、データＤを記憶しダウンロードする処理を実行する第２のサーバに、受け付けたダウンロード要求を送信する。第２のサーバは、受信したダウンロード要求によりダウンロード要求元とダウンロード対象となるデータを特定して、ダウンロード要求元の端末にダウンロードする。
【００２２】
このようなデータ共有システム１００において、各端末Ａ〜Ｃは、サーバ１０２からデータＤを分割ダウンロードする。各端末Ａ〜Ｃがダウンロードした分割データを担当データと称す。担当データＤａ〜Ｄｃは、それぞれ異なるデータである。各端末Ａ〜Ｃは、アドホック通信により、データＤのうち自端末でダウンロードしなかった他端末の担当データにアクセスすることができる。たとえば、端末Ａは、アドホック通信により担当データＤｂ，Ｄｃにアクセスすることができる。
【００２３】
これにより、各端末Ａ〜Ｃは、相互にアドホック通信により接続されているため、他端末に記憶されている担当データに自端末からアクセスすることができる。また、各端末Ａ〜Ｃは全データＤａ〜Ｄｃをダウンロードする必要がないため、ダウンロード時間の短縮化を図ることができ、メモリ不足に陥ることも低減されることとなる。
【００２４】
＜ハードウェア構成＞
図２は、サーバ１０２のハードウェア構成例を示すブロック図である。図２において、サーバ１０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、磁気ディスクドライブ２０４と、磁気ディスク２０５と、光ディスクドライブ２０６と、光ディスク２０７と、ディスプレイ２０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００２５】
ここで、ＣＰＵ２０１は、サーバ１０２の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。磁気ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがって磁気ディスク２０５に対するデータのリード／ライトを制御する。磁気ディスク２０５は、磁気ディスクドライブ２０４の制御で書き込まれたデータを記憶する。
【００２６】
光ディスクドライブ２０６は、ＣＰＵ２０１の制御にしたがって光ディスク２０７に対するデータのリード／ライトを制御する。光ディスク２０７は、光ディスクドライブ２０６の制御で書き込まれたデータを記憶したり、光ディスク２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２７】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２８】
インターフェース（以下、「Ｉ／Ｆ」と略する。）２０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１４に接続され、このネットワーク２１４を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２９】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３０】
スキャナ２１２は、画像を光学的に読み取り、サーバ１０２内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３１】
図３は、端末のハードウェア構成例を示すブロック図である。図３において、端末Ａ〜Ｃは、プロセッサ３０１と、メモリ３０２と、ストレージ３０３と、表示装置３０４と、入力装置３０５と、ＧＰＳレシーバ３０６と、通信Ｉ／Ｆ３０７と、複数（図３では２個）の通信モジュール３０８と、を備える。また、各構成部はバス３０９によってそれぞれ接続されている。
【００３２】
ここで、プロセッサ３０１は、端末の全体の制御を司る。メモリ３０２は、ＣＰＵ２０１のワークエリアとして使用される主記憶装置である。メモリ３０２としては、揮発性メモリまたは不揮発性メモリを採用することができる。ストレージ３０３は、ＯＳやアプリケーションその他プログラムや、各種データ、ファイルシステムを保存する補助記憶装置である。ストレージ３０３としては、不揮発性メモリやハードディスクを採用することができる。
【００３３】
表示装置３０４は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示するディスプレイである。入力装置３０５は、ユーザ操作により文字、数字、各種指示などを入力する。入力装置３０５としては、キーボード、テンキー、タッチパネルなどが採用される。
【００３４】
ＧＰＳレシーバ３０６は、ＧＰＳ衛星１０４からの信号を受信して、自端末の現在位置情報を取得する。通信Ｉ／Ｆ３０７は、基地局１０１を介して携帯電話網に接続するインターフェースであり、図１に示したネットワーク１０３を介してサーバ１０２と通信可能に接続する。通信モジュール３０８は、他の端末とアドホック通信をおこなうインターフェースである。図３では、例として２個用意されているため、最大で２台の端末と同時にアドホック通信をおこなうことができる。
【００３５】
なお、通信モジュール３０８の個数は、３個以上でもよい。なお、複数の端末間で相互にアドホック通信をおこなう場合は、各端末には、（端末数−１）個の通信モジュール３０８が必要となる。たとえば、５台の端末間で相互にアドホック通信をおこなう場合は、各端末には、４（＝５−１）個の通信モジュール３０８が必要となる。
【００３６】
＜端末間の相互接続処理＞
つぎに、端末間の相互接続について説明する。本実施の形態では、データを共有しあう複数の端末のうちある端末がマスタ宣言をおこなう。マスタ宣言をおこなった端末（マスタ端末）は、他の端末とそれぞれアドホック通信の接続処理をおこなう。マスタ端末を除く残余の端末間では、アドホック通信の接続処理が完了していないため、マスタ端末からの指示により、残余の端末間でアドホック通信の接続処理をおこなうこととなる。
【００３７】
図４は、アドホック通信の接続処理のシーケンスを示す説明図である。図４では、例として端末Ａをマスタ端末とするが、端末Ｂや端末Ｃがマスタ端末になってもよい。まず、端末Ａは、マスタ宣言処理をする（ステップＳ４０１）。マスタ宣言処理によりマスタ端末となった端末Ａ（マスタ端末Ａ）は、端末Ｂ，Ｃとの接続処理を実行する（ステップＳ４０２、Ｓ４０３）。端末Ｂ，Ｃとの接続処理（ステップＳ４０２、Ｓ４０３）の詳細については後述する。
【００３８】
このあと、マスタ端末Ａは、グループ内端末を特定する（ステップＳ４０４）。グループとは、データ共有しあう端末群であり、具体的には、図４の例では、マスタ端末Ａとマスタ端末Ａがアドホック通信の接続処理ができた端末Ｂ，Ｃからなる。
【００３９】
すなわち、マスタ端末Ａは、接続処理による接続先の端末Ｂ，Ｃを特定する。この特定は、接続先の端末Ｂ，Ｃどうしでアドホック通信の接続処理を実行させるためである。このあと、マスタ端末Ａは、接続先の端末Ｂ，Ｃのうち端末Ｂに対して端末Ｃとのアドホック通信の接続指示を通知する（ステップＳ４０５）。
【００４０】
そして、接続指示の通知を受けた端末Ｂは、接続要求先を特定する（ステップＳ４０６）。この場合は、接続要求先は端末Ｃのみとなるため、端末Ｂは、端末Ｃとの接続処理を実行する（ステップＳ４０７）。この接続処理（ステップＳ４０７）の詳細についても後述する。
【００４１】
また、仮に、端末Ｄ（不図示）がグループ内端末として特定されていたとすると、Ｓ４０６での接続要求先端末は端末Ｃ、Ｄとなり、端末Ｂは、端末Ｃとの接続処理と、端末Ｄとの接続処理を実行することとなる。この場合、端末Ａは、端末Ｃに対しても、接続指示を通知し（ステップＳ４０５）、端末Ｃは、要求先特定（ステップＳ４０６）をして接続要求先として端末Ｄを特定する。そして、端末Ｃは、端末Ｄとの接続処理を実行することとなる（ステップＳ４０７）。
【００４２】
端末Ｂが端末Ｃとの接続処理を完了させると、端末Ｂは、マスタ端末Ａに完了通知を送信する（ステップＳ４０８）。完了通知を受け取ると、マスタ端末Ａは、グループ内端末の端末ＩＤを設定する（ステップＳ４０９）。端末ＩＤは、グループ内端末に対して割り当てられる固有の識別情報である。たとえば、マスタ端末Ａの端末ＩＤは０、端末Ｂは１、端末Ｃは２というように、マスタ端末を０として０から始まる連続番号とする。
【００４３】
そして、マスタ端末Ａは、アドホック通信により、端末Ｂ，Ｃに、端末ＩＤおよび端末総数を送信する（ステップＳ４１０）。端末総数とは、グループ内端末の総数である。この場合は、端末Ａ〜Ｃであるため、端末総数は３である。したがって、端末Ｂには、端末ＩＤ：１および端末総数：３を送信する。また、端末Ｃには、端末ＩＤ：２および端末総数：３を送信することとなる。
【００４４】
図５は、図４に示した接続処理（ステップＳ４０２、Ｓ４０３、Ｓ４０７）の詳細な処理手順を示す説明図である。図５では、接続要求する端末を「要求元端末」、接続要求先となる端末を「要求先端末」とする。したがって、ステップＳ４０２では、要求元端末がマスタ端末Ａ、要求先端末が端末Ｂとなる。また、ステップＳ４０３では、要求元端末がマスタ端末Ａ、要求先端末が端末Ｃとなる。さらに、ステップＳ４０７では、要求元端末が端末Ｂ、要求先端末が端末Ｃとなる。
【００４５】
まず、要求元端末は、接続要求を要求先端末に送信する（ステップＳ５０１）。ステップＳ４０２、Ｓ４０３の場合は、マスタ端末Ａのマスタ宣言処理（ステップＳ４０１）が接続要求のトリガとなる。ステップＳ４０７の場合は、要求先特定（ステップＳ４０６）が接続要求のトリガとなる。
【００４６】
要求先端末は、接続要求を受信すると、応答処理を実行する（ステップＳ５０２）。そして、要求先端末は、要求元端末に対し、アドホック通信の接続許可／不許可通知を送信する。
【００４７】
要求元端末は、要求先端末からの接続許可／不許可通知を受信して、アドホック通信の接続が許可であるか不許可であるかを判断する（ステップＳ５０３）。許可である場合（ステップＳ５０３：Ｙｅｓ）、セッション確立となり（ステップＳ５０４）、接続元端末と接続先端末との間でアドホック通信が可能となる。一方、不許可である場合（ステップＳ５０３：Ｎｏ）、セッションが確立しない。この場合、再度同じ要求先端末に対してリトライするか、要求先端末を変えてリトライすることとなる。
【００４８】
＜各端末でのダウンロード処理＞
つぎに、各端末でのダウンロード処理について説明する。本実施の形態では、対象となるデータを端末総数で分割してダウンロードする。各端末でダウンロードされるデータを「担当データ」と称す。どのデータをダウンロードするかは、マスタ端末Ａがサーバ１０２にアクセスして決めることとする。
【００４９】
図６は、マスタ端末Ａでのダウンロード画面を示す説明図である。（Ａ）は、ダウンロード対象となるコンテンツのジャンルを指定する画面である。ここで、たとえば、「映画」を選択したとする。（Ｂ）は、（Ａ）において「映画」を選択した場合の遷移画面である。「映画」を選択すると、つぎは、各種コンテンツの中からダウンロードしたいコンテンツを選択する。ここでは、例として、「７７人の侍」を選択したとする。
【００５０】
つぎに、ダウンロード画面は、（Ｃ）に遷移する。（Ｃ）では、マスタ端末Ａの担当データがダウンロードされる。ダウンロードが完了すると、（Ｄ）に遷移する。なお、マスタ端末Ａ以外の端末Ｂ，Ｃについては、（Ｂ）で指定されたコンテンツ「７７人の侍」が保存されているＵＲＬがマスタ端末Ａから通知され、コンテンツ「７７人の侍」の中の担当データがダウンロードされることとなる。
【００５１】
図７は、ダウンロード処理のシーケンスを示す説明図である。まず、マスタ端末Ａは、サーバ１０２にアクセスして、図６の（Ｂ）のように選択したコンテンツに関するファイル（対象ファイル）のＵＲＬを取得する（ステップＳ７０１）。
【００５２】
そして、マスタ端末Ａは、取得したＵＲＬを端末Ｂ，Ｃにアドホック通信により通知する（ステップＳ７０２）。このあと、マスタ端末Ａは、サーバ１０２にアクセスして、マスタ端末Ａの担当データのダウンロード処理を実行する（ステップＳ７０３）。
【００５３】
また、ステップＳ７０２でＵＲＬの通知を受けた端末Ｂは、サーバ１０２にアクセスして、端末Ｂの担当データのダウンロード処理を実行する（ステップＳ７０４）。そして、端末Ｂは、ダウンロード完了後に、担当データのダウンロードの完了通知をマスタ端末Ａに送信する（ステップＳ７０５）。
【００５４】
また、ステップＳ７０２でＵＲＬの通知を受けた端末Ｃは、サーバ１０２にアクセスして、端末Ｃの担当データのダウンロード処理を実行する（ステップＳ７０６）。そして、端末Ｃは、ダウンロード完了後に、担当データのダウンロードの完了通知をマスタ端末Ａに送信する（ステップＳ７０７）。
【００５５】
図８は、担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。図８において、サーバ１０２にアクセスして担当データをダウンロードする端末を「担当端末」と称す。したがって、マスタ端末Ａも端末Ｂ，Ｃも担当端末である。
【００５６】
担当端末は、まず、取得または通知を受けたサーバ１０２のＵＲＬにしたがって、サーバ１０２に対しＷｅｂページ要求を送信する（ステップＳ８０１）。サーバ１０２は、Ｗｅｂページ要求を受け付けると、担当端末に対し、Ｗｅｂページを送信する（ステップＳ８０２）。そして、担当端末は、Ｗｅｂページから対象ファイルを選択する（ステップＳ８０３）。具体的には、たとえば、マスタ端末Ａの場合、図６に示した（Ａ）、（Ｂ）のように対象ファイル（コンテンツ：「７７人の侍」）を選択する。一方、端末Ｂ，Ｃの場合、マスタ端末Ａにより対象ファイルが決められているため、対象ファイルは選択しない。
【００５７】
このあと、担当端末は、ダウンロード区間算出処理を実行する（ステップＳ８０４）。ダウンロード区間算出処理（ステップＳ８０４）の詳細については後述する。ダウンロード区間算出処理（ステップＳ８０４）によりダウンロード区間が算出されると、担当端末は、サーバ１０２に対しダウンロード要求およびダウンロード区間Ｉ（ｋ）を送信する。
【００５８】
サーバ１０２は、担当端末からダウンロード要求およびダウンロード区間Ｉ（ｋ）を受信すると、受信したダウンロード区間Ｉ（ｋ）の担当データが対象ファイルの中に存在するか否かを判断する（ステップＳ８０５）。存在する場合（ステップＳ８０５：Ｙｅｓ）、サーバ１０２は、ダウンロード区間Ｉ（ｋ）で規定される担当データを担当端末に送信する（ステップＳ８０６）。担当端末は、サーバ１０２から送信されてくる担当データを内部の記憶装置（メモリ３０２またはファイルシステム）に格納する（ステップＳ８０７）。
【００５９】
一方、ステップＳ８０５において、受信したダウンロード区間Ｉ（ｋ）の担当データが対象ファイルの中に存在しない場合（ステップＳ８０５：Ｎｏ）、サーバ１０２は、完了通知を担当端末に送信する（ステップＳ８０８）。これにより、担当データのダウンロード処理を終了する。
【００６０】
図９は、ダウンロード区間算出処理（ステップＳ８０４）の詳細な処理手順を示すフローチャートである。まず、担当端末は、ダウンロード区間Ｉ（ｋ）のダウンロード開始位置ｓｔａｒｔ（ｋ）をｓｔａｒｔ（ｋ）＝ｋ×Ｓとする（ステップＳ９０１）。また、担当端末は、ダウンロード区間Ｉ（ｋ）のダウンロード終了位置ｅｎｄ（ｋ）をｅｎｄ（ｋ）＝ｓｔａｒｔ（ｋ）＋Ｓ−１とする（ステップＳ９０２）。
【００６１】
ここで、ｋの初期値は、担当端末の端末ＩＤである。Ｓはシークサイズである。シークサイズＳはあらかじめ決めておく。そして、担当端末は、ダウンロード要求およびダウンロード区間Ｉ（ｋ）をサーバ１０２に送信する（ステップＳ９０３）。このあと、ｋにｎ（端末数）を加算してｋを更新し（ステップＳ９０４）、ステップＳ９０１に戻る。
【００６２】
＜運用方式設定処理＞
つぎに、運用方式設定処理について説明する。運用方式とは、各端末にダウンロードされたデータを共有しあう方式である。運用方式には、分散方式、疎結合方式、密結合方式の３種類ある。分散方式とは、各端末が、サーバ１０２に対し担当データ以外のデータについてダウンロード要求をして、担当データ以外のデータをダウンロードする方式である。
【００６３】
疎結合方式および密結合方式は、ともに、アドホック通信により他端末がダウンロードした担当データにアクセスする方式である。特に、疎結合方式は、アドホック通信により他端末がダウンロードした担当データを記憶する他端末のファイルシステムにアクセスする方式である。
【００６４】
具体的には、自端末から他端末の担当データを指定する論理アドレスを、他端末のファイルシステムでのファイルパスで指定される担当データの物理アドレスに変換（論物変換）することで、他端末の担当データにアクセスする方式である。
【００６５】
また、密結合方式は、担当データ以外のデータ（他端末から見れば担当データ）をダウンロードした端末内のメモリ３０２にアクセスする方式である。具体的には、自端末から他端末の担当データを指定する論理アドレスを、他端末のメモリ３０２上の担当データを指定する論理アドレスに変換（論論変換）することで、他端末の担当データにアクセスする方式である。この場合、他端末では、変換された論理アドレスを担当データの物理アドレスに変換（論物変換）することで、担当データにアクセスすることとなる。
【００６６】
図１０は、運用方式設定シーケンスを示す説明図である。アドホック通信の接続元端末および接続先端末ともに、一定時間経過するのを待ち受け（ステップＳ１００１：Ｎｏ）、一定時間経過した場合（ステップＳ１００１：Ｙｅｓ）、ＧＰＳレシーバ３０６で受信したデータを用いて自端末の現在位置を示す座標情報を更新して（ステップＳ１００２）、ステップＳ１００１に戻る。
【００６７】
このように接続元端末および接続先端末の現在位置を示す座標情報がリアルタイムで更新される状況下で、接続元端末は、接続先端末の座標情報取得要求を接続先端末に送信する（ステップＳ１００３）。接続先端末は、座標情報取得要求を受信すると、接続先端末の最新の座標情報を接続元端末に送信する（ステップＳ１００４）。
【００６８】
接続元端末は、接続先端末の座標情報を受信すると、接続先端末との相対距離を算出する（ステップＳ１００５）。そして、接続元端末は、運用方式決定処理を実行する（ステップＳ１００６）。運用方式決定処理（ステップＳ１００６）の詳細については後述する。そして、接続元端末は、決定された運用方式を接続先端末に通知する（ステップＳ１００７）。
【００６９】
その後、接続元端末は、接続元端末での運用方式設定処理を実行し（ステップＳ１００８）、接続先端末は、接続先端末での運用方式設定処理を実行する（ステップＳ１００９）。各運用方式設定処理（ステップＳ１００８、Ｓ１００９）の詳細については後述するが、接続元端末および接続先端末の現在位置を示す座標情報がリアルタイムで更新される。したがって、運用方式は動的に変更されることとなり、状況に応じて最適な運用方式に決定されることとなる。
【００７０】
図１１は、図１０に示した運用方式決定処理（ステップＳ１００６）の詳細な処理手順を示すフローチャートである。まず、この運用方式決定処理（ステップＳ１００６）では、端末間の相対距離や通信帯域Ｒｔとストレージ帯域Ｒｓ／メモリ帯域Ｒｍとの比較結果に応じて接続元端末と接続先端末との運用方式が決定される。なお、通信帯域Ｒｔの比較においては、ある程度のレンジ（本例では±ΔＲｔ）を持たせることとする。また、ストレージ帯域Ｒｓ／メモリ帯域Ｒｍは、自端末内のメモリ３０２またはストレージ３０３に記憶されているものとする。
【００７１】
まず、接続元端末は、座標情報取得期間の通信帯域Ｒｔを検出する（ステップＳ１１０１）。そして、接続元端末は、接続元端末の座標情報と接続先端末の座標情報とで求められる相対距離が所定距離以内か否かを判断する（ステップＳ１１０２）。
【００７２】
所定距離以内でない場合（ステップＳ１１０２：Ｎｏ）、接続元端末は、接続元端末と接続先端末との間の運用方式を分散方式に決定する（ステップＳ１１０３）。そして、接続元端末は、決定された運用方式を接続先端末に通知する（ステップＳ１１０４）。
【００７３】
一方、ステップＳ１１０２において、相対距離が所定距離以内である場合（ステップＳ１１０２：Ｙｅｓ）、接続元端末は、通信帯域Ｒｔとストレージ帯域Ｒｓとを比較する（ステップＳ１１０５）。そして、通信帯域Ｒｔとストレージ帯域Ｒｓとの比較結果が、Ｒｔ＜Ｒｓ−ΔＲｓである場合（ステップＳ１１０５：Ｒｔ＜Ｒｓ−ΔＲｓ）、接続元端末は、接続元端末と接続先端末との間の運用方式を分散方式に決定する（ステップＳ１１０３）。そして、接続元端末は、決定された運用方式を接続先端末に通知する（ステップＳ１１０４）。
【００７４】
一方、通信帯域Ｒｔとストレージ帯域Ｒｓとの比較結果が、Ｒｓ−ΔＲｓ≦Ｒｔ≦Ｒｓ＋ΔＲｓである場合（ステップＳ１１０５：Ｒｓ−ΔＲｓ≦Ｒｔ≦Ｒｓ＋ΔＲｓ）、接続元端末は、接続元端末と接続先端末との間の運用方式を疎結合方式に決定する（ステップＳ１１０６）。そして、接続元端末は、決定された運用方式を接続先端末に通知する（ステップＳ１１０４）。
【００７５】
また、通信帯域Ｒｔとストレージ帯域Ｒｓとの比較結果が、Ｒｔ＞Ｒｓ＋ΔＲｓである場合（ステップＳ１１０５：Ｒｔ＞Ｒｓ＋ΔＲｓ）、接続元端末は、通信帯域Ｒｔとメモリ帯域Ｒｍとを比較する（ステップＳ１１０７）。そして、通信帯域Ｒｔとメモリ帯域Ｒｍとの比較結果が、Ｒｔ＜Ｒｍである場合（ステップＳ１１０７：Ｒｔ＜Ｒｍ）、接続元端末は、接続元端末と接続先端末との間の運用方式を疎結合方式に決定する（ステップＳ１１０６）。そして、接続元端末は、決定された運用方式を接続先端末に通知する（ステップＳ１１０４）。
【００７６】
一方、通信帯域Ｒｔとメモリ帯域Ｒｍとの比較結果が、Ｒｔ≧Ｒｍである場合（ステップＳ１１０７：Ｒｔ≧Ｒｍ）、接続元端末は、接続元端末と接続先端末との間の運用方式を密結合方式に決定する（ステップＳ１１０８）。そして、接続元端末は、決定された運用方式を接続先端末に通知する（ステップＳ１１０４）。
【００７７】
このように、端末間の相対距離や通信帯域Ｒｔの大きさに応じて接続元端末と接続先端末との間の運用方式が決定されることとなる。なお、ステップＳ１１０２において、相対距離が所定距離以内である場合（ステップＳ１１０２：Ｙｅｓ）、通信帯域Ｒｔとストレージ帯域Ｒｓとを比較（ステップＳ１１０５）するまでもなく、疎結合方式に決定してもよい。
【００７８】
また、ステップＳ１１０２において、相対距離が所定距離以内である場合（ステップＳ１１０２：Ｙｅｓ）、通信帯域Ｒｔとストレージ帯域Ｒｓとを比較（ステップＳ１１０５）や通信帯域Ｒｔとメモリ帯域Ｒｍとを比較（ステップＳ１１０７）するまでもなく、密結合方式に決定してもよい。
【００７９】
また、ステップＳ１１０５において、通信帯域Ｒｔとストレージ帯域Ｒｓとの比較結果が、Ｒｔ＞Ｒｓ＋ΔＲｓである場合（ステップＳ１１０５：Ｒｔ＞Ｒｓ＋ΔＲｓ）、通信帯域Ｒｔとメモリ帯域Ｒｍとを比較（ステップＳ１１０７）するまでもなく、疎結合方式または密結合方式のいずれか一方の方式に決定してもよい。
【００８０】
図１２は、図１０に示した接続元端末での運用方式設定処理（ステップＳ１００８）の詳細な処理手順を示すフローチャートである。まず、接続元端末は、決定された運用方式を確認する（ステップＳ１２０１）。分散方式である場合（ステップＳ１２０１：分散）、接続元端末での運用方式設定処理（ステップＳ１００８）を終了する。
【００８１】
一方、疎結合方式である場合（ステップＳ１２０１：疎結合）、接続元端末は、接続先端末にダウンロードされた担当データのファイルパスを接続先端末から取得する（ステップＳ１２０２）。つぎに、接続元端末は、接続先端末にダウンロードされた担当データを指定する論理アドレスをアプリケーションが参照可能な論理アドレス空間に設定する（ステップＳ１２０３）。
【００８２】
そして、接続元端末は、ステップＳ１２０２で取得したファイルパスを、ステップＳ１２０３での指定論理アドレスに書き込む。このあと、接続元端末は、論論変換停止設定をおこなう（ステップＳ１２０５）。これにより、接続元端末での運用方式設定処理（ステップＳ１００８）を終了する。
【００８３】
また、ステップＳ１２０１において、密結合方式である場合（ステップＳ１２０１：密結合）、接続元端末は、接続先端末でダウンロードされた担当データの接続元端末での論理アドレス（変換元論理アドレス）を論理アドレス空間に設定する（ステップＳ１２０６）。つぎに、接続元端末は、接続先端末でダウンロードされた担当データの接続先端末での論理アドレス（変換先論理アドレス）を接続先端末から取得する（ステップＳ１２０７）。
【００８４】
そして、接続元端末は、論論変換テーブルを生成する（ステップＳ１２０８）。論論変換テーブルとは、変換元論理アドレスと変換先論理アドレスと変換先となる接続先端末の端末ＩＤとを対応付けたテーブルである。このあと、接続元端末は、論論変換起動設定をおこなう（ステップＳ１２０９）。論論変換起動設定とは、論論変換テーブルへのアクセスを可能にする設定である。
【００８５】
これにより、接続元端末での運用方式設定処理（ステップＳ１００８）を終了する。このように、接続元端末での運用方式設定処理（ステップＳ１００８）では、疎結合または密結合に応じて接続先端末とのマウントをおこなうことができる。
【００８６】
図１３は、図１０に示した接続先端末での運用方式設定処理（ステップＳ１００９）の詳細な処理手順を示すフローチャートである。接続先端末は、接続元端末からの運用方式を待ち受け（ステップＳ１３０１：Ｎｏ）、運用方式が受信された場合（ステップＳ１３０１：Ｙｅｓ）、接続先端末は、受信された運用方式を確認する（ステップＳ１３０２）。分散方式である場合（ステップＳ１３０２：分散）、接続先端末での運用方式設定処理（ステップＳ１００９）を終了する。
【００８７】
一方、疎結合方式である場合（ステップＳ１３０２：疎結合）、接続先端末は、接続元端末にダウンロードされた担当データのファイルパスを接続元端末から取得する（ステップＳ１３０３）。つぎに、接続先端末は、接続元端末にダウンロードされた担当データを指定する論理アドレスをアプリケーションが参照可能な論理アドレス空間に設定する（ステップＳ１３０４）。
【００８８】
そして、接続先端末は、ステップＳ１３０３で取得したファイルパスを、ステップＳ１３０４での指定論理アドレスに書き込む。このあと、接続先端末は、論論変換停止設定をおこなう（ステップＳ１３０６）。これにより、接続先端末での運用方式設定処理（ステップＳ１００９）を終了する。
【００８９】
また、ステップＳ１３０２において、密結合方式である場合（ステップＳ１３０２：密結合）、接続先端末は、接続元端末でダウンロードされた担当データの接続先端末での論理アドレス（変換元論理アドレス）を論理アドレス空間に設定する（ステップＳ１３０７）。つぎに、接続先端末は、接続元端末でダウンロードされた担当データの接続元端末での論理アドレス（変換先論理アドレス）を接続元端末から取得する（ステップＳ１３０８）。
【００９０】
そして、接続先端末は、論論変換テーブルを生成する（ステップＳ１３０９）。論論変換テーブルとは、変換元論理アドレスと変換先論理アドレスと変換先となる接続元端末の端末ＩＤとを対応付けたテーブルである。このあと、接続先端末は、論論変換起動設定をおこなう（ステップＳ１３１０）。論論変換起動設定とは、論論変換テーブルへのアクセスを可能にする設定である。これにより、接続先端末での運用方式設定処理（ステップＳ１００９）を終了する。このように、接続先端末での運用方式設定処理（ステップＳ１００９）では、疎結合または密結合に応じて接続元端末とのマウントをおこなうことができる。
【００９１】
すなわち、接続元端末での運用方式設定処理（ステップＳ１００８）と接続先端末での運用方式設定処理（ステップＳ１００９）とが実行されることで、接続元端末と接続先端末との間でクロスマウントが実現されることとなる。
【００９２】
＜疎結合の具体例＞
つぎに、疎結合の具体例について図１４〜図１７を用いて説明する。
【００９３】
図１４は、端末Ａおよび端末Ｂにおいてそれぞれ担当データＤａ，Ｄｂをダウンロードした状態を示す説明図である。図１４において、端末Ａの担当データＤａのファイルシステムＦＳａでのファイルパスをｆｐａ、端末Ｂの担当データＤｂのファイルシステムＦＳｂでのファイルパスをｆｐｂとする。
【００９４】
また、端末Ａの担当データＤａは、端末Ａのアプリケーションから見える論理アドレス空間ＬＳａ内では、論理アドレス［０ｘ０１５０，０ｘ０２４９］に保存されているものとする。また、端末Ｂの担当データＤｂは、端末Ｂのアプリケーションから見える論理アドレス空間ＬＳｂ内では、論理アドレス［０ｘ０２００，０ｘ０２９９］に保存されているものとする。
【００９５】
図１５は、図１４に示した状態から、端末Ａを接続元端末、端末Ｂを接続先端末として疎結合した状態を示す説明図である。具体的には、端末Ａの論理アドレス空間ＬＳａの空きアドレスには、端末Ｂの端末ＩＤおよび担当データＤｂへのファイルパスｆｐｂが設定される。これにより、端末ＢのファイルシステムＦＳｂが端末Ａにマウントされることとなる。同様に、端末Ｂの論理アドレス空間ＬＳｂの空きアドレスには、端末Ａの端末ＩＤおよび担当データＤａへのファイルパスｆｐａが設定される。これにより、端末ＡのファイルシステムＦＳａが端末Ｂにマウントされることとなる。
【００９６】
図１６は、図１５による疎結合設定後におけるデータアクセスを示す説明図（その１）である。図１６では、端末Ａが担当データＤａ，Ｄｂにアクセスする例である。端末Ａが担当データＤａにアクセスする場合は、端末Ａのアプリケーションが論理アドレス空間ＬＳａの担当データＤａの論理アドレスを指定することで、端末Ａのストレージ３０３のコントローラが担当データＤａへのファイルパスｆｐａを参照して論物変換する。そして、論物変換された物理アドレスを指定することで、端末Ａは、担当データＤａにアクセスすることができる。
【００９７】
また、端末Ａが担当データＤｂにアクセスする場合は、端末Ａのアプリケーションが論理アドレス空間ＬＳａの端末Ｂの端末ＩＤおよびファイルパスｆｐｂを有する論理アドレスを指定し、通信ドライバを起動する。そして、端末Ａは通信ドライバを介して、端末Ｂに対しファイルパスｆｐｂを送信する。端末Ｂでは、端末Ａからのファイルパスｆｐｂを参照して、端末Ｂのストレージ３０３内の担当データＤｂにアクセスする。
【００９８】
そして、リードアクセスの場合は、端末Ｂは担当データＤｂを端末Ａに送信する。端末Ａは端末Ｂからの担当データＤｂを受信する。また、ライトアクセスの場合は、端末Ｂはライト完了通知を端末Ａに送信する。このように、端末Ａは、担当データＤｂにアクセスすることができる。
【００９９】
図１７は、図１５による疎結合設定後におけるデータアクセスを示す説明図（その２）である。図１７では、端末Ｂが担当データＤａ，Ｄｂにアクセスする例である。端末Ｂが担当データＤｂにアクセスする場合は、端末Ｂのアプリケーションが論理アドレス空間ＬＳｂの担当データＤｂの論理アドレスを指定することで、端末Ｂ内のストレージ３０３のコントローラが担当データＤｂへのファイルパスｆｐｂを参照して論物変換する。そして、論物変換された物理アドレスを指定することで、端末Ｂは、担当データＤｂにアクセスすることができる。
【０１００】
また、端末Ｂが担当データＤａにアクセスする場合は、端末Ｂのアプリケーションが論理アドレス空間ＬＳｂの端末Ａの端末ＩＤおよびファイルパスｆｐａを有する論理アドレスを指定し、通信ドライバを起動する。そして、端末Ｂは通信ドライバを介して、端末Ａに対しファイルパスｆｐａを送信する。端末Ａでは、端末Ｂからのファイルパスｆｐａを参照して、端末Ａのストレージ３０３内の担当データＤａにアクセスする。
【０１０１】
そして、リードアクセスの場合は、端末Ａは担当データＤａを端末Ｂに送信する。端末Ｂは端末Ａからの担当データＤａを受信する。また、ライトアクセスの場合は、端末Ａはライト完了通知を端末Ｂに送信する。このように、端末Ｂは、担当データＤａにアクセスすることができる。
【０１０２】
＜密結合の具体例＞
つぎに、密結合の具体例について図１８〜図２１を用いて説明する。
【０１０３】
図１８は、端末Ａおよび端末Ｂにおいてそれぞれ担当データＤａ，Ｄｂをダウンロードした状態を示す説明図である。図１８において、端末Ａの担当データＤａのファイルシステムＦＳａでのファイルパスをｆｐａ、端末Ｂの担当データＤｂのファイルシステムＦＳｂでのファイルパスをｆｐｂとする。
【０１０４】
また、端末Ａの担当データＤａは、端末Ａのアプリケーションから見える論理アドレス空間ＬＳａ内では、論理アドレス［０ｘ０１５０，０ｘ０２４９］に保存されているものとする。また、端末Ｂの担当データＤｂは、端末Ｂのアプリケーションから見える論理アドレス空間ＬＳｂ内では、論理アドレス［０ｘ０２００，０ｘ０２９９］に保存されているものとする。
【０１０５】
また、端末Ａは、密結合状態になると、担当データＤａを端末Ａのストレージ３０３内のファイルシステムＦＳａから端末Ａのメモリ３０２（以下、メモリＭａ）に読み出す。すでに読み出されている場合は不要である。担当データＤａのメモリＭａ上の物理アドレス［０ｘ１１００，０ｘ１１９９］は、論理アドレス空間ＬＳａの論理アドレス［０ｘ０１５０，０ｘ０２４９］に対応づけされる。これにより、メモリＭａのコントローラは、論理アドレス［０ｘ０１５０，０ｘ０２４９］が指定されると、メモリＭａ上の物理アドレス［０ｘ１１００，０ｘ１１９９］に論物変換する。
【０１０６】
同様に、端末Ｂは、密結合状態になると、担当データＤｂを端末Ｂのストレージ３０３内のファイルシステムＦＳｂから端末Ｂのメモリ３０２（以下、メモリＭｂ）に読み出す。すでに読み出されている場合は不要である。担当データＤｂのメモリ３０２上の物理アドレス［０ｘ１１５０，０ｘ１２４９］は、論理アドレス空間ＬＳｂの論理アドレス［０ｘ０２００，０ｘ０２９９］に対応づけされる。これにより、メモリＭｂのコントローラは、論理アドレス［０ｘ１１５０，０ｘ１２４９］が指定されると、メモリＭｂ上の物理アドレス［０ｘ０２００，０ｘ０２９９］に論物変換する。
【０１０７】
図１９は、図１８に示した状態から、端末Ａを接続元端末、端末Ｂを接続先端末として密結合した状態を示す説明図である。具体的には、端末Ａは、担当データＤｂの論理アドレス（変換先論理アドレス）を端末Ｂから取得し、端末Ａの論理アドレス空間に担当データＤｂの変換元論理アドレスを割り当てる。そして、端末Ａは、変換元論理アドレスと変換先端末ＩＤと変換先論理アドレスとを対応付けした論論変換テーブルＬＬＴａを生成する。これにより、端末ＢのメモリＭｂが端末Ａにマウントされることとなる。
【０１０８】
同様に、端末Ｂは、担当データＤａの論理アドレス（変換先論理アドレス）を端末Ａから取得し、端末Ｂの論理アドレス空間に担当データＤａの変換元論理アドレスを割り当てる。そして、端末Ｂは、変換元論理アドレスと変換先端末ＩＤと変換先論理アドレスとを対応付けした論論変換テーブルＬＬＴｂを生成する。これにより、端末ＡのメモリＭａが端末Ｂにマウントされることとなる。
【０１０９】
図２０は、図１９による密結合設定後におけるデータアクセスを示す説明図（その１）である。図２０では、端末Ａが担当データＤａ，Ｄｂにアクセスする例である。端末Ａが担当データＤａにアクセスする場合は、端末Ａのアプリケーションが論理アドレス空間ＬＳａの担当データＤａの論理アドレスを指定することで、メモリＭａのコントローラが担当データＤａの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Ａは、メモリＭａ上の担当データＤａにアクセスすることができる。
【０１１０】
また、端末Ａが担当データＤｂにアクセスする場合は、端末Ａのアプリケーションが論理アドレス空間ＬＳａの担当データＤｂの論理アドレスを指定し、指定した論理アドレスを変換元論理アドレスとして論論変換テーブルＬＬＴａを参照する。論論変換テーブルＬＬＴａでは、変換先の端末ＩＤと変換先論理アドレスが特定される。
【０１１１】
したがって、端末Ａは、通信ドライバを起動して、変換先である端末Ｂに対し、変換先論理アドレスを送信する。端末Ｂでは、端末Ａからの変換先論理アドレスを参照して、メモリ３０２のコントローラが担当データＤｂの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Ｂは、メモリＭｂ上の担当データＤｂにアクセスすることができる。
【０１１２】
このあと、リードアクセスの場合は、端末Ｂは担当データＤｂを端末Ａに送信する。端末Ａは端末Ｂからの担当データＤｂを受信する。また、ライトアクセスの場合は、端末Ｂはライト完了通知を端末Ａに送信する。このように、端末Ａは、担当データＤｂにアクセスすることができる。
【０１１３】
図２１は、図１９による密結合設定後におけるデータアクセスを示す説明図（その２）である。図２１では、端末Ｂが担当データＤａ，Ｄｂにアクセスする例である。端末Ｂが担当データＤｂにアクセスする場合は、端末Ｂのアプリケーションが論理アドレス空間ＬＳｂの担当データＤｂの論理アドレスを指定することで、メモリＭｂのコントローラが担当データＤｂの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Ｂは、メモリＭｂ上の担当データＤｂにアクセスすることができる。
【０１１４】
また、端末Ｂが担当データＤａにアクセスする場合は、端末Ｂのアプリケーションが論理アドレス空間ＬＳｂの担当データＤａの論理アドレスを指定し、指定した論理アドレスを変換元論理アドレスとして論論変換テーブルＬＬＴｂを参照する。論論変換テーブルＬＬＴｂでは、変換先の端末ＩＤと変換先論理アドレスが特定される。
【０１１５】
したがって、端末Ｂは、通信ドライバを起動して、変換先である端末Ａに対し、変換先論理アドレスを送信する。端末Ａでは、端末Ｂからの変換先論理アドレスを参照して、メモリＭａのコントローラが担当データＤａの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Ａは、メモリＭａ上の担当データＤａにアクセスすることができる。
【０１１６】
このあと、リードアクセスの場合は、端末Ａは担当データＤａを端末Ｂに送信する。端末Ｂは端末Ａからの担当データＤａを受信する。また、ライトアクセスの場合は、端末Ａはライト完了通知を端末Ｂに送信する。このように、端末Ｂは、担当データＤａにアクセスすることができる。
【０１１７】
図２２は、端末間のデータアクセス処理のシーケンスを示す説明図である。まずアクセス元端末は、データアクセス（リード／ライト）要求があるまで待ち受け（ステップＳ２２０１：Ｎｏ）、データアクセス要求があった場合（ステップＳ２２０１：Ｙｅｓ）、アクセス元端末は、論論変換が起動しているか否かを判断する（ステップＳ２２０２）。起動している場合（ステップＳ２２０２：Ｙｅｓ）、アクセス元端末は、論論変換テーブルを参照して論論変換を実行する（ステップＳ２２０３）。
【０１１８】
一方、論論変換が起動していない場合（ステップＳ２２０２：Ｎｏ）、ステップＳ２２０４に移行する。ステップＳ２２０４では、アクセス先端末は、アクセス先が自端末（アクセス元端末）であるか否かを判断する（ステップＳ２２０４）。具体的には、たとえば、疎結合においては端末ＩＤおよびファイルパスが指定されている場合は、端末ＩＤで指定された端末がアクセス先端末となる。密結合の場合は、論論変換テーブルを参照した場合に端末ＩＤで指定された端末がアクセス先端末となる。
【０１１９】
アクセス先が自端末である場合（ステップＳ２２０４：Ｙｅｓ）、アクセス元端末は、アクセス要求で指定された論理アドレスを物理アドレスに論物変換する（ステップＳ２２０５）。そして、アクセス元端末は、自端末内の変換された物理アドレスにアクセスする（ステップＳ２２０６）。これにより、データアクセスが終了する。
【０１２０】
一方、ステップＳ２２０４において、アクセス先が他端末である場合（ステップＳ２２０４：Ｎｏ）、アクセス元端末は、通信ドライバを起動して（ステップＳ２２０７）、端末間データアクセス処理を実行する（ステップＳ２２０８）。これにより、アドホック通信でアクセス先端末へのデータアクセスが可能となる。
【０１２１】
図２３は、図２２に示した端末間データアクセス処理（ステップＳ２２０８）の詳細な処理手順を示すシーケンス図（その１）である。図２３は、データアクセスがリードである場合を示している。まず、アクセス元端末が、アドホック通信により、アクセス先端末にリード要求を送信する（ステップＳ２３０１）。アクセス先端末は、リード要求を受信すると、リード要求を解析する（ステップＳ２３０２）。具体的には、たとえば、アクセス先端末は、リード要求に含まれている情報を取り出す。疎結合の場合はファイルパス、密結合の場合は変換先論理アドレスを取り出す。
【０１２２】
そして、アクセス先端末は、解析で得られた情報に基づいて、リード先となる物理アドレスを特定する（ステップＳ２３０３）。具体的には、たとえば、ファイルパスが取り出された場合は、アクセス先端末は、ファイルパスを参照して物理アドレスを特定する。変換先論理アドレスが取り出された場合は、変換先論理アドレスを論物変換して物理アドレスを特定する。
【０１２３】
このあと、アクセス先端末は、特定された物理アドレスにアクセスして対象データを読み出す（ステップＳ２３０４）。そして、アクセス先端末は、リード要求の送信元であるアクセス元端末に、読み出した対象データを送信する（ステップＳ２３０５）。アクセス元端末は、アクセス先端末から送信されてくる対象データを受信する（ステップＳ２３０６）。これにより、リード時の端末間データアクセス処理（ステップＳ２２０８）を終了する。
【０１２４】
図２４は、図２２に示した端末間データアクセス処理（ステップＳ２２０８）の詳細な処理手順を示すシーケンス図（その２）である。図２４は、データアクセスがライトである場合を示している。まず、アクセス元端末が、アドホック通信により、アクセス先端末にライト要求および対象データを送信する（ステップＳ２４０１）。アクセス先端末は、ライト要求を受信すると、ライト要求を解析する（ステップＳ２４０２）。具体的には、たとえば、アクセス先端末は、ライト要求に含まれている情報を取り出す。疎結合の場合はファイルパスおよび対象データ、密結合の場合は変換先論理アドレスおよび対象データを取り出す。
【０１２５】
そして、アクセス先端末は、解析で得られた情報に基づいて、リード先となる物理アドレスを特定する（ステップＳ２４０３）。具体的には、たとえば、ファイルパスが取り出された場合は、アクセス先端末は、ファイルパスを参照して物理アドレスを特定する。変換先論理アドレスが取り出された場合は、変換先論理アドレスを論物変換して物理アドレスを特定する。
【０１２６】
このあと、アクセス先端末は、特定された物理アドレスにアクセスして対象データを書き込む（ステップＳ２４０４）。そして、アクセス先端末は、ライト要求の送信元であるアクセス元端末に、ライト完了通知を送信する（ステップＳ２４０５）。これにより、ライト時の端末間データアクセス処理（ステップＳ２２０８）を終了する。このように、端末間においてクロスマウントをしておくことで、端末間でのデータアクセスが可能となる。
【０１２７】
＜担当データのダウンロード処理の他の例１＞
図２５は、担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。図８では、担当端末が主体となって担当データをダウンロードする処理について説明したが、図２５では、サーバ１０２が主体となって担当データをダウンロードする処理について説明する。なお、図８と同一処理については同一ステップ番号を付し、その説明を省略する。
【０１２８】
ステップＳ８０３において対象ファイルを選択したあと、担当端末は、サーバ１０２に対し、ダウンロード要求と端末ＩＤ（＝ｋ）と端末総数ｎとを送信する（ステップＳ２５０４）。そして、サーバ１０２は、ダウンロード区間算出処理を実行する（ステップＳ２５０５）。ダウンロード区間算出処理（ステップＳ２５０５）については後述する。このあと、サーバ１０２は、ダウンロード区間で指定された担当データを担当端末に送信する（ステップＳ２５０６）。
【０１２９】
担当端末は、受信した担当データをメモリ３０２またはストレージ３０３に格納する（ステップＳ２５０７）。このあと、すべての担当データをダウンロードした場合、サーバ１０２は、担当端末に完了通知を送信する（ステップＳ２５０８）。これにより、担当データのダウンロード処理を終了する。
【０１３０】
図２６は、図２５に示したダウンロード区間算出処理（ステップＳ２５０５）の詳細な処理手順を示すフローチャートである。まず、サーバ１０２は、ダウンロード区間Ｉ（ｋ）のダウンロード開始位置ｓｔａｒｔ（ｋ）をｓｔａｒｔ（ｋ）＝ｋ×Ｓとする（ステップＳ２６０１）。また、サーバ１０２は、ダウンロード区間Ｉ（ｋ）のダウンロード終了位置ｅｎｄ（ｋ）をｅｎｄ（ｋ）＝ｓｔａｒｔ（ｋ）＋Ｓ−１とする（ステップＳ２６０２）。
【０１３１】
サーバ１０２は、受信したダウンロード区間Ｉ（ｋ）で指定される担当データが対象ファイルの中に存在するか否かを判断する（ステップＳ２６０３）。存在する場合（ステップＳ２６０３：Ｙｅｓ）、サーバ１０２は、ダウンロード区間Ｉ（ｋ）で指定される担当データを担当端末に送信する（ステップＳ２６０４）。
【０１３２】
なお、担当端末は、サーバ１０２から送信されてくる担当データを内部の記憶装置（メモリ３０２またはストレージ３０３）に格納することとなる（ステップＳ２５０７）。このあと、サーバ１０２は、ｋにｎを加算して更新し（ステップＳ２６０５）、ステップＳ２６０１に戻る。これにより、ダウンロード開始位置およびダウンロード終了位置が更新されることとなる。
【０１３３】
一方、ステップＳ２６０３において、受信したダウンロード区間Ｉ（ｋ）で指定される担当データが対象ファイルの中に存在しない場合（ステップＳ２６０３：Ｎｏ）、サーバ１０２は、完了通知を担当端末に送信する（ステップＳ２６０６）。これにより、担当データのダウンロード処理を終了する。
【０１３４】
＜担当データのダウンロード処理の他の例２＞
図２７は、担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。図８では、担当端末が主体となって担当データをダウンロードする処理について説明したが、図２７では、担当端末が主体となって性能差を考慮して担当データをダウンロードする処理について説明する。なお、図８と同一処理については同一ステップ番号を付し、その説明を省略する。また、マスタ端末以外の担当端末を「スレーブ端末」と称す。
【０１３５】
ステップＳ８０３において対象ファイルを選択したあと、マスタ端末は、ダウンロード区間算出処理を実行する（ステップＳ２７０４）。ダウンロード区間算出処理（ステップＳ２７０４）の詳細については後述する。
【０１３６】
ダウンロード区間算出処理（ステップＳ２７０４）では、マスタ端末は、サーバ１０２に対し、ダウンロード要求およびマスタ端末のダウンロード区間Ｉ（ｊ）を送信することとなる（ステップＳ２７０５）。また、マスタ端末は、ダウンロード区間算出処理（ステップＳ２７０４）において、スレーブ端末に対し、スレーブ端末のダウンロード区間Ｉ（ｊ）を送信することとなる（ステップＳ２７０６）。
【０１３７】
このあと、スレーブ端末は、サーバ１０２に対し、ダウンロード要求およびスレーブ端末のダウンロード区間Ｉ（ｊ）を送信する（ステップＳ２７０７）。サーバ１０２は、ダウンロード要求およびダウンロード区間Ｉ（ｊ）を受信すると、受信したダウンロード区間Ｉ（ｊ）の担当データが対象ファイルの中に存在するか否かを判断する（ステップＳ２７０８）。存在する場合（ステップＳ２７０８：Ｙｅｓ）、サーバ１０２は、ダウンロード区間Ｉ（ｊ）で規定される担当データをダウンロード区間Ｉ（ｊ）の送信元の端末（マスタ端末またはスレーブ端末）に送信する（ステップＳ２７０９）。
【０１３８】
マスタ端末は、サーバ１０２から送信されてくる担当データを内部の記憶装置（メモリ３０２またはファイルシステム）に格納する（ステップＳ２７１０）。スレーブ端末は、サーバ１０２から送信されてくる担当データを内部の記憶装置（メモリ３０２またはストレージ３０３）に格納する（ステップＳ２７１１）。
【０１３９】
一方、ステップＳ２７０８において、受信したダウンロード区間Ｉ（ｊ）の担当データが対象ファイルの中に存在しない場合（ステップＳ２７０８：Ｎｏ）、サーバ１０２は、完了通知をダウンロード区間Ｉ（ｊ）の送信元の端末（マスタ端末またはスレーブ端末）に送信する（ステップＳ２７１２）。
【０１４０】
図２８は、図２７に示したダウンロード区間算出処理（ステップＳ２７０４）の詳細な処理手順を示すフローチャートである。まず、マスタ端末は、端末ＩＤであるｋをｋ＝０、端末ＩＤ＝ｋの端末（ｋ＝０ならマスタ端末Ａ、ｋ＝１、２ならスレーブ端末Ｂ，Ｃ）のシークサイズＳ（ｋ）を、Ｓ（ｋ）＝Ｓ×｛ｂ（ｋ）／Σｂ（ｋ）｝に設定する（ステップＳ２８０１）。
【０１４１】
Ｓは固定のシークサイズ、ｂ（ｋ）は端末ＩＤ＝ｋの端末の通信回線速度、Σｂ（ｋ）は、データ共有しあう全端末（端末Ａ〜Ｃ）の通信回線速度の総和である。すなわち、シークサイズＳ（ｋ）は、端末の性能差を考慮したシークサイズとなる。なお、スレーブ端末の通信回線速度ｂ（ｋ）は定期的に取得するものとする。
【０１４２】
つぎに、マスタ端末は、変数ｊをｊ＝ｋとし（ステップＳ２８０２）、ｊ＝０であるか否かを判断する（ステップＳ２８０３）。ｊ＝０である場合（ステップＳ２８０３：Ｙｅｓ）、マスタ端末Ａは、対象ファイルのダウンロード区間Ｉ（ｊ）のダウンロード開始位置ｓｔａｒｔ（ｊ）をｓｔａｒｔ（ｊ）＝０とし（ステップＳ２８０４）、ステップＳ２８０６に移行する。一方、ｊ＝０でない場合（ステップＳ２８０３：Ｎｏ）、マスタ端末Ａは、対象ファイルのダウンロード開始位置ｓｔａｒｔ（ｊ）をｓｔａｒｔ（ｊ）＝ｅｎｄ（ｊ−１）＋１とし（ステップＳ２８０４）、ステップＳ２８０６に移行する。
【０１４３】
ステップＳ２８０６では、マスタ端末は、ダウンロード区間Ｉ（ｊ）のダウンロード終了位置ｅｎｄ（ｊ）をｅｎｄ（ｊ）＝ｓｔａｒｔ（ｊ）＋Ｓ（ｋ）−１に設定する（ステップＳ２８０６）。そして、マスタ端末Ａは、端末ＩＤであるｋがｋ＝０であるか否かを判断する（ステップＳ２８０７）。ｋ＝０である場合（ステップＳ２８０７：Ｙｅｓ）、マスタ端末Ａは、マスタ端末Ａ（ｋ＝０）からのダウンロード要求およびダウンロード区間Ｉ（ｊ）をサーバ１０２に送信し（ステップＳ２８０８）、ステップＳ２８１０に移行する。
【０１４４】
一方、ｋ＝０でない場合（ステップＳ２８０７：Ｎｏ）、マスタ端末は、端末ＩＤ＝ｋ（ｋ≠０）のスレーブ端末に対し、そのダウンロード区間Ｉ（ｊ）を送信して（ステップＳ２８０９）、ステップＳ２８１０に移行する。
【０１４５】
ステップＳ２８１０では、マスタ端末は、変数ｊをインクリメントし（ステップＳ２８１０）、端末ＩＤであるｋもインクリメントする（ステップＳ２８１１）。そして、マスタ端末Ａは、ｋ＝ｎであるか否かを判断する（ステップＳ２８１２）。ｎは端末総数である。ｋ＝ｎでない場合（ステップＳ２８１２：Ｎｏ）、ステップＳ２８０３に戻る。一方、ｋ＝ｎである場合（ステップＳ２８１２：Ｙｅｓ）、マスタ端末は、ｋ＝０に戻して（ステップＳ２８１３）、ステップＳ２８０３に戻る。
【０１４６】
これにより、担当端末の性能、すなわち、シークサイズＳ（ｋ）に応じて、ダウンロード区間Ｉ（ｋ）の区間幅が変動するため、性能がよい担当端末ほどダウンロードするファイルサイズが大きくなることとなる。
【０１４７】
＜担当データのダウンロード処理の他の例３＞
図２９は、担当データのダウンロード処理（ステップＳ７０３、Ｓ７０４、Ｓ７０６）の詳細な処理手順を示すシーケンス図である。図２７では、担当端末が主体となって性能差を考慮して担当データをダウンロードする処理について説明したが、図２９では、サーバ１０２が主体となって担当端末の性能差を考慮して担当データをダウンロードする処理について説明する。なお、図８と同一処理については同一ステップ番号を付し、その説明を省略する。
【０１４８】
ステップＳ８０３において対象ファイルを選択したあと、担当端末は、サーバ１０２に対し、ダウンロード要求、端末ＩＤ（＝ｋ）、回線速度ｂ（ｋ）を送信する（ステップＳ２９０４）。サーバ１０２は、担当端末からのダウンロード要求を受信すると、ダウンロード区間算出処理を実行する（ステップＳ２９０５）。ダウンロード区間算出処理（ステップＳ２９０５）の詳細については後述する。
【０１４９】
サーバ１０２は、ダウンロード区間Ｉ（ｋ）を算出すると、対象ファイルのうちダウンロード区間Ｉ（ｋ）で指定される担当データを担当端末に送信する（ステップＳ２９０６）。担当端末は、担当データを受信すると、担当データを記憶装置（メモリ３０２またはファイルシステム）に格納する（ステップＳ２９０７）。なお、サーバ１０２は、ダウンロード区間算出処理（ステップＳ２９０５）において、ダウンロード区間Ｉ（ｋ）で指定される担当データがない場合は、担当端末に対し完了通知を送信する（ステップＳ２９０８）。
【０１５０】
図３０は、図２９に示したダウンロード区間算出処理（ステップＳ２９０５）の詳細な処理手順を示すフローチャートである。まず、サーバ１０２は、端末ＩＤであるｋをｋ＝０、端末ＩＤ＝ｋの担当端末のシークサイズＳ（ｋ）を、Ｓ（ｋ）＝Ｓ×｛ｂ（ｋ）／Σｂ（ｋ）｝に設定する（ステップＳ３００１）。
【０１５１】
Ｓは固定のシークサイズ、ｂ（ｋ）は端末ＩＤ＝ｋの担当端末の通信回線速度、Σｂ（ｋ）は、データ共有しあう全端末（担当端末Ａ〜Ｃ）の通信回線速度の総和である。すなわち、シークサイズＳ（ｋ）は、担当端末の性能差を考慮したシークサイズとなる。なお、ダウンロード区間算出処理（ステップＳ２９０５）は、すべての担当端末の通信回線速度ｂ（ｋ）がないと実行できないため、ある担当端末からダウンロード要求があった場合に、残りの担当端末の通信回線速度を取得してもよい。また、定期的にすべての担当端末の通信回線速度を取得し、最新の通信回線速度を用いることとしてもよい。
【０１５２】
つぎに、サーバ１０２は、変数ｊをｊ＝ｋとし（ステップＳ３００２）、ｊ＝０であるか否かを判断する（ステップＳ３００３）。ｊ＝０である場合（ステップＳ３００３：Ｙｅｓ）、サーバ１０２は、対象ファイルのダウンロード区間Ｉ（ｊ）のダウンロード開始位置ｓｔａｒｔ（ｊ）をｓｔａｒｔ（ｊ）＝０とし（ステップＳ３００４）、ステップＳ３００６に移行する。一方、ｊ＝０でない場合（ステップＳ３００３：Ｎｏ）、サーバ１０２は、対象ファイルのダウンロード開始位置ｓｔａｒｔ（ｊ）をｓｔａｒｔ（ｊ）＝ｅｎｄ（ｊ−１）＋１とし（ステップＳ３００５）、ステップＳ３００６に移行する。
【０１５３】
ステップＳ３００６では、サーバ１０２は、ダウンロード区間Ｉ（ｊ）のダウンロード終了位置ｅｎｄ（ｊ）をｅｎｄ（ｊ）＝ｓｔａｒｔ（ｊ）＋Ｓ（ｋ）−１に設定する（ステップＳ３００６）。そして、サーバ１０２は、ダウンロード区間Ｉ（ｊ）で指定される担当データがあるか否かを判断する（ステップＳ３００７）。
【０１５４】
ダウンロード区間Ｉ（ｊ）で指定される担当データがある場合（ステップＳ３００７：Ｙｅｓ）、サーバ１０２は、ダウンロード区間Ｉ（ｊ）で指定される担当データを端末ＩＤ＝ｋの担当端末に送信する（ステップＳ３００８）。このあと、変数ｊをインクリメントし（ステップＳ３００９）、端末ＩＤであるｋもインクリメントする（ステップＳ３０１０）。
【０１５５】
そして、サーバ１０２は、ｋ＝ｎであるか否かを判断する（ステップＳ３０１１）。ｎは端末総数である。ｋ＝ｎでない場合（ステップＳ３０１１：Ｎｏ）、ステップＳ３００３に戻る。一方、ｋ＝ｎである場合（ステップＳ３０１１：Ｙｅｓ）、サーバ１０２は、ｋ＝０に戻して（ステップＳ３０１２）、ステップＳ３００３に戻る。
【０１５６】
また、ステップＳ３００７において、ダウンロード区間Ｉ（ｊ）で指定される担当データがない場合（ステップＳ３００７：Ｎｏ）、サーバ１０２は、端末ＩＤ＝ｋの担当端末に対し、完了通知を送信する（ステップＳ３０１３）。これにより、ダウンロード区間算出処理（ステップＳ２９０５）を終了する。
【０１５７】
これにより、担当端末の性能、すなわち、シークサイズＳ（ｋ）に応じて、ダウンロード区間Ｉ（ｋ）の区間幅が変動するため、性能がよい担当端末ほどダウンロードするファイルサイズが大きくなることとなる。
【０１５８】
以上説明したように、本実施の形態によれば、複数の端末間で効率的なデータ共有を実現することができる。また、接続先端末との通信帯域の大きさや相対距離に応じて運用方式を動的に切り替えることができる。したがって、端末間で効率のよいデータ共有を実現することができる。さらに、サーバ１０２からのダウンロードを各端末の性能差を考慮しておこなうことができるため、ダウンロードによる端末への負荷を端末の性能に応じて分散させることができる。
【０１５９】
なお、上述したフローチャートは、実行主体がサーバ１０２の場合は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより実現されることとなる。実行主体が端末の場合は、具体的には、たとえば、図３に示したメモリ３０２、ストレージ３０３などの記憶装置に記憶されたプログラムをプロセッサ３０１に実行させることにより実現されることとなる。
【０１６０】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１６１】
（付記１）アドホックネットワーク内で通信可能に接続されている第１の端末と第２の端末との間の通信帯域を検出する検出工程と、
前記検出工程によって検出された通信帯域と前記第１の端末の記憶装置に関する帯域とを比較する比較工程と、
前記比較工程によって比較された比較結果に基づいて、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
前記決定工程によって決定された運用方式を前記第１の端末から前記第２の端末に通知する通知工程と、
前記決定工程によって決定された運用方式に基づいて、前記第２の端末から前記第１の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第１の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
【０１６２】
（付記２）前記比較工程は、
前記通信帯域と前記第１の端末の記憶装置のうち主記憶装置に関する帯域とを比較し、
前記決定工程は、
前記通信帯域が前記主記憶装置に関する帯域以上である場合、前記データ共有に関する運用方式を、前記第２の端末から前記第１の端末の主記憶装置へのアクセスを可能にし、かつ、前記第１の端末から前記第２の端末の主記憶装置へのアクセスする密結合方式に決定し、
前記設定工程は、
前記決定工程によって密結合方式に決定された場合、前記第２の端末から前記第１の端末の主記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする付記１に記載のデータ共有プログラム。
【０１６３】
（付記３）前記決定工程は、
前記通信帯域が前記主記憶装置に関する帯域以上でない場合、前記データ共有に関する運用方式を、前記第２の端末から前記第１の端末の補助記憶装置へのアクセスを可能にし、かつ、前記第１の端末から前記第２の端末の補助記憶装置へのアクセスする疎結合方式に決定し、
前記設定工程は、
前記決定工程によって疎結合方式に決定された場合、前記第２の端末から前記第１の端末の補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする付記２に記載のデータ共有プログラム。
【０１６４】
（付記４）前記比較工程は、
前記通信帯域と前記第１の端末の記憶装置のうち補助記憶装置に関する帯域とを比較して、前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲外で、かつ、前記通信帯域が前記補助記憶装置に関する帯域よりも大きかった場合、さらに、前記通信帯域と前記第１の端末の記憶装置のうち主記憶装置に関する帯域とを比較することを特徴とする付記２または３に記載のデータ共有プログラム。
【０１６５】
（付記５）前記第１の端末と前記第２の端末との相対距離を取得する取得工程と、
前記取得工程によって取得された相対距離が所定距離以内であるか否かを判断する判断工程を前記第１の端末のプロセッサに実行させ、
前記比較工程は、
前記判断工程によって前記所定距離以内であると判断された場合、前記通信帯域と前記第１の端末の記憶装置のうち主記憶装置に関する帯域とを比較することを特徴とする付記２または３に記載のデータ共有プログラム。
【０１６６】
（付記６）前記比較工程は、
前記通信帯域と前記第１の端末の記憶装置のうち補助記憶装置に関する帯域とを比較し、
前記決定工程は、
前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲内である場合、前記データ共有に関する運用方式を、前記第２の端末から前記第１の端末の補助記憶装置へのアクセスを可能にし、かつ、前記第１の端末から前記第２の端末の補助記憶装置へのアクセスする疎結合方式に決定し、
前記設定工程は、
前記決定工程によって疎結合方式に決定された場合、前記第２の端末から前記第１の端末の補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする付記１に記載のデータ共有プログラム。
【０１６７】
（付記７）前記比較工程は、
前記通信帯域と前記第１の端末の記憶装置のうち補助記憶装置に関する帯域とを比較し、
前記決定工程は、
前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲外で、かつ、前記通信帯域が前記補助記憶装置に関する帯域よりも大きい場合、前記データ共有に関する運用方式を、前記第２の端末から前記第１の端末の主記憶装置へのアクセスを可能にし、かつ、前記第１の端末から前記第２の端末の主記憶装置へのアクセスする密結合方式に決定し、
前記設定工程は、
前記決定工程によって密結合方式に決定された場合、前記第２の端末から前記第１の端末の主記憶装置および補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする付記６に記載のデータ共有プログラム。
【０１６８】
（付記８）前記決定工程は、
前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲外で、かつ、前記通信帯域が前記補助記憶装置に関する帯域よりも小さい場合、前記データ共有に関する運用方式を、前記第１および第２の端末が前記第１および第２の端末の記憶装置内のデータの取得元サーバにアクセスする分散方式に決定し、
前記設定工程は、
前記取得元サーバにアクセスして前記第２の記憶装置内のデータと同一のデータをダウンロード可能なプログラムを起動することを特徴とする付記５または６に記載のデータ共有プログラム。
【０１６９】
（付記９）前記第１の端末と前記第２の端末との相対距離を取得する取得工程と、
前記取得工程によって取得された相対距離が所定距離以内であるか否かを判断する判断工程を前記第１の端末のプロセッサに実行させ、
前記比較工程は、
前記判断工程によって前記所定距離以内であると判断された場合、前記通信帯域と前記第１の端末の記憶装置のうち補助記憶装置に関する帯域とを比較することを特徴とする付記６または７に記載のデータ共有プログラム。
【０１７０】
（付記１０）前記第１の端末と前記第２の端末との相対距離を取得する取得工程と、
前記取得工程によって取得された相対距離が所定距離以内であるか否かを判断する判断工程を前記第１の端末のプロセッサに実行させ、
前記決定工程は、
前記判断工程によって前記所定距離以内でないと判断された場合、前記比較工程を実行せずに、または、前記比較工程によって比較された比較結果にかかわらず、前記データ共有に関する運用方式を、前記第１および第２の端末が前記第１および第２の端末の記憶装置内のデータの取得元サーバにアクセスする分散方式に決定し、
前記設定工程は、
前記取得元サーバにアクセスして前記第２の記憶装置内のデータと同一のデータをダウンロード可能なプログラムを起動することを特徴とする付記１〜３，６または７に記載のデータ共有プログラム。
【０１７１】
（付記１１）アドホックネットワーク内で通信可能に接続されている第１および第２の端末のうち前記第１の端末から、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付工程と、
前記受付工程によって受け付けられた運用方式に基づいて、前記第１の端末から前記第２の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第２の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
【０１７２】
（付記１２）前記設定工程は、
前記受付工程によって、前記第２の端末から前記第１の端末の主記憶装置へのアクセスを可能にし、かつ、前記第１の端末から前記第２の端末の主記憶装置へのアクセスする密結合方式が受け付けられた場合、前記第１の端末から前記第２の端末の主記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする付記１１に記載のデータ共有プログラム。
【０１７３】
（付記１３）前記設定工程は、
前記受付工程によって、前記第２の端末から前記第１の端末の補助記憶装置へのアクセスを可能にし、かつ、前記第１の端末から前記第２の端末の補助記憶装置へのアクセスする疎結合方式が受け付けられた場合、前記第１の端末から前記第２の端末の補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする付記１１に記載のデータ共有プログラム。
【０１７４】
（付記１４）前記設定工程は、
前記受付工程によって、前記第１および第２の端末が前記第１および第２の端末の記憶装置内のデータの取得元サーバにアクセスする分散方式が受け付けられた場合、前記取得元サーバにアクセスして前記第１の記憶装置内のデータと同一のデータをダウンロード可能なプログラムを起動することを特徴とする付記１１記載のデータ共有プログラム。
【０１７５】
（付記１５）第１の端末とコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報をアドホック通信により前記第２の端末から取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記特定工程によって特定された前記第２の区間をアドホック通信により前記第２の端末に送信するとともに、前記第１の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第１の区間内のデータを前記サーバから受信する受信工程と、
前記受信工程によって受信された前記第１の区間内のデータを前記第１の端末の記憶装置に格納する格納工程と、
を前記第１の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
【０１７６】
（付記１６）前記第１の端末とコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第２の端末と前記サーバとの第２の通信速度情報をアドホック通信により前記第２の端末から取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記特定工程によって特定された前記第２の区間をアドホック通信により前記第２の端末に送信するとともに、前記第１の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第１の区間内のデータを前記サーバから受信する受信工程と、
前記受信工程によって受信された前記第１の区間内のデータを前記第１の端末の記憶装置に格納する格納工程と、を前記第１の端末のプロセッサに実行させ、
前記決定工程は、
前記比較工程によって比較された比較結果に基づいて、前記格納工程によって前記第１の端末の記憶装置に格納された第１の区間内のデータと前記第２の端末の記憶装置に格納された前記第２の区間内のデータとのデータ共有に関する運用方式を決定することを特徴とする付記１〜３，６または７に記載のデータ共有プログラム。
【０１７７】
（付記１７）第１の端末とコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報を取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記第１の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第１の区間内のデータを前記第１の端末に送信するとともに、前記第２の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第２の区間内のデータを前記第２の端末に送信する送信工程と、
を前記サーバのプロセッサに実行させることを特徴とするデータ配信プログラム。
【０１７８】
（付記１８）アドホックネットワーク内で通信可能に接続されている自端末と他端末との間の通信帯域を検出する検出手段と、
前記検出手段によって検出された通信帯域と前記自端末の記憶装置に関する帯域とを比較する比較手段と、
前記比較手段によって比較された比較結果に基づいて、前記自端末の記憶装置内のデータと前記他端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定手段と、
前記決定手段によって決定された運用方式を前記自端末から前記他端末に通知する通知手段と、
前記決定手段によって決定された運用方式に基づいて、前記他端末から前記自端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定手段と、
を備えることを特徴とする端末。
【０１７９】
（付記１９）アドホックネットワーク内で自端末と通信可能に接続されている他端末から、前記他端末の記憶装置内のデータと前記自端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付手段と、
前記受付手段によって受け付けられた運用方式に基づいて、前記他端末から前記自端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定手段と、
を備えることを特徴とする端末。
【０１８０】
（付記２０）コンテンツを選択する選択手段と、
自端末と前記選択手段によって選択されたコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記自端末とアドホック通信される他端末と前記サーバとの第２の通信速度情報をアドホック通信により前記他端末から取得する取得手段と、
前記取得手段によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記自端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記他端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定手段と、
前記特定手段によって特定された前記第２の区間をアドホック通信により前記他端末に送信するとともに、前記第１の区間を含むダウンロード要求を前記サーバに送信する送信手段と、
前記送信手段によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第１の区間内のデータを前記サーバから受信する受信手段と、
前記受信手段によって受信された前記第１の区間内のデータを前記自端末の記憶装置に格納する格納手段と、
を備えることを特徴とする端末。
【０１８１】
（付記２１）第１の端末との第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末との第２の通信速度情報を取得する取得手段と、
前記取得手段によって取得された第１および第２の通信速度情報に基づいて、コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定手段と、
前記第１の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定手段によって特定された前記第１の区間内のデータを前記第１の端末に送信するとともに、前記第２の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定手段によって特定された前記第２の区間内のデータを前記第２の端末に送信する送信手段と、
を備えることを特徴とするサーバ。
【０１８２】
（付記２２）アドホックネットワーク内で通信可能に接続されている第１の端末と第２の端末との間の通信帯域を検出する検出工程と、
前記検出工程によって検出された通信帯域と前記第１の端末の記憶装置に関する帯域とを比較する比較工程と、
前記比較工程によって比較された比較結果に基づいて、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
前記決定工程によって決定された運用方式を前記第１の端末から前記第２の端末に通知する通知工程と、
前記決定工程によって決定された運用方式に基づいて、前記第２の端末から前記第１の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第１の端末が実行することを特徴とするデータ共有方法。
【０１８３】
（付記２３）アドホックネットワーク内で通信可能に接続されている第１および第２の端末のうち前記第１の端末から、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付工程と、
前記受付工程によって受け付けられた運用方式に基づいて、前記第１の端末から前記第２の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第２の端末が実行することを特徴とするデータ共有方法。
【０１８４】
（付記２４）コンテンツを選択する選択工程と、
第１の端末と前記選択工程によって選択されたコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報をアドホック通信により前記第２の端末から取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記特定工程によって特定された前記第２の区間をアドホック通信により前記第２の端末に送信するとともに、前記第１の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第１の区間内のデータを前記サーバから受信する受信工程と、
前記受信工程によって受信された前記第１の区間内のデータを前記第１の端末の記憶装置に格納する格納工程と、
を前記第１の端末が実行することを特徴とするデータ共有方法。
【０１８５】
（付記２５）第１の端末とコンテンツにアクセス可能なサーバとの第１の通信速度情報を取得するとともに、前記第１の端末とアドホック通信される第２の端末と前記サーバとの第２の通信速度情報を取得する取得工程と、
前記取得工程によって取得された第１および第２の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第１の端末にダウンロードされる前記第１の通信速度情報に応じたデータ量となる第１の区間と前記第２の端末にダウンロードされる前記第２の通信速度情報に応じたデータ量となる第２の区間とを特定する特定工程と、
前記第１の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第１の区間内のデータを前記第１の端末に送信するとともに、前記第２の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第２の区間内のデータを前記第２の端末に送信する送信工程と、
を前記サーバが実行することを特徴とするデータ配信方法。
【符号の説明】
【０１８６】
１００  データ共有システム
１０１  基地局
１０３  ネットワーク
１０２  サーバ
３０２  メモリ
３０３  ストレージ
Ｒｔ  通信帯域
Ｒｓ  ストレージ帯域
Ｒｍ  メモリ帯域
ＦＳａ  ファイルシステム
ＦＳｂ  ファイルシステム
ＬＳａ  論理アドレス空間
ＬＳｂ  論理アドレス空間
ＬＬＴａ  論論変換テーブル
ＬＬＴｂ  論論変換テーブル
【手続補正書】
【提出日】平成25年9月30日(2013.9.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アドホックネットワーク内で通信可能に接続されている第１の端末と第２の端末との間の通信帯域と前記第１の端末の記憶装置に関する帯域との比較結果に基づいて、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
前記決定工程によって決定された運用方式に基づいて、前記第２の端末から前記第１の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第１の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
【請求項２】
アドホックネットワーク内で通信可能に接続されている自端末と他端末との間の通信帯域と前記自端末の記憶装置に関する帯域との比較結果に基づいて、前記自端末の記憶装置内のデータと前記他端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定手段と、
前記決定手段によって決定された運用方式に基づいて、前記他端末から前記自端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定手段と、
を備えることを特徴とする端末。
【請求項３】
アドホックネットワーク内で通信可能に接続されている第１の端末と第２の端末との間の通信帯域と前記第１の端末の記憶装置に関する帯域との比較結果に基づいて、前記第１の端末の記憶装置内のデータと前記第２の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
前記決定工程によって決定された運用方式に基づいて、前記第２の端末から前記第１の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第１の端末が実行することを特徴とするデータ共有方法。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、データを共有するデータ共有プログラム、端末、およびデータ共有方法に関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本発明は、上述した従来技術による問題点を解消するため、複数の端末間で効率的なデータ共有を実現することができるデータ共有プログラム、端末、およびデータ共有方法を提供することを目的とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
上記データ共有プログラム、端末、およびデータ共有方法によれば、複数の端末間で効率的なデータ共有を実現することができるという効果を奏する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１０４
【補正方法】変更
【補正の内容】
【０１０４】
また、端末Ａの担当データＤａは、端末Ａのアプリケーションから見える論理アドレス空間ＬＳａ内では、論理アドレス［０ｘ０１５０，０ｘ０２４９］に保存されているものとする。また、端末Ｂの担当データＤｂは、端末Ｂのアプリケーションから見える論理アドレス空間ＬＳｂ内では、論理アドレス［０ｘ０１ＦＡ，０ｘ０２９３］に保存されているものとする。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１０５
【補正方法】変更
【補正の内容】
【０１０５】
また、端末Ａは、密結合状態になると、担当データＤａを端末Ａのストレージ３０３内のファイルシステムＦＳａから端末Ａのメモリ３０２（以下、メモリＭａ）に読み出す。すでに読み出されている場合は不要である。担当データＤａのメモリＭａ上の物理アドレス［０ｘ１１００，０ｘ１１Ｆ９］は、論理アドレス空間ＬＳａの論理アドレス［０ｘ０１５０，０ｘ０２４９］に対応づけされる。これにより、メモリＭａのコントローラは、論理アドレス［０ｘ０１５０，０ｘ０２４９］が指定されると、メモリＭａ上の物理アドレス［０ｘ１１００，０ｘ１１Ｆ９］に論物変換する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１０６
【補正方法】変更
【補正の内容】
【０１０６】
同様に、端末Ｂは、密結合状態になると、担当データＤｂを端末Ｂのストレージ３０３内のファイルシステムＦＳｂから端末Ｂのメモリ３０２（以下、メモリＭｂ）に読み出す。すでに読み出されている場合は不要である。担当データＤｂのメモリ３０２上の物理アドレス［０ｘ１１５０，０ｘ１１Ｅ９］は、論理アドレス空間ＬＳｂの論理アドレス［０ｘ０１ＦＡ，０ｘ０２９３］に対応づけされる。これにより、メモリＭｂのコントローラは、論理アドレス［０ｘ１１５０，０ｘ１１Ｅ９］が指定されると、メモリＭｂ上の物理アドレス［０ｘ０１ＦＡ，０ｘ０２９３］に論物変換する。
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図１８
【補正方法】変更
【補正の内容】
【図１８】
2012035665.tif 000033
【手続補正１０】
【補正対象書類名】図面
【補正対象項目名】図１９
【補正方法】変更
【補正の内容】
【図１９】
2012035665.tif 000034
【手続補正１１】
【補正対象書類名】図面
【補正対象項目名】図２０
【補正方法】変更
【補正の内容】
【図２０】
2012035665.tif 000035
【手続補正１２】
【補正対象書類名】図面
【補正対象項目名】図２１
【補正方法】変更
【補正の内容】
【図２１】
2012035665.tif 000036
【国際調査報告】
2012035665.tif 000037
2012035665.tif 000038
2012035665.tif 000039
2012035665.tif 000040