Web服务是构建面向服务架构(SOA)的主流分布式计算技术.基于XML的数据传输格式在给Web服务带来众多优点的同时,严重影响了其性能,制约了Web服务的应用.众多研究表明,XML解析和数据绑定是Web服务的主要性能瓶颈.着眼于避免传统XML解析和运行时Java反射过程的开销,提出了一种新颖的Web服务性能优化策略.它为每个Web服务生成一个特定于该服务的SOAP消息处理器,通过在对SOAP消息的一遍扫描中高效地生成服务业务逻辑调用所需的参数对象.实验结果表明,该优化策略能够有效地提高Web服务的性能.
Web services are the mainstream distributed computing technology to construct a servlce-oriented architecture (SOA). Over the past few years, lots of works have been carried out in comparing SOAP with binary protocols, such as Java RMI and CORBA. These researches show that there is a dramatic difference in the amount of encoding necessary for data transmission, when XML is compared with the binary encoding style, and all these researches have proven that SOAP, because of its reliance on XML, is inefficient compared with its peers in distributed computing. Although the performance of Web services is adequate for many important purposes, processing speed unfortunately remains to be a problem in more demanding applications. Some limitations are inherent in core features of XML: it is text based, flexible in format, and carries redundant information. Aiming at this question, a new approach to improve Web services performance is proposed. To avoid the cost brought by the traditional XML parsing and Java reflection at runtime, a specific SOAP message processor is generated dynamically for each Web service, which can create Java object for service business invoking by scanning SOAP message only once. The given experiments show that the approach can effectively improve the performance of Web service by incorporating the SOAP message processor into the SOAP engine.