Skip to main content

A Dynamic Aspect Weaver over the .NET Platform

  • Conference paper

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

Abstract

Since Aspect Oriented Software Development (AOSD) has appeared, a set of tools have been developed that enable its use at software development. On many occasions, applications must be capable of adapting to runtime emerging requirements. This is possible through the use of dynamic weaving tools. However, these tools are subject to limitations such as language dependency or a limited set of join points, which limit their utility.

This paper shows the research we are carrying out in the dynamic weaving field. We apply computational reflection at the virtual machine computational level in order to achieve dynamic weaving regardless of the language. We have selected the .NET system as the platform to develop our dynamic weaver, making possible the dynamic adaptation of platform-independent applications.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • 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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Parnas, D.: On the Criteria to be Used in Decomposing Systems into Modules. Communications of the ACM 15(12) (1972)

    Google Scholar 

  2. Hürsch, W.L., Lopes, C.V.: Separation of Concerns, Technical Report UN-CCS-95-03, Northeastern University, Boston, USA (1995)

    Google Scholar 

  3. Tarr, P., Ossher, H., Harrison, W., Sutton, S.N.: Degrees of separation: Multi-Dimensional Separation of Concerns. In: Proceedings of the 1999 International Conference on Software Engineering (1999)

    Google Scholar 

  4. Bergmans, L.: Composing Concurrent Objects: Applying Composition Filters for the Development and Reuse of Concurrent Object-Oriented Programs. Ph. D. Dissertation. University of Twente (1994)

    Google Scholar 

  5. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.M., Irwin, J.: Aspect Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  6. Matthijs, F., Joosen, W., Vanhaute, B., Robben, B., Verbaten, P.: Aspects should not die. In: European Conference on Object-Oriented Programming (ECOOP) Workshop on Aspect-Oriented Programming (1997)

    Google Scholar 

  7. Popovici, A., Gross, T., Alonso, G.: Dynamic Homogenous AOP with PROSE, Technical Report, Department of Computer Science, ETH Zürich, Switzerland (2001)

    Google Scholar 

  8. Pinto, M., Amor, M., Fuentes, L., Troya, J.M.: Run-Time Coordination of Components: Design Patterns vs. Component & Aspect based Platforms. In: European Conference on Object-Oriented Programming (ECOOP) Workshop on Advanced Separation of Concerns (2001)

    Google Scholar 

  9. Pawlack, R., Seinturier, L., Duchien, L., Florin, G.: Jac: A flexible and efficient framework for aop in java. In: Reflection 2001 (September 2001)

    Google Scholar 

  10. Böllert, K.: On Weaving Aspects. In: European Conference on Object-Oriented Programming (ECOOP) Workshop on Aspect Oriented Programming (1999)

    Google Scholar 

  11. Lam, J.: CLAW, Cross-Language Load-Time Aspect Weaving on Microsoft’s Common Language Runtime. In: AOSD 2002 conference (2002), http://www.iunknown.com

  12. Ortin, F., Cueva, J.M.: Building a Completely Adaptable Reflective System. In: European Conference on Object Oriented Programming ECOOP 2001, Workshop on Adaptive Object- Models and Metamodeling Techniques, Budapest, Hungary (June 2001)

    Google Scholar 

  13. ECMA. Standard ECMA-335: Common language infrastructure (CLI), Available from http://www.ecma-international.org/publications/standards/ECMA-335.HTM

  14. The Free Online Dictionary. spaghetti code (1997), http://www.foldoc.org

  15. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: Getting Started with AspectJ. Communications of the ACM (October 2001)

    Google Scholar 

  16. AspectJ homepage, http://eclipse.org/aspectj

  17. O’Brien, L.: The First Aspect-Oriented Compiler, Software Development Magazine (September 2001)

    Google Scholar 

  18. Weave.NET: Language-Independent Aspect-Oriented Programming. Distributed System Group at Department of Computer Science, Trinity College Dublin, http://www.dsg.cs.tcd.ie/index.php?category_id=194

  19. Schult, W., Polze, A.: Aspect-Oriented Programming with C# and.NET. In: Proceedings of International Symposium on Object-oriented Real-time distributed Computing (ISORC), Crystal City, VA, USA, vol. 2002, pp. 241–248. April 29 - May 1 (2002)

    Google Scholar 

  20. Schult, W., Polze, A.: Dynamic Aspect-Weaving with.NET. In: Workshop zur Beherrschung nicht-funktionaler Eigenschaften in Betriebssystemen und Verteilten Systemen, TU Berlin, Germany, November 7-8 (2002)

    Google Scholar 

  21. Schult, W., Polze, A.: Speed vs. Memory Usage - An Approach to Deal with Contrary Aspects. In: The Second AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS) at the International Conference on Aspect-Oriented Software Development, Boston, Massachusetts, March 17-21 (2003)

    Google Scholar 

  22. Dechow, D.: An Aspect-Oriented Infrastructure for a Typed, Stack-based, Intermediate Assembly Language. In: The Doctoral Symposium at Object-Oriented Programming Languages, Systems and Applications (OOPSLA) (2002)

    Google Scholar 

  23. Zinky, J.A., Bakken, D.E., Schantz, R.E.: Architectural Support for Quality of Service for CORBA Objects. Theory and Practice of Object Systems 3(1) (1997)

    Google Scholar 

  24. Ségura-Devillechaise, M., Menaud, J.-M., Muller, G., Lawall, J.L.: Web cache prefetching as an aspect: towards a dynamic-weaving based solution. In: AOSD 2003 Proceedings, pp. 110–119 (2003)

    Google Scholar 

  25. Maes, P.: Computational Reflection. PhD. Thesis, Laboratory for Artificial Intelligence, Vrije Universiteit Brussel, Belgium (1987)

    Google Scholar 

  26. Ortin, F., Cueva, J.M.: Non-Restrictive Computational Reflection. Elsevier Computer Software & Interfaces 25(3), 241–251 (2003)

    Google Scholar 

  27. Ortin, F., Cueva, J.M.: Implementing a real computational-environment jump in order to develop a runtime-adaptable reflective platform, ACM SIGPLAN Notices, August 2002, vol. 37(8) (2002)

    Google Scholar 

  28. Kleinöder, J., Golm, M.: MetaJava: An Efficient Run-Time Meta Architecture for JavaTM In: European Conference on Object-Oriented Programming (ECOOP) Workshop on Object Orientation in Operating Systems (1996)

    Google Scholar 

  29. Chiba, S., Michiaki, T.: A Yet Another java.lang.Class. In: European Conference on Object-Oriented Programming (ECOOP) Workshop on Reflective Object Oriented Programming and Systems (1998)

    Google Scholar 

  30. Kiczales, G., Rivieres, J., Bobrow, D.G.: The Art of Metaobject Protocol. MIT Press, Cambridge (1992)

    Google Scholar 

  31. Baker, J., Hsieh, W.: Runtime aspect weaving through metaprogramming. In: AOSD 2002 Proceedings, pp. 86–95 (2002)

    Google Scholar 

  32. Diehl, S., Hartel, P., Sestoft, P.: Abstract Machines for Programming Language Implementation. Elsevier Future Generation Computer Systems 16(7) (2000)

    Google Scholar 

  33. Meijer, K., Gough, J.: Technical Overview of the Common Language Runtime (2001), Available online at http://docs.msdnaa.net/ark/Webfiles/whitepapers.htm

  34. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston (1995)

    Google Scholar 

  35. Dmitriev, M.: Application of the HotSwap Technology to Advanced Profiling. In: ECOOP 2002 International Conference (2002)

    Google Scholar 

  36. Gosling, J., Joy, B., Steele, G.: The Java Language Specification. Addison-Wesley, Reading (1996)

    MATH  Google Scholar 

  37. Rossum, G.: Python Reference Manual. In: Drake Jr., F.L. (ed.) Relesase 2.1 (2001)

    Google Scholar 

  38. Archer, T.: Inside C#. Microsoft Press, Redmond (2001)

    Google Scholar 

  39. Hölzle, U., Ungar, D.: A Third-Generation SELF Implementation: Reconciling Responsiveness with Performance. In: Proceedings of the Object-Oriented Programming Languages, Systems and Applications (OOPSLA) Conference (1994)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Vinuesa, L., Ortin, F. (2004). A Dynamic Aspect Weaver over the .NET Platform. In: Hicks, D.L. (eds) Metainformatics. MIS 2003. Lecture Notes in Computer Science, vol 3002. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24647-3_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-24647-3_17

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22010-7

  • Online ISBN: 978-3-540-24647-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics