Article Preview
Top1. Introduction
Services technology is well recognized as an easy way to integrate applications without boundaries. Owing to this, most organizations tend to publish their services on the web for easy consumption by the public. This has exponentially increased the number of available services. Different service providers may offer services that are equivalent with respect to their functionality. Therefore, to provide a differentiation among the competing services, non-functional attributes are used; allowing prospective users to choose the services which best suit their preferences.
Usually, a user’s personal preference for a service comprises of his/her preference for non-functional attribute(s) that describe the service. These non-functional attributes may be conflicting (Fletcher, Liu, & Tang, 2015; Liu, Fletcher, & Tang, 2012), resulting in ranked list of services that partially meet the user’s preference. In an attempt to obtain services that completely meet his/her request, the user may submit similar multiple service requests. Similar requests here refer to requests with the same functionality and trade-offs on non-functional attributes, but with varying preference on those non-functional attributes. These requests may also yield ranked lists that do not fully satisfy the user’s preference due to the same conflicting relationship that may exists among non-functional attributes. In such a situation, it becomes challenging for the user to compare the different ranked lists in order to choose the optimal service. This is because, each ranked list may contain huge number of services that makes it time consuming for users to compare them against services in other ranked lists. A naïve way for this comparison will be to merge the different sets of ranked lists into one list and rank the merged list with respect to the user’s search intent. However, this naïve way also has its own challenges: 1) the same service may rank differently in other ranked lists and therefore becomes hard to determine its overall rank; and 2) some of the ranked lists may contain services that do not appear in other ranked lists due to the varying requests, making it difficult to determine the overall rank of such services. In order for the user to obtain an optimal service, based on the ranked lists, there is the need for a method that will produce an aggregated ranked list that addresses the challenges mentioned above.
This paper proposes just such a method and demonstrates its application with specific cases. The proposed method aggregates ranked lists obtained from a user’s service request and produces top-k services for user selection. The aggregated ranked list is a compromise among each ranked list. The method considers the user’s personalized preferences on non-functional attributes and their trade-offs including linguistic weights on non-functional attributes when searching for services (Fletcher et al., 2015; Liu et al., 2012).
Two algorithms are proposed to compute an aggregated ranked list from each ranked list of services. The first algorithm, Rank Aggregation for Complete Lists (RACoL), aggregates complete ranked lists (i.e. ranked lists given by total orders). There are however instances where the ranked lists to be aggregated come with incomplete ranked lists (incomplete orderings); i.e. some ranked list(s) contain services that do not appear in other ranked list(s). The second algorithm, Rank Aggregation for Incomplete Lists (RAIL) is proposed to aggregate incomplete ranked lists. Examples using real-world services to evaluate the method are presented. Results from the application examples show that compared to alternative approaches, the proposed method closely represents the input ranked lists. Experiments are further carried out to validate the performance of the proposed algorithms.