TOSCA Software-Defined Car (SofDCar) Profile 1.0 Release Candidate¶
This document specifies the TOSCA Software-Defined Car (SofDCar) profile.
This profile includes normative TOSCA types for the domain of software-defined cars.
Standardizing such normative TOSCA types improves interoperability.
For example, an ECU supplier can model and distribute the deployment and management of their ECUs using these types.
Various OEMs can then import provided models and integrate them into their cars.
The specification is under active development and is not backwards compatible with any previous versions.
The core normative TOSCA type definitions contain high-level type definitions which are mainly derived from the normative TOSCA type definitions of the TOSCA Simple Profile in YAML 1.3.
These types mainly concern the following topics.
Hardware and software of electronic computing units (ECUs) which are typically microcontrollers
Hardware and software of high performance computing platforms (HPCs) which are typically microprocessors
Sensors and actuators
Communication channels
Considering the modeling communication, the TOSCA modeling approach is application centric meaning that, e.g., a CAN communication is modeled by relationships between the communicating software components.
Thus, no (physical) CAN bus is modeled between the ECUs.
However, this might not provide all required information.
This issue is also discussed in the networking section of the TOSCA specification.
In this section, the authors of TOSCA propose to have a TOSCA model for the application and a second separate one for the networking.
Therefore, we provide type definitions to model such an automotive TOSCA networking model which includes, e.g., a physical CAN bus.
The extended normative TOSCA type definitions contain additional high-level type definitions which are derived from the core type definitions.
These types mainly concern specific communications, such as CAN or FlexRay, but also ECUs and HPCs, such as Arduino or Raspberry Pi.
The hardware of a Raspberry Pi serving as an HPC hardware. This Raspberry Pi is able to host HPC software. Furthermore, the Raspberry Pi is able to directly host python applications without explicit python runtime since a python runtime is already installed on the Raspberry Pi.
sofdcar.relationships.CAN:derived_from:sofdcar.relationships.Rootproperties:interface:type:stringdescription:The interface name at the source at which the CAN bus is available.default:can0target_interface:type:stringdescription:The interface name at the target at which the CAN bus is available.required:falsebitrate:type:integerdescription:The bitrate of the CAN bus.required:false
tosca_definitions_version:tosca_simple_yaml_1_3description:TOSCA Profile for Software-Defined Cars.metadata:template_name:TOSCA SofDCar Profiletemplate_author:Miles Stötznertemplate_contact:miles.stoetzner@iste.uni-stuttgart.detemplate_link:https://vintner.opentosca.orgtemplate_version:1.0.0-drafttemplate_id:tosca-sofdcar-profiletemplate_license:https://www.apache.org/licenses/LICENSE-2.0acknowledgments:Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).imports:-./tosca-sofdcar-profile-core.yaml-./tosca-sofdcar-profile-extended.yaml
tosca_definitions_version:tosca_simple_yaml_1_3description:TOSCA Profile for Software-Defined Cars (Core).metadata:template_name:TOSCA SofDCar Profile (Core)template_author:Miles Stötznertemplate_contact:miles.stoetzner@iste.uni-stuttgart.detemplate_link:https://vintner.opentosca.orgtemplate_version:1.0.0-drafttemplate_id:tosca-sofdcar-profile-coretemplate_license:https://www.apache.org/licenses/LICENSE-2.0abbreviations:|- ASIL: Automotive Safety Integrity Level- CAN: Controller Area Network- CAN-FD: Controller Area Network Flexible Data-Rate- ECU: Electronic Control Unit- GPIO: General-Purpose Input/ Output- HPC: High Performance Computer- LIDAR: Light Detection and Ranging- LIN: Local Interconnect Network- MOST: Media-Oriented Systems Transport- OBD: On-Board Diagnostics- RADAR: Radio Detection and Ranging- SOME/IP: Scalable Service-Oriented Middleware over IPacknowledgments:Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).artifact_types:sofdcar.artifacts.Root:description:The artifact all other artifacts are derived from.derived_from:tosca.artifacts.Rootsofdcar.artifacts.Deployment:description:The artifact all other deployment artifacts are derived from.derived_from:tosca.artifacts.Deploymentsofdcar.artifacts.Implementation:description:The artifact all other implementation artifacts are derived from.derived_from:tosca.artifacts.Implementationcapability_types:sofdcar.capabilities.Root:description:The capability all other capabilities are derived from.derived_from:tosca.capabilities.Rootsofdcar.capabilities.Host.ECU.Software:description:The capability to host an ECU software.derived_from:tosca.capabilities.Containersofdcar.capabilities.OperatingSystem.RealTime:description:The capability to provide a real-time operating system.derived_from:tosca.capabilities.OperatingSystemproperties:time_guarantee:type:integerrequired:falseguarantee_type:type:stringconstraints:-valid_values:-hard-firm-softsofdcar.capabilities.Endpoint:description:The capability to provide an endpoint to which a client can connect to.derived_from:sofdcar.capabilities.Rootdata_types:sofdcar.data.Root:description:The data all other data are derived from.derived_from:tosca.datatypes.Rootgroup_types:sofdcar.groups.Root:description:The group all other groups are derived from.derived_from:tosca.groups.Rootsofdcar.groups.Location:description:The geographical location of nodes.derived_from:sofdcar.groups.Rootsofdcar.groups.Domain:description:The domain in a domain-oriented architecture.derived_from:sofdcar.groups.Rootsofdcar.groups.Zone:description:The zone in a zone-oriented architecture.derived_from:sofdcar.groups.Rootinterface_types:sofdcar.interfaces.Root:description:The interface all other interfaces are derived from.derived_from:tosca.interfaces.Rootsofdcar.interfaces.Nodes:description:The standard management interface of nodes.derived_from:tosca.interfaces.node.lifecycle.Standardoperations:build:description:Builds deployment artifacts.sofdcar.interfaces.Relationship:description:The standard management interface for relationships.derived_from:tosca.interfaces.relationship.Configurenode_types:sofdcar.nodes.Root:description:The node all other nodes are derived from.derived_from:tosca.nodes.Rootsofdcar.nodes.Vehicle:description:The node all other vehicles are derived from.derived_from:sofdcar.nodes.Rootsofdcar.nodes.Cloud:description:The node all other clouds are derived from.derived_from:sofdcar.nodes.Rootsofdcar.nodes.ECU.Hardware:description:The hardware of an ECU.derived_from:sofdcar.nodes.Rootcapabilities:host:type:sofdcar.capabilities.Host.ECU.Softwarevalid_source_types:[sofdcar.nodes.ECU.Software]sofdcar.nodes.ECU.Software:description:The software running on an ECU.derived_from:sofdcar.nodes.Rootrequirements:-host:capability:sofdcar.capabilities.Host.ECU.Softwarerelationship:tosca.relationships.HostedOnsofdcar.nodes.ECU.Runtime:description:The runtime for an ECU software.derived_from:sofdcar.nodes.ECU.Softwarecapabilities:host:type:sofdcar.capabilities.Host.ECU.Softwarevalid_source_types:[sofdcar.nodes.ECU.Software]requirements:-host:capability:sofdcar.capabilities.Host.ECU.Softwarerelationship:tosca.relationships.HostedOnsofdcar.nodes.HPC.Software:description:The software running on an HPC.derived_from:tosca.nodes.SoftwareComponentsofdcar.nodes.HPC.Hardware:description:The hardware of an HPC.derived_from:sofdcar.nodes.Rootcapabilities:host:type:tosca.capabilities.Computevalid_source_types:[tosca.nodes.SoftwareComponent]sofdcar.nodes.Actuator:description:The node all other actuators are derived from.derived_from:sofdcar.nodes.Rootsofdcar.nodes.Accelerator:description:The node all other accelerators are derived from.derived_from:sofdcar.nodes.Actuatorsofdcar.nodes.Brake:description:The node all other brakes are derived from.derived_from:sofdcar.nodes.Actuatorsofdcar.nodes.Steering:description:The node all other steerings are derived from.derived_from:sofdcar.nodes.Actuatorsofdcar.nodes.Light:description:The node all other lights are derived from.derived_from:sofdcar.nodes.Actuatorsofdcar.nodes.Cooling:description:The node all other coolings are derived from.derived_from:sofdcar.nodes.Actuatorsofdcar.nodes.Airbag:description:The node all other airbags are derived from.derived_from:sofdcar.nodes.Actuatorsofdcar.nodes.Sensor:description:The node all other sensors are derived from.derived_from:sofdcar.nodes.Rootsofdcar.nodes.RADAR:description:The node all other RADAR are derived from.derived_from:sofdcar.nodes.Sensorsofdcar.nodes.Camera:description:The node all other cameras are derived from.derived_from:sofdcar.nodes.Sensorsofdcar.nodes.LIDAR:description:The node all other LIDAR are derived from.derived_from:sofdcar.nodes.Sensorsofdcar.nodes.Ultrasonic:description:The node all other ultrasonics are derived from.derived_from:sofdcar.nodes.Sensorsofdcar.nodes.Microphone:description:The node all other microphones are derived from.derived_from:sofdcar.nodes.Sensorsofdcar.nodes.Channel:description:The node all other communication channels are derived from.derived_from:sofdcar.nodes.Rootcapabilities:endpoint:type:sofdcar.capabilities.Endpointoccurrences:[0,UNBOUNDED]sofdcar.nodes.Battery:description:The node all other batteries are derived from.derived_from:sofdcar.nodes.Rootsofdcar.nodes.Feature:description:The node all other features are derived from.derived_from:sofdcar.nodes.Rootpolicy_types:sofdcar.policies.Root:description:The policy all other policies are derived from.derived_from:tosca.policies.Rootsofdcar.policies.Security:description:The policy all other security-related policies are derived from.derived_from:sofdcar.policies.Rootsofdcar.policies.Safety:description:The policy all other safety-related policies are derived from.derived_from:sofdcar.policies.Rootrelationship_types:sofdcar.relationships.Root:description:The relationship all other relationships are derived from.derived_from:tosca.relationships.Root
tosca_definitions_version:tosca_simple_yaml_1_3description:TOSCA Profile for Software-Defined Cars (Extended).metadata:template_name:TOSCA SofDCar Profile (Extended)template_author:Miles Stötznertemplate_contact:miles.stoetzner@iste.uni-stuttgart.detemplate_link:https://vintner.opentosca.orgtemplate_version:1.0.0-drafttemplate_id:tosca-sofdcar-profile-extendedtemplate_license:https://www.apache.org/licenses/LICENSE-2.0abbreviations:|- ASIL: Automotive Safety Integrity Level- CAN: Controller Area Network- CAN-FD: Controller Area Network Flexible Data-Rate- ECU: Electronic Control Unit- GPIO: General-Purpose Input/ Output- HPC: High Performance Computer- LIDAR: Light Detection and Ranging- LIN: Local Interconnect Network- MOST: Media-Oriented Systems Transport- OBD: On-Board Diagnostics- RADAR: Radio Detection and Ranging- SOME/IP: Scalable Service-Oriented Middleware over IPacknowledgments:Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).imports:-./tosca-sofdcar-profile-core.yamlcapability_types:sofdcar.capabilities.Endpoint.CAN:description:The capability to provide a CAN endpoint.derived_from:sofdcar.capabilities.Endpointsofdcar.capabilities.Endpoint.CAN-FD:description:The capability to provide a CAN-FD endpoint.derived_from:sofdcar.capabilities.Endpoint.CANsofdcar.capabilities.Endpoint.LIN:description:The capability to provide a LIN endpoint.derived_from:sofdcar.capabilities.Endpointsofdcar.capabilities.Endpoint.MOST:description:The capability to provide a MOST endpoint.derived_from:sofdcar.capabilities.Endpointsofdcar.capabilities.Endpoint.GPIO:description:The capability to provide a GPIO endpoint.derived_from:sofdcar.capabilities.Endpointsofdcar.capabilities.Endpoint.FlexRay:description:The capability to provide a FlexRay endpoint.derived_from:sofdcar.capabilities.Endpointsofdcar.capabilities.Endpoint.Ethernet:description:The capability to provide an Ethernet endpoint.derived_from:sofdcar.capabilities.Endpointsofdcar.capabilities.Endpoint.OBD:description:The capability to provide an OBD endpoint.derived_from:sofdcar.capabilities.Endpoint.CANsofdcar.capabilities.Endpoint.SOME/IP:description:The capability to provide a SOME/IP endpoint.derived_from:sofdcar.capabilities.Endpoint.Ethernetdata_types:sofdcar.data.GPIO.Pin:description:The GPIO pin used, e.g., when connecting using GPIO.derived_from:sofdcar.data.Rootproperties:pin:type:integerdirection:type:stringconstraints:-valid_values:-in-out-in/outnode_types:sofdcar.nodes.CAN:description:The CAN channel all other CAN channels are derived from.derived_from:sofdcar.nodes.Channelproperties:bitrate:type:integerrequired:falsecapabilities:endpoint:type:sofdcar.capabilities.Endpoint.CANoccurrences:[0,UNBOUNDED]sofdcar.nodes.CAN-FD:description:The CAN-FD channel all other CAN-FD channels are derived from.derived_from:sofdcar.nodes.CANcapabilities:endpoint:type:sofdcar.capabilities.Endpoint.CAN-FDoccurrences:[0,UNBOUNDED]sofdcar.nodes.LIN:description:The LIN channel all other LIN channels are derived from.derived_from:sofdcar.nodes.Channelcapabilities:endpoint:type:sofdcar.capabilities.Endpoint.LINoccurrences:[0,UNBOUNDED]sofdcar.nodes.MOST:description:The MOST channel all other MOST channels are derived from.derived_from:sofdcar.nodes.Channelcapabilities:endpoint:type:sofdcar.capabilities.Endpoint.MOSToccurrences:[0,UNBOUNDED]sofdcar.nodes.GPIO:description:The GIP channel all other GIP channels are derived from.derived_from:sofdcar.nodes.Channelcapabilities:endpoint:type:sofdcar.capabilities.Endpoint.GPIOoccurrences:[2,2]sofdcar.nodes.FlexRay:description:The FlexRay channel all other FlexRay channels are derived from.derived_from:sofdcar.nodes.Channelcapabilities:endpoint:type:sofdcar.capabilities.Endpoint.FlexRayoccurrences:[0,UNBOUNDED]sofdcar.nodes.Ethernet:description:The ethernet channel all other ethernet channels are derived from.derived_from:sofdcar.nodes.Channelcapabilities:endpoint:type:sofdcar.capabilities.Endpoint.Ethernetoccurrences:[2,2]sofdcar.nodes.SOME/IP:description:The SOME/IP channel all other SOME/IP channels are derived from.derived_from:sofdcar.nodes.Ethernetcapabilities:endpoint:type:sofdcar.capabilities.Endpoint.SOME/IPoccurrences:[2,2]sofdcar.nodes.Python.Application:description:>Non-normative python application running on an HPC.This application requires a python runtime.derived_from:sofdcar.nodes.HPC.Softwarerequirements:-host:capability:tosca.capabilities.Computerelationship:tosca.relationships.HostedOnsofdcar.nodes.Python.Runtime:description:>Non-normative python runtime running on an HPC.This runtime is able to host python applications and requires a host.derived_from:sofdcar.nodes.HPC.Softwarecapabilities:host:type:tosca.capabilities.Computevalid_source_types:[sofdcar.nodes.Python.Application]requirements:-host:capability:tosca.capabilities.Computerelationship:tosca.relationships.HostedOnsofdcar.nodes.RaspberryPi.Hardware:description:>The hardware of a Raspberry Pi serving as an HPC hardware.This Raspberry Pi is able to host HPC software.Furthermore, the Raspberry Pi is able to directly host python applications without explicit python runtime since a python runtime is already installed on the Raspberry Pi.derived_from:sofdcar.nodes.HPC.Hardwarecapabilities:host:type:tosca.capabilities.Computevalid_source_types:[sofdcar.nodes.HPC.Software,sofdcar.nodes.Python.Application]sofdcar.nodes.Arduino.Software:description:The software running on an Arduino.derived_from:sofdcar.nodes.ECU.Softwaresofdcar.nodes.Arduino.Software.C++:description:C++ software running on an Arduino.derived_from:sofdcar.nodes.Arduino.Softwaresofdcar.nodes.Arduino.Hardware:description:>The hardware of an Arduino serving as ECU hardware.The Arduino is able to host Arduino software.derived_from:sofdcar.nodes.ECU.Hardwarecapabilities:host:type:sofdcar.capabilities.Host.ECU.Softwarevalid_source_types:[sofdcar.nodes.Arduino.Software]policy_types:sofdcar.policies.ASIL:description:The policy that all other ASIL policies are derived from.derived_from:sofdcar.policies.Safetysofdcar.policies.ASIL.A:description:The policy that represents the ASIL level A.derived_from:sofdcar.policies.ASILsofdcar.policies.ASIL.B:description:The policy that represents the ASIL level B.derived_from:sofdcar.policies.ASILsofdcar.policies.ASIL.C:description:The policy that represents the ASIL level C.derived_from:sofdcar.policies.ASILsofdcar.policies.ASIL.D:description:The policy that represents the ASIL level D.derived_from:sofdcar.policies.ASILrelationship_types:sofdcar.relationships.CAN:description:The relationship for CAN connections.derived_from:sofdcar.relationships.Rootproperties:interface:type:stringdescription:The interface name at the source at which the CAN bus is available.default:can0target_interface:type:stringdescription:The interface name at the target at which the CAN bus is available.required:falsebitrate:type:integerdescription:The bitrate of the CAN bus.required:falsesofdcar.relationships.CAN-FD:description:The relationship for CAN-FD connections.derived_from:sofdcar.relationships.CANsofdcar.relationships.LIN:description:The relationship for LIN connections.derived_from:sofdcar.relationships.Rootsofdcar.relationships.MOST:description:The relationships for MOST connections.derived_from:sofdcar.relationships.Rootsofdcar.relationships.GPIO:description:The relationship for GPIO connections.derived_from:sofdcar.relationships.Rootproperties:pins:type:listentry_schema:type:sofdcar.data.GPIO.Pinsofdcar.relationships.FlexRay:description:The relationship for FlexRay connections.derived_from:sofdcar.relationships.Rootsofdcar.relationships.Ethernet:description:The relationship for Ethernet connections.derived_from:sofdcar.relationships.Rootsofdcar.relationships.OBD:description:The relationship for OBD connections.derived_from:sofdcar.relationships.CANsofdcar.relationships.SOME/IP:description:The relationship for SOME/IP connections.derived_from:sofdcar.relationships.Ethernet
Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its
Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including,
without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work
and assume any risks associated with Your exercise of permissions under this License.