=Paper= {{Paper |id=Vol-2442/paper8 |storemode=property |title=Towards Semantic Model-to-model Mapping of Cross-Domain Component Interfaces for Interoperability of Vehicle Applications |pdfUrl=https://ceur-ws.org/Vol-2442/paper8.pdf |volume=Vol-2442 |authors=Sangita De,Juergen Mottok,Premek Brada,Michael Niklas |dblpUrl=https://dblp.org/rec/conf/models/DeMBN19 }} ==Towards Semantic Model-to-model Mapping of Cross-Domain Component Interfaces for Interoperability of Vehicle Applications== https://ceur-ws.org/Vol-2442/paper8.pdf
      Towards Semantic model-to-model Mapping of
        Cross-Domain Component Interfaces for
         Interoperability of Vehicle Applications
                                          An Approach towards Synergy Exploration


Sangita De, Michael Niklas and Brian                        Juergen Mottok                                     Premek Brada
              Rooney                              Dept. of Electrical Engineering and                 Dept. of Computer Science and
           Continental AG                               Information Technology                        Engineering, Faculty of Applied
   {sangita.de,michael.niklas and                      OstBayerische Technical                                    Sciences
    brian.rooney}@continental-                       University(OTH),Regensburg                        University of West Bohemia
          corporation.com                                Regensburg, Germany                              Pilsen, Czech Republic
                                                  juergen.mottok@oth-regensburg.de                           brada@kiv.zcu.cz

    Abstract—With the increase in demand of services in the              require interface adaption [6] at the app component model
automotive industry, automotive enterprises prefer to                    level to achieve transparent interoperability. Since a
collaborate with other qualified cross-domain partners to                component model is much easier to understand and maintain
provide complex automotive functions (or services), such as              than code, the investment in MDE (Model Driven
autonomous driving, OTA (Over The Air) vehicle update, V2X               Engineering) to achieve transparent interoperability among
(Vehicle-to-Vehicle communication), etc. One key element in              app software components (SWCs) continues to pay back in
cross-domain enterprise collaboration is the mutual agreement            long-term.
between interfaces of software components. In this context,
model-to-model mappings of software component models of                      Current System Engineering models in an automotive
heterogeneous frameworks for automotive services and to                  domain such as SysML (System Modelling Language), UML,
explore the synergies in their interface semantics, have become          etc. allows graphical modelling of component interfaces
an essential factor in improving the interoperability among the          independent of software. Typically, an Interface Description
automotive and other cross-domain enterprises. However, one              Language (IDL) defines the software interface agreements
of the challenges in achieving cross-domain component interface          between the app component interfaces. IDLs are typically
model-to-model mappings at an application level lies in                  bound to one or more programming language generators. Over
detecting the interface semantics and the semantic relations that        the time, in the automotive app domain the level of abstraction
are conveyed in different component models in different
                                                                         at which functionality is specified, published and or consumed
frameworks. This paper addresses this challenge using a Model
                                                                         has gradually become higher and higher [16]. Eventually
Driven Architecture (MDA) based analytical approach to
explore interface semantic synergies in the cross-domain                 progress has been made from modules, to objects, to
component meta-models that are used for automotive services.             components, and now to services [16]. A service is the major
The approach applies manual semantic checking measurements               construct for publishing and should be used at the point of
at an application interface level to understand the meanings and         each significant interface. Today most of the SWC interfaces
relations between the different meta-model entities of cross-            are based on Service Contracts, thereby allowing
domain framework software components. In this research, we               heterogeneous systems to communicate and interchange their
attempt to ensure that interface description models of software          services. The SOA (Service-Oriented Architecture) pattern
components from heterogeneous frameworks can be compared,                allows us to manage the usage (delivery, acquisition,
correlated and re-used for automotive services based on                  consumption, etc.) in terms of, related services [16]. To bridge
semantic synergies. We have demonstrated our approach using              the semantic gap between the FW SWCs and to achieve
component meta-models from cross-domain enterprises, that                interoperability by reusing of artifacts, requires understanding
are used for the automotive application domain.                          of the semantic mapping at app SWC interface level [1][9].
                                                                         The IDLs that are used for automotive app domain SOSCM
   Keywords—component, Framework, domain, interface,                     (Service- Oriented Software Component Model) interface
semantic, mapping, synergy, metamodel, syntax, application               description may need to consider the following fundamental
                      I. INTRODUCTION                                    characteristics[1]:
    Today’s vehicle electronics are essentially clusters of                 • Interface type: The distinction of the basic interface
heterogenous ECUs (Electronic Control Units) from various                     type: operation-based (e.g. methods invocations) and
suppliers with varying levels of complexity. From simple                      data-based service interface (e.g. data passing).
sensor/actuators all the way up to High Performance                         • Separation of Interface Roles: The distinction between
Computing      (HPC) chipsets, communicating over                             the provides-part and the requires-part of a service
heterogeneous communication networks or even off-car to                       interface.
Wireless Networks. The application (app) developers must
have knowledge of a wide range of technologies instead of                   • Interface interaction points: Service            interface
being focused on a particular technology such as                              interaction points (e.g. ports, topics, etc.).
programming or data interchange. The automotive software
industry always looked for means to narrow the gap on the                   • Method invocation: Method signatures containing
way from requirement to software. Therefore, this would                       information with valid parameter types, e.g. Client-
                                                                              server, Sender-Receiver, Publish-Subscribe etc.

Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0)

                                                                    57
   • Attributes: Specification of attributes or fields e.g.
     getters, setters, Notifiers, etc.
   • Abstraction of Component: abstract description of the
     SWC (single or composite) using the interfaces.
   • Interaction with Connectors: Specification of software
     connectors used for realization of an interface mapping
     between provider and receiver SWCs interfaces.
   • Interface Behavior & Semantic Annotation
     constraints: The invariants, pre- and postcondition
     constraints of a component interface internal behavior
     depends on the state of the SWC.
   • Interface Binding: The binding type describes the way
     a vehicle app SWC interfaces binds to a middleware                Fig. 1. An Overview of Service Interdependent Communication between
                                                                       the ECU partitions
     communication protocol for intra- or inter-ECU
     communication.                                                        The authors of [1] proposes a Component Model
    A component construct fundamentally combines both                  Classification FW which identifies and discusses the basic
service interfaces and interaction description. However, SWC           principles of component models. The authors of [15] proposes
interface binding to middleware is not considered in the               alignment of ontologies of source UML models with semantic
current scope to align the focus towards interface semantic            heterogeneity into a single ontology or merged coherent
synergies exploration for heterogeneous component models               model by using a process of detection and resolution of
purely at app level.                                                   semantic conflicts that may exist among the different UML
                                                                       models. To deal with interoperability, one possible option is
A. Contribution of the Report                                          to make each component implement several interfaces, which
    The automotive industry can be regarded as a complex yet           makes the software interface unnecessarily big. A second
connected network (ecosystem) of highly interdependent                 possible option may be to provide different implementations
subsystems as seen in Fig. 1. Systems with a heterogeneous             of a single component for each of the automotive development
implementations, architectures, semantics have to be                   environments. Such a solution however, will increase the
integrated into collaborative environments to support                  development cost and test effort. A third option could be to
automotive complex services. The interoperability between              possibly consider the role of connectors in the construction of
them has become a major challenge in this new ecosystem,               a software system from reusable components that is to
thereby generating several research questions about how to             consider especially the role connectors should play when the
manage the information exchange and collaboration between              distribution and deployment of a component-based
these heterogeneous system’s FWs at app level with so vastly           application is considered, as proposed by authors of [7].
different properties [17]. This paper presents a detailed
                                                                            In this context Software Adaption is a promising approach
investigation on semantic survey of the component interface
                                                                       to build flexible interfaces for variable software systems.
models of various cross-domain FWs. The paper explores the
                                                                       Authors of [17] proposes adapter systems to deal with service
possibilities of semantic service-based interfaces matches and
                                                                       mismatch problems that can happen in the information
reveals the areas of semantic mismatches between the
                                                                       exchange in heterogeneous SOA-based environments where
information ex-change formats of heterogeneous system’s
                                                                       the interoperability is crucial. The authors of [2] present an
FWs at an app level where the interoperability is crucial [17].
                                                                       automated approach to model-to-model mapping and
The proposed solution in this paper is based on exploration of
                                                                       transformation methodology, which applies semantic and
component interface semantic synergies [2][9]. Exploration of
                                                                       syntactic checking measurements to detect the meanings and
interface semantic synergies could also further aid in SWC
                                                                       relations between different models automatically. The authors
reusability in the future.
                                                                       of [11] propose component model-to-model transformations
B. Motivation Scenario and Related Work                                to establish translation of semantics by manual mapping of
    In the last decade a plethora of different interface               programming languages of heterogeneous platforms [11].
specification models or IDLs were designed using different                                  II. METHODOLOGY
technologies to support automotive app domain. This could be
due to the fact: firstly, coexistance of new ECU HW interfaces             With the proposed methodology based on static analysis
with legacy as seen in Fig. 1, secondly, the conformance to            of interface semantics, we have attempted to provide a level
frequent new standards in automotive domain [10], thirdly, the         of abstraction at SWC interface semantic specification level
non-functional system requirements such as performance and             and have defined an abstract UML profile (M2 level) model
scalability. Unlike adaption of ADLs (Architecture                     also called Component-Port-Connector (CPC) model [1] [7]
Description Languages) of frameworks that requires adaption            [5], to describe each of the cross-domain FW SWC constructs
of the entire end-to-end stack at system specification level,          in context of interfaces. The SWC constructs agrees mostly to
adaption of IDLs would basically focus on adaption of                  the traits that are visible in the Black-box view of a component.
components, ports, connectors, algorithmic code of FW                  A SWC construct of SOA based automotive app domain FWs
SWCs purely at an app level [18]. To increase interoperability         fundamentally represents (i) the SWC service-based-
and efficient reuse of component interface model, it is                interfaces used for the interaction with the other components
important to understand the differentiation of component               for inter- or intra-ECU communication, and (ii) the means of
model interfaces.                                                      SWC binding and communication using middleware. With the




                                                                  58
given approach each of the FW SWC constructs are                                                              • Composition level: Connection represents interactions
represented using the CPC models, abstracted from the SWC                                                       between interface functionalities and behavior in two
meta-models of heterogeneous domain FWs.                                                                        components as far as accessible through SWC ports [5]
                                                                                                                e.g. Synchronous, Asynchronous, etc.
A. Classified Levels for Semantic Survey of Software
    Component Interfaces                                                                                       Fig. 2 illustrates automotive app domain SWC constructs
    To illustrate the approach of static semantic analysis of                                              represented by an abstract generic CPC model [1][12][19].
SWC interfaces, we have considered few of the SWC                                                          Towards the SWC interface semantic synergy exploration, the
constructs of the cross-domain platforms supporting                                                        structure of an abstract generic CPC model illustrates the
automotive apps. In this approach, Interface Syntactic level                                               abstract view of the components at different containment
was not considered as it covers only the syntactic aspect and                                              levels, their interface types, their typed input and output ports,
describes the signature of an interface in a FW specific                                                   and the connectors between them. Abstraction of the generic
programming language and is relatively out of current                                                      CPC model emphasize on the common service-based interface
research scope. For simplicity, we have classified SWC                                                     semantic properties and hide the platform specific details that
constructs into three basic levels [1][12] :                                                               are not needed in the interface description [19].

   • Interface Semantic level: reinforces the syntactic level                                                  A generic specific CPC model can further provide
     and concerns with the meaning of features often                                                       knowledge base for future automotive domain specific
     specified by the expectations and effects of individual                                               software solution such as coherent, unified IDL or a Meta-IDL
     features. A generalization of this level can be assumed                                               model. With the reference to the abstract generic CPC model,
     as semantics [12].                                                                                    we have tried to represent the CPC model for each of the FW
                                                                                                           SWC constructs based on three identified basic levels:
   • Interface Behavioral level: represents dynamic                                                        Interface semantic, Interface Behavior and Composition [1].
     behavior of service-based interfaces based on                                                         With the semantic survey we have compared and revealed the
     constraints (e.g. constraints on their temporal ordering,                                             areas of service interface semantic matching and mismatches
     precondition, postcondition, invariants, etc.). It                                                    among the cross-domain FW IDLs at model level in reference
     expresses their internal behavior (e.g. internal states).                                             to the generic CPC model.
            class new _InterfaceModel


                                                                                                                                                                        operation_based


                                                                                                                            Component_spec
                                                                    system_spec
                                         Comp_State                                                                      basic_type
                                                                                                                                                                           Port_based




                                                                    Interface_spec
                                                                                                                                                             In-interface:Client
               In-interface:Sender


                                                       Inv ariant                                +method        request_response_spec
                                                                                                 0...*                                                      Out-interface:Serv er


                                                                    method_inv okation
                            Data_Passing
                                                                                                                     publish_subscribe                          In-interface:
                                                                                                                                                                 Subscribe

                                                                                                    +method
                                                                                                    0...*
                                                            PreCondition
                                                                                                                                                               Out-interface:
                  Out-interface:                                                                                                                                 Publish
                   Receiv er
                                                                                                                                         PostCondition


                                      Data_Prototype




                 Input_DataPrototype        Output_DataPrototype                       Parameter


                                                                                                                                                         Connectors




                                   DataType_mapping
                                                                                     InParameter                      OutParameter




                                                                                                               Binder_class
                                                                                                   InOutParameter_mapping
                                                                                                                                                                        Synchronous



                                                                              dds                                                Method_interaction
                                                                            gRPC         1...*
                                                                              rest                          Binder
                                                                               rpc                                                                                     Asynchronous
                                                  inter_serv ice_comm_protocol




               Fig. 2. Abstract hierarchical generic Software Component-Port-Connector (CPC) model based on Black-Box perspective




                                                                                                   59
III. A SEMANTIC COMPARISON OF COMPONENT CONSTRUCTS                                       model (M2 level) UML profile representation can be seen in
    BETWEEN CROSS-DOMAIN FWS AND AUTOMOTIVE FW                                           Fig. 3. The Service interface model employed for interface
                                                                                         description is specified using various elements, this includes
    This section provides an overview of abstract SWC
                                                                                         [3]:
interface model descriptions in context of “constructs”, for
those FW components that are used in automotive app                                             • Aggregation of variable data prototypes in the role of
domain. The meta-models used for component constructs                                             Events (VariableDataPrototype);
identifies the list of relevant concepts and a list of relevant
relationships between these concepts specific to FWs.                                           • Aggregation of Getter, Setter and Notifiers in the role
                                                                                                  of Fields. A Field is a combination of a Remote
A. Automotive Domain: AUTOSAR Adaptive Framework                                                  Procedure Call (RPC) and an event.
    AUTOSAR (AUTomotive Open System Architecture) is
                                                                                                • Aggregation of Client-Server Operations in the role of
widely accepted as the defacto standard of automotive system
                                                                                                  Methods. Arguments data required for Client-Server
software architecture for developing apps of various
                                                                                                  Operation is represented in the role of
automotive platforms during the different phases of a vehicle
                                                                                                  ArgumentDataPrototype in the meta-model as a pre-
life cycle. The AUTOSAR Adaptive platform (AR AP) app
                                                                                                  condition. Method calls used for communication
SWC template meta- model is implemented using ARXML
                                                                                                  among SWC types in AR AP can be described as
Schema. The AR AP SWC has a service provider port
                                                                                                  synchronous or asynchronous (e.g. fireAndForget).
(PPortPrototype) and a receiver port (RPortPrototype). Each
PortPrototype is typed using service interfaces. An example                                  The service interfaces instances in AR AP are deployed
of AR AP app SWC (release version 18-10) specific meta-                                  using RPC communication.
     class DOC_ComponentModel


                                              G1                                                                                AREl ement
                                                                                                                              AtpBl uepri nt
                                                                                                                          AtpBl uepri ntabl e
                P1               A Semantic Relation                                                                               AtpType
                                                                                                    SwComponentType                C1

                        P1 ⊂ G1                                                                                                                                   P1
                           ∪
                                                                                                                                   «atpVari ati on,atpSpl i tabl e»
                                                             AutosarDataPrototype
                               ArgumentDataPrototype                                       Adaptiv eApplicationSw ComponentType
                                                                      C9
        +   di recti on: ArgumentDi recti onEnum
        +   serverArgumentImpl Pol i cy: ServerArgumentImpl Pol i cyEnum [0..1]                                                C2
                         +argument       * {ordered}                                                                                    +port 0..*

                                                                                                                                         AtpBl uepri ntabl e
                                                            CompositionSw ComponentType                                                     AtpPrototype
                                                                                                                                    PortPrototype

                                                                                           C3                                                                C4



                              «atpVari ati on»
                                                                                                                                                               PortInterface
                                                                                                      Serv iceInterface
                                                                                                                                                                  C5



                                                                                                                                         «atpVari ati on»
                                                  «atpVari ati on»                          «atpVari ati on»
                                                                                                                                          0..*    +fi el d
                                             +method      0..*                           +event    0..*
                                                                                                                                          AutosarDataPrototype
                                                       AtpStructureEl ement              C7    AutosarDataPrototype                C8            Field
                                        C6                      Identi fi abl e           VariableDataPrototype
                                             ClientServ erOperation                                                            +    hasGetter: Bool ean
                                                                                                                               +    hasNoti fi er: Bool ean
                                    +    fi reAndForget: Bool ean [0..1]                                                       +    hasSetter: Bool ean




         Fig. 3. Overview of Abstract SWC constructs meta-model also named as Graphical Model G1 for AUTOSAR Adaptive Framework

B. Infotainment Domain: Franca Framework                                                   TABLE I.    INTERFACE SEMANTIC SYNERGIES OF SWC MODEL:
    Franca IDL (FIDL) is developed as a part of the GENIVI                                AUTOSAR ADAPTIVE VS FRANCA (‘C’ IS CONSTRUCT MODEL ELEMENT)
standard Franca (version 0.13.0) FW and supports IVI (In-                                          AUTOSAR Adaptive                         Franca Component
Vehicle infotainment) system’s interfaces. Franca IDL is                                        Component Construct Element                 Construct Element
language binding neutral and independent of concrete                                                            C1                                       C10
bindings. Franca+ IDL (FCDL) provides an extension to the
Franca FW that adds support to the modeling of components,                                                      C3                                       C11
composition of components, typed ports (provides and                                                            C4                                       C13
required), port interfaces (optional major and minor versions)
                                                                                                                C5                                       C14
and connectors between ports as seen in the meta-model
represented by UML profile in the Fig. 4 [10]. Franca FW                                                        C6                                       C19
uses FIDL to define app interfaces and FCDL to define app                                                       C7                                       C16
SWCs and their configurations. Like AR AP, Franca+ FW
also supports the CompositionComponentPrototype (named                                                          C8                                       C17
as Component). A component contained in a composition is
called Component Prototype.



                                                                                    60
   The service attribute marks a component as service                                        at app interface level) meta-model elements of AR AP and
running on the target platform. The Methods, Events, and                                     Franca FWs. Semantic mapping of Franca IDL Fire-and-
Fields of AR AP service interface are semantically aligned to                                Forget Method to AR AP app service interface Method can be
Franca+ IDL’s (FCDL) Methods, Broadcasts and Attributes.                                     achieved by activation of the “fire & forget” semantics of a
TABLE I. illustrates interface semantic synergies (indicated                                 given method by setting the value of attribute
by arrows) observed between the app SWC constructs (only                                     method.fireAndForget to value true [4].
    class InfotainmentDomain Model


                                                                                      «FRElement»
                                                                                   FComponentPrototype
              G2                                                                                                    C10


                                     «FRElement»
                            FCompositionComponentPrototype
                                                                                                           +port          0...*                  P2
                                                         C11       Serv iceComponentPrototype                 «FRpPrototype»
                                                                                                              FPortPrototype
                                                                                                                                     C13
                                                                                             C12


                    «FrancaDataPrototype»                          +namespace                0...*
                    VariableDataPrototype
                                                                         «FRInterfacePrototype»                                                   «FrancaDataPrototype»
                                                                             FPortInterface                                                            FArgument
                                            C20
                                                               + Fversion:major: int                                                       + direction: ArgumentDirectionEnum
                                                               - Fversion:minor: int                 C14
                                                                                                                                                                          C15

                                                                                                                                                                   1..*
                                                                                                                                                              argument



                     +broadcast    0...*                                   +attribute    0...*             +,method          0...*                         «FRType»
                             «FRType»                                                                                                                    FNormalMethod
                                                                            «FRType»                               «FRType»
            C16             FBroadcast                             C17      FAttribute                              FMethod                   + ClientServerOperation()
        -    FrancaProvDataElementsInterface: Dataprototype    -    Notification: Dataprototype               C18                                                               C19
                                                               + Getter(): int
                                                               + Setter(): void                                                                              «FRType»
                                                                                                                                                        FFirenForgetMethod

                                                                                                                                                  + fireAndForget: Boolean[0...1]
                     P2                     A Semantic Relation
                                                                                                                                                                                C21

                                  P2 ⊂ G2
                                     ∪
       Fig. 4. Overview of Abstract Component Constructs meta-model also named as Graphical Model G2 for Franca (also Franca+) Framework

C. Robotics Domain: ROS Framework                                                            as a pre-condition between invoker and invoke, this
    The Robot Operating System (ROS) developed by Willow                                     functionality is achieved through introduction of the messages
Garage aims to provide a software development environment                                    and the concept of topics to which the messages are published
for robotics. ROS is a perfect FW for autonomous driving cars                                for subscription [8]. ROS2 TopicSubscription can be
and provides high-level functions such as route planning,                                    semantically mapped to EventSubscription in AR AP. Data
connectivity, etc. Literally, ROS (version 2.0) is not a                                     Semantics are semantically similar to the asynchronous
component-oriented software. However, like in many                                           fireAndForget Method invocation of AR AP [5]. In contrast to
programming paradigms (objects in object-orientation, etc.),                                 AR AP, the concept of a connection does not exist in ROS2.
ROS also strives to build apps from modular units. In the ROS                                Location-transparency between nodes is achieved through the
programming model, the modular programming unit is a node                                    concept of a master node. The master node provides naming
[8].Nodes are semantically similar to SWComponentPrototype                                   and registration facilities for all nodes [8][5]. In ROS2 in case
in AR AP as can be seen in Fig. 5.                                                           of the exchanged information having command semantics and
                                                                                             being communicated mostly synchronously (blocking mode)
    A Topic can be considered as a named communication                                       as a pre-condition between invoker and invoke, this
channel which is used to send and receive messages between                                   functionality is achieved through introduction of a service
nodes and can be semantically mapped to PortInterface of AR                                  concept. The service in ROS2 is defined by a string name and
AP. In ROS2 (ROS version 2.0) all the necessary information                                  a pair of messages, a request and a reply message and is
exchange among nodes is performed through messages. ROS2                                     semantically similar to RPC based ClientServerOperation in
has two basic types of interaction endpoints attached to a node                              AR AP. Unlike AR AP, services cannot be grouped through
that are data and control interaction endpoints.                                             service ports in ROS2. In ROS2 component models or nodes
   In case of the exchanged information having data                                          are described using Message Description language (MDL) or
semantics (using DDS: Data Distribution Services) and being                                  Service Description Language (SDL) based on data and
communicated mostly asynchronously (non-blocking mode)                                       command semantics requirements.




                                                                                        61
     class RoboticsDomain Model


             G3                        «SwComponentPtototype,ModularUnit»
                                                    Node
                                                                                                                     P3                 A Semantic Relation
         Master node used for                                                 C22
         location transparency
                                                                                                                                 P3 ⊂ G3
                 «ROSApplicationComponentType»                                                                                      ∪
                     CompositeMasterNode

         +   register_publisher: void
         +   register_service_provider: void             C23
         -   register_subscriber: void

                 «Identifiable»                                                                                                                  P3
             RequesnReplyOperation

                                 C29
                                                             «ROSApplicationComponent...                                  PortInterface
                                                                   AtomicNode                                  «DataInterface»
                                                                                C25            0...*                              C26
                                                                                                                   Topic
                                                         -    is Service: Boolean                                                              Data Flow
                          «serviceInterface»             -    isDataflow: Boolean                      +   ros::publish: Boolean               (Messages)
                        ClientServ erInterface 0...*                                                   -   ros::subscribe: Boolean             One Way Data
                                                         +    ros::init(): void                                                                Semantics(non-
                                                         +    ros::NodeHandle(): void                                                          blocking mode)
                                                         +    ros::SpinOnce(): Boolean
                                                                                                               C28 «Identifiable»
                                                                                                               PublishSubscribeInterface
                                                                                                                                                One way Semantics
                                                       Control Flow                                                                             (non-blocking
                                       C27             Two-way Semantics(RPC):Blocking mode                -    firenForget: Boolean [0...1]
                                                                                                                                                mode)
                                                       Service Driven



                Fig. 5. Overview of Abstract Component Constructs meta-model also named as Graphical Model G3 for ROS Framework

    TABLE II. illustrates interface semantic synergies                                   message called an Intent (also an IPC). Intents bind individual
(indicated by arrows) observed between the app SWC                                       components to each other at run-time using messages [13].
construct (only interface) meta-model elements of AR AP and                              However, a data request is treated by the Content Provider
ROS FWs.                                                                                 (CP). The requesting data is indicated through URI (Uniform
                                                                                         Resource Identifier), which provides the standard access to
TABLE II.  INTERFACE SEMANTIC ANALYSIS OF COMPONENT MODEL:                               CP. The communication between various functionalities of
  AUTOSAR ADAPTIVE VS ROS (‘C’ IS CONSTRUCT MODEL ELEMENT)                               app components is provided by Receiver of Broadcast and
     AUTOSAR Adaptive                     ROS Component Construct                        Intents (RBI). For the communication, the object Intent must
  Component Construct Element                    Element                                 be passed as a parameter for the RBI to search the
                C1                                       C22                             functionality.      The broadcast receiver schedules the
                                                                                         JobServices event chains. These Events are semantically
                C2                                       C25                             similar to Events used by AR AP app SWCs. However, if an
                C4                                       C26                             app service is used only by the local application and does not
                C5                                       C27
                                                                                         need to work across processes, then only a Binder class
                                                                                         implementation can provide direct client access to public
                C6                                       C29                             methods in the service [14]. Unlike AR AP apps, for most of
                C7                                       C28                             the Android apps, the service doesn’t need to perform multi-
                                                                                         threading, so using a Messenger allows the service to handle
                                                                                         one call at a time. If it’s important that the service to be multi-
D. Telematics Domain: Android Framework                                                  threaded, use of AIDL is preferred to define the interface [13].
    An Android application runs in its own process and cannot                                The startService() service method call invoked by a client
access the data of another application running in a different                            result in a corresponding call to the server or service’s
process. To allow one application to communicate with                                    Service.onStartCommand (Intent, int, int) method. On
another running in a different process, Android provides an                              successful service connection binding with the stub or server,
implementation of IPC (Inter Process Communication)                                      the client receives an instance of IBinder interface using
through the Android Interface Definition Language (AIDL). It                             onServiceConnected() callback method as seen in Fig. 6.
allows to define the programming interface that both the client                          These method calls of an Android app can be semantically
and service agree upon in order to communicate with each                                 mapped to ClientServerOperation() method calls and Notifier
other using IPC. Four different types of app components are                              fields of an AR AP app SWC. The oneway keyword modifies
used as essential building blocks of an Android app namely,                              the behavior of remote calls. When it is used, a remote call
Activities, Services, Broadcast receivers and Content                                    does not block, it simply sends the transaction data and
providers.                                                                               immediately returns. The oneway remote method calls can be
                                                                                         semantically mapped to asynchronous ClientServerOperation
   Three of the four component types activities, services, and                           or method calls of an AR AP app SWC. If oneway is used with
broadcast receivers are activated by an asynchronous                                     a local call, there is no impact and the call is still synchronous.



                                                                                    62
     class TelematicsDomain Model


                                                                                                                          «AndroidApplicationComponentType»
                               «AndroidApplicationComponentTy...             Service is a special type of                               Serv ice
                                            Activ ity                        activity that does not have a
                                                                             visual user interface and usually        -    isBound: Boolean
          G4               +    handleMessege(): void                        run in the background .
                           +    onDestroy()                                                                           +    Context.bindService()
                           +    onPause()                                                                             +    Context.startService()
                           +    onResume()                                                                            +    handleMessege(): void
                           +    onStart()                                                  «signal,message»           +    OnBind(): IBinder
                                                                                                                      +    onDestroy()
                           +    setContentView(): int
                                                                  C30                  Intent::startServ ice
                                                                                                                      +    onPause()
                                                                                                                                                                            P4
                                                                                                                      +    OnResume()
                                                                                       +    startService()            +    onStartCommand()
         Using                                                                                                        -    showNotification(): int           C31
         InterProcess                        Intent is used
         Communication                       for IPC
         (IPC) Protocol.                     communication
                                             such as
                                             method                                                              «interface»
                                             invokation
                                                                                                                   IBinder

                                                                                                  +   getService(): LocalServiceInstance
                     «signal,message»                     «DataRequestIdentifiable»               -   onServiceConnected(): Boolean
               Intent::InitiateBroadcast                      ContentResolv er                    -   onServiceDisconnected(): Boolean
                                                                                                  +   registerCallback()          C34
                                                     -     delete()
               +     sendBroadcast()                 -     insert()
                                                     +     query(): URI                                                                                  «AndroidService»
                                                     -     update()              C35                                                                       JobServ ice
                                                                                                      On Successn of
                                                                                                      bindService(),Client
                                                                                                                                                     +   JobScheduler()
                                                                                                      receives an
                                                                                                      IBinderinstance from
                                                                                                      Stub or Service

                                                     «AndroidApplicationComponentT...
                                                         ExampleContentProv ider
                                                                                                                          «Identifiable»
                                                 +       ContactContract.Data
                                                 -       UnifiedResourceIdentifier(URI): void                          ClientBindingClass

                                                                                           C33               +   bindService(): void
                                                                                                             -   onServiceConnected(): IBinder
                                                                                                             -   onServiceDisconnected(): Boolean
                                                                                                                                               C37
               «AndroidApplicationComponentTy...
                      BroadcastReceiv er
                                                                                                                                       «signal,message»
           +       onStartJob()
           +       onStopJob()                                                                                                            Intent::Ev ent       C36
           -       RegisterReceiver(): int                        P4              A Semantic Relation
                                                     C32                                                                    -   JobScheduler: VariableDataPrototype
                                                                        P4 ⊂ G4
                                                                           ∪
                Fig. 6. Overview of Abstract Component Construct meta-model also named as Graphical Model G4 for Android Framework

   Unlike AR AP app SWC model, Android app model does                                            specific software solution for automotive app interface
not have ports. TABLE III. Illustrates interface semantic                                        models, aligning ontologies is a crucial issue in the field of
synergies (indicated by arrows) observed between the app                                         semantic integration, which aims to find semantic
SWC construct (only interface) meta-model elements of AR                                         correspondences between a pair of elements of ontologies by
AP and Android FWs.                                                                              identifying semantic relations. The interoperability of
                                                                                                 different UML profile-based component interface models
TABLE III. INTERFACE SEMANTIC ANALYSIS OF COMPONENT MODEL:                                       (described in section III) within the same vehicle information
  AUTOSAR ADAPTIVE VS ROS (‘C’ IS CONSTRUCT MODEL ELEMENT)                                       system would require a process of detection of interface
       AUTOSAR Adaptive                              Android Component                           semantic synergies and resolution of semantic conflicts. The
       Component Construct                           Construct Elements                          ontologies alignment can use one or more similarity measures
           Elements                                                                              (syntactic, semantic and structural) to detect the set of
                      C1                                        C30                              mappings [15]. To better meet this objective, and to
                      C2                                        C31
                                                                                                 significantly increase the scope of future semantic integration
                                                                                                 algorithms for automotive app interface models following our
                      C5                                        C34                              approach, an overall semantic ontology mapping must be done
                      C6                                        C37                              between the different component construct meta-models.
                      C7                                        C36                                  If we consider G1, G2, G3 and G4 are the graphical model
                                                                                                 representations of different FW component construct meta-
 IV. FUTURE SCOPE: SEMANTIC ONTOLOGY MAPPING OF                                                  models (as described in section III) and P1,P2,P3 and P4 are
                                                                                                 specific semantic relations or ontologies included in G1, G2,
    COMPONENT INTERFACE MODELS OF FRAMEWORKS
                                                                                                 G3 and G4 such that P1 ⊂ G1, P2 ⊂ G2, P3 ⊂ G3 and P4 ⊂ G4.
   Aligning semantic ontologies represents a great interest in                                   Then based on interface semantic static analysis approach and
automotive app domains that manipulate heterogeneous                                             semantic synergy results, we can say that the semantic
overlapping knowledge FWs. For a future general domain-                                          ontologies represented by P1, P2, P3 and P4 are such that P1 ≅



                                                                                           63
P2 ≅ P3 ≅ P4 with overlapping knowledge domains. Therefore,              component models that we have already shortlisted, we would
we can also say that I (G1, G2, G3, G4) is the set of isomorphic         like to extend our work in the direction of cross-domain
or similar sub-graphs [15]. However, such a semantic                     interface semantic analysis and comparison to explore more
ontology mapping could be better explained with                          semantic synergies between these component models and
transformation of the UML profiles in ontologies.                        automotive standard FW component models in the future.
                      V. CONCLUSION
    Today the development of vehicle software systems is                                              REFERENCES
getting more and more complex and widely distributed. End                [1]  I.Crnkovic, S.Sentilles, A.Vulgarakis and M.Chaudron, “A
users expect faster, reliable and scalable results despite                    Classification Framework for Component Models”, IEEE Transactions
unpredictable changes in the market. With the proposed                        on Software Engineering 37 (5), 593-615.
approach towards interoperability, we were successful to                 [2] T.Wang, S.Truptil and F.Benaben, “An automatic model-to-model
explore interface semantic synergies among few of the cross-                  mapping and transformation methodology to serve model-based
domain component-based software FWs. The app component                        systems engineering”, Information Systems and EBusiness
                                                                              Management, Springer Verlag, 2017, 15 (2, SI), pp.323-376.
constructs dimension refers to the notions of reusability and
                                                                         [3] AUTOSAR, “Specification of Manifest”, AUTOSAR AP Release 18-
resolvability, which are important principles of CBSE                         10, 2017.http://www.autosar.org.
(Component based Software Engineering). The proposed
                                                                         [4] AUTOSAR, http://www.autosar.org, “Integration of Franca IDL SWC
approach of interface static semantic analysis ensures that                   Descriptions”, AUTOSAR Release 16-11,November 2016.
SWC interface models of heterogeneous frameworks can be                  [5] H. Bruyninckx, N. Hochgeschwender, L. Gherardi, M. Klotzbücher, G.
compared, correlated and re-used for vehicle apps. The main                   Kraetzschmar, D. Brugali, "The BRICS Component Model: a Model-
contribution of this paper is based on the semantic survey of                 based Development Paradigm for Complex Robotics Software
various cross-domain FW SWC interface models from                             Systems", Annual ACM Symposium on Applied Computing (SAC).
component construct perspective. The FW components                       [6] T. Pramsohler, S. Schenk, A. Barthels und U Baumgarten, “A layered
considered in the research scope are associated with                          interface-adaptation architecture for distributed component-based
                                                                              systems”. en. In: Future Generation Computer Systems,Elsevier,Vol
automotive app domain. Each FW component construct is                         47,June 2015,pp 113-126.
represented in a CPC (Component-Port-Connector) model                    [7] D. Bálek, F. Plášil (2001) “Software Connectors and Their Role in
format using an UML profile (M2 level) representation based                   Component Deployment”. (eds) New Developments in Distributed
on the hierarchically classified three distinct levels: Semantic,             Applications and Interoperable Systems.DAIS 2001. IFIP International
Behavior and Composition. The semantic survey of IDLs                         Federation for Information Processing, vol 70. Springer, Boston, MA.
revealed several areas where they provide common extensive               [8] A.Shakhimardanov, N.Hochgeschwender, and G. K. Kraetzschmar,
support, both in terms of modeling capabilities and                           “Component Models in Robotics Software”. In Proceedings of the
                                                                              Performance Metrics for Intelligent Systems Workshop (PerMIS
algorithmic (IDL) support. On the other hand, the survey also                 2010). Baltimore, US.
pointed out areas in which existing IDLs are severely differed           [9] D.Stampfer, “D2.2.1 State of the Art on Service-Oriented Software
from one another.                                                             Component Models”, FIONA ITEA2-12038, version 1.0, March 2014.
    The static interface semantic analysis approach is at a              [10] Birken, K., http://www.bmw.com “Franca User Guide”, “Franca
                                                                              Component Definition language Franca+ User guide” “.Release
conceptual stage and is carried out manually. The approach                    0.12.0.1, Eclipse Foundation, itemis AG, 2013. Release 0.13.0, BMW
considered the target meta-model as automotive domain SWC                     Group,2018.
construct meta-model and the source meta-model as other                  [11] D.Di. Ruscio, D. Wagelaar, L. Iovino and A.Pierantonio “Translational
cross-domain industrial SWC construct meta-models, for the                    Semantics of a co-evolution Specific language with the EMF
semantic mapping (or comparisons). With our approach, we                      Transformation Virtual Machine”, ICMT 2012, pp 71-89.
considered AUTOSAR Adaptive app SWC meta-model as                        [12] P.Brada, “A Look at Current Component Models From Black-box
target model. The intention of this consideration of the target               Perspective”, 35th Euromicro Conference on Software Engineering
SWC meta-model is due to the fact that AUTOSAR has been                       and Advanced Applications,2009.
accepted as a de-facto standard for automotive software                  [13] A. G. Parada and L. Brisolara, “A Model Driven Approach for Android
                                                                              Application Development”, Brazilian Symposium on Computing
architecture. The decision for the selection of source and                    System Engineering,2012.
targets meta-models has been made from autonomous driving                [14] H. Benouda, R. Essbai, M. Azizi and M. Moussaoui, “ Modeling and
app’s interoperability viewpoint. There is no evolutionary                    Code Generation of Android Application Using Acelo”, International
relation between the source and target. In order to transform                 Journal of Software Engineering and Its Applications vol. 10, No. 3
source models to target models in future or to evolve the                     2016, pp. 83-94.
model transformation rules from source to target, semantic               [15] H. Elasri,,E.Elabbassi,S.Abderrahim and Muhammad, “Semantic
mappings should be built on the meta-model level and used on                  integration of UML Class diagram with Semantic Validation on
                                                                              Segments of Mapping”,ArXiv 2018.
the model level.
                                                                         [16] D. Sprott and L. Wilkes, “Understanding Service-Oriented
     Considering the context of enterprise interoperability and               Architecture”. The Architecture Journal, 1(1):10-17,2004.
collaboration that is cross-enterprise, the static interface             [17] C. Paniagua, J.Delsing and J.Eliasson, “Interoperability Mismatch
semantic analysis and comparison approach could simulate                      Challenges in Heterogeneous SOA-based Systems”, 2019 IEEE
                                                                              International Conference on Industrial Technology (ICIT), DOI:
the process of integrating the information systems of different               10.1109/ICIT.2019.8754991.
enterprises for EIS (Enterprise Integration System)
                                                                         [18] I. Malavolta, "Software Architecture Modeling by Reuse, Composition
integration. In the last decade, the automotive and other cross-              and Customization." Universita di L’Aquila, L’Aquila, Italy, Thesis 1
domain research in the field of Self-driving has facilitated the              (2012).
development and state-of-the-art so that this technology is              [19] RobMoSys,“Block-Port.Connector”, RobMoSys Wiki, June 2017
evaluated nowadays in large-scales on public roads. In this                   http://www.robmosys.eu.
context of autonomous driving functionality, it is worth to
mention that for some of the other existing cross-domain




                                                                    64