AMQP Communication Overview

Advanced Message Queuing Protocol (AMQP) is an open standard for reliable, secure, asynchronous message-based communication between systems. Like MQTT it decouples the sender from the receiver, but it is a richer protocol: it adds flow control, message delivery guarantees, and built-in authentication and encryption, and it supports both point-to-point messaging and publish and subscribe.

GENESIS uses AMQP when it connects to an Azure IoT Hub. The hub is the cloud-side bridge between field devices and GENESIS, and AMQP is the transport that carries messages across it. For on-premises brokers and third-party gateway devices, GENESIS uses MQTT instead. Learn more

The following connection types, configured under Data Connectivity > Internet of Things, communicate over AMQP:

Connection type

Direction

Description

Azure IoT Hub

Bidirectional

A managed Azure service for device-to-cloud and cloud-to-device messaging. Devices send telemetry to the hub and GENESIS consumes it; GENESIS can also send commands and configuration back to the devices through the same hub.

Azure Event Hub

Unidirectional

A managed Azure event ingestion service. Data flows in one direction only, so an Event Hub connection cannot carry commands back to devices.

Connection Settings

Two settings on an Azure connection govern the transport and the credentials it uses:

  • Connection String—Identifies the hub and the credentials used to reach it. Rather than assembling the string by hand, use the Azure IoT Hub Connection Configurator, opened from the field, to enter the HostName and Device ID and to select a Security Mode of Shared Access key or Certificate Thumbprint.

  • Protocol—Selects how AMQP is carried. AMQP uses the protocol's native ports, Web Sockets tunnels it over the ports already used for web traffic, and Automatic lets GENESIS choose.

    Communication through a proxy is supported only over the Web Sockets protocol.

The message format is chosen the same way as for MQTT: a publisher connection selects an encoder and a subscriber connection selects a decoder. Learn more