用于軟件快速配置的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及軟件配置【技術(shù)領(lǐng)域】,具體地,涉及用于軟件快速配置的方法和系統(tǒng)。更具體地,本發(fā)明尤其涉及通過確定設(shè)備特別信息與記錄該信息的具體配置文件位置間的對(duì)應(yīng)關(guān)系,快速進(jìn)行軟件遷移、配置的技術(shù)。根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于軟件快速配置的方法,包括:獲取并分析軟件配置程序,以識(shí)別所述軟件配置程序中與設(shè)備特別信息相關(guān)的方法;為所述與設(shè)備特別信息相關(guān)的方法所獲取的設(shè)備特別信息添加標(biāo)識(shí);以及依據(jù)所添加的標(biāo)識(shí),確定所述設(shè)備特別信息與其在軟件配置文件中的記錄位置間的對(duì)應(yīng)關(guān)系。根據(jù)本發(fā)明的技術(shù)方案,可以自動(dòng)記錄配置文件中的記錄位置與設(shè)備特別信息之間的對(duì)應(yīng)關(guān)系,或者/并且可以用于快速進(jìn)行軟件配置。
【專利說明】用于軟件快速配置的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件配置【技術(shù)領(lǐng)域】。更具體地,本發(fā)明尤其涉及通過確定設(shè)備特別信息與記錄該信息的具體配置文件位置間的對(duì)應(yīng)關(guān)系,快速進(jìn)行軟件遷移、配置的技術(shù)。
【背景技術(shù)】
[0002]目前,隨著虛擬化及云計(jì)算技術(shù)的迅速發(fā)展,軟件的快速配置顯得越來越重要。軟件配置在軟件遷移的場(chǎng)景下尤為重要。所謂軟件遷移,指的是將軟件由一臺(tái)機(jī)器遷移到另一臺(tái)機(jī)器上運(yùn)行,通常,這里的“機(jī)器”是指虛擬機(jī)。例如,在一個(gè)云平臺(tái)中,將軟件由一臺(tái)虛擬機(jī)遷移至另一臺(tái)虛擬機(jī)。軟件在運(yùn)行過程中需要依賴于安裝時(shí)所產(chǎn)生的軟件配置文件,軟件配置文件中記錄了很多重要參數(shù)信息,或者稱作“設(shè)備特別信息”(Device SpecificInformation)。同一軟件在不同的虛擬機(jī)或物理機(jī)上運(yùn)行時(shí)所依賴的具體設(shè)備參數(shù)信息是不同的,這也導(dǎo)致軟件遷移過程中會(huì)產(chǎn)生的一個(gè)主要問題:如何在保證軟件遷移配置文件正確的基礎(chǔ)上盡量提高軟件遷移的速度和效率?
[0003]現(xiàn)有技術(shù)中存在若干種解決軟件遷移過程中的軟件配置的技術(shù)方案。其一,為每個(gè)不同的軟件編寫特定的腳本程序(scripts),然后利用所編寫的腳本程序?qū)崿F(xiàn)該軟件在不同虛擬機(jī)間遷移。該種技術(shù)方案的缺點(diǎn)在于,編寫腳本程序需要對(duì)軟件本身有較深入的了解,需要耗費(fèi)大量的人力。并且,每個(gè)腳本程序僅適用于特定軟件,不具有通用性。
[0004]其二,當(dāng)需要新啟動(dòng)一個(gè)虛擬機(jī)時(shí),重新安裝并配置該軟件。這種技術(shù)方案的顯著缺點(diǎn)是耗時(shí)太長。對(duì)于很多大型商用軟件而言,重新安裝并配置需要耗費(fèi)數(shù)個(gè)小時(shí)。
[0005]其三,對(duì)軟件的部署環(huán)境進(jìn)行限制,也就是限制只能在具有相同設(shè)備特別信息的運(yùn)行環(huán)境間進(jìn)行遷移。這種限制實(shí)際上與云計(jì)算的開放性平臺(tái)的技術(shù)發(fā)展趨勢(shì)相悖,沒有實(shí)現(xiàn)真正意義上的軟件遷移。
[0006]綜上所述,現(xiàn)有技術(shù)中存在的主要問題由于無法獲取設(shè)備特別信息在軟件配置文件中的記錄位置,因此無法在軟件遷移過程中重用已有的軟件配置文件,而導(dǎo)致軟件配置的效率低下。
【發(fā)明內(nèi)容】
[0007]考慮到上述存在的問題,本發(fā)明的目的之一在于提供一種用于快速進(jìn)行軟件配置的技術(shù)方案,或者說提供一種用于在軟件遷移時(shí)快速且正確地進(jìn)行軟件配置的技術(shù)方案。本發(fā)明的又一目的在于提供一種用于自動(dòng)記錄配置文件中的記錄位置與設(shè)備特別信息之間的對(duì)應(yīng)關(guān)系的技術(shù)方案。上述發(fā)明目的可以單獨(dú)成立,并非需要同時(shí)滿足所有提及的發(fā)明目的。
[0008]根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于軟件快速配置的方法,包括:獲取并分析軟件配置程序,以識(shí)別所述軟件配置程序中與設(shè)備特別信息相關(guān)的方法;為所述與設(shè)備特別信息相關(guān)的方法所獲取的設(shè)備特別信息的字符串值添加標(biāo)識(shí);以及依據(jù)所添加的標(biāo)識(shí),確定所述設(shè)備特別信息與其在軟件配置文件中的記錄位置間的對(duì)應(yīng)關(guān)系。[0009]根據(jù)本發(fā)明的另一方面,提供了一種用于軟件快速配置的系統(tǒng),包括:識(shí)別裝置,被配置為獲取并分析軟件配置程序,以識(shí)別所述軟件配置程序中與設(shè)備特別信息相關(guān)的方法;標(biāo)識(shí)添加裝置,被配置為為所述與設(shè)備特別信息相關(guān)的方法所獲取的設(shè)備特別信息的字符串值添加標(biāo)識(shí);以及對(duì)應(yīng)關(guān)系確定裝置,被配置為依據(jù)所添加的標(biāo)識(shí),確定所述設(shè)備特別信息與其在軟件配置文件中的記錄位置間的對(duì)應(yīng)關(guān)系。
[0010]根據(jù)本發(fā)明所提供的方法或系統(tǒng),可以自動(dòng)記錄配置文件中的記錄位置與設(shè)備特別信息之間的對(duì)應(yīng)關(guān)系,或者/并且可以用于快速進(jìn)行軟件配置。
【專利附圖】
【附圖說明】
[0011]通過對(duì)結(jié)合附圖所示出的實(shí)施方式進(jìn)行詳細(xì)說明,本發(fā)明的上述以及其他特征將更加明顯,本發(fā)明附圖中相同的標(biāo)號(hào)表示相同或相似的部件。在附圖中,
[0012]圖1示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算系統(tǒng)100的框圖;
[0013]圖2示出了根據(jù)本發(fā)明一實(shí)施例的用于軟件快速配置的方法的流程圖;
[0014]圖3示出了根據(jù)本發(fā)明另一實(shí)施例的用于軟件快速配置的方法的流程圖;
[0015]圖4示出了根據(jù)本發(fā)明一實(shí)施例的兩次代碼注入操作之前和之后的代碼示例;
[0016]圖5示出了根據(jù)本發(fā)明一實(shí)施例的所記錄的對(duì)應(yīng)關(guān)系的實(shí)例;
[0017]圖6示出了根據(jù)本發(fā)明一實(shí)施例的用于軟件快速配置的系統(tǒng)的框圖。
【具體實(shí)施方式】
[0018]在下文中,將參考附圖通過實(shí)施方式對(duì)本發(fā)明提供的用于軟件快速配置的方法和系統(tǒng)進(jìn)行詳細(xì)地描述。
[0019]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的多個(gè)方面可以體現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的多個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即,可以是完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等)、或者本文一般稱為“電路”、“模塊”或“系統(tǒng)”的軟件部分與硬件部分的組合。此外,本發(fā)明的多個(gè)方面還可以采取體現(xiàn)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可用的程序碼。
[0020]可以使用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任何組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電的、磁的、光的、電磁的、紅外線的、或半導(dǎo)體的系統(tǒng)、裝置、器件或任何以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括以下:有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任何合適的組合。在本文件的語境中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形的介質(zhì),該程序被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0021]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可包括在基帶中或者作為載波一部分傳播的、其中體現(xiàn)計(jì)算機(jī)可讀的程序碼的傳播的數(shù)據(jù)信號(hào)。這種傳播的信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或任何以上合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以是并非為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)、但是能發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序的任何計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括——但不限于——無線、電線、光纜、RF等等,或者任何合適的上述組合。
[0022]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于——無線、電線、光纜、RF等等,或者任何合適的上述組合。
[0023]用于執(zhí)行本發(fā)明的操作的計(jì)算機(jī)程序碼,可以以一種或多種程序設(shè)計(jì)語言的任何組合來編寫,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言-諸如Java、Smalltalk、C++之類,還包括常規(guī)的過程式程序設(shè)計(jì)語言-諸如“C”程序設(shè)計(jì)語言或類似的程序設(shè)計(jì)語言。程序碼可以完全地在用戶的計(jì)算上執(zhí)行、部分地在用戶的計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶的計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后一種情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任何種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶的計(jì)算機(jī),或者,可以(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng))連接到外部計(jì)算機(jī)。
[0024]以下參照按照本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的多個(gè)方面。要明白的是,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行的這些指令,產(chǎn)生實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0025]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在能指令計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生一個(gè)包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruction means)的制造品。
[0026]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置上,使得在計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,從而在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令就提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0027]下面參看圖1。圖1示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算系統(tǒng)100的框圖。如所示,計(jì)算機(jī)系統(tǒng)100可以包括:CPU(中央處理單元)101、RAM(隨機(jī)存取存儲(chǔ)器)102、ROM (只讀存儲(chǔ)器)103、系統(tǒng)總線104、硬盤控制器105、鍵盤控制器106、串行接口控制器107、并行接口控制器108、顯示控制器109、硬盤110、鍵盤111、串行外部設(shè)備112、并行外部設(shè)備113和顯示器114。在這些設(shè)備中,與系統(tǒng)總線104耦合的有CPU101、RAM102、R0M103、硬盤控制器105、鍵盤控制器106、串行控制器107、并行控制器108和顯示控制器109。硬盤110與硬盤控制器105耦合,鍵盤111與鍵盤控制器106耦合,串行外部設(shè)備112與串行接口控制器107耦合,并行外部設(shè)備113與并行接口控制器108耦合,以及顯示器114與顯示控制器109耦合。應(yīng)當(dāng)理解,圖1所述的結(jié)構(gòu)框圖僅僅為了示例的目的而示出的,而不是對(duì)本發(fā)明范圍的限制。在某些情況下,可以根據(jù)具體情況而增加或者減少某些設(shè)備。
[0028]接下來介紹圖2。圖2示出了根據(jù)本發(fā)明一實(shí)施例的用于軟件快速配置的方法的流程圖。圖2所示的方法從步驟201開始,在步驟201中,獲取并分析軟件配置程序,以識(shí)別所述軟件配置程序中與設(shè)備特別信息相關(guān)的方法。這里的“方法”可以理解為程序中的某個(gè)功能或函數(shù)?!败浖渲贸绦颉辈煌谲浖绦虮旧?,其是指在安裝過程中需要執(zhí)行的程序,例如installer程序等。根據(jù)本發(fā)明的一個(gè)實(shí)施例,設(shè)備特別信息包括至少下列之一:主機(jī)名、IP地址、Mac地址、文件路徑。相應(yīng)地,與設(shè)備特別信息相關(guān)的方法可以是getHostName O ( “主機(jī)名 ”),getHostAddress () ( “IP 地址”),getffindowsMACAddressC)(“Mac地址”),getAbS0lUtePath()( “文件路徑”)。這些與設(shè)備特別信息相關(guān)的方法可以獲取相應(yīng)的字符串值,如HostName的值為“apple”。在配置程序運(yùn)行的過程中,這些所獲取的字符串值會(huì)被寫入至軟件的配置文件中。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,設(shè)備特別信息還可能包含其它多種,相應(yīng)地軟件配置程序中的與設(shè)備特別信息相關(guān)的方法也可能有多種。還需要指出的是,可以利用現(xiàn)有技術(shù)手段對(duì)程序的代碼進(jìn)行分析,以識(shí)別出特定類型的方法,在此不再贅述。
[0029]接下來,圖2所示的方法進(jìn)行至步驟202,為所述與設(shè)備特別信息相關(guān)的方法所獲取的設(shè)備特別信息添加標(biāo)識(shí)。添加標(biāo)識(shí)的目的是為了能夠追蹤這些與設(shè)備特別信息相關(guān)的方法所讀取/獲取的具體的設(shè)備特別信息的字符串值,以便在隨后的將這些字符串寫入至配置文件的過程中定位寫入的文件位置。因此,所添加的標(biāo)識(shí)也可以理解為是“追蹤設(shè)備特別信息字符串值的ID”。根據(jù)本發(fā)明的一個(gè)實(shí)施例,其中為所識(shí)別的與設(shè)備特別信息相關(guān)的方法添加標(biāo)識(shí)包括:通過代碼注入,將所識(shí)別的與設(shè)備特別信息相關(guān)的方法替換為具有所述標(biāo)識(shí)的新方法,所述標(biāo)識(shí)用于區(qū)分不同的設(shè)備特別信息。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,代碼注入技術(shù)是現(xiàn)有技術(shù)手段,可以通過字節(jié)碼的代碼注入對(duì)程序的目標(biāo)代碼進(jìn)行修改,而無需取得程序的源代碼。可以利用目標(biāo)代碼級(jí)別的代碼注入的程序語言包括例如Java,Ruby,PHP,C#等。關(guān)于代碼注入的實(shí)現(xiàn)細(xì)節(jié),在此不再贅述。根據(jù)此實(shí)施例,雖然添加標(biāo)識(shí)的對(duì)象是具體的設(shè)備特別信息的值,但是可以在配置程序讀取到具體的設(shè)備特別信息的值之前,就在配置程序的方法中進(jìn)行代碼注入操作,從而將來一旦執(zhí)行配置程序而讀取到了設(shè)備特別信息的值時(shí)就可以自動(dòng)為其添加標(biāo)識(shí)。圖4A和4B分別示出了代碼注入前的與設(shè)備特別信息相關(guān)的方法以及代碼注入后的新方法。由圖4A可以看出,軟件配置程序中原有的與設(shè)備特別信息相關(guān)的方法為getHostName O,而經(jīng)過代碼注入后如圖4B所示,原有的getHostName O被重命名并且設(shè)置為private方法,在本例子中就是把getHostnameO修改為 getHostnamelmpl O,而新的 getHostname O 方法首先調(diào)用 getHostnamelmpl 獲得真實(shí)的hostname,并且為與設(shè)備特別信息相關(guān)的方法分配了標(biāo)識(shí)(追蹤ID),即通過ConfigurationAnalyzer.getTrackID來生成具體的標(biāo)識(shí),同時(shí)創(chuàng)建創(chuàng)建一個(gè)追蹤列表來跟蹤設(shè)備特別信息,該追蹤列表以追蹤設(shè)備特別信息字符串值的ID為關(guān)鍵字,以原始值為值。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,標(biāo)識(shí)的組成方式可以有多種,例如可以將添加的標(biāo)識(shí)定義為“數(shù)據(jù)類型+DSC+原始值”,那么假設(shè)通過原有方法獲得的HostName的值為“apple”,則將原始方法讀取的值“apple”添加標(biāo)識(shí)后成為“Hostname-DSC-apple”。這里只是給出了一個(gè)具體的標(biāo)識(shí)的生成方式,本領(lǐng)域技術(shù)人員完全可以采用多種其它方式定義標(biāo)識(shí)的生成規(guī)貝U。假設(shè)圖4A的未經(jīng)注入的軟件配置程序在執(zhí)行過程中所獲取的HostName的字符串值為“apple”,則圖4B經(jīng)注入后的軟件配置程序在執(zhí)行過程中所獲取的HostName的字符串值就自動(dòng)變成 “Hostname-DSC-apple”。[0030]接下來,在步驟203中,依據(jù)所添加的標(biāo)識(shí),確定所述設(shè)備特別信息與其在軟件配置文件中的記錄位置間的對(duì)應(yīng)關(guān)系。首先需要指出的是,軟件配置程序的執(zhí)行可以大概分為兩個(gè)階段。在第一個(gè)階段,配置程序執(zhí)行與設(shè)備特別信息相關(guān)的方法,以獲取適應(yīng)于特定運(yùn)行環(huán)境的設(shè)備特別信息的值(字符串值),然后在第二個(gè)階段,這些所獲取的設(shè)備特別信息的字符串值會(huì)被寫入到軟件的配置文件中。步驟203可以理解為是在上述第二階段寫入配置文件過程中被執(zhí)行。由于在步驟202中已經(jīng)為讀取到的設(shè)備特別信息的字符串值添加了標(biāo)識(shí),因此在步驟203中可以通過所添加的標(biāo)識(shí)來追蹤并記錄該特定字符串被寫入到的配置文件的路徑,以及被寫入到配置文件中的哪一行、哪一列的信息,從而可以確定設(shè)備特別信息與其在軟件配置文件中的記錄位置間的對(duì)應(yīng)關(guān)系。
[0031]由上所述,一旦獲取了設(shè)備特別信息與其在軟件配置文件中的記錄位置間的對(duì)應(yīng)關(guān)系,就可以在以后軟件重新配置或者軟件遷移后的配置過程中,只需要獲取新環(huán)境下的設(shè)備特別信息的字符串值,就可以直接利用這種對(duì)應(yīng)關(guān)系將新的字符串值替換至相應(yīng)的配置文件中的對(duì)應(yīng)位置的舊字符串,即可完成軟件的配置。而無需重新進(jìn)行耗時(shí)的軟件重新安裝、手動(dòng)配置的工作,也無需為每個(gè)軟件編寫特定的配置腳本,并且具有極強(qiáng)的通用性。
[0032]圖3示出了根據(jù)本發(fā)明另一實(shí)施例的用于軟件快速配置的方法的流程圖。在步驟301中,獲取并分析軟件配置程序,以識(shí)別所述軟件配置程序中與設(shè)備特別信息相關(guān)的方法。在步驟302中,通過代碼注入,將所識(shí)別的與設(shè)備特別信息相關(guān)的方法替換為具有所述標(biāo)識(shí)的新方法,所述標(biāo)識(shí)用于區(qū)分不同的設(shè)備特別信息。步驟301可以理解為對(duì)應(yīng)于圖2中的步驟201,并且步驟302作為上述一個(gè)具體實(shí)施例,在圖2的描述中也已經(jīng)詳細(xì)介紹,在此不再贅述。
[0033]在步驟303中,通過代碼注入,將所述軟件配置程序中的字符串寫入方法替換為用于檢測(cè)待寫入軟件配置文件的字符串是否具有所添加標(biāo)識(shí)的方法。軟件配置程序通過執(zhí)行寫入操作來生成配置文件,但是并非所有寫入的字符串都是設(shè)備特別信息。對(duì)于那些非設(shè)備特別信息的字符串,無需在軟件遷移或重新配置的過程中進(jìn)行更改。圖4C和4D示出了根據(jù)本發(fā)明一實(shí)施例的代碼注入前的寫入方法和代碼注入后的寫入方法。圖4C中的寫入方法write O重命名并 且設(shè)置為private方法,在本例子中就是把write O修改為
方法用于檢測(cè)待寫入軟件配置文件的字符串是否具有所添加的標(biāo)識(shí)。由圖4D所示的經(jīng)注入后的新方法的代碼還可以看出,在代碼段的最后恢復(fù)成原始的字符串值,也就是說,最終被寫入到配置文件中的設(shè)備特別信息的字符串值仍然是“apple”,而并非添加標(biāo)識(shí)后的“Hostname-DSC-apple”。這樣就保證了當(dāng)前配置文件信息的正確性。
[0034]接下來在步驟304中,判斷需要被寫入軟件配置文件的字符串是否具有所添加的標(biāo)識(shí)。由于之前添加過的標(biāo)識(shí)已經(jīng)被記錄并且其與原始字符串之間的對(duì)應(yīng)關(guān)系已經(jīng)被記錄在追蹤列表,當(dāng)軟件配置程序執(zhí)行到寫入方法時(shí),如果判斷得知馬上要被寫入軟件配置文件的字符串具有之前添加過的標(biāo)識(shí),則進(jìn)行至步驟305,獲取所述字符串被寫入所述軟件配置文件中的具體位置信息。如果判斷得知馬上要被寫入軟件配置文件的字符串不具有之前添加過的標(biāo)識(shí),則說明該字符串并非設(shè)備特別信息,無需追蹤其在配置文件中的寫入位置,因此不獲取所述字符串被寫入所述軟件配置文件中的具體位置信息。
[0035]針對(duì)步驟305,根據(jù)本發(fā)明的一個(gè)實(shí)施例,響應(yīng)于判斷結(jié)果為是,獲取所述字符串被寫入所述軟件配置文件中的具體位置信息包括:響應(yīng)于判斷結(jié)果為是,獲取待寫入的字符串要被寫至的軟件配置文件路徑;以及獲取待寫入的字符串在被寫至的軟件配置文件中的行、列信息。由于一個(gè)軟件的軟件配置信息可能記錄于多個(gè)具有不同的文件路徑的配置文件中,因此特定字符串被寫入的具體文件路徑信息需要獲取。此外,根據(jù)本發(fā)明的一個(gè)實(shí)施例,為了更精確地在配置文件中定位被寫入的設(shè)備特別信息的字符串,還可以進(jìn)一步獲取字符串在被寫至的軟件配置文件中的行、列信息。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,如何獲取字符串被寫入到文件中的第幾行、第幾列屬于現(xiàn)有技術(shù)手段,例如可以通過換行符的數(shù)量來計(jì)算字符串的起始位置并分析字符串的長度來分析具體的行、列信息,在此不再贅述。
[0036]需要指出的是,步驟304的判斷是針對(duì)配置程序中每個(gè)寫入方法重復(fù)進(jìn)行的,直至所有的寫入方法執(zhí)行完畢。為了簡潔起見,并未在圖3中示出循環(huán)執(zhí)行的示意圖。
[0037]接下來,圖3所示的方法進(jìn)行至步驟306,記錄所述設(shè)備特別信息與所述具體位置信息間的對(duì)應(yīng)關(guān)系。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,對(duì)應(yīng)關(guān)系的記錄可以以文件的形式體現(xiàn),也可以通過其它任意數(shù)據(jù)存儲(chǔ)方式體現(xiàn)。圖5示例性地示出了根據(jù)本發(fā)明一個(gè)實(shí)施例而得到的設(shè)備特別信息與所述具體位置信息間的對(duì)應(yīng)關(guān)系的記錄。如圖5所示,對(duì)于HostName這個(gè)設(shè)備特別信息,其當(dāng)前運(yùn)行環(huán)境下的值“apple”在軟件配置過程中被寫入到三個(gè)不同的配置文件中的四個(gè)不同的位置(不同的行、列值)。
[0038]有了這樣的對(duì)應(yīng)關(guān)系記錄,一旦這個(gè)軟件將來需要在另一個(gè)運(yùn)行環(huán)境(例如虛擬機(jī))上被部署,則可以執(zhí)行步驟307,獲取所述軟件在新運(yùn)行環(huán)境下的新的設(shè)備特別信息,以及步驟308,利用所述對(duì)應(yīng)關(guān)系,將軟件配置文件中的原有設(shè)備特別信息替換為所述新的設(shè)備特別信息,以實(shí)現(xiàn)軟件快速配置。例如,通過步驟307得知這個(gè)軟件在新的運(yùn)行環(huán)境下的HostName的值為“pear”,則在步驟308中按照?qǐng)D5示出的對(duì)應(yīng)關(guān)系的記錄,在原有的配置文件中的相應(yīng)位置用“pear”這個(gè)字符串替換“apple”這個(gè)字符串即可快速完成軟件的配置,無需重新安裝軟件。
[0039]還需要指出的是,步驟307和308位于圖3中的框內(nèi),目的在于強(qiáng)調(diào)這兩個(gè)步驟并非實(shí)現(xiàn)本發(fā)明目的的必需步驟或必備手段。只要獲得了例如圖5所示的對(duì)應(yīng)關(guān)系記錄,就已經(jīng)實(shí)現(xiàn)了本發(fā)明的目的,因?yàn)樵搶?duì)應(yīng)關(guān)系足以用于快速完成軟件的配置。至于具體如何利用這個(gè)對(duì)應(yīng)關(guān)系記錄去實(shí)際完成軟件的配置任務(wù),不影響本發(fā)明的目的的實(shí)現(xiàn)。例如,即使由人工依據(jù)對(duì)應(yīng)關(guān)系記錄手動(dòng)修改相應(yīng)的配置文件中的字符串,同樣可以大大提升軟件配置的速度和效率。
[0040]本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,上文中以源代碼的形式給出了關(guān)于代碼注入的示意性的例子,這只是為了使得示例更容易理解。在實(shí)際的代碼注入操作過程中,代碼的修改、替換可以直接在目標(biāo)代碼層面進(jìn)行,無需獲取配置程序的源代碼。
[0041]圖6示出了根據(jù)本發(fā)明一實(shí)施例的用于軟件快速配置的系統(tǒng)的框圖。圖6所示的系統(tǒng)在整體上由系統(tǒng)600表示,具體地,系統(tǒng)600包括識(shí)別裝置601,被配置為獲取并分析軟件配置程序,以識(shí)別所述軟件配置程序中與設(shè)備特別信息相關(guān)的方法;標(biāo)識(shí)添加裝置602,被配置為為所述與設(shè)備特別信息相關(guān)的方法所獲取的設(shè)備特別信息的字符串值添加標(biāo)識(shí);以及對(duì)應(yīng)關(guān)系確定裝置603,被配置為依據(jù)所添加的標(biāo)識(shí),確定所述設(shè)備特別信息與其在軟件配置文件中的記錄位置間的對(duì)應(yīng)關(guān)系。系統(tǒng)600中的裝置601-603可以理解為分別對(duì)應(yīng)于圖2所示的方法中的步驟201-203,在此不再贅述。[0042]附圖中的流程圖和框圖,圖示了按照本發(fā)明各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
[0043]雖然以上結(jié)合具體實(shí)例,對(duì)本發(fā)明的利用遠(yuǎn)程應(yīng)用處理本地文件的系統(tǒng)及方法進(jìn)行了詳細(xì)描述,但本發(fā)明并不限于此。本領(lǐng)域普通技術(shù)人員能夠在說明書教導(dǎo)之下對(duì)本發(fā)明進(jìn)行多種變換、替換和修改而不偏離本發(fā)明的精神和范圍。應(yīng)該理解,所有這樣的變化、替換、修改仍然落入本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明的保護(hù)范圍由所附權(quán)利要求來限定。
【權(quán)利要求】
1.一種用于軟件快速配置的方法,包括: 獲取并分析軟件配置程序,以識(shí)別所述軟件配置程序中與設(shè)備特別信息相關(guān)的方法; 為所述與設(shè)備特別信息相關(guān)的方法所獲取的設(shè)備特別信息添加標(biāo)識(shí); 依據(jù)所添加的標(biāo)識(shí),確定所述設(shè)備特別信息與其在軟件配置文件中的記錄位置間的對(duì)應(yīng)關(guān)系。
2.如權(quán)利要求1所述的方法,其中設(shè)備特別信息包括至少下列之一: 主機(jī)名、IP地址、Mac地址、文件路徑。
3.如權(quán)利要求1所述的方法,其中為所述與設(shè)備特別信息相關(guān)的方法所獲取的設(shè)備特別信息添加標(biāo)識(shí)包括: 通過代碼注入,將所識(shí)別的與設(shè)備特別信息相關(guān)的方法替換為具有所述標(biāo)識(shí)的新方法,所述標(biāo)識(shí)用于區(qū)分不同的設(shè)備特別信息。
4.如權(quán)利要求1所述的方法,其中依據(jù)所添加的標(biāo)識(shí),確定所述設(shè)備特別信息與其在軟件配置文件中的記錄位置間的對(duì)應(yīng)關(guān)系包括: 判斷需要被寫入軟件配置文件的字符串是否具有所添加的標(biāo)識(shí); 響應(yīng)于判斷結(jié)果為是,獲取所述字符串被寫入所述軟件配置文件中的具體位置信息;以及 記錄所述設(shè)備特別信息與所述具體位置信息間的對(duì)應(yīng)關(guān)系。
5.如權(quán)利要求4所述的方法`,進(jìn)一步包括: 通過代碼注入,將所述軟件配置程序中的字符串寫入方法替換為用于檢測(cè)待寫入軟件配置文件的字符串是否具有所添加標(biāo)識(shí)的方法。
6.如權(quán)利要求4所述的方法,其中響應(yīng)于判斷結(jié)果為是,獲取所述字符串被寫入所述軟件配置文件中的具體位置信息包括: 響應(yīng)于判斷結(jié)果為是, 獲取待寫入的字符串要被寫至的軟件配置文件路徑;以及 獲取待寫入的字符串在被寫至的軟件配置文件中的行、列信息。
7.如權(quán)利要求1所述的方法,進(jìn)一步包括: 獲取所述軟件在新運(yùn)行環(huán)境下的新的設(shè)備特別信息;以及 利用所述對(duì)應(yīng)關(guān)系,將軟件配置文件中的原有設(shè)備特別信息替換為所述新的設(shè)備特別信息,以實(shí)現(xiàn)軟件快速配置。
8.一種用于軟件快速配置的系統(tǒng),包括: 識(shí)別裝置,被配置為獲取并分析軟件配置程序,以識(shí)別所述軟件配置程序中與設(shè)備特別信息相關(guān)的方法; 標(biāo)識(shí)添加裝置,被配置為為所述與設(shè)備特別信息相關(guān)的方法所獲取的設(shè)備特別信息添加標(biāo)識(shí); 對(duì)應(yīng)關(guān)系確定裝置,被配置為依據(jù)所添加的標(biāo)識(shí),確定所述設(shè)備特別信息與其在軟件配置文件中的記錄位置間的對(duì)應(yīng)關(guān)系。
9.如權(quán)利要求8所述的系統(tǒng),其中設(shè)備特別信息包括至少下列之一: 主機(jī)名、IP地址、Mac地址、文件路徑。
10.如權(quán)利要求8所述的系統(tǒng),其中標(biāo)識(shí)添加裝置被配置為:通過代碼注入,將所識(shí)別的與設(shè)備特別信息相關(guān)的方法替換為具有所述標(biāo)識(shí)的新方法,所述標(biāo)識(shí)用于區(qū)分不同的設(shè)備特別信息。
11.如權(quán)利要求8所述的系統(tǒng),其中對(duì)應(yīng)關(guān)系確定裝置被配置為: 判斷需要被寫入軟件配置文件的字符串是否具有所添加的標(biāo)識(shí); 響應(yīng)于判斷結(jié)果為是,獲取所述字符串被寫入所述軟件配置文件中的具體位置信息;以及 記錄所述設(shè)備特別信息與所述具體位置信息間的對(duì)應(yīng)關(guān)系。
12.如權(quán)利要求11所述的系統(tǒng),進(jìn)一步包括: 寫入替換裝置,被配置為通過代碼注入,將所述軟件配置程序中的字符串寫入方法替換為用于檢測(cè)待寫入軟件配置文件的字符串是否具有所添加標(biāo)識(shí)的方法。
13.如權(quán)利要求11所述的系統(tǒng),其中對(duì)應(yīng)關(guān)系確定裝置被進(jìn)一步配置為: 響應(yīng)于判斷結(jié)果為是, 獲取待寫入的字符串要被寫至的軟件配置文件路徑;以及 獲取待寫入的字符串在被寫至的軟件配置文件中的行、列信息。
14.如權(quán)利要求8所述的系統(tǒng),進(jìn)一步包括: 軟件配置裝置,被配置為: 獲取所述軟件在新運(yùn)行環(huán)境`下的新的設(shè)備特別信息;以及 利用所述對(duì)應(yīng)關(guān)系,將軟件配置文件中的原有設(shè)備特別信息替換為所述新的設(shè)備特別信息,以實(shí)現(xiàn)軟件快速配置。
【文檔編號(hào)】G06F9/44GK103793217SQ201210428865
【公開日】2014年5月14日 申請(qǐng)日期:2012年10月31日 優(yōu)先權(quán)日:2012年10月31日
【發(fā)明者】車漾, 張霞, 朱可, 崔學(xué)翔 申請(qǐng)人:國際商業(yè)機(jī)器公司