Web services allow individual components of business logic to be published as building blocks to larger applications and services. Since each Web service is only a small segment of a larger application and not an entire large, monolithic application, there will be a significant number of competitive implementations for each Web service. Quality of service will be one of the most important differentiators between all of these competitive solutions.
Quality of quality of serviceservice encapsulates not only implementation details that affect metrics such as performance, but also deployment issues. For example, an application that is deployed on an application server can automatically scale and create additional instances of itself to handle dynamically changing request loads. The same application that is deployed in a standalone manner cannot automatically scale with increasing load, and thus its response time will linearly increase with increasing load.
As a developer of an application that will consume Web services, QoS is an important design aspect to think about. For some classes of applications, stringent QoS requirements are less important, while for other classes they are critical. For example, an application that uses a weather Web service to display the forecast may not require a set QoS. Instead, the fastest free Web service may suffice. As long as the weather information is reasonably accurate, the QoS of the service call is less important.
On the other hand, a real time stock ticker tape application for an investment bank's top clients requires a stringent set of QoS guarantees from its consumed Web services. Every second of unexpected delay may result in hundreds or thousands of dollars in potential losses in stock price depreciation or unrealized stock price appreciation. In this case, the choice between a Web service with a predetermined and flat response time versus one with a linearly increasing load-based response time is obvious. With everything else the same, the predictable response wins hands down. Predictability is such an important metric that even in situations where everything else is not the same, a Web service with predictable response may still be selected.
Full Control versus Predictable Worst-Case Performance
One of the hallmarks of enterprise computing is control. IT organizations within enterprises have assumed (or have tried very hard to assume) full control over as many software systems as possible. This control allows IT organizations to build processes that facilitate their quick response and solution to any potential issues on any enterprise software or system.
As we have discussed in this book, Web services represent a major departure from this. Since Web services are remotely hosted and managed, applications that consume Web services become dependent on the Web service providers. So, IT organizations lose much of their administrative control over enterprise applications that consume third-party Web services.
In lieu of their traditional control (or attempted control ) over all aspects of enterprise software, IT will demand that applications only consume Web services that provide strict QoS guarantees for key metrics. Predictable worst-case performance will be the foundation on which IT will build its processes. Only those external resources (e.g., Web services) that provide such predictable behavior will be able to access and interact with internal enterprise applications.
Next, the questions are: What are the QoS metrics that enterprise IT will deem to be critical? How will Web services provide QoS guarantees? How will enterprise applications select the right Web services?