劉正 張新強 王鴻飛 喬可春
1.解放軍理工大學指揮信息系統學院江蘇南京210007 2.中國電子設備系統工程公司研究所北京100141 3.61516部隊北京100094
基于美國防部體系結構框架(Department of Defense Architecture Framework,DoDAF)[1]建立的體系結構是對系統的靜態描述,還不足以支撐系統動態特性的分析.Levis和Wagenhals提出了可執行模型的思想[2?3],即綜合體系結構中相應靜態視圖產品(OV5、OV6a、OV7以及OV6b)中的信息,以可追溯的方式映射到可執行模型(Coloured Petri Nets,CPN)中,通過模型的執行或數學分析,使得在頂層設計階段充分描述和理解系統的行為和性能成為了可能.后來的許多研究[4?10]都是在這一基礎上,進一步探索了這4類產品向其他可執行模型(如OPN[6]、HCPN[9]、Simulink[10]等)轉換的方法.但以上所選的體系結構產品構建的可執行模型,對系統行為的分析只是局限于邏輯層面,無法支撐實際的動態行為分析.本文以DoDAF1.0下的OV作為研究對象,通過改進Levis和Wagenhals可執行模型的構建思路,擴展了可執行模型對系統動態行為的驗證范圍,最終結合具體案例,介紹改進后的可執行模型的構建步驟與過程分析.
1)選擇參與構建可執行模型的基本視圖產品.Levis和Wagenhals認為,在DoDAF下,OV5描述了通常情況下實現使命任務或業務目標所進行的活動,當OV5按照OV6a描述的規則動態地執行、處理或消耗OV7中定義的數據時,就會展現出系統業務層面的動態行為.而OV6b定義了用戶期望的系統狀態轉換過程,它為系統動態行為狀態轉換提供了一致性評價的標準.
2)建立產品與可執行模型之間的轉換規則.CPN[11]是Petri網的高級形式,它除了具有普通Petri網展現建模對象動態特性、表征系統競爭和沖突現象的能力外,還增加了以下優勢:一是為Petri網中的Token賦予了顏色,通過建立顏色集,能夠方便地描述復雜數據實體;二是通過弧表示、守衛函數以及代碼片斷,提高了復雜點火規則的可讀性;三是CPN具有層次結構,能降低模型復雜度.
上述4類體系結構產品向CPN模型轉換的映射規則如圖1所示.首先,將OV5(以IDEF0描述的模型為例)作為可執行模型的基本結構,其中ICOM箭頭轉換為CPN模型中的庫所(P),活動轉換為模型中的變遷(T),庫所與變遷之間的弧線方向與OV5中箭頭的方向一致,若OV5具有層次結構,則將其分解模型分配到CPN模型的子層上重復上述轉換;其次,將OV7的數據結構轉換為模型的全局聲明,將OV6a中的規則變為模型的守衛函數、弧表示或代碼片斷;最后,將CPN的運行初態設置為OV6b的初始狀態.這樣構建的CPN模型,其所有要素都可回溯到參與構建的體系結構產品,因此在描述系統動態行為方面與體系結構產品保持了一致.
3)可執行模型的動態分析.一種方法是直接運行模型,這種方法既能向用戶直觀展示系統的動態行為,也能即時發現運行過程中死鎖、并發沖突等邏輯問題出現的位置,但仿真運行可能無法遍歷模型的所有狀態,難免會遺漏潛在的動態邏輯問題;另一種方法是利用工具全面驗證可執行模型的狀態轉換.CPN Tools是由丹麥Aarhus大學計算機科學系和美國宇航局聯合推出的CPN建模、仿真與分析工具,它具有可視化仿真界面,并且包含模型狀態分析功能,能夠描述可執行模型完整的狀態發生圖,便于進行狀態的一致性分析.Levis和Wagenhals正是利用這一工具進行了可執行模型的建模與分析.
上述方法的局限性,主要在于參與構建模型的體系結構產品還不夠豐富,影響了模型的驗證能力.正如DoDAF中指出,業務層面涉及的系統動態行為是指業務過程的動態行為引起的事件時序[1],它不僅包括OV5在OV6a、OV7以及OV6b支持下展現的邏輯層面的系統行為,同時還包括活動部署到執行節點后的實際動態行為(如系統能否在正確的節點、按照正確的順序執行正確的活動、交付或使用正確的信息).由于系統實際動態行為的評估既涉及到節點內活動的邏輯關系,又需要考慮到節點之間的關聯關系,因此在構建可執行模型時,需要OV2(節點連接描述)的參與.
OV2描述了特定活動(或任務)的執行節點,建立了節點間產生、使用和處理信息的關聯關系,這一關聯關系本質上是節點間活動的交互,因此OV2隱含了OV5中活動的邏輯連接關系,但是OV2本身并沒有顯性地描述活動間的邏輯連接,因此本文的基本思路是:以OV2為主體,通過推理或約定,將OV5中活動的邏輯連接關系拓展到OV2,明確節點間/內活動的邏輯連接,形成OV2與OV5融合模型.
OV2與OV5融合處理包括兩個關鍵環節:
1)確立節點間活動的邏輯連接.因為節點間活動的邏輯連接隱含于節點間信息交換關系之中,因此可以通過推理來獲得.
推理1(節點間活動的邏輯連接):在OV2中,如果從節點Ni到Nj存在信息交換,那么這條信息交換必定來源于OV5中的某兩個活動(假設為Am和An)之間的信息交互,且節點Ni和Nj當前分別部署了活動Am和An,因此可以建立從節點Ni中活動Am到Nj中活動An之間的邏輯連接.(當節點、活動為外部節點、外部活動時,可能并未在體系結構中描述,在推理節時假設其存在).
2)確立節點內活動的邏輯連接.由于OV2并沒有描述節點內的信息交換關系,所以節點內活動的邏輯連接,無法利用推理1得出.在此作如下約定:

圖1 體系結構產品向視圖級CPN轉換思路
約定1(節點內活動間的邏輯連接關系):如果節點內的某些活動之間在OV5中存在邏輯連接關系,那么在節點內這些活動之間也應該建立相應的邏輯連接.
約定2(節點內活動的無源控制與機制箭頭的邏輯連接):若節點內的活動在OV5中具有無源控制或機制箭頭,同時這些箭頭未構成節點間的信息交換,則依據其在OV5中的邏輯位置添加至節點相應的活動上.
OV2與OV5融合模型增加了節點與信息交換的描述,因此需要增加節點、信息交換以及節點層次關系向CPN轉換的映射規則,如表1、表2所示.

表1 節點、信息交換、節點層次關系向CPN轉換映射

表2 節點層次關系向CPN轉換映射
下面以一個簡化的執行空中攔截使命任務的OV作為案例進行分析,圖2為高級作戰概念圖OV1,基本想定為:

圖2 OV1高級作戰概念圖
1)設置1個空中指揮中心節點,進行決策和下達命令;
2)設置2個偵察節點,其中1個偵察節點根據空中指揮中心的命令執行常規偵察活動,另一偵察節點隨時待命,根據空中指揮中心命令擇機參與偵察活動;
3)設置1個行動節點,根據空中指揮中心命令派遣攔截機執行攔截任務.
其簡化的作戰流程如下:
1)常規偵察節點執行常規偵察任務;
2)當有不明飛行物體接近使命空域時,常規偵察節點感知并向空中指揮中心報告;
3)空中指揮中心進行不明飛行物的敵我識別;
4)空中指揮中心根據識別結果,進行決策:
a)若不明物為我機,則轉向1);
b)若不明物為敵機,則向行動節點下達攔截命令,轉向6);
c)若不明物未識別:
和平環境下,向待命偵察節點下達定向偵察命令,轉向5);
戰爭環境下,向行動節點下達攔截命令,轉向6);
5)待命偵察節點進行感知、識別判斷后,向空中指揮中心報告,返回4);
6)行動節點接到命令后,出動攔截機,展開行動.
具體的運營規則(OV6a)如表3所示:

表3 規則模型OV6a(結構化英語if..then)

續表3

續表3
圖3~圖6是根據想定案例生成的OV的其他體系結構產品,分別為:OV2、OV5、OV7以及OV6b.
基于體系結構產品構建可執行模型的必要前提是體系結構產品完成了靜態一致性驗證,由于本文重點研究的是可執行模型的改進,所以關于產品靜態一致性驗證過程在此省略.

圖3 OV2節點連接描述圖(層次化分解)

圖4 OV5活動模型(IDEF0)

圖5 OV7數據模型

圖6 狀態轉換模型(OV6b)
依據1.2節的推理和約定,首先對OV2、OV5進行融合處理,步驟如下:
Step1:選擇OV2中的葉節點作為初始點.葉節點中分配的活動可能有兩種:一種是可再分解的父活動,另一種是不可再分的葉活動.若葉活動屬于父活動的分解活動,則只保留父活動.
Step2:新建子層,在子層中建立葉節點間/內活動的邏輯連接.
Step3:若該層內存在可再分的父活動,則繼續新建子層,插入該父活動的分解模型,直至結束.
通過上述步驟可以得到OV2與OV5的融合模型.如圖7所示.
首先依據圖8建立CPN的基本結構,再結合OV7、OV6a以及OV6b完善CPN模型,步驟如下:
Step 1:從OV2與OV5的融合模型開始,自頂向下按照“節點-子節點-活動-子活動”的順序將融合模型的層次結構變為CPN的層次結構,每個節點、活動變成CPN對應層次的變遷,信息交換、ICOM箭頭變成庫所,建立庫所與變遷的連接弧;
Step 2:根據OV7建立CPN模型全局聲明;
Step 3:根據OV6a建立CPN中的弧表達、守衛函數或代碼片斷;
Step 4:按照OV6b的初始狀態設置CPN的運行初態.
由于篇幅所限,在此只顯示整個CPN的3個模型:頂層節點連接模型、N1節點分解模型、以及N1.2節點中Sense活動分解模型.如圖8所示.

圖7 明確活動邏輯連接關系的OV2與OV5融合模型

圖8 CPN可執行模型(節選)

圖9 CPN模型狀態發生圖
在1.1節中已經概述了CPN模型的兩種動態分析方法,本文著重介紹后一種方法,圖9所示即本文構建的CPN模型的狀態發生圖,它是帶有狀態節點與弧的有向圖,每個狀態節點上包含3個數字,最上面的數字為狀態節點的標識,下方兩個數字,例如1:2,前者代表該狀態節點有1個前狀態節點,后者代表其有2個后狀態節點.每個狀態節點定義了CPN模型的一個狀態,狀態節點可以展開,展開后能夠顯示當前狀態節點下整個CPN模型所有庫所中包含的Token集合,如圖中狀態節點11下方方框所示,而每條弧線的方向代表了狀態轉換發生的方向,弧線展開后,可以顯示引起狀態變化的變遷名字、激活該變遷的條件等,如圖中狀態節點8->11的弧所示.
通過狀態發生圖,可以對案例體系結構的動態行為進行以下幾方面分析:
1)體系結構的狀態轉換是否與用戶渴望的狀態(OV6b)一致.以狀態節點8->11的弧為例,它表示N3節點中的活動Act在收到需攔截的威脅標識(tid=1)并存在可用攔截機(iid=1)的條件下能夠滿足變遷的點火規則,從狀態8轉到狀態11.這與OV6b 中從 “N2deciding act”到 “N3act intercept”的狀態變化條件是一致的.
2)部署在不同節點的相同活動的執行時機.圖中標注了節點N11中的活動Detect執行可能導致的狀態轉換:1->1、1->2,節點N12中Detect活動執行可能導致的狀態轉換:7->9、7->10、18->9、18->20.通過分析可以發現,對于設定的單一威脅來說,節點N11中的Detect活動僅在初始時參與了執行,引起狀態轉換(1->1未偵察到威脅、1->2偵察到威脅),后續與Detect活動相關的狀態轉換均由N12節點引起的,這與OV6b中描述的是一致的.
3)通過動態分析發現狀態轉換過程中存在的循環過程.針對循環過程,可以詳細分析體系結構的動態行為是否存在死循環的可能.我們在圖中用自然語言描述了狀態5->7->10->14->5這一循環過程的狀態變化條件,從中可以發現,當待命偵察節點收到定向偵察命令后,若探測概率低將一直無法偵察到威脅,繼而無論其識別威脅的概率有多高,在邏輯上待命偵察節點都不會識別威脅,那么在和平環境下,就會導致空中指揮中心不斷命令其執行定向偵察活動,從而使整個運營流程進入一個不斷循環的狀態.
本文在OV5、OV6、OV7等產品的基礎上將OV2納入構建可執行模型的體系結構產品序列中,能夠更深入地分析系統業務層面的動態行為,通過評估活動部署后實際運行的動態特性,使體系結構的動態特性得到了更充分的驗證.
對于當前As-Is體系結構,在上述可執行模型中可以進一步考慮節點的人員/設備資源、活動的執行成本、時間等因素,通過收集可執行模型的運行數據,統計分析體系結構節點資源占用率、運行成本、時間效率等關鍵指標,查找體系結構中可能存在的短板,可為將來的To-Be體系結構的改進完善打下基礎.