介绍
随着我们进入互联网服务时代,“在线”成为任何试图在当今市场上占据主导地位的软件系统的必要条件。就连软件巨头微软也开始意识到这一紧迫性,并决定“上线”,此前谷歌(GOOG.O:行情)和雅虎(Yahoo Inc.行情)等许多基于网络的服务最近在这一领域获得了发展势头。“在线”软件(也称为软件即服务,SaaS)由低成本的带宽、广泛的无线访问、廉价的内存和存储所支持,其特点是快速的发布周期、产品是否在PC或其他计算设备上运行的不可知态度,以及将本地、点对点、,和在线功能(Ricadela,2005)。不用说,过去10年来,大多数网站都是为了只发布静态信息而开发的,自那时以来,它们已经稳步发展,无处不在,以服务于动态复杂的Web内容和业务功能。
从以文档Web为标志的第一代Web开始,Web站点正在演变为应用Web,并在最近进一步发展为服务Web。DocumentWeb只是让Web服务器承载Internet可访问的文档,其中大多数是静态HTML和图像。大多数传统的内容交付加速技术只针对文档Web。随着Web站点的迅速普及,与电子商务模型相一致的应用程序Web开始出现,它依赖于服务器端程序执行托管在应用程序服务器上的业务逻辑,以根据每个用户请求生成动态HTML,例如在线书店、拍卖网站和企业Web应用程序。Web应用程序的增长提供了电子商务流程集成的机会,这反过来推动了技术进步,并导致服务Web尚未成熟。服务Web由支持Web服务并将XML作为响应交付的应用服务器提供支持。应用程序Web和服务Web都需要在服务器端为每个唯一的请求动态生成内容。在本文中,我们在讨论内容生成和交付时并没有具体区分这三种类型的Web,它们在下文中都被称为Web应用程序。
响应性即用户感知延迟,是人们用来确定应用程序Web是否适合个人或业务需求的最重要的性能度量。为了通过减少客户端响应延迟和网络流量来提高Web性能,研究部门和工业部门都做出了大量努力。工作内容多种多样,从增加网络带宽、提高数据传输速率、在每个可能的位置缓存内容,到以任何方式扩展服务器场。
另一方面,使用各种移动资源受限设备对Web内容的移动访问显著增加。据观察,支持Web的PDA和手机以及试图“动员”Web内容的努力都在爆炸式增长。由于移动通信固有的稳定性不如有线网络,因此对响应性的要求更高。所有这些都要求使用这些技术来加快内容的生成和分发。
Web应用程序需要比静态内容Web站点更复杂的基础结构,如图1所示。该系统模型在实践中是一个典型的模型,将在本文的其余部分中引用。它包括
(1) 边缘服务器,通过缓存内容和应用程序代码,将服务从原始服务器扩展到靠近用户的互联网边缘,以减少客户端延迟并卸载原始服务器。新一代边缘服务器也支持缓存应用程序代码。(2) Web服务器,它接收HTTP请求并将响应发送回客户端。(3) 执行业务逻辑的应用程序服务器。应用服务器通常连接到后端企业信息系统,并执行由业务规则驱动的读或写操作。大多数动态内容都是在应用服务器上生成的。(4) 企业信息系统,内容最初存储在这里。它可以有多种形式,例如XML、文件系统或DBMS,其中DBMS是实际使用中最流行的信息系统类型。
在这种典型的Web应用程序部署基础架构中,有许多变量可以影响用户感知的延迟。这可以用以下符号表示:其中,用户感知的总延迟是DNS查找引入的延迟的总和,源服务器为生成动态页面引入的延迟,网络流量引入的延迟,用户使用的互联网接入带来的延迟(与DSL或有线接入相比,拨号接入带来更多延迟)以及用户用来访问网页的机器速度所带来的延迟.
如果无法进行内容缓存,动态内容生成和交付将消耗网络带宽和响应延迟。缓存有四个主要目的:提高用户感知的延迟,减少互联网流量(带宽可用性),提高源服务器的可扩展性和可用性。虽然遗留内容缓存和内容分发网络(CDN)显著提高了静态网站的性能,但它缺少缓存动态内容所需的主动有效的无效机制。缓存动态内容的关键问题是确定应该缓存什么,缓存应该放在哪里,以及如何有效地使缓存的数据无效。这些新的挑战和问题引起了研究:(1)Web应用程序的哪些特性给缓存动态内容带来了挑战:分析动态内容的可缓存性和挑战,并研究如何改进它;(2) 加速动态内容生成:研究如何通过架构内缓存、数据库或边缘计算来加速内容生成,以自适应或编程方式实现这些方法;(3)加速动态内容交付:探索新的动态内容缓存策略和内容交付方法。
Sivasubramanian等人(2007年)的一项相关调查审查了数据库驱动Web应用程序的内容缓存技术,Pathan等人(2008年)的另一项调查调查了内容分发网络中使用的技术,本调查将范围扩展到动态内容Web从生成到交付的加速技术,包括内容和计算的缓存。本文的其余部分组织如下。在第2节中,我们分析了Web内容的特征。第3节解释了不同的缓存技术和部署模型如何帮助加快内容生成。第4节讨论了不同类型的内容交付方法。第5节进一步研究了这些内容缓存解决方案如何适用于具有不同特征的应用程序。最后,在第6节中,我们讨论了该领域剩余的挑战和研究机会,并在第7节中总结了我们的调查。