(57)【特許請求の範囲】
【請求項１】
データベースサーバとクライアント端末との間に介装されたフロントエンドサーバを備えたデータベース利用システムであって、
上記フロントエンドサーバが、クライアント端末から送信された検索条件をデータベースサーバに送信して検索を依頼すると共に、データベースサーバから送信された検索結果のデータリストを第１のバッファに格納する業務処理部と、この第１のバッファ内のデータリストを取り出してキャッシュに格納すると共に、このキャッシュから画面デザインに応じた行数を備えた１頁分のデータリストを取り出し、第２のバッファに格納する制御部と、この第２のバッファ内のデータリストを取り出し、画面デザインを反映したテンプレートに充填して画面表示用のWebファイルを生成すると共に、このWebファイルをクライアント端末に送信する画面生成部とを備え、
上記業務処理部、制御部及び画面生成部は、各クライアント端末において利用の選択がなされたサービス毎に上記フロントエンドサーバ上に生成されると共に、上記第１のバッファ、キャッシュ及び第２のバッファは、同サービス毎に上記フロントエンドサーバのメモリ空間上に確保され、
上記クライアント端末から、表示画面中の特定データについてチェックが付されたことを示す通知が送信された場合に、上記制御部は、キャッシュ内における該当データにチェック済みの情報を付加する処理を実行し、
上記クライアント端末から、チェック済みのデータを含む頁の再表示を求めるリクエストが送信された場合に、上記制御部は、キャッシュからチェック済みの情報が付加されたデータを含む１頁分のデータリストを取り出し、第２のバッファに格納する処理を実行し、上記画面生成部は、この第２のバッファ内のデータリストを取り出し、上記テンプレートに充填して画面表示用のWebファイルを生成すると共に、このWebファイルをクライアント端末に送信する処理を実行し、
上記クライアント端末から、チェック済みのデータまたはチェックされていないデータの削除を求めるリクエストが送信された場合に、上記制御部は、キャッシュ内における対応のデータに削除対象として選択されたことを示す情報を付加する処理と、キャッシュ内のデータを第１のバッファに出力する処理を実行し、上記業務処理部は、この第１のバッファに格納されたデータをデータベースサーバに送信し、データの更新を依頼する処理を実行することを特徴とするデータベース利用システム。
【請求項２】
データベースサーバとクライアント端末との間に介装されたフロントエンドサーバを備えたデータベース利用システムであって、
上記フロントエンドサーバが、クライアント端末から送信された検索条件をデータベースサーバに送信して検索を依頼すると共に、データベースサーバから送信された検索結果のデータリストを第１のバッファに格納する業務処理部と、この第１のバッファ内のデータリストを取り出してキャッシュに格納すると共に、このキャッシュから画面デザインに応じた行数を備えた１頁分のデータリストを取り出し、第２のバッファに格納する制御部と、この第２のバッファ内のデータリストを取り出し、画面デザインを反映したテンプレートに充填して画面表示用のWebファイルを生成すると共に、このWebファイルをクライアント端末に送信する画面生成部とを備え、
上記業務処理部、制御部及び画面生成部は、各クライアント端末において利用の選択がなされたサービス毎に上記フロントエンドサーバ上に生成されると共に、上記第１のバッファ、キャッシュ及び第２のバッファは、同サービス毎に上記フロントエンドサーバのメモリ空間上に確保され、
上記クライアント端末から、表示画面中の特定データについて修正がなされたことを示す情報が送信された場合に、上記制御部は、キャッシュ内における該当データに対応の修正を施す処理を実行し、
上記クライアント端末から、表示画面中においてデータの追加がなされたことを示す情報が送信された場合に、上記制御部は、キャッシュ内におけるデータリストに対応のデータを追加する処理を実行し、
上記クライアント端末から、修正済みのデータまたは追加データを含む頁の再表示を求めるリクエストが送信された場合に、上記制御部は、キャッシュから修正済みのデータまたは追加データを含む１頁分のデータリストを取り出し、第２のバッファに格納する処理を実行し、上記画面生成部は、この第２のバッファ内のデータリストを取り出し、上記テンプレートに充填して画面表示用のWebファイルを生成すると共に、このWebファイルをクライアント端末に送信する処理を実行し、
上記クライアント端末から、修正済みのデータまたは追加データに基づく更新のリクエストが送信された場合に、上記制御部は、キャッシュ内のデータを第１のバッファに出力する処理を実行し、上記業務処理部は、この第１のバッファに格納されたデータをデータベースサーバに送信し、データの更新を依頼する処理を実行することを特徴とするデータベース利用システム。
【請求項３】
上記クライアント端末には、入力装置からの入力情報を常時監視し、画面を閉じる入力動作を検出した場合には、その旨を示す情報を上記フロントエンドサーバに即座に送信する手段が設けられており、
上記フロントエンドサーバは、上記クライアント端末から画面を閉じたことを示す情報が送信された場合に、当該画面に関連したデータを上記キャッシュ及び各バッファから削除する手段と、
上記クライアント端末の画面上において所定時間入力操作が行われていない場合に、当該画面に関連したデータを上記キャッシュ及び各バッファからハードディスクに一時的に退避させる手段と、
上記クライアント端末から画面上において入力操作が再開されたことを示す情報が送信された場合に、当該画面に関連したデータをハードディスクから上記キャッシュ及び各バッファに復元させる手段とを備えたことを特徴とする請求項１または２に記載のデータベース利用システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はデータベース利用技術に係り、特に、クライアント端末とデータベースサーバとの間にフロントエンドサーバを設置し、このフロントエンドサーバを介してクライアント端末のWebブラウザプログラムからデータベースサーバ内の登録データを利用する仕組みを備えたデータベース利用システムに関する。
【背景技術】
【０００２】
データベースの利用形態として、単にデータの検索や表示を目的とした「参照系」と、データの修正や追加、削除を行う「登録系」とに大別することができる。
図１１は従来の利用形態の一例を示すものであり、DB（Database）サーバ70の前段にWebサーバ機能及びAP（Application）サーバ機能を備えたフロントエンドサーバ72が設置され、インターネットやイントラネット等の通信ネットワーク74を介してこのサーバ72が多数のクライアント端末76と接続されている様子が描かれている。
各クライアント端末76にはWebブラウザプログラムがセットアップされており、このWebブラウザを通じてフロントエンドサーバ72に特定のデータベースに対する検索リクエストが送信されると、フロントエンドサーバ72は検索条件をDBサーバ70に渡し、検索処理を依頼する。
そして、DBサーバ70から検索結果が送信されると、これをフロントエンドサーバ72がWebファイルに加工した上で、クライアント端末76に送信する。
この結果ユーザは、クライアント端末76のディスプレイに表示された汎用のWebブラウザ上で検索結果の閲覧が可能となる（非特許文献１の「テーブルの一覧」参照）。
【０００３】
これに対し、DBサーバ70内のデータに変更を加える業務については、登録系の処理に最適化された専用のアプリケーションプログラムを搭載したクライアント端末78が用いられる場合が多い（非特許文献２参照）。
このアプリケーションプログラムは、操作ボタンの配置や入力・表示欄の構成などの、いわゆるユーザインターフェイスの設計に適した第四世代言語、例えばVisual Basic（登録商標）等で一般にコーディングされる。
【非特許文献１】itBASEのデザイン画面サンプル［平成１６年３月２日検索］インターネットURL:http://219.118.162.84/eaccess/servlet/eAccess?PAGE=00005&acountid=access&accessid=itbase&UPAGE=00002&FILENM=pageclip&FILENO=00002&FILEID=000061&CLIPTABLE=&FORMNO=page00002&REPORTNO
【非特許文献２】入力処理の画面サンプル［平成１６年３月２日検索］  インターネッURL:http://it.e-otsuka.com/ryutsu/images/food_sft1.gif
【発明の開示】
【発明が解決しようとする課題】
【０００４】
元々、データベースの利用に関しては参照系及び登録系共に専用のアプリケーションプログラムをクライアント端末に搭載することによって実現されていたのであるが、インターネットを中心としたWebシステムの普及に伴い、設計の容易な参照系に関してはいち早くWebベースでの利用が進展してきたという経緯がある。
そして、Webシステムを通じたデータベースの参照利用が拡大するに従い、登録系と参照系のプログラムを別言語でコーディングすることや、個々のクライアント端末78に専用のアプリケーションプログラムを搭載することの非効率性が認識されるようになり、登録系の処理についてもWebベースで実現したいという要請が強まってきているのが現状である。
【０００５】
しかしながら、Webブラウザプログラムには基本的に「頁（ページ）」という概念が存在しないため、登録処理用のWebフォームをディスプレイ上に表示させた場合に、レコードのリストを所定の行数で頁送りすることが困難であり、表示行数が固定された専用のアプリケーションプログラムの操作性に慣れたユーザに違和感を抱かせてしまうという問題がある。
実際、レコードの件数が多い場合には、非特許文献１の「フォームのフィールド指定」画面より明らかなように、最終行の下に配置された「登録」や「削除」といった操作ボタンを表示させるために画面スクロールを何度も行う必要が生じ、ユーザは大きなストレスを感じることとなる。
もちろん、このWebシステムにおけるユーザインターフェイスの問題は参照系の利用形態でも同様に生じるが、登録業務を行う場合により顕著に認識されることとなる。
【０００６】
また、クライアント端末の状態管理や実行管理をサーバが担うことになるため、サーバ側に如何に大量のメモリを搭載したとしても、接続しているクライアント端末の数が膨大（例えば1,000台以上）になると、レスポンスが低下したり動作が不安定となる問題が生じる。
【０００７】
さらに、クライアント端末とサーバ間での情報のやり取りが増えるため、やはりクライアント端末数が増えるに従ってネットワークに大きな負荷を与えるようになる。
【０００８】
この発明は、上記の問題点を解決するために案出されたものであり、Webベースで登録系の処理を実現することを前提としながらも、クライアント端末側のユーザインターフェイスを専用アプリケーションプログラムと同様のレベルに維持できると共に、サーバ側のメモリ資源の節約及び通信量の低減を実現可能なデータベース利用技術を提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、請求項１に記載したデータベース利用システムは、データベースサーバとクライアント端末との間に介装されたフロントエンドサーバを備えたデータベース利用システムであって、上記フロントエンドサーバが、クライアント端末から送信された検索条件をデータベースサーバに送信して検索を依頼すると共に、データベースサーバから送信された検索結果のデータリストを第１のバッファに格納する業務処理部と、この第１のバッファ内のデータリストを取り出してキャッシュに格納すると共に、このキャッシュから画面デザインに応じた行数を備えた１頁分のデータリストを取り出し、第２のバッファに格納する制御部と、この第２のバッファ内のデータリストを取り出し、画面デザインを反映したテンプレートに充填して画面表示用のWebファイルを生成すると共に、このWebファイルをクライアント端末に送信する画面生成部とを備え、上記業務処理部、制御部及び画面生成部は、各クライアント端末において利用の選択がなされたサービス毎に上記フロントエンドサーバ上に生成されると共に、上記第１のバッファ、キャッシュ及び第２のバッファは、同サービス毎に上記フロントエンドサーバのメモリ空間上に確保され、上記クライアント端末から、表示画面中の特定データについてチェックが付されたことを示す通知が送信された場合に、上記制御部は、キャッシュ内における該当データにチェック済みの情報を付加する処理を実行し、上記クライアント端末から、チェック済みのデータを含む頁の再表示を求めるリクエストが送信された場合に、上記制御部は、キャッシュからチェック済みの情報が付加されたデータを含む１頁分のデータリストを取り出し、第２のバッファに格納する処理を実行し、上記画面生成部は、この第２のバッファ内のデータリストを取り出し、上記テンプレートに充填して画面表示用のWebファイルを生成すると共に、このWebファイルをクライアント端末に送信する処理を実行し、上記クライアント端末から、チェック済みのデータまたはチェックされていないデータの削除を求めるリクエストが送信された場合に、上記制御部は、キャッシュ内における対応のデータに削除対象として選択されたことを示す情報を付加する処理と、キャッシュ内のデータを第１のバッファに出力する処理を実行し、上記業務処理部は、この第１のバッファに格納されたデータをデータベースサーバに送信し、データの更新を依頼する処理を実行することを特徴としている。
【００１０】
請求項２に記載したデータベース利用システムは、データベースサーバとクライアント端末との間に介装されたフロントエンドサーバを備えたデータベース利用システムであって、上記フロントエンドサーバが、クライアント端末から送信された検索条件をデータベースサーバに送信して検索を依頼すると共に、データベースサーバから送信された検索結果のデータリストを第１のバッファに格納する業務処理部と、この第１のバッファ内のデータリストを取り出してキャッシュに格納すると共に、このキャッシュから画面デザインに応じた行数を備えた１頁分のデータリストを取り出し、第２のバッファに格納する制御部と、この第２のバッファ内のデータリストを取り出し、画面デザインを反映したテンプレートに充填して画面表示用のWebファイルを生成すると共に、このWebファイルをクライアント端末に送信する画面生成部とを備え、上記業務処理部、制御部及び画面生成部は、各クライアント端末において利用の選択がなされたサービス毎に上記フロントエンドサーバ上に生成されると共に、上記第１のバッファ、キャッシュ及び第２のバッファは、同サービス毎に上記フロントエンドサーバのメモリ空間上に確保され、上記クライアント端末から、表示画面中の特定データについて修正がなされたことを示す情報が送信された場合に、上記制御部は、キャッシュ内における該当データに対応の修正を施す処理を実行し、上記クライアント端末から、表示画面中においてデータの追加がなされたことを示す情報が送信された場合に、上記制御部は、キャッシュ内におけるデータリストに対応のデータを追加する処理を実行し、上記クライアント端末から、修正済みのデータまたは追加データを含む頁の再表示を求めるリクエストが送信された場合に、上記制御部は、キャッシュから修正済みのデータまたは追加データを含む１頁分のデータリストを取り出し、第２のバッファに格納する処理を実行し、上記画面生成部は、この第２のバッファ内のデータリストを取り出し、上記テンプレートに充填して画面表示用のWebファイルを生成すると共に、このWebファイルをクライアント端末に送信する処理を実行し、上記クライアント端末から、修正済みのデータまたは追加データに基づく更新のリクエストが送信された場合に、上記制御部は、キャッシュ内のデータを第１のバッファに出力する処理を実行し、上記業務処理部は、この第１のバッファに格納されたデータをデータベースサーバに送信し、データの更新を依頼する処理を実行することを特徴としている。
【００１１】
請求項３に記載したデータベース利用システムは、請求項１または２のシステムを前提とし、さらに上記クライアント端末には、入力装置からの入力情報を常時監視し、画面を閉じる入力動作を検出した場合には、その旨を示す情報を上記フロントエンドサーバに即座に送信する手段が設けられており、上記フロントエンドサーバは、上記クライアント端末から画面を閉じたことを示す情報が送信された場合に、当該画面に関連したデータを上記キャッシュ及び各バッファから削除する手段と、上記クライアント端末の画面上において所定時間入力操作が行われていない場合に、当該画面に関連したデータを上記キャッシュ及び各バッファからハードディスクに一時的に退避させる手段と、上記クライアント端末から画面上において入力操作が再開されたことを示す情報が送信された場合に、当該画面に関連したデータをハードディスクから上記キャッシュ及び各バッファに復元させる手段とを備えたことを特徴としている。
【発明の効果】
【００１２】
請求項１のデータベース利用システムにあっては、データベースサーバから渡されたデータリストがキャッシュ内に格納され、画面デザインで規定された行数毎に頁として管理されており、１頁分のデータリストがWebファイルとしてクライアント端末に送信されるため、クライアント端末のWebブラウザ上において決められた行数の頁単位でデータを一覧表示させることが可能となる。
また、このようにフロントエンドサーバからクライアント端末に対し１頁単位でデータが送信され、従来のように全データリストが一度に送信されることがないため、その分フロントエンドサーバとクライアント端末間のデータ通信量を低減することが可能となる。
さらに、クライアント端末から表示中の画面単位（１頁単位）で削除選択のデータが送信され、従来のように削除選択の度に全データリストをフロントエンドサーバにセンドバックさせる必要がないため、フロントエンドサーバとクライアント端末間のデータ通信量を低減することが可能となる。
【００１３】
請求項２のデータベース利用システムの場合も、データベースサーバから渡されたデータリストがキャッシュ内に格納され、画面デザインで規定された行数毎に頁として管理されており、１頁分のデータリストがWebファイルとしてクライアント端末に送信されるため、クライアント端末のWebブラウザ上において決められた行数の頁単位でデータを一覧表示させることが可能となる。
また、このようにフロントエンドサーバからクライアント端末に対し１頁単位でデータが送信され、従来のように全データリストが一度に送信されることがないため、その分フロントエンドサーバとクライアント端末間のデータ通信量を低減することが可能となる。
さらに、クライアント端末から表示中の画面単位（１頁単位）で修正や追加のデータが送信され、従来のように修正や追加の度に全データリストをフロントエンドサーバにセンドバックさせる必要がないため、フロントエンドサーバとクライアント端末間のデータ通信量を低減することが可能となる。
【００１４】
請求項３のデータベース利用システムによれば、クライアント端末上でデータベース利用画面が閉じられた場合には、即座にフロントエンドサーバ側のメモリ空間を解放することができ、リソースの有効利用が可能となる。
また、クライアント端末上での作業が所定時間中断されている場合には、即座にフロントエンドサーバ側のメモリ空間からハードディスクに不要なデータを退避させることができ、リソースの有効利用が可能となる。さらに、作業再開時には、遅滞なく元の状態を復元することが可能となる。
【発明を実施するための最良の形態】
【００１５】
図１は、この発明に係るデータベース利用システム10の全体構成を示す概念図であり、多数のクライアント端末12とDBサーバ14との間に、Webサーバ機能及びAPサーバ機能を備えたフロントエンドサーバ16が配置されている。
各クライアント端末12とフロントエンドサーバ16とは、インターネットやイントラネット等の通信ネットワーク18を介して接続されている。
また、フロントエンドサーバ16とDBサーバ14との間も、LANを介してネットワーク接続されている。
各クライアント端末12には、汎用のWebブラウザプログラムがセットアップされている。
【００１６】
図２は、クライアント端末12及びフロントエンドサーバ16の機能構成を示すブロック図である。
まずクライアント端末12は、マウスやキーボード等の入力装置20と、ディスプレイ22とが接続されたPC等のコンピュータよりなり、状態通知部24と、Webページ表示部26と、処理要求部28とを備えている。
ここで、Webページ表示部26及び処理要求部28は、クライアント端末12のCPUが、汎用のWebブラウザプログラム等に従って必要な処理を実行することによって実現される。また、状態通知部24は、同CPUがフロントエンドサーバ16から配信された専用プログラム（JavaScript）及びWebブラウザプログラム等に従い、必要な処理を実行することによって実現される。
【００１７】
フロントエンドサーバ16は、制御部30と、業務処理部32と、画面生成部34と、キャッシュ38と、第１のバッファ40と、第２のバッファ41と、メモリ管理部42と、退避領域44とを備えている。
詳細は後述するが、ユーザがクライアント端末12からフロントエンドサーバ16にアクセスし、Webブラウザ上に表示されるサービスメニューの中から一つのサービスを選択すると、サーバ16側で当該サービス専用のアプリケーションプログラムX1が起動され、サーバ16のCPUがこれに従って必要な処理を実行することによって上記の制御部30、業務処理部32、及び画面生成部34が実現される。
また、ユーザが他のサービスを選択した場合には、他のアプリケーションプログラムX2,X3…が別個に起動し、当該サービス用に最適化された制御部30、業務処理部32、及び画面生成部34が同時並行的に出現することとなる。
これに対し、メモリ管理部42は、各サービスのアプリケーションプログラムとは独立した、フロントエンドサーバ16内のミドルウェアによって実現される。
上記キャッシュ38、第１のバッファ40、及び第２のバッファ41は、フロントエンドサーバ16のメモリ空間上に確保されており、上記退避領域44は、同サーバ16のハードディスク内に設けられている。
【００１８】
以下、図３及び図４のフローチャートに従い、このシステム10における処理手順について説明する。
まず、ユーザがクライアント端末12からフロントエンドサーバ16にアクセスし、ID及びパスワードの入力を伴う認証ステップをクリアすると、サーバ16からメニュー表示用のWebファイル（Htmlファイル等）が送信され（Ｓ10）、Webブラウザ上に当該ユーザが利用可能なサービスのメニュー画面（図示省略）が表示される（Ｓ11）。
このメニューの中からユーザが一つのサービス、例えば「マスタメンテナンス・色削除」を選択すると、クライアント端末12の処理要求部28からフロントエンドサーバ16に対して当該サービスに係る利用画面の配信リクエストが送信される（Ｓ12）。
これを受けたフロントエンドサーバ16では、当該サービスに対応したアプリケーションプログラムX1が起動され（Ｓ13）、専用の制御部30、業務処理部32、画面生成部34が形成されると共に、メモリ空間上にキャッシュ38、第１のバッファ40及び第２のバッファ41が設定される。
【００１９】
つぎに制御部30は、画面生成部34に対して該当のWebファイルの送信を指令し、画面生成部34は予めデザインされた画面テンプレートに従って当該サービスの初期画面用のWebファイルを生成し、クライアント端末12に送信する（Ｓ14）。
【００２０】
この結果、クライアント端末12のブラウザ上には、図５に示すように、マスタメンテナンス・色削除サービスの初期画面46が表示される（Ｓ15）。
これに対しユーザが色タイプコード入力欄47に特定のコード番号、例えば「01」を入力して検索ボタン48をクリックすると、クライアント端末12の処理要求部28からフロントエンドサーバ16に対して色タイプコード＝01のデータベースに対する検索リクエストが送信される（Ｓ16）。
これを受けた制御部30は、当該リクエストを第１のバッファ40にセットする（Ｓ17）。
【００２１】
これに対し業務処理部32は、第１のバッファ40から検索条件（色タイプコード＝01）を取り出し、DBサーバ14に対して検索処理を依頼する（Ｓ18）。
そして、DBサーバ14から色タイプコード＝01のデータベース内に格納されているデータのリストが送信されると、業務処理部32はこれを第１のバッファ40にセットする（Ｓ19）。
【００２２】
つぎに制御部30は、第１のバッファ40内のデータを取り出し、キャッシュ38にコピーすると共に（Ｓ20）、データの一部（１頁分）を第２のバッファ41に格納する（Ｓ22）。
これに対し画面生成部34は、第２のバッファ41からデータリストを取り出し、当該サービス用のテンプレートに各データを充填することによって検索結果表示用Webファイルを生成し、クライアント端末12に送信する（Ｓ23）。
この結果、クライアント端末12のWebブラウザ上には、図６に示すように、色タイプコード＝01の登録データが一覧表示される（Ｓ24）。
【００２３】
色タイプコード＝01の登録データは全部で101件ある中、画面46上には15件分のデータのみが表示されている。
他のデータを参照する場合、ユーザは下スクロールボタン49をクリックするか、キーボードの「Page Down」キーを押下する。
この結果、クライアント端末12の処理要求部28からフロントエンドサーバ16に対し、２頁目のデータの配信リクエストが送信される（Ｓ25）。
これを受けた制御部30は、キャッシュ38内に格納された次の15件分のデータを取り出し、第２のバッファ41に格納する（Ｓ26）。
画面生成部34は、これらのデータを上記テンプレートに充填すると共に、ページ表記を更新させたWebファイルを生成し、クライアント端末12に送信する（Ｓ27）。
この結果、図示は省略したが、Webブラウザ上に２頁目の表示画面が表示されることとなる（Ｓ28）。
【００２４】
つぎにユーザが任意のデータのチェックボックス50にチェックを入れ（Ｓ29）、頁スクロールのイベントを発生させると、クライアント端末12の状態通知部24からチェック済みの行に対する通知がフロントエンドサーバ16に送信される（Ｓ30）。
これを受けた制御部30は、キャッシュ38内に格納されたデータの中で現在表示中の頁における該当行のデータについて、チェック済みの情報を付加する（Ｓ31）。
制御部30は、キャッシュ38内に格納されたデータの件数情報と１頁当たりの行数情報から、クライアント端末12において現在表示中の頁を割り出すことができる。
また、ユーザが次の頁の表示を求めた場合、３頁目のデータが埋め込まれたWebファイルが画面生成部34からクライアント端末12に送信され、Webブラウザ上に表示される。
この場合、各データのチェックボックス50には未だチェックが入れられていない。ここでユーザが任意のレコードにチェックを入れた場合も上記と同様、クライアント端末12の状態通知部24からフロントエンドサーバ16に対して行を特定したチェック済みの通知が送信され、制御部30によってキャッシュ38内の該当データに対して削除対象として選択されたことを示す情報が付加される。
ユーザが上スクロールボタン51をクリックし、２頁目の再表示を求めると、制御部30から画面生成部34に対して２頁目のデータ15件分が渡され、２頁目の表示画面がクライアント端末12に送信される。
この場合、当然ながらユーザが先にチェックを入れたデータには、チェック済みを示すレ点が再現されている。
【００２５】
以上のようにして、ユーザが101件のデータ中で削除すべきデータに対するチェック入れを完了すると、削除ボタン52をクリックする。
この結果、クライアント端末12の処理要求部28からフロントエンドサーバ16に対し、チェック済みデータの削除リクエストが送信される（Ｓ32）。
これを受けた制御部30は、キャッシュ38内のデータリスト及び削除対象を特定するデータを取り出し、これらを第１のバッファ40にセットする（Ｓ34）。
【００２６】
つぎに業務処理部32が起動し、第１のバッファ40内にセットされたデータリスト及び削除対象を特定するデータを取り出し、DBサーバ14に対して削除をリクエストする（Ｓ37）。
そして、DBサーバ14における削除処理が完了すると、業務処理部32は削除後の全データをDBサーバ14から受け取り、第１のバッファ40にセットする（Ｓ38）。
つぎに制御部30が起動し、第１のバッファ40内の全データをキャッシュ38にコピーすると共に（Ｓ40）、１頁分のデータを第２のバッファ41に格納する（Ｓ41）。
画面生成部34は、このデータをテンプレートに充填してWebファイルを生成し、クライアント端末12に送信する（Ｓ42）。
この結果、クライアント端末12のWebブラウザ上には、削除したデータを除いた、残りのデータが頁単位で表示されることとなる（Ｓ43）。
【００２７】
上記のように、制御部30は第１のバッファ40内の全データをキャッシュ38内に格納すると共に、これらを画面デザインが要求する行数を備えた頁単位で管理し、クライアント端末12に対しては第２のバッファ41及び画面生成部34を介して１頁分のデータリストを順次送信するように構成したため、Webブラウザ上では常に決められた行数分のデータが表示され、図６に示したように、検索ボタン48や削除ボタン52の位置も画面46上で固定されることとなる。
この結果、従来の専用アプリケーションプログラムで画面を生成した場合と同様の、見やすいユーザインターフェイスを実現できる。
【００２８】
このシステム10の場合、各サービス毎に独自の画面デザイン（画面テンプレート）が設計され、それに合わせて制御部30や画面生成部34の動作を変更する必要がある。
例えば、あるデータベースの削除画面について20行の一覧表示欄を設けた場合、制御部30及び画面生成部34は、20件のデータを１頁として扱うこととなる。
また、削除対象を選択する方法として、上記のように削除したいレコードにチェックを入れるのではなく、残したいレコードにチェックを入れる方式の画面デザインを採用した場合、制御部30は、チェックされていないデータに対し削除対象として選択されたことを示すデータをキャッシュ38内に記録することとなる。
【００２９】
なお、制御部30や画面生成部34を画面デザインに合わせてコーディングする際にも、各画面で共通する基本的な動作部分はアプリケーション基盤として事前に作り込んでおき、１頁当たりの行数やデータの選択方法、選択された場合の意味（チェックされたものを削除するのか、チェックされなかったものを削除するのか）といった部分についてのみ書き直せば済む。
特に、Java（登録商標）言語によって各部のコーディングを行う場合には、継承の仕組みを利用することによって簡単にアプリケーション基盤部分のコードを援用できるため、画面デザインの設計変更が容易となる。
【００３０】
ところで、図１に示したように、フロントエンドサーバ16には複数のクライアント端末12が接続されており、各クライアント端末12上でも複数のサービス利用画面を同時に起動することが可能であるため、サーバ16の搭載メモリを如何に多く確保したとしても、リソースの不足が懸念される。
そこで、このシステム10はメモリの効率的利用を実現する機能を実装している。
【００３１】
図７は、フロントエンドサーバ16におけるメモリ空間の利用イメージを図示したものであり、図中のセッション情報が各クライアント端末12用に確保されたメモリ空間を表している。各セッション情報は、セッションIDによって識別される。
また、一のセッション情報中の上段の丸印αがセッションIDに対応しており、中段の丸印βが各サービスに対応している。
さらに、下段の丸印γが各サービスに含まれる個々の処理に必要なメモリ領域を示している。
【００３２】
以下、図８のフローチャートに従い、このシステム10におけるメモリ管理の手順について説明する。
まず、ユーザが特定のサービス利用画面を閉じた場合には、クライアント端末12の状態通知部24よりその情報がフロントエンドサーバ16に送信される。
これを受けたメモリ管理部42は（Ｓ50）、図７(b)に示すように、メモリ（キャッシュ38、第１のバッファ40及び第２のバッファ41）上から該当のサービス利用画面に係るデータを消去し、メモリ空間（図中の点線で示した部分）を解放する（Ｓ51）。
【００３３】
従来、クライアント端末12上で特定のサービス利用画面を閉じたとしても、その事実をサーバ16側で認識することができず、ログオフによってセッション自体が終了するまでリソースの無駄が生じていたが、このシステム10ではクライアント端末12の状態通知部24によって画面を閉じた旨の情報が遅滞なくフロントエンドサーバ16に送信されるため、即座に不要なデータをメモリ空間から削除することが可能となっている。
【００３４】
また、フロントエンドサーバ16のメモリ管理部42は、クライアント端末12との通信状態を常時監視しており、ユーザが所定時間（例えば30分間）何れのサービス利用画面においても操作を行わない場合ことを検知した場合（Ｓ52）、図７(c)に示すように、メモリ管理部42は当該クライアント端末12に割り当てたメモリ空間上の全データをハードディスク上の退避領域44に移動させ、メモリ空間を解放する（Ｓ53）。
その後、ユーザがサービス利用画面における操作を再開し、クライアント端末12との間で通信が発生すると（Ｓ54）、メモリ管理部42は退避領域44から当該クライアント端末12に係るデータをメモリ上に移動させ、図７(a)または(b)の状態を復元する（Ｓ55）。
【００３５】
従来もタイムアウトという概念があり、一定時間クライアント端末12との間で通信がない場合には  当該クライアント端末12に係るデータをメモリ空間から削除することは行われていたが、ユーザが作業を再開する場合には再度ログインからやり直す必要があり、また作業の途中経過が再現されないという問題があった。
これに対し、このシステム10の場合には、上記のように一時的にハードディスク内の退避領域44にデータが移動するだけであり、作業再開時には即座に途中経過が復元されるため、ユーザの利便性を確保しつつ、リソースの無駄な占有状態を回避することが可能となる。
【００３６】
メモリ管理部42による上記の監視動作は、当該クライアント端末12とのセッションが終了し（Ｓ56）、当該クライアント端末12に割り当てていたメモリ空間から全データが消去されるまで続けられる（Ｓ57）。
【００３７】
上記にあっては、サービスの一例としてDBサーバ14に特定データの削除を求める「マスタメンテナンス・色削除」を例示したが、クライアント端末12からDBサーバ14に対してデータの追加や修正を求めることも当然に可能である。
例えば、ユーザが上記サービスメニューの中から「マスタメンテナンス・色登録」を選択すると、クライアント端末12の処理要求部28からフロントエンドサーバ16に対して当該サービスに係る利用画面の配信リクエストが送信される。
これを受けたフロントエンドサーバ16では、当該サービスに対応したアプリケーションプログラムが起動され、専用の制御部30、業務処理部32、画面生成部34が形成されると共に、メモリ空間上にキャッシュ38、第１のバッファ40及び第２のバッファ41が設定される。
【００３８】
つぎに制御部30は、画面生成部34に対して該当のWebファイルの送信を指令し、画面生成部34は予めデザインされた画面テンプレートに従って当該サービスの初期画面用のWebファイルを生成し、クライアント端末12に送信する。
この結果、クライアント端末12のブラウザ上には、図９に示すように、マスタメンテナンス・色登録サービスの初期画面53が表示される。
これに対しユーザが色タイプコード入力欄54に特定のコード番号、例えば「01」を入力して検索ボタン55をクリックすると、クライアント端末12の処理要求部28からフロントエンドサーバ16に対して色タイプコード＝01のデータベースに対する検索リクエストが送信される。
これを受けた制御部30は、当該リクエストを第１のバッファ40にセットする。
【００３９】
これに対し業務処理部32は、第１のバッファ40から検索条件（色タイプコード＝01）を取り出し、DBサーバ14に対して検索処理を依頼する。
そして、DBサーバ14から色タイプコード＝01のデータベース内に格納されているレコードが送信されると、業務処理部32はこれを第１のバッファ40にセットする。
【００４０】
つぎに制御部30は、第１のバッファ40内のデータを取り出し、キャッシュ38にコピーすると共に、データの一部（１頁分＝15行分）を第２のバッファ41に書き出す。
これに対し画面生成部34は、当該サービス用のテンプレートに各データを充填することによって検索結果表示用Webファイルを生成し、クライアント端末12に送信する。
この結果、クライアント端末12のWebブラウザ上には、図１０に示すように、色タイプコード＝01の登録データが一覧表示される。
【００４１】
これに対しユーザが任意のデータに修正を加え、頁スクロールのイベントを発生させると、クライアント端末12の状態通知部24から修正済みのデータ及び修正内容を示す通知がフロントエンドサーバ16に送信される。
これを受けた制御部30は、キャッシュ38内に格納されたデータの中で現在表示中の頁における該当行のデータに対して対応の修正を加える。
また、ユーザが下スクロールボタン56をクリックして次の頁の表示を求めた場合、２頁目のデータが埋め込まれたWebファイルが画面生成部34からクライアント端末12に送信され、Webブラウザ上に表示される。
ここでユーザが上スクロールボタン57をクリックし、１頁目の再表示を求めると、制御部30から第２のバッファ41に対して１頁目のデータ15件分が渡され、画面生成部34から１頁目の表示画面がクライアント端末12に送信される。
この結果、ユーザが先に修正したデータが画面中で再現されることとなる。
【００４２】
データの追加登録を希望するユーザは、最終頁に設けられた空白の入力フィールドに色コード、色漢字名称、色カナ名称を新規に入力する（図示省略）。
この場合も、頁スクロールのイベントを発生させた時点で、状態通知部24から行を特定した新規入力データがフロントエンドサーバ16に送信され、制御部30によってキャッシュ38内における該当頁のデータリストに追加される。
【００４３】
以上のようにして、必要な修正あるいは追加を完了したユーザは、画面中の更新ボタン58をクリックする。
この結果、クライアント端末12の処理要求部28からフロントエンドサーバ16に対し、データの更新リクエストが送信される。
これを受けた制御部30は、キャッシュ38内に格納された修正済みあるいは追加済みのデータリストを取り出し、第１のバッファ40にセットする。
つぎに業務処理部32が起動し、第１のバッファ40内にセットされたデータリストを取り出し、DBサーバ14に対して更新をリクエストする。
【図面の簡単な説明】
【００４４】
【図１】この発明に係るデータベース利用システムの全体構成を示す概念図である。
【図２】クライアント端末及びフロントエンドサーバの機能構成を示すブロック図である。
【図３】このシステムの処理手順を示すフローチャートである。
【図４】このシステムの処理手順を示すフローチャートである。
【図５】マスタメンテナンス・色削除サービスの初期画面を示すレイアウト図である。
【図６】マスタメンテナンス・色削除サービスのデータ一覧画面を示すレイアウト図である。
【図７】フロントエンドサーバにおけるメモリ空間の利用イメージを示す概念図である。
【図８】このシステムにおけるメモリ管理の手順を示すフローチャートである。
【図９】マスタメンテナンス・色登録サービスの初期画面を示すレイアウト図である。
【図１０】マスタメンテナンス・色登録サービスのデータ一覧画面を示すレイアウト図である。
【図１１】従来のデータベースの利用形態の一例を示す概念図である。
【符号の説明】
【００４５】
10  データベース利用システム
12  クライアント端末
14  DBサーバ
16  フロントエンドサーバ
18  通信網
20  入力装置
22  ディスプレイ
24  状態通知部
26  Webページ表示部
28  処理要求部
30  制御部
32  業務処理部
34  画面生成部
38  キャッシュ
40  第１のバッファ
41  第２のバッファ
42  メモリ管理部
44  退避領域
46  マスタメンテナンス・色削除サービスの初期画面
47  色タイプコード入力欄
48  検索ボタン
49  下スクロールボタン
50  チェックボックス
51  上スクロールボタン
52  削除ボタン
53  マスタメンテナンス・色登録サービスの初期画面
54  色タイプコード入力欄
55  検索ボタン
56  下スクロールボタン
57  上スクロールボタン
58  更新ボタン
X1,X2,X3  アプリケーションプログラム
【図１】
0004464727.tif 000002
【図２】
0004464727.tif 000003
【図３】
0004464727.tif 000004
【図４】
0004464727.tif 000005
【図５】
0004464727.tif 000006
【図６】
0004464727.tif 000007
【図７】
0004464727.tif 000008
【図８】
0004464727.tif 000009
【図９】
0004464727.tif 000010
【図１０】
0004464727.tif 000011
【図１１】
0004464727.tif 000012