任 偉, 王定銀, 羅 萍
(成都醫(yī)學院 人文信息管理學院, 四川 成都 610500)
隨著Web 技術(shù)的發(fā)展和高校信息化水平的提高,同時處于大數(shù)據(jù)時代,對于高校網(wǎng)站建設的規(guī)模日益擴大。 從學校門戶網(wǎng)站到各系部、行政機構(gòu)網(wǎng)站,它們已經(jīng)成為了學校及各部門對外宣傳、提供公共服務,開展教學管理的重要平臺。然而,網(wǎng)站數(shù)量的增加,站點分布的零亂,信息發(fā)布的監(jiān)管缺失等一系列的問題也給網(wǎng)站管理者帶來了相當大的管理難度[1]。 因此,我們采用的核心技術(shù)是基于國外最著名的開源軟件Drupal 進行站點建設, 同時采用第三方開源模塊hostmaster 進行Drupal 站點管理平臺搭建。
Drupal 軟件是世界上最先進的開源內(nèi)容管理系統(tǒng)之一,由于Drupal 本身功能強大,還被稱作網(wǎng)站操作系統(tǒng)。 Drupal有2 萬多個模塊,2 萬多個活躍開發(fā)者。 相比WordPress、PHP-Nuke、Drupal、Joomla、Discuz!等CMS,Drupal 在信息的創(chuàng)建、組織、管理、協(xié)作、互聯(lián)、設計、展示及可擴展方面具有無與倫比的優(yōu)勢。 各行各業(yè)的頂尖用戶都在用Drupal。
國內(nèi)外知名圖書館都在使用Drupal 構(gòu)建自己的站點。國內(nèi)有清華大學圖書館、北京大學圖書館、臺灣大學圖書館、澳門大學圖書館以及安徽國防科技職業(yè)學院;國外則有哈佛大學圖書館、耶魯大學圖書館、普林斯頓大學圖書館、康奈爾大學圖書館、斯坦福大學圖書館、紐約公共圖書館、澳大利亞圖書館等等。 利用Drupal,圖情單位可以很方便的構(gòu)建圖書館門戶網(wǎng)站(含移動開發(fā)應用)、學術(shù)主題博客、學位論文管理、圖書館MOOC、開放學術(shù)社區(qū)、機構(gòu)倉儲等信息系統(tǒng),并可以進行大數(shù)據(jù)、語義網(wǎng)等方面的研究。
2013 年已經(jīng)在清華大學圖書館、上海圖書館、中國科學技術(shù)信息研究所、云南大學圖書館等成功舉辦6 次Drupal 培訓,200 多位圖情界老師參加培訓,取得良好的效果。 圖情界基于Drupal 的一些新網(wǎng)站、新應用不斷上線。
校園網(wǎng)的網(wǎng)站數(shù)量繁多,為了便于管理和維護,從來展開對國內(nèi)外的站群管理系統(tǒng)進行研究。 考慮到平臺的可擴展性和持久性,采用了美國主流的CMS—Drupal 為基礎展開研究和分析并設計。 所有站點都是基于Drupal 進行建站,然后再通過平臺對這些Drupal 站點進行管理和維護。
平臺運行環(huán)境可以參考hostmaster 社區(qū)[2],軟件和硬件的詳細分別如表1 和表2 所示。
網(wǎng)絡環(huán)境:采用校園局域網(wǎng)接入,保證帶寬100 Mbps 或以上;對外公網(wǎng)服務,保證出入帶寬5 Mbps。

表1 硬件配置要求Tab. 1 Hardware configuration requirements

表2 軟件配置要求Table. 2 Software configuration requirements
平臺架構(gòu)設計易擴展、靈活、牢固、方便[3]。以Drupal 作為內(nèi)容管理系統(tǒng),具有良好架構(gòu)設計。 PHP 語言早期版本并不支持面向?qū)ο缶幊?,Drupal 在PHP 4 語言基礎上構(gòu)建的,目前已經(jīng)更新到PHP 5 及以上, 功能實現(xiàn)通過Drupal 核心的api 里的hook 函數(shù)及部分核心定義的函數(shù)實現(xiàn)[4],同時目前也支持自定義函數(shù)(一般不建議修改核心部分)。 Drupal 前后端相互獨立但又有一定的耦合性,這也是Drupal 強大和靈活的原因之一。 平臺設計時充分展現(xiàn)了面向?qū)ο蟮乃枷脒M行構(gòu)建。 該平臺可以輕松實現(xiàn)Drupal 站點的管理、遷移(導入和導出站點)、遠程備份等功能,通過該平臺可以輕松快捷地創(chuàng)建Drupal 站點,充分體現(xiàn)了Drupal 里面的node 思想,將每個站點當成一個節(jié)點,同時也方便控制。 系統(tǒng)平臺架構(gòu)和平臺實體關系圖如圖1、圖2 所示。
平臺結(jié)構(gòu)說明:從層次上劃分,分為傳統(tǒng)的三層結(jié)構(gòu):表現(xiàn)層、業(yè)務邏輯層和數(shù)據(jù)訪問層[5]。

圖1 平臺架構(gòu)圖Fig. 1 Platform architecture diagram

圖2 Hostmaster 平臺實體關系圖Fig. 2 Hostmaster platform entity relationship diagram
表現(xiàn)層針對每個站點的前端,直接呈現(xiàn)給用戶的信息并進行交互, 前端界面與數(shù)據(jù)分離, 分為主題引擎(TemplatePhp)和主題(Theme)兩個層次。 Drupal 架構(gòu)通過表現(xiàn)層對界面輸出進行定制或者開發(fā)。
業(yè)務邏輯層基于不同業(yè)務領域?qū)ο鄳獢?shù)據(jù)的業(yè)務邏輯處理流程,是架構(gòu)的核心部分,包括核心庫和第三方模塊,以及自定義模塊。 核心庫包含系統(tǒng)引導指令(bootstrap) 和常用公共支持庫, 在功能表現(xiàn)上為核心庫提供了公共框架的功能,使模塊之間能高效靈活地協(xié)調(diào)工作。
數(shù)據(jù)層負責處理數(shù)據(jù),是業(yè)務領域在具體數(shù)據(jù)庫中的具體實現(xiàn)。 數(shù)據(jù)層通過與業(yè)務邏輯層抽象數(shù)據(jù)接口,支持多種類型的關系型數(shù)據(jù)庫。 內(nèi)置支持3 種數(shù)據(jù)庫: mysql、pgsql和sqlite。 根據(jù)實際需求,如果存儲數(shù)據(jù)采用其他類型的數(shù)據(jù)庫,比如SQL SERVER、Oracle database,可通過對持久層的擴展而實現(xiàn),不必對已有的核心代碼進行大量修改[6]。
Drupal 里面涉及的鉤子大概分類3 類:module_invoke_all調(diào)用的鉤子,module_invoke 調(diào)用的鉤子, 以及主題函數(shù)也被稱之為主題鉤子。
Drupal 的模塊系統(tǒng)是基于hooks (又稱鉤子) 機制運行的。一個鉤子是名為foo_bar()這樣一個PHP[7]函數(shù),其中“foo”是模塊的名稱(其文件名是foo.module),“bar”是鉤子的名稱。每個鉤子都有一個定義的參數(shù)設置和指定的結(jié)果類型。
為了擴展Drupal 的功能,一個模塊需要簡單地實現(xiàn)一個鉤子。 當Drupal 希望允許干預模塊,它決定了哪些模塊實現(xiàn)一個鉤子,調(diào)用所有啟用的模塊的鉤子以實現(xiàn)它。
可用的鉤子去實現(xiàn)功能在開發(fā)者鉤子部分的文檔有所解釋。 字符串“鉤子”被用作占位符的鉤子定義模塊的名字。例如,如果模塊文件稱為example.module,然后hook_help()通過該模塊實現(xiàn)將被定義為example_help()。
包含的示例函數(shù)不是Drupal 核心的一部分,它們只是你可以修改的模型。 當運行Drupal 的時候,僅僅是模塊中的鉤子執(zhí)行。 Drupal 8 之后hooks 機制會逐漸淘汰了,現(xiàn)在處于轉(zhuǎn)型期。
每個Drupal 站點被所屬平臺管理, 而每個平臺又被Server 管理,所有的Servers 被Hostmaster 管理。 從某種角度也可以說,Hostmaster 管理所有的東西。
平臺管理員下面,根據(jù)權(quán)限不同分類,默認由匿名用戶、注冊用戶、Aegir 賬戶管理員、Aegir 管理員、Aegir 客戶端管理員(通過samba 遠程管理平臺)五類角色組成。 平臺管理可以根據(jù)實際需求添加另外的角色并賦予權(quán)限,同時可以在每個角色類別下面添加相應的成員。
平臺管理員登陸后,會進入如圖3 所示的界面。 在這個界面下,平臺管理員擁有該平臺所有權(quán)限。 頭部由功能菜單、logo、平臺名字組成(logo 和平臺名字可根據(jù)需要進行更改)。下面內(nèi)容部分由站點信息、平臺信息、數(shù)據(jù)庫服務器信息以及客戶端信息的操作等組成。

圖3 平臺登錄界面Fig. 3 Platform login interface
通過進一步對平臺嘗試, 實現(xiàn)了基于Drupal 站點管理平臺的關鍵技術(shù),站點管理平臺上線后對日志進行分析,發(fā)現(xiàn)平臺曾遭受不同程度攻擊以及信息安全問題, 系統(tǒng)具有良好的健壯性。 該平臺的實施,也極大地調(diào)動了學生的積極性,不僅鍛煉了學生的實踐能力,同時也了解和學習了國外的前沿技術(shù)。
[1] 肖海鵬. 站群系統(tǒng)在高校網(wǎ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] 黃存東,盛安元,張前進. 基于Drupal的校園網(wǎng)站群系統(tǒng)分析與設計[J]. 長沙大學學報,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] 高大力. 關于高校二級網(wǎng)站建設、 管理的探索與實踐[J].西北工業(yè)大學學報,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)站集群建設與管理研究[J]. 南京工程學院學報,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/北斗導航系統(tǒng)研究[J]. 電子設計工程,2013(22):8-10.
ZHANG Huan. Research on AIS/Compass navigation system based on Web[J]. Electronic Design Engineering,2013(22):8-10.