SlideShare una empresa de Scribd logo
1 de 25
Scalability in
Software Systems Engineering
  The Good, the Bad, and the Ugly

         David S. Rosenblum
     Professor of Software Systems
   Director, London Software Systems


            Inaugural Lecture, 13 December 2004   © 2004
The Concept of Scalability
The Importance of Scalability
   Gartner predictions for 2008
        Moore’s Law continues to hold
            Desktop PC: 4–8 CPUs @ 40GHz, 4–12GB
             RAM, 1.5TB storage, 100Gb network
        Desktop PCs < 50% of end-user devices
        Bandwidth more cost-effective than
         computing

    But only if software systems can scale!
    But only if software systems can scale!
                                                    3
Some Notions of Scalability (1)
“Scalability is a key requirement for the corporate
   content infrastructure, … [which] needs to be
   capable of handling high volumes of content as
   well as of fulfilling high performance
   requirements.”
                                        — Documentum

“The Java 2 Platform, Micro Edition (J2ME) technology
   from Sun Microsystems, Inc. is used by developers
   to scale Java technology-based applications into
   small consumer and embedded devices.”
                                   — Sun Microsystems
                                                    4
Some Notions of Scalability (2)
“[A Session Announcement Protocol] announcement is
    multicast with the same scope as the session it is
    announcing … [This is] important for the
    scalability of the protocol, as it keeps local
    session announcements local.”
                       — Mark Handley et al., RFC 2974


“Scalability: the ease with which a system or
   component can be modified to fit the problem
   area.”
                     — Software Engineering Institute5
What Is Scalability?
   Is It High Performance?
       Computations/messages/transactions per
        second
       Fixed-size and fixed-time parallel speedup
   Is It Computational Complexity?
       Time and space complexity of algorithms
   Is It Abstraction?
       Example: programmer productivity versus
        expressive power of programming languages
        It is a characterisation of resource
         It is a characterisation of resource
    consumption as a function of problem size
     consumption as a function of problem size       6
Techniques for
Achieving Scalability
Scalability in My Own Research
   Continual interest in problems of
    engineering large-scale software
    systems
       Scalable software infrastructures
       Scalable software development tools
   Many techniques used to achieve
    scalability
       Each has an associated cost
       Each was chosen serendipitously
                                              8
Technique #1
Abstraction

   Intuition: Analyse larger systems by
    ignoring the “nonessential detail”
   Cost: Abstraction can hide useful
    information and introduce
    inaccuracies
   Example: 5ESS Build Process Studies
    (1991–1994)
A.L. Wolf and D.S. Rosenblum, “A Study in Software Process Data Capture and Analysis”,
                                                                                          9
Proc. 2nd Int’l Conf. on the Software Process, Berlin, Germany, Feb. 1993, pp. 115–124.
The 5ESS®
 Switching System Software
    Primary central office switch product of
     Lucent (formerly AT&T)
    By the numbers (c. 1994)
        5–7 million lines of code in 50+ subsystems
        2000 developers
        New version built every 4 weeks
        2 hours downtime per year (“The Good”)
            Except on 15 January 1990 (“The Ugly”)


“It’s not just a program—it’s a field of study!”
“It’s not just a program—it’s a field of study!”       10
The 5ESS Build Process
   Nominally required 1 week to compile new
    version of software into executable form
   Frequently took 2–3 weeks (“The Bad”)
       Simple syntax and semantics errors required
        frequent restart of build
   What are the “problem subsystems”?
       Events from build tools give very accurate
        abstract characterisation of process


                                                      11
Technique #2
Execution

   Intuition: Observing individual executions
    is easier than analysing whole programs
   Cost: Forgo results about all executions
   Example: Runtime assertion checking
         ANNA (ANNotated Ada) (1983–1988)
              Attain benefits of systematic specification without
               difficulties and costs of formal proofs of correctness
         APP (1988–1996)
              Assertions detected 80% of faults in case study
              Assertion diagnostics quickly isolated faults

    D.S. Rosenblum, “A Practical Approach to Programming with Assertions”,
                                                                                       13
    IEEE Transactions on Software Engineering, Vol. 21, No. 1, Jan. 1995, pp. 19–31.
Technique #3
Coarse-Grained Analysis

   Intuition: Variant of abstraction
   Cost: Reduced precision
   Example: TestTube (1991–2001)
        Selective regression testing of C programs
        Existing approaches worked at statement level
        TestTube analyses test coverage in terms of
         Functions + Global Vars + Types + Macros
        First large empirical study of selective
         regression testing (30 KLOC)
Y.-F. Chen, D.S. Rosenblum and K.-P. Vo, “TestTube: A System for Selective Regression
Testing”, Proc. 16th Int’l Conf. on Software Engineering, Sorrento, Italy, May 1994,
pp. 211–220.                                                                            14
Technique #4
Distribution

     Intuition: Build or analyse larger systems
      by partitioning the solution
          Enhance with replication, decentralisation,
           localisation, multicasting, …
     Cost: Increased complexity of solution
     Example: SIENA (1996- )
          Internet-scale publish/subscribe network
           communication

    A. Carzaniga, D.S. Rosenblum and A.L. Wolf, “Design and Evaluation of a Wide-Area
    Event Notification Service”, ACM Transactions on Computer Systems, Vol. 19, No. 3,
                                                                                         15
    August 2001, pp. 332–383.
Publish/Subscribe
  A natural communication style for asynchronous,
  A natural communication style for asynchronous,
    real-time, distributed content dissemination
     real-time, distributed content dissemination




Publishers      Publish/Subscribe Infrastructure        Subscribers




             Infrastructure register subscriptions to
              Publishers publish notifications with
                Subscribers delivers notifications
                Infrastructure determines which
             subscriptions matchinformation
               characterizing information interests
                     interesting subscribers
                      matching which notifications

                                                                      16
SIENA Content-Based Routing
                                             s1:1
                                             s1:1
                                             s2:5
                                             s2:5
                          s1:a
                          s1:a
a                                        2
                      1   s2:2
                          s2:2


                             s1:2                                  s1:2
                                                                   s1:2
                             s1:2
                             s2:8
                             s2:8                              3
                                    5
    s1:1
    s1:1   4                            s1:3
                                        s1:3    6


                                                    s1:3
                                                    s1:3
                                                           7
                                                                    n1
               s1:5
               s1:5   8
b              s2:b
               s2:b                             9
                                         s1:6
                                         s1:6
                                                                          17
Technique #5
Approximation

   Intuition: Handle larger problem sizes by forgoing
    exact results
   Cost: False positives and/or false negatives
   Example: PreCache (2001–2003)
       Conservative approximate matching algorithms for
        improved performance in publish/subscribe networking
           O(1) and O(log k) matching time against k subscriptions
   Was scalability achieved?
       Approximation increases messages traffic
       Increased traffic requires increased matching
                                                                      18
Other Techniques

6.       Compositionality
     o    Intuition: Subdivide problem,
          manipulate pieces, compose results
     o    Different from Distribution


7.       Scale with Moore’s Law
     o    Intuition: Hope that physics saves you
     o    This has worked for regression testing
                                                   19
The Future:
Scalability Engineering
Scalability Questions
   How can one demonstrate the ability of a
    system like 5ESS to scale before trying to
    implement it and deploy it on thousands of
    computers across the world?
   What information about a software system
    enables prediction of its scalability?
   What design characteristics increase or
    decrease (or contribute to or detract from)
    scalability?
                                              21
Scalability Engineering
   A principled basis for
       Choosing and applying scalability
        enabling techniques
       Evaluating scalability of software system
        designs and implementations
       Choosing scalable engineering methods
       Comparing scalability of different
        designs/implementations/methods
                                                22
Conclusion
Conclusion
    Scalability is an increasingly important
     issue for software systems engineering
    Everybody talks about it
    Yet we lack well-defined, applicable,
     measurable principles of scalability

Scalability engineering should become a part
Scalability engineering should become a part
of every software system engineering effort
 of every software system engineering effort
                                                24
Scalability in Software Systems Engineering: The Good, the Bad, and the Ugly (Inaugural Lecture as Professor of Software Systems)

Más contenido relacionado

La actualidad más candente

IT4IT / DevOps Tooling Landscape 2022
IT4IT / DevOps Tooling Landscape 2022 IT4IT / DevOps Tooling Landscape 2022
IT4IT / DevOps Tooling Landscape 2022
Rob Akershoek
 

La actualidad más candente (20)

Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)
 
App Modernization Pitch Deck.pptx
App Modernization Pitch Deck.pptxApp Modernization Pitch Deck.pptx
App Modernization Pitch Deck.pptx
 
Making the business case for DevOps
Making the business case for DevOpsMaking the business case for DevOps
Making the business case for DevOps
 
DevOps Best Practices
DevOps Best PracticesDevOps Best Practices
DevOps Best Practices
 
Cloud architecture with the ArchiMate Language
Cloud architecture with the ArchiMate LanguageCloud architecture with the ArchiMate Language
Cloud architecture with the ArchiMate Language
 
Microservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design PatternMicroservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design Pattern
 
Togaf 9.2 Introduction
Togaf 9.2 IntroductionTogaf 9.2 Introduction
Togaf 9.2 Introduction
 
Splunk Webinar: Full-Stack End-to-End SAP-Monitoring mit Splunk
Splunk Webinar: Full-Stack End-to-End SAP-Monitoring mit SplunkSplunk Webinar: Full-Stack End-to-End SAP-Monitoring mit Splunk
Splunk Webinar: Full-Stack End-to-End SAP-Monitoring mit Splunk
 
How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your Organization
 
DevOps - Transforming the Traditional SDLC
DevOps - Transforming the Traditional SDLCDevOps - Transforming the Traditional SDLC
DevOps - Transforming the Traditional SDLC
 
A cloud readiness assessment framework
A cloud readiness assessment frameworkA cloud readiness assessment framework
A cloud readiness assessment framework
 
Modeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 LanguageModeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 Language
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPT
 
Plugin architecture (Extensible Application Architecture)
Plugin architecture (Extensible Application Architecture)Plugin architecture (Extensible Application Architecture)
Plugin architecture (Extensible Application Architecture)
 
Microservices Architecture for e-Commerce
Microservices Architecture for e-CommerceMicroservices Architecture for e-Commerce
Microservices Architecture for e-Commerce
 
IT4IT / DevOps Tooling Landscape 2022
IT4IT / DevOps Tooling Landscape 2022 IT4IT / DevOps Tooling Landscape 2022
IT4IT / DevOps Tooling Landscape 2022
 
Devops
DevopsDevops
Devops
 
Low-Code App Development
Low-Code App DevelopmentLow-Code App Development
Low-Code App Development
 
SRE 101 (Site Reliability Engineering)
SRE 101 (Site Reliability Engineering)SRE 101 (Site Reliability Engineering)
SRE 101 (Site Reliability Engineering)
 
Future Of DevOps Trends 2023
Future Of DevOps Trends 2023Future Of DevOps Trends 2023
Future Of DevOps Trends 2023
 

Similar a Scalability in Software Systems Engineering: The Good, the Bad, and the Ugly (Inaugural Lecture as Professor of Software Systems)

Chi2011 Case Study: Interactive, Dynamic Sparklines
Chi2011 Case Study: Interactive, Dynamic SparklinesChi2011 Case Study: Interactive, Dynamic Sparklines
Chi2011 Case Study: Interactive, Dynamic Sparklines
Leo Frishberg
 
Open source evolution analysis
Open source evolution analysisOpen source evolution analysis
Open source evolution analysis
Izzat Alsmadi
 

Similar a Scalability in Software Systems Engineering: The Good, the Bad, and the Ugly (Inaugural Lecture as Professor of Software Systems) (20)

ppbench - A Visualizing Network Benchmark for Microservices
ppbench - A Visualizing Network Benchmark for Microservicesppbench - A Visualizing Network Benchmark for Microservices
ppbench - A Visualizing Network Benchmark for Microservices
 
Chi2011 Case Study: Interactive, Dynamic Sparklines
Chi2011 Case Study: Interactive, Dynamic SparklinesChi2011 Case Study: Interactive, Dynamic Sparklines
Chi2011 Case Study: Interactive, Dynamic Sparklines
 
Innoslate the Gateway to SysML 2.0 and Beyond
Innoslate the Gateway to SysML 2.0 and BeyondInnoslate the Gateway to SysML 2.0 and Beyond
Innoslate the Gateway to SysML 2.0 and Beyond
 
Sudha Madhuri Yagnamurthy Resume 2 (5)
Sudha Madhuri Yagnamurthy Resume 2 (5)Sudha Madhuri Yagnamurthy Resume 2 (5)
Sudha Madhuri Yagnamurthy Resume 2 (5)
 
Chandra_CV 3 8Yr Exp
Chandra_CV 3 8Yr Exp Chandra_CV 3 8Yr Exp
Chandra_CV 3 8Yr Exp
 
Bikram kishor rout
Bikram kishor routBikram kishor rout
Bikram kishor rout
 
Bikram kishor rout
Bikram kishor routBikram kishor rout
Bikram kishor rout
 
Put Your Hands in the Mud: What Technique, Why, and How
Put Your Hands in the Mud: What Technique, Why, and HowPut Your Hands in the Mud: What Technique, Why, and How
Put Your Hands in the Mud: What Technique, Why, and How
 
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case
 
Bridging Concepts and Practice in eScience via Simulation-driven Engineering
Bridging Concepts and Practice in eScience via Simulation-driven EngineeringBridging Concepts and Practice in eScience via Simulation-driven Engineering
Bridging Concepts and Practice in eScience via Simulation-driven Engineering
 
IRJET- Extension to Visual Information Narrator using Neural Network
IRJET- Extension to Visual Information Narrator using Neural NetworkIRJET- Extension to Visual Information Narrator using Neural Network
IRJET- Extension to Visual Information Narrator using Neural Network
 
Smriti shikha cv
Smriti shikha cvSmriti shikha cv
Smriti shikha cv
 
Cloud Native Summit 2019 Summary
Cloud Native Summit 2019 SummaryCloud Native Summit 2019 Summary
Cloud Native Summit 2019 Summary
 
Satyam_Singh_cv
Satyam_Singh_cvSatyam_Singh_cv
Satyam_Singh_cv
 
Tool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software EngineeringTool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software Engineering
 
Vishal_Resume
Vishal_ResumeVishal_Resume
Vishal_Resume
 
Unit 2 Java
Unit 2 JavaUnit 2 Java
Unit 2 Java
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and Challenges
 
Open source evolution analysis
Open source evolution analysisOpen source evolution analysis
Open source evolution analysis
 
Automated Construction of Node Software Using Attributes in a Ubiquitous Sens...
Automated Construction of Node Software Using Attributes in a Ubiquitous Sens...Automated Construction of Node Software Using Attributes in a Ubiquitous Sens...
Automated Construction of Node Software Using Attributes in a Ubiquitous Sens...
 

Más de David Rosenblum

Más de David Rosenblum (16)

The Challenges of Probabilistic Thinking (keynote talk at ICFEM 2017)
The Challenges of Probabilistic Thinking (keynote talk at ICFEM 2017)The Challenges of Probabilistic Thinking (keynote talk at ICFEM 2017)
The Challenges of Probabilistic Thinking (keynote talk at ICFEM 2017)
 
The Power of Probabilistic Thinking (keynote talk at ASE 2016)
The Power of Probabilistic Thinking (keynote talk at ASE 2016)The Power of Probabilistic Thinking (keynote talk at ASE 2016)
The Power of Probabilistic Thinking (keynote talk at ASE 2016)
 
Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...
Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...
Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...
 
Career Management (invited talk at ICSE 2014 NFRS)
Career Management (invited talk at ICSE 2014 NFRS)Career Management (invited talk at ICSE 2014 NFRS)
Career Management (invited talk at ICSE 2014 NFRS)
 
Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...
 
Probability and Uncertainty in Software Engineering (keynote talk at NASAC 2013)
Probability and Uncertainty in Software Engineering (keynote talk at NASAC 2013)Probability and Uncertainty in Software Engineering (keynote talk at NASAC 2013)
Probability and Uncertainty in Software Engineering (keynote talk at NASAC 2013)
 
Felicitous Computing (invited Talk for UC Irvine ISR Distinguished Speaker Se...
Felicitous Computing (invited Talk for UC Irvine ISR Distinguished Speaker Se...Felicitous Computing (invited Talk for UC Irvine ISR Distinguished Speaker Se...
Felicitous Computing (invited Talk for UC Irvine ISR Distinguished Speaker Se...
 
Whither Software Engineering Research? (keynote talk at APSEC 2012)
Whither Software Engineering Research? (keynote talk at APSEC 2012)Whither Software Engineering Research? (keynote talk at APSEC 2012)
Whither Software Engineering Research? (keynote talk at APSEC 2012)
 
SIGSOFT Impact Award: Reflections and Prospects (invited talk at SIGSOFT FSE ...
SIGSOFT Impact Award: Reflections and Prospects (invited talk at SIGSOFT FSE ...SIGSOFT Impact Award: Reflections and Prospects (invited talk at SIGSOFT FSE ...
SIGSOFT Impact Award: Reflections and Prospects (invited talk at SIGSOFT FSE ...
 
Content-Based Publish/Subscribe: A Re-Assessment (keynote talk at DOA 2005)
Content-Based Publish/Subscribe: A Re-Assessment (keynote talk at DOA 2005)Content-Based Publish/Subscribe: A Re-Assessment (keynote talk at DOA 2005)
Content-Based Publish/Subscribe: A Re-Assessment (keynote talk at DOA 2005)
 
Some Open Problems in Publish/Subscribe Networking (keynote talk at DEBS 2003)
Some Open Problems in Publish/Subscribe Networking (keynote talk at DEBS 2003)Some Open Problems in Publish/Subscribe Networking (keynote talk at DEBS 2003)
Some Open Problems in Publish/Subscribe Networking (keynote talk at DEBS 2003)
 
Assertions a Decade Later (invited talk at ICSE 2002)
Assertions a Decade Later (invited talk at ICSE 2002)Assertions a Decade Later (invited talk at ICSE 2002)
Assertions a Decade Later (invited talk at ICSE 2002)
 
Scalability: What It Is and How to Analyze It (keynote talk at SBES 2007)
Scalability: What It Is and How to Analyze It (keynote talk at SBES 2007)Scalability: What It Is and How to Analyze It (keynote talk at SBES 2007)
Scalability: What It Is and How to Analyze It (keynote talk at SBES 2007)
 
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
 
High-Confidence Ubiquitous Computing Systems (invited talk at ISHCS 2011)
High-Confidence Ubiquitous Computing Systems (invited talk at ISHCS 2011)High-Confidence Ubiquitous Computing Systems (invited talk at ISHCS 2011)
High-Confidence Ubiquitous Computing Systems (invited talk at ISHCS 2011)
 
Applications and Abstractions: A Cautionary Tale (invited talk at a DIMACS Wo...
Applications and Abstractions: A Cautionary Tale (invited talk at a DIMACS Wo...Applications and Abstractions: A Cautionary Tale (invited talk at a DIMACS Wo...
Applications and Abstractions: A Cautionary Tale (invited talk at a DIMACS Wo...
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

Scalability in Software Systems Engineering: The Good, the Bad, and the Ugly (Inaugural Lecture as Professor of Software Systems)

  • 1. Scalability in Software Systems Engineering The Good, the Bad, and the Ugly David S. Rosenblum Professor of Software Systems Director, London Software Systems Inaugural Lecture, 13 December 2004 © 2004
  • 2. The Concept of Scalability
  • 3. The Importance of Scalability  Gartner predictions for 2008  Moore’s Law continues to hold  Desktop PC: 4–8 CPUs @ 40GHz, 4–12GB RAM, 1.5TB storage, 100Gb network  Desktop PCs < 50% of end-user devices  Bandwidth more cost-effective than computing But only if software systems can scale! But only if software systems can scale! 3
  • 4. Some Notions of Scalability (1) “Scalability is a key requirement for the corporate content infrastructure, … [which] needs to be capable of handling high volumes of content as well as of fulfilling high performance requirements.” — Documentum “The Java 2 Platform, Micro Edition (J2ME) technology from Sun Microsystems, Inc. is used by developers to scale Java technology-based applications into small consumer and embedded devices.” — Sun Microsystems 4
  • 5. Some Notions of Scalability (2) “[A Session Announcement Protocol] announcement is multicast with the same scope as the session it is announcing … [This is] important for the scalability of the protocol, as it keeps local session announcements local.” — Mark Handley et al., RFC 2974 “Scalability: the ease with which a system or component can be modified to fit the problem area.” — Software Engineering Institute5
  • 6. What Is Scalability?  Is It High Performance?  Computations/messages/transactions per second  Fixed-size and fixed-time parallel speedup  Is It Computational Complexity?  Time and space complexity of algorithms  Is It Abstraction?  Example: programmer productivity versus expressive power of programming languages It is a characterisation of resource It is a characterisation of resource consumption as a function of problem size consumption as a function of problem size 6
  • 8. Scalability in My Own Research  Continual interest in problems of engineering large-scale software systems  Scalable software infrastructures  Scalable software development tools  Many techniques used to achieve scalability  Each has an associated cost  Each was chosen serendipitously 8
  • 9. Technique #1 Abstraction  Intuition: Analyse larger systems by ignoring the “nonessential detail”  Cost: Abstraction can hide useful information and introduce inaccuracies  Example: 5ESS Build Process Studies (1991–1994) A.L. Wolf and D.S. Rosenblum, “A Study in Software Process Data Capture and Analysis”, 9 Proc. 2nd Int’l Conf. on the Software Process, Berlin, Germany, Feb. 1993, pp. 115–124.
  • 10. The 5ESS® Switching System Software  Primary central office switch product of Lucent (formerly AT&T)  By the numbers (c. 1994)  5–7 million lines of code in 50+ subsystems  2000 developers  New version built every 4 weeks  2 hours downtime per year (“The Good”)  Except on 15 January 1990 (“The Ugly”) “It’s not just a program—it’s a field of study!” “It’s not just a program—it’s a field of study!” 10
  • 11. The 5ESS Build Process  Nominally required 1 week to compile new version of software into executable form  Frequently took 2–3 weeks (“The Bad”)  Simple syntax and semantics errors required frequent restart of build  What are the “problem subsystems”?  Events from build tools give very accurate abstract characterisation of process 11
  • 12.
  • 13. Technique #2 Execution  Intuition: Observing individual executions is easier than analysing whole programs  Cost: Forgo results about all executions  Example: Runtime assertion checking  ANNA (ANNotated Ada) (1983–1988)  Attain benefits of systematic specification without difficulties and costs of formal proofs of correctness  APP (1988–1996)  Assertions detected 80% of faults in case study  Assertion diagnostics quickly isolated faults D.S. Rosenblum, “A Practical Approach to Programming with Assertions”, 13 IEEE Transactions on Software Engineering, Vol. 21, No. 1, Jan. 1995, pp. 19–31.
  • 14. Technique #3 Coarse-Grained Analysis  Intuition: Variant of abstraction  Cost: Reduced precision  Example: TestTube (1991–2001)  Selective regression testing of C programs  Existing approaches worked at statement level  TestTube analyses test coverage in terms of Functions + Global Vars + Types + Macros  First large empirical study of selective regression testing (30 KLOC) Y.-F. Chen, D.S. Rosenblum and K.-P. Vo, “TestTube: A System for Selective Regression Testing”, Proc. 16th Int’l Conf. on Software Engineering, Sorrento, Italy, May 1994, pp. 211–220. 14
  • 15. Technique #4 Distribution  Intuition: Build or analyse larger systems by partitioning the solution  Enhance with replication, decentralisation, localisation, multicasting, …  Cost: Increased complexity of solution  Example: SIENA (1996- )  Internet-scale publish/subscribe network communication A. Carzaniga, D.S. Rosenblum and A.L. Wolf, “Design and Evaluation of a Wide-Area Event Notification Service”, ACM Transactions on Computer Systems, Vol. 19, No. 3, 15 August 2001, pp. 332–383.
  • 16. Publish/Subscribe A natural communication style for asynchronous, A natural communication style for asynchronous, real-time, distributed content dissemination real-time, distributed content dissemination Publishers Publish/Subscribe Infrastructure Subscribers Infrastructure register subscriptions to Publishers publish notifications with Subscribers delivers notifications Infrastructure determines which subscriptions matchinformation characterizing information interests interesting subscribers matching which notifications 16
  • 17. SIENA Content-Based Routing s1:1 s1:1 s2:5 s2:5 s1:a s1:a a 2 1 s2:2 s2:2 s1:2 s1:2 s1:2 s1:2 s2:8 s2:8 3 5 s1:1 s1:1 4 s1:3 s1:3 6 s1:3 s1:3 7 n1 s1:5 s1:5 8 b s2:b s2:b 9 s1:6 s1:6 17
  • 18. Technique #5 Approximation  Intuition: Handle larger problem sizes by forgoing exact results  Cost: False positives and/or false negatives  Example: PreCache (2001–2003)  Conservative approximate matching algorithms for improved performance in publish/subscribe networking  O(1) and O(log k) matching time against k subscriptions  Was scalability achieved?  Approximation increases messages traffic  Increased traffic requires increased matching 18
  • 19. Other Techniques 6. Compositionality o Intuition: Subdivide problem, manipulate pieces, compose results o Different from Distribution 7. Scale with Moore’s Law o Intuition: Hope that physics saves you o This has worked for regression testing 19
  • 21. Scalability Questions  How can one demonstrate the ability of a system like 5ESS to scale before trying to implement it and deploy it on thousands of computers across the world?  What information about a software system enables prediction of its scalability?  What design characteristics increase or decrease (or contribute to or detract from) scalability? 21
  • 22. Scalability Engineering  A principled basis for  Choosing and applying scalability enabling techniques  Evaluating scalability of software system designs and implementations  Choosing scalable engineering methods  Comparing scalability of different designs/implementations/methods 22
  • 24. Conclusion  Scalability is an increasingly important issue for software systems engineering  Everybody talks about it  Yet we lack well-defined, applicable, measurable principles of scalability Scalability engineering should become a part Scalability engineering should become a part of every software system engineering effort of every software system engineering effort 24