This Article 
 Bibliographic References 
 Add to: 
A Method for Design and Performance Modeling of Client/Server Systems
November 2000 (vol. 26 no. 11)
pp. 1066-1085

Abstract—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. This 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] G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide. Addison Wesley, 1999.
[2] S. Christodoulakis, “Estimating Block Transfers and Join Sizes,” Proc. ACM 1983 SIGMOD Conf., pp. 40-54, May, 1983.
[3] G. Franks and M. Woodside, “Performance of Multi-Level Client-Server Systems with Parallel Service Operations,” Proc. First Int'l Workshop Software and Performance, Oct. 1998.
[4] G. Franks, A. Hubbard, S. Majumdar, D. Petriu, J. Rolia, and C.M. Woodside, “A Toolset for Performance Engineering and Software Design of Client-Server Systems,” Performance Evaluation J., vol. 24, no. 1-2, pp. 117-135, Nov. 1995.
[5] D. Gardy and C. Puech, “On the Effect of Join Operations on Relation Sizes,” ACM Trans. Database Systems, vol. 14, no. 4, pp. 574-603, Dec. 1989.
[6] H. Gomaa and G. Farrukh, “Composition of Software Architectures from Reusable Architecture Patterns,” Proc. IEEE Int'l Workshop Software Architectures, Nov. 1998.
[7] H. Gomaa, “Use Cases for Distributed Real-Time Software Architectures,” J. Parallel and Distributed Computing Practices, June 1998.
[8] H. Gomaa and G. Farrukh, “Automated Configuration of Distributed Applications from Reusable Software Architectures,” Proc. IEEE Int'l Conf. Automated Software Engineering, Nov. 1997.
[9] H. Gomaa, D.A. Menascé, and L. Kerschberg, “A Software Architectural Design Method for Large-Scale Distributed Data Intensive Information Systems,” Journal of Distributed Systems Engineering, vol. 3, pp. 162-172, 1996.
[10] H. Gomaa, Designing Concurrent, Distributed, and Real-Time Applications with UML. Addison Wesley, 1993.
[11] A Grummitt, “A Performance Engineer's View of System Development and Trials,” Proc. 1991 Computer Measurement Group Conf., pp. 455-463, Dec. 1991.
[12] D. Harel, "On Visual Formalisms," Comm. ACM, May 1988, pp. 514-530.
[13] H. Hlavacs and G. Kotsis, “Modeling User Behavior: A Layered Approach,” Proc. Seventh Int'l Symp. Modeling, Oct. 1999.
[14] I. Jacobson, G. Booch, and J. Rumbaugh, The Unified Software Development Process, Addison-Wesley, Boston, 1999.
[15] I. Jacobson, M. Christerson, P. Jonsson, and G. Overgaard, Object-Oriented Software Engineering. Reading, Mass.: Addison Wesley, 1992.
[16] G. Koch and K. Loney, Oracle: The Complete Reference Electronic Edition. Oracle Press, 1996.
[17] D.C. Luckham,J.J. Kenney,L.M. Augustin,J. Vera,D. Bryan,, and W. Mann,“Specification and analysis of system architecture usingRapide,” IEEE Transactions on Software Engineering, vol. 21, no. 4, pp. 336-355, Apr. 1995.
[18] J. Magee, N. Dulay, and J. Kramer, “Regis: A Constructive Development Environment for Parallel and Distributed Programs,” J. Distributed Systems Eng., pp. 304-312, 1994.
[19] D.A. Menascé and H. Gomaa, “On a Language Based Method for Software Performance Engineering of Client/Server Systems,” Proc. First Int'l Workshop Software and Performance, Oct. 1998.
[20] D.A. Menascé and V.A.F. Almeida, “Performance of Client/Server Systems,” Performance Evaluation—Origins and Directions, G. Haring, C. Lindemann, and M. Reiser, eds. Springer-Verlag, 2000.
[21] D.A. Menascé and V.A.F. Almeida, “Capacity Planning for Web Performance: Metrics, Methods, and Models.” Upper Saddle River, N.J.: Prentice Hall, 1998.
[22] D.A. Menascé, “A Framework for Software Performance Engineering of Client/Server Systems,” Proc. 1997 Computer Measurement Group Conf., Dec. 1997.
[23] D.A. Menascé, “CLISSPE: A Language for Client/Server Software Performance Engineering,” technical report, Dept. of Computer Science, George Mason Univ., Jan. 1997, http://www.cs.gmu. edu/~menasceclisspe.
[24] D. Menansce, V. Almeida, R. Fonseca, and M. Mendes, “A Methodology for Workload Characterization of e-Commerce Sites,” Proc. ACM Conf. Electronic Commerce, 1999.
[25] D.A. Menascé, O. Pentakalos, and Y. Yesha, “An Analytic Model of Hierarchical Mass Storage Systems with Network-Attached Storage Devices,” Proc. ACM Sigmetrics Conf., May 1996.
[26] D.A. Menascé, H. Gomaa, and L. Kerschberg, “A Performance-Oriented Design Methodology for Large-Scale Distributed Data Intensive Information Systems,” Proc. First IEEE Int'l Conf. Eng. of Complex Computer Systems, Nov. 1995.
[27] D.A. Menascé, V.A.F. Almeida, and L.W. Dowdy, Capacity Planning and Performance Modeling: From Mainframes to Client-Server Systems.Englewood Cliffs, N.J.: Prentice Hall, 1994.
[28] J.E. Neilson, C.M. Woodside, D.C. Petriu, and S. Majumdar, “Software Bottlenecking in Client-Server Systems and Rendez-vous Networks,” IEEE Trans. Software Eng., vol. 21, no. 9, pp. 776-782, Sept. 1995.
[29] P. O'Neil, Database Principles, Programming, Performance. San Francisco: Morgan Kauffman, 1994.
[30] D. Parnas, “Designing Software for Ease of Extension and Contraction,” IEEE Trans. Software Eng., Mar. 1979.
[31] D.L. Parnas, "On the Criteria to be Used in Decomposing Systems into Software Modules," Comm. ACM, Dec. 1972, pp. 1,053-1,058.
[32] S. Ramesh and H.G. Perros, “A Multi-Layer Client-Server Queuing Network Model with Synchronous and Asynchronous Messages,” Proc. First Int'l Workshop Software and Performance, Oct. 1998.
[33] M. Reiser and S. Lavenberg, “Mean-Value Analysis of Closed Multichain Queueing Networks,” J. ACM, vol. 27, no. 2, pp. 313-322, 1980.
[34] J. Rolia and K. Sevcik, “The Method of Layers,” IEEE Tran. Software Eng., vol. 21, no. 8, pp. 689–700, Aug. 1995.
[35] J. Rumbaugh, I. Jacobson, and G. Booch, The Unified Modeling Language Reference Manual. Addison-Wesley, 1999.
[36] C.L. Chang, R.A. Stachowitz, and J.B. Combs, “Validation of Nonmonotonic Knowledge-Based Systems,” Proc. IEEE Int'l Conf. Tools for Artificial Intelligence, Nov. 1990.
[37] S. Salza and M. Terranova, “Evaluating the Size of Queries on Relational Databases with Non-Uniform Distribution and Stochastic Dependence,” Proc. ACM SIGMOD Conf., pp. 8-14, June 1989.
[38] L. Shapiro, "Join Processing in Database Systems with Large Main Memories," ACM Trans. Database Systems, vol. 11, no. 3, Sept. 1986.
[39] M. Shaw and D. Garlan, Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996.
[40] C. Smith, P. Clements, and M. Woodside, Proc. First Int'l Workshop Software and Performance, Oct. 1998.
[41] C. Smith, Performance Engineering of Software Systems. Reading, Mass.: Addison Wesley, 1990.
[42] A. Swami and K.B. Schiefer, “Estimating Page Fetches for Index Scans with Finite LRU Buffers,” Proc. ACM SIGMOD Conference, pp. 173-184, 1994.
[43] C.M. Woodside, J.E. Neilson, D.C. Petriu, and S. Majumdar, “The Stochastic Rendezvous Network Model for the Performance of Synchronous Client-Server-Like Distributed Software,” IEEE Trans. Computer, vol. 44, no. 1, pp. 20–34, Jan. 1995.
[44] S.B. Yao, “Optimization of Query Evaluation Algorithms,” ACM Trans. Database Systems, vol. 4, no. 2, pp. 133-155 Sept. 1979.
[45] C.T. Yu, “Distributed Database Query Processing,” Query Processing in Database Systems, W. Kim, D. Reiner and D. Batory, eds. Springer-Verlag, 1985.
[46] M. Woodside, C. Hrischuck, B. Selic, and S. Bayarov, “A Wideband Approach to Integrating Performance Prediction into a Software Design Environment,” Proc. First Int'l Workshop Software and Performance, Oct. 1998.

Index Terms:
Software performance engineering, performance models, client/server systems, queuing networks, database query optimization, UML, CLISSPE.
Daniel A. Menascé, Hassan Gomaa, "A Method for Design and Performance Modeling of Client/Server Systems," IEEE Transactions on Software Engineering, vol. 26, no. 11, pp. 1066-1085, Nov. 2000, doi:10.1109/32.881718
Usage of this product signifies your acceptance of the Terms of Use.