盛基偉胡成軍
1.海軍潛艇學院研究生隊 266071;2.海軍潛艇學院一系模擬中心 266071
WCF技術在潛艇指揮信息系統中的應用
盛基偉1胡成軍2
1.海軍潛艇學院研究生隊 266071;2.海軍潛艇學院一系模擬中心 266071
探討了WCF技術在潛艇指揮信息系統中的應用,實現了常見的指揮信息查詢服務,指出WCF技術能夠有效解決潛艇指揮信息系統的服務重用及在不同網絡和應用環境下的適應性問題。
WCF;服務;指揮信息
潛艇指揮信息系統作為聯合作戰條件下潛艇戰斗力提升的倍增器,能夠幫組指揮員全面的了解和掌握戰場態勢情況,從而迅速制定作戰決策方案。但由于戰場用戶的分散性和其原有系統的異構性以及未來系統能夠方便地進行更新、升級和集成,都要求指揮信息系統具有靈活的系統架構及較為松散的耦合度,能夠實現分布式并且能跨越不同平臺。
SOA[1](Service Oriented Architecture),是面向服務的體系結構,能夠在較粗的粒度上完成服務的封裝,并通過靈活的架構完成分布式需求。在Windows平臺上,WCF[2](Windows Communication Foundation)是一種完全基于SOA構架的通信框架,是對現有Windows平臺下多種分布式通信技術的整合[3],它是構建分布式面向服務系統的技術基礎,能夠構建安全可靠的事務性服務的統一框架,并通過使用標準的XML協議和信息格式來達到了平臺最優化。WCF技術其恰到好處的抽象、分層和模塊關系,支持多種傳輸協議,允許不同的程序之間跨平臺和網絡以消息的方式實現通信,同時支持安全通信機制和分布式事務,實現了真正意義上的分布式計算,完成基于SOA框架下的潛艇指揮信息系統的開發,能夠較好的解決以上的問題。
當前戰場環境下,作戰單位和作戰平臺的分散性,就導致了對指揮信息系統的分布式需求,要求能完成跨平臺的異構指揮信息系統間的協同與協作,實現跨平臺的數據和應用的共享、互操作與信息融合,支持多樣化的用戶端的訪問,支持多樣化的分布式訪問。根據WCF的特性,根據傳統的三層結構設計潛艇指揮信息系統如圖1所示。

圖1 潛艇指揮信息系統結構
數據訪問層為系統提供了指揮信息數據、輔助計算中的相關模型及各種作戰文書模板的存儲數據庫以及信息可視化的數據來源。
業務邏輯層是實現作戰信息系統的基礎設施,將指揮信息數據的處理、分析、計算、顯示等功能封裝成各種服務對外發布。在滿足不同環境下調用WCF的服務時,只要給服務定義多個端點和多種綁定方式,就可以使服務不僅僅提供基于Web Service的訪問方式,而且支持其他多種分布式技術。同時由于服務封裝的獨立性以及WCF繼承于SOA的松散耦合特性,使得業務邏輯層能夠快捷的添加新的服務,方便系統的更新及升級。
在圖形界面層,客戶端是最直接的人機交互界面,是服務的使用者,其不必關心服務內部的實現邏輯來進行開發,可以通過開發專用的應用程序也可以直接通過瀏覽器來查找并調用服務以獲取需要的功能。
根據不同的網絡和應用環境,服務可以采用不同的綁定方式從而決定何種分布式技術能夠調用服務。通常而言,對于同一局域網內,則采用具有較高訪問效率的TCP協議來傳輸SOAP包;對于非同一局域網上的服務和應用程序,則采用HTTP協議的Web Service訪問技術。
信息查詢服務。提供對指揮信息數據和屬性數據的深度或淺度的查詢功能。一是通過對指揮信息數據的類型、名字等相關條件的輸入,返回輸出所有符合相關查詢條件的指揮信息;二是通過輸入戰場區域參數,查詢并高亮標記其在該戰場環境態勢的可視化顯示。
可視化服務。將數據庫中抽象、異構的指揮信息數據映射為具有空間特征的可視化結構(結合空間基、標記和圖形屬性的結構),客戶端通過調用這些服務,建立圖形屬性來建立可視化結構的視圖,動態地顯示給對潛指揮員。還可以根據使用人員通過圖形界面層的客戶端直接錄入或是通過數據接口由其它數據源通過網絡傳輸間接地輸入的數據,形成并顯示信息作戰態勢圖和各種報告[4]。其次還顯示戰場復雜電磁環境的各種電磁信號的密度、強度、類型和分布特征等。顯示各種雷達、通信裝備及電子戰裝備的作戰效能區域。并能綜合顯示其它敵情、我情和海情等戰場作戰態勢圖、也可分層顯示作戰信息態勢。
輔助計算服務。進行一些作戰所需要的計算,主要包括兵力推演計算和運動要素解算等復雜的計算。例如:信息作戰中電子戰偵察干擾效果、干擾壓制區和有效配置區,對潛通信的有效區域以及潛艇作戰航路規劃等,為指揮員決策提供輔助手段,為作戰模擬推演和態勢顯示提供依據。同時還具備完成接收各不同偵察平臺傳回的異構性指揮信息數據,并將這些原始數據變換為滿足一定規范的格式化數據,并存入到數據庫中的功能。
枚舉服務。提供用戶權限內的所有指揮信息、電子戰及作戰效果評估的計算模型以及相關功能模塊列表,方便用戶查看和了解系統所擁有的數據資料。
在業務邏輯層, WCF技術將潛艇指揮信息系統中復雜的需要大量運算的且對人機交互要求不高的程序封裝成服務,使用戶通過調用服務的方式來調用相關使用,這樣可以大大減少客戶端的計算壓力,加快運行速度,同時也有利于系統的升級更新。
根據服務設計方案,WCF把所提供的服務以接口的形式對外暴露。本文僅以信息查詢服務的實現為例,以下為服務接口定義及實施的代碼實現:

WCF服務必須要依存一個運行的Windows進程(宿主進程),服務寄宿就是為服務指定一個宿主的過程。這里使用IIS作為宿主,可以實現在發生客戶端發送請求時宿主進程會被自動啟動,同時可依靠IIS來管理宿主進程的生命周期,并且可以有效的穿越防火墻,充分利用IIS提供的安全機制。WCF服務需要指定訪問地址、通信綁定方式和該服務實現功能的合同,以便客戶端對其進行訪問。這里采用Web Services下的HTTP協議對服務進行綁定。服務寄宿配置代碼如下:

為了調用WCF服務器上的服務,首先創建服務器目標端點.然后根據目標端點的地址、綁定和合同通過消息與服務器通信。WCF提供了一個類似服務器端的生成配置機制,在VS開發工具中使用適當的開關運行Service Model Metadata Utility Tool (SvcUtil.exe) 可以自動創建客戶端代碼和配置文件。以下是客戶端端點的配置信息:

在創建并配置了客戶端后,就可以創建客戶端對象,進而編譯客戶端應用程序并使用它與WCF服務進行通信,完成服務的調用。代碼簡單實現如下:

在Windows平臺上WCF是開發面向服務的信息系統的最佳技術之一,能構建松散耦合的潛艇指揮信息系統,實現信息系統服務的重用,并且成功地解決了跨平臺的系統通信問題,允許實現跨應用程序、跨進程、跨系統間的遠程通信,而且具有較好的穩定性、可擴展性和伸縮性。同時基于配置的開發部署方式方便靈活,大大方便了系統的更新及升級。此系統運行后,對潛指揮員及時全面感知戰場態勢,制定作戰決策方案將會提供了較大幫助。
[1]Eric Newcover,Greg Lomow.Understanding SOA with Web Services[M].電子工業出版社. 2006.6.10-13
[2]Craig Mcmurtry等.Windows Communication Foundation Unleashed[M].人民郵電出版社. 2009.9
[3]蔣金楠.WCF技術剖析[M].電子工業出版社.2009年:4-7
[4]韓春久.信息作戰指揮機構的軟件建設需求分析[J].通信對抗.2005.3:44-47
[5]陳江,陳建國,陳國富.WCF的車輛調度系統實現[J].工業控制計算機.2009第6期79-80
[6]季一木,陸莉莉,王汝傳,宗平. 基于SOA的校園遺產系統集成模型研究[J].計算機科學.2009.9:131-134.
10.3969/j.issn.1001-8972.2010.16.065
盛基偉,海軍潛艇學院在讀碩士,軍事通信方向;
胡成軍,副教授,海軍潛艇學院一系模擬中心。