Small introduction. We have a task that consists of sub-tasks. Each sub-task can be implemented by some set of web-services. We want to find the best implementation of this task. "Best" means it has best values of QoS (availability, latency, cost etc.).
So there are plenty of works:
- Canfora G. и др. An approach for QoS-aware service composition based on genetic algorithms // Proceedings of the 2005 conference on Genetic and evolutionary computation. New York, NY, USA: ACM, 2005. С. 1069–1075.
- Hwang S.-Y. и др. A probabilistic approach to modeling and estimating the {QoS} of web-services-based workflows // Information Sciences. 2007. Т. 177. № 23. С. 5484–5503.
- Klein A., Fuyuki I., Honiden S. SanGA: A Self-Adaptive Network-Aware Approach to Service Composition // Services Computing, IEEE Transactions on. 2013. Т. 1. № 99.
- Zhao X. и др. A hybrid clonal selection algorithm for quality of service-aware web-service selection problem // International Journal of Innovative Computing, Information and Control (IJICIC). 2012. Т. 8. № 12. С. 8527–8544.
- Lots of others works. I have at least 10 such papers in my Mendeley catalog.
that solve a task of QoS-aware service composition using information about workflow structure. Workflow consists of composition of sequence, loop, parallel and exclusive choice patterns. They computes integral value of QoS for each possible composition and then make a choice between compositions with best integral QoS-values.
By "integral" I mean for example: integral latency for sequence = mean latency of 1st WS + ... + mean latency for last WS in sequence
So the question is this approach better then approach of finding best choice for each sub-task separately? So the best implementation of task equals best implementations of sub-tasks.
Seems to me the last one approach is much more simpler and more clear in terms of choosing not only best options, but best options that satisfy preferences of engineer who make decision of final web-services composition.