|
zaiyixiedaxingdeshengchanguanlixitongzhong,wangwangdouhuiyingyongdaorengonglurulishishujugongneng,congerduishengchanshujujinxingxitongdeguanli,zhebufendeshujubunenggouzaiyibiaozhongcaijidao,zhinengtongguorenweidetianxie,zhebufenshujubudanyaocunchudaokehuduan,haiyaoshangchuandaofuwuqiduanjinxingxianshi,zheyangjiuhuiyinfayigeguanjianwenti:如何做到服務器端與客戶端的數據同步?下麵提供三種解決方案。
第一種:服務器端直接調取客戶端數據。
這種方案製作過程比較簡單,隻需要在服務器端針對於相應的客戶端建立一個數據源,選擇遠程節點,並將IP指向客戶端即可。如下圖所示。

其中:主機名/地址為客戶端的IP地址。當這一切配置好之後,隻需在自由報表中調用GetHisDataEx()函數,在運行的情況下就可以調取到客戶端的曆史數據。GetHisDataEx()函數的聲明如下:
GetHisDataEx(string DataSource,string VarName,int StartTime,int MilliSecond)。
其中:DataSource要填寫相應客戶端的數據源名稱,VarName要yao填tian寫xie該gai數shu據ju源yuan下xia的de數shu據ju庫ku變bian量liang名ming稱cheng。這zhe樣yang當dang係xi統tong運yun行xing時shi,在zai服fu務wu器qi端duan就jiu可ke以yi調tiao取qu到dao客ke戶hu端duan的de數shu據ju了le。但dan這zhe中zhong方fang案an存cun在zai一yi個ge弊bi端duan,即ji當dang客ke戶hu端duan停ting止zhi運yun行xing或huo著zhe客ke戶hu端duan與yu服fu務wu器qi端duan通tong訊xun終zhong端duan時shi,那na麼me在zai服fu務wu器qi端duan則ze看kan不bu到dao客ke戶hu端duan的de任ren何he數shu據ju。
第二種:客戶端直接向服務器端插入曆史數據。
這種方案與第一種方案基本類似,需要在客戶端建立一個數據源,並指向服務器端,客戶端在保存曆史數據時調用InsertHisDataEx()函數,該函數的聲明如下:
InsertHisDataEx(string DataSource,string VarName,real Data,int StartTime,int MilliSec)。
其中,DataSource要填寫相應服務器端的數據源名稱,VarName要yao填tian寫xie該gai數shu據ju源yuan下xia的de數shu據ju庫ku變bian量liang名ming稱cheng。這zhe樣yang在zai客ke戶hu端duan與yu服fu務wu器qi端duan通tong訊xun正zheng常chang的de狀zhuang態tai下xia,保bao存cun動dong作zuo執zhi行xing時shi,客ke戶hu端duan就jiu會hui直zhi接jie向xiang服fu務wu器qi端duan插cha入ru曆li史shi數shu據ju。服fu務wu器qi端duan在zai報bao表biao中zhong調tiao用yongGetHisDataEx()函han數shu就jiu可ke以yi調tiao取qu到dao本ben地di相xiang應ying的de數shu據ju。這zhe種zhong方fang案an的de弊bi端duan則ze是shi增zeng大da了le客ke戶hu端duan的de負fu荷he,會hui導dao致zhi客ke戶hu端duan運yun行xing速su度du變bian慢man。優you點dian則ze是shi在zai服fu務wu器qi端duan和he客ke戶hu端duan都dou存cun有you數shu據ju,相xiang當dang於yu做zuo了le一yi次ci數shu據ju備bei份fen。
第三種:客戶端觸發服務器端自行保存曆史數據。
這zhe種zhong方fang案an製zhi作zuo過guo程cheng相xiang對dui於yu前qian兩liang種zhong要yao複fu雜za一yi些xie,首shou先xian要yao在zai服fu務wu器qi端duan建jian立li一yi個ge數shu據ju源yuan指zhi向xiang客ke戶hu端duan,並bing在zai服fu務wu器qi端duan建jian立li相xiang應ying的de點dian關guan聯lian到dao客ke戶hu端duan的de點dian上shang。其qi次ci,在zai服fu務wu器qi端duan數shu據ju庫ku全quan局ju腳jiao本ben中zhong編bian寫xie一yi段duan存cun儲chu這zhe些xie點dianPV值的曆史數據的腳本,通過一個標誌位觸發存儲動作。客戶端在保存曆史數據時要把相應點的PV值也做修改,這樣服務器上做了相應關聯的點的PVzhiyehuigenzhezuogaibian。zaitongguokehuduanchufafuwuqiduandebaocunbiaozhiwei,fuwuqiduanjiuhuizixingdejiangzhebufenshujucunchuxialai,zaiyunxingdezhuangtaixiatongguobaobiaotiaoyongGetHisDataEx()把ba曆li史shi數shu據ju調tiao取qu出chu來lai即ji可ke。還hai可ke以yi在zai數shu據ju源yuan高gao級ji選xuan項xiang中zhong把ba數shu據ju故gu障zhang恢hui複fu勾gou選xuan上shang,如ru下xia圖tu所suo示shi。即ji使shi因yin通tong訊xun中zhong斷duan,客ke戶hu端duan無wu法fa觸chu發fa服fu務wu器qi端duan的de保bao存cun標biao誌zhi而er導dao致zhi兩liang端duan數shu據ju不bu同tong步bu,在zai通tong訊xun恢hui複fu時shi,客ke戶hu端duan也ye會hui自zi動dong的de把ba這zhe部bu分fen數shu據ju長chang傳chuan到dao服fu務wu器qi中zhong,這zhe樣yang就jiu更geng加jia全quan麵mian的de保bao證zheng了le兩liang端duan數shu據ju的de同tong步bu性xing。

disanzhongfanganwanquandejiejueledierzhongfanganzhongzengjialekehuduanfuhedebiduan,yejiejuelediyizhongfanganzhongtongxunzhongduanshifuwuqiduankanbudaozhiqianlishishujudebiduan,tongshihaijubeileqianliangzhongfanganzhongbujubeideyoushi:故障數據恢複,因此在類似這種的案例中,推薦使用第三種方案。
|