ABSTRACT
Design patterns, components, and frameworks have been successfully used to build various distributed real-time, and embedded (DRE) systems such as high-performance servers, telecommunication systems, and control systems. An application developer may choose from several approaches to implement a distributed application and the choice of design patterns and their configuration can impact the overall performance of the system. Unlike components, design patterns are often descriptions of a programming approach and need to be reified for each application. However, some core pattern implementations can often be reused across applications, if they can be correctly configured to meet application requirements. Currently, there is no general way to quantify the performance of components and design pattern implementations across various dimensions such as throughput, response time, and scalability. The overall performance of applications that are composed from pre-coded components and patterns can be inferred using analytical techniques by modeling the behavior of the individual components. In particular, while we know from experience that patterns exhibit various tradeoffs in terms of performance and complexity; we would like to explore these tradeoffs in a formal way. Toward this goal, we make the following contributions in this thesis: 1) we develop analytical models for various design patterns using queuing models, 2) we present a technique to analyze the performance of combinations of design patterns as observed in real-world applications, and 3) we validate the models using empirical measurements.
- A. Bogárdi-Mészöly, T. Levendovszky, and H. C. (Hungary). Using queueing model in predicting the response time of asp.net web applications. In The IASTED Conference on Software Engineering, February 2006.Google Scholar
- F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal. Pattern-Oriented Software Architecture---A System of Patterns. Wiley & Sons, New York, 1996. Google ScholarDigital Library
- Center for Distributed Object Computing. The ZEN ORB. www.zen.uci.edu, University of California at Irvine.Google Scholar
- R. G. Franks. The Layered Queueing Network Tutorial.Google Scholar
- R. G. Franks. Performance Analysis of Distributed Server Systems. PhD thesis, Carleton University, Ottawa, Ontario, Canada, December 1999. Google ScholarDigital Library
- T. Gensler and C. Zeidler. Rule-driven component composition for embedded systems. In 4th ICSE Workshop on Component-Based Software Engineering: Component Certification and System Prediction, 2004.Google Scholar
- S. S. Gokhale and J. Lu. Performance and availability analysis of an e-commerce site. In COMPSAC (1), pages 495--502, 2006. Google Scholar
- S. Gorappa and R. Klefstad. Modeling the performance of communication framework design patterns using queuing theory. In Proceedings of the 10th International Symposium on Performance Evaluation of Computer and Telecommunication Systems, July 2007.Google Scholar
- J. Hu, S. Gorappa, J. A. Colmenares, and R. Klefstad. Compadres: A Lightweight Real-time Java Component Middleware Framework for Composing Distributed, Real-time, Embedded Systems. In Middleware, November 2007. Google ScholarDigital Library
- S. D. Huston, J. C. E. Johnson, and U. Syyid. The ACE Programmer's Guide: Practical Design Patterns for Network and Systems Programming. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2003. Google ScholarDigital Library
- R. Jain. The Art of Computer Systems Performance Analysis. John Wiley and Sons, Inc., 1991.Google Scholar
- P. Jogalekar and M. Woodside. Evaluating the scalability of distributed systems. IEEE Transactions on Parallel and Distributed Systems, 11(6):589--603, 2000. Google ScholarDigital Library
- A. Kogekar and A. Gokhale. Performance evaluation of the reactor pattern using the omnet++ simulator. In ACM-SE 44: Proceedings of the 44th annual southeast regional conference, pages 708--713, New York, NY, USA, 2006. ACM Press. Google ScholarDigital Library
- A. Kogekar, D. Kaul, A. Gokhale, P. Vandal, U. Praphamontripong, S. Gokhale, J. Zhang, Y. Lin, and J. Gray. Model-driven generative techniques for scalable performability analysis of distributed systems. In Parallel and Distributed Processing Symposium, April 2006. Google ScholarDigital Library
- A. Leon-Garcia. Probability and Random Processes For EE's (3rd Edition). Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 2007. Google ScholarDigital Library
- Y. Liu and I. Gorton. Performance prediction of j2ee applications using messaging protocols. In CBSE, pages 1--16, 2005. Google ScholarDigital Library
- M. Menth and R. Henjes. Analysis of the message waiting time for the fioranomq jms server. icdcs, 00:1, 2006. Google ScholarDigital Library
- S. Microsystems. Enterprise JavaBeans specification, v2.1.Google Scholar
- I. Pyarali, C. O'Ryan, D. Schmidt, N. Wang, V. Kachroo, and A. Gokhale. Applying optimization principle patterns to real-time orbs, 2000.Google Scholar
- S. Ramani, K. S. Trivedi, and B. Dasarathy. Performance analysis of the corba event service using stochastic reward nets. In SRDS '00: Proceedings of the 19th IEEE Symposium on Reliable Distributed Systems (SRDS'00), page 238, Washington, DC, USA, 2000. IEEE Computer Society. Google ScholarDigital Library
- S. Ramesh and H. G. Perros. A multilayer client-server queueing network model with synchronous and asynchronous messages. IEEE Transactions on Software Engineering, 26(11):1086--1100, 2000. Google ScholarDigital Library
- D. C. Schmidt. Reactor: an object behavioral pattern for concurrent event demultiplexing and event handler dispatching, pages 529--545. ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 1995. Google ScholarDigital Library
- D. C. Schmidt and C. D. Cranor. Half-sync/half-async: an architectural pattern for efficient and well-structured concurrent i/o. In Pattern languages of program design 2, pages 437--459. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1996. Google ScholarDigital Library
- D. C. Schmidt and et al. Leader/Followers - A Design Pattern for Efficient Multi-threaded Event Demultiplexing and Dispatching. In 7th Pattern Languages of Programs Conference, 2000.Google Scholar
- D. C. Schmidt and J. C. Hu. Developing flexible and high-performance Web servers with frameworks and patterns. ACM Computing Surveys, 32(1):39--39, 2000. Google ScholarDigital Library
- D. C. Schmidt, M. Stal, H. Rohnert, and F. Buschmann. Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects, Volume 2. Wiley & Sons, New York, 2000. Google ScholarDigital Library
- R. D. van der Mei, R. Hariharan, and P. Reeser. Web server performance modeling. Telecommunication Systems, 16(3--4):361--378, 2001.Google Scholar
- N. Wang, D. C. Schmidt, A. Gokhale, C. D. Gill, B. Natarajan, J. P. Loyall, R. E. Schantz, and C. Rodrigues. Qos-enabled middleware (chapter 6). In Middleware for Communications. John Wiley & Sons, 2004.Google Scholar
Index Terms
Performance prediction of component- and pattern-based middleware for distributed systems
Recommendations
Performance implications of design pattern usage in distributed applications: case studies in J2EE and .NET
ROSATEA '06: Proceedings of the ISSTA 2006 workshop on Role of software architecture for testing and analysisIn this paper, we investigate how design patterns used for designing remote interfaces influence the performance of distributed applications. The studied design patterns are considered 'good' designs. A choice between the designs can be made on the ...
Integrating publisher/subscriber services in component middleware for distributed real-time and embedded systems
ACM-SE 42: Proceedings of the 42nd annual Southeast regional conferenceAlthough component-based software development has widespread acceptance in the enterprise business and desktop application domains, developers of distributed real-time and embedded (DRE) systems have encountered limitations with the available component ...
Investigating design anti-pattern and design pattern mutations and their change- and fault-proneness
AbstractDuring software evolution, inexperienced developers may introduce design anti-patterns when they modify their software systems to fix bugs or to add new functionalities based on changes in requirements. Developers may also use design patterns to ...
Comments