mss@doc.ic.ac.uk (Morris Sloman) (02/15/88)
THE CONIC TOOLKIT FOR BUILDING DISTRIBUTED SYSTEMS The Conic toolkit simplifies the problems of building distributed systems by means of a language-based approach. It provides a comprehensive set of tools for program compilation, configuration, debugging and execution in a distributed environment. Flexible configuration, modularity and reuse of software components is facilitated by separation of the language for programming individual task modules ("programming in the small") from the language for configuring programs from predefined modules ("programming in the large"). Large distributed applications are subject to both evolutionary and operational changes. Evolutionary changes occur through the need to incorporate new functionality and technology. Operational changes result from the need to redimension to cater for growth and to reorganise to recover from failures. It is impractical and uneconomic to take out of service an entire distributed system simply to modify part of it. Conic caters for these requirements by language and run-time support for dynamic configuration which permits on-line modifications to a running Conic system. Conic permits applications to be distributed across multiple Unix (is a trademark of AT&T Bell Laboratories) systems as well as target computers with no resident operating system other than the Conic executive. Targets can be used for those parts of an application which require real-time response. The host Unix systems are used for software development and to provide the targets with run-time access to the services and facilities expected from a general purpose operating system. A distributed application program in a Conic environment consists of one or more interconnected logical nodes. A logical node is a unit of configuration and executes on a host as a UNIX process or directly on a target. Each logical node is composed from a set of tasks which execute pseudo-concurrently. Tasks within a logical node share the same address space. Targets with memory management hardware may run more than one logical node. The Main Features of the Conic Toolkit are: -- Conic Programming Language: a Pascal based language, with extensions for modularity and message passing, used to program individual tasks (processes). -- Support for both asynchronous (unblocked) message transactions and synchronous request-replies . -- Local and remote communication has the same syntax and logical behaviour. Tasks running on targets can communicate directly with tasks running inside host logical nodes. -- Compile time type checking detects programming errors and improves safety. -- The configuration language is used to specify the module instances within a logical node and their interconnection. -- An on-line configuration manager supports the initial configuration and subsequent change to a set of logical nodes running in a variety Unix systems and target computers. -- Configuration time type checking detects interface incompatibilities. -- Hides differences in processor type in a mixed machine environment. Automatic transformation of information representation between heterogeneous hardware. -- The Conic run-time support facilities are implemented using the same tools and techniques as distributed applications. This permits users to tailor or extend the system facilities to suit their particular requirements. Current State The Conic Toolkit is available on VAX computers running Unix BSD 4.2, 4.3, Ultrix and Sun Computers running their Sun Version 3.x Unix. The targets currently supported are LSI 11 microcomputers, Motorola 68000 (MVME 101) and 68020 (MVME 133). Local area network support is provided to access the User datagram protocol from the Unix host computers and drivers are available for LRT VME Ethernet boards and DEC DEQNA boards in targets. Current Research -- Specification of behaviour of individual modules and composition rules for the behaviour of groups of modules. -- Support for distributed real-time data bases. -- Heterogeneous Systems: Use of Conic Configuration Language with other module programming languages. -- Support for management domains. -- The provision of fault tolerance and atomic transactions. Current Users of the Conic Toolkit British Coal British Petroleum Research Centre GEC Research PLC British Telecom Research Laboratory The universities of Sussex, Glasgow in the U.K., Toronto & York in Canada, Nice & Ecole Nationale Superieure De Techniques Avancees in France, Linkoping in Sweden, KIT & KAIST in Korea. Contacts Dr. M. Sloman, Dr. J. Kramer, Dr. J. Magee Department of Computing, Imperial College, 180 Queensgate, London. SW7 2BZ. Phone (+44-1) 589 5111 Exts. 5041, 5058, 5040 or 5043. Telex: 929 484. Email: mss@doc.ic.ac.uk or mss@icdoc.uucp References 'The CONIC Toolkit for Building Distributed Systems' by J. Kramer, J. Magee, M. Sloman. IEE Proceeding Part D, vol 134, no.2, March 1987, pp. 73-82. 'Dynamic Configuration for Distributed Systems' by J. Kramer and J. Magee. IEEE Trans. on Software Eng. SE-11:4 April 1985 pp. 424-436. 'Constructing Distributed Systems in Conic' by J. Magee, J. Kramer, M. Sloman. Imperial College Research Report DOC 87/4, October 1987, to be published in IEEE Transactions on Software Engineering. morris sloman ( mss@doc.ic.ac.uk )