一种分布式的OPCUA聚合服务器实现方法技术

技术编号:37300381 阅读:8 留言:0更新日期:2023-04-21 22:46
本发明专利技术公开了一种分布式的OPCUA聚合服务器实现方法。本发明专利技术首先聚合服务器上线,注册中心为聚合服务器节点分配请求服务范围,之后聚合服务器访问底层服务器,读取底层服务器地址空间,并融入聚合服务器地址空间中。客户端发送访问请求至注册中心,注册中心根据当前分布式系统内节点数量以及客户端请求数据通知相应数据节点准备数据。最后数据节点收到来自注册中心的请求数据通知,查询当前节点是否有请求节点数据,有则直接返回,没有就发送请求给底层服务器,从底层服务器中获得数据后再将数据返回给客户端。本发明专利技术降低了底层服务器与客户端连接的复杂性,减少了维持底层服务器与客户端连接的通信开销,并保证了系统的高性能与高可用。与高可用。与高可用。

【技术实现步骤摘要】
一种分布式的OPC UA聚合服务器实现方法


[0001]本专利技术属于工业通信
,涉及一种分布式实现的OPC UA多服务器聚合方法。该方法有效解决了目前工业现场所数据源缺乏集中管控的问题,并且分布式的实现保证了系统的高性能、高可用和动态扩展的特性。

技术介绍

[0002]OPC基金会提出一种新的信息交互规范,它被称为OPC UA。OPC UA的实现不在基于Windows独有的COM和DCOM技术。在此前提下,OPC UA能在Windows、Linux以及在其他的嵌入式的平台中实现,实现跨平台应用。OPC UA的网络通信协议采用了TCP/IP通信协议。该经典的通信协议解决了系统跨平台的问题,保证多种平台之间可以相互操作。跨平台实现的特性使得OPC UA的数据传输和信息建模在通信安全方面优势比较明显。
[0003]如今的OPC UA技术逐渐向现场设备层发展。现场工业设备的数量极其庞大,使用传统客户端与服务器一对一的通信方法会导致客户端与底层OPC UA服务器连接复杂度为O(M*N),其中M为客户端数量,N为底层OPC UA服务器数量,从而极大增加了通信连接维持成本和降低了通信效率。为了满足工业生产环境中对通信效率的需求,需要提出一种减少连接复杂度,提高通信效率的聚合方法。

技术实现思路

[0004]本专利技术的目的在于针对现有的工厂中单客户端与单服务器的通信方法,提供一种分布式实现的OPC UA聚合服务器的方法。
[0005]本专利技术通过对在客户端与服务器之间增加一个中间层,实现对底层OPC UA服务器数据的聚合。该方法通过分布式OPC UA聚合服务器,在保证高性能与高可用的前提下实现了底层服务器与客户端连接复杂度的降低。
[0006]本专利技术解决其技术问题所采用的技术方案如下:
[0007]步骤(1)、聚合服务器节点与注册中心建立连接,注册中心根据聚合服务器节点的ip将聚合服务器节点映射至哈希空间;
[0008]步骤(2)、每个聚合服务器节点与底层服务器建立连接,读取底层服务器地址空间,并融入聚合服务器节点的地址空间中;
[0009]步骤(3)、客户端发送访问请求至注册中心,注册中心根据当前分布式系统内聚合服务器节点的数量以及客户端请求数据通知相应聚合服务器节点准备数据;
[0010]步骤(4)、聚合服务器节点收到来自注册中心的请求数据通知,查询当前聚合服务器节点是否有客户端发送的请求数据,有则直接返回客户端,没有就发送请求给底层服务器,从底层服务器中获得数据后再将数据返回给客户端。
[0011]步骤3所述的算法流程为:
[0012]第一步:对历史访问的请求数据进行降序排序;
[0013]第二步:对当前客户端发送的请求数据进行hash;
[0014]第三步:筛选出排序后历史访问的请求数据的前百分之十,判断hash后的当前数据是否在前百分之十的请求数据中,如果在则根据请求数据访问频率进行再hash,保证高频数据平均分配至各个数据节点;否则不做处理;
[0015]第四步:根据hash结果将请求数据映射至相应聚合服务器节点。
[0016]本专利技术的有益效果是:
[0017]通过分布式OPC UA聚合服务器,实现了对底层OPC UA服务器的统一管理,将底层OPC UA服务器与客户端连接的复杂度从O(M*N)降至O(M+N),减少了维持底层OPC UA服务器与客户端连接的通信开销,并保证了系统的高性能与高可用。
附图说明
[0018]图1是分布式OPC UA聚合服务器的架构图;
[0019]图2是OPC UA聚合服务器数据节点的结构图;
[0020]图3是OPC UA聚合服务器注册中心的结构图。
具体实施方式
[0021]下面结合附图和实施例对本专利技术作进一步的说明。
[0022]如图1所示,一种分布式的OPC UA聚合服务器实现方法,具体步骤如下:
[0023]步骤(1)、聚合服务器节点与注册中心建立连接,注册中心根据聚合服务器节点的ip将聚合服务器节点映射至哈希空间;
[0024]步骤(2)、每个聚合服务器节点与底层服务器建立连接,读取底层服务器地址空间,并融入聚合服务器节点的地址空间中;
[0025]步骤(3)、客户端发送访问请求至注册中心,注册中心根据当前分布式系统内聚合服务器节点的数量以及客户端请求数据通知相应聚合服务器节点准备数据;
[0026]步骤(4)、聚合服务器节点的OPC UA服务器收到来自注册中心的请求数据通知,查询当前聚合服务器节点的kv存储模块是否有客户端请求的数据,有则直接返回客户端,没有就利用聚合服务器节点的OPC UA客户端发送请求给底层OPC UA服务器,从底层OPC UA服务器中获得数据后再将数据返回给客户端。
[0027]图1为分布式OPC UA聚合服务器的架构图。在分布式系统中,包括:客户端、注册中心、聚合数据节点和底层OPC UA服务器。客户端为用户提供了可视化界面。将地址空间内的节点以目录结构的形式展现了出来。注册中心负责为客户端分配数据节点、统计请求信息和监控聚合数据节点的动态增加与删除。聚合数据节点能够正确处理与底层OPC UA服务器的通信连接以及连接的维持和针对多底层OPC UA服务器的数据进行聚合。除此之外,为了减少聚合数据节点与底层OPC UA服务器的通信次数,使用基于跳表与lsm的k

v数据库存储引擎对最近访问数据进行缓存。底层OPC UA服务器存储硬件设备数据。
[0028]图2为OPC UA聚合服务器节点的结构图。OPC UA客户端是聚合服务器节点与底层OPC UA服务器设备通信的接口,用于聚合服务器节点与底层OPC UA服务器设备通信连接的建立与维持。底层OPC UA服务器用于聚合服务器节点与客户端和注册中心的通信。OPC UA客户端只负责接收底层数据并交给聚合地址空间模块进行处理,其本身不对数据包进行解析处理。聚合地址空间模块会判断底层数据中NodeId与聚合地址空间中NodeId相同的数
据,是否指向同一个数据源。如果指向同一数据源,则不做处理。否则将底层数据中NodeId修改为不同的NodeId并保存在聚合地址空间当中。
[0029]OPC UA客户端和底层OPC UA服务器采用OPC UA支持的TCP通信方式,而OPC UATCP是一个基于在客户端与服务器之间建立全双工信道的简单TCP协议。该协议允许响应以任何顺序返回。其次,如果通信故障导致TCP会话暂时中断,该协议允许响应以不同的TCP传输端点返回。在OPC UA的TCP通信中,连接总是由创建套接字的客户端在发送第一个OpenSecureChannel请求前发起的。聚合地址空间模块在与底层OPC UA服务器的底层地址空间建立连接之后,会浏览底层OPC UA服务器地址空间,获取底层OPC UA服务器地址空间节点的相关信息,如BrowseName、NodeId等,此时并不返回节点的valu本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式的OPCUA聚合服务器实现方法,其特征在于:该方法通过分布式OPCUA聚合服务器,在保证高性能与高可用的前提下实现了底层服务器与客户端连接复杂度的降低,具体是:步骤(1)、聚合服务器节点与注册中心建立连接,注册中心根据聚合服务器节点的ip将聚合服务器节点映射至哈希空间;步骤(2)、每个聚合服务器节点与底层服务器建立连接,读取底层服务器地址空间,并融入聚合服务器节点的地址空间中;步骤(3)、客户端发送访问请求至注册中心,注册中心根据当前分布式系统内聚合服务器节点的数量以及客户端请求数据通知相应聚合服务器节点准备数据;步骤(4)、聚合服务器节点收到来自注册中心的请求数据通知,...

【专利技术属性】
技术研发人员:李强吴正波
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1