Project start date: September 1, 2015
Project duration: 3 years
Funding institution: Croatian Science Foundation
In recent years, systems based on service-oriented architecture (SOA) have been gaining a lot of traction due to proliferation of cloud computing platforms (Software as a Service) and the increasing popularity of systems based on the Internet of Things (IoT) concept. A wider adoption of these technologies has been indicated as a research priority by the European Commission in its Digital Agenda for Europe strategy (Europe 2020 initiative). It is expected that a wide variety of services, often representing everyday tasks, will be accessible in their digital form in the near future enabling simple development of functionally rich applications.
Specifically, SOA is an architectural style that provides guidelines for development of loosely coupled distributed systems. The concept relies on services, self-contained applications which can be consumed using well-established interfaces. One of the most pronounced benefits of SOA is the ability to combine multiple services into a component-based application (service composition) that has an added value functionality. The concept of service compositions makes SOA particularly popular in designing a large variety of systems that benefit from a clear separation of interests. For instance, in case of enterprise systems, different segments of functionality within a business process can be developed independently by different organizational units.
Despite having clear advantages, service composition development entails issues when it comes to reaching both the required functional and non-functional application properties. Regarding functional properties, it remains unclear how a developer is to efficiently discover a service that functionally matches the composition design when faced with very large service repositories, often containing superficially similar services. On the other hand, it should be noted that services are usually deployed by third parties over which the composition developer has no direct supervision and are accessed through a shared communication medium, like the Internet. In such a dynamic environment, where unexpected service outages can commonly occur, special care needs to be taken to ensure an adequate level of non-functional properties. Current research results do not give a definitive answer how to do this when constructing compositions that consist of a very large number of services, which can be expected of systems based on the IoT.
The goal of this project is to put forward a comprehensive recommender system aimed at simplifying development of service compositions by assisting developers in reaching both functional and non-functional application goals. Our previous research efforts, demonstrate that designing such a recommender is feasible. As part of this project we want to extend the preliminary research with novel recommender methods suited for SOA-based systems.
The proposed research objectives are separated into functional and non-functional domains. Regarding functional properties, the proposed recommender is to facilitate automatic service recommendations based on the morphological structure of the constructed application. Furthermore, the recommender is to utilize knowledge sharing technologies (peer tutoring) to assist in enlisting most adequate human help. In the domain of non-functional properties, a set of methods used to determine reliability of atomic services based on statistical approaches, like collaborative filtering, is applied. Furthermore, the recommender utilizes a method for efficient improvement of service composition’s non-functional properties.
In conclusion, the outcome of this project will put forward a novel recommender system that aids development of very large service compositions, constructed using extensive service repositories.