鄒元君
ZOU Yuan-jun
(長(zhǎng)春中醫(yī)藥大學(xué),長(zhǎng)春 130117)
視頻教學(xué)本質(zhì)上一種網(wǎng)絡(luò)教學(xué),它比較依賴于計(jì)算機(jī)、多媒體、網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)技術(shù)。其中數(shù)據(jù)庫(kù)技術(shù)直接影響著視頻教學(xué)資源的搜集、組織、保存、檢索,它對(duì)視頻教學(xué)的效率有重要影響。
視頻是將一系列的靜態(tài)影像,通過(guò)電信號(hào)方式加以捕捉,紀(jì)錄,處理,儲(chǔ)存,傳送,與重現(xiàn)而成的動(dòng)態(tài)影像。視頻教學(xué)資源庫(kù)就是各種關(guān)于教學(xué)的視頻資源的匯集。視頻教學(xué)資源畢竟不同其他諸如文本、圖像等資源,因?yàn)樵诮虒W(xué)使用時(shí),這一類素材使用流式媒體格式,如rm、wm、asf,他們對(duì)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)存儲(chǔ)空間、數(shù)據(jù)庫(kù)管理要求較高,因此保存和檢索也應(yīng)采取不同的辦法。目前常用的方式有二種:1)使用BLOB方式進(jìn)行存儲(chǔ)。在數(shù)據(jù)庫(kù)中,數(shù)據(jù)資源被分為日期型、數(shù)字型、字符型等,不同的類型有不同的處理方法,但是他們的共同特征是數(shù)據(jù)量相對(duì)小。BLOB型就是用來(lái)專門存儲(chǔ)大文件的類型,典型的BLOB是一張圖片、一個(gè)聲音文件、一段視頻。這種方式最大的問(wèn)題就在于其上傳、下載、傳送需要使用特殊的程序,并耗費(fèi)大量的數(shù)據(jù)庫(kù)資源。2)仍然使用傳統(tǒng)的文件夾管理方式,但是將文件夾路徑保存在數(shù)據(jù)庫(kù),當(dāng)有程序調(diào)用時(shí),根據(jù)地址去查找相應(yīng)的視頻文件。如某視頻文件存儲(chǔ)路徑為:F 高級(jí)語(yǔ)言程序設(shè)計(jì)出版社章節(jié)第5課時(shí),但是在數(shù)據(jù)庫(kù)中保存的只是其相對(duì)物理地址,具體二進(jìn)制信息并未被壓制保存。教師教學(xué)時(shí),通過(guò)教學(xué)管理系統(tǒng)檢索或查到該視頻資源,直接點(diǎn)擊,管理系統(tǒng)通過(guò)控件尋找到該路徑,然后進(jìn)行播放。通過(guò)這種方式,結(jié)合了數(shù)據(jù)庫(kù)管理數(shù)據(jù)以及文件系統(tǒng)管理大型文件的優(yōu)點(diǎn),當(dāng)然其缺點(diǎn)是,硬盤上的各類資源本質(zhì)上未被納入到數(shù)據(jù)庫(kù)的管理中。本文以這種路徑存儲(chǔ)的方式闡述數(shù)據(jù)庫(kù)技術(shù)在其中的體現(xiàn)。
在視頻教學(xué)資源庫(kù)建設(shè)過(guò)程中,必須運(yùn)用數(shù)據(jù)庫(kù)的檢索技術(shù)。盡管教學(xué)類視頻數(shù)據(jù)數(shù)量大,而且種類繁多,但一般用戶都習(xí)慣采用內(nèi)容檢索的方式,這種方法采用的是相似性匹配的方法逐步求精,以獲得檢索結(jié)果,這是一個(gè)迭代的過(guò)程,它把人機(jī)交互引入檢索的過(guò)程中,其基本要求是:1)將一組滿足一定相應(yīng)條件的視頻數(shù)據(jù)以圖像的方式反饋給檢索者;2)檢索者瀏覽反饋結(jié)果,調(diào)整檢索特征、形成新的檢索條件提交系統(tǒng);3)縮小檢索范圍,循環(huán)反復(fù)直至得到滿意的結(jié)果。為此,首先需要建立視頻特征庫(kù),其包含以下三類元數(shù)據(jù):1)視頻編輯元數(shù)據(jù):即對(duì)視頻文件的描述數(shù)據(jù),即:名稱、內(nèi)容介紹、制作人、大小、劇本地址、演員(主播)等等;2)結(jié)構(gòu)元數(shù)據(jù):場(chǎng)景、鏡頭的描述信息,即起始幀、時(shí)間長(zhǎng)度、內(nèi)容簡(jiǎn)述等等;3)內(nèi)容元數(shù)據(jù):關(guān)鍵幀特征、語(yǔ)音信息,即:圖像特征、語(yǔ)義特征、聲音特征等等;以上三種視頻特征元數(shù)據(jù)特征提取可以是全局性的,也可以是針對(duì)某個(gè)對(duì)象的。
教學(xué)資源庫(kù)建設(shè)中的檢索,一般采取視頻編輯元數(shù)據(jù)檢索方式。因此必須對(duì)所有的視頻資源結(jié)構(gòu)進(jìn)行較為明確的界定(可能的話通過(guò)數(shù)據(jù)字典進(jìn)行簡(jiǎn)化,如用N代表新聞報(bào)道,F(xiàn)代表影視類資源,E代表實(shí)驗(yàn)類視頻,M代表三維實(shí)物模型演示,V代表生活中實(shí)例的錄像資源,T代表教學(xué)類),然后根據(jù)每一類再進(jìn)行細(xì)分。以《高級(jí)語(yǔ)言程序設(shè)計(jì)》(以下簡(jiǎn)稱高程)為例,可以將“模塊化程序設(shè)計(jì)”細(xì)分為:T—高級(jí)語(yǔ)言程序設(shè)計(jì)—出版社—必修—第五章—第5課時(shí),在數(shù)據(jù)庫(kù)中信息保存格式如下:
ROWID 類別 科目 出版社必(選)修章節(jié) 課時(shí) 地址0000FF T 高程 **** 1 5 5 F: 高程出版社章節(jié)第5課時(shí)
該表需要先在數(shù)據(jù)庫(kù)中建立,其中ROWID為數(shù)據(jù)庫(kù)的信息存儲(chǔ)ID,由oracle或sql自動(dòng)分配。為節(jié)約存儲(chǔ)空間,其他各個(gè)字段需要先建立數(shù)據(jù)字典,如必(選)修標(biāo)志,1代表是,2代表否。在檢索時(shí),使用者可以通過(guò)除ROWID意外的任何一種方式進(jìn)行檢索,然后直接點(diǎn)擊相關(guān)控件,從“地址”中獲取視頻字眼存放地址,并用播放器播放。
視頻教學(xué)資源數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)能根據(jù)節(jié)點(diǎn)的性能和現(xiàn)有的負(fù)載來(lái)分配任務(wù),做到任務(wù)的分配合理、負(fù)載的分配均衡。數(shù)據(jù)庫(kù)負(fù)載均衡技術(shù)可以解決以上問(wèn)題,同時(shí)可以根據(jù)后端節(jié)點(diǎn)的負(fù)載信息來(lái)分配新的客戶請(qǐng)求,同時(shí)也可以在各節(jié)點(diǎn)之間調(diào)整負(fù)載,縮短系統(tǒng)的響應(yīng)時(shí)間,提高系統(tǒng)的工作效率。而數(shù)據(jù)庫(kù)均衡技術(shù)實(shí)現(xiàn)的前提是數(shù)據(jù)庫(kù)集群,即將一組相互獨(dú)立的服務(wù)器通過(guò)高速網(wǎng)絡(luò)互聯(lián)組成的一種并行或分布式的系統(tǒng)。目前數(shù)據(jù)庫(kù)集群的體系結(jié)構(gòu)按照節(jié)點(diǎn)是否共享存儲(chǔ)設(shè)備可以分為:基于數(shù)據(jù)引擎或中間件的集群體系結(jié)構(gòu),他們的本質(zhì)區(qū)別在于,后者每個(gè)節(jié)點(diǎn)都擁有自己的內(nèi)存和磁盤,各個(gè)數(shù)據(jù)庫(kù)引擎對(duì)各自數(shù)據(jù)庫(kù)進(jìn)行管理,通過(guò)中間件來(lái)實(shí)現(xiàn)對(duì)自治的數(shù)據(jù)庫(kù)站點(diǎn)進(jìn)行協(xié)調(diào)同步和并行處理的管理,對(duì)外提供結(jié)構(gòu)統(tǒng)一的系統(tǒng)映像。
1)各節(jié)點(diǎn)數(shù)據(jù)庫(kù)壓力影響因素和測(cè)量方法。影響數(shù)據(jù)庫(kù)集群吞吐量的因素主要是表數(shù)據(jù)的分布方式、提交事務(wù)對(duì)數(shù)據(jù)表的讀寫(xiě)要求、節(jié)點(diǎn)服務(wù)器上數(shù)據(jù)庫(kù)的事務(wù)數(shù)量、系統(tǒng)上非數(shù)據(jù)庫(kù)服務(wù)進(jìn)程以及節(jié)點(diǎn)的軟硬件性能等。另外網(wǎng)絡(luò)連接類型、硬件組織的異構(gòu)、操作系統(tǒng)以及數(shù)據(jù)庫(kù)的類型都對(duì)集群的性能有一定的影響。一般而言,相同的工作任務(wù)量對(duì)不同的配置的節(jié)點(diǎn)來(lái)說(shuō),其負(fù)載程度也不相同。為很好的評(píng)估節(jié)點(diǎn)負(fù)載的均衡性,就需要先判斷階段負(fù)載量的平均值:估算單個(gè)事務(wù)要消耗的各類資源量的大小,包括CPU使用量,內(nèi)存使用量,IO使用量等,然后把這些數(shù)據(jù)相加就得到了該事務(wù)的負(fù)載大小,最后求平均負(fù)載值。
2)數(shù)據(jù)庫(kù)負(fù)載均衡策略。根據(jù)1)中,假設(shè)Ai為實(shí)際負(fù)載,Ali為實(shí)際平均負(fù)載(前提是各個(gè)節(jié)點(diǎn)參數(shù)配置一樣,如CPU性能,否則即便Ai低于Ali,但也可能超出機(jī)器本身的承載能力)。按照一般規(guī)律,Ai和Ali的相差應(yīng)在正負(fù)10%,即若超過(guò)10%,則為負(fù)載過(guò)重,如果低于90%,則為負(fù)載過(guò)輕。
3)數(shù)據(jù)庫(kù)負(fù)載均衡實(shí)現(xiàn)。先進(jìn)行負(fù)載均很測(cè)算,算法過(guò)程如下:(1)第一次連接時(shí)收集數(shù)據(jù)庫(kù)服務(wù)器的狀態(tài)信息,如CPU、內(nèi)存的性能參數(shù),服務(wù)器是否處在正常運(yùn)行狀態(tài)等。(2)將節(jié)點(diǎn)狀態(tài)表中的條目按負(fù)載量Ai的大小升序排序,并判斷:如果表上的讀事務(wù)與寫(xiě)事務(wù)的比小于設(shè)定的值且數(shù)據(jù)分布為表模式,那么調(diào)用模式轉(zhuǎn)換模塊,將所有節(jié)點(diǎn)上的該表轉(zhuǎn)換成以視圖為基礎(chǔ)的劃分結(jié)構(gòu),中心節(jié)點(diǎn)重新進(jìn)行事務(wù)的分配。(3)通過(guò)廣播信息進(jìn)行循環(huán)搜索,如果發(fā)現(xiàn)有超載的節(jié)點(diǎn),則從節(jié)點(diǎn)狀態(tài)表中選擇一個(gè)負(fù)載最輕節(jié)點(diǎn),進(jìn)行數(shù)據(jù)庫(kù)的任務(wù)轉(zhuǎn)移,從而達(dá)到視頻教學(xué)資源的負(fù)載均衡。
將數(shù)據(jù)庫(kù)技術(shù)運(yùn)用到視頻教學(xué)資源庫(kù)中,除了前面的檢索技術(shù)、負(fù)載均衡技術(shù),還涉及優(yōu)化技術(shù):1)數(shù)據(jù)庫(kù)連接技術(shù)。視頻教學(xué)資源需要通過(guò)一定的管理系統(tǒng)達(dá)成其管理目的,使用者通過(guò)登錄該系統(tǒng),可以對(duì)各類資源進(jìn)行調(diào)用。數(shù)據(jù)庫(kù)連接技術(shù)就是要保證使用者能進(jìn)行有效的登陸連接。目前常用數(shù)據(jù)庫(kù)連接技術(shù)有CGI、API、IDC、ASP、JDBC等。CGI 是Web應(yīng)用中最早的一種技術(shù),它不提供可視化操作界面,只能象DOS那樣編程,其性能差,效率低,運(yùn)行速度慢。API應(yīng)用在第一次調(diào)用之后將駐留在服務(wù)器中,其他請(qǐng)求可以共享該進(jìn)程,ID則上是一個(gè)基于API的動(dòng)態(tài)鏈接庫(kù),由駐留在服務(wù)器的動(dòng)態(tài)鏈接庫(kù)完成相應(yīng)工作。ASP則支持任何一種瀏覽器,它隱藏了Web服務(wù)器和客戶端之間的通信機(jī)制。JDBC是一種用于執(zhí)行SQL語(yǔ)句的Java API,它是目前廣泛使用的一種連接方式,它將Java和JDBC結(jié)合起來(lái)使程序員只需寫(xiě)一遍程序就可讓它在任何平臺(tái)上運(yùn)行。2)性能優(yōu)化技術(shù)。視頻教學(xué)要耗費(fèi)大量的網(wǎng)絡(luò)資源、服務(wù)器資源。對(duì)于數(shù)據(jù)庫(kù)服務(wù)器而言,可以運(yùn)用數(shù)據(jù)庫(kù)優(yōu)化技術(shù),實(shí)現(xiàn)數(shù)據(jù)的高共享性。以oracle為例,其可以調(diào)整的參數(shù)就有Shared pool,Database Buffer Cache,Redo log buffer,Java Pool,Large Pool,Program Global Area等。(1)優(yōu)化Shared pool。共享池大小是否合適,主要體現(xiàn)在庫(kù)緩沖區(qū)和數(shù)據(jù)字典高速緩沖區(qū)的命中率上。庫(kù)緩沖區(qū)設(shè)置過(guò)小那么語(yǔ)句將被連續(xù)不斷地裝入影響系統(tǒng)性能,如果設(shè)置過(guò)大,將導(dǎo)致空間碎片化以及CPU使用率的大幅上升。視頻教學(xué)中,可能會(huì)存在某一類資源短時(shí)間內(nèi)被集中調(diào)用的情況,如學(xué)習(xí)到某一章節(jié)內(nèi)容時(shí),學(xué)生可能隨時(shí)、反復(fù)的利用它。此時(shí)就需要保證庫(kù)緩沖區(qū)設(shè)置不能太小。庫(kù)緩沖區(qū)的命中率可以通過(guò)命令 select(1-sum(reloads/sum(pins)from v$librarycache獲取,該值若小于0.95,則可以通過(guò)增加SHARED_POOLSIZE值來(lái)提高命中率。(2)優(yōu)化緩沖區(qū)高速緩存。緩沖區(qū)高速緩存越大,oracle可裝入內(nèi)存的數(shù)據(jù)就越多,磁盤的I/O性能就越少,系統(tǒng)性能就越好。通過(guò)數(shù)據(jù)字典v$vsysstat可以了解其活動(dòng)情況: select name,value from v$sysstat where name in (’dbblokc gets’,’consistent gets’,’Physical reads’);如果命中率小于0.85,則可增加參數(shù)DB_CACH_SIZE的值為數(shù)據(jù)塊緩沖區(qū)分配更多的內(nèi)存。
總之,視頻教學(xué)資源庫(kù)的建設(shè),不僅僅是將各類視頻資源進(jìn)行有效分類儲(chǔ)存在硬盤上,而是必須通過(guò)一定信息系統(tǒng),實(shí)現(xiàn)對(duì)這些視頻資源的快速、高效調(diào)用。因此運(yùn)用數(shù)據(jù)庫(kù)技術(shù)對(duì)各類視頻資源的絕對(duì)地址進(jìn)行保存,并通過(guò)數(shù)據(jù)庫(kù)集群技術(shù)和調(diào)優(yōu)技術(shù),可以有效提高視頻教學(xué)系統(tǒng)的利用效率。
[1] THOMAS KYTE著,蘇金國(guó),王小振等譯.ORACLE9I&10G編程藝術(shù):深入數(shù)據(jù)庫(kù)體系結(jié)構(gòu)[M].人民郵電出版社,2006:265-269
[2] 祝知庭.現(xiàn)代教育技術(shù)-走向信息化教育[M].教育科學(xué)出版社,2002(3)