skip to main content
article

Transparent shaping of existing software to support pervasive and autonomic computing

Published: 21 May 2005 Publication History

Abstract

The need for adaptability in software is growing, driven in part by the emergence of pervasive and autonomic computing. In many cases, it is desirable to enhance existing programs with adaptive behavior, enabling them to execute effectively in dynamic environments. In this paper, we propose a general programming model called transparent shaping to enable dynamic adaptation in existing programs. We describe an approach to implementing transparent shaping that combines four key software development techniques: aspect-oriented programming to realize separation of concerns at development time, behavioral reflection to support software reconfiguration at run time, component-based design to facilitate independent development and deployment of adaptive code, and adaptive middleware to encapsulate the adaptive functionality. After presenting the general model, we discuss two specific realizations of transparent shaping that we have developed and used to create adaptable applications from existing programs.

References

[1]
Philip K. McKinley, Masoud Sadjadi, Eric P. Kasten, and Betty H. C. Cheng. Composing adaptive software. IEEE Computer, pages 56--64, July 2004.
[2]
M. Weiser. Ubiquitous computing. IEEE Computer, 26(10):71--72, October 1993.
[3]
Jeffrey O. Kephart and David M. Chess. The vision of autonomic computing. IEEE Computer, 36(1):41--50, 2003.
[4]
David L. Parnas. On the design and development of program families. IEEE Transactions on Software Engineering, March 1976.
[5]
Peri Tarr and Harold Ossher, editors. Workshop on Advanced Separation of Concerns in Software Engineering at ICSE 2001 (W17), May 2001.
[6]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Videira Lopes, J. M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Springer-Verlag LNCS 1241, June 1997.
[7]
Communications of the ACM, Special Issue on Aspect-Oriented Programming, volume 44, October 2001.
[8]
Pattie Maes. Concepts and experiments in computational reflection. In Proceedings of the ACM Conference on Object-Oriented Languages (OOPSLA), pages 147--155. ACM Press, December 1987.
[9]
Gregor Kiczales, Jim des Rivières, and Daniel G. Bobrow. The Art of Metaobject Protocols. MIT Press, 1991.
[10]
Pierre Charles David, Thomas Ledoux, and Noury M. N. Bouraqadi-Saadani. Two-step weaving with reflection using AspectJ. In OOPSLA 2001 Workshop on Advanced Separation of Concerns in Object-Oriented Systems, Tampa, October 2001.
[11]
Clemens Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 1999.
[12]
David E. Bakken. Middleware. Kluwer Academic Press, 2001.
[13]
Proceedings of the Middleware'2000 Workshop on Reflective Middleware (RM2000), New York, April 2000.
[14]
Z. Yang, B. H. C. Cheng, R. E. K. Stirewalt, J. Sowell, S. Masoud Sadjadi, and P. K. McKinley. An aspect-oriented approach to dynamic adaptation. In Proceedings of the ACM SIGSOFT Workshop On Self-healing Software (WOSS'02), November 2002.
[15]
Object Management Group, Framingham, Massachusett. The Common Object Request Broker: Architecture and Specification Version 3.0, July 2003.
[16]
Geoff A. Cohen, Jeffrey S. Chase, and David Kaminsky. Automatic program transformation with JOIE. In 1998 Usenix Technical Conference, June 1998.
[17]
S. Adve, A. Harris, C. Hughes, D. Jones, R. Kravets, K. Nahrstedt, D. Sachs, R. Sasanka, J. Srinivasan, and W. Yuan. The Illinois GRACE project: Global resource adaptation through cooperation, 2002.
[18]
Distributed extensible open systems (the DEOS project), 2004. Georgia Institute of Technology - College of Computing.
[19]
F. Samimi, P. K. McKinley, S. Masoud Sadjadi, and P. Ge. Kernel-middleware cooperation in support of adaptive mobile computing. In the Second International Workshop on Middleware for Pervasive and Ad-Hoc Computing.
[20]
S. Masoud Sadjadi and P. K. McKinley. ACT: An adaptive CORBA template to support unanticipated adaptation. In Proceedings of the 24th IEEE International Conference on Distributed Computing Systems (ICDCS'04), Tokyo, Japan, March 2004.
[21]
S. Masoud Sadjadi and P. K. McKinley. Transparent self-optimization in existing CORBA applications. In Proc. of the International Conference on Autonomic Computing (ICAC-04), pages 88--95, New York, NY, May 2004.
[22]
John A. Zinky, David E. Bakken, and Richard E. Schantz. Architectural support for quality of service for CORBA objects. Theory and Practice of Object Systems, 3(1), 1997.
[23]
S. Masoud Sadjadi, Philip K. McKinley, Betty H. C. Cheng, and R. E. Kurt Stirewalt. TRAP/J: Transparent generation of adaptable java programs. In Proceedings of the International Symposium on Distributed Objects and Applications (DOA'04), Agia Napa, Cyprus, October 2004.
[24]
Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An overview of AspectJ. Lecture Notes in Computer Science, 2072:327--355, 2001.
[25]
Scott D. Fleming, Betty H. C. Cheng, R. E. Kurt Stirewalt, and Philip K. McKinley. An approach to implementing dynamic adaptation in c++. In Proceedings of the first Workshop on the Design and Evolution of Autonomic Application Software 2005 (DEAS'05), in conjunction with ICSE 2005, St. Louis, Missouri, May 2005. To appear.
[26]
Shigeru Chiba and Takashi Masuda. Designing an extensible distributed language with a meta-level architecture. Lecture Notes in Computer Science, 707, 1993.
[27]
Douglas C. Schmidt. Middleware for real-time and embedded systems. Communications of the ACM, 45(6), June 2002.
[28]
L. Bergmans and M. Aksit. Composing crosscutting concerns using composition filters. Communications of ACM, (10):51--57, October 2001.
[29]
R. Baldoni, C. Marchetti, and A. Termini. Active software replication through a three-tier approach. In Proceedings of the 22th IEEE International Symposium on Reliable Distributed Systems (SRDS02), pages 109--118, Osaka, Japan, October 2002.
[30]
Erez Hadad. Architectures for Fault-Tolerant Object-Oriented Middleware Services. PhD thesis, Computer Science Department, The Technion - Israel Institute of Technology, 2001.
[31]
Ossama Othman. The design, optimization, and performance of an adaptive middleware load balancing service. Master's thesis, University of California, Irvine, 2002.
[32]
Barry Redmond and Vinny Cahill. Supporting unanticipated dynamic adaptation of application behaviour. In Proceedings of the 16th European Conference on Object-Oriented Programming, June 2002.
[33]
A. Popovici, T. Gross, and G. Alonso. Dynamic homogenous AOP with PROSE. Technical report, Department of Computer Science, Federal Institute of Technology, Zurich, 2001.
[34]
Alexandre Oliva and Luiz Eduardo Buzato. The implementation of Guaraná on Java. Technical Report IC-98-32, Universidade Estadual de Campinas, September 1998.
[35]
L. Moser, P. Melliar-Smith, P. Narasimhan, L. Tewksbury, and V. Kalogeraki. The Eternal system: An architecture for enterprise applications. In Proceedings of the Third International Enterprise Distributed Object Computing Conference (EDOC'99), July 1999.
[36]
Victor C. Zandy and Barton P. Miller. Reliable network connections. In Proceedings of the Eighth Annual International Conference on Mobile Computing and Networking, pages 95--106, September 2002.
[37]
S. Masoud Sadjadi. Transparent Shaping for Existing Software to Support Pervasive and Autonomic Computing. PhD thesis, Department of Computer Science, Michigan State University, East Lansing, United States, August 2004.
[38]
Ji Zhang, Zhenxiao Yang, Betty H. C. Cheng, and Philip K. McKinley. Adding safeness to dynamic adaptation techniques. In Proceedings of the ICSE 2004 Workshop on Architecting Dependable Systems, Edinburgh, Scotland, May 2004.

Cited By

View all
  • (2014)Discovering parallel pattern candidates in ErlangProceedings of the Thirteenth ACM SIGPLAN workshop on Erlang10.1145/2633448.2633453(13-23)Online publication date: 3-Sep-2014
  • (2014)BibliographyService Orchestration As Organization10.1016/B978-0-12-800938-3.00026-6(257-272)Online publication date: 2014
  • (2014)Supporting collaborative development using process models: a tooled integration‐focused approachJournal of Software: Evolution and Process10.1002/smr.164026:10(890-909)Online publication date: 6-Feb-2014
  • Show More Cited By

Index Terms

  1. Transparent shaping of existing software to support pervasive and autonomic computing

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGSOFT Software Engineering Notes
    ACM SIGSOFT Software Engineering Notes  Volume 30, Issue 4
    July 2005
    1514 pages
    ISSN:0163-5948
    DOI:10.1145/1082983
    Issue’s Table of Contents
    • cover image ACM Other conferences
      DEAS '05: Proceedings of the 2005 workshop on Design and evolution of autonomic application software
      May 2005
      105 pages
      ISBN:1595930396
      DOI:10.1145/1083063
    Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 21 May 2005
    Published in SIGSOFT Volume 30, Issue 4

    Check for updates

    Author Tags

    1. dynamic adaptation
    2. middleware
    3. program families

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)1
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 08 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2014)Discovering parallel pattern candidates in ErlangProceedings of the Thirteenth ACM SIGPLAN workshop on Erlang10.1145/2633448.2633453(13-23)Online publication date: 3-Sep-2014
    • (2014)BibliographyService Orchestration As Organization10.1016/B978-0-12-800938-3.00026-6(257-272)Online publication date: 2014
    • (2014)Supporting collaborative development using process models: a tooled integration‐focused approachJournal of Software: Evolution and Process10.1002/smr.164026:10(890-909)Online publication date: 6-Feb-2014
    • (2014)Service Orchestration as OrganizationundefinedOnline publication date: 29-Aug-2014
    • (2012)Supporting collaborative development using process modelsProceedings of the International Conference on Software and System Process10.5555/2664360.2664379(120-129)Online publication date: 2-Jun-2012
    • (2012)Artificial intelligence in the service of system administratorsJournal of Physics: Conference Series10.1088/1742-6596/396/5/052038396:5(052038)Online publication date: 13-Dec-2012
    • (2009)Transparent Autonomization in Composite SystemsAutonomic Computing10.1201/9781420009354.ch9(169-188)Online publication date: 18-Nov-2009
    • (2009)Using the Notion of Structural Congruence to Support Adaptive IntegrationProceedings of the 2009 Computation World: Future Computing, Service Computation, Cognitive, Adaptive, Content, Patterns10.1109/ComputationWorld.2009.78(105-112)Online publication date: 15-Nov-2009
    • (2007)A framework for autonomic software2007 IEEE International Conference on Systems, Man and Cybernetics10.1109/ICSMC.2007.4413984(777-782)Online publication date: Oct-2007
    • (2018)Dynamic Enhanced Field DivisionACM Transactions on Sensor Networks10.1145/321672115:1(1-26)Online publication date: 15-Dec-2018
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media