CN107704277A - 插件加载方法及系统 - Google Patents

插件加载方法及系统 Download PDF

Info

Publication number
CN107704277A
CN107704277A CN201610627275.7A CN201610627275A CN107704277A CN 107704277 A CN107704277 A CN 107704277A CN 201610627275 A CN201610627275 A CN 201610627275A CN 107704277 A CN107704277 A CN 107704277A
Authority
CN
China
Prior art keywords
plug
unit
script
business
unified platform
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.)
Withdrawn
Application number
CN201610627275.7A
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.)
CHANGZHOU ZHONGXING HUADA TECHNOLOGY Co Ltd
Original Assignee
CHANGZHOU ZHONGXING HUADA TECHNOLOGY 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 CHANGZHOU ZHONGXING HUADA TECHNOLOGY Co Ltd filed Critical CHANGZHOU ZHONGXING HUADA TECHNOLOGY Co Ltd
Priority to CN201610627275.7A priority Critical patent/CN107704277A/zh
Publication of CN107704277A publication Critical patent/CN107704277A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • 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

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

本发明公开了一种插件加载方法及系统,属于计算机应用软件技术领域,包括以下步骤:S1:业务插件按照统一平台的接口要求进行插件配置文件定义和启动脚本配置;S2:统一平台通过扫描插件配置文件,获取业务插件启动所需的描述信息;S3:统一平台初始化完成后,调用各个业务插件对应的脚本文件,通过脚本文件完成对业务插件的加载和启动;S4:各个业务插件根据需要通过统一平台的接口获取公共信息数据。本发明的有益效果如下:本发明通过脚本的方式加载、启动插件,使得插件的加载过程更加简明,加载方式更加灵活且易于维护。

Description

插件加载方法及系统
技术领域
本发明涉及计算机应用软件技术领域,尤其涉及一种插件加载方法及系统。
背景技术
随着网络的普及,应用类软件进入了高速发展期,对于业务功能的需求变得更加的多样。因此,系统的兼容性与易扩展性变更尤为重要。为保证系统的这一特性,将系统平台化,业务模块插件化已经成为了一种较为普遍的架构方式。
平台化架构方式是指系统基础平台提供基本的、公共的功能服务。系统的业务模块以插件的方式存在,插件还包括了系统的第三方插件。系统根据具体需求,能够选择加载、卸载各个插件。通过系统基础平台实现对各个插件的控制、调用。当前常用的插件加载方式,插件与平台系统会存在依赖树关系,没有真正的将业务插件独立化,同时对系统的第三方插件也不能保证良好的兼容性。
当前较为通用的插件加载方式,在加载时,通常会使用到其开发语言的特性,或在数据结构定义上,未能完全脱离平台限制,未能实现对业务插件的独立化或者加载方式依赖于开发语言,这些均成为了亟需解决的难题。
发明内容
本发明的目的在于解决未能实现对业务插件独立化及加载方式依赖于开发语言等问题而提出的一种插件加载方法及系统。
为了实现以上发明目的,本发明采取的技术方案如下:一种插件加载方法,包括至少一个业务插件和统一平台,步骤如下:
S1:业务插件按照统一平台的接口要求进行插件配置文件定义和启动脚本配置;
S2:统一平台通过扫描插件配置文件,获取业务插件启动所需的描述信息;
S3:统一平台初始化完成后,调用各个业务插件对应的脚本文件,通过脚本文件完成对业务插件的加载和启动;
S4:各个业务插件根据需要通过统一平台的接口获取公共信息数据。
作为优选:步骤S1中,所述的插件配置文件定义的信息包括:业务插件名称、版本、描述信息及入口点脚本信息。
作为优选:步骤S1中,所述的启动脚本配置如下:在业务插件的入口点脚本至少包含初始化、启动、停止、重启和查看插件状态的接口。
作为优选:统一平台支持各业务插件在配置文件中定义对应组件的启动级别,统一平台在启动时按照启动级别从高到低依次进行加载,统一平台在停止时按照启动级别从低到高依次进行卸载。
作为优选:步骤S4中所述的接口是远程方法调用RMI接口。
为了解决上述问题,本发明还提出了一种系统,包括至少一个业务插件和统一平台,
所述业务插件包括配置模块,所述配置模块用于按照统一平台的接口要求进行插件配置文件定义和启动脚本配置;并通过统一平台的接口获取公共信息数据;
所述统一平台包括扫描模块和脚本调用模块,所述扫描模块用于扫描插件配置文件,获取业务插件启动所需的描述信息;所述脚本调用模块用于在统一平台初始化完成后,调用各个业务插件对应的脚本文件,完成对业务插件的加载和启动。
作为优选:所述配置模块具体包括插件配置模块和脚本配置模块;所述插件配置模块用于在插件配置文件中定义的信息包括插件名称、版本、描述信息及入口点脚本信息;所述脚本配置模块用于在业务插件的入口点脚本完成初始化、启动、停止、重启和查看插件。
作为优选:所述统一平台还包括启动级别模块,启动级别模块用于各业务插件在配置文件中定义对应组件的启动级别。
作为优选:所述的接口是远程方法调用RMI接口。
作为优选:所述的接口是JAVA消息服务JMS接口或者即时消息接口。
本发明的有益效果:为适应当前系统业务需求多变,将各个功能包装为独立插件的方式能够有效的提高系统扩展性与维护性,本发明通过脚本的方式加载、启动插件,使得插件的加载过程更加简明,加载方式更加灵活且易于维护。
具体有益效果如下:
1.因为是基于脚本启动,加载过程更加清晰,且易于扩充;
2.各个业务插件均能够独立运行,不存在强依赖树关系,使得各个插件更加易于维护;
3.具有良好的兼容性,因为脚本语言本身的特点,使得系统能够更加容易实现对三方插件的兼容和扩展。
附图说明
图1为本发明的系统框架结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明做进一步详细说明。
一种插件加载方法,包括至少一个业务插件和统一平台,步骤如下:
S1:业务插件按照统一平台的接口要求进行插件配置文件定义和启动脚本配置;
S2:统一平台通过扫描插件配置文件,获取业务插件启动所需的描述信息;
S3:统一平台初始化完成后,调用各个业务插件对应的脚本文件,通过脚本文件完成对业务插件的加载和启动;
S4:各个业务插件根据需要通过统一平台的接口获取公共信息数据。
步骤S1中,所述的插件配置文件定义的信息包括:业务插件名称、版本、描述信息及入口点脚本信息。
步骤S1中,所述的启动脚本配置如下:在业务插件的入口点脚本至少包含初始化、启动、停止、重启和查看插件状态的接口。
统一平台支持各业务插件在配置文件中定义对应组件的启动级别,统一平台在启动时按照启动级别从高到低依次进行加载,统一平台在停止时按照启动级别从低到高依次进行卸载。
步骤S4中所述的接口是远程方法调用RMI接口。
为了解决上述问题,本发明还提出了一种系统,包括至少一个业务插件和统一平台,
所述业务插件包括配置模块,所述配置模块用于按照统一平台的接口要求进行插件配置文件定义和启动脚本配置;并通过统一平台的接口获取公共信息数据;
所述统一平台包括扫描模块和脚本调用模块,所述扫描模块用于扫描插件配置文件,获取业务插件启动所需的描述信息;所述脚本调用模块用于在统一平台初始化完成后,调用各个业务插件对应的脚本文件,完成对业务插件的加载和启动。
所述配置模块具体包括插件配置模块和脚本配置模块;所述插件配置模块用于在插件配置文件中定义的信息包括插件名称、版本、描述信息及入口点脚本信息;所述脚本配置模块用于在业务插件的入口点脚本完成初始化、启动、停止、重启和查看插件。
所述统一平台还包括启动级别模块,启动级别模块用于各业务插件在配置文件中定义对应组件的启动级别。
所述的接口是远程方法调用RMI接口。
所述的接口是JAVA消息服务JMS接口或者即时消息接口。
如图1所示,RMI(RemoteMethodInvocation,远程方法调用)是一种实现远程过程调用的应用程序编程接口,其中业务插件与统一平台通信不一定需要使用RMI接口,也可通过JMS(Java Message Service Java,Java消息服务)、即时消息接口等其他进程间信息交互方式。
本发明是各个业务插件按照统一平台的接口要求进行插件配置文件定义和启动脚本配置,在启动脚本文件中实现基本的启动、停止、初始化等控制接口用于平台加载调用,从而将各个业务插件包装为能够独立运行启动的服务,各个插件均为独立进程。
统一平台与各业务插件的关系为松耦合的独立进程关系。统一平台与业务插件,插件和插件之间应尽可能保持相互独立、不受开发语言及插件本身的运行框架的限制。
具体实施例如下:
如图1所示,统一平台主用是完成各业务功能插件的加载、控制,同时提供各项公共服务,如授权、SSO(Single Sign On,单点登录)、页面菜单、样式控制、资源服务等。
统一平台自身启动完成后,将扫描插件配置文件,获取到四个业务插件的描述信息,描述信息中包括插件名称、插件启动脚本文件路径、插件加载优先级等信息。统一平台根据插件优先级依次加载各个插件。具体加载过程如下:
1)根据插件名称与启动脚本文件路径调用插件启动接口;
2)插件启动完成后,统一平台调用启动脚本文件中的初始化接口;
3)插件通过RMI接口,向平台请求自身初始化所需数据,完成插件加载。
具体流程如下:
S1:统一平台通过扫描业务插件配置文件,获取业务插件启动所需的描述信息,具体包括插件名称、启动脚本路径、权限控制(license)名称、数据库初始化文件路径等信息,以完成各个插件在统一平台的注册;
S2:统一平台初始化完成后,调用各个插件对应的脚本文件,通过脚本文件完成对业务插件的加载和启动;
S3:各个业务插件可根据需要通过RMI接口从统一平台获取公共信息数据。
要求各插件开发时必须按照统一平台的接口要求进行插件配置文件定义和启动脚本配置。
此基本要求包括:
(1)插件配置文件定义:插件配置文件定义的信息包括:当前业务插件名称、版本、描述信息及入口点脚本等必要信息;
(2)启动脚本配置:在插件的入口点脚本应至少包含初始化、启动、停止、重启、查看插件状态的接口;
(3)为了正确处理好各业务插件启动顺序,统一平台支持各业务插件在配置文件中定义对应插件的启动级别,统一平台在启动时会按照启动级别从高到低依次进行加载,统一平台在停止时会按照启动级别从低到高依次进行卸载。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

Claims (9)

1.一种插件加载方法,其特征在于,包括至少一个业务插件和统一平台,步骤如下:
S1:业务插件按照统一平台的接口要求进行插件配置文件定义和启动脚本配置;
S2:统一平台通过扫描插件配置文件,获取业务插件启动所需的描述信息;
S3:统一平台初始化完成后,调用各个业务插件对应的脚本文件,通过脚本文件完成对业务插件的加载和启动;
S4:各个业务插件根据需要通过统一平台的接口获取公共信息数据。
2.根据权利要求1所述的方法,其特征在于,步骤S1中,所述的插件配置文件定义的信息包括:业务插件名称、版本、描述信息及入口点脚本信息。
3.根据权利要求2所述的方法,其特征在于,步骤S1中,所述的启动脚本配置如下:在业务插件的入口点脚本至少包含初始化、启动、停止、重启和查看插件状态的接口。
4.根据权利要求3所述的方法,其特征在于,统一平台支持各业务插件在配置文件中定义对应组件的启动级别,统一平台在启动时按照启动级别从高到低依次进行加载,统一平台在停止时按照启动级别从低到高依次进行卸载。
5.根据权利要求2-4任一项所述的方法,其特征在于,步骤S4中所述的接口是远程方法调用RMI接口。
6.一种系统,其特征在于,包括至少一个业务插件和统一平台,
所述业务插件包括配置模块,所述配置模块用于按照统一平台的接口要求进行插件配置文件定义和启动脚本配置;并通过统一平台的接口获取公共信息数据;
所述统一平台包括扫描模块和脚本调用模块,所述扫描模块用于扫描插件配置文件,获取业务插件启动所需的描述信息;所述脚本调用模块用于在统一平台初始化完成后,调用各个业务插件对应的脚本文件,完成对业务插件的加载和启动。
7.根据权利要求6所述的系统,其特征在于,所述配置模块具体包括插件配置模块和脚本配置模块;所述插件配置模块用于在插件配置文件中定义的信息包括插件名称、版本、描述信息及入口点脚本信息;所述脚本配置模块用于在业务插件的入口点脚本完成初始化、启动、停止、重启和查看插件。
8.根据权利要求6或7所述的系统,其特征在于,所述统一平台还包括启动级别模块,启动级别模块用于各业务插件在配置文件中定义对应组件的启动级别。
9.根据权利要求8所述的系统,其特征在于,所述的接口是远程方法调用RMI接口。
CN201610627275.7A 2016-08-03 2016-08-03 插件加载方法及系统 Withdrawn CN107704277A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610627275.7A CN107704277A (zh) 2016-08-03 2016-08-03 插件加载方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610627275.7A CN107704277A (zh) 2016-08-03 2016-08-03 插件加载方法及系统

Publications (1)

Publication Number Publication Date
CN107704277A true CN107704277A (zh) 2018-02-16

Family

ID=61169015

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610627275.7A Withdrawn CN107704277A (zh) 2016-08-03 2016-08-03 插件加载方法及系统

Country Status (1)

Country Link
CN (1) CN107704277A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086114A (zh) * 2018-07-26 2018-12-25 郑州云海信息技术有限公司 一种生成web前端交互界面的方法、装置及终端
CN110007980A (zh) * 2019-01-29 2019-07-12 阿里巴巴集团控股有限公司 多业务服务端的实现方法和装置
CN110633098A (zh) * 2019-08-20 2019-12-31 华能四川水电有限公司 一种组件化服务的实现方式
CN112860345A (zh) * 2021-02-26 2021-05-28 中国银行股份有限公司 插件管理方法及装置
CN114546511A (zh) * 2020-11-11 2022-05-27 华为技术有限公司 插件管理方法、系统及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086114A (zh) * 2018-07-26 2018-12-25 郑州云海信息技术有限公司 一种生成web前端交互界面的方法、装置及终端
CN110007980A (zh) * 2019-01-29 2019-07-12 阿里巴巴集团控股有限公司 多业务服务端的实现方法和装置
CN110007980B (zh) * 2019-01-29 2022-05-24 创新先进技术有限公司 多业务服务端的实现方法和装置
CN110633098A (zh) * 2019-08-20 2019-12-31 华能四川水电有限公司 一种组件化服务的实现方式
CN110633098B (zh) * 2019-08-20 2023-11-14 华能四川水电有限公司 一种组件化服务的实现方式
CN114546511A (zh) * 2020-11-11 2022-05-27 华为技术有限公司 插件管理方法、系统及装置
CN112860345A (zh) * 2021-02-26 2021-05-28 中国银行股份有限公司 插件管理方法及装置

Similar Documents

Publication Publication Date Title
CN103810008B (zh) 插件加载方法及系统
CN107704277A (zh) 插件加载方法及系统
AU2003244041B2 (en) System architecture and related methods for dynamically adding software components to extend functionality of system processes
CN112491948B (zh) 非侵入式的单体应用微服务化方法、装置及计算机设备
CN110413259B (zh) Android服务框架、实现扩展服务的方法及装置
CN106372250A (zh) 通过url协议启动本地应用的参数传递方法及装置
CN109587272B (zh) 一种微服务的优化方法、装置和电子设备
CN111176791A (zh) 一种基于多虚拟机区块链平台跨虚拟机调用方法
CN112835975B (zh) 一种在区块链中部署、更新、调用智能合约的方法
US9361710B2 (en) Defining a midlet region space
CN111443939A (zh) 一种软件开发工具包的配置方法、装置和存储介质
CN107220074A (zh) 对支撑层软件功能的访问、升级方法及装置
CN108845800B (zh) 一种组件扩展功能的实现方法、装置、设备及存储介质
CN113157345A (zh) 前端工程自动启动方法及装置
CN113076144A (zh) 功放适配方法、终端设备、存储介质及计算机程序产品
CN108021445B (zh) 内存优化方法、装置、系统及计算机可读存储介质
CN112416453A (zh) 一种面向信创环境下国产化外部设备统一数据集成的方法和存储设备
US20090319985A1 (en) Method, system and apparatus for acquiring interface
CN109343970B (zh) 基于应用程序的操作方法、装置、电子设备及计算机介质
CN111090442B (zh) 一种应用更新方法、装置和存储介质
CN110852139A (zh) 生物特征识别方法、装置、设备以及存储介质
CN111191216B (zh) 具有java接口的ofd签章客户端及其用于签章验章的方法和系统
CN110389791B (zh) 组件调度方法、装置、设备及存储介质
CN107770210A (zh) 牌照方控制方法、机顶盒及家庭开放平台
CN113835723A (zh) 一种用于车辆电子控制单元的片上系统、升级系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20180216