This Article 
 Bibliographic References 
 Add to: 
Design-Level Performance Prediction of Component-Based Applications
November 2005 (vol. 31 no. 11)
pp. 928-941
Yan Liu, IEEE
Alan Fekete, IEEE Computer Society
Ian Gorton, IEEE
Server-side component technologies such as Enterprise JavaBeans (EJBs), .NET, and CORBA are commonly used in enterprise applications that have requirements for high performance and scalability. When designing such applications, architects must select a suitable component technology platform and application architecture to provide the required performance. This is challenging as no methods or tools exist to predict application performance without building a significant prototype version for subsequent benchmarking. In this paper, we present an approach to predict the performance of component-based server-side applications during the design phase of software development. The approach constructs a quantitative performance model for a proposed application. The model requires inputs from an application-independent performance profile of the underlying component technology platform, and a design description of the application. The results from the model allow the architect to make early decisions between alternative application architectures in terms of their performance and scalability. We demonstrate the method using an EJB application and validate predictions from the model by implementing two different application architectures and measuring their performance on two different implementations of the EJB platform.

[1] F. Bachmann, L. Bass, and M. Klein, “Deriving Architectural Tactics,” Technical Report CMU/SEI-2003-TR-004, Carnegie Mellon Univ., 2003.
[2] S. Balsamo, A.D. Marco, and P. Inverardi, “Model-Based Performance Prediction in Software Development: A Survey,” IEEE Trans. Software Eng., vol 30, no. 5, pp. 295-310, May 2004.
[3] Borland Enterprise Server 6.5 AppServer Edition, http://info. html_booksindex1280x1024. html, 2004.
[4] S. Bernardi, S. Donatelli, and J. Merseguer, “From UML Sequence Diagrams And Statecharts To Analysable Petri Nets Models,” Proc. Third Int'l Workshop Software and Performance (WOSP'02), pp. 35-45, 2002.
[5] V. Cortellessa and R. Mirandola, “Deriving a Queueing Network Based Performance Model From UML Diagrams,” Proc. Second Int'l Workshop Software and Performance (WOSP'00), pp. 36-55, 2000.
[6] Y. Cai, J. Grundy, and J. Hosking, “Experiences Integrating and Scaling a Performance Test Bed Generator with an Open Source CASE Tool,” Proc. IEEE Int'l Conf. Automated Software Eng. (ASE'04), Sept. 2004.
[7] C. Canevet, S. Gilmore, J. Hillston, M. Prowse, and P. Stevens, “Performance Modeling With UML And Stochastic Process Algebras,” IEEE Proc. Conf. Computers and Digital Techniques, vol. 150, no. 2, pp. 107-120, 2003.
[8] G. Denaro, A. Polin, and W. Emmerich, “Early Performance Testing of Distributed Software Applications,” Proc. Int'l Workshop Software and Performance (WOSP'04), pp. 94-103, Jan. 2004.
[9] J.A. Dilley, R.J. Friedrich, T.Y. Jin, and J. Rolia, “Measurement Tools and Modeling Techniques for Evaluating Web Server Performance,” Technical Report HPL-96-161, Hewlett Packard Labs, 1996.
[10] D. Rakatine, “The Seppuku Pattern,” http://www.theserverside. com/patternsthread.tss?thread_id=11280 , 2002.
[11] Entity Bean Component Contract for Container-Managed Persistence, Entity Bean Enterprise JavaBean Specification Chapter 10, Version 2.1, , 2003.
[12] I. Gorton, Enterprise Transaction Processing Systems. Addison-Wesley, 2000.
[13] I. Gorton and A. Liu, “Performance Evaluation of Alternative Component Architectures for EJB Applications,” IEEE Internet Computing, vol. 7, no. 3, pp. 18-23, 2003.
[14] I. Gorton, A. Liu, and P. Brebner, “Rigorous Evaluation of COTS Middleware Technology,” Computer, vol. 36, no. 3, pp. 50-55, 2003.
[15] I. Gorton and J. Hacck, “Architecting in the Face of Uncertainty: An Experience Report,” Proc. 26th Int'l Conf. Software Eng. (ICSE'04), pp. 543-551, 2004.
[16] M. Harkema, B.M.M. Gijsen, R.D. Mei, and Y. Hoekstra, “Middleware Performance: A Quantitative Modeling Approach,” Proc. Int'l Symp. Performance Evaluation of Computer and Comm. Systems, 2004.
[17] D. Harel, H. Kugler, R. Marelly, and A. Pnueli, “Smart Play-Out,” Proc. 18th Ann. ACM SIGPLAN Conf. Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'03), pp. 68-69, 2003.
[18] P.G. Harrison and M.L. Catalina, “A New Blocking Problem from Java-Based Schedulers,” Performance Evaluation, vol. 51, pp. 229-246, 2003.
[19] S. Hissam, G. Moreno, J. Stafford, and K. Wallman, “Packaging Predictable Assembly,” IFIP/ACM Working Conf. Component Deployment, pp. 108-224, 2002.
[20] P.A. Jacobson and E.D. Lazowska, “Analyzing Queueing Networks with Simultaneous Resource Possession,” Comm. ACM, vol. 25, no. 2, pp. 142-151, 1982.
[21] S. Kounev and A. Buchmann, “Performance Modeling of Distributed E-Business Applications Using Queuing Petri Nets,” Proc. IEEE Int'l Symp. Performance Analysis of Systems and Software, 2003.
[22] E. Lazowska, J. Zahorjan, S. Graham, and K. Sevcik, Quantitative System Performance. Prentice Hall, 1984
[23] T.K. Liu, A. Behroozi, and S. Kumaran, “A Performance Model for a Business Process Integration Middleware,” IEEE Int'l Conf. E-Commerce, pp. 191-198, 2003.
[24] Y. Liu, A. Fekete, and I. Gorton, “Predicting the Performance of Middleware-Based Applications at the Design Level,” Proc. Int'l Workshop Performance and Software Eng. (WOSP'04), pp. 166-170, 2004.
[25] Y. Liu, “A Framework to Predict the Performance of Component-Based Applications,” PhD Thesis, Univ. of Sydney, Australia, 2004.
[26] Y. Liu and I. Gorton, “Performance Prediction of J2EE Applications using Messaging Protocols,” Proc. Int'l SIGSOFT Symp. Component-Based Software Eng. (CBSE'05), pp. 1-16, 2005.
[27] J.P. López-Grao, J. Merseguer, and J. Campos, “From UML Activity Diagrams to Stochastic Petri Nets: Application to Software Performance Engineering,” Proc. Fourth Int'l Workshop Software and Performance (WOSP'04), pp. 25-36, 2004.
[28] D. Menascé and V.A.F. Almeida, Scaling for E-Business: Technologies, Models, Performance, and Capacity Planning. Prentice-Hall, 2000.
[29] J.A. Rolia and K.C. Sevik, “The Method of Layers,” IEEE Trans. Software Eng., vol. 21, no. 8, pp. 689-700, Aug. 1995.
[30] J. Skene and W. Emmerich, “A Model-Driven Approach to Non-Functional Analysis of Software Architectures,” Proc. IEEE Int'l Conf. Automated Software Eng. (ASE'03) pp. 236-239, 2003.
[31] C.U. Smith and L.G. Williams, “$\rm PASA^{SM}$ : A Method for the Performance Assessment of Software Architectures,” Proc. Third Int'l Workshop Software and Performance (WOSP'02) pp. 179-189, 2002.
[32] C.M. Woodside, J.E. Neilson, D.C. Petriu, and S. Majumdar, “The Stochastic Rendezvous Network Model for Performa of Synchronous Client-Server-Like Distributed Software,” IEEE Trans. Computers, vol. 44, no. 1, pp. 20-34, Jan. 1995.
[33] J. Xu, C.M. Woodside, and D. Petriu, “Performance Analysis of a Software Design Using the UML Profile for Schedulability, Performance and Time,” Proc. Computer Performance Evaluation, Modelling Techniques and Tools (TOOLS'03) pp. 291-310, 2003.

Index Terms:
Index Terms- Quality analysis and evaluation, software architectures, performance measures.
Yan Liu, Alan Fekete, Ian Gorton, "Design-Level Performance Prediction of Component-Based Applications," IEEE Transactions on Software Engineering, vol. 31, no. 11, pp. 928-941, Nov. 2005, doi:10.1109/TSE.2005.127
Usage of this product signifies your acceptance of the Terms of Use.