專利名稱:組件擴(kuò)展方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件開發(fā)領(lǐng)域,尤其涉及一種組件擴(kuò)展方法和裝置。
背景技術(shù):
在面向組件的軟件系統(tǒng)開發(fā)過程中,不同的組件一般都是由不同的開發(fā)團(tuán)隊(duì)獨(dú)立開發(fā)后打包交付的,開發(fā)時(shí)一個(gè)團(tuán)隊(duì)不能直接修改其他團(tuán)隊(duì)負(fù)責(zé)開發(fā)的組件中的內(nèi)容。然而在各個(gè)組件共同組成一個(gè)軟件系統(tǒng)的過程中,各組件之間存在相互依賴的關(guān)系,一些組件需要依賴于其他組件并且必須通過擴(kuò)展其所依賴組件的配置文件才能實(shí)現(xiàn)該組件的功能,如修改運(yùn)行日志級(jí)別、注入自己的擴(kuò)展信息等,因此需要提供一種機(jī)制在軟件系統(tǒng)運(yùn)行時(shí)進(jìn)行組件之間的擴(kuò)展。其中,上述依賴于其他組件的組件稱為上層組件,被其他組件依賴的組件稱為底層組件。在現(xiàn)有技術(shù)中有一種實(shí)現(xiàn)上述組件擴(kuò)展的方法,該方法是通過修改底層組件的配置文件來增加上層組件的擴(kuò)展內(nèi)容。具體的,上層組件的開發(fā)人員在軟件系統(tǒng)的安裝程序中加入一個(gè)用于組件擴(kuò)展的腳本,該腳本用于在組件全部安裝后修改并重寫底層組件的配置文件,即在該底層組件的配置文件中加入上層組件的擴(kuò)展內(nèi)容,從而實(shí)現(xiàn)上層組件在底層組件中的擴(kuò)展。但是,當(dāng)?shù)讓咏M件發(fā)布了新版本時(shí),相應(yīng)的該底層組件的配置文件也進(jìn)行了更新,得到更新后的配置文件;此時(shí)若上層組件仍保留原版本,那么底層組件更新后的配置文件還需包含原上層組件的擴(kuò)展內(nèi)容。所以在軟件系統(tǒng)升級(jí)底層組件并保留上層組件原有版本的時(shí)候,底層組件更新后的配置文件既要包含原有的上層組件擴(kuò)展內(nèi)容,又要包含新版本底層組件的配置文件,為了將兩者合并,需要額外開發(fā)升級(jí)腳本以實(shí)現(xiàn)底層組件的配置文件的升級(jí)。并且,當(dāng)?shù)讓咏M件有多個(gè)不同版本時(shí),額外開發(fā)升級(jí)腳本的工作量便會(huì)很大。為了克服組件多版本升級(jí)時(shí)需要額外開發(fā)大量升級(jí)腳本的問題,現(xiàn)有技術(shù)中提供了另一種實(shí)現(xiàn)組件擴(kuò)展的方法,該方法是在底層組件的配置文件中嵌套包含若干個(gè)上層組件擴(kuò)展內(nèi)容的子配置文件,在實(shí)現(xiàn)上層組件的擴(kuò)展時(shí)直接將對(duì)應(yīng)的子配置文件拷貝到底層組件的配置文件的目錄中。該方法具體為,預(yù)定義每個(gè)上層組件唯一對(duì)應(yīng)的子配置文件名, 該子配置文件按一定規(guī)則存放在底層組件的配置文件中。同時(shí)每個(gè)上層組件分別制作各自的包含擴(kuò)展內(nèi)容的子配置文件,在組件擴(kuò)展的過程中只需將上層組件的子配置文件按一定規(guī)則拷貝到底層組件的配置文件所在的目錄中即可。所以在實(shí)現(xiàn)組件擴(kuò)展和組件升級(jí)時(shí), 該種方法只需在軟件系統(tǒng)的安裝程序中增加簡單的拷貝子配置文件的腳本,而不需要針對(duì)每個(gè)版本額外開發(fā)大量的升級(jí)腳本,解決了額外開發(fā)升級(jí)腳本的問題。但是,由于上層組件本身必須通過擴(kuò)展底層組件的配置文件并依賴底層組件來實(shí)現(xiàn)自己的功能;同時(shí)底層組件必須預(yù)先知道有哪些上層組件需要擴(kuò)展本組件的配置文件, 才能預(yù)定義相應(yīng)的子配置文件名并以免沖突,從而導(dǎo)致上層組件與底層組件之間的雙向依賴,增加了耦合。當(dāng)有新的上層組件需要依賴于此底層組件時(shí),該底層組件的配置文件也要進(jìn)行增加子配置文件的修改,帶來上層組件和底層組件之間關(guān)聯(lián)修改的問題。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種組件擴(kuò)展方法和裝置,既能避免底層組件升級(jí)時(shí)額外的升級(jí)腳本開發(fā),又能消除上層組件和底層組件的耦合和關(guān)聯(lián)修改。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案一種組件擴(kuò)展方法,包括獲取軟件系統(tǒng)啟動(dòng)過程中加載的各個(gè)組件的描述文件;解析所述各個(gè)組件的描述文件,獲取所述各個(gè)組件配置文件的擴(kuò)展標(biāo)識(shí)信息;當(dāng)所述組件為底層組件時(shí),所述擴(kuò)展標(biāo)識(shí)信息為標(biāo)識(shí)底層組件配置文件為配置文件擴(kuò)展的基類的信息,包含基類標(biāo)識(shí);當(dāng)所述組件為上層組件時(shí),所述擴(kuò)展標(biāo)識(shí)信息為標(biāo)識(shí)上層組件配置文件與底層組件配置文件的擴(kuò)展關(guān)系,包含基類標(biāo)識(shí);根據(jù)所述擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),將屬于同一基類的配置文件加載到內(nèi)存中并合并,得到擴(kuò)展后的配置文件。一種組件擴(kuò)展裝置,包括第一獲取單元,用于獲取軟件系統(tǒng)啟動(dòng)過程中加載的各個(gè)組件的描述文件;第二獲取單元,用于解析所述各個(gè)組件的描述文件,獲取所述各個(gè)組件配置文件的擴(kuò)展標(biāo)識(shí)信息;當(dāng)所述組件為底層組件時(shí),所述擴(kuò)展標(biāo)識(shí)信息為標(biāo)識(shí)底層組件配置文件為配置文件擴(kuò)展的基類的信息,包含基類標(biāo)識(shí);當(dāng)所述組件為上層組件時(shí),所述擴(kuò)展標(biāo)識(shí)信息為標(biāo)識(shí)上層組件配置文件與底層組件配置文件的擴(kuò)展關(guān)系,包含基類標(biāo)識(shí);合并操作單元,用于根據(jù)所述擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),將屬于同一基類的配置文件加載到內(nèi)存中并合并,得到擴(kuò)展后的配置文件。本發(fā)明實(shí)施例提供的組件擴(kuò)展方法和裝置,采用預(yù)定義擴(kuò)展標(biāo)識(shí)信息標(biāo)識(shí)同一基類的配置文件,并根據(jù)該擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),將屬于同一基類的配置文件加載到內(nèi)存中并合并,得到擴(kuò)展后的配置文件,從而實(shí)現(xiàn)組件擴(kuò)展。因?yàn)閿U(kuò)展后的配置文件是在內(nèi)存中合并生成的內(nèi)存對(duì)象,并不是修改底層組件的配置文件形成的,所以當(dāng)?shù)讓咏M件版本更新時(shí),新版本底層組件的配置文件不用為了包含上層組件的擴(kuò)展內(nèi)容而額外開發(fā)升級(jí)腳本。并且,因?yàn)橹灰哂型换悩?biāo)識(shí)的配置文件均會(huì)加載到內(nèi)存中合并,所以底層組件不需要知道有哪些上層組件要在本組件中擴(kuò)展。當(dāng)有新的上層組件需要依賴于此底層組件時(shí),底層組件無需改動(dòng),只要在上層組件的描述文件中包含此底層組件的基類標(biāo)識(shí),便可實(shí)現(xiàn)擴(kuò)展,消除了底層組件對(duì)上層組件的依賴,避免了耦合和關(guān)聯(lián)修改的問題。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明方法實(shí)施例中的方法流程圖;圖2為本發(fā)明裝置實(shí)施例中的一種裝置組成示意圖3為本發(fā)明裝置實(shí)施例中的另一種裝置組成示意圖;圖4為本發(fā)明裝置實(shí)施例中的另一種裝置組成示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明的實(shí)施例提供一種組件擴(kuò)展方法,如圖1所示,包括101、獲取軟件系統(tǒng)啟動(dòng)過程中加載的各個(gè)組件的描述文件。其中,各個(gè)組件是由不同的團(tuán)隊(duì)負(fù)責(zé)開發(fā)并打包交付的,一般在軟件系統(tǒng)安裝時(shí)需要進(jìn)行組件擴(kuò)展才能保證各組件實(shí)現(xiàn)自己的功能。需要說明的是,為了實(shí)現(xiàn)組件擴(kuò)展,各組件的開發(fā)人員在本組件的描述文件中預(yù)先定義了擴(kuò)展標(biāo)識(shí)信息。在面向?qū)ο蟮木幊陶Z言 (如C++)中通常會(huì)用到定義類和類的繼承,本發(fā)明實(shí)施例參考這種機(jī)制采用類似的方式定義被擴(kuò)展的基類和基類的擴(kuò)展。如果軟件系統(tǒng)中沒有類似的描述文件,則需要新增描述文件,如果軟件系統(tǒng)中已經(jīng)有類似的描述文件,則可以繼續(xù)使用已有的描述文件。102、解析所述各個(gè)組件的描述文件,獲取所述各個(gè)組件配置文件的擴(kuò)展標(biāo)識(shí)信息;當(dāng)所述組件為底層組件時(shí),所述擴(kuò)展標(biāo)識(shí)信息為標(biāo)識(shí)底層組件配置文件為配置文件擴(kuò)展的基類的信息,包含基類標(biāo)識(shí);當(dāng)所述組件為上層組件時(shí),所述擴(kuò)展標(biāo)識(shí)信息為標(biāo)識(shí)上層組件配置文件與底層組件配置文件的擴(kuò)展關(guān)系,包含基類標(biāo)識(shí)。其中,上層組件和底層組件的擴(kuò)展標(biāo)識(shí)信息是不一樣的,因?yàn)榈讓咏M件是被其他組件擴(kuò)展的組件,所以底層組件的描述文件中預(yù)定義的擴(kuò)展標(biāo)識(shí)信息為定義一個(gè)基類,為被其他組件擴(kuò)展的配置文件定義所述擴(kuò)展標(biāo)識(shí)信息。具體的,底層組件中包含多個(gè)配置文件,將其中可能會(huì)被其他組件擴(kuò)展的配置文件采用全局唯一的名稱定義出來,這個(gè)名稱就是基類標(biāo)識(shí)。每個(gè)被擴(kuò)展的配置文件都可以定義一個(gè)基類標(biāo)識(shí),以便下一步識(shí)別基類標(biāo)識(shí)后加載對(duì)應(yīng)的配置文件。例如,在描述文件中預(yù)定義的擴(kuò)展標(biāo)識(shí)信息為“define file_ interface AAA χ. conf”,則表示底層組件中的配置文件χ. conf可以被其他組件擴(kuò)展,將該底層組件中的配置文件χ. conf定義為一個(gè)基類,并以AAA作為基類標(biāo)識(shí)。需要說明的是這里的基類標(biāo)識(shí)可以是數(shù)字和/或字符,配置文件的文件名不受限制。其中,由于上層組件需要在其他組件中得到擴(kuò)展,所以上層組件的描述文件中預(yù)定義的擴(kuò)展標(biāo)識(shí)信息為擴(kuò)展一個(gè)基類,為所述上層組件的配置文件定義所述擴(kuò)展標(biāo)識(shí)信息。具體的,上層組件要在哪個(gè)底層組件的配置文件基礎(chǔ)之上擴(kuò)展,便在預(yù)定義的擴(kuò)展標(biāo)識(shí)信息中包含對(duì)應(yīng)的基類標(biāo)識(shí),此時(shí)的擴(kuò)展標(biāo)識(shí)信息為表示上層組件的配置文件與基類的擴(kuò)展關(guān)系。例如,在描述文件中預(yù)定義的擴(kuò)展標(biāo)識(shí)信息為“extend file_interface AAA x_ extl. conf",則表示上層組件的配置文件x_extl. conf要在基類標(biāo)識(shí)為AAA的底層組件的配置文件中擴(kuò)展,并且該上層組件要依賴于被擴(kuò)展的底層組件才能實(shí)現(xiàn)自己的功能。需要說明的是,該擴(kuò)展標(biāo)識(shí)信息表示的是一種擴(kuò)展關(guān)系,其中的基類標(biāo)識(shí)AAA是底層組件已經(jīng)定義出來的全局唯一的名稱,可以是數(shù)字和/或字符,配置文件x_ext 1. conf的文件名不受限制。
103、根據(jù)所述擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),將屬于同一基類的配置文件加載到內(nèi)存中并合并,得到擴(kuò)展后的配置文件。其中,根據(jù)所述擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),獲取具有相同基類標(biāo)識(shí)的底層組件配置文件和上層組件配置文件。例如,根據(jù)基類標(biāo)識(shí)AAA獲取所有具有AAA基類標(biāo)識(shí)的配置文件。若擴(kuò)展標(biāo)識(shí)信息中為定義基類標(biāo)識(shí)的信息則加載底層組件的配置文件,若擴(kuò)展標(biāo)識(shí)信息中為表示基類標(biāo)識(shí)的擴(kuò)展信息則加載上層組件的配置文件。將所述底層組件配置文件和上層組件配置文件加載到內(nèi)存中,然后將所述底層組件配置文件的內(nèi)容和上層組件配置文件的內(nèi)容進(jìn)行合并。合并的過程為取底層組件配置文件和上層組件配置文件內(nèi)容的合集,生成一個(gè)內(nèi)存對(duì)象的過程,具體為將兩者不沖突的部分均包含到內(nèi)存對(duì)象中,若兩者有沖突的內(nèi)容則采用上層組件配置文件的內(nèi)容,并將上層組件配置文件的內(nèi)容包含到該內(nèi)存對(duì)象中,得到擴(kuò)展后的配置文件。軟件系統(tǒng)安裝和運(yùn)行時(shí),代碼不能直接訪問底層組件的配置文件,而是訪問內(nèi)存中經(jīng)合并得到的內(nèi)存對(duì)象。本發(fā)明實(shí)施例提供的組件擴(kuò)展方法,采用預(yù)定義擴(kuò)展標(biāo)識(shí)信息標(biāo)識(shí)同一基類的配置文件,并根據(jù)該擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),將屬于同一基類的配置文件加載到內(nèi)存中并合并,得到擴(kuò)展后的配置文件,從而實(shí)現(xiàn)組件擴(kuò)展。因?yàn)閿U(kuò)展后的配置文件是在內(nèi)存中合并生成的內(nèi)存對(duì)象,并不是直接修改底層組件的配置文件形成的,所以當(dāng)?shù)讓咏M件版本更新時(shí),新版本底層組件的配置文件不用為了包含上層組件的擴(kuò)展內(nèi)容而額外開發(fā)升級(jí)腳本。并且,因?yàn)橹灰哂型换悩?biāo)識(shí)的配置文件均會(huì)加載到內(nèi)存中合并,所以底層組件不需要知道有哪些上層組件要在本組件中擴(kuò)展。當(dāng)有新的上層組件需要依賴于此底層組件時(shí),底層組件無需改動(dòng),只要在上層組件的描述文件中包含此底層組件的基類標(biāo)識(shí),便可實(shí)現(xiàn)擴(kuò)展,消除了底層組件對(duì)上層組件的依賴,避免了耦合和關(guān)聯(lián)修改的問題。本發(fā)明的實(shí)施例還提供一種組件擴(kuò)展裝置,如圖2所示,包括第一獲取單元21、 第二獲取單元22以及合并操作單元23。第一獲取單元21,用于獲取軟件系統(tǒng)啟動(dòng)過程中加載的各個(gè)組件的描述文件。需要說明的是,如果軟件系統(tǒng)中沒有類似的描述文件,則需要新增描述文件,如果軟件系統(tǒng)中已經(jīng)有類似的描述文件,則可以繼續(xù)使用已有的描述文件。第二獲取單元22,用于解析所述各個(gè)組件的描述文件,獲取所述各個(gè)組件配置文件的擴(kuò)展標(biāo)識(shí)信息;當(dāng)所述組件為底層組件時(shí),所述擴(kuò)展標(biāo)識(shí)信息為標(biāo)識(shí)底層組件配置文件為配置文件擴(kuò)展的基類的信息,包含基類標(biāo)識(shí);當(dāng)所述組件為上層組件時(shí),所述擴(kuò)展標(biāo)識(shí)信息為標(biāo)識(shí)上層組件配置文件與底層組件配置文件的擴(kuò)展關(guān)系,包含基類標(biāo)識(shí)。其中,上層組件和底層組件的擴(kuò)展標(biāo)識(shí)信息是不一樣的,因?yàn)榈讓咏M件是被其他組件擴(kuò)展的組件,所以底層組件的描述文件中預(yù)定義的擴(kuò)展標(biāo)識(shí)信息為定義一個(gè)基類,為被其他組件擴(kuò)展的配置文件定義所述擴(kuò)展標(biāo)識(shí)信息。合并操作單元23,用于根據(jù)所述擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),將屬于同一基類的配置文件加載到內(nèi)存中并合并,得到擴(kuò)展后的配置文件。進(jìn)一步的,如圖3所示,所述組件擴(kuò)展裝置還包括第一定義單元M和第二定義單元25。需要說明的是,各個(gè)組件是由不同的團(tuán)隊(duì)負(fù)責(zé)開發(fā)并打包交付的,一般在軟件系統(tǒng)安裝時(shí)需要進(jìn)行組件擴(kuò)展才能保證各組件實(shí)現(xiàn)自己的功能。為了實(shí)現(xiàn)組件擴(kuò)展,各組件的開發(fā)人員在本組件的描述文件中預(yù)先定義了擴(kuò)展標(biāo)識(shí)信息。在面向?qū)ο蟮木幊陶Z言(如 C++)中通常會(huì)用到定義類和類的繼承,本發(fā)明實(shí)施例參考這種機(jī)制采用類似的方式定義被擴(kuò)展的基類和基類的擴(kuò)展。第一定義單元M,用于在獲取軟件系統(tǒng)啟動(dòng)過程中加載的各個(gè)組件的描述文件之前,在底層組件的描述文件中,為被其他組件擴(kuò)展的配置文件定義所述擴(kuò)展標(biāo)識(shí)信息。其中,底層組件中包含多個(gè)配置文件,將其中可能會(huì)被其他組件擴(kuò)展的配置文件采用全局唯一的名稱定義出來,這個(gè)名稱就是基類標(biāo)識(shí)。每個(gè)被擴(kuò)展的配置文件都可以定義一個(gè)基類標(biāo)識(shí),以便下一步識(shí)別基類標(biāo)識(shí)后加載對(duì)應(yīng)的配置文件。例如,在描述文件中預(yù)定義的擴(kuò)展標(biāo)識(shí)信息為“define file_interface AAA χ. conf ”,則表示底層組件中的配置文件χ. conf 可以被其他組件擴(kuò)展,將該底層組件中的配置文件χ. conf定義為一個(gè)基類,并以AAA作為基類標(biāo)識(shí)。需要說明的是這里的基類標(biāo)識(shí)可以是數(shù)字和/或字符,配置文件的文件名不受限制。第二定義單元25,用于在獲取軟件系統(tǒng)啟動(dòng)過程中加載的各個(gè)組件的描述文件之前,在上層組件的描述文件中,為所述上層組件的配置文件定義所述擴(kuò)展標(biāo)識(shí)信息。其中, 由于上層組件需要在其他組件中得到擴(kuò)展,所以上層組件的描述文件中預(yù)定義的擴(kuò)展標(biāo)識(shí)信息為擴(kuò)展一個(gè)基類,為所述上層組件的配置文件定義所述擴(kuò)展標(biāo)識(shí)信息。具體的,上層組件要在哪個(gè)底層組件的配置文件的基礎(chǔ)上擴(kuò)展,便在預(yù)定義的擴(kuò)展標(biāo)識(shí)信息中包含對(duì)應(yīng)的基類標(biāo)識(shí),此時(shí)的擴(kuò)展標(biāo)識(shí)信息為表示上層組件的配置文件與基類的擴(kuò)展關(guān)系。例如,在描述文件中預(yù)定義的擴(kuò)展標(biāo)識(shí)信息為“extend f ile_interface AAA x_extl. conf ”,則表示上層組件的配置文件x_extl. conf要在基類標(biāo)識(shí)為AAA的底層組件的配置文件中擴(kuò)展,并且該上層組件要依賴于被擴(kuò)展的底層組件才能實(shí)現(xiàn)自己的功能。需要說明的是,該擴(kuò)展標(biāo)識(shí)信息表示的是一種擴(kuò)展關(guān)系,其中的基類標(biāo)識(shí)AAA是底層組件已經(jīng)定義出來的全局唯一的名稱,可以是數(shù)字和/或字符,配置文件x_extl. conf的文件名不受限制。進(jìn)一步的,如圖4所示,所述合并操作單元23,包括獲取模塊231,用于根據(jù)所述擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),獲取具有相同基類標(biāo)識(shí)的底層組件配置文件和上層組件配置文件。例如,根據(jù)基類標(biāo)識(shí)AAA獲取所有具有AAA基類標(biāo)識(shí)的配置文件。加載模塊232,用于將所述底層組件配置文件和上層組件配置文件加載到內(nèi)存中。 其中,若擴(kuò)展標(biāo)識(shí)信息中為定義基類標(biāo)識(shí)的信息則加載底層組件的配置文件,若擴(kuò)展標(biāo)識(shí)信息中為表示基類標(biāo)識(shí)的擴(kuò)展信息則加載上層組件的配置文件。合并模塊233,用于將所述底層組件配置文件的內(nèi)容和上層組件配置文件的內(nèi)容進(jìn)行合并,生成一個(gè)內(nèi)存對(duì)象,得到擴(kuò)展后的配置文件。其中,合并的過程為取底層組件配置文件和上層組件配置文件內(nèi)容的合集,生成一個(gè)內(nèi)存對(duì)象的過程,具體為將兩者不沖突的部分均包含到內(nèi)存對(duì)象中,若兩者有沖突的內(nèi)容則采用上層組件配置文件的內(nèi)容,并將該上層組件配置文件的內(nèi)容包含到該內(nèi)存對(duì)象中,得到擴(kuò)展后的配置文件。軟件系統(tǒng)安裝和運(yùn)行時(shí),代碼不能直接訪問底層組件的配置文件,而是訪問內(nèi)存中經(jīng)合并得到的內(nèi)存對(duì)象。本發(fā)明實(shí)施例提供的組件擴(kuò)展裝置,采用預(yù)定義擴(kuò)展標(biāo)識(shí)信息標(biāo)識(shí)同一基類的配
7置文件,并根據(jù)該擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),將屬于同一基類的配置文件加載到內(nèi)存中并合并,得到擴(kuò)展后的配置文件,從而實(shí)現(xiàn)組件擴(kuò)展。因?yàn)閿U(kuò)展后的配置文件是在內(nèi)存中合并生成的內(nèi)存對(duì)象,并不是直接修改底層組件的配置文件形成的,所以當(dāng)?shù)讓咏M件版本更新時(shí),新版本底層組件的配置文件不用為了包含上層組件的擴(kuò)展內(nèi)容而額外開發(fā)升級(jí)腳本。并且,因?yàn)橹灰哂型换悩?biāo)識(shí)的配置文件均會(huì)加載到內(nèi)存中合并,所以底層組件不需要知道有哪些上層組件要在本組件中擴(kuò)展。當(dāng)有新的上層組件需要依賴于此底層組件時(shí),底層組件無需改動(dòng),只要在上層組件的描述文件中包含此底層組件的基類標(biāo)識(shí),便可實(shí)現(xiàn)擴(kuò)展,消除了底層組件對(duì)上層組件的依賴,避免了耦合和關(guān)聯(lián)修改的問題。通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤,硬盤或光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī), 服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種組件擴(kuò)展方法,其特征在于,包括獲取軟件系統(tǒng)啟動(dòng)過程中加載的各個(gè)組件的描述文件;解析所述各個(gè)組件的描述文件,獲取所述各個(gè)組件配置文件的擴(kuò)展標(biāo)識(shí)信息;當(dāng)所述組件為底層組件時(shí),所述擴(kuò)展標(biāo)識(shí)信息為標(biāo)識(shí)底層組件配置文件為配置文件擴(kuò)展的基類的信息,包含基類標(biāo)識(shí);當(dāng)所述組件為上層組件時(shí),所述擴(kuò)展標(biāo)識(shí)信息為標(biāo)識(shí)上層組件配置文件與底層組件配置文件的擴(kuò)展關(guān)系,包含基類標(biāo)識(shí);根據(jù)所述擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),將屬于同一基類的配置文件加載到內(nèi)存中并合并,得到擴(kuò)展后的配置文件。
2.根據(jù)權(quán)利要求1所述的組件擴(kuò)展方法,其特征在于,在獲取軟件系統(tǒng)啟動(dòng)過程中加載的各個(gè)組件的描述文件之前,還包括在底層組件的描述文件中,為被其他組件擴(kuò)展的配置文件定義所述擴(kuò)展標(biāo)識(shí)信息; 在上層組件的描述文件中,為所述上層組件的配置文件定義所述擴(kuò)展標(biāo)識(shí)信息。
3.根據(jù)權(quán)利要求2所述的組件擴(kuò)展方法,其特征在于,所述根據(jù)所述擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),將屬于同一基類的配置文件加載到內(nèi)存中并合并,得到擴(kuò)展后的配置文件,包括根據(jù)所述擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),獲取具有相同基類標(biāo)識(shí)的底層組件配置文件和上層組件配置文件;將所述底層組件配置文件和上層組件配置文件加載到內(nèi)存中; 將所述底層組件配置文件的內(nèi)容和上層組件配置文件的內(nèi)容進(jìn)行合并,生成一個(gè)內(nèi)存對(duì)象,得到擴(kuò)展后的配置文件。
4.一種組件擴(kuò)展裝置,其特征在于,包括第一獲取單元,用于獲取軟件系統(tǒng)啟動(dòng)過程中加載的各個(gè)組件的描述文件; 第二獲取單元,用于解析所述各個(gè)組件的描述文件,獲取所述各個(gè)組件配置文件的擴(kuò)展標(biāo)識(shí)信息;當(dāng)所述組件為底層組件時(shí),所述擴(kuò)展標(biāo)識(shí)信息為標(biāo)識(shí)底層組件配置文件為配置文件擴(kuò)展的基類的信息,包含基類標(biāo)識(shí);當(dāng)所述組件為上層組件時(shí),所述擴(kuò)展標(biāo)識(shí)信息為標(biāo)識(shí)上層組件配置文件與底層組件配置文件的擴(kuò)展關(guān)系,包含基類標(biāo)識(shí);合并操作單元,用于根據(jù)所述擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),將屬于同一基類的配置文件加載到內(nèi)存中并合并,得到擴(kuò)展后的配置文件。
5.根據(jù)權(quán)利要求4所述的組件擴(kuò)展裝置,其特征在于,還包括第一定義單元,用于在獲取軟件系統(tǒng)啟動(dòng)過程中加載的各個(gè)組件的描述文件之前,在底層組件的描述文件中,為被其他組件擴(kuò)展的配置文件定義所述擴(kuò)展標(biāo)識(shí)信息;第二定義單元,用于在獲取軟件系統(tǒng)啟動(dòng)過程中加載的各個(gè)組件的描述文件之前,在上層組件的描述文件中,為所述上層組件的配置文件定義所述擴(kuò)展標(biāo)識(shí)信息。
6.根據(jù)權(quán)利要求5所述的組件擴(kuò)展裝置,其特征在于,所述合并操作單元,包括獲取模塊,用于根據(jù)所述擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),獲取具有相同基類標(biāo)識(shí)的底層組件配置文件和上層組件配置文件;加載模塊,用于將所述底層組件配置文件和上層組件配置文件加載到內(nèi)存中; 合并模塊,用于將所述底層組件配置文件的內(nèi)容和上層組件配置文件的內(nèi)容進(jìn)行合并,生成一個(gè)內(nèi)存對(duì)象,得到擴(kuò)展后的配置文件。
全文摘要
本發(fā)明實(shí)施例公開了一種組件擴(kuò)展方法和裝置,涉及軟件開發(fā)領(lǐng)域,既能避免底層組件升級(jí)時(shí)額外的升級(jí)腳本開發(fā),又能消除上層組件和底層組件的耦合和關(guān)聯(lián)修改。本發(fā)明的方法包括獲取軟件系統(tǒng)啟動(dòng)過程中加載的各個(gè)組件的描述文件;解析各個(gè)組件的描述文件,獲取各個(gè)組件配置文件的擴(kuò)展標(biāo)識(shí)信息;根據(jù)擴(kuò)展標(biāo)識(shí)信息中的基類標(biāo)識(shí),將屬于同一基類的配置文件加載到內(nèi)存中并合并,得到擴(kuò)展后的配置文件。本發(fā)明實(shí)施例主要用于組件擴(kuò)展的過程中。
文檔編號(hào)G06F9/44GK102216901SQ201180000534
公開日2011年10月12日 申請(qǐng)日期2011年5月30日 優(yōu)先權(quán)日2011年5月30日
發(fā)明者郭洪志 申請(qǐng)人:華為技術(shù)有限公司