專利名稱:用于支持面向對象腳本工具的系統(tǒng)和方法
技術領域:
本發(fā)明一般涉及用于軟件開發(fā)和域管理的腳本工具,且尤其涉及基于XML的腳本工具。
背景技術:
腳本工具是一種使用高級腳本語言實現(xiàn)的軟件工具。典型地,以腳本工具編寫的腳本可以在運行時由執(zhí)行環(huán)境解釋以執(zhí)行特定編程任務。這種腳本工具的一個示例是Ant (或者“Another Neat tool”,另一種整潔的工具)。Ant是一種最初為自動化軟件構建過程而開發(fā)的軟件工具。Ant使用JAVA編程語言實現(xiàn)。Ant可用于在JAVA平臺中構建JAVA項目。典型的Ant腳本文件具有XML文件格式。
發(fā)明內容
根據(jù)一實施例,一種面向對象的腳本工具使用XML文件來進行軟件開發(fā)和域管理的。該XML文件包括以面向對象腳本語言定義腳本類的至少一個第一標簽。該腳本類包括以該XML文件中的第二標簽定義的至少一個方法。通用軟件開發(fā)和域管理腳本可以封裝到通用腳本類中,該通用腳本類可以擴展為用于特定軟件開發(fā)和域管理任務的個體腳本類。
圖1示出面向對象Ant腳本工具環(huán)境的示例性視圖。圖2是示出根據(jù)一實施例在面向對象Ant腳本語言和JAVA編程語言中語法之間的樣例映射關系的圖。圖3是示出根據(jù)一實施例用于構建軟件應用的面向對象Ant類層級的示例的圖。圖4是示出根據(jù)一實施例用于構建應用的面向對象Ant腳本類的樣例用法的圖。圖5是示出根據(jù)一實施例用于管理應用服務器域的類層級的示例的圖。圖6是示出根據(jù)一實施例用于管理應用服務器域的面向對象Ant腳本類的樣例用法的圖。圖7是示出根據(jù)一實施例的面向對象Ant工具類的樣例用法的圖。圖8是示出根據(jù)一實施例用于在分布式環(huán)境中測試軟件應用的示例性步驟的圖。
具體實施例方式在附圖中僅以示例方式而絕非限制性方式說明本發(fā)明,其中,相似的附圖標記表示相似的元件。應當注意,在本公開中,對“一”或“一個”或“一些”實施例的引用并不一定表示引用相同的實施例,且這種引用表示至少一個。下面的本發(fā)明的實施例的描述使用JAVA平臺作為面向對象編程語言平臺的示例。本領域技術人員應當意識到,可以無限制地使用其他類型的面向對象編程語言平臺。根據(jù)一實施例,諸如Ant的基于XML的腳本工具可以擴展為包括面向對象的特征。 在一個實施例中,面向對象腳本工具可以實現(xiàn)為基于XML的腳本工具的擴展。例如,面向對象Ant腳本工具或面向對象Ant可以使用JAVA編程語言實現(xiàn)為Ant的擴展。在一個實施例中,實現(xiàn)面向對象Ant腳本工具的JAVA代碼可以被編譯且部署在由Ant腳本環(huán)境指定的庫目錄中,從而存儲該Ant腳本工具的擴展任務。圖1示出面向對象Ant腳本工具環(huán)境的示例性視圖。如圖1所示,Ant腳本環(huán)境可以使用XML解析器101來解析包含在具有不同標簽 110、112和120的XML文件102中的腳本。XML文件102中的每個標簽110、112或120與一類腳本任務或目標111、113或121相關聯(lián)。根據(jù)一實施例,諸如面向對象Ant的面向對象腳本工具可以利用包括面向對象腳本語法的附加標簽122和IM來支持面向對象特征。如圖1所示,標簽122可用于支持面向對象Ant腳本環(huán)境中的類定義任務123 ;且另一標簽IM可用于支持面向對象Ant腳本環(huán)境中的函數(shù)調用任務125。根據(jù)一實施例,面向對象腳本語法支持使用可以在類型定義表中保存的不同的面向對象腳本類型。該類型定義表可以使用哈希(harsh)表實現(xiàn),其中標簽名稱用作哈希表的關鍵字。另外,面向對象Ant腳本工具的每個任務實例可以存儲在實例池中。該實例池也可以以使用每個實例的id或參考標號作為關鍵字的哈希表實現(xiàn)。在另一實施例中,這種類型定義機制可以被解釋為低優(yōu)先級的,從而防止與軟件開發(fā)者用于其他目的的相同標簽的其他用法存在名稱沖突。在另一示例中,可以定義唯一標簽以啟動面向對象Ant腳本環(huán)境,從而防止名稱沖突。根據(jù)一實施例,面向對象腳本工具可以具有面向對象編程語言提供的類似特征。 而且,熟悉面向對象編程語言的軟件開發(fā)者可以容易地理解面向對象腳本語言。例如,基于 Ant腳本語言的面向對象Ant可以具有與JAVA類似的特征。這允許熟練的JAVA開發(fā)者快速學會使用面向對象Ant腳本工具。圖2示出在面向對象Ant腳本語言的語法和JAVA編程語言的語法之間的樣例映射關系。根據(jù)一個實施例,面向對象腳本工具可以使用類標簽來定義腳本類,就像JAVA編程語言可以定義JAVA類一樣。例如,如圖2中第1行所示,在面向對象Ant腳本語言中定義樣例“Hello”類,其可以映射到JAVA編程語言的Hello類。根據(jù)一個實施例,面向對象腳本工具中的類標簽可以包含封裝腳本類的行為的任意腳本。在一個實施例中,該類標簽可以存在兩個屬性。一個屬性是定義底層類的名稱的名稱屬性。另一屬性是定義基類的類名稱的基本屬性。基本屬性的缺省值是“對象”,其表示底層類是從根類直接擴展的類。根據(jù)一實施例,類似于在JAVA類中定義方法,面向對象腳本工具可以使用方法標簽來為類定義方法。在一個實施例中,方法標簽可以具有名稱屬性。例如,如圖2中第3行所示,該方法的名稱屬性被賦予值“sayHi”。另外,方法標簽還允許在方法標簽的實體中定義一個或多個屬性標簽。這種屬性標簽定義當方法被調用時可以由該方法使用的一個或多個參數(shù)。在如圖2中第4行所示的實例中,方法“sayHi”采用指定消息的內容的參數(shù)。根據(jù)一實施例,面向對象編程工具可以為類分配參考值。例如,在圖2中第7行,標簽可用于類的啟動,這類似于在JAVA中創(chuàng)建新類。使用圖2中第1行的標簽創(chuàng)建的“Hello” 類的實例被賦予了參考值“ h ”以唯一地識別該實例。根據(jù)一實施例,面向對象腳本工具允許用戶以“[類參考標號]-[方法名稱]”的格式使用類調用標簽來調用腳本類中的方法。例如,如圖2中第9行所示,可以使用“h. sayHi” 的語法調用在圖2中第3-5行定義的“sayHi”方法,這重新匯編了 JAVA中的類調用語法。 該“sayHi”方法設置有包括消息的內容的參數(shù),符合圖2中第4行消息屬性的定義。根據(jù)一實施例,面向對象腳本工具提供可以寫出消息內容的回響(echo)標簽。例如,如圖2的第11行所示,回響標簽可以以類似于JAVA中的System, out的方式操作。根據(jù)一實施例,面向對象腳本工具提供可用于檢查某面向對象Ant對象是否是某特定Ant類類型的〈instance of>標簽。在一個實施例中,〈instance of>標簽提供描述 Ant對象id的“id”屬性;以及描述要驗證的Ant類的名稱的“classname”屬性。根據(jù)一實施例,就像面向對象編程語言一樣,面向對象腳本工具可以提供其他有用的特征。就像JAVA提供的那樣,這些有用的特征包括允許方法覆蓋以及特定“this”和 “super”實例。而且,類似于JAVA,面向對象Ant可以支持類擴展和繼承;實例方法調用語法的反射特征以及獲得實例屬性的語法。根據(jù)一實施例,面向對象腳本工具可用于構建軟件應用。通用應用構建腳本可封裝到類中。軟件開發(fā)者然后可以創(chuàng)建他或她自己版本的通用應用構建腳本,以包括他或她希望的某些特定特征。圖3示出用于構建軟件應用的類層級的示例。如圖3所示,App. class. xml301是封裝了通用應用構建腳本的基類。MyAppBase. class, xml 302是從基類App. class, xml 301 繼承的類。軟件開發(fā)者不需要重寫或復制和粘貼App. class, xml 301中已經(jīng)存在的實現(xiàn)細節(jié)。軟件開發(fā)者僅需要在MyAppBase. class, xml 302中添加新方法或覆蓋已有方法。另外,基于MyAppBase. class, xml 302,軟件開發(fā)者可以針對不同項目創(chuàng)建不同的面向對象 Ant 腳本類 MyAppL class, xml 303 禾口 MyApp2. class, xml 304。不同面向對象 Ant 腳本類MyApp 1. class. xml303和MyApp2. class, xml 304包括所有必要信息以成功編譯和構建項目,諸如項目目錄和到有用庫的鏈接。圖4示出用于構建應用的面向對象Ant腳本類的樣例用法。如圖4所示,兩個單獨的面向對象Ant腳本類MyAppl和MyApp2可用于構建兩個單獨的應用appl和app2。根據(jù)一實施例,面向對象腳本工具還可用于管理不同網(wǎng)絡或應用服務器域。圖5示出用于管理應用服務器域的類層級的示例。如圖5所示,通用域相關腳本可以封裝成類Domain, class, xml 501。網(wǎng)絡管理員可以在另一個類MyDomainBase. class, xml 502中指定他或她自己版本的通用域相關腳本。MyDomainBase. class, xml 502包括符合網(wǎng)絡管理員的定制特征。此處,MyDomainBase. class, xml 502是繼承了基類Domain, class, cml 501的類。在這種場景中,網(wǎng)絡管理員不需要重寫或復制和粘貼在通用域管理教本中已經(jīng)存在的實現(xiàn)細節(jié)。軟件開發(fā)者僅需要根據(jù)他或她自己的需要添加新方法或覆蓋現(xiàn)有方法。另外,基于MyDomainBase. class, xml 502,網(wǎng)絡管理員可以針對特定域創(chuàng)建單獨的面向對象Ant腳本類MyDomainl. class, xml 503。此處,面向對象Ant腳本類包括所有必要信息以成功準備和啟動該特定域。圖6示出用于管理應用服務器域的面向對象Ant腳本類的樣例用法。如圖6所示, 可以使用該面向對象Ant腳本類準備和啟動應用服務器域MyDomainl。根據(jù)一實施例,面向對象腳本工具可用于生成可接受收其他類型腳本類的對象作為自變量的工具腳本類。圖7示出面向對象Ant工具類的樣例用法。如圖7所示,工具Ant類"MyApplUtil ” 類具有參考標號或id “applutil”?!癕yApplUtil”類具有可通過參考標號或id “appl”獲得“MyAppl”的所有實例屬性的處理方法??梢曰讷@得的“MyAppl”類的實例屬性執(zhí)行其他操作。這些操作包括但不限于管理部署描述符文件等。根據(jù)一實施例,面向對象腳本工具可用于分布式環(huán)境中的軟件應用測試,諸如設置應用服務器的域和鏈接到數(shù)據(jù)庫。圖8示出用于在分布式環(huán)境中測試軟件應用的示例性步驟。如圖8所示,該軟件應用測試腳本可以包括以下步驟首先編譯該應用801,并且針對不同目的開發(fā)和編譯該應用的不同測試案例802。然后,需要準備803且啟動804目標域,以準備好在該域中的服務器上部署應用805。在完成測試案例806之后,可以關閉807且準備清理808域。由于軟件測試的復雜性,可以開發(fā)不同測試案例。對于每個測試方案可能存在大量的腳本文件。從一個測試案例到另一個測試案例遷移腳本文件原先涉及通過復制和粘貼途徑使用大量類似測試腳本。復制和粘貼方法是低效的,因為測試腳本可能非常大且涉及大量細節(jié)。很多時候,軟件開發(fā)者甚至愿意重寫測試腳本而不重新使用舊測試腳本以避免錯誤。通過使用面向對象Ant,軟件開發(fā)者可以容易地從一個測試案例延伸到另一測試案例而無需復制和粘貼海量代碼。根據(jù)一實施例,在Ant中引入面向對象語法使得更加容易地重復使用現(xiàn)有腳本。 例如,Ant宏“A”可以內部地調用另一宏“B”。在一個實例中,軟件開發(fā)者只希望改變“B”的行為且重復使用“A”。使用復制和粘貼方法,軟件開發(fā)者需要創(chuàng)建兩個新的宏“Al”和“Bi”。 軟件開發(fā)者需要將“A”的內容復制到“Al”中且將調用“B”改為調用“Bi”。使用面向對象 Ant,軟件開發(fā)者可以簡單地使用新類“Bi”擴展基類“B ”,該新類“Bi”使用新實現(xiàn)方式覆蓋“B”中的一個或多個方法。使用本公開的教導編程的常規(guī)通用或專用數(shù)字計算機或微處理器可以方便地實現(xiàn)本發(fā)明。軟件領域相關人員應當意識到,基于本公開的教導,熟練的程序員容易編寫適當?shù)能浖a。在一些實施例中,本發(fā)明包括計算機程序產品,該計算機程序產品是其上存儲有指令且該指令可用于對計算機進行編程以執(zhí)行本發(fā)明的任意處理的存儲介質。存儲介質可以包括但不限于任意類型的盤,包括軟盤、光盤、DVD、⑶-ROM、微驅動器以及磁光盤、ROM、 RAM、EPROM、EEPROM、DRAM、VRAM、閃存裝置,磁或光卡、納米系統(tǒng)(包括分子存儲器IC)或適于存儲指令和/或數(shù)據(jù)的任意類型的介質或裝置。提供本發(fā)明的上述描述是用于說明和描述目的。其并不是窮舉的或旨在將本發(fā)明限制為所公開的精確形式。對本領域技術人員而言顯見很多修改和變型。給出的代碼實例是出于說明的目的。很明顯,可以使用其他代碼語言且使用不同代碼應用此處描述的技術。選擇和描述實施例是為了最好地解釋本發(fā)明的原理及其實踐應用,由此使得本領域技術人員理解本發(fā)明的各種實施例以及可以預期的適于特定用途的各種變型。旨在表明,本發(fā)明的范圍受到下面的權利要求及其等價物的限定。根據(jù)本發(fā)明的一個實施例,提供了一種計算機可讀介質,其上存儲有指令,在執(zhí)行該指令時該指令使系統(tǒng)使用XML文件中的第一標簽以腳本語言定義軟件類,其中該軟件類包括至少一個方法;以及以該XML文件中的第二標簽調用該至少一個方法。根據(jù)本發(fā)明的另一個實施例,提供了一種支持使用XML文件的面向對象腳本工具的系統(tǒng),包含該XML文件中的第一標簽,其以腳本語言定義軟件類,其中該軟件類包括至少一個方法;以及該XML文件中的第二標簽,其調用該軟件類中的該至少一個方法。根據(jù)本發(fā)明的另一個實施例,提供了一種支持使用XML文件的面向對象腳本工具的系統(tǒng),包含用于使用該XML文件中的第一標簽以腳本語言定義軟件類的裝置,其中該軟件類包括至少一個方法;以及用于以該XML文件中的第二標簽調用該至少一個方法的裝置。優(yōu)選地,該系統(tǒng)還包含用于允許該腳本語言是Ant的裝置。優(yōu)選地,該系統(tǒng)還包含用于使用XML解析器來解析該XML文件的裝置。優(yōu)選地,該系統(tǒng)還包含用于使用該XML文件中的標簽定義該至少一個方法的裝置。優(yōu)選地,該系統(tǒng)還包含用于使用該XML文件中的標簽檢查一個軟件對象是否是該軟件類的實例的裝置。優(yōu)選地,該系統(tǒng)還包含用于支持以下至少之一的裝置類擴展和繼承,方法覆蓋,實例多態(tài)性,和特定“this”和“super”實例。優(yōu)選地,該系統(tǒng)還包含用于支持以該XML文件的標簽進行實例方法調用的語法的裝置,其中該語法的格式為“[類參考標號].[方法名稱]”。優(yōu)選地,該系統(tǒng)還包含用于當XML文件中的一個標簽被確定為是未知元素時,將該標簽與用于實例方法調用的語法相關聯(lián)的裝置。優(yōu)選地,該系統(tǒng)還包含用于使用類型定義表來定義所述用于實例方法調用的語法的裝置。優(yōu)選地,該系統(tǒng)還包含用于將通用應用構建腳本封裝到所述軟件類中的裝置,以及用于執(zhí)行另一軟件類中的特定應用構建腳本的裝置,其中該另一軟件類擴展或繼承自所述軟件類。優(yōu)選地,該系統(tǒng)還包含用于將通用域管理腳本封裝到該軟件類中的裝置,以及用于使用另一軟件類中的域管理腳本啟動特定域的裝置,其中該另一軟件類擴展或繼承自該軟件類。優(yōu)選地,該系統(tǒng)還包含用于允許該軟件類是工具類的裝置,該工具類能夠接受另一軟件類的實例作為自變量。優(yōu)選地,該系統(tǒng)還包含用于使用該面向對象腳本工具以鏈接到數(shù)據(jù)庫的裝置。優(yōu)選地,該系統(tǒng)還包含用于使用該面向對象腳本工具將應用部署到不同的服務器的裝置。
權利要求
1.一種支持使用XML文件的面向對象腳本工具的方法,包含使用該XML文件中的第一標簽以腳本語言定義軟件類,其中該軟件類包括至少一個方法;以及以該XML文件中的第二標簽調用該至少一個方法。
2.根據(jù)權利要求1所述的方法,還包含 允許該腳本語言是Ant。
3.根據(jù)權利要求1所述的方法,還包含 使用XML解析器來解析該XML文件。
4.根據(jù)權利要求1所述的方法,還包含 使用該XML文件中的標簽定義該至少一個方法。
5.根據(jù)權利要求1所述的方法,還包含使用該XML文件中的標簽檢查一個軟件對象是否是該軟件類的實例。
6.根據(jù)權利要求1所述的方法,還包含 支持以下至少之一類擴展和繼承, 方法覆蓋, 實例多態(tài)性,和特定"this,,和 “super,,實例。
7.根據(jù)權利要求1所述的方法,還包含支持以該XML文件的標簽進行實例方法調用的語法,其中該語法的格式為“[類參考標號]·[方法名稱]”。
8.根據(jù)權利要求7所述的方法,還包含當XML文件中的一個標簽被確定為是未知元素時,將該標簽與用于實例方法調用的語法相關聯(lián)。
9.根據(jù)權利要求8所述的方法,還包含使用類型定義表來定義所述用于實例方法調用的語法。
10.根據(jù)權利要求1所述的方法,還包含將通用應用構建腳本封裝到所述軟件類中,以及執(zhí)行另一軟件類中的特定應用構建腳本,其中該另一軟件類擴展或繼承自所述軟件類。
11.根據(jù)權利要求1所述的方法,還包含 將通用域管理腳本封裝到該軟件類中,以及使用另一軟件類中的域管理腳本啟動特定域,其中該另一軟件類擴展或繼承自該軟件類。
12.根據(jù)權利要求1所述的方法,還包含允許該軟件類是工具類,該工具類能夠接受另一軟件類的實例作為自變量。
13.根據(jù)權利要求1所述的方法,還包含 使用該面向對象腳本工具以鏈接到數(shù)據(jù)庫。
14.根據(jù)權利要求7所述的方法,還包含使用該面向對象腳本工具將應用部署到不同的服務器。
15.一種支持使用XML文件的面向對象腳本工具的系統(tǒng),包含用于使用該XML文件中的第一標簽以腳本語言定義軟件類的裝置,其中該軟件類包括至少一個方法;以及用于以該XML文件中的第二標簽調用該至少一個方法的裝置。
16.根據(jù)權利要求15所述的系統(tǒng),還包含 用于允許該腳本語言是Ant的裝置。
17.根據(jù)權利要求15所述的系統(tǒng),還包含用于使用XML解析器來解析該XML文件的裝置。
18.根據(jù)權利要求15所述的系統(tǒng),還包含用于使用該XML文件中的標簽定義該至少一個方法的裝置。
19.根據(jù)權利要求15所述的系統(tǒng),還包含用于使用該XML文件中的標簽檢查一個軟件對象是否是該軟件類的實例的裝置。
20.根據(jù)權利要求15所述的系統(tǒng),還包含 用于支持以下至少之一的裝置類擴展和繼承, 方法覆蓋, 實例多態(tài)性,和特定"this,,和 “super,,實例。
21.根據(jù)權利要求15所述的系統(tǒng),還包含用于支持以該XML文件的標簽進行實例方法調用的語法的裝置,其中該語法的格式為 “[類參考標號].[方法名稱]”。
22.根據(jù)權利要求21所述的系統(tǒng),還包含用于當XML文件中的一個標簽被確定為是未知元素時,將該標簽與用于實例方法調用的語法相關聯(lián)的裝置。
23.根據(jù)權利要求22所述的系統(tǒng),還包含用于使用類型定義表來定義所述用于實例方法調用的語法的裝置。
24.根據(jù)權利要求15所述的系統(tǒng),還包含用于將通用應用構建腳本封裝到所述軟件類中的裝置,以及用于執(zhí)行另一軟件類中的特定應用構建腳本的裝置,其中該另一軟件類擴展或繼承自所述軟件類。
25.根據(jù)權利要求15所述的系統(tǒng),還包含用于將通用域管理腳本封裝到該軟件類中的裝置,以及用于使用另一軟件類中的域管理腳本啟動特定域的裝置,其中該另一軟件類擴展或繼承自該軟件類。
26.根據(jù)權利要求15所述的系統(tǒng),還包含用于允許該軟件類是工具類的裝置,該工具類能夠接受另一軟件類的實例作為自變So
27.根據(jù)權利要求15所述的系統(tǒng),還包含用于使用該面向對象腳本工具以鏈接到數(shù)據(jù)庫的裝置。
28.根據(jù)權利要求21所述的系統(tǒng),還包含用于使用該面向對象腳本工具將應用部署到不同的服務器的裝置。
全文摘要
公開了用于支持使用XML文件的面向對象腳本工具的系統(tǒng)和方法。一種面向對象腳本工具使用XML文件進行軟件開發(fā)和域管理。該XML文件包括以面向對象腳本語言定義腳本類的至少一個第一標簽。該腳本類包括以該XML文件中的第二標簽定義的至少一個方法。通用的軟件開發(fā)和域管理腳本可以封裝到通用腳本類中,該通用腳本類可以擴展到用于特定軟件開發(fā)和域管理任務的個體腳本類。
文檔編號G06F9/44GK102339219SQ20101023601
公開日2012年2月1日 申請日期2010年7月20日 優(yōu)先權日2010年7月20日
發(fā)明者V·埃格羅夫, 孫鵬, 徐新, 李海軍, 杜宏偉 申請人:甲骨文國際公司