CN104932887B - 一种平台***的插件管理方法和平台*** - Google Patents

一种平台***的插件管理方法和平台*** Download PDF

Info

Publication number
CN104932887B
CN104932887B CN201510323345.5A CN201510323345A CN104932887B CN 104932887 B CN104932887 B CN 104932887B CN 201510323345 A CN201510323345 A CN 201510323345A CN 104932887 B CN104932887 B CN 104932887B
Authority
CN
China
Prior art keywords
plug
server
management database
instance
storage
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
CN201510323345.5A
Other languages
English (en)
Other versions
CN104932887A (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201510323345.5A priority Critical patent/CN104932887B/zh
Publication of CN104932887A publication Critical patent/CN104932887A/zh
Application granted granted Critical
Publication of CN104932887B publication Critical patent/CN104932887B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种平台***的插件管理方法和平台***。本发明是利用插件存储服务器对平台***中所有的实例服务器所使用的插件进行统一存储,并利用插件管理数据库对所有插件的信息进行保存,各个实例服务器通过对插件管理数据库的访问即可或者自己是否需要安装、更新或是删除相应的插件。本发明不但可以方便开发人员对***插件的新增、更新和删除操作,还可以通过对插件管理数据库中所存储数据的查看,而清晰地知晓插件任务的执行。另外,因为插件管理数据库存储有插件的相应数据,当某个实例出现异常没有执行某个或者某些插件操作任务时,可以通过对插件管理数据库记录的查询快速地定位异常实例,方便问题的排查、解决。

Description

一种平台***的插件管理方法和平台***
技术领域
本发明涉及计算机、互联网领域,特别涉及一种计算机、互联网中的应用***的平台***的插件管理方法和平台***。
背景技术
目前,随着计算机和网络的蓬勃发展,应用***的功能不断扩大,应用***的代码量也在不断增加,随之而来的是***的可维护性不断降低。因此,开发人员在对***进行功能增加、修改等操作时,如果不对***的代码足够了解,很难快速的完成对***功能的修改。
为了解决这一问题,目前的主流是搭建平台***,以提供基础的底层服务。在此基础上,在功能扩充方面引入插件机制,进而开发人员对***进行功能扩充时,就不必对平台***进行修改,而是按照插件规范开发插件,上传到平台***即可以完成对***功能的扩充。
图1所示为现有的平台***提供的插件管理方式。
参见图1所示,现有的平台***的插件安装具体过程是,开发人员将插件包上传到平台***,平台***将插件包存储在平台***的本地服务器硬盘中,之后,平台***拆包插件包、加载解析插件文件、校验插件、装载插件,并将插件的注册信息(如插件包名称、插件标识以及插件包存放地址等)存入数据库中,之后平台***即可对外提供插件的功能。
参见图1所示,现有的平台***的插件更新具体过程是,开发人员将新的插件包上传到平台***,平台***将新的插件包存储在平台***的本地服务器硬盘中,之后,平台***拆包插件包、加载解析插件文件、校验插件,之后平台***在数据库中查询插件的注册信息,如果没有注册信息,则新增该系的插件包的注册信息,如果有注册信息,则对注册信息进行更新,之后卸载原有插件并装载新的插件,随后平台***即可对外提供新的插件的功能。
参见图1所示,现有的平台***的插件删除过程是,开发人员将向平台***发出删除插件指令,平台***向数据库查询所要删除的插件的注册信息,如果有,则删除插件的注册信息,之后平台***实例卸载插件,如果没有注册信息,则表明平台***中没有所要删除的插件。
随着平台***功能的不断增加,集群服务器的使用越来越多。而对于集群服务器的平台***来说,现有技术方案每次增加、修改、删除都需要针对于集群中的每台服务器上的***实例进行单独操作。这样,既费时、又费力。并且,极易漏掉对个别服务器的实例的相关插件操作,进而导致,没有及时进行插件操作的服务器中的实例不能执行插件的功能,同时,开发人员在寻找这种问题时,也很费时、费力。
发明内容
有鉴于此,本发明提供一种平台***的插件管理方法和平台***,以实现平台***对插件的统一管理,降低人工管理成本,并消除人工管理时易于发生的错误。
本发明的技术方案是这样实现的:
一种平台***的插件管理方法,所述平台***具有多个实例服务器,所述方法包括:
将插件管理数据信息发送给所述多个实例服务器中的关键实例服务器;
关键实例服务器根据所接收的插件管理数据信息的内容执行本关键实例服务器的插件操作,并对插件管理数据库的数据进行更新,并根据所述插件管理数据信息的内容酌情与插件存储服务器进行数据交互;
所述多个实例服务器中除关键实例服务器以外的其它实例服务器根据所述插件管理数据库中的数据变化,执行本实例服务器的插件操作,并酌情与插件存储服务器进行数据交互。
进一步,所述插件管理数据信息包括:插件数据包、插件删除指令信息。
进一步,当所述插件管理数据信息为所述插件数据包时:
关键实例服务器根据所接收的插件管理数据信息的内容执行本关键实例服务器的插件操作,并对插件管理数据库的数据进行更新,并根据所述插件管理数据信息的内容酌情与插件存储服务器进行数据交互,包括:
所述关键实例服务器将接收到的插件数据包上传给所述插件存储服务器进行保存;
上传给所述插件存储服务器后,所述关键实例服务器将本地保存的所述插件数据包拆包为插件文件,并对所述插件文件进行加载和解析;
所述关键实例服务器在所述插件管理数据库中查询是否存在所述插件的存储记录;
若所述插件管理数据库中没有所述插件的存储记录,则所述关键实例服务器对所述插件进行装载,之后,向所述插件管理数据库中添加所述插件的存储记录,并向所述插件管理数据库中添加所述插件的新增任务记录;
若所述插件管理数据库中存在所述插件的存储记录,则所述关键实例服务器对所述插件的旧版插件进行卸载,并对所述插件进行装载,之后,向所述插件管理数据库中更新所述插件的存储记录,并向所述插件管理数据库中添加所述插件的更新任务记录;
所述多个实例服务器中除关键实例服务器以外的其它实例服务器根据所述插件管理数据库中的数据变化,执行本实例服务器的插件操作,并酌情与插件存储服务器进行数据交互,包括:
所述其它实例服务器对所述插件管理数据库进行扫描;
当发现所述插件管理数据库中所述插件的新增任务记录后,所述其它实例服务器通过所述插件管理数据库中的所述插件的存储记录获取所述插件在所述插件存储服务器中的存储地址,进而从所述插件存储服务器下载所述插件的插件数据包,并将其拆包为插件文件,并对所述插件文件进行加载、解析和装载;
当发现所述插件管理数据库中所述插件的更新任务记录后,所述其它实例服务器对所述插件的旧版插件进行卸载,之后所述其它实例服务器通过所述插件管理数据库中的所述插件的存储记录获取所述插件在所述插件存储服务器中的存储地址,进而从所述插件存储服务器下载所述插件的插件数据包,并将其拆包为插件文件,并对所述插件文件进行加载、解析和装载。
进一步,所述关键实例服务器将本地保存的所述插件数据包拆包为插件文件后,还包括:
所述关键实例服务器对所述插件文件的内容进行规范校验,以校验所述插件是否符合所述平台***的插件规范,当所述插件的校验结果不符合所述平台***的插件规范时,进行相应的错误提示。
进一步,当所述插件管理数据信息为所述插件删除指令信息时:
关键实例服务器根据所接收的插件管理数据信息的内容执行本关键实例服务器的插件操作,并对插件管理数据库的数据进行更新,并根据所述插件管理数据信息的内容酌情与插件存储服务器进行数据交互,包括:
所述关键实例服务器根据所述插件删除指令信息,对其本地的所述插件执行卸载和删除操作,并向所述插件管理数据库中添加所述插件的删除任务记录,不与所述插件存储服务器进行数据交互;
所述多个实例服务器中除关键实例服务器以外的其它实例服务器根据所述插件管理数据库中的数据变化,执行本实例服务器的插件操作,并酌情与插件存储服务器进行数据交互,包括:
所述其它实例服务器对所述插件管理数据库进行扫描;
当发现所述插件管理数据库中所述插件的删除任务记录后,所述其它实例服务器对其各自本地的所述插件执行卸载和删除操作,不与所述插件存储服务器进行数据交互。
进一步,所述插件管理数据库中存储有插件记录表和插件操作任务记录表;其中,
所述插件记录表中记录有安装于所述平台***的各个插件的记录,其中包括各个插件的插件标识、插件包名称、以及插件包在所述插件存储服务器中的存储地址;
所述插件操作任务记录表中记录有安装于所述平台***的各个插件的任务记录,其中包括各个插件的插件标识、插件包名称、以及各个插件在每个实例服务器中的操作任务执行记录。
一种平台***,包括插件存储服务器、插件管理数据库和多个实例服务器;其中,
所述多个实例服务器中包括一个关键实例服务器;
所述关键实例服务器,用于接收插件管理数据信息,根据所接收的插件管理数据信息的内容执行本关键实例服务器的插件操作,并对所述插件管理数据库的数据进行更新,并根据所述插件管理数据信息的内容酌情与所述插件存储服务器进行数据交互;
所述插件存储服务器,用于对接收的插件包进行存储,以及向除关键实例服务器以外的其它实例服务器提供所存储的插件包;
所述插件管理数据库,用于保存插件的存储记录和任务记录;
所述多个实例服务器中除关键实例服务器以外的其它实例服务器,用于根据所述插件管理数据库中的数据变化,执行本实例服务器的插件操作,并酌情与插件存储服务器进行数据交互。
进一步,所述插件管理数据信息包括:插件数据包、插件删除指令信息。
进一步,当所述插件管理数据信息为所述插件数据包时:
所述关键实例服务器,用于将接收到的插件数据包上传给所述插件存储服务器进行保存,之后,将其本地保存的所述插件数据包拆包为插件文件,并对所述插件文件进行加载和解析,之后,在所述插件管理数据库中查询是否存在所述插件的存储记录;
若所述插件管理数据库中没有所述插件的存储记录,则所述关键实例服务器对所述插件进行装载,之后,向所述插件管理数据库中添加所述插件的存储记录,并向所述插件管理数据库中添加所述插件的新增任务记录;
若所述插件管理数据库中存在所述插件的存储记录,则所述关键实例服务器对所述插件的旧版插件进行卸载,并对所述插件进行装载,之后,向所述插件管理数据库中更新所述插件的存储记录,并向所述插件管理数据库中添加所述插件的更新任务记录;
所述多个实例服务器中除关键实例服务器以外的其它实例服务器,用于对所述插件管理数据库进行扫描;
当发现所述插件管理数据库中所述插件的新增任务记录后,所述其它实例服务器通过所述插件管理数据库中的所述插件的存储记录获取所述插件在所述插件存储服务器中的存储地址,进而从所述插件存储服务器下载所述插件的插件数据包,并将其拆包为插件文件,并对所述插件文件进行加载、解析和装载;
当发现所述插件管理数据库中所述插件的更新任务记录后,所述其它实例服务器对所述插件的旧版插件进行卸载,之后所述其它实例服务器通过所述插件管理数据库中的所述插件的存储记录获取所述插件在所述插件存储服务器中的存储地址,进而从所述插件存储服务器下载所述插件的插件数据包,并将其拆包为插件文件,并对所述插件文件进行加载、解析和装载。
进一步,所述关键实例服务器将本地保存的所述插件数据包拆包为插件文件后,所述关键实例服务器还用于对所述插件文件的内容进行规范校验,以校验所述插件是否符合所述平台***的插件规范,当所述插件的校验结果不符合所述平台***的插件规范时,进行相应的错误提示。
进一步,当所述插件管理数据信息为所述插件删除指令信息时:
所述关键实例服务器,用于根据所述插件删除指令信息,对其本地的所述插件执行卸载和删除操作,并向所述插件管理数据库中添加所述插件的删除任务记录,不与所述插件存储服务器进行数据交互;
所述多个实例服务器中除关键实例服务器以外的其它实例服务器,用于对所述插件管理数据库进行扫描;
当发现所述插件管理数据库中所述插件的删除任务记录后,所述其它实例服务器对其各自本地的所述插件执行卸载和删除操作,不与所述插件存储服务器进行数据交互。
进一步,所述插件管理数据库中存储有插件记录表和插件操作任务记录表;其中,
所述插件记录表中记录有安装于所述平台***的各个插件的记录,其中包括各个插件的插件标识、插件包名称、以及插件包在所述插件存储服务器中的存储地址;
所述插件操作任务记录表中记录有安装于所述平台***的各个插件的任务记录,其中包括各个插件的插件标识、插件包名称、以及各个插件在每个实例服务器中的操作任务执行记录。
从上述方案可以看出,本发明的平台***的插件管理方法和平台***,利用插件存储服务器对平台***中所有的实例服务器所使用的插件进行统一存储,并利用插件管理数据库对所有插件的信息进行保存,各个实例服务器通过对插件管理数据库的访问即可或者自己是否需要安装、更新或是删除相应的插件。本发明不但可以方便开发人员对***插件的新增、更新和删除操作,还可以通过对插件管理数据库中所存储数据的查看,而清晰地知晓插件任务的执行。另外,因为插件管理数据库存储有插件的相应数据,当某个实例出现异常没有执行某个或者某些插件操作任务时,可以通过对插件管理数据库记录的查询快速地定位异常实例,方便问题的排查、解决。
附图说明
图1为现有的平台***插件管理方式示意图;
图2为本发明的平台***的插件管理方法流程示意图;
图3为本发明中当所述插件管理数据信息为所述插件数据包时步骤2的流程示意图;
图4为本发明中当所述插件管理数据信息为所述插件数据包时步骤3的流程示意图;
图5为本发明的平台***结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
本发明的平台***的插件管理方法实施例中,所述平台***具有多个实例服务器。如图2所示,本发明的平台***的插件管理方法,包括:
步骤1、将插件管理数据信息发送给所述多个实例服务器中的关键实例服务器;
步骤2、关键实例服务器根据所接收的插件管理数据信息的内容执行本关键实例服务器的插件操作,并对插件管理数据库的数据进行更新,并根据所述插件管理数据信息的内容酌情与插件存储服务器进行数据交互;
步骤3、所述多个实例服务器中除关键实例服务器以外的其它实例服务器根据所述插件管理数据库中的数据变化,执行本实例服务器的插件操作,并酌情与插件存储服务器进行数据交互。
其中,所述插件管理数据信息包括:插件数据包、插件删除指令信息。
如图3所示,当所述插件管理数据信息为所述插件数据包时,所述步骤2包括:
步骤21、所述关键实例服务器将接收到的插件数据包上传给所述插件存储服务器进行保存;
步骤22、上传给所述插件存储服务器后,所述关键实例服务器将本地保存的所述插件数据包拆包为插件文件,并对所述插件文件进行加载和解析;
步骤23、所述关键实例服务器在所述插件管理数据库中查询是否存在所述插件的存储记录;
步骤24、若所述插件管理数据库中没有所述插件的存储记录,则所述关键实例服务器对所述插件进行装载,之后,向所述插件管理数据库中添加所述插件的存储记录,并向所述插件管理数据库中添加所述插件的新增任务记录;
步骤25、若所述插件管理数据库中存在所述插件的存储记录,则所述关键实例服务器对所述插件的旧版插件进行卸载,并对所述插件进行装载,之后,向所述插件管理数据库中更新所述插件的存储记录,并向所述插件管理数据库中添加所述插件的更新任务记录。
如图4所示,当所述插件管理数据信息为所述插件数据包时,所述步骤3包括:
步骤31、所述其它实例服务器对所述插件管理数据库进行扫描;
步骤32、当发现所述插件管理数据库中所述插件的新增任务记录后,所述其它实例服务器通过所述插件管理数据库中的所述插件的存储记录获取所述插件在所述插件存储服务器中的存储地址,进而从所述插件存储服务器下载所述插件的插件数据包,并将其拆包为插件文件,并对所述插件文件进行加载、解析和装载;
步骤33、当发现所述插件管理数据库中所述插件的更新任务记录后,所述其它实例服务器对所述插件的旧版插件进行卸载,之后所述其它实例服务器通过所述插件管理数据库中的所述插件的存储记录获取所述插件在所述插件存储服务器中的存储地址,进而从所述插件存储服务器下载所述插件的插件数据包,并将其拆包为插件文件,并对所述插件文件进行加载、解析和装载。
所述步骤21中,所述关键实例服务器将本地保存的所述插件数据包拆包为插件文件后,还包括:
所述关键实例服务器对所述插件文件的内容进行规范校验,以校验所述插件是否符合所述平台***的插件规范,当所述插件的校验结果不符合所述平台***的插件规范时,进行相应的错误提示。
上述当所述插件管理数据信息为所述插件数据包时的实施例,适用于插件的安装和更新。
本发明实施例中,当所述插件管理数据信息为所述插件删除指令信息时,所述步骤2包括:
步骤21’、所述关键实例服务器根据所述插件删除指令信息,对其本地的所述插件执行卸载和删除操作,并向所述插件管理数据库中添加所述插件的删除任务记录,不与所述插件存储服务器进行数据交互。
当所述插件管理数据信息为所述插件删除指令信息时,所述步骤3包括:
步骤31’、所述其它实例服务器对所述插件管理数据库进行扫描;
步骤32’、当发现所述插件管理数据库中所述插件的删除任务记录后,所述其它实例服务器对其各自本地的所述插件执行卸载和删除操作,不与所述插件存储服务器进行数据交互。
本发明的平台***的插件管理方法中,所述插件管理数据库中存储有插件记录表和插件操作任务记录表;其中,所述插件记录表中记录有安装于所述平台***的各个插件的记录,其中包括各个插件的插件标识、插件包名称、以及插件包在所述插件存储服务器中的存储地址;所述插件操作任务记录表中记录有安装于所述平台***的各个插件的任务记录,其中包括各个插件的插件标识、插件包名称、以及各个插件在每个实例服务器中的操作任务执行记录。进而各个实例服务器均可以从插件管理数据库中获知相应的插件信息,进而实现其自动对插件的安装、更新和删除操作。更具体的过程,详见随后的说明。
本发明同时提供了一种平台***,如图5所示,其包括插件存储服务器20、插件管理数据库30和多个实例服务器10。其中,所述多个实例服务器10中包括一个关键实例服务器11;所述关键实例服务器11,用于接收插件管理数据信息,根据所接收的插件管理数据信息的内容执行本关键实例服务器11的插件操作,并对所述插件管理数据库30的数据进行更新,并根据所述插件管理数据信息的内容酌情与所述插件存储服务器20进行数据交互。所述插件存储服务器20,用于对接收的插件包进行存储,以及向除关键实例服务器11以外的其它实例服务器12提供所存储的插件包。所述插件管理数据库30,用于保存插件的存储记录和任务记录。所述多个实例服务器10中除关键实例服务器11以外的其它实例服务器12,用于根据所述插件管理数据库30中的数据变化,执行本实例服务器的插件操作,并酌情与插件存储服务器20进行数据交互。
其中,所述插件管理数据信息包括:插件数据包、插件删除指令信息。
本发明的平台***实施例中,当所述插件管理数据信息为所述插件数据包时:
所述关键实例服务器11,用于将接收到的插件数据包上传给所述插件存储服务器20进行保存,之后,将其本地保存的所述插件数据包拆包为插件文件,并对所述插件文件进行加载和解析,之后,在所述插件管理数据库30中查询是否存在所述插件的存储记录;若所述插件管理数据库30中没有所述插件的存储记录,则所述关键实例服务器11对所述插件进行装载,之后,向所述插件管理数据库30中添加所述插件的存储记录,并向所述插件管理数据库30中添加所述插件的新增任务记录;若所述插件管理数据库30中存在所述插件的存储记录,则所述关键实例服务器11对所述插件的旧版插件进行卸载,并对所述插件进行装载,之后,向所述插件管理数据库30中更新所述插件的存储记录,并向所述插件管理数据库30中添加所述插件的更新任务记录。所述多个实例服务器10中除关键实例服务器11以外的其它实例服务器12,用于对所述插件管理数据库30进行扫描;当发现所述插件管理数据库30中所述插件的新增任务记录后,所述其它实例服务器12通过所述插件管理数据库30中的所述插件的存储记录获取所述插件在所述插件存储服务器20中的存储地址,进而从所述插件存储服务器20下载所述插件的插件数据包,并将其拆包为插件文件,并对所述插件文件进行加载、解析和装载;当发现所述插件管理数据库30中所述插件的更新任务记录后,所述其它实例服务器12对所述插件的旧版插件进行卸载,之后所述其它实例服务器12通过所述插件管理数据库30中的所述插件的存储记录获取所述插件在所述插件存储服务器20中的存储地址,进而从所述插件存储服务器20下载所述插件的插件数据包,并将其拆包为插件文件,并对所述插件文件进行加载、解析和装载。
所述关键实例服务器11将本地保存的所述插件数据包拆包为插件文件后,所述关键实例服务器11还用于对所述插件文件的内容进行规范校验,以校验所述插件是否符合所述平台***的插件规范,当所述插件的校验结果不符合所述平台***的插件规范时,进行相应的错误提示。
本发明的平台***实施例中,当所述插件管理数据信息为所述插件删除指令信息时:
所述关键实例服务器11,用于根据所述插件删除指令信息,对其本地的所述插件执行卸载和删除操作,并向所述插件管理数据库30中添加所述插件的删除任务记录,不与所述插件存储服务器20进行数据交互。所述多个实例服务器10中除关键实例服务器11以外的其它实例服务器12,用于对所述插件管理数据库30进行扫描;当发现所述插件管理数据库30中所述插件的删除任务记录后,所述其它实例服务器12对其各自本地的所述插件执行卸载和删除操作,不与所述插件存储服务器20进行数据交互。
本发明的平台***实施例中,所述插件管理数据库30中存储有插件记录表31和插件操作任务记录表32;其中,所述插件记录表31中记录有安装于所述平台***的各个插件的记录,其中包括各个插件的插件标识、插件包名称、以及插件包在所述插件存储服务器20中的存储地址;所述插件操作任务记录表32中记录有安装于所述平台***的各个插件的任务记录,其中包括各个插件的插件标识、插件包名称、以及各个插件在每个实例服务器10中的操作任务执行记录。
以下再次结合具体实际,对本发明的平台***的插件管理方法和平台***进行说明。
本发明实例中,对平台***的插件管理主要包括新增插件、更新插件和删除插件。
新增插件和更新插件的处理流程类似,大体过程为:
1)开发人员上传插件包到平台***,由平台***中的关键实例服务器接收插件包,并将该插件包上传到插件存储服务器,之后关键实例服务器在本服务器将插件包拆包,拆包后得到插件文件;关键实例服务器加载该插件文件,再解析插件文件中的内容,对插件文件进行校验,插件校验不合格则会提示插件不符合规范,插件校验合格则关键实例服务器装载该插件以实现插件功能,并将插件的插件标识、插件包名和插件包存储路径添加或者更新到插件管理数据库的插件记录表中,同时,在插件管理数据库中的插件操作任务记录表中添加该次操作任务记录(如新增或者更新),以供其它实例服务器参考。其中,插件包存储路径由插件存储服务器提供给关键实例服务器,再由关键实例服务器添加或者更新到插件管理数据库。
2)其它实例服务器扫描插件管理数据库中的插件操作任务记录表,当扫描到插件操作任务记录表中新增加的任务记录(即关键实例服务器新添加的任务记录)时,根据该任务记录的内容执行与之相同的操作;例如,关键实例服务器新添加的任务记录是插件4添加的任务记录,则其它实例服务器扫描到该条插件4添加的任务记录时,也执行插件4添加任务,此时,其它实例服务器根据插件管理数据库中的插件4的插件包的存储路径从插件存储服务器获得插件4的插件包,并执行拆包、加载、解析、装载的安装过程,进而在其它实例服务器中实现插件4的功能。
其它实例服务器为了区分新增加的任务记录和已执行的任务记录,可以在本地记录已经执行的任务记录,对于已记录的任务记录,则不再执行,对于本地没有记录而出现在插件管理数据库中的插件操作任务记录表中的任务记录作为新增任务记录进行执行。或者,可以在插件操作任务记录表中增加对应于每个实例服务器的标志字段,当某一其它实例服务器标志字段为空时,表示该其它实例服务器尚未执行该条插件操作任务,则该其它实例服务器依照该条插件操作任务执行相应任务,之后将该标志字段添加为已完成标志,这样,其它实例服务器只需要扫描插件操作任务记录表中各条信息的关于其本身的标志字段,即可发现增加的任务记录。
新增插件和更新插件的具体流程如下:
关键实例服务器端:
步骤a1、关键实例服务器接收插件包,并将该插件包上传到插件存储服务器,之后执行步骤a2;
步骤a2、关键实例服务器在本服务器将插件包拆包,得到插件文件,并加载和解析该插件文件,之后执行步骤a3;
步骤a3、关键实例服务器对插件文件进行校验,如果校验不合格则执行步骤a4,如果校验合格则执行步骤a5;
步骤a4、关键实例服务器提示插件不符合规范,并结束新增插件操作过程;
步骤a5、关键实例服务器根据该插件的插件标识在插件管理数据库中的插件记录表中进行查询,若在插件记录表没有查询到该插件的插件标识,则表明该插件是新增插件,之后执行步骤a6,若在插件记录表查询到该插件的插件标识,则表明该插件是更新插件,之后执行步骤a8;
步骤a6、关键实例服务器装载该插件以实现插件功能,同时执行步骤a7;
步骤a7、关键实例服务器将插件的插件标识、插件包名和插件包存储路径添加到插件管理数据库的插件记录表中,同时,在插件管理数据库中的插件操作任务记录表中添加该次操作任务记录;
步骤a8、关键实例服务器卸载该插件的旧版插件,并重新装载该插件以实现插件功能,同时执行步骤a9;
步骤a9、关键实例服务器将插件的插件标识、插件包名和插件包存储路径更新到插件管理数据库的插件记录表的相应插件标识的记录中,同时,在插件管理数据库中的插件操作任务记录表中添加该次操作任务记录。
其中,插件包存储路径是由插件存储服务器提供给关键实例服务器的,插件存储服务器可在在关键实例服务器进行插件包上传时,返回给关键实例服务器,也可在步骤a6和/或步骤a9中由关键实例服务器向插件存储服务器所取的。
其它实例服务器端:
步骤b1、其它实例服务器扫描插件管理数据库中的插件操作任务记录表,当扫描到插件操作任务记录表中新增加新增插件的任务记录时,执行步骤b2,当扫描到插件操作任务记录表中新增加更新插件的任务记录时,执行步骤b4;
步骤b2、其它实例服务器根据该新增插件任务记录的内容,获得该新增插件在存储服务器中的存储路径,并根据该存储路径从所述插件存储服务器中获取该新增插件的插件包,之后执行步骤b3;
步骤b3、其他实例服务器对获取的插件包进行拆包,以得到插件文件,并加载、解析和装载该插件文件以实现插件功能;
步骤b4、其它实例服务器根据该更新插件任务记录的内容,先卸载该插件的旧版插件,之后获得该更新插件在存储服务器中的存储路径,并根据该存储路径从所述插件存储服务器中获取该更新插件的插件包,之后执行步骤b3。
以上是新增插件和更新插件的具体流程。
删除插件的具体流程如下:
关键实例服务器端:
步骤c1、关键实例服务器接收所要删除的插件标识(例如插件名称),之后执行步骤c2;
步骤c2、关键实例服务器将插件管理数据库的插件记录表中的该插件标识的记录删除,同时在插件管理数据库的插件操作任务记录表中新增加删除该插件的任务记录,之后执行步骤c3;
步骤c3、关键实例服务器在本地将该插件卸载和删除。
其它实例服务器端:
步骤d1、其它实例服务器扫描插件管理数据库中的插件操作任务记录表,当扫描到插件操作任务记录表中新增加删除插件的任务记录时,执行步骤d2;
步骤d2、其它实例服务器根据该删除插件任务记录中的插件标识,在本地将该插件卸载和删除。
本发明实例中,每个实例服务器中均会有一个用于进行插件管理数据库扫描和进行自身所运行插件扫描的扫描进程,利用该扫描进程实现对插件管理数据库的更新信息的获取。
对于平台***的各个实例服务器来说,其自身因为维护或者其他原因,可能需要离线或者重启。当重新上线或者重启结束后,实例服务器中的扫描进程首先扫描本地的插件,以获取本地已有插件的信息,之后再执行对插件管理数据库的扫描工作,进而实现势力服务器重新上线或者重启后的插件管理。
本发明的平台***的插件管理方法和平台***,利用插件存储服务器对平台***中所有的实例服务器所使用的插件进行统一存储,并利用插件管理数据库对所有插件的信息进行保存,各个实例服务器通过对插件管理数据库的访问即可或者自己是否需要安装、更新或是删除相应的插件。本发明不但可以方便开发人员对***插件的新增、更新和删除操作,还可以通过对插件管理数据库中所存储数据的查看,而清晰地知晓插件任务的执行。另外,因为插件管理数据库存储有插件的相应数据,当某个实例出现异常没有执行某个或者某些插件操作任务时,可以通过对插件管理数据库记录的查询快速地定位异常实例,方便问题的排查、解决。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (12)

1.一种平台***的插件管理方法,所述平台***具有多个实例服务器,所述方法包括:
将插件管理数据信息发送给所述多个实例服务器中的关键实例服务器;
关键实例服务器根据所接收的插件管理数据信息的内容执行本关键实例服务器的插件操作,并对插件管理数据库的数据进行更新,并根据所述插件管理数据信息的内容酌情与插件存储服务器进行数据交互;
所述多个实例服务器中除关键实例服务器以外的其它实例服务器根据所述插件管理数据库中的数据变化,执行本实例服务器的插件操作,并酌情与插件存储服务器进行数据交互;其中,
所述插件存储服务器对接收的插件数据包进行存储,向除关键实例服务器以外的其它实例服务器提供所存储的插件数据包;
所述插件管理数据库保存插件的存储记录和任务记录。
2.根据权利要求1所述的平台***的插件管理方法,其特征在于,所述插件管理数据信息包括:插件数据包、插件删除指令信息。
3.根据权利要求2所述的平台***的插件管理方法,其特征在于,当所述插件管理数据信息为所述插件数据包时:
关键实例服务器根据所接收的插件管理数据信息的内容执行本关键实例服务器的插件操作,并对插件管理数据库的数据进行更新,并根据所述插件管理数据信息的内容酌情与插件存储服务器进行数据交互,包括:
所述关键实例服务器将接收到的插件数据包上传给所述插件存储服务器进行保存;
上传给所述插件存储服务器后,所述关键实例服务器将本地保存的所述插件数据包拆包为插件文件,并对所述插件文件进行加载和解析;
所述关键实例服务器在所述插件管理数据库中查询是否存在所述插件的存储记录;
若所述插件管理数据库中没有所述插件的存储记录,则所述关键实例服务器对所述插件进行装载,之后,向所述插件管理数据库中添加所述插件的存储记录,并向所述插件管理数据库中添加所述插件的新增任务记录;
若所述插件管理数据库中存在所述插件的存储记录,则所述关键实例服务器对所述插件的旧版插件进行卸载,并对所述插件进行装载,之后,向所述插件管理数据库中更新所述插件的存储记录,并向所述插件管理数据库中添加所述插件的更新任务记录;
所述多个实例服务器中除关键实例服务器以外的其它实例服务器根据所述插件管理数据库中的数据变化,执行本实例服务器的插件操作,并酌情与插件存储服务器进行数据交互,包括:
所述其它实例服务器对所述插件管理数据库进行扫描;
当发现所述插件管理数据库中所述插件的新增任务记录后,所述其它实例服务器通过所述插件管理数据库中的所述插件的存储记录获取所述插件在所述插件存储服务器中的存储地址,进而从所述插件存储服务器下载所述插件的插件数据包,并将其拆包为插件文件,并对所述插件文件进行加载、解析和装载;
当发现所述插件管理数据库中所述插件的更新任务记录后,所述其它实例服务器对所述插件的旧版插件进行卸载,之后所述其它实例服务器通过所述插件管理数据库中的所述插件的存储记录获取所述插件在所述插件存储服务器中的存储地址,进而从所述插件存储服务器下载所述插件的插件数据包,并将其拆包为插件文件,并对所述插件文件进行加载、解析和装载。
4.根据权利要求3所述的平台***的插件管理方法,其特征在于:
所述关键实例服务器将本地保存的所述插件数据包拆包为插件文件后,还包括:
所述关键实例服务器对所述插件文件的内容进行规范校验,以校验所述插件是否符合所述平台***的插件规范,当所述插件的校验结果不符合所述平台***的插件规范时,进行相应的错误提示。
5.根据权利要求2所述的平台***的插件管理方法,其特征在于,当所述插件管理数据信息为所述插件删除指令信息时:
关键实例服务器根据所接收的插件管理数据信息的内容执行本关键实例服务器的插件操作,并对插件管理数据库的数据进行更新,并根据所述插件管理数据信息的内容酌情与插件存储服务器进行数据交互,包括:
所述关键实例服务器根据所述插件删除指令信息,对其本地的所述插件执行卸载和删除操作,并向所述插件管理数据库中添加所述插件的删除任务记录,不与所述插件存储服务器进行数据交互;
所述多个实例服务器中除关键实例服务器以外的其它实例服务器根据所述插件管理数据库中的数据变化,执行本实例服务器的插件操作,并酌情与插件存储服务器进行数据交互,包括:
所述其它实例服务器对所述插件管理数据库进行扫描;
当发现所述插件管理数据库中所述插件的删除任务记录后,所述其它实例服务器对其各自本地的所述插件执行卸载和删除操作,不与所述插件存储服务器进行数据交互。
6.根据权利要求1至5任一项所述的平台***的插件管理方法,其特征在于:
所述插件管理数据库中存储有插件记录表和插件操作任务记录表;其中,
所述插件记录表中记录有安装于所述平台***的各个插件的记录,其中包括各个插件的插件标识、插件数据包名称、以及插件数据包在所述插件存储服务器中的存储地址;
所述插件操作任务记录表中记录有安装于所述平台***的各个插件的任务记录,其中包括各个插件的插件标识、插件数据包名称、以及各个插件在每个实例服务器中的操作任务执行记录。
7.一种平台***,其特征在于:
包括插件存储服务器、插件管理数据库和多个实例服务器;其中,
所述多个实例服务器中包括一个关键实例服务器;
所述关键实例服务器,用于接收插件管理数据信息,根据所接收的插件管理数据信息的内容执行本关键实例服务器的插件操作,并对所述插件管理数据库的数据进行更新,并根据所述插件管理数据信息的内容酌情与所述插件存储服务器进行数据交互;
所述插件存储服务器,用于对接收的插件数据包进行存储,以及向除关键实例服务器以外的其它实例服务器提供所存储的插件数据包;
所述插件管理数据库,用于保存插件的存储记录和任务记录;
所述多个实例服务器中除关键实例服务器以外的其它实例服务器,用于根据所述插件管理数据库中的数据变化,执行本实例服务器的插件操作,并酌情与插件存储服务器进行数据交互。
8.根据权利要求7所述的平台***,其特征在于,所述插件管理数据信息包括:插件数据包、插件删除指令信息。
9.根据权利要求7所述的平台***,其特征在于,当所述插件管理数据信息为所述插件数据包时:
所述关键实例服务器,用于将接收到的插件数据包上传给所述插件存储服务器进行保存,之后,将其本地保存的所述插件数据包拆包为插件文件,并对所述插件文件进行加载和解析,之后,在所述插件管理数据库中查询是否存在所述插件的存储记录;
若所述插件管理数据库中没有所述插件的存储记录,则所述关键实例服务器对所述插件进行装载,之后,向所述插件管理数据库中添加所述插件的存储记录,并向所述插件管理数据库中添加所述插件的新增任务记录;
若所述插件管理数据库中存在所述插件的存储记录,则所述关键实例服务器对所述插件的旧版插件进行卸载,并对所述插件进行装载,之后,向所述插件管理数据库中更新所述插件的存储记录,并向所述插件管理数据库中添加所述插件的更新任务记录;
所述多个实例服务器中除关键实例服务器以外的其它实例服务器,用于对所述插件管理数据库进行扫描;
当发现所述插件管理数据库中所述插件的新增任务记录后,所述其它实例服务器通过所述插件管理数据库中的所述插件的存储记录获取所述插件在所述插件存储服务器中的存储地址,进而从所述插件存储服务器下载所述插件的插件数据包,并将其拆包为插件文件,并对所述插件文件进行加载、解析和装载;
当发现所述插件管理数据库中所述插件的更新任务记录后,所述其它实例服务器对所述插件的旧版插件进行卸载,之后所述其它实例服务器通过所述插件管理数据库中的所述插件的存储记录获取所述插件在所述插件存储服务器中的存储地址,进而从所述插件存储服务器下载所述插件的插件数据包,并将其拆包为插件文件,并对所述插件文件进行加载、解析和装载。
10.根据权利要求9所述的平台***的插件管理方法,其特征在于:
所述关键实例服务器将本地保存的所述插件数据包拆包为插件文件后,所述关键实例服务器还用于对所述插件文件的内容进行规范校验,以校验所述插件是否符合所述平台***的插件规范,当所述插件的校验结果不符合所述平台***的插件规范时,进行相应的错误提示。
11.根据权利要求8所述的平台***的插件管理方法,其特征在于,当所述插件管理数据信息为所述插件删除指令信息时:
所述关键实例服务器,用于根据所述插件删除指令信息,对其本地的所述插件执行卸载和删除操作,并向所述插件管理数据库中添加所述插件的删除任务记录,不与所述插件存储服务器进行数据交互;
所述多个实例服务器中除关键实例服务器以外的其它实例服务器,用于对所述插件管理数据库进行扫描;
当发现所述插件管理数据库中所述插件的删除任务记录后,所述其它实例服务器对其各自本地的所述插件执行卸载和删除操作,不与所述插件存储服务器进行数据交互。
12.根据权利要求7至11任一项所述的平台***的插件管理方法,其特征在于:
所述插件管理数据库中存储有插件记录表和插件操作任务记录表;其中,
所述插件记录表中记录有安装于所述平台***的各个插件的记录,其中包括各个插件的插件标识、插件数据包名称、以及插件数据包在所述插件存储服务器中的存储地址;
所述插件操作任务记录表中记录有安装于所述平台***的各个插件的任务记录,其中包括各个插件的插件标识、插件数据包名称、以及各个插件在每个实例服务器中的操作任务执行记录。
CN201510323345.5A 2015-06-12 2015-06-12 一种平台***的插件管理方法和平台*** Active CN104932887B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510323345.5A CN104932887B (zh) 2015-06-12 2015-06-12 一种平台***的插件管理方法和平台***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510323345.5A CN104932887B (zh) 2015-06-12 2015-06-12 一种平台***的插件管理方法和平台***

Publications (2)

Publication Number Publication Date
CN104932887A CN104932887A (zh) 2015-09-23
CN104932887B true CN104932887B (zh) 2018-02-02

Family

ID=54120063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510323345.5A Active CN104932887B (zh) 2015-06-12 2015-06-12 一种平台***的插件管理方法和平台***

Country Status (1)

Country Link
CN (1) CN104932887B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095458A (zh) * 2016-06-20 2016-11-09 腾讯科技(深圳)有限公司 一种应用程序中插件的管理方法和装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170661B (zh) * 2016-12-07 2022-04-12 北京京东尚科信息技术有限公司 一种规则文本的管理方法及***
CN110704122A (zh) * 2018-07-10 2020-01-17 ***通信集团浙江有限公司 插件加载方法及装置
CN109358911A (zh) * 2018-09-29 2019-02-19 福建星网智慧软件有限公司 一种分布式***动态集成web应用的方法及***
CN109597623A (zh) * 2018-12-05 2019-04-09 上海中商网络股份有限公司 一种插件管理方法、装置、设备及存储介质
CN109710279A (zh) * 2018-12-26 2019-05-03 武汉两点十分文化传播有限公司 一种可提高插件安装效率的插件平台***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1924800A (zh) * 2005-09-02 2007-03-07 北京灵图软件技术有限公司 用于二次开发平台的基于控件的插件管理***及方法
CN101464805A (zh) * 2008-12-24 2009-06-24 中兴通讯股份有限公司 一种插件管理方法及其***
CN102253840A (zh) * 2011-08-04 2011-11-23 深圳芯智汇科技有限公司 插件管理方法及插件管理器
CN102411508A (zh) * 2011-10-27 2012-04-11 深圳市茁壮网络股份有限公司 插件管理方法、插件控制器及插件管理器和机顶盒
CN103649915A (zh) * 2013-07-31 2014-03-19 华为技术有限公司 关联插件管理方法、设备及***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407461B2 (en) * 2010-12-17 2013-03-26 Oracle International Corporation Plug-in system for software applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1924800A (zh) * 2005-09-02 2007-03-07 北京灵图软件技术有限公司 用于二次开发平台的基于控件的插件管理***及方法
CN101464805A (zh) * 2008-12-24 2009-06-24 中兴通讯股份有限公司 一种插件管理方法及其***
CN102253840A (zh) * 2011-08-04 2011-11-23 深圳芯智汇科技有限公司 插件管理方法及插件管理器
CN102411508A (zh) * 2011-10-27 2012-04-11 深圳市茁壮网络股份有限公司 插件管理方法、插件控制器及插件管理器和机顶盒
CN103649915A (zh) * 2013-07-31 2014-03-19 华为技术有限公司 关联插件管理方法、设备及***

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095458A (zh) * 2016-06-20 2016-11-09 腾讯科技(深圳)有限公司 一种应用程序中插件的管理方法和装置
CN106095458B (zh) * 2016-06-20 2018-12-11 腾讯科技(深圳)有限公司 一种应用程序中插件的管理方法和装置

Also Published As

Publication number Publication date
CN104932887A (zh) 2015-09-23

Similar Documents

Publication Publication Date Title
CN104932887B (zh) 一种平台***的插件管理方法和平台***
CN109391664B (zh) 用于多集群容器部署的***和方法
US20240048631A1 (en) Demand resources
US7313792B2 (en) Method and system for servicing software
US9348582B2 (en) Systems and methods for software dependency management
US9880824B2 (en) On demand resources
US8838762B2 (en) Virtual-machine management program and method for managing virtual machines
US9779126B2 (en) Hybrid database upgrade migration
US9542173B2 (en) Dependency handling for software extensions
CN107368513B (zh) 客户端数据库更新的方法及装置
CN108920691B (zh) 前端静态资源的管理方法、装置、计算机设备及存储介质
CN109360029B (zh) 一种远程终端广告机的自我管理方法
JPH1021061A (ja) クライアントソフトウェア自動バージョンアップシステム
WO2016082450A1 (zh) 一种用户终端的升级方法和用户终端
CN111324373A (zh) 多个工程文件上传代码仓库的方法及装置、计算设备
CN111400243B (zh) 基于流水线服务的研发管理***以及文件存储方法、装置
US9983866B1 (en) Upgrade compatibility checks in a client-server environment
CN114936030A (zh) 一种基于权限控制的软件包管理方法及***
CN112817931B (zh) 一种增量版本文件的生成方法及装置
CN115964061A (zh) 插件更新方法、装置、电子设备和计算机可读存储介质
CN112035119A (zh) 一种数据删除方法及装置
CN112650713A (zh) 文件***的运行方法、装置、设备和存储介质
US20240061667A1 (en) Incremental Image Import Process for Supporting Multiple Upstream Image Repositories
CN117093384B (zh) 通用的后端可靠执行方法、***、设备及可读介质
CN111464580B (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