IT Reference Architecture for Connected Car
I have recently worked on IT architecture for one of my favorite car, a very interesting viewpoints came to mind, any of the information in this article doesn’t have anything to do with the solution done with the client, the research I have done to observe and needs a reference for any automobile clients.
The term “self-driving” and “Autonomous cars” became the major buzzwords of the automotive industry. Even though we have not yet there, we are getting closer to see something similar in the real world.
Having said that, the automotive industry is much more than self-driving cars and the usage of IT within the industry is immense. I own an MG-Hector (Internet Inside) SUV with a lot of technology-connected systems with 50% with similar technologies. Modern automobiles are equipped with smart dashboards called “Human-Machine-Interface” or HMI which can do tasks like
Making phone calls, answering phone calls
Automatic parking, brake assists, cruise control
Finding gas stations, shopping malls, restaurants
Displaying optimal routes
Playing songs and movies
Providing weather information
The above list is a small part of the various smart functions that can be executed in modern automobiles through the HMI. In addition to these external functions, there are smart On-Board-Diagnostics (OBD) systems that can keep track of the status of the car parts and systems like air pressure in the tyers, oil capacities, car services, battery systems, transmission systems, etc. and integrate that information with the HMI. Also, it has a well-connected 5G network.
All these capabilities are great additions to the car and automobile manufacturers are putting a lot of effort to add more and more capabilities to the car. In addition to the in-car capabilities, there is a considerable amount of systems and applications that work in conjunction with the car to provide this sort of experience. Let’s try to identify the backbone of the automotive industry which is the IT ecosystem around the car network.
Lets Break It Down- High Level
Cars are moving objects that travel from location A to location B without colliding with other objects on the way. Some objects are living beings, some are similar and different vehicles and others are stationary objects. The driver of the car (forget about the self-driving cars for the moment) is the one who is assigned with this task.
In a modern car, there are a ton of sensors and actuators installed on the car to help the driver execute this task of moving from A to B. The sensory data coming from these devices need to be processed, analyzed, and converted into actionable information using a system that consists of an in-car component as well as components sitting outside the car. The need for an external system comes with the advanced nature of the information that is provided to the driver.
As an example, taking the input from all the cameras and placing them on a display is a simple task that can be performed by the in-car computing platform. But providing the fastest route from A to B requires connecting to external services like traffic services and integrating that information with location data which is coming from a GPS unit installed on the car.
Another example would be automatically booking a car service based on the distance traveled since the last service requires calling external services. What this means is that there is an underlying IT backbone that makes this sort of experience possible within the car.
Let’s try to understand the main components of the automotive information technology ecosystem.
The above figure depicts the high-level components that are involved in operating a modern car on the road. If we start from the left,
The car has various sensors to capture details on the surroundings
The driver and the passengers are inside the car
There is the dashboard or touch screen/s which displays all the processed information that is usable to the driver and passengers
The display shows multiple information on speed, rpm, indications, application (weather, maps, routing, etc.)
External services will be utilized to provide some information in the applications which connect over a WAN
Some car-specific data are sent over to the enterprise side (car manufacturer, dealer, services company) to process and provide actionable information promptly
Some 3rd party applications and systems are integrated to provide mobility as a service (restaurants, car services, shopping, payments, etc.)
Car owners can access the vehicle-specific information and historical and analytical data through off-car applications (mobile app, website)
In the above figure, there are two sections isolated by a dotted blue line in the middle. That line divides the computing resources based on the respective position in the overall ecosystem.
1. Edge computing — These are the computing resources available in the car and we call this “edge” since it is closer to the end-user. The computing power and the resources are limited in the edge due to various factors such as power consumption, mobility, network accessibility, etc.
2. Enterprise computing — This is the section where most of the heavyweight computing operations are carried out. This is a typical enterprise IT deployment with all the required computing resources to execute various complex computing tasks that are required to provide the best possible experience to the users.
The link between edge computing and enterprise computing components is the “access network” which is typically a mobile network. The advancements in the telecommunications industry like 5G connectivity helps largely to provide a seamless user experience in near future. Let’s dig a little deeper into the components in the above figure.
At the edge, what we can find is a car with network connectivity. In the car, there are various types of
sensors that receive data from the surroundings and pass it back to the central computing platform within the car. In most cases, it is a low-end computing device with a small processor and memory. This will have a display with a touch screen or with physical buttons that can execute simple tasks like changing the display mode, change across sensors in the display, control actuators like temperature, lighting, entertainment system, etc. All these functionalities can be done offline without connectivity to the external system over the network.
In addition to these traditional in-car capabilities, modern cars come with several useful features in the form of “applications” that can be utilized while in the car. These applications require connectivity to external systems to execute their tasks.
Some examples of such applications are Routing, Shopping, Restaurants, Weather. In addition to these applications, there is a feature called driving assistance which relies on external systems to provide better insights into the driver on road conditions, traffic conditions, car maintenance, and much other useful information.
As we discussed in the previous section, certain applications installed in the car require additional information and computing resources to carry out those functions. This is the task of the enterprise computing section of the platform. It requires certain components that are essential to support the edge computing resources. Given below is a list of high-level functionalities required in the enterprise computing section.
Gateway — This is required to connect with external systems over a standard and secured channel from the in-car applications. It allows the enterprise platform operators to offer different classes of services to the users with required access controls.
Event Broker and Analysis — This component is needed to process real-time events coming from various sensors within the car that requires near real-time processing and send back to the car as actionable information. At the backend of these events, various AI and ML models can be executed for predictive analysis and provide user experiences such as ahead of time notifications on sensor replacements, car part replacements, car services, traveling patterns, effective routes with better air quality, etc.
Integration — Providing an experience that involves multiple systems requires an integration component that understands those different systems. That is the role of integration in this solution. As an example, to provide an integrated food ordering application in the car requires connecting to restaurants, payment services, and location services.
Data Store — This is required to provide various short-term and long-term analytics on driving patterns, car conditions, predictive analysis, and many other aspects of the overall experience that relies on historical data.
Other applications — There can be many other applications that support the overall experience of the driver and the passengers which operate outside of the “edge”. Some examples are weather services, location services, enterprise applications, and cloud services.
User (off-car) applications — These applications provide the users with the capability to review and analyze the various metrics of the car and driving patterns through a mobile application or a website from an off-car device like a mobile computing device (e.g. phone, laptop, tab).
With the understanding of the main components that are involved in the automotive IT platform, let’s build a solution architecture that can be realized with the technologies available in the market.
In this section of the article, we expand the high-level that we came up with within the previous section and discuss each component concerning existing technology solutions. The below figure depicts a reference architecture that is built using the previously mentioned high-level.
The above diagram depicts the car along with some of the common sensors found in modern cars. In addition to that, the built-in dashboard or touchscreen is depicted as the Human-Machine-Interface (HMI) which is a common term used for such interfaces. This interface consists of multiple applications that help the driver achieving his task of moving from A to B while providing additional mobility as a service function. These applications come with security requirements like authentication and authorization for doing certain tasks like payments. These applications rely on the enterprise computing backbone which does the heavy lifting of these applications.
API Gateway acts as the interface between edge computing and enterprise computing components and provides quality of service (QoS) capabilities such as security, rate-limiting, analytics, and different classes of services (e.g. free, monetized). It connects with various business systems and applications as the backend possibly through an integration layer that interconnects all these heterogeneous systems. There is a Customer Identity and Access Management (CIAM) platform that provides the necessary security features to the platform such as authentication, authorization, and Single-Sign-On (SSO), and Muti-Factor-Authentication (MFA) for APIs and applications.
The real-time events and sensor data captured in the car are sent to the event broker via a simple messaging protocol like MQTT to reduce the overhead added by a protocol like HTTP. These events are captured and processed in real-time by an event processor or a stream processor and generate actionable insights and store them for further analysis by AI & ML services. These processed and analyzed information are then stored in data stores and exposed as data services to the edge applications over HTTP/S interfaces. At the same time, real-time notifications and insights are sent via event broker in a publish-subscribe model.
The applications running on the edge consume these processed and analyzed information within the HMI so that drivers can take benefit from that. In addition to that, these enterprise systems provide predictions on certain events and automatically generate events such as car services, part replacements, traffic conditions.
The same API Gateway is used to expose certain details about the vehicle, driving patterns, service schedules, and maintenance activities via mobile phone or a web application. It can also provide information such as the location of the vehicle and any movements even if the user is not within the vehicle.
The automotive industry is going through significant advancements and is becoming more and more intelligent and autonomous with the usage of IT. We have identified two separate components of the automotive IT ecosystem namely edge computing and enterprise computing. Both components work together to provide a unique experience to the car users (drivers, passengers) as well as to provide a safer environment for 3rd parties like other vehicles, pedestrians, and other objects.
Working on a design draft, if this is design move in to cloud whatever is kept in the enterprise computing part.
f the most common data of all the vehicles can smartly share and integrate with government policy and sustainability rules. We can bring nirvana to the autonomous car for the automobile industry.