Deploying Software Components for Performance

Performance is a critical attribute of software systems and depends heavily on the software architecture. Though the impact of the component and connector architecture on performance is well appreciated and modeled, the impact of component deployment has not been studied much. For a given component and connector architecture, the system performance is also affected by how components are deployed onto hardware resources. In this work we first formulate this problem of finding the deployment that maximizes performance, and then present a heuristic-based solution approach for it. Our approach incorporates the software architecture, component resource requirements, and the hardware specifications of the system. We break the problem into two sub-problems and formulate heuristics for suggesting the best deployment in terms of performance. Our evaluation indicates that the proposed heuristic performs very well and outputs a deployment that is the best or close to the best, in more than 96% cases.

[1]  Kishor S. Trivedi,et al.  Reliability and Performance of Component Based Software Systems with Restarts, Retries, Reboots and Repairs , 2006, 2006 17th International Symposium on Software Reliability Engineering.

[2]  Kishor S. Trivedi,et al.  A Performance Engineering Tool for Tiered Software Systems , 2006, 30th Annual International Computer Software and Applications Conference (COMPSAC'06).

[3]  Ronald L. Graham,et al.  Bounds for certain multiprocessing anomalies , 1966 .

[4]  Katerina Goseva-Popstojanova,et al.  Architecture-based approach to reliability assessment of software systems , 2001, Perform. Evaluation.

[5]  Marija Mikic-Rakic,et al.  Architecture-Level Support for Software Component Deployment in Resource Constrained Environments , 2002, Component Deployment.

[6]  Connie U. Smith,et al.  Performance evaluation of software architectures , 1998, WOSP '98.

[7]  Daniel A. Menascé,et al.  A framework for resource allocation in grid computing , 2004, The IEEE Computer Society's 12th Annual International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunications Systems, 2004. (MASCOTS 2004). Proceedings..

[8]  Mark Harman,et al.  The Current State and Future of Search Based Software Engineering , 2007, Future of Software Engineering (FOSE '07).

[9]  Kishor S. Trivedi Probability and Statistics with Reliability, Queuing, and Computer Science Applications , 1984 .

[10]  Wilhelm Hasselbring,et al.  On A Software Architecture Description supporting Component Deployment and System Runtime Reconfiguration , 2004 .

[11]  Pankaj Jalote,et al.  An Integrated Approach to Software Engineering , 1997, Undergraduate Texts in Computer Science.

[12]  Paola Inverardi,et al.  Model-based performance prediction in software development: a survey , 2004, IEEE Transactions on Software Engineering.

[13]  Jan Karel Lenstra,et al.  Approximation algorithms for scheduling unrelated parallel machines , 1987, 28th Annual Symposium on Foundations of Computer Science (sfcs 1987).