XML技术在NMR系统软件参数处理中的应用

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:wxws008
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  智能信息技术福建省重点实验室,福建 厦门,361005)
  摘要:本文针对NMR(核磁共振)系统软件的需求为其参数文件提供了一种XML设计方案,通过对多种XML解析方案的实验和比较,为XML参数文件提供了一种最优的解析和处理方案(VTD-XML),并且论证了VTD-XML在大数据处理方面的优势。
  关键词:VTD;LC;SAX;文档对象模型;核磁共振;非提取式解析
  中图分类号:TP391文献标识码: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技术简介
  
  近年来,XML(Extensible Markup Language,可扩展标记语言)技术已经成为信息技术中最引人注目的技术之一。作为新一代标记语言,XML凭借其众多优势,已经逐步成为了数据表示的一个开放标准,在许多领域得到了广泛的应用。
  XML语言的前身是SGML和HTML,它们是两种非常成功的标记语言,但都在某些方面存在着技术缺陷[1]。与它们相比,XML具有以下显著的特点[2]:(1)可扩展性,XML保留了SGML的可扩展功能,允许不同的专业开发与自己特点领域有关的标记语言;(2)自描述性,XML文档通常会包含一个文档类型声明,因此它能够被方便地交换和处理;(3)结构化和集成的数据,XML能够表现许多复杂的数据关系,并能使不同来源的结构化数据轻易地结合在一起;(4)数据和数据的显示方式实现分离,XML的数据存储格式不受显示格式的制约,它提供了一种结构化的数据表示,使数据和显示分离。如今,由于XML各种良好的特性,越来越多的数据以XML格式保存和传输,然后再根据不同的应用场合把XML转换成相应的数据格式,很好地解决了异构数据之间的转换问题。
  
  2 NMR系统软件中参数文件的XML设计方案
  
  2.1 NMR系统软件开发背景及功能介绍
  磁共振成像(MRI)技术作为一种能反映多维信息的无损伤诊断手段,在医学病理和基础科学研究方面得到了广泛的应用。目前国内所生产的低场永磁MRI系统中,绝大部分主要部件都依赖于进口,尤其是谱仪部件[3]。磁共振厂商的竞争越来越体现为谱仪技术的竞争。为了推进谱仪的国产化,国家投入了大量的资金用于数字化谱仪的研究(本项目并是在这样的背景下展开的),研究的重点包括软硬件两方面的开发。MRI谱仪是MRI系统硬件的核心部件,主要应用于开展小型磁共振成像系统的应用和研究,本文所指的NMR系统软件属于这一项目的软件分支。
  NMR系统软件是一套实现数字化谱仪控制的计算机软件系统。系统主要有四大功能模块:仪器控制模块、实验设计模块、数据处理分析模块和系统管理模块。其中,仪器控制模块完成数字化谱仪的硬件控制,以及为其他模块提供与仪器通讯的编程接口;实验设计模块为研究人员或脉冲序列开发人员提供一个功能强大、易于使用的脉冲系列编程环境;数据处理分析模块负责对1D和2D数据的处理、显示和保存功能,便于数据的分析和处理;系统管理模块主要完成系统用户管理、机时管理及文件管理等有关功能。
  2.2 参数文件的XML设计方案
  参数作为贯彻整个NMR系统软件的主线,在系统的各功能模块中起着非常重要的作用。换句话说,参数设计方案的优劣在很大程度上成为系统性能好坏的一个主要的标准。
  为克服现有软件的不足之处,推进数字化谱仪的国产化,研发出与目前世界水平相当的谱仪软件系统,我们经过认真的考虑,最后决定使用XML作为系统的参数设计方案。因为XML不仅具备了平台无关的特性,还可以实现高度结构化且与显示无关的数据描述。我们采用参数的XML分层描述,将实验中各block的公共参数放在顶层,而与各block相关的参数放入单独的一层中,与标记有关的参数也单独存放,以实现参数的分层管理。在实际使用中,至少会有一层,对于一个较复杂的实验可能需要用几千层来描述参数。
  参数文件一般由三个部分组成,分别为公共参数部分(common)、层参数(layer)和标记参数(annotation),其中的每一部分均有多个参数。通过它这种设计可以满足系统的相关需求,实现复杂实验的参数管理。
  
  3 XML文件的解析及其方法
  
  XML只是一种以纯文本对数据进行编码的格式,要想利用XML文件中所编码的数据,必须将其从XML纯文本中解析出来,因此,必须有一个能够识别XML文档信息的文本文件阅读器(即XML解析器),用于解释XML文档并提取其中的内容[1]。目前XML的解析模式主要有两种:提取式解析(extractive parsing)模式和非提取式解析(no-extractive parsing)模式[2]。提取式XML解析在解析XML文档时,提取一部分原文件,一般是一个字符串,然后在内存中对其进行对象的构建。传统的XML解析均是采用这种方式,其主要的代表是SAX(Simple API for XML)和DOM(Document Object Model)。非提取式XML解析不同于前者,它在解析XML时,将文档作为整体一次性读入,然后以二进制数组的形式处理XML数据。这种解析模式的代表是VTD-XML(Virtual Token Description for Extensible Markup Language)。下面具体讨论一下这几种XML解析技术。
  3.1 文档对象模型DOM
  DOM是由W3C制定的一种独立与语言和平台的标准,其实质是一组用于定义、创建和处理XML文档结构及其内容的API,它提供了一个可以通用于各种程序语言、操作系统和应用程序的接口。
  DOM是一种基于树结构的XML解析技术,它将结构完整的XML文档定义为一棵树,开发人员只需利用树中的对象便可以轻松对XML文档进行读取、搜索、修改、添加和删除等操作。标准的W3C中DOM有这几种节点:Document、Root、Text、Element和Attribute。使用DOM对XML文件进行处理解析时,它将文档中的元素、属性、注释和处理指令等都看作节点(Node),然后在内存中以节点树的形式创建XML的文件表示[4]。这样便可以通过节点树来访问XML文档中的内容,并根据需要来修改文档,以上过程便是DOM的基本工作原理。
  DOM解析技术的最大优点是简单易用且方便编程,因为当XML文档解析完毕后,整个文档并以一棵文档树的形式被保存在内存当中,操作非常方便,支持删除、修改和重新排列等众多功能。但是,基于DOM的解析程序运行效率不高,且消耗内存极大,不大适合大型XML文档的解析处理。
  3.2 简单应用程序接口SAX
  与DOM不同的是,SAX是一种基于事件的XML解析技术,它不是W3C提出的标准,但是功能很强大,因此在实际中应用相当广泛,几乎所有的解析器都会对它支持。
  SAX提供了一种对XML文档进行顺序访问的模式,这是一种快速读取XML数据的方式[5]。当使用SAX对XML文档进行解析时,解析器会从头到尾将XML文件顺序读入,读入过程中每遇到相应部分并会产生具体的事件,然后应用程序再根据事件的发生来调用相应的事件处理方法,完成每个事件的处理。例如,当SAX遇到某一XML元素的开始标记时,它会触发一个元素开始(StartElement)事件,并在事件中提供相应的信息,如:元素的名称、属性集等等。当然,前提是程序员必须在此过程中对自己感兴趣的事件进行相应的编码。SAX类似于流媒体处理,分析能够立即开始,应用程序只是在读取数据时检查数据,因此不必将数据存储在内存中(这一点是DOM没办法做到的)。
  3.3 XML快速解析技术——VTD-XML
  
  表2 SAX方案和VTD-XML方案数据对比
  
  前面介绍的两种XML解析技术均属于提取式解析,解析过程中伴随着大量对象的创建,效率相对低下,对内存的消耗较大。为了克服提取式解析的缺陷,一种全新的XML解析模式—非提取式解析,意蕴而生。非提取式解析在解析XML文档时,将文档以二进制的形式原封不动地读入内存,以二进制数组保存文档信息,通过这一数组来获取、修改和更新XML文档中的数据,处理效率非常高,内存占用只比XML文件本身大不了多少。
  非提取式解析模式的一个典型代表是VTD-XML,它在XML数据加载时不做任何的解码工作,把XML的基本结构以二进制形式读入内存,并对二进制数组加以解析,获得元素的位置信息,将其存入位置缓冲器LC(Location Cache)中,然后便能以数组的访问效率来获取数据,其访问的复杂度为O(1)。
  为了让大家进一步了解VTD-XML,下面介绍两个重要概念:VTD和LC。需要注意的是VTD并非一个API规范,它只是关于如何编码令牌中各种参数的二进制格式说明。当前VTD-XML模型中采用的VTD是一个64位的数值类型,具体格式如图3-1所示[1]。使用VTD-XML进行XML文档解析时,文档中的每一要素(指令、起止标记、属性、数据和注释等)均使用一个VTD进行记录。如图1所示,为了区分不同要素,VTD用它的最高四位来标识令牌的类型,具体令牌类型标识参照文献[1];另外,VTD中还记录了令牌嵌套深度、长度和偏移量等信息。VTD-XML通过遍历这些VTD记录来找到对应的XML信息,然后根据VTD中所记录的信息操作二进制数组,完成对XML文件的相关处理。为了正确完成VTD记录的遍历工作,它必须借助于位置缓冲LC。LC是一个将VTD以其深度作为标准构建的树形的表结构。在此基础上,应用程序只需利用相关的信息,便可以在最少的几步内查找到需要的元素,遍历性能十分突出。
  表1是一组关于DOM、SAX和VTD-XML之间性能对比的数据[1]。从表中的数据可以看出,VTD-XML是一种很好的解析技术,不仅速度快,而且占用内存也比较小,适合较大文档的处理。
  
  4 NMR系统参数处理解决方案对比
  
  为了找到一种高效并适合NMR系统的XML参数处理解决方案,我们分别使用了以上三种解析方案进行了具体的实现。当遇到较为复杂(如block的数量达到了上千个以上)的实验时,相应的XML参数文件会达到几十兆甚至几百兆。DOM解析方案使用的内存一般是原文档的5~10倍,经过实验发现它遇到10兆以上的情况就没办法处理了,所以它不是一种合适的解析方案。表2给出SAX方案和VTD方案的一组关于XML参数文件的测试数据。具体测试环境如下:CPU为Intel Pentium 双核 1.73GHZ,内存2G。
  我们发现SAX方案与VTD-XML方案相比性能有比较大区别,尤其是在处理时间方面。主要的原因是在SAX方案中在建立自己的对象模型时伴随这大量的对象创建,而VTD-XML是直接操作二进制数组。另外,两种方案当文档达到100多兆时均出现了内存溢出的情况,不过就我们项目的实际应用而言,参数大小最多在几十兆,所以两种方案均可胜任。当然,最优方案还是VTD-XML,它在大文档解析方面优势明显。
  
  5 结束语
  
  随着XML被越来越广泛的应用,合理使用并高效解析XML变得越来越重要,尤其对于那些需要处理大量数据的应用程序,显得更加重要。选择合适的XML解析技术对系统的系能有着较大的影响,VTD-XML作为一种新的快速解析技术,必将凭借其性能上的优势被广泛使用,同时,它也将伴随着XML技术得到不断地发展和完善。
  
  参考文献:
  [1] 刘芳,肖铁军.XML应用的基石:XML解析技术[J]. 计算机工程与设计,2005,26(10):308-308.
  [2] 鱼雷.VTD-XML.解析技术研究[D].西安:西安电子科技大学,2007.
  [3] 沈杰.数字化谱仪软件的研制和应用[D].上海:华东师范大学,2006.
  [4] 张亚峰.XML技术在基于web的产品数据管理中的应用[D].西安:西安电子科技大学,2006.
  [5] 王惠.基于SAX的文档解析技术的研究与实现.开发研究与设计实现[J].2006:147-148.
其他文献
摘要:作为开发中小型网上数据库应用系统的优秀开发方案之一,Asp Access的开发模式也存在一些安全漏洞,文章分析了数据库的特点,并针对漏洞,提出了行之有效的解决方法。  关键词:Asp;Access;数据库;安全  中图法分类号:TP393.08文献标识码:A 文章编号:1009-3044(2008)11-20218-01    随着计算机的普及和计算机各方面技术的高速发展,计算机网络也更加深
摘要:通过对无线通信网络的体系结构,运营方式,切换技术实现细节等方面的分析和研究,研究和探讨异构网络之间的切换技术,最终提出一个面向下一代无线通信网络的新型的基于IP的综合切换(Integrated Handover,IH)框架。  IH技术的最终目标就是要解决移动通信网络中因网络异构、资源开销瓶颈等影响,成功地实现全球无线网络覆盖范围的低时延、高带宽、宽切换域、开销低和QoS保证的不同网络间顺畅
自我国实施新的语文统编教材制度以来,小学语文教材编写有一个引人注目的变化,就是阅读策略开始引入单元教学设计中。例如,教材中专门安排了复述、预测、推论、提问、快速阅读等几个重要的阅读策略。策略教学的提出并非始于今日,但当下语文教材这一新设计,对我们一线语文教师意味着什么呢?如果围绕这一举措的相关方面全面、系统、深入地思考,必将有助于我们更加自觉、积极稳妥地深化阅读教学改革。  一、阅读教学:从技能训
摘要:智能手机不仅仅可以用来打电话,还可以用来阅读从网上下载的书籍。现在网上的很多书籍采用的是txt格式。可是,有时会遇到在计算机中能正常显示的文本文件,在手机中却全是乱码,无法阅读。该文就针对这一问题用visual studio 2005编个简单的小程序,来帮助广大的手机用户解决txt格式的书籍出现乱码的问题。  关键词:Visual studio 2005;智能手机;编码;Unicode AN
摘要:该系统是为改变一个五金批发部以人工手写管理的现状,而设计的一个进销存管理系统。系统的主要功能是对商品的进货、销售和库存进行监控、调配和管理,以实现商品进销存管理的信息化、自动化和科学化。该系统的前台应用程序界面采PowerBuilder 9.0开发,后台数据库选用PowerBuilder自带的关系数据库Sybase SQL Anywhere。在系统设计中,详细的展现了系统的各个功能模块,所需
摘要:文章重点研究在自适应控制中间件支持下,Web服务组合执行引擎的QoS管理机制,设计了一个基于QoS的自适应控制中间件,并应用于Web服务组合执行引擎当中,以支持对服务请求的分级处理,实现了为不同等级用户提供区分服务的功能,为提高可变负载下单个执行引擎的高吞吐量和快速响应时间提供了一种有效的解决方案。  关键词:自适应控制;服务组合;执行引擎;服务质量;区分服务  中图分类号:TP301文献标
基于校园网的防火墙技术应用研究  王晓雨1,2  (1.武汉理工大学 计算机学院,湖北 武汉 430063;2.荆楚理工学院 计算机工程学院,湖北 荆门 448000)  摘要:防火墙技术是网络安全领域的一项重要技术,该文针对当前校园网应用中所遇到的问题,提出了几种解决的方法,并重点阐述了防火墙技术及其在校园网络安全中的应用。  关键词:校园网;网络安全;防火墙  中图分类号:TP393文献标识码
摘要:在ADO.NET提供的数据访问控件中,DataView具有功能强大的数据处理功能。本文就DataView的数据排序、数据筛选、数据搜索、数据修改等功能实现技巧进行探讨。  关键词:vb.net;数据源;DataView控件   中图法分类号:TP311 文献标识码:A 文章编号:1009-3044(2008)08-10ppp-0c    1 前言    随着计算机功能不断增强,计算机领域不断
摘要:阐述了嵌入式操作系统发展的历史、嵌入式操作系统的市场和技术发展的变化,介绍了当前一种源码公开的嵌入式实时操作系统μC/OS-II在产品开发中的应用现状、技术优势。分析了μC/OS-II嵌入式实时内核的公开源代码可移植性、可裁剪、可固化、稳定性与可靠性等特点。指出μC/OS-II在嵌入式工业控制系统中很好的应用前景。  关键词:嵌入式操作系统;μC/OS-II;移植  中图分类号:TP311文
摘要:针对于成人的计算机技术教学不能和学校教育中的计算机技术教学一样,必须针对成人的特点,采取有针对性的教学方法。本文结合成人的学习特点,就如何针对不同课程,更好利用多媒体,搞好成人计算机教学,强化实践教学,提高教学效果提出了自己的观点,并在此基础上提出了教学过程应注意的问题。  关键词:多媒体;任务式教学;课件;实践教学  中图分类号:TP37文献标识码:A文章编号:1009-3044(2008