In a task-oriented service computing framework in which services are composed together to accomplish a task goal of a user, appropriate component services need to be dynamically selected and bound to the task. When there are many candidate services that provide similar functionality, it is essential to consider quality of service (QoS) factors such as the response time, cost, availability, and reliability to determine which component services to use. Finding a service composite that meets the optimal quality is a well-known NP-hard problem, as the time complexity for the global optimization increases exponentially as the number of services or the number of QoS attributes increases. Although it is possible to use a heuristic approach that shows a reasonable response time with a certain level of service quality, this strategy often fails when the global QoS constraints become tight. In this paper, we propose an adaptive means of dividing quality ranges in which candidate services are sampled and their QoS values are evaluated. The sub-regions of the quality ranges are dynamically determined based on the distribution of the candidate component services on each QoS attribute and the tightness of the constraint requirement within a task. Evaluation results show that the proposed approach can successfully reduce the failure rate of the service composition while keeping the computation time reasonably low and ensuring the QoS optimality of composite services.
태스크 지향적 서비스 컴퓨팅 환경에서는 사용자가 태스크를 수행하기 위하여 일련의 추상적 서비스들로 이루어진 서비스 조합이 사용자에게 전달 된다. 사용자가 태스크를 수행하는 과정에서 실질적인 서비스가 선택이 되고, 선택된 서비스들을 수행함으로써 최종적으로 사용자의 목적을 달성시킬 수 있다. 이때, 서비스를 선택하는 과정에서 기능적으로 동일한 다수의 후보 서비스들이 존재하기 때문에, 어떠한 후보 서비스를 선택해야 하는가에 대한 문제가 발생된다. 후보 서비스들 간의 비교를 위하여 서비스의 QoS 정보를 활용하며, 사용자가 원하는 품질 요구사항에 적합한 서비스가 선택이 된다. 그러나, 사용자에게 가장 적합한 품질로 구성된 서비스 조합을 찾는 문제는 잘 알려진 NP-hard 문제로써, 다수의 후보 서비스가 존재하는 경우 계산시간이 기하급수적으로 늘어나게 된다. 그래서 최근에는 빠른 시간 안에, 합리적인 수준에서의 적합한 품질로 구성된 서비스 조합을 찾는 경험적 접근 방법이 주를 이루고 있다. 그러나 경험적 접근 방법의 경우, 사용자의 요구사항에 적합한 서비스 조합을 찾지 못하는 문제가 발생하게 된다. 특히, 사용자의 요구사항이 더 높아질수록 서비스 조합 실패가 쉽게 발생한다. 이를 해결하기 위해 사용자의 요구사항에 따라 순응적인 서비스 선택 기법을 제시한다. 추상 서비스를 구성하는 후보 서비스들을 각각의 품질 속성으로 정렬하고, 각각의 품질 속성의 구간을 나누어 구간을 대표할 수 있는 서비스를 샘플링 한다. 샘플링 된 서비스를 사용하여 정수 계획법을 통해 최적의 서비스 조합을 찾아낸다. 이 과정에서, 사용자에 의해 주어진 품질 요구사항에 따라, 차등을 두어 품질 구간을 나눈다. 이를 통해, 최적의 서비스로 선택될 확률일 높은 품질 구간에 더 많은 기회를 준다. 또한, 각 품질 구간에서 후보 서비스들의 밀도에 따라 샘플링 방법을 취함으로써, 후보서비스들이 밀집되어 있는 구간에 더 많은 기회를 준다. 주어진 요구사항에 맞게 순응적인 샘플링 방법을 취하여 서비스 조합을 수행함으로써, 빠른 계산시간과 높은 최적성을 유지하며, 서비스 조합의 실패율을 현저히 줄였다.