韓昊 蔡淵
摘 要 :微軟公司即將推出.NET技術(shù),用于下一代的互聯(lián)網(wǎng)的應(yīng)用,這標(biāo)志著新的軟件開(kāi)發(fā)的基礎(chǔ)和結(jié)構(gòu)將發(fā)生革命性的變化。隨著.NET的平臺(tái)的全面推出,在互聯(lián)網(wǎng)上必然會(huì)出現(xiàn)許多Web Service,提供不同的信息和服務(wù)給全球的企業(yè),軟件開(kāi)發(fā)者使用。這在一方面會(huì)讓信息共享的程度更高,人們獲取信息的速度更快;另一方面,由于大量Web Service的產(chǎn)生,對(duì)這些Web Service 的合理使用將會(huì)產(chǎn)生一系列的問(wèn)題。我們希望能有一個(gè)解決的方案,對(duì)Internet 上所有的Web Service都能簡(jiǎn)單的使用。
關(guān)鍵詞: Web Service,, 智能應(yīng)用
隨著.NET的平臺(tái)的全面推出,在互聯(lián)網(wǎng)上必然會(huì)出現(xiàn)許多Web Service,提供不同的信息和服務(wù)給全球的企業(yè),軟件開(kāi)發(fā)者使用。我們相信,在Web Service大量使用以后,能提供大量Web Service的工具必然是極其受用戶歡迎的。而且在我們的標(biāo)準(zhǔn)下,客戶端的軟件可以自擴(kuò)展地使用大量的Web Service,這必然將軟件的開(kāi)發(fā)水平提高到一個(gè)新的層次,無(wú)論是軟件開(kāi)發(fā)人員,還是最終用戶,都會(huì)樂(lè)意使用,因此,我們的解決方案必然會(huì)有廣闊的應(yīng)用前景。
1.解決方案的背景
本解決方案是基于微軟.NET 架構(gòu)在互聯(lián)網(wǎng)上廣泛使用的基礎(chǔ)上提出的。我們認(rèn)為,由于.NET架構(gòu)是基于科技為人服務(wù)的理念而提出的,能夠?qū)崿F(xiàn)信息更大程度上的共享,為人提供更多的方便,加上微軟技術(shù)在操作系統(tǒng)的以及軟件平臺(tái)上的領(lǐng)先地位,.NET平臺(tái)必然將成為下一代互聯(lián)網(wǎng)上應(yīng)用最廣泛的技術(shù)平臺(tái),必然會(huì)有大量的企業(yè),軟件開(kāi)發(fā)商在.NET的基礎(chǔ)上開(kāi)發(fā)軟件,提供不同的服務(wù),以適應(yīng)人的要求。
在這個(gè)基礎(chǔ)上,我們有理由相信:下一代互聯(lián)網(wǎng)上提供的Web Service將會(huì)越來(lái)越多,最終幾乎所有的網(wǎng)站都將以Web Service的形式提供服務(wù)。
2.面臨的問(wèn)題
Web Service 在未來(lái)的廣泛應(yīng)用必然將帶來(lái)一些問(wèn)題:
2.1不面向最終用戶,需要另外軟件支持。
Web Service 是面向開(kāi)發(fā)人員的,對(duì)于最終用戶而言,不能直接使用Web Service來(lái)為自己提供服務(wù),必須通過(guò)第三方軟件或者ASP.NET的頁(yè)面提供接口才能使用。這樣,Web Service的使用便受到了大量的限制,只有為這個(gè)Web Service開(kāi)發(fā)客戶端軟件或者專門的ASP.NET頁(yè)面才可以為最終用戶使用,而且只能使用幾個(gè)固化在軟件中的Web Service。這樣的開(kāi)發(fā)方式并不利于客戶端軟件的規(guī)?;图苫?。不可能在一個(gè)軟件中實(shí)現(xiàn)大量的Web Service的訪問(wèn)。此外也使得軟件更新麻煩,不同版本之間協(xié)調(diào)困難,而且大量Web service需要推廣。
2.2 Web Service接口類型多樣,開(kāi)發(fā)者無(wú)法全部掌握。
不同的Web Service將提供不同的接口以實(shí)現(xiàn)他們的服務(wù),由于不同的服務(wù)提供的接口完全不同,包括傳遞的參數(shù)和返回的類型有很大區(qū)別,開(kāi)發(fā)人員如果需要使用互聯(lián)網(wǎng)上的Web Service,就必須了解這些Web Service的接口類型,然后根據(jù)他們的實(shí)際需求在有限范圍內(nèi)定制他們的功能。這樣導(dǎo)致所有的.NET軟件開(kāi)發(fā)者在開(kāi)發(fā)的時(shí)候必須去了解Web Service自己的接口,而且對(duì)于一個(gè)軟件而言,只能使用有限個(gè)Web Service,這并不符合信息共享的原則。
3.解決方案的構(gòu)思
我們認(rèn)為,客戶端調(diào)用Web Service以提供給最終用戶使用的時(shí)候,主要可以通過(guò)以下的方法尋求幫助。
首先,我們考慮能不能通過(guò)客戶端軟件的代碼直接實(shí)現(xiàn)。在使用Internet Explore時(shí),我們發(fā)現(xiàn),如果在地址欄里直接輸入Web Service的地址,比如某一個(gè)asmx文件,在Internet Explore中,我們可以找到它的所有方法,也可以使用參數(shù)比較簡(jiǎn)單的方法,這讓我們想到,如果在客戶端軟件中寫(xiě)上這段代碼,通過(guò)對(duì)WSDL進(jìn)行分析,就可以讓用戶使用一些Web Service中的方法了,這也可以實(shí)現(xiàn)客戶端直接使用Web Service。
其次,客戶端可以根據(jù)UDDI的內(nèi)容,訪問(wèn)類似的web service,然后自主地使用新出現(xiàn)的Web Service而不需要更改任何代碼。但是,就現(xiàn)在的UDDI的支持程度而言,客戶端只能得到有關(guān)這個(gè)Web Service的描述文件和一些API,無(wú)法直接地、智能地、人性化地使用這些Web Service,仍然需要程序員對(duì)客戶端的源代碼進(jìn)行修改才可以使用。但是可以在大量的Web Service的基礎(chǔ)上再提供一個(gè)收集這些Web Service信息的服務(wù)器,這個(gè)服務(wù)器也同樣以Web Service的形式提供一個(gè)接口給客戶端軟件,以后只要客戶端軟件訪問(wèn)這個(gè)接口,就可以直接使用在服務(wù)器上的Web Service了,這樣可以初步解決客戶端軟件簡(jiǎn)單直接地使用Web Service的問(wèn)題,但是它需要服務(wù)器端的幫助。
最后,由于在上面說(shuō)的像IE一樣對(duì)Web Service進(jìn)行使用,那么用戶將不能知道每一個(gè)Web Service中的方法的含義和功能是什么,所以,我們希望能對(duì)所有的Web Service的所有方法進(jìn)行語(yǔ)義上的分析,通過(guò)語(yǔ)義的匹配來(lái)實(shí)現(xiàn)對(duì)于Web Service的使用,并可以通過(guò)用戶輸入語(yǔ)義來(lái)匹配Web Service并對(duì)它們進(jìn)行調(diào)用。
以上三點(diǎn),在三個(gè)層次上對(duì)于Web Service的使用做了一些構(gòu)思的說(shuō)明,我們希望我們提出的解決方案能對(duì)以上的問(wèn)題進(jìn)行一些探討和研究,并在一定程度上做一些工作解決一部分的問(wèn)題。
4.結(jié)語(yǔ)
在本文中, 我們提出解決方案希望能實(shí)現(xiàn)下面的目的:客戶端可以幫助最終用戶使用指定的Web Service,通過(guò)簡(jiǎn)單的和用戶之間的接口,將Web Service的一些方法直接提供給用戶使用。并讓用戶了解Web Service的功能??蛻舳塑浖梢灾苯邮褂迷谒婚_(kāi)發(fā)以后出現(xiàn)的Web Service。客戶端軟件可以不更改一行代碼,就能使用新出現(xiàn)Web Service,讓客戶端開(kāi)發(fā)人員可以一勞永逸地開(kāi)發(fā)永遠(yuǎn)是最新版本的客戶端軟件。對(duì)大量相同類型的Web Service提供統(tǒng)一的接口。我們提供給開(kāi)發(fā)人員一個(gè)統(tǒng)一的訪問(wèn)Web Service的接口,其中包含和最終用戶交互的接口,這樣開(kāi)發(fā)人員不必了解不同Web Service的接口,只需要了解我們提供的接口,在這個(gè)接口上進(jìn)行編程,就可以對(duì)互聯(lián)網(wǎng)上大量的Web Service進(jìn)行訪問(wèn),避免了繁重的勞動(dòng),大大減少了開(kāi)發(fā)人員的工作量。由于我們將我們的解決方案分成了3個(gè)不同的層次,每一個(gè)層次的設(shè)計(jì)和實(shí)現(xiàn)也有所不同,所以我們將分別描述3個(gè)層次的設(shè)計(jì),3個(gè)層次共同組成了我們的解決方案。
參考文獻(xiàn)
[1]潘益婷,潘修強(qiáng)等,Service的智能農(nóng)業(yè)系統(tǒng),《計(jì)算機(jī)系統(tǒng)應(yīng)用》.2017 , 26 (11) :114-117。
[2]申鴻燁,Android學(xué)習(xí)平臺(tái)中Web Service架構(gòu)的實(shí)現(xiàn)與研究,《智能計(jì)算機(jī)與應(yīng)用》 , 2017 , 7 (3) :159-161。