The Eclipse Ankaios project is performing a vital role in the larger SDV ecosystem by focusing on developing a system for orchestrating workloads and software within vehicles. This capability is crucial for ensuring that as software becomes more prevalent, powerful, and complex within vehicles, it continues to function at a high level.
When our team at d-fine was looking to contribute to the Eclipse Foundation, the Eclipse Ankaios project caught our eye. We wanted to make a contribution to the open source community that would be valuable to developers and make their lives easier, and quickly. We have a lot of experience developing dashboards for web- and cloud-based software systems, and after scanning the repository for Eclipse Ankaios, this seemed like a natural entry point for us.
After three months of work, we’re proud to present the Eclipse Ankaios Dashboard: a powerful, flexible, and approachable component of the existing Eclipse Ankaios project, making it easier to work on and use Ankaios.
Existing Interface Too Reliant on Clunky Walls of Text
Prior to the Dashboard, developers working on Eclipse Ankaios needed to interact directly with the source code to do anything. Whether they wanted to make additions, change how workloads were being orchestrated, add or remove workloads, or even just evaluate the dependencies involved, you needed to write source code.
As every developer knows, this can be an awkward and ill-defined way to try and develop a project. Having to dig through thousands of lines of code to find out how and where something is broken is tedious and labourious.
In the Eclipse Ankaios system, configured workloads have several value tags attached to them which define not only the dependencies of the workload but also where in the hypothetical vehicle it will be running, among other things. Retrieving these via a text prompt produces walls of text that are cumbersome to navigate and don’t include all the relevant information. These must in turn be retrieved by yet more text prompts, which produce more blocks of text.
This approach was cumbersome and made it easier for developers to get confused or lost when working on the project, not to mention simply making Ankaios more complex and time-consuming for developers to work with.
Dashboard Clearly Visualises Workloads and Relationships
When we created the Eclipse Ankaios Dashboard, we wanted to ensure developers could work on the project much more easily, and the design of the Dashboard reflects this goal (Figure 1).
Figure 1: The Eclipse Ankaios Dashboard homepage
First and foremost, the homepage of the Dashboard is intended to clearly and comprehensively display all the most relevant information for developers that was previously contained in those tiny terminal windows. Developers can see a quick summary of relevant figures, such as the number of workloads, agents, dependencies, and runtimes. In addition, the homepage visualises the distribution of workloads per agent and the status of each workload and runtime. This information is also summarised in a table at the bottom of the page.
The Dashboard uses a card-based design when viewing individual workloads, similar to an Android or iOS application (Figure 2). Each workload is represented as a sort of card that briefly summarises relevant information while also providing visualised functionality via clickable buttons. This includes information about whether the workload is running, pending, or stopped, what it was started by and is running in, and its dependencies.
Figure 2: The Ankaios Dashboard visualises workloads in a card-based format
Full Functionality Available Within the Dashboard
Crucially for developers, the Dashboard isn’t simply a visual reference while working in the back end. While developers still have to start up the application and apply their initial configuration in the back end, they can then proceed to the Dashboard and do much of their work there. The IDE still needs to be used to write code, but the dashboard serves as a visual and interactive assistant for driving forward development.
The Dashboard provides the ability to interrogate and investigate existing workloads to ensure they’re working correctly (Figure 3) and allows users to add and set up entirely new workloads. It not only enables users to create those workloads but also updates the back end with the additional workloads. This makes Ankaios much easier to work with and ensures that other stakeholders can easily comprehend workloads and even make changes to them if necessary.
Our hope is that this will encourage OEMs to adopt Ankaios because the Dashboard can easily be integrated into their workflows as well as their systems, allowing them to quickly start using it on their own platforms and providing a complete visual representation of the system for immediate transparency into what is happening in the system.
Figure 3: Users can interrogate workloads through the Ankaios Dashboard to identify how and where a workload is broken
Dashboard Available, But More to Come
If any of this sounds interesting to you, there is good news: the Dashboard is currently available and fully functional with the current version of Ankaios. And, of course, on a go-forward basis, our primary focus will be to keep the Dashboard current as Ankaios itself is updated and changed.
There are a few potential updates we’re working on, which have been posted and published in the repository. This includes:
- Switching from HTTP to HTTPS
- Using WebSocket to update the Dashboard in response to events, instead of just having it refresh regularly to stay up to date
There are also some technical issues we’ll need to tackle in the future. But as this is happening in open source, we really want this process to be community driven. So, if you’re interested in the Dashboard and what it can offer, we encourage you to give it a try and give us your feedback about how it works and what you’d like to see added.
Take the Dashboard and Use It Anywhere
For our part, at least in the beginning, our focus will remain on the Ankaios Dashboard functionality. We’re going to ensure our Dashboard is always up-to-date with updates and that it always reflects the functionalities available in the project, though we haven’t and aren’t making contributions to the core of the system itself.
However, the Dashboard could potentially be useful to many other projects within the SDV ecosystem, and since our ultimate goal is to produce a holistic system of software for OEMs to build off, the more projects that can incorporate our Dashboard, the better.
While it’s not something we can get to anytime soon ourselves, we encourage anyone from other projects within the Eclipse community to take the source code for the Dashboard and adapt it to work for their project.
Our integration into the Eclipse Foundation and the SDV Working Group was greatly facilitated by both the foundation itself and members of the SDV community. It’s something that we’re really grateful for, and we’re hoping that with the Dashboard we’ve given something back to not just the Ankaios project but potentially the entire SDV ecosystem.
Eclipse Ankaios Dashboard is currently in the proposal phase of the project lifecycle.