遠(yuǎn)程教學(xué)網(wǎng)絡(luò)應(yīng)用的結(jié)構(gòu)設(shè)計透析論文
時間:2022-12-29 02:16:00
導(dǎo)語:遠(yuǎn)程教學(xué)網(wǎng)絡(luò)應(yīng)用的結(jié)構(gòu)設(shè)計透析論文一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

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