摘 要: 分析了高等院校構建網站時遇到的普遍問題,提出了文件分布存儲、數據集中存儲的設計思想,并且在Java EE平臺上設計和實現了分布式站群管理系統,其站點分布式部署、高度的代碼共享、內嵌的網頁編輯器和多種類型的內容管理使得高校可以快速、靈活、方便地構建自己的部門網站群,系統經過一年多的運行和完善,具有較大的應用價值。
關鍵詞: 分布式站群; 內容管理; 代碼共享; FCKeditor
高等院校經常需要構建多個網站,這些網站除了在欄目設置、頁面呈現風格和具體內容不同外,其他方面有很多共同之處,表現在欄目類型、內容類型、發布方式、數據和文件的存儲、程序代碼開發等方面。若這些網站分別開發,需要投入較大的人力,而且不易于統一管理。本文介紹一種基于Java EE平臺的分布式站群管理系統,它可以使高校更容易地構建自己的站群系統,完成網站在多個物理服務器上的分布式部署。
1 系統特點
高校各部門的網站經常部署在不同的物理服務器上,傳統的做法是每建立一個網站就要開發一套管理系統,完成網站的用戶、權限和欄目管理,而且還要獨立開發網站內容的發布平臺。這種做法對于構建單站系統比較實用,若構建站群系統則需要較大的代碼開發量,而且不利于集中管理。本文完成的分布式站群管理系統可以解決上述問題。它有以下特點:
(1) 分布式部署
系統設計完成后,每構建一個新網站,其后臺管理端、內容發布端不需要重新開發代碼,只需要將相應的共享代碼發布成獨立的應用模塊直接部署,部署時根據需要可以選擇不同的物理服務器。
(2) 數據庫集中存儲
對于發布的文本內容,系統集中存放在一臺或多臺物理機的數據庫中,這樣方便數據的檢索,而且易于管理和實施數據備份。
(3) 文件分布式存儲
發布內容中上傳的圖片、文件、音視頻、Flash等附件會分布式地存放到網站對應的物理服務器中,這樣使得各個網站的內容發布者只能管理自己網站中上傳的內容,減少了由于文件誤刪帶來的數據不一致。
(4) 高度的代碼共享性
系統設計了代碼共享包,使用開發工具生成符合Java EE規范的WAR包,部署網站時只需要將WAR包上傳到應用服務器并進行簡單的配置即可,共享包中包含了網站后臺管理系統和發布平臺的所有代碼,使得開發者省去了冗繁的重復開發。
(5) 基于標簽的前臺開發
在開發網站前臺時,基本上不需要Java代碼開發,本系統設計了一套自定義標簽,頁面設計人員只要熟悉標簽的功能和使用方法,在系統需要讀取數據庫數據的地方嵌入自定義標簽即可完成網站的動態內容顯示。
2 系統體系結構和功能概述
總體上,系統包含后臺管理模塊、內容管理模塊和各個部門的前臺網站。后臺管理模塊包括網站、欄目、用戶和權限管理;內容管理模塊包括內容發布、撤銷、修改和刪除等功能,它是整個系統設計的核心;前臺網站是向普通用戶呈現各個部門網站信息的平臺,所有發布的內容最終要正確地顯示到部門網站中才能供用戶正常瀏覽。系統功能模塊圖如圖1所示。
系統功能中,網站后臺管理模塊只有一個,是提供給站群管理人員使用的,通過該模塊,可以快速地構建一個部門網站所需的基本信息,包括網站基本配置、欄目設置、內容管理員和相應權限等。每個站點都包含內容管理模塊,具有該網站和相應欄目管理權限的內容管理員可以使用該模塊靈活地管理網站的內容,所有發布的文件和音視頻數據等都存儲在網站下的相應目錄中,以方便網站遷移或重新部署。普通用戶通過瀏覽器瀏覽網站的前臺頁面,前臺頁面呈現通過JSP、JSTL和自定義標簽實現,整個系統與數據庫的連接均通過數據庫連接池來實現,每個網站在打包發布時只需要將網站前臺頁面和相應的內容管理模塊的代碼打包發布即可。系統的體系結構如圖2所示。
3 數據庫設計
3.1 基本表
系統的網站信息、欄目信息、部門信息、用戶信息、權限和內容信息集中存放在數據庫中,具體表設計如下:部門網站表(部門號,部門名稱,部門職能,部門組織機構)、欄目表(欄目號,欄目名稱,部門號,欄目說明,欄目類型,信息數,欄目導航)、內容表(內容號,部門號,欄目號,內容標題,內容正文,鏈接地址,發布時間,排序號,點擊次數,發布者,內容類型,圖片地址,來源)、用戶表(用戶賬戶,用戶名,部門號,登錄密碼,用戶說明)、權限表(用戶號,欄目號)、系統參數表(參數號,參數名稱,參數值,部門號)。
3.2 ER模型圖
系統的ER模型如圖3所示。
4 網站開發流程
要開發一個新的部門網站,需通過系統新增一個部門網站,然后根據網站前臺頁面設計要求,將該網站所需的所有欄目添加到系統中,然后創建網站的管理用戶并賦予相應的欄目管理權限,最后由網站前臺設計人員(美工)根據部門號、欄目號等參數,使用自定義標簽完成頁面制作。所有這些操作,除了網站前臺頁面設計時需要嵌入一些標簽外,不需要開發任何代碼,系統管理后臺的所有代碼都是公用的,只需要在網站部署時進行相應配置即可。
5 內容管理
內容管理是分布式站群管理系統的重點,系統抽象出了7種內容:普通新聞、圖片新聞、視頻新聞、友情鏈接、滾動圖片、留言板、問卷調查等,每一種內容都根據其特點設計了增加、修改、刪除和發布/撤銷等功能。內容管理模塊運行時的系統截圖如圖4所示。
6 系統實現
6.1 程序實現框架
系統實現采用標準的MVC設計模式,使用JSP2.0標準開發,后臺實現時設計了多個控制器和模型,JSP頁面和自定義標簽充當視圖,實現框架如圖5所示。
控制器包括內容管理、用戶管理、欄目管理和權限管理等,都繼承自HttpServlet,它完成客戶請求的判斷和數據封裝之后,調用相應的模型處理業務數據。應用模型包括各種Java Beans和封裝了數據庫操作的Java類,都繼承自基類Manager。視圖由JSP頁面和自定義標簽充當,主要顯示查詢和處理的結果,這種基于MVC模式設計的代碼具有良好的擴展性。
6.2 頁面編輯器
系統在內容管理模塊中使用了開源項目FCKeditor,它是一個專門用于網頁上的所見即所得的文字編輯器。它的輕量化、部署簡單等特性使得它可以與PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java以及ABAP等不同的編程語言相結合。站群管理系統中使用FCKeditor時對它進行了修改,主要包括修改部分源代碼使其支持分布式部署,所有提示語言的漢化、對ConnectorServlet的改寫使其支持漢字文件名和目錄名的上傳和創建、頁面樣式的修改等。經過運行,修改的頁面編輯器在內容管理中發揮了很大作用。其發布新聞內容時的截圖如圖6所示。
6.3 代碼共享
整個后臺的Java代碼通過Jbuilder2006開發,代碼共享率達到了98%以上,部署時使用開發平臺提供的工具自動創建符合規范的WAR包,或者也可以使用工具生成JAR包,在開發平臺中引入該包即可快速構建一個新的網站。
系統設計時充分考慮了各個部門網站構建和管理的特點,遵循文件分布存放,數據集中存放的原則加以實現,使系統易于擴展,在部署時可以靈活地選擇服務器,分布式的思想也易于日后網站的遷移和重新部署,其基于Java EE平臺的實現也使得它能部署在各種不同的操作系統平臺之上。通過一年多的使用和不斷完善,分布式站群管理系統已經能充分適應高校部門網站的各種功能性要求,運行情況良好。
參考文獻
[1] BERGSTEN H著. JSP設計[M]. 林琪,朱濤江,譯.北京:中國電力出版社,2004.
[2] 施伯樂,丁寶康,汪衛.數據庫系統教程[M].高等教育出版社,2005.
[3] 高大力.關于高校二級網站建設、管理的探索與實踐[J].西北工業大學學報(社會科學版),2004,24(2):82-84.
[4] 沈俊.高校網站群的建設和方案淺談[J]. 價值工程,2010(5):200-201.
[5] 張猛.內容管理系統實現的關鍵技術[J].電腦開發與應用,2007(8):44-46.