相关热词搜索:
一个成功的大型网络服务系统在设计中必须考虑到以下几项关键要求:高可靠性(High Availability ),低延迟(Low Latency ),扩展性(Scalability)和安全性(Security ).本文基于上述要求,参考了目前多种先进的相关技术,提出了一个远程网络教学系统的体系结构规划和设计方案.
1系统功能,设计宗旨和总体结构
本系统主要提供远程教学所需的学生在线注册、记录管理、远程教学课件、课堂讨论、作业提交、教师答疑以及在线测试等主要功能,所有这些功能都通过互联网络来完成.系统处理能力的设计目标是要能够支持多达10 000注册学生和每天不少于百万级的访问量.
本系统的一个设计宗旨是不采用高端或专用计算机,而是使用通用计算机硬件系统.这主要是依据所谓横向拓展(Scale-out)的思想,而不是纵向拓展( Scale-up ).也就是说系统在整体上要能够使用分布式并行处理技术,把系统负荷合理分配到多台对等的服务器上.这样更有利于系统的扩展性,甚至可以构建出有成千上万个服务器结点的集群(Clustering)来提供超强的数据处理能力.这也是所谓云计算技术(Cloud Computing)的核心思想之一。
本系统的主要操作系统平台选择开放的Linux系统.依据系统的性能目标和扩展性的要求,本系统总体结构采用了如图1所示的三层结构(Three-tier Architecture)的设计.
这样的分层结构有效的划分了系统功能,每个层次的功能都相对独立,这样既有利于对各个层实施有针对性的优化策略,也简化了整体维护的复杂度,是目前复杂网络应用经常采用的设计,二.本文的重点是要对这个远程教学系统在体系结构层次进行分析和讨论,而不涉及各层软件系统的具体实现.下面对各层所要解决的问题,设计的策略和技术展开进一步讨论. 测绘论文发表
2网页层的设计
网页层的任务是受理师生从网页浏览器所提交的请求,并最终发给用户所需的内容.网页服务器( Web Server)是其核心,本系统选用了目前全世界使用最广泛的Apache服务器,同时又采用了代理服务器(Proxy)和缓存(Caching)的技术.
网页层向用户所提供的内容大致可以分为静态( Static)内容,与动态(Dynamic)内容,近几年涌现的多个内容分布网络(Content Distribution Networks )主要就是针对静态内容的.本系统的静态内容相对总体内容比例较大.针对这些特点,本设计在网页服务器前加上经过作者软件强化后的反向代理服务器( Reverse Proxy ),它具备以下功能:
1)缓存(Caching)内容.由于静态内容很少需要更新,所以使用缓存技术可以把它们存储于代理中.用户对静态内容的请求大都由代理直接处理后返回给用户,这样就大大减少了网页服务器的负荷,有效地满足了用户低延迟的要求.这里决定缓存效率的是其替换算法(Replacement Algorithm ),作者对LRU算法加以改进,考虑了文件大小和取用频率的因素,更适合教学系统的特点.另外,使用支持ESI( Edge Side Includes)语言的反向代理,缓存也可以有效分担部分动态内容对网页服务器带来的负荷,明显提高系统对动态内容的处理速度.本设计还进一步参考了其它动态内容的提速技术,对动态网页碎片(Page Fragments)在网页服务器内也进行了缓存.
为了进一步证明本设计的效果,作者设计了一个针对静态内容的实验,使用HP Load Runner软件来模拟500学生用户同时连续访问随机的静态网页.实验结果如图2所示,其中点画线为未使用反向代理,实线为使用反向代理.它显示在使用改良过的反向代理后,网页反应时间由平均约36 ms降到了只有约6 ms,系统功能的提升是很显著的.