Web Service本身其實是在實現應用程式間的通信。我們有兩種應用程式通信的方法:RPC遠程過程調用 和訊息傳遞。使用RPC的時候,客戶端的概念是調用伺服器上的遠程過程,通常方式為實例化一個遠程對象並調用其方法和屬性。RPC系統試圖達到一種位置上的透明性:伺服器暴露出遠程對象的接口,而客戶端就好像在本地使用的這些對象的接口一樣,這樣就隱藏了底層的信息,客戶端也就根本不需要知道對象是在哪台機器上。
微軟的.NET技術應該算是時下最為流行的Web Service 開發技術。首先因為其公司在以前相應的產品就占有相當大的市場份額,以至使新推出的.NET得以有比較穩定的用戶群;其次也是更重要的是 .NET平台不僅延續了微軟一貫的編程風格,而且還增加了許多支持Web 服務的關鍵性技術,使得.NET在操作的簡單性和執行的穩定性,高效性上達到了一個非常好的結合。
微軟的Visual Studio. NET便是一個便於 Web 服務的開發工具。微軟的目標是,將其新程式語言——C#作為Web Service的首選語言。雖然C#看起來與Java類似,但是還有一些Java中沒有的獨特的功能。.NET技術中用於Web Service 開發的主要工具是ASP. NET。從技術上說,ASP. net 提供了一些超出ASP以前版本的優點(例如:代碼和HTML(標準通用標記語言下的一個套用)的分離,與腳本語言相比較,對“真正”的程式語言如 C# 的支持)。
IBM的WebSphere
IBM公司是業界第一家能夠提供全面支持Web服務的電子商務基礎設施中間件的公司。通過多年來與W3C(The World Wide Web Consortium)的共同努力,包括DB2、Lotus、Tivoli 和WebSphere在內的所有IBM軟體都實現了對SOAP、WSDL、UDDI、Linux、XML(標準通用標記語言下的一個子集)、J2EE等開放技術和標準的全面支持。
IBM公司的WebSphere也是比較好的基礎架構軟體開發平台。WebSphere軟體平台及開發工具包括WebSphere Studio Application DeveloperWSAD 基於J2EE、XML 和Web服務等開放標準,並具備 IBM 在可靠性、擴展性和安全性上的主要優勢。WebSphere 是 IBM 在 Web Services策略中的核心平台,它支持所有開發、發布、部署 Web Services套用所必需的開放標準和技術,包括 UDDI,SOAP,J2EE,WSDL,和對 XML 技術集成的增強,這使得它在全球有很多用戶。
Borland的JBuilder
Borland公司在 JBuilder7中,用戶可以用其Borland Web Services Kit for Java和Borland JBuilder MobileSet 3進行更快捷地開發Web Service和無線套用。這樣將使開發者能夠在同一個開發環境中輕鬆地創建和集成Web Service。新推出的JBuidler8更是針對Web Service開發更提供了方便和高效的方法。
對這個問題,我們至少有兩種答案。從表面上看,Web service 就是一個應用程式,它向外界暴露出一個能夠通過Web進行調用的API。這就是說,你能夠用編程的方法通過Web來調用這個應用程式。我們把調用這個Web service 的應用程式叫做客戶。例如,你想創建一個Web service ,它的作用是返回當前的天氣情況。那么你可以建立一個ASP頁面,它接受郵政編碼作為查詢字元串,然後返回一個由逗號隔開的字元串,包含了當前的氣溫和天氣。要調用這個ASP頁面,客戶端需要傳送下面的這個HTTP GET
返回的數據就應該是這樣:
這個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平台的這三個技術。
Web service建好以後,你或者其他人就會去調用它。簡單對象訪問協定(SOAP)提供了標準的RPC方法來調用Web service。實際上,SOAP在這裡有點用詞不當:它意味著下面的Web service是以對象的方式表示的,但事實並不一定如此:你完全可以把你的Web service寫成一系列的C函式,並仍然使用SOAP進行調用。SOAP規範定義了SOAP訊息的格式,以及怎樣通過HTTP協定來使用SOAP。SOAP也是基於XML(標準通用標記語言下的一個子集)和XSD的,XML是SOAP的數據編碼方式。