任 偉, 王定銀, 羅 萍
(成都醫(yī)學(xué)院 人文信息管理學(xué)院, 四川 成都 610500)
隨著Web 技術(shù)的發(fā)展和高校信息化水平的提高,同時(shí)處于大數(shù)據(jù)時(shí)代,對(duì)于高校網(wǎng)站建設(shè)的規(guī)模日益擴(kuò)大。 從學(xué)校門戶網(wǎng)站到各系部、行政機(jī)構(gòu)網(wǎng)站,它們已經(jīng)成為了學(xué)校及各部門對(duì)外宣傳、提供公共服務(wù),開(kāi)展教學(xué)管理的重要平臺(tái)。然而,網(wǎng)站數(shù)量的增加,站點(diǎn)分布的零亂,信息發(fā)布的監(jiān)管缺失等一系列的問(wèn)題也給網(wǎng)站管理者帶來(lái)了相當(dāng)大的管理難度[1]。 因此,我們采用的核心技術(shù)是基于國(guó)外最著名的開(kāi)源軟件Drupal 進(jìn)行站點(diǎn)建設(shè), 同時(shí)采用第三方開(kāi)源模塊hostmaster 進(jìn)行Drupal 站點(diǎn)管理平臺(tái)搭建。
Drupal 軟件是世界上最先進(jìn)的開(kāi)源內(nèi)容管理系統(tǒng)之一,由于Drupal 本身功能強(qiáng)大,還被稱作網(wǎng)站操作系統(tǒng)。 Drupal有2 萬(wàn)多個(gè)模塊,2 萬(wàn)多個(gè)活躍開(kāi)發(fā)者。 相比WordPress、PHP-Nuke、Drupal、Joomla、Discuz!等CMS,Drupal 在信息的創(chuàng)建、組織、管理、協(xié)作、互聯(lián)、設(shè)計(jì)、展示及可擴(kuò)展方面具有無(wú)與倫比的優(yōu)勢(shì)。 各行各業(yè)的頂尖用戶都在用Drupal。
國(guó)內(nèi)外知名圖書館都在使用Drupal 構(gòu)建自己的站點(diǎn)。國(guó)內(nèi)有清華大學(xué)圖書館、北京大學(xué)圖書館、臺(tái)灣大學(xué)圖書館、澳門大學(xué)圖書館以及安徽國(guó)防科技職業(yè)學(xué)院;國(guó)外則有哈佛大學(xué)圖書館、耶魯大學(xué)圖書館、普林斯頓大學(xué)圖書館、康奈爾大學(xué)圖書館、斯坦福大學(xué)圖書館、紐約公共圖書館、澳大利亞圖書館等等。 利用Drupal,圖情單位可以很方便的構(gòu)建圖書館門戶網(wǎng)站(含移動(dòng)開(kāi)發(fā)應(yīng)用)、學(xué)術(shù)主題博客、學(xué)位論文管理、圖書館MOOC、開(kāi)放學(xué)術(shù)社區(qū)、機(jī)構(gòu)倉(cāng)儲(chǔ)等信息系統(tǒng),并可以進(jìn)行大數(shù)據(jù)、語(yǔ)義網(wǎng)等方面的研究。
2013 年已經(jīng)在清華大學(xué)圖書館、上海圖書館、中國(guó)科學(xué)技術(shù)信息研究所、云南大學(xué)圖書館等成功舉辦6 次Drupal 培訓(xùn),200 多位圖情界老師參加培訓(xùn),取得良好的效果。 圖情界基于Drupal 的一些新網(wǎng)站、新應(yīng)用不斷上線。
校園網(wǎng)的網(wǎng)站數(shù)量繁多,為了便于管理和維護(hù),從來(lái)展開(kāi)對(duì)國(guó)內(nèi)外的站群管理系統(tǒng)進(jìn)行研究。 考慮到平臺(tái)的可擴(kuò)展性和持久性,采用了美國(guó)主流的CMS—Drupal 為基礎(chǔ)展開(kāi)研究和分析并設(shè)計(jì)。 所有站點(diǎn)都是基于Drupal 進(jìn)行建站,然后再通過(guò)平臺(tái)對(duì)這些Drupal 站點(diǎn)進(jìn)行管理和維護(hù)。
平臺(tái)運(yùn)行環(huán)境可以參考hostmaster 社區(qū)[2],軟件和硬件的詳細(xì)分別如表1 和表2 所示。
網(wǎng)絡(luò)環(huán)境:采用校園局域網(wǎng)接入,保證帶寬100 Mbps 或以上;對(duì)外公網(wǎng)服務(wù),保證出入帶寬5 Mbps。
表1 硬件配置要求Tab. 1 Hardware configuration requirements
表2 軟件配置要求Table. 2 Software configuration requirements
平臺(tái)架構(gòu)設(shè)計(jì)易擴(kuò)展、靈活、牢固、方便[3]。以Drupal 作為內(nèi)容管理系統(tǒng),具有良好架構(gòu)設(shè)計(jì)。 PHP 語(yǔ)言早期版本并不支持面向?qū)ο缶幊?,Drupal 在PHP 4 語(yǔ)言基礎(chǔ)上構(gòu)建的,目前已經(jīng)更新到PHP 5 及以上, 功能實(shí)現(xiàn)通過(guò)Drupal 核心的api 里的hook 函數(shù)及部分核心定義的函數(shù)實(shí)現(xiàn)[4],同時(shí)目前也支持自定義函數(shù)(一般不建議修改核心部分)。 Drupal 前后端相互獨(dú)立但又有一定的耦合性,這也是Drupal 強(qiáng)大和靈活的原因之一。 平臺(tái)設(shè)計(jì)時(shí)充分展現(xiàn)了面向?qū)ο蟮乃枷脒M(jìn)行構(gòu)建。 該平臺(tái)可以輕松實(shí)現(xiàn)Drupal 站點(diǎn)的管理、遷移(導(dǎo)入和導(dǎo)出站點(diǎn))、遠(yuǎn)程備份等功能,通過(guò)該平臺(tái)可以輕松快捷地創(chuàng)建Drupal 站點(diǎn),充分體現(xiàn)了Drupal 里面的node 思想,將每個(gè)站點(diǎn)當(dāng)成一個(gè)節(jié)點(diǎn),同時(shí)也方便控制。 系統(tǒng)平臺(tái)架構(gòu)和平臺(tái)實(shí)體關(guān)系圖如圖1、圖2 所示。
平臺(tái)結(jié)構(gòu)說(shuō)明:從層次上劃分,分為傳統(tǒng)的三層結(jié)構(gòu):表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層[5]。
圖1 平臺(tái)架構(gòu)圖Fig. 1 Platform architecture diagram
圖2 Hostmaster 平臺(tái)實(shí)體關(guān)系圖Fig. 2 Hostmaster platform entity relationship diagram
表現(xiàn)層針對(duì)每個(gè)站點(diǎn)的前端,直接呈現(xiàn)給用戶的信息并進(jìn)行交互, 前端界面與數(shù)據(jù)分離, 分為主題引擎(TemplatePhp)和主題(Theme)兩個(gè)層次。 Drupal 架構(gòu)通過(guò)表現(xiàn)層對(duì)界面輸出進(jìn)行定制或者開(kāi)發(fā)。
業(yè)務(wù)邏輯層基于不同業(yè)務(wù)領(lǐng)域?qū)ο鄳?yīng)數(shù)據(jù)的業(yè)務(wù)邏輯處理流程,是架構(gòu)的核心部分,包括核心庫(kù)和第三方模塊,以及自定義模塊。 核心庫(kù)包含系統(tǒng)引導(dǎo)指令(bootstrap) 和常用公共支持庫(kù), 在功能表現(xiàn)上為核心庫(kù)提供了公共框架的功能,使模塊之間能高效靈活地協(xié)調(diào)工作。
數(shù)據(jù)層負(fù)責(zé)處理數(shù)據(jù),是業(yè)務(wù)領(lǐng)域在具體數(shù)據(jù)庫(kù)中的具體實(shí)現(xiàn)。 數(shù)據(jù)層通過(guò)與業(yè)務(wù)邏輯層抽象數(shù)據(jù)接口,支持多種類型的關(guān)系型數(shù)據(jù)庫(kù)。 內(nèi)置支持3 種數(shù)據(jù)庫(kù): mysql、pgsql和sqlite。 根據(jù)實(shí)際需求,如果存儲(chǔ)數(shù)據(jù)采用其他類型的數(shù)據(jù)庫(kù),比如SQL SERVER、Oracle database,可通過(guò)對(duì)持久層的擴(kuò)展而實(shí)現(xiàn),不必對(duì)已有的核心代碼進(jìn)行大量修改[6]。
Drupal 里面涉及的鉤子大概分類3 類:module_invoke_all調(diào)用的鉤子,module_invoke 調(diào)用的鉤子, 以及主題函數(shù)也被稱之為主題鉤子。
Drupal 的模塊系統(tǒng)是基于hooks (又稱鉤子) 機(jī)制運(yùn)行的。一個(gè)鉤子是名為foo_bar()這樣一個(gè)PHP[7]函數(shù),其中“foo”是模塊的名稱(其文件名是foo.module),“bar”是鉤子的名稱。每個(gè)鉤子都有一個(gè)定義的參數(shù)設(shè)置和指定的結(jié)果類型。
為了擴(kuò)展Drupal 的功能,一個(gè)模塊需要簡(jiǎn)單地實(shí)現(xiàn)一個(gè)鉤子。 當(dāng)Drupal 希望允許干預(yù)模塊,它決定了哪些模塊實(shí)現(xiàn)一個(gè)鉤子,調(diào)用所有啟用的模塊的鉤子以實(shí)現(xiàn)它。
可用的鉤子去實(shí)現(xiàn)功能在開(kāi)發(fā)者鉤子部分的文檔有所解釋。 字符串“鉤子”被用作占位符的鉤子定義模塊的名字。例如,如果模塊文件稱為example.module,然后hook_help()通過(guò)該模塊實(shí)現(xiàn)將被定義為example_help()。
包含的示例函數(shù)不是Drupal 核心的一部分,它們只是你可以修改的模型。 當(dāng)運(yùn)行Drupal 的時(shí)候,僅僅是模塊中的鉤子執(zhí)行。 Drupal 8 之后hooks 機(jī)制會(huì)逐漸淘汰了,現(xiàn)在處于轉(zhuǎn)型期。
每個(gè)Drupal 站點(diǎn)被所屬平臺(tái)管理, 而每個(gè)平臺(tái)又被Server 管理,所有的Servers 被Hostmaster 管理。 從某種角度也可以說(shuō),Hostmaster 管理所有的東西。
平臺(tái)管理員下面,根據(jù)權(quán)限不同分類,默認(rèn)由匿名用戶、注冊(cè)用戶、Aegir 賬戶管理員、Aegir 管理員、Aegir 客戶端管理員(通過(guò)samba 遠(yuǎn)程管理平臺(tái))五類角色組成。 平臺(tái)管理可以根據(jù)實(shí)際需求添加另外的角色并賦予權(quán)限,同時(shí)可以在每個(gè)角色類別下面添加相應(yīng)的成員。
平臺(tái)管理員登陸后,會(huì)進(jìn)入如圖3 所示的界面。 在這個(gè)界面下,平臺(tái)管理員擁有該平臺(tái)所有權(quán)限。 頭部由功能菜單、logo、平臺(tái)名字組成(logo 和平臺(tái)名字可根據(jù)需要進(jìn)行更改)。下面內(nèi)容部分由站點(diǎn)信息、平臺(tái)信息、數(shù)據(jù)庫(kù)服務(wù)器信息以及客戶端信息的操作等組成。
圖3 平臺(tái)登錄界面Fig. 3 Platform login interface
通過(guò)進(jìn)一步對(duì)平臺(tái)嘗試, 實(shí)現(xiàn)了基于Drupal 站點(diǎn)管理平臺(tái)的關(guān)鍵技術(shù),站點(diǎn)管理平臺(tái)上線后對(duì)日志進(jìn)行分析,發(fā)現(xiàn)平臺(tái)曾遭受不同程度攻擊以及信息安全問(wèn)題, 系統(tǒng)具有良好的健壯性。 該平臺(tái)的實(shí)施,也極大地調(diào)動(dòng)了學(xué)生的積極性,不僅鍛煉了學(xué)生的實(shí)踐能力,同時(shí)也了解和學(xué)習(xí)了國(guó)外的前沿技術(shù)。
[1] 肖海鵬. 站群系統(tǒng)在高校網(wǎng)站建設(shè)中的應(yīng)用[J]. 福建電腦,2011,27(10):151,116.
XIAO Hai-peng. Station group system in the building of the university’s website[J]. Fujian Computer,2011,27(10):151,116.
[2] hostmaster社區(qū)[EB/OL]http://community.aegirproject.org/.
[3] 朱烜璋. 基于CMS的高校網(wǎng)站群安全體系研究[J]. 信息安全與技術(shù),2011(8):90-92.
ZHU Xuan-zhang. Studies of security system about university site group based on CMS [J]. Information Security and Technology,2011(8):90-92.
[4] 黃存東,盛安元,張前進(jìn). 基于Drupal的校園網(wǎng)站群系統(tǒng)分析與設(shè)計(jì)[J]. 長(zhǎng)沙大學(xué)學(xué)報(bào),2012,26(2):54-57.
HUANG Cun-dong,SHENG An-yuan,ZHANG Qian-jin. Campus website group system analysis and design based on Drupal[J]. Journal of Changsha University,2012,26(2):54-57.
[5] 高大力. 關(guān)于高校二級(jí)網(wǎng)站建設(shè)、 管理的探索與實(shí)踐[J].西北工業(yè)大學(xué)學(xué)報(bào),2004,24(2):82-84.
GAO Da-li. Research and practice of construction and management for sub-websites in universities [J]. Journal of Northwestern Polytechnical University,2004,24(2):82-84.
[6] 陳立, 李蘭友. 基于LAMP的高校網(wǎng)站集群建設(shè)與管理研究[J]. 南京工程學(xué)院學(xué)報(bào),2011,9(1):36-40.
CHEN Li,LI Lan-you. Study on website group construction and management at colleges based on LAMP [J]. Journal of Nanjing Institute of Technology,2011,9(1):36-40.
[7] 張歡. 基于Web的AIS/北斗導(dǎo)航系統(tǒng)研究[J]. 電子設(shè)計(jì)工程,2013(22):8-10.
ZHANG Huan. Research on AIS/Compass navigation system based on Web[J]. Electronic Design Engineering,2013(22):8-10.