Weaving Crosscutting Concerns into Inter-process Communications (IPC) in AspectJ

Implementing crosscutting concerns for messagebased inter-process communications (IPC) are difficult, even using aspect-oriented programming languages (AOPL) such as AspectJ. Many of these challenges are because the context of communication-related crosscutting concerns is typically a conversation consisting of message sends and receives. Other challenges stem from the wide variety of IPC mechanisms, their inherent characteristics, and the many ways in which they can be implemented, even using a common communication framework. Additionally, current AOPL do not provide pointcuts for weaving of advice into high-level IPC abstractions like conversations. This paper describes an extension to AspectJ, called CommJ, with which developers can implement communication-related concerns in cohesive and loosely coupled aspects. Keywords-modularity; aspect-oriented programming (AOPL); crosscutting concerns; AspectJ; software reuse and maintenance.

[1]  Shigeru Chiba,et al.  Load-Time Structural Reflection in Java , 2000, ECOOP.

[2]  Bedir Tekinerdogan,et al.  Composing Software from Multiple Concerns : Composability and Composition Anomalies , 2000 .

[3]  P.G. Bridges,et al.  A Configurable and Extensible Transport Protocol , 2007, IEEE/ACM Transactions on Networking.

[4]  George Coulouris,et al.  Distributed systems - concepts and design , 1988 .

[5]  Sérgio Soares,et al.  Implementing distribution and persistence aspects with aspectJ , 2002, OOPSLA '02.

[6]  S. Chiba,et al.  Remote pointcut: a language construct for distributed AOP , 2004, AOSD '04.

[7]  Muga Nishizawa,et al.  Jarcler : Aspect-Oriented Middleware for Distributed Software in Java , 2002 .

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

[9]  Gary T. Leavens,et al.  Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy , 2003 .

[10]  Andreas Ludwig,et al.  Aspect-Oriented Configuration and Adaptation of Component Communication , 2001, GCSE.

[11]  Luís E. T. Rodrigues,et al.  Separating replication from distributed communication: problems and solutions , 2001, Proceedings 21st International Conference on Distributed Computing Systems Workshops.

[12]  Gregor Kiczales,et al.  Can AOP Support Extensibility in Client-Server Architectures? , 2001 .

[13]  Mehmet Aksit,et al.  Composing Software from Multiple Concerns: A Model and Composition Anomalies , 2000 .

[14]  João Luís Sobral,et al.  Reusable aspect-oriented implementations of concurrency patterns and mechanisms , 2006, AOSD.

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

[16]  Luis Daniel Benavides Navarro,et al.  Explicitly distributed AOP using AWED , 2006, AOSD '06.

[17]  Gregor Kiczales,et al.  D: A Language Framework for Distributed Programming , 1997 .

[18]  Robert D. Tennent,et al.  The denotational semantics of programming languages , 1976, CACM.

[19]  Eitan Farchi,et al.  Concurrent bug patterns and how to test them , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[20]  Marco Tulio Valente,et al.  An Aspect-Oriented Communication Middleware System , 2005, OTM Conferences.