Coordination in a Reflective Architecture Description Language
2002, Lecture Notes in Computer Science
Abstract
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. This work has been partially sponsored by the Spanish Comission of Science and Technology through the CICYT Project TEL99-0335-C04-04, and by the Autonomous Government of Castilla and León through the Project JCYL VA61/00B.
References (12)
- 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.
- Farhad Arbab. The IWIM Model for Coordination of Concurrent Activities. In Paolo Ciancar- ini 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.
- Marco Bernardo, Paolo Ciancarini, and Lorenzo Donatiello. Detecting Architectural Mis- matches in Process Algebraic Descriptions of Software Systems. In Second Working IEEE/IFIP Conference on Software Architecture, August 2001. IEEE Press.
- Carlos Canal, Ernesto Pimentel, and José María Troya. Specification and Refinement of Dynamic Software Architectures. In Software Architecture, pages 107-126. Kluwer, 1999.
- Nicholas Carriero and David Gelernter. How to Write Parallel Programs: a Guide to the Perplexed. ACM Computing Surveys, 21(3):323-357, 1986.
- Walter Cazzola, Andrea Savigni, Andrea Sosio, and Francesco Tisato. Architectural Reflec- tion: 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.
- 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.
- David C. Luckham and James Vera. An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering, 21(9):717-734, September 1995.
- Pattie Maes. Concepts and Experiments in Computational Reflection. In Norman Meyrowitz, editor, OOPSLA'87 Conference Proceedings, pages 147-155. ACM Press, December 1987.
- Jeff Magee and Jeff Kramer. Dynamic Structure in Software Architectures. Software Engi- neering Notes, 21(6):3-14, November 1996.
- Robin Milner. Communication and Concurrency. Prentice-Hall, 1989.
- Robin Milner. Communicating and Mobile Systems: the Pi-Calculus. CUP, June 1999.