A software architecture for distributed computer control systems

Distributed computer control systems have a number of potential advantages over centralized systems, especially where the application is itself physically distributed. A computer station can be placed close to the plant being controlled, and a communications network used to enable the stations to communicate to coordinate their actions. However, the software must be carefully designed to exploit the potential advantages of distribution. This paper describes the software architecture of CONIC, a system to support distributed computer control applications. This architecture emphasizes the distinction between the writing of individual software components and the construction and configuration of a system from a set of components. A modular structure is used to separate programming from configuration. Typed entry and exit ports are used to clearly define module interfaces. Ports, analagous to the plugs and sockets of hardware components, permit modules to be interconnected in different ways. On-line modification and extension of the system is supported by permitting the dynamic creation and interconnection of modules. Message passing primitives are provided to permit modules to coordinate and synchronize control actions.

[1]  David R. Cheriton,et al.  Thoth, a portable real-time operating system , 1979, CACM.

[2]  Gregory R. Andrews,et al.  Synchronizing Resources , 1981, TOPL.

[3]  Per Brinch Hansen,et al.  Distributed processes: a concurrent programming concept , 1978, CACM.

[4]  Karsten Schwan,et al.  StarOS, a multiprocessor operating system for the support of task forces , 1979, SOSP '79.

[5]  Per Brinch Hansen,et al.  The Architecture of Concurrent Programs , 1977 .

[6]  Robert Balzer,et al.  PORTS: a method for dynamic interprogram communication and job control , 1971, AFIPS '71 (Spring).

[7]  Raymond T. Yeh,et al.  Communication Port: A Language Concept for Concurrent Programming , 1980, IEEE Transactions on Software Engineering.

[8]  Robert P. Cook,et al.  *MOD—A Language for Distributed Programming , 1980, IEEE Transactions on Software Engineering.

[9]  Jerome A. Feldman,et al.  High level programming for distributed computing , 1979, CACM.

[10]  S. M. Prince,et al.  Communication requirements of a distributed computer control system , 1981 .

[11]  Morris Sloman,et al.  Intertask Communication Primitives for Distributed Computer Control Systems , 1981, ICDCS.

[12]  Morris Sloman,et al.  The CONIC Communication System for Distributed Process Control , 1983, Kommunikation in Verteilten Systemen.

[13]  Barbara Liskov,et al.  Primitives for distributed computing , 1979, SOSP '79.

[14]  William R. Franta,et al.  Decentralized executive control in distributed computer systems , 1978, COMPSAC.

[15]  H. U. Steusloff Programming Distributed Computer Systems with Higher Level Languages , 1979 .

[16]  Niklaus Wirth,et al.  Modula: A language for modular multiprogramming , 1977, Softw. Pract. Exp..

[17]  George G. Robertson,et al.  Accent: A communication oriented network operating system kernel , 1981, SOSP.

[18]  Brian A. Wichmann,et al.  Reference Manual for the Ada Programming Language. Proposed Standard Document , 1980 .

[19]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[20]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975 .