Motivation

Getting large, heterogeneous, dynamic service-oriented systems right is very difficult, because of their inherent complexity which challenges our current understanding and methods. This may explain the proliferation of ad-hoc methods, semi-formal notations and technology-dependent solutions to service-oriented architectures. This state of affairs gets worse when bringing self-adaptability into the picture, for which even effective technological realisations are still lacking. On the other hand, however, a few other topics may have similar relevance in Computer Science research for the years to come.

Vision

Architectural descriptions and coordination models were born within different contexts, concerns and typical application domains. The former emerged as a proper discipline in Software Engineering, from the need to explicitly consider, in the development of increasingly bigger and more complex systems the effects, problems and opportunities of the system’s overall structure, organisation and emergent behaviour. The latter appeared as a solution to the problem of managing interaction among concurrent activities in a system. For the last 15 years, the emergence of massive concurrent, heterogeneous systems and the growing complexity of interaction protocols has brought coordination to a central place in software development.

Such development contributed to broadening its scope of application and entailed the development of a number of specific models, languages and semantics, which contrasts to the fact that, despite remarkable progress in the representation and use of software architecture, specification of architectural designs remain, at present, largely informal. Typically, they rely on graphical notations with poor semantics, and often limited to express only the most basic structural properties.

Our starting point is that time is mature to go deep in developing a proper theory of architectural patterns, encompassing a semantics and a calculus, building on the lessons learnt from research on coordination. Moreover this seems fundamental to provide solid foundations to service-oriented design. Services and service configurations appear naturally equipped with both constructor and 'destructor' operations (the latter also called observers), requiring both structural (algebraic) and behavioural (coalgebraic) notions of semantic equivalence and refinement. We propose dialgebras, parametric on a notion of behaviour (eg, a simulation relation), as a basic model for such an a calculus of architectural patterns. Suitable logics and models will be investigated.

On the other hand, a number of operational characteristics of services (eg loss and acquisition of interaction capabilities or self-repairing mechanisms), are hard to represent at levels of abstraction high enough to still provide a rich set of calculational properties. The project seeks for suitable strategies for capturing their semantics and propose suitable reasoning tools.

Tasks

Task 1: behavioural requirements certification

Task 2: coordination patterns

Task 3: dynamic reconfiguration & self-adaptability

Task 4: code validation/generation from coordination patterns

Task 5: Foundations (dialgebras, logics, ...)