通过实验分析了Java平台上SOAP处理的性能,发现XML数据与Java数据间的数据模型映射是影响SOAP处理、决定Web服务性能的关键因素.对此,提出了一种新的数据模型映射机制——动态提前绑定,通过在运行时动态产生驱动数据模型映射的模板来避免耗时的Java反射操作,并实现XML数据对象和Java数据对象间的快速映射.动态产生的数据映射模板由上下文无关文法定义,并通过带输出的下推自动机实现.将此技术应用于自主开发的高性能SOAP引擎——SOAPExpress,实验表明SOAPExpress的平均性能比Apache Axis1.2提高100%以上.
In this paper, the authors first analyze the performance of SOAP processing on Java platform, and identify that data model mapping between XML data and Java data is the main impact factor on performance. Therefore, the authors propose a new paradigm of data model mapping——"Dynamic Early Binding" which enables to improve SOAP processing by avoiding Java reflection operations and proactively generating processing codes. This dynamic early binding is realized by Data Mapping Template (DMT), which is specified by extended context free grammar and implemented by pushdown automaton with output. runtime and drive the data mapping process with XML The DMTs are generated and compiled at Pull Parsing. The authors illustrate the effectiveness by applying it into a high performance SOAP engine, SOAPExpress, and yielding over 100% speedups compared to Apache Axis 1.2 in Sun Microsystems' benchmark-WS Test 1.0.