- FairCom Documentation
- FairCom Edge
FairCom Edge
Learn edge computing for IoT
OT IT Integration Explained
Collect data from machines/sensors and access from all applications with a few clicks
Connecting the physical components managed by OT with the software managed by IT
FairCom Edge is an IoT data integration platform designed to integrate OT, IoT, and IT data. It combines FairCom’s data transformation engine, MQTT broker, app server, database, and data collectors into a single executable. Furthermore, FairCom Edge collects data near the source, persists it locally, bridges OT, IoT, and IT protocols, and delivers data to and from the cloud. It does all this through simple configuration using the built-in browser-based UIs and JSON APIs. It bridges a variety of protocols including MQTT, OPC UA, Modbus, ThingWorx, SQL, and JSON APIs.
Quick links
Section | Description |
---|---|
This section explains the concepts, internals, and architecture of FairCom Edge's engine, which provides data collection, data transforms, protocol bridging, and guaranteed data delivery. | |
This section provides tutorials for collecting data, transforming it, and delivering it to OT, IoT, and IT protocols. | |
The JSON Edge API is a jsonAction API for collecting, integrating, and transforming data as well as bridging OT, IoT, and IT protocols. | |
The JSON MQ API is a jsonAction API that configures MQTT topics and broker forwarding. | |
The JSON DB API is a jsonAction API that manages and queries database data. It represents all data as JSON. | |
SQL is an industry standard for managing and querying database data. | |
ACE APIs enable C developers to build server-side data solutions with performance and capabilities that cannot be matched by commodity databases and other APIs. | |
FairCom's embedded MQTT broker receives and delivers MQTT messages. It supports MQTT 3.1.1 and MQTT 5 . | |
IoT connectors & transforms collect data from OT and IoT protocols, such as OPC UA and Modbus and they automatically transform collected data into JSON and bridge this data to other protocols, such as MQTT, SQL, and JSON APIs. | |
IT connectors deliver data to and from IT systems, such as SQL databases, ETL tools, applications using JSON APIs, and enterprise message brokers using MQTT plugins. | |
Cloud connectors deliver data to and from the cloud using MQTT and FairCom data replication. | |
Advanced Transforms automatically enrich, reshape, reformat, and process data as it is collected. | |
The Administration section contains information on installation and system administration. |
Helpful links
Don’t hesitate to contact us! We want you to be successful.
Visit our website at www.faircom.com.
The JSON Action Protocol (jsonAction) is like REST, jsonAction is a standard way of using JSON to execute actions on remote computers by sending a JSON Action request to a server and receiving back a JSON response. All information needed in a request and its response is included in the JSON. This allows jsonAction to work over any protocol including HTTP, HTTPS, WS, WSS, MQTT, MQTTS, etc.
jsonAction improves on REST by putting all request information in JSON. In contrast, REST spreads request information across a URL, query string, HTTP header, HTTP verb, and HTTP payload. Similarly, jsonAction puts all response information in JSON, whereas REST spreads response information across the HTTP header and HTTP payload. Lastly, REST only works over HTTP whereas, jsonAction works over any protocol including asynchronous protocols.
The JSON MQ API configures and manage FairCom's MQTT broker. It is available in FairCom Edge and FairCom MQ.
This API is part of FairCom's family of JSON APIs.
The JSON DB API uses JSON over HTTP to manage databases, tables, indexes, records, queries, cursors, and transactions. It is available in all FairCom products.
This API is part of FairCom's family of JSON APIs.
Structured Query Language (SQL) is a standardized programming language that is used to manage relational databases and perform various operations on the data in them.
FairCom's SQL engine is ANSI compliant and has almost all SQL features up through the SQL:2003 standard.
Advanced C Engineering APIs (ACE APIs) include FairCom's ISAM, CTDB, and Low-level ACE API.
Each of these APIs use the Record Buffer Method for processing data at high speed with high efficiency. ACE APIs are ideal for C and C++ because these languages are designed to work with record buffers. Higher-level languages, such as Java and C#, can also use these APIs with almost the same efficiency as C or C++.
Related terms: CTDB, ISAM, Low-level ACE API, Record Buffer APIs
An MQTT broker is a server that implements one or more of the four MQTT protocols. One or more MQTT clients can connect to the broker to publish messages to topics and they can subscribe to topics to receive published messages. The broker provides quality of service guarantees for message delivery.
Message Queueing Telemetry Transport (MQTT) is the Internet standard protocol for publishing and subscribing to messages that are sent to topics on an MQTT broker (see MQTT.org for more information).
Related terms: MQTT, MQTT 3, MQTT 3.1, MQTT 3.1.1, MQTT 5, MQTT protocol, MQTTS, MQTTWSS, MQTT-SN
MQTT 3.1.1 is one of the four MQTT Protocols. As of 2022, it is the most commonly used by MQTT Clients. It is adequate for most applications and supported by all major MQTT brokers. In the MQTT wire protocol, it is identified as MQTT version 4.
There are currently four MQTT specifications – one for each of the four versions of the protocol: MQTT 3.1, MQTT 3.1.1, MQTT 5, and MQTT-SN v1.2.
MQTT 5 is one of the four MQTT Protocols. As of 2022, it is the most advanced MQTT protocol available to MQTT clients and MQTT brokers. MQTT 5 is supported by many MQTT Clients and MQTT brokers.
It provides advanced features, such as a shared message subscription, which is useful for distributing messages across subscribers for parallel processing. For example, an MQTT broker takes each message published to a shared topic and sends it to a different subscriber. In contrast, a normal subscription receives all messages published to a topic.
Open Platform Communications Unified Architecture (OPC UA) is a machine-to-machine communication protocol for industrial automation. OPC UA is the latest, easiest, and most robust protocol from the OPC Foundation.
The FairCom Edgeprovides a connector to OPC UA to bridge data from OPC UA devices to other protocols, including MQTT, JSON, and SQL.
Modbus is a binary server/client communication protocol developed and published by Modicon for transmitting data to and from electronic devices over a serial bus or TCP/IP network.
JSON APIs are FairCom's family of APIs that use jsonAction to interact with a FairCom server. They are optimized for client server computing and ease of use in all programming languages. They provide maximum data flexibility.
Related terms: JSON Admin API, JSON DB API, JSON Edge API, JSON MQ API, REST
Cloud is also known as Cloud Computing. The cloud is a centralized location on the Internet hosted by a cloud provider, such as AWS, Microsoft Azure, Google Cloud, etc. In contrast, the edge is any location that is not the cloud.
A plugin is a library that a server loads dynamically to provide one or more services. A plugin adds capabilities to the server.
FairCom Edge comes with multiple plugins. One plugin collects OPC UA data, another collects Modbus data, another transforms Siemens UDT into JSON, another sends data to ThingWorx, and so forth. Customers can also create plugins. FairCom plugins have a standard interface that is implemented in C or C++ and compiled as a Windows DLL, a linux SO, or a MacOS dylib.
A FairCom server can be configured to load multiple instances of a plugin library and configure each instance separately, such as configuring it to use different ports and different settings. Therefore, a plugin can be loaded multiple times to provide its set of services multiple times. This is useful to scale the throughput of a plugin or to specify the settings of each plugin instance to provide specialized services. Additionally, a single plugin may implement multiple services.
A service is a capability provided by the server. A FairCom server has many built-in services, including the ability to listen, process, and respond to SQL statements over a TCP/IP port, and the ability to respond to JSON action commands over HTTP and WS. FairCom Edge provides additional services. A service can implement a protocol, such as MQTT, OPC UA, Modbus, and ThingWorx. A service can implement data transformations, such as converting binary data into JSON. Additional services can be added through plugins.
Message Queueing Telemetry Transport (MQTT) is the Internet standard protocol for publishing and subscribing to messages that are sent to topics on an MQTT broker (see MQTT.org for more information).
Related terms: MQTT, MQTT 3, MQTT 3.1, MQTT 3.1.1, MQTT 5, MQTT protocol, MQTTS, MQTTWSS, MQTT-SN
Open Platform Communications Unified Architecture (OPC UA) is a machine-to-machine communication protocol for industrial automation. OPC UA is the latest, easiest, and most robust protocol from the OPC Foundation.
The FairCom Edgeprovides a connector to OPC UA to bridge data from OPC UA devices to other protocols, including MQTT, JSON, and SQL.
Modbus is a binary server/client communication protocol developed and published by Modicon for transmitting data to and from electronic devices over a serial bus or TCP/IP network.
Structured Query Language (SQL) is a standardized programming language that is used to manage relational databases and perform various operations on the data in them.
FairCom's SQL engine is ANSI compliant and has almost all SQL features up through the SQL:2003 standard.
The PTC ThingWorx platform is a complete, end-to-end technology platform designed for the industrial Internet of Things (IIoT). It delivers tools and technologies that empower businesses to rapidly develop and deploy powerful applications and augmented reality (AR) experiences.
The JSON DB API uses JSON over HTTP to manage databases, tables, indexes, records, queries, cursors, and transactions. It is available in all FairCom products.
This API is part of FairCom's family of JSON APIs.
A plugin service is a service provided by a plugin. A single plugin can provide one or more services.
Structured Query Language (SQL) is a standardized programming language that is used to manage relational databases and perform various operations on the data in them.
FairCom's SQL engine is ANSI compliant and has almost all SQL features up through the SQL:2003 standard.
Application Programming Interface (API) is a type of software interface that provides a service to other software.
Related terms: JSON Admin API, JSON DB API, JSON Edge API, JSON MQ API, REST
Message Queueing Telemetry Transport (MQTT) is the Internet standard protocol for publishing and subscribing to messages that are sent to topics on an MQTT broker (see MQTT.org for more information).
Related terms: MQTT, MQTT 3, MQTT 3.1, MQTT 3.1.1, MQTT 5, MQTT protocol, MQTTS, MQTTWSS, MQTT-SN
JavaScript Object Notation (JSON) is a simple format for representing data. It requires very little markup and is flexible enough to represent the majority of data structures. It is self-describing, which makes it ideal for schemaless applications and search. It can optionally be paired with a schema to define an expected structure.
Structured Query Language (SQL) is a standardized programming language that is used to manage relational databases and perform various operations on the data in them.
FairCom's SQL engine is ANSI compliant and has almost all SQL features up through the SQL:2003 standard.
Open Platform Communications Unified Architecture (OPC UA) is a machine-to-machine communication protocol for industrial automation. OPC UA is the latest, easiest, and most robust protocol from the OPC Foundation.
The FairCom Edgeprovides a connector to OPC UA to bridge data from OPC UA devices to other protocols, including MQTT, JSON, and SQL.
The PTC ThingWorx platform is a complete, end-to-end technology platform designed for the industrial Internet of Things (IIoT). It delivers tools and technologies that empower businesses to rapidly develop and deploy powerful applications and augmented reality (AR) experiences.
Hypertext Transfer Protocol (HTTP) is a standard request-response protocol that works on top of TCP/IP. It allows a client computer to send a request to a server computer, which in turn, replies to the request. The purpose of HTTP is to allow software to ask questions and receive answers.
Secure Hypertext Transfer Protocol (HTTP) is the HTTP protocol running over TLS. It provides secure request-response communications between computers.
WebSocket (WS) is a standard communication protocol for bidirectional exchange of data between computers, see RFC 6455. It works over TCP/IP and HTTP. It is often used by single page web applications because web browsers have built in support for WebSocket. It is also used by applications and servers that want to push messages to other computers in additional to using the request-response provided by HTTP.
WebSocket Secure (WSS)is the secure version of WebSocket. It uses TLS to create secure communications.
Structured Query Language (SQL) is a standardized programming language that is used to manage relational databases and perform various operations on the data in them.
FairCom's SQL engine is ANSI compliant and has almost all SQL features up through the SQL:2003 standard.
JavaScript Object Notation (JSON) is a simple format for representing data. It requires very little markup and is flexible enough to represent the majority of data structures. It is self-describing, which makes it ideal for schemaless applications and search. It can optionally be paired with a schema to define an expected structure.
JavaScript Object Notation (JSON) is a simple format for representing data. It requires very little markup and is flexible enough to represent the majority of data structures. It is self-describing, which makes it ideal for schemaless applications and search. It can optionally be paired with a schema to define an expected structure.
JavaScript Object Notation (JSON) is a simple format for representing data. It requires very little markup and is flexible enough to represent the majority of data structures. It is self-describing, which makes it ideal for schemaless applications and search. It can optionally be paired with a schema to define an expected structure.
A database is a set of data that is managed by a database server. A database contains data that is organized into tables, records, and fields. A database is a huge composite data type that represents a group of interconnected objects. A database allows records to be joined together for querying, searching, and processing by users, applications, and services.
A database is a security container that controls which accounts have permissions to access specific data.
A database is a set of data that is managed by a database server. A database contains data that is organized into tables, records, and fields. A database is a huge composite data type that represents a group of interconnected objects. A database allows records to be joined together for querying, searching, and processing by users, applications, and services.
A database is a security container that controls which accounts have permissions to access specific data.
JavaScript Object Notation (JSON) is a simple format for representing data. It requires very little markup and is flexible enough to represent the majority of data structures. It is self-describing, which makes it ideal for schemaless applications and search. It can optionally be paired with a schema to define an expected structure.
A database is a set of data that is managed by a database server. A database contains data that is organized into tables, records, and fields. A database is a huge composite data type that represents a group of interconnected objects. A database allows records to be joined together for querying, searching, and processing by users, applications, and services.
A database is a security container that controls which accounts have permissions to access specific data.
A database is a set of data that is managed by a database server. A database contains data that is organized into tables, records, and fields. A database is a huge composite data type that represents a group of interconnected objects. A database allows records to be joined together for querying, searching, and processing by users, applications, and services.
A database is a security container that controls which accounts have permissions to access specific data.
A database is a set of data that is managed by a database server. A database contains data that is organized into tables, records, and fields. A database is a huge composite data type that represents a group of interconnected objects. A database allows records to be joined together for querying, searching, and processing by users, applications, and services.
A database is a security container that controls which accounts have permissions to access specific data.
JavaScript Object Notation (JSON) is a simple format for representing data. It requires very little markup and is flexible enough to represent the majority of data structures. It is self-describing, which makes it ideal for schemaless applications and search. It can optionally be paired with a schema to define an expected structure.
A database is a set of data that is managed by a database server. A database contains data that is organized into tables, records, and fields. A database is a huge composite data type that represents a group of interconnected objects. A database allows records to be joined together for querying, searching, and processing by users, applications, and services.
A database is a security container that controls which accounts have permissions to access specific data.
JavaScript Object Notation (JSON) is a simple format for representing data. It requires very little markup and is flexible enough to represent the majority of data structures. It is self-describing, which makes it ideal for schemaless applications and search. It can optionally be paired with a schema to define an expected structure.
A database is a set of data that is managed by a database server. A database contains data that is organized into tables, records, and fields. A database is a huge composite data type that represents a group of interconnected objects. A database allows records to be joined together for querying, searching, and processing by users, applications, and services.
A database is a security container that controls which accounts have permissions to access specific data.
JavaScript Object Notation (JSON) is a simple format for representing data. It requires very little markup and is flexible enough to represent the majority of data structures. It is self-describing, which makes it ideal for schemaless applications and search. It can optionally be paired with a schema to define an expected structure.
JavaScript Object Notation (JSON) is a simple format for representing data. It requires very little markup and is flexible enough to represent the majority of data structures. It is self-describing, which makes it ideal for schemaless applications and search. It can optionally be paired with a schema to define an expected structure.
JavaScript Object Notation (JSON) is a simple format for representing data. It requires very little markup and is flexible enough to represent the majority of data structures. It is self-describing, which makes it ideal for schemaless applications and search. It can optionally be paired with a schema to define an expected structure.
A database is a set of data that is managed by a database server. A database contains data that is organized into tables, records, and fields. A database is a huge composite data type that represents a group of interconnected objects. A database allows records to be joined together for querying, searching, and processing by users, applications, and services.
A database is a security container that controls which accounts have permissions to access specific data.
Internet of Things (IoT) uses Internet protocols to connect things to software. Things include devices, equipment, appliances, vehicles, and so forth.
Each thing must contain an embedded computer processor and must use an IoT protocol, such as MQTT, to communicate with software.
Since 2014, MQTT has become the standard Internet protocol for IoT. MQTT is necessary because devices need to push information when it is created, such as a status update, an alert, telemetry, or a command. MQTT is used in IoT because HTTP is a request/response protocol that cannot push information.
Related terms: Modbus, MQTT, OPC UA, protocol, SparkPlugB
Message Queueing Telemetry Transport (MQTT) is the Internet standard protocol for publishing and subscribing to messages that are sent to topics on an MQTT broker (see MQTT.org for more information).
Related terms: MQTT, MQTT 3, MQTT 3.1, MQTT 3.1.1, MQTT 5, MQTT protocol, MQTTS, MQTTWSS, MQTT-SN
Open Platform Communications Unified Architecture (OPC UA) is a machine-to-machine communication protocol for industrial automation. OPC UA is the latest, easiest, and most robust protocol from the OPC Foundation.
The FairCom Edgeprovides a connector to OPC UA to bridge data from OPC UA devices to other protocols, including MQTT, JSON, and SQL.
Modbus is a binary server/client communication protocol developed and published by Modicon for transmitting data to and from electronic devices over a serial bus or TCP/IP network.
Structured Query Language (SQL) is a standardized programming language that is used to manage relational databases and perform various operations on the data in them.
FairCom's SQL engine is ANSI compliant and has almost all SQL features up through the SQL:2003 standard.
The JSON DB API uses JSON over HTTP to manage databases, tables, indexes, records, queries, cursors, and transactions. It is available in all FairCom products.
This API is part of FairCom's family of JSON APIs.
The Internet is a global network of networks that allows computers to communicate with each other. This is possible because it defines a standard set of communication protocols.
Programmable Logic Controller (PLC) is an industrial computer with electrical inputs and outputs that has been ruggedized and adapted for the control of manufacturing processes, such as assembly lines, machines, robotic devices, or any activity that requires high reliability, ease of programming, and process fault diagnosis.
User Defined Type (UDT) is a user-defined data structure in a programming language, such as C, C++, Java, etc.
FairCom Edge provides an advanced transform that can take native binary user-defined types in a Siemens PLC and convert them into JSON.
ETL stands for Extract, Transform, and Load. This technique is widely used in data engineering and business intelligence to extract data from a database, transform that data, and load it into another database (typically a SQL data warehouse or a data lake). A variation of ETL is ELT where data is extracted from one database, loaded into another database, and transformed in the target database. There are many mature ETL software tools that perform this operation with little-to-no code.
All major ETL and ELT tools are compatible with FairCom DB through its built-in ODBC and JDBC drivers. FairCom DB can be the source or target of ETL and ELT operations.
ETL stands for Extract, Transform, and Load. This technique is widely used in data engineering and business intelligence to extract data from a database, transform that data, and load it into another database (typically a SQL data warehouse or a data lake). A variation of ETL is ELT where data is extracted from one database, loaded into another database, and transformed in the target database. There are many mature ETL software tools that perform this operation with little-to-no code.
All major ETL and ELT tools are compatible with FairCom DB through its built-in ODBC and JDBC drivers. FairCom DB can be the source or target of ETL and ELT operations.