CN108228170A - 一种嵌入式软件构件化定制组装方法 - Google Patents
一种嵌入式软件构件化定制组装方法 Download PDFInfo
- Publication number
- CN108228170A CN108228170A CN201711293405.9A CN201711293405A CN108228170A CN 108228170 A CN108228170 A CN 108228170A CN 201711293405 A CN201711293405 A CN 201711293405A CN 108228170 A CN108228170 A CN 108228170A
- Authority
- CN
- China
- Prior art keywords
- component
- software
- installation
- file
- resource
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/62—Uninstallation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
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安装、卸载,用户需要输入繁琐的命令才能完成安装、卸载功能。不方便记忆与操作。针对上述问题,提出了构件定制组装技术方案,研制了构件化定制组装工具,实现在嵌入式开发环境中,构件的开发,定制打包,构件的安装与卸载以及构件库管理。
发明内容
构件化定制组装工具
构件化定制组装工具,用于实现构件的定制、安装/卸载/查询功能。
构件定制组装工具包括构件定制和构件管理功能。其中,构件定制是指软件构件资源的打包和发布,即软件构件的实现定制功能,该功能基于工程管理,定制的构件称为构件包。构件管理是指构件的安装、升级、卸载。
构件定制
构件定制是将软件组件资源转化成构件包的过程。实现原理是通过打包程序识别预定义描述规则,将描述规则中指定的文件按照指定要求,归档整理,封装成可被识别安装的格式。
一种嵌入式软件构件化定制组装方法,包括以下步骤;
步骤一、编写定制脚本:用户通过图形界面,编辑构件的打包属性和指定打包资源,完成编辑后,系统将用户的配置转化成定制脚本文件;定制脚本作为后台构件包管理器的输入源;
步骤二、收集资源:构件包管理器解析脚本内容,收集整理打包资源,并生成构件描述文件;构件描述文件是一种用于定义构件包的属性信息,为安装、升级、卸载提供依据的脚本文件。同时,构件描述文件作为系统配置的输入,系统配置根据构件的描述文件创建系统构件列表,供用户选择组装。构件描述文件内容如下:
主要元数据及功能描述,见表1。
表1构件描述文件描述
步骤三、生成构件包:将收集的资源文件,通过压缩、加密算法,整合到构件包中。
构件包管理
构件管理包括:构件的安装、升级和卸载功能;
构件安装和升级:构件包的解压、释放资源过程,将构件包中数据文件释放到开发环境的构件库,更新构件安装信息表。系统配置工具操作构件库,读取构件信息,为用户组装构件提供服务;
构件安装升级流程如下:
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.一种嵌入式软件构件化定制组装方法,其特征在于包括以下内容;
步骤一、编写定制脚本:用户通过图形界面,编辑构件的打包属性和指定打包资源,完成编辑后,系统将用户的配置转化成定制脚本文件;定制脚本作为后台构件包管理器的输入源;
步骤二、收集资源:构件包管理器解析脚本内容,收集整理打包资源,并生成构件描述文件;构件描述文件是一种用于定义构件包的属性信息,为安装、升级、卸载提供依据的脚本文件;同时,构件描述文件作为系统配置的输入,系统配置根据构件的描述文件创建系统构件列表,供用户选择组装;构件描述文件内容如下:
DEMO
{
Name demo
SYNOPSIS GUI Demo
HELP This provides the GUI demo.
VERSION 7.2.1.0
VENDOR ACTRI
FEATURE UI
REQUIRES KERNEL
OPTIONAL YES
DEFAULT NO
PARENT
……
}
主要元数据及功能描述,见表1;
表1构件描述文件描述
步骤三、生成构件包:将收集的资源文件,通过压缩、加密算法,整合到构件包中;
构件包管理
构件包管理包括:构件的安装、升级和卸载功能;
构件安装和升级:构件包的解压、释放资源过程,将构件包中数据文件释放到开发环境的构件库,更新构件安装信息表;系统配置工具操作构件库,读取构件信息,为用户组装构件提供服务;
构件安装升级流程如下:
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)结束。
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 true CN108228170A (zh) | 2018-06-29 |
CN108228170B 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) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109697078A (zh) * | 2018-12-10 | 2019-04-30 | 中国联合网络通信集团有限公司 | 非高可用性组件的修复方法、大数据集群和容器服务平台 |
CN109976750A (zh) * | 2019-03-28 | 2019-07-05 | 深圳市创联时代科技有限公司 | 一种基于嵌入式开发系统的组件源码配置和组件裁剪方法 |
CN110489108A (zh) * | 2018-07-24 | 2019-11-22 | 厦门白山耘科技有限公司 | 一种自动收集可重用组件的方法及装置 |
CN111274136A (zh) * | 2020-01-17 | 2020-06-12 | 中国航空工业集团公司西安飞机设计研究所 | 一种机载软件测试管理系统和测试过程管理方法 |
CN112306474A (zh) * | 2020-10-28 | 2021-02-02 | 科大国创云网科技有限公司 | 一种基于组件化模板的vue项目平滑升级方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083097A1 (en) * | 2000-10-06 | 2002-06-27 | International Business Machines Corporation | System and method for managing web page components |
CN103345386A (zh) * | 2013-05-31 | 2013-10-09 | 电子科技大学 | 一种软件生产方法、装置及运行系统 |
CN103440166A (zh) * | 2013-08-30 | 2013-12-11 | 西安电子科技大学 | 一种从远程组件仓库按需下载的软件现场组装系统 |
US20140068551A1 (en) * | 2012-08-28 | 2014-03-06 | International Business Machines Corporation | Configuring Assembly of a System using Supplied Architectural Artifacts |
CN107092478A (zh) * | 2017-02-24 | 2017-08-25 | 中国人民解放军海军大连舰艇学院 | 一种软件构件库与构件开发工具的集成系统与方法 |
-
2017
- 2017-12-07 CN CN201711293405.9A patent/CN108228170B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083097A1 (en) * | 2000-10-06 | 2002-06-27 | International Business Machines Corporation | System and method for managing web page components |
US20140068551A1 (en) * | 2012-08-28 | 2014-03-06 | International Business Machines Corporation | Configuring Assembly of a System using Supplied Architectural Artifacts |
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)
Title |
---|
WIND RIVER: "Vxworks Kernel programmers guid,6.2", 《HTTPS://WWW.UIO.NO/STUDIER/EMNER/MATNAT/FYS/FYS4220/H11/UNDERVISNINGSMATERIALE/LABOPPGAVER-RT/VXWORKS_KERNEL_PROGRAMMERS_GUIDE_6.2.PDF》 * |
杨号: "一种双余度非相似容错计算机软件设计", 《航空计算技术》 * |
肖刚等: "基于软件配置模型的构件化领域框架研究", 《计算机应用与软件》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489108A (zh) * | 2018-07-24 | 2019-11-22 | 厦门白山耘科技有限公司 | 一种自动收集可重用组件的方法及装置 |
CN110489108B (zh) * | 2018-07-24 | 2022-08-02 | 厦门白山耘科技有限公司 | 一种自动收集可重用组件的方法及装置 |
CN109697078A (zh) * | 2018-12-10 | 2019-04-30 | 中国联合网络通信集团有限公司 | 非高可用性组件的修复方法、大数据集群和容器服务平台 |
CN109697078B (zh) * | 2018-12-10 | 2022-02-08 | 中国联合网络通信集团有限公司 | 非高可用性组件的修复方法、大数据集群和容器服务平台 |
CN109976750A (zh) * | 2019-03-28 | 2019-07-05 | 深圳市创联时代科技有限公司 | 一种基于嵌入式开发系统的组件源码配置和组件裁剪方法 |
CN111274136A (zh) * | 2020-01-17 | 2020-06-12 | 中国航空工业集团公司西安飞机设计研究所 | 一种机载软件测试管理系统和测试过程管理方法 |
CN111274136B (zh) * | 2020-01-17 | 2023-05-23 | 中国航空工业集团公司西安飞机设计研究所 | 一种机载软件测试管理系统和测试过程管理方法 |
CN112306474A (zh) * | 2020-10-28 | 2021-02-02 | 科大国创云网科技有限公司 | 一种基于组件化模板的vue项目平滑升级方法 |
CN112306474B (zh) * | 2020-10-28 | 2022-09-20 | 科大国创云网科技有限公司 | 一种基于组件化模板的vue项目平滑升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108228170B (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228170A (zh) | 一种嵌入式软件构件化定制组装方法 | |
CN104572237B (zh) | 一种UKey安装包自动快速生成系统及其方法 | |
US7530079B2 (en) | Managing application customization | |
US8910117B2 (en) | Customizing and performing policy in version control | |
CN100543701C (zh) | 一种实现嵌入式软件异常测试的方法及系统 | |
CN106775744B (zh) | 一种生成静态库的方法和装置 | |
CN101002174B (zh) | 在便携式装置中加载具有面向对象的中间语言的软件的方法 | |
JP5396979B2 (ja) | ソフトウェア開発支援装置、システム、ソフトウェア開発支援装置の機能拡張方法、及びプログラム | |
EP2417543A2 (en) | Software database system and process of building and operating the same | |
CN111090433A (zh) | 一种数据处理的方法、装置和存储介质 | |
CN112835584B (zh) | 基于ReactNative实现组件扩展和管理的方法 | |
CN104572238A (zh) | 一种高效的生成可执行软件包的方法及系统 | |
WO2018032653A1 (zh) | 一种Java卡应用的功能实现方法及装置 | |
US20240078103A1 (en) | Generating and distributing customized embedded operating systems | |
KR100489783B1 (ko) | 선택적 애플릿 관리가 가능한 스마트카드 및 그 운용방법 | |
WO2010035214A1 (en) | Method and apparatus for updating a software image | |
CN114371850A (zh) | 项目构建编译和代码开发的管理方法 | |
US8245163B1 (en) | Partial compilation of circuit design with new software version to obtain a complete compiled design | |
CN112596706A (zh) | 模式化代码生成方法、装置和计算机可读存储介质 | |
CN110806891B (zh) | 嵌入式设备软件版本的生成方法及装置 | |
CN103530151B (zh) | 一种可切换业务软件系统的Linux操作系统定制方法 | |
KR20210039714A (ko) | 테스트 환경 구축 방법 및 장치 | |
CN115437608A (zh) | 智能研发辅助方法及装置 | |
JP4942144B2 (ja) | 情報処理装置及びその制御方法、プログラム、記憶媒体 | |
Giachetti et al. | Using UML profiles to interchange DSML and UML models |
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 |