中國(guó)空空導(dǎo)彈研究院軟件部 馬龍暉 劉海紅 王 磊
基于常用格式數(shù)據(jù)解析軟件設(shè)計(jì)
中國(guó)空空導(dǎo)彈研究院軟件部 馬龍暉 劉海紅 王 磊
本文提出了一種對(duì)常用格式數(shù)據(jù)進(jìn)行解析的軟件設(shè)計(jì)方案,并對(duì)方案的原理及實(shí)現(xiàn)方式進(jìn)行了介紹,說(shuō)明了軟件的需求和實(shí)現(xiàn)考慮。經(jīng)過(guò)實(shí)際測(cè)試,驗(yàn)證了方案的可行性。
數(shù)據(jù)解析;XML;數(shù)據(jù)格式
數(shù)據(jù)解析是將收集的數(shù)據(jù)通過(guò)加工、整理,它是數(shù)據(jù)分析的前提,是將數(shù)據(jù)轉(zhuǎn)換為對(duì)用戶有用信息的基礎(chǔ)。數(shù)據(jù)解析軟件的應(yīng)用十分廣泛,同時(shí),隨著信息時(shí)代的發(fā)展,對(duì)數(shù)據(jù)的解析分析野越來(lái)越引起人們的重視。
當(dāng)前,市面上有非常多的數(shù)據(jù)解析軟件,但大多是針對(duì)某些特定領(lǐng)域方面或者數(shù)據(jù)具體明確的解析軟件。本文提出了一種對(duì)常用格式數(shù)據(jù)進(jìn)行解析的設(shè)計(jì)方案,可以達(dá)到對(duì)不同定義的數(shù)據(jù)格式進(jìn)行解析的目的[1]。
本文提出的方案將解析過(guò)程分為了兩部分,數(shù)據(jù)定義和程序解析。當(dāng)需要對(duì)一種新的數(shù)據(jù)解析時(shí),只需要針對(duì)這種新的格式進(jìn)行定義即可,不需要重新開發(fā)軟件,極大的減少了程序的開發(fā)和維護(hù)成本。
數(shù)據(jù)的定義可以有多種方式,可以用特定語(yǔ)言定義,也可以用字母標(biāo)志定義。選擇一種合適的數(shù)據(jù)定義方式十分重要,即需要考慮數(shù)據(jù)的擴(kuò)展性和多變性,也應(yīng)該簡(jiǎn)單易用。這里選擇可擴(kuò)展標(biāo)記語(yǔ)言(XML,Extensible Markup Language)作為數(shù)據(jù)定義的方式。它是一種可以用來(lái)標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型的源語(yǔ)言。能夠獨(dú)立于應(yīng)用程序和平臺(tái)[2-5]。
程序解析過(guò)程如圖1所示,它需要具備以下功能:(1)根據(jù)數(shù)據(jù)定義將原始數(shù)據(jù)分類;(2)可以將分類后的數(shù)據(jù)解析為能夠理解的內(nèi)容;(3)能夠?qū)⒔馕龊蟮臄?shù)據(jù)進(jìn)行適當(dāng)?shù)男畔⒄故?如圖形、表格、曲線等)。
圖1 數(shù)據(jù)解析過(guò)程
圖2 數(shù)據(jù)格式定義
3.1 數(shù)據(jù)定義
數(shù)據(jù)格式的定義通常跟數(shù)據(jù)本身的物理含義密切相關(guān)。比如,溫度數(shù)據(jù)的格式定義和IP地址的格式定義一定是不同的。數(shù)據(jù)格式的定義需要具備以下幾個(gè)元素:
(1)物理含義,這一項(xiàng)的定義可以使用戶理解解析出來(lái)的數(shù)據(jù)表示什么意義;(2)位元組順序,它指的是數(shù)據(jù)的組織方式,例如(10 00)和(00 01)是兩個(gè)不同的數(shù)據(jù),但是如果分別按照大端順序解析和小端順序解析的話,它們就是同樣的數(shù)據(jù)。尤其在通信數(shù)據(jù)的獲取中,這種定義是必須的;(3)數(shù)據(jù)長(zhǎng)度,即代表每個(gè)物理含義的數(shù)據(jù)所具有的長(zhǎng)度,這個(gè)定義用來(lái)使軟件確定每一項(xiàng)物理信息在原始數(shù)據(jù)中的位置并截取出來(lái);(4)數(shù)據(jù)類型,解析程序需要將截取的數(shù)據(jù)按照定義的數(shù)據(jù)類型解釋,不同的類型定義會(huì)導(dǎo)致同一個(gè)數(shù)據(jù)被轉(zhuǎn)換成不同的內(nèi)容。
一個(gè)簡(jiǎn)單的數(shù)據(jù)格式定義如圖2所示,定義了一個(gè)數(shù)據(jù)包,位元組順序是大端順序,包含了4種類型的信息。比如SourceIP數(shù)據(jù)類型是IP,長(zhǎng)度12位;Temperature數(shù)據(jù)類型是Float,長(zhǎng)度32位。
3.2 數(shù)據(jù)解析
數(shù)據(jù)解析軟件從數(shù)據(jù)源(可以是網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、文件等)那里獲取原始數(shù)據(jù),按照用戶定義的XML文件中的數(shù)據(jù)格式,對(duì)原始數(shù)據(jù)進(jìn)行定位(通過(guò)格式定義確定數(shù)據(jù)的位置)、截取(根據(jù)位置信息和長(zhǎng)度取得數(shù)據(jù))和解析(按照數(shù)據(jù)類型定義轉(zhuǎn)換)獲得用戶可以理解的數(shù)據(jù)信息,最終通過(guò)適當(dāng)?shù)姆绞?表格、圖形、曲線等)展示給用戶,如圖3所示。數(shù)據(jù)的解析過(guò)程如圖4所示。
圖3 信息展示圖例
圖4 數(shù)據(jù)解析過(guò)程
在實(shí)際使用中,對(duì)具有不同格式的數(shù)據(jù)內(nèi)容進(jìn)行實(shí)際測(cè)試,可以獲得有效的獲取所需要的信息,可以根據(jù)需要選擇適當(dāng)?shù)男畔⒄故痉绞健?/p>
本文針對(duì)常用格式數(shù)據(jù)的解析提出了一種軟件設(shè)計(jì)方案,并介紹了原理和實(shí)現(xiàn)考慮。同時(shí),在實(shí)際測(cè)試的結(jié)果中證明了設(shè)計(jì)的可行性,對(duì)于有數(shù)據(jù)解析分析需求的研究設(shè)計(jì)人員具有較大的參考價(jià)值。
[1]薛琳,夏小玲.基于配置文件映射的數(shù)據(jù)解析方案[J].計(jì)算機(jī)與現(xiàn)代化,2014-06-26.
[2]瞿裕忠,張劍鋒,陳崢,王叢剛.XML語(yǔ)言及相關(guān)技術(shù)綜述[J].計(jì)算機(jī)工程,2000-12-20.
[3]雷映喜,習(xí)淑婷,彭俊峰,周應(yīng)光.XML與JSON在WEB中對(duì)數(shù)據(jù)封裝解析的對(duì)比[J].價(jià)值工程,2013-03-28.
[4]王仲,陳曉鷗.基于XML的數(shù)據(jù)交換與存取技術(shù)研究[J].計(jì)算機(jī)工程與應(yīng)用,2001-12-15.
[5]孔令波,唐世渭,楊冬青,王騰蛟,高軍.XML數(shù)據(jù)索引技術(shù)[J].軟件學(xué),2005-12-30.
[6]楊彥波,劉濱,祁明月.信息可視化研究綜述[J].河北科技大學(xué)學(xué)報(bào),2014-01-20.
Design of Analysis Software Based on Common Format Data
MA Longhui,LIU Haihong,WANG Lei
(Software Division,Chinese Academy of Air-To-Air Missile,Luoyang 471000,China)
This paper presents a software design scheme for analyzing commonly used format data,and introduces the principle and implementation of the scheme,and explains the requirements and implementation of the software. After the actual test,verify the feasibility of the program.
Data analysis;XML;Data format