黃存東,盛安元,張前進(jìn)
(安徽國(guó)防科技職業(yè)學(xué)院信息工程系,安徽六安 237011)
基于DRUPAL的校園網(wǎng)站群系統(tǒng)分析與設(shè)計(jì)
黃存東,盛安元,張前進(jìn)
(安徽國(guó)防科技職業(yè)學(xué)院信息工程系,安徽六安 237011)
網(wǎng)站在高校信息化進(jìn)程中發(fā)揮著重要作用,高校利用自身資源和技術(shù)優(yōu)勢(shì),開(kāi)發(fā)基于Drupal的校園網(wǎng)站群系統(tǒng),為教師積累了工程項(xiàng)目的經(jīng)驗(yàn),也為相關(guān)專業(yè)學(xué)生綜合實(shí)訓(xùn)提供了案例.主要針對(duì)該項(xiàng)目在實(shí)際開(kāi)發(fā)過(guò)程中的系統(tǒng)分析與系統(tǒng)設(shè)計(jì)環(huán)節(jié)進(jìn)行討論,提出了網(wǎng)站群數(shù)據(jù)庫(kù)設(shè)計(jì)及站點(diǎn)目錄規(guī)劃方法.
Drupal;網(wǎng)站群;內(nèi)容管理系統(tǒng);節(jié)點(diǎn);分類
信息技術(shù)快速發(fā)展,加速我國(guó)高校信息化、網(wǎng)絡(luò)化的發(fā)展步伐,以數(shù)字化為核心的信息技術(shù)在教學(xué)、科研、生產(chǎn)和管理等領(lǐng)域的應(yīng)用越來(lái)越廣泛.校園網(wǎng)站作為高校信息化組成部分,在高校信息化進(jìn)程中發(fā)揮著重要作用[1].伴隨高校網(wǎng)站的建設(shè)和發(fā)展,各種問(wèn)題陸續(xù)顯現(xiàn)[2]:一是網(wǎng)站信息安全問(wèn)題嚴(yán)重,并呈上升趨勢(shì);二是信息更新不及時(shí),時(shí)效性差;三是信息孤島情況凸顯,缺乏有效的共享.
面對(duì)上述問(wèn)題,重新開(kāi)發(fā)學(xué)院網(wǎng)站勢(shì)在必行.討論的焦點(diǎn)問(wèn)題是項(xiàng)目外包還是自主開(kāi)發(fā).從技術(shù)成熟度、項(xiàng)目工期、風(fēng)險(xiǎn)等方面,項(xiàng)目外包具有一定的優(yōu)勢(shì);從鍛煉師資隊(duì)伍、工學(xué)結(jié)合、可持續(xù)發(fā)展等角度,內(nèi)部開(kāi)發(fā)是更好的選擇,但項(xiàng)目風(fēng)險(xiǎn)增加.學(xué)院軟件技術(shù)教學(xué)團(tuán)隊(duì)勇敢地承擔(dān)了校園網(wǎng)站群項(xiàng)目的開(kāi)發(fā)任務(wù).
任何工程項(xiàng)目都具備一定的風(fēng)險(xiǎn),而軟件項(xiàng)目更是具有高風(fēng)險(xiǎn)特征,做好前期的項(xiàng)目規(guī)劃,是項(xiàng)目成功的重要保證.經(jīng)過(guò)論證,我們決定采用開(kāi)源產(chǎn)品,依托開(kāi)源社區(qū)的支持,組織自身力量進(jìn)行開(kāi)發(fā),但這種形式風(fēng)險(xiǎn)高,須做好合理的項(xiàng)目組織和管理[3],我們通過(guò)以下幾個(gè)方面解決問(wèn)題:
項(xiàng)目組織形式:由于項(xiàng)目成員是專任教師,無(wú)法全職參與項(xiàng)目,項(xiàng)目組織采用矩陣型組織結(jié)構(gòu).項(xiàng)目經(jīng)理對(duì)項(xiàng)目的范圍、進(jìn)度、成本、質(zhì)量總體負(fù)責(zé),下設(shè)業(yè)務(wù)組、研發(fā)組和質(zhì)量保證組,明確各自的職責(zé)與工作范圍.
項(xiàng)目計(jì)劃管理:在風(fēng)險(xiǎn)分析的基礎(chǔ)上,制定切實(shí)可行的項(xiàng)目計(jì)劃,合理分配資源,調(diào)整優(yōu)化項(xiàng)目任務(wù)的進(jìn)度和相互間銜接關(guān)系.
需求分析是項(xiàng)目開(kāi)發(fā)中最為重要的一個(gè)環(huán)節(jié),統(tǒng)計(jì)表明,失敗的項(xiàng)目大多數(shù)是因?yàn)樾枨髥?wèn)題[4].本項(xiàng)目團(tuán)隊(duì)開(kāi)發(fā)人員對(duì)自身業(yè)務(wù)有較好理解,與業(yè)務(wù)人員較容易溝通,這是自主開(kāi)發(fā)優(yōu)勢(shì)之一.需求分析主要涉及系統(tǒng)用戶、界面需求、功能需求與非功能需求,如何結(jié)合Drupal平臺(tái)特點(diǎn)去滿足需求,是分析設(shè)計(jì)的重點(diǎn).
1.2.1 系統(tǒng)用戶
校園網(wǎng)站內(nèi)容管理系統(tǒng)(Content Management system,CMS)用戶范圍較廣,經(jīng)過(guò)分析抽象,系統(tǒng)用戶之間的關(guān)系如圖1所示.

圖1 系統(tǒng)用戶層次結(jié)構(gòu)
1.2.2 網(wǎng)站界面與欄目
在網(wǎng)站項(xiàng)目中,界面需求是較為突出的關(guān)鍵問(wèn)題,網(wǎng)頁(yè)表現(xiàn)形式的豐富性,使得每個(gè)用戶對(duì)界面布局、界面元素、色彩的搭配都有自身偏好,界面美工組在需求分析組和業(yè)務(wù)組的配合下,設(shè)計(jì)幾套不同風(fēng)格的網(wǎng)頁(yè)模板,通過(guò)會(huì)議的形式,征集各個(gè)層面的意見(jiàn).在反饋的基礎(chǔ)上,重新設(shè)計(jì)和修改,經(jīng)過(guò)不斷反復(fù),最終確定了界面布局及風(fēng)格.
本項(xiàng)目網(wǎng)站數(shù)量較多,包括主網(wǎng)站、部門網(wǎng)站和專題網(wǎng)站等.不同的網(wǎng)站欄目之間,往往有相互的聯(lián)系,不但要分析內(nèi)容的生產(chǎn)、管理及發(fā)布,而且要對(duì)內(nèi)容的分類及層次結(jié)構(gòu)進(jìn)行分類整理,不斷優(yōu)化形成合理結(jié)構(gòu).
在系部網(wǎng)站,每個(gè)系部都有“專業(yè)設(shè)置”這個(gè)欄目,介紹本系的專業(yè)設(shè)置情況,經(jīng)審核發(fā)布后,成為學(xué)院“專業(yè)設(shè)置”欄目的子集.其他的網(wǎng)站如招生信息網(wǎng)、就業(yè)信息網(wǎng)等,需要對(duì)學(xué)院的設(shè)置專業(yè)進(jìn)行介紹,這些站點(diǎn)通過(guò)匯總系部發(fā)布的專業(yè)設(shè)置,成為網(wǎng)站“專業(yè)設(shè)置”欄目,瀏覽時(shí)按系部進(jìn)行分類.通過(guò)這種分類與共享機(jī)制,解決了信息發(fā)布的單入口問(wèn)題,避免重復(fù)發(fā)布,保證了信息的一致性.同時(shí)也保障了發(fā)布信息的實(shí)時(shí)性,一旦系部網(wǎng)站對(duì)專業(yè)設(shè)置內(nèi)容進(jìn)行修改,共享該內(nèi)容的網(wǎng)站立即得以更新.
1.2.3 功能需求
本項(xiàng)目所涉及的功能需求主要有內(nèi)容管理、站群管理、用戶管理、日志管理等.Drupal作為一個(gè)開(kāi)源內(nèi)容管理系統(tǒng),本身已經(jīng)具備大部分功能,功能需求分析的主要目的就是比較功能的差異,在平臺(tái)的基礎(chǔ)上,進(jìn)行定制或二次開(kāi)發(fā).
下面列出一些主要的功能需求:
(1)站群管理.在統(tǒng)一的平臺(tái)下,能快速添加站點(diǎn),新增站點(diǎn)應(yīng)具有的最基本功能,功能擴(kuò)展方便.站點(diǎn)之間權(quán)限、流程、資源信息互相共享與協(xié)同,通過(guò)Portal實(shí)現(xiàn)用戶單點(diǎn)登錄.
(2)內(nèi)容管理.內(nèi)容管理包括內(nèi)容的創(chuàng)建、審核發(fā)布、撤銷等,發(fā)布時(shí)可選擇是否置頂或推薦到首頁(yè).在網(wǎng)站群中,共享內(nèi)容在站點(diǎn)發(fā)布后,其他共享該內(nèi)容的站點(diǎn)立即得以更新.網(wǎng)站管理員可通過(guò)內(nèi)容發(fā)布狀態(tài)、內(nèi)容類型、內(nèi)容層次結(jié)構(gòu)等多種方式查詢內(nèi)容,能對(duì)內(nèi)容進(jìn)行批量操作,包括發(fā)布、置頂、刪除、撤銷等.內(nèi)容類型可以自定義,內(nèi)容的格式可以包括文本、圖片、視頻等.
(3)用戶管理.基于角色的權(quán)限管理,按角色、部門分配用戶.用戶維護(hù)包括添加、修改用戶,可啟用或禁用用戶賬號(hào).角色及部門維護(hù)包括添加、刪除、修改角色及部門.權(quán)限分配通過(guò)角色細(xì)化到功能模塊和內(nèi)容類型.能通過(guò)角色、權(quán)限、用戶狀態(tài)多種條件組合,快速定位用戶.對(duì)多個(gè)用戶批量操作,包括啟用或禁用用戶賬號(hào),分配用戶角色.具備用戶密碼強(qiáng)度功能,限制錯(cuò)誤登錄次數(shù).用戶可修改自己密碼,也可通過(guò)郵箱找回密碼.
(4)日志管理.記錄用戶登錄、日常操作、越權(quán)操作、錯(cuò)誤操作、調(diào)試等信息,并按事件嚴(yán)重程度進(jìn)行分級(jí),包括緊急事件、錯(cuò)誤、警告、注意、一般信息、調(diào)試信息等,以備查詢.按時(shí)段、操作對(duì)象、操作動(dòng)作等多種方式查詢?nèi)罩?系統(tǒng)管理員可以刪除、清空兩天前的日志,兩天內(nèi)的日志,任何人都不允許刪除.這樣在發(fā)現(xiàn)問(wèn)題后,日志可提供線索.日志能備份,自動(dòng)刪除超期日志,超期時(shí)長(zhǎng)可設(shè)置.
1.2.4 非功能性需求
(1)系統(tǒng)環(huán)境約束.系統(tǒng)運(yùn)行的操作系統(tǒng)為Windows,Web服務(wù)器為Apache,數(shù)據(jù)庫(kù)為Mysql,系統(tǒng)采用構(gòu)件化框架擴(kuò)展靈活.
(2)性能要求.網(wǎng)站性能受網(wǎng)絡(luò)狀況、并發(fā)用戶、訪問(wèn)流量諸多因素影響,在網(wǎng)絡(luò)狀況良好的情況下,平均頁(yè)面響應(yīng)時(shí)間小于4秒,能支持500個(gè)并發(fā)連接.
(3)安全性及可靠性要求.充分保證系統(tǒng)安全,系統(tǒng)漏洞能及時(shí)通過(guò)補(bǔ)丁包進(jìn)行修復(fù),僅開(kāi)放必須的網(wǎng)絡(luò)服務(wù)端口號(hào).確保用戶在授權(quán)的范圍內(nèi)進(jìn)行操作,對(duì)用戶的操作,日志系統(tǒng)應(yīng)能詳細(xì)記錄.系統(tǒng)應(yīng)具備良好的容災(zāi)、容錯(cuò)機(jī)制,完善的備份和恢復(fù)策略,當(dāng)主服務(wù)器出現(xiàn)故障后,能快速切換到備用服務(wù)器上,保證網(wǎng)站服務(wù)質(zhì)量.
(4)易用性要求.系統(tǒng)應(yīng)具備良好的可操作性和易用性,支持鼠標(biāo)拖拽操作,具有良好的用戶體驗(yàn).
系統(tǒng)架構(gòu)設(shè)計(jì)應(yīng)具備良好的可擴(kuò)展性、易維護(hù)性,能靈活地適應(yīng)各種變化[5].Drupal平臺(tái)作為內(nèi)容管理系統(tǒng),具有良好架構(gòu)設(shè)計(jì).由于PHP語(yǔ)言早期版本不支持面向?qū)ο螅珼rupal是在PHP4語(yǔ)言基礎(chǔ)上構(gòu)建的,功能實(shí)現(xiàn)通過(guò)函數(shù)完成.但設(shè)計(jì)時(shí)充分吸收了面向?qū)ο蟮乃枷耄到y(tǒng)架構(gòu)如圖2所示.

圖2 系統(tǒng)架構(gòu)圖
從層次上劃分,分成典型的三層結(jié)構(gòu):數(shù)據(jù)持久層、業(yè)務(wù)邏輯層和表現(xiàn)層.
數(shù)據(jù)持久層處理數(shù)據(jù)的持久化,是業(yè)務(wù)領(lǐng)域在具體數(shù)據(jù)庫(kù)中的實(shí)現(xiàn).持久層通過(guò)與業(yè)務(wù)邏輯層抽象數(shù)據(jù)接口,支持多種類型的關(guān)系型數(shù)據(jù)庫(kù).內(nèi)置支持的數(shù)據(jù)庫(kù)有Mysql及PostgreSQL,如果存儲(chǔ)采用其他類型的數(shù)據(jù)庫(kù),比如Oracle、SQL SERVER,可通過(guò)對(duì)持久層的擴(kuò)展而實(shí)現(xiàn),不必對(duì)已有的代碼進(jìn)行大幅修改[6].
業(yè)務(wù)邏輯層基于業(yè)務(wù)領(lǐng)域?qū)?shù)據(jù)的業(yè)務(wù)邏輯進(jìn)行處理,是架構(gòu)的核心部分,包括核心庫(kù)和模塊組.核心庫(kù)包含系統(tǒng)引導(dǎo)指令(Bootstrap)和常用公共支持庫(kù),在功能表現(xiàn)上,核心庫(kù)提供了公共框架的功能,例如鉤子框架、抽象數(shù)據(jù)接口、多語(yǔ)言支持等,使模塊之間能高效靈活地協(xié)調(diào)工作.
表現(xiàn)層控制界面呈現(xiàn),實(shí)現(xiàn)界面與數(shù)據(jù)分離,包含主題引擎和主題兩個(gè)層次.Drupal架構(gòu)通過(guò)表現(xiàn)層對(duì)界面輸出進(jìn)行定制.
Drupal社區(qū)資源豐富,有大量的模塊、主題及文檔.常規(guī)的WEB應(yīng)用通過(guò)已有的資源,便能滿足大部分的應(yīng)用需求.對(duì)于一些特定的應(yīng)用,在現(xiàn)有模塊或主題不能滿足的情況下,則進(jìn)行模塊開(kāi)發(fā)或主題開(kāi)發(fā)與定制.開(kāi)發(fā)模塊必須深入研究框架,包括鉤子機(jī)制、應(yīng)用程序編程接口及系統(tǒng)數(shù)據(jù)庫(kù)結(jié)構(gòu)等.下面以節(jié)點(diǎn)與分類系統(tǒng)為例,對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行分析.相關(guān)表如圖3所示.

圖3 節(jié)點(diǎn)及分類ER圖
節(jié)點(diǎn)(node)與分類(taxonomy)構(gòu)成Drupal內(nèi)容管理的基礎(chǔ).節(jié)點(diǎn)可以理解為新聞、文章等,是被管理的內(nèi)容.分類對(duì)管理內(nèi)容進(jìn)行分類組織,通過(guò)分類模塊(Taxonomy module),支持多種分類方式,使內(nèi)容之間具有某種內(nèi)在聯(lián)系或?qū)哟谓Y(jié)構(gòu).
Drupal具備多站點(diǎn)的功能,一些第三方模塊具有多站點(diǎn)管理功能,如 Multisite Manager Module、Druplet、Hostmaster2等.這些模塊經(jīng)過(guò)試用,發(fā)現(xiàn)功能上與本項(xiàng)目站群需求存在較大差異,無(wú)法直接使用.
在數(shù)據(jù)庫(kù)層,規(guī)劃設(shè)計(jì)4個(gè)數(shù)據(jù)庫(kù),分別是drupal、dep、cac及 xnwj,說(shuō)明如下:
(1)drupal數(shù)據(jù)庫(kù):主站點(diǎn)數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)保存所有站點(diǎn)共享的信息,如內(nèi)容節(jié)點(diǎn)、用戶等,共享模塊對(duì)應(yīng)的表,也存放在該數(shù)據(jù)庫(kù)中.
(2)dep數(shù)據(jù)庫(kù):子站數(shù)據(jù)庫(kù),保存子站點(diǎn)的個(gè)性信息及非共享信息,如站點(diǎn)名稱、非共享模塊所對(duì)應(yīng)的表等.
(3)cac數(shù)據(jù)庫(kù):緩存數(shù)據(jù)庫(kù),Drupal具有緩存功能,緩存數(shù)據(jù)保存在相關(guān)的緩存表中,通過(guò)系統(tǒng)自動(dòng)生成,不需要備份.緩存數(shù)據(jù)單獨(dú)建庫(kù),有利于數(shù)據(jù)庫(kù)管理與系統(tǒng)備份,縮短數(shù)據(jù)備份時(shí)間.
(4)xnwj數(shù)據(jù)庫(kù):內(nèi)部站點(diǎn)數(shù)據(jù)庫(kù),由于保密等方面的要求,內(nèi)部站點(diǎn)內(nèi)容不對(duì)外公開(kāi),不與其他站點(diǎn)共享,只允許校內(nèi)用戶訪問(wèn).
站點(diǎn)目錄規(guī)劃:
(1)所有站點(diǎn)共享同一份Drupal代碼.多站點(diǎn)如果每個(gè)站點(diǎn)都有單獨(dú)的代碼,一方面占用了磁盤(pán)存儲(chǔ)空間,另外在升級(jí)維護(hù)時(shí)較麻煩,需對(duì)每個(gè)站點(diǎn)分別進(jìn)行升級(jí).共享代碼方便系統(tǒng)的升級(jí)維護(hù),主網(wǎng)站升級(jí)之后子站自動(dòng)升級(jí).
(2)sitesall目錄:存放站群共享模塊與主題,這些模塊與主題能被所有站點(diǎn)安裝啟用,模塊產(chǎn)生的表存放在主站點(diǎn)數(shù)據(jù)庫(kù)中.
(3)sitesdefault目錄:默認(rèn)站點(diǎn),定義為門戶站點(diǎn).
(4)子站目錄:位于 sites目錄下的 www.ahgf.com.cn.bwc、www.ahgf.com.cn.db 等目錄,子站目錄中可存放非共享的模塊和主題,存放在modules和themes文件夾下.非共享模塊生成的表在子站數(shù)據(jù)庫(kù)中.
每個(gè)站點(diǎn)都有站點(diǎn)配置文件setting.php,通過(guò)該文件設(shè)置后臺(tái)數(shù)據(jù)庫(kù).
通過(guò)進(jìn)一步工作,實(shí)現(xiàn)了基于Drupal網(wǎng)站群系統(tǒng)的關(guān)鍵技術(shù),網(wǎng)站上線后,對(duì)系統(tǒng)日志進(jìn)行分析發(fā)現(xiàn),盡管網(wǎng)站曾遭受不同程度攻擊,但并未出現(xiàn)信息安全問(wèn)題,系統(tǒng)具有良好的健壯性.網(wǎng)站發(fā)布的各種內(nèi)容數(shù)量已達(dá)1萬(wàn)余條,信息發(fā)布及時(shí),具有較好的時(shí)效性.網(wǎng)站界面友好,得到師生及社會(huì)的廣泛好評(píng),具有較好的交互性.更為可喜的是,在計(jì)算機(jī)專業(yè)的綜合實(shí)訓(xùn)中,該項(xiàng)目作為案例,極大地調(diào)動(dòng)了學(xué)生的積極性,達(dá)到了意想不到的教學(xué)效果.
[1]張迎,寧玉文,高東懷,等.高校網(wǎng)站信息安全威脅與對(duì)策探析[J].中國(guó)教育信息化,2010,(5):28 -31.
[2]賀宏偉.開(kāi)源軟件教育應(yīng)用管理平臺(tái)建設(shè)研究[D].上海:華東師范大學(xué)碩士學(xué)位論文,2008.
[3]彭新哲.高校網(wǎng)站群管理平臺(tái)有效整合資源[J].中國(guó)教育網(wǎng)絡(luò),2010,(7):78 -79.
[4]王爽.高校網(wǎng)站站群管理系統(tǒng)的設(shè)計(jì)[J].西安文理學(xué)院學(xué)報(bào),2011,(4):77 -79.
[5]朱烜璋.基于CMS的高校網(wǎng)站群安全體系研究[J].信息安全與技術(shù),2011,(8):90 -92.
[6]陳立,李蘭友.基于LAMP的高校網(wǎng)站集群建設(shè)與管理研究[J].南京工程學(xué)院學(xué)報(bào),2011,(1):36 -40.
TP393.18
A
1008-4681(2012)02-0054-04
2012-01-10
安徽省質(zhì)量工程(批準(zhǔn)號(hào):20101686)資助項(xiàng)目;安徽省重點(diǎn)教學(xué)研究項(xiàng)目(批準(zhǔn)號(hào):20101689).
黃存東(1969-),男,安徽六安人,安徽國(guó)防科技職業(yè)學(xué)院信息工程系副教授,碩士.研究方向:信息安全、算法設(shè)計(jì).
(責(zé)任編校:晴川)