劉旭東,李沛茜,陳 純
(1.煙臺職業學院科研處,山東煙臺264670;2.浙江大學計算機科學與技術學院,浙江杭州310027)
隨著Internet網絡的日趨普及,動畫、視音頻將成為媒體資源的主角,與傳統的文字、圖像結合在一起成為網絡上傳輸的媒體信息.這種情況下媒體信息的傳輸變得越來越重要,流式技術及其邊下載邊播放的特性深受教育、娛樂等行業的喜愛.以流式技術為基礎,開發研究能夠實現用戶節目點播、頻道收看、多媒體資源存儲、共享等功能的多媒體資源點播系統及其管理平臺也就顯得尤為重要.寬帶電影網站,作為挑戰傳統電影播放形式,己經廣為接受,并逐漸成為了大眾娛樂應用在Internet上的基本模式.另一方面,隨著Internet技術的發展,基于MVC(Model-View-Controller)模型的Struts框架越來越受到Web系統開發者的歡迎.Struts是建立在當前動態網站設計領域中JSP、Servlet、XML等相關開發技術基礎之上的一種主流開發架構,具有組件模塊化、靈活性和重用性的優點,同時極大地簡化了Web應用程序的開發.它合理地將用戶表示邏輯、業務邏輯和控制邏輯分離,使得開發過程變得簡潔清晰,并提高了軟件的可維護性和可重用性[1].通過分析浙江大學校內視頻點播系統,提出一種基于struts框架的在線寬帶影院系統,充分利用面向對象設計、代碼重用以及Java語言“編寫一次、到處運行”的優點,并采用模塊化處理思想,提高系統開發效率.
Struts是Apache基金會Jakarta項目組的一個Open Source項目,它采用MVC模式,能夠很好地幫助Java開發者利用J2EE開發Web應用[2].和其他的Java架構一樣,Struts也是面向對象設計,將MVC模式“分離顯示邏輯和業務邏輯”的能力發揮得淋漓盡致.Structs框架的核心是一個彈性的控制層,基于如Java Servlets,JavaBeans,ResourceBundles與XML等標準技術,以及Jakarta Commons的一些類庫.Struts有一組相互協作的類(組件)、Serlvet以及jsp taglib組成.基于Struts構架的Web應用程序基本上符合JSP Model2的設計標準,可以說是一個傳統MVC設計模式的一種變化類型.
Struts的工作原理如圖1所示.
圖1 Struts工作原理圖
控制器:在Struts中,控制器由ActionServlet類來實現.ActionServlet是一個通用的控制組件,提供了處理所有發送Struts的H TTP請求的入口點.根據配置文件struts-config.xml的配置信息,把請求轉發給適當的Action對象.如果Action對象不存在,ActionServlet會先創建這個對象.
視圖:主要采用JSP作為視圖的實現,它提供了豐富的JSP標簽庫支持應用程序的開發,而且引入了ActionForm組件(實質為JavaBean)作為用戶表單的封裝來完成數據的傳輸.
模型:在Struts中,主要有3種Bean,分別是:ActionForm、Action、JavaBean或者EJB.ActionF-orm用來封裝來自client的用戶請求信息,Action獲取ActionForm中的數據,再調用EJB或者JavaBean進行處理.
在線寬帶影院系統包括兩個部分:一個是前臺管理程序,它負責將系統管理的所有節目生成節目單提供給用戶,并為已注冊用戶提供節目查詢、點播、下載等功能;另一個是后臺管理程序,商家在此管理影視的相關信息發布,處理影視節目信息,并管理在網站上注冊的用戶等.
根據系統描述,采用模塊化處理思想,將系統劃分成一系列功能模塊,如圖2所示.
圖2 系統功能模塊圖
各模塊具體完成的功能如下:
1)后臺管理
(1)管理員管理模塊:管理設置管理員權限,添加、修改、刪除管理員信息,管理員登陸系統等.
(2)公告管理模塊:管理系統公告信息,如系統幫助信息、各項活動信息等.
(3)節目管理模塊:負責完成節目內容的維護工作,包括:①節目內容的添加、修改、刪除、歸類、發布;②動態生成節目單,供用戶瀏覽;③提供用戶對節目文件的點播;④提供方便快捷的查詢方式.
(4)用戶管理模塊:這里的用戶指前臺注冊用戶,即節目的使用者.該模塊負責用戶信息的查看、修改、刪除及權限的變更.
2)前臺管理
(1)信息導航模塊:按影視節目類型生成影視節目導航,并在頁面上生成影視節目單,提供影視節目詳細信息頁面鏈接.該頁面還提供影視節目點播鏈接,并對高級權限用戶提供下載鏈接.
(2)影視查詢模塊:節目使用者不僅可以根據節目類型查找自己所需節目,還可以利用系統提供的搜索功能對節目進行快速定位.
(3)信息展示模塊:最新節目羅列、點播排行羅列、查看公告和下載排行羅列.
(4)注冊登陸模塊:提供新用戶注冊;提供用戶登錄入口,驗證用戶合法性;提供個人信息修改;離開系統,取消系統對用戶的跟蹤.
(5)在線視聽模塊:對注冊用戶提供視頻點播,在線觀看服務.
(6)下載模塊:對高級會員提供影視節目的下載功能.
本系統使用SQL Server 2000作為后臺數據庫,主要工作是對數據(尤其是視音頻信息數據)進行訪問操作,為用戶快速查找、使用、管理視音頻節目提供方便.根據系統各個功能模塊的需要,經過設計得到以下幾個數據庫表:用戶信息表UserInfo_table(用戶編號,用戶名稱,密碼等),用于記錄用戶信息.管理員信息表ManagerInfo_table(管理員編號,管理員名稱,密碼等),用于記錄管理員信息.影視信息表MovieInfo_table(影視編號,影視名稱,影視圖片等),用于記錄影視信息.公告信息表BulletinInf_table(公告編號,公告標題,公告內容,更新人員,更新時間),用于記錄發布的公告信息.下載記錄表Download(下載編號,影視編號,下載次數,最后下載時間),用于記錄影視下載信息.影視類型表Movietype(類型編號,類型名稱,備注),用于記錄影視類型信息.點播記錄表Order(點播編號,影視編號,點播次數,最后點播時間),用于記錄點播信息.
根據Struts的設計思想,再結合前面的系統功能模塊設計,利用面向對象的程序設計思想,歸納出整個系統中需要管理的對象有管理員、用戶、影視節目、公告、點播記錄和下載記錄等[3].經分析得出各個管理對象所對應的Struts組件,包括:ActionS-ervlet、ActionForm、Action、FormBean等,如表1所示.
表1 系統各模塊對應的Struts組件
系統采用Web服務器為Tomcat5.0,流媒體服務器為RealServer,數據庫為SQL Server 2000,Java版本為JDK1.5的運行環境,使用Dream-Weaver8.0和JSP技術進行網絡應用程序的開發,利用JDBC技術對后臺數據庫進行訪問[4].
在在線影院系統中采用數據庫連接池技術提高訪問數據庫的效率[5].在數據源中事先建立了多個數據庫連接,這些連接保存在數據庫連接池中.Java程序訪問數據庫時,只需從連接池中取出空閑狀態的數據庫連接;程序訪問數據庫結束之后,再將數據庫連接放回連接池.在Tomcat_Homeconfserver.xml中加入:
…
創建web.xml文件[3],這是一個基于Servlet的Web應用程序都需要的部署描述文件,在其中加入對ActionServlet和標簽庫的描述,部分代碼如下所示:
根據以上配置,ActionServlet在Web應用啟動時就被加載并初始化,在Web應用中,所有“*.do”形式的URL都由ActionServlet來處理.在修改完web.xml文件后,在WEB-INF目錄下創建struts-config.xml的文件.在struts-config.xml中包含form-beans(定義ActionForm類)、global-forwards(配置全局轉發)、action-mappings(配置ActionMapping)和messageresources幾個部分.
在配置好服務器、初始化站點、配置數據源和Struts架構后,再進行各個功能模塊的開發.以在線視聽模塊為例,這一模塊包括的內容有:影視節目的后臺業務邏輯實現、節目查詢、節目點播.后臺業務邏輯實現采用Struts架構,如圖3所示.
MovieAction、MovieModel和MovieForm作為Struts構件.MovietModel表示影視信息,它對應數據庫表中的字段.MovieForm是BaseForm即ActionForm的子類,具有MovieModel的屬性并提供了對MovieModel字段的getX()和setX()方法.Action包含影視信息管理中所有操作的Action類,如查詢、增加、修改和刪除等操作,可以通過它調用數據庫操作的類.MovieInfo與數據庫表MovieInfo_table中的各個字段相對應,用于保存和傳遞數據.OrderMovie代表了在線視聽中各個影視的信息,如影視名稱、導演、主要演員、語言和發行國家等.OrderBean封裝了在線視聽中所有的業務邏輯,包括點播編號、點播次數和最后點播時間等操作.其它模塊的實現與其類似.
圖3 在線視聽模塊的Struts實現
采用Struts以及JSP、servlet、JavaBean和JDBC等技術,通過實現視圖、模型和控制器的分離,大大簡化了Web應用的開發過程,提高了Web應用的可重用性和可擴展性.以上系統的設計與實現,體現了軟件工程的設計思想以及在Web應用中使用Struts的方法,可以方便地擴展框架,更好地適應用戶的實際需求.
[1] 張煒,高原.基于Struts框架的Web應用系統設計與實現[J] .電腦知識與技術,2009,16(15):3 951-3 952.
[2] 聶剛,卿秀華.基于MVC模式的Struts框架在高校開放實驗室系統的應用[J] .武漢科技學院學報,2007,20(6):5-8.
[3] 孫衛琴.精通Struts:基于MVC的Java Web設計與開發[M] .北京:電子工業出版社,2004.
[4] 孫衛琴,李洪成.Tomcat與Java Web開發技術詳解[M] .北京:電子工業出版社,2004.
[5] 飛思科技產品開發中心.JSP數據庫開發應用詳解[M] .北京:電子工業出版社,2004.