Performance and Scalability of Distributed Software Architectures: An SPE Approach

Distributed systems were once the exception, constructed only rarely and with great difficulty by developers who spent significant amounts of time mastering the technology. Now, as modern software technologies have made distributed systems easier to construct, they have become the norm. Unfortunately, many distributed systems fail to meet their performance objectives when they are initially constructed. Others perform adequately with a small number of users but do not scale to support increased usage. These performance failures result in damaged customer relations, lost productivity for users, lost revenue, cost overruns due to tuning or redesign, and missed market windows. Our experience is that most performance failures are due to a lack of consideration of performance issues early in the development process, in the architectural phase. This paper discusses assessment of the performance characteristics of distributed software architectures using the Software Performance Engineering (SPE) approach. We describe the information required to perform such assessments, particularly the information about synchronization points and types of synchronization mechanisms, and the modeling approach. The case study demonstrates how to construct performance models for distributed systems and illustrates how simple models of software architectures are sufficient for early identification of performance problems.

[1]  Robert T. Goettge,et al.  PEDAS: An Expert System for Performance Engineering of Time-Critical Software , 1990, Int. CMG Conference.

[2]  Jerome Alexander Rolia,et al.  Predicting the performance of software systems , 1992 .

[3]  Daniel A. Menascé,et al.  Scaling for E-Business: Technologies, Models, Performance, and Capacity Planning , 2000 .

[4]  Jerome A. Rolia,et al.  The Method of Layers , 1995, IEEE Trans. Software Eng..

[5]  Connie U. Smith,et al.  Performance Engineering Evaluation of CORBA-based Distributed Systems with SPE*ED , 1998, Computer Performance Evaluation.

[6]  Paola Inverardi,et al.  An approach to performance evaluation of software architectures , 1998, WOSP '98.

[7]  Connie U. Smith,et al.  Performance Engineering of Software Systems , 1990, SIGMETRICS Perform. Evaluation Rev..

[8]  Shikharesh Majumdar,et al.  The Stochastic Rendezvous Network Model for Performance of Synchronous Client-Server-like Distributed Software , 1995, IEEE Trans. Computers.

[9]  Neil J. Gunther,et al.  e-Ticket Capacity Planning: Riding the e-Commerce Growth Curve , 2000, Int. CMG Conference.

[10]  Rick Kazman,et al.  The architecture tradeoff analysis method , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[11]  Alexander Thomasian,et al.  Performance Analysis of Task Systems Using a Queueing Network Model , 1985, PNPM.

[12]  Daniel A. Menascé,et al.  On a language based method for software performance engineering of client/server systems , 1998, WOSP '98.

[13]  Jerome A. Rolia,et al.  A Toolset for Performance Engineering and Software Design of Client-Server Systems , 1995, Perform. Evaluation.

[14]  C. Murray Woodside,et al.  Evaluating concurrency options in software specifications , 1999, MASCOTS '99. Proceedings of the Seventh International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems.

[15]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[16]  Connie U. Smith,et al.  Information Requirements for Software Performance Engineering , 1995, MMB.

[17]  Leonard J. Bass,et al.  Scenario-Based Analysis of Software Architecture , 1996, IEEE Softw..

[18]  Doug Neuse,et al.  Simulating Optimizes Move to Client/Server Applications , 1992, Int. CMG Conference.

[19]  Chung-Horng Lung,et al.  Performance-oriented software architecture engineering: an experience report , 1998, WOSP '98.

[20]  Herb Schwetman CSIM17: a simulation model-building toolkit , 1994, Proceedings of Winter Simulation Conference.

[21]  강문설 [서평]「The Unified Modeling Language User Guide」 , 1999 .

[22]  Diana Szumilas,et al.  Performance Engineering A Distributed Architecture (An Evaluation Of Proposed DCE And Encina Cells) , 1996, Int. CMG Conference.

[23]  Kevin Barraclough,et al.  I and i , 2001, BMJ : British Medical Journal.

[24]  Kent Beck,et al.  Lazy optimization: patterns for efficient Smalltalk programming , 1996 .

[25]  Adam Grummitt,et al.  A Performance Engineer's View of Systems Development and Trials , 1991, Int. CMG Conference.

[26]  Thomas J. Mowbray,et al.  AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis , 1998 .

[27]  Rob Pooley,et al.  Derivation of Petri Net Performance Models from UML Specifications of Communications Software , 2000, Computer Performance Evaluation / TOOLS.

[28]  Greg Hills,et al.  Performance Engineering of Distributed Software Process Architectures , 1995, MMB.