国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于插件的可擴展戰(zhàn)場態(tài)勢展現(xiàn)框架的設計與實現(xiàn)

2013-08-20 01:54:42李祥吳瑞祥薛雯
網(wǎng)絡安全技術與應用 2013年7期
關鍵詞:核心部件管理器右鍵

李祥 吳瑞祥 薛雯

(中國電子科技集團公司第二十八研究所 江蘇 210007)

0 前言

隨著信息技術的發(fā)展,戰(zhàn)場信息的探測和收集手段越來越多,這對信息的處理與展現(xiàn)提出了很大的挑戰(zhàn)。人對信息最直觀的認識來源于視覺和聽覺。而對于戰(zhàn)場綜合情報而言,最直觀的表現(xiàn)方式是圖形。由于戰(zhàn)場態(tài)勢復雜多變,需要各專業(yè)人員進行分析與處理。處理完后,如何以一種統(tǒng)一的方式展現(xiàn)在很大程度上決定了情報的效用。因此,構建一個可擴展的開放式圖形展現(xiàn)框架是指揮信息系統(tǒng)的必然需要。

同時,從軟件的角度來看,可擴展性作為軟件的非功能性屬性意義重大,它在一定程度上決定了軟件的生命力??蓴U展性好的軟件能夠適應各種變化,能夠很快的響應用戶的需求。因此,軟件開發(fā)者總是力求提高軟件的可擴展性。良好的設計是可擴展性的保障,插件式開發(fā)作為一種良好的設計得到了廣泛的應用。Eclipse就是插件式開發(fā)的典型案例。Eclipse基于OSGi(Open Services Gateway Initiative,OSGi,開放服務網(wǎng)關協(xié)議),開發(fā)者按照其規(guī)范開發(fā)的插件能夠無縫集成到Eclipse軟件中。

1 戰(zhàn)場態(tài)勢展現(xiàn)要素分析

戰(zhàn)場態(tài)勢總體分為兩大類:動態(tài)目標情報和靜態(tài)部署情報。其中動態(tài)目標情報包括:雷達情報、技偵情報、電抗情報等,靜態(tài)部署情報包括:機場、港口、兵力部署等軍事部署信息。此外,在綜合態(tài)勢之上還可根據(jù)實時態(tài)勢疊加作戰(zhàn)計劃等信息,進行作戰(zhàn)推演評估,擬制修改作戰(zhàn)計劃。如圖1所示為戰(zhàn)場態(tài)勢綜合集成展現(xiàn)示意圖。

圖1 戰(zhàn)場態(tài)勢綜合集成展現(xiàn)

圖 1中,“原始態(tài)勢數(shù)據(jù)”來源有:雷達站、觀通站探測的實時目標數(shù)據(jù),作戰(zhàn)標準數(shù)據(jù)庫的靜態(tài)部署數(shù)據(jù)、作戰(zhàn)計劃數(shù)據(jù)和評估模型數(shù)據(jù)等。這些數(shù)據(jù)都會通過“統(tǒng)一信息傳遞平臺”發(fā)送給綜合態(tài)勢展現(xiàn)終端,綜合態(tài)勢展現(xiàn)終端通過各處理模塊對這些數(shù)據(jù)進行預處理,并通過統(tǒng)一圖形繪制命令進行圖形繪制,將數(shù)據(jù)圖形化顯示。此外,綜合態(tài)勢展現(xiàn)終端具有與展現(xiàn)數(shù)據(jù)的干預交互能力,能夠在態(tài)勢圖上擬制修改作戰(zhàn)計劃。

如何對各處理模塊進行有效的管理(加載、調用等)決定了綜合態(tài)勢展現(xiàn)終端的可擴展性和實用性。好的模塊管理方法能夠按需集成多個數(shù)據(jù)處理模塊,又不增加軟件的復雜度,能夠提高軟件的穩(wěn)定性和展現(xiàn)的效果。

2 可擴展開放圖形框架XOGF

針對戰(zhàn)場綜合態(tài)勢展現(xiàn)的要求,本文提出了一種可擴展開放圖形框架XOGF(eXtend Open Graphic Frame),用于有效管理和集成基于態(tài)勢圖的業(yè)務處理模塊。本節(jié)將對XOGF的主體思想和工作原理進行介紹。

2.1 系統(tǒng)組成

可擴展開放圖形框架(以下簡稱圖形框架)是一個提供圖形插件式開發(fā)的基礎平臺,由一個核心部件和一系列管理部件組成,其體系結構如圖 2所示。

圖2 可擴展開放圖形框架體系結構圖

從圖 2可以看出,基于圖形框架的應用軟件有三個組成部分:

(1)核心部件

圖形框架核心部件的作用是:加載插件,調用插件的標準化響應函數(shù),負責插件間信息交互。

(2)管理部件

圖形框架管理部件的作用是管理插件(增加、刪除、更改優(yōu)先級),分配命令碼和干預命令,管理操作對象。管理部件具有六個子部件:插件管理器、命令碼分配器、干預命令分配器、操作對象管理器、插件生成器和日志分析器。

(3)插件

插件是依據(jù)一定準則開發(fā)的能夠應用于圖形框架軟件以達到擴充其能力的動態(tài)庫。這些準則由核心部分制定。

2.2 工作原理

圖3 圖形框架組件關系圖

如圖 3所示為圖形框架組件關系圖。主程序通過插件表來加載插件,插件管理自己的菜單和工具欄。當主程序觸發(fā)事件后,核心部件將其分發(fā)給各插件,各插件決定是否要響應這一事件。然而,不同的事件會產生不同的狀態(tài),而不同的狀態(tài)會決定下一事件應該由哪個插件響應。由于各插件之間是自治的和自完備的,如何保證某一插件響應事件后系統(tǒng)狀態(tài)的變化能夠被其他插件感知而又不破壞插件的自治性和完備性是圖形框架設計的重點和難點。我們將這一問題分解為三個核心問題:(1)插件間如何通信;(2)如何確定系統(tǒng)的唯一狀態(tài);(3)右鍵菜單如何組合。下面將分別討論這三個問題。

2.2.1 插件間通信

XOGF有兩類插件通信問題:(1)核心部件與插件間的通信問題;(2)插件之間的通信問題。

對于問題(1),框架核心部件向插件傳輸信息的問題已解決,如圖 4所示,通過調用插件的標準導出函數(shù)來實現(xiàn);而插件向框架核心部件的信息傳輸可通過向主程序發(fā)送消息,再由主程序轉發(fā)給框架核心部件。

圖4 核心部件與插件間的通信

對于問題(2),插件通過核心部件中轉信息。插件間通信的方式有兩種:主動獲取與被動接收。無論是哪種模式,都需要一塊內存區(qū)域來存儲通信的“信息”。圖 5示意了插件如何主動獲取與被動接收信息。

插件間的通信主要應用于兩種場景:(1)某一插件狀態(tài)發(fā)生改變通知其他插件;(2)某插件選中了其導出對象,要將導出對象的信息傳給依賴于他的插件,這種情況主要應用于右鍵菜單的合并。

圖5 插件間的通信

2.2.2 確定系統(tǒng)的唯一狀態(tài)

圖形操作交互式事件有三類:按鈕事件(菜單和工具欄產生的事件)、鼠標事件和鍵盤事件。在程序中,一個動作有可能由單個事件直接完成,也可能由事件引起,由隨后產生的若干個事件完成。對于由單個事件直接完成的動作不會引起狀態(tài)的變化。由若干個事件完成的動作在動作發(fā)生時其它插件處于休眠狀態(tài)。為了更好地說明事件、動作與狀態(tài)變化的關系,下面對相關術語進行定義:

(1)動作

動作指一個操作單元,如在要圖標繪時繪制平行四邊形、折線,放大/縮小地圖,求地圖兩點距離,等等。動作可以由“動作事件”完成,也可以由“動作觸發(fā)事件”引起,進一步由鼠標事件、鍵盤事件完成。

(2)狀態(tài)

我們將“動作”視為“狀態(tài)”,狀態(tài)的變遷由按鈕事件(指動作觸發(fā)事件)引起,但按鈕事件(指動作事件)并不一定會引起狀態(tài)的變遷。我們用兩個元素來唯一確定一個狀態(tài):插件的激活狀態(tài)和插件內部狀態(tài)。插件的激活狀態(tài)由圖形框架核心部件統(tǒng)一管理,而插件內部狀態(tài)由插件自身進行管理。插件的激活狀態(tài)通過為插件增加一個變量進行標識。我們認為通常插件之間是互斥的,即當一個插件被動作觸發(fā)事件激活時,其它插件應被通知休眠。插件向核心部件通告其狀態(tài),核心部件據(jù)此決定其它插件的狀態(tài)。核心部件的處理流程如圖 6所示。

圖6 狀態(tài)切換處理流程

只有在“動作觸發(fā)事件”發(fā)生時才需要確定插件的唯一狀態(tài),動作觸發(fā)事件的事件爭用問題可通過插件的狀態(tài)機制來解決。動作觸發(fā)事件引起的動作由若干鼠標事件和鍵盤事件完成。在動作發(fā)生時,只有響應了動作觸發(fā)事件的插件處于激活狀態(tài),其它的插件處于休眠狀態(tài)。因此,插件中的鼠標事件和鍵盤事件需要根據(jù)是否處于激活狀態(tài)來觸發(fā)。

2.2.3 右鍵菜單組合

在圖形界面上操作時,有時會需要彈出右鍵菜單。右鍵菜單可能只來自于某個插件,也可能同時來自于某幾個插件,后者涉及到右鍵菜單組合的問題。此問題解決方法為:右鍵菜單的彈出需要指出“操作對象”,沒有操作對象就沒有右鍵菜單,對插件導出的右鍵菜單進行組合。解決右鍵菜單組合問題應以“操作對象”(簡稱“對象”)為中心,遵循三個原則:1)每個插件導出操作對象;2)每個插件給出要操作(依賴)的操作對象;3)對具有相同操作對象的插件定義其優(yōu)先級。此優(yōu)先級用于右鍵菜單組合時的前后順序。默認的優(yōu)先級為插件加載的順序(越先加載優(yōu)先級越高)。插件的加載順序取決于插件的依賴關系,而插件的依賴關系則取決于對象的依賴關系?!安僮鲗ο蟆笔顷P系依賴的最小粒度。在插件描述文件中,給出了各插件的導出對象和導入(依賴)對象。在軟件形成前,先要根據(jù)導出對象和導入對象計算出插件的依賴關系,形成插件的優(yōu)先級,并將優(yōu)先級寫到插件描述文件中。

右鍵菜單只有在多個插件要操作同一個對象時才要組合。因此,當導出對象的插件要彈出與導出對象相關的菜單時,該插件需要向其他依賴他的插件發(fā)送對象的相關消息。為每個對象開辟一個存儲空間,用于存儲對象的信息。插件根據(jù)對象的信息決定是否要創(chuàng)建并返回右鍵菜單,框架核心部件將多個右鍵菜單拼接起來。

圖7 多插件右鍵菜單組合流程示意圖

如圖 7所示,為兩個插件右鍵菜單組合流程的示意圖。當主程序調用核心部件加載右鍵菜單時,核心部件依據(jù)插件加載的順序獲得插件的右鍵菜單進行組合。當同一個對象有多個插件要對其進行操作時(即多個插件要返回右鍵菜單),操作對象所在的插件將操作對象的數(shù)據(jù)寫到共享數(shù)據(jù)區(qū)中。依賴此對象的插件將根據(jù)共享區(qū)中的內容決定創(chuàng)建何種右鍵菜單。

3 XOGF的實現(xiàn)及應用

目前,已經基于VC6.0和VS2008實現(xiàn)了XOGF,并已應用到某一體化指揮平臺和某聯(lián)合情報處理系統(tǒng)中,兩個系統(tǒng)均已實裝,擔負部隊日常值班任務。本節(jié)將對XOGF實現(xiàn)的關鍵思路進行描述。

3.1 核心部件

XOGF核心部件的作用是:加載插件,調用插件的標準化響應函數(shù),負責插件間信息交互。核心部件由插件表、插件標準函數(shù)抽象類和相關配置文件組成。

3.1.1 插件標準函數(shù)抽象類

核心部件需要定義插件標準函數(shù)抽象類作為插件的實現(xiàn)準則和規(guī)范。類中的標準函數(shù)都是圖形操作常用函數(shù),并提供了擴展能力的函數(shù)。這些函數(shù)接口包括:初始化插件、創(chuàng)建系統(tǒng)工具欄、創(chuàng)建系統(tǒng)菜單、執(zhí)行命令碼、更新菜單狀態(tài)、執(zhí)行干預命令、繪制圖形、彈出上下文菜單、定時器響應、鼠標按鍵、鼠標移動、鍵盤按鍵、處理報文、獲取插件信息、釋放插件。

插件標準函數(shù)抽象類還描述了插件信息,包括:插件名稱、動態(tài)庫名稱、插件命令碼處理范圍、插件版本和開發(fā)者信息。

3.1.2 插件表

核心部件通過插件表來加載并調用插件的功能。插件表中每個插件元素包含的信息為:插件調入優(yōu)先級、插件信息表、插件句柄、插件接口指針等。

3.1.3 核心配置文件格式設計

核心部件依賴一系列的配置文件進行工作,這些配置文件包括:1)插件描述文件;2)插件框架命令碼范圍定義文件。

插件描述文件描述了插件的信息,由插件生成器生成,由插件管理器進行管理,程序員在開發(fā)插件前必須先獲得此文件。插件描述文件應該包括以下信息:插件名稱、插件動態(tài)庫名稱、優(yōu)先級、版本號、開發(fā)者信息、命令碼處理范圍、插件導入對象和插件導出對象。插件描述文件使用XML格式。

插件核心部件將會根據(jù)導出和依賴的對象決定插件的優(yōu)先級(第一級優(yōu)先級),然后根據(jù)配置文件中的“優(yōu)先級”決定第二級優(yōu)先級。由于同一插件導出和依賴的對象有多個,因此由導出和依賴的對象計算出的插件優(yōu)先級有可能發(fā)生沖突。這種沖突在設計插件時是要避免的。在操作對象管理器中,將通過對象依賴圖的形式來查找這種沖突。

插件框架命令碼范圍定義文件使用XML格式,描述了插件框架中插件可分配使用的命令碼范圍,由命令碼分配器負責管理。

3.2 管理部件

圖形框架管理部件的作用是管理插件(增加、刪除、更改優(yōu)先級),分配命令碼和干預命令,管理操作對象。管理部件的六個子部件為插件的生成和開發(fā)提供便利,其功能描述如下:

1)插件管理器

插件管理器是一個應用程序,用于為一個應用載入、刪除插件,調整插件的優(yōu)先級。插件管理器在應用運行前工作,應用運行時插件管理器產生的更改只有在應用下次運行時才生效。

2)命令碼分配器

因為每個插件可處理的命令碼不能重疊,因此需要統(tǒng)一分配各插件可使用的命令碼范圍。這項工作可由命令碼分配器來完成。

3)干預命令分配器

用于分配干預命令由哪個插件響應。

(4)操作對象管理器

用于指定插件的導出對象、依賴對象,對象的優(yōu)先級。

(5)插件生成器

插件生成器是一個應用程序,應用于插件開發(fā)階段,用于生成插件原始必要代碼和插件描述文件。程序員要開發(fā)新插件時必須由插件生成器生成插件原始必要代碼和插件描述文件,并在此基礎上進行二次開發(fā)。

插件生成器還依賴于命令碼分配器和操作對象管理器。

(6)日志分析器

日志分析器是一個獨立的應用程序,用于控制日志打印,以便于軟件集成聯(lián)試。日志分析器支持文件打印和窗口打印,支持日志分類打印和單步打印。日志的單步打印指日志分析器收到日志消息后,將日志分析器程序掛起,直到某個事件觸發(fā)日志分析器,日志分析器繼續(xù)執(zhí)行。

4 總結

XOGF解決了指揮信息系統(tǒng)中如何組合展現(xiàn)復雜戰(zhàn)場態(tài)勢的難題,提出了一種基于插件的模塊組裝機制,實現(xiàn)插件的即插即用,能夠綜合顯示多專業(yè)戰(zhàn)場態(tài)勢。但是,XOGF并沒有考慮如何有效組合軟件主菜單和工具欄,也沒有考慮如何將狀態(tài)欄的空間分配給各插件。在后續(xù)工作中,將對這兩個問題進行重點研究,設計一套規(guī)則和工具,用于編排主菜單、工具欄和狀態(tài)欄的內容。

[1]鄧亞明,楊邦榮.基于ECLIPSE圖形插件開發(fā)的研究[J].電腦開發(fā)與應用,2009.第22卷 第2期

[2]劉亞濱,楊紅.精通Eclipse[M].北京:電子工業(yè)出版社,2004

[3]劉俊平,鄒江南,賀玉寅.美軍戰(zhàn)場態(tài)勢感知能力分析[J].國防信息化,2007.第6期

[4]李蘇軍,吳玲達,胡世才,寧漢辰.數(shù)字化海戰(zhàn)場態(tài)勢表現(xiàn)系統(tǒng)研究[M].系統(tǒng)仿真學報,2009.第21卷 第19期

[5]蔡志浩,彭曉源.基于地理信息系統(tǒng)的虛擬戰(zhàn)場態(tài)勢顯示[J].系統(tǒng)仿真學報,2003.第15卷 第7期

[6]楊沁梅,孫曉鳴.基于插件集成技術的通用陸戰(zhàn)場態(tài)勢圖,2012.第10期

[7]朱江,孫華,張華.基于插件的通用計劃作業(yè)框架[J].指揮信息系統(tǒng)與技術,2013.第2期

猜你喜歡
核心部件管理器右鍵
輕松整理Win10右鍵菜單
應急狀態(tài)啟動磁盤管理器
純電動汽車核心部件故障診斷的研究
時代汽車(2019年1期)2019-10-21 10:16:52
Windows文件緩沖處理技術概述
用右鍵菜單管理右鍵菜單
聚焦核心部件 服務重點領域——數(shù)控機床專項成果發(fā)布會在京舉行
管理你的鼠標右鍵菜單
電腦迷(2015年1期)2015-04-29 20:00:03
工業(yè)機器人國產化困局及核心部件解決之道
西門子為武漢首條有軌電車線路提供核心部件
高集成度2.5A備份電源管理器簡化鋰離子電池備份系統(tǒng)
彰武县| 奎屯市| 天祝| 渭南市| 丘北县| 大足县| 辽宁省| 罗甸县| 三江| 乌拉特中旗| 凤翔县| 河间市| 呼伦贝尔市| 义马市| 钟山县| 雅江县| 锦屏县| 苍梧县| 正阳县| 奉贤区| 行唐县| 麻江县| 光山县| 克东县| 余庆县| 仙游县| 南郑县| 庆元县| 玛多县| 铜梁县| 额尔古纳市| 大方县| 廊坊市| 浦江县| 连山| 汪清县| 苍梧县| 井研县| 团风县| 厦门市| 通榆县|