鄧 芳,劉曉梅
(煙臺(tái)職業(yè)學(xué)院,山東 煙臺(tái) 264670)
基于三層架構(gòu)的新聞發(fā)布系統(tǒng)的研究與實(shí)現(xiàn)*
鄧 芳,劉曉梅
(煙臺(tái)職業(yè)學(xué)院,山東 煙臺(tái) 264670)
主要是對(duì)新聞發(fā)布系統(tǒng)使用了三層架構(gòu)的思想,進(jìn)行了總體設(shè)計(jì),并對(duì)其功能模塊和程序設(shè)計(jì)進(jìn)行了詳細(xì)的闡述.使用了三層架構(gòu)的新聞發(fā)布系統(tǒng)運(yùn)行時(shí)更安全、更易于維護(hù).
新聞;B/S;三層架構(gòu)
隨著信息技術(shù)的不斷進(jìn)步,新聞呈現(xiàn)方式也在不斷的發(fā)生變化,從早期的紙張記錄,到蒸汽印刷機(jī)帶來的報(bào)業(yè)繁榮,隨著收音機(jī)的興起,我們聽到了更多夢(mèng)寐以求的聲音,電視臺(tái)、衛(wèi)星電視的出現(xiàn),改變了我們的生活,到了今天的網(wǎng)絡(luò)時(shí)代,我們甚至只需一臺(tái)電腦和一根電話線就可以看到世界任何一處的信息。在不久的未來,相信手機(jī)將為新聞帶來新的紀(jì)元。
隨著技術(shù)的發(fā)展,我們勢(shì)必需要一個(gè)新聞發(fā)布系統(tǒng)來發(fā)布通過網(wǎng)絡(luò)呈現(xiàn)的新聞內(nèi)容,將網(wǎng)頁上的某些需要經(jīng)常變動(dòng)的信息,類似新聞、新產(chǎn)品發(fā)布和業(yè)界動(dòng)態(tài)等更新信息集中管理,并通過信息的某些共性進(jìn)行分類,最后系統(tǒng)化、標(biāo)準(zhǔn)化發(fā)布到網(wǎng)站上的一種網(wǎng)站應(yīng)用程序因運(yùn)而生。
網(wǎng)絡(luò)新聞發(fā)布系統(tǒng)的出現(xiàn)大大減輕了網(wǎng)站更新維護(hù)的工作量,通過網(wǎng)絡(luò)數(shù)據(jù)庫的引用,將網(wǎng)站的更新維護(hù)工作簡(jiǎn)化到只需錄入文字和上傳圖片,從而使網(wǎng)站的更新速度大大縮短,在某些專門的網(wǎng)上新聞?wù)军c(diǎn),如新浪的新聞中心等,新聞的更新速度已經(jīng)是即時(shí)更新,從而大大加快了信息的傳播速度,也吸引了更多的長(zhǎng)期用戶群,時(shí)時(shí)保持網(wǎng)站的活動(dòng)力和影響力。
而本文又使用了三層架構(gòu)的思想對(duì)傳統(tǒng)的新聞發(fā)布系統(tǒng)進(jìn)行了改進(jìn),使此系統(tǒng)在使用時(shí)更安全,并且使后期的維護(hù)變得簡(jiǎn)單。
系統(tǒng)主要以ASP。NET為開發(fā)平臺(tái),SQL Server 2005為后臺(tái)數(shù)據(jù)庫,采用三層架構(gòu)的形式進(jìn)行系統(tǒng)的分析,三層架構(gòu)主要分為數(shù)據(jù)層、業(yè)務(wù)邏輯層和表示層。數(shù)據(jù)層主要進(jìn)行的是對(duì)數(shù)據(jù)庫的操作,包括對(duì)數(shù)據(jù)庫的增刪改查等功能都是在數(shù)據(jù)層進(jìn)行單獨(dú)的設(shè)計(jì),從而使系統(tǒng)的安全性得以提高。業(yè)務(wù)邏輯層主要進(jìn)行的是負(fù)責(zé)所有的業(yè)務(wù)邏輯處理,它接受表示層傳來的數(shù)據(jù),根據(jù)傳來的數(shù)據(jù)進(jìn)行調(diào)用數(shù)據(jù)層的相應(yīng)函數(shù)進(jìn)行對(duì)數(shù)據(jù)庫的操作,最后把結(jié)果傳遞給表示層,進(jìn)行最終的顯示。表示層就是對(duì)頁面的規(guī)劃,負(fù)責(zé)跟用戶進(jìn)行交互,接收用戶的輸入并將服務(wù)器端傳來的數(shù)據(jù)呈現(xiàn)給客戶。
基于三層架構(gòu)的設(shè)計(jì)使系統(tǒng)變得更簡(jiǎn)單、快捷。
本系統(tǒng)分為前臺(tái)管理和后臺(tái)管理模塊,前臺(tái)管理是對(duì)新聞的顯示部分,后臺(tái)的管理又分為后臺(tái)登錄模塊、新聞欄目和類別管理模塊、新聞發(fā)布模塊和流量統(tǒng)計(jì)模塊。下面詳細(xì)介紹每個(gè)模塊的功能。
前臺(tái)顯示頁面主要的功能是將所有的欄目都顯示出來,并且每個(gè)欄目下顯示本欄目下最新的10條新聞。每個(gè)新聞列表下有“更多…”的鏈接,用于打開本欄目的頁面。欄目頁面包括其下所有的類別,類別下同樣顯示本類別下最新的10條新聞。每個(gè)新聞列表下具有“更多…”的鏈接,用于打開本類別的頁面。類別頁面包括了此類別下的所有新聞,并且提供分頁功能,新聞以時(shí)間倒序進(jìn)行了排序,最上面的新聞顯示的是最新的內(nèi)容。并且每個(gè)新聞列表均能點(diǎn)擊標(biāo)題進(jìn)入新聞瀏覽頁面,可以進(jìn)行新聞的詳細(xì)信息的瀏覽。
(1)后臺(tái)登錄。新聞發(fā)布系統(tǒng)要實(shí)現(xiàn)后臺(tái)新聞管理,欄目管理等等一系列功能,而這些功能的實(shí)現(xiàn)之前需要實(shí)現(xiàn)的是系統(tǒng)的登錄,必須使用正確的用戶名和密碼還有驗(yàn)證碼才能登陸到本系統(tǒng)的后臺(tái)管理頁面。這就是后臺(tái)登錄模塊實(shí)現(xiàn)的功能。
(2)新聞欄目、類別管理。登錄正確后,管理員可以對(duì)新聞?lì)悇e和新聞欄目進(jìn)行更改。新聞?lì)悇e是屬于新聞欄目的子項(xiàng)。新聞欄目可以進(jìn)行添加、刪除、修改。新聞?lì)悇e也可以進(jìn)行添加、刪除、修改;并且修改類別時(shí)能夠調(diào)整其所屬的欄目。
(3)新聞修改。新聞的添加包括的內(nèi)容有:新聞標(biāo)題、所屬類別、發(fā)布時(shí)間、發(fā)布人、來源、關(guān)鍵字、內(nèi)容。其中發(fā)布時(shí)間取服務(wù)器當(dāng)前時(shí)間。其他新聞項(xiàng)目需要手敲進(jìn)去。
已發(fā)布的新聞是能夠修改的,已發(fā)布的新聞以列表形式顯示出來,該列表提供了查詢功能,能夠按照類別以及關(guān)鍵字進(jìn)行新聞的查詢。新聞的修改可以通過列表打開相應(yīng)的新聞修改頁面,對(duì)新聞進(jìn)行相應(yīng)的修改。保存數(shù)據(jù)時(shí)發(fā)布時(shí)間改為當(dāng)前的服務(wù)器時(shí)間,其他的新聞項(xiàng)目以修改后的數(shù)據(jù)更新數(shù)據(jù)庫。
(4)流量統(tǒng)計(jì)。為了了解當(dāng)月最熱點(diǎn)的新聞,本系統(tǒng)有新聞月流量的統(tǒng)計(jì),可以查看新聞每月點(diǎn)擊率排行榜,排行榜按照從多到少的順序排列。依次顯示新聞的流量。
每一個(gè)系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì)是至關(guān)重要的,對(duì)數(shù)據(jù)庫如何管理、如何操作、如何實(shí)現(xiàn)查詢是建立數(shù)據(jù)庫需要考慮的首要問題。怎樣建庫、使用什么樣的庫結(jié)構(gòu),關(guān)系到管理和查詢的準(zhǔn)確程度和查詢的效率。本系統(tǒng)主要建立了四個(gè)表,表的內(nèi)容如下:
用戶信息表:這個(gè)表主要是用來存儲(chǔ)管理員的用戶名密碼的。為了管理員登錄的時(shí)候進(jìn)行比對(duì)。
新聞欄目表:此表主要是存儲(chǔ)新聞欄目的,比方說是娛樂新聞,還是軍事新聞等等,有一個(gè)欄目ID是主鍵,它會(huì)跟新聞?lì)悇e表之間進(jìn)行關(guān)聯(lián)。
新聞?lì)悇e表:此表主要是存儲(chǔ)新聞?lì)悇e的,它跟新聞欄目表之間有關(guān)聯(lián),就是表示新聞欄目中比方說軍事新聞,它會(huì)包括國(guó)內(nèi)軍事還是國(guó)際軍事,它們之間用新聞欄目ID的外鍵進(jìn)行關(guān)聯(lián)。表示新聞?lì)悇e是屬于新聞欄目的。
新聞表:此表是用來存儲(chǔ)新聞的,表里包含新聞的ID,新聞的標(biāo)題,新聞屬于的類別,新聞的發(fā)布時(shí)間,新聞的關(guān)鍵字,新聞來源,新聞內(nèi)容等,這個(gè)表跟新聞?lì)悇e表有關(guān)聯(lián),表示此條新聞是屬于那個(gè)新聞?lì)悇e的。
本系統(tǒng)是使用三層架構(gòu)實(shí)現(xiàn)的,下面把系統(tǒng)中如何顯示新聞的實(shí)現(xiàn)方式展示出來。
因?yàn)槭鞘褂萌龑蛹軜?gòu)的方式實(shí)現(xiàn),所以在系統(tǒng)實(shí)現(xiàn)功能的前提之下是把類先建立出來,這個(gè)類的定義就是跟數(shù)據(jù)庫是一一對(duì)應(yīng)的,數(shù)據(jù)庫中有幾個(gè)表,系統(tǒng)中就有幾個(gè)類,并且類中只要相應(yīng)的數(shù)據(jù)成員,沒有任何方法,類中的數(shù)據(jù)成員跟表中的字段也是一一對(duì)應(yīng)的,下面列出News類中的具體定義:
數(shù)據(jù)層主要是對(duì)數(shù)據(jù)庫的相應(yīng)操作,現(xiàn)在是對(duì)數(shù)據(jù)庫中新聞的顯示,所以要寫一個(gè)方法對(duì)數(shù)據(jù)庫中新聞表中每個(gè)字段的查詢顯示。代碼如下:
業(yè)務(wù)邏輯層就是調(diào)用數(shù)據(jù)層的GetSingle這個(gè)方法,把從表示層傳來的newsID值給數(shù)據(jù)層傳進(jìn)去,最終接受到GetSingle方法返回的news信息。
表示層需要把業(yè)務(wù)邏輯成返回的結(jié)果逐一的顯示在頁面上。部分代碼如下:
本系統(tǒng)是使用三層架構(gòu)的方式設(shè)計(jì)的程序,三層架構(gòu)的特點(diǎn)就是可以使得開發(fā)人員的分工更加明確,使系統(tǒng)有松散的耦合度,并且會(huì)使系統(tǒng)后期的維護(hù)變得輕松。但是三層架構(gòu)雖然優(yōu)點(diǎn)很多,也有它自身的缺點(diǎn),它會(huì)降低了系統(tǒng)的性能,雖然它會(huì)降低系統(tǒng)性能但對(duì)于我們現(xiàn)在的硬件的發(fā)展,這種性能的降低微乎其微。所以,還是推薦程序員使用三層架構(gòu)的方式來分析問題、解決問題。
[1]John Kauffman,Brain Matasik.ASP.NET數(shù)據(jù)庫入門經(jīng)典[M].北京:清華大學(xué)出版社,2002.
[2]馮玉才.數(shù)據(jù)庫系統(tǒng)基礎(chǔ)[M].第2版.武漢:華中科技大學(xué)出版社,2001.
[3]張躍廷.ASP.NET 2.0網(wǎng)絡(luò)編程自學(xué)手冊(cè)[M].北京:人民郵電出版社,2008.
[4]鄭齊心.ASP.NET項(xiàng)目開發(fā)案例全程實(shí)錄[M].第2版.北京:清華大學(xué)出版社,2011.
[5]章立民.ASP.NET 3.5開發(fā)范例精講精析(基于 C#)[M].北京:科學(xué)出版社,2009.
TP311.52
A
1006-5342(2012)07-0168-02
2012-03-18