当前位置: 首页 > news >正文

一种面向 AIoT 定制化场景的服务架构设计方案

一种面向 AIoT 定制化场景的服务架构设计方案

背景问题

在开发面向工业、制造等领域的 AIoT (智能物联网) 系统时,一个常见的问题是客户现场的需求变化非常快。例如,一个基于视觉的质检服务,可能因为生产线上更换了新的物料面板,导致原有的检测区域 (ROI) 和判断标准全部失效。

传统的开发模式通常是将服务的代码逻辑、配置文件、AI 模型等资源打包成一个整体。在这种模式下,即使只是更换一张模板图片或调整一个判断阈值,也需要走完“修改代码 -> 重新打包 -> 测试 -> OTA 升级”的全流程。这个流程不仅效率低,而且在设备数量多时,管理和维护成本非常高。

本文提出一种旨在解决该问题的架构设计,其核心是分离服务的执行逻辑业务配置

核心设计:分离执行与配置

此方案将系统划分为四个主要部分,各自承担清晰的职责:

  1. 云平台 (SaaS Backend):作为配置和决策中心,负责管理服务的业务配置、执行业务规则、存储和分析数据。
  2. 设备客户端 (Client):作为设备上的通用代理,负责与云端通信、同步配置、管理本地服务的启停,但不参与具体业务。
  3. 原子化服务 (Service):作为设备上的具体功能执行单元 (例如,视觉检测服务),负责运行核心算法,并上报原始的检测结果。
  4. 数据总线 (Data Bus):作为标准的数据传输通道,推荐使用 MQTT 协议。

下图展示了这四部分之间的协作关系:

IoT Device
Universal Client
Atomic Services
SaaS Cloud Platform
Serves
Consumes
Ingests
Receives Command
Reports Data
Reports Data
Writes Files
Delivers Assets
Publishes to
Maintains Connection with
MQTT Publisher
Factory Service
Other Services
Asset Synchronizer
WebSocket Handler
Service Assets DB
资产管理 UI
Rule Engine
规则引擎 UI
Data Storage
数据可视化 Dashboard
Asset Delivery API
MQTT Broker
SaaS WebSocket Server
关键实现机制
1. 服务资产的远程配置与同步

我们将服务的配置文件、模板图片、模型文件等非代码部分定义为“服务资产”,并使其可以被远程动态更新。

  • 云端管理:在云平台上为每个服务实例提供资产管理功能,允许用户上传和修改这些资产文件。
  • 同步指令:云平台通过 WebSocket 向设备客户端发送一个标准指令,例如 update_service_assets。该指令包含一个资产列表,列表中每个条目都指明了文件需要存放在服务目录下的相对路径以及一个临时的文件下载地址
  • 客户端执行:设备客户端接收到指令后,其任务是下载指令中列出的所有文件,并根据指定的相对路径,将它们准确地写入对应服务的目录下。写完后,通过预设的机制(例如发送一个本地消息)通知该服务重新加载配置。

整个过程客户端仅充当“搬运工”,不解析文件内容,保证了其通用性。

SaaS PlatformDevice ClientTarget ServiceSend_Command("update_service_assets", {assets_meta})Parse command, start AssetSynchronizerHTTP GET asset from download_urlReturn asset fileWrite/Overwrite asset file to pathloop[For each asset in meta]Notify("assets_updated")Reload configurations from diskSaaS PlatformDevice ClientTarget Service
2. 业务规则引擎置于云端

为了获得最大的业务灵活性,我们将最终的业务决策逻辑从设备端移至云端。

  • 设备端:上报原始事实
    设备上的服务只执行核心算法,并输出客观的原始结果。例如,一个质检服务只需要识别出“1号检测点状态为OK”、“2号检测点状态为NG”,然后将这些原始数据通过 MQTT 上报。

  • 云端:进行业务决策
    云平台的规则引擎订阅 MQTT 数据。根据用户在平台上预设的业务规则(例如:“如果1号点OK且2号点OK,则总状态为合格”),对上报的原始数据进行计算,得出最终的业务结论。

通过这种方式,当业务需求(如合格标准)变化时,只需在云平台修改规则即可,设备端的服务代码无需任何变动。

3. 使用 MQTT 作为标准数据总线

规定所有服务都通过 MQTT 上报其运行时数据,可以形成统一的数据流,便于后端处理。

  • 标准主题(Topic):设计一套统一的主题命名规范,例如 devices/{device_id}/services/{service_name}/events/{event_type}。这使得后端服务可以方便地订阅、过滤和路由来自不同设备、不同服务的数据。
  • 服务实现: 每个原子服务负责连接 MQTT 并上报自己的数据。为了简化开发,可以在设备端的基础框架(例如 liteboty)中提供一个标准的 MQTT 发布工具类,服务可以直接调用,而无需关心连接管理的细节。
方案总结

该设计方案通过将服务逻辑服务资产(配置)业务规则三者分离,解决了 AIoT 领域常见的定制化需求与快速迭代问题。

  • 提升了灵活性:业务配置和规则可以由用户在云端随时调整,无需开发人员介入和软件版本更新。
  • 降低了维护成本:设备端客户端和服务的职责更加单一,代码更稳定,减少了因业务变更导致的频繁升级。
  • 清晰的系统架构:各组件职责分明,便于开发和问题定位,也为后续的数据分析和功能扩展打下了良好基础。
http://www.dtcms.com/a/495919.html

相关文章:

  • 免费做网站刮刮卡舆情查询
  • 深圳建设厅网站官网免费虚拟主机官网
  • 塑胶制造生产ERP:有哪些系统值得关注
  • 怎么学习做网站vue is做的购物网站
  • 广州白云手机网站建设佛山专业做网站公司有哪些
  • 自己可以做一个网站吗如何删除网站后台的文章
  • PostgreSQL学习之postgis编译
  • unitree rl gym项目实践记录1:部署unitree rl gym项目
  • 国外的工业设计网站西安高科鱼化建设有限公司网站
  • 自己怎么设置网站湛江工程造价信息网
  • PostgreSQL 常见数组操作函数语法、功能
  • 珠海企业医疗网站建设惠州百度seo电话
  • 怎么查看网站备案信息怎样从网上卖东西啊
  • vue3 实现一个数组项在水平轴上按照奇偶数项分别上下排列
  • 服装类电子商务网站建设报告网页突然打不开是什么原因
  • 激光散斑血流图像去噪技术研究及其MATLAB实现
  • 帝国cms下载类网站怎么做怎么才能注册网站
  • 自助制作网站简述网站建设方法
  • java微服务-尚医通-数据字典-5
  • 建设营销型网站模板如何修改公司网站内容
  • 江西临川建设集团有限公司网站湖南网站建设 尖端磐石网络
  • 深圳保障性住房排名查询换个网站对seo有什么影响
  • 提升后牙树脂充填效率的器械选择要点
  • YOLO-V3
  • 论部落战争对两性思维的终极塑造及其政治遗产​​
  • Java 12的性能优化对不同规模和类型的应用程序有何影响?
  • 深入解析 Cherry Studio 的创建的本地知识库并用于问答的过程
  • 做图网站被告wordpress 学校主题
  • Joomla SQL注入漏洞复现:原理详解+环境搭建+渗透实践(CVE-2017-8917 两种方法渗透)
  • 天津网站优化公司哪家好一个公网ip可以做几个网站