CN102792292A - 站点性能优化和因特网业务处理的系统和方法 - Google Patents

站点性能优化和因特网业务处理的系统和方法 Download PDF

Info

Publication number
CN102792292A
CN102792292A CN2010800557091A CN201080055709A CN102792292A CN 102792292 A CN102792292 A CN 102792292A CN 2010800557091 A CN2010800557091 A CN 2010800557091A CN 201080055709 A CN201080055709 A CN 201080055709A CN 102792292 A CN102792292 A CN 102792292A
Authority
CN
China
Prior art keywords
http
optimization
browser
network
client
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.)
Granted
Application number
CN2010800557091A
Other languages
English (en)
Other versions
CN102792292B (zh
Inventor
考持·维
罗伯特·布弗恩
雷蒙德·斯塔塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CN102792292A publication Critical patent/CN102792292A/zh
Application granted granted Critical
Publication of CN102792292B publication Critical patent/CN102792292B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种优化网站性能的系统,网站运行在一个或多个HTTP服务器上,并被配置为从一个或多个客户端经由用户代理接收HTTP请求,并将HTTP响应提供到所述一个或多个客户端,所述系统包括中间组件,被配置为经由网络连接将所述客户端连接到所述服务器。所述中间组件包括:业务管理系统(TMS),并且其中所述TMS包括:用于管理源自所述客户端、目标为所述服务器的HTTP请求以及目标为所述客户端的HTTP响应的装置;以及用于将所述HTTP请求重定向到所述中间组件的装置。所述中间组件还包括业务处理系统,所述业务处理系统包括:用于接收所述重定向的HTTP请求以及所述HTTP响应的装置;以及应用优化技术到所述重定向的HTTP请求和所述HTTP响应的装置。

Description

站点性能优化和因特网业务处理的系统和方法
相关待审申请的交叉引用
本申请要求2009年12月7日提交的美国临时申请序列号No.61/267,149、名称为“DISTRIBUTED NETWORK SERVICE FORTRAFFIC PROCESSING AND OPTIMIZATION”的权益,通过引用其全部内容合并于此。
技术领域
本发明涉及站点性能优化和因特网业务处理的系统和方法。并且,更具体地,涉及优化定向到站点的请求以及源自该站点的响应的系统。
背景技术
每天,数百万计的人们为了学习、阅读、共享、社交联网、购物、写博客、游戏、约会、吃饭和旅游等等访问各种站点。同时,数百万计的站点正努力在服务他们的目标要求方面、是否构建在线商务、支持离线商务或构建二者方面做到成功。根据NetCraft,在2009年3月存在超过68,000,000的活跃站点,同时在过去的15年间,每月创建的新站点超过1,400,000。而每一个站点服务于其自身的目的,它们一起形成我们今天的社会的基础结构的一部分。
站点的性能直接影响其在服务它的目标上的成功或失败。当站点慢时,用户不得不花费更多的时间来等待并且变得生产率较低。更常见的是,他们失去耐心,放弃他们的活动并离开。而且,用户返回到更慢得站点的可能性极低。相反,较快的性能导致更愉悦的用户体验。用户的成效较高并且返回来的可能性大。
商业成功的网站性能的影响已经在真实的世界中证明许多次。网站性能问题的部分列表如下:
·Amazon:100ms的延迟造成1%的收入下降。
·Google:400ms的延迟造成0.59%的每用户搜索请求的下降。
·Yahoo!:400ms的延迟造成5-9%的业务下降。
·Bing:2秒的延迟造成4.3%的每用户的收入下降。
·Mozilla使它们的下载页面快2.2秒并且获得15.4%的下载增加的回报。
·Google Maps缩减30%的文件大小并观察到地图请求中的30%的增长。
·Netflix在服务器中运用了gzip,仅仅通过这个动作页面就变得快13-25%并节省50%的业务量!
·Shopzilla在将载入时间从7秒下降到2秒中获得成功,从而会话率增加7-12%,他们观察到页面请求中有25%的增加,他们能够使50%的服务器退出服务,因此节省了能量损耗。
·AOL观察到在几个站点上的多个页面的浏览。而最快的用户需要7-8个页面,最慢的则仅浏览3-4个页面。
从网站的初期起,站点拥有者已经试图寻找改进站点性能的方法。首先,看看影响站点性能的因素是有意义的。
通过沿着网站应用递送链的复杂的元素链来确定站点的性能,网站应用递送链从站点针对端用户的浏览器正运行的数据中心开始。
当用户请求网站页面时,用户的浏览器发出请求作为HTTP请求。从用户的计算机向用户的最后一英里连接发送HTTP请求,最后一英里连接可以是到某个本地互联网服务提供商(ISP)的拨号、DSL、线缆调制解调器、wifi、小区、T1、T3等等。该请求被进一步根据互联网路由协议(BGP)从本地ISP向一些其他ISP网站发送。沿着该路径,在该请求通过的每一跳都可能存在防火墙、网关、过滤器、地址翻译等等。如果没有错误,则该请求最终到达站点运行的数据中心。在数据中心内部,HTTP服务器处理该请求,其可以经过几个额外的步骤,诸如唤醒某中间件逻辑以及数据库查找,并最终产生HTML文档。HTTP服务器响应于HTTP请求返回HTML文档。HTML文档作为HTTP响应消息被发送,穿过沿着该链的相同的网站,直到最终由用户的浏览器接收HTTP响应。浏览器分析HTTP响应,解析并处理它。一旦浏览器识别出HTTP响应是HTML文档,它就开始提供HTML文档。在提供过程中,如果HTML页面包含诸如图像、Java脚本文件、级联样式表(CSS)文件、媒体文件等等额外资源,则浏览器发布针对这些资源的附加请求。每一请求都导致一个往返行程。当今的网页要求超过100个往返行程是非常典型的。最终,所有这些资源都被装载,浏览器全面地提供页面,并且页面就绪,用户可进行交互操作。
沿递送路径的影响站点性能的各种组件可分类为以下类别:
1.与网站内容复杂性有关的因素:HTML页面的尺寸、页面需要的附加往返行程请求的数量、Java脚本文件、CSS文件、图像文件、视频或其它媒体文件、页面上的第三方的微件等等。更复杂的网页会需要更多的浏览器处理时间并会导致更多的往返行程的数量,这会要求更长的等待时间。
2.客户端因素:这些包括浏览器自身、客户端机器或设备的速度以及浏览器处理性能等等。
3.网络相关因素:最后一英里连接、从客户端浏览器起到达目标HTTP服务器的网络路径以及沿该路径的跳数、网络拥塞情况、延迟、地理距离、沿网络路径的防火墙和过滤处理、沿该路径的各个跳所使用的路由算法、网络协议以及其效率、分组丢弃率等等。
4.服务器基础设施相关的因素:HTTP服务器的地理位置、HTTP服务器的数量以及每个服务器的性能、为实现HTTP请求而需要的其他服务器侧基础设施的性能等等。
存在用于优化站点性能的各种途径。不同的途径专注于不同的影响因素。以下列出这些途径:
1.雇佣聪明的网站开发团队来优化网站内容。大的站点通常使用这种途径,因为他们有发现和聘用所需的技术天才的资源。但是,这些天才是稀少和昂贵的。大多数站点既没有资源也没有带宽来这样做。Google.com是个很好的例子。Google.com的包括HTML代码、Java脚本、CSS文件和图像文件的主页针对最快速的性能被高度优化。其递送很大的结果但是需要一些该平台上最好的工程师来这样做。
2.通过添加更多的数据中心以改进地理覆盖和冗余或者通过增加更多的硬件装备来改进处理容量等等来构建服务器基础设施。大的站点通常使用许多HTTP服务器并使用负载均衡来将负载分布到这些HTTP服务器。它们中的一些甚至在不同的地理区域建立多个数据中心以减少地理延迟的影响。这种途径不仅要求相当数量的基础设施投资,而且要求重要的技术天才操纵和管理这些基础设施操作。结果,不具有像这些大站点的财力资源的大多数站点仅有有限的选择。
3.使用内容递送网络(CDN):内容递送网络(CDN)是将静态网站资产分布到互联网的边缘并从地理上更接近端用户的位置服务它们以改进网页加载的性能的网络服务。存在很多可用于从包括诸如Akamai,LimeLight,Amazon,CloudFront,EdgeCast,HighWinds,CDNetworks,ChinaCache,Cotendo,NetDNA/MaxCDN,SimpleCDN,ATT CDN,BigGravity,Advection.NET,Bitorrent,CacheFly,Velocix,Digital Foundation,GridNetworks,Ignite Technologies,Internap,Level 3 Communications,Mirror Image,Move Networks,NaviSite,Pando Networks,PEER1,SoftLayer CDN,Microsoft,Swarmcast,Tata Communications或Voxel.net等等的商贩中进行选择的CDN服务。CDN对视频流或大的静态资产分配特别有用。为了使用CDN服务,站点需要将静态资产分割并将它们上载到CDN,并接着从CDN将该资产分布。传统的CDN服务大多数被大的站点所有者使用,因为他们具有所需要的财产和技术机缘来这样做。最近几年来,较小的但是技术复杂的站点也开始采用CDN服务。
4.使用专业网络装备,诸如应用递送控制器(ADC)和TCP/IP优化装备。许多包括Cisco,Citrix,Bluecoat和F5 Networks的联网商贩提供ADC设备,站点拥有者可以购买并安装ADC设备来改进HTTP连接处理的性能。这些设备典型地提供负载均衡、高速缓存、连接轮训或者甚至协议优化。这些被大的商业站点广泛地采用。它们是强大且昂贵的,不仅需要相当的前期投资,并且还需要持续地维护和支持。
另一种途径是优化客户端浏览器性能。不同的浏览器具有不同的能力。能够开发特别浏览器的独特能力来构建更高的执行站点。事实上,某些站点确实需要特定浏览器或浏览器版本以便进行执行。但是,这对大多数站点来说不是合适的途径,因为站点极少对客户端用户环境具有控制。
当前的网站性能优化的技术现状是数百个涉及因素构成的复合体。每一个上述的途径仅仅解决这些因素的一小部分。为了有效地优化站点的性能,需要关键的专业技术知识。为了得到结果需要持续的投资,这是一项单调的和需要体力的过程。实际中,大多数站点不具有专业技术知识或财政资源来做出这样的承诺。对于具有财政资源的这些站点,它们典型地不得不雇佣大的具有涵盖网站开发和网络操作能力的技术团队,以连续地评估各种技术、利用它们来进行实验、监视结果并重复。
总之,现有技术中的网站性能优化途径是复杂的、昂贵的、需要体力的,且仅仅大的网站财政资源才能承担的起。因此,需要一种解决现有网站性能优化解决方案中的上述限制的系统和方法。
发明内容
总的来说,在一方面,本发明描述了一种优化网站性能的系统,网站运行在一个或多个HTTP服务器上,并被配置为从一个或多个客户端经由用户代理接收HTTP请求,并将HTTP响应提供到所述一个或多个客户端。所述系统包括:中间组件,被配置为经由网络连接将所述客户端连接到所述服务器;其中所述中间组件包括:业务管理系统(TMS),并且其中所述TMS包括:用于管理源自所述客户端、目标为所述服务器的HTTP请求以及目标为所述客户端的HTTP响应的装置;以及用于将所述HTTP请求重定向到所述中间组件的装置;以及其中所述中间组件还包括业务处理系统(TPS),并且其中所述TPS系统包括:用于接收所述重定向的HTTP请求以及所述HTTP响应的装置;以及用于应用优化技术到所述重定向的HTTP请求和所述HTTP响应的装置。
本发明这方面的实施可以包括下列特征的一个或多个。其中所述应用优化技术的装置包括:用于应用浏览器优化的装置;用于应用内容优化的装置;用于应用HTTP优化的装置;用于应用网络优化的装置;用于应用内容递送网络(CDN)优化的装置;以及用于应用基础设施优化的装置。所述中间组件是基于云的,并且被配置为运行在专用云、公共云或混合云计算基础设施中。所述基于云的中间组件运行在世界范围内的不同地理区域。所述基于云的中间组件包括用于通过响应于站点业务处理要求缩放基于云的计算基础设施来缩放其处理容量的装置。所述中间组件还包括用于通过应用本地地实现所选择的HTTP请求、中继所选择的HTTP请求到所述HTTP服务器或中继所选择的HTTP请求到其他HTTP主机中的一个来处理所述重定向的HTTP请求的装置。所述业务管理装置还包括用于定向所述优化的HTTP请求到所述网站的装置以及用于定向所述优化的HTTP响应到所述用户的装置。所述用于重定向所述HTTP请求到所述中间组件的系统业务管理装置包括用于将规范名(CNAME)添加到网站的DNS记录的域名服务(DNS)装置以及用于解析CNAME到中间组件的装置。所述用于重定向所述HTTP请求到所述中间组件的业务管理装置包括用于寄放网站的DNS记录以及向中间组件解析到所述网站的DNS请求的DNS装置。所述用于重定向所述HTTP请求到所述中间组件的业务管理装置包括网关,并且所述HTTP请求和HTTP响应被配置为经过所述网关。所述中间组件可以是下列之一:代理服务器、作为负担所述站点的所述一个或多个HTTP服务器的部分运行的库模块、连接所述客户端到所述一个或多个HTTP服务器的硬件设备或应用。所述用于应用内容优化的装置包括用于优化HTML页面的装置、用于优化Java脚本文件的装置、用于优化CSS文件的装置、用于优化图像文件的装置以及用于优化媒体文件的装置,并且其中所述优化装置减少加载网页所需的HTTP请求的数量。所述用于优化HTML页面的装置包括用于缩小率、压缩程序、资源束、重复数据移除、请求次序移动、资源内联和使用DataURI技术的装置。所述用于优化Java脚本文件的装置包括用于缩小率、压缩程序、Java脚本文件束、蒙蔽、重复数据移除、延迟处理、Java脚本内联和使用DataURI技术的装置。所述用于优化CSS文件的装置包括用于缩小率、压缩程序、CSS束、蒙蔽、重复数据移除、CSS内联和使用DataURI技术的装置。所述用于优化图像文件的装置包括用于元数据移除、色表调整、正移、sprite、压缩和使用DataURI技术的装置。所述用于优化媒体文件的装置包括用于元数据移除、视口正移、代码转换和压缩的装置。所述用于应用浏览器优化的装置包括用于检测特定浏览器及其独特能力的装置以及用于重写站点内容以利用特定浏览器的独特能力来改进浏览体验的装置。所述用于应用浏览器优化的装置包括用于提供域策略以使能多浏览器连接的装置。所述用于应用浏览器优化的装置包括用于如果浏览器支持SPDY协议则使用SPDY协议的装置、用于检测视口和优化视口中可视的HTTP内容的装置、用于优化特定浏览器的HTML页面布局以改进渲染时间的装置以及用于检测浏览器的高速缓存容量和最大化客户端高速缓存的装置。所述用于应用浏览器优化的装置包括用于使用优化的TCP协议来与站点浏览器通信的装置。所述用于应用浏览器优化的装置包括用于检测站点浏览器为移动站点浏览器并将网页内容变换成适合移动站点浏览器屏幕显示并渲染的装置。所述用于应用CDN优化的装置包括用于CDN填充的装置,其通过检测可高速缓存的资产、自动在选择的CDN中存储高速缓存的资产、管理这些资产并从这些CDN服务它们来优化网站性能。所述用于应用CDN优化的装置包括用于CDN均衡的装置,其通过监视各种CDN的性能和成本以及根据某测量从最佳CDN服务资产来优化网站性能。所述用于应用HTTP优化的装置包括用于预取的装置,以通过分析对其需要的附加站点资源的HTTP响应、在已经接收到对这样的资源的请求之前从一个所述HTTP服务器请求这样的站点资源、以及在接收到这样的请求后服务这样的资源来优化网站性能。所述用于应用HTTP优化的装置包括用于通过向HTTP内容应用“压缩程序”压缩并设置“压缩程序”首标、当能够重新使用HTTP连接时使用HTTP 1.1、当客户端用户代理支持SPDY协议时使用SPDY协议、使用优化的TCP协议与客户端用户代理通信、设置合适的HTTP高速缓存首标以及从所述一个或多个HTTP服务器卸载HTTPS/SSL处理来改进网页加载速度的装置。所述用于应用网络优化的装置包括用于通过使用优化的网络协议、检测连接拥塞状态和选择拥塞较少的连接、优化TCP参数以改进与客户端浏览器以及所述一个或多个HTTP服务器的连接操纵来改进网页加载速度的装置。所述用于应用网络优化的装置包括用于使用中间节点来通信中继客户端侧的浏览器和所述一个或多个HTTP服务器之间的连接的装置,其中所述中间节点使用优化的TCP连接与所述客户端侧站点浏览器通信,优化的TCP连接包括3方握手、窗口尺寸、错误处理、分组尺寸、分组计数和确认处理中的一个。所述用于应用网络优化的装置包括用于使用中间节点来中继客户端侧的浏览器和所述一个或多个HTTP服务器之间的连接的装置,其中所述中间节点使用优化的TCP连接通过再使用存在的连接或者优化包括3方握手、窗口尺寸、错误处理、分组尺寸、分组计数和确认处理中的一个的TCP参数来与所述HTTP服务器通信。所述用于应用网络优化的装置包括用于使用多个中间节点中继客户端侧的站点浏览器和所述一个或多个HTTP服务器之间的连接的装置,其中中间节点使用优化的通信装置彼此通信。所述优化的通信装置包括高速链路或调谐的通信通道。所述应用网络优化的装置包括使用多个中间节点中继客户端侧的站点浏览器和所述一个或多个HTTP服务器之间的连接的装置,并且所述中间节点使用多个并行的连接彼此通信,并在这些并行连接中分割业务有效载荷以进行网络传输。所述用于应用基础设施优化的装置包括用于DNS优化的装置、用于增加HTTP服务器存在次数的装置、用于提供服务器负载均衡的装置、用于提供全局负载均衡的装置以及用于通过添加更多的数据中心或添加更多的边缘存在来改进服务器可达到性的装置。所述中间组件还包括用于改变其配置和优化设置的装置,并且这些装置包括用户接口、应用编程接口之一或二者。
总的来说,在另一方面,本发明描述了一种优化网站性能的方法,包括以下:提供被配置为经由站点浏览器发送HTTP请求的一个或多个客户端;接下来,提供运行在一个或多个HTTP服务器上并被配置为接收所述HTTP请求并向所述用户提供HTTP响应的网站;提供中间组件,中间组件管理源自所述客户端、目标为所述服务器的HTTP请求以及目标为所述客户端的HTTP响应,以及将所述HTTP请求重定向到所述中间组件。所述中间组件接收所述定向到所述网站的所述HTTP请求,接收所述HTTP响应,并应用优化技术到所述HTTP请求和所述HTTP响应。
总的来说,在另一方面,本发明描述了一种路由和处理网络业务的方法,包括以下:提供第一方和第二方,每一方被配置为运行在一个或多个计算设备上并可经由第一网络接入;提供包括多个业务处理节点的第二网络;提供用于将来自所述第一网络的网络业务重定向到所述第二网络的装置;经由所述重定向网络业务的装置将源自所述第一方的并被从所述第一网络定向到所述第二方的网络业务重定向到所述第二网络的业务处理节点;通过所述业务处理节点优化和处理所述重定向的网络业务;以及将已经被所述业务处理节点优化和处理的重定向的网络业务经由所述第二网络路由到所述第二方。
本发明的这方面的实施可以包括下列特征的一个或多个。所述第二网络包括叠加在所述第一网络上的覆盖网络。所述第一网络是因特网。所述第一方是站点浏览器并且所述第二方是网站。所述第二网络通过基于业务处理需要调整其业务处理节点的数量来缩放其处理容量。所述优化和处理包括优化所述重定向网络业务以获得更快的性能。所述优化和处理包括优化所述重定向业务内容以减少往返路程的数量,并减少业务有效载荷。所述优化和处理方法包括优化所述第一方和所述业务处理节点之间的网络连接。所述优化和处理包括优化所述第二方和所述业务处理节点之间的网络连接。所述业务处理节点将所述重定向网络业务中继到一个或多个附加的业务处理节点,并且所述一个或多个附加的业务处理节点优化并递送所述优化的网络业务到所述第二方。所述业务处理节点使用在彼此之间的优化的网络连接以改进同信性能。通过将业务分割成多个分组、经由多个并行连接递送所述多个分组以及在接收业务处理节点处重新组装所述多个分组,所述业务处理节点使用彼此之间的并行联网来改进通信性能。
本发明的优点可以是下列中的一个或多个。基于覆盖网络和云计算的概念,本发明公开了使用可从典型云计算基础设施中获得的许多商业节点的因特网路由系统,诸如Amazon EC2,代替专业设备,以实现性能和经济的相称。尽管每一个节点自身并不如专业路由器强大和可靠,但是它们许多组合在一起能够获得高性能和高可获得性。本发明使用运行在商业硬件上的软件,代替应用特定集成电路来路由业务。本发明提供按需缩放替代提供固定容量。这减少了成本和碳足迹,而不牺牲服务质量。本发明通过利用云计算中的最近的进步显著地增强了因特网业务路由。该基于云的路由通过克服目前的不足同时降低相关成本和碳足迹为我们提供了因特网路由的更好的替换方式。
在下面的附图和描述中示出了本发明的一个或多个实施例的细节。从优选实施例的以下描述、附图和权利要求中,本发明的其他特征、目的和优点将变得明显。
附图说明
图1是网站性能优化(WPO)系统的总览示图;
图2是业务处理系统(TPS)的高级设计;
图3说明了基于云的WPO的示意图;
图4示出了地理分布的WPO;
图5示出了业务处理系统(TPS)的弹性可扩展性;
图6示出了业务处理单元(TPU)的高级设计;
图7示出了业务管理工作流的框图;
图8是TPU选择处理的框图;
图9是TPU的请求处理的流程图;
图10是初始服务器的响应处理的流程图;
图11是内容优化处理的流程图;
图12是客户端将来请求处理的流程图;
图13是预取处理的流程图;
图14示出了TPS的示例;
图15示出了负载均衡工作流的概略图;
图16示出了并行网络系统;
图17示出了传统的客户端/服务器交互系统;
图18示出了根据本发明的改进的并行网络系统;
图19示出了定时节点的功能;
图20示出了改进的路由系统;
图21示出了用于请求处理的流程图;
图22示出了用于响应处理的流程图;以及
图23示出了用于响应重新序列化器的流程图。
具体实施方式
近几年来,云计算已经作为一种有效的和更灵活的进行计算的方式而出现。云计算是指针对各种服务的基于因特网的使用(即,云)的计算机技术(参见Cloud Computing,http://en.wikipedia.org/wiki/Cloud_computering)。作为因特网上的服务提供动态可缩放的且常常为虚拟化的资源的计算类型。用户不需要知晓支持“他们的云中的”技术基础设施上的专门知识或控制。术语“云”是基于如何在计算机网络图中描述的一种象征,并且是它隐藏的复杂的基础设施的抽象。在本文中,我们使用“云计算”来指代基于网络的计算基础设施的利用,基于网络的计算基础设施包括许多相互连接的计算节点来提供某种类型的服务,其中的每一个节点可以使用象虚拟化和网站服务的技术。从用户的观察角度看,云自身的内部工作被隐藏了。
各种供应商向客户提供使用“pay as you go ADN pay for what you use(即付即用)”模式的云计算基础设施,包括Amazon.com的弹性计算云(EC2)、RackSpace、SoftLayer、GoGrid和FlexiScale。所有云基础设施向客户提供在大约几分钟之内动态启动新节点或关闭现存节点的方式。还有许多供应商向客户提供端到端栈以建立和开发基于云的应用,突出的有Google的App引擎和Microsoft的Azure。而且,许多客户已经建立了基于云的应用。通过利用商品硬件和虚拟化,已经证实云计算能够增加计算效率,增强操作灵活性并降低成本。
作为采用因特网路由的新方式的、解决可缩放性和经济性的挑战的途径,本发明将云计算技术应用到因特网路由上。本发明利用(leverage)云计算中的最近发展响应于网络负载要求而自动扩大和缩小基础设施的容量,同时通过最优路由和传输来智能地路由业务,在性能、可靠性和安全性上产生了许多改进,并且降低了成本和与这些路由活动相关的碳足迹。
参照图1、图2和图3,站点性能优化系统(WPO)50包括业务处理系统(TPS)100、业务管理系统(TMS)130和数据处理系统(DPS)160。站点优化系统50还包括应用编程接口(API)51和用户接口(UI)52。TPS 100包括地理上分散的业务处理单元(TPU),诸如图1和4所示的TPU 150、TPU 250或图3所示的云440中的TPU444、TPU442,云460中的TPU464、TPU462,云450中的TPU454、TPU452。TPS 100接收并处理在客户端70和站点80之间的HTTP通信、请求和响应,并且TMS 130通过TPS 100管理客户端请求的路由。DPS 160包含用于优化业务处理而聚集在一起的诸如网络状态、各种HTTP服务器的状态、设置、配置、优化状态、客户信息、报价信息、站点性能、优化技术配置、负载均衡等等各种数据。第三方也可以使用用户接口52或API 51来查询、添加、移除和调整整个系统的设置、状态、配置以获得期望的结果。
站点用户71、72、73使用网站浏览器71A、72A、73A连接到网站80正在运行的超文本传输协议(HTTP)服务器81、82、83。当站点用户向网站80发出HTTP请求90时,这些HTTP请求被定向以通过中间组件50。经由TMS 130管理该HTTP请求的重定向。当从站点用户71、72、73接收到HTTP请求90时,TPS 100应用优化技术55来处理这些请求。作为优化的结果,在TPS 100内本地地实现一些请求,诸如外部HTTP请求90B的一些请求被转发到外部主机来实现,并且诸如优化的HTTP请求90A的一些请求被转发到网站80进行处理。作为对优化的HTTP请求90A的响应,TPS 100从网站80接收HTTP响应92A。而且作为对外部HTTP请求90B的响应,中间组件50还接收外部HTTP响应92B。当接收到这些HTTP响应中的任何时,TPS 100立即应用优化技术55来优化所接收的HTTP响应。在优化处理之后,TPS 100最终将经处理的HTTP响应92转发到客户端70。优化技术55包括下列范畴:内容优化、浏览器优化、HTTP优化、网络优化、内容递送网络(CDN)优化以及基础设施优化。
内容优化降低需要加载网页的HTTP请求的数量,并包括下列项目的优化:超文本标记语言(HTML)页面、Java脚本文件、层叠样式表(CSS)文件、图像文件和媒体文件。HTML页面的内容优化包括:缩小率、压缩程序、资源打包、重复数据删除、请求次序移动、资源内联和数据统一资源接口(DataURI)技术。Java脚本文件的内容优化包括:缩小率、压缩程序、Java脚本文件打包、蒙蔽(obfuscation)、重复数据删除、Java脚本内联、Java脚本关联和压缩、延迟执行和DataURI技术。CSS文件的内容优化包括:缩小率、压缩程序、CSS打包、蒙蔽、重复数据删除、CSS内联、sprite(精灵)、关联和压缩、以及DataURI技术。图像文件的内容优化包括元数据移除、色表调整、正移(right sizing)、sprite、DataURI技术和压缩。媒体文件的内容优化包括:元数据移除、视口正移、代码转换和压缩。而且HTTP站点内容优化包括域策略(domain sharding)。浏览器优化是指检测每一个站点用户(客户端)的特定浏览器的独特能力,并重写内容以利用特定浏览器的独特能力来改进浏览体验。浏览器优化技术包括域策略、SPDY(快速)、客户端高速缓存、视口检测和优化(prioritization)以及移动变换。域策略(或分割)是指获得正在单个域上下载的资源束并将它们在多个域上分割以能够同时进行多个连接。SPDY是指试验中的用于经由站点传输内容的应用-层协议,其专门设计用于最小化延迟。客户端高速缓存是指检测客户端浏览器的高速缓存能力并最大化客户端的高速缓存。视口检测和优化是指:优化在检测的视口中可视的HTTP内容并优化用户特定客户端的HTML页面布局以改进渲染时间。移动变换是指检测客户端浏览器为移动浏览器(即,移动通信设备的浏览器)并将站点内容进行变换以适合移动浏览器屏幕显示和渲染。
HTTP优化是指用于改进网页加载速度的技术。HTTP优化包括向HTTP内容施加“压缩程序”并设置“压缩程序”首标,当能够重新使用HTTP连接时使用HTTP 1.1,当客户端用户代理支持SPDY协议时,使用SPDY协议,设置合适的HTTP高速缓存首标、从HTTP服务器卸载HTTPS/SSL处理并进行预取处理。预取处理是指:通过分析针对所需要的额外站点资源的HTTP响应来优化网站性能,在已经接收到这样的资源的请求之前从目标服务器请求这样的站点资源,并在接收这样的请求后服务这样的资源。
网络优化是指用于改进网页加载速度的技术。网络优化包括使用除了TCP/IP协议之外的优化的传输协议,检测连接拥塞状态并选择不拥塞的连接,优化TCP参数以改进与客户端浏览器以及目标HTTP服务器的连接操纵,连接重用、SPDY使用以及并行网络的使用。中间组件使用多个中间节点来中继浏览器和目标HTTP服务器的连接。中间节点彼此使用优化的网络协议来通信。在一些实施例中,中间节点使用多个并行连接来彼此通信,并在这些并行连接中分割业务有效载荷以进行网络传输。
CDN优化包括CDN填充和CDN均衡。中间组件使用CDN填充通过检测可高速缓存的资产、在所选择的CDN中自动存储可高速缓存的资产、管理这些资产并从这些CDN中服务它们来优化站点性能。中间组件使用CDN均衡通过监视各种CDN的性能和成本、并根据特定测量从最好的CDN服务资产来优化网站性能。
基础设施优化包括:域名服务(DNS)优化,通过添加更多的数据中心和/或添加更多的边缘存在的资产来增加服务器数量、服务器负载均衡、全局负载均衡和改进能达到性。
在一个例子中,TPS 100是代理服务器。在其他例子中,TPS 100是作为HTTP服务器部分运行的库模块或将站点浏览者73、72、71连接到HTTP服务器81、82、83的硬件设备。TMS 130将HTTP请求90从站点用户重定向到TPS 100。TPS 100向HTTP请求应用上述优化技术并将优化的请求90A转发到网站80的目标服务器81。目标服务器81处理优化的HTTP请求90A并将HTTP响应92A发送回TPS 100。TPS 100将上述优化技术应用到所接收的HTTP响应92A并将优化的HTTP响应92发送到用户浏览器73A。中间组件50是基于云的并被设计为运行在私有云、公共云或混合云计算基础设施上,如图3所示。该基于云的系统被设计运行在世界范围内的许多不同的地理位置,如图4所示。基于云的中间组件系统通过响应于业务处理请求缩放其计算基础设施来调整其处理容量,如图5所示。在本文的余下部分中,该云路由网络有时也被称为“应用递送网络(ADN)”。将业务重定向到中间组件50的业务管理机制130是基于域名服务(DNS)的机制。规范名(CNAME)被添加到站点80域名(www.yahoo.com)的DNS记录中,并且CNAME被解析到代理服务器100。在其他实施例中,网站的DNS记录寄放在TPU中,并且TPU解析DNS请求到代理服务器。在其他实施例中,业务管理机制是基于网关的机制,并且网页请求被配置为通过该网关。
本发明还描述了使用内容递送网络服务的方法,通过增加站点资产到选择的内容递送网络并接着选择用于服务内容请求的最合适的内容递送网络以便优化特定测量。内容递送网络可以是下列之一:Akamai,LimeLight,Amazon CloudFront,EdgeCast,HighWinds,CDNetworks,ChinaCache,Cotendo,NetDNA/MaxCDN,SimpleCDN,ATT CDN,BigGravity,Advection.Net,Bitorrent,CacheFly,Velocix,Digital Foundation,GridNetworks,Ignite Technologies,Internap,Level 3 Communications,Mirror Image,Move Networks,NaviSite,OctoShpae,Pando Networks,PEER1,SoftLayer CDN,Microsoft,Swarmcast,Tata Communications,或Voxel.net等等。被优化的某测量可以是性能度量、成本度量或性能和成本的组合度量。该方法也可以包括从不同地理位置选择服务不同用户的不同的内容递送网络。该方法也可以包括使用中间组件处理网页(包括CSS和Java脚本文件)请求。中间组件分析通过这些页面引用的附加的站点资源,取得这些附加的资源并将它们添加到CDN列表,并且修改网页URL引用,使得根据某测量从选择的CDN中提供这些附加资源。修改的URL引用直接指向所选用的CDN。可选地,修改的URL引用指向需要经由DNS服务的DNS决定(resolution)的域名。在DNS决定阶段,DNS服务根据某测量选择最合适的CDN服务,并返回所选择的CDN服务的合适的IP地址或域名,从而所选择的CDN服务于所请求的内容。
为了保证满足TPS的目标,我们将从四个不同的角度提出解决方案:
·(相对于端用户密度的)地理分布的业务处理单元(TPU)的网络
·在给定TPU位置(节点)的冗余
·位置和骨干网提供商
·处理器、存储器、磁盘的按需缩放性以及联网容量
术语
·业务处理系统(TPS)-包括全局分布的业务处理单元(TPU)的整体业务处理基础设施,主要位于提供按需缩放性的数据中心。
·业务处理单元(TPU)-能够实现访问者的请求并应用业务处理服务和业务管理服务的可展开组件的集合。
·业务处理服务-由于其流过TPU而能够被应用于访问者业务的服务的集合;内容优化是业务处理服务的一个例子。
·业务管理服务-能够应用于访问者资源请求的业务管理服务的集合;会话整饰(grooming)是业务管理服务的例子。
地理多样性
为了保证具有按需缩放性的地理位置的分布,系统利用云基础设施供应商。这些云供应商包括Amazon EC2,GoGrid,RackSpace,SoftLayer,ATT,Fujitsu,Savvis,FlexScale,Verizon等等。
系统概览
如上所述,业务处理系统(TPS)100是业务处理单元150的业务集合,如图1所示。一旦访问者71向TPU 150解析(resolve)主机名称,该访问者所产生的所有业务将被发送到那个IP地址。每个TPU 150在其每个公共IP地址具有负载均衡器151、152,如图2所示。一旦业务被发送到负载均衡器,将选择TPU 154、155或156将业务转发到客户的服务器81。
TPU路由器负责应用业务处理和业务管理服务二者。当路由器接收到客户端的请求时,路由器发送请求到另一个TPU 250,客户的原始服务器81或者立即进行响应(如果它能够的话,即信息在本地存储器或请求被阻挡)。
业务处理单元(TPU)150提供接受所输入的访问者请求并在发送该请求到客户的端点(已知为原始服务器81)的之前和之后应用业务处理服务。图2示出了TPU的高级设计。每个TPU包括一个或多个负载均衡器151、152;一个或多个路由器154、155、156;结构(fabric)管理器153以及数据处理工具包158,如图2所示。负载均衡器位于每一个TPU公共IP地址上。负载均衡器经由TPU路由器散布业务。路由器软件是定制设计的软件并且它能够接受输入的业务应用业务处理服务并接着将业务发送到客户的原始服务器、另一个TPU或直接进行响应。每一个TPU具有至少一个结构管理器153,所有的路由器与之通话。结构管理器153具有服务器职责,包括监视、例子管理、与数据处理系统(DPS)160的通信以及单位级性能计算。数据处理工具包(DPT)158具有与系统的其余部分以四种方式进行交互的能力;访问密钥/值存储器、分布的日志文件公开、消息总线和配置服务器。
系统50使用下列信息:
·访问者IP地址的地理位置
·所有的TPU单元级信息
·最佳路径信息(到客户原始服务器的访问者)
·客户应用递送网络(ADN)信息。
系统50创建下列信息:
·产生日志信息
·产生单元级信息
·负载
·位置
·IP地址
·报警信号
如上所述,业务处理服务包括内容优化、HTTP优化、负载均衡、并行联网和消息协议。
内容优化
网页组成其内容类型和目的变化的许多不同的站点资源。每一个站点资源被存储在站点服务器上并被在站点服务器上单独请求。该网页结构使得网页和站点的部署非常容易,就像对站点资源不需要构建处理一样。但是,采用该部署模型的问题在于站点浏览器需要单独请求每一个站点资源。站点浏览器请求一个站点资源并接着对其进行处理以看看是否需要其他站点资源。如果需要更多的资源,其将一次请求它们中的一个并接着其将重复该处理。
今天的网站需要许多站点资源来创建它们的设计者预见的交互和呈现。Ajax,Web 2.0,和Collaboration Wensites都导致为了获得和保持客户所需的交互和设计的增加。开发者通过将页面分成图像、Java脚本、CSS、HTML以及媒体(Flash、声音、视频)来获得思路并设计以及实现网页。开发者以使得快速地建立、排错、测试和维护的方式来完成这件事。该网页开发进程通常导致资源被分成特定的任务,包括实施特定任务组的Java脚本文件、管理特定部分、组件或者页面元素的图像CSS文件以及显示页面的一个图形元素的图像。上述通过站点浏览器处理这些包含网页的多资源的方法造成下面的问题。
·浏览器仅能打开到站点服务器的有限数量的连接。例如,如果浏览器仅能创建于站点服务器的两个连接,则资源请求将会排队直到前一个资源完全下载为止。
·因为请求排队,在站点浏览器和访问者之间的大量延迟产生更大量的页面下载时间。
·为了渲染的目的,内容可能多于站点浏览器所需的。开发者典型地在资源中包括空格和注释以使得更容易开发。开发者为了下载和渲染还以非最优方式来构建资源。
·文件副本浪费带宽。副本可以是到相同资源的多个链接或相同资源内的多个内容。
TPS系统的内容优化服务通过缺省来解决这些问题,并且不需要开发者不得不改变他们构建网站或创建他们的资源的方式。用于提供内容优化的方法包括下列步骤。首先,想要使用TPS内容优化服务的客户端创建应用递送网络(ADN)。接着,客户端改变它们的针对其网站的DNS设置以指向TPS的业务管理系统。当访问者从客户端的网站请求资源时,请求被路由到TPS路由器之一。接着,路由器从客户端的原始服务器请求资源。当原始服务器以内容进行响应时,客户端的优化方案配置路由器内容优化服务以应用所期望的优化技术。
由于其流通过路由器,所以通过应用内容优化,TPS获得所请求的资源数量和每一个资源所需的字节数量上的显著减少。这导致了网页加载时间显著的节省和用户体验的提高。
术语定义
路由器
TPS路由平台内的节点。它可以是被指定来处理输入的业务并应用TPS的业务服务的任何机器或进程。
原始服务器
客户端指定来服务用于访问者的请求的原始内容的服务器。
业务管理系统
机器和/或进程的集合,能够基于客户端的ADN设置解决DNS请求。
应用递送网络(ADN)
应用递送网络是需要来处理TPS的具体客户端的业务的配置参数集合。
优化方案
客户端ADN内的配置变量集合,其确定如何将内容优化引擎应用于访问者请求。
优化技术
被应用于内容的内容特定处理单元的集合。每一个处理单元被设计为以特定方式来优化内容。以下是应用于内容的优化技术的列表:
·HTML
·资源束-取得相同类型的多个资源并将它们组合成单个资源。该技术能够应用于CSS文件、Java脚本文件和图像
·副本资源移除-移除与在前资源相同的资源请求
·资源请求移动-改变浏览器请求的资源的次序。通过移动它们的位置到HTML文件中的更优选的位置来进行。关于此的例子是将Java脚本资源请求移动到HTML页面的末尾
·CSS
·资源束-解析嵌入的CSS引入语法
·压缩程序-应用压缩编码器于CSS文件以减小它的尺寸。该技术还改变了内容类型和内容编码首标以便站点浏览器正确渲染它。
·缩小率-从CSS文件移除注释和空格。
·重复内容移除-移除CSS文件内的作为另一个部分的副本的内容。
·属性优化-改变的属性被单个地指定为内联,如果他们能够的话。这样的例子是改变CSS元素
    ->.myClass{background-color:#aaa;background-image:URL(‘test,jpg’)}to
    ->.myClass{background:#aaa URL(‘test.jpg’)}
·元素优化-移除CSS元素声明内的任何不需要的字符。这样的例子是移除最后属性中后部的“;”。在.myClass{color:#aaa;}中,#aaa之后的“;”被移除。
·CSS Spriting-将多个背景图像变成一个单个图像并改变它们的相关CSS元素属性。
·Java脚本
·缩小率-从Java脚本文件中移除注释和空格。
·蒙蔽-收缩Java脚本文件中的变量名和参数。
·压缩程序-应用GZip编码器到Java脚本文件以减小其尺寸,这种技术还改变内容类型和内容编码首标,以便站点浏览器正确渲染它。
·重复内容移除-移除Java脚本文件内的作为另一个部分的副本的内容。
·图像
·元数据移除-从图像中移除不需要的元数据。
·色表调整-改变图像中的色表以创建更小的图像。
·正移-改变图像的尺寸以匹配渲染时的显示尺寸。
·压缩-改变图像的压缩变量以变得更小。
·媒体
·压缩-改变媒体的压缩变量以使媒体变得更小。
·代码变换-改变媒体的格式以匹配访问者的设备属性。这样的例子是改变Flash页面元素成图像,以便在Iphone上显示它。
端到端内容优化的描述
应用递送网络创建
如上所述,首先,客户端创建规定至少一个参数(即,原始服务器的IP地址或主机名以便当接收到业务时将向其转发)的ADN配置。其他信息可以添加到ADN配置以增强TPS平台的功能性。作为ADN创建过程的部分,TPS向客户端提供唯一的主机名,主机名将在客户端的名称/DNS服务器的设置中使用。一旦客户端提供原始服务器信息,则将在TPS的中央配置数据库中创建ADN。ADN信息可以被客户端通过诸如图形用户界面(GUI)或应用编程接口(API)的各种接口取得并修改。TPS平台组件基于HTTP请求中出现的主机名使用编程的(programmatic)API取得ADN信息。一旦客户端已经创建它们的ADN,则它们需要改变它们的它们想通过TPS平台被重定向的业务的DNS入口。
业务管理系统
一旦客户端已经创建它们的ADN并修改了它们的DNS入口,则访问者将开始经由TPS业务管理系统解析DNS请求。TPS业务管理系统通过选择业务处理单元(TPU)或客户端原始服务器来解析DNS请求并返回其IP地址。TPU或原始服务器的选择是通过匹配诸如地理位置、延迟、吞吐量以及能够被DNS解析器获得并被匹配到ADN配置(TPS或TMS)规定的值的任何值之类的可变数量的条件来做出的。
参照图7,业务管理工作流300包括以下。一旦业务管理系统接收到DNS请求(299),它就将其发送到请求处理器,请求处理器接着将该请求的数据转换成对象(301)。该对象接着被系统的其余部分使用。基于DNS请求的“名称”字段(302),业务管理系统进行检查以看看ADN信息当前是否存在(303)。如果ADN信息不存在,则从配置服务器通过查找基于“主机”字段的信息来取得ADN配置(304)。该值接着被匹配到唯一的主机名,当它们创建其ADN时,主机名被提供给客户端。业务管理系统接着将检索选择哪一个TPU来指导访问者所需的最后的度量信息(305)。一旦已经收集了度量,则TMS将每一个TPU与ADN中存在的条件集合进行比较(306)。
TPU选择处理310示出在图8中。如果TPU通过了条件集合(311),则它将被放置在可能的TPU列表中(312)。在所有的TPU已经被测试完成之后,系统选择提供用于处理访问者业务的最低延迟的TPU(313)。使用定时信息、地理信息、历史信息以及TPU性能信息来确定最低延迟。在访问者的DNS请求被返回TPU的IP地址后,所有的到客户端的主机名被发送到选择的TPU。
一旦TPU接收到客户端请求,TPU就根据图9所示的流程图320对其进行处理。首先,客户端71发送客户端请求(http://www.foo.com/index.html)并且该请求被定向到所选择的TPU的入口路由器154(299)。接着,请求信息被处理成HTTP请求对象(321)。接着,在该请求的整个使用周期中都使用该对象。HTTP请求的例子示出如下,具有“foo.com”的“主机”HTTP首标值。
---------BEGIN HTTP REQUEST---------------
GET/HTTP/1.1
Host:foo.com
User-Agent:Mozilla/5.0(Windows;U;Windows NT 5.1;en-US;rv:1.9.1.3)
Gecko/20090824 Firefox/3.5.3
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:en-us,en;q=0.5
Accept-Encoding:gzip,deflate
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive:300
Connection:keep-alive
---------END HTTP REQUEST--------------
下面,从HTTP请求中取得主机名(322)。使用HTTP请求中的主机名,路由器154检查客户端的ADN配置的最后拷贝是否存在(324)。如果需要新信息,则它将基于主机名取得配置数据库的ADN信息(326)。如果存在ADN信息,则路由器可以在将HTTP请求发送到客户端的原始服务器(325)之前修改HTTP请求(324)。因为一些原始服务器81需要匹配服务器地址的“主机”HTTP首标而不是客户端站点浏览器所发送的那个,所以可以修改请求。修改的HTTP请求的例子如下所示。
---------BEGIN HTTP REQUEST---------------
GET/HTTP/1.1
Host:the TPS.foo.com
User-Agent:Mozilla/5.0(Windows;U;Windows NT 5.1;en-US;rv:1.9.1.3)
Gecko/20090824 Firefox/3.5.3
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:en-us,en;q=0.5
Accept-Encoding:gzip,deflate
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive:300
Connection:keep-alive
---------END HTTP REQUEST--------------
在修改HTTP请求之后,使用标准HTTP连接将其发送到客户端的原始服务器(325)。只要HTTP连接能够基于HTTP保持-活动信息,则HTTP连接就被重复使用。因为连接创建是一个昂贵的过程,所以连接重复使用增加了整体请求处理的性能。
参照图10,响应的处理330包括下面步骤。原始服务器81将响应发送到TPS路由器(299)。TPS路由功能将原始服务器的响应改变成对象(331)并将其通过工作流的其余部分。一旦创建对象,TPS就测试内容是否应被优化(332)。如果内容应被优化,则对象被送到内容优化引擎(333)。如果内容不应被优化,则响应被发送回请求者71(336)。请求者可以是另一个TPS路由器或访问者。通过测试以下来判断内容是否应被优化:
·ADN被配置用于优化吗?
·对于包括内容类型、URL、会话或在测试时确定的另一个变量的任何值,优化的条件是什么?
在内容优化之后,创建包含优化的内容的新响应对象(335)并接着将其发送到请求者(336)。
参照图11,内容优化处理340包括下面步骤。一旦请求对象被送到内容优化引擎,引擎就从请求对象中检索所有的资源内容,并将其传递给内容特定分析器(341)。分析器将内容变成可容易地被导航、修改和再串行化的(reserialized)对象模型(342)。如果情况是请求对象被聚集直到所有的内容都存在为止,内容分析可以要求在分析能够进行之前可完全获得的内容。要求全部信息集合的内容分析器被称为“文档分析器”。能够随着响应到达而分析响应的内容分析器是“流分析器”。当内容被分析成对象模式时,针对嵌入的资源请求对其进行检查(343)。将取得任何嵌入的资源请求并将其送回内容优化引擎(344)。在取得嵌入的资源请求之后,请求对象被送到内容特定优化过程(345)。该过程基于客户端的ADN配置中的优化方案来优化内容。可能的内容优化列表包括HTML页面优化、Java脚本文件优化、CSS文件优化、图像文件优化和媒体文件优化等等。在内容被优化后,其被串行化返回到文本(346),并被放置在本地的“内容存储器”(347)。因为优化的内容可能还没被请求,所以优化的响应被放置到内容存储器。这是作为HTML内容优化处理的一部分的被优化的嵌入的资源请求(即,CSS文件、Java脚本文件、媒体或图像文件)的情况。此外,优化的响应被放置到内容存储器中以避免再次产生优化的内容。优化是耗时的过程,因此,为了限制再次运行优化过程所需的CPU和存储的开销,优化内容被放置在本地内容存储器中。放置在本地内容存储器中的优化的内容被分配给包括能够用于检索所存储的内容的URL、会话cookies或其它访问者识别符的识别符的唯一集合。内容优化引擎可以进行选择以分配取得嵌入的资源请求以及它们随后的跨越几个服务器的优化。
参照图12,已经在前优化的内容的将来的请求处理350包括如下步骤。当对已经在前优化的内容的请求到来(299)时,路由器154处理该请求成请求对象(351)。如果对请求的响应已经存在(352),则请求对象被送到本地内容存储器。通过测试请求对象的包括URL、cookies、主机名等等的属性,系统确定内容是否存储在内容存储器中(353)以及内容是否已经被在前优化(355)。如果在本地内容存储器中找到优化的内容,该系统就创建HTTP响应对象(357)并将其发送到客户端(358)。如果优化的内容处于被优化的过程中,则该系统进行等待直到内容优化过程完成(356),并接着创建HTTP响应对象(357),并将其发送到客户端(358)。如果内容没有在本地存储器中,则系统从原始服务器取得内容(354)。
HTTP优化
TPS提供增加原始服务器性能的一组HTTP优化技术。这些HTTP优化技术包括高速缓存首标校正、连接再用、预取、分布的内容存储器、存储器清理和保持活动。
在一些情况中,站点应用不能正确地设置高速缓存首标。这导致较差的应用性能。TPU通过提供和固定包括电子标签、有效期、高速缓存控制和最后修改的高速缓存首标的内容响应来优化首标。
“连接再用”是指尽可能多地再次使用打开的HTTP连接。这最小化了通过TPS运行业务的影响。一旦连接被创建并且已经完成对访问者请求的处理,它就被放置在能够被选择来处理新请求的连接池中。HTTP连接被配置以理解“保持活动”信号,即,从一个设备向另一个设备发送的消息,以检查正在运行中的两个设备之间的链接。
预取是指嵌入在在浏览器请求之前的请求的内容内的请求资源。一旦检索到诸如HTML页面的资源,预取功能就开始请求附加资源并将它们优化和存储在本地内容中,附加资源嵌入在浏览器在将来将请求的HTML页面的内容中。这减少了为了完成响应而需要的所有嵌入内容的检索的时间,而不需要添加显著的附加处理量。在针对检索内容需要多个路由器跳的情况中,内容被推入“入口”路由器,以便可以进一步减少响应时间。TPS系统在本地内容存储器中存储资源,并然后试着从客户的原始服务器请求它们之前来检索它们。
参照图13,预取处理360包括由入口路由器150接收客户端请求,并将其发送到出口路由器200。出口路由器200处理响应内容(311)并寻找嵌入的资源(362)。如果资源在本地内容存储器中,它就检索它们(363)并将它们发送回入口路由器150,入口路由器150接着将其转发给客户端。如果资源没有在本地存储器中,则从原始服务器81中请求它们(364)。TPS路由器以下列次序检索内容。首先,检索在本地存储器的“内存中”的内容。接着,检索在本地存储器的“磁盘”中的内容。接着,检索来自TPU内的其他路由器的内容。基于请求的数量以及可用于存储的存储器量,内容存储器自动地将内容移入/移出内存、磁盘和其他分布的存储器。具有高请求率的事情是最快地取得,而具有低请求率的事情是较慢地取得。基于诸如支付服务的费用之类的因素,内容被放置在特定的内容存储器中。
系统允许客户通过使用客户门户从存储器移除旧的内容来执行存储器清理。这允许访问者从原始服务器接收最新内容。系统的TPU提供“保持活动”首标给访问者。这允许访问者机器上的客户端软件再使用HTTP连接。如果不这样做,则用户将要遭受差的性能,因为HTTP或TCP连接的创建是极其昂贵的。
负载均衡
参照图14,TPU 150、250、252、253以及更直接的TPU路由器154、155向客户提供对他们在一组端点(也称为原始服务器)上的业务进行“负载均衡”的能力。参照图15,负载均衡工作流370包括以下。TPU 150接收客户端请求并对其进行处理(371)。接着,它基于主机名查找ADN(372),接着检索规则定义(373)并将请求发送到规则引擎(374)。接着,选择输入变量。输入变量包括最佳路径表(375)、路径成本表(370)、诸如时间、天气、人口的外部值(377)以及诸如解析器、端点、访问者的位置变量(378)。最后,确定输出可能性。输出可能性包括其他TPU(250)以及其他客户配置的端点(255)。
该过程非常类似于会话整饰过程。当业务经过TPU时,路由器决定哪个原始服务器将处理访问者的请求。本发明的负载均衡服务具有由于会话整饰过程的下列优点。它是主动处理,意味着它在每次对TPU做出请求时发生。这与在解析主机名时发生的会话整饰服务不同。它没有会话整饰服务具有的存活时间(time-to-live)(ttl)问题。如果DNS解析器存在ttl问题,则根据响应中提供的存活时间来高速缓存DNS请求。而且,当TPU正在处理业务时,它与访问者的IP地址直接交互,并因此产生与接入相关的较好的决定(“已知的访问者IP地址”)。与此相反,在会话整饰服务中,基于访问者的DNS解析器的信息做出决定,DNS解析器可能处于不与实际访问者接近的任何地方。
并行联网
并行联网是指经由多个节点或通道向单个节点发送信息的能力。参照图17,传统的客户端/服务器交互在单个节点到节点体系结构上工作,在单个节点到节点体系结构中,客户端机器71开启与服务器81的网络连接72并且在客户端和服务器之间的所有通信沿着该单个网络连接72发送。包含多于一跳的网络交互重复节点到节点的单个网络连接模式。该通信模型基于某些条件具有减少客户端和服务器之间的通信吞吐量的缺点。下面所列的是将导致性能降低的条件:
1.经由TCP连接发送大量数据-TCP提供作为其优势之一的可靠性,但是为了提供可靠性,TCP必须周期地发送确认消息并且还重发丢失的数据。
2.在客户端和服务器之间的大的延迟-在客户端和服务器之间的延迟越大,发送确认消息以及重发丢失数据所花费的时间越长。
3.在客户端和服务器之间的慢的网络条件-当在客户端和服务器之间的网络条件慢时,它将导致吞吐量的降低。
4.客户端机器的工作负载-当客户端变得太忙以至于不能处理达到的消息时,套接字的接收器缓冲器变满,并且,此时,客户端丢弃消息,导致了需要重发消息。
TPS的并行联网最小化了传统联网问题的影响,并实质增加了两个节点之间的吞吐量。参照图16和图18,TPS在客户端71和服务器81的路径中放置一组节点150、251、252、250,并且该组节点能够实现高级联网优化,而不改变客户端或服务器。在TPS路由平台内的节点可以是被设计来处理TPS的路由器到路由器业务或通过促进其操作来起到帮助的任何机器或进程。TPS路由平台具有多个节点,多个节点具有变化的角色,诸如定时节点、请求路由节点、响应节点或管理节点等等。如图16所示,来自出口路由器250的响应被发送到一组节点150、251、252,而并不仅仅是入口路由器150。该组能够接受响应的节点被称为“簇”61。簇节点的作用是从路由节点接收需要被转发到入口路由器150的消息,入口路由器150原始地从客户端71接收请求。每一个入口路由器具有其自己的簇。该系统还包括负责获得来自原始服务器81的响应并将其发送到入口路由器150的簇表61内的节点150、251、252的响应多路复用器394。属于簇的节点的选择是基于诸如往返时间(RTT)、地理布局、路由器和系统中的其他节点之间的网络跳等等的度量集合的。系统内的定时节点计算路由器之间的往返时间。如果RTT小于“簇时间容限”,则节点位于路由器的簇表中。周期地重复计算RTT以确定节点是否仍适当地位于路由器的簇表中。定时节点不需要从路由器中分离,并且定时信息可以来自特定定时请求或其它请求/响应时间的响应时间。
在TPS路由系统中的节点彼此建立通信通道。每个通道包括多个传输控制协议(TCP)和/或用户数据报协议(UDP)套接字连接。当发送数据分组时,通道基于吞吐量、可获得性、网络条件等等确定将使用通道内的哪一个连接。TPS节点与特定分组格式进行通信,特定分组格式允许TPS添加元数据到从客户端输入的请求和来自原始服务器的响应二者上。添加元数据以允许节点理解特定节点交互。元数据的例子包括路由器的簇节点、分组版本、编码进程、所识别的客户端连接、序列号和其他有用信息。TPS的路由系统具有多种分组结构,规范地设计用于发送不同类型的数据。“请求路由消息”结构指示特定地从一个节点发送到另一个节点的消息以处理客户端的请求。“节点管理消息”结构指示在节点之间发送的更新系统级别信息的消息,包括路由器状态改变、时间请求、簇表改变等等的更新。
如上所述,响应多路复用器394负责从原始服务器81获得响应,并发送数据到入口路由器的簇表61内的节点。入口路由器的簇表被发送到出口路由器250作为“请求路由消息”或“节点管理消息”的部分。响应多路复用器394应用不同的“簇节点选择算法”来选择合适的簇节点和通道内的套接字连接以向其发送数据。簇节点选择技术包括“循环提示(round-robin)”、“通道突发”和“最佳节点”。“循环提示”指的是依序向入口路由器的簇表中的每一个簇节点发送数据。一旦所有的簇节点已经具有发送到他们的数据,则从表的开始处开始处理并重复它自己。“通道突发”指的是在移动到下一个簇节点之前发送“N”片数据到入口路由器的簇表中的簇节点。一旦在簇表中的所有节点已经有数据发送到他们,这个过程从表的初始开始并重复自身。“最佳节点”指的是使用有关簇节点的元数据。响应多路复用器基于所提供的元数据选择最佳节点,并向其发送数据。在下文中,响应多路复用器反复挑选最佳节点,直到发送了所有数据。可以用于选择“最佳节点”的元数据包括吞吐量、诸如内存、CPU、网络利用的系统信息以及其他对做出决定有帮助的信息。
因为入口路由器150从多个源(簇节点152、251、250以及客户端71)接收消息,并经由多个网络连接62、63、64、65,所以数据不再能保证处于正确的次序。响应重新序列化器396处理数据的重新序列化,并在向客户端71发送它们之前以正确的次序放置消息。
端到端的并行联网处理
系统初始化
TPS路由系统100启动多个地理上分散的路由器节点150、151、252、250,以便使可能的客户端71和路由器节点之间的延迟最小化,以及使原始服务器81和路由器节点之间的延迟最小化。一旦路由器节点处于运行中,TPS的定时系统将校准路由器节点之间的延迟和网络条件(即,跳的数量、吞吐容量),如图19所示。当确定延迟和网络条件信息时,TPS系统创建与“簇节点容限”值比较的单个“簇节点度量”,如图20所示。“簇节点度量”小于“簇节点容限”的每一个路由器节点被添加到簇节点表。定时系统周期地重新计算“簇节点度量”并根据“簇节点容限”调整簇节点表。
请求处理
参照图21,从原始服务器81寻求请求资源的客户端71连接到入口路由器150。以同样的方式产生连接,就像客户端正直接连接到原始服务器81一样。在一个例子中,客户端71和入口路由器150之间的连接是HTTP连接。一旦入口路由器150接收到客户端请求,它就选择下面的两种处理之一。
1.连接到原始服务器81并代表客户端执行请求。当入口路由器150选择直接连接到原始服务器81时,不应用并行联网。
2.向应该与原始服务器81执行请求的特定选择的路由器250(出口路由器)发送消息。
向哪一个出口路由器转发请求的选择是通过计算哪一个路由器能够执行请求来完成的,并在最少量时间中将所有的响应数据发送到入口路由器。该计算考虑入口路由器到出口路由器延迟、出口路由器到原始服务器延迟、网络条件、节点之间的吞吐量、系统级统计(即,内存、CPU、和网络负载)以及确定对做出该决定有用的其他信息。
被转发到出口路由器250的来自客户端71的请求被封装成请求转发消息385。该消息385包括来自客户端的原始消息以及客户端识别符、分组版本、簇表、序列号、编码处理以及其他有用信息。当出口路由器250接收请求转发消息385时,它存储该消息中包含的元数据386,以便它能够基于来自原始服务器81的响应而被容易地检索。接着如果网络连接当前已经不可用,则做出对原始服务器的网络连接。每当网络连接可用时,路由器250再利用网络连接以节省时间。一旦建立了连接,则出口路由器250将原始消息转发到原始服务器81。
响应处理
参照图22,当原始服务器81以数据响应出口路由器250时,出口路由器250使用它的响应多路复用器394处理数据。一旦响应多路复用器394从出口路由器250接收到数据,它检索在请求转发请求中包含的元数据3 85。使用入口路由器的簇表来选择将向哪一个节点发送响应数据。如果不存在簇节点,则将所有数据直接发送到入口路由器150。响应多路复用器394选择能够获得最高吞吐量的“簇节点选择算法”。对于从原始服务器接收的每一个数据分组,响应多路复用器394使用“簇节点选择算法”选择最佳簇节点。一旦选择了簇节点,则响应多路复用器394将原始服务器的响应数据封装成响应转发消息391并将该消息发送到选择的簇节点。簇节点的通道可以包含多于一个的套接字连接,并且因此系统需要挑选最合适的连接以通过其发送数据。
响应转发消息391包含元数据392以确保它能够被转发到请求数据的入口路由器150以及原始服务器的响应数据393能够被以正确次序放置在响应分组中。被放置到响应分组的元数据392包括请求数据、客户端识别符、序列号、编码例程以及处理响应数据所需的其他元数据的入口路由器。一旦簇节点从出口路由器250接收到响应转发消息,它立即基于在响应转发消息391中的入口路由器元数据392字段将该消息中继给入口路由器150。
响应重新序列化器
参照图23,入口路由器150接收的响应转发消息391可以被无序地接收。这是由于响应消息391来自不同的簇节点157并来自通道内的多个套接字连接。入口路由器必须确保在将原始服务器的响应数据发送到客户端之前原始服务器的响应数据被放置成正确序列。响应重新序列化器396执行该功能。通过查看输入的响应转发消息的序列号元数据和检查它的被最后发送到客户端的序列号来完成数据的重新序列化。如果序列号比最后发送给客户端的序列号大的一个序列号,则原始服务器的响应被立即发送到客户端。如果系列号不是大于最后序列号的一个序列号,则它被放置到消息的按次序的队列中。队列的次序是基于序列号的。在接收到能够被发送到客户端的响应转发消息391之后,响应重新序列化器396查看消息队列以看看队列中包含的第一消息是否是比发送到客户端的最后序列号大的一个,以及它是否是被发送到客户端的消息。该过程继续直到所有消息被发送为止。
已经描述了本发明的几个实施例。尽管如此,可以理解的是在不偏离本发明的精神和范围的前提,可以做出各种修改。因此,其他实施例在所附权利要求的范围之内。

Claims (86)

1.一种优化网站性能的系统,网站运行在一个或多个HTTP服务器上,并被配置为从一个或多个客户端经由用户代理接收HTTP请求,并将HTTP响应提供到所述一个或多个客户端,所述系统包括:
中间组件,被配置为经由网络连接将所述客户端连接到所述服务器;
其中所述中间组件包括:业务管理系统(TMS),并且其中所述TMS包括:用于管理源自所述客户端、目标为所述服务器的HTTP请求以及目标为所述客户端的HTTP响应的装置;以及用于将所述HTTP请求重定向到所述中间组件的装置;以及
其中所述中间组件还包括业务处理系统(TPS),并且其中所述TPS包括:用于接收所述重定向的HTTP请求以及所述HTTP响应的装置;以及应用优化技术到所述重定向的HTTP请求和所述HTTP响应的装置。
2.如权利要求1所述的系统,其中所述应用优化技术的装置包括:
用于应用浏览器优化的装置;
用于应用内容优化的装置;
用于应用HTTP优化的装置;
用于应用网络优化的装置;
用于应用内容递送网络(CDN)优化的装置;以及
用于应用基础设施优化的装置。
3.如权利要求1所述的系统,其中所述中间组件是基于云的,并且被配置为运行在私有云、公共云或混合云计算基础设施中。
4.如权利要求3所述的系统,其中所述基于云的中间组件运行在世界范围内的不同地理位置。
5.如权利要求3所述的系统,其中所述基于云的中间组件包括用于通过响应于站点业务处理要求缩放基于云的计算基础设施来缩放其处理容量的装置。
6.如权利要求1所述的系统,其中所述中间组件还包括用于通过应用本地地实现所选择的HTTP请求、中继所选择的HTTP请求到所述HTTP服务器或中继所选择的HTTP请求到其他HTTP主机中的一个来处理所述重定向的HTTP请求的装置。
7.如权利要求1所述的系统,其中所述TMS还包括用于定向所述优化的HTTP请求到所述网站的装置以及用于定向所述优化的HTTP响应到所述用户的装置。
8.如权利要求1所述的系统,其中所述用于重定向所述HTTP请求和所述HTTP响应到所述中间组件的所述TMS装置包括用于将规范名(CNAME)添加到网站的DNS记录的装置以及用于解析CNAME到中间组件的装置。
9.如权利要求1所述的系统,其中所述用于重定向所述HTTP请求和所述HTTP响应到所述中间组件的所述TMS装置包括用于寄放网站的DNS记录以及向中间组件解析到所述网站的DNS请求的DNS装置。
10.如权利要求1所述的系统,其中所述用于重定向所述HTTP请求到所述中间组件的所述TMS装置包括网关,并且所述HTTP请求和HTTP响应被配置为经过所述网关。
11.如权利要求1所述的系统,其中所述中间组件包括代理服务器。
12.如权利要求1所述的系统,其中所述中间组件包括作为负担所述站点的所述一个或多个HTTP服务器的部分运行的库模块。
13.如权利要求1所述的系统,其中所述中间组件包括连接所述客户端到所述一个或多个HTTP服务器的硬件设备或应用。
14.如权利要求2所述的系统,其中所述用于应用内容优化的装置包括用于优化HTML页面的装置、用于优化Java脚本文件的装置、用于优化CSS文件的装置、用于优化图像文件的装置以及用于优化媒体文件的装置,并且其中所述优化装置减少加载网页所需的HTTP请求的数量。
15.如权利要求14所述的系统,其中所述用于优化HTML页面的装置包括用于缩小率、压缩程序、资源束、重复数据移除、请求次序移动、资源内联和使用DataURI技术的装置。
16.如权利要求14所述的系统,其中所述用于优化Java脚本文件的装置包括用于缩小率、压缩程序、Java脚本文件束、蒙蔽、重复数据移除、延迟处理、Java脚本内联和使用DataURI技术的装置。
17.如权利要求14所述的系统,其中所述用于优化CSS文件的装置包括用于缩小率、压缩程序、CSS束、蒙蔽、重复数据移除、CSS内联和使用DataURI技术的装置。
18.如权利要求14所述的系统,其中所述用于优化图像文件的装置包括用于元数据移除、色表调整、正移、sprite、压缩和使用DataURI技术的装置。
19.如权利要求14所述的系统,其中所述用于优化媒体文件的装置包括用于元数据移除、视口正移、代码转换和压缩的装置。
20.如权利要求2所述的系统,其中所述用于应用浏览器优化的装置包括用于检测特定浏览器及其独特能力的装置以及用于重写站点内容以利用特定浏览器的独特能力来改进浏览体验的装置。
21.如权利要求2所述的系统,其中所述用于应用浏览器优化的装置包括用于提供域策略以使能多浏览器连接的装置。
22.如权利要求2所述的系统,其中所述用于应用浏览器优化的装置包括用于如果浏览器支持SPDY协议则使用SPDY协议的装置、用于检测视口和优化视口中可视的HTTP内容的装置、用于优化特定浏览器的HTML页面布局以改进渲染时间的装置以及用于检测浏览器的高速缓存容量和最大化客户端侧高速缓存的装置。
23.如权利要求2所述的系统,其中所述用于应用浏览器优化的装置包括用于使用优化的TCP协议来与站点浏览器通信的装置。
24.如权利要求2所述的系统,其中所述用于应用浏览器优化的装置包括用于检测站点浏览器为移动站点浏览器并将网页内容变换成适合移动站点浏览器屏幕显示并渲染的装置。
25.如权利要求2所述的系统,其中所述用于应用CDN优化的装置包括用于CDN填充的装置,其通过检测可高速缓存的资产、自动在选择的CDN中存储高速缓存的资产、管理这些资产并从这些CDN服务它们来优化网站性能。
26.如权利要求2所述的系统,其中所述用于应用CDN优化的装置包括用于CDN均衡的装置,其通过监视各种CDN的性能和成本以及根据某测量从最佳CDN服务资产来优化网站性能。
27.如权利要求2所述的系统,其中所述用于应用HTTP优化的装置包括用于预取的装置,以通过分析对其需要的附加站点资源的HTTP响应、在已经接收到对这样的资源的请求之前从一个所述HTTP服务器请求这样的站点资源、以及在接收到这样的请求后服务这样的资源来优化网站性能。
28.如权利要求2所述的系统,其中所述用于应用HTTP优化的装置包括用于通过向HTTP内容应用“压缩程序”压缩并设置“压缩程序”首标、当能够重新使用HTTP连接时使用HTTP 1.1、当客户端侧用户代理支持SPDY协议时使用SPDY协议、使用优化的TCP协议与客户端侧用户代理通信、设置合适的HTTP高速缓存首标以及从所述一个或多个HTTP服务器卸载HTTPS/SSL处理来改进网页加载速度的装置。
29.如权利要求2所述的系统,其中所述用于应用网络优化的装置包括用于通过使用优化的网络协议、检测连接拥塞状态和选择拥塞较少的连接、优化TCP参数以改进与客户端侧浏览器以及所述一个或多个HTTP服务器的连接操纵来改进网页加载速度的装置。
30.如权利要求2所述的系统,其中所述用于应用网络优化的装置包括用于使用中间节点来通信中继客户端侧的浏览器和所述一个或多个HTTP服务器之间的连接的装置,其中所述中间节点使用优化的TCP连接与所述客户端侧站点浏览器通信,优化的TCP连接包括3方握手、窗口尺寸、错误处理、分组尺寸、分组计数和确认处理中的一个。
31.如权利要求2所述的系统,其中所述用于应用网络优化的装置包括用于使用中间节点来中继客户端侧的浏览器和所述一个或多个HTTP服务器之间的连接的装置,其中所述中间节点使用优化的TCP连接通过再使用存在的连接或者优化包括3方握手、窗口尺寸、错误处理、分组尺寸、分组计数和确认处理中的一个的TCP参数来与所述HTTP服务器通信。
32.如权利要求2所述的系统,其中所述用于应用网络优化的装置包括用于使用多个中间节点中继客户端侧的站点浏览器和所述一个或多个HTTP服务器之间的连接的装置,其中中间节点使用优化的通信装置彼此通信。
33.如权利要求32所述的系统,其中所述优化的通信装置包括高速链路。
34.如权利要求32所述的系统,其中所述优化的通信装置包括调谐的通信通道。
35.如权利要求2所述的系统,其中所述应用网络优化的装置包括使用多个中间节点中继客户端侧的站点浏览器和所述一个或多个HTTP服务器之间的连接的装置,其中所述中间节点使用多个并行的连接彼此通信,并在这些并行连接中分割业务有效载荷以进行网络传输。
36.如权利要求1所述的系统,其中所述用于应用基础设施优化的装置包括用于DNS优化的装置、用于增加HTTP服务器存在数量的装置、用于提供服务器负载均衡的装置、用于提供全局负载均衡的装置以及用于通过添加更多的数据中心或添加更多的边缘存在来改进服务器可达到性的装置。
37.一种优化网站性能的方法,包括:
提供被配置为经由站点浏览器发送HTTP请求的一个或多个客户端;
提供运行在一个或多个HTTP服务器上并被配置为接收所述HTTP请求并向所述用户提供HTTP响应的网站;
提供中间组件;
其中所述中间组件包括:业务管理系统(TMS),并且其中所述TMS管理源自所述客户端、目标为所述服务器的HTTP请求以及目标为所述客户端的HTTP响应;以及将所述HTTP请求重定向到所述中间组件;以及
其中所述中间组件还包括业务处理系统(TPS),并且其中所述TPS接收所述定向到所述网站的所述HTTP请求,接收所述HTTP响应,并应用优化技术到所述HTTP请求和所述HTTP响应。
38.如权利要求37所述的方法,其中所述优化技术包括:
应用浏览器优化;
应用内容优化;
应用HTTP优化;
应用网络优化;
应用内容递送网络(CDN)优化;以及
应用基础设施优化。
39.如权利要求37所述的方法,其中所述中间组件是基于云的,并且被配置为运行在私有云、公共云或混合云计算基础设施中。
40.如权利要求39所述的方法,其中所述基于云的中间组件运行在世界范围内的不同地理位置。
41.如权利要求39所述的方法,其中所述基于云的中间组件包括用于通过响应于站点业务处理要求缩放基于云的计算基础设施来缩放其处理容量的装置。
42.如权利要求37所述的方法,其中所述中间组件还包括用于通过应用本地地实现所选择的HTTP请求、中继所选择的HTTP请求到所述HTTP服务器或中继所选择的HTTP请求到其他HTTP主机中的一个来处理所述重定向的HTTP请求的装置。
43.如权利要求37所述的方法,其中所述TMS装置还包括用于定向所述优化的HTTP请求到所述网站的装置以及用于定向所述优化的HTTP响应到所述用户的装置。
44.如权利要求37所述的方法,其中所述用于重定向所述HTTP请求到所述中间组件的所述TMS装置包括用于将规范名(CNAME)添加到网站的DNS记录的装置以及用于解析CNAME到中间组件的装置。
45.如权利要求37所述的方法,其中所述用于重定向所述HTTP请求到所述中间组件的所述TMS装置包括用于寄放网站的DNS记录以及向中间组件解析到所述网站的DNS请求的DNS装置。
46.如权利要求37所述的方法,其中所述用于重定向所述HTTP请求到所述中间组件的所述TMS装置包括网关,并且所述HTTP请求和HTTP响应被配置为经过所述网关。
47.如权利要求37所述的方法,其中所述中间组件包括代理服务器。
48.如权利要求37所述的方法,其中所述中间组件包括作为负担所述站点的所述一个或多个HTTP服务器的部分运行的库模块。
49.如权利要求37所述的方法,其中所述中间组件包括连接所述客户端到所述一个或多个HTTP服务器的硬件设备或应用。
50.如权利要求38所述的方法,其中所述用于应用内容优化的装置包括用于优化HTML页面的装置、用于优化Java脚本文件的装置、用于优化CSS文件的装置、用于优化图像文件的装置以及用于优化媒体文件的装置,并且其中所述优化装置减少加载网页所需的HTTP请求的数量。
51.如权利要求50所述的方法,其中所述用于优化HTML页面的装置包括用于缩小率、压缩程序、资源束、重复数据移除、请求次序移动、资源内联和使用DataURI技术的装置。
52.如权利要求50所述的方法,其中所述用于优化Java脚本文件的装置包括用于缩小率、压缩程序、Java脚本文件束、蒙蔽、重复数据移除、延迟处理、Java脚本内联和使用DataURI技术的装置。
53.如权利要求50所述的方法,其中所述用于优化CSS文件的装置包括用于缩小率、压缩程序、CSS束、蒙蔽、重复数据移除、CSS内联和使用DataURI技术的装置。
54.如权利要求50所述的方法,其中所述用于优化图像文件的装置包括用于元数据移除、色表调整、正移、sprite、压缩和使用DataURI技术的装置。
55.如权利要求50所述的方法,其中所述用于优化媒体文件的装置包括用于元数据移除、视口正移、代码转换和压缩的装置。
56.如权利要求38所述的方法,其中所述用于应用浏览器优化的装置包括用于检测特定浏览器及其独特能力的装置以及用于重写站点内容以利用特定浏览器的独特能力来改进浏览体验的装置。
57.如权利要求38所述的系统,其中所述用于应用浏览器优化的装置包括用于提供域策略以使能多浏览器连接的装置。
58.如权利要求38所述的方法,其中所述用于应用浏览器优化的装置包括用于如果浏览器支持SPDY协议则使用SPDY协议的装置、用于检测视口和优化视口中可视的HTTP内容的装置、用于优化特定浏览器的HTML页面布局以改进渲染时间的装置以及用于检测浏览器的高速缓存容量和最大化客户端侧高速缓存的装置。
59.如权利要求38所述的方法,其中所述用于应用浏览器优化的装置包括用于使用优化的TCP协议来与站点浏览器通信的装置。
60.如权利要求38所述的方法,其中所述用于应用浏览器优化的装置包括用于检测站点浏览器为移动站点浏览器并将网页内容变换成适合移动站点浏览器屏幕显示并渲染的装置。
61.如权利要求38所述的方法,其中所述用于应用CDN优化的装置包括用于CDN填充的装置,其通过检测可高速缓存的资产、自动在选择的CDN中存储高速缓存的资产、管理这些资产并从这些CDN服务它们来优化网站性能。
62.如权利要求38所述的方法,其中所述用于应用CDN优化的装置包括用于CDN均衡的装置,其通过监视各种CDN的性能和成本以及根据某测量从最佳CDN服务资产来优化网站性能。
63.如权利要求38所述的方法,其中所述用于应用HTTP优化的装置包括用于预取的装置,以通过分析对其需要的附加站点资源的HTTP响应、在已经接收到对这样的资源的请求之前从一个所述HTTP服务器请求这样的站点资源、以及在接收到这样的请求后服务这样的资源来优化网站性能。
64.如权利要求38所述的方法,其中所述用于应用HTTP优化的装置包括用于通过向HTTP内容应用“压缩程序”压缩并设置“压缩程序”首标、当能够重新使用HTTP连接时使用HTTP 1.1、当客户端侧用户代理支持SPDY协议时使用SPDY协议、使用优化的TCP协议与客户端侧用户代理通信、设置合适的HTTP高速缓存首标以及从所述一个或多个HTTP服务器卸载HTTPS/SSL处理来改进网页加载速度的装置。
65.如权利要求38所述的方法,其中所述用于应用网络优化的装置包括用于通过使用优化的网络协议、检测连接拥塞状态和选择拥塞较少的连接、优化TCP参数以改进与客户端侧浏览器以及所述一个或多个HTTP服务器的连接操纵来改进网页加载速度的装置。
66.如权利要求38所述的方法,其中所述用于应用网络优化的装置包括用于使用中间节点来通信中继客户端侧的浏览器和所述一个或多个HTTP服务器之间的连接的装置,其中所述中间节点使用优化的TCP连接与所述客户端侧站点浏览器通信,优化的TCP连接包括3方握手、窗口尺寸、错误处理、分组尺寸、分组计数和确认处理中的一个。
67.如权利要求38所述的方法,其中所述用于应用网络优化的装置包括用于使用中间节点来中继客户端侧的浏览器和所述一个或多个HTTP服务器之间的连接的装置,其中所述中间节点使用优化的TCP连接通过再使用存在的连接或者优化包括3方握手、窗口尺寸、错误处理、分组尺寸、分组计数和确认处理中的一个的TCP参数来与所述HTTP服务器通信。
68.如权利要求38所述的方法,其中所述用于应用网络优化的装置包括用于使用多个中间节点中继客户端侧的站点浏览器和所述一个或多个HTTP服务器之间的连接的装置,其中中间节点使用优化的通信装置彼此通信。
69.如权利要求68所述的方法,其中所述优化的通信装置包括高速链路。
70.如权利要求68所述的方法,其中所述优化的通信装置包括调谐的通信通道。
71.如权利要求38所述的方法,其中所述应用网络优化的装置包括使用多个中间节点中继客户端侧的站点浏览器和所述一个或多个HTTP服务器之间的连接的装置,其中所述中间节点使用多个并行的连接彼此通信,并在这些并行连接中分割业务有效载荷以进行网络传输。
72.如权利要求37所述的方法,其中所述用于应用基础设施优化的装置包括用于DNS优化的装置、用于增加HTTP服务器存在数量的装置、用于提供服务器负载均衡的装置、用于提供全局负载均衡的装置以及用于通过添加更多的数据中心或添加更多的边缘存在来改进服务器可达到性的装置。
73.一种路由和处理网络业务的方法,包括:
提供第一方和第二方,其中每一方被配置为运行在一个或多个计算设备上并可经由第一网络接入;
提供包括多个业务处理节点的第二网络;
提供用于将来自所述第一网络的网络业务重定向到所述第二网络的装置;
经由所述重定向网络业务的装置将源自所述第一方的并被从所述第一网络定向到所述第二方的网络业务重定向到所述第二网络的业务处理节点;
通过所述业务处理节点优化和处理所述重定向的网络业务;以及将已经被所述业务处理节点优化和处理的重定向的网络业务经由所述第二网络路由到所述第二方。
74.如权利要求73所述的方法,其中所述第二网络包括叠加在所述第一网络上的覆盖网络。
75.如权利要求73所述的方法,其中所述第一网络是因特网。
76.如权利要求73所述的方法,其中所述第一方包括站点浏览器并且所述第二方包括网站。
77.如权利要求73所述的方法,其中所述第二网络通过基于业务处理需要调整其业务处理节点的数量来缩放其处理容量。
78.如权利要求73所述的方法,其中所述优化和处理包括优化所述重定向网络业务以获得更快的性能。
79.如权利要求73所述的方法,其中所述优化和处理包括优化所述重定向业务内容以减少往返路程的数量,并减少业务有效载荷。
80.如权利要求73所述的方法,其中所述优化和处理包括优化所述第一方和所述业务处理节点之间的网络连接。
81.如权利要求73所述的方法,其中所述优化和处理包括优化所述第二方和所述业务处理节点之间的网络连接。
82.如权利要求73所述的方法,其中所述业务处理节点将所述重定向网络业务中继到一个或多个附加的业务处理节点,并且所述一个或多个附加的业务处理节点优化并递送所述优化的网络业务到所述第二方。
83.如权利要求82所述的方法,其中所述业务处理节点使用在彼此之间的优化的网络连接以改进通信性能。
84.如权利要求82所述的方法,其中通过将业务分割成多个分组、经由多个并行连接递送所述多个分组以及在接收业务处理节点处重新组装所述多个分组,所述业务处理节点使用彼此之间的并行联网来改进通信性能。
85.如权利要求1所述的系统,其中所述中间组件还包括用于改变其配置和优化设置的装置,并且其中所述装置包括用户接口、应用编程接口之一或二者。
86.如权利要求37所述的方法,其中所述中间组件还包括用于改变其配置和优化设置的装置,并且其中所述装置包括用户接口、应用编程接口之一或二者。
CN201080055709.1A 2009-12-07 2010-12-07 站点性能优化和因特网业务处理的系统和方法 Active CN102792292B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US26714909P 2009-12-07 2009-12-07
US61/267,149 2009-12-07
PCT/US2010/059185 WO2011071850A2 (en) 2009-12-07 2010-12-07 System and method for website performance optimization and internet traffic processing

Publications (2)

Publication Number Publication Date
CN102792292A true CN102792292A (zh) 2012-11-21
CN102792292B CN102792292B (zh) 2015-12-16

Family

ID=44083065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080055709.1A Active CN102792292B (zh) 2009-12-07 2010-12-07 站点性能优化和因特网业务处理的系统和方法

Country Status (5)

Country Link
US (1) US8112471B2 (zh)
EP (1) EP2510453B1 (zh)
CN (1) CN102792292B (zh)
AU (1) AU2010328326B2 (zh)
WO (1) WO2011071850A2 (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103237013A (zh) * 2013-03-29 2013-08-07 北京畅讯通网络技术有限责任公司 一种优化方法和优化服务器
CN103258056A (zh) * 2013-05-31 2013-08-21 北京奇虎科技有限公司 处理风格样式表的方法、服务器、客户端和系统
CN103312807A (zh) * 2013-06-20 2013-09-18 华为技术有限公司 数据传输方法、装置及系统
CN103392327A (zh) * 2012-12-28 2013-11-13 华为技术有限公司 一种重定向方法及网络设备
CN103581340A (zh) * 2013-11-25 2014-02-12 星云融创(北京)信息技术有限公司 一种将域名接入到代理网关的方法及装置
CN104301415A (zh) * 2014-10-21 2015-01-21 无锡云捷科技有限公司 一种基于http重定向的全局负载均衡方法
CN105103146A (zh) * 2013-02-10 2015-11-25 维克斯网有限公司 第三方应用通信api
CN105491131A (zh) * 2015-12-10 2016-04-13 天津海量信息技术有限公司 基于虚浏览器下载的互联网大数据采集系统
CN106487906A (zh) * 2016-11-01 2017-03-08 北京大学(天津滨海)新代信息技术研究院 一种情境感知的移动Web应用协议切换方法
CN106649389A (zh) * 2015-11-03 2017-05-10 阿里巴巴集团控股有限公司 一种页面推送方法及装置、网络系统
CN106713124A (zh) * 2017-01-24 2017-05-24 深圳市启仑智能科技有限公司 一种基于mqtt和mysql的消息推送方法和系统
CN106716974A (zh) * 2016-07-28 2017-05-24 深圳前海达闼云端智能科技有限公司 访问分发方法、装置及系统
CN107547579A (zh) * 2016-06-23 2018-01-05 北京京东尚科信息技术有限公司 用于控制web系统的响应数据流的方法和装置
CN107608745A (zh) * 2017-09-07 2018-01-19 郑州云海信息技术有限公司 一种加快页面加载速度的方法和装置
CN108694206A (zh) * 2017-04-11 2018-10-23 富士通株式会社 信息处理方法和装置
CN108811515A (zh) * 2017-03-01 2018-11-13 谷歌有限责任公司 递送来自跨源资源的自动播放媒体内容元素
CN111290798A (zh) * 2020-01-20 2020-06-16 北京无限光场科技有限公司 数据采集方法、装置和电子设备
CN113994645A (zh) * 2019-05-17 2022-01-28 思杰系统有限公司 自动复制api调用以分离数据中心
CN114338385A (zh) * 2021-12-31 2022-04-12 上海商汤智能科技有限公司 网络配置方法及系统、电子设备和存储介质

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050131837A1 (en) 2003-12-15 2005-06-16 Sanctis Jeanne D. Method, system and program product for communicating e-commerce content over-the-air to mobile devices
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US8650530B2 (en) * 2008-06-04 2014-02-11 Microsoft Corporation Data center programming and application distribution interface
NO330630B1 (no) * 2009-07-01 2011-05-30 Tandberg Telecom As System og fremgangsmate for a opprette et anrop ved hjelp av et globalt register
US10346483B2 (en) 2009-10-02 2019-07-09 Akamai Technologies, Inc. System and method for search engine optimization
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US9553844B2 (en) * 2009-10-13 2017-01-24 Cedexis, Inc. DNS application server
US8233408B2 (en) * 2009-12-10 2012-07-31 Wei Lu Mobile cloud architecture based on open wireless architecture (OWA) platform
US8396989B2 (en) * 2009-12-11 2013-03-12 International Business Machines Corporation Resource planning and data interchange functionality within a cloud computing environment
US9009330B2 (en) 2010-04-01 2015-04-14 Cloudflare, Inc. Internet-based proxy service to limit internet visitor connection speed
US9049247B2 (en) 2010-04-01 2015-06-02 Cloudfare, Inc. Internet-based proxy service for responding to server offline errors
US9730037B2 (en) * 2010-06-16 2017-08-08 Microsoft Corporation Cellular data communication for mobile devices
US8788577B2 (en) 2010-06-22 2014-07-22 Akamai Technologies, Inc. Method and system for automated analysis and transformation of web pages
EP2682875A1 (en) 2010-07-13 2014-01-08 Motionpoint Corporation Method of estimating a user's preferred language
GB2483648A (en) * 2010-09-14 2012-03-21 Mastek Uk Ltd Obfuscation of data elements in a message associated with a detected event of a defined type
US9077681B2 (en) * 2010-10-05 2015-07-07 Microsoft Technology Licensing, Llc Page loading optimization using page-maintained cache
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
CN103620576B (zh) * 2010-11-01 2016-11-09 七网络公司 适用于移动应用程序行为和网络条件的缓存
US9015226B2 (en) 2011-01-06 2015-04-21 Oracle International Corporation Techniques for detecting new browser windows
US8892635B2 (en) 2011-01-06 2014-11-18 Oracle International Corporation Techniques for detecting inactive browser windows
US8924934B2 (en) 2011-02-04 2014-12-30 Oracle International Corporation Automated test tool interface
US8667183B1 (en) 2011-03-20 2014-03-04 Israel L'Heureux Server-side HTTP translator
US9084281B2 (en) * 2011-03-30 2015-07-14 Dexi Lu Open wireless architecture (OWA) mobile cloud infrastructure and method
US9424236B2 (en) * 2011-04-26 2016-08-23 Oracle International Corporation Filtered Stylesheets
US8949464B2 (en) * 2011-05-10 2015-02-03 Israel L'Heureux Client-side HTTP translator
US8285808B1 (en) 2011-05-20 2012-10-09 Cloudflare, Inc. Loading of web resources
US8589480B2 (en) * 2011-05-24 2013-11-19 Sony Computer Entertainment America Llc Automatic performance and capacity measurement for networked servers
US8407284B2 (en) * 2011-05-27 2013-03-26 Red Hat, Inc. Systems and methods for cloud data deployment based on preferential and/or existing subscription relationships
US9052939B2 (en) * 2011-05-27 2015-06-09 Red Hat, Inc. Data compliance management associated with cloud migration events
US9262498B2 (en) * 2011-05-27 2016-02-16 Red Hat, Inc. Generating optimized host placement of data payload in cloud-based storage network
US9344484B2 (en) 2011-05-27 2016-05-17 Red Hat, Inc. Determining consistencies in staged replication data to improve data migration efficiency in cloud based networks
CN102355449B (zh) * 2011-06-30 2014-09-17 深信服网络科技(深圳)有限公司 一种隐蔽发送重定向请求的方法、网关和系统
US8849976B2 (en) * 2011-09-26 2014-09-30 Limelight Networks, Inc. Dynamic route requests for multiple clouds
US9385982B2 (en) * 2011-10-19 2016-07-05 International Business Machines Corporation Identification to a recipient of an electronic communication of another user who has accessed the electronic communication
WO2013070185A1 (en) * 2011-11-07 2013-05-16 Empire Technology Development Llc Cache based key-value store mapping and replication
US9207983B2 (en) 2011-11-09 2015-12-08 Infosys Limited Methods for adapting application services based on current server usage and devices thereof
US9742858B2 (en) 2011-12-23 2017-08-22 Akamai Technologies Inc. Assessment of content delivery services using performance measurements from within an end user client application
US9858149B2 (en) * 2012-01-03 2018-01-02 Microsoft Technology Licensing, Llc Accessing overlay media over a network connection
US9811590B1 (en) * 2012-02-13 2017-11-07 Amazon Technologies, Inc. Managing cached data in a network environment
US9817916B2 (en) 2012-02-22 2017-11-14 Akamai Technologies Inc. Methods and apparatus for accelerating content authored for multiple devices
US9674258B2 (en) 2012-02-23 2017-06-06 Yottaa Inc. System and method for context specific website optimization
CN102664872B (zh) * 2012-03-05 2016-05-25 星云融创(北京)科技有限公司 用于检测和防止对计算机网络中服务器攻击的方法
WO2013131237A1 (en) * 2012-03-05 2013-09-12 Xingyunrongchuang (Beijing) Information Technology Company Limited System and method for detecting and preventing attacks against a server in a computer network
US9740708B2 (en) 2012-05-01 2017-08-22 Everbridge, Inc. Systems and methods for distance and performance based load balancing
US9391855B2 (en) * 2012-05-09 2016-07-12 Everbridge, Inc. Systems and methods for simulating a notification system
US9176725B2 (en) * 2012-05-15 2015-11-03 Oracle International Corporation Automated upgrade for an operating system using a gateway server
US8849904B2 (en) * 2012-05-17 2014-09-30 Cloudflare, Inc. Incorporating web applications into web pages at the network level
US8972344B2 (en) 2012-06-07 2015-03-03 Wal-Mart Stores, Inc. Sequence engine
CN102752411A (zh) * 2012-06-29 2012-10-24 华为终端有限公司 重定向方法及设备
JP5918642B2 (ja) * 2012-06-29 2016-05-18 Kddi株式会社 Webコンテンツの配信装置
CN102907071B (zh) * 2012-07-26 2015-04-29 华为技术有限公司 一种数据传输方法、移动终端和代理服务器
US9479890B2 (en) * 2012-07-31 2016-10-25 Michael Lu Open wireless architecture (OWA) mobile cloud infrastructure and method
US9059938B1 (en) * 2012-09-17 2015-06-16 Amazon Technologies, Inc. Managing requests of website servers
US9015212B2 (en) * 2012-10-16 2015-04-21 Rackspace Us, Inc. System and method for exposing cloud stored data to a content delivery network
EP2915044B1 (en) * 2012-11-05 2023-06-07 Sea Street Technologies Inc. System and method for provisioning and managing an elastic computing infrastructure
CN102970356A (zh) * 2012-11-08 2013-03-13 百度在线网络技术(北京)有限公司 云端服务器和客户端的通信方法、系统和装置
US9785621B2 (en) 2012-11-26 2017-10-10 Akamai Technologies, Inc. Progressive consolidation of web page resources
CN103856541B (zh) * 2012-12-06 2017-10-10 华为技术有限公司 重定向页面显示方法、网关及用户设备
KR102090493B1 (ko) * 2013-01-22 2020-03-18 삼성전자주식회사 무선 통신 네트워크에서 http 프로토콜의 전송 지연과 http 서버의 프로세싱 부하를 줄이는 장치 및 방법
US9270765B2 (en) * 2013-03-06 2016-02-23 Netskope, Inc. Security for network delivered services
US10007726B2 (en) * 2013-03-13 2018-06-26 Google Llc Resolving a host expression to an internet protocol address
US9197487B2 (en) 2013-03-15 2015-11-24 Verisign, Inc. High performance DNS traffic management
WO2014147692A1 (ja) * 2013-03-18 2014-09-25 株式会社日立製作所 監視対象装置、エージェントプログラム及び監視システム
US20140310392A1 (en) * 2013-04-10 2014-10-16 Lap-Wah Lawrence Ho Method and apparatus for processing composite web transactions
US9559961B1 (en) * 2013-04-16 2017-01-31 Amazon Technologies, Inc. Message bus for testing distributed load balancers
US10810654B1 (en) 2013-05-06 2020-10-20 Overstock.Com, Inc. System and method of mapping product attributes between different schemas
CN105900078B (zh) * 2013-05-15 2019-05-03 赛门·拉巴里埃 用于信号和数据路由的系统和方法
CN104281621A (zh) * 2013-07-11 2015-01-14 腾讯科技(深圳)有限公司 网页浏览方法及装置
WO2015009668A1 (en) * 2013-07-16 2015-01-22 Fastly Inc. Network parameter configuration based on end user device characteristics
US9686372B1 (en) * 2013-08-14 2017-06-20 Amazon Technologies, Inc. Systems and methods for automatically rewriting network page code
US10929890B2 (en) 2013-08-15 2021-02-23 Overstock.Com, Inc. System and method of personalizing online marketing campaigns
US10970183B1 (en) 2013-08-16 2021-04-06 The Mathworks, Inc. System and method for improving model performance
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US8745221B1 (en) * 2013-09-18 2014-06-03 Limelight Networks, Inc. Dynamic request rerouting
US9276991B2 (en) * 2013-09-18 2016-03-01 Xerox Corporation Method and apparatus for providing a dynamic tool menu based upon a document
US9064280B2 (en) 2013-09-20 2015-06-23 Target Brands, Inc. Electronic commerce checkout procedures of a website
US9875500B2 (en) 2013-09-20 2018-01-23 Target Brands, Inc. Network traffic-based throttling of electronic commerce activity
US9477774B2 (en) 2013-09-25 2016-10-25 Akamai Technologies, Inc. Key resource prefetching using front-end optimization (FEO) configuration
BR112016007657A2 (pt) 2013-10-07 2017-08-01 Telefonica Digital Espana Slu ?procedimento e sistema para definir a ordem de obtenção de recursos web por um navegador web?
US9819721B2 (en) 2013-10-31 2017-11-14 Akamai Technologies, Inc. Dynamically populated manifests and manifest-based prefetching
US9697189B2 (en) * 2013-11-15 2017-07-04 Instart Logic, Inc. Partial website optimization for a web publisher
US11038922B2 (en) 2013-12-06 2021-06-15 Fastly, Inc. Secure traffic optimization in an edge network
US9397957B2 (en) 2013-12-23 2016-07-19 Google Inc. Traffic engineering for large scale data center networks
US20150215389A1 (en) * 2014-01-30 2015-07-30 Salesforce.Com, Inc. Distributed server architecture
US9887914B2 (en) * 2014-02-04 2018-02-06 Fastly, Inc. Communication path selection for content delivery
KR101552170B1 (ko) * 2014-02-27 2015-09-11 주식회사 티맥스 소프트 더미 http를 이용한 연결 관리 방법 및 그 장치
EP2919431B1 (en) * 2014-03-12 2017-11-08 Accenture Global Services Limited Secure distribution of electronic content taking into account receiver's location
US9900281B2 (en) 2014-04-14 2018-02-20 Verisign, Inc. Computer-implemented method, apparatus, and computer-readable medium for processing named entity queries using a cached functionality in a domain name system
CN103957208B (zh) * 2014-04-29 2018-03-27 北京奇虎科技有限公司 网络游戏的加速方法和系统以及网游加速服务器
CN104168316B (zh) * 2014-08-11 2019-01-11 北京星网锐捷网络技术有限公司 一种网页访问控制方法、网关
US10506027B2 (en) * 2014-08-27 2019-12-10 Tensera Networks Ltd. Selecting a content delivery network
CN104243584B (zh) * 2014-09-17 2017-12-29 可牛网络技术(北京)有限公司 获取资源的方法和装置
US20160134992A1 (en) * 2014-11-10 2016-05-12 Angelica Figueiredo White Method and apparatus for delivering digital content over mobile network
JP2016139273A (ja) * 2015-01-27 2016-08-04 富士通株式会社 連携システム、連携プログラムおよび連携方法
US10812580B2 (en) 2015-01-30 2020-10-20 Akamai Technologies, Inc. Using resource timing data for server push
US10313463B2 (en) 2015-02-19 2019-06-04 Akamai Technologies, Inc. Systems and methods for avoiding server push of objects already cached at a client
US11283697B1 (en) 2015-03-24 2022-03-22 Vmware, Inc. Scalable real time metrics management
US9225625B1 (en) 2015-03-26 2015-12-29 Linkedin Corporation Detecting and alerting performance degradation during features ramp-up
US9887969B1 (en) * 2015-05-01 2018-02-06 F5 Networks, Inc. Methods for obfuscating javascript and devices thereof
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US11070608B2 (en) * 2015-06-17 2021-07-20 Fastly, Inc. Expedited sub-resource loading
CN105022826B (zh) * 2015-07-24 2018-07-06 上海斐讯数据通信技术有限公司 一种提高安卓系统智能终端浏览器上网速度的方法及系统
CN105050133B (zh) * 2015-07-31 2019-01-29 腾讯科技(深圳)有限公司 检测Wi-Fi热点下的网速的方法及装置
US10313211B1 (en) * 2015-08-25 2019-06-04 Avi Networks Distributed network service risk monitoring and scoring
US10594562B1 (en) 2015-08-25 2020-03-17 Vmware, Inc. Intelligent autoscale of services
US10541930B2 (en) * 2015-08-28 2020-01-21 Softnas Operating Inc. Automated data flows using flow-based data processor blocks
CN105959199A (zh) * 2015-08-31 2016-09-21 杭州迪普科技有限公司 信息推送方法和装置
CN106506572B (zh) * 2015-09-07 2019-06-14 深圳触云科技有限公司 路由器及路由器推送本地信息的方法
US10116521B2 (en) 2015-10-15 2018-10-30 Citrix Systems, Inc. Systems and methods for determining network configurations using historical real-time network metrics data
US10951489B2 (en) * 2015-12-29 2021-03-16 Digital River, Inc. SLA compliance determination with real user monitoring
US10212041B1 (en) 2016-03-04 2019-02-19 Avi Networks Traffic pattern detection and presentation in container-based cloud computing architecture
US10931548B1 (en) 2016-03-28 2021-02-23 Vmware, Inc. Collecting health monitoring data pertaining to an application from a selected set of service engines
US10534845B2 (en) * 2016-05-11 2020-01-14 Overstock.Com, Inc. System and method for optimizing electronic document layouts
US10826805B2 (en) * 2016-07-11 2020-11-03 Acronis International Gmbh System and method for dynamic online backup optimization
EP3488591A1 (en) * 2016-07-25 2019-05-29 Telefonaktiebolaget LM Ericsson (publ) Content delivery network (cdn) for uploading, caching and delivering user content
US10375196B2 (en) * 2016-07-29 2019-08-06 Microsoft Technology Licensing, Llc Image transformation in hybrid sourcing architecture
US10412186B2 (en) * 2016-08-18 2019-09-10 Level 3 Communications, Llc Front-end optimization in a content delivery network (CDN)
US10530665B2 (en) * 2016-10-14 2020-01-07 Cisco Technology, Inc. Device management for isolation networks
US10630755B2 (en) * 2017-04-19 2020-04-21 Microsoft Technology Licensing, Llc Selective consumption of web page data over a data-limited connection
US20180365087A1 (en) * 2017-06-15 2018-12-20 International Business Machines Corporation Aggregating requests among microservices
US11032127B2 (en) 2017-06-26 2021-06-08 Verisign, Inc. Resilient domain name service (DNS) resolution when an authoritative name server is unavailable
EP4311204A3 (en) 2017-08-28 2024-04-10 Bright Data Ltd. Method for improving content fetching by selecting tunnel devices
US10999168B1 (en) 2018-05-30 2021-05-04 Vmware, Inc. User defined custom metrics
US10846356B2 (en) 2018-06-13 2020-11-24 At&T Intellectual Property I, L.P. Scalable whittled proxy execution for low-latency web over cellular networks
US11044200B1 (en) 2018-07-06 2021-06-22 F5 Networks, Inc. Methods for service stitching using a packet header and devices thereof
US11516083B2 (en) * 2018-09-28 2022-11-29 Mastercard International Incorporated Systems, computer-readable media and computer-implemented methods for automated, dynamic capacity planning using HTTP response header fields
US10958580B2 (en) * 2018-10-17 2021-03-23 ColorTokens, Inc. System and method of performing load balancing over an overlay network
CN112703487A (zh) 2018-10-26 2021-04-23 Vm维尔股份有限公司 在数据中心中分层收集样本
LT3780547T (lt) 2019-02-25 2023-03-10 Bright Data Ltd. Turinio parsisiuntimo, naudojant url bandymų mechanizmą, sistema ir būdas
EP4030318A1 (en) 2019-04-02 2022-07-20 Bright Data Ltd. System and method for managing non-direct url fetching service
CN110049350B (zh) * 2019-04-15 2022-10-11 深圳壹账通智能科技有限公司 视频转码处理方法、装置、计算机设备和存储介质
US11205179B1 (en) 2019-04-26 2021-12-21 Overstock.Com, Inc. System, method, and program product for recognizing and rejecting fraudulent purchase attempts in e-commerce
US11582120B2 (en) 2019-05-30 2023-02-14 Vmware, Inc. Partitioning health monitoring in a global server load balancing system
US11074315B2 (en) 2019-07-02 2021-07-27 Bby Solutions, Inc. Edge cache static asset optimization
US11853806B2 (en) 2019-09-27 2023-12-26 Cloudflare, Inc. Cloud computing platform that executes third-party code in a distributed cloud computing network and uses a distributed data store
US10628244B1 (en) 2019-10-29 2020-04-21 Snowflake Inc. Calling external functions from a data warehouse
EP4055787A4 (en) * 2019-11-04 2023-05-24 Microsoft Technology Licensing, LLC PLATFORM FOR CDN OPTIMIZATION
US10715524B1 (en) 2019-11-14 2020-07-14 Snowflake Inc. External credential-less stages for data warehouse integrations
US11126787B2 (en) * 2020-02-11 2021-09-21 Madcap Software, Inc. Generating responsive content from an electronic document
US11362993B2 (en) * 2020-03-16 2022-06-14 Wipro Limited Method and system for securing data transmission in communication networks
US11765618B2 (en) * 2020-03-20 2023-09-19 Nokia Technologies Oy Wireless communication system
US11979457B2 (en) * 2020-11-06 2024-05-07 F5, Inc. Managing network services using multipath protocols
US11570071B2 (en) * 2021-04-19 2023-01-31 Paypal, Inc. Automated manipulation and monitoring of embeddable browsers
US11941465B2 (en) * 2021-04-29 2024-03-26 Michael G. Whitfield File discovery on a data storage device based on a filesystem location of microservices
US11138192B1 (en) 2021-04-30 2021-10-05 Snowflake Inc. Invoking external table functions from a database system
US11811861B2 (en) 2021-05-17 2023-11-07 Vmware, Inc. Dynamically updating load balancing criteria
US11792155B2 (en) 2021-06-14 2023-10-17 Vmware, Inc. Method and apparatus for enhanced client persistence in multi-site GSLB deployments
US11991226B2 (en) 2021-07-29 2024-05-21 Open4Sale International Pte Ltd System and method of data routing for videotelephonic shopping
CN116720023B (zh) * 2023-08-09 2024-04-12 深圳十方融海科技有限公司 浏览器运行数据的处理方法、装置及电子设备
CN117014214B (zh) * 2023-08-21 2024-04-02 中山市智牛电子有限公司 一种led显示屏的智能控制系统及控制方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271559A1 (en) * 2005-05-26 2006-11-30 Nicholas Stavrakos Method and system for delta compression
CN101201832A (zh) * 2006-12-15 2008-06-18 国际商业机器公司 优化网页图像的方法和系统
CN101438263A (zh) * 2004-09-10 2009-05-20 内特里公司 用于连接优化的系统和方法
EP2111017A1 (en) * 2008-04-17 2009-10-21 Zeus Technology Limited Supplying web pages

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2002449C (en) 1988-12-05 2001-05-08 Mark A. Strobel Pressure-sensitive article with priming layer
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
US7127493B1 (en) * 1998-08-20 2006-10-24 Gautier Taylor S Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria
US6820133B1 (en) * 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
WO2001073563A1 (en) * 2000-03-24 2001-10-04 Dotrocket, Inc. A system and method for increasing data packet transfer rate in a computer network
US7562153B2 (en) * 2000-05-12 2009-07-14 AT&T Intellectual Property II, L. P. Method and apparatus for content distribution network brokering and peering
AU2001283981A1 (en) * 2000-08-18 2002-03-04 International Business Machines Corporation Server-side optimization of content delivery to clients by selective in-advance delivery
US7103651B2 (en) * 2000-11-30 2006-09-05 Nortel Networks Limited Method and apparatus for discovering client proximity network sites
US20020087696A1 (en) * 2000-12-28 2002-07-04 Byrnes Philippe C. Automatic management systemfor communications networks
WO2002101560A1 (en) * 2001-06-12 2002-12-19 Cross Media Marketing Corp. System and method for traffic management
US7231458B2 (en) * 2001-12-27 2007-06-12 Nortel Networks Limited Method and apparatus for discovering client proximity using race type translations
US20030225873A1 (en) * 2002-05-30 2003-12-04 Wade Michael A. Optimization of network performance through uni-directional encapsulation
AU2002311585A1 (en) * 2002-06-06 2003-12-22 Crescendo Networks Ltd. System and method for connecting multiple slow connections to multiple fast connections
US7395355B2 (en) * 2002-07-11 2008-07-01 Akamai Technologies, Inc. Method for caching and delivery of compressed content in a content delivery network
US7373500B2 (en) * 2003-04-15 2008-05-13 Sun Microsystems, Inc. Secure network processing
WO2006126221A1 (en) * 2005-05-27 2006-11-30 Telecom Italia S.P.A. System and method for performing mobile services, in particular push and pull services, in a wireless communication network
US7945678B1 (en) * 2005-08-05 2011-05-17 F5 Networks, Inc. Link load balancer that controls a path for a client to connect to a resource
US20090119769A1 (en) * 2007-11-05 2009-05-07 Microsoft Corporation Cross-site scripting filter
EP2267942B1 (en) * 2009-06-22 2014-08-13 Citrix Systems, Inc. Systems and methods of handling non-http client or server push on http vserver

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101438263A (zh) * 2004-09-10 2009-05-20 内特里公司 用于连接优化的系统和方法
US20060271559A1 (en) * 2005-05-26 2006-11-30 Nicholas Stavrakos Method and system for delta compression
CN101201832A (zh) * 2006-12-15 2008-06-18 国际商业机器公司 优化网页图像的方法和系统
EP2111017A1 (en) * 2008-04-17 2009-10-21 Zeus Technology Limited Supplying web pages

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103392327A (zh) * 2012-12-28 2013-11-13 华为技术有限公司 一种重定向方法及网络设备
CN103392327B (zh) * 2012-12-28 2016-03-09 华为技术有限公司 一种重定向方法及网络设备
WO2014101095A1 (zh) * 2012-12-28 2014-07-03 华为技术有限公司 一种重定向方法及网络设备
CN105103146B (zh) * 2013-02-10 2018-11-13 维克斯网有限公司 第三方应用通信api
CN105103146A (zh) * 2013-02-10 2015-11-25 维克斯网有限公司 第三方应用通信api
CN103237013A (zh) * 2013-03-29 2013-08-07 北京畅讯通网络技术有限责任公司 一种优化方法和优化服务器
CN103237013B (zh) * 2013-03-29 2016-04-27 北京畅讯通网络技术有限责任公司 一种优化方法和优化服务器
CN103258056A (zh) * 2013-05-31 2013-08-21 北京奇虎科技有限公司 处理风格样式表的方法、服务器、客户端和系统
CN103258056B (zh) * 2013-05-31 2016-06-29 北京奇虎科技有限公司 处理风格样式表的方法、服务器、客户端和系统
CN103312807A (zh) * 2013-06-20 2013-09-18 华为技术有限公司 数据传输方法、装置及系统
CN103312807B (zh) * 2013-06-20 2016-12-28 华为技术有限公司 数据传输方法、装置及系统
CN103581340A (zh) * 2013-11-25 2014-02-12 星云融创(北京)信息技术有限公司 一种将域名接入到代理网关的方法及装置
CN104301415A (zh) * 2014-10-21 2015-01-21 无锡云捷科技有限公司 一种基于http重定向的全局负载均衡方法
CN106649389A (zh) * 2015-11-03 2017-05-10 阿里巴巴集团控股有限公司 一种页面推送方法及装置、网络系统
CN105491131A (zh) * 2015-12-10 2016-04-13 天津海量信息技术有限公司 基于虚浏览器下载的互联网大数据采集系统
CN105491131B (zh) * 2015-12-10 2019-02-19 天津海量信息技术股份有限公司 基于虚浏览器下载的互联网大数据采集系统
CN107547579B (zh) * 2016-06-23 2021-01-26 北京京东尚科信息技术有限公司 用于控制web系统的响应数据流的方法、装置和计算机可读存储介质
CN107547579A (zh) * 2016-06-23 2018-01-05 北京京东尚科信息技术有限公司 用于控制web系统的响应数据流的方法和装置
CN106716974B (zh) * 2016-07-28 2020-08-04 深圳前海达闼云端智能科技有限公司 访问分发方法、装置及系统
WO2018018490A1 (zh) * 2016-07-28 2018-02-01 深圳前海达闼云端智能科技有限公司 访问分发方法、装置及系统
CN106716974A (zh) * 2016-07-28 2017-05-24 深圳前海达闼云端智能科技有限公司 访问分发方法、装置及系统
CN106487906B (zh) * 2016-11-01 2019-05-17 北京大学(天津滨海)新一代信息技术研究院 一种情境感知的移动Web应用协议切换方法
CN106487906A (zh) * 2016-11-01 2017-03-08 北京大学(天津滨海)新代信息技术研究院 一种情境感知的移动Web应用协议切换方法
CN106713124A (zh) * 2017-01-24 2017-05-24 深圳市启仑智能科技有限公司 一种基于mqtt和mysql的消息推送方法和系统
CN108811515A (zh) * 2017-03-01 2018-11-13 谷歌有限责任公司 递送来自跨源资源的自动播放媒体内容元素
CN108694206A (zh) * 2017-04-11 2018-10-23 富士通株式会社 信息处理方法和装置
CN107608745A (zh) * 2017-09-07 2018-01-19 郑州云海信息技术有限公司 一种加快页面加载速度的方法和装置
CN113994645A (zh) * 2019-05-17 2022-01-28 思杰系统有限公司 自动复制api调用以分离数据中心
CN111290798A (zh) * 2020-01-20 2020-06-16 北京无限光场科技有限公司 数据采集方法、装置和电子设备
CN114338385A (zh) * 2021-12-31 2022-04-12 上海商汤智能科技有限公司 网络配置方法及系统、电子设备和存储介质
CN114338385B (zh) * 2021-12-31 2024-05-17 上海商汤智能科技有限公司 网络配置方法及系统、电子设备和存储介质

Also Published As

Publication number Publication date
AU2010328326B2 (en) 2016-12-01
EP2510453A2 (en) 2012-10-17
EP2510453A4 (en) 2013-10-09
WO2011071850A2 (en) 2011-06-16
CN102792292B (zh) 2015-12-16
EP2510453B1 (en) 2016-10-12
AU2010328326A1 (en) 2013-05-30
US8112471B2 (en) 2012-02-07
US20110137973A1 (en) 2011-06-09
WO2011071850A3 (en) 2011-10-20

Similar Documents

Publication Publication Date Title
CN102792292B (zh) 站点性能优化和因特网业务处理的系统和方法
US10334016B2 (en) System and method for context specific website optimization
Glaroudis et al. Survey, comparison and research challenges of IoT application protocols for smart farming
US11983234B2 (en) Progressive prefetching
Hofmann et al. Content networking: architecture, protocols, and practice
EP2972957B1 (en) Method and apparatus for implementing distributed content caching in a content delivery network
US9456050B1 (en) Browser optimization through user history analysis
US10630758B2 (en) Method and system for fulfilling server push directives on an edge proxy
US10812580B2 (en) Using resource timing data for server push
Ghotbou et al. Comparing application layer protocols for video transmission in IoT low power lossy networks: an analytic comparison
Crovella et al. Internet performance modeling: the state of the art at the turn of the century
Held A practical guide to content delivery networks
Huang et al. Achieving fast page load for websites across multiple domains
US20130159547A1 (en) Data transfer system
Shailesh et al. An analysis of techniques and quality assessment for Web performance optimization
Cardaci et al. Using SPDY to improve Web 2.0 over satellite links
CN107659541A (zh) nginx消息的处理方法及装置、RTSP重定向系统
US8606876B2 (en) Method and system for accelerating data communication that is using multipart
Shivakumar et al. A survey and analysis of techniques and tools for web performance optimization
US20130151664A1 (en) Data transfer system
Saverimoutou Future internet metrology: characterization, quantification and prediction of web browsing quality
Chiew Web page performance analysis
Kamoun et al. Improvement of MQTT semantic to minimize data flow in IoT platforms based on distributed brokers
Lankananda Enhanced Content Navigation Using Edge Routers in Content Delivery Network
Mughal et al. A Study Report on Content Distribution Network’s Technology & Financial Market

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