基于Predix云远程控制边缘节点的实践

基于Predix云远程控制边缘节点的实践

在工业互联网的核心场景中,除了使机器拥有感知,不断上传自身的运行数据外,通过云端远程控制边缘节点则是另一个非常重要的场景。因为,只有实现了从云端到设备端反向通信和控制,才能将云端经由大数据运算、优化过的推荐策略反馈到边缘设备端,从而达到优化运营管理、提高设备使用率、降低设备的非计划性停机时间等用户期待的结果。

Predix EdgeManager - 云端远程控制边缘节点的解决方案

Predix EdgeManager是Predix平台中云端远程控制边缘节点的全生命周期解决方案,它可以和Predix Machine完美集成,完成如下功能,

  • 用户权限管理
  • 提供设备注册与分组管理
  • 设备配置、算法的下发
  • 设备状态监控,报警
  • 设备端命令执行
  • 设备端软件依赖管理
  • 设备端软件版本管理

Predix EdgeManager能提供全生命周期的解决方案,但是,目前只针对Predix北美用户开放,中国Predix试用计划的用户还没法申请、试用Predix EdgeManager的服务。

如果只需要从云端远程控制边缘节点的功能,我们完全可以自己实现一个WebSocket服务器推送到Predix平台,从云端下发指令给设备端执行。本文就详细介绍一下,如何基于Predix云通过WebSocket协议远程控制边缘节点的实践

WebSocker服务器软件架构

实现一个WebSocket服务器一点都不困难,因为各种高级语言都有相应的开发框架,我们可以在几分钟内就能完成。真正需要注意的是,当WebSocket服务器已经连接了多个客户端的场景下,如何传递命令到相应的WebSocket客户端,而不是广播给所有的客户端。下图就是我们的一个示例,用Go语言实现的WebSocket服务器。

WebSocket服务器架构如下图所示,


我们可以看到,

  1. WebSocket服务器运行在Predix云平台上。
  2. 客户端通过WebSocket协议与Predix云平台上的WebSocket服务器通信。
  3. 服务器端实现了agentbrokerREST Interface几个核心组件。
  4. 服务器为每个WebSocket连接创建一个agent实例。agent实例一方面负责同WebSocket客户端进行双向通信,另一方面,agent还接收broker下发的命令并转发到客户端。
  5. 服务器创建一个broker实例。该broker实例负责注册每个agent实例,并在接收到具体的命令后,转发给相应的agent实例。也就是说,我们通过broker实例实现了传递命令到相应的WebSocket客户端,而不是广播给所有客户端的功能。
  6. REST Interface实现了/agentsGET方法。因此,用户可以通过浏览器发送相应的请求给broker实例,而broker实例则会转发命令给相应的agent实例。
  7. 同时,REST Interface会为每个请求创建一个callback管道,agent实例将客户端执行命令的结果通过该callback管道返回给REST Interface。因此,用户在浏览器中就可以看到边缘节点执行命令的结果。

Go语言代码实例

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值