午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

一種組件加載方法及系統(tǒng)的制作方法

文檔序號:6371270閱讀:273來源:國知局
專利名稱:一種組件加載方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本申請涉及OSGi技術(shù)領(lǐng)域,特別涉及一種組件加載方法及系統(tǒng)。
背景技術(shù)
隨著物聯(lián)網(wǎng)信息技術(shù)產(chǎn)業(yè)的發(fā)展,面向OSGi框架的物聯(lián)網(wǎng)中間件發(fā)展迅速,它能夠?qū)ο缕帘味鄻踊挠布喿x設(shè)備,對上支持物聯(lián)網(wǎng)應(yīng)用的部署及運行。為增加物聯(lián)網(wǎng)中間件的功能,通常采用將實現(xiàn)特定功能的組件加載至物聯(lián)網(wǎng)中間件中。目前,加載組件至物聯(lián)網(wǎng)中間件,通常采用將組件代碼編譯入物聯(lián)網(wǎng)中間件代碼的方法,實現(xiàn)在物聯(lián)網(wǎng)中間件中啟動被加載組件,實現(xiàn)被加載組件的功能,但這種組件加載方案較為繁瑣,缺乏靈活性,且當(dāng)需要在運行中的物聯(lián)網(wǎng)中間件中加載組件時,需要停止物 聯(lián)網(wǎng)中間件的運行,重新編譯待加載的組件與物聯(lián)網(wǎng)中間件的組合代碼,實現(xiàn)組件加載,由此導(dǎo)致物聯(lián)網(wǎng)中間件的運行效率較低。

發(fā)明內(nèi)容
本申請所要解決的技術(shù)問題是提供一種組件加載方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中采用將組件代價編譯入物聯(lián)網(wǎng)中間件代碼的方法較為繁瑣,缺乏靈活性,且當(dāng)需要在運行中的物聯(lián)網(wǎng)中間件中加載組件時,需要停止物聯(lián)網(wǎng)中間件的運行,重新編譯待加載的組件與物聯(lián)網(wǎng)中間件的組合代碼,導(dǎo)致物聯(lián)網(wǎng)中間件的運行效率較低的技術(shù)問題。為解決上述技術(shù)問題,本發(fā)明提供的一種組件加載方法,在執(zhí)行所述方法前,創(chuàng)建資源倉庫,所述資源倉庫包括至少一個待加載組件、與所述待加載組件相對應(yīng)的組件信息文件和資源倉庫描述文件;所述方法包括獲取所述資源倉庫中的資源倉庫描述文件;依據(jù)所述資源倉庫描述文件中的待加載組件地址信息,獲取待加載組件的組件信息文件;若獲取到的組件信息文件中的組件名稱、組件版本和組件內(nèi)容同時滿足物聯(lián)網(wǎng)中間件對組件的加載請求,將與所述組件名稱相對應(yīng)的待加載組件在物聯(lián)網(wǎng)中間件中啟動。上述方法,優(yōu)選地,所述創(chuàng)建資源倉庫包括將所述待加載組件置入預(yù)設(shè)的第一文件夾內(nèi),并在所述第一文件夾內(nèi)生成與所述待加載組件相對應(yīng)的組件信息文件;依據(jù)所述第一文件夾內(nèi)的待加載組件,生成與所述第一文件夾相關(guān)聯(lián)的資源倉庫描述文件;在預(yù)設(shè)第二文件夾下創(chuàng)建第三文件夾,并將所述第一文件夾及與所述資源倉庫描述文件置于所述第三文件夾內(nèi)。上述方法,優(yōu)選地,所述將所述待加載組件置入預(yù)設(shè)的第一文件夾內(nèi)包括采用DOS命令進入預(yù)設(shè)的第一文件夾的目錄,輸入命令java-jar bindex. jar所述第一文件夾的名稱/所述待加載組件的名稱。上述方法,優(yōu)選地,所述獲取所述資源倉庫中的資源倉庫描述文件包括在OSGi命令控制臺上輸入獲取命令=IoadApp+所述資源倉庫中待加載組件所在文件夾的上級文件夾名稱;執(zhí)行所述獲取命令獲取所述資源倉庫描述文件。上述方法,優(yōu)選地,所述獲取所述資源倉庫中的資源倉庫描述文件包括 在所述資源倉庫中創(chuàng)建加載配置文件;將所述資源倉庫中待加載組件的名稱寫入所述加載配置文件中;執(zhí)行所述加載配置文件獲取所述資源倉庫描述文件;其中若所述資源倉庫中包括多個待加載組件時,所述加載配置文件中每個待加載組件的組件名稱字符串居左,且占據(jù)一行。本申請還提供了一種組件加載系統(tǒng),包括資源倉庫創(chuàng)建單元、描述文件獲取單元、信息文件獲取單元、組件加載啟動單元,其中所述資源倉庫創(chuàng)建單元,用于創(chuàng)建資源倉庫,所述資源倉庫包括至少一個待加載組件和與所述待加載組件相對應(yīng)的組件信息文件;所述描述文件獲取單元,用于獲取所述資源倉庫中的資源倉庫描述文件;所述信息文件獲取單元,用于依據(jù)所述資源倉庫描述文件中的待加載組件地址信息,獲取待加載組件的組件信息文件;所述組件加載啟動單元,用于若獲取的組件信息文件中的組件名稱、組件版本和組件內(nèi)容同時滿足物聯(lián)網(wǎng)中間件對組件的加載請求,將與所述組件名稱相對應(yīng)的待加載組件在物聯(lián)網(wǎng)中間件中啟動。上述系統(tǒng),優(yōu)選地,所述資源倉庫創(chuàng)建單元包括第一創(chuàng)建子單元、第二創(chuàng)建子單元和第三創(chuàng)建子單元,其中所述第一創(chuàng)建子單元,用于將所述待加載組件置入預(yù)設(shè)的第一文件夾內(nèi),并在所述第一文件夾內(nèi)生成與所述待加載組件相對應(yīng)的組件信息文件;所述第二創(chuàng)建子單元,用于依據(jù)所述第一文件夾內(nèi)的待加載組件,生成與所述第一文件夾相關(guān)聯(lián)的資源倉庫描述文件;所述第三創(chuàng)建子單元,用于在預(yù)設(shè)第二文件夾下創(chuàng)建第三文件夾,并將所述第一文件夾及與所述資源倉庫描述文件置于所述第三文件夾內(nèi)。上述系統(tǒng),優(yōu)選地所述第一創(chuàng)建子單元,具體用于采用DOS命令進入預(yù)設(shè)的第一文件夾的目錄,輸入命令java-jar bindex. jar所述第一文件夾的名稱/所述待加載組件的名稱,并在所述第一文件夾內(nèi)生成與所述待加載組件相對應(yīng)的組件信息文件。上述系統(tǒng),優(yōu)選地,所述描述文件獲取單元包括第一獲取子單元;所述第一獲取子單元,用于在OSGi命令控制臺上輸入獲取命令=IoadApp+所述資源倉庫中待加載組件所在文件夾的上級文件夾名稱,執(zhí)行所述獲取命令獲取所述資源倉庫描述文件。上述系統(tǒng),優(yōu)選地,所述描述文件獲取單元包括第二獲取子單元;
所述第二獲取子單元,用于在所述資源倉庫中創(chuàng)建加載配置文件,將所述資源倉庫中待加載組件的名稱寫入所述加載配置文件中,并執(zhí)行所述加載配置文件獲取所述資源倉庫描述文件;其中若所述資源倉庫中包括多個待加載組件時,所述加載配置文件中每個待加載組件的組件名稱字符串居左,且 占據(jù)一行。由上述方案可知,本申請?zhí)峁┑囊环N組件加載方法及系統(tǒng),通過預(yù)先創(chuàng)建包括至少一個待加載組件的資源倉庫,在物聯(lián)網(wǎng)中間件需要加載組件時,獲取資源倉庫中資源倉庫描述文件,進而獲取待加載組件的組件信息文件,當(dāng)該組件信息文件中的組件名稱、組件版本和組件內(nèi)容同時滿足物聯(lián)網(wǎng)中間件對組件的加載請求時,將該待加載組件在物聯(lián)網(wǎng)中間件中啟動,由此實現(xiàn)組件在物聯(lián)網(wǎng)中間件中的加載,避免了現(xiàn)有技術(shù)中將組件代價編譯入物聯(lián)網(wǎng)中間件代碼的方法較為繁瑣,缺乏靈活性,且當(dāng)需要在運行中的物聯(lián)網(wǎng)中間件中加載組件時,需要停止物聯(lián)網(wǎng)中間件的運行,重新編譯待加載的組件與物聯(lián)網(wǎng)中間件的組合代碼,導(dǎo)致物聯(lián)網(wǎng)中間件的運行效率較低的技術(shù)問題。進一步的,本申請?zhí)峁┑囊环N組件加載方法及系統(tǒng),通過在OSGi命令控制臺上輸A IoadApp+資源倉庫中待加載組件所在文件夾的上級文件夾名稱的獲取命令,獲取資源倉庫描述文件進而獲取待加載組件的組件信息文件,實現(xiàn)將單一待加載組件加載至物聯(lián)網(wǎng)中間件中;或通過在資源倉庫中創(chuàng)建加載配置文件,在加載配置文件中寫入待加載組件的組件名稱字符串,執(zhí)行該加載配置文件獲取資源倉庫描述文件進而獲取待加載組件的組件信息文件,實現(xiàn)單一或多個待加載組件加載至物聯(lián)網(wǎng)中間件中。當(dāng)然,實施本發(fā)明的任一產(chǎn)品并不一定需要同時達到以上所述的所有優(yōu)點。


為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本申請?zhí)峁┑囊环N組件加載方法實施例一的流程圖;圖2為本申請?zhí)峁┑囊环N組件加載方法實施例二的部分流程圖;圖3為本申請?zhí)峁┑囊环N組件加載方法實施例三的部分流程圖;圖4為本申請?zhí)峁┑囊环N組件加載方法實施例三的另一部分流程圖;圖5為本申請?zhí)峁┑囊环N組件加載系統(tǒng)實施例一的結(jié)構(gòu)示意圖;圖6為本申請?zhí)峁┑囊环N組件加載系統(tǒng)實施例二的結(jié)構(gòu)示意圖;圖7為本申請?zhí)峁┑囊环N組件加載系統(tǒng)實施例三的結(jié)構(gòu)示意圖;圖8為本申請?zhí)峁┑囊环N組件加載系統(tǒng)實施例三的另一結(jié)構(gòu)示意圖。
具體實施例方式下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。參考圖1,其示出了本申請?zhí)峁┑囊环N組件加載方法實施例一的流程圖,在執(zhí)行所述方法前,創(chuàng)建資源倉庫,所述資源倉庫包括至少一個待加載組件、與所述待加載組件相對應(yīng)的組件信息文件和資源倉庫描述文件,所述方法可以包括以下步驟步驟101 :獲取所述資源倉庫中的資源倉庫描述文件。其中,所述創(chuàng)建資源倉庫,所述資源倉庫包括至少一個待加載組件、與所述待加載組件相對應(yīng)的組件信息文件和資源倉庫描述文件中,優(yōu)選地,利用面向OSGi框架的資源倉庫管理服務(wù)OBR協(xié)議創(chuàng)建資源倉庫。需要說明的是,所述OBR協(xié)議的全稱為OSGi Bundle Repository,它是中基于RFC-Ol 12協(xié)議,面向OSGi框架的資源倉庫管理服務(wù)協(xié)議。所述RFC-Ol 12協(xié)議定義了資源倉庫描述文件(XML文件)的格式,支持本地倉庫和網(wǎng)絡(luò)倉庫兩種形式。在本申請中,物聯(lián)網(wǎng) 中間件選擇使用OBR協(xié)議創(chuàng)建資源倉庫,實現(xiàn)組件加載服務(wù),能夠快捷簡便地訪問、管理資源倉庫。其中,優(yōu)選地,所述資源倉庫中包括兩個及兩個以上待加載組件、與每個待加載組件相對應(yīng)的組件信息文件及與該資源倉庫中待加載組件相關(guān)聯(lián)的資源倉庫描述文件。所述待加載組件的格式均為jar包格式,例如*. jar,而所述資源倉庫描述文件為XML文件格式,例如!repository, xml。需要說明的是,本申請方法實施例實現(xiàn)組件加載時,預(yù)先創(chuàng)建資源倉庫,該資源倉庫中包括待加載組件、待加載組件的組件信息文件及資源倉庫描述文件,在物聯(lián)網(wǎng)中間件需要進行組件加載時,再執(zhí)行所述方法。即在每次需要進行組件加載時,該資源倉庫無需再次創(chuàng)建。其中,在物聯(lián)網(wǎng)中間件需要組件加載時,接收物聯(lián)網(wǎng)中間件對組件的加載請求信息,獲取所述資源倉庫中的資源倉庫描述文件。步驟102 :依據(jù)所述資源倉庫描述文件中的待加載組件地址信息,獲取待加載組件的組件信息文件。其中,在獲取到所述資源倉庫描述文件之后,依據(jù)所述資源倉庫描述文件中的待加載組件地址信息,即URL信息,獲取所述資源倉庫中的待加載組件的組件信息文件。步驟103 :判斷獲取到的組件信息文件中的組件名稱、組件版本和組件內(nèi)容是否同時滿足物聯(lián)網(wǎng)中間件對組件的加載請求,如果是,執(zhí)行步驟104。其中,在獲取到所述組件信息文件之后,對所述組件信息文件中包含的組件名稱、組件版本和組件內(nèi)容進行解析。其中,在所述組件名稱、組件版本和組件內(nèi)容無法同時滿足物聯(lián)網(wǎng)中間件對組件的加載請求時,返回執(zhí)行所述步驟102,重新獲取待加載組件的組件信息文件,并解析所述組件信息文件包含的組件名稱、組件版本和組件內(nèi)容(該待加載組件的導(dǎo)出包內(nèi)容),直至所述組件名稱、組件版本和組件內(nèi)容同時滿足物聯(lián)網(wǎng)中間件對組件的加載請求,執(zhí)行步驟104。優(yōu)選地,在所述資源倉庫中設(shè)置OBR倉庫管理員,在獲取到所述資源倉庫描述文件之后,將獲取的資源倉庫描述文件發(fā)送至該OBR倉庫管理員,由該OBR倉庫管理員根據(jù)所述獲取的資源倉庫描述文件中的待加載組件的地址信息獲取所述資源倉庫中一個或多個的待加載組件的組件信息文件,并解析該組件信息文件中的組件名稱、組件版本和組件內(nèi)容,判斷所述組件名稱、組件版本和組件內(nèi)容是否同時滿足所述物聯(lián)網(wǎng)中間件對組件的加載請求,如果是,執(zhí)行步驟104,否則,可以返回執(zhí)行所述步驟102,重新獲取一個或多個待加載組件的組件信息文件。例如設(shè)置資源倉庫的OBR倉庫管理員RepositoryAdmin ;在獲取到資源倉庫描述文件repository, xml之后,為OBR倉庫管理員提供獲取到的資源倉庫描述文件repository, xml,具體的,所述資源倉庫描述文件中的待加載組件地址信息即URL信息;OBR倉庫管理員根據(jù)repository, xml中的URL信息獲取與該URL地址信息對應(yīng)的一個或多個的待加載組件的組件信息文件,并解析所述組件信息文件中的組件名稱、組件版本和組件內(nèi)容;若所有的Requirement (即組件名稱、組件版本和組件內(nèi)容)均同時滿足所述物聯(lián)網(wǎng)中間件對組件的加載請求,則執(zhí)行步驟104 ;如果所有的Requirement (如組件名稱、組件版本和組件內(nèi)容等)無法同時滿足所述物聯(lián)網(wǎng)中間件對組件的加載請求,即所述組件名 稱、組件版本和組件內(nèi)容等的內(nèi)容無法分別與物聯(lián)網(wǎng)中間件中需要加載的組件名稱、組件版本、組件內(nèi)容等相對應(yīng),則執(zhí)行步驟102重新獲取所述資源參考中待加載組件的組件信息文件,解析重新獲取到的組件信息文件中的組件名稱、組件版本和組件內(nèi)容,直到所有的Requirement都滿足,執(zhí)行步驟104。步驟104 :將與所述組件名稱相對應(yīng)的待加載組件在物聯(lián)網(wǎng)中間件中啟動。優(yōu)選地,上述判斷所述組件信息文件中的組件名稱、組件版本和組件內(nèi)容是否滿足物聯(lián)網(wǎng)中間件對組件的加載請求功能可以通過物聯(lián)網(wǎng)中間件中的解析器實現(xiàn),在該解析器解析到組件信息文件中的組件名稱、組件版本和組件內(nèi)容同時滿足物聯(lián)網(wǎng)中間件對組件的加載請求,由該解析器將與滿足所述物聯(lián)網(wǎng)中間件對組件的加載請求的待加載組件部署至物聯(lián)網(wǎng)中間件中,并啟動。由上述方案可知,本申請?zhí)峁┑囊环N組件加載方法實施例一,通過預(yù)先創(chuàng)建包括至少一個待加載組件的資源倉庫,在物聯(lián)網(wǎng)中間件需要加載組件時,獲取資源倉庫中資源倉庫描述文件,進而獲取待加載組件的組件信息文件,當(dāng)該組件信息文件中的組件名稱、組件版本和組件內(nèi)容同時滿足物聯(lián)網(wǎng)中間件對組件的加載請求時,將該待加載組件在物聯(lián)網(wǎng)中間件中啟動,由此實現(xiàn)組件在物聯(lián)網(wǎng)中間件中的加載,避免了現(xiàn)有技術(shù)中將組件代價編譯入物聯(lián)網(wǎng)中間件代碼的方法較為繁瑣,缺乏靈活性,且當(dāng)需要在運行中的物聯(lián)網(wǎng)中間件中加載組件時,需要停止物聯(lián)網(wǎng)中間件的運行,重新編譯待加載的組件與物聯(lián)網(wǎng)中間件的組合代碼,導(dǎo)致物聯(lián)網(wǎng)中間件的運行效率較低的技術(shù)問題。參考圖2,其示出了本申請?zhí)峁┑囊环N組件加載方法實施例二的部分流程圖,所述創(chuàng)建資源倉庫具體可以包括以下步驟步驟201 :將待加載組件置入預(yù)設(shè)的第一文件夾內(nèi),并在所述第一文件夾內(nèi)生成與所述待加載組件相對應(yīng)的組件信息文件。其中,優(yōu)選地,所述將所述待加載組件置入預(yù)設(shè)的第一文件夾內(nèi)包括采用DOS命令進入預(yù)設(shè)的第一文件夾的目錄,輸入命令java-jar bindex. jar所述第一文件夾的名稱/所述待加載組件的名稱。例如創(chuàng)建第一文件夾plugins文件夾,采用DOC命令進入plugins文件夾所在目錄,輸入命令java-jar bindex. jar plugins/*, jar,所述*. jar為待加載組件的名稱;在plugins文件夾下生成*jar對應(yīng)的待加載組件的組件信息文件repository, xml。步驟202 :依據(jù)所述第一文件夾內(nèi)的待加載組件,生成與所述第一文件夾相關(guān)聯(lián)的資源倉庫描述文件。其中,所述資源倉庫只包括一個資源倉庫描述文件,其記載有所述資源倉庫中所有待加載組件的組件地址信息即URL信息,該資源倉庫描述文件作為元信息描述文件與置有待加載組件的第一文件夾呈平等對應(yīng)關(guān)系,即在磁盤存儲中處于同一級文件夾內(nèi)。步驟203 :在預(yù)設(shè)第二文件夾下創(chuàng)建第三文件夾,并將所述第一文件夾及所述資源倉庫描述文件置于所述第三文件夾內(nèi)。 其中,所述第二文件夾作為指定文件夾,相當(dāng)于所述資源倉庫,為其命名,例如applications,而所述第三文件夾的命名可以為TEST,上述將所述第一文件夾及所述資源倉庫描述文件置于所述第三文件夾內(nèi)具體為將所述步驟201中創(chuàng)建的plugins文件夾拷貝至所述TEST文件夾內(nèi),而所述資源倉庫描述文件在所述TEST文件夾內(nèi)生成。由上述方案可知,本申請方法實施例二采用bindex. jar工具實現(xiàn)待加載組件寫入所述第一文件夾內(nèi),并創(chuàng)建組件信息文件,相對于現(xiàn)有技術(shù)中手工編寫待加載組件的XML文件,從而實現(xiàn)資源倉庫的創(chuàng)建,節(jié)省了大量系統(tǒng)資源消耗及成本。參考圖3,其示出了本申請?zhí)峁┑囊环N組件加載方法實施例三的部分流程圖,優(yōu)選地,所述步驟101可以包括以下步驟步驟301 :在OSGi命令控制臺上輸入獲取命令=IoadApp+所述資源倉庫中待加載組件所在文件夾的上級文件夾名稱。其中,所述IoadApp命令為OSGi命令控制臺的一種命令方式。例如在OSGi命令控制臺上輸入=IoadApp (命令方式)+TEST (本申請方法實施例一中所述資源倉庫中待加載組件所在文件夾的上級文件夾名稱,即本申請方法實施例二中第二文件夾名稱)。步驟302 :執(zhí)行所述獲取命令獲取所述資源倉庫描述文件。其中,在所述步驟301輸入所述獲取命令之后,執(zhí)行所述獲取命令,即運行所述獲取命令,得到待加載組件所在文件夾的上級文件夾內(nèi)的XML文件格式的文件,即與待加載組件所在文件夾平行設(shè)置的資源倉庫描述文件。參考圖4,其示出了本申請?zhí)峁┑囊环N組件加載方法實施例三的另一部分流程圖,優(yōu)選地,所述步驟101可以包括以下步驟步驟401 :在所述資源倉庫中創(chuàng)建加載配置文件。其中,所述加載配置文件在所述資源倉庫中所述待加載組件所在目錄的頂級文件夾內(nèi)創(chuàng)建。例如,在本申請方法實施例二中的第二文件夾applications中創(chuàng)建加載配置文件 default, ini。步驟402 :將所述資源倉庫中待加載組件的名稱寫入所述加載配置文件中;其中若所述資源倉庫中包括多個待加載組件時,所述加載配置文件中每個待加載組件的組件名稱字符串居左,且占據(jù)一行。其中,若所述資源倉庫中待加載組件為單個時,可以直接將該待加載組件的組件名稱寫入所述加載配置文件,而所述資源倉庫中包括多個待加載組件時,即在需要批量加載組件時,可以通過如圖4所示的方法實現(xiàn),即在所述創(chuàng)建的加載配置文件中寫入待加載組件的組件名稱,而多個待加載組件各自對應(yīng)的組件名稱在寫入所述加載配置文件時,需要保證多個組件名稱字符串居左,且,每個組件名稱字符串各自占據(jù)一行。步驟403 :執(zhí)行所述加載配置文件獲取所述資源倉庫描述文件。其中,在將加載配置文件配置完成之后,執(zhí)行所述加載配置文件,即運行所述加載配置文件得到所述資源倉庫描述文件,即所述第三文件夾內(nèi)的資源倉庫描述文件。由上述方案可知,本申請?zhí)峁┑囊环N組件加載方法實施例三,通過在OSGi命令控制臺上輸入IoadApp+資源倉庫中待加載組件所在文件夾的上級文件夾名稱的獲取命令,獲取資源倉庫描述文件進而獲取待加載組件的組件信息文件,實現(xiàn)將單一待加載組件加載至物聯(lián)網(wǎng)中間件中;或通過在資源倉庫中創(chuàng)建加載配置文件,在加載配置文件中寫入待加載組件的組件名稱字符串,執(zhí)行該加載配置文件獲取資源倉庫描述文件進而獲取待加載組件的組件信息文件,實現(xiàn)單一或多個待加載組件加載至物聯(lián)網(wǎng)中間件中。 參考圖5,其示出了本申請?zhí)峁┑囊环N組件加載系統(tǒng)實施例一的結(jié)構(gòu)示意圖,所述系統(tǒng)包括資源倉庫創(chuàng)建單元501、描述文件獲取單元502、信息文件獲取單元503、組件加載啟動單元504,其中所述資源倉庫創(chuàng)建單元501,用于創(chuàng)建資源倉庫,所述資源倉庫包括至少一個待加載組件和與所述待加載組件相對應(yīng)的組件信息文件。其中,優(yōu)選地,所述資源倉庫創(chuàng)建單元501,具體用于利用面向OSGi框架的資源倉庫管理服務(wù)OBR協(xié)議創(chuàng)建資源倉庫。需要說明的是,所述OBR協(xié)議的全稱為OSGi Bundle Repository,它是中基于RFC-Ol 12協(xié)議,面向OSGi框架的資源倉庫管理服務(wù)協(xié)議。所述RFC-Ol 12協(xié)議定義了資源倉庫描述文件(XML文件)的格式,支持本地倉庫和網(wǎng)絡(luò)倉庫兩種形式。在本申請中,物聯(lián)網(wǎng)中間件選擇使用OBR協(xié)議創(chuàng)建資源倉庫,實現(xiàn)組件加載服務(wù),能夠快捷簡便地訪問、管理資源倉庫。其中,優(yōu)選地,所述資源倉庫中包括兩個及兩個以上待加載組件、與每個待加載組件相對應(yīng)的組件信息文件及與該資源倉庫中待加載組件相關(guān)聯(lián)的資源倉庫描述文件。所述待加載組件的格式均為jar包格式,例如*. jar,而所述資源倉庫描述文件為XML文件格式,例如!repository, xml。需要說明的是,本申請系統(tǒng)實施例實現(xiàn)組件加載時,預(yù)先創(chuàng)建資源倉庫,該資源倉庫中包括待加載組件、待加載組件的組件信息文件及資源倉庫描述文件,在物聯(lián)網(wǎng)中間件需要進行組件加載時,再運行所述系統(tǒng)。即在每次需要進行組件加載時,該資源倉庫無需再次創(chuàng)建。所述描述文件獲取單元502,用于獲取所述資源倉庫中的資源倉庫描述文件。其中,在物聯(lián)網(wǎng)中間件需要組件加載時,接收物聯(lián)網(wǎng)中間件對組件的加載請求信息,觸發(fā)所述描述文件獲取單元502獲取所述資源倉庫中的資源倉庫描述文件。所述信息文件獲取單元503,用于依據(jù)所述資源倉庫描述文件中的待加載組件地址信息,獲取待加載組件的組件信息文件。其中,在獲取到所述資源倉庫描述文件之后,所述信息文件獲取單元503依據(jù)所述資源倉庫描述文件中的待加載組件地址信息,即URL信息,獲取所述資源倉庫中的待加載組件的組件信息文件。所述組件加載啟動單元504,用于若獲取的組件信息文件中的組件名稱、組件版本和組件內(nèi)容同時滿足物聯(lián)網(wǎng)中間件對組件的加載請求,將與所述組件名稱相對應(yīng)的待加載組件在物聯(lián)網(wǎng)中間件中啟動。由上述可知,本申請?zhí)峁┑囊环N組件加載系統(tǒng)實施例一,通過創(chuàng)建包括至少一個待加載組件的資源倉庫,在物聯(lián)網(wǎng)中間件需要加載組件時,獲取資源倉庫中的資源倉庫描 述文件,進而獲取待加載組件的組件信息文件,并對組件信息文件進行解析,當(dāng)該組件信息文件中的組件名稱、組件版本和組件內(nèi)容同時滿足物聯(lián)網(wǎng)中間件對組件的加載請求時,將該待加載組件在物聯(lián)網(wǎng)中間件中啟動,由此實現(xiàn)組件在物聯(lián)網(wǎng)中間件中的加載,避免了現(xiàn)有技術(shù)中將組件代價編譯入物聯(lián)網(wǎng)中間件代碼的方法較為繁瑣,缺乏靈活性,且當(dāng)需要在運行中的物聯(lián)網(wǎng)中間件中加載組件時,需要停止物聯(lián)網(wǎng)中間件的運行,重新編譯待加載的組件與物聯(lián)網(wǎng)中間件的組合代碼,導(dǎo)致物聯(lián)網(wǎng)中間件的運行效率較低的技術(shù)問題。參考圖6,其示出了本申請?zhí)峁┑囊环N組件加載系統(tǒng)實施例二的結(jié)構(gòu)示意圖,其中,所述資源倉庫創(chuàng)建單元501包括第一創(chuàng)建子單元511、第二創(chuàng)建子單元512和第三創(chuàng)建子單元513,其中所述第一創(chuàng)建子單元511,用于將所述待加載組件置入預(yù)設(shè)的第一文件夾內(nèi),并在所述第一文件夾內(nèi)生成與所述待加載組件相對應(yīng)的組件信息文件。其中,優(yōu)選地,所述第一創(chuàng)建子單元511,具體用于采用DOS命令進入預(yù)設(shè)的第一文件夾的目錄,輸入命令java-jar bindex. jar所述第一文件夾的名稱/所述待加載組件的名稱,并在所述第一文件夾內(nèi)生成與所述待加載組件相對應(yīng)的組件信息文件。例如創(chuàng)建第一文件夾plugins文件夾,采用DOC命令進入plugins文件夾所在目錄,輸入命令java-jar bindex. jar plugins/*, jar,所述*. jar為待加載組件的名稱;在plugins文件夾下生成*. jar對應(yīng)的待加載組件的組件信息文件repository, xml。所述第二創(chuàng)建子單元512,用于依據(jù)所述第一文件夾內(nèi)的待加載組件,生成與所述第一文件夾相關(guān)聯(lián)的資源倉庫描述文件。其中,所述資源倉庫只包括一個資源倉庫描述文件,其記載有所述資源倉庫中所有待加載組件的組件地址信息即URL信息,該資源倉庫描述文件作為元信息描述文件與置有待加載組件的第一文件夾呈平等對應(yīng)關(guān)系,即在磁盤存儲中處于同一級文件夾內(nèi)。所述第三創(chuàng)建子單元513,用于在預(yù)設(shè)第二文件夾下創(chuàng)建第三文件夾,并將所述第一文件夾及與所述資源倉庫描述文件置于所述第三文件夾內(nèi)。其中,所述第二文件夾作為指定文件夾,相當(dāng)于所述資源倉庫,為其命名,例如applications,而所述第三文件夾的命名可以為TEST,上述將所述第一文件夾及所述資源倉庫描述文件置于所述第三文件夾內(nèi)具體為將所述創(chuàng)建的plugins文件夾拷貝至所述TEST文件夾內(nèi),而所述資源倉庫描述文件在所述TEST文件夾內(nèi)生成。由上述方案可知,本申請系統(tǒng)實施例二采用bindex. jar工具實現(xiàn)待加載組件寫入所述第一文件夾內(nèi),并創(chuàng)建組件信息文件,相對于現(xiàn)有技術(shù)中手工編寫待加載組件的XML文件,從而實現(xiàn)資源倉庫的創(chuàng)建,節(jié)省了大量系統(tǒng)資源消耗及成本。參考圖7,其示出了本申請?zhí)峁┑囊环N組件加載系統(tǒng)實施例三的結(jié)構(gòu)示意圖,優(yōu)選地,所述描述文件獲取單元502包括第一獲取子單元521 ;所述第一獲取子單元521,用于在OSGi命令控制臺上輸入獲取命令=IoadApp+所述資源倉庫中待加載組件所在文件夾的上級文件夾名稱,執(zhí)行所述獲取命令獲取所述資源倉庫描述文件。
·
其中,其中,所述IoadApp命令為OSGi命令控制臺的一種命令方式。例如在OSGi命令控制臺上輸入=IoadApp (命令方式)+TEST (本申請方法實施例一中所述資源倉庫中待加載組件所在文件夾的上級文件夾名稱,即本申請方法實施例二中第二文件夾名稱)。需要說明的是,在所述第一獲取子單元521輸入所述獲取命令之后,執(zhí)行所述獲取命令,即運行所述獲取命令,得到待加載組件所在文件夾的上級文件夾內(nèi)的XML文件格式的文件,即與待加載組件所在文件夾平行設(shè)置的資源倉庫描述文件。參考圖8,其示出了本申請?zhí)峁┑囊环N組件加載方法實施例三的另一結(jié)構(gòu)示意圖,優(yōu)選地,所述描述文件獲取單元502包括第二獲取子單元522 ;所述第二獲取子單元522,用于在所述資源倉庫中創(chuàng)建加載配置文件,將所述資源倉庫中待加載組件的名稱寫入所述加載配置文件中,并執(zhí)行所述加載配置文件獲取所述資源倉庫描述文件;其中若所述資源倉庫中包括多個待加載組件時,所述加載配置文件中每個待加載組件的組件名稱字符串居左,且占據(jù)一行。其中,所述加載配置文件在所述資源倉庫中所述待加載組件所在目錄的頂級文件夾內(nèi)創(chuàng)建。例如,在本申請方法實施例二中的第二文件夾applications中創(chuàng)建加載配置文件 default, ini。需要說明的是,若所述資源倉庫中待加載組件為單個時,可以直接將該待加載組件的組件名稱寫入所述加載配置文件,而所述資源倉庫中包括多個待加載組件時,即在需要批量加載組件時,可以通過如圖7所示的系統(tǒng)實現(xiàn),即在所述創(chuàng)建的加載配置文件中寫入待加載組件的組件名稱,而多個待加載組件各自對應(yīng)的組件名稱在寫入所述加載配置文件時,需要保證多個組件名稱字符串居左,且,每個組件名稱字符串各自占據(jù)一行。由所述第二獲取子單元522執(zhí)行所述加載配置文件,即運行所述加載配置文件得到所述資源倉庫描述文件,即所述第三文件夾內(nèi)的資源倉庫描述文件。由上述方案可知,本申請?zhí)峁┑囊环N組件加載系統(tǒng)實施例三,通過在OSGi命令控制臺上輸入IoadApp+資源倉庫中待加載組件所在文件夾的上級文件夾名稱的獲取命令,獲取資源倉庫描述文件進而獲取待加載組件的組件信息文件,實現(xiàn)將單一待加載組件加載至物聯(lián)網(wǎng)中間件中;或通過在資源倉庫中創(chuàng)建加載配置文件,在加載配置文件中寫入待加載組件的組件名稱字符串,執(zhí)行該加載配置文件獲取資源倉庫描述文件進而獲取待加載組件的組件信息文件,實現(xiàn)單一或多個待加載組件加載至物聯(lián)網(wǎng)中間件中。本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
以上對本發(fā)明所提供的一種組件加載方法及系統(tǒng)進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體 實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。
權(quán)利要求
1.一種組件加載方法,其特征在于,在執(zhí)行所述方法前,創(chuàng)建資源倉庫,所述資源倉庫包括至少一個待加載組件、與所述待加載組件相對應(yīng)的組件信息文件和資源倉庫描述文件; 所述方法包括 獲取所述資源倉庫中的資源倉庫描述文件; 依據(jù)所述資源倉庫描述文件中的待加載組件地址信息,獲取待加載組件的組件信息文件; 若獲取到的組件信息文件中的組件名稱、組件版本和組件內(nèi)容同時滿足物聯(lián)網(wǎng)中間件對組件的加載請求,將與所述組件名稱相對應(yīng)的待加載組件在物聯(lián)網(wǎng)中間件中啟動。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述創(chuàng)建資源倉庫包括 將所述待加載組件置入預(yù)設(shè)的第一文件夾內(nèi),并在所述第一文件夾內(nèi)生成與所述待加載組件相對應(yīng)的組件信息文件; 依據(jù)所述第一文件夾內(nèi)的待加載組件,生成與所述第一文件夾相關(guān)聯(lián)的資源倉庫描述文件; 在預(yù)設(shè)第二文件夾下創(chuàng)建第三文件夾,并將所述第一文件夾及與所述資源倉庫描述文件置于所述第三文件夾內(nèi)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所述待加載組件置入預(yù)設(shè)的第一文件夾內(nèi)包括 采用DOS命令進入預(yù)設(shè)的第一文件夾的目錄,輸入命令java-jar bindex. jar所述第一文件夾的名稱/所述待加載組件的名稱。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述獲取所述資源倉庫中的資源倉庫描述文件包括 在OSGi命令控制臺上輸入獲取命令loadApp+所述資源倉庫中待加載組件所在文件夾的上級文件夾名稱; 執(zhí)行所述獲取命令獲取所述資源倉庫描述文件。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述獲取所述資源倉庫中的資源倉庫描述文件包括 在所述資源倉庫中創(chuàng)建加載配置文件; 將所述資源倉庫中待加載組件的名稱寫入所述加載配置文件中; 執(zhí)行所述加載配置文件獲取所述資源倉庫描述文件; 其中 若所述資源倉庫中包括多個待加載組件時,所述加載配置文件中每個待加載組件的組件名稱字符串居左,且占據(jù)一行。
6.一種組件加載系統(tǒng),其特征在于,包括資源倉庫創(chuàng)建單元、描述文件獲取單元、信息文件獲取單元、組件加載啟動單元,其中 所述資源倉庫創(chuàng)建單元,用于創(chuàng)建資源倉庫,所述資源倉庫包括至少一個待加載組件和與所述待加載組件相對應(yīng)的組件信息文件; 所述描述文件獲取單元,用于獲取所述資源倉庫中的資源倉庫描述文件; 所述信息文件獲取單元,用于依據(jù)所述資源倉庫描述文件中的待加載組件地址信息,獲取待加載組件的組件信息文件; 所述組件加載啟動單元,用于若獲取的組件信息文件中的組件名稱、組件版本和組件內(nèi)容同時滿足物聯(lián)網(wǎng)中間件對組件的加載請求,將與所述組件名稱相對應(yīng)的待加載組件在物聯(lián)網(wǎng)中間件中啟動。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述資源倉庫創(chuàng)建單元包括第一創(chuàng)建子單元、第二創(chuàng)建子單元和第三創(chuàng)建子單元,其中 所述第一創(chuàng)建子單元,用于將所述待加載組件置入預(yù)設(shè)的第一文件夾內(nèi),并在所述第一文件夾內(nèi)生成與所述待加載組件相對應(yīng)的組件信息文件; 所述第二創(chuàng)建子單元,用于依據(jù)所述第一文件夾內(nèi)的待加載組件,生成與所述第一文件夾相關(guān)聯(lián)的資源倉庫描述文件; 所述第三創(chuàng)建子單元,用于在預(yù)設(shè)第二文件夾下創(chuàng)建第三文件夾,并將所述第一文件 夾及與所述資源倉庫描述文件置于所述第三文件夾內(nèi)。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于 所述第一創(chuàng)建子單元,具體用于采用DOS命令進入預(yù)設(shè)的第一文件夾的目錄,輸入命令java-jar bindex. jar所述第一文件夾的名稱/所述待加載組件的名稱,并在所述第一文件夾內(nèi)生成與所述待加載組件相對應(yīng)的組件信息文件。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述描述文件獲取單元包括第一獲取子單元; 所述第一獲取子單元,用于在OSGi命令控制臺上輸入獲取命令=IoadApp+所述資源倉庫中待加載組件所在文件夾的上級文件夾名稱,執(zhí)行所述獲取命令獲取所述資源倉庫描述文件。
10.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述描述文件獲取單元包括第二獲取子單元; 所述第二獲取子單元,用于在所述資源倉庫中創(chuàng)建加載配置文件,將所述資源倉庫中待加載組件的名稱寫入所述加載配置文件中,并執(zhí)行所述加載配置文件獲取所述資源倉庫描述文件; 其中 若所述資源倉庫中包括多個待加載組件時,所述加載配置文件中每個待加載組件的組件名稱字符串居左,且占據(jù)一行。
全文摘要
本發(fā)明提供了一種組件加載方法及系統(tǒng),應(yīng)用于預(yù)先創(chuàng)建的資源倉庫,所述資源倉庫包括至少一個待加載組件、與所述待加載組件相對應(yīng)的組件信息文件和資源倉庫描述文件;所述方法包括獲取所述資源倉庫中的資源倉庫描述文件;依據(jù)所述資源倉庫描述文件中的待加載組件地址信息,獲取待加載組件的組件信息文件;若獲取到的組件信息文件中的組件名稱、組件版本和組件內(nèi)容同時滿足物聯(lián)網(wǎng)中間件對組件的加載請求,將與所述組件名稱相對應(yīng)的待加載組件在物聯(lián)網(wǎng)中間件中啟動。
文檔編號G06F9/445GK102722396SQ20121019188
公開日2012年10月10日 申請日期2012年6月11日 優(yōu)先權(quán)日2012年6月11日
發(fā)明者冷靜, 姚建萍, 張輝, 王蒴, 葛梅 申請人:山東中創(chuàng)軟件商用中間件股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1