QoS metrics are a set of qualitative measures of how appealing a Web service is for applications that may potentially consume it. QoS answers a set of "How?" questions, as listed in Table 9-1.
Availability: The availability aspect of QoS represents the probability that this service is ready for immediate consumption. Smaller values indicate the service may not be a good choice for consumption by an application as it has a high probability of not being available. Low availability of a Web service limits the usefulness of consuming this service.
Availability can be affected by a variety of issues, including the architecture of the program underlying the Web service, the deployment platform, or the service's overall maintenance.
Accessibility: The accessibility aspect of QoS represents the probability that this service is able to handle a Web service request. A Web service may be available but not accessible by a client application. This can happen if the service is not architected to be scalable in the face of rapidly changing request volumes.
Performance: The performance aspect of QoS represents both the latency and the throughput of a Web service. Latency describes how quickly (roundtrip time in milliseconds) the service responds once invoked by the consuming application. Throughput describes the number of Web service requests that are serviced within an amount of time.
The performance of a Web service is based on the time necessary to access the service as well as the time necessary to execute the service's business logic. Smaller latency values represent a higher performance service with a speedier response.
Compliance: The compliance aspect of QoS represents how well the service complies with stated features of the service. Since Web services encompass a variety of technologies and standards, compliance measures how fully the implementation of the service complies with those stated technologies. Compliance does not measure whether the service supports the latest standards or versions, but instead how fully it complies with those standards and those versions of standards that it states it supports. The compliance of a Web service is determined by the details of its implementation.
Security: The security aspect of QoS represents the usefulness and strength of the mechanisms the service provides for supporting security and confidentiality throughout an interaction. Security is important for Web services as both the service provider and the service consumer may not be located behind the corporate firewall or communicate over a private network; a significant number of Web service interactions will happen over the public Internet.
Energy Efficiency: The energy efficiency aspect of QoS represents the amount of energy consumed by an application while it interacts with a Web service to accomplish a unit of work. This is usually relevant only for mobile environments where the client device has a limited energy supply (e.g., runs on a battery). The power consumed by a wireless Web services-based application is a combination of the power consumed by the local platform (local software running on the local hardware) and the power consumed by the wireless network (while interacting with the Web service).
The power consumed while interacting with a remote Web service is dictated by the number of bits communicated (either transmitted to or received by the client application). As mobile devices become a growing part of the computing landscape and as mobile applications increasingly utilize Web services, the power consumption aspect of QoS will become more important. The interface of the service, including choices of data types, encoding and representations, determines a Web service's measure of energy efficiency.
Reliability: The reliability aspect of QoS represents a summary measure of the service's overall ability to maintain its quality. This metric is usually measured in terms of failures per unit time (e.g., day, week, month, or year), and represents the overall reliability of the Web service.
Given these critical enterprise QoS requirements, we next investigate where the potential pitfalls are in developing high-QoS Web services and applications.