Reflection as the Basis for Developing a Dynamic SoC Persistence System

Persistence is a common application requirement that is usually taken into account when the program is being developed. Different emerging techniques following the Separation of Concerns principle are focused on detaching crosscutting concerns, like persistence, from the main application code. Although this is a profitable principle, existing tools lack two main features: runtime adaptability and language independence. This paper shows how computational reflection can be employed as a suitable technique to overcome the two previous limitations, offering dynamic adaptation of persistence features in a language independent way and achieving transparent separation of the application’s persistence concern.

[1]  Urs Hölzle,et al.  A third-generation SELF implementation: reconciling responsiveness with performance , 1994, OOPSLA '94.

[2]  Cristina V. Lopes,et al.  Aspect-Oriented Programming Workshop Report , 1997, ECOOP Workshops.

[3]  Elisa Bertino,et al.  Index Organizations for Object-Oriented Database Systems , 1995, IEEE Trans. Knowl. Data Eng..

[4]  A. Polze,et al.  Aspect-Oriented Programming with C # and , 2002 .

[5]  G. vanRossum Python reference manual , 1995 .

[6]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[7]  Laurence Duchien,et al.  JAC : A Flexible and Efficient Framework for AOP in Java , 2001 .

[8]  Yoshikazu Yamamoto,et al.  Extending UML for Modelling Reflective Software Componentsa , 1999, UML.

[9]  Pattie Maes,et al.  Computational reflection , 1987, The Knowledge Engineering Review.

[10]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[11]  Malcolm P. Atkinson,et al.  An orthogonally persistent Java , 1996, SGMD.

[12]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

[13]  Juan Manuel Cueva Lovelle,et al.  Non-restrictive computational reflection , 2003, Comput. Stand. Interfaces.

[14]  Andreas Rausch,et al.  Journal of Object Technology , 2002 .

[15]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

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

[17]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[18]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[19]  Kai Bollert On Weaving Aspects , 1999 .

[20]  Juan Manuel Cueva Lovelle,et al.  Implementing a real computational-environment jump in order to develop a runtime-adaptable reflective platform , 2002, SIGP.

[21]  Elisa Bertino,et al.  Indexing Techniques for Queries on Nested Objects , 1989, IEEE Trans. Knowl. Data Eng..

[22]  Jörg Kienzle,et al.  AOP: Does It Make Sense? The Case of Concurrency and Failures , 2002, ECOOP.

[23]  Andreas Polze,et al.  Aspect-oriented programming with C# and .NET , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

[24]  J. M. Troya,et al.  Run-time coordination of components : design patterns vs . Component & aspect based platforms ? , 2001 .

[25]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[26]  Awais Rashid,et al.  On to Aspect Persistence , 2000, GCSE.