CN103914287A - 基于插件机制的软件系统及其实现方法 - Google Patents
基于插件机制的软件系统及其实现方法 Download PDFInfo
- Publication number
- CN103914287A CN103914287A CN201210593393.2A CN201210593393A CN103914287A CN 103914287 A CN103914287 A CN 103914287A CN 201210593393 A CN201210593393 A CN 201210593393A CN 103914287 A CN103914287 A CN 103914287A
- Authority
- CN
- China
- Prior art keywords
- plug
- unit
- slot
- software
- configuration file
- 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
Links
- 230000007246 mechanism Effects 0.000 title claims abstract description 30
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000001514 detection method Methods 0.000 claims abstract description 10
- 230000008569 process Effects 0.000 claims description 8
- 238000009434 installation Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 8
- 238000012423 maintenance Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 24
- 238000011161 development Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000008278 dynamic mechanism Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000011514 reflex Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010626 work up procedure Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于插件机制的软件系统,同时也公开了该软件系统实现动态检测插件机制的方法。该软件系统包括多个插件、插件框架和基础运行环境;插件框架中包括多个插槽、插槽调度模块和插槽协调模块,插件通过插槽与插件框架进行数据交换;插件具有配置文件,插件框架通过扫描配置文件的有无实现插件的即插即用。利用本发明,可以减少软件系统的维护时间和成本,实现敏捷项目管理,快速响应客户需求。这将改变软件难于设计、难于管理、难于维护等局面,有效降低软件的设计难度、管理难度、维护难度。
Description
技术领域
本发明涉及一种基于插件机制的软件系统,同时也涉及该软件系统实现动态检测插件机制的方法,属于计算机软件技术领域。
背景技术
20世纪60年代以来,随着第三代计算机的产生,计算机的硬件性能发生了翻天覆地的变化,运行大型的复杂软件系统已经成为可能。然而,相应的软件开发技术却难以满足大型软件系统的开发需要,因而造成如下的诸多问题:
1.大多数大型软件开发项目的成本都超过预算,开发进度一再拖延;
2.软件产品质量不可靠,大型软件系统存在缺陷(bug)几乎成为不可避免的问题;
3.软件产品难以维护,后期的使用与维护会产生高额费用。
随着信息技术的发展,软件作为一种信息技术的主要载体日益渗透到社会政治、经济、文化乃至生活的各个方面和各个层次。软件无所不在,其需求愈来愈多,复杂度愈来愈高,可用性要求愈来愈强。如何高效地开发和生产可靠、可信的软件,是软件领域一直面对的重大问题。
为此,在申请号为PCT/US2002/016425的PCT国际申请中,提出了一种用于允许客户应用程序与服务器组件应用程序通信的框架体系结构系统,包括:服务器引擎,用于向服务器提供客户访问,所述服务器引擎进一步包括:用于提供服务的服务器组件;用于提供所述服务的功能的所述服务器组件内的具体实现;以及用于允许客户应用程序访问所述具体实现的接口机制。
在申请号为201210158952.7的中国发明专利申请中,公开了一种基于文档树和消息泵的插件式软件设计方法,按功能将软件拆分成多个插件,一个插件对应着一个或多个功能模块,每个插件分为模型层、视图层和控制层,将所有插件中模型层里的数据和文档抽取出来构成一个树形结构的管理文档。该技术方案加快和简化了模块间通信的速度,提高了系统的扩展性和可维护性。在插件视图管理方面,采用框架容器统一管理视图,易于软件功能的扩展。
发明内容
本发明所要解决的首要技术问题在于提供一种基于插件机制的软件系统。
本发明所要解决的另一技术问题在于提供上述软件系统实现动态检测插件机制的方法。
为实现上述的发明目的,本发明采用下述的技术方案:
一种基于插件机制的软件系统,包括多个插件、插件框架和基础运行环境;
所述插件框架中包括多个插槽、插槽调度模块和插槽协调模块,所述插件通过所述插槽与所述插件框架进行数据交换;
所述插件具有配置文件,所述插件框架通过扫描所述配置文件的有无实现所述插件的即插即用。
其中较优地,所述插件是以插件框架为基础,按照预定的插件标准并结合特定的业务功能需求制作的软件模块;所述插槽是一个内置标准协议的基础软件包。
其中较优地,所述基础运行环境包括操作系统、数据库、WEB服务器和脚本服务器。
其中较优地,所述插槽调度模块用于依据业务需要,为所述插槽调用相应的插件。
其中较优地,所述插件协调模块用于实现各个插件之间的协作,共同完成一个功能业务。
其中较优地,所述配置文件为XML格式。
一种实现动态检测插件机制的方法,包括如下步骤:
插件框架定时扫描插件安装的配置文件;如果新增加了配置文件,则判断为新增加了插件,进一步检测该插件的版本;如果新加入的插件版本比当前正在运行的插件版本更新,则插槽加载这个新加入的插件,卸载老的插件;否则,仍然保留当前运行的插件。
其中较优地,如果所述插件在运行过程中需要卸载,则将对应所述插件的配置文件删除;所述插件框架在定时扫描过程中,如果所述插槽发现某个插件所对应的配置文件不存在,立即卸载所述插件、回收资源。
利用本发明,可以减少软件系统的维护时间和成本,实现敏捷项目管理,快速响应客户需求。这将改变软件难于设计、难于管理、难于维护等局面,有效降低软件的设计难度、管理难度、维护难度。
附图说明
图1为基于插件机制的软件系统整体架构示意图;
图2为插件与插槽之间的连接关系示意图。
具体实施方式
对比硬件与软件的发展历史来看,两者最后发展的结果大相径庭,硬件越来越成熟稳定,而软件却恰恰相反,随着自身的发展出现了越来越多的问题,甚至最后失去控制,损失财力、物力。为什么会产生这样背道而驰的结果呢?
发明人经过仔细分析,认为虽然两者功能都很复杂与强大,但两者在发展过程中对标准的遵循程度却有本质上的区别。硬件产品需要遵循通用的工业标准,而软件却没有成熟、易用的通用行业标准,各大软件厂商各持有一套自己的所谓标准与规范,导致出现上面提到的软件行业的重大问题。
为了解决上述的问题,本发明提出了一种基于插件机制的软件系统。如图1所示,该软件系统主要由以下几个部分组成:
1)插件
本发明中的插件是以插件框架为基础,按照预定的插件标准并结合特定的业务功能需求制作的软件模块。每一个插件(插件1~插件n,n为自然数)在功能上是独立的,可以完成一个完整的业务功能。该插件在功能上类似于计算机硬件中的显卡、声卡等功能模块,插件框架在功能上类似于计算机的主机板,而插槽在功能上类似于主机板上的USB或者PCI插槽。插件之间、插件与插件框架之间的数据交换由插件框架本身的通信机制提供支撑。该插件只要符合预定的插件标准,就可以随时通过插槽接入插件框架中,进行相应的数据交换,即插即用十分方便。
对于插件的实现,则是在需求初期考虑预定的插件标准,并且在需求分析、架构设计等阶段按照该插件标准予以实现。这样,开发的插件即可无缝地与插件框架对接。该插件通过配置文件进行管理。插件与插槽之间的连接是也是通过配置文件实现的。在本发明中,对配置文件的格式没有严格的要求,可以随插件的不同或插件标准的不同而不同。作为一个较佳的实施例,优选配置文件为XML格式。下面为插件定义格式的配置文件样例。
在实现上述插件时,在软件系统的架构设计阶段不仅要设计软件的整体框架,同时还要以插件框架为基础,结合业务功能需求制订出所有插件必须遵循的插件标准,然后再具体开发实现某一业务功能的插件。凡是按该插件标准研发的插件都可以正确运行,实现业务功能以及与其它模块的交互。
2)插件框架
前已述及,本发明中的插件框架是一个基于基础运行环境的软件平台,在功能上类似于计算机的主机板。插件框架是依据框架协议实现插件框架的各项功能。该插件框架可以通过各种语言实现,如PHP、JAVA、.NET等。如图2所示,插件框架包括若干个插槽(插槽1~插槽n,n为自然数)、插槽调度模块和插件协调模块。其中,插槽作为插件的数据接口,可以将插件插在插件框架上使用,发挥插件所具有的功能。
在本发明中,插槽是一个内置标准协议的基础软件包。它通过计算机语言的动态机制,例如Java语言的注入反射机制、PHP语言的eval机制等实现动态管理插件功能,包括插件的动态安装与卸载,为插件分配资源如内存等,同时可以协调各个插件之间的交互。
插槽调度模块用于依据业务需要,为插槽调用相应的插件。插槽调用相应插件的过程可以通过两种方式来实现:一是通过插槽功能动态分析,自动选择相应的插件;二是通过人工方式手动设置。
插件协调模块用于实现各个插件之间的协调功能。插件之间的协调功能是指多个插件之间需要互相协作来完成一个功能业务,这就需要插件之间互相传递数据,互相调用接口,这些数据的传递、接口的调用都是由底层框架即插槽来完成的。
在本发明中,插件标准可以由插件框架一方制定,插件开发厂商遵循该插件标准进行开发;或者由多方制定统一插件标准,在插件开发和插槽开发时共同遵循。
3)基础运行环境
本发明中的基础运行环境包括操作系统、数据库、WEB服务器、脚本服务器等支持环境。按照插件标准编写的插件,需要运行在该基础运行环境之上。在具体实施时,这些支持环境可以采用现已成熟的Linux、Nginx、Php Server等服务器系统,在此就不详细说明了。
在实现本发明所提供的软件系统时,首先要设计一个插件框架,用于整合各个插件,同时要针对插件框架提出一个插件标准,用于规范插件的研发。在这个过程中,需要解决的技术问题主要包括:1)框架协议的实现;2)信息交换格式;3)动态检测插件机制,包括动态加载插件、动态卸载插件。下面结合相应的伪码对其展开具体的说明。
1)框架协议
框架协议包含插件框架开发协议及插件开发协议。该框架协议是实现插件标准、生成插件配置文件的技术基础。相应的示例性伪码如下:
2)信息交换格式
信息交换格式是用于实现插件之间数据交换的XML格式。相应的示例性伪码如下:
3)动态检测插件机制
本发明中的动态检测插件机制是通过配置文件实现的,即通过配置文件的有无来实现插件的热插拔,实现即插即用。具体的实现过程是这样的:插件框架定时扫描插件安装的配置文件(配置文件是XML格式定义的,具体格式见后文中的介绍);如果新增加了配置文件,则判断为新增加了插件,进一步检测该插件的版本;如果新加入的插件版本比当前正在运行的插件版本更新,则插槽会加载这个新加入的插件,卸载老的插件;否则,仍然保留当前运行的插件。
如果某个插件在运行的过程中,需要卸载这个插件,只要将对应插件的配置文件删除即可。插件框架在定时扫描的过程中,如果其中的插槽发现某个插件所对应的配置文件不存在,会立即卸载插件、回收资源。
在本发明的一个优选实施例中,插件的配置文件是XML格式定义的,包含以下主要元素:
上述通过配置文件实现动态检测插件机制的方法可以实现动态加载插件、动态卸载插件,而无须重启服务器。这样可以实现不关机升级插件,提升整个插件框架的不间断服务能力。
利用本发明所提供的软件系统,可以不需重启就实现软件功能的升级或者更换,减少系统维护时间和费用;实现敏捷项目管理,逐步完成客户需求,规避了项目失败的风险。这将全面改变软件难于设计、难于管理、难于维护等局面,有效降低软件的设计难度、管理难度、维护难度等。
上面对本发明所提供的基于插件机制的软件系统及其实现方法进行了详细的介绍。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
Claims (8)
1.一种基于插件机制的软件系统,其特征在于:
所述软件系统包括多个插件、插件框架和基础运行环境;
所述插件框架中包括多个插槽、插槽调度模块和插槽协调模块,所述插件通过所述插槽与所述插件框架进行数据交换;
所述插件具有配置文件,所述插件框架通过扫描所述配置文件的有无实现所述插件的即插即用。
2.如权利要求1所述的基于插件机制的软件系统,其特征在于:
所述插件是以插件框架为基础,按照预定的插件标准并结合特定的业务功能需求制作的软件模块;所述插槽是一个内置标准协议的基础软件包。
3.如权利要求1所述的基于插件机制的软件系统,其特征在于:
所述基础运行环境包括操作系统、数据库、WEB服务器和脚本服务器。
4.如权利要求1所述的基于插件机制的软件系统,其特征在于:
所述插槽调度模块用于依据业务需要,为所述插槽调用相应的插件。
5.如权利要求1所述的基于插件机制的软件系统,其特征在于:
所述插件协调模块用于实现各个插件之间的协作,共同完成一个功能业务。
6.如权利要求1所述的基于插件机制的软件系统,其特征在于:
所述配置文件为XML格式。
7.一种实现动态检测插件机制的方法,基于权利要求1所述的软件系统实现,其特征在于:
插件框架定时扫描插件安装的配置文件;如果新增加了配置文件,则判断为新增加了插件,进一步检测该插件的版本;如果新加入的插件版本比当前正在运行的插件版本更新,则插槽加载这个新加入的插件,卸载老的插件;否则,仍然保留当前运行的插件。
8.如权利要求7所述的实现动态检测插件机制的方法,其特征在于:
如果所述插件在运行过程中需要卸载,则将对应所述插件的配置文件删除;所述插件框架在定时扫描过程中,如果所述插槽发现某个插件所对应的配置文件不存在,立即卸载所述插件、回收资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210593393.2A CN103914287A (zh) | 2012-12-31 | 2012-12-31 | 基于插件机制的软件系统及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210593393.2A CN103914287A (zh) | 2012-12-31 | 2012-12-31 | 基于插件机制的软件系统及其实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103914287A true CN103914287A (zh) | 2014-07-09 |
Family
ID=51039994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210593393.2A Pending CN103914287A (zh) | 2012-12-31 | 2012-12-31 | 基于插件机制的软件系统及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103914287A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216738A (zh) * | 2014-08-20 | 2014-12-17 | 北京奇艺世纪科技有限公司 | 一种应用程序的运行方法及装置 |
CN104461713A (zh) * | 2014-12-19 | 2015-03-25 | 北京奇虎科技有限公司 | 一种应用程序扩展程序清理方法及装置 |
CN105511909A (zh) * | 2015-11-26 | 2016-04-20 | 北京奇虎科技有限公司 | 处理插件的方法及装置 |
CN106657265A (zh) * | 2016-11-14 | 2017-05-10 | 晶赞广告(上海)有限公司 | 一种服务框架系统 |
CN107273165A (zh) * | 2017-06-19 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种实现模块动态调用的系统及方法 |
CN107402761A (zh) * | 2017-07-25 | 2017-11-28 | 青岛海信电器股份有限公司 | 应用修复方法及装置 |
CN107885543A (zh) * | 2017-10-19 | 2018-04-06 | 珠海格力电器股份有限公司 | 一种应用程序的功能管理方法、装置和智能终端 |
CN110895461A (zh) * | 2019-11-21 | 2020-03-20 | 望海康信(北京)科技股份公司 | 软件研发管理方法、装置、电子设备及存储介质 |
CN111190657A (zh) * | 2020-01-07 | 2020-05-22 | 北京字节跳动网络技术有限公司 | 活动配置方法、装置、可读介质及电子设备 |
CN112114896A (zh) * | 2020-09-04 | 2020-12-22 | 青岛海信网络科技股份有限公司 | 一种插件框架及业务功能扩展的方法 |
-
2012
- 2012-12-31 CN CN201210593393.2A patent/CN103914287A/zh active Pending
Non-Patent Citations (1)
Title |
---|
赵宏利: "基于反射机制的插件系统软件设计", 《计算机工程与设计》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216738A (zh) * | 2014-08-20 | 2014-12-17 | 北京奇艺世纪科技有限公司 | 一种应用程序的运行方法及装置 |
CN104461713A (zh) * | 2014-12-19 | 2015-03-25 | 北京奇虎科技有限公司 | 一种应用程序扩展程序清理方法及装置 |
CN105511909B (zh) * | 2015-11-26 | 2018-09-11 | 北京奇虎科技有限公司 | 处理插件的方法及装置 |
CN105511909A (zh) * | 2015-11-26 | 2016-04-20 | 北京奇虎科技有限公司 | 处理插件的方法及装置 |
CN106657265A (zh) * | 2016-11-14 | 2017-05-10 | 晶赞广告(上海)有限公司 | 一种服务框架系统 |
CN107273165A (zh) * | 2017-06-19 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种实现模块动态调用的系统及方法 |
CN107402761A (zh) * | 2017-07-25 | 2017-11-28 | 青岛海信电器股份有限公司 | 应用修复方法及装置 |
CN107885543A (zh) * | 2017-10-19 | 2018-04-06 | 珠海格力电器股份有限公司 | 一种应用程序的功能管理方法、装置和智能终端 |
CN107885543B (zh) * | 2017-10-19 | 2020-10-02 | 珠海格力电器股份有限公司 | 一种应用程序的功能管理方法、装置和智能终端 |
CN110895461A (zh) * | 2019-11-21 | 2020-03-20 | 望海康信(北京)科技股份公司 | 软件研发管理方法、装置、电子设备及存储介质 |
CN111190657A (zh) * | 2020-01-07 | 2020-05-22 | 北京字节跳动网络技术有限公司 | 活动配置方法、装置、可读介质及电子设备 |
CN111190657B (zh) * | 2020-01-07 | 2022-07-05 | 北京字节跳动网络技术有限公司 | 活动配置方法、装置、可读介质及电子设备 |
CN112114896A (zh) * | 2020-09-04 | 2020-12-22 | 青岛海信网络科技股份有限公司 | 一种插件框架及业务功能扩展的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103914287A (zh) | 基于插件机制的软件系统及其实现方法 | |
CN109118347B (zh) | 一种自动化协作方法及系统 | |
CN112988153B (zh) | 基于微前端的数据处理方法及框架 | |
CN102508919B (zh) | 数据处理方法及系统 | |
CN102880503A (zh) | 数据分析系统及数据分析方法 | |
CN103019874B (zh) | 基于数据同步实现异常处理的方法及装置 | |
CN106681718A (zh) | 一种基于工具集的桌面端插件框架及实现方法 | |
CN103810008A (zh) | 插件加载方法及系统 | |
CN105893045A (zh) | 一种业务组件加载方法、装置及业务组件运行系统 | |
CN105260190A (zh) | 基于安卓系统分发技术的安卓应用的运行方法和系统 | |
CN112256248A (zh) | 一种启效智慧云低代码平台 | |
US12061901B2 (en) | Documentation enforcement during compilation | |
CN103077034A (zh) | 混合虚拟化平台java应用迁移方法与系统 | |
CN109634652A (zh) | 一种数据处理的方法、装置、计算机存储介质及终端 | |
CN112631903A (zh) | 任务测试方法、装置、电子设备及存储介质 | |
CN112214250B (zh) | 一种应用程序组件的加载方法和装置 | |
US20180352028A1 (en) | Method and device for dispatching replication tasks in network storage device | |
CN110879753B (zh) | 基于自动化集群资源管理的gpu加速性能优化方法和系统 | |
CN111339055B (zh) | 大数据集群扩容方法及装置 | |
CN115129449A (zh) | 共享gpu的资源调度方法及装置 | |
CN115712524A (zh) | 数据恢复方法及装置 | |
CN115757121A (zh) | 基于测试环境搭建的测试方法、装置、设备及存储介质 | |
CN115454701A (zh) | 一种pc固件档案自动更新方法和系统 | |
CN113849161A (zh) | 应用控制方法、装置、存储介质及电子设备 | |
CN116431137A (zh) | 跨开发框架的组件转换方法、处理系统和组件转换装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140709 |
|
RJ01 | Rejection of invention patent application after publication |