Abstract
There is a real need for clear and sound design specifications of distributed systems at the architectural level. This is the level of the design which deals with the high-level organisation of computational elements and the interactions between those elements. The paper presents the Darwin notation for specifying this high-level organisation. Darwin is in essence a declarative binding language which can be used to define hierarchic compositions of interconnected components. Distribution is dealt with orthogonally to system structuring. The language supports the specification of both static structures and dynamic structures which may evolve during execution. The central abstractions managed by Darwin are components and services. Services are the means by which components interact.
In addition to its use in specifying the architecture of a distributed system, Darwin has an operational semantics for the elaboration of specifications such that they may be used at runtime to direct the construction of the desired system. The paper describes the operational semantics of Darwin in terms of the π-calculus, Milner's calculus of mobile processes. The correspondence between the treatment of names in the π-calculus and the management of services in Darwin leads to an elegant and concise π-calculus model of Darwin's operational semantics. The model is used to argue the correctness of the Darwin elaboration process. The overall objective is to provide a soundly based notation for specifying and constructing distributed software architectures.
The authors would like to acknowledge discussions with our colleagues in the Distributed Software Engineering Section Group during the formulation of these ideas. We gratefully acknowledge the DTI (Grant Ref: IED 410/36/2) and the EPSRC (Grant Ref: GR/J52693) for their financial support.
Preview
Unable to display preview. Download preview PDF.
References
D. Garlan and M Shaw, An Introduction to Software Architecture, in Advances in Software Engineering and Knowledge Engineering, Vol. 1, ed. Ambriola and Tortora, World Scientific Publishing Co., 1993.
D.E. Perry and A.L. Wolf, Foundations for the study of Software Architectures, ACM SIGSOFT, Software Engineering Notes, 17 (4), 1992, pp 40–52.
D. Garlan and D. Perry, Software Architecture: Practice, Potential and Pitfalls (Panel Introduction), Proc. of 16th Intl. Conf. on Software Engineering, S orrento, May 1994.
J. Magee, J. Kramer, and M. Sloman, Constructing Distributed Systems in Conic, IEEE Transactions on Software Engineering, SE-15 (6), 1989.
J. Kramer, J. Magee, M. Sloman and N. Dulay, Configuring Object-Based Distributed Programs in Rex, IEE Software Engineering Journal, Vol. 7, 2, March 1992, pp139–149.
J. Magee, N. Dulay and J. Kramer, Structuring Parallel and Distributed Programs, IEE Software Engineering Journal, Vol. 8, No. 2, March 1993, pp73–82.
J.M. Purtilo, The POLYLITH Software Bus, ACM Transactions on Programming Languages, 16(1), January 1994, pp 151–174.
M. Barbacci, C. Weinstock, D. Doubleday, M. Gardner and R. Lichota, Durra: a structure description language for developing distributed applications, IEE Software Engineering Journal, Vol. 8, No. 2, March 1993, pp83–94.
H. Graves, Lockheed Environment for Automatic Programming, Proc. of KBSE 91, 6th IEEE Knowledge Based Software Engineering Conference, 1991, pp 68–76.
J.Magee, N. Dulay and J. Kramer, Regis: A Constructive Development Environment for Distributed Programs, Distributed Systems Engineering Journal, to appear.
S. Crane, N. Dulay, H. Fosså, J. Kramer, J. Magee, M. Sloman and K. Twidle, Configuration Management for Distributed Systems, to be presented at ISINM 95.
Ansaware 4.1: Application Programming inAnsaware, Document RM.102.02, Architecture Projects Management Agency, Poseidon House, Cambridge Feb. 1993.
R. Milner, J. Parrow, and D.Walker, A calculus of mobile processes, Parts I and II, Journal of Information and Computation, Vol. 100, pp 1–40 and pp 41–77, 1992.
K. Ng, J. Kramer, J. Magee and N. Dulay, The Software Architect's Assistant — A Visual Environment for Distributed Programming, HICSS-28, January 1995.
R. Milner, The polyadic π-calculus: a tutorial, in Logic and Algebra of Specification, ed. F.L. Bauer, W. Brauer and H. Schwichttenberg, Springer Verlag, 1993, pp203–246.
S. Eisenbach and R. Paterson, π-Calculus Semantics for the Concurrent Configuration Language Darwin, HICSS-26, January 1993.
A. Harter and A. Hopper, A Distributed Location System for the Active Office, IEEE Network, Jan./Feb. 1994, pp. 62–70.
R. Allan and D. Garlan, Formalizing Architectural Connection, Proc. of 16th International Conference on Software Engineering, Sorrento, May 1994.
M. Radestock and S. Eisenbach, What Do You Get From a π-calculus Semantics?, PARLE 94, Springer-Verlag, LNCS No. 817, pp635–647, 1994.
G. Abowd, R. Allen and D. Garlan, Using style to give meaning to software architecture, In Proceedings of the SIGSOFT'93: Foundations of Software Engineering, Software Engineering Notes 118(3), pp.9–20, ACM Press, Dec. 1993.
M.D. Rice and S.B. Seidman, A Formal Model for Module Interconnection Languages, IEEE Transactions on Software Engineering, 20 (1), 1994, 88–101.
J.M. Spivey, The Z Notation, a Reference Manual, Prentice Hall, Englewood Cliffs, N.J., 1989.
R. Milner, Communication and Concurrency, Prentice-Hall, Englewood Cliffs, N.J., 1989.
C.A.R. Hoare, Communicating sequential processes, Prentice-Hall, Englewood Cliffs, N.J., 1985.
R. Milner, Elements of Interaction — Turing Award Lecture, CACM, Vol 36, No. 1, January 1993, pp78–79.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Magee, J., Dulay, N., Eisenbach, S., Kramer, J. (1995). Specifying distributed software architectures. In: Schäfer, W., Botella, P. (eds) Software Engineering — ESEC '95. ESEC 1995. Lecture Notes in Computer Science, vol 989. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60406-5_12
Download citation
DOI: https://doi.org/10.1007/3-540-60406-5_12
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60406-8
Online ISBN: 978-3-540-45552-3
eBook Packages: Springer Book Archive