What Is Middleware in Automotive?
Middleware is a type of software used in the automotive industry as a bridge between a compute platform’s operating system and the applications that run on it.
Middleware has existed in IT and other industries for many years, but the automotive industry has unique software development challenges that require special consideration. As vehicles evolve into increasingly complex software-defined devices, managing communication and interactions between hardware and software components becomes a complex juggling act.
Despite increasing efforts to centralize, it is not uncommon for today’s vehicles to have more than 100 electronic control units (ECUs). These small compute devices control specific functions, such as power steering, climate control and airbags. Middleware bridges the gap between such varied software and hardware platforms, making it easier to design, build, test, deploy and update applications.
Middleware is crucial in the transition to software-defined vehicles. Without it, over-the-air updates would be impractical and prohibitively expensive — requiring each of those 100-plus ECUs to be reprogrammed independently.
Middleware abstracts software from hardware
Middleware enables a service-based architecture, where software services are modular and reusable across different vehicle models or platforms. By abstracting the software and input/output (I/O), middleware allows applications to focus on high-level functions rather than low-level hardware specifics — separating the signal layer from the application layer.
Middleware operates in between the application layer and the operating system. That is what the “middle” in middleware refers to. Middleware uses that position to abstract applications from the hardware, meaning developers do not have to program applications with instructions for communicating with each of the various devices in a vehicle. Instead, developers create applications that communicate at a higher level with interfaces in the middleware, and the middleware handles the rest.
Think of middleware as similar to a USB adapter; the computer the adapter connects to is like the compute platform on a vehicle. The adapter adheres to certain standards to safely communicate with the computer and is indifferent to the devices that are connected to it. Thanks to the standardized ports, the user can use the adapter to interface with a variety of devices.
Middleware provides developers with the same freedom. It standardizes the interface between vehicle hardware and software applications and acts as a translator to ensure that applications can communicate effectively with various hardware systems without needing to be tailored to each specific component.
Applications communicate through middleware
Vehicle applications communicate using a variety of data formats and standards. While APIs govern the flow of data between software components, middleware manages communication across different systems, ensuring APIs can effectively interface with hardware through standardized protocols.
For example, an OEM may want to offer a climate control app through its infotainment system. When the user selects a desired temperature, the infotainment application informs the middleware about the user commands, and then the middleware translates those commands based on specific hardware and I/Os and sends the signals to the appropriate devices, such as the compressor, the fans and the flaps.
The infotainment system does not need to know the mechanics of climate control because the middleware acts as an intermediary. As a result, developers can focus on creating a positive user experience for consumers instead of focusing on integration.
Operating systems communicate through middleware
Automotive middleware is also essential to enable communication between a vehicle's operating system and its application software. It enables communication and data exchange between different components of a vehicle’s software architecture — between apps within the same operating system domain, between different operating system domains on the same ECU and between ECUs.
Aptiv’s central vehicle controller (CVC) can have multiple operating systems running at once, including Linux, AUTOSAR classic and a real-time operating system such as VxWorks. Middleware enables the applications running on all of these operating systems to communicate seamlessly.
Middleware improves testing and accelerates development and integration
Because middleware decouples software and hardware development, developers can begin testing software earlier. Simulation testing using software-in-the-loop can run on any standard desktop computer, allowing software developers to create new features at a faster pace. Shifting testing earlier also helps catch bugs faster, reduces costs and speeds up time to market.
Middleware can facilitate container orchestration, which enables developers to manage and update applications in a modular way without having to worry about systemwide dependencies. Similar to cloud environments, where containers are used to isolate applications and manage their deployment, in-vehicle containers allow software components to run in isolated environments.
With the help of an in-vehicle container orchestrator, applications can be deployed, updated and tested independently of each other, making the software development lifecycle far more agile. For instance, developers can create isolated test environments for new features, simulate their behavior in real time and deploy updates over the air without disrupting the entire vehicle system. This container-based approach ensures faster integration and testing because it isolates potential issues and reduces the complexity of testing different systems together.
In this model, middleware acts as the layer that manages communication between containers and the underlying hardware, ensuring that each application has access to the necessary resources, such as processing power, memory or specific hardware components like sensors and actuators.
Middleware is one piece of an end-to-end solution
Aptiv and Wind River bring together middleware, operating systems and hypervisors as an integrated solution to accelerate software development and improve software reuse, so OEMs can spend less time integrating and more time designing brand-differentiating features.