(57)【要約】【課題】データ提供を依頼された情報処理装置に、ユーザが所望する動作のための性能を確保させること。【解決手段】ネットワークへ接続するインターフェース部と、提供するデータを記憶する記憶部と、前記インターフェース部を介して通信される情報提供装置から、データ要求元の装置へデータ提供する提供依頼を受け付け、前記記憶部に記憶されたデータを、前記データ要求元の装置に提供する提供部と、ユーザの入力を受け付ける入力部と、前記入力部に対するユーザの入力操作が検知されたことを含む設定条件が満たされた場合に、前記提供部による前記データ要求元の装置へのデータの提供を停止させる停止部と、を備える情報処理装置。【選択図】図１４
2014026315.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークへ接続するインターフェース部と、
提供するデータを記憶する記憶部と、
前記インターフェース部を介して通信される情報提供装置から、データ要求元の装置へデータ提供する提供依頼を受け付け、前記記憶部に記憶されたデータを、前記データ要求元の装置に提供する提供部と、
ユーザの入力を受け付ける入力部と、
前記入力部に対するユーザの入力操作が検知されたことを含む設定条件が満たされた場合に、前記提供部による前記データ要求元の装置へのデータの提供を停止させる停止部と、
を備える情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、
前記停止部は、前記提供部による前記データ要求元の装置へのデータの提供を停止させると共に、該停止させる旨の情報を前記情報提供装置に送信する、
情報処理装置。
【請求項３】
情報処理装置が、
ネットワークを介して通信する情報提供装置からデータ要求元の装置へのデータ提供依頼を受け付け、
前記データ要求元の装置からのデータ要求に応じて、記憶部に記憶されたデータを前記データ要求元の装置に提供し、
入力部に対するユーザの入力操作を検知し、
検知された前記入力操作を含む設定条件が満たされた場合に、前記データ要求元の装置へのデータの提供を停止する、
データ提供方法。
【請求項４】
情報処理装置に、
ネットワークを介して通信する情報提供装置からデータ要求元の装置へのデータ提供依頼を受け付けさせ、
前記データ要求元の装置からのデータ要求に応じて、記憶部に記憶されたデータを前記データ要求元の装置に提供させ、
入力部に対するユーザの入力操作を検知させ、
検知された前記入力操作を含む設定条件が満たされた場合に、前記データ要求元の装置へのデータの提供を停止させる、
データ提供プログラム。
【請求項５】
複数の情報処理装置と、前記複数の情報処理装置にネットワークを介してデータを提供する情報提供装置と、を備えるネットワークシステムにおいて実行されるデータ提供方法であって、
前記情報提供装置が、
データ要求元の情報処理装置から第１段階のデータ要求を受信したとき、前記複数の情報処理装置のうち前記データ要求に係るデータを記憶部に記憶させている情報処理装置に対して、前記データ要求元の情報処理装置に対してデータを提供する提供依頼を送信すると共に、前記データ要求元の情報処理装置に対して、前記提供依頼を送信した情報処理装置に第２段階のデータ要求を行うように指示し、
前記複数の情報処理装置のうち前記提供依頼を受信した情報処理装置が、
前記データ要求元の情報処理装置からの第２段階のデータ要求に応じて、記憶部に記憶されたデータを前記データ要求元の情報処理装置に提供し、
入力部に対するユーザの入力操作を検知し、
検知された前記入力操作を含む設定条件が満たされた場合に、前記データ要求元の情報処理装置へのデータの提供を停止する、
データ提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、データ提供方法、及びデータ提供プログラムに関する。
【背景技術】
【０００２】
従来、配信するコンテンツを複数の分割データに分割して複数の保存元端末に記憶させ、端末からコンテンツ配信要求を受信した場合に、コンテンツ配信要求を送信した端末に対して保存元端末のアドレス情報を通知するサーバを備えるシステムが知られている。このコンテンツ配信システムのサーバは、保存元端末となる端末の状況に応じて、コンテンツを分割する数を決定したり、端末抽出を行ったりする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−５０２６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来のコンテンツ配信システムでは、ネットワークポートを継続的に開けておく必要が生じたり、コンテンツ配信に係る処理負荷が増大したりすることによって、端末本来の動作が妨げられる場合がある。
【０００５】
一つの側面では、データ提供を依頼された情報処理装置に、ユーザが所望する動作のための性能を確保させることを目的とする。
【課題を解決するための手段】
【０００６】
情報処理装置の一態様は、ネットワークへ接続するインターフェース部と、提供するデータを記憶する記憶部と、前記インターフェース部を介して通信される情報提供装置から、データ要求元の装置へデータ提供する提供依頼を受け付け、前記記憶部に記憶されたデータを、前記データ要求元の装置に提供する提供部と、ユーザの入力を受け付ける入力部と、前記入力部に対するユーザの入力操作が検知されたことを含む設定条件が満たされた場合に、前記提供部による前記データ要求元の装置へのデータの提供を停止させる停止部と、を備える。
【発明の効果】
【０００７】
一実施態様によれば、データ提供を依頼された情報処理装置に、ユーザが所望する動作のための性能を確保させることができる。
【図面の簡単な説明】
【０００８】
【図１】一実施例に係るネットワークシステム１のシステム構成例である。
【図２】端末１０及び２０、コンテンツサーバ１００、キャッシュサーバ２００が備えるハードウェアの一例である。
【図３】ある状態における、ネットワークシステム１の各構成要素の論理構成例である。
【図４】端末１０がコンテンツサーバ１００にデータ要求を行った場合に行われ得る情報通信の流れと処理内容の一部を示す図である。
【図５】接続関係データベース２１２の一例である。
【図６】保持データデータベース２１４の一例である。
【図７】端末管理部２０４により実行されるフローチャートの一例である。
【図８】アクセス制御部（サーバ側）２０６により実行される処理の流れを示すフローチャートの一例である。
【図９】アクセス制御部（端末側）２６により実行される処理の流れを示すフローチャートの一例である。
【図１０】ＨＴＭＬ生成部２０８により生成されるＨＴＭＬコンテンツの一例である。
【図１１】図１０に示すＨＴＭＬコンテンツが端末（２）に送信された結果として実行される処理の流れの一例を示すシーケンス図である。
【図１２】端末にデータ提供依頼をしない場合にＨＴＭＬ生成部２０８により生成されるＨＴＭＬコンテンツの一例である。
【図１３】図６に示す保持データデータベース２１４に対し、端末（１）がデータ「b.mp4」とデータ「c.iso」の取得を完了したことが反映された保持データデータベース２１４の内容を示す図である。
【図１４】利用状況監視部３０により実行される処理の流れを示すフローチャートの一例である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００１０】
以下、図面を参照し、情報処理装置、データ提供方法、及びデータ提供プログラムの実施例について説明する。
【００１１】
［ハードウェア構成］
図１は、一実施例に係るネットワークシステム１のシステム構成例である。ネットワークシステム１は、端末１０及び２０を含む複数の端末と、コンテンツサーバ１００と、キャッシュサーバ２００とを備える。
【００１２】
各端末は、例えばユーザによって使用されるユーザ端末である。以下、いずれの端末であるかを区別しないときは、単に「端末」と称する。端末は、例えばルータ及び接続回線を介してＩＳＰ（Internet  Services  Provider）５０に接続し、ＩＳＰ５０を介してコンテンツサーバ１００及びキャッシュサーバ２００に接続する。
【００１３】
また、各端末は、ＬＡＮ（Local  Area  Network）等のネットワークで接続されており、ＩＳＰ５０を介さずに、互いにデータを送受信することができる。
【００１４】
ＩＳＰ５０は、ルータ、スイッチ、サーバ等を有するＰＯＰ（Point  Of  Presence）、ＮＯＣ（Network  Operation  Center）等の設備を備える。ＩＳＰ５０は、ユーザ認証、プロトコル変換等の処理を行って、端末をコンテンツサーバ１００やキャッシュサーバ２００に接続させる。
【００１５】
コンテンツサーバ１００は、例えば、Ｗｅｂサーバであり、端末からのデータ要求に応じて、保持するコンテンツデータ、或いは情報処理等を行って生成したデータを、ＩＳＰ５０を介して端末に提供する。
【００１６】
キャッシュサーバ２００は、例えば、コンテンツサーバ１００が端末に提供するデータをキャプチャして保持し、端末からのデータ要求に応じて、保持するコンテンツデータを、ＩＳＰ５０を介して端末に提供する。端末からのデータ要求を受け付けたコンテンツサーバ１００は、自己よりもデータ要求元の端末に近いキャッシュサーバ２００を指定して、端末にアクセス指示する。これによって、端末からキャッシュサーバ２００へのデータ要求が行われる。また、キャッシュサーバ２００は、コンテンツサーバ１００が端末に提供するデータをキャプチャするだけでなく、コンテンツサーバ１００により指定された特定のデータ群を保持してもよい。
【００１７】
なお、キャッシュサーバ２００は、各端末が、例えば企業等の団体のイントラネットに接続された端末群である場合、例えば、当該団体と、プロバイダ或いはコンテンツサーバ１００の運用者との契約により設置される。キャッシュサーバ２００が設置されることによって、当該団体の所持する端末群は、キャッシュサーバ２００が保持するデータについては、コンテンツサーバ１００よりも通信時間が短いキャッシュサーバ２００から取得することができる。このため、当該団体の所持する端末群は、データ取得をより高速に行うことができる。また、このような関係から、各端末は、対応して設置されたキャッシュサーバ２００の存在（ＩＰアドレス等）を把握している。以下の説明は、このような関係を前提とする。
【００１８】
図２は、端末１０及び２０、コンテンツサーバ１００、キャッシュサーバ２００（以下、端末１０等と総称する）が備えるハードウェアの一例である。端末１０等は、例えば、ＣＰＵ（Central  Processing  Unit）Ａと、ドライブ装置Ｂと、記憶装置Ｄと、メモリ装置Ｅと、インターフェース装置Ｆと、入力装置Ｇと、出力装置Ｈと、を備える。これらの構成要素は、バスやシリアル回線等を介して接続されている。また、端末１０等は、図示しないＲＯＭ（Read  Only  Memory）やＤＭＡ（Direct  Memory  Access）コントローラ、割り込みコントローラ等を備えてよい。
【００１９】
ＣＰＵＡは、例えば、プログラムカウンタや命令デコーダ、各種演算器、ＬＳＵ（Load  Store  Unit）、汎用レジスタ等を有するプロセッサである。ドライブ装置Ｂは、記憶媒体Ｃからプログラムやデータを読み込み可能な装置である。プログラムを記録した記憶媒体Ｃがドライブ装置Ｂに装着されると、プログラムが記憶媒体Ｃからドライブ装置Ｂを介して記憶装置Ｄにインストールされる。記憶媒体Ｃは、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型の記憶媒体である。また、記憶装置Ｄは、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）である。
【００２０】
プログラムのインストールは、上記のように記憶媒体Ｃを用いる他、インターフェース装置Ｆがネットワークを介して他のコンピュータよりダウンロードし、記憶装置Ｄにインストールすることによって行うこともできる。ネットワークは、インターネット、ＬＡＮ、無線ネットワーク等であり、ＩＳＰ５０が仲介するものと、しないものの双方を含み得る。また、プログラムは、端末１０等の出荷時に、予め記憶装置ＤやＲＯＭ等に格納されていてもよい。
【００２１】
メモリ装置Ｅは、例えば、ＲＡＭ（Random  Access  Memory）である。インターフェース装置Ｆは、例えば、ＮＩＣ（Network  Interface  Card）を含み、上記ネットワークとの接続等を制御する。
【００２２】
入力装置Ｇは、例えば、キーボード、マウス、ボタン、タッチパッド、タッチパネル、マイク等である。また、出力装置Ｈは、例えば、ＬＣＤ（Liquid  Crystal  Display）やＣＲＴ（Cathode  Ray  Tube）等の表示装置、プリンタ、スピーカ等を含む。
【００２３】
なお、端末１０、２０、コンテンツサーバ１００、キャッシュサーバ２００は、全く同じハードウェア構成を有する必要はない。それぞれが、図２に示すハードウェアから一部の要素を削除、又は他の要素に置換したものであってよく、他の要素を付加したものであっても構わない。
【００２４】
［論理構成］
図３は、ある状態における、ネットワークシステム１が有する各構成要素の論理構成例である。
【００２５】
データ要求を行う端末１０では、例えば、Ｗｅｂブラウザ１２及びネットワーク情報管理部１４が起動している。Ｗｅｂブラウザ１２は、ユーザによって入力されたＵＲＬ（Uniform  Resource  Locator）を解読し、ＨＴＴＰ（HyperText  Transfer  Protocol）リクエストメッセージ（以下、データ要求と称する）を、コンテンツサーバ１００に送信する。Ｗｅｂブラウザ１２は、ＩＳＰ５０を介して、データ要求をコンテンツサーバ１００に送信する。ネットワーク情報管理部１４は、端末１０と他の端末との間の接続関係を把握し、キャッシュサーバ２００に送信する。
【００２６】
キャッシュサーバ２００では、例えば、記憶装置Ｄに格納されるキャッシュデータ２１０を管理するキャッシュ管理部２０２が動作している。
【００２７】
また、キャッシュサーバ２００では、例えば、端末１０及び２０を含む複数の端末に対するデータ提供依頼を制御するための端末管理部２０４、アクセス制御部（サーバ側）２０６、ＨＴＭＬ生成部２０８が動作している。端末管理部２０４は、記憶装置Ｄやメモリ装置Ｅ上に設定される接続関係データベース２１２及び保持データデータベース２１４を管理する。
【００２８】
データ提供依頼を受ける端末２０では、例えば、ネットワーク制御部２２、ネットワーク情報管理部２４、アクセス制御部（端末側）２６、キャッシュ情報管理部２８、及び利用状況監視部３０が動作している。キャッシュ情報管理部２８は、記憶装置Ｄに格納されるキャッシュデータ３２を管理している。
【００２９】
ネットワーク制御部２２は、他の端末との情報送受信、又はＩＳＰ５０を介したコンテンツサーバ１００、キャッシュサーバ２００との情報送受信を制御する。ネットワーク情報管理部２４は、端末１０と他の端末との間の接続関係を把握し、キャッシュサーバ２００に送信する。
【００３０】
アクセス制御部（端末側）２６は、キャッシュサーバ２００からのデータ提供依頼を受け付けたとき、ネットワーク制御部２２に、端末１０からのデータ要求に応じてキャッシュデータ３２に含まれるデータを端末１０に提供させる。以下、係るデータの提供を、「データ提供サービス」と称する。キャッシュ情報管理部２８は、データ提供サービスに用いられるキャッシュデータ３２を管理する。
【００３１】
利用状況監視部３０は、アクセス制御部（端末側）２６がキャッシュサーバ２００からのデータ提供依頼を受け付けた後、端末２０の状態が設定条件を満たす場合に、データ提供サービスを停止させる。また、利用状況監視部３０は、データ提供サービスを停止させると共に、停止した旨の情報をキャッシュサーバ２００に送信する。
【００３２】
図３に示す各機能部は、例えば、それぞれのＣＰＵがプログラムを実行することにより機能する。なお、各機能部は、明確に独立したプログラムによって実現される必要はなく、サブルーチンや関数として他のプログラムによって呼び出されるものであってもよい。また、機能部の一部が、ＬＳＩ（Large  Scale  Integrated  circuit）、ＩＣ（Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等のハードウェア手段であっても構わない。
【００３３】
なお、図３に示す状態はあくまで一例であり、端末１０及び２０は、互いに役割を入れ替えたり、データ要求をしつつデータ提供依頼を受ける側となったりすることができる。このため、端末１０においてもアクセス制御部（端末側）や利用状況監視部等が動作し、端末２０においてもＷｅｂブラウザが動作するといった状態が生じ得る。
【００３４】
［処理の流れ等］
図４は、端末１０がコンテンツサーバ１００にデータ要求を行った場合に行われ得る情報通信の流れと処理内容の一部を示す図である。下記の説明における括弧内の数字は、それぞれが図４に示す数字に対応している。
【００３５】
まず、端末１０がコンテンツサーバ１００に第１段階のデータ要求*を行うと（１）、コンテンツサーバ１００は、ネットワーク属性取得スクリプトを含むＨＴＭＬコンテンツを端末１０に返信する（２）。端末１０は、ネットワーク属性取得スクリプトを実行し、ネットワーク属性情報をコンテンツサーバ１００に送信する（３）。
【００３６】
コンテンツサーバ１００は、端末１０から受信したネットワーク属性情報、及びデータ要求に係るデータ名をキャッシュサーバ２００に送信する（４）。
【００３７】
キャッシュサーバ２００は、最適なデータ提供の依頼先を決定し（５）、データ提供依頼とパスワードを、最適なデータ提供の依頼先に決定された端末２０に送信する（６）。端末２０は、パスワードで対象データを取得できるように内部状態の設定を行う（７）。
【００３８】
また、キャッシュサーバ２００は、パスワードが埋め込まれたＨＴＭＬコンテンツをコンテンツサーバ１００に送信する（８）。コンテンツサーバ１００は、パスワードが埋め込まれたＨＴＭＬコンテンツを端末１０に転送する（９）。
【００３９】
端末１０は、受信したパスワードを用いて端末２０に第２段階のデータ要求**を送信し、データを取得する（１０）。そして、端末２０からキャッシュサーバ２００にアクセス完了通知が行われ（１１）、１回のデータ要求に関する処理が完了する。なお、図４における第２段階のデータ要求**が、特許請求の範囲における「データ要求」の一例である。
【００４０】
以下、図４に示したそれぞれの処理等について、より具体的に説明する。キャッシュサーバ２００は、図４の（１）〜（３）の処理によって取得されたネットワーク属性情報を用いて、接続関係データベース２１２を参照する。
【００４１】
〔端末管理部〕
図５は、端末管理部２０４によって管理される接続関係データベース２１２の一例である。端末管理部２０４は、各端末のネットワーク情報管理部（１４、２４等）との通信によって得られた情報を元に、接続関係データベース２１２の該当項目を編集する。前述のように各端末は、キャッシュサーバ２００の存在を把握しており、各端末のネットワーク情報管理部は、例えば所定周期で自端末のネットワーク属性等の情報をキャッシュサーバ２００に送信するように設定されている。図５においては、各端末を端末（１）、端末（２）等と表記している。
【００４２】
図５におけるデータラベル「GlobalIP（Internet  Protocol）」、「LocalIP」は、ルータとの接続関係に基づくグループ分け（サブネット）を示す。「GlobalIP」は、インターネットへの接続用に利用されるアドレスであり、「LocalIP」はローカルネットワークで利用されるアドレスである。従って、「GlobalIP」が同じグループの方が、「LocalIP」が同じグループよりも大きいグループである。また、図５におけるデータラベル「WLAN（Wireless  LAN）adhoc」は、直接通信による無線ＬＡＮで接続されたグループ分けを示す。また、図５におけるデータラベル「Bluetooth（登録商標）」は、Bluetooth網で接続されたグループ分けを示す。そして、図５におけるデータ項目ＧＲ１、ＧＲ２、ＧＲ３、ＧＲ４は、それぞれのグループ分けにおいて、いずれのグループに属するかを示す。
【００４３】
アクセス制御部（サーバ側）２０６は、端末１０が送信するネットワーク属性と、図５に例示した接続関係データベース２１２とを用いることにより、端末１０の他の端末との通信時間（通信に必要な時間）の長短を推定することができる。
【００４４】
例えば、図５の例では、データラベル「LocalIP」について同グループに属する端末同士は、データラベル「GlobalIP」についてのみ同グループに属する端末同士よりも、通信時間が短いと推定される。その他のデータラベル「WLANadhoc」や「Bluetooth」に関しても、アクセス制御部（サーバ側）２０６は、予め通信に要する標準的な時間等を内部的に設定しておくことにより、通信時間の長短を推定することができる。
【００４５】
図６は、端末管理部２０４等によって管理される保持データデータベース２１４の一例である。保持データデータベース２１４には、端末を識別するための端末ＩＤに対応付けられて、ネットワーク属性、保持データ、記憶装置の空き状況、パワーステータス、ＣＰＵ負荷、ネットワーク負荷、パスワード／ポート番号、保持時間等の情報が格納される。
【００４６】
保持データデータベース２１４におけるネットワーク属性は、例えば、接続関係データベース２１２に格納されたデータと同等の内容である。
【００４７】
保持データデータベース２１４における保持データは、各端末が記憶装置Ｄに保持しているデータであって、他の端末に提供可能なデータ（対象データ）の一覧である。一覧情報である保持データは、コンテンツサーバ１００が端末に提供するデータをキャプチャした結果や、各端末にデータ提供依頼した結果等に基づいて作成される。
【００４８】
保持データデータベース２１４における記憶装置の空き状況、パワーステータス、ＣＰＵ負荷、ネットワーク負荷等は、例えば、各端末からネットワーク属性と共に周期的に送信される情報に基づき把握される。
【００４９】
保持データデータベース２１４におけるパスワード／ポート番号、及び保持時間は、例えば、現在実行されているデータ提供依頼に関する情報である。図６のパスワード／ポート番号の欄は、端末（１）がデータ「b.mp4」を取得するためにパスワード「xxx」で端末（２）のポート番号「5029」にアクセス中であることを示している。また、図６のパスワード／ポート番号の欄は、端末（１）がデータ「c.iso」を取得するためにパスワード「yyy」で端末（３）のポート番号「5129」にアクセス中であることを示している。
【００５０】
図７は、端末管理部２０４により実行されるフローチャートの一例である。図７に示すフローチャートの処理は、例えば、所定周期で繰り返し実行される。
【００５１】
まず、端末管理部２０４は、端末のネットワーク情報管理部からネットワーク属性等の情報を受信したか否かを判定する（Ｓ３００）。
【００５２】
端末から情報を受信した場合、端末管理部２０４は、接続関係データベース２１２、及び保持データデータベース２１４の該当する項目を編集して更新する（Ｓ３０２）。
【００５３】
一方、端末から情報を受信しなかった場合、端末管理部２０４は、前回の基準時点から所定時間経過したか否かを判定する（Ｓ３０４）。前回の基準時点とは、次のＳ３０６でタイマーがクリアされた時点をいう。
【００５４】
前回の基準時点から所定時間経過していない場合、端末管理部２０４は、Ｓ３００に戻り、判定を行う。一方、前回の基準時点から所定時間経過した場合、端末管理部２０４は、所定時間以上応答がない端末に情報送信を要求し、「所定時間」を計測するタイマーをクリアする（Ｓ３０６）。Ｓ３０６の処理によって、端末管理部２０４は、例えば、スリープ状態となっている端末をウェイクオンさせて、ネットワーク属性等の情報を送信させることができる。
【００５５】
なお、端末管理部２０４は、Ｓ３０６において無条件に情報送信を要求するのではなく、「保持データデータベース２１４におけるパワーステータスがウェイクオン不可の端末には送信しない」等の条件を設定してもよい。
【００５６】
〔アクセス制御部（サーバ側）〕
アクセス制御部（サーバ側）２０６は、端末１０が送信するネットワーク属性情報、データ要求に係るデータ名、接続関係データベース２１２、保持データデータベース２１４を用いて、最適なデータ提供の依頼先を決定する（図４における（５））。そして、アクセス制御部（サーバ側）２０６は、データ提供の依頼先を決定すると、パスワードが埋め込まれたＨＴＭＬコンテンツをコンテンツサーバ１００に送信すると共に、データ提供依頼とパスワードを端末２０に送信する（図４における（６）、（８））。
【００５７】
図８は、アクセス制御部（サーバ側）２０６により実行される処理の流れを示すフローチャートの一例である。図８に示すフローチャートは、例えば、アクセス制御部（サーバ側）２０６がコンテンツサーバ１００からネットワーク属性情報とデータ名を受信したときに開始される。また、図８に示すフローチャートは、例えば、データ要求元の端末からパスワード等の再要求があった場合にも実行される。
【００５８】
また、図８に示すフローチャートは、例えば、データ名毎に（すなわち、データ提供依頼を行うかどうか判断するデータ毎に）実行される。
【００５９】
まず、アクセス制御部（サーバ側）２０６は、データ名が示す対象データを保持する端末を、所定順序で探索する（Ｓ４００）。アクセス制御部（サーバ側）２０６は、例えば、通信時間が短い順に、次いでその時点の負荷が小さい順に、対象データを保持する端末を探索する。また、アクセス制御部（サーバ側）２０６は、対象データがデータ送信に時間を要するものである場合は、その時点の負荷が小さいことを通信時間よりも優先して、対象データを保持する端末を探索してもよい。
【００６０】
図６を参照してＳ４００の処理を説明する。図６のパスワード／ポート番号の欄は、端末（１）が端末（２）のデータ「b.mp4」にアクセス中であり、更に端末（１）が端末（３）のデータ「c.iso」にアクセス中であることを示している。図６のネットワーク属性は、端末（１）と端末（２）が同じ「GlobalIP」のグループに属することを示しているため、端末（１）と端末（２）の通信時間が端末（１）と端末（３）の通信時間よりも短いと推定される。しかしながら、拡張子「.iso」を有するデータは、他の拡張子を有するデータよりもデータサイズが大きいことが多いため、通信時間が短い端末（２）ではなくＣＰＵ負荷が小さい端末（３）がデータ提供の依頼先として選択されている。なお、アクセス制御部（サーバ側）２０６は、上記のように拡張子に基づいてデータ提供の依頼先の端末を選択するのに限らず、各データの実際のデータサイズが基準よりも大きい場合に、ＣＰＵ負荷が小さい端末を優先的に選択してもよい。
【００６１】
Ｓ４００において端末を探索すると、アクセス制御部（サーバ側）２０６は、新たな端末（ループ処理の中で既に抽出された端末が除かれる）が抽出されたか否かを判定する（Ｓ４０２）。
【００６２】
新たな端末が抽出された場合、アクセス制御部（サーバ側）２０６は、抽出された端末に、データ提供依頼のためのデータとパスワードを送信する（Ｓ４０４）。Ｓ４０４では、他の端末からのアクセスを受け付けるためのポート番号、データ名、指定時間、データ要求元の端末ＩＤ、パスワード、規定回数等のデータが送信される。
【００６３】
次に、アクセス制御部（サーバ側）２０６は、ＨＴＭＬ生成部２０８にＨＴＭＬコンテンツの生成を依頼する（Ｓ４０６）。依頼を受けたＨＴＭＬ生成部２０８は、パスワードが埋め込まれたＨＴＭＬコンテンツを生成してコンテンツサーバ１００に送信する。
【００６４】
次に、アクセス制御部（サーバ側）２０６は、Ｓ４０４でデータやパスワードを送信した端末からアクセス完了通知を受信したか否かを判定し（Ｓ４０８）、受信していない場合、データやパスワードの送信から一定時間が経過したか否かを判定する（Ｓ４１０）。
【００６５】
データやパスワード等の送信から、アクセス完了通知を受信せずに一定期間が経過した場合、アクセス制御部（サーバ側）２０６は、Ｓ４００に戻り、次の端末を探索する。
【００６６】
アクセス完了通知を受信した場合、アクセス制御部（サーバ側）２０６は、図８のフローチャートに係る処理を終了する。
【００６７】
Ｓ４０２において新たな端末が抽出されなかったと判定された場合、アクセス制御部（サーバ側）２０６は、データ提供依頼をしないものと決定する（Ｓ４１２）。データ提供依頼をしない場合の処理については、後述する。
【００６８】
〔アクセス制御部（端末側）〕
アクセス制御部（端末側）２６は、キャッシュサーバ２００からデータ提供依頼を受け付けると、以下のようにデータ提供サービスを開始する（図４における（７））。データ提供サービスとは、キャッシュサーバ２００からのデータ提供依頼に基づき、端末１０からのデータ要求（以下、図４における第２段階のデータ要求**を指すものとする）に応じてデータを端末１０に送信するサービスである。これによって、端末１０は、パスワードを送信することによって対象データを取得することができる。
【００６９】
図９は、アクセス制御部（端末側）２６により実行される処理の流れを示すフローチャートの一例である。図９に示すフローチャートの処理は、例えば、所定周期で繰り返し実行される。
【００７０】
まず、アクセス制御部（端末側）２６は、キャッシュサーバ２００からデータ提供依頼を受信するまで待機する（Ｓ５００）。
【００７１】
キャッシュサーバ２００からデータ提供依頼を受信すると、アクセス制御部（端末側）２６は、タイマーによる計時をスタートする（Ｓ５０２）。
【００７２】
次に、アクセス制御部（端末側）２６は、データ提供依頼において指定されたポートへのアクセスがあったか否かを判定する（Ｓ５０４）。
【００７３】
指定されたポートへのアクセスがあった場合、アクセス制御部（端末側）２６は、データ要求元の端末ＩＤ、パスワード、及びデータが、データ提供依頼において指定された情報と一致するか否かを判定する（Ｓ５０６）。
【００７４】
データ要求元の端末ＩＤ、パスワード、及びデータが一致する場合、アクセス制御部（端末側）２６は、ネットワーク制御部２２に、指定されたデータをデータ要求元の端末に送信させ、データの提供を行う（Ｓ５０８）。
【００７５】
次に、アクセス制御部（端末側）２６は、規定回数分の正当なアクセスがあったか否かを判定する（Ｓ５１０）。ここで、規定回数とは、データ提供依頼の際に指定される情報であり、キャッシュサーバ２００から、一度に複数件のデータ提供依頼がなされた場合の想定アクセス回数を意味する。データ提供依頼が一件のみについてのものである場合、規定回数は１回である。
【００７６】
規定回数分の正当なアクセスがあった場合、アクセス制御部（端末側）２６は、アクセス完了通知をキャッシュサーバ２００に送信し、指定されたポートを閉じる処理を行う（Ｓ５１２）。
【００７７】
Ｓ５０６又はＳ５０８で否定的な判定を得た場合、アクセス制御部（端末側）２６は、Ｓ５０４に戻り、判定処理を行う。
【００７８】
Ｓ５０４において指定されたポートへのアクセスがなかったと判定された場合、アクセス制御部（端末側）２６は、タイマーの計時する時間が指定時間を超過したか否かを判定する（Ｓ５１４）。
【００７９】
タイマーの計時する時間が指定時間を超過した場合、アクセス制御部（端末側）２６は、終了通知をキャッシュサーバ２００に送信し、指定されたポートを閉じる処理を行う（Ｓ５１６）。
【００８０】
ここで、Ｓ５１４の判定に用いられる指定時間は、キャッシュサーバ２００において、データ提供依頼を受け付ける端末のＣＰＵ負荷に応じて決定される。図６に示すように、ＣＰＵ負荷が端末（３）よりも大きい端末（２）に送信される指定時間は１０００［sec］であり、端末（３）に送信される指定時間の２０００［sec］よりも短くなっている。このように、キャッシュサーバ２００のアクセス制御部（サーバ側）２０６は、ＣＰＵ負荷の小さい端末ほど指定時間が長くなり、ＣＰＵ負荷の大きい端末には指定時間が短くなる傾向で、指定時間を設定する。これによって、データ提供のための待機時間が長くなることにより、端末のＣＰＵ負荷が過大になることを抑制することができる。
【００８１】
〔ＨＴＭＬコンテンツ〕
図１０は、ＨＴＭＬ生成部２０８により生成されるＨＴＭＬコンテンツの一例である。図１０に示すＨＴＭＬコンテンツは、「端末（３）からパスワード「pwd1」でデータ「a.jpg」を取得し、取得できた場合は、「ＯＫ」をキャッシュサーバ２００に返す」動作をデータ要求元の端末に行わせる。また、図１０に示すＨＴＭＬコンテンツは、「端末（３）からパスワード「pwd1」でデータ「a.jpg」を取得できなかった場合は、キャッシュサーバ２００から新たな提供先を取得する」動作をデータ要求元の端末に行わせる。
【００８２】
図１１は、図１０に示すＨＴＭＬコンテンツが端末（２）に送信された結果として実行される処理の流れの一例を示すシーケンス図である。図１１に示すように、まず、キャッシュサーバ２００において図８に示すフローチャートが実行され、その結果に基づき、キャッシュサーバ２００から、端末（３）からデータ「a.jpg」を取得するためのＨＴＭＬコンテンツが送信される（Ｓ６００）。
【００８３】
次に、端末（２）がＨＴＭＬコンテンツの内容に従ってデータの取得を開始する（Ｓ６０２）。
【００８４】
端末（２）は、パスワードを端末（３）に送信し、データ「a.jpg」の取得を開始する（Ｓ６０４）。ここでは、端末（３）がデータ提供サービスを停止した、或いは既にデータ「a.jpg」を消去した等の理由で、エラーが端末（２）に返されたものとする（Ｓ６０６）。
【００８５】
端末（２）は、エラーが返されると、データ「a.jpg」を取得するための新たな端末の紹介依頼をキャッシュサーバ２００に送信する（Ｓ６０８）。
【００８６】
キャッシュサーバ２００は、図８に示すフローチャートを再度実行し、端末（４）からデータ「a.jpg」を取得するためのＨＴＭＬコンテンツを端末（２）に送信する（Ｓ６１０）。
【００８７】
端末（２）は、パスワードを端末（４）に送信し、データ「a.jpg」の取得を開始する（Ｓ６１２）。ここでは、端末（４）から端末（２）に対し、データ「a.jpg」の送信が完了したものとする（Ｓ６１４）。この結果、端末（２）は、「ＯＫ」を示すデータを、キャッシュサーバ２００に送信する（Ｓ６１６）。
【００８８】
なお、前述のように、データ提供の依頼先の端末が発見されなかった場合、アクセス制御部（サーバ側）２０６は、端末にデータ提供依頼をしないものと決定する。図１２は、端末にデータ提供依頼をしない場合にＨＴＭＬ生成部２０８により生成されるＨＴＭＬコンテンツの一例である。図１２に示すＨＴＭＬコンテンツは、「キャッシュサーバ２００からデータ「a.jpg」を取得し、できなかった場合はコンテンツサーバ１００からデータを取得する」動作をデータ要求元の端末に行わせる。また、図１２に示すＨＴＭＬコンテンツは、「キャッシュサーバ２００とコンテンツサーバ１００いずれからデータ取得した場合も、「ＯＫ」をキャッシュサーバ２００に返す」動作をデータ要求元の端末に行わせる。
【００８９】
データ要求元の端末がデータを取得して「ＯＫ」がキャッシュサーバ２００に返されると（或いはデータ提供側の端末からアクセス完了通知が送信されると）、保持データデータベース２１４の内容が更新される。図１３は、図６に示す保持データデータベース２１４に対し、端末（１）がデータ「b.mp4」とデータ「c.iso」の取得を完了したことが反映された保持データデータベース２１４の内容を示す図である。図１３に示すように、端末（１）がデータ「b.mp4」とデータ「c.iso」を取得したことが判明すると、キャッシュサーバ２００の端末管理部２０４は、端末（１）の保持データの欄にデータ「b.mp4」とデータ「c.iso」を追加する。
【００９０】
〔利用状況監視部〕
ここで、データ提供側の端末（以下、端末２０という表記に戻る）は、ユーザ端末として用いられるため、ユーザが所望する動作に起因する処理負荷と、データ提供を依頼されることによる処理負荷が重なると、性能が低下する可能性がある。
【００９１】
ユーザが所望する動作とは、例えば、入力装置Ｇに対して行った入力操作に応じた画面を表示装置に表示させる動作等、データ提供サービスのための動作とは異なる動作である。
【００９２】
利用状況監視部３０は、データ提供依頼によってアクセス制御部（端末側）２６が動作している間、端末２０の状態を監視し、端末２０の状態が設定条件を満たす場合に、データ提供サービスを停止させ、停止した旨の情報をキャッシュサーバ２００に送信する。
【００９３】
図１４は、利用状況監視部３０により実行される処理の流れを示すフローチャートの一例である。図１４に示すフローチャートは、例えば、所定周期で繰り返し実行される。
【００９４】
まず、利用状況監視部３０は、アクセス制御部（端末側）２６に対してデータ提供依頼がなされ、アクセス完了通知又は終了通知がまだ送信されていない状態、すなわち、データ提供サービスを実行中であるか否かを判定する（Ｓ７００）。データ提供サービスを実行中でない場合、利用状況監視部３０は、図１４に示すフローチャートの１ルーチンを終了する。
【００９５】
データ提供サービスを実行中である場合、利用状況監視部３０は、端末２０の、キーボード、マウス、ボタン、タッチパッド、タッチパネル、マイク等の入力装置Ｇに対するユーザの入力操作が検知されたか否かを判定する（Ｓ７０２）。利用状況監視部３０は、より具体的には、例えば、「過去数［min］以内に入力操作が検知されたか否か」を判定する。利用状況監視部３０は、これに限らず、適切な条件を設定して「入力操作が検知されたか否か」を判定してよい。入力操作が検知されなかった場合、利用状況監視部３０は、図１４に示すフローチャートの１ルーチンを終了する。
【００９６】
入力装置Ｇに対するユーザの入力操作が検知された場合、利用状況監視部３０は、端末２０の移動が開始されたか否かを判定する（Ｓ７０４）。「端末の移動」には、接続関係の移動（変化）と、物理的な意味での移動の一方又は双方が含まれ得る。利用状況監視部３０は、例えば、ネットワーク情報管理部２４から情報を提供されることにより、接続関係の移動（変化）を検知することができる。また、利用状況監視部３０は、例えば、ＨＤＤのヘッド退避制御に用いられる加速度センサの出力値を参照することにより、物理的な意味での移動を検知することができる。
【００９７】
端末２０の移動が開始された場合、利用状況監視部３０は、データ提供サービスを停止するようにアクセス制御部（端末側）２６に指示し（Ｓ７１０）、キャッシュサーバ２００に、データ提供サービスを停止する旨を通知する（Ｓ７１２）。
【００９８】
データ提供サービスを停止するように指示されたアクセス制御部（端末側）２６は、以降、キャッシュサーバ２００からのデータ提供依頼において指定されたポートへのアクセスを受け付けない。なお、改めてキャッシュサーバ２００から同じポートを指定してデータ提供依頼がなされた場合には、例えば、利用状況監視部３０が依頼を受け付け可能な状態が否かを判断し、受付可能であれば指定されたポートを使用したデータ提供サービスを開始する。
【００９９】
端末２０の移動が開始されなかった場合、利用状況監視部３０は、端末２０のＣＰＵ負荷が所定値以上であるか否かを判定する（Ｓ７０６）。
【０１００】
端末２０のＣＰＵ負荷が所定値以上である場合、利用状況監視部３０は、データ提供サービスを停止するようにアクセス制御部（端末側）２６に指示し（Ｓ７１０）、キャッシュサーバ２００に、データ提供サービスを停止する旨を通知する（Ｓ７１２）。
【０１０１】
端末２０のＣＰＵ負荷が所定値未満である場合、利用状況監視部３０は、端末２０のパワーステータスが変化したか否かを判定する（Ｓ７０８）。パワーステータスとは、例えば、通常動作中、休止、スリープ、シャットダウン（停止）等の状態をいう。
【０１０２】
端末２０のパワーステータスが変化した場合、利用状況監視部３０は、データ提供サービスを停止するようにアクセス制御部（端末側）２６に指示し（Ｓ７１０）、キャッシュサーバ２００に、データ提供サービスを停止する旨を通知する（Ｓ７１２）。
【０１０３】
なお、Ｓ７０４及びＳ７０８の判定処理は、例えば、図１４のフローチャートが繰り返し実行される中で、前回のルーチンから今回のルーチンまでの間に「開始された」又は「変化した」ことを判定するものである。
【０１０４】
Ｓ７０２において否定的な判定を得た場合、及び、Ｓ７０２において肯定的な判定を得てＳ７０４〜Ｓ７０８の全てにおいて否定的な判定を得た場合、利用状況監視部３０は、図１４に示すフローチャートの１ルーチンを終了する。
【０１０５】
このように、端末２０では、利用状況監視部３０が、端末２０の状態が「入力装置Ｇに対するユーザの入力操作が検知された」ことを含む設定条件を満たす場合に、データ提供サービスを停止させる。これによって、端末２０は、ユーザが所望する動作のための性能を確保することができる。
【０１０６】
データ提供サービスを停止する旨を通知されたキャッシュサーバ２００は、例えば、一定期間、保持データデータベース２１４の端末２０の欄にフラグを立てたり、ＣＰＵ負荷を意図的に大きく変更したりすることで、端末２０へのデータ提供依頼を抑制する。これによって、以降において端末２０がデータ提供依頼を受信する可能性が下がり、端末２０が、ユーザが所望する動作のための性能を確保した状態を継続させることができる。
【０１０７】
［まとめ］
以上説明した情報処理装置、データ提供方法、及びデータ提供プログラムの実施例によれば、端末２０の状態が設定条件を満たす場合にデータ提供サービスを停止させるため、端末２０に、ユーザが所望する動作のための性能を確保させることができる。
【０１０８】
なお、上記実施例における端末２０が、「情報処理装置」の一例であり、ネットワーク制御部２２及びアクセス制御部（端末側）２６が、「提供部」の一例であり、利用状況監視部３０が、「停止部」の一例である。また、上記実施例における記憶装置Ｄが、「記憶部」の一例であり、入力装置Ｇが、「入力部」の一例である。なお、「入力部」は、入力装置Ｇのようなハードウェアではなく、端末２０内の入力インターフェースを指すものであってもよい。
【０１０９】
また、上記実施例における端末１０が、「データ要求元の装置」の一例であり、コンテンツサーバ１００及びキャッシュサーバ２００が、「情報提供装置」の一例である。
【０１１０】
また、図７、８、９、１４に示すフローチャートはあくまで一例であり、同様の処理結果を得られる限り、処理の順序等を変更しても構わない。
【０１１１】
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１１２】
例えば、データ提供依頼を行う主体であるアクセス制御部（サーバ側）２０６が、キャッシュサーバ２００上で動作するものとしたが、コンテンツサーバ１００上で同様の機能部が動作するものとしてもよい。
【０１１３】
以上の実施形態に関し、さらに以下の項を開示する。
（付記１）
ネットワークへ接続するインターフェース部と、
提供するデータを記憶する記憶部と、
前記インターフェース部を介して通信される情報提供装置から、データ要求元の装置へデータ提供する提供依頼を受け付け、前記記憶部に記憶されたデータを、前記データ要求元の装置に提供する提供部と、
ユーザの入力を受け付ける入力部と、
前記入力部に対するユーザの入力操作が検知されたことを含む設定条件が満たされた場合に、前記提供部による前記データ要求元の装置へのデータの提供を停止させる停止部と、
を備える情報処理装置。
（付記２）
付記１記載の情報処理装置であって、
前記停止部は、前記提供部による前記データ要求元の装置へのデータの提供を停止させると共に、該停止させる旨の情報を前記情報提供装置に送信する、
情報処理装置。
（付記３）
情報処理装置が、
ネットワークを介して通信する情報提供装置からデータ要求元の装置へのデータ提供依頼を受け付け、
前記データ要求元の装置からのデータ要求に応じて、記憶部に記憶されたデータを前記データ要求元の装置に提供し、
入力部に対するユーザの入力操作を検知し、
検知された前記入力操作を含む設定条件が満たされた場合に、前記データ要求元の装置へのデータの提供を停止する、
データ提供方法。
（付記４）
付記３記載のデータ提供方法であって、
前記情報処理装置が、
前記提供部による前記データ要求元の装置へのデータの提供を停止させると共に、該停止させる旨の情報を前記情報提供装置に送信する、
データ提供方法。
（付記５）
情報処理装置に、
ネットワークを介して通信する情報提供装置からデータ要求元の装置へのデータ提供依頼を受け付けさせ、
前記データ要求元の装置からのデータ要求に応じて、記憶部に記憶されたデータを前記データ要求元の装置に提供させ、
入力部に対するユーザの入力操作を検知させ、
検知された前記入力操作を含む設定条件が満たされた場合に、前記データ要求元の装置へのデータの提供を停止させる、
データ提供プログラム。
（付記６）
付記５記載のデータ提供プログラムであって、
前記情報処理装置が、
前記提供部による前記データ要求元の装置へのデータの提供を停止させると共に、該停止させる旨の情報を前記情報提供装置に送信する、
データ提供プログラム。
（付記７）
複数の情報処理装置と、前記複数の情報処理装置にネットワークを介してデータを提供する情報提供装置と、を備えるネットワークシステムにおいて実行されるデータ提供方法であって、
前記情報提供装置が、
データ要求元の情報処理装置から第１段階のデータ要求を受信したとき、前記複数の情報処理装置のうち前記データ要求に係るデータを記憶部に記憶させている情報処理装置に対して、前記データ要求元の情報処理装置に対してデータを提供する提供依頼を送信すると共に、前記データ要求元の情報処理装置に対して、前記提供依頼を送信した情報処理装置に第２段階のデータ要求を行うように指示し、
前記複数の情報処理装置のうち前記提供依頼を受信した情報処理装置が、
前記データ要求元の情報処理装置からの第２段階のデータ要求に応じて、記憶部に記憶されたデータを前記データ要求元の情報処理装置に提供し、
入力部に対するユーザの入力操作を検知し、
検知された前記入力操作を含む設定条件が満たされた場合に、前記データ要求元の情報処理装置へのデータの提供を停止する、
データ提供方法。
（付記８）
付記７記載のデータ提供方法であって、
前記情報提供装置は、前記提供依頼を送信する情報処理装置の処理負荷に応じて前記データ提供依頼の期限を決定し、該決定した期限を前記提供依頼と共に送信し、
前記複数の情報処理装置のうち前記提供依頼を受信した情報処理装置は、前記送信された期限の定める間、前記データ要求元の情報処理装置へのデータの提供を行う、
データ提供方法。
（付記９）
付記７又は８記載のデータ提供方法であって、
前記情報提供装置は、
前記データ要求に係るデータのサイズが所定程度以上小さい場合には、前記データ要求に係るデータを記憶部に記憶させている複数の情報処理装置のうち、通信時間が相対的に短いと推定される情報処理装置に対して優先的に前記提供依頼を送信し、
前記データ要求に係るデータのサイズが所定程度以上大きい場合には、前記データ要求に係るデータを記憶部に記憶させている複数の情報処理装置のうち、処理負荷が小さい情報処理装置に対して優先的に前記提供依頼を送信する、
データ提供方法。
【符号の説明】
【０１１４】
１      ネットワークシステム
１０    端末
１２    Ｗｅｂブラウザ
１４    ネットワーク情報管理部
２０    端末
２２    ネットワーク制御部
２４    ネットワーク情報管理部
２６    アクセス制御部（端末側）
２８    キャッシュ情報管理部
３０    利用状況監視部
３２    キャッシュデータ
５０    ＩＳＰ
１００  コンテンツサーバ
２００  キャッシュサーバ
２０２  キャッシュ管理部
２０４  端末管理部
２０６  アクセス制御部（サーバ側）
２０８  ＨＴＭＬ生成部
２１０  キャッシュデータ
２１２  接続関係データベース
２１４  保持データデータベース
Ａ      ＣＰＵ
Ｂ      ドライブ装置
Ｃ      記憶媒体
Ｄ      記憶装置
Ｅ      メモリ装置
Ｆ      インターフェース装置
Ｇ      入力装置
Ｈ      出力装置
【図１】
2014026315.tif 000003
【図２】
2014026315.tif 000004
【図３】
2014026315.tif 000005
【図４】
2014026315.tif 000006
【図５】
2014026315.tif 000007
【図６】
2014026315.tif 000008
【図７】
2014026315.tif 000009
【図８】
2014026315.tif 000010
【図９】
2014026315.tif 000011
【図１０】
2014026315.tif 000012
【図１１】
2014026315.tif 000013
【図１２】
2014026315.tif 000014
【図１３】
2014026315.tif 000015
【図１４】
2014026315.tif 000016