QoS based Web service discovery
Posted by Aditya Thatte on September 12, 2009
With the increasing importance of Quality of Service (QoS) in computer science and IT, the need to have well performing services has become essential, because of their distributed nature. The performance characteristics of such Web services becomes the key in deciding which one to use (bind to) at runtime. Here we consider both, enterprises services as well as the ones exposed over the web. Performance ( response time ) is one of the most critical parameters in determining the QoS of any software component to to maintain Service Level Agreements (SLA) between the consumers and providers, especially in mission critical service composition scenarios.. Most software components do not come with any specification in terms of QoS ( eg. response time, CPU utilization, availability etc ), because of which it is hard to determine the performance of such components. These QoS characteristics and or specifications form an essential part in systems which invoke and compose software services ( components ) dynamically on the fly.
Many research groups have and still are contributing to the notion of QoS based Web service discovery, which attempts to discover services based not only on IOPEs but QoS specifications as well. Using semantics we are able to describe QoS parameters within Web service descriptions, which then will be useful in dynamic discovery and invocation based on those parameters. So if a requestor wishes to bind to a service with a response time under 20 ms, the semantic matchmaker can apply matchmaking that fits the corresponding criteria of the requestor. Essentially, this QoS information can form a part of the ontology for Web services ( OWL-S / WSMO ) and the matchmaker can refer to these ontologies during discovery and enable subsequent invocation of the service. This approach can prove to be indispensible in enabling mission critical performant systems. However one thing to be kept in mind is, the QoS specifications will be only local to that provider since the service operates within those limits based on that particular target environment and will change accordingly as the service is hosted into a new operating environment.