Skip to end of metadata
Go to start of metadata

Site Navigation: Introduction to EdgeX Foundry | EdgeX Foundry Microservices Architecture | API Reference Definitions    



Click on the following letters for navigation within this table of definitions.

C - F,        G - L,        M - O,        P - Q,          R - Z

TermDefinition
Admin State

Admin or Administrative State is a setting on a Device Service or Device.  It provides control of the Device Service or Device by man or other systems.  The Admin State can be set to either "locked" or "unlocked".  When set to locked, the Device or Device Service is not suppose to respond to any Command requests nor send data into the rest of EdgeX.  In essence, it when set to locked, the Device or Device Service is still operational, but is not expected to send or receive communications with the rest of EdgeX.

Agnostic

The word agnostic comes from the Greek a-, meaning without and gn?sis, meaning knowledge. Agnostic means "without knowledge." In technology, agnostic means that the item is not specific to a set method or other item, but instead can function with a variety of methods or other items. The agnostic item functions without "knowing" the details of the items with which it is working, or the system with which it is within.

Technology agnosticism is accomplished through compliance with widely-used standards or the item is designed and built to be able to interact with a variety of other types of items.

Software, including databases, operating systems, platforms; hardware, including devices; standards, protocols, even business processes can be "agnostic." Examples are as follows:

  • Cross-platform software applications are platform-agnostic and operate on any combination of operating systems and architecture.
  • Software applications may be device-agnostic and operate on various types of computers, tablets, and mobile devices.
  • Software applications such as business analytics (BA) and enterprise resource planning (ERP), may be database-agnostic and operate with any vendor's database management system (DBMS).
  • Software may be protocol-agnostic and be independent of communication protocols by negotiating protocols with its peer, then starting communication.
  • Software may be business process agnostic with the logic being isolated and the software is able to function in different business processes.
  • Software, middle ware, hardware, can be vendor agnostic and able to interact with products of different vendors.
  • Licensing of software may be hardware agnostic and be per device or per user, rather than each license set for a specific device or virtual machine.
  • Hardware agnostic is also referred to as device independent.
Analog

A signal or value whose full range of possible values would be programmatically represented by real numbers.

In electrical signaling, an analog measurement is represented by a voltage, current or resistance, and an analog control signal is represented by voltage, current or relay closure. These thus require a programmatic transformation to provide meaning. For instance, a sensor providing a signal with a range of 0-5 VDC may represent a differential air flow pressure between -1 and +1 inches of water. Many transformations are linear, but some very common sensors (e.g., thermistors) require non-linear transformations.

These transformations are usually done within the edge device (e.g., a controller, a networked sensor), although many IoT gateway hardware solutions have I/O terminals to directly connect with 'raw' electrical signaling.

In HVAC, the most common input (from sensors to a controller) signals are 0-5 VDC, 4-20 mA, resistance (either 0-2 kOhms or 0-50 kOhms). The most common output signals (from a controller to equipment) are 0-10 VDC, 4-20 mA, and relay contacts, with some variation.

APISee Application Programming Interface
Application Programming InterfaceAPIs are sets of sub routine definitions, protocols, and tools for creating software applications that often communicate between other software applications and components. APIs are used for a web-based systems, operating systems, database systems, computer hardware, and software libraries, and can include specifications for routines, data structures, object classes, variables, or remote calls. 
BACnetBuilding Automation and Control network communications protocol (ASHRAE/ANSI Standard 135 and ISO 16484-5). BACnet is an open protocol that defines 'client/server' services and messaging between physical devices within a building. Messaging is specified for various physical/data link layer technologies (ARCNET, Ethernet, RS-232, RS-485, Zigbee) as well as network and application layers. Services include monitor and control capabilities, device discovery, and event/alarm notifications. Devices are described as being comprised of various Objects; Object Types include 'Analog Input', 'Binary Output', 'Trend Logs', 'Schedules', etc. The standard has typically been updated every two or three years since 1995. See bacnetinternational.org.
BACnet RouterA device that forwards and routes messages between networks in a BACnet system. Note that the BACnet protocol specifies networks and messaging differently than the IETF's Internet Protocol (IP) does, necessitating a special routing device (aka, the "BACnet router"). Each network within a BACnet system is uniquely identified with a 16-bit number. Typically, the networks incorporated within a BACnet router use more than one type of physical layer - the usual example is Ethernet and RS-485. Compared to IP networking, some differences with BACnet include the manner of network discovery by the routers, three different types of message broadcasting (all of which can cross IP broadcast domains), the rule that there can be one and only one path between any two devices within the system, and devices have no clue as to what their local network identifier is.
BACnet Test LabAn organization that tests BACnet devices for conformity to the BACnet standard, and certifies compliance. The certification includes documentation as to the standard services and objects a product conforms to, which is highly important for interoperability of devices between manufacturers, especially since BACnet allows manufacturers to create proprietary services and messages within the protocol. Though there are almost 1,000 manufacturers in the BACnet community, only 144 of them currently have certified products (and there are many non-certified products out in the wild).
BASSee Building Automation System
BinaryIn OT, a signal or value that has only two allowed values. Programmatically, these are usually represented by an integer or boolean (0 | 1), or a string (off | on). With electrical signals, these are typically represented by two discrete voltage levels (0 | 12 VDC) or a relay contact.
BMSBuilding Management System, which is another term for Building Automation System

Building Automation System

Hardware and software that can be used to monitor and control a building's mechanical and other subsystems. Typically a BAS is used for the HVAC mechanical needs of heating, cooling and ventilation, however lighting, water, gas, power, fire and access subsystems can also be incorporated as part of a BAS (some prefer to keep these subsystems separate, though). A building that is automated uses less energy than one that is not - savings of one-fourth to one-third (or more) on energy costs are typical when a BAS is installed in a building without one.

CEP

Complex Event Processing
Cloud

Cloud refers to cloud computing in which users access applications, data, data storage, or all of those on shared resources, for free or for payment, thereby avoiding the higher cost of installing, owning, and maintaining any, or all of those resources themselves.

Container

Containers are virtual environments for deploying software applications that are isolated from each other but may share Operating Systems, binaries, and libraries. Containers are lighter weight virtual environments with less isolation. Virtual machines or virtual systems have their own set of resources allocated to them, but containers do not. Containers are often adopted by microservice applications where each microservice runs in its own container. EdgeX Foundry can currently be deployed in Docker containers and Snappy containers.

ControllerShort term for either a Programmable Logic Controller or a Direct Digital Controller.
Created time stamp

The Created time stamp is the time the data was created in the database and is unchangeable. The Origin time stamp is the time the data is created on the device, device services, sensor, or object that collected the data before the data was sent to EdgeX Foundry and the database.

Usually, the Origin and Created time stamps are the same, or very close to being the same. On occasion the sensor may be a long way from the gateway or even in a different time zone, and the Origin and Created time stamps may be quite different.

DDCSee Direct Digital Controller
DELETE

HTTP method (similar to a command) used in a RESTful API. "DELETE" deletes items. DELETE should be used cautiously and deliberately because it permanently removes items.

DigitalIn OT, many times this term is used as a synonym with Binary
Direct Digital ControllerA "little brother" to the PLC, initially introduced in building automation. It has a similar program structure as a PLC, but real-time requirements are not as stringent as the PLC, allowing the device to be realized in a less expensive controller. However, as HVAC requirements expanded, and in order to support heavier protocols, some manufacturers make DDCs that are comparable to small PLCs... some even with simple Artificial Intelligence routines.
Docker

Open source software that automates the deployment of applications inside of software containers.

Paraphrased from the website of Docker at www.docker.com:

Docker packages application dependencies in containers for portability and redictability for development, testing, and deployment. Docker isolates applications in containers to eliminate conflicts and enhance security. Developers don’t have to install and configure complex databases nor worry about switching between incompatible language toolchain versions....that complexity is pushed into containers that are easily built, shared and run. Docker works with any stack and Developers can deploy both microservices and traditional applications.

Edge Device

In IT this refers to devices that provide entry into a network, such as routers, gateways and various MAN or WAN access devices.

In OT this also refers to devices that directly connect to equipment to be monitored or controlled, providing a means to communicate with that equipment. It also refers to sensors that are capable of networked communication, which provide some measurement of a physical entity.

EdgeX FoundryOpen source software where the Internet of Things meets the Cloud. EdgeX Foundry is supported by EdgeX community.
FuseDell's IoT edge platform that was started in the summer of 2015.  Fuse was contributed to the EdgeX Foundry open source community and the Linux Foundation in May 2017.  The original Fuse project served as the initial code base for the EdgeX Foundry edge software platform.
FWFirmware. The programming that operates within embedded devices (and other places).

GET

HTTP method (similar to a command) used in a RESTful API. "GET" retrieves information on items. GET does not alter the item or the data in any way and is "safe" to use.

For a collection of items such as http://example.com/groupofitems GET lists the URIs and other details of the items in the collection.
For an individual item such as http://example.com/groupofitems/item92
 GET shows details of that specific item, in this instance, Item # 92.

HaystackOn informal open source initiative to standardize on IoT semantic models and web services. Its initial focus is on building automation, but its extensibility allows it to be used in the broader context of intelligent devices. In Haystack, every Thing is an element, and the descriptors of an element are called 'tags', which are nomalized labels. Software applications can 'know' what an element is by use of its tags, regardless of the native naming convention or namespace of the intelligent device. See project-haystack.org.
HeadlessA computer that is operated without a display, mouse and keyboard is said to be headless.
HTTPSee Hypertext Transfer Protocol
HVACHeating, Ventilation and Air-Conditioning. The controls, processes, sensors and equipment used to maintain a building environment, mainly in terms of indoor temperatures but also includes humidity and CO2 in many cases.
HWHardware
hybrid environmentIn some cases, as a developer, you want to work on a particular micro service, but you don't want to have to download all the source code for all the micro services and run all the micro services in Eclipse or other development tool.  In this case, you can download and run the EdgeX Docker containers for the other micro services you need and run your single micro service (the one you are presumably working on) from Eclipse and have it point to the other micro services by appropriate IP address.  Within EdgeX, this is called a "hybrid" environment - where part of your EdgeX platform is running from a development environment, while other parts are running from the Dockerized containers.
Hypertext Transfer ProtocolAn application protocol for distributed, collaborative, and hypermedia information systems. HTTP is the foundation of data communication of the World Wide Web.
Internet of Things

The Inter-networking of physical devices embedded with electronics, sensors, actuators, software, network connectivity, and the software on the physical devices enables the physical devices to provide data to the Cloud through EdgeX Foundry, exchange data among the physical devices, and receive instructions to perform specific actions.

IoT physical devices include but are not limited to: appliances in homes, alarm systems, heating and air conditioning, lights, machines in any industry, irrigation systems, drones.

I/OInput and Output. In OT this is usually in the context of electrical signaling.
IoTSee Internet of Things
IIoTIndustrial Internet of Things
IT/OTThe convergence of Informational Technology and Operational Technology together, usually thought of in terms of building automation using IT technologies. OT and IT requirements can conflict or oppose one another for a particular project, though (such as in some security policies), and personnel involved from one "side" often do not speak the other's technical jargon. (editor's note: buildings have been around a lot longer than the Internet, so OT should take precedence)...
Java

An object-oriented, high-level computer programming language. Some of EdgeX Foundry is written in Java. Java is different than JavaScript.

Message Queue Telemetry Transport

ISO standard (ISO/IEC PRF 20922) and is a "lightweight" messaging protocol for use on top of the TCP/IP protocol. Message Queue Telemetry Transport (MQTT) is used for connections with remote locations where a "small code footprint" is needed or the network bandwidth is limited.
Metadata

Data that provides information about other data. An example is a catalog of book titles. The catalog itself does not have the content you want to read, but provides information about how to obtain the book that has the content you want to read.

Microservices

Independently developed, deployed, and updated software application components. Individual microservices rarely satisfy an end user's requirements, but a collection of microservices form an application or system that can meet the user's needs. Microservices make changing and adding functionality to a system, easier.

Microservice Architecture

Method of developing microservices, small, independent, but interacting modules, to interact to solve a problem, or to meet a business goal.

MQTTSee Message Queue Telemetry Transport
MSASee Microservice Architecture
MultistateA signal or value whose allowed values are a of limited quantity, usually represented with a short integer. It is similar to a primitive enumerated type in various computer languages.
NanoserviceSmaller segment than a microservice. Very fine-grained service where the service's overhead outweighs its utility. EdgeX Foundry uses microservices and does NOT use nanoservices.
North Side or
North Edge 

The "Cloud," where data is collected, stored, aggregated, analyzed, and turned into information is referred to as the "north side" of the network.

At the north edge the data collection and enterprise side, EdgeX Foundry enables north side clients to register for the data of interest, dictate its format (for example, JSON, XML), and indicate where and how the data is to be delivered by EdgeX Foundry (for example, to an enterprise REST address or through an MQTT message destined for a cloud based message topic).

Op StateThe op state or operating state of a Device or Device Service provides an indication about the internal operating status of the Device Service or Device.  Unlike the Admin State, the operating state is not set externally (as by another system or man), it is a signal from within EdgeX (and potentially the Device Service or Device itself) about the condition of the service or device.  The operating state of the Device Service/Device may be either enabled or disabled.  When the operating state of the Device Service or Device is disabled, it is either experiencing some difficulty or going through some process (for example an upgrade) which does not allow it to function in its normal capacity.  As an example, when a Device is discovered to be off-line by a Device Service, the Device Service will set the operating state of the Device to disabled.  When the Device is re-discovered, it will set the operating state of the Device back to enabled.
Operational TechnologyHardware and software that are used to detect or change physical processes by direct monitor and control of physical devices within a system. Examples of such devices include valves, pumps, lights, motors, fans, boilers, air conditioning units, etc. The emphasis is on physical processes, and not "just" data.
Operator Work StationA computer running application(s) for monitoring and controlling industrial equipment or building automation system, which provides a UI for manual operations. Typically the station is used by trained technicians, who monitor conditions and alarms for the system through it, and can change operational parameters of the system from the station.

Origin time stamp

The Origin time stamp is the time the data is created on the device, device services, sensor, or object that collected the data before the data is sent to EdgeX Foundry and the database. The Created time stamp is the time the data was created in the database.

Usually, the Origin and Created time stamps are the same or very close to the same. On occasion the sensor may be a long way from the gateway or even in a different time zone, and the Origin and Created time stamps may be quite different.

OTSee Operational Technology
OWSSee Operator Work Station

PaaS

See Platform as a Service
PID Loop

A closed feedback control loop using Proportional, Integral and Derivative coefficients for (hopefully) efficient operation of the loop. The loop's purpose is to maintain a control/process value to a desired value, called a setpoint. This is done by measuring the process value, comparing that to the setpoint, and then change a manipulated variable (often a signal to a piece of equipment) in such a way to affect a change to the process value. The "such a way" refers to the PID loop, which determines the amount of change to be applied to the manipulated value or signal.

The "loop" refers to how the algorithm is typically drawn, in that the process value is not only the value trying to be maintained, but is also the value that is looped back to calculate its difference from the setpoint. If the three PID coefficients are not properly set for the type of control desired, then the loop control value may not reach the desired setpoint in a timely manner, or the loop may oscillate the process variable wildly.

For example in HVAC, each room or zone has a controller that uses one or more PID loops to maintain the space temperature. This is so common that BACnet has a defined Loop Object. The coefficients need to take into account that the effect of a change in the manipulated variable can take tens of minutes to be completely seen in the process variable. Usually the PID coefficients are set and then not changed, but this can cause inefficiencies when the seasons change.

Platform as a Service

A cloud-based environment in which to develop, run, test, and maintain web-based applications. The PaaS environment provides the entire IT resource stack as a service and provides all of the facilities required to support the complete life cycle of building and delivering web-based applications.

Using PaaS enables the creation and deployment of web-based application software without the cost and complexity of buying and managing underlying hardware, operating software, and utilities. Using PaaS therefore enables Developers to accelerate the pace of developing applications while reducing the complexity because Developers can provision, deploy, and manage applications using one unified management system.

By using PaaS, Developers get their application to market faster, and can innovate and experiment with new technologies using existing public, private, or hybrid cloud infrastructures.

PLC

See Programmable Logic Controller

Point

In OT, a thing that is measured, derived or controlled using a single value. Each input, output and calculated value within an HVAC device is considered to be a point. For instance, a thermostat can provide several points: the temperature, the humidity and/or the CO2 level for a room. The controller in the room has several points: various setpoints, control signals for the equipment to which it is connected, entropy calculations, etc.

The concept of 'point' is also important because many software solutions are licensed based on how many points it is to handle (as the point count increases, so does the cost for the license).

Polyglot
(and Polyglotism)

An application or system written in multiple programming languages and/or using multiple application development frameworks and tools. EdgeX Foundry is a polyglot system because each of the microsystems are written in different programming languages, using many different  tools and technologies. To date, EdgeX Foundry microservices are written in Java, Python, Node.js (JavaScript), and Go.

POST

HTTP method (similar to a command) used in a RESTful API. "POST" creates or adds new information, a new record or file of items. POST does not alter existing items or existing data in any way and is "safe" to use.

For a collection of items such as http://example.com/groupofitems POST creates 1 new item within the collection.
For an individual item such as http://example.com/groupofitems/item92
 POST is not usually used, since POST creates 1 new item in the collection.

New information or a new record, does not have size limitations or limitations for the amount of characters used in the information.

Programmable Logic Controller

A ruggedized computer or embedded device, initially introduced to control industrial processes and equipment, and is also being used in building automation (see DDC). A PLC will have input and output wire connections to "read" sensor signals (small voltage, current or resistance) and "write" control signals (voltages, current, relay switches) to equipment in response to conditions or to follow the desired process's requirements

Program execution within a PLC is intended to run continuously - multiple programs are sequentially executed from one program to the next, until the last one in the chain executes and the 'scan cycle' begins again with the first program. A program in this execution structure typically has five steps: read inputs, process, handle messages, handle safeties or other special needs, set outputs... then let the next program begin.

PUT

HTTP method (similar to a command) used in a RESTful API. "PUT" replaces or updates information on items. PUT should be used cautiously and deliberately because it permanently removes old data and replaces it with new data.

For a collection of items such as http://example.com/groupofitems PUT replaces the entire collection with a new collection.
For an individual item such as http://example.com/groupofitems/item92
 PUT replaces the specific item of #92 of the collection with new information, or if it that item does not exist, then PUT creates that item and adds it.

New information or a new record, does not have size limitations or limitations for the amount of characters used in the information

REST

short for RESTful

RESTful 

Representational State Transfer, or RESTful web services. Use REST with EdgeX Foundry.

Unlike SOAP-based Web services, no "official" standard for RESTful Web APIs exists. REST is not a standard, but RESTful implementations make use of standards, such as HTTP, URI, JSON, and XML. REST is an architectural style, while SOAP is a protocol.

Use 1 of 4 HTTP methods in a RESTful API (see each entry in this table for details on each HTTP method):

  • GET retrieves information
  • POST creates/adds new information
  • PUT replaces/updates information
  • DELETE deletes/removes information
Rules Engine

Rules engines are important to the IoT edge system.

A rules engine is a software system that is connected to a collection of data (either database or data stream). The rules engine examines various elements of the data and monitors the data, and then triggers some action based on the results of the monitoring of the data it. 

A rules engine is a collection of "If-Then" conditional statements. The "If" informs the rules engine what data to look at and what ranges or values of data must match in order to trigger the "Then" part of the statement, which then informs the rules engine what action to take or what external resource to call on, when the data is a match to the "If" statement. 

Most rules engines can be dynamically programmed meaning that new "If-Then" statements or rules, can be provided while the engine is running. The rules are often defined by some type of rule language with simple syntax to enable non-Developers to provide the new rules.

Rules engines are one of the simplest forms of "edge analytics" provided in IoT systems. Rules engines enable data picked up by IoT sensors to be monitored and acted upon (actuated). Typically, the actuation is accomplished on another IoT device or sensor. For example, a temperature sensor in an equipment enclosure may be monitored by a rules engine to detect when the temperature is getting too warm (or too cold) for safe or optimum operation of the equipment. The rules engine, upon detecting temperatures outside of the acceptable range, shuts off the equipment in the enclosure.

SaaSSee Software as a Service
SDKSee Software Development Kit
Service-Oriented Architecture

A type of software architecture that is a collection of services (such as self-contained, small units of business logic with specific outcomes) that communicate with each other through a communication protocol over a network. The communication can be basic data passing, or complex such as two or more services coordinating an activity.

SetpointThe desired value of a controlled point, configured manually or programmatically. A controller uses a control loop to maintain a room's temperature to the desired setpoint, for example. In HVAC, the most common setpoints are various temperatures, though many systems also control humidity as well.
Snappy

A Linux-based Operating System. The packages are called 'snaps' and the tool for using them 'snapd', and works for phone, cloud, internet of things, and desktop computers. The "Snap" packages are self-contained and have no dependency on external stores. "Snaps" can be used to create command line tools, background services, and desktop applications.

SOASee Service-Oriented Architecture
Software as a Service

Software as a service (SaaS) is part of cloud computing, and is a software delivery method in which software is licensed by subscription, is cloud hosted, and accessed by the user on the Internet through a web browser. Any software of any kind can be delivered as SaaS.

Software Development Kit

A set of software development tools that enables the creating, the development, of particular software. The software development tools may include application programming interfaces (APIs), libraries, debugging facilities, software utilities, sample code, supporting documentation, hardware, and embedded systems.

South Side or
South Edge 

All IoT objects, the physical realm, is referred to as the "south side" of the network. The south side is the edge of the network that communicates directly with those devices, sensors, actuators, and other IoT objects.

At the south edge the edge of the IoT objects, is a collection of meta-data driven device microservices that communicate in the protocols of choice of the IoT object, and translate sensor data into a EdgeX Foundry common data structure. The microservices also translate EdgeX Foundry actuation requests into physical commands on the device or sensor.

SWSoftware
UIUser Interface

Return to TOP



Site Navigation: Introduction to EdgeX Foundry EdgeX Foundry Microservices Architecture| API Reference Definitions   

Where to Next



  • No labels