28 Maggio 2014
San Francesco - Sacrestia
The continuously increasing potential of new computer technologies paves the way for developing advanced applications in which huge numbers of distributed entities collaborate to accomplish various tasks. Such groups of dynamically evolving entities are called "ensembles". Application domains are, for instance, environmental monitoring, electro mobilty and cloud computing. Such applications are highly dynamic; entities may join or leave an ensemble and the overall system behavior involves typically complex interactions between collaborating entities. Well-established techniques, like component-based software engineering, are not sufficient for designing ensemble-based systems. They must be augmented with other features that allow to focus on the particular characteristics of ensembles. In this seminar, we present the Helena approach approach for modeling and implementing ensemble-based systems. A conceptual key point of our approach is that components can adopt different roles and that they can participate (under certain roles) in several, possibly concurrently running ensembles. We use "ensemble structures" to model the structural aspects of collaborations and we use process expressions and ensemble automata to model dynamic behaviors and interactions. We propose a framework for the implementation of ensemble specifications that extends the component-based approach by explicitly taking into account roles and concurrently running ensembles. Its application is demonstrated by a case study.