This is a research entry associated with a third-party research project or paper. We are not responsible for the contents of any files associated with this submission, or for the accuracy of any code / results. Any questions should be directed to the author(s) of the work.
Experiments with a Machine-centric Approach to Realise Distributed Emergent Software Systems
Abstract: Modern distributed systems are exposed to constant changes in their operating environment, leading to high uncertainty. Self-adaptive and self-organising approaches have become a popular solution for runtime reactivity to this uncertainty. However, these approaches use predefined, expertly-crafted policies or models, constructed at design-time, to guide system (re)configuration. They are human-centric, making modelling or policy-writing difficult to scale to increasingly complex systems; and are inflexible in their ability to deal with the unexpected at runtime (e.g. conditions not captured in a policy). We argue for a machine-centric approach to this problem, in which the desired behaviour is autonomously learned and emerges at runtime from a large pool of small alternative components, as a continuous reaction to the observed behaviour of the software and the characteristics of its operating environment. We demonstrate our principles in the context of data-centre software, showing that our approach is able to autonomously coordinate a distributed infrastructure composed of emergent web servers and a load balancer. Our initial results validate our approach, showing autonomous convergence on an optimal configuration, and also highlight the open challenges in providing fully machine-led distributed emergent software systems.