Evaluating distributed functional languages for telecommunications software

  • Authors:
  • J. H. Nyström;P. W. Trinder;D. J. King

  • Affiliations:
  • Heriot-Watt University, Edinburgh, Scotland;Heriot-Watt University, Edinburgh, Scotland;UK Software & Systems Engineering Research group of Motorola Labs, Motorola, Basingstoke, England

  • Venue:
  • Proceedings of the 2003 ACM SIGPLAN workshop on Erlang
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

The distributed telecommunications sector not only requires minimal time to market, but also software that is reliable, available, maintainable and scalable. High level programming languages have the potential to reduce development time and improve maintainability due to their compact code size. Moreover reliability is improved by safe type systems and relatively easy verification.This paper outlines plans and initial results from a joint project between Motorola and Heriot-Watt University that aims to evaluate the suitability of distributed functional languages for constructing telecommunications software. The evaluation will use the ERLANG and Glasgow distributed Haskell(GdH) languages, and be based on the construction of several typical applications. The evaluation will focus on reliability issues like ease of verification, availability issues like fault-tolerance or resilience, as well as whether the languages deliver the required functionalities, like real-time capabilities. The impact of specific languages techniques will also be assessed, including type system, strictness, validation and distributed coordination. The ERLANG and GdH implementations of the applications will be compared with existing C++/CORBA and Java/JINI implementations.The first application, a Dispatch Call Controller(DCC), has been constructed in ERLANG and measured on a Beowulf cluster. We find that the DCC scales, achieving a relative speedup of 14.5 on 16 processors. The DCC is resilient, achieving 105% throughput at 200% load and 56% throughput at 9000% load on 16 processors. The DCC is fault-tolerant, remaining available despite any one process or processor failure. The DCC has dynamic adaptability, remaining available as processors are added or removed.