The Conic toolkit for building distributed systems

Abstract
Conic provides a set of tools for building flexible distributed systems for embedded applications such as factory automation, telecommunications, process monitoring and control. The Conic programming language is used to program individual software modules which communicate by naming only local entry and exit ports. This gives configuration independence and allows reuse of the modules in various situations. A separate configuration language is used to specify a system by creating instances of modules and interconnecting exit and entry ports. The configuration language is also used to specify changes which can be performed dynamically without shutting down the complete system. These features of a Conic system provide the flexibility for adapting to changing requirements. The paper describes the Conic programming and configuration languages, as well as the run-time support needed for dynamic configuration. The paper also gives an overview of the Unix-based tools available for building and testing software for distributed target computers. Finally, we discuss experiences of using these tools and future work planned on the project.