林 堅(jiān)
云計(jì)算技術(shù)的飛速發(fā)展,給網(wǎng)站群[1]系統(tǒng)的設(shè)計(jì)和開發(fā)帶來了新的思路和方法。網(wǎng)站群技術(shù)最初是從普通的網(wǎng)站開發(fā)技術(shù)發(fā)展而來,從最簡單的“網(wǎng)站集合”,到統(tǒng)一設(shè)計(jì)、統(tǒng)一開發(fā)部署,再到統(tǒng)一開發(fā)、分布式部署,經(jīng)歷了分散式——集中式——分布式的發(fā)展過程。云計(jì)算以服務(wù)為核心的理念,要求網(wǎng)站群開發(fā)不僅僅是實(shí)現(xiàn)功能,更重要的是要提供服務(wù),滿足各類用戶的需求。根據(jù)NIST(美國國家標(biāo)準(zhǔn)和技術(shù)研究院)對(duì)云計(jì)算3層架構(gòu)模型(IaaS、PaaS、SaaS,又被簡稱為SPI模型)的定義[2],云計(jì)算系統(tǒng)提供5大關(guān)鍵功能[3]:按需自助服務(wù)、無處不在的網(wǎng)絡(luò)訪問、動(dòng)態(tài)資源分配、快速彈性服務(wù)、可計(jì)量的服務(wù)。這就要求云計(jì)算平臺(tái)下的網(wǎng)站群系統(tǒng)從硬件架構(gòu)、開發(fā)平臺(tái)、業(yè)務(wù)邏輯框架與功能模塊等各方面重新設(shè)計(jì),以實(shí)現(xiàn)云計(jì)算系統(tǒng)的高可用性、高可靠性和易擴(kuò)展性。
目前高校實(shí)際應(yīng)用中基于云計(jì)算架構(gòu)網(wǎng)站系統(tǒng)并不多,大部份網(wǎng)站還是用單機(jī)環(huán)境下的技術(shù)進(jìn)行建設(shè)和管理,隨著學(xué)校規(guī)模的擴(kuò)大,網(wǎng)站的數(shù)量不斷增長,日常管理中出現(xiàn)了諸多問題[4][5]。
1)各類網(wǎng)站代碼版本繁多,運(yùn)行平臺(tái)混亂。早期的部門網(wǎng)站通常由業(yè)務(wù)部門自行建設(shè),網(wǎng)站代碼的來源比較復(fù)雜,同一套代碼可能存在多個(gè)版本,需要多個(gè)平臺(tái)去支撐這些代碼的運(yùn)行。
2)占用大量服務(wù)器資源,安全隱患大、網(wǎng)站管理難度高。網(wǎng)站存在的大量代碼類型和運(yùn)行平臺(tái)環(huán)境,需要占用大量的服務(wù)器資源。混亂的代碼帶來了巨大的安全隱患,網(wǎng)站易受攻擊。
3)網(wǎng)站之間信息難以共享,形成“信息孤島”。各網(wǎng)站之間的信息互相孤立,同樣的信息可能在多個(gè)站點(diǎn)之間重復(fù)傳遞,信息共享極為不便,網(wǎng)站瀏覽者無法精確定位自己所需的信息。
通過對(duì)目前高校網(wǎng)站管理現(xiàn)狀、存在問題的分析,我們可以進(jìn)一步確定云計(jì)算平臺(tái)下的網(wǎng)站群系統(tǒng)的需求,如圖1所示。
圖1 高校網(wǎng)站群系統(tǒng)需求分析
通過對(duì)圖1的分析可以發(fā)現(xiàn),用戶希望網(wǎng)站群系統(tǒng)首先能夠提供安全可靠的訪問服務(wù);希望能夠提供靈活的網(wǎng)站定制服務(wù),能夠?qū)崿F(xiàn)手機(jī)、PC、筆記本電腦、平板電腦等多種終端設(shè)備的訪問;希望可以實(shí)現(xiàn)內(nèi)容管理與系統(tǒng)管理分離,用戶只需要進(jìn)行內(nèi)容維護(hù),而不用操心系統(tǒng)的后臺(tái)運(yùn)行情況。這些需求說明高校用戶對(duì)SaaS的需求是比較大的;用戶更希望網(wǎng)站是作為一種服務(wù)供他們使用。其次用戶希望各部門的網(wǎng)站信息實(shí)現(xiàn)共享,信息可以在站點(diǎn)之間快捷、準(zhǔn)確的傳遞;這就要求網(wǎng)站群系統(tǒng)有統(tǒng)一的開發(fā)平臺(tái),采用統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn)。另外IT管理部門希望可以提高服務(wù)器的使用率,節(jié)能減排;系統(tǒng)可以進(jìn)行統(tǒng)一管理,具備良好的擴(kuò)展性,提高系統(tǒng)的生命周期,降低系統(tǒng)投入的總成本。這些都需要從 PaaS和IaaS層面對(duì)網(wǎng)站群系統(tǒng)進(jìn)行重新設(shè)計(jì)。
在需求分析的基礎(chǔ)上,結(jié)合高校網(wǎng)站建設(shè)的特點(diǎn),利用云計(jì)算IaaS、PaaS和SaaS的優(yōu)勢及關(guān)鍵技術(shù),可以對(duì)高校云平臺(tái)下的網(wǎng)站群系統(tǒng)進(jìn)行進(jìn)一步的設(shè)計(jì)。整個(gè)系統(tǒng)的邏輯架構(gòu)如圖2所示:
下面本文依據(jù)云計(jì)算SPI模型對(duì)整個(gè)系統(tǒng)的邏輯架構(gòu)進(jìn)行詳細(xì)的分析。
SaaS層的設(shè)計(jì)需要解決如下幾個(gè)問題:統(tǒng)一的Web服務(wù)獲取、靈活的功能模塊搭配、豐富的頁面展示、嚴(yán)格的用戶訪問權(quán)限控制。
1)統(tǒng)一的Web服務(wù)。隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的爆發(fā),Web訪問的方式并不局限于PC,智能手機(jī)、平板電腦等終端設(shè)備也占據(jù)了相當(dāng)一部分的份額。網(wǎng)站群系統(tǒng)主要通過瀏覽器訪問來提供服務(wù),因此首先要解決的是各個(gè)平臺(tái)瀏覽器訪問的兼容性問題??梢圆捎肳eb標(biāo)準(zhǔn)化技術(shù),利用XHTML+CSS來完成網(wǎng)站前端設(shè)計(jì)。采用標(biāo)準(zhǔn)化技術(shù)的好處是網(wǎng)站頁面能夠在不同的終端顯示,網(wǎng)站的信息能被不同類型的訪問者正確獲取。
圖2 網(wǎng)站群系統(tǒng)邏輯架構(gòu)圖
2)功能模塊定制服務(wù)。網(wǎng)站群系統(tǒng)的面向群體主要是有建站需求的業(yè)務(wù)部門,每個(gè)部門都有自己的辦事流程和業(yè)務(wù)特色,每個(gè)子網(wǎng)站都有自己獨(dú)特的功能需求。另一方面,高校內(nèi)部可以大致劃分為行政管理部門、科研院所、后勤管理部門幾大子類,每個(gè)子類之間的業(yè)務(wù)需求在很大程度上存在重疊。因此在進(jìn)行功能模塊設(shè)計(jì)的時(shí)候,需要對(duì)高校內(nèi)部各部門的業(yè)務(wù)需求進(jìn)行分析、合并相同的業(yè)務(wù)需求進(jìn)行統(tǒng)一開發(fā),對(duì)特定的需求進(jìn)行定制開發(fā),久而久之,系統(tǒng)就擁有了一個(gè)豐富的組件庫,通過不同組件之間的搭配就能實(shí)現(xiàn)非常豐富的功能,滿足不同部門的需求。這種開發(fā)方式大大提高了整個(gè)系統(tǒng)的生命周期,每次只要投入很小的成本即可進(jìn)行開發(fā),而不必對(duì)整個(gè)系統(tǒng)進(jìn)行“傷筋動(dòng)骨”的改造。這使得整個(gè)網(wǎng)站群系統(tǒng)具備了很好的彈性和擴(kuò)展性。
3)頁面定制服務(wù)。網(wǎng)站群系統(tǒng)最基本的功能是提供 Web訪問服務(wù),每個(gè)部門既需要不同的功能實(shí)現(xiàn),也需要風(fēng)格各異的網(wǎng)站頁面呈現(xiàn)。因此可以根據(jù)不同的部門類型預(yù)先設(shè)計(jì)出不同的網(wǎng)站頁面模板,同時(shí)將頁面模板和組件模塊搭配起來,打包成一個(gè)完整的建站服務(wù)提供給每個(gè)部門使用。這樣就大大簡化了業(yè)務(wù)部門的網(wǎng)站開發(fā)工作,他們要做的就是選擇合適的模板包進(jìn)行使用。當(dāng)然,系統(tǒng)也應(yīng)該提供頁面定制的服務(wù),定制后完成后的頁面也即是一個(gè)新的模板包,可以完善到模板庫中,這是一種良性循環(huán)的開發(fā)過程。
4)訪問權(quán)限控制。良好的用戶訪問權(quán)限控制是云計(jì)算系統(tǒng)必須要實(shí)現(xiàn)的特性之一。網(wǎng)站群系統(tǒng)作為一種基本的Web服務(wù),應(yīng)該具備完善的權(quán)限控制功能。目前Web系統(tǒng)設(shè)計(jì)中比較成熟的訪問控制技術(shù)是基于角色的訪問控制技術(shù)[6](RBAC)。通過在用戶和訪問權(quán)限之間引入角色的概念,將用戶和角色聯(lián)系起來,通過對(duì)角色的授權(quán)來控制用戶對(duì)系統(tǒng)資源的訪問。另外,信息化建設(shè)程度較高的高校可以通過配合校內(nèi)的單點(diǎn)登錄系統(tǒng)(例如LDAP系統(tǒng))來實(shí)現(xiàn)網(wǎng)站群系統(tǒng)內(nèi)部的一站式登錄。通過和這類系統(tǒng)的集成,可以將網(wǎng)站的訪問權(quán)限細(xì)致到具體某一個(gè)人或者某個(gè)部門。
PaaS層主要涉及開發(fā)平臺(tái)的選擇。目前商用的中間件開發(fā)平臺(tái)很多,主流的有微軟公司的.NET框架、SUN公司的J2EE框架等等。從成本角度考慮,J2EE體系下的開源項(xiàng)目很多,JAVA語言的跨平臺(tái)移植性更好,更適合拿來做高校云計(jì)算系統(tǒng)的開發(fā)平臺(tái)。J2EE是一種利用JAVA2平臺(tái)來簡化應(yīng)用軟件開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)[7]。J2EE的核心就是 JAVA平臺(tái),其中所包含的各類組件、服務(wù)架構(gòu)和技術(shù)層次,均有共同的標(biāo)準(zhǔn)和規(guī)格,提供了良好的兼容性和跨平臺(tái)特性。
基于中間件平臺(tái)之上的是網(wǎng)站群系統(tǒng)本身的統(tǒng)一管理平臺(tái)。這個(gè)統(tǒng)一管理平臺(tái)主要實(shí)現(xiàn)網(wǎng)站群系統(tǒng)的一些后臺(tái)管理功能,例如站點(diǎn)管理子系統(tǒng)主要負(fù)責(zé)子站點(diǎn)的域名分配和空間劃分;網(wǎng)站內(nèi)容管理子系統(tǒng)主要負(fù)責(zé)網(wǎng)站群系統(tǒng)內(nèi)容和欄目的添加、修改、刪除;模板管理子系統(tǒng)負(fù)責(zé)模板的導(dǎo)入、編輯、備份;組件管理子系統(tǒng)主要負(fù)責(zé)組件的定制開發(fā)、修改和調(diào)用;日志和統(tǒng)計(jì)子系統(tǒng)記錄了網(wǎng)站群系統(tǒng)的登錄日志和訪問日志,并對(duì)日志進(jìn)行初步的分析,生成一系列圖表來輔助網(wǎng)站管理員進(jìn)行管理。另外性能監(jiān)控子系統(tǒng)能夠?qū)W(wǎng)站群系統(tǒng)的性能、響應(yīng)速度、可用性進(jìn)行一系列的監(jiān)控,安全訪問子系統(tǒng)能夠紀(jì)錄惡意訪問請(qǐng)求,對(duì)SQL注入、拒絕服務(wù)攻擊(DOS攻擊)等黑客行為進(jìn)行記錄,同時(shí)阻斷相應(yīng)的攻擊行為。
網(wǎng)站群統(tǒng)一管理平臺(tái)本身也是一個(gè)開放的PaaS開發(fā)平臺(tái)。管理平臺(tái)自身遵循J2EE的技術(shù)規(guī)范和標(biāo)準(zhǔn),模板庫、組件庫的API接口也對(duì)外開放,可以很方便的對(duì)網(wǎng)站群自身的功能進(jìn)行二次開發(fā),豐富網(wǎng)站群系統(tǒng)的功能,這也是符合云計(jì)算彈性平臺(tái)的要求的。
云計(jì)算SPI三層模型中,IaaS層的技術(shù)實(shí)現(xiàn)是最成熟的,通過虛擬化[8]技術(shù)實(shí)現(xiàn)了硬件資源的統(tǒng)一管理和調(diào)配,云計(jì)算系統(tǒng)特有的動(dòng)態(tài)資源分配、按需自助服務(wù)、快速彈性服務(wù)等關(guān)鍵功能在IaaS架構(gòu)中得到了很好的體現(xiàn)。網(wǎng)站群系統(tǒng)的IaaS層架構(gòu)主要涉及分布式數(shù)據(jù)庫設(shè)計(jì)和分布式Web服務(wù)器部署。
1)分布式數(shù)據(jù)庫設(shè)計(jì)。網(wǎng)站群系統(tǒng)作為高校信息發(fā)布的主要平臺(tái),其發(fā)布的信息類型主要分為文本類數(shù)據(jù)和圖片視頻數(shù)據(jù),相應(yīng)的數(shù)據(jù)庫類型有關(guān)系型數(shù)據(jù)庫和文件數(shù)據(jù)庫。關(guān)系型數(shù)據(jù)庫最常見,典型的關(guān)系型數(shù)據(jù)庫有 Oracle、MySQL、PostgreSQL、SQLServer等,這些數(shù)據(jù)庫均有比較成熟的分布式解決方案,例如Oracle數(shù)據(jù)庫通過RAC集群方式可以實(shí)現(xiàn)兩個(gè)以上節(jié)點(diǎn)的分布式數(shù)據(jù)庫的部署,圖片視頻數(shù)據(jù)可以通過NFS共享服務(wù)實(shí)現(xiàn)多臺(tái)服務(wù)器的并發(fā)讀寫。
2)分布式Web服務(wù)器部署。利用負(fù)載均衡技術(shù)或者動(dòng)態(tài)緩存技術(shù),將外部訪問請(qǐng)求均勻分?jǐn)偟饺舾膳_(tái)Web服務(wù)器中,可以將多臺(tái)Web服務(wù)器(節(jié)點(diǎn))的性能整合起來,一個(gè)或幾個(gè)節(jié)點(diǎn)失效并不會(huì)造成整個(gè)網(wǎng)站對(duì)外服務(wù)的癱瘓。通過虛擬化資源池的動(dòng)態(tài)分配,當(dāng)外部訪問過于頻繁時(shí),可以自動(dòng)將更多的計(jì)算資源加入到資源池中,大大提高了硬件資源的利用率和彈性。
隨著云計(jì)算技術(shù)的不斷發(fā)展,云計(jì)算的應(yīng)用不斷深入到IT行業(yè)的各個(gè)領(lǐng)域中。隨著私有云、社區(qū)云概念的興起,高校內(nèi)部越來越多的系統(tǒng)也會(huì)基于云計(jì)算理念進(jìn)行開發(fā)。本文僅僅從云計(jì)算SPI三層模型的角度對(duì)網(wǎng)站群系統(tǒng)的設(shè)計(jì)框架進(jìn)行了初步的探討,更詳細(xì)的設(shè)計(jì)方法還需要進(jìn)一步研究。同時(shí)云計(jì)算技術(shù)不單單改變了高校網(wǎng)站設(shè)計(jì)的思路,也在一定程度上改變了高校網(wǎng)站管理的模式和方法,云計(jì)算平臺(tái)能否解決傳統(tǒng)高校網(wǎng)站管理的頑疾,這也需要做更加深入的研究。
[1]山谷網(wǎng)絡(luò).網(wǎng)站群技術(shù)的發(fā)展歷程、存在問題和解決方案[EB/OL].(2012-04-13)[2014-05-12]http://baike.baidu.com/view/1072376.htm.
[2]Peter,M.&Timothy,G.The NIST Definition of Cloud Computing[DB/OL].(2011-09-01)[2014-05-12]http://rszt.pmmk.pte.hu/uploads/8f/23/8f23a309550830fa62395163ecec6fd3/nist_SP800-145.pdf.
[3]周洪波.云計(jì)算技術(shù)、應(yīng)用、標(biāo)準(zhǔn)和商業(yè)模式[M].北京:電子工業(yè)出版社,2011:140-142.
[4]郭建中,郭虎.關(guān)于如何建好政府網(wǎng)站群的思考[J].電子政務(wù),2008(3):47-50.
[5]沈俊.高校網(wǎng)站群的建設(shè)和方案淺談[J].價(jià)值工程,2010,29(5):200-201.
[6]劉小園.Web信息系統(tǒng)中基于RBAC訪問控制機(jī)制[J].信息與電腦,2011(9):111-112.
[7]蔡明,陳永運(yùn).J2EE架構(gòu)的研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2004,21(1):42-43,128.
[8]黎玉橋.服務(wù)器虛擬化架構(gòu)研究[D].廣州:中山大學(xué),2009.