290 likes | 495 Views
Performance evaluation of component-based software systems. Seminar of Component Engineering course Rofideh hadighi rhadighi@ustmb.ac.ir 7 Jan 2010. Outline. Introduction Why performance evaluation? Software component performance Performance evaluation methods Evaluation
E N D
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofidehhadighi rhadighi@ustmb.ac.ir 7 Jan 2010
Outline Introduction Why performance evaluation? Software component performance Performance evaluation methods Evaluation Related work Future directions Conclusions Performance evaluation of component-based software systems
Introduction • Software components: • Units of composition with defined: • Provided and required interfaces • Component-based software engineering: • Successor of object-oriented software development • The challenge for component performance models: • Performance of software component in running system: • Context • Usage profile • Usually unknown to the component developer Performance evaluation of component-based software systems
Why performance evaluation? • Analyzing models: • Avoid performance problems in implementation • Avoid substantial costs for redesigning. • Analyze the observable performance : • Implemented and running components. • To understand performance properties. • To determine their maximum capacity. • Identify performance-critical components. • To remove performance bottlenecks. Performance evaluation of component-based software systems
Software component performance Factors influencing component performance. Component life-cycle. Requirements for a component performance modeling language. Performance evaluation of component-based software systems
Factors influencing component performance: Fig1. Factors influencing component performance [1] Performance evaluation of component-based software systems
1.Factors influencing component performance: • Component implementation: • Different implementation: • Two components provide same service functionally. • Exhibit different execution times. • Running on the same resources. • Given the same inputs. • Required services: • Component service A invokes required services B: • The execution time of B adds up to the execution time of A. • overall execution time of a component service: • execution time of required services. Performance evaluation of component-based software systems
1.Factors influencing component performance: (cont`d) • Deployment platform: • Deploy software component to different platforms. • A deployment platform may include: • Several software layers: • Component container, virtual machine, operating system. • Several hardware: • Processor, storage device, network. Performance evaluation of component-based software systems
1.Factors influencing component performance: (cont`d) • Usage profile: • Clients invoke component services: • Different input parameters: • The execution time of a service can change depending: • Values of the input parameters. • Receive parameters as the result of calls to required services. • Resource contention: • Software component • Doesn't execute as a single process in isolation on a given platform. • Induced waiting times for accessing limited resources: • Aadd up to the execution time. Performance evaluation of component-based software systems
2. Component life-cycle. • A specified component: • Described: • Provided interface. • Required interfaces. • protocols for valid call sequences. • Requirements for the specified provided services. • An implemented component: • Realizes a component specification : • Providing the functionality specified by the provided interfaces. Performance evaluation of component-based software systems
2. Component life-cycle(cont`d) • Information on how the provided services of the implementation, call the required interfaces. • Information about behavior, resource demands of the component, • Input parameters. • A deployed component: • Results from assembling: • Implemented component to other components. • Allocating it onto a hardware node. Performance evaluation of component-based software systems
2. Component life-cycle(cont`d) • component consists of: • Implementation information. • Deployment information. • Information about : • Which provided services can actually be offered. • Component container. • Operating system. • Hardware. Performance evaluation of component-based software systems
2. Component life-cycle(cont`d) • A runtime component: • May serve client requests: • Object in memory. • Components have an internal state. • Check the violation of valid protocol states. • Workload (i.e. the number of clients calling the component). • Input parameters. • Information about concurrently running processes. Performance evaluation of component-based software systems
Feature diagram for component performance model component performance model Schedulable resource demands Limited resource demands Control flow Required service calls Parameter dependencies Internal state Fig.2, Component performance models[1] Performance evaluation of component-based software systems
3. Requirements for a component performance modeling language. • Schedulable resource demands: • Access different active resources: • Processor or storage device. • Finding bottlenecks: • Necessary to scheduling: • Resource demands. • The unit of scheduled resource demands: • Platform-dependent timing value (seconds). • Platform-independent value (CPU cycles). Performance evaluation of component-based software systems
3. Requirements for a component performance modeling language. (cont`d) • Limited resource demands: • Semaphores, memory buffers. • Waiting delays for contention with other concurrently executed services. • Control flow: • Changing the resource contention: • The order of accessing resources. • Calling required services. Performance evaluation of component-based software systems
3. Requirements for a component performance modeling language. (cont`d) • Required service calls: • Make calls to required services. • Service calls: • Synchronous (the caller blocks until receiving an answer). • Asynchronous (the caller continues execution immediately after the call). Performance evaluation of component-based software systems
3. Requirements for a component performance modeling language(cont`d) • Parameter dependencies: • Values of service parameters change: • Execution time. • Memory consumption . • Its accesses to active or passive resources. • Number of calls to required services. • Internal state: • Global state (equal for all clients). • Local state (different for each client). Performance evaluation of component-based software systems
Performance evaluation methods Performance evaluation Approaches Component-base Software Systems Main Approach Supplemental Approach Prediction Approaches based on UML Monitoring Approaches for Iimplementation CB-SP Ref Cam Fig3. Overview of Performance evaluation method[1] Performance evaluation of component-based software systems
Performance evaluation methods • Main approaches: • Provide full performance evaluation processes. • Supplemental approaches: • Focus on specific aspects,: • Measuring individual components . Performance evaluation of component-based software systems
Main approaches Prediction approaches based on UML: • This group: • Component-based software systems modeled with the unified modeling language (UML). • Approaches in this group target performance predictions during design time. • Modeled with the Unified Modelling Language (UML) • UML modeling component behavior with: • Sequence, activity, and collaboration diagrams. • Component allocation described: • Deployment diagrams. • UML supports: • Modeling performance attributes: • Timing values, workload parameters. Performance evaluation of component-based software systems
The Component-Based Software Performance Engineering(CB-SPE) • UML as design model. • The CB-SPE framework includes : • Freely available modeling tools (ArgoUML). • Transformation tool to map the UML model to execution graphs. Performance evaluation of component-based software systems
Supplemental approaches Measurement approaches for component implementations: • The goal in measurement approaches : • To derive parameterized performance specifications via multiple measurements. • These approaches include: • A testbed to execute the components. • RefCAM: • Approach to determine resource demand for software components • Dependency to: • Input parameter value, execution environments. • RefCAM: • Records CPU demands. • Applies function fitting techniques for different execution environments. • The results are stored in a repository. Performance evaluation of component-based software systems
Evaluation • General features: (CB-SPE) • Target domain. • Distributed system. • Component description language. • UML. • Tool Support: • Modeling, analysis(CB-SPE Tool suite) Performance evaluation of component-based software systems
Related works • During the last ten years: • Researchers have proposed many approaches for evaluating the performance of component-based software systems. • Approaches deal with both: • Performance prediction. • Performance measurement. • Classical performance models: • Queuing networks, stochastic Petri nets, stochastic process algebras. • Balsamo reviewed model-based performance prediction methods for general systems. • Becker provided an overview of component-based performance modeling and measurements methods. • Woodside designed a roadmap for future research in the domain of software performance engineering and recommended to exploit techniques from Model-Driven Development for performance evaluation of component-based systems. Performance evaluation of component-based software systems
Future directions • There is limited consensus about the performance modeling language for component-based systems. • Component performance can be modeled on different abstraction levels. • The question is: • which detail to include into the performance models because of its impact on timing. • which detail to abstract because of its limited impact. • The goal is to create an abstraction of a software component: • Allows accurate performance prediction results. • Most existing methods do not support modeling internal state and parameter dependencies well. More research and experiments into this direction are necessary. Performance evaluation of component-based software systems
Conclusions • Practitioners gain: • An overview of performance evaluation methods proposed in the research. • Select methods according to their specific situation. • A generic approach applicable on all kinds of component-based systems may not be achievable. Performance evaluation of component-based software systems
Reference H. Koziolek, Performance evaluation of component-based software systems: A survey, Performance Evaluation (2009), doi:10.1016/j.peva.2009.07.007