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 )