遠程教學網(wǎng)絡應用的結構設計透析論文
時間:2022-12-29 02:16:00
導語:遠程教學網(wǎng)絡應用的結構設計透析論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
論文摘要:本文分析闡述了一個遠程教學網(wǎng)絡應用的服務器端的體系結構設計.作者針對系統(tǒng)的總體需求,參考了目前的服務器端的先進技術,提出了系統(tǒng)的體系結構和各個功能層次的設計方案.這個設計滿足了本系統(tǒng)對高可靠性,低延遲以及擴展性的要求.
論文關鍵詞:遠程教學網(wǎng)絡應用;高可靠性;擴展性;三層體系結構
一個成功的大型網(wǎng)絡服務系統(tǒng)在設計中必須考慮到以下幾項關鍵要求:高可靠性(HighAvailability),低延遲(LowLatency),擴展性(Scalability)和安全性(Security).本文基于上述要求,參考了目前多種先進的相關技術,提出了一個遠程網(wǎng)絡教學系統(tǒng)的體系結構規(guī)劃和設計方案.
1系統(tǒng)功能,設計宗旨和總體結構
本系統(tǒng)主要提供遠程教學所需的學生在線注冊、記錄管理、遠程教學課件、課堂討論、作業(yè)提交、教師答疑以及在線測試等主要功能,所有這些功能都通過互聯(lián)網(wǎng)絡來完成.系統(tǒng)處理能力的設計目標是要能夠支持多達10000注冊學生和每天不少于百萬級的訪問量.
本系統(tǒng)的一個設計宗旨是不采用高端或專用計算機,而是使用通用計算機硬件系統(tǒng).這主要是依據(jù)所謂橫向拓展(Scale-out)的思想,而不是縱向拓展(Scale-up).也就是說系統(tǒng)在整體上要能夠使用分布式并行處理技術,把系統(tǒng)負荷合理分配到多臺對等的服務器上.這樣更有利于系統(tǒng)的擴展性,甚至可以構建出有成千上萬個服務器結點的集群(Clustering)來提供超強的數(shù)據(jù)處理能力.這也是所謂云計算技術(CloudComputing)的核心思想之一。
本系統(tǒng)的主要操作系統(tǒng)平臺選擇開放的Linux系統(tǒng).依據(jù)系統(tǒng)的性能目標和擴展性的要求,本系統(tǒng)總體結構采用了如圖1所示的三層結構(Three-tierArchitecture)的設計.
這樣的分層結構有效的劃分了系統(tǒng)功能,每個層次的功能都相對獨立,這樣既有利于對各個層實施有針對性的優(yōu)化策略,也簡化了整體維護的復雜度,是目前復雜網(wǎng)絡應用經(jīng)常采用的設計,二.本文的重點是要對這個遠程教學系統(tǒng)在體系結構層次進行分析和討論,而不涉及各層軟件系統(tǒng)的具體實現(xiàn).下面對各層所要解決的問題,設計的策略和技術展開進一步討論.
2網(wǎng)頁層的設計
網(wǎng)頁層的任務是受理師生從網(wǎng)頁瀏覽器所提交的請求,并最終發(fā)給用戶所需的內容.網(wǎng)頁服務器(WebServer)是其核心,本系統(tǒng)選用了目前全世界使用最廣泛的Apache服務器,同時又采用了服務器(Proxy)和緩存(Caching)的技術.
網(wǎng)頁層向用戶所提供的內容大致可以分為靜態(tài)(Static)內容,與動態(tài)(Dynamic)內容,近幾年涌現(xiàn)的多個內容分布網(wǎng)絡(ContentDistributionNetworks)主要就是針對靜態(tài)內容的.本系統(tǒng)的靜態(tài)內容相對總體內容比例較大.針對這些特點,本設計在網(wǎng)頁服務器前加上經(jīng)過作者軟件強化后的反向服務器(ReverseProxy),它具備以下功能:
1)緩存(Caching)內容.由于靜態(tài)內容很少需要更新,所以使用緩存技術可以把它們存儲于中.用戶對靜態(tài)內容的請求大都由直接處理后返回給用戶,這樣就大大減少了網(wǎng)頁服務器的負荷,有效地滿足了用戶低延遲的要求.這里決定緩存效率的是其替換算法(ReplacementAlgorithm),作者對LRU算法加以改進,考慮了文件大小和取用頻率的因素,更適合教學系統(tǒng)的特點.另外,使用支持ESI(EdgeSideIncludes)語言的反向,緩存也可以有效分擔部分動態(tài)內容對網(wǎng)頁服務器帶來的負荷,明顯提高系統(tǒng)對動態(tài)內容的處理速度.本設計還進一步參考了其它動態(tài)內容的提速技術,對動態(tài)網(wǎng)頁碎片(PageFragments)在網(wǎng)頁服務器內也進行了緩存.
為了進一步證明本設計的效果,作者設計了一個針對靜態(tài)內容的實驗,使用HPLoadRunner軟件來模擬500學生用戶同時連續(xù)訪問隨機的靜態(tài)網(wǎng)頁.實驗結果如圖2所示,其中點畫線為未使用反向,實線為使用反向.它顯示在使用改良過的反向后,網(wǎng)頁反應時間由平均約36ms降到了只有約6ms,系統(tǒng)功能的提升是很顯著的.
2)負載平衡(LoadBalancing).反向根據(jù)每個網(wǎng)頁服務器當前的負載,把用戶請求分配到負載相對輕的服務器上.這不僅提高了系統(tǒng)的處理能力和縮短了反應時間,而且還可以有效提高系統(tǒng)可靠性,避免單點失敗.另外,本系統(tǒng)平衡負載功能在處理用戶會話(Session)時,采用了粘連式的(Sticky)平衡負載策略,從而減少了系統(tǒng)復雜度和由此帶來的額外開銷.
3)安全保護.反向是系統(tǒng)第一個安全保護環(huán)節(jié),但不是唯一的.它加人了人侵攻擊(Intrusionattack)和協(xié)議攻擊(ProtocolAttack)的檢測和防護.除此以外,使用還可以有效的”隱藏”網(wǎng)頁服務器集群,增加了針對特定網(wǎng)頁服務器版本進行攻擊的難度.
對于現(xiàn)有的很多網(wǎng)絡應用而言,網(wǎng)頁層是其運行的瓶頸,而上述的反向加網(wǎng)頁服務器集群的設計則解決了這個問題.
3應用層的設計
考慮到本教學系統(tǒng)的相對復雜度以及擴展新功能的需求,使用應用層是很必要的.應用層的主要任務是實現(xiàn)商務邏輯,它根據(jù)網(wǎng)頁層傳遞的用戶指令并在需要時從數(shù)據(jù)庫層查詢數(shù)據(jù),從而完成整個系統(tǒng)的核心控制功能.本系統(tǒng)的應用層采用了無狀態(tài)(Stateless)的設計原則,這簡化了應用服務器集群擴展的步驟.
為了更加高效地利用應用服務集群,應用層和網(wǎng)頁層的接口也加人了負載平衡的機制.本系統(tǒng)的應用服務器集群采用的是基于企業(yè)服務總線(EnterpriseServiceBus)的結構,集群的成員共享服務總線上的指令隊列來達到負載平衡的效果.這樣的設計也避免了單點失敗.
應用層的另外一個關鍵環(huán)節(jié)是和數(shù)據(jù)層的接口.由于網(wǎng)頁層和應用服務集群都做了優(yōu)化,消除了瓶頸,而且無狀態(tài)的設計對數(shù)據(jù)庫的要求相對于有狀態(tài)的設計要高,數(shù)據(jù)庫層很可能因此而成為整個系統(tǒng)的瓶頸.為此,在應用層和數(shù)據(jù)層的接口中,要使用分布式的緩存(Distributedcache)來優(yōu)化數(shù)據(jù)庫的存取.這個數(shù)據(jù)庫緩存具備數(shù)據(jù)復制功能,能夠保證所有的應用服務器的數(shù)據(jù)同步.有了這樣數(shù)據(jù)庫緩存的應用層就提高了系統(tǒng)數(shù)據(jù)的整體存取速度,有效的降低了數(shù)據(jù)庫層的負擔.
應用層還要提供比網(wǎng)頁層更進一步的系統(tǒng)安全功能.它主要是針對那些非人侵性的攻擊,也就是那些單個請求都看似合法卻是數(shù)量龐大能耗盡系統(tǒng)資源的攻擊,一個典型的例子就是分布式拒絕服務(DistributedDenial—of—service)攻擊.本系統(tǒng)采用的策略是對用戶會話進行以統(tǒng)計分析為基礎的實時行為評估,對于那些可疑的用戶會話加以系統(tǒng)資源分配限制,可疑度越高分配給它的資源就越少,對于被確認的攻擊者則完全拒絕其訪問.這個策略可以有效地保護系統(tǒng),又可以避免錯誤地拒絕用戶的合法訪問.
4數(shù)據(jù)庫層設計
數(shù)據(jù)庫在本系統(tǒng)中是至關重要的.本設計主要采用數(shù)據(jù)冗余(DataRedundancy)的策略,也就是利用數(shù)據(jù)庫服務器的集群技術和數(shù)據(jù)自動復制功能來實現(xiàn)高可靠性:集群中的數(shù)據(jù)庫節(jié)點相互復制數(shù)據(jù)以達到數(shù)據(jù)的同步,這樣由于每個數(shù)據(jù)都有多個備份,集群中任何單個數(shù)據(jù)庫的失敗都不會造成數(shù)據(jù)的丟失.其次,它應有快速的處理功能和易擴展J勝,本系統(tǒng)采用數(shù)據(jù)劃分(DataPartition)策略來實現(xiàn)這個要求.
5總結和擴展
綜上所述,本文介紹了一個遠程網(wǎng)絡教學系統(tǒng)的體系結構設計,重點討論了各個功能層在運行中要解決的問題和實現(xiàn)的策略及技術,提出了滿足系統(tǒng)功能目標的方案.然而在系統(tǒng)實際部署時,還可能遇到新的問題和要求.比如,為了進一步提升系統(tǒng)的可靠性,很多大型網(wǎng)絡應用還要把服務器集群部署在多個不同城市和地區(qū),而且它們往往還在網(wǎng)頁層的反向前再加一個接人控制模塊,使用輪流DNS(RoundRobinDNS)技術進行服務負荷分配·但是,這樣的部署會對各個部署點之間的數(shù)據(jù)同步提出新的要求.在系統(tǒng)中建立自我管理(Self-management)的機制,是本系統(tǒng)下一步的擴展目標.