説明

データベースアクセスプログラム、データ取得装置及びデータベースアクセス方法

【課題】 無駄なデータベースサーバへのアクセスを低減するデータベースアクセスプログラムを提供する。
【解決手段】 コンピュータを、データ管理部22から受信した通知情報に含まれる、データベース部21のデータの更新時刻情報を共通タイムスタンプ記憶部314に記憶させる手段と、最後に監視端末40にデータを送信した送信時刻情報を記憶した端末別タイムスタンプ記憶部324に記憶した送信時刻情報と、共通タイムスタンプ記憶部314に記憶した更新時刻情報とを比較して、送信時刻よりも後にデータベース部21のデータ更新が行われているか否かを判定する手段と、送信時刻よりも後にデータベース部21のデータ更新が行われていると判定した場合に、データ管理部22にデータの取得要求を出力する手段として機能させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベースアクセスプログラム、データ取得装置及びデータベースアクセス方法に関する。
【背景技術】
【0002】
データベースサーバにアクセスし、データベースサーバからデータを取得する方式の一つとして、プル型と呼ばれるアクセス方式が知られている。このプル型のアクセス方式では、クライアント装置が定期的にデータベースサーバにアクセスして、ユーザによって事前に指定されたデータに更新があるか否かを問い合わせる。データに更新があった場合には、クライアント装置は、データベースサーバから更新されたデータを取得する。
【0003】
また、データベースサーバへの無駄なアクセスを低減する技術として、特許文献1が知られている。特許文献1は、ユーザの使用する移動体端末と、移動体端末と無線通信を行う基地局と、データベースサーバとしての情報提供装置とを備えたシステムにおいて、情報提供装置への無駄なアクセスを低減する技術を開示している。移動体端末からデータの取得要求を受けた基地局は、情報提供装置に接続して、移動体端末から要求されたデータの更新時刻を示す更新情報を取得する。そして、基地局は、自身の記憶部に記憶しているデータの更新情報と、情報提供装置から取得した更新情報とを比較する。基地局は、更新情報を比較して、記憶部に記憶しているデータが最新のデータであると判定すると、情報提供装置からデータを取得することなく、自身の記憶部に記憶しているデータを移動体端末に送信する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平10−336352号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、プル方式では、クライアント端末は、定期的にデータベースサーバにアクセスして、データに更新があったか否かを確認しなければならない。特許文献1も、基地局は、移動体端末から取得要求を受けると、記憶部に記憶したデータが最新のものであるか否かを判定するために情報提供装置に接続し、情報提供装置から更新情報を取得している。
【0006】
本発明は上記事情に鑑みてなされたものであり、無駄なデータベースサーバへのアクセスを低減するデータベースアクセスプログラム、データ取得装置及びデータベースアクセス方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本明細書に開示のデータベースアクセスプログラムは、コンピュータを、データベースからデータを取得して、端末に送信するデータベースアクセスシステムとして機能させるデータベースアクセスプログラムであって、前記コンピュータを、前記データベースを管理するデータベース管理装置から、前記データベースのデータ更新を通知する通知情報を受信する受信手段と、前記受信手段で受信した前記通知情報に含まれる、前記データベースのデータの更新時刻情報を第1記憶手段に記憶させる処理手段と、最後に端末にデータを送信した送信時刻情報を記憶した第2記憶手段に記憶した前記送信時刻情報と、前記第1記憶手段に記憶した前記更新時刻情報とを比較して、前記送信時刻よりも後に前記データベースのデータ更新が行われているか否かを判定する判定手段と、前記判定手段により、前記送信時刻よりも後に前記データベースのデータ更新が行われていると判定した場合に、前記データベース管理装置にデータの取得要求を出力する出力手段とを備える。
本明細書に開示のデータベースアクセスプログラムによれば、データベース管理装置から通知されるデータベースの更新時刻情報と、最後に端末にデータを送信した送信時刻情報とを比較して、送信時刻よりも後にデータベースのデータ更新が行われているか否かを判定する。そして、データベースのデータ更新が行われたと判定する場合に、データベースにデータの取得要求を出力する。従って、データベースへの無駄なアクセスの発生を低減することができる。
【発明の効果】
【0008】
本明細書に開示のデータベースアクセスプログラムによれば、データベースへの無駄なアクセスの発生を低減することができる。
【図面の簡単な説明】
【0009】
【図1】システム構成の一例を示す図である。
【図2】データベースサーバの構成の一例を示す図である。
【図3】データベースサーバの記憶するテーブルの一例を示す図である。
【図4】プログラム制御によって実現されるデータベースサーバの機能ブロックの一例を示す図である。
【図5】処理サーバのハードウェア構成の一例を示す図である。
【図6】プログラム制御によって実現される処理サーバの機能ブロックの一例を示す図である。
【図7】図6に示す表示情報更新処理の詳細な構成の一例を示す図である。
【図8】処理サーバのRAMに記憶される表示管理情報の一例を示す図である。
【図9】監視端末に表示される表示情報の一例を示す図である。
【図10】データベースサーバのデータ管理部の処理手順の一例を示すフローチャートである。
【図11】実施例1の処理サーバの制御部の処理手順の一例を示すフローチャートである。
【図12】実施例2の動作概要を示す図である。
【図13】タイムスタンプの比較方法を説明するための図である。
【図14】(A)〜(C)は、データベースサーバに記憶されるテーブルの例を示し、(D)は、(A)〜(C)のテーブルのデータを結合したビュー表の構成の一例を示す図である。
【図15】実施例2の処理サーバの制御部の処理手順の一例を示すフローチャートである。
【図16】実施例3の動作概要を示す図である。
【図17】処理サーバのRAMに記憶される結合管理情報の一例を示す図である。
【図18】実施例3の処理サーバの制御部の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、添付図面を参照しながら本発明の好適な実施例を説明する。
【実施例1】
【0011】
まず、図1を参照しながら本実施例の構成について説明する。
本実施例は、複数の入力端末11a〜11n(nは任意の自然数)と、データベースサーバ20と、処理サーバ30と、複数の監視端末40a〜40m(mは任意の自然数)とをネットワークに接続したシステム構成を備える。なお、以下の説明では、各入力端末11a〜11mを区別する必要がない場合には、入力端末11と表記する。同様に、各監視端末40a〜40mを区別する必要がない場合には、監視端末40と表記する。
【0012】
複数の入力端末11a〜11nは、コールセンタ10に設置される端末であり、顧客からの電話に応対するオペレータが使用する端末である。入力端末11a〜11nはLAN等の内部ネットワーク12にそれぞれ接続している。この内部ネットワーク12は、WAN(Wide Area Network)等の広域ネットワーク50に接続する。入力端末11a〜11nは、内部ネットワーク12、広域ネットワーク50を介してデータベースサーバ20等に接続可能である。
【0013】
コールセンタ10のオペレータは、顧客からの問いあわせを受け付けると、受け付けた問いあわせを入力端末11に入力する。入力端末11は、オペレータの入力した問いあわせ情報を、内部ネットワーク12と広域ネットワーク50とを介してデータベースサーバ20に送信する。なお、図1には、コールセンタ10を1つだけ示しているが、コールセンタ10の数は1つである必要はなく、複数あってもよい。また、1つのコールセンタ10内に設ける入力端末11a〜11mの数も任意である。
【0014】
データベースサーバ20と処理サーバ30とは、同一のネットワーク(以下、内部ネットワーク25と呼ぶ)に配置される。内部ネットワーク25も広域ネットワーク50に接続する。データベースサーバ20は、入力端末11と接続し、入力端末11から送られた問いあわせ情報を後述するデータベース部21に記憶する。また、処理サーバ30は、必要であると判定した場合に、データベースサーバ20と接続し、データベースサーバ20からデータを取得する。データベースサーバ20は、取得したデータを、監視端末40に送信する。なお、データベースサーバ20と、処理サーバ30の処理の詳細については後述する。
【0015】
監視端末40a〜40mは、複数のサービス拠点に設けられ、顧客にサービスを提供するサービス提供者によって使用される。監視端末40a〜40mも各サービス拠点に敷設された内部ネットワークに接続しており、この内部ネットワークは、広域ネットワーク50に接続する。監視端末40は、処理サーバ30から送信されたデータを受信し、受信したデータを表示部に表示する。サービス提供者は、表示部に表示されたデータを参照して、問いあわせのあった顧客にサービスを提供する。
【0016】
次に、図2を参照しながらデータベースサーバ20の構成の一例について説明する。
データベースサーバ20は、データを記憶するデータベース部21と、データベース部21に記憶したデータを管理するデータ管理部22とを備える。データ管理部22は、データベース部21にデータを記憶したり、データベース部21に既に記憶済みのデータに新たなデータを上書きして更新したり、データベース部21に記憶したデータを検索して読み出す処理を行う。なお、データ管理部22は、データベース管理システム(Database Management System)として一般的に知られた装置である。
【0017】
図3に、データベースサーバ20のデータベース部21に記憶するデータの一例を示す。データベース部21は、データ管理部22の制御によりデータをテーブルに登録する。データ管理部22は、データの検索が容易となるようにデータとデータの属性とを対応付けてテーブルに登録する。テーブルは、データを記憶するデータ記憶領域23と、データ記憶領域23のデータの属性を示す属性記憶領域24とを備える。例えば、図3に示すテーブルは、データの属性として、識別番号、受付日、状況、顧客コード、顧客名、住所、製品コード、製品名、バージョン情報、パッチ情報、メモ情報等を含む。また、図3に示すテーブルの同一行に登録されたデータが1件分のデータに該当する。
【0018】
次に、図4を参照しながらプログラム制御によって実現されるデータ管理部22の機能ブロックについて説明する。機能ブロックとは、データ管理部22の備えるCPU(Central Processing Unit)、RAM(Random Access Memory)などのハードウェアと、ROM(Read Only Memory)に記憶したプログラムとの協働によって実現される処理を一定の機能ごとにまとめたブロックである。なお、データ管理部22のハードウエア構成については、一般的に知られた構成であるので図示を省略する。 データ管理部22は、通信処理221と、解析処理222と、データ処理223と、通知信号生成処理224とを機能ブロックとして備えている。
【0019】
通信処理221は、ネットワーク25、50を介して入力端末11や処理サーバ30から送信される信号を受信し、受信した信号を解析処理222に送る。
また、通信処理221は、データ処理223がデータベース部21から読み出したデータを含む信号や、通知信号生成処理224で生成した通知信号を内部ネットワーク25を介して処理サーバ30に送信する。
【0020】
解析処理222は、入力端末11a〜11nから送信され、通信処理221で受信した信号を入力する。同様に、解析処理222は、処理サーバ30から送信され、通信処理221で受信した信号を入力する。解析処理222は、入力した信号に含まれる処理要求やデータを取り出し、取り出した処理要求を解析する。そして、解析処理222は、解析結果に応じた処理をデータ処理223に要求する。例えば、入力端末11a〜11nから処理要求と共に送られたデータをデータベース部21に記憶する処理や、データをデータベース部21から読み出す処理などが含まれる。
【0021】
データ処理223は、解析処理222の要求に従って、データベース部21にデータを記憶したり、データベース部21からデータを読み出したりする。なお、データベース部21にデータを記憶する処理には、新規にデータを記憶する処理と、既に記憶しているデータに、更新されたデータを上書きする処理とが含まれる。これらの処理を以下では、データの更新処理と呼ぶ。また、データベース部21から読み出したデータは、データ処理223から通信処理221に送られ、通信処理221の制御により処理サーバ30に送信される。
また、データ処理223は、データベース部21のデータの更新処理を行うと、通知信号生成処理224に対して通知信号を生成するように要求する。
【0022】
通知信号生成処理224は、データ処理223から通知信号の生成要求を受信すると、時計部225の計時する時刻を、データ更新が行われた時刻を示すタイムスタンプとして含む通知信号を生成する。通知信号生成処理224は、生成した通知信号を通信処理221に送る。通信処理221は、通知信号生成処理224から受信した通知信号を内部ネットワーク25を介して処理サーバ30に送信する。
【0023】
次に、処理サーバ30について説明する。処理サーバ30は、監視端末40からの問いあわせに基づいて、データベースサーバ20のデータを取得するデータベースアクセスシステムとして機能する装置である。
まず、図5を参照しながら処理サーバ30のハードウェア構成の一例を説明する。処理サーバ30は、制御部31、通信インターフェース35、操作部36、入力インターフェース37、グラフィックインターフェース38、表示部39を備える。また、制御部31は、CPU32、ROM33、RAM34を備える。
【0024】
まず、制御部31について説明する。ROM33には、CPU32が制御に使用する制御プログラムが記録されており、CPU32は、起動すると、制御プログラムをROM33から読み出してRAM34に記憶させる。その後、CPU32は、RAM34に記憶したプログラムに従って処理を行う。RAM34は、CPU32のワークメモリとして使用され、CPU32が演算に使用するデータや、CPU32による演算後のデータ等が記憶される。CPU32、RAM34などのハードと、ROM33に記憶したプログラムとの協働によって実現される機能ブロックについては、図6、7を参照しながら説明する。なお、RAM34が本発明の第1記憶手段〜第4記憶手段に該当する。
【0025】
通信インターフェース35は、制御部31の制御に従って、内部ネットワーク25(広域ネットワーク50)に接続し、例えば、データベースサーバ20や監視端末40とデータ通信を行う。
【0026】
操作部36は、ユーザによって入力される操作情報を受け付ける受付部である。操作部36で受け付けた操作情報は、入力インターフェース37を介して制御部31に送られる。
【0027】
グラフィックインターフェース38は、制御部31で処理されたグラフィックデータを表示部39に表示させるためのインターフェースであり、表示部39に表示させるためにグラフィックデータを波形電気信号に変換する。
【0028】
次に、図6を参照しながらプログラム制御によって実現される処理サーバ30の機能ブロックについて説明する。処理サーバ30は、受信処理311と、解析処理312と、登録処理313と、送信処理315と、複数の表示情報更新処理316a、316b、・・・、316mとを備える。なお、図6に示す共通タイムスタンプ記憶部(本発明の第1記憶手段に該当する)314は、RAM34の記憶領域を使用した記憶部である。CPU32(登録処理313)の制御によって、データをRAM34(共通タイムスタンプ記憶部314)に記憶する。
【0029】
受信処理311は、通信インターフェース35で受信した信号を入力し、入力した信号を解析処理312に送る。
【0030】
解析処理312は、受信処理311から送られた信号から処理要求やデータを取り出す。解析処理312は、取り出した処理要求を解析して、解析結果に応じた処理の実行を登録処理313や表示情報更新処理316a〜316mに要求する。
例えば、受信処理311で入力した信号が、データベースサーバ20から送信された通知信号であったとする。この場合、解析処理312は、通知信号に含まれるタイムスタンプと、タイムスタンプの登録要求を登録処理313に送る。また、受信処理311で入力した信号に、表示情報更新処理316がデータベースサーバ20に送信した未取得データの取得要求に応じて、データベースサーバ20が処理サーバ30に送信したデータが含まれているとする。この場合、解析処理312は、信号に含まれるデータを取り出して、データ取得要求を送信した表示情報更新処理316に送る。なお、未取得データとは、監視端末40a〜40mが未取得のデータである。
【0031】
登録処理313は、解析処理312の要求に従って、タイムスタンプを共通タイムスタンプ記憶部314に記憶する。なお、共通タイムスタンプ記憶部314に記憶したタイムスタンプは、すべての表示情報更新処理316a〜316mによって参照することができる。
【0032】
送信処理315は、表示情報更新処理316a〜316mから送られた未取得データの取得要求や、監視端末40に表示する表示情報を通信インターフェース35に送信する。
【0033】
表示情報更新処理316a〜316mは、各監視端末40a〜40mに対応して、監視端末40a〜40mと同数設けられる。なお、以下の説明において、表示情報更新処理316a〜316mを区別する必要がない場合には、総称して表示情報更新処理316と表記する。
表示情報更新処理316a〜316mは、所定時間ごとに起動し、対応する監視端末40a〜40mが未取得のデータを、データベースサーバ20が記憶しているか否かを判定する。対応する監視端末40a〜40mが未取得のデータを、データベースサーバ20が記憶していると判定する場合、表示情報更新処理316a〜316mは、データベースサーバ20にデータの取得を要求する。なお、判定の詳細については図7を参照しながら説明する。
【0034】
図7には、表示情報更新処理316の詳細を示す。なお、表示情報更新処理316a〜316mはほぼ同一の処理を行うので、図7には、代表して表示情報更新処理316aの処理を示す。なお、表示情報更新処理316a〜316mは、連動して動作するわけではなく、それぞれが独立して処理を行う。
表示情報更新処理316aは、取得判定処理320aと、表示情報生成処理330aとを含む。また、取得判定処理320aは、判定処理321aと、タイマ処理322aと、要求出力処理323aとを含む。また、端末別タイムスタンプ記憶部(本発明の第2記憶手段に該当する)324aは、RAM34の記憶領域を使用した記憶部である。CPU32(判定処理321a)の制御によって、データをRAM34(端末別タイムスタンプ記憶部324a)に記憶する。なお、端末別タイムスタンプ記憶部324aは、各表示情報更新処理316aにだけ設けられるものではなく、各表示情報更新処理316a〜316mにそれぞれ設けられる。対応する各表示情報更新処理316a〜316mだけが、端末別タイムスタンプ記憶部324a〜324mの記憶情報を参照することができる。
【0035】
まず、取得判定処理320aについて説明する。タイマ処理322aは、時間を計時し、予め設定された時間を計時すると、判定処理321aに通知信号を送る。
【0036】
判定処理321aは、タイマ処理322aから通知信号を受信すると、端末別タイムスタンプ記憶部324aに記憶したタイムスタンプ(本発明の送信時刻情報に該当)と、共通タイムスタンプ記憶部314に記憶したタイムスタンプ(本発明の更新時刻情報に該当)とを比較する。
共通タイムスタンプ記憶部314に記憶するタイムスタンプは、データベースサーバ20の記憶するデータが更新されるごとに、データベースサーバ20から送信される通知信号に含まれるタイムスタンプである。すなわち、共通タイムスタンプ記憶部314に記憶するタイムスタンプは、データベースサーバ20のデータの最新の更新時刻を示す。
また、端末別タイムスタンプ記憶部324aの記憶するタイムスタンプは、前回、表示情報更新処理316aがデータベースサーバ20からデータを取得したときに、共通タイムスタンプ記憶部314に記憶していたタイムスタンプである。すなわち、データベースサーバ20から取得して監視端末40に送信済みのデータが、データベースサーバ20に記憶された時刻を示すタイムスタンプである。また、共通タイムスタンプ記憶部314の記憶するタイムスタンプは、最後に監視端末40にデータを送信した送信時刻も示している。
判定処理321aは、端末別タイムスタンプ記憶部324aに記憶したタイムスタンプの時刻よりも、共通タイムスタンプ記憶部314に記憶したタイムスタンプの時刻のほうが新しい場合に、要求出力処理323aに通知信号を送信する。
また、判定処理321aは、要求出力処理323aに通知信号を送信すると、共通タイムスタンプ記憶部314から取得したタイムスタンプを端末別タイムスタンプ記憶部324aに記憶させ、タイムスタンプの更新を行う。すなわち、端末別タイムスタンプ記憶部324aに記憶したタイムスタンプの時刻が、データベースサーバ20から取得し、監視端末40aに送信するデータの更新時刻となる。
【0037】
要求出力処理323aは、判定処理321aから通知信号を受信すると、データベースサーバ20にデータの取得要求を送信する。データの取得要求を処理サーバ30から受信したデータベースサーバ20は、要求されたデータを処理サーバ30に送信する。
【0038】
処理サーバ30は、データベースサーバ20から送信されたデータを、通信インターフェース35で受信する。制御部31は、受信したデータを受信処理311で制御部31内に入力し、解析処理312で解析する。解析処理312は、解析の結果、表示情報更新処理316aに送るデータであると判定し、表示情報更新処理316aにデータを出力する。
【0039】
表示情報更新処理316aは、解析処理312から送られたデータを表示情報生成処理330aに入力する。表示情報生成処理330aは、表示管理情報記憶部331aに記憶した表示管理情報を参照して、データベースサーバ20から取得したデータのうち、監視端末40aに表示させるデータを選択する。なお、表示管理情報記憶部331aも、RAM34の記憶領域の一部を使用している。図8に、表示管理情報の一例を示す。表示管理情報は、データベースサーバ20から取得したデータのうち、監視端末40aに表示させるデータの属性を記憶した情報である。表示管理情報には、データの属性と、この属性のデータを監視端末40aに表示させるか否かを示すフラグ情報とを含む。例えば、監視端末40aに表示させるデータである場合には、「1」のフラグが記録され、監視端末40aに表示させないデータである場合には、「0」のフラグが記録される。
表示情報生成処理330aは、表示管理情報を参照して、監視端末40aに表示するデータを含む表示情報を生成し、送信処理315に送る。
【0040】
送信処理315は、表示情報生成処理330aから送られた表示情報を通信インターフェース35に送る。通信インターフェース35は、ネットワーク25(50)で通信可能な信号に変換して、監視端末40aに送信する。図9に、監視端末40aに表示される表示情報の一例を示す。
【0041】
次に、図10に示すフローチャートを参照しながら、データ管理部22の通知信号生成処理224の処理手順を説明する。
データ処理223は、データベース部21のデータの更新処理を行うと、通知信号生成処理224に通知信号を生成するように要求する。データ処理223の要求を受けた(ステップS1/YES)通知信号生成処理224は、まず、計時部225を参照して現在時刻を取得する(ステップS2)。次に、通知信号生成処理224は、取得した現在時刻をタイムスタンプとして含む通知信号を生成し、生成した通知信号を処理サーバ30に送信する(ステップS3)。
【0042】
次に、図11に示すフローチャートを参照しながら、処理サーバ30の制御部31の処理手順を説明する。なお、図7の説明は、表示情報更新処理316aを例にした説明であったが、以下では、表示情報更新処理316aに限定するものではないため、タイマ処理322、端末別タイムスタンプ記憶部324等、すべて符号aを削除して表記する。
制御部31は、タイマ処理322で予め設定された設定時間を計時すると(ステップS11/YES)、タイムスタンプの比較を行う。すなわち、制御部31は、共通タイムスタンプ記憶部314に記憶したタイムスタンプと、端末別タイムスタンプ記憶部324に記憶したタイムスタンプとが一致するか否かを判定する(ステップS12)。タイムスタンプが一致すると判定した場合(ステップS13/YES)、制御部31は、この処理を終了する。また、タイムスタンプが一致しないと判定した場合(ステップS13/NO)、制御部31は、データベースサーバ20に接続し、データベースサーバ20に記憶したデータを取得する(ステップS14)。データベースサーバ20からデータを取得すると、制御部31は、表示管理情報記憶部331に記憶した表示管理情報を参照して、取得したデータのうち、監視端末40に表示させるデータを選択する(ステップS15)。制御部31は、選択したデータを用いて、監視端末40に表示させる表示情報を生成する(ステップS15)。表示情報を生成すると、制御部31は、生成した表示情報を監視端末40に送信する(ステップS16)。また、制御部31は、共通タイムスタンプ記憶部314から取得したタイムスタンプを端末別タイムスタンプ記憶部324に記憶する(ステップS17)。また、ステップS13で、タイムスタンプが一致したと判定した場合(ステップS13/YES)、制御部31は、この処理を終了する。すなわち、制御部31は、データベースサーバ20に記憶したデータと、監視端末40に送信済みのデータとが一致していると判定して、処理を終了する。
【0043】
このように、処理サーバ30は、通知信号に含まれる、データベース部21のデータの更新時刻を示すタイムスタンプと、端末別タイムスタンプ記憶部323に記憶した、既に監視端末40に送信済みのデータのタイムスタンプとを比較する。そして、処理サーバ30は、今回、通知信号として通知されたタイムスタンプが、既に端末別タイムスタンプ記憶部323に記憶したタイムスタンプよりも新しい場合に、データベースサーバ20にアクセスして、データの取得を要求する。従って、処理サーバ30は、監視端末40に送信済みのデータが最新ではない場合にだけ、データベースサーバ20に接続するので、データベースサーバ20への無駄なアクセスの発生を低減することができる。
【実施例2】
【0044】
添付図面を参照しながら実施例2について説明する。なお、実施例2の説明において、実施例1と共通する部分の説明は省略し、実施例1と相違する部分について説明する。
本実施例は、データベースサーバ20が複数のテーブルを記憶しており、データ管理部22は、テーブルごとにデータ更新を管理する。従って、データ管理部22は、データの更新処理を行ったテーブルがあると、このテーブルを識別する識別情報とタイムスタンプとを付加した通知信号を処理サーバ30に送信する。図12には、データベースサーバ20が、テーブル単位に通知信号を処理サーバ30に送信する様子を示す。
【0045】
また、処理サーバ30は、データベースサーバ20から通知されるタイムスタンプをテーブル単位で管理する。共通タイムスタンプ記憶部314と端末別タイムスタンプ記憶部324の記憶領域は、図12に示すようにデータベースサーバ20の記憶するテーブル単位で分割されている。
共通タイムスタンプ記憶部314の記憶領域は、各テーブルを識別する識別番号と、各テーブルのデータが更新された更新時刻を示すタイムスタンプとを記憶する。また、端末別タイムスタンプ記憶部324の記憶領域は、各テーブルを識別する識別番号と、データの更新時刻を示すタイムスタンプとを記憶する。この更新時刻は、監視端末40に送信済みのデータであって、監視端末40への送信時刻が最も新しいデータがデータベースサーバ20にデータ更新処理で登録されたときの更新時刻を示す。
【0046】
処理サーバ30は、予め設定された設定時間ごとに、端末別タイムスタンプ記憶部324に記憶したタイムスタンプと、共通タイムスタンプ記憶部314に記憶したスタンプとを比較する。共通タイムスタンプ記憶部314と端末別タイムスタンプ記憶部324は、データベースサーバ20の記憶するテーブル単位にタイムスタンプを記憶しているので、図12に示すように同じテーブル識別情報で登録したタイムスタンプ同士を比較する。
RAM34には、共通タイムスタンプ記憶部314と端末別タイムスタンプ記憶部324とのタイムスタンプの記憶場所を示す変数(以下、ポインタと呼ぶ)の記憶領域が用意される(図13参照)。タイムスタンプの比較の際には、図13に示すように、ポインタを使用して、同じテーブル識別情報で登録されたタイムスタンプ同士を比較する。図13には、ポインタの示す、共通タイムスタンプ記憶部314と端末別タイムスタンプ記憶部324とのテーブルBのタイムスタンプ同士を比較する様子を示す。
【0047】
また、データベースサーバ20は、複数のテーブルを記憶しているので、処理サーバ30にデータを送信する際に、複数のテーブルに記憶したデータを結合して1つの表にまとめたビュー表を生成し、処理サーバ30に送信してもよい。
具体的には、複数のテーブルの属性に注目し、異なるテーブルに同じ属性で登録され、さらにデータの値が同じものを結合してビュー表を生成する。図14に示す例では、テーブルAの顧客コードのデータ(図14(A)の[2610])とテーブルBの顧客コードのデータ(図14(B)の[2610])とが一致する。そこで、テーブルAの顧客コードのデータ[2610]と同じ行でテーブルAに登録したデータと、テーブルBの顧客コードのデータ[2610]と同じ行でテーブルBに登録したデータとを結合したビュー表を生成する。
同様に、図14に示す例では、テーブルAの製品コードのデータ(図14(A)の[J−6−13])と、テーブルCの製品コードのデータ(図14(C)の[J−6−13])とが一致する。そこで、テーブルAの製品コードのデータ[J−6−13]と同じ行でテーブルAに登録したデータと、テーブルCの製品コードのデータ[J−6−13]と同じ行でテーブルCに登録したデータとを結合したビュー表を生成する。
図14(D)に上述の結合によって生成されたしたビュー表の一例を示す。
【0048】
次に、図15に示すフローチャートを参照しながら実施例2の制御部31の処理手順を説明する。
制御部31は、予め設定された設定時間を経過する毎に(ステップS21/YES)、共通タイムスタンプ記憶部314と端末別タイムスタンプ記憶部324のタイムスタンプを比較する。まず、制御部31は、共通タイムスタンプ記憶部314のタイムスタンプの記憶場所を示すポインタと、端末別タイムスタンプ記憶部324のタイムスタンプの記憶場所を示すポインタとを0にリセットする(ステップS22)。
次に、制御部31は、ポインタの示す記憶場所がタイムスタンプの記憶場所を示しているかを判定する(ステップS23)。すなわち、共通タイムスタンプ記憶部314と、端末別タイムスタンプ記憶部324とのタイムスタンプを記憶した記憶範囲内の記憶場所をポインタが示しているかを判定する。
ポインタの示す記憶場所が、タイムスタンプを記憶した記憶範囲内の記憶場所であった場合(ステップS23/YES)、制御部31は、それぞれのポインタが示す記憶場所のタイムスタンプ同士を比較する(ステップS24)。すなわち、制御部31は、共通タイムスタンプ記憶部314のポインタが示す記憶場所に記憶したタイムスタンプと、端末別タイムスタンプ記憶部324のポインタが示す記憶場所に記憶したタイムスタンプとを比較する。両者が一致した場合には(ステップS25/YES)、制御部31は、それぞれのポインタを1インクリメントする。すなわち、共通タイムスタンプ記憶部314の記憶場所を示すポインタの値と、端末別タイムスタンプ記憶部324の記憶場所を示すポインタの値とを1インクリメントする(ステップS26)。その後、制御部31は、ステップS23からの処理を繰り返す。また、ステップS25で、タイムスタンプの値が不一致であると判定すると(ステップS25/NO)、制御部31は、データベースサーバ20に接続し、データの取得要求を送信する(ステップS27)。データベースサーバ20からデータを取得すると、制御部31は、表示管理情報を参照して、監視端末40に表示させる表示情報を生成する(ステップS28)。制御部31は、データベースサーバ20から取得したデータのうち、表示管理情報にフラグ[1]が記録された属性のデータを含む表示情報を生成する。表示情報を生成すると、制御部31は、生成した表示情報を監視端末40に表示する(ステップS29)。表示情報の送信が終了すると、制御部31は、共通タイムスタンプ記憶部314の記憶するタイムスタンプを取得し、取得したタイムスタンプを端末別タイムスタンプ記憶部324に記憶する(ステップS30)。このとき、制御部31は、ステップS25でタイムスタンプが不一致と判定したテーブルのタイムスタンプを共通タイムスタンプ記憶部314から取得する。そして、制御部31は、取得したタイムスタンプを、ステップS25で不一致と判定したテーブルのタイムスタンプを記憶する端末別タイムスタンプ記憶部324の記憶領域に記憶する。また、ステップS23で、ポインタの示す記憶場所がタイムスタンプの記憶場所を示していないと判定すると(ステップS23/NO)、制御部31は、この処理を終了する。すなわち、制御部31は、データベースサーバ20の各テーブルに登録したデータと、監視端末40に送信済みのデータとが一致していると判定して、処理を終了する。
【0049】
このように、処理サーバ30は、今回、データベースサーバ20から通知されたタイムスタンプが、既に端末別タイムスタンプ記憶部323に記憶したタイムスタンプよりも新しい場合に、データベースサーバ20にアクセスして、データを取得する。従って、処理サーバ30は、監視端末40に送信済みのデータが最新のデータではない場合にだけ、データベースサーバ20に接続するので、データベースサーバ20への無駄なアクセスの発生を低減することができる。
【実施例3】
【0050】
添付図面を参照しながら実施例3について説明する。なお、実施例3の説明においては、実施例1と共通する部分の説明は省略し、実施例1と相違する部分について説明する。
本実施例は、テーブルに登録したデータの属性を単位として、データの更新を管理する。すなわち、データ管理部22は、同じテーブルに、同じ属性で記憶したデータに更新があると、タイムスタンプを含む通知信号を処理サーバ30に送信する。なお、通知信号には、タイムスタンプの他に、テーブルを識別するテーブル識別情報と、属性を識別する属性情報とが含まれる。
図16には、データベースサーバ20の記憶するテーブルA,Bと、処理サーバ30の共通タイムスタンプ記憶部314と端末別タイムスタンプ記憶部324とに記憶するデータの例を示す。図16に示すように処理サーバ30の共通タイムスタンプ記憶部314と端末別タイムスタンプ記憶部324との各記憶領域には、テーブルを識別するテーブル識別情報と、属性情報と、この属性でテーブルに登録したデータの更新時刻を示すタイムスタンプとが記憶される。
処理サーバ30は、共通タイムスタンプ記憶部314と端末別タイムスタンプ記憶部324とに同じテーブル識別情報と属性情報とで記憶したタイムスタンプ同士を比較して、その属性情報が示すデータベースサーバ20のデータに更新があるか否かを判定する。
なお、データベースサーバ20に記憶した全てのテーブルで属性を単位にデータ更新を管理しなくてもよい。例えば、テーブルAは、属性を単位にデータの更新を管理し、テーブルBは、実施例2のようにテーブル単位にデータの更新を管理してもよい。
【0051】
また、処理サーバ30のRAM34には、結合管理情報を記憶している。上述した実施例2のデータベースサーバ20は、複数のテーブルに登録したデータの属性に注目し、属性が同じであってさらにデータ自体も同じものを結合してビュー表を生成していた。本実施例は、データ同士を結合させる属性を記憶した結合管理情報を処理サーバ30のRAM34に記憶しておく。図17に結合管理情報の一例を示す。結合管理情報には、異なるテーブルに登録されたデータ同士を結合してビュー表を作成するときに、データ同士を結合するキーとなる属性(以下、結合属性という)が記録される。具体的には、図17に示すように各テーブルに登録された属性と、各属性が結合属性かそれ以外の属性であるかを示すフラグとが記録される。フラグとして[1]が記録された属性が、結合属性であることを示している。
処理サーバ30は、データベースサーバ20にデータの取得要求を送信するか否かを判定するときに、この結合管理情報を参照して、結合属性として登録されたデータに更新があるか否かを判定する。そして、処理サーバ30は、更新されたデータが、結合属性として結合管理情報に登録された属性のデータである場合には、データベースサーバ20にデータの取得要求を送信する。属性が結合属性のデータであった場合、ビュー表の構成自体が変更になるため、処理サーバ30は、データベースサーバ20にデータの取得を要求する。
【0052】
さらに、本実施例は、監視端末40に表示情報として表示させるデータに更新があった場合にも、データベースサーバ20に接続して、データベースサーバ20にデータの取得を要求する。具体的には、制御部31は、データ更新されたデータの属性を検出し、図8に示す表示管理情報を参照して、検出した属性が表示管理情報に表示させる属性として登録された属性であるか否かを判定する。処理サーバ30は、更新されたデータが、監視端末40に表示するデータとして表示管理情報に登録されたデータであった場合に、データベースサーバ20にデータの取得を要求する。
【0053】
次に、図18に示すフローチャートを参照しながら実施例3の制御部31の処理手順を説明する。なお、ステップS35までの処理は、上述した実施例2と同一であるので説明を省略する。
制御部31は、ポインタの示す、共通タイムスタンプ記憶部314の記憶場所に記憶したタイムスタンプと、ポインタの示す、端末別タイムスタンプ記憶部324の記憶場所に記憶したタイムスタンプとを比較する(ステップS35)。両者が一致しなかった場合(ステップS35/NO)、制御部31は、タイムスタンプが不一致で更新があったと判定したデータの属性が、表示管理情報に、監視端末40に表示させる属性として登録された属性であるか否かを判定する(ステップS36)。更新されたデータの属性が、表示管理情報に、表示させる属性として登録されていた場合には(ステップS36/YES)、処理サーバ30は、データベースサーバ20に接続し、データの取得を要求する(ステップS39)。
【0054】
また、タイムスタンプが不一致で更新があったと判定したデータの属性が、表示管理情報に、表示させる属性として登録されていなかった場合(ステップS36/NO)、制御部31は、次の判定に移行する。次の判定では、制御部31は、タイムスタンプが不一致で更新があったと判定したデータの属性が、結合管理情報に、結合属性として登録された属性であるか否かを判定する(ステップS37)。更新されたデータの属性が、結合管理情報に、結合属性として登録された属性として登録されていた場合には(ステップS37/YES)、処理サーバ30は、データベースサーバ20に接続し、データの取得を要求する(ステップS39)。また、更新されたデータの属性が、結合管理情報に、結合属性として登録されていなかった場合(ステップS37/NO)、制御部31は、それぞれのポインタを1インクリメントする。すなわち、制御部31は、共通タイムスタンプ記憶部314の記憶場所を示すポインタの値と、端末別タイムスタンプ記憶部324の記憶場所を示すポインタの値とを1インクリメントする(ステップS38)。その後、制御部31は、ステップS23からの処理を繰り返す。
なお、ステップS39でデータベースサーバ20に接続し、データベースサーバ20にデータの取得を要求した後の処理手順は、図15に示す手順と同一であるため説明を省略する。
【0055】
データベースサーバ20も、上述した結合管理情報をデータ管理部22に記憶している。データ管理部22は、結合管理情報に基づいて異なるテーブルに登録されたデータ同士を結合したビュー表を生成して、処理サーバ30に送信する。
なおビュー表の作成を、処理サーバ30で行ってもよい。例えば、処理サーバ30がSQL(Structured Query Language)文を生成してデータベースサーバ20に送信し、データベースサーバ20からビュー表の生成に必要なデータを取得する。処理サーバ30は、取得したデータを使用してビュー表を生成する。このような場合であっても、処理サーバ30は、結合属性のデータに更新があったとき、又は監視端末40に表示させる属性のデータに更新があったときだけデータベースサーバ20からデータを取得すればよいので、SQL文の発行回数を低減することができる。
【0056】
このように本実施例は、データベースサーバ20の記憶するデータに更新があっても、更新されたデータが監視端末40に表示させるデータではなかった場合には、データベースサーバ20にデータの取得を要求しない。同様に、データベースサーバ20の記憶するデータに更新があっても、更新されたデータがビュー表を生成する際に結合するデータではなかった場合には、データベースサーバ20にデータの取得を要求しない。従って、処理サーバ30は、ビュー表として監視端末に表示させるデータ、又はビュー表の構成が変更されるデータがデータベースサーバ20で更新された場合にだけ、データベースサーバ20に接続する。このため、処理サーバ30がデータベースサーバ20に接続し、データベースサーバ20からデータを取得する回数をさらに低減することができる。
【0057】
上述した実施例は、本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施が可能である。例えば、上述した実施例1〜3では、データベースサーバ20のデータ更新をタイムスタンプに基づいて判定していたが、データの更新処理の度に値が1加算される番号をデータ管理部22で発行してもよい。処理サーバ30は、データベースサーバ20から通知信号として通知された番号と、既に端末別タイムスタンプ記憶部324に記憶している番号とを比較し、通知信号として通知された番号の方が大きい場合に、データの更新があったと判定する。
【0058】
なお、図11、15、18のフローチャートに示す処理は、プログラム制御されたコンピュータによって実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくこともできる。すなわち、処理サーバ30の制御部31の機能を実現するためのソフトウェアのプログラムが記録されている記録媒体を、処理サーバ30に供給し、CPU32が記憶媒体に格納されたプログラムを読み出し実行することによっても、上記実施例と同様の効果を奏する。プログラムを供給するための記憶媒体としては、例えば、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、又はSD(Secure Digital memory card)カードなどがある。
【0059】
また、上述した実施例では、処理サーバ30が、データベースサーバ20でデータ更新が行われているか否かを判定し、データ更新が行われている場合に、データベースサーバ20からデータを取得して監視端末40に送信していた。
これ以外に、処理サーバ30は、監視端末40からの問いあわせを受信した場合に、データベースサーバ20でデータ更新が行われているか否かを判定するようにしてもよい。データ更新が行われていると判定した場合には、処理サーバ30は、データベースサーバ20に接続してデータを取得し、取得したデータを監視端末40に送信する。
【符号の説明】
【0060】
11 入力端末
20 データベースサーバ
21 データベース部
22 データ管理部
30 処理サーバ
40 監視端末
314 共通タイムスタンプ記憶部
321 判定処理
322 タイマ処理
323 要求出力処理
324 端末別タイムスタンプ記憶部
330 表示情報生成処理
331 表示管理情報記憶部

【特許請求の範囲】
【請求項1】
コンピュータを、データベースからデータを取得して、端末に送信するデータベースアクセスシステムとして機能させるデータベースアクセスプログラムであって、
前記コンピュータを、
前記データベースを管理するデータベース管理装置から、前記データベースのデータ更新を通知する通知情報を受信する受信手段と、
前記受信手段で受信した前記通知情報に含まれる、前記データベースのデータの更新時刻情報を第1記憶手段に記憶させる処理手段と、
最後に端末にデータを送信した送信時刻情報を記憶した第2記憶手段に記憶した前記送信時刻情報と、前記第1記憶手段に記憶した前記更新時刻情報とを比較して、前記送信時刻よりも後に前記データベースのデータ更新が行われているか否かを判定する判定手段と、
前記判定手段により、前記送信時刻よりも後に前記データベースのデータ更新が行われていると判定した場合に、前記データベース管理装置にデータの取得要求を出力する出力手段として機能させる、データベースアクセスプログラム。
【請求項2】
前記判定手段は、端末の表示部に表示させるデータを記憶した第3記憶手段を参照して、前記送信時刻よりも後に、前記表示部に表示させるデータのデータ更新が行われたか否かを判定し、
前記出力手段は、前記送信時刻よりも後に、前記表示部に表示させるデータのデータ更新が行われた場合に、前記データ管理装置にデータの取得要求を出力する、請求項1記載のデータベースアクセスプログラム。
【請求項3】
前記処理手段は、データ更新が行われた場合に前記データベース管理装置から前記通知情報として通知される、前記データ更新で更新されたデータの属性を示す属性情報を前記第1記憶手段に記憶させ、
前記判定手段手段は、データを登録する複数のテーブルにそれぞれ登録された1件分のデータのうち、属性と値とが同一のデータ同士を結合して新たな1件分のデータを生成する結合処理の際に使用する、結合させるデータの属性を記憶した第4記憶手段を参照して、前記送信時刻よりも後に、前記結合させる属性のデータのデータ更新が行われたか否かを判定し、
前記出力手段は、前記送信時刻よりも後に、前記結合させる属性のデータのデータ更新が行われた場合に、前記データ管理装置にデータの取得要求を出力する、請求項1又は2記載のデータベースアクセスプログラム。
【請求項4】
データベースを管理するデータベース管理装置から、前記データベースのデータ更新を通知する通知情報を受信する受信手段と、
前記受信手段で受信した前記通知情報に含まれる、前記データベースのデータの更新時刻情報を第1記憶手段に記憶させる処理手段と、
最後に端末にデータを送信した送信時刻情報を記憶した第2記憶手段に記憶した前記送信時刻情報と、前記第1記憶手段に記憶した前記更新時刻情報とを比較して、前記送信時刻よりも後に前記データベースのデータ更新が行われているか否かを判定する判定手段と、
前記判定手段により、前記送信時刻よりも後に前記データベースのデータ更新が行われていると判定した場合に、前記データベース管理装置にデータの取得要求を出力する出力手段とを備えるデータ取得装置。
【請求項5】
データベースからデータを取得して、端末に送信するデータ取得装置によって実行されるデータベースアクセス方法であって、
前記データベースを管理するデータベース管理装置から、前記データベースのデータ更新を通知する通知情報を受信する受信ステップと、
前記受信ステップで受信した前記通知情報に含まれる、前記データベースのデータの更新時刻情報を第1記憶手段に記憶させる処理ステップと、
最後に端末にデータを送信した送信時刻情報を記憶した第2記憶手段に記憶した前記送信時刻情報と、前記第1記憶手段に記憶した前記更新時刻情報とを比較して、前記送信時刻よりも後に前記データベースのデータ更新が行われているか否かを判定する判定ステップと、
前記判定ステップにより、前記送信時刻よりも後に前記データベースのデータ更新が行われていると判定した場合に、前記データベース管理装置にデータの取得要求を出力する出力ステップとを有するデータベースアクセス方法。

【図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

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate