Distributed AOP
From P2P Wiki
Contents |
Definition
Separation of crosscutting concerns in aspect modules follows a philosophy where the original software is considered as another of the program aspects. Regarding crosscutting concerns in distributed systems, these are developed using reflective architectures, distributed interception, or other middleware approaches. Generally, typical mechanisms use interceptors that support reification, and other systems provide similar capabilities through dynamic proxies. However, these solutions are complex to develop and maintain. In contrast, Aspect Oriented Programming (AOP) is an emerging alternative that presents the principle of separation of concerns and allows less interdependence between components.
Therefore, in distributed systems we can find decentralized crosscutting concerns where distributed aspects are usually executed simultaneously in multiple hosts of the network. Some key examples of such concerns are fault-tolerance, load-balancing, or synchronization.
Previous Approaches
Soares et al [1] propose the use of Java Remote Method Invocation (RMI) [1] and AspectJ [2]. They report that they use AspectJ for improving the modularity of their RMI-based programs, splitting code and remote object logic into aspects. For this reason, we considered their work a first approximation in distributed aspects.
On the other hand, Jarcler [2] is a tool which allows using a replicated object in distributed software. Also, Jarcler provides an AspectJ-like language for coding aspects. Usually, the solution for addressing this problem is middleware based on reflection, but it is difficult to use and to understand. Authors explain that AOP is more appropriate than reflection for customizing the behaviour of distributed shared data. In conclusion, Jarcler proposes replication as a good use case for distributed AOP environments. However, it is too focused on the replication problem, when a generic framework can be more adequate.
Remote Pointcut
DjCutter [3] presents a new AOP language similar to AspectJ, but in a more general scope than the previous tool. Furthermore, DjCutter’s main innovation is the remote pointcut concept. A remote pointcut is a function for identifying join points in the execution of a program running on a remote host. Remote pointcuts are similar to remote method calls, which invoke the execution of a method on a remote host. We believe that this work is a second approximation on the search of our solution, because it allows developers to code aspects modularizing crosscutting concerns without explicit network code. Nevertheless, the advice bodies in all aspects are executed in a unique host in the network, thus making this approach inappropriate for wide-area domains.
Projects
djCutter [3] : http://www.csg.is.titech.ac.jp/~muga/djcutter
JAC [4] : http://jac.objectweb.org/
AWED [5] : http://www.emn.fr/x-info/lbenavid/awed.html
Damon [6] : http://planet.urv.es/damon
ReflexD [7] : http://pleiad.dcc.uchile.cl/research/software/reflexd
DyMAC [8] : http://www.cs.kuleuven.ac.be/~bertl/
References
[1] S. Soares, E. Laureano, and P. Borba. Implementing distribution and persistence aspects with AspectJ. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'02), pages 174-190. ACM Press, 2002.
[2] M. Nishizawa and S. Chiba. Jarcler: Aspect-Oriented Middleware for Distributed Software in Java. Dept. of Math. and Comp. Sciences Research Reports C-164, Tokyo Institute of Technology, December, 2002.
[3] Nishizawa M., Chiba, S.: Remote Pointcut --- A Language Construct for Distributed AOP. Proc. of the 3rd International Conference on Aspect-Oriented Software Development (AOSD '04), Lancaster, UK. pp.7-16, 2004.
[4] Pawlak, R., Seinturier, L., Duchien, L., Florin, G., Legond-Aubry, F., and Martelli, L. 2004. JAC: an aspect-based distributed dynamic framework. Softw. Pract. Exper. 34, 12 (Oct. 2004), 1119-1148.
[5] Benavides Navarro, L. D., Südholt, M., Vanderperren, W., De Fraine, B., Suvée, D.: Ex-plicitly distributed AOP using AWED. In Proceedings of the 5th Int. ACM Conf. on Aspect-Oriented Software Development (AOSD'06), March 2006. ACM Press.
[6] Mondejar, R., Garcia, P., Pairot, C., and Skarmeta, A. F.: Damon: a decentralized aspect middleware built on top of a peer-to-peer over-lay network. In Proceedings of the 6th International Workshop of Software Engineering and Middleware (SEM’06). Portland, Oregon, November 2006)
[7] Eric Tanter and Rodolfo Toledo, A Versatile Kernel for Distributed AOP, Lecture Notes in Computer Science 4025, pp. 316-331, 2006
[8] B. Lagaisse and W. Joosen. True and Transparent Distributed Com-position of Aspect-Components. In Proceedings Middleware'06, vo-lume 4290 of Lecture Notes in Computer Science, 2006.

