Copyright (c) 2023 General Motors GTO LLC Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. SPDX-FileType: DOCUMENTATION SPDX-FileCopyrightText: 2023 General Motors GTO LLC SPDX-License-Identifier: Apache-2.0
Term | Definition | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Lightweight publish/subscribe messaging transport |
|||||||||||
Uniform Resource Identifier per RFC3986 |
|||||||||||
The industry-standard protocol for authorization. |
|||||||||||
A label that is assigned to a device connected to a computer network and that is used to identify the device in various forms of electronic communication |
|||||||||||
Identification string that defines a realm of administrative autonomy, authority or control within the Internet. Domain names are used in various networking contexts and for application-specific naming and addressing purposes. In general, a domain name identifies a network domain |
|||||||||||
The is the hierarchical and decentralized naming system used to identify computers, services, and other resources reachable through the Internet or other Internet Protocol (IP) networks |
|||||||||||
FQDN |
Fully qualified domain name |
||||||||||
An architectural pattern used in use-case driven object-oriented software design that structures the classes composing a software according to their responsibilities in the use-case realization
|
|||||||||||
Protocol |
A set of rules governing the exchange or transmission of data between software components |
||||||||||
Routing is the process of path selection in any network |
|||||||||||
Packet |
A block of data transmitted across a network |
||||||||||
Creating a connection between two software entities for a specified amount of time to allow data to be sent and/or received |
|||||||||||
Is a set of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchronization of communication and possible error recovery methods. Protocols may be implemented by hardware, software, or a combination of both. |
|||||||||||
An application layer protocol defines how processes (clients and servers), running on same or different end systems, pass messages to each other. In particular, an application layer protocol defines:
|
|||||||||||
Transport Protocol |
A specification for providing transparent transfer of data from point-2-point, providing reliable data transfer services to the upper layers. |
||||||||||
A software structure within a network node of a computer network that serves as an endpoint for sending and receiving data across the network. The structure and properties of a socket are defined by an application programming interface (API) for the networking architecture. Sockets are created only during the lifetime of a process of an application running in the node. socket is also used for the software endpoint of node-internal inter-process communication (IPC), which often uses the same API as a network socket. |
|||||||||||
A specifications for describing event data in a common way |
|||||||||||
Quality of service is the description or measurement of the overall performance of a service, such as a telephony or computer network, or a cloud computing service, particularly the performance seen by the users of the network |
|||||||||||
Business Logic (Domain Logic) |
The part of the program that encodes the real-world business rules that determine how data can be created, stored, and changed. It is contrasted with the remainder of the software that might be concerned with lower-level details of managing a database or displaying the user interface, system infrastructure, or generally connecting various parts of the program. |
Terms | Definition |
---|---|
C2D |
Cloud-2-Device Communication |
D2C |
Device-2-Cloud Communication |
D2D |
Device-2-Device Communication |
uDevice |
Independent software execution environment that will implement uProtocol and contain a collection of uEs along with dispatcher(s) |
Device Proxy Router (DPR) |
Proxies D2D communication when devices are unable to connect directly with each other |
uDomain |
Collection of uDevices using DNS nomenclature |
Message |
Protobuf defined data structure used for communication in the uProtocol |
Property |
An attribute, quality, or characteristic of a uThing that are stored in the uDiscovery database |
Resources |
Something that can be manipulated/controlled/exposed by a service. Resources are unique when prepended with device and service. Static Topic: Resource that is declared in the service proto in Resource enum and known at compile time (ex. door, window, etc…) Dynamic Topic: Created at runtime and not defined in the service proto (ex. geo-fence locations) |
uBus |
Message bus that dispatches CEs between uEs over a common transport. It provides multicast and forwarding functionality (works like a network switch) |
uStreamer |
Device-2-Device event dispatcher to enable seamless communication between uEs on different devices whom might talk different transport layer protocols. Performs various additional functionality such as file transfer, event buffering and more. i.e. when events need to move form one transport to the next it flows through the streamer (can be equated to an IP router) |
uDiscovery |
Provides a means for uEs to discover each other, their location (address), properties, and more. |
Topic |
What applications subscribe to and services publish to. It is made up of service, resource, and message in uProtocol URI format] |
uApplication |
A uE that performs the role of consumer |
uService |
A uE that performs the role of producer whos interfaces are defined with a protobuf IDL |
uThing |
URI addressable stuff that can be accessed by the uProtocol. Examples of uThings are devices, domains, service, and resources. |
Cloud Gateway |
Component that lives in the cloud that devices connect with to communicate with the Back-office domain/device |
uE |
Pronounced "You-We" is a piece of software that communicates to another uEs using uProtocol |
Platform uE |
Special purpose built uE that is required per the protocol be present either in each uDevice, domain |
uP-L1 |
uProtocol Transport & Session Layer |
uP-L2 |
uProtocol Communication Layer |
uP-L3 |
uProtocol Application Layer |