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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Parnas, D.: On the Criteria to be Used in Decomposing Systems into Modules. Communications of the ACM 15(12) (1972)
Hürsch, W.L., Lopes, C.V.: Separation of Concerns, Technical Report UN-CCS-95-03, Northeastern University, Boston, USA (1995)
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)
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)
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)
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)
Popovici, A., Gross, T., Alonso, G.: Dynamic Homogenous AOP with PROSE, Technical Report, Department of Computer Science, ETH Zürich, Switzerland (2001)
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)
Pawlack, R., Seinturier, L., Duchien, L., Florin, G.: Jac: A flexible and efficient framework for aop in java. In: Reflection 2001 (September 2001)
Böllert, K.: On Weaving Aspects. In: European Conference on Object-Oriented Programming (ECOOP) Workshop on Aspect Oriented Programming (1999)
Lam, J.: CLAW, Cross-Language Load-Time Aspect Weaving on Microsoft’s Common Language Runtime. In: AOSD 2002 conference (2002), http://www.iunknown.com
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)
ECMA. Standard ECMA-335: Common language infrastructure (CLI), Available from http://www.ecma-international.org/publications/standards/ECMA-335.HTM
The Free Online Dictionary. spaghetti code (1997), http://www.foldoc.org
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: Getting Started with AspectJ. Communications of the ACM (October 2001)
AspectJ homepage, http://eclipse.org/aspectj
O’Brien, L.: The First Aspect-Oriented Compiler, Software Development Magazine (September 2001)
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
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)
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)
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)
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)
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)
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)
Maes, P.: Computational Reflection. PhD. Thesis, Laboratory for Artificial Intelligence, Vrije Universiteit Brussel, Belgium (1987)
Ortin, F., Cueva, J.M.: Non-Restrictive Computational Reflection. Elsevier Computer Software & Interfaces 25(3), 241–251 (2003)
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)
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)
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)
Kiczales, G., Rivieres, J., Bobrow, D.G.: The Art of Metaobject Protocol. MIT Press, Cambridge (1992)
Baker, J., Hsieh, W.: Runtime aspect weaving through metaprogramming. In: AOSD 2002 Proceedings, pp. 86–95 (2002)
Diehl, S., Hartel, P., Sestoft, P.: Abstract Machines for Programming Language Implementation. Elsevier Future Generation Computer Systems 16(7) (2000)
Meijer, K., Gough, J.: Technical Overview of the Common Language Runtime (2001), Available online at http://docs.msdnaa.net/ark/Webfiles/whitepapers.htm
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston (1995)
Dmitriev, M.: Application of the HotSwap Technology to Advanced Profiling. In: ECOOP 2002 International Conference (2002)
Gosling, J., Joy, B., Steele, G.: The Java Language Specification. Addison-Wesley, Reading (1996)
Rossum, G.: Python Reference Manual. In: Drake Jr., F.L. (ed.) Relesase 2.1 (2001)
Archer, T.: Inside C#. Microsoft Press, Redmond (2001)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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