(57)【要約】【課題】外部データベースの負荷を減少させる。【解決手段】外部データベース収容装置は、取得対象とするデータを一意に識別できる複数のリクエストを１つ以上のシステムから受け付ける外部データベースからリクエストに対する応答を得て、外部データベースにおいてある頻度以上に参照されるデータと同一のデータである更新対象情報と、この更新対象情報が更新されたかを示す更新情報とを保存している保持部を備えている。保持部は、データを取得するための取得リクエストを前記外部データベースが受け付けるより前に受け付け、取得リクエストに対応する更新情報から更新があるかを判断し、この更新が無い場合には更新が無い旨の通知を前記取得リクエストを送信したシステムに送信し、取得リクエストが要求する更新対象情報と同一のデータがあるかを判断し、この同一のデータがあった場合には取得リクエストを送信したシステムにこのデータを送信する。【選択図】図１
2018060415.tif 000002
【特許請求の範囲】
【請求項１】
取得対象とするデータを一意に識別できる複数のリクエストを１つ以上のシステムから受け付ける外部データベースからリクエストに対する応答を得る外部データベース収容装置であって、
前記外部データベースにおいてある頻度以上に参照されるデータと同一のデータである更新対象情報と、この更新対象情報が更新されたかを示す更新情報とを保存している保持部を備え、
前記保持部は、データを取得するための取得リクエストを前記外部データベースが受け付けるより前に受け付け、
前記取得リクエストに対応する更新情報から更新があるかを判断し、この更新が無い場合には更新が無い旨の通知を、前記取得リクエストを送信したシステムに送信し、
前記取得リクエストが要求する更新対象情報と同一のデータがあるかを判断し、この同一のデータがあった場合には前記取得リクエストを送信したシステムにこのデータを送信する外部データベース収容装置。
【請求項２】
前記外部データベースへ要求される、データを取得するための取得リクエストの頻度を監視し、更新対象情報及び対応する更新情報を蓄積する条件を満たす、更新対象情報及び対応する更新情報を前記保持部に蓄積する監視部をさらに備え、
前記条件は、前記頻度が閾値よりも大きい場合に該当する更新対象情報及び対応する更新情報を蓄積することである請求項１に記載の外部データベース収容装置。
【請求項３】
前記保持部に格納されている更新対象情報の前記更新情報に含まれる有効期限が切れているかを判断し、有効期限が切れている場合には前記外部データベースから対応する更新対象情報を取得して、この更新対象情報が更新されているかどうかを判定する処理部をさらに備え、
前記保持部は、前記更新対象情報が更新されている場合には更新された更新情報と更新された更新対象情報とを更新して格納する請求項１または２に記載の外部データベース収容装置。
【請求項４】
前記有効期限は、更新情報自動生成間隔に応じて決定され、更新を検知した確率である更新ヒット率の前回と前々回との差分から、更新間隔の最適化の指標となるＦ値が改善したかどうかの推定に基づいて、前記更新情報自動生成間隔を調整する請求項３に記載の外部データベース収容装置。
【請求項５】
取得対象とするデータを一意に識別できる複数のリクエストを１つ以上のシステムから受け付ける外部データベースからリクエストに対する応答を得る外部データベース収容方法であって、
前記外部データベースにおいてある頻度以上に参照されるデータと同一のデータである更新対象情報と、この更新対象情報が更新されたかを示す更新情報とを保存するステップを備え、
前記ステップでは、データを取得するための取得リクエストを前記外部データベースが受け付けるより前に受け付け、
前記取得リクエストに対応する更新情報から更新があるかを判断し、この更新が無い場合には更新が無い旨の通知を、前記取得リクエストを送信したシステムに送信し、
前記取得リクエストが要求する更新対象情報と同一のデータがあるかを判断し、この同一のデータがあった場合には前記取得リクエストを送信したシステムにこのデータを送信する外部データベース収容方法。
【請求項６】
前記外部データベースへ要求される、データを取得するための取得リクエストの頻度を監視し、更新対象情報及び対応する更新情報を蓄積する条件を満たす、更新対象情報及び対応する更新情報を蓄積するステップをさらに備え、
前記条件は、前記頻度が閾値よりも大きい場合に該当する更新対象情報及び対応する更新情報を蓄積することである請求項５に記載の外部データベース収容方法。
【請求項７】
前記保存するステップで格納されている更新対象情報の前記更新情報に含まれる有効期限が切れているかを判断し、有効期限が切れている場合には前記外部データベースから対応する更新対象情報を取得して、この更新対象情報が更新されているかどうかを判定するステップをさらに備え、
前記保存するステップでは、前記更新対象情報が更新されている場合には更新された更新情報と更新された更新対象情報とを更新して格納する請求項５または６に記載の外部データベース収容方法。
【請求項８】
コンピュータを、請求項１ないし４のいずれか１項に記載の外部データベース収容装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、外部データベース収容装置、方法及びプログラムに関する。
【背景技術】
【０００２】
リクエストに応じて別システムで使用している外部データベース（以下、外部ＤＢとも称す）に随時問い合わせを実施し、リクエストに応答するシステムがある（例えば、非特許文献１参照）。例えば、端末からあるデータを要求するリクエストを別のシステムに行い、このシステムが外部ＤＢへの問い合わせを実施する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】中山  陽太郎, “PostgreSQLを活用した仮想データ統合基盤の実現”, UNISYS TECHNOLOGY REVIEW, 第111号, pp.25-37, 2012.3
【発明の概要】
【発明が解決しようとする課題】
【０００４】
データ取得リクエストにより外部ＤＢの更新情報を取得する場合に、外部ＤＢへ問い合せを行う装置での処理及び外部ＤＢの内部処理のため、リクエスト応答時間に、それ自体が本来の目的ではない処理のための負荷（すなわち、オーバーヘッド）が生じる。さらに外部ＤＢへリクエストを出すシステムの数が多いほど、外部ＤＢの負荷が増加する。
【０００５】
外部ＤＢ内のデータは、当該システム以外からも更新されることがある。この場合に、外部ＤＢを収容するシステムが外部ＤＢの更新情報を検知するためには、リクエストを外部ＤＢクエリに変換する処理及び取得した情報が更新された情報であることを判定する処理が必要であるため、リクエスト応答時間にオーバーヘッドが生じる。さらに更新の検知情報はシステムごとで独立して実施するため、更新の検知を行うシステムの数が多いほど外部ＤＢにおけるクエリ処理負荷が増加する。
【０００６】
この発明は上記事情に着目してなされたもので、その目的とするところは、外部データベースの負荷を減少させる外部データベース収容装置、方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するためにこの発明の観点は、以下のような構成要素を備えている。すなわち、外部データベース収容装置は、取得対象とするデータを一意に識別できる複数のリクエストを１つ以上のシステムから受け付ける外部データベースからリクエストに対する応答を得る。外部データベース収容装置は、外部データベースにおいてある頻度以上に参照されるデータと同一のデータである更新対象情報と、この更新対象情報が更新されたかを示す更新情報とを保存している保持部を備えている。保持部は、データを取得するための取得リクエストを前記外部データベースが受け付けるより前に受け付け、取得リクエストに対応する更新情報から更新があるかを判断し、この更新が無い場合には更新が無い旨の通知を前記取得リクエストを送信したシステムに送信し、取得リクエストが要求する更新対象情報と同一のデータがあるかを判断し、この同一のデータがあった場合には取得リクエストを送信したシステムにこのデータを送信する。
【発明の効果】
【０００８】
この発明によれば、外部データベースの負荷を減少させる外部データベース収容装置、方法及びプログラムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る外部データベース収容装置を示すブロック図。
【図２】図１の外部データベース収容装置に更新されたデータが存在しない場合のシーケンス図。
【図３】図１の外部データベース収容装置に更新されたデータが存在する場合のシーケンス図。
【図４】図１の外部データベース収容装置に所望のデータが無く外部ＤＢに存在する場合のシーケンス図。
【図５】図１の外部データベース収容装置に所望のデータが無く外部ＤＢにも無い場合のシーケンス図。
【図６】更新対象情報及びまたはその有効期限を更新する場合のシーケンス図。
【図７】図６のステップで使用する更新情報自動生成間隔を生成する手順を示すフローチャート。
【図８】図１の外部ＤＢ高頻度更新情報保持部に更新対象情報を追加または削除する場合のシーケンス図。
【発明を実施するための形態】
【００１０】
以下、図面を参照してこの発明に係わる実施形態の外部データベース収容装置、方法及びプログラムを説明する。なお、以下の実施形態では、同一の番号を付した部分については同様の動作を行うものとして、重ねての説明を省略する。  
実施の形態の外部データベース収容装置は、リクエストに応じて別システムで使用している外部データベース内のデータに随時問い合わせを行い、リクエストに応答するための装置である。
【００１１】
実施形態に係る外部データベース収容装置について図１を参照して説明する。  
本実施形態の外部データベース収容装置は、外部データベース高頻度更新情報保持部１０１、外部データベース更新監視処理部１０２、及びリクエスト頻度監視部１０３を備えている。なお以下、データベースはＤＢと略す。また、本実施形態の外部データベース収容装置に関係する装置として、リクエストを受け付けデータベースにアクセスするシステム１〜Ｎ（Ｎは１以上の自然数）、外部ＤＢ用システム共通ＡＰＩ１１１、及び外部ＤＢ１１２がある。システム１〜Ｎは、それぞれリクエスト受付部１２１−１〜１２１−Ｎを備えている。
【００１２】
なお、本実施形態では、取得リクエストとデータは以下の２つの条件の少なくとも１つを前提とする。（条件１）取得リクエストは、取得対象とするデータを一意に識別できるものであり、例えば「特定種別データ群のうち、最新のデータ（最後に蓄積されたデータ）」がある。（条件２）外部ＤＢ１１２から取得リクエストにより取得するデータは、取得対象データを一意に識別するＩＤが付与されており、取得リクエストにより取得されるデータ内には当該ＩＤを少なくとも１つ含んでいる。
【００１３】
外部ＤＢ１１２は、システムから要求される取得リクエストに対して応答するデータと、データの更新情報とを格納している。更新情報は例えば、更新時刻、更新内容、更新属性、有効期限を含む。また、外部ＤＢ１１２は、システム１〜Ｎとは異なるシステムによっても更新されている。
【００１４】
外部ＤＢ高頻度更新情報保持部１０１は、外部ＤＢ１１２においてある頻度以上に頻繁に参照されるデータ（例えば、単位時間当たりの参照回数が閾値以上のデータ）と同一のデータである更新対象情報と、この更新対象情報それぞれの更新情報と、を保存している。更新対象情報は、外部ＤＢ１１２がもつデータのうち、リクエスト頻度監視部１０３が求めるリクエスト頻度から定められるデータであり、かつリクエスト頻度監視部１０３が定義した更新の有無を監視する条件を適用するデータであり、有効期限のあるデータである。更新対象情報は、リクエスト頻度が高いデータほど外部ＤＢ高頻度更新情報保持部１０１に蓄積されやすいように設定される。更新情報は、対応する更新対象情報が更新されたかどうかを示す情報である。外部ＤＢ高頻度更新情報保持部１０１が保持しているデータは、システム１からシステムＮまでが共有する。
【００１５】
外部ＤＢ高頻度更新情報保持部１０１は、受けたリクエストに対応する更新情報があるかどうかを判定し、本実施形態ではこの更新情報の有無によって、対応する更新対象情報があるかどうかを判断する（例えば、図２を参照）。しかし、外部ＤＢ高頻度更新情報保持部１０１は更新対象情報を直接探してその有無を判断してもよい。外部ＤＢ高頻度更新情報保持部１０１は、システムから要求される取得リクエストを受けて取得リクエストに対する応答として返す情報（データ）があった場合は、外部ＤＢ１１２に問い合わせることなく応答を返す。この結果、外部ＤＢ１１２に問い合わせるリクエストが減少し、外部ＤＢ１１２の負荷を軽減することができる。
【００１６】
外部ＤＢ更新監視処理部１０２は、外部ＤＢ高頻度更新情報保持部１０１を更新するために、外部ＤＢ高頻度更新情報保持部１０１が管理する更新対象情報のうちの有効期限切れのデータに関して外部ＤＢ１１２からデータを取得し、データの更新の有無によって外部ＤＢ高頻度更新情報保持部１０１で更新対象情報を更新するかどうかを決定する。外部ＤＢ更新監視処理部１０２は事前に、リクエスト頻度監視部１０３から外部ＤＢ高頻度更新情報保持部１０１にどのような更新対象情報が登録されているかを示すデータを取得している。有効期限は、例えば前回更新検知時刻に更新情報自動生成間隔を加算した時刻、またはシステムから外部ＤＢ１１２に対して外部ＤＢ用システム共通ＡＰＩを介して更新対象情報の更新が行われた時刻に更新情報自動生成間隔を加算した時刻とする。この更新情報自動生成間隔はある定められた定数でもよいし、図７に記載のアルゴリズムから定まる値を用いてもよい。図７のアルゴリズムを用いて更新情報自動生成間隔を計算する場合には、更新対象情報の更新検知（更新があったかどうか）、及び更新ヒット率の更新を実施する。更新情報自動生成間隔以内に更新リクエストが来なかった場合は、外部ＤＢ更新監視処理部１０２が外部ＤＢ１１２に対して取得リクエストを送信する（例えば図６参照）。更新リクエストは、リクエスト受付部１２１が外部ＤＢ更新監視処理部１０２に送信する。
【００１７】
外部ＤＢ更新監視処理部１０２は、リクエスト頻度監視部１０３から受け取る判定結果に基づいて、外部ＤＢ１１２に格納されているデータのうち、どのデータを更新対象情報とするかを再定義または更新する。外部ＤＢ更新監視処理部１０２は更新対象情報ごとに更新ヒット率を管理する。
【００１８】
リクエスト頻度監視部１０３は、外部ＤＢ１１２に対する各データの取得リクエスト頻度を監視し、指定された条件を満たすデータを、外部ＤＢ高頻度更新情報保持部１０１に格納する更新対象情報として外部ＤＢ更新監視処理部１０２に通知する。リクエスト頻度監視部１０３は、リクエストがあったデータについて更新対象情報及びその対応する更新情報を蓄積する条件を満たすかどうかを判定し、判定結果を外部ＤＢ更新監視処理部１０２へ渡す。リクエスト頻度監視部１０３は、例えば、取得リクエストを受け取った旨と、それを受け取った時刻とをログとして記録しておき、その情報からリクエストを受けたデータごとにリクエスト頻度を算出する。指定された条件は、リクエスト頻度が閾値よりも大きいか否かで判定する。リクエスト頻度は単位時間当たりのリクエスト数であり、その閾値は例えば１００回／秒である。
【００１９】
外部ＤＢ用システム共通ＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅ）１１１は、外部ＤＢ高頻度更新情報保持部１０１または外部ＤＢ更新監視処理部１０２からリクエストがあった場合は、リクエスト変換して外部ＤＢ高頻度更新情報保持部１０１に通知を行う。リクエスト変換は、外部ＤＢ用システム共通ＡＰＩ１１１が受信したリクエストを外部ＤＢ１１２へ問い合わせを行うための仕様に変換することである。
【００２０】
外部ＤＢ用システム共通ＡＰＩ１１１は、上述した外部ＤＢ更新監視処理部１０２、リクエスト頻度監視部１０３、及びリクエスト受付部１２１が外部ＤＢ１１２に問い合せを行うためのＡＰＩを提供する。
【００２１】
リクエスト受付部１２１−１〜１２１−Ｎは、取得リクエストを受けた場合には、外部ＤＢ高頻度更新情報保持部１０１及びリクエスト頻度監視部１０３に取得リクエストを送信する。その後、リクエスト受付部１２１−１〜１２１−Ｎは、外部ＤＢ高頻度更新情報保持部１０１から対応するデータを受け取るか、またはそのデータが無い旨の通知を受け取る。他の場合には、リクエスト受付部１２１−１〜１２１−Ｎは、外部ＤＢ１１２から外部ＤＢ用システム共通ＡＰＩ１１１を経由して対応するデータを受け取るか、または外部ＤＢ高頻度更新情報保持部１０１にも外部ＤＢ１１２にもデータが不存在である旨の通知を受け取る。
【００２２】
まず、システム１〜Ｎのうちのあるシステムから取得リクエストが実施形態の外部データベース収容装置に送信され、更新されたデータが存在しない場合について図２を参照して説明する。以下、システム１〜Ｎのうちのある１つのシステムを代表として挙げて説明する。この「代表」としてシステムを挙げる場合、枝番号（例えば、「１２１−１」の場合「−１」のこと）は省いて、リクエスト受付部１２１と記載する。ただし、複数のシステムがそれぞれ任意のタイミングで取得リクエストを本実施形態の外部データベース収容装置に行ってもよいことを想定している。  
システムが取得リクエストの入力を受け付け（ステップＳ２０１）、リクエスト受付部１２１が外部ＤＢ高頻度更新情報保持部１０１とリクエスト頻度監視部１０３へ取得リクエストを送信する（ステップＳ２０２、Ｓ２０３）。外部ＤＢ高頻度更新情報保持部１０１は、ステップ２０３の取得リクエストを受け付け、このリクエストに対応する更新情報を取得する（ステップＳ２０４）。外部ＤＢ高頻度更新情報保持部１０１は、この更新情報から対応する更新対象情報が更新されたか否かを判定する（ステップＳ２０５）。外部ＤＢ高頻度更新情報保持部１０１に対応する更新が無かった場合には、更新が無い旨の通知をリクエスト受付部１２１に送信し（ステップＳ２０６）、入力者へその旨を知らせる（ステップＳ２０７）。なお、ステップＳ２０６及びステップＳ２０７では、更新無しの場合は、更新が無かったという情報を送信すると共にデータの実体を送信してもよい。
【００２３】
このように、システムからの取得リクエストを受けて、対応するデータが更新されているかどうかを外部ＤＢ１１２に問い合せること無く、外部ＤＢ高頻度更新情報保持部１０１に問い合せるだけで済むので、外部ＤＢ１１２への負荷を低減することが可能となる。
【００２４】
次に、システム１〜Ｎのうちのあるシステムから取得リクエストが実施形態の外部データベース収容装置に送信され、更新されたデータが存在する場合について図３を参照して説明する。  
ステップＳ２０５までには図２のフローチャートと同一である。ステップＳ２０５で外部ＤＢ高頻度更新情報保持部１０１に対応する更新があった場合には、外部ＤＢ高頻度更新情報保持部１０１が、この更新情報に対応する更新対象情報を探し出して用意する（ステップＳ３０１）。外部ＤＢ高頻度更新情報保持部１０１は、更新がある旨の通知と、取得リクエストに対応するデータの実体（更新対象情報）とをリクエスト受付部１２１に送信し（ステップＳ３０２）、リクエスト受付部１２１が入力者へそれらを送信する（ステップＳ３０３）。
【００２５】
このように、システムからの取得リクエストに応答するデータが外部ＤＢ高頻度更新情報保持部１０１にある場合には、外部ＤＢ１１２に問い合わせる必要が無くなるので、外部ＤＢ１１２への負荷を低減することが可能となる。
【００２６】
次に、システム１〜Ｎのうちのあるシステムから取得リクエストが実施形態の外部データベース収容装置に送信され、外部ＤＢ高頻度更新情報保持部１０１にリクエストに対応する情報が無く、外部ＤＢ１１２に対応するデータが存在する場合について図４を参照して説明する。  
ステップＳ２０４までは図２と同一である。ステップＳ２０４で更新情報が取得できない場合には、更新情報が無くしたがって対応する更新対象情報が無いと判断する（ステップＳ４０１）。この場合、外部ＤＢ高頻度更新情報保持部１０１が外部ＤＢ用システム共通ＡＰＩ１１１にステップＳ２０３で受け取ったものと同様の取得リクエストを送信する（ステップＳ４０２）。外部ＤＢ用システム共通ＡＰＩ１１１は、受け取った取得リクエストをリクエスト変換して（ステップＳ４０３）、変換後のリクエストを外部ＤＢ１１２へ送信する（ステップＳ４０４）。外部ＤＢ１１２は、受け取った取得リクエストに対応するデータがある場合にはこのデータを取得する（ステップＳ４０５）。外部ＤＢ１１２は、取得したデータを外部ＤＢ用システム共通ＡＰＩ１１１へ送信し（ステップＳ４０６）、外部ＤＢ用システム共通ＡＰＩ１１１はリクエスト受付部１２１へ取得したデータを送信し（ステップＳ４０７）、その取得したデータを入力者へ送信する。またはその取得したデータと、更新の有無が不明である情報と、を入力者へ送信してもよい（ステップＳ４０８）。
【００２７】
このように、システムからの取得リクエストを受けて、対応するデータが外部ＤＢ高頻度更新情報保持部１０１に無い場合でも、その後に外部ＤＢ１１２に同じ問い合せを行うことで応答となるデータをシステムは受け取ることができる。
【００２８】
次に、システム１〜Ｎのうちのあるシステムから取得リクエストが実施形態の外部データベース収容装置に送信され、外部ＤＢ高頻度更新情報保持部１０１にリクエストに対応する情報が無く、外部ＤＢ１１２にも対応するデータが存在しない場合について図５を参照して説明する。  
ステップＳ４０５までは図４と同一である。ステップＳ４０５で外部ＤＢ１１２が、取得リクエストに対応するデータが無くを取得できない場合に、データが外部ＤＢ１１２に存在していないという情報（データ不存在情報）を外部ＤＢ用システム共通ＡＰＩ１１１へ送信する（ステップＳ５０１）。外部ＤＢ用システム共通ＡＰＩ１１１はリクエスト受付部１２１へ取得したデータ不存在情報を送信し（ステップＳ５０２）、その取得したデータ不存在情報を入力者へ送信する（ステップＳ５０３）。
【００２９】
このように、システムからの取得リクエストを受けて、対応するデータが外部ＤＢ高頻度更新情報保持部１０１に無い場合で、かつ、外部ＤＢ１１２にも対応するデータが無い場合には、データの実体が無い旨の情報を送ることができる。
【００３０】
次に、外部ＤＢ更新監視処理部１０２が、外部ＤＢ高頻度更新情報保持部１０１が保持する更新対象情報及びまたはその有効期限を更新する動作について図６を参照して説明する。  
外部ＤＢ更新監視処理部１０２が、外部ＤＢ高頻度更新情報保持部１０１に格納されている更新対象情報の有効期限の取得を外部ＤＢ高頻度更新情報保持部１０１に要請して、その有効期限の情報を取得する（ステップＳ６０１）。外部ＤＢ更新監視処理部１０２が、その情報から、更新対象情報ごとに対応するリクエストを受け取った最近の時刻から一定時間（例えば、図７で説明する更新情報自動生成間隔）が経過しているかどうかを判定する（ステップＳ６０２）。具体的には例えば、外部ＤＢ高頻度更新情報保持部１０１に格納されている全てのデータ（更新対象情報）のうちの有効期限が切れているデータを検索する。
【００３１】
外部ＤＢ更新監視処理部１０２が、前回のリクエストから一定時間が経過したと判定した場合（例えば、有効期限が切れているデータがあると判定した場合）には、外部ＤＢ用システム共通ＡＰＩ１１１へこの取得リクエストを送信する（ステップＳ６０３）。外部ＤＢ用システム共通ＡＰＩ１１１はこの取得リクエストをリクエスト変換し変換後のリクエストを外部ＤＢ１１２へ送信し（ステップＳ６０５）、外部ＤＢ１１２が、リクエストに対応するデータを取得し（ステップＳ６０６）、このデータを外部ＤＢ用システム共通ＡＰＩ１１１に送信する（ステップＳ６０７）。外部ＤＢ用システム共通ＡＰＩ１１１はこのデータを外部ＤＢ更新監視処理部１０２に送信し（ステップＳ６０８）、外部ＤＢ更新監視処理部１０２は、受け取ったデータに対応するリクエストを外部ＤＢ高頻度更新情報保持部１０１に送信し（ステップＳ６０９）、このリクエストに対応するデータ（更新情報及び更新対象情報）を外部ＤＢ高頻度更新情報保持部１０１から取得する。外部ＤＢ更新監視処理部１０２は外部ＤＢ１１２から取得した情報と外部ＤＢ高頻度更新情報保持部１０１から取得した情報とを比較し、更新対象情報が更新されたかどうかを判定する（ステップＳ６１０）。
【００３２】
ステップＳ６１０で更新があったと判定された場合は、外部ＤＢ更新監視処理部１０２は更新ヒット率を更新して（ステップＳ６１１）、更新された更新対象情報を外部ＤＢ高頻度更新情報保持部１０１へ送信し（ステップＳ６１２）、外部ＤＢ高頻度更新情報保持部１０１では更新対象情報と有効期限を更新する（ステップＳ６１３）。
【００３３】
ステップＳ６１０で更新が無かったと判定された場合は、外部ＤＢ更新監視処理部１０２は更新ヒット率を更新して（ステップＳ６１４）、更新が無かった更新対象情報は送らず、有効期限の更新情報を外部ＤＢ高頻度更新情報保持部１０１へ送信し（ステップＳ６１５）、外部ＤＢ高頻度更新情報保持部１０１では有効期限のみを更新する（ステップＳ６１６）。
【００３４】
このように、外部ＤＢ更新監視処理部１０２によって、更新対象情報の有効期限から外部ＤＢ高頻度更新情報保持部１０１内の更新対象情報をより適切に外部ＤＢ１１２の情報を更新することができる。
【００３５】
次に、更新情報自動生成間隔を生成するための動作について図７を参照して説明する。ここの例では、更新情報自動生成間隔をＣ秒ごとに算出または更新するアルゴリズムである。このアルゴリズムは、更新情報自動生成間隔を使用する外部ＤＢ更新監視処理部１０２が実行するのが自然だが、異なる装置が行ってもよい。  
このアルゴリズムをＣ秒ごとに実行する（ステップＳ７０１）。なお、Ｃ及び初回の更新情報自動生成間隔は任意の設定値とする。Ｐ１［Ｕ］−Ｐ２［Ｕ］＞０であるかどうかを判定する（ステップＳ７０２）。ここで、更新情報自動生成間隔ＴＸで既存システムへの問い合せをＣ秒間行った結果、実際に既存システムの更新を検知した確率を更新ヒット率ＰＹ［Ｕ］（＝Ｃ秒間で更新を検知した回数／Ｃ秒間で外部ＤＢを参照した回数）とする（Ｘ，Ｙ＝１，２）。Ｐ１［Ｕ］及びＰ２［Ｕ］はそれぞれ前回及び前々回の更新ヒット率を示す。なお、更新ヒット率では外部ＤＢ更新監視処理部１０２が更新を確認できた回数のみを考慮する。Ｐ１［Ｕ］−Ｐ２［Ｕ］＞０である場合にはＦ値が改善されたと推定し、そうでない場合にはＦ値が劣化したと推定する。ここで、Ｆ値（F-measure）は下記の式の通り、適合率（precision）及び再現率（recall）の調和平均より求まる統計学の指標であり、Ｆ値は更新間隔の最適化の指標となる。
【００３６】
【数１】
2018060415.tif 000003
【００３７】
なお、
true positive：正解であると推定した事象のうち、正解であった事象の集合
false positive：正解であると推定した事象のうち、不正解であった事象の集合
false negative：正解である事象のうち、推定されなかった事象の集合
である。また、適合率＝推定数のうちで正解した数／推定数≦１、再現率＝推定できた正解数／真の正解数≦１である。本アルゴリズムにおいて、Ｆ値における正解集合Ｘとは既存システムが更新された事象の集合であり、推定集合Ｙとは更新情報を自動生成した事象の集合である。正解集合Ｘと推定集合Ｙとが一致した場合にＦ値は最大となるため、Ｆ値の改善により更新情報自動生成間隔を最適化することが期待できる。一般に、Ｆ値を算出するには、正解集合Ｘ＝false negative ∪ true positiveがわかる必要がある。本アルゴリズムでは、正解集合Ｘ（既存システムが更新された事象の集合）が不明である場合にも、前回及び前々回からの更新ヒット率Ｐ１［Ｕ］及びＰ２［Ｕ］の差分から（Ｆ値ではなく）Ｆ値の向上または低下を推定する。
【００３８】
ステップＳ７０２でＦ値が改善されたと推定された場合にはステップＳ７０３へ進み、そうで無い場合にはステップＳ７０５へ進む。ステップＳ７０３ではＴ１−Ｔ２＞０であるかどうか判定し、この不等式を満たす場合にはステップＳ７０４に進み、そうで無い場合にはステップＳ７０６へ進む。ここで、Ｔ１は前回の更新情報自動生成間隔であり、Ｔ２は前々回の更新情報自動生成間隔である。Ｔ１−Ｔ２＞０を満たす場合には前々回よりも前回の方の間隔が長くなったことを示し、更新回数が減ることになる。一方、Ｔ１−Ｔ２＞０を満たさない場合には前々回よりも前回の方の間隔が短くなった（または変らない）ことを示し、更新回数が増える（または変らない）ことになる。ただし、更新情報自動生成する単位時間当たりの更新回数は、システム１〜Ｎからの単位時間当たりのリクエスト回数（クライアントリクエスト回数とも呼ぶ）よりは増やさないように制御する。
【００３９】
ステップＳ７０４では、更新情報自動生成間隔をｔ秒長くする。ここでｔは任意の設定値とする。なお、更新情報自動生成間隔を長くする場合と短くする場合とで異なるｔの値を用いてもよい。
【００４０】
ステップＳ７０５では、Ｔ１−Ｔ２＞０であるかどうかを判定し、この不等式を満たす場合にはステップＳ７０６に進み、そうで無い場合にはステップＳ７０８へ進む。
【００４１】
ステップＳ７０６では、Ｔ１−ＴＣｌｉｅｎｔ＞０であるかどうかを判定し、この不等式を満たす場合にはステップＳ７０７に進み、そうで無い場合にはステップＳ７０８へ進む。ここで、ＴＣｌｉｅｎｔは前回のシステム１〜Ｎからのリクエスト間隔（クライアントリクエスト間隔とも呼ぶ）である。
【００４２】
ステップＳ７０７では更新情報自動生成間隔をｔ秒短くし、ステップＳ７０８では更新情報自動生成間隔をｔ秒長くする。
【００４３】
例えば以上の動作によって、外部ＤＢ更新監視処理部１０２が更新情報自動生成間隔を調整する。
【００４４】
このように、外部ＤＢ更新監視処理部１０２によって、更新対象情報の有効期限から外部ＤＢ高頻度更新情報保持部１０１内の更新対象情報をより適切な最適化された更新間隔で、外部ＤＢ１１２の情報を更新することができる。
【００４５】
次に、外部ＤＢ高頻度更新情報保持部１０１に格納される更新対象情報を追加または削除する場合について図８を参照して説明する。  
リクエスト頻度監視部１０３が、更新対象情報とする条件を満たすかどうか判定する（ステップＳ８０１）。具体的には、リクエスト頻度監視部１０３が、任意の期間または任意の量の参照リクエストのログを記録しておきこのログから、リクエストのあったデータごとに単位時間当たりの参照リクエスト回数を算出する。なお、リクエストログには少なくともリクエストされた時刻及びリクエストの対象データを一意に定める情報が含まれていればよい。この場合には、条件として、参照リクエスト回数が閾値Ｌを越えたデータまたは上位Ｍ個のデータを更新対象情報として定義する、または、過去に算出した参照リクエスト回数と比較してＥ回増加しているデータを更新対象情報として定義する（Ｌ、Ｍ、及びＥは任意の自然数）。
【００４６】
外部ＤＢ更新監視処理部１０２は、リクエスト頻度監視部１０３から更新対象情報とする条件を満たしたデータのリストを取得し（ステップＳ８０２）、外部ＤＢのうち、どのデータを更新対象情報とするかを再定義または更新し、外部ＤＢ高頻度更新情報保持部１０１に追加または外部ＤＢ高頻度更新情報保持部１０１から削除する（ステップＳ８０３）。具体的には、その後、前回同様に受信したリストのうち、新たに受信したリストに記載されていないデータを削除候補とする（削除するタイミングは、削除候補に挙がった回数を用いて決定する。例えば削除候補に挙がった回数が連続Ｅ回であった等）。また、外部ＤＢ更新監視処理部１０２は更新対象情報ごとに更新ヒット率を格納して管理する。
【００４７】
［追加される場合］追加が決定されたデータに対応するリクエストを外部ＤＢ用システム共通ＡＰＩ１１１へ送信する（ステップＳ８０４）。外部ＤＢ用システム共通ＡＰＩ１１１は、受け取った取得リクエストをリクエスト変換して（ステップＳ８０５）、変換後のリクエストを外部ＤＢ１１２へ送信する（ステップＳ８０６）。外部ＤＢ１１２は、受け取った取得リクエストに対応するデータがある場合にはこのデータを取得する（ステップＳ８０７）。外部ＤＢ１１２は取得したデータを外部ＤＢ更新監視処理部１０２へ送信し（ステップＳ８０８）、外部ＤＢ更新監視処理部１０２はそのデータを外部ＤＢ高頻度更新情報保持部１０１へ送信する（ステップＳ８０９）。外部ＤＢ高頻度更新情報保持部１０１は、この取得したデータを追加し（ステップＳ８１０）、追加した旨を外部ＤＢ更新監視処理部１０２へ通知する（ステップＳ８１１）。
また、外部ＤＢ更新監視処理部１０２がリクエスト受付部１２１から更新リクエストを受けた場合にも、外部ＤＢ更新監視処理部１０２は外部ＤＢ高頻度更新情報保持部１０１の情報を更新する（更新リクエストを受けた後、ステップＳ８０９〜Ｓ８１１を実行することになる）。
【００４８】
［削除される場合］外部ＤＢ更新監視処理部１０２は削除することが決定されたデータを外部ＤＢ高頻度更新情報保持部１０１から削除するリクエストを外部ＤＢ高頻度更新情報保持部１０１へ送信し（ステップＳ８１２）、外部ＤＢ高頻度更新情報保持部１０１は対応するデータを削除し（ステップＳ８１３）、削除した旨を外部ＤＢ更新監視処理部１０２へ通知する（ステップＳ８１４）。
【００４９】
このように、リクエスト頻度監視部１０３と外部ＤＢ更新監視処理部１０２とによって、外部ＤＢ高頻度更新情報保持部１０１に格納される更新対象情報を適切に追加及び削除することにより、最適化したデータに調整することができる。
【００５０】
以上の実施形態によれば、１つの外部ＤＢを複数のシステムが参照する場合に、高頻度に参照される情報を予め取得及び保持することで、リクエスト応答時間のオーバーヘッドの軽減及びシステム側での更新検知処理の削減が可能となる。加えて、リクエスト応答時間のオーバーヘッドを軽減しつつ、高頻度に参照される情報を外部ＤＢに問い合わせる回数を削減することで、外部ＤＢへの負荷を低減することが可能となる。
【００５１】
また、以上の各装置及びそれらの装置部分は、それぞれハードウェア構成、またはハードウェア資源とソフトウェアとの組み合せ構成のいずれでも実施可能となっている。組み合せ構成のソフトウェアとしては、予めネットワークまたはコンピュータ読み取り可能な記憶媒体からコンピュータにインストールされ、当該コンピュータのプロセッサに実行されることにより、各装置の機能を当該コンピュータに実現させるためのプログラムが用いられる。
【００５２】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００５３】
１０１…外部データベース高頻度更新情報保持部、１０２…外部データベース更新監視処理部、１０３…リクエスト頻度監視部、１〜Ｎ…システム、１１１…外部ＤＢ用システム共通ＡＰＩ、１１２…外部ＤＢ、１２１−１〜１２１−Ｎ…リクエスト受付部。
【図１】
2018060415.tif 000004
【図２】
2018060415.tif 000005
【図３】
2018060415.tif 000006
【図４】
2018060415.tif 000007
【図５】
2018060415.tif 000008
【図６】
2018060415.tif 000009
【図７】
2018060415.tif 000010
【図８】
2018060415.tif 000011