(57)【要約】  本発明の一実施形態は、ウェブアプリケーションにデータベースの変更内容を取得させるためのシステムを提供する。システムは、ブラウザと、ウェブデータベースと、ブラウザ上で動作するウェブアプリケーションとを含む。ブラウザは、ウェブアプリケーションの演算リクエストを取得し、演算リクエストに従ってウェブデータベースへの演算を遂行するように構成されたデータベース処理コンポーネントと、ウェブデータベースに遂行された演算に従ってデータベースイベントを生成するように構成されたイベント処理コンポーネントとを含む。ここで、データベースイベントは、ウェブアプリケーションによって監視される。ウェブアプリケーションは、データベースイベントの生成を検出したとき、データベースイベントの属性からデータベース変更内容を取得する。ウェブアプリケーションは、データベース変更内容を取得して、対応する処理を遂行できるようになる。
2015534692.tif 000002
【特許請求の範囲】
【請求項１】
ウェブアプリケーションにデータベースの変更内容を取得させるためのシステムであって、
ブラウザと、
ウェブデータベースと、
前記ブラウザ上で動作するウェブアプリケーションと
を含み、
前記ブラウザは、
前記ウェブアプリケーションの演算リクエストを取得し、前記演算リクエストに従って前記ウェブデータベースへの演算を遂行するように構成されたデータベース処理コンポーネントと、
前記ウェブデータベースに遂行された前記演算に従ってデータベースイベントを生成するように構成されたイベント処理コンポーネントと
を含み、
前記データベースイベントは、前記ウェブアプリケーションによって監視され、
前記ウェブアプリケーションは、前記データベースイベントの生成を検出したとき、前記データベースイベントの属性からデータベース変更内容を取得する、システム。
【請求項２】
前記ウェブアプリケーションが、第１ページと、第２ページとを含み、
前記演算リクエストが、前記ウェブアプリケーションの前記第１ページから生じ、
前記ウェブアプリケーションが、前記データベースイベントの生成を検出したとき、前記データベースイベントの前記属性から前記データベース変更内容を取得し、前記第２ページ内の前記データベース変更内容に関連する部分に同期処理を実行する、請求項１に記載のシステム。
【請求項３】
前記データベースイベントの前記属性が、前記ウェブデータベースについて記述した変更情報を含み、
前記変更情報は、
データベース名と、
テーブル名と、
前記ウェブアプリケーションの前記演算リクエストに従って前記ウェブデータベースに適用された変更エントリと
を含み、
前記ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベースに関連する内容を取得することが、
前記ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベース名、前記テーブル名、及び前記変更エントリを取得し、前記データベース変更内容を決定することを含む、請求項１又は２に記載のシステム。
【請求項４】
前記変更エントリが、データレコードの演算タイプ、キー値、新レコード値、又は旧レコード値のうちの１つ以上を含む、請求項３に記載のシステム。
【請求項５】
前記変更エントリが、前記演算タイプとして、クリア、削除、追加、及び変更のうちの１つを少なくとも含み、
前記演算タイプがクリアである場合、対応する変更エントリの前記キー値、前記新レコード値、及び前記旧レコード値はすべてヌルとなり、
前記演算タイプが削除である場合、対応する変更エントリの前記キー値は削除されたレコードのキー値となり、かつ対応する変更エントリの前記旧レコード値は前記削除されたレコードのレコード値となり、
前記演算タイプが追加である場合、対応する変更エントリの前記キー値は追加されたレコードのキー値となり、かつ対応する変更エントリの前記新レコード値は前記追加されたレコードのレコード値となり、
前記演算タイプが更新である場合、対応する変更エントリの前記キー値は更新されたレコードのキー値となり、対応する変更エントリの前記新レコード値は前記更新されたレコードの新レコード値となり、かつ対応する変更エントリの前記旧レコード値は前記更新されたレコードの旧レコード値となる、請求項４に記載のシステム。
【請求項６】
前記ブラウザ上で動作する前記ウェブアプリケーションの前記演算リクエストが格納演算である場合、前記ブラウザの前記データベース処理コンポーネントにより、前記演算リクエストに従って前記ウェブデータベースへの前記演算を遂行することが、
前記ブラウザの前記データベース処理コンポーネントにより、
前記演算中の前記データベース名、前記テーブル名、及び前記キー値に従って、前記データベース名、前記テーブル名、及び前記キー値と同一のデータベース名、同一のテーブル名、及び同一のキー値を有したレコードが前記ウェブデータベースに既に存在するか否かをチェックし、
当該レコードが既に存在する場合、前記格納演算をエントリ更新動作に変更することを決定し、
当該レコードが存在しない場合、前記格納演算をエントリ追加動作に変更することを決定することを含む、請求項５に記載のシステム。
【請求項７】
前記変更エントリが、対応するデータベース演算の時系列順に整列され、
前記ウェブアプリケーションの前記演算リクエストで、１つのレコードに２つ以上の演算が実行される場合、当該レコードに対しては、前記変更エントリは、前記２つ以上の演算のうちの最後の演算だけを含む、請求項５に記載のシステム。
【請求項８】
前記ブラウザ上で動作する前記ウェブアプリケーションが、ウィンドウ、ドキュメント、ボディ、又はデータベースオブジェクトのうちの１つを使用して前記データベースイベントを監視する、請求項１ないし７のいずれか１項に記載のシステム。
【請求項９】
ブラウザ、ウェブデータベース、第１ウェブアプリケーション、及び第２ウェブアプリケーションを含む環境で用いられる、ウェブアプリケーションにデータベースの変更内容を取得させるための方法であって、
前記第１ウェブアプリケーションの演算リクエストを取得し、前記演算リクエストに従って前記ウェブデータベースへの演算を遂行するステップであって、前記第１ウェブアプリケーション及び前記第２ウェブアプリケーションが前記ブラウザ上で動作する、ステップと、
前記ウェブデータベースに遂行された前記演算に従ってデータベースイベントを生成するステップであって、前記データベースイベントが前記第２ウェブアプリケーションによって監視される、ステップと、
前記第２ウェブアプリケーションにより、前記データベースイベントの生成が検出されたとき、前記データベースイベントの属性からデータベース変更内容を取得するステップと
を有する方法。
【請求項１０】
前記データベースイベントの前記属性が、前記ウェブデータベースについて記述した変更情報を含み、
前記変更情報は、
データベース名と、
テーブル名と、
前記第１ウェブアプリケーションの前記演算リクエストの演算対象である変更エントリと
を含み、
前記第２ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベースに関連する内容を取得するステップが、
前記第２ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベース名、前記テーブル名、及び前記変更エントリを取得し、前記データベース変更内容を決定するステップを含む、請求項９に記載の方法。
【請求項１１】
前記変更エントリが、データレコードの演算タイプ、キー値、新レコード値、又は旧レコード値のうちの１つ以上を含む、請求項１０に記載の方法。
【請求項１２】
前記変更エントリが、前記演算タイプとして、クリア、削除、追加、及び変更のうちの１つを少なくとも含み、
前記演算タイプがクリアである場合、対応する変更エントリの前記キー値、前記新レコード値、及び前記旧レコード値はすべてヌルとなり、
前記演算タイプが削除である場合、対応する変更エントリの前記キー値は削除されたレコードのキー値となり、かつ対応する変更エントリの前記旧レコード値は前記削除されたレコードのレコード値となり、
前記演算タイプが追加である場合、対応する変更エントリの前記キー値は追加されたレコードのキー値となり、かつ対応する変更エントリの前記新レコード値は前記追加されたレコードのレコード値となり、
前記演算タイプが更新である場合、対応する変更エントリの前記キー値は更新されたレコードのキー値となり、対応する変更エントリの前記新レコード値は前記更新されたレコードの新レコード値となり、かつ対応する変更エントリの前記旧レコード値は前記更新されたレコードの旧レコード値となる、請求項１１に記載の方法。
【請求項１３】
前記ブラウザ上で動作する前記第１ウェブアプリケーションの前記演算リクエストが格納演算である場合、前記演算リクエストに従って前記ウェブデータベースへの前記演算を遂行するステップが、
前記演算中の前記データベース名、前記テーブル名、及び前記キー値に従って、前記データベース名、前記テーブル名、及び前記キー値と同一のデータベース名、同一のテーブル名、及び同一のキー値を有したレコードが前記ウェブデータベースに既に存在するか否かをチェックするステップと、
当該レコードが既に存在する場合、前記格納演算をエントリ更新動作に変更することを決定するステップと、
当該レコードが存在しない場合、前記格納演算をエントリ追加動作に変更することを決定するステップと
を含む、請求項１２に記載の方法。
【請求項１４】
データベースイベントパラメータに従って、データベーストランザクションが正しく遂行された後にデータベースイベントを生成するか否かが決定されるように、前記第１ウェブアプリケーションの前記演算リクエストで前記データベースイベントパラメータを伝送するステップをさらに有する、請求項９ないし１３のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブラウザ技術に関し、詳細には、ブラウザウェブデータベースを使用する方法及びシステムに関する。
【背景技術】
【０００２】
初期のブラウザは、クッキーを介して短いテキストデータをローカルに保存することしかできなかったが、現在主流のブラウザは、ウェブストレージやＷｅｂ ＳＱＬデータベース技術規格などのより高性能なローカルストレージソリューションに対応している。さらには、ブラウザに大容量の構造化データを格納し、効率の良いクエリ処理を実現するインデックスを提供するためのブラウザデータベース規格であるＩｎｄｅｘｅｄ ＤＢの開発が急ぎ進められ、さらなる改良が加えられている。ＳＱＬ命令が文字列パラメータとしてＪａｖａＳｃｒｉｐｔ（登録商標）ＡＰＩに渡されるＷｅｂ ＳＱＬデータベースと比較すると、処理が軽く、ＮｏＳＱＬかつノン−リレーショナルデータベースなＩｎｄｅｘｅｄ ＤＢは、ローカルデータベースをサポートするウェブアプリケーションを実装することが開発者にとって容易になるよう、非常に単純な文法構造を有している。
【０００３】
インターネットは、どこにでもあるもの（ユビキタス）でなく、充分に高速でもないので、ウェブアプリケーションには、データをブラウザにローカルに格納することが非常に重要となる。ローカルストレージは、高速な処理のために、開発者がローカルコンピュータにいくらかのデータを格納することを許可する。これは、ウェブアプリケーションがより高速かつより信頼できるものとなり、ユーザ体験がより良いものとなるよう、ウェブメールボックスやオンライン文書編集などのアプリケーションがオフラインで使用可能となり、そのデータが将来の使用のためにローカルにキャッシュ可能となることを意味する。それには、データベースを備えたウェブアプリケーションにサイズの大きいデータを格納することが必要となる。しかしながら、データベース内のデータがサービスロジックと共に絶えず変化するのに対し、既存のブラウザデータベースは、ウェブアプリケーションにデータの変更内容を都合よく取得させるための対応するメカニズムを提供しない。ウェブアプリケーションは、異なるページ間の対話を介してデータの変更内容を取得することしかできず、そのような実装は、比較的低い効率を有するか、又はモジュール間の比較的高い結びつきの原因となり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、ウェブアプリケーションがブラウザウェブデータベースのデータ変更内容を適時にかつ効率良く取得できるよう、ウェブアプリケーションにデータベースの変更内容を取得させるためのシステム及び方法を提供する。
【課題を解決するための手段】
【０００５】
一態様によれば、ウェブアプリケーションにデータベースの変更内容を取得させるためのシステムが提供される。システムは、ブラウザと、ウェブデータベースと、ブラウザ上で動作するウェブアプリケーションとを含む。ブラウザは、
ウェブアプリケーションの演算リクエストを取得し、演算リクエストに従ってウェブデータベースへの演算を遂行するように構成された、ブラウザのデータベース処理コンポーネントと、
ウェブデータベースに遂行された演算に従ってデータベースイベントを生成するように構成された、ブラウザのイベント処理コンポーネントとを含む。ここで、データベースイベントは、ウェブアプリケーションによって監視される。ウェブアプリケーションは、データベースイベントの生成を検出したときに、データベースイベントの属性からデータベース変更内容を取得する。
【０００６】
第１態様に従う実現可能な第１実施モードにおいて、ウェブアプリケーションは、第１ページと、第２ページとを含み、システムは、ウェブアプリケーションの演算リクエストを取得し、演算リクエストに従ってウェブデータベースへの演算を遂行するように構成された、ブラウザのデータベース処理コンポーネントであって、演算リクエストがウェブアプリケーションの第１ページから生じる、ブラウザのデータベース処理コンポーネントと、ウェブデータベースに遂行された演算に従ってデータベースイベントを生成するように構成された、ブラウザのイベント処理コンポーネントであって、データベースイベントがウェブアプリケーションによって監視され、ウェブアプリケーションが、データベースイベントの生成を検出したときに、データベースイベントの属性からデータベース変更内容を取得し、第２ページ内のデータベース変更内容に関連する部分に同期処理を実行する、ブラウザのイベント処理コンポーネントとを含む。
【０００７】
第１態様に従う実現可能な第２実施モードにおいて、データベースイベントの属性は、ウェブデータベースについて記述した変更情報を含む。ここで、変更情報は、データベース名と、テーブル名と、ウェブアプリケーションの演算リクエストに従ってウェブデータベースに適用された変更エントリとを含む。ウェブアプリケーションにより、データベースイベントの属性からデータベースに関連する内容を取得することは、ウェブアプリケーションにより、データベースイベントの属性からデータベース名、テーブル名、及び変更エントリを取得し、ウェブデータベース変更内容を決定することを含む。
【０００８】
第１実施モードに従う又は第２実施モードに従う実現可能な第３実施モードにおいて、変更エントリは、データレコードの演算タイプ、キー値、新レコード値、及び旧レコード値のうちの１つ以上を含む。
【０００９】
第３実施モードに従う実現可能な第４実施モードにおいて、変更エントリは、演算タイプとして、クリア、削除、追加、及び変更のうちの１つを少なくとも含む。演算タイプがクリアである場合、対応する変更エントリのキー値、新レコード値、及び旧レコード値はすべてヌルとなる。演算タイプが削除である場合、対応する変更エントリのキー値は削除されたレコードのキー値となり、かつ対応する変更エントリの旧レコード値は削除されたレコードのレコード値となる。演算タイプが追加である場合、対応する変更エントリのキー値は追加されたレコードのキー値となり、かつ対応する変更エントリの新レコード値は追加されたレコードのレコード値となる。演算タイプが更新である場合、対応する変更エントリのキー値は更新されたレコードのキー値となり、対応する変更エントリの新レコード値は更新されたレコードの新レコード値となり、かつ対応する変更エントリの旧レコード値は更新されたレコードの旧レコード値となる。
【００１０】
第４実施モードに従う実現可能な第５実施モードにおいて、ブラウザ上のウェブアプリケーションの演算リクエストが格納演算である場合、演算リクエストに従ってウェブデータベースへの演算を遂行することは、ブラウザのデータベース処理コンポーネントが、演算中のデータベース名、テーブル名、及びキー値に従って、同一のデータベース名、テーブル名、及びキー値を有したレコードがデータベースに既に存在するか否かをチェックし、当該レコードが既に存在する場合、格納演算をエントリ更新動作に変更することを決定し、データベースが対応するレコードを有さない場合、格納演算をエントリ追加動作に変更することを決定することを含む。
【００１１】
第４実施モードに従う実現可能な第６実施モードにおいて、変更エントリは、対応するデータベース演算の時系列順に整列される。ウェブアプリケーションの演算リクエストで、１つのレコードに２つ以上の演算が実行される場合、変更エントリは、最後の演算だけを含む。
【００１２】
先に記載した実施モードのいずれか１つに従う実現可能な第７実施モードにおいて、ブラウザ上のウェブアプリケーションは、ウィンドウ、ドキュメント、ボディ、又はデータベースオブジェクトのうちの１つを使用してデータベースイベントを監視する。
【００１３】
第２態様によれば、ウェブアプリケーションにデータベースの変更内容を取得させるための方法が提供される。ブラウザ、ウェブデータベース、第１ウェブアプリケーション、及び第２ウェブアプリケーションが含まれ、方法は、
第１ウェブアプリケーションの演算リクエストを取得し、演算リクエストに従ってウェブデータベースへの演算を遂行するステップであって、第１ウェブアプリケーション及び第２ウェブアプリケーションがブラウザ上で動作する、ステップと、
ウェブデータベースに遂行された演算に従ってデータベースイベントを生成するステップであって、データベースイベントが第２ウェブアプリケーションによって監視される、ステップと、
第２ウェブアプリケーションにより、データベースイベントの生成が検出されたときに、データベースイベントの属性からデータベース変更内容を取得するステップとを有する。
【００１４】
第２態様に従う実現可能な第１実施モードにおいて、データベースイベントの属性は、ウェブデータベースについて記述した変更情報を含む。ここで、変更情報は、データベース名と、テーブル名と、第１ウェブアプリケーションの演算リクエストの演算対象である変更エントリとを含む。第２ウェブアプリケーションにより、データベースイベントの属性からデータベースに関連する内容を取得するステップは、第２ウェブアプリケーションにより、データベースイベントの属性からデータベース名、テーブル名、及び変更エントリを取得し、ウェブデータベース変更内容を決定するステップを含む。
【００１５】
第１実施モードに従う実現可能な第２実施モードにおいて、変更エントリは、データレコードの演算タイプ、キー値、新レコード値、及び旧レコード値のうちの１つ以上を含む。
【００１６】
第２実施モードに従う実現可能な第３実施モードにおいて、変更エントリは、演算タイプとして、クリア、削除、追加、及び変更のうちの１つを少なくとも含む。演算タイプがクリアである場合、対応する変更エントリのキー値、新レコード値、及び旧レコード値はすべてヌルとなる。演算タイプが削除である場合、対応する変更エントリのキー値は削除されたレコードのキー値となり、かつ対応する変更エントリの旧レコード値は削除されたレコードのレコード値となる。演算タイプが追加である場合、対応する変更エントリのキー値は追加されたレコードのキー値となり、かつ対応する変更エントリの新レコード値は追加されたレコードのレコード値となる。演算タイプが更新である場合、対応する変更エントリのキー値は更新されたレコードのキー値となり、対応する変更エントリの新レコード値は更新されたレコードの新レコード値となり、かつ対応する変更エントリの旧レコード値は更新されたレコードの旧レコード値となる。
【００１７】
第３実施モードに従う実現可能な第４実施モードにおいて、ブラウザ上の第１ウェブアプリケーションの演算リクエストが格納演算である場合、演算リクエストに従ってウェブデータベースへの演算を遂行するステップは、演算中のデータベース名、テーブル名、及びキー値に従って、同一のデータベース名、テーブル名、及びキー値を有したレコードがウェブデータベースに既に存在するか否かをチェックするステップと、当該レコードが既に存在する場合、格納演算をエントリ更新動作に変更することを決定するステップと、データベースが対応するレコードを有さない場合、格納演算をエントリ追加動作に変更することを決定するステップとを含む。
【００１８】
先に記載した実施モードのいずれか１つに従う実現可能な第５実施モードにおいて、データベースイベントパラメータに従って、データベーストランザクションが正しく遂行された後にデータベースイベントを生成するか否かが決定されるように、データベースイベントパラメータは、第１ウェブアプリケーションの演算リクエストで伝送される。
【発明の効果】
【００１９】
本発明の上記の態様において、ブラウザ上のウェブアプリケーションが、データベースイベントを監視し、対応するイベントハンドリング機能を割り当てできるよう、ウェブデータベースの変更内容に従って、対応するデータベースイベントが、ブラウザによって生成される。それにより、ウェブアプリケーションは、データベースイベントの属性からデータベースの変更内容を取得し、対応する処理を遂行できる。このようにして、ウェブアプリケーションの異なるページ又はモジュールは、データベースの変更内容を容易に取得できる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施形態によるコンピューティング環境の概略図である。
【図２】本発明の一実施形態による情報伝達のフロー図である。
【図３】本発明の一実施形態によるブラウザフレームの概略図である。
【図４】本発明の一実施形態によるデータベースイベントの内容を示す図である。
【図５】本発明の一実施形態によるデータベースイベントの内容の別の態様を示す図である。
【図６】本発明の別の実施形態による情報伝達のフロー図である。
【図７】本発明の一実施形態によるデータベースイベントを生成するステップを示す図である。
【図８】本発明の一実施形態によるデータベースイベントの属性を決定するステップを示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態の技術的解決策が、添付された本発明の実施形態の図面を参照して、明瞭かつ網羅的に説明される。当然ながら、明細書中に記載される実施形態は、本発明の実施形態の一部に過ぎず、そのすべてではない。当業者は、本発明の実施形態に基づいて、創造的な労力無しに他のあらゆる実施形態を導き出すことが可能であり、それらはすべて本発明の範囲内にある。
【００２２】
典型的に、この発明の詳細な説明に記載されたデータ構造体及びコードは、コンピュータ読み取り可能な記憶媒体に格納される。コンピュータ読み取り可能な記憶媒体は、コンピュータシステムで使用するためのコード及び／又はデータを格納可能な任意のデバイス又は媒体であってよい。そのようなデバイス又は媒体には、これらに限定されないが、揮発性メモリ若しくは不揮発性メモリ、磁気ディスク、磁気テープ、ＣＤ、ＤＶＤなどの磁気及び光記憶デバイス、又は、既知の又は今後開発されるコンピュータ読み取り可能な記憶媒体を含む他の媒体が含まれる。
【００２３】
明細書中のコンピュータは、コンピューティング機能を備えたマイクロプロセッサベースの端末デバイスを指す。そのようなコンピュータには、これらに限定されないが、パーソナルコンピュータ、タブレットコンピュータ、ポータブルコンピュータ、モバイルフォンなどのあらゆる種類のコンピュータシステムが含まれる。
【００２４】
本発明の一実施形態は、ウェブデータベースの変更内容を取得するためのシステムを提供する。図１を参照すると、本システムのコンピューティング環境１００は、ブラウザ１０１と、ウェブデータベース１０２と、ＣＰＵプロセッサ１０６とを含む。ブラウザ１０１は、データベース処理コンポーネント１０４と、イベント処理コンポーネント１０５と、ウェブアプリケーション１０３とを含む。各ウェブアプリケーションは、ブラウザ上で複数のページ、例えば、同一のウェブアプリケーションに属する図１のページＡ、ページＢ、及びページＣを開くことができる。多くの場合、これらのページのＵＲＬアドレスは、同一のドメイン、例えば、「www.huawei.com」に属しており、詳細には、ページＡのアドレスが「www.huaweidevice.com/cn/method=index」であってよく、ページＢのアドレスが「www.huaweidevice.com/cn/method=getFaqInfo=9097」であってよい。また、ウェブアプリケーションは、ブラウザ拡張機能（エクステンション）であってもよい。一般に、ブラウザ拡張機能は、ＨＴＭＬ及びＪａｖａＳｃｒｉｐｔから成り、ウェブアプリケーションのようにふるまい、ブラウザを介してウェブデータベースを生成し、アクセスできる。各ウェブアプリケーションは、ブラウザを介して１つ以上のウェブデータベースを生成してよい。多くの場合、ウェブデータベースは、ドキュメント形式でコンピューティング環境に格納される。そのようなウェブデータベースは、ローカルコンピュータ又はネットワーク上の他のコンピュータに存在してよい。本発明における、ウェブアプリケーションによってデータベースの変更内容を取得するための解決策は、先に記載したページＡとページＢとの間など、同一のウェブアプリケーション内にしか適用できないのではなく、上記のブラウザ拡張機能間など、異なるウェブアプリケーションにも適用できる。
【００２５】
本システムの方法は、主に以下のステップを含む。
【００２６】
ステップＳ１０１において、ブラウザのデータベース処理コンポーネント１０４は、ウェブアプリケーション１０３の演算リクエストを取得し、演算リクエストに従ってウェブデータベースへの演算を遂行する。
【００２７】
好ましくは、演算リクエストは、ブラウザ上でのユーザの操作に従ってウェブアプリケーション１０３によって生成される。
【００２８】
ステップＳ１０２において、ブラウザのイベント処理コンポーネント１０５は、ウェブデータベースに遂行された演算に従ってデータベースイベントを生成する。データベースイベントは、ウェブアプリケーション１０３によって監視される。
【００２９】
好ましくは、データベースイベントは、イベントタイプを含む。例えば、イベントタイプは、データベースである。
【００３０】
ステップＳ１０３において、ウェブアプリケーション１０３は、データベースイベントの生成を検出したときに、データベースイベントの属性から変更された内容を取得する。
【００３１】
図３は、図１に基づくコンピューティング環境であり、本発明によるシステムのブラウザの構造図に相当する。その情報伝達のフロー図が図２に示される。特に図３を参照すると、ブラウザ２０１上のウェブアプリケーション２０３は、１つのアプリケーションの異なるページ、すなわち、ブラウザの第１ページＡ及びブラウザの第２ページＢを開いている。以降、これらを省略して、ページＡ及びページＢと称する。また、ページＡ及びページＢは、ウェブアプリケーション２０３の２つのオブジェクトとみなされてよい。２つのページは、同一のドメインに属し、例えば、いずれも、ドメイン名「www.huawei.com」を有するドメインに属する。ブラウザの複数のページは、同一のウィンドウの異なるタブに位置していてよく、又は同一のブラウザの異なるウィンドウに位置していてもよい。ページＡにおいて、ウェブアプリケーション２０３は、ブラウザのデータベース処理コンポーネント２０４に演算リクエストを送信し、データベース処理コンポーネント２０４は、演算リクエストに従ってウェブデータベースへの演算を実行する。実行の間、ウェブアプリケーション２０３とデータベース処理コンポーネント２０４との間の通信は、ＪａｖａＳｃｒｉｐｔ ＡＰＩを介して達成されてよい。
【００３２】
ブラウザのイベント処理コンポーネント２０５は、演算リクエストに対応するウェブデータベースに遂行された演算に従ってデータベースイベントを生成する。データベースイベントは、ウェブアプリケーション２０３によって監視される。
【００３３】
ウェブアプリケーション２０３によるデータベースイベントの監視は、詳細には、別のページＢについて、ウェブアプリケーション２０３が、データベースイベント監視オブジェクト２０２及びデータベースイベントハンドリング機能２０６をページＢに割り当てることを含む。特に、データベースイベント監視オブジェクトは、ウィンドウ、ドキュメント、ボディ、又はデータベースオブジェクトのうちのいずれか１つであってよい。特に、データベースイベント監視オブジェクト２０２によるデータベースイベントの監視方法は、ブラウザのデータベースイベントを監視するための情報をブラウザのイベント処理コンポーネント２０５に登録するステップを含み、イベント処理コンポーネント２０５は、データベースイベントが生成された後に、データベースイベント監視モジュール２０２の登録情報に従って、データベースイベント監視オブジェクト２０２にデータベースイベントを送信してよい。
【００３４】
好ましくは、ウェブアプリケーション２０３がデータベースイベントの属性からデータベースの変更された内容を取得することは、詳細には、データベースイベント監視オブジェクト２０２が、イベント処理コンポーネント２０５からデータベースイベントを受信した後に、データベースイベントをデータベースイベントハンドリング機能２０６に転送することと、多数の演算ステップが存在し、かつステップの環境を記録する必要がある場合、選択的に、イベント処理コンポーネント２０５が、各ステップのデータを記録し、データベースイベントでデータを伝送し、データベースイベント監視オブジェクト２０２に転送することとを含む。
【００３５】
選択的に、データベースイベント監視オブジェクト２０２がイベント処理コンポーネント２０５からデータベースイベントを受信した後に、データベースイベントハンドリング機能２０６は、データベースイベントの属性に従って、データベースイベントの属性によって記述されたウェブデータベースの内容を、データベース処理コンポーネント２０４を介してウェブデータベースから取得する。データベースイベントの属性は、ウェブデータベースについて記述した変更情報を含む。変更情報は、データベース名と、テーブル名と、ウェブアプリケーションの演算リクエストに従ってブラウザにおいて操作がなされた変更エントリ中の要素の識別子とを含む。変更エントリ中の要素の識別子は、キー値に対応する識別子と、新レコード値に対応する識別子と、旧レコード値に対応する識別子とを含む。これらの識別子は、ウェブデータベースに格納されたコンテンツの実際の区分に依存する新レコード値に対応する１つ以上の識別子であってよい。この選択的手法は、最終的な結果だけが取得される必要があり、結果がより多くのリソースを占有する場合に適用可能である。
【００３６】
実行の間、データベース処理コンポーネント２０４とデータベースイベントハンドリング機能２０６との間の通信、及び、データベースイベント監視オブジェクト２０２とイベント処理コンポーネント２０５との間の通信は、ＪａｖａＳｃｒｉｐｔ ＡＰＩを介して達成されてよい。
【００３７】
イベント処理コンポーネント２０５は、データベース演算が遂行された後に、データベースイベントを生成する。ページＢは、データベースイベントハンドリング機能２０６を介してデータベースイベントの属性を取得し、次いで、属性中のデータベースの変更された内容に従って対応する処理を実行する。また、実際の使用時には、ブラウザのイベント処理コンポーネント２０５で生成されるデータベースイベントを監視することによって、ページＡによる、ページＢにおけるデータベース演算の監視が実現され、最終的に、ページＡとページＢとの間の相互監視の目的が達成されるよう、ページＡは、ページＢのものと同一の機能を備えた、データベースイベント監視オブジェクト２０２’（図３では図示されない）及びデータベースイベントハンドリング機能２０６’（図３では図示されない）を含んでよい。
【００３８】
ブラウザは、ページＢ及びページＡが１つのブラウザ内のページであるか否かに依存して、データベースイベントの属性を処理するために異なるタイミングを設定してよい。詳細には、以下の通りである。
【００３９】
１）ページＡ及びページＢが同一のブラウザの異なるタブに選択的に表示されている場合（換言すれば、ページＡ及びページＢのうちの一方のページしか一度に表示できない場合）、ブラウザは、ページＡがページＢに切り替わったときにだけ、データベースイベントハンドリング機能２０６がデータベースイベントの属性を処理可能となるように設定されてよい。したがって、監視結果は、通常は、ページＢに表示されてよく、データベースイベントの属性を処理する頻度は最小化される。
【００４０】
２）ページＡ及びページＢが同一のブラウザの異なるウィンドウに表示される場合、ブラウザは、データベースイベントの属性を取得したときに、データベースイベントハンドリング機能２０６がデータベースイベントの属性を処理可能となるように、換言すれば、同一の属性を有する内容がページＡとページＢとで同時に変更及び更新できるよう、ページＡと同一のテーブルに存在し、かつ同一のデータベースに属する変更エントリに対応する内容をページＢにおいて更新できるように設定されてよい。これは、ページＡ及びページＢが並行して表示されるときに、ページＢのアプリケーションによって監視される内容のリアルタイム更新を確実なものとする。
【００４１】
（ウェブアプリケーションの演算リクエストを生成する）ブラウザにおいて、ユーザによってなされる手続きは、次のように分類できる。１）パラメータがページＡに入力された後に、ページＡのデータへの演算は、ページＡ上の確認ボタンがクリックされた後にだけ遂行可能となる。確認ボタンのクリックは、ウェブアプリケーションの演算リクエストを開始するためのトリガポイントとして解釈されてよい。２）パラメータがページＡ上の（変更エントリ中のある項目に対応してよい）ある列に入力された後、マウスフォーカスが他の列に移動したときに、ウェブアプリケーションの演算リクエストが、送信のためにトリガされる。特定の実施形態は、先に挙げた２つのタイプに限定されず、ブラウザに関連した他の操作によっても、ウェブアプリケーションの演算リクエストの送信をトリガできる。
【００４２】
一実施形態において、好ましくは、データベースイベントは、次のように生成される。１）ページＡ上のある変更エントリに対応するすべてのウェブアプリケーション演算を記録し、次いで、データベースイベントの生成をトリガする。ここで、トリガ手法は、上記の２つの手法のいずれであってもよい。データベースイベントの生成プロセスの間、ある変更エントリに対応するすべての記録されたウェブアプリケーション演算の内容は、ページＢ上のデータベースイベント監視オブジェクト２０２が変更エントリに対応するすべてのウェブアプリケーション演算の演算内容をデータベースイベントの属性から取得できるよう、データベースイベントの属性に含まれる。
【００４３】
あるいは、２）ページＡにおけるユーザの最終的な操作の結果、換言すれば、データベースへの演算が遂行された後にデータベースに保存された結果だけを記録する。このようにして、ウェブアプリケーションの演算リクエストが遂行された後にデータベースに格納された結果は、データベースイベントが生成されたときに、直接伝送されてよい。
【００４４】
ウェブアプリケーションの演算リクエストは、データベースイベントを生成するためのパラメータを含み、ブラウザは、パラメータに従って、ウェブアプリケーションの演算リクエストが遂行された後に、データベースイベントを生成するか否かを決定できる。実際的な実施形態において、データベースイベントを生成するためのパラメータは、データベース処理コンポーネント２０４に設定されてよく、ウェブアプリケーションの演算リクエストによって伝送される必要は無い。したがって、あるページへの又はページ上のあるオブジェクトへの演算に関連するデータベースイベントの適切な生成が達成される。
【００４５】
例を挙げると、ウェブアプリケーションの演算リクエストが実行されるとき、「ｓｕｐｐｒｅｓｓｅｖｅｎｔ」パラメータが指定されてよく、このイベントパラメータが使用される場合、データベースイベントは生成されない。このパラメータは、無限ループを回避するために使用でき、データベースに演算が実行されるときに、データベースイベントハンドリング機能においてイベントを生成しないように指示できる。例えば、データベースイベントを監視するハンドリング機能において、あるレコードの更新が検出されたとき、もう１度のデータベース更新演算の実行は、無限ループを引き起こし得る。また、パラメータは、いくつかの不必要なデータベースイベントの生成を回避でき、例えば、システムリソースを節約するよう、いくつかのデータベース演算は監視する必要が無い。
【００４６】
あるいはまた、イベントを生成しないという、デフォルトのトランザクション指示が行われてよく、データベースイベントは、「ｆｉｒｅｄａｔａｂａｓｅｅｖｅｎｔ」パラメータが指定されている場合にだけ生成されてよい。これは、システムリソースを節約し、より良好な互換性を実現する助けとなる。デフォルト設定を最適なソリューションとすることによってイベントは生成されず、多くのウェブアプリケーションに対してデータベースイベントを監視する必要が無くなる。
【００４７】
データベースイベントの属性は、データベースの変更内容について記述した変更情報を含む。ここで、変更情報は、データベース名、テーブル名、及びウェブアプリケーションの演算リクエストに起因する変更である変更エントリを含む。変更エントリの情報は、ブラウザ上のウェブアプリケーションによって、データベースイベントハンドリング機能を介してイベントの属性から取得される。データベースの変更内容は、変更情報に従ってウェブアプリケーションによって取得される。
【００４８】
図４は、本発明の実施形態によるデータベースイベントの内容を示す。それには、文字列（ＤＯＭＳｔｒｉｎｇ）又は文字列配列（ＤＯＭＳｔｒｉｎｇＬｉｓｔ）を備えた、いくつかの読み取り専用属性（ｒｅａｄｏｎｌｙ属性）が含まれる。変更エントリの各項目は、オプションである、データレコードの演算タイプ（ｏｐｅｒａｔｉｏｎＴｙｐｅ）、キー値（ｋｅｙ）、旧値（ｏｌｄＶａｌｕｅ）、及び新値（ｎｅｗＶａｌｕｅ）を含む。これらの属性のデータは、例えば、属性キー値（ｋｅｙｓ）が文字列配列（ＤＯＭＳｔｒｉｎｇＬｉｓｔ）としてなど、配列として保存されてよい。変更エントリは、以下の演算タイプのうちの１つを少なくとも含む。
【００４９】
演算タイプがクリア（Ｃｌｅａｒ）である場合、対応する変更のキー値、新レコード値、及び旧レコード値は、すべてヌルとなる。演算タイプが削除（Ｄｅｌｅｔｉｏｎ）である場合、対応する変更エントリのキー値が削除されたレコードのキー値となり、かつ対応する変更エントリの旧レコード値が削除されたレコードのレコード値となる。演算タイプが追加（Ａｄｄｉｔｉｏｎ）である場合、対応する変更エントリのキー値が追加されたレコードのキー値となり、かつ対応する変更エントリの新レコード値が追加されたレコードのレコード値となる。演算タイプが更新（Ｕｐｄａｔｅ）である場合、対応する変更エントリのキー値が更新されたレコードのキー値となり、対応する変更エントリの新レコード値が更新されたレコードの新レコード値となり、かつ対応する変更エントリの旧レコード値が更新されたレコードの旧レコード値となる。
【００５０】
図５は、本発明の一実施形態によるブラウザデータベースイベントの内容を記述する別の均等な手法を示す。この手法は、図１及び図３に示されたシステムに使用されてよい。データベースイベントオブジェクトは、データベース変更リスト（ＤａｔａｂａｓｅＣｈａｎｇｅＬｉｓｔ）オブジェクトを含んでよく、特に、このリストオブジェクトは、データレコードの詳細な変更エントリを含む。この実施形態において、ウェブアプリケーションの１つ以上の演算リクエストの集合は、データベーストランザクションと称される。
【００５１】
ブラウザ上のウェブアプリケーションのデータベース演算リクエストが格納（Ｐｕｔ）演算を含む場合、ブラウザのデータベース処理コンポーネントは、演算中のデータベース名、テーブル名、及びキー値に従って、同一のデータベース名、テーブル名、及びキー値を有するレコードが既に存在するか否かをチェックする。そのようなレコードが既に存在する場合、エントリ更新のための演算に対応する変更エントリの演算タイプを変更することを決定し、ブラウザのイベント処理コンポーネント２０５によって生成されるデータベースイベントの属性内で、対応するキー値が更新されたレコードのキー値となり、対応するエントリの新レコード値が更新されたレコードの新レコード値となり、かつ対応するエントリの旧レコード値が更新されたレコードの旧レコード値となる。
【００５２】
データベースが同一のデータベース名、テーブル名、及びキー値を有するレコードを含まない場合、エントリ追加のための演算に対応する変更エントリの演算タイプを変更することを決定し、ブラウザのイベント処理コンポーネント２０５によって生成されるデータベースイベントの属性内で、対応するキー値が追加されたレコードのキー値となり、かつ対応するエントリの新レコード値が追加されたレコードのレコード値となる。
【００５３】
スプレッドシートを提供するウェブアプリケーションでは、多くの場合、同一のレコードは、幾度か操作され、そのデータは、ユーザによって保存されるか、又は自動的に保存されたときにだけ提示される。例えば、レコードのあるフィールドの値が修正され、次いで、当該レコードが削除された場合、ユーザによってデータが保存され、提示されるときの対応するデータベーストランザクションは、修正及び削除の２つの演算を含むこととなる。
【００５４】
データベースイベントの属性中の変更エントリは、対応するデータベース演算の時系列順に整列され、データベーストランザクション中の最後の演算がクリア演算であった場合、換言すれば、テーブル中のすべてのレコードが削除される場合、対応するキー値、新レコード値、及び旧レコード値は、すべてヌルとなる。この場合、データ量が非常に大きくなるので、イベント中のすべてのレコードのキー値及び旧レコード値を結合することは適切でなく、一般に、その必要も無い。したがって、クリア演算の後に、関連性のある演算を記録するだけでよい。例えば、電子商取引ウェブアプリケーションの買い物かごモジュールに製品を追加する際、買い物かごに既に存在していたアイテムを最初にクリアするオプションが同時に提供されていた場合、先のようにして、対応するデータベーストランザクションは、買い物かごのテーブルデータへの最初のクリア演算を含み、次いで、新しいアイテムの追加レコードを含む。あるいは、ユーザは、買い物かご内のアイテムの数を修正しても、それを直ちに提示せず、次いで、買い物かごのクリア操作を実行して提示することがある。この場合、対応するデータベーストランザクションは、クリア演算だけを含む。
【００５５】
データベースイベントの属性中の変更エントリが対応するデータベース演算の時系列順に整列される場合に加えて、別の手法では、ウェブアプリケーションの演算リクエストは、レコードへの２つ以上の演算を実行し、変更エントリは、最後の演算だけを含む。例えば、購入しようとする製品の数が選択されるときに、希望する数が幾度か選択し直されることがあり、製品に対応する変更エントリは、最後に選択された数だけを保存する。数回の入力及び修正がウェブページ上の編集ボックスでなされた場合、編集ボックスに対応する変更エントリは、最後の修正後の内容だけを保存する。１つのデータベーストランザクションは数個のデータベース演算を含み得るので、演算に対応するイベントの属性中の旧値（ｏｌｄＶａｌｕｅ）は、データベーストランザクションが実行される前のレコード値であって、あるデータベース演算が実行される前のレコード値ではないことに留意されたい。データベーストランザクションが実行される前のレコード値は、データベーストランザクション中の最初のデータベース演算の前のレコード値である。例えば、１つのデータベーストランザクションは、あるレコードへの２つの更新演算を実行し、データベースイベントの属性が生成されるときに結合された演算を処理する。換言すれば、変更エントリは、レコードの最後の演算だけを含むので、結合された演算に対し、対応する変更エントリの旧値（ｏｌｄＶａｌｕｅ）として、最後の更新演算の前のレコード値を取ることが誤りであることは明らかである。
【００５６】
電子商取引ウェブアプリケーションを例にとると、ブラウザは、ページ上に買い物かご（又はショッピングカート）内の選択したアイテムのリストを表示し、次いで、このウェブサイトと別のウェブページが、特定の商品を示すために開かれ、次いで、買い物かごに追加するボタンがクリックされる。このようにして、最適なソリューションは、アイテムのリストを自動的にリフレッシュし、ユーザによって新たに追加がなされた買い物かごを買い物かごページに表示する。本発明の実施形態は、以下のように実施されてよい。
【００５７】
買い物かごのコンテンツレコードは、ローカルウェブデータベースに格納され、データベースイベント（ｄａｔａｂａｓｅ）は、（図３のページＡに対応する）商品表示ページで製品が買い物かごに追加されたときに生成される。換言すれば、ウェブアプリケーションは、データベース追加操作を実行する。
【００５８】
データベースイベントは、（図３のページＢに対応する）買い物かごページで監視され、次いで、買い物かご中のアイテムのリストは、イベントハンドリング機能で更新される。ウェブアプリケーションは、データベースにアクセスすることなく、データベースイベントから新たに追加されたデータエントリの新コンテンツ値を直接取得でき、新たな商品情報を買い物かご中のアイテムリストに直接に追加して、ページＡとページＢとの間の同期性を保つことができる。
【００５９】
ブラウザの用語において、ブラウザの構成要素は、１つのウェブアプリケーションの異なるページに限定されず、複数のウェブアプリケーション間のデータの変更内容を取得すること、例えば、２つの同一のウェブアプリケーション間のデータの変更内容を取得すること、又は２つの異なるウェブアプリケーション間のデータの変更内容を取得することに関係してよい。明細書中でのウェブアプリケーションは、ブラウザのあるプラグイン、ブラウザによって生成されるページのあるオブジェクト、又はブラウザ自体の構成部分であってよい。図６は、第１ウェブアプリケーションのデータの変更内容を取得する第２ウェブアプリケーションの情報伝達の概略図であり、以下のプロセスを含む。
【００６０】
ステップＳ２０１：第１ウェブアプリケーションの演算リクエストを取得し、演算リクエストに従ってウェブデータベースへの演算を遂行する。ここで、第１ウェブアプリケーション及び第２ウェブアプリケーションは、ブラウザ上で動作する。
【００６１】
ステップＳ２０２：ウェブデータベースに遂行された演算に従ってデータベースイベントを生成する。データベースイベントは、第２ウェブアプリケーションによって監視される。
【００６２】
ステップＳ２０３：第２ウェブアプリケーションは、データベースイベントの生成を検出したときに、データベースイベントの属性からデータベースの変更された内容を取得する。
【００６３】
この実施形態により、第２ウェブアプリケーションが、第１ウェブアプリケーションの演算リクエストが遂行された後に生成されるデータベース時間を監視し、第１ウェブアプリケーションと第２ウェブアプリケーションとの間のやりとりを削減し、データ演算の独立性を向上させることが達成される。図７は、本発明の一実施形態による、ブラウザによるデータベースイベント生成の詳細な処理ステップを説明するものであり、図６に示された方法の特定の応用形態である。この実施形態において、ウェブアプリケーションの１つ以上の演算リクエストの集合は、データベーストランザクションと称される。
【００６４】
ステップＳ３０１：ブラウザは、第１ウェブアプリケーションの演算リクエストを取得し、演算リクエストに従ってウェブデータベーストランザクションを生成し、ウェブデータベーストランザクション中のウェブデータベースへのさまざまな演算を遂行する。
【００６５】
ステップＳ３０２：ウェブデータベーストランザクションが正しく遂行されたか否かを判定する。正しく遂行されていない場合、ステップＳ３０９に進んでウェブデータベーストランザクションのロールバックを実行する。正しく遂行された場合、ステップＳ３０３に進む。
【００６６】
ステップＳ３０３：データベーストランザクション中のデータベースイベントパラメータを解析する。
【００６７】
ステップＳ３０４：データベースイベントを生成するか否かを判定する。生成する場合、ステップＳ３０５を実行し、生成しない場合、ステップＳ３０８を実行する。
【００６８】
ステップＳ３０５：ウェブデータベースに遂行された演算に従ってデータベースイベントの属性を生成する。
【００６９】
ステップＳ３０６：データベースイベントを生成する。
【００７０】
ステップＳ３０７：第２ウェブアプリケーションは、データベースイベントの生成を検出し、次いで、データベースイベントの属性からデータベースに関連する内容を取得する。
【００７１】
ステップＳ３０８：データベースイベントを抑止する。換言すれば、データベースイベントを生成しない。
【００７２】
ブラウザは、データベーストランザクション中の演算内容を解析し、データベースイベントの対応する属性を生成する。１つのデータベーストランザクションは、さまざまなデータベース演算に加えて、同一のレコードに実行された複数の演算も含んでよく、結合されて処理されてよい。それにより、生成されたデータベースイベントの属性の内容を単純化すると同時に、データベースの変更に正確に対応させる。図８に示されるように、上記のステップＳＳ３０５は、本発明の一実施形態による以下のサブステップをさらに含む。
【００７３】
ステップＳ４０１：ウェブアプリケーションに遂行された演算の内容を解析する。
【００７４】
ステップＳ４０２：演算内容がクリア演算を含むか否かを判定する。含まない場合、ステップＳ４０４を実行し、すべてのデータベース演算を解析する。含む場合、ステップＳ４０３を実行し、クリア演算が実行されたデータベース、テーブル、又はエントリについては、最後のクリア演算の後に、データベース、テーブル、又はエントリへのデータベース演算だけを解析し、クリア演算の前のデータベース演算の解析は行わない。
【００７５】
ステップＳ４０５：演算を結合し、２つ以上の演算を有するレコードについては、レコードの最後の演算だけを解析する。
【００７６】
ステップＳ４０６：結合された演算を１つずつ解析する。演算タイプがクリアであった場合、ステップＳ４０７実行し、対応する変更エントリのキー値、新レコード値、及び旧レコード値は、すべてヌルとなる。演算タイプが削除であった場合、ステップＳ４０８を実行し、対応する変更エントリのキー値は、削除されたレコードのキー値となり、かつ対応する変更エントリの旧レコード値は、削除されたレコードのレコード値となる。演算タイプが追加であった場合、ステップＳ４０９を実行し、対応する変更エントリのキー値は、追加されたレコードのキー値となり、かつ対応する変更エントリの新レコード値は、追加されたレコードのレコード値となる。演算タイプが更新であった場合、ステップＳ４１０を実行し、対応する変更エントリのキー値は、更新されたレコードのキー値となり、対応する変更エントリの新レコード値は、更新されたレコードの新レコード値となり、かつ対応する変更エントリの旧レコード値は、更新されたレコードの旧レコード値となる。
【００７７】
未解析の演算が存在する場合、ブラウザは、ステップＳ４０６を引き続き実行し、未解析の演算が存在しない場合、ステップＳ４１１を実行して、上記で取得した変更エントリを含むようにデータベースイベントの属性を生成する。
【００７８】
この実施形態において、クリア演算の判定及び処理は、データベース演算のレコードに単純に追加され、データベース演算のレコードは、データベースイベントの属性を正確に生成するよう、結合されて処理され、最後のデータベース演算を取得する。
【００７９】
好ましくは、ステップＳ３０５は、ウェブデータベースを記述する変更情報だけを記録してよい。変更情報は、データベース名と、テーブル名と、ウェブアプリケーションの演算リクエストに従ってデータベースにおいて演算がなされる変更エントリ中の要素の識別子とを含む。ここで、変更エントリ中の要素の識別子は、キー値に対応する識別子と、新レコード値に対応する識別子と、旧レコード値に対応する識別子とを含む。図４に示されるように、旧レコード値に対応する識別子は、ｏｌｄＶａｌｕｅｓであり、旧レコード値は、ｏｌｄＶａｌｕｅｓの実際の値である。したがって、ステップＳ３０７は、以下の演算を実行する。すなわち、第２ウェブアプリケーションは、ウェブデータベース中のデータベースイベントの属性に対応するコンテンツ演算を実行する。この演算は、ウェブデータベース中のデータベースイベントの属性に対応するコンテンツを単純に取得する動作であってよい。
【００８０】
時間処理コンポーネントが異なる登録済みオブジェクトを有し、かつ送信方法が異なる場合を除き、同一のブラウザ上の２つのアプリケーション間のデータベースイベントの監視と、同一のアプリケーションの２つページの監視との両方は、他の態様の同一のモードに適用されてよく、その詳細を明細書中で繰り返して説明することは省略する。
【００８１】
本発明の実施形態において、コンピュータ読み取り可能な記憶媒体が命令を格納してよい。命令がコンピュータによって実行されるときに、コンピュータは、ウェブアプリケーションにデータベースの変更内容を取得させるための方法を実行する。
【００８２】
以上、本発明の実施形態について記載したが、そのような記載は、本発明の特許請求の範囲を限定することを意図しない。発明の詳細な説明及び添付の図面に対するすべての均等な構造物又は均等なフロープロセス変形物、又は、他の関連する技術分野における直接的な又は間接的な応用もまた、本発明の保護範囲内にある。
【符号の説明】
【００８３】
１００  コンピューティング環境
１０１，２０１  ブラウザ
１０２  ウェブデータベース
１０３，２０３  ウェブアプリケーション
１０４，２０４  データベース処理コンポーネント
１０５，２０５  イベント処理コンポーネント
１０６  ＣＰＵ
２０２  データベースイベント監視オブジェクト
２０６  データベースイベントハンドリング機能
【図１】
2015534692.tif 000003
【図２】
2015534692.tif 000004
【図３】
2015534692.tif 000005
【図４】
2015534692.tif 000006
【図５】
2015534692.tif 000007
【図６】
2015534692.tif 000008
【図７】
2015534692.tif 000009
【図８】
2015534692.tif 000010
【手続補正書】
【提出日】平成27年5月8日(2015.5.8)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
第１態様に従う実現可能な第２実施モードにおいて、データベースイベントの属性は、ウェブデータベースについて記述した変更情報を含む。ここで、変更情報は、データベース名と、テーブル名と、ウェブアプリケーションの演算リクエストに従ってウェブデータベースに適用された変更エントリとを含む。ウェブアプリケーションにより、データベースイベントの属性からデータベース変更内容を取得することは、ウェブアプリケーションにより、データベースイベントの属性からデータベース名、テーブル名、及び変更エントリを取得し、ウェブデータベース変更内容を決定することを含む。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
第２態様に従う実現可能な第１実施モードにおいて、データベースイベントの属性は、ウェブデータベースについて記述した変更情報を含む。ここで、変更情報は、データベース名と、テーブル名と、第１ウェブアプリケーションの演算リクエストの演算対象である変更エントリとを含む。第２ウェブアプリケーションにより、データベースイベントの属性からデータベース変更内容を取得するステップは、第２ウェブアプリケーションにより、データベースイベントの属性からデータベース名、テーブル名、及び変更エントリを取得し、ウェブデータベース変更内容を決定するステップを含む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
演算タイプがクリア（Ｃｌｅａｒ）である場合、対応する変更エントリのキー値、新レコード値、及び旧レコード値は、すべてヌルとなる。演算タイプが削除（Ｄｅｌｅｔｉｏｎ）である場合、対応する変更エントリのキー値が削除されたレコードのキー値となり、かつ対応する変更エントリの旧レコード値が削除されたレコードのレコード値となる。演算タイプが追加（Ａｄｄｉｔｉｏｎ）である場合、対応する変更エントリのキー値が追加されたレコードのキー値となり、かつ対応する変更エントリの新レコード値が追加されたレコードのレコード値となる。演算タイプが更新（Ｕｐｄａｔｅ）である場合、対応する変更エントリのキー値が更新されたレコードのキー値となり、対応する変更エントリの新レコード値が更新されたレコードの新レコード値となり、かつ対応する変更エントリの旧レコード値が更新されたレコードの旧レコード値となる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
この実施形態により、第２ウェブアプリケーションが、第１ウェブアプリケーションの演算リクエストが遂行された後に生成されるデータベースイベントを監視し、第１ウェブアプリケーションと第２ウェブアプリケーションとの間のやりとりを削減し、データ演算の独立性を向上させることが達成される。図７は、本発明の一実施形態による、ブラウザによるデータベースイベント生成の詳細な処理ステップを説明するものであり、図６に示された方法の特定の応用形態である。この実施形態において、ウェブアプリケーションの１つ以上の演算リクエストの集合は、データベーストランザクションと称される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００８０
【補正方法】変更
【補正の内容】
【００８０】
イベント処理コンポーネントが異なる登録済みオブジェクトを有し、かつ送信方法が異なる場合を除き、同一のブラウザ上の２つのアプリケーション間のデータベースイベントの監視と、同一のアプリケーションの２つページの監視との両方は、他の態様の同一のモードに適用されてよく、その詳細を明細書中で繰り返して説明することは省略する。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ウェブアプリケーションにデータベースの変更内容を取得させるためのシステムであって、
ブラウザと、
ウェブデータベースと、
前記ブラウザ上で動作するウェブアプリケーションと
を含み、
前記ブラウザは、
前記ウェブアプリケーションの演算リクエストを取得し、前記演算リクエストに従って前記ウェブデータベースへの演算を遂行するように構成されたデータベース処理コンポーネントと、
前記ウェブデータベースに遂行された前記演算に従ってデータベースイベントを生成するように構成されたイベント処理コンポーネントと
を含み、
前記データベースイベントは、前記ウェブアプリケーションによって監視され、
前記ウェブアプリケーションは、前記データベースイベントの生成を検出したとき、前記データベースイベントの属性からデータベース変更内容を取得する、システム。
【請求項２】
前記ウェブアプリケーションが、第１ページと、第２ページとを含み、
前記演算リクエストが、前記ウェブアプリケーションの前記第１ページから生じ、
前記ウェブアプリケーションが、前記データベースイベントの生成を検出したとき、前記データベースイベントの前記属性から前記データベース変更内容を取得し、前記第２ページ内の前記データベース変更内容に関連する部分に同期処理を実行する、請求項１に記載のシステム。
【請求項３】
前記データベースイベントの前記属性が、前記ウェブデータベースについて記述した変更情報を含み、
前記変更情報は、
データベース名と、
テーブル名と、
前記ウェブアプリケーションの前記演算リクエストに従って前記ウェブデータベースに適用された変更エントリと
を含み、
前記ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベース変更内容を取得することが、
前記ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベース名、前記テーブル名、及び前記変更エントリを取得し、前記データベース変更内容を決定することを含む、請求項１又は２に記載のシステム。
【請求項４】
前記変更エントリが、データレコードの演算タイプ、キー値、新レコード値、又は旧レコード値のうちの１つ以上を含む、請求項３に記載のシステム。
【請求項５】
前記変更エントリが、前記演算タイプとして、クリア、削除、追加、及び変更のうちの１つを少なくとも含み、
前記演算タイプがクリアである場合、対応する変更エントリの前記キー値、前記新レコード値、及び前記旧レコード値はすべてヌルとなり、
前記演算タイプが削除である場合、対応する変更エントリの前記キー値は削除されたレコードのキー値となり、かつ対応する変更エントリの前記旧レコード値は前記削除されたレコードのレコード値となり、
前記演算タイプが追加である場合、対応する変更エントリの前記キー値は追加されたレコードのキー値となり、かつ対応する変更エントリの前記新レコード値は前記追加されたレコードのレコード値となり、
前記演算タイプが更新である場合、対応する変更エントリの前記キー値は更新されたレコードのキー値となり、対応する変更エントリの前記新レコード値は前記更新されたレコードの新レコード値となり、かつ対応する変更エントリの前記旧レコード値は前記更新されたレコードの旧レコード値となる、請求項４に記載のシステム。
【請求項６】
前記ブラウザ上で動作する前記ウェブアプリケーションの前記演算リクエストが格納演算である場合、前記ブラウザの前記データベース処理コンポーネントにより、前記演算リクエストに従って前記ウェブデータベースへの前記演算を遂行することが、
前記ブラウザの前記データベース処理コンポーネントにより、
前記演算中の前記データベース名、前記テーブル名、及び前記キー値に従って、前記データベース名、前記テーブル名、及び前記キー値と同一のデータベース名、同一のテーブル名、及び同一のキー値を有したレコードが前記ウェブデータベースに既に存在するか否かをチェックし、
当該レコードが既に存在する場合、前記格納演算をエントリ更新動作に変更することを決定し、
当該レコードが存在しない場合、前記格納演算をエントリ追加動作に変更することを決定することを含む、請求項５に記載のシステム。
【請求項７】
前記変更エントリが、対応するデータベース演算の時系列順に整列され、
前記ウェブアプリケーションの前記演算リクエストで、１つのレコードに２つ以上の演算が実行される場合、当該レコードに対しては、前記変更エントリは、前記２つ以上の演算のうちの最後の演算だけを含む、請求項５に記載のシステム。
【請求項８】
前記ブラウザ上で動作する前記ウェブアプリケーションが、ウィンドウ、ドキュメント、ボディ、又はデータベースオブジェクトのうちの１つを使用して前記データベースイベントを監視する、請求項１ないし７のいずれか１項に記載のシステム。
【請求項９】
ブラウザ、ウェブデータベース、第１ウェブアプリケーション、及び第２ウェブアプリケーションを含む環境で用いられる、ウェブアプリケーションにデータベースの変更内容を取得させるための方法であって、
前記第１ウェブアプリケーションの演算リクエストを取得し、前記演算リクエストに従って前記ウェブデータベースへの演算を遂行するステップであって、前記第１ウェブアプリケーション及び前記第２ウェブアプリケーションが前記ブラウザ上で動作する、ステップと、
前記ウェブデータベースに遂行された前記演算に従ってデータベースイベントを生成するステップであって、前記データベースイベントが前記第２ウェブアプリケーションによって監視される、ステップと、
前記第２ウェブアプリケーションにより、前記データベースイベントの生成が検出されたとき、前記データベースイベントの属性からデータベース変更内容を取得するステップと
を有する方法。
【請求項１０】
前記データベースイベントの前記属性が、前記ウェブデータベースについて記述した変更情報を含み、
前記変更情報は、
データベース名と、
テーブル名と、
前記第１ウェブアプリケーションの前記演算リクエストの演算対象である変更エントリと
を含み、
前記第２ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベース変更内容を取得するステップが、
前記第２ウェブアプリケーションにより、前記データベースイベントの前記属性から前記データベース名、前記テーブル名、及び前記変更エントリを取得し、前記データベース変更内容を決定するステップを含む、請求項９に記載の方法。
【請求項１１】
前記変更エントリが、データレコードの演算タイプ、キー値、新レコード値、又は旧レコード値のうちの１つ以上を含む、請求項１０に記載の方法。
【請求項１２】
前記変更エントリが、前記演算タイプとして、クリア、削除、追加、及び変更のうちの１つを少なくとも含み、
前記演算タイプがクリアである場合、対応する変更エントリの前記キー値、前記新レコード値、及び前記旧レコード値はすべてヌルとなり、
前記演算タイプが削除である場合、対応する変更エントリの前記キー値は削除されたレコードのキー値となり、かつ対応する変更エントリの前記旧レコード値は前記削除されたレコードのレコード値となり、
前記演算タイプが追加である場合、対応する変更エントリの前記キー値は追加されたレコードのキー値となり、かつ対応する変更エントリの前記新レコード値は前記追加されたレコードのレコード値となり、
前記演算タイプが更新である場合、対応する変更エントリの前記キー値は更新されたレコードのキー値となり、対応する変更エントリの前記新レコード値は前記更新されたレコードの新レコード値となり、かつ対応する変更エントリの前記旧レコード値は前記更新されたレコードの旧レコード値となる、請求項１１に記載の方法。
【請求項１３】
前記ブラウザ上で動作する前記第１ウェブアプリケーションの前記演算リクエストが格納演算である場合、前記演算リクエストに従って前記ウェブデータベースへの前記演算を遂行するステップが、
前記演算中の前記データベース名、前記テーブル名、及び前記キー値に従って、前記データベース名、前記テーブル名、及び前記キー値と同一のデータベース名、同一のテーブル名、及び同一のキー値を有したレコードが前記ウェブデータベースに既に存在するか否かをチェックするステップと、
当該レコードが既に存在する場合、前記格納演算をエントリ更新動作に変更することを決定するステップと、
当該レコードが存在しない場合、前記格納演算をエントリ追加動作に変更することを決定するステップと
を含む、請求項１２に記載の方法。
【請求項１４】
データベースイベントパラメータに従って、データベーストランザクションが正しく遂行された後にデータベースイベントを生成するか否かが決定されるように、前記第１ウェブアプリケーションの前記演算リクエストで前記データベースイベントパラメータを伝送するステップをさらに有する、請求項９ないし１３のいずれか１項に記載の方法。
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2015534692.tif 000011
【国際調査報告】
2015534692.tif 000012
2015534692.tif 000013
2015534692.tif 000014
2015534692.tif 000015
2015534692.tif 000016
2015534692.tif 000017