沈祉怡,孫艷英
(92941部隊96分隊,遼寧葫蘆島, 125001)
隨著海上靶場參試的裝備與日俱增,指控信息的內(nèi)容不斷豐富,傳統(tǒng)的指揮信息轉(zhuǎn)發(fā)軟 件配置復雜,維護困難。這就需要一種操作簡便,并且能夠?qū)A康脑囼炐畔⑦M行靈活、高 效轉(zhuǎn)發(fā)的指揮顯示信息分發(fā)系統(tǒng),以滿足現(xiàn)階段靶場需求。對于試驗指揮員和各設(shè)備操作手, 不僅期望能夠快速、準確的獲取所需信息,還要及時的將信息傳遞出去。在不同的試驗任務(wù) 中,參試的指揮部位不同,對試驗任務(wù)相關(guān)的信息需求也不同。這就需要一種方便、靈活、 可擴展的交互機制和通信模型來適應(yīng)靶場試驗任務(wù)中裝設(shè)備動態(tài)變化和松耦合的特點。發(fā)布 /訂閱機制具有異步以及松散耦合的特點,可以使信息的發(fā)布者和訂閱者在時間、空間和控 制流等方面完全解耦,適應(yīng)目前靶場外場裝設(shè)備站點和分指揮所動態(tài)多變、有線/無線的指 揮顯示信息分發(fā)系統(tǒng)的需求。綜上,本文針對現(xiàn)階段靶場試驗中的問題,如網(wǎng)絡(luò)帶寬不夠, 連接不穩(wěn),動態(tài)可擴展性差等,結(jié)合未來靶場需求進行探討,設(shè)計靈活、動態(tài)、可擴展、易 操作的指顯信息分發(fā)系統(tǒng)。
發(fā)布/訂閱是一種消息范式,主要包括發(fā)布者,是信息的生產(chǎn)者;訂閱者,是信息的消費者;消息代理,是發(fā)布者和訂購者的紐帶。在信息的生產(chǎn)者和消費者之間所交互的信息稱 為事件或者消息。發(fā)布者發(fā)布不同類別的消息,訂閱者對一種或多種消息表達興趣,接收感興趣的消息。消息代理根據(jù)訂閱信息將發(fā)布的消息以異步的通知形式發(fā)送給相應(yīng)的訂閱者。發(fā)布/訂閱模型結(jié)構(gòu)如圖l所示。
圖l發(fā)布/訂閱模型結(jié)構(gòu)
發(fā)布/訂閱系統(tǒng)主要具備交互性和解稿性的特點。
(1)交互性:發(fā)布/訂閱系統(tǒng)具有很強的交互性。訂閱者提出訂閱需求,而發(fā)布者通過將事件 發(fā)送給分發(fā)代理滿足訂閱者的需求。
(2)解耦性:解耦性主要表現(xiàn)在空間解耦—消息的發(fā)布者和訂閱者不必互相知道彼此。時間解 耦一消息的發(fā)布和訂閱條件不需要同時產(chǎn)生。控制流解耦一事件的發(fā)布和訂閱不是在發(fā)布者或者訂閱者的主控流程里發(fā)生。
靶場在進行試驗任務(wù)過程中,各測控站點、分指揮所和指控中心都需要發(fā)送和獲取試驗 任務(wù)相關(guān)的信息?,F(xiàn)階段靶場試驗任務(wù)信息的傳輸主要是各測控設(shè)備將數(shù)據(jù)發(fā)送到中心,由 中心處理后再向外部的測控站點和分指揮所以及中心內(nèi)部進行發(fā)布。不僅傳輸和處理過程復雜,而且各外部測控設(shè)備之間共享能力差,很難滿足試驗任務(wù)中個性化的需求。
面對日益增長的指揮顯示信息,指顯信息分發(fā)系統(tǒng)應(yīng)能夠及時的獲取相關(guān)任務(wù)信息,并能夠快速轉(zhuǎn)發(fā)給各站位;各站位不需要獲取所有的指顯信息,而是按需滿足個性化的定制, 以便有效的利用網(wǎng)絡(luò)帶寬資源;并且針對任務(wù)情況可以隨時動態(tài)加入新的測控設(shè)備或分指揮 所,也可以隨時與該系統(tǒng)斷開,具備動態(tài)可擴展功能,更好地滿足未來靶場轉(zhuǎn)型需求。
指揮顯示信息分發(fā)系統(tǒng)為實現(xiàn)靶場試驗信息的高度共享,適應(yīng)以網(wǎng)絡(luò)為中心的未來靶場 需求,利用訂閱/發(fā)布機制的松耦合、交互性、異步性的特點構(gòu)建了指揮顯示信息分發(fā)系統(tǒng)架構(gòu)。該系統(tǒng)的基本框架如圖2所示。
圖2 指揮顯示信息分發(fā)系統(tǒng)基本框架
該基本框架主要通過試驗IP網(wǎng)、衛(wèi)星等通信方式在終端設(shè)備與指顯信息分發(fā)服務(wù)器之 間架構(gòu)網(wǎng)絡(luò)橋梁。終端設(shè)備用戶將自己獲取的指顯信息通過指顯信息分發(fā)接口的轉(zhuǎn)換發(fā)布到 指顯信息分發(fā)服務(wù)器上,然后經(jīng)過一系列的全局數(shù)據(jù)的處理,將信息發(fā)布到發(fā)布列表中,就 可以在整個系統(tǒng)中共享指顯信息。用戶訂購信息,首先要發(fā)送訂閱需求,在信息管理節(jié)點處 進行注冊后,發(fā)送訂閱請求,在注冊表中查找匹配信息進行發(fā)送信息。
指揮顯示信息分發(fā)系統(tǒng)的工作流程如圖3所示。在整個系統(tǒng)中,信息的發(fā)布者,通過指 揮顯示接口將任務(wù)信息發(fā)送到指顯信息分發(fā)系統(tǒng)中,創(chuàng)建相應(yīng)的發(fā)布主題并將主題和服務(wù)質(zhì) 量參數(shù)(QoS參數(shù))提交給數(shù)據(jù)寫入者,并在信息管理節(jié)點處將發(fā)布的信息進行注冊便于訪 問和查詢信息。信息的訂閱者,通過指揮顯示分發(fā)系統(tǒng)接口將訂閱需求發(fā)送到指顯信息分發(fā) 系統(tǒng)中,創(chuàng)建相應(yīng)的訂閱主題和QoS要求,通過數(shù)據(jù)訂閱者向系統(tǒng)提交請求,等待接收數(shù)據(jù),并在信息管理節(jié)點處將訂閱的信息進行注冊。在信息管理節(jié)點處創(chuàng)建訂閱和發(fā)布的索引表里,通過信息匹配找到相應(yīng)的發(fā)布者和訂購者,并將兩者建立連接,將實時的數(shù)據(jù)發(fā)送給訂閱者,同時將匹配結(jié)果發(fā)布到發(fā)布節(jié)點上。
數(shù)據(jù)模型是發(fā)布/訂閱系統(tǒng)的基礎(chǔ),其他技術(shù)都是依賴于數(shù)據(jù)模型進行研究的。通常,發(fā)布/訂閱系統(tǒng)的數(shù)據(jù)模型主要由事件模型和訂閱模型組成。用來描述發(fā)布者所提供的事件 被稱為事件模型;用來描述訂閱者提交的訂閱條件被稱為訂閱模型。目前發(fā)布/訂閱系統(tǒng)所 采用的數(shù)據(jù)模型主要是基于Map的數(shù)據(jù)模型和基于XML的數(shù)據(jù)模型等。
在基于Map的數(shù)據(jù)模型中,通常把事件描述成屬性名和屬性值的形式,它把時間表述成多個屬性,每個屬性可以對應(yīng)一個或多個值,既一個“屬性=值”的集合,而這個集合就叫做一個Map。對于訂閱者提出的訂閱條件,一般是由各個屬性的“與”運算組成,訂閱條件可能只涉及事件的一個屬性,也可能涉及到多個屬性。
在基于XML的數(shù)據(jù)模型中,每個事件被描述成為一個XML文檔,而訂閱條件一般被描述成為一個XPath表達式,其中既包括對XML文檔結(jié)構(gòu)的約束,又包括對某些元素和屬性的約束。雖然XML具有很強的表達能力,但是訂閱者必須預(yù)先知道被發(fā)布的XML文檔所遵從的XMLSchema,才能根據(jù)該Schema定義出相應(yīng)的訂閱條件。
在本系統(tǒng)中,擬采用基于Map的數(shù)據(jù)模型。把事件描述成屬性名-屬性值的二元組形式; 對于訂閱條件,通常用屬性名,關(guān)系操作符,屬性值三元組來表示。
在發(fā)布/訂閱系統(tǒng)中,事件實時更新,訂閱需求不斷發(fā)送,如何快速、高效、準確的進行匹配是匹配算法需要解決的問題。常用的匹配方法有暴力法、匹配樹法和多級索引法等。
本系統(tǒng)設(shè)計在多級索引法的基礎(chǔ)上進行調(diào)整改進。所有訂閱條件被建立成一張多級索 引表,其中事件的主題是一級索引,關(guān)系操作符是二級索引,事件的屬性名是三級索引,屬 性值是四級索引。索引表的建立過程:對于新發(fā)布的訂閱條件,首先,在一級索引處進行主題區(qū)分,找到對應(yīng)主題后進入下一索引;其次,在二級索引中查找符合條件的關(guān)系操作符, 然后進入第二級索引;再次,到三級索引中查找訂閱條件的屬性名,匹配后進入第四級索引; 最后,在四級索引中找到滿足條件的屬性值后,找到符合條件的事件,結(jié)束索引。
在發(fā)布/訂閱系統(tǒng)中,一般由分布在不同地點的多臺服務(wù)器作為事件代理,并由這些事 件代理構(gòu)成一個網(wǎng)絡(luò)系統(tǒng)。為保障信息傳輸順利進行,路由協(xié)議負責為分發(fā)服務(wù)器選擇合適 的路徑,將事件從發(fā)布者高效、可靠地傳送給訂閱者,并使分發(fā)代理節(jié)點可以靈活配置、動 態(tài)的擴展。所以,路由協(xié)議對整個系統(tǒng)的效率和可靠程度起著至關(guān)重要的作用。常見的發(fā)布 /訂閱系統(tǒng)的路由算法主要包括生成樹算法、逆向路徑算法等。
生成樹算法中,所有事件代理組成樹型結(jié)構(gòu)。當某事件代理收到訂閱者發(fā)來的訂閱請求 時,訂閱消息由當前節(jié)點逐級向根節(jié)點發(fā)送,并利用過濾條件的覆蓋關(guān)系對消息轉(zhuǎn)發(fā)進行優(yōu) 化。但是,由于處于上層的節(jié)點保存其子節(jié)點所有的訂閱信息,所以越是上層的節(jié)點保存的 信息就越多,負擔也就越重,各個節(jié)點就會出現(xiàn)負載不均現(xiàn)象。
逆向路徑算法中,訂閱消息的傳播采用“基于源轉(zhuǎn)發(fā)”廣播算法,事件消息的傳播采用 “逆向路徑轉(zhuǎn)發(fā)”廣播算法。每個事件代理都預(yù)先知道一棵以自己為根的生成樹。訂閱者將 訂閱消息發(fā)送給它的事件代理,然后事件代理將訂閱的事件按這棵生成樹轉(zhuǎn)發(fā)給其它各事件 代理,并利用過濾條件的覆蓋關(guān)系對轉(zhuǎn)發(fā)的消息進行優(yōu)化。當每個事件代理收到其客戶發(fā)布 的事件時,該事件即按照各訂閱消息的逆向路徑被轉(zhuǎn)發(fā)到其它事件代理。這種路由協(xié)議的優(yōu) 點在于各事件代理的負載較為均衡。它的缺點在于,網(wǎng)絡(luò)中的每個節(jié)點都同時處在多棵事件 分發(fā)樹之中,其中包含的路由信息難以被其他節(jié)點所替代。一旦某節(jié)點失效,整個系統(tǒng)的路由重配工作將是很困難的。
已有的路由算法采用的協(xié)議都是在某種廣播協(xié)議基礎(chǔ)上進行優(yōu)化,以避免不必要的消息 轉(zhuǎn)發(fā)。對于本系統(tǒng)的路由算法,通過檢測各分代理服務(wù)器中是否有對本事件感興趣的訂閱者, 來設(shè)置過濾條件的覆蓋關(guān)系,從而降低信息轉(zhuǎn)發(fā)數(shù)量,提高事件轉(zhuǎn)發(fā)效率、訂閱維護效率和 系統(tǒng)容錯能力,實現(xiàn)系統(tǒng)的負載均衡,降低系統(tǒng)的資源消耗。
基于發(fā)布/訂閱機制的指揮顯示信息分發(fā)系統(tǒng)利用發(fā)布/訂閱模型的交互性、異步通信和 松耦合性的特點,使指揮顯示信息分發(fā)系統(tǒng)不僅能夠更加快速、準確的獲取實時的試驗信息, 又能靈活、動態(tài)擴展系統(tǒng),滿足未來靶場繁重的試驗任務(wù)需求。
圖3 指揮顯示信息分發(fā)系統(tǒng)工作流程