适用于国产龙芯计算平台的DVB-S数据解析方法初探
2017-08-30王亮亮闫威张佳伟
王亮亮, 闫威, 张佳伟
(1.新疆师范高等专科学校 现代教育技术中心,乌鲁木齐 830043;2.自治区级重点实验室(新疆教育云技术与资源实验室),乌鲁木齐 830043;3.新疆维吾尔自治区党委编办,乌鲁木齐 830002)
适用于国产龙芯计算平台的DVB-S数据解析方法初探
王亮亮1,2, 闫威3, 张佳伟1
(1.新疆师范高等专科学校 现代教育技术中心,乌鲁木齐 830043;2.自治区级重点实验室(新疆教育云技术与资源实验室),乌鲁木齐 830043;3.新疆维吾尔自治区党委编办,乌鲁木齐 830002)
随着国产化信息技术不断革新,龙芯平台的软硬件生态圈正逐步形成。基于龙芯平台的Linux系统移植研究,拟开展了国产龙芯平台的配套应用基础研究,探索了DVB-S数据落地后的处理方法,创设了满足其执行条件的软硬件支撑环境,以期为实现国产CPU/OS整体解决方案的应用示范案例提供参考。
DVB-S; 龙芯; 数据解析; 远程教育
0 引言
目前,计算机核心技术在国内仍处于相对落后状态,主流的应用产品多采用Intel及AMD等国外产品。国产龙芯计算平台软硬件环境虽取得较快发展,但与X86架构的软硬件生态环境相比仍存在较大的差距,基于X86架构的功能软件未能直接适配于龙芯MIPS架构,且能否满足DVB-S数据的解析、入库、展示等功能及性能未知。本研究主要基于国产龙芯计算平台,定制与优化国产操作系统,探索DVB-S数据落地后的处理技术路线与方法,以期为满足规模性应用的软硬件解决方案提供实践参考。
通过建立并优化、移植实验环境,移植、优化数据库服务(MySQL),Web服务(Apache、Nginx),脚本语言(PHP、Perl),字符编码(GBK、Unicode、UTF8),视频编解码及播放(Mplayer、VLC)等组件。基于此,分析传输于龙芯平台存储中的DVB-S数据文件(主要包括资源文件和描述文件),探索资源文件的分类、名称、类型等相关特征信息提取的解析方法,实现数据的自动入库、冗错与校验、数据迁移等;并设计合理的数据库表结构,存储解析后的数据,通过Web方式读取、检索、展示数据库中DVB-S数据信息。
1 技术路线
龙芯(Loongson)是由我国中科院计算机技术研究所研制的国产处理器之一[1],采用MIPS指令集架构,属于精简指令集(RISC)处理器体系[2],并于2006年3月中科龙芯购买了MIPS的结构授权[3],与众所周知的X86指令架构互不兼容。此外,在龙芯计算平台能够运行的操作系统主要有中标麒麟等。为满足解析程序的开发与运行,采用本地编译的方法[4-5],需要优化操作系统基础环境,如图1所示。
本地编译的移植环境搭建较简单,可采用方式二,基于龙芯计算机已安装的操作系统,补充必要编译环境即可。拟采用Perl脚本语言实现数据解析,需移植的组建包括PerL(DBI、XML::Twig、Encode)、Mariadb、PHP、Apache/Nginx。其中,Perl用于实现入库脚本,Mariadb用于存放解析的资源数据及用户信息,PHP提供展示程序运行,Apache/Nginx提供Web服务,如图2所示。
图1 本地编译流程图[6]
图2 运行环境移植组件图
DVB-S数据处理,如图3所示。
图3 DVB-S数据处理路线图
卫星数据始终处于活动状态。首先,需判断数据完整性;其次,自动识别资源类型;最后,依据数据特点及共性提供相关信息,对错误数据进行判断和处理。本研究拟探讨数据解析阶段的内容。DVB-S数据的描述信息采用GB2312编码,而新疆地区需要支持维哈多语种,故需要转换为UTF-8编码,并强制数据库默认字符集,需要注意资源描述文件的解析和资源文件名称解析中的编码间的转换问题[7-8]。
2 DVB-S数据解析
DVB-S(Digital Video Broadcasting via Satellite),即数字卫星视频广播标准;IP over DVB-S把IP技术与DVB-S技术结合起来,将IP数据报封装到MPEG-2传输流中,通过DVB-S网络进行传输[9-10]。
2.1 数据源介绍
用于实验的DVB-S数据是指全国农村党员干部远程教育工程的卫星资源,简称全国DVB-S数据[11]。基于PC的数据接收终端,在数据接收到硬盘后将存放在一个目录下,数据量非常大且多为视频格式,采用XML技术携带数据的标识信息,不便于用户查找和分类管理资源。数据解析是对视频文件加入归档功能,方便用户的使用和管理;对于未接收完成的资源,进行完整性判断;对名称乱码资源进行有效处理,使未接收完整资源可在轮播中再次接收。资源文件接收后可能的状态有:
1)接收完整资源文件;
2)未接收完整资源文件;其中有一类文件可识别,另一类则无规律,名称为乱码,入库程序在定期做清理工作时完成删除操作。
2.2 数据解析与处理
全国DVB-S数据的解析程序主要功能有目录遍历、内容读取、数据入库、容错机制等。其处理业务流程,如图4所示。
图4 全国DVB-S数据处理流程
采用perl脚本对接收到的资源XML文件进行智能解析[12]。
1)筛选资源描述文件。通过遍历获取全国DVB-S数据接收目录中的所有描述文件,定义排除非资源描述文件,主要如下:
bnsr_package_index.xml
bnsr_manifest.xml
bnsr_package_metadata.xml
剩余描述文件均为资源描述文件。
2)描述文件解析。逐条进行解析,获取资源唯一编码、题目、分类、关键词、资源介绍、时长、大小。根据描述文件名称,查找对应的视频文件是否存在。若不存在,则查找相对应正常接收的文件,后缀为“~@$=#&”;检测文件容量是否在增加。若增加,则文件正在接收;若不变,则文件接收完毕,但未接收完整,则删除该视频资源文件和资源描述文件。
3)执行入库操作。采用Linux操作系统下的autostart与cron机制执行解析程序[13],实现开机与定时的数据遍历、解析、入库等操作流程。通过定义API处理数据,若分类不存在,程序将通过API返回的最后一个分类的编号,自动增加新分类,并给予新的编号再次对资源进行入库操作。
4)获取资源文件名称的途径。由于全国资源名称中存在特殊字符,从资源描述文件中解析出的名称无法与资源名匹配,因此,从资源描述文件中解析出的资源名称无法直接使用,则采用另一种形式实现获取资源文件名称。首先,截取资源描述文件名称作为资源名称①;其次,获取解析出的文件名并截取获得后缀②;最后,通过①+②的字符串拼接,得到正确的资源文件。这里尚未直接采用解析出的文件格式作为资源后缀,主要原因是描述文件里的格式需要做判断,例如解析出格式是wmv9,则不能直接使用。
样例代码如下:
use XML::Twig;
use Encode;
my $twig= new XML::Twig();
my $twigchannel= new XML::Twig();
`chmod 777 -R /ncdy`; #修改所有资源接收目录权限
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 数据展示
采用LAMP架构[14]开发DVB-S数据管理与展示程序,用户可通过Web方式读取、检索数据库中的数据,实现在国产CPU/OS平台上进行DVB-S资源的分类、展示、检索,并借助嵌入式播放器及其他应用软件正常浏览资源文件,如图5所示。
图5 资源展示页面
3 总结
本文基于国产龙芯计算平台,通过移植优化等方法,完善国产CPU/OS软硬件基础支撑环境,设计与实现全国DVB-S数据的解析程序,成功验证了解析、入库、展示等功能的可操作性,形成可行的技术路线和解决方案,为实现适用于国产CPU/OS的应用示范案例奠定基础。
[1] 芮雪,王亮亮,杨琴.国产处理器研究与发展现状综述[J]. 现代计算机(专业版),2014,3:15-19.
[2] 寇晓斌,杨琴,王亮亮.主流处理器体系结构与架构发展现状综述[J].微型机与应用,2014,16:1-2+5.
[3] 龙芯获MIPS指令系统授权[EB/OL]. http://www.loongson.cn/loongson/article/2009/0622/article_220.html,2009,6.
[4] 朱嘉.基于MIPS32平台的Linux操作系统移植[J].单片机与嵌入式系统应用,2006,11:24-26.
[5] 基于ARM的嵌入式Linux的交叉编译环境的建立[J]. 张瑞,于德海,马明龙. 科技信息. 2009(25):508-509.
[6] 王亮亮,杨琴,芮雪.面向主流RISC体系结构的Linux操作系统移植原理[J]. 计算机技术与发展,2014,8:76-79.
[7] 吴和敏,王亮亮等.农村党员干部现代远程教育终端接收站点应用系统LINUX平台技术研究[J].中国科技成果.2010,11(20):35-37.
[8] 王亮亮,杨琴,芮雪. 基于Linux及开源软件的新疆农村党员干部现代远程教育[J]. 计算机应用与软件,2014,(2):330-333.
[9] 张佳伟,王亮亮,周叶. 基于IP over DVB-S单向传输模式的远程终端系统与数据维护技术[J]. 电脑知识与技术,2016,(24):248-250.
[10] 李杰,马建国.基于DVB-S的IP数据业务实现机制研究[J].西南科技大学学报,2003,18(1):1-6.
[11] 杨琴,王亮亮,芮雪. 基于DVB-S的汉维哈Linux远程教育支撑平台设计[J]. 计算机与现代化,2016,(2):86-90.
[12] 郭文久. Perl语言环境下XML文档解析方法[J]. 生物信息学,2010,4:307-310.
[13] 张涛,王亮亮,张佳伟. 新疆党员远程教育终端系统与数据的ALL In One策略与方法[J]. 电脑知识与技术,2016,(23):73-76.
[14] 李杨. 构建基于Linux、Apache、MySQL、PHP平台的网站[J]. 电子技术与软件工程,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
新疆维吾尔自治区自然科学基金资助项目(2015211A015)
王亮亮(1977-),男,副教授,硕士,研究方向:Linux操作系统。 闫威(1977-),男,研究方向:Linux操作系统。 张佳伟(1992-),男,工程师,硕士研究生,研究方向:Linux操作系统。
1007-757X(2017)08-0009-03
TP311
A
2017.05.02)