复杂软件系统自适应技术研究

(整期优先)网络出版时间:2023-08-22
/ 2

复杂软件系统自适应技术研究

吕广喆, 刘陶, 樊超

西安航空计算技术研究所  陕西  710000

摘要:综合化航电系统中设备数量众多,相互关交联、相互制约、相互作用,是一种典型的复杂的系统,随着IT技术的不断发展该系统呈现出开放化、模块化、智能化的特点,要求具备自适应能力,能够根据应用场景的变化做出动态调整。为了适应新技术发展需要,以机载软件能力平台为对象,研究复杂软件系统故障重构、自组织、功能动态插拔等关键技术,建立动态自适应的机载软件平台框架,以系统管理软件为典型用例实现机载软件平台动态自适应能力,降低软件开发成本,支持复杂软件快速重构,这对于软件技术实现跨越式发展具有重要意义。

关键字:复杂软件系统  自适应  构件

引言

复杂软件系统是指子系统数量众多,且子系统相互关联、相互制约、相互作用关系复杂的系统,其内部实体间存在复杂的耦合关系。机载综合化电子系统中的软件就是一个典型的复杂软件系统。特别是高度综合后,机载电子系统需要在统一航电网络上实现智能分布式的信息处理以及一体化的系统控制与管理,整个系统呈现出系统结构开放化、系统组成模块化、系统互连网络化、系统功能软件化、系统应用智能化的特点[1]

复杂软件系统中的自适应是指系统面对外部环境变化和自身功能需求变化时具备的一种适应能力,通过功能或结构重组满足系统需求。在智能作战场景下,作战飞机需要一定的自主性,可以缩短决策时间、避免人为的(低级)错误决策、有效支持装备智能化应用,提升装备对复杂环境的适应性,以及故障条件下的生存[2]

1.技术现状分析

机载软件系统自适应能力的构建需要从两个维度展开,一是工程方法维度。二是产品技术维度。

在工程方法维度,主要关注下列几个方面[2]:(1)基于领域分析方法的软件能力构件集规划方法;(2)软件能力构件提取方法与描述方法;(3)软件能力构件配置模型。。研究点包括领域分析方法,构件获取技术,构件模型技术,构件组装技术等[3]。国外在构建模型及其规范方面已开展了大量工作,形成商业产品并获得成功应用。比较有影响力的是微软公司的COM/DCOM、SUN公司的JavaBean/EJB、OMG组织的CORBA、OSGI联盟的OSGI等[4]

在产品技术维度,主要关注下列几个方面:(1)通用机载软件能力平台框架;平台框架下的通用系统管理软件。通用机载软件能力平台是系统实现自适应/自重构能力的基础,提供系统故障重构、自组织通信、功能动态插拔等能力。系统开发人员基于通用机载软件能力平台开发所需的功能应用,共同完成系统功能。通用机载软件能力平台框架是一个开放的通用机载软件能力环境,以构件化、标准化、服务化、互操作为特征,通过配置实现快速能力部署支持[5]

国外在类似机载能力环境方面已开展了前期研究,衍生出多个独立的项目。这些项目多数还在不断发展中,并且以螺旋方式不断演进。美国提出了支持开放、可重构软件的未来机载能力环境(Future Airborne Capability EnvironmentFACE)技术标准,它定义了通用的操作环境,用以支持整个国防部航空系统软件组件的可移植性和重用。

2.总体方案

机载领域中通用分布式IMA平台包括:通用机载硬件平台和通用机载软件平台两大部分,共同提供处理资源、存储资源、接口资源,并具有健康监控、故障管理、容错重构等系统服务功能。针对硬件平台中不同功能区共性和个性的特征,拟基于构件集规划的方法来构建整个机载领域具有自适应/自重构能力的机载软件能力平台,其架构如1所示。

1基于构件集规划的机载软件能力平台架构

机载软件能力平台采用分层结构,建立在通用分布式机载硬件平台之上,由基础服务、高级服务和面向不同专用应用领域的专用服务构成。基础服务由操作系统、文件系统等构件构成,提供模块级资源管理、时空分区、任务管理等基本服务。高级服务由各共性软件能力构件组合而成,提供平台级健康监控、跨处理单元的传输服务等平台级服务。高级服务主要解决多模块间数据传输与管理问题,向上提供统一服务接口。高级服务可根据不同的环境应用的需要,筛选构件并组合而成。专用服务由面向不同领域的专用构件构成。整个机载软件能力平台中,基础服务提供公共的基本服务,高级服务提供适应不同处理环境的平台级高层服务,专用服务提供面向特定领域的专用服务。这些服务由形形色色功能各异的能力构件提供,最终实现构件大的复杂的,具有自适应能力的机载系统。

3.关键技术

(1)机载软件能力平台框架

采用基于领域分析方法的软件能力构件集规划方法,构造机载软件能力平台框架,机载软件能力平台框架由软件能力构件构成,分为三层,即基础服务层、高级服务层和专用服务层。

基础服务层由操作系统、运行时、OS级健康监控、文件系统、物理设备访问等能力构件构成,提供健壮分区、任务管理、基础数学运算、文件管理与访问,设备访问等能力。该层向上提供的服务接口是公用的基础核心服务接口。该接口是标准化的接口。

高级服务层由传输服务、IO服务、平台相关服务等能力构件构成,位于基础服务之上,提供平台设备管理、平台级健康监控/故障管理、模块间数据传输、IO管理与访问等高级能力。该层基于基础服务,向上提供平台级的高级服务接口。该接口是统一的,标准的。模块间数据传输提供软件构件间的透明的数据交互,支持发布/订阅消息模式和请求/应答消息模式等多种通信模式。IO管理与访问为数据在设备驱动与平台相关服务段之间的传递提供桥梁,可屏蔽底层具体物理设备。

专用服务层面向不同的应用领域,由专用的能力构件构成,提供领域的主用能力。例如安全关键领域服务由安全关键领域的构件构成,并提供专用服务接口;通用目的领域服务由通用目的领域的构件构成,并提供专用服务接口。

机载软件能力平台框架由成熟的软件构件组合而成,结构灵活,支持自适应/自重构。

(2)软件构件提取方法与描述方法

软件能力构件是指语意完整、语法正确、具有一定集成度并可以重复使用的软件组成单元,它是组成系统或者更高级的构件的基本元素。软件能力构件具有高度的逻辑内聚和封装性。通过领域分析方法分析,抽取共性能力,功能逻辑内聚。构件内部对用户透明,用户不用关心其内部复杂的结构设计和实现。构件可以独立地进行开发,可以作为成熟商品独立使用。软件能力构件有稳定的接口。本文采用基于模型的软件能力构件获取和描述方法。首先,从机载特定应用需求出发,通过分析进行共性需求识别、对象抽象和知识获取,以建立概念级的模型。进而寻求构件化软件解决方案,在机载软件能力框架的约束下进行软件能力构件的识别和实现。

(3)软件能力构件配置模型

软件能力构件是具有定义良好的接口的自包含软件构建单元,具有可重用性,支持与其他构件组合构成一个系统,是可替换的。软件能力构件通过配置对应用环境进行适应和能力的定制。不同的软件能力构件对外展示的能力不同,可配置的数据也不尽相同,为以后基于构件的软件设计和综合带来较大难度。本文拟为所有软件能力构件建立统一配置模型。该模型采用XML语言,对软件能力构件的环境依赖、能力等共性特性进行抽象,使用Schema文件建立统一的信息结构和标签。基于XML语言的配置模型具有跨平台、结构简单、效率高、可扩展等特性。

(4)系统管理软件构件化设计

本文拟用系统管理软件为典型案例,在平台框架技术规范的指导下,使用机载软件能力构件的抽取和描述方法以及配置模型,开发系统管理软件构件。该结构自下而上分成四个层次,依次编号从1到4。第1层是物理资源层,即通用分布式IMA硬件平台,可以集中部署,也可以分散部署;第2层是逻辑资源层,基于通用分布式IMA硬件平台构建虚拟资源池,按类型组织,可划分为计算资源池、存储资源池等;第3层是功能层,组织虚拟资源建立基础功能;第4层是任务层,调用功能实现特定的任务。系统管理软件构件负责管理上述1~3层,并提供任务动态部署、健康管理、容错重构能力。

2系统管理软件架构

系统管理软件构件主要由系统动态部署模块、故障管理模块和数据解析模块组成(见2)。系统动态部署模块进行任务动态部署和重构,故障管理模块进行健康管理,数据解析模块基于统一配置模型的配置数据中导入配置。

4.结束语

本文以机载软件能力平台为对象,研究机载软件能力平台构建方法、设计机载软件能力平台框架、以及平台框架下的系统管理软件案例应用,探索出军用复杂软件系统的自适应支持方法和框架,为复杂软件技术的跨越式发展提供方法指导。

参考文献:

[1] 肖瑾,刘相君,胡晓光.基于FACE标准的航电软件可移植组件单元封装实验设计[J].实验技术与管理,2021,38(04):171-178.DOI:10.16791/j.cnki.sjg.2021.04.035.

[2] 张伟,梅宏. 一种面向特征的领域模型及其建模过程[J].软件学报,2003,14( 8) : 1345-1356.

[3] 徐成龙,樊杰.面向服务的领域分析方法的研究[J],计算机与现代化,2013,2:69-72.

[4] Spring Dynamic Modules Reference Guide for OSGi(tm) Service Platforms[z]7:5-6.

[5] 张婷婷. 基于分布式OSGi的旅游电子商城动态服务管理系统研发[D].海南大学,2018.

吕广喆 高级工程师,硕士研究生,陕西商洛人,1987年11月9日,男,西安航空计算技术研究所,

1