JP2005533324A - モバイルアプリケーション用データをキャッシュするためのシステムおよび方法 - Google Patents

モバイルアプリケーション用データをキャッシュするためのシステムおよび方法 Download PDF

Info

Publication number
JP2005533324A
JP2005533324A JP2004523026A JP2004523026A JP2005533324A JP 2005533324 A JP2005533324 A JP 2005533324A JP 2004523026 A JP2004523026 A JP 2004523026A JP 2004523026 A JP2004523026 A JP 2004523026A JP 2005533324 A JP2005533324 A JP 2005533324A
Authority
JP
Japan
Prior art keywords
data
cache table
result set
database
data source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004523026A
Other languages
English (en)
Other versions
JP4448444B2 (ja
Inventor
アハド,ラフィウル
チェン,ジェリー
キビレフ,オレグ
プラカシュ,ラビンドラ
レーマン,サミュエルソン
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2005533324A publication Critical patent/JP2005533324A/ja
Application granted granted Critical
Publication of JP4448444B2 publication Critical patent/JP4448444B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

キャッシュテーブルは、1組のアクセスパラメータと1組のデータ列とを含む。キャッシュテーブルの1つ以上のインスタンスがモバイルコンピューティング機器に記憶される。各インスタンスは、引数(アクセスパラメータについての一意的な1組の値)と、結果セット(データ列についての1組の値)とを含む。このため、結果セットの各結果は、引数と対応する列値とを含む。キャッシュされた結果セットは有効性の特定された期間を有しており、無効となった後で使用可能となってもよく、ならなくてもよい。データソース(たとえばデータまたはアプリケーションサーバ)にとって接続が利用可能であるか否かにかかわらず、キャッシュされた有効なデータは使用されてもよい。データソースにとって接続が利用可能でない場合、無効データが或る期間使用されてもよい。キャッシュテーブル内のデータは、ローカルデータベース全体と同期することなく、データソースから選択的に更新されてもよい。

Description

背景
この発明はコンピュータシステムの分野に関する。より特定的には、モバイル機器にデータをキャッシュするためのシステムおよび方法が提供される。
モバイル機器(たとえばラップトップコンピュータ、携帯情報端末、携帯電話)上で動作するアプリケーションは一般に、オンライン使用またはオフライン使用のいずれかのために設計されてきた。双方のタイプのモバイルアプリケーションは、ユーザと対話するために或る種のブラウザを使用する傾向にある。オンラインアプリケーションは、企業サーバ(たとえば中央データベースサーバ)への連続的なアクセスを享受する。これに対し、オフラインアプリケーションは、企業サーバとは最小限の接触で、または全く接触せずに動作する。
より具体的には、オンラインモバイルアプリケーションは、必要であればいつでも企業サーバ上のデータにアクセスすることができ、それにより、データをローカルに記憶する必要性をおそらくなくす。しかしながら、オンラインモバイルアプリケーションの「常時接続された」性質のため、(たとえば無線通信時間に対する)接続費はかなり高くなり得る。
また、オンラインモバイルアプリケーションは一般に、予測不能な待ち時間を被る。オンラインアプリケーションがサーバに要求を送信すると、応答時間は、サーバでの任意の輻輳に加え、モバイル機器の無線ネットワークの使用レベルに依存する。さらに、オンラインアプリケーションの使用は、無線ネットワークの範囲に依存して地理的に制限される場合があり、場所によっては(たとえば飛行機、病院)禁止される場合がある。
さらに、オンラインモバイルアプリケーションはしばしば、ウェブページ全体、データテーブルといった、セットになったデータにアクセスする。或るデータ項目を置き換える必要がある場合、その1つの項目のみを置き換えるというよりもむしろ、そのデータセット全体が置き換えられる場合がある。これは非効率的で、アプリケーションを動作させるコストを増加させる可能性がある。
モバイルアプリケーションがセットになったデータ(たとえばウェブページ全体)にアクセスしがちである1つの理由は、データがデータのプレゼンテーションと緊密に結びついていることにある。特に、データがモバイルアプリケーション用にクライアント機器にコピーまたはダウンロードされる場合、データの各集合(たとえばテーブル、1組のデータベース行またはフィールド)は通常、それが表示されるページ内で伝搬される。このため、そのページを除いてデータをクライアント上に表示することはできない。データの各セットまたは集合が表示ページ全体とともに記憶され、それらのカプセル化されたデータを除いて多くのページが同一であるかもしれないために、クライアント上の多くのストレージが浪費される場合がある。
オンラインアプリケーションとは対照的に、オフラインモバイルアプリケーションは、企業サーバにより維持されるデータへの連続的なアクセスを享受していない。企業サーバからの或るデータ(たとえばスナップショット)は、モバイル機器上にコピーされるかまたは複製される場合がある。オフラインアプリケーションは(たとえばサーバからオフラ
インである場合に)常に使用可能であり得るものの、常に新鮮なデータを有しているとは限らず、それにコピーされたデータにアクセスすることしかできない。
データスナップショットを使用するよう構成されたオフラインモバイルアプリケーションは普通、時々または定期的に(たとえば1日に1回)その記憶されたオフラインデータを企業サーバと同期させる必要がある。同期の頻度は一般に、データ項目がモバイル機器上でアクセスまたは修正される頻度とは無関係である。このため、多くのトランザクションまたは動作が古いデータを用いてモバイル機器上で実行される場合がある。そして、変更されたことがなくリフレッシュされる必要がないデータでさえ、大量のデータがしばしば交換されるため、同期は大きいオーバーヘッドを必然的に伴う場合がある。たとえば、或るページのたった1つのデータ項目を更新する必要がある場合ですら、ウェブページ全体またはウェブページのセットがダウンロードまたは交換される場合がある。
オフラインモバイルアプリケーションは、データ同期が頻繁には起こらないため、非常に動的なデータでの使用には適さない。加えて、オフラインモバイルアプリケーションはしばしば、同期を容易にするために、アプリケーションによってなされたすべてのデータ変更のトランザクションログを保持する必要がある。
一般に、モバイルアプリケーションで使用されるモバイル機器に記憶された企業データは、さまざまな寿命を有する場合がある。長期間有効なデータポイントまたは項目(たとえば製品説明、アドレス)もあれば、ほんの比較的短期間の後で無効になるデータポイントまたは項目(たとえば株価、通貨変換レート)もある。既存のモバイルアプリケーションおよびクライアントデータベースは通常、ダウンロードされたデータの寿命を認識または検討するよう構成されてはいない。
さらに、ユーザに多大な機能性を与えようと試みるモバイルクライアントアプリケーションは、頑強なソフトウェアおよび/またはハードウェアコンフィギュレーション(たとえばJava(登録商標)仮想マシン、HTTPリスナ、サーブレットエンジン)を必要とする傾向にある。そのような要件は、携帯情報端末(PDA)またはスマート電話といったより小さくより抑制されたクライアント機器の使用を妨げ、また、クライアント動作にオーバーヘッドを追加する。
要約
この発明の一実施例では、第三世代の無線ネットワークまたは他の企業ネットワークで使用されるよう構成されたモバイル(たとえば無線)機器上で実行されるアプリケーションで使用されるデータのきめ細かいキャッシングのためのシステムおよび方法が提供される。この実施例では、機器は、データの中央ソースまたはマスタソース(たとえばデータサーバ、ウェブサーバまたはアプリケーションサーバ)に常にアクセスする必要はなく、キャッシュされたデータをオンラインモードまたはオフラインモードで使用することができる。モバイル機器上でキャッシュされるデータは必要に応じて選択的にリフレッシュされ得るため、機器とデータソースとの間での伝統的な同期動作は不必要である。このため、動作の双方のモードの利点(たとえば新鮮なデータ、許容可能な接続費)が得られる。
この発明の一実施例では、データは、モバイル機器のローカルDBMS(データベース管理システム)の一部として実現されたキャッシュテーブルにキャッシュされる。この実施例では、キャッシュテーブルとは、その内容(たとえば行)が必要に応じてサーバから検索され、内容に関連するキャッシュ制御命令に従ってローカルにキャッシュされるテーブルである。キャッシュテーブルの列(または属性)のサブセットは、キャッシュテーブ
ルの「アクセスパラメータ」として指定される。データをキャッシュテーブルから検索するために、アクセスパラメータの各々に対して或る値が提供される。これらの値は、キャッシュテーブルの1つのインスタンスについての引数を構成する。これらの引数値を有する行がローカルデータベースにない場合、または期限切れになった場合、DBMSはその行を検索しキャッシュするために対応するサーバに接触する。
たとえば、キャッシュテーブルが或る特定の部品番号に応じてさまざまな倉庫立地についての在庫数を報告するよう構成されている場合、キャッシュテーブルの列は、部品番号、倉庫番号、および対応する倉庫に保管された部品の量を含むかもしれない。照会の一部として供給される部品番号は、キャッシュテーブルについてのアクセスパラメータであるかもしれない。一意的な各部品番号に対し、キャッシュテーブルの別個のインスタンスは、各倉庫に保管された部品の量を報告する1組の行(結果セット)を含む。
この発明の一実施例では、データキャッシング方針をキャッシュテーブル内にカプセル化することにより、データキャッシングはアプリケーション論理から分けられる。これは、アプリケーション論理の一部としてキャッシング方針を符号化しなければならないことからアプリケーション開発者を解放し、データベース管理者がキャッシング方針を定義できるようにする。
この発明の別の実施例では、キャッシュテーブルのデータおよびトランザクショナルな意味論を、データベーストランザクションのACID(原子性、一貫性、独立性および永続性)特性と一貫性があるように定義するアルゴリズムが提供される。特に、キャッシュテーブルに記憶されたデータは関連する有効期間を有しており、それは、データを得たデータソースによって特定されるかもしれない。データはまた、サーバへの接続が利用不可能な場合、データが無効となった後で使用されるかどうか、およびどのくらいの期間使用されるかを示す、関連するキャッシュ制御情報も有するかもしれない。ローカルデータベース動作がキャッシュテーブルに影響を与えると、アルゴリズムが適用されて、キャッシュされたデータを使用するか、またはデータソースからデータをリフレッシュしようとするかを判断する。アルゴリズムは、接続がデータソースにとって利用可能かどうか、データが同じまたは別のトランザクションによってロックされているかどうか、データが無効かどうか、関連するキャッシュ制御情報によりデータが無効であっても使用できるようになっているかどうかなどを検討するかもしれない。
例示的には、この発明の一実施例は、モバイル機器およびアプリケーションがローカルデータにオフラインでアクセスし、必要に応じて特定のデータ(たとえばキャッシュテーブル結果セット)を選択的にリフレッシュすることができるようにする。その結果、(たとえばデータソースへの)接続費、および古いデータの使用が最小限に抑えられる。そして、キャッシュテーブルがテーブルであるため、すべてのモバイルデータベースアプリケーションは、追加コードをアプリケーション論理で書く必要なくキャッシュテーブルによって与えられる恩恵を得ることができる。
詳細な説明
以下の説明は、当業者がこの発明を成し、用いることを可能にするために提示されており、この発明の特定の用途およびそれらの要件の状況において提供される。開示された実施例へのさまざまな修正は当業者には容易に明らかであり、ここに定義された一般原理はこの発明の範囲から逸脱することなく他の実施例および用途に適用されてもよい。このため、この発明は示された実施例に限定されるよう意図されてはおらず、ここに開示された原理および特徴と一貫性のある最も幅広い範囲が与えられるべきである。
この発明のこの実施例が実行されるプログラム環境は、例示的には、汎用コンピュータ、または、モバイルコンピュータ、PDA(携帯情報端末)、電話といった特定用途機器を実現する。そのような機器の詳細(たとえばプロセッサ、メモリ、データストレージ、ディスプレイ)は明瞭にするために省略され得る。
また、この発明の手法がさまざまな技術を用いて実現され得ることも理解されるべきである。たとえば、ここに説明される方法は、コンピュータシステム上で実行されるソフトウェアにおいて実現されてもよく、または、マイクロプロセッサの組合せ、もしくは他の特別に設計された特定用途向け集積回路、プログラマブル論理デバイスあるいはそれらのさまざまな組合せのいずれかを利用するハードウェアにおいて実現されてもよい。特に、ここに説明される方法は、好適なコンピュータ読み取り可能な媒体上に存在する一連のコンピュータにより実行可能な命令によって実現されてもよい。好適なコンピュータ読み取り可能な媒体は、揮発性(たとえばRAM)および/または不揮発性(たとえばROM、ディスク)メモリ、搬送波、および通信媒体(たとえば銅線、同軸ケーブル、光ファイバ媒体)を含んでいてもよい。例示的な搬送波は、ローカルネットワーク、インターネットなどの公的にアクセス可能なネットワーク、または他の通信リンクに沿ってデジタルデータストリームを伝搬する電気信号、電磁信号または光信号の形を取ってもよい。
序文
この発明の一実施例では、モバイル機器上での、機器で実行されるアプリケーションにより使用されるデータのきめ細かなキャッシングのためのシステムおよび方法が提供される。この実施例では、アプリケーションデータは、キャッシュされたデータの有効性および/または使用可能性を監視するよう構成された1つ以上のキャッシュテーブルを含むデータベース(たとえばDBMS)に記憶される。
この実施例では、キャッシュテーブルは、1つ以上のデータ行をキャッシュするだけでなく、データの有効性、データの新鮮なコピーをどこでまたはどのように入手するか、などを説明するキャッシュ制御情報も記憶しており、またはその情報にも関連している。アプリケーションがキャッシュテーブルにアクセスすると、ローカルDBMSは所望のデータを検査し、まだ有効であればそれを供給する。キャッシュされたデータがもはや有効ではない場合、ローカルDBMSは、サーバへの接続が利用可能であればサーバから更新されたデータを要求する。単一の(無効な)データ行を更新するために大きな1組のデータを検索する代わりに、その行だけが検索され得る。
この発明の一実施例では、キャッシュテーブルは、データソース(たとえば企業サーバ、データベースサーバ、ウェブサーバ、アプリケーションサーバ)から必要に応じて検索され、ローカル(たとえばモバイル)機器に記憶され得るデータのデータベーステーブルである。サーバと機器との間の通信は、HTTP(ハイパーテキスト転送プロトコル)、SOAP(シンプルオブジェクトアクセスプロトコル)、WAP(ワイヤレスアクセスプロトコル)などの任意の好適なプロトコルを採用してもよい。データソースをホストするサーバは、ここに説明されるキャッシュテーブル仕様と関連するインターフェイスを実現するよう、CGI(共通ゲートウェイインターフェイス)プログラム、サーブレット、アプレット、Java(登録商標)方法または他のモジュールを実行するよう構成されてもよい。
この発明の一実施例では、キャッシュテーブルはデータベースプログラミングモデルと互換性があり、そのためモバイルアプリケーションは、ODBC(オープンデータベースコネクティビティ)またはJDBC(Java(登録商標)データベースコネクティビティ)などの標準インターフェイスを介して、キャッシュされたデータにアクセスすることができる。キャッシュテーブルのローカルデータベースを使用するモバイルアプリケーション
はしたがって、通常のデータベースモデルおよびインターフェイスを用いて書くことができる。データベースは、そのキャッシュテーブルを介して、データ有効性を管理し、無効なデータについて更新を検索したりする。キャッシュテーブルのデータおよびトランザクショナルな意味論は、業界標準のトランザクショナルな意味論に従うよう設計されてもよい。
モバイル機器が企業サーバ(または他の中央/マスタデータソース)と常にアクティブに通信しているとは限らず、かつ、データ検索が無効なデータ項目のみに限定可能であるために、通信費を比較的低く保つことができる。そして、企業サーバに行なう必要があるアクセス数が限定されるために、予測不能な待ち時間から生じる不規則な動作はそれほど問題ではない。
この発明の別の実施例では、モバイルコンピューティング機器(たとえば個人情報端末(PDA)、ラップトップまたはノートブックコンピュータ、スマート電話)上で実行されるオフラインアプリケーションの動作を向上させるために、インテリジェントクライアントエージェントが提供される。この実施例では、クライアントエージェントは、オンラインアクセスを選択的に可能にし、アプリケーション内容をその内容のプレゼンテーションフォーマットから分けることによって、オフラインアプリケーションの動作を向上させる。内容とプレゼンテーションとは、アプリケーションページのプレゼンテーション記述またはフォーマットとは別に(たとえばキャッシュテーブル、スナップショットまたは正規のデータベーステーブルに)データを記憶することによって分けられてもよい。オフラインアプリケーションが或るページを必要とする場合、クライアントエージェントは、ローカルデータベースに記憶されたデータおよびプレゼンテーション記述からアプリケーションページを再構築する。クライアントエージェントは、オンライン化して有効データおよび/または古いデータを検索してもよく、クライアントエージェントはまた、サーバとのクライアントスナップショットの同期を容易にしてもよい。さらに、クライアントエージェントは、サーバが情報をクライアントキャッシュテーブルまたはデータベースに(たとえばプッシュリスナを用いて)プッシュできるようにし、また、クライアントアプリケーションとの音声ベースの対話をサポートしてもよい。
図1は、この発明の一実施例が実現され得る例示的なモバイルコンピューティング/通信環境を示している。この実施例では、企業サーバ150は、直接無線リンク130および/またはインターネットを含み得るネットワーク140を介してアクセス可能である。モバイル機器102a−102dのユーザはしたがって、サーバ150に、直接、または一連の通信リンクを介してアクセスする。ユーザのモバイル機器は、ラップトップまたは他のポータブルコンピュータ、PDA、電話、双方向ページャ、または他の機器であってもよい。
この発明の一実施例では、クライアントデータベースまたはDBMSは、任意のキャッシュテーブルに加え、サーバデータの1つ以上のスナップショットを含んでいてもよい。この実施例では、キャッシュテーブルは、データの有効性に関する情報とともに、(たとえばクライアント、任意の遠隔サーバまたは他のシステムなどの)どこにでも生じたかもしれないデータを記憶する。スナップショットは、サーバまたはサーバと明確に同期する他のソースからデータを記憶する。例示的には、スナップショットデータはオフラインの際には常に利用可能であり、一方、キャッシュテーブルは、データの有効性に依存して、オフラインで使用可能な場合もあれば使用できない場合もある。最後に、クライアントにより生成された、および/または使用されただけのデータを記憶するために、正規のデータベーステーブルが用いられてもよい。
キャッシュテーブルの概念
図2は、この発明の一実施例の実現に好適なモバイルクライアント機器のブロック図である。機器200は、モバイルアプリケーション210、データベース220、および通信モジュール230を含む。
モバイルアプリケーション210は、データベース220に記憶されたデータを使用または利用するアプリケーションである。データベース220は、アプリケーション210により使用される任意の種類のデータ(たとえば文字、数字、図表、映像)を記憶するよう構成されてもよい。データベース220は、キャッシュテーブル222といった、データをキャッシュするための1つ以上のキャッシュテーブルを含む。データベース220はまた、関連するキャッシュ制御情報224も含む。キャッシュテーブルおよびキャッシュ制御情報に関するさらなる詳細を、以下に提供する。
通信モジュール230は、データベース220にキャッシュされたデータの現在のバージョンまたはマスタバージョンを記憶するサーバまたはデータソースにアクセスするよう構成されている。このため、以下に説明するように、データベース220は、新規データ、新鮮なデータ、キャッシュされたデータへの更新などをダウンロードするために、通信モジュール230を介して定期的にサーバにアクセスしてもよい。通信モジュール230はデータベースによって直接動作されてもよく、または、データベースはアプリケーション210、オペレーションシステムまたは他のエンティティを介して通信モジュールにアクセスしてもよい。このため、通信モジュール230は、データベース220に加え、またはデータベース220の代わりに、モバイルアプリケーション210に結合されていてもよい。
ここに説明される発明の実施例では、データベース220は、オラクル・コーポレイション(Oracle Corporation)により提供される、オラクル9i LITE(ライト)などのDBMS(データベース管理システム)製品である。
この発明の一実施例では、キャッシュテーブルを<S,C,O,P>の形の4タプルによって特徴付けることができる。この形では、Sはキャッシュテーブルのスキーマまたは構造を定義し、Cはキャッシュテーブルに置かれた制約を定義し、Oは1組のサポートされた動作を表わし、Pは(たとえばモバイル機器がデータソースに接続されている場合、または間欠的に接続されている場合に)キャッシュテーブル内容を検索または更新するための1組のプロトコルを表わしている。
キャッシュテーブルスキーマ
この発明の一実施例では、キャッシュテーブルのスキーマSは、キャッシュテーブルの名前、キャッシュテーブルの構造を説明する列定義のリスト、およびアクセスパラメータのリストという3つのものによって定義される。キャッシュテーブル名はSQL(構造化照会言語)データベースのテーブル命名規則に準拠していてもよい。
列定義は識別子と関連するデータタイプとを含む。各識別子はキャッシュテーブルの列名に対応しており、列命名規則に従っていてもよい。アクセスパラメータリストは、キャッシュテーブルの列識別子のサブセットの順序付けられたリストである。
キャッシュテーブルスキーマSがキャッシュテーブルの構造を説明するため、それはキャッシュテーブルの各インスタンスの構造も定義する。この発明のこの実施例では、キャッシュテーブルインスタンスは、アクセスパラメータのアクセスパラメータ列について同一の値を有するキャッシュテーブルのすべての行を含む。引数は、キャッシュテーブルの各アクセスパラメータにつき1つの値のリストを含む。このため、インスタンスは、同じ引数を有するキャッシュテーブルの1組の行である。
キャッシュテーブルインスタンスの結果セットはインスタンスの1組の行を含み、各行はアクセスパラメータにはない列のリストを含む。つまり、結果セットは、キャッシュテーブルの非アクセスパラメータ列に対するキャッシュテーブルインスタンスの投影である。キャッシュテーブルの或る特定のインスタンスは、キャッシュテーブルの名前、次に対応する引数値によって示されてもよい。
図6は、この発明の一実施例に従った例示的なキャッシュテーブルを示している。在庫キャッシュテーブル600は、部品♯602、倉庫♯604、および手持ち量(QOH)606という3つの列を含む。このキャッシュテーブルでは、アクセスパラメータは部品♯602のみを含む。このため、値1234および値9876という2つの引数が示されている。
これら2つの引数に基づいて、在庫キャッシュテーブルの2つのインスタンスが示されている。一方のインスタンスは部品♯1234を有する3つの行を含み、他方は部品♯9876を有する2つの行を含む。アクセスパラメータの一部ではないキャッシュテーブル600の列は、これら2つのインスタンスについての結果セットを形成する。
この発明のこの実施例では、例示的なキャッシュテーブルは、以下のSQL(構造化照会言語)構文に従って定義されてもよい。
Figure 2005533324
この例示的なSQL構文を用いて、サンプルキャッシュテーブルが以下のように定義されてもよい。
Figure 2005533324
例示されたキャッシュテーブルのスキーマSは“Inventory(part♯char(4),warehouse char(8),qty number(10))”である。1つのアクセスパラメータがpart♯と特定される。キャッシュテーブルについての結果セットは1組の行を含み、その各々は
、倉庫識別子と倉庫に保管された特定の部品の量という2つの列を含む。以下のサブセクションは、このサンプルキャッシュテーブル定義の一部をさらに詳細に説明する。
一般に、キャッシュテーブルTについてのスキーマは、T(a1,…,am,r1,…,rn)として書かれてもよく、ここでTはキャッシュテーブル名であり、a1,…,amはアクセスパラメータのリストであり、r1,…,rnはキャッシュテーブル結果セット列である。このため、サンプルキャッシュテーブルは、Inventory(part♯,warehouse,qty)として表わされてもよい。
キャッシュテーブルのインスタンスはT(v1,…,vm)として書かれてもよく、ここでviはアクセスパラメータaiについての値である。このインスタンスでは、タプル<v1,…,vm>は或る特定のキャッシュテーブルインスタンスの引数を構成しており、対応する結果セットの各行は<r1,…,rn>の形である。結果セットの各行は別個の結果として考えられてもよい。「キャッシュテーブル」という用語はここでは、或る特定の構造(スキーマ)を有するキャッシュテーブル、またはそのキャッシュテーブルのインスタンスを指すために使用される。
キャッシュテーブルの1組のインスタンスは、そのキャッシュテーブルの「拡張」と呼ばれてもよい。キャッシュテーブルの拡張は、ローカルデータベースまたはDBMSに記憶されたキャッシュテーブルの全インスタンスを含むよう定義される。キャッシュテーブルTの拡張はE(T)と書かれてもよい。
1つのキャッシュテーブルについて、isValidおよびisUsableという2つの述語がその拡張の各行に関連して定義される。以下により詳細に説明するように、isValid述語は(たとえば照会実行の時点で)行が有効であるかどうかを判断するために使用され、一方、isUsableはその行が使用可能かどうかを判断するために使用されてもよい。例示的には、行が有効であればそれは使用可能であるが、それが無効であれば、それは使用可能であるかもしれないし、使用できないかもしれない。
この発明の一実施例では、キャッシュテーブルはSQLステートメントにおいて多数の方法で使用されてもよい。キャッシュテーブル名のみ(たとえばInventory)への参照は、キャッシュテーブルの拡張への参照として解釈される。このため、“Select*from Inventory”というSQLステートメントは、現在ローカルデータベースに記憶されているキャッシュテーブルInventoryの全インスタンスの全結果セットのすべての行を戻す。ローカルDBMSは、行の使用可能性の有効性についてチェックしないかもしれず、キャッシュテーブルインスタンスをリフレッシュしようとしないかもしれない。例示的には、この種の参照は照会に限定される場合があり、更新用には使用可能でないかもしれない。それはキャッシュテーブルの「汚れた読出」と考えられ得る。
アクセスパラメータ用の引数値(たとえば定数)のフルセットを含むキャッシュテーブルへの参照は、キャッシュテーブルの1つのインスタンスを戻す。このため、ステートメントSelect*from Inventory(‘P123’)は、部品番号‘P123’についての“part♯”、“warehouse”および“qty”データのテーブルを戻す。この種の参照では、ローカルDBMSは(以下に説明する)図3Aおよび図3Bに示すフローチャートを用いて、インスタンスを必要に応じてリフレッシュする。
SQLステートメント内でのキャッシュテーブルへの別の参照は、引数内に少なくとも1つの変数を含むかもしれない。(たとえば照会における)参照が有効である(つまり、値が変数と結合可能である)場合、この種の参照はキャッシュテーブルの1つ以上のインスタンスを戻す。このため、ステートメントSelect p♯,partName,warehouse,qty Fro
m part P,Inventory(P.p♯)を用いて、部品テーブルの部品番号についての在庫の結果セットを得ることができる。どの値も変数に結合できない場合、照会は無効と考えられる。この種の参照では、ローカルDBMSは図3Aおよび図3Bに示すフローチャートを用いて、インスタンスを必要に応じてリフレッシュする。
以上の例は、キャッシュテーブルアクセスパラメータが、別のキャッシュテーブルの結果セットを含む別のテーブルの列または式にいかに結合され得るかを実証している。例示的には、キャッシュテーブル列の十分に適格な列仕様は、以下のように、キャッシュテーブル名についてのエイリアスを使用してもよい。
Figure 2005533324
制約
この発明の一実施例では、任意のキャッシュテーブル拡張(つまりキャッシュテーブルインスタンスのセット)に対して制約が定義されてもよい。このため、キャッシュテーブルの列リストを用いてキャッシュテーブルに対する制約を定義することができる。たとえば、一次キー制約および外部キー制約は、(たとえばそれらが単一の属性キーであるならば)キャッシュテーブルの列の定義において定義されてもよく、または、キャッシュテーブル定義の制約部分における一次キーまたは外部キー句において定義されてもよい。
上に定義されたサンプルInventoryキャッシュテーブルは1つの制約、つまりpart♯およびwarehouseを含む一次キーを含んでいる。これは、所与のpart♯に対し、結果セットが多くの行または結果を含む場合があるものの、結果セットのどの2つの行も同じwarehouse値を持たないということを意味する。
キャッシュテーブルの制約Cを定義する場合、いくつかの選択肢がある。たとえば、単一の一次キーを、アクセスパラメータのすべての組合せとして、またはアクセスパラメータのすべてといくつかの結果セット識別子との組合せとして定義してもよい。例示的には、Inventoryキャッシュテーブルのアクセスパラメータ‘part♯’がキャッシュテーブルの一次キーとして定義された場合、‘part♯’の或る特定の値について戻されたデータは多くて単一の行を含み得る。これに対し、一次キーが‘part♯’と‘warehouse’の組合せとして定義された場合、‘part♯’の所与の値に対して多数の行が戻され得るものの、‘warehouse’についての値は‘part♯’の各値について一意的である。
この発明の一実施例におけるすべてのキャッシュテーブルに対し、ナルでないシステム制約が各アクセスパラメータについて自動的に定義される。キャッシュテーブルの拡張に対してさらなる制約が定義されてもよい。結果セットがデータソースから受取られ、インスタンスがそれらから構築された場合にはいつでも、DBMSはこれらの制約に基づいてデータ完全性チェックを実行する。完全性制約はまた、キャッシュテーブルのストレージを最適化するためにも使用されてもよい。たとえば、および上述のように、一次キーがキャッシュテーブルのアクセスパラメータのいずれか(またはすべて)に対して定義された場合、各結果セットは引数に対して多くて1つの行を含み、キャッシュテーブルの拡張は1つの物理的テーブルに記憶されてもよい。
概念上、キャッシュテーブルTに対する制約は、E(T)に対して定義された制約であ
る。この発明の一実施例では、一次キーがキャッシュテーブルのアクセスパラメータのいずれか(またはすべて)に対して定義されている場合、DBMSはE(T)を単一の物理的テーブルに記憶してもよい。そのキャッシュテーブルに対して定義されるすべての制約はE(T)に対する制約と考えられてもよい。
例示的には、キャッシュテーブルインスタンスをリフレッシュすることは、インスタンスの結果セットをデータソースの対応するTDP(テーブルデータプロセッサ、以下に説明する)から検索し、各結果についての引数から行を作成し、その行をE(T)に挿入することを含む。制約チェックは、E(T)に対する挿入、削除および更新動作のために正規の態様で実行されてもよい。
キャッシュテーブルが別のキャッシュテーブルの引数全体を含む一次キーを参照する外部キーを有する場合、DBMSは、第2のキャッシュテーブルのインスタンス上でカーソルを開くことによって外部キー制約をチェックしてもよい。インスタンスが存在し、かつ有効であるまたはロックされている場合、制約は満たされていると考えられる。インスタンスが存在しない場合、または無効である場合、DBMSは結果セットをデータソースから検索またはリフレッシュしようとする。データソースが結果を戻す場合、それはキャッシュされ、制約は満たされていると考えられる。データソースへの接続がない場合、エラーが報告される。
動作
この発明の一実施例では、キャッシュテーブルについてサポートされる動作Oは、キャッシュテーブル定義の“Using”句において定義されてもよい。例示的には、Using句は、データソースの名前、テーブルデータプロセッサ(TDP)の名前、およびTDPのタイプを特定してもよい。
キャッシュテーブル動作の実現化例は、データソースをホストし、かつモバイルアプリケーションに定期的にアクセス可能なサーバまたは他の位置に存在する。実現化例は、対応する動作がキャッシュテーブル上で行なわれると、ローカルDBMSによって呼出される。また、これに代えて、いくつかの動作実現化例がモバイル機器上に存在していてもよい。
この発明の一実施例では、キャッシュテーブル作成のUsing句部分は、以下のSQL構文を採用してもよい。
Figure 2005533324
この発明のこの実施例では、読出専用および修正可能という2種類のTDPがサポートされている。修正可能なTDPは、挿入可能、削除可能、および更新可能の任意の組合せであってもよい。挿入可能なTDPは、行がキャッシュテーブル拡張に挿入されるようにし、行がキャッシュテーブルインスタンスに挿入された後でローカルDBMSが読出す挿入方法を実現する。同様に、削除可能なTDPは削除方法を実現して、行がキャッシュテーブルから削除されるようにし、更新可能なTDPは更新方法を実現して、(たとえば列値を変更するために)行が更新されるようにする。上述のように、TDPはキャッシュテーブル上で行なわれ得る動作をモデル化する。
例示的には、読出専用TDPは「選択」方法のみを実現しており、それは引数(つまり、キャッシュテーブルのアクセスパラメータについての値のセット)を取って、結果セットを含む1組の行を戻す。使用され得るプロトコルを以下のセクションで説明する。
これに対し、修正可能なTDPは、「選択」方法だけでなく、対応するUsing句において宣言されたTDPの種類に依存して「挿入」、「削除」および/または「更新」方法も実現しなければならない。この発明の一実施例では、クライアント機器またはアプリケーションがキャッシュテーブルを更新しようとする場合、ローカルデータベースはまず、内容がまだ有効かどうかを(以下に示すように)判断する。有効である場合、内容は更新され、TDP上の対応する方法が呼出される。方法が失敗を戻すと、更新は動作が始まる前の点にロールバックされる。内容が無効であった場合、データベースはTDPに要求(たとえば挿入、削除、更新)を送信し、新しい結果セットが戻されるべきであることを示す。
“data source name”フィールドは、ローカルデータベースとは別個であってもよいデータソースを指す。データソースはローカルDBMSに十分な情報を提供して、DBMSがソースの能力およびプロトコルを理解できるようにするよう構成されている。データソースはまた、キャッシュテーブルインスタンスの結果セットの有効性および/または使用可能性の期間も特定してもよい。例示的には、データソースはウェブサーバ、アプリケーションサーバ、データベースサーバまたは他のソースを含んでいてもよい。
データソースは1つ以上のTDPを実現してもよく、各TDPは、キャッシュテーブルの代わりに、動作を容易にする1つ以上の方法をデータソース上に提供する。この発明のこの実施例では、各TDPは、クライアントDBMSによって呼出された場合にキャッシュテーブルインスタンスの結果セットを供給する責任がある。TDPは挿入、削除、更新、および/または他の動作を行なう論理を実現してもよい。
上述のサンプルキャッシュテーブル作成(キャッシュテーブル“Inventory”)に関連して、データソースは以下の拡張されたSQL構文を用いて定義されてもよい。
Figure 2005533324
“data source name”フィールドはデータベーススキーマ内で一意的である。
データソースTYPEフィールドは、データソースの能力(たとえばlocal、basic、au
th、database)を規定する。
例示的には、“local”データソースは、クライアント(モバイル)機器上で実現されるデータサーバであってもよく、PIM(個人情報管理)データベース、電子メール、アドレスブックなどにアクセスするために使用されてもよい。ローカルDBMSは、所与のクライアント機器のためにローカルデータソースを予めロードしてもよい。この実施例では、(上述の“protocol name”フィールドにおいて特定される)ローカルデータソース用に採用されるプロトコルは、OMC(オラクルモバイルクライアント)である。
“basic”データソースは、http、ウェブサービス要求、または同様の要求を受付けることができる単純なデータソースである。それは一般にセッションレスサーバであり、要求元を認証したりトランザクションをサポートすることはないかもしれない。したがって、<authentication>句はbasicデータソースについては削除されてもよい。
この実施例では、“auth”データソースは、クライアント認証(たとえばクライアントはログインしてセッションオブジェクトを入手しなければならない)を要求するデータソースである。authデータソースについての<authentication>句は、ソースにログインするためのユーザ名およびパスワードを提供する。authデータソースを提供するサーバはログインおよびログアウト方法をサポートし、ログイン方法はセッションオブジェクトを戻す。
“database”データソースは、「トランザクション開始」、「コミット準備」、「コミット」および「ロールバック」といったデータベース動作をサポートし得る認証データソースである。サーバがキャッシュテーブル更新(たとえばキャッシュテーブルにおける行の挿入、削除または更新)をサポートする少なくとも1つのTDPをホストする場合、データソースはトランザクショナルであってもよい。
上に例示したキャッシュテーブル作成に関連して、キャッシュテーブル作成のUsing句において識別されたデータソースMyCompanyDSは以下のように定義されてもよい。
Figure 2005533324
プロトコル
この発明の一実施例では、ローカルDBMSとデータソースまたはTDPとの間で通信するためのプロトコルは、キャッシュテーブルの4タプルの部分Pで定義される。特に、Pは、1つ以上のプロトコル(たとえばSOAP、HTTPなど)、および、データソースまたはTDPからの応答に用いられるXMLタグまたは他の仕組み(たとえばHTMLタグ)を識別する。
クライアントDBMSは、サポートされたプロトコルのうちのいずれか1つを用いてデータソースと通信してもよい。用いられるプロトコルにかかわらず、この発明の一実施例では、クライアントDBMSは表1のデータ項目のいずれかまたはすべてをデータソースと交換してもよい。
Figure 2005533324
用いられるプロトコルがHTTPである場合、キャッシュテーブルインスタンスの引数はPOST法の一部としてXML文書で送られてもよい。選択方法の結果は、ヘッダおよび本文を含むXML(拡張可能マークアップ言語)文書であってもよい。ヘッダはキャッシュ制御情報を含んでいてもよく、本文は結果セットを構成する1組の行を含んでいてもよい。例示的には、本文はOMCキャッシュテーブル結果セットフォーマットに準拠したXML文書として符号化されてもよく、または、それはよりコンパクトなオラクルライトCSV(コンマで区切られた値)ファイルとして符号化されてもよい。
挿入および削除方法は、引数(つまりアクセスパラメータ値のセット)と、クライアントがキャッシュテーブルへ挿入したい、または以前に挿入した単一の行を表わす列値のリストとを受付けてもよい。更新方法は、引数と、単一の古い行を表わす列値のリストと、更新を表わす別のリストとを取ってもよい。すべての方法についての全データは、HTTP POST法でXML文書として送られる。
この発明の一実施例では、要求フォーマットはHTTP POST要求であり、用いられるURLはデータソースのそれである。ユーザエージェントストリングは“Oracle Lite”である。そのためたとえば、引数‘p123’についてのInventoryキャッシュテーブルのインスタンスを得るHTTP要求は、以下のようになってもよい。
Figure 2005533324
要求ヘッダはIf-Modified-Sinceなどのいくつかの追加情報を含んでいてもよい。
要求への応答は、ヘッダと本文とを含むXML文書である。応答についてのフォーマットは付録Bで説明される。
この発明の一実施例における応答ヘッダは、以下の情報のいずれかまたはすべてを含んでいてもよい。
応答日(Response Date)−データソースクロックに従った、3つのHTTPフォーマット(たとえばRFC1123)での応答の日付
最終修正(Last-Modified)−データがデータソース上で(同様にHTTP日付フォーマットにおいて)最後に修正された日付
満了(または満了日)(ExpiresまたはExpiration Date)−データがその日まで有効であると考えられるべき日付
有効期間(Time-To-Live)−データがどれぐらいの期間有効であると考えられ得るかを示し、秒単位で表わされる
古さ(Staleness)−結果セットをリフレッシュするネットワーク接続がない場合に、古い(期限切れの)結果セットが使用可能かどうか、およびどれぐらいの期間使用可能かを示す、ゼロよりも大きい整数である。古さ値1がデフォルトであり、古い結果セットが全く使用できないことを示している。古さ値がnである場合、それは、古い結果セットが有効期間値のn倍まで使用可能であることを示す。
表1に示すように、図7〜11は、クライアント機器とデータソースとの間で通信するために使用可能なXML文書のサンプルフォームを示している。
図7A−Bは、サンプルの応答文書フォーマット702、704を示している。各フォーマットはヘッダと本文とを含む。ヘッダは、サーバ識別情報、クライアント識別情報、キャッシュ情報(たとえば日付、最終修正、満了、有効期間、古さ)、TDP名、結果セットについての引数、キャッシュテーブルスキーマ、日付フォーマットなどを含んでいてもよい。本文は1つ以上の行セットを含み、その各々は、行セットフォーマット、作用(たとえば置き換え、挿入、削除、更新)、区切り文字などを識別してもよい。応答フォー
マット702の本文はXMLフォーマットであり、一方、応答フォーマット704の本文はCSVフォーマットである。
図8は、サンプルの選択要求文書800を示している。図9はサンプルの挿入要求文書900を示している。図10はサンプルの削除要求文書1000を示している。図11はサンプルの更新要求文書1100を示している。
キャッシュテーブル動作
上述のように、この発明の一実施例では、クライアントアプリケーションがキャッシュテーブルに関する動作(たとえば照会)を発行すると、ローカルデータベースまたはDBMSは、所与のセットのアクセスパラメータを有するキャッシュテーブルについてのインスタンスが既にキャッシュされているか、および依然として有効かどうかを判断する。そうである場合、キャッシュされた結果セットを動作に使用してもよい。その他の場合、ちょうど上述したように、データベースは、結果セットを検索するために、キャッシュテーブルについて定義されたTDPに対して選択方法を呼出す。TDPからの応答は、前のセクションで述べたキャッシュ制御パラメータのいずれかまたはすべてを含むヘッダを含んでいてもよい。
図3A−Bは、この発明の一実施例に従った、キャッシュテーブルインスタンスを更新、検索またはリフレッシュするかどうかを判断するためのアルゴリズムを示すフローチャートを含んでいる。このアルゴリズムでは、現在の日付(Current Date)はクライアントマシン上での現在の日付/時間を指している。
図3A−Bのアルゴリズムでは、キャッシュテーブルのキャッシュされたインスタンスは、それが(たとえば有効期間パラメータまたは満了日パラメータにより定義されるように)その満了前に使用される場合、「有効」として考えられてもよい。このインスタンスは、(1)それが「有効」である場合、(2)それがトランザクションによりロックされている場合、または(3)それは満了しているが(データソースへの通信リンクが利用できないため)(古さパラメータから計算されるように)古くなる前に使用中である場合に、トランザクションによって「使用可能」であると考えられてもよい。より正式には、以下のようになる。
Figure 2005533324
状態300で、動作(たとえば照会)がローカルデータベースまたはDBMS(データベース管理システム)によって受取られる。動作は、データベースが記憶するよう構成されている1つ以上のキャッシュテーブルインスタンスにかかわるものである。
状態302で、DBMSは、これが動作の一部として提供された引数に関する最初の動作であるかどうかを判断する。より一般的には、DBMSは、結果セットが有効か、使用可能か、古いか、または何か他の状態にあるか否かにかかわらず、引数に対応する結果セットをそれが有しているかどうかを判断してもよい。これがこの引数についての最初の動作である場合(たとえばデータベースが引数に関する結果セットを含んでいない場合)、例示された方法は状態304で継続する。その他の場合、方法は状態310へ進む。
状態304で、DBMSは、キャッシュテーブルに関連するテーブルデータプロセッサ
へ向けられるべき、引数に対応する結果セットに対する要求を、データソースへ発行する。
状態306で、結果セットに対し、新しいキャッシュテーブルインスタンスがDBMSにおいて生成され、動作を満たすために使用される。例示的には、キャッシングヘッダはクライアント機器上に記憶されてもよい。方法はそこで終了する。(たとえば状態304において)データソースに接触して結果セットを得ることができない場合、データベースによってエラーが合図されてもよい。
状態310では、引数に関する以前の結果セットがキャッシュテーブル内に配置されており、DBMSは、それが現在のトランザクションによって現在ロックされているかどうかを判断する。この発明のこの実施例では、現在のトランザクションのトランザクション分離レベルが「反復可能読出」または「直列可能」(ロックされている結果セットを勘案)である場合、DBMSは現在のトランザクションについて結果セットをリフレッシュしない。現在のトランザクションが結果セットを既にロックしている場合、例示された方法は状態316に進む。
その他の場合、状態312で、DBMSは、現在のトランザクションがキャッシュされた結果セット上にアクティブカーソルを有するかどうかを判断する。この発明のこの実施例では、現在のトランザクションのトランザクション分離レベルが「読出コミット済」(アクティブカーソルおよびノーロックを勘案)である場合、DBMSは読出一貫性およびカーソル安定性を提供するために結果セットを更新しない。現在のトランザクションが結果セット上で開かれたアクティブカーソルを有する場合、方法は状態316に進む。
その他の場合、状態314で、DBMSは、キャッシュされた結果セットが有効かどうかを判断する。上で特定されたように、結果セットについての有効期間パラメータまたは満了日がまだ超過されていない場合(たとえばResponse Date+Time-To-Live≧Current Date)、結果セットは有効であると考えられてもよい。キャッシュされた結果セットが有効でない場合、例示された方法は状態316で継続する。その他の場合、方法は状態322へ進む。
状態316で、DBMSは、キャッシュテーブルに関連するデータソース(たとえばTDP)にとって接続が利用可能かどうかを判断する。接続が利用可能である場合、方法は状態324へ進む。
状態318では、データソースにとって接続が利用可能ではなく、キャッシュされた結果セットが無効であることがわかっており、そのためデータベースは、結果セットが使用可能かまたは古いかを判断する。例示的には、(Response Date+(Time-To-Live*Staleness)<Current Date)である場合、結果セットは古いと考えられてもよい。キャッシュされた結果セットがまだ古くなっていない場合、方法は状態322へ継続する。
その他の場合、キャッシュされた結果セットは有効ではなく、古くなっており、かつ、キャッシュテーブルインスタンスをリフレッシュできるデータソースにとって接続が利用可能ではない。したがって、状態320でDBMSはエラーを合図し、方法は終了する。
状態322で、現在の動作を満たすためにDBMSの既存の結果セットが用いられる。手順はここで終了する。
状態324で、現在キャッシュされている結果セットは無効であると考えられるが、データソースにとって接続が利用可能であり、そのためリフレッシュ動作が要求される。例
示的には、リフレッシュ要求は、結果セットの以前のリフレッシュの最終修正日を反映するIf-Modified-Sinceヘッダを含んでいてもよい。最終修正日が最終リフレッシュまたは更新から利用できない場合、代わりに応答日が使用されてもよい。
状態326で、DBMSは、要求に応答して何らかの更新が受取られたかどうかを判断する。例示的には、結果セットが最後にローカルDBMSに提供されてから更新されていないことをTDPが(データソースを介して)見つけた場合、更新は送られない。何らかの更新が受取られた場合、例示された方法は状態330へ進む。
その他の場合、更新が受取られなかったため、状態328において、キャッシュ制御情報が適切に更新され、キャッシュされた結果セットが現在の動作に用いられる。例示的には、応答で受取られた任意のキャッシュ制御情報を用いて、既存のキャッシュ制御情報を更新または上書きする。方法はそこで終了する。
状態330で、DBMSは、キャッシュされた結果セットが現在別のトランザクションによって使用中かどうかを判断する。
状態332では、結果セットが使用中で、そのためDBMSはそれをコピーし、そのコピーを結果セットの最新バージョンとしてマークする。最新バージョン以外のコピーは、それらを使用するトランザクションが終了すると削除されるようマークされてもよい。
次に、状態334で、DBMSは、データソースから受取られた更新に従って結果セットを更新し、更新された結果セットを現在の動作に使用する。例示された方法はここで終了する。
ローカルクロックとサーバ(データソース)クロックとの同期が問題であるこの発明の一実施例では、応答日の代わりにローカル日付値が計算および使用されてもよい。また、(応答に含まれない場合)有効期間値を計算するために、応答日または満了日が使用されてもよい。
読出専用キャッシュテーブル
この発明の一実施例では、照会または他のキャッシュテーブル動作がキャッシュテーブルTを名前のみによって(つまり引数なしで)参照する場合、E(T)(つまりキャッシュテーブルの拡張)上でカーソルが開かれる。カーソルは、インスタンスが使用可能かどうかにかかわらず、E(T)内の各インスタンスの最新バージョンを通って繰り返す。ローカルDBMSはインスタンスをリフレッシュまたはロックしようとしない。しかしながら、何か他のトランザクションがその上でカーソルを開く場合、E(T)内のインスタンスはリフレッシュされてもよい。更新動作は引数を提供しなければならず、したがってキャッシュテーブルを名前のみによって参照しないことを思い出すべきである。
照会が或る特定のキャッシュテーブルインスタンス、たとえばT(v1,…,vm)(ここで各viは定数である)を参照する場合、DBMSはインスタンスが使用可能かどうかをチェックする。そうであれば、カーソルがその上で開かれ、そうでない場合、DBMSはそれをリフレッシュしようとする。必要なデータソースにとって接続が利用できない場合、エラーが戻されてもよい。
この発明の一実施例では、キャッシュに対して照会を発行するトランザクションが「読出コミット済」分離レベルにある場合、その照会は引数を含んでおり、影響を受けるキャッシュテーブルインスタンスにロックはかからない。トランザクションが「反復可能読出」分離レベルにある場合、読出ロックがインスタンスにかかる。トランザクションが「直
列可能」分離レベルにある場合、読出ロックはインスタンスおよびE(T)にかかってもよい。
所与のトランザクションがキャッシュテーブル上でカーソルを閉じ、次にそれを再び開く場合、リフレッシュ方針はトランザクション分離レベルに依存してもよい。例示的には、トランザクション分離レベルが読出コミット済であれば、カーソルが再び開かれる前にキャッシュが使用不可能となった場合に、キャッシュされた内容はリフレッシュされる。トランザクションレベルが反復可能読出または直列可能のいずれか(読出ロックがインスタンスにかかっている)である場合、内容が満了したかどうかにかかわらず、再び開かれたカーソルについて同じ内容が使用されてもよい。
キャッシュテーブルTについて、異なるインスタンスは有効性の異なる期間を有していてもよい。たとえば、キャッシュテーブルインスタンスT1(v1,…,vm)の有効性の期間は1時間で、一方、キャッシュテーブルインスタンスT2(u1,…,um)の有効性の期間は30分であってもよい。この例では、(v1,…,vm)および(u1,…,um)は引数である。例示的には、インスタンスの有効性期間は結果セットを得たデータソースによって設定され、クライアントDBMSは、依然として有効なキャッシュテーブル内容をリフレッシュしないかもしれない。
この発明の一実施例では、ローカルDBMSは、結果セットの有効性期間に関する閉世界仮説を立て、キャッシュテーブル内容(結果セット)が依然として有効であればリフレッシュしない。それはまた、リフレッシュ中にデータソースから得られたどの内容もソースでコミットされたデータを含むということを仮定している。
更新可能なキャッシュテーブル
更新可能なキャッシュテーブルについては、この発明の一実施例では、たった1つのトランザクションが一度に1つのキャッシュテーブルインスタンスを更新してもよい。この実施例では、更新されたキャッシュテーブルインスタンスに書込ロックがかかる。
トランザクションが更新可能なキャッシュテーブルインスタンスを更新すると、更新はまず、結果セットが依然として有効である場合、または既にこのトランザクションについてロックされている場合には、結果セットに適用される。次に、TDPの対応する更新方法がデータソースで呼出される。例示的には、方法が失敗すると更新は失敗する。
キャッシュテーブルインスタンスが更新されるときにデータソースへの接続が利用可能でなければ、エラーが報告される。そして、更新の適用中に何らかのエラーがある場合には、DBMSはデータソースでトランザクションをロールバックする。
キャッシュテーブルTのインスタンスは、照会のための読出一貫性、カーソルの安定性の一単位であり、この実施例では、更新可能なキャッシュテーブルの並行処理制御のためにロックされ得る最小オブジェクトである。正式には、キャッシュテーブルインスタンスはE(T)のサブセットであり、サブセットの全行は同じ引数を有する。
Figure 2005533324
キャッシュテーブルインスタンスは、この実施例では、インスタンス上で開かれるカー
ソルが、応答日と有効期間との合計によりマークされる期間の終了前に開かれた場合、およびその場合に限り、有効である。
Figure 2005533324
キャッシュテーブルインスタンスの結果セットは、この実施例では、それが(1)有効である場合、(2)更新のためのトランザクションによってロックされている場合、または(3)カーソルがインスタンス上で開かれ、かつインスタンスがその古さ制限をまだ超えていないときに、データソースにとって接続が利用できない場合、およびその場合に限り、使用可能である。
Figure 2005533324
この発明の一実施例では、カーソルがインスタンスの行に位置付けられている場合はいつでも、そのインスタンスは修正できない。別のトランザクションが同じインスタンス上でカーソルを開こうとすると、ローカルDBMSはそのインスタンスについての結果セットをデータソースから検索し、新しいインスタンスを生成する。新しいインスタンスはインスタンスの最新バージョンとなり、他のすべてのバージョンはそれらのカーソルが動かされるとパージされる。
インテリジェントクライアントエージェント
この発明の一実施例では、モバイルクライアント機器上でのオフラインまたはモバイルアプリケーションの動作を容易にするために、インテリジェントクライアントエージェントが提供される。より特定的には、この実施例では、クライアントエージェントは、ユーザとの音声対話、サーバからクライアントへのデータのプッシング、および遠隔データ(つまりクライアント上以外の場所に記憶されたデータ)への選択的なオンラインアクセスといった、1つ以上の特徴を有するモバイルアプリケーションを向上させる。
クライアントエージェントはまた、ユーザに提示されるべき内容の、その内容が提示されるべきフォーマットからの分離を可能にしてもよい。例示的には、後者の利点により、クライアントは、特定されたプレゼンテーションフォーマットおよびそのフォーマットを用いて表示され得るデータの1つ以上の組から、実行中にページを生成できるようになる。ページは次に、好適なクライアントブラウザによって表示されてもよい。
たとえば、在庫データへのアクセスに関するモバイルアプリケーションのために実現されるこの発明の一実施例では、クライアントエージェントは、このデータについてのプレゼンテーション記述またはフォーマットが在庫データとは別個に記憶されるようにする。このため、プレゼンテーションフォーマットは、所与の部品番号について、部品名、記述、価格、手持ち量などの情報を提示するよう構成されていてもよい。データはデータベー
ス、キャッシュ、キャッシュテーブルまたは他の構造に記憶されてもよい。ユーザが或る特定の部品番号を提供すると、対応するデータが検索され、プレゼンテーションフォーマットと組合されてユーザに表示される。
例示的には、プレゼンテーションフォーマットまたはプレゼンテーション記述ページには、変数、フィールド名、またはデータおよび内容項目を表わす他のプレースホルダ、および、ローカルデータベース内のデータがプレースホルダを置き換えるためにいかに使用可能かを制御するために使用され得るスプリクト言語でのコマンドが配置されてもよい。インテリジェントクライアントエージェントのスクリプトエンジンは、ページにおいてスクリプト言語を実行し、ページがブラウザに戻される前にプレースホルダを実際の値と置き換える。
当業者であれば、以前のモバイルアプリケーションまたはオフラインアプリケーションが、内容をプレゼンテーションフォーマットと組合せる静的なモノリシックのページを記憶するよう構成されていたことを理解するであろう。その結果、内容の各セットは別個のページとして記憶され、それにより、より大きな記憶容量を必要とし、より低い柔軟性を提供していた。たとえば、記憶されたページのたった1つのデータ項目のみを更新する必要がある場合、その項目を含むページ全体を検索しなければならなかった。そして、その1つの項目が多数のページの一部であった場合には、それらのページの各々を検索しなければならなかった。
モバイルクライアント機器においてキャッシュテーブルとともにインテリジェントクライアントエージェントを実現することは、データにローカルに(たとえばオフラインで)アクセスするものの、選択された(たとえば揮発性の高い)データへのオンラインアクセスも利用可能であるハイブリッドオンライン/オフラインアプリケーションの開発および使用を容易にする。モバイルアプリケーションはまた、十分にオフラインで動作され、オンラインに戻されたときにデータ変更、完了したフォームおよび他の情報を提出してもよい。さらに、内容およびアプリケーションは動的にダウンロードされ、クライアントにプッシュすらされてもよい(たとえば新しい旅程、1組のタスクへの変更)。
この発明の一実施例では、モバイルクライアント機器に記憶された内容は、予め定められたスキーマに従って記憶されてもよい。そのスキーマに従って、内容はデータベーステーブル、データサーバ内容のスナップショット、キャッシュテーブルまたは他の構造に記憶されてもよい。たとえば、データをデータベーステーブルに記憶することにより、クライアントエージェントは容易に、かつ明確にデータをロードおよびリフレッシュできる。データをスナップショットに記憶させることは、(以下により詳細に説明されるような)サーバからクライアントへの新規/更新データのプッシュを容易にするかもしれない。前のセクションで説明されたような、データをキャッシュテーブルに記憶させることは、データのためのインテリジェントリフレッシュ方針の使用、および実質上任意のソース(たとえばサーバ)からのオンデマンドローディングを可能にする。スキーマは、検索、ロード、更新などされるべきデータの場所を示すURL(ユニフォームリソースロケータ)を含んでいてもよく、またはそれと関連付けられていてもよい。
上述のように、内容をその内容についてのプレゼンテーションフォーマットから分けることに加え、クライアントエージェントの一実施例は、ユーザが音声を用いてモバイルアプリケーションと対話することを可能にしている。上述の例では、たとえば、ユーザが部品番号を話し、モバイルアプリケーションが関連する在庫データを話すことによって応答してもよい。これは、ユーザが車両を操作している場合、または他の状態で自分の目または手を別のタスクからそらすことができない場合に特に価値があり得る。クライアントエージェントのこの実施例では、音声ユーティリティ、または音声からテキストへの、およ
びテキストから音声への変換器の構成要素(たとえば文法チェッカー、音素)がクライアント機器のオペレーティングシステムの一部として、またはモバイルアプリケーションの一部としてインストールされてもよい。
この発明の一実施例のためのクライアント機器を構成するプロセスは、1組のアプリケーションページまたはモジュール、そのアプリケーションについての内容またはデータ、スキーマページ、ユーティリティ(たとえば音声アプリケーションまたはユーティリティ)、ブラウザなどをその機器にダウンロードすることを伴うかもしれない。ユーザからデータまたは内容を引出すよう、もしくはデータまたは内容をユーザに提供するよう設計されたアプリケーションページは、(上述のような)プレゼンテーション記述またはフォーマットとして表現されてもよい。この発明のこの実施例に従って構成されたモバイルアプリケーションについては、ダウンロードページは、アプリケーションページ(プレゼンテーションフォーマット)、音声ファイル、スキーマページなどのいくつかまたはすべてを識別してもよい。ダウンロードページのローディングまたはブラウジングは、各構成要素のローディングまたは検索を自動的にトリガしてもよい。
この発明の一実施例では、ダウンロードページは好適なスクリプト言語で書かれたプログラムを含んでいる。プログラムは、ダウンロードすべき項目および行なうべき動作を識別する特別なタグまたはマーカ(たとえば「インポート」、「スキーマ」)を含んでいる。このため、ダウンロードページは、キャッシュされるべきページまたは他の内容の単なるリスト以上のものである。
図4は、この発明の一実施例に従った、インテリジェントクライアントエージェントが備わったモバイルクライアント機器を示している。この実施例では、クライアント機器400は、PDA、スマート電話、ハンドヘルド、ラップトップまたはノートブックコンピュータ、もしくは何か他のモバイルコンピューティング機器であってもよい。
クライアント400は、データベース420、クライアントエージェント440、およびブラウザを含む。クライアントブラウザは、HTML(ハイパーテキストマークアップ言語)、XML(拡張可能マークアップ言語)、または現在公知のもしくはこれから開発される任意の他のマークアップ言語と互換性があってもよい。ブラウザは、以下に説明されるような好適なプロトコル識別および取扱いを有して構成される。クライアントエージェント440は、ODBC(オープンデータベースコネクティビティ)、JDBC(Java(登録商標)データベースコネクティビティ)または何か他のインターフェイスを用いて、データベース420と対話する。
クライアントエージェント440はしばしばオフラインモードで動作してもよいが、それは必要であれば(たとえば以下に説明されるように)オンラインで動作してもよく、そのとき、それは無線(または有線)ネットワークを介して1つ以上のサーバと連動してもよい。クライアントエージェント440は、クライアント400上にJava(登録商標)バーチャルマシン(VM)を必要とせずに、この発明の1つ以上の実施例のために以下に説明されるように動作してもよい。
データベース420は、前のセクションで説明された1つ以上のキャッシュテーブル422と、対応するキャッシュ制御情報424とを含む。データベースはまた、サーバからコピーされたデータの1つ以上のスナップショット426と、データテーブル428とを含んでいてもよい。例示的には、データベース420は、Oracle 9i、9iLite、またはオラクル・コーポレイションにより提供される別のDBMSであってもよい。
この発明の例示された実施例の一実現化例では、テーブル428などのデータベーステ
ーブルは、データサーバと同期していない、ローカルに有用なデータを含んでいる。スナップショット426は、データサーバと周期的に同期するかもしれない(データサーバからの)データのサブセットを含んでいる。キャッシュテーブル422は、有効性の特定された期間を有するデータを含んでおり、(たとえば要求されたキャッシュテーブル内容が古い場合に)前のセクションで説明されたようにリフレッシュされてもよい。
クライアントエージェント440のキャッシュ442は、ブラウザにより表示されるべきページのプレゼンテーション記述またはフォーマットを記憶するよう構成されている。上述のように、プレゼンテーションフォーマットには、内容の多数の異なるセットが必要に応じて配置されてもよく、それにより、アセンブルされた各ページを記憶する必要性がなくなる。キャッシュ442はまた、データベース420から選択されたデータをキャッシュしてもよい。
ディスパッチャ444は、ブラウザによって定義されたインターフェイスを実現して、それ自体をプロトコルハンドラとして登録する。ディスパッチャはブラウザからページ要求を受取り、アセンブルされたページをブラウザに渡す。この発明の一実施例では、ディスパッチャ444は、1つ以上の特定されたプロトコルに対応するページ要求のみを受取る。たとえば、ブラウザはオラクルモバイルクライアント(OMC)プロトコルに対するページ要求をディスパッチャに送るよう構成されていてもよく、そのような要求は“omc://www.oracle.com”の形のURLを含んでいてもよい。例示的には、正規のHTTP(ハイパーテキスト転送プロトコル)要求(たとえば“http://www.oracle.com”)がディスパッチャによってサーバに(たとえば無線ネットワークを介して)提出されてもよい。要求されたページがキャッシュされる場合、ディスパッチャ444はアセンブルされたページをブラウザに送る。要求されたページがキャッシュされない場合、要求は遠隔サーバに送られてもよい。遠隔サーバに送られた要求は要求元450により取扱われてもよく、および/または待ち行列452を介して処理されてもよい。
ディスパッチャは、ページをブラウザに供給する前に、要求に、およびそのページのヘッダに含まれる、そのページのMIME(多目的インターネットメール拡張)タイプといった情報を検査し、適切な要求ハンドラを呼出す。要求ハンドラは適切な動作を行ない、それはブラウザによってサポートされているマークアップ言語で有効なページを生成し、それは次にディスパッチャによってブラウザに与えられてもよい。クライアントエージェント440は、データベーステーブル、スナップショットおよび/またはキャッシュテーブルを参照するSQL(構造化照会言語)タグを含み得るタグを使用するOTL(オフラインタグライブラリ)ページ用の要求ハンドラを有して構成されてもよい。図4では、スクリプトエンジン446はOTL MIMEタイプ用のハンドラを含んでいてもよい。
この発明の例示された実施例では、スクリプトエンジン446は、ブラウザを介して(つまり音声を介さずに)ユーザに図で提示されるべきページのアセンブリを実行する。スクリプトエンジンが(たとえばディスパッチャ444から)キャッシュされたページについての要求を受取ると、それは(たとえばキャッシュ442から)そのページのプレゼンテーションフォーマットを検索し、(たとえばデータベース420から)適切なデータを検索する。データは次にプレゼンテーションフォーマットの対応する変数またはプレースホルダに向けられ、アセンブルされたページが生成される。アセンブルされたページは次にディスパッチャに戻されて、クライアントブラウザに渡されてもよい。
スクリプトエンジン446は音声エンジン448と作動するよう構成されている。スクリプトエンジンが<say…>または<prompt…>などの音声タグに遭遇すると、それは音声エンジンの適切な方法への引数を準備し、方法を呼出す。音声エンジンは次に、方法呼出に聴覚的に応答し、方法呼出の制御および結果をスクリプトエンジンに戻す。
ページ要求元450は、要求されたページ(たとえばプレゼンテーションフォーマット)、および/またはローカルに記憶されていない内容、もしくはローカルに記憶されているが古くなっている内容を検索するために、遠隔システム(たとえばデータサーバ)との対話を取扱う。待ち行列452は、遠隔システムと交換すべき要求および/または他の通信を記憶してもよい。
プッシュリスナ454は、プッシュされた内容、ページ(たとえばプレゼンテーションフォーマット)、ダウンロードページ、アプリケーションページ、および/または他の項目を聞くよう構成されていてもよい。プッシュは、SMS(ショートメッセージサービス)通信として、またはクライアント400により認識可能な何か他のフォーマットで受取られてもよい。プッシュのほんの一例として、データサーバは一連のSQLステートメントを含むSMSメッセージをプッシュしてもよい。プッシュリスナ454はそのステートメントを実行するか、または、それらを実行のためにディスパッチャ444またはクライアントエージェント440の何か他の構成要素に渡してもよい。例示的には、ステートメントは、新規または更新データをデータベース420に記憶させてもよい。
図5A−Cは、この発明の一実施例に従った、インテリジェントクライアントエージェントを用いてモバイルアプリケーションを動作する方法を示している。この実施例では、モバイルアプリケーションは(図4のクライアント機器400などの)モバイルまたはポータブル(たとえば無線)コンピューティング機器上で実行される。モバイルアプリケーションは(たとえば遠隔サーバまたは他のコンピュータシステムへのアクティブな接続なしで)オフライン動作用に構成されているが、古い、または利用できない(たとえばモバイル機器上に記憶されていない)データを検索するために利用可能な接続を利用することができる。
図5Aは、ディスパッチャ(たとえば図4のディスパッチャ444)を動作させる方法を示している。図5B−Cは、スクリプトエンジン(たとえば図4のスクリプトエンジン446)を動作させる方法を示している。
図5Aの状態502では、インテリジェントクライアントエージェント(たとえば図4のディスパッチャ444)は、呼出元、通常クライアントブラウザから要求を受取る。例示的には、この要求はクライアントエージェントに関連する1組の予め定められたプロトコル(たとえばOMC)のうちの1つで提出されてもよい。
状態504で、ディスパッチャは、要求されたページまたは他の項目が現在キャッシュされているかどうかを判断する。特に、ディスパッチャは、クライアントエージェントキャッシュ(たとえば図4のキャッシュ442)を調べ、それが要求されたページについてのプレゼンテーション記述またはフォーマットを含むかどうかを判断する。要求されたページについてのフォーマットがキャッシュ内にある場合、例示された方法は状態510に進む。
その他の場合、キャッシュされていなければ、次に状態506で、クライアントエージェントは要求を要求元(たとえば図4の要求元450)に送り、遠隔システムに渡す。モバイル機器が現在オフラインである場合、この状態は、接続が利用可能となるまで要求を待ち行列に入れることを必然的に伴い得る。
状態508で、遠隔サーバから戻されたページ(たとえばプレゼンテーションページ)がキャッシュに入れられる。
状態510で、ディスパッチャは、要求されたページがそのまま呼出元(たとえばブラウザ)に戻されるべきかどうか、またはそれがさらなる処理のためにハンドラのうちの1つに送られるべきかどうかを判断する。例示的には、ページがOTLページである場合、ディスパッチャはスクリプトエンジンを呼出し、それはOTLページのハンドラとして作動する。さらなる処理が必要でない場合、例示された方法は状態516に進む。
状態512で、ディスパッチャはページを処理するためにハンドラ(たとえばスクリプトエンジン)を呼出す。図5Bは、スクリプトエンジンが動作し得る際に従う一方法を示している。
状態514で、ディスパッチャはハンドラがページを戻したかどうかをチェックする。戻していない場合、方法は状態518に進む。
状態516で、要求されたページが呼出元に送られる。例示されたディスパッチャ方法はここで終了する。
状態518で、ディスパッチャはエラーを合図してもよく、こうしてこの方法を終了させる。または、ディスパッチャはハンドラによって提供されるべきページをさらなる期間待ってもよく、または動作を再試行してもよい。
図5Bは、この発明の一実施例に従った、図4のスクリプトエンジン446などのOTLハンドラの動作を示している。この実施例では、スクリプトエンジンはOTLページを入力として受取る。OTLページは通常、ページのプレゼンテーションフォーマットを含んでいる。プレゼンテーションフォーマットは一種のページテンプレートとして機能してもよい。しかしながら、実際のデータを含む代わりに、データは、それらの変数、フィールドまたは列名、テーブル名もしくは他のプレースホルダによって表わされる。OTLページは、他のページまたはリソース(たとえば画像ファイル)をダウンロードするタグ、必要に応じてデータベーススキーマを生成するタグ、音声エンジンと相互作用するタグ、SQLステートメントを実行して結果を変数に結びつけるタグ、変数の値を出力ファイルに書込むタグ、および出力ページの生成をプログラムするのに必要なフロー制御を提供するタグを含んでいてもよい。
状態530で、OTLハンドラは空の出力ページを生成する。例示された方法が進むにつれ、出力ページには入力ページからの内容および/または他の内容が配置される。
状態532で、それは入力ページまたは内容をスキャンし始める。例示的には、スキャニングはタグごとに行なわれてもよい。
状態534で、それはタグがOTLタグかどうかを調べる。それがOTLタグである場合、方法は状態540で継続する。
その他の場合、状態536では、タグはOTLタグではなく、そのためスクリプトエンジンは、OTLタグが入力に生じるまで、またはページの最後に到達するまで、入力ページから出力ページへ文字をコピーする。OTLタグに到達すると、方法は状態540に進む。
その他の場合、入力の最後に到達すると、状態538で出力ページは閉じられて呼出元(たとえばディスパッチャ)に戻され、方法は終了する。出力ページは空であってもよい。
状態540で、スクリプトエンジンはタグが「ダウンロード」タグかどうかを調べる。そうでない場合、方法は状態544で継続する。
しかしながら、タグがダウンロードタグであれば、次に状態542で、スクリプトエンジンは、ダウンロードタグへの属性として与えられたURLにあるページをダウンロードするためにディスパッチャを呼出す。この発明の例示された実施例では、ダウンロードされたページはこの時点ではパーズまたは実行されない。ページをダウンロードした後、スクリプトエンジンは状態532に戻る。
状態544で、タグはそれが「インポート」タグであるかどうかを調べられる。そうでない場合、方法は状態548に進む。
その他の場合、タグがインポートタグであれば、状態546で、インポートタグへの属性として提供されたURLに関連するページをインポートするためにディスパッチャが呼出される。
例示的には、スクリプトエンジンはインポートモードを「オン」にセットする。インポートモードを「オン」にすることは、ディスパッチャに、そして(ディスパッチャがスクリプトエンジンに呼出を行なっている場合には)おそらくスクリプトエンジンに、それがインポートページを処理中であることを示す。スクリプトエンジンは次に、再帰呼出をディスパッチャに行ない、インポートされるべきページのURLを提供する。ディスパッチャが制御をスクリプトエンジンに戻すと、インポートモードは「オフ」にセットされ、例示された方法は状態532で再び始まる。
状態548では、タグが「インポート」タグでない場合、スクリプトエンジンはタグが「スキーマ」タグかどうかを調べる。スキーマタグでない場合、方法は状態554に進む。
状態550で、スクリプトエンジンは、スキーマが既に存在するかどうかローカルデータベースを調べる。存在する場合、方法は状態532に戻る。
その他の場合、状態552で、スクリプトエンジンは「スキーマ」タグにより与えられたURLにあるページを処理するためにディスパッチャを呼出す。状態552の後、方法は状態532に戻る。
状態640で、スクリプトエンジンはインポートモードがオンかオフかを判断する。インポートモードがオンである場合、これは、処理中のページがダウンロードページであることを示している。したがって、スクリプトエンジンはそのページにおける他のタグを処理しようとはせず、代わりに状態520から動作を再び始める。例示的には、これは、インポートされたページがすぐには実行されないこと、および、それらが依存する任意のページもダウンロードまたはインポートされ、それらが依存する任意のスキーマが生成されることを、確実にする手助けをする。
状態556で、OTLタグが「SQL」タグかどうかが調べられる。そうでない場合、方法は状態562に進む。
その他の場合、状態558で、スクリプトエンジンは、タグを伴う待ち行列を実行するためにクライアントDBMSを呼出す。
次に、状態560で、スクリプトエンジンは、待ち行列(たとえばテーブル)の結果を
「SQL」タグに含まれる変数と結びつける。方法は次に状態532に戻り、そこでそれは入力ページのスキャニングを継続する。
状態562で、生じたタグが「提出」タグでない場合、スクリプトエンジンは状態566に進む。
その他の場合、状態564で、スクリプトエンジンは、出力ページを待ち行列(たとえば図4の待ち行列452)に提出することによって提出タグに応答し、待ち行列はページを特定されたサーバに送る。
この発明のこの実施例では、提出タグは少なくとも3つの属性を有する。第1の属性は、ページが提出されるサーバのURLである。第2の属性は、成功した提出を示す、サーバからの戻りコードを識別する。第3の属性は、サーバからの戻りコードが第2の属性において識別されたコード以外のものである場合に呼出されるページのURLである。
待ち行列がサーバへの接続を有すると、それは待ち行列に入れられた任意の要求を提出する。エラーがあれば、それはエラー取扱いページを呼出して、それにサーバのURLと戻されたコードとを渡す。
状態566で、タグはそれが音声タグであるかどうかを調べられる。そうでない場合、例示された方法は状態570に進む。
その他の場合、それが音声タグであれば、状態568で、スクリプトエンジンは、必要な音声エンジン方法を呼出すためにスクリプト内の変数からパラメータ値を準備する。方法を呼出した結果、音声エンジンは(音声タグが“say”タグであった場合には)ユーザにメッセージを話し掛け、または(タグが“prompt”タグであった場合には)ユーザに入力を聴覚的に促す。タグがプロンプトである場合、音声エンジンは聴覚入力を受付け、次にそれを認識してテキスト文字列に変換しようとする。このテキスト文字列は方法の結果として戻される。スクリプトエンジンは次に状態532に戻って、入力ページのスキャニングを継続する。
状態570で、スクリプトエンジンは、タグが「アウト」タグかどうかを調べる。「アウト」タグはスクリプトエンジンに、値(変数に結び付けられた定数または値)を出力するよう告げる。
タグが「アウト」タグである場合、状態572で、スクリプトエンジンは値を出力ページに書込み、次に状態532に戻る。
タグが「アウト」タグではない場合、状態574で、スクリプトエンジンは、それがサポートするステートメントの1つとしてそれを処理し、次に状態532に戻る。
図5B−Cの方法を実現する間、スクリプトエンジンは要求されたページについてのデータを検索する。たとえば、データが現在クライアントデータベース(たとえばテーブル、キャッシュテーブルまたはスナップショット)に記憶され、かつ有効である場合、それらは状態558中にデータベースから検索されてもよい。しかしながら、データ項目が現在データベースにない場合、または必要なデータ項目が古い場合、クライアントエンジンは1つ以上のデータ項目を検索するために遠隔システムへの接続を開始してもよい。この発明のこの方法では、必要なデータのみを検索することによって、遠隔システムへの接続が最小限に抑えられていることが注目され得る。特に、クライアントエンジンは、要求されたページの他のデータ(たとえばローカルに利用可能でかつ古くないデータ)および非
データ構成要素(たとえばプレゼンテーション記述またはフォーマット)をダウンロードすることを回避し得る。
この発明の実施例の前述の説明は、例示および説明の目的のためにのみ提示されてきた。それらは網羅的であるよう、または開示された形にこの発明を限定するよう意図されてはいない。したがって、上述の開示はこの発明を限定する意図はなく、この発明の範囲は添付された特許請求の範囲によって定義される。
この発明の一実施例の実現に好適なモバイルコンピューティング環境を示すブロック図である。 この発明の一実施例に従った、モバイルコンピューティング機器上でデータをキャッシュするよう構成されたクライアント機器のブロック図である。 この発明の一実施例に従った、キャッシュテーブルを使用およびリフレッシュする一方法を示すフローチャートである。 この発明の一実施例に従った、キャッシュテーブルを使用およびリフレッシュする一方法を示すフローチャートである。 この発明の一実施例に従った、インテリジェントクライアントエージェントを搭載したモバイルクライアント機器を示す図である。 この発明の一実施例に従った、要求されたページを処理するためにインテリジェントクライアントエージェント内でディスパッチャを動作させる方法を示すフローチャートである。 この発明の一実施例に従った、スクリプトエンジンがインテリジェントクライアントエージェント内でページをアセンブルする方法を示すフローチャートである。 この発明の一実施例に従った、スクリプトエンジンがインテリジェントクライアントエージェント内でページをアセンブルする方法を示すフローチャートである。 この発明の一実施例に従ったキャッシュテーブルを示す図である。 この発明の一実施例に従った、キャッシュテーブルを動作させるクライアント機器とキャッシュテーブルに関連するデータソースとの間の通信のための例示的なフォーマットを示す図である。 この発明の一実施例に従った、キャッシュテーブルを動作させるクライアント機器とキャッシュテーブルに関連するデータソースとの間の通信のための例示的なフォーマットを示す図である。 この発明の一実施例に従った、キャッシュテーブルを動作させるクライアント機器とキャッシュテーブルに関連するデータソースとの間の通信のための例示的なフォーマットを示す図である。 この発明の一実施例に従った、キャッシュテーブルを動作させるクライアント機器とキャッシュテーブルに関連するデータソースとの間の通信のための例示的なフォーマットを示す図である。 この発明の一実施例に従った、キャッシュテーブルを動作させるクライアント機器とキャッシュテーブルに関連するデータソースとの間の通信のための例示的なフォーマットを示す図である。

Claims (44)

  1. 不連続的に利用可能な通信リンクでデータソースに結合されたモバイルコンピューティング機器において、データソースからのデータのキャッシングを容易にする方法であって、
    モバイルコンピューティング機器のデータベース内にキャッシュテーブルを構成するステップを含み、前記キャッシュテーブルは、
    データソース上のデータセットの第1の組の列を含むアクセスパラメータと、
    データセットの第1の組の列とは異なる、データセットの第2の組の列を含む結果列とを含み、前記方法はさらに、
    データベース内に前記キャッシュテーブルの1つ以上のインスタンスを生成するステップを含み、各前記キャッシュテーブルインスタンスは1組の行を含み、各前記行は、
    引数を含み、前記引数はアクセスパラメータの各列についての値を含み、各前記行はさらに、
    結果列の各列についての値を含む結果セットを含み、1組の行における各行は同じ引数を含む、方法。
  2. 各前記キャッシュテーブルインスタンスについて、前記キャッシュテーブルインスタンスの前記結果セットがデータ動作のために使用されるかどうかを判断するための1つ以上のパラメータを記憶させるステップをさらに含む、請求項1に記載の方法。
  3. 前記パラメータは、前記結果セットがデータソースから受取られた時を示す応答日を含む、請求項2に記載の方法。
  4. 前記パラメータは、前記結果セットがデータソースにおいて最後に修正された時を示す最終修正日を含む、請求項2に記載の方法。
  5. 前記パラメータは、前記結果セットがその間有効である第1の期間を示すよう構成された有効期間パラメータを含み、
    前記結果セットは前記第1の期間の終わりに無効となる、請求項2に記載の方法。
  6. 不連続的に利用可能な通信リンクが利用可能であるか否かにかかわらず、前記結果セットが有効であれば、前記結果セットは前記データ動作のために使用される、請求項5に記載の方法。
  7. 前記結果セットが無効である場合に限り、前記結果セットのための置換え結果セットがデータソースから検索される、請求項5に記載の方法。
  8. 前記結果セットが無効である場合に限り、前記結果セットについての更新がデータソースから検索される、請求項5に記載の方法。
  9. 前記パラメータは、前記結果セットが使用可能な、前記第1の期間に続く第2の期間を示すよう構成された古さパラメータを含み、
    前記結果セットは前記第2の期間の終わりに古くなる、請求項5に記載の方法。
  10. 前記結果セットが使用可能で、かつ不連続的に利用可能な通信リンクが利用できない場合、前記結果セットは前記データ動作のために使用される、請求項9に記載の方法。
  11. 第1のキャッシュテーブルインスタンスに関する第1のデータ動作を受取るステップと、
    (a) 前記第1のキャッシュテーブルインスタンスの前記結果セットが有効である場合、または
    (b) 前記第1のキャッシュテーブルインスタンスの前記結果セットが無効で、かつ
    (1) 前記第1のキャッシュテーブルインスタンスの前記結果セットが使用可能であり、かつ
    (2) 連続的とはいえない利用可能な通信リンクが利用できない場合に、前記第1のキャッシュテーブルインスタンスの前記結果セットを使用するステップとをさらに含む、請求項9に記載の方法。
  12. 前記第1のキャッシュテーブルインスタンスの前記結果セットが無効である場合に限り、前記第1のキャッシュテーブルインスタンスの前記結果セットについて更新を検索するステップをさらに含む、請求項11に記載の方法。
  13. 前記第1のキャッシュテーブルインスタンスの前記結果セットが無効である場合に限り、前記第1のキャッシュテーブルインスタンスの前記結果セットのための置換え結果セットを検索するステップをさらに含む、請求項11に記載の方法。
  14. 前記第1のキャッシュテーブルインスタンスの前記結果セットが無効で、
    前記第1のキャッシュテーブルインスタンスの前記結果セットが古く、かつ、
    連続的とはいえない利用可能な通信リンクが利用できない場合に、エラーを合図するステップをさらに含む、請求項11に記載の方法。
  15. 前記データセットはデータベーステーブルおよびビューのうちの1つである、請求項1に記載の方法。
  16. コンピュータにより実行されると、連続的とはいえない利用可能な通信リンクでデータソースに結合されたモバイルコンピューティング機器においてデータソースからのデータのキャッシングを容易にする方法をコンピュータに行なわせる命令を記憶する、コンピュータ読み取り可能なストレージ媒体であって、前記方法は、
    モバイルコンピューティング機器のデータベース内にキャッシュテーブルを構成するステップを含み、前記キャッシュテーブルは、
    データソース上のデータセットの第1の組の列を含むアクセスパラメータと、
    データセットの第1の組の列とは異なる、データセットの第2の組の列を含む結果列とを含み、前記方法はさらに、
    データベース内に前記キャッシュテーブルの1つ以上のインスタンスを生成するステップを含み、各前記キャッシュテーブルインスタンスは1組の行を含み、各前記行は、
    引数を含み、前記引数はアクセスパラメータの各列についての値を含み、各前記行はさらに、
    結果列の各列についての値を含む結果セットを含み、1組の行における各行は同じ引数を含む、コンピュータ読み取り可能なストレージ媒体。
  17. データサーバに不連続的に結合されたモバイルコンピューティング機器でのデータキャッシングを容易にする方法であって、
    データサーバ上の1つ以上の論理データテーブルを識別するステップと、
    各論理データテーブルについて、モバイルコンピューティング機器から論理テーブルへのアクセスを提供するよう構成されたテーブルデータプロセッサを保持するステップと、
    モバイルコンピューティング機器からデータサーバにおける引数を受取るステップとを含み、引数は第1の論理テーブルの1つ以上の列についての値を含み、前記方法はさらに、
    第1の論理テーブルの1組の行を識別するステップを含み、1組の行における各行は引
    数を含み、前記方法はさらに、
    1組の行をフィルタリングするステップを含み、前記フィルタリングするステップは、
    引数がモバイルコンピューティング機器から受取られた最後の時点以降修正されていないいずれの行も除外するステップと、
    引数に対応する1つ以上の列を行から除去するステップとを含み、前記方法はさらに、
    引数に応答して、フィルタリングされた1組の行をモバイルコンピューティング機器に戻すステップを含む、方法。
  18. コンピュータにより実行されると、データサーバに不連続的に結合されたモバイルコンピューティング機器でのデータキャッシングを容易にする方法をコンピュータに行なわせる命令を記憶する、コンピュータ読み取り可能なストレージ媒体であって、前記方法は、
    データサーバ上の1つ以上の論理データテーブルを識別するステップと、
    各論理データテーブルについて、モバイルコンピューティング機器から論理テーブルへのアクセスを提供するよう構成されたテーブルデータプロセッサを保持するステップと、
    モバイルコンピューティング機器からデータサーバにおける引数を受取るステップとを含み、引数は第1の論理テーブルの1つ以上の列についての値を含み、前記方法はさらに、
    第1の論理テーブルの1組の行を識別するステップを含み、1組の行における各行は引数を含み、前記方法はさらに、
    1組の行をフィルタリングするステップを含み、前記フィルタリングするステップは、
    引数がモバイルコンピューティング機器から受取られた最後の時点以降修正されていないいずれの行も除外するステップと、
    引数に対応する1つ以上の列を行から除去するステップとを含み、前記方法はさらに、
    引数に応答して、フィルタリングされた1組の行をモバイルコンピューティング機器に戻すステップを含む、コンピュータ読み取り可能なストレージ媒体。
  19. モバイルコンピューティング機器においてデータをキャッシュする方法であって、モバイルコンピューティング機器は不連続的に利用可能な無線リンクを介してデータソースに接続可能であり、前記方法は、
    モバイルコンピューティング機器においてキャッシュされた第1の組のデータに関する第1の動作を受取るステップと、
    前記第1の組のデータが有効かどうかを判断するステップと、
    前記第1の組のデータが無効である場合、前記不連続的に利用可能な無線リンクが利用可能かどうかを判断するステップと、
    前記第1の組のデータが無効で、かつ前記連続的とはいえない利用可能な無線リンクが利用できない場合、前記第1の組のデータが使用可能かどうかを判断するステップと、
    前記第1の組のデータが無効で、かつ前記連続的とはいえない利用可能な無線リンクが利用可能な場合に限り、前記第1の組のデータについての更新をデータソースから検索するステップとを含む、方法。
  20. 前記第1の組のデータが第1のトランザクションによってロックされているかどうかを判断するステップをさらに含み、
    前記第1の動作は前記第1のトランザクションによって開始されたものである、請求項19に記載の方法。
  21. 前記第1の組のデータ上で第1のトランザクションによってアクティブカーソルが開かれているかどうかを判断するステップをさらに含み、
    前記第1の動作は前記第1のトランザクションによって開始されたものである、請求項
    19に記載の方法。
  22. 前記第1の組のデータが有効かどうかを判断する前記ステップは、
    前記第1の組のデータに関連する有効性パラメータにアクセスするステップを含み、前記有効性パラメータは、前記第1の組のデータが無効になる第1の時点を示すよう構成されており、判断する前記ステップはさらに、
    前記第1の動作の時点を前記第1の時点と比較するステップを含み、
    前記第1の組のデータは前記第1の時点の前で有効である、請求項19に記載の方法。
  23. 前記第1の組のデータが使用可能かどうかを判断する前記ステップは、
    前記第1の組のデータに関連する古さパラメータにアクセスするステップを含み、前記古さパラメータは、前記第1の組のデータが古くなる、前記第1の時点の後の第2の時点を示すよう構成されており、判断する前記ステップはさらに、
    前記第1の動作の前記時点を前記第2の時点と比較するステップを含み、
    前記第1の組のデータは前記第1の時点と前記第2の時点との間で使用可能である、請求項22に記載の方法。
  24. 第1の動作を受取る前記ステップの前に、
    前記第1の組のデータを含むデータをキャッシュするためにモバイルコンピューティング機器にキャッシュテーブルを構成するステップをさらに含み、前記キャッシュテーブルは、
    データソース上のデータセットの第1の組の列を含む1組のアクセスパラメータと、
    データセットの第2の組の列とによって定義される、請求項19に記載の方法。
  25. 第1の動作を受取る前記ステップの前に、
    前記キャッシュテーブルの1つ以上のインスタンスを生成するステップをさらに含み、各前記キャッシュテーブルインスタンスは、
    前記1組のアクセスパラメータについての一意的な1組の値を含む引数と、
    前記第2の組の列についての値を含む結果セットとを含み、
    前記第1の組のデータは第1のキャッシュテーブルインスタンスの第1の結果セットを含む、請求項24に記載の方法。
  26. 前記第1の組のデータが有効である場合、または、
    前記第1の組のデータが無効で、前記連続的とはいえない利用可能な無線リンクが利用できず、かつ前記第1の組のデータが使用可能である場合に、
    前記第1の動作のために前記第1の組のデータを使用するステップをさらに含む、請求項19に記載の方法。
  27. コンピュータにより実行されると、モバイルコンピューティング機器においてデータをキャッシュする方法をコンピュータに行なわせる命令を記憶する、コンピュータ読み取り可能なストレージ媒体であって、モバイルコンピューティング機器は不連続的に利用可能な無線リンクを介してデータソースに接続可能であり、前記方法は、
    モバイルコンピューティング機器においてキャッシュされた第1の組のデータに関する第1の動作を受取るステップと、
    前記第1の組のデータが有効かどうかを判断するステップと、
    前記第1の組のデータが無効である場合、前記連続的とはいえない利用可能な無線リンクが利用可能かどうかを判断するステップと、
    前記第1の組のデータが無効で、かつ前記不連続的に利用可能な無線リンクが利用できない場合、前記第1の組のデータが使用可能かどうかを判断するステップと、
    前記第1の組のデータが無効で、かつ前記連続的とはいえない利用可能な無線リンクが
    利用可能な場合に限り、前記第1の組のデータについての更新をデータソースから検索するステップとを含む、コンピュータ読み取り可能なストレージ媒体。
  28. モバイル機器においてデータをキャッシュするためのデータベースであって、
    無線通信接続を介してアクセス可能なデータソースの第1の組の属性に対応する1組のアクセスパラメータと、データソースの第2の組の属性とによって定義されるキャッシュテーブルを含み、データベースは無線通信接続を介して中央データソースに不連続的に接続され、前記データベースはさらに、
    前記キャッシュテーブルの1つ以上のインスタンスを含み、各前記キャッシュテーブルインスタンスは、
    引数を含み、前記引数は前記アクセスパラメータについての一意的な1組の値を含み、各前記キャッシュテーブルインスタンスはさらに、
    前記第2の組の属性についての値を含む結果セットを含み、前記データベースはさらに、
    各前記キャッシュテーブルインスタンスについて、前記結果セットがモバイル機器において使用可能な期間を判断するための情報を含む、データベース。
  29. 前記結果セットがその間使用可能な前記期間は、前記結果セットがその間有効な第1の期間を含む、請求項28に記載のデータベース。
  30. データベースは、前記第1の期間中、中央データベースから前記結果セットを検索しないよう構成されている、請求項29に記載のデータベース。
  31. 前記結果セットがその間使用可能な前記期間はさらに、前記結果セットがその間無効であるもののまだ古くなってはいない第2の期間を含み、
    前記第2の期間は前記第1の期間の直後に続く、請求項29に記載のデータベース。
  32. 前記結果セットがデータベーストランザクションによってロックされている場合、または、
    データベーストランザクションが前記結果セット上で開かれたアクティブカーソルを有する場合を除き、
    前記結果セットは、前記第2の期間の後、データベーストランザクションによって使用できない、請求項31に記載のデータベース。
  33. 前記情報は、
    前記結果セットがいつ無効になるかを示すよう構成された第1のパラメータと、
    前記結果セットがいつ古くなるかを示すよう構成された第2のパラメータとを含む、請求項28に記載のデータベース。
  34. データソースへの動作の送信前に、前記1つ以上のキャッシュテーブルインスタンスに動作を記憶させるよう構成された待ち行列をさらに含み、
    データソースが無線通信接続を介してアクセス可能ではない場合、動作は前記待ち行列に記憶される、請求項28に記載のデータベース。
  35. 無線リンクを介して中央データソースに接続可能なモバイルコンピューティング機器においてデータをキャッシュするためのシステムであって、
    中央データソースに対し、オンラインモードおよびオフラインモードのいずれかで選択的に動作するよう構成されたデータベースと、
    データベース内の、データソースの第1の組の属性に対応する1組のアクセスパラメータと中央データソースの第2の組の属性とによって定義されたキャッシュテーブルと、
    データベース内の、前記キャッシュテーブルの1つ以上のインスタンスとを含み、各前記キャッシュテーブルインスタンスは、
    前記アクセスパラメータの各々についての値を含む引数と、
    1組の結果とを含み、各前記結果はデータソースの前記第2の組の属性の各々についての値を含み、前記システムはさらに、
    各前記キャッシュテーブルインスタンスについて、前記結果セットが使用可能かどうかを判断するための情報を含む、システム。
  36. 第1のキャッシュテーブルインスタンスの第1の結果セットについての前記情報は、
    前記第1の結果セットがデータソースからデータベースに最後に提供された時を示すよう構成された応答日パラメータ、
    前記第1の結果セットがデータソースで最後に修正された時を示すよう構成された最終修正日パラメータ、
    前記第1の結果セットがその間有効である第1の期間を示すよう構成され、前記第1の結果セットが有効であれば前記第1の結果セットは使用可能である、有効期間パラメータ、および、
    前記第1の結果セットがその間使用可能である、前記第1の期間の満了時に始まる第2の期間を示すよう構成された古さパラメータのうちの1つ以上を含む、請求項35に記載のシステム。
  37. 前記第1のキャッシュテーブルインスタンスに関する第1の動作が時点Oで受取られ、
    前記第1の期間が時点Vで終わり、
    前記第2の時点が時点Uで終わり、
    OがVより早い場合、または、OがVより遅く、OがUより早く、かつ前記データベースがデータソースに対してオフラインモードで動作される場合に、前記結果セットは前記第1の動作のために使用可能である、請求項36に記載のシステム。
  38. 前記第1の結果セットがデータベースに存在しない場合、または、
    前記第1の結果セットがデータベースに存在するが使用できない場合に限り、
    前記データベースは、第1のキャッシュテーブルインスタンスについての第1の結果セットを受取るために中央データソースとオンラインモードで動作する、請求項35に記載のシステム。
  39. 第1のキャッシュテーブルインスタンスの第1の結果セットが有効である場合、前記データベースは、中央データソースへの無線リンクが利用可能であるか否かにかかわらず、前記第1のキャッシュテーブルインスタンスに関する動作中、オフラインモードで動作する、請求項35に記載のシステム。
  40. モバイルコンピューティング機器においてデータをキャッシュするためのシステムであって、モバイルコンピューティング機器は中央データソースへの不連続な基準での接続用に構成されており、前記システムは、
    モバイルコンピューティング機器において、中央データソースからデータをキャッシュするよう構成されたキャッシュテーブルと、
    前記キャッシュテーブルにおける1つ以上の入力とを含み、各前記入力は中央データソースからの1組のデータを含み、前記システムはさらに、
    前記キャッシュテーブルにおける各入力用の、前記1組のデータがその間有効である期間を判断するための有効性パラメータと、
    前記キャッシュテーブルにおける各入力用の、前記1組のデータがその間有効な前記期間の後で前記1組のデータが使用可能かどうかを判断するための使用可能性パラメータと、
    モバイルコンピューティング機器を中央データソースに、連続的とはいえない基準で接続するよう構成された通信モジュールとを含む、システム。
  41. 前記有効性パラメータは、前記1組のデータが無効になる第1の時点を識別するよう構成されており、
    前記第1の時点までに、前記1組のデータは、モバイルコンピューティング機器が中央データソースに接続されているか否かにかかわらず、前記キャッシュテーブル入力に関する動作のために使用される、請求項40に記載のシステム。
  42. 前記使用可能性パラメータは、前記1組のデータが古くなる第2の時点を識別するよう構成されており、
    前記第1の時点の後、かつ前記第2の時点までに、前記1組のデータは、モバイルコンピューティング機器が中央データソースに接続されていない場合に限り、前記キャッシュテーブル入力に関する動作のために使用される、請求項40に記載のシステム。
  43. 前記通信モジュールは、一度に最大1つのキャッシュテーブル入力動作のためにモバイルコンピューティング機器を中央データソースに接続するよう構成されている、請求項40に記載のシステム。
  44. モバイルコンピューティング機器は、有効なキャッシュテーブル入力に関する動作のために中央データソースに接続されない、請求項43に記載のシステム。
JP2004523026A 2002-07-17 2003-06-25 モバイルアプリケーション用データをキャッシュするためのシステムおよび方法 Expired - Lifetime JP4448444B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/197,760 US6941310B2 (en) 2002-07-17 2002-07-17 System and method for caching data for a mobile application
PCT/US2003/020050 WO2004010305A2 (en) 2002-07-17 2003-06-25 System and method for caching data for a mobile application

Publications (2)

Publication Number Publication Date
JP2005533324A true JP2005533324A (ja) 2005-11-04
JP4448444B2 JP4448444B2 (ja) 2010-04-07

Family

ID=30442992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004523026A Expired - Lifetime JP4448444B2 (ja) 2002-07-17 2003-06-25 モバイルアプリケーション用データをキャッシュするためのシステムおよび方法

Country Status (8)

Country Link
US (1) US6941310B2 (ja)
EP (1) EP1522031B1 (ja)
JP (1) JP4448444B2 (ja)
CN (1) CN100428228C (ja)
AU (1) AU2003247647B2 (ja)
CA (1) CA2491731C (ja)
HK (1) HK1071617A1 (ja)
WO (1) WO2004010305A2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008510244A (ja) * 2004-08-19 2008-04-03 ノキア コーポレイション ネットワーク上のマルチメディアデータ処理を制御するためのディレクトリサーバデータのキャッシング
JP2009169959A (ja) * 2009-02-18 2009-07-30 Rakuten Inc 情報提供システム、情報提供装置、適正判定情報生成方法及び適正判定情報生成処理プログラム
JP2009266147A (ja) * 2008-04-30 2009-11-12 Internatl Business Mach Corp <Ibm> データベースと仮想テーブルの整合性を維持する方法および装置。
JP2010503117A (ja) * 2006-09-06 2010-01-28 マイクロソフト コーポレーション 動的フラグメントマッピング
US7925934B2 (en) 2007-02-16 2011-04-12 Rakuten, Inc. Information providing system, information providing device, appropriateness judgment information generation method and appropriateness judgment information generation process program
JP2015531952A (ja) * 2012-09-20 2015-11-05 テンセント テクノロジー (シェンジェン) カンパニー リミテッド オフラインキャッシングの方法及び装置

Families Citing this family (197)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7865528B2 (en) 2001-01-09 2011-01-04 Nextair Corporation Software, devices and methods facilitating execution of server-side applications at mobile devices
AU2003207495A1 (en) 2002-01-08 2003-07-24 Seven Networks, Inc. Connection architecture for a mobile network
US7089228B2 (en) * 2002-04-18 2006-08-08 International Business Machines Corporation Computer apparatus and method for caching results of a database query
US8868544B2 (en) 2002-04-26 2014-10-21 Oracle International Corporation Using relational structures to create and support a cube within a relational database system
US7415457B2 (en) * 2002-04-26 2008-08-19 Oracle International Corporation Using a cache to provide cursor isolation
CN1221898C (zh) * 2002-08-13 2005-10-05 国际商业机器公司 刷新网络代理高速缓存服务器对象的系统和方法
US20040078395A1 (en) * 2002-10-17 2004-04-22 Rinkevich Debora B. System and method for synchronizing data between a mobile computing device and a remote server
US7853563B2 (en) * 2005-08-01 2010-12-14 Seven Networks, Inc. Universal data aggregation
US8468126B2 (en) * 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
US7917468B2 (en) * 2005-08-01 2011-03-29 Seven Networks, Inc. Linking of personal information management data
US20040193654A1 (en) * 2003-03-31 2004-09-30 Nitzan Peleg Logical range logging
US7409389B2 (en) * 2003-04-29 2008-08-05 International Business Machines Corporation Managing access to objects of a computing environment
US20040240408A1 (en) * 2003-06-02 2004-12-02 Mobimate Ltd. System, method and apparatus for the generation and deployment of mobile applications
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US8166101B2 (en) * 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US7356572B2 (en) * 2003-11-10 2008-04-08 Yahoo! Inc. Method, apparatus and system for providing a server agent for a mobile device
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7143120B2 (en) * 2004-05-03 2006-11-28 Microsoft Corporation Systems and methods for automated maintenance and repair of database and file systems
US7650432B2 (en) * 2004-05-20 2010-01-19 Bea Systems, Inc. Occasionally-connected application server
US8615601B2 (en) * 2004-05-21 2013-12-24 Oracle International Corporation Liquid computing
US7328222B2 (en) * 2004-08-26 2008-02-05 Oracle International Corporation Method and apparatus for preserving data coherency in a database by generating a command object that includes instructions for writing a data record to a local cache
US7979404B2 (en) 2004-09-17 2011-07-12 Quest Software, Inc. Extracting data changes and storing data history to allow for instantaneous access to and reconstruction of any point-in-time data
US8010082B2 (en) * 2004-10-20 2011-08-30 Seven Networks, Inc. Flexible billing architecture
US7441271B2 (en) 2004-10-20 2008-10-21 Seven Networks Method and apparatus for intercepting events in a communication system
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8156423B1 (en) * 2004-11-01 2012-04-10 Sprint Spectrum L.P. Method and system for dynamically updating fixed resources on client station
US7904913B2 (en) 2004-11-02 2011-03-08 Bakbone Software, Inc. Management interface for a system that provides automated, real-time, continuous data protection
US7643818B2 (en) * 2004-11-22 2010-01-05 Seven Networks, Inc. E-mail messaging to/from a mobile terminal
US7706781B2 (en) 2004-11-22 2010-04-27 Seven Networks International Oy Data security in a mobile e-mail service
FI117152B (fi) 2004-12-03 2006-06-30 Seven Networks Internat Oy Sähköpostiasetusten käyttöönotto matkaviestimelle
US7873787B2 (en) * 2005-01-26 2011-01-18 International Business Machines Corporation Caching controls/policies for structured markup objects
US7877703B1 (en) 2005-03-14 2011-01-25 Seven Networks, Inc. Intelligent rendering of information in a limited display environment
GB2424790A (en) * 2005-03-29 2006-10-04 Hewlett Packard Development Co Communication assistance system responsive to user identification data
US7437361B2 (en) * 2005-04-14 2008-10-14 Bea Systems, Inc. Use of retry period in an application server to ensure that status information is sent from first to second database instance
US7505975B2 (en) * 2005-04-14 2009-03-17 Bea Systems, Inc. Use of transaction context to select single database instance for global transaction
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
GB2425654B (en) * 2005-04-29 2010-03-17 Seiko Epson Corp A method of fabricating a heterojunction of organic semiconducting polymers
US7716479B2 (en) * 2005-06-03 2010-05-11 Microsoft Corporation Dynamically resolving recipients to retrieve public keys during send/receive
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US7809386B2 (en) 2005-06-29 2010-10-05 Nokia Corporation Local network proxy for a remotely connected mobile device operating in reduced power mode
US7788521B1 (en) * 2005-07-20 2010-08-31 Bakbone Software, Inc. Method and system for virtual on-demand recovery for real-time, continuous data protection
US20070027980A1 (en) * 2005-07-28 2007-02-01 Allan Herrod Offline management of wireless devices
GB0522031D0 (en) 2005-10-28 2005-12-07 Koninkl Philips Electronics Nv Radio communication apparatus and method of control
US7986685B2 (en) * 2005-11-08 2011-07-26 Avaya Inc. Real-time XML messaging protocol
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
FI118666B (fi) * 2005-12-22 2008-01-31 Sendandsee Oy Informaation jakelu tietoliikennejärjestelmissä
AU2007206046A1 (en) * 2006-01-19 2007-07-26 Safelite Group, Inc. Method and device for providing location based content delivery
US7769395B2 (en) * 2006-06-20 2010-08-03 Seven Networks, Inc. Location-based operations and messaging
US8195805B2 (en) * 2006-02-28 2012-06-05 Harris Corporation Device configuration and data extraction using a portable transaction format
US20070239725A1 (en) * 2006-03-28 2007-10-11 Microsoft Corporation Active cache offline access and management of project files
US20070230283A1 (en) * 2006-03-29 2007-10-04 International Business Machines Corporation Date range determination for cached date driven values
US7769805B1 (en) * 2006-03-31 2010-08-03 Spring Communications Company L.P. Mobile device catalog and caching and architecture
US20080001717A1 (en) * 2006-06-20 2008-01-03 Trevor Fiatal System and method for group management
US9336323B2 (en) * 2006-08-04 2016-05-10 Flash Networks, Inc. Method and system for accelerating surfing the internet
US8239480B2 (en) * 2006-08-31 2012-08-07 Sony Ericsson Mobile Communications Ab Methods of searching using captured portions of digital audio content and additional information separate therefrom and related systems and computer program products
US8645973B2 (en) * 2006-09-22 2014-02-04 Oracle International Corporation Mobile applications
US9697253B2 (en) * 2006-10-20 2017-07-04 Oracle International Corporation Consistent client-side cache
US10296629B2 (en) * 2006-10-20 2019-05-21 Oracle International Corporation Server supporting a consistent client-side cache
US7814234B2 (en) * 2006-10-30 2010-10-12 Microsoft Corporation Offline execution of web based applications
US8131723B2 (en) 2007-03-30 2012-03-06 Quest Software, Inc. Recovering a file system to any point-in-time in the past with guaranteed structure, content consistency and integrity
US8364648B1 (en) 2007-04-09 2013-01-29 Quest Software, Inc. Recovering a database to any point-in-time in the past with guaranteed data consistency
US8693494B2 (en) * 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8468310B2 (en) * 2007-07-31 2013-06-18 Vmware, Inc. Method and system for tracking data correspondences
US20090063590A1 (en) * 2007-08-30 2009-03-05 Microsoft Corporation Operating System Support of Graceful Degradation for Web Applications
US7844760B2 (en) * 2007-09-29 2010-11-30 Intel Corporation Schedule and data caching for wireless transmission
US20090112915A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Class configuration for locally cached remote data binding
US9201921B2 (en) * 2007-11-02 2015-12-01 Adobe Systems Incorporated Methods and systems for offline execution of rich internet applications
US8631203B2 (en) * 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US9002828B2 (en) * 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8793305B2 (en) * 2007-12-13 2014-07-29 Seven Networks, Inc. Content delivery to a mobile device from a content service
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US7493334B1 (en) 2008-01-17 2009-02-17 International Business Machines Corporation System and method for handling invalid condition of a data element
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) * 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8650154B2 (en) 2008-02-19 2014-02-11 International Business Machines Corporation Document synchronization solution
EP2096559A1 (en) * 2008-02-27 2009-09-02 Nextair Corporation Method and software for facilitating interaction with a personal information manager application at a wireless communication device
US7953893B1 (en) 2008-04-03 2011-05-31 Sprint Spectrum L.P. Method and system for expedited HTTP communication
US8725679B2 (en) * 2008-04-07 2014-05-13 International Business Machines Corporation Client side caching of synchronized data
US8495149B2 (en) * 2008-05-15 2013-07-23 International Business Machines Corporation Off-line smartphone file system snapshots
US8787947B2 (en) * 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
GB0811407D0 (en) * 2008-06-20 2008-07-30 Symbian Software Ltd Cost influenced downloading
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US9535967B2 (en) * 2008-09-10 2017-01-03 Salesforce.Com, Inc. Method and system for providing efficient and complex database functionality to a mobile device
US9032151B2 (en) * 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US9311358B2 (en) * 2008-12-18 2016-04-12 Teradata Us, Inc. Smart cache component for demand chain management
US8413139B2 (en) * 2009-03-11 2013-04-02 Microsoft Corporation Programming model for application and data access and synchronization within virtual environments
US9680964B2 (en) * 2009-03-11 2017-06-13 Microsoft Technology Licensing, Llc Programming model for installing and distributing occasionally connected applications
US8812451B2 (en) 2009-03-11 2014-08-19 Microsoft Corporation Programming model for synchronizing browser caches across devices and web services
CN102414681A (zh) * 2009-03-30 2012-04-11 诺基亚公司 用于处理文档对象模型(dom)以处理视频内容的方法和系统
WO2010118019A1 (en) * 2009-04-06 2010-10-14 Nokia Corporation Methods and systems for using multipart messaging with preset constraints
GB0906004D0 (en) * 2009-04-07 2009-05-20 Omnifone Ltd MusicStation desktop
CN102483768B (zh) * 2009-04-16 2015-12-16 泰必高软件公司 基于策略的储存结构分布
US8407588B1 (en) * 2009-10-22 2013-03-26 The Boeing Company Large columnar text file editor
US9262330B2 (en) * 2009-11-04 2016-02-16 Microsoft Technology Licensing, Llc Column oriented in-memory page caching
US9336291B2 (en) * 2009-12-30 2016-05-10 Sybase, Inc. Message based synchronization for mobile business objects
CN102141996A (zh) * 2010-01-29 2011-08-03 国际商业机器公司 数据访问方法和配置管理数据库系统
US8924348B2 (en) * 2010-04-05 2014-12-30 Tata Consultancy Services Limited System and method for sharing data between occasionally connected devices and remote global database
US8285258B2 (en) 2010-07-07 2012-10-09 Research In Motion Limited Pushed content notification and display
CA2806557C (en) 2010-07-26 2014-10-07 Michael Luna Mobile application traffic optimization
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
EP2599003B1 (en) 2010-07-26 2018-07-11 Seven Networks, LLC Mobile network traffic coordination across multiple applications
CA2806548C (en) 2010-07-26 2015-03-31 Seven Networks, Inc. Distributed implementation of dynamic wireless traffic policy
US9104211B2 (en) 2010-11-19 2015-08-11 Google Inc. Temperature controller with model-based time to target calculation and display
US8727611B2 (en) 2010-11-19 2014-05-20 Nest Labs, Inc. System and method for integrating sensors in thermostats
US8918219B2 (en) 2010-11-19 2014-12-23 Google Inc. User friendly interface for control unit
US9531597B2 (en) * 2010-10-28 2016-12-27 Hewlett Packard Enterprise Development Lp Methods and systems to maintain data coherency
WO2012061437A1 (en) * 2010-11-01 2012-05-10 Michael Luna Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8326985B2 (en) 2010-11-01 2012-12-04 Seven Networks, Inc. Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
EP2635973A4 (en) 2010-11-01 2014-01-15 Seven Networks Inc TO THE BEHAVIOR OF A MOBILE APPLICATION AND INTERMEDIATE STORAGE TAILORED TO NETWORK CONDITIONS
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
US8166164B1 (en) 2010-11-01 2012-04-24 Seven Networks, Inc. Application and network-based long poll request detection and cacheability assessment therefor
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8942771B1 (en) 2010-11-02 2015-01-27 Google Inc. Dynamic data refresh for mobile device applications
US9075419B2 (en) 2010-11-19 2015-07-07 Google Inc. Systems and methods for a graphical user interface of a controller for an energy-consuming system having spatially related discrete display elements
US8195313B1 (en) 2010-11-19 2012-06-05 Nest Labs, Inc. Thermostat user interface
US11334034B2 (en) 2010-11-19 2022-05-17 Google Llc Energy efficiency promoting schedule learning algorithms for intelligent thermostat
US9459018B2 (en) 2010-11-19 2016-10-04 Google Inc. Systems and methods for energy-efficient control of an energy-consuming system
US9256230B2 (en) 2010-11-19 2016-02-09 Google Inc. HVAC schedule establishment in an intelligent, network-connected thermostat
WO2013058820A1 (en) 2011-10-21 2013-04-25 Nest Labs, Inc. User-friendly, network connected learning thermostat and related systems and methods
EP2596658B1 (en) 2010-11-22 2018-05-09 Seven Networks, LLC Aligning data transfer to optimize connections established for transmission over a wireless network
EP2636268B1 (en) 2010-11-22 2019-02-27 Seven Networks, LLC Optimization of resource polling intervals to satisfy mobile device requests
CN102541870A (zh) * 2010-12-15 2012-07-04 金蝶软件(中国)有限公司 数据表的处理方法及系统
EP2661697B1 (en) 2011-01-07 2018-11-21 Seven Networks, LLC System and method for reduction of mobile network traffic used for domain name system (dns) queries
WO2012145544A2 (en) 2011-04-19 2012-10-26 Seven Networks, Inc. Device resource sharing for network resource conservation
US8621075B2 (en) 2011-04-27 2013-12-31 Seven Metworks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
WO2012149221A2 (en) 2011-04-27 2012-11-01 Seven Networks, Inc. System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
CN102779132B (zh) * 2011-05-12 2014-11-19 阿里巴巴集团控股有限公司 数据更新方法、系统及数据库服务器
US8769073B2 (en) * 2011-06-29 2014-07-01 International Business Machines Corporation Intelligent offline caching of non-navigated content based on usage metrics
EP2737741A4 (en) 2011-07-27 2015-01-21 Seven Networks Inc SURVEILLANCE OF MOBILE APPLICATION ACTIVITIES IN SEARCH OF MALICIOUS TRAFFIC ON A MOBILE DEVICE
US9477943B2 (en) 2011-09-28 2016-10-25 Elwha Llc Multi-modality communication
US9503550B2 (en) 2011-09-28 2016-11-22 Elwha Llc Multi-modality communication modification
US9788349B2 (en) 2011-09-28 2017-10-10 Elwha Llc Multi-modality communication auto-activation
US9906927B2 (en) 2011-09-28 2018-02-27 Elwha Llc Multi-modality communication initiation
US20130078972A1 (en) * 2011-09-28 2013-03-28 Royce A. Levien Network handling of multi-party multi-modality communication
US9762524B2 (en) 2011-09-28 2017-09-12 Elwha Llc Multi-modality communication participation
US9699632B2 (en) 2011-09-28 2017-07-04 Elwha Llc Multi-modality communication with interceptive conversion
US9244902B2 (en) * 2011-10-20 2016-01-26 Zynga, Inc. Localization framework for dynamic text
EP3486743B1 (en) 2011-10-21 2022-05-25 Google LLC Energy efficiency promoting schedule learning algorithms for intelligent thermostat
WO2013086225A1 (en) 2011-12-06 2013-06-13 Seven Networks, Inc. A mobile device and method to utilize the failover mechanisms for fault tolerance provided for mobile traffic management and network/device resource conservation
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9208123B2 (en) 2011-12-07 2015-12-08 Seven Networks, Llc Mobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor
WO2013090834A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
US20130159511A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. System and method for generating a report to a network operator by distributing aggregation of data
US8861354B2 (en) 2011-12-14 2014-10-14 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
EP2801236A4 (en) 2012-01-05 2015-10-21 Seven Networks Inc DETECTION AND MANAGEMENT OF USER INTERACTIONS WITH FRONT PANEL APPLICATIONS ON A MOBILE DEVICE IN DISTRIBUTED CACHE STORES
WO2013116856A1 (en) 2012-02-02 2013-08-08 Seven Networks, Inc. Dynamic categorization of applications for network access in a mobile network
WO2013116852A1 (en) 2012-02-03 2013-08-08 Seven Networks, Inc. User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US20130268656A1 (en) 2012-04-10 2013-10-10 Seven Networks, Inc. Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network
US10725997B1 (en) * 2012-06-18 2020-07-28 EMC IP Holding Company LLC Method and systems for concurrent collection and generation of shared data
WO2014011216A1 (en) 2012-07-13 2014-01-16 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9632828B1 (en) * 2012-09-24 2017-04-25 Amazon Technologies, Inc. Computing and tracking client staleness using transaction responses
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
KR102036579B1 (ko) * 2012-11-09 2019-10-28 삼성전자주식회사 무선 통신 시스템에서 웹 서비스 제공 방법 및 장치
US20140177497A1 (en) 2012-12-20 2014-06-26 Seven Networks, Inc. Management of mobile device radio state promotion and demotion
US9241314B2 (en) 2013-01-23 2016-01-19 Seven Networks, Llc Mobile device with application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9326185B2 (en) 2013-03-11 2016-04-26 Seven Networks, Llc Mobile network congestion recognition for optimization of mobile traffic
US9456320B2 (en) * 2013-06-24 2016-09-27 Jeff Jacquin System and method for simultaneously sending a message with a call to a mobile device
US20150019321A1 (en) * 2013-07-12 2015-01-15 Klever Marketing, Inc. Using universal product code to retrieve coupons at checkout
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US9430775B2 (en) 2013-09-17 2016-08-30 Responsys, Inc. System and method for analyzing and tuning a marketing program
US9749416B2 (en) * 2013-11-26 2017-08-29 International Business Machines Corporation Managing inventory data for a distributed cache provided by a plurality of wireless mobile devices
US10114874B2 (en) * 2014-02-24 2018-10-30 Red Hat, Inc. Source query caching as fault prevention for federated queries
JP6340917B2 (ja) * 2014-05-23 2018-06-13 富士ゼロックス株式会社 文書管理プログラム、文書閲覧編集プログラム、文書管理装置、端末装置及び文書管理システム
US9674261B2 (en) * 2014-06-10 2017-06-06 Sap Portals Israel Ltd. ODBC access to external services
WO2016010932A1 (en) 2014-07-14 2016-01-21 Oracle International Corporation Age-based policies for determining database cache hits
US10277414B2 (en) 2014-07-18 2019-04-30 Oracle International Corporation Communication gateway services in a networked message distribution system
US10565611B2 (en) 2014-07-18 2020-02-18 Oracle International Corporation Controlling real-time execution of internet communication campaigns with parameterizable flow control structures
US9531830B2 (en) * 2014-07-21 2016-12-27 Sap Se Odata offline cache for mobile device
CN104331492B (zh) * 2014-11-14 2017-11-21 北京国双科技有限公司 一种缓存多实例数据的方法及装置
US9917810B2 (en) 2014-12-09 2018-03-13 Oracle International Corporation Common aggregator framework for SMS aggregators
US20160255169A1 (en) * 2015-02-27 2016-09-01 Futurewei Technologies, Inc. Method and system for smart object eviction for proxy cache
US10389842B2 (en) 2015-09-18 2019-08-20 International Business Machines Corporation Mobile device cache updating
US10747748B2 (en) * 2016-01-29 2020-08-18 International Business Machines Corporation Generating mobile data schema to support disconnected operations
CN106021468B (zh) * 2016-05-17 2019-11-19 上海携程商务有限公司 分布式缓存和本地缓存的更新方法和系统
JP6677605B2 (ja) 2016-08-22 2020-04-08 株式会社東芝 プログラム、ストレージシステム、およびストレージシステムの制御方法
CN106446107A (zh) * 2016-09-05 2017-02-22 努比亚技术有限公司 配置文件处理装置和方法
CN106682202B (zh) * 2016-12-29 2020-01-10 北京奇艺世纪科技有限公司 一种搜索缓存更新方法及装置
CN108428182B (zh) * 2017-06-25 2021-08-24 平安科技(深圳)有限公司 开发平台装置、获取保单号的方法及计算机可读存储介质
CN107301238A (zh) * 2017-06-28 2017-10-27 北京京东尚科信息技术有限公司 用户请求的处理方法和系统
US11567934B2 (en) 2018-04-20 2023-01-31 Oracle International Corporation Consistent client-side caching for fine grained invalidations
CN109800247A (zh) * 2018-12-14 2019-05-24 深圳壹账通智能科技有限公司 数据查找方法、装置、计算机设备以及存储介质
KR102195838B1 (ko) 2019-04-10 2020-12-28 주식회사 티맥스 소프트 데이터 베이스 관리 방법
US10880583B2 (en) 2019-04-26 2020-12-29 Advanced New Technologies Co., Ltd. Method, apparatus, terminal, and readable storage medium for offline caching
US12020696B2 (en) 2019-10-21 2024-06-25 Soundhound Ai Ip, Llc Automatic synchronization for an offline virtual assistant
CN113542326B (zh) * 2020-04-17 2023-04-25 上海际链网络科技有限公司 分布式系统的数据缓存方法及装置、服务器、存储介质
CN115145864B (zh) * 2022-09-05 2022-11-04 深圳比特微电子科技有限公司 数据处理方法、系统、电子设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05143453A (ja) * 1990-03-14 1993-06-11 Internatl Business Mach Corp <Ibm> 分散キヤツシユの階層無効化方法
JPH07220179A (ja) * 1994-01-31 1995-08-18 Tec Corp 商品販売登録データ処理装置
JPH10105481A (ja) * 1996-09-30 1998-04-24 Hitachi Ltd サービス仲介方法および装置
JP2000132436A (ja) * 1998-10-29 2000-05-12 Hitachi Ltd オフライン端末におけるプログラム、ファイルの世代管理方式
JP2000322390A (ja) * 1999-05-07 2000-11-24 Mitsubishi Electric Corp 分散データ処理システム
JP2001014200A (ja) * 1999-06-30 2001-01-19 Sharp Corp データベース同期方法及び該方法を実施するプログラムを記録した記録媒体
JP2001167190A (ja) * 1999-12-13 2001-06-22 Hitachi Kokusai Electric Inc 情報配信方法及び情報配信システム
JP2001184242A (ja) * 1999-12-24 2001-07-06 Hitachi Ltd キャッシュ制御方法および計算機システム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0752644A3 (en) * 1995-07-07 2001-08-22 Sun Microsystems, Inc. Memory management unit incorporating prefetch control
US5918245A (en) * 1996-03-13 1999-06-29 Sun Microsystems, Inc. Microprocessor having a cache memory system using multi-level cache set prediction
US5758337A (en) * 1996-08-08 1998-05-26 Microsoft Corporation Database partial replica generation system
AU6440398A (en) * 1997-02-26 1998-09-18 Siebel Systems, Inc. Method of using a cache to determine the visibility to a remote database client of a plurality of database transactions
US6714935B1 (en) * 1998-09-21 2004-03-30 Microsoft Corporation Management of non-persistent data in a persistent database
US6363387B1 (en) * 1998-10-20 2002-03-26 Sybase, Inc. Database system providing methodology for enhancing concurrency using row update bit and deferred locking
US6487547B1 (en) * 1999-01-29 2002-11-26 Oracle Corporation Database appliance comprising hardware and software bundle configured for specific database applications
US6757896B1 (en) * 1999-01-29 2004-06-29 International Business Machines Corporation Method and apparatus for enabling partial replication of object stores
US6640278B1 (en) * 1999-03-25 2003-10-28 Dell Products L.P. Method for configuration and management of storage resources in a storage network
EP1045551A3 (en) * 1999-04-15 2003-06-18 Lucent Technologies Inc. Method for transmission between data networks and wireless communication system
US6738775B2 (en) * 1999-11-30 2004-05-18 Base One International Corp. Database communication system and method for communicating with a database
US6823336B1 (en) * 2000-09-26 2004-11-23 Emc Corporation Data storage system and method for uninterrupted read-only access to a consistent dataset by one host processor concurrent with read-write access by another host processor
US6571259B1 (en) * 2000-09-26 2003-05-27 Emc Corporation Preallocation of file system cache blocks in a data storage system
US6643670B2 (en) * 2001-02-27 2003-11-04 Microsoft Corporation Efficient replication of an expanded partial database
JP4306152B2 (ja) * 2001-06-26 2009-07-29 株式会社日立製作所 クラスタ化したアプリケーションサーバおよびデータベース構造を持つWebシステム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05143453A (ja) * 1990-03-14 1993-06-11 Internatl Business Mach Corp <Ibm> 分散キヤツシユの階層無効化方法
JPH07220179A (ja) * 1994-01-31 1995-08-18 Tec Corp 商品販売登録データ処理装置
JPH10105481A (ja) * 1996-09-30 1998-04-24 Hitachi Ltd サービス仲介方法および装置
JP2000132436A (ja) * 1998-10-29 2000-05-12 Hitachi Ltd オフライン端末におけるプログラム、ファイルの世代管理方式
JP2000322390A (ja) * 1999-05-07 2000-11-24 Mitsubishi Electric Corp 分散データ処理システム
JP2001014200A (ja) * 1999-06-30 2001-01-19 Sharp Corp データベース同期方法及び該方法を実施するプログラムを記録した記録媒体
JP2001167190A (ja) * 1999-12-13 2001-06-22 Hitachi Kokusai Electric Inc 情報配信方法及び情報配信システム
JP2001184242A (ja) * 1999-12-24 2001-07-06 Hitachi Ltd キャッシュ制御方法および計算機システム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008510244A (ja) * 2004-08-19 2008-04-03 ノキア コーポレイション ネットワーク上のマルチメディアデータ処理を制御するためのディレクトリサーバデータのキャッシング
JP2010503117A (ja) * 2006-09-06 2010-01-28 マイクロソフト コーポレーション 動的フラグメントマッピング
JP4669067B2 (ja) * 2006-09-06 2011-04-13 マイクロソフト コーポレーション 動的フラグメントマッピング
US7925934B2 (en) 2007-02-16 2011-04-12 Rakuten, Inc. Information providing system, information providing device, appropriateness judgment information generation method and appropriateness judgment information generation process program
JP2009266147A (ja) * 2008-04-30 2009-11-12 Internatl Business Mach Corp <Ibm> データベースと仮想テーブルの整合性を維持する方法および装置。
JP2009169959A (ja) * 2009-02-18 2009-07-30 Rakuten Inc 情報提供システム、情報提供装置、適正判定情報生成方法及び適正判定情報生成処理プログラム
JP2015531952A (ja) * 2012-09-20 2015-11-05 テンセント テクノロジー (シェンジェン) カンパニー リミテッド オフラインキャッシングの方法及び装置

Also Published As

Publication number Publication date
EP1522031A2 (en) 2005-04-13
JP4448444B2 (ja) 2010-04-07
US20040015504A1 (en) 2004-01-22
EP1522031B1 (en) 2012-10-31
CA2491731C (en) 2011-01-04
HK1071617A1 (en) 2005-07-22
CN100428228C (zh) 2008-10-22
AU2003247647B2 (en) 2009-10-08
CA2491731A1 (en) 2004-01-29
AU2003247647A1 (en) 2004-02-09
WO2004010305A3 (en) 2004-08-05
WO2004010305A2 (en) 2004-01-29
US6941310B2 (en) 2005-09-06
CN1659548A (zh) 2005-08-24

Similar Documents

Publication Publication Date Title
JP4448444B2 (ja) モバイルアプリケーション用データをキャッシュするためのシステムおよび方法
US8245128B1 (en) Intelligent client agent for a hybrid online/offline application
US7464386B2 (en) Data controls architecture
US8452925B2 (en) System, method and computer program product for automatically updating content in a cache
US8112434B2 (en) Performance of an enterprise service bus by decomposing a query result from the service registry
US6820085B2 (en) Web system having clustered application servers and clustered databases
JP4578160B2 (ja) キャッシュエントリを無効化するために使用できるデータベーステーブル変更情報の登録および取り出し
US10409801B2 (en) Validation of web-based database updates
US20110321010A1 (en) Web application framework based on object oriented class mapping
US7978544B2 (en) Methods for providing a unified view of a domain model to a user
US20030158947A1 (en) Enabling online and offline operation
US20030158852A1 (en) System and method of synchronizing replicated data
US20060036617A1 (en) Suspending a result set and continuing from a suspended result set for transparent session migration
WO2002059773A1 (en) Modular distributed mobile data applications
US20060248058A1 (en) Method, apparatus, and system for unifying heterogeneous data sources for access from online applications
US8266392B2 (en) Cache access mechanism
US7743333B2 (en) Suspending a result set and continuing from a suspended result set for scrollable cursors
US6816879B1 (en) System and method for serving pre-generated presentation views of requested data
US20080281863A1 (en) Repository system and method
US7613710B2 (en) Suspending a result set and continuing from a suspended result set
US7596564B1 (en) Method and system for cache management of a cache including dynamically-generated content
WO2003042873A1 (en) Method and system for indexing and searching of semi-structured data
Eppili Approaches to improve the performance of storage and processing-subsystems in WebVigiL
CN117931765A (zh) 重新验证传播的细粒度决策
WO1999003048A1 (en) Static views of data bases

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100119

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100122

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4448444

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term