具体实施方式
下面描述本公开的各个方面。应该明白的是,本文的教导可以以多种多样形式具体体现,并且在本文中公开的任何具体结构、功能或两者仅仅是代表性的。基于本文的教导,本领域技术人员应该明白的是,本文所公开的一个方面可以独立于任何其它方面实现,并且这些方面中的两个或多个方面可以按照各种方式组合。例如,可以使用本文所阐述的任何数目的方面,实现装置或实践方法。另外,可以使用其它结构、功能、或除了本文所阐述的一个或多个方面之外或不是本文所阐述的一个或多个方面的结构和功能,实现这种装置或实践这种方法。此外,本文所描述的任何方面可以包括权利要求的至少一个元素。
本发明提供一种页面传输方法,能提升页面数据压缩效果,从而更好减少传输耗时和节省流量。
本发明主要是基于多用户浏览历史情况下改进页面传输方法,节省网页流量,对于某些场景特别是例如低速网络的场景或者页面数据较大的场景,效果较好。对于特定的客户端(用户)而言,在某一个页面请求中,其自身的历史浏览页面并没有合适的模板,可以通过由服务器下发优化后的页面数据作为模板(字典)来使用增量压缩机制。
本发明为了提升页面数据压缩效果,利用了SDCH机制,并进行了改进。
在介绍本发明方案前,先对SDCH进行简单介绍。
在标准的web服务中,SDCH(Shared Dictionary Compression over HTTP)是一种基于字典进行HTTP数据压缩机制,是一种与HTTP/1.1兼容的扩展,它通过在客户端和服务器之间共享字典来支持对HTTP响应数据的压缩。SDCH的一种应用场景是:某个web站点的所有页面都使用同一页面模板T,每个页面上的差异数据非常少,假定每个页面的相似度接近90%,那么通过使用SDCH机制,服务器先下发页面模板T给客户端作为字典D,当客户端访问服务器的某一页面时,就可以使用增量压缩算法方式来应答该页面基于页面模板T的增量数据,从而达到减少传输数据流量的目的。增量压缩算法与自身压缩算法的主要区别在于增量压缩算法中的压缩字典是可变的,可指定的。增量压缩的计算:对于给定的数据大小S,其增量压缩数据大小为Z,则增量压缩率为:Z / S * 100%。增量压缩率越小,则压缩效果越好。自身压缩的计算:使用通用的压缩算法对给定的数据B进行压缩,例如gzip、7zip,实际的实现是基于压缩算法内置的字典(相对固定)对数据进行压缩处理。对于给定的数据大小S,其增量压缩数据大小为Z,则增量压缩率为:Z / S * 100%。增量压缩率越小,则压缩效果越好。
本发明方案涉及到客户端与后台多个服务设备(如服务器和模型中心集群)之间的配合。在介绍本发明方案之前,先介绍本发明涉及的系统架构。
图1是本发明涉及的系统架构示意图。图中包括客户端、服务器和模型中心集群三大部分。各部分功能介绍如下:
客户端:例如用户使用的手机浏览器。
服务器:主要提供接入服务,包括后台服务模块和模型中心代理(proxy)。
模型中心集群:主要提供模型服务,包括模板运算服务模块和模板缓存服务模块。
后台服务模块:该模块设置在服务器中,提供对于客户端的页面请求的接入服务。后台服务模块物理上部署在后台服务器集群,一个后台服务器集群有多个服务器,以作分布式服务。
模型中心代理(proxy):设置在服务器中,为后台服务模块和模型中心集群的交互提供以下服务:1)将后台服务模块提供的原始页面作为采样数据转发给模型中心集群。2)为后台服务模块提供从模型中心集群查询的模板数据。3)提供基于模板的增量压缩运算并基于设定的增量压缩率阈值选择是否使用增量数据。
模板运算服务模块:设置在模型中心集群。通过由proxy转发的原始页面作为采样数据,按照设定的模板运算模型产生关联到一个或多个特定url路径的模板,并将产生的模板保存到模板缓存服务模块中。
模板缓存服务模块:该模块提供基于memcached的缓存服务,主要提供两类模板缓存服务的写入和查询。写入操作是由模板运算服务模块执行,查询操作是由proxy执行。查询过程包括:1)proxy向模板缓存服务模块发起含url路径的查询请求,模板缓存服务模块基于url路径查询模板ID列表,对于特定的路径,向proxy返回模板列表,模板列表中包括1个或多个模板ID;如果没有匹配的模板,则返回空列表。2)proxy根据模板列表选择模板ID,再向模板缓存服务模块发起含选择的模板ID的查询请求,模板缓存服务模块基于模板ID查询返回模板数据。
需说明的是,在物理上将后台服务模块和模型中心代理proxy都部署在同一台服务器具有一些优点:1)把增量压缩运算的逻辑放置在proxy,可以减少后台服务模块的CPU占用率。2)与模型中心集群的所有交互都由proxy完成,相关的交互细节对于后台服务模块是透明的,不需要在后台服务模块实现更复杂的交互逻辑。3)后台服务模块在服务器上是以多进程进行部署的,多个进程之间共享同一个proxy。而在proxy内部,也实现了本地缓存队列用于存放查询过的模板数据。在这种方案下,对于接入到同一台服务器上的不同后台服务模块的不同客户端可能使用的同一个模板,可以直接在proxy的本地缓存中查找到,不需要查询后端的模型中心集群的模板缓存服务模块。
还需要说明的是,本发明基于模型中心模板的增量压缩需要额外传输模板(字典),其模板的质量依靠模型中心集群中的模板运算服务模块提供支撑。
本发明对模板ID进行统一的约定。
模型中心集群产生的模板可以统一使用Google开源的Protocol Buffer(二进制)协议编码方式进行封装。模板的数据结构包含:1)该模板适用的路径及相应的权重数据对(可以用列表形式,权重数据对可能有1对或者多对)。2)模板数据。
关于模板ID,计算模板ID的过程为:通过对使用Protocol Buffer协议封装好的模板进行MD5运算,取设定个字符例如前6个字符再进行base64转码为8个字符后进行标识(全局唯一标识)。需说明的是,服务器、客户端及模型中心集群中的模板运算服务模块需要保证使用同一种base64编码方式。
举例说明,对于模型中心集群中的模板运算服务模块所产生的某一个模板,其ID为fr4D9oEv,适用路径及权重可能是如下信息:
路径 权重
www.abc.com/def/ghi/ 90
www.abc.com/def/ 80
www.abc.com/ 50
该模板对于以上的三个路径都适用,但对于深度越大的路径,其适用面越广(所适用的页面覆盖率越高)。权重可以用于模板的优先选择。
客户端接收到该模板后,保存到模板缓存队列。客户端对该缓存队列进行持久化保存。同时,对模板数据进行解析,识别适用的路径及权重信息,这些信息在客户端发起新的页面请求时,将作为挑选候选模板的依据,例如路径越相似或权重越大,可优先选择。
下面将参照附图描述本发明的各个实施例。
图2是本发明的页面传输方法流程图。
如图2所示,包括步骤:
步骤201、服务器在接收多个客户端发送的页面请求后,按照网页地址向模型中心集群请求获取页面模板。
具体的,服务器中的模型中心代理在服务器中的后台服务模块接收多个客户端发送的页面请求后,按照网页地址向模型中心集群请求获取页面模板;
所述模型中心代理在所述模型中心集群返回含模板标识的页面模板列表后,根据所述页面模板列表中的模板标识后再向所述模型中心集群获取所述模板标识对应的页面模板。
步骤202、在所述模型中心集群返回页面模板后,依次将根据多个页面请求获取的页面数据与从所述模型中心集群获取到的页面模板进行增量压缩运算,得到增量数据。
具体的,所述模型中心代理在所述模型中心集群返回页面模板后,依次将根据多个页面请求获取的页面数据与从所述模型中心集群获取到的页面模板进行增量压缩运算,得到增量数据,将增量数据传输给所述后台服务模块。
步骤203、将所述增量数据作为页面应答数据传输给对应的客户端。
具体的,所述后台服务模块将所述增量数据作为页面应答数据传输给对应的客户端。
可以发现,本发明提供的页面传输处理方法,设置了存储页面模板的模型中心集群,针对多个客户端发送页面请求的情况,由服务器按照网页地址向模型中心集群获取得到页面模板后,依次将根据多个页面请求获取的页面数据与从所述模型中心集群获取到的页面模板进行增量压缩运算,得到增量数据,那么传输给客户端的就是数据量很小的数据,就可以通过提升页面数据压缩效果,从而更好减少传输耗时和节省流量。
上述概括介绍了本发明的方法,以下再进一步进行具体描述。
图3的实施例是针对客户端没有模板的页面请求处理的情况。
图3是本发明客户端不含模板的页面传输方法的流程图,该流程涉及客户端、服务器中的后台服务模块、服务器中的模型中心代理proxy。
步骤301~304在后台服务模块中实现,步骤305~311在proxy实现,步骤312~314在后台服务模块实现,步骤315~317在客户端实现。
如图3所示,包括步骤:
步骤301:服务器中的后台服务模块接收和处理客户端的页面请求。
本发明中,服务器与客户端约定由客户端通过自定义的协议字段来标识客户端是否支持增量压缩方式。为描述的方便,用于标识客户端是否支持增量压缩方式的标识称为标识A。另外,还可以约定定义其他协议字段作为其他标识。
需说明的是,关于标识A,可以认为含有该标识A就表示支持,也可以根据协议字段中的标识A的取值判断,例如为1表示支持,为0表示不支持,或者相反的含义。本发明对此不加以限定,只强调定义标识用于进行识别作用。
客户端发起的页面请求中含有标识客户端是否支持增量压缩方式的标识A。服务器接收客户端发起的页面请求,解析页面请求,可以得到页面请求中含有的各个字段,包括标识A。
步骤302:判断客户端是否支持增量压缩方式,如支持转步骤303,如不支持则转步骤314。
服务器中的后台服务模块根据步骤301中的解析结果判断客户端是否支持增量压缩方式。该步骤以含有该标识A就表示支持为例说明。后台服务模块如果发现解析得到的客户端的页面请求中含有标识A,认为客户端是否支持增量压缩方式,否则不支持。另外,也可以是根据标识A的取值判断是否支持增量压缩。
需说明的是,本发明服务器中的后台服务模块还可以基于客户端不同的接入点,决定是否使用增量压缩方式。例如对于带宽较大不关注流量的wifi接入点,后台服务模块可以禁止增量压缩机制,即认为不支持增量压缩。
步骤303:确认客户端没有提供模板ID。进入步骤304。
后台服务模块根据步骤301中的解析结果,确认客户端发起的页面请求中不含有模板ID,因此确认客户端没有提供模板ID,进入步骤304。
步骤304:将原始页面数据发送给服务器中的模型中心代理proxy进行模板运算。进入步骤305。
后台服务模块根据客户端的请求获取对应的页面,得到原始页面数据,将原始页面数据发送给proxy进行模板运算。
步骤305:proxy以页面url查询模型中心集群中的模板缓存服务模块是否有适用的模板列表。如果有,进入步骤306,如果没有则转步骤310。
该步骤中,proxy根据页面地址的url路径,向模板缓存服务模块发起含url路径的查询请求,模板缓存服务模块基于url路径查询模板ID列表,对于特定的路径,向proxy返回模板列表,模板列表里包括1个或多个模板ID;如果没有匹配的模板,则返回空列表,proxy根据模板列表选择模板ID,再向模板缓存服务模块发起含选择的模板ID的查询请求,模板缓存服务模块基于模板ID查询返回模板数据。
步骤306:proxy基于查询返回的模板列表和模板数据,依次把原始页面进行增量压缩运算。进入步骤307。
proxy基于查询返回的模板列表和模板数据,依次把原始页面与对应的模板数据进行增量压缩运算。
增量压缩运算具体为:将原始页面数据与查找到的对应的模板进行差异比较,找到差异数据作为增量数据,再进行压缩。
本发明选取第三方open vcdiff的增量压缩算法作为使用算法。使用该种算法,对于给定的大小在100KB左右的文件集合,文件两两之间的增量压缩耗时大致在20ms以下,而增量数据还原(解压)耗时大致在10ms以下。需要说明的是,也可以选取其他的增量压缩算法。
步骤307:proxy判断增量压缩率是否都低于设定的阈值model_zip_ratio,如果是,进入步骤308,如果都没有低于阈值model_zip_ratio,则转步骤310。
本发明的后台服务模块,是对于增量压缩的效果进行策略判断,以决定是否使用增量压缩数据。该步骤中以增量压缩率作为压缩效果为例进行策略判断。增量压缩率越小,则压缩效果越好。
本发明预先设定一个增量压缩率阈值model_zip_ratio,该阈值取经验值。如果增量压缩率低于设定的阈值,认为增量压缩效果较好,反之认为增量压缩效果不好。
步骤308:如果有多个模板的增量压缩率都低于设定的阈值,则选取增量压缩率最低的模板。进入步骤309。
因为增量压缩率低于设定的阈值,增量压缩效果较好,因此可以考虑使用增量数据。而多个都低于阈值的话,增量压缩率最低的模板,效果是最好的,可优先选择。需说明的是,如果不选增量压缩率最低的模板,次低的也可以选择。将该步骤选取的增量压缩率低的模板作为客户端适用的模板。
步骤309:proxy返回成功的状态码和选中的模板ID给后台服务模块。转步骤311。
步骤310:proxy返回失败的状态码给后台服务模块。进入步骤311。
因为增量压缩率高于设定的阈值,增量压缩效果不太好,因此可以考虑不使用增量数据。返回失败的状态码给后台服务模块。
步骤311:后台服务模块将原始页面数据发送给模型中心集群的模板运算服务模块进行页面采集。进入步骤312。
后台服务模块将根据页面请求获取得到的原始页面数据,发送给模型中心集群的模板运算服务模块进行页面采集。
步骤312:后台服务模块检查proxy的应答结果。如果为失败,则转步骤314。如果成功,进入步骤313。
需说明的是,步骤312和步骤311没有必然的顺序关系,可以分开执行,此处只是出于描述的方便按顺序叙述。也即步骤309和310可以先到步骤312,再执行步骤311。
步骤313:后台服务模块在应答数据中通过约定的协议声明适用的模板ID。进入步骤315。
后台服务模块在应答数据中通过约定的协议,设置标识用于声明适用的模板ID。
步骤314:后台服务模块将原始页面发送给客户端作为应答数据。进入步骤315。
步骤315:客户端接收到应答数据,判断应答数据中是否含有适用的模板ID,如果是进入步骤316,否则转步骤317。
步骤316:客户端记录该模板ID,待空闲时从后台服务模块获取该模板ID相应的模板数据。进入步骤317。
步骤317:客户端解析该页面并进行展现。
客户端按现有的处理方式,将页面原始数据进行解析,然后展现。
图4是本发明方法中客户端向后台服务模块请求获取模板的流程图。在图3的步骤316中,描述了客户端将待空闲时从后台服务模块获取该模板ID相应的模板数据。
该实施例描述客户端向后台服务模块请求获取模板的过程:
当客户端接收到模板ID后,会在空闲时间(用户没有触发页面请求)向服务器中的后台服务模块请求进行模板更新。该请求及应答格式由两者进行约定,与一般的页面请求进行区分。后台服务模块下发模板时可进行gzip压缩以减少传输流量。
该流程涉及客户端、后台服务模块、proxy。
步骤401~402在后台服务模块中实现,步骤403~405在proxy实现,步骤406~409在后台服务模块实现,步骤410~412在客户端实现。
如图4所示,包括步骤:
步骤401:后台服务模块接收和处理客户端的模板请求。
后台服务模块接收客户端发送的含有模板ID的获取模板请求,解析请求内容获得其中的模板ID。
步骤402:将从模板请求中获取的模板ID发送给proxy。
步骤403:proxy以模板ID为关键字key查询模型中心集群中的模板缓存服务模块,如果没有模板ID对应的模板数据则转步骤405,如果有则进入步骤404。
proxy向模板缓存服务模块发起含模板ID的查询请求,模板缓存服务模块根据其中的模板ID进行查询,向proxy返回查询结果。
步骤404:proxy返回模板更新成功的状态码和模板数据给后台服务模块。转步骤406。
该步骤中,proxy接收到模板缓存服务模块返回的模板ID对应的模板数据后,将更新成功的状态码和模板数据发送给后台服务模块。
步骤405:proxy返回模板更新失败的状态码给后台服务模块。进入步骤406。
该步骤中,proxy获知模板缓存服务模块没有模板ID对应的模板数据后,将更新失败的状态码发送给后台服务模块。
步骤406:后台服务模块检查proxy的应答结果。如果为失败,则转步骤408,如果成功转步骤407。
步骤407:后台服务模块组装模板数据到应答数据。转步骤409。
后台服务模块将模板数据按照约定的格式进行封装作为应答数据。本发明对于约定格式不加以限定,只要客户端和服务器约定的格式都可以。
步骤408:后台服务模块组装空模板数据到应答数据。转步骤409。
后台服务模块将模板数据按照约定的格式进行封装作为应答数据。
步骤409:后台服务模块返回应答数据给客户端。进入步骤410。
步骤410:客户端接收到应答数据,判断其中是否含有模板数据,如果有则转步骤411,否则转步骤412。
步骤411:客户端将该模板数据加入到模板缓存队列。
步骤412:处理过程结束。
图5是本发明客户端含模板的页面传输方法的流程图,该流程涉及客户端、后台服务模块、proxy。
图5的实施例是针对客户端含有模板的页面请求处理的情况。
步骤501~504在后台服务模块中实现,步骤505~513在proxy实现,步骤514~518在后台服务模块实现,步骤519~523在客户端实现。
如图5所示,包括步骤:
步骤501:后台服务模块接收和处理客户端的页面请求。
客户端发起的页面请求中含有表示客户端是否支持增量压缩方式的标识A和已保存模板的模板ID。服务器接收客户端发起的页面请求,解析页面请求,可以得到页面请求中含有的标识A和模板ID。
步骤502:后台服务模块判断客户端是否支持增量压缩方式,如支持进入步骤503,如不支持则转步骤518。
服务器中的后台服务模块根据步骤501中的解析结果判断客户端是否支持增量压缩方式。该步骤以含有该标识A就表示支持为例说明。后台服务模块如果发现解析得到的客户端的页面请求中含有标识A,认为客户端是否支持增量压缩方式,否则不支持。另外,也可以是根据标识A的取值判断是否支持增量压缩。
步骤503:确认客户端提供了模板ID。进入步骤504。
后台服务模块根据步骤501中的解析结果,确认客户端发起的页面请求中含有模板ID,因此确认客户端提供了模板ID,进入步骤504。
步骤504:后台服务模块将原始页面数据及模板ID发送给proxy进行模板运算。
后台服务模块根据客户端的请求获取对应的页面,得到原始页面数据,将原始页面数据及获得的模板ID一起发送给proxy进行模板运算。
步骤505:proxy以页面url查询模型中心集群中的模板缓存服务模块是否含有适用的模板列表。如果有,进入步骤506,如果没有则转步骤512。
该步骤中,proxy根据页面地址的url路径,向模板缓存服务模块发起含url路径的查询请求,模板缓存服务模块基于url路径查询模板ID列表,对于特定的路径,向proxy返回模板列表,模板列表里包括1个或多个模板ID;如果没有匹配的模板,则返回空列表,proxy根据模板列表里选择模板ID,再 向模板缓存服务模块发起含选择的模板ID的查询请求,模板缓存服务模块基于模板ID查询返回模板数据。
因为对于客户端提供的模板ID,有可能已经被模型中心集群的模板运算服务模块进行淘汰了。所以proxy会根据页面url来查询当前所推荐的适用模板列表。如果客户端所提供的模板ID还未淘汰,且增量压缩率符合设定的阈值,则该次应答会使用增量数据进行页面返回,否则还是会返回原始页面数据。
步骤506:proxy基于查询返回的模板列表,依次把原始页面进行增量压缩运算。
proxy基于查询返回的模板列表和模板数据,依次把原始页面与对应的模板数据进行增量压缩运算。
增量压缩运算具体为:将原始页面数据与查找到的对应的模板进行差异比较,找到差异数据作为增量数据,再进行压缩。
步骤507:proxy判断增量压缩率是否都低于设定的阈值model_zip_ratio,如果是,进入步骤508,如果都没有低于设定的增量压缩率阈值model_zip_ratio,则转步骤512。
本发明预先设定一个增量压缩率阈值model_zip_ratio,该阈值取经验值。如果增量压缩率低于设定的阈值,认为增量压缩效果较好,反之认为增量压缩效果不好。
步骤508:如果有多个模板的增量压缩率都低于设定的阈值,则proxy选取增量压缩率最低的模板。进入步骤509。
因为增量压缩率低于设定的阈值,增量压缩效果较好,因此可以考虑使用增量数据。而多个都低于阈值的话,增量压缩率最低的模板,效果是最好的,可优先选择。需说明的是,如果不选增量压缩率最低的模板,次低的也可以选择。
步骤509:proxy判断选中的模板ID是否已由客户端提供。如果是,进入步骤510,否则转步骤511。
步骤510:proxy返回成功的状态码、模板ID和增量数据给后台服务模块。转步骤513。
步骤511:proxy返回成功的状态码和选中的模板ID给后台服务模块。转步骤513。
步骤512:proxy返回失败的状态码给后台服务模块。进入步骤513。
因为增量压缩率高于设定的阈值,增量压缩效果不太好,因此可以考虑不使用增量数据。返回失败的状态码给后台服务模块。
步骤513:后台服务模块把原始页面数据发送给模型中心集群的模板运算服务模块进行页面采集。进入步骤514。
后台服务模块将根据页面请求获取得到的原始页面数据,发送给模型中心集群的模板运算服务模块进行页面采集。
步骤514:后台服务模块检查proxy的应答结果。如果为成功,进入步骤515,如果为失败,则转步骤518。
需说明的是,步骤514和步骤513没有必然的顺序关系,可以分开执行,此处只是出于描述的方便设置顺序。也即步骤510、511和512也可以分别先进入步骤514,再执行步骤513。
步骤515:后台服务模块判断模板ID是否和客户端提供的一致,如是进入步骤516,否则转步骤517。
步骤516:后台服务模块将模板ID及增量数据发送给客户端作为应答数据。转步骤519。
步骤517:后台服务模块组装适用的模板ID到应答数据发送给客户端。进入步骤521。
因为判断出模板ID和客户端提供的不一致,因此后台服务模块会另外为客户端选择可适用的模板ID。
步骤518:后台服务模块将原始页面发送给客户端作为应答数据。进入步骤519。
步骤519:客户端接收到应答数据,判断应答数据中是否含有增量数据,如果是,进入步骤520,否则转步骤521。
步骤520:客户端根据模板ID从模板缓存队列中查找到对应的模板数据,使用增量解压缩算法解压增量数据,还原为原始页面。进入步骤523。
客户端根据应答数据中的模板ID,找到对应的模板,使用同样的增量解压缩算法进行解压,还原为原始的页面数据。
步骤521:客户端判断应答数据中是否含有适用的模板ID,如果是,进入步骤522,否则转步骤523。
之前已经判断出模板ID和客户端提供的不一致,后台服务模块为客户端另外选择了可适用的模板ID。该步骤则判断应答数据中是否提供了可适用的模板ID。
步骤522:客户端记录该适用的模板ID,待空闲时从后台服务模块获取适用的模板ID所对应的模板数据。进入步骤523。
空闲时从后台服务模块获取适用的模板ID所对应的模板数据的过程可以参见图4所描述的流程。
步骤523:客户端解析该页面并进行展现。
客户端按现有的处理方式,将页面原始数据进行解析,然后展现。
可以发现,利用本发明提出的方法,能提升页面数据压缩效果,从而更好减少传输耗时和节省流量。具体,如果页面数据大小为100KB,按照现有技术的压缩处理方法,需传输的页面数据减小为35KB左右,如果是在2G网络传输,那么传输耗时大概1.1秒左右,而应用本发明的增量压缩处理方式后,需传输的页面数据减少为18KB左右,传输耗时大概0.5秒左右。可以发现,本发明方法比现有技术实现了更好的效果,达到很好的节省流量效果。
进一步举例说明,用户在浏览页面时通常有一定的连续性,即访问同一站点的统一路径下的页面,比如连续访问新浪新闻频道的不同内容页面。而大部分站点对于页面都会使用同一套或者相近的页面模板通过填充数据生成页面,彼此之间的页面相似度比较高。延伸来看,对于客户端连续访问过同一站点同一路径下的两个相似度极高的页面A及A’,本发明的服务器和客户端约定以页面A作为字典,在传输页面A’时采用增量压缩的方式,那么实际传输的增量数据的流量就极少。特别的,如果页面A和页面A’是同一个页面的先后刷新,增量数据将会接近于0(前提是该页面的动态生成数据极少)。
上述详细介绍了本发明的方法流程,相应的,本发明提供一种服务器和系统。
如图6所示,是本发明服务器的结构示意图。
本发明提供的服务器,包括模型中心代理601和后台服务模块602:
模型中心代理601,用于在后台服务模块602接收多个客户端发送的页面请求后,按照网页地址向模型中心集群请求获取页面模板,在所述模型中心集群返回页面模板后,依次将根据多个页面请求获取的页面数据与从所述模型中心集群获取到的页面模板进行增量压缩运算,得到增量数据,传输给后台服务模块602;
后台服务模块602,用于接收多个客户端发送的页面请求,将模型中心代理601传输的所述增量数据作为页面应答数据传输给对应的客户端。
进一步的,其中所述模型中心代理601包括:获取单元6011、增量处理单元6012。
获取单元6011,用于在所述后台服务模块602接收多个客户端发送的页面请求后,按照网页地址向模型中心集群请求获取页面模板,在所述模型中心集群返回含模板标识的页面模板列表后,根据所述页面模板列表中的模板标识后再向所述模型中心集群获取所述模板标识对应的页面模板;
增量处理单元6012,用于依次将根据多个页面请求获取的页面数据与从所述模型中心集群获取到的页面模板进行增量压缩运算,得到增量数据,将增量数据传输给所述后台服务模块602。
进一步的,所述模型中心代理601还包括:压缩比较单元6013。
压缩比较单元6013,用于在所述增量处理单元6012得到增量数据之后,判断增量压缩运算的增量压缩率是否低于第一设定阈值;若是,所述增量处理单元6012从多个都低于第一设定阈值的增量压缩率中选择一个低的增量压缩率,将所选择的低的增量压缩率对应的增量数据、模板标识和成功状态码传输给所述后台服务模块602;若否,所述增量处理单元6012传输失败状态码给所述后台服务模块602,由所述后台服务模块602只将根据页面请求获取的页面数据作为页面应答数据发送给对应的客户端。或者,
压缩比较单元6013,用于在所述增量处理单元6012得到增量数据之后,判断增量压缩运算的增量压缩率是否低于第一设定阈值;若是,所述增量处理单元6012从多个都低于第一设定阈值的增量压缩率中选择一个低的增量压缩率,将所选择的低的增量压缩率对应的模板标识和成功状态码传输给所述后台服务模块602,由所述后台服务模块602将选择的模板标识发送给客户端;若否,所述增量处理单元传输失败状态码给所述后台服务模块602,由所述后台服务模块602只将根据页面请求获取的页面数据作为页面应答数据发送给对应的客户端。
进一步的,所述模型中心代理601还包括:标识比较单元6014。
标识比较单元6014,用于判断所选择的低的增量压缩率对应的模板标识是否已由所述客户端提供,若是,所述增量处理单元6012再进行所述将所选择的低的增量压缩率对应的增量数据、模板标识和成功状态码传输给所述后台服务模块602的步骤,若否,所述增量处理单元6012将所选择的低的增量压缩率对应的模板标识和成功状态码传输给所述后台服务模块602,由所述后台服务模块602将选择的模板标识发送给客户端。
本发明还提供一种页面传输系统,参见前面图1所示结构,包括服务器、客户端和模型中心集群。
客户端,用于向服务器发送页面请求,接收服务器返回的页面应答数据;
服务器,用于在接收多个客户端发送的页面请求后,按照网页地址向模型中心集群请求获取页面模板,在所述模型中心集群返回页面模板后,依次将根据多个页面请求获取的页面数据与从所述模型中心集群获取到的页面模板进行增量压缩运算,得到增量数据,将所述增量数据作为页面应答数据传输给对应的客户端;
模型中心集群,用于向所述服务器返回页面模板。
服务器更具体的结构具体如图6所示,此处不再赘述。客户端,可以设置于移动终端上。
进一步的,所述模型中心集群还包括模板缓存服务模块和模板运算服务模块。
模板缓存服务模块,用于接收所述模型中心代理发起的第一请求后,根据网页地址进行查询,向所述模型中心代理返回含模板标识的页面模板列表,在接收所述模型中心代理发起的含有所述模板标识的第二请求后,根据所述模板标识查找对应的模板后返回给所述模型中心代理;
模板运算服务模块,用于根据从所述模型中心代理采集的页面数据进行运算,生成模板传输给所述模板缓存服务模块进行存储。
上述各装置各模块的具体交互过程,参见前面方法流程的描述,此处不再赘述。
此外,典型地,本发明所述的移动终端可为各种具有蓝牙功能的手持终端设备,例如具有蓝牙功能的手机、个人数字助理(PDA)。
此外,根据本发明的方法还可以被实现为由移动终端中的处理器(比如CPU)执行的计算机程序,并且存储在移动终端的存储器中。在该计算机程序被处理器执行时,执行本发明的方法中限定的上述功能。
此外,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的方法中限定的上述功能的计算机程序。
此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储设备实现。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现所述的功能,但是这种实现决定不应被解释为导致脱离本发明的范围。
尽管前面公开的内容示出了本发明的示例性实施例,但是应当注意,在不背离权利要求限定的本发明的范围的前提下,可以进行多种改变和修改。根据这里描述的发明实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明的元素可以以个体形式描述或要求,但是也可以设想多个,除非明确限制为单数。
虽然如上参照图描述了根据本发明的各个实施例进行了描述,但是本领域技术人员应当理解,对上述本发明所提出的各个实施例,还可以在不脱离本发明内容的基础上做出各种改进。