鄧晨,許雙偉,孫文虎,陳曉東
(1.北京機電工程研究所,北京 100074;2.國防大學聯(lián)合勤務學院,北京 100858)
為實現(xiàn)戰(zhàn)場感知,輔助指揮人員掌控戰(zhàn)場局勢,需要在地圖上標繪與任務相關的環(huán)境、敵我雙方力量部署情況、戰(zhàn)場想定等軍事要素,生成可視化的態(tài)勢制圖成果。應用于后裝保障領域,通常采用一種基于電子地圖的實時態(tài)勢標繪系統(tǒng)將各渠道收集的保障信息要素進行關聯(lián)展示,準確地描述資源的需求與流向,面向作戰(zhàn)人員提供各種后裝保障規(guī)劃能力,精確地對物資進行定位、查詢和處理,根據(jù)實際需求評估物資的補給策略。
聯(lián)合作戰(zhàn)背景下的后裝保障任務更加復雜,不僅需要協(xié)調(diào)分布在整個戰(zhàn)爭體系的人員、裝備、物資等作戰(zhàn)、指揮、保障實體,還需同步規(guī)劃非線性、不規(guī)則、廣域疏散、動態(tài)配置的跨域保障節(jié)點。由此帶來的挑戰(zhàn)則是,支撐并描述戰(zhàn)場態(tài)勢的基礎圖元數(shù)據(jù)[1]數(shù)量劇增會從影響態(tài)勢圖繪制的時效指標、保障方案的評估與反饋,導致涉及多部門的戰(zhàn)事進展動態(tài)規(guī)劃與統(tǒng)籌協(xié)調(diào)需要不斷的修正與更新[2]。以往的單人單機標繪方式,已經(jīng)不能適應現(xiàn)階段后裝保障應用的業(yè)務需求,有必要建立面向后裝保障需求的多人協(xié)同標繪場景,通過多人同時共享操作一張地圖,同步并發(fā)式地進行協(xié)同標繪,結合業(yè)務數(shù)據(jù)快速地形成各類作戰(zhàn)、救災、檢修等保障專題態(tài)勢圖。建立協(xié)同的分布式工作環(huán)境,使得地理空間相對分散的各級部門合理通過分布式標繪機位協(xié)同完成保障任務規(guī)劃,提升聯(lián)合作戰(zhàn)背景下各級部門實時協(xié)作能力,準確作出正確決斷[3]。
本文針對上述多人協(xié)同標繪環(huán)節(jié)中比較突出的消息交互與標繪沖突等問題,設計了一種用于存儲多人協(xié)同標繪過程信息的后裝綜合態(tài)勢共享交換文件模型,并基于該模型設計多人協(xié)同標繪方案,提高多人協(xié)同標繪的工作效率。
徐瑞[4]結合CSCW與WebSocket,通過長連接形式分發(fā)和接收數(shù)據(jù),實現(xiàn)了三維協(xié)同規(guī)劃模型。
趙建[5]采用協(xié)同工具Collaboration實現(xiàn)協(xié)同控制,并在處理沖突時,采用并發(fā)控制協(xié)商會議的策略,解決協(xié)同標繪時的操作沖突問題。
李蘇軍[6]等人通過設計并發(fā)控制策略及其算法,描述了數(shù)據(jù)傳輸過濾機制,解決了多用戶協(xié)同標繪與多視角演示的難題,實現(xiàn)了作戰(zhàn)構想快速生成與演示。
針對多人協(xié)同沖突消解方向,李袁帥[7]等人基于語義理解機制,提出了一種多人協(xié)同沖突控制機制,實現(xiàn)了一種在虛擬地理環(huán)境中的協(xié)同交互方案。
鄒崢嶸[8]等人通過結合ArcGIS中版本更新模式,采用"單人單版本"模式的數(shù)據(jù)編輯和更新模式,解決協(xié)同標繪過程中的沖突問題。
龔芳海[9]針對分布式環(huán)境下的大數(shù)據(jù)流的處理技術進行了探討。李立夏[10]等人通過協(xié)同管理標繪行為,給出了一種沖突控制策略及算法,提出了一種解決分布式環(huán)境下多用戶同時標繪的方案。
徐進[11]、朱曉宇[12]等人通過消息通信管理機制,實現(xiàn)了多人的協(xié)同工作方案。
上述態(tài)勢圖協(xié)同標繪的研究基本都是基于消息交換機制與計算機支持協(xié)同工作(CSCW)進行結合設計來實現(xiàn),并沒有針對交換數(shù)據(jù)量進行優(yōu)化,也沒有考慮到態(tài)勢標繪信息與沖突處理規(guī)則的統(tǒng)一管理與展示。類似本文通過設計一種多機位共享的態(tài)勢共享交換文件,從而實現(xiàn)標繪信息最小交換和沖突消解的多人協(xié)同標繪方案,目前暫未見到相關研究。
在協(xié)同標繪的過程中不僅要檢測識別當前用戶的交互操作,還要識別來自協(xié)同服務器的其他用戶的標繪消息。用戶在共享視圖中觸發(fā)標繪動作時都會根據(jù)當前動作產(chǎn)生一系列的操作描述與標繪請求事件,需要及時交由服務器端對分布式協(xié)作請求進行操作同步與數(shù)據(jù)融合處理。為了滿足多人協(xié)同標繪方案的態(tài)勢共享和最小消息交換需求,本文在后裝態(tài)勢標繪定義文件的基礎上,增添了機位定義、操作定義,以及為沖突消融機制提供處理方案的規(guī)則列表,最終設計出了一種服務于后裝綜合態(tài)勢應用的共享交換文件模型,如圖1所示。
圖1 態(tài)勢共享交換文件模型設計
該態(tài)勢共享文件模型遵循通用Web交換標準JSON的規(guī)范,在此基礎上定制了后裝態(tài)勢圖協(xié)同標繪標準模型,其文件內(nèi)容主要由標繪列表、操作列表、機位列表等模塊組成,共同構成了多機位標繪請求的全局視圖統(tǒng)一描述。
(1)標繪列表。主要存儲態(tài)勢地圖上標繪過的圖元,依據(jù)最后操作時間倒序排列。每個標繪圖元都包含基本屬性、創(chuàng)建時間、最后操作時間、是否鎖定、鎖定機位、是否顯示等屬性。其中,基本屬性即通用的GIS屬性,如描述物資部署狀態(tài)的圖元表達方式,展示效果依賴于底層可視化平臺與標繪指令集。在此基礎之上,附加了其他用于多機位協(xié)作的額外的屬性。
(2)機位列表。機位列表包含所有的正在進行協(xié)同態(tài)勢標繪的機位。每個操作機位的屬性包括基本屬性(機位ID、IP、操作人員等基礎信息)、鎖定圖元以及優(yōu)先級。
(3)沖突處理規(guī)則列表。沖突處理規(guī)則列表記錄了在沖突發(fā)生時的處理規(guī)則。包含左方對象、右方對象,以及其優(yōu)先級連接符(大于、等于、小于)。規(guī)則設計遵循現(xiàn)今常用的Drools規(guī)則引擎標準規(guī)范,具體規(guī)則參數(shù)需要參考聯(lián)合指揮部對各保障部門的任務配置。
(4)操作列表。操作列表包含歷史操作列表與當前操作列表。歷史操作列表用于版本回溯,存儲在協(xié)同標繪時經(jīng)沖突消解后的有效操作,包括操作圖元、操作時間、操作機位、操作內(nèi)容等屬性。當前操作列表存儲在當前時刻中所有機位的操作信息。與歷史操作列表不同,當前操作列表中以基礎操作圖元作為對象。因為在實際的協(xié)同標繪時,用戶的標繪過程分解后其實是多個圖元的創(chuàng)建、刪除、修改、移動等操作,將這些操作信息以最直接的形式進行存儲,能夠有效地節(jié)省傳輸數(shù)據(jù)以及后臺的轉(zhuǎn)換時間。另一方面,以操作圖元為對象進行存儲,方便與標繪列表進行一一對應,在標繪數(shù)量較大時,方便快速找到對應標繪圖元,有效地提高協(xié)同標繪的響應速度。
每一個操作圖元都對應一個或多個標繪操作,每個標繪操作除了標繪內(nèi)容以外,還應包括操作時間與標繪機位。多機位同一時間對同一個標繪的所有操作以時間正序排列。
根據(jù)多機位協(xié)同標繪的特點,本文在態(tài)勢共享交換文件模型的基礎上提出了以下幾種沖突消解方案。
悲觀鎖機制,指的是對圖元被外界修改持保守態(tài)度,在對該圖元的操作過程中,將數(shù)據(jù)處于鎖定狀態(tài)。
當多個機位同時對同一圖元進行編輯操作時,需要態(tài)勢共享交換文件的當前操作列表中的圖元下生成一個互相沖突的操作隊列,安裝時間先后順序進行排序。標繪服務器首先查詢該圖元是否已經(jīng)上鎖,如果沒有上鎖,則獲取隊列中的最前方的標繪操作,對該操作進行處理,并廢棄其他操作,同時發(fā)送消息到各個機位上,每個機位收到消息會對于該圖元進行加鎖操作。所有參與協(xié)同標繪的其他機位都不能對該圖元以及其相關的圖元進行操作。如該圖元在此之前已經(jīng)上鎖,則依據(jù)隊列依次搜索列表中是否存在對其進行上鎖的機位的操作,如不存在,則廢棄所有操作。如存在,則執(zhí)行該機位的操作。
這種機制可以有效地解決協(xié)同標繪中的沖突問題,但是降低了各個機位的參與度,而且頻繁的加鎖解鎖也會帶來很大的開銷,適合標繪數(shù)量較少時使用,如圖2所示。
圖2 悲觀鎖基本流程設計
當多個機位同時對同一個圖元進行操作時,通過發(fā)送該圖元的所有請求給操作機位,讓其自行協(xié)商處理。具體的流程與上圖類似,不同之處在于在多個機位同時操作同一圖元時,標繪服務器會發(fā)送該圖元的當前的所有操作隊列給操作機位,由多機位協(xié)商解決并確認單一操作后再進行交換文件的更新。協(xié)商機制適用于沖突操作比較少的情況。當沖突較多時,協(xié)商次數(shù)越多越影響標繪效率。
通過制定一個共同維護的處理規(guī)則,用以在沖突發(fā)生時,依據(jù)制定的規(guī)則選擇合適的處理方式。具體流程設計如下:
首先,預先定義態(tài)勢共享交換文件的沖突處理規(guī)則,規(guī)則的定義包括兩個對象及其連接符。
針對不同的沖突,主要分為兩類規(guī)則。第一類為不同操作的沖突處理規(guī)則,如:更新優(yōu)先級>刪除優(yōu)先級。創(chuàng)建優(yōu)先級>刪除優(yōu)先級。第二類為同一操作的處理規(guī)則,如,機位A的更新優(yōu)先級>機位B的更新優(yōu)先級,機位A的更新優(yōu)先級=機位B的更新優(yōu)先級,更新操作時間在前的優(yōu)先級>更新時間在后的優(yōu)先級。
該優(yōu)先級列表由所有機位共同確認維護,當有人需要修改優(yōu)先級時,采用協(xié)商機制,由標繪服務器發(fā)送消息給所有機位進行協(xié)商解決。當發(fā)生標繪沖突時,首先獲取該圖元的所有的沖突操作列表,依次對列表依據(jù)制定的規(guī)則進行判定,確認最終的標繪操作,并舍棄其他無用的操作。如果最后獲取的規(guī)則的左右對象連接符不為等號,則采用悲觀鎖機制進行標繪,如果連接符為等號,則采用協(xié)商機制進行協(xié)商標繪,如圖3所示。
圖3 規(guī)則處理基本流程設計
在規(guī)則的設計過程中,應該盡可能地減少優(yōu)先級相等的規(guī)則,以減少協(xié)商的時間花銷。這種方式結合了以上兩種方式的優(yōu)勢,但是需要預先制定規(guī)則且維護規(guī)則,適用于較復雜的需要進行大量圖元標繪的場景。
多人協(xié)同標繪的方案支持語音/文本標繪、觸摸手勢標繪、鼠標鍵盤標繪等多種模式進行標繪操作,通過WebSocket發(fā)送請求維護標繪服務器上的態(tài)勢共享交換文件,而標繪服務器將各個機位的標繪請求進行統(tǒng)一整理后,通過三維平臺繪制圖層進行動態(tài)展示,并將新的態(tài)勢共享交換文件的變化部分分發(fā)到各機位。每次進行信息交換時只交換變化的信息,減少網(wǎng)絡帶來延遲。在協(xié)同繪制中產(chǎn)生的標繪沖突,根據(jù)態(tài)勢共享交換文件的規(guī)則列表,進行對應的沖突判斷和沖突消解措施,自行處理或者提醒用戶協(xié)商解決,如圖4所示。
圖4 多人協(xié)同標繪技術方案
搭建四臺態(tài)勢標繪機位與一臺態(tài)勢標繪服務器進行測試。每臺標繪機位包括調(diào)度與協(xié)作信息處理兩個功能模塊。
調(diào)度模塊主要負責維護與解析態(tài)勢共享交換文件,并與標繪服務器的進行各類信息的交換,更新態(tài)勢共享交換文件,并執(zhí)行相關的處理。
協(xié)作信息處理模塊負責接收調(diào)度器發(fā)送的標繪指令,將它解析成GIS組件可以識別的制圖操作,調(diào)用GIS組件完成標繪工作。同時負責監(jiān)控GIS組件的發(fā)生事件(包括制圖命令及該命令改變了的空間實體信息數(shù)據(jù)),并將它進行包裝,上報到調(diào)度器。
最后,搭建標繪服務器,安裝統(tǒng)一調(diào)度器模塊。統(tǒng)一調(diào)度器負責維護與解析態(tài)勢共享交換文件,通過獲取各機位的標繪請求,更新態(tài)勢共享交換文件,并執(zhí)行相關的判斷與處理,進行統(tǒng)一后分發(fā)變化的信息至各標繪機位。
(1)制定標繪沖突處理規(guī)則。制定的規(guī)則如表1所示。
表1 預定義的沖突處理規(guī)則
(2)各個機位隨機進行標繪,在標繪過程中,隨機選擇已有的標繪圖元,進行更新操作。
(3)修改其中一個標繪沖突處理規(guī)則,將“機位C更新>機位D更新”修改為“機位C更新=機位D更新”,各個機位進行協(xié)商通過,然后繼續(xù)進標繪。
(4)繪制完畢。
如圖5所示,實驗通過4臺標繪機位仿真演練某次模擬作戰(zhàn)過程所需的戰(zhàn)役保障規(guī)劃,結果顯示整個繪制過程耗時5分鐘,標繪過程中各機位配合流暢,繪制沖突的實時消解狀況良好,未發(fā)生死鎖與其他意外情況。
圖5 四機位協(xié)同進行保障演練實驗的結果示例
本文設計了一種面向多人協(xié)同標繪的態(tài)勢共享交換文件模型,在保存標繪信息的同時,可以有效地減少協(xié)同標繪過程中的信息交換的次數(shù)與數(shù)據(jù)大小,并提供了解決標繪沖突的規(guī)則列表。
通過實驗證明,本模型能夠有效地支持多用戶進行實時或異步的地圖標繪、地圖編輯等操作,無縫地交換、協(xié)調(diào)各軍需、供給或運維部門的物資投送計劃和維保行動,實現(xiàn)了后裝綜合態(tài)勢信息交流和感知,實現(xiàn)了跨域背景下聯(lián)合保障任務可視化效果,并提高了態(tài)勢圖協(xié)作規(guī)劃的效率。