摘 要: 為了研究空間應用分布式仿真,在此介紹了用UML技術和CORBA技術開對激光清除空間碎片這一空間應用系統的設計和開發過程。用UML對系統進行了分析,確定了系統的用例,流程和相應的類。最后使用CORBA技術實現系統的分布式仿真。結果表明,用此方法開發的系統具有可重用性高、可維護性強和移植性好的特點,它為更多的后續系統開發提供了一定的方法和技術支持。
關鍵詞: 激光技術; UML; CORBA; 空間碎片
中圖分類號: TN964?34 文獻標識碼: A 文章編號: 1004?373X(2013)20?0061?04
0 引 言
21世紀是人類全面發展空間能力、利用空間資源的時代。掌控空間優勢對于保障國家安全、提高國家綜合競爭力具有無可替代的作用,空間已成為國家安全與發展的新的戰略制高點,制天權將成為未來國家戰略威懾力和奪取戰爭主動權的決定因素。因此,美、俄等世界強國競相進入空間,大力發展空間力量,部署空間裝備,加劇了空間軍事化進程。近年來,為了在奪取制天權的斗爭中占據先機,以空間機動、空間操控和空間力量運用為標志的天基空間作戰已成為當前空間領域新的發展重點。但隨著近幾十年來不斷積累的太空碎片,已經嚴重阻礙了人們對太空開發的進程,所以有效地采取措施清除太空碎片越來越受到重視.
因此本文研究利用CORBA分布式并行計算技術,和統一建模語言(UML)對高能激光清除空間碎片這一空間應用系統進行了整體結構分析,構建和實現了系統模型。
1 UML和CORBA概述
1.1 UML概述
統一建模語言[1](Unified Modeling Language,UML)是最廣泛使用的面相對象系統的建模方法。它是一種通用的可視化建模語言,用于對軟件進行描述、可視化處理、構造和建立軟件系統的文檔。它記錄了對必須構造系統的決定和理解,可用于對系統的理解、設計、瀏覽、配置和信息控制[1]。UML定義了5類、共9種模型圖[1]。第一類:use case diagram(用例圖),它是UML的核心概念,從用戶角度描述系統功能,并指出各功能的操作者;第2類:靜態圖(Static Diagran),包括類圖(Class Diagran)、對象圖(Object Diagran)和包圖(Pack?age Diagran),類圖描述系統中類的靜態結構,它定義了系統類的內部結構以及類之間的聯系,對象圖描述系統在某個時刻的靜態結構,包圖由包或類組成,表示包與包之間的關系,包圖用于描述系統的分層結構[1];第3類:行為圖(Behavior Diagran),包括狀態圖(Statechart Diagran)和活動圖(Activity Diagran),狀態圖描述對象的所有可能狀態以及事件發生時狀態的轉移條件,活動圖描述滿足用例要求所進行的活動以及活動間的約束關系,有利于識別并行活動;第4類:交互圖(Interactive Diagran),包括順序圖(Sequence Diagran)和合作圖(Collaboration Diagran),順序圖顯示對象之間的動態合作關系,它強調對象之間消息發送的時間順序,同時顯示對象間的交互[1];合作圖也顯示對象間的動態合作關系,但更強調上下級關系。這兩種圖合稱為交互圖;第5類:實現圖(Inplanentation Diagran),包括組件圖(Canponent Diagran)和分布圖(Deployment Diagran),構件圖描述代碼部件的物理結構及各部件之間的依賴關系,它包含邏輯類或實現類的有關信息,部件圖有助于分析和理解部件之間的相互影響程度,配置圖定義系統中軟硬件的物理體系結構,用于捕獲系統硬件和軟件組件的配置。
它涉及軟件工程的不同階段,UML語言和滿足不同面向對象建模方法對模型描述和建模過程描述的需求,并可適用于不同的應用領域,甚至是非軟件設計領域。
1.2 CORBA概述
CORBA的開發者是對象管理組織(OMG)[2],成立于1989年,目前該組織擁有800多家成員,分別來自計算機工業的整個行業范圍。增強軟件的可移植性(Portability)、可重用性(Reusability)和互操作性(Interoperability)。CORBA運用了面向對象的設計思想,對象的設計思想,允許軟件對象在不同的操作系統平臺和應用程序中重復調用。現有的Java,C++面向對象的語言都能實現CO RBA程序的編寫,VC++和C++Builder,IBM VisualAge for Java都是支持這些語言的程序開發工具。CORBA的基本結構如圖1所示。
CORBA特點[2]:
(1)引入代理(Broker)概念。完成對客戶方提出的抽象服務請求的映射;自動發現和找到服務器;自動設定路由,實現服務方程序的執行。
(2)客戶方程序與服務方程序完全分離。客戶將不再與服務方發生直接的聯系,而僅需要與代理發生聯系,客戶與服務器方都可方便升級。
(3)提供“軟件總線”機制。任何應用系統只要提供符合CORBA系統定義的一組接口規范,就可以方便地集成到CORBA系統中,這個接口規范獨立于任何實現語言和環境。如此,客戶應用于服務對象之間可以透明地交互運行,實現應用軟件在“軟件總線”上的“即插即用”。
(4)分層的設計原則和實現方式。CORBA系統的底層核心是一個精練的系統,各種復雜系統和應用可以由核心擴展和延伸。
2 仿真系統組成
高能激光器在清除空間碎片時,激光需要通過大氣的傳輸才能到達碎片處,并對碎片起到清除作用,因此大氣的傳輸模塊和碎片的軌道模塊是仿真系統的重點。
圖2所示為仿真系統的模塊圖。整個系統由大氣傳輸模塊和碎片軌道模塊構成。激光的大氣傳輸仿真模塊包含5個子模塊,分別為大氣的吸收、折射、散射,同時會受熱暈和大氣湍流的影響。因此激光的大氣傳輸仿真模塊由大氣吸收模塊、大氣折射模塊、大氣散射模塊、熱暈模塊以及大氣湍流模塊組成。
各個模塊之間的聯系和相互作用構成了整個激光的大氣傳輸。這個系統不是簡簡單單的每個參數都獨立,它們都受到其他子系統的影響。而且在不同的天氣比如晴天、陰天、雨天它們的參數差別很大,又比如在不同的地點,它們的參數相差也很大,若采用傳統的仿真可能會導致系統的計算較慢,可重用性差,通用性不足甚至出現計算錯誤等問題。使用基于CORBA的分布式仿真可以有效解決這些問題。
3 系統功能分析與建模
3.1 仿真系統的需求分析
需求分析是為了建立系統需求模型,即從功能需求出發建立用例模型。用例圖為設計活動不僅記錄需求而且還提供了一種挖掘的信息,它記錄了需求到設計結果之間的映射關系,能夠確保設計結果具有明確的根據或者說具有可維護性,基于UML的軟件開發過程是以用例驅動的。
從圖3中可以看出,用戶與用例之間的關系:
(1)用戶可以進行系統的登入和登出,這樣可以防止系統被其他無關的人員登入造成不必要的損失;
(2)用戶可以對整個仿真進程進行控制,可以再出現異常時暫停或停止系統,必要時重啟系統;
(3)可以對視景仿真進行控制,包括調整視角,切換2D,3D等操作;
(4)用戶最重要的就是通過操作界面(GUI)來對進行激光武器的仿真,通過參數的導入和輸入就行各項仿真機應用。
CORBA在系統中主要起著中間件的作用。它自身需要先創建注冊一個適配器(POA),并管理最后注銷。同時它綁定了命名服務器使得客戶端可以透明地引用服務端的對象實現。對象實現模型庫中包含仿真需要的激光傳輸模型、碎片軌道模型、ATP模型、毀傷模型,效能評估模型等模型。對客戶端而言它接受請求,通過ORB遠程調用服務端上的對象實現,實現分布式仿真。
3.2 仿真系統實體描述
圖4為系統的類圖。主窗體MainWindows類是操作界面的類,它包含了激光大氣傳輸的基本屬性。定義了與界面操作相關的函數。MVshow類為界面提供了各類數據的顯示。Login類為系統的登入管理類。FWDDY是CORBA的調用類,通過它進行POA的注冊,激活ORB等來調用在服務端的各個算法模型類如:大氣折射類Refranction、大氣吸收類Absorb、湍流類Turbulence等類,來支持系統的仿真計算,數據處理。SceneSimulation類為系統提供了圖形仿真。
3.3 系統的交互模型
如圖5所示為系統的序列圖,序列圖描述了整個流程隨時間推移的情況。橫軸表示了各個對象之間的交互過程,縱軸表示各個對象生命周期及在各個時間節點的行動情況。整個過程為操作員進入到操作界面后,通過導入或者手動設置系統的武器參數,光學參數,導入目標的初始數據,設置當前的氣象參數,光學參數,導入碎片目標的初始參數,設置氣象參數。
圖4 系統類圖
當仿真開始后,系統中的代理模塊(Stub)向本地的ORB發送調用請求,ORB接受請求后將請求發送到遠程的服務端,然后服務器端的各個仿真模型在通過ORB返回給客戶端,供客戶端使用,這些模型有激光的大氣傳輸模型,ATP模型,碎片目標軌道計算模型,毀傷模型等模型。當仿真結束后,可以對仿真結果進行評估。開始評估時,仿真系統通過ORB調用服務器端的評估模型進行此次實驗的效能評估,最后把評估結果返回操作界面。
4 CORBA技術在系統中的應用
前文對系統用UML進行了建模分析,明確了系統的需求、流程和派生出的類。從整體上分析該系統屬于三層的C/S結構。整個仿真過程中操作界面、客戶端以及服務端都是通過CORBA核心ORB來交互的。在根據系統設計的基礎上,根據系統的特性要求和分布式特點可以構建系統總體框架結構圖如圖6所示。 根據前文的分析和設計結果,該系統由客戶端和服務端組成。服務端用于系統的登入和界面操作,服務端用來檢查驗證客戶端權限,提供給客戶端各種相匹配的算法模型。痛毆那個過CORBA,服務端程序實現了能被遠程的客戶端調用的對象。在CORBA客戶端,樁(Stub)通過ORB接受客戶的請求,并通過代理提供的命名服務尋找和定位應用服務對象請求。在服務端,ORB把應用服務器的服務程序接口傳遞框架(Skeleton),并通過基本適配器POA在代理商注冊服務。
在開發CORBA前必須先根據系統分析結果建立IDL文件,用來定義功能接口。讓客戶端知道哪些函數模型級調用的方法。以下為該系統大氣吸收類的IDL文件:
該IDL接口定義了大氣吸收類中的一些參數和操作。該系統利用OmniORB4?1?4進行開發,經其編譯器Omniidl編譯后產生樁(Stub)代碼和對象實現所需要的框架(Skeleton)代碼。根據樁代碼進行客戶端的程序編寫,根據框架代碼進行服務端的程序編寫。以大氣吸收類為例。在服務端,對IDL定義的每個接口,都要編寫相應的對象實現類,以及對ORB進行初始化。部分代碼如下:
5 結 語
激光清除空間碎片是一項復雜的系統工程。本文探討用統一建模語言UML和CORBA技術用于該系統的仿真。用UML對系統進行分析建模。采用CORBA技術作為系統的軟總線,把系統的遠程模型函數庫和客戶端程序連接起來,實現了分布式仿真系統。由于CORBA的透明性、與語言平臺無關性,系統可應用在不同的平臺下,真正做到跨平臺的互操作性。增強系統的可配置性、可伸縮性和可重用性。將UML和CORBA結合起來,為開發分布式應用系統提供了強大的支持。
參考文獻
[1] BOGGS Wendy, BOGGS Michael. UML with rational rose從入門到精通[M].邱仲潘,譯.北京:電子工業出版社,2000.
[2] 劉潤東.UML對象設計與編程[M].北京:希望電子出版社,2001.
[3] 吳建.UML基礎與Rose建模案例[M].北京:人民郵電出版社,2005.
[4] 譚云杰.大象:Thinking in UML[M].2版.北京:中國水利水電出版社,2012.
[5] 張玉田.基于CORBA體系的分布式體系結構研究[D].大連:東北財經大學,2004.
[6] 魯博,柴躍廷.關于統一建模語言:UML[J].計算機工程與科學,2000(8):7?9.
[7] 朱其亮,鄭斌.CORBA 原理及應用[M].北京:北京郵電大學出版社,2001.
[8] 李麗娟.基于CORBA的分布式監控管理系統的設計和實現[D].成都:四川大學,2006.