一種基于數(shù)據(jù)標簽的分布式實時數(shù)據(jù)傳輸方法
【專利摘要】本發(fā)明公開了一種基于數(shù)據(jù)標簽的分布式實時數(shù)據(jù)傳輸方法:步驟1、對實時數(shù)據(jù)系統(tǒng)內(nèi)可訪問的數(shù)據(jù)點進行命名形成數(shù)據(jù)標簽,命名采用如下格式來唯一地進行標識;步驟2、服務(wù)提供者將其提供的服務(wù)數(shù)據(jù)命令接口通過注冊路由模塊注冊到系統(tǒng)中,系統(tǒng)根據(jù)注冊數(shù)據(jù)的本地/全局屬性選擇性的同步到其它機器中;步驟3、注冊路由模塊收集所有數(shù)據(jù)形成一個數(shù)據(jù)表;步驟4、當系統(tǒng)中有數(shù)據(jù)請求時,注冊路由模塊通過解析分隔符,獲得每一個層次的命名串,由最頂層的命名串開始,使用查表法獲得每個層次的地址,最終獲得目標數(shù)據(jù)的絕對地址??梢詫崿F(xiàn)跨網(wǎng)絡(luò)訪問數(shù)據(jù),效率非常高,保證了分布式系統(tǒng)中實時數(shù)據(jù)傳輸?shù)陌踩€(wěn)定及有效性。
【專利說明】
一種基于數(shù)據(jù)標簽的分布式實時數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及一種基于數(shù)據(jù)標簽的分布式實時數(shù)據(jù)傳輸方法。
【背景技術(shù)】
[0002]隨著計算機科學(xué)和自動化技術(shù)的迅速發(fā)展,在自動化控制的各個領(lǐng)域,監(jiān)控系統(tǒng)已經(jīng)從傳統(tǒng)的小型桌面系統(tǒng)向現(xiàn)代的分布式復(fù)雜系統(tǒng)發(fā)展,其控制的地域范圍,流程規(guī)模等都迅速增加,集各子系統(tǒng)功能于一身的綜合監(jiān)控系統(tǒng)逐漸成為新的發(fā)展趨勢。
[0003]DPU(Distributed Processing Unit),即分散處理單元,常應(yīng)用于分布式控制系統(tǒng)中,它既可實現(xiàn)離散梯形邏輯控制,也能實現(xiàn)連續(xù)調(diào)節(jié)控制,是完成控制邏輯、實現(xiàn)各種控制功能的心臟。隨著分布式系統(tǒng)的大力發(fā)展,監(jiān)控系統(tǒng)與DHJ及各種保護設(shè)備間的實時數(shù)據(jù)通信要求越來越高,數(shù)據(jù)吞吐量也越來越大。因此,對分布式系統(tǒng)之間以及系統(tǒng)內(nèi)部的數(shù)據(jù)通信提出了更高的要求,要求數(shù)據(jù)通信應(yīng)當兼具實時、高效、穩(wěn)定、健壯等特點。
[0004]而現(xiàn)有的分布式系統(tǒng)中,監(jiān)控系統(tǒng)與DPU或保護設(shè)備之間的數(shù)據(jù)傳輸多采用通用或?qū)S玫耐ㄐ艆f(xié)議,比如,Siemens公司系統(tǒng)采用是的國際標準協(xié)議ProfiNet。為增強開放性互聯(lián),多數(shù)廠家的系統(tǒng)都支持了 Modbus/TCP等通用協(xié)議,也有很多系統(tǒng)采用自己開發(fā)的專用協(xié)議,協(xié)議不公開。這些通信方法路由都受到很大限制,如果是以太網(wǎng)通信,數(shù)據(jù)只能在同一網(wǎng)段的設(shè)備間進行,路由選擇由交換機完成,嚴重制約了數(shù)據(jù)通信的實時性和高效性。
【發(fā)明內(nèi)容】
[0005]針對上述問題,本發(fā)明提供一種基于數(shù)據(jù)標簽的分布式實時數(shù)據(jù)傳輸方法,可以實現(xiàn)跨網(wǎng)絡(luò)訪問數(shù)據(jù),效率非常高,保證了分布式系統(tǒng)中實時數(shù)據(jù)傳輸?shù)陌踩€(wěn)定及有效性。
[0006]為實現(xiàn)上述技術(shù)目的,達到上述技術(shù)效果,本發(fā)明通過以下技術(shù)方案實現(xiàn):
[0007]—種基于數(shù)據(jù)標簽的分布式實時數(shù)據(jù)傳輸方法,其特征在于,包括如下步驟:
[0008]步驟1、對實時數(shù)據(jù)系統(tǒng)內(nèi)可訪問的數(shù)據(jù)點進行命名形成數(shù)據(jù)標簽,命名采用如下格式來唯一地進行標識:
[0009]服務(wù)名稱.一級成員序號.二級成員或?qū)傩孕蛱?三級成員或?qū)傩孕蛱?....N級成員或?qū)傩孕蛱枺?br>[0010]其中,服務(wù)的邏輯成員間最大可N級嵌套,為分隔符;
[0011]步驟2、服務(wù)提供者將其提供的服務(wù)數(shù)據(jù)命令接口通過注冊路由模塊注冊到系統(tǒng)中,系統(tǒng)根據(jù)注冊數(shù)據(jù)的本地/全局屬性選擇性的同步到其它機器中;
[0012]步驟3、注冊路由模塊收集所有數(shù)據(jù)形成一個數(shù)據(jù)表,該數(shù)據(jù)表存儲了所有可訪問數(shù)據(jù)的服務(wù)、成員、屬性的名字串與其對象地址之間的鏈接關(guān)系;
[0013]步驟4、當系統(tǒng)中有數(shù)據(jù)請求時,注冊路由模塊通過解析分隔符,獲得每一個層次的命名串,由最頂層的命名串開始,使用查表法獲得每個層次的地址,最終獲得目標數(shù)據(jù)的絕對地址。
[0014]優(yōu)選,各種通信應(yīng)用程序可以位置透明地訪問總線上的相關(guān)數(shù)據(jù),具體步驟如下:
[0015]A)傳輸模塊根據(jù)注冊路由模塊提供的路由信息,把通信應(yīng)用程序的數(shù)據(jù)請求發(fā)送至服務(wù)提供者側(cè)的傳輸模塊進程;
[0016]B)服務(wù)提供者側(cè)接收到數(shù)據(jù)請求后,服務(wù)提供者側(cè)傳輸模塊進程直接把解碼的用戶請求信息報文發(fā)送給目標數(shù)據(jù)服務(wù)的提供者,并將自動掃描相應(yīng)服務(wù)對象內(nèi)存以獲取實時值;
[0017]C)完成數(shù)據(jù)更新后,最新的數(shù)據(jù)將沿著請求路徑,原路反射回請求數(shù)據(jù)的客戶端應(yīng)用程序,并通過觸發(fā)客戶端應(yīng)用程序的回調(diào)函數(shù)來獲得返回的結(jié)果及狀態(tài)信息。
[0018]優(yōu)選,步驟4中,對于本地數(shù)據(jù)交互,各進程間調(diào)用相應(yīng)的接口函數(shù)通過本地IPC機制進行數(shù)據(jù)收發(fā)。
[0019]本發(fā)明的有益效果是:
[0020](I)數(shù)據(jù)的訪問基于標簽,服務(wù)成員可以一級一級的延伸下去,形成樹狀結(jié)構(gòu)。數(shù)據(jù)標簽采用命名字符串設(shè)計,服務(wù)中邏輯成員之間的嵌套關(guān)系使用多級層次來表達,每一層次使用獨立命名,最終通過分隔符連接來標識具體數(shù)據(jù)。數(shù)據(jù)的訪問基于標簽,配合實時的路由選擇,利用命名方式,可以直觀的了解具體數(shù)據(jù)的意義。
[0021](2)當系統(tǒng)中有數(shù)據(jù)請求時,注冊路由模塊通過解析分隔符,獲得每一個層次的命名串,由最頂層的命名串開始,使用查表法獲得每個層次的地址,最終獲得目標數(shù)據(jù)的絕對地址,進而通過實時路由快速高效實現(xiàn)分布式系統(tǒng)實時數(shù)據(jù)的訪問,效率非常高。
[0022](3)保證了分布式系統(tǒng)中監(jiān)控系統(tǒng)與DPU及各種監(jiān)控設(shè)備快速穩(wěn)定的實時數(shù)據(jù)通信,程序?qū)崿F(xiàn)簡單,功能全面,運行穩(wěn)定。
【附圖說明】
[0023]圖1是本發(fā)明服務(wù)層級嵌套的示意圖;
[0024]圖2是本發(fā)明模塊之間的運行原理關(guān)系圖;
[0025]圖3是本發(fā)明路由機制的流程圖。
【具體實施方式】
[0026]下面結(jié)合附圖和具體的實施例對本發(fā)明技術(shù)方案作進一步的詳細描述,以使本領(lǐng)域的技術(shù)人員可以更好的理解本發(fā)明并能予以實施,但所舉實施例不作為對本發(fā)明的限定。
[0027]—種基于數(shù)據(jù)標簽的分布式實時數(shù)據(jù)傳輸方法,包括如下步驟:
[0028]步驟1、對實時數(shù)據(jù)系統(tǒng)內(nèi)可訪問的數(shù)據(jù)點進行命名形成數(shù)據(jù)標簽,命名采用如下格式來唯一地進行標識:
[0029]服務(wù)名稱.一級成員序號.二級成員或?qū)傩孕蛱?三級成員或?qū)傩孕蛱?....N級成員或?qū)傩孕蛱枺?br>[0030]其中,服務(wù)的邏輯成員間最大可N級嵌套,為分隔符。
[0031]在實時數(shù)據(jù)系統(tǒng)中,最基本服務(wù)提供者被稱為服務(wù),每個服務(wù)還可以包含多個邏輯成員,成員僅是一個具體服務(wù)中所包含的能被用戶所訪問的一個名字,即一個邏輯上的概念。一個成員既可以是一個數(shù)據(jù)也可以是一個命令,其具體意義由服務(wù)對象進行定義,這些邏輯成員還可以嵌套包含子成員(按照面向?qū)ο蟮姆椒梢岳斫獬蓪ο蟀訉ο?,一級一級的延伸下去,形成樹狀結(jié)構(gòu),理論上成員間可以無限嵌套,實際應(yīng)用中為了數(shù)據(jù)訪問的效率規(guī)定成員間最大可10級嵌套。每個成員可包含若干的數(shù)據(jù),我們稱之為屬性。服務(wù)層級嵌套如圖1所示,其中,每個服務(wù)可以包括若干個一級成員但不可以包括屬性,只有成員才可能包括屬性,比如,一級成員可以包括多個二級成員和多個屬性,而每個二級成員又可以一級一級的延伸下去,而屬性卻沒有下一級。
[0032]數(shù)據(jù)標簽采用命名字符串設(shè)計,服務(wù)中邏輯成員之間的嵌套關(guān)系使用多級層次來表達,每一層次使用獨立命名,最終通過分隔符連接來標識具體數(shù)據(jù)。利用命名方式,可以直觀的了解具體數(shù)據(jù)的意義,比如,以圖1為例:
[0033]服務(wù).一級成員I.二級成員I.二級成員I屬性I ;
[0034]表示該服務(wù)下的一級成員I下面帶有二級成員I,二級成員I有屬性I可供應(yīng)用程序訪問。
[0035]步驟2、服務(wù)提供者將其提供的服務(wù)數(shù)據(jù)命令接口通過注冊路由模塊注冊到系統(tǒng)中,系統(tǒng)根據(jù)注冊數(shù)據(jù)的本地/全局屬性選擇性的同步到其它機器中。
[0036]如圖2所示,分布式實時數(shù)據(jù)傳輸方法其運行依賴于2個模塊:注冊路由模塊和傳輸模塊,其中注冊路由模塊通過網(wǎng)絡(luò)通信收集所有數(shù)據(jù),進行數(shù)據(jù)名字注冊,形成一個數(shù)據(jù)表,并為其它應(yīng)用程序提供數(shù)據(jù)的查詢和路由功能。服務(wù)提供者將其提供的服務(wù)數(shù)據(jù)命令接口通過注冊路由模塊注冊到系統(tǒng)中,系統(tǒng)根據(jù)注冊數(shù)據(jù)的本地/全局屬性選擇性的同步到其它機器中,以便客戶端或(數(shù)據(jù)訪問者)對其他數(shù)據(jù)服務(wù)提供者發(fā)布的各種服務(wù)數(shù)據(jù)成員執(zhí)行讀、寫及數(shù)據(jù)訂閱等操作,實時地訪問系統(tǒng)中的數(shù)據(jù)。注冊路由模塊為系統(tǒng)中的所有數(shù)據(jù)訪問者提供服務(wù)名字注冊、查詢及路由功能。
[0037]步驟3、注冊路由模塊收集所有數(shù)據(jù)形成一個數(shù)據(jù)表,該數(shù)據(jù)表存儲了所有可訪問數(shù)據(jù)的服務(wù)、成員、屬性的名字串與其對象地址之間的鏈接關(guān)系;
[0038]步驟4、當系統(tǒng)中有數(shù)據(jù)請求時,注冊路由模塊通過解析分隔符,獲得每一個層次的命名串,由最頂層的命名串開始,使用查表法獲得每個層次的地址,最終獲得目標數(shù)據(jù)的絕對地址,然后由通信模塊發(fā)出數(shù)據(jù)請求到對應(yīng)的地址去查詢數(shù)據(jù),可以快速實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)訪問,效率非常高。
[0039]各種通信應(yīng)用程序可以位置透明地訪問總線上的相關(guān)數(shù)據(jù)進而實現(xiàn)數(shù)據(jù)耦合下的信息交互,具體步驟如下:
[0040]A)傳輸模塊根據(jù)注冊路由模塊提供的路由信息,把通信應(yīng)用程序的數(shù)據(jù)請求發(fā)送至服務(wù)提供者側(cè)的傳輸模塊進程;
[0041]B)服務(wù)提供者側(cè)接收到數(shù)據(jù)請求后,服務(wù)提供者側(cè)傳輸模塊進程直接把解碼的用戶請求信息報文發(fā)送給目標數(shù)據(jù)服務(wù)的提供者,并將自動掃描相應(yīng)服務(wù)對象內(nèi)存以獲取實時值;
[0042]C)完成數(shù)據(jù)更新后,最新的數(shù)據(jù)將沿著請求路徑,原路反射回請求數(shù)據(jù)的客戶端應(yīng)用程序,并通過觸發(fā)客戶端應(yīng)用程序的回調(diào)函數(shù)來獲得返回的結(jié)果及狀態(tài)信息。
[0043]而對于本地數(shù)據(jù)交互則可以繞過傳輸模塊環(huán)節(jié),各進程間調(diào)用相應(yīng)的接口函數(shù)通過本地IPC機制進行數(shù)據(jù)收發(fā),從而具有相較于網(wǎng)絡(luò)通信連接更好的實時性能。
[0044]數(shù)據(jù)質(zhì)量(Quality)屬性是服務(wù)于路由模塊的一個重要實時屬性,其取值是相應(yīng)服務(wù)有效性(Avai Iabi Iity)的一種直接的度量。Quality數(shù)值較大(如取典型值80)表示該服務(wù)工作狀況正常,而Quality數(shù)值較小(如取典型值40)則表示相應(yīng)的服務(wù)工作發(fā)生異常。
[0045]如圖3所示,當系統(tǒng)中出現(xiàn)同名服務(wù)的多個實例時,路由能夠自動將用戶請求發(fā)送至Quality數(shù)值最高的服務(wù)提供者,即當系統(tǒng)中出現(xiàn)同名的數(shù)據(jù)服務(wù)時,則將請求路由給具有最高質(zhì)量屬性的服務(wù)提供者,該機制可直接被用來實現(xiàn)諸如動態(tài)負載均衡、主備切換、多機冗余等可靠性保障機制。而如果冗余的數(shù)據(jù)服務(wù)彼此的質(zhì)量屬性一致,則將請求路由給位于本地的服務(wù)提供者。而如果冗余的數(shù)據(jù)服務(wù)均位于本機,則將請求路由給最新創(chuàng)建的服務(wù)提供者。
[0046]上述三級規(guī)則的應(yīng)用,可以充分保證網(wǎng)絡(luò)中冗余的數(shù)據(jù)服務(wù)在每個時刻僅有一個實例保持活躍,并對整網(wǎng)的客戶提供唯一的服務(wù)。
[0047]本發(fā)明的有益效果是:
[0048](I)數(shù)據(jù)的訪問基于標簽,服務(wù)成員可以一級一級的延伸下去,形成樹狀結(jié)構(gòu)。數(shù)據(jù)標簽采用命名字符串設(shè)計,服務(wù)中邏輯成員之間的嵌套關(guān)系使用多級層次來表達,每一層次使用獨立命名,最終通過分隔符連接來標識具體數(shù)據(jù)。數(shù)據(jù)的訪問基于標簽,配合實時的路由選擇,利用命名方式,可以直觀的了解具體數(shù)據(jù)的意義。
[0049](2)當系統(tǒng)中有數(shù)據(jù)請求時,注冊路由模塊通過解析分隔符,獲得每一個層次的命名串,由最頂層的命名串開始,使用查表法獲得每個層次的地址,最終獲得目標數(shù)據(jù)的絕對地址,進而通過實時路由快速高效實現(xiàn)分布式系統(tǒng)實時數(shù)據(jù)的訪問,如果采用在每一級對象上使用哈希表來索引下一級子對象的話,則單個層次的時間復(fù)雜度為0(1),給定常數(shù)個對象層次時,時間復(fù)雜度仍舊為0(1),尋址的效率很高。
[0050](3)保證了分布式系統(tǒng)中監(jiān)控系統(tǒng)與DPU及各種監(jiān)控設(shè)備快速穩(wěn)定的實時數(shù)據(jù)通信,程序?qū)崿F(xiàn)簡單,功能全面,運行穩(wěn)定。
[0051]以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或者等效流程變換,或者直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。
【主權(quán)項】
1.一種基于數(shù)據(jù)標簽的分布式實時數(shù)據(jù)傳輸方法,其特征在于,包括如下步驟: 步驟1、對實時數(shù)據(jù)系統(tǒng)內(nèi)可訪問的數(shù)據(jù)點進行命名形成數(shù)據(jù)標簽,命名采用如下格式來唯一地進行標識: 服務(wù)名稱.一級成員序號.二級成員或?qū)傩孕蛱?三級成員或?qū)傩孕蛱?....N級成員或?qū)傩孕蛱枺?其中,服務(wù)的邏輯成員間最大可N級嵌套,為分隔符; 步驟2、服務(wù)提供者將其提供的服務(wù)數(shù)據(jù)命令接口通過注冊路由模塊注冊到系統(tǒng)中,系統(tǒng)根據(jù)注冊數(shù)據(jù)的本地/全局屬性選擇性的同步到其它機器中; 步驟3、注冊路由模塊收集所有數(shù)據(jù)形成一個數(shù)據(jù)表,其中數(shù)據(jù)表存儲了所有可訪問數(shù)據(jù)的服務(wù)、成員、屬性的名字串與其對象地址之間的鏈接關(guān)系; 步驟4、當系統(tǒng)中有數(shù)據(jù)請求時,注冊路由模塊通過解析分隔符,獲得每一個層次的命名串,由最頂層的命名串開始,使用查表法獲得每個層次的地址,最終獲得目標數(shù)據(jù)的絕對地址。2.根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)標簽的分布式實時數(shù)據(jù)傳輸方法,其特征在于,各種通信應(yīng)用程序可以位置透明地訪問總線上的相關(guān)數(shù)據(jù),具體步驟如下: A)傳輸模塊根據(jù)注冊路由模塊提供的路由信息,把通信應(yīng)用程序的數(shù)據(jù)請求發(fā)送至服務(wù)提供者側(cè)的傳輸模塊進程; B)服務(wù)提供者側(cè)接收到數(shù)據(jù)請求后,服務(wù)提供者側(cè)傳輸模塊進程直接把解碼的用戶請求信息報文發(fā)送給目標數(shù)據(jù)服務(wù)的提供者,并將自動掃描相應(yīng)服務(wù)對象內(nèi)存以獲取實時值; C)完成數(shù)據(jù)更新后,最新的數(shù)據(jù)將沿著請求路徑,原路反射回請求數(shù)據(jù)的客戶端應(yīng)用程序,并通過觸發(fā)客戶端應(yīng)用程序的回調(diào)函數(shù)來獲得返回的結(jié)果及狀態(tài)信息。3.根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)標簽的分布式實時數(shù)據(jù)傳輸方法,其特征在于,步驟4中,對于本地數(shù)據(jù)交互,各進程間調(diào)用相應(yīng)的接口函數(shù)通過本地IPC機制進行數(shù)據(jù)收發(fā)。4.根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)標簽的分布式實時數(shù)據(jù)傳輸方法,其特征在于,當系統(tǒng)中出現(xiàn)同名的數(shù)據(jù)服務(wù)時,則將請求路由給具有最高質(zhì)量屬性的服務(wù)提供者。5.根據(jù)權(quán)利要求5所述的一種基于數(shù)據(jù)標簽的分布式實時數(shù)據(jù)傳輸方法,其特征在于,如果冗余的數(shù)據(jù)服務(wù)彼此的質(zhì)量屬性一致,則將請求路由給位于本地的服務(wù)提供者。6.根據(jù)權(quán)利要求6所述的一種基于數(shù)據(jù)標簽的分布式實時數(shù)據(jù)傳輸方法,其特征在于,如果冗余的數(shù)據(jù)服務(wù)均位于本機,則將請求路由給最新創(chuàng)建的服務(wù)提供者。
【文檔編號】H04L29/08GK106060125SQ201610347816
【公開日】2016年10月26日
【申請日】2016年5月24日
【發(fā)明人】鹿海霞, 金舒, 董勝剛
【申請人】南京國電南自美卓控制系統(tǒng)有限公司