CN105099739B - 一种基于插件式软件部署方法、装置及应用服务器 - Google Patents

一种基于插件式软件部署方法、装置及应用服务器 Download PDF

Info

Publication number
CN105099739B
CN105099739B CN201410206017.2A CN201410206017A CN105099739B CN 105099739 B CN105099739 B CN 105099739B CN 201410206017 A CN201410206017 A CN 201410206017A CN 105099739 B CN105099739 B CN 105099739B
Authority
CN
China
Prior art keywords
plug
unit
parameter
status information
request message
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
Application number
CN201410206017.2A
Other languages
English (en)
Other versions
CN105099739A (zh
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.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group 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 China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201410206017.2A priority Critical patent/CN105099739B/zh
Publication of CN105099739A publication Critical patent/CN105099739A/zh
Application granted granted Critical
Publication of CN105099739B publication Critical patent/CN105099739B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于插件式软件部署方法、装置及应用服务器,该方法包括:接收来自客户端的软件部署的请求消息;根据请求消息在由各个插件的相互依赖关系建立的插件逻辑树中查询与软件部署的请求消息相关的多个插件;将查询得到的多个插件生成的脚本发送给各个待部署节点,并将各个待部署节点软件部署的结果反馈给客户端,从而可以利用软件部署插件之间的依赖关系解决软件复杂的依赖关系,有效提高基于插件式软件部署的便捷性。

Description

一种基于插件式软件部署方法、装置及应用服务器
技术领域
本发明涉及云计算技术领域,尤其涉及一种基于插件式软件部署方法、装置及应用服务器。
背景技术
在现有技术中将软件部署分为三层,分别为客户端,应用服务器及待部署的节点集合。应用服务器解析客户端请求,并通过软件管理模块找到相对应的软件信息,通过软件下发模块将软件的脚本及软件安装包下发给待部署节点,待下发完成后,通过SSH命令执行部署节点的安装脚本,然后将结果反馈给客户端。
然而在现有的技术方案中,虽然解决软件部署的问题,但是多个软件之间的依赖关系不好理清,除非脚本编写者自身能明白,但在实际应用过程中,往往实验室管理员不是脚本编写者。
发明内容
鉴于上述技术问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于插件式软件部署方法、装置及应用服务器,使得用户可以对软件部署的插件进行有效地管理。
依据本发明的一个方面,提供了一种基于插件式软件部署方法,包括:
接收来自客户端的软件部署的请求消息;
根据所述请求消息在由各个插件的相互依赖关系建立的插件逻辑树中查询与所述软件部署的请求消息相关的多个插件;
将查询得到的多个插件生成的脚本发送给各个待部署节点,并将各个待部署节点软件部署的结果反馈给所述客户端。
可选地,所述根据所述请求消息在由各个插件的相互依赖关系建立的插件逻辑树中查询与所述软件部署的请求消息相关的插件的步骤包括:
根据所述请求消息在所述插件逻辑树中查询与所述软件部署的请求消息对应的第一插件;
通过所述插件逻辑树查询与所述第一插件具有相互依赖关系的多个第二插件;
获取所述多个第二插件的状态信息,所述状态信息包括:未加载、已加载、启动中、停止中和已激活;
将所述第一插件以及状态信息为已激活的一个或多个第二插件,作为通过插件管理器查询与所述软件部署的请求消息相关的插件。
可选地,所述方法还包括:通过定时器采集插件逻辑树中各个插件的状态信息,并根据预定的规则动态调整各个插件的状态信息。
可选地,所述预定的规则包括:
若插件的元数据信息完整,则调整所述插接的状态信息为已加载;
若插件所依赖的各个插件处于已激活,则调整所述插接的状态信息为启动中,进一步调整所述插接的状态信息为已激活;
若插件处于假死或者停服状态,则将所述插接的状态信息由已激活调整为停止中停服状态,则将所述插接的状态信息由已激活调整为停止中;
若插件已被卸载,则调整所述插接的状态信息为未加载。
可选地,所述插件的元数据信息包括插件的安装包路径,插件名称,版本号,所依赖的操作系统名称,及其依赖的硬件环境信息。
可选地,所述将查询得到的多个插件生成的脚本发送给各个待部署节点包括:
获取与查询得到的多个插件对应的预先设置的脚本模板,所述脚本模板中需要修改的参数用预设的字符表示;
获取来自客户端发送的参数,并用来自客户端发送的参数代替所述脚本模板中预设的字符,得到脚本文件;
将已配置参数的脚本文件通过安全壳协议命令发送给各个待部署节点。
可选地,软件部署完成后,所述方法还包括:
获取与查询得到的多个插件对应的预先设置的参数模板,所述参数模板中需要修改的参数用预设的字符表示;
获取来自客户端发送的参数,并用来自客户端发送的参数代替所述参数模板中预设的字符,得到参数文件;
将已配置参数的参数文件通过安全壳协议命令发送给各个待部署节点。
依据本发明的另一个方面,还提供了一种基于插件式软件部署装置,包括:
网络通讯模块,用于接收来自客户端的软件部署的请求消息;
插件查询模块,用于根据所述请求消息在由各个插件的相互依赖关系建立的插件逻辑树中查询与所述软件部署的请求消息相关的多个插件;
脚本发送模块,用于将查询得到的多个插件生成的脚本发送给各个待部署节点,并将各个待部署节点软件部署的结果反馈给所述客户端。
可选地,所述插件查询模块进一步用于根据所述请求消息在所述插件逻辑树中查询与所述软件部署的请求消息对应的第一插件;通过所述插件逻辑树查询与所述第一插件具有相互依赖关系的多个第二插件;获取所述多个第二插件的状态信息,所述状态信息包括:未加载、已加载、启动中、停止中和已激活;将所述第一插件以及状态信息为已激活的一个或多个第二插件,作为通过插件管理器查询与所述软件部署的请求消息相关的插件。
可选地,所述装置还包括:
插件状态调整模块,用于通过定时器采集插件逻辑树中各个插件的状态信息,并根据预定的规则动态调整各个插件的状态信息。
可选地,所述预定的规则包括:
若插件的元数据信息完整,则调整所述插接的状态信息为已加载;
若插件所依赖的各个插件处于已激活,则调整所述插接的状态信息为启动中,进一步调整所述插接的状态信息为已激活;
若插件处于假死或者停服状态,则将所述插接的状态信息由已激活调整为停止中;
若插件已被卸载,则调整所述插接的状态信息为未加载。
可选地,所述插件的元数据信息包括插件的安装包路径,插件名称,版本号,所依赖的操作系统名称,及其依赖的硬件环境信息。
可选地,所述脚本发送模块进一步用于获取与查询得到的多个插件对应的预先设置的脚本模板,所述脚本模板中需要修改的参数用预设的字符表示;获取来自客户端发送的参数,并用来自客户端发送的参数代替所述脚本模板中预设的字符,得到脚本文件;将已配置参数的脚本文件通过安全壳协议命令发送给各个待部署节点。
可选地,所述装置还包括:参数配置模块用于获取与查询得到的多个插件对应的预先设置的参数模板,所述参数模板中需要修改的参数用预设的字符表示;获取来自客户端发送的参数,并用来自客户端发送的参数代替所述参数模板中预设的字符,得到参数文件;将已配置参数的参数文件通过安全壳协议命令发送给各个待部署节点。
依据本发明的又一个方面,还提供了一种应用服务器,包括如上所述的基于插件式软件部署装置。
本发明的有益效果是:在接收来自客户端的软件部署的请求消息之后,可以根据请求消息在由各个插件的相互依赖关系建立的插件逻辑树通过插件管理器中查询与软件部署的请求消息相关的多个插件,从而可以利用软件部署插件之间的依赖关系解决软件复杂的依赖关系。
进一步地,利用软件部署的插件的状态信息可以更加高效的管理各个软件的生命周期;
进一步地,利用脚本模板和参数模板对复杂的文件配置进行自动化配置,从而有效提高了实验室工作人员的效率。
附图说明
图1表示本发明的实施例中基于插件式软件部署方法的流程图之一;
图2表示本发明的实施例中插件逻辑树的结构示意图;
图3表示本发明的实施例中插件的状态转换的流程图;
图4表示本发明的实施例中基于插件式软件部署方法的流程图之二;
图5表示本发明的实施例中插件内部数据结构的示意图;
图6表示本发明的实施例中基于插件式软件部署装置的结构框图;以及
图7表示本发明的实施例中客户端、应用服务器和部署节点的框图。
具体实施方式
在本发明的实施例中提供了一种基于插件式软件部署方法,首先接收来自客户端的软件部署的请求消息;然后通过插件管理器查询与软件部署的请求消息相关的多个插件,插件管理器中记录有通过各个插件的相互依赖关系建立的插件逻辑树和各个插件的状态信息;再然后将查询得到的多个插件生成的脚本发送给各个待部署节点,并将各个待部署节点软件部署的结果反馈给客户端。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,为本发明的实施例中基于插件式软件部署方法的流程图,该方法包括:
步骤S101、接收来自客户端的软件部署的请求消息,其中软件部署包括:包括软件安装,软件卸载,软件更新,软件升级,软件启动及软件停止等操作。
在本发明的实施例中,可以通过socket协议(套接字协议)、soap协议(简单对象访问协议)或者http协议(超文本传输协议)接收来自客户端的软件部署的请求消息,当然也并不限于此。
步骤S103、根据请求消息在由各个插件的相互依赖关系建立的插件逻辑树中查询与软件部署的请求消息相关的多个插件。
在本发明的实施例中,插件管理器中记录有通过各个插件的相互依赖关系建立的插件逻辑树和各个插件的状态信息,上述依赖关系是指该插件的运行需要依赖其他插件。
具体地,在步骤S103中,可以首先根据请求消息在插件逻辑树中查询与软件部署的请求消息对应的第一插件;然后通过插件逻辑树查询与第一插件具有相互依赖关系的多个第二插件;获取多个第二插件的状态信息,状态信息包括:未加载(UNLOADED)、已加载(LOADED)、启动中(STARTING)、停止中(STOPPING)和已激活(ACTIVE);将第一插件以及状态信息为已激活的一个或多个第二插件,作为通过插件管理器查询与软件部署的请求消息相关的插件。由插件逻辑树中可知,各个插件所依赖的插件集合,通过该插件集合可以成功有序部署各个应用。
在本发明的实施例中,插件管理器负责收集和管理各个插件的状态信息,通过各个插件的相互依赖关系建立插件逻辑树,其插件逻辑树的组织结构如图2所示。如图2所示,比如需要部署某个应用,该应用在插件逻辑树中对应着插件A,通过该插件逻辑树可以找到需要先部署插件D和插件E(即插件D和插件E与插件A具有依赖关系)。先查看插件D和插件E的状态,当处于插件D和插件E的状态信息为Acitve时,表明插件D和插件E部署已就绪;然后将插件D和插件E生成的脚本通过SSH(安全壳协议)传递给各个待部署节点,并通过SSH执行各个脚本,最后将插件A生成的脚本也同样传递给各个待部署节点并执行。此外插件管理器管理各个插件是通过一个定时器负责采集各个插件的状态信息并上报状态监控模块。
在本发明的实施例中,定义了五种状态来规范插件的生命周期,分别为LOADED、STARTING、ACTIVE、STOPPING、UNLOADED。下面表格定义了插件处于各个状态的行为方式。参见下表:定义了插件处于各个状态的行为方式。
步骤S105、将查询得到的多个插件生成的脚本发送给各个待部署节点,并将各个待部署节点软件部署的结果反馈给客户端。
在本发明的实施例中,脚本生成方式可以是,先定义各个脚本的模板,然后通过客户端传递参数进行匹配并替换,最后连同软件包一起下发到待部署节点上。具体地,首先获取与查询得到的多个插件对应的预先设置的脚本模板,脚本模板中需要修改的参数用预设的字符表示;然后获取来自客户端发送的参数,并用来自客户端发送的参数代替所述脚本模板中预设的字符,得到脚本文件;最后将已配置参数的脚本文件通过SSH命令发送给各个待部署节点,上述脚本的生成方式可以实现软件部署完全自动化功能。
可选地,为了对软件部署插件进行有效管理,在本发明的另一个实施例中,在步骤S103之前,或者步骤S103之后,该方法还包括:插件管理器通过定时器采集插件逻辑树中各个插件的状态信息,并根据预定的规则动态调整各个插件的状态信息,使得利用软件部署插件的状态变换可以更好的管理各个软件的生命周期。
具体地,预定的规则包括:若插件的元数据信息完整,则调整插接的状态信息为已加载;若插件所依赖的各个插件处于已激活,则调整插接的状态信息为启动中,进一步调整插接的状态信息为已激活;若插件处于假死或者停服状态,则将插接的状态信息由已激活调整为停止中中;若插件已被卸载,则调整插接的状态信息为未加载。
如图3所示,为本发明的实施例中插件的状态转换的流程图,首先,框架检查插件的元数据信息是否完整,比如插件所依赖的操作系统,硬件环境,以及它自身的名称,版本号是否已指定。当检查有效时,系统为每个软件部署插件分配一个Id号,用于标识该插件,分配完成后,软件部署插件处于LOADED状态。其次,框架通过插件管理器检查该插件所依赖的各个插件是否处于Active状态,只要其中的一项不是Active状态,则软件部署插件是不能为外界提供服务的。当检查有效时,插件进入STARTING状态;再次,框架可以调用START函数,使其进入ACTIVE状态;这表明该软件部署插件可以向上层提供服务了。最后,如果通过状态监控模块发现某个插件处于假死或者停服状态,可以先将其状态从ACTIVE状态变为STOPPING状态,然后再检查插件的日志信息并更新插件的内部数据结构信息,使其能正常为上层提供软件部署服务。
在本发明的实施例中,通过软件部署插件状态转换,可以实现在不需要重新启动应用服务器情况下仍可以重新加载有故障的插件;此外,给插件赋予状态信息,可以清楚了解软件的运行情况。因此可以对软件部署插件生命周期进行有效管理,从而达到对软件的生命周期进行管理的目的。
参见图4,为基于插件式软件部署方法的流程图之二,与图1所示的基于插件式软件部署方法不同的是,图4中在步骤S105之后,即软件部署完成后,该方法还包括:
步骤S107、获取与查询得到的多个插件对应的预先设置的参数模板,参数模板中需要修改的参数用预设的字符表示;
步骤S109、获取来自客户端发送的参数,并用来自客户端发送的参数代替所述参数模板中预设的字符,得到参数文件;
步骤S111、将已配置参数的参数文件通过SSH命令发送给各个待部署节点。
利用参数模板和上述脚本模板可以有效地解决软件部署自动化功能。
结合上述关于脚本模板和参数模板的描述,在本发明的实施例中,软件部署需要安装包,安装脚本,因此软件部署插件需要对这些信息进行维护以便部署能顺利进行。如图5所示,为本发明的实施例中插件的内部数据结构,包括了四个部分。(1)元数据信息,软件部署插件的元数据信息包括插件的安装包路径,插件名称,版本号,所依赖的操作系统名称,及其依赖的硬件环境信息;(2)脚本模板集合,考虑部署环境的复杂性,它可能依赖于待部署的节点信息(比如待部署节点的操作系统)。因此为了使部署具备统一性,定义了脚本模板,根据不同的节点信息生成个性化的部署脚本;(3)参数模板集合,在软件安装完成后,进行参数配置。同样在不同的应用部署中,参数配置也不一样,因此定义了参数模板来规避节点信息的差异性。(4)服务列表集合,软件安装并配置完成后,可以对软件部署进行一个效正,通过检测软件的服务进程来判断部署是否成功,所以在插件的内部数据结构中需要提供服务列表集合。
如图6所示,本发明的实施例中基于插件式软件部署装置的结构框图,该装置600包括:
网络通讯模块601,用于接收来自客户端的软件部署的请求消息;
插件查询模块603,用于根据所述请求消息在由各个插件的相互依赖关系建立的插件逻辑树中查询与所述软件部署的请求消息相关的多个插件;
脚本发送模块605,用于将查询得到的多个插件生成的脚本发送给各个待部署节点,并将各个待部署节点软件部署的结果反馈给所述客户端。
可选地,在本发明的另一个实施例中,插件查询模块603进一步用于根据所述请求消息在所述插件逻辑树中查询与所述软件部署的请求消息对应的第一插件;通过所述插件逻辑树查询与所述第一插件具有相互依赖关系的多个第二插件;获取所述多个第二插件的状态信息,所述状态信息包括:未加载、已加载、启动中、停止中和已激活;将状态信息为已激活的一个或多个第二插件以及所述第一插件,作为通过插件管理器查询与所述软件部署的请求消息相关的插件。
可选地,在本发明的另一个实施例中,所述装置还包括:
插件状态调整模块,用于通过定时器采集插件逻辑树中各个插件的状态信息,并根据预定的规则动态调整各个插件的状态信息。所述预定的规则包括:若插件的元数据信息完整,则调整所述插接的状态信息为已加载;若插件所依赖的各个插件处于已激活,则调整所述插接的状态信息为启动中,进一步调整所述插接的状态信息为已激活;若插件处于假死或者停服状态,则将所述插接的状态信息由已激活调整为停止中;若插件已被卸载,则调整所述插接的状态信息为未加载。插件的元数据信息包括插件的安装包路径,插件名称,版本号,所依赖的操作系统名称,及其依赖的硬件环境信息。
可选地,在本发明的另一个实施例中,所述脚本发送模块605进一步用于获取与查询得到的多个插件对应的预先设置的脚本模板,所述脚本模板中需要修改的参数用预设的字符表示;获取来自客户端发送的参数,并用来自客户端发送的参数代替所述脚本模板中预设的字符,得到脚本文件;将已配置参数的脚本文件通过安全壳协议命令发送给各个待部署节点。
可选地,在本发明的另一个实施例中,所述装置还包括:参数配置模块用于获取与查询得到的多个插件对应的预先设置的参数模板,所述参数模板中需要修改的参数用预设的字符表示;获取来自客户端发送的参数,并用来自客户端发送的参数代替所述参数模板中预设的字符,得到参数文件;将已配置参数的参数文件通过安全壳协议命令发送给各个待部署节点。
依据本发明的又一个方面,还提供了一种应用服务器,包括如上所述的基于插件式软件部署装置。
如图7所示,在本发明的实施例中将软件部署体系分为三层,分别为客户端,应用服务器及待部署节点的集合。其中客户端可以通过socket协议,soap协议或者http协议访问应用服务器,应用服务器解析客户端请求,并通过插件管理器,找到该请求相关联的各个插件,通过各个插件联合工作并将此次请求任务结果反馈给客户端。
应用服务器是整个框架的核心部件,接收客户端的软件部署的请求消息,并根据请求消息的类型作流程控制,然后通过插件管理器找到与请求消息相关的插件,待插件处理完请求后将结果反馈给客户端。此外,该应用服务器还可以对各个插件进行状态监控,如果发现某个插件处于停止服务状态或者假死状态,应将该插件重新加载。具体地,应用服务器从功能上包括以下几个部分:
网络通讯模块,该网络通讯模用于接收客户端的请求,并解析客户端请求数据,并将数据发送给流程控制模块。
流程控制模块,该流程控制模块用于控制软件安装,软件卸载,软件更新,软件升级,软件启动及软件停止操作的相互依赖关系。比如软件启动,软件卸载及软件停止操作是要在软件安装完成后才能操作,再比如软件更新操作,首先要停止正在运行的服务,然后再配置软件的参数,最后才将软件启动起来。
状态监控模块,该状态监控模块对各个插件进行监控。插件的状态分为五种状态,分别为UNLOADED(未加载)、LOADED(已加载)、STARTING(启动中)、STOPPING(停止中)、ACTIVE(已激活)。状态监控模块能够为客户端呈现各个插件所属的状态,并根据客户端的请求可动态调整各个插件的状态信息以满足客户的需要。
日志统计模块,应用服务器提供日志模块方便客户通过客户端查询应用服务器及其插件运行日志信息。
应用服务器的插件管理器包括:依赖设置模块,参数配置模块,脚本生成模块,文件下发模块及状态上报模块,下面分别进行阐述。
依赖设置模块,软件之间的依赖关系是由插件之间的依赖关系决定,插件之间的依赖关系可以采用静态配置,也可以采用动态配置方法。静态配置:框架将插件之间的依赖关系写在配置文件中,框架在启动时加载配置文件信息并5在插件管理器中勾画出插件逻辑树。动态配置:插件的依赖关系也可以由客户端通过前台界面对插件的依赖关系进行配置。
参数配置模块,首先为待配置的文件生成一个模板,并对模板中需求修改的参数以一种特殊的字符表示之然后通过客户端传递参数进来,并对这些特殊字符替换,最后将这些已配好的参数文件通过SSH命令传递到待部署节点并更0新之。
比如在部署zookeeper的时候,有个文件zoo.cfg,该文件中的ticktime,initLimit,syncLimit,dataDir,zkservers均需要修改,于是可以为其生成了如下配置模板信息:
#The number of milliseconds of each tick
tickTime=<%=tickTime%>
#The number of ticks that the initial
#synchronizati on phase can take
initLimit=<%=initLimit%>
#The number of ticks that can pass between
#sending a request and getting an acknowledgement
syncLimit=<%=syncLimit%>
#the directory where the snapshot is stored.
dataDir=<%=dataDir%>
#the port at which the clients will connect
clientPort=<%=clientPort%>
<%=zkservers%>
在这个配置模板中,所有待更新变量均是与<%=开始,%>结束。当通过客户端传入参数变量tickTime=20,initLimit=30,syncLimit=60,dataDir=“/root/zk/”,zkServers=“192.168.0.2192.168.0.3192.168.0.4”时,应用服务器中的程序会自动匹配并替换这些变量,将产生如下配置文件
#The number of milliseconds of each tick
tickTime=20
#The number of ticks that the initial
#synchronizati on phase can take
initLimit=30
#The number of ticks that can pass between
#sending a request and getting an acknowledgement
syncLimit=60
#the directory where the snapshot is stored.
dataDir=/root/zk/
#the port at which the clients will connect
clientPort=<%=clientPort%>
192.168.0.2
192.168.0.3
192.168.0.4
然后将生成的配置文件通过SSH传递给待部署节点,并替换配置前的zoo.cfg文件,这样就达到了自动化参数配置的目的。
脚本生成模块,脚本生成模块的实现方式和参数配置的实现方式一样,先定义各个脚本的模板(模板的形式和参数配置一样),然后通过客户端传递参数进行匹配并替换,最后连同软件包一起下发到待部署节点上。
文件下发模块,将脚本和软件包通过SSH下发给待部署的节点。
状态上报模块,将插件的状态信息上报给插件管理器。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。

Claims (13)

1.一种基于插件式软件部署方法,其特征在于,包括:
接收来自客户端的软件部署的请求消息;
根据所述请求消息在由各个插件的相互依赖关系建立的插件逻辑树中查询与所述软件部署的请求消息相关的多个插件;
将查询得到的多个插件生成的脚本发送给各个待部署节点,并将各个待部署节点软件部署的结果反馈给所述客户端;
所述根据所述请求消息在由各个插件的相互依赖关系建立的插件逻辑树中查询与所述软件部署的请求消息相关的插件的步骤包括:
根据所述请求消息在所述插件逻辑树中查询与所述软件部署的请求消息对应的第一插件;
通过所述插件逻辑树查询与所述第一插件具有相互依赖关系的多个第二插件;
获取所述多个第二插件的状态信息,所述状态信息包括:未加载、已加载、启动中、停止中和已激活;
将所述第一插件以及状态信息为已激活的一个或多个第二插件,作为通过插件管理器查询与所述软件部署的请求消息相关的插件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过定时器采集插件逻辑树中各个插件的状态信息,并根据预定的规则动态调整各个插件的状态信息。
3.根据权利要求2所述的方法,其特征在于,所述预定的规则包括:
若插件的元数据信息完整,则调整所述插件的状态信息为已加载;
若插件所依赖的各个插件处于已激活,则调整所述插件的状态信息为启动中,进一步调整所述插件的状态信息为已激活;
若插件处于假死或者停服状态,则将所述插件的状态信息由已激活调整为停止中;
若插件已被卸载,则调整所述插件的状态信息为未加载。
4.根据权利要求3所述的方法,其特征在于,所述插件的元数据信息包括插件的安装包路径,插件名称,版本号,所依赖的操作系统名称,及其依赖的硬件环境信息。
5.根据权利要求1所述的方法,其特征在于,所述将查询得到的多个插件生成的脚本发送给各个待部署节点包括:
获取与查询得到的多个插件对应的预先设置的脚本模板,所述脚本模板中需要修改的参数用预设的字符表示;
获取来自客户端发送的参数,并用来自客户端发送的参数代替所述脚本模板中预设的字符,得到脚本文件;
将已配置参数的脚本文件通过安全壳协议命令发送给各个待部署节点。
6.根据权利要求1所述的方法,其特征在于,软件部署完成后,所述方法还包括:
获取与查询得到的多个插件对应的预先设置的参数模板,所述参数模板中需要修改的参数用预设的字符表示;
获取来自客户端发送的参数,并用来自客户端发送的参数代替所述参数模板中预设的字符,得到参数文件;
将已配置参数的参数文件通过安全壳协议命令发送给各个待部署节点。
7.一种基于插件式软件部署装置,其特征在于,包括:
网络通讯模块,用于接收来自客户端的软件部署的请求消息;
插件查询模块,用于根据所述请求消息在由各个插件的相互依赖关系建立的插件逻辑树中查询与所述软件部署的请求消息相关的多个插件;
脚本发送模块,用于将查询得到的多个插件生成的脚本发送给各个待部署节点,并将各个待部署节点软件部署的结果反馈给所述客户端;
所述插件查询模块进一步用于根据所述请求消息在所述插件逻辑树中查询与所述软件部署的请求消息对应的第一插件;通过所述插件逻辑树查询与所述第一插件具有相互依赖关系的多个第二插件;获取所述多个第二插件的状态信息,所述状态信息包括:未加载、已加载、启动中、停止中和已激活;将所述第一插件以及状态信息为已激活的一个或多个第二插件,作为通过插件管理器查询与所述软件部署的请求消息相关的插件。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
插件状态调整模块,用于通过定时器采集插件逻辑树中各个插件的状态信息,并根据预定的规则动态调整各个插件的状态信息。
9.根据权利要求8所述的装置,其特征在于,所述预定的规则包括:
若插件的元数据信息完整,则调整所述插件的状态信息为已加载;
若插件所依赖的各个插件处于已激活,则调整所述插件的状态信息为启动中,进一步调整所述插件的状态信息为已激活;
若插件处于假死或者停服状态,则将所述插件的状态信息由已激活调整为停止中;
若插件已被卸载,则调整所述插件的状态信息为未加载。
10.根据权利要求9所述的装置,其特征在于,所述插件的元数据信息包括插件的安装包路径,插件名称,版本号,所依赖的操作系统名称,及其依赖的硬件环境信息。
11.根据权利要求7所述的装置,其特征在于,所述脚本发送模块进一步用于获取与查询得到的多个插件对应的预先设置的脚本模板,所述脚本模板中需要修改的参数用预设的字符表示;获取来自客户端发送的参数,并用来自客户端发送的参数代替所述脚本模板中预设的字符,得到脚本文件;将已配置参数的脚本文件通过安全壳协议命令发送给各个待部署节点。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:参数配置模块用于获取与查询得到的多个插件对应的预先设置的参数模板,所述参数模板中需要修改的参数用预设的字符表示;获取来自客户端发送的参数,并用来自客户端发送的参数代替所述参数模板中预设的字符,得到参数文件;将已配置参数的参数文件通过安全壳协议命令发送给各个待部署节点。
13.一种应用服务器,其特征在于,包括如权利要求7~12任一项所述的基于插件式软件部署装置。
CN201410206017.2A 2014-05-15 2014-05-15 一种基于插件式软件部署方法、装置及应用服务器 Active CN105099739B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410206017.2A CN105099739B (zh) 2014-05-15 2014-05-15 一种基于插件式软件部署方法、装置及应用服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410206017.2A CN105099739B (zh) 2014-05-15 2014-05-15 一种基于插件式软件部署方法、装置及应用服务器

Publications (2)

Publication Number Publication Date
CN105099739A CN105099739A (zh) 2015-11-25
CN105099739B true CN105099739B (zh) 2018-08-17

Family

ID=54579364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410206017.2A Active CN105099739B (zh) 2014-05-15 2014-05-15 一种基于插件式软件部署方法、装置及应用服务器

Country Status (1)

Country Link
CN (1) CN105099739B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391528B (zh) * 2016-03-30 2021-04-20 阿里巴巴集团控股有限公司 前端组件依赖信息搜索方法及设备
CN106202470B (zh) * 2016-07-14 2019-09-10 网易(杭州)网络有限公司 脚本的处理方法及系统
CN106293775A (zh) * 2016-10-12 2017-01-04 广州视源电子科技股份有限公司 一种脚本的自动生成方法及装置
CN106502757A (zh) * 2016-12-27 2017-03-15 北京恒华伟业科技股份有限公司 一种插件管理方法及装置
CN106886434B (zh) * 2016-12-28 2020-10-23 山西大智慧水利科技有限公司 一种分布式应用安装方法与装置
CN109460268B (zh) * 2018-11-19 2022-05-27 中国银行股份有限公司 应用参数配置方法、装置和系统
CN112000386A (zh) * 2019-05-08 2020-11-27 北京奇虎科技有限公司 一种应用的实现方法和装置
CN110531993B (zh) * 2019-08-21 2022-11-25 苏州浪潮智能科技有限公司 软件安装方法、装置、设备及介质
CN110730089A (zh) * 2019-09-02 2020-01-24 深圳壹账通智能科技有限公司 区块链网络的监控配置方法及装置、存储介质、电子设备
CN110661852B (zh) * 2019-09-05 2023-02-03 深圳平安通信科技有限公司 云环境中的业务处理方法及装置
CN110750273A (zh) * 2019-10-14 2020-02-04 交控科技股份有限公司 云平台自动部署方法及系统
CN113031970A (zh) * 2019-12-24 2021-06-25 北京神州泰岳软件股份有限公司 一种自动化安装部署方法和系统
CN113448595B (zh) * 2020-03-24 2023-08-25 顺丰科技有限公司 应用部署方法、装置、服务器及存储介质
CN113312526A (zh) * 2021-06-29 2021-08-27 平安资产管理有限责任公司 网络信息动态采集方法、装置、计算机设备和存储介质
CN113867736B (zh) * 2021-09-03 2022-11-08 中国人民解放军军事科学院战争研究院 部署方案生成方法及装置
CN114240265B (zh) * 2022-02-25 2022-05-27 北京宝兰德软件股份有限公司 一种基于混合环境的产品部署方法及装置
CN114666212B (zh) * 2022-03-25 2023-08-29 阿里云计算有限公司 配置数据下发方法
CN114816452B (zh) * 2022-04-22 2023-04-25 成都瑞华康源科技有限公司 一种基于数据元的医院软件自动化部署方法
CN116028101A (zh) * 2022-12-26 2023-04-28 郑州云智信安安全技术有限公司 基于组件特征类别编排调取的方法
CN117891473B (zh) * 2024-03-14 2024-05-31 麒麟软件有限公司 用于集成开发环境插件依赖管理的方法及插件依赖管理器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1945530A (zh) * 2006-11-07 2007-04-11 中兴通讯股份有限公司 具有依赖关系组件的部署系统和方法
CN1968154A (zh) * 2006-09-15 2007-05-23 华为技术有限公司 使用插件进行业务扩展的系统及其方法
CN101387956A (zh) * 2007-09-14 2009-03-18 国际商业机器公司 可扩展地实现非功能逻辑的方法和设备及其系统
CN101937353A (zh) * 2010-09-20 2011-01-05 中兴通讯股份有限公司 一种插件部署和加载的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509638B2 (en) * 2004-08-02 2009-03-24 International Business Machines Corporation Method and apparatus for providing a pluggable and extendable J2EE architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1968154A (zh) * 2006-09-15 2007-05-23 华为技术有限公司 使用插件进行业务扩展的系统及其方法
CN1945530A (zh) * 2006-11-07 2007-04-11 中兴通讯股份有限公司 具有依赖关系组件的部署系统和方法
CN101387956A (zh) * 2007-09-14 2009-03-18 国际商业机器公司 可扩展地实现非功能逻辑的方法和设备及其系统
CN101937353A (zh) * 2010-09-20 2011-01-05 中兴通讯股份有限公司 一种插件部署和加载的方法及装置

Also Published As

Publication number Publication date
CN105099739A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN105099739B (zh) 一种基于插件式软件部署方法、装置及应用服务器
CN105224351B (zh) 快速配置实现方法及快速配置服务器
CN102752137B (zh) 主动设置虚拟机网络参数的装置和方法
CN108768791B (zh) 一种信息采集配置管理系统及方法
WO2017161984A1 (zh) 数据集群的部署方法、装置、系统及计算机存储介质
CN113742031B (zh) 节点状态信息获取方法、装置、电子设备及可读存储介质
CN1992635B (zh) 模拟snmp网元及用该网元进行网管系统测试的方法
WO2016045403A1 (zh) 运行环境的配置方法及装置、系统
CN105553741A (zh) 一种基于云计算的应用系统自动化部署方法
CN108737463A (zh) 一种软件部署方法、服务器和系统
CN110908879A (zh) 埋点数据的上报方法、装置、终端和存储介质
CN105487891A (zh) 一种分布式集群的部署方法及系统
CN103019757A (zh) 一种在多台客户端间同步软件的方法、装置及系统
CN103297275A (zh) Web网管客户端模块动态发现与加载的系统及方法
CN106713053A (zh) 基于Linux的批量升级服务器固件的方法及其装置
US20100235493A1 (en) Extendable distributed network management system and method
CN115220874B (zh) 一种Kubernetes集群部署方法、装置、设备及存储介质
CN106126283B (zh) 一种产品部署的方法、装置及系统
WO2015043407A1 (en) Method, system, and apparatus for online service inspection
CN108833565A (zh) 一种监控服务器的方法、装置、服务器和存储介质
CN102970376A (zh) 集群配置方法和装置
CN115514667A (zh) 接入服务处理方法、系统、装置、电子设备以及存储介质
CN111769979A (zh) 一种云资源编排方法、系统、终端及存储介质
CN111651319A (zh) 一种监控系统应用服务的同步启停方法
CN107872492B (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
GR01 Patent grant
GR01 Patent grant