[摘要]
随着自动化技术的发展,以及国家对网络安全的重视,申请公网的固定IP变得越来越困难了,那么如何实现用一台固定IP的机器与多台动态IP机器的通信呢,基于此种情况,紫金桥公司开发了一种新的连接方式——“逆向通信”技术,用来满足广大用户的需求。
[关键词]:紫金桥、逆向通信、组态软件
一、解决的问题
数据源逆向通信解决的是客户端与服务器端没法直接建立连接的问题。我们举例说明。如下图所示,图中上面的节点C为中心服务器,有固定IP;S1-Sn为前置数采机,IP地址为局部IP地址。
C作为中心服务器负责集中采集下面站点中的数据。C对外身份是服务器,但是在C与S1-Sn组成的节点中,C为数据的请求者,S1-Sn为数据的提供者,所以C为客户端,S1-Sn为服务器端。
正常情况下,客户端主动与服务器建立连接,然后向服务器发送数据请求,服务器根据请求信息响应客户请求。
但上述的情况是,客户端地址是可得到的,而服务方的地址是未知的。 也就是客户端得不到服务方的地址,但是客户端地址对服务器是可见的。逆向连接就是为了解决该类问题而产生的。通过数据源的逆向链接方式,可以实现客户端地址已知,服务方地址未知的数据库间数据通信。
二、逆向通信原理
逆向连接是由服务器首先向客户端发出连接请求,从而建立通信信道,客户端再利用该信道向服务器请求数据,服务端也是利用该信道回答相应客户请求。请求示意图如下:
客户端根据服务端的节点名称来识别不同的服务方。服务器节点名称是在数据源定义时指定的。
三、逆向通信的配置
逆向通信的配置分为服务器端数据源配置与客户端数据源配置。
1、服务器端数据源配置
服务器端数据源配置如下图所示。要启动服务器向客户端的逆向链接,要勾选下图中的自动连接,并指定本地节点名称。注意该名称不要与其他服务器中指定的名称相同。只有远程数据源,且为网络连接方式时才能在“高级选项”对话框中配置自动连接和指定本地名称。本地名称系统唯一,即该名称与本机相关联,而不是跟数据源相关联。
配置好客户端与服务器端数据源后,数据库间远程数据库连接就会自动建立。
2、客户端数据源配置
使用逆向连接,客户端数据源的连接方式要指定为“逆向连接”,如下图所示。使用逆向连接方式要指定服务方的节点名称。该名称就是服务器端配置的“本地节点名称”。
注意:如果这里指定的“远程节点名称”与服务方的“本地节点名称”不一致,将无法建立通信。
四、应用举例
假设:节点C的IP地址是192.168.0.101,S1-Sn节点没有固定的IP地址。
此时,节点C要采集S1-Sn节点的数据,那么在C中要配置若干代表S1-Sn节点的数据源,以便在数据库点连接时使用。
具体操作步骤如下:
首先,我们在S1节点建立一个数据源,名称为DS1,并建立两个点DS1_A1、DS1_A2。 建立的数据源如下图:
点击“高级选项”按钮,勾选“自动连接”,填写“本地节点名称”。
然后,在节点C建立一个代表DS1节点的数据源,连接方式选择“逆向连接”(因为我们没法填写其IP地址,其地址对站点C是不可见的),输入远程节点名称,该名称是在客户机端指定的“本地节点名称”,如下图:
最后,在节点C中的点组态内建立A1、A2两个点,并关联节点S1中的点。如下图: