I am currently doing a Masterthesis on the topic "Formal description of non-functional properties of services in SOAs", and in this context I am looking for information about how ESBs deal with non-functional or quality (QoS) aspects in practice.
More precisely, I'm interested in models and formats for the description of caracteristics of services such as price, answer time, availability, security, popularity... I can imagine the following use cases for example:
1) Creating an SLA (Service Level Agreement) between a service provider and a user, to express guarantees on QoS and make sure that they are observed
2) Making easier the choice of a service at designtime for a particular task, in order to optimize the ratio cost/QoS
3) Deciding at runtime whether a service should be called, depending on dynamic parameters (e.g. depending on the answer time for time-critical tasks), or choosing dynamically a service among several preselected ones, that fulfill equivalent functions
4) Selecting services automatically (based on their non-functional properties) at designtime to fulfill the different tasks of a business process, and reconfiguring the mapping task/service automatically at runtime to reflect change in the QoS parameters of the services
My first question is:
Which of these scenarios are realistic? Which actually happen in reality?
I guess 4) is unrealistic, since semantic technology is not mature enough to allow automatic matching of services for particular tasks.
My second question concerns the description formats.
Several formats have been developed (e.g. WSLA, WS-Agreement, WS-Policy for Web Services), but as far as I know, none has established itself as a de facto standard.
What formats are used in practice? (I assume that non-functional caracteristics are actually dealt with, since they play an important role) Proprietary formats, that are developed by the ESB vendors? And why isn't there any widely accepted standard like WSDL and BPEL for functional description?
Thank you for your help and opinion.