JP4698756B2 - ウェブベースアプリケーションのオフライン実行 - Google Patents

ウェブベースアプリケーションのオフライン実行 Download PDF

Info

Publication number
JP4698756B2
JP4698756B2 JP2009534750A JP2009534750A JP4698756B2 JP 4698756 B2 JP4698756 B2 JP 4698756B2 JP 2009534750 A JP2009534750 A JP 2009534750A JP 2009534750 A JP2009534750 A JP 2009534750A JP 4698756 B2 JP4698756 B2 JP 4698756B2
Authority
JP
Japan
Prior art keywords
web
web browser
resources
application
based application
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.)
Expired - Fee Related
Application number
JP2009534750A
Other languages
English (en)
Other versions
JP2010508581A (ja
JP2010508581A5 (ja
Inventor
シー.ホーキンス ジョナサン
エス.ニヨギ シャンク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010508581A publication Critical patent/JP2010508581A/ja
Publication of JP2010508581A5 publication Critical patent/JP2010508581A5/ja
Application granted granted Critical
Publication of JP4698756B2 publication Critical patent/JP4698756B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation

Description

本発明は、ウェブベースアプリケーションのオフライン実行のための方法およびシステムに関する。
コンピュータシステム及び関連技術は、社会の様々な側面に影響を与える。実際、情報を処理するコンピュータシステムの能力は、我々が生活しかつ働く方法を変革している。現在、コンピュータシステムは、コンピュータシステムの出現前には手作業で行われていた多くのタスク(例えば、文書処理、スケジューリング、会計等)を普通に行っている。さらに最近では、コンピュータシステムは、互いにかつ他の電子デバイスに接続されて、有線及び無線のコンピュータネットワークを形成し、そのコンピュータネットワークを介してコンピュータシステム及び他の電子デバイスは電子データを転送することができる。従って、多くのコンピュータのタスクの実行は、多くの異なるコンピュータシステム及び/または多くの異なるコンピュータコンポーネントに分散されている。
ネットワークベースの通信のある一般的形式では、ワールドワイドウェブ(WWW)上で電子メッセージが交換されている。ワールドワイドウェブ上のコンテンツは、クライアント/サーバモデルで通常アクセスされる。クライアントコンピュータシステムの「ウェブブラウザ」は、(例えば、ウェブブラウザにURL(Uniform Resource Locator)を入力することによって)サーバコンピュータシステムの「ウェブサーバ」により提供されているコンテンツへのアクセス要求を送信する。ウェブブラウザのユーザがコンテンツへのアクセス権を与えられている場合、ウェブサーバは通常、ウェブブラウザにコンテンツを提供する。ウェブ環境では、コンテンツ及びコンテンツ要求は、ハイパーテキスト転送プロトコル(HTTP)を用いて運ばれることが多い。ウェブベースコンテンツは、ハイパーテキストマークアップ言語(HTML)ページ、スタイルシート、画像、スクリプトなどで提供され得る。
全てではないがほとんどのウェブブラウザは、ウェブページの次のレンダリングをより効率的に示すことができるように、共通の記憶場所(ブラウザキャッシュ)においてウェブベースコンテンツの一部をキャッシュに格納する。例えば、ウェブブラウザがウェブサーバからウェブページを受信すると、ウェブブラウザは、ウェブページに含まれるコンテンツの一部を局所的にキャッシュに格納することができる。よって、ウェブブラウザがその後同じウェブページを対象とする場合、ウェブブラウザは、コンテンツのキャッシュした部分が存在するかどうか共通の記憶場所を調べ、キャッシュしたコンテンツのいずれかの部分がネットワークを介して受信される他のコンテンツと結合されて、ウェブページが構成され得る。従って、局所的にキャッシュしたコンテンツを用いることにより、ウェブサーバからのコンテンツを表示するためにネットワークを介して転送されるデータ量を減らすことができる。結果的に、ウェブページはより迅速にレンダリングされ、ユーザ体験を改善することができる。
しかしながら、一般的に、たとえウェブページの一部だけが変化する場合であっても、ページ全体がネットワークを介してリロードされてウェブブラウザ上で表示される。例えば、ウェブブラウザは、ウェブページにアクセスし、ネットワーク通信を介してウェブページのコンテンツをダウンロードし、ウェブページからのコンテンツをキャッシュに格納することもある。ウェブページのコンテンツがその後に変化する場合、ウェブページのほんの少しの部分が変化した場合であっても、ウェブブラウザはウェブページ全体を再ダウンロードする必要があるかもしれない。
よって、さらに最近では、ウェブブラウザには、部分的なページ更新を行ってキャッシュに格納したコンテンツをよりよく利用するものがある。ウェブページの適用部分が変化すると、コンテンツは再ダウンロードされる。しかしながら、ウェブブラウザは、ウェブページの一部の変化に応じてウェブページの全てのコンテンツを必ずしも再ダウンロードしなければならないというわけではない。例えば、ウェブページ内の単一の画像が変化すると、ウェブブラウザは変化を検出して、変化していないキャッシュした他のコンテンツを再ダウンロードせずに単一の画像を再ダウンロードすることができる。
ウェブベースアプリケーションにはまた、ウェブブラウザがデータベース(例えば、SQLデータベース)からのデータと相互に作用することを可能にするものがある。ウェブサーバは、ウェブブラウザから要求を受信して、データベースのデータの適当な部分にアクセスし、ウェブブラウザにデータベースのデータを返送する。ウェブベースアプリケーションの設定により、ユーザはまた、ウェブブラウザを介してデータベースのデータの一部を変更することが可能であってもよい。例えば、ユーザは、ウェブブラウザを介してデータベースレコードを生成して、修正することが可能であってもよい。環境によっては、ユーザは、ウェブブラウザを介してSQL動作(CREATE TABLE、SELECT、INSERT、UPDATE、DELETE等)を実行することができる。よって、ウェブブラウザは、ネットワーク(例えば、インターネット)を介してデータベースのデータを操作するユーザインタフェースを基本的に提供している。
しかしながら、表形式データ(例えば、データベースからのデータ)を適当にキャッシュに格納するウェブブラウザ用メカニズムは通常はない。通常、ユーザは、常にデータベース内の全てのデータにアクセスしない。よって、あらゆる受信したデータベースのデータをキャッシュに格納することは、不完全な(かつ、潜在的に機能していない)データセットをもたらす。更に、コンテンツは通常、共通の場所(ブラウザキャッシュ)においてキャッシュに格納されるので、あるウェブサイト(またはドメイン)からのデータベースのデータをキャッシュに格納することにより、ウェブブラウザがアクセスする他の任意のウェブサイト(またはドメイン)で、キャッシュしたデータベースのデータが潜在的に利用可能にされる。例えば、ウェブブラウザがその後に(かつもしかするとユーザに知られない間に)悪質なウェブサイト(それは、ブラウザキャッシュを調べることができる)を対象にすると、キャッシュに格納された会社の財政データは危険にさらされる。
更に、多くのデータベースは大量のデータを含むので、データベースのデータを局所的にキャッシュに格納することにより、割り当てられたブラウザキャッシュのスペースがすぐにいっぱいになることもあり得る。
更に、全てではないにしてもほとんどのブラウザは、「オフライン」モードで動作する能力を欠いている。即ち、ウェブサイトが利用できないと(例えば、アクティブのネットワーク接続が検出されないと、または対応するウェブサーバがダウンしていると)、全てのウェブサイトに対してブラウザをオフラインにすることなしに、ウェブブラウザは意味のあるコンテンツを通常示すことができない。例えば、利用できないウェブサーバから、HTMLページまたは画像などのリソースをウェブブラウザがロードしようとすると、ウェブブラウザは、(リソースが局所的にキャッシュに格納される場合であっても)リソースをレンダリングすることに失敗する。よって、データベースのデータ(または他の任意のタイプのコンテンツ)がキャッシュに格納された場合であっても、ウェブブラウザは、データベースのデータ(または他のタイプのコンテンツ)をオフラインモードで示すことができない。
本発明は、ウェブベースアプリケーションのオフライン実行用の方法、システム、及びコンピュータプログラム製品にまで及ぶ。いくつかの実施形態では、コンピュータシステムは、ウェブベースアプリケーションのウェブブラウザアプリケーションコンポーネントによって、オフライン使用用のローカルコンテンツを設定する。コンピュータシステムは、ウェブベースアプリケーションがオフライン実行可能であることを判断する。コンピュータシステムは、当該ウェブベースアプリケーション用のウェブベースサーバコンポーネントがネットワーク通信を介して利用可能であることを検出する。
コンピュータシステムは、ネットワーク通信を介してウェブベースサーバコンポーネントから、ウェブベースアプリケーション用のリソースを受信する。コンピュータシステムは、受信したリソースをコンピュータシステムにおいて局所的に保存する。局所的に保存されたリソースのコピーは、ネットワーク通信を必要とせずにウェブブラウザクライアントコンポーネントがアクセスすることができる。このように、ウェブベースサーバコンポーネントがネットワーク通信を介して利用できないことが検出されると、局所的に保存されたリソースを、ウェブベースクライアントコンポーネントからの要求に応じてアクセスすることができる。コンピュータシステムは、局所的に保存されたリソースを指定された期間コンピュータシステムに局所的に保存されたままにするよう設定し、それによってウェブブラウザのデフォルトのキャッシュ再生利用設定を無効にする。
他の実施形態では、コンピュータシステムは、ウェブベースアプリケーションをオフラインで実行する。ウェブベースアプリケーション用のウェブブラウザアプリケーションコンポーネントは、ウェブベースアプリケーションに対応するウェブサーバアプリケーションコンポーネントに、ウェブベースアプリケーションリソースのオンライン要求をネットワークを介して送信する。コンピュータシステムは、その要求が失敗したことを検出する。コンピュータシステムは、ウェブベースアプリケーションがオフライン実行可能であることを判断する。コンピュータシステムは、ウェブブラウザが当該ウェブブラウザアプリケーションをオフラインで実行するように設定するが、一方他のウェブブラウザアプリケーションはオンラインで実行するように設定されたままである。コンピュータシステムは、当該ウェブブラウザをオフラインにせずに、コンピュータシステムのローカルストレージから要求されたウェブベースアプリケーションリソースを供給する。
この概要は、詳細な説明で更に後述される単純化された形式の概念の選択を導くために提供される。この概要は、特許請求の範囲に記載された発明の重要な特徴または本質的な特徴を識別することを意図していないし、特許請求の範囲に記載された発明の範囲を決定する際の助けとして用いられることも意図していない。
本発明の追加の特徴及び利点は後述の詳細な説明に示されており、一部は詳細な説明から明らかになってもよいし、または本発明の実施によって理解されてもよい。本発明の特徴及び利点は、添付の特許請求の範囲で特に指摘された手段及び組み合わせを用いて、実現されかつ得られてもよい。本発明のこれらの特徴及びその他の特徴は、以下の詳細な説明及び添付の特許請求の範囲から更に十分に明らかになり、または、以下に記載されるように本発明の実施によって理解されてもよい。
本発明の上述した利点及び特徴並びに他の利点及び特徴を得ることができる方法を説明するために、上記に簡潔に説明した本発明のより具体的な説明が、添付の図面で示した特定の実施形態を参照して示される。これらの図面は本発明の典型的な実施形態を表すだけであり、その範囲を限定するとみなされるべきでないということが理解されるので、本発明は、添付の図面を用いることで付加的な特性及び詳細をもって記述されかつ説明される。
ウェブベースアプリケーションのウェブブラウザアプリケーションコンポーネントによってオフライン使用用のローカルコンテンツを設定するのを容易にするコンピュータアーキテクチャの例を示す図である。 ウェブベースアプリケーションをオフラインで実行するのを容易にするコンピュータアーキテクチャの例を示す図である。 ウェブベースアプリケーションのウェブブラウザアプリケーションコンポーネントによってオフライン使用用のローカルコンテンツを設定する方法の例についてのフローチャートである。 ウェブベースアプリケーションをオフラインで実行する方法の例についてのフローチャートである。
本発明は、ウェブベースアプリケーションのオフライン実行用の方法、システム、及びコンピュータプログラム製品にまで及ぶ。いくつかの実施形態では、コンピュータシステムは、ウェブベースアプリケーションのウェブブラウザアプリケーションコンポーネントによって、オフライン使用用のローカルコンテンツを設定する。コンピュータシステムは、ウェブベースアプリケーションがオフライン実行可能であることを判断する。コンピュータシステムは、ウェブベースアプリケーション用のウェブベースサーバコンポーネントがネットワーク通信を介して利用可能であることを検出する。
コンピュータシステムは、ネットワーク通信を介してウェブベースサーバコンポーネントから、ウェブベースアプリケーション用のリソースを受信する。コンピュータシステムは、受信したリソースをコンピュータシステムで局所的に保存する。局所的に保存されたリソースのコピーは、ネットワーク通信を必要とせずにウェブブラウザクライアントコンポーネントがアクセス可能である。このように、ウェブベースサーバコンポーネントがネットワーク通信を介して利用できないことが検出されると、局所的に保存されたリソースは、ウェブベースクライアントコンポーネントからの要求に応じてアクセスされ得る。コンピュータシステムは、局所的に保存されたリソースを指定された期間コンピュータシステムに局所的に保存されたままにするよう設定し、それによってウェブブラウザのデフォルトのキャッシュ再生利用設定を無効にする。
他の実施形態では、コンピュータシステムは、ウェブベースアプリケーションをオフラインで実行する。ウェブベースアプリケーション用のウェブブラウザアプリケーションコンポーネントは、ウェブベースアプリケーションに対応するウェブサーバアプリケーションコンポーネントにウェブベースアプリケーションリソースに対するオンライン要求をネットワークを介して送信する。コンピュータシステムは、その要求が失敗したことを検出する。コンピュータシステムは、ウェブベースアプリケーションがオフライン実行可能であることを判断する。コンピュータシステムは、そのウェブブラウザアプリケーションをオフラインで実行するように当該ウェブブラウザを設定し、一方、他のウェブブラウザアプリケーションはオンラインで実行するように設定されたままである。コンピュータシステムは、ウェブブラウザをオフラインにせずに要求されたウェブベースアプリケーションリソースをコンピュータシステムのローカルストレージから供給する。
本発明の実施形態は、更に詳細に以下で検討されるように、コンピュータハードウェアを有している専用コンピュータまたは汎用コンピュータを含んでいてもよい。本発明の範囲内の実施形態はまた、そこに保存されたコンピュータ実行可能命令またはデータ構造を運ぶかまたは有するコンピュータ可読媒体を含む。かかるコンピュータ可読媒体は、汎用コンピュータまたは専用コンピュータによってアクセスされ得るいかなる利用可能な媒体であってもよい。一例であって限定ではないが、コンピュータ可読媒体は、例えばRAM、ROM、EEPROM、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、コンピュータ実行可能命令またはデータ構造の形式で所望のプログラムコード手段を保存するために用いられることができかつ汎用コンピュータまたは専用コンピュータによってアクセスされ得る他の任意の媒体などの、物理的な(または記録可能なタイプの)コンピュータ可読の記憶媒体を含むことができる。
この詳細な説明及び特許請求の範囲において、「ネットワーク」は、コンピュータシステム及び/またはモジュールの間で電子データの搬送を可能にする1つまたは複数のデータリンクとして定義される。情報がネットワークまたは別の通信接続(有線、無線、または、有線もしくは無線の組合せのいずれか)を介してコンピュータに転送されるかまたは提供されると、コンピュータは、当該接続をコンピュータ可読媒体と見なす。よって、例であって限定ではないが、コンピュータ可読媒体はまた、コンピュータ実行可能命令またはデータ構造の形式で所望のプログラムコード手段を運ぶかまたは保存するために用いられてかつ汎用コンピュータまたは専用コンピュータによってアクセスされ得るネットワークまたはデータリンクを含んでいてもよい。
例えば、コンピュータ実行可能命令は、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに特定の機能または機能グループを実行させる命令及びデータを含む。コンピュータ実行可能命令は、例えば、二進数、例えばアセンブリ言語などの中間フォーマット命令、またはソースコードであってもよい。本発明が構造上の特徴及び/または方法論的動作に固有な言語で記載されていたにもかかわらず、添付の特許請求の範囲において画定される本発明は必ずしも上述の特徴または動作に限定されるというわけではないと理解されるべきである。むしろ、記載されている特徴及び動作は、特許請求の範囲を実行する例の形式として開示されている。
本発明は、多様なコンピュータシステム構成を備えたネットワークコンピュータ環境において実施されてもよいということを当業者は認めるだろう。該コンピュータシステム構成には、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、PDA、ページャーなどを含む。本発明はまた、分散システム環境において実施されてもよく、分散システム環境では、ネットワークを介して(有線データリンク、無線データリンクによって、または有線データリンクまたは無線データリンクの組合せによってのいずれかで)リンクされるローカルコンピュータシステム及びリモートコンピュータシステムの両方がタスクを実行する。分散システム環境では、プログラムモジュールは局所的な記憶装置またはリモートの記憶装置にあってもよい。
図1Aは、コンピュータアーキテクチャ100の一例を示す。コンピュータアーキテクチャ100は、ウェブベースアプリケーションのウェブブラウザアプリケーションコンポーネントによってオフライン使用用のローカルコンテンツを設定するのを容易にする。コンピュータアーキテクチャ100は、コンピュータシステム101、ネットワーク131、及びドメイン172を含む。アプリケーション191C、ウェブブラウザ104、アプリケーション191S、及びウェブサーバ173を含む様々なコンポーネントが、コンピュータアーキテクチャ100に示されている。様々なコンポーネントの各々は、例えばローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、またはインターネットなどのネットワーク131に接続されていてもよい。よって、様々なコンポーネントは、ネットワークに接続された他のコンポーネントからデータを受信しかつそれらにデータを送信することができる。従って、コンポーネントはメッセージ関連データを生成し、ネットワークを介してメッセージ関連データ(例えば、インターネットプロトコル(IP)データグラム、及び、例えば、TCP(Transmission Control Protocol)、HTTP(HyperText Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)等のIPデータグラムを利用する他の上位層プロトコル)を交換することができる。例えば、コンポーネントは、ウェブサービス関連データを含むSOAP(Simple Object Access Protocol)エンベロープを交換することができる。いくつかの実施形態では、アプリケーション191C及びアプリケーション191Sは、例えば、ウェブサービスアプリケーションなどの分散アプリケーションの異なる部分である。
ウェブブラウザ104は、ネットワーク131を介してアクセス可能な、例えばドメイン171などのドメインに、ウェブベースコンテンツを要求するように設定されてもよい。ウェブベースコンテンツは、テキストデータ、画像データ、オーディオ/ビデオデータ等を含んでいてもよい。例えば、アプリケーション191Cなどの1つまたは複数のウェブベースアプリケーションは、ウェブブラウザ104内で実行するように設定されてもよい。ウェブベースアプリケーションは、スクリプト及び/または他のコンピュータ実行可能命令であってもよい。ウェブベースアプリケーションは、ネットワーク131を介してアクセス可能なドメインに、例えばデータベースのデータなどの他のタイプのデータを要求することができる。
ドメイン171は、例えばIPアドレスに分解可能なドメインネームサービス(DNS)ネームなどのドメインネーム172によって識別され得る。ドメインネーム172は、(ドメイン171内の指定されたアプリケーションについての他の識別情報とともに潜在的に)ブラウザに入力されて、ウェブサーバ173にコンテンツを要求するようにブラウザに指示することができる。他の識別情報とともにドメインネーム172は、ウェブブラウザに入力されたURLに含まれていてもよい。要求のタイプ及び/または受信されたURLにより、ウェブサーバ173は、コンテンツ175からのコンテンツにアクセスし、かつ/または例えばアプリケーション191Sなどのウェブベースアプリケーションを開始することができる。アプリケーション191Sは、例えば、データベース174など(例えば、SQLまたは他のリレーショナルデータベース)のドメイン171内の他の位置にデータを要求することができる。ウェブサーバ173は、ウェブブラウザ要求に応じてコンテンツ175からのコンテンツ及び/またはデータベース174からのデータ174を含むことができる。
ブラウザキャッシュ106は、ドメイン171を含むドメインから受信されるウェブベースコンテンツに含まれるコンポーネントをキャッシュに格納するように設定される。キャッシュに格納されたコンポーネントは、その後利用可能にされて、ウェブブラウザ104から送信されるウェブベース要求を実行することができる。例えば、キャッシュに格納されたコンポーネントは、(ネットワーク131を介してキャッシュに格納されたコンポーネントの搬送の必要なしに)ブラウザキャッシュ106から直接アクセスされかつウェブブラウザ104内でレンダリングされるコンテンツ175の一部であり得る。
ウェブブラウザがウェブブラウザ104のウェブアプリケーションからの要求を処理しようとすると、ウェブブラウザは、ブラウザキャッシュ106にアクセスして局所的にキャッシュに格納されたコンポーネントを検索することができる。キャッシュに格納されたコンポーネントが識別されると、ウェブブラウザはコンポーネントにアクセスして、ウェブブラウザ104のウェブアプリケーション内でレンダリングされるべき応答内にコンポーネントを含むことができる。
ローカルストアアクセスモジュール107は、ローカルストア108へのアクセスを管理する。ローカルストア108は、ウェブベース要求に応じて受信されるデータベースのデータを保存するように設定される。ローカルストア108に保存されるデータベースのデータは、(ネットワーク131を介してデータベースのデータを運ぶ必要なしに)ウェブブラウザ104によってアクセスされて、ウェブブラウザ104内のウェブベースアプリケーションでレンダリングされ得る。データベースのデータは、データベースのデータをウェブブラウザ104に送信したドメインの指示とともに、ローカルストア108に保存されてもよい。
ローカルストアアクセスモジュール107は、ローカルストア108に保存されているデータベースのデータへのアクセスを要求しているウェブサーバから、スクリプトコードモジュールからの要求をフィルタリングすることができ、1つのドメインは他のドメインのデータベースのデータにアクセスすることができない(即ち、データベースのデータは、ドメインによってサンドボックス(sandbox)され得る)。よって、データベースのデータは、ローカルストア108に保存されるが、データベースのデータは、通常、任意のドメインに対する要求を実行するためにアクセス可能ではない。
オフラインマネージャ122は、アプリケーションのオフライン状態を管理するように設定される。アプリケーションがオフライン実行可能であるという指示をオフラインマネージャ122が受信すると、オフラインマネージャ122は、アプリケーションのオフライン動作用のコンポーネント及び/またはデータをブラウザキャッシュ106及び/またはローカルストアに投入しようと試みることができる。即ち、オフラインマネージャ122は、オンラインになっているウェブサーバとの通信を開始し、ウェブサーバとの通信がその後開放される(lose)場合には、アプリケーションのオフライン実行に潜在的に必要とされるコンポーネント及び/またはデータをダウンロードする。
オフラインマネージャ122は、オフライン実行用に用いられるコンポーネントの期限切れを延長して、ウェブブラウザ104のデフォルトのキャッシュ再生利用ポリシーを無効にすることができる。例えば、オフラインマネージャ122は、オフライン実行用に用いられるコンポーネントの期限切れを30日に設定することができる。オフライン実行に対して用いられるべきコンポーネントの期限切れを延長することにより、ウェブブラウザ104が他のウェブサイトをナビゲートするときに、ブラウザがコンポーネントを除去できないようにすることができる。
設定インタフェース102は、オフライン動作可能アプリケーション及びドメイン用のストレージ割り当てのユーザ設定を容易にする。例えば、ユーザは、オフライン実行可能アプリケーションとしてアプリケーション191Cを選択し、それによって、アプリケーション191Cがオフライン動作可能アプリケーション121(例えば、コンピュータシステム101のユーザがオフライン実行可能であると識別したアプリケーションのリスト)に含まれるようにする。ユーザは、また、ドメインに対するストレージ割り当ての値を最初に設定することも変更することもできる。例えば、ユーザは、割り当てデータの範囲内で、(ドメインネーム172で表される)ドメイン171に対する割り当て値112を設定することができる。通常、割り当ては、コンピュータシステム101で局所的にアイテムを保存するドメイン(例えば、ブラウザキャッシュ106及び/またはローカルストア108内の)に割り当てられるストレージスペースの量である。設定インタフェース102は、オフライン動作可能アプリケーション及びドメイン割り当てのためのユーザ設定を受信して実行するユーザインタフェース制御を示すことができる。別個に表されているが、オフラインマネージャ122とローカルストアアクセスモジュール107とは、協働して相互に作用し、指定されたドメインのためのブラウザキャッシュ106及びローカルストア108において費やされるストレージスペースの合計が指定されたドメインのための割り当てを上回らないようにすることができる。
オフライン検出器123は、ウェブブラウザ104またはウェブベースアプリケーションがウェブサーバと通信することができない時を検出するように設定される。ウェブサーバとの通信は、例えば、インターネットへのまたはインターネット上の通信リンクの障害、ウェブサーバがクラッシュした等の多くの理由により、利用できないかもしれない。いくつかの実施形態では、オフライン検出器123は、ウェブサーバとのコンタクトが利用できるかどうかを判断するために時々または指定された間隔でウェブサーバにコンタクトしようとする。
オフライン検出器123は、ウェブサーバとの通信の状態が変化すると、オフラインマネージャ122及び/またはローカルストアアクセスモジュール107に通知することができる。例えば、オフライン検出器123は、利用可能なウェブサーバが利用できなくなると(例えば、通信障害、ウェブサーバのクラッシュ等)、かつ利用できないウェブサーバが利用可能になると(例えば、通信が復旧した、ウェブサーバが再開後に動作を開始する等)通知を送信することができる。オフライン検出器123はまた、ユーザにウェブサーバの利用可能性の遷移を警告するユーザインタフェース通知を(例えば、設定インタフェース102を介して)送信することができる。
図2は、ウェブベースアプリケーションのウェブブラウザアプリケーションコンポーネントによって、オフライン使用用のローカルコンテンツを設定する方法200の一例についてのフローチャートを示す。方法200は、図1Aのコンピュータアーキテクチャ100のコンポーネント及びデータに関して説明される。
方法200は、ウェブベースアプリケーションがオフライン実行可能であることを判断する動作を含む(動作201)。例えば、オフラインマネージャ122は、オフライン動作可能アプリケーション121にアクセスして、アプリケーション191Cがオフライン実行可能であることを判断することができる。方法200は、ウェブベースアプリケーション用のウェブベースサーバコンポーネントがネットワーク通信を介して利用可能であることを検出する動作を含む(動作202)。例えば、オフライン検出器123は、ウェブサーバ173、アプリケーション191S、及びドメイン172の他のコンポーネントがネットワーク131を介した通信に利用可能であることを検出することができる。
利用可能な通信を検出するのに応じて、ウェブブラウザ104は、リソース要求を送信してアプリケーション191Cのオフライン実行を容易にすることができる。例えば、ウェブブラウザ104は、ウェブサーバ173へ要求199を送信することができる。要求199は、様々な異なるリソース要求を含むことができる。様々な異なるリソース要求には、コンテンツ175からのコンテンツ、データベース174からのデータベースのデータ、及びアプリケーション191Sに対応する実行可能命令(例えば、スクリプト)の一部を含むがこれらに限定されない。
ウェブサーバ173は、要求199を受信することができる。要求199の受信に応じて、ウェブサーバ173は、リソースの集合(例えばリソース193B)を集めて、アプリケーション191Cのオフライン実行を容易にすることができる。即ち、ウェブサーバ173は、コンピュータシステム101に転送するためにドメイン172内のウェブサイトの一部を「破り取る(tear off)」(例えば、その機能的なコピーを作る)ことができる。ウェブサーバ173は、コンピュータシステム101にリソースの集合を送信することができる。例えば、要求199に応じて、ウェブサーバ173は、コンピュータシステム101にリソース193B(アプリケーション191Cのオフライン実行を容易にするリソースの集合)を送信することができる。リソース193Bは、リソース194B(アプリケーション191Sのコード、コンテンツ175からのコンテンツ等)及びデータベース174(またはその一部)を含むことができる。
いくつかの実施形態では、ドメインはまた、リソースの集合を送信する前にリソース目録(manifest)を送信することができる。リソース目録は、リソースの集合に含まれるリソースを識別することができ、リソースの集合を保存するためのストレージ要求を示すことができる。リソース目録はまた、アプリケーションに対応するURL(それは、ウェブサーバまたはサーバー側の分散されたアプリケーションコンポーネントにおいてリモートの実行をもたらす)が受信されると、アプリケーションのオフライン実行を容易にするために局所的に実行されるべきであるモジュールを指し示すことができる。リソース目録はまた、アプリケーションのオフライン実行を容易にするリソースを同期させるために実行されることになっているモジュールを指し示すことができる。以前に利用できなかったウェブサーバ及び/またはアプリケーションが利用できるようになると、リソースは、利用可能なウェブサーバ及び/またはアプリケーションと周期的に、または、ウェブサーバ及び/またはアプリケーションと同期するためのユーザ要求に応じて、同期することができる。オフライン実行を開始するモジュール及びリソースを同期させるモジュールは、それら自身が、アプリケーションのオフライン実行を容易にするリソースの集合に含まれるリソースであってもよい。
コンピュータアーキテクチャ100において示されているように、例えば、ウェブサーバ173は、コンピュータシステム101に目録192を送信することができる。ウェブサーバ173及び/またはアプリケーション191Sに対応するURLが、ウェブブラウザ104で受信されて、リソース193Bを同期させるために実行されるべきモジュールを指し示すと、目録192は、リソース193Bのリソースを識別し、リソース193Bに対するストレージ要求を指し示し、アプリケーション191Cのオフライン実行用に実行されるべきモジュールを指し示すことができる。以下は、XMLリソース目録の一例である(行番号は、参照目的のために含まれている)。
1. <?xml version="1.0" encoding="utf-8" ?>
2. <resources name="Expense Report">
3. <resource src="default.css" />
4.
5. <resource src="images/reconcile.jpg" />
6. <resource src="images/personal.jpg" />
7. <resource src="images/dispute.jpg" />
8. <resource src="images/hold.jpg" />
9.
10. <resource src="ExpenseReportService.asmx/js" />
11. <resource src="ExpenseReportLineItemService.asmx/js" />
12.
13. <resource src="DefaultSync.aspx" />
14.
15. <resource src="ExpenseReports.aspx" />
16. <resource src="ExpenseReport.aspx" />
17.
18. <runOfflineUrl src="ExpenseReports.aspx" />
19. <takeOnlineOrSyncUrl src="DefaultSync.aspx" />
20. <database spaceNeeded="60" />
21. </resources>
目録の例の中で、行3〜16は、(第2行で識別された)「Expense Report」アプリケーションのオフライン実行を容易にするリソースを識別する。第20行は、目録において識別されるリソースを保存する(例えば、メガバイトで)「60」のストレージ要求を示す。第18行は、モジュール「ExpenseReports.aspx」(例えば、スクリプト)がExpense Reportアプリケーションのオフラインの実行を開始するために局所的に実行される(例えば、コンピュータシステム104で)ことを指し示す。ExpenseReports.aspxは、第15行でリソースであると確認される。第19行は、モジュール「DefaultSync.aspx」(例えば、スクリプト)が目録の例において識別されるリソースを同期させるために局所的に実行されることを指し示す。「DefaultSync.aspx」は、第13行でリソースであると確認される。
方法200は、ネットワーク通信を介してウェブベースサーバコンポーネントから、ウェブベースアプリケーション用のリソースを受信する動作を含む(動作203)。例えば、ウェブブラウザ104は、ドメイン171からリソース193Bを受信することができる。
いくつかの実施形態では、リソース193Bを受信する前に、オフラインマネージャ122及び/またはローカルストアアクセスモジュール107は、リソース193Bのストレージが割り当て112に基づいて適当であることを判断する。即ち、オフラインマネージャ122及び/またはローカルストアアクセスモジュール107は、ドメイン171に対して割り当てられたストレージスペースがリソース194B及びデータベース174を保存するのに十分なことを検証する。割り当てられたストレージスペースが十分な場合、ウェブブラウザ104は、リソース193Bを受け入れることができる。
割り当てられたストレージスペースが割り当て112に基づいて十分でない場合、リソース193B(またはその一部)は拒絶され得る。あるいは、設定インタフェース102は、ドメイン172のために割り当てられたストレージスペースがリソース193Bを保存するのに十分でないとコンピュータシステム101のユーザに通知することができる。適当な場合、ユーザは、リソース193Bを保存するのに十分な量まで設定インタフェース102を介して割り当て112を増やすことができる。ユーザがリソース193Bを保存するのに十分な量まで割り当て112を増やさないことを選択する場合、リソース193B(またはその一部)は拒絶され得る。
方法200は、受信されたリソースをコンピュータシステムにおいて局所的に保存する動作を含む。局所的に保存されたリソースのコピーを、ウェブブラウザクライアントコンポーネントがアクセス可能である。局所的に保存されたリソースは、ネットワーク通信を必要とせずにウェブベースクライアントコンポーネントが利用可能であって、ウェブベースのサーバコンポーネントがネットワーク通信を介して利用可能でないということが検出されると、局所的に保存されたリソースは、ウェブベースクライアントコンポーネントからの要求に応じてアクセスされ得る(動作204)。例えば、ウェブブラウザ104は、ブラウザキャッシュ106にリソース194Bを保存することができ、ローカルストア108に(ドメインネーム172とともに)データベース174を保存することができる。よって、リソース194B及びデータベース174は、ネットワーク131を介してリソース194B及びデータベース174を転送することなしに、ウェブブラウザ104及びアプリケーション191Cが利用できる。従って、リソース194B及びデータベース174は、アプリケーション191Cのオフライン実行を容易にするために用いられ得る。例えば、ドメイン171に到達できないときに、リソース194Cのリソースに対するアプリケーション191Cから(アプリケーション191Sへの)の要求は、ブラウザキャッシュ106からリソースにアクセスすることによって実行され得る。オフラインの実行の間、(例えば、アプリケーション191S用のURLに対応している)要求を受信するように設定されたモジュールは、ブラウザキャッシュ106内のリソースへのアクセスを容易にすることができる。
方法200は、局所的に保存されたリソースが、指定された期間コンピュータシステムに局所的に保存されるままであるように設定し、それによって、ウェブブラウザのデフォルトのキャッシュ再生利用設定を無効にする動作を含む(動作205)。例えば、オフラインマネージャ123は、リソース194Bの期限が切れることになっている時を延長することができる。リソースが期限切れになる時を延長することには、かなり長い有効期間(例えば、30日)を有する最上部に固定された(sticky)ビットでリソースに印をつけることを含んでもよい。最上部に固定されたビットの使用によって、ウェブブラウザのデフォルトのキャッシュ再生利用設定を無効にすることができる。例えば、最上部に固定されたビットでリソース194Bのリソースをマークすることによって、ブラウザキャッシュ106に付随するキャッシュ再生ポリシーを無効にすることができる。
いくつかの実施形態では、アプリケーションのオフライン実行用のリソースが、事前にキャッシュに格納される。ウェブベースサーバコンポーネントが利用できないということを検出する前に、リソースが、事前にキャッシュに格納されてもよい。例えば、ウェブベースアプリケーションがオフライン実行可能であるという最初の表示(indication)で(例えば、ユーザがオフライン動作可能アプリケーション121内のアプリケーションを最初に含むときに)、オフラインマネージャ122は、ウェブベースアプリケーションのオフライン実行を容易にするリソースを要求することができる。従って、次の通信障害が発生すると、ウェブベースアプリケーションは、オフライン実行に対してより効果的に移行される。
他の実施形態では、局所的に保存されたリソースは、ウェブベースサーバコンポーネントが利用可能な対応するリソースと同期する。例えば、リソース194Aは、アプリケーション191Cのオフライン実行のためにブラウザキャッシュ106に以前に保存されたかもしれない。しかしながら、リソース194Aの保存後のあるときに、コンテンツ174の一部は更新されている。従って、リソース194Bは受信されて、局所的に保存されたリソースをウェブサーバ173及び/またはアプリケーション191Sが利用できるリソースに同期させる。同期によって、局所的に保存されたリソースの前のバージョンを上書きさせてもよい。例えば、リソース194Bの受信によって、リソース194Aを上書きさせてもよい。最上部に固定されたビットは、同期後にリセットされてもよい。
図1Bは、ウェブベースアプリケーションをオフラインで実行するのを容易にするコンピュータアーキテクチャ100を示す。図1Bに示したコンピュータアーキテクチャ100は、リソース194Bのより詳細な図を示す。リソース194Bは、モジュール195、他のモジュール196、及びコンテンツ197を含む。モジュール195(例えば、スクリプト)は、アプリケーション191Cのオフライン実行を容易にするために実行されるモジュールである。ドメイン171が利用できないときにアプリケーション191Sに対するURLが受信されると、モジュール195が実行され得る。モジュール195は、目録192において前もって識別されていてもよい。他のモジュール196は、モジュール195の実行中に呼び出されてアプリケーション191Cのオフライン実行を容易にすることができる他のモジュール(例えば、他のスクリプト)を示す。コンテンツ197は、アプリケーション191Cのオフライン実行を容易にするコンテンツを示す。
図3は、ウェブベースアプリケーションをオフラインで実行する方法300の一例のフローチャートを示す。方法300は、図1Bのコンピュータアーキテクチャ100のコンポーネント及びデータに関して説明される。
方法300は、ウェブベースアプリケーションに対応するウェブサーバアプリケーションコンポーネントにウェブベースアプリケーションリソースの要求を送信する、ウェブベースアプリケーション用のウェブブラウザアプリケーションコンポーネントの動作を含む(動作301)。例えば、アプリケーション191Cは、ウェブブラウザ104に要求141を出すことができる。要求141は、アプリケーション191Sからのリソース要求を指し示しているドメイン171内のURLを含むことができる。
方法300は、対応するウェブサーバアプリケーションコンポーネントとの通信がネットワークを介して利用できないということを検出する動作を含む(動作302)。例えば、オフライン検出器123は、ドメイン171が利用できないことを検出することができる。要求141に対する応答がないと、オフライン検出器123は、ドメイン171が利用できないことを検出することができる。オフライン検出器は、ドメイン171が利用できないと判断する前にドメイン172との更なる通信を試みることができる。あるいは、オフライン検出器123は、要求141の発生より前にドメイン171が利用できなかったことを検出してもよい。
方法300は、ウェブベースアプリケーションがオフライン実行可能であることを判断する動作を含む(動作303)。例えば、利用できないということを検出されたドメイン171に応じて、オフラインマネージャ122は、オフライン動作可能アプリケーション121を参照して、アプリケーション191Cはオフライン実行可能であることを判断することができる。
方法300は、ウェブブラウザアプリケーションをオフラインで実行するようにウェブブラウザを設定し、一方、他のウェブブラウザアプリケーションはオンラインで実行するように設定されたままであるという動作を含む(動作304)。例えば、オフラインマネージャ122は、モジュール195を実行しかつブラウザ104を設定することができ、アプリケーション191Cからの要求はモジュール195を対象とし、モジュール195からの応答はアプリケーション191Cを対象とする。しかしながら、他のアプリケーションからの要求及び他のアプリケーションへの応答は、リダイレクトされない。即ち、ウェブブラウザ104は、ネットワーク131を介して他のドメインと通信し続けることができる。従って、アプリケーション191Cに対する通信がモジュール195へ転送されかつモジュール195から転送される間、ウェブブラウザ104は、他のドメインにウェブベース要求を送信し、ネットワーク131を介して他のドメインからのウェブベース応答を受信することができる。
方法300は、ウェブブラウザをオフラインにせずにコンピュータシステムのローカルストレージから、要求されたウェブベースアプリケーションリソースを供給する動作を含む(動作305)。例えば、モジュール195は、他のモジュール196、コンテンツ197、及びデータベース174を用いて要求141への応答142を生成することができる。モジュール195は、アプリケーション191Cへ応答142(ウェブブラウザ104を介して潜在的に)を送信することができる。
要求141への応答用のリソースがローカルストレージからアクセスされる間、ウェブブラウザ104は、ネットワーク131を介して他のドメインにウェブベース要求を送信し、かつ他のドメインからウェブベース応答を受信し続けることができる。よって、他のモジュール196、コンテンツ197、及びデータベース174は要求141用の応答を生成するためにアクセスされている間、ネットワーク131を介して送信される要求及び応答も、ブラウザキャッシュ106及びローカルストア108内の他のデータを検索して保存することができる。
本発明の実施形態は、コンピュータシステムにおけるウェブベースの実行可能命令及びデータのローカルストレージを容易にする。ウェブベースの実行可能命令及びデータは、コンピュータシステムにおいてウェブブラウザに付随するモジュールからの(実行可能命令及びデータを送信したドメインに送信された)要求を局所的に実行するために用いられ得る。従って、局所的に保存されたウェブベースの実行可能命令及びデータは、ウェブサイトが利用できないときに、コンピュータシステムで用いられて、ウェブサイトとの通信をシミュレーションすることができる。
本発明の実施形態は、ユーザ及びコンピュータシステム設定規則に付随するコンピュータシステムの不揮発性ストレージのトランスペアレントな拡張を容易にすることができる。ボリューム障害の場合、ファイルの複数のシャドウコピーのメンテナンスによって、冗長性が提供され、より効率的なリカバリができる。更に、システムリソースが頻繁に使用されていないときに、ファイル動作は、バックグラウンドでシャドウコピー同士の間で時々伝播されてもよい。
本発明は、その精神または主要な特徴から逸脱することなく、他の特定の形式で実施されてもよい。説明された実施形態は、例示的であって限定的でないとあらゆる点で考慮される。従って、本発明の範囲は、前述の説明よりはむしろ添付の特許請求の範囲によって示される。特許請求の範囲と同等の意味及び範囲の中で生じる全ての変更は、それらの範囲の中に包含される。

Claims (14)

  1. ネットワークに接続しているコンピュータシステムにおいて、ウェブブラウザアプリケーションコンポーネントがオフラインで実行するためのローカルコンテンツを保存する方法であって、
    前記コンピュータシステムは、
    ウェブブラウザと、
    それぞれウェブベースアプリケーションに対応している複数のウェブブラウザアプリケーションコンポーネントと、
    を含み、
    前記ウェブブラウザは、前記ウェブブラウザアプリケーションコンポーネントを実行して、それぞれ前記ウェブベースアプリケーションに対応しているウェブベースサーバコンポーネントからリソースにアクセスし、
    前記方法は、
    前記ウェブベースアプリケーションがオフライン実行可能であることを判断するステップと、
    前記ウェブベースアプリケーションの前記ウェブベースサーバコンポーネントがネットワーク通信を介して指定されたドメインのウェブサイトにて利用可能であることを検出するステップと、
    前記ウェブベースアプリケーションの前記ウェブベースサーバコンポーネントがネットワーク通信を介して利用可能であることを検出したことに応答して、前記ウェブベースアプリケーションのオフライン実行を容易にするリソースについての要求を前記ウェブベースサーバコンポーネントに送信するステップであって、該要求は、前記ウェブベースアプリケーションに対応するコンテンツについての要求、前記ウェブベースアプリケーションの実行可能アプリケーションコードについての要求、および前記ウェブベースアプリケーションに対応するデータベースのデータベースデータについての要求を含む、ステップと、
    前記ウェブベースサーバコンポーネントから前記リソースを受信する前に、前記ウェブベースサーバコンポーネントがローカルストレージ用に前記コンピュータシステムに送信するリソースの集合を指定し、かつ該リソースの集合を保存するためのストレージ要件を指定する目録を受信するステップであって、該目録はまた、ウェブサーバが利用できない時に前記コンピュータシステムにおいて局所的に実行される実行可能コードモジュールと、ローカルに保存されているリソースの集合を前記ウェブベースサーバコンポーネントにおける前記ウェブベースアプリケーションと同期させるための、前記ウェブベースサーバコンポーネントとのネットワーク通信が存在する時に前記コンピュータシステムにおいて局所的に実行される同期モジュールとを指定する、ステップと、
    前記目録において指定される前記ストレージ要件がストレージ割り当て量を超えるか否かを判断し、該ストレージ要件がストレージ割り当て量を超えると判断したら、ユーザに対して前記リソースの集合を保存するのに十分な量まで前記割り当て量を増加することを許可するように指示するステップと、
    前記要求を送信するステップの後で、ネットワーク通信を介して前記ウェブベースサーバコンポーネントからウェブベースアプリケーションのリソースの集合を受信するステップであって、該リソースの集合は全体で、前記コンピュータシステムにおけるオフライン実行用の、指定されたドメインから切り取られるウェブサイトの少なくとも一部分の局所的に実行可能なコピーを表し、該リソースの集合は、
    前記ウェブベースアプリケーションに対応するコンテンツと、
    ウェブサーバが利用できない時に前記コンピュータシステムにおいて局所的に実行される実行可能コードモジュールであって、ウェブブラウザから要求を受信して対応する応答を生成する実行可能コードモジュールを含む、前記ウェブベースアプリケーションの実行可能コードと、
    前記ウェブベースアプリケーションに対応するデータベースのデータベースデータの少なくとも一部と
    を含む、ステップと、
    前記コンピュータシステムにおいて前記受信したリソースの集合を局所的に保存するステップであって、局所的に保存された前記コンテンツおよび前記ウェブベースアプリケーションの実行可能コードはウェブブラウザキャッシュに保存され、局所的に保存された前記データベースデータは該ウェブブラウザキャッシュとは異なる別個のローカルストアに保存され、該コンテンツおよび該データベースデータは前記ウェブベースサーバコンポーネントとのネットワーク通信を必要とせずに前記実行可能コードモジュールにアクセスでき、そして、前記コンテンツ、実行可能コードモジュールおよびデータベースデータは、前記ウェブベースサーバコンポーネントがネットワーク通信を介して利用できないことが検出される時に前記ウェブサイトの切り取られた部分にアクセスするための、前記ウェブブラウザからの後続の要求に対する応答を生成するために使用されうる、ステップと、
    前記指定されたドメインにて前記ウェブサイトの一部分にアクセスするための要求を前記ウェブブラウザから受信するステップと、
    前記指定されたドメインとの通信が利用できないと判断したら、1つまたは複数の他のウェブブラウザアプリケーションがネットワーク通信を介して実行することを続けながら、前記要求を満たすために前記ウェブブラウザキャッシュから実行可能モジュールをウェブブラウザが局所的にロードするステップと、
    前記コンテンツおよびウェブベースアプリケーションの実行可能コードがウェブブラウザキャッシュにて期限切れになる時を延長することにより、ウェブブラウザのデフォルトのキャッシュ再生利用設定を無効にするステップと
    を含むことを特徴とする方法。
  2. 前記ウェブベースアプリケーションの前記ウェブベースサーバコンポーネントがネットワーク通信を介して利用可能であることを検出するステップは、前記ウェブサーバが利用できなかった後に前記ウェブサーバとの通信を再構築するステップを含むことを特徴とする請求項1に記載の方法。
  3. 前記コンピュータシステムにおいて前記受信したリソースの集合を局所的に保存するステップは、前記ウェブベースサーバコンポーネントがその後利用できないということを検出する前に、前記受信したリソースの集合を事前にキャッシュに保存するステップを含むことを特徴とする請求項1に記載の方法。
  4. 前記ローカルストアへのアクセスは、送信元ドメインによってフィルタ可能であり、前記データベースの少なくとも一部分はドメインに対する要求を満足するためにアクセスすることができない、ことを特徴とする請求項1に記載の方法。
  5. 前記ウェブブラウザのデフォルトのキャッシュ再生利用設定を無効にするステップは、前記コンテンツおよびウェブベースアプリケーションの実行可能コードがウェブブラウザキャッシュにて期限切れになる時を延長するために、前記コンテンツおよびウェブベースアプリケーションの実行可能コードスティッキー・ビットを設定するステップを含むことを特徴とする請求項1に記載の方法。
  6. ネットワークに接続しているコンピュータシステムにおいて、ウェブベースアプリケーションをオフラインで実行する方法であって、
    前記コンピュータシステムは、
    ウェブブラウザと、
    それぞれウェブベースアプリケーションに対応している複数のウェブブラウザアプリケーションコンポーネントと
    を含み、
    前記ウェブブラウザは、前記ウェブブラウザアプリケーションコンポーネントを実行して、それぞれ前記ウェブベースアプリケーションに対応しているウェブベースサーバコンポーネントからリソースにアクセスし、
    前記方法は、
    指定されたドメインのウェブサイトの一部分にアクセスする要求をウェブブラウザから受信するステップであって、該要求は、前記ウェブベースアプリケーションの対応するウェブベースサーバコンポーネントと通信を試みる前記ウェブベースアプリケーションのウェブブラウザアプリケーションから生じ、該ウェブベースサーバコンポーネントは前記指定されたドメインのウェブサイトの一部分にアクセス可能である、ステップと、
    前記要求を受信した後で前記指定されたドメインとの通信がネットワークを介して利用できないことを検出するステップと、
    前記ウェブベースアプリケーションがオフライン実行可能であることを判断するステップと、
    リソースの集合および該リソースの集合を保存するためのストレージ要件を指定する局所的に保存された目録にアクセスするステップであって、該リソースの集合は、前記ウェブベースアプリケーションの局所的に実行可能なコピーを含み、該リソースの集合は、
    前記ウェブベースアプリケーションに対応するコンテンツと、
    前記ウェブベースアプリケーションの実行可能コードと、
    前記ウェブベースアプリケーションに対応するデータベースのデータベースデータの少なくとも一部と
    を含み、該目録はまた、前記ウェブサーバが前記ウェブブラウザから要求を受信して対応する応答を生成することに利用できない時に前記コンピュータシステムにおいて局所的に実行される、前記リソースの集合に含まれる実行可能コードモジュールと、ローカルに保存されているリソースの集合を前記ウェブベースサーバコンポーネントにおける前記ウェブベースアプリケーションと同期させるための、前記ウェブベースサーバコンポーネントとのネットワーク通信が存在する時に前記コンピュータシステムにおいて局所的に実行される同期モジュールとを指定する、ステップと、
    前記目録において指定される前記ストレージ要件がストレージ割り当て量を超えるか否かを判断し、該ストレージ要件がストレージ割り当て量を超えると判断したら、ユーザに対して前記リソースの集合を保存するのに十分な量まで前記割り当て量を増加することを許可するように指示するステップと、
    前記ウェブベースアプリケーションがオフライン実行可能であるとの判断に応答して、前記目録において指定された前記実行可能コードモジュールを実行することによって、前記コンピュータシステムにおいて前記ウェブサイトの一部分の局所的に実行可能なコピーに局所的にアクセスするステップと、
    1つまたは複数の他のウェブブラウザアプリケーションがネットワーク通信を介して実行することを続けながら、前記ウェブブラウザが、前記要求に応答して、前記ウェブサイトの一部分の局所的に実行可能なコピーと相互作用して前記リソースの集合から1つまたは複数のリソースを識別するステップであって、ウェブブラウザキャッシュから実行可能モジュールを局所的にロードするステップをさらに含む、ステップと、
    前記実行可能コードモジュールは、前記要求に応答して、前記ウェブブラウザキャッシュおよび別個のローカルストアの1つまたは複数のリソースを前記ウェブブラウザアプリケーションコンポーネントに供給し、ウェブブラウザをオフラインにせずに、該実行可能コードモジュールは、ウェブブラウザキャッシュの前記コンテンツおよび前記ウェブベースアプリケーションの実行可能コード、並びに該ウェブブラウザキャッシュとは異なる別個のローカルストアの前記データベースデータにアクセスし、そして、要求されたウェブベースアプリケーションリソースは、前記要求を受信した後に発生するネットワーク通信なしで、ウェブブラウザアプリケーションコンポーネントに供給される、ステップと、
    前記コンテンツおよびウェブベースアプリケーションの実行可能コードがウェブブラウザキャッシュにて期限切れになる時を延長することにより、ウェブブラウザのデフォルトのキャッシュ再生利用設定を無効にするステップと
    を含むことを特徴とする方法。
  7. 前記要求を受信するステップは、前記ウェブベースサーバコンポーネントのURLを受信するステップを含むことを特徴とする請求項6に記載の方法。
  8. 前記ウェブベースアプリケーションがオフライン実行可能であることを判断するステップは、オフライン実行可能なウェブベースアプリケーションのリストを参照するステップを含むことを特徴とする請求項6に記載の方法。
  9. 前記実行可能コードモジュールが前記ウェブブラウザキャッシュおよび別個のローカルストアの1つまたは複数のリソースを前記ウェブブラウザアプリケーションコンポーネントに供給するステップは、
    前記ロードされたモジュールに前記要求を送信するステップと、
    前記ロードされたモジュールが前記ウェブブラウザキャッシュおよび別個のローカルストアからアクセスされる前記1つまたは複数のリソースのみを使用して要求に対する応答を生成するステップと、
    前記生成された応答を前記ウェブブラウザアプリケーションコンポーネントへ転送するステップと、
    をさらに含むことを特徴とする請求項6に記載の方法。
  10. コンピュータシステムであって、
    1つまたは複数のプロセッサと、
    システムメモリと、
    前記コンピュータシステムに局所的に配置された1つまたは複数の物理的なコンピュータ読み取り可能な記憶媒体であって、前記プロセッサによって実行される時に、ウェブベースアプリケーションのウェブブラウザアプリケーションコンポーネントオフラインで実行するためのローカルコンテンツを設定する方法を前記コンピュータシステムに実行させるコンピュータ実行可能命令を保存する、1つまたは複数の物理的なコンピュータ読み取り可能な記憶媒体と、
    を備え、
    前記方法は、
    前記ウェブベースアプリケーションがオフライン実行可能であることを判断するステップと、
    前記ウェブベースアプリケーションのウェブベースサーバコンポーネントがネットワーク通信を介して指定されたドメインのウェブサイトにて利用可能であることを検出するステップと、
    前記ウェブベースアプリケーションの前記ウェブベースサーバコンポーネントがネットワーク通信を介して利用可能であることを検出したことに応答して、前記ウェブベースアプリケーションのオフライン実行を容易にするリソースについての要求を前記ウェブベースサーバコンポーネントに送信するステップであって、該要求は、前記ウェブベースアプリケーションに対応するコンテンツについての要求、前記ウェブベースアプリケーションの実行可能アプリケーションコードについての要求、および前記ウェブベースアプリケーションに対応するデータベースのデータベースデータについての要求を含む、ステップと、
    前記ウェブベースサーバコンポーネントから前記リソースを受信する前に、前記ウェブベースサーバコンポーネントがローカルストレージ用に前記コンピュータシステムに送信するリソースの集合を指定し、かつ該リソースの集合を保存するためのストレージ要件を指定する目録を受信するステップであって、該目録は、ウェブサーバが利用できない時に前記コンピュータシステムにおいて局所的に実行される実行可能コードモジュールと、ローカルに保存されているリソースの集合を前記ウェブベースサーバコンポーネントにおける前記ウェブベースアプリケーションと同期させるための、前記ウェブベースサーバコンポーネントとのネットワーク通信が存在する時に前記コンピュータシステムにおいて局所的に実行される同期モジュールとを指定する、ステップと、
    前記目録において指定される前記ストレージ要件がストレージ割り当て量を超えるか否かを判断し、該ストレージ要件がストレージ割り当て量を超えると判断したら、ユーザに対して前記リソースの集合を保存するのに十分な量まで前記割り当て量を増加することを許可するように指示するステップと、
    前記要求を送信するステップの後で、ネットワーク通信を介して前記ウェブベースサーバコンポーネントからウェブベースアプリケーションのリソースの集合を受信するステップであって、該リソースの集合は全体で、前記コンピュータシステムにおけるオフライン実行用の、指定されたドメインから切り取られるウェブサイトの少なくとも一部分の局所的に実行可能なコピーを表し、該リソースの集合は、
    前記ウェブベースアプリケーションに対応するコンテンツと、
    ウェブサーバが利用できない時に前記コンピュータシステムにおいて局所的に実行される実行可能コードモジュールであって、ウェブブラウザから要求を受信して対応する応答を生成する実行可能コードモジュールを含む、前記ウェブベースアプリケーションの実行可能コードと、
    前記ウェブベースアプリケーションに対応するデータベースのデータベースデータの少なくとも一部と
    を含む、ステップと、
    前記コンピュータシステムにおいて前記受信したリソースの集合を局所的に保存するステップであって、局所的に保存された前記コンテンツおよび前記ウェブベースアプリケーションの実行可能コードはウェブブラウザキャッシュに保存され、局所的に保存された前記データベースデータは該ウェブブラウザキャッシュとは異なる別個のローカルストアに保存され、該コンテンツおよび該データベースデータは前記ウェブベースサーバコンポーネントとのネットワーク通信を必要とせずに前記実行可能コードモジュールにアクセスでき、そして、前記コンテンツ、実行可能コードモジュールおよびデータベースデータは、前記ウェブベースサーバコンポーネントがネットワーク通信を介して利用できないことが検出される時に前記ウェブサイトの切り取られた部分にアクセスするための、前記ウェブブラウザからの後続の要求を満足するために使用されうる、ステップと、
    前記コンテンツおよびウェブベースアプリケーションの実行可能コードがウェブブラウザキャッシュにて期限切れになる時を延長することにより、ウェブブラウザのデフォルトのキャッシュ再生利用設定を無効にするステップと
    を含み、
    前記1つまたは複数の物理的なコンピュータ読み取り可能な記憶媒体は、前記プロセッサによって実行される時に、ウェブベースアプリケーションをオフラインで実行する方法を前記コンピュータシステムに実行させるコンピュータ実行可能命令を保存し、
    該方法は、
    指定されたドメインのウェブサイトの一部分にアクセスする要求をウェブブラウザから受信するステップであって、該要求は、前記ウェブベースアプリケーションの対応するウェブベースサーバコンポーネントと通信を試みる前記ウェブベースアプリケーションのウェブブラウザアプリケーションから生じ、該ウェブベースサーバコンポーネントは前記指定されたドメインのウェブサイトの一部分にアクセス可能である、ステップと、
    前記要求を受信した後で前記指定されたドメインとの通信がネットワークを介して利用できないことを検出するステップと、
    前記ウェブベースアプリケーションがオフライン実行可能であることを判断するステップと、
    前記ウェブベースアプリケーションがオフライン実行可能であるとの判断に応答して、前記コンピュータシステムにおいて前記ウェブサイトの一部分の局所的に実行可能なコピーに局所的にアクセスするステップであって、該局所的に実行可能なコピーは、前記コンピュータシステムにおけるローカルな実行のために前記指定されたドメインから以前に切り取られており、前記ウェブサイトの一部分の局所的に実行可能なコピーは、前記コンピュータシステムにて局所的に保存されるリソースの集合を含み、該リソースの集合は、
    前記ウェブベースアプリケーションに対応するコンテンツと、
    ウェブサーバが利用できない時に前記コンピュータシステムにおいて局所的に実行される実行可能コードモジュールであって、ウェブブラウザから要求を受信して対応する応答を生成する実行可能コードモジュールを含む、前記ウェブベースアプリケーションの実行可能コードと、
    前記ウェブベースアプリケーションに対応するデータベースのデータベースデータの少なくとも一部と
    を含む、ステップと、
    1つまたは複数の他のウェブブラウザアプリケーションがネットワーク通信を介して実行することを続けながら、前記ウェブブラウザが、前記要求に応答して、前記ウェブサイトの一部分の局所的に実行可能なコピーと相互作用して前記リソースの集合から1つまたは複数のリソースを識別するステップであって、前記ウェブブラウザキャッシュから実行可能モジュールを局所的にロードするステップをさらに含む、ステップと、
    前記実行可能コードモジュールは、前記要求に応答して、前記ウェブブラウザキャッシュおよび別個のローカルストアの1つまたは複数のリソースを前記ウェブブラウザアプリケーションコンポーネントに供給し、ウェブブラウザをオフラインにせずに、該実行可能コードモジュールは、ウェブブラウザキャッシュの前記コンテンツおよび前記ウェブベースアプリケーションの実行可能コード、並びに該ウェブブラウザキャッシュとは異なる別個のローカルストアの前記データベースデータにアクセスし、そして、要求されたウェブベースアプリケーションリソースは、前記要求を受信した後に発生するネットワーク通信なしで、ウェブブラウザアプリケーションコンポーネントに供給される、ステップと
    を含むことを特徴とするコンピュータシステム。
  11. 前記コンピュータシステムにおいて前記受信したリソースの集合を局所的に保存するステップは、前記ウェブベースサーバコンポーネントがその後利用できないということを検出する前に前記受信したリソースの集合を事前にキャッシュに保存するステップを含むことを特徴とする請求項10に記載のコンピュータシステム。
  12. 前記コンピュータシステムにおいて前記受信したリソースの集合を局所的に保存するステップは、局所的に保存されたリソースを前記指定されたドメイン内で前記ウェブベースサーバコンポーネントが利用できるリソースと同期させるステップを含むことを特徴とする請求項10に記載のコンピュータシステム。
  13. 前記プロセッサによって実行される時に、前記コンピュータシステムに、
    前記ウェブベースアプリケーションの前記ウェブベースサーバコンポーネントがネットワーク通信を介して利用可能であることを検出したことに応答して、前記ウェブベースサーバコンポーネントを利用できるか否かについての通知をユーザに送信するステップ、
    を実行させるコンピュータ実行可能命令をさらに含むことを特徴とする請求項10に記載のコンピュータシステム。
  14. 前記実行可能コードモジュールが前記ウェブブラウザキャッシュおよび別個のローカルストアの1つまたは複数のリソースを前記ウェブブラウザアプリケーションコンポーネントに供給するステップは、
    局所的にロードされたモジュールに前記要求を送信するステップと、
    前記ロードされたモジュールが前記ブラウザキャッシュおよび別個のローカルストアからアクセスされる前記1つまたは複数のリソースのみを使用して要求に対する応答を生成するステップと、
    前記生成された応答を前記ウェブブラウザアプリケーションコンポーネントに転送するステップと
    をさらに含むことを特徴とする請求項10に記載のコンピュータシステム。
JP2009534750A 2006-10-30 2007-10-05 ウェブベースアプリケーションのオフライン実行 Expired - Fee Related JP4698756B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/554,435 2006-10-30
US11/554,435 US7814234B2 (en) 2006-10-30 2006-10-30 Offline execution of web based applications
PCT/US2007/080548 WO2008054951A1 (en) 2006-10-30 2007-10-05 Offline execution of web based applications

Publications (3)

Publication Number Publication Date
JP2010508581A JP2010508581A (ja) 2010-03-18
JP2010508581A5 JP2010508581A5 (ja) 2010-11-11
JP4698756B2 true JP4698756B2 (ja) 2011-06-08

Family

ID=39331673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009534750A Expired - Fee Related JP4698756B2 (ja) 2006-10-30 2007-10-05 ウェブベースアプリケーションのオフライン実行

Country Status (11)

Country Link
US (1) US7814234B2 (ja)
JP (1) JP4698756B2 (ja)
KR (1) KR101433981B1 (ja)
CN (1) CN101529415B (ja)
AU (1) AU2007313956B2 (ja)
BR (1) BRPI0716520A8 (ja)
CA (1) CA2662553C (ja)
MX (1) MX2009003549A (ja)
RU (1) RU2453911C2 (ja)
TW (1) TWI449372B (ja)
WO (1) WO2008054951A1 (ja)

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080014929A1 (en) * 2006-05-05 2008-01-17 Infosys Technologies Ltd. Occasionally connected computing for mobile web services
US20080201414A1 (en) * 2007-02-15 2008-08-21 Amir Husain Syed M Transferring a Virtual Machine from a Remote Server Computer for Local Execution by a Client Computer
US9043391B2 (en) 2007-02-15 2015-05-26 Citrix Systems, Inc. Capturing and restoring session state of a machine without using memory images
US9398067B2 (en) * 2007-02-20 2016-07-19 Avaya Inc. Web-based sharing of documents
US8452853B2 (en) * 2007-03-05 2013-05-28 International Business Machines Corporation Browser with offline web-application architecture
US8255921B2 (en) 2007-05-30 2012-08-28 Google Inc. Method and apparatus that enables a web-based client-server application to be used offline
US20090024645A1 (en) * 2007-07-16 2009-01-22 Sudhir Krishna S Method and system for generating offline applications
US20090259744A1 (en) * 2008-04-14 2009-10-15 Kolke Daniel J System and Method for Running a Web-Based Application while Offline
US20090070691A1 (en) * 2007-09-12 2009-03-12 Devicefidelity, Inc. Presenting web pages through mobile host devices
US20090089377A1 (en) * 2007-09-27 2009-04-02 International Business Machines Corporation System and method for providing dynamic email content
KR101501174B1 (ko) 2007-09-28 2015-03-19 엑세리온 악티에볼라그 네트워크 오퍼레이팅 시스템
US20090132556A1 (en) * 2007-11-16 2009-05-21 Nitin Gupta Offline operations for online applications
US8756530B2 (en) * 2008-05-27 2014-06-17 International Business Machines Corporation Generation and synchronization of offline 3D virtual world content
US8572602B1 (en) * 2008-06-05 2013-10-29 Appcelerator, Inc. System and method for synchronization of a web application to a cloud provider
US8572211B2 (en) * 2008-07-09 2013-10-29 Sony Corporation System and method for effectively transmitting content items to electronic devices
US8065617B2 (en) * 2008-08-28 2011-11-22 Microsoft Corporation Discovering alternative user experiences for websites
US8675000B2 (en) * 2008-11-07 2014-03-18 Google, Inc. Command buffers for web-based graphics rendering
US8294723B2 (en) 2008-11-07 2012-10-23 Google Inc. Hardware-accelerated graphics for web applications using native code modules
US8626919B1 (en) 2008-11-07 2014-01-07 Google Inc. Installer-free applications using native code modules and persistent local storage
US9508108B1 (en) * 2008-11-07 2016-11-29 Google Inc. Hardware-accelerated graphics for user interface elements in web applications
JP2010140347A (ja) * 2008-12-12 2010-06-24 Canon Inc Webサーバ装置、クライアント装置、その制御方法およびプログラム
US20100153521A1 (en) * 2008-12-15 2010-06-17 Kar-Wing Edward Lor Method and Device for Providing Offline Web Services
TWI384378B (zh) * 2008-12-29 2013-02-01 Ind Tech Res Inst 網頁應用程式執行方法
US8413139B2 (en) * 2009-03-11 2013-04-02 Microsoft Corporation Programming model for application and data access and synchronization within virtual environments
US8812451B2 (en) 2009-03-11 2014-08-19 Microsoft Corporation Programming model for synchronizing browser caches across devices and web services
US9680964B2 (en) * 2009-03-11 2017-06-13 Microsoft Technology Licensing, Llc Programming model for installing and distributing occasionally connected applications
US8725793B2 (en) * 2009-04-03 2014-05-13 Google Inc. Architectural pattern for persistent web application design
US8797337B1 (en) 2009-07-02 2014-08-05 Google Inc. Graphics scenegraph rendering for web applications using native code modules
CN101997853A (zh) * 2009-08-31 2011-03-30 中兴通讯股份有限公司 数据下载方法及终端
US8621046B2 (en) * 2009-12-26 2013-12-31 Intel Corporation Offline advertising services
US20110202909A1 (en) * 2010-02-12 2011-08-18 Microsoft Corporation Tier splitting for occasionally connected distributed applications
US8725585B1 (en) * 2010-05-18 2014-05-13 Google Inc. Automatic vetting of web applications to be listed in a marketplace for web applications
US9069443B2 (en) 2010-06-11 2015-06-30 Doat Media Ltd. Method for dynamically displaying a personalized home screen on a user device
US10713312B2 (en) 2010-06-11 2020-07-14 Doat Media Ltd. System and method for context-launching of applications
US9372885B2 (en) 2010-06-11 2016-06-21 Doat Media Ltd. System and methods thereof for dynamically updating the contents of a folder on a device
US9639611B2 (en) 2010-06-11 2017-05-02 Doat Media Ltd. System and method for providing suitable web addresses to a user device
US9552422B2 (en) 2010-06-11 2017-01-24 Doat Media Ltd. System and method for detecting a search intent
WO2011156605A2 (en) 2010-06-11 2011-12-15 Doat Media Ltd. A system and methods thereof for enhancing a user's search experience
US9141702B2 (en) 2010-06-11 2015-09-22 Doat Media Ltd. Method for dynamically displaying a personalized home screen on a device
US9665647B2 (en) 2010-06-11 2017-05-30 Doat Media Ltd. System and method for indexing mobile applications
US8838962B2 (en) * 2010-09-24 2014-09-16 Bryant Christopher Lee Securing locally stored Web-based database data
US20150195340A1 (en) * 2010-09-30 2015-07-09 Google Inc. Determining if an Application is Cached
US8700804B1 (en) * 2011-03-16 2014-04-15 EP Visual Design, Inc. Methods and apparatus for managing mobile content
US9858342B2 (en) * 2011-03-28 2018-01-02 Doat Media Ltd. Method and system for searching for applications respective of a connectivity mode of a user device
JP5760716B2 (ja) 2011-03-30 2015-08-12 富士通株式会社 アプリ提供システム、アプリ提供方法、情報処理装置及び情報処理プログラム
JP5686046B2 (ja) 2011-03-31 2015-03-18 富士通株式会社 アプリ提供システム、アプリ提供方法及びアプリ提供プログラム
DE102011006898A1 (de) * 2011-04-06 2012-10-11 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Betreiben einer Rechnereinheit, Verfahren zum Betreiben eines Applikationsportals, Rechnereinheit, Vorrichtung zum Betreiben eines Applikationsportals und System
US8898251B2 (en) 2011-05-03 2014-11-25 Microsoft Corporation Client calculation of links to network locations of files to upload
CN102779128A (zh) * 2011-05-10 2012-11-14 北京磊友信息科技有限公司 一种移动终端中的html5应用程序离线运行的方法及设备
US9201709B2 (en) * 2011-05-20 2015-12-01 Citrix Systems, Inc. Shell integration for an application executing remotely on a server
US8769073B2 (en) 2011-06-29 2014-07-01 International Business Machines Corporation Intelligent offline caching of non-navigated content based on usage metrics
US20130036197A1 (en) * 2011-08-05 2013-02-07 Xtreme Labs Inc. Method and system for a mobile local server
US10082574B2 (en) 2011-08-25 2018-09-25 Intel Corporation System, method and computer program product for human presence detection based on audio
US8554729B2 (en) * 2011-08-31 2013-10-08 Google Inc. System and method for synchronization of actions in the background of an application
US9329851B2 (en) 2011-09-09 2016-05-03 Microsoft Technology Licensing, Llc Browser-based discovery and application switching
US9003019B1 (en) * 2011-09-30 2015-04-07 Emc Corporation Methods and systems for utilization tracking and notification of cloud resources
DE112012004301T5 (de) 2011-10-12 2014-07-31 International Business Machines Corporation Erzeugen einer vorhersagenden Datenstruktur
US9195779B2 (en) * 2011-10-18 2015-11-24 Verizon Patent And Licensing Inc. Crowd-sourced problem solving
US9363335B2 (en) * 2011-10-30 2016-06-07 Lg Electronics Inc. Method and apparatus that enables a web-based client-server application to be used offline
US9563626B1 (en) * 2011-12-08 2017-02-07 Amazon Technologies, Inc. Offline management of data center resource information
US9092540B2 (en) 2012-02-14 2015-07-28 International Business Machines Corporation Increased interoperability between web-based applications and hardware functions
US20130219383A1 (en) * 2012-02-16 2013-08-22 Israel Hilerio Using an Application Cache to Update Resources of Installed Applications
US9213673B2 (en) * 2012-02-23 2015-12-15 Via Technologies, Inc. Networked applications with client-caching of executable modules
US9582603B1 (en) 2012-02-27 2017-02-28 Amazon Technologies, Inc. Managing preloading of data on client systems
CN102629200A (zh) * 2012-03-02 2012-08-08 浪潮集团山东通用软件有限公司 一种Web系统可离线使用的处理方法
CN103324517A (zh) * 2012-03-20 2013-09-25 华为终端有限公司 离线应用的生成及调用方法、终端及系统
WO2013191283A1 (ja) * 2012-06-22 2013-12-27 グリー株式会社 情報提供システム、情報提供装置、情報提供方法及び記憶媒体
US20130346274A1 (en) * 2012-06-25 2013-12-26 Liquid Holdings Group, Inc. Electronic financial trading platform with real-time data analysis and reporting
US9710247B2 (en) * 2012-06-26 2017-07-18 Microsoft Technology Licensing, Llc Identification of host-compatible downloadable applications
US9037662B2 (en) 2012-06-29 2015-05-19 International Business Machines Corporation Cache control for web application resources
CN103595744B (zh) * 2012-08-16 2018-08-07 腾讯科技(深圳)有限公司 信息管理的方法及客户端
SG11201509459VA (en) * 2012-08-29 2015-12-30 Huawei Device Co Ltd Web application management method and apparatus
EP2784714B1 (en) * 2013-03-28 2021-04-28 Alcatel Lucent Method of preventing access to sensitive data of a computing device
CN103257874A (zh) * 2013-04-24 2013-08-21 深圳市中兴移动通信有限公司 Web应用的离线运行方法和系统
ES2674378T3 (es) 2013-07-19 2018-06-29 Opanga Networks, Inc. Detección de fuentes de contenido
CN104346514A (zh) * 2013-08-09 2015-02-11 聚游互动(北京)科技发展有限公司 支持在线游戏应用离线运行的方法及系统
US9760897B2 (en) * 2013-09-21 2017-09-12 Oracle International Corporation Method and system for defining an offlinable view/controller graph
DK3049979T3 (da) 2013-09-27 2020-02-17 Codexis Inc Struktur-baseret prædiktiv konstruktion
JP6857029B2 (ja) 2013-09-27 2021-04-14 コデクシス, インコーポレイテッド 酵素バリアントの自動スクリーニング
CN104902061A (zh) * 2014-03-03 2015-09-09 联想(北京)有限公司 一种信息处理方法及电子设备
US9672026B2 (en) 2014-07-21 2017-06-06 Xiaomi Inc. Light app offline updating method, device and terminal
CN104156233B (zh) * 2014-07-21 2016-05-18 小米科技有限责任公司 轻应用离线更新方法、装置及终端
RU2608668C2 (ru) 2014-07-30 2017-01-23 Общество С Ограниченной Ответственностью "Яндекс" Система и способ управления и организации кэша веб-браузера для обеспечения автономного просмотра
KR102261910B1 (ko) * 2014-12-08 2021-06-08 에스케이플래닛 주식회사 클라우드 스트리밍 서비스를 위한 서비스 에러 검출 장치 및 이를 포함하는 종단간 서비스 모니터링 시스템 및 방법
US20160191645A1 (en) * 2014-12-30 2016-06-30 Citrix Systems, Inc. Containerizing Web Applications for Managed Execution
RU2632141C2 (ru) 2015-06-30 2017-10-02 Общество С Ограниченной Ответственностью "Яндекс" Способ и компьютерное устройство для динамической индексации и загрузки кодов модулей
CN106331049A (zh) * 2015-07-03 2017-01-11 阿里巴巴集团控股有限公司 缓存资源、更新缓存资源的方法、客户端、服务器及系统
US10417113B1 (en) 2016-03-10 2019-09-17 Amdocs Development Limited System, method, and computer program for web testing and automation offline storage and analysis
US10365916B2 (en) * 2016-04-19 2019-07-30 Dropbox, Inc. Providing access to a hybrid application offline
US20180077259A1 (en) * 2016-09-09 2018-03-15 Linkedin Corporation Unified data rendering for multiple upstream services
US10817272B2 (en) * 2016-12-12 2020-10-27 Sap Se Generation and usage of language-converted script
US10044836B2 (en) 2016-12-19 2018-08-07 Palantir Technologies Inc. Conducting investigations under limited connectivity
CN108287839B (zh) * 2017-01-09 2022-01-28 阿里巴巴集团控股有限公司 一种页面加载方法和设备
KR102250378B1 (ko) * 2017-02-28 2021-05-12 엔에이치엔 주식회사 모바일 환경에서의 리소스 다운로드 방법 및 시스템
CN107087018B (zh) * 2017-03-14 2021-03-23 深圳市金立通信设备有限公司 一种运行Web应用程序的方法及终端
CN109144599B (zh) * 2017-06-27 2021-09-24 上海木鸡网络科技有限公司 函数加载方法及装置、计算机可读存储介质、终端
US10657533B2 (en) * 2017-10-26 2020-05-19 Mastercard International Incorporated Apparatus and method for emulating online user authentication process in offline operations
CN107786665A (zh) * 2017-11-06 2018-03-09 成都宏亚佳新科技有限公司 一种适应各种环境的数据传输的方法及系统
CN109451064B (zh) * 2018-12-26 2021-08-17 深圳左邻永佳科技有限公司 web应用的离线实现方法、装置、计算机设备和存储介质
US11016784B2 (en) 2019-03-08 2021-05-25 Palantir Technologies Inc. Systems and methods for automated deployment and adaptation of configuration files at computing devices
WO2020242495A1 (en) * 2019-05-31 2020-12-03 Hewlett-Packard Development Company, L.P. Remapping elements based on a transition of device states
US11157242B2 (en) * 2019-09-30 2021-10-26 Salesforce.Com, Inc. Systems, methods, and apparatuses for local web components development within a cloud based computing environment
JP7143866B2 (ja) * 2020-03-25 2022-09-29 カシオ計算機株式会社 キャッシュ管理プログラム、サーバ、キャッシュ管理方法、および情報処理装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020077927A1 (en) * 2000-12-15 2002-06-20 Philippe Lasnier Internet shopping system and method
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US20050188051A1 (en) * 2003-12-19 2005-08-25 Iftah Sneh System and method for providing offline web application, page, and form access in a networked environment
US20060004927A1 (en) * 2004-07-02 2006-01-05 Oracle International Corporation Systems and methods of offline processing
US20060031784A1 (en) * 2004-08-06 2006-02-09 Makela Mikko K Mobile communications terminal and method
US20060069704A1 (en) * 2004-05-21 2006-03-30 Bea Systems, Inc. Disconnectible applications
US20060195816A1 (en) * 1996-10-31 2006-08-31 Michael Grandcolas Methods and systems for implementing on-line financial institution services via a single platform

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7236173B2 (en) * 1996-10-30 2007-06-26 Autodesk, Inc. Method and apparatus for providing access to maps on a thin client
US6594682B2 (en) * 1997-10-28 2003-07-15 Microsoft Corporation Client-side system for scheduling delivery of web content and locally managing the web content
US6044398A (en) * 1997-11-21 2000-03-28 International Business Machines Corporation Virtual dynamic browsing system and method for automated web server and testing
US5951636A (en) * 1997-12-04 1999-09-14 International Business Machines Corp. Accessing a post office system from a client computer using applets
US6272593B1 (en) * 1998-04-10 2001-08-07 Microsoft Corporation Dynamic network cache directories
US6757705B1 (en) 1998-08-14 2004-06-29 Microsoft Corporation Method and system for client-side caching
US6507867B1 (en) * 1998-12-22 2003-01-14 International Business Machines Corporation Constructing, downloading, and accessing page bundles on a portable client having intermittent network connectivity
US6553412B1 (en) * 1999-09-10 2003-04-22 Avantgo, Inc. System, method, and computer program product for web content aggregation and development, and web content delivery to clients
US7305475B2 (en) * 1999-10-12 2007-12-04 Webmd Health System and method for enabling a client application to operate offline from a server
JP3605343B2 (ja) * 2000-03-31 2004-12-22 デジタルア−ツ株式会社 インターネット閲覧制御方法、その方法を実施するプログラムを記録した媒体およびインターネット閲覧制御装置
US6854016B1 (en) * 2000-06-19 2005-02-08 International Business Machines Corporation System and method for a web based trust model governing delivery of services and programs
AU2001268674B2 (en) * 2000-06-22 2007-04-26 Microsoft Technology Licensing, Llc Distributed computing services platform
US7409685B2 (en) * 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US7162543B2 (en) * 2001-06-06 2007-01-09 Sap Ag Process for synchronizing data between remotely located devices and a central computer system
US20030056206A1 (en) * 2001-09-17 2003-03-20 Engo Frank Joseph Cross-barrier programming language
US7275105B2 (en) * 2002-01-16 2007-09-25 Laszlo Systems, Inc. Enabling online and offline operation
WO2003093964A1 (en) * 2002-05-01 2003-11-13 Bea Systems, Inc. Enterprise application platform
US6941310B2 (en) * 2002-07-17 2005-09-06 Oracle International Corp. System and method for caching data for a mobile application
US6950823B2 (en) * 2002-12-23 2005-09-27 International Business Machines Corporation Transparent edge-of-network data cache
US7873353B2 (en) 2003-09-30 2011-01-18 Ianywhere Solutions, Inc. Method and system for accessing applications and data, and for tracking of key indicators on mobile handheld devices
US7441011B2 (en) 2003-10-23 2008-10-21 Microsoft Corporation Truth on client persistent caching
US20050197819A1 (en) 2004-03-02 2005-09-08 Hopkins James B. System and method for running web applications locally
US7779387B2 (en) 2004-04-15 2010-08-17 Microsoft Corporation Offline source code control
US7475089B1 (en) * 2004-09-02 2009-01-06 Sprint Spectrum L.P. Enhanced portal server system and method
US7788352B2 (en) * 2005-07-14 2010-08-31 Yahoo! Inc. System and method for servicing a user device
US8601475B2 (en) * 2005-08-02 2013-12-03 Aol Inc. Download and upload of email messages using control commands in a client/server web application

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195816A1 (en) * 1996-10-31 2006-08-31 Michael Grandcolas Methods and systems for implementing on-line financial institution services via a single platform
US20020077927A1 (en) * 2000-12-15 2002-06-20 Philippe Lasnier Internet shopping system and method
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US20050188051A1 (en) * 2003-12-19 2005-08-25 Iftah Sneh System and method for providing offline web application, page, and form access in a networked environment
US20060069704A1 (en) * 2004-05-21 2006-03-30 Bea Systems, Inc. Disconnectible applications
US20060004927A1 (en) * 2004-07-02 2006-01-05 Oracle International Corporation Systems and methods of offline processing
US20060031784A1 (en) * 2004-08-06 2006-02-09 Makela Mikko K Mobile communications terminal and method

Also Published As

Publication number Publication date
JP2010508581A (ja) 2010-03-18
AU2007313956A8 (en) 2009-04-23
KR101433981B1 (ko) 2014-08-26
CA2662553A1 (en) 2008-05-08
US20080104195A1 (en) 2008-05-01
US7814234B2 (en) 2010-10-12
RU2453911C2 (ru) 2012-06-20
BRPI0716520A2 (pt) 2013-09-24
WO2008054951A1 (en) 2008-05-08
RU2009116454A (ru) 2010-11-10
CN101529415B (zh) 2012-08-08
TW200826551A (en) 2008-06-16
AU2007313956A1 (en) 2008-05-08
MX2009003549A (es) 2009-05-12
AU2007313956B2 (en) 2012-01-19
BRPI0716520A8 (pt) 2017-01-17
KR20090073199A (ko) 2009-07-02
TWI449372B (zh) 2014-08-11
CN101529415A (zh) 2009-09-09
CA2662553C (en) 2016-11-08

Similar Documents

Publication Publication Date Title
JP4698756B2 (ja) ウェブベースアプリケーションのオフライン実行
US10387451B2 (en) Synchronization system for multiple client devices
US8161160B2 (en) XML-based web feed for web access of remote resources
US7552220B2 (en) System and method to refresh proxy cache server objects
US8078673B2 (en) Automated acquisition and maintenance of web-servable content via enhanced “404:not found” handler
US8868707B2 (en) Adaptive write-back and write-through caching for off-line data
JP5384646B2 (ja) ウェブサイトについての代替ユーザエクスペリエンスを発見する方法
KR20040000441A (ko) 컴퓨팅 네트워크에서 서비스의 동적 전개
WO2012151993A1 (zh) 业务推送方法和装置
US7793113B2 (en) Guaranteed deployment of applications to nodes in an enterprise
US20190303870A1 (en) Service for receiving obsolete web page copies
JP5197351B2 (ja) 情報処理装置及び情報処理方法及びプログラム
JP2005530258A (ja) クライアント・デバイスをサーバからリフレッシュする間に再同期化するためのシステムおよび方法
US10771578B2 (en) Webpage loading method and apparatus
JP6358049B2 (ja) ローカルストレージ同期方法、ローカルストレージ同期装置およびローカルストレージ同期プログラム
JP2008250586A (ja) 添付url送受信方法、システム及びプログラム
JP4950389B2 (ja) ネットワークベースのアプリケーション、それを処理するためのアーキテクチャ及びシステム、ならびにそれを実行するための方法
JP4962166B2 (ja) サーバ、端末、サーバプログラム、端末プログラム、システムおよびサーバ制御方法
JPWO2009001895A1 (ja) ブラウザの制御方法、プログラム、コンピュータ使用可能な記録媒体、クライアント装置、およびネットワークシステム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100927

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100927

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20101015

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20101029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20101125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20101125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110203

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110301

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees