[发明专利]一种Web应用服务方法和系统有效
申请号: | 201310213891.4 | 申请日: | 2013-05-31 |
公开(公告)号: | CN103259870A | 公开(公告)日: | 2013-08-21 |
发明(设计)人: | 胡奇 | 申请(专利权)人: | 北京京东尚科信息技术有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京邦信阳专利商标代理有限公司 11012 | 代理人: | 王昭林;胡冰 |
地址: | 100080 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 web 应用服务 方法 系统 | ||
技术领域
本发明属于Web应用领域,涉及一种Web应用服务方法和系统。
背景技术
随着网络信息技术在人类生活中的地位越来越重要,互联网站承载的信息量也越来越巨大,特别是作为信息主入口的网站门户页面更承受着海量的访问,需要快速的展现访问结果,更加无法承受不能服务的损失,一旦门户页面不能访问,即使其它页面都没有问题,用户也会因为没有入口而丧失对整个网站的体验。跟进一步,对于需要实时展现来自不同业务模块、不同数据源的动态门户页面,因为用户其对后台数据即时性的需求,无法忍受页面静态化的延迟,因此门户网站压力更为巨大,一旦后台任何一个数据来源出现问题,不仅单个页面无法展示,甚至有可能拖垮整个Web应用服务器。
现有技术展现网页一般是基于同步的请求-应答模式,即客户端(可以是计算机或移动终端的浏览器)向服务器发出一个请求(request),服务器收到请求后进行后台处理,这些处理包括但不限于内存运算、Socket读写、文件或数据库读写等,处理完成后服务器向客户端应答(response),应答内容包括但不限于状态码(status code)、应答头(response header)、消息体(response body)等,一次请求-应答处理一般只有1个HTTP主线程,并且是同步进行的。
对于后台处理需要访问多个数据源且无法保证数据源可靠性的应用,如果使用同步请求-应答模式执行,一旦任何一段业务逻辑或数据源出现问题,例如处理性能下降或网络中断,那么都将影响到主线程的应答,轻则相关页面无法显示,重则Web应用服务器前端被大量请求阻塞(因为后台数据源阻塞),导致无法响应任何应答,整个应用程序都不可用。
现有的web应用技术有异步加载的,例如Portal技术,其一般是在主页面框架内嵌入多个子模块(Portlet),子模块可以随主页面框架同步加载,也可以异步加载,但后者一般需要新开启一个HTTP主线程,例如使用HTTP/1.1规范的IFrame技术实现。
如果采用类似IFrame等技术实现的异步加载机制,虽然可以在某种程度上避免整个应用程序不可用,但是仍然不能避免后台出现问题影响前端展现美观和响应速度。同时每个异步加载的模块都需要新开启一个HTTP主线程,会占用Web应用服务器有限的连接数,并且系统开销也会成倍增加,难以应对互联网海量访问的情况。
综上所述,现有技术存在面对海量访问时,无法保证动态实时应答,进而丧失服务体验的问题。
发明内容
针对现有技术中的问题,本发明提供一种Web应用服务方法,包括:A)收到客户端的请求后,建立一个主线程;B)在主线程中,生成所述请求的副本;C)在主线程中,将所述副本分发到所涉及的业务模块,并设置超时响应时间;D)所涉及的业务模块执行请求的业务;E)在主线程中,在所述超时响应时间内等待所涉及的业务模块的执行结果;F)在主线程中,根据所述执行结果和超时情况,向客户端发送应答;G)终止该主线程。
本发明提供一种Web应用服务系统,包括服务端控制器和至少一个业务模块,
所述服务端控制器被配置为用于接收来自客户端的请求,并建立一个主线程,在主线程中:生成所述请求的副本;将所述副本分发到所涉及的业务模块,并设置超时响应时间;在所述超时响应时间内等待所涉及的业务模块的执行结果;根据所述执行结果和超时情况,向客户端发送应答;
所述业务模块被配置为响应于接收到请求的副本而执行业务;
其中,所述服务端控制器被配置为在向客户端发送应答后终止该主线程。
在本发明中,即使后台某个业务模块出现严重问题,只要主线程服务是独立、健康的,则服务响应的及时性、有效性和可用性都能得到保证和控制,并且本方法对系统资源的额外开销很小,能够适应互联网应用海量并发的情况。
而且,一旦某个后台应用模块出了问题无法响应,只要HTTP请求的主线程健康,其它应用模块的响应和整体的服务都不受到影响,保证快速准确的返回,并且前端页面展示的美观也不受到影响。
本发明可以有效的避免因数据源不可靠、程序死锁、外部业务服务调用阻塞等难以控制的因素长时间阻塞Web服务器的HTTP主线程,从而引发页面展示慢、页面无法展示甚至Web服务器资源耗尽等导致宕机、重启的严重问题。能大幅度增强依赖多个数据源、多个外部服务、需要动态展现的Web应用服务的健壮性。
附图说明
图1显示了本发明的方法的一个实施例的流程图;
图2为本发明的系统的结构图的一个实施例;
图3为图2中的系统的时序图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司,未经北京京东尚科信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310213891.4/2.html,转载请声明来源钻瓜专利网。