Coordination in a Reflective Architecture Description Language
Software Architecture studies the structure of software systems, as described by Architecture Description Languages (Adls). When these capture structures of change, they are comparable to Coordination Languages. Previous work suggests that the combination with Reflection concepts renders a general framework for the description of such evolving structures. This paper describes a reflective Adl named PiLar designed to provide such a framework. It consists of a structural part, which describes the static skeleton, and a dynamic part, which defines patterns of change. The major novelty is the reification relationship, which structures a description in several meta-layers, such that the architecture is able to reason and act upon itself. The paper includes a complete PiLar example, to show the language’s use and some of its most relevant features. It describes a Tuple Space model, illustrating the analogy with existing Coordination Models. We conclude by emphasizing PiLar’s generality and applicability.
KeywordsSoftware Architecture Coordination Model Architecture Description Architecture Description Language Dynamic Architecture
Unable to display preview. Download preview PDF.
- 1.Robert Allen. A Formal Approach to Software Architecture. PhD thesis, School of Computer Science, Carnegie Mellon University, May 1997. Technical report CMU-CS-97-144.Google Scholar
- 2.Farhad Arbab. The IWIM Model for Coordination of Concurrent Activities. In Paolo Ciancarini and Chris Hankin, editors, Coordination Languages and Models, volume 1061 of Lecture Notes in Computer Science, pages 24–56, Cesena, Italia, April 1996. Springer Verlag.Google Scholar
- 3.Marco Bernardo, Paolo Ciancarini, and Lorenzo Donatiello. Detecting Architectural Mismatches in Process Algebraic Descriptions of Software Systems. In Second Working IEEE/IFIP Conference on Software Architecture, August 2001. IEEE Press.Google Scholar
- 4.Carlos Canal, Ernesto Pimentel, and José María Troya. Specification and Refinement of Dynamic Software Architectures. In Software Architecture, pages 107–126. Kluwer, 1999.Google Scholar
- 6.Walter Cazzola, Andrea Savigni, Andrea Sosio, and Francesco Tisato. Architectural Reflection: Bridging the Gap Between a Running System and its Architectural Specification. In 6th Reengineering Forum (REF’98), pages 12–1–12–6. IEEE, March 1998.Google Scholar
- 7.Carlos E. Cuesta, Pablo de la Fuente, Manuel Barrio-Solórzano, and Encarnación Beato. Dynamic Coordination Architecture through the use of Reflection. In 16th ACM Symposium on Applied Computing (SAC2001), pages 134–140, March 2001. ACM Press.Google Scholar
- 9.Pattie Maes. Concepts and Experiments in Computational Reflection. In Norman Meyrowitz, editor, OOPSLA’87 Conference Proceedings, pages 147–155. ACM Press, December 1987.Google Scholar
- 11.Robin Milner. Communication and Concurrency. Prentice-Hall, 1989.Google Scholar
- 12.Robin Milner. Communicating and Mobile Systems: the Pi-Calculus. CUP, June 1999.Google Scholar