In analyzing the performance of a Web service, remember that Web services do not exist in a vacuum. A number of underlying technologies, such as XML and HTTP, as well as associated infrastructure and systems, such as application servers, Web servers, legacy systems, and communication networks, make up the environment in which Web services operate. Look at the performance of a Web service within this larger context, and then identify subsystems to improve.
In designing Web services, see how closely related operations and functionalities can be combined together into an easy-to-understand coarse-grained interface. In searching for Web services to consume within your application, opt for coarse-grained Web services that do a lot of work or return a lot of information per each invocation.
Do not use Web services as an excuse not to develop the right client application. Only use Web services to augment the client application's business logic with those functionalities or data that cannot be reasonably implemented or stored locally.
Use resources efficiently, and look for innovative means of optimizing such use. Choose the XML parsing infrastructure that is right for your application or system (comprising all of the applications running on the device). Compress XML documents whenever possible. If a Web service does not use compression, use an intermediary server that supports compressed communications with the client application. For additional processor and network efficiency, use non-XML-based encoding that is smaller in size and does not require an XML infrastructure. Using servlets together with HTTP POST parameters is a well-understood and easily implemented choice. This is especially so for mobile applications.
Track the performance of your Web services and applications by inserting monitoring agents at various points within the application fulfillment path. Use this monitored data to update QoS specifications for your Web service as well as to uncover optimization opportunities.