999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

XML技術(shù)在NMR系統(tǒng)軟件參數(shù)處理中的應(yīng)用

2008-12-31 00:00:00張?zhí)?/span>曾文華
電腦知識與技術(shù) 2008年24期

智能信息技術(shù)福建省重點實驗室,福建 廈門,361005)

摘要:本文針對NMR(核磁共振)系統(tǒng)軟件的需求為其參數(shù)文件提供了一種XML設(shè)計方案,通過對多種XML解析方案的實驗和比較,為XML參數(shù)文件提供了一種最優(yōu)的解析和處理方案(VTD-XML),并且論證了VTD-XML在大數(shù)據(jù)處理方面的優(yōu)勢。

關(guān)鍵詞:VTD;LC;SAX;文檔對象模型;核磁共振;非提取式解析

中圖分類號:TP391文獻標(biāo)識碼:A 文章編號:1009-3044(2008)24-1338-03

Application of XML in Parameters Processing of Software for NMR

ZHANG Tai-biao1, 2, 3, ZENG Wen-hua2, 3

(1.Computer Dept. of Xiamen Commercial School, Xiamen Fujian, 361000, China;2. Software School of Xiamen University, Xiamen Fujian, 361005, China; 3. Key Laboratory for Intelligent Information Technology of Fujian Province, Xiamen University, Xiamen Fujian 361005, China )

Abstract: According to the commands of parameters processing in software for NMR, the authors provided an approach with XML for the parameters file, and brought forth a best solution (VTD-XML) for XML processing by comparing it with others techniques of XML parsing. Lastly they draws a conclusion that VTD-XML is more appropriate for large XML document than others similar techniques.

Key words: VTD; LC; SAX; DOM; NMR; non-extrative

1 XML技術(shù)簡介

近年來,XML(Extensible Markup Language,可擴展標(biāo)記語言)技術(shù)已經(jīng)成為信息技術(shù)中最引人注目的技術(shù)之一。作為新一代標(biāo)記語言,XML憑借其眾多優(yōu)勢,已經(jīng)逐步成為了數(shù)據(jù)表示的一個開放標(biāo)準(zhǔn),在許多領(lǐng)域得到了廣泛的應(yīng)用。

XML語言的前身是SGML和HTML,它們是兩種非常成功的標(biāo)記語言,但都在某些方面存在著技術(shù)缺陷[1]。與它們相比,XML具有以下顯著的特點[2]:(1)可擴展性,XML保留了SGML的可擴展功能,允許不同的專業(yè)開發(fā)與自己特點領(lǐng)域有關(guān)的標(biāo)記語言;(2)自描述性,XML文檔通常會包含一個文檔類型聲明,因此它能夠被方便地交換和處理;(3)結(jié)構(gòu)化和集成的數(shù)據(jù),XML能夠表現(xiàn)許多復(fù)雜的數(shù)據(jù)關(guān)系,并能使不同來源的結(jié)構(gòu)化數(shù)據(jù)輕易地結(jié)合在一起;(4)數(shù)據(jù)和數(shù)據(jù)的顯示方式實現(xiàn)分離,XML的數(shù)據(jù)存儲格式不受顯示格式的制約,它提供了一種結(jié)構(gòu)化的數(shù)據(jù)表示,使數(shù)據(jù)和顯示分離。如今,由于XML各種良好的特性,越來越多的數(shù)據(jù)以XML格式保存和傳輸,然后再根據(jù)不同的應(yīng)用場合把XML轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)格式,很好地解決了異構(gòu)數(shù)據(jù)之間的轉(zhuǎn)換問題。

2 NMR系統(tǒng)軟件中參數(shù)文件的XML設(shè)計方案

2.1 NMR系統(tǒng)軟件開發(fā)背景及功能介紹

磁共振成像(MRI)技術(shù)作為一種能反映多維信息的無損傷診斷手段,在醫(yī)學(xué)病理和基礎(chǔ)科學(xué)研究方面得到了廣泛的應(yīng)用。目前國內(nèi)所生產(chǎn)的低場永磁MRI系統(tǒng)中,絕大部分主要部件都依賴于進口,尤其是譜儀部件[3]。磁共振廠商的競爭越來越體現(xiàn)為譜儀技術(shù)的競爭。為了推進譜儀的國產(chǎn)化,國家投入了大量的資金用于數(shù)字化譜儀的研究(本項目并是在這樣的背景下展開的),研究的重點包括軟硬件兩方面的開發(fā)。MRI譜儀是MRI系統(tǒng)硬件的核心部件,主要應(yīng)用于開展小型磁共振成像系統(tǒng)的應(yīng)用和研究,本文所指的NMR系統(tǒng)軟件屬于這一項目的軟件分支。

NMR系統(tǒng)軟件是一套實現(xiàn)數(shù)字化譜儀控制的計算機軟件系統(tǒng)。系統(tǒng)主要有四大功能模塊:儀器控制模塊、實驗設(shè)計模塊、數(shù)據(jù)處理分析模塊和系統(tǒng)管理模塊。其中,儀器控制模塊完成數(shù)字化譜儀的硬件控制,以及為其他模塊提供與儀器通訊的編程接口;實驗設(shè)計模塊為研究人員或脈沖序列開發(fā)人員提供一個功能強大、易于使用的脈沖系列編程環(huán)境;數(shù)據(jù)處理分析模塊負(fù)責(zé)對1D和2D數(shù)據(jù)的處理、顯示和保存功能,便于數(shù)據(jù)的分析和處理;系統(tǒng)管理模塊主要完成系統(tǒng)用戶管理、機時管理及文件管理等有關(guān)功能。

2.2 參數(shù)文件的XML設(shè)計方案

參數(shù)作為貫徹整個NMR系統(tǒng)軟件的主線,在系統(tǒng)的各功能模塊中起著非常重要的作用。換句話說,參數(shù)設(shè)計方案的優(yōu)劣在很大程度上成為系統(tǒng)性能好壞的一個主要的標(biāo)準(zhǔn)。

為克服現(xiàn)有軟件的不足之處,推進數(shù)字化譜儀的國產(chǎn)化,研發(fā)出與目前世界水平相當(dāng)?shù)淖V儀軟件系統(tǒng),我們經(jīng)過認(rèn)真的考慮,最后決定使用XML作為系統(tǒng)的參數(shù)設(shè)計方案。因為XML不僅具備了平臺無關(guān)的特性,還可以實現(xiàn)高度結(jié)構(gòu)化且與顯示無關(guān)的數(shù)據(jù)描述。我們采用參數(shù)的XML分層描述,將實驗中各block的公共參數(shù)放在頂層,而與各block相關(guān)的參數(shù)放入單獨的一層中,與標(biāo)記有關(guān)的參數(shù)也單獨存放,以實現(xiàn)參數(shù)的分層管理。在實際使用中,至少會有一層,對于一個較復(fù)雜的實驗可能需要用幾千層來描述參數(shù)。

參數(shù)文件一般由三個部分組成,分別為公共參數(shù)部分(common)、層參數(shù)(layer)和標(biāo)記參數(shù)(annotation),其中的每一部分均有多個參數(shù)。通過它這種設(shè)計可以滿足系統(tǒng)的相關(guān)需求,實現(xiàn)復(fù)雜實驗的參數(shù)管理。

3 XML文件的解析及其方法

XML只是一種以純文本對數(shù)據(jù)進行編碼的格式,要想利用XML文件中所編碼的數(shù)據(jù),必須將其從XML純文本中解析出來,因此,必須有一個能夠識別XML文檔信息的文本文件閱讀器(即XML解析器),用于解釋XML文檔并提取其中的內(nèi)容[1]。目前XML的解析模式主要有兩種:提取式解析(extractive parsing)模式和非提取式解析(no-extractive parsing)模式[2]。提取式XML解析在解析XML文檔時,提取一部分原文件,一般是一個字符串,然后在內(nèi)存中對其進行對象的構(gòu)建。傳統(tǒng)的XML解析均是采用這種方式,其主要的代表是SAX(Simple API for XML)和DOM(Document Object Model)。非提取式XML解析不同于前者,它在解析XML時,將文檔作為整體一次性讀入,然后以二進制數(shù)組的形式處理XML數(shù)據(jù)。這種解析模式的代表是VTD-XML(Virtual Token Description for Extensible Markup Language)。下面具體討論一下這幾種XML解析技術(shù)。

3.1 文檔對象模型DOM

DOM是由W3C制定的一種獨立與語言和平臺的標(biāo)準(zhǔn),其實質(zhì)是一組用于定義、創(chuàng)建和處理XML文檔結(jié)構(gòu)及其內(nèi)容的API,它提供了一個可以通用于各種程序語言、操作系統(tǒng)和應(yīng)用程序的接口。

DOM是一種基于樹結(jié)構(gòu)的XML解析技術(shù),它將結(jié)構(gòu)完整的XML文檔定義為一棵樹,開發(fā)人員只需利用樹中的對象便可以輕松對XML文檔進行讀取、搜索、修改、添加和刪除等操作。標(biāo)準(zhǔn)的W3C中DOM有這幾種節(jié)點:Document、Root、Text、Element和Attribute。使用DOM對XML文件進行處理解析時,它將文檔中的元素、屬性、注釋和處理指令等都看作節(jié)點(Node),然后在內(nèi)存中以節(jié)點樹的形式創(chuàng)建XML的文件表示[4]。這樣便可以通過節(jié)點樹來訪問XML文檔中的內(nèi)容,并根據(jù)需要來修改文檔,以上過程便是DOM的基本工作原理。

DOM解析技術(shù)的最大優(yōu)點是簡單易用且方便編程,因為當(dāng)XML文檔解析完畢后,整個文檔并以一棵文檔樹的形式被保存在內(nèi)存當(dāng)中,操作非常方便,支持刪除、修改和重新排列等眾多功能。但是,基于DOM的解析程序運行效率不高,且消耗內(nèi)存極大,不大適合大型XML文檔的解析處理。

3.2 簡單應(yīng)用程序接口SAX

與DOM不同的是,SAX是一種基于事件的XML解析技術(shù),它不是W3C提出的標(biāo)準(zhǔn),但是功能很強大,因此在實際中應(yīng)用相當(dāng)廣泛,幾乎所有的解析器都會對它支持。

SAX提供了一種對XML文檔進行順序訪問的模式,這是一種快速讀取XML數(shù)據(jù)的方式[5]。當(dāng)使用SAX對XML文檔進行解析時,解析器會從頭到尾將XML文件順序讀入,讀入過程中每遇到相應(yīng)部分并會產(chǎn)生具體的事件,然后應(yīng)用程序再根據(jù)事件的發(fā)生來調(diào)用相應(yīng)的事件處理方法,完成每個事件的處理。例如,當(dāng)SAX遇到某一XML元素的開始標(biāo)記時,它會觸發(fā)一個元素開始(StartElement)事件,并在事件中提供相應(yīng)的信息,如:元素的名稱、屬性集等等。當(dāng)然,前提是程序員必須在此過程中對自己感興趣的事件進行相應(yīng)的編碼。SAX類似于流媒體處理,分析能夠立即開始,應(yīng)用程序只是在讀取數(shù)據(jù)時檢查數(shù)據(jù),因此不必將數(shù)據(jù)存儲在內(nèi)存中(這一點是DOM沒辦法做到的)。

3.3 XML快速解析技術(shù)——VTD-XML

圖1 VTD的比特層格式

表1 VTD-XML、SAX和DOM性能對比

表2 SAX方案和VTD-XML方案數(shù)據(jù)對比

前面介紹的兩種XML解析技術(shù)均屬于提取式解析,解析過程中伴隨著大量對象的創(chuàng)建,效率相對低下,對內(nèi)存的消耗較大。為了克服提取式解析的缺陷,一種全新的XML解析模式—非提取式解析,意蘊而生。非提取式解析在解析XML文檔時,將文檔以二進制的形式原封不動地讀入內(nèi)存,以二進制數(shù)組保存文檔信息,通過這一數(shù)組來獲取、修改和更新XML文檔中的數(shù)據(jù),處理效率非常高,內(nèi)存占用只比XML文件本身大不了多少。

非提取式解析模式的一個典型代表是VTD-XML,它在XML數(shù)據(jù)加載時不做任何的解碼工作,把XML的基本結(jié)構(gòu)以二進制形式讀入內(nèi)存,并對二進制數(shù)組加以解析,獲得元素的位置信息,將其存入位置緩沖器LC(Location Cache)中,然后便能以數(shù)組的訪問效率來獲取數(shù)據(jù),其訪問的復(fù)雜度為O(1)。

為了讓大家進一步了解VTD-XML,下面介紹兩個重要概念:VTD和LC。需要注意的是VTD并非一個API規(guī)范,它只是關(guān)于如何編碼令牌中各種參數(shù)的二進制格式說明。當(dāng)前VTD-XML模型中采用的VTD是一個64位的數(shù)值類型,具體格式如圖3-1所示[1]。使用VTD-XML進行XML文檔解析時,文檔中的每一要素(指令、起止標(biāo)記、屬性、數(shù)據(jù)和注釋等)均使用一個VTD進行記錄。如圖1所示,為了區(qū)分不同要素,VTD用它的最高四位來標(biāo)識令牌的類型,具體令牌類型標(biāo)識參照文獻[1];另外,VTD中還記錄了令牌嵌套深度、長度和偏移量等信息。VTD-XML通過遍歷這些VTD記錄來找到對應(yīng)的XML信息,然后根據(jù)VTD中所記錄的信息操作二進制數(shù)組,完成對XML文件的相關(guān)處理。為了正確完成VTD記錄的遍歷工作,它必須借助于位置緩沖LC。LC是一個將VTD以其深度作為標(biāo)準(zhǔn)構(gòu)建的樹形的表結(jié)構(gòu)。在此基礎(chǔ)上,應(yīng)用程序只需利用相關(guān)的信息,便可以在最少的幾步內(nèi)查找到需要的元素,遍歷性能十分突出。

表1是一組關(guān)于DOM、SAX和VTD-XML之間性能對比的數(shù)據(jù)[1]。從表中的數(shù)據(jù)可以看出,VTD-XML是一種很好的解析技術(shù),不僅速度快,而且占用內(nèi)存也比較小,適合較大文檔的處理。

4 NMR系統(tǒng)參數(shù)處理解決方案對比

為了找到一種高效并適合NMR系統(tǒng)的XML參數(shù)處理解決方案,我們分別使用了以上三種解析方案進行了具體的實現(xiàn)。當(dāng)遇到較為復(fù)雜(如block的數(shù)量達到了上千個以上)的實驗時,相應(yīng)的XML參數(shù)文件會達到幾十兆甚至幾百兆。DOM解析方案使用的內(nèi)存一般是原文檔的5~10倍,經(jīng)過實驗發(fā)現(xiàn)它遇到10兆以上的情況就沒辦法處理了,所以它不是一種合適的解析方案。表2給出SAX方案和VTD方案的一組關(guān)于XML參數(shù)文件的測試數(shù)據(jù)。具體測試環(huán)境如下:CPU為Intel Pentium 雙核 1.73GHZ,內(nèi)存2G。

我們發(fā)現(xiàn)SAX方案與VTD-XML方案相比性能有比較大區(qū)別,尤其是在處理時間方面。主要的原因是在SAX方案中在建立自己的對象模型時伴隨這大量的對象創(chuàng)建,而VTD-XML是直接操作二進制數(shù)組。另外,兩種方案當(dāng)文檔達到100多兆時均出現(xiàn)了內(nèi)存溢出的情況,不過就我們項目的實際應(yīng)用而言,參數(shù)大小最多在幾十兆,所以兩種方案均可勝任。當(dāng)然,最優(yōu)方案還是VTD-XML,它在大文檔解析方面優(yōu)勢明顯。

5 結(jié)束語

隨著XML被越來越廣泛的應(yīng)用,合理使用并高效解析XML變得越來越重要,尤其對于那些需要處理大量數(shù)據(jù)的應(yīng)用程序,顯得更加重要。選擇合適的XML解析技術(shù)對系統(tǒng)的系能有著較大的影響,VTD-XML作為一種新的快速解析技術(shù),必將憑借其性能上的優(yōu)勢被廣泛使用,同時,它也將伴隨著XML技術(shù)得到不斷地發(fā)展和完善。

參考文獻:

[1] 劉芳,肖鐵軍.XML應(yīng)用的基石:XML解析技術(shù)[J]. 計算機工程與設(shè)計,2005,26(10):308-308.

[2] 魚雷.VTD-XML.解析技術(shù)研究[D].西安:西安電子科技大學(xué),2007.

[3] 沈杰.數(shù)字化譜儀軟件的研制和應(yīng)用[D].上海:華東師范大學(xué),2006.

[4] 張亞峰.XML技術(shù)在基于web的產(chǎn)品數(shù)據(jù)管理中的應(yīng)用[D].西安:西安電子科技大學(xué),2006.

[5] 王惠.基于SAX的文檔解析技術(shù)的研究與實現(xiàn).開發(fā)研究與設(shè)計實現(xiàn)[J].2006:147-148.

主站蜘蛛池模板: 久久这里只有精品2| 激情六月丁香婷婷四房播| 精品人妻无码区在线视频| 国产视频大全| 国产高清在线丝袜精品一区| 久久精品丝袜高跟鞋| 久久大香伊蕉在人线观看热2| 理论片一区| 亚洲成年人网| 国产精品香蕉在线| 日本在线欧美在线| 中国一级特黄视频| 国产不卡在线看| 波多野结衣一区二区三区四区| 99国产精品免费观看视频| 国产无人区一区二区三区| 久久a毛片| 91小视频在线| 国内精品久久九九国产精品| 国产一在线观看| 日本爱爱精品一区二区| 激情爆乳一区二区| 在线无码av一区二区三区| 国产丝袜无码精品| 亚洲人成网站18禁动漫无码| 自拍中文字幕| 中文字幕在线免费看| 99九九成人免费视频精品 | 特级精品毛片免费观看| 色135综合网| 六月婷婷精品视频在线观看| 亚洲另类国产欧美一区二区| 欧美影院久久| 亚洲日本www| 一级黄色网站在线免费看| 免费国产不卡午夜福在线观看| 精品乱码久久久久久久| 国产又色又爽又黄| 国产主播喷水| 狠狠亚洲婷婷综合色香| 亚洲三级成人| 亚洲精品你懂的| 国产欧美日韩在线一区| 国产高清毛片| 日韩不卡高清视频| 亚洲人成在线精品| 欧美日韩v| 高h视频在线| 亚洲—日韩aV在线| 99精品福利视频| 天天做天天爱夜夜爽毛片毛片| 久久亚洲天堂| 亚洲黄色片免费看| 亚洲综合欧美在线一区在线播放| 亚洲欧美极品| 日本精品视频一区二区| 亚洲全网成人资源在线观看| 亚洲一区二区三区国产精华液| 亚洲综合专区| 免费Aⅴ片在线观看蜜芽Tⅴ | 国产剧情伊人| 国产日韩精品欧美一区喷| 91精品国产一区| 亚洲an第二区国产精品| 亚洲AV无码乱码在线观看代蜜桃| 欧美三级不卡在线观看视频| 深爱婷婷激情网| 不卡色老大久久综合网| 国内精品自在欧美一区| 色婷婷在线播放| 超清无码一区二区三区| 91精品啪在线观看国产| 91欧美亚洲国产五月天| 精品国产一区二区三区在线观看| 成人小视频网| 99久久99视频| 国产成人1024精品下载| 精品国产美女福到在线直播| 亚洲精品卡2卡3卡4卡5卡区| 国产一在线| 国产成人乱无码视频| 日韩精品久久无码中文字幕色欲|