This Article 
 Bibliographic References 
 Add to: 
Constructing Distributed Systems in Conic
June 1989 (vol. 15 no. 6)
pp. 663-675

The Conic environment provides a language-based approach to the building of distributed systems which combines the simplicity and safety of a language approach with the flexibility and accessibility of an operating systems approach. It provides a comprehensive set of tools for program compilation, configuration, debugging, and execution in a distributed environment. A separate configuration language is used to specify the configuration of software components into logical nodes. This provides a concise configuration description and facilitates the reuse of program components in different configurations. Applications are constructed as sets of one or more interconnected logical nodes. Arbitrary, incremental change is supported by dynamic configuration. In addition, the system provides user-transparent datatype transformation between heterogeneous processors. Applications may be run on a mixed set of interconnected computers running the Unix operating system and on base target machines with no resident operating system. The basic principles adopted in the construction of the Conic environment are outlined and the configuration and run-time facilities provided are described.

[1] G. Andrews and R. Olsson, "The evolution of the SR programming language,"Distributed Comput., vol. 1, pp. 133-149, July 1986.
[2] R. Anido and J. Kramer, "Synchronised forward&backward recovery," inProc. 7th IFAC DCCS, Germany. New York: Pergamon, 1986.
[3] Black et al., "Distribution and Abstract Types in Emerald,"IEEE Trans. Software Eng., Vol. SE-13, No. 1, 1987, pp. 65-76.
[4] D. Cheriton, "The V-Kernel: A software base for distributed systems,"IEEE Software, vol. 1, no. 2, pp. 19-43, Apr. 1984.
[5] N. Dulay, J. Kramer, J. Magee, M. Sloman, and K. Twidle, "The Conic configuration language, version 1.3," Imperial College, Res. Rep. DOC 84/20, Nov. 1984.
[6] "DOD standard internet protocol,"ACM Comput. Commun. Rev., vol. 10, no. 4, pp. 12-51, Oct. 1980.
[7] P. Gawthrop, "Implementation of distributed self-tuning controllers," inProc. EUROCOM 1984, Brighton, England, Peter Peregrinus, pp. 384-352.
[8] R. Hayes and R. D. Schlichting, "Facilitating mixed language programming in distributed systems," Dept. Comput. Sci., Univ. Arizona, Tucson, Tech. Rep. TR 85-11a, Mar. 1986.
[9] C. A. R. Hoare, "Communicating sequential processes,"Commun. ACM, vol. 21, pp. 666-677, 1978.
[10] IBM Syst. J. (Special Issue on SNA), vol. 22, no. 4, 1983.
[11] J. Jones, R. Rashid, and M. Thompson, "Matchmaker: An interface specification language for distributed processing," inProc. 12th ACM Symp. Principles of Programming Languages, Jan. 1985, pp. 225-235.
[12] J. Kramer and R. J. Cunningham, "Towards a notation for the functional design of distributed processing systems," inIEEE Proc. 1978 Int. Conf. Parallel Processing, Aug. 1978, pp. 69-76.
[13] J. Kramer, J. Magee, M. Sloman, K. Twidle, and N. Dulay, "The Conic programming language, version 2.4," Imperial College, Res. Rep. DoC 84/19, Oct. 1984.
[14] J. Kramer and J. MaGee, "Dynamic configuration for distributed systems,"IEEE Trans. Software Eng., vol. SE-11, pp. 424-436, Apr. 1985.
[15] J. Kramer and J. Magee, "A model for change management," inProc. IEEE Workshop Future Trends of Distributed Computing Systems in the 1990s, Hong Kong, Sept. 1988, pp. 286-295.
[16] J. Kramer, J. Magee, and K. Ng, "Graphical support for configuration programming," inProc. Hawaii Int. Conf. System Sciences, Jan. 1989, pp. 860-870.
[17] T. J. Leblanc and S. A. Friedberg, "HPC: A model of structure and change in distributed systems,"IEEE Trans. Comput., vol. C-34, no. 12, pp. 1114-1129, Dec. 1985.
[18] S. J. Leffler, R. Fabry, and W. N. Joy, "A 4.2BSD interprocess communication primer," Univ. California, Berkeley, Rep. UCB/CSD 83/ 145, July 1983.
[19] B. Liskov and R. Scheifler, "Guardians and actions: linguistic support for robust, distributed programs,"ACM Trans. Program. Languages Syst., vol. 5, no. 3, pp. 381-404, July 1983.
[20] B. Liskov, M. Herlihy, and L. Gilbert, "Limitations of remote procedure call and static process structure for distributed computing," Lab. Comput. Sci., M.I.T., Programming Methodology Group Memo 41, Sept. 1984, revised Oct. 1985.
[21] O. Loques and J. Kramer, Flexible fault tolerance for distributed computer systems,"IEE Proc., pt. E, vol. 133, no. 6, pp. 319-337, Nov. 1986.
[22] S. J. Mullender and A. S. Tanenbaum, "The design of a capability based distributed operating system,"Comput. J., vol. 29, no. 4, pp. 289-299, Aug. 1986.
[23] D. Oppen and Y. Dalal, "The clearinghouse: A decentralized agent for locating named objects in a distributed environment,"ACM Trans. Office Inform. Syst., vol. 1, no. 3, pp. 230-253, July 1983.
[24] D. Plummer, "An Address Resolution Protocol (RFC 826)," Nov. 1982.
[25] J. Postel, "User Datagram Protocol (RFC 768)," Inform. Sci. Inst., Univ. Southern California, Marina del Ray, CA.
[26] D. Redelet al., "Pilot: An operating system for a personal computer,"Commun. ACM, vol. 32, no. 2, pp. 81-92, Feb. 1980.
[27] D. Robinson and M. Sloman, "Domain based access control for distributed systems,"IEE Software Eng. J., vol. 3, no. 5, pp. 161-170, Sept. 1988.
[28] M.L. Scott, "Language Support for Loosely Coupled Distributed Programs,"IEEE Trans. Software Eng., Vol. SE-13, No. 1, Jan. 1987, pp. 88-103.
[29] M. Sloman, J. Kramer, J. Magee, and K. Twidle, "Flexible communications for distributed embedded systems,"IEE Proc., pt. E, vol. 133, no. 4, pp. 201-211, July 1986.
[30] Sloman, M., and J. Kramer,Distributed Systems and Computer Networks, Prentice Hall, Englewood Cliffs, N.J., 1987.
[31] M. Sloman, "Distributed systems management," inProc. IFIP TC 6.4 Workshop LAN Management, Berlin, July 1987. Amsterdam, The Netherlands: North-Holland, pp. 15-59.
[32] R. Strom and S. Yemini, "The Nil distributed systems programming language: A status report,"ACM SIGPLAN Notices, vol. 20, no. 5, pp. 36-44, May 1985.
[33] External Data Representation Reference Manual (Part 800-1177-01, Rev. A-β), Sun Microsystems Inc., Mountain View, CA, Jan. 1985.
[34] A. Tanenbaum, H. van Stavaren, E. Keizer, and J. Stevenson, "A practical toolkit for making portable compilers,"Commun. ACM, vol. 26, no. 9, pp. 654-662, Sept. 1983.
[35] U. S. Dep. Defense,Reference Manual for the Ada Programming Language, proposed standard document, July 1980.
[36] S. Wecker, "DNA: The digital network architecture,"IEEE Trans. Commun., vol. COM-28, no. 4, pp. 510-526, Apr. 1980.
[37] N. Wirth,Programming in Modula-2, 3rd ed. Berlin: Springer-Verlag, 1985.

Index Terms:
distributed systems construction; Conic environment; language-based approach; operating systems approach; program compilation; distributed environment; configuration language; software components; concise configuration description; program components; interconnected logical nodes; incremental change; dynamic configuration; user-transparent datatype transformation; heterogeneous processors; interconnected computers; Unix operating system; base target machines; run-time facilities; distributed processing; high level languages; operating systems (computers); programming; programming environments
J. Magee, J. Kramer, M Sloman, "Constructing Distributed Systems in Conic," IEEE Transactions on Software Engineering, vol. 15, no. 6, pp. 663-675, June 1989, doi:10.1109/32.24720
Usage of this product signifies your acceptance of the Terms of Use.