The Eclipse POOSL project was created to give architects exploration and validation capabilities in the early phases of system development, e.g., to evaluate whether workflows and dynamic behavior meet timing requirements or fit resource availability. POOSL, which stands for Parallel Object-Oriented Specification Language, combines modeling with simulation-based analysis to support making architectural decisions about the best way to design complex cyber-physical systems.
While prototyping is a common way to support system design, it is a laborious, application-specific process requiring many system details. POOSL, however, is versatile and easy-to-use, capable of abstracting unnecessary details. These features make POOSL well-suited for use in risk-averse settings to mitigate risks for many different types of applications, such as mission-critical applications.
To understand POOSL and its functionality, it’s important to first understand a bit of its history.
POOSL Is a Language With Formal Semantics
The development of the POOSL language and supporting tools started in 1992 at the Eindhoven University of Technology. It was originally crafted to model and specify complex hardware/software systems. The POOSL language is versatile in that it can be applied to many application domains. But it is also very expressive, allowing complex system behavior to be captured in a compact way. It is further scalable to handle large industrial systems with
as many as one million concurrent processes.
Back at that time, drawing tools existed that could express many things, but these couldn’t simulate. On the other hand, there were also formal methods for verifying systems, but they didn’t scale. Lastly, we all know the mathematically based simulation tools that allow detailed physics modeling. POOSL stands between them all: it’s lightweight, scalable, has formal semantics, and supports simulation.
After its incubation in the academic world, POOSL started to be used in industrial applications, and industry players were soon building on it as well. The language and tools were embraced as a standard modeling and analysis tool and further developed by TNO, the largest applied research organization in the Netherlands. It is now an open source project contributed by ESI (TNO) and Obeo to the Eclipse Foundation. To enable the long-term sustainability of the open source project, while providing a premium supported bundle of POOSL for operational usage, Obeo provides a professional subscription called Obeo Enterprise for POOSL.
Easier Modeling and Visualization of System Behavior
Eclipse POOSL is the tool that supports the POOSL language. There are a few key aspects of functionality that make Eclipse POOSL particularly useful. The first is the ability to edit both drawings and text and have them stay in sync. This synchronization makes it much easier to make modifications to a given simulation model without having to manually sync either the drawings or text.
The second is the ability to develop models in an interactive way. Architects can use the simulator to automatically generate a message sequence chart from the model execution. This makes creating and visualizing models easier by creating a clear visual display of the internal behavior of components and communications between them.
Third, the models themselves provide immediate feedback. Once you’ve defined all your components, you can immediately inspect their behavior.
While POOSL’s basic model is very powerful and useful in a variety of application domains, there is a particular use case that highlights how far it can be stretched.
Use Case: Cloud Dimensioning
The Eclipse POOSL project has found a natural partner in the TRANSACT research project, which operates in partnership with the Eclipse Foundation.
The TRANSACT consortium is working to bring edge and cloud-based technologies together in safety-critical cyber-physical systems. To guarantee safety, meeting timing requirements is key in these systems. However, moving computations to the cloud makes it very challenging to predict timing performance because of varying loads and resource contention. Because POOSL also incorporates stochastics, it can model cloud behavior and predict stochastic timing behavior and cloud resource usage.
Within TRANSACT, the POOSL team is partnering with Philips Healthcare. Philips Healthcare is operating in the medical domain and is investigating the benefits of using cloud technologies. We’ve found that POOSL is very suitable to support this investigation, e.g., by analyzing response times dependent on the number of hospitals that are connected to the cloud.
Lots of Potential Within the Eclipse Foundation
We also have partnerships with other Eclipse Foundation projects and members that are worth highlighting.
- We’re working with the Eclipse Trace4CPS team, which is developing what is essentially a Gantt chart generator, viewer, and verification tool, to natively couple the two tools. This initiative combines visualization from the charts and simulation with POOSL.
- Obeo, which is a strategic member of the Eclipse Foundation, is looking to integrate POOSL into its Capella system development suite so users can easily move from their system description to a simulation of a specific section and back.
In fact, there are several tools and MDE ecosystems that could benefit from integration with POOSL. We are continuously looking into priorities and most promising opportunities to meet the typical needs of an Eclipse Foundation project or member so we can ensure POOSL develops to meet them as efficiently as possible.
Get Involved in POOSL
A major component in our ability to meet all these needs is having a large, active userbase and receiving lots of feedback. We really encourage people to get involved by downloading POOSL and trying it out, reviewing the source code, or getting involved in our forum.
TRANSACT has received funding from the ECSEL Joint Undertaking (JU) under grant agreement No 101007260. The JU receives support from the European Union's Horizon 2020 research and innovation programme and Netherlands, Finland, Germany, Poland, Austria, Spain, Belgium. Denmark, Norway.