一種平臺系統的插件管理方法和平臺系統的制作方法
【技術領域】
[0001]本發明涉及計算機、互聯網領域,特別涉及一種計算機、互聯網中的應用系統的平臺系統的插件管理方法和平臺系統。
【背景技術】
[0002]目前,隨著計算機和網絡的蓬勃發展,應用系統的功能不斷擴大,應用系統的代碼量也在不斷增加,隨之而來的是系統的可維護性不斷降低。因此,開發人員在對系統進行功能增加、修改等操作時,如果不對系統的代碼足夠了解,很難快速的完成對系統功能的修改。
[0003]為了解決這一問題,目前的主流是搭建平臺系統,以提供基礎的底層服務。在此基礎上,在功能擴充方面引入插件機制,進而開發人員對系統進行功能擴充時,就不必對平臺系統進行修改,而是按照插件規范開發插件,上傳到平臺系統即可以完成對系統功能的擴充。
[0004]圖1所示為現有的平臺系統提供的插件管理方式。
[0005]參見圖1所示,現有的平臺系統的插件安裝具體過程是,開發人員將插件包上傳到平臺系統,平臺系統將插件包存儲在平臺系統的本地服務器硬盤中,之后,平臺系統拆包插件包、加載解析插件文件、校驗插件、裝載插件,并將插件的注冊信息(如插件包名稱、插件標識以及插件包存放地址等)存入數據庫中,之后平臺系統即可對外提供插件的功能。
[0006]參見圖1所示,現有的平臺系統的插件更新具體過程是,開發人員將新的插件包上傳到平臺系統,平臺系統將新的插件包存儲在平臺系統的本地服務器硬盤中,之后,平臺系統拆包插件包、加載解析插件文件、校驗插件,之后平臺系統在數據庫中查詢插件的注冊信息,如果沒有注冊信息,則新增該系的插件包的注冊信息,如果有注冊信息,則對注冊信息進行更新,之后卸載原有插件并裝載新的插件,隨后平臺系統即可對外提供新的插件的功能。
[0007]參見圖1所示,現有的平臺系統的插件更新具體過程是,開發人員將新的插件包上傳到平臺系統,平臺系統將新的插件包存儲在平臺系統的本地服務器硬盤中,之后,平臺系統拆包插件包、加載解析插件文件、校驗插件,之后平臺系統在數據庫中查詢插件的注冊信息,如果沒有注冊信息,則新增該系的插件包的注冊信息,如果有注冊信息,則對注冊信息進行更新,之后卸載原有插件并裝載新的插件,隨后平臺系統即可對外提供新的插件的功能。
[0008]參見圖1所示,現有的平臺系統的插件刪除過程是,開發人員將向平臺系統發出刪除插件指令,平臺系統向數據庫查詢所要刪除的插件的注冊信息,如果有,則刪除插件的注冊信息,之后平臺系統實例卸載插件,如果沒有注冊信息,則表明平臺系統中沒有所要刪除的插件。
[0009]隨著平臺系統功能的不斷增加,集群服務器的使用越來越多。而對于集群服務器的平臺系統來說,現有技術方案每次增加、修改、刪除都需要針對于集群中的每臺服務器上的系統實例進行單獨操作。這樣,既費時、又費力。并且,極易漏掉對個別服務器的實例的相關插件操作,進而導致,沒有及時進行插件操作的服務器中的實例不能執行插件的功能,同時,開發人員在尋找這種問題時,也很費時、費力。
【發明內容】
[0010]有鑒于此,本發明提供一種平臺系統的插件管理方法和平臺系統,以實現平臺系統對插件的統一管理,降低人工管理成本,并消除人工管理時易于發生的錯誤。
[0011]本發明的技術方案是這樣實現的:
[0012]一種平臺系統的插件管理方法,所述平臺系統具有多個實例服務器,所述方法包括:
[0013]將插件管理數據信息發送給所述多個實例服務器中的關鍵實例服務器;
[0014]關鍵實例服務器根據所接收的插件管理數據信息的內容執行本關鍵實例服務器的插件操作,并對插件管理數據庫的數據進行更新,并根據所述插件管理數據信息的內容酌情與插件存儲服務器進行數據交互;
[0015]所述多個實例服務器中除關鍵實例服務器以外的其它實例服務器根據所述插件管理數據庫中的數據變化,執行本實例服務器的插件操作,并酌情與插件存儲服務器進行數據交互。
[0016]進一步,所述插件管理數據信息包括:插件數據包、插件刪除指令信息。
[0017]進一步,當所述插件管理數據信息為所述插件數據包時:
[0018]關鍵實例服務器根據所接收的插件管理數據信息的內容執行本關鍵實例服務器的插件操作,并對插件管理數據庫的數據進行更新,并根據所述插件管理數據信息的內容酌情與插件存儲服務器進行數據交互,包括:
[0019]所述關鍵實例服務器將接收到的插件數據包上傳給所述插件存儲服務器進行保存;
[0020]上傳給所述插件存儲服務器后,所述關鍵實例服務器將本地保存的所述插件數據包拆包為插件文件,并對所述插件文件進行加載和解析;
[0021]所述關鍵實例服務器在所述插件管理數據庫中查詢是否存在所述插件的存儲記錄;
[0022]若所述插件管理數據庫中沒有所述插件的存儲記錄,則所述關鍵實例服務器對所述插件進行裝載,之后,向所述插件管理數據庫中添加所述插件的存儲記錄,并向所述插件管理數據庫中添加所述插件的新增任務記錄;
[0023]若所述插件管理數據庫中存在所述插件的存儲記錄,則所述關鍵實例服務器對所述插件的舊版插件進行卸載,并對所述插件進行裝載,之后,向所述插件管理數據庫中更新所述插件的存儲記錄,并向所述插件管理數據庫中添加所述插件的更新任務記錄;
[0024]所述多個實例服務器中除關鍵實例服務器以外的其它實例服務器根據所述插件管理數據庫中的數據變化,執行本實例服務器的插件操作,并酌情與插件存儲服務器進行數據交互,包括:
[0025]所述其它實例服務器對所述插件管理數據庫進行掃描;
[0026]當發現所述插件管理數據庫中所述插件的新增任務記錄后,所述其它實例服務器通過所述插件管理數據庫中的所述插件的存儲記錄獲取所述插件在所述插件存儲服務器中的存儲地址,進而從所述插件存儲服務器下載所述插件的插件數據包,并將其拆包為插件文件,并對所述插件文件進行加載、解析和裝載;
[0027]當發現所述插件管理數據庫中所述插件的更新任務記錄后,所述其它實例服務器對所述插件的舊版插件進行卸載,之后所述其它實例服務器通過所述插件管理數據庫中的所述插件的存儲記錄獲取所述插件在所述插件存儲服務器中的存儲地址,進而從所述插件存儲服務器下載所述插件的插件數據包,并將其拆包為插件文件,并對所述插件文件進行加載、解析和裝載。
[0028]進一步,所述關鍵實例服務器將本地保存的所述插件數據包拆包為插件文件后,還包括:
[0029]所述關鍵實例服務器對所述插件文件的內容進行規范校驗,以校驗所述插件是否符合所述平臺系統的插件規范,當所述插件的校驗結果不符合所述平臺系統的插件規范時,進行相應的錯誤提示。
[0030]進一步,當所述插件管理數據信息為所述插件刪除指令信息時:
[0031]關鍵實例服務器根據所接收的插件管理數據信息的內容執行本關鍵實例服務器的插件操作,并對插件管理數據庫的數據進行更新,并根據所述插件管理數據信息的內容酌情與插件存儲服務器進行數據交互,包括:
[0032]所述關鍵實例服務器根據所述插件刪除指令信息,對其本地的所述插件執行卸載和刪除操作,并向所述插件管理數據庫中添加所述插件的刪除任務記錄,不與所述插件存儲服務器進行數據交互;
[0033]所述多個實例服務器中除關鍵實例服務器以外的其它實例服務器根據所述插件管理數據庫中的數據變化,執行本實例服務器的插件操作,并酌情與插件存儲服務器進行數據交互,包括:
[0034]所述其它實例服務器對所述插件管理數據庫進行掃描;
[0035]當發現所述插件管理數據庫中所述插件的刪除任務記錄后,所述其它實例服務器對其各自本地的所述插件執行卸載和刪除操作,不與所述插件存儲服務器進行數據交互。
[0036]進一步,所述插件管理數據庫中存儲有插件記錄表和插件操作任務記錄表;其中,
[0037]所述插件記錄表中記錄有安裝于所述平臺系統的各個插件的記錄,其中包括各個插件的插件標識、插件包名稱、以及插件包在所述插件存儲服務器中的存儲地址;
[0038]所述插件