船舶数据的处理方法及装置与流程

文档序号:20455016发布日期:2020-04-17 23:55阅读:921来源:国知局
船舶数据的处理方法及装置与流程

本发明涉及船舶通信技术领域,特别是指一种船舶数据的处理方法及装置。



背景技术:

智能船技术需求明确要将船和岸通过网络结合在一起,将船上的所有感知数据同时发送到岸基平台;而岸基结合了大数据分析技术后,在航线和航速优化,辅助驾驶与避碰,保障支持和运营管理等方面发挥作用。通过连续的船舶数据搜集,可以在岸基构筑一艘或多艘虚拟的数字船,连续跟踪和分析船舶运行状态,对未来航行过程做出预判,给出辅助决策。

但是实际使用过程中,岸基应用有时也需要获取船端应用,而且通常岸基应用允许一定的时间延迟,但是标准dds协议无法适应此种场景,且船与船分别位于一个局域网中,这些局域网之间没有通信连接,使得位于不同局域网中的船与船之间无法通信。



技术实现要素:

本发明提供了一种船舶数据的处理方法及装置。可以实现岸端可以按需获取分发数据,同时保证位于不同局域网中的船与船之间可以进行通信。

为解决上述技术问题,本发明的实施例提供如下方案:

一种船舶数据的处理方法,应用于岸基数据处理中心服务器,所述岸基数据处理中心服务器处于第一局域网中,具有固定公网ip地址;所述方法包括:

获取位于不同局域网中的船舶的第一数据信息,所述第一数据信息是船舶所处的局域网的地址信息;所述船舶所处的局域网与所述第一局域网是不同的局域网;

将所述位于不同的局域网中的船舶的第一数据信息,分发给各局域网中的船舶的客户端。

可选的,所述获取位于不同局域网中的船舶的第一数据信息,包括:

建立不同局域网与所述岸基数据处理中心服务器之间的quic连接,所述quic连接是快速用户数据报协议udp网络连接;

基于所述quic连接,获取位于不同局域网中的船舶的第一数据信息,所述第一数据信息采用quic协议的数据格式进行封装。

可选的,将所述位于不同的局域网中的船舶的第一数据信息,分发给各局域网中的船舶的客户端,包括:

基于所述quic连接,将所述位于不同的局域网中的船舶的第一数据信息,分发给各局域网中的船舶的客户端。

可选的,建立不同局域网与所述岸基数据处理中心服务器之间的quic连接,包括:

接收位于不同局域网中的船舶的客户端发送的初始化连接请求;

向位于不同局域网中的船舶的客户端发送所述岸基数据处理中心服务器的服务器证书;

接收位于不同局域网中的船舶的客户端反馈的验证证书;

若所述验证证书表示验证成功,建立所述quic连接成功,并和所述位于不同局域网中的船舶的客户端同步建立quic连接的相关信息;

若验证证书表示没有验证成功,则再次建立不同局域网与所述岸基数据处理中心服务器之间的quic连接。

可选的,再次建立不同局域网与所述岸基数据处理中心服务器之间的quic连接,包括:

接收位于不同局域网中的船舶的客户端发送的加密问候消息;

向位于不同局域网中的船舶的客户端返回评估内容;

根据所述评估内容再次建立不同局域网与所述岸基数据处理中心服务器之间的quic连接。

可选的,船舶数据的处理方法还包括:基于所述quic连接,若所述岸基数据处理中心服务器与位于不同局域网中的船舶的客户端之间的数据包丢失,向位于不同局域网中的船舶的客户端发送一个确认帧,要求停止否定确认所述数据包。

可选的,建立所述quic连接的过程中,还包括:

发送第一数据包,所述第一数据包是被认证的加密证书;

发送第二数据包,所述第二数据包包含加密内容请求;

如果位于不同局域网中的船舶的客户端没有收到所述第一数据包和/或第二数据包,quic连接不建立;否则,quic连接建立。

本发明的实施例还提供一种船舶数据的处理装置,应用于岸基数据处理中心服务器,所述岸基数据处理中心服务器处于第一局域网中,具有固定ip地址;所述装置包括:

获取模块,用于获取位于不同局域网中的船舶的第一数据信息,所述第一数据信息是船舶所处的局域网的地址信息;所述船舶所处的局域网与所述第一局域网是不同的局域网;

处理模块,用于将所述位于不同的局域网中的船舶的第一数据信息,分发给各局域网中的船舶的客户端。

可选的,所述获取模块用于:建立不同局域网与所述岸基数据处理中心服务器之间的quic连接,所述quic连接是快速用户数据报协议udp网络连接;

基于所述quic连接,获取位于不同局域网中的船舶的第一数据信息,所述第一数据信息采用quic协议的数据格式进行封装。

可选的,所述处理模块用于基于所述quic连接,将所述位于不同的局域网中的船舶的第一数据信息,分发给各局域网中的船舶的客户端。

本发明的实施例提供一种船舶数据的处理方法,应用于位于局域网中的船舶的客户端,所述方法包括:

向岸基数据处理中心服务器发送船舶的第一数据信息,所述第一数据信息是船舶所处的局域网的地址信息;所述船舶所处的局域网与所述第一局域网是不同的局域网;所述岸基数据处理中心服务器处于第一局域网中,具有固定ip地址,所述船舶所处的局域网的ip地址动态分配;

接收所述岸基数据处理中心服务器发送的所述位于不同的局域网中的船舶的第一数据信息。

可选的,向岸基数据处理中心服务器发送船舶的第一数据信息,包括:

建立不同局域网与所述岸基数据处理中心服务器之间的quic连接,所述quic连接是快速用户数据报协议udp网络连接;

基于所述quic连接,向岸基数据处理中心服务器发送船舶的第一数据信息,所述第一数据信息采用quic协议的数据格式进行封装。

可选的,接收所述岸基数据处理中心服务器发送的所述位于不同的局域网中的船舶的第一数据信息,包括:

基于所述quic连接,接收所述岸基数据处理中心服务器发送的所述位于不同的局域网中的船舶的第一数据信息。

可选的,船舶数据的处理方法还包括:位于第二局域网中的船舶的客户端,根据接收到的位于第三局域网中的船舶的客户端的第一数据信息,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输。

可选的,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输,包括:基于船载网络数据订阅式通信协议dscp,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输。

可选的,基于船载网络数据订阅式通信协议dscp,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输,包括:

位于第二局域网中的船舶与位于第三局域网中的船舶建立基于船载网络数据订阅式通信协议dscp的dscp连接;

基于所述dscp连接,将位于第二局域网中的船舶的第一设备集合中的设备信息发布于全局数据空间,并从所述全局数据空间,获取所述位于第三局域网中的船舶的客户端发布的第三局域网中的船舶的第二设备集合中的设备信息。

可选的,所述第一设备集合中的设备信息以及所述第二设备集合中的设备信息的数据格式均包括:域信息字段、域参与者信息字段、主题字段、数据发布者字段以及数据订阅者字段。

本发明的实施例还提供一种船舶数据的处理装置,应用于位于局域网中的船舶的客户端,所述装置包括:

发送模块,用于向岸基数据处理中心服务器发送船舶的第一数据信息,所述第一数据信息是船舶所处的局域网的地址信息;所述船舶所处的局域网与所述第一局域网是不同的局域网;所述岸基数据处理中心服务器处于第一局域网中,具有固定公网ip地址,所述船舶所处的局域网的ip地址动态分配;

接收模块,用于接收所述岸基数据处理中心服务器发送的所述位于不同的局域网中的船舶的第一数据信息。

可选的,发送模块用于:建立不同局域网与所述岸基数据处理中心服务器之间的quic连接,所述quic连接是快速用户数据报协议udp网络连接;基于所述quic连接,向岸基数据处理中心服务器发送船舶的第一数据信息,所述第一数据信息采用quic协议的数据格式进行封装。

可选的,所述接收模块基于所述quic连接,接收所述岸基数据处理中心服务器发送的所述位于不同的局域网中的船舶的第一数据信息。

可选的,位于第二局域网中的船舶的客户端还包括:

处理模块,用于根据接收到的位于第三局域网中的船舶的客户端的第一数据信息,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输。

可选的,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输,包括:

基于船载网络数据订阅式通信协议dscp,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输。

本发明的实施例还提供一种船舶数据的处理系统,包括:

岸基数据处理中心服务器,所述岸基数据处理中心服务器处于第一局域网中,具有固定ip地址;以及

位于不同局域网中的船舶的客户端,船舶所处的局域网的ip地址动态分配;所述船舶所处的局域网与所述第一局域网是不同的局域网;

所述应用于岸基数据处理中心服务器包括如上所述的船舶数据的处理装置;

所述应用于位于局域网中的船舶的客户端包括如上所述的船舶数据的处理装置。

本发明的实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机运行时,使得计算机执行如上所述的方法。

本发明的上述方案至少包括以下有益效果:

本发明的上述方案,通过岸基数据处理中心服务器获取位于不同局域网中的船舶的第一数据信息,所述第一数据信息是船舶所处的局域网的地址信息;所述船舶所处的局域网与所述第一局域网是不同的局域网;将所述位于不同的局域网中的船舶的第一数据信息,分发给各局域网中的船舶的客户端。从而可以达到岸端可以按需获取分发数据,同时保证位于不同局域网中的船与船之间可以进行通信。

附图说明

图1为本发明的实施例岸基数据处理中心服务器侧的船舶数据的处理方法流程图;

图2为本发明的实施例岸基数据处理中心服务器与各船舶所处的局域网的组网示意图;

图3至图6为本发明的实施例quic协议的四个阶段的流程示意图;

图7为本发明的实施例基数据处理中心服务器侧的船舶数据的处理装置的模块示意图;

图8为本发明的实施例位于局域网中的船舶的客户端侧的船舶数据的处理方法流程示意图;

图9为本发明的dscp协议的实现架构示意图;

图10为本发明的实施例位于局域网中的船舶的客户端侧的船舶数据的处理装置的模块示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

如图1所示,本发明的实施例提供一种船舶数据的处理方法,应用于岸基数据处理中心服务器,所述岸基数据处理中心服务器处于第一局域网中,具有固定ip地址;所述方法包括:

步骤11,获取位于不同局域网中的船舶的第一数据信息,所述第一数据信息是船舶所处的局域网的地址信息;所述船舶所处的局域网与所述第一局域网是不同的局域网;

步骤12,将所述位于不同的局域网中的船舶的第一数据信息,分发给各局域网中的船舶的客户端。

该实施例通过岸基数据处理中心服务器获取位于不同局域网中的船舶的第一数据信息,所述第一数据信息是船舶所处的局域网的地址信息;所述船舶所处的局域网与所述第一局域网是不同的局域网;将所述位于不同的局域网中的船舶的第一数据信息,分发给各局域网中的船舶的客户端。从而可以达到岸端可以按需获取分发数据,同时保证位于不同局域网中的船与船之间可以进行通信。

本发明的一可选实施例中,步骤11可以包括:

步骤111,建立不同局域网与所述岸基数据处理中心服务器之间的quic连接,所述quic连接是快速用户数据报协议udp网络连接;

步骤112,基于所述quic连接,获取位于不同局域网中的船舶的第一数据信息,所述第一数据信息采用quic协议的数据格式进行封装。

本发明的一可选实施例中,步骤12可以包括:

步骤121,基于所述quic连接,将所述位于不同的局域网中的船舶的第一数据信息,分发给各局域网中的船舶的客户端。

船岸之间采用基于quic(quickudpinternetconnection,快速用户数据报协议udp网络连接)协议的船岸通讯,是一个新的基于udp的多路复用且安全的传输协议。tcp/ip协议族是互联网的基础,其中传输层协议包括tcp和udp协议。与tcp协议相比,udp更为轻量,但是错误校验也要少得多。这意味着udp往往效率更高(不经常跟服务器端通信查看数据包是否送达或者按序),但是可靠性比不上tcp。quic很好地解决了当今传输层和应用层面临的各种需求,包括处理更多的连接,安全性和低延迟。quic融合了包括tcp,tls,http/2等协议的特性。quic的一个主要目标就是减少连接延迟,当客户端第一次连接服务器时,quic只需要1rtt(round-triptime)的延迟就可以建立可靠安全的连接,相对于tcp+tls的1-3次rtt要更加快捷。之后客户端可以在本地缓存加密的认证信息,在再次与服务器建立连接时可以实现0-rtt的连接建立延迟。quic同时复用了http/2协议的多路复用功能(multiplexing),但由于quic基于udp所以避免了http/2的线头阻塞(head-of-lineblocking)问题。因为quic基于udp,运行在用户域而不是系统内核,使得quic协议可以快速的更新和部署,从而很好地解决了tcp协议部署及更新的困难。

本发明的一可选实施例中,上述步骤111可以包括:

步骤1111,接收位于不同局域网中的船舶的客户端发送的初始化连接请求;

步骤1112,向位于不同局域网中的船舶的客户端发送所述岸基数据处理中心服务器的服务器证书;

步骤1113,接收位于不同局域网中的船舶的客户端反馈的验证证书;

步骤1114,若所述验证证书表示验证成功,建立所述quic连接成功,并和所述位于不同局域网中的船舶的客户端同步建立quic连接的相关信息;

步骤1115,若验证证书表示没有验证成功,则再次建立不同局域网与所述岸基数据处理中心服务器之间的quic连接。

其中,再次建立不同局域网与所述岸基数据处理中心服务器之间的quic连接,包括:

步骤11151,接收位于不同局域网中的船舶的客户端发送的加密问候消息;

步骤11152,向位于不同局域网中的船舶的客户端返回评估内容;

步骤11153,根据所述评估内容再次建立不同局域网与所述岸基数据处理中心服务器之间的quic连接。

本发明的一可选实施例中,船舶数据的处理方法还可以包括:

步骤1116,基于所述quic连接,若所述岸基数据处理中心服务器与位于不同局域网中的船舶的客户端之间的数据包丢失,向位于不同局域网中的船舶的客户端发送一个确认帧,要求停止否定确认所述数据包。

建立所述quic连接的过程中,还包括:

步骤1117,发送第一数据包,所述第一数据包是被认证的加密证书;

步骤1118,发送第二数据包,所述第二数据包包含加密内容请求;

步骤1119,如果位于不同局域网中的船舶的客户端没有收到所述第一数据包和/或第二数据包,quic连接不建立;否则,quic连接建立。

下面结合图2至图6说明上述实施例的实现过程:

图2为岸基数据处理中心服务器与各船舶所处的局域的组网示意图,岸基数据处理中心服务器处于第一局域网(如dds03)中,具有固定公网ip地址;所述船舶所处的局域网与所述第一局域网是不同的局域网,这里以船舶所处的第二局域网(如dds01)以及船舶所处的第三局域网(如dds03)为例进行说明,两个dds01,dds02代表两个船舶的数据分发节点,每个船的局域网下有多个客户端,各个局域网客户端通过组播进行通信。

岸基数据处理中心服务器需要有一个固定公网ip的注册中心,能够保证dds01、dds02能与注册中心通过udp通讯。

船舶局域网内的客户端通过stun(sessiontraversalutilitiesfornat,nat会话穿越应用程序)协议,stun允许位于nat(或多重nat)后的客户端找出自己的公网地址,查出自己位于哪种类型的nat以及nat为某一个本地端口所绑定的internet端端口。这些信息被用来在两个同时处于nat路由器之后的主机之间创建udp通信。

局域网穿成功,获取外网的通讯端口。这方面有一个前提就是局域网的nat结构要求是非对称nat,或者在局域网防火墙上进行设置,保证内网机器通过公网发送数据的端口和接收数据的端口保持不变。

提供一套统一的通信sdk,对于上层应用无需感知到底层的穿透过程,用户需要船岸传输数据只需要调用对应的接口即可,岸基数据回传也是同样,直接访问数据接口将数据发往船端,不用关注底层通信细节。

船岸通讯采用quic协议保证连接的低延时、通道复用,采用tls1.3保证数据传输安全,quic+tls1.3消除安全传输层的延迟。

如图3、4、5、6所示,为quic协议有四个阶段,其中,如图3所示,启动时的第一次连接:初始化问候消息(协商信息,一个或多个请求),服务器返回散列链证书,且证明收件人控制目标客户端ip端口。客户端验证服务器证书,若验证失败,进入2rtt,发送请求和同步cookie。需要说明的是,这里的客户端和服务器是客户端和服务器模式,比如,上述这里的服务器可以是上述岸基数据处理中心服务器的客户端,岸基数据处理中心服务器可以安装有多个客户端,岸基数据处理中心服务器之间与其各客户端是组播关系;位于不同局域网中的船舶的客户端也可以是多个,局域网与各船舶的客户端也是组播关系。上述步骤1111中,具体可以是岸基数据处理中心服务器的客户端接收位于不同局域网中的船舶的客户端发送的初始化连接请求,即这里的初始化问候消息。上述步骤1112中,服务器证书即这里的散列链证书。

如图4所示,重复连接时,客户端将推测,服务器仍然使用那个可见并且验证过的证书。客户端拥有证明,它控制了返回ip地址和端口。服务器收到包,评估其内容。如果被猜测的服务器公钥不再使用,或消息提出的谈判结果不被服务器所接受,那么服务器可能拒绝数据包的内容。回到第一次连接,收到的包丢弃。

如图5所示,当连接在稳定状态时,出现丢包情况时,客户端确认哈希表是正确,声明包k丢失了。发送一个确认帧,要求服务器停止否定确认上述包k。

如图6所示,关于积极的推测重传的过程,客户端先发送第一个包,即被认证的加密证书,接着发送第二包,包含加密内容请求,如果服务器没有收到其中某个包,连接将不会建立,或者至少内容不会被及时请求。客户端可能等待很短的实际并重新发送这两个连接开始包。

已收数据的确认会定期发送,当没有收到确认时,超时可以自发地重传。quic在拥塞避免算法的基础上还加入了心跳包,用于减少丢包率。quic使用了fec(前向纠错码)来恢复数据,fec采用简单异或的方式。每次发送一组数据,包括若干个数据包后,并对这些数据包依次作异或运算,最后的结果作为一个fec包再发送出去。接收方收到一组数据后,根据数据包和fec包即可以进行校验和纠错。

本发明的上述实施例,船岸通讯拟采用quic(quickudpinternetconnection)协议保证连接的低延时、通道复用。

如图7所示,本发明的实施例还提供一种船舶数据的处理装置70,应用于岸基数据处理中心服务器,所述岸基数据处理中心服务器处于第一局域网中,具有固定ip地址;所述装置70包括:

获取模块71,用于获取位于不同局域网中的船舶的第一数据信息,所述第一数据信息是船舶所处的局域网的地址信息;所述船舶所处的局域网与所述第一局域网是不同的局域网;

处理模块72,用于将所述位于不同的局域网中的船舶的第一数据信息,分发给各局域网中的船舶的客户端。

可选的,所述获取模块71用于:建立不同局域网与所述岸基数据处理中心服务器之间的quic连接,所述quic连接是快速用户数据报协议udp网络连接;

基于所述quic连接,获取位于不同局域网中的船舶的第一数据信息,所述第一数据信息采用quic协议的数据格式进行封装。

可选的,所述处理模块72用于基于所述quic连接,将所述位于不同的局域网中的船舶的第一数据信息,分发给各局域网中的船舶的客户端。

可选的,建立不同局域网与所述岸基数据处理中心服务器之间的quic连接,包括:

接收位于不同局域网中的船舶的客户端发送的初始化连接请求;

向位于不同局域网中的船舶的客户端发送所述岸基数据处理中心服务器的服务器证书;

接收位于不同局域网中的船舶的客户端反馈的验证证书;

若所述验证证书表示验证成功,建立所述quic连接成功,并和所述位于不同局域网中的船舶的客户端同步建立quic连接的相关信息;

若验证证书表示没有验证成功,则再次建立不同局域网与所述岸基数据处理中心服务器之间的quic连接。

可选的,再次建立不同局域网与所述岸基数据处理中心服务器之间的quic连接,包括:

接收位于不同局域网中的船舶的客户端发送的加密问候消息;

向位于不同局域网中的船舶的客户端返回评估内容;

根据所述评估内容再次建立不同局域网与所述岸基数据处理中心服务器之间的quic连接。

可选的,所述处理模块72还用于:基于所述quic连接,若所述岸基数据处理中心服务器与位于不同局域网中的船舶的客户端之间的数据包丢失,向位于不同局域网中的船舶的客户端发送一个确认帧,要求停止否定确认所述数据包。

需要说明的是,该装置是与上述图1所示方法对应的装置,上述方法实施例中所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。

如图8所示,本发明的实施例提供一种船舶数据的处理方法,应用于位于局域网中的船舶的客户端,所述方法包括:

步骤81,向岸基数据处理中心服务器发送船舶的第一数据信息,所述第一数据信息是船舶所处的局域网的地址信息;所述船舶所处的局域网与所述第一局域网是不同的局域网;所述岸基数据处理中心服务器处于第一局域网中,具有固定ip地址,所述船舶所处的局域网的ip地址动态分配;

步骤82,接收所述岸基数据处理中心服务器发送的所述位于不同的局域网中的船舶的第一数据信息。

本发明的一可选的实施例中,步骤81可以包括:

步骤811,建立不同局域网与所述岸基数据处理中心服务器之间的quic连接,所述quic连接是快速用户数据报协议udp网络连接;

步骤812,基于所述quic连接,向岸基数据处理中心服务器发送船舶的第一数据信息,所述第一数据信息采用quic协议的数据格式进行封装。

本发明的一可选的实施例中,步骤72可以包括:

步骤821,基于所述quic连接,接收所述岸基数据处理中心服务器发送的所述位于不同的局域网中的船舶的第一数据信息。

本发明的一可选的实施例中,船舶数据的处理方法还可以包括:

步骤83,位于第二局域网中的船舶的客户端,根据接收到的位于第三局域网中的船舶的客户端的第一数据信息,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输。

可选的,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输,包括:

基于船载网络数据订阅式通信协议dscp,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输。

可选的,基于船载网络数据订阅式通信协议dscp,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输,包括:

位于第二局域网中的船舶与位于第三局域网中的船舶建立基于船载网络数据订阅式通信协议dscp的dscp连接;

基于所述dscp连接,将位于第二局域网中的船舶的第一设备集合中的设备信息发布于全局数据空间,并从所述全局数据空间,获取所述位于第三局域网中的船舶的客户端发布的第三局域网中的船舶的第二设备集合中的设备信息。

这里的第一设备集合中的设备信息以及所述第二设备集合中的设备信息的数据格式均包括:域信息字段、域参与者信息字段、主题字段、数据发布者字段以及数据订阅者字段。

下面结合图2和图9说明该实施例的具体实现过程:

如图2所示,dds01中的船舶的客户端基于与岸基数据处理中心服务器的交互,获取dds02中的船舶的ip地址,从而可以基于dscp连接,dds01中的船舶的任一客户端可以直接获取dds02中的船舶的任一客户端的数据。各个船端客户端都有安全证书保证接入身份的安全。

dds01中的船舶的各个客户端会发布自己的数据到全局数据空间,dds02中的船舶的各个客户端会发布自己的数据到全局数据空间,各个船端客户端从全局数据空间获取自己需要的数据。

具体的,如图9所示,全局数据空间由发布/订阅登记表、发布数据缓冲区和接收数据缓冲区等部分构成。发布/订阅登记表记录了所有发布/订阅消息主题、发布者/订阅者地址以及该类信息的主要特征,如数据有效期、消息优先级、实时/可靠性要求等,所有主机上的发布/订阅主题表保持一致并实时更新;发布数据缓冲区保存了本主机发布且需要保存的发送数据,即发布后仍需要继续保留一段时间,支持订阅者在这段时间内正确索取的数据,全局数据空间根据数据有效期动态删除或更新数据;接收数据缓冲区是必不可少的数据缓冲队列,全局数据空间为每一个订阅进程分配一个这样的队列用以缓冲其接收却未能及时处理的消息。

每个dscp应用仅在本地存储它需要的数据,当整个网络内的任何应用需要他们时,提供给对应应用。所有的数据分发工作全部都由dscp完成。全局数据空间是一个虚拟概念,实际上是本地存储的集合。每个应用,可以用几乎任何一种语言编写,运行在任何系统上,可以在本地内存上读到最好的数据格式显示的数据。全局数据空间可以在嵌入式系统、移动和云应用之间共享数据,采用任意的传输方式,无论语言和系统,保证极低的延迟。

dscp基本结构是域(domain),由域号唯一标识。域将各个应用程序绑定在一起进行通信,只有在同一个域内的通信实体才能通信,不同域内的实体间无任何逻辑关系。

dscp由域、域参与者、主题、数据写者、数据读者组成,如图4所示。

域:域建立一个链接所有加入它的dds应用程序的虚拟网络。通俗的说,域代表彼此通信的一组应用程序。只有在同一域中的应用程序才能通信。

域参与者:应用程序在某个域内交互的入口点。每个域参与者可以有一个或多个发布者或订阅者。

主题:主题是发布、订阅应用程序之间数据交互的根本手段,在一个域内,每个主题有唯一的名字和特定的数据类型。每个主题数据类型可以指定0个或多个字段作为键,当数据发布时,发布端需要指定主题,订阅端通过该主题订阅数据。在dcps模型中,可以通过不同实例发送同一主题的多个不同数据样本,每个实例拥有一个唯一的键值。在同一实例上发布的多个数据样本均使用相同的键值。主题由主题名、主题类型、一个或多个qos策略组成。主题名称是一个能在域中唯一标识主题的字符串,主题类型是对主题数据的定义,每个主题都可以关联相应的qos策略。

数据写者,数据发布者(datawriter):数据写者是一个发布类型化的接入器,每个数据写者只关联一个特定的主题,因此只具有一种数据类型。应用程序通过数据写者的特定类型接口来发布所关联主题的数据实例。数据写者负责将数据传递给发布者,发布者来分发数据,发布者会根据自身的qos以及相应的数据写者的qos来分发数据。

数据读者,订阅者(datareader):数据读者是用来获取由订阅者所接收到的数据,并将数据传递给应用程序的dcps实体,每个数据读者被绑定到一个特定的主题,也就是每个数据读者只关心它所感兴趣的数据类型。订阅者负责接收来自发布者的数据,然后将收到的数据传给相应的数据读者,从而使应用程序获得它所感兴趣的数据。数据读者可通过listener和waitset两种方式来获取它所订阅的数据。

dscp内所有的成员都是entity,dscp中任两个entity通信都必须在同一个域内进行交互。域内的domainparticipant是服务的入口点,任何dscp应用都需首先获取domainparticipant(域参与者),然后通过域参与者获取其他服务,如publisher(发布者),subscriber(订阅者),topic(主题)等。

域参与者作为数据分发服务的入口点,包含若干发布者,订阅者和注册主题,负责创建,删除和管理这些实体。

发布者作为发布者角色,至少包含一个datawriter(数据写入者),并负责创建,删除和管理数据写入者。同样,订阅者至少与一个datareader(数据读取者)关联,并负责发布数据,数据发布者通过调用数据读取者的写函数发布数据,但数据不会立刻被送出,实际的消息产生是通过发布者和qos综合控制的。数据读取者负责订阅数据,订阅方式可采用异步方式(listener),同步方式和非阻塞三种。

本发明的上述实施例中,第一设备集合中的设备信息和第二设备集合中的设备信息的格式如下:

这些设备可以是船舶上各种设备,如传感器、位置传感器等,设备实体描述在objects(对象)中,将设备按照接入方式进行分组,同一类的分成一组,每组中的设备含有具体的功能并且引用了设备类型,单一功能又对应了几个计算单元,单元的描述与具体的值同样引用了类型。

例如:modbus设备,可以通过tcp端口、rs232、rs485等接口接入服务器,按照接入方式将设备分成3组,关于每组中的modbus设备引用了类型中的设备类型进行描述,设备的每个部件所包含的寄存器,关于寄存器的描述则引用类型节点中的寄存器值类型。

opcua有三种编码方式:二进制编码、xml编码、json编码,以下是xml编码,可以让不同程序、平台以及人们可无障碍的使用。xml文档有标准化结构,且每个程序或平台都有解释xml的解释器。以下就是一个地址空间的预定义文件部分内容:

表示一个modbus设备dev1,以rs232接口形式接入,这个设备的alarm(报警量)包含了一个register_1(寄存器),register_1值类型是自定义的myregistervaluetype类型,包含mtype(寄存器类型)和start_end(起止地址)两个变量;设备dev1是自定义的myobjecttype的com_device类型,myobjecttype包含com_device和tcp_device两个变量,com_device的属性有baudrate(波特率)、devid(设备id)、dataset(数据位)、transmode(传输模式),tcp的属性有devid、ip。

在opcua信息模型基础上,本协议数据包的组成包含数据描述、数据类型,json格式数据与数据描述是对应关系,用户拿到数据后,根据数据描述解析数据,具体数据包格式如表1所示:

表1结构化数据包的数据格式

“数据描述”是对“json格式数据”的详细描述,对json数据的每个键值对进行说明,包括键值的数据类型、名称、单位、组成形式等。“数据类型”包含基础数据类型以及复杂数据类型,可以是某个通用协议名称,也可以是事先约定好的对象名称。

例如:一条gps数据,有标准数据协议的,数据格式可能是,数据格式如表2所示:

表2gps语句示例的数据格式

本发明的该实施例中,船舶可以跨局域网获取其它船舶的数据,基于船载网络数据订阅式通信协议(datasubscriptioncommunicationprotocolforship-bornenetwork)实现船舶数据的跨局域网的分发。

如图10所示,本发明的实施例还提供一种船舶数据的处理装置100,应用于位于局域网中的船舶的客户端,所述装置100包括:

发送模块101,用于向岸基数据处理中心服务器发送船舶的第一数据信息,所述第一数据信息是船舶所处的局域网的地址信息;所述船舶所处的局域网与所述第一局域网是不同的局域网;所述岸基数据处理中心服务器处于第一局域网中,具有固定ip地址,所述船舶所处的局域网的ip地址动态分配;

接收模块102,用于接收所述岸基数据处理中心服务器发送的所述位于不同的局域网中的船舶的第一数据信息。

可选的,发送模块101用于:建立不同局域网与所述岸基数据处理中心服务器之间的quic连接,所述quic连接是快速用户数据报协议udp网络连接;基于所述quic连接,向岸基数据处理中心服务器发送船舶的第一数据信息,所述第一数据信息采用quic协议的数据格式进行封装。

可选的,所述接收模块102基于所述quic连接,接收所述岸基数据处理中心服务器发送的所述位于不同的局域网中的船舶的第一数据信息。

可选的,位于第二局域网中的船舶的客户端还包括:

处理模块102用于根据接收到的位于第三局域网中的船舶的客户端的第一数据信息,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输。

可选的,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输,包括:基于船载网络数据订阅式通信协议dscp,与所述位于第三局域网中的船舶的客户端进行船舶数据的传输。

需要说明的是,该装置是与上述图8所示方法对应的装置,上述方法实施例中所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。

再如图2所示,本发明的实施例还提供一种船舶数据的处理系统,包括:

岸基数据处理中心服务器(如dds03),所述岸基数据处理中心服务器处于第一局域网中,具有固定ip地址;以及

位于不同局域网(例如,dds01和dds02)中的船舶的客户端,船舶所处的局域网的ip地址动态分配;所述船舶所处的局域网与所述第一局域网是不同的局域网;

所述应用于岸基数据处理中心服务器包括如上图7所述的装置;

所述应用于位于局域网中的船舶的客户端包括如上述图9所述的装置。

需要说明的是,上述实施例中的所有实现方式均适用于该系统的实施例中,也能达到相同的技术效果。

本发明的实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机运行时,使得计算机执行如上图1或者图8所述的方法的步骤。上述方法实施例中所有实现方式均适用于该实施例中,也能达到相同的技术效果。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。

因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1