作者:余章琪,就职于飞利信科技股份有限公司,担任物联网平台架构师,拥有18年编程经验。2014年至2016年参与了镇海智慧水务项目从解决方案设计到最终实施完成的全过程。目前致力于物联网云平台的规划与设计。
责编:贾维娣(jiawd@csdn.net),转载请微信联系 jiaweidi1214

项目简介

宁波市镇海区智慧水务项目建设内容包括水环境治理设施监测、水务信息资源中心、水务综合监管平台(监测监控、治水监督、应急指挥、综合服务、决策支撑及集成开发)、水务专题应用(包括防汛、环保、排水)等,监管体系如图1所示。

图1 智慧水务监管体系

技术架构

图2展示了基于物联网体系结构而设计的镇海水务分层架构模型。按照物联网体系结构,我们将镇海智慧水务架构抽象为4个层:感知层、网络层、平台层、应用层。

图2 镇海水务分层架构模型

关键设计决策

任何架构和设计决策,最终都是解决业务问题的重大关键。镇海智慧水务开发和实施过程中面临着如下的技术挑战:

  1. “物”的多样性和差异性。镇海水务的监测对象包括:闸门、泵站、排海管网、水质检测站等。监测指标涉及PH值、COD、流量等。监测数据来自于不同的工业传感器、自动控制系统、智能终端设备、电子标签,它们运行于不同类型的操作系统或者微控制器上,使用不同的数据协议,如Modbus、DNP3、DL101、OPC等。
  2. “物”所处的网络环境多样性。物联网设备通过不同的方式接入到骨干传输网络中,比如RFID、WIFI、蓝牙等。
  3. 物联网应用层协议的多样性。在镇海水务项目中,我们采用的协议有MQTT、HTTP(REST)、WebSocket。
  4. 数据采集、传输和处理的实时性。在应急响应、实时监控方面,对数据以及系统响应的实时性有较高的要求。
  5. 海量数据的实时处理和存储、分析。
    除此之外,各单位都存在一些已建或在建的系统,数据孤岛现象严重,难以互连互通。

图3 智慧水务SCADA系统的逻辑架构

那么,我们是如何解决和应对这诸多挑战的呢?接下来将重点介绍4项关键技术。它们是:

  1. 物联网网关——解决众多传感设备的数据采集和处理问题;
  2. 海量数据存储——解决物联网传感器产生的海量数据存储问题;
  3. 实时通信——解决数据通信的实时性问题,从“感知层”到“展示层”的上行通信,以及从“展示层”到“感知层”的下行通信;
  4. 数据交换与共享——解决不同单位和系统间数据交换与共享的问题。

物联网网关

镇海智慧水务项目的各类监测设备主要是工业自动化系统的传感器,如水质PH值、COD等的检测、流量计、水位计等。Modbus协议是水务水利工业传感协议的事实标准,此外,OPC协议应用也较为广泛。虽然是标准协议,但由于各单位已经存在一些原有的自动化监控系统,设备来自不同的厂家,系统也不是一个开发商提供的,所以对Modbus协议的实现方式不完全一致,增加了系统开发和集成的难度和工作量。

针对此类共性需求,项目中我们自主研发了物联网网关产品。物联网网关通俗的讲就是一个通用的数据采集和通信网关。它内置了对主流数据协议的支持,并且提供自定义插件来实现动态扩展,即对于非内置支持的协议,可支持协议的二次定制开发。开发人员只需要继承DataSource基类,实现特定的override方法,即可迅速完成一个新“数据源”程序的开发。然后将动态链接库(DLL)通过管理工具发布到物联网网关服务器,即可实现与特定类型设备和传感器的通信,如图4。

图4 物联网网关工作原理示意图

海量数据存储

镇海智慧水务项目一期接入了诸多的监测厂、站、节点等,不同类型监测指标的采集频率也不完全相同。根据统计,所有节点一天上报的监测数据约为4.32亿条,1年下来就是1500亿条记录,约7.2TB。

基于以上的容量规划,经过技术调研和可行性验证,我们最终选择采用MongoDB数据库作为实时数据的持久化存储。

MongoDB实时监测数据集合的Schema如下:

Point_data_real {
Code string,        // 测点代码
Value double,   // 监测值
Time date,  // 采集时间
Owner {     // 数据来源对象
Category string,
Site string
},
Attributes {    // 扩展属性
Quality bool,
Valid bool,
Event_num int
}
}

经过测试分析,我们总结了MongoDB数据库性能最佳实践,当然,这是基于我们自己的测试数据得出的,如表1所示仅供参考。

表1 MongoDB数据库性能最佳实践

这里值得注意的是,我们的性能测试和评估是在单台服务器的情况下完成的,因此,在实际生产部署环境下,建议采用复制集加分片集群的模式。

图5说明如何在最佳性能和最大数据可靠性之间取得平衡。

图5 最佳性能和最大数据可靠性的平衡

实时通信

物联网应用从传感设备的数据采集、处理到存储、传输、分析、展示,中间要经过很多的环节,除了程序运行处理的时间开销,还应考虑网络传输的延时,即用户对系统实时性的要求。除此之外,人机交互的模式对系统可伸缩性的影响也不容忽视——当新的监测数据上报到服务器时,是主动推送至监控系统的用户界面,还是让用户发送新的数据请求然后将结果返回给用户?推送动作的触发是采用数据库轮询模式,还是基于事件通知?这些都会影响到最终的技术选型。

表2是对相关技术的简单对比。

表2 通信技术对比

最终,我们选择了HTML5 WebSocket作为从物联网网关到监控系统用户界面的实时数据通信机制。主要评估指标包括:实时性、系统可伸缩性、技术复杂度、浏览器兼容性、标准性与开放性、用户体验。

数据交换与共享

如前文所述,由于政府部门和单位间的“数据孤岛”现象严重而导致难以实现系统间互连互通,因此,迫切需要一种数据交换与共享的解决方案。经过市场调研之后,我们最终自己开发了一个轻量级的数据交换与共享服务器程序,来满足镇海智慧水务的数据交换需求,如图6。

图6 数据交换与共享服务工作原理

数据提供者程序和数据接受者程序可以分别部署在不同的网段,不同的服务器上,只要两台服务器之间存在可以连通的网络即可。数据发送方进程和数据接收方进程分别具有本方数据库的访问权限,而无需知道对方数据库。

数据交换配置信息,用来描述源数据库和目标数据库的的标识、表及字段映射关系。
一个数据提供者可以向多个接收者发送数据,一个数据接收者也可以从多个提供者接收数据。

说到这里,有人可能会问:为什么不直接采用数据库层面的DTS来实现数据复制呢?简单的说,DTS也能在一定场景下适用,但只能视具体项目情况而定,而且必须2个数据库间能直接互连,而这在镇海智慧水务项目中基本是不可行的。

后记

最后跟大家分享几点心得:

多了解项目相关的知识。像实施镇海智慧水务项目,需要了解工业传感器、PLC编程、嵌入式系统和编程、网络通信、服务器端开发、大数据相关技术、GIS、数据可视化分析和展示等知识。

架构设计需谨慎。在技术落地和项目实施的过程中,要不断优化和演进架构设计,并且防止设计的退化。

对物联网应用项目的实施来说,很大一部分工作量在于系统集成和设备联调。使用实时数据模拟程序、可视化数据分析等工具能够将整个项目进行合理划分和分解,也有利于并行开发,加快进度,便于系统集成。

物联网应用案例:镇海智慧水务相关推荐

  1. 智慧水务平台(建设项目案例)

    [案例]智慧水务平台:数字赋能 真正提升企业运管效益 项目背景 多年来,新疆地区大力发展供水事业,让群众实现了从"喝上水"到"喝好水"转变.但是在长期使用过程中 ...

  2. 化繁为简|AIRIOT智慧水务信息化建设解决方案

    "生产自动化,管理信息化"是现代化水厂建设的目标之一,需要在水质要求.工艺.生产.管理.环境等监测方面达到精细化管理标准,这是一个高度智能化,实现化繁为简智慧进阶的工程.传统水厂在 ...

  3. 嵌入式之NB-IoT开发与应用01【移动通信网络发展概述、NB-IoT应用案例、物联网生态系统-解决方案、智慧消防项目需求分析及系统设计】

    学习网址: 嵌入式之NB-IoT开发与应用 目   录 P1 1.01-01 NB-IoT课程介绍(P1) NB-IoT是什么? NB-IoT能够干什么? 1.移动通信网络发展概述 移动通信网络-1G ...

  4. 智慧水务物联网数据采集平台和营收管理平台建设

    平台概述 智慧水务物联网数据采集平台是以物联感知技术.大数据.智能控制.云计算.人工智能.数字孪生.AI算法.虚拟现实技术为核心,以监测仪表.通讯网络.数据库系统.数据中台.模型软件.前台展示.智慧运 ...

  5. 智慧水务物联网云平台解决方案

    智慧水务物联网云平台解决方案 1.行业现状 由于水资源的匮乏,近年来对水工业的自动化.信息化.可视化水平要求日益增高.多比物联网云平台在包括市政供水.工业用水.污水处理.海水淡化.水源监测.市政给水排 ...

  6. 全球首个NB-IoT智慧水务在深圳正式规模商用;华为与Software AG联合推出全面的物联网解决方案 | IoT黑板报...

    高通骁龙835各项跑分出炉 性能碾压去年所有旗舰手机 @威锋网 高通最新移动平台 Snapdragon 835,基本上可以确认是今年旗舰智能手机的标配,在骁龙 835 真机到来之前,随着昨日中国发布会 ...

  7. Axure经典案例高保真下载(智慧水务、智慧泵房、水厂监控、营收管理、DMA漏损、维护管理、档案管理、仓库管理、水质监控、数据中心、调度指挥中心)

    使用Axure制作的rp原型智慧水务可以作为系统演示用,做了非常多的交互,而不是冷冰冰的图片,多点击些地方试试 内联框架显示视频要转成html和视频放一起才可以显示,这里只上传原型文件,因此直接用图片 ...

  8. 智慧水务综合管理平台、智慧水务信息化、供水信息化管理—山西河曲县应用案例

    项目概况 山西河曲县自来水公司承担着本地城乡供水任务,在实施该项目前情况如下: ◆ 操作人员需24小时轮班值守,手动控制水泵的启停,现场观察水泵的运行状态.电流.电压等数据: ◆ 泵房之间距离远,调度 ...

  9. 乐吾乐2D可视化为智慧水务可视化赋能(二)

    ►前言 智慧水务可视化是运用物联网.5G.大数据等数字化手段,通过建模和组态,能实现远程对现场能控制和查看实时的数据和状态的可视化功能,在抗洪救灾.城市供水.养殖产业.航运旅游.农业灌溉. 生态环境等 ...

  10. 消费互联网、产业互联网、工业互联网、能源互联网的关键区别是什么?智慧城市、智慧园区、智慧交通、智慧水务、智能电网、智慧工厂中都需要的关键技术是什么?

    过去20年,是房地产与消费互联网黄金时代.未来30年,是数字新基建与产业互联网的黄金时代. 消费互联网.产业互联网.工业互联网.能源互联网的关键区别是什么? 消费互联网,满足消费者需求的互联网服务,包 ...

最新文章

  1. 「SAP技术」SAP MM MB5M报表不显示特殊库存数据
  2. scrapy-splash抓取动态数据例子六
  3. VTK:Utilities之ColorLookupTable
  4. sprintf用法详解
  5. 用户登录和注册的功能
  6. StreamWriter类的一般使用方法
  7. springboot使用curator来实现leader选举
  8. Change Jenkins time zone
  9. 解决方案:System.InvalidOperationException: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。
  10. 编译器说 Lambda 表达式中的变量必须是 final 的,我偏不信 | 原力计划
  11. 二十四、JAVA集合框架(三)
  12. SM2国密算法证书解析
  13. 分类网络 resnet
  14. 苹果产品信息查询_科普:苹果官网那些隐藏着的超实用工具
  15. 关于深度学习的网络流量分类论文整理(一)
  16. 「转」新手淘宝天猫小卖家开店,如何做好全盘运营?
  17. 13步设计出一个ITSM系统
  18. chrome的视频播放加速功能也太好用了。
  19. arduino灯光装置_基于Arduino的智能家居灯控系统设计
  20. Cadence Vitruoso Layout绘制版图

热门文章

  1. (前端发邮件)vue中使用smtp.js发送邮件
  2. java贪吃蛇保存,Java 实现贪吃蛇游戏的示例
  3. 坦克大战游戏c语言,C语言开发坦克大战游戏
  4. Carla自动驾驶强化学习
  5. jQuery 选择器
  6. 广告词 android,广告语猜猜看
  7. 微信公众平台开发系列之必备知识
  8. 基于单片机的单行道红绿灯仿真
  9. Maven第7篇:聚合、继承、单继承问题详解
  10. 魂斗罗归来大觉机器人_魂斗罗归来挑战Boss血量分析 魂斗罗归来Boss模式挑战攻略...