next up previous contents index
Next: Overview Up: Introduction Previous: Introduction   Contents   Index

Motivation

This report introduces the Palladio Component Model (PCM), a novel software component model for business information systems, which is specifically tuned to enable model-based quality-of-service (QoS, i.e., performance and reliability) predictions. The goal is to assess the expected response times, throughput, and resource utilization of component-based software architectures during early development stages. This shall avoid costly redesigns, which might occur after a poorly designed architecture has been implemented. Software architects should be enabled to analyse different architectural design alternatives and to support their design decisions with quantitative results from performance or reliability analysis tools.

Component-based software engineering (CBSE) [1] promises many advantages over object-oriented or procedural development approaches. Besides increased reusability, better preparation for evolution, higher quality due to increased testing, and shorter time-to-market, CBSE potentially offers better predictability for the properties of architectures, because individual components should be provided with more detailed specifications. A large number of component models has been designed for different purposes. Component models used in the industry today (COM+/.NET, J2EE/EJB, CCM, etc.) do not offer capabilities for predicting QoS attributes. Component models from academia [2] have been designed to support purposes like runtime configuration, protocol checking, mobile device assessment etc. Some of them deal with QoS predictions (e.g., ROBOCOP, KLAPER, CB-SPE, PACC, etc.), but often have a different notion of software components.

Model-based QoS-prediction approaches for determining the performance and reliability of software systems have been researched for decades, but are still hardly used in practice. A survey by [3] classifies recent performance prediction approaches, and the overview by [4] includes a large number of reliability models. These approaches mostly target monolithic systems and are usually not sufficiently tuned for component-based systems. Specifying QoS properties of independently deployable software components is difficult, because component developers cannot know on what kind of machine their code is used, what parameters will be supplied to the component's provided services, and how the components required services will react.

Two key features of the PCM are i) the parameterised component QoS specification and ii) the developer role concept. Concerning i), the PCM is based on the component definition introduced by [1]. Software components are black box entities with contractually specified interfaces. They encapsulate their contents and are a unit of independent deployment. Most importantly, components can be composed with other components via their interfaces. The PCM offers a special QoS-specification for software components, which is parameterised over environmental influences, which should be unknown to component developers during design and implementation.

Concerning ii), the domain-specific language of the PCM is aligned to the different roles involved in component based development. Component developers specify models of individual components, which are composed by software architects to architectures. Deployers can model the hardware/VM/OS-environment of the architecture, and domain experts are enabled to supply a description of the user's behaviour, which is necessary for QoS predictions. A QoS-driven development process model supports the roles in combining their models.


next up previous contents index
Next: Overview Up: Introduction Previous: Introduction   Contents   Index
Snowball 2007-03-16