关于预警机任务系统的软件架构研究
2016-09-03盛大同
盛大同
(中国电子科学研究院,北京 100041)
工程与应用
关于预警机任务系统的软件架构研究
盛大同
(中国电子科学研究院,北京100041)
从预警机面临的挑战出发,提出了一种预警机任务系统的软件架构——“网络为中心、面向服务”的大系统软件架构,“中间件为软总线”的平台软件架构,“数据为中心”的应用软件架构。该架构可以简化预警机任务系统的数据和信息的管理,使得系统功能分离开来,便于进行原型或增量开发,同时使得任务系统性能得到提升,减少系统软件维护和升级的难度。
预警机; 任务系统; 软件架构
E926.37
A
1673-5692(2016)02-182-05
0 引 言
预警机在预警探测、发现远距离和低空目标有着重要的作用,是现代战争中重要的空中武器节点。但是,面对当前以及未来越来越高的使用要求,预警机也存在如下挑战:难以处理越来越多的数据和信息;数据信息处理的实时性需要提高;软件扩展性不好,维护和升级改进难度大;软件重用度不高,开发成本高。因此,借鉴先进的软件发展成果,研究预警机任务系统高效的软件架构,对预警机的发展有着重要的意义。
1 预警机任务系统和软件
预警机任务系统是指预警机执行预警探测、通信和指挥控制等功能的系统,包括预警雷达、敌我识别/二次雷达、通信、电子侦察、指挥控制等。预警机任务系统包括数量众多的计算机,这些计算机由高速网络连接,形成分布式的计算机系统。
预警机任务系统软件具有配置项多、软件规模大(几百万行)、功能复杂等特点。预警机任务系统软件通常由人机界面软件、系统软件、传感器主控软件、传感器软件组成,如图1所示。
图1 预警机任务电子系统软件
人机界面软件负责人机交互,包括信息显示、命令操作等;系统软件负责任务控制、情报融合和辅助决策等;传感器主控软件负责传感器与系统进行信息交互,接收控制命令,报告传感器状态和传感器探测信息等;传感器软件负责对传感器实时控制,实施探测,并处理探测数据等。
传感器软件一般采用实时系统,人机界面软件和系统软件一般采用近实时系统,传感器主控软件有的采用实时系统,有的使用近实时系统。本文研究的是预警机任务系统中的近实时系统(图1虚线以上部分)的软件架构。
2 软件架构
2003年,Bass,Clements和Kazman对软件架构进行的定义:软件架构是组成某个软件或计算机系统的一个或多个结构,它们构成软件的各个组件(Elements),形成这些组件的外部可见属性及相互间关系[1]。
软件架构是在软件需求与软件设计之间架起的一座桥梁,着重解决软件系统的结构和需求向实现平坦过渡的问题。此外软件架构技术的研究,使软件复用从代码复用发展到设计复用和过程复用。
软件架构对于软件和软件系统是至关重要的。D.E.Perry将软件架构视为软件开发中第一类重要的设计对象。Barry Boehm也明确指出“在没有设计出架构及其规则时,那么整个项目不能继续下去,而且架构软件应该看作是开发中可交付的中间产品”[2]。
3 预警机任务系统的软件架构
3.1“网络为中心、面向服务”的大系统软件架构
大系统是指预警机作为节点的作战系统,包括地面指挥所、海上作战舰艇、空中作战飞机等。预警机作为大系统的一个节点,应满足大系统的软件架构,实现与其他装备的互联互通互操作。
(1)网络为中心
预警机所在的作战网络是由网络基础平台层、网络管理层和网络应用层构成,如图2所示。网络基础平台层由网络设备组成,是网络的基础。网络管理层执行对网络的管理,维护网络的正常运行,同时接收网络应用层请求,提供应用所需的网络链路。网络应用层是指在建立在网络环境上的应用。
图2 作战网络构成图
短波、超短波、卫通等通信链路设备构成预警机的作战网络基础。在任务执行前,根据执行任务类型制定通信规划,确定预警机的通信链路和容量。在任务执行中,根据需要预警机可向网络管理节点申请调整通信规划,变更通信链路或增加链路容量。
与“平台为中心”大系统软件架构的区别。“平台为中心”强调的是各个平台,平台应用受到平台之间所能提供的链路限制,有什么样的“路”才能跑什么样的“车”。“网络为中心”提供了链路的多种选择,根据应用的请求,网络提供相应的链路,也就是“车”决定起点、终点和要求,网络提供合适的“路”。
(2)面向服务
从体系架构的角度,面向服务的架构是一种软件体系结构和软件构造方法。在软件的基础架构上,面向服务架构能够实现服务部署环境和服务实现之间的松散耦合,以及不同功能的服务实现之间松散耦合性,有利于提高分布式系统的可伸缩性,有利于实现对资源的动态优化配置,最大程度地资源共享[3]。
在面向服务模型中,所有的功能都定义成了独立的服务,服务之间通过交互和协调完成业务的整体逻辑。所有的服务通过服务总线或流程管理器来连接。这种松耦合的体系结构使得各服务在交互过程中无须考虑对方的内部实现细节,以及部署在什么平台上[4]。预警机的服务包括两类,一类是预警机提供的服务,另一类是预警机接收的服务。预警机提供和接受的服务包括目标信息服务、作战指挥服务等。
预警机提供服务的过程:预警机通过服务注册中心发布服务;服务请求者向服务注册中心查找服务;服务请求者按照明确定义的标准接口与预警机交互,接受服务。预警机接受服务的过程与预警机提供服务的过程类似,不同的是预警机作为服务请求者参与其中。
目标信息服务包括信息订阅接口和信息分发接口等。服务请求者通过信息订阅接口向服务提供者订阅目标信息。服务提供者通过信息分发接口向服务请求者发送目标信息。
作战指挥服务包括身份注册接口、任务分配接口、指令分发接口、指令执行情况接口和文电接口等。服务请求者通过身份注册接口向服务提供者进行身份注册;服务提供者通过任务分配接口、指令分发接口向服务请求者分发任务和指令;服务请求者通过指令执行情况接口向服务提供者汇报指令执行情况;服务提供者和服务请求者通过文电接口进行文电信息交互。
3.2“中间件为软总线”的平台软件架构
预警机任务系统的平台软件架构是“中间件为软总线”的开放式体系架构,许多先进的武器平台也是采用这种开放式体系架构[5]。图3给出了预警机任务系统的平台软件架构。
图3 预警机任务系统的平台软件架构
平台软件架构的下两层是计算机及网络硬件和系统软件,系统软件包括操作系统、网络协议、数据库等。基本服务软件包括提供时间对准服务、坐标系转换服务、显示服务的软件等。基本服务软件为上层的应用软件(情报融合、外部通信、指挥控制等)提供基础服务。中间件是处于应用软件、基本服务软件和系统软件之间的一个软件层,它屏蔽了环境底层的复杂性,提供给应用开发者统一的、功能强大的APIs,使应用开发者只专注于业务逻辑的开发,快速地开发出可靠、高效的企业级分布式应用[6]。
中间件是预警机任务系统的软总线。驻留在系统各计算机上的软件或同一计算机上的不同软件通过中间件进行信息交互。预警机任务系统中间件具有如下功能:
(1)消息通讯。消息中间件提供了灵活的应用通讯机制,包括消息队列、发布/订阅等方式,支持多种通讯协议、语言、硬件和软件平台。
(2)分布式对象交互。在预警机任务系统中,通常需要对多个分布的对象进行集成,使对象之间进行交互,形成一个具有一定功能的软件组件。分布式对象交互支持位置无关性、语言无关性、平台无关性,对象之间的调用和数据共享不再关心对象的位置、实现语言、网络协议、数据库及所驻留的操作系统。
(3)数据库访问。数据库访问实现了应用程序和异构数据库之间的统一接口,有效解决了应用系统与不同后台数据库的数据访问问题。在不同的预警机任务系统中,可能会采用不同的数据库。中间件的使用保证了预警机软件架构的稳定,不会因数据库不同而影响预警机应用软件。
(4)软件的运行监控。记录软件的运行情况、CPU和内存占用情况等日志信息。当软件出现故障时,进行重启等操作。
3.3“数据为中心”的平台应用软件框架
(1)数据为中心
数据作为应用软件的中心,是对客观世界的真实反映。对于每个软件来说,输入的是数据,处理的是数据,输出的还是数据。软件功能是围绕数据开展活动。数据类对数据进行封装,并提供方法对数据进行读、写等操作。数据处理类对数据进行处理,实现对数据处理的算法。
对数据的依赖,而不是对数据处理的依赖,保证了软件功能的分离,使得软件具有良好的可扩展性。图4表示的是应用软件数据处理的过程,由于输入数据、输出数据格式基本是固定的,不会随项目发生变化,因此相应的数据输入和数据输出也相对固定,变化的部分只是数据处理部分。
对于一个应用软件,以“数据为中心”可以保证软件良好的扩展性,是一种模块化的应用软件架构。
图4 数据处理过程
(2)软件插件
应用软件根据功能对软件进行插件划分和管理,一组(或一个)插件完成一项软件功能。插件形式上是一组源代码文件、执行程序和配置文件,这组源代码文件、执行程序和配置文件只包含这一软件功能相关的内容,不包含其他软件功能的内容。
(3)应用软件框架
应用软件框架具有的功能:
插件管理:插件以动态库的形式集成到应用软件框架中,应用软件框架对插件进行管理。插件管理包括插件启动、插件初始化、插件停止、插件关闭;
定时器:利用软定时器对定时器进行统一管理,包括增加和删除定时器、开始定时器、在任何时刻停止和重启定时器、在任何时刻设置定时器速度。
对象管理器:利用对象管理器进行对象的身份识别和对象句柄获取,对象包括两个基本属性,对象组标识、对象标识。对象管理器功能包括对象ID的创建、对象句柄获取。
时间管理:获取系统时间。
多线程与线程池:在界面处理计算密集型任务时,采用多线程技术保障人机界面高实时响应。功能包括线程的创建、线程池调度。
应用软件框架的工作过程如图5所示。
图5 应用软件框架的工作过程
框架主进程启动后,首先进行系统初始化,初始化的主要工作包括:插件管理器的初始化、定时器管理器的初始化、线程池管理器的初始化等;然后进行业务功能插件导入,插件的启动和初始化工作,进入处理事件循环工作。当事件循环捕获到系统退出时,执行插件的关闭工作。
3.4预警机任务系统的完整软件架构
“网络为中心、面向服务”的大系统软件架构、“中间件为软总线”的平台软件架构、“数据为中心”的平台应用软件架构形成了预警机任务系统的完整软件框架。三者是预警机任务系统软件框架的三个方面,“网络为中心、面向服务”的大系统软件架构是针对预警机为节点的作战系统,“中间件为软总线”的平台软件架构是针对预警机任务平台,“数据为中心”的平台应用软件架构是针对预警机任务系统中的应用软件。三个软件框架在软件开发中融合在一起,形成完整的系统。
4 软件架构对预警机任务系统的影响
4.1对系统性能的影响
(1)作战系统的灵活接入
由于采用“网络为中心,面向服务”的大系统架构,预警机、作战飞机等可以灵活接入作战系统。基于网络的互联互通,以及面向服务的松耦合和标准化接口,使得作战系统具有很强的灵活接入能力,预警机、作战飞机等可以根据需要随时接入系统或从系统中撤出。
作战系统的灵活接入增加了作战系统在战场上的组织整合能力,不必过分依赖战前规划,使得作战系统可以应对不同规模或强度的战斗和冲突,具有很强的弹性和时效性。
对于预警机而言,“网络为中心,面向服务”的大系统架构简化了预警机与大系统之间的关系,可以使得预警机随时随地提供和接受服务。
(2)系统具有良好的性能扩展性
“中间件为软总线”的平台软件架构具有分布式的特点,具有软件迁移、复制、负载均衡的能力。当系统处理能力不能满足数据处理时,自动进行软件复制,产生多个相同的软件同时进行数据处理,并且可以对这多个软件进行负载均衡。
(3)数据信息处理实时性的提高
“数据为中心”的平台应用软件架构可以将单个长时间链条的数据处理分为多个短时间链条,缩短不同时间序列数据的处理等待时间。这种串行的数据处理与上面提到的负载均衡并行处理相结合,在系统性能得到提高的同时,也可以提高数据信息处理的实时性。
4.2对系统运行和维护的影响
(1)强化了系统的运行管理和监控
“中间件为软总线”的平台软件架构对各软件的运行进行监控,可以使得操作人员掌握各软件的运行情况(正常或失效),CPU和内存占用情况,以及查看软件的运行信息。软件架构对于软件的运行管理和监控,提高了系统的可靠性和操作人员对于系统运行情况的掌握,对于分析和解决系统故障具有重要作用。
(2)减少了系统升级对其他系统的影响
由于预警机以及大系统中的其他装备采用“网络为中心,面向服务”的系统架构,使得在系统升级时预警机可以同时具备多种技术状态,不同的技术状态具有不同的服务,不管其他系统是否同步升级,都不会影响使用,从而减少了系统升级对其他系统的影响。
(3)提高了系统的可维护性
“数据为中心”的平台应用架构提高了系统的可维护性,表现在两个方面:一是插件的使用隔离了不同数据处理的影响,减少了改进对其他功能的影响,接入新增功能更加容易;二是数据处理方式的改变不影响外部数据接口,功能升级增效更加方便。
4.3对开发的影响
(1)提高了软件开发效率和重用度
功能分离的软件插件开发方法,使得软件的开发有序而高效。开发的软件插件被保存在企业的资源库中,需要时被取出使用,不用重复开发和测试。同时,系统功能分离开来,使得预警机任务系统可以更加方便地进行原型或增量开发模式进行开发,可以及时与用户沟通,得到用户的使用反馈,避免了开发出现大的问题。
(2)减少了系统的复杂度
“中间件为软件总线”分布式的平台软件架构以及“数据为中心”的应用软件架构使得数据可以集中管理。分散的计算节点(如显控台)上的软件不用对本地数据进行维护,数据的同步由系统架构来维护(系统架构发现中心数据发生变化,会自动同步本地软件的数据)。现在的情况是:服务器、显控台等分别保存一份数据,分别对数据进行管理,增加了系统的复杂度。
5 结 语
“网络为中心、面向服务”的大系统软件架构、“中间件为软总线”的平台软件架构、“数据为中心”的平台应用软件架构形成了预警机任务系统的完整软件架构。该架构可以简化预警机系统数据和信息的管理,使得系统功能分离开来,便于进行原型或增量开发,同时使得系统性能得到提升,减少系统软件维护和升级的难度。
[1]How Do You Define Software Architecture,http://www.sei.cmu.edu,2004.
[2]孙晶爱,金茂忠,刘超,软件体系结构研究综述[J]. 软件学报,2002,13(7):1228-1237.
[3]唐秀良,SOA发展探索与研究[J]. 中国电子科学研究院学报,2009,25(5):473-479.
[4]张友生,软件体系结构原理、方法与实践(第2版)[M]:198.
[5]董晓明,石朝明,黄坤,等. 美海军DDG-1000全舰计算环境体系结构探析[J]. 中国舰船研究,2012,7(6):7-15.
[6]蒋雄伟,马范援. 中间件与分布式计算 [J].计算机应用,2002,22(4):6-8.
盛大同(1970—),男,河南省商丘人,高级工程师,主要研究方向为电子信息系统软件设计与集成。
E-mail:whsdt@163.com
Research on Software Architecture of AWACS Mission System
SHENG Da-tong
(China Academy of Electronics and Information Technology, Beijing 100041, China)
From the challenge of AWACS, the author provides a software architecture for AWACS mission system. It is network-center and service-oriented with the software architecture of system, middle-ware software bus of the platform software architecture, data-center of the platform application software. This software architecture makes the control of data and information more simply, and separates the system functions, it is advantageous to prototype development and Incremental Development. It can also improve capability of the AWACS mission system,and reduce the difficulty of software maintaining and upgrading.
Airborne Warning and Control System(AWACS); Mission System; software architecture
10.3969/j.issn.1673-5692.2016.02.012
2016-01-22
2016-02-23