ing. Part of that platform is a communication man-
agement (AUTOSAR, 2022c) that provides intra-
machine and inter-machine service-oriented commu-
nication between applications running on the AU-
TOSAR Runtime for Adaptive Applications (ARA).
To this end, establishing communication between ser-
vices and clients can happen statically at design time
or dynamically at system start or runtime. Based
on a service interface definition, a generator creates
C++ classes representing a service and a client, re-
spectively (AUTOSAR, 2022a). Moreover, before
services and clients can be bound dynamically, they
must register with a service registry provided as part
of ARA. Finding a service that is offered through the
service registry is based on the generated classes and
results in zero or more handles that can be used to es-
tablish the connection. In contrast, our approach does
not rely on a service interface definition for establish-
ing a communication path. Furthermore, CARISMA
does not require the clients to query the service reg-
istry and initiate the service connection based on the
returned handles. This enables changing the targeted
service instance dynamically, e.g., to support load bal-
ancing between different service instances or to sup-
port moving a service instance from one HPC to an-
other for optimization reasons without having the ser-
vices to be aware of that change. Also, the integration
of services that do not run on our platform, i.e., cloud
services, is well supported by our approach.
The Connected Vehicle Systems Alliance
(COVESA), formerly known under the name
GENIVI Alliance, is an open development com-
munity that aims to develop open standards and
technologies for connected vehicles, primarily focus-
ing on leveraging vehicle data and vehicle-to-cloud
connectivity. COVESA provides a standardized
application programming interface (API) for the
development of distributed, middleware-based appli-
cations named CommonAPI. Similar to AUTOSAR,
a generator creates the proxy implementation and
service skeleton as C++ classes based on a service in-
terface definition file (COVESA, 2017). Furthermore,
some binding-specific code is generated, which is
responsible for realizing the communication between
a client and the service regarding a specific supported
middleware technology, i.e., as of now D-Bus (Love,
2005) or Scalable service-Oriented MiddlewarE over
IP (SOME/IP) (AUTOSAR, 2022b). The binding-
specific code library is loaded when a proxy is created
by the client application. Contrasting to CARISMA
but similar to the approach chosen by AUTOSAR,
this approach is based on generated code, which
depends on the CommonAPI runtime library and a
library containing generated binding-specific code.
Consequently, breaking changes to the application
binary interface (ABI) of the CommonAPI runtime
library will require a recompilation of the dependent
applications. Furthermore, choosing a specific ser-
vice instance before creating the proxy and initiating
the remote procedure call is the responsibility of the
client application, making it impossible to implement
load balancing strategies.
Wagner et al. (Wagner et al., 2016) introduce em-
bedded Service-Oriented Communication (eSOC), a
service-oriented communication protocol for CAN.
They utilize a service descriptor to encode meta in-
formation related to SOA. Since the service descrip-
tor has a size of 64 bit and is thus quite large in com-
parison to the bandwidth and payload size supported
by CAN, eSOC employs a short identifier that is re-
ceived upon service initialization and will be used fur-
ther on. That short identifier is compatible in length
with the standard CAN identifier and therefore intro-
duces no overhead. Concerning communication pat-
terns, eSOC supports publish/subscribe as well as re-
quest/response. However, since our approach targets
HPCs that are connected by a high-speed communica-
tion technology, i.e., automotive ethernet, instead of
microcontrollers, an architecture built on top of CAN
is not suitable.
Li et al. (Li et al., 2022) propose a service mesh
architecture designed to be applied in edge native
computing. They argue that a plain service mesh with
a Control Plane that consists of only a single con-
troller is unsuitable for the edge because a broad dis-
tribution and a comparatively long inter-server com-
munication delay are key characteristics. Hence, they
propose to distributively deploy controllers that alto-
gether form the Control Plane in order to avoid the
single controller becoming a bottleneck. A drawback
of that approach is the cost that results from keep-
ing all the involved controllers synchronized. Conse-
quently, they investigated how to deploy these con-
trollers in a cost efficient way and present a cus-
tomized k-means based algorithm for cost minimiza-
tion. CARISMA, however, is designed for an envi-
ronment comprising multiple HPCs that are closely
located to one another. Therefore, a broad distribution
and a delay in communication are no concerns. Dis-
tributively deploying multiple controllers would in-
troduce an unnecessary overhead resulting in higher
resource consumption that can be avoided.
Furusawa et al. (Furusawa et al., 2022) propose
a method that employs a service mesh based on Is-
tio
3
spanning multiple independent Kubernetes
4
clus-
ters to achieve a cooperative load balancing among
3
Istio: https://istio.io/
4
Kubernetes: https://kubernetes.io
VEHITS 2024 - 10th International Conference on Vehicle Technology and Intelligent Transport Systems
338