綜合技術 --webservice理解

目前,幾乎全部的應用程序都須要與運行在其它異構平臺上的應用程序進行數據交換,這就須要一個接口來知足兩個不一樣的平臺。webservice能知足客戶端和服務器之間經過http進行通訊,不管這兩個程序的平臺和編程語言是什麼。java

webservice是什麼呢?web

簡言之:webservice是一種跨編程語言和跨操做系統平臺的遠程調用技術。編程

所謂跨操做語言和跨平臺,就是說服務器端採用java語言編寫,客戶端能夠採用其它語言編寫。跨操做系統平臺則是指服務端程序和客戶端程序能夠在不一樣的操做系統上運行。瀏覽器

所謂遠程調用指的是:計算機A上的一個程序能夠調用另外一臺計算機B上的一個對象的方法,例如,銀聯提供給商場的POS刷卡系統,商場的pos機轉帳調用的轉帳方法的代碼實際上是跑在銀行服務器上。服務器

從表面上看,webservice就是一個應用程序向外提供一些可以經過web進行調用的API。也就是說客戶端能夠經過web來調用這個API。框架

webservice平臺技術編程語言

xml+xsd,soap和wsdl是構成webservice平臺的三大技術。url

xml+xsd操作系統

webservice採用http協議傳輸數據,採用xml格式封裝數據。代理

soap

webservice經過http協議發送請求和接收數據時,發送請求的內容和結果都採用xml格式封裝,並增長了一些特定的http消息頭,以說明http消息的內容格式,這些特定的http消息頭和xml內容格式就是soap協議。soap提供了標準的RPC方法來調用webservice。

soap協議 = http協議+xml數據格式

wsdl

webservice客戶端要調用一個webservice服務,首先要知道這個服務器的地址在哪,以及這個服務器中有哪些方法能夠調用,因此webservice服務器首先要經過一個wsdl文件來講明本身家中有哪些方法能夠被外界調用,方法包括 參數、返回值等。

wsdl主要描述webservice參數及其返回值。他是webservice客戶端和服務器都能理解的標準格式。wsdl文件保存在web服務器上,經過一個url地址就可以訪問到它。因此,客戶端要調用一個webservice服務之間,要知道該服務的wsdl文件的地址。webservice服務商經過兩種方式發佈他的wsdl文件地址:1>註冊到UDDI服務器,以便被人查找;2>直接告訴給客戶端調用者。

webservice開發

webservice開發分爲服務器端開發和客戶端開發兩個方面:

服務器端開發:將公司內部系統的業務發佈到webservice服務器上,供遠程合做單位和我的調用。(藉助一些webservice框架很容易將本身的業務發佈到webservice服務器上,java典型的框架包括:axif,xfire,cxf等)。

客戶端開發:調用別人發佈的webservice服務,來實現本身的功能。例如,調用百度發佈的天氣預報webservice服務,使本身的應用程序實現天氣預報的功能。

webservice工做原理:對客戶端而言,服務器端會給webservice客戶端API傳遞wsdl文件的URL地址,這些API就會建立底層的代理類,客戶端調用這些代理,就能訪問到webservice服務。代理類將客戶端的方法調用變成soap格式的請求數據再經過HTTP協議發送出去,並將接收到的soap數據變成返回值返回。對服務器端而言,當遠程客戶端經過http協議發送過來soap格式的請求數據時,它解析這個數據,就知道調用哪一個java類的哪一個方法,因而去查找或建立這個對象,並調用其方法,再將方法返回的結果包裝成soap格式的數據,經過http響應返回給客戶端。

webservice使用

1.跨防火牆通訊

若是某個應用程序有成千上萬個用戶,並且這些用戶分佈在世界各地,那麼客戶端和服務器之間的通訊變成一個棘手的問題。由於客戶端和服務器之間一般會有防火牆或者代理服務器。傳統的作法是,選擇用瀏覽器做爲客戶端,寫下不少ASP頁面,將應用程序的中間層暴露給最終用戶。這樣作的結果是開發難度大\維護性低。若是中間層組建換成webservice的話,就能夠從用戶界面直接調用中間層組件。在一個用戶界面和中間層有不少交互的應用程序中,最好是使用webservice這種結構,這樣能夠節省用戶界面編程的開發時間。

2.應用程序集成

企業裏一般須要將不一樣編程語言\不一樣平臺上運行的程序集成起來,使用webservice可以很好的處理不一樣語言/不一樣平臺之間的交互性問題。

相關文章
相關標籤/搜索