摘 要:文章結(jié)合目前項目的實際需要,分析了基于JAVA平臺的CMS的分析與設計,提出了一種安全穩(wěn)定的網(wǎng)站內(nèi)容管理系統(tǒng)(CMS)解決方案。
關鍵詞:JAVA;CMS;B/S
企業(yè)信息化的不斷發(fā)展與深入,企業(yè)網(wǎng)站內(nèi)容管理系統(tǒng)已經(jīng)成為眾多企業(yè)級應用軟件的核心軟件之一,無法代替的作用越來越突顯出來。到現(xiàn)在,軟件開發(fā)技術(shù)日新月異,內(nèi)容管理系統(tǒng)融合了多種技術(shù)于一體,成為一種創(chuàng)新技術(shù)的綜合應用,它涵蓋面相當廣泛,具體包含了:企業(yè)內(nèi)網(wǎng)與外網(wǎng)、政府外網(wǎng)和應用互聯(lián)網(wǎng)。其已經(jīng)打破了原有辦公自動化系統(tǒng)、陳舊信息化管理軟件和普通軟件管理系統(tǒng)的涵蓋范疇、用戶體驗和潛在的商業(yè)價值。文章以企業(yè)級內(nèi)容管理系統(tǒng)為切入點,介紹了其相關知識和實際開發(fā)使用到的相關技術(shù),緊接著分析了在內(nèi)容管理系統(tǒng)開發(fā)過程中的需求分析,為滿足系統(tǒng)要求給出了契合實際的系統(tǒng)功能和結(jié)構(gòu)框架設計,并且實現(xiàn)了內(nèi)容管理系統(tǒng)的全部功能,文章重點介紹了開發(fā)過程中權(quán)限相關的關鍵技術(shù),并且給出了詳細的解決方案。為了提高系統(tǒng)的重用性和擴展性,系統(tǒng)采用先進的J2EE平臺,綜合應用先進的組件設計思維和面向?qū)ο笤O計思想,以及目前比較流行的Struts框架等相關技術(shù),所有這些綜合技術(shù)的使用有力減少了系統(tǒng)的復雜性,實現(xiàn)了一種管理方便高效的內(nèi)容實時發(fā)布平臺,該平臺有大好的應用和發(fā)展前景。
1 J2EE體系結(jié)構(gòu)及組件
J2EE本身包含了許多項目開發(fā)中常用的組件,它是脫胎于傳統(tǒng)軟件開發(fā)的技術(shù)架構(gòu),其對軟件系統(tǒng)開發(fā)和部署進行了進一步的簡化和規(guī)范,提升李瑞軟件的復用性和移植性。規(guī)范與指南是J2EE的核心技術(shù),其中所包含的各類組件、服務架構(gòu)及技術(shù)層次,均有共同的標準及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。J2EE組件和“標準的”Java類的不同點在于:它被裝配在一個J2EE應用中,具有固定的格式并遵守J2EE規(guī)范,由J2EE服務器對其進行管理。J2EE規(guī)范是這樣定義J2EE組件的:客戶端應用程序和applet是運行在客戶端的組件;Java Servlet和Java Server Pages是運行在服務器端的Web組件;Enterprise Java Bean組件是運行在服務器端的業(yè)務組件。
2 CMS數(shù)據(jù)庫設計與實現(xiàn)
在項目開發(fā)過程中,數(shù)據(jù)庫設計至關重要,它關系到真?zhèn)€系統(tǒng)的系統(tǒng)性能、移植性和系統(tǒng)后期的升級等,在綜合對比目前項目中常用的幾款數(shù)據(jù)庫產(chǎn)品后,本系統(tǒng)確認使用MYSQL數(shù)據(jù)庫,MYSQL數(shù)據(jù)庫將以其突出的系統(tǒng)性能為本系統(tǒng)奠定良好的運行基礎。在數(shù)據(jù)設計的過程中,要重點遵守幾個規(guī)則:數(shù)據(jù)庫標識符命名規(guī)范化、正取使用索引原則、數(shù)據(jù)庫數(shù)據(jù)的一致性和完整性約束原則等。企業(yè)網(wǎng)站內(nèi)容信息管理系統(tǒng)核心數(shù)據(jù)庫表設計如下:
(1)mis_article表:用來存儲文章信息的,主要字段有:主鍵、欄目標題、文章標題、文章內(nèi)容、文章點擊次數(shù)、文章作者、發(fā)布時間、文章內(nèi)容。
(2)mis_class表:用來存儲所有欄目信息,主要包含字段:主鍵、欄目名稱、欄目名稱簡寫、欄目說明、欄目路徑、父欄目編號。
(3)mis_sa_user表:用來存儲CMS前臺和后臺的所有用戶信息,主要包含字段:主鍵、用戶名、姓名、密碼、注冊時間、登錄時間、性別、QQ號碼、聯(lián)系電話。
(4)mis_sa_group表:用來存儲用戶群組信息,主要包含字段:主鍵、群組名稱、組描述、組狀態(tài)、修改時間、是否是管理員。
(5)mis_config_site表:用來存儲CMS站點的基本的配置信息,主要包含字段:主鍵、網(wǎng)址名稱、網(wǎng)址標題、網(wǎng)址地址、網(wǎng)址圖片地址、網(wǎng)址版權(quán)信息、網(wǎng)址描述信息、網(wǎng)址關鍵字標簽。
3 系統(tǒng)權(quán)限設計與實現(xiàn)
與C/S架構(gòu)系統(tǒng)相比,B/S架構(gòu)系統(tǒng)的權(quán)限設計尤為重要,由于C/S系統(tǒng)的特殊性,在很多功能模塊的實現(xiàn)過程中可以實現(xiàn)細粒度權(quán)限的精準控制,B/S系統(tǒng)的權(quán)限控制比較困難,B/S系統(tǒng)通過用戶的瀏覽器訪問系統(tǒng),如果驗證機制不完善,則非合法用戶可以容易的從瀏覽器的地址欄訪問到B/S系統(tǒng)中的功能,這就要求程序設計從客戶端和服務器端同時進行攔截判斷檢測,實現(xiàn)較為嚴謹?shù)臋?quán)限控制設計。本系統(tǒng)的開發(fā)設計中我們借鑒NoahWeb的設計理念,在系統(tǒng)業(yè)務設計階段,開發(fā)者無需考慮權(quán)限設計,可以專注于系統(tǒng)業(yè)務的實現(xiàn)。該設計理念為了實現(xiàn)細粒度權(quán)限控制,為了實現(xiàn)需求,數(shù)據(jù)庫的設計可謂及其重要,無論是“組”操作的概念,還是整套權(quán)限管理系統(tǒng)的重用性,都在于數(shù)據(jù)庫的設計。首先,action表,gorupmanager表,以及master表,是系統(tǒng)中權(quán)限控制最重要的三張基礎表,這三張表分別存儲了“系統(tǒng)權(quán)限”數(shù)據(jù)、“管理組”的相關數(shù)據(jù)和“用戶信息”等數(shù)據(jù)。多對多是這三張表的重要關系,也就是:一個權(quán)限可以對應對個管理組,一個管理者同時可以對應多個權(quán)限,同理,一個用戶可以對應多個系統(tǒng)用戶管理組,同時一個管理組中可以包含多個不同的系統(tǒng)用戶。由于這三張表之間存在著多對多的關系,那么它們之間的交互,最好使用另外兩張表來完成。而這兩張表起著映射的作用,分別是“actiongroup”表和“mastergroup”表,前者映射了權(quán)限表與管理組表之間的交互。后者映射了人員表與管理組表之間的交互。另外,還需要一張表來控制系統(tǒng)運行時左側(cè)菜單中的權(quán)限分欄,也就是“權(quán)限分欄表”,這樣就實現(xiàn)了細粒度的權(quán)限控制。
4 CMS系統(tǒng)實現(xiàn)
CMS系統(tǒng)中的所有AJAX請求和所有普通請求都通過STRUCTS進行攔截,然后將請求轉(zhuǎn)發(fā)給后面的業(yè)務層進行處理,所以系統(tǒng)請求攔截都需要配置在一個集中的配置文件里,并且實現(xiàn)Command接口的所有方法,當系統(tǒng)啟動需要初始化的時候,系統(tǒng)自動讀取該配置文件,將配置文件內(nèi)容讀入內(nèi)存,把配置文件里的所有請求動作建立一個實例,并暫存在系統(tǒng)緩存中,當瀏覽器發(fā)送系統(tǒng)請求是,攔截器把該實例對象從緩存中取出,而不需要再次創(chuàng)建,這樣就減少了系統(tǒng)響應用戶請求的運行時間,當系統(tǒng)需要擴充增加新的業(yè)務功能是,只要在實現(xiàn)具體的業(yè)務方法,在方法內(nèi)寫入自己的業(yè)務代碼,并實現(xiàn)Command接口,同時加入該系統(tǒng)的配置文件里即可實現(xiàn)插件化模塊的系統(tǒng)功能。
在CMS系統(tǒng)設計實現(xiàn)中還有另外一個技術(shù)難點,就是如何實現(xiàn)所見即所示的網(wǎng)頁編輯效果,同時發(fā)布到頁面上后效果不變化,本系統(tǒng)通過論證采用的網(wǎng)頁版副文本編輯器即可實現(xiàn)上述系統(tǒng)要求功能,該文本編輯器是綜合使用HTML、JAVASCRIPT和CSS技術(shù)組合開發(fā)實現(xiàn)。網(wǎng)頁信息編輯器具有的功能有:在網(wǎng)頁內(nèi)容中可以自由選擇相應的代碼,并且進行任意的編輯,編輯結(jié)構(gòu)看到的就是網(wǎng)頁顯示的效果。這種編輯器方便編輯任意查找內(nèi)容,方便改變文章樣式,可否方便的修改文字的背景顏色,插入各種手動符號,當前的時間、日期,可以方便插入office系列數(shù)據(jù),例如excel表格、word內(nèi)容等。同時加強了表格table編輯功能,可以方便的插入、合并、刪除列表格和行表格,完成表格上下遷移和左右互移等功能,可以在表格中增加右擊帶單,方便實現(xiàn)系統(tǒng)更多功能。在編輯器中,系統(tǒng)管理員可以方便的插入圖表,對文本和圖片進行混合編輯,可以方便實現(xiàn)圖片大小、位置、圖層調(diào)整。
5 結(jié)束語
文章從實用和研究的角度出發(fā),提出了關于企業(yè)內(nèi)容管理系統(tǒng)的新思路和解決方案,在實現(xiàn)過程中著重介紹了系統(tǒng)細粒度的用戶權(quán)限驗證模塊和內(nèi)容發(fā)布模塊的設計與實現(xiàn),并針對這些核心技術(shù)給出明了介紹,較好的融合到整合系統(tǒng)中,給出了具體的應用方案,開發(fā)設計完成了一套完整的基于基于JAVA的B/S的企業(yè)內(nèi)容信息管理系統(tǒng)。該系統(tǒng)和核心技術(shù)的實現(xiàn)方式對其他信息類軟件系統(tǒng)開發(fā)有一定的參考價值。
參考文獻
[1]王占軍.基于J2EE的內(nèi)容管理系統(tǒng)的研究與開發(fā)[D].北京:中國航天第二研究院,2008.
[2](美)David Flanagan .JavaScript權(quán)威指南[M].北京:機械工業(yè)出版社,2003.