论文部分内容阅读
摘 要:“十三五”规划重点项目指出了建设物联网应用基础设施和服务平台,在此基础上各大物联网平台厂商推出自己的产品,如阿里云物联网平台、中国移动OneNET平台、中国电信Wing平台等。同样,电动汽车产业的发展推动着共享充电桩需求的急剧增速,文中以共享充电桩物联网软件平台架构建设思路为依托,提出一种物联网软件平台系统架构设计方案。
关键词:物联网;软件架构;平台架构;共享充电桩;分布式架构;双向异步通信
中图分类号:TP39 文献标识码:A 文章编号:2095-1302(2019)12-0-03
0 引 言
物联网实现了物质世界的数字化,以互联网为基础,结合通信技术与传感器达到感知万物的能力。物联网具有数量庞大、通信频繁、实时性高、海量存储等特点,传统软件技术无法满足物联网设备的接入要求,需采用新一代信息技术,如云计算、大数据、分布式等技术手段,将单机无法承载的海量通信接入和海量数据存储分散,从而满足物联网应用的要求。共享充电桩行业伴随新能源汽车产业的发展而快速崛起,2015年出台的《关于加快电动汽车充电基础设施建设的指导意见》使共享充电桩行业迎来发展的机会。大量充电桩设备的接入对软件系统平台提出了更高的要求,本文基于共享充电桩软件系统平台,设计出一套适合物联网设备接入的通用型物联网软件系统平台架构,为物联网平台建设提供解决方案。
1 总体架构设计
系统平台主要由充电桩物理感知层、网络接入层、网络通信层、业务处理层、应用层五个层次组成,架构如图1所示。
在充电桩物理感知层,电动汽车首先通过汽车自身的电池管理系统与充电桩CAN总线进行感知与交互,包括充电枪连接状态感知、BMS运行状态感知、电动车充电电量感知等,电动汽车将自身相关状态上报到充电桩,充电桩根据状态做出对应的处理。例如,充电桩感知到电动汽车处于插枪状态时,充电桩生成插枪状态的报文并发送到软件管理后台。
在网络接入层,以物联网卡为基础,TCP/IP协议作为网络传输协议。充电桩通过外部或内部感知各种设备的连接及运行状态,根据通信报文协议生成对应的状态报文。报文经物联网卡以网络传输的方式传输到软件管理后台。
在网络通信层,软件管理后台与充电桩之间建立TCP Socket通信连接。由充电桩发起Socket通信连接请求,首先经过负载均衡服务器对通信连接服务器进行负载计算,选择其中一个通信服务器与充电桩完成Socket连接,并将充电桩注册信息存储在分布式缓存系统中。通信服务器负责维持Socket通信状态,实现与充电桩之间的双工通信。
在業务处理层,网络通信层的通信服务器经由分布式消息队列系统发送消息到集群业务处理服务器,集群业务处理服务器根据自身负载情况选择是否消费队列消息。业务处理服务器根据消息内容判断业务类型及处理方式,并将数据及时存入分布式数据库中(如HBase,MongoDB)。业务处理服务器处理完消息后从分布式缓存系统中获取到负责对应充电桩Socket通信连接的通信服务器,并向该通信服务器专属队列通道发送回应消息,从而实现与充电桩之间异步可靠的双向通信。
在应用层,各种相关应用与业务处理服务器之间以Restful接口进行无状态通信。应用可通过业务处理服务器对外开放的接口,实现向充电桩发送指令以及接收充电桩传送过来的消息,系统也可实现各种定制化功能,如APP扫码充电、刷卡充电等。
2 负载均衡调度
常用的负载均衡调度算法主要有轮询、最小连接、散列等,考虑到不同服务器的性能、网络环境、物理条件等因素,可在这些算法基础上做相应加权,从而达到负载均衡的目的。整个系统平台在Socket通信服务、队列消费、Restful接口服务部分都实现了负载均衡,需要根据具体实际情况选择合适的调度算法。
在通信服务器和Restful接口服务层,通常可选择加权轮询或加权最小连接的方式实现。具体算法如下。
(1)加权轮询
假设有一组服务器S,服务器数量为n,则:
指定一个指示变量i表示上一次选择的服务器,初始值为-1,指示变量w为当前调度的权值,则服务器i的权值为Wi,则:
Wmax=max(W0, W1, W2, ..., Wn-1),表示所有服务器集合的最大权值;
Gmax=(W0, W1, W2, ..., Wn-1),表示所有服务器集合的权值的最大公约数。
当一次请求进入时,执行如下:
while (true) {
i= (i 1) mod n;
if (i == 0) {
w = w - Gmax;
if (w
关键词:物联网;软件架构;平台架构;共享充电桩;分布式架构;双向异步通信
中图分类号:TP39 文献标识码:A 文章编号:2095-1302(2019)12-0-03
0 引 言
物联网实现了物质世界的数字化,以互联网为基础,结合通信技术与传感器达到感知万物的能力。物联网具有数量庞大、通信频繁、实时性高、海量存储等特点,传统软件技术无法满足物联网设备的接入要求,需采用新一代信息技术,如云计算、大数据、分布式等技术手段,将单机无法承载的海量通信接入和海量数据存储分散,从而满足物联网应用的要求。共享充电桩行业伴随新能源汽车产业的发展而快速崛起,2015年出台的《关于加快电动汽车充电基础设施建设的指导意见》使共享充电桩行业迎来发展的机会。大量充电桩设备的接入对软件系统平台提出了更高的要求,本文基于共享充电桩软件系统平台,设计出一套适合物联网设备接入的通用型物联网软件系统平台架构,为物联网平台建设提供解决方案。
1 总体架构设计
系统平台主要由充电桩物理感知层、网络接入层、网络通信层、业务处理层、应用层五个层次组成,架构如图1所示。
在充电桩物理感知层,电动汽车首先通过汽车自身的电池管理系统与充电桩CAN总线进行感知与交互,包括充电枪连接状态感知、BMS运行状态感知、电动车充电电量感知等,电动汽车将自身相关状态上报到充电桩,充电桩根据状态做出对应的处理。例如,充电桩感知到电动汽车处于插枪状态时,充电桩生成插枪状态的报文并发送到软件管理后台。
在网络接入层,以物联网卡为基础,TCP/IP协议作为网络传输协议。充电桩通过外部或内部感知各种设备的连接及运行状态,根据通信报文协议生成对应的状态报文。报文经物联网卡以网络传输的方式传输到软件管理后台。
在网络通信层,软件管理后台与充电桩之间建立TCP Socket通信连接。由充电桩发起Socket通信连接请求,首先经过负载均衡服务器对通信连接服务器进行负载计算,选择其中一个通信服务器与充电桩完成Socket连接,并将充电桩注册信息存储在分布式缓存系统中。通信服务器负责维持Socket通信状态,实现与充电桩之间的双工通信。
在業务处理层,网络通信层的通信服务器经由分布式消息队列系统发送消息到集群业务处理服务器,集群业务处理服务器根据自身负载情况选择是否消费队列消息。业务处理服务器根据消息内容判断业务类型及处理方式,并将数据及时存入分布式数据库中(如HBase,MongoDB)。业务处理服务器处理完消息后从分布式缓存系统中获取到负责对应充电桩Socket通信连接的通信服务器,并向该通信服务器专属队列通道发送回应消息,从而实现与充电桩之间异步可靠的双向通信。
在应用层,各种相关应用与业务处理服务器之间以Restful接口进行无状态通信。应用可通过业务处理服务器对外开放的接口,实现向充电桩发送指令以及接收充电桩传送过来的消息,系统也可实现各种定制化功能,如APP扫码充电、刷卡充电等。
2 负载均衡调度
常用的负载均衡调度算法主要有轮询、最小连接、散列等,考虑到不同服务器的性能、网络环境、物理条件等因素,可在这些算法基础上做相应加权,从而达到负载均衡的目的。整个系统平台在Socket通信服务、队列消费、Restful接口服务部分都实现了负载均衡,需要根据具体实际情况选择合适的调度算法。
在通信服务器和Restful接口服务层,通常可选择加权轮询或加权最小连接的方式实现。具体算法如下。
(1)加权轮询
假设有一组服务器S,服务器数量为n,则:
指定一个指示变量i表示上一次选择的服务器,初始值为-1,指示变量w为当前调度的权值,则服务器i的权值为Wi,则:
Wmax=max(W0, W1, W2, ..., Wn-1),表示所有服务器集合的最大权值;
Gmax=(W0, W1, W2, ..., Wn-1),表示所有服务器集合的权值的最大公约数。
当一次请求进入时,执行如下:
while (true) {
i= (i 1) mod n;
if (i == 0) {
w = w - Gmax;
if (w