CN113867737A - 一种航天测控软件部署方法及装置 - Google Patents

一种航天测控软件部署方法及装置 Download PDF

Info

Publication number
CN113867737A
CN113867737A CN202111141184.XA CN202111141184A CN113867737A CN 113867737 A CN113867737 A CN 113867737A CN 202111141184 A CN202111141184 A CN 202111141184A CN 113867737 A CN113867737 A CN 113867737A
Authority
CN
China
Prior art keywords
deployment
control software
measurement
software
dependency relationship
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111141184.XA
Other languages
English (en)
Inventor
邓颖丽
刘晓辉
苗毅
刘志芳
徐策
王腾
梁猛
孙野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unit 63920 Of Pla
Original Assignee
Unit 63920 Of Pla
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Unit 63920 Of Pla filed Critical Unit 63920 Of Pla
Priority to CN202111141184.XA priority Critical patent/CN113867737A/zh
Publication of CN113867737A publication Critical patent/CN113867737A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本申请提供一种航天测控软件部署方法及装置,涉及航天测控领域,所述方法包括:根据各航天测控软件的分类对所述各航天测控软件进行元数据提取;根据提取到的元数据对所述各航天测控软件进行依赖关系分析,得到部署依赖关系树;根据提取到的元数据、所述部署依赖关系树进行软件部署。本申请能够实现大型航天测控软件的快速部署,提高对高密度航天测控软件系统的快速响应能力。

Description

一种航天测控软件部署方法及装置
技术领域
本申请涉及航天测控领域,具体是一种航天测控软件部署方法及装置。
背景技术
随着我国航天事业的蓬勃发展,包括载人航天、探月工程、深空探测在内的航天任务难度和执行密度都不断增大。对航天任务的地面控制中心而言,在高密度航天任务准备和实施的形势下,软件工程过程面临更大的挑战:
(1)任务准备时间短,多型号任务准备和执行交叉进行、并行开展。
(2)软件规模大、安全关键等级高。
(3)软件需求变更频繁,在任务准备阶段后期集中出现。
现有的航天任务软件的部署工作一般采用人工的方式进行。从软件编码实现到软件运行首先需要将代码提交到代码库,然后经过构建、测试、部署等步骤才能运行,从人员上看,中间还可能涉及开发、配置管理、测试、运维等多个团队之间的交互,从环境迁移的角度看,涉及开发环境、版本控制系统、编译工作区、测试环境、任务环境等多个计算机主机之间的转移。如果上述操作都采用人工的操作方式,对于包含数百个软件部件的大型信息系统软件来说,每次构建和部署软件都会付出大量的工作,而且构建过程和状态的确认工作也非常繁琐。
发明内容
针对现有技术中的问题,本申请提供一种航天测控软件部署方法及装置,能够实现大型航天测控软件的快速部署,提高对高密度航天测控软件系统的快速响应能力。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种航天测控软件部署方法,包括:
根据各航天测控软件的分类对所述各航天测控软件进行元数据提取;
根据提取到的元数据对所述各航天测控软件进行依赖关系分析,得到部署依赖关系树;
根据提取到的元数据、所述部署依赖关系树进行软件部署。
进一步地,所述根据各航天测控软件的分类对所述各航天测控软件进行元数据提取,包括:
根据各航天测控软件的基础特征数据及所述分类生成航天测控软件的拓扑结构图;
根据所述基础特征数据及所述拓扑结构图构建各航天测控软件的部署描述信息;
根据所述部署描述信息进行元数据提取。
进一步地,所述根据提取到的元数据对所述各航天测控软件进行依赖关系分析,得到部署依赖关系树,包括:
根据所述元数据建立各航天测控软件中各部分之间的依赖关系链表;
遍历所述依赖关系链表中的各部分,得到所述各部分的输出状态并确定所述依赖关系链表中根节点所对应的部分;
根据所述输出状态及根节点对应部分的位置生成各部分的部署依赖关系子树;
对所述部署依赖关系子树进行组合,得到所述各航天测控软件的部署依赖关系树。
进一步地,所述根据提取到的元数据、所述部署依赖关系树进行软件部署,包括:
根据所述元数据确定所述各部分的流水线类型;
利用预先构建的部署生成代码及各流水线作业阶段的关键字生成所述各部分的流水线代码;
根据所述部署依赖关系树中各部分的部署依赖关系,运行所述各部分的流水线代码,完成软件部署。
第二方面,本申请提供一种航天测控软件部署装置,包括:
数据提取单元,用于根据各航天测控软件的分类对所述各航天测控软件进行元数据提取;
依赖关系建立单元,用于根据提取到的元数据对所述各航天测控软件进行依赖关系分析,得到部署依赖关系树;
软件部署单元,用于根据提取到的元数据、所述部署依赖关系树进行软件部署。
进一步地,所述数据提取单元,包括:
拓扑结构生成模块,用于根据各航天测控软件的基础特征数据及所述分类生成航天测控软件的拓扑结构图;
描述信息构建模块,用于根据所述基础特征数据及所述拓扑结构图构建各航天测控软件的部署描述信息;
数据提取模块,用于根据所述部署描述信息进行元数据提取。
进一步地,所述依赖关系建立单元,包括:
关系链表建立模块,用于根据所述元数据建立各航天测控软件中各部分之间的依赖关系链表;
状态节点模块,用于遍历所述依赖关系链表中的各部分,得到所述各部分的输出状态并确定所述依赖关系链表中根节点所对应的部分;
关系子树建立模块,用于根据所述输出状态及根节点对应部分的位置生成各部分的部署依赖关系子树;
依赖关系建立模块,用于对所述部署依赖关系子树进行组合,得到所述各航天测控软件的部署依赖关系树。
进一步地,所述软件部署单元,包括:
流水类型确定模块,用于根据所述元数据确定所述各部分的流水线类型;
流水代码生成模块,用于利用预先构建的部署生成代码及各流水线作业阶段的关键字生成所述各部分的流水线代码;
软件部署模块,用于根据所述部署依赖关系树中各部分的部署依赖关系,运行所述各部分的流水线代码,完成软件部署。
第三方面,本申请提供一种电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述航天测控软件部署方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述航天测控软件部署方法的步骤。
针对现有技术中的问题,本申请提供的航天测控软件部署方法及装置,能够针对航天测控软件的特点,对航天测控软件产品的部署结构进行分析,提取部件部署的元数据,进而对航天测控软件及测控软件部件之间依赖关系进行拓扑结构分析,实现大型航天测控软件的快速部署,提高对高密度航天测控软件系统的快速响应能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中航天测控软件部署方法的流程图;
图2为本申请实施例中进行元数据提取的流程图;
图3为本申请实施例中得到部署依赖关系树的流程图;
图4为本申请实施例中进行软件部署的流程图;
图5为本申请实施例中航天测控软件部署装置的结构图;
图6为本申请实施例中数据提取单元的结构图;
图7为本申请实施例中依赖关系建立单元的结构图;
图8为本申请实施例中软件部署单元的结构图;
图9为本申请实施例中的电子设备的结构示意图;
图10为本申请实施例中硬件系统示意图;
图11为本申请实施例中航天任务部署产品结构设计示意图;
图12为本申请实施例中软件产品信息数据库示意图;
图13为本申请实施例中依赖树视图和依赖顺序建立算法逻辑流程图;
图14为本申请实施例中流水线类型示意图;
图15为本申请实施例中部署代码自动生成的流程示意图;
图16为本申请实施例中部署系统的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
采用自动化部署工具进行软件部署可以在一定程度上提高软件部署的效率,但对于航天领域的大型地面测控软件而言,采用这些自动化技术仍然不能解决以下问题:
(1)大型航天测控软件自动部署的流程定义及维护工作量非常庞大,现有的部署工具多以代码的方式或以图形界面的方式来定制流水线。而对于大型航天测控软件而言,其可能包含成百上千个需定制的流水线,系统复杂度大,航天任务执行密度大,软件环境复杂,快速部署的需求极为迫切。
(2)大型航天测控软件规模庞大,结构复杂,部署流水线难以在软件系统层面上进行复用。要实现对高密度航天测控任务的支持,就需要在测控软件之间实现一定程度的复用,以快速实现部署,而现有技术难以支持大规模的复用。
(3)航天测控软件的各部件(也称部分)之间的依赖关系复杂,导致代码维护工作量大而且不够灵活。航天任务测控中心对航天测控任务及各飞行器任务都需要进行控制。这些任务的复杂性带来了软件系统及部署关系的复杂性。现有的自动化部署工具需要使用代码或图形界面的方式,为每个部件的部署流水线定制依赖关系,工作量大。在依赖关系发生变化时,还需要相应地修改代码才能反映实际的依赖关系,造成额外的工作量的产生。
基于现有技术中所存在的问题,一实施例中,参见图1,为了能够实现大型航天测控软件的快速部署,提高对高密度航天测控软件系统的快速响应能力,本申请提供一种航天测控软件部署方法,包括:
S101:根据各航天测控软件的分类对所述各航天测控软件进行元数据提取;
S102:根据提取到的元数据对所述各航天测控软件进行依赖关系分析,得到部署依赖关系树;
S103:根据提取到的元数据、所述部署依赖关系树进行软件部署。
可以理解的是,软件的持续集成、持续交付及DevOps(Development andOperations)是近年来软件工程领域所发展起来的新方法、新思想。该方法与思想提倡软件开发人员频繁对软件进行部署。从代码提交到产品交付的全过程,包括自动化编译、自动化测试及自动化部署等环节都需要自动实现。该方法与思想的主要目标是提高系统部署频率,降低产品发布的失败率,缩短故障平均修复时间。在软件开发的过程中,采用持续集成、持续交付的方法有利于在项目早期发现软件缺陷,降低软件开发风险。
为适应航天任务发展的要求,实现对高密度航天任务实施的支持,大型航天测控软件必须提高部署的时效性,实现对航天测控任务需求的快速响应。
一般情况下,大型航天测控软件系统的部署工作的硬件环境如图10所示。在各个环境中的计算机主机按照航天测控任务的进度要求灵活配置,构建部署系统可以为国产麒麟操作系统。部署工作可以使用单独的服务器来完成,软件编译链接过程中所需的环境也可以在构建部署服务器上进行配置,构建部署服务器应实时跟踪部署主机系统,以满足部署环境要求。
在交叉实施多个航天测控软件部署的过程中,首先需要用高效的方式对航天测控任务及对应的航天测控软件产品进行组织。对航天软件产品的部署结构以任务(产品)—多任务支持类型/产品套件—部件的层次进行组织和管理。
考虑到航天测控软件的具体情况以及近年来的软件工程经验,在本申请实施例中将一次任务中完成所有功能的一套软件称为一个“产品”;该软件下的所有可执行文件、库、公共头文件、初始化文件都定义为“产品部件(也称部分)”。
为了支持航天测控软件的多任务支持需求,可将航天测控软件分为以下几种类型,参见表1:
表1航天测控软件类型
Figure BDA0003283801520000061
在实际的航天测控软件系统中,上述类型的软件共同组成一个大型的软件系统,用于支持航天任务的测控工作。
对大型测控软件进行部署,首先应对软件产品进行分解。一实施例中,可以将针对某一航天测控任务的地面测控应用软件系统定义为一个任务产品。按照对多任务多目标的支持类型,将任务产品进一步分解为产品套件。从航天任务分解和复用的角度来看,可将通用性和多任务型分为一类产品套件,将单任务和单目标分为一类套件。通用性和多任务型软件的主要功能通常是为航天测控应用软件提供基础服务,如提供电文、日志、文件、数据库服务等,其复用程度较高。单任务和单目标类型软件主要面向特定的目标和飞行器。这些类型的部件针对特定的软件环境生成,不同任务之间目标的个数和软件功能差异较大。在产品套件一层,继续分解为软件部件,软件部件应不仅包含进程的可执行映像或库,还应将单独部署的配置文件、文件夹等软件制品纳入部署统一管理,这些制品统称为软件部件。上述航天测控软件的分解结构如图11所示。采用以上结构,可以最大程度地在后续的航天测控任务系统开发中,对部署工作进行复用,实现对高密度航天测控任务的快速构建与支持。
根据各航天测控软件的分类对各航天测控软件进行元数据提取,这些元数据包括但不限于描述信息、源码信息、构建信息、部署信息及依赖信息。根据提取到的元数据(尤其是元数据中的依赖信息)可以对各航天测控软件进行依赖关系分析,得到部署依赖关系树。最后,根据提取到的元数据及部署依赖关系树进行软件部署。
从上述描述可知,本申请提供的航天测控软件部署方法及装置,能够针对航天测控软件的特点,对航天测控软件产品的部署结构进行分析,提取部件部署的元数据,进而对航天测控软件及测控软件部件之间依赖关系进行拓扑结构分析,实现大型航天测控软件的快速部署,提高对高密度航天测控软件系统的快速响应能力。
一实施例中,参见图2,根据各航天测控软件的分类对所述各航天测控软件进行元数据提取,包括:
S201:根据各航天测控软件的基础特征数据及所述分类生成航天测控软件的拓扑结构图;
S202:根据所述基础特征数据及所述拓扑结构图构建各航天测控软件的部署描述信息;
S203:根据所述部署描述信息进行元数据提取。
可以理解的是,一个典型的航天测控软件部件(也称部分)的部署过程一般包含检出、构建、测试、打包、发布及交付等步骤。由于上述步骤对于每个软件部件都是特定的,因此,用于自动化实施的部署代码的规模也相当庞大。为了进一步提高效率,提高部署流水线的自动生成,需要将软件部署过程中的关键信息提取出来,作为代码自动生成工具的输入信息。
实现自动生成构建代码,首先需要对部署过程描述信息进行定义,对软件部件的属性进行结构化描述。在大型航天测控软件系统中,软件部件的部署信息不仅包含其部署主机、路径等信息,还应包含类型信息,与软件产品套件内部件共有的信息等,还可能包含部件描述信息,如所属配置项信息、子系统信息等。其中,源代码信息可以包括编码语言、编译器及版本库存放位置信息等;自动化测试相关构建信息可以包括测试用例加载信息等。在航天测控软件对应的信息处理系统中,一个软件的部署自动化所需的主要属性的业务元数据如表2所示。
表2构建部署描述信息
序号 类型 主要信息内容
1 描述信息 所属配置项、子系统
2 源码信息 编码语言、编译器、版本库存放位置信息
3 构建信息 编译器信息
4 制品信息 制品名称、类型
5 部署信息 部署主机、路径,支持多个主机和多个路径
6 测试信息 自动化测试相关构建信息,测试用例加载信息
7 依赖信息 依赖于软件部件的名称
上述信息可以完整地描述部署过程中软件的主要特征,为后续的自动化代码生成及加载提供必要的数据描述。
类似地,对于产品套件,也需要相应的业务元数据进行描述,如表3所示。
表3航天软件产品信息
Figure BDA0003283801520000081
Figure BDA0003283801520000091
根据产品的组织结构划分全部数据,将软件部件的属性分为共用信息和专用信息。根据同一产品套件内软件部件的共用信息,可以提取到产品套件的信息。这样做一方面可以节省存储空间,另一方面可以建立软件产品的层次结构,为后续建立软件部件依赖关系的拓扑结构建立基础。
从软件部署的角度来讲,对于异构且复杂的软件环境,软件部件的“部署主机”和“部署路径”属性可以支持多个主机和多个路径。
举例而言,图12所示为一个部署数据库的简单示例,主要包含产品描述表、产品部件描述表及用户信息描述表等。
从上述描述可知,本申请提供的航天测控软件部署方法能够根据各航天测控软件的分类对所述各航天测控软件进行元数据提取。
一实施例中,参见图3,根据提取到的元数据对所述各航天测控软件进行依赖关系分析,得到部署依赖关系树,包括:
S301:根据所述元数据建立各航天测控软件中各部分之间的依赖关系链表;
S302:遍历所述依赖关系链表中的各部分,得到所述各部分的输出状态并确定所述依赖关系链表中根节点所对应的部分;
S303:根据所述输出状态及根节点对应部分的位置生成各部分的部署依赖关系子树;
S304:对所述部署依赖关系子树进行组合,得到所述各航天测控软件的部署依赖关系树。
可以理解的是,要实现航天测控软件系统中各软件产品的依赖关系分析需要对每个软件部件的依赖关系进行描述。在本申请实施例中,依赖关系分为三种,包含性依赖、构建依赖及运行时依赖。其中,包含性依赖主要指编译时需要包含文件的文件,如C语言中的include、Java中的import等;构建依赖指链接时需要依赖的库,如C语言中的静态库等;运行时依赖指程序运行时需要依赖的库,如动态链接库等。包含依赖及构建依赖主要影响软件的构建步骤,运行时依赖则主要影响软件部署步骤的代码。
由于航天任务的复杂性及依赖关系,单个软件部件的构建部署有可能对其它部件的构建部署产生影响。单任务单目标型的软件部件可能依赖于通用性、多任务型软件部件。因此,构建部署的依赖关系不仅应来自于单一产品套件的内部,应还来自于整个软件系统产品内部多个产品套件。
在软件系统的构建过程中,一个软件部件的更动会影响其它部件,如图12中左侧的一个头文件发生变化时,右侧依赖于此头文件的进程或库需要重新进行编译和链接。因此多个部件进行构建时,应将这些被依赖的头文件先部署到执行编译链接的主机上去,然后再执行进程或库的编译。如果进程或库在头文件部署之前就执行编译链接,则可能导致构建失败、软件状态异常等错误。因此必须建立软件部件之间的依赖关系树,按照被依赖的部件先进行构建的原则确定软件部件的构建顺序。
依赖树以及构建顺序建立的算法的流程图参见图13所示。具体实施时,可以选择需要进行构建的软件部件,按照上述算法查看这些部件之间的依赖关系,形成部件之间的依赖树。如果出现循环依赖,则提示依赖关系识别有错误,算法将其进行标识。上述算法最终可以输出依赖关系树视图。
在实际的软件构建部署过程中,软件发布及部署还需要进行发布影响分析,软件部件之间的依赖关系是发布影响分析主要考虑的问题。例如,一个链接库发生了更动,所有调用它的其它库及应用程序都要重新进行构建。本申请实施例通过软件部件的属性设置,使用递归式算法分析其依赖关系,可以生成依赖树视图及构建顺序,辅助运维人员进行软件发布的影响分析。
从上述描述可知,本申请提供的航天测控软件部署方法能够根据提取到的元数据对所述各航天测控软件进行依赖关系分析,得到部署依赖关系树。
一实施例中,参见图4,根据提取到的元数据、所述部署依赖关系树进行软件部署,包括:
S401:根据所述元数据确定所述各部分的流水线类型;
S402:利用预先构建的部署生成代码及各流水线作业阶段的关键字生成所述各部分的流水线代码;
S403:根据所述部署依赖关系树中各部分的部署依赖关系,运行所述各部分的流水线代码,完成软件部署。
可以理解的是,航天测控软件的规模及构成关系往往比较复杂。在实际的构建部署工作中,需进行部署的软件制品包括可执行程序、链接库、配置文件及第三方库等种类,其构建部署方式也各有特点。本申请实施例将所有与任务软件相关的需要部署的产品都纳入构建部署工具中进行管理,对软件部件设置“类型”属性,将部件类型划分链接库、可执行程序、配置文件、第三方产品及文件夹。配置文件及第三方库等类型的软件制品不需要经过构建、测试等步骤即可直接部署到主机。自主开发的可执行程序及链接库等需要构建、静态分析、测试等步骤,才能部署到目标主机上,参见图14。
本申请实施例的构建部署流程的设计考虑了具体部件的编码语言、异构环境下的部署主机和路径、代码来源、产品发布方式等参数,也参照了具体执行的软件工程标准的要求。其中,项目定义的文件类型以及对应的流水线可以参见图14所示。
在构建部署工具中,通过读取部件的“类型”属性,确定流水线的基本阶段(Stage),再根据软件部件的属性以及具体阶段的代码模板生成相应的代码组成流水线脚本。此脚本可提交至构建部署服务器,以实现软件部件的构建部署流水线的自动生成,参见图15所示。
举例而言,对于一个航天任务而言,软件构建部署的实施主要应考虑以下因素:
①代码库、构建部署工作空间、产品库、软件运行环境的连接方式与制品迁移关系;
②构建部署流程设计;
③构建部署执行状态信息与执行结果显示。
其中,工作空间与环境包含代码库、构建部署工作空间、产品库及软件相关运行环境。航天测控软件的运行环境一般可分测试、联试、任务环境,分别应用于航天任务准备至执行的不同阶段。
发布和交付环节与软件系统的硬件环境以及软件的应用场景密切相关,软件的类型、功能和使用方式的不同也会造成发布和交付方式的差别,如图16所示。航天测控软件系统在服务器集群环境下,硬件环境尤为复杂,持续集成系统的发布和交付基本应具备软件环境配置、软件依赖关系维护以及远程部署的能力。实现软件发布和交付的自动化,可以根据软件运行环境信息以及部署目标主机的环境配置信息对目标主机进行配置,然后提取软件仓库中的软件及对应的部署信息以及部署环境中的软件配置信息,从而自动识别和分析软件依赖关系,完成软件的远程部署,如图16所示。
从上述描述可知,本申请提供的航天测控软件部署方法能够根据提取到的元数据、所述部署依赖关系树进行软件部署。
本申请的有益效果还包括:
(1)能够面向高可靠性、大型航天任务软件,实现大型软件系统对需求变更的快速响应。
从与各类商用或开源持续集成工具相比,自动化构建部署软件在持续集成流程设计、自动化测试流程设计、任务初始建立等功能的设计实现上,突出航天测控应用软件的高可靠性、大规模、高安全性等级的特点,在构建部署方面提升复用性,提升大型软件系统对需求变更的快速响应能力。尤其是在任务初始创建时,通过复制任务的功能,可将原有良好运行的软件构建项目复用或继承,在较高的层次上实现任务系统构建部署的复用。构建部署流水线中各类脚本和配置文件的自动生成。
(2)能够进一步减少管理工作量。
大型软件项目需部署的软件制品数量庞大,环境配置复杂多样,虽然可通过编写脚本的方式对大部分操作进行固化和复用,但是,这些脚本如果依靠人工编写和维护,所耗费的工作量也很高。本方案对软件制品进行分类管理,建立软件产品信息数据库,实现流水线的自动生成和配置,以及各类构建、分析脚本的自动、批量生成,大量减少脚本的编写和维护工作量。
基于同一发明构思,本申请实施例还提供了一种航天测控软件部署装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于航天测控软件部署装置解决问题的原理与航天测控软件部署方法相似,因此航天测控软件部署装置的实施可以参见基于软件性能基准确定方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
一实施例中,参见图5,为了能够实现大型航天测控软件的快速部署,提高对高密度航天测控软件系统的快速响应能力,本申请提供一种航天测控软件部署装置,包括:数据提取单元501、依赖关系建立单元502及软件部署单元503。
数据提取单元501,用于根据各航天测控软件的分类对所述各航天测控软件进行元数据提取;
依赖关系建立单元502,用于根据提取到的元数据对所述各航天测控软件进行依赖关系分析,得到部署依赖关系树;
软件部署单元503,用于根据提取到的元数据、所述部署依赖关系树进行软件部署。
一实施例中,参见图6,所述数据提取单元501,包括:
拓扑结构生成模块601,用于根据各航天测控软件的基础特征数据及所述分类生成航天测控软件的拓扑结构图;
描述信息构建模块602,用于根据所述基础特征数据及所述拓扑结构图构建各航天测控软件的部署描述信息;
数据提取模块603,用于根据所述部署描述信息进行元数据提取。
一实施例中,参见图7,所述依赖关系建立单元502,包括:
关系链表建立模块701,用于根据所述元数据建立各航天测控软件中各部分之间的依赖关系链表;
状态节点模块702,用于遍历所述依赖关系链表中的各部分,得到所述各部分的输出状态并确定所述依赖关系链表中根节点所对应的部分;
关系子树建立模块703,用于根据所述输出状态及根节点对应部分的位置生成各部分的部署依赖关系子树;
依赖关系建立模块704,用于对所述部署依赖关系子树进行组合,得到所述各航天测控软件的部署依赖关系树。
一实施例中,参见图8,所述软件部署单元503,包括:
流水类型确定模块801,用于根据所述元数据确定所述各部分的流水线类型;
流水代码生成模块802,用于利用预先构建的部署生成代码及各流水线作业阶段的关键字生成所述各部分的流水线代码;
软件部署模块803,用于根据所述部署依赖关系树中各部分的部署依赖关系,运行所述各部分的流水线代码,完成软件部署。
从硬件层面来说,为了能够实现大型航天测控软件的快速部署,提高对高密度航天测控软件系统的快速响应能力,本申请提供一种用于实现所述航天测控软件部署方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(Processor)、存储器(Memory)、通讯接口(Communications Interface)和总线;其中,所述处理器、存储器、通讯接口通过所述总线完成相互间的通讯;所述通讯接口用于实现所述航天测控软件部署装置与核心业务系统、用户终端以及相关数据库等相关设备之间的信息传输;该逻辑控制器可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该逻辑控制器可以参照实施例中的航天测控软件部署方法的实施例,以及航天测控软件部署装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
可以理解的是,所述用户终端可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在实际应用中,航天测控软件部署方法的部分可以在如上述内容所述的电子设备侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通讯模块(即通讯单元),可以与远程的服务器进行通讯连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通讯链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
图9为本申请实施例的电子设备9600的系统构成的示意框图。如图9所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图9是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,航天测控软件部署方法功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
S101:根据各航天测控软件的分类对所述各航天测控软件进行元数据提取;
S102:根据提取到的元数据对所述各航天测控软件进行依赖关系分析,得到部署依赖关系树;
S103:根据提取到的元数据、所述部署依赖关系树进行软件部署。
从上述描述可知,本申请提供的航天测控软件部署方法及装置,能够针对航天测控软件的特点,对航天测控软件产品的部署结构进行分析,提取部件部署的元数据,进而对航天测控软件及测控软件部件之间依赖关系进行拓扑结构分析,实现大型航天测控软件的快速部署,提高对高密度航天测控软件系统的快速响应能力。
在另一个实施方式中,航天测控软件部署装置可以与中央处理器9100分开配置,例如可以将数据复合传输装置航天测控软件部署装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现航天测控软件部署方法的功能。
如图9所示,该电子设备9600还可以包括:通讯模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图9中所示的所有部件;此外,电子设备9600还可以包括图9中没有示出的部件,可以参考现有技术。
如图9所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通讯功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通讯模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通讯模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通讯终端的情况相同。
基于不同的通讯技术,在同一电子设备中,可以设置有多个通讯模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通讯模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的航天测控软件部署方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的航天测控软件部署方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S101:根据各航天测控软件的分类对所述各航天测控软件进行元数据提取;
S102:根据提取到的元数据对所述各航天测控软件进行依赖关系分析,得到部署依赖关系树;
S103:根据提取到的元数据、所述部署依赖关系树进行软件部署。
从上述描述可知,本申请提供的航天测控软件部署方法及装置,能够针对航天测控软件的特点,对航天测控软件产品的部署结构进行分析,提取部件部署的元数据,进而对航天测控软件及测控软件部件之间依赖关系进行拓扑结构分析,实现大型航天测控软件的快速部署,提高对高密度航天测控软件系统的快速响应能力。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种航天测控软件部署方法,其特征在于,包括:
根据各航天测控软件的分类对所述各航天测控软件进行元数据提取;
根据提取到的元数据对所述各航天测控软件进行依赖关系分析,得到部署依赖关系树;
根据提取到的元数据、所述部署依赖关系树进行软件部署。
2.根据权利要求1所述的航天测控软件部署方法,其特征在于,所述根据各航天测控软件的分类对所述各航天测控软件进行元数据提取,包括:
根据各航天测控软件的基础特征数据及所述分类生成航天测控软件的拓扑结构图;
根据所述基础特征数据及所述拓扑结构图构建各航天测控软件的部署描述信息;
根据所述部署描述信息进行元数据提取。
3.根据权利要求1所述的航天测控软件部署方法,其特征在于,所述根据提取到的元数据对所述各航天测控软件进行依赖关系分析,得到部署依赖关系树,包括:
根据所述元数据建立各航天测控软件中各部分之间的依赖关系链表;
遍历所述依赖关系链表中的各部分,得到所述各部分的输出状态并确定所述依赖关系链表中根节点所对应的部分;
根据所述输出状态及根节点对应部分的位置生成各部分的部署依赖关系子树;
对所述部署依赖关系子树进行组合,得到所述各航天测控软件的部署依赖关系树。
4.根据权利要求3所述的航天测控软件部署方法,其特征在于,所述根据提取到的元数据、所述部署依赖关系树进行软件部署,包括:
根据所述元数据确定所述各部分的流水线类型;
利用预先构建的部署生成代码及各流水线作业阶段的关键字生成所述各部分的流水线代码;
根据所述部署依赖关系树中各部分的部署依赖关系,运行所述各部分的流水线代码,完成软件部署。
5.一种航天测控软件部署装置,其特征在于,包括:
数据提取单元,用于根据各航天测控软件的分类对所述各航天测控软件进行元数据提取;
依赖关系建立单元,用于根据提取到的元数据对所述各航天测控软件进行依赖关系分析,得到部署依赖关系树;
软件部署单元,用于根据提取到的元数据、所述部署依赖关系树进行软件部署。
6.根据权利要求5所述的航天测控软件部署装置,其特征在于,所述数据提取单,包括:
拓扑结构生成模块,用于根据各航天测控软件的基础特征数据及所述分类生成航天测控软件的拓扑结构图;
描述信息构建模块,用于根据所述基础特征数据及所述拓扑结构图构建各航天测控软件的部署描述信息;
数据提取模块,用于根据所述部署描述信息进行元数据提取。
7.根据权利要求5所述的航天测控软件部署装置,其特征在于,所述依赖关系建立单元,包括:
关系链表建立模块,用于根据所述元数据建立各航天测控软件中各部分之间的依赖关系链表;
状态节点模块,用于遍历所述依赖关系链表中的各部分,得到所述各部分的输出状态并确定所述依赖关系链表中根节点所对应的部分;
关系子树建立模块,用于根据所述输出状态及根节点对应部分的位置生成各部分的部署依赖关系子树;
依赖关系建立模块,用于对所述部署依赖关系子树进行组合,得到所述各航天测控软件的部署依赖关系树。
8.根据权利要求7所述的航天测控软件部署装置,其特征在于,所述软件部署单元,包括:
流水类型确定模块,用于根据所述元数据确定所述各部分的流水线类型;
流水代码生成模块,用于利用预先构建的部署生成代码及各流水线作业阶段的关键字生成所述各部分的流水线代码;
软件部署模块,用于根据所述部署依赖关系树中各部分的部署依赖关系,运行所述各部分的流水线代码,完成软件部署。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4任一项所述的航天测控软件部署方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至4任一项所述的航天测控软件部署方法的步骤。
CN202111141184.XA 2021-09-28 2021-09-28 一种航天测控软件部署方法及装置 Pending CN113867737A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111141184.XA CN113867737A (zh) 2021-09-28 2021-09-28 一种航天测控软件部署方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111141184.XA CN113867737A (zh) 2021-09-28 2021-09-28 一种航天测控软件部署方法及装置

Publications (1)

Publication Number Publication Date
CN113867737A true CN113867737A (zh) 2021-12-31

Family

ID=78991712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111141184.XA Pending CN113867737A (zh) 2021-09-28 2021-09-28 一种航天测控软件部署方法及装置

Country Status (1)

Country Link
CN (1) CN113867737A (zh)

Similar Documents

Publication Publication Date Title
US10860339B2 (en) Autonomous creation of new microservices and modification of existing microservices
EP2482192B1 (en) Testing lifecycle
CN111209005B (zh) 程序文件的编译方法、装置和计算机可读存储介质
CN109146081B (zh) 一种用于机器学习平台中创建模型项目的方法及装置
CN106933729A (zh) 一种基于云平台的测试方法和系统
CN107612962B (zh) 一种分布式仿真评估试验管理系统
CN109901985B (zh) 分布式测试装置及方法、存储介质和电子设备
CN112199355B (zh) 数据迁移方法、装置、电子设备及存储介质
EP3413149A1 (en) Field device commissioning system and field device commissioning method
CN112905262A (zh) 一种航天测控系统配置方法及装置
CN111435329A (zh) 一种自动化测试方法和装置
CN106843822B (zh) 一种执行代码生成方法及设备
US9665668B2 (en) Configuring a dispatching rule for execution in a simulation
CN108536447B (zh) 运维管理方法
CN113867737A (zh) 一种航天测控软件部署方法及装置
CN114385243B (zh) 一种控制编排引擎用指令自动化下发方法及装置
CN112130962B (zh) 持续交付平台及利用持续交付平台部署应用系统的方法
CN114153732A (zh) 故障场景测试方法、装置、电子设备及存储介质
CN102521133A (zh) 基于tcl的白盒测试自动化方法及系统
US20210021464A1 (en) Generating application-server provisioning configurations
Nebeling et al. Informing the design of new mobile development methods and tools
US20230168656A1 (en) Automatically assigning natural language labels to non-conforming behavior of processes
CN110175116B (zh) 一种测试日期切换方法、装置及系统
US20230057746A1 (en) User constrained process mining
US20230359547A1 (en) Targeted Testing for Modular Software Applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination