一种插件管理方法、装置、设备及存储介质与流程

文档序号:17357100发布日期:2019-04-09 21:47阅读:107来源:国知局
一种插件管理方法、装置、设备及存储介质与流程

本发明涉及计算机应用技术领域,尤其涉及一种插件管理方法、装置、设备及存储介质。



背景技术:

对于服务运营商提供的服务平台,软件开发者可以将所开发的软件发布安装到服务平台上,以使第三方用户能够通过服务平台使用软件的相关功能。目前,随着时代的发展,软件的发展也日新月异,所开的软件也由原来的功能单一,需求变化慢,更新周期长等特点演变成当前的软件功能繁杂、更新周期短以及需求变化快等特点,由此软件开发者需要频繁进行软件相应功能模块的更新,且也存在对所安装软件进行卸载的需求。

对于软件开发者而言,在现有的服务平台上进行软件发布时:首先需要申请创建一个互联网信息服务站点,并等待该服务站点的启动后再登录选择待发布软件。在后续运维中,如果软件开发者对所开发软件中的一项或多项功能模块进行了更新,则需要先停止服务站点然后将包含更新后功能模块的软件再次拷贝到服务站点上,最后再重新启动该服务站点,由此可知软件开发者在每次更新软件后都需要重复上述发布操作,在软件频繁更新的情况下,上述繁琐操作不便于软件开发者对所开发软件的后期运维,极大影响了软件开发者在服务平台上的使用体验。



技术实现要素:

本发明实施例提供了一种插件管理方法、装置、设备及存储介质,解决了软件开发者进行插件发布或更新时频繁重启服务站点的问题。

一方面,本发明实施例提供了一种插件管理方法,包括:

加载所接收的插件包,解析所述插件包中声明的标准接口,获得所包含插件的插件信息;

基于所述插件信息创建对应所述插件包的逻辑容器;

在所述逻辑容器中创建插件实例,并将所述插件关联的文件信息增添至内存,以实现所述插件安装和运行。

可选的,所述插件包由开发端生成并上传发布;

相应的,开发端通过下述方式生成所述插件包:

基于服务平台端提供的逻辑容器应用规范,声明待生成插件的标准接口;

在编写所述待生成插件时,将所述标准接口集成在所述待生成插件的新建类中,获得包含所述标准接口的功能模块;

编译所述功能模块,生成与所述服务平台中逻辑容器耦合的插件,并打包上传至所述服务平台端。

可选的,所述标准接口包括:插件名称、版本信息、开发者信息、入口信息以及上下文信息、插件初始化及释放的声明信息以及插件返回值的格式标准。

进一步地,该方法还包括:基于所述逻辑容器记录相应插件运行时的插件运行信息,所述插件运行信息用于对所述插件的运行维护。

进一步地,该方法还包括:接收到所述插件的卸载请求时,确定所述插件的插件名称;基于所述插件名称确定所述插件对应的逻辑容器;释放所述插件在所述逻辑容器中的占用资源,并从内存中移除与所述插件关联的文件信息。

另一方面,本发明实施例提供了一种插件管理装置,包括:

插件信息获取模块,用于加载所接收的插件包,解析所述插件包中声明的标准接口,获得所包含插件的插件信息;

逻辑容器创建模块,用于基于所述插件信息创建对应所述插件包的逻辑容器;

插件安装运行模块,用于在所述逻辑容器中创建插件实例,并将所述插件关联的文件信息增添至内存,以实现所述插件安装和运行。

又一方面,本发明实施例提供了一种服务器,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的插件管理方法。

再一方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例提供的插件管理方法。

在上述插件管理方法、装置、服务器及存储介质中,该方法首先加载所接收的插件包,解析所述插件包中声明的标准接口,获得所包含插件的插件信息,然后基于所述插件信息创建对应所述插件包的逻辑容器,最终在所述逻辑容器中创建插件实例,并将所述插件关联的文件信息增添至内存,以实现所述插件安装和运行。上述插件管理方法、装置、服务器及存储介质,与现有的插件管理方案相比,本发明的方案省去了软件开发者在插件发布或插件更新时重新服务站点的操作,简化了软件开发者对所开发插件的发布及更新操作,提高了软件开发者在服务平台上的操作体验。

附图说明

图1为本发明实施例提供的一种插件管理方法的流程示意图;

图2为本发明实施例提供的一种插件管理装置的结构框图;

图3为本发明实施例提供的一种服务器的硬件结构图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种插件管理方法的流程示意图,该方法适用于对软件开发者上传的插件进行管理的情况,该方法可以由插件管理装置执行,其中该装置可由软件和/或硬件实现,并一般集成在向第三方提供功能插件的服务平台所依赖的服务器上。

本实施例所提供插件管理方法的应用场景可描述为:软件开发者将开发的功能插件发布到服务平台上,然后由服务平台端对所发布功能插件进行部署,以向第三方用户提供可使用的功能插件。现有技术中,开发端的软件开发者上传发布功能插件的过程较为繁琐,此外,因为不同的软件开发者都可以向服务平台端发布所开发的功能插件,且不同的软件开发者的撰写风格不同,服务平台端需要为所接收不同撰写风格的功能插件进行不同的部署,由此增加了服务平台端的部署负担,本实施例提供的插件管理方法具体在服务平台端实现,能够更好的简化软件开发者的上传操作,还可以减轻服务平台端的部署负担。

具体地,如图1所示,本发明实施例提供的一种插件管理方法,包括如下操作:

s101、加载所接收的插件包,解析所述插件包中声明的标准接口,获得所包含插件的插件信息。

在本实施例中,所述插件包由开发端的软件开发者编写生成并上传发布,服务平台端可以接收到上传发布的插件包并基于该步骤加载插件包,然后可以解析出所加载插件包的标准接口;该标准接口具体在开发端的软件开发者进行插件编写时声明。所述插件信息具体可以是插件的名称、版本以及开发者等信息。

可选的,开发端通过下述方式生成所述插件包:

基于服务平台端提供的逻辑容器应用规范,声明待生成插件的标准接口;在编写所述待生成插件时,将所述标准接口集成在所述待生成插件的新建类中,获得包含所述标准接口的功能模块;编译所述功能模块,生成与所述服务平台中逻辑容器耦合的插件,并打包上传至所述服务平台端。

本实施例提供的插件管理方法,为实现功能插件的有效部署,服务平台端具体声明了一个逻辑容器应用规范,以告知各软件开发者基于该逻辑容器应用规范进行插件模块的编写生成,由此在开发端就生成一个能够与服务平台上逻辑容器耦合的插件。进一步地,所述标准接口包括:插件名称、版本信息、开发者信息、入口信息以及上下文信息、插件初始化及释放的声明信息以及插件返回值的格式标准。

可以理解的是,所述服务平台可以是dotnet平台,该平台中可以实现逻辑容器appdomain的构建。此外,开发端的软件开发者形成符合逻辑容器应用规范的插件模块后,进行插件模块上传时,只需在对应服务平台的操作界面中点击上传按钮,就可将插件模块上传发布到服务平台端,该过程中,无需软件开发者重新申请服务站点或停止已启动的服务站点,由此实现了插件模块的在线更新。

s102、基于所述插件信息创建对应所述插件包的逻辑容器。

接上述步骤,解析出所接收插件的插件信息后,就可以为该插件创建一个逻辑容器,所创建的逻辑容器的具体通过插件信息与插件关联。本实施例中的逻辑容器具体可相当于一个实现代码隔离的基本机制,通过插件与逻辑容器的一一对应,避免其他插件的部署对该插件部署的影响。

s103、在所述逻辑容器中创建插件实例,并将所述插件关联的文件信息增添至内存,以实现所述插件安装和运行。

在本实施例中,可以在创建的逻辑容器中创建具体的插件实例,同时将插件关联的文件信息如安装包等增添至内存,由此实现插件在逻辑容器中的加载、简易安装以及独立运行。本实施例提供的数据管理方法更好的实现了插件模块的热更新,同时保证了同一程序中不同插件的互不影响,进而简化了服务平台端对所接收插件的部署操作。

本发明实施例提供的一种插件管理方法,首先加载所接收的插件包,解析所述插件包中声明的标准接口,获得所包含插件的插件信息,然后基于所述插件信息创建对应所述插件包的逻辑容器,最终在所述逻辑容器中创建插件实例,并将所述插件关联的文件信息增添至内存,以实现所述插件安装和运行,利用该方法,与现有的插件管理方案相比,本发明的方案省去了软件开发者在插件发布或插件更新时重新服务站点的操作,简化了软件开发者对所开发插件的发布及更新操作,提高了软件开发者在服务平台上的操作体验。

在本发明的一个可选实施例中,该方法还包括了:

基于所述逻辑容器记录相应插件运行时的插件运行信息,所述插件运行信息用于对所述插件的运行维护。

具体地,将插件模块放置在相关联逻辑容器中进行安装及后续运行时,相关联的逻辑容器还可以实时记录插件运行时的插件运行信息,所述插件运行信息相当于插件的运行日志,本实施例记录的运行信息便于服务平台端技术人员对该插件后续的运维管理。

在本发明的一个可选实施例中,该方法还包括了:接收到所述插件的卸载请求时,确定所述插件的插件名称;基于所述插件名称确定所述插件对应的逻辑容器;释放所述插件在所述逻辑容器中的占用资源,并从内存中移除与所述插件关联的文件信息。

具体地,本实施例提供的插件管理方法,还可以对服务平台上挂载的插件进行卸载管理。现有技术中,发布插件的软件开发者需要对所挂载插件进行卸载时,需要先关闭与插件关联的服务站点,然后删除服务平台上所挂载插件的相关文件信息,最终在重新启动服务站点,该种操作同样较为繁琐影响软件开发者对该服务平台的使用体验,同时,服务平台端的技术人员也需要对开发端待删除的插件进行卸载配置。

基于本实施例上述描述,软件开发者可以在存在待卸载的插件时,只需在对应服务平台的操作界面中找到待卸载的插件,并点击卸载按钮,服务平台端就可以接收到该待卸载插件的卸载请求,并通过对该卸载请求的解析获得待卸载插件的插件名称,并由此确定与该插件对应的逻辑容器,然后释放所述插件在所述逻辑容器中的占用资源,并从内存中移除与所述插件关联的文件信息。通过该方法实现的插件卸载,有效简化了软件开发者的卸载操作,并同时实现了服务平台端在确定不影响其他挂载插件的前提下实现了对所挂载插件的有效部署。

示例性地,为更好理解本发明实施例提供的插件管理方法所起的有益效果,本实施例对插件的生成发布运行卸载的过程进行简单描述:首先服务平台端向建立连接的开发端声明逻辑容器应用规范;然后,当开发端存在需要更新的插件或存在待发布到服务平台端的功能插件时,软件开发者基于该逻辑应用规范,对待生成或待更新的插件进行标准接口声明;并在编写待生成/更新的插件时,将标准接口集成在插件的新建类中,得到包含该标准接口的功能模块,编译该功能模块后生成耦合服务平台中逻辑容器的插件,打包该插件并通过对应服务平台端的交互界面进行插件的上传发布;之后,服务平台端可以加载该插件,并通过解析获得的标准接口确定插件的插件信息,由此基于插件信息创建该插件的逻辑容器,并通过在逻辑容器中创建插件实例,添加插件的文件信息到内存,从而实现插件在服务平台端的更新安装和运行;在运行逻辑容器中插件的同时还会生成用于运行维护的插件运行信息;最终,如果软件开发者需要卸载该插件,则可以向服务平台端发送对应该插件的卸载请求,服务平台端可以根据卸载请求中的插件名称确定插件对应的逻辑容器,由此可以释放插件在该逻辑容器中的占用资源,以及从内存中移除与插件关联的文件信息。

通过上述描述,可以发现,基于本实施例提供的插件管理方法能够在不重启服务站点的情况下简单方便的实现插件到服务平台端的挂载,同时保证各插件的运行互不影响,方便软件开发者执行更新发布或者卸载操作的同时,还实现了服务平台端插件的智能化管理。

综上,本发明实施例提供插件管理方法,具体增加了基于逻辑容器对所挂载插件进行运行信息记录的操作,同时具体化了所挂载插件的卸载管理操作。该方法方便了服务平台端技术人员对该插件后续的运维管理,此外,还有效简化了软件开发者的卸载操作,并同时实现了服务平台端在确定不影响其他挂载插件的前提下实现了对所挂载插件的有效部署,进而有效提高了软件开发者在服务平台上的操作体验。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。

本发明实施例还给出了一种插件管理装置,参照图2,图2为本发明实施例提供的一种插件管理装置的结构框图,该管理装置适用于对软件开发者上传的插件进行管理的情况,该装置可由软件和/或硬件实现,并一般集成在向第三方提供功能插件的服务平台所依赖的服务器上。

如图2所示,该装置包括:插件信息获取模块21、逻辑容器创建模块22以及插件安装运行模块23。

其中,插件信息获取模块21,用于加载所接收的插件包,解析所述插件包中声明的标准接口,获得所包含插件的插件信息;

逻辑容器创建模块22,用于基于所述插件信息创建对应所述插件包的逻辑容器;

插件安装运行模块23,用于在所述逻辑容器中创建插件实例,并将所述插件关联的文件信息增添至内存,以实现所述插件安装和运行。

可选的,所述插件包由开发端生成并上传发布;相应的,所述开发端包括:插件生成装置,所述插件生成装置具体用于:

基于服务平台端提供的逻辑容器应用规范,声明待生成插件的标准接口;

在编写所述待生成插件时,将所述标准接口集成在所述待生成插件的新建类中,获得包含所述标准接口的功能模块;

编译所述功能模块,生成与所述服务平台中逻辑容器耦合的插件,并打包上传至所述服务平台端。

进一步地,所述标准接口包括:插件名称、版本信息、开发者信息、入口信息以及上下文信息、插件初始化及释放的声明信息以及插件返回值的格式标准。

可选的,该装置还包括了:运行信息记录模块,用于基于所述逻辑容器记录相应插件运行时的插件运行信息,所述插件运行信息用于对所述插件的运行维护。

可选的,该装置还包括了:插件卸载模块,

所述插件卸载模块,具体用于:

接收到所述插件的卸载请求时,确定所述插件的插件名称;

基于所述插件名称确定所述插件对应的逻辑容器;

释放所述插件在所述逻辑容器中的占用资源,并从内存中移除与所述插件关联的文件信息。

需要说明的是,上述提供的插件管理装置可执行本发明任意实施例所提供的数据管理装方法,具备执行方法相应的功能和有益效果。

参照图3为本发明实施例提供的一种服务器的硬件结构示意图,如图3所示,本发明实施例四提供的服务器,该服务器具体可以包括:处理器30、存储装置31、具有触摸功能的显示屏32、输入装置33、输出装置34以及通信装置35。该服务器中处理器30的数量可以是一个或者多个,图3中以一个处理器30为例。该服务器中存储装置31的数量可以是一个或者多个,图3中以一个存储装置31为例。该服务器的处理器30、存储装置31、显示屏32、输入装置33、输出装置34以及通信装置35可以通过总线或者其他方式连接,图3中以通过总线连接为例。

存储装置31作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例所述的数据管理装方法对应的程序指令/模块(例如,插件信息获取模块21、逻辑容器创建模块22以及插件安装运行模块23等)。存储装置31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需的应用程序;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储装置31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置31可进一步包括相对于处理器30远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

显示屏32为具有触摸功能的显示屏32,其可以是电容屏、电磁屏或者红外屏。一般而言,显示屏32用于根据处理器30的指示显示数据,还用于接收作用于显示屏32的触摸操作,并将相应的信号发送至处理器30或其他装置。可选的,当显示屏32为红外屏时,其还包括红外触摸框,该红外触摸框设置在显示屏32的四周,其还可以用于接收红外信号,并将该红外信号发送至处理器30或者其他服务器。

通信装置35,用于与其他计算机设备建立通信连接,其可以是有线通信装置和/或无线通信装置。

输入装置33可用于接收输入的数字或者字符信息,以及产生与服务器的用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取视频数据中音频的拾音服务器。输出装置34可以包括显示屏等视频服务器以及扬声器等音频服务器。需要说明的是,输入装置33和输出装置34的具体组成可以根据实际情况设定。

处理器30通过运行存储在存储装置31中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的数据管理装方法。

具体的,实施例中,处理器30执行存储装置31中存储的一个或多个程序时,具体实现如下操作:加载所接收的插件包,解析所述插件包中声明的标准接口,获得所包含插件的插件信息;基于所述插件信息创建对应所述插件包的逻辑容器;在所述逻辑容器中创建插件实例,并将所述插件关联的文件信息增添至内存,以实现所述插件安装和运行。

本发明实施例还提供一种计算机可读存储介质,所述存储介质中的程序由服务器的处理器执行时,使得服务器能够执行如上述方法实施例所述的数据管理装方法。示例性的,该数据管理装方法包括:加载所接收的插件包,解析所述插件包中声明的标准接口,获得所包含插件的插件信息;基于所述插件信息创建对应所述插件包的逻辑容器;在所述逻辑容器中创建插件实例,并将所述插件关联的文件信息增添至内存,以实现所述插件安装和运行。

需要说明的是,对于装置、服务器、存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台服务器(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的数据管理装方法。

值得注意的是,上述插件管理装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1