以下に、本願の開示するコンテンツ管理装置、コンテンツ管理方法およびコンテンツ管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例1に係るシステムの構成について説明する。図1は、本実施例1に係るシステムの構成を示す図である。図1に示すように、このシステムは、端末100a、100b、100c、100d、100eと、コンテンツ管理装置200を有する。以下の説明において、適宜、端末100a〜100eをまとめて端末100と表現する。端末100とコンテンツ管理装置200は、ネットワーク30を介して相互に接続される。なお、端末100は、基地局との間で無線通信を実行して、ネットワーク30に接続しても良い。
端末100は、コンテンツ管理装置200にアクセスし、コンテンツを取得する。また、端末100は、コンテンツ管理装置200からの要求に応じて、該当するコンテンツをコンテンツ管理装置200にアップロードする。端末100の詳細は後述する。
コンテンツ管理装置200は、ある端末からコンテンツを取得し、他の端末にコンテンツを送信することで、各端末100間におけるコンテンツの共有を可能にするサーバである。コンテンツ管理装置200は、コンテンツを共有する場合に、端末がコンテンツを取得した時点での周辺の端末数に応じてコンテンツの優先度を算出し、優先度の高いコンテンツから順にアップロードする。コンテンツ管理装置200の詳細は後述する。
次に、図1に示した端末100の構成について説明する。図2は、本実施例1に係る端末の構成を示す機能ブロック図である。図2に示すように、端末100は、電源監視部101、回線監視部102、処理負荷監視部103、タイマ104、位置情報取得部105、通信部106を有する。また、端末100は、記憶部150、機器情報取得部161、ユーザ情報取得部162、コンテンツ管理部164、応答部165、要求部166を有する。なお、図示しないが、端末100は、利用者が情報を入力する入力部や、コンテンツの内容を参照するための表示部を有しているものとする。
電源監視部101は、図示しない電源部を監視し、電源が接続されているか否かを判定する。また、電源監視部101は、バッテリーを監視し、バッテリー残量を特定する。電源監視部101は、電源が接続されているか否かの情報およびバッテリー残量の情報を機器情報取得部161に出力する。
回線監視部102は、端末100が利用する回線の回線負荷を監視する。例えば、端末100が利用する回線は、端末100と基地局との間の回線でもよいし、端末100とコンテンツ管理装置200との回線であってもよい。回線監視部102は、回線負荷の情報を、機器情報取得部161に出力する。
処理負荷監視部103は、端末100の処理負荷を監視する。例えば、処理負荷監視部103は、図示しないCPU(Central Processing Unit)や、その他の処理部を監視し、端末100の処理負荷を判定する。処理負荷監視部103は、処理負荷の情報を、機器情報取得部161に出力する。
タイマ104は時間情報を、機器情報取得部161、ユーザ情報取得部162、コンテンツ管理部164に出力するタイマである。
位置情報取得部105は、GPS(Global Positioning System)を利用して、端末100の位置情報を計測する。位置情報取得部105は、位置情報を、ユーザ情報取得部162、コンテンツ管理部164に出力する。
通信部106は、ネットワーク30を介して、コンテンツ管理装置200との間でデータ通信を実行する。通信部106は、無線通信を実行し、基地局を介して、ネットワーク30に接続しても良い。例えば、通信部106は、所定の通信プロトコルで通信を実行する通信装置に対応する。
記憶部150は、機器情報150a、ユーザ情報150b、メタ情報150c、コンテンツ情報150d、アップロード登録情報150eを記憶する記憶装置である。記憶部150は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
機器情報150aは、端末100の電源情報、端末100が接続する回線の負荷、端末100の処理負荷に関する情報を含む。図3は、機器情報のデータ構造の一例を示す図である。図3に示すように、機器情報150aは、端末識別情報、利用者、バッテリー残量、電源接続状態、処理負荷、回線負荷、時間を対応付ける。
なお、本実施例1では、便宜上、端末100a〜100eの端末識別情報を、それぞれ、100a〜100eとする。また、端末100a〜100eの利用者をそれぞれ、Aさん〜Eさんとする。
ユーザ情報150bは、端末の位置情報と該端末の位置情報を計測した時間を含む。図4は、ユーザ情報のデータ構造の一例を示す図である。図4に示すように、ユーザ情報150bは、端末識別情報、利用者、時間、位置を有する。
メタ情報150cは、コンテンツの種別、コンテンツを取得した時間、該コンテンツを取得した時点の端末100の位置情報を含む。図5は、メタ情報のデータ構造の一例を示す図である。図5に示すように、メタ情報150cは、コンテンツ名、種別、時間、位置を有する。
コンテンツ情報150dは、コンテンツに関する各種の情報を有する。図6は、コンテンツ情報のデータ構造の一例を示す図である。図6に示すように、コンテンツ情報150dは、コンテンツ名、種別、時間、位置、コンテンツを有する。コンテンツ情報150dに含まれる時間は、コンテンツを取得した時間である。また、コンテンツ情報150dに含まれる位置は、コンテンツを取得した時点の端末100の位置である。
アップロード登録情報150eは、コンテンツの公開範囲を指定する情報を含む。例えば、アップロード登録情報150eは、利用者が予め設定しておくものとする。図7は、アップロード登録情報のデータ構造の一例を示す図である。図7に示すように、アップロード登録情報150eは、グループテーブル151eと、公開テーブル151fを有する。
グループテーブル151eは、グループ名と、利用者名とを対応付けるテーブルである。グループテーブル151eの1段目において、グループaには、利用者C、D、Eが含まれている。
公開テーブル151fは、コンテンツ名と公開グループとを対応付けるテーブルである。例えば、公開テーブル151fの1段目では、グループaに、画像Aを公開することを指定されている。グループテーブル151eを参照すると、グループaには、利用者C、D、Eが含まれるため、画像Aを公開する利用者は、利用者C、D、Eとなる。
機器情報取得部161は、電源監視部101、回線監視部102、処理負荷監視部103、タイマ104から取得した情報を、機器情報150aとして記憶部150に記憶する処理部である。また、機器情報取得部161は、予め設定された端末識別情報および利用者を、機器情報150aに設定する。
ユーザ情報取得部162は、タイマ104、位置情報取得部105から取得した情報を、ユーザ情報150bとして記憶部150に順次記憶する。ユーザ情報150bの時間は、端末100の位置を計測した時点での時間となる。また、ユーザ情報取得部162は、予め設定された端末識別情報および利用者を、ユーザ情報150bに設定する。
メタ情報取得部163は、コンテンツ情報150dに含まれる情報のうち、コンテンツ名、種別、時間、位置の情報を取得し、取得した情報をメタ情報150cとして、記憶部150に記憶する。
コンテンツ管理部164は、図示しないコンテンツ取得装置から、コンテンツを取得し、コンテンツを取得した時点での位置と時間を対応付けて、コンテンツ情報150dとして記憶部150に記憶させる処理部である。コンテンツ取得装置は、カメラ、マイク、ビデオカメラ等に対応する。カメラ、マイク、ビデオカメラは、端末100に備え付けのものであっても良い。なお、コンテンツ名、種別は、コンテンツに予め対応付けられているものとする。
応答部165は、コンテンツ管理装置200からのデータ要求に応答して、各種の情報をコンテンツ管理装置200に送信する処理部である。応答部165は、コンテンツ管理装置200から、機器情報の要求を受信した場合には、機器情報150aを、コンテンツ管理装置200に送信する。応答部165は、コンテンツ管理装置200から、ユーザ情報の要求を受信した場合には、ユーザ情報150bを、コンテンツ管理装置200に送信する。応答部165は、コンテンツ管理装置200から、メタ情報の要求を受信した場合には、メタ情報150cをコンテンツ管理装置200に送信する。
また、応答部165は、コンテンツ管理装置200からコンテンツ情報の要求を受信した場合には、コンテンツ情報150dをコンテンツ管理装置200に送信する。以下の説明において、コンテンツ管理装置200から受信するコンテンツ情報の要求を、コンテンツ要求情報と表記する。
コンテンツ要求情報には、コンテンツ名と、該コンテンツ名のコンテンツに対する優先順位とが対応付けられている。応答部165は、優先順位に従って、コンテンツ情報150dのコンテンツをコンテンツ管理装置200に送信する。
要求部166は、コンテンツ管理装置200にコンテンツのアップロードを要求する処理部である。要求部166は、コンテンツのアップロード要求を行う場合には、アップロード登録情報150eを、コンテンツ管理装置200に送信する。
また、要求部166は、他の端末によりコンテンツ管理装置200にアップロードされたコンテンツを、利用者の指示により要求し、コンテンツ管理装置200から取得する。
次に、図2に示したコンテンツ管理装置200の構成について説明する。図8は、本実施例1に係るコンテンツ管理装置の構成を示す機能ブロック図である。図8に示すように、コンテンツ管理装置200は、通信部210、入力部220、表示部230、記憶部240、制御部250を有する。
通信部210は、ネットワーク30を介して、各端末100との間でデータ通信を実行する処理部である。後述する制御部250は、通信部210を介して、各端末100とデータをやり取りする。通信部210は、所定の通信プロトコルで通信を実行する通信装置に対応する。
入力部220は、各種の情報をコンテンツ管理装置200に入力する入力装置である。例えば、入力部220は、キーボードやマウス、タッチパネル等に対応する。表示部230は、各種の情報を表示する表示装置である。例えば、表示部230は、ディスプレイやタッチパネル等に対応する。
記憶部240は、アップロード登録情報240a、機器情報240b、メタ情報240c、ユーザ情報テーブル240d、テンポラリテーブル240e、コンテンツ情報240fを有する。記憶部240は、例えば、RAM、ROM、フラッシュメモリなどの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
アップロード登録情報240aは、アップロードを行う端末100から取得するアップロード登録情報である。図8のアップロード登録情報240aのデータ構造は、図2に示したアップロード登録情報150eに対応する。
機器情報240bは、アップロードを行う端末100から取得する機器情報である。図8の機器情報240bのデータ構造は、図2に示した機器情報240bに対応する。
メタ情報240cは、アップロードを行う端末100から取得するメタ情報である。図8のメタ情報240cは、図2に示したメタ情報150cに対応する。
ユーザ情報テーブル240dは、各端末からのユーザ情報を有するテーブルである。図9は、ユーザ情報テーブルのデータ構造の一例を示す図である。図9に示すように、ユーザ情報テーブル240dは、各端末100から取得したユーザ情報を有する。なお、図9では図示を省略するが、端末識別情報100a〜100c以外のユーザ情報も、ユーザ情報テーブル240dに含まれているものとする。
テンポラリテーブル240eは、位置の近い端末同士をグループ化する場合に利用するテーブルである。テンポラリテーブル240eの詳細については後述する。
コンテンツ情報240fは、端末100からアップロードされたコンテンツに対応する。
制御部250は、情報取得部250a、優先度判定部250b、コンテンツ送受信部250cを有する。制御部250は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、制御部250は、例えば、CPUやMPU(Micro Processing Unit)等の電子回路に対応する。
情報取得部250aは、各端末100から、アップロード登録情報、機器情報、メタ情報、ユーザ情報を取得する処理部である。メタ情報取得部251、ユーザ情報取得部252、機器情報取得部253を有する。以下において、メタ情報取得部251、ユーザ情報取得部252、機器情報取得部253について処理の一例を順に説明する。
メタ情報取得部251について説明する。上記のように、例えば、端末100は、アップロードをコンテンツ管理装置200に要求する場合には、アップロード登録情報を、コンテンツ管理装置200に送信する。メタ情報取得部251は、かかるアップロード登録情報を取得した場合に、アップロード登録情報240aを、記憶部240に記憶させる。
メタ情報取得部251は、アップロード登録情報240aを、記憶部240に記憶させた後に、アップロード登録情報240aの送信元となる端末100に、メタ情報を要求する。メタ情報取得部251は、メタ情報を端末100からメタ情報を受信した場合に、受信したメタ情報240cを、記憶部240に記憶させる。
ユーザ情報取得部252について説明する。ユーザ情報取得部252は、アップロード登録情報240aを参照し、各グループに含まれる利用者の端末100に対して、ユーザ情報を要求する。ユーザ情報取得部252は、利用者と端末との関係を予め把握しているものとする。ユーザ情報取得部252は、各端末100からユーザ情報を取得し、各ユーザ情報をユーザ情報テーブル240dに登録する。
機器情報取得部253について説明する。機器情報取得部253は、アップロードを行う端末100に対して、機器情報を要求する。機器情報取得部253は、機器情報を取得し、機器情報240bを記憶部240に記憶させる。
優先度判定部250bは、各コンテンツの優先度を判定する処理部である。優先度判定部250bは、優先度の判定結果をコンテンツ送受信部250cに出力する。優先度判定部250bは、端末100がコンテンツを取得した場合において、該端末の周辺に存在する端末の数を基にして、コンテンツの優先度を判定する。以下において、優先度判定部250bの処理を具体的に説明する。
優先度判定部250bは、メタ情報240cを参照し、優先度の判定対象となるコンテンツを選択する。優先度判定部250bは、選択したコンテンツの時間をメタ情報240cから特定し、特定した時間と同じ時間帯の、各利用者の位置をユーザ情報テーブル240dから取得する。
優先度判定部250bは、各利用者の位置を取得した後に、各利用者の位置に基づいて、グループ化を行う。優先度判定部250bは、各利用者の位置を比較して、所定の距離dmin未満となる利用者同士を同じグループに分類する。また、優先度判定部250bは、グループの重心座標と、他の端末の距離が閾値dmin未満となる端末を、該グループに含める。または、優先度判定部250bは、グループの重心座標と、他のグループの重心座標との距離が閾値dmin未満となるグループ同士を、同じグループに分類する。
優先度判定部250bは、グループ化を行った後に、選択したコンテンツの位置と最も近いグループを判定し、判定したグループに含まれる利用者の数を判定する。優先度判定部250bは、上記の処理を各コンテンツに対して実行し、コンテンツ毎に利用者の数Nを算出する。
優先度判定部250bは、各コンテンツに対応する利用者の数Nのうち、最大の利用者の数Nmaxを特定する。優先度判定部250bは、各コンテンツについて、利用者の数NをNmaxで割ることで、コンテンツの優先度を算出する。例えば、あるコンテンツに対応する利用者の数がNの場合には、かかるコンテンツの優先度は、N/Nmaxとなる。
ここで、優先度判定部250bが、コンテンツ名「画像A」に対応する利用者の数を判定する場合の処理について説明する。優先度判定部250bは、コンテンツ名「画像A」に対応する時間を、メタ情報240cから特定する。例えば、画像Aの時間は「2011/09/27/11:00:34」となる。
優先度判定部250bは、時間「2011/09/27/11:00:34」における各利用者の位置をユーザ情報テーブル240dから取得する。優先度判定部250bは、各利用者の位置に基づいて、テンポラリテーブル240eを生成する。
図10は、テンポラリテーブルのデータ構造の一例を示す図である。図10に示す例では、利用者Aと利用者Bとの距離が「0.3」であり、利用者Aと利用者Cとの距離が「1.1」であり、利用者Aと利用者Dとの距離が「3.0」であり、利用者Aと利用者Eとの距離が「2.5」である。また、利用者Bと利用者Cとの距離が「0.4」であり、利用者Bと利用者Dとの距離が「2.8」であり、利用者Bと利用者Eとの距離が「2.6」である。また、利用者Cと利用者Dとの距離が「2.5」であり、利用者Cと利用者Eとの距離が「3.0」である。また、利用者Dと利用者Eとの距離が「2.0」である。
優先度判定部250bは、テンポラリテーブル240eを基にして、グループ化を行う。図11は、グループ化を行う処理の一例を説明するための図である。優先度判定部250bは、1段目のテンポラリテーブル240eを参照し、各利用者の距離が最小となる利用者の組み合わせを判定する。図11の1段目について、各利用者の距離が最小となる利用者の組み合わせは、利用者Aと利用者Bとの組みとなり、各利用者の距離が「0.3」となる。優先度判定部250bは、最小の距離が所定の閾値dmin未満である場合に、利用者Aと利用者Bとをグループ化する。例えば、閾値dminの値を「1.5」とする。利用者Aと利用者Bとを含むグループをグループ(A、B)とする。
優先度判定部250bは、グループ化した利用者Aの位置と利用者Bの位置との重心座標を、グループ(A、B)の位置とする。優先度判定部250bは、グループ(A、B)の位置と、利用者C、D、Eの位置との関係を基にして、テンポラリテーブル240eを更新する。更新したテンポラリテーブル240eは、図11の2段目に示すものとなる。
図11の2段目に示すテンポラリテーブル240eでは、グループ(A、B)と利用者Cとの距離が「0.5」となり、グループ(A、B)と利用者Dとの距離が「2.8」となり、グループ(A、B)と利用者Eとの距離が「2.5」となる。利用者C、D、Eの距離の関係は、1段目のテンポラリテーブル240eと同様である。
優先度判定部250bは、2段目のテンポラリテーブル240eを参照し、距離が最小となる組み合わせを判定する。図11の2段目について、最小となる組み合わせは、グループ(A、B)と、利用者Cとの組みとなり、距離が「0.5」となる。最小の距離が閾値dmin未満であるため、優先度判定部250bは、グループ(A、B)に利用者Cを加えて、グループ(A、B、C)とする。
優先度判定部250bは、利用者A、利用者B、利用者Cの位置の重心座標を、グループ(A、B、C)の位置とする。優先度判定部250bは、グループ(A、B、C)の位置と、利用者D、Eの位置とを基にして、テンポラリテーブル240eを更新する。更新したテンポラリテーブル240eは、図11の3段目に示すものとなる。
図11の3段目に示すテンポラリテーブル240eでは、グループ(A、B、C)と利用者Dとの距離が「2.5」となり、グループ(A、B、C)と利用者Eとの距離が「2.6」となる。利用者Dと利用者Eとの距離が「2.0」となる。図11の3段目に示すテンポラリテーブル240eには、閾値dmin未満となる距離が存在しないため、優先度判定部250bは、グループ化を終了する。優先度判定部250bは、画像Aの位置に最も近いグループを、グループ(A、B、C)とすると、画像Aに対応する利用者の数は「3」となる。
優先度判定部250bは、他のコンテンツも同様にして、利用者の数を判定し、各コンテンツの優先度を判定する。図12は、優先度を判定する処理を説明するための図である。図12において、縦軸は利用者の数を示し、横軸は時間を示す。例えば、時間t3を、コンテンツ「画像H」のコンテンツを取得した時間とする。時間t5を、コンテンツ「画像B」を取得した時間とする。時間t7を、コンテンツ「画像A」を取得した時間とする。時間t14を、コンテンツ「画像C」を取得した時間とする。
優先度判定部250bは、各コンテンツに対応する利用者の数を比較し、最大の利用数Nmaxを判定する。図12に示す例では、コンテンツ「画像C」に対応する利用者が最大となり、Nmaxは、「12」となる。優先度判定部250bは、各コンテンツの利用者の数Nを、Nmaxで割ることで、各コンテンツの優先度を判定する。
優先度判定部250bは、各コンテンツの優先度の大きいものから順に、優先順位を1から順に各コンテンツに付すことで、優先度の判定結果を生成する。図13は、優先度の判定結果の一例を示す図である。図13に示すように、コンテンツ名「画像C」の優先順位が1位となり、次いで、画像E、画像D、画像F、画像B、画像I、画像G、画像A、画像Hの順となる。優先度判定部250bは、判定結果をコンテンツ送受信部250cに出力する。
コンテンツ送受信部250cは、優先度判定部250bの判定結果を基にして、アップロードを行う端末100からコンテンツ情報を受信する。コンテンツ送受信部250cは、受信したコンテンツ情報240fを、記憶部240に記憶させる。また、コンテンツ送受信部250cは、コンテンツ情報240fの要求を受け付けた場合には、該当するコンテンツ情報240fを、要求元の端末100に送信する。コンテンツ情報240fは、コンテンツ情報240fを送信する場合には、アップロード登録情報240aを参照し、コンテンツの公開グループに対応する利用者に、コンテンツ情報を送信するものとする。
コンテンツ送受信部250cが、コンテンツを受信する際の処理について説明する。コンテンツ送受信部250cは、アップロードを行う端末100の機器情報240bを参照し、アップロードを要求するか否かを判定する。以下では、アップロードを行う端末100が電源に接続されている場合と接続されていない場合について順に説明する。
アップロードを行う端末100が電源に接続されている場合について説明する。コンテンツ送受信部250cは、かかる端末100の処理負荷が閾値Tc未満であり、かつ、回線負荷が閾値Tn未満の場合に、コンテンツ要求情報を、端末100に送信する。コンテンツ要求情報には、図13に示したコンテンツ名と優先順位とが対応付けられる。
これに対して、コンテンツ送受信部250cは、アップロードを行う端末100の処理負荷が閾値Tc以上、または、回線負荷が閾値Tn以上の場合には、一定時間待機し、上記処理を繰り返し実行する。
アップロードを行う端末100が電源に接続されていない場合について説明する。コンテンツ送受信部250cは、かかる端末100のバッテリー残量が閾値Tb以上であり、処理負荷が閾値Tc未満であり、かつ、回線負荷が閾値Tn未満の場合に、コンテンツ要求情報を、端末100に送信する。コンテンツ要求情報には、図13に示したコンテンツ名と優先順位とが対応付けられる。また、この場合には、コンテンツ送受信部250cは、優先順位が1〜nまでのコンテンツをコンテンツ要求情報に設定する。
また、コンテンツ送受信部250cは、アップロードを行う端末100のバッテリー残量が閾値Tb以上であるが、処理負荷が閾値Tc以上、または、処理負荷が閾値以上の場合には、一定時間待機し、上記処理を繰り返し実行する。
これに対して、コンテンツ送受信部250cは、アップロードを行う端末100のバッテリー残量が閾値Tb未満の場合には、端末100に対して、アップロードの要求を行わない。
次に、本実施例1に係るコンテンツ管理装置200の処理手順について説明する。図14は、本実施例1に係るコンテンツ管理装置の処理手順を示すフローチャートである。例えば、図14に示す処理は、アップロードを行う端末100からアップロード登録情報240aを受信したことを契機に実行される。
図14に示すように、コンテンツ管理装置200は、端末100からメタ情報240cを取得し(ステップS101)、グループ内の全てのユーザ情報を取得して、ユーザ情報テーブル240dに登録する(ステップS102)。
コンテンツ管理情報200は、優先度判定処理を実行する(ステップS103)。コンテンツ管理装置200は、機器情報を取得する(ステップS104)。コンテンツ管理装置200は、アップロード判定処理を実行する(ステップS105)。
次に、図14のステップS103に示した優先度判定処理について説明する。図15は、優先度判定処理の処理手順を示すフローチャートである。図15に示すように、コンテンツ管理装置200は、未アップロードの全コンテンツの作成時間tiを取得し(ステップS111)、テンポラリグループ推定処理を実行する(ステップS112)。
コンテンツ管理装置200は、全グループの中で、利用者数の最大値をNmaxに設定する(ステップS113)。コンテンツ管理装置200は、iに初期値0を設定する(ステップS114)。
コンテンツ管理装置200は、アップロードされていないコンテンツに対して、利用者関与数Nriを特定する(ステップS115)。ここで、利用者関与数Nriは、コンテンツに対応するグループの利用者の数を示す。
コンテンツ管理装置200は、アップロードされていないコンテンツに対して、優先度を算出する(ステップS116)。コンテンツ管理装置200は、優先度の高いコンテンツの順で優先順位を設定する(ステップS117)。
コンテンツ管理装置200は、iの値に1を加算した値によって、iを更新する(ステップS118)。コンテンツ管理装置200は、iの値がNc未満であるか否かを判定する(ステップS119)。Ncは、コンテンツの数に対応する。
コンテンツ管理装置200は、iの値がNc以下の場合には(ステップS119,Yes)、ステップS115に再度移行する。一方、コンテンツ管理装置200は、iの値がNcより大きい場合には(ステップS119,No)、優先度判定処理を終了する。
次に、図15のステップS112に示したテンポラリグループ推定処理について説明する。図16は、テンポラリテーブル推定処理の処理手順を示すフローチャートである。図16に示すように、コンテンツ管理装置200は、時間tiにおけるグループ内の利用者の位置を取得する(ステップS121)。
コンテンツ管理装置200は、全利用者を初期グループに設定する(ステップS122)。コンテンツ管理装置200は、テンポラリテーブル240eを生成する(ステップS123)。コンテンツ管理装置200は、距離の最小値Dを持つグループの組み合わせを特定する(ステップS124)。
コンテンツ管理装置200は、D<dminまたはNp=1の条件を満たすか否かを判定する(ステップS125)。ここで、Npは、クラスタ数に対応する。コンテンツ管理装置200は、D<dminまたはNp=1の条件を満たさない場合には(ステップS125,No)、ステップS126に移行する。コンテンツ管理装置200は、コンテンツと距離が最も近いグループを対応付け(ステップS126)、テンポラリグループ推定処理を終了する。
一方、コンテンツ管理装置200は、D<dminまたはNp=1の条件を満たす場合には(ステップS125,Yes)、ステップS127に移行する。コンテンツ管理装置200は、最小距離の組み合わせを持つグループの組み合わせを一つのグループn設定し、テンポラリテーブルを更新し(ステップS127)、ステップS124に移行する。
次に、図14のステップS105に示したアップロード判定処理について説明する。図17は、アップロード判定処理の処理手順を示すフローチャートである。図17に示すように、コンテンツ管理装置200は、機器情報240bを参照し、端末100に電源が接続されているか否かを判定する(ステップS131)。
コンテンツ管理装置200は、端末100に電源が接続されている場合には(ステップS131,Yes)、端末100の処理負荷が閾値Tc未満か否かを判定する(ステップS132)。コンテンツ管理装置200は、端末100の処理負荷が閾値Tc以上の場合には(ステップS132,No)、一定時間経過後、機器情報を取得し(ステップS135)、ステップS132に移行する。
一方、コンテンツ管理装置200は、端末100の処理負荷が閾値Tc未満の場合には(ステップS132,Yes)、回線負荷が閾値Tn未満か否かを判定する(ステップS133)。コンテンツ管理装置200は、回線負荷が閾値Tn以上の場合には(ステップS133,No)、ステップS135に移行する。
コンテンツ管理装置200は、回線負荷が閾値Th未満の場合には(ステップS133,Yes)、優先順位にしたがって順次全コンテンツをアップロードする(ステップS134)。
ところで、コンテンツ管理装置200は、ステップS131において、端末100に電源が接続されていない場合には(ステップS131,No)、バッテリー残量が閾値Tb以上か否かを判定する(ステップS136)。
コンテンツ管理装置200は、バッテリー残量が閾値Tb未満の場合には(ステップS136,No)、端末100の処理負荷が閾値Tc未満であるか否かを判定する(ステップS137)。コンテンツ管理装置200は、端末100の処理負荷が閾値Tc以上の場合には(ステップS137,No)、一定時間経過後、機器情報を取得し(ステップS140)、ステップS137に移行する。
一方、コンテンツ管理装置200は、端末100の処理負荷が閾値Tc未満の場合には(ステップS137,Yes)、回線負荷が閾値Th未満か否かを判定する(ステップS138)。コンテンツ管理装置200は、回線負荷が閾値Th以上の場合に(ステップS138,No)、ステップS140に移行する。
コンテンツ管理装置200は、回線負荷が閾値Th未満の場合には(ステップS138,Yes)、優先順位の先頭からn個のコンテンツをアップロードする(ステップS139)。
次に、本実施例1に係るコンテンツ管理装置200の効果について説明する。コンテンツ管理装置200は、端末100がコンテンツを取得した時間における端末周辺の利用者の数を基にして各コンテンツの優先度を判定する。そして、コンテンツ管理装置200は、コンテンツの優先度の情報を端末100に通知し、優先度の高いコンテンツから順にアップロードする。このため、一度に全てのコンテンツをアップロードすることが無くなり、回線を圧迫することを防止することができると共に、端末100の処理負荷を軽減させることができる。
また、コンテンツ管理装置200は、機器情報240bを基にして、端末100からアップロードする時期を調整する。このため、端末100に過度の負荷をあたえることや、バッテリー切れなどの問題を解消することもできる。また、端末100の利用者は、アップロード中であっても、端末100を快適に操作することもできる。
次に、本実施例2にかかるシステムの構成について説明する。図18は、本実施例2に係るシステムの構成を示す図である。図18に示すように、このシステムは、端末100a、100b、100c、100d、100eと、コンテンツ管理装置300を有する。なお、端末100は、基地局との間で無線通信を実行して、ネットワーク30に接続しても良い。
端末100は、コンテンツ管理装置200にアクセスし、コンテンツを取得する。また、端末100は、コンテンツ管理装置200からの要求に応じて、該当するコンテンツをコンテンツ管理装置200にアップロードする。端末100に関する説明は、実施例1の端末100に関する説明と同様である。
コンテンツ管理装置300は、ある端末からコンテンツを取得し、他の端末にコンテンツを送信することで、各端末100間におけるコンテンツの共有を可能にするサーバである。コンテンツ管理装置300は、コンテンツを共有する場合に、端末がコンテンツを取得した時点での周辺の端末数に応じてコンテンツの優先度を算出し、優先度の高いコンテンツから順にアップロードする。また、コンテンツ管理装置300は、優先度を算出する場合に、コンテンツのアクセス元となる端末100の利用者に関与するコンテンツに絞って、優先度を算出する。
次に、図18に示したコンテンツ管理装置300の構成について説明する。図19は、本実施例2に係るコンテンツ管理装置の構成を示す機能ブロック図である。図19に示すように、コンテンツ管理装置300は、通信部210、入力部220、表示部230、記憶部240、制御部350を有する。
このうち、通信部210、入力部220、表示部230、記憶部240に関する説明は、実施例1で説明した通信部210、入力部220、表示部230、記憶部240に関する説明と同様である。
制御部350は、情報取得部250a、優先度判定部350b、コンテンツ送受信部350cを有する。情報取得部250aに関する説明は、実施例1で説明した情報取得部250aと同様である。
優先度判定部350bは、各コンテンツの優先度を判定する処理部である。優先度判定部350bは、コンテンツ送受信部350cから、コンテンツのアクセス要求を行った利用者の情報を取得し、取得した利用者に関与するコンテンツを、アップロード登録情報240aを基にして特定する。優先度判定部350bは、コンテンツの公開グループに、アクセス元の利用者が含まれていれば、該コンテンツを利用者に関与するコンテンツとして判定する。
例えば、アクセス要求を行った利用者が利用者Cである場合には、優先度判定部350bは、図7に示したアップロード登録情報240aを基にして、画像A、B、C、D、Hを、利用者Cに関与するコンテンツと判定する。
優先度判定部350bは、利用者に関与するコンテンツを特定した後に、特定したコンテンツに対して、優先度を判定し、優先順位を付与する。優先度判定部350bが、優先度を判定し、優先順位を付与する処理は、実施例1の優先度判定処理250bと同様である。
コンテンツ送受信部350cは、端末100からコンテンツのアクセス要求を受け付けた場合には、アクセス要求を行った端末の利用者の情報を、優先度判定部350bに出力する。コンテンツ送受信部350cのその他の処理は、実施例1に示したコンテンツ送受信部250cの処理と同様である。
次に、本実施例2に係るコンテンツ管理装置300の処理手順について説明する。図20は、本実施例2に係るコンテンツ管理装置の処理手順を示すフローチャートである。例えば、図20に示す処理は、アップロードを行う端末100からアップロード登録情報240aを受信したことを契機に実行される。
図20に示すように、コンテンツ管理装置300は、端末100からメタ情報240cを取得し(ステップS201)、グループ内の全てのユーザ情報を取得して、ユーザ情報テーブル240dに登録する(ステップS202)。
コンテンツ管理装置300は、コンテンツのアクセス要求を取得し(ステップS203)、コンテンツのアクセス要求元の利用者に関与するコンテンツを抽出する(ステップS204)。
コンテンツ管理装置300は、優先度判定処理を実行する(ステップS205)。コンテンツ管理装置300は、機器情報を取得し(ステップS206)、アップロード判定処理を実行する(ステップS207)。
図20のステップS205に示した優先度判定処理の処理手順は、図15に示した処理手順に対応する。図20のステップS207に示したアップロード判定処理は、図17に示した処理手順に対応する。
次に、本実施例2に係るコンテンツ管理装置300の効果について説明する。コンテンツ管理装置300は、コンテンツのアクセス要求を受け付けた場合に、アクセス要求を行った利用者に関与するコンテンツを特定する。コンテンツ管理装置300は、利用者に関与するコンテンツに対して、優先度を判定し、優先度の高いコンテンツから順にアップロードする。コンテンツのアクセス要求を行った利用者に関与するコンテンツは、続けて同一の利用者からアクセス要求を受ける可能性が高い。このため、端末の処理負荷や回線負荷等を軽減しつつ、アクセス要求を受ける可能性の高いコンテンツを優先してアップロードすることができる。
なお、上記の実施例1、2では、コンテンツの優先度を判定する場合に、利用者の数を利用したが、利用者の数の代わりに、端末の数に基づいて、コンテンツの優先度を判定しても良い。
次に、各実施例に示したコンテンツ管理装置と同様の機能を実現するコンテンツ管理プログラムを実行するコンピュータの一例を説明する。図21は、コンテンツ管理プログラムを実行するコンピュータの一例を示す図である。
図21に示すように、コンピュータ400は、各種演算処理を実行するCPU401と、ユーザからのデータの入力を受け付ける入力装置402と、ディスプレイ403を有する。また、コンピュータ400は、記憶媒体からプログラム等を読取る読み取り装置404と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置405とを有する。また、コンピュータ400は、各種情報を一時記憶するRAM406と、ハードディスク装置407を有する。そして、各装置401〜407は、バス408に接続される。
ハードディスク装置407は、例えば、情報取得プログラム407a、優先度判定プログラム407b、コンテンツ送受信プログラム407cを有する。CPU401は、各プログラム407a〜407cを読み出して、RAM406に展開する。
情報取得プログラム407aは、情報取得プロセス406aとして機能する。優先度判定プログラム407bは、優先度判定プロセス406bとして機能する。コンテンツ送受信プログラム407cは、コンテンツ送受信プロセス406cとして機能する。
例えば、情報取得プロセス406aは、情報取得部250aに対応する。優先度判定プロセス406bは、優先度判定部250bに対応する。コンテンツ送受信プロセス406cは、コンテンツ送受信部250cに対応する。
なお、各プログラム407a〜407cについては、必ずしも最初からハードディスク装置407に記憶させておかなくてもよい。例えば、コンピュータ400に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ400がこれらから各プログラム407a〜407cを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)端末の位置と該端末の位置を測定した時間とを対応付けた利用者情報を複数の端末からそれぞれ取得し、
コンテンツの種別と該コンテンツを取得した時間と該コンテンツを取得した時点の端末の位置とを対応付けたメタ情報を端末から取得する情報取得部と、
複数の利用者情報および前記メタ情報を基にして、所定の距離閾値に含まれる端末を異なる時間毎にグループ化し、同一時間帯で距離が最小となるグループとコンテンツの種別とを対応付け、コンテンツの種別に対応するグループに含まれる端末の数に基づいて、コンテンツの種別毎に優先度を判定する優先度判定部と、
前記優先度判定部の判定結果に基づいて、前記端末からコンテンツを受信し、受信したコンテンツを他の端末に送信するコンテンツ送受信部と
を有することを特徴とするコンテンツ管理装置。
(付記2)前記情報取得部は、複数の端末から、端末の電源状態、端末が接続する回線の負荷、端末の処理負荷を含む機器情報を更に取得し、前記コンテンツ送受信部は、前記機器情報を基にして端末からコンテンツを受信する時期を調整することを特徴とする付記1に記載のコンテンツ管理装置。
(付記3)前記優先度判定部は、端末からコンテンツのアクセス要求を受け付けた場合に、該端末に関与するコンテンツを検出し、検出したコンテンツの優先度を判定することを特徴とする付記1または2に記載のコンテンツ管理装置。
(付記4)コンピュータが実行するコンテンツ管理方法であって、
端末の位置と該端末の位置を測定した時間とを対応付けた利用者情報を複数の端末からそれぞれ取得し、
コンテンツの種別と該コンテンツを取得した時間と該コンテンツを取得した時点の端末の位置とを対応付けたメタ情報を端末から取得し、
複数の利用者情報および前記メタ情報を基にして、所定の距離閾値に含まれる端末を異なる時間毎にグループ化し、同一時間帯で距離が最小となるグループとコンテンツの種別とを対応付け、コンテンツの種別に対応するグループに含まれる端末の数に基づいて、コンテンツの種別毎に優先度を判定し、
優先度の判定結果に基づいて、前記端末からコンテンツを受信し、受信したコンテンツを他の端末に送信する
各処理を実行することを特徴とするコンテンツ管理方法。
(付記5)前記情報を取得する処理は、複数の端末から、端末の電源状態、端末が接続する回線の負荷、端末の処理負荷を含む機器情報を更に取得し、前記コンテンツを送受信する処理は、前記機器情報を基にして端末からコンテンツを受信する時期を調整することを特徴とする付記4に記載のコンテンツ管理方法。
(付記6)前記優先度を判定する処理は、端末からコンテンツのアクセス要求を受け付けた場合に、該端末に関与するコンテンツを検出し、検出したコンテンツの優先度を判定することを特徴とする付記4または5に記載のコンテンツ管理方法。
(付記7)コンピュータに、
端末の位置と該端末の位置を測定した時間とを対応付けた利用者情報を複数の端末からそれぞれ取得し、
コンテンツの種別と該コンテンツを取得した時間と該コンテンツを取得した時点の端末の位置とを対応付けたメタ情報を端末から取得し、
複数の利用者情報および前記メタ情報を基にして、所定の距離閾値に含まれる端末を異なる時間毎にグループ化し、同一時間帯で距離が最小となるグループとコンテンツの種別とを対応付け、コンテンツの種別に対応するグループに含まれる端末の数に基づいて、コンテンツの種別毎に優先度を判定し、
優先度の判定結果に基づいて、前記端末からコンテンツを受信し、受信したコンテンツを他の端末に送信する
各処理を実行させることを特徴とするコンテンツ管理プログラム。
(付記8)前記情報を取得する処理は、複数の端末から、端末の電源状態、端末が接続する回線の負荷、端末の処理負荷を含む機器情報を更に取得し、前記コンテンツを送受信する処理は、前記機器情報を基にして端末からコンテンツを受信する時期を調整することを特徴とする付記7に記載のコンテンツ管理プログラム。
(付記9)前記優先度を判定する処理は、端末からコンテンツのアクセス要求を受け付けた場合に、該端末に関与するコンテンツを検出し、検出したコンテンツの優先度を判定することを特徴とする付記7または8に記載のコンテンツ管理プログラム。