Implementing distributed real-time control systems in a functional programming language

  • Authors:
  • C. Wikstrom

  • Affiliations:
  • -

  • Venue:
  • WPDRTS '96 Proceedings of the 4th International Workshop on Parallel and Distributed Real-Time Systems
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

The design and implementation of large distributed fault-tolerant systems in the telecommunications industry is becoming increasingly complex. Traditionally, telecommunications systems have been equipped with fault-tolerant hardware. Recent advances with cheap high-speed off-the-shelf CPUs make an approach with fault tolerance implemented in software more attractive. This typically involves different techniques to replicate data over several computers. The actual implementation of such systems has, however, turned out to be a costly business. Our experiences indicate that traditional software engineering techniques for distributed systems, where typically various interface description languages are used, lead to overly complex systems. The functional programming language Erlang has been designed to ease the design of distributed fault-tolerant applications with massive concurrency. Erlang is currently being employed in a number of applications within the Swedish telecommunications company Ericsson, and the experiences so far are very promising. We describe the ideas behind the support for distributed fault-tolerant programming in the language together with some implementation aspects. The main topic is the idea of dynamic interfaces: symbolic programming languages often have the ability to dynamically identify the type of a data object at runtime. Using this capability, it is possible to implement a general-purpose encoder/decoder which maps data objects from the language to and from a stream of bytes which can be sent on to a network. We show what implications this has on distributed programming techniques.