2001-03-19 ETX/D/XPS-01:002 Uen 1 Ulf Wiger Senior System Architect Strategic Product & System Management Ericsson Telecom AB Data Backbone & Optical Networks.

Slides:



Advertisements
Similar presentations
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Advertisements

1 UNIT I (Contd..) High-Speed LANs. 2 Introduction Fast Ethernet and Gigabit Ethernet Fast Ethernet and Gigabit Ethernet Fibre Channel Fibre Channel High-speed.
Client Tools Explained EAE 3014
1 Concurrency: Deadlock and Starvation Chapter 6.
Zhongxing Telecom Pakistan (Pvt.) Ltd
Virtual Trunk Protocol
Analysis of Computer Algorithms
Distributed Systems Architectures
Chapter 10 Architectural Design.
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 1 Embedded Computing.
1 Copyright © 2013 Elsevier Inc. All rights reserved. Appendix 01.
By Rick Clements Software Testing 101 By Rick Clements
1 Hyades Command Routing Message flow and data translation.
1 Introducing the Specifications of the Metro Ethernet Forum MEF 19 Abstract Test Suite for UNI Type 1 February 2008.
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Making the System Operational
Chapter 1 Introduction Copyright © Operating Systems, by Dhananjay Dhamdhere Copyright © Introduction Abstract Views of an Operating System.
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Auto-scaling Axis2 Web Services on Amazon EC2 By Afkham Azeez.
Week 2 The Object-Oriented Approach to Requirements
Real Time Versions of Linux Operating System Present by Tr n Duy Th nh Quách Phát Tài 1.
CP2073 Networking Lecture 5.
Electric Bus Management System
Configuration management
Software change management
© 2010 Invensys. All Rights Reserved. The names, logos, and taglines identifying the products and services of Invensys are proprietary marks of Invensys.
Chapter 1: Introduction to Scaling Networks
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 2 The OSI Model and the TCP/IP.
Chapter 6 Data Design.
By Waqas Over the many years the people have studied software-development approaches to figure out which approaches are quickest, cheapest, most.
Public Thomas Mejtoft Exjobbsredovisning Teknisk fysik, Umeå universitet
DAQmx下多點(Multi-channels)訊號量測
1 What is JavaScript? JavaScript was designed to add interactivity to HTML pages JavaScript is a scripting language A scripting language is a lightweight.
25 July, 2014 Hailiang Mei, TU/e Computer Science, System Architecture and Networking 1 Hailiang Mei Remote Terminal Management.
Lecture 1: Software Engineering: Introduction
1 Department of Computer Science, University of Sheffield eXtreme Programming - Practices Dr. Marian Gheorghe.
Database System Concepts and Architecture
31242/32549 Advanced Internet Programming Advanced Java Programming
Chapter 10 Software Testing
Executional Architecture
Implementation Architecture
Global Analysis and Distributed Systems Software Architecture Lecture # 5-6.
CS 240 Computer Programming 1
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 15 Programming and Languages: Telling the Computer What to Do.
Chapter 10: The Traditional Approach to Design
Systems Analysis and Design in a Changing World, Fifth Edition
ACM Uppsala Mike Williams Ericsson AB1 Why did we create Erlang? Mike Williams Ericsson AB Stockholm Sweden
©Brooks/Cole, 2001 Chapter 12 Derived Types-- Enumerated, Structure and Union.
© Ericsson Interception Management Systems, 2000 CELLNET Drop Administering IMS Database Module Objectives To add a network elements to the database.
PSSA Preparation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 13 - Exception Handling Outline 13.1 Introduction 13.2 Exception-Handling Overview 13.3 Other.
OPC and the 5000 Connections made even easier! Adrian Oliver iTools Development Team
Implementing Strategy in Companies That Compete in a Single Industry
Modeling Main issues: What do we want to build How do we write this down.
TCP/IP Protocol Suite 1 Chapter 18 Upon completion you will be able to: Remote Login: Telnet Understand how TELNET works Understand the role of NVT in.
Thomas Arts Industrial Use of a Functional Language Thomas Arts Ericsson Computer Science Laboratory Stockholm, Sweden
Chapter 9: Moving to Design
ETX/D/XPS-01:002 Uen 1 Bjarne Däcker Computer Science Laboratory Ericsson Utvecklings AB Acknowledgements Thomas Arts Hans Nilsson Torbjörn.
An Introduction to Software Architecture
Rev PA Erlang Open Telecom Platform EAB/UPD/S Ulf Wiger.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
9 Systems Analysis and Design in a Changing World, Fourth Edition.
CS 326: Functional Programming 1. 2 Erlang – A survey of the language & applications Paper by: Joe Armstrong, Computer Science Laboratory, Ericsson Telecom.
Bjarne Däcker Computer Science Laboratory Ericsson Utvecklings AB
An Introduction to Software Architecture
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
Presentation transcript:

ETX/D/XPS-01:002 Uen 1 Ulf Wiger Senior System Architect Strategic Product & System Management Ericsson Telecom AB Data Backbone & Optical Networks Division Four-Fold Increase in Productivity and Quality —Industrial-Strength Functional Programming in Telecom-Class Products ( FEmSys 2001 Deployment on distributed architectures

ETX/D/XPS-01:002 Uen 2 The setting 1995 PC Week Study of software projects: –16% successful –53% operational (but less than successful) –31% cancelled Butler Group 1997 on large software projects –5 out of 6 large projects fail –In >$300M companies, 9 out of 10 large projects fail How to approach this? –Use high-level modeling tools & generate code? –Raise the level of programming language? –Fight all causes for project failure!

ETX/D/XPS-01:002 Uen 3 The design of the AXD 301 switch Situation 1996 –Late entry into the ATM market –Needed to leapfrog the competition –Project members used to "traditional" large projects, wanted to try something new –No interesting 3rd party middleware platform Target: a backbone ATM switch with "Telecom Profile"

ETX/D/XPS-01:002 Uen 4 Executive summary AXD 301: A Telephony-Class, scalable ( GBps) ATM switch designed from scratch in less than 3 years AXD 301 Success factors: –Highly pragmatic, holistic approach –Competent organisation –Efficient process –Excellent technology (e.g. Erlang/OTP) More than just technology... –Consider all factors together from the start –Erlang was a perfect match for our approach

ETX/D/XPS-01:002 Uen 5 ENGINE: Migrating today's vertical networks into a single multi-service backbone AXD 301 in the marketplace Central component in Ericsson's ENGINE offering Several major operators –British Telecom –Vodaphone –Worldcom –Telia –Diveo –...

ETX/D/XPS-01:002 Uen 6 Briefly about the term Carrier-Class To us, "Carrier-Class", "Telephony-Class" and "Telecom Profile" are synonymous The quality we've come to expect from public telephony networks The trend towards multimedia services requires Carrier-Class in more systems More than just duplication of hardware: –Fault-tolerant software –In-service hardware expansion –In-service software upgrade –Load tolerance –Flexibility (frequent changes + long service life) Target: 99,999% ("five nines") availability, including planned outages There's no such thing as "almost Carrier-Class"!

ETX/D/XPS-01:002 Uen 7 Optional Processors Mandatory Mated Processor Pair ATM Control Processors L3F CE Switch Core FR ATB Server Device Line Termination ATM Termination Clock & Synchronization Clock & Synchronization IO CP Device Processor on Each Board Telecom-Class System Architecture simple wire-speed logiccomplex soft-real-time logic

ETX/D/XPS-01:002 Uen 8 Fault tolerance: distributed recovery Failover: one processor dies; its mate restarts the lost applications Takeover: the failed processor returns; the O&M/Standby applications migrate O&M or Standby application Call-handling application "Luke-warm" standby sufficient to maintain quality of service

ETX/D/XPS-01:002 Uen 9 Call Troughput in % of maximum sustainable call handling (set-up + release) capacity Offered Load in % of maximum call troughput 100% 40% 100% 150% 1000% Rejected Calls 95% 115 call/s sustained 200 call set-up/s or Load from handling of rejected calls Load tolerance Call Handling Throughput for one control processor AXD 301 release 3.2 Traffic Case: ATM SVC UNI to UNI

ETX/D/XPS-01:002 Uen 10 History of Erlang 1984: Ericsson Computer Science Lab formed : Experiments programming POTS with several languages 1998: Open Source Erlang 1987: Early Erlang Prototype projects 1991: First fast implementation 1993: Distributed Erlang 1995: Several new projects 1996: Open Telecom Platform (research on verification...) No language well suited for telecom systems development

ETX/D/XPS-01:002 Uen 11 Erlang Highlights Declarative Concurrency Soft real-time Robustness Distribution Hot code loading External interfaces Portability Functional programming language High abstraction level Pattern matching Concise readable programs

ETX/D/XPS-01:002 Uen 12 Erlang Highlights Declarative Concurrency Soft real-time Robustness Distribution Hot code loading External interfaces Portability Either transparent or explicit concurrency Light-weight processes Highly scalable

ETX/D/XPS-01:002 Uen 13 Erlang Highlights Declarative Concurrency Soft real-time Robustness Distribution Hot code loading External interfaces Portability Response times in the order of milliseconds Per-process garbage collection

ETX/D/XPS-01:002 Uen 14 Erlang Highlights Declarative Concurrency Soft real-time Robustness Distribution Hot code loading External interfaces Portability Simple and consistent error recovery Supervision hierarchies "Program for the correct case"

ETX/D/XPS-01:002 Uen 15 Erlang Highlights Declarative Concurrency Soft real-time Robustness Distribution Hot code loading External interfaces Portability Explicit or transparent distribution Network-aware runtime system

ETX/D/XPS-01:002 Uen 16 Erlang Highlights Declarative Concurrency Soft real-time Robustness Distribution Hot code loading External interfaces Portability Easily change code in a running system Enables non-stop operation Simplifies testing

ETX/D/XPS-01:002 Uen 17 Erlang Highlights Declarative Concurrency Soft real-time Robustness Distribution Hot code loading External interfaces Portability "Ports" to the outside world behave as Erlang processes

ETX/D/XPS-01:002 Uen 18 Erlang Highlights Declarative Concurrency Soft real-time Robustness Distribution Hot code loading External interfaces Portability Erlang runs on any UNIX, Windows, VxWorks,... Supports heterogeneous networks

ETX/D/XPS-01:002 Uen 19 Erlang Examples 1 Basics - Factorial function n! = 1 n*(n-1)! n = 0 n  1 Definition -module(ex1). -export([factorial/1]). factorial(0) -> 1; factorial(N) when N >= 1 -> N * factorial(N-1). Implementation Eshell V5.0.1 (abort with ^G) 1> c(ex1). {ok,ex1} 2> ex1:factorial(6). 720

ETX/D/XPS-01:002 Uen 20 Erlang Examples 2 A few very high-level constructs - QuickSort -module(ex2). -export([qsort/1]). qsort([Head|Tail]) -> First = qsort([X || X <- Tail, X =< Head]), Last = qsort([Y || Y Head]), First ++ [Head|Last]; qsort([]) -> []. Eshell V5.0.1 (abort with ^G) 1> c(ex2). {ok,ex2} 2> ex2:qsort([7,5,3,8,1]). [1,3,5,7,8] "all objects Y taken from the list Tail, where Y > Head"

ETX/D/XPS-01:002 Uen 21 Erlang Examples 3 Concurrency - Simple timer -module(ex3). -export([send_after/3]). send_after(Time, Receiver, Message) -> spawn_link(fun() -> receive after Time -> Receiver ! Message end end). Eshell V5.0.1 (abort with ^G) 1> c(ex3). {ok,ex3} 2> ex3:send_after(1000, self(), hello). 3> flush(). Shell got hello ok Anonymous function passed as input argument

ETX/D/XPS-01:002 Uen 22 Erlang Examples 4 Concurrency - Finite State Machine ringing_a(A, B) -> receive {A, on_hook} -> back_to_idle(A, B); {B, answered} -> A ! {stop_tone, ring}, switch ! {connect, A, B}, conversation_a(A, B) after > back_to_idle(A, B) end. back_to_idle(A, B) -> A ! {stop_tone, ring}, B ! terminate, idle(A). Selective receive Asynchronous send Optional timeout

ETX/D/XPS-01:002 Uen 23 Erlang Examples 5 1 P1PnP2... One for one supervision: If any child dies it is restarted a P1PnP2... One for all supervision: If any child dies, all children are terminated and all are restarted 1 1 a1 a Supervision tree: Process links + special supervisor processes The infrastructure handles recovery - program for the correct case "let it crash!"

ETX/D/XPS-01:002 Uen 24 Erlang/OTP Open Telecom Platform Middleware for Erlang development Designed for fault tolerance and portability Behaviors: A formalization of design patterns Components –Error handling, reporting and logging –Mnesia, distributed real-time database management system –CORBA –IDL Compiler, Java & C Interface Support –HTTP Server –SNMP Agent –...

ETX/D/XPS-01:002 Uen 25 OTP Behaviors "A formalization of design patterns" –A behavior is a framework + generic code to solve a common problem –Each behavior has built-in support for debugging and software upgrade –Makes it easier to reason about the behavior of a program Examples of OTP behaviors –applicationdefines how an application is implemented –supervisorused to write fault-tolerant supervision trees –gen_serverfor writing client-server applications –gen_eventfor writing event handlers –gen_fsmfor finite state machine programming

ETX/D/XPS-01:002 Uen 26 Project Highlights Early phases under one roof Powerful architecture team Clear chain of command Rapid decisions (within days) Organize according to product structure

ETX/D/XPS-01:002 Uen 27 Product Council Techn Mtg Subsyst Block Responsible SystemManagement Techn Mtg AXDProj Mgmt Mtg Subsyst Proj Mgr Profiling Task Force Project Structure Different forums for technical and project Issues –But partly the same people System Management = “glue” –“Owners” of the architecture –Keeps a system perspective –Writes design rules –Holds seminars –Profiling Task Force –Acts as Designer Help Desk Human Interaction Essential Proximity = “Under One Roof”

ETX/D/XPS-01:002 Uen 28 Process highlights "Lightweight" development process Careful functional decomposition Formal change management of interfaces Incremental design Prototyping of critical parts Only essential documents

ETX/D/XPS-01:002 Uen 29 ATS Basic Connection Control Support ATM resource Management PVC Control ATM Signalling and call control LSSFRSAVS Label Switch Routing Frame Relay Dynamic Trunking AHS NGS Narrowband Services for AXE SWS OMS CPS Switch Control and Maintenance OAM support Operating System Base ServicesAdd-on Services Not released as part of AXD 301 Tools Project Process Identify Subsystems

ETX/D/XPS-01:002 Uen 30 PROXYUNIILMI IISPAINIPNNI BICISPVC CHGANA SAALREH CAC TRH DTCVPNA LIMOSPFRIP IPSFIM FTM SCBDPCLKDPATBDPET622DPET155DP ET45DPET34DPABRDPET2CEDPDPG DPOS RCM CPC ATS AVS SWS CPSOMS LSS PNNIR ATSDAVSD LDP LSSD GSMP CNHPRMSWSD DPCNSYPRSW ABRDNACECP EVAWMS PERFSTO EQM DPS LMSOMSD SWM SYS CPMMCNC OTP CSSCPO CPSD Tools Project Process Identify Block Structure Real-time critical Non-real-time critical

ETX/D/XPS-01:002 Uen 31 Focus On Block Interfaces... Tools Project Process Consider Block Dependencies

ETX/D/XPS-01:002 Uen 32 Documentation Documentation must evolve with the incremental design Focus on a few vital document types, e.g.: –Requirement Specification –Implementation Proposals –Function Specifications –Block Descriptions –Interface Descriptions Highly readable programs reduce the need for documentation (...but do not eliminate it)

ETX/D/XPS-01:002 Uen 33 Programming languages (control system) Erlang: ca 1 million lines of code –Nearly all the complex control logic –Operation & Maintenance –Web server and runtime HTML/JavaScript generation C/C++: ca 500k lines of code –Third party software –Low-level protocol drivers –Device drivers Java: ca 13k lines of code –Operator GUI applets

ETX/D/XPS-01:002 Uen 34 Experiences from AXD 301 SW Design Using Erlang in Complex Systems –Fits very well with the incremental design method –High programmer satisfaction –Outstanding support for robustness and concurrency –Very few side-effects  easier to add/change single components –Small directed teams can achieve impressive results Productivity estimates –Similar line/hour programmer productivity –4-10 fewer lines of source code (compared to C/C++, Java, PLEX) 4-10x higher programmer productivity –Similar number of faults per 1000 lines of source code 4-10x higher quality