The different software modules (e.g., components) that constitute a system are not isolated entities. In fact, they need to interact according to a certain coordination protocol in order to achieve a common goal. This coordination protocol crosscuts the different software modules, hindering their reusability, independence, maintenance and evolution, but these drawbacks can be solved by separating coordination from computations and encapsulating coordination outside the components that perform computations. Aspect-Oriented Programming has been demonstrated to be an interesting technology for handling certain crosscutting concerns, such as coordination. This paper explains how coordination protocols can be implemented outside computational modules using general purpose aspect-oriented programming languages. © 2007 Elsevier B.V. All rights reserved.
Fuentes, L., & Sánchez, P. (2007). Aspect-Oriented Coordination. Electronic Notes in Theoretical Computer Science, 189, 87–103. https://doi.org/10.1016/j.entcs.2007.05.049