(57)【特許請求の範囲】
【請求項１】
変動側サーバが分散管理する第１データベース群に対する変動が変動連携サーバによって連携される第２データベース群を分散管理する参照側サーバであって、
前記第１データベース群の中の変動した項目を識別する識別情報を前記変動連携サーバから受信し、受信した前記識別情報に基づいて、前記識別情報が識別する前記変動した項目以外に前記第２データベース群を変動するために必要な前記第１データベース群の中の項目を特定する要求特定部と、
前記変動側サーバに対して、前記識別情報が識別する項目及び前記要求特定部が特定した前記項目の情報を要求する変動内容要求部と、
前記変動内容要求部が要求した前記情報に基づいて、前記第２データベース群を変動する変動部と、
を備える参照側サーバ。
【請求項２】
変動側サーバが分散管理する第１データベース群に対する変動を、参照側サーバが分散管理する第２データベース群に連携させる変動連携システムであって、
変動連携サーバと、前記参照側サーバと、を含んで構成され、
前記変動連携サーバは、
前記変動側サーバから前記第１データベース群が変動するたびに送信される前記第１データベース群の中の変動した項目を識別する識別情報を受信すると、当該識別情報を前記変動が行われた時間に関連付けて変動情報データベースに記憶する変動情報管理部と、
前記参照側サーバから、所定期間内に行われた前記第１データベース群の変動に関する情報の要求を受信したことに応じて、前記変動情報データベースに記憶された前記時間を参照して前記変動情報データベースから前記所定期間内の前記識別情報を特定する変動情報特定部と、
前記変動情報特定部が特定した前記識別情報を前記参照側サーバに送信する変動情報送信部と、
を備え、
前記参照側サーバは、
前記変動連携サーバから受信した前記識別情報に基づいて、前記識別情報が識別する前記変動した項目以外に前記第２データベース群を変動するために必要な前記第１データベース群の中の項目を特定する要求特定部と、
前記変動側サーバに対して、前記識別情報が識別する項目及び前記要求特定部が特定した前記項目の情報を要求する変動内容要求部と、
前記変動内容要求部が要求した前記情報に基づいて、前記第２データベース群を変動する変動部と、
を備える変動連携システム。
【請求項３】
前記変動連携サーバの前記変動情報特定部は、前記所定期間内に同一の識別情報が複数記憶されている場合には、１の前記識別情報のみを前記所定期間内の識別情報として特定する、
請求項２に記載の変動連携システム。
【請求項４】
変動側サーバが分散管理する第１データベース群に対する変動が変動連携サーバによって連携される第２データベース群を分散管理する参照側サーバが実行する方法であって、
前記第１データベース群の中の変動した項目を識別する識別情報を前記変動連携サーバから受信し、受信した前記識別情報に基づいて、前記識別情報が識別する前記変動した項目以外に前記第２データベース群を変動するために必要な前記第１データベース群の中の項目を特定する要求特定工程と、
前記変動側サーバに対して、前記識別情報が識別する項目及び前記要求特定工程において特定した前記項目の情報を要求する変動内容要求工程と、
前記変動内容要求工程において要求した前記情報に基づいて、前記第２データベース群を変動する変動工程と、
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変動側サーバが分散管理する第１データベース群に対する変動を、参照側サーバが分散管理する第２データベース群に連携させる参照側サーバ、変動連携サーバ、変動連携システム及び方法に関する。
【背景技術】
【０００２】
多種多様な情報が存在する近年では、ユーザが所望する情報を検索するための検索技術が必須となっている。例えば、検索システムは、ネットワーク上のホームページを検索するホームページ検索やショッピングサイトなどのサイト内で商品を検索するサイト内検索のように様々な場面で用いられている。
【０００３】
このような検索システムでは、検索対象となる情報を網羅的にマスターＤＢ（ＤＢ＝データベース、以下同じ）に記憶しておく一方で、マスターＤＢに記憶された情報のうち検索に利用される頻度の高い情報にインデックス（索引）を付しインデックスＤＢに記憶しておくことで検索の利便性を高めている。
【０００４】
ここで、検索システムの規模が大きくなると取り扱う情報が膨大な量になるため、システム全体のパフォーマンスの観点から、マスターＤＢ及びインデックスＤＢの夫々を複数のサーバで分散管理することが一般的に行われている。
この点、例えば、特許文献１には、インデックス検索の分散処理の適正化を図る情報検索装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１２２９３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、このような検索システムでは、検索対象の情報を記憶するマスターＤＢに変動があった場合には、この変動をインデックスＤＢに対して反映するためにマスターＤＢの変動内容をインデックスＤＢに対して送信する必要がある。しかしながら、検索システムは、マスターＤＢ及びインデックスＤＢの夫々を複数のサーバで分散管理しており、１のマスターＤＢに変動があるたびに複数のインデックスＤＢに対して反映内容を送信していたのでは、処理が煩雑になり好ましくない。すなわち、マスターＤＢとインデックスＤＢとは目的の相違から構成が異なる場合もあり、その変動処理は同様の処理負荷で実施できるとは限らないため、インデックスＤＢの変動処理は、マスターＤＢの変動処理と切り離して非同期に行うことが望ましいが、当該非同期の変動処理が煩雑にならないようにする必要がある。
【０００７】
そこで、本発明は、変動側サーバが分散管理する第１データベース群に対する変動を、煩雑な処理を必要とすることなく参照側サーバが分散管理する第２データベース群に連携させることを目的とする。
【課題を解決するための手段】
【０００８】
（１）  変動側サーバが分散管理する第１データベース群に対する変動を、参照側サーバが分散管理する第２データベース群に連携させる変動連携サーバであって、前記変動側サーバから前記第１データベース群が変動するたびに送信される前記第１データベース群の中の変動した項目を識別する識別情報を受信すると、当該識別情報を前記変動が行われた時間に関連付けて変動情報データベースに記憶する変動情報管理部と、前記参照側サーバから、所定期間内に行われた前記第１データベース群の変動に関する情報の要求を受信したことに応じて、前記変動情報データベースに記憶された前記時間を参照して前記変動情報データベースから前記所定期間内の前記識別情報を特定する変動情報特定部と、前記変動情報特定部が特定した前記識別情報を前記参照側サーバに送信する変動情報送信部と、を備える変動連携サーバ。
【０００９】
（２）  前記変動情報特定部は、前記所定期間内に同一の識別情報が複数記憶されている場合には、１の前記識別情報のみを前記所定期間内の識別情報として特定する、（１）に記載の変動連携サーバ。
【００１０】
（３）  変動側サーバが分散管理する第１データベース群に対する変動を、参照側サーバが分散管理する第２データベース群に連携させる変動連携システムであって、変動連携サーバと、前記参照側サーバと、を含んで構成され、前記変動連携サーバは、前記変動側サーバから前記第１データベース群が変動するたびに送信される前記第１データベース群の中の変動した項目を識別する識別情報を受信すると、当該識別情報を前記変動が行われた時間に関連付けて変動情報データベースに記憶する変動情報管理部と、前記参照側サーバから、所定期間内に行われた前記第１データベース群の変動に関する情報の要求を受信したことに応じて、前記変動情報データベースに記憶された前記時間を参照して前記変動情報データベースから前記所定期間内の前記識別情報を特定する変動情報特定部と、前記変動情報特定部が特定した前記識別情報を前記参照側サーバに送信する変動情報送信部と、を備え、前記参照側サーバは、前記変動連携サーバから受信した前記識別情報に基づいて、前記識別情報が識別する前記変動した項目以外に前記第２データベース群を変動するために必要な前記第１データベース群の中の項目を特定する要求特定部と、前記変動側サーバに対して、前記識別情報が識別する項目及び前記要求特定部が特定した前記項目の情報を要求する変動内容要求部と、前記変動内容要求部が要求した前記情報に基づいて、前記第２データベース群を変動する変動部と、を備える変動連携システム。
【００１１】
（４）  前記変動連携サーバの前記変動情報特定部は、前記所定期間内に同一の識別情報が複数記憶されている場合には、１の前記識別情報のみを前記所定期間内の識別情報として特定する、（３）に記載の変動連携システム。
【００１２】
（５）  変動側サーバが分散管理する第１データベース群に対する変動を、参照側サーバが分散管理する第２データベース群に連携させる方法であって、コンピュータが実行する、前記変動側サーバから前記第１データベース群が変動するたびに送信される前記第１データベース群の中の変動した項目を識別する識別情報を受信すると、当該識別情報を前記変動が行われた時間に関連付けて変動情報データベースに記憶するステップと、前記参照側サーバから、所定期間内に行われた前記第１データベース群の変動に関する情報の要求を受信したことに応じて、前記変動情報データベースに記憶された前記時間を参照して前記変動情報データベースから前記所定期間内の前記識別情報を特定するステップと、特定した前記識別情報を前記参照側サーバに送信するステップと、を含む方法。
【発明の効果】
【００１３】
本発明によれば、変動側サーバが分散管理する第１データベース群に対する変動を、煩雑な処理を必要とすることなく参照側サーバが分散管理する第２データベース群に連携させることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の変動連携サーバを含む検索システムの概要を示す図である。
【図２】上記検索システムの機能構成を示すブロック図である。
【図３】マスターＤＢの構成を示す図である。
【図４】変動情報ＤＢの構成を示す図である。
【図５】インデックスファイルの構成を示す図である。
【図６】変動情報と要求先との対応関係を示す図である。
【図７】マスターＤＢの変動をインデックスファイルに反映させる際の具体例を示す図である。
【図８】上記検索システムの処理の流れを示すフローチャートである。
【図９】上記検索システムの処理の流れを示すフローチャートである。
【図１０】上記検索システムの動作を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について図面を参照して説明する。なお、以下の実施形態では、検索システム１００におけるＤＢサーバ２とインデックスサーバ３との間の連携を行う変動連携サーバ１を例にとり本発明を説明するが、本発明は、検索システム１００以外の他のシステムに対しても適用することができる。すなわち、本発明は、１のデータベース群の変動を他のデータベース群に連携するためのものであり、検索システム１００は、その一例に過ぎない。
【００１６】
［変動連携サーバ１の概要］
図１を参照して、本発明の変動連携サーバ１を含む検索システム１００の全体構成を説明することで、本発明の変動連携サーバ１の概要について説明する。
検索システム１００は、ユーザからの検索要求に応じて所定の検索結果を返信する検索システムであり、例えば、本実施形態では、ショッピングサイトにおいてサイト内検索を行うための検索システムである。検索システム１００は、本発明の変動連携サーバ１と、ＤＢサーバ２と、インデックスサーバ３と、を含んで構成される。なお、本発明の変動連携サーバ１と、インデックスサーバ３とは、本発明の変動連携システム１Ａを構成することができる。
【００１７】
ＤＢサーバ２は、検索システム１００において、検索対象となる情報を網羅的に記憶するマスターＤＢ２２を分散管理するサーバ群である。すなわち、１のＤＢサーバ２と他のＤＢサーバ２とでは、夫々異なるマスターＤＢ２２を管理する。もちろん、システムの安全設計上、複数のＤＢサーバ２で同一のマスターＤＢ２２を管理することを妨げるものではない。
なお、マスターＤＢ２２は、図３で後述するように情報の集合をテーブル形式で管理するリレーショナルデータベースであり、本発明の第１データベース群に相当する。
【００１８】
インデックスサーバ３は、検索システム１００において、ユーザからの検索要求に対する検索結果を迅速に返信するためのインデックスファイル３６を分散管理するサーバ群である。すなわち、１のインデックスサーバ３と他のインデックスサーバ３とでは、夫々異なるインデックスファイル３６を管理する。もちろん、システムの安全設計上、複数のインデックスサーバ３で同一のインデックスファイル３６を管理することを妨げるものではない。
なお、インデックスファイル３６は、図５で後述するように検索に利用される頻度の高い単語（検索キー）毎に予め検索結果（値）を規定しておく。このようなインデックスファイル３６は、マスターＤＢ２２とは異なる構造を有し、本実施形態では例えば、Ｂ＋木構造により生成されることとしている。インデックスファイル３６は、本発明の第２データベース群に相当する。
【００１９】
変動連携サーバ１は、ＤＢサーバ２が管理するマスターＤＢ２２の変動をインデックスサーバ３が管理するインデックスファイル３６に反映させることを助長する。
ここで、検索システム１００では、マスターＤＢ２２を複数のＤＢサーバ２で分散管理することとし、また、マスターＤＢ２２の変動を反映させるインデックスファイル３６も複数のインデックスサーバ３で分散管理することとしている。そのため、マスターＤＢ２２で変動があるたびに当該変動をインデックスサーバ３へ送信したのでは、変動内容受信部ず、１のインデックスサーバ３には複数のＤＢサーバ２から頻繁に情報が送信されることになる。その結果、検索システム１００内において多くの情報が送信されることになり、検索システム１００のパフォーマンスが低下するおそれがある。すなわち、検索対象となる情報を網羅的に記憶するマスターＤＢ２２はリレーショナルデータベースとして構成され、検索に利用される頻度の高い単語（検索キー）毎に予め検索結果（値）を規定しておくインデックスファイル３６はＢ＋木構造を有し、それぞれ構成が異なる。そのため、リレーショナルデータベースの変動処理と比較して相対的に処理負荷が大きいＢ＋木構造の変動処理を同時に行うと、あるインデックスファイル３６の変動処理が完了しない間にその次の変動処理を行う必要が生じて処理の待ち行列が収束できなくなる場合も想定され、検索システム１００全体のパフォーマンスが低下することになる。
そこで、本発明の変動連携サーバ１は、ＤＢサーバ２からマスターＤＢ２２に変動があったことをプッシュ通知により受け付けておき、その後、インデックスサーバ３からの要求に応じて、インデックスサーバ３に対して当該変動を通知することとしている。これにより、ＤＢサーバ２は、変動連携サーバ１に変動があったことを通知しておくだけで足り、また、インデックスサーバ３は、ＤＢサーバ２における変動のタイミングに関わらず自らのタイミングで非同期にインデックスファイル３６を変動させることができる。
【００２０】
［検索システム１００の構成］
続いて、図２を参照して、本発明の変動連携サーバ１を含む検索システム１００の機能構成を説明する。
【００２１】
［ＤＢサーバ２の構成］
複数のＤＢサーバ２の夫々は、レコード変動部２１と、マスターＤＢ２２と、変動情報送信部２３と、要求受付部２４と、変動内容送信部２５と、を含んで構成される。
【００２２】
レコード変動部２１は、マスターＤＢ２２に対する所定の変動要求を受け付けると、当該変動要求に従い、マスターＤＢ２２を更新する。なお、所定の変動要求とは、例えば、検索システム１００の管理者による変動要求や、ショッピングサイト内における売買結果に基づく変動要求など任意のものを採用することができる。
【００２３】
マスターＤＢ２２は、ショッピングサイトにおける各種情報を分散管理するリレーショナルデータベースである。ここで、マスターＤＢ２２の一例を図３に示す。図３（１）は、ショッピングサイトに出店する店舗情報を管理するショップＤＢであり、図３（２）は、ショッピングサイトで取り扱われる商品を管理する商品ＤＢであり、図３（３）は、ショッピングサイトで取り扱われる商品の在庫を管理する在庫ＤＢである。これらショップＤＢ、商品ＤＢ、在庫ＤＢの夫々は、ＤＢＩＤにより識別され、夫々異なるＤＢサーバ２に管理されている。
なお、本実施形態では、マスターＤＢ２２を構成する行をレコードと呼ぶとともに列をカラムと呼び、レコード及びカラムにより特定されるものを項目と呼ぶ。すなわち、図３（１）における項目２２１は、「レコード：０１２３、カラム：ショップ名」で特定される項目である。また、図３において、項目中に「⇒」と表記しているものは、変動があったことを示している。すなわち、項目２２１は、ショップ名が「Ａ商店」から「Ａ´商店」に変動したことを意味し、項目２２２は、商品ＩＤ「９９９９（携帯電話Ａ）」の在庫が「１０個」から「９個」、「８個」に変動した後「１０８個」に変動したことを意味する。
【００２４】
変動情報送信部２３は、レコード変動部２１がマスターＤＢ２２を変動するたびに、変動した項目を識別する識別情報を変動連携サーバ１に対して送信する。ここで、変動した項目を識別する識別情報とは、項目を識別するレコード及びカラムに加え、変動した項目を含むマスターＤＢ２２を識別するＤＢＩＤを含む。このとき、変動情報送信部２３は、変動した項目を識別する情報のみを変動連携サーバ１に対して送信し、具体的な変動の内容を変動連携サーバ１に対して送信することがない。すなわち、図３（１）における項目２２１で変動があった場合には、変動情報送信部２３は、「ＤＢＩＤ：００１、レコード：０１２３、カラム：ショップ名」を変動した項目を識別する識別情報として変動連携サーバ１に対して送信する一方で、変動の内容（「Ａ商店」から「Ａ´商店」とショップ名が変動したこと）を変動連携サーバ１に対して送信することはない。不要な情報を送信することなく最小限の情報のみでＤＢサーバ２の変動をインデックスサーバ３に反映させるためである。
なお、変動連携サーバ１に対して確実に送信したことを保証するため、変動情報送信部２３は、トランザクション処理により変動連携サーバ１に対して変動した項目を識別する識別情報を送信することが好ましい。
【００２５】
要求受付部２４は、マスターＤＢ２２の変動に伴いインデックスファイル３６を変動するために必要な情報の要求を、インデックスサーバ３から受け付ける。このとき、要求受付部２４は、インデックスファイル３６を変動するために必要な情報として、マスターＤＢ２２の変動した項目に規定された情報だけでなく、後述するように、変動していない項目に規定された情報の要求を受け付ける場合がある。なお、本実施形態では、ＤＢＩＤ、レコード及びカラムの指定を受け付けることで、インデックスファイル３６を変動するために必要な情報の要求を受け付ける。
【００２６】
変動内容送信部２５は、要求受付部２４が受け付けた項目に規定された情報をマスターＤＢ２２から抽出し、要求を行ったインデックスサーバ３に対して送信する。例えば、図３（１）における項目２２１についての要求を受け付けた場合には、変動内容送信部２５は、「Ａ´商店」という情報をインデックスサーバ３に対して送信する。なお、インデックスファイル３６の変動に変動前の項目に規定された情報が必要になる場合には、変動前の情報も併せて送信することとしてもよい。すなわち、レコード「０１２３」のショップ名が「Ａ商店」から「Ａ´商店」に変動したことをインデックスサーバ３に対して送信することとしてもよい。
【００２７】
［変動連携サーバ１の構成］
続いて、本発明の変動連携サーバ１は、変動情報管理部１１と、変動情報ＤＢ１２と、参照要求受付部１３と、変動情報特定部１４と、変動情報送信部１５と、を含んで構成される。
【００２８】
変動情報管理部１１は、ＤＢサーバ２の変動情報送信部２３から送信されたマスターＤＢ２２の変動した項目を識別する識別情報を受信すると、当該識別情報に変動が行われた時間を示すタイムスタンプを付して変動情報ＤＢ１２に記憶する。このとき、識別情報に付されるタイムスタンプは、ＤＢサーバ２において当該項目が変動した時間であってもよく、また、変動情報管理部１１が当該識別情報を受信した時間であってもよい。なお、タイムスタンプとしてＤＢサーバ２で変動した時間を付す場合には、ＤＢサーバ２の変動情報送信部２３は、変動した項目を識別する識別情報に加え、当該時間を示す情報を変動連携サーバ１に対して送信することが好ましい。
【００２９】
変動情報ＤＢ１２は、マスターＤＢ２２における変動情報を管理するデータベースである。具体的には、図４に示すように、変動情報ＤＢ１２は、マスターＤＢ２２における変動情報として、変動した項目を識別する識別情報（ＤＢＩＤ、レコード、カラム）に加え、変動が行われた時間（変動時間）を記憶する。
このとき、変動情報ＤＢ１２は、変動情報として変動した項目を識別する識別情報を記憶するものの、その変動内容については記憶しない。例えば、変動情報１２１の「ＤＢＩＤ：００１、レコード：０１２３、カラム：ショップ名」は、図３（１）における「Ａ商店」から「Ａ´商店」へのショップ名の変動に対応するものであるが、図４に示す変動情報ＤＢ１２からはその変動内容を特定することはできない。これは、変動情報ＤＢ１２がマスターＤＢ２２の変動をインデックスファイル３６に反映させるために用いられるところ、後述するようにインデックスファイル３６によっては、変動した項目に規定された情報（Ａ商店⇒Ａ´商店）だけでなく、他の項目に規定された情報も必要となるためである。そこで、変動情報ＤＢ１２は、マスターＤＢ２２の変動をインデックスファイル３６に反映させるために必要となる最小限の情報のみを記憶することとしている。
【００３０】
参照要求受付部１３は、インデックスサーバ３からマスターＤＢ２２の変動に関する情報、すなわち、変動情報ＤＢ１２に記憶された情報の要求を受け付ける。このとき、参照要求受付部１３は、インデックスサーバ３からインデックスファイル３６の変動に必要となる情報の範囲（期間）の指定も併せて受け付ける。
【００３１】
変動情報特定部１４は、参照要求受付部１３が受け付けた要求に応じて、変動情報ＤＢ１２からマスターＤＢ２２における変動情報、すなわち、変動した項目を識別する識別情報（ＤＢＩＤ、レコード、カラム）を抽出する。ここで、変動情報特定部１４は、変動情報ＤＢ１２に記憶された変動時間を参照して、参照要求受付部１３が受け付けた期間内に変動した項目を識別する識別情報を特定し抽出する。このとき、変動情報特定部１４は、変動情報ＤＢ１２に、当該期間内に変動した項目を識別する識別情報として同一の項目を識別する識別情報が複数記憶されている場合には、当該同一の項目を識別する識別情報を１つだけ特定し、抽出する。図４を参照して、変動情報１２２，１２３，１２４は全て、「ＤＢＩＤ：００３、レコード：９９９９、カラム：在庫」と同一の項目を識別している。そのため、変動情報特定部１４は、参照要求受付部１３が受け付けた期間内に変動情報１２２，１２３，１２４が含まれる場合には、いずれかの変動情報のみを抽出する。
【００３２】
変動情報送信部１５は、変動情報特定部１４が特定した識別情報（ＤＢＩＤ、レコード、カラム）をインデックスサーバ３に送信する。例えば、図４に記載した期間内に変動した項目を要求されていた場合には、変動情報送信部１５は、「ＤＢＩＤ：００１、レコード：０１２３、カラム：ショップ名」「ＤＢＩＤ：００３、レコード：９９９９、カラム：在庫」「ＤＢＩＤ：００２、レコード：２２２２、カラム：商品名」「ＤＢＩＤ：００３、レコード：５５５５、カラム：在庫」「ＤＢＩＤ：００３、レコード：２２２２、カラム：在庫」をインデックスサーバ３に送信する。
【００３３】
［インデックスサーバ３の構成］
複数のインデックスサーバ３の夫々は、変動情報要求部３１と、要求特定部３２と、変動内容要求部３３と、変動内容受付部３４と、インデックス変動部３５と、インデックスファイル３６と、を含んで構成される。
【００３４】
変動情報要求部３１は、変動連携サーバ１に対してＤＢサーバ２のマスターＤＢ２２における変動情報を要求する。このとき、変動情報要求部３１は、所定の周期で変動連携サーバ１に対する要求を行う。これにより、インデックスサーバ３では、マスターＤＢ２２の変動タイミングに関わらず、自らのタイミングでマスターＤＢ２２の変動情報を取得することができる。なお、変動情報要求部３１は、所定の周期の間に行われたマスターＤＢ２２における変動情報を適切に取得するため、必要となる期間を指定した上で当該要求を行う。
【００３５】
要求特定部３２は、変動情報要求部３１の要求に伴い変動連携サーバ１の変動情報送信部１５から送信されるマスターＤＢ２２において所定期間内に変動した項目を識別する識別情報を受信するとともに、当該変動に伴いインデックスファイル３６を変動するために必要となる情報を特定する。
【００３６】
ここで、図５を参照して、インデックスファイル３６について説明する。インデックスファイル３６は、検索に利用される頻度の高い単語（検索キー）毎に予め検索結果（値）を規定しておく。このようなインデックスファイル３６は、検索の用途に応じて複数設けられており、本実施形態では、インデックスＩＤにより識別することとしている。例えば、「インデックスＩＤ：００１」は、検索キーを「商品名」として、当該商品を取り扱う「ショップ名」及びその「在庫」を検索結果として規定するインデックスファイルであり、「インデックスＩＤ：００２」は、検索キーを「ショップ名」として、当該ショップで取り扱う「商品名」及びその「価格」を検索結果として規定するインデックスファイルである。
【００３７】
このように複数のインデックスサーバ３で分散管理するインデックスファイル３６では、検索キーとその値（検索結果）との関係が夫々異なるため、インデックスファイル３６の種類によってマスターＤＢ２２の変動と連携して変動させるために必要となる情報が異なることになる。例えば、マスターＤＢ２２において「在庫」が変動した場合、「インデックスＩＤ：００１」のインデックスファイル３６（図５（１））はこの変動と連動して変動する必要があるため、変動した在庫数が必要になる一方で、「インデックスＩＤ：００２」のインデックスファイル３６（図５（２））はこの変動と連動して変動する必要がないため、変動した在庫数を必要としない。
【００３８】
そこで、要求特定部３２は、自己のインデックスサーバ３が管理しているインデックスファイル３６の種類に応じて、マスターＤＢ２２の変動に伴いインデックスファイル３６を変動するために必要となる情報を特定する。
ここで、マスターＤＢ２２が図３に示すようにショップＤＢと商品ＤＢと在庫ＤＢとを別々で管理する構造であり、在庫の変動に応じて「インデックスＩＤ：００１」のインデックスファイル３６を変動する場合、在庫の情報に加え、対応するショップ名や商品名が必要になる。すなわち、インデックスファイル３６の変動には、マスターＤＢ２２で変動した項目に規定された情報だけでなく、他の項目に規定された情報も必要になることがある。そこで、本実施形態では、インデックスサーバ３は、図６に示すような対応関係を特定するための情報を備えることとしている。具体的には、変動した項目を含むＤＢＩＤ及びカラム（変動情報）毎に、インデックスファイル３６の変動に必要となる情報（要求先）を対応付けた情報を備えることとしている。このとき、インデックスファイル３６の変動に必要となる情報は、インデックスファイル３６の種類毎に対応付けられていることが好ましい。
【００３９】
変動内容要求部３３は、要求特定部３２が特定した情報をＤＢサーバ２に対して要求する。
例えば、マスターＤＢ２２において「ＤＢＩＤ：００３、レコード：５５５５、カラム：在庫」に変動があった場合には、要求特定部３２は、変動した在庫数を取得するために「ＤＢＩＤ：００３」に対して「レコード：５５５５、カラム：在庫」の項目に規定した情報が必要であると特定するとともに、当該在庫数の商品を取り扱うショップ名を取得するために「ＤＢＩＤ：００１」に対して「商品ＩＤ：５５５５」を取り扱うショップ名（図３（１）を参照すると「Ｂ商店」）が必要であると特定し、また、当該在庫数の商品の商品名を取得するために「ＤＢＩＤ：００２」に対して「商品ＩＤ：５５５５」の商品名（図３（２）を参照すると「エアコンＢ」）が必要であると特定する。そこで、変動内容要求部３３は、この特定した情報をＤＢサーバ２に対して要求する。
【００４０】
なお、在庫の変動の際には、変動内容要求部３３は、在庫数、ショップ名及び商品名を一度に要求することとしているが、マスターＤＢ２２の変動によっては複数回に分けて情報を取得する場合があり、変動内容要求部３３による要求は、このような複数回にわたる要求を含むものである。
図７を参照して、例えば、マスターＤＢ２２においてショップ名が「Ａ商店」から「Ａ´商店」に変動した場合に、「インデックスＩＤ：００１」のインデックスファイル３６を変動するためには、「Ａ商店（Ａ´商店）」で取り扱う商品名が必要になる。このような場合には、変動内容要求部３３は、初めに「ＤＢＩＤ：００１」に対して「レコード：０１２３」「カラム：商品ＩＤ」の項目に規定された情報を要求する。これにより「９９９９，２２２２，１１１１」などの商品ＩＤを取得できるが、「インデックスＩＤ：００１」のインデックスファイル３６を変動するためには、この商品ＩＤに対応する商品名が必要になる。そこで、次に二度目の要求として、変動内容要求部３３は、「ＤＢＩＤ：００２」に対して、取得した商品ＩＤ「９９９，２２２，１１１」などの商品名を要求する。これにより、「インデックスＩＤ：００１」のインデックスファイル３６における検索キーである商品名を取得できるため、当該商品を取り扱うショップ名を特定でき、結果、マスターＤＢ２２の変動に併せてショップ名を「Ａ商店」から「Ａ´商店」に変動することができる。
【００４１】
変動内容受付部３４は、変動内容要求部３３の要求に伴いＤＢサーバ２の変動内容送信部２５から送信された情報を受け付ける。例えば、変動した在庫数や、当該在庫数の商品を取り扱うショップ名、当該在庫数の商品名を受け付ける。
インデックス変動部３５は、変動内容受付部３４が受け付けた情報に基づいて、インデックスファイル３６を変動する。例えば、変動内容受付部３４が受け付けたショップ名及び商品名に対応する在庫数を、変動内容受付部３４が受け付けた在庫数に変動する。
【００４２】
［変動連携サーバ１のハードウェア構成］
以上説明した変動連携サーバ１のハードウェアは、１又は複数の一般的なコンピュータによって構成することができる。一般的なコンピュータは、例えば、制御部として、中央処理装置（ＣＰＵ）を備える他、記憶部として、メモリ（ＲＡＭ、ＲＯＭ）、ハードディスク（ＨＤＤ）及び光ディスク（ＣＤ、ＤＶＤなど）を、ネットワーク通信装置として、各種有線及び無線ＬＡＮ装置を、表示装置として、例えば、液晶ディスプレイ、プラズマディスプレイなどの各種ディスプレイを、入力装置として、例えば、キーボード及びポインティング・デバイス（マウス、トラッキングボールなど）を適宜備え、これらは、バスラインにより接続されている。このような一般的なコンピュータにおいて、ＣＰＵは、変動連携サーバ１を統括的に制御し、各種プログラムを適宜読み出して実行することにより、上述したハードウェアと協働し、本発明に係る各種機能を実現している。
なお、ＤＢサーバ２及びインデックスサーバ３についても、複数の一般的なコンピュータによって構成することができる。
【００４３】
［検索システム１００の処理］
続いて、図８及び図９を参照して、本発明の変動連携サーバ１を含む検索システム１００の処理を説明する。
【００４４】
図８を参照して、ＤＢサーバ２のレコード変動部２１は、マスターＤＢ２２に対する変動要求を受け付けると、当該変動要求に基づいてマスターＤＢを変動する（ステップＳ１）。続いて、ＤＢサーバ２の変動情報送信部２３は、ステップＳ１で変動した項目を識別する識別情報（ＤＢＩＤ、レコード、カラム）を変動連携サーバ１に対して送信する（ステップＳ２）。
【００４５】
続いて、変動連携サーバ１の変動情報管理部１１は、ステップＳ２で送信された変動した項目を識別する識別情報を受け付け（ステップＳ１１）、当該識別情報に変動が行われた時間を示すタイムスタンプを付して変動情報ＤＢ１２に記憶する（ステップＳ１２）。
【００４６】
続いて、図９を参照して、インデックスサーバ３の変動情報要求部３１は、所定の期間が経過すると（ステップＳ２１）、当該期間内にマスターＤＢ２２において変動した項目を識別する識別情報を、変動連携サーバ１に対して要求する（ステップＳ２２）。
【００４７】
変動連携サーバ１の参照要求受付部１３がステップＳ２２で送信された要求を受け付けると（ステップＳ３１）、変動連携サーバ１の変動情報特定部１４は、変動情報ＤＢ１２に記憶されたタイムスタンプを参照して、当該期間内に変動した項目を識別する識別情報を特定し抽出する（ステップＳ３２）。このとき、変動情報特定部１４は、当該期間内に変動した項目を識別する識別情報として同一の項目を識別する識別情報が複数記憶されている場合には、当該同一の項目を識別する識別情報を１つだけ特定し、抽出する。続いて、変動連携サーバ１の変動情報送信部１５は、ステップＳ３２で抽出した項目を識別する識別情報をインデックスサーバ３に対して送信する（ステップＳ３３）。
【００４８】
続いて、インデックスサーバ３の要求特定部３２は、ステップＳ３３で送信された識別情報を受け付けると、インデックスサーバ３が管理しているインデックスファイル３６の種類に応じて、マスターＤＢ２２の変動に伴いインデックスファイル３６を変動するために必要となる情報を特定する（ステップＳ２３）。続いて、インデックスサーバ３の変動内容要求部３３は、ステップＳ２３で特定した情報に基づいて、インデックスファイル３６を変動させるために必要となる情報をＤＢサーバ２に対して要求する（ステップＳ２４）。
【００４９】
ＤＢサーバ２の要求受付部２４がステップＳ２４で送信された要求を受け付けると（ステップＳ４１）、ＤＢサーバ２の変動内容送信部２５は、マスターＤＢ２２から対応する抽出し（ステップＳ４２）、要求を行ったインデックスサーバ３に対して送信する（ステップＳ４３）。
【００５０】
続いて、インデックスサーバ３の変動内容受付部３４がステップＳ４３で送信された情報を受け付けると（ステップＳ２５）、インデックスサーバ３のインデックス変動部３５は、ステップＳ２５で受け付けた情報に基づいてインデックスファイル３６を更新し（ステップＳ２６）、処理を終了する。
【００５１】
以上、本発明の変動連携サーバ１を含む検索システム１００の構成及び処理について説明した。
図１０を参照して、このような検索システム１００によれば、図１０（１）に示すように複数のＤＢサーバ２は、マスターＤＢ２２に変動があるたびにその変動情報（変動した項目を識別する識別情報）を変動連携サーバ１に対して送信する。すると、変動連携サーバ１では、この変動情報を変動した時間とともに変動情報ＤＢ１２に記憶する。
その後、図１０（２）に示すように、複数のインデックスサーバ３は、所定周期で変動連携サーバ１に対して変動情報の要求を行う。なお、所定周期は、任意の長さとすることができ、また、複数のインデックスサーバ３で周期の長さが異なることとしてもよく、また、複数のインデックスサーバ３で周期の長さは同一であるが、変動連携サーバ１に対して要求を行うタイミングをずらすこととしてもよい。
すると、変動連携サーバ１では、インデックスサーバ３からの要求に応じて、期間内の変動情報を特定し、インデックスサーバ３に対して返信する。
その後、複数のインデックスサーバ３は、変動連携サーバ１から受信した情報に基づいて自己が管理するインデックスファイル３６の変動に必要な情報を特定し、図１０（３）に示すように、ＤＢサーバ２に対して当該情報を要求するとともに、要求の結果得た情報に基づいてインデックスファイル３６を変動する。
【００５２】
このように、検索システム１００では、ＤＢサーバ２のマスターＤＢ２２における変動を、変動のたびにインデックスサーバ３に送信する必要がない。ここで、検索システム１００のように変動側のＤＢサーバ２及び参照側のインデックスサーバ３の夫々を複数のサーバで分散管理する大規模なシステムでは、１のマスターＤＢ２２に変動があるたびに複数のインデックスサーバ３に対して変動の情報を送信していたのでは、インデックスサーバ３の処理負担を増大させることになり、検索の利便性に影響を与えてしまう可能性がある。
【００５３】
この点、本実施形態の検索システム１００のように、マスターＤＢ２２が変動したことを変動連携サーバ１に逐次記憶させておき、複数のインデックスサーバ３が変動連携サーバ１にアクセスする構成とすることで、変動に関するインデックスサーバ３の処理負担を軽減させることができる。
このとき、変動連携サーバ１は、ＤＢサーバ２からマスターＤＢ２２の変動した項目を識別した識別情報のみ（変動した時間を含んでもよい）を受信することとし、その変動の内容を受信することがない。そして、インデックスサーバ３では、この変動した項目を識別した識別情報から、自己が管理するインデックスファイル３６の変動に必要となる情報を特定する構成としている。これにより、変動連携サーバ１は、最小限の情報のみでＤＢサーバ２とインデックスサーバ３とを連動させることができる。
マスターＤＢ２２が変動したとしても、変動した項目やインデックスファイル３６の構成によってはインデックスファイル３６を変動させる必要がない場合があり、最小限の情報のみでＤＢサーバ２とインデックスサーバ３とを連動させる構成とすることで、検索システム１００全体における不要な情報のやり取りを防止することができる。
また、インデックスサーバ３は、所定周期で変動連携サーバ１に対してアクセスする構成としているため、ＤＢサーバ２の変動に関わらず、インデックスサーバ３に好ましい任意のタイミングでインデックスファイル３６を変動することができる。
このとき、変動連携サーバ１は、インデックスサーバ３が要求した期間内に同一の項目が複数回変動していた場合には、当該項目を識別する識別情報を複数個抽出することなく、１つの識別情報のみを抽出するため、不要な情報の送信を防止することができ、処理負担を軽減することができる。なお、抽出する１つの識別情報は、複数回の変動のうちの最新の変動であってもよく、また、最古の変動であってもよく、その他任意のタイミングの変動であってもよい。
【００５４】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
例えば、本実施形態では、変動連携サーバ１は、１つのサーバとして実現される場合を例に挙げて説明したが、変動連携サーバ１の機能を複数のサーバに分散して実装し、これらのサーバ全体が連携することによって変動連携サーバ１の機能を実現することも可能である。
【符号の説明】
【００５５】
１    変動連携サーバ
１１  変動情報管理部
１２  変動情報ＤＢ
１３  参照要求受付部
１４  変動情報特定部
１５  変動情報送信部
２    ＤＢサーバ
２１  レコード変動部
２２  マスターＤＢ
２３  変動情報送信部
２４  要求受付部
２５  変動内容送信部
３    インデックスサーバ
３１  変動情報要求部
３２  要求特定部
３３  変動内容要求部
３４  変動内容受信部
３５  インデックス変動部
３６  インデックスファイル
１Ａ  変動連携システム
１００  検索システム
【図１】
0005502059.tif 000002
【図２】
0005502059.tif 000003
【図３】
0005502059.tif 000004
【図４】
0005502059.tif 000005
【図５】
0005502059.tif 000006
【図６】
0005502059.tif 000007
【図７】
0005502059.tif 000008
【図８】
0005502059.tif 000009
【図９】
0005502059.tif 000010
【図１０】
0005502059.tif 000011