Skip to main content

Specifying distributed software architectures

  • Conference paper
  • First Online:
Software Engineering — ESEC '95 (ESEC 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 989))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. J. Magee, J. Kramer, and M. Sloman, Constructing Distributed Systems in Conic, IEEE Transactions on Software Engineering, SE-15 (6), 1989.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. J. Magee, N. Dulay and J. Kramer, Structuring Parallel and Distributed Programs, IEE Software Engineering Journal, Vol. 8, No. 2, March 1993, pp73–82.

    Google Scholar 

  7. J.M. Purtilo, The POLYLITH Software Bus, ACM Transactions on Programming Languages, 16(1), January 1994, pp 151–174.

    Article  Google Scholar 

  8. 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.

    Google Scholar 

  9. H. Graves, Lockheed Environment for Automatic Programming, Proc. of KBSE 91, 6th IEEE Knowledge Based Software Engineering Conference, 1991, pp 68–76.

    Google Scholar 

  10. J.Magee, N. Dulay and J. Kramer, Regis: A Constructive Development Environment for Distributed Programs, Distributed Systems Engineering Journal, to appear.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. Ansaware 4.1: Application Programming inAnsaware, Document RM.102.02, Architecture Projects Management Agency, Poseidon House, Cambridge Feb. 1993.

    Google Scholar 

  13. 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.

    Article  Google Scholar 

  14. K. Ng, J. Kramer, J. Magee and N. Dulay, The Software Architect's Assistant — A Visual Environment for Distributed Programming, HICSS-28, January 1995.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. S. Eisenbach and R. Paterson, π-Calculus Semantics for the Concurrent Configuration Language Darwin, HICSS-26, January 1993.

    Google Scholar 

  17. A. Harter and A. Hopper, A Distributed Location System for the Active Office, IEEE Network, Jan./Feb. 1994, pp. 62–70.

    Google Scholar 

  18. R. Allan and D. Garlan, Formalizing Architectural Connection, Proc. of 16th International Conference on Software Engineering, Sorrento, May 1994.

    Google Scholar 

  19. M. Radestock and S. Eisenbach, What Do You Get From a π-calculus Semantics?, PARLE 94, Springer-Verlag, LNCS No. 817, pp635–647, 1994.

    Google Scholar 

  20. 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.

    Google Scholar 

  21. M.D. Rice and S.B. Seidman, A Formal Model for Module Interconnection Languages, IEEE Transactions on Software Engineering, 20 (1), 1994, 88–101.

    Article  Google Scholar 

  22. J.M. Spivey, The Z Notation, a Reference Manual, Prentice Hall, Englewood Cliffs, N.J., 1989.

    Google Scholar 

  23. R. Milner, Communication and Concurrency, Prentice-Hall, Englewood Cliffs, N.J., 1989.

    Google Scholar 

  24. C.A.R. Hoare, Communicating sequential processes, Prentice-Hall, Englewood Cliffs, N.J., 1985.

    Google Scholar 

  25. R. Milner, Elements of Interaction — Turing Award Lecture, CACM, Vol 36, No. 1, January 1993, pp78–79.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Wilhelm Schäfer Pere Botella

Rights and permissions

Reprints 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

Publish with us

Policies and ethics