什么是Web Service
對這個問題,我們至少有兩種答案。從表面上看,Web service 就是一個應用程序,它向外界暴露出一個能夠通過Web進行調用的API。這就是說,你能夠用編程的方法通過Web來調用這個應用程序。我們把調用這個Web service 的應用程序叫做客戶。例如,你想創建一個Web service ,它的作用是返回當前的天氣情況。那么你可已建立一個ASP頁面,它接受郵政編碼作為查詢字符串,然后返回一個由逗號隔開的字符串,包含了當前的氣溫和天氣。要調用這個ASP頁面,客戶端需要發送下面的這個HTTP GET請求:
http://host.company.com/weather.asp?zipcode=20171
返回的數據就應該是這樣:
21,晴
這個ASP頁面就應該可以算作是Web service 了。因為它基于HTTP GET請求,暴露出了一個可以通過Web調用的API。當然,Web service 還有更多的東西。
下面是對Web service 更精確的解釋: Web services是建立可互操作的分布式應用程序的新平臺。作為一個Windows程序員,你可能已經用COM或DCOM建立過基于組件的分布式應用程序。COM是一個非常好的組件技術,但是我們也很容易舉出COM并不能滿足要求的情況。
Web service平臺是一套標準,它定義了應用程序如何在Web上實現互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平臺上寫Web service ,只要我們可以通過Web service標準對這些服務進行查詢和訪問。
新平臺
Web service平臺需要一套協議來實現分布式應用程序的創建。任何平臺都有它的數據表示方法和類型系統。要實現互操作性,Web service平臺必須提供一套標準的類型系統,用于溝通不同平臺、編程語言和組件模型中的不同類型系統。在傳統的分布式系統中,基于界面(interface)的平臺提供了一些方法來描述界面、方法和參數(譯注:如COM和COBAR中的IDL語言)。同樣的,Web service平臺也必須提供一種標準來描述Web service,讓客戶可以得到足夠的信息來調用這個Web
service。最后,我們還必須有一種方法來對這個Web service進行遠程調用。這種方法實際是一種遠程過程調用協議(RPC)。為了達到互操作性,這種RPC協議還必須與平臺和編程語言無關。下面幾個小節就簡要介紹了組成Web service平臺的這三個技術。
XML和XSD
可擴展的標記語言(XML)是Web service平臺中表示數據的基本格式。除了易于建立和易于分析外,XML主要的優點在于它既是平臺無關的,又是廠商無關的。無關性是比技術優越性更重要的:軟件廠商是不會選擇一個由競爭對手所發明的技術的。
XML解決了數據表示的問題,但它沒有定義一套標準的數據類型,更沒有說怎么去擴展這套數據類型。例如,整形數到底代表什么?16位,32位,還是64位?這些細節對實現互操作性都是很重要的。W3C制定的XML Schema(XSD)就是專門解決這個問題的一套標準。它定義了一套標準的數據類型,并給出了一種語言來擴展這套數據類型。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/