(57)【特許請求の範囲】
【請求項１】
キーバリュー型の第１データベースによって管理される情報を取得して非キーバリュー型の第２データベースにより管理させるデータベース管理装置であって、
複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける投稿情報受付手段と、
前記投稿情報受付手段によって前記投稿情報が受け付けられる毎に、当該受け付けられた投稿情報の要素をそれぞれ複数の検索キーに関連付けて前記第１データベースに記憶させる第１記憶処理手段と、
前記投稿情報受付手段によって前記投稿情報が受け付けられる毎に、当該受け付けられた投稿情報に含まれる特定種類の情報に基づいて当該特定種類の情報別の数を集計した情報を第２データベースに記憶させる第２記憶処理手段と、
前記第２記憶処理手段によって前記第２データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する送信手段と
を備えたことを特徴とするデータベース管理装置。
【請求項２】
前記投稿情報には、投稿文の情報と画像のＩＤ情報とが含まれ、
前記特定種類の情報は、前記画像のＩＤ情報である
ことを特徴とする請求項１に記載のデータベース管理装置。
【請求項３】
前記投稿情報受付手段は、
複数の画像の中から前記外部装置のユーザが選択した画像のＩＤ情報を前記投稿情報に含まれる画像のＩＤ情報として前記外部装置から受け付ける
ことを特徴とする請求項２に記載のデータベース管理装置。
【請求項４】
前記投稿情報の要素は、
複数の前記第２データベースによって分散管理され、
前記複数の第２データベースは、
前記投稿情報の各要素について、同一の情報を分散して複数記憶する
ことを特徴とする請求項１〜３のいずれか１項に記載のデータベース管理装置。
【請求項５】
キーバリュー型の第１データベースによって管理される情報を取得して非キーバリュー型の第２データベースにより管理させる処理をコンピュータに実行させるデータベース管理プログラムであって、
複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付け、
前記投稿情報を受け付ける毎に、当該受け付けた投稿情報の要素をそれぞれ複数の検索キーに関連付けて前記第１データベースに記憶し、
前記投稿情報を受け付ける毎に、当該受け付けた投稿情報に含まれる特定種類の情報に基づいて当該特定種類の情報別の数を集計した情報を第２データベースに記憶し、
前記第２データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する処理を前記コンピュータに実行させることを特徴とするデータベース管理プログラム。
【請求項６】
コンピュータを制御し、キーバリュー型の第１データベースによって管理される情報を取得して非キーバリュー型の第２データベースにより管理させるデータベース管理方法であって、
複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける受付手順と、
前記受付手順によって前記投稿情報が受け付けられる毎に、当該受け付けた投稿情報の要素をそれぞれ複数の検索キーに関連付けて前記第１データベースに記憶させる第１記憶処理手順と、
前記受付手順によって前記投稿情報が受け付けられる毎に、当該受け付けた投稿情報に含まれる特定種類の情報に基づいて当該特定種類の情報別の数を集計した情報を第２データベースに記憶させる第２記憶処理手順と、
前記第２データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する送信手順とを含むことを特徴とするデータベース管理方法。
【請求項７】
キーバリュー型の第１データベースと、非キーバリュー型の第２データベースを有するデータベース管理装置とを備えたデータベース管理システムにおいて、
前記データベース管理装置は、
複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける投稿情報受付手段と、
前記投稿情報受付手段によって前記投稿情報が受け付けられる毎に、当該受け付けられた投稿情報の要素をそれぞれ複数の検索キーに関連付けて前記第１データベースに記憶させる第１記憶処理手段と、
前記投稿情報受付手段によって前記投稿情報が受け付けられる毎に、当該受け付けられた投稿情報に含まれる特定種類の情報に基づいて当該特定種類の情報別の数を集計した情報を第２データベースに記憶させる第２記憶処理手段と、
前記記憶処理手段によって前記第２データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する送信手段と
を備えたことを特徴とするデータベース管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理装置、データベース管理プログラム、データベース管理方法、データベース管理システムに関する。
【背景技術】
【０００２】
近年、ミニブログやマイクロブログと呼ばれるブログサービスが提供されてきている。かかるブログサービスでは、文字数を制限した短い文章をユーザから投稿させ、これら投稿された文章を時系列順に表示させることで、ユーザ間での簡便なコミュニケーションの場を提供する。
【０００３】
この種のサービスでは、ユーザ数の増加に伴って、ユーザから投稿される情報が時間と共に増加して膨大となることから、その情報の管理には、データベースの増設が容易なキーバリュー型のデータベースを用いることが知られている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】大谷晋平著、“Cassandraのはじめ方─手を動かしてNoSQLを体感しよう”、[online]、平成22年4月27日、［平成22年12月11日］、インターネット＜ＵＲＬ：http://gihyo.jp/dev/serial/01/cassandra/0001?skip＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記キーバリュー型のデータベースは、情報（以下、「バリュー」と呼ぶことがある）を複数の検索キーに関連づけて記憶し、検索キーを指定してバリューを取り出す仕様のデータベースである。
【０００６】
例えば、投稿された文章に対して設定された素材（例えば、画像）や投稿された文章に含まれる特定の語句をバリューとしてキーバリュー型のデータベースに管理させた場合、それを指定した検索を行うことができないという課題がある。
【０００７】
したがって、投稿された文章に対して設定された素材の情報や投稿された文章に含まれる特定の語句などをバリューとしてキーバリュー型のデータベースに管理させた場合、その素材を指定した検索を行うことができない。
【０００８】
本発明は、上記のような従来技術の課題を解決するものであり、その目的は、キーバリュー型のデータベースにおいて記憶される情報のうち特定種類の情報や当該特定種類の情報に基づく情報を容易に検索可能とすることにある。
【課題を解決するための手段】
【０００９】
上記の目的を踏まえ、本発明の一態様（１）は、キーバリュー型の第１データベースによって管理される情報を取得して非キーバリュー型の第２データベースにより管理させるデータベース管理装置であって、前記第１データベースは、複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける毎に、前記投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースであり、前記第１データベースによって管理される前記投稿情報の要素のうち、前記特定種類の情報を収集する収集手段と、前記収集手段によって収集した前記特定種類の情報又は当該特定種類の情報に基づく情報を前記第２データベースに記憶させる記憶処理手段と、前記記憶処理手段によって前記第２データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する送信手段とを備える。
【００１０】
上記態様（１）をコンピュータ・プログラムという見方から捉えた本発明の一態様（６）は、キーバリュー型の第１データベースによって管理される情報を取得して非キーバリュー型の第２データベースにより管理させる処理をコンピュータに実行させるデータベース管理プログラムであって、前記第１データベースは、複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける毎に、前記投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースであり、前記第１データベースによって管理され前記投稿情報の要素のうち、前記特定種類の情報を収集し、前記収集した前記特定種類の情報又は当該特定種類の情報に基づく情報を前記第２データベースに記憶し、前記第２データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する処理を前記コンピュータに実行させる。
【００１１】
上記態様（１）を方法という見方から捉えた本発明の一態様コンピュータを制御し、キーバリュー型の第１データベースによって管理される情報を取得して非キーバリュー型の第２データベースにより管理させるデータベース管理方法であって、前記第１データベースは、複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける毎に、前記投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースであり、前記第１データベースによって管理され前記投稿情報の要素のうち、前記特定種類の情報を収集する手順と、前記収集した前記特定種類の情報又は当該特定種類の情報に基づく情報を前記第２データベースに記憶する手順と、前記第２データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する送信手順とを含む。
【００１２】
上記態様（１）をシステムという見方から捉えた本発明の一態様（８）は、キーバリュー型の第１データベースと、非キーバリュー型の第２データベースを有するデータベース管理装置とを備えたデータベース管理システムにおいて、前記第１データベースは、複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける毎に、前記投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースであり、前記データベース管理装置は、前記第１データベースに蓄積される前記投稿情報の要素のうち、前記特定種類の情報を収集する収集手段と、前記収集手段によって収集した前記特定種類の情報又は当該特定種類の情報に基づく情報を前記第２データベースに記憶させる記憶処理手段と、前記記憶処理手段によって前記第２データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する送信手段とを備える。
【００１３】
この発明によれば、キーバリュー型の第１データベースにおいて記憶される投稿情報の要素のうち特定種類の情報や当該特定種類の情報に基づく情報を第２データベースから容易に検索することができる。しかも、外部装置からの要求毎に第１データベースを検索する必要がないため、第１データベースのパフォーマンスの低下を防止することが可能となる。
【００１４】
本発明の他の態様（２）は、上記のいずれかの態様において、前記収集手段は、前記第１データベースから前記特定種類の情報を収集する。
【００１５】
この発明によれば、例えば、必要に応じて都度第１データベースから情報を収集することができるため、特定種類の情報を収集するための特別な構成を設ける必要がない。
【００１６】
本発明の他の態様（３）は、上記のいずれかの態様において、前記収集手段は、外部装置から前記第１データベースへ記憶させる前記特定種類の情報が送信された場合に、当該特定種類の情報を収集する。
【００１７】
この発明によれば、第１データベースからの検索を必要としないため、第１データベースでの処理負荷を軽減することができ、第１データベースのパフォーマンスの低下を防止することが可能となる。
【００１８】
本発明の他の態様（４）は、上記のいずれかの態様において、前記記憶処理手段は、前記特定種類の情報を集計した情報を、前記特定種類の情報に基づく情報として前記第２データベースに記憶させる。
【００１９】
この発明によれば、特定種類の情報を集計した情報（集計情報）を第２データベースに記憶するため、集計情報の検索を迅速に行うことができる。
【００２０】
本発明の他の態様（５）は、上記のいずれかの態様において、前記投稿情報の要素は、複数の前記第２データベースによって分散管理され、前記複数の第２データベースは、前記投稿情報の各要素について、同一の情報を分散して複数記憶しており、前記収集手段は、前記同一の情報のうち最新の情報の中から、前記特定種類の情報を収集する。
【００２１】
この発明によれば、保守性を高めるために同一情報を記憶した場合でも、最新の情報から特定種類の情報を収集することができ、できるだけ新しい情報を検索したいという要請に対応することができる。
【発明の効果】
【００２２】
本発明によれば、キーバリュー型のデータベースにおいて記憶される情報のうち、特定種類の情報や当該特定種類の情報に基づく情報を容易に検索することができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、本発明の一実施形態に係るデータベース管理手法の概要図である。
【図２】図２は、本発明の一実施形態に係るデータベース管理システムの構成図である。
【図３】図３は、端末装置に表示されるウェブページの例を示す図である。
【図４】図４は、投稿情報蓄積サーバのブロック図である。
【図５】図５は、投稿情報データベースのデータ構成の一例を示す図である。
【図６】図６は、投稿情報インデックスサーバのブロック図である。
【図７】図７は、投稿情報インデックスデータベースのデータ構成の一例を示す図である。
【図８】図８は、投稿情報蓄積サーバの処理の一例（その１）を示すフローチャートである。
【図９】図９は、投稿情報インデックスサーバの処理の一例（その１）を示すフローチャートである。
【図１０】図１０は、投稿情報インデックスサーバの処理の一例（その２）を示すフローチャートである。
【図１１】図１１は、他の実施形態に係る投稿情報蓄積サーバのブロック図である。
【発明を実施するための形態】
【００２４】
以下、本発明を実施するための形態（以下、「実施形態」と呼ぶ）について、図面を参照しつつ詳細に説明する。
【００２５】
［１．データベース管理手法の概要］
まず、本発明に係る一実施形態のデータベース管理手法の概要について図１を用いて説明する。図１は、本発明の一実施形態に係るデータベース管理手法の概要説明図である。以下においては、投稿文字数が制限されるマイクロブログやミニブログと呼ばれるサービスを提供するブログサービスシステムを一例に挙げて説明するが、本実施形態に係るデータベース管理手法は様々なシステムや装置に適用することが可能である。
【００２６】
本実施形態のブログサービスシステムは、図１の（Ａ）に示すように、複数の投稿情報蓄積サーバ２０1〜２０nと、投稿情報インデックスサーバ３０とを備えており、複数の端末装置４０1〜４０nから投稿される情報の蓄積や閲覧などを可能としている。なお、以下においては、投稿情報蓄積サーバ２０1〜２０nのいずれか又は全部をいう場合には、投稿情報蓄積サーバ２０とし、また、端末装置４０1〜４０nのいずれか又は全部をいう場合には、端末装置４０とする。
【００２７】
投稿情報蓄積サーバ２０は、受付手段２３ｂと、記憶処理手段２３ｃと、投稿情報データベース２２とを備えている。受付手段２３ｂは、各端末装置４０1〜４０nから投稿される情報を受け付ける。記憶処理手段２３ｃは、受付手段２３ｂによって受け付けた情報を投稿情報として投稿情報データベース２２（第１データベースの一例に相当）へ蓄積する。
【００２８】
投稿情報データベース２２は、キーバリュー型データベースであり、複数の検索キーに関連づけて投稿情報の各要素が蓄積される。キーバリュー型のデータベースは、データベースの増設や情報の分散配置が容易であることからブログサービスシステムなどのように蓄積する情報が増加するシステムに有効なデータベースである。図１の（Ａ）に示す例でも、投稿情報データベース２２を備えた投稿情報蓄積サーバ２０を複数配置している。
【００２９】
ここで、投稿情報データベース２２に蓄積される投稿情報の一例を具体的に説明する。図１の（Ｂ）は、投稿情報データベース２２に蓄積される情報のデータ構造の一例を示す図である。ここでは、投稿情報には、投稿文と素材ＩＤとが要素に含まれる。素材ＩＤは、投稿文に対して設定された画像（以下、素材画像と呼ぶ）を識別するためのＩＤである。
【００３０】
図１の（Ｂ）に示すように、投稿情報は、キースペース「メイン」に属するカラムファミリーのうち、「投稿」というカラムファミリーに割り当てられ、「メイン」および「投稿」がそれぞれ検索キーとなる。また、各投稿情報には、検索キーとして投稿ＩＤが割り当てられ、さらに、投稿情報の各要素にも、それぞれ検索キーが割り当てられている。
【００３１】
具体的には、投稿情報の要素には、投稿文や素材ＩＤなどがあり、それぞれに検索キーが割り当てられる。図１の（Ｂ）に示す例では、検索キー「投稿ＩＤ」が「１００」として割り当てられた投稿情報の要素として、検索キー「投稿文」に「投稿文Ａ」が割り当てられ、検索キー「素材ＩＤ」に「２００」が割り当てられて蓄積されることを示している。
【００３２】
投稿情報データベース２２から投稿情報の要素として、例えば、投稿ＩＤが「１００」の投稿文を検索する場合、下記（１）に示す検索式となり、投稿ＩＤが「１０１」の素材ＩＤを検索する場合、下記（２）に示す検索式となる。
検索式＝［メイン］［投稿］［１００］［投稿文］    ・・・（１）
検索式＝［メイン］［投稿］［１０１］［素材ＩＤ］  ・・・（２）
【００３３】
以上のように、投稿情報データベース２２は、投稿情報の要素を複数の検索キーに関連づけて記憶し、検索キーを指定して投稿情報の要素を取り出す仕様のデータベースである。
【００３４】
例えば、図１の（Ｂ）に示す例では、投稿ＩＤが「１００」の素材ＩＤは、［メイン］、［投稿］、［１００］、［検索ＩＤ］という複数の検索キーに関連付けられて記憶される。そして、これらの検索キーを指定した上記（２）の検索式によって投稿ＩＤが「１００」の検索ＩＤの「２００」を読み出すことができる。
【００３５】
しかし、投稿情報の要素を指定した検索を行うことができない。例えば、「素材ＩＤ」が「２００」であると指定した検索を行うことができない。「２００」が検索キーとなっていないからである。
【００３６】
したがって、例えば、素材画像別（素材ＩＤ別）の投稿件数を検索するためには、投稿件数分の検索を行うことになる。例えば、投稿ＩＤが「１００」〜「１０００００」の投稿情報が蓄積されている場合、投稿ＩＤを１ずつインクリメントしながら、 [メイン][投稿][１００][素材ＩＤ]から[メイン][投稿][１０００００][素材ＩＤ]までを検索式によって検索をすることになる。これにより、投稿情報データベース２２に蓄積された各投稿情報に含まれる素材ＩＤの情報が読み出される。そして、読み出した素材ＩＤの情報に基づいて、素材画像別（素材ＩＤ別）の数を集計する。
【００３７】
このように、投稿情報の要素である素材画像の情報（素材ＩＤ）を指定した検索を投稿情報データベース２２に対して行う場合、投稿情報データベース２２に負荷がかかってパフォーマンスが低下する上に、素材ＩＤ別の数を集計するための演算処理が別途必要となる。
【００３８】
また、キーバリュー型データベースでは、上述のような投稿毎の検索に加え、一括して投稿情報を取得することができる。すなわち、検索キー＝[メイン][投稿]とすればすべての投稿情報を取得することができる。しかし、各投稿情報から素材ＩＤを抽出した後に、素材ＩＤ別の数を集計しなければならず、演算処理の追加などが別途必要となる。
【００３９】
さらに、本実施形態のブログサービスシステムでは、複数の投稿情報蓄積サーバ２０1〜２０nによって、複数の投稿情報を分散して管理している上に、同一の投稿情報（オリジナルとレプリカ）も分散して管理するものであり、投稿情報の要素が更新された場合に同一の情報のすべてを更新するまでに時間がかかってしまう。そのため、検索の際には、同一の情報のうちタイムスタンプが最新のものを選択する必要があり、そのための処理にも負荷や時間がかかってしまうことになる。
【００４０】
このように、キーバリュー型のデータベースは、データベースの増設や情報の分散配置が容易であることから蓄積する情報が増加するブログサービスシステムなどでは有効であるものの、検索キーで検索される情報（バリュー）を指定した検索を容易に行うことはできない。
【００４１】
そこで、本実施形態のブログサービスシステムでは、投稿情報データベース２２において検索キーで検索される投稿情報の要素を指定した検索を極めて容易に行えるように、投稿情報インデックスサーバ３０を設けている。
【００４２】
かかる投稿情報インデックスサーバ３０は、図１の（Ａ）に示すように、収集手段３３ｄと、記憶処理手段３３ｅと、投稿情報インデックスデータベース３２（第２データベースの一例に相当）と、受付手段３３ｃとを有している。
【００４３】
収集手段３３ｄは、投稿情報データベース２２から各投稿情報の素材ＩＤを取得する。投稿情報データベース２２からの検索は、各投稿情報の素材ＩＤをそれぞれ検索キーによって読み出すことによって行われる。なお、カラムファミリー［投稿］全体を読み出してから各投稿情報の素材ＩＤを抽出することもできる。
【００４４】
記憶処理手段３３ｅは、収集手段３３ｄによって収集された情報に基づき、素材ＩＤ別の投稿件数を集計し、例えば、素材ＩＤをインデックスとして、投稿件数を投稿情報インデックスデータベース３２に蓄積する。
【００４５】
ここで、投稿情報インデックスデータベース３２に蓄積される情報の一例を具体的に説明する。図１の（Ｃ）は、投稿情報インデックスデータベース３２に蓄積される情報のデータ構造の一例を示す図である。
【００４６】
図１の（Ｃ）に示すように、投稿情報インデックスデータベース３２には、素材ＩＤをインデックスとして素材ＩＤ別の投稿件数が蓄積される。例えば、素材ＩＤ「２００」には、投稿件数「１４」が関連付けられており、また、素材ＩＤ「２０１」には、投稿件数「２０」が関連付けられている。
【００４７】
受付手段３３ｃは、端末装置４０からインデックスである素材ＩＤを指定した検索要求があった場合、投稿情報インデックスデータベース３２から指定された素材ＩＤの投稿件数を読み出す。そして、このように読み出された投稿件数の情報は閲覧情報として検索要求を行った端末装置４０へ送信される。
【００４８】
このように、本実施形態に係るブログサービスシステムでは、投稿情報蓄積サーバ２０に加えて、投稿情報インデックスサーバ３０を設けており、投稿情報インデックスデータベース３２では、素材ＩＤをインデックスとして素材ＩＤ別の投稿件数が蓄積されている。そのため、端末装置４０からの要求に応じて素材ＩＤをインデックスとして投稿件数を容易に読み出すことができる。
【００４９】
なお、上述では、素材画像を投稿文に対して設定可能としており、素材画像を投稿文と共に閲覧可能とすることで、閲覧者のであるユーザに投稿文の内容を迅速に把握させることができる。しかも、素材画像を指定した検索を行うことができるため、より魅力的なブログサービスを提供することができる。
【００５０】
なお、上述では、投稿情報インデックスサーバ３０が収集する投稿情報の要素として、素材ＩＤを一例に挙げて説明したが、これに限られず、投稿情報データベース２２において複数のキーに関連づけられる投稿情報の要素であればどのようなものであってもよい。例えば、投稿された文章に含まれる特定の語句をバリューとして、投稿情報データベース２２で管理させる場合、特定の語句を投稿情報インデックスサーバ３０が収集する投稿情報の要素とすることができる。
【００５１】
［２．データベース管理手法の具体例］
次に、図２〜図１０を参照して、本実施形態のデータベース管理手法を適用したブログサービスシステムの具体的な一例を説明する。なお、上述のように、本実施形態に係るデータベース管理手法は様々なシステムや装置に適用することが可能である。
【００５２】
まず、本実施形態に係るデータベース管理手法を適用したブログサービスシステムの全体構成について説明する。図２は、本実施形態に係るブログサービスシステムの構成を示す図である。
【００５３】
図２に示すように、ブログサービスシステムＳは、アプリケーションサーバ１０と、投稿情報蓄積サーバ２０（２０1〜２０n）と、投稿情報インデックスサーバ３０とを備えており、これらのサーバはＬＡＮ（Local Area Network）などのネットワークにより接続されている。このブログサービスシステムＳは、ルータ６０を介してインターネットなどのネットワーク５０に接続されている。
【００５４】
このブログサービスシステムＳは、各端末装置４０（４０1〜４０n）のユーザが投稿と閲覧とを行うことを可能としたシステムである。各端末装置４０は、ネットワーク５０を介してブログサービスシステムＳと情報の送受信が可能であり、ブログサービスシステムＳでは、各端末装置４０のユーザからの投稿や閲覧などの要求を受け付ける。
【００５５】
例えば、各端末装置４０のユーザからの投稿要求は、アプリケーションサーバ１０によって受け付けられ、その投稿要求に応じた情報はアプリケーションサーバ１０から投稿情報蓄積サーバ２０へ通知され、投稿情報蓄積サーバ２０の投稿情報データベース２２に投稿情報として蓄積される。
【００５６】
また、各端末装置４０のユーザからの閲覧要求は、アプリケーションサーバ１０によって受け付けられ、その種類に応じて投稿情報蓄積サーバ２０や投稿情報インデックスサーバ３０へ通知される。投稿情報蓄積サーバ２０や投稿情報インデックスサーバ３０は、閲覧要求に対応する情報を内部のデータベースから読み出し、アプリケーションサーバ１０経由で閲覧要求元の端末装置４０へ通知する。
【００５７】
各端末装置４０は、通信手段４１と、ブラウザ４２と、操作手段４３と、表示手段４４とを有しており、操作手段４３への操作によってブラウザ４２を制御して、通信手段４１を介してアプリケーションサーバ１０との間で各種のデータの送受信を行う。これによって、各端末装置４０のユーザは、投稿や閲覧を行うことができる。
【００５８】
ここで、各端末装置４０において投稿や閲覧の要求を行うためのウェブページの例を説明する。図３は、アプリケーションサーバ１０から送信され、端末装置４０において表示されるウェブページの例を示す図である。
【００５９】
本実施形態に係るブログサービスシステムＳでは、例えば、操作手段４３への操作によってブラウザ４２からアプリケーションサーバ１０へのアクセスがあった場合、アプリケーションサーバ１０はブログサービスのＴＯＰページの情報を端末装置４０へ送信する。なお、アプリケーションサーバ１０へのアクセスには端末装置４０のユーザに対応するユーザＩＤの情報も含まれており、ユーザＩＤに対応するＴＯＰページがアプリケーションサーバ１０から送信される。
【００６０】
ブラウザ４２は、アプリケーションサーバ１０から受信したＴＯＰページの情報に基づいて、ブログサービスのＴＯＰページ１１を表示手段４４に表示させる。図３の（Ａ）は、表示手段４４に表示されるＴＯＰページ１１の一例を示している。このＴＯＰページ１１では、「一言投稿」、「一言閲覧」、「使用素材一覧画像」を選択可能としている。
【００６１】
操作手段４３への操作によってＴＯＰページ１１の「一言投稿」が選択された場合、ブラウザ４２からその選択情報がアプリケーションサーバ１０へ送信される。この選択情報の送信に対し、アプリケーションサーバ１０から投稿用ページの情報が端末装置４０へ送信され、図３の（Ｂ）に示すように、投稿を行うための投稿用ページ１２がブラウザ４２によって表示手段４４に表示される。端末装置４０のユーザは、操作手段４３への操作によって投稿文入力ボックス１２ａ内に投稿文を入力し、「投稿」ボタン１２ｂを押下する。これにより、投稿文の情報がアプリケーションサーバ１０へ送信される。
【００６２】
投稿文の送信に対して、アプリケーションサーバ１０からは、図３の（Ｃ）に示すような素材画像設定用ページ１３の情報が送信され、ブラウザ４２によって素材画像設定用ページ１３が表示手段４４に表示される。この素材画像設定用ページ１３には、素材画像１７ａ〜１７ｃが表示され、さらに素材画像１７ａ〜１７ｃのいずれかを選択するためのチェックボックス１３ａが設けられている。
【００６３】
端末装置４０のユーザは、上述のように投稿した投稿文に関連すると考える素材画像を素材画像１７ａ〜１７ｃの中から選択する。素材画像の選択は、操作手段４３への操作によって、素材画像に対応するチェックボックス１３ａにチェックを入れ、設定ボタン１３ｂを押下することによって行う。
【００６４】
これにより、ユーザが選択した素材画像の素材ＩＤがアプリケーションサーバ１０へ送信される。そして、アプリケーションサーバ１０へ送信された投稿文および素材ＩＤなどは投稿情報の要素として投稿情報蓄積サーバ２０へ送信され、投稿情報蓄積サーバ２０に蓄積される。この投稿情報を端末装置４０において閲覧する場合、その閲覧画像は、例えば、図３の（Ｄ）に示すように、素材画像１７ａと投稿文１６とが隣接して配置される画像となる。
【００６５】
このように、投稿文の内容に関連する素材画像を設定することで、投稿を楽しんで行え、また、図３の（Ｄ）に示すように投稿内容の把握がしやすくなる。そのため、本実施形態に係るブログサービスシステムＳでは、ユーザが利用しやすく、魅力的なブログサービスを提供することができる。
【００６６】
しかも、本実施形態に係るブログサービスシステムＳでは、たとえば、ＴＯＰページ１１の「使用素材画像一覧」を選択することにより、素材画像を指定した検索を行うことができるようにしている。
【００６７】
操作手段４３への操作によってＴＯＰページ１１の「使用素材画像一覧」が選択された場合、ブラウザ４２からその選択情報がアプリケーションサーバ１０へ送信される。この選択情報の送信に対し、アプリケーションサーバ１０から使用素材画像一覧ページの情報が端末装置４０へ送信される。
【００６８】
端末装置４０のブラウザ４２は、アプリケーションサーバ１０から受信した情報に基づいて、図３の（Ｅ）に示すように、ユーザが投稿に使用した素材画像の一覧を示す使用素材画像一覧ページ１５がブラウザ４２によって表示手段４４に表示される。なお、使用素材画像一覧ページ１５には、ユーザが投稿に使用した素材画像と件数とが一覧表示される。図３の（Ｅ）に示す例では、素材画像１７ａの投稿件数が１０件、素材画像１７ｃの投稿件数が８件であることを示している。
【００６９】
この使用素材画像一覧ページ１５は、アプリケーションサーバ１０が投稿情報インデックスサーバ３０に要求して取得した情報に基づいて生成されるものである。具体的には、アプリケーションサーバ１０は、端末装置４０から送信される使用素材画像一覧要求に対応する情報を投稿情報インデックスサーバ３０へ要求する。
【００７０】
さらに、使用素材画像一覧ページ１５では、表示されている素材画像を選択可能となっている。例えば、図３の（Ｅ）に示す使用素材画像一覧ページ１５において、例えば、素材画像１７ａや素材情報１５ａ（「ひま〜」）を操作手段４３への操作によって選択した場合、ブラウザ４２からその選択情報がアプリケーションサーバ１０へ送信される。この選択情報の送信に対し、アプリケーションサーバ１０から素材画像詳細ページの情報が端末装置４０へ送信される。
【００７１】
端末装置４０のブラウザ４２は、アプリケーションサーバ１０から受信した情報に基づいて、図３の（Ｆ）に示すように、ユーザが選択した素材画像の詳細を示す素材画像詳細ページ１６がブラウザ４２によって表示手段４４に表示される。素材画像詳細ページ１６には、選択された素材画像の投稿件数や投稿者の情報などが表示される。図３の（Ｆ）に示す例では、素材画像１７ａの総投稿件数が８２１７６件、投稿件数が多いユーザのうち１位から３位までのユーザが、○○さん（ユーザＩＤ「５４３２６１」）、△△さん（ユーザＩＤ「５２９０７６」）、□□さん（ユーザＩＤ「１７５４３３」）であることを示している。また、素材画像１７ａがすべての素材画像のうち「２３４」番目に投稿件数が多いことを示している。
【００７２】
以上のように、本実施形態に係るブログサービスシステムＳでは、端末装置４０のユーザから投稿文や対応する素材画像を投稿情報として投稿可能とし、また、ユーザが投稿に使用した素材画像の一覧や素材画像の詳細などを端末装置４０のユーザから閲覧可能としている。このように構成されるブログサービスシステムＳについて、以下、投稿情報蓄積サーバ２０および投稿情報インデックスサーバ３０の構成について詳細に説明する。
【００７３】
［２．１．投稿情報蓄積サーバ２０の構成］
図４に投稿情報蓄積サーバ２０の構成を示す。図４に示すように、投稿情報蓄積サーバ２０は、通信インタフェース（Ｉ／Ｆ）２１と、投稿情報データベース２２と、制御部２３とを備えている。
【００７４】
通信Ｉ／Ｆ２１は、投稿情報蓄積サーバ２０をＬＡＮ経由でアプリケーションサーバ１０や投稿情報インデックスサーバ３０と接続できるようにするためのインタフェースであり、例えば、イーサネット（登録商標）・アダプタを含む。
【００７５】
投稿情報データベース２２は、端末装置４０1〜４０nのユーザからの投稿に関する情報を蓄積するデータベースである。この投稿情報データベース２２は、キーバリュー型のデータベースであり、複数の検索キーに関連づけて投稿情報の各要素が蓄積される。上述したように、キーバリュー型のデータベースは、データベースの増設や情報の分散配置が容易であることからブログサービスシステムＳなどのように蓄積する情報が増加するシステムに適したデータベースである。
【００７６】
ここで、投稿情報データベース２２に蓄積される投稿情報の一例を具体的に説明する。図５は、投稿情報データベース２２のデータ構成の一例を示す図である。
【００７７】
図５に示すように、投稿情報は、キースペース「メイン」に属するカラムファミリーのうち、「投稿」というカラムファミリーに割り当てられる。各投稿情報には、投稿ＩＤである投稿ＩＤが割り当てられ、さらに、投稿情報の各要素にも、それぞれ検索キーが割り当てられている。
【００７８】
具体的には、投稿情報の要素には、投稿文、投稿種別、ユーザＩＤ、投稿日時、素材ＩＤなどがあり、それぞれ検索キーに割り当てられる。図５に示す例では、投稿ＩＤが「１１１」である投稿に関する情報として、例えば、投稿文として「ねむすぎ＃ひま」、投稿種別として「０」、ユーザＩＤとして「５５５」、投稿日時として「２０１０年１２月２８日２０時１４分２７秒」、素材ＩＤとして「５４３２２８」がそれぞれ蓄積されていることを示している。
【００７９】
この投稿情報データベース２２から投稿情報の要素として、例えば、投稿ＩＤが「１１１」の素材ＩＤを検索する場合、検索式は次のようになる。
検索式＝［メイン］［投稿］［１１１］［素材ＩＤ］
【００８０】
図４の説明に戻って投稿情報蓄積サーバ２０の構成の説明を続ける。制御部２３は、投稿情報蓄積サーバ２０の全体制御を行う制御部である。制御部２３は、受信手段２３ａと、受付手段２３ｂと、記憶処理手段２３ｃと、取得手段２３ｄと、送信手段２３ｅとをさらに備えている。
【００８１】
なお、図４には、制御部２３の機能的な構成を示しているが、この制御部２３は、物理的にはＣＰＵ（Central  Processing  Unit）とフラッシュメモリ（flash memory）とＲＡＭ（Random Access Memory）とを有する情報処理装置を備えている。そして、ＣＰＵがフラッシュメモリからプログラムを読出し、ＲＡＭを作業領域として使用して実行することにより、上述した各手段２３ａ〜２３ｅ等として機能する。
【００８２】
受信手段２３ａは、通信Ｉ／Ｆ２１を介してアプリケーションサーバ１０から送信される投稿情報や投稿情報インデックスサーバ３０から送信される検索要求信号を受信する。
【００８３】
受付手段２３ｂは、受信手段２３ａによって受信した情報を受け付ける。例えば、受信手段２３ａによってアプリケーションサーバ１０からの投稿情報が受信された場合、受付手段２３ｂは、この投稿情報が蓄積すべき範囲のものであるか否かを判定し、蓄積すべき範囲であると判定した場合に、投稿情報を記憶処理手段２３ｃへ出力する。この場合、投稿情報がオリジナルの情報であれば、投稿情報のレプリカ（複製）を、他の投稿情報蓄積サーバ２０へ送信手段２３ｅから送信させる。また、投稿情報が蓄積すべき範囲ではないと判定した場合も同様に、受付手段２３ｂは、投稿情報を蓄積すべき他の投稿情報蓄積サーバ２０へ送信手段２３ｅから送信させる。
【００８４】
また、受付手段２３ｂは、投稿情報インデックスサーバ３０から検索要求信号が受信手段２３ａによって受信された場合、検索要求信号に含まれる検索内容の情報を取得手段２３ｄへ出力する。
【００８５】
記憶処理手段２３ｃは、受付手段２３ｂによって受け付けた投稿情報に投稿ＩＤを関連づけて投稿情報データベース２２に蓄積する。
【００８６】
取得手段２３ｄは、受付手段２３ｂから出力された検索内容の情報に基づき、投稿情報データベース２２を参照して検索内容に応じた情報（以下、検索結果情報と記載する）を取得する。投稿情報データベース２２は、上述したように、キーバリュー型のデータベースであり、取得手段２３ｄは、検索キーによって投稿情報データベース２２から情報を取得する。
【００８７】
例えば、投稿情報インデックスサーバ３０から、全ての投稿情報に関する素材ＩＤの情報を検索する要求が検索内容として検索要求信号に含まれているとする。この場合、取得手段２３ｄは、[メイン][投稿][１００][素材ＩＤ]から[メイン][投稿][１０００００][素材ＩＤ]までを検索キーによって検索をして、投稿情報データベース２２から素材ＩＤの情報を取得する。なお、投稿情報データベース２２には、投稿ＩＤが「１００」から「１０００００」までの投稿情報が記憶されているとする。
【００８８】
また、例えば、投稿情報インデックスサーバ３０から、範囲を指定した投稿情報に関する素材ＩＤの情報を検索する要求が検索内容として検索要求信号に含まれているとする。この場合、取得手段２３ｄは、指定された範囲に含まれる投稿情報の素材ＩＤを検索キーによって検索をして、投稿情報データベース２２から素材ＩＤの情報を取得する。例えば、投稿ＩＤが「１０００１」から「３００００」までの範囲が指定された場合、取得手段２３ｄは、[メイン][投稿][１０００１][素材ＩＤ]から[メイン][投稿][３００００][素材ＩＤ]までを検索キーによって検索をする。
【００８９】
送信手段２３ｅは、例えば、取得手段２３ｄによって取得された検索結果情報を投稿情報インデックスサーバ３０へ送信する。
【００９０】
［２．２．投稿情報インデックスサーバ３０の構成］
図６に投稿情報インデックスサーバ３０の構成を示す。図６に示すように、投稿情報インデックスサーバ３０は、通信インタフェース（Ｉ／Ｆ）３１と、投稿情報インデックスデータベース３２と、制御部３３とを備えている。
【００９１】
通信Ｉ／Ｆ３１は、投稿情報インデックスサーバ３０をＬＡＮ経由でアプリケーションサーバ１０や投稿情報蓄積サーバ２０と接続できるようにするためのインタフェースであり、例えば、イーサネット（登録商標）・アダプタを含む。
【００９２】
投稿情報インデックスデータベース３２は、投稿情報蓄積サーバ２０から制御部３３によって取得された投稿情報の素材ＩＤに関する情報を記憶する記憶手段である。この投稿情報インデックスデータベース３２は、例えば、リレーショナル型のデータベースであり、キャッシュデータの蓄積、読み出し、更新は、例えば、ＳＱＬ（Structured Query Language）に従ったコマンドが用いられる。
【００９３】
ここで、投稿情報インデックスデータベース３２に管理される情報について図面を参照して具体的に説明する。図７は、投稿情報インデックスデータベース３２のデータ構成の一例を示す図である。
【００９４】
投稿情報インデックスデータベース３２では、素材ＩＤの集計情報として、ユーザＩＤ単位で素材ＩＤの集計情報、総投稿情報に対する素材ＩＤの集計情報、複数又はすべてのユーザＩＤ単位での素材ＩＤの集計情報などを蓄積している。
【００９５】
具体的には、投稿情報インデックスデータベース３２では、図７の（Ａ）に示すように、ユーザＩＤ毎に、素材ＩＤと投稿件数とを関連づけて記憶している。例えば、図７の（Ａ）に示す例では、ユーザＩＤが「５５５」であるユーザに対して、「５４３２２８」である素材ＩＤの投稿件数が「１０」であり、「２８７６３０」である素材ＩＤの投稿件数が「２４」であることを示している。
【００９６】
また、投稿情報インデックスデータベース３２では、図７の（Ｂ）に示すように、総投稿情報に対する素材ＩＤの集計情報を蓄積している。図７の（Ｂ）に示す例では、素材ＩＤ「５４３２２８」について、投稿件数が「８２１７６」、投稿件数が多いユーザのうち１番（投稿者（第１位））から３番（投稿者（第３位））までのユーザＩＤが「５４３２６１」，「５２９０７６」，「１７５４３３」であることを示している。また、素材ＩＤ「５４３２２８」の素材画像がすべての素材ＩＤのうち「２３４」番目に投稿件数が多いことを示している。
【００９７】
図６に戻って投稿情報インデックスサーバ３０の構成についての説明を続ける。制御部３３は、投稿情報インデックスサーバ３０の全体制御を行う制御部である。制御部３３は、送信手段３３ａと、受信手段３３ｂと、受付手段３３ｃと、収集手段３３ｄと、記憶処理手段３３ｅとをさらに備えている。
【００９８】
なお、図６には、制御部３３の機能的な構成を示しているが、この制御部３３は、物理的にはＣＰＵ（Central  Processing  Unit）とフラッシュメモリ（flash memory）とＲＡＭ（Random Access Memory）とを有する情報処理装置を備えている。そして、ＣＰＵがフラッシュメモリからデータベース管理プログラムを読出し、ＲＡＭを作業領域として使用して実行することにより、上述した各手段３３ａ〜３３ｅ等として機能する。
【００９９】
送信手段３３ａは、例えば、投稿情報インデックスデータベース３２に蓄積されている情報である素材ＩＤの集計情報を通信Ｉ／Ｆ３１を介してアプリケーションサーバ１０へ送信し、また、検索を要求する検索要求信号を通信Ｉ／Ｆ３１を介して投稿情報蓄積サーバ２０へ送信する。
【０１００】
受信手段３３ｂは、例えば、通信Ｉ／Ｆ３１を介してアプリケーションサーバ１０から送信される情報要求信号や投稿情報蓄積サーバ２０から送信される検索結果情報を受信する。情報要求信号は、アプリケーションサーバ１０から投稿情報インデックスサーバ３０に対して情報の送信要求を行うための信号であり、検索内容の情報が含まれる。
【０１０１】
受付手段３３ｃは、受信手段３３ｂによって受信した情報要求信号を受け付け、この情報要求信号に対応する情報を投稿情報インデックスデータベース３２から読み出して、アプリケーションサーバ１０へ送信手段３３ａから送信させる。
【０１０２】
例えば、図７の（Ａ）に示すように情報が投稿情報インデックスデータベース３２に蓄積されている場合に、情報要求信号に含まれる検索内容の情報が「５５５」であるユーザＩＤのユーザによって使用されている素材画像の情報であるとする。この場合、受付手段３３ｃは、ユーザＩＤ「５５５」をインデックスとして指定して投稿情報インデックスデータベース３２からユーザＩＤ「５５５」に対応づけられた素材ＩＤおよび投稿件数を全て読み出し、検索結果として送信手段１３ａからアプリケーションサーバ１０へ送信させる。
【０１０３】
収集手段３３ｄは、検索内容の情報を含む検索要求信号を送信手段１３ａから投稿情報蓄積サーバ２０へ送信させる。投稿情報蓄積サーバ２０は、検索要求信号に含まれる検索内容の情報に基づき、投稿情報データベース２２を参照して検索内容に応じた情報を取得し、投稿情報インデックスサーバ３０へ送信する。
【０１０４】
収集手段３３ｄは、情報要求信号に含まれる検索内容の情報を投稿情報蓄積サーバ２０から収集すると、集計処理を行って記憶処理手段３３ｅへ出力し、集計処理の結果を投稿情報インデックスデータベース３２に蓄積させる。
【０１０５】
例えば、検索要求信号に含まれる検索内容の情報が全ての投稿情報に関する素材ＩＤの情報を検索する要求の情報である場合、投稿情報蓄積サーバ２０の取得手段２３ｄは、全ての投稿ＩＤの素材ＩＤを取得して投稿情報インデックスサーバ３０へ送信する。
【０１０６】
収集手段３３ｄは、全ての投稿情報（例えば、投稿ＩＤが「１００」から「１０００００」までの投稿情報があるとする）に関する素材ＩＤの情報を投稿情報蓄積サーバ２０から収集すると、ユーザＩＤ単位で素材ＩＤ別の数を集計する。例えば、ユーザＩＤ「２８３」を要素とする投稿情報に含まれる素材ＩＤとして「８３７４５７」，「２５７６３８」，「８３７４５７」，「８３７４５７」，「２５７６３８」が投稿情報蓄積サーバ２０から送信されたとする。この場合、収集手段３３ｄは、素材ＩＤ「８３７４５７」の投稿件数を「３」とし、素材ＩＤ「２５７６３８」の投稿件数を「２」とする。これが収集手段３３ｄの集計結果となる。
【０１０７】
また、収集手段３３ｄは、全ての投稿情報に関する素材ＩＤの情報を集めた場合、次は、投稿情報蓄積サーバ２０に新たに蓄積された投稿情報に関してのみ素材ＩＤの収集を行うことができる。これにより、毎回全ての投稿情報に関する素材ＩＤの情報を収集して集計する場合に比べ、投稿情報蓄積サーバ２０および投稿情報インデックスサーバ３０の処理負荷や通信負荷などを低減することができる。
【０１０８】
収集手段３３ｄは、例えば、投稿ＩＤが「１０００００」までの素材ＩＤを収集して集計している場合、投稿ＩＤが「１０００００」よりも大きい投稿ＩＤの投稿情報に関する素材ＩＤの情報を投稿情報蓄積サーバ２０へ要求する。そして、収集手段３３ｄは、この要求に対して投稿情報蓄積サーバ２０から送信される情報に基づいて、投稿情報インデックスデータベース３２に蓄積された集計情報を更新する。
【０１０９】
例えば、ユーザＩＤ「２８３」に関する集計結果として、上述のように、素材ＩＤ「８３７４５７」の投稿件数が「３」であり、素材ＩＤ「２５７６３８」の投稿件数が「２」であるとする。そして、投稿ＩＤが「１０００００」よりも大きい投稿ＩＤの投稿情報のうちユーザＩＤ「２８３」に関する投稿情報の素材ＩＤの情報として、「８３７４５７」，「８３７４５７」，「２５７６３８」が投稿情報蓄積サーバ２０から送信されたとする。この場合、収集手段３３ｄは、ユーザＩＤ「２８３」に関する集計結果を、素材ＩＤ「８３７４５７」の投稿件数が「５」であり、素材ＩＤ「２５７６３８」の投稿件数を「３」へ更新する。
【０１１０】
記憶処理手段３３ｅは、収集手段３３ｄの集計結果を投稿情報インデックスデータベース３２に蓄積する。これにより、例えば、図７の（Ａ）や（Ｂ）に示すような素材ＩＤの集計情報が投稿情報インデックスデータベース３２に蓄積される。
【０１１１】
以上のように構成された投稿情報蓄積サーバ２０の具体的動作について図８を用いて説明する。図８は、投稿情報蓄積サーバ２０の制御部２３が実行する処理手順を示すフローチャートである。
【０１１２】
この処理は、繰り返し行われる処理であり、制御部２３を構成するＣＰＵがフラッシュメモリに記憶されたプログラムに基づき処理を行なって実行されるが、図４に示した機能ブロックとの関係を分かりやすくする為、便宜的に各機能ブロックが実行するという表現を用いて説明する。
【０１１３】
図８に示すように、投稿情報蓄積サーバ２０において、受付手段２３ｂは、アプリケーションサーバ１０から投稿情報を受け付けたか否かを判定する（ステップＳ１０）。この処理において、投稿情報を受け付けたと判定すると（ステップＳ１０，Ｙｅｓ）、受付手段２３ｂは、受け付けた投稿情報が蓄積すべき範囲のものであるか否かを判定する（ステップＳ１１）。
【０１１４】
受付手段２３ｂによって受け付けた投稿情報が蓄積すべき範囲のものである場合（ステップＳ１１，Ｙｅｓ）、記憶処理手段２３ｃは、受け付けた投稿情報に投稿ＩＤを関連づけて投稿情報データベース２２に蓄積する（ステップＳ１２）。また、送信手段２３ｅは、投稿情報のレプリカ（複製）を他の投稿情報蓄積サーバ２０へ送信して蓄積させる（ステップＳ１３）。
【０１１５】
ステップＳ１１において、受付手段２３ｂによって受け付けた投稿情報が蓄積すべき範囲のものでない場合（ステップＳ１１，Ｎｏ）、送信手段２３ｅは、受付手段２３ｂによって受け付けた投稿情報を他の投稿情報蓄積サーバ２０へ転送する（ステップＳ１４）。
【０１１６】
また、ステップＳ１０において、投稿情報を受け付けていないと判定すると（ステップＳ１０，Ｎｏ）、受付手段２３ｂは、投稿情報インデックスサーバ３０から検索要求信号を受け付けたか否かを判定する（ステップＳ１５）。この処理において、検索要求信号を受け付けたと判定されると（ステップＳ１５，Ｙｅｓ）、取得手段２３ｄは、検索要求信号に含まれる検索内容に応じた情報（検索結果情報）を投稿情報データベース２２から取得し、送信手段２３ｅは、検索結果情報を投稿情報インデックスサーバ３０へ送信する（ステップＳ１６）。
【０１１７】
さらに、送信手段２３ｅは、ステップＳ１６で検索する投稿情報のレプリカを有する他の投稿情報蓄積サーバ２０に対して投稿情報インデックスサーバ３０へレプリカを送信するように要求し、他の投稿情報蓄積サーバ２０から投稿情報インデックスサーバ３０へ複製を送信させる（ステップＳ１７）。
【０１１８】
一方、ステップＳ１５において、投稿情報インデックスサーバ３０から検索要求信号を受け付けていないと判定すると（ステップＳ１５，Ｎｏ）、制御部２３はその他の要求に応じた処理を行う（ステップＳ１８）。ステップＳ１３、Ｓ１４、Ｓ１７，Ｓ１８の処理が終了したとき、図８に示す処理を終了する。
【０１１９】
次に、投稿情報インデックスサーバ３０の具体的動作について図９を用いて説明する。図９は、投稿情報インデックスサーバ３０の制御部３３が実行する処理手順を示すフローチャートである。
【０１２０】
この処理は、繰り返し行われる処理であり、制御部３３を構成するＣＰＵがフラッシュメモリに記憶されたデータベース管理プログラムに基づき処理を行なって実行されるが、図６に示した機能ブロックとの関係を分かりやすくする為、便宜的に各機能ブロックが実行するという表現を用いて説明する。
【０１２１】
図９に示すように、投稿情報インデックスサーバ３０において、収集手段３３ｄは、情報収集契機になったか否かを判定する（ステップＳ２０）。例えば、収集手段３３ｄは、所定期間（例えば、５秒毎）に情報収集契機となったと判定する。
【０１２２】
この処理において、情報収集契機になったと判定すると（ステップＳ２０，Ｙｅｓ）、収集手段３３ｄは、情報収集契機となったと判定した集計情報を生成又は更新するための素材ＩＤの情報を投稿情報蓄積サーバ２０へ要求する（ステップＳ２１）。収集手段３３ｄは、投稿情報蓄積サーバ２０から素材ＩＤの情報を収集すると、素材ＩＤの情報を集計して集計情報を生成又は更新する（ステップＳ２２）。そして、記憶処理手段３３ｅは、収集手段によって生成又は更新された集計情報を投稿情報インデックスデータベース３２に蓄積する（ステップＳ２３）。
【０１２３】
なお、上述のように投稿情報蓄積サーバ２０には、レプリカ（複製）を生成して分散して蓄積され、複製も投稿情報インデックスサーバ３０へ送信される。収集手段３３ｄは、レプリカを含めた同一の情報のうち最新の情報を選択して集計処理に用いる。投稿情報インデックスサーバ３０で管理される情報にはタイムスタンプ（時間情報）が付加されており、収集手段３３ｄは、タイムスタンプを参照して最新の情報かどうかの判断を行う。
【０１２４】
ステップＳ２０において、情報収集契機となっていないと判定すると（ステップＳ２０、Ｎｏ）、受付手段３３ｃは、アプリケーションサーバ１０から情報要求信号を受け付けたか否かを判定する（ステップＳ２４）。この処理において、情報要求信号を受け付けたと判定すると（ステップＳ２４，Ｙｅｓ）、受付手段３３ｃは、投稿情報インデックスデータベース３２から情報要求信号に対応する集計情報を読み出し、送信手段３３ａによってアプリケーションサーバ１０へ送信する（ステップＳ２５）。
【０１２５】
一方、ステップＳ２４において、情報要求信号を受け付けていないと判定すると（ステップＳ２４、Ｎｏ）、制御部２３はその他の要求に応じた処理を行う（ステップＳ２６）。ステップＳ２３、Ｓ２５、Ｓ２６の処理が終了したとき、図９に示す処理を終了する。
【０１２６】
このように本実施形態に係る投稿情報インデックスサーバ３０の制御部３３は、データベース管理装置として、投稿情報データベース２２（第１データベースの一例に相当）によって管理される情報を取得して投稿情報インデックスデータベース３２（第２データベースの一例に相当）により管理させる。
【０１２７】
投稿情報データベース２２は、投稿文と当該投稿文に対して設定された画像の情報とを要素に含む投稿情報を受け付ける毎に、投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースである。
【０１２８】
そして、投稿情報インデックスサーバ３０の制御部３３は、投稿情報データベース２２によって管理される投稿情報の要素のうち、素材ＩＤの情報を収集し、収集した素材ＩＤの情報を集計した集計情報を投稿情報インデックスデータベース３２に記憶する。そして、制御部３３は、投稿情報インデックスデータベース３２に記憶された集計情報を外部装置からの要求に応じて外部装置へ送信する。
【０１２９】
したがって、キーバリュー型の投稿情報データベース２２において記憶される投稿情報のうち投稿文に設定される素材画像別の投稿数などの集計情報を投稿情報インデックスデータベース３２から容易に検索することができる。しかも、外部装置からの要求毎に投稿情報データベース２２を検索する必要がないため、投稿情報データベース２２の低下を防止することが可能となる。
【０１３０】
上述においては、投稿情報インデックスサーバ３０が収集して蓄積する情報として素材ＩＤの集計情報を一例として説明したが、例えば、収集手段３３ｄによって収集した素材ＩＤの情報を集計することなくそのまま投稿情報インデックスデータベース３２へ記憶処理手段３３ｅによって蓄積するようにしてもよい。また、集計結果と共に素材ＩＤの情報を投稿情報インデックスデータベース３２へ記憶処理手段３３ｅによって蓄積するようにしてもよい。この場合、アプリケーションサーバ１０は投稿情報インデックスサーバ３０から素材ＩＤの情報を収集し、集計して端末装置４０へ送信することができる。
【０１３１】
［３．その他の実施形態］
上述では、投稿情報インデックスサーバ３０の制御部３３は、投稿情報データベース２２によって管理される投稿情報の要素である素材ＩＤの情報を投稿情報データベース２２から検索して収集する例を示したが、収集方法はこれに限られない。以下、具体的に説明する。
【０１３２】
（他の実施形態１）
まず、他の実施形態１について説明する。この実施形態では、投稿情報蓄積サーバ２０が投稿情報を受け付けた場合に、投稿情報データベース２２へ蓄積すると共に、投稿情報インデックスサーバ３０へ送信する。これにより、投稿情報データベース２２からの検索を必要としないため、投稿情報データベース２２での処理負荷を軽減することができ、また、投稿情報データベース２２のパフォーマンスの低下を防止することが可能となる。さらに、投稿情報データベース２２に蓄積される投稿情報とリアルタイムに同期させ、投稿情報インデックスデータベース３２の更新を行うことができる。
【０１３３】
具体的には、投稿情報蓄積サーバ２０の受付手段２３ｂは、受信手段２３ａによって受信した投稿情報が蓄積すべき範囲のものであると判定すると、この投稿情報を投稿情報インデックスサーバ３０へ送信手段２３ｅから送信させる。これにより、投稿情報データベース２２を検索することなく、投稿情報データベース２２に蓄積される投稿情報を投稿情報インデックスサーバ３０へ送信できる。なお、投稿情報インデックスサーバ３０への投稿情報の送信処理は、例えば、図８に示すステップＳ１２の処理の前に行う。
【０１３４】
投稿情報インデックスサーバ３０の受付手段３３ｃは、投稿情報蓄積サーバ２０から送信される投稿情報を受け付け、収集手段３３ｄによって素材ＩＤの集計処理を行う。この場合の処理を、図１０を用いて説明する。図１０は、投稿情報インデックスサーバ３０の制御部３３が実行する他の処理手順を示すフローチャートである。なお、図１０に示すステップＳ２３〜２６の処理は図９に示すＳ２３〜Ｓ２６の処理と同様であり、ここでは説明を省略する。
【０１３５】
投稿情報インデックスサーバ３０において、受付手段３３ｃは、投稿情報蓄積サーバ２０から送信される投稿情報を受け付けたか否かを判定する（ステップＳ２０’）。この処理において、受付手段３３ｃが投稿情報を受け付けたと判定すると（ステップＳ２０’，Ｙｅｓ）、収集手段３３ｄは、受付手段３３ｃが受け付けた投稿情報からユーザＩＤと素材ＩＤとを抽出し、これらの情報に関連付けられた投稿件数を投稿情報インデックスデータベース３２から読み出し、１だけ加算して投稿件数を更新する（ステップＳ２２’）。そして、記憶処理手段３３ｅは、収集手段３３ｄによって更新された投稿件数によって投稿情報インデックスデータベース３２の更新を行う（ステップＳ２３）。
【０１３６】
例えば、受け付けた投稿情報がユーザＩＤ「５５５」からの投稿情報で、かつ素材ＩＤが「５４３２２８」であり、また、図７の（Ａ）に示すように、ユーザＩＤ「５５５」のユーザが使用した素材ＩＤ別の投稿件数が投稿情報インデックスデータベース３２に蓄積されているとする。この場合、収集手段３３ｄは、ユーザＩＤ「５５５」に関連づけられた素材ＩＤの投稿件数に１を加算して「１１」として集計結果を更新する。そして、記憶処理手段３３ｅは、収集手段３３ｄによって更新された集計結果によって投稿情報インデックスデータベース３２の更新を行う。
【０１３７】
なお、受付手段３３ｃが受け付けた投稿情報から抽出したユーザＩＤと素材ＩＤとに関連付けられた投稿件数がない場合には、収集手段３３ｄは、抽出した素材ＩＤの投稿数を「１」とした新たな集計情報を生成し、記憶処理手段３３ｅによって、投稿情報インデックスデータベース３２の更新を行う。
【０１３８】
また、投稿情報インデックスサーバ３０は、投稿文や投稿種別などの情報は必要ないため、例えば、ユーザＩＤおよび素材ＩＤのみを取得するようにし、これらの情報に基づいて集計処理を行うことが望ましい。これにより、投稿情報蓄積サーバ２０は、投稿情報を全て送信する必要が無く、ユーザＩＤと素材ＩＤだけを送信すればよいため、投稿情報蓄積サーバ２０と投稿情報インデックスサーバ３０との間の通信負荷が軽減される。
【０１３９】
また、投稿情報インデックスサーバ３０は、投稿情報蓄積サーバ２０から送信される投稿情報を受け付けた場合に、収集手段３３ｄによって素材ＩＤの集計処理を行うようにしたが、受け付けた投稿情報を図示しない記憶部に蓄積し、アプリケーションサーバ１０から情報要求信号を受け付けた場合に、収集手段３３ｄによって素材ＩＤの集計処理を行うようにしてもよい。
【０１４０】
（他の実施形態２）
次に、他の実施形態２について説明する。この実施形態では、投稿情報蓄積サーバ２０1〜２０nにおいて、投稿情報データベース２２に蓄積されたデータから検索用データを生成し、この検索用データを投稿情報インデックスサーバ３０で取得するようにする。
【０１４１】
以下、他の実施形態２に係る投稿情報蓄積サーバの構成について説明する。図１１は、他の実施形態２に係る投稿情報蓄積サーバ２０のブロック図である。以下においては、図２に示す投稿情報蓄積サーバ２０に対して追加される機能を主として説明する。
【０１４２】
図１１に示すように、他の実施形態２に係る投稿情報蓄積サーバ２０には、記憶部２４が配置され、さらに、取得手段２３ｄ'は、図２に示す取得手段２３ｄの機能に加え、検索用データの生成処理などを行う機能を有している。
【０１４３】
例えば、各投稿情報蓄積サーバ２０の取得手段２３ｄ'は、投稿情報データベース２２のデータを記憶部２４へダンプする処理を実行する。具体的には、取得手段２３ｄ’は、投稿情報データベース２２に蓄積された全ての投稿情報を丸ごと読み出して、ダンプファイルとして記憶部２４へ記憶する。取得手段２３ｄ'は、このダンプ処理を定期的（例えば、１日に１回）に行う。
【０１４４】
このように記憶部２４に記憶したダンプファイルには、オリジナル（マスター）とレプリカ（複製）とが混在している。そのため、取得手段２３ｄ'は、記憶部２４に記憶したダンプファイルからオリジナルのみを抽出し、検索用サブデータとして記憶部２４に記憶する。
【０１４５】
また、投稿情報のオリジナルは、複数の投稿情報蓄積サーバ２０1〜２０nの投稿情報データベース２２に分散されて記憶されているため、予め特定された一つの投稿情報蓄積サーバ２０（以下、「特定の投稿情報蓄積サーバ２０」と記載する）の取得手段２３ｄ'は、他の全ての投稿情報蓄積サーバ２０から検索用サブデータを収集する。そして、特定の投稿情報蓄積サーバ２０の取得手段２３ｄ'は、生成した検索用サブデータと収集した検索用サブデータとをマージ（結合）して、検索用データを生成する。
【０１４６】
具体的には、特定の投稿情報蓄積サーバ２０の取得手段２３ｄ'は、送信手段２３ｅから他の全ての投稿情報蓄積サーバ２０に対して、検索用サブデータの送信要求を行う。そして、特定の投稿情報蓄積サーバ２０の取得手段２３ｄ’は、この送信要求に対して他の投稿情報蓄積サーバ２０から送信され受付手段２３ｂで受け付けた検索用サブデータを記憶部２４に記憶する。このようにすることで、特定の投稿情報蓄積サーバ２０の記憶部２４に投稿情報蓄積サーバ２０1〜２０nの検索用サブデータが記憶される。そして、特定の投稿情報蓄積サーバ２０の取得手段２３ｄ’は、記憶部２４に記憶した投稿情報蓄積サーバ２０1〜２０nの検索用サブデータをマージ（結合）して、検索用データを生成する。取得手段２３ｄ'は、このように生成した検索用データを投稿情報インデックスサーバ３０へ送信する。
【０１４７】
また、投稿情報蓄積サーバ２０の取得手段２３ｄ'は、ダンプ処理よりも短い時間間隔で検索用サブデータの差分検出処理を行う。具体的には、各投稿情報蓄積サーバ２０の取得手段２３ｄ’は、定期的（例えば、１０分毎）に、投稿情報データベース２２に新たに追加された投稿情報を検索キーによって読み出し、読み出した投稿情報のうちオリジナルのみを抽出し、差分データとして記憶部２４に記憶する。そして、検索用サブデータの場合と同様に、特定の投稿情報蓄積サーバ２０の取得手段２３ｄ'は、他の全ての投稿情報蓄積サーバ２０から差分データを収集し、これらの差分データと生成した差分データとをマージ（結合）して、検索用差分データを生成する。取得手段２３ｄ'は、このように生成した検索用差分データを投稿情報インデックスサーバ３０へ送信する。
【０１４８】
投稿情報インデックスサーバ３０は、特定の投稿情報蓄積サーバ２０から検索用データや検索用差分データを取得し、これらのデータから投稿情報の素材ＩＤを抽出する。具体的には、投稿情報インデックスサーバ３０の収集手段３３ｄは、図示しない内部の記憶部に検索用データや検索用差分データを記憶しておき、アプリケーションサーバ１０から情報要求信号を受け付けた場合に、素材ＩＤの集計処理を行う。なお、収集手段３３ｄは、検索用差分データを検索用データにマージ（結合）して内部の記憶部に記憶した検索用データを更新する。また、収集手段３３ｄは、新たに検索用データを収集した場合、内部の記憶部に記憶した古い検索用データは消去する。
【０１４９】
ここでは、収集手段３３ｄは、アプリケーションサーバ１０から情報要求信号を受け付けた場合に、素材ＩＤの集計処理を行うようにしたが、検索用データや検索用差分データを受け付けた場合に、受け付けたデータに基づいて収集手段３３ｄによって素材ＩＤの集計処理を行うようにしてもよい。
【０１５０】
このように、投稿情報蓄積サーバ２０のそれぞれにバッチ処理を行う機能を持たせることにより、新たな投稿情報が発生する毎に処理を行う必要が無いため、リアルタイムで同期する必要がない場合に有効である。
【０１５１】
なお、上述においては、特定の投稿情報蓄積サーバ２０から検索用データや検索用差分データを送信するようにしたが、投稿情報インデックスサーバ３０からの検索要求信号に応じて特定の投稿情報蓄積サーバ２０が検索用データや検索用差分データから検索結果情報を抽出して投稿情報インデックスサーバ３０へ送信するようにしてもよい。この場合、受付手段２３ｂは、投稿情報インデックスサーバ３０からの検索要求信号が受信手段２３ａによって受信された場合、検索要求信号に含まれる検索内容の情報を取得手段２３ｄ’へ出力する。取得手段２３ｄ’は、受付手段２３ｂから出力された検索内容の情報が投稿情報インデックスサーバ３０からの要求である場合、投稿情報データベース２２ではなく記憶部２４に記憶した検索用データや検索用差分データから検索内容に応じた情報（検索結果情報）を取得する。そして。送信手段２３ｅは、取得手段２３ｄによって取得された検索結果情報を投稿情報インデックスサーバ３０へ送信する。なお、特定の投稿情報蓄積サーバ２０だけでなく、全ての投稿情報蓄積サーバ２０1〜２０nが検索用データや検索用差分データを生成するようにしてもよい。
【０１５２】
なお、上述の実施形態（他の実施形態１，２を含む）においては、アプリケーションサーバ１０が投稿情報インデックスサーバ３０へ集計結果などを要求して取得するようにしたが、例えば、端末装置４０が投稿情報インデックスサーバ３０へ集計結果などを要求して取得するようにしてもよい。
【０１５３】
なお、上述の実施形態（他の実施形態１，２を含む）では、投稿情報インデックスサーバ３０が収集する投稿情報の要素として、素材ＩＤを一例に挙げて説明したが、これに限られず、投稿情報データベース２２において複数のキーに関連づけられる投稿情報の要素であればどのようなものであってもよい。例えば、投稿された文章に含まれる特定の語句をバリューとして、投稿情報データベース２２で管理させる場合、特定の語句を投稿情報インデックスサーバ３０が収集する投稿情報の要素とすることができる。
【０１５４】
以上、本発明の実施の形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【符号の説明】
【０１５５】
１０  アプリケーションサーバ
２０（２０1〜２０n）  投稿情報蓄積サーバ
３０  投稿情報インデックスサーバ
４０（４０1〜４０n）  端末装置
３３ａ  送信手段
３３ｂ  受信手段
３３ｃ  受付手段
３３ｄ  収集手段
３３ｅ  記憶処理手段
【図１】
0005211180.tif 000002
【図２】
0005211180.tif 000003
【図３】
0005211180.tif 000004
【図４】
0005211180.tif 000005
【図５】
0005211180.tif 000006
【図６】
0005211180.tif 000007
【図７】
0005211180.tif 000008
【図８】
0005211180.tif 000009
【図９】
0005211180.tif 000010
【図１０】
0005211180.tif 000011
【図１１】
0005211180.tif 000012