Context-aware Self Adapting Systems: a Ground for the Cooperation of Data, Software, and Services


Fabio Alberto Schreiber
Emanuele Panigati


Modern technologies related to Pervasive and Ubiquitous computing require software to self adapt to different operating environments and situations, in a word, to different contexts. Several approaches have been proposed to solve this problem both in the Data Management and in the Programming Languages communities, however these efforts have proceeded along separate paths with little, if no interaction. We claim that there are complementary features which can bring different paradigms in the Data Management and Programming Languages domains to a fruitful cooperation in building Adaptive Systems. In fact, data collected by sensor networks can be directly used by application programs as well as used to determine the context the application is working in, so attaining a context-aware behavior obtained by triggering the execution of specific program modules or the connection to relevant web services. In this paper, we use the PerLa pervasive data management language and JCop Context-Oriented Programming Java language extension to show the feasibility of this approach applied to the classical case of keeping an office room climate comfortable under several environmental constraints and to the management of a ski resort.


How to Cite
Schreiber, F. A. ., & Emanuele Panigati. (2017). Context-aware Self Adapting Systems: a Ground for the Cooperation of Data, Software, and Services. International Journal of Next-Generation Computing, 8(1), 32–61.


  1. Angaroni, A. 2015. Extending perla with context oriented programming. M.S. thesis, Politecnico di Milano, Italy.
  2. Appeltauer, M., Hirschfeld, R., Haupt, M., Lincke, J., and Perscheid, M. 2009. A Comparison of Context-oriented Programming Languages. In COP '09: International Workshop on Context-Oriented Programming. ACM Press, New York, NY, USA, 1-6.
  3. Appeltauer, M., Hirschfeld, R., and Lincke, J. 2013. Declarative layer composition with the jcop programming language. Journal of Object Technology 12, 2, 4: 1-37.
  4. Bainomugisha, E., Vallejos, J., Roover, C. D., Carreton, A. L., and Meuter, W. D. 2012. Interruptible context-dependent executions: a fresh look at programming contextaware applications. In ACM Symposium on New Ideas in Programming and Reections on Software, Onward! 2012, part of SPLASH '12, Tucson, AZ, USA, October 21-26, 2012, G. T. Leavens and J. Edwards, Eds. ACM, 67-84.
  5. Bettini, C., Brdiczka, O., Henricksen, K., Indulska, J., Nicklas, D., Ranganathan, A., and Riboni, D. 2010. A survey of context modelling and reasoning techniques. Pervasive and Mobile Computing 6, 2, 161 - 180.
  6. Bolchini, C., Curino, C., Orsi, G., Quintarelli, E., Rossato, R., Schreiber, F. A., and Tanca, L. 2009. And what can context do for data? Commun. ACM 52, 11, 136-140.
  7. Bolchini, C., Curino, C. A., Quintarelli, E., Schreiber, F. A., and Tanca, L. 2007. A data-oriented survey of context models. SIGMOD Rec. 36, 19-26.
  8. Bolchini, C., Quintarelli, E., and Tanca, L. 2013. Carve: Context-aware automatic view de nition over relational databases. Information Systems 38, 1, 45-67.
  9. Borgia, E. 2014. The internet of things vision: Key features, applications and open issues. Computer Communications 54, 0, 1 - 31.
  10. Chen, H. 2004. An Intelligent Broker Architecture for Pervasive Context-Aware Systems. Ph.D. thesis, University of Maryland, Baltimore County.
  11. Cheng, B. H. e. a. 2009. Software engineering for self-adaptive systems: A research roadmap. In Software Engineering for Self-Adaptive Systems. Lecture Notes in Computer Science, vol. 5525. Springer Berlin/Heidelberg, 1-26.
  12. Chui, M., Loffler, M., and Roberts, R. 2010. The internet of things. McKinsey Quarterly.
  13. Cohen, N. H., Purakayastha, A.,Wong, L., and Yeh, D. L. 2002. iqueue: A pervasive data composition framework. In Proceedings of the Third International Conference on Mobile Data Management. MDM '02. IEEE Computer Society, Washington, DC, USA, 146-.
  14. Coutaz, J., Crowley, J. L., Dobson, S., and Garlan, D. 2005. Context is key. Commun. ACM 48, 3, 49-53.
  15. Desmet, B., Vallejos, J., Costanza, P., and Hirschfeld, R. 2007. Layered design approach for context-aware systems. In VaMoS. 157-165.
  16. Dey, A. 2001. Understanding and using context. Personal Ubiquitous Comput. 5, 1, 4-7.
  17. Diao, Y., Hellerstein, J. L., Parekh, S., Griffith, R., Kaiser, G., and Phung, D. 2005. Self-managing systems: A control theory foundation. In Proc. 12th IEEE-ECBS. 441-448. Editorial. 2007. When everything connects. The Economist.
  18. Fabry, J., Dinkelake, T., Noy, J., and Tanter, E. 2015. A taxonomy of domain-speci c aspect languages. ACM Computing Surveys 47, 3, Art. 40.
  19. Fahy, P. and Clarke, S. 2004. Cass: Middleware for mobile, context-aware applications. In Workshop on Context Awareness at MobiSys 2004.
  20. Gonzialez, S., Cardozo, N., Mens, K., Cadiz, A., Libbrecht, J., and Goffaux, J. 2010. Subjective-c - bringing context to mobile platform programming. In Software Language Engineering - Third International Conference, SLE 2010, Eindhoven, The Netherlands, October 12-13, 2010, Revised Selected Papers, B. A. Malloy, S. Staab, and M. van den Brand, Eds. Lecture Notes in Computer Science, vol. 6563. Springer, 246-265.
  21. Gu, T., Pung, H., and Zhang, D. 2005. A service-oriented middleware for building contextaware services. J. Netw. Comput. Appl. 28, 1, 1-18.
  22. Harel, D., Marron, A., and Weiss, G. 2012. Behavioral programming. Commun. ACM 55, 7 (July), 90-100.
  23. Hirschfeld, R., Costanza, P., and Nierstrasz, O. 2008. Context-oriented programming. Journal of Object Technology 7, 3, 125-151.
  24. Hong, J., Suh, E., and Kim, S.-J. 2009. Context-aware systems: A literature review and classi cation. Expert Syst. Appl. 36, 4, 8509-8522.
  25. IBM. 2006. An architectural blueprint for autonomic computing. IBM Autonomic Computing white paper.
  26. Judd, G. and Steenkiste, P. 2003. Providing contextual information to pervasive computing applications. In Proc. of IEEE International Conf. on Pervasive Computing and Communications (PerCom'03), Fort Worth, Texas, USA. 133-142.
  27. Kamina, T., Aotani, T., and Masuhara, H. 2011. Eventcj: A context-oriented programming language with declarative event-based context transition. In Proceedings of the Tenth International Conference on Aspect-oriented Software Development. AOSD '11. ACM, New York, NY, USA, 253-264.
  28. Kamina, T., Aotani, T., and Masuhara, H. 2013. Introducing composite layers in eventcj. Information and Media Technologies 8, 2, 279-286.
  29. Kant, I. 1787. Kritik der reinen Vernunft (Critique of pure reason) 2nd Ed. Riga.
  30. Kiczales, G. and Al. 1997. Aspect-oriented programming. In ECOOP. 220-242.
  31. Lee, C. K., Pham, T. H., Kim, H. S., and Youn, H. Y. 2011. Similarity based distributed context reasoning with layer context modeling. In Computer Software and Applications Conference (COMPSAC), 2011 IEEE 35th Annual. IEEE, 320-325.
  32. Maamar, Z., Benslimane, D., and Narendra, N. C. 2006. What can context do for web services? Commun. ACM 49, 12, 98-103.
  33. Madden, S. R., Franklin, M. J., Hellerstein, J. M., and Hong, W. 2005. Tinydb: an acquisitional query processing system for sensor networks. ACM Trans. Database Syst. 30, 1, 122-173.
  34. McKinley, P. K., Sadjadi, S. M., Kasten, E. P., and Cheng, B. H. C. 2004. Composing adaptive software. IEEE Computer 37, 7, 56-64.
  35. Panigati, E., Rauseo, A., Schreiber, F. A., and Tanca, L. 2012. Aspects of pervasive information management: an account of the green move system. In Computational Science and Engineering (CSE), 2012 IEEE 15th International Conference on. IEEE, 648-655.
  36. Pascoe, J. 1998. Adding generic contextual capabilities to wearable computers. In Wearable Computers, 1998. Digest of Papers. Second International Symposium on. IEEE, 92-99.
  37. Reichle, R., Wagner, M., Khan, M., Geihs, K., Lorenzo, J., Valla, M., Fra, C., Paspallis, N., and Papadopoulos, G. 2008. A comprehensive context modeling framework for pervasive computing systems. In Distributed applications and interoperable systems. Springer, 281-295.
  38. Rota, G. 2014. Design and development of an asynchronous data access middleware for pervasive networks: the case of perla. M.S. thesis, Politecnico di Milano, Italy.
  39. Rovero, M. 2013. Context-aware application development: A comparison of di erent approaches. M.S. thesis, Politecnico di Milano, Italy.
  40. Salber, D., Dey, A. K., and Abowd, G. D. 1999. The context toolkit: aiding the development of context-enabled applications. In Proceedings of the SIGCHI conference on Human factors in computing systems: the CHI is the limit. ACM, 434-441.
  41. Salvaneschi, G., Ghezzi, C., and Pradella, M. 2011. Context-oriented programming: A programming paradigm for autonomic systems. CoRR abs/1105.0069.
  42. Salvaneschi, G., Ghezzi, C., and Pradella, M. 2012a. Context-oriented programming: A software engineering perspective. Journal of Systems and Software 85, 8, 1801-1817.
  43. Salvaneschi, G., Ghezzi, C., and Pradella, M. 2012b. Contexterlang: introducing contextoriented programming in the actor model. In Proceedings of the 11th International Conference on Aspect-oriented Software Development, AOSD 2012, Potsdam, Germany, March 25-30, 2012, R. Hirschfeld, E. Tanter, K. J. Sullivan, and R. P. Gabriel, Eds. ACM, 191-202.
  44. Schreiber, F. A., Camplani, R., Fortunato, M., Marelli, M., and Rota, G. 2012. Perla: A language and middleware architecture for data management and integration in pervasive information systems. IEEE Trans. Software Eng. 38, 2, 478-496.
  45. Schreiber, F. A., Tanca, L., Camplani, R., and Vigano, D. 2012. Pushing contextawareness down to the core: more exibility for the PerLa language. In Electronic Proc. 6th PersDB. 1-6.