skip to main content
research-article

Defining Emergent Software Using Continuous Self-Assembly, Perception, and Learning

Published:20 September 2017Publication History
Skip Abstract Section

Abstract

Architectural self-organisation, in which different configurations of software modules are dynamically assembled based on the current context, has been shown to be an effective way for software to self-optimise over time. Current approaches to this rely heavily on human-led definitions: models, policies, and processes to control how self-organisation works. We present the case for a paradigm shift to fully emergent computer software that places the burden of understanding entirely into the hands of software itself. These systems are autonomously assembled at runtime from discovered constituent parts and their internal health and external deployment environment continually monitored. An online, unsupervised learning system then uses runtime adaptation to continuously explore alternative system assemblies and locate optimal solutions. Based on our experience over the past 3 years, we define the problem space of emergent software and present a working case study of an emergent web server as a concrete example of the paradigm. Our results demonstrate two main aspects of the problem space for this case study: that different assemblies of behaviour are optimal in different deployment environment conditions and that these assemblies can be autonomously learned from generalised perception data while the system is online.

References

  1. Nelly Bencomo and Amel Belaggoun. 2014. A world full of surprises: Bayesian theory of surprise to quantify degrees of uncertainty. In Proceedings of the 36th International Conference on Software Engineering (ICSE Companion’14). ACM, New York, NY, 460--463 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Nelly Bencomo, Amel Belaggoun, and Valerie Issarny. 2013. Dynamic decision networks for decision-making in self-adaptive systems: A case study. In Proceedings of the 2013 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’13). 113--122. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Emre Cakar, Sven Tomforde, and Christian Müller-Schloer. 2011. A role-based imitation algorithm for the optimisation in dynamic fitness landscapes. In Proceedings of the IEEE Symposium on Swarm Intelligence (SIS’11). 1--8.Google ScholarGoogle ScholarCross RefCross Ref
  4. Bihuan Chen, Xin Peng, Yijun Yu, Bashar Nuseibeh, and Wenyun Zhao. 2014. Self-adaptation through incremental generative model transformations at runtime. In Proceedings of the 36th International Conference on Software Engineering (ICSE’14). ACM, New York, NY, 676--687. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Ahmed Elkhodary, Naeem Esfahani, and Sam Malek. 2010. FUSION: A framework for engineering self-tuning self-adaptive software systems. In Proceedings of the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, New York, NY, 7--16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. John M. Ewing and Daniel A. Menascé. 2014. A meta-controller method for improving run-time self-architecting in SOA systems. In Proceedings of the 5th ACM/SPEC International Conference on Performance Engineering (ICPE’14). ACM, New York, NY, 173--184. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Funmilade Faniyi, Peter R. Lewis, Rami Bahsoon, and Xin Yao. 2014. Architecting self-aware software systems. In Proceedings of the IEEE/IFIP Conference on Software Architecture (WICSA’14). 91--94. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Jacques Ferber. 1999. Multi-agent Systems: An Introduction to Distributed Artificial Intelligence. Vol. 1. Addison-Wesley, Reading, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Roberto Rodrigues Filho. 2017. Source code from this article with instructions. Retrieved from http://research.projectdana.com/taas2017rodrigues.Google ScholarGoogle Scholar
  10. Dominik Fisch, Martin Janicke, Bernhard Sick, and Christian Muller-Schloer. 2010. Quantitative emergence—A refined approach based on divergence measures. In Proceedings of the 4th IEEE International Conference on Self-Adaptive and Self-Organizing Systems. 94--103. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Jean-Pierre Georgé and Marie-Pierre Gleizes. 2005. Experiments in Emergent Programming Using Self-organizing Multi-agent Systems. Springer, Berlin, 450--459. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Karen Glocer, Damian Eads, and James Theiler. 2005. Online feature selection for pixel classification. In Proceedings of the 22nd International Conference on Machine Learning (ICML’05). ACM, New York, NY, 249--256. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Paul Grace, Danny Hughes, Barry Porter, Gordon Blair, Geoff Coulson, and Francois Taiani. 2008. Experiences with open overlays: A middleware approach to network heterogeneity. In Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008. 123--136. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Sara Hassan, Nelly Bencomo, and Rami Bahsoon. 2015. Minimizing nasty surprises with better informed decision-making in self-adaptive systems. In IEEE/ACM 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. 134--145. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Mike Hinchey, Sooyong Park, and Klaus Schmid. 2012. Building dynamic software product lines. IEEE Comput. 45, 10 (Oct 2012), 22--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Olga Kouchnarenko and Jean-Francois Weber. 2014. Adapting component-based systems at runtime via policies with temporal patterns. In Formal Aspects of Component Software. Springer, 234--253.Google ScholarGoogle Scholar
  17. D. Menasce, H. Gomaa, S. Malek, and J. P. Sousa. 2011. SASSY: A framework for self-architecting service-oriented systems. IEEE Softw. 28, 6 (Nov 2011), 78--85. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. NASA. 1995. NASA web server trace. Retrieved from http://ita.ee.lbl.gov/html/contrib/NASA-HTTP.html.Google ScholarGoogle Scholar
  19. Barry Porter. 2014. Runtime modularity in complex structures: A component model for fine grained runtime adaptation. In Component-Based Software Engineering. ACM, 26--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Barry Porter, Matthew Grieves, Roberto Rodrigues Filho, and David Leslie. 2016. REX: A development platform and online learning approach for runtime emergent software systems. In Symposium on Operating Systems Design and Implementation. USENIX, 333--348. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Barry Porter and Roberto Rodrigues Filho. 2016. Losing control: The case for emergent software systems using autonomous assembly, perception and learning. In International Conference on Self-Adaptive and Self-Organizing Systems. IEEE, 40--49.Google ScholarGoogle ScholarCross RefCross Ref
  22. Mazeiar Salehie and Ladan Tahvildari. 2009. Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4, 2 (2009), 14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Richard S. Sutton and Andrew G. Barto. 1998. Reinforcement Learning: An Introduction. Bradford Book. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Sven Tomforde, Jörg Hähner, and Christian Müller-Schloer. 2013. Incremental design of organic computing systems—moving system design from design-time to runtime. In Proceedings of the 10th International Conference on Informatics in Control, Automation and Robotics. 185--192.Google ScholarGoogle Scholar
  25. Yiqiao Wang and John Mylopoulos. 2009. Self-repair through reconfiguration: A requirements engineering approach. In Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering. IEEE Computer Society, 257--268. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Wei Zheng, Ricardo Bianchini, and Thu D. Nguyen. 2011. MassConf: Automatic configuration tuning by leveraging user community information. In ACM SIGSOFT Software Engineering Notes, Vol. 36. ACM, 283--288. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Defining Emergent Software Using Continuous Self-Assembly, Perception, and Learning

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM Transactions on Autonomous and Adaptive Systems
      ACM Transactions on Autonomous and Adaptive Systems  Volume 12, Issue 3
      Special Issue on SASO 2016
      September 2017
      132 pages
      ISSN:1556-4665
      EISSN:1556-4703
      DOI:10.1145/3143529
      Issue’s Table of Contents

      Copyright © 2017 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 20 September 2017
      • Accepted: 1 May 2017
      • Revised: 1 April 2017
      • Received: 1 January 2017
      Published in taas Volume 12, Issue 3

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!