Runtime Adaptation for Actor Systems

  • Ian Cassar
  • Adrian Francalanza
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9333)


We study the problem of extending RV techniques in the context of (asynchronous) actor systems, so as to be able to carry out a degree of system adaptation at runtime. We propose extensions to specification logics that provide handles for programming both monitor synchronisations (with individual actors), as well as the administration of the resp. adaptations once the triggering behaviour is observed. Since this added functionality allows the specifier to introduce erroneous adaptation procedures, we also develop static analysis techniques based on substructural type systems to assist the construction of correct adaptation scripts.


Type System Operational Semantic Formula Variable Type Check Runtime Verification 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Aceto, L., Ingólfsdóttir, A.: Testing hennessy-milner logic with recursion. In: Thomas, W. (ed.) FOSSACS 1999. LNCS, vol. 1578, pp. 41–55. Springer, Heidelberg (1999) CrossRefGoogle Scholar
  2. 2.
    Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986) Google Scholar
  3. 3.
    Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf (2007). ISBN: 193435600XGoogle Scholar
  4. 4.
    Bocchi, L., Chen, T.-C., Demangeon, R., Honda, K., Yoshida, N.: Monitoring networks through multiparty session types. In: Beyer, D., Boreale, M. (eds.) FORTE 2013 and FMOODS 2013. LNCS, vol. 7892, pp. 50–65. Springer, Heidelberg (2013) CrossRefGoogle Scholar
  5. 5.
    Bodden, E.: Efficient hybrid typestate analysis by determining continuation-equivalent states. ICSE, pp. 5–14. ACM (2010)Google Scholar
  6. 6.
    Bodden, E., Lam, P.: Clara: partially evaluating runtime monitors at compile time. In: Barringer, H., Falcone, Y., Finkbeiner, B., Havelund, K., Lee, I., Pace, G., Roşu, G., Sokolsky, O., Tillmann, N. (eds.) RV 2010. LNCS, vol. 6418, pp. 74–88. Springer, Heidelberg (2010) CrossRefGoogle Scholar
  7. 7.
    Cassar, I., Francalanza, A.: On synchronous and asynchronous monitor instrumentation for actor-based systems. FOCLASA 175, 54–68 (2014)Google Scholar
  8. 8.
    Castellani, I., Dezani-Ciancaglini, M., Pérez, J.A.: Self-adaptation and secure information flow in multiparty structured commun.: a unified perspective. In: BEAT, pp. 9–18 (2014)Google Scholar
  9. 9.
    Cesarini, F., Thompson, S.: ERLANG Programming, 1st edn. O’Reilly (2009). ISBN: 0596518188, 9780596518189Google Scholar
  10. 10.
    Colombo, C., Francalanza, A., Gatt, R.: Elarva: a monitoring tool for erlang. In: Khurshid, S., Sen, K. (eds.) RV 2011. LNCS, vol. 7186, pp. 370–374. Springer, Heidelberg (2012) CrossRefGoogle Scholar
  11. 11.
    Falcone, Y., Jaber, M., Nguyen, T.-H., Bozga, M., Bensalem, S.: Runtime verification of component-based systems. In: Barthe, G., Pardo, A., Schneider, G. (eds.) SEFM 2011. LNCS, vol. 7041, pp. 204–220. Springer, Heidelberg (2011) CrossRefGoogle Scholar
  12. 12.
    Francalanza, A., Seychell, A.: Synthesising correct concurrent runtime monitors. In: Formal Methods in System Design (FMSD), pp. 1–36 (2014)Google Scholar
  13. 13.
    Goldsby, H.J., Cheng, B.H.C., Zhang, J.: AMOEBA-RT: run-time verification of adaptive software. In: Giese, H. (ed.) MODELS 2008. LNCS, vol. 5002, pp. 212–224. Springer, Heidelberg (2008) CrossRefGoogle Scholar
  14. 14.
    Haller, P., Sommers, F.: Actors in Scala. Artima Inc., Walnut Creek (2012) Google Scholar
  15. 15.
    Irmert, F., Fischer, T., Meyer-Wegener, K.: Runtime adaptation in a service-oriented component model. In: SEAMS, pp. 97–104. ACM (2008)Google Scholar
  16. 16.
    Kalareh, M.A.: Evolving Software Systems for Self-Adaptation. Ph.D. thesis, University of Waterloo, Ontario, Canada (2012)Google Scholar
  17. 17.
    Kell, S.: A survey of pract. software adaptation techniques. J. UCS 14, 2110–2157 (2008)Google Scholar
  18. 18.
    Kozen, D.: Results on the propositional \(\mu \)-calculus. TCS 27, 333–354 (1983)MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Long, F., Sidiroglou-Douskos, S., Rinard, M.: Automatic runtime error repair and containment via recovery shepherding. SIGPLAN Not. 49, 227–238 (2014)CrossRefGoogle Scholar
  20. 20.
    Milner, R.: Communication and Concurrency. Prentice-Hall Inc, Upper Saddle River (1989) zbMATHGoogle Scholar
  21. 21.
    Oreizy, P., Medvidovic, N., Taylor, R.N.: Runtime software adaptation: framework, approaches, and styles. In: ICSE Companion, pp. 899–910. ACM (2008)Google Scholar
  22. 22.
    Pierce, B.C. (ed.): Advanced Topics in Types and Prog. Languages. MIT Press, Cambridge (2005) zbMATHGoogle Scholar
  23. 23.
    Rinard, M., Cadar, C., Dumitran, D., Roy, D., Leu, T., Beebee, W.: Enhancing availability & security through failure-oblivious computing. In: OSDI, pp. 303–316. USENIX (2004)Google Scholar
  24. 24.
    Roşu, G., Havelund, K.: Rewriting-based techniques for runtime verification. Autom. Softw. Eng. 12, 151–197 (2005)CrossRefGoogle Scholar
  25. 25.
    Sen, K., Vardhan, A., Agha, G., Roşu, G.: Efficient decentralized monitoring of safety in distributed systems. ICSE, pp. 418–427 (2004)Google Scholar
  26. 26.
    Zhang, J., Cheng, B.H.: Using temporal logic to specify adaptive program semantics. JSS 79, 1361–1369 (2006)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.CS, ICTUniversity of MaltaMsidaMalta

Personalised recommendations