17
Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Embed Size (px)

Citation preview

Page 1: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Evaluating Erlang:Are High-level Languages suitable for Robust Telecoms Software?

Jan Nystrom

SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Page 2: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Collaborative Research• Motorola Labs & Heriot-Watt University

• Lifetime– Dec 2002 – Feb 2006 (~3 years)

• Resources– £184,000 (~$320,000)

from UK Research Council (EPSRC)– Post-doc for 3 years– Joint supervision from Motorola Labs &

Heriot-Watt

Page 3: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Objectives

• Commercial– Produce strong evidence that Erlang can

improve Motorola software productivity– Disseminate work within Motorola

• Scientific– Investigate impact of language constructs on

distributed software

Page 4: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Problem Domain

• Distributed

• High Availability (downtime of minutes per year, 5NINES)

• Complex software (millions of lines of code)

• Continuous operation (years)

• In service upgrade

Page 5: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Characteristics

• General purpose programming language, originally developed in Ericsson for Telecoms

• Massive concurrency• Soft real-time response• Garbage collected memory• Highly available (hot upload)• Fault tolerant (exceptions, error detection)• Open Source

– OTP Library (Open Telecom Platform)

• Commercial support

Page 6: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Erlang Success Stories• Ericsson AXD301 in Engine

– Size = 1,136,150 lines in Erlang– Availability = 99.9999999% (9NINES)

• Alteon (Nortel) SSL Accelerator– Size 74,440 lines in Erlang

• Ericsson GPRS System• T-mobile, SMS System, UK• Teba Bank, Credit Card Systems, South Africa

Reference: Joe Armstrong, PhD thesis, 2003.

Page 7: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Research Strategy

• Implement some telecoms applications in Erlang– Dispatch Call Controller (this talk)– Zone Controller Data mobility (current project)

• Compare– availability (recovery from process failures)– resilience (high throughput)– dynamic adaptability (performance when

processes are added)

Page 8: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Dispatch Call Controller

• The server part of a Dispatch Call Control

• Critical functionality– Dynamic scalability– Resource reclamation– Fault tolerance– Soft real time

Page 9: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

DCC Architecture

Page 10: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Multiple Failures

Page 11: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Service Instance Failures

Page 12: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Increase in Throughput of Voice Messages

Page 13: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Dynamic Adaptability

Page 14: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Results Summary

• Availability– At a service level of at least 99.9% of all voice

messages delivered on time.– can handle process failures (single, multiple,

repeated), without significant impact on throughput.

• Resilience– performance does not degrade for massive

overloading, e.g. over 1000%.

• Dynamic-adaptability– performance upgrades/degrades proportionally when

processes are added/removed.

Page 15: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

Programme Comparison

13%147Service

1136%1741Testing

2661%2994Platform

38100%4884Total

ModulesPercentageLines of Code

Part

150.4%83IDL

8199.6%21340C++

-100%21423Total

Classes/

Instances

PercentageLines of Code

Part

Erlang

C++

Page 16: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

What features of Erlang helped?

• Automatic memory management

• Automatic process management

• Fault-tolerance – using the Mnesia data-base for recovery from failure, exception handling

• Behaviours – supervisor, generic servers etc.

• High-level programming – pattern matching, polymorphism, etc.

Page 17: Evaluating Erlang: Are High-level Languages suitable for Robust Telecoms Software? Jan Nystrom SafeCom'05 – Henry Nystrom, Phil Trinder, David King

What now?

• Implement a component of a real product (Zone Controller Data Mobility), and compare

• Compare with Java/CORBA, C++/CORBA, SDL.