CN112527337A - 一种基于插件式异构数据源热插拔加载引擎方法及装置 - Google Patents

一种基于插件式异构数据源热插拔加载引擎方法及装置 Download PDF

Info

Publication number
CN112527337A
CN112527337A CN202011598698.3A CN202011598698A CN112527337A CN 112527337 A CN112527337 A CN 112527337A CN 202011598698 A CN202011598698 A CN 202011598698A CN 112527337 A CN112527337 A CN 112527337A
Authority
CN
China
Prior art keywords
plug
sbp
package
loading
data source
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
CN202011598698.3A
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.)
Chengdu Sefon Software Co Ltd
Original Assignee
Chengdu Sefon Software Co Ltd
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 Chengdu Sefon Software Co Ltd filed Critical Chengdu Sefon Software Co Ltd
Priority to CN202011598698.3A priority Critical patent/CN112527337A/zh
Publication of CN112527337A publication Critical patent/CN112527337A/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
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Abstract

本发明公开了一种基于插件式异构数据源热插拔加载引擎方法及装置,主要解决现有技术中存在的现有基于OSGI框架技术做插件开发过程中存在需要人工干预服务启停,人员维护成本高及后续人员上手难度大的问题。该一种基于插件式异构数据源热插拔加载引擎方法包括以下步骤:定义类加载模型和其类加载API,使运行的底层插件之间相互隔离;定义插件开发规范,打包出SBP插件包;应用根据SBP插件包唯一ID下载对应SBP插件包后进行装载;各应用之间使用其相关API接口,插件引擎将自动代理并寻求其相关插件实现替换服务包。通过上述方案,本发明达到了服务不停机更新、能力快速扩展,天然服务于微服务应用的目的。

Description

一种基于插件式异构数据源热插拔加载引擎方法及装置
技术领域
本发明涉及大数据处理技术领域,具体地说,是涉及一种基于插件式异构数据源热插拔加载引擎方法及装置。
背景技术
在较大型的软件开发过程中,通常会建议底层功能插件化,业务功能模块化的开发模式,以期达到低耦合、高内聚、功能复用的优点;现常基于OSGI框架技术做插件开发,但开发过程中存在以下问题:
第一,开发过程中需要人为手动干预服务启停,再更新相应的服务或插件;当服务集群多时,其步骤繁琐且容易遗漏,人员维护成本高。
第二,OSGI技术入门要求高,对后续人员上手难度大,各bundle依赖关联难维护。
发明内容
本发明的目的在于提供一种基于插件式异构数据源热插拔加载引擎方法及装置,以解决现有基于OSGI框架技术做插件开发过程中存在需要人工干预服务启停,人员维护成本高及后续人员上手难度大的问题。
为了解决上述问题,本发明提供如下技术方案:
一种基于插件式异构数据源热插拔加载引擎方法包括以下步骤:
使底层插件之间相互隔离后打包出SBP插件包;
应用根据SBP插件包唯一ID下载对应SBP插件包后进行装载。
现有基于OSGI框架技术的插件开发具有过程如下:
一、梳理并定义各bundle依赖关系,手动执行编译不同bundle模块包;
二、将对应的bundle-jar引入对应APP应用中 ,再生成对应app包;如再次重复以上步骤,重新生成app包;
三、需要人为手动上传至应用服务器,停止对应服务。
四、替换应用服务包,再重新启动服务。
上述过程中需要人工干预服务启停,人员维护成本高及后续人员上手难度大,本发明使用底层插件之间相互隔离打包出SBP插件包,然后根据其对应的唯一ID下载SBP插件包后进行装载,不需要人为干预启停服用,避免了后期人员维护成本及后续人员上手难度大的情况,有效节省一定的人工维护成本。
进一步的,使底层插件之间相互隔离的实现方法为:定义类加载模型和其类加载API;将底层插件之间相互隔离便于多个应用插件自动更新;本发明是基于Java实现的轻量级类隔离容器引擎框架,主要提供类隔离和插件合并部署能力。
进一步的,应用装载SBP插件后,各应用之间使用其相关API接口,插件引擎将自动代理并寻求其相关插件实现替换服务包;可实现服务能力热插拔,服务不停机更新、能力快速扩展,天然服务于微服务应用;解决因应用或业务变得庞大等原因引起的包冲突问题,如多源多版本兼容性问题。
进一步的,打包出SBP插件包的具体过程为:重新整理和定义插件开发规范,然后利用jar包管理工具maven进行工程jar依赖管理,同时配合自定义的maven打包插件bump-maven-plugin,快速生成SBP插件包。
进一步的,打包出SBP插件包后,将其动态上传并推送至统一的web界面管理插件中的文件管理中心;本发明提供统一的界面插件管理应用方式,减少相应的开发、实施部署能力较大程度上减少人工维护成本。
进一步的,应用根据SBP插件包中唯一ID,从文件管理中心下载对应SBP插件,到应用的服务本地。
进一步的,应用对下载的SBP插件包进行装载的具体过程为:应用基于SPI技术和ClassLoader技术实现的加载引擎,将每个SBP插件以唯一插件ID,装载到应用内部。
一种基于插件式异构数据源热插拔加载引擎装置,其特征在于,包括存储器:用于存储可执行指令;处理器:用于执行所述存储器中存储的可执行指令,实现一种基于插件式异构数据源热插拔加载引擎方法。
与现有技术相比,本发明具有以下有益效果:
(1)本发明提供一种统一管理基于Java实现的轻量级类隔离容器引擎框架,主要提供类隔离和插件合并部署能力。
(2)本发明中提供统一的界面插件管理应用方式,减少相应的开发、实施部署能力较大程度上减少人工维护成本。
(3)本发明可实现服务能力热插拔,服务不停机更新、能力快速扩展,天然服务于微服务应用;解决因应用或业务变得庞大等原因引起的包冲突问题,如多源多版本兼容性问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,其中:
图1为本发明动态管理插件的结构框图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合图1对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
Java SPI:全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。
JVM与进程:JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。每用java命令启动一个java应用程序,就会启动一个JVM进程。同一个JVM进程中,有且只有一个进程,就是它自己。
SBP插件包:使用我司自定义扩展的的 Maven 插件 bump-maven-plugin可以将工程应用打包成一个标准格式的SBP可执行包。
实施例1
如图1所示,一种基于插件式异构数据源热插拔加载引擎方法包括以下步骤:
S1、定义类加载模型和其类加载API,使运行的底层插件之间相互隔离;
S2、定义插件开发规范,打包出SBP插件包;
S3、应用根据SBP插件包唯一ID下载对应SBP插件包后进行装载;
S4、各应用之间使用其相关API接口,插件引擎将自动代理并寻求其相关插件实现替换服务包。
步骤S1中定义类加载模型和其类加载API,步骤S2打包SBP插件,步骤S3应用根据唯一ID装载SBP插件,步骤S4中插件合并部署,本发明提供类隔离和插件合并部署能力,通过该技术方案可实现服务能力热插拔,服务不停机更新、能力快速扩展,天然服务于微服务应用;解决因应用或业务变得庞大等原因引起的包冲突问题,如多源多版本兼容性问题;有效节省一定的人工维护成本。
实施例2
本实施例在实施例1的基础上进一步的,打包出SBP插件包的具体过程为:重新整理和定义插件开发规范,然后利用jar包管理工具maven进行工程jar依赖管理,同时配合自定义的maven打包插件bump-maven-plugin,快速生成SBP插件包。
实施例3
本实施例在实施例1的基础上进一步的,提供统一的web界面管理插件,动态将打包好的SBP插件上传并推送至文件管理中心;本发明提供统一的界面插件管理应用方式,减少相应的开发、实施部署能力较大程度上减少人工维护成本,可以有效帮助解决依赖包冲突、功能能力扩展快速部署等场景问题。
实施例4
本实施例在实施例1的基础上进一步的,应用根据SBP插件包中唯一ID,从文件管理中心下载对应SBP插件,到应用的服务本地;应用对下载的SBP插件包进行装载的具体过程为:应用基于SPI技术和ClassLoader技术实现的加载引擎,将每个SBP插件以唯一插件ID,装载到应用内部。
实施例5
一种基于插件式异构数据源热插拔加载引擎装置,其特征在于,包括存储器:用于存储可执行指令;处理器:用于执行所述存储器中存储的可执行指令,实现一种基于插件式异构数据源热插拔加载引擎方法。
本发明提供一种统一管理,基于Java实现的轻量级类隔离容器引擎框架,主要提供类隔离和插件合并部署能力;在较大型的软件开发过程中,通常会建议底层功能插件化,业务功能模块化的开发模式,以期达到低耦合、高内聚、功能复用的优点。基于此,本发明提供了一套较为规范化、插件化的开发方方案,提供统一的界面插件管理应用方式,减少相应的开发、实施部署能力较大程度上减少人工维护成本。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (8)

1.一种基于插件式异构数据源热插拔加载引擎方法,其特征在于,包括以下步骤:
使底层插件之间相互隔离后打包出SBP插件包;
应用根据SBP插件包唯一ID下载对应SBP插件包后进行装载。
2.根据权利要求1所述的一种基于插件式异构数据源热插拔加载引擎方法,其特征在于,使底层插件之间相互隔离的实现方法为:定义类加载模型和其类加载API。
3.根据权利要求2所述的一种基于插件式异构数据源热插拔加载引擎方法,其特征在于,应用装载SBP插件后,各应用之间使用其相关API接口,插件引擎将自动代理并寻求其相关插件实现替换服务包。
4.根据权利要求1所述的一种基于插件式异构数据源热插拔加载引擎方法,其特征在于,打包出SBP插件包的具体过程为:重新整理和定义插件开发规范,然后利用jar包管理工具maven进行工程jar依赖管理,同时配合自定义的maven打包插件bump-maven-plugin,快速生成SBP插件包。
5.根据权利要求1所述的一种基于插件式异构数据源热插拔加载引擎方法,其特征在于,打包出SBP插件包后,将其动态上传并推送至统一的web界面管理插件中的文件管理中心。
6.根据权利要求5所述的一种基于插件式异构数据源热插拔加载引擎方法,其特征在于,应用根据SBP插件包中唯一ID,从文件管理中心下载对应SBP插件,到应用的服务本地。
7.根据权利要求6所述的一种基于插件式异构数据源热插拔加载引擎方法,其特征在于,应用对下载的SBP插件包进行装载的具体过程为:应用基于SPI技术和ClassLoader技术实现的加载引擎,将每个SBP插件以唯一插件ID,装载到应用内部。
8.一种基于插件式异构数据源热插拔加载引擎装置,其特征在于,包括
存储器:用于存储可执行指令;
处理器:用于执行所述存储器中存储的可执行指令,实现如权利要求1-7任一项所述的一种基于插件式异构数据源热插拔加载引擎方法。
CN202011598698.3A 2020-12-30 2020-12-30 一种基于插件式异构数据源热插拔加载引擎方法及装置 Pending CN112527337A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011598698.3A CN112527337A (zh) 2020-12-30 2020-12-30 一种基于插件式异构数据源热插拔加载引擎方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011598698.3A CN112527337A (zh) 2020-12-30 2020-12-30 一种基于插件式异构数据源热插拔加载引擎方法及装置

Publications (1)

Publication Number Publication Date
CN112527337A true CN112527337A (zh) 2021-03-19

Family

ID=74977547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011598698.3A Pending CN112527337A (zh) 2020-12-30 2020-12-30 一种基于插件式异构数据源热插拔加载引擎方法及装置

Country Status (1)

Country Link
CN (1) CN112527337A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114936049A (zh) * 2022-05-17 2022-08-23 浙江大学 一种可热插拔的数据融合平台算子动态扩展方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108446111A (zh) * 2018-03-26 2018-08-24 国家电网公司客户服务中心 一种基于Spring cloud的微服务构建方法
CN111176662A (zh) * 2020-01-20 2020-05-19 厦门靠谱云股份有限公司 可在分布式与单体环境自由组装部署的架构实现方法及部署方法
CN111324359A (zh) * 2020-02-27 2020-06-23 支付宝(杭州)信息技术有限公司 插件部署方法及装置
CN111796834A (zh) * 2020-06-30 2020-10-20 福信富通科技股份有限公司 一种可组合的微服务开发框架的部署方法、装置及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108446111A (zh) * 2018-03-26 2018-08-24 国家电网公司客户服务中心 一种基于Spring cloud的微服务构建方法
CN111176662A (zh) * 2020-01-20 2020-05-19 厦门靠谱云股份有限公司 可在分布式与单体环境自由组装部署的架构实现方法及部署方法
CN111324359A (zh) * 2020-02-27 2020-06-23 支付宝(杭州)信息技术有限公司 插件部署方法及装置
CN111796834A (zh) * 2020-06-30 2020-10-20 福信富通科技股份有限公司 一种可组合的微服务开发框架的部署方法、装置及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114936049A (zh) * 2022-05-17 2022-08-23 浙江大学 一种可热插拔的数据融合平台算子动态扩展方法
CN114936049B (zh) * 2022-05-17 2023-09-29 浙江大学 一种可热插拔的数据融合平台算子动态扩展方法

Similar Documents

Publication Publication Date Title
US10599533B2 (en) Cloud storage using merkle trees
CN109491776B (zh) 任务编排方法和系统
US9063746B2 (en) Deployment of software applications on a cloud computing platform
CN102314358B (zh) 一种在云平台上以soa的方式部署常规应用的方法
CN111367818B (zh) 基于动态数据返回的系统组件测试方法及装置
CN110888652B (zh) 基于jenkins插件的多版本构建方法及终端
JP6052406B2 (ja) 分散処理システム、分散処理装置、分散処理方法および分散処理プログラム
CN106339237A (zh) 针对JavaEE领域WEB应用的插件加载框架及方法
CN104219298A (zh) 集群系统及其数据备份的方法
CN112527337A (zh) 一种基于插件式异构数据源热插拔加载引擎方法及装置
KR101117165B1 (ko) 이기종 운영체제 계층 모듈에서 동작하는 웹기반어플리케이션의 연동이 가능한 모바일 단말기용 웹 플랫폼 유닛
AU2016378425A1 (en) Application program running method and apparatus
CN110955415A (zh) 一种投影多平台服务适配的方法
CN116382694A (zh) 一种提升容器环境下Maven工程编译速度的方法
CN113326098B (zh) 支持kvm虚拟化与容器虚拟化的云管平台
CN114840195A (zh) 一种针对iOS SDK静态库的私有化方法
CN113377415A (zh) 应用发布方法及装置
CN112667491B (zh) 虚拟机的功能测试方法及装置
CN104363273A (zh) 一种flex无服务器调用外部程序的方法及系统
CN113568623A (zh) 一种部署应用的方法、装置和电子设备
CN113157550A (zh) 基于容器的漏洞环境管理方法、系统
CN110554859A (zh) 避免键值冲突的方法及装置
CN113296898B (zh) 异步任务处理方法、装置、电子设备和存储介质
CN115408047B (zh) 一种版本发布方法、装置及电子设备
CN117093286B (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20210319

WD01 Invention patent application deemed withdrawn after publication