Tổng quát về Flow Engine

Message

Message của Flow Engine sẽ chứa các thông tin sau

  • ID của bản tin (Message Id): mã định danh của bản tin

  • Loại bản tin (msgType): POST_TELEMETRY, REST_API_REQUEST,...

  • Nội dung bản tin (msg): Dạng JSON hoặc STRING.

  • Thông tin đi kèm (metadata): Dạng JSON với các cặp key-value dạng STRING.

Node

Trong Flow Engine, mỗi Node sẽ xử lý Message tại một thời điểm và gửi Message đi một hoặc nhiều Relation.

Node là yếu tố xử lý logic chính của Flow Engine.

Các loại Node có thể sử dụng:

  • Filter Node: Trả về Relation True/False hoặc Relation do nhà phát triển tự đặt tên.

  • Enrichment Node: Lấy dữ liệu (Attribute, ID) từ trong Database theo yêu cầu của nhà phát triển và lưu vào trong metadata.

  • Transformation Node: Cho phép nhà phát triển tùy ý sửa msg và metadata.

  • Action Node: Xử lý các hành động đặc thù như tạo thiết bị, đến số lượng bản tin, lưu dữ liệu, trả response cho Custom RESTful API.

  • External Node: Gửi Message tới các hệ thống ngoài đi qua IP Gateway của Platform.

  • Flow Node: Truyền Message đi sang các Flow khác.

Relation

Để truyền Message giữa các node, nhà phát triển cần nối các Node với nhau thông qua Relation.

Các Message sau khi được xử lý ở các Node thường sẽ có các Relation Type như Success, Failure, True, False, hoặc các Relation Type do nhà phát triển đặt tùy theo chức năng của Node.

Người dùng sau khi nối các Node với nhau cần đánh các Relation Type cho mỗi Relation.

Một Relation có thể có nhiều hơn một Relation Type.

Flow

Flow là một tập hợp của Node và Relation.

Mỗi Flow đều có 01 Node bắt đầu tên là Input và chỉ có thể nối sang 01 Node khác.

Message Result

Có 02 kết quả có thể xảy ra khi Node xử lý Message: Success và Failure.

Success có được khi Node xử lý Message thành công.

Failure có được khi Node xử lý Message gặp lỗi logic, hoặc vào trạng thái thất bại theo chức năng của Node được sử dụng, hoặc khi thời gian xử lý của Node vượt quá thời gian nhất định.

Với một số Node, Success có thể trở thành True, False hoặc các Relation Type do nhà phát triển định nghĩa.

Message Type

LoạiMô tảmetadata

POST_VARIABLES

Bản tin được gửi từ thiết bị vào Flow

deviceName - tên của Device entity_type - giá trị mặc định là DEVICE entity_id - ID của Device createdby - ID của User tạo Device deviceID - ID của Device group_id - ID của Group gắn với Device extra - thông tin của User group_name - tên của Group gắn với Device owner - ID của User Admin ownerInfo - email của User Admin protocol - giao thức truyền bản tin topic - Sub Topic mà Device gửi vào MQTT Broker

POST_TELEMETRY_REQUEST

Bản tin được tạo từ bộ định thời

ENTITY_UPDATED

Flow được lưu mới

tenantId - ID của Project

REST_API_REQUEST

Bản tin được gửi từ Custom RESTful API

requestUUID - ID của Request để trả về cho Custom RESTful API Response extra - thông tin của User entity_id - ID của User entity_type - giá trị mặc định là USER

Configuration

Mỗi Node có cách cấu hình riêng để đáp ứng chức năng của Node.

Có 02 kiểu Configuration:

  • JavaScript function: Node sẽ tương ứng với một function với các tham số truyền vào là msg, metadata, msgType. Nhà phát triển có thể tùy ý viết chương trình xử lý dữ liệu bên trong Node và phải trả kết quả đúng định dạng Node yêu cầu.

  • Nhập dữ liệu: Node sẽ hiện các ô trống để nhà phát triển điền thông tin tương ứng. Ngoài thông tin cố định, nhà phát triển có thể sử dụng con trỏ $[key]${key} để trỏ tới giá trị nằm trong msg và metadata.

Last updated