CN101529415B - 基于web的应用程序的离线执行 - Google Patents
基于web的应用程序的离线执行 Download PDFInfo
- Publication number
- CN101529415B CN101529415B CN2007800402239A CN200780040223A CN101529415B CN 101529415 B CN101529415 B CN 101529415B CN 2007800402239 A CN2007800402239 A CN 2007800402239A CN 200780040223 A CN200780040223 A CN 200780040223A CN 101529415 B CN101529415 B CN 101529415B
- Authority
- CN
- China
- Prior art keywords
- web
- application program
- resource
- web browser
- executable code
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及用于基于web的应用程序的离线执行的方法、系统和计算机程序产品。本发明的各实施例便于基于web的可执行指令和数据在计算机系统处的本地存储。该基于web的可执行指令和数据可被用来本地地实现来自与web浏览器相关联的模块的请求(定向到发送该供存储的可执行指令和数据的域)。因此,当网站在其它情况下不可用时,本地地存储的基于web的可执行指令和数据可在计算机系统处用来模拟与该网站的通信。
Description
背景
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已改变人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统被彼此耦合并被耦合到其它电子设备,以形成计算机系统和其它电子设备可以在其上传送电子数据的有线和无线计算机网络。因此,许多计算任务的性能分布在多个不同的计算机系统和/或多个不同的计算组件上。
基于网络的通信的一种常见形式是在万维网(“WWW”)上交换电子消息。万维网上的内容通常以客户机/服务器模型来访问。客户端计算机的“web浏览器”发送访问由服务器计算机系统的“web服务器”提供的内容的请求(例如,通过将统一资源定位符(“URL”)输入到该web浏览器中)。如果web浏览器的用户被授权访问该内容,则web服务器通常将该内容提供给该web浏览器。在web环境中,内容和对内容的请求经常使用超文本传输协议(“HTTP”)来传输。基于web的内容可以在超文本标记语言(“HTML”)页面、样式表、图像、脚本等中提供。
大多数web浏览器(即使不是全部)将基于web的各部分内容高速缓存在公共存储位置(浏览器高速缓存)中以使得可更高效地呈现网页的后续呈现。例如,当web浏览器从web服务器接收网页时,该web浏览器可本地高速缓存该网页中所包括的内容的各部分。由此,如果web浏览器随后被定向到相同的网页,则该web浏览器可检查公共存储位置以查找高速缓存的内容的各部分并且任何高速缓存的内容的各部分都可与经由网络接收到的其它内容组合以构造网页。因此,使用本地高速缓存的内容可能减少通过网络传输来显示来自web服务器的内容的数据量。结果,网页可更快速地呈现,从而改善了用户体验。
然而,通常即使只有网页的一部分改变,整个页面也通过网络重新加 载以便显示在web浏览器上。例如,情况可以是web浏览器访问一网页,经由网络通信下载该网页的内容并高速缓存了来自该网页的内容。如果该网页的内容随后改变了,则该web浏览器可能需要重新下载整个网页,即使只有该网页的一小部分发生了改变。
因此,最近某些web浏览器实现了部分页面更新以便更好地利用高速缓存的内容。内容在网页的适当的部分改变时被重新下载。然而,web浏览器未必需要响应于对网页的一部分的改变而重新下载网页的所有内容。例如,当网页中的单个图像改变时,web浏览器可检测到该变化并重新下载该单个图像而不必重新下载未改变的其它高速缓存的内容。
某些基于web的应用程序还准许web浏览器与来自数据库(例如,SQL数据库)的数据交互。web服务器从web浏览器接收请求,访问数据库数据的适当的部分并且将该数据库数据返回给web浏览器。取决于基于web的应用程序的配置,用户可能还能够通过web浏览器来改变数据库数据的各部分。例如,用户可能能够通过web浏览器来创建和修改数据库记录。在某些环境中,用户能够通过web浏览器来实现SQL操作(CREATETABLE、SELECT、INSET、UPDATE、DELETE等)。由此,web浏览器本质上提供了用于通过网络(例如,因特网)来操纵数据库数据的用户界面。
然而,通常不存在供web浏览器适当地高速缓存表格数据(例如,来自数据库的数据)的机制。通常,用户无法在任一时刻访问数据库中的所有数据。因此,高速缓存任何接收到的数据库数据提供了不完整的(并且可能是非功能性的)数据集。此外,因为内容通常被高速缓存在公共位置(浏览器高速缓存)中,所以高速缓存来自一个网站(或域)的数据库数据可能使得高速缓存的数据库数据对该web浏览器访问的任何其它网站(或域)可用。例如,高速缓存的公司财务数据在web浏览器随后(并且可能不为用户所知)被定向到恶意网站(该恶意网站然后可检查该浏览器高速缓存)时处于危险的境地。
此外,因为许多数据库包含大量数量,所以本地高速缓存数据库数据可快速填满所分配的浏览器高速缓存空间。
另外,大多数浏览器(即使不是全部)缺乏在“离线”模式下工作的能力。即,在网站不可用时(例如,在没有检测到活动的网络连接或对应的web服务器被关闭时),在不将web浏览器从所有网站离线的情况下,该浏览器通常无法呈现有意义的内容。例如,在web浏览器试图从不可获得的web服务器加载诸如HTML页面或图像等资源时,该web浏览器无法呈现该资源(即使该资源已被本地高速缓存)。因此,即使数据库数据(或任何其他类型的内容)已被高速缓存,web浏览器也无法以离线模式呈现该数据库数据(或任何其它类型的内容)。
简要概述
本发明涉及用于基于web的应用程序的离线执行的方法、系统和计算机程序产品。在某些实施例中,计算机系统配置本地内容以供基于web的应用程序的web浏览器应用程序组件离线使用。该计算机系统确定该基于web的应用程序被启用来用于离线执行。该计算机系统检测到该基于web应用程序的基于web的服务器组件是可经由网络通信获得的。
该计算机系统经由网络通信从基于web的服务器组件接收用于该基于web的应用程序的资源。计算机系统将所接收到的资源本地存储在该计算机系统处。该本地地存储的资源副本无需网络通信而可由web浏览器客户机组件访问。如此,在检测到基于web的服务器组件不可经由网络通信获得时,可以响应于来自基于web的客户机组件的请求来访问该本地地存储的资源。计算机系统将该本地地存储的资源配置成在指定的一段时间内保持本地地存储在该计算机系统上,从而覆盖web浏览器的默认的高速缓存回收设置。
在其它实施例中,计算机系统离线运行基于web的应用程序。基于web的应用程序的基于web的浏览器应用程序组件通过网络向该基于web的应用程序的对应的web服务器应用程序组件发送对基于web的应用程序资源的在线请求。计算机系统检测到该请求失败。该计算机系统确定该基于web的应用程序被启用来用于离线执行。该计算机系统将该web浏览器配置成离线执行该web浏览器应用程序,而其它web浏览器应用程序保持配置成 在线执行。该计算机系统从该计算机系统的本地存储中提供所请求的基于web的应用程序资源而不将该web浏览器离线。
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其部分根据本描述将是显而易见的,或可通过对本发明的实践获知。本发明的特征和优点可通过在所附权利要求书中特别指出的手段和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书而变得更加完全明显,或可通过对下文中所述的本发明的实践来获知。
附图简述
为了描述可获得本发明的上述和其它优点和特征的方法,将通过引用附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,附图中:
图1A示出便于配置本地内容以供基于web的应用程序的web浏览器应用程序组件离线使用的示例计算机体系结构。
图1B示出便于离线运行基于web的应用程序的示例计算机体系结构。
图2示出用于配置本地内容以供基于web的应用程序的web浏览器应用程序组件离线使用的示例方法的流程图。
图3示出用于离线运行基于web的应用程序的示例方法的流程图。
详细描述
本发明涉及用于基于web的应用程序的离线执行的方法、系统和计算机程序产品。在某些实施例中,计算机系统配置本地内容以供基于web的应用程序的web浏览器应用程序组件离线使用。该计算机系统确定该基于web的应用程序被启用来用于离线执行。该计算机系统检测到该基于web 应用程序的基于web的服务器组件是可经由网络通信获得的。
计算机系统经由网络通信从基于web的服务器组件接收用于基于web的应用程序的资源。计算机系统将所接收到的资源本地存储在该计算机系统处。该本地地存储的资源复件可由web浏览器客户机组件访问而无需网络通信。如此,在检测到基于web的服务器组件不可经由网络通信获得时,可以响应于来自基于web的客户机组件的请求来访问该本地地存储的资源。计算机系统将该本地地存储的资源配置成在指定的一段时间内保持本地地存储在该计算机系统上,从而覆盖(override)web浏览器的默认的高速缓存回收设置。
在其它实施例中,计算机系统离线运行基于web的应用程序。基于web的应用程序的基于web的浏览器应用程序组件通过网络向该基于web的应用程序的对应的web服务器应用程序组件发送对基于web的应用程序资源的在线请求。计算机系统检测到该请求失败。该计算机系统确定该基于web的应用程序被启用来用于离线执行。该计算机系统将该web浏览器配置成,在其它web浏览器应用程序保持配置成在线执行的同时离线执行该web浏览器应用程序。该计算机系统从该计算机系统的本地存储中提供所请求的基于web的应用程序资源而不将该web浏览器离线。
本发明的各实施例可以包括含有计算机硬件的专用或通用计算机,这将在以下做出进一步讨论。本发明的范围内的各实施例还包括用于承载或其上储存有计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,计算机可读介质可包括物理(或可记录类型的)计算机可读存储介质,诸如RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其它介质。
在本说明书和所附权利要求书中,“网络”被定义为允许在计算机系统和/或模块之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为计算机可读介质。因此,作为示例而 非限制,计算机可读介质可包括可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络或数据链路。
计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言等中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,可以在具有许多类型的计算机系统配置的网络计算环境中实践本发明,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机等等。本发明也可以在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
图1A示出便于配置本地内容以供基于web的应用程序的web浏览器应用程序组件离线使用的示例计算机体系结构100。计算机体系结构100包括计算机系统101、网络131和域172。计算机体系结构100中所描绘的是包括应用程序191C、web浏览器104、应用程序191S和web服务器173在内的各种组件。各种组件中的每一个都可被连接到诸如局域网(“LAN”)、广域网(“WAN”)、或甚至因特网等网络131。因此,各种组件可对连接到网络的其它组件收发数据。因此,各组件可以创建消息相关数据并通过网络交换消息相关数据(例如,网际协议(“IP”)数据报和利用IP数据报的其它更高层协议,如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。例如,各组件可交换包含web服务相关数据的简单对象访问协议(“SOAP”)封装。在某些实施例中,应用程序191C和应用程序191S是诸如web服务应用程序等 分布式应用程序的不同部分。
web浏览器104可被配置成向诸如,例如域171等可经由网络131来访问的域请求基于web的内容。基于web的内容可包括文本数据、图像数据、音频/视频数据等。例如,应用程序191C等一个或多个基于web的应用程序可被配置成在web浏览器104中运行。基于web的应用程序可以是脚本和/或其它计算机可执行指令。基于web的应用程序可以向可经由网络131来访问的域请求诸如数据库数据等其它类型的数据。
域171可由诸如域名服务(“DNS”)名称等可解析成IP地址的域名172来标识。域名172可被输入到web浏览器(可能连同域171中的指定应用程序的其它标识信息一起输入)以指示浏览器向web服务器173请求内容。域名连同其它标识信息一起可被包括在输入到web浏览器的统一资源定位符(“URL”)中。取决于请求和/或接收到的URL的类型,web服务器153可访问来自内容175的内容和/或启动诸如应用程序191S等基于web的应用程序。应用程序191S可请求来自域171中的其它位置的数据,诸如来自数据库174(例如,SQL或其它关系数据库)等。web服务器173可在对web浏览器请求的响应中包括来自175的内容和/或来自数据库174的数据。
浏览器高速缓存106被配置成高速缓存从包括域171在内的域接收到的基于web的内容中所包括的组分。高速缓存的组分随后可用于实现发自web浏览器104的基于web的请求。例如,高速缓存的组分可以是直接从浏览器高速缓存106访问的(无需经由网络131来传输高速缓存的组分)并且在web浏览器104中呈现的内容155的各部分。
在web浏览器尝试处理来自web浏览器104中的web应用程序的请求时,该web浏览器可以访问浏览器高速缓存106来搜索本地地高速缓存组分。在标识了高速缓存组分的情况下,该web浏览器可以访问这些组分并在将在web浏览器104中的web应用程序中呈现的响应中包括这些组分。
本地存储访问模块107管理对本地存储108的访问。本地存储108被配置成存储响应于基于web的请求所接收到的数据库数据。存储在本地存储108中的数据库数据可由web浏览器104来访问(无需经由网络131来 传输该数据库数据),并可被呈现在web浏览器104中的基于web的应用程序中。数据库数据可连同将该数据库数据发送给web浏览器104的域的指示一起存储在本地存储108中。
本地存储访问模块107可以过滤来自源自web服务器的脚本代码模块的、请求访问存储在本地存储108中的数据库数据的请求,以便防止一个域访问另一个域的数据库数据(即,数据库数据可按域来沙箱化)。因此,虽然数据库数据存储在本地存储108中,但该数据库数据通常不可被访问来实现对任何域的请求。
离线管理器122被配置成管理应用程序的离线状态。在离线管理器122接收应用程序被启用来用于离线执行的指示时,离线管理器122可以尝试用用于该应用程序的离线操作的组分和/或数据来填充浏览器高速缓存106和/或本地存储。即,在与在线的web服务器的通信随后失去的情况下,离线管理器122可以启动与该web服务器的通信以下载应用程序的离线执行可能需要的组分和/或数据。
离线管理器122可以延长要用于离线执行的组分的期限,来覆盖web浏览器104的默认的高速缓存回收策略。例如,离线管理器122可以将要用于离线执行的组分的期限设置成30天。要用于离线执行的组分的期限的延长可以防止浏览器在web浏览器104导航其它网站时清除这些组分。
配置界面102便于用户配置启用离线的应用程序和域的存储定额。例如,用户可以选择应用程序191C作为用于离线执行的应用程序,从而使得应用程序191C被包括在启用离线的应用程序121中(例如,被计算机系统的用户标识为启用离线的应用程序的列表)。用户最初还可以设置以及更改域的存储定额的值。例如,用户可以设置定额数据内的域171(由域名172表示)定额112的值。一般而言,定额是分配给域的用于在计算机系统101处本地地存储(即,在浏览器高速缓存106和/或本地存储108中)项目的存储空间的量。配置界面102可以呈现用于接收和实现用于启用离线的应用程序和域定额的用户设置的用户界面控件。尽管离线管理器122和本地存储访问模块107是分开描述的,但它们可以协同交互,以便指定的域在浏览器高速缓存106和本地存储108中所使用的存储空间的总和不超 过该指定域的定额。
离线检测程序被配置成检测web浏览器104或基于web的应用程序何时不能够与web服务器通信。与web服务器的通信可能出于多种原因而不可获得,诸如到因特网的或因特网上的通信链路的故障、web服务器已崩溃等。在某些实施例中,离线检测程序123一次次地或以指定的时间间隔尝试联系web服务器,以确定与该web服务器的联系是否可获得。
在与web服务器的通信的状态改变时,离线检测程序123可以通知离线管理器122和/或本地存储访问模块107。例如,在一可获得web服务器变得不可获得(例如,通信故障、该web服务器崩溃等)时和在一不可获得web服务器变得可获得(例如,通信恢复、该web服务器在重启后开始操作等)时,离线检测程序123可以发送通知。离线检测程序123还可以发送用户界面通知(例如,通过配置界面102),警告用户web服务器的可获得性的转换。
图2示出用于配置本地内容以供基于web的应用程序的web浏览器应用程序离线使用的示例方法200的流程图。方法200将参考图1A中的计算机体系结构100的组件和数据来描述。
方法200包括确定基于web的应用程序被启用来用于离线执行的动作(动作201)。例如,离线管理器122可以访问启用离线的应用程序121来确定应用程序191C被启用来用于离线执行。方法200包括检测到该基于web的应用程序的基于web的服务器组件可经由网络通信获得的动作(动作202)。例如,离线检测程序123能检测到域172中的web服务器173、应用程序191S、和其它组件可用于通过网络131来通信。
响应于检测到可获得的通信,web浏览器104可以发送资源请求以便于应用程序191C的离线执行。例如,web浏览器104可以向web服务器713发送请求199。请求199可以包括对包括来自内容175的内容、来自数据库174的数据库数据、和对应于应用程序191S的可执行指令(例如,脚本)的各部分在内的各种不同的资源的请求。
Web服务器173可以接收请求199。响应于接收到请求199,web服务器173可以收集资源集合(例如,资源193B)来便于应用程序191C的离 线执行。即,web服务器173可以“扯下(tear off)”域172中的网站的一部分(例如,制作其功能复件)以传送到计算机系统101。web服务器173可以向计算机系统101发送该资源集合。例如,响应于请求199,web服务器173可以向计算机系统101发送资源193B(用于便于应用程序191C的离线执行的资源集合)。资源193B可以包括资源194B(应用程序191S的代码、来自内容175的内容等)和数据库174(或其一部分)。
在某些实施例中,域还可以在发送资源集合之前发送资源清单。资源清单可以标识要被包括在资源集合中的资源,且可以指示用于存储该资源集合的存储要求。资源清单还可以指示要被本地地执行以便于在接收到对应于该应用程序的URL时应用程序的离线执行(否则这将引起在web服务器或服务器侧分布式应用程序组件处的远程执行)的模块。资源清单还可以指示要被执行来同步资源以便于应用程序的离线执行的模块。可以在先前不可获得的web服务器和/或应用程序变得可获得时、与可获得web服务器和/或应用程序、或响应于与可获得web服务器和/或应用程序同步的用户请求来同步资源。用于启动离线执行的模块和用于同步资源的模块其本身可以是包括在用于便于应用程序的离线执行的资源集合中的资源。
如在计算机体系结构100中所示,例如,web服务器173可以向计算机系统101发送清单192。清单192可以标识资源193B中的资源,指示资源193B的存储要求,指示在web浏览器104处接收到对应于web服务器173和/或应用程序191S的URL时要执行的用于应用程序的离线执行的模块,以及指示要被执行来同步资源193B的模块。以下是示例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标识用于便于“Expense Report(经费报告)”(在行2处标识)应用程序的离线执行的资源。行20指示用于存储该清单中所标识的资源的存储要求是“60”(例如,以兆字节为单位)。行18指示模块“ExpenseReports.aspx”(例如,脚本)要被本地地(例如在计算机系统104处)执行以启动经费报告应用程序的离线执行。ExpenseReports.aspx在行15处被标识为资源。行19指示模块“DefaultSync.aspx”(例如,脚本要被本地地执行以同步该示例清单中所标识的资源)。“DefaultSync.aspx”在行13处被标识为资源。
方法200包括经由网络通信从该基于web的服务器组件接收用于该基于web的应用程序的资源的动作(动作203)。例如,web浏览器104可以从域171接收资源193B。
在某些实施例中,在接收资源193B之前,离线管理器122和/或本地存储访问模块108基于定额112来确定资源193B的存储是适当的。即,离线管理器122和/或本地存储访问模块105验证向域171分配的存储空间足以存储资源194B和数据库174。如果所分配的存储空间是足够的,则web 浏览器104可以接受资源193B。
如果基于定额112所分配的存储空间是不足够的,则可以拒绝资源193B(或其一部分)。另选地,配置界面102可以通知计算机系统102的用户向域172分配的存储空间不足以存储资源193B。在适当的情况下,用户随后可以通过配置界面102来将定额112增加到足以存储资源193B的量。如果用户选择不将定额122增加到足以存储资源193B的量,则可以拒绝资源193B(或其一部分)。
方法200包括在计算机系统处本地地存储所接收到的资源的动作,该本地地存储的资源复件可由web浏览器客户机组件访问,基于web的客户机组件可以使用该本地地存储的资源而无需网络通信以便在检测到基于web的服务器组件不可经由网络通信获得时可以响应于来自基于web的客户机组件的请求来访问该本地地存储的资源(动作204)。例如,web浏览器104可以将资源194B存储在浏览器高速缓存106中,并可以将数据库174(连同域名172)存储在本地存储108中。因此,web浏览器104和应用程序191C可以使用资源194B和数据库174而无需通过网络131传输资源194B和数据库174。因此,资源194B和数据库174可被用来便于应用程序191C的离线执行。例如,在域171不可达到时,来自应用程序191C的(去往应用程序191S的)对资源194C中的资源的请求可以通过访问来自浏览器高速缓存106中的资源来实现。配置成在离线执行期间接收请求(例如,对应于应用程序191S的URL)的模块可以便于访问浏览器高速缓存106中的资源。
方法200包括将本地地存储的资源配置成在指定的一段时间内保持本地地存储在计算机系统上,从而覆盖web浏览器的默认的高速缓存回收设置的动作(动作205)。例如,当资源194B期满时离线管理器123可以延长时间。延长资源期满的时间可以包括用具有相当长期限(例如,30天)的粘着位来标记资源。使用粘着位可以覆盖web浏览器的默认的高速缓存回收设置。例如,用粘着位标记资源194B中的资源可以覆盖与浏览器高速缓存106相关联的高速缓存回收策略。
在某些实施例中,用于应用程序的离线执行的资源是预高速缓存的。 可以在检测到基于web的服务器组件不可获得之前预高速缓存资源。例如,在初始指示基于web的应用程序被启用来用于离线执行时(例如,在用户最初将一应用程序包括在启用离线的应用程序121中时),离线管理器122可以请求资源来便于该基于web的应用程序的离线执行。因此,在后续通信故障发生时,该基于web的应用程序更高效地转换为离线执行。
在其它实施例中,本地地存储的资源与对基于web的服务器组件可获得的对应的资源进行同步。例如,情况可以是资源191A先前被存储在浏览器高速缓存106中以供应用程序191C的离线执行。然而,在某些时候,在存储资源194A后,内容174的各部分被更新了。因此,接收资源194B来将本地地存储的资源与对web服务器173和/或应用程序191S可获得的资源进行同步。同步可以重写本地地存储的资源的先前版本。例如,接收资源194B可以使资源194A被重写。在同步之后可以重新设置粘着位。
图1B示出便于离线运行基于web的应用程序的计算机体系结构100。图1B所示的计算机体系结构100示出资源194B的更详细的视图。资源194B包括模块195、其它模块196和内容197。模块195(例如,脚本)是要被执行来便于应用程序191C的离线执行的模块。在域171不可获得的情况下接收到应用程序191S的URL时,可以执行模块195。先前可能在清单192中已经标识了模块195。其它模块196表示可以在模块195的执行期间调用来便于应用程序191C的离线执行的其它模块(例如,其它脚本)。内容197表示用于便于应用程序191C的离线执行的内容。
图3示出用于离线运行基于web的应用程序的示例方法300的流程图。方法300将参考图1B中的计算机体系结构100的组件和数据来描述。
方法300包括基于web的应用程序的web浏览器应用程序组件向该基于web的应用程序的对应的web服务器应用程序组件发送对基于web的应用程序资源的请求的动作(动作301)。例如,应用程序191C可以向web浏览器104提交请求141。请求141可以包括域171中的URL,指示对来自应用程序191S的对资源的请求。
方法300包括检测到与对应的web服务器应用程序组件的通信无法通过网络获得的动作(动作302)。例如,离线检测程序123可以检测到域 171是不可获得的。在未接收到对于请求141的响应的情况下,离线检测程序123可以检测到域171的不可获得性。在确定域171不可获得之前,离线检测程序可以尝试与域172的进一步通信。另选地,在请求141发生之前,离线检测程序可能已经检测到域171是不可获得的。
方法300包括确定该基于web的应用程序被启用来用于离线执行的动作(动作303)。例如,响应于检测到域171是不可获得的,离线管理器122可以引用启用离线的应用程序121以确定应用程序191C被启用来用于离线执行。
方法300包括将该web浏览器配置成离线执行该web浏览器应用程序,而其它web浏览器应用程序保持配置成在线执行的动作(动作304)。例如,离线管理器122可以执行模块195并配置浏览器104,以使得来自应用程序191C的请求被定向到模块195且来自模块195的响应被定向到应用程序191C。然而,来自其它应用程序的请求和到这些应用程序的响应未被重新定向。即,web浏览器104可以继续经由网络131与其它域通信。因此,在应用程序191C的通信被传送到模块195并来自于模块195期间,web浏览器104可以通过网络131向其它域发送基于web的请求并从其它域接收基于web的响应。
方法300包括从计算机系统处的本地存储提供所请求的基于web的应用程序资源而不将web浏览器离线的动作(动作305)。例如,模块195可以使用其它模块196、内容197和数据库174来制定对请求141的响应142。模块195可以向应用程序191C发送(可能通过web浏览器104)响应142。
在从本地存储访问用于响应请求141的资源期间,web浏览器104可以通过网络131向其它域继续发送基于web的请求并从其它域接收基于web的响应。因此,在访问其它模块196、内容197、和数据库174来制定对请求141的响应的同时,经由网络131所发送的请求和响应还可以在浏览器高速缓存106和本地存储108中检索和存储其它数据。
本发明的各实施例便于基于web的可执行指令和数据在计算机系统处的本地存储。该基于web的可执行指令和数据可被用来本地地实现来自与 web浏览器相关联的模块的请求(发送到发送该可执行指令和数据的域)。因此,在网站以其它方式不可获得的情况下,本地地存储的基于web的可执行指令和数据可在计算机系统处用来模拟与该网站的通信。
本发明的各实施例可以根据用户和计算机系统配置规则来帮助该计算机系统处的非易失性存储的透明的扩展。文件的多个阴影复件的维护提供冗余,从而在卷发生故障的情况下得到更高效的恢复。此外,在未以其它方式繁重使用系统资源时,文件操作可以在后台在阴影复件之间传播。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的所有改变应被权利要求书的范围涵盖。
Claims (14)
1.一种在连接到网络的计算机系统处的用于存储本地内容以供基于web浏览器应用程序组件离线使用的方法,所述计算机系统包括web浏览器和对应的基于web的应用程序的多个web浏览器应用程序组件,所述web浏览器用于执行各web浏览器应用程序组件来分别从所述对应的基于web的应用程序的基于web的服务器组件访问资源,所述方法包括:
确定所述基于web的应用程序被启用来用于离线执行的动作;
检测到基于web应用程序的基于web的服务器组件可经由指定域中的网站的网络通信获得的动作;
响应于检测到基于web的应用程序的基于web的服务器组件可经由网络通信获得,向所述基于web的服务器组件发送对资源的请求的动作,以便于所述基于web的应用程序的离线执行,所述请求包括:对相应于所述基于web的应用程序的内容的请求,对所述基于web的应用程序的可执行应用程序代码的请求,以及对来自相应于所述基于web的应用程序的数据库的数据库数据的请求;
在从所述基于web的服务器组件接收所述资源之前接收清单的动作,所述清单指定基于web的服务器组件要发给计算机系统以用于本地地存储的资源集合,并指定存储所述资源集合的存储需求,所述清单还指定:当所述web服务器不可用时在所述计算机系统本地地执行的可执行代码模块,以及当存在与所述基于web的服务器组件的网络通信时在所述计算机系统本地执行的同步模块,用于将本地存储的资源集合与在基于web的服务器的所述基于web的应用程序能够获得的资源进行同步;以及
确定所述清单中指定的所述存储需求是否超过一定额,并在确定所述存储需求超过所述定额时,提示用户所述存储需求超过所述定额,使得所述用户通过配置界面将所述定额的增长到足以存储所述资源集合的量的动作;
在发送请求之后,经由网络通信从所述基于web的服务器组件接收用于所述基于web的应用程序的资源集合的动作,所述资源的集合共同代表从所述指定域扯下用于在所述计算机系统离线执行的网站的一部分的本地可执行复件,所述资源的集合包括:
对应于所述基于web的应用程序的内容;
所述基于web的应用程序的可执行代码,包括当所述web服务器不可用时在所述计算机系统本地地执行的可执行代码模块,所述可执行代码模块用于从所述web浏览器接收请求并生成相应的响应;以及
来自对应于所述基于web的应用程序的数据库的数据库数据的至少一部分;
在所述计算机系统处本地地存储所接收到的资源集合的动作,所述本地地存储的内容以及所述基于web的应用程序的可执行代码存储在web浏览器高速缓存中,且本地地存储的数据库数据存储在与所述浏览器高速缓存分开的本地存储中,所述内容和数据库数据可由可执行代码模块访问而无需与所述基于web的服务器组件进行网络通信,以便在检测到所述基于web的服务器组件不可经由网络通信获得时,所述内容、所述可执行代码,和所述数据库数据可以响应于来自基于web的客户机组件的请求来访问;以及
当所述内容和所述基于web的应用程序的所述可执行代码在所述web浏览器高速缓存期满时,覆盖所述web浏览器的默认高速缓存回收设置以延长所述高速缓存期的动作。
2.如权利要求1所述的方法,其特征在于,检测到所述基于web应用程序的基于web的服务器组件可经由网络通信获得的动作包括在web服务器有一段时间不可获得之后,重新建立与所述web服务器的通信的动作。
3.如权利要求1所述的方法,其特征在于,在所述计算机系统处本地地存储所接收到的资源集合的动作包括在检测到所述基于web的服务器组件随后不可获得之前,预高速缓存所接收到的资源的动作。
4.如权利要求1所述的方法,其特征在于,对本地存储的访问能够被发起域过滤,以便防止一个域访问另一个域的数据库。
5.如权利要求1所述的方法,其特征在于,所述覆盖所述web浏览器的默认高速缓存回收设置的动作包括当所述内容和所述基于web的应用程序的所述可执行代码在所述web浏览器高速缓存期满时,使用粘着位来标记所述内容和和所述基于web的应用程序的所述可执行代码以延长所述高速缓存期的动作。
6.一种连接到网络的计算机系统处的用于离线运行基于web的应用程序的方法,所述计算机系统包括web浏览器和对应的基于web的应用程序的多个web浏览器应用程序组件,所述web浏览器用于执行各web浏览器应用程序组件来分别从所述对应的基于web的应用程序的基于web的服务器组件访问资源,所述方法包括:
从web浏览器接收访问指定域的网站的一部分的请求的动作,从基于web的应用程序的web浏览器应用程序组件发起的所述请求试图与所述基于web的应用程序的对应的基于web的服务器组件通信,所述基于web的服务器组件能够访问在所述指定域中的所述网站的所述部分;
在接收所述请求后,检测到与所述指定域的通信无法通过网络获得的动作;
确定所述基于web的应用程序被启用来用于离线执行的动作;
访问本地地存储的清单的动作,所述清单指定包含所述基于web的应用程序的本地可执行复件的资源集合,所述资源的集合包括:
对应于所述基于web的应用程序的内容;
所述基于web的应用程序的可执行代码;以及
来自对应于所述基于web的应用程序的数据库的数据库数据的至少一部分;
所述清单还指定:包括在所述资源集合中的可执行代码模块,所述可执行代码模块在当所述web服务器不可用时在所述计算机系统本地地执行以接收来自web浏览器的请求并生成对应响应;以及当存在与所述基于web的服务器组件的网络通信时在所述计算机系统本地执行的同步模块,用于将本地存储的资源集合与在基于web的服务器的所述基于web的应用程序能够获得的资源进行同步;
响应于确定所述基于web的应用程序被启用来用于离线执行,通过执行所述清单中指定的可执行代码模块,本地地访问在所述计算机系统的所述网站的所述部分的本地可执行复件;
在其它web浏览器应用程序通过网络通信连续执行的同时,所述web浏览器与所述网站的所述部分的所述本地可执行复件交互以标识资源的动作,所述web浏览器与所述网站的所述部分的所述本地可执行复件交互包括从web浏览器高速缓存本地地加载所述可执行代码模块;以及
响应于所述请求,所述可执行代码模块将所述资源从所述web浏览器高速缓存及分开的本地存储中提供给所述web浏览器应用程序组件,而不将所述web浏览器离线的动作,包括所述可执行代码模块访问来自所述web浏览器高速缓存的所述内容和基于web的应用程序的可执行代码,以及来自与所述浏览器高速缓存分开的单独的本地存储的数据库数据,以便将所请求的基于web的应用程序资源提供给所述web浏览器应用程序组件,而无需在接收请求之后发生任何网络通信。
7.如权利要求6所述的方法,其特征在于,所述接收请求的动作包括接收所述基于web的服务器组件的URL的动作。
8.如权利要求6所述的方法,其特征在于,确定所述基于web的应用程序被启用来用于离线执行的动作包括引用被启用来用于离线执行的基于web的应用程序的列表的动作。
9.如权利要求6所述的方法,其特征在于,所述可执行代码模块将所述资源从所述web浏览器高速缓存和所述分开的本地存储提供给所述web浏览器应用程序组件的动作还包括:
将所述请求定向到所加载的模块的动作;
所加载的模块只使用从所述web浏览器高速缓存和所述分开的本地存储所访问的资源来制定对请求的完整响应的动作;以及
向所述web浏览器应用程序组件传送所述完整响应的动作。
10.一种用于存储本地内容以供web浏览器应用程序组件离线使用的方法,包括:
确定所述基于web的应用程序被启用来用于离线执行;
检测到基于web的应用程序的基于web的服务器组件可经由指定域中的网站的网络通信获得;
响应于检测到基于web的应用程序的基于web的服务器组件可经由网络通信获得,向所述基于web的服务器组件发送对资源的请求,以便于所述基于web的应用程序的离线执行,所述请求包括:对相应于所述基于web的应用程序的内容的请求,对所述基于web的应用程序的可执行应用程序代码的请求,以及对来自相应于所述基于web的应用程序的数据库的数据库数据的请求;
在从所述基于web的服务器组件接收所述资源之前接收清单的动作,所述清单指定基于web的服务器组件要发给计算机系统以用于本地地存储的资源集合,并指定存储所述资源集合的存储需求,所述清单还指定:当所述web服务器不可用时在所述计算机系统本地地执行的可执行代码模块,以及当存在与所述基于web的服务器组件的网络通信时在所述计算机系统本地执行的同步模块,用于将本地存储的资源集合与在基于web的服务器的所述基于web的应用程序能够获得的资源进行同步;以及
确定所述清单中指定的所述存储需求是否超过一定额,并在确定所述存储需求超过所述定额时,提示用户所述存储需求超过所述定额,使得所述用户通过配置界面将所述定额增长到足以存储所述资源集合的量的动作;
在发送所述请求后,经由网络通信从所述基于web的服务器组件接收用于所述基于web的应用程序的资源集合,所述资源的集合共同代表从所述指定域扯下用于在所述计算机系统离线执行的网站的一部分的本地可执行复件,所述资源的集合包括:
对应于所述基于web的应用程序的内容;
所述基于web的应用程序的可执行代码,包括当所述web服务器不可用时在所述计算机系统本地地执行的可执行代码模块,所述可执行代码模块用于从所述web浏览器接收请求并生成相应的响应;以及
来自对应于所述基于web的应用程序的数据库的数据库数据的至少一部分;
在所述计算机系统处本地地存储所接收到的资源集合,所述本地地存储的内容以及所述基于web的应用程序的可执行代码存储在web浏览器高速缓存中,且本地地存储的数据库数据存储在与所述浏览器高速缓存分开的本地存储中,所述内容和数据库数据可由可执行代码模块访问,而无需与所述基于web的服务器组件进行网络通信,以便在检测到所述基于web的服务器组件不可经由网络通信获得时,所述内容、所述可执行代码,和所述数据库数据可以响应于来自基于web的客户机组件的请求来访问;以及
当所述内容和所述基于web的应用程序的所述可执行代码在所述web浏览器高速缓存期满时,覆盖所述web浏览器的默认高速缓存回收设置以延长所述高速缓存期;以及
所述方法还包括执行以下动作:
从web浏览器接收访问指定域的网站的一部分的请求,从所述基于web的应用程序的web浏览器应用程序组件发起的所述请求试图与所述基于web的应用程序的对应的基于web的服务器组件通信,所述基于web的服务器组件能够访问在所述指定域中的所述网站的所述部分;
在接收所述请求后,检测到与所述指定域的通信无法通过网络获得;
确定所述基于web的应用程序被启用来用于离线执行;
响应于确定所述基于web的应用程序被启用来用于离线执行,本地地访问在所述计算机系统的所述网站的所述部分的本地可执行复件,所述本地可执行复件预先被从所述指定域扯下用于在所述计算机系统本地执行,所述网站的所述部分的所述本地可执行复件包括本地地存储在所述计算机系统的资源集合,所述资源集合包括:
对应于所述基于web的应用程序的内容;
所述基于web的应用程序的可执行代码,包括当所述web服务器不可用时在所述计算机系统本地地执行的可执行代码模块,所述可执行代码模块用于从所述web浏览器接收请求并生成相应的响应;以及
来自对应于所述基于web的应用程序的数据库的数据库数据的至少一部分;
在其它web浏览器应用程序通过网络通信连续执行的同时,响应于所述请求,所述web浏览器与所述网站的所述部分的所述本地可执行复件交互以从所述资源集合中标识资源,所述web浏览器与所述网站的所述部分的所述本地可执行复件交互包括从web浏览器高速缓存本地地加载所述可执行代码模块;以及
响应于所述请求,所述可执行代码模块将所述资源从所述web浏览器高速缓存及分开的本地存储中提供给所述web浏览器应用程序组件,而不将所述web浏览器离线,包括所述可执行代码模块访问来自所述web浏览器高速缓存的所述内容和基于web的应用程序的可执行代码,以及来自与所述浏览器高速缓存分开的单独的本地存储的数据库数据,以便将所请求的基于web的应用程序资源提供给所述web浏览器应用程序组件,而无需在接收请求之后发生任何网络通信。
11.如权利要求10所述的方法,其特征在于,将所接收到的资源集合本地地存储在所述计算机系统处包括在检测到所述基于web的服务器组件随后不可获得之前,预高速缓存所接收到的资源集合。
12.如权利要求10所述的方法,其特征在于,在所述计算机系统处本地地存储所接收到的资源集合包括将本地地存储的资源与所述指定域内的、所述基于web的服务器组件可获得的资源进行同步。
13.如权利要求10所述的方法,其特征在于,还包括:
响应于检测到所述基于web的应用程序的基于web的服务器组件可经由网络通信获得,发送所述基于web的服务器组件的可获得性的用户通知。
14.如权利要求10所述的方法,其特征在于,所述可执行代码模块将所述资源从所述web浏览器高速缓存及分开的本地存储中提供给所述web浏览器应用程序组件包括:
将所述请求定向到本地地加载的模块;
所加载的模块只使用从所述web浏览器高速缓存及分开的本地存储中所访问的资源来制定对请求的完整响应;以及
向所述web浏览器应用程序组件传送所述完整响应。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/554,435 US7814234B2 (en) | 2006-10-30 | 2006-10-30 | Offline execution of web based applications |
US11/554,435 | 2006-10-30 | ||
PCT/US2007/080548 WO2008054951A1 (en) | 2006-10-30 | 2007-10-05 | Offline execution of web based applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101529415A CN101529415A (zh) | 2009-09-09 |
CN101529415B true CN101529415B (zh) | 2012-08-08 |
Family
ID=39331673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800402239A Active CN101529415B (zh) | 2006-10-30 | 2007-10-05 | 基于web的应用程序的离线执行 |
Country Status (11)
Country | Link |
---|---|
US (1) | US7814234B2 (zh) |
JP (1) | JP4698756B2 (zh) |
KR (1) | KR101433981B1 (zh) |
CN (1) | CN101529415B (zh) |
AU (1) | AU2007313956B2 (zh) |
BR (1) | BRPI0716520A8 (zh) |
CA (1) | CA2662553C (zh) |
MX (1) | MX2009003549A (zh) |
RU (1) | RU2453911C2 (zh) |
TW (1) | TWI449372B (zh) |
WO (1) | WO2008054951A1 (zh) |
Families Citing this family (104)
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 |
US9043391B2 (en) | 2007-02-15 | 2015-05-26 | Citrix Systems, Inc. | Capturing and restoring session state of a machine without using memory images |
US8176486B2 (en) * | 2007-02-15 | 2012-05-08 | Clearcube Technology, Inc. | Maintaining a pool of free virtual machines on a server computer |
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 |
US20090069049A1 (en) * | 2007-09-12 | 2009-03-12 | Devicefidelity, Inc. | Interfacing transaction cards with host devices |
US20090089377A1 (en) * | 2007-09-27 | 2009-04-02 | International Business Machines Corporation | System and method for providing dynamic email content |
US9621649B2 (en) | 2007-09-28 | 2017-04-11 | Xcerion Aktiebolag | Network operating system |
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 |
US8294723B2 (en) * | 2008-11-07 | 2012-10-23 | Google Inc. | Hardware-accelerated graphics for web applications using native code modules |
US8675000B2 (en) * | 2008-11-07 | 2014-03-18 | Google, Inc. | Command buffers for web-based graphics rendering |
US9508108B1 (en) * | 2008-11-07 | 2016-11-29 | Google Inc. | Hardware-accelerated graphics for user interface elements in web applications |
US8626919B1 (en) | 2008-11-07 | 2014-01-07 | Google Inc. | Installer-free applications using native code modules and persistent local storage |
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 | 網頁應用程式執行方法 |
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 |
US8413139B2 (en) * | 2009-03-11 | 2013-04-02 | Microsoft Corporation | Programming model for application and data access and synchronization within virtual environments |
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 |
US20150205489A1 (en) * | 2010-05-18 | 2015-07-23 | Google Inc. | Browser interface for installed applications |
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 |
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 |
US9069443B2 (en) | 2010-06-11 | 2015-06-30 | Doat Media Ltd. | Method for dynamically displaying a personalized home screen on a user device |
US9323844B2 (en) | 2010-06-11 | 2016-04-26 | Doat Media Ltd. | System and methods thereof for enhancing a user's search experience |
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 |
US10713312B2 (en) | 2010-06-11 | 2020-07-14 | Doat Media Ltd. | System and method for context-launching of 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 |
EP2749036B1 (en) | 2011-08-25 | 2018-06-13 | Intel Corporation | System and 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 | 华为终端有限公司 | 离线应用的生成及调用方法、终端及系统 |
JP5736056B2 (ja) * | 2012-06-22 | 2015-06-17 | グリー株式会社 | 情報提供装置、情報提供方法及びプログラム |
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 |
US9043469B2 (en) | 2012-06-29 | 2015-05-26 | 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 |
KR102341026B1 (ko) | 2013-09-27 | 2021-12-21 | 코덱시스, 인코포레이티드 | 구조에 기반한 예측 모델링 |
KR102342205B1 (ko) | 2013-09-27 | 2021-12-21 | 코덱시스, 인코포레이티드 | 효소 변이체의 자동화 스크리닝 |
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 |
US20220114017A1 (en) * | 2019-05-31 | 2022-04-14 | 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 | カシオ計算機株式会社 | キャッシュ管理プログラム、サーバ、キャッシュ管理方法、および情報処理装置 |
EP4312418A1 (en) * | 2022-07-29 | 2024-01-31 | Abb Schweiz Ag | Method for automatic selection of servers |
Family Cites Families (33)
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 |
US10636084B2 (en) * | 1996-10-31 | 2020-04-28 | Citicorp Credit Services, Inc. (Usa) | Methods and systems for implementing on-line financial institution services via a single platform |
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 |
US6779042B1 (en) * | 1999-09-10 | 2004-08-17 | Ianywhere Solutions, Inc. | System, method, and computer program product for enabling on-device servers, offline forms, and dynamic ad tracking on mobile devices |
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 |
WO2001098936A2 (en) * | 2000-06-22 | 2001-12-27 | Microsoft Corporation | 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 |
US20030182414A1 (en) * | 2003-05-13 | 2003-09-25 | O'neill Patrick J. | System and method for updating and distributing information |
CA2328066A1 (en) * | 2000-12-15 | 2002-06-15 | Philippe Lasnier | Internet shopping system and method |
US20030055927A1 (en) * | 2001-06-06 | 2003-03-20 | Claudius Fischer | Framework for a device and a computer system needing synchronization |
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 |
US7272782B2 (en) * | 2003-12-19 | 2007-09-18 | Backweb Technologies, Inc. | System and method for providing offline web application, page, and form access in a networked environment |
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 |
US7685258B2 (en) * | 2004-05-21 | 2010-03-23 | Bea Systems, Inc. | Disconnectible applications |
US9083765B2 (en) * | 2004-07-02 | 2015-07-14 | Oracle International Corporation | Systems and methods of offline processing |
US8832595B2 (en) * | 2004-08-06 | 2014-09-09 | Nokia Corporation | Mobile communications terminal and method |
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 |
-
2006
- 2006-10-30 US US11/554,435 patent/US7814234B2/en not_active Expired - Fee Related
-
2007
- 2007-09-28 TW TW096136396A patent/TWI449372B/zh not_active IP Right Cessation
- 2007-10-05 CA CA2662553A patent/CA2662553C/en not_active Expired - Fee Related
- 2007-10-05 WO PCT/US2007/080548 patent/WO2008054951A1/en active Application Filing
- 2007-10-05 BR BRPI0716520A patent/BRPI0716520A8/pt active Search and Examination
- 2007-10-05 MX MX2009003549A patent/MX2009003549A/es active IP Right Grant
- 2007-10-05 KR KR1020097008281A patent/KR101433981B1/ko active IP Right Grant
- 2007-10-05 JP JP2009534750A patent/JP4698756B2/ja not_active Expired - Fee Related
- 2007-10-05 RU RU2009116454/08A patent/RU2453911C2/ru not_active IP Right Cessation
- 2007-10-05 CN CN2007800402239A patent/CN101529415B/zh active Active
- 2007-10-05 AU AU2007313956A patent/AU2007313956B2/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
RU2453911C2 (ru) | 2012-06-20 |
KR101433981B1 (ko) | 2014-08-26 |
US7814234B2 (en) | 2010-10-12 |
CA2662553C (en) | 2016-11-08 |
AU2007313956B2 (en) | 2012-01-19 |
WO2008054951A1 (en) | 2008-05-08 |
TWI449372B (zh) | 2014-08-11 |
BRPI0716520A2 (pt) | 2013-09-24 |
AU2007313956A8 (en) | 2009-04-23 |
JP2010508581A (ja) | 2010-03-18 |
KR20090073199A (ko) | 2009-07-02 |
US20080104195A1 (en) | 2008-05-01 |
CA2662553A1 (en) | 2008-05-08 |
CN101529415A (zh) | 2009-09-09 |
RU2009116454A (ru) | 2010-11-10 |
MX2009003549A (es) | 2009-05-12 |
TW200826551A (en) | 2008-06-16 |
JP4698756B2 (ja) | 2011-06-08 |
BRPI0716520A8 (pt) | 2017-01-17 |
AU2007313956A1 (en) | 2008-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101529415B (zh) | 基于web的应用程序的离线执行 | |
CN101523393B (zh) | 本地存储基于web的数据库数据 | |
US8078673B2 (en) | Automated acquisition and maintenance of web-servable content via enhanced “404:not found” handler | |
CN101184105A (zh) | 一种用于更新数据的客户端装置和方法 | |
CN106326025A (zh) | 浏览器异常处理方法及装置 | |
US20030187957A1 (en) | Automatic data download system and method | |
CN102750312A (zh) | 跨承租人移动的承租人数据的恢复 | |
CN102804202A (zh) | 内容网格搜索 | |
CN102567339A (zh) | 一种获取起始页的方法、装置和系统 | |
CN102915363A (zh) | 网址收藏方法和系统 | |
CN103631678A (zh) | 一种客户端软件的备份方法、还原方法和装置 | |
US10270860B2 (en) | Increased interoperability between web-based applications and hardware functions | |
CN102932469A (zh) | 一种实现客户端浏览器的方法和客户端浏览器 | |
CN104834534A (zh) | 扩展应用程序功能的方法、装置及系统 | |
CN111858255A (zh) | 基于屏幕截图的用户行为采集方法及相关设备 | |
CN102929489A (zh) | 客户端浏览器实现方法及客户端浏览器 | |
CN113918437A (zh) | 用户行为数据分析方法、装置、计算机设备和存储介质 | |
CN102156696A (zh) | 一种针对网页应用的本地化微件管理方法和终端设备 | |
US20110295955A1 (en) | Page monitoring | |
CN102937982A (zh) | 一种收藏内容生成的方法和系统 | |
US6848076B1 (en) | Automatic fetching and storage of requested primary and related documents or files at receiving web stations after repeated failures to access such documents or files from the World Wide Web | |
CN102902828A (zh) | 一种用于检索的方法和装置 | |
CN104537019A (zh) | 浏览器信息分享的方法、浏览器客户端和装置 | |
CN117155920A (zh) | 文件压缩处理方法、装置、设备、介质及程序产品 | |
CN100546309C (zh) | 一种无线应用协议网关中处理用户代理档案的装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150512 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150512 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |