This paper proposes a software architecture and a development process for engineering dependable and controllable self-organising (SO) systems. Our approach addresses dependability by exploiting metadata to support decision making and adaptation based on the dynamic enforcement of explicitly defined policies. Control is obtained by actively modifying metadata, policies or components. We show how this applies to two different systems: (1) a dynamically resilient Web service system; and (2) an industrial assembly system with self-adaptive and SO capabilities. Categories and Subject Descriptors D.2.11 [Software Engineering]: Software Architecture General Terms Design-time and run-time adaptation, control loop Keywords Self-organisation, self-adaptation, metadata, policies
Giovanna Di Marzo Serugendo, John S. Fitzgerald, A