(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2015-534692(P2015-534692A)
(43)【公表日】2015年12月3日
(54)【発明の名称】ウェブアプリケーションにデータベースの変更内容を取得させるための方法及びシステム
(51)【国際特許分類】
G06F 12/00 20060101AFI20151106BHJP
G06F 9/54 20060101ALI20151106BHJP
【FI】
G06F12/00 513J
G06F12/00 546T
G06F9/46 480Z
【審査請求】有
【予備審査請求】未請求
【全頁数】31
(21)【出願番号】特願2015-535946(P2015-535946)
(86)(22)【出願日】2012年10月9日
(85)【翻訳文提出日】2015年5月8日
(86)【国際出願番号】CN2012082628
(87)【国際公開番号】WO2014056145
(87)【国際公開日】20140417
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IS,JP,KE,KG,KM,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LT,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US,UZ,VC
(71)【出願人】
【識別番号】504277388
【氏名又は名称】▲ホア▼▲ウェイ▼技術有限公司
(74)【代理人】
【識別番号】100146835
【弁理士】
【氏名又は名称】佐伯 義文
(74)【代理人】
【識別番号】100140534
【弁理士】
【氏名又は名称】木内 敬二
(72)【発明者】
【氏名】胡 立新
(72)【発明者】
【氏名】▲スン▼ ▲謙▼
(57)【要約】
本発明の一実施形態は、ウェブアプリケーションにデータベースの変更内容を取得させるためのシステムを提供する。システムは、ブラウザと、ウェブデータベースと、ブラウザ上で動作するウェブアプリケーションとを含む。ブラウザは、ウェブアプリケーションの演算リクエストを取得し、演算リクエストに従ってウェブデータベースへの演算を遂行するように構成されたデータベース処理コンポーネントと、ウェブデータベースに遂行された演算に従ってデータベースイベントを生成するように構成されたイベント処理コンポーネントとを含む。ここで、データベースイベントは、ウェブアプリケーションによって監視される。ウェブアプリケーションは、データベースイベントの生成を検出したとき、データベースイベントの属性からデータベース変更内容を取得する。ウェブアプリケーションは、データベース変更内容を取得して、対応する処理を遂行できるようになる。
【特許請求の範囲】
【請求項1】
ウェブアプリケーションにデータベースの変更内容を取得させるためのシステムであって、
ブラウザと、
ウェブデータベースと、
前記ブラウザ上で動作するウェブアプリケーションと
を含み、
前記ブラウザは、
前記ウェブアプリケーションの演算リクエストを取得し、前記演算リクエストに従って前記ウェブデータベースへの演算を遂行するように構成されたデータベース処理コンポーネントと、
前記ウェブデータベースに遂行された前記演算に従ってデータベースイベントを生成するように構成されたイベント処理コンポーネントと
を含み、
前記データベースイベントは、前記ウェブアプリケーションによって監視され、
前記ウェブアプリケーションは、前記データベースイベントの生成を検出したとき、前記データベースイベントの属性からデータベース変更内容を取得する、システム。
【請求項2】
前記ウェブアプリケーションが、第1ページと、第2ページとを含み、
前記演算リクエストが、前記ウェブアプリケーションの前記第1ページから生じ、
前記ウェブアプリケーションが、前記データベースイベントの生成を検出したとき、前記データベースイベントの前記属性から前記データベース変更内容を取得し、前記第2ページ内の前記データベース変更内容に関連する部分に同期処理を実行する、請求項1に記載のシステム。
【請求項3】
前記データベースイベントの前記属性が、前記ウェブデータベースについて記述した変更情報を含み、
前記変更情報は、
データベース名と、
テーブル名と、
前記ウェブアプリケーションの前記演算リクエストに従って前記ウェブデータベースに適用された変更エントリと
を含み、
前記ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベースに関連する内容を取得することが、
前記ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベース名、前記テーブル名、及び前記変更エントリを取得し、前記データベース変更内容を決定することを含む、請求項1又は2に記載のシステム。
【請求項4】
前記変更エントリが、データレコードの演算タイプ、キー値、新レコード値、又は旧レコード値のうちの1つ以上を含む、請求項3に記載のシステム。
【請求項5】
前記変更エントリが、前記演算タイプとして、クリア、削除、追加、及び変更のうちの1つを少なくとも含み、
前記演算タイプがクリアである場合、対応する変更エントリの前記キー値、前記新レコード値、及び前記旧レコード値はすべてヌルとなり、
前記演算タイプが削除である場合、対応する変更エントリの前記キー値は削除されたレコードのキー値となり、かつ対応する変更エントリの前記旧レコード値は前記削除されたレコードのレコード値となり、
前記演算タイプが追加である場合、対応する変更エントリの前記キー値は追加されたレコードのキー値となり、かつ対応する変更エントリの前記新レコード値は前記追加されたレコードのレコード値となり、
前記演算タイプが更新である場合、対応する変更エントリの前記キー値は更新されたレコードのキー値となり、対応する変更エントリの前記新レコード値は前記更新されたレコードの新レコード値となり、かつ対応する変更エントリの前記旧レコード値は前記更新されたレコードの旧レコード値となる、請求項4に記載のシステム。
【請求項6】
前記ブラウザ上で動作する前記ウェブアプリケーションの前記演算リクエストが格納演算である場合、前記ブラウザの前記データベース処理コンポーネントにより、前記演算リクエストに従って前記ウェブデータベースへの前記演算を遂行することが、
前記ブラウザの前記データベース処理コンポーネントにより、
前記演算中の前記データベース名、前記テーブル名、及び前記キー値に従って、前記データベース名、前記テーブル名、及び前記キー値と同一のデータベース名、同一のテーブル名、及び同一のキー値を有したレコードが前記ウェブデータベースに既に存在するか否かをチェックし、
当該レコードが既に存在する場合、前記格納演算をエントリ更新動作に変更することを決定し、
当該レコードが存在しない場合、前記格納演算をエントリ追加動作に変更することを決定することを含む、請求項5に記載のシステム。
【請求項7】
前記変更エントリが、対応するデータベース演算の時系列順に整列され、
前記ウェブアプリケーションの前記演算リクエストで、1つのレコードに2つ以上の演算が実行される場合、当該レコードに対しては、前記変更エントリは、前記2つ以上の演算のうちの最後の演算だけを含む、請求項5に記載のシステム。
【請求項8】
前記ブラウザ上で動作する前記ウェブアプリケーションが、ウィンドウ、ドキュメント、ボディ、又はデータベースオブジェクトのうちの1つを使用して前記データベースイベントを監視する、請求項1ないし7のいずれか1項に記載のシステム。
【請求項9】
ブラウザ、ウェブデータベース、第1ウェブアプリケーション、及び第2ウェブアプリケーションを含む環境で用いられる、ウェブアプリケーションにデータベースの変更内容を取得させるための方法であって、
前記第1ウェブアプリケーションの演算リクエストを取得し、前記演算リクエストに従って前記ウェブデータベースへの演算を遂行するステップであって、前記第1ウェブアプリケーション及び前記第2ウェブアプリケーションが前記ブラウザ上で動作する、ステップと、
前記ウェブデータベースに遂行された前記演算に従ってデータベースイベントを生成するステップであって、前記データベースイベントが前記第2ウェブアプリケーションによって監視される、ステップと、
前記第2ウェブアプリケーションにより、前記データベースイベントの生成が検出されたとき、前記データベースイベントの属性からデータベース変更内容を取得するステップと
を有する方法。
【請求項10】
前記データベースイベントの前記属性が、前記ウェブデータベースについて記述した変更情報を含み、
前記変更情報は、
データベース名と、
テーブル名と、
前記第1ウェブアプリケーションの前記演算リクエストの演算対象である変更エントリと
を含み、
前記第2ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベースに関連する内容を取得するステップが、
前記第2ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベース名、前記テーブル名、及び前記変更エントリを取得し、前記データベース変更内容を決定するステップを含む、請求項9に記載の方法。
【請求項11】
前記変更エントリが、データレコードの演算タイプ、キー値、新レコード値、又は旧レコード値のうちの1つ以上を含む、請求項10に記載の方法。
【請求項12】
前記変更エントリが、前記演算タイプとして、クリア、削除、追加、及び変更のうちの1つを少なくとも含み、
前記演算タイプがクリアである場合、対応する変更エントリの前記キー値、前記新レコード値、及び前記旧レコード値はすべてヌルとなり、
前記演算タイプが削除である場合、対応する変更エントリの前記キー値は削除されたレコードのキー値となり、かつ対応する変更エントリの前記旧レコード値は前記削除されたレコードのレコード値となり、
前記演算タイプが追加である場合、対応する変更エントリの前記キー値は追加されたレコードのキー値となり、かつ対応する変更エントリの前記新レコード値は前記追加されたレコードのレコード値となり、
前記演算タイプが更新である場合、対応する変更エントリの前記キー値は更新されたレコードのキー値となり、対応する変更エントリの前記新レコード値は前記更新されたレコードの新レコード値となり、かつ対応する変更エントリの前記旧レコード値は前記更新されたレコードの旧レコード値となる、請求項11に記載の方法。
【請求項13】
前記ブラウザ上で動作する前記第1ウェブアプリケーションの前記演算リクエストが格納演算である場合、前記演算リクエストに従って前記ウェブデータベースへの前記演算を遂行するステップが、
前記演算中の前記データベース名、前記テーブル名、及び前記キー値に従って、前記データベース名、前記テーブル名、及び前記キー値と同一のデータベース名、同一のテーブル名、及び同一のキー値を有したレコードが前記ウェブデータベースに既に存在するか否かをチェックするステップと、
当該レコードが既に存在する場合、前記格納演算をエントリ更新動作に変更することを決定するステップと、
当該レコードが存在しない場合、前記格納演算をエントリ追加動作に変更することを決定するステップと
を含む、請求項12に記載の方法。
【請求項14】
データベースイベントパラメータに従って、データベーストランザクションが正しく遂行された後にデータベースイベントを生成するか否かが決定されるように、前記第1ウェブアプリケーションの前記演算リクエストで前記データベースイベントパラメータを伝送するステップをさらに有する、請求項9ないし13のいずれか1項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブラウザ技術に関し、詳細には、ブラウザウェブデータベースを使用する方法及びシステムに関する。
【背景技術】
【0002】
初期のブラウザは、クッキーを介して短いテキストデータをローカルに保存することしかできなかったが、現在主流のブラウザは、ウェブストレージやWeb SQLデータベース技術規格などのより高性能なローカルストレージソリューションに対応している。さらには、ブラウザに大容量の構造化データを格納し、効率の良いクエリ処理を実現するインデックスを提供するためのブラウザデータベース規格であるIndexed DBの開発が急ぎ進められ、さらなる改良が加えられている。SQL命令が文字列パラメータとしてJavaScript(登録商標)APIに渡されるWeb SQLデータベースと比較すると、処理が軽く、NoSQLかつノン−リレーショナルデータベースなIndexed DBは、ローカルデータベースをサポートするウェブアプリケーションを実装することが開発者にとって容易になるよう、非常に単純な文法構造を有している。
【0003】
インターネットは、どこにでもあるもの(ユビキタス)でなく、充分に高速でもないので、ウェブアプリケーションには、データをブラウザにローカルに格納することが非常に重要となる。ローカルストレージは、高速な処理のために、開発者がローカルコンピュータにいくらかのデータを格納することを許可する。これは、ウェブアプリケーションがより高速かつより信頼できるものとなり、ユーザ体験がより良いものとなるよう、ウェブメールボックスやオンライン文書編集などのアプリケーションがオフラインで使用可能となり、そのデータが将来の使用のためにローカルにキャッシュ可能となることを意味する。それには、データベースを備えたウェブアプリケーションにサイズの大きいデータを格納することが必要となる。しかしながら、データベース内のデータがサービスロジックと共に絶えず変化するのに対し、既存のブラウザデータベースは、ウェブアプリケーションにデータの変更内容を都合よく取得させるための対応するメカニズムを提供しない。ウェブアプリケーションは、異なるページ間の対話を介してデータの変更内容を取得することしかできず、そのような実装は、比較的低い効率を有するか、又はモジュール間の比較的高い結びつきの原因となり得る。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、ウェブアプリケーションがブラウザウェブデータベースのデータ変更内容を適時にかつ効率良く取得できるよう、ウェブアプリケーションにデータベースの変更内容を取得させるためのシステム及び方法を提供する。
【課題を解決するための手段】
【0005】
一態様によれば、ウェブアプリケーションにデータベースの変更内容を取得させるためのシステムが提供される。システムは、ブラウザと、ウェブデータベースと、ブラウザ上で動作するウェブアプリケーションとを含む。ブラウザは、
ウェブアプリケーションの演算リクエストを取得し、演算リクエストに従ってウェブデータベースへの演算を遂行するように構成された、ブラウザのデータベース処理コンポーネントと、
ウェブデータベースに遂行された演算に従ってデータベースイベントを生成するように構成された、ブラウザのイベント処理コンポーネントとを含む。ここで、データベースイベントは、ウェブアプリケーションによって監視される。ウェブアプリケーションは、データベースイベントの生成を検出したときに、データベースイベントの属性からデータベース変更内容を取得する。
【0006】
第1態様に従う実現可能な第1実施モードにおいて、ウェブアプリケーションは、第1ページと、第2ページとを含み、システムは、ウェブアプリケーションの演算リクエストを取得し、演算リクエストに従ってウェブデータベースへの演算を遂行するように構成された、ブラウザのデータベース処理コンポーネントであって、演算リクエストがウェブアプリケーションの第1ページから生じる、ブラウザのデータベース処理コンポーネントと、ウェブデータベースに遂行された演算に従ってデータベースイベントを生成するように構成された、ブラウザのイベント処理コンポーネントであって、データベースイベントがウェブアプリケーションによって監視され、ウェブアプリケーションが、データベースイベントの生成を検出したときに、データベースイベントの属性からデータベース変更内容を取得し、第2ページ内のデータベース変更内容に関連する部分に同期処理を実行する、ブラウザのイベント処理コンポーネントとを含む。
【0007】
第1態様に従う実現可能な第2実施モードにおいて、データベースイベントの属性は、ウェブデータベースについて記述した変更情報を含む。ここで、変更情報は、データベース名と、テーブル名と、ウェブアプリケーションの演算リクエストに従ってウェブデータベースに適用された変更エントリとを含む。ウェブアプリケーションにより、データベースイベントの属性からデータベースに関連する内容を取得することは、ウェブアプリケーションにより、データベースイベントの属性からデータベース名、テーブル名、及び変更エントリを取得し、ウェブデータベース変更内容を決定することを含む。
【0008】
第1実施モードに従う又は第2実施モードに従う実現可能な第3実施モードにおいて、変更エントリは、データレコードの演算タイプ、キー値、新レコード値、及び旧レコード値のうちの1つ以上を含む。
【0009】
第3実施モードに従う実現可能な第4実施モードにおいて、変更エントリは、演算タイプとして、クリア、削除、追加、及び変更のうちの1つを少なくとも含む。演算タイプがクリアである場合、対応する変更エントリのキー値、新レコード値、及び旧レコード値はすべてヌルとなる。演算タイプが削除である場合、対応する変更エントリのキー値は削除されたレコードのキー値となり、かつ対応する変更エントリの旧レコード値は削除されたレコードのレコード値となる。演算タイプが追加である場合、対応する変更エントリのキー値は追加されたレコードのキー値となり、かつ対応する変更エントリの新レコード値は追加されたレコードのレコード値となる。演算タイプが更新である場合、対応する変更エントリのキー値は更新されたレコードのキー値となり、対応する変更エントリの新レコード値は更新されたレコードの新レコード値となり、かつ対応する変更エントリの旧レコード値は更新されたレコードの旧レコード値となる。
【0010】
第4実施モードに従う実現可能な第5実施モードにおいて、ブラウザ上のウェブアプリケーションの演算リクエストが格納演算である場合、演算リクエストに従ってウェブデータベースへの演算を遂行することは、ブラウザのデータベース処理コンポーネントが、演算中のデータベース名、テーブル名、及びキー値に従って、同一のデータベース名、テーブル名、及びキー値を有したレコードがデータベースに既に存在するか否かをチェックし、当該レコードが既に存在する場合、格納演算をエントリ更新動作に変更することを決定し、データベースが対応するレコードを有さない場合、格納演算をエントリ追加動作に変更することを決定することを含む。
【0011】
第4実施モードに従う実現可能な第6実施モードにおいて、変更エントリは、対応するデータベース演算の時系列順に整列される。ウェブアプリケーションの演算リクエストで、1つのレコードに2つ以上の演算が実行される場合、変更エントリは、最後の演算だけを含む。
【0012】
先に記載した実施モードのいずれか1つに従う実現可能な第7実施モードにおいて、ブラウザ上のウェブアプリケーションは、ウィンドウ、ドキュメント、ボディ、又はデータベースオブジェクトのうちの1つを使用してデータベースイベントを監視する。
【0013】
第2態様によれば、ウェブアプリケーションにデータベースの変更内容を取得させるための方法が提供される。ブラウザ、ウェブデータベース、第1ウェブアプリケーション、及び第2ウェブアプリケーションが含まれ、方法は、
第1ウェブアプリケーションの演算リクエストを取得し、演算リクエストに従ってウェブデータベースへの演算を遂行するステップであって、第1ウェブアプリケーション及び第2ウェブアプリケーションがブラウザ上で動作する、ステップと、
ウェブデータベースに遂行された演算に従ってデータベースイベントを生成するステップであって、データベースイベントが第2ウェブアプリケーションによって監視される、ステップと、
第2ウェブアプリケーションにより、データベースイベントの生成が検出されたときに、データベースイベントの属性からデータベース変更内容を取得するステップとを有する。
【0014】
第2態様に従う実現可能な第1実施モードにおいて、データベースイベントの属性は、ウェブデータベースについて記述した変更情報を含む。ここで、変更情報は、データベース名と、テーブル名と、第1ウェブアプリケーションの演算リクエストの演算対象である変更エントリとを含む。第2ウェブアプリケーションにより、データベースイベントの属性からデータベースに関連する内容を取得するステップは、第2ウェブアプリケーションにより、データベースイベントの属性からデータベース名、テーブル名、及び変更エントリを取得し、ウェブデータベース変更内容を決定するステップを含む。
【0015】
第1実施モードに従う実現可能な第2実施モードにおいて、変更エントリは、データレコードの演算タイプ、キー値、新レコード値、及び旧レコード値のうちの1つ以上を含む。
【0016】
第2実施モードに従う実現可能な第3実施モードにおいて、変更エントリは、演算タイプとして、クリア、削除、追加、及び変更のうちの1つを少なくとも含む。演算タイプがクリアである場合、対応する変更エントリのキー値、新レコード値、及び旧レコード値はすべてヌルとなる。演算タイプが削除である場合、対応する変更エントリのキー値は削除されたレコードのキー値となり、かつ対応する変更エントリの旧レコード値は削除されたレコードのレコード値となる。演算タイプが追加である場合、対応する変更エントリのキー値は追加されたレコードのキー値となり、かつ対応する変更エントリの新レコード値は追加されたレコードのレコード値となる。演算タイプが更新である場合、対応する変更エントリのキー値は更新されたレコードのキー値となり、対応する変更エントリの新レコード値は更新されたレコードの新レコード値となり、かつ対応する変更エントリの旧レコード値は更新されたレコードの旧レコード値となる。
【0017】
第3実施モードに従う実現可能な第4実施モードにおいて、ブラウザ上の第1ウェブアプリケーションの演算リクエストが格納演算である場合、演算リクエストに従ってウェブデータベースへの演算を遂行するステップは、演算中のデータベース名、テーブル名、及びキー値に従って、同一のデータベース名、テーブル名、及びキー値を有したレコードがウェブデータベースに既に存在するか否かをチェックするステップと、当該レコードが既に存在する場合、格納演算をエントリ更新動作に変更することを決定するステップと、データベースが対応するレコードを有さない場合、格納演算をエントリ追加動作に変更することを決定するステップとを含む。
【0018】
先に記載した実施モードのいずれか1つに従う実現可能な第5実施モードにおいて、データベースイベントパラメータに従って、データベーストランザクションが正しく遂行された後にデータベースイベントを生成するか否かが決定されるように、データベースイベントパラメータは、第1ウェブアプリケーションの演算リクエストで伝送される。
【発明の効果】
【0019】
本発明の上記の態様において、ブラウザ上のウェブアプリケーションが、データベースイベントを監視し、対応するイベントハンドリング機能を割り当てできるよう、ウェブデータベースの変更内容に従って、対応するデータベースイベントが、ブラウザによって生成される。それにより、ウェブアプリケーションは、データベースイベントの属性からデータベースの変更内容を取得し、対応する処理を遂行できる。このようにして、ウェブアプリケーションの異なるページ又はモジュールは、データベースの変更内容を容易に取得できる。
【図面の簡単な説明】
【0020】
【
図1】本発明の一実施形態によるコンピューティング環境の概略図である。
【
図2】本発明の一実施形態による情報伝達のフロー図である。
【
図3】本発明の一実施形態によるブラウザフレームの概略図である。
【
図4】本発明の一実施形態によるデータベースイベントの内容を示す図である。
【
図5】本発明の一実施形態によるデータベースイベントの内容の別の態様を示す図である。
【
図6】本発明の別の実施形態による情報伝達のフロー図である。
【
図7】本発明の一実施形態によるデータベースイベントを生成するステップを示す図である。
【
図8】本発明の一実施形態によるデータベースイベントの属性を決定するステップを示す図である。
【発明を実施するための形態】
【0021】
以下、本発明の実施形態の技術的解決策が、添付された本発明の実施形態の図面を参照して、明瞭かつ網羅的に説明される。当然ながら、明細書中に記載される実施形態は、本発明の実施形態の一部に過ぎず、そのすべてではない。当業者は、本発明の実施形態に基づいて、創造的な労力無しに他のあらゆる実施形態を導き出すことが可能であり、それらはすべて本発明の範囲内にある。
【0022】
典型的に、この発明の詳細な説明に記載されたデータ構造体及びコードは、コンピュータ読み取り可能な記憶媒体に格納される。コンピュータ読み取り可能な記憶媒体は、コンピュータシステムで使用するためのコード及び/又はデータを格納可能な任意のデバイス又は媒体であってよい。そのようなデバイス又は媒体には、これらに限定されないが、揮発性メモリ若しくは不揮発性メモリ、磁気ディスク、磁気テープ、CD、DVDなどの磁気及び光記憶デバイス、又は、既知の又は今後開発されるコンピュータ読み取り可能な記憶媒体を含む他の媒体が含まれる。
【0023】
明細書中のコンピュータは、コンピューティング機能を備えたマイクロプロセッサベースの端末デバイスを指す。そのようなコンピュータには、これらに限定されないが、パーソナルコンピュータ、タブレットコンピュータ、ポータブルコンピュータ、モバイルフォンなどのあらゆる種類のコンピュータシステムが含まれる。
【0024】
本発明の一実施形態は、ウェブデータベースの変更内容を取得するためのシステムを提供する。
図1を参照すると、本システムのコンピューティング環境100は、ブラウザ101と、ウェブデータベース102と、CPUプロセッサ106とを含む。ブラウザ101は、データベース処理コンポーネント104と、イベント処理コンポーネント105と、ウェブアプリケーション103とを含む。各ウェブアプリケーションは、ブラウザ上で複数のページ、例えば、同一のウェブアプリケーションに属する
図1のページA、ページB、及びページCを開くことができる。多くの場合、これらのページのURLアドレスは、同一のドメイン、例えば、「www.huawei.com」に属しており、詳細には、ページAのアドレスが「www.huaweidevice.com/cn/method=index」であってよく、ページBのアドレスが「www.huaweidevice.com/cn/method=getFaqInfo=9097」であってよい。また、ウェブアプリケーションは、ブラウザ拡張機能(エクステンション)であってもよい。一般に、ブラウザ拡張機能は、HTML及びJavaScriptから成り、ウェブアプリケーションのようにふるまい、ブラウザを介してウェブデータベースを生成し、アクセスできる。各ウェブアプリケーションは、ブラウザを介して1つ以上のウェブデータベースを生成してよい。多くの場合、ウェブデータベースは、ドキュメント形式でコンピューティング環境に格納される。そのようなウェブデータベースは、ローカルコンピュータ又はネットワーク上の他のコンピュータに存在してよい。本発明における、ウェブアプリケーションによってデータベースの変更内容を取得するための解決策は、先に記載したページAとページBとの間など、同一のウェブアプリケーション内にしか適用できないのではなく、上記のブラウザ拡張機能間など、異なるウェブアプリケーションにも適用できる。
【0025】
本システムの方法は、主に以下のステップを含む。
【0026】
ステップS101において、ブラウザのデータベース処理コンポーネント104は、ウェブアプリケーション103の演算リクエストを取得し、演算リクエストに従ってウェブデータベースへの演算を遂行する。
【0027】
好ましくは、演算リクエストは、ブラウザ上でのユーザの操作に従ってウェブアプリケーション103によって生成される。
【0028】
ステップS102において、ブラウザのイベント処理コンポーネント105は、ウェブデータベースに遂行された演算に従ってデータベースイベントを生成する。データベースイベントは、ウェブアプリケーション103によって監視される。
【0029】
好ましくは、データベースイベントは、イベントタイプを含む。例えば、イベントタイプは、データベースである。
【0030】
ステップS103において、ウェブアプリケーション103は、データベースイベントの生成を検出したときに、データベースイベントの属性から変更された内容を取得する。
【0031】
図3は、
図1に基づくコンピューティング環境であり、本発明によるシステムのブラウザの構造図に相当する。その情報伝達のフロー図が
図2に示される。特に
図3を参照すると、ブラウザ201上のウェブアプリケーション203は、1つのアプリケーションの異なるページ、すなわち、ブラウザの第1ページA及びブラウザの第2ページBを開いている。以降、これらを省略して、ページA及びページBと称する。また、ページA及びページBは、ウェブアプリケーション203の2つのオブジェクトとみなされてよい。2つのページは、同一のドメインに属し、例えば、いずれも、ドメイン名「www.huawei.com」を有するドメインに属する。ブラウザの複数のページは、同一のウィンドウの異なるタブに位置していてよく、又は同一のブラウザの異なるウィンドウに位置していてもよい。ページAにおいて、ウェブアプリケーション203は、ブラウザのデータベース処理コンポーネント204に演算リクエストを送信し、データベース処理コンポーネント204は、演算リクエストに従ってウェブデータベースへの演算を実行する。実行の間、ウェブアプリケーション203とデータベース処理コンポーネント204との間の通信は、JavaScript APIを介して達成されてよい。
【0032】
ブラウザのイベント処理コンポーネント205は、演算リクエストに対応するウェブデータベースに遂行された演算に従ってデータベースイベントを生成する。データベースイベントは、ウェブアプリケーション203によって監視される。
【0033】
ウェブアプリケーション203によるデータベースイベントの監視は、詳細には、別のページBについて、ウェブアプリケーション203が、データベースイベント監視オブジェクト202及びデータベースイベントハンドリング機能206をページBに割り当てることを含む。特に、データベースイベント監視オブジェクトは、ウィンドウ、ドキュメント、ボディ、又はデータベースオブジェクトのうちのいずれか1つであってよい。特に、データベースイベント監視オブジェクト202によるデータベースイベントの監視方法は、ブラウザのデータベースイベントを監視するための情報をブラウザのイベント処理コンポーネント205に登録するステップを含み、イベント処理コンポーネント205は、データベースイベントが生成された後に、データベースイベント監視モジュール202の登録情報に従って、データベースイベント監視オブジェクト202にデータベースイベントを送信してよい。
【0034】
好ましくは、ウェブアプリケーション203がデータベースイベントの属性からデータベースの変更された内容を取得することは、詳細には、データベースイベント監視オブジェクト202が、イベント処理コンポーネント205からデータベースイベントを受信した後に、データベースイベントをデータベースイベントハンドリング機能206に転送することと、多数の演算ステップが存在し、かつステップの環境を記録する必要がある場合、選択的に、イベント処理コンポーネント205が、各ステップのデータを記録し、データベースイベントでデータを伝送し、データベースイベント監視オブジェクト202に転送することとを含む。
【0035】
選択的に、データベースイベント監視オブジェクト202がイベント処理コンポーネント205からデータベースイベントを受信した後に、データベースイベントハンドリング機能206は、データベースイベントの属性に従って、データベースイベントの属性によって記述されたウェブデータベースの内容を、データベース処理コンポーネント204を介してウェブデータベースから取得する。データベースイベントの属性は、ウェブデータベースについて記述した変更情報を含む。変更情報は、データベース名と、テーブル名と、ウェブアプリケーションの演算リクエストに従ってブラウザにおいて操作がなされた変更エントリ中の要素の識別子とを含む。変更エントリ中の要素の識別子は、キー値に対応する識別子と、新レコード値に対応する識別子と、旧レコード値に対応する識別子とを含む。これらの識別子は、ウェブデータベースに格納されたコンテンツの実際の区分に依存する新レコード値に対応する1つ以上の識別子であってよい。この選択的手法は、最終的な結果だけが取得される必要があり、結果がより多くのリソースを占有する場合に適用可能である。
【0036】
実行の間、データベース処理コンポーネント204とデータベースイベントハンドリング機能206との間の通信、及び、データベースイベント監視オブジェクト202とイベント処理コンポーネント205との間の通信は、JavaScript APIを介して達成されてよい。
【0037】
イベント処理コンポーネント205は、データベース演算が遂行された後に、データベースイベントを生成する。ページBは、データベースイベントハンドリング機能206を介してデータベースイベントの属性を取得し、次いで、属性中のデータベースの変更された内容に従って対応する処理を実行する。また、実際の使用時には、ブラウザのイベント処理コンポーネント205で生成されるデータベースイベントを監視することによって、ページAによる、ページBにおけるデータベース演算の監視が実現され、最終的に、ページAとページBとの間の相互監視の目的が達成されるよう、ページAは、ページBのものと同一の機能を備えた、データベースイベント監視オブジェクト202’(
図3では図示されない)及びデータベースイベントハンドリング機能206’(
図3では図示されない)を含んでよい。
【0038】
ブラウザは、ページB及びページAが1つのブラウザ内のページであるか否かに依存して、データベースイベントの属性を処理するために異なるタイミングを設定してよい。詳細には、以下の通りである。
【0039】
1)ページA及びページBが同一のブラウザの異なるタブに選択的に表示されている場合(換言すれば、ページA及びページBのうちの一方のページしか一度に表示できない場合)、ブラウザは、ページAがページBに切り替わったときにだけ、データベースイベントハンドリング機能206がデータベースイベントの属性を処理可能となるように設定されてよい。したがって、監視結果は、通常は、ページBに表示されてよく、データベースイベントの属性を処理する頻度は最小化される。
【0040】
2)ページA及びページBが同一のブラウザの異なるウィンドウに表示される場合、ブラウザは、データベースイベントの属性を取得したときに、データベースイベントハンドリング機能206がデータベースイベントの属性を処理可能となるように、換言すれば、同一の属性を有する内容がページAとページBとで同時に変更及び更新できるよう、ページAと同一のテーブルに存在し、かつ同一のデータベースに属する変更エントリに対応する内容をページBにおいて更新できるように設定されてよい。これは、ページA及びページBが並行して表示されるときに、ページBのアプリケーションによって監視される内容のリアルタイム更新を確実なものとする。
【0041】
(ウェブアプリケーションの演算リクエストを生成する)ブラウザにおいて、ユーザによってなされる手続きは、次のように分類できる。1)パラメータがページAに入力された後に、ページAのデータへの演算は、ページA上の確認ボタンがクリックされた後にだけ遂行可能となる。確認ボタンのクリックは、ウェブアプリケーションの演算リクエストを開始するためのトリガポイントとして解釈されてよい。2)パラメータがページA上の(変更エントリ中のある項目に対応してよい)ある列に入力された後、マウスフォーカスが他の列に移動したときに、ウェブアプリケーションの演算リクエストが、送信のためにトリガされる。特定の実施形態は、先に挙げた2つのタイプに限定されず、ブラウザに関連した他の操作によっても、ウェブアプリケーションの演算リクエストの送信をトリガできる。
【0042】
一実施形態において、好ましくは、データベースイベントは、次のように生成される。1)ページA上のある変更エントリに対応するすべてのウェブアプリケーション演算を記録し、次いで、データベースイベントの生成をトリガする。ここで、トリガ手法は、上記の2つの手法のいずれであってもよい。データベースイベントの生成プロセスの間、ある変更エントリに対応するすべての記録されたウェブアプリケーション演算の内容は、ページB上のデータベースイベント監視オブジェクト202が変更エントリに対応するすべてのウェブアプリケーション演算の演算内容をデータベースイベントの属性から取得できるよう、データベースイベントの属性に含まれる。
【0043】
あるいは、2)ページAにおけるユーザの最終的な操作の結果、換言すれば、データベースへの演算が遂行された後にデータベースに保存された結果だけを記録する。このようにして、ウェブアプリケーションの演算リクエストが遂行された後にデータベースに格納された結果は、データベースイベントが生成されたときに、直接伝送されてよい。
【0044】
ウェブアプリケーションの演算リクエストは、データベースイベントを生成するためのパラメータを含み、ブラウザは、パラメータに従って、ウェブアプリケーションの演算リクエストが遂行された後に、データベースイベントを生成するか否かを決定できる。実際的な実施形態において、データベースイベントを生成するためのパラメータは、データベース処理コンポーネント204に設定されてよく、ウェブアプリケーションの演算リクエストによって伝送される必要は無い。したがって、あるページへの又はページ上のあるオブジェクトへの演算に関連するデータベースイベントの適切な生成が達成される。
【0045】
例を挙げると、ウェブアプリケーションの演算リクエストが実行されるとき、「suppressevent」パラメータが指定されてよく、このイベントパラメータが使用される場合、データベースイベントは生成されない。このパラメータは、無限ループを回避するために使用でき、データベースに演算が実行されるときに、データベースイベントハンドリング機能においてイベントを生成しないように指示できる。例えば、データベースイベントを監視するハンドリング機能において、あるレコードの更新が検出されたとき、もう1度のデータベース更新演算の実行は、無限ループを引き起こし得る。また、パラメータは、いくつかの不必要なデータベースイベントの生成を回避でき、例えば、システムリソースを節約するよう、いくつかのデータベース演算は監視する必要が無い。
【0046】
あるいはまた、イベントを生成しないという、デフォルトのトランザクション指示が行われてよく、データベースイベントは、「firedatabaseevent」パラメータが指定されている場合にだけ生成されてよい。これは、システムリソースを節約し、より良好な互換性を実現する助けとなる。デフォルト設定を最適なソリューションとすることによってイベントは生成されず、多くのウェブアプリケーションに対してデータベースイベントを監視する必要が無くなる。
【0047】
データベースイベントの属性は、データベースの変更内容について記述した変更情報を含む。ここで、変更情報は、データベース名、テーブル名、及びウェブアプリケーションの演算リクエストに起因する変更である変更エントリを含む。変更エントリの情報は、ブラウザ上のウェブアプリケーションによって、データベースイベントハンドリング機能を介してイベントの属性から取得される。データベースの変更内容は、変更情報に従ってウェブアプリケーションによって取得される。
【0048】
図4は、本発明の実施形態によるデータベースイベントの内容を示す。それには、文字列(DOMString)又は文字列配列(DOMStringList)を備えた、いくつかの読み取り専用属性(readonly属性)が含まれる。変更エントリの各項目は、オプションである、データレコードの演算タイプ(operationType)、キー値(key)、旧値(oldValue)、及び新値(newValue)を含む。これらの属性のデータは、例えば、属性キー値(keys)が文字列配列(DOMStringList)としてなど、配列として保存されてよい。変更エントリは、以下の演算タイプのうちの1つを少なくとも含む。
【0049】
演算タイプがクリア(Clear)である場合、対応する変更のキー値、新レコード値、及び旧レコード値は、すべてヌルとなる。演算タイプが削除(Deletion)である場合、対応する変更エントリのキー値が削除されたレコードのキー値となり、かつ対応する変更エントリの旧レコード値が削除されたレコードのレコード値となる。演算タイプが追加(Addition)である場合、対応する変更エントリのキー値が追加されたレコードのキー値となり、かつ対応する変更エントリの新レコード値が追加されたレコードのレコード値となる。演算タイプが更新(Update)である場合、対応する変更エントリのキー値が更新されたレコードのキー値となり、対応する変更エントリの新レコード値が更新されたレコードの新レコード値となり、かつ対応する変更エントリの旧レコード値が更新されたレコードの旧レコード値となる。
【0050】
図5は、本発明の一実施形態によるブラウザデータベースイベントの内容を記述する別の均等な手法を示す。この手法は、
図1及び
図3に示されたシステムに使用されてよい。データベースイベントオブジェクトは、データベース変更リスト(DatabaseChangeList)オブジェクトを含んでよく、特に、このリストオブジェクトは、データレコードの詳細な変更エントリを含む。この実施形態において、ウェブアプリケーションの1つ以上の演算リクエストの集合は、データベーストランザクションと称される。
【0051】
ブラウザ上のウェブアプリケーションのデータベース演算リクエストが格納(Put)演算を含む場合、ブラウザのデータベース処理コンポーネントは、演算中のデータベース名、テーブル名、及びキー値に従って、同一のデータベース名、テーブル名、及びキー値を有するレコードが既に存在するか否かをチェックする。そのようなレコードが既に存在する場合、エントリ更新のための演算に対応する変更エントリの演算タイプを変更することを決定し、ブラウザのイベント処理コンポーネント205によって生成されるデータベースイベントの属性内で、対応するキー値が更新されたレコードのキー値となり、対応するエントリの新レコード値が更新されたレコードの新レコード値となり、かつ対応するエントリの旧レコード値が更新されたレコードの旧レコード値となる。
【0052】
データベースが同一のデータベース名、テーブル名、及びキー値を有するレコードを含まない場合、エントリ追加のための演算に対応する変更エントリの演算タイプを変更することを決定し、ブラウザのイベント処理コンポーネント205によって生成されるデータベースイベントの属性内で、対応するキー値が追加されたレコードのキー値となり、かつ対応するエントリの新レコード値が追加されたレコードのレコード値となる。
【0053】
スプレッドシートを提供するウェブアプリケーションでは、多くの場合、同一のレコードは、幾度か操作され、そのデータは、ユーザによって保存されるか、又は自動的に保存されたときにだけ提示される。例えば、レコードのあるフィールドの値が修正され、次いで、当該レコードが削除された場合、ユーザによってデータが保存され、提示されるときの対応するデータベーストランザクションは、修正及び削除の2つの演算を含むこととなる。
【0054】
データベースイベントの属性中の変更エントリは、対応するデータベース演算の時系列順に整列され、データベーストランザクション中の最後の演算がクリア演算であった場合、換言すれば、テーブル中のすべてのレコードが削除される場合、対応するキー値、新レコード値、及び旧レコード値は、すべてヌルとなる。この場合、データ量が非常に大きくなるので、イベント中のすべてのレコードのキー値及び旧レコード値を結合することは適切でなく、一般に、その必要も無い。したがって、クリア演算の後に、関連性のある演算を記録するだけでよい。例えば、電子商取引ウェブアプリケーションの買い物かごモジュールに製品を追加する際、買い物かごに既に存在していたアイテムを最初にクリアするオプションが同時に提供されていた場合、先のようにして、対応するデータベーストランザクションは、買い物かごのテーブルデータへの最初のクリア演算を含み、次いで、新しいアイテムの追加レコードを含む。あるいは、ユーザは、買い物かご内のアイテムの数を修正しても、それを直ちに提示せず、次いで、買い物かごのクリア操作を実行して提示することがある。この場合、対応するデータベーストランザクションは、クリア演算だけを含む。
【0055】
データベースイベントの属性中の変更エントリが対応するデータベース演算の時系列順に整列される場合に加えて、別の手法では、ウェブアプリケーションの演算リクエストは、レコードへの2つ以上の演算を実行し、変更エントリは、最後の演算だけを含む。例えば、購入しようとする製品の数が選択されるときに、希望する数が幾度か選択し直されることがあり、製品に対応する変更エントリは、最後に選択された数だけを保存する。数回の入力及び修正がウェブページ上の編集ボックスでなされた場合、編集ボックスに対応する変更エントリは、最後の修正後の内容だけを保存する。1つのデータベーストランザクションは数個のデータベース演算を含み得るので、演算に対応するイベントの属性中の旧値(oldValue)は、データベーストランザクションが実行される前のレコード値であって、あるデータベース演算が実行される前のレコード値ではないことに留意されたい。データベーストランザクションが実行される前のレコード値は、データベーストランザクション中の最初のデータベース演算の前のレコード値である。例えば、1つのデータベーストランザクションは、あるレコードへの2つの更新演算を実行し、データベースイベントの属性が生成されるときに結合された演算を処理する。換言すれば、変更エントリは、レコードの最後の演算だけを含むので、結合された演算に対し、対応する変更エントリの旧値(oldValue)として、最後の更新演算の前のレコード値を取ることが誤りであることは明らかである。
【0056】
電子商取引ウェブアプリケーションを例にとると、ブラウザは、ページ上に買い物かご(又はショッピングカート)内の選択したアイテムのリストを表示し、次いで、このウェブサイトと別のウェブページが、特定の商品を示すために開かれ、次いで、買い物かごに追加するボタンがクリックされる。このようにして、最適なソリューションは、アイテムのリストを自動的にリフレッシュし、ユーザによって新たに追加がなされた買い物かごを買い物かごページに表示する。本発明の実施形態は、以下のように実施されてよい。
【0057】
買い物かごのコンテンツレコードは、ローカルウェブデータベースに格納され、データベースイベント(database)は、(
図3のページAに対応する)商品表示ページで製品が買い物かごに追加されたときに生成される。換言すれば、ウェブアプリケーションは、データベース追加操作を実行する。
【0058】
データベースイベントは、(
図3のページBに対応する)買い物かごページで監視され、次いで、買い物かご中のアイテムのリストは、イベントハンドリング機能で更新される。ウェブアプリケーションは、データベースにアクセスすることなく、データベースイベントから新たに追加されたデータエントリの新コンテンツ値を直接取得でき、新たな商品情報を買い物かご中のアイテムリストに直接に追加して、ページAとページBとの間の同期性を保つことができる。
【0059】
ブラウザの用語において、ブラウザの構成要素は、1つのウェブアプリケーションの異なるページに限定されず、複数のウェブアプリケーション間のデータの変更内容を取得すること、例えば、2つの同一のウェブアプリケーション間のデータの変更内容を取得すること、又は2つの異なるウェブアプリケーション間のデータの変更内容を取得することに関係してよい。明細書中でのウェブアプリケーションは、ブラウザのあるプラグイン、ブラウザによって生成されるページのあるオブジェクト、又はブラウザ自体の構成部分であってよい。
図6は、第1ウェブアプリケーションのデータの変更内容を取得する第2ウェブアプリケーションの情報伝達の概略図であり、以下のプロセスを含む。
【0060】
ステップS201:第1ウェブアプリケーションの演算リクエストを取得し、演算リクエストに従ってウェブデータベースへの演算を遂行する。ここで、第1ウェブアプリケーション及び第2ウェブアプリケーションは、ブラウザ上で動作する。
【0061】
ステップS202:ウェブデータベースに遂行された演算に従ってデータベースイベントを生成する。データベースイベントは、第2ウェブアプリケーションによって監視される。
【0062】
ステップS203:第2ウェブアプリケーションは、データベースイベントの生成を検出したときに、データベースイベントの属性からデータベースの変更された内容を取得する。
【0063】
この実施形態により、第2ウェブアプリケーションが、第1ウェブアプリケーションの演算リクエストが遂行された後に生成されるデータベース時間を監視し、第1ウェブアプリケーションと第2ウェブアプリケーションとの間のやりとりを削減し、データ演算の独立性を向上させることが達成される。
図7は、本発明の一実施形態による、ブラウザによるデータベースイベント生成の詳細な処理ステップを説明するものであり、
図6に示された方法の特定の応用形態である。この実施形態において、ウェブアプリケーションの1つ以上の演算リクエストの集合は、データベーストランザクションと称される。
【0064】
ステップS301:ブラウザは、第1ウェブアプリケーションの演算リクエストを取得し、演算リクエストに従ってウェブデータベーストランザクションを生成し、ウェブデータベーストランザクション中のウェブデータベースへのさまざまな演算を遂行する。
【0065】
ステップS302:ウェブデータベーストランザクションが正しく遂行されたか否かを判定する。正しく遂行されていない場合、ステップS309に進んでウェブデータベーストランザクションのロールバックを実行する。正しく遂行された場合、ステップS303に進む。
【0066】
ステップS303:データベーストランザクション中のデータベースイベントパラメータを解析する。
【0067】
ステップS304:データベースイベントを生成するか否かを判定する。生成する場合、ステップS305を実行し、生成しない場合、ステップS308を実行する。
【0068】
ステップS305:ウェブデータベースに遂行された演算に従ってデータベースイベントの属性を生成する。
【0069】
ステップS306:データベースイベントを生成する。
【0070】
ステップS307:第2ウェブアプリケーションは、データベースイベントの生成を検出し、次いで、データベースイベントの属性からデータベースに関連する内容を取得する。
【0071】
ステップS308:データベースイベントを抑止する。換言すれば、データベースイベントを生成しない。
【0072】
ブラウザは、データベーストランザクション中の演算内容を解析し、データベースイベントの対応する属性を生成する。1つのデータベーストランザクションは、さまざまなデータベース演算に加えて、同一のレコードに実行された複数の演算も含んでよく、結合されて処理されてよい。それにより、生成されたデータベースイベントの属性の内容を単純化すると同時に、データベースの変更に正確に対応させる。
図8に示されるように、上記のステップSS305は、本発明の一実施形態による以下のサブステップをさらに含む。
【0073】
ステップS401:ウェブアプリケーションに遂行された演算の内容を解析する。
【0074】
ステップS402:演算内容がクリア演算を含むか否かを判定する。含まない場合、ステップS404を実行し、すべてのデータベース演算を解析する。含む場合、ステップS403を実行し、クリア演算が実行されたデータベース、テーブル、又はエントリについては、最後のクリア演算の後に、データベース、テーブル、又はエントリへのデータベース演算だけを解析し、クリア演算の前のデータベース演算の解析は行わない。
【0075】
ステップS405:演算を結合し、2つ以上の演算を有するレコードについては、レコードの最後の演算だけを解析する。
【0076】
ステップS406:結合された演算を1つずつ解析する。演算タイプがクリアであった場合、ステップS407実行し、対応する変更エントリのキー値、新レコード値、及び旧レコード値は、すべてヌルとなる。演算タイプが削除であった場合、ステップS408を実行し、対応する変更エントリのキー値は、削除されたレコードのキー値となり、かつ対応する変更エントリの旧レコード値は、削除されたレコードのレコード値となる。演算タイプが追加であった場合、ステップS409を実行し、対応する変更エントリのキー値は、追加されたレコードのキー値となり、かつ対応する変更エントリの新レコード値は、追加されたレコードのレコード値となる。演算タイプが更新であった場合、ステップS410を実行し、対応する変更エントリのキー値は、更新されたレコードのキー値となり、対応する変更エントリの新レコード値は、更新されたレコードの新レコード値となり、かつ対応する変更エントリの旧レコード値は、更新されたレコードの旧レコード値となる。
【0077】
未解析の演算が存在する場合、ブラウザは、ステップS406を引き続き実行し、未解析の演算が存在しない場合、ステップS411を実行して、上記で取得した変更エントリを含むようにデータベースイベントの属性を生成する。
【0078】
この実施形態において、クリア演算の判定及び処理は、データベース演算のレコードに単純に追加され、データベース演算のレコードは、データベースイベントの属性を正確に生成するよう、結合されて処理され、最後のデータベース演算を取得する。
【0079】
好ましくは、ステップS305は、ウェブデータベースを記述する変更情報だけを記録してよい。変更情報は、データベース名と、テーブル名と、ウェブアプリケーションの演算リクエストに従ってデータベースにおいて演算がなされる変更エントリ中の要素の識別子とを含む。ここで、変更エントリ中の要素の識別子は、キー値に対応する識別子と、新レコード値に対応する識別子と、旧レコード値に対応する識別子とを含む。
図4に示されるように、旧レコード値に対応する識別子は、oldValuesであり、旧レコード値は、oldValuesの実際の値である。したがって、ステップS307は、以下の演算を実行する。すなわち、第2ウェブアプリケーションは、ウェブデータベース中のデータベースイベントの属性に対応するコンテンツ演算を実行する。この演算は、ウェブデータベース中のデータベースイベントの属性に対応するコンテンツを単純に取得する動作であってよい。
【0080】
時間処理コンポーネントが異なる登録済みオブジェクトを有し、かつ送信方法が異なる場合を除き、同一のブラウザ上の2つのアプリケーション間のデータベースイベントの監視と、同一のアプリケーションの2つページの監視との両方は、他の態様の同一のモードに適用されてよく、その詳細を明細書中で繰り返して説明することは省略する。
【0081】
本発明の実施形態において、コンピュータ読み取り可能な記憶媒体が命令を格納してよい。命令がコンピュータによって実行されるときに、コンピュータは、ウェブアプリケーションにデータベースの変更内容を取得させるための方法を実行する。
【0082】
以上、本発明の実施形態について記載したが、そのような記載は、本発明の特許請求の範囲を限定することを意図しない。発明の詳細な説明及び添付の図面に対するすべての均等な構造物又は均等なフロープロセス変形物、又は、他の関連する技術分野における直接的な又は間接的な応用もまた、本発明の保護範囲内にある。
【符号の説明】
【0083】
100 コンピューティング環境
101,201 ブラウザ
102 ウェブデータベース
103,203 ウェブアプリケーション
104,204 データベース処理コンポーネント
105,205 イベント処理コンポーネント
106 CPU
202 データベースイベント監視オブジェクト
206 データベースイベントハンドリング機能
【手続補正書】
【提出日】2015年5月8日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正の内容】
【0007】
第1態様に従う実現可能な第2実施モードにおいて、データベースイベントの属性は、ウェブデータベースについて記述した変更情報を含む。ここで、変更情報は、データベース名と、テーブル名と、ウェブアプリケーションの演算リクエストに従ってウェブデータベースに適用された変更エントリとを含む。ウェブアプリケーションにより、データベースイベントの属性からデータベース
変更内容を取得することは、ウェブアプリケーションにより、データベースイベントの属性からデータベース名、テーブル名、及び変更エントリを取得し、ウェブデータベース変更内容を決定することを含む。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0014
【補正方法】変更
【補正の内容】
【0014】
第2態様に従う実現可能な第1実施モードにおいて、データベースイベントの属性は、ウェブデータベースについて記述した変更情報を含む。ここで、変更情報は、データベース名と、テーブル名と、第1ウェブアプリケーションの演算リクエストの演算対象である変更エントリとを含む。第2ウェブアプリケーションにより、データベースイベントの属性からデータベース
変更内容を取得するステップは、第2ウェブアプリケーションにより、データベースイベントの属性からデータベース名、テーブル名、及び変更エントリを取得し、ウェブデータベース変更内容を決定するステップを含む。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0049
【補正方法】変更
【補正の内容】
【0049】
演算タイプがクリア(Clear)である場合、対応する変更
エントリのキー値、新レコード値、及び旧レコード値は、すべてヌルとなる。演算タイプが削除(Deletion)である場合、対応する変更エントリのキー値が削除されたレコードのキー値となり、かつ対応する変更エントリの旧レコード値が削除されたレコードのレコード値となる。演算タイプが追加(Addition)である場合、対応する変更エントリのキー値が追加されたレコードのキー値となり、かつ対応する変更エントリの新レコード値が追加されたレコードのレコード値となる。演算タイプが更新(Update)である場合、対応する変更エントリのキー値が更新されたレコードのキー値となり、対応する変更エントリの新レコード値が更新されたレコードの新レコード値となり、かつ対応する変更エントリの旧レコード値が更新されたレコードの旧レコード値となる。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0063
【補正方法】変更
【補正の内容】
【0063】
この実施形態により、第2ウェブアプリケーションが、第1ウェブアプリケーションの演算リクエストが遂行された後に生成されるデータベース
イベントを監視し、第1ウェブアプリケーションと第2ウェブアプリケーションとの間のやりとりを削減し、データ演算の独立性を向上させることが達成される。
図7は、本発明の一実施形態による、ブラウザによるデータベースイベント生成の詳細な処理ステップを説明するものであり、
図6に示された方法の特定の応用形態である。この実施形態において、ウェブアプリケーションの1つ以上の演算リクエストの集合は、データベーストランザクションと称される。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0080
【補正方法】変更
【補正の内容】
【0080】
イベント処理コンポーネントが異なる登録済みオブジェクトを有し、かつ送信方法が異なる場合を除き、同一のブラウザ上の2つのアプリケーション間のデータベースイベントの監視と、同一のアプリケーションの2つページの監視との両方は、他の態様の同一のモードに適用されてよく、その詳細を明細書中で繰り返して説明することは省略する。
【手続補正6】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ウェブアプリケーションにデータベースの変更内容を取得させるためのシステムであって、
ブラウザと、
ウェブデータベースと、
前記ブラウザ上で動作するウェブアプリケーションと
を含み、
前記ブラウザは、
前記ウェブアプリケーションの演算リクエストを取得し、前記演算リクエストに従って前記ウェブデータベースへの演算を遂行するように構成されたデータベース処理コンポーネントと、
前記ウェブデータベースに遂行された前記演算に従ってデータベースイベントを生成するように構成されたイベント処理コンポーネントと
を含み、
前記データベースイベントは、前記ウェブアプリケーションによって監視され、
前記ウェブアプリケーションは、前記データベースイベントの生成を検出したとき、前記データベースイベントの属性からデータベース変更内容を取得する、システム。
【請求項2】
前記ウェブアプリケーションが、第1ページと、第2ページとを含み、
前記演算リクエストが、前記ウェブアプリケーションの前記第1ページから生じ、
前記ウェブアプリケーションが、前記データベースイベントの生成を検出したとき、前記データベースイベントの前記属性から前記データベース変更内容を取得し、前記第2ページ内の前記データベース変更内容に関連する部分に同期処理を実行する、請求項1に記載のシステム。
【請求項3】
前記データベースイベントの前記属性が、前記ウェブデータベースについて記述した変更情報を含み、
前記変更情報は、
データベース名と、
テーブル名と、
前記ウェブアプリケーションの前記演算リクエストに従って前記ウェブデータベースに適用された変更エントリと
を含み、
前記ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベース変更内容を取得することが、
前記ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベース名、前記テーブル名、及び前記変更エントリを取得し、前記データベース変更内容を決定することを含む、請求項1又は2に記載のシステム。
【請求項4】
前記変更エントリが、データレコードの演算タイプ、キー値、新レコード値、又は旧レコード値のうちの1つ以上を含む、請求項3に記載のシステム。
【請求項5】
前記変更エントリが、前記演算タイプとして、クリア、削除、追加、及び変更のうちの1つを少なくとも含み、
前記演算タイプがクリアである場合、対応する変更エントリの前記キー値、前記新レコード値、及び前記旧レコード値はすべてヌルとなり、
前記演算タイプが削除である場合、対応する変更エントリの前記キー値は削除されたレコードのキー値となり、かつ対応する変更エントリの前記旧レコード値は前記削除されたレコードのレコード値となり、
前記演算タイプが追加である場合、対応する変更エントリの前記キー値は追加されたレコードのキー値となり、かつ対応する変更エントリの前記新レコード値は前記追加されたレコードのレコード値となり、
前記演算タイプが更新である場合、対応する変更エントリの前記キー値は更新されたレコードのキー値となり、対応する変更エントリの前記新レコード値は前記更新されたレコードの新レコード値となり、かつ対応する変更エントリの前記旧レコード値は前記更新されたレコードの旧レコード値となる、請求項4に記載のシステム。
【請求項6】
前記ブラウザ上で動作する前記ウェブアプリケーションの前記演算リクエストが格納演算である場合、前記ブラウザの前記データベース処理コンポーネントにより、前記演算リクエストに従って前記ウェブデータベースへの前記演算を遂行することが、
前記ブラウザの前記データベース処理コンポーネントにより、
前記演算中の前記データベース名、前記テーブル名、及び前記キー値に従って、前記データベース名、前記テーブル名、及び前記キー値と同一のデータベース名、同一のテーブル名、及び同一のキー値を有したレコードが前記ウェブデータベースに既に存在するか否かをチェックし、
当該レコードが既に存在する場合、前記格納演算をエントリ更新動作に変更することを決定し、
当該レコードが存在しない場合、前記格納演算をエントリ追加動作に変更することを決定することを含む、請求項5に記載のシステム。
【請求項7】
前記変更エントリが、対応するデータベース演算の時系列順に整列され、
前記ウェブアプリケーションの前記演算リクエストで、1つのレコードに2つ以上の演算が実行される場合、当該レコードに対しては、前記変更エントリは、前記2つ以上の演算のうちの最後の演算だけを含む、請求項5に記載のシステム。
【請求項8】
前記ブラウザ上で動作する前記ウェブアプリケーションが、ウィンドウ、ドキュメント、ボディ、又はデータベースオブジェクトのうちの1つを使用して前記データベースイベントを監視する、請求項1ないし7のいずれか1項に記載のシステム。
【請求項9】
ブラウザ、ウェブデータベース、第1ウェブアプリケーション、及び第2ウェブアプリケーションを含む環境で用いられる、ウェブアプリケーションにデータベースの変更内容を取得させるための方法であって、
前記第1ウェブアプリケーションの演算リクエストを取得し、前記演算リクエストに従って前記ウェブデータベースへの演算を遂行するステップであって、前記第1ウェブアプリケーション及び前記第2ウェブアプリケーションが前記ブラウザ上で動作する、ステップと、
前記ウェブデータベースに遂行された前記演算に従ってデータベースイベントを生成するステップであって、前記データベースイベントが前記第2ウェブアプリケーションによって監視される、ステップと、
前記第2ウェブアプリケーションにより、前記データベースイベントの生成が検出されたとき、前記データベースイベントの属性からデータベース変更内容を取得するステップと
を有する方法。
【請求項10】
前記データベースイベントの前記属性が、前記ウェブデータベースについて記述した変更情報を含み、
前記変更情報は、
データベース名と、
テーブル名と、
前記第1ウェブアプリケーションの前記演算リクエストの演算対象である変更エントリと
を含み、
前記第2ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベース変更内容を取得するステップが、
前記第2ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベース名、前記テーブル名、及び前記変更エントリを取得し、前記データベース変更内容を決定するステップを含む、請求項9に記載の方法。
【請求項11】
前記変更エントリが、データレコードの演算タイプ、キー値、新レコード値、又は旧レコード値のうちの1つ以上を含む、請求項10に記載の方法。
【請求項12】
前記変更エントリが、前記演算タイプとして、クリア、削除、追加、及び変更のうちの1つを少なくとも含み、
前記演算タイプがクリアである場合、対応する変更エントリの前記キー値、前記新レコード値、及び前記旧レコード値はすべてヌルとなり、
前記演算タイプが削除である場合、対応する変更エントリの前記キー値は削除されたレコードのキー値となり、かつ対応する変更エントリの前記旧レコード値は前記削除されたレコードのレコード値となり、
前記演算タイプが追加である場合、対応する変更エントリの前記キー値は追加されたレコードのキー値となり、かつ対応する変更エントリの前記新レコード値は前記追加されたレコードのレコード値となり、
前記演算タイプが更新である場合、対応する変更エントリの前記キー値は更新されたレコードのキー値となり、対応する変更エントリの前記新レコード値は前記更新されたレコードの新レコード値となり、かつ対応する変更エントリの前記旧レコード値は前記更新されたレコードの旧レコード値となる、請求項11に記載の方法。
【請求項13】
前記ブラウザ上で動作する前記第1ウェブアプリケーションの前記演算リクエストが格納演算である場合、前記演算リクエストに従って前記ウェブデータベースへの前記演算を遂行するステップが、
前記演算中の前記データベース名、前記テーブル名、及び前記キー値に従って、前記データベース名、前記テーブル名、及び前記キー値と同一のデータベース名、同一のテーブル名、及び同一のキー値を有したレコードが前記ウェブデータベースに既に存在するか否かをチェックするステップと、
当該レコードが既に存在する場合、前記格納演算をエントリ更新動作に変更することを決定するステップと、
当該レコードが存在しない場合、前記格納演算をエントリ追加動作に変更することを決定するステップと
を含む、請求項12に記載の方法。
【請求項14】
データベースイベントパラメータに従って、データベーストランザクションが正しく遂行された後にデータベースイベントを生成するか否かが決定されるように、前記第1ウェブアプリケーションの前記演算リクエストで前記データベースイベントパラメータを伝送するステップをさらに有する、請求項9ないし13のいずれか1項に記載の方法。
【手続補正7】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【国際調査報告】