CN111666090B - 一种应用系统扩展组件在线更新支撑系统 - Google Patents
一种应用系统扩展组件在线更新支撑系统 Download PDFInfo
- Publication number
- CN111666090B CN111666090B CN202010524174.3A CN202010524174A CN111666090B CN 111666090 B CN111666090 B CN 111666090B CN 202010524174 A CN202010524174 A CN 202010524174A CN 111666090 B CN111666090 B CN 111666090B
- Authority
- CN
- China
- Prior art keywords
- component
- extension
- extension component
- application system
- expansion
- 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
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用系统扩展组件在线更新支撑系统,包括扩展组件仓库、扩展组件控制中心及扩展组件支撑中心;扩展组件仓库用于接收并保存独立的扩展组件模型,包括所需的文件、依赖库、依赖资源在组件模型内聚集,将组件的发布或更新入库的信息发布至MQ中间件;控制中心用于读取并订阅不同版本的扩展组件信息,并发布指令以控制切换不同版本的扩展组件更新至应用系统;支撑中心将扩展组件以依赖库方式入驻至应用系统。本发明实现扩展组件的打包发布入库,应用和组件的订阅关系绑定,组件模型的预处理到加载实例化的整个过程,实现应用系统扩展组件在线更新。
Description
技术领域
本发明涉及应用系统扩展组件更新技术领域,具体是一种应用系统扩展组件在线更新支撑系统。
背景技术
目前多数应用系统在对应应用系统扩展能力的需求上,大多采用插件或扩展点的机制,从实现上来看,有的提供的是离线扩展能力,也就是通过系统重新启动来初始化扩展组件配置文件,完成新组件的上线;有的提供系统配置扩展组件上线的能力,但所有的扩展组件是预先置入到应用系统环境里,对于新的扩展组件需要上线,也必须使用离线方式进行更新;还有的支持扩展组件使用时进行远程加载更新,但这种更新方式对当时网络环境依赖很大,如果出现网络抖动或断网的情况,应用系统的稳定性会受很大的影响。
另外针对本身的扩展组件体系来说,多数解决方案并没有对扩展组件进行模型化设计,而是提供扩展点接口,然后由研发人员独立开发、直接打包部署;这样会导致不同研发团队开发出来的扩展组件上线后可能存在依赖库冲突,从而影响整个系统的稳定运行;如果研发团队同时在对同一个应用系统的扩展组件进行开发时,为了不产生上面的依赖库冲突,他们就需要不断对自己开发的扩展组件的依赖库版本进行调整更新来解决这种依赖冲突,这也增大了扩展组件开发的成本。
发明内容
本发明的目的在于提供一种应用系统扩展组件在线更新支撑系统,实现应用系统的扩展组件在线更新,提高用户的使用体验。
为实现上述目的,本发明提供如下技术方案:
一种应用系统扩展组件在线更新支撑系统,包括扩展组件仓库、扩展组件控制中心及扩展组件支撑中心;
所述扩展组件仓库用于接收并保存研发人员发布或更新的扩展组件,同时扫描读取扩展组件的相关信息,并存入仓库数据库;同时将该扩展组件的发布或更新入库的信息发布至MQ中间件;
所述扩展组件控制中心用于读取扩展组件仓库中的扩展组件信息,并发布指令以控制宿主机环境的应用系统扩展组件进行在线版本更新;
所述扩展组件支撑中心用于将扩展组件以依赖库方式入驻至应用系统的可扩展节点,其包括几大模块:1)扩展组件预处理模块:通过MQ中间件监听应用系统所属扩展组件的发布或更新入库的信息;并将监听到的相关扩展组件通过扩展组件下载器提前下载至扩展组件本地存储区中,以供处理;
2)扩展组件加载代理模块:构建本地存储区中的扩展组件坐标,注入扩展组件运行时的上下文参数,对应用系统当前订阅的扩展组件版本进行加载并实例化;
3)扩展组件加载器:根据扩展组件加载代理模块构件的扩展组件坐标,将所需运行扩展组件的相关资源加载至应用系统的可扩展节点,支撑扩展组件运行实现;
4)指令中心:负责监听、解释扩展组件控制中心发出的指令,计算当前有效的扩展组件坐标实例,供扩展组件加载代理加载扩展组件时使用。
所述扩展组件仓库接收的扩展组件为独立的扩展组件模型,通过胖jar包方式发布;
扩展组件模型内部包括:扩展组件类文件存储区、扩展组件依赖库存储区、扩展组件依赖资源存储区,分别存储扩展组件类文件、扩展组件依赖库、扩展组件依赖资源;实现一个扩展组件所需的文件、依赖库、依赖资源在组件模型内聚集,方便打包工具对这三个区域的相关文件进行组装打包为一个jar包。
所述扩展组件仓库扫描读取的信息包括扩展组件的接口类、实现类、组件类型、版本信息。
所述扩展组件预处理模块中,如果相关扩展组件下载成功,则会发布一个应用系统运行节点对相关扩展组件版本下载成功的事件至MQ中间件;若下载不成功,则启动重试机制,重试多次;如成功下载则发布下载成功事件,如还是失败则发布该应用系统运行节点下载失败事件至MQ中间件;以供扩展组件控制中心通过至MQ中间件对宿主机环境的应用系统的相关组件下载事件进行监控。
本发明通过将独立的扩展组件模型打包发布更新至扩展组件仓库,通过扩展组件支撑中心的预处理,可监听到扩展组件的发布更新事件信息,自动判断发布更新的扩展组件是否属于当前的应用系统,如果是,该组件会预先被下载至组件本地存储区以供加载使用;根据控制中心的订阅发出扩展组件的更新指令,支撑中心的加载器代理启动扩展组件实例化处理,生成所需调用的扩展组件坐标,由加载器根据扩展组件坐标,按照扩展组件模型的资源布局进行扩展组件资源加载,实现扩展组件实例化。
本发明实现应用系统的扩展组件在线更新,避免了网络环境因素的影响,保证系统的稳定性,其中在线更新的独立扩展组件模型中包含了所需的文件、依赖库、依赖资源在组件模型内聚集,可避免应用系统更新扩展组件的依赖库及版本冲突的风险。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,一种应用系统扩展组件在线更新支撑系统,包括扩展组件仓库、扩展组件控制中心及扩展组件支撑中心;
所述扩展组件仓库用于接收并保存研发人员发布更新的扩展组件,同时扫描读取扩展组件的相关信息,并存入仓库数据库;同时将该扩展组件的发布或更新入库的信息发布至MQ中间件;
所述扩展组件控制中心用于读取扩展组件仓库中的扩展组件信息,并发布指令以控制宿主机环境的应用系统的扩展组件进行在线版本更新;
所述扩展组件支撑中心用于将扩展组件以依赖库方式入驻至应用系统的可扩展节点,其包括几大模块:1)扩展组件预处理模块:通过MQ中间件监听应用系统所属扩展组件的发布或更新入库的信息;并将监听到的相关扩展组件通过扩展组件下载器提前下载至扩展组件本地存储区中,以供处理;
2)扩展组件加载代理模块:构建本地存储区中的扩展组件坐标,注入扩展组件运行时的上下文参数,对应用系统当前订阅的扩展组件版本进行加载并实例化;
3)扩展组件加载器:根据扩展组件加载代理模块构件的扩展组件坐标,将所需运行扩展组件的相关资源加载至应用系统的可扩展节点,支撑扩展组件运行实现;
4)指令中心:负责监听、解释扩展组件控制中心发出的指令,计算当前有效的扩展组件坐标实例,供扩展组件加载代理加载扩展组件时使用。
所述扩展组件仓库接收的扩展组件为独立的扩展组件模型,通过胖jar包方式发布;
扩展组件模型内部包括:扩展组件类文件存储区、扩展组件依赖库存储区、扩展组件依赖资源存储区,分别存储扩展组件类文件、扩展组件依赖库、扩展组件依赖资源;实现一个扩展组件所需的文件、依赖库、依赖资源在组件模型内聚集,方便打包工具对这三个区域的相关文件进行组装打包为一个jar包。
所述扩展组件仓库扫描读取的信息包括扩展组件的接口类、实现类、组件类型、版本信息。
所述扩展组件预处理模块中,如果相关扩展组件下载成功,则会发布一个应用系统运行节点对相关扩展组件版本下载成功的事件至MQ中间件;若下载不成功,则启动重试机制,重试多次;如成功下载则发布下载成功事件,如还是失败则发布该应用系统运行节点下载失败事件至MQ中间件;以供扩展组件控制中心通过至MQ中间件对宿主机环境的应用系统的相关组件更新情况进行监控。
其主要流程为:
1、扩展组件的发布更新入扩展组件仓库:研发人员完成扩展组件的研发及测试,使用组件打包插件将应用系统更新所需要的文件、依赖库和依赖资源进行构建打包成独立的扩展组件模型,再发布更新至扩展组件仓库,扩展组件仓库后台接收并保存该扩展组件模型,并对该扩展组件模型的相关信息进行扫描存储,以便控制中心订阅扩展组件信息,同时发布扩展组件发布更新事件至MQ中间件;
2、扩展组件的预处理:支撑中心的预处理模块通过MQ中间件监听应用系统所属扩展组件的发布或更新入库的信息,判断该扩展组件是否属于当前应用系统,如果不是则忽略该扩展组件发布更新事件信息,如果是,则启动扩展组件下载器将监听到的相关扩展组件进行提前下载至扩展组件本地存储区以供加载使用;如该扩展组件下载成功完成,则发布该应用系统运行节点对该扩展组件成功下载事件的消息,如不成功,则重试下载,并判断重试次数是否超过配置或默认配置次数,一般为5次,如果没有超过次数,则继续重试下载,期间成功下载则发布成功下载事件的消息,如果重试下载超过次数,则发布该扩展组件下载失败事件的消息;
3、扩展组件实例化:当扩展组件下载至扩展组件本地存储区时,扩展组件加载代理根据应用系统可扩展节点的组件实例化需求启动,生成调用扩展组件的坐标,由指令中心监听到控制中心发布的订阅指令信息,并获取到该扩展组件的坐标,通过扩展组件加载器将扩展组件模型的相关资源从本地存储区布局加载至应用系统运行环境的可扩展节点进行扩展组件实例,完成扩展组件运行实现;在扩展组件在实例化过程中,如果加载器未加载到该组件模型,则实例化默认原始直接的扩展组件运行实现类。
尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种应用系统扩展组件在线更新支撑系统,其特征在于,包括扩展组件仓库、扩展组件控制中心及扩展组件支撑中心;
所述扩展组件仓库用于接收并保存扩展组件,同时扫描读取扩展组件的相关信息,并存入仓库数据库;同时将该扩展组件的发布或更新入库的信息发布至MQ中间件;
所述扩展组件控制中心用于读取扩展组件仓库中的扩展组件信息,并发布指令以控制应用系统的扩展组件进行在线版本更新;
所述扩展组件支撑中心用于将扩展组件以依赖库方式入驻至应用系统的可扩展节点,其包括几大模块:1)扩展组件预处理模块:通过MQ中间件监听应用系统所属扩展组件的发布或更新入库的信息;并将监听到的相关扩展组件通过扩展组件下载器提前下载至扩展组件本地存储区中,以供处理;
2)扩展组件加载代理模块:构建本地存储区中的扩展组件坐标,注入扩展组件运行时的上下文参数,对应用系统当前订阅的扩展组件版本进行加载并实例化;
3)扩展组件加载器:根据扩展组件加载代理模块构件的扩展组件坐标,将所需运行扩展组件的相关资源加载至应用系统的运行时环境,支撑扩展组件运行实现;
4)指令中心:负责监听、解释扩展组件控制中心发出的指令,计算当前有效的扩展组件坐标实例,供扩展组件加载代理加载扩展组件时使用;
所述扩展组件仓库接收的扩展组件为独立的扩展组件模型,通过胖jar包方式发布;
扩展组件模型内部包括:扩展组件类文件存储区、扩展组件依赖库存储区、扩展组件依赖资源存储区,分别存储扩展组件类文件、扩展组件依赖库、扩展组件依赖资源;实现一个扩展组件所需的文件、依赖库、依赖资源在组件模型内聚集,方便打包工具对这三个区域的相关文件进行组装打包为一个jar包;
所述扩展组件仓库扫描读取的信息包括扩展组件的接口类、实现类、组件类型、版本信息。
2.根据权利要求1所述的一种应用系统扩展组件在线更新支撑系统,其特征在于,所述扩展组件预处理模块中,如果相关扩展组件下载成功,则会发布一个应用系统运行节点对相关扩展组件版本下载成功的事件至MQ中间件;若下载不成功,则启动重试机制,重试多次;如成功下载则发布下载成功事件,如还是失败则发布该应用系统运行节点下载失败事件至MQ中间件;以供扩展组件控制中心通过至MQ中间件对宿主机环境的应用系统的相关组件下载事件进行监控。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010524174.3A CN111666090B (zh) | 2020-06-10 | 2020-06-10 | 一种应用系统扩展组件在线更新支撑系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010524174.3A CN111666090B (zh) | 2020-06-10 | 2020-06-10 | 一种应用系统扩展组件在线更新支撑系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111666090A CN111666090A (zh) | 2020-09-15 |
CN111666090B true CN111666090B (zh) | 2022-09-20 |
Family
ID=72386810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010524174.3A Active CN111666090B (zh) | 2020-06-10 | 2020-06-10 | 一种应用系统扩展组件在线更新支撑系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666090B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101277212A (zh) * | 2007-03-30 | 2008-10-01 | 上海众恒信息产业有限公司 | 资源管理平台及资源管理方法 |
CN102214109A (zh) * | 2010-04-08 | 2011-10-12 | 深圳市金蝶中间件有限公司 | 一种加载插件的方法及装置 |
CN103218220A (zh) * | 2013-02-25 | 2013-07-24 | 上海谐宇网络科技有限公司 | 基于动态可插拔组件的物联网中间件系统 |
CN104123151A (zh) * | 2013-04-28 | 2014-10-29 | 百度在线网络技术(北京)有限公司 | 移动终端中应用程序的插件管理方法、装置和移动终端 |
CN105320503A (zh) * | 2014-06-24 | 2016-02-10 | 深圳市茁壮网络股份有限公司 | 中间件插件框架设计系统及方法 |
CN105453035A (zh) * | 2013-05-29 | 2016-03-30 | 微软技术许可有限责任公司 | 通过在线存储库更新软件组件 |
CN106339237A (zh) * | 2016-08-16 | 2017-01-18 | 税友软件集团股份有限公司 | 针对JavaEE领域WEB应用的插件加载框架及方法 |
CN107483245A (zh) * | 2017-08-14 | 2017-12-15 | 上海新炬网络信息技术股份有限公司 | 一种基于karaf_agent的主动采集实现装置 |
CN110659045A (zh) * | 2019-08-30 | 2020-01-07 | 电子科技大学 | 一种软件化雷达实时动态更新系统 |
CN110825356A (zh) * | 2019-11-12 | 2020-02-21 | 东方电子股份有限公司 | 一种微服务开发框架及实时监控实现方法 |
CN110955534A (zh) * | 2019-10-10 | 2020-04-03 | 荣邦科技有限公司 | 一种基于中间件的业务流程自动化系统及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100596049C (zh) * | 2006-03-30 | 2010-03-24 | 阿里巴巴集团控股有限公司 | 一种消息重发方法和系统 |
US10104432B2 (en) * | 2006-12-01 | 2018-10-16 | Time Warner Cable Enterprises Llc | Methods and apparatus for software provisioning of a network device |
US8276167B2 (en) * | 2007-03-21 | 2012-09-25 | International Business Machines Corporation | Distributed pluggable middleware services |
-
2020
- 2020-06-10 CN CN202010524174.3A patent/CN111666090B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101277212A (zh) * | 2007-03-30 | 2008-10-01 | 上海众恒信息产业有限公司 | 资源管理平台及资源管理方法 |
CN102214109A (zh) * | 2010-04-08 | 2011-10-12 | 深圳市金蝶中间件有限公司 | 一种加载插件的方法及装置 |
CN103218220A (zh) * | 2013-02-25 | 2013-07-24 | 上海谐宇网络科技有限公司 | 基于动态可插拔组件的物联网中间件系统 |
CN104123151A (zh) * | 2013-04-28 | 2014-10-29 | 百度在线网络技术(北京)有限公司 | 移动终端中应用程序的插件管理方法、装置和移动终端 |
CN105453035A (zh) * | 2013-05-29 | 2016-03-30 | 微软技术许可有限责任公司 | 通过在线存储库更新软件组件 |
CN105320503A (zh) * | 2014-06-24 | 2016-02-10 | 深圳市茁壮网络股份有限公司 | 中间件插件框架设计系统及方法 |
CN106339237A (zh) * | 2016-08-16 | 2017-01-18 | 税友软件集团股份有限公司 | 针对JavaEE领域WEB应用的插件加载框架及方法 |
CN107483245A (zh) * | 2017-08-14 | 2017-12-15 | 上海新炬网络信息技术股份有限公司 | 一种基于karaf_agent的主动采集实现装置 |
CN110659045A (zh) * | 2019-08-30 | 2020-01-07 | 电子科技大学 | 一种软件化雷达实时动态更新系统 |
CN110955534A (zh) * | 2019-10-10 | 2020-04-03 | 荣邦科技有限公司 | 一种基于中间件的业务流程自动化系统及方法 |
CN110825356A (zh) * | 2019-11-12 | 2020-02-21 | 东方电子股份有限公司 | 一种微服务开发框架及实时监控实现方法 |
Non-Patent Citations (1)
Title |
---|
基于消息中间件构建网络测量信息服务;李云春,李鸣,李巍;《计算机应用研究》;20041128;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111666090A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110196731B (zh) | 一种运维系统、方法及存储介质 | |
CN109614167B (zh) | 一种管理插件的方法和系统 | |
CN101317381A (zh) | 对能力管理对象维护、对能力管理的方法、系统及终端 | |
CN114077423A (zh) | 基于移动跨平台的机场app开发容器架构 | |
CN113419750B (zh) | 一种模型推理服务调用系统和方法 | |
CN114416200A (zh) | 声明式云平台监控采集配置动态管理和加载的系统及方法 | |
CN111901142A (zh) | 一种用于嵌入式设备集群的固件静默升级方法及装置 | |
CN101668041A (zh) | 一种分布式ap下载的方法和装置 | |
CN112783570A (zh) | 基于服务网格的应用迁移方法、系统和介质 | |
CN112583630B (zh) | 设备管理方法、装置、系统、设备及存储介质 | |
CN114546588A (zh) | 任务的部署方法、装置、存储介质及电子装置 | |
US20030037323A1 (en) | Method for upgrading data | |
CN112214413B (zh) | 一种应用程序的测试方法、装置、设备及存储介质 | |
CN111666090B (zh) | 一种应用系统扩展组件在线更新支撑系统 | |
CN117055930A (zh) | 一种系统升级部署方法和系统 | |
CN112230978A (zh) | 一种多数据源动态切换方法、电子设备及存储介质 | |
CN111683022B (zh) | 白盒交换机及其转发功能的升级方法、可读存储介质 | |
CN101179804A (zh) | 移动终端的复位方法及系统 | |
CN113672334A (zh) | 一种容器管理方法及装置 | |
CN112199161A (zh) | 一种云平台服务管理方法、装置及相关组件 | |
CN110750296A (zh) | 一种应用处理方法及装置 | |
CN112363717B (zh) | 一种单个软件中加载不同功能的方法及终端 | |
CN110209480B (zh) | 一种数据包的操作方法、装置及系统 | |
CN116028544B (zh) | 基于openstack的定时任务动态添加方法 | |
US20230367632A1 (en) | Job management system and control method thereof |
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 |