CN101529415B - 基于web的应用程序的离线执行 - Google Patents

基于web的应用程序的离线执行 Download PDF

Info

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
Application number
CN2007800402239A
Other languages
English (en)
Other versions
CN101529415A (zh
Inventor
J·C·霍金斯
S·S·尼约吉
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 Technology Licensing LLC
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 CN101529415A publication Critical patent/CN101529415A/zh
Application granted granted Critical
Publication of CN101529415B publication Critical patent/CN101529415B/zh
Active 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

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

基于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操作(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浏览器应用程序组件传送所述完整响应。
CN2007800402239A 2006-10-30 2007-10-05 基于web的应用程序的离线执行 Active CN101529415B (zh)

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)

* 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
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)

* 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
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

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.