APP下载

基于框架-插件架构的军事仿真系统设计方法研究

2015-09-26李春荣刘筱

现代计算机 2015年22期
关键词:插件框架软件

李春荣,刘筱

(中国电子科技集团公司中国电子科学研究院,北京262500)

基于框架-插件架构的军事仿真系统设计方法研究

李春荣,刘筱

(中国电子科技集团公司中国电子科学研究院,北京262500)

0 引言

随着计算机技术的发展,软件体系结构和开发方法也在发生着重大变化,近年来,以“框架+插件”为代表的软件构造方法正得到越来越多的应用。“框架+插件”式体系结构是一种非常灵活的组件式结构,它把程序功能分散在插件中来完成,插件是可独立于系统开发的程序模块,它能够动态地插入到基于框架的系统中。因此,它有着相当突出的优点:能够提高软件开发的并行性和开发效率,降低设计开发难度,缩短开发周期,增强应用程序的可运行性、可测试性和可维护性[1],在业界广受推崇。

虽然系统仿真技术经历多年发展已经日趋成熟,但面对不同的应用需求,军事仿真系统构建还存在模型重用率低,开发周期长,可靠性差等问题。为了更好解决这些问题,军事系统仿真可尝试插件式设计思想,利用“即插即用”的仿真模型插件来进行系统设计和开发。本文提出了一种基于“仿真应用集成框架+仿真插件”模式的军事仿真系统设计方法,该方法从仿真应用集成框架的构建,到基于框架的仿真插件设计给出了一整套解决方案,并在实际项目中进行了应用,证明了该方法是切实可行的。

1 仿真应用集成框架实现

框架-插件架构的基本思想是把软件的扩展功能做成插件的形式,通过一个公共平台(即框架)统一管理起来[2]。插件针对标准接口编程,框架通过调用标准接口把不同的插件有机集成起来,使它们协同工作。插件的本质是在不修改主体程序(框架)的情况下,实现系统功能的扩展,同时也可以由一组插件共同协作完成系统的全部功能。

仿真应用集成框架是针对军事仿真领域插件式软件开发和集成设计的基础平台,它能够动态集成按照插件开发规范开发的插件,支持以插件为单元的系统动态组装,基于框架开发的仿真应用系统由若干功能插件组成,进行仿真应用系统集成时只需在该框架下将插件按信息关系进行逐步组装即可完成,同时,该框架还支持复合应用的集成,即在一个EXE集成框架内实现多个仿真应用的集成,协调多个仿真应用组合的展现操作内容[3]。

仿真应用集成框架由仿真框架主体、插件容器和插件开发规范三部分组成,见图1,仿真框架主体和插件容器是构成仿真应用系统的主体,而插件开发规范是用来指导基于该框架的插件开发。

图1 仿真应用集成框架组成

(1)框架主体:系统主程序负责仿真软件的整体运行,它清楚插件的调用流程,但并不知道每个插件具体做什么,它通过插件配置文件在插件容器中查找应用需要使用的插件,通过插件管理器加载和调用插件,来实现软件的真正功能,其中,插件管理器由以下几个模块组成:

①插件接口插槽:负责插件的动态加载及初始化,实现与插件的动态挂接;

②窗体消息管理:负责仿真应用系统窗体消息的订购及发布,根据插件的配置要求将仿真主体框架的窗体消息传递给插件;

③插件注册管理:负责插件的注册和查询,加载完成的插件在系统中通过唯一标识进行注册,其他插件可以通过标识来查询已注册的插件;

④接口注册管理:负责插件实现的公共服务接口的注册和查询,插件通过接口公布自身提供的服务集合,其他插件通过接口注册管理来获取接口,使用服务;

⑤界面管理:根据插件要求完成框架界面的定制,并将界面菜单消息反馈给插件;

⑥插件消息管理:负责插件间消息的发布、订购和传递,各类消息具有唯一标识,插件根据需要订购消息,当其他插件发送该消息时,插件会收到消息回调。

(2)插件容器:统一存放插件的地方,仿真系统运行时,根据插件配置在该容器中查找相应插件完成插件动态加载。插件在实现自身功能的同时也可以注册接口,为其他插件提供服务,本框架将插件分为两类,基础服务插件和仿真业务插件。

①基础服务插件:应用集成框架提供了态势标绘、线程管理、空间位置计算和地图工具操作插件4个基础服务插件,对外提供服务接口,供其他插件调用;

②仿真业务插件:与仿真应用软件功能、业务逻辑紧密相关的插件,如流程控制插件、仿真模型插件等。

(3)插件开发规范:规定了基于仿真应用集成框架开发插件的一系列开发规范。

①插件集成开发标准:定义了插件的初始化、释放、插件消息订购和发送、插件消息处理以及插件接口注册及使用等一些列接口标准,插件的开发必需遵循该标准,遵循标准的插件才能够被自动加载和集成;

②服务接口集:供插件开发使用,由遵循插件接口规范的接口描述文件构成。

仿真应用集成框架插件集成原理如图2所示,①框架搜索插件配置目录获取所有需要加载的插件;

图2 插件集成原理图

该框架中存在两类插件通信问题:①仿真框架主体(主要是指界面窗体)与插件间的通信;②插件之间的消息通信。

对于(1),通过插件的标准继承函数即可实现,即每个功能插件都继承于插件基类,插件基类中定义了一系列主体框架与插件通信的虚函数,在功能插件中实例化了这些虚函数,当有相应的消息事件发生时,仿真框架主体就会回调相应插件的处理函数执行处理,这些处理主要包括菜单命令处理、命令菜单的控制、窗体消息的处理(如按下鼠标左键)、命令菜单的控制等。

对于(2),插件通过主体框架的插件消息管理器中转消息。插件间的通信方式有两种,主动获取(插件接口调用)与被动接收(消息的发布-订购机制)。无论哪种方式,都需要一块内存区域来存储通信的“信息”。图3示意了插件间如何通信,插件间通信主要应用于两种场景:①某一插件状态发生改变通知其他插件,即消息的发布-订购;②某插件要将导出对象信息传给依赖于它的插件,指插件接口调用[4]。

2 基于框架的仿真系统设计

采用基于框架的插件式开发方法最大的特点是实现软件的“即插即用”和“组装”,提高插件的复用性,然而增强插件的复用性不仅需要插件内部良好的设计,更需要对仿真业务功能进行合理的划分,对插件粒度进行合理的掌握,本文给出以下3条仿真业务插件的设计划分原则。

图3 插件间通信

(1)分层原则

本文将仿真业务插件分为三个层次,如图4所示,基础服务插件层、仿真模型插件层和仿真应用插件层。基础服务插件为与领域无关的通用服务,可由框架提供,也可由用户根据业务需要自行开发;仿真模型插件层是最重要的一层,它是对客观军事仿真对象的概念、原理、行为的抽象模拟[5]形成的仿真实体模型;仿真应用层建立在仿真模型插件层基础上,负责业务界面的显示及协调调度仿真模型插件完成软件功能。

图4 仿真业务插件层次划分

(2)分离原则

为实现软件“高聚合,低耦合”的目标,软件军事仿真系统在设计上应遵循软件三层架构的设计原则,即在整个软件层次上分为表现层、业务逻辑层和数据访问层。表现层主要用于显示数据和接收用户输入;业务逻辑层是整个系统架构中最核心的部分,它包括仿真实体模型及对于整个实体模型算法的控制调度;数据访问层主要负责对于仿真系统共用数据的管理和维护。

(3)特殊应用考虑原则

有些仿真系统在运行时有特殊应用需求,对于这一点在进行插件划分时要给予充分考虑,如要求能够调速1~50倍运行,此时,需要考虑仿真流程调度频率问题,众所周知,计算模型消耗计算机资源相对较少,而在地图上绘图显示刷新则耗费大量的计算机资源,在此情况下,一定要将仿真模型计算与绘图显示分离,并且仿真模型计算可调速运行,而绘图显示一般按照固定的频率进行刷新,以保证足够的系统资源支持模型加速运行。

基于仿真插件设计划分原则,本文将仿真业务插件划分为如图5所示的分类及层次结构,每类插件可由多个插件组成。

图5 仿真插件分类及层次划分

(1)信息收发:隔离底层通信平台,负责仿真应用软件与外部软件的交互信息的接收和发送;

(2)时间管理:负责系统作战时间和天文时间的维护,并对外提供时间服务接口;

(3)参数获取:负责仿真应用软件配置信息、相应信息等数据的获取;

(4)模型算法:是对仿对象行为、决策等的抽象,如雷达监测、跟踪算法,威胁评估算法等;

(5)仿真实体模拟:基于仿真模型算法,对仿真实体的行动及响应行为的流程组织[6];

(6)数据管理:管理仿真模型算法、仿真实体的描述数据、输入及输出数据,并负责数据的存储和获取;

(7)界面显示:负责仿真软件界面操作元素的创建和显示,如操作对话框、工具条等;

(8)信息显示:负责仿真过程中重要信息的显示,如信息输出框,重要信息提示框等;

(9)仿真流程调度:依据仿真进程控制(仿真初始化、开始、停止等),控制仿真软件的状态,组织调度各插件协同完成软件功能。

3 应用案例

在某大型仿真系统项目中,利用“仿真应用集成框架+仿真插件”的系统开发方式实现了某机载雷达和天波超视距雷达模拟软件,主要模拟该两型雷达对空、海目标的探测和跟踪能力,两个软件的输入、输出接口一致,仿真控制过程一致,不同的是两型雷达的工作机理不同。

经过对该两型雷达的工作机制和仿真流程进行分析,开发图6所示14个功能插件,基于这些插件组装,分别组装成某机载雷达模拟软件和天波超视距雷达模拟软件,如图7、图8所示。

(1)软件显示单元动态组装效果

在机载雷达模拟软件插件加载配置文件中配置图7插件容器中的所有插件,运行效果如图9所示。而在天波超视距雷达模拟软件的插件配置文件中删除两个信息显示相关插件,运行效果如图10所示,该效果表明软件功能插件单元是可以动态添加、删除的。

图6 雷达探测系统软件仿真业务插件

图7 某机载雷达模拟软件插件组装图

图8 天波超视距雷达模拟软件插件组装图

图9 某机载雷达模拟软件插件组装图

图10 天波超视距雷达模拟软件插件组装图

(2)复合应用组装效果

在机载雷达仿真应用中集成天波超视距雷达应用的功能,只需将机载雷达模拟软件插件配置文件中添加四个天波雷达专用业务插件的配置,并将这四个插件放入机载雷达模拟软件的插件容器中,其运行效果如图11所示。

图11 复合应用插件组装图

4 结语

本文提出了一种基于框架-插件的军事仿真系统设计方法,该方法的关键点在于设计一种适合本业务领域的通用应用集成框架和基于框架的仿真业务插件设计原则。前者解决了基于插件的单仿真应用系统和多种仿真应用快速集成的问题,后者解决了仿真应用系统业务插件粒度划分及设计问题。基于“框架-插件”的设计开发方法,使技术人员更专注于仿真功能模型的开发,而不必关心系统集成的事情,缩减了软件开发周期,提高了软件可靠性,由于单元插件、模型功能插件不同粒度的插件都可以复用,使得仿真插件的复用率大大提高。同时,由于该架构体系具有较高可扩展性和易用性,相信其在军事仿真应用领域颇具应用前景。

[1]孙昌爱,金茂忠,刘超.软件体系结构研究综述[J].软件学报,2002,13(7):1228-1229.

[2]吴亮,杨凌云,尹艳斌.基于插件技术的GIS应用框架的研究与实现[J].中国地质大学学报,2006,31(5):610-614.

[3]戴仔强,金晓雪,余俊.基于插件的表现集成技术[J].指挥信息系统与技术,2013,4(1):39.

[4]李祥,吴瑞祥,薛雯.基于插件的可扩展战场态势展现框架的设计与实现[J].网络安全技术与应用,2013.7:80.

[5]王俊,邵堃,刘磊,刘宗田.一种可复用的插件粒度划分方法[J].计算机工程,2009,35(22):79-80.

[6]史华明,毛文华.指挥对抗训练信息系统结构及功能设计研究[J].中国电子科学研究院学报,2014,9(2):149-154.

Ntegration Framework;Plug-in;Simulation System;Plug-in Design

Research on the Design Method of Military Simulation System Based on Framework and Plug-in

LI Chun-rong LIU Xiao
(China Academy of Electronics and Information Technology,Beijing 262500)

1007-1423(2015)22-0071-07

10.3969/j.issn.1007-1423.2015.22.018

李春荣(1981-),女,山东人,硕士研究生,工程师,研究方向为军事电子信息系统建模与仿真

2015-06-26

2015-07-31

针对军事仿真系统模型重用率低、开发周期长等问题,提出一种基于“框架+插件”的军事仿真系统设计方法,给出仿真应用集成框架的实现途径和仿真插件的设计原则,基于框架和插件设计原则,展示两型雷达模拟软件的插件设计和运行效果,证明该方法的切实可行。

集成框架;插件;仿真系统;插件设计

刘筱(1979-),男,湖南人,本科,高级工程师,研究方向为军事电子信息系统软件集成技术

Modeling&Simulation(M&S)has been widely used in nearly all aspects of Military related fields.However,the low reusability and long development cycle of the models in military simulation system have become emerging problems.Discusses an approach of designing military simulation system based on Framework+Plug-in methodology to address the above problems.In addition,by using this approach to design the Plug-in for two types of Radar detection software,the improved operation effect has clearly demonstrated the applicability and practicability of the proposed Framework+Plug-in method.

猜你喜欢

插件框架软件
框架
禅宗软件
广义框架的不相交性
自编插件完善App Inventor与乐高机器人通信
软件对对碰
基于jQUerY的自定义插件开发
关于原点对称的不规则Gabor框架的构造
即时通讯软件WhatsApp
基于Revit MEP的插件制作探讨
基于Hadoop的DDoS检测框架