您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 物联网统一平台的设计与实现
第33卷第7期2019年7月北京测绘BeijingSurveyingandMappingVol.33No.7July2019引文格式:陶为翔,王磊,刘旭•物联网统一平台的设计与实现北京测绘!019,33(7):853-857.DI:10.19580/j.cnAi.1007-3000.2019.07.026物联网统一平台的设计与实现陶为翔12王磊3刘旭12(1.正元地理信息集团股份有限公司,北京101300;2.正元地理信息智慧城市建设公司,北京101300;3.东营市城市管理局,山东东营257091)[摘要]随着智慧城市的日益发展和不断成熟,物联网与智慧城市的结合越来越紧密,物联网作为智慧城市建设的技术基础,物联网统一平台”将成为解决物联网信息处理、分析和应用的关键技术平台,其在整个物联网体系架构中起着承上启下的关键作用$本文结合实际项目应用介绍了“物联网统一平台”的设计思路,介绍了数据配置系统、消息中间件、数据服务模块的设计内容,并介绍了实现过程中采用了发布/订阅>Redis缓存、Socket服务、NoSQL等关键技术,设计开发的平台在东营市城市管理局智慧城管项目得到了成功应用$[关键词]智慧城市;城市管理;物联网[中图分类号]P208[文献标识码]A0引言智慧城市的概念基于美国IBM于2008年首次提出的“智慧地球”这一理念经过十年多的探索发展,中国智慧城市的建设成效颇丰。从2012年住建部正式启动国家智慧城市试点工作,到2014年《国家新型城镇化规划》首次把智慧城市建设引入国家战略规划⑵,再到中国共产党在十九大报告提出建设基于智慧城市普遍发展的“智慧社会”,智慧城市建设在国内的推进历经了起步期、探索试点期、成熟规范期、目前已迈入一个全新的蓬勃发展期。2018年,国家发改委进一步强调,“提高城市发展质量,分级分类进行智慧城市建设”3。在智慧城市建设中,以大数据、人工智能、物联网、云计算为代表的新一代信息技术得到广泛应用。智慧城市发展最大的限制是数据,破解数据不足的问题,物联网技术是关键目前物联网在智慧城市发展中的应用各方各面,从地下管网智能化、市政管理智能化、园林智能化到环保智能化及其他应用智能化等方面,物联网在智慧城市应用建设中,其扮演的是中枢神经系统的角[文章编号]1007—3000(2019)07—0853—5色,物联网通过它的传感器全方位的感知着城市信息。因此有必要搭建物联网统一平台,将所有感知设备与互联网相连接,为各部门物联网应用信息的接入、汇聚和整合等应用提供数据交换和信息共享服务,促进可触可感的智慧城市发展。1系统设计1.1设计思路对于一个完整的物联网系统来说,必须集成数据收集、传输、处理、提供服务等一系列过程[610]。一般至少分为三个层次。设备感知层由各类设备传感器终端组成,用来采集各类指标,如道路积水深度、水质PH、浊度、土壤温湿度等,感知层将传输消息协议通过网络层传输到上层应用,再由各种物联网应用调用数据服务实现各种展示。在实际的应用中我们需要解决多协议接入、大量连接、数据存储、消息分发等问题。为了保障数据的正确性和及时性,我们应用层之前需要搭建物联网统一接入平台,支持各类设备的注册连接,必须适应各种异构网络和协议,产生的海量信息数据统一管理存储。平台总体架构如图1所示:[收稿日期]2019—01—28作者简介]陶为翔(1980—),男,山东青岛人,硕士,工程师,从事智慧管网、智慧城管等研究工作(E-mail:twx@geniuses.com.cn[通讯作者]刘旭Uiuxu042@163.com854北京测绘第33卷第7期设备管理数磁理规则引攀图1物联网平台总体架构『eaOJpi服务、socket接q->解析一►心中间件处理物联网统一平台首先支持海量设备安全、低延时地接入平台,此外,平台还提供丰富的设备管理功能、稳定可靠的数据存储能力,以及规则引擎,使用人员通过平台可以获得数据采集、数据计算、数据存储的全栈服务,实现物联网应用的灵活快速搭建。物联网统一平台主要包括数据配置系统、消息中间件、数据服务三个子系统。1.2数据配置系统通过数据配置系统可以对物联网设备相关信息进行信息配置,同时通过系统可进行数据查询等功能,信息管理主要提供设备管理、传感器管理、监测点管理、监测项管理,通过配置系统可以实现设备的注册,数据配置管理,是物联网统一平台的基础核心模块,当物联网设备注册成功后,还可以对报警规则进行配置。配置完成后,平台将已有物联网设备数据接入到物联网平台数据库。1.3消息中间件消息中间件做为一个底层物联网设备数据的平台,实现数据接收、数据入库、数据分发的工作,可以理解为数据网关。主要包括各种协议的接收、解析、入库,信息分发,同时提供短信发送服务将异常报警数据提醒相关人员。1.3.1接入服务物联网设备中涉及到各式各样的传感器,比如压力、流量、水位传感器等,这些传感器分属于不同厂家,有些厂家在数据传输协议中会采用标准的Modbus协议,某些设备厂家会采用自由协议传输,因此接入服务首先要支持标准协议的接收解析,对于非标准协议需要约定数据传输协议规范。在接入服务中我们定义针对一类型设备的数据传输协议基本格式如图2所示:设备编号]&[监测项]&监测值&[采集时间]图2消息传输协议格式(1)每一个传感器设备都有唯一的设备编号,每个设备厂商有自己的编码格式,固此设备编号没有固疋格式。(2)每个设备可能监测多项指标,如水质监测设备同时采集PH、浊度、余氯等指标,在数据传输协议需要发送对应的监测项编码。(3)传输协议中需要将采集的监测数据和采集时间进行上报。服务器接入服务程序在接收到数据后,会自动根据预先定义的解析方式解析数据字段进行入库、转发等操作。如接入服务在收到一条数据0557020502&Z1&0.0&2019-01-2010:45:00解析后信息如下,某物联网设备(编号为0557020502)在2019-01-2010:45:00上报一条道路积水信息(监测项Z1),当前积水深度0.0cm。1.3.2网关服务网关服务负责数据安全认证功能,对于接收到数据首先进行设备鉴权,确认此设备是否可以接入到平台,保证了对于肆意传递数据的威胁,减少了非法数据侵入。网关服务同时负责对消息协议进行解析、转换和传输,将协议信息传输至服务器数据中心,同时将解析处理之后的消息发送至消息中心服务,物联网网关架构如图3所示:网关服务协议解析一数据传输一图3网关服务架构1.3.3分发服务分发服务以主动推送的方式把消息分发给不同的应用对象。负责处理物联网设备产生的监测信息,对于网关服务转发报警数据,进行任务平均分发到任务处理平台,保证所有物联网设备的异常报警都能及时的得到处置。1.3.4短信服务对于某些物联网告警信息,相关运维人员和负责人需要第一时间获取通知,消息中间件提供短信服务,相关数据通过短信信息相关配置后(配置联系人、发送频率、短信模板等),可以通过短信的形式提醒相关人员,图4是一个通知示例。【智慧管网指挥中心】监测点:人民路淮河路路口压力点,内容:压力0.02mpa,时间:2018-12-2622:25,请及时处置!图4短信通知内容第33卷第7期陶为翔,王磊,刘旭•物联网统一平台的设计与实现8551.4数据服务通过数据配置系统和消息中间件将监测数据接入到平台中,上层各种应用需要调用数据扩展各种业务应用,方便各系统进行集成和增值功能开发。在数据服务模块中将物联网监测数据及其他的配置信息,系统权限认证等通过标准的REST服务进行统一管理。数据服务提供各种类型数据内容的服务接口,例如:物联网设备查询、监测历史数据查询、实监测设备报警查询、物联网监测点信息、各种报表数据的查询等。在统一平台数据服务的实现中,我们使用swagger生成的restapi接口文档,每个API接口描述和参数、请求方法都能定制并直接测试得到直观的响应数据。2关键技术2.1发布/订阅在我们的物联网设备接入过程中,每分钟会接收大量的数据,如果采用传统的串行数据处理方式,平台收到一条监测数据,进行解析处理,执行插入数据库操作,然后执行处理下一条接收的数据,由于cpu在单位时间内处理的请求数是一定的,对于高并发量、大吞吐量会有瓶颈,在这种高并发环境下,由于来不及同步处理,消息请求往往会发生堵塞。为了解决这一问题,我们引入消息队列。消息队列是分布式系统中重要的组件,在实际应用中主要用于异步处理、应用解耦、流量削锋和消息通讯四个场景。在平台的设计开发中,我们采用消息队列的发布和订阅(Pub/Sub)模式,将数据的接收与数据的解析入库分开执行。各类传感器设备我们看作数据发布者,发布者首先注册到指定的主题Obpic)消息通道上,使其能够将消息发送到通道中。在服务器端我们开发接收端应用,可看作数据订阅者,订阅者监听指定的消息通道,消息通道一旦接收到消息,会主动地调用注册在通道中的订阅者,由订阅者完成数据处理工作,如图5所示。图5发布/订阅模式2.2Redis缓存在监测数据接收过程中,平台需要对接收的每条数据进行解析,以接收的积水点监测数据“0557020502'Z1'0.0&2019-01-2010:45:00”为例,通过解析得到设备编号0557020502,传感器编码Z1(积水信息)等信息,然后需要通过编号从数据库查询对应监测项的报警范围、数据单位、数据精度等配置信息。如果每次查询这些配置信息都从数据库查询数据,会造成数据库压力很大,查询速度慢。Redis是一个开源的内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。对于这些配置信息,其信息并不会经常发生变动,在平台的设计中我们采用Redis作为配置信息的缓存,当数据没有发生本质变化的时候,我们避免数据的查询操作直接连接数据库,而是去缓存中读取数据,这样就大大降低了数据库的读写次数,而且从内存中读数据的速度要比从数据库查询要快很多。查询配置信息时先从Redis缓存中查询,如果查询不到,则到数据库中查询,然后将数据库中查询的数据放到Redis缓存中一份,下次查询时就能直接从缓存中读取,同时在配置信息发生修改变动时,会同步更新缓存中数据。2.3Socket服务实时数据采集到平台后,各个应用系统中需要对这些数据进行展示,通常有两种方式来获取这些数据。一是各应用通过ajax轮训(如每间隔10s)向服务器发起ajax请求,平台提供数据查询服务,各应用通过调用服务查询服务端接收的最新数据,这种方式服务器不会主动推送信息,而是在客户端发送ajax请求后进行返回的响应。二是在服务器端数据有了变化后,可以主动推送给客户端,这种方式我们可以采用socket协议实现服务器的推送功能。我们在平台中创建socket服务用于封装消息协议,平台接收到各种设备传感器发送的数据后,同时采用socket服务转发推送数据到各个应用中,第一时间能推送到各个应用系统中,确保数据的实时性和高效性。2.4NoSQL数据库NoSQL的全称是NotOnlySql,指的是非关系型数据库,而我们常用的数据库多是关系型数据库,如mysql、oracle、sqlserver,这些数据库一般用来存储普通的业务信息。但是,随着互联网856北京测绘第33卷第7期的高速发展,对技术提出了更多的需求,传统的关系型数据库在应对超大规模,超大流量以及高并发的时候力不从心,暴露了许多能以克服的问题。由此,各种各样的NoSQL数据库作为传统关系型数据的一个有力补充得到迅猛发展。NoSQL并不是任何时候都适用,在我们遇到以下的应用场景时需要NoSQL来解决。(1)数据库表schema经常变化;(2)数据库表字段是复杂数据类型;(3)高并发数据库请求;(4)海量数据的分布式存储。在物联网统一平台实际应用中,各种物联网传感器会产生大量的数据量。一是会有大量的传感设备接入,如各类井盖触发器、灯杆控制器、积水监测设备等;二是会遇到大量消息并发接收。在平台的设计实现中,我们采用MongoDB这一NoSQL来存储各类监测数据,保证了海量数据的处理和实时存储。3应用示例东营市智慧城管(一期)项目由东
本文标题:物联网统一平台的设计与实现
链接地址:https://www.777doc.com/doc-7986840 .html