Transparent shaping of existing software to support pervasive and autonomic computing

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.

[1]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

[2]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[3]  Thomas Ledoux,et al.  - 1-TWO-STEP WEAVING WITH REFLECTION USING ASPECTJ , 2001 .

[4]  Vinny Cahill,et al.  Supporting Unanticipated Dynamic Adaptation of Application Behaviour , 2002, ECOOP.

[5]  John A. Zinky,et al.  Architectural Support for Quality of Service for CORBA Objects , 1997, Theory Pract. Object Syst..

[6]  Massachusett Framingham,et al.  The Common Object Request Broker: Architecture and Specification Version 3 , 2003 .

[7]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[8]  Philip K. McKinley,et al.  Transparent self-optimization in existing CORBA applications , 2004 .

[9]  Michael Koch,et al.  Ubiquitous Computing , 2001, CSCW-Kompendium.

[10]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[11]  Luiz Eduardo Buzato,et al.  The Implementation of Guaran a on Java Tm the Implementation of Guaran a on Java Tm , 1998 .

[12]  Seyed Masoud Sadjadi,et al.  Composing adaptive software , 2004, Computer.

[13]  Ossama Othman The Design, Optimization, and Performance of an Adaptive Middlware Load Balancing Service , 2002 .

[14]  Barton P. Miller,et al.  Reliable network connections , 2002, MobiCom '02.

[15]  S. Masoud Sadjadi,et al.  SUPPORT PERVASIVE AND AUTONOMIC COMPUTING , 2004 .

[16]  Harold Ossher,et al.  Workshop on advanced separation of concerns in software engineering , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[17]  Seyed Masoud Sadjadi,et al.  TRAP/J: Transparent Generation of Adaptable Java Programs , 2004, CoopIS/DOA/ODBASE.

[18]  Douglas L. Jones,et al.  The Illinois GRACE Project: Global Resource Adaptation through CoopEration , 2002 .

[19]  Seyed Masoud Sadjadi,et al.  An aspect-oriented approach to dynamic adaptation , 2002, WOSS '02.

[20]  Geoff A. Cohen,et al.  Automatic Program Transformation with JOIE , 1998, USENIX Annual Technical Conference.

[21]  Betty H. C. Cheng,et al.  Adding Safeness to Dynamic Adaptation Techniques , 2004 .

[22]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[23]  Takashi Masuda,et al.  Designing an Extensible Distributed Language with a Meta-Level Architecture , 1993, ECOOP.

[24]  Roberto Baldoni,et al.  Active software replication through a three-tier approach , 2002, 21st IEEE Symposium on Reliable Distributed Systems, 2002. Proceedings..

[25]  Douglas C. Schmidt,et al.  Middleware for real-time and embedded systems , 2002, CACM.

[26]  Seyed Masoud Sadjadi,et al.  ACT: an adaptive CORBA template to support unanticipated adaptation , 2004, 24th International Conference on Distributed Computing Systems, 2004. Proceedings..

[27]  Priya Narasimhan,et al.  The Eternal system: an architecture for enterprise applications , 1999, Proceedings Third International Enterprise Distributed Object Computing. Conference (Cat. No.99EX366).

[28]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[29]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .