一、解決的問題
數據源逆向通信解決的是客戶端與服務器端沒法直接建立連接的問題。我們舉例說明。如下圖所示,圖中上麵的節點C 為中心服務器,有固定IP ;S1-Sn 為前置數采機,IP 地址為局部IP 地址。
C 作為中心服務器負責集中采集下麵站點中的數據。C 對外身份是服務器,但是在C 與S1-Sn 組成的節點中,C 為數據的請求者,S1-Sn 為數據的提供者,所以C 為客戶端,S1-Sn 為服務器端。
正常情況下,客戶端主動與服務器建立連接,然後向服務器發送數據請求,服務器根據請求信息響應客戶請求。
但上述的情況是,客戶端地址是可得到的,而服務方的地址是未知的。 也(ye)就(jiu)是(shi)客(ke)戶(hu)端(duan)得(de)不(bu)到(dao)服(fu)務(wu)方(fang)的(de)地(di)址(zhi),但(dan)是(shi)客(ke)戶(hu)端(duan)地(di)址(zhi)對(dui)服(fu)務(wu)器(qi)是(shi)可(ke)見(jian)的(de)。逆(ni)向(xiang)連(lian)接(jie)就(jiu)是(shi)為(wei)了(le)解(jie)決(jue)該(gai)類(lei)問(wen)題(ti)而(er)產(chan)生(sheng)的(de)。通(tong)過(guo)數(shu)據(ju)源(yuan)的(de)逆(ni)向(xiang)鏈(lian)接(jie)方(fang)式(shi),可(ke)以(yi)實(shi)現(xian)客(ke)戶(hu)端(duan)地(di)址(zhi)已(yi)知(zhi),服(fu)務(wu)方(fang)地(di)址(zhi)未(wei)知(zhi)的(de)數(shu)據(ju)庫(ku)間(jian)數(shu)據(ju)通(tong)信(xin)。
二、逆向通信原理
逆ni向xiang連lian接jie是shi由you服fu務wu器qi首shou先xian向xiang客ke戶hu端duan發fa出chu連lian接jie請qing求qiu,從cong而er建jian立li通tong信xin信xin道dao,客ke戶hu端duan再zai利li用yong該gai信xin道dao向xiang服fu務wu器qi請qing求qiu數shu據ju,服fu務wu端duan也ye是shi利li用yong該gai信xin道dao回hui答da相xiang應ying客ke戶hu請qing求qiu。請qing求qiu示shi意yi圖tu如ru下xia:
客戶端根據服務端的節點名稱來識別不同的服務方。服務器節點名稱是在數據源定義時指定的。
三、逆向通信的配置
逆向通信的配置分為服務器端數據源配置與客戶端數據源配置。
1 、服務器端數據源配置
服fu務wu器qi端duan數shu據ju源yuan配pei置zhi如ru下xia圖tu所suo示shi。要yao啟qi動dong服fu務wu器qi向xiang客ke戶hu端duan的de逆ni向xiang鏈lian接jie,要yao勾gou選xuan下xia圖tu中zhong的de自zi動dong連lian接jie,並bing指zhi定ding本ben地di節jie點dian名ming稱cheng。注zhu意yi該gai名ming稱cheng不bu要yao與yu其qi他ta服fu務wu器qi中zhong指zhi定ding的de名ming稱cheng相xiang同tong。隻zhi有you遠yuan程cheng數shu據ju源yuan,且qie為wei網wang絡luo連lian接jie方fang式shi時shi才cai能neng在zai“高級選項”對話框中配置自動連接和指定本地名稱。本地名稱係統唯一,即該名稱與本機相關聯,而不是跟數據源相關聯。
配置好客戶端與服務器端數據源後,數據庫間遠程數據庫連接就會自動建立。
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 中的點。如下圖: