官术网_书友最值得收藏!

3.1 Web Service簡介

Web Service(即Web服務)是一種低耦合、跨編程語言和跨操作系統(tǒng)的遠程調(diào)用技術(shù)。所謂跨編程語言和跨操作平臺,即服務端程序采用C#或Java等編寫,客戶端程序則可以采用其他編程語言編寫,反之亦然。跨操作系統(tǒng)平臺則是指服務端程序和客戶端程序可以在不同的操作系統(tǒng)上運行。所謂遠程調(diào)用,就是一臺計算機上的一個程序可以調(diào)用到另外一臺計算機上的一個對象的方法。Web Service就是一個應用程序向外界暴露出一個能通過Web進行調(diào)用的API,也就是說能用編程的方法通過Web來調(diào)用這個應用程序。通常把調(diào)用這個Web Service的應用程序稱為客戶端,而把提供這個Web Service的應用程序稱為服務端。Web Service是建立可互操作的分布式應用程序的新平臺,是一個平臺,一套標準。它定義了應用程序如何在Web上實現(xiàn)互操作性。用戶可以用任何喜歡的語言,在任何自己喜歡的平臺上寫Web Service,只要遵循Web Service標準即可對這些服務進行查詢和訪問。

Web Service擁有三種基本的元素,分別是XSD、SOAP和WSDL。

1. XSD

Web Service采用HTTP協(xié)議傳輸數(shù)據(jù),采用XML格式封裝數(shù)據(jù)。XML是Web Service平臺中表示數(shù)據(jù)的格式,除了易于建立和易于分析外,XML主要的優(yōu)點在于它既和平臺無關(guān),又和廠商無關(guān)。無關(guān)性比技術(shù)優(yōu)越性更重要,因為軟件廠商是不會選擇一個由競爭對手所發(fā)明的技術(shù)的。

XML解決了數(shù)據(jù)表示的問題,但它沒有定義一套標準的數(shù)據(jù)類型,更沒有說明怎么去擴展這套數(shù)據(jù)類型。例如,整形數(shù)代表16位、32位還是64位?這些細節(jié)對實現(xiàn)互操作性至關(guān)重要。XML Schema(XSD)就是專門解決這個問題的一套標準,它定義了一套標準的數(shù)據(jù)類型,并給出了一種語言來擴展這套數(shù)據(jù)類型。WebService平臺就是用XSD來作為其數(shù)據(jù)類型的系統(tǒng)。當你用某種語言(如VB.NET或C#)來構(gòu)造一個Web Service時,為了符合Web Service標準,所有使用的數(shù)據(jù)類型都必須轉(zhuǎn)換為XSD類型。可能你用的工具已經(jīng)自動完成了這個轉(zhuǎn)換,但如果需要也可以根據(jù)需求修改轉(zhuǎn)換。

2. SOAP

Web Service通過HTTP協(xié)議發(fā)送請求和接收結(jié)果時,發(fā)送的請求內(nèi)容和結(jié)果內(nèi)容都采用XML格式封裝,并增加了一些特定的HTTP消息頭,以說明HTTP消息的內(nèi)容格式,這些特定的HTTP消息頭和XML內(nèi)容格式就是SOAP協(xié)議。SOAP提供了標準的RPC方法來調(diào)用Web Service。

SOAP協(xié)議定義了SOAP消息的格式,SOAP協(xié)議是基于HTTP協(xié)議的,SOAP也是基于XML和XSD的,XML是SOAP的數(shù)據(jù)編碼方式。

3. WSDL

就像去商店買東西,首先要知道商店里有什么東西可買,然后再去購買,商家的做法就是張貼宣傳海報。Web Service也一樣,Web Service客戶端要調(diào)用一個Web Service服務,首先要知道這個服務的地址在哪,以及這個服務里有什么方法可以調(diào)用,所以Web Service服務器端首先要通過一個WSDL文件來說明自己有什么服務可以對外調(diào)用、服務是什么(服務中有哪些方法,方法接受的參數(shù)是什么,返回值是什么)、服務的網(wǎng)絡地址用哪個URL地址表示,以及服務通過什么方式來調(diào)用。

WSDL(Web Services Description Language,Web服務器描述語言)就是這樣一個基于XML的語言,用于描述Web Service及其函數(shù)、參數(shù)和返回值。它是Web Service客戶端和服務器端都能理解的標準格式。因為是基于XML的,所以WSDL既是機器可閱讀的,又是人可閱讀的。一些最新的開發(fā)工具既能根據(jù)你的Web Service生成WSDL文檔,又能導入WSDL文檔,生成調(diào)用相應Web Service的代理類代碼。

WSDL文件保存在Web服務器上,通過一個URL地址就可以訪問它。客戶端要調(diào)用一個Web Service服務之前,首先需要知道該服務的WSDL文件地址。Web Service服務提供商可以通過兩種方式來暴露它的WSDL文件地址:第一種方法是注冊到UDDI服務器,以便被人查找;第二種方法是直接告訴客戶端調(diào)用者。

主站蜘蛛池模板: 镶黄旗| 隆回县| 喀喇沁旗| 洛浦县| 景宁| 石城县| 扎兰屯市| 望奎县| 崇义县| 永宁县| 松潘县| 千阳县| 丹凤县| 阜城县| 伊金霍洛旗| 平山县| 道真| 璧山县| 吴江市| 萨迦县| 郴州市| 镇宁| 连江县| 汉沽区| 胶州市| 凌海市| 福贡县| 宜昌市| 关岭| 浦江县| 高要市| 韩城市| 伊宁市| 正阳县| 海晏县| 揭阳市| 乌鲁木齐县| 定结县| 台中县| 同德县| 龙游县|