《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 分布式站群系統(tǒng)設(shè)計與實現(xiàn)
分布式站群系統(tǒng)設(shè)計與實現(xiàn)
來源:微型機(jī)與應(yīng)用2011年第8期
王跟成
(西藏民族學(xué)院, 陜西 咸陽712082)
摘要: 分析了高等院校構(gòu)建網(wǎng)站時遇到的普遍問題,提出了文件分布存儲、數(shù)據(jù)集中存儲的設(shè)計思想,并且在Java EE平臺上設(shè)計和實現(xiàn)了分布式站群管理系統(tǒng),其站點分布式部署、高度的代碼共享、內(nèi)嵌的網(wǎng)頁編輯器和多種類型的內(nèi)容管理使得高校可以快速、靈活、方便地構(gòu)建自己的部門網(wǎng)站群,系統(tǒng)經(jīng)過一年多的運(yùn)行和完善,具有較大的應(yīng)用價值。
Abstract:
Key words :

摘  要: 分析了高等院校構(gòu)建網(wǎng)站時遇到的普遍問題,提出了文件分布存儲、數(shù)據(jù)集中存儲的設(shè)計思想,并且在Java EE平臺上設(shè)計和實現(xiàn)了分布式站群管理系統(tǒng),其站點分布式部署、高度的代碼共享、內(nèi)嵌的網(wǎng)頁編輯器和多種類型的內(nèi)容管理使得高校可以快速、靈活、方便地構(gòu)建自己的部門網(wǎng)站群,系統(tǒng)經(jīng)過一年多的運(yùn)行和完善,具有較大的應(yīng)用價值。
關(guān)鍵詞: 分布式站群; 內(nèi)容管理; 代碼共享; FCKeditor

   高等院校經(jīng)常需要構(gòu)建多個網(wǎng)站,這些網(wǎng)站除了在欄目設(shè)置、頁面呈現(xiàn)風(fēng)格和具體內(nèi)容不同外,其他方面有很多共同之處,表現(xiàn)在欄目類型、內(nèi)容類型、發(fā)布方式、數(shù)據(jù)和文件的存儲、程序代碼開發(fā)等方面。若這些網(wǎng)站分別開發(fā),需要投入較大的人力,而且不易于統(tǒng)一管理。本文介紹一種基于Java EE平臺的分布式站群管理系統(tǒng),它可以使高校更容易地構(gòu)建自己的站群系統(tǒng),完成網(wǎng)站在多個物理服務(wù)器上的分布式部署。
1 系統(tǒng)特點
 高校各部門的網(wǎng)站經(jīng)常部署在不同的物理服務(wù)器上,傳統(tǒng)的做法是每建立一個網(wǎng)站就要開發(fā)一套管理系統(tǒng),完成網(wǎng)站的用戶、權(quán)限和欄目管理,而且還要獨(dú)立開發(fā)網(wǎng)站內(nèi)容的發(fā)布平臺。這種做法對于構(gòu)建單站系統(tǒng)比較實用,若構(gòu)建站群系統(tǒng)則需要較大的代碼開發(fā)量,而且不利于集中管理。本文完成的分布式站群管理系統(tǒng)可以解決上述問題。它有以下特點:
    (1) 分布式部署
 系統(tǒng)設(shè)計完成后,每構(gòu)建一個新網(wǎng)站,其后臺管理端、內(nèi)容發(fā)布端不需要重新開發(fā)代碼,只需要將相應(yīng)的共享代碼發(fā)布成獨(dú)立的應(yīng)用模塊直接部署,部署時根據(jù)需要可以選擇不同的物理服務(wù)器。
    (2) 數(shù)據(jù)庫集中存儲
  對于發(fā)布的文本內(nèi)容,系統(tǒng)集中存放在一臺或多臺物理機(jī)的數(shù)據(jù)庫中,這樣方便數(shù)據(jù)的檢索,而且易于管理和實施數(shù)據(jù)備份。
    (3) 文件分布式存儲
  發(fā)布內(nèi)容中上傳的圖片、文件、音視頻、Flash等附件會分布式地存放到網(wǎng)站對應(yīng)的物理服務(wù)器中,這樣使得各個網(wǎng)站的內(nèi)容發(fā)布者只能管理自己網(wǎng)站中上傳的內(nèi)容,減少了由于文件誤刪帶來的數(shù)據(jù)不一致。
    (4) 高度的代碼共享性
  系統(tǒng)設(shè)計了代碼共享包,使用開發(fā)工具生成符合Java EE規(guī)范的WAR包,部署網(wǎng)站時只需要將WAR包上傳到應(yīng)用服務(wù)器并進(jìn)行簡單的配置即可,共享包中包含了網(wǎng)站后臺管理系統(tǒng)和發(fā)布平臺的所有代碼,使得開發(fā)者省去了冗繁的重復(fù)開發(fā)。
    (5) 基于標(biāo)簽的前臺開發(fā)
    在開發(fā)網(wǎng)站前臺時,基本上不需要Java代碼開發(fā),本系統(tǒng)設(shè)計了一套自定義標(biāo)簽,頁面設(shè)計人員只要熟悉標(biāo)簽的功能和使用方法,在系統(tǒng)需要讀取數(shù)據(jù)庫數(shù)據(jù)的地方嵌入自定義標(biāo)簽即可完成網(wǎng)站的動態(tài)內(nèi)容顯示。
2 系統(tǒng)體系結(jié)構(gòu)和功能概述
    總體上,系統(tǒng)包含后臺管理模塊、內(nèi)容管理模塊和各個部門的前臺網(wǎng)站。后臺管理模塊包括網(wǎng)站、欄目、用戶和權(quán)限管理;內(nèi)容管理模塊包括內(nèi)容發(fā)布、撤銷、修改和刪除等功能,它是整個系統(tǒng)設(shè)計的核心;前臺網(wǎng)站是向普通用戶呈現(xiàn)各個部門網(wǎng)站信息的平臺,所有發(fā)布的內(nèi)容最終要正確地顯示到部門網(wǎng)站中才能供用戶正常瀏覽。系統(tǒng)功能模塊圖如圖1所示。

 

 

    系統(tǒng)功能中,網(wǎng)站后臺管理模塊只有一個,是提供給站群管理人員使用的,通過該模塊,可以快速地構(gòu)建一個部門網(wǎng)站所需的基本信息,包括網(wǎng)站基本配置、欄目設(shè)置、內(nèi)容管理員和相應(yīng)權(quán)限等。每個站點都包含內(nèi)容管理模塊,具有該網(wǎng)站和相應(yīng)欄目管理權(quán)限的內(nèi)容管理員可以使用該模塊靈活地管理網(wǎng)站的內(nèi)容,所有發(fā)布的文件和音視頻數(shù)據(jù)等都存儲在網(wǎng)站下的相應(yīng)目錄中,以方便網(wǎng)站遷移或重新部署。普通用戶通過瀏覽器瀏覽網(wǎng)站的前臺頁面,前臺頁面呈現(xiàn)通過JSP、JSTL和自定義標(biāo)簽實現(xiàn),整個系統(tǒng)與數(shù)據(jù)庫的連接均通過數(shù)據(jù)庫連接池來實現(xiàn),每個網(wǎng)站在打包發(fā)布時只需要將網(wǎng)站前臺頁面和相應(yīng)的內(nèi)容管理模塊的代碼打包發(fā)布即可。系統(tǒng)的體系結(jié)構(gòu)如圖2所示。

3 數(shù)據(jù)庫設(shè)計
3.1 基本表

    系統(tǒng)的網(wǎng)站信息、欄目信息、部門信息、用戶信息、權(quán)限和內(nèi)容信息集中存放在數(shù)據(jù)庫中,具體表設(shè)計如下:部門網(wǎng)站表(部門號,部門名稱,部門職能,部門組織機(jī)構(gòu))、欄目表(欄目號,欄目名稱,部門號,欄目說明,欄目類型,信息數(shù),欄目導(dǎo)航)、內(nèi)容表(內(nèi)容號,部門號,欄目號,內(nèi)容標(biāo)題,內(nèi)容正文,鏈接地址,發(fā)布時間,排序號,點擊次數(shù),發(fā)布者,內(nèi)容類型,圖片地址,來源)、用戶表(用戶賬戶,用戶名,部門號,登錄密碼,用戶說明)、權(quán)限表(用戶號,欄目號)、系統(tǒng)參數(shù)表(參數(shù)號,參數(shù)名稱,參數(shù)值,部門號)。
3.2 ER模型圖
    系統(tǒng)的ER模型如圖3所示。

4 網(wǎng)站開發(fā)流程
    要開發(fā)一個新的部門網(wǎng)站,需通過系統(tǒng)新增一個部門網(wǎng)站,然后根據(jù)網(wǎng)站前臺頁面設(shè)計要求,將該網(wǎng)站所需的所有欄目添加到系統(tǒng)中,然后創(chuàng)建網(wǎng)站的管理用戶并賦予相應(yīng)的欄目管理權(quán)限,最后由網(wǎng)站前臺設(shè)計人員(美工)根據(jù)部門號、欄目號等參數(shù),使用自定義標(biāo)簽完成頁面制作。所有這些操作,除了網(wǎng)站前臺頁面設(shè)計時需要嵌入一些標(biāo)簽外,不需要開發(fā)任何代碼,系統(tǒng)管理后臺的所有代碼都是公用的,只需要在網(wǎng)站部署時進(jìn)行相應(yīng)配置即可。
5 內(nèi)容管理
    內(nèi)容管理是分布式站群管理系統(tǒng)的重點,系統(tǒng)抽象出了7種內(nèi)容:普通新聞、圖片新聞、視頻新聞、友情鏈接、滾動圖片、留言板、問卷調(diào)查等,每一種內(nèi)容都根據(jù)其特點設(shè)計了增加、修改、刪除和發(fā)布/撤銷等功能。內(nèi)容管理模塊運(yùn)行時的系統(tǒng)截圖如圖4所示。

6 系統(tǒng)實現(xiàn)
6.1 程序?qū)崿F(xiàn)框架

    系統(tǒng)實現(xiàn)采用標(biāo)準(zhǔn)的MVC設(shè)計模式,使用JSP2.0標(biāo)準(zhǔn)開發(fā),后臺實現(xiàn)時設(shè)計了多個控制器和模型,JSP頁面和自定義標(biāo)簽充當(dāng)視圖,實現(xiàn)框架如圖5所示。

    控制器包括內(nèi)容管理、用戶管理、欄目管理和權(quán)限管理等,都繼承自HttpServlet,它完成客戶請求的判斷和數(shù)據(jù)封裝之后,調(diào)用相應(yīng)的模型處理業(yè)務(wù)數(shù)據(jù)。應(yīng)用模型包括各種Java Beans和封裝了數(shù)據(jù)庫操作的Java類,都繼承自基類Manager。視圖由JSP頁面和自定義標(biāo)簽充當(dāng),主要顯示查詢和處理的結(jié)果,這種基于MVC模式設(shè)計的代碼具有良好的擴(kuò)展性。
6.2 頁面編輯器
    系統(tǒng)在內(nèi)容管理模塊中使用了開源項目FCKeditor,它是一個專門用于網(wǎng)頁上的所見即所得的文字編輯器。它的輕量化、部署簡單等特性使得它可以與PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java以及ABAP等不同的編程語言相結(jié)合。站群管理系統(tǒng)中使用FCKeditor時對它進(jìn)行了修改,主要包括修改部分源代碼使其支持分布式部署,所有提示語言的漢化、對ConnectorServlet的改寫使其支持漢字文件名和目錄名的上傳和創(chuàng)建、頁面樣式的修改等。經(jīng)過運(yùn)行,修改的頁面編輯器在內(nèi)容管理中發(fā)揮了很大作用。其發(fā)布新聞內(nèi)容時的截圖如圖6所示。

6.3 代碼共享
    整個后臺的Java代碼通過Jbuilder2006開發(fā),代碼共享率達(dá)到了98%以上,部署時使用開發(fā)平臺提供的工具自動創(chuàng)建符合規(guī)范的WAR包,或者也可以使用工具生成JAR包,在開發(fā)平臺中引入該包即可快速構(gòu)建一個新的網(wǎng)站。
    系統(tǒng)設(shè)計時充分考慮了各個部門網(wǎng)站構(gòu)建和管理的特點,遵循文件分布存放,數(shù)據(jù)集中存放的原則加以實現(xiàn),使系統(tǒng)易于擴(kuò)展,在部署時可以靈活地選擇服務(wù)器,分布式的思想也易于日后網(wǎng)站的遷移和重新部署,其基于Java EE平臺的實現(xiàn)也使得它能部署在各種不同的操作系統(tǒng)平臺之上。通過一年多的使用和不斷完善,分布式站群管理系統(tǒng)已經(jīng)能充分適應(yīng)高校部門網(wǎng)站的各種功能性要求,運(yùn)行情況良好。
參考文獻(xiàn)
[1] BERGSTEN H著. JSP設(shè)計[M]. 林琪,朱濤江,譯.北京:中國電力出版社,2004.
[2] 施伯樂,丁寶康,汪衛(wèi).數(shù)據(jù)庫系統(tǒng)教程[M].高等教育出版社,2005.
[3] 高大力.關(guān)于高校二級網(wǎng)站建設(shè)、管理的探索與實踐[J].西北工業(yè)大學(xué)學(xué)報(社會科學(xué)版),2004,24(2):82-84.
[4] 沈俊.高校網(wǎng)站群的建設(shè)和方案淺談[J]. 價值工程,2010(5):200-201.
[5] 張猛.內(nèi)容管理系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)[J].電腦開發(fā)與應(yīng)用,2007(8):44-46.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。