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

J. H. Nyström, P. W. Trinder, D. J. King
2008 Concurrency and Computation  
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
more » ... vantages of the high-level Erlang technology shows that two significant benefits are realised. 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 lowlevel 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.
doi:10.1002/cpe.1223 fatcat:dgcg4xpqfnef7bishrz2cqovru