説明

データベース管理装置、データベース管理プログラム、データベース管理方法、データベース管理システム

【課題】投稿文に対して設定された画像の情報をバリューとしてキーバリュー型のデータベースに記憶した場合に、画像の情報の集計結果などを容易に検索すること。
【解決手段】キーバリュー型の第1データベースは、特定種類の情報を要素に含む投稿情報を受け付ける毎に、投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積する。そして、かかる第1データベースによって管理される投稿情報の要素のうち、特定種類の情報を収集し、収集した特定種類の情報又は特定種類の情報の集計結果を非キーバリュー型の第2データベースに記憶させる。そして、第2データベースに記憶された情報を外部装置からの要求に応じて外部装置へ送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベース管理装置、データベース管理プログラム、データベース管理方法、データベース管理システムに関する。
【背景技術】
【0002】
近年、ミニブログやマイクロブログと呼ばれるブログサービスが提供されてきている。かかるブログサービスでは、文字数を制限した短い文章をユーザから投稿させ、これら投稿された文章を時系列順に表示させることで、ユーザ間での簡便なコミュニケーションの場を提供する。
【0003】
この種のサービスでは、ユーザ数の増加に伴って、ユーザから投稿される情報が時間と共に増加して膨大となることから、その情報の管理には、データベースの増設が容易なキーバリュー型のデータベースを用いることが知られている(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】大谷晋平著、“Cassandraのはじめ方─手を動かしてNoSQLを体感しよう”、[online]、平成22年4月27日、[平成22年12月11日]、インターネット<URL:http://gihyo.jp/dev/serial/01/cassandra/0001?skip>
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記キーバリュー型のデータベースは、情報(以下、「バリュー」と呼ぶことがある)を複数の検索キーに関連づけて記憶し、検索キーを指定してバリューを取り出す仕様のデータベースである。
【0006】
例えば、投稿された文章に対して設定された素材(例えば、画像)や投稿された文章に含まれる特定の語句をバリューとしてキーバリュー型のデータベースに管理させた場合、それを指定した検索を行うことができないという課題がある。
【0007】
したがって、投稿された文章に対して設定された素材の情報や投稿された文章に含まれる特定の語句などをバリューとしてキーバリュー型のデータベースに管理させた場合、その素材を指定した検索を行うことができない。
【0008】
本発明は、上記のような従来技術の課題を解決するものであり、その目的は、キーバリュー型のデータベースにおいて記憶される情報のうち特定種類の情報や当該特定種類の情報に基づく情報を容易に検索可能とすることにある。
【課題を解決するための手段】
【0009】
上記の目的を踏まえ、本発明の一態様(1)は、キーバリュー型の第1データベースによって管理される情報を取得して非キーバリュー型の第2データベースにより管理させるデータベース管理装置であって、前記第1データベースは、複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける毎に、前記投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースであり、前記第1データベースによって管理される前記投稿情報の要素のうち、前記特定種類の情報を収集する収集手段と、前記収集手段によって収集した前記特定種類の情報又は当該特定種類の情報に基づく情報を前記第2データベースに記憶させる記憶処理手段と、前記記憶処理手段によって前記第2データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する送信手段とを備える。
【0010】
上記態様(1)をコンピュータ・プログラムという見方から捉えた本発明の一態様(6)は、キーバリュー型の第1データベースによって管理される情報を取得して非キーバリュー型の第2データベースにより管理させる処理をコンピュータに実行させるデータベース管理プログラムであって、前記第1データベースは、複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける毎に、前記投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースであり、前記第1データベースによって管理され前記投稿情報の要素のうち、前記特定種類の情報を収集し、前記収集した前記特定種類の情報又は当該特定種類の情報に基づく情報を前記第2データベースに記憶し、前記第2データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する処理を前記コンピュータに実行させる。
【0011】
上記態様(1)を方法という見方から捉えた本発明の一態様コンピュータを制御し、キーバリュー型の第1データベースによって管理される情報を取得して非キーバリュー型の第2データベースにより管理させるデータベース管理方法であって、前記第1データベースは、複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける毎に、前記投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースであり、前記第1データベースによって管理され前記投稿情報の要素のうち、前記特定種類の情報を収集する手順と、前記収集した前記特定種類の情報又は当該特定種類の情報に基づく情報を前記第2データベースに記憶する手順と、前記第2データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する送信手順とを含む。
【0012】
上記態様(1)をシステムという見方から捉えた本発明の一態様(8)は、キーバリュー型の第1データベースと、非キーバリュー型の第2データベースを有するデータベース管理装置とを備えたデータベース管理システムにおいて、前記第1データベースは、複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける毎に、前記投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースであり、前記データベース管理装置は、前記第1データベースに蓄積される前記投稿情報の要素のうち、前記特定種類の情報を収集する収集手段と、前記収集手段によって収集した前記特定種類の情報又は当該特定種類の情報に基づく情報を前記第2データベースに記憶させる記憶処理手段と、前記記憶処理手段によって前記第2データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する送信手段とを備える。
【0013】
この発明によれば、キーバリュー型の第1データベースにおいて記憶される投稿情報の要素のうち特定種類の情報や当該特定種類の情報に基づく情報を第2データベースから容易に検索することができる。しかも、外部装置からの要求毎に第1データベースを検索する必要がないため、第1データベースのパフォーマンスの低下を防止することが可能となる。
【0014】
本発明の他の態様(2)は、上記のいずれかの態様において、前記収集手段は、前記第1データベースから前記特定種類の情報を収集する。
【0015】
この発明によれば、例えば、必要に応じて都度第1データベースから情報を収集することができるため、特定種類の情報を収集するための特別な構成を設ける必要がない。
【0016】
本発明の他の態様(3)は、上記のいずれかの態様において、前記収集手段は、外部装置から前記第1データベースへ記憶させる前記特定種類の情報が送信された場合に、当該特定種類の情報を収集する。
【0017】
この発明によれば、第1データベースからの検索を必要としないため、第1データベースでの処理負荷を軽減することができ、第1データベースのパフォーマンスの低下を防止することが可能となる。
【0018】
本発明の他の態様(4)は、上記のいずれかの態様において、前記記憶処理手段は、前記特定種類の情報を集計した情報を、前記特定種類の情報に基づく情報として前記第2データベースに記憶させる。
【0019】
この発明によれば、特定種類の情報を集計した情報(集計情報)を第2データベースに記憶するため、集計情報の検索を迅速に行うことができる。
【0020】
本発明の他の態様(5)は、上記のいずれかの態様において、前記投稿情報の要素は、複数の前記第2データベースによって分散管理され、前記複数の第2データベースは、前記投稿情報の各要素について、同一の情報を分散して複数記憶しており、前記収集手段は、前記同一の情報のうち最新の情報の中から、前記特定種類の情報を収集する。
【0021】
この発明によれば、保守性を高めるために同一情報を記憶した場合でも、最新の情報から特定種類の情報を収集することができ、できるだけ新しい情報を検索したいという要請に対応することができる。
【発明の効果】
【0022】
本発明によれば、キーバリュー型のデータベースにおいて記憶される情報のうち、特定種類の情報や当該特定種類の情報に基づく情報を容易に検索することができる。
【図面の簡単な説明】
【0023】
【図1】図1は、本発明の一実施形態に係るデータベース管理手法の概要図である。
【図2】図2は、本発明の一実施形態に係るデータベース管理システムの構成図である。
【図3】図3は、端末装置に表示されるウェブページの例を示す図である。
【図4】図4は、投稿情報蓄積サーバのブロック図である。
【図5】図5は、投稿情報データベースのデータ構成の一例を示す図である。
【図6】図6は、投稿情報インデックスサーバのブロック図である。
【図7】図7は、投稿情報インデックスデータベースのデータ構成の一例を示す図である。
【図8】図8は、投稿情報蓄積サーバの処理の一例(その1)を示すフローチャートである。
【図9】図9は、投稿情報インデックスサーバの処理の一例(その1)を示すフローチャートである。
【図10】図10は、投稿情報インデックスサーバの処理の一例(その2)を示すフローチャートである。
【図11】図11は、他の実施形態に係る投稿情報蓄積サーバのブロック図である。
【発明を実施するための形態】
【0024】
以下、本発明を実施するための形態(以下、「実施形態」と呼ぶ)について、図面を参照しつつ詳細に説明する。
【0025】
[1.データベース管理手法の概要]
まず、本発明に係る一実施形態のデータベース管理手法の概要について図1を用いて説明する。図1は、本発明の一実施形態に係るデータベース管理手法の概要説明図である。以下においては、投稿文字数が制限されるマイクロブログやミニブログと呼ばれるサービスを提供するブログサービスシステムを一例に挙げて説明するが、本実施形態に係るデータベース管理手法は様々なシステムや装置に適用することが可能である。
【0026】
本実施形態のブログサービスシステムは、図1の(A)に示すように、複数の投稿情報蓄積サーバ201〜20nと、投稿情報インデックスサーバ30とを備えており、複数の端末装置401〜40nから投稿される情報の蓄積や閲覧などを可能としている。なお、以下においては、投稿情報蓄積サーバ201〜20nのいずれか又は全部をいう場合には、投稿情報蓄積サーバ20とし、また、端末装置401〜40nのいずれか又は全部をいう場合には、端末装置40とする。
【0027】
投稿情報蓄積サーバ20は、受付手段23bと、記憶処理手段23cと、投稿情報データベース22とを備えている。受付手段23bは、各端末装置401〜40nから投稿される情報を受け付ける。記憶処理手段23cは、受付手段23bによって受け付けた情報を投稿情報として投稿情報データベース22(第1データベースの一例に相当)へ蓄積する。
【0028】
投稿情報データベース22は、キーバリュー型データベースであり、複数の検索キーに関連づけて投稿情報の各要素が蓄積される。キーバリュー型のデータベースは、データベースの増設や情報の分散配置が容易であることからブログサービスシステムなどのように蓄積する情報が増加するシステムに有効なデータベースである。図1の(A)に示す例でも、投稿情報データベース22を備えた投稿情報蓄積サーバ20を複数配置している。
【0029】
ここで、投稿情報データベース22に蓄積される投稿情報の一例を具体的に説明する。図1の(B)は、投稿情報データベース22に蓄積される情報のデータ構造の一例を示す図である。ここでは、投稿情報には、投稿文と素材IDとが要素に含まれる。素材IDは、投稿文に対して設定された画像(以下、素材画像と呼ぶ)を識別するためのIDである。
【0030】
図1の(B)に示すように、投稿情報は、キースペース「メイン」に属するカラムファミリーのうち、「投稿」というカラムファミリーに割り当てられ、「メイン」および「投稿」がそれぞれ検索キーとなる。また、各投稿情報には、検索キーとして投稿IDが割り当てられ、さらに、投稿情報の各要素にも、それぞれ検索キーが割り当てられている。
【0031】
具体的には、投稿情報の要素には、投稿文や素材IDなどがあり、それぞれに検索キーが割り当てられる。図1の(B)に示す例では、検索キー「投稿ID」が「100」として割り当てられた投稿情報の要素として、検索キー「投稿文」に「投稿文A」が割り当てられ、検索キー「素材ID」に「200」が割り当てられて蓄積されることを示している。
【0032】
投稿情報データベース22から投稿情報の要素として、例えば、投稿IDが「100」の投稿文を検索する場合、下記(1)に示す検索式となり、投稿IDが「101」の素材IDを検索する場合、下記(2)に示す検索式となる。
検索式=[メイン][投稿][100][投稿文] ・・・(1)
検索式=[メイン][投稿][101][素材ID] ・・・(2)
【0033】
以上のように、投稿情報データベース22は、投稿情報の要素を複数の検索キーに関連づけて記憶し、検索キーを指定して投稿情報の要素を取り出す仕様のデータベースである。
【0034】
例えば、図1の(B)に示す例では、投稿IDが「100」の素材IDは、[メイン]、[投稿]、[100]、[検索ID]という複数の検索キーに関連付けられて記憶される。そして、これらの検索キーを指定した上記(2)の検索式によって投稿IDが「100」の検索IDの「200」を読み出すことができる。
【0035】
しかし、投稿情報の要素を指定した検索を行うことができない。例えば、「素材ID」が「200」であると指定した検索を行うことができない。「200」が検索キーとなっていないからである。
【0036】
したがって、例えば、素材画像別(素材ID別)の投稿件数を検索するためには、投稿件数分の検索を行うことになる。例えば、投稿IDが「100」〜「100000」の投稿情報が蓄積されている場合、投稿IDを1ずつインクリメントしながら、 [メイン][投稿][100][素材ID]から[メイン][投稿][100000][素材ID]までを検索式によって検索をすることになる。これにより、投稿情報データベース22に蓄積された各投稿情報に含まれる素材IDの情報が読み出される。そして、読み出した素材IDの情報に基づいて、素材画像別(素材ID別)の数を集計する。
【0037】
このように、投稿情報の要素である素材画像の情報(素材ID)を指定した検索を投稿情報データベース22に対して行う場合、投稿情報データベース22に負荷がかかってパフォーマンスが低下する上に、素材ID別の数を集計するための演算処理が別途必要となる。
【0038】
また、キーバリュー型データベースでは、上述のような投稿毎の検索に加え、一括して投稿情報を取得することができる。すなわち、検索キー=[メイン][投稿]とすればすべての投稿情報を取得することができる。しかし、各投稿情報から素材IDを抽出した後に、素材ID別の数を集計しなければならず、演算処理の追加などが別途必要となる。
【0039】
さらに、本実施形態のブログサービスシステムでは、複数の投稿情報蓄積サーバ201〜20nによって、複数の投稿情報を分散して管理している上に、同一の投稿情報(オリジナルとレプリカ)も分散して管理するものであり、投稿情報の要素が更新された場合に同一の情報のすべてを更新するまでに時間がかかってしまう。そのため、検索の際には、同一の情報のうちタイムスタンプが最新のものを選択する必要があり、そのための処理にも負荷や時間がかかってしまうことになる。
【0040】
このように、キーバリュー型のデータベースは、データベースの増設や情報の分散配置が容易であることから蓄積する情報が増加するブログサービスシステムなどでは有効であるものの、検索キーで検索される情報(バリュー)を指定した検索を容易に行うことはできない。
【0041】
そこで、本実施形態のブログサービスシステムでは、投稿情報データベース22において検索キーで検索される投稿情報の要素を指定した検索を極めて容易に行えるように、投稿情報インデックスサーバ30を設けている。
【0042】
かかる投稿情報インデックスサーバ30は、図1の(A)に示すように、収集手段33dと、記憶処理手段33eと、投稿情報インデックスデータベース32(第2データベースの一例に相当)と、受付手段33cとを有している。
【0043】
収集手段33dは、投稿情報データベース22から各投稿情報の素材IDを取得する。投稿情報データベース22からの検索は、各投稿情報の素材IDをそれぞれ検索キーによって読み出すことによって行われる。なお、カラムファミリー[投稿]全体を読み出してから各投稿情報の素材IDを抽出することもできる。
【0044】
記憶処理手段33eは、収集手段33dによって収集された情報に基づき、素材ID別の投稿件数を集計し、例えば、素材IDをインデックスとして、投稿件数を投稿情報インデックスデータベース32に蓄積する。
【0045】
ここで、投稿情報インデックスデータベース32に蓄積される情報の一例を具体的に説明する。図1の(C)は、投稿情報インデックスデータベース32に蓄積される情報のデータ構造の一例を示す図である。
【0046】
図1の(C)に示すように、投稿情報インデックスデータベース32には、素材IDをインデックスとして素材ID別の投稿件数が蓄積される。例えば、素材ID「200」には、投稿件数「14」が関連付けられており、また、素材ID「201」には、投稿件数「20」が関連付けられている。
【0047】
受付手段33cは、端末装置40からインデックスである素材IDを指定した検索要求があった場合、投稿情報インデックスデータベース32から指定された素材IDの投稿件数を読み出す。そして、このように読み出された投稿件数の情報は閲覧情報として検索要求を行った端末装置40へ送信される。
【0048】
このように、本実施形態に係るブログサービスシステムでは、投稿情報蓄積サーバ20に加えて、投稿情報インデックスサーバ30を設けており、投稿情報インデックスデータベース32では、素材IDをインデックスとして素材ID別の投稿件数が蓄積されている。そのため、端末装置40からの要求に応じて素材IDをインデックスとして投稿件数を容易に読み出すことができる。
【0049】
なお、上述では、素材画像を投稿文に対して設定可能としており、素材画像を投稿文と共に閲覧可能とすることで、閲覧者のであるユーザに投稿文の内容を迅速に把握させることができる。しかも、素材画像を指定した検索を行うことができるため、より魅力的なブログサービスを提供することができる。
【0050】
なお、上述では、投稿情報インデックスサーバ30が収集する投稿情報の要素として、素材IDを一例に挙げて説明したが、これに限られず、投稿情報データベース22において複数のキーに関連づけられる投稿情報の要素であればどのようなものであってもよい。例えば、投稿された文章に含まれる特定の語句をバリューとして、投稿情報データベース22で管理させる場合、特定の語句を投稿情報インデックスサーバ30が収集する投稿情報の要素とすることができる。
【0051】
[2.データベース管理手法の具体例]
次に、図2〜図10を参照して、本実施形態のデータベース管理手法を適用したブログサービスシステムの具体的な一例を説明する。なお、上述のように、本実施形態に係るデータベース管理手法は様々なシステムや装置に適用することが可能である。
【0052】
まず、本実施形態に係るデータベース管理手法を適用したブログサービスシステムの全体構成について説明する。図2は、本実施形態に係るブログサービスシステムの構成を示す図である。
【0053】
図2に示すように、ブログサービスシステムSは、アプリケーションサーバ10と、投稿情報蓄積サーバ20(201〜20n)と、投稿情報インデックスサーバ30とを備えており、これらのサーバはLAN(Local Area Network)などのネットワークにより接続されている。このブログサービスシステムSは、ルータ60を介してインターネットなどのネットワーク50に接続されている。
【0054】
このブログサービスシステムSは、各端末装置40(401〜40n)のユーザが投稿と閲覧とを行うことを可能としたシステムである。各端末装置40は、ネットワーク50を介してブログサービスシステムSと情報の送受信が可能であり、ブログサービスシステムSでは、各端末装置40のユーザからの投稿や閲覧などの要求を受け付ける。
【0055】
例えば、各端末装置40のユーザからの投稿要求は、アプリケーションサーバ10によって受け付けられ、その投稿要求に応じた情報はアプリケーションサーバ10から投稿情報蓄積サーバ20へ通知され、投稿情報蓄積サーバ20の投稿情報データベース22に投稿情報として蓄積される。
【0056】
また、各端末装置40のユーザからの閲覧要求は、アプリケーションサーバ10によって受け付けられ、その種類に応じて投稿情報蓄積サーバ20や投稿情報インデックスサーバ30へ通知される。投稿情報蓄積サーバ20や投稿情報インデックスサーバ30は、閲覧要求に対応する情報を内部のデータベースから読み出し、アプリケーションサーバ10経由で閲覧要求元の端末装置40へ通知する。
【0057】
各端末装置40は、通信手段41と、ブラウザ42と、操作手段43と、表示手段44とを有しており、操作手段43への操作によってブラウザ42を制御して、通信手段41を介してアプリケーションサーバ10との間で各種のデータの送受信を行う。これによって、各端末装置40のユーザは、投稿や閲覧を行うことができる。
【0058】
ここで、各端末装置40において投稿や閲覧の要求を行うためのウェブページの例を説明する。図3は、アプリケーションサーバ10から送信され、端末装置40において表示されるウェブページの例を示す図である。
【0059】
本実施形態に係るブログサービスシステムSでは、例えば、操作手段43への操作によってブラウザ42からアプリケーションサーバ10へのアクセスがあった場合、アプリケーションサーバ10はブログサービスのTOPページの情報を端末装置40へ送信する。なお、アプリケーションサーバ10へのアクセスには端末装置40のユーザに対応するユーザIDの情報も含まれており、ユーザIDに対応するTOPページがアプリケーションサーバ10から送信される。
【0060】
ブラウザ42は、アプリケーションサーバ10から受信したTOPページの情報に基づいて、ブログサービスのTOPページ11を表示手段44に表示させる。図3の(A)は、表示手段44に表示されるTOPページ11の一例を示している。このTOPページ11では、「一言投稿」、「一言閲覧」、「使用素材一覧画像」を選択可能としている。
【0061】
操作手段43への操作によってTOPページ11の「一言投稿」が選択された場合、ブラウザ42からその選択情報がアプリケーションサーバ10へ送信される。この選択情報の送信に対し、アプリケーションサーバ10から投稿用ページの情報が端末装置40へ送信され、図3の(B)に示すように、投稿を行うための投稿用ページ12がブラウザ42によって表示手段44に表示される。端末装置40のユーザは、操作手段43への操作によって投稿文入力ボックス12a内に投稿文を入力し、「投稿」ボタン12bを押下する。これにより、投稿文の情報がアプリケーションサーバ10へ送信される。
【0062】
投稿文の送信に対して、アプリケーションサーバ10からは、図3の(C)に示すような素材画像設定用ページ13の情報が送信され、ブラウザ42によって素材画像設定用ページ13が表示手段44に表示される。この素材画像設定用ページ13には、素材画像17a〜17cが表示され、さらに素材画像17a〜17cのいずれかを選択するためのチェックボックス13aが設けられている。
【0063】
端末装置40のユーザは、上述のように投稿した投稿文に関連すると考える素材画像を素材画像17a〜17cの中から選択する。素材画像の選択は、操作手段43への操作によって、素材画像に対応するチェックボックス13aにチェックを入れ、設定ボタン13bを押下することによって行う。
【0064】
これにより、ユーザが選択した素材画像の素材IDがアプリケーションサーバ10へ送信される。そして、アプリケーションサーバ10へ送信された投稿文および素材IDなどは投稿情報の要素として投稿情報蓄積サーバ20へ送信され、投稿情報蓄積サーバ20に蓄積される。この投稿情報を端末装置40において閲覧する場合、その閲覧画像は、例えば、図3の(D)に示すように、素材画像17aと投稿文16とが隣接して配置される画像となる。
【0065】
このように、投稿文の内容に関連する素材画像を設定することで、投稿を楽しんで行え、また、図3の(D)に示すように投稿内容の把握がしやすくなる。そのため、本実施形態に係るブログサービスシステムSでは、ユーザが利用しやすく、魅力的なブログサービスを提供することができる。
【0066】
しかも、本実施形態に係るブログサービスシステムSでは、たとえば、TOPページ11の「使用素材画像一覧」を選択することにより、素材画像を指定した検索を行うことができるようにしている。
【0067】
操作手段43への操作によってTOPページ11の「使用素材画像一覧」が選択された場合、ブラウザ42からその選択情報がアプリケーションサーバ10へ送信される。この選択情報の送信に対し、アプリケーションサーバ10から使用素材画像一覧ページの情報が端末装置40へ送信される。
【0068】
端末装置40のブラウザ42は、アプリケーションサーバ10から受信した情報に基づいて、図3の(E)に示すように、ユーザが投稿に使用した素材画像の一覧を示す使用素材画像一覧ページ15がブラウザ42によって表示手段44に表示される。なお、使用素材画像一覧ページ15には、ユーザが投稿に使用した素材画像と件数とが一覧表示される。図3の(E)に示す例では、素材画像17aの投稿件数が10件、素材画像17cの投稿件数が8件であることを示している。
【0069】
この使用素材画像一覧ページ15は、アプリケーションサーバ10が投稿情報インデックスサーバ30に要求して取得した情報に基づいて生成されるものである。具体的には、アプリケーションサーバ10は、端末装置40から送信される使用素材画像一覧要求に対応する情報を投稿情報インデックスサーバ30へ要求する。
【0070】
さらに、使用素材画像一覧ページ15では、表示されている素材画像を選択可能となっている。例えば、図3の(E)に示す使用素材画像一覧ページ15において、例えば、素材画像17aや素材情報15a(「ひま〜」)を操作手段43への操作によって選択した場合、ブラウザ42からその選択情報がアプリケーションサーバ10へ送信される。この選択情報の送信に対し、アプリケーションサーバ10から素材画像詳細ページの情報が端末装置40へ送信される。
【0071】
端末装置40のブラウザ42は、アプリケーションサーバ10から受信した情報に基づいて、図3の(F)に示すように、ユーザが選択した素材画像の詳細を示す素材画像詳細ページ16がブラウザ42によって表示手段44に表示される。素材画像詳細ページ16には、選択された素材画像の投稿件数や投稿者の情報などが表示される。図3の(F)に示す例では、素材画像17aの総投稿件数が82176件、投稿件数が多いユーザのうち1位から3位までのユーザが、○○さん(ユーザID「543261」)、△△さん(ユーザID「529076」)、□□さん(ユーザID「175433」)であることを示している。また、素材画像17aがすべての素材画像のうち「234」番目に投稿件数が多いことを示している。
【0072】
以上のように、本実施形態に係るブログサービスシステムSでは、端末装置40のユーザから投稿文や対応する素材画像を投稿情報として投稿可能とし、また、ユーザが投稿に使用した素材画像の一覧や素材画像の詳細などを端末装置40のユーザから閲覧可能としている。このように構成されるブログサービスシステムSについて、以下、投稿情報蓄積サーバ20および投稿情報インデックスサーバ30の構成について詳細に説明する。
【0073】
[2.1.投稿情報蓄積サーバ20の構成]
図4に投稿情報蓄積サーバ20の構成を示す。図4に示すように、投稿情報蓄積サーバ20は、通信インタフェース(I/F)21と、投稿情報データベース22と、制御部23とを備えている。
【0074】
通信I/F21は、投稿情報蓄積サーバ20をLAN経由でアプリケーションサーバ10や投稿情報インデックスサーバ30と接続できるようにするためのインタフェースであり、例えば、イーサネット(登録商標)・アダプタを含む。
【0075】
投稿情報データベース22は、端末装置401〜40nのユーザからの投稿に関する情報を蓄積するデータベースである。この投稿情報データベース22は、キーバリュー型のデータベースであり、複数の検索キーに関連づけて投稿情報の各要素が蓄積される。上述したように、キーバリュー型のデータベースは、データベースの増設や情報の分散配置が容易であることからブログサービスシステムSなどのように蓄積する情報が増加するシステムに適したデータベースである。
【0076】
ここで、投稿情報データベース22に蓄積される投稿情報の一例を具体的に説明する。図5は、投稿情報データベース22のデータ構成の一例を示す図である。
【0077】
図5に示すように、投稿情報は、キースペース「メイン」に属するカラムファミリーのうち、「投稿」というカラムファミリーに割り当てられる。各投稿情報には、投稿IDである投稿IDが割り当てられ、さらに、投稿情報の各要素にも、それぞれ検索キーが割り当てられている。
【0078】
具体的には、投稿情報の要素には、投稿文、投稿種別、ユーザID、投稿日時、素材IDなどがあり、それぞれ検索キーに割り当てられる。図5に示す例では、投稿IDが「111」である投稿に関する情報として、例えば、投稿文として「ねむすぎ#ひま」、投稿種別として「0」、ユーザIDとして「555」、投稿日時として「2010年12月28日20時14分27秒」、素材IDとして「543228」がそれぞれ蓄積されていることを示している。
【0079】
この投稿情報データベース22から投稿情報の要素として、例えば、投稿IDが「111」の素材IDを検索する場合、検索式は次のようになる。
検索式=[メイン][投稿][111][素材ID]
【0080】
図4の説明に戻って投稿情報蓄積サーバ20の構成の説明を続ける。制御部23は、投稿情報蓄積サーバ20の全体制御を行う制御部である。制御部23は、受信手段23aと、受付手段23bと、記憶処理手段23cと、取得手段23dと、送信手段23eとをさらに備えている。
【0081】
なお、図4には、制御部23の機能的な構成を示しているが、この制御部23は、物理的にはCPU(Central Processing Unit)とフラッシュメモリ(flash memory)とRAM(Random Access Memory)とを有する情報処理装置を備えている。そして、CPUがフラッシュメモリからプログラムを読出し、RAMを作業領域として使用して実行することにより、上述した各手段23a〜23e等として機能する。
【0082】
受信手段23aは、通信I/F21を介してアプリケーションサーバ10から送信される投稿情報や投稿情報インデックスサーバ30から送信される検索要求信号を受信する。
【0083】
受付手段23bは、受信手段23aによって受信した情報を受け付ける。例えば、受信手段23aによってアプリケーションサーバ10からの投稿情報が受信された場合、受付手段23bは、この投稿情報が蓄積すべき範囲のものであるか否かを判定し、蓄積すべき範囲であると判定した場合に、投稿情報を記憶処理手段23cへ出力する。この場合、投稿情報がオリジナルの情報であれば、投稿情報のレプリカ(複製)を、他の投稿情報蓄積サーバ20へ送信手段23eから送信させる。また、投稿情報が蓄積すべき範囲ではないと判定した場合も同様に、受付手段23bは、投稿情報を蓄積すべき他の投稿情報蓄積サーバ20へ送信手段23eから送信させる。
【0084】
また、受付手段23bは、投稿情報インデックスサーバ30から検索要求信号が受信手段23aによって受信された場合、検索要求信号に含まれる検索内容の情報を取得手段23dへ出力する。
【0085】
記憶処理手段23cは、受付手段23bによって受け付けた投稿情報に投稿IDを関連づけて投稿情報データベース22に蓄積する。
【0086】
取得手段23dは、受付手段23bから出力された検索内容の情報に基づき、投稿情報データベース22を参照して検索内容に応じた情報(以下、検索結果情報と記載する)を取得する。投稿情報データベース22は、上述したように、キーバリュー型のデータベースであり、取得手段23dは、検索キーによって投稿情報データベース22から情報を取得する。
【0087】
例えば、投稿情報インデックスサーバ30から、全ての投稿情報に関する素材IDの情報を検索する要求が検索内容として検索要求信号に含まれているとする。この場合、取得手段23dは、[メイン][投稿][100][素材ID]から[メイン][投稿][100000][素材ID]までを検索キーによって検索をして、投稿情報データベース22から素材IDの情報を取得する。なお、投稿情報データベース22には、投稿IDが「100」から「100000」までの投稿情報が記憶されているとする。
【0088】
また、例えば、投稿情報インデックスサーバ30から、範囲を指定した投稿情報に関する素材IDの情報を検索する要求が検索内容として検索要求信号に含まれているとする。この場合、取得手段23dは、指定された範囲に含まれる投稿情報の素材IDを検索キーによって検索をして、投稿情報データベース22から素材IDの情報を取得する。例えば、投稿IDが「10001」から「30000」までの範囲が指定された場合、取得手段23dは、[メイン][投稿][10001][素材ID]から[メイン][投稿][30000][素材ID]までを検索キーによって検索をする。
【0089】
送信手段23eは、例えば、取得手段23dによって取得された検索結果情報を投稿情報インデックスサーバ30へ送信する。
【0090】
[2.2.投稿情報インデックスサーバ30の構成]
図6に投稿情報インデックスサーバ30の構成を示す。図6に示すように、投稿情報インデックスサーバ30は、通信インタフェース(I/F)31と、投稿情報インデックスデータベース32と、制御部33とを備えている。
【0091】
通信I/F31は、投稿情報インデックスサーバ30をLAN経由でアプリケーションサーバ10や投稿情報蓄積サーバ20と接続できるようにするためのインタフェースであり、例えば、イーサネット(登録商標)・アダプタを含む。
【0092】
投稿情報インデックスデータベース32は、投稿情報蓄積サーバ20から制御部33によって取得された投稿情報の素材IDに関する情報を記憶する記憶手段である。この投稿情報インデックスデータベース32は、例えば、リレーショナル型のデータベースであり、キャッシュデータの蓄積、読み出し、更新は、例えば、SQL(Structured Query Language)に従ったコマンドが用いられる。
【0093】
ここで、投稿情報インデックスデータベース32に管理される情報について図面を参照して具体的に説明する。図7は、投稿情報インデックスデータベース32のデータ構成の一例を示す図である。
【0094】
投稿情報インデックスデータベース32では、素材IDの集計情報として、ユーザID単位で素材IDの集計情報、総投稿情報に対する素材IDの集計情報、複数又はすべてのユーザID単位での素材IDの集計情報などを蓄積している。
【0095】
具体的には、投稿情報インデックスデータベース32では、図7の(A)に示すように、ユーザID毎に、素材IDと投稿件数とを関連づけて記憶している。例えば、図7の(A)に示す例では、ユーザIDが「555」であるユーザに対して、「543228」である素材IDの投稿件数が「10」であり、「287630」である素材IDの投稿件数が「24」であることを示している。
【0096】
また、投稿情報インデックスデータベース32では、図7の(B)に示すように、総投稿情報に対する素材IDの集計情報を蓄積している。図7の(B)に示す例では、素材ID「543228」について、投稿件数が「82176」、投稿件数が多いユーザのうち1番(投稿者(第1位))から3番(投稿者(第3位))までのユーザIDが「543261」,「529076」,「175433」であることを示している。また、素材ID「543228」の素材画像がすべての素材IDのうち「234」番目に投稿件数が多いことを示している。
【0097】
図6に戻って投稿情報インデックスサーバ30の構成についての説明を続ける。制御部33は、投稿情報インデックスサーバ30の全体制御を行う制御部である。制御部33は、送信手段33aと、受信手段33bと、受付手段33cと、収集手段33dと、記憶処理手段33eとをさらに備えている。
【0098】
なお、図6には、制御部33の機能的な構成を示しているが、この制御部33は、物理的にはCPU(Central Processing Unit)とフラッシュメモリ(flash memory)とRAM(Random Access Memory)とを有する情報処理装置を備えている。そして、CPUがフラッシュメモリからデータベース管理プログラムを読出し、RAMを作業領域として使用して実行することにより、上述した各手段33a〜33e等として機能する。
【0099】
送信手段33aは、例えば、投稿情報インデックスデータベース32に蓄積されている情報である素材IDの集計情報を通信I/F31を介してアプリケーションサーバ10へ送信し、また、検索を要求する検索要求信号を通信I/F31を介して投稿情報蓄積サーバ20へ送信する。
【0100】
受信手段33bは、例えば、通信I/F31を介してアプリケーションサーバ10から送信される情報要求信号や投稿情報蓄積サーバ20から送信される検索結果情報を受信する。情報要求信号は、アプリケーションサーバ10から投稿情報インデックスサーバ30に対して情報の送信要求を行うための信号であり、検索内容の情報が含まれる。
【0101】
受付手段33cは、受信手段33bによって受信した情報要求信号を受け付け、この情報要求信号に対応する情報を投稿情報インデックスデータベース32から読み出して、アプリケーションサーバ10へ送信手段33aから送信させる。
【0102】
例えば、図7の(A)に示すように情報が投稿情報インデックスデータベース32に蓄積されている場合に、情報要求信号に含まれる検索内容の情報が「555」であるユーザIDのユーザによって使用されている素材画像の情報であるとする。この場合、受付手段33cは、ユーザID「555」をインデックスとして指定して投稿情報インデックスデータベース32からユーザID「555」に対応づけられた素材IDおよび投稿件数を全て読み出し、検索結果として送信手段13aからアプリケーションサーバ10へ送信させる。
【0103】
収集手段33dは、検索内容の情報を含む検索要求信号を送信手段13aから投稿情報蓄積サーバ20へ送信させる。投稿情報蓄積サーバ20は、検索要求信号に含まれる検索内容の情報に基づき、投稿情報データベース22を参照して検索内容に応じた情報を取得し、投稿情報インデックスサーバ30へ送信する。
【0104】
収集手段33dは、情報要求信号に含まれる検索内容の情報を投稿情報蓄積サーバ20から収集すると、集計処理を行って記憶処理手段33eへ出力し、集計処理の結果を投稿情報インデックスデータベース32に蓄積させる。
【0105】
例えば、検索要求信号に含まれる検索内容の情報が全ての投稿情報に関する素材IDの情報を検索する要求の情報である場合、投稿情報蓄積サーバ20の取得手段23dは、全ての投稿IDの素材IDを取得して投稿情報インデックスサーバ30へ送信する。
【0106】
収集手段33dは、全ての投稿情報(例えば、投稿IDが「100」から「100000」までの投稿情報があるとする)に関する素材IDの情報を投稿情報蓄積サーバ20から収集すると、ユーザID単位で素材ID別の数を集計する。例えば、ユーザID「283」を要素とする投稿情報に含まれる素材IDとして「837457」,「257638」,「837457」,「837457」,「257638」が投稿情報蓄積サーバ20から送信されたとする。この場合、収集手段33dは、素材ID「837457」の投稿件数を「3」とし、素材ID「257638」の投稿件数を「2」とする。これが収集手段33dの集計結果となる。
【0107】
また、収集手段33dは、全ての投稿情報に関する素材IDの情報を集めた場合、次は、投稿情報蓄積サーバ20に新たに蓄積された投稿情報に関してのみ素材IDの収集を行うことができる。これにより、毎回全ての投稿情報に関する素材IDの情報を収集して集計する場合に比べ、投稿情報蓄積サーバ20および投稿情報インデックスサーバ30の処理負荷や通信負荷などを低減することができる。
【0108】
収集手段33dは、例えば、投稿IDが「100000」までの素材IDを収集して集計している場合、投稿IDが「100000」よりも大きい投稿IDの投稿情報に関する素材IDの情報を投稿情報蓄積サーバ20へ要求する。そして、収集手段33dは、この要求に対して投稿情報蓄積サーバ20から送信される情報に基づいて、投稿情報インデックスデータベース32に蓄積された集計情報を更新する。
【0109】
例えば、ユーザID「283」に関する集計結果として、上述のように、素材ID「837457」の投稿件数が「3」であり、素材ID「257638」の投稿件数が「2」であるとする。そして、投稿IDが「100000」よりも大きい投稿IDの投稿情報のうちユーザID「283」に関する投稿情報の素材IDの情報として、「837457」,「837457」,「257638」が投稿情報蓄積サーバ20から送信されたとする。この場合、収集手段33dは、ユーザID「283」に関する集計結果を、素材ID「837457」の投稿件数が「5」であり、素材ID「257638」の投稿件数を「3」へ更新する。
【0110】
記憶処理手段33eは、収集手段33dの集計結果を投稿情報インデックスデータベース32に蓄積する。これにより、例えば、図7の(A)や(B)に示すような素材IDの集計情報が投稿情報インデックスデータベース32に蓄積される。
【0111】
以上のように構成された投稿情報蓄積サーバ20の具体的動作について図8を用いて説明する。図8は、投稿情報蓄積サーバ20の制御部23が実行する処理手順を示すフローチャートである。
【0112】
この処理は、繰り返し行われる処理であり、制御部23を構成するCPUがフラッシュメモリに記憶されたプログラムに基づき処理を行なって実行されるが、図4に示した機能ブロックとの関係を分かりやすくする為、便宜的に各機能ブロックが実行するという表現を用いて説明する。
【0113】
図8に示すように、投稿情報蓄積サーバ20において、受付手段23bは、アプリケーションサーバ10から投稿情報を受け付けたか否かを判定する(ステップS10)。この処理において、投稿情報を受け付けたと判定すると(ステップS10,Yes)、受付手段23bは、受け付けた投稿情報が蓄積すべき範囲のものであるか否かを判定する(ステップS11)。
【0114】
受付手段23bによって受け付けた投稿情報が蓄積すべき範囲のものである場合(ステップS11,Yes)、記憶処理手段23cは、受け付けた投稿情報に投稿IDを関連づけて投稿情報データベース22に蓄積する(ステップS12)。また、送信手段23eは、投稿情報のレプリカ(複製)を他の投稿情報蓄積サーバ20へ送信して蓄積させる(ステップS13)。
【0115】
ステップS11において、受付手段23bによって受け付けた投稿情報が蓄積すべき範囲のものでない場合(ステップS11,No)、送信手段23eは、受付手段23bによって受け付けた投稿情報を他の投稿情報蓄積サーバ20へ転送する(ステップS14)。
【0116】
また、ステップS10において、投稿情報を受け付けていないと判定すると(ステップS10,No)、受付手段23bは、投稿情報インデックスサーバ30から検索要求信号を受け付けたか否かを判定する(ステップS15)。この処理において、検索要求信号を受け付けたと判定されると(ステップS15,Yes)、取得手段23dは、検索要求信号に含まれる検索内容に応じた情報(検索結果情報)を投稿情報データベース22から取得し、送信手段23eは、検索結果情報を投稿情報インデックスサーバ30へ送信する(ステップS16)。
【0117】
さらに、送信手段23eは、ステップS16で検索する投稿情報のレプリカを有する他の投稿情報蓄積サーバ20に対して投稿情報インデックスサーバ30へレプリカを送信するように要求し、他の投稿情報蓄積サーバ20から投稿情報インデックスサーバ30へ複製を送信させる(ステップS17)。
【0118】
一方、ステップS15において、投稿情報インデックスサーバ30から検索要求信号を受け付けていないと判定すると(ステップS15,No)、制御部23はその他の要求に応じた処理を行う(ステップS18)。ステップS13、S14、S17,S18の処理が終了したとき、図8に示す処理を終了する。
【0119】
次に、投稿情報インデックスサーバ30の具体的動作について図9を用いて説明する。図9は、投稿情報インデックスサーバ30の制御部33が実行する処理手順を示すフローチャートである。
【0120】
この処理は、繰り返し行われる処理であり、制御部33を構成するCPUがフラッシュメモリに記憶されたデータベース管理プログラムに基づき処理を行なって実行されるが、図6に示した機能ブロックとの関係を分かりやすくする為、便宜的に各機能ブロックが実行するという表現を用いて説明する。
【0121】
図9に示すように、投稿情報インデックスサーバ30において、収集手段33dは、情報収集契機になったか否かを判定する(ステップS20)。例えば、収集手段33dは、所定期間(例えば、5秒毎)に情報収集契機となったと判定する。
【0122】
この処理において、情報収集契機になったと判定すると(ステップS20,Yes)、収集手段33dは、情報収集契機となったと判定した集計情報を生成又は更新するための素材IDの情報を投稿情報蓄積サーバ20へ要求する(ステップS21)。収集手段33dは、投稿情報蓄積サーバ20から素材IDの情報を収集すると、素材IDの情報を集計して集計情報を生成又は更新する(ステップS22)。そして、記憶処理手段33eは、収集手段によって生成又は更新された集計情報を投稿情報インデックスデータベース32に蓄積する(ステップS23)。
【0123】
なお、上述のように投稿情報蓄積サーバ20には、レプリカ(複製)を生成して分散して蓄積され、複製も投稿情報インデックスサーバ30へ送信される。収集手段33dは、レプリカを含めた同一の情報のうち最新の情報を選択して集計処理に用いる。投稿情報インデックスサーバ30で管理される情報にはタイムスタンプ(時間情報)が付加されており、収集手段33dは、タイムスタンプを参照して最新の情報かどうかの判断を行う。
【0124】
ステップS20において、情報収集契機となっていないと判定すると(ステップS20、No)、受付手段33cは、アプリケーションサーバ10から情報要求信号を受け付けたか否かを判定する(ステップS24)。この処理において、情報要求信号を受け付けたと判定すると(ステップS24,Yes)、受付手段33cは、投稿情報インデックスデータベース32から情報要求信号に対応する集計情報を読み出し、送信手段33aによってアプリケーションサーバ10へ送信する(ステップS25)。
【0125】
一方、ステップS24において、情報要求信号を受け付けていないと判定すると(ステップS24、No)、制御部23はその他の要求に応じた処理を行う(ステップS26)。ステップS23、S25、S26の処理が終了したとき、図9に示す処理を終了する。
【0126】
このように本実施形態に係る投稿情報インデックスサーバ30の制御部33は、データベース管理装置として、投稿情報データベース22(第1データベースの一例に相当)によって管理される情報を取得して投稿情報インデックスデータベース32(第2データベースの一例に相当)により管理させる。
【0127】
投稿情報データベース22は、投稿文と当該投稿文に対して設定された画像の情報とを要素に含む投稿情報を受け付ける毎に、投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースである。
【0128】
そして、投稿情報インデックスサーバ30の制御部33は、投稿情報データベース22によって管理される投稿情報の要素のうち、素材IDの情報を収集し、収集した素材IDの情報を集計した集計情報を投稿情報インデックスデータベース32に記憶する。そして、制御部33は、投稿情報インデックスデータベース32に記憶された集計情報を外部装置からの要求に応じて外部装置へ送信する。
【0129】
したがって、キーバリュー型の投稿情報データベース22において記憶される投稿情報のうち投稿文に設定される素材画像別の投稿数などの集計情報を投稿情報インデックスデータベース32から容易に検索することができる。しかも、外部装置からの要求毎に投稿情報データベース22を検索する必要がないため、投稿情報データベース22の低下を防止することが可能となる。
【0130】
上述においては、投稿情報インデックスサーバ30が収集して蓄積する情報として素材IDの集計情報を一例として説明したが、例えば、収集手段33dによって収集した素材IDの情報を集計することなくそのまま投稿情報インデックスデータベース32へ記憶処理手段33eによって蓄積するようにしてもよい。また、集計結果と共に素材IDの情報を投稿情報インデックスデータベース32へ記憶処理手段33eによって蓄積するようにしてもよい。この場合、アプリケーションサーバ10は投稿情報インデックスサーバ30から素材IDの情報を収集し、集計して端末装置40へ送信することができる。
【0131】
[3.その他の実施形態]
上述では、投稿情報インデックスサーバ30の制御部33は、投稿情報データベース22によって管理される投稿情報の要素である素材IDの情報を投稿情報データベース22から検索して収集する例を示したが、収集方法はこれに限られない。以下、具体的に説明する。
【0132】
(他の実施形態1)
まず、他の実施形態1について説明する。この実施形態では、投稿情報蓄積サーバ20が投稿情報を受け付けた場合に、投稿情報データベース22へ蓄積すると共に、投稿情報インデックスサーバ30へ送信する。これにより、投稿情報データベース22からの検索を必要としないため、投稿情報データベース22での処理負荷を軽減することができ、また、投稿情報データベース22のパフォーマンスの低下を防止することが可能となる。さらに、投稿情報データベース22に蓄積される投稿情報とリアルタイムに同期させ、投稿情報インデックスデータベース32の更新を行うことができる。
【0133】
具体的には、投稿情報蓄積サーバ20の受付手段23bは、受信手段23aによって受信した投稿情報が蓄積すべき範囲のものであると判定すると、この投稿情報を投稿情報インデックスサーバ30へ送信手段23eから送信させる。これにより、投稿情報データベース22を検索することなく、投稿情報データベース22に蓄積される投稿情報を投稿情報インデックスサーバ30へ送信できる。なお、投稿情報インデックスサーバ30への投稿情報の送信処理は、例えば、図8に示すステップS12の処理の前に行う。
【0134】
投稿情報インデックスサーバ30の受付手段33cは、投稿情報蓄積サーバ20から送信される投稿情報を受け付け、収集手段33dによって素材IDの集計処理を行う。この場合の処理を、図10を用いて説明する。図10は、投稿情報インデックスサーバ30の制御部33が実行する他の処理手順を示すフローチャートである。なお、図10に示すステップS23〜26の処理は図9に示すS23〜S26の処理と同様であり、ここでは説明を省略する。
【0135】
投稿情報インデックスサーバ30において、受付手段33cは、投稿情報蓄積サーバ20から送信される投稿情報を受け付けたか否かを判定する(ステップS20’)。この処理において、受付手段33cが投稿情報を受け付けたと判定すると(ステップS20’,Yes)、収集手段33dは、受付手段33cが受け付けた投稿情報からユーザIDと素材IDとを抽出し、これらの情報に関連付けられた投稿件数を投稿情報インデックスデータベース32から読み出し、1だけ加算して投稿件数を更新する(ステップS22’)。そして、記憶処理手段33eは、収集手段33dによって更新された投稿件数によって投稿情報インデックスデータベース32の更新を行う(ステップS23)。
【0136】
例えば、受け付けた投稿情報がユーザID「555」からの投稿情報で、かつ素材IDが「543228」であり、また、図7の(A)に示すように、ユーザID「555」のユーザが使用した素材ID別の投稿件数が投稿情報インデックスデータベース32に蓄積されているとする。この場合、収集手段33dは、ユーザID「555」に関連づけられた素材IDの投稿件数に1を加算して「11」として集計結果を更新する。そして、記憶処理手段33eは、収集手段33dによって更新された集計結果によって投稿情報インデックスデータベース32の更新を行う。
【0137】
なお、受付手段33cが受け付けた投稿情報から抽出したユーザIDと素材IDとに関連付けられた投稿件数がない場合には、収集手段33dは、抽出した素材IDの投稿数を「1」とした新たな集計情報を生成し、記憶処理手段33eによって、投稿情報インデックスデータベース32の更新を行う。
【0138】
また、投稿情報インデックスサーバ30は、投稿文や投稿種別などの情報は必要ないため、例えば、ユーザIDおよび素材IDのみを取得するようにし、これらの情報に基づいて集計処理を行うことが望ましい。これにより、投稿情報蓄積サーバ20は、投稿情報を全て送信する必要が無く、ユーザIDと素材IDだけを送信すればよいため、投稿情報蓄積サーバ20と投稿情報インデックスサーバ30との間の通信負荷が軽減される。
【0139】
また、投稿情報インデックスサーバ30は、投稿情報蓄積サーバ20から送信される投稿情報を受け付けた場合に、収集手段33dによって素材IDの集計処理を行うようにしたが、受け付けた投稿情報を図示しない記憶部に蓄積し、アプリケーションサーバ10から情報要求信号を受け付けた場合に、収集手段33dによって素材IDの集計処理を行うようにしてもよい。
【0140】
(他の実施形態2)
次に、他の実施形態2について説明する。この実施形態では、投稿情報蓄積サーバ201〜20nにおいて、投稿情報データベース22に蓄積されたデータから検索用データを生成し、この検索用データを投稿情報インデックスサーバ30で取得するようにする。
【0141】
以下、他の実施形態2に係る投稿情報蓄積サーバの構成について説明する。図11は、他の実施形態2に係る投稿情報蓄積サーバ20のブロック図である。以下においては、図2に示す投稿情報蓄積サーバ20に対して追加される機能を主として説明する。
【0142】
図11に示すように、他の実施形態2に係る投稿情報蓄積サーバ20には、記憶部24が配置され、さらに、取得手段23d'は、図2に示す取得手段23dの機能に加え、検索用データの生成処理などを行う機能を有している。
【0143】
例えば、各投稿情報蓄積サーバ20の取得手段23d'は、投稿情報データベース22のデータを記憶部24へダンプする処理を実行する。具体的には、取得手段23d’は、投稿情報データベース22に蓄積された全ての投稿情報を丸ごと読み出して、ダンプファイルとして記憶部24へ記憶する。取得手段23d'は、このダンプ処理を定期的(例えば、1日に1回)に行う。
【0144】
このように記憶部24に記憶したダンプファイルには、オリジナル(マスター)とレプリカ(複製)とが混在している。そのため、取得手段23d'は、記憶部24に記憶したダンプファイルからオリジナルのみを抽出し、検索用サブデータとして記憶部24に記憶する。
【0145】
また、投稿情報のオリジナルは、複数の投稿情報蓄積サーバ201〜20nの投稿情報データベース22に分散されて記憶されているため、予め特定された一つの投稿情報蓄積サーバ20(以下、「特定の投稿情報蓄積サーバ20」と記載する)の取得手段23d'は、他の全ての投稿情報蓄積サーバ20から検索用サブデータを収集する。そして、特定の投稿情報蓄積サーバ20の取得手段23d'は、生成した検索用サブデータと収集した検索用サブデータとをマージ(結合)して、検索用データを生成する。
【0146】
具体的には、特定の投稿情報蓄積サーバ20の取得手段23d'は、送信手段23eから他の全ての投稿情報蓄積サーバ20に対して、検索用サブデータの送信要求を行う。そして、特定の投稿情報蓄積サーバ20の取得手段23d’は、この送信要求に対して他の投稿情報蓄積サーバ20から送信され受付手段23bで受け付けた検索用サブデータを記憶部24に記憶する。このようにすることで、特定の投稿情報蓄積サーバ20の記憶部24に投稿情報蓄積サーバ201〜20nの検索用サブデータが記憶される。そして、特定の投稿情報蓄積サーバ20の取得手段23d’は、記憶部24に記憶した投稿情報蓄積サーバ201〜20nの検索用サブデータをマージ(結合)して、検索用データを生成する。取得手段23d'は、このように生成した検索用データを投稿情報インデックスサーバ30へ送信する。
【0147】
また、投稿情報蓄積サーバ20の取得手段23d'は、ダンプ処理よりも短い時間間隔で検索用サブデータの差分検出処理を行う。具体的には、各投稿情報蓄積サーバ20の取得手段23d’は、定期的(例えば、10分毎)に、投稿情報データベース22に新たに追加された投稿情報を検索キーによって読み出し、読み出した投稿情報のうちオリジナルのみを抽出し、差分データとして記憶部24に記憶する。そして、検索用サブデータの場合と同様に、特定の投稿情報蓄積サーバ20の取得手段23d'は、他の全ての投稿情報蓄積サーバ20から差分データを収集し、これらの差分データと生成した差分データとをマージ(結合)して、検索用差分データを生成する。取得手段23d'は、このように生成した検索用差分データを投稿情報インデックスサーバ30へ送信する。
【0148】
投稿情報インデックスサーバ30は、特定の投稿情報蓄積サーバ20から検索用データや検索用差分データを取得し、これらのデータから投稿情報の素材IDを抽出する。具体的には、投稿情報インデックスサーバ30の収集手段33dは、図示しない内部の記憶部に検索用データや検索用差分データを記憶しておき、アプリケーションサーバ10から情報要求信号を受け付けた場合に、素材IDの集計処理を行う。なお、収集手段33dは、検索用差分データを検索用データにマージ(結合)して内部の記憶部に記憶した検索用データを更新する。また、収集手段33dは、新たに検索用データを収集した場合、内部の記憶部に記憶した古い検索用データは消去する。
【0149】
ここでは、収集手段33dは、アプリケーションサーバ10から情報要求信号を受け付けた場合に、素材IDの集計処理を行うようにしたが、検索用データや検索用差分データを受け付けた場合に、受け付けたデータに基づいて収集手段33dによって素材IDの集計処理を行うようにしてもよい。
【0150】
このように、投稿情報蓄積サーバ20のそれぞれにバッチ処理を行う機能を持たせることにより、新たな投稿情報が発生する毎に処理を行う必要が無いため、リアルタイムで同期する必要がない場合に有効である。
【0151】
なお、上述においては、特定の投稿情報蓄積サーバ20から検索用データや検索用差分データを送信するようにしたが、投稿情報インデックスサーバ30からの検索要求信号に応じて特定の投稿情報蓄積サーバ20が検索用データや検索用差分データから検索結果情報を抽出して投稿情報インデックスサーバ30へ送信するようにしてもよい。この場合、受付手段23bは、投稿情報インデックスサーバ30からの検索要求信号が受信手段23aによって受信された場合、検索要求信号に含まれる検索内容の情報を取得手段23d’へ出力する。取得手段23d’は、受付手段23bから出力された検索内容の情報が投稿情報インデックスサーバ30からの要求である場合、投稿情報データベース22ではなく記憶部24に記憶した検索用データや検索用差分データから検索内容に応じた情報(検索結果情報)を取得する。そして。送信手段23eは、取得手段23dによって取得された検索結果情報を投稿情報インデックスサーバ30へ送信する。なお、特定の投稿情報蓄積サーバ20だけでなく、全ての投稿情報蓄積サーバ201〜20nが検索用データや検索用差分データを生成するようにしてもよい。
【0152】
なお、上述の実施形態(他の実施形態1,2を含む)においては、アプリケーションサーバ10が投稿情報インデックスサーバ30へ集計結果などを要求して取得するようにしたが、例えば、端末装置40が投稿情報インデックスサーバ30へ集計結果などを要求して取得するようにしてもよい。
【0153】
なお、上述の実施形態(他の実施形態1,2を含む)では、投稿情報インデックスサーバ30が収集する投稿情報の要素として、素材IDを一例に挙げて説明したが、これに限られず、投稿情報データベース22において複数のキーに関連づけられる投稿情報の要素であればどのようなものであってもよい。例えば、投稿された文章に含まれる特定の語句をバリューとして、投稿情報データベース22で管理させる場合、特定の語句を投稿情報インデックスサーバ30が収集する投稿情報の要素とすることができる。
【0154】
以上、本発明の実施の形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【符号の説明】
【0155】
10 アプリケーションサーバ
20(201〜20n) 投稿情報蓄積サーバ
30 投稿情報インデックスサーバ
40(401〜40n) 端末装置
33a 送信手段
33b 受信手段
33c 受付手段
33d 収集手段
33e 記憶処理手段

【特許請求の範囲】
【請求項1】
キーバリュー型の第1データベースによって管理される情報を取得して非キーバリュー型の第2データベースにより管理させるデータベース管理装置であって、
前記第1データベースは、複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける毎に、前記投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースであり、
前記第1データベースによって管理される前記投稿情報の要素のうち、前記特定種類の情報を収集する収集手段と、
前記収集手段によって収集した前記特定種類の情報又は当該特定種類の情報に基づく情報を前記第2データベースに記憶させる記憶処理手段と、
前記記憶処理手段によって前記第2データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する送信手段と
を備えたことを特徴とするデータベース管理装置。
【請求項2】
前記収集手段は、
前記第1データベースから前記特定種類の情報を収集することを特徴とする請求項1に記載のデータベース管理装置。
【請求項3】
前記収集手段は、
外部装置から前記第1データベースへ記憶させる前記特定種類の情報が送信された場合に、当該特定種類の情報を収集することを特徴とする請求項1に記載のデータベース管理装置。
【請求項4】
前記記憶処理手段は、
前記特定種類の情報を集計した情報を、前記特定種類の情報に基づく情報として前記第2データベースに記憶させることを特徴とする請求項1〜3のいずれか1項に記載のデータベース管理装置。
【請求項5】
前記投稿情報の要素は、
複数の前記第2データベースによって分散管理され、
前記複数の第2データベースは、
前記投稿情報の各要素について、同一の情報を分散して複数記憶しており、
前記収集手段は、
前記同一の情報のうち最新の情報の中から、前記特定種類の情報を収集することを特徴とする請求項1〜4のいずれか1項に記載のデータベース管理装置。
【請求項6】
キーバリュー型の第1データベースによって管理される情報を取得して非キーバリュー型の第2データベースにより管理させる処理をコンピュータに実行させるデータベース管理プログラムであって、
前記第1データベースは、複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける毎に、前記投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースであり、
前記第1データベースによって管理され前記投稿情報の要素のうち、前記特定種類の情報を収集し、
前記収集した前記特定種類の情報又は当該特定種類の情報に基づく情報を前記第2データベースに記憶し、
前記第2データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する処理を前記コンピュータに実行させることを特徴とするデータベース管理プログラム。
【請求項7】
コンピュータを制御し、キーバリュー型の第1データベースによって管理される情報を取得して非キーバリュー型の第2データベースにより管理させるデータベース管理方法であって、
前記第1データベースは、複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける毎に、前記投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースであり、
前記第1データベースによって管理され前記投稿情報の要素のうち、前記特定種類の情報を収集する手順と、
前記収集した前記特定種類の情報又は当該特定種類の情報に基づく情報を前記第2データベースに記憶する手順と、
前記第2データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する送信手順とを含むことを特徴とするデータベース管理方法。
【請求項8】
キーバリュー型の第1データベースと、非キーバリュー型の第2データベースを有するデータベース管理装置とを備えたデータベース管理システムにおいて、
前記第1データベースは、
複数のユーザがそれぞれ用いる外部装置から、特定種類の情報を要素に含む投稿情報を受け付ける毎に、前記投稿情報の要素をそれぞれ複数の検索キーに関連付けて蓄積するデータベースであり、
前記データベース管理装置は、
前記第1データベースに蓄積される前記投稿情報の要素のうち、前記特定種類の情報を収集する収集手段と、
前記収集手段によって収集した前記特定種類の情報又は当該特定種類の情報に基づく情報を前記第2データベースに記憶させる記憶処理手段と、
前記記憶処理手段によって前記第2データベースに記憶された情報を外部装置からの要求に応じて前記外部装置へ送信する送信手段と
を備えたことを特徴とするデータベース管理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate