史彦山,龚 纯,莫进军
(1.中船重工第七一六研究所,江苏 连云港 222061;2.中国舰船研究设计中心,武汉 430064)
潜艇指控系统的前身是潜艇火控系统,随着计算机软硬件技术的发展,指控系统经历了独立、集中、分开和分布4种形式。开放式的全分布指控系统除了具有分布式系统的特征外,还应具有开放式系统的特征,即可移植、可伸缩、可互操作和易获得性。通过中间件技术实现软件的重用、台位间数据和功能的同步,利用XML实现系统的灵活配置,满足潜艇指控系统实时性、健壮性以及升级扩展需求等方面的要求。
随着信息技术与作战需求的不断发展,要求潜艇指控系统必需具备“面向服务、柔性重组、即插即用”等特点,指控系统作为潜艇作战系统核心,必须保证在部分指控台位功能失效情况下,具备功能服务的快速重组和迁移,保证战斗能力不间断,避免成为全艇作战能力的瓶颈。针对上述需求,本文利用DeltaCORBA中间件技术和XML技术提出了一种潜艇指控系统台位协同备份技术解决方案。
DeltaCORBA中间件是基于Minimum CORBA规范设计的,其结构与CORBA的参考模型相似。DeltaCORBA的结构框架如图1所示。它具有较小ORB核、Micro POA支持、IDL编译器支持、多平台支持、灵活可配置设施、多协议支持框架、平台独立线程机制、高效通信等特点,并且能够移植到Windows、DeltaOS、VxWorks等多种操作系统平台上。
与普通CORBA相比,DeltaCORBA不需要动态调用,所以可以去掉动态框架接口(DSI)和动态调用接口(DII),为了提高DeltaCORBA性能,可以修改表示层的表示方式,比如在嵌入式CORBA中,该转换过程由服务方的框架和客户方的存根来执行。封装和解封装需要消耗大量的CPU,内存和I/O资源,当它们访问和拷贝数据时就成为性能的瓶颈。因而,使用嵌入式CORBA时候需要设计一个有效的表示层来可预测地执行封装和解封装,并尽可能少使用数据拷贝和动态内存分配等大消耗的操作。服务方的框架和客户方的存根直接由IDL编译器来生成,减少服务方框架和客户存根之间不一致的潜在性,该编译器需要支持自动优化,这就需要使用高优化的IDL编译器。delta_idl的优化措施如下所示:
1)减少动态内存的使用。IDL编译器需要对客户和服务器之间交换的消息进行存储需求分析,这使得编译器必须预先分配足够的内存,从而避免在运行时反复地进行是否有足够存储可用的测试,另外,IDL编译器通过运行栈的使用来为不封装的参数分配存储。
2)减小数据拷贝。IDL编译器不对原子类型数据执行单个拷贝,而是分析它何时对原子类型数据执行块拷贝,这就大大降低了数据过度访问,从而最小化了加载和存储指令的数量。
3)减小函数调用代价。IDL编译器可以通过内联选择性地优化小的存根,这样也可以减少调用这些小的存根函数,降低调用代价。
图1 DeltaCORBA的结构
可扩展标志语言XML(extensible markup language)是由W3C制定的一种标记语言,其目的在于描述信息的结构和内容。XML语法简单,可以在各种平台上使用,可以被所有的机器解读,上述优越性使得XML有潜力成为一个四海通行的标记语言;XML是一种原生的因特网语言,可实现机器自动读取网页,可精确搜寻,可识别和验证数据提供者,可降低重复数据传输,大大强化网络资源的使用效率。由于XML具有开放、跨平台、结构严谨且简单等优点,因此各领域纷纷以XML作为其水平或垂直传递文件的标准。XML应用领域相当广泛,电子商务数据存储、数据交换、多媒体传输、前后文检索、科学技术等不同领域的特殊文件格式,皆可用XML加以定义,达到统一网络文件的目的。
硬件平台组成如图2所示。指控显控台主要由两台计算机组成:上端为人机接口计算机,下端为任务计算机。人机接口计算机机完成人机交互、图形、视频显示等功能,任务计算机完成数据处理等功能。人机接口计算机采用Vx-Works操作系统,为用户提供良好的人机操作界面。人机接口计算机配置2块双冗余自切换网卡,一块支持双冗余网络外部通信,另外一块支持与任务计算机内部通信。人机接口计算机还配备两块串口扩展输入输出板,可支持232/422/485等接口通信。
图2 硬件平台组成示意图
任务计算机采用VxWorks操作系统,具备实时响应能力。任务计算机配备2块双冗余自切换网卡,一块支持双冗余网络外部通信,另外一块网卡支持与人机接口计算机内部通信。
通过引入裁剪的DeltaCORBA中间件,屏蔽底层平台、协议和语言等差异,开发人员只要集中全部精力开发潜艇指控系统功能,从而提高复杂分布式系统的开发效率,并且很容易实现软件的易扩展、可移植和易维护。同时,应用程序跟底层无关,可以方便地在异构分布式环境内实现移植和扩展。另外,由于整个系统使用面向对象技术进行分析、设计和实现,所以模块化强,便于维护。系统的软件体系结构如图3所示。
图3 协同支撑平台软件体系结构
传统的指控系统,只能实现指控系统功能“硬”冗余,即为每一台显控台及其上的应用软件制作一个副本,副本与显控台的状态同步,一旦显控台出现故障,副本显控台接替故障显控故障前的状态继续运行,如图4所示。这种冗余方式大量占用指控系统所处的空间环境,增加一台显控台设备会对空间的设计产生重大的影响,有时甚至不得不改变整个舰艇的设计;同时,如果显控台及其备份显控台同时损坏,这个应用将永远无法使用,整个指控系统也随之瘫痪。
图4 传统指控系统组成示意图
新型指控系统通过功能备份与重组实现冗余功能,即显控台设备采用标准显控台,每台标准显控台上都保留指控系统所有功能软件备份,在系统运行过程中,实现显控台间状态数据同步,一台显控台发生故障后,其他显控台可以读取备份的同步状态数据接管功能软件继续运行而不影响系统的正常运行。故障显控台检修后重新加入系统时可以恢复其原有功能继续运行,如图5所示。
图5 新型指控系统组成示意图
系统软件通过XML文件进行配置,实现潜艇指控动态配置和动态重组。XML文件通过使用DTD文档,设置指控系统的人机接口计算机网络地址、任务计算机地址、台位功能配置、功能描述、当前台位配置、备份组等配置信息,该文件摘要大体如下:
流程设计是软件设计实现的关键,特别是启动、运行流程以及功能接管的设计,主要流程示意如图6、图7、图8所示。
图6 系统启动流程
图7 加入备份组流程
图8 接管功能软件流程
本文介绍了一种具有可移植性和可重用性的指控系统协同备份方法的设计与实现。该套系统采用嵌入式DeltaCORBA中间件技术、XML技术配置系统所需要的参数,通过强大的状态监测机制,能够及时有效地发现显控台内部、显控台之间的通信及功能软件故障;通过功能的备份与重组机制,对显控台间的数据进行有效的软备份,对舰艇现有指控系统软件具有指导意义。
[1]辛春生,陈宗斌.分布式系统原理与范型[M].2版.北京:清华大学出版社,2008:56-58.
[2]张军本,宁伟,王强.基于构件的分布式软件体系结构设计[J].哈尔滨理工大学学报,2001(6):76-81.
[3]曹建福,周理琴.基于构件的软件开发模型及其实现[J].小型微型计算机系统,2002(23):57-68.
[4]韩乐平,薛军敖,孟洛明.OMG.CORBA系统结构原理与规范[M].北京:电子工业出版社,2000:35-38.
[5]George Coulouris.分布式系统概念与设计[M].机械工业出版社,2013:45-53.
[6][德]阿特金森.基于构件的产品线工程UML方法[M].北京:电子工业出版社,2000:42-45.
[7][美]布里顿.IT体系结构与中间件[M].北京:人民邮电出版社,2003:36-43.
[8]杨放春.异构网络中间件与开放式API技术[M].北京:北京邮电大学出版社,2007:48-52.
[9]金斌,宋贵宝,袁洪武.面向效能评估的反舰导弹作战仿真模型框架[J].海军航空工程学院学报,2011(4):453-456.
[10]童继进,刘忠.基于网络知识熵的舰艇编队指控系统协同建模[J].兵工自动化,2012(5):31-35.
[11]郑保华,张兆峰,方光统,等.作战系统指控协同效能的影响因素分析[J].火力与指挥控制,2012(7):70-73.