CN114936049A - 一种可热插拔的数据融合平台算子动态扩展方法 - Google Patents
一种可热插拔的数据融合平台算子动态扩展方法 Download PDFInfo
- Publication number
- CN114936049A CN114936049A CN202210539517.2A CN202210539517A CN114936049A CN 114936049 A CN114936049 A CN 114936049A CN 202210539517 A CN202210539517 A CN 202210539517A CN 114936049 A CN114936049 A CN 114936049A
- Authority
- CN
- China
- Prior art keywords
- plug
- module
- operator
- package
- data fusion
- 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
Images
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种可热插拔的数据融合平台算子动态扩展方法。本发明将需要更新的插件包通过上传模块上传到数据融合平台,并解析算子的插件包,并将其分发给各节点;算子执行模块在执行新的数据融合流程时,调用插件模块,对未加载的插件以及依赖进行加载。如果找不到相关依赖,将加载依赖类委托给算子执行模块的类加载器进行加载。本发明不仅实现了插件包多节点分发,还提供了不重启服务的热插拔式更新方法。
Description
技术领域
本发明涉及数据融合领域,特别是涉及一种可热插拔的数据融合平台算子动态扩展方法。
背景技术
现有的服务插件进行更新时,常常需要停机更新,会导致服务较长时间的不可用,对数据有实时性要求的服务来说,是难以接受的,所以需要有一种技术实现服务的热更新。同时,停机更新在重启后恢复现场需要消耗大量的人力去维护服务是否正常启动,以及手动恢复服务断档期间数据丢失的问题,所以需要避免服务的重启。
另外,在软件开发的过程中,不同应用场景对功能有定制化的需求,同时又需要依靠主线版本更新的内容,现有的技术不可避免的需要对每个分支进行维护,所以需要一种技术可以在主线版本上集成定制化的功能。
原有的插件技术,仅针对单节点服务进行更新,最直观的就是后端算子进行了更新,但是前端算子的展现形式未更新,所以需要一种技术,使得多个节点,前后端之间,均能通过一次热插拔实现全量更新。
发明内容
基于此,本发明的目的在于,提供一种可热插拔的数据融合平台算子动态扩展方法,减少数据融合相关算子的大小并实现各算子间的依赖隔离。
本发明解决技术问题采用如下技术方案:一种可热插拔的数据融合平台算子动态扩展方法,所述数据融合平台包括前端应用模块、上传模块、算子执行模块和插件模块;该方法包括以下步骤:
S1、将需要更新的插件包通过上传模块上传到数据融合平台;
S2、上传模块针对上传的插件包在上传时进行解析,把插件包的内容二次分发到前端应用模块和算子执行模块;
S3、用户操作前端界面时,读取前端应用模块中所需要用的插件包资源,前端应用模块调用算子执行模块启动数据流服务,进行数据融合流程;
S4、数据流服务在启动时,检查所需要用到的算子是否在算子执行模块的缓存中存在,如果存在,执行数据流服务,直到结束流程;如果不存在,则调用插件模块,执行步骤S5,执行数据流服务以及调用插件模块时,不需要数据融合平台停止提供服务,直接实现算子的动态扩展;
S5、插件模块根据预先定义的算子插件规范,从算子执行模块的插件包资源中读取所有需要加载的类名,插件模块调用自己的类加载器,读取插件包中的类,以及其依赖,如果存在找不到相关依赖的情况,插件模块将需要加载依赖类委托给算子执行模块的类加载器进行加载。
进一步地,步骤S3中,读取前端应用模块中所需要用的插件包资源时,如果插件包无法读取,则会提醒用户该插件包损坏,无法提供插件对应的功能。
进一步地,步骤S4中,执行数据流服务时已经用过的算子缓存在算子执行模块中。
进一步地,步骤S5中从自定义的META_INF(类名目录文件)中读取类名进行加载。
相对于现有技术,本发明的数据融合平台算子的动态扩展并可热插拔方法的有益效果
1.本发明采用插件模块进行数据融合平台算子的动态扩展,能够解决代码的耦合问题,便于扩展;
2.本发明插件模块包含插件自身的类加载方式以及依靠算子执行模块的类加载方式;共用的依赖由执行模块提供,将独自需要的依赖单独进行封装,使得在减少插件大小的同时,实现了各插件间依赖的隔离;
3.本发明使得服务能够热更新,对于实时运行的服务,确保服务的不断档;同时可以减少服务重启时不必要的服务运维人力消耗;
4.本发明能够使得一个插件实现全量分布式更新服务。
附图说明
图1为本发明的数据融合平台的插件包上传分发方式的结构示意图;
图2为本发明一种适用于数据融合平台的插件类依赖加载方式的工作示意图。
具体实施方式
下面对发明的具体实施方式详细说明
为了将数据上传至区块链平台,数据集成平台需要使用一个区块链插件来实现对应的功能。其中区块链数据上传插件需要用JAVA/Kotlin语言进行编写,并且后端组件需要实现功能类ProcessorFunction接口(数据集成平台中基础执行组件接口),以及实现前端显示类Module接口(数据集成平台中基础前端组件接口),并将实现的Module接口类名写入到META_INF中,最后将上述文件用maven打成jar包,就完成了区块链平台算子插件包的制作。数据融合平台算子动态扩展为一种可热插拔的方法,具体过程如下:
S1、将区块链平台算子插件包通过上传模块2上传到数据融合平台之后,执行步骤S2;
S2、数据融合平台的上传模块2将会对其进行解析,并按照各个节点的需要,把插件包的内容二次分发到各节点的指定位置,例如二次分发到前端应用模块1和算子执行模块3,执行S3;
S3、在用户界面编辑新流程的时候,会自动从资源文件夹中读取前端应用模块1所需要用的插件包资源,如果插件包无法读取,则会提醒用户该插件包损坏,无法提供插件对应的功能。在设计完成对应的区块链数据上传流程后,前端应用模块1调用算子执行模块3启动数据流服务,进行数据融合流程,接下来执行步骤S4;
S4、在部署新的数据流服务时,将首先检查所需要用到的算子是否均已在算子执行模块3的缓存中存在(执行数据流服务时已经用过的算子缓存在算子执行模块3中),如果存在,表示算子均已加载,执行数据流服务,即将运行流程使得将需要的数据上传值区块链平台,直到上传完成,然后结束流程;如果没有加载过,则调用插件模块4,执行步骤S5;执行数据流服务以及调用插件模块4时,不需要数据融合平台停止提供服务,直接实现算子的动态扩展;
S5、插件模块4根据预先定义的算子插件规范,从插件包规范的文件(自定义的META_INF(类名目录文件))中读取所有需要加载的类名,然后执行步骤S5.1;
S5.1、插件模块4调用自己的类加载器,读取插件包中的类,以及其依赖,如果存在找不到相关依赖的情况,执行S5.2;
S5.2、插件模块4将需要加载依赖类委托给算子执行模块3的类加载器进行加载。
上面对本发明的实施方式做了详细说明。但是本发明并不限于上述实施方式,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化,这些都属于本发明的保护范围。
Claims (4)
1.一种可热插拔的数据融合平台算子动态扩展方法,其特征在于,所述数据融合平台包括前端应用模块、上传模块、算子执行模块和插件模块;该方法包括以下步骤:
S1、将需要更新的插件包通过上传模块上传到数据融合平台;
S2、上传模块针对上传的插件包在上传时进行解析,把插件包的内容二次分发到前端应用模块和算子执行模块;
S3、用户操作前端界面时,读取前端应用模块中所需要用的插件包资源,前端应用模块调用算子执行模块启动数据流服务,进行数据融合流程;
S4、数据流服务在启动时,检查所需要用到的算子是否在算子执行模块的缓存中存在,如果存在,执行数据流服务,直到结束流程;如果不存在,则调用插件模块,执行步骤S5,执行数据流服务以及调用插件模块时,不需要数据融合平台停止提供服务,直接实现算子的动态扩展;
S5、插件模块根据预先定义的算子插件规范,从算子执行模块的插件包资源中读取所有需要加载的类名,插件模块调用自己的类加载器,读取插件包中的类,以及其依赖,如果存在找不到相关依赖的情况,插件模块将需要加载依赖类委托给算子执行模块的类加载器进行加载。
2.根据权利要求1所述的一种可热插拔的数据融合平台算子动态扩展方法,其特征在于,步骤S3中,读取前端应用模块中所需要用的插件包资源时,如果插件包无法读取,则会提醒用户该插件包损坏,无法提供插件对应的功能。
3.根据权利要求1所述的一种可热插拔的数据融合平台算子动态扩展方法,其特征在于,步骤S4中,执行数据流服务时已经用过的算子缓存在算子执行模块中。
4.根据权利要求1所述的一种可热插拔的数据融合平台算子动态扩展方法,其特征在于,步骤S5中从自定义的META_INF(类名目录文件)中读取类名进行加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210539517.2A CN114936049B (zh) | 2022-05-17 | 2022-05-17 | 一种可热插拔的数据融合平台算子动态扩展方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210539517.2A CN114936049B (zh) | 2022-05-17 | 2022-05-17 | 一种可热插拔的数据融合平台算子动态扩展方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114936049A true CN114936049A (zh) | 2022-08-23 |
CN114936049B CN114936049B (zh) | 2023-09-29 |
Family
ID=82865073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210539517.2A Active CN114936049B (zh) | 2022-05-17 | 2022-05-17 | 一种可热插拔的数据融合平台算子动态扩展方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114936049B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019763A (zh) * | 2012-11-06 | 2013-04-03 | 深圳中兴网信科技有限公司 | 插件扩展装置和插件扩展方法 |
US20130183935A1 (en) * | 2012-01-16 | 2013-07-18 | Microsoft Corporation | Extensible framework for wireless network connectivity |
CN105373396A (zh) * | 2015-08-14 | 2016-03-02 | 腾讯科技(深圳)有限公司 | 插件平台中的插件更新方法和装置 |
CN112445497A (zh) * | 2020-11-25 | 2021-03-05 | 中国电子科技集团公司第五十四研究所 | 一种基于插件式可扩展架构的遥感图像处理系统 |
CN112527337A (zh) * | 2020-12-30 | 2021-03-19 | 成都四方伟业软件股份有限公司 | 一种基于插件式异构数据源热插拔加载引擎方法及装置 |
-
2022
- 2022-05-17 CN CN202210539517.2A patent/CN114936049B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130183935A1 (en) * | 2012-01-16 | 2013-07-18 | Microsoft Corporation | Extensible framework for wireless network connectivity |
CN103019763A (zh) * | 2012-11-06 | 2013-04-03 | 深圳中兴网信科技有限公司 | 插件扩展装置和插件扩展方法 |
CN105373396A (zh) * | 2015-08-14 | 2016-03-02 | 腾讯科技(深圳)有限公司 | 插件平台中的插件更新方法和装置 |
CN112445497A (zh) * | 2020-11-25 | 2021-03-05 | 中国电子科技集团公司第五十四研究所 | 一种基于插件式可扩展架构的遥感图像处理系统 |
CN112527337A (zh) * | 2020-12-30 | 2021-03-19 | 成都四方伟业软件股份有限公司 | 一种基于插件式异构数据源热插拔加载引擎方法及装置 |
Non-Patent Citations (1)
Title |
---|
陈方明, 陈奇: "基于插件思想的可重用软件设计与实现", 计算机工程与设计, no. 01 * |
Also Published As
Publication number | Publication date |
---|---|
CN114936049B (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8595715B2 (en) | Dynamic software version selection | |
CN102411506B (zh) | Java系统业务单元插件式管理系统及业务功能动态变更方法 | |
CN107391104B (zh) | 一种客户端与react native代码的更新依赖管理方法、装置及系统 | |
US7089550B2 (en) | Method and system for performing SW upgrade in a real-time system | |
CN109144533B (zh) | 一种应用程序的更新及加载的方法、系统及计算机装置 | |
JP5542796B2 (ja) | モバイル・デバイス・ソフトウェアの管理方法及び装置 | |
KR980700608A (ko) | 상태 이전을 허용하는 동기화방법(method of synchronization allowing state transfer) | |
WO2021037050A1 (zh) | 一种代码变更方法及装置 | |
CN104375849A (zh) | 加载内核的方法及装置 | |
CN110377580B (zh) | 一种数据迁移方法、装置及设备 | |
CN111857801B (zh) | 一种移动应用的构建方法 | |
CN104750528A (zh) | 一种Android程序中的组件管理方法和装置 | |
CN112835975B (zh) | 一种在区块链中部署、更新、调用智能合约的方法 | |
CN111651219A (zh) | 一种多模块项目配置文件管理的方法及设备 | |
CN112214388A (zh) | 内存监控方法、装置、设备及计算机可读存储介质 | |
CN104111843A (zh) | 一种基于沙箱的脚本更新方法及系统 | |
CN107544813B (zh) | 一种静态库配置的切换方法和系统 | |
CN103838564A (zh) | 一种属性加载方法及系统 | |
CN114936049A (zh) | 一种可热插拔的数据融合平台算子动态扩展方法 | |
CN113535254A (zh) | 一种微服务的处理方法、部署方法和相关装置 | |
CN103729224A (zh) | 基于开放平台的应用加载方法及装置 | |
US8019985B2 (en) | Data-processing arrangement for updating code in an auxiliary processor memory | |
US20230289178A1 (en) | Image configuration method, device and system, and storage medium | |
WO2022120640A1 (zh) | 基于electron的更新方法及系统 | |
CN115328526A (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 |