Abstract
Self-organising systems are notoriously difficult to engineer, particularly due to the interactions between complex specifications and the simultaneous need for efficiency and for resilience to faults and changes in execution conditions. We address this problem with an engineering methodology that separates these three aspects, allowing each to be engineered independently. Beginning with field calculus, we identify the largest known sub-language of self-stabilising programs, guaranteed to eventually attain correct behaviour despite any perturbation in state or topology. Construction of complex systems is then facilitated by identifying operators expressed in this language, into which many complex specifications can be readily factored, thereby attaining resilience but possibly with improvable efficiency. Efficient implementation may then be achieved by substituting high-performance coordination mechanisms that are asymptotically equivalent to particular applications of building block operators. We illustrate this workflow by construction and simulation of example applications for evacuation alerts and for live estimation of crowd feedback at mass events.
Published Version
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have