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