,以備容器解析生成相應(yīng)服務(wù)實(shí)例;
[0057](6)容器實(shí)例更新線程按協(xié)議生成新服務(wù)實(shí)例添加到容器,具體實(shí)現(xiàn)邏輯為:
[0058]①每當(dāng)發(fā)布組件臨時(shí)存儲(chǔ)文件夾被監(jiān)聽(tīng)到變更時(shí),表示有新組件上傳發(fā)布,此時(shí)將實(shí)現(xiàn)上述步驟(4)的功能;
[0059]②在步驟(4)執(zhí)行的邏輯中有一個(gè)執(zhí)行更新容器服務(wù)實(shí)例的邏輯方法,具體內(nèi)容在下面④、⑤、⑥、⑦中詳細(xì)描述,該邏輯方法在步驟(4)中邏輯的末尾被調(diào)用,目的是將組件生成服務(wù)實(shí)例,并進(jìn)行由容器統(tǒng)一管理,以備用戶調(diào)用;
[0060]③容器執(zhí)行更新服務(wù)實(shí)例邏輯時(shí)首先是打開(kāi)系統(tǒng)默認(rèn)的服務(wù)實(shí)例,創(chuàng)建接口配置文件(如dnterfaces.xml),這里存儲(chǔ)了每種協(xié)議對(duì)應(yīng)的服務(wù)生成類(lèi),不同的協(xié)議有不同的服務(wù)生成接口類(lèi),該類(lèi)都繼承了 HttpServlet類(lèi)。
[0061]④打開(kāi)上述步驟③的接口配置文件,獲取到相應(yīng)協(xié)議的資源配置文件(如:rest-resources.xml),該文件中存儲(chǔ)每個(gè)用戶及其下的每個(gè)組件的配置文件的路徑(如:config/gis/rest/gisComp/gisComp.xml);
[0062]⑤遍歷每個(gè)組件的名稱與容器的服務(wù)實(shí)例名稱對(duì)比,當(dāng)該服務(wù)實(shí)例尚不存在時(shí),將通過(guò)資源配置文件中某個(gè)用戶下組件配置文件的路徑打開(kāi)該組件對(duì)應(yīng)的配置文件。
[0063]⑥解析⑤中組件對(duì)應(yīng)的配置文件,該配置文件中會(huì)有個(gè)服務(wù)標(biāo)簽,服務(wù)標(biāo)簽中包括發(fā)布的服務(wù)名及服務(wù)類(lèi)型等信息,以及該組件中的每個(gè)操作方法相關(guān)配置。
[0064]⑦通過(guò)⑥中的服務(wù)類(lèi)型及操作方法配置,并通過(guò)③中獲取的接口類(lèi),實(shí)例化成一個(gè)Restlet ( 一種開(kāi)源Rest服務(wù)框架)服務(wù)對(duì)象,并添加到容器的服務(wù)實(shí)例管理集合中進(jìn)行統(tǒng)一管理,并對(duì)外提供符合配置的調(diào)用路徑,以備用戶調(diào)用發(fā)布的服務(wù)所用。
[0065]效果
[0066]使普通組件動(dòng)態(tài)的根據(jù)用戶在不修改組件的情況下發(fā)不成多種請(qǐng)求協(xié)議格式,分尚開(kāi)發(fā)和發(fā)布。
[0067]—種支持多傳輸協(xié)議的組件發(fā)布容器方法技術(shù)領(lǐng)域
[0068]
[0069]本發(fā)明屬于IT信息行業(yè)中遠(yuǎn)程服務(wù)調(diào)用技術(shù)領(lǐng)域,尤其是一種支持多傳輸協(xié)議的組件發(fā)布容器方法。
【背景技術(shù)】
[0070]
[0071]隨著IT信息行業(yè)中遠(yuǎn)程服務(wù)調(diào)用技術(shù)的迅猛發(fā)展,遠(yuǎn)程調(diào)用服務(wù)有了較大的變化,大大方便了開(kāi)發(fā)人員及系統(tǒng)運(yùn)行維護(hù)人員的操作,使開(kāi)發(fā)人員只關(guān)注自己范圍內(nèi)的工作,做到一處開(kāi)發(fā),到處可用,使系統(tǒng)運(yùn)行維護(hù)人員也能大大簡(jiǎn)化操作流程?;谝陨媳尘?,如何將一個(gè)普通的組件(即組件程序包中不包含發(fā)布的任何協(xié)議信息,由用戶在發(fā)布時(shí)自由定義協(xié)議)由用戶選擇協(xié)議發(fā)布,尚沒(méi)有完美的解決方案,本發(fā)明就是為了解決一個(gè)組件支持動(dòng)態(tài)發(fā)不成多個(gè)請(qǐng)求訪問(wèn)協(xié)議的問(wèn)題而產(chǎn)生。
[0072]通過(guò)對(duì)國(guó)內(nèi)公開(kāi)專利及其它文獻(xiàn)的檢索,沒(méi)有發(fā)現(xiàn)與本發(fā)明方法相近似的公開(kāi)專利及文獻(xiàn)。
【發(fā)明內(nèi)容】
[0073]
[0074]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種支持多傳輸協(xié)議的組件發(fā)布容器方法。
[0075]本發(fā)明解決其技術(shù)問(wèn)題是采取以下技術(shù)方案實(shí)現(xiàn)的:
[0076]—種支持多傳輸協(xié)議的組件發(fā)布容器方法,包括步驟如下:
[0077](1)上傳包含簡(jiǎn)單組件包及協(xié)議配置文件的壓縮包;其中包括:
[0078]①服務(wù)運(yùn)行維護(hù)人員登陸組件發(fā)布容器管理平臺(tái);
[0079]②將開(kāi)發(fā)人員開(kāi)發(fā)的包含簡(jiǎn)單組件包及配備的各種協(xié)議配置文件的壓縮包上傳到組件發(fā)布容器所在的服務(wù)器端,并且在上傳的壓縮包內(nèi)包含一個(gè)存放有第三方依賴的lib文件夾;
[0080](2)校驗(yàn)簡(jiǎn)單組件包及協(xié)議配置文件的有效性;
[0081](3)在容器端的組件目錄及協(xié)議配置目錄中分別存儲(chǔ);
[0082]①在容器端的組件目錄component中創(chuàng)建gis用戶目錄,并在gis目錄下創(chuàng)建名稱為gisComp的文件夾,并將gisComp.jar解壓到此文件夾中;
[0083]②在容器端的配置目錄config中創(chuàng)建gis用戶目錄,并在gis目錄下創(chuàng)建名稱為gisComp的目錄,并將gisComp.xml配置文件解壓到此文件夾中;
[0084](4)將容器子線程解壓縮簡(jiǎn)單組件包引用的第三方包發(fā)送到到同級(jí)目錄下的標(biāo)簽信息庫(kù)文件夾中,并且建立一個(gè)執(zhí)行更新容器服務(wù)實(shí)例的邏輯方法;
[0085]①在步驟(3)的①步驟中創(chuàng)建的gisComp文件夾下創(chuàng)建lib文件夾,并將步驟(3)的①步驟的gisComp.jar文件中依賴的第三方包解壓到lib文件夾中;
[0086]②將當(dāng)前組件引用的第三方依賴包,通過(guò)創(chuàng)建新的java中的URLClassLoader實(shí)例,添加到容器中的類(lèi)加載器字典中,來(lái)管理多個(gè)組件中引用的第三方依賴包所引起的版本沖突問(wèn)題,隔離第三方依賴;
[0087]③建立一個(gè)執(zhí)行更新容器服務(wù)實(shí)例的邏輯方法,該方法執(zhí)行了服務(wù)實(shí)例的添加,具體方法與下面步驟出)中②、③、④、⑤的內(nèi)容相同;
[0088](5)添加組件用戶名、組件名稱、組件配置文件路徑到協(xié)議配置文件中;
[0089]①打開(kāi)系統(tǒng)默認(rèn)的協(xié)議資源配置文件;
[0090]②在資源組標(biāo)簽內(nèi)添加當(dāng)前用戶的資源標(biāo)簽,如果已經(jīng)存在該用戶的資源標(biāo)簽將略過(guò),然后在該用戶的資源標(biāo)簽內(nèi)添加一個(gè)組件的配置標(biāo)簽,將發(fā)布組件的用戶名、組件名稱、組件配置文件路徑添加到該組件的配置標(biāo)簽屬性中,以備容器解析生成相應(yīng)服務(wù)實(shí)例;
[0091](6)容器實(shí)例更新線程按協(xié)議生成新服務(wù)實(shí)例添加到容器,具體為:
[0092]①每當(dāng)發(fā)布組件臨時(shí)存儲(chǔ)文件夾被監(jiān)聽(tīng)到變更時(shí),表示有新組件上傳發(fā)布,此時(shí)將實(shí)現(xiàn)上述步驟(4)的功能;
[0093]②調(diào)用上述步驟(4)中③步的執(zhí)行更新容器服務(wù)實(shí)例方法,將組件生成服務(wù)實(shí)例,由容器統(tǒng)一管理,具體的;
[0094]A、容器執(zhí)行更新服務(wù)實(shí)例邏輯時(shí)首先是打開(kāi)系統(tǒng)默認(rèn)的服務(wù)實(shí)例,創(chuàng)建接口配置文件,在接口配置文件中存儲(chǔ)每種協(xié)議對(duì)應(yīng)的服務(wù)生成類(lèi);
[0095]B、打開(kāi)上述的接口配置文件,獲取到相應(yīng)協(xié)議的資源配置文件,在該文件中存儲(chǔ)每個(gè)用戶及其下的每個(gè)組件的配置文件的路徑;
[0096]③遍歷每個(gè)組件的名稱與容器的服務(wù)實(shí)例名稱對(duì)比,當(dāng)該服務(wù)實(shí)例尚不存在時(shí),將通過(guò)資源配置文件中用戶下組件配置文件的路徑打開(kāi)該組件對(duì)應(yīng)的配置文件;
[0097]④解析上述步驟③中組件對(duì)應(yīng)的配置文件,找到配置文件中的服務(wù)標(biāo)簽,在服務(wù)標(biāo)簽中包含有發(fā)布的服務(wù)名、服務(wù)類(lèi)型信息以及操作方法配置;
[0098]⑤通過(guò)步驟④中的服務(wù)類(lèi)型及操作方法配置,并通過(guò)步驟②中獲取的接口類(lèi),實(shí)例化成一個(gè)Restlet服務(wù)對(duì)象,并添加到容器的服務(wù)實(shí)例管理集合中進(jìn)行統(tǒng)一管理,并對(duì)外提供符合配置的調(diào)用路徑,以備用戶調(diào)用發(fā)布的服務(wù)所用。
[0099]而且,所述步驟(2)校驗(yàn)簡(jiǎn)單組件包及協(xié)議配置文件有效性的具體內(nèi)容包括:
[0100]①校驗(yàn)組件包中是否包含擴(kuò)展名為jar的壓縮文件;
[0101]②校驗(yàn)組件包中是否包含擴(kuò)展名為xml的配置文件;
[0102]③校驗(yàn)組件包中是否包含依賴第三方包的lib文件夾。
[0103]本發(fā)明的優(yōu)點(diǎn)和積極效果是:
[0104]1、本發(fā)明可以將同一個(gè)簡(jiǎn)單組件發(fā)布為不同傳輸協(xié)議的服務(wù),使組件和傳輸協(xié)議分離,實(shí)現(xiàn)了組件和傳輸協(xié)議間的松耦合,提高了開(kāi)發(fā)擴(kuò)展組件的效率。
[0105]2、本發(fā)明大大方便運(yùn)行維護(hù)人員操作。
[0106]3、本發(fā)明可用于云平臺(tái)中服務(wù)發(fā)布。
【附圖說(shuō)明】
[0107]
[0108]圖1是本發(fā)明的容器架構(gòu)圖;
[0109]圖2是本發(fā)明的簡(jiǎn)單組件發(fā)布流程圖。
【具體實(shí)施方式】
[0110]
[0111]以下結(jié)合附圖對(duì)本發(fā)明實(shí)施例做進(jìn)一步詳述,需要強(qiáng)調(diào)的是,本發(fā)明所述的實(shí)施例是說(shuō)明性的,而不是限定性的,不能以此作為對(duì)本發(fā)明保護(hù)的范圍的限定。
[0112]—種支持多傳輸協(xié)議的組件發(fā)布容器方法,如圖1所示,該組件發(fā)布容器的服務(wù)器端與開(kāi)發(fā)人員所要發(fā)布組件的輸出端連接,組件發(fā)布容器的輸出端提供面向網(wǎng)絡(luò)客戶的支持多傳輸協(xié)議的信息發(fā)布,支持多傳輸協(xié)議的組件發(fā)布容器方法,如圖2所示,包括步驟如下:
[0113](1)上傳包含簡(jiǎn)單組件包及協(xié)議配置文件的壓縮包;其中包括:
[0114]①服務(wù)運(yùn)行維護(hù)人員登陸組件發(fā)布容器管理平臺(tái);
[0115]②將開(kāi)發(fā)人員開(kāi)發(fā)的包含簡(jiǎn)單組件包及配備的各種協(xié)議配置文件的壓縮包上傳到組件發(fā)布容器所在的服務(wù)器端;如:上傳壓縮包gisComp.zip,gisComp.zip中包含一個(gè)