説明

ネットワークに接続可能な端末においてWebサーバから受信したデータベースエンジンを動作させる方法および端末

【課題】Webサーバからダウンロードしたデータベースエンジンを端末で動作させる方
法および当該端末がオフライン状態においても動作させる方法を提供すること。
【解決手段】端末30が、前記データベースエンジンの非認証スレッドにより引数データ
をメモリ部120に書き出すステップと、前記非認証スレッドにより引数設定通知データ
を記憶部130にアクセスする許可が与えられた前記データベースエンジンの認証スレッ
ドに送信するステップと、前記認証スレッドにより前記メモリ部120に書き出した引数
データを読み込むステップと、前記認証スレッドにより記憶部130に記憶したデータベ
ースにアクセスして前記データベースエンジンのコマンドを実行し、実行結果を戻り値と
して前記メモリ部120に書き出すステップと、前記認証スレッドにより、戻り値設定通
知データを前記非認証スレッドへ送信するステップと、を含むことを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークに接続可能な端末においてWebサーバから受信したデータベ
ースエンジンを動作させる方法および端末に関する。特に、当該ネットワークが切断した
場合にも当該データベースエンジンを動作させる方法および端末に関する。
【背景技術】
【0002】
従来、ネットワークを介して接続されたWebサーバと端末で構成されるいわゆるWe
bシステムにおいて、データベースエンジン(詳細は後述する)を動作させるために様々
な方法が提案されている。例えば、端末にはWebブラウザのみを導入し、ネットワーク
に接続されたWebサーバからその都度必要なプログラムを、当該ネットワークを介して
端末に送信して動作させる方法がある。
【0003】
図9は、上述の目的のために構成したWebシステムの一例である。この方法によれば
、データを管理するデータベースサーバ10が当該データを記憶する記憶部を備え、当該
記憶部に記憶されたデータにアクセスして当該データの検索、挿入、削除、更新等の管理
を行うデータ管理プログラム(データベースエンジン)を動作させる。端末30は、ネッ
トワーク40を介して、データの表示、ユーザによる操作入力の受付等のユーザインター
フェースプログラムおよびビジネスロジックを含むアプリケーションプログラムをWeb
サーバ20から随時ダウンロードして動作させる。
【0004】
例えばJavaScript(登録商標)などで実現するアプリケーションプログラム
をWebサーバ20から端末30に送信し、端末30は、Webブラウザにおいて当該ア
プリケーションプログラムを実行し、Webサーバ20を介してデータベースサーバ10
上のデータベースエンジンと連携し、システム全体としてデータベースアプリケーション
システムとして機能することが可能である。
【0005】
さらに、端末30が、アプリケーションプログラムのうちユーザインターフェースプロ
グラムの部分のみを実行し、Webサーバ20がWebアプリケーションサーバとしてビ
ジネスロジックを動作させる方法も提案されている。
【0006】
この場合には、当該Webアプリケーションサーバは端末30のWebブラウザからの
要求を受け付けてビジネスロジックを動作させ、データベースサーバ10に接続してデー
タベースにアクセスする。当該Webアプリケーションサーバは、データベースサーバ1
0からの結果セットに基づいて当該結果セットを表すWebページを構成し、Webペー
ジ応答として端末30に送信する。端末30は、Webブラウザにより当該結果セットを
表すWebページを受信して表示させる。
【0007】
この方法においては、アプリケーションプログラム等をあらかじめ端末30にインスト
ールして構成するいわゆるFat Client型のシステムのような過大な運用負荷の
問題は発生しないと考えられている。すなわち、あらかじめアプリケーションプログラム
を端末30にインストールする必要もなく、更新も容易である。さらに、アプリケーショ
ンプログラムが端末30のOSに依存するという問題も発生しない。また、端末30にW
ebブラウザさえあれば実現できることから、標準かつオープンな技術だけで当該アプリ
ケーションプログラムを開発できる、というメリットもある。
【0008】
なお、関連技術として、広告DBから広告を読み出してユーザ端末に送信するプログラ
ムに埋め込み、ユーザ端末がネットワークに接続していない場合であっても、当該プログ
ラムにより当該広告を表示させる技術も提案されている(特許文献1)。
【0009】
しかしながら、特許文献1に開示された技術は、サーバにおいて、広告データを埋め込
んだプログラムを端末に送信して単に実行させているだけであり、データの検索、挿入、
削除、更新、といったデータの操作を端末上で行うことはできない。
【0010】
また、本発明の背景技術については、例えば、非特許文献1に開示されている。
【特許文献1】特開2002−24695号公報
【非特許文献1】DBMS解剖学 よくわかるリレーショナルデータベースの仕組み鈴木幸市/藤塚勤也 株式会社翔泳社 (2005年2月21日)
【発明の開示】
【発明が解決しようとする課題】
【0011】
しかしながら、上述のようないわゆるWebシステムにおいて、データベースエンジン
を端末30において動作させるためには新たな課題が存在する。
【0012】
まず、オフライン状態においては、端末30は動作することができないという課題があ
る。上述のWebシステムにおいては、端末30は、データベースサーバ10が管理する
データベースのマスターデータの一部であるサブセットデータおよび当該サブセットデー
タを管理するデータベースエンジンを持たないため、オフライン状態においては、端末3
0はデータベースにアクセスする必要があるビジネスロジックを動作させることができな
い。
【0013】
そこで例えば、当該サブセットデータをデータベースサーバ10から端末30にダウン
ロードしてハードディスク装置に記憶し、端末30において動作するJava(登録商標
)アプレット等により構成したデータベースエンジンをWebサーバ20からダウンロー
ドすることも考えられる。
【0014】
しかしながら、通常の運用においては、このようなJavaアプレットは端末30のメ
モリ部に展開されて動作するが、端末30のローカル資源であるハードディスク装置等へ
のアクセスには一定の制限がある。このような制限は、近年、別の大きな問題となってい
るコンピュータウイルスや、サイバーテロ等から端末30に記憶されたデータ等を保護す
るために必要と考えられている。
【0015】
このため、仮に端末30がネットワーク40を介してデータベースサーバ10からマス
ターデータの一部であるサブセットデータをダウンロードしてハードディスク装置等の記
憶部に記憶をしたとしても、Webサーバ20からダウンロードしたJavaアプレット
は、当該記憶をしたサブセットデータにアクセスすることが制限されるため、結局当該デ
ータベースを操作することができない。
【0016】
そこで例えば、端末30において動作する電子署名付きJavaアプレットにより構成
したデータベースエンジンをWebサーバ20からダウンロードし、当該サブセットデー
タをデータベースサーバ10から端末30にダウンロードしてハードディスク装置に記憶
することも考えられる。
【0017】
しかしながら、電子署名付きJavaアプレット自身は、端末30のローカル資源であ
るハードディスク装置等へのアクセスが許可されるが、Webサーバ20からダウンロー
ドしたJavaScript等のスクリプトプログラムから電子署名付きJavaアプレ
ットを呼び出しても、端末30のローカル資源であるハードディスク装置等へのアクセス
は許可されない。
【0018】
このため、仮に端末30において動作する電子署名付きJavaアプレット等により構
成したデータベースエンジンをWebサーバ20からダウンロードし、当該サブセットデ
ータをデータベースサーバ10から端末30にダウンロードしてハードディスク装置等に
記憶をしたとしても、Webサーバ20からダウンロードしたスクリプトプログラムは、
当該記憶をしたサブセットデータにアクセスすることが制限されるため、結局当該データ
ベースを操作することができない。
【0019】
本発明は、上述の課題に鑑みてなされたものであり、Webサーバ20からダウンロー
ドしたデータベースエンジンを端末30で動作させる方法を提供することを目的とする。
さらに、端末30がオフライン状態においても動作可能なデータベースエンジンを実現す
る方法を提供することを目的とする。
【課題を解決するための手段】
【0020】
本発明は、Webサーバおよびデータベースサーバに接続可能な端末が、Webブラウ
ザ上で動作するデータベースエンジンを前記Webサーバから受信して展開するメモリ部
と、少なくとも前記データベースサーバが管理しているデータベースのマスターデータの
一部であるサブセットデータを、前記Webサーバを介して前記データベースサーバから
受信して一時的に記憶する記憶部と、を備え、少なくとも前記データベースのユーザイン
ターフェース処理を行うWebブラウザ上で動作するスクリプトプログラムを前記Web
サーバから受信するステップと、前記スクリプトプログラムに従って、前記記憶部に記憶
した前記サブセットデータを操作するコマンドを実行するために、前記データベースエン
ジンを非認証スレッドで、引数を設定して呼び出すステップと、前記非認証スレッドが前
記引数を表す引数データを前記メモリ部に書き出すステップと、前記非認証スレッドによ
る前記引数データの書き出しを、前記記憶部にアクセスする許可が与えられたデータベー
スエンジンの認証スレッドに通知する引数設定通知データを送信するステップと、前記引
数設定通知データの受信に応じて、前記認証スレッドが前記メモリ部に書き出された引数
データを読み込むステップと、前記引数データに従って前記認証スレッドが前記記憶部に
記憶したサブセットデータにアクセスして前記コマンドを実行し、実行結果を戻り値とし
て前記メモリ部に書き出すステップと、前記認証スレッドによる前記戻り値の書き出しを
前記非認証スレッドに通知する戻り値設定通知データを送信するステップと、前記戻り値
設定通知データの受信に応じて、前記非認証スレッドが前記スクリプトプログラムに対し
て前記戻り値を返すステップと、を含むことを特徴とする。
【0021】
本発明のこのような構成によれば、Webサーバおよびデータベースサーバに接続可能
な端末が、Webブラウザ上で動作するデータベースエンジンを前記Webサーバから受
信して展開するメモリ部と、少なくとも前記データベースサーバが管理しているデータベ
ースのマスターデータの一部であるサブセットデータを、前記Webサーバを介して前記
データベースサーバから受信して一時的に記憶する記憶部と、を備え、少なくとも前記デ
ータベースのユーザインターフェース処理を行うWebブラウザ上で動作するスクリプト
プログラムを前記Webサーバから受信し、前記スクリプトプログラムに従って、前記記
憶部に記憶した前記サブセットデータを操作するコマンドを実行するために、前記データ
ベースエンジンを非認証スレッドで、引数を設定して呼び出し、前記非認証スレッドが前
記引数を表す引数データを前記メモリ部に書き出し、前記非認証スレッドによる前記引数
データの書き出しを、前記記憶部にアクセスする許可が与えられたデータベースエンジン
の認証スレッドに通知する引数設定通知データを送信し、前記引数設定通知データの受信
に応じて、前記認証スレッドが前記メモリ部に書き出された引数データを読み込み、前記
引数データに従って、前記認証スレッドが前記記憶部に記憶したサブセットデータにアク
セスして前記コマンドを実行し、実行結果を戻り値として前記メモリ部に書き出し、前記
認証スレッドによる前記戻り値の書き出しを前記非認証スレッドに通知する戻り値設定通
知データを送信し、前記戻り値設定通知データの受信に応じて、前記非認証スレッドが前
記スクリプトプログラムに対して前記戻り値を返すことが可能であるという効果を有する

【0022】
このことにより、前記端末は、前記スクリプトプログラムから前記サブセットデータを
操作するコマンドを実行するために、非認証スレッドで動作する前記スクリプトプログラ
ム自身は前記データベースエンジンを呼び出し、前記データベースエンジン側で非認証ス
レッドから認証スレッドに通知することにより、結果として前記スクリプトプログラムか
らローカル資源にアクセスする必要があるデータベースコマンドを実行することができる

【0023】
その結果、端末のWebブラウザ上で動作するデータベースエンジンを実現することが
できる。
【0024】
本発明の原理を応用すれば、例えば、Webシステムにおいて、データベースサーバが
管理するデータベースのマスターデータの一部であるサブセットデータおよび当該サブセ
ットデータを管理するデータベースエンジンを端末にダウンロードして動作させることが
可能となる。さらに、端末がオフライン状態においても、当該端末はデータベースにアク
セスする必要があるビジネスロジックを動作させることができる。当該Webシステムに
おいて、データベースエンジンはWebブラウザ上で動作するため、標準かつオープンな
技術のみで設計できる。
【0025】
図10は、本発明の構成及び効果を示す図である。
【0026】
また、本発明は、前記端末が、前記データベースエンジンを前記Webサーバから最初
に受信したことに応じて、前記データベースの認証スレッドに前記記憶部へのアクセスを
許可するか否かを前記端末のユーザに対して問い合わせるための画面を表示するステップ
と、前記ユーザの操作により前記認証スレッドに前記アクセスを許可する旨の指示を受け
付けたことに応じて、前記データベースエンジンの認証スレッドに対して前記記憶部にア
クセスする許可を与えるステップと、をさらに含むことが望ましい。
【0027】
本発明のこのような構成によれば、前記端末が、前記データベースエンジンを前記We
bサーバから最初に受信したことに応じて、前記データベースの認証スレッドに前記記憶
部へのアクセスを許可するか否かを前記端末のユーザに対して問い合わせるための画面を
表示し、前記ユーザの操作により前記認証スレッドに前記アクセスを許可する旨の指示を
受け付けたことに応じて、前記データベースエンジンの認証スレッドに対して前記記憶部
にアクセスする許可を与えることが可能であるという効果を有する。
【0028】
このことにより、前記端末は、前記ユーザから、前記データベースエンジンの認証スレ
ッドに対して前記記憶部へのアクセス許可を最初に一度だけ受け付けるだけで、その後再
度ユーザの許可を受け付けることなく、前記認証スレッドによりデータベースにアクセス
することが可能となる。
【0029】
また、本発明は、前記端末が、所定の受信タイミングにおいて、前記データベースエン
ジンの認証スレッドにより、前記データベースサーバが管理しているマスターデータの少
なくとも一部を前記データベースサーバから送信することを要求するデータを、前記We
bサーバに送信するステップと、前記データベースエンジンの認証スレッドにより、前記
Webサーバを介して、前記データベースサーバが管理しているマスターデータの少なく
とも一部を受信し、前記記憶部に記憶しているサブセットデータを更新するステップと、
をさらに含むことが望ましい。
【0030】
このような構成によれば、前記端末が、所定の受信タイミングにおいて、前記データベ
ースサーバが管理しているマスターデータの少なくとも一部を前記データベースサーバか
ら送信することを要求するデータを、前記Webサーバに送信し、前記Webサーバを介
して、前記データベースサーバが管理しているマスターデータの少なくとも一部を受信し
、前記記憶部に記憶しているサブセットデータを更新することが可能であるという効果を
有する。
【0031】
このことにより、前記端末は、前記マスターデータと前記サブセットデータの整合性を
保つために、所定の受信タイミングにおいて、前記Webサーバを介してデータベースサ
ーバが管理している前記マスターデータの少なくとも一部を前記端末にダウンロードし、
前記記憶部に記憶しているサブセットデータを更新することができる。
【0032】
また、本発明は、前記端末が、所定の送信タイミングにおいて、前記データベースエン
ジンの認証スレッドにより、前記記憶部に記憶しているサブセットデータの少なくとも一
部を、前記Webサーバを介して前記データベースサーバへ送信するステップをさらに含
むことが望ましい。
【0033】
このような構成によれば、前記端末が、所定の送信タイミングにおいて、前記データベ
ースエンジンの認証スレッドにより、前記記憶部に記憶しているサブセットデータの少な
くとも一部を、前記Webサーバを介して前記データベースサーバへ送信することが可能
であるという効果を有する。
【0034】
このことにより、前記マスターデータと前記サブセットデータの整合性を保つために、
前記所定の送信タイミングにおいて、前記端末は、前記データベースエンジンの認証スレ
ッドにより、前記記憶部に記憶しているサブセットデータの少なくとも一部を読み出して
前記データベースサーバへアップロードし、前記データベースサーバのマスターデータを
更新させることができる。
【0035】
また、本発明は、前記端末が、所定の受信タイミングにおいて、前記データベースエン
ジンの認証スレッドにより、前記データベースサーバが管理しているマスターデータのう
ち前回の受信タイミング以降に前記データベースサーバによって更新をされたマスターデ
ータを前記データベースサーバから送信することを要求するデータを、前記Webサーバ
に送信するステップと、前記データベースエンジンの認証スレッドにより、前記Webサ
ーバを介して当該更新をされたマスターデータを前記データベースサーバから受信し、前
記記憶部に記憶しているサブセットデータを更新するステップと、をさらに含むことが望
ましい。
【0036】
このような構成によれば、前記端末が、所定の受信タイミングにおいて、前記データベ
ースエンジンの認証スレッドにより、前記データベースサーバが管理しているマスターデ
ータのうち前回の受信タイミング以降に前記データベースサーバによって更新をされたマ
スターデータを前記データベースサーバから送信することを要求するデータを、前記We
bサーバに送信し、前記データベースエンジンの認証スレッドにより、前記Webサーバ
を介して当該更新をされたマスターデータを前記データベースサーバから受信し、前記記
憶部に記憶しているサブセットデータを更新することが可能であるという効果を有する。
【0037】
このことにより、前記Webサーバを介して前記データベースサーバからダウンロード
すべき、前回の受信タイミング以降に前記データベースサーバによって更新をされたマス
ターデータである差分データが存在する場合には、前記端末にダウンロードし、前記記憶
部に記憶したサブセットデータを更新することができる。
【0038】
その結果、全体としてネットワークの通信負荷を抑え、効率的にデータのダウンロード
を行うことができる。
【0039】
また、本発明は、前記端末が、所定の送信タイミングにおいて、前記データベースエン
ジンの認証スレッドにより、前記データベースサーバから受信して前記記憶部に記憶した
サブセットデータのうち前回の送信タイミング以降に前記端末が更新したサブセットデー
タを、前記Webサーバを介して前記データベースサーバへ送信するステップをさらに含
むことが望ましい。
【0040】
このような構成によれば、前記端末が、所定の送信タイミングにおいて、前記データベ
ースエンジンの認証スレッドにより、前記データベースサーバから受信して前記記憶部に
記憶したサブセットデータのうち前回の送信タイミング以降に前記端末が更新したサブセ
ットデータを、前記Webサーバを介して前記データベースサーバへ送信することが可能
であるという効果を有する。
【0041】
このことにより、前記Webサーバを介して前記データベースサーバへアップロードす
べき、前回の送信タイミング以降に前記端末が更新したサブセットデータである差分デー
タが存在する場合には、前記データベースエンジンの認証スレッドにより、前記端末の前
記記憶部から読み出して前記データベースサーバへアップロードし、前記データベースサ
ーバのデータベースを更新することができる。
【0042】
その結果、全体としてネットワークの通信負荷を抑え、効率的にデータのアップロード
を行うことができる。
【0043】
本発明は、Webサーバおよびデータベースサーバに接続可能であり、データベースに
関する処理を実行する端末であって、Webブラウザ上で動作するデータベースエンジン
を前記Webサーバから受信して展開するメモリ部と、少なくとも前記データベースサー
バが管理しているデータベースのマスターデータの一部であるサブセットデータを、前記
Webサーバを介して前記データベースサーバから受信して一時的に記憶する記憶部と、
を備え、少なくとも前記データベースのユーザインターフェース処理を行うWebブラウ
ザ上で動作するスクリプトプログラムを前記Webサーバから受信する手段と、前記スク
リプトプログラムに従って、前記記憶部に記憶した前記サブセットデータを操作するコマ
ンドを実行するために、前記データベースエンジンを非認証スレッドで、引数を設定して
呼び出す手段と、前記非認証スレッドが前記引数を表す引数データを前記メモリ部に書き
出す手段と、前記非認証スレッドによる前記引数データの書き出しを、前記記憶部にアク
セスする許可が与えられたデータベースエンジンの認証スレッドに通知する引数設定通知
データを送信する手段と、前記引数設定通知データの受信に応じて、前記認証スレッドが
前記メモリ部に書き出された引数データを読み込む手段と、前記引数データに従って、前
記認証スレッドが前記記憶部に記憶したサブセットデータにアクセスして前記コマンドを
実行し、実行結果を戻り値として前記メモリ部に書き出す手段と、前記認証スレッドによ
る前記戻り値の書き出しを前記非認証スレッドに通知する戻り値設定通知データを送信す
る手段と、前記戻り値設定通知データを受信したことに応じて、前記非認証スレッドが前
記スクリプトプログラムに対して前記戻り値を返す手段と、を備えることを特徴とする。
【0044】
本発明のこのような構成によれば、前記端末が、Webブラウザ上で動作するデータベ
ースエンジンを前記Webサーバから受信して展開するメモリ部と、少なくとも前記デー
タベースサーバが管理しているデータベースのマスターデータの一部であるサブセットデ
ータを、前記Webサーバを介して前記データベースサーバから受信して一時的に記憶す
る記憶部と、を備え、少なくとも前記データベースのユーザインターフェース処理を行う
Webブラウザ上で動作するスクリプトプログラムを前記Webサーバから受信し、前記
スクリプトプログラムに従って、前記記憶部に記憶した前記サブセットデータを操作する
コマンドを実行するために、前記データベースエンジンを非認証スレッドで、引数を設定
して呼び出し、前記非認証スレッドが前記引数を表す引数データを前記メモリ部に書き出
し、前記非認証スレッドによる前記引数データの書き出しを、前記記憶部にアクセスする
許可が与えられたデータベースエンジンの認証スレッドに通知する引数設定通知データを
送信し、前記引数設定通知データの受信に応じて、前記認証スレッドが前記メモリ部に書
き出された引数データを読み込み、前記引数データに従って、前記認証スレッドが前記記
憶部に記憶したサブセットデータにアクセスして前記コマンドを実行し、実行結果を戻り
値として前記メモリ部に書き出し、前記認証スレッドによる前記戻り値の書き出しを前記
非認証スレッドに通知する戻り値設定通知データを送信し、前記戻り値設定通知データの
受信に応じて、前記非認証スレッドが前記スクリプトプログラムに対して前記戻り値を返
すことが可能であるという効果を有する。
【発明を実施するための最良の形態】
【0045】
本発明に係る好適な実施形態の一例について、図面に基づいて以下に説明する。
【0046】
[システムの機能構成]
図1は、本発明の好適な実施形態の一例に係るコンピュータシステムを構成する各サー
バおよび端末の主要な構成を表すブロック図である。データベースサーバ10とWebサ
ーバ20と端末30とがネットワーク40を介して接続されている。これらの機器の数に
は制限はなく、1または複数で構成してよい。
【0047】
データベースサーバ10は、データベースのマスターデータを管理し、データの検索、
挿入、削除、更新等の管理を行うデータベースエンジンを備える。また、必要に応じて当
該マスターデータの少なくとも一部を、Webサーバ20を介して端末30に送信する。
【0048】
Webサーバ20は、端末30におけるユーザインターフェースプログラムやビジネス
ロジックを含むアプリケーションプログラム(スクリプト312)および端末30上のデ
ータベースを管理するデータベースエンジン(データベースアプレット313)などのプ
ログラムを端末30に送信する。
【0049】
なお、本実施例においてはデータベースサーバ10とWebサーバ20は別のコンピュ
ータで構成しているが、同一のコンピュータで構成してもよい。
【0050】
また、データベースエンジン(データベースアプレット313)は、Webサーバ20
のデータベース同期ロジック21と通信し、所定のタイミングでデータベースサーバ10
が管理する当該マスターデータと、端末30の記憶部(キャッシュ320)に記憶した当
該マスターデータの一部であるサブセットデータ(データベースファイル321)との同
期をおこなう。
【0051】
端末30は、データベースサーバ10からオフライン動作に必要なデータとして受信し
たサブセットデータ(データベースファイル321)を記憶部130が備えるキャッシュ
320に記憶する。さらに、端末30は、Webサーバ20から受信した、Webブラウ
ザ310上で動作するアプリケーションプログラム(スクリプト312)とデータベース
エンジン(データベースアプレット313)とを実行し、Webブラウザ310上に動的
にWebページ311を表示・更新する。
【0052】
スクリプト312の具体例としては、JavaScript等が挙げられる。また、表
示させるWebページの具体例としては、HTML、CSS、GIF、XML等で構成し
たものが挙げられる。
【0053】
当該アプリケーションプログラム(スクリプト312)とデータベースエンジン(デー
タベースアプレット313)は、Webブラウザ310上で動作し、端末30のOSやW
ebブラウザ310の種類には依存しない。
【0054】
また、スクリプト312がデータベースアプレット313を呼び出す手法の例としては
、LiveConnect(登録商標)、ActiveX(登録商標)スクリプティング
等が挙げられる。
【0055】
スクリプト312は、データベースアプレット313が返した実行結果データセットに
基づいて、JavaScript、DynamicHTML、DOM(Document
Object Model)等により、Webページを動的に生成又は更新し、画面に
反映させる。端末30は、その後再びユーザからの入力を受け付け、上述の処理を繰り返
す。
【0056】
このような処理により、端末30は、オフライン状態においても端末30上のデータベ
ースエンジン(データベースアプレット313)が利用でき、動的にWebページを表示
させることができる。
【0057】
[各サーバおよび端末の構成]
図2は、本発明の好適な実施形態の一例に係るデータベースサーバ10、Webサーバ
20、端末30の構成を示すブロック図である。たとえば、データベースサーバ10にお
いて、制御部110、メモリ部120、記憶部130、通信インターフェース部140、
入力部150、表示部160は、バス170を介して接続されている。
【0058】
以下、データベースサーバ10について説明する。
【0059】
制御部110は、情報の演算、処理を行う情報演算処理装置であり、CPU(Cent
ral Processing Unit)であってよい。また、制御部110はデータ
ベースサーバ10全体の制御を行い、記憶部130に記憶された各種プログラムを適宜読
み出してメモリ部120に展開して実行することにより、上述のハードウエアが協働し、
本発明に係る各種機能を実現している。
【0060】
表示部160は、ユーザにデータの入力を受け付ける画面を表示したり、データベース
サーバ10による演算処理結果の画面を表示したりするものであり、ブラウン管表示装置
(CRT)、液晶表示装置(LCD)等のディスプレイ装置を含む。
【0061】
入力部150は、ユーザによる入力の受付を行うものであり、キーボード、ポインティ
ングデバイス等を含む。入力部150は、直接または介在I/Oコントローラを介してデ
ータベースサーバ10と接続することができる。
【0062】
通信インターフェース部140は、データベースサーバ10を専用ネットワークまたは
公共ネットワークを介してWebサーバ20や端末30と接続できるようにするためのネ
ットワーク・アダプタである。通信インターフェース部140は、モデム、ケーブル・モ
デムおよびイーサネット(登録商標)・アダプタを含む。
【0063】
メモリ部120は、制御部110と組み合わせてプログラムの実行に使用するローカル
メモリを含む。記憶部130は、大容量のバルクメモリ、および当該バルクメモリの検索
を効率的に行うために使用するキャッシュメモリを含む。メモリ部120および記憶部1
30を実現するコンピュータ可読媒体としては、電気的、磁気的、光学的、電磁的に実現
するものを含む。より具体的には、半導体記憶装置、磁気テープ、フレキシブルディスク
、ランダム・アクセス・メモリ(RAM)、リードオンリー・メモリ(ROM)、CD−
ROMとCD−R/WとDVDとを含む光ディスクが含まれる。
【0064】
また、Webサーバ20、端末30もデータベースサーバ10と同様の構成を持つ。
【0065】
[認証スレッドと非認証スレッドの連携]
図3は、本発明の好適な実施形態の一例に係るシステムにおいて、認証スレッドと非認
証スレッドがメモリ316を介して連携し、端末30のWebブラウザ上でデータベース
エンジンを動作させる方法を示す図である。
【0066】
端末30のデータベースアプレット313は、認証スレッドにより端末30のキャッシ
ュ320を含む記憶部130へアクセスすることが許されているアプレットであってよく
、例えば、デジタル署名により第三者機関により認証されたアプレットである。データベ
ースアプレット313は、スクリプト312からデータベースエンジン314を呼び出す
ためのアプリケーションインターフェースであるAPI(Application Pr
ograming Interface)315、メモリ316(変数や待ち行列等のデ
ータ構造)、データベースエンジン314を持つ。
【0067】
ここで、データベースアプレット313は、キャッシュ320等のローカル資源にアク
セスすることができない非認証スレッド317と、ローカル資源にアクセスすることが許
された認証スレッド318と、の2種類のスレッドで動作する。
【0068】
非認証スレッド317は、ユーザのWebページ311の操作やタイマー等のイベント
により発生したスレッドで、スクリプト312を動作させ、データベースアプレット31
3のAPIを呼び出して実行する。
【0069】
認証スレッド318は、データベースアプレット313が生成したスレッドで、データ
ベースエンジン314を動作させ、データベースファイル321を操作する。非認証スレ
ッド317と認証スレッド318とは図5を用いて後述するように、メモリ316を介し
て連携する。
【0070】
[動的なWebページ表示処理]
図4は、本発明の好適な実施形態の一例に係るシステムにおける、動的なWebページ
表示処理を示すフローチャートである。
【0071】
まず、Webブラウザ310がユーザによる入力操作を受け付けたり、ビジネスロジッ
クを実行したりすることにより、イベントが発生すると、端末30の制御部110は、対
応するスクリプト312を呼び出す(ステップS111)。
【0072】
さらに、端末30の制御部110は、スクリプト312に従ってデータベースコマンド
を生成し(ステップS112)、引数を設定してデータベースエンジン(データベースア
プレット313)を呼び出す(ステップS113)。より具体的には、引数として例えば
SQLのSelect文を設定してデータベースエンジン(データベースアプレット31
3)のコマンドを呼び出す。
【0073】
次に、端末30の制御部110は、データベースエンジン(データベースアプレット3
13)により当該引数に基づいてデータベースコマンドを実行し(ステップS114)、
データベースファイル321の操作を行なう(ステップS115)。
【0074】
当該データベースファイル321の操作の結果、データベースコマンドの実行結果とし
ての結果セットを得た場合(ステップS116)には、端末30の制御部110は、スク
リプト312により、データベースエンジン(データベースアプレット313)からの戻
り値としての当該結果セットを読み込む(ステップS117)。場合によっては、結果セ
ットがない場合もあり、その場合には戻り値NULLがスクリプト312に返される。
【0075】
次に、端末30の制御部110は、スクリプト312により、データベースエンジン(
データベースアプレット313)からの戻り値として読み込んだ結果セットに基づいて動
的にWebページを生成・更新する(ステップS118)。
【0076】
[認証スレッドと非認証スレッドの連携の詳細]
図5は、本発明の好適な実施形態の一例に係るシステムの端末30において、認証スレ
ッド318と非認証スレッド317がメモリ316を介して連携し、データベースコマン
ドを実行する方法の詳細を示すフローチャートである。図の左側が非認証スレッド317
による処理、右側が認証スレッド318による処理を表す。
【0077】
まず、端末30の制御部110は、スクリプト312により、データベースエンジン3
14のAPI315に引数値を設定して呼び出し、データベースコマンドの実行を開始す
る。
【0078】
次に、端末30の制御部110は、データベースアプレット313の非認証スレッド3
17により該設定されたAPI315の引数値を取得する(ステップS211)。具体的
には、例えば、dbms.execute(“select(・・・)”)といったコマ
ンドの引数値を取得する。
【0079】
次に、端末30の制御部110は、非認証スレッド317により、当該引数値を表す引
数データをメモリ316(メモリ部120)に書き出すことにより設定する(ステップS
212)とともに、認証スレッド318に対して引数値の設定が完了した旨を通知するデ
ータ(引数設定通知データ)を送信し(ステップS213)、認証スレッド318からの
通知を待つ(ステップS214)。
【0080】
次に、端末30の制御部110は、非認証スレッド317により、認証スレッド318
から、戻り値の設定が完了した旨を通知するデータ(戻り値設定通知データ)を受信した
ことに応じて(ステップS215)、メモリ316(メモリ部120)から戻り値を読み
出すことにより取得し、API315の戻り値として設定する(ステップS216)。
【0081】
一方、端末30の制御部110は、認証スレッド318により、非認証スレッド317
からの通知を待機している(ステップS311)。
【0082】
そして、端末30の制御部110は、認証スレッド318により、引数値の設定が完了
した旨を通知するデータを受信したことに応じて、当該引数値をメモリ316(メモリ部
120)から取得する(ステップS312)。
【0083】
次に、端末30の制御部110は、認証スレッド318により、データベースファイル
321の操作を行う(ステップS313)。より具体的には、例えば前記引数値によって
指定されたSelect文の実行などを行なう。
【0084】
次に、端末30の制御部110は、認証スレッド318により、前記データベースファ
イル321の操作の結果に基づいてメモリ316(メモリ部120)へ戻り値を設定し(
ステップS314)、非認証スレッド317に当該戻り値の設定が完了した旨を通知する
データ(戻り値設定通知データ)を送信する(ステップS315)。
【0085】
このようにして、端末30の認証スレッド318は、次の非認証スレッド317からの
通知を待ち、上述の一連の処理を繰り返す。
【0086】
端末30の制御部110は、上述のように非認証スレッド317と認証スレッド318
とをメモリ316(メモリ部120)を介して連携させ、端末30においてデータベース
コマンドを実行することになる。
【0087】
[データベース同期処理]
図6は、本発明の好適な実施形態の一例に係るシステムにおける、データベース同期処
理を示すフローチャートである。
【0088】
まず、端末30の制御部110は、所定のタイミングで同期処理を開始する。
【0089】
ここで所定のタイミングは、端末30の起動時や終了時、ユーザの操作を受け付けたタ
イミングで決めるか、あるいはユーザの操作とは無関係に決めてもよい。オフライン時に
は、何回か当該同期処理を繰り返し試みてもよい。
【0090】
データベースサーバ10へアップロードすべきデータがある場合には(ステップS41
1)、端末30の制御部110は、記憶部130からデータベースファイル321を読み
込み(ステップS412)、当該読み込んだデータベースファイル321を、Webサー
バ20を介してデータベースサーバ10へアップロードする(ステップS413)。
【0091】
同様に、端末30の制御部110は、データベースサーバ10にダウンロードすべきデ
ータがある場合には(ステップS414)、端末30の制御部110は、Webサーバ2
0を介して、データベースサーバ10からデータをダウンロードする(ステップS415
)。さらに、端末30の制御部110は、当該ダウンロードしたデータを、記憶部130
にデータベースファイル321として書き出す(ステップS416)。
【0092】
なお、上述のアップロードすべきデータがあるかどうかの判断やダウンロードすべきデ
ータがあるかどうかの判断は、差分データの発生の有無、定期的なメンテナンスなど、適
宜設定されたルールに従ってなされてよい。
【0093】
[認証確認処理]
図7は、データベースエンジン(データベースアプレット313)にローカル資源への
アクセスを許可するか否かをユーザに問い合わせる方法を示すフローチャートである。
【0094】
まず、端末30の制御部110は、Webサーバ20から最初にデータベースエンジン
(データベースアプレット313)を受信したことに応じて、端末30のユーザに対して
、当該データベースエンジン(データベースアプレット313)に、端末30の記憶部1
30などのローカル資源にアクセスする許可を与えるか否かを問い合わせる(ステップS
511)。
【0095】
図8は、端末30のユーザに対してデータベースエンジン(データベースアプレット3
13)にローカル資源へのアクセスを許可するか否かを問い合わせるための画面の一例を
示す図である。この例においては、「RemoteDB.jar」というデータベースエ
ンジン(データベースアプレット313)に対して、許可を与えるか否かを問い合わせて
いる。
【0096】
次に、端末30の制御部110は、ユーザの操作により、当該データベースエンジン(
データベースアプレット313)に端末30のローカル資源へのアクセスを許可する旨の
指示を受け付けたことに応じて、当該データベースエンジン(データベースアプレット3
13)に対して前記記憶部にアクセスする許可を与える(ステップS512)。
【0097】
ここで、当該データベースエンジン(データベースアプレット313)は、ユーザの操
作により一度端末30のローカル資源へのアクセスを許可されれば、当該データベースエ
ンジン(データベースアプレット313)がそれ以降生成するスレッドは、認証スレッド
として同様に端末30のローカル資源へのアクセス許可が与えられることになる。
【0098】
従って、例えば、本発明の原理を応用した業務アプリケーションを運用する場合には、
各端末において、一度だけデータベースエンジン(データベースアプレット313)に対
してユーザが当該端末のローカル資源へのアクセス許可を与えれば、それ以降は、当該端
末は当該業務アプリケーションの端末として、Webブラウザ上で動作するデータベース
エンジンを利用した業務アプリケーションを実行可能となる。
【0099】
このように、本発明によれば、POSシステムのような止められないフロント業務を伴
うアプリケーションを、オフライン状態においても使用可能な端末を提供するために、端
末側においてオフラインでも実行可能なデータベースエンジンを提供することができる。
【0100】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るもので
はない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果
を列挙したに過ぎず、本発明による効果は、本発明の実施例に記載されたものに限定され
るものではない。
【図面の簡単な説明】
【0101】
【図1】本発明に係るコンピュータシステムを構成する各サーバおよび端末の主要な構成を表すブロック図である。
【図2】本発明に係るデータベースサーバ10、Webサーバ20、端末30の構成を示すブロック図である。
【図3】本発明に係るシステムにおいて、認証スレッドと非認証スレッドがメモリを介して連携する方法を示す図である。
【図4】本発明に係るシステムにおける、動的なWebページ表示処理を示すフローチャートである。
【図5】本発明に係るシステムにおいて、認証スレッドと非認証スレッドがメモリを介して連携する方法の詳細を示すフローチャートである。
【図6】本発明に係るシステムにおける、データベース同期処理を示すフローチャートである。
【図7】本発明に係るシステムにおいて、データベースアプレットにローカル資源へのアクセスを許可するか否かをユーザに問い合わせる方法を示すフローチャートである。
【図8】本発明に係るシステムにおいて、データベースアプレットにローカル資源へのアクセスを許可するか否かをユーザに問い合わせる画面を示す図である。
【図9】従来技術に係るWebシステムの構成例を示す図である。
【図10】本発明の構成及び効果を示す図である。
【符号の説明】
【0102】
10 データベースサーバ、20 Webサーバ、30 端末、110 制御部、12
0 メモリ部、130 記憶部、140 通信インターフェース、150 入力部、16
0 表示部、170 バス

【特許請求の範囲】
【請求項1】
Webサーバおよびデータベースサーバに接続可能な端末が、Webブラウザ上で動作
するデータベースエンジンを前記Webサーバから受信して展開するメモリ部と、少なく
とも前記データベースサーバが管理しているデータベースのマスターデータの一部である
サブセットデータを、前記Webサーバを介して前記データベースサーバから受信して一
時的に記憶する記憶部と、を備え、
少なくとも前記データベースのユーザインターフェース処理を行うWebブラウザ上で
動作するスクリプトプログラムを前記Webサーバから受信するステップと、
前記スクリプトプログラムに従って、前記記憶部に記憶した前記サブセットデータを操
作するコマンドを実行するために、前記データベースエンジンを非認証スレッドで、引数
を設定して呼び出すステップと、
前記非認証スレッドが前記引数を表す引数データを前記メモリ部に書き出すステップと

前記非認証スレッドによる前記引数データの書き出しを、前記記憶部にアクセスする許
可が与えられたデータベースエンジンの認証スレッドに通知する引数設定通知データを送
信するステップと、
前記引数設定通知データの受信に応じて、前記認証スレッドが前記メモリ部に書き出さ
れた引数データを読み込むステップと、
前記引数データに従って、前記認証スレッドが前記記憶部に記憶したサブセットデータ
にアクセスして前記コマンドを実行し、実行結果を戻り値として前記メモリ部に書き出す
ステップと、
前記認証スレッドによる前記戻り値の書き出しを前記非認証スレッドに通知する戻り値
設定通知データを送信するステップと、
前記戻り値設定通知データの受信に応じて、前記非認証スレッドが前記スクリプトプロ
グラムに対して前記戻り値を返すステップと、を含む方法。
【請求項2】
前記端末が、前記データベースエンジンを前記Webサーバから最初に受信したことに
応じて、前記データベースの認証スレッドに前記記憶部へのアクセスを許可するか否かを
前記端末のユーザに対して問い合わせるための画面を表示するステップと、
前記ユーザの操作により前記認証スレッドに前記アクセスを許可する旨の指示を受け付
けたことに応じて、前記データベースエンジンの認証スレッドに対して前記記憶部にアク
セスする許可を与えるステップと、をさらに含む請求項1に記載の方法。
【請求項3】
前記端末が、所定の受信タイミングにおいて、前記データベースエンジンの認証スレッ
ドにより、前記データベースサーバが管理しているマスターデータの少なくとも一部を前
記データベースサーバから送信することを要求するデータを、前記Webサーバに送信す
るステップと、
前記データベースエンジンの認証スレッドにより、前記Webサーバを介して、前記デ
ータベースサーバが管理しているマスターデータの少なくとも一部を受信し、前記記憶部
に記憶しているサブセットデータを更新するステップと、をさらに含む請求項1または請
求項2に記載の方法。
【請求項4】
前記端末が、所定の送信タイミングにおいて、前記データベースエンジンの認証スレッ
ドにより、前記記憶部に記憶しているサブセットデータの少なくとも一部を、前記Web
サーバを介して前記データベースサーバへ送信するステップをさらに含む請求項1から請
求項3のいずれかに記載の方法。
【請求項5】
前記端末が、所定の受信タイミングにおいて、前記データベースエンジンの認証スレッ
ドにより、前記データベースサーバが管理しているマスターデータのうち前回の受信タイ
ミング以降に前記データベースサーバによって更新をされたマスターデータを前記データ
ベースサーバから送信することを要求するデータを、前記Webサーバに送信するステッ
プと、
前記データベースエンジンの認証スレッドにより、前記Webサーバを介して当該更新
をされたマスターデータを前記データベースサーバから受信し、前記記憶部に記憶してい
るサブセットデータを更新するステップと、をさらに含む請求項1または請求項2に記載
の方法。
【請求項6】
前記端末が、所定の送信タイミングにおいて、前記データベースエンジンの認証スレッ
ドにより、前記データベースサーバから受信して前記記憶部に記憶したサブセットデータ
のうち前回の送信タイミング以降に前記端末が更新したサブセットデータを、前記Web
サーバを介して前記データベースサーバへ送信するステップをさらに含む請求項1、請求
項2、請求項5のいずれかに記載の方法。
【請求項7】
Webサーバおよびデータベースサーバに接続可能であり、データベースに関する処理
を実行する端末であって、
Webブラウザ上で動作するデータベースエンジンを前記Webサーバから受信して展
開するメモリ部と、少なくとも前記データベースサーバが管理しているデータベースのマ
スターデータの一部であるサブセットデータを、前記Webサーバを介して前記データベ
ースサーバから受信して一時的に記憶する記憶部と、を備え、
少なくとも前記データベースのユーザインターフェース処理を行うWebブラウザ上で
動作するスクリプトプログラムを前記Webサーバから受信する手段と、
前記スクリプトプログラムに従って、前記記憶部に記憶した前記サブセットデータを操
作するコマンドを実行するために、前記データベースエンジンを非認証スレッドで、引数
を設定して呼び出す手段と、
前記非認証スレッドが前記引数を表す引数データを前記メモリ部に書き出す手段と、
前記非認証スレッドによる前記引数データの書き出しを、前記記憶部にアクセスする許
可が与えられたデータベースエンジンの認証スレッドに通知する引数設定通知データを送
信する手段と、
前記引数設定通知データの受信に応じて、前記認証スレッドが前記メモリ部に書き出さ
れた引数データを読み込む手段と、
前記引数データに従って、前記認証スレッドが前記記憶部に記憶したサブセットデータ
にアクセスして前記コマンドを実行し、実行結果を戻り値として前記メモリ部に書き出す
手段と、
前記認証スレッドによる前記戻り値の書き出しを前記非認証スレッドに通知する戻り値
設定通知データを送信する手段と、
前記戻り値設定通知データの受信に応じて、前記非認証スレッドが前記スクリプトプロ
グラムに対して前記戻り値を返す手段と、を備える端末。

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