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, ...)