A Method for Design and Performance Modeling of Client/Server Systems

Designing complex distributed client/server applications that meet performance requirements may prove extremely difficult in practice if software developers are not willing or do not have the time to help software performance analysts. The paper advocates the need to integrate both design and performance modeling activities so that one can help the other. We present a method developed and used by the authors in the design of a fairly large and complex client/server application. The method is based on a software performance engineering language developed by one of the authors. Use cases were developed and mapped to a performance modeling specification using the language. A compiler for the language generates an analytic performance model for the system. Service demand parameters at servers, storage boxes, and networks are derived by the compiler from the system specification. A detailed model of DBMS query optimizers allows the compiler to estimate the number of I/Os and CPU time for SQL statements. The paper concludes with some results of the application that prompted the development of the method and language.

[1]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[2]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[3]  Naranker Dulay,et al.  Regis: a constructive development environment for distributed programs , 1994, Distributed Syst. Eng..

[4]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[5]  C. Murray Woodside,et al.  Performance of multi-level client-server systems with parallel service operations , 1998, WOSP '98.

[6]  Bran Selic,et al.  A wideband approach to integrating performance prediction into a software design environment , 1998, WOSP '98.

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

[8]  S. B. Yao,et al.  Optimization of query evaluation algorithms , 1979, ACM Trans. Database Syst..

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

[10]  Virgílio A. F. Almeida,et al.  A methodology for workload characterization of E-commerce sites , 1999, EC '99.

[11]  Larry Kerschberg,et al.  A software architectural design method for large-scale distributed information systems , 1996, Distributed Syst. Eng..

[12]  Clement T. Yu Distributed Database Query Processing , 1985, Query Processing in Database Systems.

[13]  Danièle Gardy,et al.  On the effect of join operations on relation sizes , 1989, TODS.

[14]  Patrick E. O'Neil,et al.  Database Principles, Programming, Performance , 1994 .

[15]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[16]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

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

[18]  Shikharesh Majumdar,et al.  Software Bootlenecking in Client-Server Systems and Rendezvous Networks , 1995, IEEE Trans. Software Eng..

[19]  David Lorge Parnas,et al.  Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .

[20]  Stephen S. Lavenberg,et al.  Mean-Value Analysis of Closed Multichain Queuing Networks , 1980, JACM.

[21]  Hassan Gomaa,et al.  Use cases for distributed real-time software architectures , 1997, Proceedings of 5th International Workshop on Parallel and Distributed Real-Time Systems and 3rd Workshop on Object-Oriented Real-Time Systems.

[22]  Virgílio A. F. Almeida,et al.  Capacity Planning for Web Performance: Metrics, Models, and Methods , 1998 .

[23]  H. Gomaa,et al.  Composition of software architectures from reusable architecture patterns , 1998, ISAW '98.

[24]  Helmut Hlavacs,et al.  Modeling user behavior: a layered approach , 1999, MASCOTS '99. Proceedings of the Seventh International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems.

[25]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[26]  Elizabeth O'Neil,et al.  Database--Principles, Programming, and Performance , 1994 .

[27]  Ivar Jacobson,et al.  Object-Oriented Software Engineering , 1991, TOOLS.

[28]  Sridhar Ramesh,et al.  A multi-layer client-server queueing network model with synchronous and asynchronous messages , 1998, WOSP '98.

[29]  Daniel A. Menascé,et al.  A Framework for Software Performance Engineering of Client/Server Systems , 1997, Int. CMG Conference.

[30]  Virgílio A. F. Almeida,et al.  Capacity Planning and Performance Modeling: From Mainframes to Client-Server Systems , 1994 .

[31]  Silvio Salza,et al.  Evaluating the size of queries on relational databases with non-uniform distribution and stochastic dependence , 1989, SIGMOD '89.

[32]  Yelena Yesha,et al.  An analytic model of hierarchical mass storage systems with network-attached storage devices , 1996, SIGMETRICS '96.

[33]  Arun N. Swami,et al.  Estimating page fetches for index scans with finite LRU buffers , 1994, SIGMOD '94.

[34]  Patrick O'Neil Database systems: principles, programming, performance , 1994 .

[35]  Virgílio A. F. Almeida,et al.  Capacity planning for web performance: metrics , 1998 .

[36]  Hassan Gomaa,et al.  Automated configuration of distributed applications from reusable software architectures , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[37]  Leonard D. Shapiro,et al.  Join processing in database systems with large main memories , 1986, TODS.

[38]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[39]  Naranker Dulay,et al.  A constructive development environment for parallel and distributed programs , 1994, Proceedings of 2nd International Workshop on Configurable Distributed Systems.

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

[41]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[42]  Stavros Christodoulakis,et al.  Estimating block transfers and join sizes , 1983, SIGMOD '83.

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

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

[45]  Sridhar Ramesh,et al.  A Multilayer Client-Server Queueing Network Model with Synchronous and Asynchronous Messages , 2000, IEEE Trans. Software Eng..

[46]  Hassan Gomaa Use cases for distributed real-time software architectures , 2001 .

[47]  Virgílio A. F. Almeida,et al.  Performance of Client/Server Systems , 2000, Performance Evaluation.

[48]  Larry Kerschberg,et al.  A performance oriented design methodology for large-scale distributed data intensive information systems , 1995, Proceedings of First IEEE International Conference on Engineering of Complex Computer Systems. ICECCS'95.

[49]  Kevin Loney,et al.  Oracle: The Complete Reference, Electronic Edition , 1996 .

[50]  David Harel,et al.  On visual formalisms , 1988, CACM.