吉亞云,劉 新,葉德建
(復(fù)旦大學(xué)a.軟件學(xué)院;b.網(wǎng)絡(luò)信息安全審計(jì)與監(jiān)控教育部工程研究中心,上海201203)
商用多媒體信息發(fā)布系統(tǒng)持久層設(shè)計(jì)與優(yōu)化
吉亞云a,劉 新b,葉德建b
(復(fù)旦大學(xué)a.軟件學(xué)院;b.網(wǎng)絡(luò)信息安全審計(jì)與監(jiān)控教育部工程研究中心,上海201203)
大規(guī)模的商業(yè)多媒體信息發(fā)布系統(tǒng)因資源及終端數(shù)量龐大,會(huì)導(dǎo)致系統(tǒng)性能低下。為此,提出一種能優(yōu)化系統(tǒng)數(shù)據(jù)存取操作的數(shù)據(jù)持久層設(shè)計(jì)方案。研究并分析多媒體信息發(fā)布系統(tǒng)的特征,選擇Hibernate框架設(shè)計(jì)系統(tǒng)持久層,總結(jié)Hibernate框架在該類系統(tǒng)中合理并高效使用的方法,針對(duì)基于Web的多媒體信息發(fā)布系統(tǒng),給出可以使用Servlet過濾器來管理Hibernate的Session緩存,以延長(zhǎng)Session對(duì)象的生命周期,減少系統(tǒng)對(duì)Session對(duì)象的查找,并能較為充分地利用Session對(duì)象中的緩存數(shù)據(jù)。實(shí)驗(yàn)結(jié)果表明,綜合上述多種優(yōu)化方法,可大幅減少多媒體信息發(fā)布系統(tǒng)的資源消耗,有效提高系統(tǒng)的整體性能。
多媒體信息發(fā)布系統(tǒng);數(shù)據(jù)持久性;Session緩存;過濾器
多媒體信息發(fā)布系統(tǒng)融合網(wǎng)絡(luò)技術(shù)、信息技術(shù)和多媒體技術(shù)[1],實(shí)現(xiàn)對(duì)音視頻、圖片、文本等多種素材的編輯制作和控制播放,同時(shí)支持在顯示器、電視機(jī)、LED、拼接墻、觸摸屏、安卓廣告機(jī)等多種顯示終端上自由組合發(fā)布信息,支持在顯示屏上任意劃分顯示區(qū)域、定點(diǎn)定時(shí)播放以及遠(yuǎn)程集中式管理[2]。目前,國(guó)內(nèi)多媒體信息發(fā)布系統(tǒng)(Multimedia Information Publishing System,MPS)已廣泛應(yīng)用于酒店、醫(yī)院、銀行、商場(chǎng)、交通、傳媒、社區(qū)等場(chǎng)所,為現(xiàn)代化城市提供了便捷、多樣、實(shí)時(shí)的信息傳播。
大型商業(yè)多媒體信息發(fā)布系統(tǒng)具有資源數(shù)量多、終端數(shù)量龐大、發(fā)布內(nèi)容豐富多樣等特點(diǎn),因此,系統(tǒng)性能尤為重要。較好的數(shù)據(jù)持久層設(shè)計(jì),能夠優(yōu)化數(shù)據(jù)存取操作,提高數(shù)據(jù)庫訪問效率,從而有效提高系統(tǒng)的性能表現(xiàn)。
數(shù)據(jù)持久化領(lǐng)域存在著多種成熟的持久化框架,本文結(jié)合大規(guī)模商用多媒體信息發(fā)布系統(tǒng)數(shù)據(jù)量大、數(shù)據(jù)之間關(guān)系復(fù)雜的特點(diǎn),選擇合適的持久化框架,并在系統(tǒng)中進(jìn)行應(yīng)用,提出一種優(yōu)化系統(tǒng)數(shù)據(jù)存取操作的數(shù)據(jù)持久層設(shè)計(jì)方案。
2.1 系統(tǒng)介紹
多媒體信息發(fā)布系統(tǒng)通常由機(jī)頂盒終端、發(fā)布系統(tǒng)服務(wù)器、資源服務(wù)器、播放管理工作站等部分組成。依據(jù)不同的應(yīng)用場(chǎng)景,系統(tǒng)組成可能略有不同。在實(shí)際應(yīng)用中,發(fā)布系統(tǒng)服務(wù)器和資源服務(wù)器可以合并為同一臺(tái)服務(wù)器。多媒體信息發(fā)布系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。
圖1 多媒體信息發(fā)布系統(tǒng)網(wǎng)絡(luò)拓?fù)?/p>
播放管理中心是對(duì)多媒體信息進(jìn)行編輯處理和控制發(fā)布的專業(yè)系統(tǒng)平臺(tái),它的主要功能包括播放資源管理、節(jié)目單制作、終端管理、終端播放管理、數(shù)據(jù)統(tǒng)計(jì)查詢、用戶管理、權(quán)限管理以及系統(tǒng)參數(shù)配置等模塊。
在一般情況下,用戶通過多媒體信息系統(tǒng),發(fā)布信息的操作過程可以分為以下步驟:(1)準(zhǔn)備播放資源。用戶將音視頻、圖片、文本、文檔、天氣等資源上傳至系統(tǒng),進(jìn)行編輯、預(yù)覽、分類等操作管理。(2)繪制布局。布局是一個(gè)平面的顯示模式,定義屏幕上不同區(qū)域顯示不同類型資源。資源顯示區(qū)域稱為組件。(3)制作節(jié)目。用戶選擇一個(gè)布局,為布局中每一個(gè)組件設(shè)置一系列與組件相同類型的資源進(jìn)行播放,每個(gè)組件的所有資源播放屬性集合稱為資源播放任務(wù)集。(4)編輯節(jié)目單。用戶選擇多個(gè)節(jié)目編輯為節(jié)目單,設(shè)置節(jié)目播放順序與播放屬性(常規(guī)、定時(shí)、插播)。(5)發(fā)布節(jié)目單。用戶選擇多個(gè)終端或終端組播放選定的節(jié)目單。終端收到播放命令將即時(shí)更新播放內(nèi)容。
節(jié)目單制作與發(fā)布相關(guān)的概念分析如圖 2所示。
圖2 節(jié)目單制作與發(fā)布相關(guān)的概念分析
2.2 系統(tǒng)特征分析
本文通過對(duì)新華社智能信息發(fā)布系統(tǒng)一個(gè)星期內(nèi)的用戶操作日志進(jìn)行統(tǒng)計(jì)分析,節(jié)目單制作與發(fā)布操作所占比例最高,其次是資源上傳與用戶登錄操作。然而節(jié)目單制作與發(fā)布卻是系統(tǒng)性能問題最為突出的地方。存在如下問題:
(1)數(shù)據(jù)之間關(guān)聯(lián)多且關(guān)系復(fù)雜
一個(gè)節(jié)目單可發(fā)布到多個(gè)終端或終端組進(jìn)行播放,節(jié)目單可包含多個(gè)節(jié)目,節(jié)目對(duì)應(yīng)特定的布局,而一個(gè)布局可以被多個(gè)節(jié)目使用,節(jié)目布局中的組件可包含多個(gè)資源播放任務(wù),而一個(gè)資源又可以被多個(gè)節(jié)目所使用。
綜上所述,系統(tǒng)中各種數(shù)據(jù)之間密切的關(guān)聯(lián),且關(guān)系復(fù)雜。對(duì)一個(gè)節(jié)目單進(jìn)行編輯時(shí),節(jié)目單初始化過程如圖3所示,系統(tǒng)將對(duì)節(jié)目單、節(jié)目、布局、組件、任務(wù)集、任務(wù)、資源等數(shù)據(jù)進(jìn)行聯(lián)合查詢,然后將節(jié)目單所有相關(guān)信息封裝并返回到編輯頁面。
圖3 節(jié)目單制作初始化流程
(2)產(chǎn)生大量數(shù)據(jù)庫SQL且以查詢?yōu)橹?/p>
因?yàn)橄到y(tǒng)上述特征,在對(duì)節(jié)目進(jìn)行編輯時(shí),系統(tǒng)將查詢所有使用該節(jié)目的節(jié)目單,然后更新所有使用這些節(jié)目單的終端的播放內(nèi)容,這將導(dǎo)致大量的數(shù)據(jù)庫操作。
連續(xù)添加播放資源后數(shù)據(jù)庫的狀態(tài)如圖4所示,在節(jié)目資源播放屬性進(jìn)行修改并應(yīng)用時(shí),數(shù)據(jù)庫SQL執(zhí)行語句突增,并且大部分SQL語句為數(shù)據(jù)庫查詢語句,增刪改語句相對(duì)較少。
圖4 連續(xù)添加播放資源后數(shù)據(jù)庫的狀態(tài)
(3)用戶操作獨(dú)立性高
在一般情況下,用戶對(duì)節(jié)目單的制作與發(fā)布控制獨(dú)立性比較高。雖然節(jié)目或節(jié)目單制作操作時(shí)間長(zhǎng),但用戶的操作數(shù)據(jù)都是臨時(shí)存放在瀏覽器客戶端,只有在保存修改時(shí)才會(huì)對(duì)數(shù)據(jù)庫進(jìn)行修改,并向終端發(fā)送發(fā)布命令。
2.3 系統(tǒng)持久層設(shè)計(jì)
在軟件的分層體系結(jié)構(gòu)中,持久層是與數(shù)據(jù)庫打交道的邏輯層,在數(shù)據(jù)庫中對(duì)數(shù)據(jù)的增加、刪除、查找和修改操作由持久層進(jìn)行處理[3]。目前,在Java EE應(yīng)用開發(fā)領(lǐng)域存在著JDBC、JDO、EJB實(shí)體Bean、對(duì)象/關(guān)系映射(Object/Relation Mapping, ORM)工具這幾種常用的持久層的解決方案[4]。文獻(xiàn)[5]對(duì)以上解決方案進(jìn)行了詳細(xì)的對(duì)比。
Hibernate是當(dāng)前流行的開源ORM工具,它對(duì)JDBC進(jìn)行了輕量級(jí)的封裝[6],使開發(fā)人員可以用面向?qū)ο缶幊痰姆绞讲倏財(cái)?shù)據(jù)庫[7]。Hibernate不僅提供了Java類到數(shù)據(jù)庫表的映射,還提供了數(shù)據(jù)查詢和獲取方法。相對(duì)于使用JDBC和SQL來手工操作數(shù)據(jù)庫,可大幅度減少操作數(shù)據(jù)庫工作量[8]。文獻(xiàn)[5]指出,對(duì)于大的項(xiàng)目,特別是持久層關(guān)系映射很復(fù)雜的情況下,Hibernate效率會(huì)高的驚人,JDBC次之,而EJB架構(gòu)很可能會(huì)失敗。
商業(yè)多媒體信息發(fā)布系統(tǒng)可定義為大的項(xiàng)目,且具有持久層關(guān)系映射復(fù)雜的特征。采用Hibernate框架對(duì)業(yè)務(wù)層數(shù)據(jù)的操作進(jìn)行持久化是最好的選擇。
本文采用新華社多媒體信息發(fā)布系統(tǒng)作為分析對(duì)象,該系統(tǒng)應(yīng)用于新華社新聞、傳媒、娛樂、廣告等信息的發(fā)布,應(yīng)用于全國(guó)多個(gè)城市,擁有上萬個(gè)顯示終端。
3.1 抓取策略的調(diào)整
本文2.2節(jié)分析指出,多媒體信息發(fā)布系統(tǒng)數(shù)據(jù)之間關(guān)系多且相對(duì)復(fù)雜,所以,在查詢獲取數(shù)據(jù)時(shí)需對(duì)查詢對(duì)象及其關(guān)聯(lián)對(duì)象的獲取方式進(jìn)行權(quán)衡。
Hibernate提供4種抓取策略來獲取關(guān)聯(lián)對(duì)象,即連接抓取、查詢抓取、子查詢抓取和批量抓取[9]。連接抓取為立即抓取;Hibernate默認(rèn)為延遲抓取除非你顯式的指定lazy=false禁止延遲抓取,否則只有真正訪問關(guān)聯(lián)關(guān)系時(shí),才會(huì)執(zhí)行對(duì)關(guān)聯(lián)的對(duì)象的查詢語句。
在新華社多媒體信息發(fā)布系統(tǒng)的Hibernate配置文件中,所有的關(guān)聯(lián)對(duì)象的lazy屬性都被設(shè)置為false,即立即抓取。這使得用戶在對(duì)一個(gè)簡(jiǎn)單對(duì)象進(jìn)行查詢時(shí),如節(jié)目單信息,系統(tǒng)將會(huì)自動(dòng)加載與其相關(guān)聯(lián)對(duì)象,節(jié)目單相關(guān)聯(lián)的節(jié)目列表、節(jié)目相關(guān)聯(lián)的布局等信息,造成極大的浪費(fèi)。因此,對(duì)于持久層關(guān)系映射復(fù)雜的多媒體信息發(fā)布系統(tǒng)應(yīng)盡量使用Hibernate的延遲加載特性,以避免大量不需要的查詢。
另外,在對(duì)關(guān)聯(lián)對(duì)象進(jìn)行抓取時(shí)可以使用批量抓取方式,通過對(duì)配置文件顯示地設(shè)定合理的批處理參數(shù)(batch_size)在類級(jí)別或集合級(jí)別批量抓取關(guān)聯(lián)對(duì)象。
3.2 Hibernate緩存的使用
Hibernate緩存包括一級(jí)緩存和二級(jí)緩存,一級(jí)緩存是通過將數(shù)據(jù)存放在Session對(duì)象中來實(shí)現(xiàn)的,也稱為 Session緩 存;Hibernate二級(jí)緩存由SessionFactory對(duì)象進(jìn)行管理,是應(yīng)用級(jí)別的緩存,二級(jí)緩存主要由可卸載的第三方緩存組件構(gòu)成,如EHCache、0SCache、JBossCache等[10]。
使用Hibernate二級(jí)緩存當(dāng)系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行過一次查詢后,在Session對(duì)象已經(jīng)關(guān)閉再次對(duì)相同的數(shù)據(jù)進(jìn)行查詢時(shí),就會(huì)先從二級(jí)緩存查找是否已經(jīng)有了該條數(shù)據(jù),當(dāng)二級(jí)緩存中沒有找到該數(shù)據(jù)才會(huì)到數(shù)據(jù)庫中查詢[11]。
新華社多媒體信息發(fā)布系統(tǒng)中未配置Hibernate二級(jí)緩存,而多媒體信息發(fā)布系統(tǒng)用戶的操作數(shù)據(jù)在一段時(shí)間內(nèi)具有重復(fù)性,使用二級(jí)緩存可減少對(duì)數(shù)據(jù)庫的查詢。
3.3 Session管理機(jī)制
Hibernate Session緩存保著持Session內(nèi)部的數(shù)據(jù)狀態(tài)同步[12]。在同一個(gè)Session中不會(huì)對(duì)同一個(gè)對(duì)象進(jìn)行2次加載,因?yàn)榈?次加載時(shí)Session會(huì)從緩存中讀取,所以不會(huì)向數(shù)據(jù)庫發(fā)出2條SQL語句。但Session緩存是不會(huì)共享的,在Session關(guān)閉之后數(shù)據(jù)將全部消失,所以合理的Session管理機(jī)制顯得尤為重要。
新華社多媒體信息發(fā)布系統(tǒng)很好地實(shí)現(xiàn)了業(yè)務(wù)邏輯層和數(shù)據(jù)持久層的分離,但在系統(tǒng)的每個(gè)數(shù)據(jù)訪問對(duì)象(Data Access Object,DAO)中,每一個(gè)方法都是先開辟一個(gè)Session對(duì)象,在獲取數(shù)據(jù)后立即將Session關(guān)閉。多媒體信息發(fā)布系統(tǒng)的關(guān)系映射復(fù)雜,在一個(gè)操作內(nèi)可能對(duì)同一個(gè)對(duì)象多次加載或使用。另外,系統(tǒng)用戶操作相對(duì)獨(dú)立,單個(gè)用戶操作并不會(huì)長(zhǎng)期占用資源。若在一個(gè)用戶操作內(nèi)只開辟一個(gè)Session對(duì)象進(jìn)行重復(fù)利用,將減少系統(tǒng)數(shù)據(jù)庫查詢。
在Hibernate中 SessionFactory是線程安全的, SessionFactory負(fù)責(zé)創(chuàng)建Session對(duì)象;而Session不是線程安全的,也就是說如果多個(gè)線程同時(shí)訪問一個(gè)Session進(jìn)行數(shù)據(jù)操作將會(huì)導(dǎo)致Session數(shù)據(jù)邏輯混亂。ThreadLocal是一種Java線程綁定機(jī)制,JVM為每一個(gè)運(yùn)行的線程綁定了私有的本地實(shí)例存取空間,從而為多線程環(huán)境提供了常出現(xiàn)的并發(fā)訪問問題提供了一種隔離機(jī)制[13]。
對(duì)于一個(gè)基于Web的應(yīng)用,首先Servlet是多線程的。Servlet2.3規(guī)范中引入了過濾器(Filter)[14], Filter的生命周期是貫穿其所覆蓋的Servlet及其底層對(duì)象的,Filter在 Servlet被調(diào)用之前執(zhí)行,在Servlet調(diào)用結(jié)束之后結(jié)束。
基于上面的分析,可以通過添加一個(gè)Hibernate Session對(duì)象管理Filter,設(shè)置一個(gè)靜態(tài)的ThreadLocal對(duì)象為其成員變量用以存取Session,在Filter的doFilter()方法中,鏈接其他Filter之前創(chuàng)建一個(gè)新的session實(shí)例到ThreadLocal中,在鏈接其他Filter之后設(shè)置ThreadLocal中的Session為空,并關(guān)閉Session。示例代碼如下:
以上代碼實(shí)現(xiàn)了通過Filter獲取和關(guān)閉Session,使得周期內(nèi)所有對(duì)象都對(duì)此Session實(shí)例進(jìn)行重用,保證了一個(gè) HTTP請(qǐng)求處理過程中只占用一個(gè)Session,充分利用了Session對(duì)象的緩存,系統(tǒng)數(shù)據(jù)庫查詢次數(shù)將大大降低。
4.1 系統(tǒng)優(yōu)化實(shí)施
本文對(duì)新華社智能多媒體信息發(fā)布系統(tǒng)持久層進(jìn)行的優(yōu)化工作,主要包括以下部分:
(1)使用Hibernate的延遲加載機(jī)制。
(2)集合的加載采用批量抓取策略,并且對(duì)批處理參數(shù)(batch_size)的設(shè)定進(jìn)行優(yōu)化。
(3)使用EHCache緩存組件作為Hibernate二級(jí)緩存。
(4)使用Servlet Filter進(jìn)行Hibernate Session對(duì)象管理,并使用ThreadLocal機(jī)制實(shí)現(xiàn)Session的線程安全存取。
(5)此外,注重業(yè)務(wù)邏輯與持久層的分離,注重Hibernate查詢方法的選用。
4.2 Hibernate統(tǒng)計(jì)機(jī)制
沒有監(jiān)測(cè)和性能參數(shù)而進(jìn)行優(yōu)化是毫無意義的。Hibernate為其內(nèi)部操作提供了一系列的示意圖,因此,可以從每個(gè)Session Factory抓取其統(tǒng)計(jì)數(shù)據(jù),如Session數(shù)、數(shù)據(jù)庫連接數(shù)、事務(wù)數(shù)、實(shí)體集合個(gè)數(shù)、二級(jí)緩存使用情況等。
可以通過在hibernate.cfg.xml配置文件中將統(tǒng)計(jì)屬性hibernate.generate_statistics設(shè)置為true,或者在運(yùn)行期間調(diào)用 SessionFactory的 getStatistics(). setStatisticsEnabled(true)方法來使用Hibernate統(tǒng)計(jì)機(jī)制。
4.3 系統(tǒng)優(yōu)化結(jié)果
系統(tǒng)具體優(yōu)化實(shí)施環(huán)境為:硬件環(huán)境:CPU2.27 GHz,內(nèi)存2.0 GB;操作系統(tǒng):CentOS 5 Linux操作系統(tǒng);Web容器:Tomcat 7.0服務(wù)器;數(shù)據(jù)庫: MySQL5.5版本。
測(cè)試用例1節(jié)目單編輯初始化。每個(gè)節(jié)目單包含10個(gè)節(jié)目信息,每個(gè)節(jié)目布局包含3個(gè)~4個(gè)組件,每個(gè)組件中包含10個(gè)~12個(gè)播放資源。節(jié)目單發(fā)布于4個(gè)播放終端。
測(cè)試用例2節(jié)目編輯刪除資源播放任務(wù)。節(jié)目包含5個(gè)資源組件,每個(gè)組件包含10個(gè)~12個(gè)資源,節(jié)目被5個(gè)節(jié)目單所使用,每個(gè)節(jié)目單發(fā)布給3個(gè)~4個(gè)終端組。
IIPS資源管理平臺(tái)優(yōu)化前后性能對(duì)比如表1所示,表中頁面響應(yīng)時(shí)間為同一個(gè)用例多次操作系統(tǒng)的平均響應(yīng)時(shí)間。二級(jí)緩存second_level_cache指標(biāo)表示放置數(shù)/命中數(shù)/錯(cuò)過數(shù)(put/hit/miss)。
表1 IIPS資源管理平臺(tái)優(yōu)化前后性能對(duì)比
通過表1可知,經(jīng)過優(yōu)化后的多媒體信息發(fā)布系統(tǒng)節(jié)目單初始化以及節(jié)目編輯操作,向數(shù)據(jù)庫發(fā)送的SQL數(shù)目大大減少,開辟的Session對(duì)象數(shù)和數(shù)據(jù)庫連接數(shù)也明顯降低,系統(tǒng)的頁面響應(yīng)時(shí)間縮短,系統(tǒng)性能明顯提高。
本文通過對(duì)商用多媒體信息發(fā)布系統(tǒng)的特征進(jìn)行分析,采用Hibernate作為系統(tǒng)持久層框架,并對(duì)Hibernate在該類系統(tǒng)中的使用進(jìn)行了優(yōu)化,實(shí)驗(yàn)結(jié)果證明系統(tǒng)性能得到了提高。目前,本文分析的多媒體信息發(fā)布系統(tǒng)都是基于關(guān)系型數(shù)據(jù)庫,隨著商用多媒體信息發(fā)布系統(tǒng)的規(guī)模不斷擴(kuò)大,后期將會(huì)對(duì)非關(guān)系型數(shù)據(jù)庫在該類系統(tǒng)中的應(yīng)用進(jìn)行調(diào)研與測(cè)試。
[1] 趙艷偉.淺析多媒體信息發(fā)布系統(tǒng)[J].科技與企業(yè), 2012,21(5):85-85.
[2] 遠(yuǎn)紅亮.多媒體信息發(fā)布系統(tǒng)及圖書館應(yīng)用[J].現(xiàn)代情報(bào),2011,31(7):85-89.
[3] 吳衛(wèi)平,王麗芳,蔣澤軍,等.基于ORM的數(shù)據(jù)持久層框架研究[J].微電子學(xué)與計(jì)算機(jī),2008,25(7):188-190,193.
[4] 徐世友,袁兆山,李 峻,等.Java EE數(shù)據(jù)持久層解決方案的設(shè)計(jì)與實(shí)現(xiàn)[J].合肥工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2009,32(1):47-50.
[5] 方 巍,孫 涌,崔志明,等.J2EE數(shù)據(jù)持久層的應(yīng)用研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(2):68-71.
[6] Wu Peng,Yin Ke.Application Research on a Persistent Technique Based on Hibernate[C]//Proceedingsof InternationalConference on Computer Design and Applications.[S.l.]:IEEE Press,2010:629-631.
[7] 董洪杉,竇延平.利用Hibernate的J2EE數(shù)據(jù)持久層的解決方案[J].計(jì)算機(jī)工程,2004,30(z1):17-18,86.
[8] 劉艷霞.J2EE項(xiàng)目中的數(shù)據(jù)持久層設(shè)計(jì)[J].工程地質(zhì)計(jì)算機(jī)應(yīng)用,2005,10(1):10-13.
[9] 陳正舉.基于HIBERNATE的數(shù)據(jù)庫訪問優(yōu)化[J].計(jì)算機(jī)應(yīng)用與軟件,2012,29(7):144-149.
[10] 程光磊.關(guān)于Hibernate緩存機(jī)制的研究[J].軟件導(dǎo)刊,2011,10(4):30-31.
[11] Wu Qinglin,Hu Yanzhong,Wang Yan.Research on Data Persistence Layer Based on Hibernate Framework[C]// Proceedings of the 2nd IEEE International Workshop on Intelligent Systems and Applications.[S.l.]:IEEE Press, 2010:1-4.
[12] 敖小玲,黃 晉.Hibernate緩存機(jī)制研究與應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2010,26(9):68-72.
[13] 唐擁政,衡冬梅.基于Hibernate的數(shù)據(jù)持久層關(guān)鍵技術(shù)的研究[J].鹽城工學(xué)院學(xué)報(bào):自然科學(xué)版,2006,19(2): 18-21.
[14] Coward D,Yoshida Y.Java Servlet Specification Version 2.3[EB/OL].(2010-11-21).http://download.csdn.net/ detail/bjdream1987/2706663.
編輯 劉 冰
Design and Optimization of Persistence Layer for Commercial Multimedia Information Publishing System
JI Yayuna,LIU Xinb,YE Dejianb
(a.School of Software;b.Engineering Research Center of Cyber Security Auditing and Monitoring,Ministry of Education,Fudan University,Shanghai 201203,China)
For large-scale commercial Multimedia Information Publishing System(MPS)contains huge number of resources and terminals,that can lead to low performance of the system,this paper puts forward a design plan of data persistence layer to optimize the system data access operation.Based on the research and analysis of the characteristics of MPS,it chooses the Hibernate framework as the system data persistence design,summarizes and analyzes the general methods of how to use Hibernate properly in MPS,and puts forward that web-based MPS can use the servlet filters to manage the Hibernate session,which can prolong the life cycle of the session object and reduces the system consumption of the session object,and makes full use of the cached data in the session object.Experimental results show that the integrated optimization method mentioned above,can greatly reduce the resource consumption of MPS system and improves the overall performance of the system effectively.
Multimedia Information Publishing System(MPS);data persistence;Session cache;filter
1000-3428(2015)01-0261-05
A
TP37
10.3969/j.issn.1000-3428.2015.01.049
上海市科技成果轉(zhuǎn)化和產(chǎn)業(yè)化基金資助項(xiàng)目“基于云計(jì)算構(gòu)建的電信網(wǎng)絡(luò)交互式電視業(yè)務(wù)系統(tǒng)研發(fā)”(12511503000)。
吉亞云(1989-),女,碩士研究生,主研方向:網(wǎng)絡(luò)多媒體;劉 新,講師;葉德建,副教授。
2014-01-22
2014-04-04 E-mail:11212010013@fudan.edu.cn
中文引用格式:吉亞云,劉 新,葉德建.商用多媒體信息發(fā)布系統(tǒng)持久層設(shè)計(jì)與優(yōu)化[J].計(jì)算機(jī)工程, 2015,41(1):261-265.
英文引用格式:Ji Yayun,Liu Xin,Ye Dejian.Design and Optimization of Persistence Layer for Commercial Multimedia Information Publishing System[J].Computer Engineering,2015,41(1):261-265.