This proposal has been approved and the Eclipse uProtocol project has been created.
Visit the project page for the latest information and development.

Eclipse uProtocol

Thursday, March 9, 2023 - 18:01 by Steven Hartley
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

A software defined vehicle requires the design and development of software entities(uEs) that are distributed by nature, and deployed in many different os/hw environments such as vehicle-mechatronics, vehicle-high-compute SoCs, mobile phones, infrastructure, the cloud, etc.... 

Each environment has their own software development languages, deployment solutions, and communication protocols making application and service development for connected vehicles challenging and often OEM/vendor specific.

The currently are no common protocols that cross automotive and cloud boundaries for messaging/RPC, existing solutions are tailored for specific use cases and each come with their own pro's and cons (ex. it works in the cloud but not for safety critical ASIL-D messages).

Finally, given the lack of connections between the embedded automotive and Internet/cloud worlds, there is no standard way to safely and securely discover, connect, and communicate with software across the various above mentioned deployments so more often than not OEMs are left with implementing proprietary communication solutions.

Scope

Eclipse uProtocol provides a transport agnostic, layered communication protocol that is deployment, OS, and device (vehicle, cloud, mobile phone, charging station, etc...) agnostic, leveraging well-known existing automotive and Internet standards. Scope of the project shall include the specifications, sdk, and reference implementations of the specifications. 

Description

Purpose

Connecting Automotive Apps and Services, Everywhere

The purpose of this project shall be to provide a transport agnostic, layered communication protocol that builds on top of existing automotive and Internet standards, from the mechatronic layer (between ECUs, VMs, etc…) up to the Cloud, enabling a connected software defined vehicles.

Overview

The protocol is divided up into three layers:

  • Application Layer (uP-L3):
    • Responsible for business/application logic through definition of methods, topics, messages
    • Core Platform uEs (uSubscription, uDiscovery, etc...)
  • Communication Layer (uP-L2):
    • Describing data & metadate in a common way using CloudEvents: publication/notificaitons, request/response, file transfer, etc...
    • Routing & Dispatching of events through Dispatchers (uBus, uStreamer, Device Proxy Router, Cloud Proxy)
  • Transport Layer (uP-L1):
    • Sending & receiving of events point-2-point between Software Entities (uEs)
    • Session an connection over automotive & Internet standards

For more information about uProtocol please visit: Overview of uProtocol

Project Contents

The uProtocol project shall contain that contain a number of children repos that are:

  1. eclipse-uprotocol/uprotocol: Protocol specification & various layers interface definitions  and interface definitions
  2. eclipse-uprotocol/uprotocol-sdk-java: Java Software development Kit (implements uP-L2 and includes other helper code for the protocol)
  3. eclipse-uprotocol/uprotocol-sdk-cpp: Same as Java SDK but for C++
  4. eclipse-uprotocol/uprotocol-android: Android implementation of uProtocol, both the transport protocol (Binder) and core dispatchers and application logic 
Why Here?

The value we hope to give (and get) are:

  • Collect valueable feedback and insite from the industry
  • Avoid fragmentation (OEM/vendor specific solutions)
  • Rally around a common vision for the software defined vehicle
  • Harmonize across the automotive projects to a common vision such that we can expand the deployments and functionality supported by this underlining protocol
Future Work

Other deployment solutions (cloud providers, IV OS like Linux, QNX, etc...), additional transports, etc... .  

Project Scheduling

An official release of the source code is planned for September (post incubation period to allow for feedback from the community). Documentation might be released sooner. 

Project Leads
Committers
Steven Hartley (This committer does not have an Eclipse Account)
Interested Parties

This project is backed by General Motors and is part of the SDV initiative

Initial Contribution

We will release the following initially:

  • uProtocol specification
  • Java SDK
  • C++ SDK
  • Compatibility Test Kit (CTK) (how to validate the protocol implementations)
  • Android implementation
Source Repository Type