基于web的应用程序的离线执行的制作方法

文档序号:6456358阅读:239来源:国知局
专利名称:基于web的应用程序的离线执行的制作方法
基于web的应用程序的离线执行 背景
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理 信息的能力已改变人们生活和工作的方式。计算机系统现在通常执行在计 算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会 计等)。最近,计算机系统被彼此耦合并被耦合到其它电子设备,以形成 计算机系统和其它电子设备可以在其上传送电子数据的有线和无线计算机 网络。因此,许多计算任务的性能分布在多个不同的计算机系统和/或多个 不同的计算组件上。
基于网络的通信的一种常见形式是在万维网("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操作(CREATE TABLE、 SELECT、 INSET、 UPDATE、 DELETE等)。由此,web浏览器 本质上提供了用于通过网络(例如,因特网)来操纵数据库数据的用户界 面。
然而,通常不存在供web浏览器适当地高速缓存表格数据(例如,来 自数据库的数据)的机制。通常,用户无法在任一时刻访问数据库中的所 有数据。因此,高速缓存任何接收到的数据库数据提供了不完整的(并且 可能是非功能性的)数据集。此外,因为内容通常被高速缓存在公共位置
(浏览器高速缓存)中,所以高速缓存来自一个网站(或域)的数据库数 据可能使得高速缓存的数据库数据对该web浏览器访问的任何其它网站
(或域)可用。例如,高速缓存的公司财务数据在web浏览器随后(并且 可能不为用户所知)被定向到恶意网站(该恶意网站然后可检査该浏览器 高速缓存)时处于危险的境地。
此外,因为许多数据库包含大量数量,所以本地高速缓存数据库数据 可快速填满所分配的浏览器高速缓存空间。另外,大多数浏览器(即使不是全部)缺乏在"离线"模式下工作的 能力。g卩,在网站不可用时(例如,在没有检测到活动的网络连接或对应
的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标识用于便于"ExpenseReport(经费报告)" (在行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的存储是适当的。S卩,离 线管理器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)。例如,离线管理器123可以延长资源194B期满的 时间。延长资源期满的时间可以包括用具有相当长期限(例如,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中的计算机体系结构IOO的组件和数据来描述。
方法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的可 执行指令和数据可在计算机系统处用来模拟与该网站的通信。
本发明的各实施例可以根据用户和计算机系统配置规则来帮助该计算 机系统处的非易失性存储的透明的扩展。文件的多个阴影复件的维护提供 冗余,从而在巻发生故障的情况下得到更高效的恢复。此外,在未以其它 方式繁重使用系统资源时,文件操作可以在后台在阴影复件之间传播。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实 施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范 围由所附权利要求书而非前述描述指示。落入权利要求书的等效方式的含 义和范围内的所有改变应被权利要求书的范围涵盖。
权利要求
1.一种在连接到网络的计算机系统处的用于配置本地内容以供基于web的应用程序的web浏览器应用程序组件离线使用的方法,所述计算机系统包括web浏览器和对应的基于web的应用程序的多个web浏览器应用程序组件,所述web浏览器被配置成执行各web浏览器应用程序组件来分别从所述对应的基于web的应用程序的web服务器应用程序组件访问资源,所述方法包括确定所述基于web的应用程序被启用来用于离线执行的动作;检测到所述基于web应用程序的基于web的服务器组件可经由网络通信获得的动作;经由网络通信从所述基于web的服务器组件接收用于所述基于web的应用程序的资源的动作;在所述计算机系统处本地地存储所接收到的资源的动作,所述本地地存储的资源的复件可由web浏览器客户机组件访问,所述基于web的客户机组件可以使用所述本地地存储的资源而无需网络通信以便在检测到所述基于web的服务器组件不可经由网络通信获得时可以响应于来自所述基于web的客户机组件的请求来访问所述本地地存储的资源;以及将所述本地地存储的资源配置成在指定的一段时间内保持本地地存储在所述计算机系统上从而覆盖所述web浏览器的默认高速缓存回收设置的动作。
2. 如权利要求l所述的方法,其特征在于,检测到所述基于web应用 程序的基于web的服务器组件可经由网络通信获得的动作包括在web服务 器有一段时间不可获得之后,重新建立与所述web服务器的通信的动作。
3. 如权利要求1所述的方法,其特征在于,接收用于所述基于web的 应用程序的资源的动作包括接收在所述web服务器不可获得的情况下要在 所述计算机系统处本地地执行的模块,所述模块被配置成从所述web浏览 器应用程序组件接收请求并生成对应的响应。
4. 如权利要求1所述的方法,其特征在于,在所述计算机系统处本地 地存储所接收到的资源的动作包括在检测到所述基于web的服务器组件随后不可获得之前,预高速缓存所接收到的资源的动作。
5. 如权利要求1所述的方法,其特征在于,在所述计算机系统处本地 地存储所接收到的资源的动作包括将本地地存储的资源与包含所述基于web的服务器组件的域内的、所述基于web的服务器组件可获得的资源进 行同步的动作。
6. 如权利要求l所述的方法,其特征在于,还包括在从所述基于web的服务器组件接收所述资源的动作之前,接收包括 所述基于web的服务器组件将要发送到所述计算机系统以供本地存储的资 源的列表并指示对于存储所述资源的存储要求的清单的动作;以及确定分配给包含所述基于web的服务器组件的域的存储空间的量足以 满足所述清单中指示的存储要求的动作。
7. 如权利要求l所述的方法,其特征在于,还包括-响应于检测到所述基于web的应用程序的基于web的服务器组件可经由网络通信获得,发送所述基于web的服务器组件的可获得性的用户通知 的动作。
8. —种连接到网络的计算机系统处的用于离线运行基于web的应用程 序的方法,所述计算机系统包括web浏览器和对应的基于web的应用程序 的多个web浏览器应用程序组件,所述web浏览器被配置成执行各web浏 览器应用程序组件来分别从所述对应的基于web的应用程序的web服务器应用程序组件访问资源,所述方法包括基于web的应用程序的web浏览器应用程序组件向所述基于web的应 用程序的对应的web服务器应用程序组件发送对基于web的应用程序资源 的请求的动作;检测到与所述对应的web服务器应用程序组件的通信无法通过网络获 得的动作;确定所述基于web的应用程序被启用来用于离线执行的动作; 将所述web浏览器配置成在其它web浏览器应用程序保持配置成在线 执行的同时离线执行所述web浏览器应用程序的动作;以及从所述计算机系统的本地存储中提供所请求的基于web的应用程序资源而不将所述web浏览器离线的动作。
9. 如权利要求8所述的方法,其特征在于,所述基于web的应用程序 的web浏览器应用程序组件发送请求的动作包括所述web浏览器应用程序 组件向所述web浏览器发送所述web服务器应用程序组件的URL的动作。
10. 如权利要求8所述的方法,其特征在于,确定所述基于web的 应用程序被启用来用于离线执行的动作包括引用被启用来用于离线执行的 应用程序的列表的动作。
11. 如权利要求8所述的方法,其特征在于,将所述web浏览器配 置成离线执行所述web浏览器应用程序的动作包括从所述计算机系统处的 浏览器高速缓存中本地地加载模块的动作,所述模块被配置成从所述web 浏览器应用程序组件接收请求并制定对应的响应。
12. 如权利要求11所述的方法,其特征在于,从所述计算机系统处 的浏览器高速缓存中本地地加载模块的动作包括,加载在资源清单中被标 识为要在接收到对所述web服务器应用程序组件的请求且与所述web服务 器应用程序组件的通信无法通过网络获得的情况下执行的模块的模块的动 作。
13. 如权利要求12所述的方法,其特征在于,从所述计算机系统处 的本地存储提供所请求的基于web的应用程序资源而不将所述web浏览器 离线的动作包括将所述请求定向到所加载的模块的动作;所加载的模块从所述浏览器高速缓存访问所请求的基于web的应用程 序资源的动作;所加载的模块只使用从所述计算机系统的本地存储所访问的资源来制 定对请求的完整响应的动作;以及向所述web浏览器应用程序组件传送所述完整响应的动作。
14. 如权利要求8所述的方法,其特征在于,从所述计算机系统处的 本地存储中提供所请求的基于web的应用程序资源的动作包括,从所述计 算机系统处的浏览器高速缓存中提供内容以及从所述计算机系统处的本地 存储中提供数据库数据,以便在所述web浏览器应用程序组件发送所述请求之后不发生任何网络通信的情况下向所述web浏览器应用程序组件提供 所请求的基于web的应用程序资源的动作。
15. —种计算机系统,包括一T驮多T处埋益;系统存储器;本地地部署在所述计算机系统处的一个或多个物理计算机可读介质, 所述一个或多个物理计算机可读介质其上存储有被配置成实现一种用于配 置本地内容以供基于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浏览器离线。
16. 如权利要求15所述的计算机系统,其特征在于,将所接收到的 资源本地地存储在所述计算机系统处包括在检测到所述基于web的服务器 组件随后不可获得之前,预高速缓存所接收到的资源。
17. 如权利要求15所述的计算机系统,其特征在于,在所述计算机 系统处本地地存储所接收到的资源包括将本地地存储的资源与包含所述基 于web的服务器组件的域内的、所述基于web的服务器组件可获得的资源 进行同步。
18. 如权利要求15所述的计算机系统,其特征在于,还包括被配置 成执行以下动作的计算机可执行指令在从所述基于web的服务器组件接收所述资源的动作之前,接收包括 所述基于web的服务器组件将要发送到所述计算机系统以供本地存储的资 源的列表并指示对于存储所述资源的存储要求的清单;以及确定分配给包含所述基于web的服务器组件的域的存储空间的量足以 满足所述清单中指示的存储要求。
19. 如权利要求15所述的计算机系统,其特征在于,还包括被配置 成执行以下动作的计算机可执行指令响应于检测到所述基于web的应用程序的基于web的服务器组件可经 由网络通信获得,发送所述基于web的服务器组件的可获得性的用户通知。
20. 如权利要求15所述的计算机系统,其特征在于,从所述计算机 系统处的本地存储中提供所请求的基于web的应用程序资源而不将所述 web浏览器离线包括将所述请求定向到本地地加载的模块;所述本地地加载的模块从浏览器高速缓存访问所请求的基于web的应 用程序资源;所加载的模块只使用从所述计算机系统的本地存储所访问的资源来制 定对请求的完整响应;以及向所述web浏览器应用程序组件传送所述完整响应。
全文摘要
本发明涉及用于基于web的应用程序的离线执行的方法、系统和计算机程序产品。本发明的各实施例便于基于web的可执行指令和数据在计算机系统处的本地存储。该基于web的可执行指令和数据可被用来本地地实现来自与web浏览器相关联的模块的请求(定向到发送该供存储的可执行指令和数据的域)。因此,当网站在其它情况下不可用时,本地地存储的基于web的可执行指令和数据可在计算机系统处用来模拟与该网站的通信。
文档编号G06F17/00GK101529415SQ200780040223
公开日2009年9月9日 申请日期2007年10月5日 优先权日2006年10月30日
发明者J·C·霍金斯, S·S·尼约吉 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1