聯(lián)邦式數(shù)據(jù)交換與共享技術(shù)研究與實現(xiàn)
掃描二維碼
隨時隨地手機看文章
引 言
當今鐵路快速發(fā)展,帶動了信號技術(shù)的跨越式進步。大量先進的信號系統(tǒng)與技術(shù)投入運營。如裝備監(jiān)測設(shè)備可進行實時狀態(tài)信息采集,并利用這些采集的實時信息進行故障診斷和及時報警,可以在極大程度上提高鐵路的運行效率。然而這些監(jiān)測信息、狀態(tài)信息等大都存儲于各個地區(qū)不同的監(jiān)測站點,而這些站點維護著自己的監(jiān)測系統(tǒng),使用著彼此互不兼容的存儲格式,形成了一個個“信息孤島”[1]。所以要想充分利用這些監(jiān)測信息、狀態(tài)信息,進行計算機輔助故障診斷、判斷故障、開展智能化研究、預(yù)測設(shè)備健康狀況等工作時,就必須對現(xiàn)有的互不兼容的異構(gòu)數(shù)據(jù)庫進行數(shù)據(jù)集成。目前,現(xiàn)有的數(shù)據(jù)集成方案已日趨成熟,然而國內(nèi)乃至世界范圍內(nèi)將數(shù)據(jù)集成技術(shù)運用到鐵路電務(wù)綜合檢測上的成功案例基本沒有。本研究在充分分析各個監(jiān)測站點數(shù)據(jù)格式的基礎(chǔ)上,提出一套基于各個監(jiān)測站點的聯(lián)邦式管理方法,用以實現(xiàn)各個站點間的透明訪問[2,3]、成員間歷史數(shù)據(jù)交換、成員實時數(shù)據(jù)的訂閱與即時推送[4]。在保證現(xiàn)有各個數(shù)據(jù)源獨立性的同時,以一個統(tǒng)一的視角對當前的所有監(jiān)測信息、狀態(tài)信息等進行綜合利用。為電務(wù)綜合監(jiān)測系統(tǒng)進行高效的智能故障診斷提供良好的數(shù)據(jù)基礎(chǔ)。
電務(wù)綜合監(jiān)測聯(lián)邦式數(shù)據(jù)交換與共享系統(tǒng)設(shè)計
電務(wù)綜合監(jiān)測聯(lián)邦式數(shù)據(jù)庫管理系統(tǒng)要求系統(tǒng)內(nèi)的兩個成員之間可以進行數(shù)據(jù)互操作,即聯(lián)邦內(nèi)的任意一個成員可以調(diào)閱聯(lián)邦內(nèi)其他成員的數(shù)據(jù),可以訂閱聯(lián)邦內(nèi)其他成員更新的實時數(shù)據(jù)。要求當一個聯(lián)邦成員有數(shù)據(jù)更新時,可以將該更新內(nèi)容推送給其它訂閱了該數(shù)據(jù)的成員。
系統(tǒng)主要分為以下幾個模塊:
(1) 注冊模塊
所有想要加入聯(lián)邦系統(tǒng)的數(shù)據(jù)源都需要向聯(lián)邦控制中心申請注冊,成功后才能以一個邦員的身份做其他操作。
(2) 數(shù)據(jù)定義模塊
根據(jù)數(shù)據(jù)源結(jié)構(gòu)的不同可以手動或者自動定義本地數(shù)據(jù)庫全部數(shù)據(jù)的基本信息,為控制中心制定全局數(shù)據(jù)庫提供基本信息。
(3) 數(shù)據(jù)發(fā)布模塊
該模塊負責信息定義邦員的數(shù)據(jù)發(fā)布,并將該信息提交至控制中心的數(shù)據(jù)容器。
(4) 數(shù)據(jù)訂閱模塊
該模塊負責定義邦員的數(shù)據(jù)訂閱情況,并將該信息提交至控制中心的數(shù)據(jù)容器 。
(5) 數(shù)據(jù)自動推送模塊
在邦員有數(shù)據(jù)更新時,會將這些更新推送給訂閱了該數(shù)據(jù)的其他邦員。
(6) 透明訪問模塊
提供對全局數(shù)據(jù)的訪問,聯(lián)邦系統(tǒng)自動根據(jù)查詢請求分解成針對各個邦員的子查詢,并匯總結(jié)果,返回給請求發(fā)起方, 在不知道系統(tǒng)內(nèi)其他成員的情況下獲取對應(yīng)的數(shù)據(jù)。
該系統(tǒng)流程主要分為成員注冊初始化、成員之間的數(shù)據(jù)共享交換、系統(tǒng)透明訪問三個部分。成員注冊初始化過程如圖 1 所示。
1.1 注冊及初始化流程
(1) 注冊
填寫自身注冊名稱、自身IP、聯(lián)邦控制中心 IP,根據(jù)控制中心IP 發(fā)出注冊請求。如果符合注冊資格則返回注冊成功的消息。
(2) 邦員數(shù)據(jù)定義
定義自身的全部數(shù)據(jù)基礎(chǔ)信息,形成 LDM(Local Data Model,LDM)文件發(fā)送給控制中心,控制中心匯總各個邦員的 LDM 文件形成 GDM(Global Data Model,GDM)文件。GDM 文件包含當前系統(tǒng)所有成員的全部數(shù)據(jù)信息。
(3) 邦員數(shù)據(jù)發(fā)布
定義邦員的數(shù)據(jù)發(fā)布信息,并提交至控制中心??刂浦行膮R總各個邦員的發(fā)布信息形成GPM(Global Publish Model, GPM)文件,即全局發(fā)布文件。
(4) 邦員數(shù)據(jù)訂閱
定義邦員的數(shù)據(jù)訂閱信息,提交至控制中心。控制中心匯總各個邦員的數(shù)據(jù)訂閱信息形成 GSM(Global SubscribeModel,GSM)文件,即全局訂閱文件。
1.2 聯(lián)邦成員數(shù)據(jù)共享交換流程
控制中心通過數(shù)據(jù)容器來描述整個聯(lián)邦的全局數(shù)據(jù)及各個邦員的數(shù)據(jù)訂閱/發(fā)布情況,并將最新副本冗余存儲到各個邦員。數(shù)據(jù)容器總共包含三大配置文件:GDM(全局數(shù)據(jù)模型), GPM(全局發(fā)布模型),GSM(全局訂閱模型)。
GDM:記錄聯(lián)邦系統(tǒng)中的所有數(shù)據(jù)基本信息。
GPM:記錄各個邦員的數(shù)據(jù)發(fā)布情況。
GSM:記錄各個邦員的數(shù)據(jù)訂閱情況。
當數(shù)據(jù)容器的內(nèi)容有變更時,控制中心會將變動情況推送給各個邦員,各邦員會根據(jù)該變動修改自身維護的訂閱發(fā)布文件以和控制中心保持一致。
此外,在邦員有實時數(shù)據(jù)更新時,會根據(jù)自己維護的訂閱發(fā)布配置文件,將這些更新推送給訂閱了該數(shù)據(jù)的其他邦員。數(shù)據(jù)容器主要構(gòu)成如圖2 所示。聯(lián)邦成員數(shù)據(jù)交換如圖3 所示。
1.3 透明訪問流程
系統(tǒng)內(nèi)成員之間的數(shù)據(jù)共享和交換如圖 4 所示。
當用戶在訪問聯(lián)邦系統(tǒng)的全局數(shù)據(jù)時,邦員可以根據(jù)自身維護的數(shù)據(jù)容器配置文件副本或這些數(shù)據(jù)所在數(shù)據(jù)源對應(yīng) IP,并向其發(fā)送命令請求。其他邦員接收并執(zhí)行這些查詢請求 然后返回查詢結(jié)果,查詢發(fā)起者將這些查詢結(jié)果匯總并呈獻 給用戶,用戶只需知道該系統(tǒng)可以提供哪些數(shù)據(jù)即可,無需知 道這些數(shù)據(jù)具體由誰提供,達到將整個系統(tǒng)看成一個數(shù)據(jù)源 實現(xiàn)透明訪問的效果。
2 關(guān)鍵技術(shù)
2.1 虛擬全局數(shù)據(jù)定義
虛擬全局數(shù)據(jù)庫是整個系統(tǒng)正常運行的基石。每個新加入的邦員都可以選擇手動或者自動添加自身數(shù)據(jù)生成 LOM 文件并提交至控制中心生成GOM 文件。LOM 文件應(yīng)當包含本地數(shù)據(jù)源中擁有的全部數(shù)據(jù)的基本信息。考慮到各個數(shù)據(jù)源之間存在結(jié)構(gòu)上的差異,擬采用XML 來描述數(shù)據(jù)容器內(nèi)的各種文件、數(shù)據(jù)消息、命令消息等中間數(shù)據(jù)交換介質(zhì)[5,6]。
XML 具有非常高的自描述性,可有效提高在不同應(yīng)用、不同模塊間數(shù)據(jù)交換的可操作性。通過XML 可實現(xiàn)數(shù)據(jù)的標準化、結(jié)構(gòu)化,解決不同平臺、不同系統(tǒng)之間的數(shù)據(jù)結(jié)構(gòu)/ 模式的差異問題,使得數(shù)據(jù)層在XML 技術(shù)的支持下統(tǒng)一起來[7,8]。
2.2 數(shù)據(jù)發(fā)布與訂閱關(guān)系定義
每個邦員都可以通過發(fā)布模塊和訂閱模塊來制定對應(yīng)的發(fā)布/ 訂閱文件。pub_sub.txt 用來表示自身發(fā)布和自身訂閱的數(shù)據(jù),并提交給控制中心[9]。該文件具體內(nèi)容如圖 5 所示,表明需要發(fā)布或訂閱的數(shù)據(jù)名稱即可,其他信息可在數(shù)據(jù)容器的GOM 文件中得到補充??刂浦行氖盏礁鱾€邦員的 pub_sub.txt 內(nèi)容后與自身保留的各個邦員的注冊信息進行匯總并將對應(yīng)的內(nèi)容收納進 GPM 文件和GSM 文件中。
2.3 數(shù)據(jù)的自動發(fā)布
每個邦員自身的數(shù)據(jù)有更新時,會在數(shù)據(jù)容器的GSM 中查詢哪些邦員訂閱了該數(shù)據(jù),同時獲取對應(yīng)邦員的IP 地址。使用底層封裝好的Socket 接口向這些IP 地址發(fā)送對應(yīng)的內(nèi)容更新。
2.4 數(shù)據(jù)透明訪問
外界訪問聯(lián)邦數(shù)據(jù)庫系統(tǒng)時,直接針對數(shù)據(jù)容器中的虛擬全局數(shù)據(jù)庫進行訪問,在接受到請求后,控制中心分局GOM中的內(nèi)容分解為針對各個邦員的子查詢,子查詢返回結(jié)果后由控制中心匯總結(jié)果并對外返回數(shù)據(jù),訪問者只需要知道虛擬全局數(shù)據(jù)庫中有哪些數(shù)據(jù),而不需要知道聯(lián)邦系統(tǒng)中具體有哪些邦員。對外屏蔽系統(tǒng)內(nèi)其他邦員的存在,從而達到透明訪問的效果。
3 系統(tǒng)演示
在本地數(shù)據(jù)定義階段,邦員可進行全局數(shù)據(jù)的定義,可以選擇曾經(jīng)定義過的LDM(Local Data Model,LDM)文件或者手動添加新數(shù)據(jù)覆蓋原有的LDM 文件。數(shù)據(jù)定義界面如圖 6 所示。
邦員可以在圖 7 所示的透明訪問界面里看到當前系統(tǒng)的所有全局數(shù)據(jù),通過輸入指定的查詢條件查詢到對應(yīng)的數(shù)據(jù), 而不需要知道這些數(shù)據(jù)的具體來源[10]。
4 結(jié) 語
電務(wù)綜合監(jiān)測系統(tǒng)需要綜合多個監(jiān)測站點的監(jiān)測數(shù)據(jù)來做故障診斷及智能分析,然而各個監(jiān)測站點之間的差異性異常復(fù)雜,使得這個場合的數(shù)據(jù)集成變?yōu)橐粋€難題。使用聯(lián)邦式的管理方式結(jié)合XML 在結(jié)構(gòu)上可以比較清晰地描述整個系統(tǒng)結(jié)構(gòu),便于維護管理。