鄧 芳,劉曉梅
(煙臺職業學院,山東 煙臺 264670)
基于三層架構的新聞發布系統的研究與實現*
鄧 芳,劉曉梅
(煙臺職業學院,山東 煙臺 264670)
主要是對新聞發布系統使用了三層架構的思想,進行了總體設計,并對其功能模塊和程序設計進行了詳細的闡述.使用了三層架構的新聞發布系統運行時更安全、更易于維護.
新聞;B/S;三層架構
隨著信息技術的不斷進步,新聞呈現方式也在不斷的發生變化,從早期的紙張記錄,到蒸汽印刷機帶來的報業繁榮,隨著收音機的興起,我們聽到了更多夢寐以求的聲音,電視臺、衛星電視的出現,改變了我們的生活,到了今天的網絡時代,我們甚至只需一臺電腦和一根電話線就可以看到世界任何一處的信息。在不久的未來,相信手機將為新聞帶來新的紀元。
隨著技術的發展,我們勢必需要一個新聞發布系統來發布通過網絡呈現的新聞內容,將網頁上的某些需要經常變動的信息,類似新聞、新產品發布和業界動態等更新信息集中管理,并通過信息的某些共性進行分類,最后系統化、標準化發布到網站上的一種網站應用程序因運而生。
網絡新聞發布系統的出現大大減輕了網站更新維護的工作量,通過網絡數據庫的引用,將網站的更新維護工作簡化到只需錄入文字和上傳圖片,從而使網站的更新速度大大縮短,在某些專門的網上新聞站點,如新浪的新聞中心等,新聞的更新速度已經是即時更新,從而大大加快了信息的傳播速度,也吸引了更多的長期用戶群,時時保持網站的活動力和影響力。
而本文又使用了三層架構的思想對傳統的新聞發布系統進行了改進,使此系統在使用時更安全,并且使后期的維護變得簡單。
系統主要以ASP。NET為開發平臺,SQL Server 2005為后臺數據庫,采用三層架構的形式進行系統的分析,三層架構主要分為數據層、業務邏輯層和表示層。數據層主要進行的是對數據庫的操作,包括對數據庫的增刪改查等功能都是在數據層進行單獨的設計,從而使系統的安全性得以提高。業務邏輯層主要進行的是負責所有的業務邏輯處理,它接受表示層傳來的數據,根據傳來的數據進行調用數據層的相應函數進行對數據庫的操作,最后把結果傳遞給表示層,進行最終的顯示。表示層就是對頁面的規劃,負責跟用戶進行交互,接收用戶的輸入并將服務器端傳來的數據呈現給客戶。
基于三層架構的設計使系統變得更簡單、快捷。
本系統分為前臺管理和后臺管理模塊,前臺管理是對新聞的顯示部分,后臺的管理又分為后臺登錄模塊、新聞欄目和類別管理模塊、新聞發布模塊和流量統計模塊。下面詳細介紹每個模塊的功能。
前臺顯示頁面主要的功能是將所有的欄目都顯示出來,并且每個欄目下顯示本欄目下最新的10條新聞。每個新聞列表下有“更多…”的鏈接,用于打開本欄目的頁面。欄目頁面包括其下所有的類別,類別下同樣顯示本類別下最新的10條新聞。每個新聞列表下具有“更多…”的鏈接,用于打開本類別的頁面。類別頁面包括了此類別下的所有新聞,并且提供分頁功能,新聞以時間倒序進行了排序,最上面的新聞顯示的是最新的內容。并且每個新聞列表均能點擊標題進入新聞瀏覽頁面,可以進行新聞的詳細信息的瀏覽。
(1)后臺登錄。新聞發布系統要實現后臺新聞管理,欄目管理等等一系列功能,而這些功能的實現之前需要實現的是系統的登錄,必須使用正確的用戶名和密碼還有驗證碼才能登陸到本系統的后臺管理頁面。這就是后臺登錄模塊實現的功能。
(2)新聞欄目、類別管理。登錄正確后,管理員可以對新聞類別和新聞欄目進行更改。新聞類別是屬于新聞欄目的子項。新聞欄目可以進行添加、刪除、修改。新聞類別也可以進行添加、刪除、修改;并且修改類別時能夠調整其所屬的欄目。
(3)新聞修改。新聞的添加包括的內容有:新聞標題、所屬類別、發布時間、發布人、來源、關鍵字、內容。其中發布時間取服務器當前時間。其他新聞項目需要手敲進去。
已發布的新聞是能夠修改的,已發布的新聞以列表形式顯示出來,該列表提供了查詢功能,能夠按照類別以及關鍵字進行新聞的查詢。新聞的修改可以通過列表打開相應的新聞修改頁面,對新聞進行相應的修改。保存數據時發布時間改為當前的服務器時間,其他的新聞項目以修改后的數據更新數據庫。
(4)流量統計。為了了解當月最熱點的新聞,本系統有新聞月流量的統計,可以查看新聞每月點擊率排行榜,排行榜按照從多到少的順序排列。依次顯示新聞的流量。
每一個系統數據庫的設計是至關重要的,對數據庫如何管理、如何操作、如何實現查詢是建立數據庫需要考慮的首要問題。怎樣建庫、使用什么樣的庫結構,關系到管理和查詢的準確程度和查詢的效率。本系統主要建立了四個表,表的內容如下:
用戶信息表:這個表主要是用來存儲管理員的用戶名密碼的。為了管理員登錄的時候進行比對。
新聞欄目表:此表主要是存儲新聞欄目的,比方說是娛樂新聞,還是軍事新聞等等,有一個欄目ID是主鍵,它會跟新聞類別表之間進行關聯。
新聞類別表:此表主要是存儲新聞類別的,它跟新聞欄目表之間有關聯,就是表示新聞欄目中比方說軍事新聞,它會包括國內軍事還是國際軍事,它們之間用新聞欄目ID的外鍵進行關聯。表示新聞類別是屬于新聞欄目的。
新聞表:此表是用來存儲新聞的,表里包含新聞的ID,新聞的標題,新聞屬于的類別,新聞的發布時間,新聞的關鍵字,新聞來源,新聞內容等,這個表跟新聞類別表有關聯,表示此條新聞是屬于那個新聞類別的。
本系統是使用三層架構實現的,下面把系統中如何顯示新聞的實現方式展示出來。
因為是使用三層架構的方式實現,所以在系統實現功能的前提之下是把類先建立出來,這個類的定義就是跟數據庫是一一對應的,數據庫中有幾個表,系統中就有幾個類,并且類中只要相應的數據成員,沒有任何方法,類中的數據成員跟表中的字段也是一一對應的,下面列出News類中的具體定義:

數據層主要是對數據庫的相應操作,現在是對數據庫中新聞的顯示,所以要寫一個方法對數據庫中新聞表中每個字段的查詢顯示。代碼如下:

業務邏輯層就是調用數據層的GetSingle這個方法,把從表示層傳來的newsID值給數據層傳進去,最終接受到GetSingle方法返回的news信息。
表示層需要把業務邏輯成返回的結果逐一的顯示在頁面上。部分代碼如下:

本系統是使用三層架構的方式設計的程序,三層架構的特點就是可以使得開發人員的分工更加明確,使系統有松散的耦合度,并且會使系統后期的維護變得輕松。但是三層架構雖然優點很多,也有它自身的缺點,它會降低了系統的性能,雖然它會降低系統性能但對于我們現在的硬件的發展,這種性能的降低微乎其微。所以,還是推薦程序員使用三層架構的方式來分析問題、解決問題。
[1]John Kauffman,Brain Matasik.ASP.NET數據庫入門經典[M].北京:清華大學出版社,2002.
[2]馮玉才.數據庫系統基礎[M].第2版.武漢:華中科技大學出版社,2001.
[3]張躍廷.ASP.NET 2.0網絡編程自學手冊[M].北京:人民郵電出版社,2008.
[4]鄭齊心.ASP.NET項目開發案例全程實錄[M].第2版.北京:清華大學出版社,2011.
[5]章立民.ASP.NET 3.5開發范例精講精析(基于 C#)[M].北京:科學出版社,2009.
TP311.52
A
1006-5342(2012)07-0168-02
2012-03-18