集群架构:物联网案例

典型的物联网网络服务中,存在以下最基础的功能:

  1. 设备通过TCP/UDP与服务器通讯, 通讯方式大多为GPRS/3G/4G/WIFI/以太网,连接建立后上报自身的工作数据状态
  2. 服务端通过TCP/UDP向设备发送相关指令
  3. 用户可通过手机/PC向指定设备发送指令,并查看设备状态数据。
  4. 每个设备,都有其唯一的编号,称为设备id。
  5. 每个设备,可能还有额外的加密验证信息,设备id和验证信息保存于服务器端的数据库中。
  6. 设备连接后,需要发送设备id和验证信息至服务完成验证,后续才能通讯。

绝大多数物联网应用的功能,基本是这种形式。 基于beyod构建物联网应用,主要有以下流程:

  1. 根据通讯协议,实现Parser,完成数据包的解析
  2. 启动一个dispatcher服务器,作为分发消息之用。
  3. 服务器端程序启动后,即向dispatcher订阅频道,频道号即为GPID。
  4. 服务端建立数据库,进行设备id,验证信息的初始录入
  5. 设备发送数据包后,验证身份,再决定是否处理。
  6. 设备验证成功之后,即应该在共享存储(数据库/缓存)中保存设备id与GPID的映射关系表, 后续我们可以通过设备id找到频道号,从而决定消息的目标频道。
  7. 设备上传的数据,应该保存在共享存储(数据库/缓存)中,其它终端可以通过设备id查询到这些信息。
  8. 向设备发送控制指令时,先通过第6步的信息,找到设备所在频道号,再发送消息即可。这样设备就可以接收到此指令消息。