基于插件的航天器测试总控软件系统设计
2015-02-27余晟向永清宋宏江
余晟 向永清 宋宏江
(北京空间飞行器总体设计部,北京 100094)
基于插件的航天器测试总控软件系统设计
余晟 向永清 宋宏江
(北京空间飞行器总体设计部,北京 100094)
目前,我国测试总控软件系统存在总控核心软件版本较老、维护和升级困难、系统开放性不足、缺少统一的标准和规范等问题,文章提出了一种基于Java OSGi标准的插件化总控软件系统(PMCS),对PMCS软件的体系架构设计和技术路线进行了详细介绍。PMCS基于地面监视与控制模型(MCM),采用动态可配置的插件化体系结构,并将功能模块划分为核心模块和扩展模块,核心模块可在不同任务间通用,扩展模块可以根据需要进行灵活的部署和修改。经验证,文章提出的技术路线切实可行,可为我国地面总控软件系统的研发提供参考。
航天器测试;基于插件;总控软件;系统架构
1 引言
航天器地面测试系统由前端测试设备和总控测试设备组成[1]。航天器总控测试设备用于航天器整星电性能测试,是测试过程中的指挥监控管理中心。航天器测试总控软件系统是航天器地面总控设备的“大脑”,负责在地面测试过程中对航天器、地面测试设备以及数据流进行统一的控制与管理,使用周期涵盖航天器从组装到发射的各个阶段。测试总控软件系统的主要功能包括建立航天器测试基础信息库,建立航天器判读知识库,完成航天器测试期间遥测数据的接收、处理、显示,提供数据的显示、查询和分析功能,对遥控指令发送进行管理和控制,实现对航天器的状态设置等等[2]。
目前,具有代表性的地面总控软件系统包括美国国家航天局(NASA)的GMSEC系统[3]和欧洲航天局(ESA)的SCOS-2000[4-5]系统。GMSEC系统定义了一套开发的框架和协议,任何符合此标准协议的软件都可以为其服务。与GMSEC系统不同,SCOS-2000系统是一套专用软件,采用服务器/客户端结构,服务器主要负责数据处理工作,客户端则负责任务管理和界面显示工作。我国对地面总控软件系统的研究起步较晚。20世纪90年代初,我国引入ESA的ETOL总控系统,ETOL是类似SCOS-2000系统的服务器/客户端软件,缺点是软件专用化程度非常高,修改软件用于不同型号测试任务的成本很高,随着我国航天器任务的日益增多,ETOL系统无法满足研制需求。20世纪初,我国组织技术力量成功研制了国产测试总控软件系统卫星测试平台(Satellite Testing Suite,STS)[6],STS系统兼具GMSEC和SCOS-2000系统的特点,采用了以主测试处理机(Main Testing Processer,MTP)软件为核心,基于标准通信协议的分布式软件体系结构,最新版本STS3000具备自动化测试、集成信息管理、自动判读等多项功能,应用广泛,大幅提升了我国卫星测试效率。
随着以深空探测器为代表的在研航天器的功能变得越来越复杂,现有的STS系统存在一些不足之处:①STS系统以MTP软件为核心,MTP软件使用C语言开发,基于较老版本的Linux系统,专用程度高,对不同航天器都需要进行适应性修改和升级。软件版本不统一,可靠性和稳定性存在一些问题,且维护和再升级工作比较困难。②STS系统软件体系开放性不足,增加对新的通信协议的支持比较困难,不利于新技术的兼容和引入。③现有总控软件缺少统一的标准和规范,不同部门和公司开发的软件难以共享,导致不必要的重复开发。
为了解决这些问题,文章提出了一种基于Java开放服务网关协议(Open Service Gateway Initiative,OSGi)标准[7-8]开发的地面插件化总控软件系统(Plug-in Based Monitoring and Control Software,PMCS)。OSGi标准是由OSGi联盟制定的一种基于Java语言的动态模块化软件框架。OSGi将每个软件模块封装为独立的插件(Bundles),每个插件可以进行动态的加载和卸载而不影响其他插件的运行。基于OSGi标准开发的软件具有良好的模块化、并行化和跨平台的特点,适合构建大型分布式应用软件系统。在PMCS系统中,为适应不同航天器测试任务的需要,插件分为核心功能插件和可扩展功能插件。其中,核心功能插件涵盖了软件的基础框架和各个型号、阶段通用的总控功能。可扩展功能插件则根据每个任务具体的需求进行自定义。本文首先对总控系统MCM模型进行介绍,然后详细介绍PMCS系统的软件架构和拟采用的技术路线,最后加以总结并对未来工作进行展望。
2 系统模型
航天器监视与控制模型(Monitoring and Control Model,MCM)是对航天器系统从监视与控制的角度建立的模型,模型中包含了系统中与监视与控制相关的所有功能(如参数处理、活动调度、事件处理等)和所有数据的处理接口,MCM对地面总控软件系统的功能进行完整的逻辑抽象。MCM是欧洲合作航天标准(European Cooperation for Space Standard,ECSS)中E-ST-70-31C[9]中提出的航天器系统模型(Spacecraft System Model,SSM)的衍生。在MCM中,整个航天器系统根据监视与控制功能被分解为不同的功能模块,这些功能模块称为系统元素(System Element,SE)。图1是航天器MCM模型示例图。
在MCM模型中,交付用户的卫星系统产品由分层化的系统元素组成。将航天器项目中星上与地面系统中与卫星监视与控制相关的部分称之为航天器总控系统。如图1所示,航天器总控系统可以划分为星上监视与控制系统和地面总控系统,地面总控系统又可以划分为专用测试设备和总控软件系统等。子层系统元素是上层系统元素的进一步分解。MCM模型中的系统元素可以是分系统、设备、硬件产品或软件产品等,而且并不一定与实际的物理对象相对应,系统元素对应的是具体的数据结构,用于将与总控活动相关的信息组织成为一个完整的分层结构。
图1 航天器项目MCM模型示例Fig.1 Example of the MCM for a spacecraft project
在MCM模型中,与总控活动相关的所有信息被归为3类,活动、时间和报告数据[6],每个系统元素由这3类信息定义。以下对这3类信息进行介绍。
(1)活动:指总控系统支持的功能。这一功能既可以是在地面总控系统中直接执行的功能,也可以是总控系统通过发送指令在星上或者其他分系统专用设备上执行的功能。
(2)事件:指整个系统中满足预先设置条件的某一状态或多个状态的改变。事件用于触发活动的执行。
(3)报告数据:指系统元素在运行过程中产生的信息。报告数据可以用于判断该系统元素的状态,也可以提供给其他系统元素作为输入。
MCM模型中,通过活动、事件和报告数据可以完全描述一个系统元素在总控系统中所完成的功能。此外,这3类信息又进一步被分为静态和动态两类。静态信息包含在航天器的设计和开发阶段产生的所有总控相关信息的数据,这一部分信息在具体总控活动中是不会发生改变的,所以又可称为静态知识库。动态信息则是在航天器的AIT和在轨控制阶段产生的所有总控相关信息,具体总控活动中是不断变化的,因此又可以称为总控系统状态。MCM模型将行为和数据,通用功能和专用功能,静态信息和动态信息在逻辑上进行分离
MCM模型覆盖星上和地面系统,与具体的型号与任务无关。目前我国对整星监视与控制系统尚未有统一的标准化模型,本文通过建立MCM模型,一方面可以理清地面总控软件系统功能与星上总控系统功能之间的接口关系,另一方面有利于指导通用模块化的地面总控软件系统的设计工作。
3 体系架构
PMCS软件系统用于航天器地面测试过程,负责在地面测试过程中对所有星上和地面设备进行设置、管理和控制的工作,是航天器地面测试系统的核心组成部分。PMCS软件系统主要功能包括遥测数据解析、判读和显示,遥控指令编码、检验、发送和序列管理,进行测试数据的分发、归档、入库和查询,进行测试设备统筹管理以及向测试人员提供图形交互界面等。
PMCS软件系统的核心设计思想是采用插件化的系统结构,插件间通过服务总线和消息总线进行通信,整体软件系统分为核心功能部分和扩展功能部分,在保证系统通用性的同时尽量增加系统的可扩展性。PMCS软件系统采用的关键技术包括:①采用OSGi开发框架进行插件化设计,OSGi是目前基于Java的动态模块化软件实现的主流标准,PMCS软件系统均由插件构成,插件相互独立,插件的开发者只需要知道其他插件提供的服务接口而不必关心其服务的具体实现,非常适合分布式的开发工作。②插件间通过服务总线进行插件间代码调用,插件通过向服务总线发布服务来向外提供接口,通过订阅服务来调用接口。服务总线机制由OSGi框架提供,服务的具体实现对其他插件来说是不可见的。插件间通过消息总线进行数据通信,插件向消息总线发布数据,通过订阅数据来接收数据。插件与服务总线和消息总线的接口进行标准化,实现接口与具体实现的分离。③将整个系统划分为核心功能插件集和扩展功能插件集,其中核心功能插件实现基础通用功能,扩展功能插件实现某个具体任务的专用功能。核心功能插件在不同任务间可以直接移植,不需要进行修改,而扩展部分向用户提供参考。系统由许多独立的功能模块组成,对模块的内部修改不会影响其他模块的功能。这样可以很大地增强系统的通用性和可移植性。
从整体上看,PMCS软件的核心功能部分包括基础功能层、数据管理层和总控核心功能层,扩展功能部分包括协议转换层、准备工具层和用户交互层。这些层之间的关系如图2所示。下面对每个层包含的主要功能插件以及这些插件之间的关系进行简要的介绍。
图2 PMCS软件体系分层结构示意图Fig.2 Layer architecture of the PMCS system
基础功能层中的插件为其他插件提供基础功能库,这些功能通过服务的方式向外发布。基础功能层包括的主要插件有:①用户管理插件:提供接入总控软件系统的用户身份的认证服务,是重要的安全机制;②配置管理插件:为整个系统提供统一的配置管理服务,保存系统配置项,其他插件可以通过获取配置管理插件的服务来进行配置文件管理操作;③消息服务插件:提供软件内部进行数据通信的标准服务接口,主要功能包括实现不同格式数据的序列化(serialization)通信。④日志管理插件:为整个系统提供日志服务。
数据管理层中的插件主要为上层总控功能提供与数据相关的服务。数据管理层包括的主要插件有:①数据结构定义模块:定义总控有关的重要数据结构;②数据库服务接口插件:向上层提供封装好的数据库服务,隐藏具体的数据库信息;③数据库服务实现插件:实现对某个具体的数据库软件的操作功能。
总控功能层中的插件提供总控系统核心业务逻辑的具体实现。总控功能层中包括的主要插件有:①遥测数据处理插件,负责从遥测前端或归档数据库中获取遥测数据并进行处理;②遥控指令管理插件,负责获取遥控指令信息,并向遥控前端发送遥控指令;③指令序列管理插件,提供管理指令序列的服务;④测试数据归档插件,提供将测试数据保存于归档数据库的服务;⑤测试数据查询插件,提供从归档数据库中查询历史测试数据的服务。
以上核心功能层包含的模块在设计时需要满足通用性的要求,插件提供的服务接口应在设计过程中加以确定,服务的内部实现尽量与某个具体任务无关,在不同任务的使用中尽量减少对核心功能插件代码的修改。核心功能层上是扩展功能层,扩展功能插件的内容可以根据任务的具体需要进行适应性修改。扩展功能层包括协议转换层、准备工具层和用户工具层。
协议转换层的主要功能是进行与具体任务相关的数据格式的转换与解析,包括遥控指令、遥测数据、设备管理数据以及需要与外部软件通信的数据。该层包含的主要插件有:①遥测数据接收插件,从遥测前端接收遥测数据并将原始数据转换为具体工程值;②遥控指令发送插件,封装指令内容并发送给遥控前端;③SCOE管理插件,负责进行SCOE设备的管理;④外部通信协议插件,提供发送和接收负责外部通信协议的数据的服务。
准备工具层指在某项具体任务的准备阶段对软件进行有关设置的工具。该层包含的主要插件有:①数据规则设置工具,为用户提供设置遥测数据的解析和判断规则、指令封装和校验规则等工具;②软件配置管理工具,为用户提供软件配置文件的编辑工具。
用户交互层的主要功能是在测试过程中向测试人员提供交互的图形界面。图3表示PMCS软件的体系架构。
PMCS软件系统是地面测试系统的核心组成部分,基于PMCS软件搭建的地面测试系统总体结构如图4所示。
图3 PMCS软件系统体系架构图Fig 3 Software architecture of the PMCS system
图4 基于PMCS系统的航天器地面总控测试系统Fig.4 An illustration of a ground testing monitoring and control system based on PMCS
4 技术路线
PMCS软件基于开源的Java OSGi技术实现。Java OSGi技术是一种基于Java语言的软件动态模块化技术,OSGi的技术规范由Adobe、IBM、Oracle、SAP、Red Hat和Siemens等公司组成的OSGi联盟共同制定。最初OSGi规范只关注于嵌入式领域,前3个版本的OSGi规范主要满足诸如机顶盒、服务网关、手机等应用的模块化需求,从第4个版本开始,OSGi将主要关注点转向了Java标准版(Standard Edition,SE)和企业版(Enterprise Edition,EE)领域,并在这些领域中获得了很大的发展,成为Java平台事实上的模块化规范。采用Java OSGi技术实现的软件是由一定数量的被称为插件(Bundle)的代码单元构成,OSGi技术框架主要提供了插件的执行环境、生命周期管理和依赖关系管理等功能,同时OSGi规范还提供了很多的OSGi标准服务,如事件管理、日志管理、配置管理和HTTP服务等等,可以满足多种多样的开发场景的需要。
实现了Java OSGi技术规范的知名开发框架有Eclipse Equinox、Apache Felix等。与传统的Spring、EJB、Hibernate等企业级Java软件框架相比,OSGi技术的目标是从底层提供软件模块化的支持。采用OSGi技术的优点包括:①提供标准的软件动态模块化解决方案,开发人员不需要考虑软件模块化的实现细节,只需专注于具体的业务逻辑的实现,模块生存周期以及模块间依赖关系的管理只需要交给OSGi运行框架去管理;②系统可裁剪,开发人员在不同项目里可根据需要的选择合适的插件来组成新的系统,因此核心插件具有很好的可复用性,扩展插件可以灵活配置;③支持基于插件的版本管理,可以对单个插件发布新的版本,降低了软件升级和测试的难度;④体系结构开放,可与其他Java EE框架(如Spring、EJB、Hibernate等)结合开发功能强大的软件系统。图5显示了在PMCS软件系统中拟采用的Java和OSGi规范的开源技术框架。
图5 PMCS软件系统技术路线示意图Fig.5 Technical roadmap of the PMCS system
5 结束语
本文介绍航天器总控功能的MCM模型,提出了基于该模型PMCS软件系统的设计方案。PMCS的核心设计思想包括采用OSGi技术规范进行软件的模块化设计和将整个系统划分为核心功能插件集和扩展功能插件集,其中内核模块在不同任务间通用,扩展模块根据具体任务需要修改。本文对PMCS软件系统的功能需求、体系架构以及技术路线进行了详细的介绍。未来将在卫星测试工作中验证软件的有效性,并结合开放式的开发框架探索数字化虚拟测试、大数据智能化测试等前沿发展方向。
(References)
[1]王庆成.航天器电测技术[M].北京:中国科学技术出版社,2007 Wang Qingcheng.Electrical test technology of spacecraft[M].Beijing:China Science and Technology Press, 2007(in Chinese)
[2]朱维宝,孙波,李砥擎.航天器综合测试系统设计[J].计算机测量与控制,2009,17(8):1457-1466 Zhu Weibao,Sun Bo,Li Diqing.Design of spacecraft overall checkout system[J].Computer Measurement& Control,2009,17(8):1457-1466(in Chinese)
[3]Danford S S,Bristow,John O B,et al,A successful component architecture for interoperable and evolvable ground data systems[R].USA:Goddard Space Flight Center,2006
[4]张晓光,魏晨曦,焦文.欧洲空间局第三代任务控制系统—SCOS2000[C].航天测控技术研讨会.北京:中国宇航学会,2005 Zhang Xiaoguang,Wei Chenxi,Jiao Wen.The third generation mission control system of ESA-SCOS200[C].The Seminar of Space Measure and Control Technology.Beijing:Chinese Society of Astronautics,2005(in Chinese)
[5]Matthew C,Giuseppe C,Gianluca M.et al.SCOS-2000 release 5:a milestone in the evolution of the MCSInfrastructure at ESOC[C].SpaceOps 2006 Conference.Paris:ESA,2006
[6]孙亚楠,涂歆滢,向开恒,等.航天器仿真与测试一体化系统[J].航天器工程,2009,18(1):73-78 Sun Yanan,Tu Xinying,Xiang Kaihen,et al.Integrated system for spacecraft simulation and testing[J]. Spacecraft Engineering,2009,18(1):73-78(in Chinese)
[7]OSGi Alliance.OSGi release 6 specification[S].San Ramon:OSGi Alliance,2014
[8]Pecchioli M.Objectives and concepts of the european ground systems common core(EGS-CC)[C]//Simulation and EGSE Facilities for Space Programmes.Noordwijk.Paris:ESA,2012
[9]ESA.ECSS-E-ST-70-31C:Ground systems and operations-monitoring and control data definition[S].Paris:ESA,2008
(编辑:李多)
Design of Software System Based on Plug-ins for Monitoring and Control in Spacecraft Testing
YU Sheng XIANG Yongqing SONG Hongjiang
(Beijing Institute of Spacecraft System Engineering,Beijing 100094,China)
The current monitoring and control software for spacecraft testing in our country has several drawbacks,such as old hardware and software platform,high complexity for maintenance and upgrade,closed software framework and lack of unified software specifications and standards. This paper proposes a design of a plug-in based monitoring and control software(PMCS)system,and introduces the architecture and technologies used in PMCS in details.PMCS is based on the monitoring and control model(MCM)of the ground monitoring and control system and consists of many dynamic and reconfigurable plug-ins The software modules of PMCS can be classified into kernel modules and reference modules.The kernel modules construct the common core among different tasks and the reference modules can be modified to meet specified needs.Through verification,the technique of PMCS is applicable,and PMCS can be used as a reference for the research and development of ground monitoring and control software in our country.
spacecraft testing;plug-in based;monitoring and control software;system architecture
V557.1
:ADOI:10.3969/j.issn.1673-8748.2015.05.018
2015-03-31;
:2015-08-27
余晟,男,博士,工程师,从事航天器综合测试设计工作。Email:yusheng00@hotmail.com。