專利名稱:一種在線服務(wù)提供方法、裝置及信息系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)領(lǐng)域,尤其涉及一種在線服務(wù)提供方法、裝置及信息系統(tǒng)。
背景技術(shù):
模型驅(qū)動(dòng)架構(gòu)(Model Driv en Architecture,MDA)產(chǎn)生式系統(tǒng)能夠根據(jù)目標(biāo)系統(tǒng)特征設(shè)計(jì)出模型,再由該模型產(chǎn)生該目標(biāo)系統(tǒng)運(yùn)行時(shí)所使用的本地代碼,該本地代碼是對應(yīng)于本地環(huán)境的可運(yùn)行的代碼。傳統(tǒng)的目標(biāo)系統(tǒng)對外提供在線服務(wù)(web service)時(shí),在設(shè)計(jì)、開發(fā)該目標(biāo)系統(tǒng)時(shí),由該目標(biāo)系統(tǒng)對應(yīng)的模型產(chǎn)生一個(gè)本地代碼,以及產(chǎn)生一個(gè)對外接口代碼,并將該對外接口代碼發(fā)布為web service。其中,該對外接口代碼是對外部開放的接口代碼,主要屏蔽目標(biāo)系統(tǒng)內(nèi)部業(yè)務(wù)的參數(shù),并發(fā)布為web service給外部系統(tǒng)調(diào)用。由于與目標(biāo)系統(tǒng)對應(yīng)的模型可能發(fā)生變化,因此傳統(tǒng)的目標(biāo)系統(tǒng)對外提供在線服務(wù)(web service)時(shí),當(dāng)與目標(biāo)系統(tǒng)對應(yīng)的模型發(fā)生變化后,如果沒有及時(shí)重新生成一個(gè)新的對外接口代碼,則發(fā)布的webservice仍為原有的對外接口代碼,使得變化后的模型與發(fā)布的web service不一致,從而導(dǎo)致現(xiàn)有的目標(biāo)系統(tǒng)提供的在線服務(wù)質(zhì)量差,準(zhǔn)確性低,穩(wěn)定性差等問題,同時(shí)由于當(dāng)每次與目標(biāo)系統(tǒng)對應(yīng)的模型發(fā)生變化時(shí),均需要重新生成一個(gè)新的對外接口代碼,從而加大了維護(hù)難度以及維護(hù)成本。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種在線服務(wù)提供方法,旨在解決模型發(fā)生改變,而改變后的模型在沒有重新產(chǎn)生與改變后的模型對應(yīng)的對外接口代碼時(shí),所導(dǎo)致的改變后的模型與使用原對外接口代碼發(fā)布得到的web service不一致,使現(xiàn)有的目標(biāo)系統(tǒng)提供的在線服務(wù)質(zhì)量差,準(zhǔn)確性低,穩(wěn)定性差,從而加大維護(hù)難度以及維護(hù)成本的問題。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種在線服務(wù)提供方法,所述方法包括下述步驟接收用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文,所述請求報(bào)文的XML參數(shù)包括元數(shù)據(jù)的名稱、元數(shù)據(jù)方法的名稱;根據(jù)該請求報(bào)文確定用戶需要調(diào)用的元數(shù)據(jù)方法,并將請求報(bào)文中的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象;將該參數(shù)對象轉(zhuǎn)換為響應(yīng)報(bào)文,以使用戶根據(jù)該響應(yīng)報(bào)文調(diào)用元數(shù)據(jù)方法。本發(fā)明實(shí)施例的另一目的在于提供一種在線服務(wù)提供裝置,所述裝置包括請求報(bào)文接收單元,用于接收用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文,所述請求報(bào)文的XML參數(shù)包括元數(shù)據(jù)的名稱、元數(shù)據(jù)方法的名稱;元數(shù)據(jù)方法確定單元,用于根據(jù)該請求報(bào)文確定用戶需要調(diào)用的元數(shù)據(jù)方法,并將請求報(bào)文中的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象;元數(shù)據(jù)方法調(diào)用單元,用于將該參數(shù)對象轉(zhuǎn)換為響應(yīng)報(bào)文,以使用戶根據(jù)該響應(yīng)報(bào)文調(diào)用元數(shù)據(jù)方法。
本發(fā)明實(shí)施例的另一目的在于提供一種信息系統(tǒng),所述信息系統(tǒng)包含上述在線服務(wù)提供裝置。本發(fā)明實(shí)施例中,在目標(biāo)系統(tǒng)的運(yùn)行期選擇需要發(fā)布的元數(shù)據(jù),并對選擇發(fā)布的元數(shù)據(jù)的元信息進(jìn)行轉(zhuǎn)換,再將轉(zhuǎn)換后的元信息發(fā)布至在線服務(wù)引擎,以使該在線服務(wù)引擎提供在線服務(wù)。若虛擬代理服務(wù)接收到用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文,則將該請求報(bào)文的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象,以使用戶根據(jù)轉(zhuǎn)換后的對象調(diào)用元數(shù)據(jù)方法。由于采用了虛擬代理服務(wù),用戶可以直接調(diào)用與元數(shù)據(jù)對應(yīng)的元數(shù)據(jù)方法,因此每個(gè)元數(shù)據(jù)都不需要產(chǎn)生一個(gè)對外接口代碼,即使元數(shù)據(jù)抽象表示的模型突然改變也能夠保證該模型與發(fā)布的web service的一致性,減少了維護(hù)模型與發(fā)布的web service不一致的難度,使目標(biāo)系統(tǒng)提供的在線服務(wù)質(zhì)量、準(zhǔn)確性以及穩(wěn)定性有了很大的提高,從而減少了維護(hù)成本。并且,采用虛擬代理服務(wù)器后,可以在目標(biāo)系統(tǒng)的運(yùn)行期動(dòng)
態(tài)發(fā)布web wervice,使web service的發(fā)布更為靈活。
圖I是本發(fā)明第一實(shí)施例提供的在線服務(wù)提供方法的流程;圖2是本發(fā)明第二實(shí)施例提供的在線服務(wù)提供裝置的結(jié)構(gòu)。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實(shí)施例中,虛擬代理服務(wù)接收用戶發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文后,解析該請求報(bào)文,并根據(jù)解析結(jié)果首先確定用戶需要調(diào)用的元數(shù)據(jù)方法所屬的元數(shù)據(jù),再從該元數(shù)據(jù)中確定用戶調(diào)用的元數(shù)據(jù)方法,最后將報(bào)文中的XML參數(shù)轉(zhuǎn)換為該元數(shù)據(jù)方法的參數(shù)對象,將該參數(shù)對象轉(zhuǎn)換為響應(yīng)報(bào)文,以使用戶根據(jù)該響應(yīng)報(bào)文調(diào)用該元數(shù)據(jù)方法。本發(fā)明實(shí)施例提供了一種在線服務(wù)提供方法、裝置及信息系統(tǒng)。所述方法包括接收用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文,所述請求報(bào)文的XML參數(shù)包括元數(shù)據(jù)的名稱、元數(shù)據(jù)方法的名稱;根據(jù)所述請求報(bào)文確定用戶需要調(diào)用的元數(shù)據(jù)方法,并將請求報(bào)文中的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象;將所述參數(shù)對象轉(zhuǎn)換為響應(yīng)報(bào)文,以使用戶根據(jù)所述響應(yīng)報(bào)文調(diào)用元數(shù)據(jù)方法。所述裝置包括請求報(bào)文接收單元,用于接收用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文,所述請求報(bào)文的XML參數(shù)包括元數(shù)據(jù)的名稱、元數(shù)據(jù)方法的名稱;元數(shù)據(jù)方法確定單元,用于根據(jù)所述請求報(bào)文確定用戶需要調(diào)用的元數(shù)據(jù)方法,并將請求報(bào)文中的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象;元數(shù)據(jù)方法調(diào)用單元,用于將所述參數(shù)對象轉(zhuǎn)換為響應(yīng)報(bào)文,以使用戶根據(jù)所述響應(yīng)報(bào)文調(diào)用元數(shù)據(jù)方法。所述系統(tǒng)包括上述在線服務(wù)提供裝置的信息系統(tǒng)。本發(fā)明實(shí)施例中,在目標(biāo)系統(tǒng)的運(yùn)行期選擇需要發(fā)布的元數(shù)據(jù),并對選擇發(fā)布的元數(shù)據(jù)的元信息進(jìn)行轉(zhuǎn)換,再將轉(zhuǎn)換后的元信息發(fā)布至在線服務(wù)引擎,以使該在線服務(wù)引擎提供在線服務(wù)。若虛擬代理服務(wù)接收到用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)的請求報(bào)文,則根據(jù)該請求報(bào)文對相應(yīng)的元信息對象進(jìn)行對象轉(zhuǎn)換,以使用戶根據(jù)轉(zhuǎn)換后的對象調(diào)用元數(shù)據(jù)。由于采用了虛擬代理服務(wù),用戶可以直接調(diào)用與元數(shù)據(jù)對應(yīng)的元數(shù)據(jù)方法,因此每個(gè)元數(shù)據(jù)都不需要產(chǎn)生一個(gè)對外接口代碼,即使元數(shù)據(jù)抽象表示的模型突然改變也能夠保證該模型與發(fā)布的web service的一致性,減少了維護(hù)模型與發(fā)布的web service不一致的難度,使目標(biāo)系統(tǒng)提供的在線服務(wù)質(zhì)量、準(zhǔn)確性以及穩(wěn)定性有了很大的提高,從而減少了維護(hù)成本。并且,采用虛擬代理服務(wù)器后,可以在目標(biāo)系統(tǒng)的運(yùn)行期動(dòng)態(tài)發(fā)布webwervice,使web service的發(fā)布更為靈活。為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。實(shí)施例一:圖I示出了本發(fā)明第一實(shí)施例提供的在線服務(wù)提供方法流程。在本發(fā)明實(shí)施例中,MDA產(chǎn)生式系統(tǒng)根據(jù)目標(biāo)系統(tǒng)的特征設(shè)計(jì)出與該目標(biāo)系統(tǒng)對應(yīng)的模型,該模型產(chǎn)生一個(gè) 本地代碼,并在運(yùn)行期產(chǎn)生一個(gè)虛擬的web service服務(wù),不再產(chǎn)生對外接口代碼。其中,在本實(shí)施例中,該本地代碼為元數(shù)據(jù)方法。在步驟Sll中,接收用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文,該請求報(bào)文中的XML參數(shù)包括元數(shù)據(jù)的名稱、元數(shù)據(jù)方法的名稱。在本實(shí)施例中,用戶在web service引擎提供的信息中選擇某個(gè)元數(shù)據(jù)對應(yīng)的元數(shù)據(jù)方法,其中,元數(shù)據(jù)主要用于抽象表示業(yè)務(wù)模型的數(shù)據(jù)結(jié)構(gòu)和業(yè)務(wù)方法,該Webservice引擎為提供Web service服務(wù)的標(biāo)準(zhǔn)Web service引擎。在用戶選中了某個(gè)元數(shù)據(jù)方法后,該web service引擎再向虛擬代理服務(wù)發(fā)送調(diào)用元數(shù)據(jù)方法的請求的簡單對象訪問協(xié)議(Simple Object Access Protocol, SOAP)報(bào)文,在該請求的SOAP報(bào)文的XML參數(shù)中包括了用戶選中的元數(shù)據(jù)的名稱以及在該元數(shù)據(jù)下的元數(shù)據(jù)方法的名稱等。例如,webservice引擎提供的信息包括元數(shù)據(jù)的名稱以及與元數(shù)據(jù)對應(yīng)的元數(shù)據(jù)方法的名稱等,用戶根據(jù)webservice引擎提供的元數(shù)據(jù)名稱選中一個(gè)元數(shù)據(jù),由于一個(gè)元數(shù)據(jù)可能對應(yīng)多個(gè)元數(shù)據(jù)方法,因此用戶再根據(jù)web service引擎提供的元數(shù)據(jù)方法的名稱,在選中的元數(shù)據(jù)中選擇該元數(shù)據(jù)對應(yīng)的一個(gè)元數(shù)據(jù)方法。在用戶選擇了元數(shù)據(jù)以及元數(shù)據(jù)的方法后,webservice引擎再向虛擬代理服務(wù)發(fā)送調(diào)用選中的元數(shù)據(jù)方法的請求的SOAP報(bào)文,該虛擬代理服務(wù)接收該SOAP報(bào)文。作為本發(fā)明的另一個(gè)實(shí)施例,在接收用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文的步驟之前還包括下述步驟選擇發(fā)布的元數(shù)據(jù);對選擇發(fā)布的元數(shù)據(jù)的元信息進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換后的元信息發(fā)布至在線服務(wù)引擎,以使該在線服務(wù)引擎提供在線服務(wù)。在本發(fā)明實(shí)施例中,在目標(biāo)系統(tǒng)的運(yùn)行期,選擇需要發(fā)布的元數(shù)據(jù),比如目標(biāo)系統(tǒng)中含有A、B、C、D這4個(gè)元數(shù)據(jù),但只需要調(diào)用A和B這兩個(gè)元數(shù)據(jù)的元數(shù)據(jù)方法來提供在線服務(wù),因此,只選擇A和B這兩個(gè)元數(shù)據(jù)作為發(fā)布的元數(shù)據(jù)。在選擇了需要發(fā)布的元數(shù)據(jù)之后,再將選擇發(fā)布的元數(shù)據(jù)的元信息進(jìn)行轉(zhuǎn)換,需要轉(zhuǎn)換的元信息包括元數(shù)據(jù)的基本類型、語義以及元數(shù)據(jù)接口等信息。
其中,將元數(shù)據(jù)的元信息進(jìn)行轉(zhuǎn)換的步驟具體為轉(zhuǎn)換元數(shù)據(jù)的基本類型將元數(shù)據(jù)的數(shù)據(jù)類型映射到國際標(biāo)準(zhǔn)XML結(jié)構(gòu)定義(XML Schemas Definition, XSD)的數(shù)據(jù)類型,將元數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為XSD。例如將元數(shù)據(jù)中String轉(zhuǎn)換為XSD的String,將元數(shù)據(jù)的通用唯一識(shí)別碼(Universally UniqueIdentifier, UUID)轉(zhuǎn)換為XSD的String等。其中,XSD用來描述了 XML文檔的結(jié)構(gòu),它支持條件可擴(kuò)展、支持?jǐn)?shù)據(jù)類型,且用XML書寫。該XSD可以指定一個(gè)XML文檔所允許的結(jié)構(gòu)和內(nèi)容,并可據(jù)此檢查一個(gè)XML文檔是否是有效的;轉(zhuǎn)換元數(shù)據(jù)的語義將元數(shù)據(jù)的方法參數(shù)對應(yīng)的具體對象的語義進(jìn)行轉(zhuǎn)換或?qū)⒎祷刂抵械某橄箢悓ο髮?yīng)的具體對象的語義進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換元數(shù)據(jù)的語義時(shí)要具體化元信息的抽象情況,將元信息的抽象情況轉(zhuǎn)換為實(shí)際對應(yīng)的類。例如,假設(shè)元數(shù)據(jù)的名稱為Voucher,該Voucher含有一個(gè)save方法,則元數(shù)據(jù)Voucher和該元數(shù)據(jù)Voucher的子類 KdVoucher都有共同的save方法,且Voucher和該Voucher的子類KdVoucher的save參數(shù)都是Voucher,但在實(shí)際的應(yīng)用層,該Voucher與具體對象Voucher對應(yīng),該KdVoucher與具體對象KdVoucher對應(yīng),因此在轉(zhuǎn)換元數(shù)據(jù)的語義時(shí),是將save參數(shù)對應(yīng)的具體對象Voucher或者KdVoucher的語義進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換元數(shù)據(jù)接口將元數(shù)據(jù)接口轉(zhuǎn)換為Web服務(wù)描述語言(Web ServicesDescription Language, WSDL)。該WSDL是一個(gè)國際標(biāo)準(zhǔn),用來描述Web服務(wù)和說明如何與Web服務(wù)通信的XML語言,將元數(shù)據(jù)接口轉(zhuǎn)換為WSDL接口能夠?yàn)橛脩籼峁┓蠂H標(biāo)準(zhǔn)的接口說明。 在本實(shí)施例中,將元數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為XSD,并轉(zhuǎn)換元數(shù)據(jù)的語義以及將元數(shù)據(jù)接口轉(zhuǎn)換為WSDL。通過復(fù)雜的元信息轉(zhuǎn)換之后,再將轉(zhuǎn)換后的元信息發(fā)送給web service引擎,以使該web service引擎將接收的轉(zhuǎn)換后的元信息發(fā)布出來,供用戶根據(jù)該webservice引擎發(fā)布的信息選擇需要調(diào)用的元數(shù)據(jù)方法。在步驟S12中,根據(jù)該請求報(bào)文確定用戶需要調(diào)用的元數(shù)據(jù)方法,并將請求報(bào)文中的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象。請求的SOAP報(bào)文的XML參數(shù)包含了用戶所選擇的元數(shù)據(jù)的名稱,該元數(shù)據(jù)對應(yīng)的一個(gè)元數(shù)據(jù)方法的名稱以及其他參數(shù)信息。將請求報(bào)文中的XML參數(shù),或者說將有效的XML部分轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象。虛擬代理服務(wù)接收并解析請求的SOAP報(bào)文,并根據(jù)解析結(jié)果判斷用戶需要調(diào)用哪個(gè)元數(shù)據(jù)的元數(shù)據(jù)方法。通過該SOAP報(bào)文包含的元數(shù)據(jù)名稱能夠確定用戶需要調(diào)用哪個(gè)元數(shù)據(jù),再根據(jù)元數(shù)據(jù)方法的名稱在該元數(shù)據(jù)中確定用戶需要調(diào)用的元數(shù)據(jù)方法。在確定了調(diào)用的元數(shù)據(jù)方法后,將XML的參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象,如將XML對象轉(zhuǎn)換為JAVA對象,或者將JAVA對象轉(zhuǎn)換為XML對象。在步驟S13中,將所述參數(shù)對象轉(zhuǎn)換為響應(yīng)報(bào)文,以使用戶根據(jù)所述響應(yīng)報(bào)文調(diào)用元數(shù)據(jù)方法。進(jìn)一步地,在虛擬代理服務(wù)調(diào)用了元數(shù)據(jù)方法后,將返回的對象再轉(zhuǎn)換為SOAP報(bào)文,作為響應(yīng)web service引擎發(fā)送的請求SOAP報(bào)文的響應(yīng)SOAP報(bào)文,以使用戶能夠?qū)崿F(xiàn)調(diào)用其選擇的元數(shù)據(jù)方法,在本發(fā)明實(shí)施例中,該元數(shù)據(jù)方法也可以理解為目標(biāo)系統(tǒng)運(yùn)行時(shí)所使用的本地代碼。在本發(fā)明第一實(shí)施例中,在目標(biāo)系統(tǒng)的運(yùn)行期選擇需要發(fā)布的元數(shù)據(jù),并對選擇發(fā)布的元數(shù)據(jù)的元信息進(jìn)行轉(zhuǎn)換,再將轉(zhuǎn)換后的元信息發(fā)布至在線服務(wù)引擎,以使該在線服務(wù)引擎提供在線服務(wù)。若虛擬代理服務(wù)接收到用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文,則將該請求報(bào)文的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象,以使用戶根據(jù)轉(zhuǎn)換后的對象調(diào)用元數(shù)據(jù)方法。由于采用了虛擬代理服務(wù),用戶可以直接調(diào)用與元數(shù)據(jù)對應(yīng)的元數(shù)據(jù)方法,因此每個(gè)元數(shù)據(jù)都不需要產(chǎn)生一個(gè)對外接口代碼,即使元數(shù)據(jù)抽象表示的模型突然改變也能夠保證該模型與發(fā)布的web service的一致性,減少了維護(hù)模型與發(fā)布的web service不一致的難度,使目標(biāo)系統(tǒng)提供的在線服務(wù)質(zhì)量、準(zhǔn)確性以及穩(wěn)定性有了很大的提高,從而減少了維護(hù)成本。并且,采用虛擬代理服務(wù)器后,可以在目標(biāo)系統(tǒng)的運(yùn)行期動(dòng)態(tài)發(fā)布web wervice,使web service的發(fā)布更為靈活。實(shí)施例二 :圖2示出了本發(fā)明第二實(shí)施例提供的在線服務(wù)提供裝置結(jié)構(gòu),為了便于說明,僅不出了與本發(fā)明實(shí)施例相關(guān)的部分。該在線服務(wù)提供裝置可以用于通過有線或者無線網(wǎng)絡(luò)連接服務(wù)器的各種信息處 理終端,例如移動(dòng)電話、口袋計(jì)算機(jī)(Pocket Personal Computer,PPC)、掌上電腦、計(jì)算機(jī)、筆記本電腦、個(gè)人數(shù)字助理(Personal Digital Assistant, PDA)等,可以是運(yùn)行于這些終端內(nèi)的軟件單元、硬件單元或者軟硬件相結(jié)合的單元,也可以作為獨(dú)立的掛件集成到這些終端中或者運(yùn)行于這些終端的應(yīng)用系統(tǒng)中,其中請求報(bào)文接收單元21,用于接收用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文,該請求報(bào)文的XML參數(shù)包括元數(shù)據(jù)的名稱、元數(shù)據(jù)方法的名稱。在本實(shí)施例中,用戶在web service引擎提供的元信息中選擇某個(gè)元數(shù)據(jù)對應(yīng)的元數(shù)據(jù)方法,并發(fā)送調(diào)用選擇的元數(shù)據(jù)方法請求給web service引擎,其中,元數(shù)據(jù)主要用于抽象表示業(yè)務(wù)模型的數(shù)據(jù)結(jié)構(gòu)和業(yè)務(wù)方法。該web service引擎再向虛擬代理服務(wù)發(fā)送調(diào)用元數(shù)據(jù)方法的請求報(bào)文,如請求的SOAP報(bào)文,該請求的SOAP報(bào)文的XML參數(shù)包含了用戶所選擇的元數(shù)據(jù)的名稱,該元數(shù)據(jù)對應(yīng)的一個(gè)元數(shù)據(jù)方法的名稱等信息。元數(shù)據(jù)方法確定單元22,用于根據(jù)該請求報(bào)文確定用戶需要調(diào)用的元數(shù)據(jù)方法,并將請求報(bào)文中的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象。在本實(shí)施例中,將有效的XML部分轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象,如將XML對象轉(zhuǎn)換為JAVA對象,或者將JAVA對象轉(zhuǎn)換為XML對象。作為本發(fā)明的另一個(gè)實(shí)施例,該元數(shù)據(jù)方法確定單元22包括請求報(bào)文解析模塊221、元數(shù)據(jù)確定模塊222、元數(shù)據(jù)方法確定模塊223以及參數(shù)轉(zhuǎn)換模塊224。請求報(bào)文解析模塊221,用于解析該請求報(bào)文。元數(shù)據(jù)確定模塊222,用于根據(jù)該請求報(bào)文包含的元數(shù)據(jù)名稱確定用戶調(diào)用的元數(shù)據(jù)方法所屬的元數(shù)據(jù)。元數(shù)據(jù)方法確定模塊223,用于根據(jù)該請求報(bào)文包含的元數(shù)據(jù)方法名稱,在該元數(shù)據(jù)中確定用戶調(diào)用的元數(shù)據(jù)方法。參數(shù)轉(zhuǎn)換模塊224,用于將請求報(bào)文中的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象。如將XML對象轉(zhuǎn)換為JAVA對象,或者將JAVA對象轉(zhuǎn)換為XML對象。元數(shù)據(jù)方法調(diào)用單元23,用于將該參數(shù)對象轉(zhuǎn)換為響應(yīng)報(bào)文,以使用戶根據(jù)該響應(yīng)報(bào)文調(diào)用元數(shù)據(jù)方法。
在本發(fā)明實(shí)施例中,虛擬代理服務(wù)調(diào)用了元數(shù)據(jù)方法之后,將返回的對象再轉(zhuǎn)換為SOAP報(bào)文,作為響應(yīng)web service引擎發(fā)送的請求SOAP報(bào)文的響應(yīng)SOAP報(bào)文,以使用戶能夠?qū)崿F(xiàn)調(diào)用其選擇的元數(shù)據(jù)方法,在本發(fā)明實(shí)施例中,該元數(shù)據(jù)方法也可以理解為本地代碼。作為本發(fā)明的另一個(gè)實(shí)施例,該在線服務(wù)提供裝置還包括元數(shù)據(jù)選擇單元24,用于選擇發(fā)布的元數(shù)據(jù)。在本發(fā)明實(shí)施例中,在目標(biāo)系統(tǒng)的運(yùn)行期,選擇需要發(fā)布的元數(shù)據(jù),選中的元數(shù)據(jù)的信息將通過web service發(fā)布出來。 元數(shù)據(jù)信息發(fā)布單元25,用于對選擇發(fā)布的元數(shù)據(jù)的元信息進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換后的元信息發(fā)布至在線服務(wù)引擎,以使該在線服務(wù)引擎提供在線服務(wù)。作為本發(fā)明的另一個(gè)實(shí)施例,該元數(shù)據(jù)信息發(fā)布單元25包括元數(shù)據(jù)類型轉(zhuǎn)換模塊251、元數(shù)據(jù)語義轉(zhuǎn)換模塊252、元數(shù)據(jù)信息發(fā)布模塊253。元數(shù)據(jù)類型轉(zhuǎn)換模塊251,用于對元數(shù)據(jù)的基本類型進(jìn)行轉(zhuǎn)換。如將元數(shù)據(jù)的數(shù)據(jù)類型映射到國際標(biāo)準(zhǔn)XML結(jié)構(gòu)定義(XML Schemas Definition,XSD)的數(shù)據(jù)類型,例如將元數(shù)據(jù)中String轉(zhuǎn)換為XSD的String,將元數(shù)據(jù)的通用唯一識(shí)別碼(Universally UniqueIdentifier, UUID)轉(zhuǎn)換為 XSD 的 String 等。元數(shù)據(jù)語義轉(zhuǎn)換模塊252,用于對元數(shù)據(jù)的語義進(jìn)行轉(zhuǎn)換。如將元數(shù)據(jù)的方法參數(shù)或返回值中的抽象類對象,轉(zhuǎn)換為對應(yīng)元數(shù)據(jù)的具體對象。例如元數(shù)據(jù)Voucher和元數(shù)據(jù)Voucher的子類KdVoucher都有共同的save方法,元數(shù)據(jù)的方法參數(shù)都是Voucher,但在實(shí)際的應(yīng)用層,該Voucher與具體對象Voucher對應(yīng),該KdVoucher與具體對象KdVoucher對應(yīng)。轉(zhuǎn)換元數(shù)據(jù)的語義時(shí)要具體化這種元信息抽象情況,將其轉(zhuǎn)換為實(shí)際對應(yīng)的類。元數(shù)據(jù)信息發(fā)布模塊253,用于將轉(zhuǎn)換后的元信息發(fā)布至在線服務(wù)引擎,以使該在線服務(wù)引擎提供在線服務(wù)。作為本發(fā)明的另一實(shí)施例,該元數(shù)據(jù)信息發(fā)布單元25還包括一個(gè)元數(shù)據(jù)接口轉(zhuǎn)換模塊254,用于將元數(shù)據(jù)接口轉(zhuǎn)換為WSDL。在本發(fā)明第二實(shí)施例中,元數(shù)據(jù)信息發(fā)布單元25將元數(shù)據(jù)選擇單元24選擇的元數(shù)據(jù)的元信息發(fā)布在web service上,元數(shù)據(jù)方法確定單元22根據(jù)請求報(bào)文接收單元21接收的請求報(bào)文確定用戶需要調(diào)用的元數(shù)據(jù)方法之后,元數(shù)據(jù)方法調(diào)用單元23再對相應(yīng)的參數(shù)對象轉(zhuǎn)換為響應(yīng)報(bào)文,以使用戶根據(jù)該響應(yīng)報(bào)文調(diào)用元數(shù)據(jù)方法。由于采用了虛擬代理服務(wù),因此每個(gè)元數(shù)據(jù)都不需要產(chǎn)生一個(gè)對外接口代碼,減少了維護(hù)模型與發(fā)布的webservice不一致的難度,從而減少了維護(hù)成本。并且,采用虛擬代理服務(wù)器后,可以在目標(biāo)系統(tǒng)的運(yùn)行期動(dòng)態(tài)發(fā)布web wervice,使web service的發(fā)布更為靈活。本發(fā)明實(shí)施例中,在目標(biāo)系統(tǒng)的運(yùn)行期選擇需要發(fā)布的元數(shù)據(jù),并對選擇發(fā)布的元數(shù)據(jù)的元信息進(jìn)行轉(zhuǎn)換,再將轉(zhuǎn)換后的元信息發(fā)布至在線服務(wù)引擎,以使該在線服務(wù)引擎提供在線服務(wù)。若虛擬代理服務(wù)接收到用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文,則將該請求報(bào)文的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象,以使用戶根據(jù)轉(zhuǎn)換后的對象調(diào)用元數(shù)據(jù)方法。由于采用了虛擬代理服務(wù),用戶可以直接調(diào)用與元數(shù)據(jù)對應(yīng)的元數(shù)據(jù)方法,因此每個(gè)元數(shù)據(jù)都不需要產(chǎn)生一個(gè)對外接口代碼,即使元數(shù)據(jù)抽象表示的模型突然改變也能夠保證該模型與發(fā)布的web service的一致性,減少了維護(hù)模型與發(fā)布的web service不一致的難度,使目標(biāo)系統(tǒng)提供的在線服務(wù)質(zhì)量、準(zhǔn)確性以及穩(wěn)定性有了很大的提高,從而減少了維護(hù)成本。并且,采用虛擬代理服務(wù)器后,可以在目標(biāo)系統(tǒng)的運(yùn)行期動(dòng)態(tài)發(fā)布web wervice,使web service的發(fā)布更為靈活。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精
神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種在線服務(wù)提供方法,其特征在于,所述方法包括下述步驟 接收用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文,所述請求報(bào)文的XML參數(shù)包括元數(shù)據(jù)的名稱、元數(shù)據(jù)方法的名稱; 根據(jù)所述請求報(bào)文確定用戶需要調(diào)用的元數(shù)據(jù)方法,并將請求報(bào)文中的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象; 將所述參數(shù)對象轉(zhuǎn)換為響應(yīng)報(bào)文,以使用戶根據(jù)所述響應(yīng)報(bào)文調(diào)用元數(shù)據(jù)方法。
2.如權(quán)利要求I所述的方法,其特征在于,在所述接收用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文的步驟之前還包括下述步驟 選擇發(fā)布的元數(shù)據(jù); 對選擇發(fā)布的元數(shù)據(jù)的元信息進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換后的元信息發(fā)布至在線服務(wù)引擎,以使所述在線服務(wù)引擎提供在線服務(wù)。
3.如權(quán)利要求2所述的方法,其特征在于,所述對選擇發(fā)布的元數(shù)據(jù)的元信息進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換后的元信息發(fā)布至在線服務(wù)引擎,以使所述在線服務(wù)引擎提供在線服務(wù)的步驟具體為 對元數(shù)據(jù)的基本類型進(jìn)行轉(zhuǎn)換; 對元數(shù)據(jù)的語義進(jìn)行轉(zhuǎn)換; 將轉(zhuǎn)換后的元信息發(fā)布至在線服務(wù)引擎,以使所述在線服務(wù)引擎提供在線服務(wù)。
4.如權(quán)利要求I所述的方法,其特征在于,所述根據(jù)所述請求報(bào)文確定用戶需要調(diào)用的元數(shù)據(jù)方法,并將請求報(bào)文中的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象的步驟具體為 解析所述請求報(bào)文; 根據(jù)所述請求報(bào)文包含的元數(shù)據(jù)名稱確定用戶調(diào)用的元數(shù)據(jù)方法所屬的元數(shù)據(jù); 根據(jù)所述請求報(bào)文包含的元數(shù)據(jù)方法名稱,在所述元數(shù)據(jù)中確定用戶調(diào)用的元數(shù)據(jù)方法; 將請求報(bào)文中的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象。
5.一種在線服務(wù)提供裝置,其特征在于,所述裝置包括 請求報(bào)文接收單元,用于接收用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文,所述請求報(bào)文的XML參數(shù)包括元數(shù)據(jù)的名稱、元數(shù)據(jù)方法的名稱; 元數(shù)據(jù)方法確定單元,用于根據(jù)所述請求報(bào)文確定用戶需要調(diào)用的元數(shù)據(jù)方法,并將請求報(bào)文中的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象; 元數(shù)據(jù)方法調(diào)用單元,用于將所述參數(shù)對象轉(zhuǎn)換為響應(yīng)報(bào)文,以使用戶根據(jù)所述響應(yīng)報(bào)文調(diào)用元數(shù)據(jù)方法。
6.如權(quán)利要求5所述的裝置,其特征在于,所述裝置還包括 元數(shù)據(jù)選擇單元,用于選擇發(fā)布的元數(shù)據(jù); 元數(shù)據(jù)信息發(fā)布單元,用于對選擇發(fā)布的元數(shù)據(jù)的元信息進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換后的元信息發(fā)布至在線服務(wù)引擎,以使所述在線服務(wù)引擎提供在線服務(wù)。
7.如權(quán)利要求6所述的裝置,其特征在于,所述元數(shù)據(jù)信息發(fā)布單元包括 元數(shù)據(jù)類型轉(zhuǎn)換模塊,用于對元數(shù)據(jù)的基本類型進(jìn)行轉(zhuǎn)換; 元數(shù)據(jù)語義轉(zhuǎn)換模塊,用于對元數(shù)據(jù)的語義進(jìn)行轉(zhuǎn)換; 元數(shù)據(jù)信息發(fā)布模塊,用于將轉(zhuǎn)換后的元信息發(fā)布至在線服務(wù)引擎,以使所述在線服務(wù)引擎提供在線服務(wù)。
8.如權(quán)利要求5所述的裝置,其特征在于,所述元數(shù)據(jù)方法確定單元包括 請求報(bào)文解析模塊,用于解析所述請求報(bào)文; 元數(shù)據(jù)確定模塊,用于根據(jù)所述請求報(bào)文包含的元數(shù)據(jù)名稱確定用戶調(diào)用的元數(shù)據(jù)方法所屬的元數(shù)據(jù); 元數(shù)據(jù)方法確定模塊,用于根據(jù)所述請求報(bào)文包含的元數(shù)據(jù)方法名稱,在所述元數(shù)據(jù)中確定用戶調(diào)用的元數(shù)據(jù)方法; 參數(shù)轉(zhuǎn)換模塊,用于將請求報(bào)文中的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象。
9.一種信息系統(tǒng),其特征在于,所述信息系統(tǒng)包含權(quán)利要求5至8任一項(xiàng)權(quán)利要求所述的在線服務(wù)提供裝置。
全文摘要
本發(fā)明適用于計(jì)算機(jī)領(lǐng)域,提供了一種在線服務(wù)提供方法、裝置及系統(tǒng),所述方法包括下述步驟接收用戶通過在線服務(wù)引擎發(fā)送的調(diào)用元數(shù)據(jù)方法的請求報(bào)文,所述請求報(bào)文的XML參數(shù)包括元數(shù)據(jù)的名稱、元數(shù)據(jù)方法的名稱;根據(jù)所述請求報(bào)文確定用戶需要調(diào)用的元數(shù)據(jù)方法,并將請求報(bào)文中的XML參數(shù)轉(zhuǎn)換為元數(shù)據(jù)方法的參數(shù)對象;將所述參數(shù)對象轉(zhuǎn)換為響應(yīng)報(bào)文,以使用戶根據(jù)所述響應(yīng)報(bào)文調(diào)用元數(shù)據(jù)方法。本發(fā)明實(shí)施例采用了虛擬代理服務(wù),因此每個(gè)元數(shù)據(jù)都不需要產(chǎn)生一個(gè)對外接口代碼,減少了維護(hù)模型與發(fā)布的web service不一致的難度,從而減少了維護(hù)成本。
文檔編號G06F17/30GK102821116SQ20111015196
公開日2012年12月12日 申請日期2011年6月8日 優(yōu)先權(quán)日2011年6月8日
發(fā)明者李健愉, 潘國林, 王涿, 朱卡 申請人:金蝶軟件(中國)有限公司