孔庆玲,韩 续,张 莹,张 玲,李 苒,林兴隆
(中国电子科技集团公司第五十四研究所,河北 石家庄 050081)
基于插件的星地资源管理系统的设计与实现
孔庆玲,韩 续,张 莹,张 玲,李 苒,林兴隆
(中国电子科技集团公司第五十四研究所,河北 石家庄 050081)
通过总结当前星地资源管理系统的发展现状与趋势,针对当前星地资源管理系统开发设计中存在的研制周期短、扩展性要求强等问题,并结合其发展方向,基于插件技术建立星地资源管理系统,将系统开发分为系统框架开发、星地资源数据库建立和功能插件开发3部分。提出星地资源管理系统开发的思路是在新技术支持下,对星地资源管理系统开发方式的探索与尝试,是对传统开发方式的改进。
插件;软件框架;星地资源;卫星任务管控;维护模型
AbstractThis paper summarizes the current status and trends of the development of satellite-station resource management system,and points out the current problems existing in the design and development.Based on the plug-in technology,the paper proposes a development method for the satellite-station resource management system,which is divided into three parts,i.e.,the framework,the satellite and ground resources database,and the functional plug-in.The proposed method is a new way of development supported by new technologies,and also an improvement for the traditional development mode.
Keywordsplug-in;software framework;satellite-station resource;satellite mission management and control;maintenance model
随着我国航天事业的发展,越来越多不同种类(光学、SAR、多光谱和高光谱)、不同分辨率(亚米级、米级和10米级)和不同用途(气象、国土、环保和减灾等)的卫星发射升空,对我国的国民经济建设发挥着越来越大的作用。为适应卫星应用的不断发展,卫星任务管控系统的建设和研制需要不断地进行升级改造。
作为卫星任务管控的基础支撑系统,星地资源管理系统为卫星任务管控运行提供数据支持,在不断地改造和扩建过程中,面临着研制周期短、扩展性要求强等问题。
本文研究利用.Net Framework4.0和iOpenworks提供的多种方法和技术实现基于插件技术的系统框架,在无需重编译系统的情况下,实现对插件的动态加载、移除等管理工作[1],为系统的更新、功能的扩展提供了一种有效的机制[2]。在星地资源数据库建设方面,研究从已有的星地资源管理系统中提取通用的星地资源元数据,基于通用的元数据建立星地资源数据库。
1.1 软件框架
软件框架一般由基础平台、框架主体、构件库、扩展接口和文档5部分组成[3]。
目前普遍认为软件框架开发包括面向框架的开发和基于框架的开发2个阶段[4],前者实质是框架本身的研制阶段,后者则是框架的应用过程,软件框架就是在这2个阶段的交替中不断丰富、完善。
软件框架开发分为正向开发和逆向开发2种。前者是在没有或应用较少的前提下,通过领域分析和设计逐步建立起来的[5];而后者更普遍一些,是在存在大量遗产系统或仍在使用系统的基础上,进行框架提取而建立的具有领域通用性的软件框架[6]。星地资源管理系统的工作属于后者。
1.2 插件技术
为了提高星地资源管理系统软件复用性、模块化、封装性和可扩展性,使软件不同功能模块之间能够无缝集成,同时降低软件开发成本,采用插件平台技术进行软件开发。
1.2.1 插件技术特点
插件技术特点如下:
① 易修改,可维护性强,插件与宿主程序通过接口通信,可以方便地加载与卸载[7];
② 结构清晰,易于理解,各个模块相互独立,插件之间也相互独立;
③ 结构容易调整,可以随时增加或删除插件;
④ 可移植性强,重用粒度大,可以在软件开发过程中修改应用程序;
⑤ 插件之间的耦合度低,插件是通过与宿主程序通信来实现插件与插件,插件与宿主程序之间的通信[8];
⑥ 开发门槛低,用户可以按照规范自己开发满足需求的插件,也可以委派第三方软件供应商开发。
1.2.2 插件技术原理
插件能够动态地插入到系统中,多个插件集成在一起完成复杂业务功能的处理,是插件系统中的重要组成部分[9]。插件需要给可执行程序提供调用接口,当执行程序需要调用插件的时候能够找到这个接口,完成与可执行程序的通信与交互,并且使得可执行程序能够得到插件的相关信息[10]。
插件系统的接口是使得可执行程序和插件能够相互结合工作的重要组成部分[11],通过接口来建立一套相互协作的规则和协议,使程序协调工作[12]。插件接口是一个逻辑接口[13],在可执行程序中完成一部分,插件中完成另外一部分,通过插件接口来实现插件的加载、调用、卸载,以及可执行程序与插件、插件与插件之间的交互[14]。
2.1 能力分析
星地资源管理系统实现卫星、地面站和测控等资源信息统一存储管理,为指挥调度、任务规划、计划制定、状态监视和载荷控制等业务运行提供星地资源数据。
星地资源管理系统功能组成如图1所示,其中星地资源数据设计实现星地资源数据定义,星地资源维护根据星地资源定义实现星地资源数据的增、删、改等维护操作,星地资源数据访问服务实现星地资源数据查询、检索,可由其他系统根据需要定制实现,本文重点讨论星地资源数据设计和星地资源维护。
图1 星地资源管理系统功能组成
2.2 现有系统存在的问题
现有星地资源管理系统的数据定义因项目而异,没有进行规范化管理,软件界面设计以及编码实现又与数据库模型绑定,数据库模型发生变化,需要进行相应的编码修改才能适应,导致每个项目都需要开发星地资源管理相关软件,但是每套星地资源管理软件的产品化程度都不高,持续发展空间很小,可靠性、可扩展性差,对于星地资源数据的访问也很难规范化。
为了提高项目的开发效率以及软件的可靠性[15],需要遵循统一的数据标准,能根据星地资源的具体信息特质、外在数据特征、资源使用约束及可视化要求,基于通用的资源管理框架,个性化扩展定制和管理维护各种类资源信息,为业务运行提供数据支持。
3.1 系统组成
星地资源管理系统包括星地资源数据库、星地资源维护模型、星地资源管理框架和星地资源属性编辑插件。
3.1.1 星地资源数据库
星地资源数据库为星地资源管理系统提供数据支持,采用元数据建立星地资源数据库,以获得标准化的数据记录,为各功能插件提供统一的底层数据,为数据共享提供规范的数据记录。
3.1.2 星地资源维护模型
根据星地资源数据维护特点,设计维护模型,包括资源类型划分和资源属性划分,星地资源管理框架根据星地资源维护模型动态构造星地资源树。
3.1.3 星地资源管理框架
星地资源管理系统采用插件技术构建系统框架,定义插件与框架之间的接口,在划分系统功能的基础上,将各部分功能以插件的形式实现,插件与框架之间通过定义的接口通信。通过星地资源维护模型实现对插件的动态加载、更新和删除等管理工作。
3.1.4 星地资源属性编辑插件
为每类资源的每个属性提供独立的维护界面,以独立的插件形式实现,集成到星地资源管理框架,实现星地资源属性显示和编辑。
3.2 星地资源数据库设计
对星地资源数据进行综合、归纳与抽象,形成星地资源数据库模型,包括卫星资源、地面站资源、测控资源模型等,其中卫星资源模型如图2所示。
图2 卫星资源模型示例
3.3 星地资源维护模型设计
不同类型的星地资源之间耦合关系较弱,每类资源数据是分层次的,星地资源数据的操作一般包括增加、删除、修改和查询,据此可以设计星地资源维护模型,用于配置当前维护的资源类型和每类资源的属性。
星地资源维护模型示例如图3所示,模型第1层定义了星地资源的类型及这类资源对应的数据库主表信息;第2层定义了某类资源的属性及实现该属性信息的插件名称。
图3 星地资源管理维护模型示例
3.4 星地资源管理框架设计
星地资源管理框架界面示例如图4所示。
图4 星地资源管理框架界面示例
左侧是星地资源树,框架读取星地资源维护模型的第1层信息,获取该类资源对应的数据库主表以及主键信息,启动时根据配置动态读取星地资源信息构造星地资源树。通过增加和删除操作进行维护,为实现通用的资源增加操作,要求每类资源对应的主表除主键外,其他非空属性都应有默认值。为实现通用的资源删除操作,要求每类资源的子表都有级联删除属性。选择某类资源的某一条资源信息,属性树显示该类资源属性信息,对应星地资源维护模型的第2层,最右侧的面板缺省显示第1个属性的详细信息,同时可以对属性信息进行编辑,每个属性信息对应一个插件实现。
3.5 资源属性编辑插件开发
资源属性编辑插件为每类资源的每个属性提供独立的维护界面,以独立的插件形式实现,集成到星地资源管理框架,获取星地资源标识,根据星地资源标识获取星地资源属性信息,实现星地资源属性显示和编辑。
星地资源管理框架声明接口函数:UserControl GetRMDetailInfoPanel(string resourceCode);资源属性编辑插件继承UserControl基类,在构造函数中,调用GetRMDetailInfoPanel(string resource ode)函数,获取资源对应的主键,代码示例如图5所示,根据主键查询数据库获取资源属性信息并进行显示和编辑。
图5 星地资源属性编辑插件开发示例
资源属性编辑插件开发完成后,部署到指定的目录,配置星地资源维护模型,重新启动软件,完成与星地资源管理框架的集成。
4.1 增加资源
如果需要增加某类资源的维护,需要创建相应数据库表,确定资源包含的属性分类,按照约定的接口进行资源属性编辑插件开发、部署,最后在星地资源维护模型中增加相应的配置项,重新启动软件将显示新增的资源类型及资源列表。
4.2 删除资源
如果某类资源不需要维护,去掉星地资源维护模型相应的资源类型节点,重新启动软件将不再显示去掉的资源类型及资源列表。
4.3 修改资源
修改某类资源包括增加资源属性和删除资源属性2种情况。
4.3.1 增加资源属性
如果某类资源的某些属性不需要维护,可以通过修改资源维护模型去掉相应的属性节点,重新启动软件,选择该类资源的某一资源,将不再显示去掉的资源属性。
4.3.2 删除资源属性
如果某类资源需要增加属性的维护,需要创建相应数据库表,按照约定的接口进行资源属性编辑插件开发、部署,最后在星地资源维护模型中增加相应的配置项,重新启动软件,选择该类中的某一资源,将显示新增的资源属性。
星地资源管理与星地资源维护模型绑定,维护模型与数据库模型绑定,提供人机界面支持开发人员进行模型设计;设计星地资源管理框架根据维护模型动态构建星地资源管理软件界面,进行星地资源数据增、删、改、查操作,这种设计模式降低了软件的复杂性和各类资源属性的耦合性,便于分工合作,大大提高了软件开发效率,具有很强的通用性和扩展性。
[1] 梁培明.基于构件的软件框架研究与实现[D].大连:大连理工大学,2007.
[2] 吴毅坚,赵文耘.特定领域软件框架的提取方法研究[J].电子学报,2003,31(12A):2151-2153.
[3] 彭鑫,赵文耘.一种基于类间关系动态分析的领域框架和构件提取方法[J].小型微型计算机系统,2007,28(11):1928-1931.[4] 杨芙清.软件复用及相关技术[J].计算机科学,1999,26(5):1-4.
[5] 温昱.软件架构设计[M].北京:电子工业出版社,2007.
[6] 潘俊俊,徐小良.科技计划项目管理系统的领域框架研究[J].计算机工程,2010,36(15):274-279.
[7] GEEBELEN Kristof,KULIKOWSKI Eryk,TRUYEN Eddy,et al.A MVC Framework for Policy-Based Adaptation of Workflow Processes:a Case Study on Confidentiality[C]∥2010 IEEE International Conference on Web Services, 2010:401-408.
[8] 李锦春.WEB软件开发框架的研究与实践[D].武汉:武汉大学,2004.
[9] 鲍亮,陈平.基于插件的异构数据集成[J].计算机工程,2006(20):86-88.
[10] 李延春.软件插件技术的原理与实现[J].计算机系统应用,2003(7):24-26.
[11] 张进军,张继勇,薛莱文.一种基于插件的软件体系结构[J].合肥工业大学学报(自然科学版),2005,28(4):398-401.
[12] 陈方明,陈奇.基于插件思想的可重用软件设计与实现[J].计算机工程与设计,2005(26):172-173.
[13] 张学庆,马万权,高朝晖,等.卫星管理控制体系结构研究[J].无线电工程,2006,36(5):36-38.
[14] 许宏君.基于软件复用技术的面向特定领域的软件框架研究[D].北京:中国地质大学,2006.
[15] 冯新扬,崔凯,沈建京.面向插件的应用框架研究与实现[J].计算机工程与应用,2009(10):89-91.
[16] 王映辉.软件构件与体系结构——原理、方法与技术[M].北京:机械工业出版社,2009.
DesignandImplementationofSatellite-stationResourceManagementSystemBasedonPlug-in
KONG Qing-ling,HAN Xu,ZHANG Ying,ZHANG Ling,LI Ran,LIN Xing-long
(The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China)
TP391
A
1003-3106(2017)11-0027-04
孔庆玲女,(1977—),高级工程师。主要研究方向:航天地面应用。
10.3969/j.issn.1003-3106.2017.11.06
孔庆玲,韩续,张莹,等.基于插件的星地资源管理系统的设计与实现[J].无线电工程,2017,47(11):27-30,58.[KONG Qingling,HAN Xu,ZHANG Ying,et al.Design and Implementation of Satellite-station Resource Management System Based on Plug-in[J].Radio Engineering,2017,47(11):27-30,58.]
2017-06-16
河北省博士后科学基金重点资助项目(B2015005003)。
韩续男,(1984—),工程师。主要研究方向:航天地面应用。