盛基伟胡成军
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
盛基伟,海军潜艇学院在读硕士,军事通信方向;
胡成军,副教授,海军潜艇学院一系模拟中心。