CN117615043B - 一种边缘网关上服务间通信方法及系统 - Google Patents
一种边缘网关上服务间通信方法及系统 Download PDFInfo
- Publication number
- CN117615043B CN117615043B CN202410089105.2A CN202410089105A CN117615043B CN 117615043 B CN117615043 B CN 117615043B CN 202410089105 A CN202410089105 A CN 202410089105A CN 117615043 B CN117615043 B CN 117615043B
- Authority
- CN
- China
- Prior art keywords
- data
- inter
- protocol
- service
- communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000006854 communication Effects 0.000 title claims abstract description 212
- 238000004891 communication Methods 0.000 title claims abstract description 211
- 238000000034 method Methods 0.000 title claims abstract description 67
- 239000008186 active pharmaceutical agent Substances 0.000 claims abstract description 55
- 230000008569 process Effects 0.000 claims abstract description 31
- 230000036541 health Effects 0.000 claims abstract description 15
- 230000000694 effects Effects 0.000 claims abstract description 12
- 230000015654 memory Effects 0.000 claims abstract description 10
- 230000001419 dependent effect Effects 0.000 claims abstract description 4
- 238000004806 packaging method and process Methods 0.000 claims abstract description 4
- 238000012545 processing Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 15
- 101100194362 Schizosaccharomyces pombe (strain 972 / ATCC 24843) res1 gene Proteins 0.000 claims description 9
- 101100194363 Schizosaccharomyces pombe (strain 972 / ATCC 24843) res2 gene Proteins 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000012806 monitoring device Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 5
- 101001072091 Homo sapiens ProSAAS Proteins 0.000 claims description 4
- 102100036366 ProSAAS Human genes 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 4
- 230000009193 crawling Effects 0.000 claims description 4
- 230000003862 health status Effects 0.000 claims description 4
- 230000001360 synchronised effect Effects 0.000 claims description 3
- SPBWHPXCWJLQRU-FITJORAGSA-N 4-amino-8-[(2r,3r,4s,5r)-3,4-dihydroxy-5-(hydroxymethyl)oxolan-2-yl]-5-oxopyrido[2,3-d]pyrimidine-6-carboxamide Chemical compound C12=NC=NC(N)=C2C(=O)C(C(=O)N)=CN1[C@@H]1O[C@H](CO)[C@@H](O)[C@H]1O SPBWHPXCWJLQRU-FITJORAGSA-N 0.000 description 33
- 230000003993 interaction Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/169—Special adaptations of TCP, UDP or IP for interworking of IP based networks with other networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种边缘网关上服务间通信方法及系统,包括:将守护服务、规约驱动器、控制调度器、抓取存储器、转发器、管理和及配置后端封装为服务间通信API;为数据有关服务配备服务间通信API,并分别通过服务间通信API与监视中心服务器交互消息、命令、健康心跳和服务自身的进程运行时状态;通过服务间通信API从数据有关服务接收大规模的来自设备的遥测数据,并利用服务间通信API确定如何处理和存储遥测数据;通过服务间通信API分析遥测数据为用户提供见解、控制设备状态并监视设备活动、接收IOT平台命令进行本地操作以及管理设备上安装的固件。本发明达到降低通信开销、减少延迟、支持私有协议,并提高通信的稳定性的目的。
Description
技术领域
本发明涉及智能嵌入式网关技术领域,具体涉及一种边缘网关上服务间通信方法及系统。
背景技术
提及边缘计算,首先需要进行了解和分析的便是云计算。总体而言,云计算服务是在全球多个位置分布式集中部署的高度可伸缩的计算和存储资源。同时,为云计算提供服务的供应商还会为物联网业务整合各式各样的预打包服务。然而,尽管云计算提供的服务资源远远超过物联网业务需要的处理分析能力,但是数据采集节点仍然可能距离区域云设施有较远的距离,这便使得各节点同云的连接十分依赖于传统数据中心的不稳定的互联网连接。实际上,云计算仅仅是对传统数据中心进行的一个补充,相对传统数据中心而言,它让计算可以在离数据源更近的地方实现集中计算,但仍旧不是发生在网络的边缘。而边缘计算则是指把为用户提供的存储的资源和计算的资源布置在数据产生的位置,理想情况下可以视为将计算和存储资源部署在产生数据的数据源的相同位置。在完成业务的分析和处理后,将结果发送至数据处理中心进行人工的审查和存储,当然数据处理中心仍旧可以将返回的数据处理结果进行更广泛的分析。
边缘计算所具有的减少了处理实时业务时的延时和优化了传输大量数据时的带宽两大核心优势,使得其自20世纪90年代Akamai推出的内容交付网络(CDN)让业务服务在地理位置上更加接近用户的位置起便得到了国外学者和企业的一致关注。在未来,随着企业的不断发展,随着互联网和人类社会的进步,边缘计算将有效促进各行业的发展。在诸如工业互联网、智能家居、智慧交通和智慧消防等各个领域扮演着至关重要的角色。
在边缘计算环境中,服务间通信至关重要。传统通信协议如RESTful、MQTT、AMQP、gRPC、WebSocket在此背景下存在一些问题:高通信开销、高延迟、不适用于私有网络、不稳定网络条件。这些问题威胁了边缘计算的实施和应用。市场需要更高效、低延迟、私有性能强大的通信方法。
发明内容
为了克服现有技术的不足,本发明提供一种边缘网关上服务间通信方法及系统,用于解决现有的服务间通信方法所存在的高通信开销、高延迟、不适用于私有网络、不稳定网络条件的技术问题,从而达到降低通信开销、减少延迟、支持私有协议,并提高通信的稳定性的目的。
为解决上述问题,本发明所采用的技术方案如下:
一种边缘网关上服务间通信方法,包括以下步骤:
将守护服务、规约驱动器、控制调度器、抓取存储器、转发器、管理以及配置后端封装为服务间通信API;
为数据有关服务配备所述服务间通信API,并分别通过所述服务间通信API与监视中心服务器交互消息、命令、健康心跳以及服务自身的进程运行时状态;
通过所述服务间通信API从所述数据有关服务接收大规模的来自设备的遥测数据,并利用所述服务间通信API确定如何处理和存储所述遥测数据;
通过所述服务间通信API分析所述遥测数据为用户提供见解、控制设备状态并监视设备活动、接收IOT平台命令进行本地操作以及管理设备上安装的固件;
其中,所述数据有关服务包括:不同数据服务、不同通信服务、存储服务以及计算服务;所述监视中心服务器与所述服务间通信API使用TCP连接,并利用TCP协议与私有通信规约相结合进行通信;所述监视中心服务器是TCP的服务器端,所述服务间通信API是TCP的客户端。
作为本发明优选的实施方式,在利用TCP协议进行通信时,包括:
建立TCP通信,由所述监视中心服务器bind固定端口后,所述服务间通信API发起握手,所述监视中心服务器回应握手确认连接;
所述服务间通信API定时发送健康心跳,所述监视中心服务器接收所述健康心跳并标注;
所述服务间通信API发送功能方式及对象化数据,所述监视中心服务器接收后发送到客户列表目的地,并将客户目的地返回所述服务间通信API。
作为本发明优选的实施方式,所述健康心跳包括:健康指数;所述功能方式及对象化数据包括:程序发布、点表改变通知;
其中,所述健康心跳的JSON包括:ProgramId:程序ID、PId:进程ID、Healthy:健康状态、Res1:第一预留字段、Res2:第二预留字段、Res3:第三预留字段、 Res4:第四预留字段;
所述功能方式及对象化数据的JSON包括:code:操作命令、operator:操作者、objectType:对象类型、objectId:对象ID、 targetType:目标类型、targetId:目标ID、param:参数、result:结果、 res1:第一预留字段、res2:第二预留字段、res3:第三预留字段。
作为本发明优选的实施方式,在从所述数据有关服务接收大规模的来自设备的遥测数据时,包括:
所述规约驱动器包括多个规约驱动单元,所述规约驱动单元加载,并开一个主业务线程定时采集遥测数据,接收通道报文后作遥测数据处理;
订阅MQTT主题及内容转为规约通信特征发出,实现设备控制;
其中,一个规约驱动单元包含一个规约通道、一个点表;点表列有:设备测点基础信息、规约通信特征;所述规约通信特征包括:Modbus规约的数据区首地址与区内地址;所述规约驱动单元加载包括:所述规约通道加载与连接、所述点表加载与按所述规约通信特征归档。
在利用所述服务间通信API确定如何处理和存储所述遥测数据时,包括:
采用MQTT-Broker作为消息中心处理大规模遥测数据;
从所述MQTT-Broker订阅主题后,直接转为行数据,并写入到时序数据库;
其中,所述主题内容为:{"u": 123456, "d": 789012, "i": 345678, "v":45.67, "t": 1635531101000}。
作为本发明优选的实施方式,在利用所述服务间通信API确定如何处理和存储所述遥测数据时,包括:
通过所述规约驱动器根据点表定义的数据区首地址,以一问一答形式来读取遥测数据;
接收到所述遥测数据后,根据点表定义的区内地址与数据类型乘以采集系数,得出值后,直接以订阅主题发送到所述MQTT-Broker上。
作为本发明优选的实施方式,在通过所述服务间通信API控制设备状态时,包括:
通过所述控制调度器采用Http-Server服务,接收SAAS指令后,根据通道与设备关系表,分析出边缘网关的规约通道ID,并以订阅主题发送到所述MQTT-Broker上;
通过所述规约驱动器订阅自身规约通道ID主题,并在接收到遥测数据后,使用所述规约通信特征发送到对端设备上;
其中,所述规约通道包括:TCP的客户端方式、TCP的服务器端方式;
所述TCP的客户端方式,包括:TcpClient、HttpClient、UdpClient、MQTT以及Serial;
所述TCP的服务端方式,包括:TcpServer、HttpServer、UdpServer、Http3Server;
TcpClient、HttpClient、UdpClient的对应配置项,包括:远程IP、远程端口;
MQTT的对应配置项,包括:远程IP、远程端口、SSL和TLS、客户端Id、登录账户、登录密码;
Serial的对应配置项,包括:串口名、波特率、校验位、停止位、数据位、数据流控制;
在通过所述服务间通信API监视设备活动时,包括:
通过所述规约驱动器采集到遥测数据并推向所述MQTT-Broker时,记录一个设备采集心跳时间;
在通过所述服务间通信API管理设备上安装的固件时,包括:
采用Docker方式部署,在升级边缘网关相关业务软件后,达到容器化部署目的。
作为本发明优选的实施方式,在利用私有通信规约进行通信时,包括:
所述私有通信规约使用以太网通信,采用TCP/IP方式;
所述私有通信规约采用平衡式规约,无主从关系,当发送帧在规定时间内未接收到应答时,判为超时错误,心跳报文由所述服务间通信API发起,所述监视中心服务器应答;
当需要用两个或两个以上字节表示的信息字,所有信息字按低字节在前高字节在后。
作为本发明优选的实施方式,在利用私有通信规约进行通信时,还包括:
单帧报文长度小于等于2048字节;
报文头包括:同步头、版本号、数据块长度、数据块类别、数据块内容以及数据校验;
其中,所述同步头为固定字段;所述版本号为规约版本号;所述数据块长度为从数据块类别开始到数据块内容结尾;所述数据块类别表示数据块的类型识别码;所述数据块内容为数据正文部分;所述数据校验为数据块长度→数据块结束的校验和,低字节在前高字节在后。
作为本发明优选的实施方式,在利用私有通信规约进行通信时,还包括:
所述私有通信规约的报文解析由状态机制与完全匹配并行使用;
其中,在使用状态机制与完全匹配并行使用时,包括:
使用state字段来记录当前解析到规约格式在哪一环节;
若不合规,则从头进行解析,并将所述state字段重置为0;
若规定时间内没有合格帧,也将所述state字段重置为0;
若一个帧头满足所述同步头和所述版本号,则按完整帧直接套帧结构进行处理;
解析出数据块类别及数据块内容后,直接调用回调函数进行处理;
所述环节包括:所述同步头、所述版本号、所述数据块长度、所述数据块类别、所述数据块内容以及所述数据校验;所述回调函数由创建所述私有通信规约时传入。
一种边缘网关上服务间通信系统,包括:
服务间通信API,由守护服务、监视服务、规约驱动器、控制调度器、抓取存储器、转发器、管理以及配置后端封装而成,用于从数据有关服务接收大规模的来自设备的遥测数据,并确定如何处理和存储所述遥测数据,以及用于分析所述遥测数据为用户提供见解、控制设备状态并监视设备活动、接收IOT平台命令进行本地操作以及管理设备上安装的固件;
数据有关服务,均配备所述服务间通信API,并分别通过所述服务间通信API与监视中心服务器交互消息、命令、健康心跳以及服务自身的进程运行时状态;
监视中心服务器,与所述服务间通信API使用TCP连接;
其中,所述数据有关服务包括:不同数据服务、不同通信服务、存储服务以及计算服务;所述监视中心服务器与所述服务间通信API利用TCP协议与私有通信规约相结合进行通信;所述监视中心服务器是TCP的服务器端,所述服务间通信API是TCP的客户端。
相比现有技术,本发明的有益效果在于:
(1)本发明提出了一种创新的服务间通信方法,采用TCP协议和私有通信规约的组合,旨在降低通信开销、减少延迟、支持私有协议,提高通信的稳定性,并且保证实时性和具备隐私保护;这一解决方案充分满足边缘计算环境的通信需求,为边缘计算的成功应用提供了新的途径;
(2)轻量:TCP协议与私有通信规约的组合,轻量部署、无依赖;
(3)解耦:业务代码解耦、解决微服务难于管理和难于跨语言调用的问题;
(4)跨平台:可以跨程序语言、软件或硬件设备,在多种操作系统或不同硬件架构的电脑上运作;
(5)占资源少:TCP协议使用异步方式,私有通信规约采用易解释,快速匹配,占CPU与内存资源少;
(6)实时性和效率:本发明具备出色的实时性和通信效率,使其特别适用于边缘计算和物联网应用;
(7)通信稳定性:本发明提供了一种在不稳定网络环境下提高通信稳定性的方法,通过处理数据包丢失和错误来确保数据的完整性;
(8)广泛应用领域:本发明具有广泛的应用领域,可以用于物联网、实时传感器数据处理、智能边缘设备等多个领域。
下面结合附图和具体实施方式对本发明作进一步详细说明。
附图说明
图1是本发明所提供的边缘网关上服务间通信方法的步骤图;
图2是本实施例所提供的服务间通信API与监视中心服务器的交互示意图;
图3是本实施例所提供的服务间通信API与监视中心服务器的TCP通信过程图。
附图标号说明:1、服务间通信API;2、监视中心服务器;3、IEC104数据服务;4、OPC数据服务;5、MQTT数据服务;6、Modbus通信服务;7、IEC101通信服务;8、CDT通信服务;9、IEC103通信服务;10、DNP通信服务;11、历史存储服务;12、实时计算服务。
具体实施方式
本发明所提供的边缘网关上服务间通信方法,如图1所示,包括以下步骤:
步骤S1:将守护服务、规约驱动器、控制调度器、抓取存储器、转发器、管理以及配置后端封装为服务间通信API 1;
步骤S2:为数据有关服务配备服务间通信API 1,并分别通过服务间通信API 1与监视中心服务器2交互消息、命令、健康心跳以及服务自身的进程运行时状态;
步骤S3:通过服务间通信API 1从数据有关服务接收大规模的来自设备的遥测数据,并利用服务间通信API 1确定如何处理和存储遥测数据;
步骤S4:通过服务间通信API 1分析遥测数据为用户提供见解、控制设备状态并监视设备活动、接收IOT平台命令进行本地操作以及管理设备上安装的固件;
其中,数据有关服务包括:不同数据服务、不同通信服务、存储服务以及计算服务;监视中心服务器2与服务间通信API 1使用TCP连接,并利用TCP协议与私有通信规约相结合进行通信;监视中心服务器2是TCP的服务器端,服务间通信API 1是TCP的客户端。
进一步地,在利用TCP协议进行通信时,包括:
建立TCP通信,由监视中心服务器2bind固定端口后,服务间通信API 1发起握手,监视中心服务器2回应握手确认连接;
服务间通信API 1定时发送健康心跳,监视中心服务器2接收健康心跳并标注;
服务间通信API 1发送功能方式及对象化数据,监视中心服务器2接收后发送到客户列表目的地,并将客户目的地返回服务间通信API 1。
更进一步地,健康心跳包括:健康指数;功能方式及对象化数据包括:程序发布、点表改变通知;
其中,健康心跳的JSON包括:ProgramId:程序ID、PId:进程ID、Healthy:健康状态、Res1:第一预留字段、Res2:第二预留字段、Res3:第三预留字段、 Res4:第四预留字段;
功能方式及对象化数据的JSON包括:code:操作命令、operator:操作者、objectType:对象类型、objectId:对象ID、 targetType:目标类型、targetId:目标ID、param:参数、result:结果、 res1:第一预留字段、res2:第二预留字段、res3:第三预留字段。
在上述步骤S3中,在从数据有关服务接收大规模的来自设备的遥测数据时,包括:
规约驱动器包括多个规约驱动单元,规约驱动单元加载,并开一个主业务线程定时采集遥测数据,接收通道报文后作遥测数据处理;
订阅MQTT主题及内容转为规约通信特征发出,实现设备控制;
其中,一个规约驱动单元包含一个规约通道、一个点表;点表列有:设备测点基础信息、规约通信特征;规约通信特征包括:Modbus规约的数据区首地址与区内地址;规约驱动单元加载包括:规约通道加载与连接、点表加载与按规约通信特征归档。
在利用服务间通信API 1确定如何处理和存储遥测数据时,包括:
采用MQTT-Broker作为消息中心处理大规模遥测数据;
从MQTT-Broker订阅主题后,直接转为行数据,并写入到时序数据库;
其中,主题内容为:{"u": 123456, "d": 789012, "i": 345678, "v": 45.67, "t": 1635531101000}。
在上述步骤S3中,在利用服务间通信API 1确定如何处理和存储遥测数据时,包括:
通过规约驱动器根据点表定义的数据区首地址,以一问一答形式来读取遥测数据;
接收到遥测数据后,根据点表定义的区内地址与数据类型乘以采集系数,得出值后,直接以订阅主题发送到MQTT-Broker上。
在上述步骤S4中,在通过服务间通信API 1控制设备状态时,包括:
通过控制调度器采用Http-Server服务,接收SAAS指令后,根据通道与设备关系表,分析出边缘网关的规约通道ID,并以订阅主题发送到MQTT-Broker上;
通过规约驱动器订阅自身规约通道ID主题,并在接收到遥测数据后,使用规约通信特征发送到对端设备上;
其中,规约通道包括:TCP的客户端方式、TCP的服务器端方式;
TCP的客户端方式,包括:TcpClient、HttpClient、UdpClient、MQTT以及Serial;
TCP的服务端方式,包括:TcpServer、HttpServer、UdpServer、Http3Server;
TcpClient、HttpClient、UdpClient的对应配置项,包括:远程IP、远程端口;
MQTT的对应配置项,包括:远程IP、远程端口、SSL和TLS、客户端Id、登录账户、登录密码;
Serial的对应配置项,包括:串口名、波特率、校验位、停止位、数据位、数据流控制;
在通过服务间通信API 1监视设备活动时,包括:
通过规约驱动器采集到遥测数据并推向MQTT-Broker时,记录一个设备采集心跳时间;
在通过服务间通信API 1管理设备上安装的固件时,包括:
采用Docker方式部署,在升级边缘网关相关业务软件后,达到容器化部署目的。
进一步地,在利用私有通信规约进行通信时,包括:
私有通信规约使用以太网通信,采用TCP/IP方式;
私有通信规约采用平衡式规约,无主从关系,当发送帧在规定时间内未接收到应答时,判为超时错误,心跳报文由服务间通信API 1发起,监视中心服务器2应答;
当需要用两个或两个以上字节表示的信息字,所有信息字按低字节在前高字节在后。
更进一步地,在利用私有通信规约进行通信时,还包括:
单帧报文长度小于等于2048字节;
报文头包括:同步头、版本号、数据块长度、数据块类别、数据块内容以及数据校验;
其中,同步头为固定字段;版本号为规约版本号;数据块长度为从数据块类别开始到数据块内容结尾;数据块类别表示数据块的类型识别码;数据块内容为数据正文部分;数据校验为数据块长度→数据块结束的校验和,低字节在前高字节在后。
更进一步地,在利用私有通信规约进行通信时,还包括:
私有通信规约的报文解析由状态机制与完全匹配并行使用;
其中,在使用状态机制与完全匹配并行使用时,包括:
使用state字段来记录当前解析到规约格式在哪一环节;
若不合规,则从头进行解析,并将state字段重置为0;
若规定时间内没有合格帧,也将state字段重置为0;
若一个帧头满足同步头和版本号,则按完整帧直接套帧结构进行处理;
解析出数据块类别及数据块内容后,直接调用回调函数进行处理;
环节包括:同步头、版本号、数据块长度、数据块类别、数据块内容以及数据校验;回调函数由创建私有通信规约时传入。
本发明所提供的边缘网关上服务间通信系统,包括:服务间通信API 1、若干个服务以及监视中心服务器2;
服务间通信API 1,由守护服务、监视服务、规约驱动器、控制调度器、抓取存储器、转发器、管理以及配置后端封装而成,用于从数据有关服务接收大规模的来自设备的遥测数据,并确定如何处理和存储遥测数据,以及用于分析遥测数据为用户提供见解、控制设备状态并监视设备活动、接收IOT平台命令进行本地操作以及管理设备上安装的固件。
数据有关服务,均配备服务间通信API 1,并分别通过服务间通信API 1与监视中心服务器2交互消息、命令、健康心跳以及服务自身的进程运行时状态。
监视中心服务器2,与服务间通信API 1使用TCP连接。
其中,数据有关服务包括不同数据服务、不同通信服务、存储服务以及计算服务;监视中心服务器2与服务间通信API 1利用TCP协议与私有通信规约相结合进行通信;监视中心服务器2是TCP的服务器端,服务间通信API 1是TCP的客户端。
以下的实施例是对本发明的进一步说明,但本发明的范围并不限制于此。
本实施例通过进行需求分析,明确边缘网关系统功能,并进行功能拆分,将边缘网关系统拆分成独立的服务,得到守护服务、监视服务、规约驱动器、控制调度器、抓取存储器、转发器、管理及配置后端。每个服务具有清晰职责,定义服务接口,确定服务之间的通信方式和数据格式。主要分:服务间通信API 1与监视中心服务器2。
各个服务之间的接口:监视中心服务器2(监视服务)是TCP的服务器端,服务间通信API 1(守护服务、规约驱动器N、控制调度器、抓取存储器、转发器、管理及配置后端)是TCP的客户端。
为数据有关服务配备服务间通信API 1,并分别通过服务间通信API 1与监视中心服务器2交互消息、命令、健康心跳以及服务自身的进程运行时状态,如图2所示。
数据有关服务包括:不同数据服务、不同通信服务、存储服务以及计算服务。
不同数据服务,包括:IEC104数据服务3、OPC数据服务4、MQTT数据服务5。
不同通信服务,包括:Modbus通信服务6、IEC101通信服务7、CDT通信服务8、IEC103通信服务9、DNP通信服务10。
存储服务,包括:历史存储服务11。
计算服务,包括:实时计算服务12。
监视中心服务器2与服务间通信API 1使用TCP连接,步骤如下:
建立TCP通信,由TCP的服务器端bind固定端口后,TCP的客户端发起握手,TCP的服务器端回应握手确认连接;
TCP的客户端定时发送健康心跳,TCP的服务器端接收健康心跳并标注;
TCP的客户端发送功能方式及对象化数据,TCP的服务器端接收后发送到客户列表目的地,并将客户目的地返回TCP的客户端。
监视中心服务器2与服务间通信API 1的TCP通信过程,如图3所示。
服务之间传递的消息包括:健康心跳、功能方式及对象化数据。
数据结构:健康心跳包括:健康指数;功能方式及对象化数据包括:程序发布、点表改变通知。
健康心跳的JSON:{"ProgramId": 123, "PId": 456, "Healthy": 1, "Res1":0, "Res2": 0, "Res3": 0, "Res4": 0}。
注释:ProgramId: 程序ID;PId: 进程ID;Healthy: 健康状态;Res1: 第一预留字段;Res2: 第二预留字段;Res3: 第三预留字段; Res4: 第四预留字段。
功能方式及对象化数据的JSON:{"code": 123, "operator": 456, "objectType": "example", "objectId": "789", "targetType": "target", "targetId": "1011", "param": "example_param", "result": "example_result", "res1": "1001", "res2": "2002", "res3": "3003"}。
注释:code: 操作命令;operator: 操作者;objectType: 对象类型;objectId:对象ID;targetType:目标类型;targetId:目标ID;param: 参数;result: 结果;res1: 第一预留字段;res2: 第二预留字段;res3: 第三预留字段。
通过服务间通信API 1分析遥测数据为用户提供见解,不需要分析的遥测数据直接转走。
接收大规模的来自设备的遥测数据:采用MQTT-Broker作为消息中心处理大规模遥测数据。
确定储存和处理:
确定储存和处理:从MQTT-Broker订阅主题($oc/rtn/#)内容为({"u": 123456, "d": 789012, "i": 345678, "v": 45.67, "t": 1635531101000},然后直接转为行数据(%d v=%.4f %d),例如(345678 v=45.67 1635531101000)写入到时序数据库。
规约驱动器:
一个规约驱动器包括多个规约驱动单元。一个规约驱动单元包含一个规约通道、一个点表。点表列有:设备测点基础信息、规约通信特征。规约通信特征如:Modbus规约的数据区首地址与区内地址。规约驱动单元加载,包括:规约通道加载与连接、点表加载与按规约通信特征归档,然后开一个主业务线程定时采集遥测数据,接收规约通道报文后作遥测数据处理,控制设备(订阅MQTT主题及内容转为规约通信特征发出)。
数据处理方式:
规约驱动器,如Modbus规约,根据点表定义的数据区首地址来读取遥测数据,一问一答形式,接收到遥测数据后,根据点表定义的区内地址与数据类型(整形或浮点)乘以采集系数,得出值后,直接以订阅主题($oc/rtn/通道ID)内容为({"u": 123456, "d":789012, "i": 345678, "v": 45.67, "t": 1635531101000}发到MQTT-Broker上。
控制设备状态:
控制调度器采用Http-Server服务,接收SAAS指令后,根据通道与设备关系表,分析出边缘网关的规约通道ID,以MQTT主题($oc/ctn/通道ID)内容为({"u": 123456, "d":789012, "i": 345678, "v": 45.67, "t": 1635531101000}发到MQTT-Broker上。规约驱动器订阅自身规约通道ID主题($oc/rtn/通道ID)。收到数据需要遥控后,使用规约通信特征发到对端设备上。
接收遥控数据结构:
{"controlType": 1, "controlReason": 2, "controlRemark": "", "controlSource": "", "taskSession": 123456, "taskTime": 1635531101000, "tenantId": 789, "deviceCode": "Device001", "attrCode": "ds", "value": 1, "params": "Base64编码的JSON参数", "retryTimes": 3, "retryTimeout": 60000}。
注释:controlType: 遥控类型(1:直接控制;2:保留), controlReason: 遥控原因, controlRemark: 遥控备注(原文保存到日志中), controlSource: 遥控操作源(原文保存到日志中), taskSession: 任务session用来区分每个遥控, taskTime: 任务下达时间 ( ms ),毫秒数, tenantId: 租户ID, deviceCode: 遥控的目标设备码, attrCode:遥控的目标设备测点码, value: 遥控的目标值(按公共属性库定义来), params: 遥控附带参数(json的base64,由controlType、controlReason联合决定这个数据结构),retryTimes: 遥控重试次数, retryTimeout: 遥控重试超。
规约通道包括客户端方式(TcpClient、HttpClient、UdpClient、MQTT、Serial(串口))、服务端方式(TcpServer、HttpServer、UdpServer、Http3Server)。
(TcpClient、HttpClient、UdpClient)连接参数的对应配置项:远程IP、远程端口。
MQTT的对应配置项:远程IP、远程端口、SSL和TLS、客户端Id、登录账户、登录密码。
Serial的对应配置项:串口名、波特率、校验位、停止位、数据位、数据流控制。
数据存储方式:采用时序数据库来存储数据,如InfluxDB2时序数据库。
监视设备活动:系统提供设备采集心跳时间,规约驱动器采集到数据并推向MQTT-Broker时,记录一个设备采集心跳时间。
接收IOT平台命令进行本地操作:如上文控制设备状态过程所述。
管理设备上安装的固件:边缘网关系统采用Docker方式部署,通过升级边缘网关系统相关业务软件后,达到容器化部署目的。
本实施例实现智能网关需求的程序设计的问题,包括:如何把网关系统分成若干个服务、决定各个服务之间的接口、服务之间传递的消息,以及数据结构、服务功能的设计等。
服务功能:
(1)接收大规模的来自设备的遥测数据,并确定如何处理和存储该数据;
(2)通过分析遥测数据为用户提供见解,不管是实时的还是事后的;
(3)控制设备状态并监视设备活动;
(4)接收IOT平台命令进行本地操作(包括读设备数据、事件判定、告警推送);
(5)管理设备上安装的固件。
由于服务种类多、功能复杂,必须提出一个能监控各服务、连接各服务的方法及系统,进而才能守护各服务、促进服务间交互、均衡任务等。
在此背景下,本实施例提供一种服务间通信、提取公共接口,完成监控、中心与服务通信、服务间信息交互的方法及系统。
在本实施例中,私有通信规约为自定义规约,使用以太网通信,采用TCP/IP方式。
私有通信规约采用平衡式规约,无主从关系,当发送帧在规定时间内(应可设定)未接收到应答时(默认超时时间3秒),判为超时错误。心跳报文由服务间通信API 1发起,监视中心服务器2应答。
当需要用两个或两个以上字节表示的信息字,所有信息字按低字节在前高字节在后。
单帧报文长度小于等于2048字节。
报文解析技术:
规约的报文解析由状态机制与完全匹配并行使用。
状态机制方式:是使用state字段来记录当前解析到规约格式在哪一个环节(同步头、版本号、数据块长度、数据块类别、数据块内容、数据校验),如果不合规就从头来(重置state为0),如果3秒内没有合格帧也重置state为0。如果一个帧头满足(同步头、版本号)就按完整帧直接套帧结构来处理。
解析出数据块类别及数据块内容后,直接调用回调函数来处理。回调函数由创建私有通信规约时传入。
交互格式:
为了使交互双方能方便快速识别,使用目前流行格式(JSON),通信发送数据结构时使用编程语言提供的JSON序列化库或函数,将数据结构转换为JSON格式的字符串,再把这字符串的十六进制发出去。接收JSON数据,使用编程语言的JSON解析库将其转换为数据结构,然后访问和操作数据。
在将数据结构转换为JSON格式的字符串进行发送时,需要把JSON数据流化,接收JSON数据时需要反流化。
消息、命令:
针对服务间交互所需要,交互内容分:消息(只管发出,不需要回答);命令(发出后,需要对方回答)。
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
Claims (10)
1.一种边缘网关上服务间通信方法,其特征在于,包括以下步骤:
将守护服务、规约驱动器、控制调度器、抓取存储器、转发器、管理以及配置后端封装为服务间通信API;
为数据有关服务配备所述服务间通信API,并分别通过所述服务间通信API与监视中心服务器交互消息、命令、健康心跳以及服务自身的进程运行时状态;
通过所述服务间通信API从所述数据有关服务接收大规模的来自设备的遥测数据,并利用所述服务间通信API确定如何处理和存储所述遥测数据;
通过所述服务间通信API分析所述遥测数据为用户提供见解、控制设备状态并监视设备活动、接收IOT平台命令进行本地操作以及管理设备上安装的固件;
其中,所述数据有关服务包括:不同数据服务、不同通信服务、存储服务以及计算服务;所述监视中心服务器与所述服务间通信API使用TCP连接,并利用TCP协议与私有通信规约相结合进行通信;所述监视中心服务器是TCP的服务器端,所述服务间通信API是TCP的客户端。
2.根据权利要求1所述的边缘网关上服务间通信方法,其特征在于,在利用TCP协议进行通信时,包括:
建立TCP通信,由所述监视中心服务器bind固定端口后,所述服务间通信API发起握手,所述监视中心服务器回应握手确认连接;
所述服务间通信API定时发送健康心跳,所述监视中心服务器接收所述健康心跳并标注;
所述服务间通信API发送功能方式及对象化数据,所述监视中心服务器接收后发送到客户列表目的地,并将客户目的地返回所述服务间通信API。
3.根据权利要求2所述的边缘网关上服务间通信方法,其特征在于,所述健康心跳包括:健康指数;所述功能方式及对象化数据包括:程序发布、点表改变通知;
其中,所述健康心跳的JSON包括:ProgramId:程序ID、PId:进程ID、Healthy:健康状态、Res1:第一预留字段、Res2:第二预留字段、Res3:第三预留字段、 Res4:第四预留字段;
所述功能方式及对象化数据的JSON包括:code:操作命令、operator:操作者、objectType:对象类型、objectId:对象ID、 targetType:目标类型、targetId:目标ID、param:参数、result:结果、 res1:第一预留字段、res2:第二预留字段、res3:第三预留字段。
4.根据权利要求1所述的边缘网关上服务间通信方法,其特征在于,在从所述数据有关服务接收大规模的来自设备的遥测数据时,包括:
所述规约驱动器包括多个规约驱动单元,所述规约驱动单元加载,并开一个主业务线程定时采集遥测数据,接收通道报文后作遥测数据处理;
订阅MQTT主题及内容转为规约通信特征发出,实现设备控制;
其中,一个规约驱动单元包含一个规约通道、一个点表;点表列有:设备测点基础信息、规约通信特征;所述规约通信特征包括:Modbus规约的数据区首地址与区内地址;所述规约驱动单元加载包括:所述规约通道加载与连接、所述点表加载与按所述规约通信特征归档;
在利用所述服务间通信API确定如何处理和存储所述遥测数据时,包括:
采用MQTT-Broker作为消息中心处理大规模遥测数据;
从所述MQTT-Broker订阅主题后,直接转为行数据,并写入到时序数据库;
其中,所述主题内容为:{"u": 123456, "d": 789012, "i": 345678, "v": 45.67, "t": 1635531101000}。
5.根据权利要求4所述的边缘网关上服务间通信方法,其特征在于,在利用所述服务间通信API确定如何处理和存储所述遥测数据时,包括:
通过所述规约驱动器根据点表定义的数据区首地址,以一问一答形式来读取遥测数据;
接收到所述遥测数据后,根据点表定义的区内地址与数据类型乘以采集系数,得出值后,直接以订阅主题发送到所述MQTT-Broker上。
6.根据权利要求5所述的边缘网关上服务间通信方法,其特征在于,在通过所述服务间通信API控制设备状态时,包括:
通过所述控制调度器采用Http-Server服务,接收SAAS指令后,根据通道与设备关系表,分析出边缘网关的规约通道ID,并以订阅主题发送到所述MQTT-Broker上;
通过所述规约驱动器订阅自身规约通道ID主题,并在接收到遥测数据后,使用所述规约通信特征发送到对端设备上;
其中,所述规约通道包括:TCP的客户端方式、TCP的服务器端方式;
所述TCP的客户端方式,包括:TcpClient、HttpClient、UdpClient、MQTT以及Serial;
所述TCP的服务端方式,包括:TcpServer、HttpServer、UdpServer、Http3Server;
TcpClient、HttpClient、UdpClient的对应配置项,包括:远程IP、远程端口;
MQTT的对应配置项,包括:远程IP、远程端口、SSL和TLS、客户端Id、登录账户、登录密码;
Serial的对应配置项,包括:串口名、波特率、校验位、停止位、数据位、数据流控制;
在通过所述服务间通信API监视设备活动时,包括:
通过所述规约驱动器采集到遥测数据并推向所述MQTT-Broker时,记录一个设备采集心跳时间;
在通过所述服务间通信API管理设备上安装的固件时,包括:
采用Docker方式部署,在升级边缘网关相关业务软件后,达到容器化部署目的。
7.根据权利要求1所述的边缘网关上服务间通信方法,其特征在于,在利用私有通信规约进行通信时,包括:
所述私有通信规约使用以太网通信,采用TCP/IP方式;
所述私有通信规约采用平衡式规约,无主从关系,当发送帧在规定时间内未接收到应答时,判为超时错误,心跳报文由所述服务间通信API发起,所述监视中心服务器应答;
当需要用两个或两个以上字节表示的信息字,所有信息字按低字节在前高字节在后。
8.根据权利要求7所述的边缘网关上服务间通信方法,其特征在于,在利用私有通信规约进行通信时,还包括:
单帧报文长度小于等于2048字节;
报文头包括:同步头、版本号、数据块长度、数据块类别、数据块内容以及数据校验;
其中,所述同步头为固定字段;所述版本号为规约版本号;所述数据块长度为从数据块类别开始到数据块内容结尾;所述数据块类别表示数据块的类型识别码;所述数据块内容为数据正文部分;所述数据校验为数据块长度→数据块结束的校验和,低字节在前高字节在后。
9.根据权利要求8所述的边缘网关上服务间通信方法,其特征在于,在利用私有通信规约进行通信时,还包括:
所述私有通信规约的报文解析由状态机制与完全匹配并行使用;
其中,在使用状态机制与完全匹配并行使用时,包括:
使用state字段来记录当前解析到规约格式在哪一环节;
若不合规,则从头进行解析,并将所述state字段重置为0;
若规定时间内没有合格帧,也将所述state字段重置为0;
若一个帧头满足所述同步头和所述版本号,则按完整帧直接套帧结构进行处理;
解析出数据块类别及数据块内容后,直接调用回调函数进行处理;
所述环节包括:所述同步头、所述版本号、所述数据块长度、所述数据块类别、所述数据块内容以及所述数据校验;所述回调函数由创建所述私有通信规约时传入。
10.一种边缘网关上服务间通信系统,其特征在于,包括:
服务间通信API,由守护服务、监视服务、规约驱动器、控制调度器、抓取存储器、转发器、管理以及配置后端封装而成,用于从数据有关服务接收大规模的来自设备的遥测数据,并确定如何处理和存储所述遥测数据,以及用于分析所述遥测数据为用户提供见解、控制设备状态并监视设备活动、接收IOT平台命令进行本地操作以及管理设备上安装的固件;
数据有关服务,均配备所述服务间通信API,并分别通过所述服务间通信API与监视中心服务器交互消息、命令、健康心跳以及服务自身的进程运行时状态;
监视中心服务器,与所述服务间通信API使用TCP连接;
其中,所述数据有关服务包括:不同数据服务、不同通信服务、存储服务以及计算服务;所述监视中心服务器与所述服务间通信API利用TCP协议与私有通信规约相结合进行通信;所述监视中心服务器是TCP的服务器端,所述服务间通信API是TCP的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410089105.2A CN117615043B (zh) | 2024-01-23 | 2024-01-23 | 一种边缘网关上服务间通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410089105.2A CN117615043B (zh) | 2024-01-23 | 2024-01-23 | 一种边缘网关上服务间通信方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117615043A CN117615043A (zh) | 2024-02-27 |
CN117615043B true CN117615043B (zh) | 2024-03-26 |
Family
ID=89952008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410089105.2A Active CN117615043B (zh) | 2024-01-23 | 2024-01-23 | 一种边缘网关上服务间通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117615043B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118041845A (zh) * | 2024-03-13 | 2024-05-14 | 武汉凌特信息技术有限公司 | 一种网络化实验箱实时双向交互实验支持系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113630372A (zh) * | 2020-05-09 | 2021-11-09 | 中移物联网有限公司 | 一种边缘计算的云边协同系统 |
CN117201635A (zh) * | 2023-08-24 | 2023-12-08 | 北京四方继保自动化股份有限公司 | 数据处理系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230076228A1 (en) * | 2021-08-26 | 2023-03-09 | Electronics And Telecommunications Research Institute | Method of enablement of service api exposed by eas and devices for performing the same |
-
2024
- 2024-01-23 CN CN202410089105.2A patent/CN117615043B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113630372A (zh) * | 2020-05-09 | 2021-11-09 | 中移物联网有限公司 | 一种边缘计算的云边协同系统 |
CN117201635A (zh) * | 2023-08-24 | 2023-12-08 | 北京四方继保自动化股份有限公司 | 数据处理系统及方法 |
Non-Patent Citations (2)
Title |
---|
基于消息队列遥测传输协议的智能家居消息中间件设计;李洋;;计算机应用;20180630(第S1期);全文 * |
边缘计算在物联网领域的研究与分析;黄泽龙;;广东通信技术;20200715(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117615043A (zh) | 2024-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8024423B2 (en) | Maintaining connections between mobile devices and servers | |
CN113630372A (zh) | 一种边缘计算的云边协同系统 | |
CN117615043B (zh) | 一种边缘网关上服务间通信方法及系统 | |
CN110300050A (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
US8032609B2 (en) | Dynamic endpoint aggregator for web services | |
US20020046268A1 (en) | Method of performing a network management transaction using a web-capable agent | |
CN108769017B (zh) | 一种数据通信方法及装置 | |
CN105978860B (zh) | 一种电力系统软件接口适配器的实现方法 | |
US9172765B2 (en) | Polling-based secure network message notification system and method with performance enhancing features | |
CN112711635B (zh) | 一种分布式物联设备跨区域数据一致性的方法和服务集群 | |
CN109327493A (zh) | 一种基于云的远程医疗监控系统及监控方法 | |
US10834033B2 (en) | Method and system for transferring messages between messaging systems | |
CN112202872A (zh) | 一种数据转发方法、api网关及消息服务系统 | |
CN112783672B (zh) | 一种远程过程调用处理方法及系统 | |
CN110381058A (zh) | 基于全双工通信协议WebSocket的请求传输方法及装置 | |
WO2024125106A1 (zh) | 数据传输方法、装置、设备及存储介质 | |
CN115314542A (zh) | 基于Socket通信协议的链路追踪方法及系统 | |
KR101367265B1 (ko) | 푸시 서버, 푸시 서비스 제공시스템 및 그 방법 | |
CN108512694A (zh) | 一种服务器日志分析的方法及装置 | |
KR20090089535A (ko) | 유비쿼터스 홈 헬스케어 서비스를 위한 통신 방법 | |
KR20220001605A (ko) | 대용량 네트워크 모니터링을 위한 실시간 패킷 데이터 수집 방법 및 장치 | |
EP1865424A1 (en) | Dynamic aggregation of web services | |
CN100375464C (zh) | 网络互连时各终端的数据通信方法 | |
JP5035286B2 (ja) | バス型メッセージ交換システム、バス型メッセージ交換方法及びプログラム | |
CN117354400B (zh) | 一种用于北斗短报文的采集解析服务系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |