專利名稱::一種用于生成網(wǎng)絡(luò)服務(wù)的方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及網(wǎng)絡(luò)服務(wù),尤其涉及一種用于自動(dòng)生成網(wǎng)絡(luò)服務(wù)的方法和裝置。
背景技術(shù):
:目前,存在許多網(wǎng)絡(luò)服務(wù)(webservice)架構(gòu)可以部分地生成網(wǎng)絡(luò)服務(wù),例如,Axis2提供了用以根據(jù)WSDL文件產(chǎn)生代碼的工具。但是它只能生成樁代碼(stubcode),還需要用戶編寫代碼以實(shí)現(xiàn)服務(wù)的真實(shí)邏輯(reallogic)。有些系統(tǒng)可以部分地生成網(wǎng)絡(luò)服務(wù)代碼,但是缺乏接口以生成網(wǎng)絡(luò)服務(wù)從而同時(shí)從多類型數(shù)據(jù)庫,例如輕量級目錄訪問協(xié)議(LDAP)數(shù)據(jù)庫,中訪問數(shù)據(jù)。并且在這些系統(tǒng)中,通常也無法生成數(shù)據(jù)操作模塊或者提供一個(gè)前端網(wǎng)絡(luò)服務(wù)自動(dòng)生成系統(tǒng)。
發(fā)明內(nèi)容針對
背景技術(shù):
中的技術(shù)問題,本發(fā)明提出了一種用于生成網(wǎng)絡(luò)服務(wù)的方法及實(shí)現(xiàn)該方法的裝置,用以響應(yīng)于網(wǎng)絡(luò)服務(wù)的開發(fā)/定制者的選擇,自動(dòng)地生成網(wǎng)絡(luò)服務(wù)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種用于生成網(wǎng)絡(luò)服務(wù)的方法,該方法包括下列步驟接收至少一個(gè)數(shù)據(jù)庫實(shí)體的選擇信息,該選擇信息用于指定網(wǎng)絡(luò)服務(wù)所訪問的至少一個(gè)數(shù)據(jù)庫實(shí)體及對應(yīng)的操作。接收網(wǎng)絡(luò)服務(wù)的輸入和輸出的選擇信息;其中,網(wǎng)絡(luò)服務(wù)的輸出包括至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作的輸出。根據(jù)網(wǎng)絡(luò)服務(wù)的輸入和輸出以及至少一個(gè)數(shù)據(jù)庫實(shí)體的配置信息,基于至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成網(wǎng)絡(luò)服務(wù)。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,提供了一種用于生成網(wǎng)絡(luò)服務(wù)的裝置,該裝置包括數(shù)據(jù)庫選擇信息接收模塊,用于接收至少一個(gè)數(shù)據(jù)庫實(shí)體的選擇信息,該選擇信息用于指定網(wǎng)絡(luò)服務(wù)所訪問的至少一個(gè)數(shù)據(jù)庫實(shí)體及對應(yīng)的操作;網(wǎng)絡(luò)服務(wù)定制信息接收模塊,用于接收網(wǎng)絡(luò)服務(wù)的輸入和輸出的選擇信息;其中,網(wǎng)絡(luò)服務(wù)的輸出包括至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作的輸出;網(wǎng)絡(luò)服務(wù)生成模塊,用于根據(jù)網(wǎng)絡(luò)服務(wù)的輸入和輸出,基于至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成網(wǎng)絡(luò)服務(wù)。本發(fā)明的方法通過接收網(wǎng)絡(luò)服務(wù)的開發(fā)/定制者對于數(shù)據(jù)庫實(shí)體的選擇信息以及接收網(wǎng)絡(luò)服務(wù)的輸入和輸出的選擇信息,根據(jù)網(wǎng)絡(luò)服務(wù)的輸入和輸出以及數(shù)據(jù)庫實(shí)體的配置信息,基于數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成網(wǎng)絡(luò)服務(wù),該生成過程在本發(fā)明中系自動(dòng)完成,因此,對于網(wǎng)絡(luò)服務(wù)接口的改變和增加的需求,網(wǎng)絡(luò)服務(wù)所對應(yīng)的項(xiàng)目的開發(fā)完全自動(dòng)完成,所以其開發(fā)/遞交過程耗時(shí)大大縮短。在本發(fā)明的實(shí)施例中,關(guān)聯(lián)一個(gè)或多個(gè)數(shù)據(jù)庫實(shí)體以生成新的數(shù)據(jù)庫實(shí)體,從而使數(shù)據(jù)庫得到更好的管理,從而被本發(fā)明的方法生成的網(wǎng)絡(luò)服務(wù)更高效地訪問。在本發(fā)明的實(shí)施例中,支持對通用數(shù)據(jù)處理插件模塊的利用,使得生成的網(wǎng)絡(luò)服務(wù)有很好的擴(kuò)展性,根據(jù)定制者對網(wǎng)絡(luò)服務(wù)的輸出的選擇/定制,基于引入的通用數(shù)據(jù)處理插件模塊,可以使得生成的網(wǎng)絡(luò)服務(wù)可擴(kuò)展地具有其他功能模塊,例如統(tǒng)計(jì)、分析、報(bào)告。通過閱讀參照以下附圖所作的對非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的以上及其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更加明顯圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于承載運(yùn)行網(wǎng)絡(luò)服務(wù)的系統(tǒng)的架構(gòu)拓?fù)鋱D;圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的運(yùn)行于服務(wù)器上的網(wǎng)絡(luò)服務(wù)的結(jié)構(gòu)示意圖;圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于生成網(wǎng)絡(luò)服務(wù)的方法的流程圖;圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于生成網(wǎng)絡(luò)服務(wù)的裝置的結(jié)構(gòu)示意圖;附圖中,相同或者相似的附圖標(biāo)識代表相同、相似或相關(guān)的部件。具體實(shí)施例方式以下結(jié)合附圖對本發(fā)明的具體實(shí)施例進(jìn)行詳細(xì)的示例性描述。圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于承載運(yùn)行網(wǎng)絡(luò)服務(wù)的系統(tǒng)的架構(gòu)拓?fù)鋱D。如圖所示,該系統(tǒng)包括兩個(gè)網(wǎng)絡(luò)服務(wù)客戶端121、122,一個(gè)網(wǎng)絡(luò)服務(wù)服務(wù)器101,虛擬數(shù)據(jù)模式裝置102,關(guān)系數(shù)據(jù)庫111、LDAP數(shù)據(jù)庫112、XML數(shù)據(jù)庫113、網(wǎng)絡(luò)服務(wù)114。在該實(shí)施例中,兩個(gè)網(wǎng)絡(luò)服務(wù)客戶端121、122基于超文本傳輸協(xié)議(HTTP)分別通過簡單對象訪問協(xié)議(SOAP)接口子模塊、表象化狀態(tài)轉(zhuǎn)變(RESTful)接口子模塊,訪問網(wǎng)絡(luò)服務(wù)服務(wù)器101所承載運(yùn)行的網(wǎng)絡(luò)服務(wù),該網(wǎng)絡(luò)服務(wù),虛擬數(shù)據(jù)模式裝置102用于構(gòu)建數(shù)據(jù)庫的實(shí)體列表以及將來自數(shù)據(jù)庫的數(shù)據(jù)映射為一個(gè)實(shí)體。例如,將關(guān)系數(shù)據(jù)庫111的表格映射為一個(gè)實(shí)體,或者將LDAP數(shù)據(jù)庫112的某一個(gè)或者多個(gè)節(jié)點(diǎn)映射為一個(gè)實(shí)體,或者將其他網(wǎng)絡(luò)服務(wù)映射為一個(gè)實(shí)體,或者將來自不同的表格或者LDAP節(jié)點(diǎn)的數(shù)據(jù)映射為一個(gè)實(shí)體。另外,關(guān)系數(shù)據(jù)庫111、LDAP數(shù)據(jù)庫112、XML數(shù)據(jù)庫113、網(wǎng)絡(luò)服務(wù)114為承載運(yùn)行網(wǎng)絡(luò)服務(wù)的服務(wù)器101在系統(tǒng)運(yùn)行過程中所訪問的數(shù)據(jù)庫。其中,網(wǎng)絡(luò)服務(wù)114為不同于本系統(tǒng)所承載運(yùn)行的網(wǎng)絡(luò)服務(wù)的另一個(gè)網(wǎng)絡(luò)服務(wù),可在系統(tǒng)運(yùn)行中被網(wǎng)絡(luò)服務(wù)服務(wù)器101上承載運(yùn)行的網(wǎng)絡(luò)服務(wù)所調(diào)用(invoking),一般地,網(wǎng)絡(luò)服務(wù)114也可以被認(rèn)為是一種類型的數(shù)據(jù)庫,和關(guān)系數(shù)據(jù)庫111、LDAP數(shù)據(jù)庫112、XML數(shù)據(jù)庫113—樣,為網(wǎng)絡(luò)服務(wù)服務(wù)器101提供請求的數(shù)據(jù)??蛇x地,通過上述虛擬數(shù)據(jù)模式裝置102所映射生成的新的數(shù)據(jù)庫實(shí)體,對應(yīng)地,在網(wǎng)絡(luò)服務(wù)服務(wù)器101上承載運(yùn)行的網(wǎng)絡(luò)服務(wù),也可訪問上述新生成的虛擬數(shù)據(jù)庫實(shí)體,而不僅是直接訪問原始數(shù)據(jù)庫實(shí)體。圖2是根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例所生成的運(yùn)行于服務(wù)器101上的網(wǎng)絡(luò)服務(wù)的結(jié)構(gòu)示意圖。如圖所示,該網(wǎng)絡(luò)服務(wù)200包括網(wǎng)絡(luò)服務(wù)的接口404’,通用數(shù)據(jù)處理模塊4032,數(shù)據(jù)庫操作模塊4031,數(shù)據(jù)庫連接模塊405,。在該實(shí)施例中,數(shù)據(jù)庫連接模塊405’,用于對外連接至相關(guān)數(shù)據(jù)庫11并從其中獲取元數(shù)據(jù)(metadata),其中可以包括下列幾種類型的數(shù)據(jù)庫連接子模塊關(guān)系數(shù)據(jù)庫111連接子模塊、LDAP數(shù)據(jù)庫112連接子模塊、XML數(shù)據(jù)庫113連接子模塊、網(wǎng)絡(luò)服務(wù)114連接子模塊。并且,該數(shù)據(jù)庫連接模塊405’是可擴(kuò)展的,根據(jù)需要,還可由本發(fā)明的方法的另外的實(shí)施例生成對于其他類型的數(shù)據(jù)庫的連接子模塊。該數(shù)據(jù)庫連接模塊405’,根據(jù)數(shù)據(jù)庫的配置文件連接至各種類型的數(shù)據(jù)庫。網(wǎng)絡(luò)服務(wù)的接口404’用于對外響應(yīng)網(wǎng)絡(luò)服務(wù)客戶端12的連接請求/調(diào)用,例如但不限于SOAP接口、RESTful接口的連接請求/調(diào)用等。數(shù)據(jù)庫操作模塊4031用于支持網(wǎng)絡(luò)服務(wù)200對各種類型的數(shù)據(jù)庫實(shí)體11進(jìn)行各種操作訪問。通用數(shù)據(jù)處理模塊4032,用于對數(shù)據(jù)庫操作模塊4031的輸出,進(jìn)行進(jìn)一步的處理,比如對數(shù)據(jù)庫操作模塊4031的輸出結(jié)果進(jìn)行數(shù)據(jù)的統(tǒng)計(jì),分析等處理。并且,越來越多的用戶需要網(wǎng)絡(luò)服務(wù)進(jìn)行數(shù)據(jù)操作,這個(gè)需求是持續(xù)不斷變化的,即客戶會(huì)按照其需求而不斷有改變或者增加網(wǎng)絡(luò)服務(wù)接口的需要。對于每一次網(wǎng)絡(luò)服務(wù)接口的變動(dòng),網(wǎng)絡(luò)服務(wù)所對應(yīng)的項(xiàng)目的開發(fā)由于需要人工進(jìn)行,所以其開發(fā)/遞交過程會(huì)耗費(fèi)大量時(shí)間。在圖1中的網(wǎng)絡(luò)運(yùn)行環(huán)境中,網(wǎng)絡(luò)服務(wù)客戶端121,122對服務(wù)器101上運(yùn)行的網(wǎng)絡(luò)服務(wù)200所進(jìn)行的調(diào)用,可能會(huì)因?yàn)榫W(wǎng)絡(luò)服務(wù)客戶端121,122—側(cè)的需求的改變而發(fā)生調(diào)用接口的改變,此時(shí),現(xiàn)有技術(shù)中的解決方案是通過人工編輯程序生成帶有新的網(wǎng)絡(luò)調(diào)用接口的網(wǎng)絡(luò)服務(wù),這種軟件工程開發(fā)周期長,耗費(fèi)人力多。本發(fā)明的實(shí)施例中,通過在上述的網(wǎng)絡(luò)服務(wù)在開發(fā)過程中設(shè)置人機(jī)交互接口,使網(wǎng)絡(luò)服務(wù)定制者的選擇信息可以計(jì)算機(jī)化地被網(wǎng)絡(luò)服務(wù)的自動(dòng)生成方法或裝置所采集,并被用于生成對應(yīng)的網(wǎng)絡(luò)服務(wù)模塊及真實(shí)業(yè)務(wù)邏輯,從而使生成的網(wǎng)絡(luò)服務(wù)具有對應(yīng)于網(wǎng)絡(luò)服務(wù)定制者需求的功能屬性,例如,新生成的網(wǎng)絡(luò)服務(wù)可以支持網(wǎng)絡(luò)服務(wù)客戶端1、2的帶有新的網(wǎng)絡(luò)調(diào)用接口定義的調(diào)用。現(xiàn)有技術(shù)中無法通過自動(dòng)的手段采集網(wǎng)絡(luò)服務(wù)定制者對網(wǎng)絡(luò)服務(wù)相關(guān)信息的選擇/定義,并使網(wǎng)絡(luò)服務(wù)的新的需求在新生成的網(wǎng)絡(luò)服務(wù)中有所反映。假定在該實(shí)施例的網(wǎng)絡(luò)中配置有關(guān)系數(shù)據(jù)庫111、LDAP數(shù)據(jù)庫112、XML數(shù)據(jù)庫113、網(wǎng)絡(luò)服務(wù)114。其中配置的關(guān)系數(shù)據(jù)庫111中存儲(chǔ)有某公司員工的個(gè)人信息,包括用戶的姓名,位置信息,年齡,生日,電話號碼等等,同時(shí)該關(guān)系數(shù)據(jù)庫111所提供的基本操作包括選擇(SELECT)、更新(UPDATE)、刪除(DELETE)和插入(INSERT)等,LDAP數(shù)據(jù)庫112存儲(chǔ)用戶的電話相關(guān)信息,比如通話記錄,網(wǎng)絡(luò)服務(wù)的接口需求以網(wǎng)絡(luò)服務(wù)的輸入?yún)?shù)和輸出參數(shù)來定義。其中,輸入?yún)?shù)是指網(wǎng)絡(luò)服務(wù)客戶端121、122調(diào)用網(wǎng)絡(luò)服務(wù)時(shí)需要提供的信息,例如,該公司員工的用戶名,輸出參數(shù)是指服務(wù)所生成的結(jié)果集,例如該公司的員工的位置信息,年齡,生日,電話號碼。上述網(wǎng)絡(luò)服務(wù)的接口以及該網(wǎng)絡(luò)服務(wù)所訪問的數(shù)據(jù)庫需要由網(wǎng)絡(luò)服務(wù)開發(fā)者選擇。圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于生成網(wǎng)絡(luò)服務(wù)的方法的流程圖。如圖所示,該方法包括步驟S301、S302、S303。在該實(shí)施例的步驟S301中,接收至少一個(gè)數(shù)據(jù)庫實(shí)體的選擇信息,該選擇信息用于指定所要生成的網(wǎng)絡(luò)服務(wù)所訪問的至少一個(gè)數(shù)據(jù)庫實(shí)體及對應(yīng)的操作。例如,該實(shí)施例中接收一個(gè)選擇信息,該選擇信息指定從關(guān)系數(shù)據(jù)庫111中通過SELECT操作對該數(shù)據(jù)庫進(jìn)行訪問。此處,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,步驟S301中的至少一個(gè)數(shù)據(jù)庫實(shí)體,可以包括但不限于關(guān)系數(shù)據(jù)庫的至少一個(gè)表,LDAP數(shù)據(jù)庫的至少一個(gè)節(jié)點(diǎn),XML數(shù)據(jù)庫的至少一個(gè)節(jié)點(diǎn),至少一個(gè)其他的網(wǎng)絡(luò)服務(wù)或者其他類型的數(shù)據(jù)庫實(shí)體。在步驟S302中,接收網(wǎng)絡(luò)服務(wù)的輸入和輸出的選擇信息;其中,網(wǎng)絡(luò)服務(wù)的輸出包括至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作的輸出。在該實(shí)施例中,網(wǎng)絡(luò)服務(wù)的輸入為某公司員工的用戶名,網(wǎng)絡(luò)服務(wù)的輸出是該公司的員工的位置信息,年齡,生日,電話號碼。其中,網(wǎng)絡(luò)服務(wù)的輸出可以被關(guān)系數(shù)據(jù)庫111的操作的輸出能力所滿足,在本實(shí)施例中,網(wǎng)絡(luò)服務(wù)的輸出為公司員工的位置信息,年齡,生日,電話號碼,這些信息都可以被關(guān)系數(shù)據(jù)庫111的SELECT操作的輸出結(jié)果涵蓋。本實(shí)施例的方法的步驟S302中,接收將網(wǎng)絡(luò)服務(wù)的輸入?yún)?shù)(例如,公司員工的用戶名)作為的關(guān)系數(shù)據(jù)庫111的SELECT操作的輸入的選擇/指定,并接收對網(wǎng)絡(luò)服務(wù)的輸出結(jié)果(例如,該公司的員工的位置信息,年齡,生日,電話號碼)的選擇/指定,上述網(wǎng)絡(luò)服務(wù)的輸出結(jié)果被指定作為的關(guān)系數(shù)據(jù)庫111的SELECT操作的輸出??蛇x地,上述步驟S301和S302中的接收步驟,可完全或部分地通過圖形化界面(GUI)上操作。所接收的選擇信息就可以確定用戶對網(wǎng)絡(luò)服務(wù)的定制中所包含的對該網(wǎng)絡(luò)服務(wù)的需求,所以,無需再由開發(fā)者寫代碼,就可以生成包含對應(yīng)于該網(wǎng)絡(luò)服務(wù)的需求的具體運(yùn)行邏輯/業(yè)務(wù)邏輯的,可部署運(yùn)行的網(wǎng)絡(luò)服務(wù)產(chǎn)品包。在步驟S303中,根據(jù)網(wǎng)絡(luò)服務(wù)的輸入和輸出,基于至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成網(wǎng)絡(luò)服務(wù)。在本實(shí)施例中,根據(jù)在步驟S301中接收到的用戶對數(shù)據(jù)庫實(shí)體,例如關(guān)系數(shù)據(jù)庫111,以及該數(shù)據(jù)庫的操作(例如SELECT)的選擇,以及根據(jù)在步驟S302中接收到的網(wǎng)絡(luò)服務(wù)輸入?yún)?shù),輸出參數(shù)/結(jié)果,可選地,還包括該網(wǎng)絡(luò)服務(wù)的名稱,自動(dòng)生成網(wǎng)絡(luò)服務(wù)類代碼,包括關(guān)系數(shù)據(jù)庫111的實(shí)體類代碼,例如可以是用java語言生成的對應(yīng)數(shù)據(jù)庫的java實(shí)體類(javaentityclass),以及對應(yīng)關(guān)系數(shù)據(jù)庫111的數(shù)據(jù)庫類型的實(shí)體操作類代碼,例如可以是用java語言生成的數(shù)據(jù)庫的數(shù)據(jù)操作類(javaDataoperationclass),以實(shí)現(xiàn)對關(guān)系數(shù)據(jù)庫111的SELECT操作等,優(yōu)選地,還生成網(wǎng)絡(luò)服務(wù)描述語言(WSDL)文件以共同構(gòu)成網(wǎng)絡(luò)服務(wù)。在本發(fā)明的另一個(gè)實(shí)施例中,接收到的網(wǎng)絡(luò)服務(wù)的輸出還包括一個(gè)通用數(shù)據(jù)處理模塊的輸出,則步驟S303還包括根據(jù)網(wǎng)絡(luò)服務(wù)的輸入和至少部分的輸出,基于至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成第一服務(wù);根據(jù)網(wǎng)絡(luò)服務(wù)的輸出,基于通用數(shù)據(jù)處理模塊,生成第二服務(wù);基于第一服務(wù)和第二服務(wù)生成網(wǎng)絡(luò)服務(wù)。例如,網(wǎng)絡(luò)服務(wù)的輸入為某公司員工的用戶名,而網(wǎng)絡(luò)服務(wù)的輸出不僅包括該公司的員工的位置信息,年齡,生日,電話號碼,而且還包括該公司的員工平均年齡,則在步驟S302中,還接收將關(guān)系數(shù)據(jù)庫111的SELECT操作的年齡的輸出結(jié)果,即多個(gè)公司員工的年齡值,作為通用數(shù)據(jù)處理模塊的輸入的選擇/指定信息。而在步驟S303中,根據(jù)網(wǎng)絡(luò)服務(wù)的輸入,例如公司員工的用戶名,和至少部分的輸出,例如員工的年齡、生日、電話號碼,基于關(guān)系數(shù)據(jù)庫111的SELECT操作,生成一個(gè)第一服務(wù),換言之,該第一服務(wù)的生成,即為根據(jù)用戶對數(shù)據(jù)庫及其操作的選擇,例如關(guān)系數(shù)據(jù)庫111,生成該數(shù)據(jù)庫類型所對應(yīng)的實(shí)體操作(例如SELECT)的類代碼。接著,根據(jù)步驟S302中接收到的網(wǎng)絡(luò)服務(wù)的另一部分輸出(例如公司員工的平均年齡)的選擇/指定信息,在本實(shí)施例中為,公司員工個(gè)體的年齡指定為通用數(shù)據(jù)處理模塊的輸入并將公司員工的平均年齡指定為通用數(shù)據(jù)處理模塊的輸出,基于該通用數(shù)據(jù)處理模塊,生成第二服務(wù)。換言之,上述第二服務(wù),是通過將通用數(shù)據(jù)處理模塊里面的操作集合轉(zhuǎn)變生成網(wǎng)絡(luò)服務(wù)200對外提供的調(diào)用功能所對應(yīng)的代碼而生成,具體地,通用數(shù)據(jù)處理模塊是指一個(gè)插件模塊,可以由java的jar文件實(shí)現(xiàn),從而可以根據(jù)java語言的反射機(jī)制,讀取該模塊所包含的操作以生成對應(yīng)的第二服務(wù)。接著,基于第一服務(wù)和第二服務(wù)生成網(wǎng)絡(luò)服務(wù)。根據(jù)接收到的指定的操作的順序,操作的輸入輸出之間的邏輯關(guān)系或關(guān)聯(lián)條件,將數(shù)據(jù)庫111的實(shí)體操作,例如SELECT,和通用數(shù)據(jù)處理模塊的“均值操作”合并成一個(gè)大的操作集合,即把第二服務(wù)在邏輯上連接于第一服務(wù)之后,從而接收第一服務(wù)的輸出(例如員工的個(gè)體年齡)作為其輸入,以提供網(wǎng)絡(luò)服務(wù)的輸出(例如員工的年齡均值),通過上述步驟,根據(jù)接收的至少一個(gè)數(shù)據(jù)庫實(shí)體的選擇信息以及網(wǎng)絡(luò)服務(wù)的輸入和輸出的選擇信息,生成包含具體運(yùn)行邏輯的網(wǎng)絡(luò)服務(wù)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本實(shí)施例中的通用數(shù)據(jù)處理模塊包括至少一個(gè)通用操作,在本實(shí)施例中為統(tǒng)計(jì)/平均操作,來自于第三方組件或者其他公共發(fā)布的功能組件。用戶也可以根據(jù)來自不同數(shù)據(jù)庫的數(shù)據(jù)以及網(wǎng)絡(luò)服務(wù)的常用輸出需求而自定義具有一定的功能性,例如統(tǒng)計(jì)、計(jì)算或進(jìn)一步生成各種報(bào)告等,的功能組件作為通用數(shù)據(jù)處理模塊。通用數(shù)據(jù)處理模塊可以以java庫的形式實(shí)現(xiàn)并部署,同時(shí),本發(fā)明的實(shí)施例中可以通過java反射機(jī)制(reflectionmechanism)獲得各個(gè)功能組件對外暴露(exposed)的操作方法的fn息ο根據(jù)本發(fā)明的另一實(shí)施例,在步驟S301之前還包括關(guān)聯(lián)至少一個(gè)數(shù)據(jù)庫實(shí)體以生成至少一個(gè)新的數(shù)據(jù)庫實(shí)體。假定本實(shí)施例中,網(wǎng)絡(luò)服務(wù)的輸出中所包括的位置信息,存儲(chǔ)于另一個(gè)數(shù)據(jù)庫,例如LDAP數(shù)據(jù)庫112中,而網(wǎng)絡(luò)服務(wù)的輸出所包括的該公司員工的年齡,生日,電話號碼都存儲(chǔ)于關(guān)系數(shù)據(jù)庫111中,而網(wǎng)絡(luò)服務(wù)的輸出經(jīng)常被定義為同時(shí)包括上述位置信息以及年齡,生日,電話號碼信息。為了將上述兩部分的網(wǎng)絡(luò)服務(wù)輸出以存儲(chǔ)在同一個(gè)數(shù)據(jù)庫的形式對外顯示,則在該實(shí)施例中,在步驟S301之前,關(guān)聯(lián)上述兩個(gè)數(shù)據(jù)庫實(shí)體,例如存儲(chǔ)該公司員工的年齡,生日,電話號碼的關(guān)系數(shù)據(jù)庫111相關(guān)表(table)和存儲(chǔ)位置信息的LDAP數(shù)據(jù)庫的一個(gè)或多個(gè)節(jié)點(diǎn)(node),從而生成一個(gè)新的數(shù)據(jù)庫實(shí)體。此處,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解如果上述位置信息,年齡,生日,電話號碼等信息被分別存儲(chǔ)于3個(gè)數(shù)據(jù)庫實(shí)體中,例如關(guān)系數(shù)據(jù)庫111、LDAP數(shù)據(jù)庫112和XML數(shù)據(jù)庫113,則在對數(shù)據(jù)庫進(jìn)行關(guān)聯(lián)的步驟中,也可以根據(jù)上述信息的相互關(guān)系,優(yōu)選地將3個(gè)數(shù)據(jù)庫實(shí)體關(guān)聯(lián)以生成2個(gè)新的數(shù)據(jù)庫實(shí)體,例如DB1、DB2,或者3個(gè)數(shù)據(jù)庫實(shí)體關(guān)聯(lián)以生成1個(gè)新的數(shù)據(jù)庫實(shí)體,或者僅僅關(guān)聯(lián)其中的關(guān)系數(shù)據(jù)庫111、LDAP數(shù)據(jù)庫112以生成一個(gè)新的數(shù)據(jù)庫實(shí)體DataBasel而保留XML數(shù)據(jù)庫113不對其做關(guān)聯(lián)。對應(yīng)于上述的關(guān)聯(lián)數(shù)據(jù)庫實(shí)體的步驟,在步驟S301中,接收對至少一個(gè)數(shù)據(jù)庫實(shí)體,例如XML數(shù)據(jù)庫113,和至少一個(gè)新的數(shù)據(jù)庫實(shí)體,例如DataBasel,的選擇信息,該選擇信息用于指定網(wǎng)絡(luò)服務(wù)所訪問的XML數(shù)據(jù)庫113和/或新數(shù)據(jù)庫DataBasel及對應(yīng)的操作;并且,網(wǎng)絡(luò)服務(wù)的輸出包括XML數(shù)據(jù)庫113和/或DataBasel所對應(yīng)的操作的輸出。應(yīng)當(dāng)注意,由于此處關(guān)聯(lián)操作所生成的新數(shù)據(jù)庫實(shí)體DataBasel所對應(yīng)的操作包括了關(guān)系數(shù)據(jù)庫111的操作(例如SELECT,UPDATE,DELETEandINSERT)以及LDAP數(shù)據(jù)庫實(shí)體的操作(例如,SEARCH,MODIFY,ADD,DELETE,MODIFYRDN)。對應(yīng)地,如果關(guān)聯(lián)步驟所生成的數(shù)據(jù)庫實(shí)體被映射自其他網(wǎng)絡(luò)服務(wù),則所生成的新數(shù)據(jù)庫實(shí)體的操作還包括對該網(wǎng)絡(luò)服務(wù)的調(diào)用。當(dāng)然,還可以針對其他類型的數(shù)據(jù)庫生成包括相應(yīng)的數(shù)據(jù)庫基本操作的新數(shù)據(jù)庫實(shí)體DataBase2操作,此處不再贅述。對應(yīng)地,在步驟S303中,根據(jù)網(wǎng)絡(luò)服務(wù)的輸入和輸出,基于至少一個(gè)數(shù)據(jù)庫實(shí)體,例如XML數(shù)據(jù)庫113,和/或至少一個(gè)新的數(shù)據(jù)庫實(shí)體,例如DataBasel,所對應(yīng)的操作,生成網(wǎng)絡(luò)服務(wù)。在本發(fā)明方法的另一實(shí)施例中,還包括虛擬化至少一個(gè)數(shù)據(jù)庫的數(shù)據(jù)字典以生成至少一個(gè)數(shù)據(jù)庫實(shí)體的步驟。例如,在步驟S301執(zhí)行之前,對將要生成的網(wǎng)絡(luò)服務(wù)所訪問的關(guān)系數(shù)據(jù)庫111、LDAP數(shù)據(jù)庫112和XML數(shù)據(jù)庫113的實(shí)體分別進(jìn)行虛擬化處理成為以虛擬的數(shù)據(jù)模式(virtualkhema)存在的數(shù)據(jù)庫實(shí)體。同樣地,從該virtualschema中加載的虛擬化的數(shù)據(jù)庫實(shí)體及其操作信息,也可供定制網(wǎng)絡(luò)服務(wù)時(shí)進(jìn)行選擇。根據(jù)本發(fā)明另一實(shí)施例,在步驟S303之前還包括根據(jù)至少一個(gè)數(shù)據(jù)庫實(shí)體,例如關(guān)系數(shù)據(jù)庫111、LDAP數(shù)據(jù)庫112和XML數(shù)據(jù)庫113,的配置信息,生成對上述三個(gè)數(shù)據(jù)庫的連接管理模塊的步驟,即生成對應(yīng)于配置信息的數(shù)據(jù)庫連接管理模塊代碼。該數(shù)據(jù)庫連接管理模塊(例如,可以包括數(shù)據(jù)庫連接模塊405’和數(shù)據(jù)庫操作模塊4031)用于與數(shù)據(jù)庫連接和訪問,比如建立數(shù)據(jù)庫連接池,發(fā)送數(shù)據(jù)庫請求(查詢,插入等請求)。在該實(shí)施例的上述連接模塊生成步驟中,可以針對不同的數(shù)據(jù)庫類型,會(huì)產(chǎn)生對應(yīng)的數(shù)據(jù)庫連接管理模塊。另外,上述配置信息包括上述三個(gè)數(shù)據(jù)庫實(shí)體的登錄信息和/或連接信息。其中,登錄信息包括三個(gè)數(shù)據(jù)庫實(shí)體的用戶名、密碼,連接信息包括三個(gè)數(shù)據(jù)庫實(shí)體所在的服務(wù)器的網(wǎng)絡(luò)地址、端口以及上述三個(gè)數(shù)據(jù)庫的類型信息。對應(yīng)地,在步驟S303中,基于至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作和對相關(guān)的數(shù)據(jù)庫的連接管理模塊,生成網(wǎng)絡(luò)服務(wù)??蛇x地,在該實(shí)施例中的步驟S303之前還包括基于接口模塊生成網(wǎng)絡(luò)服務(wù)的接口的步驟。對應(yīng)地,在步驟S303中,基于至少一個(gè)數(shù)據(jù)庫實(shí)體,例如關(guān)系數(shù)據(jù)庫111、LDAP數(shù)據(jù)庫112和XML數(shù)據(jù)庫113,所對應(yīng)的操作、連接模塊和網(wǎng)絡(luò)服務(wù)的接口,生成網(wǎng)絡(luò)服務(wù)。此處,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在上述實(shí)施例中的接口模塊包括但不限于簡單對象訪問協(xié)議(SOAP)接口子模塊、表象化狀態(tài)轉(zhuǎn)變(RESTful)接口子模塊。通過本發(fā)明的實(shí)施例的生成網(wǎng)絡(luò)服務(wù)的方法所產(chǎn)生的網(wǎng)絡(luò)服務(wù)通過調(diào)用JAX-WS或者JAX-RS的服務(wù)發(fā)布接口將其發(fā)布為網(wǎng)絡(luò)服務(wù)。其中,JAX-WS和JAX-RS是一組網(wǎng)絡(luò)服務(wù)規(guī)范,JAX-WS支持SOAP,JAX-RS支持REST。通過本發(fā)明的實(shí)施例的生成網(wǎng)絡(luò)服務(wù)的方法中的步驟,網(wǎng)絡(luò)服務(wù)就生成了,即所有需要的模塊/代碼都已經(jīng)自動(dòng)生成或者從第三方模塊中引入了,然后,可以進(jìn)行編譯,產(chǎn)品打包,以生成最終的網(wǎng)絡(luò)服務(wù)產(chǎn)品包,最后,就可以部署(cbploy)到網(wǎng)絡(luò)服務(wù)服務(wù)器101上運(yùn)行了。圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于生成網(wǎng)絡(luò)服務(wù)的裝置的結(jié)構(gòu)示意圖。如圖所示,該網(wǎng)絡(luò)服務(wù)自動(dòng)生成裝置400包括數(shù)據(jù)庫選擇信息接收模塊401、網(wǎng)絡(luò)服務(wù)定制信息接收模塊402、網(wǎng)絡(luò)服務(wù)生成模塊403。在該實(shí)施例中,數(shù)據(jù)庫選擇信息接收模塊401,用于接收至少一個(gè)數(shù)據(jù)庫實(shí)體的選擇信息,該選擇信息用于指定所要生成的網(wǎng)絡(luò)服務(wù)所訪問的至少一個(gè)數(shù)據(jù)庫實(shí)體及對應(yīng)的操作。例如,該實(shí)施例中數(shù)據(jù)庫選擇信息接收模塊401,用以接收一個(gè)選擇信息,該選擇信息指定從關(guān)系數(shù)據(jù)庫111中通過SELECT操作對該數(shù)據(jù)庫進(jìn)行訪問。此處,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,數(shù)據(jù)庫選擇信息接收模塊401所針對的至少一個(gè)數(shù)據(jù)庫實(shí)體,可以包括但不限于關(guān)系數(shù)據(jù)庫的至少一個(gè)表,LDAP數(shù)據(jù)庫的至少一個(gè)節(jié)點(diǎn),XML數(shù)據(jù)庫的至少一個(gè)節(jié)點(diǎn),至少一個(gè)其他的網(wǎng)絡(luò)服務(wù)或者其他類型的數(shù)據(jù)庫實(shí)體。在該實(shí)施例中,網(wǎng)絡(luò)服務(wù)定制信息接收模塊402,用于接收網(wǎng)絡(luò)服務(wù)的輸入和輸出的選擇信息。其中,網(wǎng)絡(luò)服務(wù)的輸出包括至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作的輸出。例如,網(wǎng)絡(luò)服務(wù)的輸入為某公司員工的用戶名,網(wǎng)絡(luò)服務(wù)的輸出是該公司的員工的位置信息,年齡,生日,電話號碼。其中,網(wǎng)絡(luò)服務(wù)的輸出可以被關(guān)系數(shù)據(jù)庫111的操作的輸出能力所滿足,在本實(shí)施例中,網(wǎng)絡(luò)服務(wù)的輸出為公司員工的位置信息,年齡,生日,電話號碼,這些信息都可以被關(guān)系數(shù)據(jù)庫111的SELECT操作的輸出結(jié)果涵蓋,即這些信息都可以通過關(guān)系數(shù)據(jù)庫111的SELECT操作而直接輸出。本實(shí)施例中的網(wǎng)絡(luò)服務(wù)定制信息接收模塊402,接收將網(wǎng)絡(luò)服務(wù)的輸入?yún)?shù)(例如,公司員工的用戶名)作為的關(guān)系數(shù)據(jù)庫111的SELECT操作的輸入的選擇/指定,并接收對網(wǎng)絡(luò)服務(wù)的輸出結(jié)果(例如,該公司的員工的位置信息,年齡,生日,電話號碼)的選擇/指定,上述網(wǎng)絡(luò)服務(wù)的輸出結(jié)果被指定作為的關(guān)系數(shù)據(jù)庫111的SELECT操作的輸出??蛇x地,上述數(shù)據(jù)庫選擇信息接收模塊401和網(wǎng)絡(luò)服務(wù)定制信息接收模塊402,可完全或部分地通過圖形化界面(GUI)對相關(guān)信息進(jìn)行接收。所接收的選擇信息就可以確定用戶對網(wǎng)絡(luò)服務(wù)的定制中所包含的對該網(wǎng)絡(luò)服務(wù)的需求,所以,無需再由開發(fā)者寫代碼,就可以生成包含對應(yīng)于該網(wǎng)絡(luò)服務(wù)的需求的具體運(yùn)行邏輯/業(yè)務(wù)邏輯的,可部署運(yùn)行的網(wǎng)絡(luò)服務(wù)產(chǎn)品包。在該實(shí)施例中,網(wǎng)絡(luò)服務(wù)生成模塊403,用于根據(jù)網(wǎng)絡(luò)服務(wù)的輸入和輸出,基于至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成網(wǎng)絡(luò)服務(wù)。在本實(shí)施例中,網(wǎng)絡(luò)服務(wù)生成模塊403根據(jù)收到的用戶對數(shù)據(jù)庫實(shí)體,例如關(guān)系數(shù)據(jù)庫111,以及該數(shù)據(jù)庫的操作(例如SELECT)的選擇,以及根據(jù)網(wǎng)絡(luò)服務(wù)定制信息接收模塊402所接收到的網(wǎng)絡(luò)服務(wù)輸入?yún)?shù),輸出參數(shù)/結(jié)果,可選地,還包括該網(wǎng)絡(luò)服務(wù)的名稱,自動(dòng)生成網(wǎng)絡(luò)服務(wù)類代碼,包括關(guān)系數(shù)據(jù)庫111的實(shí)體類代碼,例如可以是用java語言生成的對應(yīng)數(shù)據(jù)庫的java實(shí)體類(javaentityclass),以及對應(yīng)關(guān)系數(shù)據(jù)庫111的數(shù)據(jù)庫類型的實(shí)體操作類代碼,例如可以是用java語言生成的數(shù)據(jù)庫的數(shù)據(jù)操作類(javaDataoperationclass),以實(shí)現(xiàn)對關(guān)系數(shù)據(jù)庫111的SELECT的操作,優(yōu)選地,還生成網(wǎng)絡(luò)服務(wù)描述語言(WSDL)文件以共同構(gòu)成網(wǎng)絡(luò)服務(wù)。在本發(fā)明的另一個(gè)實(shí)施例中,網(wǎng)絡(luò)服務(wù)定制信息接收模塊402接收到的網(wǎng)絡(luò)服務(wù)的輸出還包括一個(gè)通用數(shù)據(jù)處理模塊的輸出,則該實(shí)施例的網(wǎng)絡(luò)服務(wù)自動(dòng)生成模塊400還包括第一服務(wù)生成模塊,和第二服務(wù)生成模塊。其中,第一服務(wù)生成模塊,用于根據(jù)網(wǎng)絡(luò)服務(wù)的輸入和至少部分的輸出,基于至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成第一服務(wù)。而第二服務(wù)生成模塊,用于根據(jù)網(wǎng)絡(luò)服務(wù)的輸出,基于通用數(shù)據(jù)處理模塊,生成第二服務(wù)。相應(yīng)地,網(wǎng)絡(luò)服務(wù)生成模塊403基于第一服務(wù)和第二服務(wù)生成網(wǎng)絡(luò)服務(wù)。例如,網(wǎng)絡(luò)服務(wù)的輸入為某公司員工的用戶名,而網(wǎng)絡(luò)服務(wù)的輸出不僅包括該公司的員工的位置信息,年齡,生日,電話號碼,而且還包括該公司的員工平均年齡,則網(wǎng)絡(luò)服務(wù)定制信息接收模塊402,還接收將關(guān)系數(shù)據(jù)庫111的SELECT操作的年齡的輸出結(jié)果(即多個(gè)公司員工的年齡值)作為通用數(shù)據(jù)處理模塊的輸入的選擇/指定信息。而第一服務(wù)生成模塊根據(jù)網(wǎng)絡(luò)服務(wù)的輸入,例如公司員工的用戶名,和至少部分的輸出,例如員工的年齡、生日、電話號碼,基于關(guān)系數(shù)據(jù)庫111的SELECT操作,生成一個(gè)第一服務(wù),換言之,該第一服務(wù)的生成,即為第一服務(wù)生成模塊根據(jù)用戶對數(shù)據(jù)庫及其操作的選擇,例如關(guān)系數(shù)據(jù)庫111,生成該數(shù)據(jù)庫類型所對應(yīng)的實(shí)體操作(例如SELECT)的類代碼。接著,根據(jù)網(wǎng)絡(luò)服務(wù)定制信息接收模塊402接收到的網(wǎng)絡(luò)服務(wù)的另一部分輸出(例如公司員工的平均年齡)的選擇/指定信息,在本實(shí)施例中,將公司員工個(gè)體的年齡指定為通用數(shù)據(jù)處理模塊的輸入并將公司員工的平均年齡指定為通用數(shù)據(jù)處理模塊的輸出,第一服務(wù)生成模塊基于該通用數(shù)據(jù)處理模塊,生成第二服務(wù)。換言之,上述第二服務(wù)是第二服務(wù)生成模塊通過將通用數(shù)據(jù)處理模塊里面的操作集合轉(zhuǎn)變生成網(wǎng)絡(luò)服務(wù)200對外提供的調(diào)用功能所對應(yīng)的代碼而生成。具體地,其中通用數(shù)據(jù)處理模塊可以由java的jar文件實(shí)現(xiàn),從而第二服務(wù)生成模塊,可以根據(jù)java語言的反射機(jī)制,讀取該通用數(shù)據(jù)處理模塊所包含的操作以生成第二服務(wù)。接著,網(wǎng)絡(luò)服務(wù)生成模塊403基于第一服務(wù)和第二服務(wù)生成網(wǎng)絡(luò)服務(wù)。即根據(jù)接收到的指定的操作的順序,操作的輸入輸出之間的邏輯關(guān)系或關(guān)聯(lián)條件,網(wǎng)絡(luò)服務(wù)生成模塊403將數(shù)據(jù)庫111的實(shí)體操作,例如SELECT,和通用數(shù)據(jù)處理模塊的“均值操作”合并成一個(gè)新的操作集合,即把第二服務(wù)在邏輯上連接于第一服務(wù)之后,從而接收第一服務(wù)的輸出(例如員工的個(gè)體年齡)作為其輸入,以提供網(wǎng)絡(luò)服務(wù)的輸出(例如員工的年齡均值)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本實(shí)施例中的通用數(shù)據(jù)處理模塊包括至少一個(gè)通用操作,在本實(shí)施例中為統(tǒng)計(jì)/平均操作,來自于第三方組件或者其他公共發(fā)布或者自行開發(fā)的功能組件、庫文件。用戶也可以根據(jù)來自不同數(shù)據(jù)庫的數(shù)據(jù)以及網(wǎng)絡(luò)服務(wù)的常用輸出需求而自定義具有一定的功能性,例如統(tǒng)計(jì)、計(jì)算或進(jìn)一步生成各種報(bào)告等,的功能組件作為通用數(shù)據(jù)處理模塊。例如,通用數(shù)據(jù)處理模塊可以以java庫的形式實(shí)現(xiàn)并部署,同時(shí),本發(fā)明的實(shí)施例中可以通過java反射機(jī)制(reflectionmechanism)獲得各個(gè)功能組件對外暴露(exposed)的操作方法的信息。本發(fā)明的實(shí)施例中的生成網(wǎng)絡(luò)服務(wù)的裝置中,支持對上述通用數(shù)據(jù)處理模塊的利用,使得生成的網(wǎng)絡(luò)服務(wù)有很好的擴(kuò)展性,在生成新的網(wǎng)絡(luò)服務(wù)時(shí),如果除了對數(shù)據(jù)庫的訪問,還需要其他的邏輯功能,只需要開發(fā)新的庫文件,或者引用已有的函數(shù)庫即可,并且這些函數(shù)庫或者庫文件都是可以重用的。根據(jù)本發(fā)明的另一實(shí)施例,在面向數(shù)據(jù)庫11,還包括數(shù)據(jù)庫實(shí)體關(guān)聯(lián)模塊,用于關(guān)聯(lián)至少一個(gè)數(shù)據(jù)庫實(shí)體以生成至少一個(gè)新的數(shù)據(jù)庫實(shí)體。假定本實(shí)施例中,網(wǎng)絡(luò)服務(wù)定制信息接收模塊402所接收到的網(wǎng)絡(luò)服務(wù)的輸出中所包括的位置信息,存儲(chǔ)于另一個(gè)數(shù)據(jù)庫,例如LDAP數(shù)據(jù)庫112中,而網(wǎng)絡(luò)服務(wù)的輸出所包括的該公司員工的年齡,生日,電話號碼都存儲(chǔ)于關(guān)系數(shù)據(jù)庫111中,而網(wǎng)絡(luò)服務(wù)的輸出經(jīng)常被定義為同時(shí)包括上述位置信息以及年齡,生日,電話號碼信息。為了將上述兩部分的網(wǎng)絡(luò)服務(wù)輸出以存儲(chǔ)在同一個(gè)數(shù)據(jù)庫的形式對外顯示,在該實(shí)施例中,數(shù)據(jù)庫實(shí)體關(guān)聯(lián)模塊關(guān)聯(lián)上述兩個(gè)數(shù)據(jù)庫實(shí)體,例如存儲(chǔ)該公司員工的年齡,生日,電話號碼的關(guān)系數(shù)據(jù)庫111相關(guān)表(table)和存儲(chǔ)位置信息的LDAP數(shù)據(jù)庫的一個(gè)或多個(gè)節(jié)點(diǎn)(node),從而生成一個(gè)新的數(shù)據(jù)庫實(shí)體。此處,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解如果上述位置信息,年齡,生日,電話號碼等信息被分別存儲(chǔ)于3個(gè)數(shù)據(jù)庫實(shí)體中,例如關(guān)系數(shù)據(jù)庫111、LDAP數(shù)據(jù)庫112和XML數(shù)據(jù)庫113,則在數(shù)據(jù)庫實(shí)體關(guān)聯(lián)模塊對數(shù)據(jù)庫進(jìn)行關(guān)聯(lián)時(shí),也可以根據(jù)上述信息的相互關(guān)系,優(yōu)選將3個(gè)數(shù)據(jù)庫實(shí)體關(guān)聯(lián)以生成2個(gè)新的數(shù)據(jù)庫實(shí)體,例如DB1、DB2,或者3個(gè)數(shù)據(jù)庫實(shí)體關(guān)聯(lián)以生成1個(gè)新的數(shù)據(jù)庫實(shí)體,或者僅僅關(guān)聯(lián)其中的關(guān)系數(shù)據(jù)庫111、LDAP數(shù)據(jù)庫112以生成一個(gè)新的數(shù)據(jù)庫實(shí)體DataBasel而保留XML數(shù)據(jù)庫113不對其做關(guān)聯(lián)。對應(yīng)于上述的數(shù)據(jù)庫實(shí)體關(guān)聯(lián)模塊,數(shù)據(jù)庫選擇信息接收模塊401接收對至少一個(gè)數(shù)據(jù)庫實(shí)體,例如XML數(shù)據(jù)庫113,和至少一個(gè)新的數(shù)據(jù)庫實(shí)體,例如DataBasel,的選擇信息,該選擇信息用于指定網(wǎng)絡(luò)服務(wù)所訪問的XML數(shù)據(jù)庫113和/或新數(shù)據(jù)庫DataBasel及對應(yīng)的操作;并且,網(wǎng)絡(luò)服務(wù)的輸出包括XML數(shù)據(jù)庫113和/或DataBasel所對應(yīng)的操作的輸出。應(yīng)當(dāng)注意,由于此處數(shù)據(jù)庫實(shí)體關(guān)聯(lián)模塊所生成的新數(shù)據(jù)庫實(shí)體DataBasel所對應(yīng)的操作包括了關(guān)系數(shù)據(jù)庫111的操作(例如SELECT,UPDATE,DELETEandINSERT)以及LDAP數(shù)據(jù)庫實(shí)體的操作(例如,SEARCH,MODIFY,ADD,DELETE,MODIFYRDN),對應(yīng)地,如果數(shù)據(jù)庫實(shí)體關(guān)聯(lián)模塊所生成的數(shù)據(jù)庫實(shí)體被映射自其他網(wǎng)絡(luò)服務(wù),則所生成的新數(shù)據(jù)庫實(shí)體的操作還包括對該網(wǎng)絡(luò)服務(wù)的調(diào)用。當(dāng)然,還可以針對其他類型的數(shù)據(jù)庫生成包括相應(yīng)的數(shù)據(jù)庫基本操作的新數(shù)據(jù)庫實(shí)體DataBase〗操作,此處不再贅述。對應(yīng)地,網(wǎng)絡(luò)服務(wù)生成模塊403,根據(jù)網(wǎng)絡(luò)服務(wù)的輸入和輸出,基于至少一個(gè)數(shù)據(jù)庫實(shí)體,例如XML數(shù)據(jù)庫113,和/或至少一個(gè)新的數(shù)據(jù)庫實(shí)體(例如DataBasel)所對應(yīng)的操作,生成網(wǎng)絡(luò)服務(wù)。在本發(fā)明的另一實(shí)施例中的網(wǎng)絡(luò)服務(wù)自動(dòng)生成裝置400中,還包括虛擬化數(shù)據(jù)庫模塊,用于虛擬化至少一個(gè)數(shù)據(jù)庫的數(shù)據(jù)字典以生成至少一個(gè)數(shù)據(jù)庫實(shí)體。例如,對將要生成的網(wǎng)絡(luò)服務(wù)所訪問的關(guān)系數(shù)據(jù)庫111、LDAP數(shù)據(jù)庫112和XML數(shù)據(jù)庫113的實(shí)體分別進(jìn)行虛擬化處理成為以虛擬的數(shù)據(jù)模式(virtualSchema)存在的數(shù)據(jù)庫實(shí)體。同樣地,從該virtualschema中加載的虛擬化的數(shù)據(jù)庫實(shí)體及其操作信息,也可供定制網(wǎng)絡(luò)服務(wù)時(shí)進(jìn)行選擇。根據(jù)本發(fā)明另一實(shí)施例的網(wǎng)絡(luò)服務(wù)自動(dòng)生成裝置400還包括接口模塊生成模塊405,用于根據(jù)至少一個(gè)數(shù)據(jù)庫實(shí)體,例如關(guān)系數(shù)據(jù)庫111、LDAP數(shù)據(jù)庫112和XML數(shù)據(jù)庫113,的配置信息,生成對上述三個(gè)數(shù)據(jù)庫的連接管理模塊,即生成對應(yīng)于配置信息的數(shù)據(jù)庫連接管理模塊代碼。該數(shù)據(jù)庫連接管理模塊(例如,可以包括數(shù)據(jù)庫連接模塊405’和數(shù)據(jù)庫操作模塊4031)用于與數(shù)據(jù)庫連接和訪問,比如建立數(shù)據(jù)庫連接池,發(fā)送數(shù)據(jù)庫請求(查詢,插入等請求)。在本實(shí)施例中,配置信息包括上述三個(gè)數(shù)據(jù)庫實(shí)體的登錄信息和/或連接信息。登錄信息包括三個(gè)數(shù)據(jù)庫實(shí)體的用戶名、密碼,連接信息包括三個(gè)數(shù)據(jù)庫實(shí)體所在的服務(wù)器的網(wǎng)絡(luò)地址、端口以及上述三個(gè)數(shù)據(jù)庫的類型信息??蛇x地,連接信息還包括以及一些數(shù)據(jù)庫連接選項(xiàng),比如最大連接數(shù)等。同時(shí),該實(shí)施例的網(wǎng)絡(luò)服務(wù)自動(dòng)生成裝置400還包括網(wǎng)絡(luò)服務(wù)接口生成模塊404,用于基于接口模塊生成目標(biāo)網(wǎng)絡(luò)服務(wù)的接口。對應(yīng)地,網(wǎng)絡(luò)服務(wù)生成模塊403還用于基于至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作以及由接口模塊生成模塊生成的上述三個(gè)數(shù)據(jù)庫的連接管理模塊和網(wǎng)絡(luò)服務(wù)的接口,生成網(wǎng)絡(luò)服務(wù)。此處,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在上述實(shí)施例中的接口模塊包括但不限于簡單對象訪問協(xié)議(SOAP)接口子模塊、表象化狀態(tài)轉(zhuǎn)變(RESTful)接口子模塊。盡管在附圖和前述的描述中詳細(xì)闡明和描述了本發(fā)明,應(yīng)認(rèn)為該闡明和描述是說明性的和示例性的,而不是限制性的;本發(fā)明不限于所上述實(shí)施方式。那些本
技術(shù)領(lǐng)域:
的一般技術(shù)人員可以通過研究說明書、公開的內(nèi)容及附圖和所附的權(quán)利要求書,理解和實(shí)施對披露的實(shí)施方式的其他改變。在權(quán)利要求中,措詞“包括”不12排除其他的元素和步驟,并且措辭“一個(gè)”不排除復(fù)數(shù)。在發(fā)明的實(shí)際應(yīng)用中,一個(gè)零件可能執(zhí)行權(quán)利要求中所引用的多個(gè)技術(shù)特征的功能。權(quán)利要求中的任何附圖標(biāo)記不應(yīng)理解為對范圍的限制。權(quán)利要求1.一種用于生成網(wǎng)絡(luò)服務(wù)的方法,該方法包括B.接收至少一個(gè)數(shù)據(jù)庫實(shí)體的選擇信息,該選擇信息用于指定所述網(wǎng)絡(luò)服務(wù)所訪問的所述至少一個(gè)數(shù)據(jù)庫實(shí)體及對應(yīng)的操作;C.接收所述網(wǎng)絡(luò)服務(wù)的輸入和輸出的選擇信息;其中,所述網(wǎng)絡(luò)服務(wù)的輸出包括所述至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作的輸出;D.根據(jù)所述網(wǎng)絡(luò)服務(wù)的輸入和輸出,基于所述至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成所述網(wǎng)絡(luò)服務(wù)。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B之前還包括A.關(guān)聯(lián)所述至少一個(gè)數(shù)據(jù)庫實(shí)體以生成至少一個(gè)新的數(shù)據(jù)庫實(shí)體;以及所述步驟B還包括,接收對所述至少一個(gè)數(shù)據(jù)庫實(shí)體和/或所述至少一個(gè)新的數(shù)據(jù)庫實(shí)體的選擇信息,該選擇信息用于指定所述網(wǎng)絡(luò)服務(wù)所訪問的所述至少一個(gè)數(shù)據(jù)庫和/或所述至少一個(gè)新的數(shù)據(jù)庫實(shí)體及對應(yīng)的操作;其中,所述網(wǎng)絡(luò)服務(wù)的輸出包括所述至少一個(gè)數(shù)據(jù)庫實(shí)體和/或所述至少一個(gè)新的數(shù)據(jù)庫實(shí)體所對應(yīng)的操作的輸出;所述步驟D還包括,根據(jù)所述網(wǎng)絡(luò)服務(wù)的輸入和輸出,基于所述至少一個(gè)數(shù)據(jù)庫實(shí)體和/或所述至少一個(gè)新的數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成所述網(wǎng)絡(luò)服務(wù)。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括步驟虛擬化至少一個(gè)數(shù)據(jù)庫的數(shù)據(jù)字典以生成所述至少一個(gè)數(shù)據(jù)庫實(shí)體。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟D之前還包括步驟-根據(jù)所述至少一個(gè)數(shù)據(jù)庫實(shí)體的配置信息,生成所述至少一個(gè)數(shù)據(jù)庫的連接模塊;以及所述步驟D還包括基于所述至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作和所述連接模塊,生成所述網(wǎng)絡(luò)服務(wù)。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所選擇的所述網(wǎng)絡(luò)服務(wù)的輸出還包括通用數(shù)據(jù)處理模塊的輸出,所述步驟D還包括Dl.根據(jù)所述網(wǎng)絡(luò)服務(wù)的輸入和至少部分的輸出,基于所述至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成第一服務(wù);D2.根據(jù)所述網(wǎng)絡(luò)服務(wù)的輸出,基于所述通用數(shù)據(jù)處理模塊,生成第二服務(wù);D3.基于所述第一服務(wù)和所述第二服務(wù)生成所述網(wǎng)絡(luò)服務(wù)。6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟D之前還包括步驟-基于接口模塊生成所述網(wǎng)絡(luò)服務(wù)的接口;以及所述步驟D還包括-基于所述至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作、所述連接模塊和所述網(wǎng)絡(luò)服務(wù)的接口,生成所述網(wǎng)絡(luò)服務(wù)。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述接口模塊包括簡單對象訪問協(xié)議接口子模塊和/或表象化狀態(tài)轉(zhuǎn)變接口子模塊。8.根據(jù)權(quán)利要求1、3-7中任意一項(xiàng)所述的方法,其特征在于,所述至少一個(gè)數(shù)據(jù)庫實(shí)體包括以下各項(xiàng)中的任一項(xiàng)或任多項(xiàng)關(guān)系數(shù)據(jù)庫的至少一頁,LDAP數(shù)據(jù)庫的至少一個(gè)節(jié)點(diǎn),XML數(shù)據(jù)庫的至少一個(gè)節(jié)點(diǎn),至少一個(gè)其他的網(wǎng)絡(luò)服務(wù)。9.根據(jù)權(quán)利要求1、3-7所述的方法,其特征在于,所述至少一個(gè)數(shù)據(jù)庫實(shí)體的配置信息包括所述至少一個(gè)數(shù)據(jù)庫實(shí)體的登錄信息和/或連接信息。10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述登錄信息包括用戶名、密碼,所述連接信息包括網(wǎng)絡(luò)地址、端口以及所述至少一個(gè)數(shù)據(jù)庫實(shí)體的類型信息。11.一種用于生成網(wǎng)絡(luò)服務(wù)的裝置,該裝置包括數(shù)據(jù)庫選擇信息接收模塊,用于接收至少一個(gè)數(shù)據(jù)庫實(shí)體的選擇信息,該選擇信息用于指定所述網(wǎng)絡(luò)服務(wù)所訪問的所述至少一個(gè)數(shù)據(jù)庫實(shí)體及對應(yīng)的操作;網(wǎng)絡(luò)服務(wù)定制信息接收模塊,用于接收所述網(wǎng)絡(luò)服務(wù)的輸入和輸出的選擇信息;其中,所述網(wǎng)絡(luò)服務(wù)的輸出包括所述至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作的輸出;網(wǎng)絡(luò)服務(wù)生成模塊,用于根據(jù)所述網(wǎng)絡(luò)服務(wù)的輸入和輸出,基于所述至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成所述網(wǎng)絡(luò)服務(wù)。12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,還包括數(shù)據(jù)庫實(shí)體關(guān)聯(lián)模塊,用于關(guān)聯(lián)所述至少一個(gè)數(shù)據(jù)庫實(shí)體以生成至少一個(gè)新的數(shù)據(jù)庫實(shí)體;以及所述數(shù)據(jù)庫定制信息接收模塊,還用于接收對所述至少一個(gè)數(shù)據(jù)庫實(shí)體和/或所述至少一個(gè)新的數(shù)據(jù)庫實(shí)體的選擇信息,該選擇信息用于指定所述網(wǎng)絡(luò)服務(wù)所訪問的所述至少一個(gè)數(shù)據(jù)庫和/或所述至少一個(gè)新的數(shù)據(jù)庫實(shí)體及對應(yīng)的操作;其中,所述網(wǎng)絡(luò)服務(wù)的輸出包括所述至少一個(gè)數(shù)據(jù)庫實(shí)體和/或所述至少一個(gè)新的數(shù)據(jù)庫實(shí)體所對應(yīng)的操作的輸出;所述網(wǎng)絡(luò)服務(wù)生成模塊,還用于根據(jù)所述網(wǎng)絡(luò)服務(wù)的輸入和輸出,基于所述至少一個(gè)數(shù)據(jù)庫實(shí)體和/或所述至少一個(gè)新的數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成所述網(wǎng)絡(luò)服務(wù)。13.根據(jù)權(quán)利要求11所述的裝置,其特征在于,還包括虛擬化數(shù)據(jù)庫模塊,用于虛擬化至少一個(gè)數(shù)據(jù)庫的數(shù)據(jù)字典以生成所述至少一個(gè)數(shù)據(jù)庫實(shí)體。14.根據(jù)權(quán)利要求11所述的裝置,其特征在于,還包括接口模塊生成模塊,用于根據(jù)所述至少一個(gè)數(shù)據(jù)庫實(shí)體的配置信息,生成所述至少一個(gè)數(shù)據(jù)庫的連接模塊;基于接口模塊生成所述網(wǎng)絡(luò)服務(wù)的接口;以及所述網(wǎng)絡(luò)服務(wù)生成模塊,還用于-基于所述至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作、所述連接模塊和所述網(wǎng)絡(luò)服務(wù)的接口,生成所述網(wǎng)絡(luò)服務(wù)。15.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所選擇的所述網(wǎng)絡(luò)服務(wù)的輸出還包括通用數(shù)據(jù)處理模塊的輸出,該裝置還包括第一服務(wù)生成模塊,用于根據(jù)所述網(wǎng)絡(luò)服務(wù)的輸入和至少部分的輸出,基于所述至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成第一服務(wù);第一服務(wù)生成模塊,用于根據(jù)所述網(wǎng)絡(luò)服務(wù)的輸出,基于所述通用數(shù)據(jù)處理模塊,生成第二服務(wù);網(wǎng)絡(luò)服務(wù)生成模塊,用于基于所述第一服務(wù)和所述第二服務(wù)生成所述網(wǎng)絡(luò)服務(wù)。全文摘要本發(fā)明屬于網(wǎng)絡(luò)服務(wù)架構(gòu)/內(nèi)容自動(dòng)生成領(lǐng)域,提供了一種用于生成網(wǎng)絡(luò)服務(wù)的方法,該方法包括步驟接收至少一個(gè)數(shù)據(jù)庫實(shí)體的選擇信息,該選擇信息用于指定網(wǎng)絡(luò)服務(wù)所訪問的至少一個(gè)數(shù)據(jù)庫實(shí)體及對應(yīng)的操作;接收網(wǎng)絡(luò)服務(wù)的輸入和輸出的選擇信息,其中,所述網(wǎng)絡(luò)服務(wù)的輸出包括所述至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作的輸出;根據(jù)網(wǎng)絡(luò)服務(wù)的輸入和輸出以及至少一個(gè)數(shù)據(jù)庫實(shí)體的配置信息,基于至少一個(gè)數(shù)據(jù)庫實(shí)體所對應(yīng)的操作,生成網(wǎng)絡(luò)服務(wù)。通過本發(fā)明中的技術(shù)方案的應(yīng)用,使網(wǎng)絡(luò)服務(wù)的架構(gòu)/代碼生成過程自動(dòng)完成,即使對網(wǎng)絡(luò)服務(wù)接口的改變和增加的需求,網(wǎng)絡(luò)服務(wù)所對應(yīng)的項(xiàng)目的開發(fā)完全自動(dòng)完成,其開發(fā)/遞交過程的耗時(shí)大大縮短。文檔編號G06F17/30GK102316128SQ20101021393公開日2012年1月11日申請日期2010年6月29日優(yōu)先權(quán)日2010年6月29日發(fā)明者田永軍,齊行哲申請人:阿爾卡特朗訊