The Brave New World of Automotive SOA
October 10, 2021Dionis Teshler
CTO & Co-Founder
Have you ever wished that you could customize your car the same way you personalize your smart phone with an app store ready at your fingertips? How about using the vehicle infotainment screen to play your favorite game when sitting in a parked car? Or maybe your vehicle did not have certain features installed when you purchased it and you now want to add new functionality (such as advanced ADAS capabilities) to enhance your driving experience?
Unfortunately, modifying your vehicle can be a somewhat rigid process: the manner in which the automotive industry and aftermarket operate today requires you to take a trip into the authorized dealership to install and activate new software. And that is if the feature you’re looking for is offered: if you want a bigger screen for your gaming app experience while waiting in a parked car, you are likely going to need to bring a tablet or use your smartphone despite your nice big in-vehicle infotainment (IVI) screen right in front of you as most infotainment software does not offer gaming capabilities.
And this inflexibility starts much earlier on in the development and manufacturing process, already shaping the current layout of production lines. As OEMs create distinct product lines and vehicle models, they require a separate production line, or major cumbersome modifications, to set up each vehicle model with the predefined components and software. This creates additional expenses and lengthens the timeframe for new vehicles to enter the market.
With the advances in computing systems and customized technology created to enhance our day-to-day lives there is no reason why updating and customizing our vehicles should be a bigger task than updating our Android or iOS devices. If phone applications are available for download on app stores with a mouse click or a finger tap, instantly, why shouldn’t drivers expect the same experience on their car screen?
Monolithic Software Development
One of the core challenges in revolutionizing the way drivers and passengers access services is due with both the way the automotive industry develops software today and how that software is distributed over more than 100 Electronic Control Units (ECUs) per vehicle, forming a complex distributed computing system.
The overall vehicle software system is built as a monolithic block of code that is very complicated to maintain and modify. It does not support the standard computing environments (Windows, MacOS, iOS, Android) that would allow the owner or driver to easily install available apps. Furthermore, the existing security mechanisms in the automotive software would not allow for sufficient isolation of these apps to prevent them from being used as a stepping stone to penetrate safety-critical systems of the vehicle.
As the functionality of cars will continue to grow towards fully autonomous vehicles, this problem will only increase in severity. Steps towards this target introduce a growing variety of driver assistance systems, all with more powerful sensors and increased external connectivity with the outside world.
For example, imagine if you run out of gas or battery charge, your car will automatically provide directions towards a gas station or an available charger and when fully autonomous, even take you there autonomously.
The Autonomous Future of E-Mobility
As future autonomous vehicles will no longer need the attention of a driver, their interior will resemble living room or home office environments rather than the workspace of a pilot. This means that sophisticated audio and video-based entertainment functions, video conferencing and professional workstation features will need to be supported with high-speed wireless external communication by the infotainment systems.
Since the driver doesn’t need to focus on traffic, braking and steering, the space for screens will become significantly larger, including even the windshield.
Nowadays, the majority of cars are shared only within the family and perhaps friends, but with the Carsharing Market demand expected to cross $6.5 Bn by 2027, this is going to change. The result will bring about cars that can be easily customized to meet the preferences of any user. Some users want to be entertained by the vehicle while others have different priorities and preferences such as working or resting - while travelling. Portable profiles will adapt the car to a particular user as soon as they enter the car.
Vehicle Connectivity Will Dictate How We Drive
As we mentioned earlier, the increased software capabilities will require enhanced external vehicle connectivity (Vehicle to Everything, V2X). Driving safety will improve by vehicles communicating automatically with each other (Vehicle-to-Vehicle, V2V) and pedestrians/bicycle riders (Vehicle-to-Pedestrian, V2P).
V2V communication will be used by cars to warn each other of road hazards or congestion. Cars can mutually agree on the driving sequence at an intersection. It allows for the ‘platooning’ of cars on highways: if the car at the head of the platoon has to brake, it will communicate this immediately to all other platoon members avoiding “slamming on the brakes”.
V2P discovers the presence and moving direction of pedestrians or bicycles in the vicinity of the vehicle to better protect them from an accident caused by human error.
Secure Software Updates
Experience from all computing environments tells us that software always contains bugs. The larger the software system, the larger the number of potential residual bugs. Therefore, we are used to receiving regular updates to much of the software we are using in our everyday environments and devices, except for our cars.
Today, if a bug is severe enough to impact driving safety, an automaker must initiate a very expensive and reputation-impacting recall program to get the software fixed in an authorized garage. Therefore, this happens only rarely and usually as a last resort.
With the growing amount of software this approach will no longer work. Instead, there has to be a way to update the software at any place and any time (usually while the car is not moving) as soon as a new release is available. Furthermore, the software has to be modular so that only those software components which have actually been modified will be replaced and will not be fixed to a piece of underlying hardware.
Vehicle software updates / upgrades and activation of features, even temporarily or as a subscription, will be performed over the air (OTA) using WLAN or mobile communication channels. All this communication has to be highly secure in order to prevent any person or application from compromising the integrity of the car’s functionality, and thus, its safety.
Service-Oriented Architecture (SOA) Framework
Considering all these requirements, it becomes clear that software development, maintenance and distribution in the automotive industry must undergo a paradigm shift. Rather than automakers building monolithic blocks of software they have to structure the software in a way that defines every function in the car as a self-contained service. This service must communicate with other components via well-defined messages without any knowledge of location and implementation of each other.
This is achieved by a Service Oriented Architecture (SOA) adapted to the automotive environment. This automotive SOA takes the fundamental concept of service providers and service consumers and translates them to the automotive software framework. Every ECU must use layers of abstraction to hide the complexities of network topology, communication, and implementation. Interactions between software components must no longer be hard coded, but services and their message-based interfaces must be available in a service directory (decoupling functionality from HW). Every new service is represented in this directory from where its service can be offered, and it can find the services that it needs to use.
Multiple different operating systems can run in parallel on each ECU, supported by a hypervisor. Thus, also popular OSs like Windows, MacOS, iOS, Android, etc. will be supported, enabling the installation of standard applications and 3rd party app stores.
Security is an up-front function of the architecture which prevents any unauthorized access to any services that is not mandatory - or rather - is ‘secure-by-design’.
Without a secure automotive SOA framework, future software lifecycle management will be much more complex and costly and it will not be possible to further develop features and functions in vehicles until the requirements of users and the automotive industry are met.