王亮亮, 閆威, 張佳偉
(1.新疆師范高等專科學(xué)校 現(xiàn)代教育技術(shù)中心,烏魯木齊 830043;2.自治區(qū)級重點實驗室(新疆教育云技術(shù)與資源實驗室),烏魯木齊 830043;3.新疆維吾爾自治區(qū)黨委編辦,烏魯木齊 830002)
適用于國產(chǎn)龍芯計算平臺的DVB-S數(shù)據(jù)解析方法初探
王亮亮1,2, 閆威3, 張佳偉1
(1.新疆師范高等??茖W(xué)校 現(xiàn)代教育技術(shù)中心,烏魯木齊 830043;2.自治區(qū)級重點實驗室(新疆教育云技術(shù)與資源實驗室),烏魯木齊 830043;3.新疆維吾爾自治區(qū)黨委編辦,烏魯木齊 830002)
隨著國產(chǎn)化信息技術(shù)不斷革新,龍芯平臺的軟硬件生態(tài)圈正逐步形成?;邶埿酒脚_的Linux系統(tǒng)移植研究,擬開展了國產(chǎn)龍芯平臺的配套應(yīng)用基礎(chǔ)研究,探索了DVB-S數(shù)據(jù)落地后的處理方法,創(chuàng)設(shè)了滿足其執(zhí)行條件的軟硬件支撐環(huán)境,以期為實現(xiàn)國產(chǎn)CPU/OS整體解決方案的應(yīng)用示范案例提供參考。
DVB-S; 龍芯; 數(shù)據(jù)解析; 遠程教育
目前,計算機核心技術(shù)在國內(nèi)仍處于相對落后狀態(tài),主流的應(yīng)用產(chǎn)品多采用Intel及AMD等國外產(chǎn)品。國產(chǎn)龍芯計算平臺軟硬件環(huán)境雖取得較快發(fā)展,但與X86架構(gòu)的軟硬件生態(tài)環(huán)境相比仍存在較大的差距,基于X86架構(gòu)的功能軟件未能直接適配于龍芯MIPS架構(gòu),且能否滿足DVB-S數(shù)據(jù)的解析、入庫、展示等功能及性能未知。本研究主要基于國產(chǎn)龍芯計算平臺,定制與優(yōu)化國產(chǎn)操作系統(tǒng),探索DVB-S數(shù)據(jù)落地后的處理技術(shù)路線與方法,以期為滿足規(guī)模性應(yīng)用的軟硬件解決方案提供實踐參考。
通過建立并優(yōu)化、移植實驗環(huán)境,移植、優(yōu)化數(shù)據(jù)庫服務(wù)(MySQL),Web服務(wù)(Apache、Nginx),腳本語言(PHP、Perl),字符編碼(GBK、Unicode、UTF8),視頻編解碼及播放(Mplayer、VLC)等組件。基于此,分析傳輸于龍芯平臺存儲中的DVB-S數(shù)據(jù)文件(主要包括資源文件和描述文件),探索資源文件的分類、名稱、類型等相關(guān)特征信息提取的解析方法,實現(xiàn)數(shù)據(jù)的自動入庫、冗錯與校驗、數(shù)據(jù)遷移等;并設(shè)計合理的數(shù)據(jù)庫表結(jié)構(gòu),存儲解析后的數(shù)據(jù),通過Web方式讀取、檢索、展示數(shù)據(jù)庫中DVB-S數(shù)據(jù)信息。
龍芯(Loongson)是由我國中科院計算機技術(shù)研究所研制的國產(chǎn)處理器之一[1],采用MIPS指令集架構(gòu),屬于精簡指令集(RISC)處理器體系[2],并于2006年3月中科龍芯購買了MIPS的結(jié)構(gòu)授權(quán)[3],與眾所周知的X86指令架構(gòu)互不兼容。此外,在龍芯計算平臺能夠運行的操作系統(tǒng)主要有中標麒麟等。為滿足解析程序的開發(fā)與運行,采用本地編譯的方法[4-5],需要優(yōu)化操作系統(tǒng)基礎(chǔ)環(huán)境,如圖1所示。
本地編譯的移植環(huán)境搭建較簡單,可采用方式二,基于龍芯計算機已安裝的操作系統(tǒng),補充必要編譯環(huán)境即可。擬采用Perl腳本語言實現(xiàn)數(shù)據(jù)解析,需移植的組建包括PerL(DBI、XML::Twig、Encode)、Mariadb、PHP、Apache/Nginx。其中,Perl用于實現(xiàn)入庫腳本,Mariadb用于存放解析的資源數(shù)據(jù)及用戶信息,PHP提供展示程序運行,Apache/Nginx提供Web服務(wù),如圖2所示。
圖1 本地編譯流程圖[6]
圖2 運行環(huán)境移植組件圖
DVB-S數(shù)據(jù)處理,如圖3所示。
圖3 DVB-S數(shù)據(jù)處理路線圖
衛(wèi)星數(shù)據(jù)始終處于活動狀態(tài)。首先,需判斷數(shù)據(jù)完整性;其次,自動識別資源類型;最后,依據(jù)數(shù)據(jù)特點及共性提供相關(guān)信息,對錯誤數(shù)據(jù)進行判斷和處理。本研究擬探討數(shù)據(jù)解析階段的內(nèi)容。DVB-S數(shù)據(jù)的描述信息采用GB2312編碼,而新疆地區(qū)需要支持維哈多語種,故需要轉(zhuǎn)換為UTF-8編碼,并強制數(shù)據(jù)庫默認字符集,需要注意資源描述文件的解析和資源文件名稱解析中的編碼間的轉(zhuǎn)換問題[7-8]。
DVB-S(Digital Video Broadcasting via Satellite),即數(shù)字衛(wèi)星視頻廣播標準;IP over DVB-S把IP技術(shù)與DVB-S技術(shù)結(jié)合起來,將IP數(shù)據(jù)報封裝到MPEG-2傳輸流中,通過DVB-S網(wǎng)絡(luò)進行傳輸[9-10]。
2.1 數(shù)據(jù)源介紹
用于實驗的DVB-S數(shù)據(jù)是指全國農(nóng)村黨員干部遠程教育工程的衛(wèi)星資源,簡稱全國DVB-S數(shù)據(jù)[11]?;赑C的數(shù)據(jù)接收終端,在數(shù)據(jù)接收到硬盤后將存放在一個目錄下,數(shù)據(jù)量非常大且多為視頻格式,采用XML技術(shù)攜帶數(shù)據(jù)的標識信息,不便于用戶查找和分類管理資源。數(shù)據(jù)解析是對視頻文件加入歸檔功能,方便用戶的使用和管理;對于未接收完成的資源,進行完整性判斷;對名稱亂碼資源進行有效處理,使未接收完整資源可在輪播中再次接收。資源文件接收后可能的狀態(tài)有:
1)接收完整資源文件;
2)未接收完整資源文件;其中有一類文件可識別,另一類則無規(guī)律,名稱為亂碼,入庫程序在定期做清理工作時完成刪除操作。
2.2 數(shù)據(jù)解析與處理
全國DVB-S數(shù)據(jù)的解析程序主要功能有目錄遍歷、內(nèi)容讀取、數(shù)據(jù)入庫、容錯機制等。其處理業(yè)務(wù)流程,如圖4所示。
圖4 全國DVB-S數(shù)據(jù)處理流程
采用perl腳本對接收到的資源XML文件進行智能解析[12]。
1)篩選資源描述文件。通過遍歷獲取全國DVB-S數(shù)據(jù)接收目錄中的所有描述文件,定義排除非資源描述文件,主要如下:
bnsr_package_index.xml
bnsr_manifest.xml
bnsr_package_metadata.xml
剩余描述文件均為資源描述文件。
2)描述文件解析。逐條進行解析,獲取資源唯一編碼、題目、分類、關(guān)鍵詞、資源介紹、時長、大小。根據(jù)描述文件名稱,查找對應(yīng)的視頻文件是否存在。若不存在,則查找相對應(yīng)正常接收的文件,后綴為“~@$=#&”;檢測文件容量是否在增加。若增加,則文件正在接收;若不變,則文件接收完畢,但未接收完整,則刪除該視頻資源文件和資源描述文件。
3)執(zhí)行入庫操作。采用Linux操作系統(tǒng)下的autostart與cron機制執(zhí)行解析程序[13],實現(xiàn)開機與定時的數(shù)據(jù)遍歷、解析、入庫等操作流程。通過定義API處理數(shù)據(jù),若分類不存在,程序?qū)⑼ㄟ^API返回的最后一個分類的編號,自動增加新分類,并給予新的編號再次對資源進行入庫操作。
4)獲取資源文件名稱的途徑。由于全國資源名稱中存在特殊字符,從資源描述文件中解析出的名稱無法與資源名匹配,因此,從資源描述文件中解析出的資源名稱無法直接使用,則采用另一種形式實現(xiàn)獲取資源文件名稱。首先,截取資源描述文件名稱作為資源名稱①;其次,獲取解析出的文件名并截取獲得后綴②;最后,通過①+②的字符串拼接,得到正確的資源文件。這里尚未直接采用解析出的文件格式作為資源后綴,主要原因是描述文件里的格式需要做判斷,例如解析出格式是wmv9,則不能直接使用。
樣例代碼如下:
use XML::Twig;
use Encode;
my $twig= new XML::Twig();
my $twigchannel= new XML::Twig();
`chmod 777 -R /ncdy`; #修改所有資源接收目錄權(quán)限
my @filelist = (`find ncdy *.xml | grep xml`);# 查找全國資源接收目錄下的所有描述文件
my $count = 1;
while ($count <= @filelist) {
if((index($filelist[$count-1], "bnsr_package_index.xml")!=-1) or (index($filelist[$count-1],"bnsr_metadata.xml")!=-1) or (index($filelist[$count-1],"metadata.xml")!=-1) or (index($filelist[$count-1],"status.xml")!=-1))
{
$count++;
next;
}
print (" element $count: $filelist[$count-1] ");
my $file =$filelist[$count-1];
&findchannel($file);#插入新頻道
&insertdb($file); #插入新資源
$count++;
}
2.3 數(shù)據(jù)展示
采用LAMP架構(gòu)[14]開發(fā)DVB-S數(shù)據(jù)管理與展示程序,用戶可通過Web方式讀取、檢索數(shù)據(jù)庫中的數(shù)據(jù),實現(xiàn)在國產(chǎn)CPU/OS平臺上進行DVB-S資源的分類、展示、檢索,并借助嵌入式播放器及其他應(yīng)用軟件正常瀏覽資源文件,如圖5所示。
圖5 資源展示頁面
本文基于國產(chǎn)龍芯計算平臺,通過移植優(yōu)化等方法,完善國產(chǎn)CPU/OS軟硬件基礎(chǔ)支撐環(huán)境,設(shè)計與實現(xiàn)全國DVB-S數(shù)據(jù)的解析程序,成功驗證了解析、入庫、展示等功能的可操作性,形成可行的技術(shù)路線和解決方案,為實現(xiàn)適用于國產(chǎn)CPU/OS的應(yīng)用示范案例奠定基礎(chǔ)。
[1] 芮雪,王亮亮,楊琴.國產(chǎn)處理器研究與發(fā)展現(xiàn)狀綜述[J]. 現(xiàn)代計算機(專業(yè)版),2014,3:15-19.
[2] 寇曉斌,楊琴,王亮亮.主流處理器體系結(jié)構(gòu)與架構(gòu)發(fā)展現(xiàn)狀綜述[J].微型機與應(yīng)用,2014,16:1-2+5.
[3] 龍芯獲MIPS指令系統(tǒng)授權(quán)[EB/OL]. http://www.loongson.cn/loongson/article/2009/0622/article_220.html,2009,6.
[4] 朱嘉.基于MIPS32平臺的Linux操作系統(tǒng)移植[J].單片機與嵌入式系統(tǒng)應(yīng)用,2006,11:24-26.
[5] 基于ARM的嵌入式Linux的交叉編譯環(huán)境的建立[J]. 張瑞,于德海,馬明龍. 科技信息. 2009(25):508-509.
[6] 王亮亮,楊琴,芮雪.面向主流RISC體系結(jié)構(gòu)的Linux操作系統(tǒng)移植原理[J]. 計算機技術(shù)與發(fā)展,2014,8:76-79.
[7] 吳和敏,王亮亮等.農(nóng)村黨員干部現(xiàn)代遠程教育終端接收站點應(yīng)用系統(tǒng)LINUX平臺技術(shù)研究[J].中國科技成果.2010,11(20):35-37.
[8] 王亮亮,楊琴,芮雪. 基于Linux及開源軟件的新疆農(nóng)村黨員干部現(xiàn)代遠程教育[J]. 計算機應(yīng)用與軟件,2014,(2):330-333.
[9] 張佳偉,王亮亮,周葉. 基于IP over DVB-S單向傳輸模式的遠程終端系統(tǒng)與數(shù)據(jù)維護技術(shù)[J]. 電腦知識與技術(shù),2016,(24):248-250.
[10] 李杰,馬建國.基于DVB-S的IP數(shù)據(jù)業(yè)務(wù)實現(xiàn)機制研究[J].西南科技大學(xué)學(xué)報,2003,18(1):1-6.
[11] 楊琴,王亮亮,芮雪. 基于DVB-S的漢維哈Linux遠程教育支撐平臺設(shè)計[J]. 計算機與現(xiàn)代化,2016,(2):86-90.
[12] 郭文久. Perl語言環(huán)境下XML文檔解析方法[J]. 生物信息學(xué),2010,4:307-310.
[13] 張濤,王亮亮,張佳偉. 新疆黨員遠程教育終端系統(tǒng)與數(shù)據(jù)的ALL In One策略與方法[J]. 電腦知識與技術(shù),2016,(23):73-76.
[14] 李楊. 構(gòu)建基于Linux、Apache、MySQL、PHP平臺的網(wǎng)站[J]. 電子技術(shù)與軟件工程,2015,4:20.
An Initial Study of the Domestic Loongson Platform Data-based Parsing Methods for DVB-S
Wang Liangliang1,2, Yan Wei3, Zhang Jiawei1
(1. Modern Educational Technology Center; 2. The Provincial Key Laboratory, Xinjiang Laboratory of Education Cloud Technology and Resources, Xinjiang Teacher’s College, Urumqi 830043, China;3. The Xinjiang Uygur Autonomous Region Party committee Office, Urumqi 830002, China)
With the localization of information technology innovation, Godson platform hardware and software ecosystem is gradually formed. Based on the research and development of Linux system based on the Godson platform, this study intends to carry out the basic research on the supporting application of the domestic Godson platform, explores the processing method of DVB-S data after landing, and creates the hardware and software supporting environment which satisfies its execution condition in order to realize the domestic CPU / OS overall solution application demonstration case and provide practical reference.
DVB-S; loongson; data-based parsing; distance education
新疆維吾爾自治區(qū)自然科學(xué)基金資助項目(2015211A015)
王亮亮(1977-),男,副教授,碩士,研究方向:Linux操作系統(tǒng)。 閆威(1977-),男,研究方向:Linux操作系統(tǒng)。 張佳偉(1992-),男,工程師,碩士研究生,研究方向:Linux操作系統(tǒng)。
1007-757X(2017)08-0009-03
TP311
A
2017.05.02)