M. Bubak et al. (Eds.): HPCN 2000, LNCS 1823, pp. 177-186, 2000. © Springer-Verlag Berlin Heidelberg 2000 Modelling Control Systems in an Event-Driven Coordination Language Theophilos A. Limniotes and George A. Papadopoulos Department of Computer Science, University of Cyprus 75 Kallipoleos Str., P.O.Box 20537 CY-1678 Nicosia, Cyprus {theo,george}@cs.ucy.ac.cy Abstract. The paper presents the implementation of a railway control system, as a means of assessing the potential of coordination languages to be used for modelling software architectures for complex control systems using a components-based approach. Moreover, with this case study we assess and understand the issues of real time, fault tolerance, scalability, extensibility, distributed execution and adaptive behaviour, while modelling software architectures. We concentrate our study on the so-called control- or event- driven coordination languages, and more to the point we use the language Manifold. In the process, we develop a methodology for modelling software architectures within the framework of control-oriented coordination languages. Keywords. Concepts and languages for high-level parallel programming; Distributed component-based systems; Software Engineering principles; High- level programming environments for Distributed Systems. 1 Introduction A number of programming models and associated software development environments for parallel and distributed systems have been proposed, ranging from ones providing elementary parallel constructs (such as PVM and MPI) to ones offering higher level logical abstractions such as skeletons, virtual shared memory metaphors (such as Linda), coordination models ([4]), software architectures ([5]), etc. It would be interested to examine the potential of those models in modelling real- life non-trivial applications and in the process develop a software engineering methodology for their use. In this paper we present some of the main components of implementing a railway control system using the coordination language Manifold ([1]). It is a typical real world problem which, apart from its operational aspects, it necessitates the addressing of several other requirements that relate to real-time, fault tolerance and adaptive behaviour. In the process, we present a methodology for developing such real-life applications using the control-driven coordination metaphor. The rest of the paper is organised as follows: the next section describes briefly the case study while the following one is a brief introduction to the coordination language