王玨 林眾
(大連艦艇學(xué)院作戰(zhàn)軟件與仿真研究所 大連 116011)
海上編隊(duì)包含艦艇、潛艇以及飛機(jī)等大量兵力,能夠遂行各種不同類型的作戰(zhàn)任務(wù),需要制定詳細(xì)的作戰(zhàn)計(jì)劃,這些作戰(zhàn)計(jì)劃時(shí)間跨度大,包含要素眾多,復(fù)雜程度極高,導(dǎo)致海上編隊(duì)作戰(zhàn)計(jì)劃制定周期大大加長[1~2]。作戰(zhàn)計(jì)劃將被分派給多個(gè)參謀人員進(jìn)行制定,最后再進(jìn)行匯總,經(jīng)反復(fù)迭代后最終形成完整的作戰(zhàn)計(jì)劃[3~4]。這就需要為參謀人員提供大量的任務(wù)規(guī)劃終端,而這些終端接入作戰(zhàn)網(wǎng)絡(luò)后,需要其中的數(shù)據(jù)能夠高效率與其他終端交互,并且能夠高效率在作戰(zhàn)網(wǎng)絡(luò)服務(wù)器中匯總,以保證制定的作戰(zhàn)計(jì)劃能夠快速匯總為整體作戰(zhàn)計(jì)劃[5~6]。
海上編隊(duì)作戰(zhàn)任務(wù)規(guī)劃數(shù)據(jù)極端復(fù)雜,傳統(tǒng)的人工匯總作戰(zhàn)計(jì)劃的方式效率較低,若要實(shí)現(xiàn)作戰(zhàn)計(jì)劃的高效同步以及匯總,必須使用實(shí)時(shí)數(shù)據(jù)同步技術(shù),使得編隊(duì)中所包含的復(fù)雜作戰(zhàn)數(shù)據(jù)快速同步[7]。本文提出了基于ECA規(guī)則的實(shí)時(shí)數(shù)據(jù)同步技術(shù),該技術(shù)建立了唯一的作戰(zhàn)數(shù)據(jù)轉(zhuǎn)換標(biāo)準(zhǔn),并在此標(biāo)準(zhǔn)的基礎(chǔ)上建立了ECA規(guī)則,實(shí)現(xiàn)了基于ECA規(guī)則的實(shí)時(shí)數(shù)據(jù)同步系統(tǒng)。系統(tǒng)中不同終端的作戰(zhàn)計(jì)劃數(shù)據(jù)能夠自動進(jìn)行匹配,進(jìn)而匯總同步,從而大大提高編隊(duì)作戰(zhàn)計(jì)劃匯總效率,提升編隊(duì)作戰(zhàn)能力[8]。
為了在各任務(wù)規(guī)劃終端之間實(shí)現(xiàn)作戰(zhàn)數(shù)據(jù)信息的同步,必須建立一種機(jī)制,作戰(zhàn)數(shù)據(jù)轉(zhuǎn)換標(biāo)準(zhǔn)就是描述作戰(zhàn)計(jì)劃中各種數(shù)據(jù)要素的一種通用語言[9]。該語言具有兩種特性,即可讀性和唯一性,可讀性保證了計(jì)算機(jī)能夠解讀其中包含的信息,唯一性則避免了歧義。而且該語言能夠保持?jǐn)?shù)據(jù)的完整,為多終端實(shí)時(shí)同步數(shù)據(jù)打下基礎(chǔ)。作戰(zhàn)數(shù)據(jù)轉(zhuǎn)換標(biāo)準(zhǔn)的體系結(jié)構(gòu)分為應(yīng)用層、邏輯層以及物理層,如圖1所示。
圖1 標(biāo)準(zhǔn)數(shù)據(jù)的體系結(jié)構(gòu)
這三個(gè)層次與數(shù)據(jù)庫的三級模式相對應(yīng)。應(yīng)用層作為最表層,直接與具體應(yīng)用相關(guān)聯(lián),能夠建立作戰(zhàn)計(jì)劃數(shù)據(jù)模型。邏輯層作為中間層,包含了應(yīng)用以及通用集成資源,能夠產(chǎn)生統(tǒng)一的規(guī)格說明。物理層是最內(nèi)層,描述了具體的實(shí)現(xiàn)形式,包含了數(shù)據(jù)庫、知識庫以及標(biāo)準(zhǔn)數(shù)據(jù)訪問接口[10]。
傳統(tǒng)的任務(wù)規(guī)劃系統(tǒng)中,作戰(zhàn)數(shù)據(jù)的操作,包括存儲、修改和刪除等,這些動作主要都是由使用者產(chǎn)生的,而系統(tǒng)的數(shù)據(jù)庫僅僅是被動地響應(yīng)操作?;贓CA規(guī)則的海上編隊(duì)任務(wù)規(guī)劃數(shù)據(jù)實(shí)時(shí)同步技術(shù)變被動數(shù)據(jù)庫為智能的主動數(shù)據(jù)庫。這種數(shù)據(jù)庫由事件驅(qū)動,在特定條件觸發(fā)時(shí),能夠自動觸發(fā)執(zhí)行一些數(shù)據(jù)操作。ECA規(guī)則是該任務(wù)規(guī)劃系統(tǒng)主動數(shù)據(jù)庫一種控制規(guī)范,由事件(Event,E),條件(Condition,C)和動作(Action,A)三部分構(gòu)成[11]。ECA規(guī)則將被動作戰(zhàn)數(shù)據(jù)庫轉(zhuǎn)變?yōu)橹鲃幼鲬?zhàn)數(shù)據(jù)庫。該規(guī)則的策略主要是當(dāng)一個(gè)事件發(fā)生后,采用事件監(jiān)視器來捕獲該事件,然后依據(jù)由事件、條件和動作有機(jī)結(jié)合的ECA規(guī)則知識庫進(jìn)行條件判斷,選擇合適的動作。ECA規(guī)則是作戰(zhàn)任務(wù)規(guī)劃主動數(shù)據(jù)庫的核心,能夠?qū)?shù)據(jù)與知識實(shí)現(xiàn)分離是其顯著的特點(diǎn)[12]。
基于ECA規(guī)則的海上編隊(duì)任務(wù)規(guī)劃數(shù)據(jù)實(shí)時(shí)同步系統(tǒng)的體系結(jié)構(gòu)如圖2所示,它具有自適應(yīng)、實(shí)時(shí)和柔性的特點(diǎn)。
ECA規(guī)則的標(biāo)準(zhǔn)描述可以如下所示:
WHEN(Event)
IF(Condition)
THEN(Action 1)
ELSE(Action 2)OR(NULL)
其含義為當(dāng)事件(Event)發(fā)生時(shí),如果滿足條件(Condition),則執(zhí)行活動1(Action 1);否則,則執(zhí)行活動2(Action 2)或不執(zhí)行任何活動。其中,事件和條件關(guān)系的表達(dá)方式是多種多樣的,其中包括常見的或、與、非甚至更加復(fù)雜的事件和條件關(guān)系。當(dāng)這些事件、條件以及它們之間的關(guān)系觸發(fā)時(shí),在ECA規(guī)則驅(qū)動下的主動數(shù)據(jù)庫就能夠自行觸發(fā)數(shù)據(jù)交換等特定的數(shù)據(jù)處理動作,同時(shí),ECA規(guī)則本身能夠根據(jù)用戶要求實(shí)時(shí)地進(jìn)行更新,滿足不同狀態(tài)下系統(tǒng)對事件和條件響應(yīng)的要求。
應(yīng)用ECA規(guī)則可以監(jiān)控任務(wù)規(guī)劃系統(tǒng)中各個(gè)終端作戰(zhàn)數(shù)據(jù)的變化,一旦產(chǎn)生數(shù)據(jù)更新,系統(tǒng)將對其進(jìn)行識別,而后根據(jù)ECA規(guī)則將作戰(zhàn)數(shù)據(jù)自動實(shí)時(shí)地傳輸至其他作戰(zhàn)終端的數(shù)據(jù)庫中,從而完成實(shí)時(shí)數(shù)據(jù)同步?;贓CA規(guī)則的實(shí)時(shí)任務(wù)規(guī)劃數(shù)據(jù)同步系統(tǒng)結(jié)構(gòu)如圖3所示。
系統(tǒng)采用Client-Server(C/S)結(jié)構(gòu),即服務(wù)器負(fù)責(zé)數(shù)據(jù)的管理,籌劃終端負(fù)責(zé)完成與用戶的交互任務(wù)。這種結(jié)構(gòu)當(dāng)中,服務(wù)器的作用較多,能夠?qū)芾碛脩舻脑L問權(quán)限、數(shù)據(jù)存儲、數(shù)據(jù)查詢以及版本控制。各任務(wù)規(guī)劃終端能在局域網(wǎng)的基礎(chǔ)上進(jìn)行實(shí)時(shí)快速的數(shù)據(jù)同步,每一個(gè)任務(wù)規(guī)劃終端由本機(jī)任務(wù)規(guī)劃系統(tǒng),數(shù)據(jù)轉(zhuǎn)換標(biāo)準(zhǔn),ECA Mediator和實(shí)時(shí)數(shù)據(jù)同步組成?;I劃終端的各個(gè)作戰(zhàn)要素?cái)?shù)據(jù)首先被轉(zhuǎn)換成標(biāo)準(zhǔn)數(shù)據(jù)格式以方便計(jì)算機(jī)識別。然后通過ECA規(guī)則辨別數(shù)據(jù)的更新等事件以及條件,從而驅(qū)動自行觸發(fā)數(shù)據(jù)交換等特定的數(shù)據(jù)處理動作。當(dāng)數(shù)據(jù)處理動作觸發(fā)之后,各終端將相互發(fā)送并接受各自產(chǎn)生的標(biāo)準(zhǔn)實(shí)時(shí)數(shù)據(jù),從而實(shí)現(xiàn)作戰(zhàn)數(shù)據(jù)的實(shí)時(shí)同步。
1)標(biāo)準(zhǔn)數(shù)據(jù)轉(zhuǎn)換構(gòu)件
每個(gè)任務(wù)規(guī)劃終端具有完整的功能,是可以脫離作戰(zhàn)網(wǎng)絡(luò)獨(dú)立的個(gè)體,有自己獨(dú)立的作戰(zhàn)數(shù)據(jù)庫。為了實(shí)現(xiàn)各個(gè)任務(wù)規(guī)劃終端所包含的數(shù)據(jù)自動進(jìn)行同步,就必須首先把各個(gè)終端中的獨(dú)立數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化表示,標(biāo)準(zhǔn)數(shù)據(jù)轉(zhuǎn)換構(gòu)件將自動把作戰(zhàn)數(shù)據(jù)轉(zhuǎn)變成標(biāo)準(zhǔn)格式。
標(biāo)準(zhǔn)數(shù)據(jù)轉(zhuǎn)換的方式為數(shù)據(jù)處理構(gòu)件把各個(gè)終端中的作戰(zhàn)數(shù)據(jù)轉(zhuǎn)化成同步文件,該文件符合同步結(jié)構(gòu)語法。然后該構(gòu)件將這些文件讀入并將這些數(shù)據(jù)解析后輸入其余不同終端。
2)ECA Mediator構(gòu)件
在數(shù)據(jù)同步的過程中,ECA Mediator構(gòu)件能夠自動監(jiān)測并識別數(shù)據(jù)的更新。該構(gòu)件根據(jù)ECA規(guī)則判斷數(shù)據(jù)更新這一事件,在實(shí)時(shí)數(shù)據(jù)同步過程中,ECA規(guī)則可以有效避免數(shù)據(jù)的重復(fù)傳輸,僅僅將更新的數(shù)據(jù)實(shí)時(shí)同步。圖4顯示了該構(gòu)件的工作流程圖。即作戰(zhàn)數(shù)據(jù)先進(jìn)行形式化轉(zhuǎn)換,再由ECA規(guī)則檢測識別,確認(rèn)數(shù)據(jù)更新后進(jìn)行實(shí)時(shí)的數(shù)據(jù)交換。ECA規(guī)則是整個(gè)構(gòu)件的核心技術(shù)。
圖4 數(shù)據(jù)更新的程序流程圖
3)實(shí)時(shí)數(shù)據(jù)同步構(gòu)件
每個(gè)終端中實(shí)時(shí)數(shù)據(jù)同步構(gòu)件用來實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)同步。為了實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)同步,必須在更新的數(shù)據(jù)前面加上數(shù)據(jù)控制字段,形成新的格式。如表1所示??刂贫伟齻€(gè)部分,User ID和實(shí)體序列號部分主要起到標(biāo)識作用。可以保證各任務(wù)規(guī)劃終端之間標(biāo)識的唯一性。詳細(xì)來說,某個(gè)任務(wù)規(guī)劃終端產(chǎn)生了數(shù)據(jù)更新,實(shí)時(shí)數(shù)據(jù)同步構(gòu)件為其分配一個(gè)序列號,每個(gè)任務(wù)規(guī)劃終端具有自動標(biāo)識的userID,保證了數(shù)據(jù)的唯一性。編輯命令部分主要起到控制數(shù)據(jù)的更新操作。這些操作分為insert(create),delete和modify三類。
表1 標(biāo)準(zhǔn)實(shí)時(shí)數(shù)據(jù)同步格式
更新的數(shù)據(jù)組成了新的數(shù)據(jù)格式中的數(shù)據(jù)段,僅僅包含ECA Mediator監(jiān)控的更新數(shù)據(jù)。數(shù)據(jù)實(shí)時(shí)同步時(shí)只對這些監(jiān)控到的更新數(shù)據(jù)進(jìn)行同步,減少了傳輸流量,作戰(zhàn)數(shù)據(jù)的同步效率大大增加。
實(shí)時(shí)數(shù)據(jù)同步格式產(chǎn)生后,各個(gè)任務(wù)規(guī)劃終端中的實(shí)時(shí)數(shù)據(jù)同步構(gòu)件則向服務(wù)器和其他作戰(zhàn)任務(wù)規(guī)劃終端傳輸這些數(shù)據(jù)。作戰(zhàn)網(wǎng)絡(luò)中往往包含多個(gè)作戰(zhàn)任務(wù)規(guī)劃終端,必須使用某種機(jī)制來解決終端間傳輸?shù)臎_突。本文使用了一種基于鎖的并發(fā)控制機(jī)制:
1)當(dāng)某作戰(zhàn)任務(wù)規(guī)劃終端發(fā)送指令時(shí),該作戰(zhàn)籌劃終端則被設(shè)定為busy狀態(tài);另一狀態(tài)為free。
2)系統(tǒng)對作戰(zhàn)網(wǎng)絡(luò)中的其它作戰(zhàn)任務(wù)規(guī)劃終端狀態(tài)進(jìn)行監(jiān)控。
3)系統(tǒng)根據(jù)其余作戰(zhàn)任務(wù)規(guī)劃終端的狀態(tài)來執(zhí)行動作,若某作戰(zhàn)任務(wù)規(guī)劃終端狀態(tài)為free,則為其傳輸更新的數(shù)據(jù);如果某作戰(zhàn)任務(wù)規(guī)劃終端的狀態(tài)為busy,數(shù)據(jù)傳輸則被停止,但數(shù)據(jù)本身將被存儲至數(shù)據(jù)庫,當(dāng)終端狀態(tài)轉(zhuǎn)變?yōu)閒ree時(shí),上述數(shù)據(jù)傳輸則繼續(xù)進(jìn)行。
4)當(dāng)?shù)谝粋€(gè)作戰(zhàn)任務(wù)規(guī)劃終端完成更新數(shù)據(jù)的傳輸后,其原有的busy狀態(tài)將會轉(zhuǎn)變?yōu)閒ree狀態(tài),使得該終端能夠繼續(xù)接受其他終端的更新數(shù)據(jù)。
基于ECA規(guī)則的實(shí)時(shí)數(shù)據(jù)同步技術(shù)可以成功實(shí)現(xiàn)作戰(zhàn)任務(wù)規(guī)劃數(shù)據(jù)的實(shí)時(shí)同步,過程如下:
1)指揮人員通過便攜式終端在異地對同一作戰(zhàn)任務(wù)進(jìn)行規(guī)劃,而后將便攜式終端鏈接至作戰(zhàn)網(wǎng)絡(luò),通過作戰(zhàn)會議形成統(tǒng)一的作戰(zhàn)計(jì)劃;
2)指揮人員修改作戰(zhàn)計(jì)劃,終端中的數(shù)據(jù)轉(zhuǎn)換構(gòu)件將作戰(zhàn)計(jì)劃數(shù)據(jù)進(jìn)行形式化的標(biāo)準(zhǔn)轉(zhuǎn)換;
3)該終端的ECA Mediator依據(jù)ECA規(guī)則監(jiān)控更新數(shù)據(jù),僅僅將更新的數(shù)據(jù)傳輸至實(shí)時(shí)數(shù)據(jù)同步構(gòu)件;
4)實(shí)時(shí)數(shù)據(jù)同步構(gòu)件生成標(biāo)準(zhǔn)實(shí)時(shí)數(shù)據(jù)同步格式,然后向作戰(zhàn)網(wǎng)絡(luò)和其他作戰(zhàn)任務(wù)規(guī)劃終端傳輸該數(shù)據(jù);
5)作戰(zhàn)網(wǎng)絡(luò)和其他任務(wù)規(guī)劃終端根據(jù)ECA規(guī)則接收更新的數(shù)據(jù),將形式化的標(biāo)準(zhǔn)數(shù)據(jù)保存在作戰(zhàn)網(wǎng)絡(luò)數(shù)據(jù)庫和終端自身的數(shù)據(jù)庫中;
6)其他終端中的標(biāo)準(zhǔn)數(shù)據(jù)轉(zhuǎn)換構(gòu)件對更新的形式化標(biāo)準(zhǔn)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,并存儲至自身數(shù)據(jù)庫。
海上編隊(duì)航渡作戰(zhàn)主要由水面艦艇、潛艇以及各種飛機(jī)組成了某航渡作戰(zhàn)隊(duì)形,其中分為空中、水面等部分。指揮人員通過接入作戰(zhàn)網(wǎng)絡(luò)控制航渡隊(duì)形同步。以兩個(gè)指揮人員使用作戰(zhàn)任務(wù)規(guī)劃系統(tǒng)同時(shí)接入作戰(zhàn)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)同步為例來說明上述過程。作戰(zhàn)網(wǎng)絡(luò)中編隊(duì)航渡隊(duì)形僅包含指揮艦本身,如圖5所示。指揮人員A和B分別用自身的任務(wù)規(guī)劃終端對某作戰(zhàn)隊(duì)形進(jìn)行規(guī)劃,指揮人員A負(fù)責(zé)隊(duì)形的空中兵力部分,如圖6所示。指揮人員B負(fù)責(zé)隊(duì)形的水面兵力部分,如圖7所示。雙方希望將對方的空中、水面部分同步至自己的終端以查看最終的隊(duì)形,同時(shí)將最終的隊(duì)形匯總至作戰(zhàn)網(wǎng)絡(luò),指揮員A與B終端的ECA Mediator監(jiān)控和識別作戰(zhàn)隊(duì)形變化,數(shù)據(jù)轉(zhuǎn)換構(gòu)件對A與B終端中的空中兵力部分和水面兵力部分的更新數(shù)據(jù)進(jìn)行形式化的標(biāo)準(zhǔn)轉(zhuǎn)換。實(shí)時(shí)數(shù)據(jù)同步構(gòu)件生成標(biāo)準(zhǔn)實(shí)時(shí)數(shù)據(jù)同步格式,然后向作戰(zhàn)網(wǎng)絡(luò)和其他作戰(zhàn)任務(wù)規(guī)劃終端傳輸該數(shù)據(jù),作戰(zhàn)網(wǎng)絡(luò)終端以及雙方自身終端最終的隊(duì)形如圖8所示。
圖5 作戰(zhàn)網(wǎng)絡(luò)中原有作戰(zhàn)隊(duì)形
圖6 作戰(zhàn)隊(duì)形空中兵力部分
圖7 作戰(zhàn)隊(duì)形水面兵力部分
圖8 總體作戰(zhàn)隊(duì)形
基于ECA規(guī)則的海上編隊(duì)任務(wù)規(guī)劃數(shù)據(jù)實(shí)時(shí)同步技術(shù)建立了基于ECA規(guī)則的實(shí)時(shí)數(shù)據(jù)同步架構(gòu),由作戰(zhàn)網(wǎng)絡(luò)、數(shù)據(jù)庫以及多個(gè)任務(wù)規(guī)劃終端組成。定義了標(biāo)準(zhǔn)實(shí)時(shí)數(shù)據(jù)同步格式;應(yīng)用了一種基于鎖的并發(fā)控制機(jī)制來消除數(shù)據(jù)傳輸沖突;設(shè)計(jì)了實(shí)時(shí)數(shù)據(jù)同步中的ECA規(guī)則。該技術(shù)能夠保證作戰(zhàn)網(wǎng)絡(luò)上的數(shù)據(jù)傳輸只包含更新的數(shù)據(jù),避免了傳輸無用的重復(fù)數(shù)據(jù)占用帶寬,最終實(shí)現(xiàn)多終端作戰(zhàn)方案的實(shí)時(shí)自動同步,提高了任務(wù)規(guī)劃效率,提升了作戰(zhàn)指揮控制能力。