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