專(zhuān)利名稱(chēng):一種利用標(biāo)記語(yǔ)言描述并訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)上網(wǎng)絡(luò)服務(wù)的技術(shù)領(lǐng)域,特別是一種利用標(biāo)記語(yǔ)言描述并訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)的方法。
背景技術(shù):
網(wǎng)絡(luò)服務(wù)指互聯(lián)網(wǎng)上具有標(biāo)準(zhǔn)訪(fǎng)問(wèn)接口的支持通過(guò)網(wǎng)絡(luò)進(jìn)行訪(fǎng)問(wèn)的程序?qū)嶓w,它接收客戶(hù)程序的訪(fǎng)問(wèn)請(qǐng)求,然后執(zhí)行相應(yīng)動(dòng)作,網(wǎng)絡(luò)服務(wù)中最典型的是萬(wàn)維網(wǎng)服務(wù)(Web Services),其他比如網(wǎng)格服務(wù)(GridServices)、CORBA、遠(yuǎn)程過(guò)程調(diào)用(RPC)、遠(yuǎn)程方法調(diào)用(RMI)等也可歸入此類(lèi)。隨著需求的發(fā)展和互聯(lián)網(wǎng)技術(shù)的進(jìn)步,網(wǎng)絡(luò)服務(wù)的重要性日益增加,有越來(lái)越多的系統(tǒng)和用戶(hù)使用網(wǎng)絡(luò)服務(wù)。因此開(kāi)發(fā)使用方便、表達(dá)能力強(qiáng)的網(wǎng)絡(luò)服務(wù)訪(fǎng)問(wèn)方法具有很重要的現(xiàn)實(shí)意義。
目前訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)主要方法是在程序內(nèi)部通過(guò)應(yīng)用程序編程接口(API)直接調(diào)用,這種方法有以下不便之處一.編寫(xiě)網(wǎng)絡(luò)服務(wù)客戶(hù)端的用戶(hù)需要與網(wǎng)絡(luò)服務(wù)的底層,比如數(shù)據(jù)類(lèi)型,服務(wù)物理位置等打交道,增加編程負(fù)擔(dān)。
二.這種方法依賴(lài)于特定語(yǔ)言,甚至特定的庫(kù)函數(shù),用戶(hù)如果使用不同語(yǔ)言或者使用不同的庫(kù),就需要了解新的API,也增加了編程負(fù)擔(dān)。
三.網(wǎng)絡(luò)服務(wù)只能通過(guò)API編程訪(fǎng)問(wèn),限制了網(wǎng)絡(luò)服務(wù)的使用。API編程只有具有一定計(jì)算機(jī)專(zhuān)業(yè)知識(shí)的人才能掌握,一般非專(zhuān)業(yè)用戶(hù)就很難自己定義網(wǎng)絡(luò)服務(wù)的訪(fǎng)問(wèn)。
四.網(wǎng)絡(luò)服務(wù)只能通過(guò)API編程訪(fǎng)問(wèn),而程序語(yǔ)言比如C和Java都是需要編譯的,這樣以后改變網(wǎng)絡(luò)服務(wù)訪(fǎng)問(wèn)定義時(shí)只有修改源代碼,重新編譯才能實(shí)現(xiàn),很不方便,在有些情況下,比如沒(méi)有源碼,不可能實(shí)現(xiàn)。
五.網(wǎng)絡(luò)服務(wù)包含多個(gè)類(lèi)型,目前每種類(lèi)型都有自己的一套訪(fǎng)問(wèn)方法和API,以至于每一個(gè)服務(wù)類(lèi)型對(duì)于開(kāi)發(fā)者來(lái)說(shuō)都是新的,都需要從頭學(xué)習(xí),增加了成本。
發(fā)明內(nèi)容
鑒于現(xiàn)有的網(wǎng)絡(luò)服務(wù)訪(fǎng)問(wèn)方法的種種不足,本發(fā)明提供了一種利用標(biāo)記語(yǔ)言描述并訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)的新方法。該方法利用網(wǎng)絡(luò)服務(wù)的共性,設(shè)計(jì)了一種標(biāo)記語(yǔ)言和支持系統(tǒng),提供統(tǒng)一的,簡(jiǎn)便的網(wǎng)絡(luò)服務(wù)訪(fǎng)問(wèn)功能。下面分別就標(biāo)記語(yǔ)言中諸要素和支持系統(tǒng)原理和組成詳細(xì)說(shuō)明。
本發(fā)明用下述技術(shù)方案來(lái)實(shí)現(xiàn)一種利用標(biāo)記語(yǔ)言描述并訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)的方法該方法利用了網(wǎng)絡(luò)服務(wù)的共性,設(shè)計(jì)了一種標(biāo)記語(yǔ)言系統(tǒng)來(lái)描述多種網(wǎng)絡(luò)服務(wù),同時(shí)設(shè)計(jì)了一種支持系統(tǒng)來(lái)完成標(biāo)記語(yǔ)言的解析和處理,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)服務(wù)的訪(fǎng)問(wèn),該方法實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)服務(wù)統(tǒng)一的,動(dòng)態(tài)的和靈活的訪(fǎng)問(wèn)。
對(duì)不同的網(wǎng)絡(luò)服務(wù)用一種語(yǔ)言進(jìn)行描述和訪(fǎng)問(wèn)。
該標(biāo)記語(yǔ)言可以嵌入其他標(biāo)記語(yǔ)言共同使用。
該標(biāo)記語(yǔ)言可以作為編程語(yǔ)言函數(shù)的輸入?yún)?shù),也可以作為程序運(yùn)行時(shí)的輸入。
關(guān)于網(wǎng)絡(luò)服務(wù)訪(fǎng)問(wèn)的參數(shù)定義,用戶(hù)只要給出必要的最小描述,訪(fǎng)問(wèn)時(shí)系統(tǒng)會(huì)自動(dòng)生成訪(fǎng)問(wèn)最終服務(wù)的完整描述和特定格式。
關(guān)于服務(wù)定位的描述有物理的和邏輯的方法,及直接和間接的方法,系統(tǒng)會(huì)自動(dòng)進(jìn)行必要的轉(zhuǎn)換和最終定位。
一種利用標(biāo)記語(yǔ)言描述并訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)支持系統(tǒng)的方法其步驟如下;支持系統(tǒng)首先需要完成對(duì)使用標(biāo)記定義的服務(wù)描述的字面解析;進(jìn)入處理階段,支持系統(tǒng)首先根據(jù)服務(wù)描述中的服務(wù)類(lèi)型、服務(wù)定位和參數(shù)定義來(lái)判斷決定是否需要獲得附加信息;判斷的標(biāo)準(zhǔn)是根據(jù)服務(wù)描述中的定義預(yù)先確定下來(lái)的,如果需要附加信息,則根據(jù)規(guī)則生成這些附加信息;新生成的附加信息與服務(wù)描述中的顯式定義的信息合并成為完整的參數(shù)表;支持系統(tǒng)得到完整的參數(shù)表后,就根據(jù)服務(wù)定位描述信息建立到服務(wù)提供方的連接,完成該服務(wù)要求的初始化工作;隨后按照服務(wù)提供方定義的格式發(fā)送請(qǐng)求命令和參數(shù),啟動(dòng)網(wǎng)絡(luò)服務(wù);網(wǎng)絡(luò)服務(wù)提供方在被請(qǐng)求后開(kāi)始運(yùn)行服務(wù),生成結(jié)果后發(fā)給服務(wù)請(qǐng)求方;服務(wù)請(qǐng)求方在獲得網(wǎng)絡(luò)服務(wù)響應(yīng)信息后,中斷連接,該次網(wǎng)絡(luò)服務(wù)調(diào)用完成,訪(fǎng)問(wèn)即完成。
標(biāo)記語(yǔ)言使用尖括號(hào)括起來(lái)的標(biāo)記字符串來(lái)標(biāo)明其所引文字的含義,其一般結(jié)構(gòu)為<標(biāo)記字符串屬性列表>被標(biāo)記文字</標(biāo)記字符串>
這種標(biāo)記方法在SGML,XML中都被使用。本方法遵循XML中定義的標(biāo)記規(guī)范定義了一套標(biāo)記字符串及相應(yīng)屬性列表,來(lái)描述網(wǎng)絡(luò)服務(wù)的訪(fǎng)問(wèn)。
網(wǎng)絡(luò)服務(wù)的訪(fǎng)問(wèn)包含以下幾個(gè)要素服務(wù)類(lèi)型、服務(wù)定位、參數(shù)定義。
服務(wù)類(lèi)型包含Web Services、Grid Services、CORBA、RPC、RMI等。本方法的支持系統(tǒng)需要這些信息來(lái)訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)實(shí)體。
服務(wù)定位使得用戶(hù)意圖使用的服務(wù)與其他服務(wù)有所區(qū)分,它既可以是基于位置的,也可以使基于描述的,它既可以是定義最終實(shí)體的,也可以是定義中介實(shí)體的。在Web Services中,這方面的靈活性具體體現(xiàn)為服務(wù)定位既可以使用服務(wù)物理位置,也可使用WSDL文檔,或者使用UDDI定義。
參數(shù)定義包含了此次訪(fǎng)問(wèn)需要傳給網(wǎng)絡(luò)服務(wù)作為輸入的值。完整的參數(shù)由三元組{名字,類(lèi)型,值}組成的列表構(gòu)成。該三元組只是作為一般的通用定義,具體到某種服務(wù)類(lèi)型上,在標(biāo)記定義中可以有所取舍,比如不顯式定義參數(shù)類(lèi)型。在支持系統(tǒng)中需要依據(jù)缺省定義或者某種推理方法或者其他相關(guān)信息把標(biāo)記定義中缺失的要素補(bǔ)上,這樣才能訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)。
根據(jù)以上諸要素,給出標(biāo)記系統(tǒng)的一種定義,如下所示<netservice type=服務(wù)類(lèi)型>
<locator>服務(wù)定位描述</locator>
<parameters>
<item name=參數(shù)名字type=參數(shù)類(lèi)型>參數(shù)值</item>
<item name=參數(shù)名字type=參數(shù)類(lèi)型>參數(shù)值</item>
......
</parameters>
</netservice>
標(biāo)記的具體實(shí)現(xiàn)并不局限于一種,只要能夠表達(dá)前面所述的諸要素即可。
圖1是標(biāo)記描述支持系統(tǒng)工作流程圖。
該方法需要支持系統(tǒng)來(lái)解析網(wǎng)絡(luò)服務(wù)標(biāo)記描述,并訪(fǎng)問(wèn)該描述所定義的服務(wù)。支持系統(tǒng)完整的流程如附圖一所示,其步驟詳細(xì)描述如下支持系統(tǒng)首先需要完成對(duì)使用上述標(biāo)記定義的服務(wù)描述的字面解析,獲得用戶(hù)待訪(fǎng)問(wèn)服務(wù)的服務(wù)類(lèi)型、服務(wù)定位和參數(shù)定義信息,隨后的處理將依據(jù)這些信息進(jìn)行(圖一中步驟1)。
隨后進(jìn)入處理階段。其中支持系統(tǒng)首先根據(jù)服務(wù)描述中的服務(wù)類(lèi)型、服務(wù)定位和參數(shù)定義來(lái)判斷決定是否需要獲得附加信息(圖一中步驟2),判斷的標(biāo)準(zhǔn)是根據(jù)服務(wù)描述中的定義預(yù)先確定下來(lái)的。如果需要附加信息,則根據(jù)規(guī)則生成這些附加信息(圖一中步驟3),然后與服務(wù)描述中的顯式定義的信息合并并建立成為完整的參數(shù)表,該參數(shù)表完全滿(mǎn)足服務(wù)提供方的要求(圖一中步驟4),否則直接到下一步。支持系統(tǒng)得到完整的參數(shù)表后,就根據(jù)服務(wù)定位描述信息建立到服務(wù)提供方的連接,完成該服務(wù)要求的初始化工作(圖一中步驟5),隨后按照服務(wù)提供方定義的格式發(fā)送請(qǐng)求命令和參數(shù),啟動(dòng)網(wǎng)絡(luò)服務(wù)(圖一中步驟6)。網(wǎng)絡(luò)服務(wù)提供方在被請(qǐng)求后開(kāi)始運(yùn)行服務(wù),生成結(jié)果后發(fā)給服務(wù)請(qǐng)求方。服務(wù)請(qǐng)求方在獲得網(wǎng)絡(luò)服務(wù)響應(yīng)信息后,中斷連接,該次網(wǎng)絡(luò)服務(wù)調(diào)用完成,訪(fǎng)問(wèn)即完成。(圖一中步驟7)。
該支持系統(tǒng)分別以庫(kù),和程序的形式提供。庫(kù)系統(tǒng)提供單一的API函數(shù),以標(biāo)記描述為輸入?yún)?shù),用戶(hù)在其程序中調(diào)用此函數(shù)就可以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)服務(wù)的調(diào)用。程序系統(tǒng)運(yùn)行時(shí)直接接收用戶(hù)的標(biāo)記描述,然后調(diào)用相應(yīng)網(wǎng)絡(luò)服務(wù)。
本發(fā)明的效果體現(xiàn)在一.該發(fā)明統(tǒng)一了多種網(wǎng)絡(luò)服務(wù)的訪(fǎng)問(wèn)界面,用戶(hù)掌握這種標(biāo)記系統(tǒng)就可以實(shí)現(xiàn)對(duì)全部網(wǎng)絡(luò)服務(wù)的訪(fǎng)問(wèn)。
二.該發(fā)明定義的標(biāo)記系統(tǒng)屏蔽了網(wǎng)絡(luò)服務(wù)復(fù)雜的底層結(jié)構(gòu),定義的要素簡(jiǎn)單直觀(guān),用戶(hù)易于學(xué)習(xí)使用。
三.該發(fā)明定義的標(biāo)記系統(tǒng)與語(yǔ)言,系統(tǒng)無(wú)關(guān),實(shí)現(xiàn)了跨語(yǔ)言與跨平臺(tái)。
四.該發(fā)明允許不直接使用API調(diào)用,支持在程序運(yùn)行時(shí)接收服務(wù)描述,滿(mǎn)足用戶(hù)動(dòng)態(tài)多變的網(wǎng)絡(luò)服務(wù)調(diào)用請(qǐng)求。
五.該發(fā)明定義的標(biāo)記描述系統(tǒng)可以嵌入在其他的標(biāo)記語(yǔ)言中共同使用。
本發(fā)明的方法簡(jiǎn)化了用戶(hù)對(duì)網(wǎng)絡(luò)訪(fǎng)問(wèn)訪(fǎng)問(wèn)的定義,用戶(hù)只需要提供必要的最小信息,系統(tǒng)會(huì)自動(dòng)完成剩下的工作。該方法實(shí)現(xiàn)了對(duì)多種網(wǎng)絡(luò)服務(wù)統(tǒng)一的,動(dòng)態(tài)的和靈活的訪(fǎng)問(wèn),適用于多種平臺(tái)和語(yǔ)言,適合編程開(kāi)發(fā)者和最終用戶(hù)使用。
權(quán)利要求
1.一種利用標(biāo)記語(yǔ)言描述并訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)的方法該方法利用了網(wǎng)絡(luò)服務(wù)的共性,設(shè)計(jì)了一種標(biāo)記語(yǔ)言系統(tǒng)來(lái)描述多種網(wǎng)絡(luò)服務(wù),同時(shí)設(shè)計(jì)了一種支持系統(tǒng)來(lái)完成標(biāo)記語(yǔ)言的解析和處理,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)服務(wù)的訪(fǎng)問(wèn),該方法實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)服務(wù)統(tǒng)一的,動(dòng)態(tài)的和靈活的訪(fǎng)問(wèn)。
2.如權(quán)利要求1所述的利用標(biāo)記語(yǔ)言描述并訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)的方法,其特征在于對(duì)不同的網(wǎng)絡(luò)服務(wù)用一種語(yǔ)言進(jìn)行描述和訪(fǎng)問(wèn)。
3.如權(quán)利要求1所述的利用標(biāo)記語(yǔ)言描述并訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)的方法,其特征在于該標(biāo)記語(yǔ)言可以嵌入其他標(biāo)記語(yǔ)言共同使用。
4.如權(quán)利要求1所述的利用標(biāo)記語(yǔ)言描述并訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)的方法,其特征在于該標(biāo)記語(yǔ)言可以作為編程語(yǔ)言函數(shù)的輸入?yún)?shù),也可以作為程序運(yùn)行時(shí)的輸入。
5.如權(quán)利要求1所述的利用標(biāo)記語(yǔ)言描述并訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)的方法,其特征在于關(guān)于網(wǎng)絡(luò)服務(wù)訪(fǎng)問(wèn)的參數(shù)定義,用戶(hù)只要給出必要的最小描述,訪(fǎng)問(wèn)時(shí)系統(tǒng)會(huì)自動(dòng)生成訪(fǎng)問(wèn)最終服務(wù)的完整描述和特定格式。
6.如權(quán)利要求1所述的利用標(biāo)記語(yǔ)言描述并訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)的方法,其特征在于關(guān)于服務(wù)定位的描述有物理的和邏輯的方法,及直接和間接的方法,系統(tǒng)會(huì)自動(dòng)進(jìn)行必要的轉(zhuǎn)換和最終定位。
7.一種利用標(biāo)記語(yǔ)言描述并訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)支持系統(tǒng)的方法其步驟如下;支持系統(tǒng)首先需要完成對(duì)使用標(biāo)記定義的服務(wù)描述的字面解析;進(jìn)入處理階段,支持系統(tǒng)首先根據(jù)服務(wù)描述中的服務(wù)類(lèi)型、服務(wù)定位和參數(shù)定義來(lái)判斷決定是否需要獲得附加信息;判斷的標(biāo)準(zhǔn)是根據(jù)服務(wù)描述中的定義預(yù)先確定下來(lái)的,如果需要附加信息,則根據(jù)規(guī)則生成這些附加信息;新生成的附加信息與服務(wù)描述中的顯式定義的信息合并成為完整的參數(shù)表;支持系統(tǒng)得到完整的參數(shù)表后,就根據(jù)服務(wù)定位描述信息建立到服務(wù)提供方的連接,完成該服務(wù)要求的初始化工作;隨后按照服務(wù)提供方定義的格式發(fā)送請(qǐng)求命令和參數(shù),啟動(dòng)網(wǎng)絡(luò)服務(wù);網(wǎng)絡(luò)服務(wù)提供方在被請(qǐng)求后開(kāi)始運(yùn)行服務(wù),生成結(jié)果后發(fā)給服務(wù)請(qǐng)求方;服務(wù)請(qǐng)求方在獲得網(wǎng)絡(luò)服務(wù)響應(yīng)信息后,中斷連接,該次網(wǎng)絡(luò)服務(wù)調(diào)用完成,訪(fǎng)問(wèn)即完成。
全文摘要
一種利用標(biāo)記語(yǔ)言描述并訪(fǎng)問(wèn)網(wǎng)絡(luò)服務(wù)的方法,設(shè)計(jì)了一種標(biāo)記語(yǔ)言來(lái)統(tǒng)一描述多種網(wǎng)絡(luò)服務(wù),同時(shí)為此設(shè)計(jì)了一種支持系統(tǒng)來(lái)完成該標(biāo)記語(yǔ)言的解析和處理,并實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)服務(wù)的訪(fǎng)問(wèn)。包括字面解析;判斷是否需要附加信息;建立完整的參數(shù)表;完成初始化工作;啟動(dòng)網(wǎng)絡(luò)服務(wù);該方法簡(jiǎn)化了用戶(hù)對(duì)網(wǎng)絡(luò)訪(fǎng)問(wèn)訪(fǎng)問(wèn)的定義,用戶(hù)只需要提供必要的最小信息,系統(tǒng)會(huì)自動(dòng)完成剩下的工作。該方法實(shí)現(xiàn)了對(duì)多種網(wǎng)絡(luò)服務(wù)統(tǒng)一的,動(dòng)態(tài)的和靈活的訪(fǎng)問(wèn),適用于多種平臺(tái)和語(yǔ)言,適合編程開(kāi)發(fā)者和最終用戶(hù)使用。
文檔編號(hào)G06F13/00GK1474270SQ0314514
公開(kāi)日2004年2月11日 申請(qǐng)日期2003年6月18日 優(yōu)先權(quán)日2003年6月18日
發(fā)明者徐志偉, 劉東華, 李偉, 李丙辰 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所