APP下载

住宅工程质量检测平台通用数据接入协议研究与设计

2023-09-20陶椿霞TAOChunxia

价值工程 2023年26期
关键词:报文客户端住宅

陶椿霞TAO Chun-xia

(上海市建筑科学研究院有限公司,上海 200032)

0 引言

随着计算机和各种先进技术的迅猛发展,数字化技术已广泛应用于建筑工程设计和施工等各领域,利用数字化技术赋能住宅工程质量检测技术是住宅工程质量监管的重要趋势。

目前住宅工程质量检测与监管类信息系统标准化体系尚未健全,多类型检测数据兼容性和互通性差,检测数据的共享和利用不足。随着现场检测设备种类不断增加和数据参数的日趋复杂,这对数据的采集传输提出了更高要求。因此亟需研究用于住宅工程质量检测数据采集传输的通用共享协议,实现数据的有效管理与利用。依据目前各类常见的住宅检测设备的信息流与数据流特征,研究数据采集传输的共享协议,实现各类检测参数的数据接入,便于住宅工程质量检测平台的高效开发和快速集成,也有利于与外部应用系统的快速联通。

1 住宅工程检测设备

1.1 检测设备

近年来,住宅建筑工程的质量倍受重视。住宅工程质量检测主要包含地基基础工程、主体结构工程、建筑幕墙工程、钢结构工程等检测。本文针对住宅工程中经常使用到的检测设备进行了调研。

主要用到的住宅工程检测设备和数据采集仪器包含激光测距仪、混凝土回弹仪、钢筋探测仪、超声测厚仪、全站仪、微功耗数据采集仪、静载仪器、超声波自动循测仪、成槽仪器、高低应变仪一体基桩动测仪等。不同设备的数据传输方式也各有不同,如采用无线近距离Bluetooth 技术、ZigBee 自动组网技术、3G/4G 无线通讯、USB、RS232等等。

1.2 数据采集传输现状

目前在工程质量检测的技术中,绝大部分还停留在使用人工手动测量或者只能将检测的数据通过表格等形式间接导入到相应系统的方式。对于有些检测设备的状态监听、数据采集、数据管理等功能都依赖于设备自身提供的能力,检测时必须在设备的本地操作,无法做到数字化采集和数据传输。为了实现检测设备数据的共享和利用,亟需针对检测设备设计通用的数据传输协议。

2 传输协议研究

2.1 常用传输协议

当前常用的传输协议有RESTful/HTTP、MQTT、TCP/IP等,各种传输协议情况如下。

2.1.1 RESTful/HTTP 协议

RESTful/HTTP 协议是指利用REST 技术再结合HTTP 协议的特性和能力,通过底层直接建立在HTTP 协议之上,可以充分发挥Web 的潜力。它是一种基于请求/响应模型的协议,客户端发送请求并等待服务器响应。RESTful 是一种基于资源的软件架构风格。RESTful 架构遵循统一接口原则,统一接口必须符合一组受限的预定义操作,无论什么资源,都是通过使用相同的接口进行资源的访问。

按RESTful 架构风格规定的数据基本操作CRUD(即数据的增、查、改、删),分别对应HTTP 方法,统一了数据操作的接口,仅通过HTTP 方法,就可完成对数据的所有操作工作。RESTful 的数据接口更加简便高效、统一安全。

2.1.1.1 请求的方法

在请求时带上请求的方法,主要为所请求的事件进行一个分类缩写。用于精确地区分具体功能,可简化接口架构复杂性。通过HTTP 进行通信交互,所有接口都是标准的 HTTP 协议请求方式:GET,POST,PUT,DELETE,PATCH 等等。

2.1.1.2 URI

URI 表示统一资源定位符,RESTful 架构风格要求用URI 指向资源,每个URI 对应一个特定的资源,一个资源可以有一个或多个URI 与之对应。在Web 开发中,URI 也就是URL 地址。因此要获取此资源,访问其URI 资源的地址即可实现。

2.1.1.3 HTTP 规范响应状态码

HTTP 的特点是简单灵活、易于扩展、拥有成熟的生态规范,可以实现客户端与服务器之间交互的松耦合,降低客户端和服务器之间的交互延迟。HTTP 的状态码是服务端对客户端请求的返回结果,用于标记服务端对于该请求的处理情况。

2.1.2 MQTT 协议

随着越来越多的物联网设备采用MQTT 作为支持协议,在图1 物联网数据采集系统构成中,MQTT 协议在OSI 模型体系中属于应用层协议。它是一种基于发布/订阅模式的“轻量级”的通信协议,该协议构建于TCP/IP 协议之上。因此只要是支持TCP/IP 协议的地方,都可以使用MQTT,可以有效降低检测设备接入难度和使用成本。

图1 物联网数据采集系统构成

2.1.2.1 MQTT 特点

①使用发布/订阅消息模式,提供一对多的消息发布,客户端彼此之间独立,解除了应用程序耦合性,增强整个系统的可靠性。就算一个客户端出现故障时,整个系统可以继续正常工作。

②二进制形式编码,低功耗,协议开销小,消息的分发不受低带宽、网络延迟高、通信不稳定等影响,属于物联网的一个标准传输协议,可降低网络流量。

③使用TCP/IP 提供网络连接,客户端(Clients)与代理(Broker)之间可保持TCP 长连接。采用心跳机制,通过间断性的发送报文,来保持客户端和服务端的心跳长连接,以减少电量的消耗,提升系统资源利用率。

④报文结构紧凑、载荷格式灵活,载荷内容支持多种数据传输,如文本、加密数据、图像及二进制数据,可以拓展更丰富的应用业务。

⑤三种消息发布服务质量QoS:“最多一次”“最少一次”“只有一次”。

“QoS0 最多一次”:指消息只传递一次,这种情况可能会发生信息丢失,这一级别的QoS 可用于如环境传感器数据,丢失一次记录无所谓,因为等待不久后还会有第二次发送。

“QoS1 最少一次”:即保证消息准确到达,但是可能会造成信息重复发送。

“QoS2 只有一次”:一般使用在对数据完整性和时效性有高要求的情况下,与此同时多次往返确认会造成资源过度消耗以及影响并发。一般适用于一些要求较严格的计费系统中。

⑥具有安全性,支持基于TLS/SSL 的加密和认证机制,保护通信的安全性。

2.1.2.2 MQTT 协议格式

MQTT 协议格式主要由固定报文头、可变报文头和有效载荷三部分组成。不同的业务需求下,预定义的控制报文也不同,主要区别在于是否包含可变报文头或有效载荷。整体MQTT 的消息格式如图2 所示。

图2 整体MQTT 的消息格式

“固定报文头”:它由两部分组成,第一部分包含了报文的控制类型和报文的标志;第二部分表示除固定报文头长度外剩余的长度。

第一部分高4 位为MQTT 控制报文的类型,具有实际意义的控制报文类型主要分为四大类:连接类、保活类、话题订阅类、消息发布类。根据取值例如:0001 可知控制报文对应CONNECT 连接类型。

“可变报文头”:用来记录一些协议内容,例如协议名称、协议级别、连接标志和心跳间隔四个字段组成。

“有效载荷”:是消息主体,是整个协议格式中最为重要的部分。物联网设备所要传递的数据都由这部分保存,表示订阅者具体要使用的消息内容。有效载荷消息体中包含 CONNECT、SUBSCRIBE、SUBACK、UNSUBSCRI BE、PUBLISH 几种常用报文类型的消息。

TCP/IP 协议:TCP/IP 协议是互联网使用最广泛的协议之一,它分为两个部分:传输控制协议和因特网协议。TCP/IP 是一个协议族,包括多个网络协议,比如IP、ICMP、TCP、HTTP、FTP、POP3 等。它是因特网的核心协议,用于在互联网上进行数据传输和网络通信。TCP 负责数据的可靠传输,IP 则负责数据包的路由。

TCP/IP 协议按照层次由上到下:最上层是应用层,有我们熟悉的协议HTTP、FTP 等等。第二层是传输层,著名的TCP 和UDP 协议就在这个层次。第三层则是网络层,IP协议就属于这一层,它是一种无连接的协议,专门负责网络层的路由选择和数据包的传输。它使用IP 地址定位网络上的设备,并将数据包从源地址传输到目的地址。IP 协议提供了一个层次化、可扩展的网络架构,使得互联网上的大部分设备都可以进行通信。第四层是数据链路层,这个层次为等待传送的数据加入一个以太网协议头,并进行CRC 编码,为最后的数据传输做准备。

2.2 传输格式

常用的网络数据传输格式包含:JSON、XML、ProtoBuf等。对比三种最常用的数据传输格式如下:

①XML:它是可扩展标记语言与Oracle、Access 和SQL Server 等数据库不同,数据库提供了更强有力的数据存储和分析能力。XML 简单易于在任何应用程序中读写数据,这使得XML 很快成为数据交换的公共语言。但是XML 文件庞大,传输占带宽、服务器端和客户端都需要花费大量代码来解析XML,导致代码变得异常复杂且不易维护,客户端不同浏览器之间解析XML 的方式不一致,需要重复编写很多代码。XML 的有效载荷实在太低,封装和解析效率太低,所以只适用于非常少量,对性能没要求的网络流量。

②JSON:它是一种轻量级的数据交换格式,易于机器解析和生成。将采集阶段得到的数据根据具体的通讯协议规约,进行有效数据的过滤,标准数据的格式化,它采用完全独立于语言的文本格式。它可以将JavaScript 对象中表示的一组数据转换为字符串,在网络或程序之间轻松地传递这个字符串,并可以在需要时将它还原为各编程语言所支持的数据格式。

③ProtoBuf:它是一种数据交换格式,又称PB 编码,由Google 开源,类似于JSON、XML,但其内部是纯二进制格式,比JSON,XML 等格式要更精炼,主要用于数据的序列化和反序列化,目前官方提供了JAVA、Python、C++等多种语言的实现。

综上几种传输格式分析,XML 适用于传输文档,而JSON 更适用于传输信息对象,因此本文研究采用JSON的传输格式。

3 通用数据采集共享协议设计

针对住宅工程质量检测设备数据传输协议,提供统一的JSON 格式。本文选择两种传输协议Restful/HTTP 协议和MQTT 协议,以支撑绝大多数设备数据传输。

3.1 Restful/HTTP 协议设计

对于本次研究的数据采集协议中,基于Restful/HTTP协议使用的是POST 请求方式,请求和响应的消息内容采用JSON 格式。

①数据接口描述如下:

请求类型:POST

③HTTP 状态码:上传成功服务端返回2xx 的HTTP的状态码;上传失败则返回4xx/5xx HTTP 的状态码。

3.2 MQTT 协议设计

对于本次研究的数据采集协议中,基于MQTT 协议满足从服务端主动向客户端发起推送方式。其订阅的主题格式:deviceData/{projectId},projectId 代表具体项目,使用“/”作为分隔符,表示只订阅“deviceData”该层级下的所有主题以及所属projectId 所属项目的主题内容。数据采用JSON 格式,每条MQTT 消息上传一个监测设备的所有参数数据。

4 结论

本文研究了常用数据传输协议和数据传输格式,设计了住宅工程质量检测平台的数据采集通用协议,最终采用RESTful/HTTP 协议和MQTT 协议。针对种类繁多的检测设备类型,尽可能做到一站式全方位数据采集。将现代化通信技术与住宅工程质量检测数据采集系统相结合,实现数据的无线采集与传输,大大减少人力、物力成本,将有力推动住宅工程质量检测数字化进程。

猜你喜欢

报文客户端住宅
基于J1939 协议多包报文的时序研究及应用
Jaffa住宅
CTCS-2级报文数据管理需求分析和实现
挂在“树”上的住宅
MHS住宅
A住宅
浅析反驳类报文要点
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现