Service interface is a critical component in a service-oriented architecture (SOA). As first-class design artifact, a service interface should be properly designed to provide best practice of third-party reuse. However, a very common bad service design practice in existing SOAs is to place semantically unrelated operations implementing several abstractions in a single interface. Poorly designed service interfaces can have a negative effect on all client applications that use these services. Indeed, services with such poor interface structure tend to be difficult to comprehend, maintain and reuse in business processes, leading to unsuccessful services. Necessarily, then, service designers should “refactor”, i.e., restructure, their service interface into smaller, more cohesive interfaces, each representing a specific abstraction. To address this problem, we introduce a novel approach, namely WSIRem, to support service’s developers in improving the modularization of their service interfaces. WSIRem is based on a multi-objective search-based optimization approach to find the appropriate modularization of a service interface into smaller, more cohesive and loosely coupled interfaces, each implementing a distinct abstraction. WSIRem has been empirically evaluated on a benchmark of 22 real-world Web services provided by Amazon and Yahoo. Results show that the automatically identified interfaces improved the services interface structure. Qualitative evaluation of WSIRem with developers showed the performance of WSIRem in terms of understandability, where the new WSIRem interfaces were recognized as ‘relevant’ from developers point of view with more than 73% of precision and 77% of recall. Overall, the obtained results show that WSIRem outperforms state-of-the-art approaches relying on traditional partitioning techniques.
- Searchbased software engineering
- Service design
- Web service
- Web service interface
ASJC Scopus subject areas