Premium
High‐level distribution for the rapid production of robust telecoms software: comparing C++ and E RLANG
Author(s) -
Nyström J. H.,
Trinder P. W.,
King D. J.
Publication year - 2007
Publication title -
concurrency and computation: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.309
H-Index - 67
eISSN - 1532-0634
pISSN - 1532-0626
DOI - 10.1002/cpe.1223
Subject(s) - computer science , reconfigurability , maintainability , context (archaeology) , throughput , high availability , distributed computing , productivity , embedded system , operating system , software engineering , paleontology , macroeconomics , economics , biology , wireless
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 E RLANG , a high‐level distributed language, and make comparative measurements. Investigating the potential advantages of the high‐level E RLANG 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 E RLANG 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, E RLANG delivers significant productivity and maintainability benefits: the E RLANG 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 E RLANG 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 E RLANG implementation. At the expense of additional memory residency, excellent time performance is achieved, e.g. three times faster than the C++ implementation, due to E RLANG 's lightweight processes. E RLANG 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.