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