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

Slides:



Advertisements
Similar presentations
Technology Drivers Traditional HPC application drivers – OS noise, resource monitoring and management, memory footprint – Complexity of resources to be.
Advertisements

ACM Uppsala Mike Williams Ericsson AB1 Why did we create Erlang? Mike Williams Ericsson AB Stockholm Sweden
Thomas Arts Industrial Use of a Functional Language Thomas Arts Ericsson Computer Science Laboratory Stockholm, Sweden
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development.
Carrier Grade EAB/UK/T Carrier Grade – What does it mean At least % uptime –Downtime less than 5 minutes per year Designed for 10 to.
Model for Supporting High Integrity and Fault Tolerance Brian Dobbing, Aonix Europe Ltd Chief Technical Consultant.
Introduction To System Analysis and Design
Distributed Systems Architectures
City University London
Ensuring Non-Functional Properties. What Is an NFP?  A software system’s non-functional property (NFP) is a constraint on the manner in which the system.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Phil Trinder & Computer Science Department Heriot-Watt University, UK David King Software & Systems Engineering Research Motorola Labs, UK Comparing C++
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Introduction To System Analysis and design
Lecture # 22 Software Evolution
Advanced Software Tools Research Seminar Fall 07 Arik Nemtsov.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Failure Spread in Redundant UMTS Core Network n Author: Tuomas Erke, Helsinki University of Technology n Supervisor: Timo Korhonen, Professor of Telecommunication.
Erlang UC - Stockholm, November 2005.
Priority Research Direction Key challenges Fault oblivious, Error tolerant software Hybrid and hierarchical based algorithms (eg linear algebra split across.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Integration testing l Tests complete systems or subsystems composed of integrated.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Getting Erlang to talk to C and C++ from ei to UBF Hal Snyder Vail Systems, Inc. Rick Pettit Vail Systems, Inc.
An Introduction to Software Architecture
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Keneequa Brown Chris Duzan Navaid Khalfay. Originally developed in 1986 by Joe Armstrong as a proprietary language within Ericsson Released as open source.
Rev PA Erlang Open Telecom Platform EAB/UPD/S Ulf Wiger.
 CS 5380 Software Engineering Chapter 8 Testing.
Motorola Internal Use Only Evaluating Erlang for Robust Telecoms Software David King 2004 S 3 Symposium – Henry Nystrom, Phil Trinder, David King.
Young Suk Moon Chair: Dr. Hans-Peter Bischof Reader: Dr. Gregor von Laszewski Observer: Dr. Minseok Kwon 1.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Productivity Gains in Erlang A Heriot-Watt and Motorola Production Commercial Users of Functional Programming Freiburg, Germany, October 4 th 2007 Jan.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
INNOV-10 Progress® Event Engine™ Technical Overview Prashant Thumma Principal Software Engineer.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
March 2004 At A Glance NASA’s GSFC GMSEC architecture provides a scalable, extensible ground and flight system approach for future missions. Benefits Simplifies.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
CS 326: Functional Programming 1. 2 Erlang – A survey of the language & applications Paper by: Joe Armstrong, Computer Science Laboratory, Ericsson Telecom.
Real Time Programming Language. Intro A programming language represents the nexus of design and structure. But misuse of the programming language can.
Slide title In CAPITALS 50 pt Slide subtitle 32 pt Robust Reconfigurable Erlang Component System ErlCOM Gabor Batori, Zoltan Theisz, Domonkos Asztalos.
Distributed System Architectures Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
Software Design and Architecture
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Building Fault tolerant and distributed VoIP applications using FreeSWITCH and Erlang Andrew Thompson & Micah Warren Fused Solutions, LLC Cluecon, Chicago.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Slicer: Auto-Sharding for Datacenter Applications
Object-Orientated Programming
Fault Tolerance Distributed Web-based Systems
Software Architecture Lecture 20
Architectures of distributed systems Fundamental Models
Architectures of distributed systems Fundamental Models
Hosted VoIP Services using Erlang/OTP
Java History, Editions, Version Features
Industrial Use of a Functional Language
Architectures of distributed systems
Architectures of distributed systems Fundamental Models
Design.
Presentation transcript:

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

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

Problem Domain Distributed High Availability (downtime of minutes per year, 5NINES) Complex software (millions of lines of code) Continuous operation (years) In service upgrade

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

Erlang Success Stories Ericsson AXD301 in Engine –Size = 1,136,150 lines in Erlang –Availability = % (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.

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)

Dispatch Call Controller The server part of a Dispatch Call Control Critical functionality –Dynamic scalability –Resource reclamation –Fault tolerance –Soft real time

DCC Architecture

Multiple Failures

Service Instance Failures

Increase in Throughput of Voice Messages

Dynamic Adaptability

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.

Programme Comparison 13%147Service 1136%1741Testing 2661%2994Platform 38100%4884Total ModulesPercentageLines of Code Part 150.4%83IDL %21340C %21423Total Classes/ Instances PercentageLines of Code Part Erlang C++

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.

What now? Implement a component of a real product (Zone Controller Data Mobility), and compare Compare with Java/CORBA, C++/CORBA, SDL.