Messaging Service

The Messaging Service handles the communications between the devices and Everyware Cloud. Sending telemetry or logs from device to EC or execute device management operation from EC to a device require a Messaging Service instance. A Message Service instance can be a single broker or a network of brokers (later on called Broker Cluster). To let devices of an account connect to a Messaging Service instance, the account must be assigned to the instance. The assignment is executed in two modes depending on the level of the account in the account hierarchy. For the following accounts the assignment must be done explicitly by the platform administrators:

  • The root account (ec-sys)
  • The level-one child accounts (the children of the root account)

For all the other accounts the assignment is inherited from the ancestor account and cannot be changed. This means that all the account offspring of a level-one account share the same message service instance.

🚧

Missing to assign the account with its message service will prevent devices of that account to establish a connection with every existing messaging service.

Create a Messaging Service Instance

Each Messaging Service instance has an EC representation and an infrastructure counter-part. Infrastructure side follow the steps at Installation and Scaling to create a new ec-broker service deployment.

Then, login to Everyware Cloud console and navigate to the Messaging Service view, a new entry with the name assigned at the step above should appear automatically.

Secure connections

Figure out if secure connections through TLS/SSL need to be supported (which is strongly reccommended for a production environment). Support for TLS/SSL connections need to be configured on the infrastructure side; documentation is available here in the installation guide.

Mutual Authentication

Mutual authentication need secure connection support.

Assign Endpoints

Distinct Messaging Service instances must have distinct Endpoints. The Endpoints of each Messaging Service instance must be added to the system, they represent the address used by external systems to access the service (e.g. the devices). And Endpoint is defined by the following attributes:

Name

Description

Default Value

Schema

The URI scheme (e.g. mqtt, mqtts, ws, wss)

Domain Name

The host name of the Endpoint (e.g. broker-env.domain.com)

Port

The port to which the Endpoint is exposed

Secure

Whether the communication with Endpoint is using encryption or not (e.g. TLS).

False

To add a new endpoint you must connect as root administrator. Select Endpoints view and click the Add button

After defining all the values press the Submit button.

🚧

Endpoints can be updated or deleted. Deleting or changing endpoints in use can be dangerous and may impact the functionality of the system.

Assign e new child account

After creating a new first level account named new-account:

  • Connect to the admin console using an ec-sys account administrator user
  • Select the Messaging Service on the left menu
  • Select the cluster entry you want to modify in the Messaging Service table
  • Select the Accounts tab in the lower part of the screen
  • Click on the Add button
  • Select new-account
  • Submit

Un-assign an already assigned account

An account can be unassigned from a message service instance and assigned to another one:

  • Connect to the admin console using an ec-sys account administrator user
  • Select the Messaging Service on the left menu
  • Select the cluster entry you want to modify in the Messaging Service table
  • Select the Accounts tab in the lower part of the screen
  • Select the account you want to remove
  • Click on the Remove button
  • Submit

🚧

While an account is in unassigned state its devices cannot establish connections with the previous messaging service (and any other).

After unassignment the account can be assigned to a new broker cluster.