The Eclipse Software Defined Vehicle (SDV) Working Group had its first contribution day on June 30, where various open source projects and project proposals were presented and discussed. This was a significant step forward for the working group in its mission to bring software development to the forefront in the automotive sector.
In this article, we introduce you to our first project contribution — Eclipse Chariott — and explain the ideas and goals behind it. But some context is necessary first.
We Need to Collaborate on Non-Differentiating Components
The automotive and mobility ecosystem is facing major challenges in modernizing and streamlining software development, as well as in software life cycle management for consumer products.
These challenges are rooted in the extremely heterogeneous hardware and software used within current product lines, but particularly within product lines as they’re evolved.
The entire industry has been trying to decouple software from hardware for years. This decoupling will enable software development and the software life cycle to become more sustainable. But it will also create new challenges:
- Running software on edge devices with limited compute power, memory, bandwidth, and available connectivity
- Deploying software to millions of devices in a scalable way
- Managing software dependencies
- Securing and stabilizing software component interactions in safety-relevant contexts
Luckily, most of these challenges are not unique to automotive software development, or to any automotive company — be it an original equipment manufacturer (OEM) or a supplier. A number of automotive companies have acknowledged the need to collaborate on non-differentiating edge (in-car) and backend software components, as well as the associated development processes and toolchains.
The remaining question was: how and where should collaboration take place?
Open Source Enables Collaboration
It’s important to consider what kind of results you’re looking for before deciding where and how to collaborate on software. Other software development communities, such as the cloud native technology community, have realized excellent results from putting source code at the center of standardization and integration efforts. And the best way to immediately collaborate on source code in a scalable way is through open source.
The Eclipse SDV Working Group was created to support integration of individual projects and contributions into a bigger picture, and has taken a unique approach that will differentiate its efforts from other approaches and bring actual change to automotive software development: We put source code at the forefront of the discussion, and the Eclipse Foundation is the perfect neutral ground for the vendor neutral collaboration this project needs.
Eclipse Chariott Provides a Metadata-Driven Application Programming Model
Solving the various non-differentiating challenges in automotive software development is a great opportunity for software developers, OEMs, and their partners to collaborate and deliver on the vision for software-defined vehicles.
There is very clear demand for technologies, processes, and toolchains that support modern approaches for developing, operating, and maintaining automotive-grade software-defined vehicles that deliver the continuous innovation consumers expect.
This is the aim of the Eclipse Chariott project contribution to Eclipse SDV — to provide a metadata-driven, modern application programming model that targets in-vehicle functions. The application programming model uses a digital representation of vehicle state and capabilities and a digital twin of the vehicle to simplify and enhance in-vehicle software developer productivity.
To better understand the experience this dynamic architecture and application programming model can provide to developers, we created an implementation of the technology (Figure 1).
Figure 1. Chariott Implementation
The implementation consists of:
- The application programming model runtime, which houses the integration specialist’s registry and has an event sub-system layered on top, so applications can discover and monitor changes in vehicle state.
- An in-vehicle digital twin, which is an in-memory implementation of the metadata-driven and dynamic representation of the vehicle state and capabilities.
- A mock vehicle provider implementation, which uses a manifest-based approach to declare and expose its capabilities, functions, and data to the runtime and applications identified at start up. During start up, the manifest is loaded and registered with the application programming model runtime, transparently connecting vehicle capabilities with applications.
When designing and implementing the elements described above, we wanted to ensure the dynamic architecture enhances developer productivity and fully embraces the modern and robust development practices application developers have come to expect:
- Unit testing
- Quick inner developer loops
- Continuous integration
To that end, the application development experience remains the same, no matter which vehicle capabilities provider is being used. Programming elements like functions, events, and the digital twin remain the same across different implementations.
We're Looking for More Community Engagement
Collaboration is fundamental to the SDV Working Group and the Eclipse Chariott project. We believe that within the Eclipse Foundation community, there are many ideas for key principles and code implementations that should be discussed.
We’re currently looking at key principles such as:
- Dynamic architecture and extensibility
- Support for single and multi-node requirements for in-vehicle compute capabilities
- Language and toolchain independence
While this article shows an implementation in Rust for developers to test out, we’ve also been experimenting with many other languages, including C++, C#, and Python.
We’re looking forward to working with the community in an expanded way to define the future of software-defined vehicles.
Get Involved in Eclipse Chariott
We invite you to listen to the full recording of the Eclipse Chariott demo.
And if you’re interested in getting involved in the project, subscribe to the project mailing list.
To learn more about Eclipse SDV projects, register for the next SDV Contribution Day in September.