WebService原理

WebService原理

WebService是一種跨編程語言和跨操做系統平臺的遠程調用技術java

所謂遠程調用,就是一臺計算機a上的一個程序可以調用到另一臺計算機b上的一個對象的方法,譬如,銀聯提供給商場的pos刷卡系統(採用交互提問的方式來加深你們對此技術的理解)。web

遠程調用技術有什麼用呢?商場的POS機轉帳調用的轉帳方法的代碼是在銀行server上,仍是在商場的pos機上呢?編程

什麼狀況下可能用到遠程調用技術呢?好比,amazon,天氣預報系統,淘寶網,校內網,百度等把本身的系統服務以webservice服務的形式暴露出來,讓第三方站點和程序可以調用這些服務功能,這樣擴展了本身系統的市場佔有率,往大的概念上吹,就是所謂的SOA應用。網絡

所謂跨編程語言和跨操做平臺,就是說服務端程序採用java編寫,client程序則可以採用其它編程語言編寫,反之亦然!跨操做系統平臺則是指服務端程序和client程序可以在不一樣的操做系統上執行。編程語言

除了WebService外,常見的遠程調用技術還有RMI(Remote method invoke)和CORBA,由於WebService的跨平臺和跨編程語言特色,所以比其它兩種技術應用更爲普遍,但性能略低。工具

 

 

WebService使用SOAP協議實現跨編程語言和跨操做系統平臺post

WebService採用HTTP協議數據傳輸,採用XML格式封裝數據(即XML中說明調用遠程服務對象的哪一個方法,傳遞的參數是什麼,以及服務對象的返回結果是什麼)。WebService經過HTTP協議發送請求和接收結果時,發送的請求內容和結果內容都採用XML格式封裝,並添加了一些特定的HTTP消息頭,以說明HTTP消息的內容格式,這些特定的HTTP消息頭和XML內容格式就是SOAP協議(simple object access protocol,簡單對象訪問協議) 。性能

SOAP協議= HTTP協議+ XML數據格式url

SOAP協議是基於HTTP協議的,二者的關係就比如快速公路是基於普通公路改造的,在一條公路上加上隔離欄後就成了快速公路。操作系統

商店的服務員僅僅要收到了錢就給客戶提供貨物,商店服務員不用關心客戶是什麼性質的人,客戶也不用關心商店服務員是什麼性質的人。相同,WebServiceclient僅僅要能使用HTTP協議把遵循某種格式的XML請求數據發送給WebServiceserver,WebServiceserver再經過HTTP協議返回遵循某種格式的XML結果數據就可以了,WebServiceclient與server端不用關心對方使用的是什麼編程語言。

HTTP協議和XML是被普遍使用的通用技術,各類編程語言對HTTP協議和XML這兩種技術都提供了很是好的支持,WebServiceclient與server端使用什麼編程語言都可以完畢SOAP的功能,因此,WebService很是easy實現跨編程語言,跨編程語言天然也就跨了操做系統平臺

 

 

WSDL文件

 比如咱們去商店買東西,首先要知道商店裏有什麼東西可買,而後再來購買,商家的作法就是張貼廣告海報。WebServiceclient要調用一個WebService服務,首先要有知道這個服務的地址在哪,以及這個服務裏有什麼方法可以調用,因此,WebService務器端首先要經過一個WSDL文件來講明本身家裏有啥服務可以對外調用,服務是什麼(服務中有哪些方法,方法接受的參數是什麼,返回值是什麼),服務的網絡地址用哪一個url地址表示,服務經過什麼方式來調用。

 WSDL(webservicedescription language)是基於XML格式的,它是WebServiceclient和server端都能理解的標準格式,當中描寫敘述的信息可以分爲what,where,how等部分!

 WSDL文件保存在Webserver上,經過一個url地址就可以訪問到它。client要調用一個WebService服務以前,要知道該服務的WSDL文件的地址。WebService服務提供商可以經過兩種方式來暴露它的WSDL文件地址:

1.註冊到UDDIserver,以便被人查找

2.直接告訴給client調用者,好比,在本身站點給出信息或郵件告訴。

 

說明:

 咱們尋常寫的程序都是在同一個程序中調用其餘對象的方法,而webservice是如何實現調用其餘計算機中的對象的方法的呢?

其基本原理是在client程序的本地有一個代理對象,這個代理對象和遠程對象具備一樣的方法聲明,這個代理程序不用咱們本身編寫,工具可以幫咱們生成。client程序調用本地代理對象的方法時,代理對象會經過某種網絡傳送技術去聯繫遠程的程序,遠程程序再調用代理對象請求的對應本地對象的方法,而後將方法運行的結果返回給client代理程序。遠程調用技術就是要解決client怎樣將請求信息傳送給遠程的程序,遠程的程序怎樣將結果迴應給client,並且事實上現技術對開發者來講是透明的,即不需要開發者本身的考慮和實現這些細節。

1.WSDL(網絡服務描寫敘述語言,WebServices Description Language)是一門基於 XML 的語言,用於描寫敘述 Web Services 以及怎樣對它們進行訪問。

2.UDDI 是一種文件夾服務,企業可以使用它對 Web services 進行註冊和搜索。

UDDI,英文爲"Universal Description, Discovery and Integration",可譯爲「通用描寫敘述、發現與集成服務」。

相關文章
相關標籤/搜索