Connected devices use a wide range of different communication protocols to transmit data over IoT networks. It’s often difficult to develop and maintain systems that can manage this large and ever-increasing diversity of protocols and data formats efficiently over the time. To overcome this issue, CETIC is developing a multi-purpose middleware, a true Swiss Army Knife of the IoT, that allows heterogeneous data flows to be managed easily, flexibly and efficiently.
This article gives a general overview on the basic concepts DMWay is built on and illustrates them through examples of supported communication protocols, encoding types and data models.
Interfaces or I/O support refers to software modules that provide support for lower-level interfacing (generally just on top of hardware) that enable DMWay to interact with its environment. All communications pass through this type of modules. They can be used directly or incorporated within a connector.
The following table mentions some interfaces currently supported by DMWay.
HTTP(s) client/server | CoAP client/server | MQTT client |
Serial | ModBus client | AMQP client |
S7 client | Files | ODBC |
As DMWay is independent of the underlying communication medium, data payloads from network protocols can be received via any kind of communication medium (5G, Ethernet, Wi-Fi, etc.).
DMWay, as a toolbox of specialized modules, includes connector type modules. They refer to modules that provide connectivity to other ones in DMWay. These modules can use the interfaces and add a layer of data management or manage an entire communication chain. For example, the Z-Wave and RF modules use the MQTT interface and incorporate data models specific to these technologies.
Also, DMWay provides specific connectors to backends (i.e. server-side or cloud-side software applications like databases, data platforms, etc.) that implement specific requirements of these applications in terms of data exchange, formatting, and organisation. DMWay has for example connectors for MongoDB or Thingsboard.
The following table lists some connectors currently supported by DMWay.
Bluetooth (GATT client) | OPC/UA | MongoDB |
RF (433 MHz, 868 MHz) | CayenneLPP | Prometheus/OpenMetrics |
InfluxDB | TSorage | Thingsboard |
Z-Wave |
The decoding and encoding modules in DMWay allow transforming raw data into usable data by DMWay and vice versa.
The following table lists some encoding modules supported by DMWay.
JSON | CSV | CayenneLPP |
Binary data | XML | S7 |
OpenMetrics | Time series | Data vectors |
Custom decoding with Python code | Text |
In DMWay, the data semantics are defined in the data models. Data models contain the description of the data processed by DMWay. As an example, it includes the type of data (integer, table, character string, etc.), information on data hierarchy or relevant attributes related physical device information. A data model is linked to an infomodel that organizes and stores the data as described in the datamodel.
DMWay already contains specific data models used for existing technologies, but custom data models can be defined by the user.
The following table lists some predefined data models available in DMWay.
OCF | CayenneLPP | OPC/UA |
Z-Wave | RF (433 MHz, 868 MHz) | HGI |
OpenMetrics | LWM2M |
In this article, an introduction to some basic concepts of the DMWay tool is provided as well as an up-to-date overview of supported protocols and data formats. The following diagram shows how these concepts are organised in DMWay.
In addition to the support of these protocols and data formats, DMWay allows setting up customised complex actions on the data. As an example, it supports specification of data conversion, definition of specific data exports, implementation of custom actions on data that can be triggered at predefined intervals, translation from one data model to another, etc.
These concepts and features will be detailed in other dedicated articles.
Swiss Army Knife icons created by Freepik - Flaticon
View online : DMWay presentation sheet