CN112637198B - 一种基于OPC UA PubSub的多协议自适配模块设计方法 - Google Patents
一种基于OPC UA PubSub的多协议自适配模块设计方法 Download PDFInfo
- Publication number
- CN112637198B CN112637198B CN202011527317.2A CN202011527317A CN112637198B CN 112637198 B CN112637198 B CN 112637198B CN 202011527317 A CN202011527317 A CN 202011527317A CN 112637198 B CN112637198 B CN 112637198B
- Authority
- CN
- China
- Prior art keywords
- protocol
- message
- module
- network
- self
- 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
Images
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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- 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
- H04L67/565—Conversion or adaptation of application format or content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
一种基于OPC UA PubSub的多协议自适配模块设计方法,其步骤为:1)将发布者发送的网络消息封装为带有协议选择头、尾部的网络信息;2)发布者将带有协议选择头、尾部的网络信息传输到多协议自适配模块中;3)在中间件服务器中部署多协议自适配模块,通过协议选择头、尾部,分析网络消息传输的完整性,对网络消息所采用的消息传输协议作出判断,并将网络消息转发到中间件服务器集群上相应的中间件服务器中;4)中间件服务器将接收到的网络消息放置到对应的消息队列中,供订阅者获取消息。本发明通过上述方法,能够接收并精确转发的特定消息传输协议消息到对应目的中间件中。
Description
技术领域
本发明属于工业数据传输领域,具体涉及一种基于OPC UA PubSub的多协议自适配方法。
背景技术
在工业控制网络中,由于存在大量且复杂的物理设备、工业控制总线以及异构的网络,设备之间难以实现互联、互通与语义的互操作。经典的OPC UA采用Client/Server架构,物理设备之间通过TCP协议进行点对点通信,构建了一种工业耦合网络。在PubSub模式中,OPC UA发布者与订阅者是分离的。从发布者接收数据的订阅者数量不会影响发布者,构建了一种工业解耦网络,实现了网络的扁平化。
目前,从工业智能制造角度来看,工业现场设备想要实现OPC UA PubSub模式,最重要的是解决物理设备到OPC UA地址空间、OPC UA地址空间到PubSub模式以及在PubSub模式中信息和传输协议的映射问题。虽然在OPC UA PubSub中以上问题已有了解决方案,但是,在数据传输方式上OPC UA PubSub支持UDP、AMQP、MQTT数据传输协议,它们往往只针对特定数据传输协议的中间件进行数据传输,但是对于集成了多中间件的服务器,如何快速且准确的接收由发布者发布的带有特定数据传输协议的信息,以及如何实现智能化的多协议自适配,目前仍没有提及。
发明内容
本发明的目的是基于OPC UA PubSub模块,设计一款多协议自适配模块,实现了在中间件服务器中部署多个支持不同信息传输协议的中间件,在中间件服务器接收到PubSub模块发布者发送的信息前,通过多协议自适配模块对消息进行接收并分类转发到中间件服务器上对应的中间件中,以便于发布者发送基于不同消息传输协议的信息可以被中间件服务器接收,并转发给相应的订阅者。
为了实现上述目的,本发明创造采用了如下技术方案:
一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于包括以下步骤:
1)将发布者发送的网络消息封装为带有协议选择头、尾部的网络信息。
1.1)协议选择头、尾部用于多协议自适配模块对发布者发送的网络信息所采用的消息传输协议进行识别;即,在发布者ISO模型应用层中的PubSub层后,增设消息传输协议选择层。
1.2)协议选择头部包括:CRC检验头、开启标志、接收确认、协议选择、Qos;
1.2.1)CRC校验头:判断校验起始位;
1.2.2)开启标志:判断多协议自适配模块是否开启;
1.2.3)接收确认:判断多协议自适配模块是否完整接收到带有协议选择头、尾部的网络消息;
1.2.4)协议选择:发布者发送的网络消息所采用的消息传输协议。消息传输协议包括:AMQP、MQTT等;
1.2.5)Qos:支持三种Qos,用于保证传输的网络消息的服务质量。
1.3)协议选择尾部包括:CRC校验尾;
1.3.1)CRC校验尾:判断校验截止位。
2)发布者将带有协议选择头、尾部的网络信息传输到多协议自适配模块中。
3)在中间件服务器中部署多协议自适配模块,用于接收发布者所发送的带有协议选择头、尾部的网络消息;通过协议选择头、尾部,分析网络消息传输的完整性,并对网络消息所采用的消息传输协议作出判断,并转发到中间件服务器集群上相应的中间件服务器中。
3.1)多协议自适配模块的ISO模型与发布者ISO模型保持一致;模块的消息传输协议选择层用于接收PubSub发布者发布的带有消息传输协议选择头部的网络信息,并对网络信息做校验、流量管理、冲突检测及协议选择;
3.1.1)模块通过协议选择头、尾部对接收到的网络信息做CRC校验,来判断传输过程中是否存在丢失等情况;
如果校验失败,信息丢弃重传;
如果校验成功,包含校验失败但判断为成功的情况,将接收到的网络消息做下一步信息处理;
3.1.2)模块通过开启标志位控制模块是否开启;
如果模块未开启,说明中间件服务器为传统OPC UA PubSub基于代理形式的单一中间件服务器-AMQP中间件服务器或MQTT中间服务器,中间件服务器仅支持一种特定消息传输协议的中间件;
如果模块开启,说明中间件服务器支持多消息传输协议,模块将实现自身的多消息传输协议选择功能;
3.1.3)在模块开启状态下接收到网络消息,通过接收确认(1.2.3中的接收确认)判断是否发送接收确认信号给发布者,并告知发布者,多协议自适配模块已收到来自发布者所发布的经过CRC校验无误的网络信息;
如果在数据传输完全可信的理想状态,可取消发送接收确认信号给发布者,但该功能默认开启;
3.1.4)当接收确认信号已反馈给发布者后,模块通过判断消息传输协议选择头部,获取网络信息所采用的消息传输协议,并将网络消息发送至对应的中间件服务器;
3.1.5)多协议自适配模块支持三种Qos;
当多网络消息数据流存在时,如果选择Qos至多传输一次,则传输可能存在丢包等现象,模块接收信息不完整;
如果选择Qos至少传输一次,传输会根据相应的优先级进行传输,AMQP优先级为3;MQTT优先级为2;其他消息传输协议优先级为1;高优先级可以打断低优先级,低优先级被打断后,可以在高优先级传输完成后,根据断点继续传输;
如果Qos为精确传输一次,传输前会对相应的网络带宽进行预留,并保证链路传输时不会有其他数据流传输,传输不会被打断;
通过Qos机制,多协议自适配模块可以处理发布者多条网络信息,实现了数据流控制与冲突检测;实现了多协议自适配模块对带有消息传输选择协议头部的网络信息的分类与转发的功能。
3.2)中间件服务器集群用于接收来自多协议自适配模块分类与转发后的网络消息,并由对应的中间件服务器进行接收;中间件服务器集群包括三种中间件服务器:
(1)支持AMQP、MQTT等多消息传输协议的多中间件服务器;
(2)支持AMQP消息传输协议的中间件服务器;
(3)支持MQTT消息传输协议的中间件服务器;
3.2.1)当3.1.2)中所提到的开启标志开启时,多协议自适配模块开始工作,经模块分类与转发后的网络消息将发送到上述多中间服务器中;
3.2.2)当3.1.2)中所提到的开启标志关闭时,多协议自适配模块不工作,网络消息将发送到AMQP消息传输协议中间件服务器或MQTT消息传输协议中间件服务器。
4)中间件服务器将接收到的网络消息放置到对应的消息队列中,供订阅者获取消息。
本发明创造的有益效果:
1、可靠性。本发明所实现的多协议自适配模块,二进制数据流从数据链路层传输到应用层的整个过程采用CRC冗余校验以及接收反馈确认等多重传输确认保障,实现了二进制数据流从PubSub到多协议自适配模块的传输可靠性;
2、网络带宽的合理分配。本发明所实现的多协议自适配模块,采用Qos流量的分类与标记,合理标记数据流为多个不同的优先等级,在发布者发布多条消息时,多协议自适配模块根据消息的不同优先级,按不同的优先级传送消息,合理分配网络带宽的占用情况;
3、拥塞管理。发布者发送多条属于不同消息传输协议的的消息时,可能会对多协议自适配模块造成拥塞,通过采用Qos中的队列技术,根据队列的匹配规则,将不同的消息按照不同的出队顺序传输到对应的中间件服务器中,避免多协议自适配模块出现拥堵等状况;
4、模块构成简单。多消息传输协议选择模块并没有改变原有的PubSub到中间件的消息传输模式,仅做协议选择及消息的转发,并保留了对单消息传输协议中间件的支持;
5、模块成本低。相比于开发集成多消息传输协议的中间件服务器而言,开发一个多协议自适配模块具有更低的资金成本及人力成本;
6、可扩展性。对支持的消息传输协议做了扩展保留位,以便于在后续开发的过程中对不同的消息传输协议进行位扩展,增强其自身的支撑性;
7、高可用性。通过多协议自适配模块,可以轻松的对现有的中间件服务器进行扩展,不需要投入新的中间件服务器,且保证了简单可靠的连接;
8、迎合工业现场消息传输发展趋势。在工业现场设备中,通过简单的开发模块对现有的设备进行升级是符合目前工业现场设备消息传输的发展趋势的,在保证数据高性能可靠传输的同时也降低了工厂设备投入成本,对工业现场设备升级过度阶段提供强有力的技术支撑与保障。
附图说明
图1为本发明PubSub层发布者发布网络信息原理图;
图2为本发明协议选择头部及尾部封装原理图;
图3为本发明Qos优先级判断流程图;
图4为本发明PubSub层订阅者读取网络信息原理图;
图5为本发明消息传输协议选择模块工作过程流程图;
图6为本发明整体ISO架构图;
图7为本发明整体工作原理图。
具体实施方式
下面将结合本发明创造实施例中的附图,对本发明创造实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明创造一部分实施例,而不是全部的实施例。
实施例1:
本发明基于OPC PubSub多协议自适配方法,所述的多协议自适配是PubSub网络消息在传输到中间件服务器之前,提供一种接收并精确转发的特定消息传输协议消息到对应目的中间件的方法;该方法包括以下内容:
本发明方法包括以下步骤:
1、如图1所示,PubSub层发布者生成网络信息过程包括以下步骤:
OPC UA PubSub层依旧采用OPC UA基金会所提供的信息传输方法,PubSub层传输的网络信息由工业现场设备提供;通过OPC UA PubSub发布者配置模块对工业现场设备映射到OPC UA地址空间的数据进行收集,并生成数据集;OPC UA提供的UADP或JSON编码方式,通过数据集写入模块对数据集进行编码,并将编码后的字段与带有配置及编码信息的头部封装成数据集信息;负载由一组或多组数据集信息构成,通过在负载信息前后添加头部及尾部,封装成网络信息,以便于向面向特定消息中间件传递消息。
PubSub层支持AMQP、MQTT等消息传输协议,具体如下:
(1)AMQP作为高级消息队列协议是面向消息中间件的开发标准的应用层协议。代理在不能直接通信的应用程序之间传递消息。发布者向AMQP端点发送AMQP消息。订阅者侦听AMQP端点以获取传入消息。消息体和消息头采用二进制编码进行序列化。映射方式采用UADP消息映射或JSON消息映射。传输协议Url:amqps://<域名>[:端口号][/<路径>]。数据信息通过与AMQP中间件建立连接,并开放传输通道,将信息传输到中间件中。
(2)MQTT作为消息队列遥感传输是面向消息中间件的开放标准应用层协议。MQTT通常与代理一起使用,代理在不能直接通信的应用程序之间传递消息。发布者将MQTT消息发送到MQTT代理。订阅者为消息订阅MQTT代理。代理可以持久化消息。消息头消息体采用二进制编码进行序列化。映射方式采用UADP消息映射或JSON映射。发布者将网络信息以UADP或JSON的形式发送到代理中间件,并支持三种Qos。
2、在应用层中的Pub/Sub层后增加消息传输协议选择层;
具体的是在PubSub传输网络信息到中间件之前,将网络信息进一步封装处理,在其前后增加相应的头部与尾部;在应用层中的OPC UA PubSub层后增加消息传输协议选择层,用于多协议自适配模块对传输的消息进行分类识别与转发;PubSub层保持原有传输方式不变。
如图2所示,为协议选择头部、尾部的具体封装方法;协议选择头部由CRC校验头部、开启标志、接收确认、协议选择、Qos构成,具体包括:
(1)在协议选择头部增加CRC校验位,在协议选择尾部增加CRC校验尾;
当消息传输协议选择模块接收到带有协议选择头部的网络信息时,首先对接收到的网络信息做CRC校验,通过校验判断网络信息在传输到多协议自适配模块的过程中是否存在丢包等现象。
在CRC冗余校验首部与尾部之间为校验数据,通过在消息传输协议选择模块中设置CRC寄存器,并赋予n位余数初始值,对传输消息进行计算得到冗余码;发布者将传输的二进制信息与CRC寄存器中存储的二进制字符串进行异或,并不断进行移位,结束后获得一个二进制的余数字符串;计算所得余数应与发送端采用相同二进制字符串求余结果相同。
如果接收端校验值与发送端校验值相同,则进入下一步;如果接收端校验值与发送端校验值不同,则丢弃该段网络信息,等待重传;
通过CRC冗余校验首部与尾部判断校验起始位与结束位,提取首尾部之间网络信息进行传输校验,保证传输过程的可靠性。
(2)在协议选择头部中增加开启标志位;
开启标志头部为1bit;其中,0为默认关闭多协议自适配模块;1为开启多协议自适配模块。
所述的开启标志头部将中间件服务器划分为两个类别,如图4中的中间件服务器集群所示,包含支持多消息传输协议类型的中间件服务器及支持AMQP或MQTT消息传输协议的中间件服务器。
当开启标志位为0时,默认关闭多协议自适配模块,此时中间件服务器为支持AMQP或MQTT消息传输协议的中间件,为经典的OPC UA PubSub基于代理形式的中间件服务器,此时将经过CRC校验的网络信息直接根据相应的消息传输协议发送至代理中间件。
当开启标志位为1时,默认启动多协议自适配模块,此时中间件服务器支持AMQP、MQTT等多种消息传输协议的中间件。
(3)在协议选择头部中增加网络消息传输确认位;
接收确认位默认为反馈接收确认给发布者,当CRC校验出错的情况,接收确认反馈能作为消息传输的二次确认;若接收反馈确认关闭时,CRC校验出错,消息传输协议选择模块接收到的错误的网络信息发送到中间件服务器,订阅者会接收到与实际设备信息不相符的数据;若接收反馈确认失效时,即使CRC校验正确,网络信息仍要丢弃重传,保证消多协议自适配模块接收到的消息准确无误。
网络消息传输确认位长度为2bit;
其中,网络消息传输确认位01为不发送反馈确认、10为发送反馈确认;00为失效;11为位保留;如果二进制数据流信息的消息传输确认头部为01,多协议自适配模块不对发布者发送反馈确认信号;如果二进制数据流信息的消息传输确认头部为10,多协议自适配模块向发布者发送反馈确认信号,与此同时,发布者接收到反馈确认信号后向多协议自适配模块发送确认接收信号以通知模块收到信号;如果二进制数据流信息的消息传输确认头部为00,网络消息传输确认头部失效,当接收到经过CRC校验后的网络信息时,忽略头部00,直接进行消息传输。
(4)在协议选择头部中增加协议选择位;
协议选择位长度为3bit;
在3bit头部信息中,001代表AMQP消息传输协议,010代表MQTT消息传输协议,其余为位保留,以便于对所支持的其他消息传输协议做支持扩展。信息选择位在数据流传输到信息传输协议选择模块时,通过对头部的识别,判断信息传输过程中所采用的消息传输协议,并将带有特定消息传输协议的信息传送到对应的中间件中。
如果协议选择位为001,网络信息将被送往AMQP代理中间件,由AMQP中间件对接收到的数据流做进一步的解码,并根据AMQP消息传输协议的路由规则,将网络消息发送到与之绑定的消息队列中等待订阅者接收消息。
如果协议选择位为010,网络信息将被送往MQTT代理中间件,由MQTT中间件对接收到的数据流做进一步的解码,并根据MQTT消息传输协议的发布规则,将网络消息封装在每个主题下,订阅者通过订阅特定的主题获取相应主题下的消息。
若为其他PubSub模式下支持的消息传输协议时,多协议自适配模块将接收到的网络消息传送至多中间服务器中的相应传输协议的中间件中,等待对应的消费者消息队列。
工业现场设备中存在大量的生产加工设备及传感器等,使用OPC UA PubSub传输信息时,传感器数据的传送对带宽需求不高,而生产加工设备则对带宽有更高的需求,所以当传输传感器采集数据时,采用MQTT消息传输协议,当传输生产加工设备信息时,采用AMQP消息传输协议。
(5)在协议选择头部中增加Qos位;
Qos位的长度为2bit;
多协议自适配模块中支持三种Qos;其中,Qos位的00为至多传输一次,不保证数据传输完整性、01为至少传输一次,在丢包时进行再次传输,直到传输完整为止、11为精确传输一次、00为位保留。
Qos通过保证传输带宽、降低传送时延、降低数据丢包率、降低数据时延的抖动来保证传输的服务质量。
所述的至多传输一次,不保证数据传输的完整性即为Best Effort模型,发布者发出任意数量的报文,传输网络尽最大可能性将报文传输至代理中间件,对网络带宽、传送时延、丢包率等不提供任何保障,此时,代理中间件服务器可能收到完整的报文信息,也有可能是丢失部分数据的残缺信息。
所述的至少传输一次,在丢包时进行再次传输,直到传输完整为止即为DiffServ模型,发布者发布任意数量的报文,传输网络通过对不同的报文进行标记,并根据不同的优先级进行划分,当出现高优先级打断低优先级时,已传输的低优先级数据会被存储在缓存队列中,等待高优先级数据报文传送完成后,根据断点位置继续传输,直到完整的传输到代理中间件服务器为止。
所述的精确传输一次即为IntServ模型,发布者在发送报文前,提前向网络申请资源预留,对传输过程中的网络带宽、传送时延、丢包率等问题作出相应的保障,保证数据流精确准时的送达到代理中间件服务器中。
当协议选择头部传输到Qos位时,且多协议自适配模块接收到多条网络消息。
如图3所示,为Qos优先级判断流程图;
Qos_0为至多传输一次,不保证数据的完整性,如Qos为Qos_0时,传输线路的扰动和网络丢包等问题的出现会导致中间件服务器收到一段不完整的网络信息。
Qos_1为至少传输一次,保证数据传输的完整性,如Qos为Qos_1时,Qos会根据传输消息的优先级决定链路的占用,AMQP优先级为3、MQTT优先级为2、其他消息传输协议优先级为3。
当AMQP消息传输协议传输网络信息时,网络消息不会被打断,为最高优先级。
当MQTT消息传输协议传输网络消息时,AMQP消息传输协议也要传输网络消息到多协议自适配模块时,MQTT消息被打断,存入到模块的缓存队列中,等待AMQP消息传输结束后,根据断点位置继续进行传输。
Qos_2为准确传输一次,充分预留足够的带宽与通信链路,根据传输协议的优先级进行网络信息的传输。
通过在多消息传输协议选择模块中实现Qos功能,有效的实现了对多消息传输协议的数据流冲突检测与调度管理,对数据流信息可靠性提供了保障。
3、如图5所示,为多协议自适配模块接收到带有协议选择头部的网络信息到消费者消费消息的流程图;
多协议自适配模块通过开启标志位判断模块是否开启;当选择否时,中间件服务器所采用的中间件为传统OPC UA PubSub到中间件服务器的单一消息传输协议的中间件;当选择是时,多协议自适配模块开启。
对网络信息做CRC校验;
向发布者发送接收确认信号,表明消息传输协议模块接收到网络信息;
对接收到的网络信息做消息传输协议选择;当网络消息选择AMQP时,将消息发送至多中间件服务器,并发送到AMQP消息传输队列;当网络消息选择MQTT时,将消息发送至多中间件服务器,并发送到MQTT主题传输队列;订阅者通过订阅感兴趣的信息,消费队列消息;
4、如图4所示,为PubSub层订阅者读取网络信息过程包括以下步骤:
订阅者通过信息筛选模块对网络信息进行筛选,获取需要的数据集信息;订阅者通过数据集读取,对数据集信息进行解码,获取订阅者感兴趣的数据集;订阅者通过订阅者配置将数据集映射到订阅者地址空间,以供地址空间变量的更新;数据监控系统通过OPCUA客户端获取更新的变量信息。
5、如图6所示,为发布者、中间件服务器、订阅者的整体ISO架构图;
(1)发布者ISO架构部分包含如下:应用层由OPC UA层、PubSub层、消息传输协议选择层构成;消息经过上述三层封装,发送至传输层。传输层采用TCP传输控制协议对应用层信息封装;网络层采用IP协议,将传输层的信息封装成IP数据报;数据链路层采用IEEE802.1Q协议,将IP数据报封装成帧;物理层采用IEEE802.3协议,将数据帧在链路上进行传输;
(2)中间件服务器ISO架构包含多协议自适配模块、中间件两部分:
1、多协议自适配模块ISO架构部分信息传输流程有如下步骤:
物理层、数据链路层、网络层、传输层、应用层与发布者ISO架构相同;消息传输协议选择层通过接收发布者网络消息,并对采用的消息传输协议进行选择,并未对协议选择层上的两层做拆包处理;
2、中间件ISO架构部分信息传输流程有如下步骤:
物理层、数据链路层、网络层、传输层与发布者相同;应用层包含:OPCUA层、PubSub层;中间件接收多协议自适配模块传输的网络信息,并将带有特定消息传输协议的网络消息缓存到对应的消息队列中。故,应用层仅包含OPC UA层、PubSub层;
(3)订阅者ISO架构部分包含如下:
物理层、数据链路层、网络层、传输层、应用层与中间件服务器中的中间件ISO架构相同;OPC UA层通过配置模块将PubSub信息映射到OPC UA层的地址空间中;
6、如图7所示,为整体系统原理图;
工业现场设备通过映射,将设备消息映射到OPC UA地址空间中,并通过发布者配置模块将OPC UA地址空间的变量映射到PubSub中,经过负载编码及传输协议选择等一系列操作,PubSub将生成带有消息传输协议选择头部的网络信息发送到多协议自适配模块中,并根据模块开启与否,将网络消息发送到对应的中间件服务器中,订阅者获取中间件服务器中消息缓存队列的网络消息,网络消息通过订阅者配置映射到OPC UA地址空间的变量,变量最终被发送到数据监控系统中,用于数据监控系统的数据更新。
Claims (6)
1.一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,其步骤为:
1)将发布者发送的网络消息封装为带有协议选择头、尾部的网络信息;
1.1)协议选择头、尾部用于多协议自适配模块对发布者发送的网络信息所采用的消息传输协议进行识别;即,在发布者ISO模型应用层中的PubSub层后,增设消息传输协议选择层;
1.2)协议选择头部包括:CRC检验头、开启标志、接收确认、协议选择、Qos;
1.2.1)CRC校验头:判断校验起始位;
1.2.2)开启标志:判断多协议自适配模块是否开启;
1.2.3)接收确认:判断多协议自适配模块是否完整接收到带有协议选择头、尾部的网络消息;
1.2.4)协议选择:发布者发送的网络消息所采用的消息传输协议;消息传输协议包括:AMQP、MQTT等;
1.2.5)Qos:支持三种Qos,用于保证传输的网络消息的服务质量;
1.3)协议选择尾部包括:CRC校验尾;
1.3.1)CRC校验尾:判断校验截止位;
2)发布者将带有协议选择头、尾部的网络信息传输到多协议自适配模块中;
3)在中间件服务器中部署多协议自适配模块,用于接收发布者所发送的带有协议选择头、尾部的网络消息;通过协议选择头、尾部,分析网络消息传输的完整性,并对网络消息所采用的消息传输协议作出判断,并转发到中间件服务器集群上相应的中间件服务器中;
3.1)多协议自适配模块的ISO模型与发布者ISO模型保持一致;模块的消息传输协议选择层用于接收PubSub发布者发布的带有消息传输协议选择头部的网络信息,并对网络信息做校验、流量管理、冲突检测及协议选择;
3.1.1)模块通过协议选择头、尾部对接收到的网络信息做CRC校验,来判断传输过程中是否存在丢失等情况;
如果校验失败,信息丢弃重传;
如果校验成功,包含校验失败但判断为成功的情况,将接收到的网络消息做下一步信息处理;
3.1.2)模块通过开启标志位控制模块是否开启;
如果模块未开启,说明中间件服务器为传统OPC UA PubSub基于代理形式的单一中间件服务器-AMQP中间件服务器或MQTT中间服务器,中间件服务器仅支持一种特定消息传输协议的中间件;
如果模块开启,说明中间件服务器支持多消息传输协议,模块将实现自身的多消息传输协议选择功能;
3.1.3)在模块开启状态下接收到网络消息,通过接收确认判断是否发送接收确认信号给发布者,并告知发布者,多协议自适配模块已收到来自发布者所发布的经过CRC校验无误的网络信息;
如果在数据传输完全可信的理想状态,可取消发送接收确认信号给发布者,但该功能默认开启;
3.1.4)当接收确认信号已反馈给发布者后,模块通过判断消息传输协议选择头部,获取网络信息所采用的消息传输协议,并将网络消息发送至对应的中间件服务器;
3.1.5)多协议自适配模块支持三种Qos;
当多网络消息数据流存在时,如果选择Qos至多传输一次,则传输可能存在丢包等现象,模块接收信息不完整;
如果选择Qos至少传输一次,传输会根据相应的优先级进行传输,AMQP优先级为3;
MQTT优先级为2;其他消息传输协议优先级为1;高优先级可以打断低优先级,低优先级被打断后,可以在高优先级传输完成后,根据断点继续传输;
如果Qos为精确传输一次,传输前会对相应的网络带宽进行预留,并保证链路传输时不会有其他数据流传输,传输不会被打断;
通过Qos机制,多协议自适配模块可以处理发布者多条网络信息,实现了数据流控制与冲突检测;实现了多协议自适配模块对带有消息传输选择协议头部的网络信息的分类与转发的功能;
3.2)中间件服务器集群用于接收来自多协议自适配模块分类与转发后的网络消息,并由对应的中间件服务器进行接收,中间件服务器集群包括三种中间件服务器:(1)支持AMQP、MQTT多消息传输协议的多中间件服务器;(2)支持AMQP消息传输协议的中间件服务器;(3)支持MQTT消息传输协议的中间件服务器;
4)中间件服务器将接收到的网络消息放置到对应的消息队列中,供订阅者获取消息。
2.根据权利要求1中所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,
所述的消息传输协议选择层位于ISO模型的应用层中,应用层通过对带有信息传输协议的网络信息进一步封装,获取带有协议选择头、尾部的网络信息;消息传输协议选择层位于PubSub发布者应用层中的PubSub层后,用于发送到多协议自适配模块时,对网络消息做识别与分类转发;
应用层仅包含消息传输协议选择层,其作用仅用于对消息头部识别,及分类转发到多中间件服务器集群中的对应中间件服务器,并不会将网络信息做进一步处理,此时网络信息为PubSub网络信息。
3.根据权利要求1所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,所述的步骤3.2)中,具体方法为:
3.2.1)当3.1.2)中所提到的开启标志开启时,多协议自适配模块开始工作,经模块分类与转发后的网络消息将发送到上述多中间件服务器中;
3.2.2)当3.1.2)中所提到的开启标志关闭时,多协议自适配模块不工作,网络消息将发送到AMQP消息传输协议中间件服务器或MQTT消息传输协议中间件服务器。
4.根据权利要求1中所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,所述的3.2)中,多中间件服务器就是在中间件服务器上运行多个不同消息传输协议的中间件,包括:AMQP中间件、MQTT中间件。
5.根据权利要求1-4中任意一项所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,所述的多协议主要包括AMQP高级消息队列传输协议、MQTT遥测传输协议多种消息传输协议。
6.根据权利要求1-4中任意一项所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,所述的多协议自适配模块包括两种运行模式;
当模块开启,则为多中间件服务器提供消息传输协议的选择功能;
当模块关闭,则为传统PubSub与单一中间件服务器消息传输模式,模块不起作用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011527317.2A CN112637198B (zh) | 2020-12-22 | 2020-12-22 | 一种基于OPC UA PubSub的多协议自适配模块设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011527317.2A CN112637198B (zh) | 2020-12-22 | 2020-12-22 | 一种基于OPC UA PubSub的多协议自适配模块设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112637198A CN112637198A (zh) | 2021-04-09 |
CN112637198B true CN112637198B (zh) | 2023-04-18 |
Family
ID=75321007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011527317.2A Active CN112637198B (zh) | 2020-12-22 | 2020-12-22 | 一种基于OPC UA PubSub的多协议自适配模块设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112637198B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113992740B (zh) * | 2021-10-26 | 2024-03-22 | 超越科技股份有限公司 | 一种基于自主可控的中间件及数据传输方法 |
CN114094707A (zh) * | 2021-11-24 | 2022-02-25 | 国网上海市电力公司 | 一种基于opcua的变电站辅助控制系统及方法 |
CN115118763A (zh) * | 2022-06-27 | 2022-09-27 | 平安银行股份有限公司 | 消息中间件自适应切换的方法及系统、以及数据维护系统 |
CN115514656B (zh) * | 2022-09-30 | 2024-03-29 | 美的集团股份有限公司 | 一种物模型适配方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938731A (zh) * | 2012-11-22 | 2013-02-20 | 北京锐易特软件技术有限公司 | 一种基于代理缓存适配模型的交换集成装置及方法 |
CN107222561A (zh) * | 2017-07-03 | 2017-09-29 | 杭州泰酷科技有限公司 | 一种传输层反向代理方法 |
CN108093070A (zh) * | 2017-12-27 | 2018-05-29 | 复旦大学 | 一种物联网数据服务中间件系统 |
CN109150703A (zh) * | 2018-08-23 | 2019-01-04 | 北方工业大学 | 一种工业物联网智能云网关及其通信方法 |
CN109756508A (zh) * | 2019-01-22 | 2019-05-14 | 深圳壹账通智能科技有限公司 | 基于多协议接入区块链网络的消息代理方法及相关设备 |
CN111585958A (zh) * | 2020-04-01 | 2020-08-25 | 西安电子科技大学 | 物联网平台异构设备自适应接入方法、系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140067902A1 (en) * | 2012-09-04 | 2014-03-06 | Interdigital Patent Holdings, Inc. | Method and apparatus for using multiple universal resource identifiers in m2m communications |
-
2020
- 2020-12-22 CN CN202011527317.2A patent/CN112637198B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938731A (zh) * | 2012-11-22 | 2013-02-20 | 北京锐易特软件技术有限公司 | 一种基于代理缓存适配模型的交换集成装置及方法 |
CN107222561A (zh) * | 2017-07-03 | 2017-09-29 | 杭州泰酷科技有限公司 | 一种传输层反向代理方法 |
CN108093070A (zh) * | 2017-12-27 | 2018-05-29 | 复旦大学 | 一种物联网数据服务中间件系统 |
CN109150703A (zh) * | 2018-08-23 | 2019-01-04 | 北方工业大学 | 一种工业物联网智能云网关及其通信方法 |
CN109756508A (zh) * | 2019-01-22 | 2019-05-14 | 深圳壹账通智能科技有限公司 | 基于多协议接入区块链网络的消息代理方法及相关设备 |
CN111585958A (zh) * | 2020-04-01 | 2020-08-25 | 西安电子科技大学 | 物联网平台异构设备自适应接入方法、系统 |
Non-Patent Citations (1)
Title |
---|
基于前置层和消息总线的数据传输;王东阳等;《计算机系统应用》;20170115(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112637198A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112637198B (zh) | 一种基于OPC UA PubSub的多协议自适配模块设计方法 | |
JP7289332B2 (ja) | 電子制御ユニット、フレーム生成方法及びプログラム | |
CN108370342B (zh) | 网关装置、车载网络系统、转送方法和程序 | |
CN108370343B (zh) | 网络集线器、转送方法以及车载网络系统 | |
US7355971B2 (en) | Determining packet size in networking | |
JP4583691B2 (ja) | スケジューリングおよびヘッダ圧縮を利用しパケット遅延を軽減させるための方法と装置 | |
US9674318B2 (en) | TCP processing for devices | |
JP7192074B2 (ja) | ネットワークハブ、転送方法及び車載ネットワークシステム | |
KR100716184B1 (ko) | 네트워크 프로세서에서의 큐 관리 방법 및 그 장치 | |
CN111083161A (zh) | 数据传输的处理方法及装置、物联网设备 | |
CN109217983B (zh) | 一种工业物联网的作业终端通信协议设计方法 | |
CN113395197B (zh) | 网关装置、车载网络系统、转送方法和计算机可读记录介质 | |
JP2008219555A (ja) | 車載用の中継接続ユニット | |
US8862768B2 (en) | Method and system for packetizing data for servicing traffic end-to-end | |
CN104717041A (zh) | 数据传输方法和装置 | |
US8705524B1 (en) | Systems and methods for embedding metadata in data packets | |
US7680944B1 (en) | Rapid transport service in a network to peripheral device servers | |
CN115118663A (zh) | 结合带内网络遥测获取网络拥塞信息的方法 | |
CN114866477A (zh) | 一种网络设备拥塞控制机制的测试方法、系统及设备 | |
CN112769700B (zh) | 一种基于应用方法编号的路由方法及路由系统 | |
EP3672189B1 (en) | Data transmission method, device and system | |
US8625619B2 (en) | Domain gateway control system and method thereof | |
CN112468513B (zh) | 一种企业网的终端管理通信方法 | |
WO2017203904A1 (ja) | 電子制御ユニット、フレーム生成方法及びプログラム | |
CN115348336A (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 |