Officially launched in September, the official version of EMQ X Enterprise 3.4.0 is released by EMQ. In this version, the management configuration and rule engine functions are enhanced, message encoding and decoding, cluster hot configuration and vehicle networking protocol support are added, and a new management monitoring Dashboard page is designed, and this version is a stable version recommended for enterprise applications.
The relevant installation package is ready for download from EMQ website, and a free self-service application for trial is avaiable from the website.
EMQ X Enterprise is an Enterprise-level Iot MQTT messaging platform that supports one-stop access of millions of IoT devices, MQTT&CoAP multi-protocol processing, and low-latency real-time messaging. It also supports SQL-based built-in rule engine, flexible processing/forwarding of messages to back-end services, storage of message data to various databases, or bridging of enterprise middleware such as Kafka, RabbitMQ, and Pulsar.
EMQ X Enterprise is applicable for a variety of IoT applications, helping enterprises quickly build IoT applications and support the deployment on public clouds, private clouds, physical machines, containers/K8S and so on.
In previous versions of EMQ X, EMQ has expanded a series of basic functions around MQTT message access to facilitate the rapid construction of IoT applications, such as authentication/ACL, data persistence and message bridging (Enterprise Edition) and integration into Dashboard. .
In order to support the introduction of more new functions and the improvement of system usability and monitoring management ability after the introduction of functions, EMQ development team took the lead in designing a new Dashboard UI for the enterprise version, adjusting the interface style, operability, application structure and data display focus, and striving to create an IoT Hub Management Platform with comprehensive function:
Prior to 3.4.0, all modifications to the EMQ X main configuration
etc/emqx.conf required a restart to apply, such as anonymous authentication (allow_anonymous), ACL switches and policies (enable_acl), connection statistics (enable_stats), that all have a need for non-stop changes.
After evaluation, EMQ lists dozens of configuration items that do not affect system stability but have hot configuration requirements, and provide hot configuration capabilities in Dashboard and REST APIs.
In this version, management functions are added for clusters. The visual interface provides invitation and kick-out functions for clusters in manual cluster mode. Cluster parameters are displayed in other automatic cluster modes, which greatly facilitates monitoring management and the reference configuration of new nodes..
In the IoT application, in order to balance network transmission performance and device processing capability, many of the underlying device communication relies on message data in a relatively low-level, streamlined format. Broker needs to process various compressed binary data formats and industry-specific data formats, or even a private data format.
In the past, this kind of data was bridged to the application system and sent back to Broker for processing after the coding and decoding of the application system. The integration of the whole architecture is very complex, which has the problems of high processing delay and unclear processing logic.
To address this pain point, a set of Broker's built-in, real-time codec system Schema Registry is designed and developed by EMQ . The Schema Registry supports Avro, Protocol Buffers and third-party codec service packet parsing.
Schematic diagram for use with both Schema and rules engine:
At present, three kinds of protocol parsing methods are supported by EMQ X :
As shown in the figure above, we have created a new codec service, which is used in the rules engine like this:
SELECT decode('schema:1.0', payload) as payload FROM "message.publish" WHERE topic =~ 't/#'
Using the Schema Registry combined with the rules engine function, the codec rules are created directly in the rules engine through the decode and encode functions. This process greatly simplifies the integration of message applications.
The new vehicle networking protocol access JT/T808, with full name "JT/T 808-2013 Road Transportation Vehicle Satellite Positioning System Beidou Compatible Vehicle Terminal Communication Protocol Technical Specification", is a industry communication protocol. Through the adaptation of the protocol, EMQ has established a complete industry/private protocol access development mode, which provides a successful template for the subsequent customization development of other protocols.
Schematic diagram of JT/T808 protocol access architecture:
In future versions, Dashboard's functions will continue to be enhanced, and the following improvements are planned to be achieved through continuous adjustments and optimizations:
emqx_auth_clientid, emqx_auth_username, emqx_configs,have corresponding business functions and usage modes besides basic configuration. EMQ will be adapted and developed one by one in Dashboard to provide plug-in configuration and user interface;
[MQTT X](https://mqttx.app) is a cross-platform MQTT 5.0 desktop test client provided by the world's leading open source IoT middleware provider [EMQ](https://emqx.io) , which supports macOS, Linux, Windows. The user interface of **MQTT X** simplifies the operation logic of the page with the pattern of chatting software. Users can quickly create multiple simultaneous-online MQTT clients to test the connection/publish/subscribe functions of MQTT/TCP, MQTT/TLS and other MQTT protocol features.
The message retention function of [EMQ X MQTT Broker](https://emqx.io) is implemented by the `emqx_retainer` plugin, which is enabled by default. By modifying the configuration of the` emqx_retainer` plugin, you can adjust the EMQ X Broker's retention message Location, restrict the number of retained messages and maximum payload length, and adjust the expiration time of retained messages.
In April, EMQ X 4.3-beta.5 release summed up all the fixes has to be done before 4.3.0 release. This allowed us to gradually shift our focuses towards 5.0 development.