Software Architecture-Based Adaptation for Pervasive Systems

  • Shang-Wen Cheng
  • David Garlan
  • Bradley Schmerl
  • João Pedro Sousa
  • Bridget Spitznagel
  • Peter Steenkiste
  • Ningning Hu
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2299)


An important requirement for pervasive computing systems is the ability to adapt at runtime to handle varying resources, user mobility, changing user needs, and system faults. In this paper we describe an approach in which dynamic adaptation is supported by the use of software architectural models to monitor an application and guide dynamic changes to it. The use of externalized models permits one to make reconfiguration decisions based on a global perspective of the running system, apply analytic models to determine correct repair strategies, and gauge the effectiveness of repair through continuous system monitoring. We illustrate the application of this idea to pervasive computing systems, focusing on the need to adapt based on per- formance-related criteria and models.


Software Architecture Architectural Model Pervasive Computing Server Group Runtime System 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abowd, G., Allen, R., and Garlan, D. Using Style to Understand Descriptions of Software Architectures. In Proceedings of SIGSOFT’93: Foundations of Software Engineering, December 1993.Google Scholar
  2. 2.
    Abowd, G., Burmitt, B., and Shafer, S. (Eds). Ubicomp 2001: Ubiquitous Computing— Third International Conference Atlanta, Georgia, USA, September 30–October 2, 2001 Proceedings. Lecture Notes in Computer Science 2201, Springer, October 2001.Google Scholar
  3. 3.
    Allen, R. and Garlan, D. A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology, June 1997.Google Scholar
  4. 4.
    Bertsekas, D. and Gallager, R. Data Networks, Second Edition. Prentice Hall, 1992. ISBN 0-13-200916-1.Google Scholar
  5. 5.
    Bollinger, J., and Gross, T. A Framework-Based Approach to the Development of Network-Aware Applications. IEEE Transacations on Software Engineering (Special Issue on Mobility and Network Aware Computing) 24(5):367–390, May 1998.Google Scholar
  6. 6.
    Carzaniga, A., Rosenblum, D.S., and Wolf, A.L. Achieving Expressiveness and Scalability in an Internet-Scale Event Notification Service. Proceedings of the Nineteenth ACM Symposium on Principles of Distributed Computing (PODC2000), Portland OR, July, 2000.Google Scholar
  7. 7.
    Clements, P., Bass, L., Kazman, R., Abowd, G. Predicting Software Quality by Architecture-Level Evaluation. In Proceedings of the Fifth International Conference on Software Quality, Austin, TX, October 1995.Google Scholar
  8. 8.
    Dashofy, E., van der Hoek, A., and Taylor, R.N. A Highly-Extensible, XML-Based Architecture Description Language. Proceedings of the Working IEEE/IFIP Conference on Software Architecture, Amsterdam, The Netherlands, August 2001.Google Scholar
  9. 9.
    Flinn, J., Narayanan, D., Satyanarayanan, M. Self-Tuned Remote Execution for Pervasive Computing. In Proceedings of the 8th Workshop on Hot Topics in Operating Systems (HotOS-VIII), Oberbayen, Germany, May 2001.Google Scholar
  10. 10.
    Garlan, D., Allen, R.J., and Ockerbloom, J. Exploiting Style in Architectural Design. Proceedings of SIGSOFT’ 94 Symposium on the Foundations of Software Engineerng, New Orleans, LA, December 1994.Google Scholar
  11. 11.
    Garlan, D., Monroe, R.T., and Wile, D. Acme: Architectural Description of Component-Based Systems. Foundations of Component-Based Systems. Leavens, G.T., and Sitaraman, M. (eds). Cambridge University Press, 2000 pp. 47–68.Google Scholar
  12. 12.
    Garlan, D., Schmerl, B.R., and Chang, J. Using Gauges for Architecture-Based Monitoring and Adaptation. The Working Conference on Complex and Dynamic System Architecture. Brisbane, Australia, December 2001.Google Scholar
  13. 13.
    Gorlick, M.M., and Razouk, R.R. Using Weaves for Software Construction and Analysis. Proceedings of the 13th International Conference on Software Engineering, IEEE Computer Society Press, May 1991.Google Scholar
  14. 14.
    Gorlick, M.M. Distributed Debugging on $5 a day. Proceedings of the California Software Symposium, University of California, Irvine, CA, 1997 pp. 31–39. Magee, J., Dulay, N., Eisenbach, S., and Kramer, J. Specifying Distributed Software Architectures. Proceedings of 5th European Software Engineering Conference (ESEC’ 95), Sitges, September 1995. Also published as Lecture Notes in Computer Science 989, (Springer-Verlag), 1995, pp. 137-153.Google Scholar
  15. 15.
    Gosling, J. and McGilton, H. The Java Language Environment: A White Paper. Sun Microsystems Computer Company, Mountain View, California, May 1996. Available at Scholar
  16. 16.
    Ho, W.W. and Olsson, R.A. An Approach to Genuine Dynamic Linking. Software— Practice and Experience 21(4):375–390, 1991.CrossRefGoogle Scholar
  17. 17.
    Hu, N. Network Aware Data Transmission with Compression. In Selected Papers from the Proceedings of the Fourth Student Symposium on Computer Systems (SOCS-4) Carnegie Mellon University School of Computer Science Technical Report, CMU-CS-01-164, October 2001.Google Scholar
  18. 18.
    Krintz, C., and Calder, B. Reducing Delay with Dynamic Selection of Compression Formats. Proceedings of the Tenth IEEE International Symposium on High Performance Distributed Computing, California, USA, August 2001.Google Scholar
  19. 19.
    Lowekamp, B., Miller, N., Sutherland, D., Gross, T., Steenkiste, P., and Subhlok, J. A Resource Query Interface for Network-aware Applications. Cluster Computing, 2:139–151, Baltzer, 1999.CrossRefGoogle Scholar
  20. 20.
    Loyall, J.P., Schantz, R.E., Zinky, J.A., and Bakken, D.E. Specifying and Measuring Quality of Service in Distributed Object Systems. In Proceedings of the 1st IEEE Symposium on Object-oriented Real-time Distributed Computing, Kyoto, Japan, April 1998.Google Scholar
  21. 21.
    Miller, N., and Steenkiste, P. Collecting Network Status Information for Network-Aware Applications. IEEE INFOCOM 2000, Tel Aviv, Israel, March 2000.Google Scholar
  22. 22.
    Monroe, R.T. Capturing Software Architecture Design Expertise with Armani. Carnegie Mellon University School of Computer Science Technical Report CMU-CS-98-163.Google Scholar
  23. 23.
    Moriconi, M. and Reimenschneider, R.A. Introduction to SADL 1.0: A Language for Specifying Software Architecture Hierarchies. Technical Report SRI-CSL-97-01, SRI International, March 1997.Google Scholar
  24. 24.
    Oreizy, P., Medvidovic, N., and Taylor, R.N. Architecture-Based Runtime Software Evolution in the Proceedings of the International Conference on Software Engineering 1998 (ICSE’98). Kyoto, Japan, April 1998, pp. 11–15.Google Scholar
  25. 25.
    Oreizy, P., Gorlick, M.M., Taylor, R.N., Johnson, G., Medvidovic, N., Quilici, A., Rosenblum, D., and Wolf, A. An Architecture-Based Approach to Self-Adaptive Software. IEEE Intelligent Systems 14(3):54–62, May/June 1999.CrossRefGoogle Scholar
  26. 26.
    Perry, D.E., and Wolf, A. Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes 17(4):40–52, October 1992.CrossRefGoogle Scholar
  27. 27.
    Satyanarayanan, M. Pervasive Computing: Vision and Challenges. IEEE Personal Communications, pp. 10–17, August 2001.Google Scholar
  28. 28.
    Shaw, M., and Garlan, D. Software Architectures: Perspectives on an Emerging Discipline. Prentice Hall, 1996.Google Scholar
  29. 29.
    Spitznagel, B. and Garlan, D. Architecture-Based Performance Analysis. Proceedings of the 1998 Conference on Software Engineering and Knowledge Engineering, June, 1998.Google Scholar
  30. 30.
    Stafford, J., Richardson, D.J., and Wolf, A.L. Alladin: A Tool for Architecture-Level Dependence Analysis of Software. University of Colorado at Boulder, Technical Report CU-CS-858-98, April 1998.Google Scholar
  31. 31.
    Taylor, R.N., Medvidovic, N., Anderson, K.M., Whitehead, E.J., Robbins, J.E., Nies, K.A., Oreizy, P., and Dubrow, D.L. A Component-and Message-Based Architectural Style for GUI Software. IEEE Transactions on Software Engineering 22(6):390–406, 1996.CrossRefGoogle Scholar
  32. 32.
    Vestel, S. MetaH Programmer’s Manual, Version 1.09. Technical Report, Honeywell Technology Center, April 1996.Google Scholar
  33. 33.
    Wang, Z., and Garlan, D. Task-Driven Computing. Carnegie Mellon University School of Computer Science Technical Report CMU-CS-00-154, May 2000.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Shang-Wen Cheng
    • 1
  • David Garlan
    • 1
  • Bradley Schmerl
    • 1
  • João Pedro Sousa
    • 1
  • Bridget Spitznagel
    • 1
  • Peter Steenkiste
    • 1
  • Ningning Hu
    • 1
  1. 1.School of Computer ScienceCarnegie Mellon UniversityPittsburghUSA

Personalised recommendations