林莉莉
摘 要:網(wǎng)絡(luò)交流方式的多樣性是當(dāng)今時代發(fā)展的顯著特點,論壇交流是當(dāng)前網(wǎng)民普通交流和獲取信息的主要通道之一,面對互聯(lián)網(wǎng)中涌現(xiàn)出的針對各種行業(yè)的網(wǎng)絡(luò)論壇,如何對其進行合理有效監(jiān)管,是當(dāng)前對網(wǎng)絡(luò)論壇研究的熱點之一。因此,開發(fā)一個管理論壇發(fā)帖、回帖、針對關(guān)鍵字查詢、對論壇用戶進行分析的論壇信息管理系統(tǒng)非常必要。
關(guān)鍵詞:論壇 SSH框架 系統(tǒng)設(shè)計
中圖分類號:TP393 文獻標識碼:A 文章編號:1672-3791(2016)10(a)-0011-02
該文采用當(dāng)下流行的J2EE技術(shù),在MyEclipse的基礎(chǔ)上,結(jié)合SSH框架對論壇系統(tǒng)進行了詳細設(shè)計,主要包括系統(tǒng)功能設(shè)計、系統(tǒng)功能模塊結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫設(shè)計以及處理流程設(shè)計。
1 系統(tǒng)功能設(shè)計
論壇信息管理系統(tǒng)主要實現(xiàn)了論壇信息抓取、信息查詢、用戶行為分析以及系統(tǒng)管理4個模塊,每個大模塊又各自包含了其中的子功能模塊。首先,該文結(jié)合數(shù)據(jù)挖掘以及正則表達式設(shè)計了一個簡單的網(wǎng)頁爬蟲,對某論壇的網(wǎng)頁布局進行了分析,以完成對論壇的發(fā)帖、回帖以及用戶信息的檢索,并按照固定的格式將它們存儲于數(shù)據(jù)庫中,以便于后續(xù)對論壇信息的管理和分析。然后在信息查詢模塊中,可以分別對用戶發(fā)帖信息、回帖信息進行管理,根據(jù)時間、用戶名、發(fā)帖地址以及回帖信息進行查詢,并可以查詢得到的查詢記錄詳情和得到帖子的詳細內(nèi)容以及url等信息。同時根據(jù)系統(tǒng)管理模塊中添加的關(guān)鍵字,在關(guān)注信息模塊中,得到所有包含關(guān)鍵字的帖子,用戶信息模塊則可以查詢所有用戶相關(guān)信息,也可以根據(jù)用戶名以及用戶的職業(yè)進行查詢。
在一個完善的系統(tǒng)中,安全的系統(tǒng)登錄和管理功能是必不可少的,因此在系統(tǒng)管理中添加了賬戶管理功能,對系統(tǒng)管理員用戶的用戶名、密碼進行增加、修改、查詢以及刪除操作,同時,為了防止數(shù)據(jù)庫中泄露管理員的密碼,該系統(tǒng)對管理員用戶的密碼進行了MD5加密,在數(shù)據(jù)庫中只能看到加密后的密文,只有系統(tǒng)管理員才能對所有用戶的用戶名和密碼進行管理。同時,該系統(tǒng)還對部分管理員進行了權(quán)限設(shè)置,通過用戶名為sa的系統(tǒng)管理員可以添加其他管理員用戶,而其他管理員用戶只能對自己進行管理。
2 系統(tǒng)架構(gòu)設(shè)計
論壇信息管理系統(tǒng)開發(fā)周期較短,需求復(fù)雜多樣,對系統(tǒng)的穩(wěn)定性、擴展性和可維護性要求較高。該系統(tǒng)充分借鑒J2EE分布式體系結(jié)構(gòu),結(jié)合Struts、Spring、Hibernate進行開發(fā)。這樣的設(shè)計可以使系統(tǒng)開發(fā)模式化,能夠生成結(jié)構(gòu)嚴謹、規(guī)范有效的應(yīng)用程序。各項業(yè)務(wù)按照功能模塊細化拆分,然后由系統(tǒng)整體的配置文件實現(xiàn)對所有業(yè)務(wù)流程的具體控制和調(diào)用,以此實現(xiàn)業(yè)務(wù)邏輯與用戶界面的分離,降低了系統(tǒng)的耦合度,同時也提高了系統(tǒng)的可移植性和可維護性。按照上述開發(fā)思路和技術(shù)要求,基于SSH架構(gòu)的論壇信息系統(tǒng)分為3層,頁面表現(xiàn)層、業(yè)務(wù)邏輯層以及數(shù)據(jù)持久層。
在該系統(tǒng)中,Struts主要負責(zé)在Struts.xml中對信息查詢、用戶行為分析、系統(tǒng)管理等每個模塊對應(yīng)的頁面與后臺之間提供交互,包括查詢結(jié)果、明細信息、頁面維護等,即展現(xiàn)層的頁面處理,如頁面上查詢條件的選擇,通過jsp頁面中的action到相應(yīng)的Struts.xml中找到相應(yīng)的java類,然后處理完后返回到對應(yīng)的網(wǎng)頁。Struts主要控制了邏輯的處理。
在論壇信息管理系統(tǒng)中,Strtus容器負責(zé)處理用戶請求,提供業(yè)務(wù)邏輯控制功能,通過各種action的頁面處理,與展現(xiàn)層相連接;Spring容器提高了Javabean的松耦合性,通過控制反轉(zhuǎn)和依賴注入,提供了對論壇信息處理系統(tǒng)的輕量級的處理;Hibernate容器對JDBC進行了封裝,從而對頁面得到的各種論壇信息數(shù)據(jù)進行處理。
3 數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫是論壇信息管理系統(tǒng)的信息基地,它包含發(fā)帖信息、回帖信息、用戶信息、管理員信息、關(guān)鍵字信息以及與用戶信息中地點相關(guān)的全國省市表,同時包括用戶單位時間內(nèi)發(fā)帖的視圖、用戶單位時間內(nèi)回帖的視圖、用戶異常信息的視圖等。這些數(shù)據(jù)之間有各種直接或間接的對應(yīng)關(guān)系,系統(tǒng)的每個功能模塊都需要操作一個或多個數(shù)據(jù)實體,如用戶信息對象,用戶發(fā)帖信息對象用戶回帖信息對象等,下面具體介紹一下該系統(tǒng)用到的幾個重要的數(shù)據(jù)實體。
3.1 發(fā)帖信息對象
發(fā)帖信息對象包括id、發(fā)帖時間、用戶名、國家、省份、城市、url、語言、主題、帖子內(nèi)容、tid、帖子狀態(tài)、關(guān)鍵字等屬性。
3.2 回帖信息對象
回帖信息對象包括id、回帖時間、用戶名、國家、省份、城市、url、語言、帖子內(nèi)容、tid、帖子狀態(tài)、關(guān)鍵字等屬性。
3.3 用戶信息對象
用戶信息對象包括用戶名、密碼、職業(yè)、創(chuàng)建時間、uid等屬性。
3.4 管理員信息
管理員對象包括id、是否有效、創(chuàng)建時間、修改時間、用戶名、密碼等屬性。
3.5 關(guān)鍵字信息
關(guān)鍵字對象比較簡單,只包含id,關(guān)鍵字兩個屬性。
3.6 地址映射信息
地址映射信息主要包括中國主要省、省內(nèi)地級市以及部分國外城市對應(yīng)的映射表,它包含國家、省份、城市屬性。
4 處理流程設(shè)計
論壇信息管理系統(tǒng)分為論壇信息抓取以及后臺的信息查詢、用戶行為分析和系統(tǒng)管理幾個模塊。
4.1 論壇信息抓取流程
從論壇主頁的頁面中獲取每個論壇版塊的網(wǎng)址,并將它們存入容器中,對容器中每個論壇版塊進行遍歷,然后在各版塊頁面獲得每個帖子的名稱、鏈接等信息。通過網(wǎng)址鏈接到每個帖子的網(wǎng)頁,在頁面上獲得帖子的信息,即每個發(fā)帖和回帖的標題信息、用戶名、時間以及帖子內(nèi)容,并通過區(qū)分帖子樓數(shù)來區(qū)分發(fā)貼和回帖,同時獲得在頁面中需要獲得用戶信息,即用戶名、職業(yè)、注冊時間等。在這個過程中,還需要根據(jù)頁面的頁數(shù)來確定該版塊或者帖子頁面有幾頁,是否需要對鏈接的下一頁繼續(xù)處理。最后將獲得的發(fā)貼信息、回帖信息以及用戶信息根據(jù)固定的格式存入數(shù)據(jù)庫,以便于信息查詢模塊、用戶行為分析模塊以及系統(tǒng)管理模塊的處理。
4.2 信息查詢流程
對于發(fā)帖信息查詢模塊和回貼信息查詢模塊,系統(tǒng)管理員可以根據(jù)用戶名,發(fā)帖時間、用戶地址等查詢每個帖子的用戶名、發(fā)帖時間、發(fā)帖標題,以及回帖人的用戶名、回帖內(nèi)容、回帖時間等信息,同時,當(dāng)點擊某一條記錄后,可以看到該記錄的詳細信息,包括帖子url,帖子主題、注冊時間、詳細內(nèi)容等。在某一條記錄的最后一列,還可以針對該記錄對應(yīng)的用戶,將該發(fā)帖或者回帖加入特殊名單,則該用戶所有的發(fā)帖或者回帖都會變成紅色,方便系統(tǒng)管理員進行管理,當(dāng)查詢完畢后,也可點擊退出,則該用戶發(fā)帖或者回帖恢復(fù)成正常顏色。
4.3 用戶行為分析流程
用戶行為分析包括活躍用戶模塊、異常用戶模塊以及輿論領(lǐng)袖模塊,主要根據(jù)用戶名查詢用戶的活躍度、異常度以及關(guān)注度,查詢結(jié)果根據(jù)相應(yīng)參數(shù)進行排序,每條查詢結(jié)果點擊則可以獲取其詳細記錄。
4.4 系統(tǒng)管理流程
系統(tǒng)管理分為關(guān)鍵字管理與賬戶管理兩個模塊,管理員可以對關(guān)鍵字進行增加、刪除、修改以及查詢操作,帳戶管理模塊負責(zé)對系統(tǒng)管理員的增加、刪除、修改以及查詢操作,同時增加了對系統(tǒng)管理員的簡單權(quán)限處理,如果當(dāng)前登錄用戶為sa,則可以對所有系統(tǒng)管理員用戶進行管理,如果是其他用戶,只可以對自己進行管理。
5 算法設(shè)計
對于一個規(guī)范的論壇系統(tǒng),主頁包含著各種不同的版塊頁面,對一個版塊頁面又包含每條帖子的目錄,如精品帖、普通帖等,一般按照回復(fù)時間排序,對一個帖子又可以根據(jù)連接訪問其帖子頁面,帖子頁面包含各條回復(fù)(現(xiàn)在網(wǎng)絡(luò)中一般對于每條回復(fù)稱為幾樓,發(fā)帖人又被稱為樓主),因此對于這樣一個樹狀結(jié)構(gòu),人們常采用的檢索辦法是廣度優(yōu)先搜索算法和深度優(yōu)先搜索算法。鑒于該系統(tǒng)主要是對論壇中的發(fā)帖和回帖進行抓取,而搜索部分的實現(xiàn)則是在數(shù)據(jù)庫中進行簡單查詢,所有的帖子節(jié)點都必須被存儲,故兩種算法的空間復(fù)雜度相同,都為O(|V|+|E|),其中|V|是帖子節(jié)點的數(shù)目,而|E|是上圖中邊的數(shù)目。而從程序的結(jié)構(gòu)性考慮,從主頁根據(jù)版塊地址往下進行深度優(yōu)先遍歷更容易實現(xiàn),故該系統(tǒng)采用的是深度優(yōu)先遍歷算法,將論壇中的所有帖子進行存儲。
6 論壇信息數(shù)據(jù)的實時更新
對于論壇信息數(shù)據(jù)的實時更新,該系統(tǒng)采用的是每10 min進行重新抓取,在每次抓取數(shù)據(jù)時,會在數(shù)據(jù)庫中進行存儲當(dāng)時的系統(tǒng)時間,下次抓取時則對當(dāng)前系統(tǒng)時間與之前時間進行比較,對帖子頁面中最后一樓的時間進行分析,若大于之前時間,就進行存儲,若小于則返回版塊頁面繼續(xù)遍歷。
該文從系統(tǒng)的整體結(jié)構(gòu)、模塊層次結(jié)構(gòu)、系統(tǒng)架構(gòu)、數(shù)據(jù)庫、處理流程以及算法等幾個方面給出了相應(yīng)的設(shè)計。主要對論壇信息抓取、信息查詢、用戶行為分析、系統(tǒng)管理進行了分析和設(shè)計,實現(xiàn)了論壇對各種信息的全方位管理。
參考文獻
[1] 中國互聯(lián)網(wǎng)信息中心.第31次中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告[J].互聯(lián)網(wǎng)天地,2013(10):74-91.
[2] 李科.論網(wǎng)絡(luò)論壇的發(fā)展對中國公共政策的影響[J].現(xiàn)代商貿(mào)工業(yè),2009,24(8):239-243.
[3] 肖晨陽.一種互聯(lián)網(wǎng)輿情監(jiān)控軟件實現(xiàn)[J].電腦知識與技術(shù),2012,8(12):8177-8179.
[4] 王雪.基于Struts+Spring+Hibernate 框架的企業(yè)培訓(xùn)管理系統(tǒng)的設(shè)計與實現(xiàn)[D].吉林大學(xué),2012.
[5] 錢雪忠,羅海馳,陳國俊,等.數(shù)據(jù)庫原理及技術(shù)課程設(shè)計[M]. 北京:清華大學(xué)出版社,2009:67.
[6] 薛華成.管理信息系統(tǒng)[M].5版.北京:清華大學(xué)出版社,2007:43.
[7] 張玉峰,王志芳.基于內(nèi)容相似性的論壇用戶社會網(wǎng)絡(luò)挖掘[J].情報雜志,2010,29(8):125-130.