๐Ÿ“ฏExchanging data between apps

Introduction to the FLECS Service Mesh

The FLECS Service Mesh is a key component in our industrial automation solutions, aiming to facilitate efficient and effective inter-app communication. Inspired by advancements in smartphone app interactions, this system focuses on ensuring seamless data exchange between applications in an industrial setting.

Addressing Inter-App Communication Challenges

Traditionally, apps operated in silos, hindering their ability to communicate with each other. This isolation led to inefficiencies in industrial applications, obstructing process integration and optimization.

Our Solution: Implementing Zenoh

To address these challenges, we turned to Zenoh, an open-source project offering Pub/Sub, Store, Query, and Compute functionalities with minimal overhead. Zenohโ€™s adaptability and efficiency in data exchange make it an ideal backbone for our Service Mesh.

Upgrade: System Apps No Longer Included

With the release of FLECS 3.x, the tech.flecs.mqtt-bridge and tech.flecs.service-mesh Apps will no longer be installed by default. To utilize their functionality, these apps must be manually installed from the App Marketplace through the FLECS WebApp.

Upgrade: Former System Apps Require Manual Maintenance

Upon upgrading to FLECS 3.x from previous versions, the FLECS MQTT Bridge and FLECS Service Mesh will need to be uninstalled manually through the WebApp. If their functionality is still required, they can be reinstalled from the App Marketplace via the FLECS WebApp.

Getting Started with FLECS Service Mesh

Step 1: Understanding the Service Mesh

The FLECS Service Mesh, uses a Pub/Sub mechanism for efficient data transfer across various protocols. Itโ€™s designed for low latency, high throughput, and minimal memory footprint, making it suitable for industrial applications requiring speed and reliability.

Step 2: Setting Up Your Environment

Ensure your devices are connected and running FLECS Core. The Service Mesh integrates seamlessly into the existing FLECS architecture, providing a unified layer for communication.

It's important to note that you need to install the Service Mesh and MQTT Bridge apps via the marketplace on your devices to utilize these functionalities. This step is crucial for enabling the full scope of features offered by the Service Mesh and ensuring efficient communication across your automation systems.

Step 3: Configuring Communication Channels

Configuring communication channels within the FLECS Service Mesh is crucial for optimal performance. Depending on your system's requirements and the nature of the apps you are using, there are two main options:

  1. Direct Connection via C or C++ Interface:

    • For the highest level of performance, particularly in scenarios demanding rapid data transfer and minimal latency, a direct connection using our C or C++ interfaces is recommended.

    • Pre-configured in Some Apps: It's important to note that some apps provided by vendors already include this direct connection option as a default feature. In such cases, users need not worry about setup complexities โ€” the app comes ready to integrate seamlessly with the Service Mesh for maximum performance.

    • For custom implementations or to understand how this integration works, refer to our GitHub repository for practical examples: FLECS-Technologies/flunder.

  2. Integration via Mosquitto MQTT Broker and FLECS MQTT Bridge:

    • If you're integrating with an existing MQTT infrastructure, use the FLECS MQTT Bridge to connect to the 'flecs-mqtt' server through the standard MQTT port 1883 (non-encrypted communication).

    • This option is ideal for environments where MQTT is already in use, ensuring a smooth integration process while maintaining effective data exchange capabilities.

By choosing the appropriate communication setup, you can leverage the full capabilities of the FLECS Service Mesh, ensuring your automation system operates efficiently and reliably.

Step 4: Real-Time Data Exchange

While we donโ€™t claim strict real-time capabilities, our system is optimized to approximate deterministic behavior, crucial for high-speed applications. Regular performance testing ensures latency, throughput, and bandwidth meet the demanding requirements of industrial applications.

Last updated