CN113141544A - 一种计量自动化系统的通信方法、系统及存储介质 - Google Patents
一种计量自动化系统的通信方法、系统及存储介质 Download PDFInfo
- Publication number
- CN113141544A CN113141544A CN202110385996.2A CN202110385996A CN113141544A CN 113141544 A CN113141544 A CN 113141544A CN 202110385996 A CN202110385996 A CN 202110385996A CN 113141544 A CN113141544 A CN 113141544A
- Authority
- CN
- China
- Prior art keywords
- message
- receiving end
- subscription
- topic
- automation system
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q9/00—Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering 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/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2209/00—Arrangements in telecontrol or telemetry systems
- H04Q2209/60—Arrangements in telecontrol or telemetry systems for transmitting utility meters data, i.e. transmission of data from the reader of the utility meter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2209/00—Arrangements in telecontrol or telemetry systems
- H04Q2209/70—Arrangements in the main station, i.e. central controller
- H04Q2209/75—Arrangements in the main station, i.e. central controller by polling or interrogating the sub-stations
Abstract
本发明公开了一种计量自动化系统的通信方法、系统及存储介质,包括:根据发送端发送的业务数据报文查询接收端的地址和服务质量等级,所述发送端和所述接收端包括主站或主集中器;根据所述地址和所述服务质量等级将所述业务数据报文发送至所述接收端,通过第三方代理服务器来完成主站和主集中器之间的双向对等通信,解决现有计量自动化系统中信息采集通信方法所采取的“一问一答,逐个轮询”通信模式中非对等通信所导致的通信效率低下问题,使采用新型高效通信方法后的计量自动化系统能够高效应对井喷数据的挑战,以满足不同的业务需求。
Description
技术领域
本发明涉及用电信息采集技术领域,尤其涉及一种计量自动化系统的通信方法、系统及存储介质。
背景技术
目前电力系统中计量自动化采集系统采用主站-主集中器-电能表三层系统架构,电力信息经由电能表、主集中器、主集中器等层层汇聚到主站,同时来自主站的控制消息以相反方向层层下发。
当前架构为主从结构,其通信方法采用“一问一答,逐个轮询”的机制,即由主站发起询问,从站一一应答,这种方式虽然简单实用,但由于其不支持从站主动上报数据,导致传输效率低下,影响数据传输可靠性,且无法应对“井喷”数据的挑战。以上通信及设备问题已限制采集系统对低电压监测、停电预警等业务应用,也成为未来综合能源采集需求的技术瓶颈,因此亟需一种支持按需双向实时通信方式以取代现有的三层主从问答模式,支撑未来各类数据采集及业务接入需求。
发明内容
本发明目的在于,提供一种计量自动化系统的通信方法,以解决现有计量自动化系统中信息采集通信方法采取的“一问一答,逐个轮询”通信模式中非对等通信所导致的通信效率低下问题。
为实现上述目的,本发明实施例提供一种计量自动化系统的通信方法,包括:
根据发送端发送的业务数据报文查询接收端的地址和服务质量等级,所述发送端和所述接收端包括主站或主集中器;
根据所述地址和所述服务质量等级将所述业务数据报文发送至所述接收端。
优选地,所述根据发送端发送的业务数据报文查询接收端的地址和服务质量等级之前,包括,确认所述发送端/所述接收端发送的连接请求报文CONNECT后,发送确认连接报文CONNACK至所述发送端/所述接收端,以使得所述发送端/所述接收端和代理服务器建立连接。
优选地,所述连接请求报文CONNECT包括协议名称、协议版本、所述发送端/所述接收端的标识符和连接保持时间。
优选地,所述发送端/所述接收端和所述代理服务器建立连接后,包括,根据所述连接保持时间对所述发送端/所述接收端进行连接计时,当计时时长小于所述连接保持时间时,若接收到所述发送端/所述接收端通过心跳机制发送的心跳请求报文,则重新进行连接计时;当所述计时时长大于所述连接保持时间,则释放与所述发送端/所述接收端的连接。
优选地,所述根据发送端发送的业务数据报文查询接收端的地址和服务质量等级之前,还包括,确认所述发送端/所述接收端发送的订阅请求报文SUBSCRIBE后,对所述订阅请求报文SUBSCRIBE处理后则返回订阅确认报文SUBACK,所述订阅请求报文SUBSCRIBE包括主题信息Topic和服务质量等级信息QoS。
优选地,所述对所述订阅请求报文SUBSCRIBE处理后则返回订阅确认报文SUBACK,包括:
解析所述订阅请求报文SUBSCRIBE的所述主题信息Topic和所述服务质量等级信息QoS;
若代理服务器的订阅关系库包含所述主题信息Topic,则判断代理服务器的订阅关系库中是否包括所述主题信息Topic与当前所述发送端/所述接收端的关联信息,若有,则根据所述订阅请求报文SUBSCRIBE中所述服务质量等级信息QoS更新原有的关联信息,若没有,则在所述主题信息Topic中增加所述关联信息;
若所述代理服务器的订阅关系库不包含所述主题信息Topic,则在所述订阅关系库中增加所述主题信息Topic,并增加当前所述发送端/所述接收端的关联信息。
优选地,还包括,根据所述发送端/所述接收端发送的取消订阅报文UNSUBSCRIBE,删除所述发送端/所述接收端的订阅信息,并返回UNSUBACK订阅取消确认报文。
优选地,还包括,接收到所述发送端/所述接收端发送的无效连接请求、无效发布请求或无效订阅请求,则直接关闭与所述发送端/所述接收端的连接。
本发明实施例还提供一种计量自动化系统的通信系统,应用于上述的计量自动化系统的通信方法,包括:
代理服务器查询模块,用于根据发送端发送的业务数据报文查询接收端的地址和服务质量等级,所述发送端和所述接收端包括主站或主集中器;
代理服务器发送模块,用于根据所述地址和所述服务质量等级将所述业务数据报文发送至所述接收端。
本发明实施例还提供一种终端设备,包括一个或多个处理器和存储器,存储器与所述处理器耦接,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任一实施例所述的计量自动化系统的通信方法。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一实施例所述的计量自动化系统的通信方法。
本发明实施例的计量自动化系统的通信方法,解决了现有计量自动化系统中信息采集通信方法所采取的“一问一答,逐个轮询”通信模式中非对等通信所导致的通信效率低下问题,使采用新型高效通信方法后的计量自动化系统能够高效应对井喷数据的挑战,以满足不同的业务需求。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明某一实施例提供的计量自动化系统的通信方法的流程示意图;
图2是本发明某一实施例提供的计量自动化系统的通信方法的流程示意图;
图3是本发明某一实施例提供的计量自动化系统的通信方法的消息发布的流程示意图;
图4是本发明某一实施例提供的计量自动化系统的通信方法的读取业务对应订阅的结构示意图;
图5是本发明某一实施例提供的计量自动化系统的通信方法的分组订阅的结构示意图;
图6是本发明某一实施例提供的计量自动化系统的通信方法的读取业务时的订阅的结构示意图;
图7是本发明某一实施例提供的计量自动化系统的通信方法的PUBLISH报文的格式示意图;
图8是本发明某一实施例提供的计量自动化系统的通信方法的QoS=2的PUBLISH报文三握手的流程示意图;
图9是本发明某一实施例提供的计量自动化系统的通信方法的PUBACK报文的格式示意图;
图10是本发明某一实施例提供的计量自动化系统的通信方法的PUBREC报文的格式示意图;
图11是本发明某一实施例提供的计量自动化系统的通信方法的PUBREL报文的格式示意图;
图12是本发明某一实施例提供的计量自动化系统的通信方法的PUBCOMP报文的格式示意图;
图13是本发明某一实施例提供的计量自动化系统的通信方法的CONNECT报文的格式示意图;
图14是本发明某一实施例提供的计量自动化系统的通信方法的CONNACK报文的格式示意图;
图15是本发明某一实施例提供的计量自动化系统的通信方法的PING报文的格式示意图;
图16是本发明某一实施例提供的计量自动化系统的通信方法的PONG报文的格式示意图;
图17是本发明某一实施例提供的计量自动化系统的通信方法的SUBSCRIBE报文的格式示意图;
图18是本发明某一实施例提供的计量自动化系统的通信方法的SUBACK报文的格式示意图;
图19是本发明某一实施例提供的计量自动化系统的通信方法的转发规则存储数据的结构示意图;
图20是本发明某一实施例提供的计量自动化系统的通信方法的UNSUBSCRIBE报文的格式示意图;
图21是本发明某一实施例提供的计量自动化系统的通信方法的UNSUBACK报文的格式示意图;
图22是本发明某一实施例提供的计量自动化系统的通信方法的DISCONN报文的格式示意图;
图23是本发明某一实施例提供的终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,本发明实施例提供一种计量自动化系统的通信方法,包括:
S10、根据发送端发送的业务数据报文查询接收端的地址和服务质量等级,所述发送端和所述接收端包括主站或主集中器;
S20、根据所述地址和所述服务质量等级将所述业务数据报文发送至所述接收端。
请参阅图2,在本实施例中,通过第三方代理服务器(Broker)来完成主站和主集中器之间的双向对等通信,所采取的消息传递模式为发布订阅模式。如图3所示,主站和主集中器之间的通信规则均交由第三方代理服务器Broker进行管理,所有消息均经由第三方代理服务器Broker进行转发,因此实际的通信过程发生在主站或主集中器(以下统称为发送端或接收端,Client)与代理服务器之间,而并非传统模式下主集中器与主站之间直接进行通信。
所述主站或所述主集中器之间有消息需要传输时,则消息发送端只需要向消息接收端所订阅的主题中发布这个消息即可,具体地,消息发送端向代理服务器发送PUBLISH报文,所述PUBLISHI报文中有所发布主题的信息,代理服务器中的订阅关系库是一个哈希表结构,在接收后,找到主题键所对应的链表,即找到所有该消息的接收端,代理服务器对这个链表的各个节点进行遍历,依次取得各个链表节点保存的接收端的目的地址和需求的服务质量等级,然后代理服务器根据接收端的目的地址和需求的服务质量等级进行消息转发操作。服务质量等级的设置是为了对不同业务数据的可靠性保障进行区分,是按需交互的另一种体现,重要的信息需要更高的服务质量等级以保证其正确、完整送达,而非重要且频繁传输的信息则更看重时效性和传输效率,因而不需要很高的服务质量等级,服务质量等级包括三个服务质量(Quality of Service,QoS)等级,在进行消息发布时,可以根据业务数据的重要性和优先级选择采取的服务质量保障机制。三个QoS等级分别为:QoS=0等级,仅发送一次数据包,不管是否收到,适用于数据量大、实时性强、重要性低的业务数据;QoS=1等级,发送数据包后进行一次确认,若没有收到确认会反复发送,直到消息确认为止,适用于重要性稍高的业务数据;QoS=2等级,发送数据包后进行三握手确认,适用于重要性最高的业务数据。
下面以具体的业务为例,描述其通信过程,在计量自动化采集系统中,最主要的业务是主站从主集中器上读取电能信息等,则进行订阅的时候,主站订阅READ_MSG主题,所有主集中器订阅REQUEST主题,均设置QoS=1代表需要进行一次确认,订阅关系建立完成后的哈希表结构如图4所示。
当主站需要从主集中器上读取数据时,将读取数据请求发布到REQUEST主题,这样所有订阅了该主题的主集中器均能收到来自主站的读取数据请求,进行消息确认后,开始向主站返回电能数据;将带有电能数据的消息发布到READ_MSG通道,这样主站就能汇总得到来自所有主集中器的电能信息。实际中可以根据需要自由制定收发策略,如图5所示,使用两个主题对主站所需要读取数据的对象进行了区分,当主站需要从主集中器1~3汇总数据时,只需要将请求发布到GROUP1主题,而主集中器4和5不会收到该请求,这样完成了按需分组交互。
对于需要更频繁通信的短间隔读取任务,设置较低的QoS等级换取消息传输的实时性。
而当主集中器出现异常时需要向主站主动汇报异常的情况下需要执行异常上报业务。按照现有的通信模式,主集中器不支持主动向主站发送消息,因而只能等待主站请求时才能将异常状态反馈回主站,如此无法获知系统中实时出现的异常情况,加大了运维难度。而该通信方法打破了主站与主集中器之间的主从关系,变为两个完全对等的通信实体,双方均可根据需求向对方发送消息。为了支持异常上报业务,各主站通过所述代理服务器订阅EXCEPTION主题,如图6所示,假设主站1管理GROUP1中的所有主集中器,主站2和3管理GROUP2中的所有主集中器,因此主站1订阅了EXCEPTION_GROUP1,主站2和主站3都订阅了EXCEPTION_GROUP2,QoS均设置为最高等级,为了严格确保异常信息的准确送达。当GROUP1中的任意某个主集中器发生了异常需要上报,其向EXCEPTION_GROUP1主题发布自己的异常消息,这样由于主站1订阅了该主题,主站1就可以收到所有来自于GROUP1中的异常消息,同理主站2和主站3都能收到GROUP2中任意主集中器发布的异常消息。
请参阅图7,发布请求报文PUBLISH的固定报头的第一个字节的D3位是重发标志DUP,当DUP被设置为0时,表示客户端或所述代理服务器第一次请求发送该报文,如果DUP被设置为0,则表示这是一个早前报文请求的重发。PUBLISH报文的固定报头的第一个字节的D2~D1位是QoS等级字段,用于表示分发业务数据的服务质量等级保证,根据不同业务特点和需求,采取不同的QoS等级保证。QoS等级字段的定义如表1所示,D2和D1不能同时为1,客户端或者代理只要收到此种报文,必须进行关闭网络连接处理。
表1 QoS等级字段定义表
PUBLISH报文的固定报头的第一个字节的D0位是保留标志RETAIN,表示该报文是否需要进行存储,如果客户端发送给代理的PUBLISH报文的RETAIN被设置为1,则代理必须存储这个应用消息及其对应的主题名和QoS等级,以便能分发给未来建立主题名订阅的订阅者。当代理向客户端发送PUBLISH报文时,如果消息是作为客户端的一个新订阅的结果而发送的,则必须将RETAIN设置为1,否则设置为0。
PUBLISH报文的可变报头按顺序包含主题名字段和报文标识符字段。主题名(Topic Name)用于指明该业务数据发布到信息通道的目的地址,其必须是PUBLISH报文可变报头的第一个字段。只有当QoS等级是1或2时,报文标识符字段才能出现在可变报头中。有效载荷即为需要发布出去的应用消息,不包含有效载荷的PUBLISH报文是被允许的。
请参阅图8,PUBLISH报文的接收者必须按照以下规定发送响应:当PUBLISH报文中的QoS等级为0时,不发送响应报文;QoS等级为1时,发送PUBACK响应报文;QoS等级为2时,发送PUBREC响应报文。特别在最高消息质量等级QoS=2时,PUBLISH报文的送达需经过三握手确认。
请参阅图9,PUBACK是对应QoS等级为1的PUBLISH报文的响应报文,PUBACK报文只包含固定报头和2Byte的可变报头,不包含有效载荷,固定报头的剩余长度字段的值恒等于2。可变报头为报文标识符,和等待被确认的PUBLISH报文的报文标识符保持一致。
请参阅图10,PUBREC报文是对应QoS等级为2的PUBLISH报文对应的响应报文,除开固定报头中的报文类型字段之外,其他字段和PUBACK报文完全一致。PUBREC报文也不包含有效载荷。
请参阅图11,PUBREL是RUBREC报文的响应报文,PUBREL报文只包含固定报头和2Byte的可变报头,没有有效载荷。固定报头的保留位必须设置为0010,其他任何值都是不合法的,接收者对发送这样不合法报文的发送方进行关闭网络连接处理。固定报头的剩余长度字段的值恒为2。可变报头只包含报文标识符,其和等待被确认的PUBREC报文的报文标识符保持一致。
请参阅图12,PUBCOMP是对PUBREC报文的响应报文,只包含固定报头和2Byte的可变报头,不包含有效载荷。固定报头的剩余长度字段值恒等于2。可变报头的报文标识符和等待被确认的PUBREC报文的报文标识符一致。
从实际的业务的执行过程对新通信方法下所采取的发布订阅模式的优势进行分析,现有通信方法下主站与主集中器进行通信直接进行连接,主站需要知道每一个主集中器的目的地址,并且必须在当前业务交互完成之后,才能和下一个主集中器进行通信,而且主集中器不具有主动发起通信的功能,其只能被动地接收主站请求后,才能对请求作出响应,可见这种情况下主站和主集中器之间的关系深度耦合并且不对等,对通信效率和所支持的业务类型(比如不支持主集中器主动上报异常业务)造成了极大的限制。而该通信方法下,主站和主集中器在通信地位上完全对等,并且互相之间是弱耦合的关系,消息发送方在发送消息的时候不必获知消息接收方的地址,只需要往特定主题发布消息,具体的消息传输完全交给第三方代理服务器托管;并且消息发送者不用考虑消息往返的同步问题,不需要在完成和当前对消交互之后再开启下一个对象的通信,消息的发送和接收是异步的,这样带来通信效率的极大提高。
借助第三方代理服务器解除了传统架构下主站和主集中器之间的从属关系,使二者在进行通信时的地位完全对等,进而实现了消息的发送端和接收端的空间解耦、时间解耦和同步解耦。该通信方法属于应用层协议,运行于传输层之上,要求传输层能提供有序、可靠、双方向(指从主站到主集中器和从主集中器到主站两个方向)的字节流传输。
在某一个实施例中,所述根据发送端发送的业务数据报文查询接收端的地址和服务质量等级之前,包括,确认所述发送端/所述接收端发送的连接请求报文CONNECT后,发送确认连接报文CONNACK至所述发送端/所述接收端,以使得所述发送端/所述接收端和代理服务器建立连接。
在本实施例中,在正式进入业务数据的传输之前,所有所述发送端/所述接收端均需要和所述代理服务器建立起连接,在TCP三握手的基础之上,所述发送端/所述接收端向所述代理服务器发送CONNECT连接请求,所述代理服务器收到确认后返回CONNACK,至此所述发送端/所述接收端和所述代理服务器之间连接建立完毕。
请参阅图13,CONNECT为连接请求报文,传输方向为从所述发送端/所述接收端到代理,规定所述发送端/所述接收端向所述代理服务器发送的第一个报文必须是CONNECT报文。CONNECT报文的可变报头包含协议名称字段和保持连接字段。协议名称字段占1Byte,限定UTF-8字符,所述发送端/所述接收端在发起连接请求时需要提供正确的协议名称,否则所述代理服务器直接视为无效连接请求。保持连接字段占用2Byte,用来表示以秒为单位的时间间隔,指的是所述发送端/所述接收端传输完成一个报文到发送下一个报文的时间间隔,所述发送端/所述接收端可以根据业务类型指定恰当的时间间隔,用以实现按需合理分配信道资源。为了保持持久的连接,所述发送端/所述接收端须保证报文传输时间间隔不超过保持连接的值,如果没有其他报文可供发送,所述发送端/所述接收端必须发送心跳请求报文PING以保持和所述代理服务器之间的连接。当代理在1.5倍的保持连接时间之内没有收到所述发送端/所述接收端的报文,其必须断开和相应所述发送端/所述接收端之间的网络连接。
CONNECT报文的有效载荷部分包含所述发送端/所述接收端的标识符字段,该字段长度可变,限定不小于1字节不超过32字节的UTF-8编码字符,不符合该要求的连接请求被所述代理服务器视为无效请求。所述发送端/所述接收端的标识符作为所述发送端/所述接收端的唯一ID,起到识别作用,所述代理服务器需要将与之连接的所述发送端/所述接收端的标识符及相应的连接状态信息进行存储。
请参阅图14,CONNACK为连接确认报文,用作CONNECT报文的响应,传输方向是从所述代理服务器到所述发送端/所述接收端,并且所述代理服务器向所述发送端/所述接收端发送的第一个报文必须是CONNACK报文。CONNACK报文其只包含固定报头和可变报头,不包含有效载荷。CONNACK报文的可变报头为连接返回码字段,占用1Byte,因此固定报头中的剩余长度字段值恒定为1。连接返回码的值所对应的含义如表2所示。
表2连接返回码定义表
如果出现的状况未包含在表2中,则所述代理服务器必须关闭网络连接,不必响应CONNACK报文。
在某一个实施例中,所述连接请求报文CONNECT包括协议名称、协议版本、所述发送端/所述接收端的标识符和连接保持时间。
在本实施例中,所述连接请求报文CONNECT中带有协议名称、协议版本、所述发送端/所述接收端的标识符、连接保持时间等信息,
在某一个实施例中,所述发送端/所述接收端和所述代理服务器建立连接后,包括,根据所述连接保持时间对所述发送端/所述接收端进行连接计时,当计时时长小于所述连接保持时间时,若接收到所述发送端/所述接收端通过心跳机制发送的心跳请求报文,则重新进行连接计时;当所述计时时长大于所述连接保持时间,则释放与所述发送端/所述接收端的连接。
在本实施例中,为了保证所述代理服务器与所述发送端/所述接收端之间连接状态的延续,所述发送端/所述接收端需要定时主动向所述代理服务器发送PING(心跳请求)报文以告知自己的存活状态。所述代理服务器收到PING报文之后响应PONG报文。
请参阅图15-16,PING报文格式其只包含固定报头,没有可变报头和有效载荷,固定报头中的剩余长度字段值为0;PONG报文格式只包含固定报头,没有可变报头和有效载荷。
在某一个实施例中,所述根据发送端发送的业务数据报文查询接收端的地址和服务质量等级之前,还包括,确认所述发送端/所述接收端发送的订阅请求报文SUBSCRIBE后,对所述订阅请求报文SUBSCRIBE处理后则返回订阅确认报文SUBACK,所述订阅请求报文SUBSCRIBE包括主题信息Topic和服务质量等级信息QoS。
在本实施例中,所有的所述发送端/所述接收端需要在是代理服务器上进行订阅(SUBSRIBE)操作,连接建立完成之后,所述发送端/所述接收端可以向所述代理服务器发送SUBSRIBE报文以创建一个或多个主题的订阅关系,所述代理服务器发送SUBACK报文作为响应。具体地,所述发送端/所述接收端向所述代理服务器发送SUBSCRIBE订阅请求报文,报文中带有一个或者多个其所需订阅的主题(Topic)信息,以及服务质量等级(Quality ofService,QoS)信息,所述代理服务器接收后完成相应处理返回SUBACK报文。由于在发布订阅模式中,所述发送端和所述接受端之间是松耦合的关系,二者互相不知道对方的存在,中间的所述代理服务器是真正的消息转发者,因此所述代理服务器的核心功能是记录并维护主题和订阅者之间的订阅与被订阅的关系,该关系决定了所述代理服务器在收到来自一个所述发送端/所述接收端所发布的消息时的转发规则。
请参阅图17,SUBSCRIBE报文固定报头中的报文标志字段设置为0010,其他任何值都不是合法值,所述代理服务器对其直接作关闭网络连接处理。
SUBSCRIBE报文的可变报头包含报文标识符字段,占用2Byte,作为报文的识别编码,便于所述代理服务器在回送SUBACK报文时指明对应关系。SUBSCRIBE报文的有效载荷部分包含了一个主题过滤器列表,表示所述发送端/所述接收端所希望订阅的主题相关信息。列表中的每一项由一个主题过滤器字段和一个服务质量(Quality of Service,QoS)要求字段构成。主题过滤器字段必须遵循UTF-8编码。QoS要求表示该主题所允许所述代理服务器向所述发送端/所述接收端发送应用消息时的最大QoS等级,占用1Byte。要求有效载荷中至少包含一对主题过滤器和QoS要求字段组合,不包含有效载荷的SUBSCRIBE报文是无效的。主题过滤器字段的长度和主题过滤器列表的项目数量不作限制,但不能超过最大报文长度。所述代理服务器收到来自某所述发送端/所述接收端的SUBSCRIBE报文后,会依据有效载荷部分的主题过滤器列表,创建并记录所述发送端/所述接收端和所订阅主题的对应关系。如果所述代理服务器收到的SUBSCRIBE报文的主题过滤器和一个现存的主题过滤器相同,则必须使用新的主题过滤器彻底替换原有的,原因在于新主题过滤器所对应的QoS要求可能不同。
所述代理服务器必须使用SUBACK报文响应每一个SUBSCRIBE报文,用于表明其以收到订阅请求并正在处理。SUBACK报文格式如图18所示。SUBACK报文的可变报头部分为2Byte的报文标识符,要求其必须和等待被确认的SUBSCRIBE报文的报文标识符保持一致。SUBACK报文的有效载荷部分为一个返回码清单,清单内的每一项是一个长度为1Byte的返回码,分别对应一个等待被确认的SUBSCRIBE报文的一个主题过滤器,并且顺序一致,用来表示各个主题订阅的订阅结果成功或者失败,返回码的值与含义的对应关系如表3所示,其中保留备用的所有编码组合均不允许使用。
表3订阅返回码定义表
订阅返回码 | 含义 |
00H | 订阅成功,QoS=0 |
01H | 订阅成功,QoS=1 |
02H | 订阅成功,QoS=2 |
03H | 订阅失败 |
04H~FFH | 保留备用 |
在某一个实施例中,所述对所述订阅请求报文SUBSCRIBE处理后则返回订阅确认报文SUBACK,包括:
解析所述订阅请求报文SUBSCRIBE的所述主题信息Topic和所述服务质量等级信息QoS;
若代理服务器的订阅关系库包含所述主题信息Topic,则判断代理服务器的订阅关系库中是否包括所述主题信息Topic与当前所述发送端/所述接收端的关联信息,若有,则根据所述订阅请求报文SUBSCRIBE中所述服务质量等级信息QoS更新原有的关联信息,若没有,则在所述主题信息Topic中增加所述关联信息;
若所述代理服务器的订阅关系库不包含所述主题信息Topic,则在所述订阅关系库中增加所述主题信息Topic,并增加当前所述发送端/所述接收端的关联信息。
在本实施例中,所述代理服务器接收到订阅请求报文之后,解析报文中的主题信息,并将该主题和订阅者、约定的服务质量等级等信息建立起关联,其是通过一个特定的数据结构对转发规则进行存储的,所述数据结构如图19所示。其整体是一个哈希表结构,哈希表的键即为订阅的主题,哈希表的值是一个链表结构,链表中的每一个节点代表一个主题的订阅者,节点中存储了订阅者的地址、服务质量等级等信息,图19表示当前有三个所述发送端/所述接收端进行了订阅,其中,Client1同时订阅了Topic1和Topic3,Client2订阅了Topic1,Client3订阅了Topic2。当所述代理服务器接收到一个新的订阅请求时,属于以下两种情况之一,其一是新增一个新的订阅,其二是对原有订阅的更新。第一种情况下,所述代理服务器找到订阅主题对应的哈希表键的存放位置,如果存放位置为空则说明新订阅的主题之前不存在,则在该位置上保存下订阅主题信息,并将订阅者信息作为一个链表节点存储为键所对应的值;而如果键的存放位置不为空,说明之前已经有别的订阅者建立过与该主题的订阅关系,则只需要在链表头部插入当前订阅者节点即可。而如果是第二种情况,通过主题定位键的位置之后,需要对链表上的节点进行一一遍历,直到找到需要更新的那个节点,完成订阅信息更新的操作。
在某一个实施例中,还包括,根据所述发送端/所述接收端发送的取消订阅报文UNSUBSCRIBE,删除所述发送端/所述接收端的订阅信息,并返回UNSUBACK订阅取消确认报文。
在本实施例中,连接建立完成之后,所述发送端/所述接收端可以向所述代理服务器发送SUBSRIBE报文以创建一个或多个主题的订阅关系,所述代理服务器发送SUBACK报文作为响应。所述发送端/所述接收端也可以发送UNSUBSCRIBE报文解除订阅关系,所述代理服务器以UNSUBACK报文作为响应。取消订阅(UNSUBSCRIBE)的操作类似更新操作,所述发送端/所述接收端发起UNSUBSCRIBE订阅取消请求报文,所述代理服务器找到订阅者对应的链表节点后将其从整个链表中删除,之后返回UNSUBACK订阅取消确认报文。
请参阅图20,UNSUBSCRIBE报文的固定报头的报文标志字段设置为0010,其他任何值都不是合法值,所述代理服务器对其直接作关闭网络连接处理。UNSUBSCRIBE报文的可变报头和SUBSCRIBE报文一致,为2Byte的报文标识符。UNSUBSCRIBE报文的有效载荷包含所述发送端/所述接收端希望取消订阅的所有主题过滤器所构成的列表,列表中至少包含一个主题过滤器,不包含有效载荷的UNSUBSCRIBE报文是违反协议的。所述代理服务器在解析出UNSUBSCRIBE报文中的所有主题过滤器之后,必须和记录中该所述发送端/所述接收端所对应的所有订阅主题进行逐一逐字符比较,只有完全匹配的情况下,删除该条订阅,否则不进行任何处理。
所述代理服务器必须使用UNSUBACK(取消订阅确认)报文响应来自所述发送端/所述接收端的每一个UNSUBSCRIBE报文,其也必须包含和所对应的等待被确认的UNSUBSCRIBE报文有相同的报文标识符,即是没有删除任何订阅,所述代理服务器也必须发送UNSUBACK报文响应。UNSUBACK报文格式如图21所示,UNSUBACK报文不包含有效载荷,只有固定报头和可变报头两部分。2Byte的可变报头用于表示报文标识符。固定报头的剩余长度字段值恒为2。
在某一个实施例中,还包括,接收到所述发送端/所述接收端发送的无效连接请求、无效发布请求或无效订阅请求,则直接关闭与所述发送端/所述接收端的连接。
在本实施例中,规定在无异常情况发生的前提下,所述发送端/所述接收端可主动发起断开连接请求,即向所述代理服务器发送DISCONN报文,所述代理服务器不用进行任何响应。所述发送端/所述接收端发送完DISCONN报文之后,其必须关闭与所述代理服务器之间的网络连接;所述代理服务器在接收到DISCONN报文后,如果所述发送端/所述接收端未关闭网络连接,由所述代理服务器进行网络连接的关闭。由于异常报文传输导致的连接中断已体现在以上通信过程的叙述中,所述代理服务器在接收到无效连接请求、发布请求、订阅请求的情况下直接关闭网络连接,所述发送端/所述接收端在收到无效发布请求时也直接关闭网络连接而无需发送连接断开请求。DISCONN报文格式如图22所示,其只包含固定报头,不含可变报头和有效载荷,固定报头的剩余长度字段值恒定为0。
本发明实施例还提供一种计量自动化系统的通信系统,应用于上述的计量自动化系统的通信方法,包括:
代理服务器查询模块,用于根据发送端发送的业务数据报文查询接收端的地址和服务质量等级,所述发送端和所述接收端包括主站或主集中器;
代理服务器发送模块,用于根据所述地址和所述服务质量等级将所述业务数据报文发送至所述接收端。
关于计量自动化系统的通信系统的具体限定可以参见上文中对于计量自动化系统的通信方法的限定,在此不再赘述。上述计量自动化系统的通信系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参阅图23,本发明实施例提供一种终端设备,包括一个或多个处理器和存储器。存储器与所述处理器耦接,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任意一个实施例中的计量自动化系统的通信方法。
处理器用于控制该终端设备的整体操作,以完成上述的计量自动化系统的通信方法的全部或部分步骤。存储器用于存储各种类型的数据以支持在该终端设备的操作,这些数据例如可以包括用于在该终端设备上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-OnlyMemory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
在一示例性实施例中,终端设备可以被一个或多个应用专用集成电路(Application Specific 1ntegrated Circuit,简称AS1C)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的计量自动化系统的通信方法,并达到如上述方法一致的技术效果。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述任意一个实施例中的计量自动化系统的通信方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器,上述程序指令可由终端设备的处理器执行以完成上述的计量自动化系统的通信方法,并达到如上述方法一致的技术效果。
本发明实施例的计量自动化系统的通信方法中,通过三方代理服务器解除了传统架构下主站和主集中器之间的从属关系,使二者在进行通信时的地位完全对等,进而实现了消息的发送者和接收者的空间解耦、时间解耦和同步解耦。解决现有计量自动化系统中信息采集通信方法所采取的“一问一答,逐个轮询”通信模式中非对等通信所导致的通信效率低下问题,使采用新型高效通信方法后的计量自动化系统能够高效应对井喷数据的挑战,以满足不同的业务需求。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种计量自动化系统的通信方法,其特征在于,包括:
根据发送端发送的业务数据报文查询接收端的地址和服务质量等级,所述发送端和所述接收端包括主站或主集中器;
根据所述地址和所述服务质量等级将所述业务数据报文发送至所述接收端。
2.根据权利要求1所述的计量自动化系统的通信方法,其特征在于,所述根据发送端发送的业务数据报文查询接收端的地址和服务质量等级之前,包括,确认所述发送端/所述接收端发送的连接请求报文CONNECT后,发送确认连接报文CONNACK至所述发送端/所述接收端,以使得所述发送端/所述接收端和代理服务器建立连接。
3.根据权利要求2所述的计量自动化系统的通信方法,其特征在于,所述连接请求报文CONNECT包括协议名称、协议版本、所述发送端/所述接收端的标识符和连接保持时间。
4.根据权利要求3所述的计量自动化系统的通信方法,其特征在于,所述发送端/所述接收端和所述代理服务器建立连接后,包括,根据所述连接保持时间对所述发送端/所述接收端进行连接计时,当计时时长小于所述连接保持时间时,若接收到所述发送端/所述接收端通过心跳机制发送的心跳请求报文,则重新进行连接计时;当所述计时时长大于所述连接保持时间,则释放与所述发送端/所述接收端的连接。
5.根据权利要求1所述的计量自动化系统的通信方法,其特征在于,所述根据发送端发送的业务数据报文查询接收端的地址和服务质量等级之前,还包括,确认所述发送端/所述接收端发送的订阅请求报文SUBSCRIBE后,对所述订阅请求报文SUBSCRIBE处理后则返回订阅确认报文SUBACK,所述订阅请求报文SUBSCRIBE包括主题信息Topic和服务质量等级信息QoS。
6.根据权利要求5所述的计量自动化系统的通信方法,其特征在于,所述对所述订阅请求报文SUBSCRIBE处理后则返回订阅确认报文SUBACK,包括:
解析所述订阅请求报文SUBSCRIBE的所述主题信息Topic和所述服务质量等级信息QoS;
若代理服务器的订阅关系库包含所述主题信息Topic,则判断代理服务器的订阅关系库中是否包括所述主题信息Topic与当前所述发送端/所述接收端的关联信息,若有,则根据所述订阅请求报文SUBSCRIBE中所述服务质量等级信息QoS更新原有的关联信息,若没有,则在所述主题信息Topic中增加所述关联信息;
若所述代理服务器的订阅关系库不包含所述主题信息Topic,则在所述订阅关系库中增加所述主题信息Topic,并增加当前所述发送端/所述接收端的关联信息。
7.根据权利要求1所述的计量自动化系统的通信方法,其特征在于,还包括,根据所述发送端/所述接收端发送的取消订阅报文UNSUBSCRIBE,删除所述发送端/所述接收端的订阅信息,并返回UNSUBACK订阅取消确认报文。
8.根据权利要求1所述的计量自动化系统的通信方法,其特征在于,还包括,接收到所述发送端/所述接收端发送的无效连接请求、无效发布请求或无效订阅请求,则直接关闭与所述发送端/所述接收端的连接。
9.一种计量自动化系统的通信系统,其特征在于,包括:
代理服务器查询模块,用于根据发送端发送的业务数据报文查询接收端的地址和服务质量等级,所述发送端和所述接收端包括主站或主集中器;
代理服务器发送模块,用于根据所述地址和所述服务质量等级将所述业务数据报文发送至所述接收端。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的计量自动化系统的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110385996.2A CN113141544A (zh) | 2021-04-09 | 2021-04-09 | 一种计量自动化系统的通信方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110385996.2A CN113141544A (zh) | 2021-04-09 | 2021-04-09 | 一种计量自动化系统的通信方法、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113141544A true CN113141544A (zh) | 2021-07-20 |
Family
ID=76811298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110385996.2A Pending CN113141544A (zh) | 2021-04-09 | 2021-04-09 | 一种计量自动化系统的通信方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113141544A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174677A (zh) * | 2022-07-19 | 2022-10-11 | 中国工商银行股份有限公司 | 基于分布式消息的信创终端管理方法、装置和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2590632A1 (en) * | 2007-02-01 | 2008-08-01 | Shanghai Jiulong Electric Power (Group) Co., Ltd. | Intelligent system for collecting readings from electric meters |
CN202816025U (zh) * | 2012-09-20 | 2013-03-20 | 福建通力达实业有限公司 | 一种电力收费智能系统 |
CN103582009A (zh) * | 2012-07-19 | 2014-02-12 | 华为技术有限公司 | 数据传输方法及宿主基站及数据网络系统 |
CN106878446A (zh) * | 2017-03-10 | 2017-06-20 | 大盛微电科技股份有限公司 | 通讯方法 |
CN112383552A (zh) * | 2020-11-16 | 2021-02-19 | 国网江苏省电力有限公司营销服务中心 | 一种用户用电信息分钟级采集及实时控制方法 |
-
2021
- 2021-04-09 CN CN202110385996.2A patent/CN113141544A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2590632A1 (en) * | 2007-02-01 | 2008-08-01 | Shanghai Jiulong Electric Power (Group) Co., Ltd. | Intelligent system for collecting readings from electric meters |
CN103582009A (zh) * | 2012-07-19 | 2014-02-12 | 华为技术有限公司 | 数据传输方法及宿主基站及数据网络系统 |
CN202816025U (zh) * | 2012-09-20 | 2013-03-20 | 福建通力达实业有限公司 | 一种电力收费智能系统 |
CN106878446A (zh) * | 2017-03-10 | 2017-06-20 | 大盛微电科技股份有限公司 | 通讯方法 |
CN112383552A (zh) * | 2020-11-16 | 2021-02-19 | 国网江苏省电力有限公司营销服务中心 | 一种用户用电信息分钟级采集及实时控制方法 |
Non-Patent Citations (2)
Title |
---|
赵闻等: "面向电网数据采集系统的多业务资源分配算法", 《广东电力》 * |
高鲁鑫: "用电采集系统费控效率研究与优化", 《智能电网》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174677A (zh) * | 2022-07-19 | 2022-10-11 | 中国工商银行股份有限公司 | 基于分布式消息的信创终端管理方法、装置和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101769386B1 (ko) | M2m 시스템에서 통지 메시지 전달 방법 및 이를 위한 장치 | |
CN108768826B (zh) | 基于MQTT和Kafka高并发场景下的消息路由方法 | |
JP2698336B2 (ja) | デジタルデータ処理システムのためのローカルエリアネットワークに用いるノード | |
US20200344189A1 (en) | Communication method and communication apparatus | |
US6006254A (en) | System for the reliable, fast, low-latency communication of object state updates over a computer network by combining lossy and lossless communications | |
US5058108A (en) | Local area network for digital data processing system | |
CN103618800A (zh) | 订阅通知的实现方法和装置 | |
US6370587B1 (en) | Network interconnection device | |
CN114866528A (zh) | 一种基于MQTT和Websocket的数据通讯方法 | |
KR100617775B1 (ko) | 멀티미디어 메시징 서비스에서 중복된 도달 통지 메시지에대한 관리 방법 | |
CN113141544A (zh) | 一种计量自动化系统的通信方法、系统及存储介质 | |
CN100508505C (zh) | 用于对查询节点分类的方法和装置 | |
WO2007022685A1 (fr) | Procédé de réalisation du service de notification, système de gestion web distribué et dispositif de service d’envoi de notification | |
US7415025B1 (en) | Method and apparatus for clearing a large number of connections in an ATM network | |
JPH08172446A (ja) | ネットワーク間メッセージ中継方法 | |
US11612007B2 (en) | Low power dissipation Bluetooth mesh network system and communication method | |
WO2008037117A1 (fr) | Système destiné au traitement d'une tâche de programmation d'un message multimédia et procédé de mise en oeuvre associé | |
CN114785695A (zh) | 一种基于ZeroC ICE实现的高性能网络通信库 | |
CN111064825B (zh) | 一种基于arp实现dpi数据采集和控制方法和装置 | |
CN107623645A (zh) | 一种基于数据流转发的电力系统实时数据交换系统 | |
CN107888503B (zh) | 一种组播报文传输方法、装置及客户终端设备 | |
Zhai et al. | An improved DDS publish/subscribe automatic discovery algorithm | |
JP3667322B2 (ja) | データ通信方法 | |
CN113079108B (zh) | 一种提高网络架构通信效率的方法及系统 | |
CN113626210B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210720 |