Link is the service used as the MQTT publisher by CygNet. Link sends data to an MQTT server. A user configures a .json file that the Link publisher uses to indicate the source of the data (CygNet) and the target of the data (the MQTT server).
MQTT (Message Queueing Telemetry Transport) is an extremely lightweight machine-to-machine/Internet of Things (IoT) messaging transport protocol. It uses the publish/subscribe protocol, which is designed for constrained devices (limited processor or memory resources) and low bandwidth, high-latency, or unreliable networks. The protocol runs over TCP/IP.
MQTT provides reliable SCADA communication, publishing data from sites only when there is a change in the data. The state of the MQTT session must always be known. The Sparkplug protocol ensures remote device or application data is current and valid.
The MQTT server is a central hub through which every MQTT message must pass between publishing clients and subscribing clients. It is responsible for receiving all messages, filtering them, deciding who is subscribing to this message, sending messages to all subscribed clients, and authenticating and authorizing clients. It also holds the session of all persisted clients including subscriptions and missed messages.
MQTT includes two types of clients:
The publisher client (Link) and subscriber client have no knowledge of each other; they communicate with the server individually. To publish or receive messages, clients only need to know the hostname/IP address and port of the server. Clients can be persistent or transient. Persistent clients maintain a session with the server while transient clients are not tracked by the server.
The following image shows the data flow of the Link service.
More: