(57)【要約】【課題】  無駄なデータベースサーバへのアクセスを低減するデータベースアクセスプログラムを提供する。【解決手段】  コンピュータを、データ管理部２２から受信した通知情報に含まれる、データベース部２１のデータの更新時刻情報を共通タイムスタンプ記憶部３１４に記憶させる手段と、最後に監視端末４０にデータを送信した送信時刻情報を記憶した端末別タイムスタンプ記憶部３２４に記憶した送信時刻情報と、共通タイムスタンプ記憶部３１４に記憶した更新時刻情報とを比較して、送信時刻よりも後にデータベース部２１のデータ更新が行われているか否かを判定する手段と、送信時刻よりも後にデータベース部２１のデータ更新が行われていると判定した場合に、データ管理部２２にデータの取得要求を出力する手段として機能させる。【選択図】        図７
2011019161.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、データベースからデータを取得して、端末に送信するデータベースアクセスシステムとして機能させるデータベースアクセスプログラムであって、
前記コンピュータを、
前記データベースを管理するデータベース管理装置から、前記データベースのデータ更新を通知する通知情報を受信する受信手段と、
前記受信手段で受信した前記通知情報に含まれる、前記データベースのデータの更新時刻情報を第１記憶手段に記憶させる処理手段と、
最後に端末にデータを送信した送信時刻情報を記憶した第２記憶手段に記憶した前記送信時刻情報と、前記第１記憶手段に記憶した前記更新時刻情報とを比較して、前記送信時刻よりも後に前記データベースのデータ更新が行われているか否かを判定する判定手段と、
前記判定手段により、前記送信時刻よりも後に前記データベースのデータ更新が行われていると判定した場合に、前記データベース管理装置にデータの取得要求を出力する出力手段として機能させる、データベースアクセスプログラム。
【請求項２】
前記判定手段は、端末の表示部に表示させるデータを記憶した第３記憶手段を参照して、前記送信時刻よりも後に、前記表示部に表示させるデータのデータ更新が行われたか否かを判定し、
前記出力手段は、前記送信時刻よりも後に、前記表示部に表示させるデータのデータ更新が行われた場合に、前記データ管理装置にデータの取得要求を出力する、請求項１記載のデータベースアクセスプログラム。
【請求項３】
前記処理手段は、データ更新が行われた場合に前記データベース管理装置から前記通知情報として通知される、前記データ更新で更新されたデータの属性を示す属性情報を前記第１記憶手段に記憶させ、
前記判定手段手段は、データを登録する複数のテーブルにそれぞれ登録された１件分のデータのうち、属性と値とが同一のデータ同士を結合して新たな１件分のデータを生成する結合処理の際に使用する、結合させるデータの属性を記憶した第４記憶手段を参照して、前記送信時刻よりも後に、前記結合させる属性のデータのデータ更新が行われたか否かを判定し、
前記出力手段は、前記送信時刻よりも後に、前記結合させる属性のデータのデータ更新が行われた場合に、前記データ管理装置にデータの取得要求を出力する、請求項１又は２記載のデータベースアクセスプログラム。
【請求項４】
データベースを管理するデータベース管理装置から、前記データベースのデータ更新を通知する通知情報を受信する受信手段と、
前記受信手段で受信した前記通知情報に含まれる、前記データベースのデータの更新時刻情報を第１記憶手段に記憶させる処理手段と、
最後に端末にデータを送信した送信時刻情報を記憶した第２記憶手段に記憶した前記送信時刻情報と、前記第１記憶手段に記憶した前記更新時刻情報とを比較して、前記送信時刻よりも後に前記データベースのデータ更新が行われているか否かを判定する判定手段と、
前記判定手段により、前記送信時刻よりも後に前記データベースのデータ更新が行われていると判定した場合に、前記データベース管理装置にデータの取得要求を出力する出力手段とを備えるデータ取得装置。
【請求項５】
データベースからデータを取得して、端末に送信するデータ取得装置によって実行されるデータベースアクセス方法であって、
前記データベースを管理するデータベース管理装置から、前記データベースのデータ更新を通知する通知情報を受信する受信ステップと、
前記受信ステップで受信した前記通知情報に含まれる、前記データベースのデータの更新時刻情報を第１記憶手段に記憶させる処理ステップと、
最後に端末にデータを送信した送信時刻情報を記憶した第２記憶手段に記憶した前記送信時刻情報と、前記第１記憶手段に記憶した前記更新時刻情報とを比較して、前記送信時刻よりも後に前記データベースのデータ更新が行われているか否かを判定する判定ステップと、
前記判定ステップにより、前記送信時刻よりも後に前記データベースのデータ更新が行われていると判定した場合に、前記データベース管理装置にデータの取得要求を出力する出力ステップとを有するデータベースアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースアクセスプログラム、データ取得装置及びデータベースアクセス方法に関する。
【背景技術】
【０００２】
データベースサーバにアクセスし、データベースサーバからデータを取得する方式の一つとして、プル型と呼ばれるアクセス方式が知られている。このプル型のアクセス方式では、クライアント装置が定期的にデータベースサーバにアクセスして、ユーザによって事前に指定されたデータに更新があるか否かを問い合わせる。データに更新があった場合には、クライアント装置は、データベースサーバから更新されたデータを取得する。
【０００３】
また、データベースサーバへの無駄なアクセスを低減する技術として、特許文献１が知られている。特許文献１は、ユーザの使用する移動体端末と、移動体端末と無線通信を行う基地局と、データベースサーバとしての情報提供装置とを備えたシステムにおいて、情報提供装置への無駄なアクセスを低減する技術を開示している。移動体端末からデータの取得要求を受けた基地局は、情報提供装置に接続して、移動体端末から要求されたデータの更新時刻を示す更新情報を取得する。そして、基地局は、自身の記憶部に記憶しているデータの更新情報と、情報提供装置から取得した更新情報とを比較する。基地局は、更新情報を比較して、記憶部に記憶しているデータが最新のデータであると判定すると、情報提供装置からデータを取得することなく、自身の記憶部に記憶しているデータを移動体端末に送信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−３３６３５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、プル方式では、クライアント端末は、定期的にデータベースサーバにアクセスして、データに更新があったか否かを確認しなければならない。特許文献１も、基地局は、移動体端末から取得要求を受けると、記憶部に記憶したデータが最新のものであるか否かを判定するために情報提供装置に接続し、情報提供装置から更新情報を取得している。
【０００６】
本発明は上記事情に鑑みてなされたものであり、無駄なデータベースサーバへのアクセスを低減するデータベースアクセスプログラム、データ取得装置及びデータベースアクセス方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本明細書に開示のデータベースアクセスプログラムは、コンピュータを、データベースからデータを取得して、端末に送信するデータベースアクセスシステムとして機能させるデータベースアクセスプログラムであって、前記コンピュータを、前記データベースを管理するデータベース管理装置から、前記データベースのデータ更新を通知する通知情報を受信する受信手段と、前記受信手段で受信した前記通知情報に含まれる、前記データベースのデータの更新時刻情報を第１記憶手段に記憶させる処理手段と、最後に端末にデータを送信した送信時刻情報を記憶した第２記憶手段に記憶した前記送信時刻情報と、前記第１記憶手段に記憶した前記更新時刻情報とを比較して、前記送信時刻よりも後に前記データベースのデータ更新が行われているか否かを判定する判定手段と、前記判定手段により、前記送信時刻よりも後に前記データベースのデータ更新が行われていると判定した場合に、前記データベース管理装置にデータの取得要求を出力する出力手段とを備える。
本明細書に開示のデータベースアクセスプログラムによれば、データベース管理装置から通知されるデータベースの更新時刻情報と、最後に端末にデータを送信した送信時刻情報とを比較して、送信時刻よりも後にデータベースのデータ更新が行われているか否かを判定する。そして、データベースのデータ更新が行われたと判定する場合に、データベースにデータの取得要求を出力する。従って、データベースへの無駄なアクセスの発生を低減することができる。
【発明の効果】
【０００８】
本明細書に開示のデータベースアクセスプログラムによれば、データベースへの無駄なアクセスの発生を低減することができる。
【図面の簡単な説明】
【０００９】
【図１】システム構成の一例を示す図である。
【図２】データベースサーバの構成の一例を示す図である。
【図３】データベースサーバの記憶するテーブルの一例を示す図である。
【図４】プログラム制御によって実現されるデータベースサーバの機能ブロックの一例を示す図である。
【図５】処理サーバのハードウェア構成の一例を示す図である。
【図６】プログラム制御によって実現される処理サーバの機能ブロックの一例を示す図である。
【図７】図６に示す表示情報更新処理の詳細な構成の一例を示す図である。
【図８】処理サーバのＲＡＭに記憶される表示管理情報の一例を示す図である。
【図９】監視端末に表示される表示情報の一例を示す図である。
【図１０】データベースサーバのデータ管理部の処理手順の一例を示すフローチャートである。
【図１１】実施例１の処理サーバの制御部の処理手順の一例を示すフローチャートである。
【図１２】実施例２の動作概要を示す図である。
【図１３】タイムスタンプの比較方法を説明するための図である。
【図１４】（Ａ）〜（Ｃ）は、データベースサーバに記憶されるテーブルの例を示し、（Ｄ）は、（Ａ）〜（Ｃ）のテーブルのデータを結合したビュー表の構成の一例を示す図である。
【図１５】実施例２の処理サーバの制御部の処理手順の一例を示すフローチャートである。
【図１６】実施例３の動作概要を示す図である。
【図１７】処理サーバのＲＡＭに記憶される結合管理情報の一例を示す図である。
【図１８】実施例３の処理サーバの制御部の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照しながら本発明の好適な実施例を説明する。
【実施例１】
【００１１】
まず、図１を参照しながら本実施例の構成について説明する。
本実施例は、複数の入力端末１１ａ〜１１ｎ（ｎは任意の自然数）と、データベースサーバ２０と、処理サーバ３０と、複数の監視端末４０ａ〜４０ｍ（ｍは任意の自然数）とをネットワークに接続したシステム構成を備える。なお、以下の説明では、各入力端末１１ａ〜１１ｍを区別する必要がない場合には、入力端末１１と表記する。同様に、各監視端末４０ａ〜４０ｍを区別する必要がない場合には、監視端末４０と表記する。
【００１２】
複数の入力端末１１ａ〜１１ｎは、コールセンタ１０に設置される端末であり、顧客からの電話に応対するオペレータが使用する端末である。入力端末１１ａ〜１１ｎはＬＡＮ等の内部ネットワーク１２にそれぞれ接続している。この内部ネットワーク１２は、ＷＡＮ（Wide Area Network）等の広域ネットワーク５０に接続する。入力端末１１ａ〜１１ｎは、内部ネットワーク１２、広域ネットワーク５０を介してデータベースサーバ２０等に接続可能である。
【００１３】
コールセンタ１０のオペレータは、顧客からの問いあわせを受け付けると、受け付けた問いあわせを入力端末１１に入力する。入力端末１１は、オペレータの入力した問いあわせ情報を、内部ネットワーク１２と広域ネットワーク５０とを介してデータベースサーバ２０に送信する。なお、図１には、コールセンタ１０を１つだけ示しているが、コールセンタ１０の数は１つである必要はなく、複数あってもよい。また、１つのコールセンタ１０内に設ける入力端末１１ａ〜１１ｍの数も任意である。
【００１４】
データベースサーバ２０と処理サーバ３０とは、同一のネットワーク（以下、内部ネットワーク２５と呼ぶ）に配置される。内部ネットワーク２５も広域ネットワーク５０に接続する。データベースサーバ２０は、入力端末１１と接続し、入力端末１１から送られた問いあわせ情報を後述するデータベース部２１に記憶する。また、処理サーバ３０は、必要であると判定した場合に、データベースサーバ２０と接続し、データベースサーバ２０からデータを取得する。データベースサーバ２０は、取得したデータを、監視端末４０に送信する。なお、データベースサーバ２０と、処理サーバ３０の処理の詳細については後述する。
【００１５】
監視端末４０ａ〜４０ｍは、複数のサービス拠点に設けられ、顧客にサービスを提供するサービス提供者によって使用される。監視端末４０ａ〜４０ｍも各サービス拠点に敷設された内部ネットワークに接続しており、この内部ネットワークは、広域ネットワーク５０に接続する。監視端末４０は、処理サーバ３０から送信されたデータを受信し、受信したデータを表示部に表示する。サービス提供者は、表示部に表示されたデータを参照して、問いあわせのあった顧客にサービスを提供する。
【００１６】
次に、図２を参照しながらデータベースサーバ２０の構成の一例について説明する。
データベースサーバ２０は、データを記憶するデータベース部２１と、データベース部２１に記憶したデータを管理するデータ管理部２２とを備える。データ管理部２２は、データベース部２１にデータを記憶したり、データベース部２１に既に記憶済みのデータに新たなデータを上書きして更新したり、データベース部２１に記憶したデータを検索して読み出す処理を行う。なお、データ管理部２２は、データベース管理システム（Database Management System）として一般的に知られた装置である。
【００１７】
図３に、データベースサーバ２０のデータベース部２１に記憶するデータの一例を示す。データベース部２１は、データ管理部２２の制御によりデータをテーブルに登録する。データ管理部２２は、データの検索が容易となるようにデータとデータの属性とを対応付けてテーブルに登録する。テーブルは、データを記憶するデータ記憶領域２３と、データ記憶領域２３のデータの属性を示す属性記憶領域２４とを備える。例えば、図３に示すテーブルは、データの属性として、識別番号、受付日、状況、顧客コード、顧客名、住所、製品コード、製品名、バージョン情報、パッチ情報、メモ情報等を含む。また、図３に示すテーブルの同一行に登録されたデータが１件分のデータに該当する。
【００１８】
次に、図４を参照しながらプログラム制御によって実現されるデータ管理部２２の機能ブロックについて説明する。機能ブロックとは、データ管理部２２の備えるＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）などのハードウェアと、ＲＯＭ（Read Only Memory）に記憶したプログラムとの協働によって実現される処理を一定の機能ごとにまとめたブロックである。なお、データ管理部２２のハードウエア構成については、一般的に知られた構成であるので図示を省略する。  データ管理部２２は、通信処理２２１と、解析処理２２２と、データ処理２２３と、通知信号生成処理２２４とを機能ブロックとして備えている。
【００１９】
通信処理２２１は、ネットワーク２５、５０を介して入力端末１１や処理サーバ３０から送信される信号を受信し、受信した信号を解析処理２２２に送る。
また、通信処理２２１は、データ処理２２３がデータベース部２１から読み出したデータを含む信号や、通知信号生成処理２２４で生成した通知信号を内部ネットワーク２５を介して処理サーバ３０に送信する。
【００２０】
解析処理２２２は、入力端末１１ａ〜１１ｎから送信され、通信処理２２１で受信した信号を入力する。同様に、解析処理２２２は、処理サーバ３０から送信され、通信処理２２１で受信した信号を入力する。解析処理２２２は、入力した信号に含まれる処理要求やデータを取り出し、取り出した処理要求を解析する。そして、解析処理２２２は、解析結果に応じた処理をデータ処理２２３に要求する。例えば、入力端末１１ａ〜１１ｎから処理要求と共に送られたデータをデータベース部２１に記憶する処理や、データをデータベース部２１から読み出す処理などが含まれる。
【００２１】
データ処理２２３は、解析処理２２２の要求に従って、データベース部２１にデータを記憶したり、データベース部２１からデータを読み出したりする。なお、データベース部２１にデータを記憶する処理には、新規にデータを記憶する処理と、既に記憶しているデータに、更新されたデータを上書きする処理とが含まれる。これらの処理を以下では、データの更新処理と呼ぶ。また、データベース部２１から読み出したデータは、データ処理２２３から通信処理２２１に送られ、通信処理２２１の制御により処理サーバ３０に送信される。
また、データ処理２２３は、データベース部２１のデータの更新処理を行うと、通知信号生成処理２２４に対して通知信号を生成するように要求する。
【００２２】
通知信号生成処理２２４は、データ処理２２３から通知信号の生成要求を受信すると、時計部２２５の計時する時刻を、データ更新が行われた時刻を示すタイムスタンプとして含む通知信号を生成する。通知信号生成処理２２４は、生成した通知信号を通信処理２２１に送る。通信処理２２１は、通知信号生成処理２２４から受信した通知信号を内部ネットワーク２５を介して処理サーバ３０に送信する。
【００２３】
次に、処理サーバ３０について説明する。処理サーバ３０は、監視端末４０からの問いあわせに基づいて、データベースサーバ２０のデータを取得するデータベースアクセスシステムとして機能する装置である。
まず、図５を参照しながら処理サーバ３０のハードウェア構成の一例を説明する。処理サーバ３０は、制御部３１、通信インターフェース３５、操作部３６、入力インターフェース３７、グラフィックインターフェース３８、表示部３９を備える。また、制御部３１は、ＣＰＵ３２、ＲＯＭ３３、ＲＡＭ３４を備える。
【００２４】
まず、制御部３１について説明する。ＲＯＭ３３には、ＣＰＵ３２が制御に使用する制御プログラムが記録されており、ＣＰＵ３２は、起動すると、制御プログラムをＲＯＭ３３から読み出してＲＡＭ３４に記憶させる。その後、ＣＰＵ３２は、ＲＡＭ３４に記憶したプログラムに従って処理を行う。ＲＡＭ３４は、ＣＰＵ３２のワークメモリとして使用され、ＣＰＵ３２が演算に使用するデータや、ＣＰＵ３２による演算後のデータ等が記憶される。ＣＰＵ３２、ＲＡＭ３４などのハードと、ＲＯＭ３３に記憶したプログラムとの協働によって実現される機能ブロックについては、図６、７を参照しながら説明する。なお、ＲＡＭ３４が本発明の第１記憶手段〜第４記憶手段に該当する。
【００２５】
通信インターフェース３５は、制御部３１の制御に従って、内部ネットワーク２５（広域ネットワーク５０）に接続し、例えば、データベースサーバ２０や監視端末４０とデータ通信を行う。
【００２６】
操作部３６は、ユーザによって入力される操作情報を受け付ける受付部である。操作部３６で受け付けた操作情報は、入力インターフェース３７を介して制御部３１に送られる。
【００２７】
グラフィックインターフェース３８は、制御部３１で処理されたグラフィックデータを表示部３９に表示させるためのインターフェースであり、表示部３９に表示させるためにグラフィックデータを波形電気信号に変換する。
【００２８】
次に、図６を参照しながらプログラム制御によって実現される処理サーバ３０の機能ブロックについて説明する。処理サーバ３０は、受信処理３１１と、解析処理３１２と、登録処理３１３と、送信処理３１５と、複数の表示情報更新処理３１６ａ、３１６ｂ、・・・、３１６ｍとを備える。なお、図６に示す共通タイムスタンプ記憶部（本発明の第１記憶手段に該当する）３１４は、ＲＡＭ３４の記憶領域を使用した記憶部である。ＣＰＵ３２（登録処理３１３）の制御によって、データをＲＡＭ３４（共通タイムスタンプ記憶部３１４）に記憶する。
【００２９】
受信処理３１１は、通信インターフェース３５で受信した信号を入力し、入力した信号を解析処理３１２に送る。
【００３０】
解析処理３１２は、受信処理３１１から送られた信号から処理要求やデータを取り出す。解析処理３１２は、取り出した処理要求を解析して、解析結果に応じた処理の実行を登録処理３１３や表示情報更新処理３１６ａ〜３１６ｍに要求する。
例えば、受信処理３１１で入力した信号が、データベースサーバ２０から送信された通知信号であったとする。この場合、解析処理３１２は、通知信号に含まれるタイムスタンプと、タイムスタンプの登録要求を登録処理３１３に送る。また、受信処理３１１で入力した信号に、表示情報更新処理３１６がデータベースサーバ２０に送信した未取得データの取得要求に応じて、データベースサーバ２０が処理サーバ３０に送信したデータが含まれているとする。この場合、解析処理３１２は、信号に含まれるデータを取り出して、データ取得要求を送信した表示情報更新処理３１６に送る。なお、未取得データとは、監視端末４０ａ〜４０ｍが未取得のデータである。
【００３１】
登録処理３１３は、解析処理３１２の要求に従って、タイムスタンプを共通タイムスタンプ記憶部３１４に記憶する。なお、共通タイムスタンプ記憶部３１４に記憶したタイムスタンプは、すべての表示情報更新処理３１６ａ〜３１６ｍによって参照することができる。
【００３２】
送信処理３１５は、表示情報更新処理３１６ａ〜３１６ｍから送られた未取得データの取得要求や、監視端末４０に表示する表示情報を通信インターフェース３５に送信する。
【００３３】
表示情報更新処理３１６ａ〜３１６ｍは、各監視端末４０ａ〜４０ｍに対応して、監視端末４０ａ〜４０ｍと同数設けられる。なお、以下の説明において、表示情報更新処理３１６ａ〜３１６ｍを区別する必要がない場合には、総称して表示情報更新処理３１６と表記する。
表示情報更新処理３１６ａ〜３１６ｍは、所定時間ごとに起動し、対応する監視端末４０ａ〜４０ｍが未取得のデータを、データベースサーバ２０が記憶しているか否かを判定する。対応する監視端末４０ａ〜４０ｍが未取得のデータを、データベースサーバ２０が記憶していると判定する場合、表示情報更新処理３１６ａ〜３１６ｍは、データベースサーバ２０にデータの取得を要求する。なお、判定の詳細については図７を参照しながら説明する。
【００３４】
図７には、表示情報更新処理３１６の詳細を示す。なお、表示情報更新処理３１６ａ〜３１６ｍはほぼ同一の処理を行うので、図７には、代表して表示情報更新処理３１６ａの処理を示す。なお、表示情報更新処理３１６ａ〜３１６ｍは、連動して動作するわけではなく、それぞれが独立して処理を行う。
表示情報更新処理３１６ａは、取得判定処理３２０ａと、表示情報生成処理３３０ａとを含む。また、取得判定処理３２０ａは、判定処理３２１ａと、タイマ処理３２２ａと、要求出力処理３２３ａとを含む。また、端末別タイムスタンプ記憶部（本発明の第２記憶手段に該当する）３２４ａは、ＲＡＭ３４の記憶領域を使用した記憶部である。ＣＰＵ３２（判定処理３２１ａ）の制御によって、データをＲＡＭ３４（端末別タイムスタンプ記憶部３２４ａ）に記憶する。なお、端末別タイムスタンプ記憶部３２４ａは、各表示情報更新処理３１６ａにだけ設けられるものではなく、各表示情報更新処理３１６ａ〜３１６ｍにそれぞれ設けられる。対応する各表示情報更新処理３１６ａ〜３１６ｍだけが、端末別タイムスタンプ記憶部３２４ａ〜３２４ｍの記憶情報を参照することができる。
【００３５】
まず、取得判定処理３２０ａについて説明する。タイマ処理３２２ａは、時間を計時し、予め設定された時間を計時すると、判定処理３２１ａに通知信号を送る。
【００３６】
判定処理３２１ａは、タイマ処理３２２ａから通知信号を受信すると、端末別タイムスタンプ記憶部３２４ａに記憶したタイムスタンプ（本発明の送信時刻情報に該当）と、共通タイムスタンプ記憶部３１４に記憶したタイムスタンプ（本発明の更新時刻情報に該当）とを比較する。
共通タイムスタンプ記憶部３１４に記憶するタイムスタンプは、データベースサーバ２０の記憶するデータが更新されるごとに、データベースサーバ２０から送信される通知信号に含まれるタイムスタンプである。すなわち、共通タイムスタンプ記憶部３１４に記憶するタイムスタンプは、データベースサーバ２０のデータの最新の更新時刻を示す。
また、端末別タイムスタンプ記憶部３２４ａの記憶するタイムスタンプは、前回、表示情報更新処理３１６ａがデータベースサーバ２０からデータを取得したときに、共通タイムスタンプ記憶部３１４に記憶していたタイムスタンプである。すなわち、データベースサーバ２０から取得して監視端末４０に送信済みのデータが、データベースサーバ２０に記憶された時刻を示すタイムスタンプである。また、共通タイムスタンプ記憶部３１４の記憶するタイムスタンプは、最後に監視端末４０にデータを送信した送信時刻も示している。
判定処理３２１ａは、端末別タイムスタンプ記憶部３２４ａに記憶したタイムスタンプの時刻よりも、共通タイムスタンプ記憶部３１４に記憶したタイムスタンプの時刻のほうが新しい場合に、要求出力処理３２３ａに通知信号を送信する。
また、判定処理３２１ａは、要求出力処理３２３ａに通知信号を送信すると、共通タイムスタンプ記憶部３１４から取得したタイムスタンプを端末別タイムスタンプ記憶部３２４ａに記憶させ、タイムスタンプの更新を行う。すなわち、端末別タイムスタンプ記憶部３２４ａに記憶したタイムスタンプの時刻が、データベースサーバ２０から取得し、監視端末４０ａに送信するデータの更新時刻となる。
【００３７】
要求出力処理３２３ａは、判定処理３２１ａから通知信号を受信すると、データベースサーバ２０にデータの取得要求を送信する。データの取得要求を処理サーバ３０から受信したデータベースサーバ２０は、要求されたデータを処理サーバ３０に送信する。
【００３８】
処理サーバ３０は、データベースサーバ２０から送信されたデータを、通信インターフェース３５で受信する。制御部３１は、受信したデータを受信処理３１１で制御部３１内に入力し、解析処理３１２で解析する。解析処理３１２は、解析の結果、表示情報更新処理３１６ａに送るデータであると判定し、表示情報更新処理３１６ａにデータを出力する。
【００３９】
表示情報更新処理３１６ａは、解析処理３１２から送られたデータを表示情報生成処理３３０ａに入力する。表示情報生成処理３３０ａは、表示管理情報記憶部３３１ａに記憶した表示管理情報を参照して、データベースサーバ２０から取得したデータのうち、監視端末４０ａに表示させるデータを選択する。なお、表示管理情報記憶部３３１ａも、ＲＡＭ３４の記憶領域の一部を使用している。図８に、表示管理情報の一例を示す。表示管理情報は、データベースサーバ２０から取得したデータのうち、監視端末４０ａに表示させるデータの属性を記憶した情報である。表示管理情報には、データの属性と、この属性のデータを監視端末４０ａに表示させるか否かを示すフラグ情報とを含む。例えば、監視端末４０ａに表示させるデータである場合には、「１」のフラグが記録され、監視端末４０ａに表示させないデータである場合には、「０」のフラグが記録される。
表示情報生成処理３３０ａは、表示管理情報を参照して、監視端末４０ａに表示するデータを含む表示情報を生成し、送信処理３１５に送る。
【００４０】
送信処理３１５は、表示情報生成処理３３０ａから送られた表示情報を通信インターフェース３５に送る。通信インターフェース３５は、ネットワーク２５（５０）で通信可能な信号に変換して、監視端末４０ａに送信する。図９に、監視端末４０ａに表示される表示情報の一例を示す。
【００４１】
次に、図１０に示すフローチャートを参照しながら、データ管理部２２の通知信号生成処理２２４の処理手順を説明する。
データ処理２２３は、データベース部２１のデータの更新処理を行うと、通知信号生成処理２２４に通知信号を生成するように要求する。データ処理２２３の要求を受けた（ステップＳ１／ＹＥＳ）通知信号生成処理２２４は、まず、計時部２２５を参照して現在時刻を取得する（ステップＳ２）。次に、通知信号生成処理２２４は、取得した現在時刻をタイムスタンプとして含む通知信号を生成し、生成した通知信号を処理サーバ３０に送信する（ステップＳ３）。
【００４２】
次に、図１１に示すフローチャートを参照しながら、処理サーバ３０の制御部３１の処理手順を説明する。なお、図７の説明は、表示情報更新処理３１６ａを例にした説明であったが、以下では、表示情報更新処理３１６ａに限定するものではないため、タイマ処理３２２、端末別タイムスタンプ記憶部３２４等、すべて符号ａを削除して表記する。
制御部３１は、タイマ処理３２２で予め設定された設定時間を計時すると（ステップＳ１１／ＹＥＳ）、タイムスタンプの比較を行う。すなわち、制御部３１は、共通タイムスタンプ記憶部３１４に記憶したタイムスタンプと、端末別タイムスタンプ記憶部３２４に記憶したタイムスタンプとが一致するか否かを判定する（ステップＳ１２）。タイムスタンプが一致すると判定した場合（ステップＳ１３／ＹＥＳ）、制御部３１は、この処理を終了する。また、タイムスタンプが一致しないと判定した場合（ステップＳ１３／ＮＯ）、制御部３１は、データベースサーバ２０に接続し、データベースサーバ２０に記憶したデータを取得する（ステップＳ１４）。データベースサーバ２０からデータを取得すると、制御部３１は、表示管理情報記憶部３３１に記憶した表示管理情報を参照して、取得したデータのうち、監視端末４０に表示させるデータを選択する（ステップＳ１５）。制御部３１は、選択したデータを用いて、監視端末４０に表示させる表示情報を生成する（ステップＳ１５）。表示情報を生成すると、制御部３１は、生成した表示情報を監視端末４０に送信する（ステップＳ１６）。また、制御部３１は、共通タイムスタンプ記憶部３１４から取得したタイムスタンプを端末別タイムスタンプ記憶部３２４に記憶する（ステップＳ１７）。また、ステップＳ１３で、タイムスタンプが一致したと判定した場合（ステップＳ１３／ＹＥＳ）、制御部３１は、この処理を終了する。すなわち、制御部３１は、データベースサーバ２０に記憶したデータと、監視端末４０に送信済みのデータとが一致していると判定して、処理を終了する。
【００４３】
このように、処理サーバ３０は、通知信号に含まれる、データベース部２１のデータの更新時刻を示すタイムスタンプと、端末別タイムスタンプ記憶部３２３に記憶した、既に監視端末４０に送信済みのデータのタイムスタンプとを比較する。そして、処理サーバ３０は、今回、通知信号として通知されたタイムスタンプが、既に端末別タイムスタンプ記憶部３２３に記憶したタイムスタンプよりも新しい場合に、データベースサーバ２０にアクセスして、データの取得を要求する。従って、処理サーバ３０は、監視端末４０に送信済みのデータが最新ではない場合にだけ、データベースサーバ２０に接続するので、データベースサーバ２０への無駄なアクセスの発生を低減することができる。
【実施例２】
【００４４】
添付図面を参照しながら実施例２について説明する。なお、実施例２の説明において、実施例１と共通する部分の説明は省略し、実施例１と相違する部分について説明する。
本実施例は、データベースサーバ２０が複数のテーブルを記憶しており、データ管理部２２は、テーブルごとにデータ更新を管理する。従って、データ管理部２２は、データの更新処理を行ったテーブルがあると、このテーブルを識別する識別情報とタイムスタンプとを付加した通知信号を処理サーバ３０に送信する。図１２には、データベースサーバ２０が、テーブル単位に通知信号を処理サーバ３０に送信する様子を示す。
【００４５】
また、処理サーバ３０は、データベースサーバ２０から通知されるタイムスタンプをテーブル単位で管理する。共通タイムスタンプ記憶部３１４と端末別タイムスタンプ記憶部３２４の記憶領域は、図１２に示すようにデータベースサーバ２０の記憶するテーブル単位で分割されている。
共通タイムスタンプ記憶部３１４の記憶領域は、各テーブルを識別する識別番号と、各テーブルのデータが更新された更新時刻を示すタイムスタンプとを記憶する。また、端末別タイムスタンプ記憶部３２４の記憶領域は、各テーブルを識別する識別番号と、データの更新時刻を示すタイムスタンプとを記憶する。この更新時刻は、監視端末４０に送信済みのデータであって、監視端末４０への送信時刻が最も新しいデータがデータベースサーバ２０にデータ更新処理で登録されたときの更新時刻を示す。
【００４６】
処理サーバ３０は、予め設定された設定時間ごとに、端末別タイムスタンプ記憶部３２４に記憶したタイムスタンプと、共通タイムスタンプ記憶部３１４に記憶したスタンプとを比較する。共通タイムスタンプ記憶部３１４と端末別タイムスタンプ記憶部３２４は、データベースサーバ２０の記憶するテーブル単位にタイムスタンプを記憶しているので、図１２に示すように同じテーブル識別情報で登録したタイムスタンプ同士を比較する。
ＲＡＭ３４には、共通タイムスタンプ記憶部３１４と端末別タイムスタンプ記憶部３２４とのタイムスタンプの記憶場所を示す変数（以下、ポインタと呼ぶ）の記憶領域が用意される（図１３参照）。タイムスタンプの比較の際には、図１３に示すように、ポインタを使用して、同じテーブル識別情報で登録されたタイムスタンプ同士を比較する。図１３には、ポインタの示す、共通タイムスタンプ記憶部３１４と端末別タイムスタンプ記憶部３２４とのテーブルＢのタイムスタンプ同士を比較する様子を示す。
【００４７】
また、データベースサーバ２０は、複数のテーブルを記憶しているので、処理サーバ３０にデータを送信する際に、複数のテーブルに記憶したデータを結合して１つの表にまとめたビュー表を生成し、処理サーバ３０に送信してもよい。
具体的には、複数のテーブルの属性に注目し、異なるテーブルに同じ属性で登録され、さらにデータの値が同じものを結合してビュー表を生成する。図１４に示す例では、テーブルＡの顧客コードのデータ（図１４（Ａ）の［２６１０］）とテーブルＢの顧客コードのデータ（図１４（Ｂ）の［２６１０］）とが一致する。そこで、テーブルＡの顧客コードのデータ［２６１０］と同じ行でテーブルＡに登録したデータと、テーブルＢの顧客コードのデータ［２６１０］と同じ行でテーブルＢに登録したデータとを結合したビュー表を生成する。
同様に、図１４に示す例では、テーブルＡの製品コードのデータ（図１４（Ａ）の［Ｊ−６−１３］）と、テーブルＣの製品コードのデータ（図１４（Ｃ）の［Ｊ−６−１３］）とが一致する。そこで、テーブルＡの製品コードのデータ［Ｊ−６−１３］と同じ行でテーブルＡに登録したデータと、テーブルＣの製品コードのデータ［Ｊ−６−１３］と同じ行でテーブルＣに登録したデータとを結合したビュー表を生成する。
図１４（Ｄ）に上述の結合によって生成されたしたビュー表の一例を示す。
【００４８】
次に、図１５に示すフローチャートを参照しながら実施例２の制御部３１の処理手順を説明する。
制御部３１は、予め設定された設定時間を経過する毎に（ステップＳ２１／ＹＥＳ）、共通タイムスタンプ記憶部３１４と端末別タイムスタンプ記憶部３２４のタイムスタンプを比較する。まず、制御部３１は、共通タイムスタンプ記憶部３１４のタイムスタンプの記憶場所を示すポインタと、端末別タイムスタンプ記憶部３２４のタイムスタンプの記憶場所を示すポインタとを０にリセットする（ステップＳ２２）。
次に、制御部３１は、ポインタの示す記憶場所がタイムスタンプの記憶場所を示しているかを判定する（ステップＳ２３）。すなわち、共通タイムスタンプ記憶部３１４と、端末別タイムスタンプ記憶部３２４とのタイムスタンプを記憶した記憶範囲内の記憶場所をポインタが示しているかを判定する。
ポインタの示す記憶場所が、タイムスタンプを記憶した記憶範囲内の記憶場所であった場合（ステップＳ２３／ＹＥＳ）、制御部３１は、それぞれのポインタが示す記憶場所のタイムスタンプ同士を比較する（ステップＳ２４）。すなわち、制御部３１は、共通タイムスタンプ記憶部３１４のポインタが示す記憶場所に記憶したタイムスタンプと、端末別タイムスタンプ記憶部３２４のポインタが示す記憶場所に記憶したタイムスタンプとを比較する。両者が一致した場合には（ステップＳ２５／ＹＥＳ）、制御部３１は、それぞれのポインタを１インクリメントする。すなわち、共通タイムスタンプ記憶部３１４の記憶場所を示すポインタの値と、端末別タイムスタンプ記憶部３２４の記憶場所を示すポインタの値とを１インクリメントする（ステップＳ２６）。その後、制御部３１は、ステップＳ２３からの処理を繰り返す。また、ステップＳ２５で、タイムスタンプの値が不一致であると判定すると（ステップＳ２５／ＮＯ）、制御部３１は、データベースサーバ２０に接続し、データの取得要求を送信する（ステップＳ２７）。データベースサーバ２０からデータを取得すると、制御部３１は、表示管理情報を参照して、監視端末４０に表示させる表示情報を生成する（ステップＳ２８）。制御部３１は、データベースサーバ２０から取得したデータのうち、表示管理情報にフラグ［１］が記録された属性のデータを含む表示情報を生成する。表示情報を生成すると、制御部３１は、生成した表示情報を監視端末４０に表示する（ステップＳ２９）。表示情報の送信が終了すると、制御部３１は、共通タイムスタンプ記憶部３１４の記憶するタイムスタンプを取得し、取得したタイムスタンプを端末別タイムスタンプ記憶部３２４に記憶する（ステップＳ３０）。このとき、制御部３１は、ステップＳ２５でタイムスタンプが不一致と判定したテーブルのタイムスタンプを共通タイムスタンプ記憶部３１４から取得する。そして、制御部３１は、取得したタイムスタンプを、ステップＳ２５で不一致と判定したテーブルのタイムスタンプを記憶する端末別タイムスタンプ記憶部３２４の記憶領域に記憶する。また、ステップＳ２３で、ポインタの示す記憶場所がタイムスタンプの記憶場所を示していないと判定すると（ステップＳ２３／ＮＯ）、制御部３１は、この処理を終了する。すなわち、制御部３１は、データベースサーバ２０の各テーブルに登録したデータと、監視端末４０に送信済みのデータとが一致していると判定して、処理を終了する。
【００４９】
このように、処理サーバ３０は、今回、データベースサーバ２０から通知されたタイムスタンプが、既に端末別タイムスタンプ記憶部３２３に記憶したタイムスタンプよりも新しい場合に、データベースサーバ２０にアクセスして、データを取得する。従って、処理サーバ３０は、監視端末４０に送信済みのデータが最新のデータではない場合にだけ、データベースサーバ２０に接続するので、データベースサーバ２０への無駄なアクセスの発生を低減することができる。
【実施例３】
【００５０】
添付図面を参照しながら実施例３について説明する。なお、実施例３の説明においては、実施例１と共通する部分の説明は省略し、実施例１と相違する部分について説明する。
本実施例は、テーブルに登録したデータの属性を単位として、データの更新を管理する。すなわち、データ管理部２２は、同じテーブルに、同じ属性で記憶したデータに更新があると、タイムスタンプを含む通知信号を処理サーバ３０に送信する。なお、通知信号には、タイムスタンプの他に、テーブルを識別するテーブル識別情報と、属性を識別する属性情報とが含まれる。
図１６には、データベースサーバ２０の記憶するテーブルＡ，Ｂと、処理サーバ３０の共通タイムスタンプ記憶部３１４と端末別タイムスタンプ記憶部３２４とに記憶するデータの例を示す。図１６に示すように処理サーバ３０の共通タイムスタンプ記憶部３１４と端末別タイムスタンプ記憶部３２４との各記憶領域には、テーブルを識別するテーブル識別情報と、属性情報と、この属性でテーブルに登録したデータの更新時刻を示すタイムスタンプとが記憶される。
処理サーバ３０は、共通タイムスタンプ記憶部３１４と端末別タイムスタンプ記憶部３２４とに同じテーブル識別情報と属性情報とで記憶したタイムスタンプ同士を比較して、その属性情報が示すデータベースサーバ２０のデータに更新があるか否かを判定する。
なお、データベースサーバ２０に記憶した全てのテーブルで属性を単位にデータ更新を管理しなくてもよい。例えば、テーブルＡは、属性を単位にデータの更新を管理し、テーブルＢは、実施例２のようにテーブル単位にデータの更新を管理してもよい。
【００５１】
また、処理サーバ３０のＲＡＭ３４には、結合管理情報を記憶している。上述した実施例２のデータベースサーバ２０は、複数のテーブルに登録したデータの属性に注目し、属性が同じであってさらにデータ自体も同じものを結合してビュー表を生成していた。本実施例は、データ同士を結合させる属性を記憶した結合管理情報を処理サーバ３０のＲＡＭ３４に記憶しておく。図１７に結合管理情報の一例を示す。結合管理情報には、異なるテーブルに登録されたデータ同士を結合してビュー表を作成するときに、データ同士を結合するキーとなる属性（以下、結合属性という）が記録される。具体的には、図１７に示すように各テーブルに登録された属性と、各属性が結合属性かそれ以外の属性であるかを示すフラグとが記録される。フラグとして［１］が記録された属性が、結合属性であることを示している。
処理サーバ３０は、データベースサーバ２０にデータの取得要求を送信するか否かを判定するときに、この結合管理情報を参照して、結合属性として登録されたデータに更新があるか否かを判定する。そして、処理サーバ３０は、更新されたデータが、結合属性として結合管理情報に登録された属性のデータである場合には、データベースサーバ２０にデータの取得要求を送信する。属性が結合属性のデータであった場合、ビュー表の構成自体が変更になるため、処理サーバ３０は、データベースサーバ２０にデータの取得を要求する。
【００５２】
さらに、本実施例は、監視端末４０に表示情報として表示させるデータに更新があった場合にも、データベースサーバ２０に接続して、データベースサーバ２０にデータの取得を要求する。具体的には、制御部３１は、データ更新されたデータの属性を検出し、図８に示す表示管理情報を参照して、検出した属性が表示管理情報に表示させる属性として登録された属性であるか否かを判定する。処理サーバ３０は、更新されたデータが、監視端末４０に表示するデータとして表示管理情報に登録されたデータであった場合に、データベースサーバ２０にデータの取得を要求する。
【００５３】
次に、図１８に示すフローチャートを参照しながら実施例３の制御部３１の処理手順を説明する。なお、ステップＳ３５までの処理は、上述した実施例２と同一であるので説明を省略する。
制御部３１は、ポインタの示す、共通タイムスタンプ記憶部３１４の記憶場所に記憶したタイムスタンプと、ポインタの示す、端末別タイムスタンプ記憶部３２４の記憶場所に記憶したタイムスタンプとを比較する（ステップＳ３５）。両者が一致しなかった場合（ステップＳ３５／ＮＯ）、制御部３１は、タイムスタンプが不一致で更新があったと判定したデータの属性が、表示管理情報に、監視端末４０に表示させる属性として登録された属性であるか否かを判定する（ステップＳ３６）。更新されたデータの属性が、表示管理情報に、表示させる属性として登録されていた場合には（ステップＳ３６／ＹＥＳ）、処理サーバ３０は、データベースサーバ２０に接続し、データの取得を要求する（ステップＳ３９）。
【００５４】
また、タイムスタンプが不一致で更新があったと判定したデータの属性が、表示管理情報に、表示させる属性として登録されていなかった場合（ステップＳ３６／ＮＯ）、制御部３１は、次の判定に移行する。次の判定では、制御部３１は、タイムスタンプが不一致で更新があったと判定したデータの属性が、結合管理情報に、結合属性として登録された属性であるか否かを判定する（ステップＳ３７）。更新されたデータの属性が、結合管理情報に、結合属性として登録された属性として登録されていた場合には（ステップＳ３７／ＹＥＳ）、処理サーバ３０は、データベースサーバ２０に接続し、データの取得を要求する（ステップＳ３９）。また、更新されたデータの属性が、結合管理情報に、結合属性として登録されていなかった場合（ステップＳ３７／ＮＯ）、制御部３１は、それぞれのポインタを１インクリメントする。すなわち、制御部３１は、共通タイムスタンプ記憶部３１４の記憶場所を示すポインタの値と、端末別タイムスタンプ記憶部３２４の記憶場所を示すポインタの値とを１インクリメントする（ステップＳ３８）。その後、制御部３１は、ステップＳ２３からの処理を繰り返す。
なお、ステップＳ３９でデータベースサーバ２０に接続し、データベースサーバ２０にデータの取得を要求した後の処理手順は、図１５に示す手順と同一であるため説明を省略する。
【００５５】
データベースサーバ２０も、上述した結合管理情報をデータ管理部２２に記憶している。データ管理部２２は、結合管理情報に基づいて異なるテーブルに登録されたデータ同士を結合したビュー表を生成して、処理サーバ３０に送信する。
なおビュー表の作成を、処理サーバ３０で行ってもよい。例えば、処理サーバ３０がＳＱＬ（Structured Query Language）文を生成してデータベースサーバ２０に送信し、データベースサーバ２０からビュー表の生成に必要なデータを取得する。処理サーバ３０は、取得したデータを使用してビュー表を生成する。このような場合であっても、処理サーバ３０は、結合属性のデータに更新があったとき、又は監視端末４０に表示させる属性のデータに更新があったときだけデータベースサーバ２０からデータを取得すればよいので、ＳＱＬ文の発行回数を低減することができる。
【００５６】
このように本実施例は、データベースサーバ２０の記憶するデータに更新があっても、更新されたデータが監視端末４０に表示させるデータではなかった場合には、データベースサーバ２０にデータの取得を要求しない。同様に、データベースサーバ２０の記憶するデータに更新があっても、更新されたデータがビュー表を生成する際に結合するデータではなかった場合には、データベースサーバ２０にデータの取得を要求しない。従って、処理サーバ３０は、ビュー表として監視端末に表示させるデータ、又はビュー表の構成が変更されるデータがデータベースサーバ２０で更新された場合にだけ、データベースサーバ２０に接続する。このため、処理サーバ３０がデータベースサーバ２０に接続し、データベースサーバ２０からデータを取得する回数をさらに低減することができる。
【００５７】
上述した実施例は、本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施が可能である。例えば、上述した実施例１〜３では、データベースサーバ２０のデータ更新をタイムスタンプに基づいて判定していたが、データの更新処理の度に値が１加算される番号をデータ管理部２２で発行してもよい。処理サーバ３０は、データベースサーバ２０から通知信号として通知された番号と、既に端末別タイムスタンプ記憶部３２４に記憶している番号とを比較し、通知信号として通知された番号の方が大きい場合に、データの更新があったと判定する。
【００５８】
なお、図１１、１５、１８のフローチャートに示す処理は、プログラム制御されたコンピュータによって実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくこともできる。すなわち、処理サーバ３０の制御部３１の機能を実現するためのソフトウェアのプログラムが記録されている記録媒体を、処理サーバ３０に供給し、ＣＰＵ３２が記憶媒体に格納されたプログラムを読み出し実行することによっても、上記実施例と同様の効果を奏する。プログラムを供給するための記憶媒体としては、例えば、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ（Digital Versatile Disc）、又はＳＤ（Secure Digital memory card）カードなどがある。
【００５９】
また、上述した実施例では、処理サーバ３０が、データベースサーバ２０でデータ更新が行われているか否かを判定し、データ更新が行われている場合に、データベースサーバ２０からデータを取得して監視端末４０に送信していた。
これ以外に、処理サーバ３０は、監視端末４０からの問いあわせを受信した場合に、データベースサーバ２０でデータ更新が行われているか否かを判定するようにしてもよい。データ更新が行われていると判定した場合には、処理サーバ３０は、データベースサーバ２０に接続してデータを取得し、取得したデータを監視端末４０に送信する。
【符号の説明】
【００６０】
１１  入力端末
２０  データベースサーバ
２１  データベース部
２２  データ管理部
３０  処理サーバ
４０  監視端末
３１４  共通タイムスタンプ記憶部
３２１  判定処理
３２２  タイマ処理
３２３  要求出力処理
３２４  端末別タイムスタンプ記憶部
３３０  表示情報生成処理
３３１  表示管理情報記憶部
【図１】
2011019161.tif 000003
【図２】
2011019161.tif 000004
【図３】
2011019161.tif 000005
【図４】
2011019161.tif 000006
【図５】
2011019161.tif 000007
【図６】
2011019161.tif 000008
【図７】
2011019161.tif 000009
【図８】
2011019161.tif 000010
【図９】
2011019161.tif 000011
【図１０】
2011019161.tif 000012
【図１１】
2011019161.tif 000013
【図１２】
2011019161.tif 000014
【図１３】
2011019161.tif 000015
【図１４】
2011019161.tif 000016
【図１５】
2011019161.tif 000017
【図１６】
2011019161.tif 000018
【図１７】
2011019161.tif 000019
【図１８】
2011019161.tif 000020