Using a Teleo-Reactive Programming Style to Develop Self-healing Applications

  • James Hawthorne
  • Richard Anthony
Conference paper
Part of the Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering book series (LNICST, volume 23)


A well designed traditional software system is capable of recognising and either avoiding or recovering from a number of expected events. However, during the design phase it is not possible to envision and thus equip the software to handle all events or perturbations that can occur; this limits the extent of adaptability that can be achieved. Alternatively a goal-oriented system has the potential to steer around generic classes of problems without the need to specifically identify these.

This paper presents a teleo-reactive approach for the development of robust adaptive and autonomic software where the focus is on high level goals rather than the low level actions and behaviour of software systems. With this approach we maintain focus on the business objectives of the system rather than the underlying mechanisms.

An extensible software framework is presented, with an example application which shows how unexpected events can be dealt with in a natural way.


Robust software Goal-based systems Software frameworks Error recovery Context awareness Self-healing 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Nilsson, N.J.: Teleo-reactive programs for agent control. Journal of Artificial Intelligence Research 1, 139–158 (1994)Google Scholar
  2. 2.
    Giorgini, P., Mylopoulos, J., Sebastiani, R.: Goal-oriented requirements analysis and reasoning in the tropos methodology. Engineering Applications of Artificial Intelligence 18(2), 159–171 (2005)CrossRefGoogle Scholar
  3. 3.
    Bresciani, P., Perini, A., Giorgini, P., Giunchiglia, F., Mylopoulos, J.: Tropos: An agent-oriented software development methodology. Autonomous Agents and Multi-Agent Systems 8(3), 203–236 (2004)CrossRefzbMATHGoogle Scholar
  4. 4.
    Castro, J., Kolp, M., Mylopoulos, J.: Towards requirements-driven information systems engineering: the tropos project. Inf. Syst. 27(6), 365–389 (2002)CrossRefzbMATHGoogle Scholar
  5. 5.
    Van Lamsweerde, A.: Goal-oriented requirements engineering: A guided tour. In: RE 2001: Proceedings of the Fifth IEEE International Symposium on Requirements Engineering, pp. 249–262. IEEE Computer Society, Washington (2001)Google Scholar
  6. 6.
    Fowler, M.: UML Distilled: A Brief Guide to the Standard Object Modeling Language. Addison-Wesley Longman Publishing Co., Inc., Boston (2004)Google Scholar
  7. 7.
    Dashofy, E.M., van der Hoek, A., Taylor, R.N.: Towards architecture-based self-healing systems. In: WOSS 2002: Proceedings of the first workshop on Self-healing systems, pp. 21–26. ACM, New York (2002)CrossRefGoogle Scholar
  8. 8.
    Garlan, D., Schmerl, B.: Model-based adaptation for self-healing systems. In: WOSS 2002: Proceedings of the first workshop on Self-healing systems, pp. 27–32. ACM, New York (2002)CrossRefGoogle Scholar
  9. 9.
    Hassan, S., Mcsherry, D., Bustard, D.: Autonomic self healing and recovery informed by environment knowledge. Artif. Intell. Rev. 26, 89–101 (2006)CrossRefGoogle Scholar
  10. 10.
    Nilsson, N.J.: Teleo-reactive programs web site, (last accessed 2009)
  11. 11.
    Hayes, I.J.: Towards reasoning about teleo-reactive programs for robust real-time systems. In: SERENE 2008: Proceedings of the 2008 RISE/EFTS Joint International Workshop on Software Engineering for Resilient Systems, pp. 87–94. ACM, New York (2008)CrossRefGoogle Scholar
  12. 12.
    Gordon, E., Logan, B.: Game over: You have been beaten by a GRUE. In: Fu, D., Henke, S., Orkin, J. (eds.) Challenges in Game Artificial Intelligence, Technical Report. Papers from the 2004 AAAI Workshop, pp. 16–21. AAAI Press, Menlo Park (2004)Google Scholar
  13. 13.
    Broda, K., Hogger, C.: Determining and verifying good policies for cloned teleo-reactive agents. Int. Journal of Computer Systems Science and Engineering 20(4), 249–258 (2005)Google Scholar
  14. 14.
    Kephart, J.: Research challenges of autonomic computing. In: International Conference on Software Engineering (ICSE), pp. 15–22. ACM, New York (2005)Google Scholar
  15. 15.
    Sterritt, R., Parashar, M., Tianfield, H., Unland, R.: A concise introduction to autonomic computing. Advanced Engineering Informatics 19(3), 181–187 (2005)CrossRefGoogle Scholar
  16. 16.
    Kochenderfer, M.J.: Evolving hierarchical and recursive teleo-reactive programs through genetic programming. In: Ryan, C., Soule, T., Keijzer, M., Tsang, E.P.K., Poli, R., Costa, E. (eds.) EuroGP 2003. LNCS, vol. 2610, pp. 83–92. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  17. 17.
    Choi, D., Langley, P.: Learning teleoreactive logic programs from problem solving. In: Kramer, S., Pfahringer, B. (eds.) ILP 2005. LNCS (LNAI), vol. 3625, pp. 51–68. Springer, Heidelberg (2005)CrossRefGoogle Scholar

Copyright information

© ICST Institute for Computer Science, Social Informatics and Telecommunications Engineering 2010

Authors and Affiliations

  • James Hawthorne
    • 1
  • Richard Anthony
    • 1
  1. 1.Dept. Computer ScienceThe University of GreenwichLondonUK

Personalised recommendations