CN108228170B - 一种嵌入式软件构件化定制组装方法 - Google Patents

一种嵌入式软件构件化定制组装方法 Download PDF

Info

Publication number
CN108228170B
CN108228170B CN201711293405.9A CN201711293405A CN108228170B CN 108228170 B CN108228170 B CN 108228170B CN 201711293405 A CN201711293405 A CN 201711293405A CN 108228170 B CN108228170 B CN 108228170B
Authority
CN
China
Prior art keywords
component
installation
software
components
executing
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.)
Active
Application number
CN201711293405.9A
Other languages
English (en)
Other versions
CN108228170A (zh
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.)
Xian Aeronautics Computing Technique Research Institute of AVIC
Original Assignee
Xian Aeronautics Computing Technique Research Institute of AVIC
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 Xian Aeronautics Computing Technique Research Institute of AVIC filed Critical Xian Aeronautics Computing Technique Research Institute of AVIC
Priority to CN201711293405.9A priority Critical patent/CN108228170B/zh
Publication of CN108228170A publication Critical patent/CN108228170A/zh
Application granted granted Critical
Publication of CN108228170B publication Critical patent/CN108228170B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明属于计算机系统软件专业技术领域,软件组件被定义为构件,构件间通过依赖、协作关系可以组成一个软件部件或者完整系统。基于构件,研究发明了构件的定制与组装技术。本发明的特点是实现了构件的定制,并为构件提供安装、升级、卸载功能,构件资源在开发软件过程中被复用,组装到开发软件框架中,实现软件快捷开发,构件的多版本为软件升级提供便利。本发明针对目前嵌入式开发环境的软件组件版本升级,需要进行手动文件覆盖,带来的耗时、易出错、难以回滚等问题。构件化定制组装技术基于软件代码重用理念,在构件机制上增加了定制与管理功能,解决了以往嵌入式开发环境软件组件版本维护繁琐、回滚困难,以及安装耗时等问题。

Description

一种嵌入式软件构件化定制组装方法
技术领域
本发明属于计算机系统软件专业技术领域,软件功能代码以构件形式在软件开发过程中被重用,构件间通过依赖、协作关系完成功能组合,通过组装技术将软件构件构建成一个实现特定功能的软件。
背景技术
通常,针对目前嵌入式开发环境的软件组件进行版本升级,先进行旧版本组件卸载,再将新版本的组件安装到主机上。实质是新版本文件替代原始版本的文件。这种方式带来的问题有:新版本的文件如果存在问题,再恢复到之前的版本几乎不可能,灵活性很差;这种方式下不仅对需要更新的文件进行覆盖,对一些没有变化的文件也进行了覆盖,浪费的时间周期比较长;手动进行版本升级,带来的工作繁琐,易出错等问题。在此基础上,提出了软件构件化思想,支持构件定制组装,实现了构件的独立安装、升级和卸载。并支持同一构件的多版本安装。解决了嵌入式开发环境软件组件安装、升级文件覆盖、回滚困难,以及安装耗时等问题。
目前,风河公司在该领域提出了Layer概念,将软件组件定义为Layer。采用RPM机制实现Layer的打包、安装、卸载。系统配置将不同功能、版本的Layer选装成满足需要的软件,最终通过编译链接生成为系统可执行映像。风河在Layer的实现过程中存在以下问题。其一,通过目录层级关系与脚本文件来定义Layer的属性,可能会引起Layer解析、加载失败;其二,允许Layer不使用RPM打包就进入构件库,这样可能会带来的系统的不安全和Layer检索失败;其三,只提供了命令行的方式实现Layer安装、卸载,用户需要输入繁琐的命令才能完成安装、卸载功能。不方便记忆与操作。针对上述问题,提出了构件定制组装技术方案,研制了构件化定制组装工具,实现在嵌入式开发环境中,构件的开发,定制打包,构件的安装与卸载以及构件库管理。
发明内容
构件化定制组装工具
构件化定制组装工具,用于实现构件的定制、安装/卸载/查询功能。
构件定制组装工具包括构件定制和构件管理功能。其中,构件定制是指软件构件资源的打包和发布,即软件构件的实现定制功能,该功能基于工程管理,定制的构件称为构件包。构件管理是指构件的安装、升级、卸载。
构件定制
构件定制是将软件组件资源转化成构件包的过程。实现原理是通过打包程序识别预定义描述规则,将描述规则中指定的文件按照指定要求,归档整理,封装成可被识别安装的格式。
一种嵌入式软件构件化定制组装方法,包括以下步骤;
步骤一、编写定制脚本:用户通过图形界面,编辑构件的打包属性和指定打包资源,完成编辑后,系统将用户的配置转化成定制脚本文件;定制脚本作为后台构件包管理器的输入源;
步骤二、收集资源:构件包管理器解析脚本内容,收集整理打包资源,并生成构件描述文件;构件描述文件是一种用于定义构件包的属性信息,为安装、升级、卸载提供依据的脚本文件。同时,构件描述文件作为系统配置的输入,系统配置根据构件的描述文件创建系统构件列表,供用户选择组装。构件描述文件内容如下:
Figure BDA0001498017600000021
主要元数据及功能描述,见表1。
表1构件描述文件描述
Figure BDA0001498017600000022
步骤三、生成构件包:将收集的资源文件,通过压缩、加密算法,整合到构件包中。
构件包管理
构件管理包括:构件的安装、升级和卸载功能;
构件安装和升级:构件包的解压、释放资源过程,将构件包中数据文件释放到开发环境的构件库,更新构件安装信息表。系统配置工具操作构件库,读取构件信息,为用户组装构件提供服务;
构件安装升级流程如下:
1)解压构件包,解析构件描述文件;
2)根据构件描述文件信息,对软件构件包资源做完整性检查分析,检查包内容资源是否完整,内容是否未被篡改。如果是,执行步骤3)。否则,执行步骤11)、12);
3)根据构件描述文件信息,查询当前操作系统类型、版本,硬件条件是否满足安装要求。如果是,执行步骤4)。否则,执行步骤11)、12);
4)根据构件描述文件信息,查询安装记录表,检查依赖的构件是否已经安装。如果是,执行步骤5)。否则,执行步骤11)、12);
5)根据构件描述文件信息,查询安装记录表,检查构件是否未安装。如果是,执行步骤6)。否则,执行步骤11)、12);
6)根据构件描述文件信息,查询安装记录表,检查构件是否存在多版本。如果是,执行步骤8)、9)、10)、12)。否则,执行步骤7)、9)、10)、12);
7)执行构件安装动作;
8)执行构件升级动作;
9)释放资源;
10)更新安装记录文件;
11)安装退回,安装垃圾回收;
12)结束。
构件卸载:将构件库中安装的构件,通过卸载功能从构件库移除,并解除构件依赖关系。
构件卸载流程如下:
(1)根据卸载构件的名字、版本信息,查询安装信息表中是否存在要卸载的构件。如果是,执行步骤(2)。否则,执行步骤(4)、(5);
(2)查询安装信息表,分析环境中是否存在其他构件依赖要卸载的构件。如果是,执行步骤(3)。否则,执行步骤(4)、(5);
(3)执行卸载动作,清理构件数据文件,更新安装信息表,执行步骤(5);
(4)卸载失败;
(5)结束。
构件组装
构件包安装/升级后,构件资源文件(可执行文件、静态库等)释放到开发环境构件库,并向系统配置工具提供相应的配置数据项;配置工具解析当前安装的软件构件信息,将构件以图形化列表形式分类分层展示,用户在系统配置时根据需要选择、添加、删除不同功能、版本的构件,最终执行编译链接操作将软件构件组装为系统可执行映像。
附图说明
图1是构件定制组装技术图,
用户按照需求进行系统设计,根据框架结构规约,在构件库中选择相应的版本(或者做适应性修改)构件,通过构件组装技术完成软件单元集成,在编译链接环境执行编译链接操作将软件构件组装为最终的系统可执行映像;如果构件库中没有满足当前要求的构件,用户可根据当前实际需求进行构件开发,然后定制为构件,构件被纳入构件库,供系统开发复用;构件的定制为构件复用提供了便利,也丰富了构件库内容。
图2是软件结构图
构件定制插件提供构件打包的图形用户界面,包括软件构件资源的指定和软件构件属性的设置。
构件管理插件提供构件包的安装、卸载和升级的图形界面,并支持软件构件的多版本管理。
构件包管理器是构件定制组装工具的后台程序,执行软件构件打包、安装、卸载和升级的具体操作。
图3是构件安装升级流程图
图4是构件卸载流程图
具体实施方式
构件化定制组装工具工作具体步骤:
1.使用新建向导,选择构件项目,键入项目名“test”;
2.开发、调试、测试、完成构件开发;
3.打开构件定制组装工具,选择构件定制,编辑构件包属性信息并添加定制打包资源;
4.生成构件包;
5.打开构件定制组装工具,选择构件安装,选择定制完成构件包test,执行安装;
6.完成安装后,启动系统配置工具,在构件列表中显示安装的test构件信息;
7.打开构件定制组装工具,选择构件卸载,选择已经安装的构件test,执行卸载;
8.完成卸载后,启动系统配置工具,在构件列表中检查发现不存在构件test。
词语解释:
Layer 软件功能模块的定义
RPM RedHat Package Management
Eclipse 集成开发环境平台

Claims (1)

1.一种嵌入式软件构件化定制组装方法,其特征在于包括以下内容;
步骤一、编写定制脚本:用户通过图形界面,编辑构件的打包属性和指定打包资源,完成编辑后,系统将用户的配置转化成定制脚本文件;定制脚本作为后台构件包管理器的输入源;
步骤二、收集资源:构件包管理器解析脚本内容,收集整理打包资源,并生成构件描述文件;构件描述文件是一种用于定义构件包的属性信息,为安装、升级、卸载提供依据的脚本文件;同时,构件描述文件作为系统配置的输入,系统配置根据构件的描述文件创建系统构件列表,供用户选择组装;构件描述文件内容如表1:
表1构件描述文件
Figure FDA0002742626130000011
步骤三、生成构件包:将收集的资源文件,通过压缩、加密算法,整合到构件包中;
构件包管理
构件包管理包括:构件的安装、升级和卸载功能;
构件安装和升级:构件包的解压、释放资源过程,将构件包中数据文件释放到开发环境的构件库,更新构件安装信息表;系统配置工具操作构件库,读取构件信息,为用户组装构件提供服务;
构件安装升级流程如下:
1)解压构件包,解析构件描述文件;
2)根据构件描述文件信息,对软件构件包资源做完整性检查分析,检查包内容资源是否完整,内容是否未被篡改;如果是,执行步骤3);否则,执行步骤11)、12);
3)根据构件描述文件信息,查询当前操作系统类型、版本,硬件条件是否满足安装要求;如果是,执行步骤4);否则,执行步骤11)、12);
4)根据构件描述文件信息,查询安装记录表,检查依赖的构件是否已经安装;如果是,执行步骤5);否则,执行步骤11)、12);
5)根据构件描述文件信息,查询安装记录表,检查构件是否未安装;如果是,执行步骤6);否则,执行步骤11)、12);
6)根据构件描述文件信息,查询安装记录表,检查构件是否存在多版本;如果是,执行步骤8)、9)、10)、12);否则,执行步骤7)、9)、10)、12);
7)执行构件安装动作;
8)执行构件升级动作;
9)释放资源;
10)更新安装记录文件;
11)安装退回,安装垃圾回收;
12)结束;
构件卸载:将构件库中安装的构件,通过卸载功能从构件库移除,并解除构件依赖关系;
构件卸载流程如下:
(1)根据卸载构件的名字、版本信息,查询安装信息表中是否存在要卸载的构件;如果是,执行步骤(2);否则,执行步骤(4)、(5);
(2)查询安装信息表,分析环境中是否存在其他构件依赖要卸载的构件;如果是,执行步骤(3);否则,执行步骤(4)、(5);
(3)执行卸载动作,清理构件数据文件,更新安装信息表,执行步骤(5);
(4)卸载失败;
(5)结束。
CN201711293405.9A 2017-12-07 2017-12-07 一种嵌入式软件构件化定制组装方法 Active CN108228170B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711293405.9A CN108228170B (zh) 2017-12-07 2017-12-07 一种嵌入式软件构件化定制组装方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711293405.9A CN108228170B (zh) 2017-12-07 2017-12-07 一种嵌入式软件构件化定制组装方法

Publications (2)

Publication Number Publication Date
CN108228170A CN108228170A (zh) 2018-06-29
CN108228170B true CN108228170B (zh) 2020-12-29

Family

ID=62654034

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711293405.9A Active CN108228170B (zh) 2017-12-07 2017-12-07 一种嵌入式软件构件化定制组装方法

Country Status (1)

Country Link
CN (1) CN108228170B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489108B (zh) * 2018-07-24 2022-08-02 厦门白山耘科技有限公司 一种自动收集可重用组件的方法及装置
CN109697078B (zh) * 2018-12-10 2022-02-08 中国联合网络通信集团有限公司 非高可用性组件的修复方法、大数据集群和容器服务平台
CN109976750A (zh) * 2019-03-28 2019-07-05 深圳市创联时代科技有限公司 一种基于嵌入式开发系统的组件源码配置和组件裁剪方法
CN111274136B (zh) * 2020-01-17 2023-05-23 中国航空工业集团公司西安飞机设计研究所 一种机载软件测试管理系统和测试过程管理方法
CN112306474B (zh) * 2020-10-28 2022-09-20 科大国创云网科技有限公司 一种基于组件化模板的vue项目平滑升级方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345386A (zh) * 2013-05-31 2013-10-09 电子科技大学 一种软件生产方法、装置及运行系统
CN103440166A (zh) * 2013-08-30 2013-12-11 西安电子科技大学 一种从远程组件仓库按需下载的软件现场组装系统
CN107092478A (zh) * 2017-02-24 2017-08-25 中国人民解放军海军大连舰艇学院 一种软件构件库与构件开发工具的集成系统与方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2322594C (en) * 2000-10-06 2005-01-11 Ibm Canada Limited-Ibm Canada Limitee System and method for managing web page components
US9128724B2 (en) * 2012-08-28 2015-09-08 International Business Machines Corporation Configuring assembly of a system using supplied architectural artifacts

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345386A (zh) * 2013-05-31 2013-10-09 电子科技大学 一种软件生产方法、装置及运行系统
CN103440166A (zh) * 2013-08-30 2013-12-11 西安电子科技大学 一种从远程组件仓库按需下载的软件现场组装系统
CN107092478A (zh) * 2017-02-24 2017-08-25 中国人民解放军海军大连舰艇学院 一种软件构件库与构件开发工具的集成系统与方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Vxworks Kernel programmers guid,6.2;WIND RIVER;《https://www.uio.no/studier/emner/matnat/fys/FYS4220/h11/undervisningsmateriale/laboppgaver-rt/vxworks_kernel_programmers_guide_6.2.pdf》;20051011;第19-41页 *
一种双余度非相似容错计算机软件设计;杨号;《航空计算技术》;20170331;第47卷(第2期);第98-100页 *
基于软件配置模型的构件化领域框架研究;肖刚等;《计算机应用与软件》;20080531;第25卷(第5期);第91-92页 *

Also Published As

Publication number Publication date
CN108228170A (zh) 2018-06-29

Similar Documents

Publication Publication Date Title
CN108228170B (zh) 一种嵌入式软件构件化定制组装方法
US11789715B2 (en) Systems and methods for transformation of reporting schema
US8706771B2 (en) Systems and methods for analyzing and transforming an application from a source installation to a target installation
US7984424B2 (en) Isolating declarative code to preserve customizations
US8739150B2 (en) Systems and methods for dynamically replacing code objects via conditional pattern templates
US7530079B2 (en) Managing application customization
US8661427B2 (en) Package design and generation
US11429365B2 (en) Systems and methods for automated retrofitting of customized code objects
US20090083268A1 (en) Managing variants of artifacts in a software process
US9218179B2 (en) Software automated data and data model upgrade system
US20110283270A1 (en) Systems and methods for analyzing changes in application code from a previous instance of the application code
US20080276221A1 (en) Method and apparatus for relations planning and validation
CN107133055B (zh) 一种基于ClassLoader实现定制开发的方法
da Silva et al. XIS-UML profile for extreme modeling interactive systems
Schneid et al. Static analysis of BPMN-based process-driven applications
CN103500109A (zh) 一种用于实现文件收集、软件包自动安装的方法及装置
US8245163B1 (en) Partial compilation of circuit design with new software version to obtain a complete compiled design
CN102622213A (zh) 一种生成一键升级工具系统及制作方法
CN101571801A (zh) 业务扩展系统及方法
Oda et al. Generative technique of version control systems for software diagrams
CN113064698A (zh) 提供产品环境的方法及相应的装置、系统、设备和介质
WO2011041246A1 (en) Systems and methods for analyzing and transforming an application from a source installation to a target installation
JP7328922B2 (ja) 設定装置、設定方法、及びプログラム
CN117950652A (zh) 基于低代码平台的组件生态应用开发方法
CN115543374A (zh) 方案生成方法、设备升级方法及相关装置、设备和介质

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
GR01 Patent grant
GR01 Patent grant