Skip to content

Latest commit

 

History

History
113 lines (92 loc) · 9.64 KB

terms.adoc

File metadata and controls

113 lines (92 loc) · 9.64 KB

Definition of Terms

Table of Contents
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

General Terms

Table 1. General Terms
Term Definition

MQTT

Lightweight publish/subscribe messaging transport

URI

Uniform Resource Identifier per RFC3986

OAuth 2.0

The industry-standard protocol for authorization.

hostname

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

Domain Name

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

Domain Name System (DNS)

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

Entity-Control-Boundary Pattern (ECB)

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

Object Description

Entity

Long-lived information relevant for the stakeholders (i.e. mostly derived from domain objects, usually persistent)

Boundary

Encapsulates interaction with external controllers (users or external systems)

Controller

Ensures the processing required for the execution of a use-case and its business logic, and coordinates, sequences controls other objects involved in the use-case

Actor

Represents an object interacting with the system. Objects, or actors, represent various roles, such as users or external systems

Protocol

A set of rules governing the exchange or transmission of data between software components

Routing

Routing is the process of path selection in any network

Packet

A block of data transmitted across a network

Binding

Creating a connection between two software entities for a specified amount of time to allow data to be sent and/or received

Communication Protocol

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.

Application Protocol

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:

  • The types of messages, e.g., request messages and response messages.

  • The syntax of the various message types, i.e., the fields in the message and how the fields are delineated.

  • The semantics of the fields, i.e., the meaning of the information that the field is supposed to contain;

  • Rules for determining when and how a process sends messages and responds to messages.

Transport Protocol

A specification for providing transparent transfer of data from point-2-point, providing reliable data transfer services to the upper layers.

Network Socket

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.

CloudEvent (CE)

A specifications for describing event data in a common way

QoS

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.

uProtocol Terms

Table 2. uProtocol Terms
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