Gapf
Mohammed Al-Mansari, Stefan Hanenberg, Rainer Unland
Institute for Computer Science and Business Information Systems (ICB) University of Duisburg-Essen, Germany
{ Mohammed.Al-Mansari, Stefan.Hanenberg, Rainer.Unland }@icb.uni-due.de ABSTRACT
In order to increase the productivity of the application developers, it is desirable to remove the persistence concern from their responsibility. For this purpose, the orthogonal persistence concept was introduced along with three principles: type orthogonality, persistence independence and transitivity. From an aspect-oriented point of view these principles have to be considered from the perspective of obliviousness. There is already a number of aspect-oriented persistence solutions where it is not that clear whether they handle the previous principles really in an oblivious way. In this paper, we discuss to what extent these aspect-oriented solutions really make the developer oblivious of the persistence concern. As a conclusion, we find that these systems in general defeat the orthogonal persistence and consequently, using them distracts developers from concentrating on the application logic. In order to increase the obliviousness of the persistence concern we propose a combination of two new concepts: persisting containers and path expression pointcuts. [12]), the obliviousness characteristic [14] is synonymous to the term orthogonality. Applying it to the domain of persistence implies that the application code does not have to be prepared in order to introduce persistence. Until now, the aspect-oriented community has made a significant effort to apply AOP in providing orthogonal object persistence (see e.g. [25, 27, 28]). Accordingly, it is crucial to assess whether these proposals comply with the principle of orthogonal persistence, i.e. whether they do not require to prepare code in order to make objects persistent. This paper critically discusses the extent to which