### 集群架构：物联网案例

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

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步的信息，找到设备所在频道号，再发送消息即可。这样设备就可以接收到此指令消息。