Web services performance best practices
This page presents best practices for the performance of Web services applications.
Web services are developed and deployed based on standards provided by the Web Services for Java EE specification and the JAX-WS and JAXB models, and is the mechanism used to access a Web service. This article explains performance considerations for Web services supported by this specification.
When you develop or deploy a Web service, several artifacts are required, including a WSDL file. The WSDL file describes the format and syntax of the Web service input and output SOAP messages. When a Web service is implemented in the WAS runtime, the SOAP message is translated based on the Java EE request. The Java EE-based response is then translated back to a SOAP message.
The most critical performance consideration is the translation between the XML-based SOAP message and the Java object. Performance is high for a Web service implementation in WAS, however, application design, deployment and tuning can be improved. See Monitor the performance of Web services applications for more information about analyzing and tuning Web services.
For a Web service application that was developed for a WAS version prior to V6, we can achieve better performance by running the wsdeploy command. The wsdeploy command regenerates Web services artifact classes to increase the serialization and deserialization performance.
The wsdeploy command is supported by JAX-RPC applications. The JAX-WS model that is implemented by the application server does not support the wsdeploy command. If wer Web services application contains only JAX-WS endpoints, you do not need to run the wsdeploy command, as this command is used to process only JAX-RPC endpoints.
Basic considerations for a high-performance Web services application
The following are basic considerations you should know when designing a Web services application:
- Reduce the Web services requests by using a few highly functional APIs, rather than several simple APIs.
- Design the WSDL file interface to limit the size and complexity of SOAP messages.
- Use the document/literal style argument when you generate the WSDL file.
- Leverage the caching capabilities offered for WAS.
- Test the performance of the Web service.
Additional Web services performance features that we can leverage
- In-process optimizations for Web services to optimize the communication path between a Web services client application and a Web container that are located in the same appserver process. For details and enabling this feature, see Web services client to Web container optimized communication.
- Access to Web services over multiple transport protocols extends existing Java API for XML-based remote procedure call (JAX-RPC) capabilities to support non-SOAP bindings such as RMI/IIOP and JMS. These alternative transports can improve performance and quality of service aspects for Web services. For more detailed information see RMI-IIOP using JAX-RPC.
- SOAP with Attachments API for Java (SAAJ) Version 1.2 provides a model for Web services relative to JAX-RPC. The SAAJ API provides features to create and process SOAP requests using an XML API. SAAJ supports just-in-time parsing and other internal algorithms. For information about SAAJ or Web services programming, see SOAP with Attachments API for Java .
SAAJ 1.3 provides support for Web services that are developed and implemented based on the JAX-WS programming model.
- The Web services tooling generates higher performance custom deserializers for all JAX-RPC beans. Redeploying a V5.x application into the V6 runtime can decrease the processing time for large messages.
- Serialization and deserialization runtime is enhanced to cache frequently used serializers and deserializers. This can decrease the processing time for large messages.
- The performance of WS-Security encryption and digital signature validation is improved because of the use of the SAAJ implementation.
IBM provides considerable documentation and best practices for Web services application design and development that details these items and more.
Related concepts
SOAP with Attachments API for Java interface
Related tasks
Monitor the performance of Web services applications
Related
Web services specifications and APIs