This Article 
 Bibliographic References 
 Add to: 
Specification and Analysis of System Architecture Using Rapide
April 1995 (vol. 21 no. 4)
pp. 336-355
Rapide is an event-based, concurrent, object-oriented language specifically designed for prototyping system architectures. Two principle design goals are 1) to provide constructs for defining executable prototypes of architectures and 2) to adopt an execution model in which the concurrency, synchronization, dataflow, and timing properties of a prototype are explicitly represented. This paper describes the partially ordered event set (poset) execution model and outlines with examples some of the event-based features for defining communication architectures and relationships between architectures. Various features of Rapide are illustrated by excerpts from a prototype of the X/Open distributed transaction processing reference architecture.

[1] D. Katiyar,D. Luckham,, and J. Mitchell,“A type system for prototyping languages,” Proc. 21st ACM Symp. on Principles of Programming Languages, Portland, 1994.
[2] D.C. Luckham,J. Vera,D. Bryan,L. Augustin,, and F. Belz,“Partial orderings of event sets and their application toprototyping concurrent, timed systems,” J. of Systems and Software, vol. 21, no. 3, pp. 253-265, June 1993.
[3] Rapide Design Team,The Rapide-1 Architectures Reference Manual, Program Analysis and Verification Group, Comput. Syst. Lab., Stanford Univ., version 1 ed., Oct. 1994.
[4] ——,The Rapide-1 Executable Language Reference Manual, Program Analysis and Verification Group, Comput. Syst. Lab., Stanford Univ., version 1 edition, Oct. 1994.
[5] ——,The Rapide-1 Types Reference Manual, Program Analysis and Verification Group, Comput. Syst. Lab., Stanford Univ., version 1 ed., Oct. 1994.
[6] D. Bryan,“Rapide–0.2 language and tool-set overview,”Tech. Note CSL–TN–92–387, Comput. Syst. Lab., Stanford Univ., Feb. 1992.
[7] D.E. Thomas and P.R. Moorby,The Verilog Hardware Description Language. Kluwer Academic Publishers, 1991.
[8] U.S. Department of Defense,The Ada Programming Language Reference Manual, U.S. Government Printing Office, ANSI/MIL-STD-1815A-1983, Feb. 1983.
[9] M.A. Ellis and B. Stroustrup,The Annotated C++ Reference Manual.Reading, Mass.: Addison-Wesley, 1990.
[10] V.R. Pratt, "Modeling Concurrency with Partial Orders," Int. J. Parallel Programming, Vol. 15, No. 1, 1986, pp. 33-71.
[11] C. J. Fidge,“Logical time in distributed systems,”Comput., vol. 24, no. 8, pp. 28–33, Aug. 1991.
[12] F. Mattern,“Virtual time and global states of distributed systems,”inProc. Parallel and Distrib. Algorithms, M. Cosnard, Ed. New York: Elsevier Science, 1988. Also in Dep. of Comput. Sci., Univ. Kaiserslautern, Rep. SFB124P38/88.
[13] S. Meldal,S. Sankar,, and J. Vera,“Exploiting locality in maintaining potential causality,” Proc. Tenth Annual ACM Symp. on Principles of Distributed Computing, pp. 231-239,New York, Aug. 1991. Washington, D.C.: ACM Press. Also Stanford Univ. Computer Systems Laboratory Technical Report No.CSL-TR-91-466.
[14] B. A. Gennart and D. C. Luckham,“Validating discrete event simulations using event pattern mappings,”inProc. 29th Design Automation Conf. (DAC), Anaheim, CA, June 1992, pp. 414–419, IEEE Computer Society Press.
[15] X/Open Company Ltd.,Distributed Transaction Processing: Reference Model, Version 2, Guide, Nov. 1993.
[16] ——,Distributed Transaction Processing: The TX (Transaction Demarcation) Specification, Preliminary Specification, Nov. 1992.
[17] ——,Distributed Transaction Processing: The XA Specification, CAE Specification, June 1991.
[18] ——, Apex Plaza,Distributed Transaction Processing: The Peer–to–Peer Specification, Snapshot, Dec. 1992.
[19] J. Gray and A. Reuter, Transaction Processing: Concepts and Techniques, Morgan Kauffman, 1993.
[20] L. Lamport, "Time, clocks and the ordering of events in a distributed system," Comm. ACM, vol. 21, no. 7, pp. 558-565, July 1978.
[21] C. J. Fidge,“Timestamps in message-passing systems that preserve the partial ordering,”Australian Comput. Sci. Commun., vol. 10, no. 1, pp. 55–66, Feb. 1988.
[22] M. Singhal and A. Kshemkalyani,“An efficient implementation of vector clocks,”Dep. Comput. Inform. Sci., The Ohio State Univ., Tech. Rep., Oct. 1990.
[23] D. Katiyar, D. Luckham, and J. Mitchell,“Polymorphism and subtypin in interfaces,”inProc. ACM Workshop on Interface Definition Languages, Jan. 1994, pp. 22–34.
[24] J. Mitchell, S. Meldal, and N. Madhav,“An extension of standard ML modules with subtyping and inheritance,”inProc. ACM Conf. POPL 1991, Jan. 1991, ACM Press. Also in Stanford Univ. Comput. Syst. Lab., Tech. Rep. CSL–TR–91–472.
[25] Rapide Design Team,The Rapide-1 Predefined Types Reference Manual, Program Analysis and Verification Group, Comput. Syst. Lab., Stanford Univ., version 1 ed., Oct. 1994.
[26] The Object Management Group,The Common Object Request Broker: Architecture and Specification, The Object Management Group, revision 1.1 ed., Dec. 1991.
[27] D. C. Luckham, D. P. Helmb, S. Meldal, D. L. Bryan, and M. A. Haberler,“Task sequencing language for specifying distributed Ada systems: TSL–1,”inSystem Development and Ada, Proc. CRAI Workshop on Software Factories and Ada., Habermann and Montanari, Eds. New York: Springer-Verlag, Lecture Notes in Computer Science, no. 275, May 1986, pp. 249–305.
[28] D. S. Rosenblum,“Specifying concurrent systems with TSL,”IEEE Software, vol. 8, pp. 52–61, May 1991.
[29] B.A. Gennart,“Automated analysis of discrete event simulations using eventpattern mappings,” PhD thesis, Stanford Univ., Apr. 1991. Also Stanford University Computer Systems Laboratory Technical Report No.CSL-TR-91-464.
[30] B. Krieg-Br\" uckner and D. C. Luckham,“Anna: Toward a language for annotating Ada programs,”ACM SIGPLAN Notices, vol. 15, no. 11, pp. 128–138, 1980.
[31] D. C. Luckham and F. W. von Henke,“An overview of Anna, a specification language for Ada,”IEEE Software, vol. 2, no. 2, pp. 9–23, Mar. 1985.
[32] D. C. Luckham,Programming with Specifications: An Introduction to Anna, a Language for Specifying Ada Programs. New York: Springer-Verlag, 1990.
[33] J. J. Kenney,“Executable formal models of distributed transaction systems based on event processing,”Ph.D. dissertation, Stanford Univ., June 1995.
[34] IEEE,IEEE Standard VHDL Language Reference Manual, IEEE Standard 1076–1987, Mar. 1987.
[35] T. Bolognesi and E. Brinksma,“Introduction to the ISO specification language LOTOS,”inThe Formal description Technique LOTOS, van Eijket al., Eds. Amsterdam, The Netherlands: North-Holland, 1989, pp. 23–73.
[36] G. Berry, P. Couronne, and G. Gonthier,“Synchronous programming of reactive systems: an introduction to Esterel,”INRIA, Paris, Tech. Rep. 647, Mar. 1987.
[37] R. Milner, M. Tofte, and R. Harper, The Definition of Standard ML. MIT Press, 1990.
[38] D. C. Luckham, D. P. Helmb, S. Meldal, D. L. Bryan, and M. A. Haberler,“Task sequencing language for specifying distributed Ada systems: TSL-1,”inProc. PARLE: Conf. Parallel Architectures and Languages Europe., Lecture Notes in Computer Science. Number 259, Volume II: Parallel Languages, Eindhoven, The Netherlands, June 15–19, 1987, pp. 444–463.
[39] C.A.R. Hoare,“Communicating sequential processes,” Comm. of the ACM, vol. 21, no. 8, pp. 666-677, Aug. 1978.
[40] D. Garlan and M. Shaw,An Introduction to Software Architecture. New York: World Scientific, 1993, vol. I.
[41] D. E. Perry and A. L. Wolf,“Foundations for the study of software architecture,”inACM SIGSOFT Software Eng. Notes, Oct. 1992, vol. 17, no. 4, pp. 40–52.
[42] J. Kramer, J. Magee, and K. Ng,“Graphical configuration programming,”IEEE Comput., vol. 22, no. 10, pp. 53–63, Oct. 1989.
[43] M. Moriconi and X. Qian, "Correctness and Composition of Software Architectures," ACM SIGSOFT '94, 1994.

Index Terms:
Rapide, architecture definition languages, partially ordered event sets, architecture, prototyping, concurrency, simulation, formal constraints, constraint-based specification, event patterns, causality
David C. Luckham, John J. Kenney, Larry M. Augustin, James Vera, Walter Mann, Walter Mann, Doug Bryan, Walter Mann, "Specification and Analysis of System Architecture Using Rapide," IEEE Transactions on Software Engineering, vol. 21, no. 4, pp. 336-355, April 1995, doi:10.1109/32.385971
Usage of this product signifies your acceptance of the Terms of Use.