Types for Coordinating Secure Behavioural Variations

  • Pierpaolo Degano
  • Gian-Luigi Ferrari
  • Letterio Galletta
  • Gianluca Mezzetti
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7274)

Abstract

Context-Oriented programming languages provide us with primitive constructs to adapt program behaviour depending on the evolution of their operational environment. We are interested here in software components, the behaviour of which depend on the following: their actual operating context; the security policies that control accesses to their resources and the potential interactions with the external environment. For that, we extend a core functional language with mechanisms to program behavioural variations, to manipulate resources and to enforce security policies over both variations and resource usages. Additionally, there are message passing primitives to interact with the environment, also subject to a simple policy. Changes of the operational context are triggered both by the program and by the exchanged messages. Besides a definition of the dynamic semantics, we introduce a static analysis for guaranteeing programs to safely operate in any admissible context, and to correctly interact with the environment they comply with.

References

  1. 1.
    Cheng, B.H.C., et al.: Software Engineering for Self-Adaptive Systems: A Research Roadmap. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 1–26. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  2. 2.
    Bruni, R., Corradini, A., Gadducci, F., Lluch Lafuente, A., Vandin, A.: A Conceptual Framework for Adaptation. In: de Lara, J., Zisman, A. (eds.) FASE 2010. LNCS, vol. 7212, pp. 240–254. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  3. 3.
    Salehie, M., Tahvildari, L.: Self-adaptive software: Landscape and research challenges. TAAS 4(2) (2009)Google Scholar
  4. 4.
    Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented programming. Journal of Object Technology 7(3), 125–151 (2008)CrossRefGoogle Scholar
  5. 5.
    Salvaneschi, G., Ghezzi, C., Pradella, M.: Context-oriented programming: A programming paradigm for autonomic systems. CoRR abs/1105.0069 (2011)Google Scholar
  6. 6.
    Degano, P., Ferrari, G.L., Galletta, L., Mezzetti, G.: Typing context-dependent behavioural variations. In: PLACES 2012. EPTCS (to appear, 2012)Google Scholar
  7. 7.
    Bartoletti, M., Degano, P., Ferrari, G.L., Zunino, R.: Local policies for resource usage analysis. ACM Trans. Program. Lang. Syst. 31(6) (2009)Google Scholar
  8. 8.
    Bartoletti, M., Degano, P., Ferrari, G.L.: Planning and verifying service composition. Journal of Computer Security 17(5), 799–837 (2009)Google Scholar
  9. 9.
    Sangiorgi, D., Walker, D.: The Pi-Calculus - a theory of mobile processes. Cambridge University Press (2001)Google Scholar
  10. 10.
    Skalka, C., Smith, S., Horn, D.V.: Types and trace effects of higher order programs. Journal of Functional Programming 18(2), 179–249 (2008)MathSciNetMATHCrossRefGoogle Scholar
  11. 11.
    Hamlen, K.W., Morrisett, J.G., Schneider, F.B.: Computability classes for enforcement mechanisms. ACM Trans. on Programming Languages and Systems 28(1), 175–205 (2006)CrossRefGoogle Scholar
  12. 12.
    Vardi, M.Y., Wolper, P.: An automata-theoretic approach to automatic program verification (preliminary report). In: LICS, pp. 332–344. IEEE Computer Society (1986)Google Scholar
  13. 13.
    Hopcroft, J., Motwani, R., Ullman, J.: Introduction to automata theory, languages, and computation, vol. 2. Addison-wesley, Reading (1979)MATHGoogle Scholar
  14. 14.
    Clarke, D., Sergey, I.: A semantics for context-oriented programming with layers. In: International Workshop on Context-Oriented Programming, COP 2009, pp. 10:1–10:6. ACM, New York (2009)Google Scholar
  15. 15.
    Hirschfeld, R., Igarashi, A., Masuhara, H.: Context FJ: a minimal core calculus for context-oriented programming. In: Proceedings of the 10th International Workshop on Foundations of Aspect-Oriented Languages, pp. 19–23. ACM (2011)Google Scholar
  16. 16.
    Costanza, P.: Language constructs for context-oriented programming. In: Proceedings of the Dynamic Languages Symposium, pp. 1–10. ACM Press (2005)Google Scholar
  17. 17.
    Igarashi, A., Kobayashi, N.: Resource usage analysis. In: POPL, pp. 331–342 (2002)Google Scholar
  18. 18.
    Proença, J., Clarke, D., de Vink, E.P., Arbab, F.: Decoupled execution of synchronous coordination models via behavioural automata. In: Mousavi, M.R., Ravara, A. (eds.) FOCLASA. EPTCS, vol. 58, pp. 65–79 (2011)Google Scholar
  19. 19.
    Bonsangue, M., Clarke, D., Silva, A.: Automata for Context-Dependent Connectors. In: Field, J., Vasconcelos, V.T. (eds.) COORDINATION 2009. LNCS, vol. 5521, pp. 184–203. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  20. 20.
    Nielson, H.R., Nielson, F.: Higher-order concurrent programs with finite communication topology (extended abstract). In: Proceedings of the 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1994, pp. 84–97. ACM, New York (1994)CrossRefGoogle Scholar
  21. 21.
    Honda, K., Vasconcelos, V.T., Kubo, M.: Language Primitives and Type Discipline for Structured Communication-Based Programming. In: Hankin, C. (ed.) ESOP 1998. LNCS, vol. 1381, pp. 122–138. Springer, Heidelberg (1998)CrossRefGoogle Scholar

Copyright information

© IFIP International Federation for Information Processing 2012

Authors and Affiliations

  • Pierpaolo Degano
    • 1
  • Gian-Luigi Ferrari
    • 1
  • Letterio Galletta
    • 1
  • Gianluca Mezzetti
    • 1
  1. 1.Dipartimento di InformaticaUniversitá di PisaItaly

Personalised recommendations