APP下载

基于插件式的软件总线构件平台的设计

2016-07-01桂林长海发展有限责任公司劳宪银

电子世界 2016年10期
关键词:体系结构插件

桂林长海发展有限责任公司 劳宪银



基于插件式的软件总线构件平台的设计

桂林长海发展有限责任公司 劳宪银

【摘要】本文开发的基于插件式的软件总线构件平台主要为电子对抗、指挥控制等军用软件搭建系统框架,满足现代军用软件的开发周期短、可扩展性和可维护性强的迫切需求。基于插件式的软件总线构件平台采用插件体系结构和软件总线技术设计,该平台的复用,可大大缩短软件的开发周期,增强软件的复用性、扩展性和维护性,同时可节省出传统的软件开发方法所开发的软件在前期系统框架设计、后期软件维护所需要投入的大量人力物力。

【关键词】插件;软件总线;复用;体系结构;Qt

1 平台开发背景

传统的电子对抗、指挥控制等军用软件通常都是单一模块的执行程序,开发时往往采用自顶向下逐层细分划分为单个小模块进行开发。在出现新的需求时,由于软件较为简单,即使全部重新开发,也相对容易。然而,随着计算机技术和军用软件应用的发展,软件任务需求变得多样化、复杂化,完整开发出一个软件或系统需要大量的人力物力,需要很长的软件开发周期,而且当前软件更新换代的要求越来越频繁,传统的软件开发方法在现代的复杂化、多样化需求下显得力不从心,所以我们需要寻找一种更好的软件体系结构和开发方法。

基于插件式的软件总线构件平台是一种比较灵活、通用的软件体系结构,它采用“平台+插件”设计模式,将软件通用功能和扩展机制的程序应用框架设计成平台,而软件其他功能分散到插件中来完成,插件可动态地加载到平台上,也可被自由地卸载和替换。因此,它不但大大提高软件开发的开发效率,降低设计开发难度,而且,缩短了软件开发周期,增强了软件的可运行性和可维护性。

2 平台关键技术概述

2.1插件体系结构

插件是按照预定接口实现的软件功能构件。软件可在运行时动态加载插件并执行其功能。插件体系结构的软件由一个插件管理平台和多个完成子功能的插件组成,如图1所示。

图1 插件体系结构

插件管理平台:主要实现软件中的通用功能和扩展机制的程序应用框架,可以插入不同的插件,接受插件提供的服务并提供给用户,是整个系统的基础和主干。

插件:按照程序应用框架的规格要求实现软件其他功能,并能够动态地插入到软件系统中,完善系统整体功能,是插件系统的重要组成部分。

接口:是使插件管理平台和插件能够互相结合工作而制定的一套标准和协议,它是一个逻辑上的接口,由插件管理平台和插件各完成一部分,它们共同完成插件的加载、调用、卸载以及插件管理平台与插件以及插件与插件之间的交互,是插件系统中的重要组成部分。

2.2软件总线技术

软件总线是一条虚拟的数据传输线,是硬件总线的映射,是软件系统中各构件的集成框架。它为系统内各构件之间的信息交换提供虚拟的公共数据通道和接口服务。只要符合其所制定的接口标准的构件都能够实现即插即用。

对软件总线的设计主要考虑4个基本要素:模块间的数据通信、构件的调度和管理策略、软件总线的管理策略、软总线和构件库的接口策略。针对软件总线设计应解决的基本要素,软件总线的设计应实现以下4个功能模块:

数据通信模块:该模块主要用于协调各个“接插”在软件总线上的由不同语言编写、不同环境下运行、不同开发商提供的异够构件之间的信息交互。

构件调度模块:该模块主要通过软件总线实现对构件的调用、安装、卸载,完成对构件库的管理。

总线管理模块:该模块主要实现操作系统与构件库间通信和数据交换、数据传递的合理分配和控制使用。

接口控制模块:该模块主要用来解决软件总线和构件的接口问题,完成构件同软件总线间的信息交互,实现操作系统对构件库的管理和控制、构件之间的互相通信、数据和信息的传送。

软件总线的总体结构框架如图2所示。

图2 软件总线框架

3 平台需求分析

本文开发的基于插件式的软件总线构件平台主要为电子对抗、指挥控制等军用软件搭建系统框架,提供插件管理、总线通信、界面布局管理等功能,实现系统中必需的通用功能和扩展机制的程序应用框架。

3.1插件管理

插件管理主要提供以下几方面的功能:

插件的注册和反注册。插件在使用前需要注册,例如ActiveX控件,必须注册才能使用。插件只有成功注册后,平台才能正确找到插件的路径,并对其初始化。平台可以对已注册但当前不再的插件进行反注册。

插件的加载和卸载。平台能够根据用户的需求,可对已注册但暂时不需使用的插件进行加载或卸载。

插件基本信息的显示。平台能显示插件的版本、版权等信息。

3.2总线通信

实现插件之间的通信管理功能。为整个系统的运行提供全面的通信能力。

3.3界面布局管理

实现系统界面的管理功能。为整个系统的界面配置及控制提供管理能力。

4 平台整体结构设计

平台主要由插件管理子系统、总线通信管理子系统、界面布局子系统组成。平台整体结构设计如图3所示。

图3 平台整体结构

平台总体框架设计如图4所示,平台基于插件形式设计,插件间的通信主要由总线通信子系统实现,界面布局管理子系统以插件形式加载到平台,由插件管理子系统对插件进行管理。核心插件(Core Plugin)负责整个平台界面的初始化工作,界面的布局由界面管理子系统负责。

图4 平台总体框架

5 平台功能结构设计

5.1插件管理子系统设计

插件管理子系统的工作原理如图5所示,插件管理器在加载插件之前首先获取插件的描述信息,判断插件是否正确,减少了直接加载插件发生错误时的系统开销。在插件初始化的过程中,插件管理器需要将插件注册对象添加到公共对象池中供其他插件使用。插件管理器接收到插件卸载信号时,会修改插件的状态信息,并将该插件注册的对象从公共对象池列表中删除。插件管理子系统负责插件的加载、卸载及维护插件的状态信息,插件的状态包括Invalid, Read, Resolved,Loaded, Initialized, Running, Stopped, Deleted等八个状态,Invalid:起始点,还没有读取插件的元数据。Read:插件的元数据被成功读取,且其信息可通过PluginSpec取得。Resolved:description文件给出的依赖项被成功找到,且可以通过dependencySpecs()函数获得。Loaded:插件的库被加载且插件实例被创建(通过plugin())。Initialized:插件的实例的IPlugin:initialize()函数被调用,返回成功。Running:插件的依赖项被成功initialized和extensionsInitialized,加载过程完成。Stopped:插件被关闭,例如插件的IPlugin:aboutToShutdown()函数被调用之后。Deleted:插件的实例对象被释放。

图5 插件管理子系统工作原理

5.2总线通信管理子系统设计

平台以插件的形式实现其功能,以总线的方式实现功能上的扩展。插件之间需要进行通信才能实现协同合作和真正意义上的功能扩展。总线通信管理子系统主要负责插件之间的通信管理,其工作原理如图6所示,插件之间主要通过Qt的信号和槽机制进行通信,当某个插件plugin1请求与另一个插件plugin2进行通信时,plugin1将发射一个信号,如果plugin2有效则会接收到该信号并执行相应的操作,如果plugin2无效,那么通过插件管理子系统维护的插件状态信息获取plugin2的状态,返回失败信息。

图6 总线通信管理子系统工作原理

5.3界面布局管理子系统设计

界面布局管理子系统的工作原理如图7所示,软件的界面布局管理主要由核心插件(Core Plugin)负责,核心插件提供ActionManager 和ModernManager两个类,布局管理器ActionManager类负责菜单、菜单栏、键盘快捷键的注册并记录它们的布局;而ModeManager类负责平台主界面上提供的FancyTabWidget工具栏上控件的添加、显示以及控件的切换事件的处理。核心插件(Core Plugin)记录各个插件对象及它们的布局信息,通过connect进行连接,接收对象布局改变信号,并进行相应的处理,然后更新界面布局,修改布局记录。

图7 界面布局管理子系统工作原理

6 总结

该平台主要采用插件式的软件总线设计方法进行开发,代码使用Qt和C++进行编写,使用面向对象开发方法的思想,按照系统需求分析、系统功能设计、系统技术实现的步骤循序渐进,平台采用“平台+插件”的设计模式,复用性强,易于维护和扩展。

参考文献

[1]Jasmin Blanchette,Mark Summerfield.C++ G UI Qt 4编程(第二版)[M].北京:电子工业出版社.2011:15.

[2]王光平.OO软件总线研究[J].计算机工程与应用,2000,36(3):39-40.

[3]刘毅,陈慧蓉,荣钢.Plug-in结构应用程序设计[J].计算机应用,2002,22(4):9-14.

[4]刘佳,王丽宏,孙克宁.插件技术在控制系统中的应用[J].计算机应用研究,2004:117-119.

猜你喜欢

体系结构插件
自编插件完善App Inventor与乐高机器人通信
足球机器人并行行为组合控制体系结构分析
基于OSGi的军用指挥软件插件机制研究
基于最优树的网络化作战装备体系结构优化
基于jQUerY的自定义插件开发
基于粒计算的武器装备体系结构超网络模型
作战体系结构稳定性突变分析
基于DODAF的装备体系结构设计
基于框架-插件架构的军事仿真系统设计方法研究
基于云计算的航天器控制系统自组织体系结构