Supporting Unanticipated Dynamic Adaptation of Application Behaviour | SpringerLink
Skip to main content

Supporting Unanticipated Dynamic Adaptation of Application Behaviour

  • Conference paper
  • First Online:
ECOOP 2002 — Object-Oriented Programming (ECOOP 2002)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2374))

Included in the following conference series:

Abstract

The need to dynamically modify running applications arises in systems that must adapt to changes in their environment, in updating long-running systems that cannot be halted and restarted, and in monitoring and debugging systems without the need to recompile and restart them. Relatively few architectures have explored the meaning and possibilities of applying behavioural modifications to already running applications without static preparation of the application. The desirable characteristics of an architecture for dynamic modification include support for non-invasive association of new behaviour with the application, support for modular reusable components encapsulating the new behaviour and support for dynamic association (and de-association) of new behaviour with any class or object of the application. The Iguana/J architecture explores unanticipated dynamic modification, and demonstrates how these characteristics may be supported in an interpreted language without extending the language, without a preprocessor, and without requiring the source code of the application. This paper describes the Iguana/J programmer’s model and how it addresses some acknowledged issues in dynamic adaptation and separation of concerns, describes how Iguana/J is implemented, and gives examples of applying Iguana/J.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
¥17,985 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
JPY 3498
Price includes VAT (Japan)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
JPY 11439
Price includes VAT (Japan)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
JPY 14299
Price includes VAT (Japan)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Amano, N., Watanabe, T.: Reflection for Dynamic Adaptability: A Linguistic Approach Using LEAD++. In: Pierre Cointe, editor, Meta-Level Architectures and Reflection, Vol. 1616 of Lecture Notes in Computer Science, pages 138–140. Springer-Verlag (1999)

    Chapter  Google Scholar 

  2. Bouraqadi, N.: Concern Oriented Programming using Reflection. Workshop on Advanced Separation of Concerns at OOPSLA 2000 (position paper)

    Google Scholar 

  3. Bouraqadi-Saâdani, N., Ledoux, T.: How to Weave? Workshop on advanced separation of concerns at ECOOP 2001 (position paper)

    Google Scholar 

  4. Brichau, J., de Meuter, W, de Volder, K.: Jumping Aspects. Workshop on aspects and dimensions of concern at ECOOP 2000 (position paper)

    Google Scholar 

  5. Brichau, J., Glandrup, M., Clarke, S., Bergmans, L.: Advanced Separation of Concerns. Report of workshop on advanced separation of concerns at ECOOP’2001. http://trese.cs.utwente.nl/Workshops/ecoop01asoc/ws.pdf

  6. Czarnecki, K., Eisenecker, U.W.: Generative Programming. Addison Wesley (2000)

    Google Scholar 

  7. Dowling, J., Schäfer, T., Cahill, V., Haraszti, P, Redmond, B.: Using Reflection to Support Dynamic Adaptation of System Software. In: Cazzola, W., Stroud, R.J., Tisato, F. (eds): Reflection and Software Engineering, Vol. 1826 of Lecture Notes in Computer Science, pages 171–190. Springer-Verlag (2000)

    Chapter  Google Scholar 

  8. Eide, E., Reid, A., Flatt, M., Lepreau, J.: Aspect Weaving as Component Knitting: Separating Concerns with Knit. Workshop on Advanced Separation of Concerns in Software Engineering at ICSE 2001 (position paper).

    Google Scholar 

  9. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)

    Google Scholar 

  10. Golm, M.: Design and Implementation of a Meta-Architecture for Java. Master’s Thesis, Dept. of Computer Science, Friedrich-Alexander-University, Erlangen-Nuremberg (1997)

    Google Scholar 

  11. Golm, M., Kleinöder, J.: Jumping to the Meta Level: Behavioural Reflection can be Fast and Flexible. In: Cointe, P. (ed): Meta-Level Architectures and Reflection, Vol. 1616 of Lecture Notes in Computer Science, pages 22–39. Springer-Verlag (1999)

    Chapter  Google Scholar 

  12. Gowing, B., Cahill, V.: Meta-object protocols for C++: The Iguana approach. In: Proceedings of Reflection’ 96, pages 137–152. XEROX Palo Alto Research Center (1996)

    Google Scholar 

  13. Keller, R., Hölzle, U.: Binary Component Adaptation. In: Jul, E. (ed): ECOOP’98-Object-Oriented Programming, Vol. 1445 of Lecture Notes in Computer Science, pages 307–329. Springer-Verlag (1998)

    Chapter  Google Scholar 

  14. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Knudsen, L.J. (ed): ECOOP 2001-Object-Oriented Programming, Vol. 2072 of Lecture Notes in Computer Science, pages 327–353. Springer-Verlag (2001)

    Chapter  Google Scholar 

  15. Lieberherr, K., Lorenz, D., Mezini, M.: Programming with Aspectual Components. Technical report NU-CCS-99-01, College of Computer Science, Northeastern University, Boston MA (1999)

    Google Scholar 

  16. Matsuoka, S., Yonezawa, A.: Analysis of Inheritance Anomaly in Object-Oriented Concurrent Programming Languages. In: Agha, G., Wegner, P., Yonezawa, A. (eds): Research Directions in Concurrent Object-Oriented Programming, pages 107–150. MIT Press(1993)

    Google Scholar 

  17. Okamura, H., Ishikawa, Y., Tokoro, M.: AL-1/D: A Distributed Programming System with Multi-Model Reflection Framework. In: Yonezawa, A., Smith, B.C. (eds): Proceedings of the IMSA’92 Workshop on Reflection and Metalevel Architecture. Tokyo (1992)

    Google Scholar 

  18. Oliva, A., Buzato, L.: The Implementation of Guaraná on Java. Technical report IC-98-32 of Instituto de Computação, Universidade Estadual de Campinas, Brazil (1998)

    Google Scholar 

  19. Pawlak, R., Seinturier, L., Duchien, L., Florin, G.: JAC: A Flexible Solution for Aspect-Oriented Programming in Java. In: Yonezawa, A., Matsuoka, S. (eds): MetaLevel Architectures and Separation of Crosscutting Concerns, Vol. 2192 of Lecture Notes in Computer Science, pages 1–24. Springer-Verlag (1999)

    Chapter  Google Scholar 

  20. Popovici, A., Gross, T., Alonso, G.: Dynamic Homogenous AOP with PROSE. Technical report, Department of Computer Science, Federal Institute of Technology, Zurich (2001)

    Google Scholar 

  21. Redmond, B., Cahill, V.: Iguana/J: Towards a Dynamic and Efficient Reflective Architecture for Java. Presented at ECOOP’00 workshop on Reflection and Meta-Level Architectures. Cannes, 2000. (position paper) http://www.dsg.cs.tcd.ie/~redmondb/iguanaj

  22. Schäfer, T.: Supporting Meta-types in a Compiled Reflective Programming Language. PhD Thesis, Department of Computer Science, University of Dublin, Trinity College (2001)

    Google Scholar 

  23. Java Virtual Machine Debug Interface Refererence. Sun Microsystems (2000) http://java.sun.com/products/jdk/1.2/docs/guide/jvmdi/jvmdi.html.

  24. Tanter, E., Bouraqadi-Saâdani, N., Noyé, J.: Reflex-Towards an Open Reflective Extension of Java. In: Yonezawa, A., Matsuoka, S. (eds): MetaLevel Architectures and Separation of Crosscutting Concerns, Vol. 2192 of Lecture Notes in Computer Science, pages 25–43. Springer-Verlag (2001)

    Chapter  Google Scholar 

  25. Tarr, P., D’Hondt, M., Bergmans, L., Videira Lopes, C.: Workshop on Aspects and Dimensions of Concern. In: Malenfant, J., Moisant, S., Moreira, A. (eds): Object-Oriented Technology, Vol. 1964 of Lecture Notes in Computer Science, pages 203–240. Springer-Verlag (2000)

    Chapter  Google Scholar 

  26. Tarr, P., Osher, H.: Hyper/J User and Installation Manual. IBM Research (2000)

    Google Scholar 

  27. Tatsubori, M., Chiba, S., Killijian, M., Itano, K.: OpenJava: A Class-based Macro System for Java. In: Cazzola, W., Stroud, R.J., Tisato, F. (eds): Reflection and Software Engineering, Vol. 1826 of Lecture Notes in Computer Science, pages 117–133. Springer-Verlag (2000)

    Chapter  Google Scholar 

  28. Tatsubori, M., Sasaki, T., Chiba, S., Itano, K.: A Bytecode Translator for Distributed Execution of “Legacy” Java Software. In: Knudsen, L.J. (ed): ECOOP 2001-Object-Oriented Programming, Vol. 2072 of Lecture Notes in Computer Science, pages 236–255. Springer-Verlag (2001)

    Chapter  Google Scholar 

  29. Welch, I., Stroud, R.J.: Kava-Using Byte code Rewriting to add Behavioural Reflection to Java. In: proceedings of 6th USENIX Conference on Object Oriented Technologies and Systems. San Antonio, USA, January (2001)

    Google Scholar 

  30. Yellin, F.: The Java Native Code API. Sun Microsystems (1996) http://java.sun.com/docs/jit_interface.html

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Redmond, B., Cahill, V. (2002). Supporting Unanticipated Dynamic Adaptation of Application Behaviour. In: Magnusson, B. (eds) ECOOP 2002 — Object-Oriented Programming. ECOOP 2002. Lecture Notes in Computer Science, vol 2374. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47993-7_9

Download citation

  • DOI: https://doi.org/10.1007/3-540-47993-7_9

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-43759-8

  • Online ISBN: 978-3-540-47993-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics