Service Oriented Architectures (SOAs) offer many compelling opportunities to address pressing problems in large IT infrastructures and enterprise application integration. SOAs promote a new approach for building distributed applications by composing reusable services thanks to well-defined interoperation semantics based on standard protocols. This new approach to software development based on reuse and composition promises many benefits, such as extensibility, ease of maintenance, and reduced development effort and cost. For these reasons, SOAs have recently attracted much attention in both academia and industry.

The SOSOA project explores a novel, self-organizing approach to the design of next-generation service-oriented architectures. The main objective of the project is to overcome the following limitations of current SOAs.
Due to the success of SOA, the problem of managing large collections of services has become crucial. Also known as the SOA governance problem, the issue reflects that little is known about deploying, invoking, monitoring, and providing load balancing and fault tolerance over a highly dynamic collection of services each one possibly representing a complex application running on a cluster-based infrastructure.

Composite services need to be designed by hand, requiring the software designer to manually search repositories of service advertisements for relevant services and explicitly define the logic to glue them together. Existing languages and tools offer little support for the automated evolution, repair, and tuning of composite services.
Most SOA middleware implementations rely on centralized services (e.g., centralized repositories of service advertisements) that are single points of failure, easily become performance bottlenecks, and may limit the scalability of the SOA. In addition, the current service abstraction does not consider advanced interaction patterns as it is limited to asynchronous message-based and synchronous request/response interactions.

By bringing together the complementary expertise of the partners, the collaborative research within the SOSOA project will address the aforementioned limitations and investigate the design and implementation of self-organizing SOAs. To this end, the SOSOA project will explore scalable, decentralized solutions to the problems of current SOAs and investigate automation of important aspects of the whole lifecycle of a service-oriented application, including resource and service discovery, binding and composition, deployment and monitoring, RESTful and stream-based interaction, as well as fault detection and repair. The constraint is to avoid heavy-weight centralized solutions and to provide a self-organizing and light-weight infrastructure that can simplify most of the management and reduce the execution overhead of services.

More specifically, we will investigate novel algorithms for automatically composing services based on high-level task specifications that can also be applied to repair existing compositions. We will also design and experiment with innovative middleware architectures that exhibit self-configuration, self-healing, and self-tuning capabilities to enable the dynamic evolution and optimization of composite services. For example, composite services will be automatically reconfigured such that they always make use of the best available services at each moment.

Furthermore, we plan to compare both reactive and proactive solutions and study under which conditions non-functional properties associated with services can be guaranteed. The project also intends to go beyond the current service abstraction by extending it to services with the capability of generating and processing continuous streams of data of infinite length and by applying the notion of composition to RESTful services.

In order to foster a tight collaboration between the SOSOA partners and to leverage synergies throughout the project duration, the project partners will jointly define common application scenarios and specify underlying assumptions. A common software architecture with well-defined component interfaces will ease the integration of components for an end-to-end evaluation of the resulting systems. Using a common evaluation methodology, a common testbed, and common testing data, the partners will ensure that integrated components are jointly tested and evaluated, assessing both self-organizing capabilities as well as performance and scalability.