A Classification and Comparison Framework for Software Architecture Description Languages
IEEE Transactions on Software Engineering
On the criteria to be used in decomposing systems into modules
Communications of the ACM
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
Implementing distribution and persistence aspects with aspectJ
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Chord: a scalable peer-to-peer lookup protocol for internet applications
IEEE/ACM Transactions on Networking (TON)
Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems
Middleware '01 Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms Heidelberg
Meta-Level Architecture Support for distributed Objects
IWOOOS '95 Proceedings of the 4th International Workshop on Object-Orientation in Operating Systems
Remote pointcut: a language construct for distributed AOP
Proceedings of the 3rd international conference on Aspect-oriented software development
JAC: an aspect-based distributed dynamic framework
Software—Practice & Experience
SEM '05 Proceedings of the 5th international workshop on Software engineering and middleware
Modular Software Design with Crosscutting Interfaces
IEEE Software
Explicitly distributed AOP using AWED
Proceedings of the 5th international conference on Aspect-oriented software development
Software—Practice & Experience
Distributed Systems: Principles and Paradigms (2nd Edition)
Distributed Systems: Principles and Paradigms (2nd Edition)
Damon: a decentralized aspect middleware built on top of a peer-to-peer overlay network
Proceedings of the 6th international workshop on Software engineering and middleware
Performance evaluation of replication strategies in DHTs under churn
Proceedings of the 6th international conference on Mobile and ubiquitous multimedia
True and transparent distributed composition of aspect-components
Proceedings of the ACM/IFIP/USENIX 2006 International Conference on Middleware
Building a collaborative peer-to-peer wiki system on a structured overlay
Computer Networks: The International Journal of Computer and Telecommunications Networking
A versatile kernel for distributed AOP
DAIS'06 Proceedings of the 6th IFIP WG 6.1 international conference on Distributed Applications and Interoperable Systems
Hi-index | 0.00 |
Context: The development of distributed applications in large-scale environments has always been a complex task. In order to guarantee non-functional properties like scalability or availability, developers are usually faced with the same problems over and over again. These problems can be separated in distributed concerns, as for example, distribution, load-balancing or replication, just to name a few. Nevertheless, none of the current solutions in adaptive middleware area, like Aspect-Oriented Programming (AOP), is capable of implementing these distributed concerns transparently. Objective: In this article, we present a distributed AOP middleware for large-scale development, called Damon. Its main goal is to implement true distributed aspects, which enables the use of distributed concerns in applications that were not specifically designed for distributed or large-scale scenarios. Method: Our middleware comprises two main layers: a distributed composition model and a scalable deployment platform. The distributed composition model envisages separation of distributed aspects, taking the necessary features from component models, like distribution facilities and connectors, and from computational reflection, like introspection and meta-levels. This recursive and fully distributed model provides its own Architecture Description Language (ADL), and thus allows low dependency and high cohesion among distributed aspects. Additionally, our model is built on top of a deployment platform where distributed aspects are disseminated and activated in individual or grouped hosts. This platform benefits from peer-to-peer and dynamic AOP substrates to implement its services in a decentralized, decoupled, and efficient way. Results: Therefore, our middleware solution reduces the complexity of distributed application development, managing separated functionalities, and enabling necessary services like transparent reconfiguration and deployment at runtime. Finally, we have implemented a functional prototype and we conducted several experiments using the PlanetLab testbed. Conclusion: Our distributed AOP approach fulfills the large-scale scenarios requirements, and represents a solid building block for future distributed transparent infrastructures.