当前位置:问答库>论文摘要

题目:高性能的SOAP解析方法研究

关键词:性能;Web服务;HTTP;XML;SOAP

  摘要

Web服务已成为分布式应用的重要手段,但Web 服务本身的性能满足不了高负载、高并发的应用系统的需求,其主要原因就在于没有一个高效的SOAP解析方法。而针对于SOAP解析性能的优化工作,大多集中在HTTP的接收、解析以及XML解析器的优化工作。传统的HTTP服务器大多基于多线程的模式设计,在高并发的情况下可伸缩性不足,而糅合了多线程和事件驱动的HTTP服务器又容易导致多次遍历报文和不必要的数据拷贝,在解析过程中更没有做到真正的异步解析;另一方面,传统的XML解析器DOM、SAX、STAX只是从内存模型以及API的角度规范了解析XML文档所遵循的规则,不仅难以看到XML解析的本质,在性能上由于都是基于提取式的解析方式,难以满足高并发系统的要求。况且,应用这样的XML解析器解析SOAP,当其与应用程序交互时需要构建自己的对象模型,这样,又无形中增加了服务器的工作量,降低了处理效率。本文从Web服务的交互应用需求和SOAP解析的性能瓶颈入手,分析比较了国内外的相关研究工作和主流产品的实现,提出了实现高性能的SOAP解析方法,在此基础上设计了ACTSOAP引擎的体系结构,描述了高性能的SOAP引擎的工作原理;进而详细介绍了高性能的SOAP解析方法的关键算法和运行实现机制;最后对高性能的SOAP引擎进行了性能测试。本文工作的主要特点体现在:首先,糅合多线程和事件驱动两者的优点,实现了基于非阻塞机制的高性能HTTP服务器AsyHTTPServer,并提出了HTTP报文的异步解析算法,避免了报文解析过程中的数据拷贝和多次遍历的可能; 其次,结合Metaset理论和VTD索引结构,实现了基于索引结构的高性能XML解析器Metaset,不仅赋予了XML解析的逻辑语义,而且有效的解决了提取式XML解析的性能瓶颈,大大的提高了XML解析的效率。再次,利用Metaset完成对SOAP的解析与构造,因而与应用程序交互时不再需要构建自己的对象模型,大大的提高了Web服务运行平台的运行效率。最后,在重点关注性能的基础上,本论文实现了一个可扩展、可靠的Web服务运行平台传输层,诸如支持流量统计、日志记录、安全控制等功能,同时它不仅支持HTTP协议,而且也可以方便的接入其它传输层协议诸如SMTP等。