Distributed system construction: Experience with the conic toolkit

  • Naranker Dulay
  • Jeff Kramer
  • Jeff Magee
  • Morris Sloman
  • Kevin Twidle
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 309)


For the last eight years the Distributed Systems Research Group at Imperial College has conducted research into the development of an environment to support the construction and operation of distributed software. The result has been the Conic Toolkit: a comprehensive set of language and run-time tools for program compilation, building, debugging and execution in a distributed environment. Programs may be run on a set of interconnected host computers running the Unix operating system and/or on target machines with no resident operating system.

Two languages are provided, one for programming individual task modules (processes) and one for the configuration of programs from simpler groups of task modules. In addition the enviroment supports the re-use of program components and allows the configuration of new components into running systems. This dynamic configuration capability is provided by a distributed configuration management tool which is the primary method of creating, controlling and modifying distributed application programs. The system also supports user transparent datatype transformation between heterogeneous processors.

This paper describes and reflects on the major design principles of the Conic toolkit and discusses the experiences both of the Conic research group and the various other universities and industries who are using the toolkit.


Distributed systems distributed programming configuration host/target environment dynamic configuration 

7. References

  1. Andrews 86.
    G. Andrews, R. Olsson, "The evolution of the SR programming language", Distributed Computing, 1, July 1986, pp. 133–149.Google Scholar
  2. Anido 86.
    R. Anido, J. Kramer, "Synchronised forward & backward recovery", 7th. IFAC DCCS, Germany, Sep. 1986, to be published by Pergamon Press.Google Scholar
  3. Black 87.
    A. Black, N. Hutchison, E. Jul, H. Levy, L. Carter, "Distribution and abstract types in Emerald", IEEE Trans. on Software Eng. SE-13(1), Jan. 1987, pp. 65–76.Google Scholar
  4. Cheriton 84.
    D. Cheriton, "The V-Kernel a software base for distributed systems", IEEE Software, 1 (2), April 1984, pp. 19–43.Google Scholar
  5. Dulay 84.
    N.Dulay, J.Kramer, J.Magee, M.Sloman, K.Twidle, "The Conic configuration language, version 1.3", Imperial College Research Report DoC 84/20, November 1984.Google Scholar
  6. Gawthrop 84.
    "Implementation of distributed self-tuning controllers", EUROCOM 1984, Brighton, Peter Peregrinus, pp384–352.Google Scholar
  7. Hayes 86.
    R. Hayes, R.D. Schlichting, "Facilitating mixed language programming in distributed systems", TR 85-11a Dept. of Computer Science, University of Arizona, Tucson 85721, March 1986.Google Scholar
  8. Hoare 78.
    C.A. R. Hoare, "Communicating sequential processes," CACM, 21(8), Aug. 1978, pp. 666–677.Google Scholar
  9. Jones 85.
    M. Jones, R. Rashid, M. Thomson, "An interface specification language for distributed processing", Proc. 12th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages., ACM Jan. 1985.Google Scholar
  10. Kramer 78.
    J.Kramer,R.J. Cunningham, "Towards a notation for the functional design of distributed processing systems", in IEEE Proc. 1978 Int. Conf. Parallel Processing, Aug. 1978, pp 69–76.Google Scholar
  11. Kramer 84.
    J.Kramer, J.Magee, M.Sloman, K.Twidle, N.Dulay, "The Conic programming language, version 2.4", Imperial College Research Report DoC 84/19, October 1984.Google Scholar
  12. Kramer 85.
    J. Kramer, J. Magee, "Dynamic configuration for distributed systems", IEEE Transactions on Software Engineering, SE-11 (4), April 1985, pp. 424–436.Google Scholar
  13. Le Blanc 85.
    T.J. Leblanc, S. A. Friedberg, "HPC a model of structure and change in distributed systems", IEEE Trans. Comp., C-34 (12), Dec. 1985, pp. 1114–1129.Google Scholar
  14. Leffler 83.
    S. Leffler, S. Fabry, W. Joy, "A 4.2 bsd communications primer", Computer Systems Research Group, Univ. of California, Berkley, July 1983.Google Scholar
  15. Liskov 83.
    B. Liskov, R. Sheifler, "Guardians and actions: linguistic support for robust distributed programs", ACM TOPLAS, 5 (3), July 1983, pp. 381–404.Google Scholar
  16. Liskov 85.
    B. Liskov, M. Herlihy, L. Gilbert, "Limitations of remote procedure call and static process structure for distributed computing", MIT Lab. Computing Science, Cambridge MA 02139,, Programming Methodology Group Memo 41, Sept. 1984, revised Oct. 1985.Google Scholar
  17. Liskov 87.
    B. Liskov, L. Shrira, "Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems", MIT Lab. Computing Science, Cambridge MA 02139, Aug. 1987Google Scholar
  18. Loques 86.
    O. Loques, J. Kramer, Flexible fault tolerance for distirbuted computer systems" IEE Proc. pt. E, 133(6), Nov. 1986, pp. 319–337.Google Scholar
  19. Mullender 86.
    S.J. Mullender, A.S. Tanenbaum, "The Design of a Capability Based Distributed Operating System", Computer Journal, Vol. 29 No.4, Aug 1986, pp. 289–299.Google Scholar
  20. Oppen 83.
    D.L. Oppen, Y.K. Dalal, "The Clearinghouse: a decentralised agent for locating named objects in a distributed environment," ACM Trans. on Office Systems, 1(3), July 1983. pp. 230–253.Google Scholar
  21. Plummer 82.
    D. Plummer, "An Address Resolution Protocol (RFC 826)", Nov. 1982.Google Scholar
  22. Postel 83.
    J. Postel, "User Datagram Protocol (RFC 768)", Information Sciences Institute, University of Southern California, 4376 Admiralty Way, Marina del Ray Calif. 90291.Google Scholar
  23. Redel 80.
    D. Redel et al. "Pilot: an operating system for a personal computer", CACM 32(2), Feb. 1980, pp. 81–92.Google Scholar
  24. Scott 87.
    M.L. Scott, "Language support for loosely coupled distributed programs", IEEE Trans. on Software Eng. SE-13(1), Jan. 1987, pp. 77–86.Google Scholar
  25. Sloman 86.
    M. Sloman, J. Kramer, J. Magee, K. Twidle, "Flexible communications for distributed embedded systems", IEE Proc. Pt. E, 133(4), July 1986, pp. 201–211.Google Scholar
  26. Sloman 87.
    M. Sloman, "Distributed systems management", IFIP TC 6.4 LAN Management Workshop, Berlin, July 1987, North Holland.Google Scholar
  27. Strom 85.
    R. Strom, S. Yemini, "The Nil distributed systems programming language: A status report", ACM SIGPLAN Notices, 20(5), May 1985, pp. 36–44.Google Scholar
  28. Sun 85.
    "External Data Representation Reference Manual (Part 800-1177-01, Rev. A-β)", Sun Microsystems Inc., Mountain View, Ca, Jan 1985.Google Scholar
  29. Tanenbaum 83.
    A. Tanenbaum, H. van Staveren, E. Keizer, J. Stevenson, "A practical toolkit for making portable compilers", CACM 26 (9), Sep. 1983, pp. 654–662.Google Scholar
  30. USA DOD 80.
    USA Department of Defense, "Reference manual for the Ada™ programming language", Proposed Standard Document, July 1980.Google Scholar
  31. Wegner 84.
    P. Wegner "Capital intensive software technology", IEEE Software, 1(3), July 1984, pp. 7–46.Google Scholar
  32. Wirth 77.
    N. Wirth, "Modula: a language for modular multiprogramming", Software Practice and Experiences, 12, 1982, pp. 719–753.Google Scholar
  33. Xerox 81.
    "Courier: the remote procedure call", XSIS 038112, Xerox OPD, 333 Coyote Hill Rd., Palo Alto, Ca 94304, 1981.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Naranker Dulay
    • 1
  • Jeff Kramer
    • 1
  • Jeff Magee
    • 1
  • Morris Sloman
    • 1
  • Kevin Twidle
    • 1
  1. 1.Department of ComputingImperial CollegeLondon

Personalised recommendations