一種支持多傳輸協(xié)議的組件發(fā)布容器方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于IT信息行業(yè)中遠(yuǎn)程服務(wù)調(diào)用技術(shù)領(lǐng)域,尤其是一種支持多傳輸協(xié)議的組件發(fā)布容器方法。
【背景技術(shù)】
[0002]隨著IT信息行業(yè)中遠(yuǎn)程服務(wù)調(diào)用技術(shù)的迅猛發(fā)展,遠(yuǎn)程調(diào)用服務(wù)有了較大的變化,大大方便了開發(fā)人員及系統(tǒng)運(yùn)行維護(hù)人員的操作,使開發(fā)人員只關(guān)注自己范圍內(nèi)的工作,做到一處開發(fā),到處可用,使系統(tǒng)運(yùn)行維護(hù)人員也能大大簡化操作流程?;谝陨媳尘?,如何將一個普通的組件(即組件程序包中不包含發(fā)布的任何協(xié)議信息,由用戶在發(fā)布時自由定義協(xié)議)由用戶選擇協(xié)議發(fā)布,尚沒有完美的解決方案,本發(fā)明就是為了解決一個組件支持動態(tài)發(fā)不成多個請求訪問協(xié)議的問題而產(chǎn)生。
[0003]通過對國內(nèi)公開專利及其它文獻(xiàn)的檢索,沒有發(fā)現(xiàn)與本發(fā)明方法相近似的公開專利及文獻(xiàn)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種支持多傳輸協(xié)議的組件發(fā)布容器方法。
[0005]本發(fā)明解決其技術(shù)問題是采取以下技術(shù)方案實(shí)現(xiàn)的:
[0006]—種支持多傳輸協(xié)議的組件發(fā)布容器方法,包括步驟如下:
[0007](1)上傳包含簡單組件包及協(xié)議配置文件的壓縮包;其中包括:
[0008]①服務(wù)運(yùn)行維護(hù)人員登陸組件發(fā)布容器管理平臺;
[0009]②將開發(fā)人員開發(fā)的包含簡單組件包及配備的各種協(xié)議配置文件的壓縮包上傳到組件發(fā)布容器所在的服務(wù)器端,并且在上傳的壓縮包內(nèi)包含一個存放有第三方依賴的lib文件夾;
[0010](2)校驗(yàn)簡單組件包及協(xié)議配置文件的有效性;
[0011](3)在容器端的組件目錄及協(xié)議配置目錄中分別存儲;
[0012]①在容器端的組件目錄component中創(chuàng)建gis用戶目錄,并在gis目錄下創(chuàng)建名稱為gisComp的文件夾,并將gisComp.jar解壓到此文件夾中;
[0013]②在容器端的配置目錄config中創(chuàng)建gis用戶目錄,并在gis目錄下創(chuàng)建名稱為gisComp的目錄,并將gisComp.xml配置文件解壓到此文件夾中;
[0014](4)將容器子線程解壓縮簡單組件包引用的第三方包發(fā)送到到同級目錄下的標(biāo)簽信息庫文件夾中,并且建立一個執(zhí)行更新容器服務(wù)實(shí)例的邏輯方法;
[0015]①在步驟(3)的①步驟中創(chuàng)建的gisComp文件夾下創(chuàng)建lib文件夾,并將步驟(3)的①步驟的gisComp.jar文件中依賴的第三方包解壓到lib文件夾中;
[0016]②將當(dāng)前組件引用的第三方依賴包,通過創(chuàng)建新的java中的URLClassLoader實(shí)例,添加到容器中的類加載器字典中,來管理多個組件中引用的第三方依賴包所引起的版本沖突問題,隔離第三方依賴;
[0017]③建立一個執(zhí)行更新容器服務(wù)實(shí)例的邏輯方法,該方法執(zhí)行了服務(wù)實(shí)例的添加,具體方法與下面步驟出)中②、③、④、⑤的內(nèi)容相同;
[0018](5)添加組件用戶名、組件名稱、組件配置文件路徑到協(xié)議配置文件中;
[0019]①打開系統(tǒng)默認(rèn)的協(xié)議資源配置文件;
[0020]②在資源組標(biāo)簽內(nèi)添加當(dāng)前用戶的資源標(biāo)簽,如果已經(jīng)存在該用戶的資源標(biāo)簽將略過,然后在該用戶的資源標(biāo)簽內(nèi)添加一個組件的配置標(biāo)簽,將發(fā)布組件的用戶名、組件名稱、組件配置文件路徑添加到該組件的配置標(biāo)簽屬性中,以備容器解析生成相應(yīng)服務(wù)實(shí)例;
[0021](6)容器實(shí)例更新線程按協(xié)議生成新服務(wù)實(shí)例添加到容器,具體為:
[0022]①每當(dāng)發(fā)布組件臨時存儲文件夾被監(jiān)聽到變更時,表示有新組件上傳發(fā)布,此時將實(shí)現(xiàn)上述步驟(4)的功能;
[0023]②調(diào)用上述步驟(4)中③步的執(zhí)行更新容器服務(wù)實(shí)例方法,將組件生成服務(wù)實(shí)例,由容器統(tǒng)一管理,具體的;
[0024]A、容器執(zhí)行更新服務(wù)實(shí)例邏輯時首先是打開系統(tǒng)默認(rèn)的服務(wù)實(shí)例,創(chuàng)建接口配置文件,在接口配置文件中存儲每種協(xié)議對應(yīng)的服務(wù)生成類;
[0025]B、打開上述的接口配置文件,獲取到相應(yīng)協(xié)議的資源配置文件,在該文件中存儲每個用戶及其下的每個組件的配置文件的路徑;
[0026]③遍歷每個組件的名稱與容器的服務(wù)實(shí)例名稱對比,當(dāng)該服務(wù)實(shí)例尚不存在時,將通過資源配置文件中用戶下組件配置文件的路徑打開該組件對應(yīng)的配置文件;
[0027]④解析上述步驟③中組件對應(yīng)的配置文件,找到配置文件中的服務(wù)標(biāo)簽,在服務(wù)標(biāo)簽中包含有發(fā)布的服務(wù)名、服務(wù)類型信息以及操作方法配置;
[0028]⑤通過步驟④中的服務(wù)類型及操作方法配置,并通過步驟②中獲取的接口類,實(shí)例化成一個Restlet服務(wù)對象,并添加到容器的服務(wù)實(shí)例管理集合中進(jìn)行統(tǒng)一管理,并對外提供符合配置的調(diào)用路徑,以備用戶調(diào)用發(fā)布的服務(wù)所用。
[0029]而且,所述步驟(2)校驗(yàn)簡單組件包及協(xié)議配置文件有效性的具體內(nèi)容包括:
[0030]①校驗(yàn)組件包中是否包含擴(kuò)展名為jar的壓縮文件;
[0031]②校驗(yàn)組件包中是否包含擴(kuò)展名為xml的配置文件;
[0032]③校驗(yàn)組件包中是否包含依賴第三方包的lib文件夾。
[0033]本發(fā)明的優(yōu)點(diǎn)和積極效果是:
[0034]1、本發(fā)明可以將同一個簡單組件發(fā)布為不同傳輸協(xié)議的服務(wù),使組件和傳輸協(xié)議分離,實(shí)現(xiàn)了組件和傳輸協(xié)議間的松耦合,提高了開發(fā)擴(kuò)展組件的效率。
[0035]2、本發(fā)明大大方便運(yùn)行維護(hù)人員操作。
[0036]3、本發(fā)明可用于云平臺中服務(wù)發(fā)布。
【附圖說明】
[0037]圖1是本發(fā)明的容器架構(gòu)圖;
[0038]圖2是本發(fā)明的簡單組件發(fā)布流程圖。
【具體實(shí)施方式】
[0039]以下結(jié)合附圖對本發(fā)明實(shí)施例做進(jìn)一步詳述,需要強(qiáng)調(diào)的是,本發(fā)明所述的實(shí)施例是說明性的,而不是限定性的,不能以此作為對本發(fā)明保護(hù)的范圍的限定。
[0040]一種支持多傳輸協(xié)議的組件發(fā)布容器方法,如圖1所示,該組件發(fā)布容器的服務(wù)器端與開發(fā)人員所要發(fā)布組件的輸出端連接,組件發(fā)布容器的輸出端提供面向網(wǎng)絡(luò)客戶的支持多傳輸協(xié)議的信息發(fā)布,支持多傳輸協(xié)議的組件發(fā)布容器方法,如圖2所示,包括步驟如下:
[0041](1)上傳包含簡單組件包及協(xié)議配置文件的壓縮包;其中包括:
[0042]①服務(wù)運(yùn)行維護(hù)人員登陸組件發(fā)布容器管理平臺;
[0043]②將開發(fā)人員開發(fā)的包含簡單組件包及配備的各種協(xié)議配置文件的壓縮包上傳到組件發(fā)布容器所在的服務(wù)器端;如:上傳壓縮包gisComp.zip,gisComp.zip中包含一個gisComp.jar和一個配置文件gisComp.xml,并且在開發(fā)人員的壓縮包內(nèi)包含一個存放有第三方依賴的lib文件夾;
[0044](2)校驗(yàn)簡單組件包及協(xié)議配置文件的有效性;
[0045]①校驗(yàn)組件包中是否包含擴(kuò)展名為jar (java歸檔文件)的壓縮文件。
[0046]②校驗(yàn)組件包中是否包含擴(kuò)展名為xml (可擴(kuò)展標(biāo)記語言)的配置文件。
[0047]③校驗(yàn)組件包中是否包含依賴第三方包的lib (標(biāo)簽信息庫)文件夾。
[0048](3)在容器端的組件目錄及協(xié)議配置目錄中分別存儲;
[0049]①在容器端的組件目錄component中創(chuàng)建gis用戶目錄,并在gis目錄下創(chuàng)建名稱為gisComp的文件夾,并將gisComp.jar解壓到此文件夾中;
[0050]②在容器端的配置目錄config中創(chuàng)建gis用戶目錄,并在gis目錄下創(chuàng)建名稱為gisComp的目錄,并將gisComp.xml配置文件解壓到此文件夾中;
[0051](4)將容器子線程解壓縮簡單組件包引用的第三方包發(fā)送到到同級目錄下的標(biāo)簽信息庫文件夾中;
[0052]①在步驟(3)的①步驟中創(chuàng)建的gisComp文件夾下創(chuàng)建lib文件夾,并將①步驟的gisComp.jar文件中依賴的第三方包解壓到lib文件夾中;
[0053]②將當(dāng)前組件引用的第三方依賴包,通過創(chuàng)建新的java中的URLClassLoader (唯一資源定位類加載器)實(shí)例,添加到容器中的類加載器字典中,來管理多個組件中引用的第三方依賴包所引起的版本沖突問題,隔離第三方依賴。
[0054](5)添加組件用戶名、組件名稱、組件配置文件路徑到協(xié)議配置文件中;
[0055]①打開系統(tǒng)默認(rèn)的協(xié)議資源配置文件(如:rest_resources.xml);
[0056]②在資源組標(biāo)簽內(nèi)添加當(dāng)前用戶的資源標(biāo)簽,如果已經(jīng)存在該用戶的資源標(biāo)簽將略過,然后在該用戶的資源標(biāo)簽內(nèi)添加一個組件的配置標(biāo)簽,將發(fā)布組件的用戶名、組件名稱、組件配置文件路徑添加到該組件的配置標(biāo)簽屬性中