Using the Internet as an application platform definitely has its drawbacks. The Internet's transport protocols are a far cry from the feedback expected by developers from their RPC-based applications. But specifications like SOAP and WSDL are able to bridge the gap between RPC and document-oriented interactions.
Regardless of the development of these specifications, the fact remains that XML documents are large and require lots of processing to get from XML to another development environment like Java for example. Developers venturing into the Web services arena are always looking for ways to improve the performance of a system that isn't necessarily designed for performance.
To that end, a couple of Sun Microsystems employees, Bharath Mundlapudi and Binu John, shared their experiences testing the transport of WSDL documents in a presentation at the recent JavaOne 2005 conference. Mundlapudi and John limited their testing to the transport of WSDL documents with minimal processing at the client and server in their test environment.
Here are a few of their observations:
- DateTime: When converting date, time or datetime data types from Java to WSDL, the datetime variable does not map properly. Separate date and time data types did not have the same problem. The mapping from WSDL to Java is fine.
- Simple type vs. Complex type: Mundlapudi and John did not identify a significant performance difference from using simple and complex types in WSDLs. Using each is more a case of personal preference.
- XML Doc performance: Increasing the size of XML docs decreased the throughput. Attachments like images can greatly affect performance.
Here's how they summed up their advice for good WSDL design:
- How you write your WSDL can impact performance from a transport perspective
- Payload size does matter
- Pay attention to WSDLs generated by tools as they may not result in the best performance