999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MVC的分布式作戰應用框架研究

2010-07-16 07:36:10施衛峰
指揮控制與仿真 2010年3期
關鍵詞:界面用戶模型

施衛峰

(南京電子工程研究所,江蘇 南京 210007)

MVC(Model-View-Controller)是由Smalltalk-80引入的一種面向對象的設計模式,廣泛應用于交互式系統和擁有用戶圖形界面軟件系統的架構設計[1-2]。MVC通過將數據表示、輸入控制和數據處理分離開來,提高了軟件結構的可擴展性和軟件模塊的可重用性[2],在傳統界面程序設計(如MFC)和面向B/S系統的Web技術(如JSP和.NET)中得到了廣泛應用。然而,對于模型和視圖交互頻繁的分布式系統來說,系統的模型部分往往會成為數據訪問和計算的瓶頸。如何將模型中的計算任務合理分布到其他節點,是MVC在分布式環境中應用的關鍵問題。目前,國內已經有了一些關于分布式MVC架構的研究與應用。文獻[3]介紹了分布式MVC在工程項目管理系統中的 Web應用;文獻[4]則結合 Web Services和消息中間件技術,提出了一種分布式環境下基于MVC的Web架構,并將其成功應用于實時股票交易系統。雖然這些研究成果面向不同的領域,但不能滿足作戰指揮系統延遲的要求,其客戶端的處理也不能夠滿足作戰指揮系統的性能要求。因此,本文在傳統MVC模式的基礎上,借鑒文獻[3-4]中描述的一些研究成果,將模型分解為應用模型和邏輯模型,提出了一種基于MVC的分布式作戰應用框架。通過將其成功運用于某聯合作戰計劃決策支持系統中,證明了該框架的合理性和有效性。

1 MVC模式

MVC作為一種經典的設計模式,其目的在于通過合理的設計將應用程序的模型部分(Model)和界面部分(View)拆開,通過彼此之間定義的接口互相通訊(Controller)[5],其原理如圖1。其中:

1)Model是應用程序的主體部分,表示應用程序數據和對這些數據訪問和修改的業務邏輯,維護了業務的持久性,為Controller和View對象提供封裝的應用業務邏輯。

2)View是應用程序中用戶界面相關的部分,是用戶看到并與之交互的界面。通過訪問Model對象中的數據,View可視化顯示Model對象的狀態。當Model對象中的狀態發生改變時,View對象所代表的用戶界面內容也會相應地改變,達到內容與形式的一致;對于同一個Model對象,針對不同的用戶請求,可以產生多個View對象。

3)Controller用于根據用戶的輸入,控制用戶界面數據顯示,更新Model對象狀態。Controller定義了應用程序的行為,負責View對象與Model對象之間的同步,根據用戶對 View對象的操作完成對Model對象的更新,并將Model對象狀態的改變及時反映到View對象上。

MVC模式已經在大部分JAVA開發框架中得到充分體現,它有效地分離了用戶表現層 (用戶界面)和業務邏輯實現,最大程度上實現了業務變更和擴展對系統其它部分的影響,增加了系統的可擴展性。

圖1 MVC模式原理

2 基于MVC的分布式作戰應用框架

2.1 分布式環境下MVC的不足

MVC模式將數據表示、輸入控制和數據處理分離開來,給軟件設計與開發人員提供了一種良好的設計模式,提高了軟件結構的可擴展性和軟件模塊的可重用性,因而得到了廣泛應用。但是,在模型和視圖交互頻繁的分布式作戰系統中,傳統MVC模式的部署和使用會造成數據訪問和計算的瓶頸,遭遇到不小的挑戰。

一種方案是將Model、View和Controller都部署在客戶端,所有的顯示和業務邏輯都由客戶端處理,而服務器端只是作為一個原始數據存放中心(比如是一個數據庫服務器),負責簡單的數據讀寫。這樣會造成客戶端的工作量非常大,與服務器端之間的數據通信比較頻繁,從而造成程序效率低下。

另一種方案是將Model和Controller部署在服務器端,客戶端只負責界面的顯示,對于用戶輸入的解析和業務邏輯的處理都在服務器端進行。這種部署的一個典型代表就是目前取得廣泛應用的B/S架構,在B/S架構中,客戶端主要指網頁瀏覽器,負責顯示HTML頁面;用戶的輸入都將發送到服務器端進行處理,服務器動態生成新的HTML頁面作為結果返回給客戶端。這種方式沒有充分利用客戶機越來越強大的計算能力,無法在客戶端實現復雜的用戶交互體驗。

2.2 改進的分布式MVC

如何對MVC模式進行改進,將模型中的計算任務合理分布到其他節點,是MVC在分布環境中應用的關鍵問題。我們根據模型中數據的不同特點,將模型數據分為動態和靜態兩部分,并據此將模型分解為上層業務模型(Application Model)和下層邏輯模型(Logic Model),如圖2所示,這與文獻[4]中提到的Presentation Mode和Domain Model有相通之處。歸結起來主要有以下特點:

1)Application Model和業務流程相關,將交互頻繁、計算量大的業務處理邏輯從模型中分離出來,重點處理和顯示界面相關的數據,當接收到復雜邏輯計算的操作請求后,能夠將其轉化為Logic Model能夠理解的信息并調用相應的方法來進行邏輯計算,計算結果通知給相應的View以實現同步;

2)Logic Model與基礎數據處理和邏輯計算相關,作為數據服務和邏輯算法的提供者,為業務模型提供多源數據服務和底層計算模型支撐;

3)控制器直接控制Application Model,在多模型多視圖情況下,能夠有效地減少視圖與 Logic Model之間的通信和計算開銷,可以更好地支持多視圖交互式應用。

圖2 改進的MVC模式

可以看出,Application Model更接近面向用戶的業務流程,而Logic Mode更接近底層的邏輯計算,這兩部分的分離使得部件的重用性進一步增加,程序的結構更加清晰,并且有利于確定分布式程序各個功能模塊的合理分布。在該模式下,可以把 Application Model、Controller 和View部署在客戶端,Logic Model則部署在服務器端。客戶端負責處理接近用戶界面的業務流程,可以充分利用客戶機的能力提供給用戶豐富的交互體驗;另一方面,服務器端負責連接數據庫進行數據存取并處理復雜的邏輯計算。這種劃分方式使整個系統在客戶端有良好的響應,并且充分體現了MVC模式結構清晰和重用性高的特點,使得整個構架易于維護,是一種合理的分布式程序功能劃分方式。

2.3 框架的提出

綜合以上分析,我們結合作戰指揮應用的特點,提出了一種基于MVC的分布式作戰應用框架,該框架基于 C/S架構,由客戶端、消息中間件[6]和服務器端三部分組成,具體如圖3所示。

圖3 基于分布式 MVC的作戰應用框架

客戶端主要部署 View、Controller、Application Model三部分。其中,Application Mode負責處理客戶端的業務流程并向服務器端發送底層邏輯計算請求,同時處理和接收服務器端發來的計算結果。View負責顯示元素的靈活組裝和可視化展現,Controller負責Application Mode與View之間的消息映射。消息中間件是整個框架的通信核心,客戶端之間、客戶端同服務器端之間均通過消息中間件進行通信,同時提供同步機制實現服務器端到客戶端的消息同步。服務器端部署Logic Model及公共服務對象,主要用來處理復雜的邏輯計算、公共服務的操作以及和數據庫之間的通信。通過對業務功能的分離,該框架能夠使系統功能模塊進行針對性分離和布置,使得各個客戶端能夠充分發揮其自身的性能,使得整個系統的運行效率得到了很大的提高。

3 框架的應用與實現

3.1 框架的應用

計劃決策支持是指在必要的模型、知識和數據基礎上,進行分析、判斷、探索和評價,直至做出決心建議的過程。目前,該技術已廣泛運用于作戰指揮領域中,主要以作戰指揮學、軍事運籌學、控制論、思維科學和行為科學為基礎,以計算機技術、模擬技術和信息技術為手段,輔助指揮員和指揮機構進行作戰決斷。在信息化和多軍兵種聯合作戰條件下,聯合作戰計劃決策支持系統是提高軍隊作戰決策水平、實現決策科學化的有效途徑[7]。鑒于此應用背景,我們開發了一套面向聯合作戰的計劃決策支持系統。

該系統采用上述改進的MVC框架進行設計,系統架構如圖4所示。View由系統主界面和各種業務界面動態庫組成,呈現和用戶交互的信息。Controller主要由“統一控制引擎”實現,每一個對應的業務流程類均在該引擎中進行注冊,從而在 View和應用流程模型間建立映射關系。Application Model由“情況判斷”、“目標分析”、“任務區分”和“方案評估”等組成,這些模塊負責各種業務流程的組織,同時和服務器相關的邏輯計算模型進行通信。消息傳輸總線提供底層的信息傳輸能力,同時開發了客戶端代理和服務器端代理,使之能夠滿足客戶端和服務器端之間的通信需要。服務器端由“作戰計算”、“能力分析”、“數據融合”和“數據管理”等組成,提供通用的邏輯算法模型及基礎數據信息訪問能力。

圖4 面向聯合作戰的計劃決策支持系統架構

3.2 主要實現

面向聯合作戰的計劃決策支持系統主要基于 C++開發實現,整個系統的功能實現比較復雜,限于篇幅,以下僅對幾個關鍵部件的實現進行說明。

1)基于插件技術的客戶端表現集成 關于客戶端的實現,我們主要借鑒了Eclipse[8]的插件開發思想,通過插件開發實現客戶端主應用程序與界面展示DLL分離,所有客戶端界面均以DLL模塊的形式存在,由業務流程模型根據模塊配制信息進行動態加載,同時主界面上的模塊菜單也是動態生成的。其客戶端原理如圖5所示。在具體應用開發中,對于從框架基類中繼承的各種類型窗體,將自動被納入系統統一風格控制器中,實現了當系統風格改變時,各具體業務界面不需作任何的變動(類似B/S中的CSS的效果)。客戶端要展示或處理的數據由統一控制引擎進行分發。不僅實現了前臺界面的可配制,同時前臺主應用程序對于所有C/S應用都是通用的,實現了主程序的高可復用性。

2)基于代理技術的消息中間件 代理(Agent)是一個能在特定環境中采取復雜自治行為的計算機系統。從應用的角度看,代理就是能自動執行用戶委托任務的計算實體[9-10]。在本系統中,我們基于軟件代理技術以及消息傳輸總線的通信傳輸能力,實現了用于客戶端之間、客戶端與服務端之間進行信息交互的客戶/服務代理,它們和消息傳輸總線一起構成了系統的消息中間件,主要實現如圖6所示。其中,消息傳輸總線基于TCP/IP協議實現數據傳輸,通過IP地址尋找目的服務器地址, 支持廣播和發布/訂閱兩種應用模式,能夠提供基礎的消息傳輸、信息同步以及客戶/服務動態發現能力;客戶端代理負責應用客戶的注冊,把客戶端調用轉換成服務端可識別的消息請求,同時接收服務端返回的計算結果并解釋為用戶可理解的形式;服務端代理負責邏輯計算模型的注冊,能夠響應客戶端的消息請求,根據傳遞過來的命令代號和模型類代碼查找到相應的邏輯計算模型,將客戶請求交給該模型進行處理,并把計算結果返回到客戶端。

3)基于XML的Logic Model描述規范 為了實現底層Logic Model的靈活擴展,以及系統未來分布式、跨平臺、跨語言的發展需要,我們參照 Web Services中有關WSDL文件的技術標準[11],建立統一的Logic Mode描述規范,提供對模型屬性、模型接口、參數等元素的描述方法,為客戶/服務間 Application Model與Logic Model的互操作提供統一的交換標準,其XML Scheme如圖7所示。

圖5 基于插件技術的客戶端原理

圖6 基于軟件代理技術的消息中間件主要實現

圖7 Logic Model的XML Schema

4 結束語

本文在傳統 MVC 模式的基礎上,結合分布式作戰應用的特點,提出了一種基于MVC分布式作戰應用框架,為作戰指揮系統的開發提供了一種有效的構架解決方案。該框架通過 View、Controller、Application Model和Logic Model的分離,有助于確立良好的軟件功能劃分,提高了各部件的重用性;通過界面顯示和業務邏輯的分離,使得界面程序員只關注系統的客戶體驗,業務程序員只關注業務邏輯,從而便于軟件的并行開發,大大提高軟件開發的質量和效率;通過業務流程模型和邏輯計算模型的合理分配,并在客戶端與客戶端之間、客戶端與服務器端之間采用自研的消息中間件進行通信,使作戰指揮系統在運行效能上有了顯著的提高。

[1]Gamma E, Helm R, Johnson R, et al. 設計模式[M].李英軍,等譯. 北京:電子工業出版社,2000.

[2]Buschmann F, Meunier R, Rohnert H, et al. 面向模式的軟件體系結構(卷 1):模式系統[M].賁可榮,, 等譯. 北京:電子工業出版社,2005.

[3]吳宏森,宋順林. MVC架構在工程項目管理系統中的應用[J].微計算機信息,2006 (22):256-258.

[4]陳樂,楊小虎. MVC模式在分布式環境下的應用研究[J].計算機工程,2006(19):642-644.

[5]劉中兵. Java Web主流框架整合開發[M].北京:電子工業出版社,2008.

[6]周敏. 基于SMQ消息中間件的軍事數據交換設計與實現[J].計算機與信息技術,2007 (7):3-1.

[7]張廣軍,趙占龍,權東,等. 聯合任務計劃決策支持系統[J].系統仿真學報,2006 (2):279-281.

[8]張鵬,姜昊,許力. Eclipse插件開發[M].北京:電子工業出版社,2008.

[9]高保慶,傅秀芬,孟利等. 一個基于 MVC 的通用Client/Server應用開發框架[J].計算機技術與發展,2008 .(17):126-128.

[10]Patrick AS. Building trustworthy software agents[J].Internet Computing, IEEE, 2002(6):46-53.

[11]梁愛虎. SOA思想、技術與系統集成應用詳解[M].北京:電子工業出版社,2007.

猜你喜歡
界面用戶模型
一半模型
重要模型『一線三等角』
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
重尾非線性自回歸模型自加權M-估計的漸近分布
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
人機交互界面發展趨勢研究
3D打印中的模型分割與打包
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
主站蜘蛛池模板: 亚洲国内精品自在自线官| 免费激情网站| 亚洲一区免费看| 91在线视频福利| 中文无码精品a∨在线观看| 日本欧美一二三区色视频| 国产视频你懂得| 午夜a视频| 丰满的少妇人妻无码区| 美臀人妻中出中文字幕在线| 精品一区二区三区水蜜桃| 国产一区二区人大臿蕉香蕉| 国产在线视频自拍| 91年精品国产福利线观看久久| 亚洲天堂日韩在线| 国产精品久久久久久久伊一| 在线观看91精品国产剧情免费| 日韩国产黄色网站| 色婷婷在线影院| 青青草原国产一区二区| 四虎影视永久在线精品| 欧美精品成人| 欧美激情视频一区二区三区免费| V一区无码内射国产| 99国产在线视频| 亚洲欧美在线综合一区二区三区| 制服无码网站| 日韩在线网址| 亚洲区第一页| 欧美福利在线播放| 国产欧美精品午夜在线播放| 91麻豆国产视频| 久久中文字幕2021精品| 国产欧美视频在线观看| 国产色网站| 久久精品视频亚洲| 亚洲精品麻豆| 国产99久久亚洲综合精品西瓜tv| 精品久久久久成人码免费动漫 | 美女扒开下面流白浆在线试听 | 日本亚洲欧美在线| 国产精品免费入口视频| 日韩欧美网址| 国产午夜看片| 老熟妇喷水一区二区三区| 久久男人资源站| 成人在线亚洲| 熟女日韩精品2区| 亚洲欧美成人在线视频| 国产午夜无码专区喷水| 91啦中文字幕| 亚洲人成人无码www| 园内精品自拍视频在线播放| 综合色区亚洲熟妇在线| 激情五月婷婷综合网| 亚洲成人手机在线| 亚洲国产综合自在线另类| 亚洲av无码专区久久蜜芽| 国产精品999在线| 亚洲国产中文在线二区三区免| 国产黄网站在线观看| 精品一区二区三区自慰喷水| 亚洲欧洲日产无码AV| 久久精品娱乐亚洲领先| 亚洲三级色| 毛片基地视频| www.亚洲色图.com| 久久亚洲高清国产| 日本黄色a视频| 久久免费看片| 国产一在线观看| 亚洲人成影院午夜网站| 国产成人精品日本亚洲77美色| 久爱午夜精品免费视频| 久久国产成人精品国产成人亚洲 | 精品伊人久久大香线蕉网站| 亚洲国产精品成人久久综合影院 | 日本久久网站| 免费毛片全部不收费的| 91精品免费久久久| 性视频一区| 国产中文一区二区苍井空|