JP5447679B2 - データ共有プログラム、端末、およびデータ共有方法 - Google Patents

データ共有プログラム、端末、およびデータ共有方法 Download PDF

Info

Publication number
JP5447679B2
JP5447679B2 JP2012533826A JP2012533826A JP5447679B2 JP 5447679 B2 JP5447679 B2 JP 5447679B2 JP 2012533826 A JP2012533826 A JP 2012533826A JP 2012533826 A JP2012533826 A JP 2012533826A JP 5447679 B2 JP5447679 B2 JP 5447679B2
Authority
JP
Japan
Prior art keywords
terminal
data
download
storage device
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012533826A
Other languages
English (en)
Other versions
JPWO2012035665A1 (ja
Inventor
康志 栗原
浩一郎 山下
宏真 山内
貴久 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2012035665A1 publication Critical patent/JPWO2012035665A1/ja
Application granted granted Critical
Publication of JP5447679B2 publication Critical patent/JP5447679B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Description

本発明は、データを共有するデータ共有プログラム、端末、およびデータ共有方法に関する。
従来、デジタルカメラのデータをサーバへ転送する時に複数のデジタルカメラにデータを分割して割り当て各デジタルカメラがサーバに担当部分のデータを転送する技術が開示されている(たとえば、下記特許文献1を参照。)。
また、分散メモリ型計算機における並列データベースへの問い合わせ並列処理において、他ノードのデータベースへのアクセスが生じた際にノード間のデータ転送量を削減する技術が開示されている(たとえば、下記特許文献2を参照。)。
また、アドホック通信しか使用できない状況で離れた端末へデータ通信を実現する技術や、要求しているデータを持つ携帯端末が複数存在する場合に、最も距離の近い端末からデータ転送を可能にする技術が開示されている(たとえば、下記特許文献3,4を参照。)。
特開2007−66061号公報 特開2007−531087号公報 特開2007−336360号公報 特開2004−64646号公報
しかしながら、上述した従来技術を用いて、複数の携帯端末(たとえば、携帯端末A〜C)間でデータ共有を行う場合、携帯端末Aは、携帯端末Bが有するデータDbを利用したいときは、端末Bから端末AにデータDbを送信する必要がある。同様に、携帯端末Aは、携帯端末Cが有するデータDcを利用したいときは、携帯端末Cから携帯端末AにデータDcを送信する必要がある。
したがって、携帯端末Aのユーザは、データDb,Dcを利用したいときでも、携帯端末Aから携帯端末B,CのデータDb,Dcにアクセスすることができず、データ共有について使い勝手が悪いという問題があった。
このようなデータ共有についての使い勝手の悪さは、携帯端末Aが有するデータDaや携帯端末Cが有するデータDcを携帯端末Bが利用する場合や、携帯端末Aが有するデータDaや携帯端末Bが有するデータDbを携帯端末Cが利用する場合についても同様である。
また、データDa〜Dcがサーバに存在する場合、携帯電話網を介してサーバにアクセスすることで、携帯端末A〜CはデータDa〜Dcをダウンロードすることができる。
しかしながら、携帯電話網における基地局の帯域は決まっており、基地局に接続されている携帯端末でシェアすることになる。そのため、基地局に接続している携帯端末が増加するほど、携帯端末1台当たりの使用帯域が減少してしまうこととなる。したがって、携帯端末A〜Cごとに、全データDa〜Dcをダウンロードする場合、ダウンロード時間が長くなってしまうという問題があった。
また、各携帯端末A〜Cが全データDa〜Dcをダウンロードするため、データDa〜Dcの総データ量が巨大な場合、メモリ不足によりダウンロードできなくなるという問題があった。
本発明は、上述した従来技術による問題点を解消するため、複数の端末間で効率的なデータ共有を実現することができるデータ共有プログラム、端末、およびデータ共有方法を提供することを目的とする
上述した課題を解決し、目的を達成するため、アドホックネットワーク内で通信可能に接続されている第1の端末と第2の端末との間の通信帯域を検出し、検出された通信帯域と前記第1の端末の記憶装置に関する帯域とを比較し、比較結果に基づいて、前記第1の端末の記憶装置内のデータと前記第2の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定し、決定された運用方式を前記第1の端末から前記第2の端末に通知し、決定された運用方式に基づいて、前記第2の端末から前記第1の端末の記憶装置へのアクセスを可能にするマウント処理を実行するデータ共有プログラム、端末、およびデータ共有方法が、一例として提案される。
また、第1の端末とコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記第1の端末とアドホック通信される第2の端末と前記サーバとの第2の通信速度情報を取得し、取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定し、前記第1の端末からのダウンロード要求があった場合、前記コンテンツのうち特定された前記第1の区間内のデータを前記第1の端末に送信するとともに、前記第2の端末からのダウンロード要求があった場合、前記コンテンツのうち特定された前記第2の区間内のデータを前記第2の端末に送信するデータ配信プログラム、サーバ、およびデータ配信方法が、一例として提案される。
上記データ共有プログラム、端末、およびデータ共有方法によれば、複数の端末間で効率的なデータ共有を実現することができるという効果を奏する
本発明の実施の形態にかかるデータ共有システムのシステム構成例を示す説明図である。 サーバのハードウェア構成例を示すブロック図である。 端末のハードウェア構成例を示すブロック図である。 アドホック通信の接続処理のシーケンスを示す説明図である。 図4に示した接続処理(ステップS402、S403、S407)の詳細な処理手順を示す説明図である。 マスタ端末Aでのダウンロード画面を示す説明図である。 ダウンロード処理のシーケンスを示す説明図である。 担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。 ダウンロード区間算出処理(ステップS804)の詳細な処理手順を示すフローチャートである。 運用方式設定シーケンスを示す説明図である。 図10に示した運用方式決定処理(ステップS1006)の詳細な処理手順を示すフローチャートである。 図10に示した接続元端末での運用方式設定処理(ステップS1008)の詳細な処理手順を示すフローチャートである。 図10に示した接続先端末での運用方式設定処理(ステップS1009)の詳細な処理手順を示すフローチャートである。 端末Aおよび端末Bにおいてそれぞれ担当データDa,Dbをダウンロードした状態を示す説明図である。 図14に示した状態から、端末Aを接続元端末、端末Bを接続先端末として疎結合した状態を示す説明図である。 図15による疎結合設定後におけるデータアクセスを示す説明図(その1)である。 図15による疎結合設定後におけるデータアクセスを示す説明図(その2)である。 端末Aおよび端末Bにおいてそれぞれ担当データDa,Dbをダウンロードした状態を示す説明図である。 図18に示した状態から、端末Aを接続元端末、端末Bを接続先端末として密結合した状態を示す説明図である。 図19による密結合設定後におけるデータアクセスを示す説明図(その1)である。 図19による密結合設定後におけるデータアクセスを示す説明図(その2)である。 端末間のデータアクセス処理のシーケンスを示す説明図である。 図22に示した端末間データアクセス処理(ステップS2208)の詳細な処理手順を示すシーケンス図(その1)である。 図22に示した端末間データアクセス処理(ステップS2208)の詳細な処理手順を示すシーケンス図(その2)である。 担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。 図25に示したダウンロード区間算出処理(ステップS2505)の詳細な処理手順を示すフローチャートである。 担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。 図27に示したダウンロード区間算出処理(ステップS2704)の詳細な処理手順を示すフローチャートである。 担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。 図29に示したダウンロード区間算出処理(ステップS2905)の詳細な処理手順を示すフローチャートである。
以下に添付図面を参照して、本発明の実施の形態を詳細に説明する。
<システム構成例>
図1は、本発明の実施の形態にかかるデータ共有システムのシステム構成例を示す説明図である。図1のデータ共有システム100では、複数(例として3台)の端末A〜Cが、基地局101およびネットワーク103を介してサーバ102と交信可能に接続されている。端末A〜Cは、無線通信可能な携帯型のコンピュータであり、たとえば、携帯電話機、スマートフォン、電子辞書、タブレット型端末、携帯ゲーム機などがある。
また、各端末A〜Cは、サーバ102がネットワーク103内の携帯電話網にある場合は、基地局101および携帯電話網を介してサーバ102にアクセスすることとなる。サーバ102がネットワーク103内のインターネット網にある場合は、各端末A〜Cは、基地局101、携帯電話網、インターネット網を介して、サーバ102にアクセスすることとなる。各端末A〜Cは、端末間でアドホック通信可能である。また、各端末A〜Cは、GPS衛星104からの信号を受信することで、現在位置情報を取得することもできる。
サーバ102は、映像、ゲーム、地図といったデータDを記憶しており、端末A〜Cからのダウンロード要求に応じて、ダウンロード要求元の端末にダウンロードする。なお、図1では、サーバ102はダウンロード要求の受付処理と、データを記憶しダウンロードする処理とを実行するが、ダウンロード要求の受付処理と、データを記憶しダウンロードする処理とを、異なるサーバ102で実行してもよい。
この場合、ダウンロード要求の受付処理を実行する第1のサーバは、データDを記憶しダウンロードする処理を実行する第2のサーバに、受け付けたダウンロード要求を送信する。第2のサーバは、受信したダウンロード要求によりダウンロード要求元とダウンロード対象となるデータを特定して、ダウンロード要求元の端末にダウンロードする。
このようなデータ共有システム100において、各端末A〜Cは、サーバ102からデータDを分割ダウンロードする。各端末A〜Cがダウンロードした分割データを担当データと称す。担当データDa〜Dcは、それぞれ異なるデータである。各端末A〜Cは、アドホック通信により、データDのうち自端末でダウンロードしなかった他端末の担当データにアクセスすることができる。たとえば、端末Aは、アドホック通信により担当データDb,Dcにアクセスすることができる。
これにより、各端末A〜Cは、相互にアドホック通信により接続されているため、他端末に記憶されている担当データに自端末からアクセスすることができる。また、各端末A〜Cは全データDa〜Dcをダウンロードする必要がないため、ダウンロード時間の短縮化を図ることができ、メモリ不足に陥ることも低減されることとなる。
<ハードウェア構成>
図2は、サーバ102のハードウェア構成例を示すブロック図である。図2において、サーバ102は、CPU(Central Processing Unit)201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、ディスプレイ208と、I/F(Interface)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
ここで、CPU201は、サーバ102の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
インターフェース(以下、「I/F」と略する。)209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ212は、画像を光学的に読み取り、サーバ102内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
図3は、端末のハードウェア構成例を示すブロック図である。図3において、端末A〜Cは、プロセッサ301と、メモリ302と、ストレージ303と、表示装置304と、入力装置305と、GPSレシーバ306と、通信I/F307と、複数(図3では2個)の通信モジュール308と、を備える。また、各構成部はバス309によってそれぞれ接続されている。
ここで、プロセッサ301は、端末の全体の制御を司る。メモリ302は、CPU201のワークエリアとして使用される主記憶装置である。メモリ302としては、揮発性メモリまたは不揮発性メモリを採用することができる。ストレージ303は、OSやアプリケーションその他プログラムや、各種データ、ファイルシステムを保存する補助記憶装置である。ストレージ303としては、不揮発性メモリやハードディスクを採用することができる。
表示装置304は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示するディスプレイである。入力装置305は、ユーザ操作により文字、数字、各種指示などを入力する。入力装置305としては、キーボード、テンキー、タッチパネルなどが採用される。
GPSレシーバ306は、GPS衛星104からの信号を受信して、自端末の現在位置情報を取得する。通信I/F307は、基地局101を介して携帯電話網に接続するインターフェースであり、図1に示したネットワーク103を介してサーバ102と通信可能に接続する。通信モジュール308は、他の端末とアドホック通信をおこなうインターフェースである。図3では、例として2個用意されているため、最大で2台の端末と同時にアドホック通信をおこなうことができる。
なお、通信モジュール308の個数は、3個以上でもよい。なお、複数の端末間で相互にアドホック通信をおこなう場合は、各端末には、(端末数−1)個の通信モジュール308が必要となる。たとえば、5台の端末間で相互にアドホック通信をおこなう場合は、各端末には、4(=5−1)個の通信モジュール308が必要となる。
<端末間の相互接続処理>
つぎに、端末間の相互接続について説明する。本実施の形態では、データを共有しあう複数の端末のうちある端末がマスタ宣言をおこなう。マスタ宣言をおこなった端末(マスタ端末)は、他の端末とそれぞれアドホック通信の接続処理をおこなう。マスタ端末を除く残余の端末間では、アドホック通信の接続処理が完了していないため、マスタ端末からの指示により、残余の端末間でアドホック通信の接続処理をおこなうこととなる。
図4は、アドホック通信の接続処理のシーケンスを示す説明図である。図4では、例として端末Aをマスタ端末とするが、端末Bや端末Cがマスタ端末になってもよい。まず、端末Aは、マスタ宣言処理をする(ステップS401)。マスタ宣言処理によりマスタ端末となった端末A(マスタ端末A)は、端末B,Cとの接続処理を実行する(ステップS402、S403)。端末B,Cとの接続処理(ステップS402、S403)の詳細については後述する。
このあと、マスタ端末Aは、グループ内端末を特定する(ステップS404)。グループとは、データ共有しあう端末群であり、具体的には、図4の例では、マスタ端末Aとマスタ端末Aがアドホック通信の接続処理ができた端末B,Cからなる。
すなわち、マスタ端末Aは、接続処理による接続先の端末B,Cを特定する。この特定は、接続先の端末B,Cどうしでアドホック通信の接続処理を実行させるためである。このあと、マスタ端末Aは、接続先の端末B,Cのうち端末Bに対して端末Cとのアドホック通信の接続指示を通知する(ステップS405)。
そして、接続指示の通知を受けた端末Bは、接続要求先を特定する(ステップS406)。この場合は、接続要求先は端末Cのみとなるため、端末Bは、端末Cとの接続処理を実行する(ステップS407)。この接続処理(ステップS407)の詳細についても後述する。
また、仮に、端末D(不図示)がグループ内端末として特定されていたとすると、S406での接続要求先端末は端末C、Dとなり、端末Bは、端末Cとの接続処理と、端末Dとの接続処理を実行することとなる。この場合、端末Aは、端末Cに対しても、接続指示を通知し(ステップS405)、端末Cは、要求先特定(ステップS406)をして接続要求先として端末Dを特定する。そして、端末Cは、端末Dとの接続処理を実行することとなる(ステップS407)。
端末Bが端末Cとの接続処理を完了させると、端末Bは、マスタ端末Aに完了通知を送信する(ステップS408)。完了通知を受け取ると、マスタ端末Aは、グループ内端末の端末IDを設定する(ステップS409)。端末IDは、グループ内端末に対して割り当てられる固有の識別情報である。たとえば、マスタ端末Aの端末IDは0、端末Bは1、端末Cは2というように、マスタ端末を0として0から始まる連続番号とする。
そして、マスタ端末Aは、アドホック通信により、端末B,Cに、端末IDおよび端末総数を送信する(ステップS410)。端末総数とは、グループ内端末の総数である。この場合は、端末A〜Cであるため、端末総数は3である。したがって、端末Bには、端末ID:1および端末総数:3を送信する。また、端末Cには、端末ID:2および端末総数:3を送信することとなる。
図5は、図4に示した接続処理(ステップS402、S403、S407)の詳細な処理手順を示す説明図である。図5では、接続要求する端末を「要求元端末」、接続要求先となる端末を「要求先端末」とする。したがって、ステップS402では、要求元端末がマスタ端末A、要求先端末が端末Bとなる。また、ステップS403では、要求元端末がマスタ端末A、要求先端末が端末Cとなる。さらに、ステップS407では、要求元端末が端末B、要求先端末が端末Cとなる。
まず、要求元端末は、接続要求を要求先端末に送信する(ステップS501)。ステップS402、S403の場合は、マスタ端末Aのマスタ宣言処理(ステップS401)が接続要求のトリガとなる。ステップS407の場合は、要求先特定(ステップS406)が接続要求のトリガとなる。
要求先端末は、接続要求を受信すると、応答処理を実行する(ステップS502)。そして、要求先端末は、要求元端末に対し、アドホック通信の接続許可/不許可通知を送信する。
要求元端末は、要求先端末からの接続許可/不許可通知を受信して、アドホック通信の接続が許可であるか不許可であるかを判断する(ステップS503)。許可である場合(ステップS503:Yes)、セッション確立となり(ステップS504)、接続元端末と接続先端末との間でアドホック通信が可能となる。一方、不許可である場合(ステップS503:No)、セッションが確立しない。この場合、再度同じ要求先端末に対してリトライするか、要求先端末を変えてリトライすることとなる。
<各端末でのダウンロード処理>
つぎに、各端末でのダウンロード処理について説明する。本実施の形態では、対象となるデータを端末総数で分割してダウンロードする。各端末でダウンロードされるデータを「担当データ」と称す。どのデータをダウンロードするかは、マスタ端末Aがサーバ102にアクセスして決めることとする。
図6は、マスタ端末Aでのダウンロード画面を示す説明図である。(A)は、ダウンロード対象となるコンテンツのジャンルを指定する画面である。ここで、たとえば、「映画」を選択したとする。(B)は、(A)において「映画」を選択した場合の遷移画面である。「映画」を選択すると、つぎは、各種コンテンツの中からダウンロードしたいコンテンツを選択する。ここでは、例として、「77人の侍」を選択したとする。
つぎに、ダウンロード画面は、(C)に遷移する。(C)では、マスタ端末Aの担当データがダウンロードされる。ダウンロードが完了すると、(D)に遷移する。なお、マスタ端末A以外の端末B,Cについては、(B)で指定されたコンテンツ「77人の侍」が保存されているURLがマスタ端末Aから通知され、コンテンツ「77人の侍」の中の担当データがダウンロードされることとなる。
図7は、ダウンロード処理のシーケンスを示す説明図である。まず、マスタ端末Aは、サーバ102にアクセスして、図6の(B)のように選択したコンテンツに関するファイル(対象ファイル)のURLを取得する(ステップS701)。
そして、マスタ端末Aは、取得したURLを端末B,Cにアドホック通信により通知する(ステップS702)。このあと、マスタ端末Aは、サーバ102にアクセスして、マスタ端末Aの担当データのダウンロード処理を実行する(ステップS703)。
また、ステップS702でURLの通知を受けた端末Bは、サーバ102にアクセスして、端末Bの担当データのダウンロード処理を実行する(ステップS704)。そして、端末Bは、ダウンロード完了後に、担当データのダウンロードの完了通知をマスタ端末Aに送信する(ステップS705)。
また、ステップS702でURLの通知を受けた端末Cは、サーバ102にアクセスして、端末Cの担当データのダウンロード処理を実行する(ステップS706)。そして、端末Cは、ダウンロード完了後に、担当データのダウンロードの完了通知をマスタ端末Aに送信する(ステップS707)。
図8は、担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。図8において、サーバ102にアクセスして担当データをダウンロードする端末を「担当端末」と称す。したがって、マスタ端末Aも端末B,Cも担当端末である。
担当端末は、まず、取得または通知を受けたサーバ102のURLにしたがって、サーバ102に対しWebページ要求を送信する(ステップS801)。サーバ102は、Webページ要求を受け付けると、担当端末に対し、Webページを送信する(ステップS802)。そして、担当端末は、Webページから対象ファイルを選択する(ステップS803)。具体的には、たとえば、マスタ端末Aの場合、図6に示した(A)、(B)のように対象ファイル(コンテンツ:「77人の侍」)を選択する。一方、端末B,Cの場合、マスタ端末Aにより対象ファイルが決められているため、対象ファイルは選択しない。
このあと、担当端末は、ダウンロード区間算出処理を実行する(ステップS804)。ダウンロード区間算出処理(ステップS804)の詳細については後述する。ダウンロード区間算出処理(ステップS804)によりダウンロード区間が算出されると、担当端末は、サーバ102に対しダウンロード要求およびダウンロード区間I(k)を送信する。
サーバ102は、担当端末からダウンロード要求およびダウンロード区間I(k)を受信すると、受信したダウンロード区間I(k)の担当データが対象ファイルの中に存在するか否かを判断する(ステップS805)。存在する場合(ステップS805:Yes)、サーバ102は、ダウンロード区間I(k)で規定される担当データを担当端末に送信する(ステップS806)。担当端末は、サーバ102から送信されてくる担当データを内部の記憶装置(メモリ302またはファイルシステム)に格納する(ステップS807)。
一方、ステップS805において、受信したダウンロード区間I(k)の担当データが対象ファイルの中に存在しない場合(ステップS805:No)、サーバ102は、完了通知を担当端末に送信する(ステップS808)。これにより、担当データのダウンロード処理を終了する。
図9は、ダウンロード区間算出処理(ステップS804)の詳細な処理手順を示すフローチャートである。まず、担当端末は、ダウンロード区間I(k)のダウンロード開始位置start(k)をstart(k)=k×Sとする(ステップS901)。また、担当端末は、ダウンロード区間I(k)のダウンロード終了位置end(k)をend(k)=start(k)+S−1とする(ステップS902)。
ここで、kの初期値は、担当端末の端末IDである。Sはシークサイズである。シークサイズSはあらかじめ決めておく。そして、担当端末は、ダウンロード要求およびダウンロード区間I(k)をサーバ102に送信する(ステップS903)。このあと、kにn(端末数)を加算してkを更新し(ステップS904)、ステップS901に戻る。
<運用方式設定処理>
つぎに、運用方式設定処理について説明する。運用方式とは、各端末にダウンロードされたデータを共有しあう方式である。運用方式には、分散方式、疎結合方式、密結合方式の3種類ある。分散方式とは、各端末が、サーバ102に対し担当データ以外のデータについてダウンロード要求をして、担当データ以外のデータをダウンロードする方式である。
疎結合方式および密結合方式は、ともに、アドホック通信により他端末がダウンロードした担当データにアクセスする方式である。特に、疎結合方式は、アドホック通信により他端末がダウンロードした担当データを記憶する他端末のファイルシステムにアクセスする方式である。
具体的には、自端末から他端末の担当データを指定する論理アドレスを、他端末のファイルシステムでのファイルパスで指定される担当データの物理アドレスに変換(論物変換)することで、他端末の担当データにアクセスする方式である。
また、密結合方式は、担当データ以外のデータ(他端末から見れば担当データ)をダウンロードした端末内のメモリ302にアクセスする方式である。具体的には、自端末から他端末の担当データを指定する論理アドレスを、他端末のメモリ302上の担当データを指定する論理アドレスに変換(論論変換)することで、他端末の担当データにアクセスする方式である。この場合、他端末では、変換された論理アドレスを担当データの物理アドレスに変換(論物変換)することで、担当データにアクセスすることとなる。
図10は、運用方式設定シーケンスを示す説明図である。アドホック通信の接続元端末および接続先端末ともに、一定時間経過するのを待ち受け(ステップS1001:No)、一定時間経過した場合(ステップS1001:Yes)、GPSレシーバ306で受信したデータを用いて自端末の現在位置を示す座標情報を更新して(ステップS1002)、ステップS1001に戻る。
このように接続元端末および接続先端末の現在位置を示す座標情報がリアルタイムで更新される状況下で、接続元端末は、接続先端末の座標情報取得要求を接続先端末に送信する(ステップS1003)。接続先端末は、座標情報取得要求を受信すると、接続先端末の最新の座標情報を接続元端末に送信する(ステップS1004)。
接続元端末は、接続先端末の座標情報を受信すると、接続先端末との相対距離を算出する(ステップS1005)。そして、接続元端末は、運用方式決定処理を実行する(ステップS1006)。運用方式決定処理(ステップS1006)の詳細については後述する。そして、接続元端末は、決定された運用方式を接続先端末に通知する(ステップS1007)。
その後、接続元端末は、接続元端末での運用方式設定処理を実行し(ステップS1008)、接続先端末は、接続先端末での運用方式設定処理を実行する(ステップS1009)。各運用方式設定処理(ステップS1008、S1009)の詳細については後述するが、接続元端末および接続先端末の現在位置を示す座標情報がリアルタイムで更新される。したがって、運用方式は動的に変更されることとなり、状況に応じて最適な運用方式に決定されることとなる。
図11は、図10に示した運用方式決定処理(ステップS1006)の詳細な処理手順を示すフローチャートである。まず、この運用方式決定処理(ステップS1006)では、端末間の相対距離や通信帯域Rtとストレージ帯域Rs/メモリ帯域Rmとの比較結果に応じて接続元端末と接続先端末との運用方式が決定される。なお、通信帯域Rtの比較においては、ある程度のレンジ(本例では±ΔRt)を持たせることとする。また、ストレージ帯域Rs/メモリ帯域Rmは、自端末内のメモリ302またはストレージ303に記憶されているものとする。
まず、接続元端末は、座標情報取得期間の通信帯域Rtを検出する(ステップS1101)。そして、接続元端末は、接続元端末の座標情報と接続先端末の座標情報とで求められる相対距離が所定距離以内か否かを判断する(ステップS1102)。
所定距離以内でない場合(ステップS1102:No)、接続元端末は、接続元端末と接続先端末との間の運用方式を分散方式に決定する(ステップS1103)。そして、接続元端末は、決定された運用方式を接続先端末に通知する(ステップS1104)。
一方、ステップS1102において、相対距離が所定距離以内である場合(ステップS1102:Yes)、接続元端末は、通信帯域Rtとストレージ帯域Rsとを比較する(ステップS1105)。そして、通信帯域Rtとストレージ帯域Rsとの比較結果が、Rt<Rs−ΔRsである場合(ステップS1105:Rt<Rs−ΔRs)、接続元端末は、接続元端末と接続先端末との間の運用方式を分散方式に決定する(ステップS1103)。そして、接続元端末は、決定された運用方式を接続先端末に通知する(ステップS1104)。
一方、通信帯域Rtとストレージ帯域Rsとの比較結果が、Rs−ΔRs≦Rt≦Rs+ΔRsである場合(ステップS1105:Rs−ΔRs≦Rt≦Rs+ΔRs)、接続元端末は、接続元端末と接続先端末との間の運用方式を疎結合方式に決定する(ステップS1106)。そして、接続元端末は、決定された運用方式を接続先端末に通知する(ステップS1104)。
また、通信帯域Rtとストレージ帯域Rsとの比較結果が、Rt>Rs+ΔRsである場合(ステップS1105:Rt>Rs+ΔRs)、接続元端末は、通信帯域Rtとメモリ帯域Rmとを比較する(ステップS1107)。そして、通信帯域Rtとメモリ帯域Rmとの比較結果が、Rt<Rmである場合(ステップS1107:Rt<Rm)、接続元端末は、接続元端末と接続先端末との間の運用方式を疎結合方式に決定する(ステップS1106)。そして、接続元端末は、決定された運用方式を接続先端末に通知する(ステップS1104)。
一方、通信帯域Rtとメモリ帯域Rmとの比較結果が、Rt≧Rmである場合(ステップS1107:Rt≧Rm)、接続元端末は、接続元端末と接続先端末との間の運用方式を密結合方式に決定する(ステップS1108)。そして、接続元端末は、決定された運用方式を接続先端末に通知する(ステップS1104)。
このように、端末間の相対距離や通信帯域Rtの大きさに応じて接続元端末と接続先端末との間の運用方式が決定されることとなる。なお、ステップS1102において、相対距離が所定距離以内である場合(ステップS1102:Yes)、通信帯域Rtとストレージ帯域Rsとを比較(ステップS1105)するまでもなく、疎結合方式に決定してもよい。
また、ステップS1102において、相対距離が所定距離以内である場合(ステップS1102:Yes)、通信帯域Rtとストレージ帯域Rsとを比較(ステップS1105)や通信帯域Rtとメモリ帯域Rmとを比較(ステップS1107)するまでもなく、密結合方式に決定してもよい。
また、ステップS1105において、通信帯域Rtとストレージ帯域Rsとの比較結果が、Rt>Rs+ΔRsである場合(ステップS1105:Rt>Rs+ΔRs)、通信帯域Rtとメモリ帯域Rmとを比較(ステップS1107)するまでもなく、疎結合方式または密結合方式のいずれか一方の方式に決定してもよい。
図12は、図10に示した接続元端末での運用方式設定処理(ステップS1008)の詳細な処理手順を示すフローチャートである。まず、接続元端末は、決定された運用方式を確認する(ステップS1201)。分散方式である場合(ステップS1201:分散)、接続元端末での運用方式設定処理(ステップS1008)を終了する。
一方、疎結合方式である場合(ステップS1201:疎結合)、接続元端末は、接続先端末にダウンロードされた担当データのファイルパスを接続先端末から取得する(ステップS1202)。つぎに、接続元端末は、接続先端末にダウンロードされた担当データを指定する論理アドレスをアプリケーションが参照可能な論理アドレス空間に設定する(ステップS1203)。
そして、接続元端末は、ステップS1202で取得したファイルパスを、ステップS1203での指定論理アドレスに書き込む。このあと、接続元端末は、論論変換停止設定をおこなう(ステップS1205)。これにより、接続元端末での運用方式設定処理(ステップS1008)を終了する。
また、ステップS1201において、密結合方式である場合(ステップS1201:密結合)、接続元端末は、接続先端末でダウンロードされた担当データの接続元端末での論理アドレス(変換元論理アドレス)を論理アドレス空間に設定する(ステップS1206)。つぎに、接続元端末は、接続先端末でダウンロードされた担当データの接続先端末での論理アドレス(変換先論理アドレス)を接続先端末から取得する(ステップS1207)。
そして、接続元端末は、論論変換テーブルを生成する(ステップS1208)。論論変換テーブルとは、変換元論理アドレスと変換先論理アドレスと変換先となる接続先端末の端末IDとを対応付けたテーブルである。このあと、接続元端末は、論論変換起動設定をおこなう(ステップS1209)。論論変換起動設定とは、論論変換テーブルへのアクセスを可能にする設定である。
これにより、接続元端末での運用方式設定処理(ステップS1008)を終了する。このように、接続元端末での運用方式設定処理(ステップS1008)では、疎結合または密結合に応じて接続先端末とのマウントをおこなうことができる。
図13は、図10に示した接続先端末での運用方式設定処理(ステップS1009)の詳細な処理手順を示すフローチャートである。接続先端末は、接続元端末からの運用方式を待ち受け(ステップS1301:No)、運用方式が受信された場合(ステップS1301:Yes)、接続先端末は、受信された運用方式を確認する(ステップS1302)。分散方式である場合(ステップS1302:分散)、接続先端末での運用方式設定処理(ステップS1009)を終了する。
一方、疎結合方式である場合(ステップS1302:疎結合)、接続先端末は、接続元端末にダウンロードされた担当データのファイルパスを接続元端末から取得する(ステップS1303)。つぎに、接続先端末は、接続元端末にダウンロードされた担当データを指定する論理アドレスをアプリケーションが参照可能な論理アドレス空間に設定する(ステップS1304)。
そして、接続先端末は、ステップS1303で取得したファイルパスを、ステップS1304での指定論理アドレスに書き込む。このあと、接続先端末は、論論変換停止設定をおこなう(ステップS1306)。これにより、接続先端末での運用方式設定処理(ステップS1009)を終了する。
また、ステップS1302において、密結合方式である場合(ステップS1302:密結合)、接続先端末は、接続元端末でダウンロードされた担当データの接続先端末での論理アドレス(変換元論理アドレス)を論理アドレス空間に設定する(ステップS1307)。つぎに、接続先端末は、接続元端末でダウンロードされた担当データの接続元端末での論理アドレス(変換先論理アドレス)を接続元端末から取得する(ステップS1308)。
そして、接続先端末は、論論変換テーブルを生成する(ステップS1309)。論論変換テーブルとは、変換元論理アドレスと変換先論理アドレスと変換先となる接続元端末の端末IDとを対応付けたテーブルである。このあと、接続先端末は、論論変換起動設定をおこなう(ステップS1310)。論論変換起動設定とは、論論変換テーブルへのアクセスを可能にする設定である。これにより、接続先端末での運用方式設定処理(ステップS1009)を終了する。このように、接続先端末での運用方式設定処理(ステップS1009)では、疎結合または密結合に応じて接続元端末とのマウントをおこなうことができる。
すなわち、接続元端末での運用方式設定処理(ステップS1008)と接続先端末での運用方式設定処理(ステップS1009)とが実行されることで、接続元端末と接続先端末との間でクロスマウントが実現されることとなる。
<疎結合の具体例>
つぎに、疎結合の具体例について図14〜図17を用いて説明する。
図14は、端末Aおよび端末Bにおいてそれぞれ担当データDa,Dbをダウンロードした状態を示す説明図である。図14において、端末Aの担当データDaのファイルシステムFSaでのファイルパスをfpa、端末Bの担当データDbのファイルシステムFSbでのファイルパスをfpbとする。
また、端末Aの担当データDaは、端末Aのアプリケーションから見える論理アドレス空間LSa内では、論理アドレス[0x0150,0x0249]に保存されているものとする。また、端末Bの担当データDbは、端末Bのアプリケーションから見える論理アドレス空間LSb内では、論理アドレス[0x0200,0x0299]に保存されているものとする。
図15は、図14に示した状態から、端末Aを接続元端末、端末Bを接続先端末として疎結合した状態を示す説明図である。具体的には、端末Aの論理アドレス空間LSaの空きアドレスには、端末Bの端末IDおよび担当データDbへのファイルパスfpbが設定される。これにより、端末BのファイルシステムFSbが端末Aにマウントされることとなる。同様に、端末Bの論理アドレス空間LSbの空きアドレスには、端末Aの端末IDおよび担当データDaへのファイルパスfpaが設定される。これにより、端末AのファイルシステムFSaが端末Bにマウントされることとなる。
図16は、図15による疎結合設定後におけるデータアクセスを示す説明図(その1)である。図16では、端末Aが担当データDa,Dbにアクセスする例である。端末Aが担当データDaにアクセスする場合は、端末Aのアプリケーションが論理アドレス空間LSaの担当データDaの論理アドレスを指定することで、端末Aのストレージ303のコントローラが担当データDaへのファイルパスfpaを参照して論物変換する。そして、論物変換された物理アドレスを指定することで、端末Aは、担当データDaにアクセスすることができる。
また、端末Aが担当データDbにアクセスする場合は、端末Aのアプリケーションが論理アドレス空間LSaの端末Bの端末IDおよびファイルパスfpbを有する論理アドレスを指定し、通信ドライバを起動する。そして、端末Aは通信ドライバを介して、端末Bに対しファイルパスfpbを送信する。端末Bでは、端末Aからのファイルパスfpbを参照して、端末Bのストレージ303内の担当データDbにアクセスする。
そして、リードアクセスの場合は、端末Bは担当データDbを端末Aに送信する。端末Aは端末Bからの担当データDbを受信する。また、ライトアクセスの場合は、端末Bはライト完了通知を端末Aに送信する。このように、端末Aは、担当データDbにアクセスすることができる。
図17は、図15による疎結合設定後におけるデータアクセスを示す説明図(その2)である。図17では、端末Bが担当データDa,Dbにアクセスする例である。端末Bが担当データDbにアクセスする場合は、端末Bのアプリケーションが論理アドレス空間LSbの担当データDbの論理アドレスを指定することで、端末B内のストレージ303のコントローラが担当データDbへのファイルパスfpbを参照して論物変換する。そして、論物変換された物理アドレスを指定することで、端末Bは、担当データDbにアクセスすることができる。
また、端末Bが担当データDaにアクセスする場合は、端末Bのアプリケーションが論理アドレス空間LSbの端末Aの端末IDおよびファイルパスfpaを有する論理アドレスを指定し、通信ドライバを起動する。そして、端末Bは通信ドライバを介して、端末Aに対しファイルパスfpaを送信する。端末Aでは、端末Bからのファイルパスfpaを参照して、端末Aのストレージ303内の担当データDaにアクセスする。
そして、リードアクセスの場合は、端末Aは担当データDaを端末Bに送信する。端末Bは端末Aからの担当データDaを受信する。また、ライトアクセスの場合は、端末Aはライト完了通知を端末Bに送信する。このように、端末Bは、担当データDaにアクセスすることができる。
<密結合の具体例>
つぎに、密結合の具体例について図18〜図21を用いて説明する。
図18は、端末Aおよび端末Bにおいてそれぞれ担当データDa,Dbをダウンロードした状態を示す説明図である。図18において、端末Aの担当データDaのファイルシステムFSaでのファイルパスをfpa、端末Bの担当データDbのファイルシステムFSbでのファイルパスをfpbとする。
また、端末Aの担当データDaは、端末Aのアプリケーションから見える論理アドレス空間LSa内では、論理アドレス[0x0150,0x0249]に保存されているものとする。また、端末Bの担当データDbは、端末Bのアプリケーションから見える論理アドレス空間LSb内では、論理アドレス[0x01FA0x0293]に保存されているものとする。
また、端末Aは、密結合状態になると、担当データDaを端末Aのストレージ303内のファイルシステムFSaから端末Aのメモリ302(以下、メモリMa)に読み出す。すでに読み出されている場合は不要である。担当データDaのメモリMa上の物理アドレス[0x1100,0x11F9]は、論理アドレス空間LSaの論理アドレス[0x0150,0x0249]に対応づけされる。これにより、メモリMaのコントローラは、論理アドレス[0x0150,0x0249]が指定されると、メモリMa上の物理アドレス[0x1100,0x11F9]に論物変換する。
同様に、端末Bは、密結合状態になると、担当データDbを端末Bのストレージ303内のファイルシステムFSbから端末Bのメモリ302(以下、メモリMb)に読み出す。すでに読み出されている場合は不要である。担当データDbのメモリ302上の物理アドレス[0x1150,0x11E9]は、論理アドレス空間LSbの論理アドレス[0x01FA0x0293]に対応づけされる。これにより、メモリMbのコントローラは、論理アドレス[0x1150,0x11E9]が指定されると、メモリMb上の物理アドレス[0x01FA0x0293]に論物変換する。
図19は、図18に示した状態から、端末Aを接続元端末、端末Bを接続先端末として密結合した状態を示す説明図である。具体的には、端末Aは、担当データDbの論理アドレス(変換先論理アドレス)を端末Bから取得し、端末Aの論理アドレス空間に担当データDbの変換元論理アドレスを割り当てる。そして、端末Aは、変換元論理アドレスと変換先端末IDと変換先論理アドレスとを対応付けした論論変換テーブルLLTaを生成する。これにより、端末BのメモリMbが端末Aにマウントされることとなる。
同様に、端末Bは、担当データDaの論理アドレス(変換先論理アドレス)を端末Aから取得し、端末Bの論理アドレス空間に担当データDaの変換元論理アドレスを割り当てる。そして、端末Bは、変換元論理アドレスと変換先端末IDと変換先論理アドレスとを対応付けした論論変換テーブルLLTbを生成する。これにより、端末AのメモリMaが端末Bにマウントされることとなる。
図20は、図19による密結合設定後におけるデータアクセスを示す説明図(その1)である。図20では、端末Aが担当データDa,Dbにアクセスする例である。端末Aが担当データDaにアクセスする場合は、端末Aのアプリケーションが論理アドレス空間LSaの担当データDaの論理アドレスを指定することで、メモリMaのコントローラが担当データDaの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Aは、メモリMa上の担当データDaにアクセスすることができる。
また、端末Aが担当データDbにアクセスする場合は、端末Aのアプリケーションが論理アドレス空間LSaの担当データDbの論理アドレスを指定し、指定した論理アドレスを変換元論理アドレスとして論論変換テーブルLLTaを参照する。論論変換テーブルLLTaでは、変換先の端末IDと変換先論理アドレスが特定される。
したがって、端末Aは、通信ドライバを起動して、変換先である端末Bに対し、変換先論理アドレスを送信する。端末Bでは、端末Aからの変換先論理アドレスを参照して、メモリ302のコントローラが担当データDbの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Bは、メモリMb上の担当データDbにアクセスすることができる。
このあと、リードアクセスの場合は、端末Bは担当データDbを端末Aに送信する。端末Aは端末Bからの担当データDbを受信する。また、ライトアクセスの場合は、端末Bはライト完了通知を端末Aに送信する。このように、端末Aは、担当データDbにアクセスすることができる。
図21は、図19による密結合設定後におけるデータアクセスを示す説明図(その2)である。図21では、端末Bが担当データDa,Dbにアクセスする例である。端末Bが担当データDbにアクセスする場合は、端末Bのアプリケーションが論理アドレス空間LSbの担当データDbの論理アドレスを指定することで、メモリMbのコントローラが担当データDbの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Bは、メモリMb上の担当データDbにアクセスすることができる。
また、端末Bが担当データDaにアクセスする場合は、端末Bのアプリケーションが論理アドレス空間LSbの担当データDaの論理アドレスを指定し、指定した論理アドレスを変換元論理アドレスとして論論変換テーブルLLTbを参照する。論論変換テーブルLLTbでは、変換先の端末IDと変換先論理アドレスが特定される。
したがって、端末Bは、通信ドライバを起動して、変換先である端末Aに対し、変換先論理アドレスを送信する。端末Aでは、端末Bからの変換先論理アドレスを参照して、メモリMaのコントローラが担当データDaの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Aは、メモリMa上の担当データDaにアクセスすることができる。
このあと、リードアクセスの場合は、端末Aは担当データDaを端末Bに送信する。端末Bは端末Aからの担当データDaを受信する。また、ライトアクセスの場合は、端末Aはライト完了通知を端末Bに送信する。このように、端末Bは、担当データDaにアクセスすることができる。
図22は、端末間のデータアクセス処理のシーケンスを示す説明図である。まずアクセス元端末は、データアクセス(リード/ライト)要求があるまで待ち受け(ステップS2201:No)、データアクセス要求があった場合(ステップS2201:Yes)、アクセス元端末は、論論変換が起動しているか否かを判断する(ステップS2202)。起動している場合(ステップS2202:Yes)、アクセス元端末は、論論変換テーブルを参照して論論変換を実行する(ステップS2203)。
一方、論論変換が起動していない場合(ステップS2202:No)、ステップS2204に移行する。ステップS2204では、アクセス先端末は、アクセス先が自端末(アクセス元端末)であるか否かを判断する(ステップS2204)。具体的には、たとえば、疎結合においては端末IDおよびファイルパスが指定されている場合は、端末IDで指定された端末がアクセス先端末となる。密結合の場合は、論論変換テーブルを参照した場合に端末IDで指定された端末がアクセス先端末となる。
アクセス先が自端末である場合(ステップS2204:Yes)、アクセス元端末は、アクセス要求で指定された論理アドレスを物理アドレスに論物変換する(ステップS2205)。そして、アクセス元端末は、自端末内の変換された物理アドレスにアクセスする(ステップS2206)。これにより、データアクセスが終了する。
一方、ステップS2204において、アクセス先が他端末である場合(ステップS2204:No)、アクセス元端末は、通信ドライバを起動して(ステップS2207)、端末間データアクセス処理を実行する(ステップS2208)。これにより、アドホック通信でアクセス先端末へのデータアクセスが可能となる。
図23は、図22に示した端末間データアクセス処理(ステップS2208)の詳細な処理手順を示すシーケンス図(その1)である。図23は、データアクセスがリードである場合を示している。まず、アクセス元端末が、アドホック通信により、アクセス先端末にリード要求を送信する(ステップS2301)。アクセス先端末は、リード要求を受信すると、リード要求を解析する(ステップS2302)。具体的には、たとえば、アクセス先端末は、リード要求に含まれている情報を取り出す。疎結合の場合はファイルパス、密結合の場合は変換先論理アドレスを取り出す。
そして、アクセス先端末は、解析で得られた情報に基づいて、リード先となる物理アドレスを特定する(ステップS2303)。具体的には、たとえば、ファイルパスが取り出された場合は、アクセス先端末は、ファイルパスを参照して物理アドレスを特定する。変換先論理アドレスが取り出された場合は、変換先論理アドレスを論物変換して物理アドレスを特定する。
このあと、アクセス先端末は、特定された物理アドレスにアクセスして対象データを読み出す(ステップS2304)。そして、アクセス先端末は、リード要求の送信元であるアクセス元端末に、読み出した対象データを送信する(ステップS2305)。アクセス元端末は、アクセス先端末から送信されてくる対象データを受信する(ステップS2306)。これにより、リード時の端末間データアクセス処理(ステップS2208)を終了する。
図24は、図22に示した端末間データアクセス処理(ステップS2208)の詳細な処理手順を示すシーケンス図(その2)である。図24は、データアクセスがライトである場合を示している。まず、アクセス元端末が、アドホック通信により、アクセス先端末にライト要求および対象データを送信する(ステップS2401)。アクセス先端末は、ライト要求を受信すると、ライト要求を解析する(ステップS2402)。具体的には、たとえば、アクセス先端末は、ライト要求に含まれている情報を取り出す。疎結合の場合はファイルパスおよび対象データ、密結合の場合は変換先論理アドレスおよび対象データを取り出す。
そして、アクセス先端末は、解析で得られた情報に基づいて、リード先となる物理アドレスを特定する(ステップS2403)。具体的には、たとえば、ファイルパスが取り出された場合は、アクセス先端末は、ファイルパスを参照して物理アドレスを特定する。変換先論理アドレスが取り出された場合は、変換先論理アドレスを論物変換して物理アドレスを特定する。
このあと、アクセス先端末は、特定された物理アドレスにアクセスして対象データを書き込む(ステップS2404)。そして、アクセス先端末は、ライト要求の送信元であるアクセス元端末に、ライト完了通知を送信する(ステップS2405)。これにより、ライト時の端末間データアクセス処理(ステップS2208)を終了する。このように、端末間においてクロスマウントをしておくことで、端末間でのデータアクセスが可能となる。
<担当データのダウンロード処理の他の例1>
図25は、担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。図8では、担当端末が主体となって担当データをダウンロードする処理について説明したが、図25では、サーバ102が主体となって担当データをダウンロードする処理について説明する。なお、図8と同一処理については同一ステップ番号を付し、その説明を省略する。
ステップS803において対象ファイルを選択したあと、担当端末は、サーバ102に対し、ダウンロード要求と端末ID(=k)と端末総数nとを送信する(ステップS2504)。そして、サーバ102は、ダウンロード区間算出処理を実行する(ステップS2505)。ダウンロード区間算出処理(ステップS2505)については後述する。このあと、サーバ102は、ダウンロード区間で指定された担当データを担当端末に送信する(ステップS2506)。
担当端末は、受信した担当データをメモリ302またはストレージ303に格納する(ステップS2507)。このあと、すべての担当データをダウンロードした場合、サーバ102は、担当端末に完了通知を送信する(ステップS2508)。これにより、担当データのダウンロード処理を終了する。
図26は、図25に示したダウンロード区間算出処理(ステップS2505)の詳細な処理手順を示すフローチャートである。まず、サーバ102は、ダウンロード区間I(k)のダウンロード開始位置start(k)をstart(k)=k×Sとする(ステップS2601)。また、サーバ102は、ダウンロード区間I(k)のダウンロード終了位置end(k)をend(k)=start(k)+S−1とする(ステップS2602)。
サーバ102は、受信したダウンロード区間I(k)で指定される担当データが対象ファイルの中に存在するか否かを判断する(ステップS2603)。存在する場合(ステップS2603:Yes)、サーバ102は、ダウンロード区間I(k)で指定される担当データを担当端末に送信する(ステップS2604)。
なお、担当端末は、サーバ102から送信されてくる担当データを内部の記憶装置(メモリ302またはストレージ303)に格納することとなる(ステップS2507)。このあと、サーバ102は、kにnを加算して更新し(ステップS2605)、ステップS2601に戻る。これにより、ダウンロード開始位置およびダウンロード終了位置が更新されることとなる。
一方、ステップS2603において、受信したダウンロード区間I(k)で指定される担当データが対象ファイルの中に存在しない場合(ステップS2603:No)、サーバ102は、完了通知を担当端末に送信する(ステップS2606)。これにより、担当データのダウンロード処理を終了する。
<担当データのダウンロード処理の他の例2>
図27は、担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。図8では、担当端末が主体となって担当データをダウンロードする処理について説明したが、図27では、担当端末が主体となって性能差を考慮して担当データをダウンロードする処理について説明する。なお、図8と同一処理については同一ステップ番号を付し、その説明を省略する。また、マスタ端末以外の担当端末を「スレーブ端末」と称す。
ステップS803において対象ファイルを選択したあと、マスタ端末は、ダウンロード区間算出処理を実行する(ステップS2704)。ダウンロード区間算出処理(ステップS2704)の詳細については後述する。
ダウンロード区間算出処理(ステップS2704)では、マスタ端末は、サーバ102に対し、ダウンロード要求およびマスタ端末のダウンロード区間I(j)を送信することとなる(ステップS2705)。また、マスタ端末は、ダウンロード区間算出処理(ステップS2704)において、スレーブ端末に対し、スレーブ端末のダウンロード区間I(j)を送信することとなる(ステップS2706)。
このあと、スレーブ端末は、サーバ102に対し、ダウンロード要求およびスレーブ端末のダウンロード区間I(j)を送信する(ステップS2707)。サーバ102は、ダウンロード要求およびダウンロード区間I(j)を受信すると、受信したダウンロード区間I(j)の担当データが対象ファイルの中に存在するか否かを判断する(ステップS2708)。存在する場合(ステップS2708:Yes)、サーバ102は、ダウンロード区間I(j)で規定される担当データをダウンロード区間I(j)の送信元の端末(マスタ端末またはスレーブ端末)に送信する(ステップS2709)。
マスタ端末は、サーバ102から送信されてくる担当データを内部の記憶装置(メモリ302またはファイルシステム)に格納する(ステップS2710)。スレーブ端末は、サーバ102から送信されてくる担当データを内部の記憶装置(メモリ302またはストレージ303)に格納する(ステップS2711)。
一方、ステップS2708において、受信したダウンロード区間I(j)の担当データが対象ファイルの中に存在しない場合(ステップS2708:No)、サーバ102は、完了通知をダウンロード区間I(j)の送信元の端末(マスタ端末またはスレーブ端末)に送信する(ステップS2712)。
図28は、図27に示したダウンロード区間算出処理(ステップS2704)の詳細な処理手順を示すフローチャートである。まず、マスタ端末は、端末IDであるkをk=0、端末ID=kの端末(k=0ならマスタ端末A、k=1、2ならスレーブ端末B,C)のシークサイズS(k)を、S(k)=S×{b(k)/Σb(k)}に設定する(ステップS2801)。
Sは固定のシークサイズ、b(k)は端末ID=kの端末の通信回線速度、Σb(k)は、データ共有しあう全端末(端末A〜C)の通信回線速度の総和である。すなわち、シークサイズS(k)は、端末の性能差を考慮したシークサイズとなる。なお、スレーブ端末の通信回線速度b(k)は定期的に取得するものとする。
つぎに、マスタ端末は、変数jをj=kとし(ステップS2802)、j=0であるか否かを判断する(ステップS2803)。j=0である場合(ステップS2803:Yes)、マスタ端末Aは、対象ファイルのダウンロード区間I(j)のダウンロード開始位置start(j)をstart(j)=0とし(ステップS2804)、ステップS2806に移行する。一方、j=0でない場合(ステップS2803:No)、マスタ端末Aは、対象ファイルのダウンロード開始位置start(j)をstart(j)=end(j−1)+1とし(ステップS2804)、ステップS2806に移行する。
ステップS2806では、マスタ端末は、ダウンロード区間I(j)のダウンロード終了位置end(j)をend(j)=start(j)+S(k)−1に設定する(ステップS2806)。そして、マスタ端末Aは、端末IDであるkがk=0であるか否かを判断する(ステップS2807)。k=0である場合(ステップS2807:Yes)、マスタ端末Aは、マスタ端末A(k=0)からのダウンロード要求およびダウンロード区間I(j)をサーバ102に送信し(ステップS2808)、ステップS2810に移行する。
一方、k=0でない場合(ステップS2807:No)、マスタ端末は、端末ID=k(k≠0)のスレーブ端末に対し、そのダウンロード区間I(j)を送信して(ステップS2809)、ステップS2810に移行する。
ステップS2810では、マスタ端末は、変数jをインクリメントし(ステップS2810)、端末IDであるkもインクリメントする(ステップS2811)。そして、マスタ端末Aは、k=nであるか否かを判断する(ステップS2812)。nは端末総数である。k=nでない場合(ステップS2812:No)、ステップS2803に戻る。一方、k=nである場合(ステップS2812:Yes)、マスタ端末は、k=0に戻して(ステップS2813)、ステップS2803に戻る。
これにより、担当端末の性能、すなわち、シークサイズS(k)に応じて、ダウンロード区間I(k)の区間幅が変動するため、性能がよい担当端末ほどダウンロードするファイルサイズが大きくなることとなる。
<担当データのダウンロード処理の他の例3>
図29は、担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。図27では、担当端末が主体となって性能差を考慮して担当データをダウンロードする処理について説明したが、図29では、サーバ102が主体となって担当端末の性能差を考慮して担当データをダウンロードする処理について説明する。なお、図8と同一処理については同一ステップ番号を付し、その説明を省略する。
ステップS803において対象ファイルを選択したあと、担当端末は、サーバ102に対し、ダウンロード要求、端末ID(=k)、回線速度b(k)を送信する(ステップS2904)。サーバ102は、担当端末からのダウンロード要求を受信すると、ダウンロード区間算出処理を実行する(ステップS2905)。ダウンロード区間算出処理(ステップS2905)の詳細については後述する。
サーバ102は、ダウンロード区間I(k)を算出すると、対象ファイルのうちダウンロード区間I(k)で指定される担当データを担当端末に送信する(ステップS2906)。担当端末は、担当データを受信すると、担当データを記憶装置(メモリ302またはファイルシステム)に格納する(ステップS2907)。なお、サーバ102は、ダウンロード区間算出処理(ステップS2905)において、ダウンロード区間I(k)で指定される担当データがない場合は、担当端末に対し完了通知を送信する(ステップS2908)。
図30は、図29に示したダウンロード区間算出処理(ステップS2905)の詳細な処理手順を示すフローチャートである。まず、サーバ102は、端末IDであるkをk=0、端末ID=kの担当端末のシークサイズS(k)を、S(k)=S×{b(k)/Σb(k)}に設定する(ステップS3001)。
Sは固定のシークサイズ、b(k)は端末ID=kの担当端末の通信回線速度、Σb(k)は、データ共有しあう全端末(担当端末A〜C)の通信回線速度の総和である。すなわち、シークサイズS(k)は、担当端末の性能差を考慮したシークサイズとなる。なお、ダウンロード区間算出処理(ステップS2905)は、すべての担当端末の通信回線速度b(k)がないと実行できないため、ある担当端末からダウンロード要求があった場合に、残りの担当端末の通信回線速度を取得してもよい。また、定期的にすべての担当端末の通信回線速度を取得し、最新の通信回線速度を用いることとしてもよい。
つぎに、サーバ102は、変数jをj=kとし(ステップS3002)、j=0であるか否かを判断する(ステップS3003)。j=0である場合(ステップS3003:Yes)、サーバ102は、対象ファイルのダウンロード区間I(j)のダウンロード開始位置start(j)をstart(j)=0とし(ステップS3004)、ステップS3006に移行する。一方、j=0でない場合(ステップS3003:No)、サーバ102は、対象ファイルのダウンロード開始位置start(j)をstart(j)=end(j−1)+1とし(ステップS3005)、ステップS3006に移行する。
ステップS3006では、サーバ102は、ダウンロード区間I(j)のダウンロード終了位置end(j)をend(j)=start(j)+S(k)−1に設定する(ステップS3006)。そして、サーバ102は、ダウンロード区間I(j)で指定される担当データがあるか否かを判断する(ステップS3007)。
ダウンロード区間I(j)で指定される担当データがある場合(ステップS3007:Yes)、サーバ102は、ダウンロード区間I(j)で指定される担当データを端末ID=kの担当端末に送信する(ステップS3008)。このあと、変数jをインクリメントし(ステップS3009)、端末IDであるkもインクリメントする(ステップS3010)。
そして、サーバ102は、k=nであるか否かを判断する(ステップS3011)。nは端末総数である。k=nでない場合(ステップS3011:No)、ステップS3003に戻る。一方、k=nである場合(ステップS3011:Yes)、サーバ102は、k=0に戻して(ステップS3012)、ステップS3003に戻る。
また、ステップS3007において、ダウンロード区間I(j)で指定される担当データがない場合(ステップS3007:No)、サーバ102は、端末ID=kの担当端末に対し、完了通知を送信する(ステップS3013)。これにより、ダウンロード区間算出処理(ステップS2905)を終了する。
これにより、担当端末の性能、すなわち、シークサイズS(k)に応じて、ダウンロード区間I(k)の区間幅が変動するため、性能がよい担当端末ほどダウンロードするファイルサイズが大きくなることとなる。
以上説明したように、本実施の形態によれば、複数の端末間で効率的なデータ共有を実現することができる。また、接続先端末との通信帯域の大きさや相対距離に応じて運用方式を動的に切り替えることができる。したがって、端末間で効率のよいデータ共有を実現することができる。さらに、サーバ102からのダウンロードを各端末の性能差を考慮しておこなうことができるため、ダウンロードによる端末への負荷を端末の性能に応じて分散させることができる。
なお、上述したフローチャートは、実行主体がサーバ102の場合は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205などの記憶装置に記憶されたプログラムをCPU201に実行させることにより実現されることとなる。実行主体が端末の場合は、具体的には、たとえば、図3に示したメモリ302、ストレージ303などの記憶装置に記憶されたプログラムをプロセッサ301に実行させることにより実現されることとなる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)アドホックネットワーク内で通信可能に接続されている第1の端末と第2の端末との間の通信帯域を検出する検出工程と、
前記検出工程によって検出された通信帯域と前記第1の端末の記憶装置に関する帯域とを比較する比較工程と、
前記比較工程によって比較された比較結果に基づいて、前記第1の端末の記憶装置内のデータと前記第2の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
前記決定工程によって決定された運用方式を前記第1の端末から前記第2の端末に通知する通知工程と、
前記決定工程によって決定された運用方式に基づいて、前記第2の端末から前記第1の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第1の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
(付記2)前記比較工程は、
前記通信帯域と前記第1の端末の記憶装置のうち主記憶装置に関する帯域とを比較し、
前記決定工程は、
前記通信帯域が前記主記憶装置に関する帯域以上である場合、前記データ共有に関する運用方式を、前記第2の端末から前記第1の端末の主記憶装置へのアクセスを可能にし、かつ、前記第1の端末から前記第2の端末の主記憶装置へのアクセスする密結合方式に決定し、
前記設定工程は、
前記決定工程によって密結合方式に決定された場合、前記第2の端末から前記第1の端末の主記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする付記1に記載のデータ共有プログラム。
(付記3)前記決定工程は、
前記通信帯域が前記主記憶装置に関する帯域以上でない場合、前記データ共有に関する運用方式を、前記第2の端末から前記第1の端末の補助記憶装置へのアクセスを可能にし、かつ、前記第1の端末から前記第2の端末の補助記憶装置へのアクセスする疎結合方式に決定し、
前記設定工程は、
前記決定工程によって疎結合方式に決定された場合、前記第2の端末から前記第1の端末の補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする付記2に記載のデータ共有プログラム。
(付記4)前記比較工程は、
前記通信帯域と前記第1の端末の記憶装置のうち補助記憶装置に関する帯域とを比較して、前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲外で、かつ、前記通信帯域が前記補助記憶装置に関する帯域よりも大きかった場合、さらに、前記通信帯域と前記第1の端末の記憶装置のうち主記憶装置に関する帯域とを比較することを特徴とする付記2または3に記載のデータ共有プログラム。
(付記5)前記第1の端末と前記第2の端末との相対距離を取得する取得工程と、
前記取得工程によって取得された相対距離が所定距離以内であるか否かを判断する判断工程を前記第1の端末のプロセッサに実行させ、
前記比較工程は、
前記判断工程によって前記所定距離以内であると判断された場合、前記通信帯域と前記第1の端末の記憶装置のうち主記憶装置に関する帯域とを比較することを特徴とする付記2または3に記載のデータ共有プログラム。
(付記6)前記比較工程は、
前記通信帯域と前記第1の端末の記憶装置のうち補助記憶装置に関する帯域とを比較し、
前記決定工程は、
前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲内である場合、前記データ共有に関する運用方式を、前記第2の端末から前記第1の端末の補助記憶装置へのアクセスを可能にし、かつ、前記第1の端末から前記第2の端末の補助記憶装置へのアクセスする疎結合方式に決定し、
前記設定工程は、
前記決定工程によって疎結合方式に決定された場合、前記第2の端末から前記第1の端末の補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする付記1に記載のデータ共有プログラム。
(付記7)前記比較工程は、
前記通信帯域と前記第1の端末の記憶装置のうち補助記憶装置に関する帯域とを比較し、
前記決定工程は、
前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲外で、かつ、前記通信帯域が前記補助記憶装置に関する帯域よりも大きい場合、前記データ共有に関する運用方式を、前記第2の端末から前記第1の端末の主記憶装置へのアクセスを可能にし、かつ、前記第1の端末から前記第2の端末の主記憶装置へのアクセスする密結合方式に決定し、
前記設定工程は、
前記決定工程によって密結合方式に決定された場合、前記第2の端末から前記第1の端末の主記憶装置および補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする付記6に記載のデータ共有プログラム。
(付記8)前記決定工程は、
前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲外で、かつ、前記通信帯域が前記補助記憶装置に関する帯域よりも小さい場合、前記データ共有に関する運用方式を、前記第1および第2の端末が前記第1および第2の端末の記憶装置内のデータの取得元サーバにアクセスする分散方式に決定し、
前記設定工程は、
前記取得元サーバにアクセスして前記第2の記憶装置内のデータと同一のデータをダウンロード可能なプログラムを起動することを特徴とする付記5または6に記載のデータ共有プログラム。
(付記9)前記第1の端末と前記第2の端末との相対距離を取得する取得工程と、
前記取得工程によって取得された相対距離が所定距離以内であるか否かを判断する判断工程を前記第1の端末のプロセッサに実行させ、
前記比較工程は、
前記判断工程によって前記所定距離以内であると判断された場合、前記通信帯域と前記第1の端末の記憶装置のうち補助記憶装置に関する帯域とを比較することを特徴とする付記6または7に記載のデータ共有プログラム。
(付記10)前記第1の端末と前記第2の端末との相対距離を取得する取得工程と、
前記取得工程によって取得された相対距離が所定距離以内であるか否かを判断する判断工程を前記第1の端末のプロセッサに実行させ、
前記決定工程は、
前記判断工程によって前記所定距離以内でないと判断された場合、前記比較工程を実行せずに、または、前記比較工程によって比較された比較結果にかかわらず、前記データ共有に関する運用方式を、前記第1および第2の端末が前記第1および第2の端末の記憶装置内のデータの取得元サーバにアクセスする分散方式に決定し、
前記設定工程は、
前記取得元サーバにアクセスして前記第2の記憶装置内のデータと同一のデータをダウンロード可能なプログラムを起動することを特徴とする付記1〜3,6または7に記載のデータ共有プログラム。
(付記11)アドホックネットワーク内で通信可能に接続されている第1および第2の端末のうち前記第1の端末から、前記第1の端末の記憶装置内のデータと前記第2の端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付工程と、
前記受付工程によって受け付けられた運用方式に基づいて、前記第1の端末から前記第2の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第2の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
(付記12)前記設定工程は、
前記受付工程によって、前記第2の端末から前記第1の端末の主記憶装置へのアクセスを可能にし、かつ、前記第1の端末から前記第2の端末の主記憶装置へのアクセスする密結合方式が受け付けられた場合、前記第1の端末から前記第2の端末の主記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする付記11に記載のデータ共有プログラム。
(付記13)前記設定工程は、
前記受付工程によって、前記第2の端末から前記第1の端末の補助記憶装置へのアクセスを可能にし、かつ、前記第1の端末から前記第2の端末の補助記憶装置へのアクセスする疎結合方式が受け付けられた場合、前記第1の端末から前記第2の端末の補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする付記11に記載のデータ共有プログラム。
(付記14)前記設定工程は、
前記受付工程によって、前記第1および第2の端末が前記第1および第2の端末の記憶装置内のデータの取得元サーバにアクセスする分散方式が受け付けられた場合、前記取得元サーバにアクセスして前記第1の記憶装置内のデータと同一のデータをダウンロード可能なプログラムを起動することを特徴とする付記11記載のデータ共有プログラム。
(付記15)第1の端末とコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記第1の端末とアドホック通信される第2の端末と前記サーバとの第2の通信速度情報をアドホック通信により前記第2の端末から取得する取得工程と、
前記取得工程によって取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定工程と、
前記特定工程によって特定された前記第2の区間をアドホック通信により前記第2の端末に送信するとともに、前記第1の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第1の区間内のデータを前記サーバから受信する受信工程と、
前記受信工程によって受信された前記第1の区間内のデータを前記第1の端末の記憶装置に格納する格納工程と、
を前記第1の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
(付記16)前記第1の端末とコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記第2の端末と前記サーバとの第2の通信速度情報をアドホック通信により前記第2の端末から取得する取得工程と、
前記取得工程によって取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定工程と、
前記特定工程によって特定された前記第2の区間をアドホック通信により前記第2の端末に送信するとともに、前記第1の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第1の区間内のデータを前記サーバから受信する受信工程と、
前記受信工程によって受信された前記第1の区間内のデータを前記第1の端末の記憶装置に格納する格納工程と、を前記第1の端末のプロセッサに実行させ、
前記決定工程は、
前記比較工程によって比較された比較結果に基づいて、前記格納工程によって前記第1の端末の記憶装置に格納された第1の区間内のデータと前記第2の端末の記憶装置に格納された前記第2の区間内のデータとのデータ共有に関する運用方式を決定することを特徴とする付記1〜3,6または7に記載のデータ共有プログラム。
(付記17)第1の端末とコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記第1の端末とアドホック通信される第2の端末と前記サーバとの第2の通信速度情報を取得する取得工程と、
前記取得工程によって取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定工程と、
前記第1の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第1の区間内のデータを前記第1の端末に送信するとともに、前記第2の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第2の区間内のデータを前記第2の端末に送信する送信工程と、
を前記サーバのプロセッサに実行させることを特徴とするデータ配信プログラム。
(付記18)アドホックネットワーク内で通信可能に接続されている自端末と他端末との間の通信帯域を検出する検出手段と、
前記検出手段によって検出された通信帯域と前記自端末の記憶装置に関する帯域とを比較する比較手段と、
前記比較手段によって比較された比較結果に基づいて、前記自端末の記憶装置内のデータと前記他端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定手段と、
前記決定手段によって決定された運用方式を前記自端末から前記他端末に通知する通知手段と、
前記決定手段によって決定された運用方式に基づいて、前記他端末から前記自端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定手段と、
を備えることを特徴とする端末。
(付記19)アドホックネットワーク内で自端末と通信可能に接続されている他端末から、前記他端末の記憶装置内のデータと前記自端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付手段と、
前記受付手段によって受け付けられた運用方式に基づいて、前記他端末から前記自端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定手段と、
を備えることを特徴とする端末。
(付記20)コンテンツを選択する選択手段と、
自端末と前記選択手段によって選択されたコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記自端末とアドホック通信される他端末と前記サーバとの第2の通信速度情報をアドホック通信により前記他端末から取得する取得手段と、
前記取得手段によって取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記自端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記他端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定手段と、
前記特定手段によって特定された前記第2の区間をアドホック通信により前記他端末に送信するとともに、前記第1の区間を含むダウンロード要求を前記サーバに送信する送信手段と、
前記送信手段によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第1の区間内のデータを前記サーバから受信する受信手段と、
前記受信手段によって受信された前記第1の区間内のデータを前記自端末の記憶装置に格納する格納手段と、
を備えることを特徴とする端末。
(付記21)第1の端末との第1の通信速度情報を取得するとともに、前記第1の端末とアドホック通信される第2の端末との第2の通信速度情報を取得する取得手段と、
前記取得手段によって取得された第1および第2の通信速度情報に基づいて、コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定手段と、
前記第1の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定手段によって特定された前記第1の区間内のデータを前記第1の端末に送信するとともに、前記第2の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定手段によって特定された前記第2の区間内のデータを前記第2の端末に送信する送信手段と、
を備えることを特徴とするサーバ。
(付記22)アドホックネットワーク内で通信可能に接続されている第1の端末と第2の端末との間の通信帯域を検出する検出工程と、
前記検出工程によって検出された通信帯域と前記第1の端末の記憶装置に関する帯域とを比較する比較工程と、
前記比較工程によって比較された比較結果に基づいて、前記第1の端末の記憶装置内のデータと前記第2の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
前記決定工程によって決定された運用方式を前記第1の端末から前記第2の端末に通知する通知工程と、
前記決定工程によって決定された運用方式に基づいて、前記第2の端末から前記第1の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第1の端末が実行することを特徴とするデータ共有方法。
(付記23)アドホックネットワーク内で通信可能に接続されている第1および第2の端末のうち前記第1の端末から、前記第1の端末の記憶装置内のデータと前記第2の端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付工程と、
前記受付工程によって受け付けられた運用方式に基づいて、前記第1の端末から前記第2の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
を前記第2の端末が実行することを特徴とするデータ共有方法。
(付記24)コンテンツを選択する選択工程と、
第1の端末と前記選択工程によって選択されたコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記第1の端末とアドホック通信される第2の端末と前記サーバとの第2の通信速度情報をアドホック通信により前記第2の端末から取得する取得工程と、
前記取得工程によって取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定工程と、
前記特定工程によって特定された前記第2の区間をアドホック通信により前記第2の端末に送信するとともに、前記第1の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第1の区間内のデータを前記サーバから受信する受信工程と、
前記受信工程によって受信された前記第1の区間内のデータを前記第1の端末の記憶装置に格納する格納工程と、
を前記第1の端末が実行することを特徴とするデータ共有方法。
(付記25)第1の端末とコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記第1の端末とアドホック通信される第2の端末と前記サーバとの第2の通信速度情報を取得する取得工程と、
前記取得工程によって取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定工程と、
前記第1の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第1の区間内のデータを前記第1の端末に送信するとともに、前記第2の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第2の区間内のデータを前記第2の端末に送信する送信工程と、
を前記サーバが実行することを特徴とするデータ配信方法。
100 データ共有システム
101 基地局
103 ネットワーク
102 サーバ
302 メモリ
303 ストレージ
Rt 通信帯域
Rs ストレージ帯域
Rm メモリ帯域
FSa ファイルシステム
FSb ファイルシステム
LSa 論理アドレス空間
LSb 論理アドレス空間
LLTa 論論変換テーブル
LLTb 論論変換テーブル

Claims (3)

  1. アドホックネットワーク内で通信可能に接続されている第1の端末と第2の端末との間の通信帯域と前記第1の端末の記憶装置に関する帯域と比較結果に基づいて、前記第1の端末の記憶装置内のデータと前記第2の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
    記決定工程によって決定された運用方式に基づいて、前記第2の端末から前記第1の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
    を前記第1の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
  2. アドホックネットワーク内で通信可能に接続されている自端末と他端末との間の通信帯域と前記自端末の記憶装置に関する帯域との比較結果に基づいて、前記自端末の記憶装置内のデータと前記他端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定手段と、
    前記決定手段によって決定された運用方式に基づいて、前記他端末から前記自端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定手段と、
    を備えることを特徴とする端末。
  3. アドホックネットワーク内で通信可能に接続されている第1の端末と第2の端末との間の通信帯域と前記第1の端末の記憶装置に関する帯域との比較結果に基づいて、前記第1の端末の記憶装置内のデータと前記第2の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
    前記決定工程によって決定された運用方式に基づいて、前記第2の端末から前記第1の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
    を前記第1の端末が実行することを特徴とするデータ共有方法。
JP2012533826A 2010-09-17 2010-09-17 データ共有プログラム、端末、およびデータ共有方法 Expired - Fee Related JP5447679B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/066253 WO2012035665A1 (ja) 2010-09-17 2010-09-17 データ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法

Publications (2)

Publication Number Publication Date
JPWO2012035665A1 JPWO2012035665A1 (ja) 2014-01-20
JP5447679B2 true JP5447679B2 (ja) 2014-03-19

Family

ID=45831163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012533826A Expired - Fee Related JP5447679B2 (ja) 2010-09-17 2010-09-17 データ共有プログラム、端末、およびデータ共有方法

Country Status (4)

Country Link
US (1) US9503386B2 (ja)
JP (1) JP5447679B2 (ja)
CN (1) CN103109277B (ja)
WO (1) WO2012035665A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885818A (zh) * 2012-12-20 2014-06-25 联想(北京)有限公司 一种资源启用方法及电子设备
CN103237300B (zh) 2013-04-28 2015-09-09 小米科技有限责任公司 一种文件下载的方法、装置及系统
CN104092716A (zh) * 2013-12-04 2014-10-08 腾讯科技(深圳)有限公司 数据共享的方法、第一终端、服务器及系统
JP6581858B2 (ja) * 2015-09-16 2019-09-25 日本放送協会 データ配信システム、情報サーバ、及び通信端末
CN105872049A (zh) * 2016-03-30 2016-08-17 努比亚技术有限公司 应用下载装置和方法
CN107577421A (zh) * 2017-07-31 2018-01-12 深圳市牛鼎丰科技有限公司 智能设备扩容方法、装置、存储介质和计算机设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5138847B2 (ja) * 2001-08-31 2013-02-06 富士通株式会社 ネットワークシステム、ネットワーク中継装置、ネットワーク中継監視装置およびネットワーク運用方法
JP2004064646A (ja) 2002-07-31 2004-02-26 Sharp Corp 情報処理装置、データ交換プログラムおよび記憶媒体
EP1599812A2 (en) 2003-02-28 2005-11-30 Koninklijke Philips Electronics N.V. A method of sharing files between user stations in a network
US7583955B2 (en) * 2003-07-24 2009-09-01 Lg Electronics Inc. System for and method of reproducing multimedia contents in mobile communication terminal
JP3741700B2 (ja) * 2003-10-17 2006-02-01 三菱電機株式会社 無線端末交信方法
MXPA06009355A (es) 2004-02-21 2007-03-01 Datallegro Inc Base de datos paralela ultra - nada compartida.
US20050188089A1 (en) * 2004-02-24 2005-08-25 Lichtenstein Walter D. Managing reservations for resources
JP4407431B2 (ja) * 2004-08-30 2010-02-03 株式会社日立製作所 計算機システム及び計算機システムの帯域制御方法
US7860962B2 (en) * 2005-08-09 2010-12-28 At&T Intellectual Property I, L.P. Media download method and system based on connection speed
CN100542341C (zh) * 2005-08-12 2009-09-16 深圳华为通信技术有限公司 实现移动终端间数据共享的方法和设备
US8787967B2 (en) * 2005-08-23 2014-07-22 Sony Corporation Communication terminals with pull-based digital information distribution capability and pull-based methods for digital information distribution
JP2007066061A (ja) 2005-08-31 2007-03-15 Eastman Kodak Co データ送信装置、受信装置、送信システム、受信システム、方法及び端末装置
US8811369B2 (en) 2006-01-11 2014-08-19 Qualcomm Incorporated Methods and apparatus for supporting multiple communications modes of operation
CN101371528A (zh) 2006-01-11 2009-02-18 高通股份有限公司 用于传达设备能力和/或建立信息的方法和装置
JP4795859B2 (ja) * 2006-06-14 2011-10-19 三菱電機株式会社 情報端末装置およびデータ通信方法
JP4948054B2 (ja) 2006-06-16 2012-06-06 三菱電機株式会社 管理装置及び通信端末装置及び通信システム及び通信管理方法
WO2008117295A2 (en) * 2007-03-28 2008-10-02 Unison Play Ltd. Distributed storage management
CN101631092A (zh) * 2008-07-18 2010-01-20 株式会社日立制作所 数据分发系统及方法
US7869383B2 (en) * 2008-07-24 2011-01-11 Symform, Inc. Shared community storage network

Also Published As

Publication number Publication date
CN103109277A (zh) 2013-05-15
JPWO2012035665A1 (ja) 2014-01-20
US20130198390A1 (en) 2013-08-01
US9503386B2 (en) 2016-11-22
WO2012035665A1 (ja) 2012-03-22
CN103109277B (zh) 2016-03-23

Similar Documents

Publication Publication Date Title
Kumari et al. Multimedia big data computing and Internet of Things applications: A taxonomy and process model
JP5447679B2 (ja) データ共有プログラム、端末、およびデータ共有方法
CN102197394B (zh) 通过基于注释聚集搜索结果来进行数字图像取得
CN106471517B (zh) 对显示元素的因用户而异的可视化
US9514078B2 (en) Peripheral device management
US20100309508A1 (en) Network print-related service
CN111901294A (zh) 一种构建在线机器学习项目的方法及机器学习系统
US20050160296A1 (en) System which enforces policy for virtual private organization and method thereof
EP4073978A1 (en) Intelligent conversion of internet domain names to vector embeddings
US8055744B2 (en) Resolution of group membership for resources
CN111818175A (zh) 企业服务总线配置文件生成方法、装置、设备和存储介质
JP5709377B2 (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
Luo et al. Sharing and exploring sensor streams over geocentric interfaces
CN103297494A (zh) 用于与具有服务器响应预期的分布式应用交互的方法和系统
CN112925954A (zh) 用于在图数据库中查询数据的方法和装置
Payton et al. Integrating participatory sensing in application development practices
US10169083B1 (en) Scalable method for optimizing information pathway
CN115664736A (zh) 一种共享数据的方法、装置、设备及介质
CN107526530B (zh) 数据处理方法和设备
JP2008299553A (ja) 情報処理システム、コアサーバ装置、およびプログラム
CN111310088B (zh) 一种页面渲染方法及装置
CN110990465A (zh) 数据导出方法、装置、电子设备以及存储介质
JP2022076739A (ja) 配信システム、配信方法、及びプログラム
JP7073703B2 (ja) ゲートウェイ装置、クライアントサーバシステムおよびプログラム
JP6287436B2 (ja) 情報処理装置、情報処理システム、情報処理方法およびプログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131216

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees