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.
Abstract
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 |
---|---|
Status: | Published |
Refereed: | Yes |
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 |
ISSN: | 1532-0626 |
Published Online: | 23 August 2007 |
University Staff: Request a correction | Enlighten Editors: Update this record