资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
网站访问排队系统研究与实现网站访问排队系统研究与实现杨喆 中国人民大学附属中学(100080)摘要互联网与我们的学习和生活越来越密切。我们经常会遇到网站访问速度慢的问题。目前虽然有一些解决办法,但往往需要较大的资金、设备和研发投入。我受到银行排队机的启发,提出了把现实世界的排队机系统应用到网络虚拟世界中,通过设定虚拟服务区容量以避免网站出现堵塞或瘫痪,同时通过让等待访问者了解排队情况和自己的位置,减轻了访问者等候的焦虑。另外,通过倒计时加询问的方式,解决了访问超时和继续访问的矛盾。基于以上研究,我设计并实现了一个网站访问排队实验系统WebQ,它结构简单、易于移植和使用。经过网络实际测试,验证了设计方案的可行性和有效性。一、 网站访问的工作原理我们的学习和生活越来越离不开互联网了。通过访问各种类型的网站,可以了解国家大事、学习最新知识、和同学朋友交流,甚至可以完成选课、订票、购物等。互联网是以TCP/IP协议为基础建立起来的一个巨大的计算机网络。而万维网(World Wide Web,简称WWW)是互联网中最重要、应用最广泛的一部分,它由成千上万个网页、文件等网络资源构成,并通过超链接形成一个纷繁复杂的庞大网络。万维网是在90年代初由蒂姆伯纳斯-李发明的,他于1991年8月6日建立了世界上第一个网站,截至到2009年5月全球网站数量突破2.3亿,网民已突破10亿人。本文中如无特殊说明,不再区分互联网和万维网。万维网包括三个重要内容:用URL格式写的网页地址,用HTML写的网页,用HTTP进行网络对话。下面是关于它们的介绍:(1) 统一资源定位符URL(Uniform Resource Locator):它为万维网上每一个网页或其它网络资源提供统一的标识,就是我们通常说的网页地址,以方便查找。它通常包含域名+目录+文件名等三部分。其中域名是网站服务器在互联网上的位置,目录和文件名是网页文件在网站服务器中的具体位置。 例如:http:/www.rdfz.cn/xstd/xszp/zjlx/t20020710_6360.htm 就是人大附中网站上“我看鲁迅”网页的地址。当我们上网时,只需要在电脑的互联网浏览器上键入你想访问的网站地址(即网站首页的网页地址),或者点击一个网页上的超链接,就可以开始网站的访问;(2) 超文本置标语言HTML(HyperText Markup Language):我们用HTML语言来描绘每一个网页。网页可以包含文本、图片、视音频、动画等丰富的内容。网站由许许多多相互链接的网页构成,存放在网站服务器中,网站服务器又称为WWW服务器。(3) 超文本传输协议HTTP(HyperText Transfer Protocol):它是我们在万维网上进行通信的“语言”。当我们访问一个网站时,实际上就是通过浏览器向一个网站发出一个HTTP请求,而网站服务器在收到请求后,将对这个请求进行响应,发回HTML网页,于是我们在浏览器上就看到了所访问的网页。图一、人大附中网站“我看鲁迅”网页让我们来看一看通过互联网访问一个网站的全过程。假设我们要访问人大附中网站中“我看鲁迅”网页,首先我们在电脑的互联网浏览器(例如微软公司的Internet Explorer,谷歌公司的Chrome、Mozilla公司的FireFox等)地址栏中输入网页地址“http:/www.rdfz.cn/xstd/xszp/zjlx/t20020710_6360.htm”,浏览器由这个网页地址形成HTTP请求,发往人大附中网站 “www.rdfz.cn”,该网站的服务器根据收到的网页地址中目录和文件部分“xstd/xszp/zjlx/t20020710_6360.htm”,在硬盘中找到该文件及其相关文件(例如图像文件等),通过互联网发回浏览器,浏览器将它们拼接成完整的网页并呈现出来(见图一),这就是网站访问的全过程。以上我们介绍了互联网、万维网,以及访问网站的基本过程。在下一节中我们将分析影响网站访问速度的原因。二、 影响网站访问速度的原因互联网在给网民带来信息查询、沟通、电子交易等便利的同时,由于种种原因,经常出现访问速度慢,需要长时间等待的现象。因此有人将WWW戏称为World-Wide Wait。从上一节介绍的网站访问过程中可以看出,任何一个环节出现延迟,都可能影响访问,例如上网接入网络带宽不够、遇到上网高峰期、上网的电脑本身运行出现问题等等,本文将重点从网站角度来考虑阻塞问题。从网站角度看,影响访问速度的原因包括:网站接入互联网的带宽,网站服务器的性能等。网站一般通过将动态网页静态化、在各地部署大量高性能服务器、对访问流量均衡分配、增购网站接入带宽等方式来支持正常访问。这需要专门的研发以及大量经费投入。网站访问量波动很大,如果按最大容量来设计和部署,将形成很大的浪费,在管理上也不经济,更何况根本无法准确预知未来的最大访问量。因此无论是大型网站还是普通网站,都无法根本避免访问高峰拥堵现象的出现。 尤其是对于网上购票、网上选课、网上申报项目等类型的网站,往往访问停留时间较长,又容易出现突发的访问高峰(如截止日期临近时)。即使在网络条件很好的情况下,常常也会遇到“堵塞”。这是因为网站服务器虽然能够同时为许多访问者提供服务,但仍有一定限度。超过了这一限度,服务器就会“过载”,导致访问速度非常缓慢。这时如果有更多网民加入,还可能导致服务器出现瘫痪,使网站完全无法访问。2008年奥运门票购票网站就因为过载而出现故障。我和身边的朋友在网上选课、查分时,由于大家心情非常迫切、访问时间又都很集中,也常常出现“堵死”现象。综上所述,虽然已有一些改善网站访问速度的技术和方法,但这些方法往往需要大量的研发及资金投入。即使如此,在遇到突发性访问高峰时,由于网站服务器过载,仍可能出现拥堵。论文将从下列条件出发开展研究:条件一:网站接入带宽可以始终满足访问需要;条件二:网站服务器的服务能力可以满足正常访问的需要,但无法应对突发性访问高峰;条件三:网站无法为突发性访问高峰临时投入更多资源。三、 银行排队机的启示在苦苦寻找解决网站访问拥堵办法的过程中,一次随父母去银行办事,银行的排队系统引起了我的注意。经过调研,我发现,一个银行营业厅由于空间和经费投入的限制,不可能无限度增加服务窗口。在满足日常服务需要的前提下,往往会在下班后及节假日前夕出现高峰拥挤现象(与前面的条件二相似);同时营业厅前的道路一般是畅通的(如条件一),不会在此形成拥堵;在出现高峰拥挤时,银行方面除尽量挖掘服务资源外,没有额外的服务窗口可以增加(如条件三)。银行针对这些问题,采用排队机系统很好地解决了问题。当我们去银行办理业务时,先从门口的排队机中取一个序号,然后去休息区等候。服务窗口的上方会显示目前正在接受服务的客户号码,让休息区的客户随时了解还需要等候多长时间。当有服务窗口空闲时,叫号机就会通知休息区中下一位客户前来办理业务。如果无人响应这个号码,叫号机将转向下一个号码继续呼叫。据心理学研究发现,当顾客在排队接受一项服务时:(1)如果队列杂乱无章,会造成客户烦躁甚至流失;(2)如果顾客不知道还要等候多长时间,或者感到被遗忘时也会变得焦虑;(3)如果顾客发现服务中有不公平现象,会感到不满。从上面的介绍可以看出,银行排队机系统很好地解决了客户排队时的这些问题。 而当访问一个网站出现较长等待时,我们无法了解出了什么问题,也不知道全国、或许全球有多少人正在和自己一起访问这个网站,有没有先来后到,我排在第几号。从前面的心理学研究可以看出,如果没有合理的机制,对拥堵网站的访问容易造成网民焦虑和烦躁。我受到银行排队机的启发,把现实世界的排队方法搬到网络虚拟世界中,以解决以下两个问题:(1)在满足第二节提出的三个条件的前提下,通过建立有序的访问,在出现突发性访问高峰时避免服务器过载或瘫痪;(2)在网站访问拥堵不可避免的情况下,通过让访问者了解服务进展、队列规模,以及自己在队列中的位置等情况,缓解访问者的焦虑和烦躁。四、 系统的设计与实现1、网站访问排队系统的设计根据第三节对银行排队机系统的分析,我设计了网站访问排队系统,称为WebQ(是Web Queue的简写)。它架设在某个网站(称为业务网站)的前面。当同时访问网站的用户数量小于等于网站的并发服务能力时,他们将被引入业务网站进行正常访问,这时几乎感觉不到WebQ的存在,因此对用户来讲是“透明”的;但当同时访问网站的用户数量达到并发服务能力后,再来访问的用户将开始排队,这时WebQ将给他们显示排队页面。WebQ模拟实现了两个区域:等待区和服务区(见图二)。其中等待区是一个严格的先进先出队列,服务区则类似于服务池,里面的用户按照自己的意愿接受完服务之后即可离开。这里的“服务”就是对业务网站的访问。WebQ包含三个功能模块:图二、WebQ系统工作原理l 等待区管理模块:负责接受所有的用户访问请求,将用户排到等待区队列的队尾。并与等待区用户的浏览器定时交互,返回最新等待区状态;l 调度模块:负责等待区到服务区的动态调度。不断检查服务区,当有空位时,就从等待区队列头上把用户访问请求调入服务区;l 服务区管理模块:负责引导服务区用户接受后端业务处理模块(业务网站)的服务。并处理访问超时等问题。WebQ的工作原理如下:当接到一个业务网站访问请求时,等待区管理模块直接把它加入等待区队列末尾。调度模块不断查看服务区是否有空位,如果有就将等待区排在队首的访问请求调入服务区。服务区管理模块将进入服务区的访问请求引入业务网站接受服务,同时该模块监测用户访问情况,及时更新服务区空闲信息。WebQ由三个网页组成:l 排队页面:显示目前服务区容量、等待区队列长度及当前用户在队列中的位置等信息(见图三);l 服务退出页面:用户由于访问超时等原因,系统自动终止该用户访问,并进入该页面;l 倒计时窗口:一个10秒倒计时询问对话框(下面会介绍其作用)。图三、WebQ网站访问排队系统主要页面到此已基本完成在网络虚拟空间中对银行排队机的模拟。但仍有一个重要的问题需要解决。在银行排队机系统中,营业员面对面为顾客提供服务。因此假如顾客因故离开,营业员会及时发现,并终止服务,按键通知叫号机呼叫下一位客户。但在网络虚拟环境中,如果有人一直“挂”在网站上,却干别的事,甚至离开电脑,就会继续占用服务区,影响后面的人访问,怎么办?于是我设计了一种“时限”机制。如果一个页面被“闲置”PageTimeout秒,即在PageTimeout秒内用户未对该页面进行任何操作,WebQ就会弹出倒计时页面,询问是否继续访问,并开始10秒倒计时,如果访问者在归零前点击“继续”则可继续访问网站,否则系统将中断服务,以便为等待区的其他用户提供服务。这样的设计较好地解决了以下问题:(1)在虚拟世界中避免了长时间挂网溜号的现象;(2)为确实需要较长时间访问网站的用户提供了连续访问的机会。需要说明的是,WebQ系统对等待区队列长度没有限制,服务区容量需要根据业务网站能够同时容纳的访问连接数来确定。2、WebQ系统的开发实现根据上面的设计,在进行系统开发时,还需要解决若干技术问题。其中包括选项卡的识别、窗口强行退出的处理等问题。图四、WebQ模块结构图 (1)浏览器选项卡的识别:目前常用的浏览器,包括微软公司的Internet Explorer(简称IE)、Google公司的Chrome、Mozilla公司的FireFox,都可以支持打开多个“选项卡”和多个窗口。由于在同一台电脑上,用多个选项卡和窗口访问同一个网站,将占用网站服务器多项资源。WebQ系统如何才能将这些选项卡和窗口区别开呢?我经过学习和调研,终于了解到可以通过Session号来标识来自同一台机器的不同IE窗口或“选项卡”,于
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号