一種插件倉(cāng)庫(kù)管理方法與系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種插件倉(cāng)庫(kù)管理方法與系統(tǒng),應(yīng)用本發(fā)明的插件倉(cāng)庫(kù)管理方法與系統(tǒng),可以根據(jù)預(yù)設(shè)定的規(guī)則對(duì)用戶的權(quán)限進(jìn)行鑒定,使用戶可以獲取對(duì)應(yīng)權(quán)限的插件,根據(jù)用戶意愿將目標(biāo)插件進(jìn)行自動(dòng)打包,且可以將不同服務(wù)器不同位置的插件打包到目的倉(cāng)庫(kù)位置,若未指定目標(biāo)服務(wù)器,還可以根據(jù)插件服務(wù)器資源使用情況挑選服務(wù)器,實(shí)現(xiàn)負(fù)載均衡。
【專利說(shuō)明】一種插件倉(cāng)庫(kù)管理方法與系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及插件管理領(lǐng)域,特別是涉及一種插件倉(cāng)庫(kù)管理方法與系統(tǒng)。
【背景技術(shù)】
[0002]目前集成開(kāi)發(fā)環(huán)境Eclipse插件倉(cāng)庫(kù)的創(chuàng)建有兩種方法:一是在eclipse IDE創(chuàng)建更新點(diǎn)工程,然后在工程中添加IDE已有的插件,通過(guò)執(zhí)行更新點(diǎn)創(chuàng)建操作,可以生成插件倉(cāng)庫(kù);二是在eclipse RCP應(yīng)用程序?qū)С龅臅r(shí)候選中同時(shí)導(dǎo)出倉(cāng)庫(kù)的復(fù)選項(xiàng)可以導(dǎo)出包含有該RCP程序所使用的插件的倉(cāng)庫(kù)。通過(guò)以上兩種方式導(dǎo)出的倉(cāng)庫(kù)復(fù)制到web容器的工作目錄下面就可以作為一個(gè)標(biāo)準(zhǔn)的插件更新點(diǎn)向eclipse RCP或者其他可以通過(guò)更新點(diǎn)來(lái)獲取插件供應(yīng)的應(yīng)用程序提供插件供應(yīng)服務(wù)。
[0003]但目前的兩種方式導(dǎo)出的插件倉(cāng)庫(kù)只是作為一種靜態(tài)的網(wǎng)絡(luò)資源,任何插件用戶都可以通過(guò)其URL來(lái)獲取倉(cāng)庫(kù)的所有插件,倉(cāng)庫(kù)所在的web容器或是插件的提供者無(wú)法控制插件用戶獲取倉(cāng)庫(kù)插件的權(quán)限,這會(huì)造成定制化插件或者是收費(fèi)性的插件容易被侵權(quán),不方便插件倉(cāng)庫(kù)的管理。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明的主要目的在于提供一種插件倉(cāng)庫(kù)管理方法與系統(tǒng),可以通過(guò)權(quán)限驗(yàn)證來(lái)限制用戶插件資源的使用權(quán)限。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種插件倉(cāng)庫(kù)管理方法,包括:
[0006]獲取用戶標(biāo)識(shí)和查詢條件,根據(jù)預(yù)設(shè)定的規(guī)則確定所述用戶標(biāo)識(shí)所對(duì)應(yīng)的可用插件范圍;
[0007]根據(jù)所述查詢條件在所述可用插件范圍中檢索目標(biāo)插件,并根據(jù)預(yù)設(shè)定的打包計(jì)劃將所述目標(biāo)插件打包到目標(biāo)倉(cāng)庫(kù);
[0008]生成所述目標(biāo)倉(cāng)庫(kù)的路徑并將所述路徑發(fā)送至與所述用戶標(biāo)識(shí)對(duì)應(yīng)的客戶端;
[0009]所述將所述目標(biāo)插件打包到目標(biāo)倉(cāng)庫(kù)包括:
[0010]判斷所述目標(biāo)插件是否為本地插件,如果否則鏡像所述目標(biāo)插件到本地為本地插件;
[0011]判斷所述目標(biāo)倉(cāng)庫(kù)是否有指定的服務(wù)器位置,如果否,則根據(jù)預(yù)設(shè)規(guī)則為所述目標(biāo)倉(cāng)庫(kù)指定服務(wù)器;
[0012]判斷所述目標(biāo)倉(cāng)庫(kù)所在的服務(wù)器位置是否為本機(jī),如果是,則將所述本地插件打包至指定的本地目錄下,如果否則將所述本地插件打包至指定名稱的插件倉(cāng)庫(kù)中,再將所述插件倉(cāng)庫(kù)鏡像到所述目標(biāo)倉(cāng)庫(kù)所在的服務(wù)器目錄下并清除本地的所述插件倉(cāng)庫(kù)。
[0013]優(yōu)選地,獲取用戶標(biāo)識(shí)和查詢條件,根據(jù)預(yù)設(shè)定的規(guī)則確定所述用戶標(biāo)識(shí)所對(duì)應(yīng)的可用插件范圍后還包括:
[0014]將所述用戶標(biāo)識(shí)和對(duì)應(yīng)的可用插件范圍記錄到數(shù)據(jù)庫(kù)中。
[0015]優(yōu)選地,所述插件倉(cāng)庫(kù)管理方法還包括,掃描第三方提交的插件,根據(jù)預(yù)設(shè)定的所述打包規(guī)則將所述第三方提交的插件打包到測(cè)試倉(cāng)庫(kù)。
[0016]優(yōu)選地,生成所述目標(biāo)倉(cāng)庫(kù)的路徑并發(fā)送至與所述用戶標(biāo)識(shí)對(duì)應(yīng)的客戶端后還包括:
[0017]監(jiān)聽(tīng)所述目標(biāo)倉(cāng)庫(kù)是否使用完畢,如果是則清除所述目標(biāo)倉(cāng)庫(kù)。
[0018]優(yōu)選地,根據(jù)預(yù)設(shè)定的所述打包規(guī)則將所述第三方提交的插件打包到測(cè)試倉(cāng)庫(kù)后還包括,將所述測(cè)試倉(cāng)庫(kù)信息記錄到所述數(shù)據(jù)庫(kù)中。
[0019]優(yōu)選地,所述預(yù)設(shè)定的打包計(jì)劃包括:
[0020]預(yù)設(shè)定的將所述目標(biāo)插件打包到目標(biāo)倉(cāng)庫(kù)的時(shí)間點(diǎn)、周期和倉(cāng)庫(kù)名稱生成規(guī)則。
[0021]優(yōu)選地,所述查詢條件為插件關(guān)鍵字和過(guò)濾條件。
[0022]本發(fā)明還提供了一種插件倉(cāng)庫(kù)管理系統(tǒng),包括:
[0023]獲取模塊,用于獲取用戶標(biāo)識(shí)和查詢條件;
[0024]權(quán)限驗(yàn)證模塊,用于根據(jù)預(yù)設(shè)定的規(guī)則確定所述用戶標(biāo)識(shí)所對(duì)應(yīng)的可用插件范圍;
[0025]檢索模塊,用于根據(jù)所述查詢條件在所述可用插件范圍中檢索目標(biāo)插件;
[0026]第一打包模塊,用于根據(jù)預(yù)設(shè)定的打包計(jì)劃將所述目標(biāo)插件打包到目標(biāo)倉(cāng)庫(kù);
[0027]路徑生成模塊,用于生成所述目標(biāo)倉(cāng)庫(kù)的路徑;
[0028]路徑發(fā)送模塊,用于將所述路徑發(fā)送至與所述用戶標(biāo)識(shí)對(duì)應(yīng)的客戶端;
[0029]所述第一打包模塊包括:
[0030]第一判斷模塊,用于判斷所述目標(biāo)插件是否為本地插件,如果否則鏡像所述目標(biāo)插件到本地為本地插件;
[0031]第二判斷模塊,用于判斷所述目標(biāo)倉(cāng)庫(kù)是否有指定的服務(wù)器位置,如果否,則根據(jù)預(yù)設(shè)規(guī)則為所述目標(biāo)倉(cāng)庫(kù)指定服務(wù)器;
[0032]第三判斷模塊,用于判斷所述目標(biāo)倉(cāng)庫(kù)所在的服務(wù)器位置是否為本機(jī),如果是,則將所述本地插件打包至指定的本地目錄下,如果否則將所述本地插件打包至指定名稱的插件倉(cāng)庫(kù)中,再將所述插件倉(cāng)庫(kù)鏡像到所述目標(biāo)倉(cāng)庫(kù)所在的服務(wù)器目錄下并清除本地的所述插件倉(cāng)庫(kù)。
[0033]優(yōu)選地,所述插件倉(cāng)庫(kù)管理系統(tǒng)還包括:
[0034]清除模塊,用于監(jiān)聽(tīng)所述目標(biāo)倉(cāng)庫(kù)是否使用完畢,如果是則清除所述目標(biāo)倉(cāng)庫(kù)。
[0035]優(yōu)選地,所述插件倉(cāng)庫(kù)管理系統(tǒng)還包括:
[0036]第二打包模塊,用于掃描第三方提交的插件,根據(jù)預(yù)設(shè)定的所述打包規(guī)則將所述第三方提交的插件打包到測(cè)試倉(cāng)庫(kù)。
[0037]應(yīng)用本發(fā)明提供的一種插件倉(cāng)庫(kù)管理方法與系統(tǒng),可以根據(jù)預(yù)設(shè)定的規(guī)則對(duì)用戶的權(quán)限進(jìn)行鑒定,使用戶可以獲取對(duì)應(yīng)權(quán)限的插件,根據(jù)用戶意愿將目標(biāo)插件進(jìn)行自動(dòng)打包,且可以將不同服務(wù)器不同位置的插件打包到目的倉(cāng)庫(kù)位置,若未指定目標(biāo)服務(wù)器,還可以根據(jù)插件服務(wù)器資源使用情況挑選服務(wù)器,實(shí)現(xiàn)負(fù)載均衡。
【專利附圖】
【附圖說(shuō)明】
[0038]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0039]圖1為本發(fā)明一種插件倉(cāng)庫(kù)管理方法的流程圖;
[0040]圖2為本發(fā)明一種插件倉(cāng)庫(kù)管理方法的詳細(xì)流程圖;
[0041]圖3為本發(fā)明一種插件倉(cāng)庫(kù)管理方法的具體實(shí)施例流程圖;
[0042]圖4為本發(fā)明一種插件倉(cāng)庫(kù)管理方法的又一具體實(shí)施例流程圖;
[0043]圖5為本發(fā)明一種插件倉(cāng)庫(kù)管理系統(tǒng)的結(jié)構(gòu)示意圖;
[0044]圖6為本發(fā)明一種插件倉(cāng)庫(kù)管理系統(tǒng)的詳細(xì)結(jié)構(gòu)示意圖;
[0045]圖7為本發(fā)明一種插件倉(cāng)庫(kù)管理系統(tǒng)的實(shí)施例整體架構(gòu)圖;
[0046]圖8為本發(fā)明一種插件倉(cāng)庫(kù)管理系統(tǒng)的實(shí)施例系統(tǒng)數(shù)據(jù)關(guān)系映射圖。
【具體實(shí)施方式】
[0047]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0048]本發(fā)明提供一種插件倉(cāng)庫(kù)管理方法,如圖1所示,為本發(fā)明插件倉(cāng)庫(kù)管理方法實(shí)施例的流程圖,包括:
[0049]步驟SlOl:獲取用戶標(biāo)識(shí)和查詢條件,根據(jù)預(yù)設(shè)定的規(guī)則確定所述用戶標(biāo)識(shí)所對(duì)應(yīng)的可用插件范圍;
[0050]用戶提交關(guān)于需要獲取的插件的查詢條件和自身的用戶標(biāo)識(shí),查詢條件如關(guān)鍵字和過(guò)濾條件,用戶標(biāo)識(shí)如可以被識(shí)別的證書(shū)序列號(hào),系統(tǒng)獲取了用戶標(biāo)識(shí)和查詢條件后根據(jù)證書(shū)序列號(hào)確定該用戶可使用的插件范圍。
[0051]步驟S102:根據(jù)所述查詢條件在所述可用插件范圍中檢索目標(biāo)插件,并根據(jù)預(yù)設(shè)定的打包計(jì)劃將所述目標(biāo)插件打包到目標(biāo)倉(cāng)庫(kù);
[0052]預(yù)設(shè)定的打包計(jì)劃可包括自動(dòng)打包的時(shí)間點(diǎn)、周期、倉(cāng)庫(kù)名稱生成規(guī)則,該規(guī)則可由系統(tǒng)管理員制定。
[0053]步驟S103:生成所述目標(biāo)倉(cāng)庫(kù)的路徑并將所述路徑發(fā)送至與所述用戶標(biāo)識(shí)對(duì)應(yīng)的客戶端;
[0054]將用戶需要的目標(biāo)插件打包到倉(cāng)庫(kù)后生成該倉(cāng)庫(kù)對(duì)應(yīng)的路徑URL,用戶可通過(guò)該路徑訪問(wèn)倉(cāng)庫(kù)獲取需要的插件。
[0055]如圖2所示,所述將所述目標(biāo)插件打包到目標(biāo)倉(cāng)庫(kù)具體包括:
[0056]步驟S201:判斷所述目標(biāo)插件是否為本地插件,如果否則進(jìn)入步驟S202 ;
[0057]步驟S202:鏡像所述目標(biāo)插件到本地為本地插件;
[0058]步驟S203:判斷所述目標(biāo)倉(cāng)庫(kù)是否有指定的服務(wù)器位置,如果否則進(jìn)入步驟S204 ;
[0059]步驟S204:根據(jù)預(yù)設(shè)規(guī)則為所述目標(biāo)倉(cāng)庫(kù)指定服務(wù)器;
[0060]步驟S205:判斷所述目標(biāo)倉(cāng)庫(kù)所在的服務(wù)器位置是否為本機(jī),如果是則進(jìn)入步驟S206,如果否則進(jìn)入步驟S207 ;
[0061]步驟S206:將所述本地插件打包至指定的本地目錄下;
[0062]步驟S207:將所述本地插件打包至指定名稱的插件倉(cāng)庫(kù)中,再將所述插件倉(cāng)庫(kù)鏡像到所述目標(biāo)倉(cāng)庫(kù)所在的服務(wù)器目錄下并清除本地的所述插件倉(cāng)庫(kù)。
[0063]應(yīng)用本實(shí)施例提供的一種插件倉(cāng)庫(kù)管理方法,可以根據(jù)預(yù)設(shè)定的規(guī)則對(duì)用戶的權(quán)限進(jìn)行鑒定,使用戶可以獲取對(duì)應(yīng)權(quán)限的插件,根據(jù)用戶意愿將目標(biāo)插件進(jìn)行自動(dòng)打包,且可以將不同服務(wù)器不同位置的插件打包到目的倉(cāng)庫(kù)位置,若未指定目標(biāo)服務(wù)器,還可以根據(jù)插件服務(wù)器資源使用情況挑選服務(wù)器,實(shí)現(xiàn)負(fù)載均衡。
[0064]上述實(shí)施例的打包步驟可以將不同位置下的插件打包到不同服務(wù)器的分布式倉(cāng)庫(kù)中,不同位置指其他網(wǎng)站的更新點(diǎn)的插件,本地計(jì)算機(jī)上位于多個(gè)不同目錄下的插件(包括插件工程的源碼),分布式倉(cāng)庫(kù)是指有一個(gè)主服務(wù)器web容器中運(yùn)行主管理系統(tǒng),其他多個(gè)服務(wù)器web容器中運(yùn)行者副管理系統(tǒng),該副管理系統(tǒng)受主管理系統(tǒng)的控制,這些服務(wù)器上的所有的插件倉(cāng)庫(kù)集合就構(gòu)成了一個(gè)完整的分布式倉(cāng)庫(kù)。
[0065]管理員可以指定打包計(jì)劃自動(dòng)打包,制訂自動(dòng)打包計(jì)劃,通過(guò)網(wǎng)頁(yè)來(lái)設(shè)置自動(dòng)打包的時(shí)間點(diǎn)、周期、倉(cāng)庫(kù)名字生成規(guī)則等計(jì)劃內(nèi)容,提交后會(huì)保存到服務(wù)器的事務(wù)計(jì)劃的配置文件中,該配置文件為一個(gè)格式良好且有效的XML文件,系統(tǒng)會(huì)周期性掃描所述計(jì)劃配置文件,并按照計(jì)劃執(zhí)行打包任務(wù)。管理員也可以手動(dòng)進(jìn)行插件打包,管理員登錄進(jìn)入管理web頁(yè)面后,添加需要打包插件位置的URL或者絕對(duì)路徑,目標(biāo)倉(cāng)庫(kù)的名字位置(可以是本地或是其他插件服務(wù)器)。系統(tǒng)檢測(cè)插件位置,如果是其他更新站點(diǎn)的插件,則系統(tǒng)先鏡像遠(yuǎn)程更新站點(diǎn)的目標(biāo)插件到本地;如果是本地插件源,則不做處理。
[0066]遠(yuǎn)程更新站點(diǎn)插件鏡像到本地后被當(dāng)做本地的插件源,然后檢測(cè)目標(biāo)倉(cāng)庫(kù)的位置。如果是本機(jī),則在本地的web容器工作目錄創(chuàng)建一個(gè)所述目標(biāo)倉(cāng)庫(kù)名字的文件夾,然后把所述插件源的插件打包到該目錄下。如果是在其他服務(wù)器上,則把先在本地打包好指定名字的插件倉(cāng)庫(kù),然后把該倉(cāng)庫(kù)鏡像到目標(biāo)服務(wù)器的web容器的工作目錄中,最后清除本地打包的倉(cāng)庫(kù)。
[0067]當(dāng)管理員未指定目標(biāo)服務(wù)器時(shí),系統(tǒng)自動(dòng)分析各插件服務(wù)器的資源如磁盤容量、內(nèi)存容量、CPU處理能力等的使用情況以及用戶訪問(wèn)量來(lái)選擇最適合的服務(wù)器,盡可能讓用戶訪問(wèn)量根據(jù)各服務(wù)器的資源剩余量和處理能力均勻分布到各個(gè)服務(wù)器中,實(shí)現(xiàn)分布式插件倉(cāng)庫(kù)服務(wù)器的負(fù)載均衡。
[0068]本發(fā)明的又一具體實(shí)施例,可通過(guò)對(duì)用戶端進(jìn)行插件ID授權(quán)實(shí)現(xiàn)管理。系統(tǒng)維護(hù)一個(gè)插件總庫(kù),該插件總庫(kù)并不是一個(gè)標(biāo)準(zhǔn)的插件倉(cāng)庫(kù),它沒(méi)有插件的描述文件,只有二進(jìn)制的元數(shù)據(jù)jar包。系統(tǒng)數(shù)據(jù)庫(kù)中記錄了插件總庫(kù)中的所有插件的信息,包括一個(gè)全局唯一的 ID 主鍵、插件內(nèi)部的 ID(Bundle-SymbolicName)、版本(Bundle-Vers1n)、開(kāi)發(fā)者、功能描述等插件的一些基本信息,其中ID和版本的組合和插件ID是一對(duì)一的映射關(guān)系。
[0069]同時(shí)系統(tǒng)還對(duì)每個(gè)現(xiàn)存的插件倉(cāng)庫(kù)的基本信息也錄入了數(shù)據(jù)庫(kù)中。插件倉(cāng)庫(kù)和插件總庫(kù)中的插件是多對(duì)多的數(shù)據(jù)映射關(guān)系。
[0070]每個(gè)用戶端在首次使用時(shí)都要求輸入軟件開(kāi)發(fā)商授予該軟件的證書(shū)文件;
[0071]當(dāng)用戶首次需要向本系統(tǒng)獲取插件時(shí),系統(tǒng)要求其必須提交其證書(shū)序列號(hào)以及用戶的相關(guān)信息(軟件開(kāi)發(fā)商、用戶姓名、郵箱、聯(lián)系方式等基本信息)。
[0072]系統(tǒng)會(huì)把用戶端提交的證書(shū)序列號(hào)通過(guò)其軟件開(kāi)發(fā)商指定的證書(shū)認(rèn)證服務(wù)接口來(lái)獲取該用戶端可使用插件的范圍,并把插件范圍信息和所述用戶提交的所有信息一同錄入數(shù)據(jù)庫(kù)中。
[0073]系統(tǒng)根據(jù)用戶端的插件使用范圍從插件信息數(shù)據(jù)庫(kù)中檢索出其所需的插件集合,并從插件總庫(kù)中把這些插件的元數(shù)據(jù)打包到I個(gè)或多個(gè)插件倉(cāng)庫(kù),并在插件倉(cāng)庫(kù)信息數(shù)據(jù)庫(kù)中添加相應(yīng)的記錄,然后系統(tǒng)會(huì)把這些倉(cāng)庫(kù)的完整的URL返回給用戶端,最后用戶端會(huì)通過(guò)這些URL直接去插件倉(cāng)庫(kù)獲取插件。
[0074]用戶每次訪問(wèn)數(shù)據(jù)庫(kù)所進(jìn)行的操作都被記錄在數(shù)據(jù)庫(kù)中。系統(tǒng)管理員可以從日志數(shù)據(jù)庫(kù)中看到所有用戶每一次訪問(wèn)插件倉(cāng)庫(kù)所進(jìn)行的操作記錄。
[0075]如圖3所示,為客戶端獲取插件的【具體實(shí)施方式】流程圖,圖4為一具體實(shí)施例用戶進(jìn)行插件高級(jí)查詢的流程圖。
[0076]本發(fā)明的另一實(shí)施例,還可掃描第三方提交的插件,根據(jù)預(yù)設(shè)定的所述打包規(guī)則將所述第三方提交的插件打包到測(cè)試倉(cāng)庫(kù),另外提供了一種插件倉(cāng)庫(kù)的垃圾回收機(jī)制,監(jiān)聽(tīng)用戶查詢創(chuàng)建的臨時(shí)插件倉(cāng)庫(kù)是否使用完畢,如果用戶端已經(jīng)使用完該倉(cāng)庫(kù),系統(tǒng)會(huì)及時(shí)清理該倉(cāng)庫(kù);監(jiān)聽(tīng)被鏡像到子服務(wù)器上的倉(cāng)庫(kù)是否完成操作,如果鏡像成功,則會(huì)清除掉主服務(wù)器上的該倉(cāng)庫(kù);如果一個(gè)倉(cāng)庫(kù)創(chuàng)建時(shí)間比較久,且其中的插件版本比較老并且有新的版本產(chǎn)生,或者已經(jīng)長(zhǎng)久不再使用,系統(tǒng)會(huì)清除掉該類倉(cāng)庫(kù)。
[0077]本發(fā)明還提供了一種插件倉(cāng)庫(kù)管理系統(tǒng),如圖5和圖6所示,為本發(fā)明插件倉(cāng)庫(kù)管理系統(tǒng)的實(shí)施例結(jié)構(gòu)示意圖,包括:
[0078]獲取模塊101,用于獲取用戶標(biāo)識(shí)和查詢條件;
[0079]權(quán)限驗(yàn)證模塊102,用于根據(jù)預(yù)設(shè)定的規(guī)則確定所述用戶標(biāo)識(shí)所對(duì)應(yīng)的可用插件范圍;
[0080]檢索模塊103,用于根據(jù)所述查詢條件在所述可用插件范圍中檢索目標(biāo)插件;
[0081]第一打包模塊104,用于根據(jù)預(yù)設(shè)定的打包計(jì)劃將所述目標(biāo)插件打包到目標(biāo)倉(cāng)庫(kù);
[0082]路徑生成模塊105,用于生成所述目標(biāo)倉(cāng)庫(kù)的路徑;
[0083]路徑發(fā)送模塊106,用于將所述路徑發(fā)送至與所述用戶標(biāo)識(shí)對(duì)應(yīng)的客戶端;
[0084]所述第一打包模104塊具體包括:
[0085]第一判斷模塊201,用于判斷所述目標(biāo)插件是否為本地插件,如果否則鏡像所述目標(biāo)插件到本地為本地插件;
[0086]第二判斷模塊202,用于判斷所述目標(biāo)倉(cāng)庫(kù)是否有指定的服務(wù)器位置,如果否,則根據(jù)預(yù)設(shè)規(guī)則為所述目標(biāo)倉(cāng)庫(kù)指定服務(wù)器;
[0087]第三判斷模塊203,用于判斷所述目標(biāo)倉(cāng)庫(kù)所在的服務(wù)器位置是否為本機(jī),如果是,則將所述本地插件打包至指定的本地目錄下,如果否則將所述本地插件打包至指定名稱的插件倉(cāng)庫(kù)中,再將所述插件倉(cāng)庫(kù)鏡像到所述目標(biāo)倉(cāng)庫(kù)所在的服務(wù)器目錄下并清除本地的所述插件倉(cāng)庫(kù)。
[0088]本發(fā)明系統(tǒng)的另一實(shí)施例對(duì)應(yīng)于上述實(shí)施例還包括:
[0089]清除模塊,用于監(jiān)聽(tīng)所述目標(biāo)倉(cāng)庫(kù)是否使用完畢,如果是則清除所述目標(biāo)倉(cāng)庫(kù)。
[0090]第二打包模塊,用于掃描第三方提交的插件,根據(jù)預(yù)設(shè)定的所述打包規(guī)則將所述第三方提交的插件打包到測(cè)試倉(cāng)庫(kù)。
[0091]提供了插件倉(cāng)庫(kù)垃圾回收機(jī)制和對(duì)第三方插件的收錄功能。
[0092]本實(shí)施例系統(tǒng)的【具體實(shí)施方式】可基于B/S架構(gòu),如圖7所示,系統(tǒng)用戶劃分為4類角色:管理員、內(nèi)部插件開(kāi)發(fā)人員、第三方插件開(kāi)發(fā)人員、插件消費(fèi)者。每種角色擁有不同的操作權(quán)限。
[0093]管理員:手動(dòng)執(zhí)行倉(cāng)庫(kù)打包的操作、制訂無(wú)人值守的自動(dòng)打包計(jì)劃、查看所有倉(cāng)庫(kù)中插件的詳細(xì)信息并可以進(jìn)行增刪改查的操作,修改開(kāi)發(fā)人員和消費(fèi)者的權(quán)限,添加內(nèi)部開(kāi)發(fā)人員賬戶的權(quán)限,注銷開(kāi)發(fā)人員和消費(fèi)者賬戶的權(quán)限。
[0094]內(nèi)部插件開(kāi)發(fā)人員:向系統(tǒng)提交插件的權(quán)限。
[0095]第三方開(kāi)發(fā)人員:注冊(cè)賬戶,向系統(tǒng)提交插件的權(quán)限。
[0096]插件消費(fèi)者:消費(fèi)者應(yīng)用程序訪問(wèn)主站點(diǎn)查詢、獲取或更新插件的權(quán)限。
[0097]如圖8所示為本實(shí)施例的系統(tǒng)數(shù)據(jù)關(guān)系映射圖。
[0098]本發(fā)明的方法與系統(tǒng)可以使用Equinox p2 (provis1ning platform)技術(shù),對(duì)位于不同計(jì)算機(jī)上不同位置的eclipse插件或者是未編譯的源代碼進(jìn)行打包到同一個(gè)倉(cāng)庫(kù),并對(duì)打包好的倉(cāng)庫(kù)進(jìn)行分布式存儲(chǔ)、發(fā)布,對(duì)每一個(gè)插件進(jìn)行編號(hào),設(shè)置一個(gè)全局唯一的編碼并進(jìn)行對(duì)插件的內(nèi)部的ID和版本進(jìn)行一對(duì)一映射,把該映射及插件的一些附加信息(功能描述、分類、開(kāi)發(fā)者、插件提交日期等)一同錄入數(shù)據(jù)庫(kù)中,并建立好插件與更新點(diǎn)倉(cāng)庫(kù)信息表的關(guān)聯(lián)關(guān)系,支持第三方插件開(kāi)發(fā)者提交插件到系統(tǒng);對(duì)插件消費(fèi)用戶通過(guò)對(duì)其授權(quán)文件添加授權(quán)插件的ID進(jìn)行插件的使用的權(quán)限限制;支持倉(cāng)庫(kù)管理人員管理所有服務(wù)器上的插件及倉(cāng)庫(kù);支持用戶對(duì)插件的高級(jí)查詢,并動(dòng)態(tài)生成用戶意愿插件集合的倉(cāng)庫(kù);支持臨時(shí)倉(cāng)庫(kù)及長(zhǎng)久不用插件及倉(cāng)庫(kù)的回收;支持手動(dòng)和無(wú)人值守的周期性自動(dòng)化倉(cāng)庫(kù)打包模式;支持分布式插件倉(cāng)庫(kù)服務(wù)器的負(fù)載均衡。
[0099]最后,還需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0100]以上對(duì)本發(fā)明所提供的方法與系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種插件倉(cāng)庫(kù)管理方法,其特征在于,包括: 獲取用戶標(biāo)識(shí)和查詢條件,根據(jù)預(yù)設(shè)定的規(guī)則確定所述用戶標(biāo)識(shí)所對(duì)應(yīng)的可用插件范圍; 根據(jù)所述查詢條件在所述可用插件范圍中檢索目標(biāo)插件,并根據(jù)預(yù)設(shè)定的打包計(jì)劃將所述目標(biāo)插件打包到目標(biāo)倉(cāng)庫(kù); 生成所述目標(biāo)倉(cāng)庫(kù)的路徑并將所述路徑發(fā)送至與所述用戶標(biāo)識(shí)對(duì)應(yīng)的客戶端; 所述將所述目標(biāo)插件打包到目標(biāo)倉(cāng)庫(kù)包括: 判斷所述目標(biāo)插件是否為本地插件,如果否則鏡像所述目標(biāo)插件到本地為本地插件;判斷所述目標(biāo)倉(cāng)庫(kù)是否有指定的服務(wù)器位置,如果否,則根據(jù)預(yù)設(shè)規(guī)則為所述目標(biāo)倉(cāng)庫(kù)指定服務(wù)器; 判斷所述目標(biāo)倉(cāng)庫(kù)所在的服務(wù)器位置是否為本機(jī),如果是,則將所述本地插件打包至指定的本地目錄下,如果否則將所述本地插件打包至指定名稱的插件倉(cāng)庫(kù)中,再將所述插件倉(cāng)庫(kù)鏡像到所述目標(biāo)倉(cāng)庫(kù)所在的服務(wù)器目錄下并清除本地的所述插件倉(cāng)庫(kù)。
2.根據(jù)權(quán)利要求1所述的插件倉(cāng)庫(kù)管理方法,其特征在于,獲取用戶標(biāo)識(shí)和查詢條件,根據(jù)預(yù)設(shè)定的規(guī)則確定所述用戶標(biāo)識(shí)所對(duì)應(yīng)的可用插件范圍后還包括: 將所述用戶標(biāo)識(shí)和對(duì)應(yīng)的可用插件范圍記錄到數(shù)據(jù)庫(kù)中。
3.根據(jù)權(quán)利要求2所述的插件倉(cāng)庫(kù)管理方法,其特征在于,還包括,掃描第三方提交的插件,根據(jù)預(yù)設(shè)定的所述打包規(guī)則將所述第三方提交的插件打包到測(cè)試倉(cāng)庫(kù)。
4.根據(jù)權(quán)利要求3所述的插件倉(cāng)庫(kù)管理方法,其特征在于,生成所述目標(biāo)倉(cāng)庫(kù)的路徑并發(fā)送至與所述用戶標(biāo)識(shí)對(duì)應(yīng)的客戶端后還包括: 監(jiān)聽(tīng)所述目標(biāo)倉(cāng)庫(kù)是否使用完畢,如果是則清除所述目標(biāo)倉(cāng)庫(kù)。
5.根據(jù)權(quán)利要求4所述的插件倉(cāng)庫(kù)管理方法,其特征在于,根據(jù)預(yù)設(shè)定的所述打包規(guī)則將所述第三方提交的插件打包到測(cè)試倉(cāng)庫(kù)后還包括,將所述測(cè)試倉(cāng)庫(kù)信息記錄到所述數(shù)據(jù)庫(kù)中。
6.根據(jù)權(quán)利要求5所述的插件倉(cāng)庫(kù)管理方法,其特征在于,所述預(yù)設(shè)定的打包計(jì)劃包括: 預(yù)設(shè)定的將所述目標(biāo)插件打包到目標(biāo)倉(cāng)庫(kù)的時(shí)間點(diǎn)、周期和倉(cāng)庫(kù)名稱生成規(guī)則。
7.根據(jù)權(quán)利要求6所述的插件倉(cāng)庫(kù)管理方法,其特征在于,所述查詢條件為插件關(guān)鍵字和過(guò)濾條件。
8.一種插件倉(cāng)庫(kù)管理系統(tǒng),其特征在于,包括: 獲取模塊,用于獲取用戶標(biāo)識(shí)和查詢條件; 權(quán)限驗(yàn)證模塊,用于根據(jù)預(yù)設(shè)定的規(guī)則確定所述用戶標(biāo)識(shí)所對(duì)應(yīng)的可用插件范圍; 檢索模塊,用于根據(jù)所述查詢條件在所述可用插件范圍中檢索目標(biāo)插件; 第一打包模塊,用于根據(jù)預(yù)設(shè)定的打包計(jì)劃將所述目標(biāo)插件打包到目標(biāo)倉(cāng)庫(kù); 路徑生成模塊,用于生成所述目標(biāo)倉(cāng)庫(kù)的路徑; 路徑發(fā)送模塊,用于將所述路徑發(fā)送至與所述用戶標(biāo)識(shí)對(duì)應(yīng)的客戶端; 所述第一打包模塊包括: 第一判斷模塊,用于判斷所述目標(biāo)插件是否為本地插件,如果否則鏡像所述目標(biāo)插件到本地為本地插件; 第二判斷模塊,用于判斷所述目標(biāo)倉(cāng)庫(kù)是否有指定的服務(wù)器位置,如果否,則根據(jù)預(yù)設(shè)規(guī)則為所述目標(biāo)倉(cāng)庫(kù)指定服務(wù)器; 第三判斷模塊,用于判斷所述目標(biāo)倉(cāng)庫(kù)所在的服務(wù)器位置是否為本機(jī),如果是,則將所述本地插件打包至指定的本地目錄下,如果否則將所述本地插件打包至指定名稱的插件倉(cāng)庫(kù)中,再將所述插件倉(cāng)庫(kù)鏡像到所述目標(biāo)倉(cāng)庫(kù)所在的服務(wù)器目錄下并清除本地的所述插件倉(cāng)庫(kù)。
9.根據(jù)權(quán)利8所述的插件倉(cāng)庫(kù)管理系統(tǒng),其特征在于,還包括: 清除模塊,用于監(jiān)聽(tīng)所述目標(biāo)倉(cāng)庫(kù)是否使用完畢,如果是則清除所述目標(biāo)倉(cāng)庫(kù)。
10.根據(jù)權(quán)利要求9所述的插件倉(cāng)庫(kù)管理系統(tǒng),其特征在于,還包括: 第二打包模塊,用于掃描第三方提交的插件,根據(jù)預(yù)設(shè)定的所述打包規(guī)則將所述第三方提交的插件打包到測(cè)試倉(cāng)庫(kù)。
【文檔編號(hào)】H04L29/08GK104506628SQ201410826524
【公開(kāi)日】2015年4月8日 申請(qǐng)日期:2014年12月25日 優(yōu)先權(quán)日:2014年12月25日
【發(fā)明者】唐健, 陳毅林, 尼四凱 申請(qǐng)人:深圳市科漫達(dá)智能管理科技有限公司