一种情境感知的移动Web应用协议切换方法与流程

文档序号:12183027阅读:318来源:国知局

本发明涉及一种情境感知的移动Web应用协议切换方法,属于软件技术领域。



背景技术:

随着智能手机、平板等移动设备的普及,越来越多的用户通过移动设备访问Web资源或者消费Web服务,例如用户通过手机浏览新闻网站、进行在线购物等。互联网上的大部分资源都是通过HTTP协议进行传输,而随着网页内容越来越丰富以及提供越来越多的功能,网页变得越来越复杂,HTTP/1.x已经不能够满足当前网页加载的需求,导致页面加载缓慢、资源冗余传输等问题。

Google在2009年推出基于传输控制协议(TCP)的应用层协议SPDY,旨在通过压缩、多路复用和优先级来缩短网页的加载时间和提高安全性。2015年互联网工程任务组正式发布HTTP/2规格标准。而HTTP/2协议正是在SPDY协议的基础上开发的,现在也得到了各大浏览器包括Chrome、Firefox和IE的支持,以及流行服务器包括Apache、Nginx的支持。虽然SPDY和HTTP/2的提出是为了适应现在复杂的网页传输的场景,缩短网页的加载时间,特别是对于移动网络环境下的网页传输,但是在实际的使用中,SPDY和HTTP/2并不是总能够提升网页加载的速度,甚至会导致页面加载时间更长,损害用户的体验。因此,虽然SPDY、HTTP/2等新的协议对现有的HTTP的不足进行了改机和优化,但是由于网页的结构和内容的差异以及网络的多样性,并不能够保证对页面加载性能有所提升。而当前的Web应用托管的服务器只能或者提供普通的HTTP和HTTPS服务,或者提供SPDY和HTTP/2服务,而不能根据加载网页的特征和用户访问的网络状况动态切换协议,导致不能获得一致性能提升。



技术实现要素:

针对现有技术中存在的问题,本发明的目的在于提供一种情境感知的移动Web应用协议切换方法,动态地根据Web应用的内容以及网络状况选择最适合的传输协议,加快网页的加载速度,使得用户能够获得更好的用户体验。其核心思想是监测用户访问Web应用时的网络状况,包括带宽(BW)、丢包率、网络延迟,以及分析当前被访问Web页面的特征,包括页面资源数目、资源大小,根据训练好的预测模型选择最佳的传输协议。

本发明的技术方案为:

一种情境感知的移动Web应用协议切换方法,其步骤为:

1)用户通过浏览器访问Web应用。

2)服务器端监控用户访问页面时候的网络状况,网络监控模块评估当前网络的带宽、丢包率以及网络延迟。

3)服务器端的页面分析模块评估当前被访问页面的页面特征,包括页面的资源数目以及每个资源的大小。

4)服务器端的协议决策模块根据当前监测到的网络状况以及被访问页面的页面特征,实时决定当前的最佳传输协议。

进一步的,我们在服务器端监测用户当前的网络状况,我们主要需要监测当前网络的延迟、丢包率以及带宽。为了能精确地估计平均的网络延时和丢包等信息,用户访问Web页面的时候,对于页面的主HTML资源(每个web页面的第一个请求就是主的HTML资源,其他都是非主HTML资源),我们不做协议的选择,由于一般Web页面的主HTML资源都不会太小,这样至少会有几十个包在服务器端和客户端之间进行传输,这样我们就能比较精确地估计出用户在访问页面的时候的平均的网络状态,包括RTT和带宽等信息。

进一步的,服务器端的页面分析模块会分析当前访问页面的页面特征,一是根据访问的历史记录,对于一些资源变化不大的页面(例如静态页面),用户访问过以后,我们就可以明确地知道页面资源的数目以及资源的大小。对于没有访问过的页面,用户访问的时候我们通过预先解析页面主HTML资源,可以预先知道页面中的其他资源(例如页面中有js、css以及图片资源,以内嵌的方式嵌入在主HTML页面中)。对于一些可能是由于执行js或者解析css产生的动态资源请求,我们可以根据页面的url等信息,通过建立预测模型,预估当前页面的资源数目和大小,并在用户真实访问的过程中不断训练和改进该模型。在具体实现中,我们建立了一个比较简单的模型,我们根据主HTML页面中CSS资源的数目,JS资源的数目,图片资源的数目,建立一个多元线性的模型,当然我们也可以利用更多的页面特征来建立预测模型。我们根据预先访问的一批训练集中的页面的相关数据,计算相关参数。

进一步的,根据预估的网络状况以及页面特征,我们根据已经建立的协议选择模型,选择当前最合适的传输协议。对于协议选择模型,是一个离线的模型,我们模拟不同的网络环境,通过不同的协议访问Web应用的各个页面。根据测得的不同的协议下的页面加载时间,我们就可以知道不同页面在不同协议下的性能比较,我们利用了决策树的算法根据模拟环境下测得的页面在不同网络环境以及使用不同协议页面加载的数据构建了一棵决策树,决策树的每个非叶子节点是不同的网络特征,包括网络特征即带宽、延迟和丢包率,以及页面特征包括页面资源个数以及资源大小,叶子节点则是决策的结果,表示当前特征下表现最好的协议。

本发明主要是服务器端的改进,服务器端收集当前请求用户的网络状况和分析待访问的页面,根据已有的决策模型,选择最佳的传输协议,优化页面的加载性能。

上述几个部分的具体技术方案如下:

1)网络监控模块。网络监控模块的作用是检测当前访问用户的网络特征,包括延迟、丢包率和带宽。特别地,为了能精确地估计平均的网络延时和丢包等信息,用户访问Web页面的时候,对于页面的主HTML资源,我们不做协议的选择,由于一般Web页面的主HTML资源都不会太小,这样至少会有几十个包在服务器端和客户端之间进行传输。网络监控模块会分析传输主HTML的时候建立的TCP链接以及在上面传输的所有包,这样可以监测到传输过程中所有的RTT,我们取中位数作为预估值,以及丢包和带宽等网络信息。

2)页面分析模块。服务器端的页面分析模块的作用是分析当前被访问页面的页面特征,包括资源数目和资源大小。对于静态页面,我们可以直接根据历史访问记录就知道当前页面的资源数目和资源大小。对于没有访问过的页面,我们可以根据页面的url等信息,通过建立预测模型,预估当前页面的资源数目和大小,并在用户真实访问的过程中不断训练和改进该模型。例如我们可以简单的利用正则表达式对url进行匹配,实际上相似的url往往是同一类页面,例如新闻详情页,会有一样的页面结构,资源数目和大小也是类似的。当然,我们也可以建立更加复杂的预测模型,例如结合待访问页面的主HTML的信息建立一个更加准确的预测模型,这样能够更加精确地预估页面的特征。同时,当用户访问过一个页面以后,该页面的页面特征包括页面资源数目和资源大小也会被记录下来,供之后访问的时候使用。

3)协议决策模块。协议决策模块的作用是根据网络监控模块和页面分析模块获得的网络特征和页面特征,以及线下训练好的最佳协议选择模型选择当前最合适的传输协议,该页面的后续资源的传输就会通过该最佳协议进行,这样可以优化页面的加载时间,使得用户获得更好的用户体验。对于协议的选择,我们是根据线下实验测得的数据建立了一个决策树模型。我们模拟不同的网络环境,通过不同的协议访问Web应用的各个页面,并记录下该页面的加载时间(同时我们也记录下了改页面的资源个数和资源大小,供页面分析模块使用)。我们就可以知道不同页面在不同协议下的性能比较,我们利用了决策树的算法构件一棵协议选择的决策树,决策树的每个非叶子节点是不同的特征,包括网络特征即带宽、延迟和丢包率以及页面特征包括页面资源个数以及资源大小,叶子节点则是决策的结果,表示当前特征下表现最好的协议。当用户访问一个页面的时候,通过网络监控模块和页面分析模块获取到的特征之后,协议决策模块就会将该页面的后续所有资源都通过选择的最佳协议传输。

与现有技术相比,本发明的积极效果为:

虽然新推出的协议包括SPDY和HTTP/2的目的是优化现有的浏览器访问网页的体验,但是在实际中并不是总能够达到优化的效果,甚至会增加页面加载时间。例如,在我们的实验中,我们发现在不同的网络环境下HTTP/2只对8.7%~68%的页面其优化作用,在极端条件下,使用HTTP/2和SPDY使得页面加载时间增加了3倍。而本技术充分利用了不同协议在不同网络环境以及页面特征的表现差异,选择最合适用户当前网络状况下访问该网页的协议,减少用户浏览网页时候的页面加载时间,优化用户访问体验。

附图说明

图1为本发明的系统框图。

具体实施方式

本节给出了一个情境感知的移动Web应用协议切换技术的应用实例。该实例模拟了用户在实际生活中的一个实际需求。

我们开发了一个Apache服务器的协议切换模块,对应实现了上述提到的三个模块,然后我们激活了Apache的HTTP/HTTPS/SPDY/HTTP2协议,并且我们将一个开源的网站部署在上面。

首先,我们关闭我们的协议切换模块。我们通过模拟不同的网络环境,分别使用HTTP/HTTPS/SPDY/HTTP2这四种传输协议去访问该网站的不同页面,同时,我们记录下来每次访问的页面加载时间、页面资源数目以及资源的大小,根据测得的数据,我们建立了一棵决策树模型,并将该模型更新到我们服务器的协议决策模块中(设置相应的配置文件)。根据该决策树模型,我们发现当页面有很多(多余64个资源)小资源(当个资源<2KB)的时候,选择HTTP/2以及SPDY的效果更好;当网络的丢包率比较高的时候,选择HTTP协议最合适。

然后,我们开启我们的协议切换模块,随机模拟网络环境,随机访问一些页面,记录下来我们选择的最佳协议以及当前的网络环境和被访问的页面。为了验证我们的效果,我们可以重复上一训练决策树模型的过程,设置对应的网络环境,分别用不同的协议访问对应的页面,最后看四种协议中最优的协议是否和我们的协议切换模块启动后选择的协议是否一致。我们发现我们取得了良好的效果,当然这个训练模型的数据集的大小有关,数据集越大我们的预测结果就会越准确。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1