鄒元君
ZOU Yuan-jun
(長春中醫藥大學,長春 130117)
視頻教學本質上一種網絡教學,它比較依賴于計算機、多媒體、網絡和數據庫技術。其中數據庫技術直接影響著視頻教學資源的搜集、組織、保存、檢索,它對視頻教學的效率有重要影響。
視頻是將一系列的靜態影像,通過電信號方式加以捕捉,紀錄,處理,儲存,傳送,與重現而成的動態影像。視頻教學資源庫就是各種關于教學的視頻資源的匯集。視頻教學資源畢竟不同其他諸如文本、圖像等資源,因為在教學使用時,這一類素材使用流式媒體格式,如rm、wm、asf,他們對網絡、數據庫存儲空間、數據庫管理要求較高,因此保存和檢索也應采取不同的辦法。目前常用的方式有二種:1)使用BLOB方式進行存儲。在數據庫中,數據資源被分為日期型、數字型、字符型等,不同的類型有不同的處理方法,但是他們的共同特征是數據量相對小。BLOB型就是用來專門存儲大文件的類型,典型的BLOB是一張圖片、一個聲音文件、一段視頻。這種方式最大的問題就在于其上傳、下載、傳送需要使用特殊的程序,并耗費大量的數據庫資源。2)仍然使用傳統的文件夾管理方式,但是將文件夾路徑保存在數據庫,當有程序調用時,根據地址去查找相應的視頻文件。如某視頻文件存儲路徑為:F 高級語言程序設計出版社章節第5課時,但是在數據庫中保存的只是其相對物理地址,具體二進制信息并未被壓制保存。教師教學時,通過教學管理系統檢索或查到該視頻資源,直接點擊,管理系統通過控件尋找到該路徑,然后進行播放。通過這種方式,結合了數據庫管理數據以及文件系統管理大型文件的優點,當然其缺點是,硬盤上的各類資源本質上未被納入到數據庫的管理中。本文以這種路徑存儲的方式闡述數據庫技術在其中的體現。
在視頻教學資源庫建設過程中,必須運用數據庫的檢索技術。盡管教學類視頻數據數量大,而且種類繁多,但一般用戶都習慣采用內容檢索的方式,這種方法采用的是相似性匹配的方法逐步求精,以獲得檢索結果,這是一個迭代的過程,它把人機交互引入檢索的過程中,其基本要求是:1)將一組滿足一定相應條件的視頻數據以圖像的方式反饋給檢索者;2)檢索者瀏覽反饋結果,調整檢索特征、形成新的檢索條件提交系統;3)縮小檢索范圍,循環反復直至得到滿意的結果。為此,首先需要建立視頻特征庫,其包含以下三類元數據:1)視頻編輯元數據:即對視頻文件的描述數據,即:名稱、內容介紹、制作人、大小、劇本地址、演員(主播)等等;2)結構元數據:場景、鏡頭的描述信息,即起始幀、時間長度、內容簡述等等;3)內容元數據:關鍵幀特征、語音信息,即:圖像特征、語義特征、聲音特征等等;以上三種視頻特征元數據特征提取可以是全局性的,也可以是針對某個對象的。
教學資源庫建設中的檢索,一般采取視頻編輯元數據檢索方式。因此必須對所有的視頻資源結構進行較為明確的界定(可能的話通過數據字典進行簡化,如用N代表新聞報道,F代表影視類資源,E代表實驗類視頻,M代表三維實物模型演示,V代表生活中實例的錄像資源,T代表教學類),然后根據每一類再進行細分。以《高級語言程序設計》(以下簡稱高程)為例,可以將“模塊化程序設計”細分為:T—高級語言程序設計—出版社—必修—第五章—第5課時,在數據庫中信息保存格式如下:

ROWID 類別 科目 出版社必(選)修章節 課時 地址0000FF T 高程 **** 1 5 5 F: 高程出版社章節第5課時
該表需要先在數據庫中建立,其中ROWID為數據庫的信息存儲ID,由oracle或sql自動分配。為節約存儲空間,其他各個字段需要先建立數據字典,如必(選)修標志,1代表是,2代表否。在檢索時,使用者可以通過除ROWID意外的任何一種方式進行檢索,然后直接點擊相關控件,從“地址”中獲取視頻字眼存放地址,并用播放器播放。
視頻教學資源數據庫管理系統應能根據節點的性能和現有的負載來分配任務,做到任務的分配合理、負載的分配均衡。數據庫負載均衡技術可以解決以上問題,同時可以根據后端節點的負載信息來分配新的客戶請求,同時也可以在各節點之間調整負載,縮短系統的響應時間,提高系統的工作效率。而數據庫均衡技術實現的前提是數據庫集群,即將一組相互獨立的服務器通過高速網絡互聯組成的一種并行或分布式的系統。目前數據庫集群的體系結構按照節點是否共享存儲設備可以分為:基于數據引擎或中間件的集群體系結構,他們的本質區別在于,后者每個節點都擁有自己的內存和磁盤,各個數據庫引擎對各自數據庫進行管理,通過中間件來實現對自治的數據庫站點進行協調同步和并行處理的管理,對外提供結構統一的系統映像。
1)各節點數據庫壓力影響因素和測量方法。影響數據庫集群吞吐量的因素主要是表數據的分布方式、提交事務對數據表的讀寫要求、節點服務器上數據庫的事務數量、系統上非數據庫服務進程以及節點的軟硬件性能等。另外網絡連接類型、硬件組織的異構、操作系統以及數據庫的類型都對集群的性能有一定的影響。一般而言,相同的工作任務量對不同的配置的節點來說,其負載程度也不相同。為很好的評估節點負載的均衡性,就需要先判斷階段負載量的平均值:估算單個事務要消耗的各類資源量的大小,包括CPU使用量,內存使用量,IO使用量等,然后把這些數據相加就得到了該事務的負載大小,最后求平均負載值。
2)數據庫負載均衡策略。根據1)中,假設Ai為實際負載,Ali為實際平均負載(前提是各個節點參數配置一樣,如CPU性能,否則即便Ai低于Ali,但也可能超出機器本身的承載能力)。按照一般規律,Ai和Ali的相差應在正負10%,即若超過10%,則為負載過重,如果低于90%,則為負載過輕。
3)數據庫負載均衡實現。先進行負載均很測算,算法過程如下:(1)第一次連接時收集數據庫服務器的狀態信息,如CPU、內存的性能參數,服務器是否處在正常運行狀態等。(2)將節點狀態表中的條目按負載量Ai的大小升序排序,并判斷:如果表上的讀事務與寫事務的比小于設定的值且數據分布為表模式,那么調用模式轉換模塊,將所有節點上的該表轉換成以視圖為基礎的劃分結構,中心節點重新進行事務的分配。(3)通過廣播信息進行循環搜索,如果發現有超載的節點,則從節點狀態表中選擇一個負載最輕節點,進行數據庫的任務轉移,從而達到視頻教學資源的負載均衡。
將數據庫技術運用到視頻教學資源庫中,除了前面的檢索技術、負載均衡技術,還涉及優化技術:1)數據庫連接技術。視頻教學資源需要通過一定的管理系統達成其管理目的,使用者通過登錄該系統,可以對各類資源進行調用。數據庫連接技術就是要保證使用者能進行有效的登陸連接。目前常用數據庫連接技術有CGI、API、IDC、ASP、JDBC等。CGI 是Web應用中最早的一種技術,它不提供可視化操作界面,只能象DOS那樣編程,其性能差,效率低,運行速度慢。API應用在第一次調用之后將駐留在服務器中,其他請求可以共享該進程,ID則上是一個基于API的動態鏈接庫,由駐留在服務器的動態鏈接庫完成相應工作。ASP則支持任何一種瀏覽器,它隱藏了Web服務器和客戶端之間的通信機制。JDBC是一種用于執行SQL語句的Java API,它是目前廣泛使用的一種連接方式,它將Java和JDBC結合起來使程序員只需寫一遍程序就可讓它在任何平臺上運行。2)性能優化技術。視頻教學要耗費大量的網絡資源、服務器資源。對于數據庫服務器而言,可以運用數據庫優化技術,實現數據的高共享性。以oracle為例,其可以調整的參數就有Shared pool,Database Buffer Cache,Redo log buffer,Java Pool,Large Pool,Program Global Area等。(1)優化Shared pool。共享池大小是否合適,主要體現在庫緩沖區和數據字典高速緩沖區的命中率上。庫緩沖區設置過小那么語句將被連續不斷地裝入影響系統性能,如果設置過大,將導致空間碎片化以及CPU使用率的大幅上升。視頻教學中,可能會存在某一類資源短時間內被集中調用的情況,如學習到某一章節內容時,學生可能隨時、反復的利用它。此時就需要保證庫緩沖區設置不能太小。庫緩沖區的命中率可以通過命令 select(1-sum(reloads/sum(pins)from v$librarycache獲取,該值若小于0.95,則可以通過增加SHARED_POOLSIZE值來提高命中率。(2)優化緩沖區高速緩存。緩沖區高速緩存越大,oracle可裝入內存的數據就越多,磁盤的I/O性能就越少,系統性能就越好。通過數據字典v$vsysstat可以了解其活動情況: select name,value from v$sysstat where name in (’dbblokc gets’,’consistent gets’,’Physical reads’);如果命中率小于0.85,則可增加參數DB_CACH_SIZE的值為數據塊緩沖區分配更多的內存。
總之,視頻教學資源庫的建設,不僅僅是將各類視頻資源進行有效分類儲存在硬盤上,而是必須通過一定信息系統,實現對這些視頻資源的快速、高效調用。因此運用數據庫技術對各類視頻資源的絕對地址進行保存,并通過數據庫集群技術和調優技術,可以有效提高視頻教學系統的利用效率。
[1] THOMAS KYTE著,蘇金國,王小振等譯.ORACLE9I&10G編程藝術:深入數據庫體系結構[M].人民郵電出版社,2006:265-269
[2] 祝知庭.現代教育技術-走向信息化教育[M].教育科學出版社,2002(3)