Browse Prior Art Database

Speed-Up of WS-Addressing Header Elements in SOAP Messaging

IP.com Disclosure Number: IPCOM000130195D
Original Publication Date: 2005-Oct-17
Included in the Prior Art Database: 2005-Oct-17
Document File: 2 page(s) / 37K

Publishing Venue

IBM

Abstract

Transformations from character encoding of the externalized SOAP-XML message into the Java character encoding (UCS-2) are avoided. Creation of a memory resident parse tree of the SOAP-XML message, including its entire message body (which is of no concern to routing purposes) are also avoided. A linear search over the original SOAP-XML message with array of byte comparisons is used to detect the routing addressing information. Advantages of this approach are a substantial speed-up in Web services, SOAP-XML message routing performance, both in terms of run-time performance and memory requirements.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 1 of 2

Speed-Up of WS-Addressing Header Elements in SOAP Messaging

Web services are based on the interchange of XML datagrams over some transport protocol, most commonly HTTP/TCP/IP. The XML datagram contains application level data (the message body) as well as diverse header elements (the message header). One particular set of header elements are the WS-Addressing header elements which are used on intermediate message processing nodes to route the message. The body of the message is not necessary for such routing.

The conventional approach to process Web services XML datagrams, also called SOAP messages, has been to parse the entire message, including header and body. This has drastic performance implications, in particular on Java based environments for the following reasons: the message's data must be re-encoded in Java's UCS-2 character set from the external, over-the-wire character encoding which is most commonly UTF-8 or UTF-16 for XML data. once re-encoded the character stream representing the message must be parsed to determine the structure of the message and identify its diverse header and body elements. Such parsing not only determines the well-formedness of the message, but generally also creates some Java data structures representing the structure of the XML data within the message. In traditional terminology, a parse tree of the message is built and kept in memory.

For nodes which only route Web services messages, the body of the message is of no interest. Thus, a full parse of the entire message - as conventionally performed for Web services messages - is not necessary. It suffices to analyze the message header which contains the WS-Addressing elements needed for message routing.

Due to the deterministic structure of the WS-Addressing header one does however not even have to perform a parse of the header. A simple scan over the message data is sufficient to extract the unique WS-Addressing header elements. Furthermore, in a Java centric environment, it is not even necessary to map from the XML character encoding into Java's character encoding, the scanning for WS-Addressing header elements can be done based on a raw byte level. Thus both performance impediments cited above are eliminated, namely the character re-encoding and the parsing.

The SOAP XML message is buffered into an array of bytes; no conversion of character encodings is performed between the over-the-wire, exter...