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

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

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

 

 

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

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

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

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

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

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

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

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