[comp.os.research] CONIC Toolkit for Distributed Systems

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 )