SlideShare a Scribd company logo
1 of 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)

More Related Content

What's hot

Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Simplilearn
 

What's hot (20)

software quality
software qualitysoftware quality
software quality
 
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaStrengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
 
DevSecOps and the CI/CD Pipeline
 DevSecOps and the CI/CD Pipeline DevSecOps and the CI/CD Pipeline
DevSecOps and the CI/CD Pipeline
 
2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures
 
DevOps for beginners
DevOps for beginnersDevOps for beginners
DevOps for beginners
 
Software development process
Software development processSoftware development process
Software development process
 
Introduction to DevSecOps
Introduction to DevSecOpsIntroduction to DevSecOps
Introduction to DevSecOps
 
Devops insights
Devops insightsDevops insights
Devops insights
 
DevSecOps Implementation Journey
DevSecOps Implementation JourneyDevSecOps Implementation Journey
DevSecOps Implementation Journey
 
Instructions on how to create account in sonarcloud
Instructions on how to create account in sonarcloudInstructions on how to create account in sonarcloud
Instructions on how to create account in sonarcloud
 
DevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationDevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay Application
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Ch 3 software quality factor
Ch 3 software quality factorCh 3 software quality factor
Ch 3 software quality factor
 
Effective Software Release Management
Effective Software Release ManagementEffective Software Release Management
Effective Software Release Management
 
Funny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscapeFunny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscape
 
SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING
 
DevOps topologies
DevOps topologiesDevOps topologies
DevOps topologies
 
DevSecops: Defined, tools, characteristics, tools, frameworks, benefits and c...
DevSecops: Defined, tools, characteristics, tools, frameworks, benefits and c...DevSecops: Defined, tools, characteristics, tools, frameworks, benefits and c...
DevSecops: Defined, tools, characteristics, tools, frameworks, benefits and c...
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 

Similar to 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 to 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...
 

More from David Rosenblum

More from 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...
 

Recently uploaded

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
 

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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?
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 

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