物连网+

“互联网+”是以互联网为主,外围智能模块和传感器为辅,构建互联生态。而“物联网”却是以互联网为基础,重点在传感器数据采集,设备控制,远程监控为主。

从技术角度分析,当前一个典型的物联网项目,从组成上来讲,至少有三部分:一是设备端,二是云端(主要指公有云),三是监控端。

1. 设备端架构设计

设备端主要负责数据采集,工艺逻辑执行及控制。

无论底层的设备数量有多少,通信协议有多复杂,考虑到项目安全等等因素,往往和云端通信,汇集在一个设备上,这样的设备的角色往往是物联网网关,除了专门负责和云端进行通信外,有时候也会对原始数据进行一定的处理,执行一些业务逻辑相关的代码。 和云端通信有很多协议可选,常见的有基于HTTP协议的Get或Put方法,从服务器获取一些设置及状态,及向服务器推送采集到的数据。但是对数据量相对比较大,实时性要求高的,往往是直接的Socket TCP/UDP通信,这样传输的代价相对较低,但是对编程设计方面要求比较高。

由以上分析,从功能层面上分,设备端架构一般可分三层,一是数据采集&控制输出层;二是工艺流程执行层;三是数据上传&命令接收通信层。

2. 云端架构设计

云端一般包含三部分:Web前台+ Web后台+中间件;

作为工业级的物联网项目,Web前台一般会显示这几部分内容,一是工艺画面,和现场实际的设备和工艺流程一一对应,画面可以实时反映工业现场运行的 情况。二是各种数据报表、曲线数据的保存、查询和打印等。三是运行日志,保存各种运行情况,以备查询。四是显示系统诊断信息,便于系统出现问题的时候,及 时判断问题所在。

Web后台相对复杂一些,一般完成三部分内容的工作,如果是设备端基于HTTP协议通信,往往需要处理Get和Put请求。由于前台有实时画面,所以Web后台有时候也需要向前台界面传输实时数据,目前有些实时数据是通过Web Socket协议进行传输,也可以由专门的程序来处理。还有一部分功能比较重要,就是要建立设备数据和各种报表,曲线,日志的对应关系,以便于适用尽可能多的现场。

在工业级物联网项目中,一般中间件必不可少,其主要功能就是负责和现场设备进行通信,获取数据或发送相关控制指令。此外还有一个比较重要的功能,由 于中间件程序一般是作为系统的一个服务程序或普通应用程序,生命周期较长,可以长时间连续运行,可以处理一些相对复杂的业务逻辑、数据换算及数据转储。

3. 监控端架构设计

监控端一般包含PC、手机或平板监控。

对一般项目而言,也许通过Web前台就可以掌控一切了,但是在移动互联网的时代,如果对应的手机或平板上没有对应的APP,那这个项目就感觉有了一个很大的缺憾。有了手机或平板APP,就可以身在任何地方,都可以相对方便的监控现场。

从功能上划分,架构可以相对简单的分为两层,一就是UI界面显示及操作层,二就是数据通信层,实现和服务器信息交互。

4. 小结

如果抛开其他一切因素,仅从技术角度来讲,实现以上三个大环节的功能,用什么系统平台,任何开发语言都可以完成其预定的功能。但是所谓的架构设计,不仅仅从功能角度来设计整个的系统平台,更多还要考虑其可靠性,扩展性,维护性等几个方面。

作为工业级的物联网项目,大都是面向工、农、牧、渔等具体行业,每种行业虽然从技术角度而言有很多类似的部分,但是从工艺流程角度又有很大的区别, 所以针对具体的项目,进行代码调整及相关功能的扩展及二次开发必不可少。但是面向一线的工程师往往技术水平及能力相对比较低,能否快速编写出可靠、健壮的 代码显的非常重要,毕竟每个项目现场实施时间是有限的,但是同时项目要求也是比较高的。

另外一个物联网项目,包含了嵌入式设备的开发、Web前后台的开发、服务程序开发还有手机和平板程序开发,每一项从技术平台上来说各种各样,比如嵌入式设备,有微软体系的Windows CE/XPE/.NET Micro Framework,有linux体系的嵌入式linux/uclinux等等,还有uCOSII/FreeRTOS/mbed OS等等实时嵌入式操作系统,其开发工具,系统架构各不相同,各有特色。手机和平板目前至少也有三种开发类型,一种是iOS开发,一种是安卓开发和windows 10 UWP通用程序开发等等。另外Web开发就更多了,这里就不一一举例了。

转自<http://www.csdn.net/article/2015-10-31/2826093>

原文地址:https://www.cnblogs.com/chensheng12330/p/4935149.html