High-level distribution for the rapid production of robust telecoms software: comparing C++ and ERLANG

Nyström, J.H., Trinder, P.W. and King, D.J. (2008) High-level distribution for the rapid production of robust telecoms software: comparing C++ and ERLANG. Concurrency and Computation: Practice and Experience, 20(8), pp. 941-968. (doi:10.1002/cpe.1223)

Full text not currently available from Enlighten.


Currently most distributed telecoms software is engineered using low- and mid-level distributed technologies, but there is a drive to use high-level distribution. This paper reports the first systematic comparison of a high-level distributed programming language in the context of substantial commercial products. Our research strategy is to reengineer some C++/CORBA telecoms applications in Erlang, a high-level distributed language, and make comparative measurements. Investigating the potential advantages of the high-level Erlang technology shows that two significant benefits are realized. Firstly, robust configurable systems are easily developed using the high-level constructs for fault tolerance and distribution. The Erlang code exhibits resilience: sustaining throughput at extreme loads and automatically recovering when load drops; availability: remaining available despite repeated and multiple failures; dynamic reconfigurability: with throughput scaling near-linearly when resources are added or removed. Secondly, Erlang delivers significant productivity and maintainability benefits: the Erlang components are less than one-third of the size of their C++ counterparts. The productivity gains are attributed to specific language features, for example, high-level communication saves 22%, and automatic memory management saves 11%—compared with the C++ implementation. Investigating the feasibility of the high-level Erlang technology demonstrates that it fulfils several essential requirements. The requisite distributed functionality is readily specified, even although control of low-level distributed coordination aspects is abrogated to the Erlang implementation. At the expense of additional memory residency, excellent time performance is achieved, e.g. three times faster than the C++ implementation, due to Erlang's lightweight processes. Erlang interoperates at low cost with conventional technologies, allowing incremental reengineering of large distributed systems. The technology is available on the required hardware/operating system platforms, and is well supported.

Item Type:Articles
Glasgow Author(s) Enlighten ID:Trinder, Professor Phil
Authors: Nyström, J.H., Trinder, P.W., and King, D.J.
College/School:College of Science and Engineering > School of Computing Science
Journal Name:Concurrency and Computation: Practice and Experience
Published Online:23 August 2007

University Staff: Request a correction | Enlighten Editors: Update this record