The Palladio Component Model for Model-driven Performance Prediction

Heiko Koziolek
JSS Editor’s Selection
6 min readDec 9, 2019

Ten years ago, we published the fundamental article on the Palladio Component Model in Elsevier’s Journal of Systems and Software. Scientifically, we started in 2003 with the question, whether and how to compositionally reason on performance properties of a software system and whether software architectural models can be a good level of abstraction for this. At this time, compositional reasoning on performance properties was highly doubted, specific performance models (nowadays called “analysis-oriented models”), such as markov-chains, queuing models or stochastic petri-nets were used to make model-based performance predictions. They were not compositional and their creation was an extra effort in addition to architectural modelling.

Also from a practical perspective, the question on compositional performance prediction based on software architectural models was and is of high interest, as many architectural decisions highly influence performance. Using either intricate analysis-oriented models or benchmarking prototypical implementations to get feedback on the performance impact of an architectural decision, was a too slow feedback loop, only rarely applied in practice.

The Palladio Bench, an Eclipse-based modeling environment with graphical editors as well as embedded analyzers and simulators. Available as free open source on GitHub.

Palladio in its core, as described in the paper, is 1) a language for architectural modelling, 2) an automated transformation of these architectural models into event-based simulations, and 3) a simulator and software for result visualization and analysis, all integrated as plug-ins for the Eclipse IDE. Scientific contributions are: First, a novel performance model, the “service effect specification”, being world-wide the first performance model, which parameterized about all external influence factors of performance, i.e., usage profile, external service calls, and the execution environment. Second, the Palladio Component Model (PCM) as a language (meta-model) to express software architectures including all relevant information for model-driven performance simulations. Third, a model-transformation that translates PCM models into event based simulation code, which then gets executed. By this, Palladio is actually the first fully-integrated software architecture simulator worldwide, and, in addition, it supports component-based software development processes with software components which contain composable software performance models.

Beyond the validation given in the paper, comparing the predictions with measurement results, Palladio was and is successfully applied in real-world projects, where we are still learning to improve Palladio and to ease its application. Other quality attributes’ predictions followed based on Palladio models, such as reliability analysis, confidentiality analysis, and maintenance effort estimation. Palladio continues to be a very active project, with the current aim to make Palladio a platform for various software quality analyses based on architectural models. The PCM as an architectural language not only supports quality analyses but also offers sound concepts for architectural modeling, such as well-defined component type and instance levels, allocation, assembly, and usage contexts. As a consequence, Palladio is used also by other projects such as Kieker (a well-known performance monitoring tool). Peropteryx, a tool for automated software architecture optimization, builds upon Palladio. Palladio as a language also highly inspired the Descartes Modelling language for describing compute and data infrastructures, e.g., those running in the cloud.

In addition, Palladio played a central role in large-scale EU funded projects for almost a decade and significantly enabled the project’s success and academic and industrial uptake EU-wide. In Q-ImPrESS Palladio’s architecture model got extended from components to services, reengineering support was added, as well as model extraction from large code bases with the SoMoX tool. In SLA@SOI, the PCM was used first time to do runtime management and negotiation of SLAs and their SLOs in a service-oriented infrastructure (SOI). Both of these projects already paved a way to modern architecture concepts way before cloud-native applications were build on a large-scale in practice. Finally, in CloudScale Palladio was extended to model elastic and adaptive cloud-native applications in an easy and intuitive way. Besides simulating the elasticity of cloud applications, it now also enables operational cost estimation and spotting elasticity bottlenecks, both in models and in running systems. In CACTOS Project, the PCM was adopted for optimizing data centre management. Moreover, an approach for estimating the energy consumption of servers was added. In all these large projects, the integrated PCM IDE was extended and the original idea — using as less manual effort and enable analyses via automated transformations — was retained.

Screencast of the Palladio Bench

Today, all the efforts put into Palladio are accessible via two end-user oriented books, the Palladio core book published at MIT press and the CloudScale book published by Springer. Both leverage the PCM IDE as it is today. It went through a couple of major releases since the original paper and nowadays, version 4.2 was released a couple of weeks ago having almost 2 million lines of code.

The Palladio Book (MIT Press)

Beyond this, the ACM conference series “Conference Quality of Software Architecture” (QoSA) was initiated and highly driven by the authors of this paper, also shaping an academic subcommunity being concerned architectural analyses to understand the impact of design decisions on software quality. QoSA was merged together with the ACM CBSE conference to Comparch and subsequently 2017 with WICSA into the new IEEE ICSA (International Conference on Software Architecture) conference series (the leading accademic software architecture conference) where still the topic of architectural impact on software quality is very high.

However, as Palladio was not only motivated by scientific questions, but also by the practical need to better understand the impact of architectural design decisions on the quality of executing software systems, Palladio yielded visibility outside the academic community. It was featured at Heise News, the most popular IT news site in Germany and was also presented at the CeBIT trade fair. Consequently, the Palladio approach was also adopted in industry, e.g. at SAP, IBM, Siemens, Oracle, Ericsson, Phoenix Contact and ABB.

While performance-related issues are often not disclosed by companies, three industrial case studies have been published so far that applied Palladio at a large scale:

  • At IBM, while implementing a storage virtualization interface, the question was whether to go for an asynchronous queue-based approach or to use synchronous multi-threaded processing with regards to throughput and response times. Palladio showed that throughput was almost identical and response times were slightly better for the async approach. The recommendation made was to go for synchronous processing as it seemed more maintainable.
  • For the 1&1 e-mail system a performance model study was conducted to identify alert thresholds for runtime monitoring in high-workload situations. This supported identifying unexpected and potential erroneous excessive resource usage on servers running in the backend system. Using model based performance predictions allowed 1&1 to find misconfigurations of servers and identify several potential performance improvements in their system.
  • At ABB, the PCM was used in conjunction with PerOpteryx to explore the design space of a distributed remote diagnostic system for industrial robots. The goal was to assess the scalability of the system and find suitable new candidate architectures that can cope with the expected increase in workload. On that basis a roadmap with intermediate steps for scaling the system was derived. Overall, Palladio performance modeling increased the understanding of the system. The predictions allowed for a focused discussion of the architectural road map.

On the one hand, we are happy that several researchers are building their work on Palladio. It also sparked new conferences and influenced the software performance community with design-oriented models. In addition, several companies, ranging from global, corporate organizations to small enterprises, have Palladio in use. On the other hand, the journey continues: Palladio is transformed into a general platform for architecture-driven quality analysis. We extend to further quality attributes (such as security, confidentiality and maintainability) and new domains (automotive systems, production systems) and connect to tools outside the performance community, such as code analysis and verification tools.

You can easily get involved:

Palladio Component Model

--

--