A Middleware Supporting Adaptive and Context-Aware Mobile Applications

  • Lincoln DavidEmail author
  • José Viterbo
  • Marcelo Malcher
  • Hubert Fonseca
  • Gustavo Baptista
  • Markus Endler


Mobile Applications with context awareness features allow mobile users to communicate and share different sorts of context-based information among themselves, such as the current position of other users, geo-referenced data, device speed and others. Although many of such mobile collaboration applications potentially share a good amount of functionality, most of them are developed from scratch, monolithic and tailored to specific mobile platforms, what limits their applicability. This chapter presents a client middleware architecture which supports dynamic deployment and composition of components for context-awareness, common collaboration services, and presents a context oriented language easing the coding of such applications. We also present some prototype context-aware applications implemented on the top of our middleware services, one of which was used to assess the advantages of using our middleware.


Mobile User Mobile Platform Context Data Context Situation Context Provider 
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.



This work was partially funded by BMBF/CNPq grant 490817/2006-8.


  1. 1.
    Miraoui, M., Tadj, C., & ben Amar, C. (2008). Architectural survey of context-aware systems in pervasive computing environment. Ubiquitous Computing and Communication Journal 3, no. 3. Google Scholar
  2. 2.
    Preuveneers, D., & Berbers, Y. (2007). Towards context-aware and resource-driven self-adaptation for mobile handheld applications. In Proceedings of the 2007 ACM symposium on applied computing. Google Scholar
  3. 3.
    Raento, M., Oulasvirta, A., Petit, R., & Toivonen, H. (2005). ContextPhone: A prototyping platform for context-aware mobile applications. IEEE Pervasive Computing, 4(2), 51–59. CrossRefGoogle Scholar
  4. 4.
    Costanza, P. (2008). Context-oriented programming in contextl: state of the art. In LISP50: Celebrating the 50th anniversary of Lisp, New York: ACM, 15 pp. Google Scholar
  5. 5.
    González, S., Mens, K., & Cádiz, A. (2008). Context-oriented programming with the ambient object system. Journal of Universal Computer Science, 14(20), 3307–3332. Google Scholar
  6. 6.
    Ghezzi, C., Pradella, M., & Salvaneschi, G. (2010). Programming language support to context-aware adaptation: a case-study with Erlang. In Proceedings of the 2010 ICSE workshop on software engineering for adaptive and self-managing systems (SEAMS ’10) (pp. 59–68). New York: ACM. CrossRefGoogle Scholar
  7. 7.
    Appeltauer, M., Hirschfeld, R., Haupt, M., & Masuhara, H. (2009). ContextJ: Context-oriented programming with Java. In Proceedings of the JSSST annual conference 2009, 2D-1, Shimane University, Matsue, Shimane, Japan, 16 September 2009. Google Scholar
  8. 8.
    Hasso-Plattner-Institute Potsdam. Last visit: February 2011.
  9. 9.
    Appeltauer, M., Hirschfeld, R., Haupt, M., Lincke, J., & Perscheid, M. (2009). A comparison of context-oriented programming languages. In COP’09: International workshop on context-oriented programming. New York: ACM, 16 pp. Google Scholar
  10. 10.
    Fonseca, H. (2009). A component-based middleware for dynamic adaptation on the Android platform. M.Sc. Thesis, Department of Informatics, PUC-Rio. Google Scholar
  11. 11.
  12. 12.
    Hirschfeld, R., Costanza, P., & Nierstrasz, O. (2008). Context-oriented programming. Journal of Object Technology, 7(3), 125–151. CrossRefGoogle Scholar
  13. 13.
    Android Developers, Speech Input. Last visit February 2011.
  14. 14.
    NIST SIP: Visit July 2011.

Copyright information

© Springer-Verlag London Limited 2012

Authors and Affiliations

  • Lincoln David
    • 1
    Email author
  • José Viterbo
    • 2
  • Marcelo Malcher
    • 1
  • Hubert Fonseca
    • 1
  • Gustavo Baptista
    • 1
  • Markus Endler
    • 1
  1. 1.Laboratory for Advanced Collaboration (LAC)Pontifícia Universidade Católica do Rio de JaneiroRio de JaneiroBrazil
  2. 2.Instituto de ComputaçãoUniversidade Federal FluminenseNiteróiBrazil

Personalised recommendations