Skip to content

Palladio Usage

Vadim edited this page May 21, 2024 · 1 revision

Palladio supports a broad range of analysis scenarios, including those ones listed in the following. Each scenario can be analysed with respect to performance, reliability, maintainability, and costs (see quality dimensions). You can easily derive the right software architecture design decisions using Palladio. Palladio reduces the risks and implied costs of picking the wrong design decisions by a model-based engineering approach: Palladio tells what to do best in your scenario.

Typical software architecture analysis scenarios are listed in the following.

Configuration Optimization

Nowadays software systems have extremely large design space. Dozens to hundreds of parameters comprise the configuration of typical software systems. Palladio configuration optimization is suitable to derive optimal configuration with respect to performance and reliability. Configuration parameters can be systematically evaluated (even combinations of parameters) with respect to their impact of the Quality of Service (QoS) end users can expect from a system which is configured as described in Palladio models.

Opposed to tweaking the configuration of running software systems, one can simply change the model – without re-deploying / re-compiling / re-starting the software system. Hence, Palladio can help saving manual trial-and-error cycles for configuration optimizations.

Palladio answers how to optimize your software configuration

  • The essential parameters: Which are the essential and most sensitive parameters to touch when optimising my software configuration (a so-called sensitivity analysis)?
  • Parameter values: What are the most suitable parameter ranges? Which parameter values should I choose for the current setup in my specific scenario?
  • Parameter combination: How do which parameters relate to each other? Which parameter combination does not terminate my optimization effort?

Design Alternatives

Design alternatives are present in virtually every software development project; independent whether of whole software system or only a smaller component is being developed. For example, introducing a cache or not, choosing the fast component for EUR 30,000 or the slow component for EUR 10,000, parallely process request or queue them (just to name a few) – all these design alternatives are hard to evaluate with respect to performance, reliability, maintainability, or costs.

Furthermore, typical design alternatives are combinations of individuals decisions. It is almost impossible for humans to predict the impact of combined design decisions or quantify them. Palladio calculates the impact of design decisions for you: automated and at the model level. You are not forced to implement all design alternatives but can select the most appropriate one.

Palladio simulates the impact of your design decisions for all design alternatives and helps you to select the right (e.g. fasted, most reliable, cheapest) one for you.

Palladio answers which design alternative to chose

  • Design and engineer new applications and new components: Is it worth spending 15,000 EUR for load balancer hardware or will 1,000 EUR for software caching be sufficient?
  • Bottleneck avoidance: Do we design a potential bottleneck when using a non-threaded sorting component?
  • Design optimisation: Which size should our SQL connection pool have?

Extension of Legacy Software

Extending legacy software systems is a challenge since new components can impact the performance and reliability of existing software systems. Imagine an existing software system which is perfectly satisfactory for the current load situation. When introducing new additional services which need to access the existing software system, not only the new but also the existing software services might be affected.

Palladio helps to first get aware of the current status of a software system and second to plan the extension or migration. During what-if analyses, the most appropriate extension and migration design alternatives can be explored. Finally, only the best-suitable design alternative needs to be realised: Lowering risks and costs.

Palladio for legacy software:

  • Easy model creation (reverse engineering support)
  • Model-level design analysis
  • No need to throw away legacy software
  • Targeted implementation and extension of legacy software

Palladio answers how to extend your legacy applications

  • Investigate the extension of legacy applications: How much will the new front end or business case stress my legacy applications?
  • Reuse of existing components: How will my old component perform on the new SOA platform?

Load Balancing

Load balancing, if designed and applied appropriately, enables efficient use of resources and increases reliability. Palladio simulates your software architecture, including your proposal how to load balance, at the design level and predict for example the expectable response time, resource utilisation, throughput, availability, and costs. You can interactively improve your load balancing (e.g. more servers, multiple load balancing levels, combination with cache components) by playing with Palladio models at the design level.

Palladio helps to improve you load balancing

  • Optimised resource usage (appropriate number of servers) at optimal costs
  • Increased throughput and reduced response time
  • Maximal availability (e.g. for a given server setup) and evaluations of different fault and failure tolerance mechanisms

Analyse Scalability Scenarios

Scalability is the analysis of software architecture for potential bottlenecks. Palladio helps in identifying bottlenecks which occur in certain load situations and eases the derivation of design alternatives which do not process this bottlenecks. Furthermore, Palladio allows to find out which maximal load situations can be handled by a certain set up (hardware and software architecture).

With Palladio, one can avoid the implementation of bottlenecks which become critical for productive software systems at early design stages. During software architecture design, one can evaluate the expectable scalability of a software system.

The early software architecture design phase support helps to save efforts and costs for badly performing software architecture implementations.

Palladio answers your scalability questions

  • Estimate the impact of changes in the usage profile: For up to how many users does our system scale until bottlenecks appear?
  • Changes in user behaviour: How much will my application slow down if users upload HD videos instead of low resolution ones?

Analyse Sizing Scenarios

Palladio helps in sizing the resource environment: It allows the selection of appropriate execution environments instead of too small or too large execution environments.

With Palladio you can avoid buying too large hardware just for testing purposes and you do not need to find out – after buying it – that a certain hardware or network is too small for your needs.

Palladio answers your sizing questions

  • Sizing of hardware: How many servers do we need to support 100 concurrent users?
  • Relocation of running applications: How does our business application perform on the new servers?
  • Platform selection: Does my application perform better on a WebSphere or Glassfish application server?