|Understanding quality of service for Web services Improving
the performance of your Web services
throughout an enterprise. Message queues provide two major advantages:
- It is asynchronous: A messaging service provider can deliver messages to the requestor as
they arrive and the requestor does not have to request messages in order to receive them.
- It is reliable: A messaging service can ensure that a message is delivered once and only
In the future, Publish & Subscribe messaging systems over the Internet such as the Utility Services package from alphaWorks , can be used for Web service invocations (see Resources).
Private WANs and Web service networks
Use of private WANs/extranets and Web services networks can be a suitable option for businesses
depending on Web services which are mission-critical. These private networks provide low network
latency, low congestion, guaranteed delivery, and non-repudiation. However, in some cases it could
be costly to have a private network.
SOAP and performance
SOAP is the defacto wire protocol for Web services. SOAP performance is degraded because of the
- Extracting the SOAP envelope from the SOAP packet is time-expensive.
- Parsing the contained XML information in the SOAP envelope using a XML parser is also timeexpensive.
- There is not much optimization possible with XML data.
- SOAP encoding rules make it mandatory to include typing information in all the SOAP messages
sent and received.
- Encoding binary data in a form acceptable to XML results in overhead of additional bytes added
as a result of the encoding as well as processor overhead performing the encoding/decoding.
The XML processor must be loaded, instantiated, and fed with the XML data. Then the method call
argument information must be discovered. This involves a lot of overhead as XML processors grow
to support more XML features.
The role of the XML parser in SOAP performance
Most existing XML parsers are too expensive in terms of code size, processing time, and memory
foot print because these parsers have to support a number of features like type checking and
conversion, wellformedness checking, or ambiguity resolution. All these make XML parsers require
more computing resources. Some applications can consider using of stripped down version of XML
parser which have a small code size and memory foot print.
Also, most of the current SOAP implementations are Document Object Model (DOM) based. DOM
parsers are inherently slow to parse the messages. SAX-based SOAP implementations can be used
to increase throughput, reduce memory overhead, and improve scalability.
SOAP uses XML as its payload. And if we consider thousands of SOAP messages being transmitted
over the Web, the network bandwidth is being pushed to its limit. XML’s way of representing data
usually results in a substantially larger size than representing the same data in binary, which is on
average 400% larger. This increase of the message size creates a critical problem when data has to
be transmitted quickly, which effectively results in increase of the data transmission time. Some
application designs should consider techniques for compact and efficient representation. One of the
June 2008 | Java Jazz Up | 42