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