Coordination as an Architectural Aspect

Modularization is a traditional consequence of the Principle of Separate of Concerns, which states that different abstractions should be dealt with in separate entities. Interactions between these entities define compositional structures, which are studied by Software Architecture. Recent research has revisited the original Principle, suggesting a different modularization strategy. Along with classic components, this approach explicitly considers additional concerns, defining modules which crosscut traditional barriers. The best known example is Aspect Orientation. This strategy defines a novel kind of interactions and compositional structures, which are of particular interest to Software Architecture. Moreover, several of those crosscutting concerns are best described at the architecture level. Coordination is an obvious example of such an architectural aspect: a higher-order interaction abstraction which could extend its influence to the whole system. In this paper, we propose a way to integrate these concepts into an existing language, using the notion of superimposition as a foundation. The chosen target is PiLar, a reflective, process-algebraic Adl. The concept of architectural fragment or chevron is introduced as an architecture-level aspect. To show the applicability of these ideas, we describe a case study consisting on the weaving of a coordination architectural aspect, encapsulating the Paxos distributed consensus algorithm, and a simple pipeline-style architecture, and obtaining a coordinated version of the initial system.

[1]  Shmuel Katz,et al.  A calculus of superimpositions for distributed systems , 2002, AOSD '02.

[2]  Leslie Lamport,et al.  Consensus on transaction commit , 2004, TODS.

[3]  Shmuel Katz,et al.  A superimposition control construct for distributed systems , 1993, TOPL.

[4]  Harold Ossher,et al.  Asymmetrically vs. Symmetrically Organized Paradigms for Software Composition , 2002 .

[5]  James H. Andrews,et al.  Process-Algebraic Foundations of Aspect-Oriented Programming , 2001, Reflection.

[6]  Leslie Lamport,et al.  Paxos Made Simple , 2001 .

[7]  Pablo de la Fuente,et al.  Reflection-Based, Aspect-Oriented Software Architecture , 2004, EWSA.

[8]  Pablo de la Fuente,et al.  Coordination in a Reflective Architecture Description Language , 2002, COORDINATION.

[9]  Shmuel Katz,et al.  Architectural views of aspects , 2003, AOSD '03.

[10]  Pertti Kellomäki,et al.  A Formal Basis for Aspect-Oriented Specification with Superposition , 2002 .

[11]  Colin Stirling,et al.  Modal and temporal logics , 1993, LICS 1993.

[12]  Leslie Lamport,et al.  "Sometime" is sometimes "not never": on the temporal logic of programs , 1980, POPL '80.

[13]  Pattie Maes Concepts and experiments in computational reflection , 1987, OOPSLA 1987.

[14]  Nissim Francez,et al.  A compositional approach to superimposition , 1988, POPL '88.

[15]  Leslie Lamport,et al.  The part-time parliament , 1998, TOCS.

[16]  Pablo de la Fuente,et al.  Introducing Reflection in Architecture Description Languages , 2002, WICSA.

[17]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.