荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: zzt (打倒台独分子!!!), 信区: Internet
标  题: [转载] 基于网关的分布式WWW系统构建(2)(转寄)
发信站: BBS 荔园晨风站 (Thu Mar 23 09:34:48 2000), 转信

【 以下文字转载自 zzt 的信箱 】
【 原文由 zhuzutao.bbs@smth.org 所发表 】
发信人: xuzq (奔腾), 信区: Internet
标  题: 基于网关的分布式WWW系统构建(2)
发信站: BBS 水木清华站 (Thu Sep  9 09:22:18 1999)

网关服务程序

在HTTP的协议说明中,我们看到在服务器(Server)和客户(
Client)之间可以存在两类中介程序:一是代理(Proxy),
它用于客户一端的请求中介。代理服务在WWW的应用中比较常
见,多数情况是用于局域网计算机访问广域网的出口,它可以
使局域网内许多没有合法IP地址的机器,利用代理服务器的IP
地址访问英特网。而且利用代理服务器的缓存(Cache)功能,
当一个局域网内用户访问过某个网站的内容时,后来的用户访
问同一内容时,可以直接从代理服务器的缓存中读取,这样既
节约了时间,也减少了网络流量。
二是网关(Gateway), 位置和代理服务器相对,用于多个服
务器的中介。网关作为服务器一端的网络入口,可以完成防
火墙功能,或者负责转换非HTTP协议的请求。我们的网关服务
程序正是和协议中所提到的网关相类似,这也是WWW网关方式
名称的来历。
在分布式的WWW网站系统中,每台机器都以独立的WWW 服务器
形式存在,网关程序的功能是获取所有针对本网站的客户请求,
然后分析整个分布式系统中各个主机的负载情况,选出当时负
载较轻的机器,把客户请求交给这台机器处理。网关方式的优
点在于不需要对WWW 服务器的服务程序进行改动,可以和所有
现存的服务程序进行集成。而且可以随时获得整个分布式系统
中各个机器的工作状况,动态分配客户的请求,遇到某台主机
故障的情况,能够停止向其发送客户请求,直到该机器工作恢
复正常为止。

分布式WWW系统的构成

整个分布式的WWW网站系统从软件上看由三个部分组成:网关程
序(Gateway)、负载监测服务器(Load Server)和WWW 服务
器。从硬件组成上看:只要是由TCP/IP网络连接起来的多台
UNIX机器即可。但是从负载监测的方面考虑,由于现在没有一
个统一的反映WWW响应时间的指标,而且不同体系结构的机器性
能侧重不同,为了使负载数据有可比性,还是使用同一体系结
构的计算机为宜。最好是批量购置的完全相同的计算机,在这
种环境下所作的动态负载分配更加合理有效。
选用一台计算机作为网关程序的运行平台,以这台机器的名称
和IP地址作为整个网站的标识向外界公布。这样所有第一次访
问该网站的客户请求就都会传到网关服务器上。在这台机器上
是否再运行WWW 服务器可以由系统管理员自行决定。因为网关
程序本身占用的系统资源并不是很多,还可以用来处理客户请
求,以充分利用整个系统的全部资源。在系统中的所有机器上
都安装WWW 服务器,种类和版本都不限。实际上客户请求的分
配与WWW 服务器无关。每一台安装WWW 服务器的机器还要运行
负载监测服务器程序,该服务程序的功能是当网关程序前来询
问负载情况时,检测自身所在计算机的负载情况并将数据报告
给网关程序。每一台安装WWW 服务器的机器都要能够直接访问
整个网站的内容,这可以利用网络文件系统(NFS)来实现,
但是按照并行理论中数据分布式存储的要求,最好每台计算机
都有一个全部网站内容的备份,这样可以减少局域网中的数据
传输量,加快响应速度。但是会带来整个站点内容更新与维护
的麻烦。

工作流程

当一个WWW的客户请求到达网关时,网关服务程序从该请求中
分离出所要访问的资源定位(比如:/index.html,或是
/PcFarm/download.html),再向系统中运行WWW 服务器的所
有计算机发出请求,要它们报告当前各自机器的负载情况,
受到回应后,通过对所有负载数据的比较,挑出一台负载最轻
的机器,并且用该机器的地址和先前分离出来的资源定位信息
生成一个含有重定向指针的网页,返回给发出最初WWW客户请
求的计算机,该计算机受到这个网页后会自动与网关程序指定
的WWW 服务器相连接,用户在使用时不会注意实际上所连接的
主机已经改变,因为没有任何额外的操作需要用户来完成。
接下来一系列的工作全都由该WWW 服务器负责,与网关程序没
有进一步的联系了。这就是基于网关的分布式WWW系统的大致
工作过程,如图 1所示。

图 1  分布式WWW系统的工作流程
图中四个方框代表整个分布式系统中的四台计算机,A、B、C
三台安装了WWW 服务器(图中以WS表示)和负载监测程序
(Load Server图中以LS表示)。网关程序安装在另外一台计
算机上。正如我们前面曾经提到,这台计算机上也可以安装WS
和LS,因为网关程序带给机器的负担不是很重,运行网关程序
的机器还可以处理一部分客户的请求。网关程序运行在成员D
上。当用户第一次访问我们的WWW网站时,"首次客户请求"由
网关程序接收,然后该程序向系统中所有的计算机发出负载情
况的询问,该询问请求由各自计算机上的负载监测程序(LS)
来处理,LS在获取了本机的负载情况信息之后,向网关程序报
告结果。网关程序在汇总了所有的结果之后,选出当前负载最
轻的一台机器(例如:计算机C),并生成指向该机器的重定
向页面,再向客户机"返回重定向页面"。此时,网关程序的工
作已经完成。接下来客户程序(通常是浏览器)收到该重定向
页面后,自动连接所指向的计算机,这一步就是图中所示的
"第二次客户请求",该请求不再经过网关,而直接送到计算机
C处理,此后该客户在本WWW网站的一切请求均由计算机C来完
成。除非它主动再与网关程序联系。

--
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 210.73.64.229]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.11]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店