1.一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,其步骤为:
1)将发布者发送的网络消息封装为带有协议选择头、尾部的网络信息;
2)发布者将带有协议选择头、尾部的网络信息传输到多协议自适配模块中;
3)在中间件服务器中部署多协议自适配模块,用于接收发布者所发送的带有协议选择头、尾部的网络消息;通过协议选择头、尾部,分析网络消息传输的完整性,对网络消息所采用的消息传输协议作出判断,并将网络消息转发到中间件服务器集群上相应的中间件服务器中;
4)中间件服务器将接收到的网络消息放置到对应的消息队列中,供订阅者获取消息。
2.根据权利要求1所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,所述的步骤1)中,具体方法为:
1.1)通过协议选择头、尾部对多协议自适配模块对发布者发送的网络信息所采用的消息传输协议进行识别,在发布者ISO模型应用层中的PubSub层后,增设消息传输协议选择层;
1.2)协议选择头部包括:CRC检验头、开启标志、接收确认、协议选择、Qos;
1.3)协议选择尾部包括:CRC校验尾。
3.根据权利要求2中所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,
所述的消息传输协议选择层位于ISO模型的应用层中,应用层通过对带有信息传输协议的网络信息进一步封装,获取带有协议选择头、尾部的网络信息;消息传输协议选择层位于PubSub发布者应用层中的PubSub层后,用于发送到多协议自适配模块时,对网络消息做识别与分类转发;
应用层仅包含消息传输协议选择层,其作用仅用于对消息头部识别,及分类转发到多中间件服务器集群中的对应中间件服务器,并不会将网络信息做进一步处理,此时网络信息为PubSub网络信息。
4.根据权利要求2所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,
所述的步骤1.2)中:
1.2.1)CRC校验头:判断校验起始位;
1.2.2)开启标志:判断多协议自适配模块是否开启;
1.2.3)接收确认:判断多协议自适配模块是否完整接收到带有协议选择头、尾部的网络消息;
1.2.4)协议选择:发布者发送的网络消息所采用的消息传输协议。消息传输协议包括:AMQP、MQTT;
1.2.5)Qos:支持三种Qos,用于保证传输的网络消息的服务质量;
所述的步骤1.3)中:
1.3.1)CRC校验尾:判断校验截止位。
5.根据权利要求1所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,所述的步骤3)中,具体方法为:
3.1)多协议自适配模块的ISO模型与发布者ISO模型保持一致,模块的消息传输协议选择层用于接收PubSub发布者发布的带有消息传输协议选择头部的网络信息,并对网络信息做校验、流量管理、冲突检测及协议选择;
3.2)中间件服务器集群用于接收来自多协议自适配模块分类与转发后的网络消息,并由对应的中间件服务器进行接收,中间件服务器集群包括三种中间件服务器:(1)支持AMQP、MQTT多消息传输协议的多中间件服务器;(2)支持AMQP消息传输协议的中间件服务器;(3)支持MQTT消息传输协议的中间件服务器。
6.根据权利要求5所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,所述的步骤3.1)中,具体方法为:
3.1.1)模块通过协议选择头、尾部对接收到的网络信息做CRC校验,来判断传输过程中是否存在丢失情况;
如果校验失败,信息丢弃重传;
如果校验成功,包含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为精确传输一次,传输前会对相应的网络带宽进行预留,并保证链路传输时不会有其他数据流传输,传输不会被打断。
7.根据权利要求6所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,所述的步骤3.2)中,具体方法为:
3.2.1)当3.1.2)中所提到的开启标志开启时,多协议自适配模块开始工作,经模块分类与转发后的网络消息将发送到上述多中间服务器中;
3.2.2)当3.1.2)中所提到的开启标志关闭时,多协议自适配模块不工作,网络消息将发送到AMQP消息传输协议中间件服务器或MQTT消息传输协议中间件服务器。
8.根据权利要求4中所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,所述的3.2)中,多中间件服务器就是在中间件服务器上运行多个不同消息传输协议的中间件,包括:AMQP中间件、MQTT中间件。
9.根据权利要求1‑8中任意一项所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,所述的多协议主要包括AMQP高级消息队列传输协议、MQTT遥测传输协议多种消息传输协议。
10.根据权利要求1‑8中任意一项所述的一种基于OPC UA PubSub的多协议自适配模块设计方法,其特征在于,所述的多协议自适配模块包括两种运行模式;
当模块开启,则为多中间件服务器提供消息传输协议的选择功能;
当模块关闭,则为传统PubSub与单一中间件服务器消息传输模式,模块不起作用。