Author: cao sir
Preface:
As the automotive industry is developing towards “new four modernizations”, customer expectations for vehicle functionality are quietly changing. As cars move towards higher-level autonomous driving, they also place more emphasis on improving user experience, such as rapid functionality updates and software iteration upgrades, providing personalized, humane, and differentiated functions and services, all of which traditional automotive electronic architecture cannot achieve. A service-oriented software architecture (SOA), with its standardized service interfaces, loosely coupled service mechanisms, and composable and scalable service features, is fundamental to achieving a “software-defined car”.
What is SOA?
In the IT industry, if you want to build a Chinese community platform that includes a PC web version and Android or IOS versions for accessing the hot list, programmers will not write three different APIs for these three platforms; instead, they will provide the same content for these three platforms in the form of services through the same interface. As for how to display the content in UI, it is up to each platform to think about. This is one application of the SOA architecture idea.
SOA: Service Oriented Architecture is a software design methodology based on Client/Server architecture. It is composed of services and service consumers. Unlike most generic Client/Server architecture models, SOA emphasizes loosely coupled design and uses independent standard interfaces.
Gartner’s definition of SOA: SOA is a software design methodology based on Client/Server architecture. Applications are composed of services and service consumers. What distinguishes SOA from most generic Client/Server architecture models is its emphasis on loosely coupled design and the use of independent standard interfaces.
W3C’s definition of SOA: SOA is an application architecture in which all functions are defined as independent services, each with a well-defined callable interface. These services can be called in a predetermined order to form a business process.
Wikipedia’s definition of SOA: SOA is a software design style in which application components communicate with each other via network communication protocols to provide services to other components. The basic principle of SOA is that it is independent of supplier, product, and technology.
From the above, it can be seen that there is no universally recognized definition of SOA! However, the goals and characteristics of SOA are clear. The purpose of SOA is to build a flexible and changeable platform system. SOA has features such as loose coupling and no dependency between services, high cohesion and completeness within services, reusability, and flexible recombination. Services also use standardized communication protocols.In SOA, there are concepts such as services, interfaces, and related roles.
A service refers to a discrete functional unit that implements a certain function and can be remotely accessed and independently executed and updated, often implemented as a function or method.
An interface is a function name or an encapsulated API that can be called by other modules.
There are three different roles in SOA: service provider (the one who implements the service function), service consumer (the one who uses the service interface to call the service), and service registry / proxy (the one who implements the service registration / subscription / publication).
In the actual application of SOA, business is first divided into different business modules, each of which can be understood as a service. The services interact with each other through standard interfaces, simplifying the description of the system and reducing complexity. If the service interface remains unchanged, a change in one service does not affect other services. If the service interface changes, backward compatibility can be achieved through version management, increasing the reusability and scalability of the software.
The advantages of whole vehicle SOA:
Why implement SOA architecture on vehicles?
The internal controllers of the vehicle communicate through traditional buses, but the relationship between signal transmission and routing information is usually static and unchangeable. If a new node is added later, how can it obtain the required information from other nodes?
OTA is currently a good method to achieve vehicle online upgrade and improve the user experience. However, can the electronic and electrical architecture and software design architecture of the vehicle support the function update? If the implementation of a new function conflicts with the existing system architecture, driving mode or even communication mode of the vehicle, how should we solve it?
In the near future, automobiles will play an important role in the Internet, IoT, and energy IoT. Therefore, automobiles must have openness, interconnectivity, autonomy, and self-evolution. Visible applications include autonomous driving, V2X, and edge computing. When facing such demands, how should electronic and electrical architecture and software platform architecture be dealt with?
To solve the above problems, we need an electronic architecture that is highly extensible, with loose coupling between hardware and software, standardized interfaces, and support for heterogeneous system integration. SOA meets these requirements well!
How to implement SOA for the entire vehicle?The development of EEA in the automotive industry has provided the initial application conditions for SOA. The so-called distributed EEA can be understood as the software and hardware resources and capabilities of the automotive electrical system are dispersed in the hands of different suppliers. The software and hardware development of ECU is completed by suppliers, while the main responsibility of the vehicle manufacturer is to propose design requirements and conduct testing and validation. The waste of ECU software and hardware resources and capabilities caused by distributed EEA is obvious. Different suppliers are responsible for the development of different ECUs. Dozens of ECUs in the entire vehicle are responsible for implementing specific software and hardware functions and then interact with each other through hard-wire signals or network signals. This information interaction method is also called signal-oriented communication. The centralized EEA introduces the concept of domain controller DCU, whose chip computing power, operating system and software architecture can meet the needs of decoupling business requirements and hardware resources. That is, it has the ability to implement the design concept of SOA through a set of basic software frameworks, thus abstracting the capabilities of hardware resources at the bottom as a service for external use, and supporting a series of service management functions (service location, service discovery, service invocation, etc.).
Advantages of the whole vehicle SOA
Application of service: only when each domain makes its own services public can the development and integration between different domains be realized, making smart cars possible;
Flexible service deployment: “service discovery” mechanism is a basic feature of SOA, that is, assigning a “global name” to each service. Through this name, the corresponding service can be found directly, just like the “URL” we use when surfing the Internet. Based on this feature, different service deployments can be made for different vehicle configurations during the entire lifecycle of the vehicle, and the code can be almost unchanged;
Flexible software updates: the loose coupling feature of SOA can limit functional updates and changes to a smaller scope. When the hardware architecture needs to be adjusted, the number of ECUs involved in complex functions can be reduced. When the software architecture needs to be updated, only part of the software needs to be updated/upgraded for a specific functionality;
Obvious communication bandwidth advantages: SOA is based on Ethernet communication, and has an absolute advantage in transmission speed compared with traditional networks such as CAN;
Safer information: CAN adopts plain text transmission such as MAC and SecOC, and the encryption level is not high. However, SOA communication can rely on powerful Ethernet encryption solutions, and can also be iteratively extended;
More convenient integration with existing Internet ecology: the publish-subscription mechanism of SOA and the independent and non-overlapping service functions are highly compatible with Internet SOA and microservices, providing unlimited possibilities for future development and applications.
Challenges of SOA for E/E
From Functional Definition to Service Decomposition
Compared with the procedural development method adopted by functional decomposition, the SOA software architecture development uses the “use case-driven development method” and the “service-oriented analysis method”. The use case-driven development method refers to considering functional requirements and system implementation from the user’s perspective rather than the developer’s perspective. The development of use cases can establish a clear traceability relationship between requirements and system functionality and better cope with rapid iterative updates. The service-oriented analysis method centers on business, abstracting and encapsulating business logic based on the system functional requirements obtained by use case analysis, finding service candidates from a business perspective, and emphasizing the reusability, autonomy, and composability of services from an architectural perspective, fully leveraging the advantages of SOA design concepts.
From Signal-Oriented Design to Service-Oriented Design
The focus of signal-oriented design is the communication matrix (including signal, message, node, and other information). The main purpose is to transfer a certain information of a certain node to other nodes that need to change the information through the bus. The information mainly includes some physical state values and some control instructions, and the triggering methods are period, event, or mixed. The signal-oriented design defines the interaction behavior in advance during the system design stage. The middleware of SOA is responsible for controlling communication between providers and consumers. The middleware separates the application layer and the underlying communication protocol, supports the request/response mode, and effectively improves bandwidth utilization. It supports defining complex data types in service interfaces.
From CAN Communication to Ethernet Communication
The traditional E/E architecture is based on CAN communication, which is a CSMA/CD fieldbus. The mainstream middleware of SOA architecture, such as SOME/IP, is based on IP protocol communication. Ethernet has higher communication speed, more open protocols, and better support for function expansion, thus it is more suitable for the next-generation network architecture.
## Development Status of Vehicle SOA
Volkswagen is the first to adopt a service-oriented architecture on the MEB platform, which is mainly composed of independent domain operating systems, programming languages, and software frameworks. The software is divided into separate components to minimize functional dependencies between components, thereby improving software scalability and reusability. Volkswagen uses CP and AP service middleware to achieve SOA communication, where CP connects sensors, actuators, and embedded ECUs, collects signals, and sends them to AP through services or signals. AP encapsulates services and interacts with cloud backends or other AP nodes.
Toyota proposed the Central&Zone architecture scheme, which allocates zone controllers according to regions, and the zone controller sends sensor signals in the region to the central controller. The central controller then returns control commands to the zone controller, which drives the actuator based on the received instructions. This architecture scheme has the characteristics of reasonable spatial arrangement and strong scalability compared with domain controllers.
In modern communication architecture design, while CAN and other networks coexist with Ethernet for a long time, SOA does not directly communicate with these networks. Instead, it uses the SOA Adaptor module to convert other network functions and information. In the in-vehicle system, the SOA Gateway node is designed to upgrade the security level, and the SD Proxy is used to handle service-related information, update and add services, and access security or strongly related services via Service Router.
Current situation in China: SAIC Lingtu has developed dozens of smart car exclusive application scenes, hundreds of users’ “thousand faces” mode, and some typical smart car applications with the first batch of developers. The platform’s software will be loaded on SAIC’s R cars and Zhi Ji cars.
WM Motor applies SOA platform to its WM W6 car, which has launched a custom programming function with over 100 custom scenarios synchronized between the phone and the car.
WM Motor claims that its NETA S will be developed based on the SOA architecture, and the product is expected to be officially launched in the second half of 2022.The first intelligent car with H-SOA architecture from Huaren Motors, the HiPhi X, has entered mass production and will be officially delivered to customers in May 2021. Recently, it has reached an agreement with Zhongke Chuangda to establish a joint venture company focusing on the development of automotive intelligent systems and software, in order to create computing platforms and toolchains for the next generation of intelligent vehicles, as well as a new generation of intelligent vehicle operating systems.
This article is a translation by ChatGPT of a Chinese report from 42HOW. If you have any questions about it, please email bd@42how.com.