High‐level distribution for the rapid production of robust telecoms software: comparing C++ and E RLANG
Jan Nyström, Phil W. Trinder, David J. King · Concurrency and Computation Practice and Experience · 2007
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. Copyright © 2007 John Wiley & Sons, Ltd.